组成第十三讲:流水线控制_第1页
组成第十三讲:流水线控制_第2页
组成第十三讲:流水线控制_第3页
组成第十三讲:流水线控制_第4页
组成第十三讲:流水线控制_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理指令重叠控制方式指令重叠控制方式 在一个计算机系统中,在一个计算机系统中,CPUCPU的控制器是整个系统的指挥的控制器是整个系统的指挥中心,它把运算器、存储器以及中心,它把运算器、存储器以及I/OI/O等设备组成一个有机系等设备组成一个有机系统。统。计算机程序和原始数据的输入,在计算机程序和原始数据的输入,在CPUCPU内的信息处理,内的信息处理,CPUCPU处理处理结果的输出,外部设备与主机之间的信息交互等都是在控制器结果的输出,外部设备与主机之间的信息交互等都是在控制器的控制下实现的。控制器是指令系统的执行机构。它完成任何的控制下实现的。控制器是指令系统的执行机构。它完成任何

2、一条指令通常都经过取指令、分析指令、执行指令三个阶段,一条指令通常都经过取指令、分析指令、执行指令三个阶段,因此控制器就必须有这三种功能,当然还应有控制外部设备和因此控制器就必须有这三种功能,当然还应有控制外部设备和中断处理等功能。中断处理等功能。 这里要研究的是如何加快指令执行过程,也就是加快机器语这里要研究的是如何加快指令执行过程,也就是加快机器语言的解释过程。解释过程是由机器内的控制机构控制,它调用言的解释过程。解释过程是由机器内的控制机构控制,它调用一串微指令(或微操作)去实现每条机器指令,并控制这一串一串微指令(或微操作)去实现每条机器指令,并控制这一串微指令与解释下一条机器指令的另

3、一串微指令之间的衔接。微指令与解释下一条机器指令的另一串微指令之间的衔接。计算机组成原理为了加快单条指令的解释过程,可采用的途径有:选用更高为了加快单条指令的解释过程,可采用的途径有:选用更高速的器件;采用更好的运算方法;减少解释过程所需要的节速的器件;采用更好的运算方法;减少解释过程所需要的节拍数;使解释过程的各个动作并行执行等。在此基础上为要拍数;使解释过程的各个动作并行执行等。在此基础上为要提高机器语言程序的执行速度,则需采用同时解释两条、多提高机器语言程序的执行速度,则需采用同时解释两条、多条以至整段程序的控制方式。条以至整段程序的控制方式。指令的解释可以有三种控制方式,即顺序方式、重

4、叠方式和指令的解释可以有三种控制方式,即顺序方式、重叠方式和流水方式。流水方式。计算机组成原理取指令分析执行取指K+1取指K分析K执行K分析K+1执行K+1图 机器指令的微操作图 指令间的操作顺序控制简单速度慢计算机组成原理l 重叠方式重叠方式重叠方式指的是在解释第重叠方式指的是在解释第K K条指令的操作完成之前,就条指令的操作完成之前,就开始解释第开始解释第K+1K+1条指令;条指令;重叠解释并不能加快指令的实现,但能加快相邻两条重叠解释并不能加快指令的实现,但能加快相邻两条指令以至一段程序的解释;指令以至一段程序的解释;“一次重叠一次重叠”指的是任何时候都只是指的是任何时候都只是“执行执行

5、K”K”与与“分分析析K+1”K+1”重叠;重叠;一次重叠是重叠机器一般采用的方法。一次重叠是重叠机器一般采用的方法。计算机组成原理重叠方式取指K+1取指K分析K执行K分析K+1执行K+1图 指令重叠方式计算机组成原理l 流水的基本概念流水的基本概念计算机的流水处理过程非常类似于工厂中的流水装配计算机的流水处理过程非常类似于工厂中的流水装配线;线;为了实现流水,首先把输入的任务(或过程)分割为为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段一系列子任务,并使各子任务能在流水线的各个阶段并发地执行;并发地执行;当任务连续不断地输入流水线时,在流水线的输

6、出端当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的便连续不断地吐出执行结果,从而实现了子任务级的并行性。并行性。 计算机组成原理若完成一条指令的时间为若完成一条指令的时间为T,则对分解为,则对分解为“分析分析”和和“执行执行”两个子过程:两个子过程:T2t1,即每隔,即每隔t1T/2就可就可处理出一个结果;处理出一个结果;计算机组成原理而对分解为而对分解为“取指令取指令”、“指令译码指令译码”、“取操作数取操作数”和和“执行执行”4个子过程的,则个子过程的,则T4t2,即每隔,即每隔t2T/4就可处理出一个结果。就可处理出一个结果。计算机组成原理计

