《计算机组成原理之流水线处理机(ppt 59页).ppt》由会员分享,可在线阅读,更多相关《计算机组成原理之流水线处理机(ppt 59页).ppt(59页珍藏版)》请在人人文库网上搜索。
1、计 算 机 组 成 原 理,第二十一、二十三讲,2020年8月13日,流水线处理机,1、流水线处理机的基本概念 2、流水线处理机的数据路径 流水线级,流水线各级的操作 3、流水线处理机的控制 运算指令,访存指令,转移控制指令,流水线各级信号的产生,时序图,时空图 4、流水线处理机的相关 结构相关,数据相关,转移相关,本讲安排,将解决的主要问题,掌握流水线处理机的数据路径,建立指令流水线中指令如何重叠执行和流动,了解流水线工作原理以及相关问题,单周期处理机,单周期处理器的缺陷 时钟周期时间长: 对于装入指令,周期时间必须足够长: 指令存储器访问时间+ 寄存器堆访问时间+ ALU计算地址+ 数据存。
2、储器访问时间+ 寄存器访问时间 对于其它指令,周期时间都比所需的要长很多!,多周期处理机,单周期处理器的问题根源: 对于最慢的指令,周期时间必须足够长 解决方案: 将指令处理分为更小的步骤,每个周期执行一步(而不是整个指令) - 周期时间: 执行最长步所需的时间 - 使所有的步骤尽量具有相同的长度 这是多周期处理器的本质所在 多周期处理器的优点: 周期时间短 不同的指令需要不同的周期数来完成 - 装入指令需要5个周期,- 跳转仅仅需要3个周期 允许每条指令多次使用同一个功能部件,多周期实现概述,流水线的基本概念,什么是流水线,计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其。
3、他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。 从本质上讲,流水线技术是一种时间并行技术。,计算机的各个部分几乎都可以采用流水线技术: (1)指令的执行过程可以采用流水线,称为指令流水线。 (2)运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线。 (3)访问主存的部件可以采用访存部件流水线。多个计算机之间,通过存储器连接,也可以采用流水线,称为宏流水线。,指令的重叠执行 (1)顺序执行方式 (2)一次重叠执行方式 (3)二次重叠执行方式,流水线工作原理,1.基本思想,重叠延伸方式,使指令解释过程进一步细化, 提高各部件的利用。
4、率,以提高指令执行速度。,理想目标:完成任务的时间与操作处理过程无关,只与提供操作的速度有关。,取指,译码,执行,访存,写回,输入,输出,IF,ID,EXE,MEM,WB,s1,s2,s3,s4,s5,指令流水线举例:,设:每段时间为t,有m个段,每段间均可重叠; 则:每间隔t时间有一条指令流传出,流水线处理机的最大特点是每一个时针周期都能启动一条指令的执行。, 流水技术无助于减少单个任务的处理延迟(latency) ,但有助于提高整体工作负载的吞吐率 多个不同任务同时操作, 使用不同资源 潜在加速比= 流水线级数 流水线的速率受限于最慢的流水段 流水段的执行时间如果不均衡,那么加速比就会降低。
5、 开始填充流水线的时间和最后排放流水线的时间降低加速比 相关将导致流水线暂停,流水技术性,单周期、多周期与流水线,流水线处理机的数据路径,流水线各级的操作IF级,1、取指令,2、计算下一条指令地址,流水线各级的操作ID级,1、读寄存器堆中的操作数,2、符号扩展,3、控制器根据OPCODE产生控制信号,4、转移指令在ID级结束,流水线各级的操作EXE级,1、ALU指令完成计算结果,2、LOAD/STORE指令计算存储器地址,流水线各级的操作MEM级,2、LOAD/STORE指令访问存储器,LOAD指令读操作,STORE指令写操作,STORE指令结束。,1、ALU指令在该级仅把R内容打入C,流水线。
6、各级的操作WB级,结果写回到寄存器堆,ALU指令执行时流水线的数据路径,LOAD指令执行时流水线的数据路径,STORE指令执行时流水线的数据路径,流水线处理机的控制ALU指令和存储器访问指令的控制,I1 addi r1,r2,4 ; r1(r2) + 4 I2 load r2,100(r3); r2 memory (r3) + 100 I3 sub r4,r5,r6; r4(r5) -(r6) I4 add r7,r5,r6; r7(r5) +(r6) I5 store r8,200(r9);memory(r9) + 200(r8) I6 subi r10,r10,1; r10(r10) - 。
7、1,研究流水线处理机对以下指令重叠操作过程,指令系统和指令格式同前面一样,CC1Fetch I1,CC2Fetch I2 并 Decode I1,CC3Fetch I3 并 Decode I2 并 EXEC I1,CC4Fetch I4 并 Decode I3 并 EXEC I2 并 MEM I1,CC5Fetch I5 并 Decode I4 并 EXEC I3 并 MEM I2 并WB I1,CC6Fetch I6 并 Decode I5 并 EXEC I4 并 MEM I3 并WB I2,CC7Decode I6 并 EXEC I5 并 MEM I4 并WB I3,CC8 EXEC I6。
8、 并 MEM I5 并 WB I4,CC9 MEM I6,CC10 WB I6,以上还有3个控制信号:WZ 写Z标志信号 WMEM 写存储器信号 WREG- 写寄存器堆信号,流水线处理机的控制转移指令控制,subi r10,r10,1 bne abc add r1,r2,r3 abc: load,subi r10,r10,1 nop bne abc nop add r1,r2,r3,条件转移指令控制,无条件转移指令控制,branch abc add r1,r2,r3,branch abc nop add r1,r2,r3,流水线各级控制信号的定义,流水线各级控制信号的产生表达式,相关概念:相近。
9、指令间出现了某种关联,使得指令不能 提前解释 结构相关:由于硬件资源不足而导致流水线不畅通。 数据相关:本条指令的操作数地址与前一条指令存放 结果的地址相同,便出现了前条指令还没有 结果,而后一条指令要求提前取出,造成 错误。 转移相关:由于在转移发生之前,若干条转移指令的后继指令已被取到流水线处理机中,而造成错误。,流水线处理机的相关,因为流水线中指令和数据要提前取出来,因此相邻指令之间存在许多关联。,结构相关及解决方法,单存储器模块所构成的流水线处理机-结构相关,I1是LOAD指令,则I1与I4结构相关,采用分开的CACHE解决结构相关,数据相关及解决方法,I1:add r1,r2,r3 。
10、I2:sub r4,r1,r5 I3:and r6,r7,r1 I4:or r8,r1,r9 I5:addi r10,r1,100,写寄存器堆提前半个周期,我们只需考虑两条相关指令,数据相关及解决方法,如何检测发生了数据相关?,静态方法:由编译程序来完成检测。若发生数据相关,则,I1:add r1,r2,r3 nop nop I2:sub r4,r1,r5 I3:and r6,r7,r1,I1:add r1,r2,r3 I2:sub r4,r5,r1 I3:and r6,r1,r7,真正影响数据正确性的数据相关是先写后读相关 (Read After Write),I1:add r1,r2,r3。
11、 I2:sub r4,r1,r5 I3:and r6,r7,r1,如何解决数据相关?,I1:add r1,r2,r3 I2:sub r4,r2,r5 nop I3:and r6,r7,r1,动态方法: 由硬件来完成检测。若发生数据相关,则暂停流水线,暂停流水线要做3件事情: 1、封锁当前正在译码的指令的写控制信号; 2、不把从存储器取来的下一听指令打入IR; 3、不改变当前的PC值。,当I2与I1相关,流水线暂停两个周期 当I3与I1相关,流水线暂停一个周期,以上解决方法都将影响流水线的性能,数据相关及解决方法内部前推,流水线数据相关问题的本质在于一条指令执行时要用到上面指令的计算结果,但这个结果尚未被写入寄存器堆。这些结果实际上已由ALU计算出来,仅仅是还没有写入寄存器堆而已。,内部前推-解决I1与I2数据相关,内部前推-解决I1与I3数据相关,LOAD指令-暂停与内部前推相结合解决数据相关,在EXE级结束后,LOAD指令还要访问存储器后才读出结果,由于在转移发生之前,若干条转移指令的后继指令已被取到流水线处理机中,而造成错误。,转移相关及解决方法,解决方法: 1、暂停流水线; 2、假定转移不发生; 3、延迟转移。