流水线问题系统结构PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《流水线问题系统结构PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水线 问题 系统 结构 PPT 课件
- 资源描述:
-
1、. 5.2 流水线处理机流水线处理机教学目标:掌握流水线的基本原理、特点、分类、教学目标:掌握流水线的基本原理、特点、分类、性能分析,非线性流水线的调度问题,及局部相关性能分析,非线性流水线的调度问题,及局部相关和全局相关的处理方法。和全局相关的处理方法。一、流水线工作原理一、流水线工作原理 流水线方式是把一个重复的过程分解为若干个流水线方式是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。子过程,每个子过程可以与其他子过程同时进行。 在处理机的各个部分几乎都可以采用流水方式在处理机的各个部分几乎都可以采用流水方式工作。工作。 指令的执行过程可以采用流水线,称为指令流指
2、令的执行过程可以采用流水线,称为指令流水线。水线。. 运算器中的操作部件,如浮点加法器等可以采运算器中的操作部件,如浮点加法器等可以采用流水线,称为操作部件流水线。用流水线,称为操作部件流水线。从重叠到流水线从重叠到流水线 一次重叠方式就是一种简单的流水线。一次重叠方式就是一种简单的流水线。 在计算机中,一条指令的执行过程分解为在计算机中,一条指令的执行过程分解为“分分析析”和和“执行执行”两个子过程,这两个子过程分别在两个子过程,这两个子过程分别在指令分析器和指令执行部件中完成,如图指令分析器和指令执行部件中完成,如图5.23所示。所示。. 指令分析器和指令执行部件的输出端各有一个指令分析器
3、和指令执行部件的输出端各有一个锁存器,可分别保存指令锁存器,可分别保存指令“分析分析”和指令和指令“执行执行”的结果,因此,指令分析器和指令执行部件能成为的结果,因此,指令分析器和指令执行部件能成为两个完全独立的功能部件,可同时并行工作。指令两个完全独立的功能部件,可同时并行工作。指令分析器分析器“分析分析k1”与指令执行部件与指令执行部件“执行执行k”可同可同时进行。时进行。 如果指令分析器分析一条指令所需要的时间如果指令分析器分析一条指令所需要的时间t1与指令执行部件执行一条指令所需要的时间与指令执行部件执行一条指令所需要的时间t2相等,即相等,即t1=t2,都为,都为t。则从指令执行。则
4、从指令执行部件的输出端看,每间隔一个部件的输出端看,每间隔一个t就执行完成一条就执行完成一条指令,并输出一个运算结果。因此,处理机指令,并输出一个运算结果。因此,处理机.执行指令的速度提高了一倍。执行指令的速度提高了一倍。 如果把执行一条指令的过程分得更细,如图如果把执行一条指令的过程分得更细,如图5.24所示,分为所示,分为6个子过程。每一个部件的输出端个子过程。每一个部件的输出端都要有一个锁存器。都要有一个锁存器。.在图在图5.24中的每一个子过程还可以再进一步分解成中的每一个子过程还可以再进一步分解成更小的子过程,即在功能部件的内部也采用流水线更小的子过程,即在功能部件的内部也采用流水线
5、方式工作。如,一个浮点加法的执行过程可采用方式工作。如,一个浮点加法的执行过程可采用4级流水线,如图级流水线,如图5.25所示。如果各个部件的执行时所示。如果各个部件的执行时间均相等,处理机执行浮点加法的速度能够提高间均相等,处理机执行浮点加法的速度能够提高3倍。倍。.时空图时空图 描述流水线的工作,最常用的方法是采用描述流水线的工作,最常用的方法是采用“时空图时空图”。 图图5.23所示的流水线,采用时空图表示如图所示的流水线,采用时空图表示如图5.26所示。所示。.在时空图中,横坐标表示时间,就是输入到流水线在时空图中,横坐标表示时间,就是输入到流水线中的各个任务在流水线中所经过的时间。纵
6、坐标表中的各个任务在流水线中所经过的时间。纵坐标表示空间,即流水线的各个子过程。示空间,即流水线的各个子过程。在时空图中,流水线的一个子过程通常称为在时空图中,流水线的一个子过程通常称为“功能功能段段”。图图5.27是一个是一个4段浮点加法器流水线的时空图。段浮点加法器流水线的时空图。.流水线的特点流水线的特点在处理机中采用流水线方式与采用传统的串行方在处理机中采用流水线方式与采用传统的串行方式相比,具有如下特点:式相比,具有如下特点:在流水线中处理的必须是连续的任务,只有连在流水线中处理的必须是连续的任务,只有连续不断地提供任务才能充分发挥流水线的效率。续不断地提供任务才能充分发挥流水线的效
7、率。把一个任务(一条指令或一个操作)分解为几把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功个有联系的子任务,每个子任务由一个专门的功能部件来实现。能部件来实现。在流水线的每一个功能部件的后面都要有一个在流水线的每一个功能部件的后面都要有一个缓冲寄存器,用于保存本段的执行结果。当某一缓冲寄存器,用于保存本段的执行结果。当某一个功能段的执行时间变化范围比较大时,要设置个功能段的执行时间变化范围比较大时,要设置多个缓冲寄存器。多个缓冲寄存器。.流水线中各段的时间应尽量相等,否则将引起流水线中各段的时间应尽量相等,否则将引起“堵塞堵塞”、“断流断流”等。执行时间长的
8、一段将成为等。执行时间长的一段将成为整个流水线的整个流水线的“瓶颈瓶颈”,这时,流水线中的各个功,这时,流水线中的各个功能部件将不能充分发挥作用。因此,在流水线设计能部件将不能充分发挥作用。因此,在流水线设计中,当遇到中,当遇到“瓶颈瓶颈”时,必须采取办法解决。时,必须采取办法解决。流水线需要有流水线需要有“装入时间装入时间”和和“排空时间排空时间”。只。只有流水线完全充满时,整个流水线的效率才能得到有流水线完全充满时,整个流水线的效率才能得到充分发挥。充分发挥。二、流水线的分类二、流水线的分类线性流水线与非线性流水线线性流水线与非线性流水线 按照流水线的各个功能段之间是否有按照流水线的各个功
9、能段之间是否有.反馈信号,可以把流水线分为线性流水线和非线性反馈信号,可以把流水线分为线性流水线和非线性流水线两类。流水线两类。线性流水线是将流水线的各段逐个串接起来。输入线性流水线是将流水线的各段逐个串接起来。输入数据从流水线的一端进入,从另一端输出。数据在数据从流水线的一端进入,从另一端输出。数据在流水线中的各个功能段流过时,每一个功能段都流流水线中的各个功能段流过时,每一个功能段都流过一次,且仅流过一次。过一次,且仅流过一次。非线性流水线:在流水线的各个功能段之间除了有非线性流水线:在流水线的各个功能段之间除了有串行的连接之外,还有反馈回路。如图串行的连接之外,还有反馈回路。如图5.28
10、所示。所示。.表示非线性流水线的工作情况除了要有流水线的连表示非线性流水线的工作情况除了要有流水线的连接图之外,还需要一张接图之外,还需要一张“预约表预约表”,两者共同来表,两者共同来表示流水线的工作情况。如图示流水线的工作情况。如图5.29所示。所示。.图中用图中用“”表示这一个功能段在相应的这一段时表示这一个功能段在相应的这一段时间内有效,即任务经过了这一个功能段。间内有效,即任务经过了这一个功能段。一条非线性流水线可以对应有很多张预约表,一张一条非线性流水线可以对应有很多张预约表,一张预约表实际上仅表示一条非线性流水线的一种工作预约表实际上仅表示一条非线性流水线的一种工作方式。方式。线性
11、流水线实际上也有预约表,只不过它的预约表线性流水线实际上也有预约表,只不过它的预约表是确定的。是确定的。首先,预约表的水平方向与垂直方向的格数是相等首先,预约表的水平方向与垂直方向的格数是相等的,其次,预约表从左上角到右下角所有格子全部的,其次,预约表从左上角到右下角所有格子全部有效,即是打有效,即是打“”的;预约表的其余部分一定是的;预约表的其余部分一定是空白的。空白的。因此,在描述线性流水线时,一般不给出预约表。因此,在描述线性流水线时,一般不给出预约表。.流水线的级别流水线的级别按照流水线使用的不同级别,可把流水线分为功能按照流水线使用的不同级别,可把流水线分为功能部件级、处理机级和处理
12、机间级等多种类型。部件级、处理机级和处理机间级等多种类型。处理机级流水线又称为指令流水线。它把一条指令处理机级流水线又称为指令流水线。它把一条指令的执行过程分解为多个子过程,每个子过程在一个的执行过程分解为多个子过程,每个子过程在一个独立的功能部件中完成。独立的功能部件中完成。前面介绍的一次重叠执行方式就是一种简单的指令前面介绍的一次重叠执行方式就是一种简单的指令流水线。流水线。在采用先行控制器的处理机中,组成先行控制器的在采用先行控制器的处理机中,组成先行控制器的各个部件实际上也构成了一条流水线。如图各个部件实际上也构成了一条流水线。如图5.30所所示。.在先行控制器中,一条指令的执行过程被
13、分解为在先行控制器中,一条指令的执行过程被分解为5个子过程,每个子过程在一个专用的功能部件中执个子过程,每个子过程在一个专用的功能部件中执行。行。由于各种指令在同一个功能部件中执行的时间往往由于各种指令在同一个功能部件中执行的时间往往相差很大,因此,在每一个功能段之间要设置多个相差很大,因此,在每一个功能段之间要设置多个缓冲寄存器,以平滑流水线中各个功能部件的操作。缓冲寄存器,以平滑流水线中各个功能部件的操作。每个部件内部还可以采用流水线来实现。如对于一每个部件内部还可以采用流水线来实现。如对于一些复杂的运算操作部件,象浮点加法器等一般要采些复杂的运算操作部件,象浮点加法器等一般要采用多级流水
14、线来实现。后行写数栈和先行读数栈也用多级流水线来实现。后行写数栈和先行读数栈也可以采用多级流水线来实现。这种流水线称为部件可以采用多级流水线来实现。这种流水线称为部件级流水线,或功能部件级流水线。级流水线,或功能部件级流水线。.功能部件级流水线也称为运算操作流水线。功能部件级流水线也称为运算操作流水线。把指令执行部件中采用了流水线的处理机称为流水把指令执行部件中采用了流水线的处理机称为流水线处理机或超流水线处理机,把指令执行部件中设线处理机或超流水线处理机,把指令执行部件中设置有多个操作部件的处理机称为多操作部件处理机置有多个操作部件的处理机称为多操作部件处理机或超标量处理机。或超标量处理机。
15、处理机间流水线又称为宏流水线,如图处理机间流水线又称为宏流水线,如图5.31所示。所示。.这种流水线由两个或两个以上处理机通过存储器串这种流水线由两个或两个以上处理机通过存储器串行连接起来,每个处理机对同一个数据流的不同部行连接起来,每个处理机对同一个数据流的不同部分分别进行处理。前一个处理机的输出结果存入存分分别进行处理。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入,每个处理机完储器中,作为后一个处理机的输入,每个处理机完成整个任务的一部分。成整个任务的一部分。一台大型计算机系统通常由多个同型号的或不同型一台大型计算机系统通常由多个同型号的或不同型号的处理机构成,每个处理机有不
16、同的分工。例如,号的处理机构成,每个处理机有不同的分工。例如,由多个用高级语言编写的程序需要在机器上运行,由多个用高级语言编写的程序需要在机器上运行,则程序和数据的输入、编译、连接、执行、执行结则程序和数据的输入、编译、连接、执行、执行结果输出等可分别在不同的处理机上完成,这些处理果输出等可分别在不同的处理机上完成,这些处理机就构成了一条宏流水线。机就构成了一条宏流水线。单功能与多功能流水线单功能与多功能流水线.一条流水线只能完成一种固定的功能,这种流水线一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线。称为单功能流水线。多功能流水线是指流水线的各段可以进行不同的连多功能流水线是指
17、流水线的各段可以进行不同的连接。在不同时间内,或在同一时间内,通过不同的接。在不同时间内,或在同一时间内,通过不同的连接方式实现不同的功能。连接方式实现不同的功能。.静态流水线与动态流水线静态流水线与动态流水线在多功能流水线中,按照在同一时间内是否能够连在多功能流水线中,按照在同一时间内是否能够连接成多种方式,同时执行多种功能,可以把多功能接成多种方式,同时执行多种功能,可以把多功能流水线分为静态流水线和动态流水线两种。流水线分为静态流水线和动态流水线两种。静态流水线是指在同一时间内,多功能流水线中的静态流水线是指在同一时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一各个功
18、能段只能按照一种固定的方式连接,实现一种固定的功能。只有当按照这种连接方式工作的所种固定的功能。只有当按照这种连接方式工作的所有任务都流出流水线之后,多功能流水线才能重新有任务都流出流水线之后,多功能流水线才能重新进行连接,以实现其它功能。进行连接,以实现其它功能。例如,图例如,图5.32的多功能流水线,如果按照图的多功能流水线,如果按照图5.33所所示的时空图工作,就是一种静态流水线。示的时空图工作,就是一种静态流水线。.动态流水线是指在同一段时间内,多功能流水线中动态流水线是指在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功的各段可以按照不同的方式连接,同时执行多
19、种功能。能。当然,同时实现多种连接方式是有条件的,即流水当然,同时实现多种连接方式是有条件的,即流水线中的各个功能部件之间不能发生冲突。如图线中的各个功能部件之间不能发生冲突。如图5.34所示。所示。在一般情况下,动态流水线的效率和功能部件的利在一般情况下,动态流水线的效率和功能部件的利用率要比静态流水线高,但动态流水线的控制比静用率要比静态流水线高,但动态流水线的控制比静态流水线要复杂得多,目前,在大多数处理机中均态流水线要复杂得多,目前,在大多数处理机中均采用静态流水线。采用静态流水线。.按照不同的数据表示方式,可以把流水线分为标量按照不同的数据表示方式,可以把流水线分为标量流水线和向量流
20、水线。流水线和向量流水线。在线性流水线中,根据对流水线的控制方式不同,在线性流水线中,根据对流水线的控制方式不同,可以把流水线分为同步流水线和异步流水线两类。可以把流水线分为同步流水线和异步流水线两类。一般的宏流水线多采用异步流水线方式。如图一般的宏流水线多采用异步流水线方式。如图5.35所示。在异步流水线中,当所示。在异步流水线中,当Si功能段要向功能段要向Si1功功能段传送数据时,首先发出就绪信号,能段传送数据时,首先发出就绪信号, Si1功能功能段收到就绪信号后,向段收到就绪信号后,向Si功能段回送一个回答信号。功能段回送一个回答信号。.按照流水线输出端流出的任务与流水线输入端流入按照流
21、水线输出端流出的任务与流水线输入端流入的任务的顺序是否相同,可以把流水线分为顺序流的任务的顺序是否相同,可以把流水线分为顺序流水线与乱序流水线两种。水线与乱序流水线两种。在顺序流水线中,流水线输出端的任务流出顺序与在顺序流水线中,流水线输出端的任务流出顺序与输入端的任务流入顺序完全相同,每个任务在流水输入端的任务流入顺序完全相同,每个任务在流水线的各个功能段中是一个跟着一个顺序流动的。线的各个功能段中是一个跟着一个顺序流动的。乱序流水线输出端流出任务的顺序与输入端流入任乱序流水线输出端流出任务的顺序与输入端流入任务的顺序可以不一样。每个任务在流水线中并不是务的顺序可以不一样。每个任务在流水线中
22、并不是按照输入的顺序一个跟着一个流动的。按照输入的顺序一个跟着一个流动的。三、线性流水线的性能分析三、线性流水线的性能分析.衡量流水线性能的主要指标有吞吐率、加速比和效衡量流水线性能的主要指标有吞吐率、加速比和效率。率。吞吐率吞吐率流水线的吞吐率是指在单位时间内流水线所完成的流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出结果数量。任务数量或输出结果数量。其中,其中,n为任务数,为任务数,Tk是处理完成是处理完成n个任务所用的个任务所用的时间。时间。以下讨论满足某种特殊情况的流水线吞吐率。以下讨论满足某种特殊情况的流水线吞吐率。流水线各段执行时间相等,输入到流水线中的任务流水线各段执
23、行时间相等,输入到流水线中的任务是连续的。如图是连续的。如图5.36所示。所示。.一条一条k段线性流水线完成段线性流水线完成n个连续任务需要的总时个连续任务需要的总时间为:间为:其中,其中,t为时钟周期。为时钟周期。实际吞吐率为:实际吞吐率为:最大吞吐率为:最大吞吐率为:.最大吞吐率与实际吞吐率的关系是:最大吞吐率与实际吞吐率的关系是:当流水线中各段的执行时间不完全相等时,流水线当流水线中各段的执行时间不完全相等时,流水线中就存在有中就存在有“瓶颈瓶颈”。如图。如图5.37所示。所示。.流水线各段执行时间不相等情况下的实际吞吐率:流水线各段执行时间不相等情况下的实际吞吐率:此时流水线的最大吞吐
24、率为:此时流水线的最大吞吐率为:对于图对于图5.37所示的例子,流水线的最大吞吐率为:所示的例子,流水线的最大吞吐率为:.可以看出,当流水线中各个功能段的执行时间不完可以看出,当流水线中各个功能段的执行时间不完全相等时,流水线的最大吞吐率与实际吞吐率主要全相等时,流水线的最大吞吐率与实际吞吐率主要是由流水线中执行时间最长的那个功能段来决定的,是由流水线中执行时间最长的那个功能段来决定的,这个功能段就成了整个流水线的这个功能段就成了整个流水线的“瓶颈瓶颈”。解决流水线解决流水线“瓶颈瓶颈”问题的方法主要有两种。问题的方法主要有两种。是将流水线的是将流水线的“瓶颈瓶颈”部分再细分。如图部分再细分。
25、如图5.38所所示。示。.通过重复设置瓶颈功能段,让多个瓶颈功能段并通过重复设置瓶颈功能段,让多个瓶颈功能段并行工作。但这种方法,其控制逻辑比较复杂。如图行工作。但这种方法,其控制逻辑比较复杂。如图5.39所示。所示。加速比加速比完成一批任务,不使用流水线所用的时间与使用流完成一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。水线所用的时间之比称为流水线的加速比。如果不使用流水线,即顺序执行所用的时间为如果不使用流水线,即顺序执行所用的时间为T0,使用流水线的执行时间为使用流水线的执行时间为Tk,则流水线的加速比,则流水线的加速比为:为:.各个功能段执行时间均相等的
展开阅读全文