2-state分支预测器仅11个输入填充16行表的通用规则咨询
2位饱和计数器分支预测表格填充通用规则
这类教学场景下的分支预测填表任务,通用约定规则如下,你可以对照之前的操作排查问题:
- 优先确认状态机初始值:绝大多数习题默认2位饱和计数器初始状态为
00(强预测not taken,也就是对应偶数分支),少数题目会指定初始为11(强预测taken,对应奇数分支),优先遵循题目明确说明的初始值即可。 - 输入值列填充规则:绝对不能补0或留空,也不能提前终止填写。当表格行数大于输入数组长度时,默认将输入数组按顺序循环取值,直到填满所有表格行:你遇到的11个输入、16行表格的场景,第111行用原数组的11个值,第1216行依次取原数组的第1~5个值即可,刚好填完16行。
- 各列填写逻辑:
- 奇偶校验布尔值:奇数为真(对应taken分支),偶数为假(对应not taken分支),直接对应实际分支结果
- 预测分支列:取当前状态对应的预测结果,每填完一行后,根据实际分支结果更新饱和计数器状态,作为下一行的初始状态
注:你之前操作错误的核心原因:补0不符合分支预测连续运行的逻辑,提前终止不符合题目给出16行表格的明确要求,循环取值的操作逻辑是对的,大概率是初始状态设置错误或者状态更新逻辑有误导致结果不对。
内容的提问来源于stack exchange,提问作者bentaisan
相关产品推荐
相关产品推荐

