2.1.3 RISC VS CISC(译)

      70年代有过超复杂指令的实验,可能是用解释器做的。设计者尝试缩小“机器能做什么”和“高级语言需要什么”之间的语义鸿沟。几乎没有任何人考虑过设计更简单的机器,就像现在没有太多研究关心如何设计低耗能的电子表格,网络,Web服务器,等等。

      有一个团体反抗这种趋势,尝试吸收西摩·克雷在高性能计算机上的理念,该团体领导人是IBM的约翰·科克。这些工作导致了一个实验性质的微型计算机的诞生,它就是801。虽然IBM从未生产该机器,而且研究结果多年以后才被发布(Radin,1982),但是消息传出后其他人也开始投资相似的体系结构。

      在1980年,一个由大卫·帕特森和卡罗·赛坤领导的,位于伯利克里的组织开始设计VLSI CPU芯片,不使用解释器(帕特森,1985,帕特森和赛坤,1982)。他们为这个概念创造了术语RISC,并且把他们的CPU芯片命名为RISC I CPU,接着是RISC II。稍晚,在1981年,斯坦福的San Francisco Bay,John Hennessy设计并且制造了一个有点与众不同的芯片,被称作MIPS(Hennessy,1984)。这些芯片发展成商业上具有重要价值的产品,而后SPARC和MIPS各走各的路。

      这些新型处理器与当时的商业处理器迥然不同。既然它们不用向后兼容现有产品,它们的设计者就可以就可以自由选择新的指令集来最大化整个系统的性能。尽管最初的重点是如何让简单指令快速执行,他们很快就意识到能快速开始指令是提升性能的关键。一条指令实际执行了多长时间没有每秒可以开始的指令数量重要。

      在那时这些简单处理器是第一次被设计出来,引人注目的特性是相对少得多的可用指令,一般50个左右。这个数字比已有计算机的200到300条要小得多,比如DEC VAX和大型IBM商用机。实际上,缩写词RISC全拼是Complex Instruction Set Computer(瘦身版VAX,VAX那时统治了各大学计算机系)。今天很少有人觉得指令集的规模是一个主要问题了,但是RISC的名字还是流传了下来。

      长话短说,伴随着RISC的支持者对已有秩序(VAX,英特尔,大型IBM商用机)的攻击,一场伟大的宗教战争打响了。他们声称设计计算机的最好方式就是使用少量的简单指令,在F.g.2-2图上的数据路径(两个寄存器,以某种方式组合它们)上执行一个循环,然后把结果存回到寄存器中。他们的争论是:即使CISC机器的一条指令抵得上RISC的四或五条,如果RISC指令快10倍(因为它们不用解释),RISC也赢了。需要指出的是,今天主存的速度已经赶上只读控件存储,所以解释器的副作用急剧增长,这对RISC机器十分有利。

      可能有人会想,按你这么说,RISC技术全面碾压,在商业上RISC机器(比如Sun UltraSPARC)应该把CISC机器(比如英特尔奔腾系列)干倒了才对。但是一点这种迹象也没有,为什么呢?

      首先,有向后兼容的问题,并且数十亿美元已经投资到英特尔的生产线上。然后,令人称奇的是,英特尔有能力采用相同的想法,即使是CISC体系结构。从486开始,英特尔CPU包括了一个RISC核心,用于在一个简单的数据路径循环中执行最简单的(往往也是最通用的)指令,同时用CISC的方式解释那些更复杂的指令。最终结果是通用指令很快,非通用指令较慢。尽管这种混合方式不如纯的RISC设计运行的快,它的兼容能力能使那些陈旧的软件可以不加修改的运行。

猜你喜欢

转载自www.cnblogs.com/xihui/p/11622098.html