来自当知百科
跳转到: 导航搜索

目录

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位环境一模一样。因为NaconaXeon的核心仍然是沿着32位设计的,所以这个模式只是把所有为64位计算而新增的运算机制都屏蔽起来。

-----兼容模式(CompatibilityMode)-----

  兼容模式允许64位操作系统(如Windows XP x64Edition)良好地运行基于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 XPx64Edition操作系统(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架构允许处理器工作在以下两种模式:LongMode(长模式)和Legacy Mode(遗传模式),Long模式又分为两种子模式(64bit模式和Compatibilitymode兼容模式)。该标准已经被引进在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的Pentium4E处理器也支持64位技术。

  应该说,这两者都是兼容x86指令集的64位微处理器架构,但EM64T与AMD64还是有一些不一样的地方,AMD64处理器中的NX位在Intel的处理器中将没有提供。

个人工具
名字空间

变换
查看
操作
导航
工具箱