标量计算机(流水线技术)课件_第1页
标量计算机(流水线技术)课件_第2页
标量计算机(流水线技术)课件_第3页
标量计算机(流水线技术)课件_第4页
标量计算机(流水线技术)课件_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机体系结构主讲:陈付龙第5章 流水处理技术5.1 一次重叠5.2 先行控制5.3 流水技术原理5.4 流水线的分类5.5 流水线相关及其处理方法5.6 流水线调度5.7 超标量流水处理机5.8 超流水线处理机5.9 超标量超流水处理机5.10 超长指令字处理机高山流水流水线技术的由来1769年,英国人乔赛亚韦奇伍德开办埃特鲁利亚陶瓷工厂,在场内实行精细的劳动分工,他把原来由一个人从头到尾完成的制陶流程分成几十道专门工序,分别由专人完成。这样一来,原来意义上的“制陶工”就不复存在了,存在的只是挖泥工、运泥工、扮土工、制坯工等等制陶工匠变成了制陶工场的工人,他们必须按固定的工作节奏劳动,服从统

2、一的劳动管理。 为什么想到改流水线流水线之前,汽车工业完全是手工作坊型的 . 每装配一辆汽车要728个人工小时,当时汽车的年产量大约12辆.这一速度远不能满足巨大的消费市场的需求.所以使得汽车成为富人的象征. 福特的梦想是让汽车成为大众化的交通工具.所以,提高生产速度和生产效率是关键.只有降低成本,才能降低价格,使普通百姓也能买的起汽车.流水线的形成1913年,福特应用创新理念和反向思维逻辑提出在汽车组装中,汽车底盘在传送带上以一定速度从一端向另一端前行前行中,逐步装上发动机,操空系统,车厢,方向盘,仪表,车灯,车窗玻璃、车轮,一辆完整的车组装成了第一条流水线使每辆T型汽车的组装时间由原来的1

3、2小时28分钟缩短至10秒钟,生产效率提高了4488倍!流水线是怎样提高速度的流水线是把一个重复的过程分为若干个子过程,每个子过程可以和其他子过程并行运作福特的流水线不仅把汽车放在流水线上组装,也花费大量精力研究提高劳动生产率福特把装配汽车的零件装在敞口箱里,放在输送带上,送到技工面前,工人只需站在输送带两边,节省了来往取零件的时间而且装配底盘时,让工人拖着底盘通过预先排列好的一堆零件,负责装配的工人只需安装,这样装配速度自然加快了。他在一年之中生产几十万辆汽车,这个新的系统既有效又经济.结果他把汽车的价格削减了一半,降至每辆260美元,1913年,美国人均收入为5301美元,1914年,一个

4、工人工作不到四个月就可以买一辆T型车。流水线的意义它使产品的生产工序被分割成一个个的环节,工人间的分工更为细致,产品的质量和产量大幅度提高,极大促进了生产工艺过程和产品的标准化。制成品被大量生产出来,尤其是多样的日用品在流水线上变成了标准化商品。汽车生产流水线以标准化、大批量生产来降低生产成本,提高生产效率的方式适应了美国当时的国情,汽车工业迅速成为美国的一大支柱产业。体检流水每个医生只负责检查一项,多个医生同时工作单周期处理机多周期处理机多周期实现概述单周期处理器的问题根源: 对于最慢的指令,周期时间必须足够长解决方案:将指令处理分为更小的步骤,每个周期执行一步(而不是整个指令)周期时间:

5、执行最长步所需的时间使所有的步骤尽量具有相同的长度这是多周期处理器的本质所在多周期处理器的优点:周期时间短不同的指令需要不同的周期数来完成装入指令需要5个周期,跳转仅仅需要3个周期允许每条指令多次使用同一个功能部件5.1 一次重叠一条机器指令的执行过程取指令分析执行tttt顺序解释执行执行k+1分析k+1取指k+1执行k分析k取指kT=3nt一次重叠工作方式执行k分析k取指k执行k+1分析k+1取指k+1T=(2n+1) t执行k+2分析k+2取指k+2访存冲突问题分析k要访问存储器取操作数,取指k+1也要访存取指令,若操作数和指令存储在同一存储器内,在同一时刻只能访问一个存储单元就形成了分析

