0908学习日志

计算机组成原理

指令流水线

  1. 指令流水线的基本概念

    时间上的并行技术:流水线技术

    空间上的并行技术:超标量处理机

    假设一条指令的执行过程分为如下5个阶段(功能段或流水段)

    • 取指(IF):从指令存储器或Cache中取指令
    • 译码/读寄存器(ID):操作控制器对指令进行译码,同时从寄存器堆中取操作数
    • 执行/计算地址(EX):执行运算操作或计算地址
    • 访存(MEM):对存储器进行读/写操作
    • 写回(WB):将指令执行结果写回寄存器堆

    为了利于实现指令流水线,指令集应具有如下特征:

    • 指令长度应尽量一致,有利于简化取指令和指令译码操作。
    • 指令格式应尽量规整,尽量保证源寄存器的位置相同。
    • 采用LOAD/STORE型指令,其他指令不能访问存储器,这样可把LOAD/SZTORE指令的地址计算和运算指令的执行步骤规整在一个周期中。
    • 数据和指令在存储器中”按边界对齐“存放。
  2. 流水线的基本实现

    1. 流水线设计的原则
      1. 指令流水段个数以最复杂指令所用的功能段个数为准
      2. 流水段的长度以最复杂的操作所花的时间为准
    2. 流水线的逻辑结构
    3. 流水线的时空图表示
  3. 流水线的冒险与处理

    1. 结构冒险
    2. 数据冒险
      1. RAW
        • 延迟执行相关指令
        • 采用转发(旁路)技术
        • load-use数据冒险处理
      2. WAR
      3. WAW
    3. 控制冒险
  4. 流水线的性能指标

    1. 流水线的吞吐率(n是任务数,$T_k$是处理完n个任务所用的总时间,k为流水线的段数)

      $$ TP = \frac{n}{T_k} $$

      $\Delta t$为时钟周期。在输入流水线中的任务连续的理想情况下,一条$k$段流水线能在$k+n-1$

      $$ TP = \lim\limits_{n\to \infty} \frac{n}{(k+n-1)\Delta t} = \frac{1}{\Delta t} $$
    2. 流水线的加速比

      $$ S = \frac{T_0}{T_k} $$

      一条k段流水线完成n个任务所需的时间为$T_k=(k+n-1)\Delta t$。顺序执行n个任务时,所需的总时间为 $T_0=kn\Delta t$

      $$ S = \frac{kn\Delta t}{(k+n-1)\Delta t} $$$$ S_{\lim\limits_{n\to \infty}} = k $$
  5. 高级流水线技术

    1. 超标量流水线技术(多发射技术)
    2. 超长指令字技术
    3. 超流水线技术

多处理器的基本概念

  1. SISD,SIMD,MIMD的基本概念
    1. 单指令流单数据流(SISD)结构
    2. 单指令流多数据流(SIMD)结构
    3. 多指令流单数据流(MISD)结构(不存在)
    4. 多指令流多数据流(MIMD)结构
  2. 硬件多线程的基本概念
    1. 细粒度多线程
    2. 粗粒度多线程
    3. 同时多线程
  3. 多核处理器的基本概念
  4. 共享内存多处理器的基本概念
    • 统一存储访问(UMA)多处理器
    • 非统一存储访问(NUMA)多处理器