计算机体系结构之流水线技术课件.ppt
《计算机体系结构之流水线技术课件.ppt》由会员分享,可在线阅读,更多相关《计算机体系结构之流水线技术课件.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3 流水线技术张伟计算机学院大纲n1 概念定义n2 流水线分类n3 MIPS五级流水线n4 性能分析n5 流水线相关n6 高级流水线技术1 概念定义概念定义洗衣店的例子nA,B,C,D 均有一些衣物要均有一些衣物要 n清洗,甩干,折叠清洗,甩干,折叠n清洗要花30 分钟n甩干要用40 分钟n叠衣物也需要20 分钟n四人衣物一共要花 4*(30+40+20)=360分钟流水线的基本概念ABCD6 PM789TaskOrderTime30 40404040 20四人衣物一共要花 30+40*4+20=210分钟流水线的基本概念n流水线技术:把一个重复的过程分解为若干个子过程,每个子程序可以与其他子
2、过程同时进行n描述流水线的工作,最常用的方法是时间-空间图(时空图)q横坐标:表示时间,即各个任务在流水线中所经过的时间q纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage)流水线的时空图流水线的特点n流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间n流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间n流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stal
3、l)n流水线开始需要“通过时间”(Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率2 流水线分类流水线分类流水线的分类(1)n按流水线所完成的功能分类q单功能流水线:只能完成一种固定功能的流水线q多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能n例如:TI ASC的多功能流水线流水线的分类(2)n按流水线在同一时间内各段的连接方式分类q静态流水线:n在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,才能重新连接以实现其他功能。n在静态流水线中,只有当输入是
4、一串相同的运算操作时,流水的效率才能得到发挥。n动画演示q动态流水线:n在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 n动画演示n动态流水线VS静态流水线q优点:能提高流水线的效率q缺点:会使流水线的控制变得复杂流水线的分类(3)n按照流水线的级别来分n部件级流水线(运算操作流水线):q把处理机的算术逻辑部件分段,使得各种数据类型的操作能够进行流水。n处理机级流水线(指令流水线):q把指令的解释执行过程按照流水方式进行处理。n处理机间流水线(宏流水线):q它是指由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。动画解析流水线的分类(4)n按流水线是否有
5、反馈回路分类q线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次。q非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用。(举例)流水线的分类(5)n按照数据表示来分n标量处理机:q不具有向量指令和向量数据表示,仅对标量进行流水处理的处理机。q例如:IBM360/91,Amdahl 470V/6 等n向量处理机:q具有向量指令和向量数据表示的处理机。q例如:TI ASC,CRAY-I 等流水线的分类(6)n按照流动是否可以乱序来分n顺序流动流水线:q流水线输出端任务流出的顺序与输入端任务流入的顺序相同。n异步流动流水线
6、(乱序流水线):q流水线输出端任务流出的顺序与输入端任务流入的顺序不同。3 MIPS五级流水线五级流水线DLX(Dancing Links)nDLX DLX 是一种简单的指令集(教学、简单芯片)是一种简单的指令集(教学、简单芯片)n在不流水的情况下,如何实现在不流水的情况下,如何实现DLXDLX。q实现DLX指令的一种简单数据通路MIPS的基本流水线nMIPS指令集结构用5个功能段实现,每个功能段用一个时钟周期1.取指令周期IF(Instruction Fetch)2.指令译码/读寄存器周期ID(Instruction Decode)3.执行/地址计算周期EX(Execute)v存储器访问(计
7、算有效地址)v寄存器寄存器ALU操作v寄存器立即数ALU操作4.存储器访问周期MEM(Memory Access)5.写回周期WB(Write Back)MIPS的简单实现MemoryAccessWriteBackInstructionFetchInstr.DecodeReg.FetchExecuteAddr.CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSignExtend4AdderZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm2.一条MIPS指令最多需要以下5个时钟周期:q取指令周期
8、(IF)操作nIRMemPCnNPCPC+4q指令译码/读寄存器周期(ID)操作nA RegsrsnB RegsrtnImm (IR16)16#IR16.31)指令的译码操作和读寄存器操作是并行进行的。原因:在MIPS指令格式中,操作码字段以及rs、rt 字段都是在固定的位置。这种技术称为固定字段译码技术。q执行/有效地址计算周期(EX)不同指令所进行的操作不同:n存储器访问指令 操作 ALUoA+Immn寄存器寄存器ALU指令 操作 ALUoA func Bn寄存器立即值ALU指令 操作 ALUoA op Immn分支指令 操作 ALUoNPC+(Imm2);cond(A=0)将有效地址计算
9、周期和执行周期合并为一个时钟周期,这是因为MIPS指令集采用loadstore结构,没有任何指令需要同时进行数据有效地址的计算、转移目标地址的计算和对数据进行运算。q存储器访问/分支完成周期(MEM)n所有指令都要在该周期对PC进行更新。除了分支指令,其他指令都是做PCNPCn在该周期内处理的MIPS指令仅仅有load、store和分支三种指令。n存储器访问指令 操作 LMDMemALUo 或者 MemALUoBn分支指令 操作 if(cond)PC ALUo else PCNPCq写回周期(WB)不同的指令在写回周期完成的工作也不一样。n寄存器寄存器ALU指令 操作 Regsrd ALUon
10、寄存器立即数ALU指令 操作 Regsrt ALUonload指令 操作 Regsrt LMD3.不采用单周期实现方案的主要原因q对于大多数CPU来说,单周期实现效率很低,因为不同的指令所需完成的操作差别相当大,因而所需要的时钟周期时间也大不一样。q单周期实现时,需要重复设置某些功能部件,而在多周期实现方案中,这些部件是可以共享的。q每一个时钟周期完成的工作看作是流水线的一段,每个时钟周期启动一条新的指令。n流水实现的数据通路q设置了流水寄存器n段与段之间设置流水寄存器n流水寄存器的命名 用其相邻的两个段的名称拼合而成。例如:ID段与EX段之间的流水寄存器用ID/EX表示n每个流水寄存器是由若
11、干个寄存器构成的 3.5.2 基本的MIPS流水线流水实现的数据通路流水实现的数据通路n寄存器的命名形式为:x.yn所包含的字段的命名形式为:x.ys 其中:x:流水寄存器名称 y:具体寄存器名称 s:字段名称 例如:ID/EX.IR:流水寄存器ID/EX中的子寄存器IR IRID/EX.IRop:该寄存器的op字段(即操作码字段)n流水寄存器的作用q将各段的工作隔开,使得它们不会互相干扰。q保存相应段的处理结果。例如:EX/MEM.ALUo:保存EX段ALU的运算结果MEM/WB.LMD:保存MEM段从数据存储器读出的数据q向后传递后面将要用到的数据或者控制信息 所有有用的数据和控制信息每个
12、时钟周期 会随着指令在流水线中的流动往后流动一段。q 增加了向后传递IR和从MEM/WB.IR回送到通用寄存 器组的连接。q 将对PC的修改移到了IF段,以便PC能及时地加 4,为取下一条指令做好准备。2.每一个流水段进行的操作nIRrsIR6.10nIRrtIR11.15nIRrdIR16.20 流水段流水段流水线的每个流水段的操作所有指令类型所有指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.IR MemPCIF/ID.NPC,PC IF/ID.NPC,PC (ifif(EX
13、/MEM.IRop=branch EX/MEM.IRop=branch)&EX/MEM.condEX/MEM.cond)EX/MEM.ALUo else PC+4EX/MEM.ALUo else PC+4););ID/EX.A RegsIF/ID.IRrsID/EX.A RegsIF/ID.IRrs;ID/EX.B RegsIF/ID.IRrtID/EX.B RegsIF/ID.IRrt;ID/EX.NPC IF/ID.NPCID/EX.NPC IF/ID.NPC;ID/EX.IR IF/ID.IRID/EX.IR IF/ID.IR;ID/EX.Imm ID/EX.Imm (IF/ID.IRI
14、F/ID.IR1616)1616#IF/ID.IR#IF/ID.IR16.3116.31;EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A funcfunc ID/EX.B ID/EX.B或或EX/MEM.ALUo EX/MEM.ALUo ID/EX.A ID/EX.A opop ID/EX.Imm ID/EX.Imm;EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.A+ID/EX.Imm ID/EX.A+
15、ID/EX.Imm;EX/MEM.BID/EX.BEX/MEM.BID/EX.B;EX/MEM.IR ID/EX.IREX/MEM.IR ID/EX.IR;EX/MEM.ALUo EX/MEM.ALUo ID/EX.NPC+ID/EX.NPC+ID/EX.Imm2 ID/EX.Imm2;EX/MEM.cond EX/MEM.cond (ID/EX.A ID/EX.A=0 0););(动画演示)(动画演示)(动画演示)(动画演示)(动画演示)流水段流水段任何指令类型任何指令类型ALU ALU 指令指令load/store load/store 指令指令分支指令分支指令MEMMEMWBWBMEM/
16、WB.IR EX/MEM.IRMEM/WB.IR EX/MEM.IR;MEM/WB.ALUo MEM/WB.ALUo EX/MEM.ALUo EX/MEM.ALUo;MEM/WB.IR EX/MEM.IRMEM/WB.IR EX/MEM.IR;MEM/WB.LMD MEM/WB.LMD MemEX/MEM.ALUo MemEX/MEM.ALUo;或或MemEX/MEM.ALUo MemEX/MEM.ALUo EX/MEM.B EX/MEM.B;RegsMEM/WB.IRrd RegsMEM/WB.IRrd MEM/WB.ALUo MEM/WB.ALUo;或或RegsMEM/WB.IRrt Re
17、gsMEM/WB.IRrt MEM/WB.ALUo MEM/WB.ALUo;RegsMEM/WB.IRrt RegsMEM/WB.IRrt MEM/WB.LMD MEM/WB.LMD;流水线的每个流水段的操作(动画演示)(动画演示)(动画演示)(动画演示)4 流水线性能分析流水线性能分析流水线性能分析n吞吐率(throughput rate)单位时间内流水线所完成的任务数或输出结果的数量n加速比(speedup ratio)完成一批任务,使用非流水线执行时间与使用流水线执行时间之比n效率(efficiency)(指流水线的设备利用率)从时空图看,就是n个任务占用的时空区和m个段总的时空区之比1
18、.吞吐率n单位时间内流水线所完成的任务数量最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率各段相等:TPmax=1/t0各段不等:TPmax=1/maxti最大吞吐率取决于流水线最慢的功能段所需的时间实际吞吐率假设m段时间相等t0的流水线完成n个任务 t0 (说明)例题 分析n一个具有7段流水线的CPU,各段的执行时间分别为2ns,2.2ns,2.5ns,2.2ns,2.3ns,2.1ns,2.3ns,在该CPU上完成10个连续任务所需要的时间为()ns,该CPU的最高频率为()MHz.流水线优化思路n流水线各段时间不等带来性能损失q举例n消除瓶颈的方法 (举例)q细分瓶颈段 q重复设
19、置瓶颈段 (时-空图)2.加速比n完成一批任务,使用非流水线执行时间与使用流水线执行时间之比假设m段时间相等t0的流水线完成n个任务3.效率n由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。n从时空图看,就是n个任务占用的时空区和m个段总的时空区之比假设m段时间相等t0的流水线完成n个任务(举例)例题1n在静态流水线上计算 AiBi,(i=4)求:吞吐率,加速比,效率。解:n(1)确定适合于流水处理的计算过程n(2)画时空图n(3)计算性能q吞吐率 TP7(20t)q加速比 S(34t)(20t)1.7q效率 E(4436)(820)0.21 A1B1+A2B2+A3B
20、3+A4B4进一步优化n可以看出,在求解此问题时,该流水线的效率不高。(原因)n动态流水线的时空图 举例 n这样行不行?n正确答案n瓶颈问题q理想情况下,流水线在工作时,其中的任务是同步地每一个时钟周期往前流动一段。q当流水线各段不均匀时,机器的时钟周期取决于瓶颈段的延迟时间。q在设计流水线时,要尽可能使各段时间相等。n流水线的额外开销p流水寄存器延迟p时钟偏移开销3.3.5 流水线设计中的若干问题q流水寄存器需要建立时间和传输延迟n建立时间:在触发写操作的时钟信号到达之前,寄 存器输入必须保持稳定的时间。n传输延迟:时钟信号到达后到寄存器输出可用的时 间。q时钟偏移开销n流水线中,时钟到达各
21、流水寄存器的最大差值时间。(时钟到达各流水寄存器的时间不是完全相同)有关流水线性能的若干问题n(1)流水线并不能减少(而且一般是增加)单条指令的执行时间,但却能提高吞吐率。(2)适当增加流水线的深度(段数)可以提高流水线的性能。(3)流水线的深度受限于流水线的延迟和流水线的额外开销。(4)相关问题。如果流水线中的指令相互独立,则可以充分发挥流水线的性能。但在实际中,指令间可能会是相互依赖,这会降低流水线的性能。下一节介绍如何解决相关问题。5 流水线相关流水线相关流水线中的相关(1)n流水线中存在一些冲突(冒险Hazard,相关、依赖Dependence,竞争Competition)的情况,它使
22、得下一条指令无法在预定设计的时钟周期内执行。这些冲突将降低流水线性能n主要有三种类型的冲突(相关)q结构相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求q数据相关(数据冲突):在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)q控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令流水线中的相关(2)n相关有可能会使流水线停顿。n当一条指令被暂停时,暂停在其后发射(流出)的指令,但继续执行在其前发射的指令。n消除相关的基本方法:q让流水线中的某些指令暂停,而让其它指令继续执行。结构相关n1.在流水线机器中,为了使各种指令组合能顺利地重叠执行,需要
23、把功能部件流水化,并把资源重复设置。n2.如果某种指令组合因资源冲突而不能顺利重叠执行,则称该机器具有结构相关。n3.常见的导致结构相关的原因:q功能部件不是全流水q重复设置的资源的份数不够n4.结构相关举例:访存冲突q当数据和指令存在同一存储器中时,访存指令会导致访存冲突。q解决办法:插入暂停周期(“流水线气泡”)引入暂停后的时空图q解决方法:设置相互独立的指令存储器和数据存储器或设置相互独立的指令Cache和数据Cache。n5.避免结构相关q所有功能单元完全流水化q设置足够的硬件资源硬件代价很大n6.有些设计方案允许有结构相关q降低成本q减少部件的延迟数据相关n1.数据相关简介q当指令在
24、流水线中重叠执行时,流水线有可能改变指令读/写操作数的顺序,使之不同于它们在非流水实现时的顺序,这将导致数据相关。q举例q当两条指令对存储器同一单元进行读写时,也可能发生数据相关。但本章仅讨论有关寄存器的数据相关。n2.利用定向技术减少数据相关引起的暂停q(1)主要思路:在发生上述数据相关时,如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。q(2)当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。q(3)工作过程演示q(4)一个功能单元的输出不仅可以定向到其自身的输入,而且还可以定向
25、到其它单元的输入。q(5)所有的定向发生在:(图示)ALU或DM输出 ALU输入,DM输入,“O”检测部件数据相关的分类n按照指令对寄存器的读写顺序,可以将数据相关分为以下三种类型:n(考虑两条指令i和j,假设i先进入流水线)n(1)写后读相关(RAW)(命名规则)n在 i 写入之前,j 先去读。j 读出的内容是错误的。这是最常见的相关。n(2)写后写相关(WAW)n(3)读后写相关(WAR)n4.需要暂停的数据相关n(1)并非所有的数据相关都可以用定向技术解决.举例n(2)增加流水线互锁硬件,插入“暂停”。当互锁硬件发现这种相关时,就 暂停流水线,直到相关消失。举例:演示A(流水线)演示B(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 之流 水线 技术 课件
限制150内