给定代码:
void transpose2(array dst,array src)
{
int i,j;
for ( i=0; i<4; i++) {
for ( j=0; j<4; j++) {
dst[i][j] = src[j][i];
}
}
}
假设:
int 是 4 个字节
src
数组从地址开始0
,dst
从地址开始64
缓存的大小是
32
字节,一开始缓存是空的
假设我有一个32
字节大小的缓存,在直写、写入分配和 LRU 下,使用 2way 集关联方法,其中每个块都是8
字节:
当我从内存中读取时,我每次从内存中获取多少字节?
是吗4
?8
我很确定的是缓存有 4 个单元或行,每行有 8 个字节。这是正确的吗?
2way部分有点令人困惑,我认为每种方式都有4
字节,对吧?如果我错了,请纠正我...
然后当我从内存中“取”一个块时,我只是不完全理解有多少字节!!?
提前致谢
罗恩