6、k和取指k+1的访存冲突。解决办法使操作数和指令分别存储于两个独立编指的且可同时访问的存储器内采用多体交叉存储器,保证操作数和指令不位于同一个存储体内甚至指缓栈(指令缓冲寄存器组),把所需的后继指令预先取到指缓栈中5.2 先行控制不同部件处理时间不等的问题分析k执行k分析k+1执行k+1分析k+2执行k+2分析k+3执行k+3 t1 t2 t3各部件不能连续工作Why good?指令执行过程中分析和执行部件之间虽然有等待时间 t,但每个部件上的处理是连续的。理想情况下,采用先行控制方式连续解释n条指令所需时间为先行控制处理机结构主存储器存储控制器先行指令缓冲栈先行读数栈后行写数栈指令分析器先行

7、操作栈运算控制器运算器通用寄存器先行控制器计算机的各个部分几乎都可以采用流水线技术: (1)指令的执行过程可以采用流水线,称为指令流水线。 (2)运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线。 (3)访问主存的部件可以采用访存部件流水线。多个计算机之间,通过存储器连接,也可以采用流水线,称为宏流水线。流水线的工作过程时空图的另外一种形式取指令指令译码取操作数执行取指令指令译码取操作数执行取指令指令译码取操作数执行取指令指令译码取操作数执行ti指令 流水线处理机的最大特点是每一个时针周期都能启动一条指令的执行。流水技术性 流水技术无助于减少单个任务的处理延迟(

8、latency) ,但有助于提高整体工作负载的吞吐率 多个不同任务同时操作, 使用不同资源 潜在加速比= 流水线级数 流水线的速率受限于最慢的流水段 流水段的执行时间如果不均衡,那么加速比就会降低 开始填充流水线的时间和最后排放流水线的时间降低加速比 相关将导致流水线暂停单周期、多周期与流水线流水线处理机的数据路径流水线各级的操作IF级1、取指令2、计算下一条指令地址流水线各级的操作ID级1、读寄存器堆中的操作数2、符号扩展3、控制器根据OPCODE产生控制信号4、转移指令在ID级结束流水线各级的操作EXE级1、ALU指令完成计算结果2、LOAD/STORE指令计算存储器地址流水线各级的操作M

9、EM级2、LOAD/STORE指令访问存储器,LOAD指令读操作,STORE指令写操作,STORE指令结束。1、ALU指令在该级仅把R内容打入C流水线各级的操作WB级结果写回到寄存器堆ALU指令执行时流水线的数据路径LOAD指令执行时流水线的数据路径STORE指令执行时流水线的数据路径流水线处理机的控制ALU指令和存储器访问指令的控制I1 addi r1,r2,4 ; r1(r2) + 4I2 load r2,100(r3); r2 memory (r3) + 100I3 sub r4,r5,r6; r4(r5) -(r6)I4 add r7,r5,r6; r7(r5) +(r6)I5 sto

10、re r8,200(r9);memory(r9) + 200(r8)I6 subi r10,r10,1; r10(r10) - 1研究流水线处理机对以下指令重叠操作过程指令系统和指令格式同前面一样指令系统和指令格式31 2625 2120 16 15 54 0指令助记符意 义00 0101rdrs1immeaddi rd, rs1, immerd (rs1) add imme00 010100001000100004Haddi r1, r2, 400 0100rdrs1rs2add rd, rs1, rs2rd (rs1) add (rs2)00 0100001110010100110add

11、r7,r5,r600 0110rdrs1rs2sub rd, rs1, rs2rd (rs1) sub (rs2)00 0110001000010100110sub r4,r5,r600 1000rdrs1immeload rd, rs1, immerd (rs1) + imme)00 100000010000110064Hload r2,r3,10000 1001rdrs1immestore rd, rs1,imme(rd)(rs1) + imme)00 1001010000100100C8Hstore r8,r9,200指令系统和指令格式31 2625 2120 16 15 54 0指令助

12、记符意 义00 0000rdrs1rs2and rd, rs1, rs2rd (rs1) and (rs2)00 0001rdrs1immeandi rd, rs1, immerd(rs1) and imme00 0010rdrs1rs2or rd, rs1, rs2rd (rs1) or (rs2)00 0011rdrs1immeori rd, rs1, immerd (rs1) or imme00 0100rdrs1rs2add rd, rs1, rs2rd (rs1) add (rs2)00 0101rdrs1immeaddi rd, rs1, immerd (rs1) add imme

