[转]逃离x86架构

来源:互联网 发布:阿里云静态资源 编辑:程序博客网 时间:2024/05/21 19:28
x86架构诞生
    早在1981年,IBM公司推出了基于Intel8088处理器的个人电脑;和不久后的8086处理器相比,它是一台低价格,低性能的处理器。尽管在当时MotorolaMC69000处理器的性能也相当不错,但是IBM这样选择的理由是因为8088处理器已经能够对地址总线进行“复用”,并且总线宽度达到8位,和以往相比,大大减少了整个系统的开销。由于当时没有芯片组这一概念,因此数据和指令的存储和读取都要依靠主板上的特殊门电路,这些部件也是8位的宽度。如果使用MortolaMC69000处理器的话,那么在相同功能的情况下,主板需要更多的此类部件,因此大大增加了主板的制造成本。尽管有人建议,MortolaMC69000有助于系统性能的提高,但是IBM固守“简单就是美”的原则,毅然选择了8088处理器。

   IBM的“生死抉择”却给软件开发者带来灾难性的影响(当时没有充分意识到)。由于处理器采用了808X的架构,因此数据和代码只能在64KB的范围内进行访问。如果某一个程序需要使用超过64KB的内存,那么程序不得不使用16位的段地址和16位的偏移地址组合,来达到20位的数据访问范围。当时的程序员就为16位到20位的地址转化伤透了脑筋。在程序的编译过程中,也引进了相应的内存使用模式(小型,中型,大型,巨型)。系统集成的汇编语言在程序编写时,必须指明是近程调用(nearcall)还是远程调用(farcall)。如果要把8088处理器的程序移植到如MC68000机时,就必须把地址扩展成32位,这个过程非常繁琐。

   尽管64KB的限制是IBM个人电脑的一个死穴,但是当时IBMPC的市场销售额非常不错。8088处理器和DOS操作系统能够支持大部分的应用软件,因此IBM的个人电脑推出不久就受到各界的好评;而对于64KB的限制,人们似乎没有太多的关注。随着PC的成功推出,IBM着手于X86系统架构标准的制定,并且希望成为全球最大的电脑制造商。Intel和Microsft都参与了此标准的定制,并且携手进行个人电脑的开发。

   第一个x86架构的“婴儿”便是于1985年推出的32位的80386处理器(386处理器)。当时,大部分的操作系统(或者准操作系统)还是16位模式,因此程序员也必须进行地址的转化,这个令人厌烦的转化工作直到Microsoft公司发布了第一款32位的操作系统Windows95时,才得以解决。Windows95是第一款使用32位地址的操作系统,它能够对32位空间的数据进行读写操作,并且80386处理器的内部有7个通用寄存器(GPRS)。

   从19世纪80年代开始,X86架构快速的发展着。同时,RISC(精简指令集)架构也受到人们的关注,并且有不少成功的产品,如SPARC,PA-RISC,MIPS等。从价格上而言,X86架构的PC机最便宜;而那些基于RISC处理器的大型机价格昂贵。但是在架构上,PC机和大型机有非常多的相同点,它们都有着良好的软件支持,并且集成汇编语言。

   它们之间第二个相似点就是PC和大型机的档次通常用以整体的性价比来决定,而不是只决定于CPU的处理能力。可靠性,可用性,和功能性是用于衡量机器性能的主要标准。PC机和大型机的定位也相当的明确,在1980年,一台PC机的价格只要几百美元,而大型机的架构至少要上千美元;在功能上,PC机定位于整数的运算,而大型机却是以浮点数的运算来衡量性能的高低。

   尽管PC机和RISC大型机在价格和功能上定位不同,但是在1990年初,SunMicrosystems公司推出了桌面的微型RISC系统“MicroSPARC”。为了能够稳固自身的地位,针对Sun公司这个行为,Intel公司不久后就推出了性能和MicroSPARC相当的PentiumPro处理器,Pentium Pro处理器是X86架构发展过程中的一个里程碑。

Pentium Pro处理器首先在x86体系中引入了“微指令”的概念,即一条指令能够完成原先几条指令的操作。在256KB二级缓存的协助下,微指令使得系统的整体性能有了突破性的飞跃。当时由0.35微米制成技术制造的PentiumPro处理器可以和原先任何一款RISC处理器叫板。在当时,PentiumPro的惊人性能在PC的制造界产生了巨大的影响,那些原先RISC的支持者不得不重新审视起x86架构来。尽管x86架构存在GPRS数量过少,串行的通讯指令过于复杂,内存操作不便等缺点,但是RISC的开发者们不得不承认,当时的RISC架构达不到PentiumPro的性能。

