首先,复杂指令集(CISC)和精简指令集(RISC)都是历史的产物。
复杂指令集(CISC)
- 早期设计思路:计算机性能的提高通过增加硬件的复杂性来获得。
- CPU内存容量小,只能增加单一指令功能复杂,可以大幅减少程序使用的指令数量以减少内存需求。
- 编译器不成熟经常需要使用汇编语言编程,为了软件编程方便,为了减少计算机操作与高级语言的差别。为实现复杂操作,除了提供各种寄存器,多种灵活的编址方式和机器指令功能外,还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,微处理器在分析每一条指令之后执行一系列初级指令运算来完成所需的功能。
缺点:至使硬件越来越复杂,造价也相应提高,同时增加了设计的时间与成本还容易造成设计失误;各种指令的使用率相差悬殊;许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差。
随着技术的进步,存储器的速度不断提高,特别是高速缓冲(cache)的使用,使计算机体系结构发生了根本性的变化。同时,软件方面也发生了同等重要的进展,出现了优化编译程序,使程序的执行时间尽可能减少,并使机器语言所占的内存减至最小,在具有先进的存储器技术和先进的编译程序的条件下诞生了RISC体系结构,
- 指令操作数类型少。cisc的操作数有三种:寄存器、立即数和内存地址。risc的操作数只有寄存器和立即数,没有内存地址,需要操作内存数据的时候需要先通过load指令把内存数据加载到寄存器中,计算后用store指令回写到内存。
- RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。
- 指令数量少。risc更倾向于用多个单一功能的指令组合来取代cisc中的单一指令或者多个相似指令,因此在早期的risc指令集中,指令数量比cisc少得多。
RISC简化了处理器结构,实现和调试较容易,因而设计代价低,开发周期短,同时处理器占据了较小的芯片面积。