资源描述:
《计算机组成原理之流水线处理机.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、计算机组成原理第二十一、二十三讲Thursday,September09,2021流水线处理机1、流水线处理机的基本概念2、流水线处理机的数据路径流水线级,流水线各级的操作3、流水线处理机的控制运算指令,访存指令,转移控制指令,流水线各级信号的产生,时序图,时空图4、流水线处理机的相关结构相关,数据相关,转移相关本讲安排将解决的主要问题掌握流水线处理机的数据路径建立指令流水线中指令如何重叠执行和流动了解流水线工作原理以及相关问题单周期处理机单周期处理器的缺陷时钟周期时间长:•对于装入指令,周期时间
2、必须足够长:指令存储器访问时间+寄存器堆访问时间+ALU计算地址+数据存储器访问时间+寄存器访问时间对于其它指令,周期时间都比所需的要长很多!多周期处理机单周期处理器的问题根源:对于最慢的指令,周期时间必须足够长解决方案:•将指令处理分为更小的步骤,每个周期执行一步(而不是整个指令)-周期时间:执行最长步所需的时间-使所有的步骤尽量具有相同的长度•这是多周期处理器的本质所在多周期处理器的优点:•周期时间短•不同的指令需要不同的周期数来完成-装入指令需要5个周期,-跳转仅仅需要3个周期•允许每条指令
3、多次使用同一个功能部件多周期实现概述流水线的基本概念什么是流水线计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。从本质上讲,流水线技术是一种时间并行技术。计算机的各个部分几乎都可以采用流水线技术:(1)指令的执行过程可以采用流水线,称为指令流水线。(2)运算器中的操作部件,如浮点加法器、浮点乘法器等可以采用流水线,称为操作部件流水线。(3)访问主存的部件可以采用访存部件流水线。多个计算机之间,通
4、过存储器连接,也可以采用流水线,称为宏流水线。指令的重叠执行(1)顺序执行方式(2)一次重叠执行方式(3)二次重叠执行方式(2)重叠解释执行执行k分析k取指k执行k+1分析k+1取指k+1T=(2n+1)t执行k分析k取指k执行k+1分析k+1取指k+1(3)更高重叠程度的解释执行T=3t+(n-1)t=(n+2)t执行k+1分析k+1取指k+1执行k分析k取指k(1)顺序解释执行T=3nt流水线工作原理1.基本思想重叠延伸方式,使指令解释过程进一步细化,提高各部件的利用率,以提高指令执行速度。理
5、想目标:完成任务的时间与操作处理过程无关,只与提供操作的速度有关。取指译码执行访存写回输入输出IFIDEXEMEMWBs1s2s3s4s5指令流水线举例:设:每段时间为△t,有m个段,每段间均可重叠;则:每间隔△t时间有一条指令流传出流水线处理机的最大特点是每一个时针周期都能启动一条指令的执行。♦流水技术无助于减少单个任务的处理延迟(latency),但有助于提高整体工作负载的吞吐率♦多个不同任务同时操作,使用不同资源♦潜在加速比=流水线级数♦流水线的速率受限于最慢的流水段♦流水段的执行时间如果不
6、均衡,那么加速比就会降低♦开始填充流水线的时间和最后排放流水线的时间降低加速比♦相关将导致流水线暂停流水技术性单周期、多周期与流水线流水线处理机的数据路径流水线各级的操作—IF级1、取指令2、计算下一条指令地址流水线各级的操作—ID级1、读寄存器堆中的操作数2、符号扩展3、控制器根据OPCODE产生控制信号4、转移指令在ID级结束流水线各级的操作—EXE级1、ALU指令完成计算结果2、LOAD/STORE指令计算存储器地址流水线各级的操作—MEM级2、LOAD/STORE指令访问存储器,LOAD指
7、令读操作,STORE指令写操作,STORE指令结束。1、ALU指令在该级仅把R内容打入C流水线各级的操作—WB级结果写回到寄存器堆ALU指令执行时流水线的数据路径LOAD指令执行时流水线的数据路径STORE指令执行时流水线的数据路径流水线处理机的控制—ALU指令和存储器访问指令的控制I1addir1,r2,4;r1(r2)+4I2loadr2,100(r3);r2memory[(r3)+100]I3subr4,r5,r6;r4(r5)-(r6)I4addr7,r5,r6;r7(r5)+(r
8、6)I5storer8,200(r9);memory[(r9)+200](r8)I6subir10,r10,1;r10(r10)-1研究流水线处理机对以下指令重叠操作过程指令系统和指令格式同前面一样指令系统和指令格式31262521201615540指令助记符意义000101rdrs1immeaddird,rs1,immerd(rs1)addimme00010100001000100004Haddir1,r2,4000100rdrs1rs2addrd,rs1,rs2rd(r