13、00 0110rdrs1rs2sub rd, rs1, rs2rd (rs1) sub (rs2)00 0111rdrs1immesubi rd, rs1, immerd (rs1) sub imme00 1000rdrs1immeload rd, rs1, immerd (rs1) + imme)00 1001rdrs1immestore rd, rs1, imme(rd)(rs1) + imme)00 1010dispbne dispIf z=0, pc(pc)+disp00 1011dispbeq dispIf z=1, pc(pc)+disp00 1100dispbranch disp

14、pc(pc) + dispCC1Fetch I1CC2Fetch I2 并 Decode I1CC3Fetch I3 并 Decode I2 并 EXEC I1CC4Fetch I4 并 Decode I3 并 EXEC I2 并 MEM I1CC5Fetch I5 并 Decode I4 并 EXEC I3 并 MEM I2 并WB I1CC6Fetch I6 并 Decode I5 并 EXEC I4 并 MEM I3 并WB I2CC7Decode I6 并 EXEC I5 并 MEM I4 并WB I3CC8 EXEC I6 并 MEM I5 并 WB I4CC9 MEM I6CC10

15、 WB I6以上还有3个控制信号:WZ 写Z标志信号 WMEM 写存储器信号 WREG- 写寄存器堆信号流水线处理机的控制转移指令控制 subi r10,r10,1 bne abc add r1,r2,r3abc: load 00 1010dispbne dispIf z=0, pc(pc)+disp结果不为0,转移00 1011dispbeq dispIf z=1, pc(pc)+disp结果为0,转移00 1100dispbranch disppc(pc) + disp无条件转移subi r10,r10,1nopbne abcnopadd r1,r2,r3条件转移指令控制无条件转移指令控制

16、branch abcadd r1,r2,r3branch abcnopadd r1,r2,r3转移发生的条件为 BTAKEN = branch + bneZ + beqZ级控制信号注释IF级BTAKEN转移发生ID级SST选择STORE(rd)EXE级SIMM选择立即数ALUOPALU操作码WZ写Z标志MEM级WMEM写存储器WB级SLD选择LOADWREG写寄存器堆流水线各级控制信号的定义流水线各级控制信号的产生表达式指 令ALUOP1ALUOP0注释and /andi00与or/ ori01或add/ addi10加sub/ subi11减load/ store10加aluop1=add+

17、addi+sub+subi+load+storealuop0=or+ori+sub+subiBTAKEN=branch+bneZ+beqZSST=storeSIMM=andi+addi+ori+subi+load+storeWZ= andi+addi+ori+subi+ and+add+or+subWMEM=storeSLD=loadWREG=andi+addi+ori+subi+ and+add+or+sub+load流水线处理机性能指标:吞吐率吞吐率:单位时间内处理任务(指令)数或输出结果数量最大吞吐率:稳定状态的吞吐率流水线处理机性能指标:吞吐率(等段)12345n-1n12345n-1

18、n12345n-1n12345n-1nmt流水线处理机性能指标:吞吐率(不等段)各段时间不等流水线处理机性能指标:吞吐率(不等段)S1S2S3S4输入输出流水线瓶颈段流水线处理机性能指标:吞吐率(不等段)123412314423132t4S1S2S3S4“瓶颈段”处理方法:细分S1S2-1S3S4输入输出S2-2S2-3“瓶颈段”处理方法:细分12345n-1n12345n-1n12345n-1n12345n-1ntS1S2-1S2-2S2-3S312345n-1n12345n-1nS4“瓶颈段”处理方法:重复设置“瓶颈段”部件S1S2-1S3S4输入输出S2-2S2-3“瓶颈段”处理方法:重

19、复设置“瓶颈段”部件12345678147258369tS1S2-1S2-2S2-3S31234567812345678S4999流水线处理机性能指标:加速比速度提高的比值等段不等段流水线处理机性能指标:效率部件利用率等段不等段流水技术特点流水线可划分为若干个互有联系的子过程(功能段)。每个功能段由专用部件实现。实现子过程的功能段所需时间应竟可能相等,避免产生处理的瓶颈。形成流水处理需要一段准备时间(建立时间),只有在此之后流水过程才能稳定。如果指令流不能连续执行,会使流水中断(断流),会影响效率。流水技术适用于处理大量重复的程序(只是数据不同),只有对输入的任务(指令)连续地处理,流水线的效

