资源描述:
《《指令的动态调度》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.2指令的动态调度静态调度:在出现数据相关时,为了消除或者减少流水线空转,编译器确定并分离出程序中存在相关的指令,然后进行指令调度,并对代码进行优化。动态调度:通过硬件重新安排指令的执行顺序,来调整相关指令实际执行时的关系,减少处理器空转。以硬件复杂性的显著增加为代价。第四章指令级并行4.2.1动态调度的原理到目前为止我们所使用流水线的最大的局限性:指令必须顺序流出看下面一段代码:DIVDF0,F2,F4;S1ADDDF10,F0,F8;S2:S2对S1数据相关,S2被阻塞SUBDF12,F8,F14;S3:S3与S1、S2都没有相关,但也被阻塞4.2指令的动态调度为了允许
2、乱序执行,我们将基本流水线的译码阶段再分为两个阶段:(1)流出(Issue,IS):指令译码,检查是否存在结构阻塞。(2)读操作数(ReadOperands,RO):当没有数据相关引发的阻塞时就读操作数。指令乱序结束带来的最大问题:异常处理比较复杂(精确异常处理、不精确异常处理)4.2指令的动态调度4.2.2动态调度算法之一:记分牌例:数据先读后写(WAR)相关引起的阻塞代码序列:DIVDF0,F2,F4ADDDF10,F0,F8SUBDF8,F8,F14指令乱序执行时就会出现先读后写相关。记分牌技术的目标:在资源充足时,尽可能早地执行没有数据阻塞的指令,达到每个时钟周期执行一
3、条指令。4.2指令的动态调度要发挥指令乱序执行的好处,必须有多条指令同时处于执行阶段,这就要求有多个功能部件或功能部件流水化或者两者兼有。假设:处理器采用多个功能部件。CDC6600具有16个功能部件:4个浮点部件,5个存储器访问部件7个整数操作部件在DLX中,假设有2个乘法器、1个加法器、1个除法部件和1个整数部件。4.2指令的动态调度1.采用记分牌技术的DLX处理器的基本结构。图4.1具有记分牌的DLX处理器基本结构记分牌电路负责记录资源的使用,并负责相关检测,控制指令的流出和执行。2.每条指令在流水线中的执行过程分为四段:(1)流出(Issue,记为IS)如果本指令所需的功
4、能部件有空闲,并且其它正在执行的指令使用的目的寄存器与本指令的不同,记分牌就向功能部件流出本指令,并修改记分牌内部的数据记录。解决了指令间存在的结构相关或写后写相关。4.2指令的动态调度(2)读操作数(ReadOperand,记为RO)。记分牌需要监测源操作数寄存器中数据的有效性,如果前面已流出的还在运行的指令不对本指令的源操作数寄存器进行写操作,或者一个正在工作的功能部件已经完成了对这个寄存器的写操作,那么此操作数有效。当操作数有效后,记分牌将启动本指令的功能部件读操作数并开始执行。解决了数据的先写后读(RAW)相关。通过以上步骤,记分牌动态解决了结构相和数据相关引发的阻塞,指令可
5、能乱序流出。4.2指令的动态调度(3)执行(Execution,记为EX)。(4)写结果(WriteResult,记为WR)。记分牌知道指令执行完毕后,如果目标寄存器空闲,就将结果写入到目标寄存器中,然后释放本指令使用的所有资源。检测先读后写(WAR)相关在出现以下的情况时,就不允许指令写结果:前面的某条指令(按顺序流出)还没有读取操作数;其中某个源操作数寄存器与本指令的目的寄存器相同。4.2指令的动态调度存在一个问题:就是功能部件到寄存器文件的数据总线宽度是有限的,当流水线中进入读操作数段(RO)和写结果段(WB)的功能部件总数超过可用总线的数目,这会导致结构阻塞。3.记分牌需要纪
6、录的信息分为三部分:(1)指令状态表记录正在执行的各条指令已经进入记分牌DLX流水线四段中的哪一段。4.2指令的动态调度(2)功能部件状态表纪录各个功能部件的状态。每个功能部件在状态表中都由以下九个域来纪录:Busy:指示功能部件是否在工作Op:功能部件当前执行的操作Fi:目的寄存器编号Fj,fk:源寄存器编号Qj,Qk:向Rj,Rk中写结果的功能部件Rj,Rk:表示Fj,Fk是否就绪,是否已经被使用4.2指令的动态调度(3)结果寄存器状态表每个寄存器在表中有一个域,用于纪录写入本寄存器的功能部件(编号)。如果当前正在运行的功能部件没有需要写入本寄存器的,则相应域置为空。4.DLX记
7、分牌所要维护的数据结构给出下列代码运行过程中记分牌保存的信息.4.2指令的动态调度LDF6,34(R2)LDF2,45(R3)MULTDF0,F2,F4SUBDF8,F6,F2DIVDF10,F0,F6ADDDF6,F8,F24.2指令的动态调度指令指令状态表ISROEXWRLDF6,34(R2)√√√√LDF2,45(R3)√√√MULTDF0,F2,F4√SUBDF8,F6,F2√DIVDF10,F0,F6√ADDDF6,F8,F2图4.2DLX记分牌