Set Associative Cache-多少内存块映射到一个集合?

问题描述 投票:0回答:1

我正在为期末考试而学习,下面是教授回答的示例问题:

问题

指令缓存(I缓存)的存储容量为524288字节并使用128字节的缓存行。缓存所在的内存使用的大小为209715200字节。多少个不同的内存块可能会映射到4向集合关联中的集合10缓存?

答案

任何存储块的块号的第16至7位等于0000001010将映射到集合10。由于内存为209715200字节,大小(= 0xC800000),因此只有地址的低28位非零。也就是说,最多需要28位来指定任何地址在内存中。因此高28-10-7 = 11位将决定许多不同的块映射到单个集合。上边的值11位范围是0到11000111111 =十进制1599。约有1600种块映射到4路集关联缓存中的集10。

有人可以解释这个答案吗?我对以下各项感到特别困惑。我以为高11位是标签。为什么这与是否映射到设置10有关。我也不明白11位的11000111111的上限是哪里来的?

caching architecture
1个回答
0
投票
您是正确的。标签是高11位。但是措辞不佳的解释是,与物理内存相对应的标签将永远不会映射到大于11000111111的位置,因为大小为0xC800000的物理内存具有该数字的上限。换句话说,大于11000111111的标签将映射到0xC800001或更大的物理地址。

本质上是找到一个集合可以映射到的块的数量,只计算可以给定物理内存的大小以及设置位和偏移位的大小的标签可能性的数量。

© www.soinside.com 2019 - 2024. All rights reserved.