使用环形缓冲区预测返回地址

时间:2020-10-22 23:56:11

标签: computer-science cpu-architecture circular-buffer branch-prediction

我在处理作业任务时遇到了困难,如果有人能解释一下(为什么他们想出的结果是这样),那将非常有帮助:

没有预测,ret需要插入三个气泡才能停止 直到从堆栈中读取返回地址。一种预测方法 ret指令的返回地址是将环形缓冲区作为 在Fetch阶段中的SRAM阵列实现返回地址堆栈。 每个调用指令将“推送”来自以下地址的返回地址 PC递增逻辑到环形缓冲区的末尾。每个ret 指令将从环末“弹出”返回地址 缓冲。当缓冲区空间不足时,调用指令将 开始覆盖已放置在缓冲区中的早期值, 最终可能导致这些寄信人地址被错误预测。

这里是一个环形缓冲区和一个当前指针的描述 “结束”(顶部)。拨打电话时,下一个返回地址将是 写入“结束”,“结束”将增加1。 发生时,“结尾”将减少1,而从 缓冲区将被选作predPC。假设环形缓冲区是 如图所示,当获取bubble的ret指令时。是什么 气泡提示说明的地址?

假设您可以将返回地址预测变量添加到PIPE,而无需 更改时钟频率。使用RAP进行加速的速度是多少 不使用此通话进行冒泡吗?

使用铁定律。四舍五入到四位有效数字。

Image of Ring Buffer

0 个答案:

没有答案
相关问题