《计算机系统结构 流水线技术 3.2 DLX的基本流水线课件》由会员分享,可在线阅读,更多相关《计算机系统结构 流水线技术 3.2 DLX的基本流水线课件(66页珍藏版)》请在金锄头文库上搜索。
1、3.2DLX的基本流水线,3.2.1 DLX的一种简单实现,首先讨论在不流水的情况下,如何实现DLX。,1. 实现DLX指令的一种简单数据通路,第三章 流水线技术,项目调研与实践,项目调研与实践,2. 一条DLX指令最多需要以下5个时钟周期:,(1) 取指令周期(IF) IR MemPC NPC PC4 操作,3.2 DLX的基本流水线,项目调研与实践,项目调研与实践,(2)指令译码/读寄存器周期(ID) A RegsIR6 .10 B RegsIR11 .15 Imm (IR16)16 # IR16 .31 操作 指令译码和读寄存器是并行进行的。之所 以能做到这一点,是因为在DLX指令格式中
2、, 操作码在固定位置。这种技术也称为固定字段 译码。,3.2 DLX的基本流水线,项目调研与实践,项目调研与实践,(3)执行/有效地址计算周期(EX) 在这个周期,不同的指令有不同的操作。,3.2 DLX的基本流水线,项目调研与实践, 存储器访问 ALUOutput AImm 操作,项目调研与实践, 寄存器寄存器 ALU 操作 ALUOutput A op B 操作,项目调研与实践, 寄存器立即值 ALU 操作 ALUOutput A op Imm 操作,3.2 DLX的基本流水线,项目调研与实践, 分支操作ALUOutput NPCImm Cond (A op 0) 操作,项目调研与实践,(
3、4)存储器访问/分支完成周期(MEM) 在该周期处理的DLX指令只有Load、Store和 分支指令。,这里,将有效地址计算周期和执行周期合并为一个时钟周期,这是由 DLX指令集结构本身的特点所允许的,因为在DLX指令集结构中,没有任何指令需要同时计算数据的存储器地址、计算分支指令的目标地址和进行数据处理。,3.2 DLX的基本流水线,项目调研与实践, 存储器访问 LMD MemALUOutput 或 Mem ALUOutput B操作,3.2 DLX的基本流水线,项目调研与实践,项目调研与实践, 分支操作 if(cond)PC ALUOutput else PC NPC操作,项目调研与实践,
4、项目调研与实践,(5)写回周期(WB) 不同指令在该周期完成的工作也不一样。, 寄存器寄存器型 ALU 指令 RegsIR16 .20 ALUOutput操作 寄存器立即值型 ALU 指令 RegsIR11 .15 ALUOutput操作, Load 指令 RegsIR11 .15 LMD 操作,3.2 DLX的基本流水线,项目调研与实践,寄存器寄存器型 ALU 指令 RegsIR16 .20 ALUOutput,项目调研与实践,寄存器立即值型 ALU 指令 RegsIR11 .15 ALUOutput,项目调研与实践,Load 指令 RegsIR11 .15 LMD,3. 分支指令需要4个时
5、钟周期, 其它指令需要5个时钟周期 假设分支指令占总指令数的12, 则: CPI4.88 上述实现无论在性能上,还是在硬件开销上,都不是优化的。,3.2 DLX的基本流水线,3.2.2 基本的DLX流水线,我们可以把3.2.1中的数据通路流水化:每个时钟周期启动一条新的指令。这样,该数据通路中的每一个周期就成了一个流水段。,1. 一种简单的 DLX 流水线,2. 简单DLX流水线的流水过程,第一种描述(类似于时空图)第二种描述(按时间错开的数据通路序列),3.2 DLX的基本流水线,3.2 DLX的基本流水线,按时间错开的数据通路序列,3. 采用流水技术还应解决好以下几个问题:,上述简单DLX
6、流水线中:, 指令存储器(IM)和数据存储器(DM)分 开,避免了访存冲突。 ID段和WB段都要访问同一寄存器文件。 ID段:读WB段:写 如何解决对同一寄存器的访问冲突?,(1)应保证不会在同一个时钟周期内在同一数据 通路资源上做不同的操作。 例如,不能要求一个ALU同时既做有效 地址计算,又做减法操作。,3.2 DLX的基本流水线, 没有考虑 PC 问题,流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行PC值的加4操作,并保留新的PC值。这种操作必须在IF段完成,以便为取下一条指令做好准备。,3.2 DLX的基本流水线,但分支指令也可能改变PC的值,而且是在MEM段进行
7、,这会导致冲突。,为解决问题,我们重新组织数据通路,把所有改变PC值的操作都放在IF段进行。,但分支指令如何处理?,(2)每一流水段内的操作都必须在一个时钟周期 内完成, 流水线各段之间需设置流水线寄存器 (也称为锁存器) 流水线寄存器组及其所含寄存器的命名 例如,ID段和EX段之间的流水线寄存 器组中的IR寄存器的名称为:ID/EX.IR 流水线寄存器的作用 把数据和控制信息从一个流水段传 送到下一个流水段。,(3)流水线寄存器(组),3.2 DLX的基本流水线, 流水线寄存器的构成,4. DLX流水线的操作,对于流水线中的指令来说,在任一时刻,它仅在流水线中的某一段内执行操作。 因此,只要
8、知道每一流水段在各种指令下进行何种操作,就知道了整个流水线的操作。 (表3.1)给出了DLX流水线各段的操作。,3.2 DLX的基本流水线,流水段,表3.1 DLX流水线的每个流水段的操作,任何指令类型,ALU 指令,Load/Store 指令,分支指令,IF,ID,EX,IF/ID.IR MemPC,IF/ID.NPC,PC (if EX/MEM.cond EX/MEM.NPC else PC+4);,ID/EX.A RegsIF/ID.IR6.10; ID/EX.B RegsIF/ID.IR11.15;,ID/EX.NPC IF/ID.NPC; ID/EX.IR IF/ID.IR;,ID/
9、EX.Imm (IR16)16#IR16.31;,EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A op ID/EX.B 或EX/MEM.ALUOutput ID/EX.A op ID/EX.Imm;EX/MEM.cond 0;,EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A + ID/EX.Imm;,EX/MEM.ALUOutput ID/EX.NPC + ID/EX.Imm;EX/MEM.cond (ID/EX.A op 0);,(动画演示),(动画演示),(动画演示),(动画演示),(动画演示),流水段,任
10、何指令类型,ALU 指令,Load/Store 指令,分支指令,MEM,WB,MEM/WB.IR EX/MEM.IR; MEM/WB.ALUOutput EX/MEM.ALUOutput;,MEM/WB.IR EX/MEM.IR; MEM/WB.LMD MemEX/MEM.ALUOutput;或MemEX/MEM.ALUOutput EX/MEM.B;,RegsMEM/WB.IR16.20 MEM/WB.ALUOutput;或RegsMEM/WB.IR11.15 MEM/WB.ALUOutput;,RegsMEM/WB.IR11.15 MEM/WB.LMD;,表3.1 DLX流水线的每个流水段
11、的操作,(动画演示),(动画演示),(动画演示),(动画演示),5DLX流水线的控制,主要是确定如何控制那四个多路选择器。,3.2.3 流水线性能分析,吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。,1. 吞吐率,(1) 最大吞吐率TPmax,最大吞吐率是指流水线在连续流动达到稳定状态后所得到的吞吐率。 若流水线各段的时间相等,均为t0 , 则: TPmax 1 /t0,3.2 DLX的基本流水线, 若流水线各段的时间不等,则:, 最大吞吐率取决于流水线中最慢的一段所 需的时间,这段就成了流水线的瓶颈。, 消除瓶颈的方法 (举例),细分瓶颈段 重复设置瓶颈段 (时-空图),1,ma
12、xti ,TPmax,3.2 DLX的基本流水线,重复设置瓶颈段(时-空图举例), 第一种情况:各段时间相等(设为t0) 假设流水线由 m 段组成,完成 n 个任务。,时空图 完成 n 个任务所需的时间 T流水mt0(n1)t0 (说明),(2) 实际吞吐率TP,流水线的实际吞吐率小于最大吞吐率。,3.2 DLX的基本流水线,完成 n 个任务所需的时间,实际吞吐率,TP TPmax当n m 时,TP TPmax, 第二种情况:各段时间不等,时空图,3.2 DLX的基本流水线,3.2 DLX的基本流水线,完成 n 个任务所需的时间 T流水ti(n1)tj tjmaxti 实际吞吐率,i=1,m,
13、3.2 DLX的基本流水线,加速比是指流水线的速度与等功能非流水线的速度之比。,2. 加速比S,ST非流水T流水(其中T流水和T非流水分别为按流水和按非流水方式处理 n 个任务所需的时间),若流水线为 m 段,且各段时间相等,均为t0 ,则: T非流水n mt0 (解释) T流水mt0(n1)t0,3.2 DLX的基本流水线,3.2 DLX的基本流水线,可以看出:当n m 时,S m想一想:n 越大越好?,效率是指流水线的设备利用率。(1) 由于流水线有通过时间和排空时间,所以 流水线的各段并不是一直满负荷地工作。 故:E 1,3效率 E,3.2 DLX的基本流水线,3.2 DLX的基本流水线
14、,(2) 若各段时间相等,则各段的效率ei相等,即 e1e2 e3 emnt0T流水 (解释) 整个流水线的效率为:,当 n m 时,E 1,E ,nt0,T流水,n,mn1,1,n,1,m1,(3) 从时空图上看,效率实际上就是 n 个任务所占的时空区与 m 个段总的时空区之比,即:,n 个任务占用的时空区E (解释) m 个段总的时空区,3.2 DLX的基本流水线,(4) 提高流水线效率所采取的措施对于提高 吞吐率也有好处。,4流水线性能分析举例,例3.1 在静态流水线上计算 AiBi , 求:吞吐率,加速比,效率。,4,i=1,3.2 DLX的基本流水线,3.2 DLX的基本流水线,解:
15、(1) 确定适合于流水处理的计算过程,(2) 画时空图,(3) 计算性能 吞吐率 TP7(20t) 加速比 S(34t)(20t)1.7 效率 E(4436)(820)0.21,3.2 DLX的基本流水线,3.2 DLX的基本流水线,可以看出,在求解此问题时,该流水线的效率不高。 (原因),动态流水线的时空图 举例,3.2 DLX的基本流水线,举例 : 这样行不行? 正确答案,3.2 DLX的基本流水线,例3.2 假设前面DLX非流水线实现的时钟周期时间 为10ns,ALU和分支指令需要4个时钟周期,访 问存储器指令需5个时钟周期,上述指令在程序 中出现的相对频率分别是:40%、20%和40%
16、。在 基本的DLX流水线中,假设由于时钟扭曲和寄存 器建立延迟等原因,流水线要在其时钟周期时 间上附加1ns的额外开销。现忽略任何其他延迟 因素的影响,请问:相对于非流水实现而言, 基本的DLX流水线执行指令的加速比是多少?,3.2 DLX的基本流水线,解:当非流水执行指令时,指令的平均执行时 间为 TPI非流水 = 10ns(40%+20%)440%5) = 10ns4.4 = 44ns 在流水实现中,指令执行的平均时间 是最慢一段的执行时间加上额外开销,即 TPI流水 = 10ns+1ns = 11ns 所以基本的DLX流水线执行指令的加速比为,3.2 DLX的基本流水线,例3.3 假设在DLX的非流水实现和基本流水线中,5个 功能单元的时间为:10,8,10,10,7(ns), 流水额外开销为:1ns,求加速比S。,解:T非流水1081010745 (ns) T流水 10111 (ns