【发布时间】:2023-03-25 11:46:02
【问题描述】:
我正在准备期末考试,我有以下教授回答的示例问题:
问题
指令缓存(I-cache)的存储容量为 524288 字节 并采用 128 字节高速缓存行。缓存所在的内存 使用的大小为 209715200 字节。多少个不同的内存块 可能会映射到 4 路集合关联中的集合 10 缓存?
回答
块号的第 16 位到第 7 位等于的任何内存块 0000001010 将映射到设置 10。由于内存为 209715200 字节 大小(= 0xC800000),因此只有地址的低 28 位将永远是 非零。也就是说,最多需要 28 位来指定任何地址 记忆中。所以上面的 28-10-7 = 11 位将决定如何 许多不同的块映射到一个单独的集合。上层的值 11 位范围从 0 到 11000111111 = decimal1599。所以 1600 不同 块映射到 4 路集合关联缓存中的集合 10。
谁能解释这个答案?我对以下项目特别困惑。我认为高 11 位是标签。为什么这与它是否映射到集合 10 有关。我也不明白 1100111111 的 11 位的上限来自哪里?
【问题讨论】:
标签: caching architecture