求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

EM64T查看源代码讨论查看历史

跳转至: 导航搜索
EM64T

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

评价

这种模式是为了令64位Xeon能没有障碍地执行现有的32位和16位程序而设计的,实际上就是32位x86时代的IA-32模式,此时现有x86程序无需作任何的改变,和我们目前使用着的32位环境一模一样。因为Nacona Xeon的核心仍然是沿着32位设计的,所以这个模式只是把所有为64位计算而新增的运算机制都屏蔽起来。兼容模式允许64位操作系统(如Windows XP x64 Edition)良好地运行基于32位和16位代码的程序,此时32位程序无需重编译即可以保护模式运行,而16位程序则要依赖于操作系统和驱动程序是否支持保护模式,情况类似于32位环境下的IA-32虚拟实模式。和传统模式相同,兼容模式允许程序利用物理内存扩展实现64GB的物理内存寻址,但这并非纯64位模式的准64位寻址。此模式是三种模式当中最为高效的,同时可充分发挥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位应用程序。 [1]

参考文献

  1. EM64T搜狗