答案b容易分析答案a中src最後乙個為什麼是hit?
分析:cache為直接對映一組一行 塊大小8b對映兩個int
也就是乙個快取行對映一行陣列
src 始終按行訪問 dst始終按列訪問cache內容變化過程如下
共8次記憶體引用
for
(i =
0; i <
2; i++
)for
(j =
0; j <
2; j++
dst[j]
[i]= src[i]
[j];
// src行訪問順序 src[0][0] src[0][1] src[1][0] src[1][1]
// dst列訪問順序 dst[0][0] dst[1][0] dst[1][0] dst[1][1] (1
)訪問src[0]
[0] src[0]
[0]對映到塊0 初始cache為空 不命中 同時載入sr[0]
[1]到cache塊0
cache
0| src[0]
[0]| src[0]
[1]|
1|||
(2)訪問dst[0]
[0] dst[0]
[0]對映到塊0 不命中 同時載入dst[0]
[1]到cache塊0
cache
0| dst[0]
[0]| dst[0]
[1]|
1|||
(3)訪問src[0]
[1] src[0]
[1]對映到塊0 不命中 同時載入sr[0]
[0]到cache塊0
cache
0| src[0]
[0]| src[0]
[1]|
1|||
(4)訪問dst[1]
[0] dst[1]
[0]對映到塊1 不命中 同時載入dst[1]
[1]到cache塊1
cache
0| src[0]
[0]| src[0]
[1]|
1| dst[1]
[0]| dst[1]
[1]|
(5)訪問src[1]
[0] src[1]
[0]對映到塊1 不命中 同時載入sr[1]
[1]到cache塊1
cache
0| src[0]
[0]| src[0]
[1]|
1| src[1]
[0]| src[1]
[1]|
(6)訪問dst[0]
[1] dst[0]
[1]對映到塊0 不命中 同時載入dst[0]
[0]到cache塊0
cache
0| dst[0]
[0]| dst[0]
[1]|
1| src[1]
[0]| src[1]
[1]|
(7)訪問src[1]
[1] 命中
cache
0| dst[0]
[0]| dst[0]
[1]|
1| src[1]
[0]| src[1]
[1]|
(8)訪問dst[1]
[1] dst[1]
[1]對映到塊1 不命中 同時載入dst[1]
[0]到cache塊1
cache
0| dst[0]
[0]| dst[0]
[1]|
1| dst[1]
[0]| dst[1]
[1]|
// 結論
1. dst 全部不命中
2. src 只有最後乙個命中
C 習題解析
歡迎來到我的部落格在這裡我將與大家分享我的unity學習之路。今天學習了一些c 習題。1 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說 比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第乙個人大兩歲。最後問第乙個人,他說是10歲。請問第五個人多大?...
習題解析1
百錢買百雞問題,公雞3文錢,母雞2文錢,小雞一文錢3只 首先我們要知道每個種類最多能買多少只,公雞最多能買33只,母雞最多買50只,小雞300只 先迴圈公雞巢狀迴圈母雞的隻數,最後小雞就是100 x y 在判斷是否是100文錢買100隻雞 計算器程式 首先題目說的是根據輸入符號判斷運算 就要定義 任...
區間dp入門 總結 習題 解析
前天學長拉了個區間dp的專題,花了兩個做,今天就來做個總結吧!區間dp,顧名思義,在區間上dp,大多數題目的狀態都是由區間 類似於dp l r 這種形式 構成的,就是我們可以把大區間轉化成小區間來處理,然後對小區間處理後再回溯的求出大區間的值,主要的方法有兩種,記憶化搜尋和遞推。在用遞推來求解時,關...