与AMD的Opteron处理器不同,英特尔的IA-64处理器并没有通过对X86指令的扩展来提供64位计算性能,而是采用了全新的EPIC 64位指令集架构……
在IA-64处理器设计之初,英特尔就考虑到了与IA-32程序兼容的问题。因此IA-64体系结构在引入64位寻址和新的指令集的同时,还在其内部包含了一个IA-32模式的指令集,该IA-32指令集支持16位实模式、16位VM86模式、16/32位保护模式等主要IA-32指令模式,处理器内部也有专门的硬件电路用于执行IA-32程序指令。
工作模式由PSR(Processor State Registers,处理器状态寄存器)来决定:PSR状态为0时执行64位指令集,为1时按IA-32指令集解释执行代码。
在安腾2处理器中,硬件功能资源被分成五个组,它们分别是指令处理、执行、控制、内存子系统和IA-32兼容执行引擎。其中IA-32兼容执行引擎组专门负责IA32指令的预取、解码、调度和执行,并配备有专门的执行资源,包括段描述符、通用寄存器、选择器、物理浮点寄存器、MMX技术寄存器、SIMD流扩展寄存器等。
不过在IA-64处理器中,大多数的寄存器等执行资源是专门为64位计算设计的。在执行64位计算时,所有的执行资源(包括IA-32兼容执行引擎)都可以被使用,但在执行IA-32指令时,资源使用会受到一定限制,且所有IA-64程序和控制寄存器的状态都是不可见的。
尽管IA-64处理器的64位性能很出色,但其执行32位软件的性能还有很大的提高余地,英特尔显然也意识到了平滑过渡的必要性,遂提出一种通过软件模拟处理器硬件来提高安腾平台IA-32性能的方案,以便充分利用IA-64处理器强大的整体运算资源,这就是所谓的IA-32执行层技术(IA-32 Execution Layer,研发代号为btrans,以下简称IA-32 EL),并在今年美国春季IDF上透露了有关的情况。
这种想法的思路是在处理器和操作系统间建立一个软件中间层,并嵌入到操作系统中。当一个IA-32应用系统运行时,操作系统将自动启动这一技术,IA-32 EL技术将IA-32代码翻译成原始的IA-64代码,从而增强其性能。IA-32 EL软件是一个与硬件分离的执行层软件,可以全面增强IA-64系统上IA-32软件的执行性能。
据称,这种技术将在今年下半年问世,届时Windows和Linux系统都将予以支持。尽管目前IA-32 EL技术的实际表现还不确切,但英特尔有关官员确认,即将在年中发布的Madison 1.5GHz处理器采用IA-32 EL技术后将达到1.5GHz Xeon MP的IA-32执行性能水平。有消息说,IA-32 EL技术对不同的应用会带来不同幅度(10%~100%)的性能提升。
IA-32 EL技术的另一个好处是当IA-32指令有新的变化和改进时,IA-64系统能够更好地适应这种变化。比如,目前安腾处理器不支持SSE和SSE2指令集,那么通过IA-32 EL技术,未来的IA-64处理器即使不改变硬件设计也可能会很好地支持这两种指令集。
毫无疑问,IA-32 EL软件是一种过渡方案。不过从长远来看,如果IA-32 EL真能达到比较理想的效果并能稳定运行的话,将IA-64处理器中的IA-32硬件执行单元逐渐移除也不是没有可能——这样就可以进一步简化IA-64处理器的结构设计,增强其64位处理性能。 |