公 要解决数据相关,需要设置专门的检查数据相关 的硬件,在每次取操作数时,把取数的地址同它 前面正在流水线中尚未完成写数操作的所有写数 指令的写数地址进行比较,如果有相同的,说明 有数据“相关存在。 ·解决数据相关最简单的办法就是推迟执行存在 相关的数据操作,例如等待“相关”的写数指令 完成之后,再执行读数操作 这种机制称为流水线互锁( pipeline interlock),是 通过硬件实现的。也有的用软件(编译程序)的办 法来实现
• 要解决数据相关,需要设置专门的检查数据相关 的硬件,在每次取操作数时,把取数的地址同它 前面正在流水线中尚未完成写数操作的所有写数 指令的写数地址进行比较,如果有相同的,说明 有数据“相关”存在。 • 解决数据相关最简单的办法就是推迟执行存在 “相关”的数据操作,例如等待“相关”的写数指令 完成之后,再执行读数操作。 • 这种机制称为流水线互锁(pipeline interlock),是 通过硬件实现的。也有的用软件(编译程序)的办 法来实现
公 无论是通过软件还是硬件,显然,推迟执行读数 操作的办法总要影响流水线的效率。为了尽量缩 短数据相关时指令在流水线中停顿的时间,还有 其他一些方法,请参考相关文献。 ·共有三种类型的数据相关,分别是:先写后读相 关(读写相关),即RAW( Read After Write)先读后 写相关(写-读相关),即WAR( Write after read)和 先写后写相关(写-写相关),即WAW( Write After Write)
• 无论是通过软件还是硬件,显然,推迟执行读数 操作的办法总要影响流水线的效率。为了尽量缩 短数据相关时指令在流水线中停顿的时间,还有 其他一些方法,请参考相关文献。 • 共有三种类型的数据相关,分别是:先写后读相 关(读-写相关),即RAW(Read After Write);先读后 写相关(写-读相关),即WAR(Write After Read)和 先写后写相关(写-写相关),即WAW(Write After Write)
3.控制相关 公 控制相关( control dependency)主要是由转移指令或 其他能够改变程序计数器(PC)内容的指令在流水 线中进行处理时引起的。 ·对于条件转移指令,虽然在指令流水线前端的指 令译码时就能发现,但是确定转移方向的条件码 却要在指令流水线的末端的执行部件中产生 旦在指令部件中发现条件转移指令,指令部件 就要停顿下来,等待转移指令前面一条指令在执 行部件中执行完毕,产生条件码以后,才能确定 转移方向,此时整个流水线已经排空,没有指令 在里面流动了
3. 控制相关 • 控制相关(control dependency)主要是由转移指令或 其他能够改变程序计数器(PC)内容的指令在流水 线中进行处理时引起的。 • 对于条件转移指令,虽然在指令流水线前端的指 令译码时就能发现,但是确定转移方向的条件码 却要在指令流水线的末端的执行部件中产生。 • 一旦在指令部件中发现条件转移指令,指令部件 就要停顿下来,等待转移指令前面一条指令在执 行部件中执行完毕,产生条件码以后,才能确定 转移方向,此时整个流水线已经排空,没有指令 在里面流动了
公 为了减少条件转移指令造成的执行部件停顿时间, 可采用多项措施和技术,常见的有: (1)双分支预取; (2)加快和提前形成条件码; (3)转移预测 ·动态转移预测用硬件来实现,它是在现代微处理器 设计中普遍采用的一种行之有效的方法
• 为了减少条件转移指令造成的执行部件停顿时间, 可采用多项措施和技术,常见的有: (1) 双分支预取; (2) 加快和提前形成条件码; (3) 转移预测。 • 动态转移预测用硬件来实现,它是在现代微处理器 设计中普遍采用的一种行之有效的方法
公 252指令级并行 要提高计算机系统的整体性能,可以在两个方面 做出努力,一是改进构成计算机的器件性能(如微 电子电路的速度、功耗等),二是要采用先进的系 统结构设计 ·在系统结构设计方面,一个重要的手段就是要采 用并行处理技术,设法以各种方式挖掘计算机工 作中的并行性
25.2 指令级并行 • 要提高计算机系统的整体性能,可以在两个方面 做出努力,一是改进构成计算机的器件性能(如微 电子电路的速度、功耗等),二是要采用先进的系 统结构设计。 • 在系统结构设计方面,一个重要的手段就是要采 用并行处理技术,设法以各种方式挖掘计算机工 作中的并行性