创新与兼容——剖析IA-64与x86-64处理器架构 2000年 第43期   进入新千年,64位处理器似乎离我们越来越近,英特尔率先展示了IA-64架构的Itanium处理器,AMD的SledgeHammer也早在产品蓝图上初露端倪。而SUN的UltraSparc、康柏的Alpha也卷进64位架构的纷争。虽然人们知道64位架构将带来系统性能新的飞跃,但同时也给现在与未来平台系统的转变带来困惑与难题。64位处理器,我们真的需要吗? #1 64位处理器换代的问题   由于处理器内部架构的改变,64位处理器最终的应用必定与32位处理器有很大的不同。虽然64位处理器的运算架构可以支持部分32位应用程序,确保其中重要的功能执行,但对现有系统架构及最终用户的应用来说,32位处理器到64位的技术换代会产生一些不容忽视的问题。   处理器架构的兼容:这是首先要解决的问题,64位架构处理器要与现有的32位系统的x86架构兼容,并确保旧系统继续发挥最高的性能。   硬件平台支持:硬件平台生产商必须考虑新架构处理器对主板设计的影响,以及是否有操作系统提供支持,操作是否稳定,还要考虑是否需要为支持32位和64位两个系统而被迫增加成本开支。   软件平台的支持:对于操作系统及软件开发商则考虑是否要增加开支,同时开发32位及64位应用程序,还是放弃原有开发的32位应用程序,转而开发64位应用程序。   用户应用的选择:究竟将操作系统及应用程序升级到64位,还是保留原有32位的应用程序,让系统性能保持现有的水平。   这些问题就像当初16位处理器转向32位一样,不同的是当时的硬件平台和软件平台没有现在这样纷繁复杂,因而很容易成为主流。而从英特尔发布的64位架构体系来看,从32位处理器到64位的转变必定不会像从前那么简单。虽然可以采用某些方式,如软件模拟解决向下兼容32位处理器的问题,但无疑带来性能的损失。对于英特尔和AMD来说,如何确定新的64位处理器的架构体系是至关重要的。 #1 IA-64与x86-64架构   IA-64架构可以说是英特尔自80386起确立IA-32架构以来最大的发展,根据英特尔的设计思想,IA-64架构体系将拥有64位内存寻址能力,能够支持更大的内存寻址空间。同时IA-64采用显式并行指令计算(EPIC)技术,借助EPIC技术,编译器在保证并行处理指令时可以更加有效,并利用分枝判定技术来更加有效地处理条件分枝,降低分枝预测的失误率。IA-64具备全新的推断(Speculation)技术,通过这一技术,编码指令与其它指令一同进行处理,总体的处理时间大大缩短。IA-64还使用更完善的指令集(Bundled Instructions)技术,理论上兼容IA-32位指令集,能够同时支持IA-64和IA-32两种系统环境,并能够在IA-64系统环境中执行IA-64和IA-32指令的混合,前提是IA-64操作环境必须支持IA-32指令。   由于IA-64不具备x86兼容能力,采用IA-64技术的处理器很可能无法确保现有的32位应用程序能够充分发挥其性能。还有就是采用像IA-64这样的全新指令集架构需要开发一套全新的工具集,包括编译程序、调试程序、组合程序以及简要表程序等。   AMD的x86-64策略则是一方面确保沿用的32位应用程序及操作系统能够充分利用最新的处理器技术,另一方面又可建立一个可支持64位运算的系统。X86-64架构的设计是采用直接简单的方法将目前的x86指令集扩展。这个方法与当初的由16位扩展至32位的情形很相似。AMD为沿用已久的x86架构添加两个主要功能:长模式的64位扩展与寄存器扩展,使x86架构可以透过扩展成为新的x86-64架构。长模式内含两个子模式:即64位模式及兼容模式。长模式由一个称为LMA(长模式有效Long Mode Active) 的全面控制位启动。当LMA 关闭时,处理器将按照标准x86处理器工作,这时处理器可与所有目前的16及32位操作系统及应用程序兼容。若长模式一经启动,64位处理器的扩展便可进行操作,使系统可以按照本身及其处理器的能力自动重新配置。   x86-64架构的优点是在适当的时候只要市场提供相关的软硬件支持,用户可以根据自己的需求确定是否采用64位运算架构,AMD的64位策略使软件开发商可以继续全面开发x86兼容软件,同时又可发挥64位运算的强劲性能,其他公司的64位解决方案均不能充分保障业界在软件方面的投资。此外,AMD的x86-64架构容许目前的16位及32位x86代码可以充分利用新处理器的设计特色以发挥更高的性能,无需耗费时间进行软件仿真。 #1 64位的Itanium与SledgeHammer   随着英特尔与AMD相应64位处理器架构的提出,基于这两种架构的64位处理器也揭开了神秘的面纱。2000年的4月24日,英特尔展示了第一款IA-64架构的处理器Itanium,并将中文名称定为“安腾”,定位于高端服务器和工作站市场。架构的改变,也赋予Itanium处理器更优异的性能。Itanium具有128个整数寄存器、128个浮点寄存器、64个预测寄存器以及大量的用于特殊目的的寄存器,从而提供了32位架构所不能提供的许多强大功能。Itanium同时内建了英特尔的多媒体扩展指令集(MMX)和SSE(数据流SIMD扩展)功能,并且增加了特定SIMD浮点运算执行单元。同时Itanium也变成了三级缓存结构,其中L0和L1缓存集成在处理器核心,L2缓存(4MB)通过一个指定的128位总线与处理器相连,使它的整体性能大为提高,除此之外,Itanium还集成了如“机器检测架构(Machine-Check Architecture)”等其他一些的特殊功能,以应付复杂的高端服务器和工作站的需要。   Sledgehammer是接替Athlon的新一代处理器,预定2001年底前推出原型处理器,2002年可能开始正式批量生产。Sledgehammer将沿用Athlon的基本指令集,但会增加执行64位软件的新功能。软件制造商只需稍加修改程序,不必重写新的程序。而且使用在桌面型计算机、笔记本型计算机或服务器的Sledgehammer芯片,基本架构都一样,可让计算机制造商自行决定要组装成32位或64位的系统。 #1 64位架构的挑战   无论是Itanium还是SledgeHammer的处理器,都为进入64位架构吹响了号角,从前面的分析我们也看到,架构的改变给用户带来的最大困惑就是:一方面仍然需要高性能地运行一些32位的应用程序,另一方面又希望能够升级到64位平台以充分利用64位应用的强大性能。对于英特尔来说,这是Itanium或其它基于IA-64架构的处理器都无法解决的问题。虽然IA-32位架构已经存在许多的瓶颈和限制,转变到64位架构能充分发挥未来处理器的性能。或许更多的是英特尔采用独立的IA-64架构,以摆脱AMD在技术和市场上的步步紧逼。但这一点,AMD也早已看到,所以它在32位x86架构加入64位支持功能,以保持架构的发展。不过它同样也存在着弊病,继续选择x86的传统架构,就不可避免地要受到x86固有的一些局限性的制约。   因而对两大处理器巨头来说,如何充分发挥64位架构处理器的性能是现在面临的巨大的挑战。英特尔和惠普公司共同推出的Itanium系列处理器,由于设计了全新的指令集,编写使用在Itanium上的软件必须配合Itanium的指令集。AMD的Sledgehammer具有在32位和64位之间切换的优势,但关键在于Sledgehammer执行64位应用软件的效果是否出众。如果Sledgehammer的64位处理器性能优秀,无疑可方便地打入高端服务器市场,但如果性能不敌英特尔Itanium,恐怕也只能算一款高速的64位桌面处理器。当然64位架构要完全确立,恐怕还必须借助整个系统平台的重新构建,也只有这一切条件成熟,64位架构才能充分发挥最大的性能。