gpt4 book ai didi

c - 通过内存访问跟踪文件确定缓存读/写/命中/未命中

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:49 28 4
gpt4 key购买 nike

我的作业是通过示例程序确定给定跟踪文​​件的缓存读/写/未命中/命中次数。

举例来说,这是示例跟踪输出的前 10 行。

0x37c852: W 0xbfd4b18c
0x37cfe0: W 0xbfd4b188
0x37cfe3: W 0xbfd4b184
0x37xfe4: W 0xbfd4b180
0x37cfe5: W 0xbfd4b17c
0x37cfe9: W 0xbfd4b128
0x395bcb: R 0xbfd4b128
0x395bce: R 0xbfd4b128
0x37cff4: W 0xbfd4b158
0x37cff9: W 0x39deac

如何通过分析每一行来确定我需要了解什么?

谢谢,如果您有任何教育资源,请告诉我。

最佳答案

是的,您可以从跟踪文件中确定缓存参数。但你需要具备以下任一条件:

  1. 跟踪文件的格式。 (我怀疑你有权访问)
  2. 了解系统参数,即缓存大小、寻址位(解释)

缓存实际上是基于时间局部性和空间局部性的。所以给你确定

  • 空间局部性:检查获取的地址是否为最近获取的地址+字长(可以是双字长等)示例:您最近获取了 0x4000,下一次访问是 0x4008。如果行/ block 长度(即缓存一次获取的数据长度)。准确地说,您还需要知道缓存是否设置为关联以及关联多少,这将有助于准确地进行替换和替换策略(我非常怀疑有人会要求做功课)
  • Temporal Locality:检查访问的地址是否在不久的将来被再次调用,是否没有被替换(因为请求了具有相同索引和不同标签的其他地址)

我希望这会试图弄清楚如何处理。为了更好地理解,我会推荐《计算机组织与设计》一书的内存层次结构一章。

关于c - 通过内存访问跟踪文件确定缓存读/写/命中/未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183172/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com