3、在每一个功能单位线回有一个缓冲寄存器,或锁存器,用于保存所执行的结果。这是因为在每一段的延迟可以不相等,因此,在转移的任务,必须通过缓冲寄存器。当一个函数的时间范围较大,设立多个缓冲寄存器。
4、线段的对称性,即相同的时间要求尽可能,否则将造成“堵”,“停止”和其他问题。执行时间最长的部分将成为整个线路的“瓶颈”,那么,线段将受到限制,不能充分发挥作用。只有当全是满满的,整个流水线的效率可以得到充分发挥。
为了设计出高效率的流水线,要充分注意上述问题。
2.1.4 流水线的分类
从不同的角度,根据不同的角度,可以分成许多不同类型的线。通常所说的一些线路,通常按一定的角度,或从一个特定角度线的分类结果。因此,从名字上只能反映一维线功能或特征。
按照流水线的各功能段之间是否有反馈信号,可以把流水线分为线性流水线合非线性流水线。
线性线是线各功能部分的每一个系列,输入数据从流水线部分进入,从另一部分流出。数据流水线通过,没有一个功能部分流经的第一,只有通过A
线性线通常只能完成固定功能,在现代计算机系统,线性线已被广泛应用在指令执行过程中,各种算术运算,内存访问操作。
图2.4 非线性流水线
非线性流水线经常用于递归调用,或者构成多功能流水线。
根据线使用不同层次,可以将流水线分成功能组件,处理器和处理器和其他类型。
过程,每个子进程中的一个独立的功能部件。
特征线,又称为操作线,如浮点加法器流水线,浮点乘法器组件。
处理器间流水线也被称为流水线,一般是两年多处理器通过记忆的串行连接,
每个处理器在数据流的不同部分分别进行处理。
处理器的流水线阶段的指令流水线,他把一个指令执行过程分解成若干个子
图2.6 指令流水线 流水线又可分为单功能流水线和多功能流水线。顾名思义,单功能流水线只能完成固定的单一功能,多流水线通过各个段间进行不同的连接,在不同的时间内或者统一时间内通过不同的连接方式完成不同的功能。 多功能流水线,根据同一时间是否可以连接到各种不同的方式,并执行各种任务,你可以把多功能流水线分为静态和动态线。静态线是在同一时间,多功能流水线部分只有按照一定的固定连接,实现一个固定功能。只有当根据连接方式工作的所有任务脱节,重新连接,完成其他功能。动态线的同时,可以根据不同的连接方式,完成各种不同的功能。这一次请求行功能不能冲突。 除了以上几种分类方法外,还可以根据其他标准,从不同角度对流水线进行分类。 2.2 流水线的主要性能 衡量流水线主要性能的指标主要有吞吐率,加速比和效率。 2.2.1 吞吐率 吞吐率是指在单位时间内流水线所完成的任务数量或者输出的结果数量。即: n TP?(式2.1)
TK
式(2.1)中,n为任务数,Tk是处理完成n个任务做用的时间。本式为计算吞吐率最基本的公式。有的时候我们还需要求一条流水线的最大吞吐率:
1 TPmax?(式2.2)
max{?t1,?t2,...?tk,...}式(2.2)中?tk为第k个子过程所花费的时间。最大吞吐率受限于流水线中最慢子过程即瓶颈子过程所需要的时间。为了提高流水线的最大吞吐率,首先要找出瓶颈,然后设法消除此瓶颈。消除瓶颈有两种办法,一是将瓶颈子过程再细分,另一种办法是通过重复设置多套瓶颈段并联,让他们交叉进行。后一种方法需要解决好在各并行子过程之间的任务分配合同步控制,比起瓶颈子过程再细分控制要复杂、设备量要多一些。
2.2.2 加速比和效率
完成一批任务,不使用流水线所花的时间与使用流水线所用时间直比即为流水线的加速比。如果不使用流水线,即顺序执行所用时间为T0,使用流水线的执行时间为TK,则流水线的加速比为:
T0(式2.3) TK这是计算流水线加速比的基本公式。
S?流水线效率是指设备的利用率和流水线。在时空图,线效率定义为,任务时间区域与钾功能区占用空间面积比。因此,效率线包含2个方面的时间和空间因素。事实上,在任务的时间区域是顺序执行的任务使用的总时间。而一个流水线,完整的总任务在颞区,这是一个对完成任务的总时间。是一个段线效率可表示为:
n个任务占用的时空区T0?(式2.4)
k个流水段的总的时空区k?Tk此式是计算流水线效率的一般公式。
E?如果流水线各段执行时间均相等,且输入的n个任务是连续的,则一条k段流水线的效率为:
E?k?n??tn?(式2.5)
k?(k?n?1)??tk?n?1
从流水线的时空图上来看,上式分母部分是完成n个任务所用时间与k个功能段所围成的总面积,而分子部分则是k个功能段实际所占有的面积。因此,利用时空图来计算流水线的效率十分方便。
第三章 指令流水线设计
我们做任何事情,都希望能够达到理想状态,但这往往是不现实的,我们研究理想状态的意义就在于给出一个衡量的标准,并且努力向这个标准靠近,这在指令流水线的设计过程中也不例外。
3.1 流水线理想假设
为目的的指令流水线,我们希望能够最大限度地提高系统性能。然而在实践中,但往往不这样做,因为只有在理想的条件下,等级度流水线设计可以提高吞吐量的时间,理想的情况是主要基于三假说,我们称它为“线理想的假设”,他是正确评估流水线设计。设计各种方案解决实际线和线之间的矛盾,理想的假设,它们构成的主要工艺流水线的设计。流水线的理想假设包括:
1.
一致的运算分量:要完成的整个运算量可以均匀的分成延迟一只的若干分量。
2. 3.
3.1.1 一致的运算分量
第一行的理想的假说解释,会使计算部分水均匀地分为钾延迟相同的组件。这意味着以前的设计可以分为钾平衡水段。如果以前的总计算延迟,不是设计类型的水循环,然后钾流水线设计风格的周期是钾,也就是流水在每一段的延迟。基于这一假设,时钟频率可以增加,并提高吞吐量倍。
重复的运算:输入数据有大量相同的、重复的运算。 独立的运算:所有相同的重复运算之间没有相关性。
在实际的流水线设计,这种假设可能不成立。总操作组件完全均匀的分成几个部分是不可能的。在3级流水线浮点加法器的例子,设置总延迟for500ns,线分为3个部分,每个部分都200ns延迟,容错,200ns。显然,总延误是不均匀分布在整个线路的三段。因为线路时钟周期决定推迟最长延迟时间较短,所以会有一些无效或失败时。如浮点加法器的后半部分,这是100 ns的无效时间,我们可以称它为“内部碎片”。由于内部分裂,执行同样的操作延迟将增加。
有一种内在的假设,即水段之间引入缓冲不会带来额外的延迟线时钟信号,也不引入额外的延迟。同样,假设在实践中是不成立的。在一些例子中,为了保证信号的时钟信号准确地成立的,注册成立,所以总时钟周期延长,从而导致实际业绩可能不到3次。
第一行的理想假设主要包含以下两点:以前的操作部件分为多个部分,不引入一个无效的时间;一个缓冲和时钟不会带来额外的延迟介绍。在芯片级设计,可以使用一些锁,如·锁可以使时钟产生延迟尽可能小。那么如何来操作均匀分成各种水段构成的流水线设计的第一个挑战。我们的目标是,尽可能使所有水段保持平衡,减少内部分裂。由于各水段不能完全平衡内部分裂是不满足第一行的理想假设的主要原因,这将是一个架空,并导致钾级管线设计吞吐量增长达到理想的倍。
3.1.2 重复的运算
第二线的理想的假说解释,线反复执行相同的操作。这意味着在一组输入数据,一些运营商是相同的,这些操作执行。每次执行时,线路提供组件执行顺序是相同的。因为浮点加法器的例子,将含有大量浮点数在一起,对每一个操作数是通过same3线。这一集,每次重复计算可以使用所有的小节线。在我们的例子,这显然是建立。