系统结构复习之流水线

流水线

  • 重叠方式
    • 顺序执行
    • 一次重叠
    • 二次重叠
  • 流水线
    • 流水线基本概念(时间重叠)
      • 时空图来描述流水线
      • 时空图另一种表示
      • MIPS五级流水线
      • 流水线特点
    • 流水线分类
      • 按处理级别
        • 指令流水线
        • 操作级流水线
        • 宏流水线
      • 按功能多少
      • 多功能,按同一时间内各段之间的连接方式
      • 流水线结构
      • 控制方式
      • 其他方式
        • 按处理的数据类型
        • 按任务从输出端的流出顺序
    • 性能分析
      • 吞吐率
      • 加速比
      • 效率
      • 提高流水线效率方法
        • 细分瓶颈段
        • 重复设置重复段
    • 流水线相关Hazard(冲突)
      • 什么是相关?
      • 相关几种类型?
      • 带来问题
      • 约定
      • 结构Hazard解决办法
      • 数据Hazard
        • 两条指令的关系
        • 解决办法
      • 控制Hazard
        • 解决
  • 指令级高度并行的超级处理机
    • ILP,指令级并行
    • 超标量处理机 SuperScalar
    • 超长指令字VLIW
    • 超级流水线

书中叫标量处理机,下章叫向量处理机,主要区分在于处理的是一个数据还是一组数据。

重叠方式

顺序执行

指令执行过程:取指令、 分析 、执行。依次进行。

一次重叠

三个动作中有一个动作是重叠的,称一次重叠。程序的执行时间减少了近1/3

二次重叠

执行时间缩短了2/3.部件利用率有了进一步提高。
二次重叠方式其实就是流水线。

流水线

流水线基本概念(时间重叠)

时空图来描述流水线

横坐标,时间,计算机的周期
纵坐标,空间,物理上一共有几级流水线

时空图另一种表示

横坐标,还是时间
纵坐标,指的是指令
中间内容,表示这条指令处于的流水线的级别

MIPS五级流水线

取指、译码、执行、存储器访问、写回
系统结构复习之流水线_第1张图片

流水线特点

  1. 功能部件 - 锁存器
  2. 独立工作的各子功能部件
  3. 各部件处理时间尽可能相等,争取最大工作频率
  4. 解决同步问题,保证以相同的速度处理
  5. 解决访存冲突,允许不同指令同时读,同时写。

流水线分类

按处理级别

分为操作流水线,指令流水线,宏流水线

指令流水线

处理的是指令,从取指到结果

操作级流水线

对指令操作,再进一步细分

宏流水线

通过不同机器完成细分的任务(不是指令了)。

按功能多少

单功能,只完成固定功能
多功能:配置下,可完成不同功能。

多功能,按同一时间内各段之间的连接方式

静态流水线:同一时间内,多功能只能按一种功能方式工作
动态流水线:同一时间内,可以处理多种功能。

流水线结构

线性流水线:不带反馈回路的流水线
非线性流水线:带反馈回路流水线。

控制方式

同步流水线:有共同的时钟,大部分流水线都是同步的。
异步流水线:如宏流水线

其他方式

按处理的数据类型

标量流水线和向量流水线

按任务从输出端的流出顺序

顺序流水线:指令流出顺序=指令流入顺序
乱序流水线:指令流出指令!=指令流入顺序

性能分析

吞吐率

单位时间内流水线完成的任务数或输出结果数量

系统结构复习之流水线_第2张图片 系统结构复习之流水线_第3张图片

加速比

完成一批任务,不用流水线比使用流水线执行时间之比
系统结构复习之流水线_第4张图片

系统结构复习之流水线_第5张图片

加速比不是越大越好,硬件上有锁存的保持等,需要付出一定的代价。

效率

流水线的设备利用率。
系统结构复习之流水线_第6张图片

系统结构复习之流水线_第7张图片

提高流水线效率方法

细分瓶颈段

系统结构复习之流水线_第8张图片

重复设置重复段

系统结构复习之流水线_第9张图片

流水线相关Hazard(冲突)

什么是相关?

由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。

相关几种类型?

  • 结构Hazard:由于资源冲突,造成的相关。典型的就是存储不足
  • 数据Hazard:需要等前面指令执行完,才能执行下一个。
  • 控制Hazard:分支判断,才能执行

带来问题

导致 错误的执行结果
流水线可能出现停顿,从而降低流水线的效率和实际的加速比

约定

当一条指令被暂停时,在该指令的后面所有相关指令都要被暂停。

结构Hazard解决办法

  1. 设置相互独立的指令存储器和数据存储器。
  2. 插入暂停周期(流水线气泡)

数据Hazard

两条指令的关系

写后读(容易产生相关)、写后写、读后写、读后读

解决办法

定向技术(旁路技术bypass技术):加上一个多路选择器,数据不再从寄存器中来,而是从产生的地方直接送到其他指令需要它的地方。

控制Hazard

分支成功:PC值改变为分支转移的目标地址,在条件判定和转移地址计算完成后,才改变PC
分支失败:pc值保持正常递增

解决

最简单办法:冻结(等待)或排空

  1. 尽早判断并分支,可以先猜一个(50%正确率),只要不往下执行就可以
  2. 延迟槽技术,猜的内容就放到延迟槽里,可以从前调度(从判断前,取指令放到延迟槽,这样保证100%要执行),也可以目标处调度(如循环,返回地址处),也可从失败处调度(从判断else处PC,放到延迟槽)

指令级高度并行的超级处理机

一个周期执行多条指令

ILP,指令级并行

利用流水线来使指令重叠执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。可以硬件也可软件实现

超标量处理机 SuperScalar

有多条流水线,完全由硬件来实现,如下图:
系统结构复习之流水线_第10张图片

超长指令字VLIW

多条指令拼成一条指令,靠编译器来实现。
系统结构复习之流水线_第11张图片

超级流水线

更细的流水线划分,这样每个时钟周期能够 分时流出多条指令
系统结构复习之流水线_第12张图片

你可能感兴趣的:(自学考试,c++,c语言,linux)