5.1.2 流水线的表示方法
上面介绍的指令重叠执行方式实际上就是指令流水线。指令流水线是多条指令并行执行的一种实现技术。目前,流水线已经成为高速处理机中采用的一项关键技术。
流水线就像工厂中的装配线那样。在汽车装配线上,一辆汽车的装配过程分为很多个阶段,每一个段完成汽车生产的一部分。在流水线中的每一个阶段与其他任何一个阶段能够并行进行,但是每个阶段装配的不是同一辆汽车。在计算机的流水线中,流水线的每一个阶段完成一条指令的一部分,不同阶段并行完成流水线中不同指令的不同部分。流水线的每一个阶段称为一个流水节拍、流水步、流水步骤、流水阶段、流水线阶段、功能段、流水流水段、流水段、流水级等。一个流水阶段与另一个流水阶段相连接形成流水线。指令从流水线的一端进入,经过流水线的处理,从另一端流出。
流水线的表示方法通常有三种:连接图、时空图和预约表。本节介绍前两种表示方法,在非线性流水线中介绍预约表表示方法。
图5.3是一种指令流水线的连接图表示方法,一条指令的执行过程分为4个流水段。目前,大部分处理机的指令流水线在3至12段之间。指令流水线为8段或大于8段的处理机称为超流水线处理机。
有些复杂的指令在执行阶段也采用流水线方式工作,这种流水线称为操作流水线,或功能部件流水线。例如,一个浮点加法的执行过程可以采用3至6个流水段。图5.4是一个浮点加法器的4段流水线,它将浮点加法的执行过程分解为求阶差、对阶、尾数加和规格化4个子过程,每一个子过程可以在各自独立的功能部件上完成。
在图5.4中,如果各个部件的执行时间均相等,即。虽然执行一次浮点加法的时间仍然需要4△t,然而,由于4个部件同时工作,每隔一个△t就能够完成一次浮点加法,输出一个运算结果。因此,采用4级流水线的浮点加法器,处理机执行浮点加法的速度能够提高3倍。
描述流水线的工作过程,最常用的方法是采用"时空图"。例如,图5.4所示的浮点加法器流水线,采用时空图表示如图5.5所示。
在时空图中,横坐标表示时间,也就是输入到流水线中的各个任务在流水线中所经过的时间。当流水线中的各个流水段的执行时间都相等时,横坐标被分割成相等长度的时间段。纵坐标表示空间,即流水线的每一个流水段。
从图5.5的流水线时空图中,能够很清楚地看出各个任务在流水线的各段中流动过程。从横坐标方向看,流水线中的各个功能部件在逐个连续地完成自己的任务,例如,求阶差流水段在完成任务"1"之后,紧接着做任务"2"、任务"3"……,同样,对阶部件在完成任务"1"之后,接着做任务"2"、任务"3"等。从纵坐标方向看,在同一个时间段内有多个功能段在同时工作;例如,在这一个时间段内,规格化部件在做第1个加法的规格化,尾数加部件在做第2个加法的尾数加,对阶部件在做第3个加法的对阶,求阶差部件在做第4个加法的求阶差。浮点加法器的4个独立的流水段同时工作,分别做4个浮点加法的不同阶段。