指令级并行课件.ppt

上传人(卖家):三亚风情 文档编号:3545976 上传时间:2022-09-15 格式:PPT 页数:254 大小:4.50MB
下载 相关 举报
指令级并行课件.ppt_第1页
第1页 / 共254页
指令级并行课件.ppt_第2页
第2页 / 共254页
指令级并行课件.ppt_第3页
第3页 / 共254页
指令级并行课件.ppt_第4页
第4页 / 共254页
指令级并行课件.ppt_第5页
第5页 / 共254页
点击查看更多>>
资源描述

1、第第5 5章章 指令级并行指令级并行 指令集并行的基本概念及挑战 软件方法挖掘指令集并行 基本块内的指令集并行 硬件方法挖掘指令集并行 Scoreboard Tomasulo 跨越基本块的指令集并行 基于硬件的推测执行 以多发射和静态调度来挖掘指令集并行 以动态调度、多发射和推测执行来挖掘指令集并行2022-7-21计算机体系结构1系统结构的Flynn分类(1966)SISD:Single instruction stream,single data stream 单处理器模式SIMD:Single instruction stream,multiple data streams 相同的指令作

2、用在不同的数据Same instruction is executed on different data 可用来挖掘数据级并行(Data Level Parallelism)如:Vector processors,SIMD instructions,and Graphics processing units MISD:Multiple instruction streams,single data stream No commercial implementationMIMD:Multiple instruction streams,multiple data streams 通用性最强的一

3、种结构,可用来挖掘线程级并行、数据级并行.组织方式可以是松耦合方式也可以是紧耦合方式2022-7-21计算机体系结构2Levels of Parallelism请求级并行 多个任务被分配到多个计算机上并行执行进程级并行进程被调度到不同的处理器上并行执行 线程级并行 任务被组织成多个线程,多个线程共享一个进程的地址空间 每个线程有自己独立的程序计数器和寄存器文件数据级并行 单线程(逻辑上)中并行处理多个数据(SIMD/Vector execution)一个程序计数器,多个执行部件 指令级并行 针对单一指令流,多个执行部件并行执行不同的指令2022-7-21计算机体系结构3Review:Revie

4、w:基本流水线基本流水线 流水线提高的是指令带宽(吞吐率),而不是单条指令的执行速度 相关限制了流水线性能的发挥 结构相关:需要更多的硬件资源 数据相关:需要定向,编译器调度 控制相关:尽早检测条件,计算目标地址,延迟转移,预测 增加流水线的级数会增加相关产生的可能性 异常,浮点运算使得流水线控制更加复杂 编译器可降低数据相关和控制相关的开销 Load 延迟槽 Branch 延迟槽 Branch预测2022-7-21计算机体系结构45 5.1.1 指令级并行的基本概念及挑战指令级并行的基本概念及挑战 ILP:无关的指令重叠执行 流水线的平均CPI Pipeline CPI=Ideal Pipe

5、line CPI+Struct Stalls+RAW Stalls+WAR Stalls+WAW Stalls+Control Stalls+Memory Stalls 本章研究:减少停顿(stalls)数的方法和技术 基本途径 软件方法:Gcc:17%控制类指令,5 instructions+1 branch;在基本块上,得到更多的并行性 挖掘循环级并行 硬件方法 动态调度方法 以MIPS的浮点数操作为例2022-7-21计算机体系结构5采用的基本技术采用的基本技术2022-7-21计算机体系结构6本章遵循的指令延时本章遵循的指令延时产生结果的指令产生结果的指令 使用结果的指令使用结果的指令

6、 所需延时所需延时 FP ALU op Another FP ALU op 3 FP ALU op Store double 2 Load double FP ALU op 1 Load double Store double 0 Integer op Integer op 0 (当使用结果的指令为当使用结果的指令为BRANCH指令时除外指令时除外)2022-7-21计算机体系结构75.2 5.2 基本块内的指令级并行基本块内的指令级并行 基本块的定义:直线型代码,无分支;单入口;程序由分支语句连接基本块构成 循环级并行 for(i=1;i=1000;i+)x(i)=x(i)+s;计算x(i)

