ImageVerifierCode 换一换
格式:PPT , 页数:111 ,大小:1.81MB ,
文档编号:3317468      下载积分:20 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3317468.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(林田)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(流水线技术学习培训.ppt)为本站会员(林田)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

流水线技术学习培训.ppt

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标准

21、处理程序,虚拟存储器等。标准处理程序,虚拟存储器等。精确中断对整数流水线而言,不是太难实现精确中断对整数流水线而言,不是太难实现DLX中的异常中的异常 IF page fault,misaligned address,memory protection violation ID undefined or illegal opcode EX arithmetic exception MEM page fault,misaligned address,memory protection violation WB noneReview 控制相关控制相关 概念:概念:减少性能损失的基本方法减少性能损失

22、的基本方法 冻结或排空流水线冻结或排空流水线 预测分支成功预测分支成功 预测分支失败预测分支失败 延迟转移延迟转移 异常异常 异常的分类异常的分类 精确中断和非精确中断精确中断和非精确中断Review-相关的处理相关的处理 结构相关结构相关 概念:由于争用资源而引起的概念:由于争用资源而引起的 解决办法解决办法 数据相关数据相关 概念:由于存在实际的通信,而引起的概念:由于存在实际的通信,而引起的 解决办法:解决办法:硬件:定向技术(硬件:定向技术(forwarding)软件软件:指令级调度指令级调度 控制相关控制相关 概念:由于控制类指令引起的概念:由于控制类指令引起的 解决办法解决办法?R

23、eview(续)(续)控制相关控制相关 概念:概念:减少性能损失的基本方法减少性能损失的基本方法-转移地址,条件码转移地址,条件码静态处理:静态处理:冻结或排空流水线冻结或排空流水线 预测分支成功预测分支成功 预测分支失败预测分支失败 延迟转移延迟转移 异常异常 异常的分类异常的分类 精确中断和非精确中断精确中断和非精确中断3.5 DLX中多周期操作的处理中多周期操作的处理 问题问题 浮点操作在浮点操作在12个个cycles完成是不现实的,一般要花费较长时间完成是不现实的,一般要花费较长时间 在在DLX中如何处理中如何处理 在在1到到2个个cycles时间内完成的处理方法时间内完成的处理方法

24、采用较慢的时钟源,或采用较慢的时钟源,或 在在FP部件中延迟其部件中延迟其EX段段 现假设现假设FP指令与整数指令采用相同的流水线,那么指令与整数指令采用相同的流水线,那么 EX 段需要循环多次来完成段需要循环多次来完成FP操作,循环次数取决于操作类型操作,循环次数取决于操作类型 有多个有多个FP功能部件,如果发射出的指令导致结构或数据相关,需功能部件,如果发射出的指令导致结构或数据相关,需暂停暂停对对DLX的扩充的扩充四个功能部件四个功能部件 Integer 部件处理:部件处理:Loads,Store,Integer ALU操作和操作和Branch FP/Integer 乘法部件:处理浮点数

25、和整数乘法乘法部件:处理浮点数和整数乘法 FP加法器:处理加法器:处理FP加,减和类型转换加,减和类型转换 FP/Integer除法部件:处理浮点数和整数除法除法部件:处理浮点数和整数除法 这些功能部件未流水化这些功能部件未流水化扩展的扩展的DLX流水线流水线Latency&Repeat Interval 延时(Latency)定义为完成某一操作所需的cycle数 定义为使用当前指令所产生结果的指令与当前指令间的最小间隔周期数 循环间隔(Repeat/Initiation interval)发射相同类型的操作所需的间隔周期数 对于对于EX部件流水化的新的部件流水化的新的DLXFunction

26、UnitLatencyRepeat IntervalInteger ALU01Data Memory(Integer and FP loads(1 less for store latency)11FP Add31FP multiply61FP Divide(also integer divide and FP sqrt)2425将部分执行部件流水化后的将部分执行部件流水化后的DLX流水线流水线新的相关和定向问题新的相关和定向问题 结构冲突增多非流水的Divide部件,使得EX段增长24个cycles在一个周期内可能有多个寄存器写操作 可能指令乱序完成(乱序到达WB段)有可能存在WAW 由于在

27、ID段读,还不会有 WAR 相关 乱序完成导致异常处理复杂 由于指令的延迟加大导致RAW 相关的stall数增多 需要付出更多的代价来增加定向路径新的结构相关新的结构相关 纵向检查指令所使用的资源纵向检查指令所使用的资源 第第10个个cycle,三条指令同时进入三条指令同时进入MEM,但由于但由于MULTD和和ADDD在在MEM段没有实际动作,这种情况没有关系段没有实际动作,这种情况没有关系 第第11个个cycle,三条指令同时进入三条指令同时进入WB段,存在结构相关段,存在结构相关解决方法解决方法 Option 1 在ID段跟踪写端口的使用情况,以便能暂停该指令的发射 一旦发现冲突,暂停当前

28、指令的发射 Option 2 在进入MEM或WB段时,暂停冲突的指令,让有较长延时的指令先做,因为较长延时的指令,会更容易引起其他RAW相关,从而导致更多的stalls关于数据相关关于数据相关 较长延时的流水线,导致数据相关比例增多,较长延时的流水线,导致数据相关比例增多,stalls数增多数增多新的冲突源新的冲突源 GPR与与FPR间的数据传送造成的数据相关间的数据传送造成的数据相关 MOVI2FP and MOVFP2I instructions 如果在如果在ID段进行相关检测,指令发射前须做如下检测:段进行相关检测,指令发射前须做如下检测:结构相关结构相关 循环间隔检测循环间隔检测 确定

29、寄存器写端口是否可用确定寄存器写端口是否可用 RAW相关相关 列表所有待写的目的寄存器列表所有待写的目的寄存器 不发射以待写寄存器做为源寄存器的指令,直到该寄存器值可用不发射以待写寄存器做为源寄存器的指令,直到该寄存器值可用 WAW相关相关 仍然使用上述待写寄存器列表仍然使用上述待写寄存器列表 不发射那些目的寄存器在待写寄存器列表中的指令,直到对应的待不发射那些目的寄存器在待写寄存器列表中的指令,直到对应的待写寄存器值可用写寄存器值可用(完成完成WB)。精确中断与长流水线精确中断与长流水线 例如DIVF F0,F2,F4ADDF F10,F10,F8SUBF F12,F12,F14 ADDF

30、和SUBF都在DIVF前完成 如果DIVF导致异常,会如何?非精确中断 Ideas?处理中断4种可能的办法 方法方法1:忽略这种问题,当非精确处理:忽略这种问题,当非精确处理 原来的原来的supercomputer的方法的方法 但现代计算机对但现代计算机对IEEE 浮点标准的异常处理,虚拟存储的异常处理要求必浮点标准的异常处理,虚拟存储的异常处理要求必须是精确中断。须是精确中断。方法方法2:缓存操作结果,直到早期发射的指令执行完。:缓存操作结果,直到早期发射的指令执行完。当指令运行时间较长时,当指令运行时间较长时,Buffer区较大区较大 Future file (Power PC620 MI

31、PS R10000)缓存执行结果,按指令序确认缓存执行结果,按指令序确认 history file (CYBER 180/990)尽快确认尽快确认 缓存区存放原来的操作数,如果异常发生,回卷到合适的状态缓存区存放原来的操作数,如果异常发生,回卷到合适的状态第第3&4种方法种方法 以非精确方式处理,用软件来修正以非精确方式处理,用软件来修正 为软件修正保存足够的状态为软件修正保存足够的状态 让软件仿真尚未执行完的指令的执行让软件仿真尚未执行完的指令的执行 例如例如 Instruction 1 A 执行时间较长,引起中断的指令执行时间较长,引起中断的指令 Instruction 2,instruc

32、tion 3,.instruction n-1 未执行完的指令未执行完的指令 Instruction n 已执行完的指令已执行完的指令 由于第由于第n条指令已执行完,中断返回地址为第条指令已执行完,中断返回地址为第n+1条指令,如果我们条指令,如果我们保存所有的流水线的保存所有的流水线的PC值,那么软件可以仿真值,那么软件可以仿真Instruction1 到到Instruction n-1 的执行的执行 暂停发射,直到确定先前的指令都可无异常的完成,再发暂停发射,直到确定先前的指令都可无异常的完成,再发射下面的指令。射下面的指令。在在EX段的前期确认(段的前期确认(MIPS流水线在前三个周期中

33、)流水线在前三个周期中)MIPS R2K to R4K 以及以及Pentium使用这种方法使用这种方法Review lecture7 控制相关控制相关 概念:概念:减少性能损失的基本方法减少性能损失的基本方法-转移地址,条件码转移地址,条件码静态处理:静态处理:冻结或排空流水线冻结或排空流水线 预测分支成功预测分支成功 预测分支失败预测分支失败 延迟转移延迟转移 异常异常 异常的分类异常的分类 精确中断和非精确中断精确中断和非精确中断 DLX中多周期操作的处理中多周期操作的处理 对对DLX的扩充的扩充扩展的扩展的DLX流水线流水线 新的问题:冲突源增加,异常处理,新的问题:冲突源增加,异常处理

34、,DLX流水线的性能流水线的性能Stalls per FP operation for each major type of FP operation for the SPEC89 FP benchmarks平均每条指令的平均每条指令的stall数数The stalls occurring for the MIPS FP pipeline for five for the SPEC89 FP benchmarks.MIPS R4000实际的实际的 64-bit 机器机器主频主频100MHz 200MHz较深的流水线(级数较多)较深的流水线(级数较多)(有时也称为有时也称为 superpipel

35、ining)指令集与指令集与DLX非常类似非常类似MIPS R4000的的8 级整数流水线级整数流水线 IF取指阶段的前半部分;选择取指阶段的前半部分;选择PC值,初始化指令值,初始化指令cache的访问的访问 IS取指阶段的后半部分,主要完成访问指令取指阶段的后半部分,主要完成访问指令cache的操的操作作 RF指令译码,寄存器读取,相关检测以及指令指令译码,寄存器读取,相关检测以及指令cache命命中检测中检测 EX执行,包括:计算有效地址,进行执行,包括:计算有效地址,进行ALU操作,计算分操作,计算分支目标地址和检测分支条件支目标地址和检测分支条件 DF取数据,访问数据取数据,访问数据

36、cache的前半部分的前半部分 DS访问数据访问数据cache的后半部分的后半部分 TCtag 检测,确定数据检测,确定数据cache是否命中是否命中 WBLoad操作和操作和R-R操作的结果写回操作的结果写回需注意的问题需注意的问题 在使用定向技术的情况下,在使用定向技术的情况下,Load 延迟为延迟为2个个cycles Load和与其相关的指令间必须有和与其相关的指令间必须有2条指令或两个条指令或两个bubbles 原因:原因:load的结果在的结果在DS结束时可用结束时可用 分支延迟分支延迟3个个cycles 分支与目标指令间需要分支与目标指令间需要3条指令或条指令或3个个bubbles

37、 原因:目标地址在原因:目标地址在EX段后才能知道段后才能知道 R4000的流水线中,到的流水线中,到ALU输入端有四个定向源输入端有四个定向源 EX/DF,DF/DS,DS/TC,TC/WB图示图示IFISIFRFISIFEXRFISIFDFEXRFISIFDSDFEXRFISIFTCDSDFEXRFISIFWBTCDSDFEXRFISIFTWO CycleLoad LatencyIFISIFRFISIFEXRFISIFDFEXRFISIFDSDFEXRFISIFTCDSDFEXRFISIFWBTCDSDFEXRFISIFTHREE CycleBranch Latency(condition

38、s evaluated during EX phase)Delay slot plus two stallsBranch likely cancels delay slot if not takenMIPS R4000 浮点数操作浮点数操作 3个功能部件组成:个功能部件组成:FP Adder,FP Multiplier,FP Divider 在乘在乘/除操作的最后一步要除操作的最后一步要 使用使用FP Adder FP操作需要操作需要2(negate)-112个(个(square root)cycles 8 kinds of stages in FP units:StageFunctional

39、 unitDescriptionAFP adderMantissa ADD stage DFP dividerDivide pipeline stageEFP multiplierException test stageMFP multiplierFirst stage of multiplierNFP multiplierSecond stage of multiplierRFP adderRounding stageSFP adderOperand shift stageUUnpack FP numbersMIPS FP 流水段流水段FP Instr12345678Add,Subtract

40、US+AA+R R+SMultiplyUE+MMMMNN+A RDivideUARD28D+A D+R,D+R,D+A,D+R,A,RSquare rootUE(A+R)108ARNegateUSAbsolute valueUSFP compareUARStages:MFirst stage of multiplierNSecond stage of multiplierRRounding stageSOperand shift stageUUnpack FP numbersAMantissa ADD stage DDivide pipeline stageEException test st

41、age双精度浮点操作指令延迟、初始化间隔和流水段的使用情况注:Multiply Issue U M M-U E+M M注:Multiply 的的 第第 2 拍的拍的M -E+MR4000性能(性能(1)R4000 性能(性能(2)基本流水线小结基本流水线小结 流水线提高的是指令带宽(吞吐率),而不是单条指令的流水线提高的是指令带宽(吞吐率),而不是单条指令的执行速度执行速度 相关限制了流水线性能的发挥相关限制了流水线性能的发挥 结构相关:需要更多的硬件资源结构相关:需要更多的硬件资源 数据相关:需要定向,编译器调度数据相关:需要定向,编译器调度 控制相关:尽早检测条件,计算目标地址,延迟转移,预测控制相关:尽早检测条件,计算目标地址,延迟转移,预测 增加流水线的级数会增加相关产生的可能性增加流水线的级数会增加相关产生的可能性 异常,浮点运算使得流水线控制更加复杂异常,浮点运算使得流水线控制更加复杂 编译器可降低数据相关和控制相关的开销编译器可降低数据相关和控制相关的开销 Load 延迟槽延迟槽 Branch 延迟槽延迟槽 Branch预测预测

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|