指令系统与寻址方式
指令的组成
- 操作码(Opcode):指明要执行的操作类型(数据传送/算术逻辑/移位/控制转移/I\O)
- 地址码:给出操作数或操作数地址、结果地址、下一条地址等
- 扩展/标志位:条件码、立即数字段、长度等
常见寻址方式
- 立即寻址:操作数在指令中(
MOV R1, #5) - 寄存器寻址:操作数在寄存器中(
ADD R1, R2) - 直接寻址:操作数在主存的给定地址
- 间接寻址:地址字段指向一个存放实际地址的单元
- 基址/变址:
EA = 基址寄存器 + 偏移/EA = 变址寄存器 + 偏移 - 相对寻址:
EA = PC + 位移(常用在分支跳转)
指令类型
- 数据传送:
MOV/LDR/STR/LOAD/STORE - 算术逻辑:
ADD/SUB/MUL/DIV/AND/OR/XOR/NOT - 移位/旋转:
SHL/SHR/SAR/ROR - 控制转移:
JMP/BEQ/BNE/CALL/RET - 特权与系统:
INT/IRET/CLI/STI等
CISC 与 RISC
- CISC:指令复杂、长度不固定、微码控制、强调减少指令条数(如 x86)
- RISC:指令精简、长度固定、硬布线控制、流水线友好(如 MIPS/ARM)
- 现代高性能处理器常为“外 RISC 内复杂微结构”,融合多种优化手段
流水线与相关
flowchart LR
IF[取指] --> ID[译码/读寄存器] --> EX[执行/地址计算] --> MEM[访存] --> WB[写回]
- 结构相关:硬件资源冲突(解决:增加端口/复制资源)
- 数据相关:读写先后冲突(转发/前递、插入气泡)
- 控制相关:分支跳转导致取指不确定(分支预测、延迟槽)
分支预测概览
- 静态预测:固定策略(如“向后跳预测为取”)
- 动态预测:1/2 位饱和计数器、两级自适应、BTB/BTB+RAS 等
复习建议:熟悉每种寻址方式的有效地址计算;理解流水线各阶段职责与三类相关的成因与缓解手段。