流水线技术学习培训.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《流水线技术学习培训.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 技术 学习 培训
- 资源描述:
-
1、第三章第三章 流水线技术流水线技术 3.1 流水线的基本概念流水线的基本概念3.2 DLX的基本流水线的基本流水线3.3 流水线的相关流水线的相关3.4 异常处理异常处理3.5 DLX中多周期操作的处理中多周期操作的处理3.6 MIPS R4000流水线流水线Review:性能评测性能评测 平均平均CPI?每类指令的使用频度每类指令的使用频度TypeCPIi for typeFrequency CPIi x freqIi Arith/Logic440%1.6Load530%1.5Store410%0.4branch320%0.6Average CPI:4.1是否可以使是否可以使 CPI 4.1
2、?IdealMemoryWrAdrDinRAdr323232DoutMemWr32ALU3232ALUOpALUControl32IRWrInstruction Reg32Reg FileRaRwbusWRb5532busA32busBRegWrRsRtMux01RtRdPCWrALUSelAMux01RegDstMux0132PCMemtoRegExtendExtOpMux01320123416Imm32 2ALUSelBMux1032ZeroZeroPCWrCondPCSrc32IorDMem Data RegALU OutBA 在一条指令执行过程中下图有许多空闲部件在一条指令执行过程中下
3、图有许多空闲部件 可以让指令重叠执行可以让指令重叠执行?洗衣为例洗衣为例 Ann,Brian,Cathy,Dave 每人进行洗衣的动作:每人进行洗衣的动作:wash,dry,and fold washer需要需要 30 minutes Dryer 需要需要 40 minutes“Folder”需要需要 20 minutesABCD3.1 流水线的基本概念流水线的基本概念Sequential Laundry 顺序完成这些任务需要顺序完成这些任务需要 6 小时小时 如果采用流水作业如果采用流水作业,需要多长时间需要多长时间?ABCD3040 20 3040 20 3040 20 3040 206
4、PM7891011MidnightTaskOrderTime流水线作业流水线作业:尽可能让任务重叠进行尽可能让任务重叠进行 流水作业完成四人的洗衣任务只需要流水作业完成四人的洗衣任务只需要 3.5 hours ABCD6 PM7891011MidnightTaskOrderTime3040404040 20流水线技术要点流水线技术要点 流水线技术并不能提高单个任务的执行效率,它可以流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率提高整个系统的吞吐率 流水线中的瓶颈流水线中的瓶颈最慢的那一段最慢的那一段 多个任务同时执行,但使用不同的资源多个任务同时执行,但使用不同的资源 其潜
5、在的加速比流水线的级数其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿由于存在相关问题,会导致流水线停顿 指令流水线:指令流水线:CPU执行大量的指令,指令吞吐率非常重要执行大量的指令,指令吞吐率非常重要 DLX 的指令格式的指令格式3.2 DLX的基本流水线的基本流水线Op312601516202125rsrtimmediateOp3126025Op312601516202125rsrtoffset added to PCr
6、dRegister-Register(R-type)ADD R1,R2,R3561011Register-Immediate(I-type)SUB R1,R2,#3Jump/Call(J-type)JUMP endfunc(jump,jump and link,trap and return from exception)所有指令相同长度所有指令相同长度在指令格式中寄存器位于同一位置在指令格式中寄存器位于同一位置只有只有Loads和和Stores可以对存储器操作可以对存储器操作DLX数据通路一种简单实现数据通路一种简单实现 MemoryAccessWriteBackInstructionFet
7、chInstr.DecodeReg.FetchExecuteAddr.CalcLMDALUMUXMemoryReg FileMUX MUXDataMemoryMUXSignExtend4AdderZero?Next SEQ PCAddressNext PCWB DataInstRDRS1RS2Imm基本操作基本操作(Step 1&2)Step 1-IF IR-MemPC-fetch the next instruction from memory NPC-PC+4-compute the new PC Step 2-ID-instruction decode and register fetc
8、h step A-RegsIR6.10 B-RegsIR11.16 可能读取的寄存器值没有用,但没有关系,译码后如果无用,以可能读取的寄存器值没有用,但没有关系,译码后如果无用,以后操作就不用后操作就不用 Imm (IR16)16#IR16-31基本操作基本操作Step 3,执行阶段执行阶段根据译码的结果,有四种情况 Memory Reference ALUOutput-A+(IR16)16#IR16.31-effective address SMD-B-data to be written if it is a STORE-SMD(store mem data)=MDR Register-R
9、egister ALU instruction ALUOutput-A op B Register-Immediate ALU instruction ALUOutput-A op(IR16)16#IR16.31)Branch/Jump ALUOutput-NPC+(IR16)16#IR16.31 cond-A op 0-for conditional branches As value is the condition base(=for BEQZ)在简单的在简单的 Load-Store机器中,不存在即需要计算存储器地址,指令地址机器中,不存在即需要计算存储器地址,指令地址,又要进行,又要进
10、行ALU运算的指令,因此可以将计算有效地址与执行合二为一运算的指令,因此可以将计算有效地址与执行合二为一,在一个流水段中进行。,在一个流水段中进行。Step 4&Step5Step 4 MEM-memory access/branch completion memory reference LMD-MemALUOutput-if its a load;LMD(load memory data)=MDR 或 MemALUOutput-SMD branch if(cond)then PC-ALUOutput else PC-NPC for Jumps the condition is always
11、 trueStep 5 WB-write back Reg-Reg ALU RegsIR16.20-ALUOutput Reg-Immed ALU RegsIR11.15-ALUOutput Load RegsIR11.15-LMD这种结构是否可行这种结构是否可行 模型是正确的,但没有优化模型是正确的,但没有优化 还有其他选择还有其他选择 指令和数据存储器是否可以分开指令和数据存储器是否可以分开 采用一个长周期还是采用一个长周期还是5个短周期实现个短周期实现单周期和多周期控制 多周期控制可实现指令重叠执行多周期控制可实现指令重叠执行DLX的基本流水线的基本流水线 假设流水线周期为每步所花费的时
12、间假设流水线周期为每步所花费的时间为什么用流水线为什么用流水线?假设执行假设执行100条指令条指令 单周期机器单周期机器 45 ns/cycle x 1 CPI x 100 inst=4500 ns 多周期机器多周期机器 10 ns/cycle x 4.6 CPI(due to inst mix)x 100 inst=4600 ns 理想流水线机器理想流水线机器 10 ns/cycle x(1 CPI x 100 inst+4 cycle drain)=1040 ns为什么用流水线为什么用流水线(cont.)?资源利用率高资源利用率高Instr.OrderTime(clock cycles)I
13、nst 0Inst 1Inst 2Inst 4Inst 3ALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmReg流水线正常工作的基本条件流水线正常工作的基本条件 各段间需要使用寄存器文件保存当前段传送到各段间需要使用寄存器文件保存当前段传送到下一段的数据和控制信息下一段的数据和控制信息 存储器带宽是非流水的存储器带宽是非流水的5倍倍新的新的DLX数据通路(图数据通路(图3.12 Page 88)Review lecture5 流水线技术要点流水线技术要点 流水线技术并不能提高单个任务的执行效率,它可以提高整个流水线技术
14、并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率系统的吞吐率 流水线中的瓶颈流水线中的瓶颈最慢的那一段最慢的那一段 多个任务同时执行,但使用不同的资源多个任务同时执行,但使用不同的资源 其潜在的加速比流水线的级数其潜在的加速比流水线的级数 流水段所需时间不均衡将降低加速比流水段所需时间不均衡将降低加速比 流水线存在装入时间和排空时间,使得加速比降低流水线存在装入时间和排空时间,使得加速比降低 由于存在相关问题,会导致流水线停顿由于存在相关问题,会导致流水线停顿 流水线正常工作的基本条件流水线正常工作的基本条件 增加寄存器文件保存当前段传送到下一段的数据和控制信息增加寄存器文件保存当前段
15、传送到下一段的数据和控制信息 存储器带宽是非流水的存储器带宽是非流水的5倍倍新的新的DLX数据通路(图数据通路(图3.12 Page 88)在新的在新的Datapath下各段的操作下各段的操作 IF IF/ID.IR MemPC;IF/ID.NPC,PC(if(EX/MEM.opcode=branch)&EX/MEM.cond)EX/MEM.ALUOutput else PC+4);ID ID/EX.A RegsIF/ID.IRrs;ID/EX.B RegsIF/ID.IRrt;ID/EX.NPCIF/ID.NPC;ID/EX/IR IF/ID.IR;ID/EX/Imm sign-extend
16、(IF/ID.IRimmediate field);EX ALU instruction EX/MEM.IR ID/EX.IR;EX/MEM.ALUOutput ID/EX.A func ID/EX.B;or EX/MEM.ALUOoutput ID/EX.A op ID/EX.Imm;Load or store instruction EX/MEM.IR ID/EX.IR EX/MEM.ALUOutput ID/EX.A+ID/EX.Imm EX/MEM.B ID/EX.B Branch instruction EX/MEM.ALUOutput ID/EX.NPC+(ID/EX.Imm sy
17、nchronous,key is that completion is prevented some asynchronous are also within Resume vs.Terminate program implications for how much state must be preserved例如例如最困难的问题最困难的问题 异常发生在指令中,并且要求恢复执行异常发生在指令中,并且要求恢复执行 要求要求=流水线必须安全地流水线必须安全地 shut down PC必须保存必须保存 如果重新开始的是一条分支指令,它需要重新执行如果重新开始的是一条分支指令,它需要重新执行 这意味
18、着条件码状态必须没有改变这意味着条件码状态必须没有改变 在在DLX中的处理步骤中的处理步骤 强制强制trap指令在下一个指令在下一个IF段进入流水线段进入流水线 封锁引起故障的指令的所有写操作和流水线中后继指令的写操作封锁引起故障的指令的所有写操作和流水线中后继指令的写操作 让所有前序指令执行完(如果能)让所有前序指令执行完(如果能)保存重新执行时的地址(保存重新执行时的地址(PC)PC 或或 PC+1 调用调用OS处理异常处理异常 考虑延迟转移时,假设有两个延迟槽的分支考虑延迟转移时,假设有两个延迟槽的分支I Branch Instr1I+1 Delay instr1I+2Delay Ins
19、tr2I+3instI+4inst 假设假设branch指令是好的指令是好的 第第1个延迟指令引起缺页中断个延迟指令引起缺页中断 第第2条指令封锁条指令封锁 异常处理后,缺省的恢复点是第一条延迟指令异常处理后,缺省的恢复点是第一条延迟指令 不会有不会有Branch指令 因此需要保存的PC值不止一个,根据具体情况进行恢复精确中断与非精确中断精确中断与非精确中断 引起异常的指令前面的指令都已执行完,故障后的指令可以重新从故引起异常的指令前面的指令都已执行完,故障后的指令可以重新从故障点后执行障点后执行 理想情况,引起故障的指令没有改变机器的状态理想情况,引起故障的指令没有改变机器的状态 要正确的处
20、理这类异常请求,必须保证故障指令不产生副作用要正确的处理这类异常请求,必须保证故障指令不产生副作用 在有些机器上,浮点数异常在有些机器上,浮点数异常 流水线段数多,在发现故障前,故障点后的指令就已经写了结果,在这种情况下流水线段数多,在发现故障前,故障点后的指令就已经写了结果,在这种情况下,必须有办法处理。,必须有办法处理。当今很多高性能计算机,当今很多高性能计算机,Alpha 21164,MIPSR10000等支持精确中等支持精确中断,但精确模式要慢断,但精确模式要慢10倍,一般用在代码调试时,很多系统要求精确倍,一般用在代码调试时,很多系统要求精确中断模式,如中断模式,如IEEE FP标准
展开阅读全文