您好,我正在使用带有 Rocket Tools 的 Rocket Chip 存储库,并且在对不同的芯片配置运行一些测试时,我发现了这种违反直觉的行为。我有一个默认的 1 核芯片,还有一个 4 核的默认芯片。当我运行多线程测试时,我始终使用后者获得更高的 CPI。
增加要处理的数据大小以减少由于线程调用而导致的开销时间百分比不会改变结果。
模拟时的详细控制台文本显示所有四个核心都处于活动状态,因此它不仅仅是一个核心在执行。
有人可以解释为什么我会得到这个结果吗?
谢谢。
编辑:
默认值为:
class DefaultConfig extends Config(new WithNBigCores(1) ++ new WithCoherentBusTopology ++ new BaseConfig)
4个核心是:
class FourBigCoresConfig extends Config(new WithNBigCores(4) ++ new WithCoherentBusTopology ++ new BaseConfig)
基本配置:
class BaseConfig extends Config( new WithDefaultMemPort() ++
new WithDefaultMMIOPort() ++
new WithDefaultSlavePort() ++
new WithTimebase(BigInt(1000000)) ++ // 1 MHz
new WithDTS("freechips,rocketchip-unknown", Nil) ++
new WithNExtTopInterrupts(2) ++ new BaseSubsystemConfig() )