指令系统与寻址方式

指令的组成

  • 操作码(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 等

复习建议:熟悉每种寻址方式的有效地址计算;理解流水线各阶段职责与三类相关的成因与缓解手段。