1.复杂指令系统计算机(CISC)
1.1 背景
由于VLSI技术的发展,使得硬件成本不断降低,软件成本不断上升,从而促使人们为增强原有指令的功能,而在指令系统中设置更复杂的新指令来实现软件功能的硬化。
1.2 特点
- 指令系统庞大,指令数目一般在200条以上。
- 指令长短不固定,指令格式多,寻址方式多。
- 可以访存的指令不受限制。
- 各种指令的使用频度相差很大。
- 各种指令的执行时间相差很大。大多数指令需要多个时钟周期才能完成。
- 控制器大多采用微程序控制。部分指令非常复杂,以至于无法采用硬连线控制。
- 难以用优化编译生成高效的代码。
2.精简指令集系统计算机(RISC)
2.1 背景
人们发现,CISC中只有约20%的简单指令被反复使用,约占整个程序的80%。因此,为了使指令系统简化,尽量使用寄存器-寄存器操作指令,指令格式力求一致,便提出了RISC。
2.2 特点
- 只选取使用频度高的一些简单指令,复杂指令则由简单指令的组合来实现。
- 指令长度固定,指令格式少,寻址方式少。
- 只有Load/Store指令才能访存,其余指令均是在寄存器之间进行操作的。
- CPU中的通用寄存器的数量很多。
- RISC采用指令流水线技术,大部分指令在一个时钟周期内完成。
- 以硬布线控制为主,不用或少用微程序控制。
- 能通过编译优化来减少程序的执行时间。
3.CISC与RISC的比较
项目\类别 | CISC | RISC |
---|---|---|
指令系统 | 复杂,庞大 | 简单,精简 |
指令数目 | 一般 > 200 | 一般 < 100 |
指令字长 | 不固定 | 固定 |
可访存指令 | 无限制 | 只有Load/Store |
各指令访存时间 | 相差很大 | 大多数在一个时钟周期内完成 |
各指令使用频度 | 相差很大 | 相差不大 |
通用寄存器数量 | 较少 | 多 |
目标代码 | 难以进行编译优化 | 可以进行编译优化 |
控制方式 | 多数为微程序控制 | 多数为组合逻辑控制 |
指令流水线 | 可通过一定方式实现 | 必须实现 |