流水线生产厂家告诉你,当遇到流水线控制相关问题时,可以采用以下4种方法解决:
①延迟转移技术。延迟转移技术是在遇到转移指令时,依靠编译器把一条或几条没有数据相关或控制相关的指令调度到转移指令的后面。当被调度的指令执行完成后,转移指令目标地址也已经计算出来了。
②静态转移预测技术。所谓静态转移预测是指在处理器的硬件或软件设计完成后,转移预测的方向就已经确定了,预测的方向可能是转移成功的方向,也可能是转移不成功的方向。在程序实际执行过程中,转移预测的方向不能改变。如果在硬件上设置一个目标缓冲栈及相应的控制逻辑,静态转移预测技术还可以在转移成功和不成功两个方向都预取指令。这样,转移造成的损失可以减少一些。
③动态转移预测技术。流水线生产厂家告诉你,所谓动态预测技术是指控制器能够根据程序的执行过程动态地改变转移的预测方向,根据近期转移是否成功的历史记录来预测下一次的转移目标。
④提前形成条件码。对于一般的条件转移指令,转移条件码是由上一条运算型指令产生的。对于大多数情况,不必等运算完成之后,而在运算实际开始之前或在运算中间就能产生条件码,这样,转移的目标就已确定了,从而可确保预取指令的正确性。对于循环控制指令,可能通过编译器将一般的循环控制指令转变为专门的循环控制指令,并设置一个专门的条件码寄存器,把产生条件码的运算型指令和使用这个条件码的条件转移指令分离开,只要循环体长度不是很短,循环体中所有指令再加上两条循环控制指令就可以充满流水线,流水线就不会有“断流”的情况发生,因些流水线的效率就不受影响。