ARM到Thumb交换机是否发生管道停顿?

时间:2014-07-16 12:01:35

标签: arm pipeline thumb

在ARM体系结构中,如果发生ARM到Thumb模式切换,是否会发生管道停顿? 如果是这样,会影响多少个周期? Thumb to ARM模式切换是否相同? 这种行为会因不同的ARM处理器而异吗?

2 个答案:

答案 0 :(得分:0)

假设您以合理的方式切换(使用BLX / BX LR),any modern core will predict that(假设分支预测器当然没有关闭)。直接写入PC变量有点多变 - 一般来说,大核心可能会预测它,但很少核心会赢 - 但通常最好避免使用。

否则,互通分支是AFAIK与常规分支没有什么不同,所以如果没有预测到惩罚只是管道冲洗。切换指令集的唯一方法是通过异常返回,这是整个内核的同步操作(即不是担心性能的地方)。

答案 1 :(得分:0)

不,完全没有。

成本就像任何其他分支指令一样。如果预测器命中,它是免费的,如果没有,它通常需要花费13个周期。

由于转换,没有其他隐藏的打嗝。

因此,您可以使用互通模式,而无需担心与模式切换相关的潜在处罚。