计算机组成原理指令系统#540
指令类型与 CISC/RISC
约 745 字
目录 · 8 个章节
五类指令
CPU 支持的指令按功能分为五类:
| 类型 | 典型指令 | 本质 |
|---|---|---|
| 数据传送 | MOV, LOAD, STORE, PUSH, POP | 只改变数据位置,不改变值 |
| 算术运算 | ADD, SUB, MUL, DIV, INC, DEC | 让 ALU 做算术运算 |
| 逻辑运算 | AND, OR, XOR, NOT, SHL, SHR | 按位操作,用于掩码、标志位、乘除 2 的幂 |
| 程序控制 | JMP, BEQ, BNE, CALL, RET | 改变 PC 的值,从而改变执行顺序 |
| 输入输出 | IN, OUT | CPU 与外设交换数据 |
程序执行就是反复做三件事:取数据(传送指令)→ 运算(算术逻辑指令)→ 决定下一步去哪(程序控制指令)。
程序控制指令的核心
正常顺序执行:PC ← PC + 指令长度。跳转指令:PC ← 跳转目标地址。
程序控制类指令的本质就是修改 PC,从而改变下一条要执行的指令。
CISC vs RISC
| 对比项 | CISC | RISC |
|---|---|---|
| 设计目标 | 一条指令做更多事 | 每条指令简单快速 |
| 指令数量 | 多 | 少 |
| 指令长度 | 常变长 | 常定长 |
| 寻址方式 | 多 | 少 |
| 访存方式 | 运算指令可直接访存 | 只有 LOAD/STORE 访存 |
| 控制器 | 复杂 | 较简单 |
| 流水线 | 不友好 | 友好 |
| 程序长度 | 可能较短 | 可能较长 |
关键理解:CISC 追求指令功能强;RISC 追求指令执行规整、流水线高效。
Load/Store 结构
RISC 的核心设计原则——只有 LOAD 和 STORE 能访问内存,算术逻辑指令只在寄存器间操作:
LOAD R1, [A] → 内存 → 寄存器
LOAD R2, [B]
ADD R3, R1, R2 → 寄存器间运算
STORE [A], R3 → 寄存器 → 内存
好处:指令格式规整,执行步骤相似,易于设计流水线。
CISC 可直接
RISC 更适合流水线的原因
- RISC 指令简单、长度固定、格式规整 → 每条指令执行过程相似 → 流水线高效
- CISC 指令复杂、长度可变、功能差异大 → 不同指令执行步骤差异大 → 流水线控制复杂
ISA vs 微体系结构
| 概念 | 含义 |
|---|---|
| ISA(指令系统) | CPU 对软件暴露的接口——规定"看起来应该做什么" |
| 微体系结构 | CPU 内部具体实现——决定"内部实际怎么做" |
同一 ISA 可有多种微架构实现:单周期、多周期、流水线、超标量、乱序执行。只要最终表现符合 ISA,软件就能正常运行。
第 5 章知识框架
1. 指令格式 → 操作码 + 地址码
2. 地址数 → 零/一/二/三地址
3. 寻址方式 → 如何从地址字段找到操作数
4. 指令系统设计 → 指令类型、CISC/RISC、ISA 与硬件实现
考点
- 五类指令的本质区别:传送类不改变值,算术逻辑类改变值,程序控制类改变 PC。
- 变址寻址偏移量 = 元素下标 × 元素大小(如
int a[i],偏移 =i × 4)。 - CISC/RISC 对比表的每一条都能独立出题,理解"为什么"比背缩写重要。
- Load/Store 结构是 RISC 区别于 CISC 的核心特征,常作为 RISC 定义的一部分考察。
- ISA 是接口,微架构是实现——不要把指令系统描述成 CPU 内部结构。
讨论
0 条评论
登录后参与讨论
登录后可以发布评论、回复和点赞。
暂无评论。