精简与复杂谁更强——深入了解计算机的核心体系

Author: CHO Date: 2000年 第3期

  CPU(Central Processor Unit,中央处理器)是计算机的核心,个人电脑的中央处理器从Intel的4004发展到现在的PentiumⅢ,除了性能上的飞跃、架构的改变,CPU的核心体系也发生了根本的改变。这些改变实际并不只是影响个人电脑的处理器,也对整个处理器技术的发展都具有深远的影响。
#1    一、CISC体系
  CISC(Complex Instruction Set Computer,复杂指令集计算机)是一种为了便于编程和提高内存访问效率的芯片设计体系。早期的计算机使用汇编语言编程,由于内存速度慢且价格昂贵,使得CISC体系得到了用武之地。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系——包括Intel的80x86和Motorola的68K系列等。
  1.CISC体系的指令特征
  使用微代码。指令集可以直接在微代码内存(比主内存的速度快很多)里执行,新设计的处理器,只需增加较少的晶体管就可以执行同样的指令集,也可以很快地编写新的指令集程序。
  庞大的指令集。可以减少编程所需要的代码行数,减轻程序员的负担。
  高级语言对应的指令集。包括双操作数格式、寄存器到寄存器、寄存器到内存以及内存到寄存器的指令。
  2.CISC体系的优缺点
  优点。能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上兼容。新的系统可以使用一个包含早期系统的指令超集,也就可以使用较早电脑上使用的相同软件。另外微程序指令的格式与高级语言相匹配,因而编译器并不一定要重新编写。
    缺点。指令集以及芯片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。
#1    二、RISC体系
  RISC(Reduced Instruction Set Computers,精简指令集计算机)是为了提高处理器运行的速度而设计的芯片体系。它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在芯片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU,厂商包括主要APPLE、SGI/MIPS、IBM、SUN、Compaq/Digital(DEC)、Motorola等。这些厂商设计的处理器在某种程度上,代表了RISC CPU的发展趋势。
  1.RISC体系的指令特征
  精简指令集。包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。
  同样长度的指令。每条指令的长度都是相同的,可以在一个单独操作里完成。
  单机器周期指令。大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。
  2.RISC体系的优缺点
  优点。在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度将是CISC的2~4倍。由于RISC处理器的指令集是精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。RISC处理器比相对应的CISC处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。
  缺点。多指令的操作使得程序开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快内存,这通常都集成于处理器内部,就是L1 Cache(一级缓存)。
#1    三、CISC VS RISC
  长期以来,由于英特尔的x86处理器可以执行1到87个字节长度的指令,人们都认为x86处理器是典型的CISC处理器。不过为了对付RISC天生以来所具备的优秀特性,Intel也感到了一定的压力。为了克服x86的缺点,英特尔(^03030101b^)在20世纪90年代中后期设计的x86处理器中开始使用了RISC技术,如内置一级缓存(486开始具备)和容量更大的二级缓存(高能奔腾开始具备)来克服主内存速度的瓶颈问题;使用超标量(奔腾开始具备两条流水线)、超流水线(高能奔腾开始具备)以增强指令的执行效率。从高能奔腾(奔腾Ⅱ的前身)起使用寄存器重命名以降低伪相关的困扰,采用重排序缓冲器(ROB)以及保留栈(存放着已经译码完毕的指令)来实现乱序执行;使用分支预测降低由于流水线空闲所带来的性能损失。而英特尔的主要对手AMD(^03030101a^)也采用了类似但更加先进的技术。如今,新的x86处理器都已经在译码的阶段把复杂的CISC指令转换(拆解)为更易执行的RISC指令,然后才交由执行部件执行。但即使x86阵营使尽法宝,RISC体系却依然是目前最快的系统架构。这也就是采用RISC体系的非x86处理器仍具备超凡的运算速度的秘密。
  对于CISC和RISC体系到底谁更好,长期以来都是业界争论较多的话题,支持RISC体系的厂商认为它廉价和运行速度快,因此代表未来微处理器的发展特征。反对者则认为,虽然RISC体系的硬件产品制造变得简单,但软件的开发会变得更复杂,即使执行相同的任务也必须编写更多的程序来完成,因此它并不能代表未来的方向。如果我们注意到PC的相关市场,可以看到尽管RISC体系的历史已经有10年,但一直没能将CISC体系踢出局,市场上的个人电脑、工作站和服务器大概有75%的仍基于CISC体系的结构。这也并不是说RISC真的不好,实际RISC和CISC体系的结构越来越接近,许多今天的RISC芯片仍然支持更多过去的CISC芯片,今天CISC芯片也运用了很多与RISC体系相关的技术,可以说,RISC和CISC是在共同发展的。
  在CISC体系中,Intel和AMD无疑都是拥趸,x86作为PC体系的标准架构,Windows95和Windows98是无法使用在其他平台上的,因此像Intel和 AMD这样的公司不可能全面放弃x86市场而转向RISC体系的。不过在保持CISC体系的x86标准兼容性的基础上,仍然有机会改变体系结构,但要全面使用RISC结构还是比较困难的。事实上,Intel和AMD都或多或少在它们的CPU产品中,采用RISC处理器的先进加速结构,使x86处理器的设计做得更好。比如现在AMD的Athlon处理器采用的Alpha EV6总线架构,就是根据基于RISC结构的Alpha的优势开发的技术,使其系统总线不同于Intel的GTL+总线,而在整体性能上有较大的提升。
#1    四、EPIC体系与x86处理器的发展
  EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)是否是RISC和CISC体系的继承者的争论已经有很多,单以EPIC体系来说,它更像Intel的处理器迈向RISC体系的重要步骤。从理论上说,EPIC体系设计的CPU,在相同的主机配置下,处理Windows的应用软件比基于Unix下的应用软件要好得多。
  今年Intel将发布采用EPIC技术的CPU——Itanium(开发代号即Merced)。它是64位处理器,也是IA-64系列中的第一款。微软也已开发了代号为Win64的操作系统,在软件上加以支持。作为2000年Intel在业界发布的重头产品,如果它能够获得成功,无疑为建立新的EPIC体系迈出了意义重大的一步。业界许多厂商甚至是RISC阵营的大厂商也都在关注Merced的发布,原因是x86处理器存在的巨大市场,CISC体系仍可能拥有较长的生存期,而RISC体系则不一定。如果这样的话,未来可能是EPIC体系的处理器甚至CISC处理器的天下,新的体系或许有机会拓展更广阔的处理器设计研发领域。Intel的强劲对手AMD公司方面,它的第8代微处理器中即K8将采用“闪电数据传输”技术。这枚代号为“Sledge Hammer”的处理器支持64位x86体系架构,同时向后兼容32位x86微处理器产品,包括应用软件和操作系统。据AMD声称,其他任何64位技术都不能同时支持32位和64位x86技术。在实际体系结构上,EPIC跟“Sledge Hammer”似乎无缘。
#1    结语
  CISC和RISC体系之间的差异已越来越小,基于两种体系的处理器的运算速度也越来越快,两种体系的厂商阵营都在展开着速度与性能的竞赛。未来的发展依然无法确定谁能取得最后的胜利,但结合CISC和RISC体系优势的EPIC体系或许会成为CPU核心设计的趋势。(^03030101c^)