计算机体系结构中分支处理的各种方法是什么?
处理器使用各种各样的方法和技术来处理分支。三种方法提高了分支处理的基本方法。这些方法如下:
是否使用分支延迟槽
如何处理未解决的条件分支
体系结构是否提供防止条件分支的机制。
分支处理的基本方法反映了这些问题。根据分支处理对这些问题的响应方式,可以确定延迟分支、阻塞和推测性分支处理、多路分支和受保护执行。
第一种方法是是否使用分支延迟槽。简单的分支处理通常会导致每个分支指令后出现一个或两个浪费的流水线周期,称为气泡。使用延迟分支,可以将未使用的气泡填充到可能执行的指令中。
第二种方法负责如何处理未解决的条件分支。处理器可以使用三种基本技术中的一种。当未解决的条件分支阻止分支的处理直到可以计算特定条件时,它可能与阻塞分支处理有关。
早期的流水线处理器,如 MC 68020、MC 68030 和 80386,采用了这种无效的分支处理方式。
处理未解决的条件分支的另一种方法是促进推测性分支处理。在这种情况下,对于每个未解决的条件分支,都会为条件的结果构建一个预测,并且处理沿着猜测的路径扩展。
预测是对分支是否预计会被执行的猜测,也就是说,预计会遵循顺序路径还是执行路径。在解决指定条件后,会确定猜测结果。如果证明正确,则继续处理。
如果猜测错误,则所有推测执行的指令都会被拒绝,并且执行沿着正确的路径继续。推测性分支处理是目前普遍采用的方法。它广泛用于最近的 ILP 处理器,尤其是在超标量处理器中。
处理未解决的条件分支的最后一种情况是遵循两个可能的实现路径,并在解决特定条件后拒绝不正确的路径。此方法称为多路分支,已在一些未经验证或原型 VLIW 机器中使用。
第三种也是最后一种分支处理方法是体系结构是否支持适当的方法来防止条件分支。如果有此类方法适用,则可以进行受保护的执行。从某种意义上说,控制依赖关系由数据依赖关系恢复。
虽然受保护的执行可能在概述的方案中具有最高的性能潜力,但它也存在重大缺点。它需要对指令集体系结构进行重大扩展或重新定义。在 VLIW 体系结构中,尽管一些主流体系结构也在某种程度上提供了受保护的指令,例如 HP PA、DEC Alpha 和 SPARC V9 体系结构。