跳转至

常见问题(2024)

cmake 如何使用?如何编译实验框架

请参考仓库内的 readme 编译实验框架。如果已经在根目录进行了 cmake,请先将生成的所有缓存文件清除掉,再修改路径进行 cmake。

我的模拟器莫名其妙死循环了

这可能是因为框架的一个 Feature。在 Load/Store 指令的地址越界的时候,ExecutePipeline 会让指令卡在 LSU 中,不提交也不删除。这是因为推测执行时可能会执行错误的 Load/Store 指令。如果直接报错会导致问题。

可以看看在死循环时,ROB 顶是不是访存指令,如果是,看看 ExecutePipeline 中的指令地址对不对。当然,如果是指令没发射的话,那就是保留站的问题了,请自行确定问题原因。

这个 Feature 将在 2025 年的实验框架中被修复。

如何使用 CI 运行缓存实验相关测试

请参考 评分标准 的实验收取一节修改 .gitlab-ci.yml

我无法通过缓存测试

如果在实验实现上遇到困难,如区分不开不同的参数的 cache,请将自己的代码传到 git 上,然后联系助教。记得根据 评分标准 修改框架实现。


最后更新: 2024年5月15日
作者:cuibst