6计算机组成原理第6章流水线原理.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章流水线原理及其§1重叠方式通常提高指令执行速度的途径有如下三种:1.提高处理机的工作主频。2.采用更好的算法和设计更好的功能部件。3.多条指令并行执行,称为指令级并行技术。•可以从两个方面来开发处理机内部的并行性:–空间并行性:即在一个处理机内设置多个独立的操作部件,并让这些操作部件并行工作,这种处理机称为多操作部件处理机或超标量处理机;–时间并行性:就是采用流水线技术。流水线技术是一种非常经济、对提高处理机的运算速度非常有效的技术。采用流水线技术可以不增加硬件或只需要增加少量硬件就能够把处理机的运算速度提高几倍它是目前使用非常普遍的一种并行处理方式。本章学习标量计算机上使用的流水加速技术。主要内容有流水技术的分类、流水线性能指标计算、非线性流水线的调度算法。标量计算机指只能直接进行标量运算的计算机,与能够直接进行向量运算的向量计算机相对应。流水处理方式的特征,是让多个依次启动的任务,尽量同时使用系统的不同部件,通过时间重叠来提高处理速率。这种技术理论上不增加成本。标量计算机上使用的流水加速技术属于指令级并行技术。每条指令的处理过程,可以划分为取指、译码、取数、运算、送结果5个子过程,也可以分得更细或更粗一些。划分的原则是各部分时间长度大致相等、并使用CPU中不同的部件,这样才有利于多任务重叠处理。基本名词术语•标量处理机,超标量处理机:标量处理机指只能进行标量运算的处理机,超标量处理机指能在一个时钟周期内同时发射多条指令的处理机;•指令级并行技术:指能使多条指令并行执行的技术,包括流水技术、多操作部件技术和超长指令字技术;•流水线处理机,超流水线处理机:流水线处理机指用流水作业方式并行解释多条指令的处理机,超流水线处理机指能在一个时钟周期内分时发射多条指令的处理机;•超长指令字技术VLIW:指让一条指令包含多个独立的操作字段,并且分别控制多个功能部件并行工作的技术。一.重叠解释方式1.一条指令的几个过程段1)取指令:根据PC(指令计数器)从M(存储器)取出指令送到IR(指令寄存器)2)译码分析:译出指令的操作性质,准备好所需数据3)执行:将准备好的数按译出性质进行处理,主要涉及ALU(算术逻辑运算部件)2.对指令执行的几种方式1)顺序执行(传统机采用)只有在前一条指令的各过程段全部完成后,才从存储器取出下一条指令2)仅两条指令重叠:第i条指令的执行与第i+1条的取指重叠。3)三条指令重叠:第i条指令的执行与第i+1条的译码及第i+2条的取指重叠。取译执取译执i条i+1条i条取译执i+1条取译执i+2条取译执i条取译执取译执i+1条若一条指令的过程段划分更多时,重叠组合方式更多。重叠解释并不能加快一条指令的实现,但能加快一段程序的解释。3.重叠方式中所需时间表达式及所需时间计算1)条件:设一条指令分为三个过程段,各过程段分别用t取、t译、t执表示。执行K条指令,分别采用顺序执行、两条重叠、三条重叠。假设:各个功能段时间相同,公式见教材P285各个功能段时间不相同,公式见顺序执行k*(t取+t译+t执)两条重叠t取+k*t译+(k-1)*(t取,t执)max+t执三条重叠t取+(t译,t取)max+(k-2)*(t取,t译,t执)max+(t执,t译)max+t执3)例子当k=200,t取=3Δt,t译=4Δt,t执=5Δt,时,分别计算上述三种执行方式的时间。顺序执行:200×(3+4+5)=2400Δt两条重叠:3+200×4+(200-1)×5+5=1803Δt三条重叠:3+4+(200-2)×5+5+5=1007Δt4重叠方式需要解决的问题1)对存储器的频繁访问①有哪些访问:取指令、取操作数、存放执行结果,I/O通道访问.②希望存储器为多体结构,以适应多种访问源的需要。③当存储器为单体结构时,需要将访问源排队,先后顺序为:取指令、取数据、I/O通道访问、存结果•先行控制(look-ahead)技术最早在IBM公司研制的STRETCH机器中采用。目前,许多处理机中都已经采用了这种技术,包括超流水处理机和超标量处理机等。•先行控制技术的关键是缓冲技术和预处理技术,以及两者的结合。•缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作。•预处理技术是把进入运算器的指令都处理成寄存器-寄存器(RR型)指令,为进入运算器的指令准备好所需要的全部操作数。6.1先行控制技术采用先行控制方式的处理机结构2)应具有先行控制部件①先行:在重叠操作中,当前一条指令在执行过程中就需要提前取出后面的指令进行相应处理,这种提前取出后继指令进行相应处理,称为先行。②先行控制部件的主要包括Ⅰ)先行地址站,包括先行指令地址站和先行操作数地址站;Ⅱ)先行指令站,用来存放多条指令;Ⅲ)先行操作数站,用来存放多个操作数;Ⅳ)先行地址形成部件,用来形成先行指令地址以及先行操作数地址;Ⅴ)先行操作码译码站,用来完成对多条指令的译码并保留译码输出状态。•也应具有后行部件后行部件:对指令执行后的结果进行处理的器件,称后行部件。包括:①后行数地址站,提供后行数存放地址。②后行数站,存放运行的结果,并且,这些结果需送存储器。6.2.1基本思想6.2流水处理的概念6.2.2流水技术•流水技术:将一个重复的时序过程分解成为若干个子过程,而每个子过程都可有效地在其专用功能段上与其他子过程同时执行。•时-空图:从时间和空间两个方面描述了流水线的工作过程。时-空图中,横坐标代表时间,纵坐标代表流水线的各个段。•CPU中的各个部件按流水处理顺序连接起来,就称为一条流水线。6.2.3流水线工作原理流水线方式是把一个复杂的过程分解为若干个子过程,每个子过程与其他子过程同时进行。处理机解释程序的方式有顺序方式、重叠方式、流水方式等•顺序方式是解释完一条指令再开始解释下一条;•流水方式是把一个重复的过程分解为若干个子过程,每个子过程可以与其它子过程同时进行,以此提高单位时间内解释指令的数目;•重叠方式是一种简单的流水方式,它把指令分成2个子过程每条指令只与下一条指令相重叠。重叠方式流水线•当分析部件完成上一条指令的“分析”后,就立即将之送入执行部件,同时分析部件可以开始处理下一条指令。•虽然从执行一条指令的全过程来看,仍需要2∆t的时间,但从机器的输出端来看,却是每隔一个∆t就能给出一条指令的执行结果。•流水线结构图Δt1Δt2Δt3Δt4入口ⅠⅡⅢⅣ出口图5.1流水线结构图•流水线工作时空图空间(段号)Ⅳ1234Ⅲ1234Ⅱ1234Ⅰ123416时间(拍)(a)顺序方式空间(段号)Ⅱ1234Ⅰ123410时间(拍)(b)重叠方式空间(段号)Ⅳ1234Ⅲ1234Ⅱ1234Ⅰ12347时间(拍)Δt(c)流水方式图3.2CPU工作时空图6.2.4流水线的特点1.流水过程由多个相联系的子过程组成,每个子过程称为流水线的级或段,段的数目称为流水线的深度。2.在流水线中处理的必须是连续任务,只有不断的提供任务才能充分发挥流水线的效率。3.把一个任务分解为几个有联系的子任务,每个子任务由一个专门的功能部件来实现。4.在流水线的每一个功能部件的后面都要有一个缓冲器,用于保存本段的执行结果。5.各个功能段所需时间应尽量相等,否则时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“堵塞”和“断流”。这个时间一般为一个时钟周期(节拍)。6.流水线需要有“装入时间”和“排空时间”。6.3流水技术的分类1)按各过程段用时是否全等划分①均匀流水线:各过程段用时全等②非均匀流水线:各过程段用时不全等(如上图)Ⅰ)时间匹配的均匀流水线。Ⅱ)时间不匹配的非均匀流水线。1Δt2Δt32Δt4Δt2)按处理的数据类型①标量流水线:用于对标量数据进行流水处理。②向量流水线:用于对向量数据进行流水处理。(向量很适合流水处理)3)按流水线的规模①操作流水线:如将一条指令划分为多个过程段进行流水处理。规模最小②指令流水线:以指令为单位进行处理,用于多进程、多任务。规模较大③宏流水线:以程序的逻辑功能段为单位进行流水处理。规模最大4)按流水线具有功能的多少①单功能流水线:各过程段之间固定连接,不能重新构成其它流水线——固定流水线②多功能流水线分:静态流水线:各过程段之间可重新连接,但不同时刻只能重构成一种不同的流水线。动态流水线:各过程段之间可重新连接,不同时刻可重构成多种流水线。5)按部件在同一时刻送出支路数的多少来分。①一维流水线:在同一时刻,部件只能向一个地方传送结果。②阵列流水线:在同一时刻,部件可同时向多个地方传送结果。5.4.5“瓶颈”问题及其解决方法•瓶颈:瓶颈就是Δti最大的段,它使流水线“流速”减慢。•S1S2S3S4•Δt3ΔtΔtΔt•方法1:再细分──将瓶颈设备再细分为下一级流水线•S1S2aS2bS2cS3S4•ΔtΔtΔtΔtΔtΔt•方法2:并行设置──将瓶颈设备重复设置多套。衡量流水线的主要指标有吞吐率,加速比和效率。6.4.1吞吐率TP吞吐率(TP──ThroughPut)指流水线在单位时间内执行的任务数,可以用输入任务数或输出任务数表示。其中k表示流水线划分的段数。当满足条件时,有。6.4线性流水线性能分析kTnTPttitknTk)1(S41234……N-1NS31234……N-1NS21234……N-1NS11234……N-1N时间K×T(N-1)×TN×T(K-1)×TTk流水线产生n个结果所需要的时间:实际吞吐率:最大吞吐率:最大吞吐率与实际吞吐率的关系:(1)流水线各段的执行时间相等(1)kTknt(1)nTPkntmax1(1)nnTPLimtkntmax(1)nTPTPkn实际吞吐率:最大吞吐率:(2)流水线各段的执行时间不等121(1)max(,,,)kikiTPtntttn12maxmax(,,,)1kTPttt6.4.2加速比(即吞吐率之比,)koTTSkiiotnT1不使用流水线所用的时间与使用流水线所用的时间之比一般表示:s=T0/TK其中实际加速比:最大加速比:(1)1kntknSkntknmax(1)nknSLimkknkiiotnT1段效率:,各段平均效率:其中表示第i段设备量占整条流水线全部设备量的百分比当满足条件(即等长、等权)时,有:6.4.3效率(设备利用率)kiiTtnEkiiiEE1)(kttii1和ikSTkTtTknEkEkikikoiki11)(1上式指出,S=E×k,就是说当效率达到100%时,流水方式(一个任务/Δt)吞吐率为顺序方式(一个任务/(k×Δt))的k倍。实际效率:最大效率:(1)1kntnEkkntknmax11nnELimkn瓶颈问题用两种方法改进后的效率和吞吐率•P2956.5流水线中的相关•相关的定义:流水线中的相关是指相邻或相近的指令因存在某种关联,后面的指令不能在原指定的时钟周期开始执行。•一般来说,流水线中的相关主要分为如下三种类型:1.结构相关:当硬件资源满足不了指令重叠执行的要求,而发生资源冲突时,就发生了结构相关。2.数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起数据相关。3.控制相关:当流水线遇到分支指令和其它能够改变PC值的指令时,就会发生控制相关。一旦流水线中出现相关,必然会给指令在流水线中的顺利执行带来许多问题,如果不能很好地解决相关问题,轻则影响流水线的性能,重则导致错误的执行结果。消除相关的基本方法是让流水线暂停执行某些指令,而继续执行其它一些指令。在后面的讨论中,我们约定:当一条指令被暂停时,在该暂停指令之后发射的所有指令都要被暂停,而在该暂停之前发射的指令则可继续进行,在暂停期间,流水线不会取新的指令。5.6.1结构相关•如果某些指令组合在流水线中重叠执行时,产生资源冲突,则称该流水线

1 / 87
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功