3 指令集之争
英特尔在微软的帮助下,在商业上打赢了对摩托罗拉的一仗。在接下来的10年里,它在技术上又和全世界打了一仗。
当今的计算机系统结构可以根据指令集分成复杂指令集(CISC)和精简指令集(RISC)两种。一个计算机程序最终要变成一系列指令才能在处理器上运行。每种处理器的指令集不一定相同。有些处理器在设计的时候,尽可能地实现各种各样、功能齐全的指令,这包括早期IBM和DEC的全部处理器,今天的英特尔和AMD的处理器等。CISC处理器的优势是可以实现很复杂的指令,但也存在两个主要问题:第一,设计复杂,实现同样的性能需要很高的集成度;第二,每个指令执行时间不一样长,处理器内部各个部分很难流水作业,处理器会出现不必要的等待。除此之外,还有一个过去不是问题现在却成为问题的缺陷,就是CISC处理器芯片高集成度带来的高功耗。
针对CISC处理器的上述两个不足,上个世纪80年代,计算机科学家们提出了RISC处理器设计思想,其代表人物是斯坦福大学校长,美国科学院、工程学院和文理学院三院院士约翰·亨尼西(John Hennessy)教授和加州大学伯克利分校著名的计算机教授戴维·帕特森(David Patterson)院士。精简指令集只保留很少的常用指令,一条复杂的指令会用几条简单的指令代替。精简指令集的设计思想是计算机发展史上的一次革命,大幅简化了计算机处理器的设计。同时,RISC处理器每条指令的执行时间相同,处理器内各部分可以很好地流水作业,处理器速度比同时期的CISC处理器要来得快。使用精简指令集设计的处理器,过去主要是很多工作站的处理器。现在低端的主要是手机中的处理器,高端的则是专门处理图形和图像的GPU(Graphics Processing Unit)。
易然复杂指令集和精简指令集的处理器各有千秋,但是在学术界几乎一边倒地认为复杂指令集的设计过时了,精简指令集是先进的。尤其是美国所有大学计算机原理和计算机系统结构两门课用的都是亨尼西和帕特森合著的教科书。在很长时间里,书中以介绍亨尼西自己设计的MIPS精简指令芯片为主。同时,IEEE和ACM系统结构的论文也以精简指令为主。英特尔设计8086时还没有精简指令集芯片,否则,英特尔很可能会采用这种技术,而不是复杂指令集。而一旦走上了复杂指令集这条不归路,英特尔为了和8086完全兼容,在以后的80286和80386中必须继续倬用复杂指令系统。在上世纪80年代中后期,不少精简指令集处理器做出来了,包括亨尼西设计的MIPS,后来用于SGI工作站;以及帕特森设计的RISC,后来用于IBM的工作站。精简指令集芯片的速度当时比复杂指令集芯片的要快得多。
到了上个世纪80年代末,英特尔面临一个选择,是继续设计和以前x86兼容的芯片还是转到精简指令的道路上去。如果转到精简指令的道路上,英特尔的市场优势会荡然无存;如果坚持走复杂指令的道路,它就必须逆着全世界处理器发展潮流前进。在这个问题上,英特尔处理得很明智。首先,英特尔必须维护它通过x86系列芯片在微处理器市场上确立的领先地位。但是,万一复杂指令的处理器发展到头了,而精简指令代表了未来的发展方向,它也不能坐以待毙。
于是英特尔在推出过渡型复杂指令集的处理器80486的同时,推出了基于精简指令集的80860。事实证明这个产品不是很成功,显然,市场的倾向说明了用户对兼容性的要求比性能更重要。因此,英特尔在精简指令上推出80960后,就停止了这方面的工作,而专心做“技术落后”的复杂指令集系列。在整个20世纪90年代,只有英特尔一家坚持开发复杂指令集的处理器,对抗着整个处理器工业界。
应该 英特尔在精简指令处理器的工作没有白做,它在奔腾及以后的处理器设计上吸取了RISC的长处,使得处理器内部流水线的效率提高很多。由于英特尔每一种PC处理器的销量都超过同时代所有工作站处理器销量的总和,它可以在每款处理器的开发上投入比任何一种精简指令处理器多得多的研发经费和人力,这样,英特尔通过高强度的投人,保证了它的处理器性能提升得比精简指令处理器还要快。而在精简指令阵营,上个世纪90年代5大工作站制造商太阳、SGI、IBM、DEC和惠普各自为战,每家都生产自己的精简指令处理器,加上摩托罗拉为苹果生产的PowerPC,6家瓜分一个市场,最后谁也做不大、做不好。
到了2000年前后,各家的处理器都做不下去了,或全部或部分地开始采用英特尔的产品了。而最早的精简指令集处理器MIPS现在几乎没有人用了。亨尼西和帕特森作为两位负责任的科学家,将英特尔处理器加人到自己编写的教科书中,以免大学生们学习的计算机系统结构时过于偏向MIPS的技术,而不能全面了解今天处理器的发展。
英特尔经过10年努力,终于打赢了对摩托罗拉RISC处理器之战。需要强调的是,英特尔不是靠技术,而是靠市场打赢此战的。英特尔的表现在很多地方都可圈可点。首先,英特尔坚持自己系列产品的兼容性,即保证以往的软件程序能在新款处理器上运行。这样时间一长,用户便积累了很多在英特尔处理器上运行的软件。每次处理器升级,用户原来的软件都能使用,非常方便。因此大家就不愿意轻易换用其他厂商的处理器,即使那些处理器更快。而其他处理器厂商这点做得都没有英特尔好,它们常常每过几年就重起炉灶,害得用户以前很多软件都不能用了,必须花钱买新的。时间一长,用户就换烦了。第二,英特尔利用规模经济的优势,大力投入研发,让业界普遍看衰的CISC处理器一代代更新。在上个世纪90年代初,英特尔的x86系列和RISC处理器相比在实数运算上要略逊一筹。但是,英特尔十几年来坚持不懈地努力,后来居上,而其他厂商因为各自市场不够大,每一款单独的处理器芯片的投人远远不如英特尔,因此反倒落在了后面。与其说英特尔战胜其他厂商,不如说它把竞争对手熬死了。第三,英特尔并没有拒绝新技术,它也曾经研制出两款不错的RISC处理器,只是看到它们前途不好时,立即停掉了。第四,英特尔运气很好,在RISC处理器阵营中,群龙无首。这一战,看似英特尔单挑诸多处理器领域的老大。但是,这几家做RISC处理器的公司因为彼此在工作站方面是竞争对手,自然不会用对手的产品,而目各自为战,互相拆台打价格战。最后,太阳公司和IBM倒是把其他几家工作站公司全收拾了,但也无力再和英特尔竞争了,现在这两家自己也用上了英特尔的芯片。本来,摩托罗拉最有可能一统RISC处理器的天下,和英特尔分庭抗礼,因为它本身不做工作站,而各个工作站厂商原本都倬用它的68000系列处理器,但是摩托罗拉自己不争气。原因我们前面已经分析过了。
摩托罗拉虽然失败了,但是RISC体系并没有从此消失,它后来给英特尔带来了巨大的麻烦,这是后话了。
本书评论