20、率才能够充分发挥。5.4 流水线的分类1.按流水处理的级别分类2.按流水线完成功能的多少分类3.按流水不同功能的联接切换方式分类4.按处理的数据类型分类5.按流水线的结构分类6.其它类型部件级流水: 指构成部件内的各个子部件之间的 流水处理机级流水: 指构成处理机的各个部件之间的 流水系统级流水: 指构成计算机系统的多个处理机之 间的流水 1、按流水处理的级别分类部件级流水线运算器流水线将处理机的算术运算逻辑部件分段,使各种数据类型能进行流水操作。对阶浮点运算(+):N1=S1*2E1N2=S2*2E2N=N1+N2尾数加规格化运算流 处理机级流水线指令流水线 在指令解释过程中划分若干功能段。

21、IFIDEXE指令流 处理机1处理机2处理机n数据集任务1任务n任务2多个处理机之间通过存储器串行连接,采用流水工作方式。每个处理机之间对同一数据流的不同部分分别进行处理,各个处理机的输出结果存放在与下一个处理机共享的存储器中。系统级流水宏流水2.按流水线完成功能的多少分类单功能流水线-只能实现一种功能的流水处理。 多功能流水线指-同一流水线的各个段之间可以有多种不同的联接方式以实现多种不同的运算或功能。流水线功能块浮点加、减运算时的连接定点乘法运算的连接3.按流水不同功能的联接切换方式分类静态流水线-在某一时间里各段只能按一种功能联 接流水,只有等流水线全部流空后才 能切换成按另一种功能来联

22、接流水。 动态流水线-各功能段在同一时间内可按不同运算或功能 联接目前,高性能流水处理机大多都采用多功能静态流水 静态多功能流水线时-空图1234n -11234123412341234n n -1n n -1n n -1n n -1n 1234n -1n 12345678浮加定乘 一 二 三 一 二 一 一 二 三 四 空间(段号)n个浮加流水结束后,才开始定乘动态多功能流水线时-空图1234n -11234123412341234n n -1n n -1n n -1n n -1n 1234n -1n 一 二 三 四五六七一 二 三 四五六一 二 三 四五一 二 三 四12345678时间浮

23、加定乘 空间(段号)同一段时间内,有些段实现浮加,有些段实现定乘,效率较高,控制复杂4按处理的数据类型分类 标量流水处理机:没有向量数据表示,只能对标 量进行处理向量流水处理机:机器具有向量数据表示,设置有向量指令和向量运算硬件,能对向量的各个元素流水地处理。5.按流水线的结构分类线性流水-各段串行联接,没有反馈回路,各段 只经过一次。非线性流水-流水线中除有串行联接的通路外.还 有某种反馈回路,使一个任务流经 流水线时,需要多次经过某个段或跳过某些段,称非线性流水。1234+入出图:非线性流水线6.其它类型 可大量采用,用硬件来实现复杂的多维流水线,同时设多个方向脉动地向前推进,以进一步提高

24、流水的并行处理能力 5.5 流水线相关及其处理方法相关概念:相近指令间出现了某种关联,使得指令不能提前解释数据相关:本条指令的操作数地址与前一条指令存放 结果的地址相同,便出现了前条指令还没有 结果,而后一条指令要求提前取出,造成 错误。控制相关:由于在转移发生之前,若干条转移指令的后继指令已被取到流水线处理机中,而造成错误。结构相关:由于硬件资源不足而导致流水线不畅通。流水线处理机的相关因为流水线中指令和数据要提前取出来,因此相邻指令之间存在许多关联。5.5.1 数据相关及其处理方法数据相关在执行某条指令的过程中,如果用到的指令、操作数和变址偏移量等正好是前面指令的执行结果,则必须等待前面指

