2009年4月8日星期三

ARM的跳转分支预测

ARM11微体系结构的整型部件使用了静态和动态分支预测。当跳转目标是立即数或固定的PC>偏移时,就对所有分支进行预测。

第一级分支预测是动态的,使用了一个128条目的转移地址缓存BTAC( Branch Target Address Cache)。如果一个跳转指令的PC值在BTAC里出现,那么那一条目所包含的转移历史(>目标地址)就被启用。

如果地址映射关系发生变化,那么BTAC就需要被清空。BTAC清空指令由CP15提供。地址映射
关系发生的情况是:

* 页表内容变化(SWAP、进程调度)
* FCSE PID(进程标识)寄存器变化
* 上下文标识寄存器变化

静态预测是对动态预测的补充,它是仅基于分支方向的预测,与跳转历史无关。

没有评论:

发表评论