指令系统发展的两个方向:CISC和RISC。
回顾一下程序执行的CPU时间的公式,
所以,减少程序执行时间可以,
- 减少指令条数
- 降低执行每条指令的时钟数
- 提升时钟频率。这和硬件发展强相关,这里不考虑
减少指令条数,可以,
- 优化编译器
- 增加单条指令的功能
CISC
- 减少指令条数,使用复杂的指令
- 容易变成,程序代码量少
- X86是CISC
- 商业上很成功
RISC
- 减少CPI,使用大量单周期指令
- 增加了指令条数
- 可能减少时钟周期时间
- 技术上的胜利者
复杂指令系统的不足,
- 设计周期长,准确性难以保证
- 需要大量硬件支持
- 很多复杂指令使用频率很低,造成资源浪费。统计显示,使用最频繁的前10条指令在程序中占比达到
96% - 许多指令由于操作繁杂,其CPI值比较大,执行速度慢
- 规整性不好,不利于采用流水线技术来提高性能
RISC是近代计算机系统结构发展史中的一个里程碑。
RISC遵循的原则,
- 指令条数少,功能简单
- 指令格式简单、规整,并减少寻址方式
- 指令的执行在单个周期内完成
- 只有LOAD/STORE才能访问存储器,其他的指令都是在寄存器间进行
- 大多数指令都采用硬连逻辑来实现
- 强调优化编译器的作用,为高级语言生成优化的代码
- 充分利用流水技术来提高性能
网友评论