背景

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. 【u239】整数分解

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 某些数能表示成为一些互不相同的整数的阶乘之和.如9=l!+2! +3!. 现在给定一个非负整数n,要求 ...

  2. [DevExpress]DevExpress 中 汉化包 汉化方法

    第一步: 在Debug 下加入 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中加入下面代码 : System.Threading.Thread.CurrentThread.Cur ...

  3. iOS开发- Xcode插件- 规范凝视生成器VVDocumenter 自己的见解

    xcode升级  VVDocumenter 插件失效怎么办?? 首先给个完整的安装參考:http://www.th7.cn/Program/IOS/201405/212030.shtml  參考这个能 ...

  4. BZOJ 3524 - 主席树

    传送门 题目分析 标准主席树,按照位置插入每个数,对于询问l, r, 在l-1,r两树上按照线段树搜索次数大于(r - l + 1) / 2的数. code #include<bits/stdc ...

  5. nginx 和 tomcat 生产环境配置 建议和方法

    参考  以下内容: http://blog.csdn.net/lifetragedy/article/details/7708724 一. nginx参数调优 worker_processes 3; ...

  6. Android 对.properties文件的读取

    /** * * @param filepath .properties文件的位置 */ public void checkFileExists(String filepath){ File file ...

  7. js限制文本框input只能输入数字

    JS判断只能是数字和小数点. ,文本框只能输入数字代码(小数点也不能输入) 复制代码 代码示例:<input onkeyup="this.value=this.value.replac ...

  8. DELPHI高性能大容量SOCKET并发(八):断点续传(上传也可以续传)

    断点续传 断点续传主要是用在上传或下载文件,一般做法是开始上传的时候,服务器返回上次已经上传的大小,如果上传完成,则返回-1:下载开始的时候,由客户端上报本地已经下载大小,服务器根据位置信息下发数据, ...

  9. 一篇简单易懂的原理文章,让你把JVM玩弄与手掌之中

    jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意代码侵袭的保护屏障.JVM ...

  10. P和P1指向了O和O1两个变量(对象)的地址, 而不是O和O1的内容(对象的实际地址)——充分证明@是取变量(对象)的地址,而不是变量里面的内容,够清楚!

    如图,为什么这样取出来的p,p1的值不一样呢?   165232328群友庾伟洪告诉我:  P和P1指向了O和O1两个变量(对象)的地址, 而不是O和O1的内容(对象的实际地址) ,你想P指向真正的对 ...