第五章 标量处理机

5.2 流水方式

5.2.1 基本概念

2.流水的分类

从不同的角度对流水可进行不同的分类。

依据向下扩展和向上扩展的思路,可分类出在计算机系统不同等级上使用的流水线。

向下扩展:把子过程进一步细分,让每个子过程经过的时间都同等程度地减少,吞吐率会进一步提高。

子过程细分是以增加设备为代价的,设备成本增加,控制变得复杂,但它与完全靠重复设置多套分析部件和执行部件来提高指令并行度来对比,设备量的增加要少得多,子过程细分并不是无止境的,因为级间缓冲器数的增加会使成本提高,辅助延时增大,控制复杂,电路实现和组装困难,它们抵消了子过程细分的好处。因此,目前计算机功能级流水分割的子过程很少有超过10的。

流水技术也可向下应用于对Cache存储器和多体并行主存的访问,使存储器频宽得以提高。

流水技术的向上扩展可理解为在多个处理机之间流水,多个处理机串行地对数据集处理,各处理机专门完成其中一个任务,因为各处理机都在同时工作,所以能流水地对多个不同的数据集进行处理,较大的提高计算机系统的处理能力。

流水按处理的级别可分为部件级、处理机级和系统级。

部件级流水是指构成部件内的各个子部件间的流水(如运算器内浮点加流水)。

处理机级流水:指构成处理机的各部件之间的流水。

系统级流水:指构成计算机系统的多个处理机之间的流水,也称宏流水。

从流水线具有功能的多少,可分为单功能流水线和多功能流水线。

单功能流水线只能实现单一功能的流水,要完成多种功能的流水可将多个单功能流水线组合。

多功能流水线指的是同一流水的各个段之间可以用多种不同的连接方式,以实现多种不同的运算或功能。

按功能流水线的各段能否允许同时用于多种不同的功能连接流水,可把流水分为静态流水线和动态流水线。

静态流水线在某一时间内各段只能按一种功能连接流水,只有流水线全部流空,才能切换按另一种功能连接流水。这样,就指令级流水而言,仅当进入的是一串相同运算指令时,才能发挥出静态流水线的效能。

若进入一组不相同运算指令时,效能会降低到比顺序方式还差,因此在静态流水线计算机中,要求程序员编制出的程序应尽可能的调整成有更多相同运算的指令串,以提高其流水的效能。

动态流水线的各功能段在同一时间内可按不同运算或功能连接,这样就不要求流入流水线的指令串非得有相同的功能,也能提高流水的吞吐率和设备的利用率,但这样控制复杂,成本高,目前大多数高性能刘水处理剂都采用多功能静态流水,因为其控制和实现比较简便。

静态流水线是把负担较多地加到软件上,以简化硬件控制。

动态流水线则是把功能负担较多地加到硬件控制上,以提高流水效能。

从计算机具有的数据表示角度,可以吧流水线处理机分为标量流水机和向量流水机。

标量流水线没有向量表示,只能用标量循环方式处理向量和数组。

向量流水机指的是计算机有向量数据表示,设置有向量指令和向量运算硬件,能流水地处理向量和数组中的各个元素。

从流水线中各功能段个之间是否有反馈回路的角度,可以把流水线分成线性流水线和非线性流水线。

流水线各段串行连接,各段只经过一次,没有反馈回路,称为线性流水线。

流水线除有串行连接的通路还有反馈回路,使任务流经流水线需多次经过某些段或越过某些段,则称为非线性流水线。

随着VLSI技术的发展,除了简单的一维流水线外,又发展了复杂的多维流水线,同时经多个方向流水,称之为脉动阵列流水。

 

5.2.2 标量流水线的主要性能

标量流水处理机的性能主要是吞吐率Tp、加速比Sp和效率η

1.吞吐率Tp和加速比Sp

吞吐率是流水线单位时间里能流出的任务数或结果数。

各个子过程进行的工作不同,所经过的时间也不一定相同,所以在子过程设置了接口锁存器,让各锁存器都受同一时钟同步。

时钟周期会直接影响流水线的最大吞吐率,总希望越小越小。

若各子过程的所需时间分别为△t1、△t2、△t3、△t4,时钟周期应为:

Max{△t1、△t2、△t3、△t4}

即流水线最大吞吐率:

受限于流水线中最慢子过程经过的时间,流水线中经过时间最长的子过程称为瓶颈子过程。

为提高流水线的最大吞吐率,首先要找出瓶颈,然后设法消除此瓶颈。

消除瓶颈的方法:

1、将瓶颈子过程再细分。

2、若瓶颈子过程不能再细分,则可以通过重复设置多套瓶颈段并联,让他们交叉并行,这种办法需要解决好在各并行子过程之间的任务分配和同步控制,比瓶颈子过程再细分控制要复杂,设备量要多。

由于流水开始时总要有一段时间建立流水线,加上各种原因使流水线不能连续流动,经常流一段时间,停一段时间,因此,实际吞吐率Tp总比最大吞吐率Tpmax要小。

不仅实际吞吐率总小于最大吞吐率,只有当n>>m时,才能使实际吞吐率接近于最大吞吐率。

流水方式工作的加速比为:

线性流水线各段时间相等时,仅当n>>m,即连续流入的任务数n远多于流水线子过程数m时,其加速比才能趋于最大值,为流水线的段数m。

如果只是让子过程细分,增大m来缩短△t0却未能在其他设计上保证连续流动的任务数n能远远大于子过程数m,则实际吞吐率将大大低于最大吞吐率,极限n=1时,由于m增大,锁存器增多,实际增大了任务在流水线上的通过实践,反而使其速度会比顺序串行的还要低。

如果现行流水线每段经过时间△ti不等,其中瓶颈段的时间为△tj则完成n个任务所能达到的实际吞吐率:

加速比:

2.效率

流水线的效率是指流水线中设备的实际使用时间占抓奶哥给运行时间之比,也称流水线设备的时间利用率。

由于流水线存在建立时间和排空时间,在连续完成n个任务的时间里,各段并不总是满负荷的工作的。

如果是现行流水线,任务间不相关且各段经过的时间相同,则在T时间里,流水线隔断的效率都相同,均为η0.

整个流水线效率:

式中,分母mT是时空图中m各段和流水总时间T所围成的面积。

分子mn△t0是时空图中n个任务实际使用的面积。

从时空图证来看,效率实际上就是n个任务占用的时空去面积和m个段总的时空区面积之比,只有当n>>m时,η才趋于1。

同时对于线性流水且每段经过实践相等,任务间无相关时,流水线的效率才正比于吞吐率,即

对于非线性流水,线性流水但各段时间不相等,任务间有相关时,这种正比关系就不存在了。

整个流水线的效率:

η=n个任务占用的时空区m个段总的时空区=

影响吞吐率和效率提高的因素:

1.静态多功能流水线按某种功能流水时总有一些本功能用不到的段空间处于空闲

2.流水建立时,本功能要用到的某些段也有部分处于空间

3.功能切换时,增加了前以功能流水的排空时间及后以功能流水的建立空间。

4.需要等待把上一步计算的结果输入回授到输出,才能开始下一步的计算。

 

流水线最适合解具有同一操作类型,且输入与输出之间没有任何联系和相关的一串运算。只要能连续给流水线提供输入数据,就能使流水线不间断地流动,当n值很大时,效率就可接近于1,实际吞吐率就可接近于最大吞吐率,即 1/△t

与本文相关的文章
版权声明
转载保留版权: 大D综合研究院 | 《《计算机系统结构》读书笔记(十三)》
本文链接地址:https://www.dadclab.com/archives/3182.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , , , 标签