为什么gem5 O3CPU模拟的CPU周期数少于执行的指令数量?
问题解答
gem5 中的 O3CPU 就是超标量乱序执行CPU,你观测到的单周期执行多条指令是它的正常设计特性,不是异常现象。
- O3CPU 的架构完全对标现代商用超标量CPU,默认配置下取指、译码、发射、提交阶段的流水线宽度均为4,也就是说理想情况下每个周期最多可以完成4条指令的提交,天然支持单周期处理多条指令。
- 你可以在 gem5 源码路径
src/cpu/o3/O3CPU.py中查看相关默认参数,其中fetchWidth、decodeWidth、issueWidth、commitWidth等参数默认值都大于1,这正是超标量CPU的核心标识。 - 你运行的 462.libquantum 测试用例本身指令间依赖少、指令级并行度很高,缓存命中的情况下很容易跑出接近甚至超过1的IPC(每周期指令数),符合预期。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

