
| 出版日期:2002-03-11 总期号:1099 本年期号:16 |
|
RISC/CISC都要改变
顾宇 RISC和CISC架构在现代计算机中的区别越来越小了,尤其对于市场的高端用户来说,这种差异更加难以区别。 传统意义上的精简指令集计算机(RISC)和复杂指令集计算机(CISC)在基本原理上就存在着差异。但是,现代的微控制器技术正在不断缩小着RISC架构和CISC架构之间的差异。 差异由来已久 RISC机型拥有一个有限的指令集合,并且能够极快地执行每一条指令。但是由于缺乏复杂指令,因此需要在软件方面进行大量的工作。RISC方案的另一个优势在于有限的指令数量能够产生一个很小的核心。但由于使用精简指令所编写出来的代码会更长,所以执行任务所需的内存也就更大。因此,对于复杂的程序来说,由于要考虑到各种可能的情况,最终的程序代码可能非常大。 另一方面,CISC机型有着丰富的指令集合,使计算机能够利用一两条指令就能执行非常复杂的操作,原因在于它通过运行一条内部微代码而把汇编指令分解成若干条内部微代码指令。这样做,设备的负担就不是很高,而且代码的分布密度也恰到好处。虽然CISC机型下的内核代码要比相应的RISC机型大许多,但由于代码密度分布合理,而且考虑到内存的因素,最终所产生的代码长度就没有RISC产生的那么大。 体系结构的差异更重要 微控制器之间的各种差异要比RISC和CISC种类上的差异重要得多。冯·诺依曼体系结构(Von Neuman)与哈佛体系结构(Harvard)之争就是此类差异之一。另外一种就是基于寄存器体系结构和基于累加器体系结构的差异。在冯·诺依曼体系结构中,数据和程序存储器是共享数据总线的。数据总线共享有很多优点,比如减小总线的开销。另外一个优点在于能够把RAM映射到程序空间,这样设备也能访问EEPROM中的内存。 而对于哈佛体系结构的计算机,程序和数据总线是分开的。这种方式的优势在于能够在一个时钟周期内同时读取程序和数据,这样就相应地减少了执行每一条指令所需的时钟周期。早期的哈佛架构的计算机是不能把查找表储存在程序存储器中的,而这个问题在现在的大多数设备中已经解决了。 哈佛体系结构计算机中存在的另外一个问题就是,如果要和外部的程序和数据存储器进行交互,对于两部分存储器来说,由于地址总线和数据总线的相互独立性,就需要额外增加大量的芯片管脚。因此,只有当至少有一种存储器的类型是内部的情况下,微处理器才会采用哈佛体系结构。 在基于累加器体系结构中,累加器既是数学运算单元(ALU)的数据源之一,又是ALU存放操作结果的地方。通常基于累加器体系结构的微处理器,能够在累加器与程序存储器中任何位置的存储单元或是RAM之间进行各种数学或逻辑操作。这种架构的优势就在于对于内存地址的访问更为方便快捷。 基于寄存器体系结构的微处理器中,会有一系列的寄存器直接与ALU相连。这种情况的好处在于不需要把所有的数据都压进一个累加器中,从而减少了许多在累加器架构中存在的“move”指令。因此,与把所有数据都要推进累加器中的情况相比,基于寄存器架构的微处理器大大提高了ALU的吞吐能力。 陈旧的体系差异明显 对于8位微处理器来说,能够很容易地区分RISC和CISC之间的不同。最主要的原因就是这些体系结构,除了少数例外,要比相应的32位微处理器陈旧得多。CISC体系结构的一个经典例子就是摩托罗拉开发的HC11系列。HC11核心处理器诞生于1984年。这种系列的微处理器拥有300多条指令,代码密度分布非常合理。HC11使用的是带有两个累加器的冯·诺依曼体系结构。由于所有的复杂指令都是在核心中完成的,所以执行每条指令的时间就很长。指令周期从8个时钟周期到164个时钟周期。核心过大导致处理器的最高主频不超过12MHz,这样的性能要远远低于某些RISC机型。 传统的8位RISC微处理器的一个例子就是由Microchip开发的PIC16C54。Microchip在1990年的时候把它推向市场。它采用的是一个基于单累加器的哈佛体系结构设备,使用有限指令集合。这样微处理器在执行每一条单个指令所需时间就很小。但是33条指令加上一页内存,生成的代码长度几乎是同种情况下HC11所得代码的两倍多。 新技术使得差异在减小 现在RISC机型与CISC机型的差距在不断减小。RISC机型中越来越多地增加了能够在几个时钟周期内就能执行的指令,同时在体系结构上的优化也使得高级语言更为有效。 CISC控制器在实现了管道技术之后,使得一条指令基本上在一个时钟周期之内就能够执行完,很大地改善了机器性能。但是,这种流水线操作有个很大的弊病在于每次的跳转或者执行分支指令,又或者是中断发生,都有可能导致管道内数据泛滥,反而导致更长的指令周期。虽然有一些方法能够降低这种不良效果,但是基本上都需要在软件中进行大量处理而最终会降低许多应用程序代码效率。 随着技术的进步,RISC和CISC机型之间的鸿沟已经越来越小,特别是对于市场的高端用户来说,这种差异已经逐渐变得难以区分了。我们或多或少地只能相信销售商所宣称的微处理器类型了。 |
|||||||||||||||||||||||||||