25、令的执行完成,并把结果写到主存活通用寄存器中之后,当前指令才能开始执行,即不同的指令对主存操作数或寄存器存在“先写后读”的关联。数据相关影响的是本条指令附近的少数几条指令,是局部相关。流水线中的先写后读相关分析K执行K取指K1分析K1执行K1从C中取变址值从C中取操作值取指K若:C是主存地址K和K+1条指令间发生了主存操作 数相关C是通用寄存器号K和K+1条间发生通用寄存器 组的数相关C是变地址寄存器号K和K+1条间发生通用寄存 器的变址值相关若:第K1条中放的是条指令,而K1条指令的代码要等第K条指令执行结束后才能形成,则称K和K1条指令间发生了指令相关。 以上几种相关称为局部相关,因为它最

26、多只影响流入流水线中与之相关的后面几条指令,使其暂停流动,并不会更改指令缓冲器的内容,所以说影响是局部的。数据相关举例MUL R4,R2,R3;R2*R3-R4ADD R6,R4,R5;R5+R4-R6FDEWI1:MULI2:ADDI3I4F1D1E1W1F2D2E2W2F3D3E3W3F4D4E4W4tI数据相关I1:add r1,r2,r3I2:sub r4,r1,r5I3:and r6,r7,r1I4:or r8,r1,r9I5:addi r10,r1,100写寄存器堆提前半个周期,我们只需考虑两条相关指令数据相关检测方法如何检测发生了数据相关?I1:add r1,r2,r3I2:su

27、b r4,r2,r5I3:and r6,r1,r7真正影响数据正确性的数据相关是先写后读相关(Read After Write)I1:add r1,r2,r3 I2:sub r4,r1,r5I3:and r6,r7,r1ADDR2,R3ADDR1 SUBR1,R5SUBR4 ANDR7,R1ADDADDR2,R3ADDR1 SUBR2,R5R4 ANDADDR6SUBR1R1,R7I1I R相关图检测前后两条指令是否存在下列情况:I1的写和后续的若干可能相关的I的读针对相同的存储单元或者寄存器如何解决数据相关?推后法静态方法:由编译程序来完成检测。若发生数据相关,则插入NOP指令I1:add

28、r1,r2,r3 nop nopI2:sub r4,r1,r5I3:and r6,r7,r1I1:add r1,r2,r3I2:sub r4,r2,r5 nopI3:and r6,r7,r1ADDR2,R3ADDR1 NOPNOPNOPNOPSUBR1,R5SUBR4 ANDR1,R7ADDADDR2,R3ADDR1 SUBR2,R5R4 NOPNOPSUBANDADDR6R1,R7R6插入多少个NOP?动态方法: 由硬件来完成检测。若发生数据相关,则暂停流水线暂停流水线要做3件事情:1、封锁当前正在译码的指令的写控制信号;2、不把从存储器取来的下一听指令打入IR;3、不改变当前的PC值。当I

29、2与I1相关,流水线暂停两个周期当I3与I1相关,流水线暂停一个周期 以上解决方法都将影响流水线的性能 设置相关专用通路法相关专用通路当I1和I2发生“先读后写”相关时,I2指令的读操作要从存储单元读出应该由I1 指令写入存储单元的内容,而I1 还来不及写入。在读段和写段之间设置专用通路,I2不从存储单元读,而把I1在写段的数据直接读出,可避免I2 推后。避免速度的损失,但增加额外的硬件,只有对相关概率高的部件才值得。通用寄存器数相关通用寄存器往往作为累加器或保存中间结果经常“本条指令存,下调指令取”执行K第1拍第2拍第3拍第4拍分析K+1(L1)送入B(L2)送入CADD R1,R4,R5;

30、 L3(K)=R1ADD R3,R1,R2; L1(K+1)=R1ADD R2,R4,R5; L3(K)=R1ADD R3,R1,R2; L2(K+1)=R1结果送入L3通用寄存器相关专用通路通用寄存器组运算器BC相关专用通路数据总线运算结果(直接送入)结构相关当两个指令同时请求使用某个硬件资源时,一条指令在完成它的执行阶段或写阶段时可能需要访问存储器,而此时正有另一条指令在完成取指令。如果指令和数据位于同一高速缓存单元,那么只允许有一条指令能够执行,另一条指令将被推迟。I1是LOAD指令,则I1与I4结构相关单存储器模块所构成的流水线处理机-结构相关结构相关采用分开的CACHE(I-CACH

31、E,D-CACHE)解决结构相关其他数据相关处理办法异步流动和推测执行5.5.2 控制相关及处理办法控制相关指因各种转移指令(条件分支指令、转子程序指令和中断等)而引起的相关。影响范围较大,属全局相关。控制相关举例I1:LOAD R1,AI2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6DLOADR4I7R3,R4ADDR3 由于在转移发生之前,若干条转移指令的后继指令已被取到流

