Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5142560
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类:

2008-09-28 11:38:26

EM64T

目录
  的 EM64T技术,EM64T技术官方全名是Extended Memory 64 Tenchnology 中文解释就是扩展64bit内存技术。现在的32位奔腾 4 CPU都是采用IA-32指令集,EM64T其实就是在这个指令集的基础上进行扩展,我们将它命名为IA32e。Inteln这种实现64位的方法其实和 AMD的x86-64技术有异曲同工之妙,都是通过64位扩展指令来实现兼容32位和64位的运算。另外不同的是Intel的EM64T技术设定了IA- 32和IA-32e两种模式的激活程序,就是说EM64T需要满足特定条件才会激活。

intel的EM64T内存扩展技术

   EM64T本质上和AMD64一样都是IA-32的增强版本,Xeon借助于EM64T可实现高达1TB(40bit)的物理内存寻址和 256TB(48bit)的虚拟内存寻址,并且良好地支持现有32位x86代码的执行,这一点跟AMD64无异,同时也是Intel开发EM64T的出发 点—让现有的x86指令集能够执行64位代码,而继续保持对32位代码的良好兼容。但由于多方面的限制,无论是EM64T还是AMD64均只能实现比32 位指令集更大内存空间的寻址,而无法真正做到纯64位指令集的1PB(50bit)和16EB(64bit)的物理内存和虚拟内存寻址(IA-64就能做 到这一点),其关键在于EM64T和AMD64本质上仍是基于32位的x86指令集,只是Intel和AMD分别采用不同的技术手段对x86指令集进行扩 展,从而实现对64位的支持。
  和AMD64一样,EM64T由于要在同时运行32位和64位程序,因此会针对不同的需要运行于不同的操作模式,同时其引入的多种操作模式之间的切换较为成功地解决了32位程序在64位操作系统下的运行效率问题,当中包括了传统模式、兼容模式和纯64位模式。

-----传统模式(Legacy Mode)-----

   这种模式是为了令64位Xeon能没有障碍地执行现有的32位和16位程序而设计的,实际上就是32位x86时代的IA-32模式,此时现有x86程序 无需作任何的改变,和我们目前使用着的32位环境一模一样。因为Nacona Xeon的核心仍然是沿着32位设计的,所以这个模式只是把所有为64位计算而新增的运算机制都屏蔽起来。

-----兼容模式(Compatibility Mode)-----

   兼容模式允许64位操作系统(如Windows XP x64 Edition)良好地运行基于32位和16位代码的程序,此时32位程序无需重编译即可以保护模式运行,而16位程序则要依赖于操作系统和驱动程序是否 支持保护模式,情况类似于32位环境下的IA-32虚拟实模式。和传统模式相同,兼容模式允许程序利用物理内存扩展实现64GB的物理内存寻址,但这并非 纯64位模式的准64位寻址。

-----纯64位模式(Full 64bit Mode)-----

   此模式是三种模式当中最为高效的,同时可充分发挥EM64T的威力,但这种模式需要纯64位环境的支持,包括64位操作系统和64位应用程序。在64位 操作系统和相应驱动程序的支持下,系统和应用程序能够访问EM64T所支持最大容量的扩展内存,这时Xeon平台的性能可得到最充分的发挥,当然运行于此 模式下的程序需要修改其微代码以便支持64位指令操作。
  可以预见,在未来相当长的一段时间里,在64位操作系统下我们最常用的是兼容模式,因为现存的 大量32位应用程序不可能在短期内为x86-64指令集而重新开发,为了保证现有的32位程序能够继续在Xeon平台上顺利执行,EM64T提供了一种出 色的解决方案。而对于传统的32位操作系统和应用程序,Xeon平台当然可以百分百地相容运行,本来EM64T就是扩展的32位x86指令集,兼容32位 程序是件很自然的事。
  EM64T在64位的实现方式上跟AMD64指令集有很多相似之处,但在关键的地方两者还是有 很大差别,而Intel追加的大多数64位指令与AMD64指令集相兼容,因此Microsoft就不用为两家公司的64位处理器开发各自的64位操作系 统。目前Microsoft推出的Windows XP x64 Edition操作系统(Beta)可同时支持EM64T和AMD64,能够兼容几乎所有的32位应用程序和大部分新增64位应用程序。

浅谈 EM64T技术和AMD64区别

  

X86-64 (AMD64 / EM64T)

   AMD公司设计,可以在同一时间内处理64位的整数运算,并兼容于X86-32架构。其中支持64位逻辑定址,同时提供转换为32位定址选项;但数据操 作指令默认为32位和8位,提供转换成64位和16位的选项;支持常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指令中有 “直接执行”和“转换执行”的区别,其指令字段是8位或32位,可以避免字段过长。
  x86-64(AMD64)的产生也并非空穴来风,x86处理器的32bit寻址空间限制在 4GB内存,而IA-64的处理器又不能兼容x86。AMD充分考虑顾客的需求,加强x86指令集的功能,使这套指令集可同时支持64位的运算模式,因此 AMD把它们的结构称之为x86-64。在技术上AMD在x86-64架构中为了进行64位运算,AMD为其引入了新增了R8-R15通用寄存器作为原有 X86处理器寄存器的扩充,但在而在32位环境下并不完全使用到这些寄存器。原来的寄存器诸如EAX、EBX也由32位扩张至64位。在SSE单元中新加 入了8个新寄存器以提供对SSE2的支持。寄存器数量的增加将带来性能的提升。与此同时,为了同时支持32和64位代码及寄存器,x86-64架构允许处 理器工作在以下两种模式:Long Mode(长模式)和Legacy Mode(遗传模式),Long模式又分为两种子模式(64bit模式和Compatibility mode兼容模式)。该标准已经被引进在AMD服务器处理器中的Opteron处理器。
  而今年也推出了支持64位的EM64T技术,再还没被正式命为EM64T之前是IA32E,这 是英特尔64位扩展技术的名字,用来区别X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技术类似,采用64位 的线性平面寻址,加入8个新的通用寄存器(GPRs),还增加8个寄存器支持SSE指令。与AMD相类似,Intel的64位技术将兼容IA32和 IA32E,只有在运行64位操作系统下的时候,才将会采用IA32E。IA32E将由2个sub-mode组成:64位sub-mode和32位 sub-mode,同AMD64一样是向下兼容的。Intel的EM64T将完全兼容AMD的X86-64技术。现在Nocona处理器已经加入了一些 64位技术,Intel的Pentium 4E处理器也支持64位技术。
  应该说,这两者都是兼容x86指令集的64位微处理器架构,但EM64T与AMD64还是有一些不一样的地方,AMD64处理器中的NX位在Intel的处理器中将没有提供。
阅读(741) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~