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

5.1 CPU 的功能和基本结构

基本结构

  • 运算器
    • 算数逻辑运算
    • 暂存寄存器
    • 累加寄存器
    • 通用寄存器组
    • 程序状态寄存器
    • 移位器
    • 计数器
  • 控制器
    • 程序计数器
    • 指令寄存器
    • 指令译码器
    • 存储器地址寄存器
    • 存储器数据寄存器
    • 时序系统
    • 微操作信号发生器

5.2 指令执行过程

指令周期

  • 取址周期
  • 间址周期
    • 取操作数有效地址并存至 MDR
  • 执行周期
  • 中断周期

指令周期数据流

指令执行方案

  • 单指令周期
  • 多指令周期
  • 流水线方案

5.3 数据通路的功能和基本结构

数据通路的功能

  • 数据在功能部件间传送的路径

数据通路的基本结构

  • CPU 内部单总线方式
  • CPU 内部三总线方式
  • 专用数据通路方式

5.4 控制器的功能和工作原理

控制器的结构和功能

硬布线控制器

  • 又称组合逻辑控制器
  • 硬布线控制器时序系统
    • 时钟周期
      • 节拍发生器
    • 机器周期
      • 一般以存取周期作为基准时间
    • 指令周期
  • 微操作命令
  • CPU 的控制方式
    • 同步控制方式
      • 控制电路简单但运行速度慢
    • 异步控制方式
      • 各部件按自身固有速度工作,通过应答方式联络
    • 联合控制方式
      • 大部分采取同步控制,小部分采取异步控制

微程序控制器

  • 将机器指令编写成一个微程序。将微操作信号代码化。
  • 基本术语
    • 微命令与微操作
      • 相容性互斥性
    • 微指令与微周期
    • 主存储器与控制存储器
    • 程序与微程序
    • 微地址寄存器(CMAR)
    • 微指令寄存器(CMDR)
  • 控制器的组成
    • 控制存储器(CM or CS)
      • 存放微程序
    • 微指令寄存器
    • 微地址形成部件
    • 微地址寄存器
  • 微程序控制器工作过程
    1. 取微指令公共操作
    2. 将机器指令确定操作码对应的微程序入口送入 CMAR
    3. 从 CM 中逐条取出微指令并执行
    4. 执行完成后回到取址微程序的入口地址,重新进行1。
  • 微指令编码方式
    • 目标
      • 保证速度
      • 尽可能短
    • 直接编码方式
      • 无需移码
        • 优点快,无需译码,方便并行,缺点是字过长
    • 字段直接编码方式
      • 将微命令字段分成若干小字段,互斥的放在一个子段,相容的分开,每个子段单独编码
      • 可以缩短指令字长,但需要译码,所以稍慢
      • 分段原则
        • 互斥在一起,相容分开
        • 每个小段信息不能过多避免译码时间过长
        • 每个小段需要一个状态表示不发出微命令,通常000
    • 字段间接编码方式
      • 由其他子段某些微命令解释
      • 字短,速度慢,不易并行,仅用于辅助
  • 微指令的地址形成方式
    • 断定方式
    • 根据机器操作码
    • 增量计数器法 (CMAR) + 1 -> CMAR
    • 根据各种标志决定转移地址
    • 通过网络测试形成
    • 硬件直接产生
  • 微指令格式
    • 水平型微指令
      • 指令中的一位对应一个控制信号
      • 优点快,缺点长
    • 垂直型微指令
      • 微操作码编译法
    • 混合型微操作
  • 微程序控制单元设计
  • 动态微程序设计
    • 根据要求可改变微程序,通常需要 EPROM
  • 毫微程序设计
    • 进一步用耳机控制存储器中的豪微程序来解释

微程序控制器与硬布线控制器对比

微程序控制器硬布线控制器
执行速度
规整性较规整繁琐、不规整
应用场合CISC CPURISC CPU
易扩充性易扩充和修改困难

5.5 指令流水线

流水线方式

  • 依靠多个部件并行工作来缩短执行时间
  • 每个功能段部件需要一个缓冲寄存器(锁存器)
  • 流水线个阶段时间需要尽量相等
  • 同一种任务时效率较高
  • 需要装入时间和排空时间

流水线的分类

  • 按级别
    • 部件功能级
      • 将复杂的逻辑运算组成流水线工作方式
    • 处理机级
      • 将一条指令的解释过程分为多个子过程
    • 处理机间级
      • 宏流水?
  • 按功能
    • 单功能流水线
    • 多功能流水线
  • 按动态静态
    • 静态
      • 按单一连接方式
    • 动态
      • 能提高效率,但控制比较复杂
  • 按是否线性
    • 线性
      • 不存在反馈回路
    • 非线形
      • 存在反馈回路,一些功能可以多次通过流水线

影响流水线的因素

  • 数据冲突(数据冒险)
    • 处理方式
      • 硬件阻塞(空泡)
      • 设置专用通路
      • 编译器进行优化
  • 控制冲突(控制冒险)
    • 处理方式
      • 简单(静态)预测
      • 动态预测
      • 两个分支都预取
      • 提前形成条件码

流水线性能指标

  • 流水线吞吐率 $TP = n / T_k$,其中 $TP$ 为吞吐率,$n$ 是任务数,$T_k$ 是处理 $n$ 个任务所需时间
  • 流水线加速比 $S = T_0/T_k$,其中$T_0$ 为不使用流水线的时间,$T_k$ 表示使用流水线的时间
  • 流水线的效率 E = n 个任务实际占用的时空有效面积/时空总面积

超标量流水线

  • 超标量流水线技术
    • 每个时钟周期内并发多条独立指令
  • 超流水线技术
    • 对每个时钟周期再分段
  • 超长指令字

Leave a Comment