Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1103643
  • 博文数量: 121
  • 博客积分: 8910
  • 博客等级: 上将
  • 技术积分: 2915
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-18 09:36
文章分类

全部博文(121)

文章存档

2011年(3)

2010年(100)

2008年(18)

分类:

2010-03-13 22:17:40

原文地址:

摘录:

Intel 64可使处理器直接访问超过4GB的存储器,容许运行更大的应用程序。而x86-64架 构也加入了额外的寄存器及其他改良在指令集上。通过64位的存储器地址上限,其理论存储器大小上限达16,000,000TB(16EB)

对于AMD处理器,AMD64指令集应用在、、、、、及 较新款的和处理器上,...对intel处理器,Intel 64指令集被应用于、、、、、及处理器上。两者兼容

虚拟地址的细节:

尽管虚拟地址有64位的宽度,但目前的实现机制(以及任何已知处在计划阶段的芯片)并不允许整个16EB的虚拟地址空间都被使用。大多数的操作系统和应用程序在可见的未来都用不到如此巨大的地址空间(比如,Windows在AMD64上的实现仅应用了16TB,即44位的宽度),所以实现如此巨大的地址宽度只会增加系统的复杂度和地址转换的成本,带不来任何好处。AMD因此决定,在对这一架构的首次实现中,只有虚拟地址的最低48位才会在地址转换(页表查询)时被使用。但是,任何虚拟地址的48位至63位必须与47位一致(按照的方式),否则处理器将会报告一个异常。符合这一规则的地址被称作“传统格式”。传统格式将从0至00007FFF`FFFFFFFF,以及从 FFFF8000`00000000至FFFFFFFF`FFFFFFFF总计256TB的地址范围作为可以使用的虚拟地址空间。

这种“古怪”的规则为日后扩展到真正的64位寻址保留了一个重要的特性:很多的操作系统(包括但不限于Windows NT系列)将地址空间的高半部分(被称作内核空间)留给自己,将低半部分(用户空间)留给应用程序代码、用户态栈、堆和其他数据区。这种“传统地址”的设计保证了每一个符合AMD64的实现都拥有两个内存片段:低半段从00000000`00000000开始,随着更多的虚拟地址位变得可用而“向上生长”;高半部分被“悬挂”在地址空间的顶部而“向下生长”。同样,将未被使用的地址位内容固定下来防止被操作系统用作标志位、特权级标号等其他用途,是为了避免当架构扩展至52, 56, 60 和64位的时候出现问题。

业界称谓惯例:

由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD 对这种CPU架构的原始称呼——“x86-64”被不时地使用,还有变体“x86_64”。其他公司如和在营销资料中使用“x64”作为对 “x86-64”的缩写。

许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同时指代 AMD64和Intel64。

  • 系统(如、和) 和一些发 行版(如、、和) 将AMD64和Intel64都称作“amd64”。
  • 称64位架构为“x86_64”。
  • (JDK): 包含x86-64文件的目录命名为“amd64”。
  • :终端下的命令arch以及开发人员文档都表明苹果称64位架构为“x86_64”。
  • :称在IA-32处理器上使用64位技术为 “x64”,但一些相关目录使用AMD64来标明。例如,Windows x64版安装CD上的系统目录命名为“AMD64”,而32位版本上用“i386”。
  • :操作系统的命令isalist将 AMD64和Intel64都定义成“amd64”。







阅读(1161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~