我一直对主题Direct Mapped Cache感到困惑,我一直在寻找一个很好的解释示例,这让我比以往更加困惑。
例如:我有
具有直接映射缓存的8字节缓存行如何确定“ LINE”,“ TAG”和“ Byte offset”?
我相信寻址位的总数是11位,因为2048 = 2 ^ 11
2048/64 = 2 ^ 5 = 32个块(0到31)(需要5位)(标签)
64/8 = 8 = 2 ^ 3 = 3位用于索引
8个字节的缓存行= 2 ^ 3,这意味着我需要3位的字节偏移量
所以地址是这样的:5代表标签,3代表索引,3代表字节偏移
我能正确解决这个问题吗?
我能正确找到吗?是
说明
1)主存储器大小为2048字节= 2 11。因此,您需要11个位来寻址一个字节(如果您的字长为1个字节)[字=将通过该地址访问的最小单个单元]
2)您可以通过这样做来计算直接映射中的标记位(主要内存大小/现金大小)。但是我将解释更多有关标签位的信息。
在这里,现金行的大小(始终与主内存块的大小相同)为8个字节。2 3个字节。因此,您需要3位来代表Cashe行中的一个字节。现在您的地址中还有8位(11-3)。
现在存在于该高速缓存行的总数目为(cashe大小/行大小)= 2 6 /2 3 = 2 3
因此,您有3位代表所需字节所在的行。
现在剩余位数为5(8-3)。
这5位可用于表示标签。:)
3)3位用于索引。如果您尝试标记将一行表示为索引所需的位数。是的,你是对的。
4)3位将用于与高速缓存行一起访问字节。(8 = 2 3)
所以,
11位的总地址长度= 5个标记位+ 3位代表一行+ 3位代表一个字节(字)
希望现在没有混乱。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句