流水线技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

局部时序
送回
每个模块都有一个开始信号, 同时产生一个完成信号。时序 是动态的,依赖于数据。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 22
控制结构的选择
同步的全局时序: 来自有限状态机控制器的控制信号(例 如,允许装载)。 同步的局部时序:局部电路,通过“握手” 方式来控制数据流:
输出: 6个多星期 设备:干衣机 功能:加热、旋转 干衣时间(DryerPD)= 60 分钟
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 2
每次洗一桶
众所周知,麻省理工学院的学生 们将一堆衣服长时期不洗的真正 原因不是因为耽搁,而是因为他 们太懒惰,抑或是因为他们有更 好的事情要做。 步骤1:
X
X “此处给定X” “得到X”
控制 逻辑
此处给出X 得到X 时钟
采用转换信号的异步局部时序系统:
X “此处给定X” “得到X”
X 此处给定X 得到X
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 23
自我计时样例
此处给定…..
得到它。
6.004 – 2002年秋季
2002年10月03日
策略:
将注意力集中在最慢的电路元件( 瓶颈)周围的流水线寄存器上。
吞吐量=8 ns分之一 延时=24 ns
6.004 – 2002年秋季
2002年10月03日 L09 – 流水线技术 12
流水线技术举例
观察: • 1阶段流水线在延时或者吞吐量 方面都没有改进。 • 通过对长的组合路径进行折分 来改进吞吐量,使得时钟速度 变得更快; • 流水线阶段太多只会增加延时 开销,而不会改进吞吐量。 • 要想保持合式的流水线,通常 需要紧紧连接在一起的许多寄 存器。
开始信号和完成信号都是由 各个主要子系统生成的,并 且与全局时钟同步。
每个子系统接受异步的开始信 号,并且生成异步的完成信号 (可能使用了局部时钟)。
最近几十年的伟大创意是:许多设 计工作都是通用的,但在特殊情况 下需要增加一些附加的工作。
这是创建带有不依赖于时间 部件的大系统的最佳方法。
6.004 – 2002年秋季
步骤2:
步骤3:
步骤4:
总时间=N*(WasherPD+DryerPD) = N*90 分钟
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 4
麻省理工学院洗多桶衣服的方法
麻省理工学院学生对洗衣服 流程采用流水线处理。
这正是我们所期待的方法! 步骤3: 步骤1:
步骤2:
事实上,如果我们能够正确估 计启动瞬间时间,则总洗衣时 间很可能是N*60+30分钟。在进 行流水线分析时,假设我们要 洗无穷多的衣服,则我们最感 兴趣的是“稳态”。
对于组合逻辑: 延时=tPD, 吞吐量=1/tPD。 我们不能更快地得到答案,但是我们 能否总是有效地利用硬件呢?
当H执行计算时,F和G处于闲置状态,只 是保持其输出不变。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 7
流水线电路
使用寄存器来保持H的输入不变! 在H对Xi执行计算的过程中,F和G就可以 工作在输入Xi+1上。我们已经创建了一个 2阶段流水线。如果我们在时钟周期j时 有一个有效的输入X,那么P(X)在时钟周 期j+2将是有效的。
L09 – 流水线技术 25
控制结构的分类
容易设计但大小固定的时间间隔 可能是浪费的(在时序上没有任 何数据相关)。 大系统会导致非常复杂的时序 生成器…。 一定不要这样做!
全局时间
同步 集中式的钟控有限状 态机会生成各种控制 信号。
异步 中央处理单元对当前时间 片进行裁剪,使之适合当 前任务。
局部时间
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 11
流水线方法论
第1步: 在电路中的每一个输出上画一条线, 将端点标记为终点。 第2步: 在通过不同电路连接的终点之间画一 条新线,确保穿过每条线的所有连接 都处在相同方向上。这些线被划分成 流水线阶段。 在穿过某个连接的单个线的每个点上 增加一个流水线寄存器,通常会生成 一个有效的流水线。
总时间 = N*Max(WasherPD, DryerPD) = N*60 分钟
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 5
一些定义
延时:
是指从某个输入建立到与该输入相关联的输出变成有效之间的延迟时间。
90 (哈佛大学洗衣服的延时=_________
分钟) 120 (麻省理工洗衣服的延时=_________ 分钟)
事实上,每次只洗一桶衣服不是 明智之举。
步骤2:
总时间=洗衣时间(WasherPD)+干衣时间(DryerPD) = 90 分钟
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 3
洗多桶衣服
下面介绍的是哈佛大学学生的洗衣 方法,采用的是“组合”方法。
(当然,这只是一个市井传闻而已。 实际上,哈佛大学的学生们都不自己 动手洗衣服。服务人员每周三上午会 来拿走脏衣服,并在下午喝茶时间将 熨平浆洗过的衣服送回来。) 步骤1:
L09 – 流水线技术 24
自我计时样例
此处给定…..
得到它。
不依赖于时序的良好设计: · 每个部件设定自己的时间约束条件; · 适应特殊情况(例如,乘以0)的局部处理; · 自动利用模块性能改进; · 可以是异步的(根本不需要时钟!),也可以是同步的。
6.004 – 2002年秋季
2002年10月03日
2002年10月03日 L09 – 流水线技术 19
6.004 – 2002年秋季
组合技术
我们可以将交织技术与流水线技术结合起 来使用。下面,C‘与带有8 ns传播延迟的 两个C元件交织在一起。结果,C’电路的 吞吐量为4 ns分之一,延时为8 ns。 我 们可以将它看作是穿过C’模块中间的附加 流水级阶段。我们的分隔线中必须有一条 穿过该流水线阶段。 通过将交织技术和流水线技术组合 在一起,我们就可以将瓶颈从C元 件转移到F元件。
6.004 – 2002年秋季
2002年10月03日 L09 – 流水线技术 18
C(Xi-2)
“看上去就像是一个2阶段流水线”
电路交织
2个时钟周期的流水线:
“在TP时输入,在tI+2时输出"
N路交织等价于 N阶段流水线...
N-1个寄存器
N路 交织
延时=2个时钟周期。 • 时钟周期0:X0出现在输入端,通过上位锁存器 C0进行传播。 • 时钟周期 1:X1出现在输入端,通过下位锁存器 C1进行传播,将C0(X0) 传现播到寄存器输入上。 • 时钟周期2:X2出现在输入端,通过上位锁存器C 进行传播,将C0(X0)装载到寄存器中,在输出端 显示。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 15
6.004课程专家是怎样洗衣的?
他们重点解决的是瓶颈问题。首先,找到一个 干衣机数量是洗衣机数量2倍的地方。
步骤1: 步骤2: 步骤3:
吞吐量= 1/30
桶/分钟
延时=
步骤4:
90
桶/分钟
6.004 – 2002年秋季
假定F、G、H的传播延迟分别为15、20、25 ns,我们使用 的是理想的0延迟寄存器: 延时 吞吐量
非流水线:
2阶段流水线:
45 50
较差
1/45 1/25
较好
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 8
流水线时空图
X —
时钟周期
• M M
流 水 线 阶 段
输入 F寄存器 G寄存器 H寄存器
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 21
控制结构方法
同步 所有的计算“事件”都发生在 活动时钟周期边沿:时间被 细分成固定大小的离散时间 间隔。
严格
全局时间 根据固定的调度表,由集中 式有限状态机来确定时序。
异步 事件(比如寄存器装载)可以发 生在任意时间内。
电路交织
通过复制电路元件,并且交替 改变不同副本之间的输入,我 们就可以模拟一个较慢部件的 流水线情况。 当Q为1时,较低的路径是组合 的(锁存器打开),但是,为 下一个时钟沿准备的时钟寄存 器的输入将会激活上面路径的 输出。 同时,另一个锁存器负责保存 时钟 来自最后一个时钟的输入。
Q C1输出 多种选择器输出
延时 0阶段流水线: 1阶段流水线: 2阶段流水线: 3阶段流水线: 4 4 4 6
吞吐量 1/4 1/4 1/2 1/2
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 13
流水线技术小结
优点: ——通过折分长的组合路径这种方法来增加吞吐量, 从而增加了时钟频率。 缺点: ——可能会增加延时…… ——性能仅取决于最坏的连接:最慢的步骤制约着系统 的吞吐量。 难道没有一种方法来解决“最弱连接”问题吗?
2002年10月03日
L09 – 流水线技术 26
小结
• 延时(L)=给定输入到达输出所需要的时间。 • 吞吐量(T)=产生每个新输出的速率。 • 对于组合逻辑电路:L =电路的tPD,T = 1 /L。 • K阶段流水线(K>0): • 通常在输出端有寄存器; • 从输入到输出的每个路径上有K个寄存器; • 在时钟 I后不久,输入可用;在时钟(i+K)后不久,输出可用; • T = 1 /(tPD, REG+最慢流水线阶段的tPD+tSETUP): ——更大的吞吐量→将最慢的流水线阶段折分; ——如果不能进一步折分,则可以使用复制/交织技术。 • L = K/T ——流水线延时≥组合延时。
与某组特定输入数据相关的结果沿该图的对角线方向 移动,每个时钟周期通过一个流水阶段。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 9
流水线约定
定义: K阶段流水线(“K流水线”)是一个非循环电路,对应于从输入到输出的每一条路 径恰好有K个寄存器。 因此,组合电路是0阶段流水线。 约定: 在K阶段流水线中,每个流水线阶段的输出(而不是输入)都有一个寄存器。 通常: 对于所有寄存器公用的时钟来说,必须有足够长的周期时间,包括:组合路径中 的传播延迟+(输入)寄存器的tPD时间+(输出)寄存器的tSETUP时间。
假设洗衣服尽可能早地 开始,并且干洗机一直 ← 等待(衣服湿),直到 有干洗机可用时为止。
吞吐量:
输出或者输入的处理速率。
(哈佛大学洗衣服的吞吐量= (麻省理工洗衣服的吞吐量=
1/90 分钟) 1/60 分钟)
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 6
好,再返回到电路上…
流水线技术
西摩·克雷(Seymour Cray ,超级计算机之父)带给洗衣业的启迪
小测验2(下周进行)中将会涵盖星期二的讲座材料。实验3预定在今晚进行。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 1
忘掉6.004课程… 让我们先看一个“实际问题”
输入: 要洗的脏衣服 设备:洗衣机 功能:填充、搅动、旋转 洗衣时间(WasherPD)= 30 分钟
K阶段流水线的延时是对所有寄存器公用的时 钟周期的K倍。 K阶段流水线的吞吐量即是时钟频率。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 10
形式差的流水线
让我们考虑一个较差的流水线作业:
在上述K阶段流水线电路中K的值为多少? 答案: 无 问题: 连续输入被混淆了(比如 B(A(Xi+1), Yi))。之所以发生这种情况, 是因为:从输入到输出的某些路径上有2个寄存器,而另外一些路径上只有 一个寄存器。 在一个合式的K阶段流水线中,会发生这种情况吗?
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 14
流水线部件
流水线系统是可以分层次的: • 用一个K阶段流水线去替换某个较 慢的组合部件,这样就可以增加 时钟频率。 • 必须估计我们的计划中新流水线 阶段情况。 4阶段流水线,吞吐量=1
但是,怎样对干洗机采用流水线技术呢?
吞吐量=5 ns分之一 延时=25 ns
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 20
一些并行性…
步骤1: 步骤2: 步骤3: 步骤4: 步骤5: 我们可以将交织技术、流水线技术 与并行性技术组合在一起。
吞吐量 = 1/15 2/30 =_______ 桶/分钟 90 延时 = _______ 分钟
2002年10月03日
Hale Waihona Puke BaiduL09 – 流水线技术 16
电路交织
通过复制电路元件,并且交替 改变不同副本之间的输入,我 们就可以模拟一个较慢部件的 流水线情况。
C(Xi-2)
这是一个简单的2状 态有限状态机,在 每个时钟周期内在0 和1之间进行改变。
6.004 – 2002年秋季
2002年10月03日
L09 – 流水线技术 17
相关文档
最新文档