CSAPP 6 17習題解析

2021-10-25 17:05:49 字數 1974 閱讀 3463

答案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 這種形式 構成的,就是我們可以把大區間轉化成小區間來處理,然後對小區間處理後再回溯的求出大區間的值,主要的方法有兩種,記憶化搜尋和遞推。在用遞推來求解時,關...