2. 向下兼容性不同
AMD的x86-64架构的最大优势就是完全兼容现存的x86代码,不管是32位还是更老的16位。x86-64是通过模式之间的嵌套实现这种特性的。在x86-64处理器中最外层的是“Legacy”模式,在该模式下处理器就像标准的x86处理器一样工作,可以运行32位操作系统和32位代码,不具备x86-64指令增加的各项新功能。如(图3)所示。
#$[*189018.jpg*#图3(点击看大图)*#0*#0*#center*]$#
AMD另外提供了针对64位计算的“long”模式,在这种情况下运行程序就需要64位操作系统的支持。“Long”模式提供两个模式:64位模式和兼容模式,兼容模式下还可以运行普通的x86应用程序。如(图4)所示。
#$[*189022.jpg*#图4(点击看大图)*#0*#0*#center*]$#
因此老的x86代码(32位和16位的)都可以在64位操作系统的兼容模式下运行,而x86-64代码则只有在64位操作系统的64位模式才能运行。在兼容模式下运行的代码不能使用新的扩展寄存器,也不能使用增加的8个寄存器,内存寻址同样被限制在4GB的范围内。实际处理中,每个代码片断的模式是由代码片断描述符(code segment descriptor)来决定,处理器就根据这个2个位的描述符决定采用何种模式。
相对AMD的x86-64处理器架构,Intel的IA-64架构所采用显式并行指令(EPIC)架构,具有分支预测执行、寄存器轮动、更多的计算单元和流水线等技术,使IA-64 处理器的性能和效率有了极大的提高。内存寻址能力也更强,相对原来的IA-32架构提高了几个数量级,64位寻址空间能够容纳近180亿GB的物理内存,远大于AMD的x86-64架构。
显式并行指令计算技术(EPIC)除了支持巨量内存存储外,IA-64的另外一重要技术特性就是其基于显式并行指令计算技术(EPIC)的设计体系。借助于EPIC技术,编译器在保证并行处理指令时可以更加有效。EPIC编译器首先分析源代码,以确定哪些指令可以做并行处理,优化这些代码,然后,产生合适的机器码。实际上,编译器会告诉微处理器哪些指令来做并行处理,以此不会在程序处理时消耗微处理器的时间。
如采用IA-64架构的Itanium处理器,就具有128个整数寄存器、128个浮点寄存器、64个预测寄存器以及大量用于特殊目的的寄存器,从而提供了32位架构所不能提供的许多强大功能。同时Itanium也变成了三级缓存结构,其中L0和L1缓存集成在处理器核心,L2缓存(4MB)通过一个指定的128位总线与处理器相连,使它的整体性能大为提高,除此之外,Itanium还集成了如“机器检测架构(Machine-Check Architecture)”等其他一些的特殊功能,以应付复杂的高端服务器和工作站的需要。这一切都是AMD的x86-64架构所不能比拟的。