流水线技术

转载 2007年09月30日 15:17:00
概括地来说,流水线技术的采用的目的只有一个:使指令的执行速度或数据的处理速度更快。

    在早期的计算机系统中,无论是指令的执行还是数据的处理,其都是严格地按照串行的方式来进行的,那就是指令或数据流入后,无论需要执行或处理的时间是长还是短,这时的除了正在执行或处理部件以外,其余的都处于闲置状态。这样的处理方式非常简单,但效率也是惊人的低下,因为这些闲置的部件完全可以在等待的时间里完成几个之前的同类工作。

    从广义上来说,流水线是一种组织的工作方式,而且,和一般工厂的流水生产线是同一个概念层次的;就是从狭义看,流水线技术是可以用于许多地方的,除了中央处理器,还有图形加速引擎和其他必须从事繁重而又反复的运算的地方。

    那么,我们先拿工厂的流水生产线来做一个比喻:

    例如,现在在我们面前的是一种高级功率放大器的流水生产线,看看机器是如何运转的:首先,功率放大器的设计师首先把外观、电路等各种"软件"设计好,然后让采购科的人去大批量采购所需要的零件,准备好一切,然后就到生产线了。这时生产线会分成两部分:一条是五金机械组装,包括放大器的外壳和各种接插件、旋纽、固定螺丝等;另一条是电路部分的组装,包括电路板制作、零件测试、插板、焊接等,每一个步骤都可以独立运行,每一个步骤之间设有储物箱,以便放置上一个步骤的零件。待到正式生产,各种元件就会源源不绝的一级一级往下流,由于各个步骤之间的储物箱作用,上或下个步骤的短时间停顿并不会影响本步骤的正常运行。

    那么,我们也可以把计算机执行任务的过程比作这样一个--类似于工厂的流水生产线。所以,我们可以这样定义计算机流水线工作方式:计算机中的流水线由许多可以完成特定功能的部件组成,这些部件的数量的多少称为流水线的级数。流水线中的功能部件按照串行或并行的方式连接,计算机的执行任时,会把任务细分为若干个小任务,交由这些部件执行。每个部件之间设有缓存寄存器,用于保存上个部件已经执行的任务。在相同的时钟的控制下,任务一级一级地往下流,最后完成整个任务的执行。

    流水线功能繁杂,种类也非常多;如果按照处理级别来分类,流水线可以有操作部件级、指令级和处理机级;如果按照流水线可以完成的动作的数量来分类,又可以分为单功能和多功能流水线;如果按照流水线内部的功能部件的连接方式来分类,则有线性流水线和非线性流水线;按照可处理对象来分类,还可以有标量流水线和向量流水线……

    衡量一种流水线处理方式的性能高低的书面数据主要由吞吐率效率加速比这三个参数来决定。

    吞吐率:指的是计算机中的流水线在特定的时间内可以处理的任务或输出数据的结果的数量。流水线的吞吐率可以进一步分为最大吞吐率和实际吞吐率。它们主要和流水段的处理时间、缓存寄存器的延迟时间有关,流水段的处理时间越长,缓存寄存器的延迟时间越大,那么,这条流水线的吞吐量就越小。因为,在线性流水线中,最大吞吐率Tp max=流水线时钟周期△T/1=max(T1,...Ti,..Tm)+T1/1,而其中,m是流水线的段数,i是特定过程段执行时间。如果,一条流水线的段数越多,过程执行时间越长,那么,这条流水线的理论吞吐率就越小。

    由此,我们可以看到,要对于流水线的瓶颈部分的处理主要在于减少流水段的处理时间。实现的方法一般有两种:

    1、把瓶颈部分的流水线分拆,以便任务可以充分流水处理。流水段的处理时间过长,一般是由于任务堵塞造成的,而任务的堵塞会导致流水线不能在同一个时钟周期内启动另一个操作,那么,我们可以把流水段划分,在各小流水段中间设置缓存寄存器,缓冲上一个流水段的任务,使流水线充分流水。假如X流水段的处理时间为3T,那么,我们可以把X流水段再细分成3小段,这样,每小段的功能相同,但是处理时间已经变成3T/3=T了。

    2、在瓶颈部分设置多条相同流水段,并行处理。对付流水段的处理时间过长,还有另外一种方法,那就是把瓶颈流水段用多个相同的并联流水段代替,在前面设一个分派单元来对各条流水段的任务进行分派。我们仍然假设瓶颈流水段的处理时间是△3T,那么经过3条并联流水段的同时处理,实际需要的时间只是△T。这样,就达到了缩短流水段处理时间,但这种方法比较少以采用,因为要3段相同的流水段并联,成本较高,而且,分派单元会比较麻烦处理。

    加速比:是指某一流水线如果采用串行模式之后的工作速度和采用流水线模式后的工作速度的比值,可以看出,数值越大,说明这条流水线的工作安排方式越好。

    使用效率:指流水线中,各个部件的利用率。由于流水线在开始工作时存在建立时间;在结束时存在排空时间,各个部件不可能一直在工作,总有某个部件在某一个时间处于闲置状态。那么,我们可以用处于工作状态的部件和总部件的比值来说明这条流水线的工作效率(看看有没有人偷懒啦!^_^)

    影响流水线性能的因素:

    流水线处理方式是一种时间重叠并行处理的处理技术,具体地说,就是流水线可以在同一个时间启动2个或以上的操作,借此来提高性能。为了实现这一点,流水线必须要时时保存畅通,让任务充分流水,但在实际中,会出现2种情况使流水线停顿下来或不能启动:

    1、多个任务在同一时间周期内争用同一个流水段。例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件……

    2、数据依赖。比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。

    不过,就算是这样,我们也不用担心,因为对于第一种情况,我们可以增加运算部件的数量来使他们不必争用同一个部件;第二种情况,我们可以用指令调度的方法重新安排指令或运算的顺序。

 

