复杂指令集CISC和精简指令集RISC

Unix Linux 2016-12-05

复杂指令集CISC(Complex Instruction Set Computing)和精简指令集RISC(Reduced Instruction Set Computing)是两种广泛应用的微处理器指令集架构。相较CISC,RISC旨在精简的是单一指令所完成的工作量,而不是指令数量。

CISC

设计原理

编译器技术落后,复杂硬件结构以便程序的编写

在早期的计算机业界,编译器技术并不发达,程序多半以机器语言或汇编语言完成的。为了便于编写程序,电脑架构师设计出越来越复杂的指令,可以直接对应高级编程语言的高级功能,每个指令可执行若干低阶操作,诸如从内存读取、储存、计算操作,全部集于单一指令之中。当时的看法是硬件比编译器更容易设计,所以结构的复杂性在硬件这端。

内存容量小且慢

当时内存中的每一字节都很宝贵,例如只有几千个字节来存储某个完整系统。它使产业界倾向于高度编码的指令、长度不等的指令、多操作数的指令,以及把数据的搬移与计算合并在一起的指令。在当时看来,相对于使指令更容易解码,指令的编码打包问题尤为重要。

特点

  • 指令多而复杂,编译器很容易将高级语言编译成相应的汇编语言
  • 单一指令完成的操作多,汇编的代码小,进而内存占用少
  • 指令周期不等,不易实现流水线技术(pipeline)
  • 更多的晶体管用来实现复杂指令,占用寄存器的实现空间

RISC

设计原理

编译器使用增多,汇编语言减少

编译器通常情况下将高级语言都编译成精简的一系列指令,单一复杂指令很少使用。

微处理器比内存运行的更快

处理器运行的越来越快,为了解决内存瓶颈,支持更高频率的操作,就需要更多的寄存器(以及后来的缓存)。为此,必须降低微处理器原本的复杂度,以节省出空间给新增的寄存器和缓存。

特点

  • 指令简单,格式固定,编译效率高
  • 指令周期相等,易实现流水线技术
  • 精简的指令,节省出更多空间去实现寄存器,易于提高频率
  • 复杂指令被分解成多个简单指令,汇编代码大,占用内存大,从内存读入指令多,读取占用时间多
References

1. 精简指令集 2. RISC vs. CISC

Copyright (C) 2016 archiexie@cnblogs. All Rights Reserved.

相关推荐