复杂指令集计算机和精简指令集计算机

  • 由于不同处理器架构的设计理念不同,因此,其指令系统也不同。
  • 目前,指令系统正朝着两个完全不同的方向发展:
    • 不断向原有指令系统添加功能更强的复杂指令和更多的寻址方式,以便支持不断出现的新技术和新功能。采用这类架构的计算机,称为复杂指令集计算机 (Complex Instruction Set Computer, CISC),典型的有采用 Intel x86、IA64 架构的计算机。
    • 减少指令系统中的指令种类、规范指令格式、简化寻址方式,来降低成本、程序代码量和功耗,方便处理器内部的并行处理,从而大幅度提升处理器性能。采用这类架构的计算机,称为精简指令集计算机 (Reduced Instruction Set Computer, RISC),典型的有采用 ARM、MIPS、RISC-V 架构的计算机。

复杂指令集计算机 CISC

CISC 的设计需求

  • 降低指令系统与高级语言之间的语义差距
    • 降低编译哭设计难度
    • 提高编译效率
    • 优化编译结果
    • 增加语义接近高级语言语句的指令
  • 确保软件的向后兼容
    • 为确保在同一系列计算机的最新机型上也能够运行为该系列早期计算机设计的软件,则更新指令系统时不能减少原有指令,因此会导致指令数量越来越多
  • 更好支持操作系统
    • 操作系统的功能越来越丰富,这就要求指令系统不断扩充相应指令对其予以支持(例如多媒体指令和 3D 指令等)。

在指令字长受限的情况下如何扩充更多指令?

  • 压缩指令格式中地址码字段的长度
  • 设计多种寻址方式,满足寻址访问的需求
  • 不断向指令系统增加指令
  • 导致指令系统越来越庞大复杂

CISC 的主要特点

  • 指令系统庞大复杂,包含指令数目通常在 200 条以上。
  • 指令字长不固定,指令格式多,寻址方式多。
  • 对访存指令不加限制。
  • 各种指令的使用频度相差很大。
  • 各种指令的执行时间相差很大,多数指令需要多个时钟周期才能完成。需要通过一定方式实现指令流水线。
  • 大多数采用微程序控制器

精简指令集计算机 RISC

  • 随着人们对 CISC 的不断研究和测试,发现 CISC 符合“八二”定律,即在典型的 CISC 程序中,80% 的程序只用到了指令集的 20%。
  • 基于上述发现,人们遵循“大道至简”的设计哲学,提出了精简指令集计算机 RISC 的概念, 这是计算机系统架构领域的一次重大变革。
  • RISC 针对 CISC 的指令种类和数量太多、寻址方式太多、指令格式不规范等缺点,通过减少指令种类和数目、简化寻址方式、规范指令格式来大幅度提升处理器性能。

RISC 的主要特点

  • 尽量选取使用频度高的一些简单指令,而复杂指令的功能由这些简单指令的组合来实现。
  • 指令字长固定,指令格式少,寻址方式少。
  • 只允许 Load 和 Store 两种指令访问主存,其余指令的操作都在寄存器之间进行。
  • CPU 内包含有大量的通用寄存器,以減少对主存的访问
  • 通常采用指令流水线技术(实现指令并行执行),大部分指令在一个时钟周期内完成。
  • 采用硬布线控制逻辑,不用或少用微程序控制,大大提升控制部件的速度。
  • 特别注重编译优化,以减少程序运行时间。

总结

  • CISC 一般能够实现软件兼容,因为同系列的新机型包含了旧机型的全部指令
  • RISC 一般无法实现软件兼容。

习题