缓存内存逻辑

时间:2018-04-13 17:24:21

标签: cpu-architecture

计算机有1MB RAM,字长为8位。它具有高速缓冲存储器,具有16个块,块大小为32位。显示主内存地址如何 1000 1111 1010 0101 1101将映射到缓存地址,如果

i)使用直接缓存映射 ii)使用关联高速缓存映射 iii)使用双向Set关联缓存映射

请赐教我如何解决这个问题。我已经全神贯注,对此没有详细解释。

1 个答案:

答案 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的所有信息。