← Back to Learning Notes

Lecture 15:知识 - CISC 和 RISC 的基本概念

Chinese-language Computer Science 408 note: Lecture 15:知识 - CISC 和 RISC 的基本概念. Original source available where applicable.

On this page

This note is currently available in Chinese. The original wording, formulas and diagrams are preserved to avoid an unverified technical translation.

描述:CISC 与 RISC 是 ISA 设计哲学,不是“复杂就一定慢、精简就一定快”的简单标签。真正的性能还取决于微结构、编译器、流水线、Cache 和程序负载。

4.1 两种设计思想

名称 全称 核心思路 常见代表
CISC Complex Instruction Set Computer 让一条指令完成较复杂的基本功能,提供丰富指令与寻址 x86
RISC Reduced Instruction Set Computer 每条指令完成一个简单基本动作,复杂功能由多条简单指令组合 ARM、RISC-V
  • CISC 希望硬件直接支持更多高级语言层面的复杂操作,以减少一项任务的指令条数和软件显式步骤。
  • RISC 希望简化常用指令的语义、格式和执行路径,使单条指令更规则、行为更易预测,并通过组合指令实现复杂功能;它不要求整个 ISA 的指令条目数量在任何情况下都绝对更少。

4.2 典型特征对比

维度 CISC(传统特征) RISC(传统特征)
指令种类和功能 数量多、功能复杂,一条可完成多个微操作 种类较少、功能简单、粒度统一
指令长度 常含变长格式 常采用定长或较规则格式
寻址方式 通常较丰富 通常较少、更规则
访存方式 指令可直接对内存操作或完成复杂内存操作 常见 load/store 风格:仅读写指令访问内存,运算在寄存器间进行
控制实现 可用微程序/复杂译码实现 控制器和数据通路较规整,便于硬连线/流水化
指令执行 单条指令周期可能差异大 单条指令通常较短、易于规律化执行
代码密度 复杂指令可能减少指令条数 为同一复杂任务可能需要更多指令
  • “CISC 一条指令完成复杂功能”不代表一定用一块专用大电路;可由通用执行部件配合控制存储/微操作序列完成。
  • “RISC 一条指令一个动作”使指令译码和执行更利于并行化、流水化和低功耗设计,但程序可能使用更多显式指令。

4.3 硬件、编译器与应用

4.3.1 硬件实现取舍

  • CISC 的丰富格式和寻址方式使取指、译码、控制逻辑更复杂;现代实现常把复杂 ISA 指令解码为内部微操作,再由类似 RISC 的后端流水/乱序执行。
  • RISC 指令通常格式规整、执行行为更容易预测,较易设计深流水、超标量发射和能效优化,但不能仅靠 ISA 名称推断实际功耗或性能。
  • 两类 ISA 都能使用 Cache、流水线、分支预测、乱序执行等现代技术;这些优化并非某一类 ISA 的专属。

4.3.2 软件与生态

  • 编译器会把高级语言转换为目标 ISA 指令。CISC 可利用复杂指令压缩某些任务,RISC 则常通过优化的指令序列、寄存器分配和调度取得效率。
  • x86 仍广泛用于 PC 和服务器;ARM 在手机、平板、嵌入式和服务器中广泛使用;RISC-V 是开放 ISA,正在设备、教学和服务器等领域发展。
  • 设备类型不是绝对边界:x86 也用于服务器和嵌入式,ARM 也用于桌面/服务器。答题时应写“常见应用”,不要写成物理上只能用于某类设备。

题型:#CISC与RISC辨析

第一部分:判断关键词

题干关键词 更符合
指令功能复杂、寻址方式多、变长、微程序控制 CISC 的传统特征
指令简单规则、load/store、定长、寄存器操作、易流水 RISC 的传统特征
内部微操作、深流水、乱序、Cache 现代微结构特征,不能单独断定 ISA 类别

第二部分:易错点

  • RISC 并不是“指令数量绝对少”,而是强调单条指令功能和格式精简;完成同一任务的动态指令数可能更多。
  • CISC 不是“不能流水化”,RISC 也不是“每条永远一个周期”。现代处理器实现已大量融合设计思想。
  • ISA 是软件可见接口,微操作翻译和执行单元是实现细节;外部兼容 x86 的 CPU 内部可以非常像 RISC 后端。

相关知识

4.4 本节复盘

  • CISC 追求一条指令完成较复杂功能,RISC 追求简单规则指令组合完成复杂功能。
  • 传统上 CISC 指令/寻址更丰富、译码更复杂;RISC 更规则,便于流水和并行,但二者均可采用现代高性能微结构。
  • x86 是典型 CISC,ARM 和 RISC-V 是典型 RISC;应用领域有常见分布,不是绝对限制。
  • 任何性能判断都要落到具体 CPU、编译器和工作负载,不能只凭 CISC/RISC 标签下结论。