7、时没有数据相关;可以并行产生1000个数据;问题:在生成代码时会有Branch指令控制相关预测比较容易,但我们必须有预测方案 向量处理机模型 load vectors x and y(up to some machine dependent max)then do result-vec=xvec+yvec in a single instruction2022-7-21计算机体系结构8简单循环及其对应的汇编程序简单循环及其对应的汇编程序 for(i=1;i=1000;i+)x(i)=x(i)+s;Loop:LD F0,0(R1);F0=vector element ADDD F4,F0,F2

8、;add scalar from F2 SD 0(R1),F4 ;store result SUBI R1,R1,8 ;decrement pointer 8B(DW)BNEZ R1,Loop ;branch R1!=zero NOP ;delayed branch slot2022-7-21计算机体系结构9FP FP 循环中的相关循环中的相关Loop:LD F0,0(R1);F0=vector element ADDD F4,F0,F2 ;add scalar in F2 SD 0(R1),F4 ;store result SUBI R1,R1,8 ;decrement pointer 8B

9、(DW)BNEZ R1,Loop ;branch R1!=zero NOP ;delayed branch slot产生结果的指令产生结果的指令 使用结果的指令使用结果的指令所需的延时所需的延时FP ALU opAnother FP ALU op3FP ALU opStore double2 Load doubleFP ALU op1Load doubleStore double0Integer opInteger op02022-7-21计算机体系结构10FP FP 循环中的循环中的StallsStalls 10 clocks:是否可以通过调整代码顺序使是否可以通过调整代码顺序使stalls

10、减到最小减到最小 1 Loop:LDF0,0(R1);F0=vector element 2 stall 3ADDDF4,F0,F2;add scalar in F2 4 stall 5 stall 6 SD0(R1),F4;store result 7 SUBIR1,R1,8;decrement pointer 8B(DW)8 stall ;9 BNEZR1,Loop;branch R1!=zero 10 stall ;delayed branch slot产生结果的指令产生结果的指令 使用结果的指令使用结果的指令所需的延时所需的延时FP ALU opAnother FP ALU op3FP

11、 ALU opStore double2 Load doubleFP ALU op1Load doubleStore double0Integer opInteger op02022-7-21计算机体系结构11FP FP 循环中的最少循环中的最少StallsStalls数数 6 clocks:通过循环展开通过循环展开4次是否可以提高性能次是否可以提高性能?1 Loop:LD F0,0(R1)2SUBI R1,R1,8 3ADDD F4,F0,F2 4 stall 5BNEZ R1,Loop;delayed branch 6 SD8(R1),F4 ;altered when move past

12、SUBISwap BNEZ and SD by changing address of SD2022-7-21计算机体系结构12循环展开循环展开4 4次次(straightforward way)Rewrite loop to minimize stalls?1 Loop:LDF0,0(R1)stall 2ADDDF4,F0,F2 stall stall 3SD0(R1),F4;drop SUBI&BNEZ 4LDF6,-8(R1)stall 5ADDDF8,F6,F2 stall stall 6SD-8(R1),F8;drop SUBI&BNEZ 7LDF10,-16(R1)stall 8A

13、DDDF12,F10,F2 stall stall 9SD-16(R1),F12;drop SUBI&BNEZ 10LDF14,-24(R1)stall 11ADDDF16,F14,F2 stall stall 12SD-24(R1),F16 13SUBIR1,R1,#32 stall ;alter to 4*8 14BNEZR1,LOOP 15NOP 15+4 x(1+2)+1=28 cycles,or 7 per iteration Assumes R1 is multiple of 42022-7-21计算机体系结构13StallsStalls数最小的循环展开数最小的循环展开 代码移动后

14、 SD移动到SUBI后,注意偏移量的修改 Loads移动到SD前,注意偏移量的修改1 Loop:LDF0,0(R1)2LDF6,-8(R1)3LDF10,-16(R1)4LDF14,-24(R1)5ADDDF4,F0,F26ADDDF8,F6,F27ADDDF12,F10,F28ADDDF16,F14,F29SD0(R1),F410SD-8(R1),F811SUBIR1,R1,#3212SD16(R1),F1213BNEZR1,LOOP14SD8(R1),F16;8-32=-24 14 clock cycles,or 3.5 per iteration2022-7-21计算机体系结构14循环展

