4.4 CISC和RISC的基本概念
1. CISC
- CISC (Complex Instructions Set Computer) ,即复杂指令集计算机。
- 特点:
- 指令系统复杂,指令条数多,寻址方式多,指令格式多而复杂,指令长度可变,操作码长度可变。
- 指令周期长,绝大多数指令需要多个时钟周期才能完成。
- 相关指令会产生显式的条件码,存放在专门的标志寄存器中,可用于条件转移和条件传送等指令。
- 指令周期差距大。各种指令都能访问存储器,有些指令还需要多次访问存储器,使得简单指令和复杂指令所用的时钟周期数相差很大,不利于指令流水线的实现。
- 难以进行编译优化。由于编译器可选指令序列增多,使得目标代码组合增加,从而增加了目标代码优化的难度。
- 无法使用硬布线控制器,只能使用慢速的微程序控制器
2. RISC
- RISC (Reduced Instructions Set Computer) ,即精简指令集计算机。
- 特点:
- 指令数目少,只包含使用频度高的简单指令。
- 指令格式规整。寻址方式少,指令格式少,指令长度一致,指令中操作码和寄存器编号等位置固定,便于取指令、指令译码以及提前读取寄存器中操作数等。
- 采用load/store型指令设计风格,一条指令的执行阶段最多只有一次存储器访问操作。
- 采用流水线方式执行指令,除load/store指令外,其他指令都只需要一个或小于一个时钟周期即可完成,指令周期短。
- 采用大量通用寄存器。编译器可将更多的局部变量分配到寄存器中,并且在过程调用时通过寄存器进行参数传递而不是通过栈进行传递,以减少访存次数。
- 采用硬布线控制器,可以不用或少用微程序控制器。
指令集 | CISC | RISC |
---|
指令特点 | 丰富且复杂 | 精简且高效 |
指令数目 | 多 | 少 |
指令字长 | 变长 | 定长 |
可访存指令 | 不限制 | 仅Load/Store指令 |
通用寄存器数量 | 少 | 多 |
控制方式 | 微程序 | 组合逻辑 |
流水线 | 可以实现 | 必须实现 |
指令执行时间 | 相差较大 | 绝大多数在一个时钟周期内完成 |