当块大小>时,如何加载直接映射的高速缓存?数据大小?

时间:2016-12-26 17:55:15

标签: caching

我有一个直接映射的缓存,如下所示:

25位标记,4位设置,3位字节偏移

每个数据集的数据大小为8个字节(块大小= 8个字节)。

让我们说我有两个整数,x和y,彼此相邻,有这些内存地址:

some-tag set  boff
         0000 000 x
         0000 100 y

显然x和y进入同一组,现在我的问题是:

当我读取x(并且它是高速缓存未命中)时,x被放入高速缓存集的前4个字节中,y也被放入后4个字节以填满该高速缓存集的整个块?

我相信是这种情况,因为否则当你读取y并在缓存集中找到匹配的标记时,你会得到错误的值。

我感到困惑的是这个:当我读到y并且它是​​高速缓存未命中时,内存中的前4个字节是否也被读入以填充块?当然一定是这样,因为否则读取x将导致缓存命中,返回无效数据。

0 个答案:

没有答案