计组(六)流水线技术


一、前缀知识

1.时空图

在这里插入图片描述
从时间和空间两个方面描述流水线的工作过程,横坐标表示时间纵坐标表示各流水段

注意纵坐标表示各流水段,不是各任务,比如下图就不是时空图。

在这里插入图片描述

2.流水线的分类

(1)重要的分类

按功能多少:

  • 单功能:只能完成一种固定功能的流水线。
  • 多功能:流水线的各段可以进行不同的连接,在不同的时间内或在同一时间内完成不同的功能。
    在这里插入图片描述

多功能流水线按流水线的连接特性分类

  • 静态流水线:是指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。(时空图不同功能部分不能重叠,必须等一个功能的指令都执行完才能开始另一个功能的指令执行
  • 动态流水线:在同一时间内,流水线的某些段正在实现某种运算,而流水线的另一些段同时在实现另外的一种运算。(时空图不同功能部分可以重叠

这点可以用时空图来解释:见题6.10

(2)不重要的分类

按照流水线使用的级别分类:

  • 部件级(指令级):将一条指令的执行过程分成若干子过程,每一子过程由一个独立的功能部件来实现。
  • 处理机级:多个功能部件连在一起构成流水线
  • 处理机间
    在这里插入图片描述

按照流水线中是否有反馈回路分类:

  • 线性(不重复模块)
  • 非线性(重复模块)
    在这里插入图片描述

按照输出端任务的流出顺序与输入端任务的流入顺序是否一致:

  • 顺序流动
  • 乱序流动

二、流水线的性能分析

三项性能指标:吞吐率、加速比和效率
在这里插入图片描述

1.加速比SP

S P = T 顺 T 流 SP=\dfrac{T_顺}{T_流} SP=TT

T 顺 T_顺 T

  • 当各段时间均为△t 的 m 段流水线,顺序完成 n 个任务,则:
    T 顺 = n m Δ t 0 T_顺 = nm \Delta t_0 T=nmΔt0

  • 当各段时间不相等的 m 段流水线,顺序完成 n 个任务,则:
    T 顺 = n ∑ i = 1 m Δ t i T_顺 = n\displaystyle \sum^{m}_{i=1} \Delta t_i T=ni=1mΔti

2.吞吐率TPmax和TP

  • 最大吞吐率 T P m a x TP_{max} TPmax:是指流水线在达到稳定状态后所得到的吞吐率。
  • 实际吞吐率 T P TP TP:设流水线由m段组成,完成n个任务的吞吐率。

(1)最大吞吐率

计算

  • 假设流水线各段的时间相等,均为 Δ t 0 \Delta t_0 Δt0,则:
    T P m a x = 1 Δ t 0 TP_{max} = \dfrac{1}{\Delta t_0} TPmax=Δt01

  • 假设流水线各段时间不等,第i段时间为 Δ t i \Delta t_i Δti ,则:
    T P m a x = 1 m a x { Δ t 0 } TP_{max} = \dfrac{1}{max\{\Delta t_0\}} TPmax=max{Δt0}1

最大吞吐率取决于流水线中最慢一段所需的时间,该段成为流水线的瓶颈。

那么消除瓶颈的方法:

  • 细分瓶颈段(增加流水线深度)
    在这里插入图片描述
    在这里插入图片描述
  • 重复设置瓶颈段
    在这里插入图片描述

(2)实际吞吐率

实际吞吐率 T P = n T 流 水 TP=\dfrac{n}{T_{流水}} TP=Tn,n表示任务的个数

  • 若各段时间相等(假设均为 Δ t 0 \Delta t_0 Δt0),则完成时间
    T 流 水 = m Δ t 0 + ( n − 1 ) Δ t 0 T_{流水} = m\Delta t_0 + (n-1)\Delta t_0 T=mΔt0+(n1)Δt0

这么理解:前半段红线是 ( n − 1 ) Δ t 0 (n-1)\Delta t_0 (n1)Δt0,后半段是流水线的深度 m Δ t 0 m\Delta t_0 mΔt0
在这里插入图片描述

  • 各段时间不相等的流水线,则完成时间
    T 流 水 = ∑ i = 1 m Δ t i + ( n − 1 ) Δ t m a x T_{流水} = \displaystyle \sum_{i=1}^{m}\Delta t_i + (n-1)\Delta t_{max} T=i=1mΔti+(n1)Δtmax

例:各段时间相等的流水线。

当△t=1ns,m=3,完成 100 个任务。流水线执行,则只需T流水= 3ns+99ns=102ns。实际吞吐率TP=100/(102ns)=980.39MIPS(单位换算:100÷102*1000)

例:各段时间不等的流水线。

假定某流水线有 5 段,其中 4 段的时间为 1ns,只有 1 段的时间为 2ns。若利用
此流水线完成 100 个任务,流水线执行所用时间为 T流水=6ns+99×2ns=204ns,实际吞吐率为 TP=100/204ns=490.19MIPS。

3.效率E

E = n 个 任 务 占 用 的 时 空 区 m 个 段 总 的 时 空 区 = T 顺 m × T 流 E=\dfrac{n个任务占用的时空区}{m个段总的时空区}=\dfrac{T_顺}{m\times T_流} E=mn=m×TT

  • 当各段时间均为△t 的流水线
    E = n Δ t 0 m Δ t 0 + ( n − 1 ) Δ t 0 E=\dfrac{n\Delta t_0}{m\Delta t_0+(n-1)\Delta t_0} E=mΔt0+(n1)Δt0nΔt0在这里插入图片描述

  • 当各段时间不相等的 m 段流水线
    E = n ∑ i = 1 m Δ t i m [ ∑ i = 1 m Δ t i + ( n − 1 ) Δ t m a x ] E=\dfrac{n\displaystyle \sum_{i=1}^{m}\Delta t_i}{m[\displaystyle \sum_{i=1}^{m}\Delta t_i+(n-1)\Delta t_{max}]} E=m[i=1mΔti+(n1)Δtmax]ni=1mΔti

  • 特殊排布的流水线(如动态流水线)
    在这里插入图片描述

三、习题

6.5

在这里插入图片描述
(1)TP=1000÷100025ns

6.9

在这里插入图片描述

6.10

在这里插入图片描述
在这里插入图片描述
错在没有分清静态流水线和动态流水线,如下错误答案。
在这里插入图片描述

  • 12
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值