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

问题描述

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

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

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

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

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

Image of Ring Buffer

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...