您好,欢迎访问三七文档
流水线CPU并行性概念1.并行性的含义同时性——指两个或者两个以上事件在同一时刻发生。并发性——指两个或者两个以上事件在同一时间间隔内发生。流水CPU2并行性概念2.并行处理技术的主要形式(1)时间并行—时间重叠让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件的各个部分,从而赢得高速度。实现方式:采用流水处理部件。(2)空间并行——资源重复例:奔腾CPU采用的超标量流水技术。用多个相同部件处理多个事件。实现方式:多处理器系统和多计算机系统或单处理器系统。(3)时间并行+空间并行既采用时间并行性又采用空间并行性。现代流水线计算机系统组成原理如左图所示。其中CPU按流水线方式组织,通常由三部分组成:指令部件、指令队列、执行部件。这三个功能部件可以组成一个3级流水线。图3.33流水线计算机系统组成原理示意图流水线CPU的结构指令流水线原理问题的提出串行执行方式存在部件利用率不高(有闲置时间)的问题。CPU周期使用部件闲置部件取指令PC,MS,IR等ALU,GRS取数MSPC,ALU,GRS执行ALU,GRSPC,MS每个过程段所用的部件不同在某个过程段时,其他过程段的部件处于空闲(2)流水线工作原理①指令周期的三个主要过程:图5.30指令周期的三个过程段取数取指执行入出②指令执行过程的时空图a.非流水线时空图I1I1I1I2I2I2I3I3I3I1I2I3空间S时间T执行取数取指(a)非流水线时空图b.标量流水线时空图I1I1I1I2I2I2I3I3I3I4I4I4I1I2I3空间S时间T执行取数取指(b)标量流水线时空图I4图5.31非流水线与流水线对比c.超标量流水线时空图I1I3I5I2I4I6I1I3I5I7I2I4I6I8I1I3I5I7I9I2I4I6I8I10I1I2I3I4I5I6执行取数取指空间S时间T(C)超标量流水线时空图流水线vs非流水线①非流水线指令的执行是串行的;②标量流水线从满载起,每经1个周期做完一条指令;③超标量流水线,提高了吞吐量,但需二套(或二套以上)流水线的硬件及其他电路。(见附图)常见的超标量流水线结构(3)流水线工作方式的特点①具有时间的并行性;②流水线分工越细,可同时运行的指令越多,吞吐率就越高。但需增加硬件,控制更复杂;③流水线每个阶段的执行时间应尽量一致;④流水线充满(满载)时达到最大的吞吐率。流水线相关问题·流水线相关:是指邻近指令之间由于某种关系,出现了不能同时被流水操作的现象。·流水线的相关会造成流水线的断流,影响整个流水线的效率。造成流水线相关的原因·资源相关·数据相关·变址转移·中断全局性相关局部性相关局部性相关:资源相关在同一机器时钟周期内争用同一个功能部件所发生的冲突。时钟指令12345I1取指译码取数执行I2取指译码取数执行I3取指译码取数在时钟3发生争用内存的问题—资源相关。解决方法:①将取指操作推迟一个时钟进行;②增设一个存储器,将指令和数据分开存放;③采用双端口存储器。局部性相关:数据相关在程序中,一条指令的执行需等前一条指令执行完后才能进行,则有数据相关。例:132321RRRRRRSUB)()(;,,451514RRRRRRADD)()(;,,取数译码取指ADD执行取数译码取指SUB4321时钟指令解决方法:①推迟ADD指令的取数操作;②采用数据旁路(内部向前)技术,直接把结果送给下一条指令。全局性相关:控制相关由条件转移指令或中断引起的。解决方法:①延迟转移法:加入空操作,等待转移条件形成。②猜测法:选择出现概率较高的分支进行指令预取。【例4】流水线中有三类数据相关冲突:写后读相关;读后写相关;写后写相关。判断以下三组指令各存在哪种类型的数据相关。(1)I1:ADDR1,R2,R3;(R2)+(R3)-R1I2:SUBR4,R1,R5;(R1)-(R5)-R4(2)I3:STAM(x),R3;R3)-M(x),M(x)是存储器单元I4:ADDR3,R4,R5;(R4)+(R5)-R3(3)I5:MULR3,R1,R2;(R1)×(R2)-R3I6:ADDR3,R4,R5;(R4)+(R5)-R3(1)I1:ADDR1,R2,R3;(R2)+(R3)-R1I2:SUBR4,R1,R5;(R1)-(R5)-R4第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW(写后读)相关。局部性相关:数据相关(2)I3:STAM(x),R3;(R3)-M(x),M(x)是存储器单元I4:ADDR3,R4,R5;(R4)+(R5)-R3第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR局部性相关:数据相关(3)I5:MULR3,R1,R2;(R1)×(R2)-R3I6:ADDR3,R4,R5;(R4)+(R5)-R3第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错误,发生WAW(写后写)相关。局部性相关:数据相关局部性相关的处理方法指令调度法设置多个功能部件内部数据定向·静态调度·动态调度(1)指令调度法指令调度改变指令的执行顺序以解决相关性带来的问题静态指令调度改变程序中指令的位置由编译程序实现动态指令调度改变指令的实际执行顺序不改变取指令和指令译码的顺序无序执行由控制器硬件实现计分牌法保存站法静态调度:流水线延迟取指F译码D发射I执行E执行E执行E写回W(a)一条7段指令流水线①R1←M(Y)②R2←M(Z)③R3←(R1)+(R2)④M(X)←(R3)⑤R4←M(B)⑥R5←M(C)⑦R6←(R4)×(R5)⑧M(A)←(R6)(c)8条指令的流水线图4-12流水线的相关延迟FFFFFFFFDDDDDDDDIIIIIIIIEEEEEEEEEEEEEEEEEEEEEEEE①②③④⑤⑥⑦⑧(b)8条指令顺序时间X=Y+ZA=BC指令发射:启动指令去处理器功能单元执行的过程静态调度:编译检测编译器优化后,所需时间为17个时钟周期①R1←M(Y)②R2←M(Z)③R4←M(B)④R5←M(C)⑤R3←(R1)+(R2)⑥R6←(R4)×(R5)⑦M(X)←(R3)⑧M(A)←(R6)FFFFFFFFDDDDDDDDIIIIIIIIEEEEEEEEEEEEEEEEEEEEEEEE①②③④⑤⑥⑦⑧8条指令顺序图4-13静态调度后的流水线延迟动态调度-计分牌法取指令F译码D发射I执行E执行E执行E执行E执行E写回W写回W写回W计分牌(a)CDC6600处理机的流水线结构执行E计分牌是一个位向量、每一位对应寄存器堆中的一个寄存器。指令发射时,目的寄存器在计分牌中相应位置1;写回后,目的寄存器在计分牌中相应位清0。判断指令可否发射的条件是:该指令所有目的寄存器及源寄存器在计分牌中对应位都为0;否则等待上述位清除。解决数据相关采用定向传送技术:将前面指令执行的结果直接送给后面指令所需此源操作数的功能部件动态调度-计分牌法①R1←M(Y)②R2←M(Z)③R3←(R1)+(R2)④M(X)←(R3)⑤R4←M(B)⑥R5←M(C)⑦R6←(R4)×(R5)⑧M(A)←(R6)FFFFFFFFDDDDDDDDIIIIIIIIEEEEEEEEEEEEEEEEEEEEEEEE①②③④⑤⑥⑦⑧1819(b)计分牌法动态调度后的流水线图4-15基于计分牌发射逻辑的流水线调度过程动态调度-计分牌法动态调度-计分牌法依靠流水线停顿来解决相关性没有消除数据相关集中式调度记分牌部件是性能瓶颈记分牌的缺点动态调度-保存站法FDIRSRSRSRSEEEEEEWW...RS(a)保存站结构动态调度-保存站法发射如果有空的保存站,就发射指令;只要操作数有效,就将其取到保存站,避免指令发射时才到寄存器中取数据的情况.如果没有空的保存站或缓存部件,则指令暂等执行一条指令发射时,存放操作数的寄存器名被换成为对应于该寄存器的保存站名称(寄存器重命名)写结果结果写回时通过数据总线直接送到等待此结果的所有保存站①R1←M(Y)②R2←M(Z)③R3←(R1)+(R2)④M(X)←(R3)⑤R4←M(B)⑥R5←M(C)⑦R6←(R4)×(R5)⑧M(A)←(R6)FFFFFFFFDDDDDDDDIIIIIIIIEEEEEEEEEEEEEEEEEEEEEEEE①②③④⑤⑥⑦⑧1819(b)保存站法动态调度后流水线图4-14保存站动态调度法动态调度-保存站法具有分布的阻塞检测机制;消除了数据写后写和先读后写相关导致的阻塞保存站法的优点(相对记分牌法)动态调度-保存站法保存站法又称作Tomasulo调度法(2)设置多个功能部件·流水线的瓶颈会在某一个流水线段产生;·这种瓶颈段一定对应于预约表中符号最多的那一行;·可设置几个相同的段来解决该段的瓶颈问题。例:S2S3S1S4ΔtΔtΔt3ΔtS2S3S1S4ΔtΔtΔt3ΔtS3S3(2)设置多个功能部件(3)内部数据定向·内部数据定向的原则:是要消除一些不必要的访存储器或访寄存器的中间环节,从而减少资源和数据的相关性,以提高流水线的吞吐率。·数据定向分成:写-读定向、读-读定向、写-写定向。(3)内部数据定向可减少或者消除数据相关性带来的影响DataforwardingWWMMExExIdIdIFIF流水周期654321and$4,$2,$5lw$2,20($1)IFIdExMWU2MU1相关通路先写先写后读U2MU1写-读定向(3)内部数据定向读-读定向U2MU1先读后读相关通路先读U2MU1写-写定向U2MU1先写后写U2MU1后写2.全局性相关:变址转移·全局性相关由转移指令引起;·当指令流足够长时,转移引起的流水线性能将会下降46%左右。·解决方法:延迟转移法转移预测法1)延迟转移法延迟转移法:目的是转移成功时,转移指令后面进入流水线的指令不作废,想办法使之有用,以减少延迟时间的损失。…I0LDR4,BI1LDR1,AI2DECR3,1I3JZR3,I50I4ADDR2,R4I5SUBR5,R6…I50……I2DECR3,1I3JZR3,I50I0LDR4,BI1LDR1,AI4ADDR2,R4I5SUBR5,R6…I50…例:…I0LDR4,BI1LDR1,AI2DECR3,1I3JZR3,I50I4ADDR2,R4I5SUBR5,R6I6LDB,R5…I50…分析执行取指I4I3I5分析执行取指I0I3I1转移成功I50转移不成功I41)延迟转移法ADDR1,R2,R3BNER2,loopSUBR4,R5,R6ADDR1,R2,R3BNER2,loop延迟槽BNER2,loopADDR1,R2,R3SUBR4,R5,R6……ADDR1,R2,R3BNER1,loop延迟槽SUBR4,R5,R6……ADDR1,R2,R3BNER1,loopSUBR4,R5,R6ADDR1,R2,R3BNER2,loopORR7,R8,R9SUBR4,R5,R6ORR7,R8,R9延迟槽(a)转移指令前(b)转移目标处(c)无关指令转移延迟槽:将转移指令的执行在流水线中提前进行1)延迟转移法2)转移预测法转移预测法:在程序执行以前,就静态地根据转移代码的类型或动态地根据转移历史表来预测下一次转移是否会成功。得到的预测值都是试探性的值,不能把结果作为最后结果。
本文标题:流水线CPU技术
链接地址:https://www.777doc.com/doc-5126931 .html