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

来源:互联网 发布:美国大学排名 知乎 编辑:程序博客网 时间:2024/04/29 22:12

1、流水线的基本概念

为了对计算机技术中的流水线有清晰的认识,我们先来看一个产品生产流水线的例子。
某产品的生产需要4道工序,该产品生产车间以前只有一个工人,一套生产该产品的机器。该工人工作8小时,可以生产120件产品。现在车间负责人希望将产品日产量提高到480件。最简单的方法是,再雇佣3名工人,购进3套机器设备。但我们可以看到另一种更加节约开支的方法:将原来的生产过程按照4道工序分离开来,使得每道工序用时1分钟;这时4名工人每人可以负责一道工序,如此工作8小时。
这里写图片描述
从图中可以直观的看出来,工人工作8小时,实际上是重复了480次某道工序,综合4名工人的工作成果,就是生产了480件产品。
这类流水线工作的主要特点是:每件产品的单位加工时间不变,但是将操作时间重叠,使得每件产品的产出时间缩短。我们可以将这类例子引申到计算机技术中。例如,将一条指令的解释过程分解为“分析”“执行”两个子过程。这两个子过程在独立的部件上实现。指令分析器不必等待指令执行完成后才读入下一条指令,只需要完成“分析”这个子过程,并将结果送入执行器去“执行”时,就可以读入下一条指令。假设两个子过程的用时相同,那么处理器的速度将会提高一倍。
所谓流水线技术,是指将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。
流水线技术具有如下特点:

  1. 流水线过程由多个相互关联的子过程组成,每个子过程称为流水线的“级”或“段”。流水线的段数可以称为流水线的“深度”或“流水深度”。
  2. 各个功能段所需时间应尽量相同,可以避免流水线的“堵塞”和“断流”,这个时间一般为一个时钟周期或机器周期。
  3. 流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,即每一个时钟周期产生一个“结果”。
  4. 流水技术适合于大量重复的时序过程,只有输入端能连续地提供任务,流水线的效率才会充分发挥。

2、流水线的分类

一般来说流水线可以分为如下几种类型。
1、单功能流水线和多功能流水线
这是按照流水线所完成的功能来划分的。所谓单功能流水线指的是只能完成一种固定功能的流水线。要完成多种功能,可采用多个单功能的流水线。而多功能流水线,指的是流水线的各段可以进行不同的连接,从而使流水线在不同时间或者同一时间完成不同的功能。例如下图(a)所示的TI ASC的运算器就是多功能的流水线,它由8段组成,进行浮点加、减运算时,各段连接如图(b),进行定点乘法时连接如图(c)所示。
这里写图片描述
2、静态流水线和动态流水线
这是按照同一时间内各段的连接方式来分类的。静态流水线指的是,同一时间内,流水线的各段只能按同一种功能的连接方式工作。上例ASC的8段就属于静态流水线,只能进行加减运算或者定乘运算。因此在静态流水线中,只有当输入端是一串相同的运算操作时,流水的效率才能发挥。而动态流水线指的是,同一时间内,某些段正在实现某种操作(如定乘)而另外一些段却在实现另一种运算(如浮点加法)。这样不同类型的操作也可以进行流水处理。然而动态流水线对于控制的要求是很高的。目前绝大多数的流水线是静态流水线。
从下图给出的静态和动态流水线的时空图,可以清晰地看到两种流水方式的不同。
这里写图片描述

3、部件级、处理机级及处理机间流水线
这是按照流水的级别来进行分类的。
部件级流水线,叫运算操作流水线,它是把处理机的运算逻辑部件分段,使得各种数据类型的操作能够进行流水。
处理机级流水线,又叫指令流水线,它是把解释指令的过程按照流水方式处理。处理机要处理的主要时序过程就是解释指令的过程。按照流水方式进行,可以使处理机重叠地解释多条指令。
处理机间流水线,又叫宏流水线。它是由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
4、标量流水处理机和向量流水处理机
这是按照数据的表示来进行分类的。标量流水处理机指的是,处理机不具有向量数据的表示,仅对标量数据进行流水处理。类似的,向量流水处理机指的是,处理机具有向量数据的表示,通过向量指令对向量的各元素进行处理。
5、线性流水线和非线性流水线
按照流水线中是否有反馈回路来进行分类的。线性流水线指的是,流水线的各段串行连接,没有反馈回路。而非线性流水线,指的是流水线中除有串行连接的通路外,还有反馈回路。