32、水线处理机中,而造成错误。解决方法:1、暂停流水线;2、假定转移不发生;3、延迟转移转移相关及解决方法延迟转移法由编译程序检测控制相关重排指令序列发生转移时,让紧跟在转移指令后已进入流水线的少数几条指令继续完成,若这些纸指令是与转移指令结果无关的有用指令,那么延迟损失的时间可得到有效利用。延迟转移法:重排I1:LOAD R1,AI2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6D

33、LOADR4I7R3,R4ADDR3I2:LOAD R2,BI3:DEC R2I4:BRZEOR R2,I7I1:LOAD R1,A :NOP :NOPI5:LOAD R3,CI6:LOAD R4,DI7:ADD R3,R4I8:ADD R1,R3重排I1ALOADR1I2BLOADR2I3R2DECR2I4R2BRZEROI7I5CLOADR3I6DLOADR4I7R3,R4ADDR3NOPNOP其它解决办法:转移预测流水机器的中断处理 中断会引起流水线断流,但其出现的概率比条件转移引起的断流概率要低得多,且又是随机发生的。所以,流水线机器处理中断主要是如何处理好断点现场的保存和恢复。中断处

34、理方法不精确断点法-不论指令i在流水线的哪一段 发生了中断,都不再允许尚 未进入流水线的后续指令再 进入,但将已进入的指令执 行完,转入中断处理。精确断点法-不论指令i是在流水线的哪一段, 响应中断时中断处理程序的现 场全都对i的,i之后流入流水线 的指令的原有现场都能恢复。 不精确断点法不便于编程和程序排错;精确断点法需设置很多后援寄存器。(这些寄存器也是“指令复执”所必须的,并不需要另设)5.6 流水线调度线性流水 在执行每个任务的过程中,各段均只通过一次,每拍都可将一个新任务送入流水线,这些任务不会争用同一段。可采用指令序列重排。非线性流水 因段间有反馈回路,一个任务在流水的全过程中,可

35、能会多次通过同段。若每拍向流水线送入一个新的任务就会发生几个任务争用一功能段的冲突现象。5.6.1 指令序列重排通过编译器判断潜在的数据相关,重新安排指令序列,拉开具有数据相关的指令距离。原指令序列I1:LOAD R1,M(A)I2:LOAD R2,M(B)I3:MUL R5,R1,R2I4:LOAD R3,M(C)I5:LOAD R4,M(D)I6:ADD R2,R3,R4I7:ADD R2,R2,R5取指F译码D发射I执行E执行E执行E写回W7段流水线FDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWtII1I2I3I4I5I6I7AB+CD

36、三拍的执行段T=22拍重排后指令序列I1:LOAD R1,M(A)I2:LOAD R2,M(B)I4:LOAD R3,M(C)I5:LOAD R4,M(D)I3:MUL R5,R1,R2I6:ADD R2,R3,R4I7:ADD R2,R2,R5取指F译码D发射I执行E执行E执行E写回W7段流水线FDIEEEWFDIEEEWtIFDIEEEWFDIEEEWFDIEEEWFDIEEEWFDIEEEWI1I2I4I5I3I6I7T=18拍5.6.2 非线性流水线调度流水线调度对单功能非线性流水线和多功能动态流水线很重要。使用一个二维的预约表能对进入流水线的任务进行优化,每个任务通过流水线需要N拍。

37、利用类似时一空图的方法可以得到该任务使用流水线各段的时间关系表,其中拍号n为任务经过流水线的时钟节拍号。如果任务在第n拍要用到第K段,就在相应第n例和第k行的交点处用表示。现设流水线段号K为15,任务经流水线需9拍。54321987654321拍号n单功能流水线预约表段号k98765432154321987654321调度方法平均间隔拍数(2,2,7)(2,7)(3,4)(3,4,7)(3,7)(4,3,7)(4,7)(7)367450350467500467550700各种调度方法的平均间隔拍数举例* 只要按流水线状态图中任何一个循环通路来进行流水线的调度,不会发生功能段使用冲突。*找出其中

