考虑以上问题中给出的数据。以下哪个数组元素具有与ARR [0] [0]相同的缓存索引?
(A) ARR [0] [4]
(B) ARR [4] [0]
(C) ARR [0] [5]
(D) ARR [5] [0]答案: (B)
说明:数组中的元素总数= 2 10 * 2 10 = 2 20
缓存中的每个块可以包含2个元素,因为double是8个字节,每个块的大小= 16个字节。
缓存中可以存在的元素总数=块总数* 2 = 2 * 2 11 * 2 = 2 13
为了具有相同的缓存索引,该元素的11个设置位应与Arr [0] [0]相同,换句话说,该元素应映射到与Arr [0] [0]相同的地址,
的映射应如下所示:
Set No ............................... Block1................................ Block2
00000000000.....................Arr[0][0] Arr[0][1]..................Arr[4][0] Arr[4][1]
00000000001.....................Arr[0][2] Arr[0][3]
.
.
.
01111111111....................Arr[2][1022] Arr[2][1023]
10000000000....................Arr[3][0] Arr[3][1]
.
.
.
11111111111.....................Arr[3][1022] Arr[3][1023]
因此,Arr [0] [0]的索引与Arr [4] [0]相同。因此,B是正确的选择。
这个问题的测验