您现在的位置是:首页 > 电脑技术查询 > 电脑知识

em64t

编辑:chaxungu时间:2022-12-07 04:48:12分类:电脑知识

目录·intel的em64t内存扩展技术
·-----传统模式(legacymode)-----
·-----兼容模式(compatibilitymode)-----
·-----纯64位模式(full64bitmode)-----
·浅谈em64t技术和amd64区别
·x86-64(amd64/em64t)


intel的em64t技术,em64t技术官方全名是extendedmemory64tenchnology中文解释就是扩展64bit内存技术。现在的32位奔腾4cpu都是采用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位模式。

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

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

-----纯64位模式(full64bitmode)-----
此模式是三种模式当中最为高效的,同时可充分发挥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推出的windowsxpx64edition操作系统(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(长模式)和legacymode(遗传模式),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的处理器中将没有提供。

上一篇:腾讯tt浏览器

下一篇:数据字典