揭开X86的真像

   随着经济的不断发展,x86处理器的应用范围越来越广,但是人们似乎渐渐忘却x86架构的不足。在x86架构的发展过程中,它微处理器(MPU)或多或少的占据着领先的地位。为了保持领先,个人电脑的发展似乎脱离了IBM原先“简单就是美”的初衷。CPU的制成技术快速的发展着,集成的晶体管数量也基本按照莫尔定律增加。当CPU集成的晶体管数量超过1百万后,“制成工艺”和“晶体管集成度”成为衡量系统性能的另一个标准。

   同时,基于RISC处理器的大型机也不懈的发展着,尽管在制成技术上不及X86架构,但是它的整数和浮点数性能要高于X86架构。以下是1993年至今,x86性能和RISC的比值。

图 x86/RISC 性能比 vs制成工艺
[img]http://www.itdoor.net/uploads/1062574681.png[/img]
上图分为两个部分,上半部分是x86/RISC的性能比。可以看出,在整体上,RISC的性能要高于x86(x86/RISC<1),但是它们之间的差距正在逐渐减少。其中PentiumPro ,P4/1.5,P4/3.06这几款CPU的性能已经超过了同期RISC处理器的性能。图的下半部分是x86和RISC制成工艺的对比。

    PentiumPro推出时,x86架构系统和RISC处理器系统的分工就相当的明确。RISC系统针对高端的服务器市场,CPU和所有的部件都必须确保系统的“稳定性”,即使降低10%的性能也要尽可能的提高系统的稳定性。因此RISC处理器必须经过详细,严谨的设计,并且需要通过一系列严格的测试。因此大型机的CPU非常昂贵,每一代的CPU一般只推出2~3种不同频率的产品,因为企业不可能在系统升级上不断的投入昂贵的费用。相比之下x86架构系统主要针对个人用户和小型的商用系统。和RISC相比,x86的价格要低1~2个数量级,它主要是确保系统的性能,或者尽可能的提高系统的性价比。因此针对同一代的CPU,它会推出7~8种不同频率的产品。例如IntelNorthwood Pentium 4的整个推出的过程中,一共发布了7种不同频率的产品。

图  产品推出力度对比
[img]http://www.itdoor.net/uploads/1062574755.gif[/img]
上图清楚的表明,在同一代产品中,RISC系统一般只会推出2-3种产品,而X86架构会有7-8种的产品。因此后者的粒度要比前者细的多。这也说明RISC系统的CPU一旦设计定型,就会进行制造和测试,在产品最后发布之前,尽可能的改正设计中的错误,因为RISC昂贵的价格决定一旦CPU的设计存在问题,那么这就是一款失败的产品,在市场上就不会有立足之地。而x86的CPU价格较低,因此它不断推出的产品能够弥补以往设计中的不足,不同产品在于占领不同的市场。

X86=永恒?

   随着X86架构的不断成熟,人们逐步开始认识到其本身的限制和不足(例如32位的X86架构的寻址空间只有4GB),但是巨大的商业利益和强劲的软硬件的支持,使得x86的架构难以动摇。尽管在x86的发展历程中,也有不少的体系设计用于代替x86架构,但是它们都因为得不到广泛的支持,最终以失败告终。其中,影响较大的是以下3次“x86革命”。

第一次革命:MIPS/ACE 联盟

    1991年4月,Compaq, Microsoft,DEC,MIPS和一些小型的计算机公司成立了高级计算环境(ACE)小组,他们的目的在于使用基于RISC处理器的MIPS架构来取来现有的x86/IBM个人电脑。但是由于MPU上市日期的延迟,ACE小组的内部竞争,以及利益分成的问题,使得ACE小组的发展举步为艰,最后以失败而告终。



第二次革命:Apple/IBM/Motorola (AIM) 联盟

    同样在1994年4月底,AppleComputer, IBM 和 Motorola组成了AIM联盟,目的在于把RISC处理器用于个人电脑系统。Motorola和IBM联手对POWER架构进行重新设计,用于取代原先Macintosh系统中逐渐衰落的680X0CISC处理器。POWER架构给Mac系统带来了巨大的成功,它的性能要比原先的Mac大大提高。但是x86架构的发展始终要快于PowerPC,而且PowerPC没有任何的性价比优势,因此不多久,Mac机就在x86架构面前败下阵来。在Intel和Microsoft巨大的压力下,1994年8.3%的市场占有率也紧缩到目前的3%。

第三次革命:DEC/Samsung

    1996年年底,DEC的芯片制造部门(原先的DigitalSemiconductor公司)发布布了21164PC。它是原先高性能处理器21164A(EV56)的PC版,因此价格较低,并且使用了微软的WindowsNT操作系统。由于缺少相应的软件支持,DEC开发了FX!32模拟器,它能够把原先X86的软件无缝的应用到21164PC平台。尽管CPU的价格低廉,但是支持21164PC的主板却非常昂贵。而且在当时,人们对NT操作系统并没有表现出多大的兴趣,因此21164PC慢慢的在X86架构发展中退出了历史舞台。

    上述例子中的MPU制造商失败的主要原因就是跟不上IntelCPU的发展速度。Intel不断进行着新型的CPU设计,并且以价格来争取市场;上述的三种新型CPU架构都是被Intel强大的马力所拖垮。其中,MIPS/ACE联盟主要是资金的问题,而AIM联盟的失败归咎于CPU的设计跟不上Intel的发展速度。

