RISC,精简指令集;CISC,复杂指令集

来源:互联网 发布:夸客金融数据分析面试 编辑:程序博客网 时间:2024/05/17 01:07

RISC,精简指令集;CISC,复杂指令集
期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。今天只有Intel及其兼容CPU还在使用CISC架构。

    RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

在早期的计算机业界,编译器技术尚未出现。程式是以机器语言或汇编语言完成的。为了便于编写程式,电脑架构师设计出越来越复杂的指令,可以直接对应高级编程语言的高级功能。当时的看法是硬件比编译器更容易设计,所以结构的复杂性在硬件这端。
还有一个因素是当时的内存不仅容量少,而且速度很慢,使用的都是磁性技术。凭借高密度打包的指令,存取慢速资源的频率可以降低。

微处理器只有少量寄存器的两个原因是:

寄存器每一个比特位都比外部内存贵。以当时的集成电路技术水平,大量寄存器对芯片或电路板而言是难以承受的。
一旦具有大数量的寄存器,相关的指令字(opcode)将会需要更多的比特位(使用宝贵的RAM)来定位寄存器。

到目前为止,RISC 体系结构也还没有严格的定义,一般认为,RISC 体系结构应具有如下特点:
- 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3 种。
- 使用单周期指令,便于流水线操作执行。
- 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,
以提高指令的执行效率。

事实上,RISC 和CISC 各有优势,而且界限并不那么明显。现代的CPU 往往采用CISC 的外围,内部加入了RISC 的特性,如超长指令集CPU 就是融合了RISC 和CISC 的优势,成为未来的CPU 发展方向之一.

总结
RISC更有利于流水作业;大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。 RISC增加了寄存器的数量。RISC需要更多的内存

原创粉丝点击