在 gem5 中乘以循环变量

Multiply Cycles variable in gem5

我想知道是否可以在 gem5 中乘以 Cycles 类型的变量。我想表示的是某个延迟加了n次。所以像这样:

return lookupLatency * n;

我收到这个错误:

error: could not convert '(((const BaseCache*)this)->BaseCache::lookupLatency.Cycles::operator uint64_t() * ((uint64_t)n))' from 'uint64_t {aka long unsigned int}' to 'Cycles'

有什么方法可以快速做到这一点?

Cycles 只是 class uint64_t 的包装器,您可以在 src/base/types.hh.

中查看其功能

也就是说,构造函数必须是显式的,并且您正试图从 lookupLatency * n 隐式创建一个 Cycles 变量,这是一个 uint64_t。只需调用构造函数使其再次循环:

return Cycles(lookupLatency * n);