7、算机组成原理l 对流水计算机来说,上一条指令与下一条指令的四个子过对流水计算机来说,上一条指令与下一条指令的四个子过程在时间上重叠执行;程在时间上重叠执行;l 因此,当流水线满载时,每个时钟周期可以输出一个结果;因此,当流水线满载时,每个时钟周期可以输出一个结果;l 由于其过程相当于现代工业生产装配线上的流水作业,因由于其过程相当于现代工业生产装配线上的流水作业,因此把这种处理机称为流水计算机。此把这种处理机称为流水计算机。计算机组成原理l 流水控制方式有关的问题流水控制方式有关的问题流水线中的相关是指相邻或相近的两条指流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指

8、定令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。的时钟周期开始执行。资源相关资源相关数据相关数据相关控制相关控制相关计算机组成原理l 资源相关:资源相关:资源相关是指多条指令进入流水线后在同一机器时钟资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突;周期内争用同一个功能部件所发生的冲突;也就是说当硬件资源满足不了同时重叠执行的指令的也就是说当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了资源相关。要求,而发生资源冲突时,就发生了资源相关。资源相关冲突的解决办法:资源相关冲突的解决办法:一是指令停顿一拍后再启动;一是指令停顿一

9、拍后再启动;二是增设一个存储器,将指令和数据分别放在两个二是增设一个存储器,将指令和数据分别放在两个存储器中。存储器中。 计算机组成原理 下面仅就在同一时间内(纵向来看)下面仅就在同一时间内(纵向来看)“分析分析K”和和“取指取指K+1”的重叠对计算机组成提出了什么样的要求。的重叠对计算机组成提出了什么样的要求。 “分析分析K”的时间内,主要操作是形成操作数真地址和访内的时间内,主要操作是形成操作数真地址和访内取操作数,而取操作数,而“取指取指K+1”也需访内。但是一般的机器,操作数也需访内。但是一般的机器,操作数和指令是混合存储于同一主存内的,因而同时只能访问一个存和指令是混合存储于同一主存

10、内的,因而同时只能访问一个存储单元,这样就实现不了储单元,这样就实现不了“分析分析K”和和“取指取指K+1”的重叠。的重叠。 为了实现重叠的解释,可以采用不同的硬件结构方法来完成。为了实现重叠的解释,可以采用不同的硬件结构方法来完成。 第一种方法:设置两个存储器,并独立编址,分别存放操作第一种方法:设置两个存储器,并独立编址,分别存放操作数和指令就可同时访内了。数和指令就可同时访内了。 第二种方法:操作数和指令仍混存与内存中,但用多体交叉第二种方法:操作数和指令仍混存与内存中,但用多体交叉存储结构,只要相邻的第存储结构,只要相邻的第K+1条指令及条指令及K条指令中所需要的操作条指令中所需要的操

11、作数不在同一个存储体中,则能在一个主存周期内取出这两者,数不在同一个存储体中,则能在一个主存周期内取出这两者,从而实现两条指令的从而实现两条指令的“分析分析K”和和“取指取指K+1”时间上的重叠。时间上的重叠。第三种方法:设置指令缓冲寄存器(简称指缓),预先把指令第三种方法:设置指令缓冲寄存器(简称指缓),预先把指令由主存取到这个寄存器。这样,由主存取到这个寄存器。这样,“分析分析K”就能和就能和“取指取指K+1”重叠,重叠,计算机组成原理因为只有前者因为只有前者“分析分析K”K”需要访问主存储器取操作数,而后者需要访问主存储器取操作数,而后者“取指取指K+1”K+1”是由指令缓冲寄存器取第是

12、由指令缓冲寄存器取第K+1K+1条指令。以下解释为条指令。以下解释为什么能预先取出指令。什么能预先取出指令。 其原因是由于一条指令的其原因是由于一条指令的“执行执行”操作,如相加或相乘的操作,如相加或相乘的操作时间往往会比操作时间往往会比“分析分析”的操作时间要长,因此,出现图的操作时间要长,因此,出现图4.384.38所示那样。三者在一段时间同时操作,但使用一套存储器所示那样。三者在一段时间同时操作,但使用一套存储器执行完第执行完第K-1K-1条操作后,在虚线以右的时间段内得到结果;而条操作后,在虚线以右的时间段内得到结果;而“分析分析K”K”的取数访内时间在虚线以左,这是因为的取数访内时间

13、在虚线以左,这是因为tttt,由于访,由于访存时间错开了,所以它们可以重叠操作。由上图还可以看出,存时间错开了,所以它们可以重叠操作。由上图还可以看出,左边箭头对应的那段时间,内存是空闲的,所以就用这段时间左边箭头对应的那段时间,内存是空闲的,所以就用这段时间访问内存将第访问内存将第K+1K+1条指令取出来,即在执行条指令取出来,即在执行K-1K-1与分析与分析K K重叠时间重叠时间内,能将第内,能将第K+1K+1条指令取出并送到指令缓冲寄存器中。这样,若条指令取出并送到指令缓冲寄存器中。这样,若每次在每次在“取指取指”时都可由时都可由“指缓指缓”取得已从主存取得已从主存“预取预取”得到得到的

