0%

计算机组成原理复习笔记5-中央处理器

5.中央处理器

(★★★)指令的执行过程

指令周期

  • 一个指令周期包括四个部分,从前到后分别是
    • 取指周期:取指令
    • 间址周期(可无):取操作数的有效地址
    • 执行周期:执行指令
    • 中断周期(可无):处理中断请求

指令周期的数据流及对应微操作

取指周期

  • 数据流
序号 数据流 解释说明
1 PC \(\rightarrow\) MAR \(\rightarrow\) 地址总线 \(\rightarrow\) 主存 PC 中的地址送入主存
2 CU发出控制信号 \(\rightarrow\) 控制总线 \(\rightarrow\) 主存 CU 向主存发出控制信号
3 主存 \(\rightarrow\) 数据总线 \(\rightarrow\) MDR \(\rightarrow\) IR 主存将指定地址的指令送入 IR 寄存器
4 CU发出读命令 \(\rightarrow\) PC 内容加 1 PC 自增
  • 微操作
序号 微操作 说明
1 PC \(\rightarrow\) MAR 将现行指令地址送入 MAR
2 1 \(\rightarrow\) R 命令存储器读
3 M( MAR ) \(\rightarrow\) MDR 现行指令从存储器中读至 MDR
4 MDR \(\rightarrow\) IR 现行指令送入 IR
5 OP( IR ) \(\rightarrow\) CU 指令操作码送入 CU 译码
6 ( PC ) + 1 \(\rightarrow\) PC 形成下一条指令的地址

(★)小总结:主存 和 CPU 的数据交互总是经过总线相应的寄存器

间址周期

  • 数据流
序号 数据流 解释说明
1 Ad( IR ) \(\rightarrow\) MAR \(\rightarrow​\) 地址总线 \(\rightarrow​\) 主存 IR 中指令的地址码部分送入主存
2 CU发出读命令 \(\rightarrow\) 控制总线 \(\rightarrow\) 主存 CU 向主存发出控制信号
3 主存 \(\rightarrow\) 数据总线 \(\rightarrow\) MDR 主存将指定地址的有效地址送入 MDR 寄存器
  • 微操作
序号 微操作 说明
1 Ad( IR ) \(\rightarrow\) MAR 将指令字的地址码(形式地址)部分送入 MAR
2 1 \(\rightarrow\) R 命令存储器读
3 M( MAR ) \(\rightarrow\) MDR 有效地址从存储器中读至 MDR

执行周期

  • 数据流(具体指令具体分析)

  • 微操作(具体指令具体分析)

中断周期

  • 数据流
序号 数据流 解释说明
1 CU 控制将 SP 减 1 \(\rightarrow\) MAR \(\rightarrow\) 地址总线 \(\rightarrow\) 主存 将栈顶指针送入主存
2 CU发出写命令 \(\rightarrow\) 控制总线 \(\rightarrow​\) 主存 CU 向主存发出控制信号
3 PC \(\rightarrow\) MDR \(\rightarrow\) 数据总线 \(\rightarrow\) 主存 保存断点到主存
4 CU ( 中断服务程序的入口地址 )\(\rightarrow\) PC 将中断服务程序的入口地址送入 PC

(★★)数据通路及控制器

(详见教材)

(★★)异常与中断

(详见教材)

解题技巧及重要结论

  • 几个概念的关系
    • 指令与微程序一一对应
    • 微程序由多条微指令
    • 每条微指令中又有多条微操作
  • 若指令系统中,具有 n 种机器指令,则控制存储器中的微程序数量至少为 n + 2 ( 2 的含义:1 条公共取指,1 条处理中断)
  • 指令流水线中的计算
    • 吞吐率
      • 基本公式
        • \(TP=\frac{n}{T_k}\)
          • \(n\) 为任务数,\(T_k\) 是完成 \(n\) 个任务所花费的时间
      • 当流水线各段处理时间相等时,进一步有
        • \(TP=\frac{n}{(k+n-1)\Delta t}​\)
          • k 级流水线,\(\Delta t\) 为时钟周期
    • 加速比
      • 基本公式
        • \(S=\frac{T_0}{T_k}\)
      • 当流水线各段处理时间相等时,进一步有
        • \(S=\frac{kn\Delta t}{(k+n-1)\Delta t}=\frac{kn}{k+n-1}\)
    • 流水线效率
      • \(E=\frac{T_0}{kT_k}\)
        • \(T_0\) 为顺序执行 \(n\) 个任务所用的总时间
  • 依据各段指令的时间,确定时钟周期:选各段指令的时间最大的
  • 超标量流水线的含义:指的是 CPU 中存在一条以上的流水线,在每个时钟周期内可以完成一条以上的指令(空间换时间)
  • 单流水线处理机(度为 1 )和超标量流水线(度为 d)的多条指令连续执行的时间计算问题
    • 利用公式 \(T_k=(k+n-1)\Delta t\) ,其中 k 级流水线,n 为指令条数, \(\Delta t\) 为时钟周期
    • 注意:超标量中指令条数要除以度数,再带入公式计算
  • 影响流水线的因素
    • 结构相关(资源冲突)
      • 多条指令同一时间竞争统一资源
      • 解决方案
        • 前一条使用时,后一条等待一个时钟周期
        • 设置更多的相关资源
    • 数据相关(数据冲突)
      • 后一条指令需要前一条指令执行完毕才能执行(比如说后一条指令需要前一条指令计算的结果)
      • 解决方案
        • 后一条指令中插入 NOP 操作,等待前一条指令执行完成
        • 设置数据旁路
        • 编译优化,调整指令顺序
    • 控制相关(控制冲突)
      • 指令跳转时,导致流水线断流
      • 解决方案
        • 分支预测

参考资料

  1. 计算机组成与系统结构.袁春风等
  2. 2020年计算机组成原理考研复习指导.王道论坛