gem5 - 如何在 gem5 中使用 CommMonitor
问题描述
我想记录缓存的访问细节。我看到了一些答案,说 CommMonitor 可以提供帮助。但没有找到更多细节。
以上是关于CommMonitor的一些解答。我对 CommMonitor 有一些疑问?
首先Commmonitor可以用于DerivO3CPU还是只用于TimingSimpleCPU?我在 DerivO3CPU 上试了一下,有输出。但在某处我似乎听说它不能用于 DerivO3CPU。
我对 CommMonitor 的理解是,它就像一个过滤器。流经它的数据被记录下来。比如在l2和membus之间添加commMonitor,
system.monitor2 = CommMonitor() system.monitor2.trace = MemTraceProbe(trace_file = "CT_mon2.trc.gz") system.monitor2.slave = system.l2.mem_side system.membus.slave = system.monitor2.master system.l2.cpu_side = system.tol2bus.master
输出格式为:
11500: system.monitor2: Forwarded read request
77000: system.monitor2: Latency: 65500
77000: system.monitor2: Received read response
103000: system.monitor2: Forwarded read request
104000: system.monitor2: Forwarded read request
165000: system.monitor2: Latency: 62000
165000: system.monitor2: Received read response
170000: system.monitor2: Latency: 66000
170000: system.monitor2: Received read response
194500: system.monitor2: Forwarded read request
200500: system.monitor2: Forwarded read request
243000: system.monitor2: Latency: 48500
243000: system.monitor2: Received read response
249000: system.monitor2: Latency: 48500
249000: system.monitor2: Received read response
267500: system.monitor2: Forwarded read request
269500: system.monitor2: Forwarded read request
274000: system.monitor2: Forwarded read request
生成的CT_mon2.trc.gz文件是解压后的二进制文件,怎么看里面的数据呢?如果能输出地址和数据就更好了
- 如何在 l1dcache 和 cpu 之间使用它?
解决方案
推荐阅读
- android - 如何无意识地关闭通知?
- ios - iOS Swift:将滑动事件从嵌套控制器传播到控制器下方
- angular - Angular 子路由根本无法导航
- gem5 - 如何在 Gem5 中同时动态监控来自不同类的多个统计信息?
- python - 将python命令的输出重定向到在cmd中工作但不在.bat文件中的txt文件,如何解决?
- java - 如何打印ASCII值的字母
- javascript - 如何在angularjs的localstorage中从url中保存'access_token'?
- javascript - 获取缓存数据 Vue CLI Vuex PWA
- amazon-web-services - AWS S3 存储桶策略引发拒绝访问错误
- javascript - 如何从 forEach 方法中删除不需要的计数增量?