x86-64 与EM64区别

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:13:23
我用CPUZ测试我得赛扬D336,指令集中有EM64,而用EVEREST测试指令集却变x86-64,为什么会是这样,网上的资料说AMD的是x86-64 INTEL的是EM64呀,好奇怪。

EM64T全称是Extended Memory 64 Technology(64位内存技术扩展技术。Intel声称“EM64T技术是Intel对IA32平台一系列技术革新中的一项。它是IA32架构的自然延伸和扩展,允许现有平台访问更大容量的内存。当处理器工作在legacy模式下的时候,它可以与现有的32bit系统完全兼容。”Intel对EM64T的描述和AMD x86-64极为相似。有报道指出,Intel和AMD在64bit架构上技术文档的本质是完全一样的。所以,名为EM64T的技术其实就是x86-64,EM64T也是将目前的32bit模式扩展到64bit模式,而保留对先有32bit架构的完全支持。

EM64T技术
Intel官方是给EM64T这样定义的:EM64T全称Extended Memory 64 Technology,即扩展64bit内存技术。EM64T是Intel IA-32架构的扩展,即IA-32e(Intel Architectur-32 extension)。IA-32处理器通过附加EM64T技术,便可在兼容IA-32软件的情况下,允许软件利用更多的内存地址空间,并且允许软件进行32 bit线性地址写入。EM64T特别强调的是对32 bit和64 bit的兼容性。Intel为新核心增加了8个64 bit GPRs(R8-R15),并且把原有GRPs全部扩展为64 bit,如前文所述这样可以提高整数运算能力。增加8个128bit SSE寄存器(XMM8-XMM15),是为了增强多媒体性能,包括对SSE、SSE2和SSE3的支持。

Intel为支持EM64T技术的处理器设计了两大模式:传统IA-32模式(legacy IA-32 mode)和IA-32e扩展模式(IA-32e mode)。在支持EM64T技术的处理器内有一个称之为扩展功能激活寄存器(extended feature enable register,IA32_EFER)的部件,其中的Bit10控制着EM64T是否激活。Bit10被称作IA-32e模式有效(IA-32e mode active)或长模式有效(long mode active,LMA)。当LMA=0时,处理器便作为一颗标准的32 bit(IA32)处理器运行在传统IA-3