我对直接映射缓存这个话题非常困惑,我一直在寻找一个有良好解释的例子,但结果比以前更加困惑。
举个例子:
- 2048字节的内存
- 64字节的大缓存
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位
我理解得正确吗?