《计算机体系结构.ppt》由会员分享,可在线阅读,更多相关《计算机体系结构.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机体系结构,周学海0551-63606864中国科学技术大学,第三章 流水线技术,3.1流水线的基本概念3.2 MIPS基本流水线3.3 MIPS中多周期操作的处理3.4 MIPS R4000流水线,中国科学技术大学,chapter03.2,一个任务可以分解为k 个子任务K个子任务在 K 个不同阶段(使用不同的资源)运行每个子任务执行需要1个单位时间整个任务的执行时间为 K倍单位时间流水线执行模式是重叠执行模式K个流水段并行执行K个不同任务每个单位时间进入/离开流水线一个任务,中国科学技术大学,chapter03.3,同步流水线,流水段之间采用时钟控制的寄存器文件(clocked regi
2、sters)时钟上升沿到达时所有寄存器同时保存前一流水段的结果流水段是组合逻辑电路流水线设计中希望各段相对平衡即所有段的延迟时间大致相等时钟周期取决于延迟最长的流水段,中国科学技术大学,chapter03.4,流水线的性能,设 = time delay in stage Si时钟周期 = max( ) 为最长的流水段延迟时钟频率 f = 1/ = 1/max( )流水线可以在k+n-1个时钟周期内完成n个任务 完成第一个任务需要 k个时钟周期其他n-1个任务需要n-1个时钟周期完成K-段流水线的理想加速比(相对于串行执行),中国科学技术大学,chapter03.5,简单的5段流水线,5个流水段
3、,每段的延迟为1个cycleIF: 取值阶段选择地址:下一条指令地址、转移地址ID: 译码阶段确定控制信号 并从寄存器文件中读取寄存器值EX: 执行Load 、Store:计算有效地址Branch:计算转移地址并确定转移方向MEM: 存储器访问(仅Load和Store)WB: 结果写回,中国科学技术大学,chapter03.6,流水线的可视化表示,多条指令执行多个时钟周期指令按程序序从上到下排列图中展示了每一时钟周期资源的使用情况不同指令相邻阶段之间没有干扰,中国科学技术大学,chapter03.7,03/19-review,编译技术与计算机体系结构设计有利于编译器的ISA:规整性、正交性、完
4、整性帮助编译器设计者了解各种代码序列的执行效率和代价,有助于编译器的优化对于在编译时就已经可确定的量,提供能够将其变为常数的指令寄存器分配是关键问题寄存器数目多有利于编译器的设计与实现提供至少16个通用寄存器和独立的浮点寄存器 保证所有的寻址方式可用于各种数据传送指令最小指令集MIPS指令集,2018/9/24,中国科学技术大学,8,2018/9/24,中国科学技术大学,Chapter2.9,03/19-review (MIPS),Use general purpose registers with a load-store architecture: YESProvide at least
5、16 general purpose registers plus separate floating-point registers: 31 GPR : YES: 16 bits for immediate, displacement (disp=0 = register deferred) All addressing modes apply to all data transfer instructions : YES Use fixed instruction encoding if interested in performance and use variable instruct
6、ion encoding if interested in code size : Fixed Support these data sizes and types: 8-bit, 16-bit, 32-bit integers and 32-bit and 64-bit IEEE 754 floating point numbers: YESSupport these simple instructions, since they will dominate the number of instructions executed: load, store, add, subtract, mo
7、ve register-register, and, shift, compare equal, compare not equal, branch (with a PC-relative address at least 8-bits long), jump, call, and return: YES, 16b Aim for a minimalist instruction set: YES,中国科学技术大学,chapter3.10,03/19-review 流水线技术要点,流水线技术并不能提高单个任务的执行效率,它可以提高整个系统的吞吐率流水线中的瓶颈最慢的那一段多个任务同时执行,但使
8、用不同的资源其潜在的加速比流水线的级数流水段所需时间不均衡将降低加速比流水线存在装入时间和排空时间,使得加速比降低由于存在相关问题,会导致流水线停顿,指令流时序,时序图展示:每个时钟周期指令所使用的流水段情况指令流在采用5段流水线执行模式的执行情况,中国科学技术大学,chapter03.11,单周期、多周期、流水线控制性能比较,假设5段指令执行流水线某一程序段假设:20% load, 10% store, 40% ALU, and 30% branch比较三种执行模式的性能,中国科学技术大学,chapter03.12,吞吐率:在单位时间内流水线所完成的任务数量或输 出结果的数量。,基本度量参数
9、:吞吐率,加速比,效率,n:任务数Tk:处理完成n个任务所用的时间,流水线的性能分析,中国科学技术大学,chapter03.13,1. 各段时间均相等的流水线各段时间均相等的流水线时空图,流水线技术提高系统的任务吞吐率,中国科学技术大学,chapter03.14,流水线完成n个连续任务所需要的总时间为(假设一条k段线性流水线)Tkkt(n-1)t(kn-1)t 流水线的实际吞吐率,最大吞吐率:流水线在连续流动达到稳定状态后所得到的吞吐率。,吞吐率,中国科学技术大学,15,最大吞吐率与实际吞吐率的关系,流水线的实际吞吐率小于最大吞吐率,它除了与每个段的时间有关外,还与流水线的段数k以及输入到流水
10、线中的任务数n等有关。只有当nk时,才有TPTPmax。,TP与Tpmax的关系,中国科学技术大学,chapter03.16,2. 各段时间不完全相等的流水线 各段时间不等的流水线及其时空图一条4段的流水线S1,S3,S4各段的时间:tS2的时间:3t (瓶颈段)流水线中这种时间最长的段称为流水线的瓶颈段。,流水线中的瓶颈最慢的段,中国科学技术大学,chapter03.17,中国科学技术大学,chapter03.18,各段时间不等的流水线的实际吞吐率:( ti为第i段的时间,共有k个段 ),流水线的最大吞吐率为,中国科学技术大学,19,例如:一条4段的流水线中,S1,S2,S4各段的时间都是t
11、,唯有S3的时间是3t。,最大吞吐率为,中国科学技术大学,20,解决流水线瓶颈问题的常用方法 细分瓶颈段 例如:对前面的4段流水线把瓶颈段S3细分为3个子流水线段:S3a,S3b,S3c,改进后的流水线的吞吐率 :,中国科学技术大学,21,重复设置瓶颈段缺点:控制逻辑比较复杂,所需的硬件增加了。例如:对前面的4段流水线 重复设置瓶颈段S3:S3a,S3b,S3c,中国科学技术大学,chapter03.22,重复设置瓶颈段后的时空图,中国科学技术大学,chapter03.23,加速比:完成同样一批任务,不使用流水线所用的时间 与使用流水线所用的时间之比。假设:不使用流水线(即顺序执行)所用的间为
12、Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为,加速比,中国科学技术大学,chapter03.24,1. 流水线各段时间相等(都是t)一条k段流水线完成n个连续任务 所需要的时间为 Tk = (kn-1)t顺序执行n个任务 所需要的时间: Ts= nkt 流水线的实际加速比为,中国科学技术大学,chapter03.25,最大加速比,当nk时,S k思考:流水线的段数愈多愈好?,中国科学技术大学,chapter03.26,流水线的各段时间不完全相等时一条k段流水线完成n个连续任务的实际加速比为,中国科学技术大学,chapter03.27,效率,效率:流水线中的设备实际使用时间与整个运行
13、时间 的比值,即流水线设备的利用率。 由于流水线有通过时间和排空时间,所以在连续完成n个任务的时间内,各段并不是满负荷地工作。各段时间相等各段的效率ei相同,中国科学技术大学,chapter03.28,整条流水线的效率为,可以写成,最高效率为,当nk时,E1。,中国科学技术大学,29,当流水线各段时间相等时,流水线的效率与吞吐率成正比。 E=TPt 流水线的效率是流水线的实际加速比S与它的最大加速 比k的比值。,当E=1时,S=k,实际加速比达到最大。,中国科学技术大学,chapter03.30,从时空图上看,效率就是n个任务占用的时空面积和 k个段总的时空面积之比。,当各段时间不相等时,中国
14、科学技术大学,31,中国科学技术大学,chapter3.32,Summary,实际吞吐率:假设k段,完成n个任务,单位时间所实际完成的任务数。加速比: k段流水线的速度与等功能的非流水线的速度之比。效率:流水线的设备利用率。,中国科学技术大学,chapter3.33,中国科学技术大学,chapter3.34,-Review: Pipelining,指令流水线通过指令重叠减小 CPI充分利用数据通路当前指令执行时,启动下一条指令其性能受限于花费时间最长的段检测和消除相关如何有利于流水线技术的应用所有的指令都等长只有很少的指令格式只用Load/Store来进行存储器访问,中国科学技术大学,chap
15、ter3.35,指令流水线:CPU执行大量的指令,指令吞吐率非常重要MIPS 的指令格式,3.2 MIPS的基本流水线,所有指令相同长度在指令格式中寄存器位于同一位置只有Loads和Stores可以对存储器操作,6,中国科学技术大学,chapter3.36,MIPS数据通路,中国科学技术大学,chapter3.37,中国科学技术大学,chapter3.38,MIPS数据通路,中国科学技术大学,chapter3.39,改进后流水线的分支操作,中国科学技术大学,chapter3.40,3.2.1 流水线的相关,相关的基本概念结构相关数据相关控制相关,中国科学技术大学,chapter3.41,采用流
16、水线技术带来的新问题,流水线相关结构相关:同一时间两种方式使用同一资源例如 washer/dryer 合在一起,IM和ID合在一起控制相关: 试图在条件未评估之前,就做决定例如 branch instructions数据相关:在数据未准备好之前,就需要使用数据当前指令的执行需要上一条指令的结果使用等待策略总是可以解决相关流水线控制必须能检测相关,否则由软件设计来避免采用相应操作解决相关 (or 等待),中国科学技术大学,chapter3.42,Mem,单个存储器引起的结构相关,Instr.Order,Time (clock cycles),Load,Instr 1,Instr 2,Instr
17、3,Instr 4,Reg,Mem,Reg,Reg,Mem,Reg,Detection is easy in this case! (right half highlight means read, left half write),中国科学技术大学,chapter3.43,消除结构相关,中国科学技术大学,chapter3.44,结构相关对性能的影响,例如: 如果每条指令平均访存1.3 次,而每个时钟周期只能访存一次,那么在其他资源100利用的前提下,平均 CPI 1.3,中国科学技术大学,chapter3.45,流水线的加速比计算,For simple RISC pipeline, CPI
18、= 1:,中国科学技术大学,chapter3.46,例如: Dual-port vs. Single-port,机器A: Dual ported memory (“Harvard Architecture”)机器B: Single ported memory存在结构相关的机器B的时钟频率是机器A的时钟频率的1.05倍Ideal CPI = 1 在机器B中load指令会引起结构相关,所执行的指令中Loads指令占 40% Average instruction time = CPI * Clock cycle time 无结构相关的机器A: Average Instruction time =
19、Clock cycle time 存在结构相关的机器B: Average Instruction time = (1+0.4*1) * clock cycle time /1.05 = 1.3 * clock cycle time,中国科学技术大学,chapter3.47,数据相关问题,Time (clock cycles),中国科学技术大学,chapter3.48,写后读相关(Read After Write (RAW) InstrJ tries to read operand before InstrI writes it由于实际的数据交换需求而引起的,三种基本的数据相关,I: add r
20、1,r2,r3J: sub r4,r1,r3,中国科学技术大学,chapter3.49,读后写相关Write After Read (WAR) InstrJ writes operand before InstrI reads it编译器编写者称之为“anti-dependence”(反相关),是由于重复使用寄存器名“r1”引起的.DLX(MIPS) 5 段基本流水线不会有此类相关因为: 所有的指令都是5段, 并且 读操作总是在第2段,而写操作在第5段,中国科学技术大学,chapter3.50,写后写相关(Write After Write (WAW)) InstrJ writes opera
21、nd before InstrI writes it.编译器编写者称之为“output dependence” ,也是由于重复使用寄存器名 “r1”引起的.在DLX(MIPS) 5段基本流水线中,也不会发生。因为 所有指令都是5段,并且写操作都在第5段在后面的复杂的流水线中我们将会看到 WAR 和WAW 相关,中国科学技术大学,chapter3.51,03/21-Review:流水线性能分析,流水线技术应用的难度何在? :相关问题相关的类型:结构相关,控制相关,以及数据相关(RAW, WAR, WAW),吞吐率、加速比、效率之间的关系,中国科学技术大学,chapter3.52,指令流水线:CP
22、U执行大量的指令,指令吞吐率非常重要MIPS 的ISA:RISC,03/21-Review: MIPS的基本流水线,中国科学技术大学,chapter3.53,03/21-Review 相关的种类,相关会影响流水线性能结构相关: 由于争用资源而引起的解决办法: 等待 增加(或拆分)资源控制相关:由于控制类指令引起的减少性能损失的基本方法:冻结或排空流水线,预测分支成功;预测分支失败;延迟转移数据相关:两条指令访问相同的数据而引起的类型:RAWWAR, WAW解决办法:硬件:定向技术(forwarding)软件:指令级调度,中国科学技术大学,chapter3.54,采用定向技术避免数据相关,中国科
23、学技术大学,chapter3.55,采用定向技术硬件所需做的修改,中国科学技术大学,chapter3.56,定向源为R-R ALU操作的定向比较判断,中国科学技术大学,chapter3.57,定向源为ALUimm操作的定向比较判断,中国科学技术大学,chapter3.58,定向源为Load操作的比较判定,中国科学技术大学,chapter3.59,采用定向技术仍然存在相关,中国科学技术大学,chapter3.60,DMem,中国科学技术大学,chapter3.61,Try producing fast code fora = b + c;d = e f;assuming a, b, c, d ,
24、e, and f in memory. Slow code:LW Rb,bLW Rc,cADD Ra,Rb,RcSW a,Ra LW Re,e LW Rf,fSUB Rd,Re,RfSWd,Rd,采用软件方法避免数据相关,Fast code:LW Rb,bLW Rc,cLW Re,e ADD Ra,Rb,RcLW Rf,fSW a,Ra SUB Rd,Re,RfSWd,Rd,控制冲突,执行分支指令的结果有两种分支成功:PC值改变为分支转移的目标地址。 在条件判定和转移地址计算都完成后,才改变PC值。不成功或者失败:PC的值保持正常递增,指向顺序的下一条指令。分支需要解决两个问题分支目标地址(转
25、移成功意谓着PC值不是 PC+4)CC是否有效,这两点在MIPS中都在流水线的靠后段中确定处理分支指令最简单的方法:“冻结”或者“排空”流水线 。 优点:简单。,中国科学技术大学,chapter03.62,中国科学技术大学,chapter3.63,回顾MIPS初始数据通路,简单处理分支指令:分支成功的情况,简单处理分支指令:分支失败的情况,中国科学技术大学,chapter03.64,中国科学技术大学,chapter3.65,减少分支延时的方法,硬件的方法修改数据通路:使得目标地址和分支条件尽早确定,其中之一尽早确定是没有用的判断是否为0可以在ID段确定使用另一个加法器计算可以在ID段计算BTA
26、(分支目标地址),即在ID段形成下一条指令地址,两种可能(BTA, PC+4),选择哪一个取决于ID段确定的CC必要时使用互锁机制来插入Stall设计合适的ISAe.g. BNEZ, BEQZ on MIPS 使得CC可以在ID段确定软件(通过编译器)的方法:调度一些指令放入分支的延迟槽中预测的方法:统计分支成功和失败的情况,提高预测精度,中国科学技术大学,chapter3.66,新的MIPS数据通路,中国科学技术大学,chapter3.67,改进后流水线的分支操作,中国科学技术大学,chapter3.68,四种可能的解决控制相关的方法,#1: Stall 直到分支方向确定#2: 预测分支失败
27、直接执行后继指令如果分支实际情况为分支成功,则撤销流水线中的指令对流水线状态的更新MIPS分支指令平均47%为分支失败要保证:分支结果出来之前不会改变处理机的状态,以便一旦猜错时,处理机能够回退到原先的状态。#3: 预测分支成功 前提:先知道分支目标地址,后知道分支是否 成功。平均53% MIPS分支为分支成功MIPS分支目标地址在ID段才能计算出目标地址MIPS 还是有1个 cycle 的分支延迟,中国科学技术大学,chapter3.69,延迟转移,#4: 延迟转移主要思想: 从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成,不管分支是否成功,都要按顺序
28、执行延迟槽中的指令。定义分支发生在一系列指令之后branch instructionsequential successor1sequential successor2.sequential successornbranch target if taken5级流水只需要一个延迟槽就可以确定目标地址和确定条件MIPS 使用这种方式,分支延迟槽中的指令“掩盖”了流水线原来必须插入的暂停周期。,具有一个分支延迟槽的流水线的执行过程,中国科学技术大学,70,延迟转移,从何处选择指令来填充延迟槽?分支指令之前的指令:最好从分支目标地址处取: 在分支成功可能性大时,这种策略较好从分支失败处调度:仅在分支失
29、败时编译器可以有效的调度一个延迟槽如果提供取消分支时, 编译器可以调度更多的指令填入延迟槽,中国科学技术大学,chapter3.71,调度前和调度后的代码,中国科学技术大学,chapter03.72,三种方法的要求及效果,调 度 策 略,对调度的要求,什么情况下起作用,从 前 调 度,从目标处调度,从失败处调度,必须保证在分支失败时执行被调度的指令不会导致错误。有可能需要复制指令,被调度的指令必须与分支无关,必须保证在分支成功时执行被调度的指令不会导致错误,任何情况,分支成功时(但由于复制指令,有可能会增大程序空间),分支失败时,中国科学技术大学,chapter03.73,分支取消机制,分支延
30、迟受到两个方面的限制:可以被放入延迟槽中的指令要满足一定的条件。编译器预测分支转移方向的能力。进一步改进:分支取消机制当分支的实际执行方向和事先所预测的一样时执行分支延迟槽中的指令,否则就将分支延迟槽中的指令转化成一个空操作。,中国科学技术大学,chapter03.74,预测分支成功的情况下,分支取消机制的执行情况,分支取消机制示意,中国科学技术大学,chapter03.75,中国科学技术大学,chapter3.76,评估减少分支策略的效果,SchedulingBranchCPIspeedup v.speedup v. scheme penaltyunpipelinedstallStall p
31、ipeline31.423.51.0Predict taken11.144.41.26Predict not taken11.094.51.29Delayed branch0.51.074.61.31 1.14 = 1 + 1*14%*100% 1.09 = 1+1*14%*65% 1.07 = 1+ 0.5*14%Conditional & Unconditional = 14%, 65% change PC,中国科学技术大学,chapter3.77,3.2.2 异常处理,流水线使得系统的吞吐率提高问题:由于相关会影响系统性能的发挥另一问题:异常 Why?多级流水多周期指令异常可以发生在任何
32、地方指令序与异常序可能不同必须按指令序处理异常采用何种策略取决于异常的类型,中国科学技术大学,chapter3.78,异常的类型,I/O 设备请求 用户程序调用OS服务断点 整数或浮点数运算溢出 缺页 非对齐存储器访问 存储器保护冲突 未定义的指令 硬件失效 例如: parity or ECC error 电源故障,中国科学技术大学,chapter3.79,异常的分类,Synchronous vs. Asynchronoussynchronous caused by a particular instructionasynchronous - external devices and HW f
33、ailuresUser requested vs. Coercedrequested is predictable and can happen after the instructionUser maskable vs. user non-maskablee.g. arithmetic overflow on some machines is user maskableWithin vs. Between instructionswithin = synchronous, key is that completion is preventedsome asynchronous are als
34、o within Resume vs. Terminate programimplications for how much state must be preserved,中国科学技术大学,chapter3.80,例如,中国科学技术大学,chapter3.81,最困难的问题,异常发生在指令中(within),并且要求恢复执行(resume) 要求=流水线必须安全地 shut downPC必须保存如果重新开始的是一条分支指令,它需要重新执行,这意味着条件码状态必须没有改变在MIPS中的处理步骤强制trap指令在下一个IF段进入流水线封锁引起故障的指令的所有写操作和流水线中后继指令的写操作让所有
35、前序指令执行完(如果能)保存重新执行时的地址(PC)PC 或 PC + 1调用OS处理异常,中国科学技术大学,chapter3.82,考虑延迟转移时,假设有两个延迟槽的分支I Branch Instr1I+1 Delay instr1I+2Delay Instr2I+3instI+4inst假设branch指令是好的第1个延迟指令引起缺页中断第2条指令封锁异常处理后,缺省的恢复点是第一条延迟指令不会有Branch指令因此需要保存的PC值不止一个,根据具体情况进行恢复,中国科学技术大学,chapter3.83,精确中断与非精确中断,精确中断如果流水线可以控制使得引起异常的指令前序指令都执行完,故
36、障后的指令可以重新执行,则称该流水线支持精确中断按照指令的逻辑序处理异常理想情况,引起故障的指令没有改变机器的状态要正确的处理这类异常请求,必须保证故障指令不产生副作用在有些机器上,浮点数异常流水线段数多,在发现故障前,故障点后的指令就已经写了结果,在这种情况下,必须有办法处理。很多高性能计算机,Alpha 21164,MIPS R10000等支持精确中断,但精确模式要慢10+倍,一般用在代码调试时,很多系统要求精确中断模式,如IEEE FP标准处理程序,虚拟存储器等。精确中断对整数流水线而言,不是太难实现指令执行的中途改变机器的状态例如IA-32 的自动增量寻址模式,中国科学技术大学,cha
37、pter3.84,MIPS中的异常,IF page fault, misaligned address, memory protection violationID undefined or illegal opcodeEX arithmetic exceptionMEM page fault, misaligned address, memory protection violationWB none,中国科学技术大学,chapter3.85,3.3 MIPS中多周期操作的处理,问题浮点操作在12个cycles完成是不现实的,一般要花费较长时间在DLX(MIPS)中如何处理在1到2个cycl
38、es时间内完成的处理方法采用较慢的时钟源,或在FP部件中延迟其EX段现假设FP指令与整数指令采用相同的流水线,那么EX 段需要循环多次来完成FP操作,循环次数取决于操作类型有多个FP功能部件,如果发射出的指令导致结构或数据相关,需暂停,中国科学技术大学,chapter3.86,对MIPS的扩充,四个功能部件Integer 部件处理:Loads, Store, Integer ALU操作和BranchFP/Integer 乘法部件:处理浮点数和整数乘法FP加法器:处理FP加,减和类型转换FP/Integer除法部件:处理浮点数和整数除法这些功能部件未流水化,中国科学技术大学,chapter3.8
39、7,扩展的MIPS流水线,中国科学技术大学,chapter3.88,Latency & Repeat Interval,延时(Latency) 定义1:完成某一操作所需的cycle数定义2:使用当前指令所产生结果的指令与当前指令间的最小间隔周期数循环间隔(Repeat/Initiation interval)发射相同类型的操作所需的间隔周期数对于EX部件流水化的新的MIPS,中国科学技术大学,chapter3.89,将部分执行部件流水化后的MIPS流水线,中国科学技术大学,chapter3.90,新的相关和定向问题,结构冲突增多非流水的Divide部件,使得EX段增长24个cycles在一个周
40、期内可能有多个寄存器写操作可能指令乱序完成(乱序到达WB段)有可能存在WAW 由于在ID段读,还不会有 WAR 相关乱序完成导致异常处理复杂由于指令的延迟加大导致RAW 相关的stall数增多需要付出更多的代价来增加定向路径,中国科学技术大学,chapter3.91,新的结构相关,纵向检查指令所使用的资源第10个cycle,三条指令同时进入MEM,但由于MULTD和ADDD在MEM段没有实际动作,这种情况没有关系第11个cycle,三条指令同时进入WB段,存在结构相关,中国科学技术大学,chapter3.92,解决方法,Option 1在ID段跟踪写端口的使用情况,以便能暂停该指令的发射一旦发
41、现冲突,暂停当前指令的发射Option 2在进入MEM或WB段时,暂停冲突的指令,让有较长延时的指令先做,因为较长延时的指令,可能会更容易引起其他RAW相关,从而导致更多的stalls,中国科学技术大学,chapter3.93,关于数据相关,S.D 多延迟一个cycle,以消解与ADD.D的冲突,中国科学技术大学,chapter3.94,新的冲突源,GPR与FPR间的数据传送造成的数据相关MOVI2FP and MOVFP2I instructions如果在ID段进行相关检测,指令发射前须做如下检测:结构相关循环间隔检测确定寄存器写端口是否可用RAW相关列表所有待写的目的寄存器不发射以待写寄存
42、器做为源寄存器的指令,插入latency个stallWAW相关仍然使用上述待写寄存器列表不发射那些目的寄存器与待写寄存器列表中的指令有WAW冲突的指令,延迟1个cycle发射。,中国科学技术大学,chapter3.95,精确中断与长流水线,例如DIVF F0,F2,F4ADDF F10,F10,F8SUBF F12,F12,F14ADDF 和SUBF都在DIVF前完成如果DIVF导致异常,会如何?非精确中断Ideas?,中国科学技术大学,chapter3.96,处理中断4种可能的办法,方法1:忽略这种问题,当非精确处理原来的supercomputer的方法但现代计算机对IEEE 浮点标准的异常
43、处理,虚拟存储的异常处理要求必须是精确中断。方法2:缓存操作结果,直到早期发射的指令执行完。当指令运行时间较长时,Buffer区较大Future file (Power PC620 MIPS R10000)缓存执行结果,按指令序确认history file (CYBER 180/990)尽快确认缓存区存放原来的操作数,如果异常发生,回卷到合适的状态,中国科学技术大学,chapter3.97,第3 & 4种方法,以非精确方式处理,用软件来修正为软件修正保存足够的状态让软件仿真尚未执行完的指令的执行例如Instruction 1 A 执行时间较长,引起中断的指令Instruction 2, ins
44、truction 3, .instruction n-1 未执行完的指令Instruction n 已执行完的指令由于第n条指令已执行完,希望中断返回后从第n+1条指令开始执行,如果我们保存所有的流水线的PC值,那么软件可以仿真Instruction1 到Instruction n-1 的执行暂停发射,直到确定先前的指令都可无异常的完成,再发射下面的指令。在EX段的前期确认(MIPS流水线在前三个周期中)MIPS R2K to R4K 以及Pentium使用这种方法,中国科学技术大学,chapter3.98,MIPS流水线的性能,Stalls per FP operation for each
45、 major type of FP operation for the SPEC89 FP benchmarks,中国科学技术大学,chapter3.99,平均每条指令的stall数,The stalls occurring for the MIPS FP pipeline for five for the SPEC89 FP benchmarks.,中国科学技术大学,chapter3.100,MIPS R4000,实际的 64-bit 机器主频100MHz 200MHz较深的流水线(级数较多)(有时也称为 superpipelining)指令集与DLX非常类似,中国科学技术大学,chapte
46、r3.101,MIPS R4000的8 级整数流水线,IF取指阶段前半部分;选择PC值,初始化指令cache的访问IS取指阶段后半部分,主要完成访问指令cache的操作RF指令译码,寄存器读取,相关检测以及指令cache命中检测EX执行,包括:计算有效地址,进行ALU操作,计算分支目标地址和检测分支条件DF取数据,访问数据cache的前半部分DS访问数据cache的后半部分TCtag 检测,确定数据cache是否命中WBLoad操作和R-R操作的结果写回,中国科学技术大学,chapter3.102,需注意的问题,在使用定向技术的情况下,Load 延迟为2个cyclesLoad和与其相关的指令间
47、必须有2条指令或两个bubbles原因:load的结果在DS结束时可用分支延迟3个cycles分支与目标指令间需要3条指令或3个bubbles原因:目标地址在EX段后才能知道R4000的流水线中,到ALU输入端有四个定向源EX/DF, DF/DS, DS/ TC, TC/WB,中国科学技术大学,chapter3.103,图示,-review,影响流水线性能结构相关、数据相关控制相关、异常异常处理种类与分类精确与非精确中断支持浮点数操作的MIPS流水线Latency & Repeat Interval问题:结构相关(增多);数据相关、控制相关引起的stall增多;有新的冲突源产生;定向路径增多;异常处理复杂MIPS R4000 8级流水线存储器操作分阶段 load延迟为2个cyclesBranch操作在EX段确定分支方向- 3个cycles的延迟多个定向源 :EX/DF,DF/DS,DS/TC,TC/WBMIPS R4000的浮点数操作,
限制150内