38、之最小者就是流水线各后继任务流水流水线所用间隔的最佳调度。 可以用一个N-1位的位向量来表示后继新任务间隔各种不同拍数送入流水线时,是否会发生功能段使用的冲突,称此位向量为冲突向量 冲突向量(CN-1 CIC2 C1 )中第I位的状态表示与当时相隔I拍给流水线送入后继任务是否会发生功能段的使用冲突.如果不发生冲突,令该位为“0”,表示允许送入;否则,让该位为“1”,表示禁止送入。 冲突向量取N-1位是因为经N拍后,任务已流出流水线,不会与后继任务争用流水线功能段j。 只要按流水线状态转移图中任何一个循环通路来进行流水线的调度,都不会发生功能段使用冲突。现寻找一种最佳的调度策略,以便使流水线的吞

39、吐率最高。需要分别计算出每种调度法的平均间隔拍数,然后找出其中之最小者,就是流水线各后继任务流水线所用间隔的最佳调度。5.7 超标量流水处理机 假设一条指令包含取指令、译码、执行、存结果四个过程,每个子过程经过时间为t期间解释完一条指令,如图所示。执行完12条指令共需15 t的时间。称这种 流水机度m为1。1234567891011取指译码执行存结果部件0时间t12123456789101112123456789101112123456789101112123456789101112131415图:常规(度m=1)的标量流水机时空图 超标量处理机则是采用多条指令流水线,每个t同时流出m条指令(

40、称度为m)。例如,度m为3的超标量处理机的流水时空图如下图所示,每三条指令为一组,执行完12条指令只需7t。14710235612354981112781011129614710118523691214710111289562301234567123123123123存结果 执行 译码取指时间t图:度 m3 的 超 标 量 处 理 机 时空 图性能对分析加速比 在超标量流水线处理机中,配置多套功能部件、指令译码电路和多组总线,并且寄存器也备有多个端口和多组总线。程序运行时,由指令译码部件检测顺序取出的几条指令之间是否存在数据相关和功能部件争用,将可以并行的相邻指令送往流水线。若并行度为1时就逐

41、条执行。超级标量流水机主要靠编译程序来优化编排指令的执行顺序,将能并行为指令搭配成组,硬件不对指令顺序进行调整,这样,实现起来相对容易些。 超级标量流水处理机非常适合于求解像稀疏向量、矩阵这类复杂的标量计算问题,因为这类问题用向量流水线处理机求解很不方便。超标量流水处理机的典型结构主存D-CACHED-CACHE译码器指令调度部件状态记录部件存储操作部件ALU转移控制部件寄存器堆常见超标量流水处理机Intel :i860/i960/PentiumMotolora :MC88110IBM :Power 6000Sun: SuperSPARC5.8 超流水线处理机通过将流水线中的每一级再细分,使得

42、在一个时钟周期内能够分时发射多条指令。超流水线处理机不同于超标量处理机和VLIW处理机,每个t仍只流出一条指令,但它的t值小,一台度为m的超流水线处理机的t只是基本机器周期的t的1/m。因此,一条指令需花kmt的时间,k为一条指令所含的基本机器周期数。只要流水线性能得以充分发挥,其并行度就可达m。下图给出了度m=3的超流水线处理机工作的时空图。14710258111296314710118521296310741118521296310741118521296312312312312312345678 时间 t t t取指译码执行存结果部件 t每流出一条指令,且度m 3 的超流水线处理机时空图ILP=3:每个时钟周期,发射3条指令(每隔1/3时钟周期,发射1条指令) 超流水线处理机早就出现了,如CRAY1的定点加法为 3t。1991年2月MIPS公司的64位RESC计算机R4000,度m=3。超流水线还可以与超标量组合构成超流水线超标量处理机,如DEC公司早期的Alpha处理机每t可流出两条指令且度m=6。 超标量处理机利用资源重复,设置多个执行部件寄存器堆端口。超流水线处理机则着重开发时间并行性,在公共的硬部件上采用较短的时钟周期,深度流水来提高速度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论