计算机有1MB RAM,字长为8位。它具有高速缓冲存储器,具有16个块,块大小为32位。显示主内存地址如何 1000 1111 1010 0101 1101将映射到缓存地址,如果
i)使用直接缓存映射 ii)使用关联高速缓存映射 iii)使用双向Set关联缓存映射
请赐教我如何解决这个问题。我已经全神贯注,对此没有详细解释。
答案 0 :(得分:0)
32位是4个字节,你需要2位来处理这4个字节(2 ^ 2),所以你要从地址中分离出2个最低有效位。
1000 1111 1010 0101 11-01
直接映射意味着它只能进入缓存中的一个位置,缓存中有16个位置,所以我们必须剥离下一个至少4位(2 ^ 4 = 16)获取
1000 1111 1010 01-01 11-01
所以0111(= 7)是被填充的行。
如果使用(完全)关联缓存映射,它可以进入16个位置中的任何一个。
使用双向关联缓存映射类似于直接映射,但我们将缓存分成两半(大小= 8 = 2 ^ 3),给出了可以存储的2个可能位置。
1000 1111 1010 010-1 11-01
所以111是索引,可以使用任何2个可能的位置。
阅读有关缓存here的所有信息。