14、指令,则的指令,则“取指取指K+1”K+1”只需很短时间即可完成,所以可以合并只需很短时间即可完成,所以可以合并到到“分析分析K+1”K+1”内,从而构成图内,从而构成图4.394.39所示的一次重叠方式。所示的一次重叠方式。计算机组成原理执行K-1分析K取指K+1图4.38 执行操作时间大于分析操作时间图分析K执行K分析K+1 执行K+1分析K+2 执行K+2图4.39 一次重叠方式图计算机组成原理l 数据相关:数据相关:在一个程序中,如果必须等前一条指令执行完毕后,在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关才能执行后一条指令,那么这两条指令

15、就是数据相关的;的;在流水计算机中,指令的处理是重叠进行的,前一条在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作;指令还没有结束,第二、三条指令就陆续地开始工作;由于多条指令的重叠处理,当后继指令所需的操作数,由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。刚好是前一指令的运算结果时,便发生数据相关冲突。 计算机组成原理l 数据相关冲突的解决办法:数据相关冲突的解决办法:在流水在流水CPU的运算器中设置若干运算结果缓冲寄存器,的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使

16、用,这称暂时保留运算结果,以便于后继指令直接使用,这称为为“向前向前”或定向传送技术。或定向传送技术。计算机组成原理l 控制相关:控制相关:控制相关冲突是由转移指令引起的;控制相关冲突是由转移指令引起的;当执行转移指令时,依据转移条件的产生结果,可能当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线发也可能转移到新的目标地址取指令,从而使流水线发生断流。生断流。l 为了减小转移指令对流水线性能的影响,常用以下两种转为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术:移处理技术:延迟转移法延迟转移法转移预测法转

17、移预测法计算机组成原理l 延迟转移法:延迟转移法:由编译程序重排指令序列来实现。由编译程序重排指令序列来实现。基本思想是基本思想是“先执行再转移先执行再转移”,即发生转移时并不排,即发生转移时并不排空指令流水线,而是让紧跟在转移指令之后已进入流空指令流水线,而是让紧跟在转移指令之后已进入流水线水线 的少数几条指令继续完成。的少数几条指令继续完成。如果这些指令是与转移指令结果无关的有用指令,那如果这些指令是与转移指令结果无关的有用指令,那么延迟损失时间正好得到了有效的利用;么延迟损失时间正好得到了有效的利用;计算机组成原理l 转移预测法:转移预测法:用硬件方法来实现,依据指令过去的行为来预测将来

18、用硬件方法来实现,依据指令过去的行为来预测将来的行为。的行为。通过使用转移取和顺序取两路指令预取队列器以及目通过使用转移取和顺序取两路指令预取队列器以及目标指令标指令cache,可将转移预测提前到取指阶段进行,以,可将转移预测提前到取指阶段进行,以获得良好的效果。获得良好的效果。计算机组成原理l 流水结构流水结构向下扩展:向下扩展:进一步分解成更多个子过程;进一步分解成更多个子过程;由于吞吐率与由于吞吐率与t1成反比,而成反比,而t1又与其子过程的个又与其子过程的个数成反比,所以若能分解成能流水进行的更多子过数成反比,所以若能分解成能流水进行的更多子过程,而且各个子过程的完成时间大致相等,则吞

19、吐程,而且各个子过程的完成时间大致相等,则吞吐率就会进一步增大。率就会进一步增大。计算机组成原理向上扩展:向上扩展:可理解为是由两个以上的处理机串行地对数据集进可理解为是由两个以上的处理机串行地对数据集进行处理;行处理;若进来的数据集需要多个任务的处理,且安排成各若进来的数据集需要多个任务的处理,且安排成各个任务分别由不同的处理机处理,则由于各个处理个任务分别由不同的处理机处理,则由于各个处理机都能同时工作,因此能流水地对不同的数据集进机都能同时工作,因此能流水地对不同的数据集进行处理,从而使处理能力得以较大提高。行处理,从而使处理能力得以较大提高。计算机组成原理指令流水线:指令流水线:指指令步骤的并行;指指令步骤的并行;将指令流的处理过程划分为取指令、译码、执行、将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段;写回等几个并行处理的过程段;目前,几乎所有的高性能计算机都采用了指令流水目前,几乎所有的高性能计算机都采用了指令流水线。线。算术流水线:算术流水线:指运算操作步骤的并行;指运算操作步骤的并行;如流水加法器、流水乘法器、流水除法等;如流水加法器、流水乘法器、流水除法等;现代计算机中已广泛采用了流水的算术运算器。现代计算机中已广泛采用了流水的算术运算器。计算机组成原理处理机流水线:处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论