背景

MIPS R10000芯片支持MIPS ABI。遵循这一标准的程序能够运行在遵循这一标准的任何处理器/系统上。
目前,主要的支持者有SGI,西门子,Nixdof, Tandem, Pyramid, Sony和NEC。从1989年开始支持64位,这是这一MIPS产品线比较优秀的一个方面。
第一个支持64位的芯片是R4000,而第一个支持64位的系统是运行在MIPS R8000上的IRIX 6.0,始于1993年。

像SGI之类的系统厂商在兼容性和性能之间作出了平衡。在地址模式,操作系统提供的系统库以及编译器方面,这一点是首要考虑的问题。
因为一旦一个程序被设计,也就会做出支持哪种地址模式的决定。SGI提供了三种模式:O32,N32和N64。

使用这些模式的方法非常简单,开发人员只需要在编译程序时设置合适的编译器开关以及相应的共享库。

O32
来自SGI的O32地址模式符合MIPS ABI标准,从1989年开始使用。在兼容性方面,O32非常成功,并一直作为SGI平台的默认选择。
即使R10000能够支持64位操作,出于兼容性方面的考虑,O32会把它当成32位处理器使用。

这32个位,其中一个被IRIX操作系统保留使用,留给地址使用的是31位。因此,最多可以使用2GB的内存,这就意味着程序和数据不能超过2GB;对于绝大部分应用程序来说,这已经足够了,但,随着内存价格的下降,某些程序会在内存中缓存各大的数据集。

N32
为了保持在处理大数据时的高度的响应能力,现代的应用程序需要更高的运算性能。同时,这个程序被设计成了32位程序。
举个例子,SGI MineSet data visualization程序从数据库或者磁盘文件中将数据读入内存并根据用户需求执行快速的本地操作。
本地访问数据同时又要保持用户响应总比随时远程访问数据要快一些。MineSet使用SGI N32而不是O32 ABI。

因为N32 ABI能够提供大约25%的性能,很多客户选择N32来编写应用程序。除了算法上的提升,因为N32使用了处理器的一部分64位特性,也保证了性能的提升。
因为N32仍然保留了32位模式,很多O32代码只需要重新编译为N32就可以获得性能提升。

实际上,N32对代码的要求比较严格,将基于O32的代码转换为N32代码通常要进行修改,然后才能成功编译。

N32 ABI和O32 ABI并不是二进制兼容的。O32编译的应用程序模块不能链接到N32编译的应用程序模块。整个应用程序必须使用相同的编译设置。

N64

N64是SGI标准64位模式。他允许263位寻址,大概是O32/N32允许的4,000,000,000倍.这远远超过了今天的可行配置,因此N64是为未来准备的架构。

http://blog.chinaunix.net/uid-8698607-id-2455563.html

http://www.cnblogs.com/yorkwoo/p/4709772.html

http://bbs.lemote.com/forum.php?mod=viewthread&tid=72398

龙芯2F处理器GCC 4.4编译优化探秘

http://os.51cto.com/art/200810/94359_all.htm

编译方法:

http://bbs.loongnix.org/forum.php?mod=viewthread&tid=74305

SGI地址模式: O32, N32和N64的更多相关文章

  1. IE11/Flash页游白屏怎么办!立刻开启IE大地址模式!缓解浏览器白屏问题

    您是否经常发现IE白屏了,具体表现为点开新网页时无法显示,只能切换标签,用任务管理器一看,内存1.2G之多. 这是因为IE11可能有内存泄露问题,内存不断增长以至于无法申请新的内存,于是IE就完蛋了! ...

  2. nor flash之4字节地址模式

    背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes ...

  3. 【iCore4 双核心板_FPGA】例程十:FSMC总线通信实验——复用地址模式

    实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  4. 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式

    实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  5. 【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  6. 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式

    实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...

  7. 【iCore3 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式

    实验指导书及代码包下载: http://pan.baidu.com/s/1nuYpI8x iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  8. 【iCore3 双核心板_FPGA】实验十四:FSMC总线通信实验——独立地址模式

    实验指导书及代码包下载: http://pan.baidu.com/s/1kVJBxJ5 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  9. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

随机推荐

  1. js进阶 9-16 如何实现多选框全选和取消

    js进阶 9-16 如何实现多选框全选和取消 一.总结 一句话总结:选择取到每一个checkbox的值,然后赋值为true或者false就好. 1.如何实现多选框全选和取消? 选择取到每一个check ...

  2. iOS app审核参考信息地址

    发件人:(苹果开发支持邮箱地址) 中国区电话:400-670-1855 chinadev<chinadev@asia.apple.com>   您好: 感谢您与 Apple 开发者计划支持 ...

  3. 小强的HTML5移动开发之路(41)——jqMobi中Side Menu实现(类似人人网)

    记得以前在做Native App的时候类似于人人网侧边滑动的效果非常的热,很多app仿照该效果进行开发,在jqMobi中也有类似的效果被称为Side Menu.下面我们来一步一步实现该效果. 首先新建 ...

  4. sql server中查询结果集顺序问题

    因为优化器可能会选择并行处理,或者在多文件情况下不按“期待”顺序扫描数据,所以无法保证数据的顺序.唯一能确保顺序的只有order by. 并行处理的过程导致顺序不一致,单核上不存在并行,而双核,可能使 ...

  5. Java数据类型转换问题

    基本数据类型 整数型 byte --- 字节型 --- 1个字节 --- -27~27-1 -> -128~127 byte b1 = 25; byte b2 = 127; short --- ...

  6. MinGW开发工具的安装(还有visual-mingw)

    MinGW是Minimalist GNU for Windows的缩写,是把linux下的GNU开发工具包移植到windows的项目之一.和Cygwin不一样的是,MinGW不提供linux的posi ...

  7. android模拟器上不了网的解决办法

    Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段.所以就 ...

  8. 微信公众平台自定义菜单接口API指南

    微信公众平台开发模式自定义菜单接口API指南 简介 开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和删除等操作. 自定义菜单接口可实现以下类型按钮: clic ...

  9. WPF 3D Transparency Depth-Order Sorting

    原文:WPF 3D Transparency Depth-Order Sorting   Just a quick post here - When making WPF 3D apps, trans ...

  10. golang中jwt使用

    golang 中jwt使用方式总结. 1. golang示例代码 import ( "fmt" "time" "github.com/dgrijalv ...