Intel的自我革命

   目前的事实告诉我们,当今几乎不可能有其他的MPU制造商使用其他的系统结构,来挑战Intel现下兼容的X86平台;其他的芯片制造商也没有雄厚的资金和实力来和Intel公司进行抗衡。人们考虑:是否Intel公司自己会提出一种全新的架构;或者Intel是否会脱离IBM的x86标准来发展自身的Wintel体系架构(Wintel:Windows操作系统和Intel处理器)。近几年,Intel致力研究的Itanium处理器(IPFItanium ProcessorFamily)似乎有取代x86的趋势。Intel也宣布,Itanium会首先使用在服务器上,然后过渡到PC平台,最终在移动平台上实现。

    Intel的IPF主要针对RISC处理器原先占有的中高端服务器市场。Intel推出64位的处理器只是一个时间的问题,可能在目前而言,还为时过早;但是Intel的竞争对手AMD公司已经在今年推出了x86架构的扩展―――64的处理器和系统平台。AMD64位的架构并不是全新的架构,而是对原先32位的x86架构进行扩展,突破了4GB寻址空间的限制;但是64位的计算环境却在业界产生了巨大的影响,它成为IntelIPF技术的挑战者。姑且不论AMD64位架构推出时机是否合适,但是业界普遍认为64位的架构会在5年内成为主流的桌面PC架构,同时AMD的这一举措也加快了IPF处理器的推出。

   IPF技术是由Intel和惠普联合研制,取得了一定的成绩。但是目前的IPF处理器核心尺寸,电源功耗都决定了其不能使用在桌面系统上。IPF采用0.18微米的制成工艺,和AlphaEV(397mm2,125W),POWER4(415 mm2,115W)相比,Itanium 2处理器的尺寸为421mm2,电源功耗高达130W。

   在随后的,代号为Madison/Deerfield的Intanium2处理器中,Intel使用了0.13微米的制成工艺。1.3GHz的Itanium 2处理器的最大发热量和2.66GHzNorthwood Pentium 4相当。和2.66GHz Pentium 4相比,1.3GHzItanium2的整数运算性能有了10%的提高,浮点数性能有了50%的提高。在高级的优化技术下,IPF的性能要比原先同等频率的处理器高出整整一倍,而且随着IPF技术的成熟,这种差距会愈加扩大。

   尽管在硬件的技术上,AMD和Intel都已经相当成熟;但是AMD64位的系统和Intel的IPF都不得不面临一个相同的问题:缺少软件的支持。目前支持AMD64位系统和IPF技术的只有Window最新的操作系统。AMD公司和Intel公司对于64位架构的研发上都或多或少面临“鸡生蛋,还是蛋生鸡”的尴尬局面。64位的架构必须有软件的支持才能发挥应有的功效,同样软件只有凭借64位的架构才能进行开发。业界人员保守的估计,64位的软件至少要3-5年才能普及起来。

   对于IPF处理器而言,它和原先x86架构下的处理器有什么本质的不同呢?如果不考虑AMD的64位扩展x86架构,在相同的电源功耗,相同的费用,相同的制成工艺下,IPF处理器在整数运算上的性能会高出20%-30%,浮点数和DSP的运算性能会有50%的提高。

结论:革命尚未成功,同志仍需努力

  “说要比做的容易。”随着IPF技术的成熟,32位x86架构缺陷的不断出现,IPF取代x86架构势在必行。但是一旦真正的进行“改革”。IPF(或者其他架构)必定会受到来自各方面的压力和阻碍。乐观的估计,IPF取代x86成为主流的架构至少要在2005年以后。如果考虑到来自AMD64位的x86的架构阻挠,那么整个改革的之间会更长,甚至有失败的可能。
我们深知,每一项新技术的应用,都会伴随着出生时的阵痛;但是对于未来却是一片光明。Intel的IPF如此,AMD的64位架构也是如此。在PC发展历程中,正是这些一次又一次的阵痛,不断推动着整个IT界发展,使IT界保持旺盛的发展力。也许这些阵痛可能会带来难产,使得婴儿死于襁褓之中;但是每一次成功的诞生,都会给IT界带来一个全新的世界。不管X86架构未来如何,我们都期待着会有一个崭新的明天。


转自:http://www.lemote.com/bbs/archiver/?tid-12610.html
原创粉丝点击