SGI地址模式: O32, N32和N64
背景
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的更多相关文章
- IE11/Flash页游白屏怎么办!立刻开启IE大地址模式!缓解浏览器白屏问题
您是否经常发现IE白屏了,具体表现为点开新网页时无法显示,只能切换标签,用任务管理器一看,内存1.2G之多. 这是因为IE11可能有内存泄露问题,内存不断增长以至于无法申请新的内存,于是IE就完蛋了! ...
- nor flash之4字节地址模式
背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes ...
- 【iCore4 双核心板_FPGA】例程十:FSMC总线通信实验——复用地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore4 双核心板_FPGA】例程十一:FSMC总线通信实验——独立地址模式
实验原理: STM32F767上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore1S 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址复用模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore1S 双核心板_FPGA】例程十四:FSMC总线通信实验——独立地址模式
实验原理: STM32F103上自带FMC控制器,本实验将通过FMC总线的地址独立模式实现STM32与FPGA 之间通信,FPGA内部建立RAM块,FPGA桥接STM32和RAM块,本实验通过FSMC ...
- 【iCore3 双核心板_FPGA】例程十三:FSMC总线通信实验——复用地址模式
实验指导书及代码包下载: http://pan.baidu.com/s/1nuYpI8x iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 【iCore3 双核心板_FPGA】实验十四:FSMC总线通信实验——独立地址模式
实验指导书及代码包下载: http://pan.baidu.com/s/1kVJBxJ5 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
随机推荐
- 我的Java开发学习之旅------>Java经典排序算法之归并排序
一.归并排序 归并排序是建立在归并操作上的一种有效的排序算法,该算法是採用分治法(Divide and Conquer)的一个很典型的应用.将已有序的子序列合并,得到全然有序的序列.即先使每一个子序列 ...
- Oracle数据库零散知识03
21,存储过程,简化复杂操作,增加数据独立性,提高安全性,提高性能 与函数创建对比: create or replace function fun_01(v_01 in number) return ...
- 数据结构 Tricks(一)—— 父节点和左右孩子索引号之间的关系
如果以第 0 个位置开始标记树根节点,则第 i 个结点的左右孩子分别为: 2i+1 2i+2 反之,如果一个结点的标号为 i,则其父节点为: i/2:i 为左孩子结点: i/2-1:i 为右孩子结点: ...
- array=nil 和 Array=[[NSMutableArray alloc]init]; 的区别
情况1: array=nil; [_PayArray addObject:BillDetail]; 此时array还是nil:因为array没有分配地址应该. 情况2: Array=[[NSMutab ...
- [GeekBand] C++继承关系下虚函数内存分布
本文参考文献:GeekBand课堂内容,授课老师:侯捷 :深度探索C++对象模型(侯捷译) :网络资料,如:http://blog.csdn.net/sanfengshou/article/detai ...
- python2代码转换python3(2018新)
Python 3自带了一个叫做2to3.py,这个脚本会将你的Python 2程序源文件作为输入,然后自动将其转换到Python 3的形式,可进行to3.py -w 文件夹路径 若文件名2to3-sc ...
- const常量用extern声明定义的问题(extern变量不能在使用类里初始化)
test.h #ifndef TEST_H_ #define TEST_H //常量声明和定义采取这种方法即可 const int a = 20; //不报错,因为const变量链接属性默认是内部链 ...
- cordova-plugin-android-update安卓版本更新插件使用
原文:cordova-plugin-android-update安卓版本更新插件使用 安装插件,使用方法官方都有. 安卓7.0以上要在AndroidMainfest.xml里加一句 <uses- ...
- 关于CORS跨域更细节的思考
权威的资料看MDN,也可以看阮一峰的文章.不过感觉阮一峰对于CORS的描述有问题,简单请求被阮一峰描述为2次浏览器请求了.这个要自己搭个服务器试一下.跨域基本都是根据域名判断的,自己是否要再买个域名呢 ...
- [Servlet]Servlet工作流程及注意事项
Servlet工作过程 采用Servlet完成Web实际的工作流应用程序是通过Tomcatserver公布服务,client与server遵循的端部之间的相互作用Http议完毕的. 详细工作流程例如以 ...