微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何最大化该程序的数据缓存未命中数?

如何解决如何最大化该程序的数据缓存未命中数?

我们将使用具有 32 字节缓存块的未知配置的数据缓存 U 运行以下 C 程序片段:

#define SIZE (32*1024)
int A[SIZE],B[SIZE],C[SIZE];
for (i=0; i < SIZE; i++)
    A[i] = B[i] + C[i];

假设int映射到4字节的数据量,数组A、B、C分别位于地址0x66340000、0x66440000、0x66540000。如果你想最大化这个程序的数据缓存未命中数,缓存U的配置应该是什么?对于缓存U,在执行这个程序片段时发生了多少次缓存未命中? 假设我们使用的是 32 位地址并且 U 的大小大于 16KB

你能解决这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。