流水线问题系统结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

⑴在流水线中处理的必须是连续的任务,只有连 续不断地提供任务才能充分发挥流水线的效率。
⑵把一个任务(一条指令或一个操作)分解为几 个有联系的子任务,每个子任务由一个专门的功 能部件来实现。
⑶在流水线的每一个功能部件的后面都要有一个
缓冲寄存器,用于保存本段的执行结果。当某一
个功能段的执行时间变化范围比较大时,要设置
由于各种指令在同一个功能部件中执行的时间往往 相差很大,因此,在每一个功能段之间要设置多个 缓冲寄存器,以平滑流水线中各个功能部件的操作。
每个部件内部还可以采用流水线来实现。如对于一 些复杂的运算操作部件,象浮点加法器等一般要采 用多级流水线来实现。后行写数栈和先行读数栈也 可以采用多级流水线来实现。这种流水线称为部件 级流水线,或功能部件级流水线。
5.26所示。
-
在时空图中,横坐标表示时间,就是输入到流水线 中的各个任务在流水线中所经过的时间。纵坐标表 示空间,即流水线的各个子过程。 在时空图中,流水线的一个子过程通常称为“功能 段”。 图5.27是一个4段浮点加法器流水线的时空图。
-
⒊流水线的特点
在处理机中采用流水线方式与采用传统的串行方 式相比,具有如下特点:
二、流水线的分类
⒈线性流水线与非线性流水线
按照流水线的各个功能段之间是否有 -
ห้องสมุดไป่ตู้
反馈信号,可以把流水线分为线性流水线和非线性 流水线两类。 线性流水线是将流水线的各段逐个串接起来。输入 数据从流水线的一端进入,从另一端输出。数据在 流水线中的各个功能段流过时,每一个功能段都流 过一次,且仅流过一次。 非线性流水线:在流水线的各个功能段之间除了有 串行的连接之外,还有反馈回路。如图5.28所示。
处理机级流水线又称为指令流水线。它把一条指令 的执行过程分解为多个子过程,每个子过程在一个 独立的功能部件中完成。
前面介绍的一次重叠执行方式就是一种简单的指令 流水线。
在采用先行控制器的处理机中,组成先行控制器的 各个部件实际上也构成了一条流水线。如图5.30所 示。
-
-
在先行控制器中,一条指令的执行过程被分解为5 个子过程,每个子过程在一个专用的功能部件中执 行。
一台大型计算机系统通常由多个同型号的或不同型 号的处理机构成,每个处理机有不同的分工。例如, 由多个用高级语言编写的程序需要在机器上运行, 则程序和数据的输入、编译、连接、执行、执行结 果输出等可分别在不同的处理机上完成,这些处理 机就构成了一条宏流水线。
§5.2 流水线处理机
教学目标:掌握流水线的基本原理、特点、分类、 性能分析,非线性流水线的调度问题,及局部相关 和全局相关的处理方法。
一、流水线工作原理
流水线方式是把一个重复的过程分解为若干个 子过程,每个子过程可以与其他子过程同时进行。
在处理机的各个部分几乎都可以采用流水方式 工作。
指令的执行过程可以采用流水线,称为指令流 水线。
-
在图5.24中的每一个子过程还可以再进一步分解成 更小的子过程,即在功能部件的内部也采用流水线 方式工作。如,一个浮点加法的执行过程可采用4 级流水线,如图5.25所示。如果各个部件的执行时 间均相等,处理机执行浮点加法的速度能够提高3 倍。
-
⒉时空图 描述流水线的工作,最常用的方法是采用
“时空图”。 图5.23所示的流水线,采用时空图表示如图
如果指令分析器分析一条指令所需要的时间 △t1与指令执行部件执行一条指令所需要的时间 △t2相等,即△t1=△t2,都为△t。则从指令执行 部件的输出端看,每间隔一个△t就执行完成一条 指令,并输出一个运算结-果。因此,处理机
执行指令的速度提高了一倍。 如果把执行一条指令的过程分得更细,如图
5.24所示,分为6个子过程。每一个部件的输出端 都要有一个锁存器。
-
表示非线性流水线的工作情况除了要有流水线的连 接图之外,还需要一张“预约表”,两者共同来表 示流水线的工作情况。如图5.29所示。
-
图中用“×”表示这一个功能段在相应的这一段时 间内有效,即任务经过了这一个功能段。
一条非线性流水线可以对应有很多张预约表,一张 预约表实际上仅表示一条非线性流水线的一种工作 方式。
-
功能部件级流水线也称为运算操作流水线。 把指令执行部件中采用了流水线的处理机称为流水 线处理机或超流水线处理机,把指令执行部件中设 置有多个操作部件的处理机称为多操作部件处理机 或超标量处理机。 处理机间流水线又称为宏流水线,如图5.31所示。
-
这种流水线由两个或两个以上处理机通过存储器串 行连接起来,每个处理机对同一个数据流的不同部 分分别进行处理。前一个处理机的输出结果存入存 储器中,作为后一个处理机的输入,每个处理机完 成整个任务的一部分。
线性流水线实际上也有预约表,只不过它的预约表 是确定的。
首先,预约表的水平方向与垂直方向的格数是相等 的,其次,预约表从左上角到右下角所有格子全部 有效,即是打“×”的;预约表的其余部分一定是 空白的。
因此,在描述线性流水线-时,一般不给出预约表。
⒉流水线的级别
按照流水线使用的不同级别,可把流水线分为功能 部件级、处理机级和处理机间级等多种类型。
多个缓冲寄存器。
-
⑷流水线中各段的时间应尽量相等,否则将引起 “堵塞”、“断流”等。执行时间长的一段将成为 整个流水线的“瓶颈”,这时,流水线中的各个功 能部件将不能充分发挥作用。因此,在流水线设计 中,当遇到“瓶颈”时,必须采取办法解决。
⑸流水线需要有“装入时间”和“排空时间”。只 有流水线完全充满时,整个流水线的效率才能得到 充分发挥。
-
运算器中的操作部件,如浮点加法器等可以采 用流水线,称为操作部件流水线。 ⒈从重叠到流水线
一次重叠方式就是一种简单的流水线。 在计算机中,一条指令的执行过程分解为“分 析”和“执行”两个子过程,这两个子过程分别在 指令分析器和指令执行部件中完成,如图5.23所示。
-
-
指令分析器和指令执行部件的输出端各有一个 锁存器,可分别保存指令“分析”和指令“执行” 的结果,因此,指令分析器和指令执行部件能成为 两个完全独立的功能部件,可同时并行工作。指令 分析器“分析k+1”与指令执行部件“执行k”可同 时进行。
相关文档
最新文档