流水线处理器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、流水线处理器

1、流水线原理

一条指令的执行可以分为取值、分析和执行3个阶段,这3个阶段的执行分别由控制器内部的取值部件、指令分析部件和指令执行部件3个独立的功能部件完成。在传统的控制器中,这3个阶段在时间上是分时进行的,即指令的3个阶段在时间上是顺序执行的,指令的这种执行方式又称为串行执行。

在串行执行方式中,n条指令的执行时间为:

∑=

+ +

=

n

i

i

i

i

t

t

t

T

1

) (

执行指令

分析指令

取指令

如果取指令、分析指令和执行指令的3段时间都相等,每段时间都等于t ,则执行n 条指令的时间为:T=3nt

采用串行执行指令的方式的优点是控制简单,节省硬件。缺点是:①执行指令的速度慢。只有当上一条指令执行完毕后,才能开始下一条指令的执行,即在任何时刻,控制器中只有一条指令在执行。②功能部件利用率低。例如,在取指令时,取指部件是“忙”的,而指令分析部件和执行部件是“空闲”的。因此,串行执行指令并不能充分发挥控制器内各独立功能部件的作用。

为了克服串行执行指令的缺点,提高指令的执行速度和控制器各部件和利用率,指令的执行过程可以采用类似于工厂中的流水线装配形式,使指令的3个执行阶段在控制器各部件实现流水作业,控制器各部件总处于“忙”状态。

如果取指令、分析指令和执行指令的3段时间都相等,且每段时间都等于t,则执行n 条指令的时间为:T=(2+n)t 。

上述分析是针对在一条流水线有3个独立的功能部件而言的。若一条流水线有m个功能独立的部件S1 ,S2,……,S m,这种流水线控制器的并行程度会显著提高。

为了充分发挥流水线的作用,流水线中的功能部件和任务必须满足以下条件:

(1)在流水线中处理的任务必须是连续的,只有连续不断的任务才能充分发挥流水线的效率。

(2)把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个独立的功能部件来完成。

(3)在流水线中的每一个功能部件的后面都要有一个高速缓冲器用于保存本段的执行结果。

(4)流水线中各段的执行时间应尽可能相等,否则将会引起“堵塞”或“断流”

现象。

(5)流水线需要有“装入时间”和“排空时间”。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。

2、流水线分类

按并行等级技术分类,可以将流水线分为指令流水线、算术流水线和处理器流水线3种。

(1)指令流水线

指令流的处理过程可分为取值、分析指令(译码)、取操作数、执行几个过程段,将这几个过程段并行处理的流水线称为指令流水线。目前,几乎所有的高性能控制器都采用指令流水线。

(2)算术流水线

对算术运算的各步骤实现并行操作,称为算术流水线。如流水线加法器、流水线乘法器、流水线快速傅里叶变换等。现代处理器中广泛采用算术流水线,如STAR-100采用4级流水运算器,Pentium处理器采用8级定点流水线和2级浮点流水线。

(3)处理器流水线

在程序步骤上实现操作并行称为处理器流水线,有时称为宏流水线。这种流水线把两个或两个以上处理器通过存储器串行连接起来,每个处理器对同一数据流的不同部分分别进行并行处理。

3、流水线中的相关问题

所谓相关,是指在一段程序的相近指令之间存在某种关系,这种关系影响指令的并行执行。通常把相关问题分为两大类:一类是数据相关,另一类是控制相关。

(1)数据相关

在执行本条指令的过程中,如果用到的指令、操作数、变址偏移量等正好是前面指令的执行结果,则必须等待前面的指令执行完成,并把结果写到主存或通用寄存器中之后,本条指令才能开始执行,这种相关称为数据相关。

数据相关主要有指令相关、主存操作数相关、通用寄存器相关和变址相关4种。解决数据相关的方法通常有两种:一种方法是推后分析法,在遇到数据相关时,推后本条指令的分析,直到所需的数据写到相关的存储单元中;另一种方法是设置专用路径,即不必等待所需的数据写入到相关存储单元中,而是经专门设置的数据通路读取所需要的数据。

1)指令相关

在一个顺序执行的程序段中,当下一条指令(或若干条指令)本身的内容取决于当前指令的执行结果,就产生指令相关。

解决指令相关的根本方法是程序设计时不允许修改指令,即后续指令的内容和前面指令的执行结果无关。当然,不允许修改指令还有更重要的原因,即现代计算机设计方法要求程序具有再入性,可以被递归调用等。另外,在程序执行过程中不修改指令也有利于程序的诊断和调试。

2)主存操作数相关

当当前指令的执行结果要写到主存,下一条指令的操作数也取自主存,并且这两个主存单元地址相同时,就发生了主存操作数相关。

解决主存操作数相关一般采用推后处理法。处理方法如图所示。第k条指令的“结果写主存A1单元”发生在一个时钟周期接近末尾处,而第k+1条指令的“读主存A1单元”请求出现在同一周期的开始位置。在设置有存储控制器的处理器中,只要把写结果的优先级安排得高于读操作数的优先级。由于存储控制器访问请求是定时进行的,它在一个时钟周期的最末尾处对这一周期的所有访问源进行排队。

在一般处理器中,对访问主存的请求,排队的优先级从高到低分别为输入输出请求、写结果、读操作数和取指令。

3)通用寄存器数据相关

在寄存器—寄存器型(RR型)指令和寄存器—存储器型(RS型)指令的执行过程中,就可能发生通用寄存器数据相关。

发生通用寄存器数据相关的情况与寄存器本身的结构和所采用的控制时序也有关系。如果通用寄存器是用D触发器构成,而且在通用寄存器到运算器之间建有直接数据通路,而不设置缓冲寄存器或锁存器,则不会发生通用寄存器数据相关。D触发器允许在同一节拍中实现寄存器之间的循环传送。在这种情况下,实际上不需要分析周期,在一个节拍就可以完成从通用寄存器中通过两个多路选择分别读两个操作数到运算器,操作数在运算器中完成运

相关文档
最新文档