Post

指令周期和指令流水线

指令周期和指令流水线

指令周期

指令周期:处理单个指令的过程(时间)

  • 取指周期:从内存中提取一条指令
  • 执行周期:执行所提取的命令

只有当机器关闭、发生某种不可恢复的错误或遇到停止计算机的 程序指令时,程序执行才会停止

截屏2025-12-10 20.38.48

并非所有指令的周期都一样,例如,NOP(空操作)只有取指周期

间址周期

  • 操作数/间接寻址涉及访存
  • 间址周期:把间接地址的读取看成是一个额外的指令子周期

截屏2025-12-10 20.43.25

CPU

CPU的任务

截屏2025-12-10 20.44.07

寄存器

  • CPU需要在指令周期中临时保存指令和数据
  • CPU需要记录当前所执行指令的位置,以便知道从何处得到下一条指令

所以CPU需要一些小容量的内部存储器

  • PC 程序计数器:存有待取指令的地址
  • IR 指令寄存器:存有最近取来的指令
  • MAR 存储地址寄存器:存有存储器位置的地址
  • MBR 存储缓冲寄存器 / MDR 存储数据寄存器:存即将写入/刚刚读出存储器的字

####

截屏2025-12-10 20.45.53

截屏2025-12-10 20.46.17

截屏2025-12-10 20.49.38

截屏2025-12-10 20.49.51

取指周期

  • PC将地址传送到MAR,传给地址总线
  • 控制器通过控制总线请求读存储器
  • 存储器收到读请求后读取地址总线上的地址,将读取到的指令返回数据总线
  • CPU将数据总线上返回的指令复制给MBR,再转给IR

截屏2025-12-10 20.50.58

截屏2025-12-10 20.51.11

间址周期

  • MBR最右边的NN位是地址引用,被传送给MAR
  • MAR将地址通过总线传给存储器
  • 控制器通过控制总线请求读存储器
  • 存储器读出所需的数据/地址,送入MBR

截屏2025-12-10 20.51.26

截屏2025-12-10 20.51.44

截屏2025-12-10 20.52.05

中断周期

  • 保存PC当前值(返回地址)
    • 地址(栈顶-1)传入MAR
    • 数据传入MBR写入存储器
  • 控制器将中断程序的入口地址送入PC

指令流水线

  • 处理指令分为不同阶段,每个阶段由相应功能部件完成

流水处理(pipelining):如果一个产品要经过几个制作步骤,通过把制作过程安排在一条装配线上,多个产品能在各个阶段同时被加工

截屏2025-12-10 20.52.53

两阶段方法

  • 将指令处理分为:取指+执行
  • 在执行时取下一条指令
  • 问题
    • 执行时间长于取指时间
    • 访存冲突
    • 分支/跳转时待取指令未知

六阶段方法

截屏2025-12-10 20.53.39

流水线性能

截屏2025-12-10 20.54.23

This post is licensed under CC BY 4.0 by the author.

Trending Tags