15、开示例小结循环展开示例小结 循环展开对循环间无关的程序是有效降低stalls的手段(对循环级并行).指令调度,必须保证程序运行的结果不变 注意循环展开中的Load和Store,不同次循环的Load 和Store 是相互独立的。需要分析对存储器的引用,保证他们没有引用同一地址.不同次的循环,使用不同的寄存器 删除不必要的测试和分支后,需调整循环步长等控制循环的代码.移动SD到SUBI和BNEZ后,需要调整SD中的偏移2022-7-21计算机体系结构15从编译器角度看代码移动(从编译器角度看代码移动(1/1/4 4)编译器分析程序的相关性依赖于给定的流水线编译器分析程序的相关性依赖于给定的流水线

16、编译器进行指令调度来消除相关编译器进行指令调度来消除相关 (True)(True)数据相关(数据相关(Data dependenciesData dependencies)对于指令对于指令i i和和j j,如果如果Instruction jInstruction j使用指令使用指令i i产生的结果产生的结果 ,或或Instruction j Instruction j 与与instruction kinstruction k相关相关,并且并且instruction k instruction k 与与instruction iinstruction i有数据相关有数据相关.如果相关如果相关,不

17、能并行执行不能并行执行 对于寄存器比较容易确定对于寄存器比较容易确定(fixed names)(fixed names)但对但对memorymemory的引用,比较难确定的引用,比较难确定:100(R4)=20(R6)?100(R4)=20(R6)?在不同次的循环中,在不同次的循环中,20(R6)=20(R6)?20(R6)=20(R6)?2022-7-21计算机体系结构16下列程序哪里有数据相关下列程序哪里有数据相关?1 Loop:LD F0,0(R1)2 ADDD F4,F0,F2 3 SUBI R1,R1,8 4 BNEZ R1,Loop ;delayed branch 5 SD 8(R

18、1),F4 ;altered when move past SUBI2022-7-21计算机体系结构17从编译器角度看代码移动从编译器角度看代码移动(2/(2/4 4)另一种相关称为名相关(name dependence):两条指令使用同名参数(register or memory location)但不交换数据 反相关(Antidependence)(WAR if a hazard for HW)Instruction j 所写的寄存器或存储单元,与 instruction i 所读的寄存器或存储单元相同,注instruction i 是先执行 输出相关(Output dependence)

19、(WAW if a hazard for HW)Instruction i 和instruction j 对同一寄存器或存储单元进行写操作,必须保证两条指令的写顺序 2022-7-21计算机体系结构18下列是否有名相关下列是否有名相关?1 Loop:LDF0,0(R1)2ADDDF4,F0,F2 3SD0(R1),F4;drop SUBI&BNEZ 4LDF0,-8(R1)5ADDDF4,F0,F2 6SD-8(R1),F4;drop SUBI&BNEZ 7LDF0,-16(R1)8ADDDF4,F0,F2 9SD-16(R1),F4;drop SUBI&BNEZ 10LDF0,-24(R1)

20、11ADDDF4,F0,F2 12SD-24(R1),F4 13SUBIR1,R1,#32;alter to 4*8 14BNEZR1,LOOP 15NOP 如何消除名相关如何消除名相关?2022-7-21计算机体系结构19下列是否存在名相关下列是否存在名相关?1 Loop:LDF0,0(R1)2ADDD F4,F0,F2 3SD0(R1),F4;drop SUBI&BNEZ 4LDF6,-8(R1)5ADDD F8,F6,F2 6SD-8(R1),F8;drop SUBI&BNEZ 7LDF10,-16(R1)8ADDD F12,F10,F2 9SD-16(R1),F12;drop SUBI

21、&BNEZ 10LDF14,-24(R1)11ADDD F16,F14,F2 12SD-24(R1),F16 13SUBIR1,R1,#32;alter to 4*8 14BNEZR1,LOOP 15NOP 这种方法称为寄存器重命名这种方法称为寄存器重命名(register renaming)2022-7-21计算机体系结构20从编译器角度看代码移动(从编译器角度看代码移动(3/3/4 4)访问存储单元时,很难判断名相关 100(R4)=20(R6)?不同次的循环,20(R6)=20(R6)?我们给出的示例要求编译器知道假设R1不变,因此:0(R1)-8(R1)-16(R1)-24(R1)因此

22、loads和stores之间相互无关可以移动2022-7-21计算机体系结构21从编译器角度看代码移动(从编译器角度看代码移动(4/4/4 4)最后一种相关称为控制相关(control dependence)Exampleif p1 S1;if p2 S2;S1 依赖于P1的测试结果,S2依赖于P2的测试。处理控制相关的原则:受分支指令控制的指令,不能移到控制指令之前,以免该指令的执行不在分支指令的控制范围.不受分支指令控制的指令,不能移到控制指令之后,以免该指令的执行受分支指令的控制.减少控制相关可以提高指令的并行性2022-7-21计算机体系结构22下列程序段的控制相关下列程序段的控制相关

23、 1 Loop:LD F0,0(R1)2 ADDD F4,F0,F2 3 SD 0(R1),F4 4 SUBI R1,R1,8 5 BEQZ R1,exit 6 LD F0,0(R1)7 ADDD F4,F0,F2 8 SD 0(R1),F4 9 SUBI R1,R1,8 10 BEQZ R1,exit 11 LD F0,0(R1)12 ADDD F4,F0,F2 13 SD 0(R1),F4 14 SUBI R1,R1,8 15 BEQZ R1,exit.2022-7-21计算机体系结构2304/22-Review 04/22-Review 指令级并行(ILP):流水线的平均CPI Pipe

24、line CPI=Ideal Pipeline CPI+Struct Stalls+RAW Stalls+WAR Stalls+WAW Stalls+Control Stalls+提高指令级并行的方法 软件方法:指令流调度,循环展开,软件流水线,trace scheduling 硬件方法 软件方法:指令流调度-循环展开 指令调度,必须保证程序运行的结果不变 偏移量的修改 寄存器的重命名 循环步长的调整2022-7-21计算机体系结构24循环间相关(循环间相关(1/41/4)Example:下列程序段存在哪些数据相关?(A,B,C 指向不同的存储区且不存在覆盖区)for(i=1;i=100;i=

25、i+1)Ai+1=Ai+Ci;/*S1*/Bi+1=Bi+Ai+1;/*S2*/1.S2使用由S1在同一循环计算出的 Ai+1.2.S1 使用由S1在前一次循环中计算的值;S2也使用由S2在前一次循环中计算的值.这种存在于循环间的相关,我们称为“loop-carried dependence”这表示循环间存在相关,不能并行执行,它与我们前面的例子中循环间无关是有区别的2022-7-21计算机体系结构25无回路的无回路的循环间相关(循环间相关(2/2/4 4)-Example:A,B,C,D distinct&nonoverlappingfor(i=1;i=100;i=i+1)Ai=Ai+Bi;

26、/*S1*/Bi+1=Ci+Di;/*S2*/Non-Circular Loop-Carried Dependence 1.S1和S2没有相关,S1和S2互换不会影响程序的正确性 2.在第一次循环中,S1依赖于前一次循环的B1.3.S1依赖上一次循环的S2,但S2不依赖S12022-7-21计算机体系结构26循环间相关循环间相关(3/43/4)-循环变换循环变换A1=A1+B1;for(i=1;i=99;i=i+1)Bi+1=Ci+Di;Ai+1=Ai+1+Bi+1;B101=C100+D100;for(i=1;i=100;i=i+1)Ai=Ai+Bi;/*S1*/Bi+1=Ci+Di;/*S

27、2*/OLD:NEW:2022-7-21计算机体系结构27循环间相关(循环间相关(4/44/4)-Dependence Distance-Dependence Distance 通常循环间相关呈现为递推关系 for(i=1;iN;i+)Ai=Ai-1+Bi;相关的距离可能大于1 for(i=4;iN;i+)Ai=Ai-4+Bi;可以通过循环展开增加循环内的并行性 for(i=4;i out-of-order completion2022-7-21计算机体系结构29硬件方案之一硬件方案之一:记分牌记分牌 记分牌的基本概念示意图2022-7-21计算机体系结构30记分牌技术要点记分牌技术要点(1/

28、2)(1/2)Out-of-order execution 将ID 段分为:1.Issue译码,检测结构相关2.Read operands等待到无数据相关时,读操作数 起源于1963年推出的CDC6600 4 FPU 5 Memory Reference 7 IU 集中相关检查,互锁机制解决相关 CDC 6600:顺序发射,乱序执行,乱序完成,CDC6600流水线没有采用定向技术,只实现非精确中断 Load/store结构 采用这种技术的微处理器企业 MIPS,HP,IBM Sun 公司的UltraSparc DEC Alpha2022-7-21计算机体系结构31记分牌技术要点记分牌技术要点(

29、2/2)(2/2)Out-of-order completion=WAR,WAW hazards?WAR的一般解决方案 对操作排队 仅在读操作数阶段读寄存器 对WAW而言,检测到相关后,停止发射前一条指令,直到前一条指令完成 要提高效率,需要有多条指令进入执行阶段=必须有多个执行部件或执行部件是流水化的 记分牌保存相关操作和状态 记分牌用四段代替ID,EX,WB 三段2022-7-21计算机体系结构32带有记分牌控制的带有记分牌控制的DLXDLX2022-7-21计算机体系结构33记分牌控制的四阶段记分牌控制的四阶段(1/2)1/2)1.Issue指令译码,检测结构相关 如果当前指令所使用的功

30、能部件空闲,并且没有其他活动的指令使用相同的目的寄存器(WAW),记分牌发射该指令到功能部件,并更新记分牌内部数据,如果有结构相关或WAW相关,则该指令的发射暂停,并且也不发射后继指令,直到相关解除.2.Read operands没有数据相关时,读操作数 如果先前已发射的正在运行的指令不对当前指令的源操作数寄存器进行写操作,或者一个正在工作的功能部件已经完成了对该寄存器的写操作,则该操作数有效。操作数有效时,记分牌控制功能部件读操作数,准备执行。记分牌在这一步动态地解决了RAW相关,指令可能会乱序执行。2022-7-21计算机体系结构34记分牌控制的四阶段(记分牌控制的四阶段(2 2/2/2)

31、3.Execution取到操作数后执行(EX)接收到操作数后,功能部件开始执行.当计算出结果后,它通知记分牌,可以结束该条指令的执行.4.Write resultfinish execution(WB)一旦记分牌得到功能部件执行完毕的信息后,记分牌检测WAR相关,如果没有WAR相关,就写结果,如果有WAR 相关,则暂停该条指令。Example:DIVDF0,F2,F4 ADDDF10,F0,F8 SUBDF8,F8,F14 CDC 6600 scoreboard 将暂停 SUBD 直到ADDD 读取操作数后,才进入WR段处理。2022-7-21计算机体系结构35记分牌的结构记分牌的结构1.In

32、struction status记录正在执行的各条指令所处的状态步2.Functional unit status记录功能部件(FU)的状态。用9个域记录每个功能部件的9个参量:Busy指示该部件是否空闲Op该部件所完成的操作Fi其目的寄存器编号Fj,Fk源寄存器编号Qj,Qk产生源操作数Fj,Fk的功能部件Rj,Rk标识源操作数Fj,Fk是否就绪的标志3.Register result status如果存在功能部件对某一寄存器进行写操作,指示具体是哪个功能部件对该寄存器进行写操作。如果没有指令对该寄存器进行写操作,则该域 为Blank2022-7-21计算机体系结构36记分牌流水线控制记分牌

33、流水线控制Read operandsExecution completeInstruction statusWrite resultIssueBookkeepingRj No;Rk Nof(if Qj(f)=FU then Rj(f)Yes);f(if Qk(f)=FU then Rk(f)Yes);Result(Fi(FU)0;Busy(FU)NoBusy(FU)yes;Op(FU)op;Fi(FU)D;Fj(FU)S1;Fk(FU)S2;Qj Result(S1);Qk Result(S2);Rj not Qj;Rk not Qk;Result(D)FU;Rj and RkFunction

34、al unit doneWait untilf(Fj(f)Fi(FU)or Rj(f)=No)&(Fk(f)Fi(FU)or Rk(f)=No)Not busy(FU)and not result(D)*2022-7-21计算机体系结构37ScoreboardScoreboard ExampleExampleInstruction status ReadExecutionWriteInstructionjkIssueoperands complete ResultLDF634+R2LDF245+R3MULTD F0F2F4SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Funct

35、ional unit statusdestS1S2FU for j FU for kFj?Fk?TimeNameBusyOpFiFjFkQjQkRjRkIntegerNoMult1NoMult2NoAddNoDivideNoRegister result statusClockF0F2F4F6F8F10F12.F30FU2022-7-21计算机体系结构38Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21LDF245+R3MULTDF0F2F4SUBDF8F6F2DIVDF10F0F6A

36、DDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Ti m e Nam eBusyOpFiFjFkQjQkRjRkIntegerYesLoadF6R2YesMult1NoMult2NoAddNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F301FUIntegerScoreboard Example:Cycle 12022-7-21计算机体系结构39Instruction status:Read Exec WriteInstructionjkIssue Oper Comp Resu

37、ltLDF634+R212LDF245+R3MULTDF0F2F4SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF6R2YesMult1NoMult2NoAddNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F302FUInteger Issue 2nd LD?Scoreboard Example:Cycle 2Scoreboard Example:

38、Cycle 22022-7-21计算机体系结构40Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R2123LDF245+R3MULTDF0F2F4SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF6R2NoMult1NoMult2NoAddNoDivideNoRegister result status:Clo

39、ckF0F2F4F6F8F10 F12.F303FUInteger Issue MULT?Scoreboard Example:Cycle 3Scoreboard Example:Cycle 32022-7-21计算机体系结构41Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R3MULTDF0F2F4SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBu

40、syOpFiFjFkQjQkRjRkIntegerNoMult1NoMult2NoAddNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F304FUIntegerScoreboard Example:Cycle 42022-7-21计算机体系结构42Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R35MULTDF0F2F4SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Functiona

41、l unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF2R3YesMult1NoMult2NoAddNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F305FUIntegerScoreboard Example:Cycle 5Scoreboard Example:Cycle 52022-7-21计算机体系结构43Instruction status:Read Exec WriteInstructionjkIssue Oper Comp

42、 ResultLDF634+R21234LDF245+R356MULTDF0F2F46SUBDF8F6F2DIVDF10F0F6ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF2R3YesMult1YesMultF0F2F4IntegerNoYesMult2NoAddNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F306FUMult1 IntegerScoreboard Example:C

43、ycle 62022-7-21计算机体系结构44Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R3567M ULTDF0F2F46SUBDF8F6F27DIVDF10F0F6ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF2R3NoMult1YesMultF0F2F4IntegerNoYesMult2NoAddYesSubF

44、8F6F2IntegerYesNoDivideNoRegister result status:ClockF0F2F4F6F8F10 F12.F307FUMult1 IntegerAdd Read multiply operands?Scoreboard Example:Cycle 7Scoreboard Example:Cycle 72022-7-21计算机体系结构45Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R3567MULTDF0F2F46SUBDF8F

45、6F27DIVDF10F0F68ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerYesLoadF2R3NoMult1YesMultF0F2F4IntegerNoYesMult2NoAddYesSubF8F6F2IntegerYesNoDivideYesDivF10F0F6Mult1NoYesRegister result status:ClockF0F2F4F6F8F10 F12.F308FUMult1 IntegerAddDivideScoreboard Exampl

46、e:Scoreboard Example:Cycle 8aCycle 8a (First half of clock(First half of clock cycle)cycle)2022-7-21计算机体系结构46Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R35678MULTDF0F2F46SUBDF8F6F27DIVDF10F0F68ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameB

47、usyOpFiFjFkQjQkRjRkIntegerNoMult1YesMultF0F2F4YesYesMult2NoAddYesSubF8F6F2YesYesDivideYesDivF10F0F6Mult1NoYesRegister result status:ClockF0F2F4F6F8F10 F12.F308FUMult1AddDivideScoreboard Example:Scoreboard Example:Cycle 8b(Second half of clock Cycle 8b(Second half of clock cycle)cycle)2022-7-21计算机体系结

48、构47Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R35678MULTDF0F2F469SUBDF8F6F279DIVDF10F0F68ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerNo10 Mult1YesMultF0F2F4YesYesMult2No2 AddYesSubF8F6F2YesYesDivideYesDivF10F0F6

49、Mult1NoYesRegister result status:ClockF0F2F4F6F8F10 F12.F309FUMult1AddDivide Read operands for MULT&SUB?Issue ADDD?Note RemainingScoreboard Example:Cycle 9Scoreboard Example:Cycle 92022-7-21计算机体系结构48Instruction status:Read Exec WriteInstructionjkIssue Oper Comp ResultLDF634+R21234LDF245+R35678MULTDF

50、0F2F469SUBDF8F6F279DIVDF10F0F68ADDDF6F8F2Functional unit status:destS1S2FUFUFj?Fk?Time NameBusyOpFiFjFkQjQkRjRkIntegerNo9 Mult1YesMultF0F2F4NoNoMult2No1 AddYesSubF8F6F2NoNoDivideYesDivF10F0F6Mult1NoYesRegister result status:ClockF0F2F4F6F8F10 F12.F3010FUMult1AddDivideScoreboard Example:Cycle 10Score

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

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


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

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


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