控制相关和相应解决方法
流水线的控制相关是因为程序执行转移类指令而引起的相关。转移类指令如无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序的方向,从而造成流水线断流。
数据相关影响到的仅仅是本条指令附近少数几条指令,所以称为局部相关。而控制相关影响的范围要大得多,它会引起程序执行方向的改变,使流水线损失更多的性能,所以称为全局相关。
控制相关会使流水线的连续流动受到破坏。当执行条件转移指令时,有两种可能结果:
■如发生转移,将程序计数器PC的内容改变成转移目标地址;
■如不发生转移,只将PC加上一个增量,指向下一条指令的地址。
控制相关简单解决方法
■一旦发现分支指令就暂停流水线,即暂停该指令之后的所有指令,直到分支指令达到MEM段确定了新的PC值为止。
■在发现它是分支指令之前是不愿意暂停流水线的,因此暂停在ID段之后才会发生,下图所示的流水线时空图就描述了这种出来方法。
简单方法处理时空图

减少流水线处理分支指令时暂停周期数的两个步骤
■在流水线中尽早判断出分支转移是否成功;
■尽早计算出分支成功转移时的PC直(如分支的目标地址)。

减少流水线分支开销的方法
■冻结或者排空流水线的方法
■预测分支转移失败的方法
◆译码到一条分支指令指令时,就像分支指令就是一条普通的指令那样,流水线继续取后续的指令,并且允许分支指令后续指令在流水线中正常流动。(两种情况下的时空图见下页)
■预测分支转移成功的方法
◆一旦完成分支指令的译码并且计算出了分支的目标地址,就假设分支转移成功,并且开始在分支目标地址处取指令执行。
■分支延迟(延迟转移)的方法
控制相关的动态调度
■分支预测缓冲技术(Branch Prediction Buffer)
◆缓冲区的每一项内容被用来预测分支转移是否成功,并且根据实际的分支情况对内容进行修改。这种方法是基于如下的考虑:如果本次分支转移成功了,那么预测下一次分支转移也成功,例如一个循环体就是这种情况。
■分支目标缓冲技术(Branch Target Buffer)
◆将分支转移成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标志;在取指令阶段,所有的指令地址都与保存的标志作比较,如果相同,就认为本条指令是分支指令,而且认为它分支转移成功,同时它的分支目标(下一条指令)地址就是保存在缓冲区中的分支目标地址。
本章主要内容
流水线的基本概念
■概念、表示方法、特点和分类
流水线的性能指标
■吞吐率、加速比和效率
流水线的实现原理
■DLX流水线实例
流水线的“相关”问题
■结构相关、数据相关和控制相关
指令级并行技术简介
指令级并行技术简介
当指令不相关时,它们在流水线中是重叠执行的。这种指令序列中存在的潜在并行性称为指令级并行。
指令级并行度ILP(Instruction Level Parallelism),它定义为在一个时钟周期内流水线上流出的指令数。
衡量指令级并行性的一个指标是CPI(Clock Cycles Per Instruction),它定义为流水线中执行一条指令所需的时钟周期数。
为了达到CPI=1这样的理想情况,必须采用相应的技术减少数据相关和控制相关,静态调度和动态调度,从软件和硬件两个方面解决问题。
要进一步提高流水线的吞吐率,获得更高的性能,就必须使CPI<1 。如果流水线在一个时钟周期内能够有多条指令流出的话,目的就可以实现了,多指令流出处理器就有效的解决了这个问题。
多指令发射技术
■超标量(Superscalar)处理机
■超流水线(Superpipelining)处理机
■超标量超流水线(Superscalar Superpipeling)处理机
■超长指令字(Very Long Instruction Word)处理机
超标量处理机
■通常把一个时钟周期内能够同时发射多条指令的处理机称为超标量处理机。
■为了能够在一个时钟周期内同时发射多条指令,超标量处理机必须有两条或者两条以上能够同时工作的指令流水线。
■高性能超标量处理机一般还有一个先行指令窗口,它能够从指令Cache中预取多条指令,而且能够对这些指令进行数据相关性分析和功能部件冲突检测。
■超标量处理机开发空间并行性,在每个时钟周期可以平均执行完成多条指令。如果一台超标量处理机每个时钟周期同时发射m条指令,则它的指令级并行度ILP的期望值就为m。但由于资源冲突、数据相关、控制相关等原因,实际的ILP不可能达到m,通常是1<ILP<m。
超标量处理机

超流水线处理机
■一般把在一个时钟周期内能够分时发射多条指令的处理机称为超流水线处理机。另外,也把指令流水线的段数大于等于8的流水线处理机称为超流水线处理机。
■超标量处理机是通过重复设置多个部件,并且让这些部件能够同时工作来提高指令的执行速度;而超流水线处理机则只是通过增加少量硬件,通过各部分硬件的充分重叠工作来提高处理机的性能。
■超标量处理机采用的是空间并行性,而超流水线处理机是开发时间并行性,通过各部分硬件的充分重叠来提高机器性能。一台并行度ILP为n的超流水线处理机,它在一个时钟周期内能够发射n条指令。但是n条指令不是同时发射,而是每隔1/n个时钟周期发射一条指令。

超标量超流水线处理机
■可以把超标量技术与超流水线技术结合在一起,这就是超标量超流水线处理机。它在一个时钟周期内要发射指令m次,每次发射指令n条,故每个时钟周期中总共发射指令m×n条。(见下图)
■超标量超流水线处理机既开发空间并行性,又开发时间并行性。前者在重复设置的操作部件上同时执行多个操作来提高程序的执行速度,后者在同一操作部件上重叠多个操作,通过使用较快时钟周期的深度流水线来加快程序的执行速度。其并行度期望值为m×n。

四种不同类型处理机的性能比较

超长指令字处理机
■超长指令字(VLIW)处理机主要是基于以下思路:由编译程序在编译时找出指令间潜在的并行性,进行适当调度安排,把多个能并行执行的操作组合在一起,成为一条具有多个操作段的超长指令。由这条超长指令去控制VLIW处理机中多个互相独立工作的功能部件,每个操作段控制一个功能部件,相当于同时执行多条指令。

超长指令字处理机特点
■1.超长指令字的生成是由编译器来完成的,由它将串行的操作序列合并为可并行执行的指令序列,以最大限度实现操作并行性。
■2.单一的控制流,只有一个控制器,每个时钟周期启动一条长指令。
■3.超长指令字被分成多个控制字段,每个字段直接独立地控制每个功能部件。
■4.含有大量的数据通路和功能部件。由于编译器在编译时间已解决可能出现的数据相关和资源冲突,故控制硬件比较简单。
|