流水线技术理解

流水线,这个词语最早出于工厂里面,是资本家为了提高产品的产量而采用的一种技术。我们姑且不去看他的定义,我们从生活中的例子理解什么是流水线技术。 假如我们有很多衣服要洗,现在有一台洗衣机和一台干衣机,...
  • kaiwen07
  • kaiwen07
  • 2015年04月11日 00:06
  • 1000

流水线技术与并行技术

最近在看WCET(Worst Case Execution Time, 最坏执行时间), 在嵌入式系统中,线程的执行时间包括:事件的触发到响应时间、申请处理器的等待时间、数据的处理时间、申请设备的时间...
  • ecnuThomas
  • ecnuThomas
  • 2017年03月24日 18:53
  • 931

处理器中的流水线技术

处理器中的流水线技术 在现代处理器中,流水线是一个最基本的概念。在了解cpu的时候,很多时候会提及拥有多少级流水线。虽然这个概念并不是在计算机技术中诞生的,但是这个技术却在处理器世界中大放异彩。 ...
  • pankul
  • pankul
  • 2013年04月07日 22:32
  • 2725

计算机组成原理学习——流水线技术浅析

流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。...
  • working_brain
  • working_brain
  • 2014年06月09日 15:48
  • 2517

ARM 流水线技术

ARM 流水线技术: 常常在讲ARM流水线的时候,很多同学就很晕,后来调查了一下,大多数同学都是不同熟悉指令导致的。为了让大家更好的流水线,在这里先简单的介绍ARM的一部分指令集。 一、部分ARM...
  • haoge921026
  • haoge921026
  • 2015年06月29日 20:29
  • 1239

计算机体系结构——流水线技术

1、流水线的基本概念 2、流水线的分类
  • lh470342237
  • lh470342237
  • 2017年07月22日 15:54
  • 627

ARM流水线技术

 ARM流水线技术      流水线技术通过多个功能部件并行工作来缩短程序执行时间,提高处理器的效率和吞吐率。ARM7是冯·诺依曼结构,采用了典型的三级流水线,而ARM9则是哈佛结构,采用五级流水线技...
  • hudieping
  • hudieping
  • 2009年12月20日 22:26
  • 10116

计算机系统结构 流水线技术-标量

一、重叠执行和先行控制一条指令的执行过程: (1)取指令:按照指令计数器PC的内容访问主存,取出一条指令送到指令寄存器。 (2)分析指令:对指令的操作码进行译码,按照给定的寻址方式和地址字段形成操作数...
  • codeforcer
  • codeforcer
  • 2016年05月06日 00:00
  • 3391

软件流水线--多核时代的高性能编程

1.  前言 流水线技术是把一件任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠...
  • fishjam
  • fishjam
  • 2012年04月05日 22:47
  • 4725

流水线、超流水线、超标量技术对比

流水线     流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指...
  • do2jiang
  • do2jiang
  • 2009年09月12日 13:49
  • 13673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:流水线技术
举报原因:
原因补充:

(最多只允许输入30个字)