天天看點

《現代體系結構上的UNIX系統:核心程式員的對稱多處理和緩存技術(修訂版)》——2.13 習題

本節書摘來自異步社群《現代體系結構上的unix系統:核心程式員的對稱多處理和緩存技術(修訂版)》一書中的第2章,第2.13節,作者:【美】curt schimmel著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

2.1 除了i/o控制器上的裝置寄存器之外,無緩存的資料還能用在其他什麼地方?

2.2 請解釋如果高速緩存中的有效位在系統加電複位期間沒有清除将會發生什麼情況?(在高速緩存中使用的儲存設備加電時往往具有随機的内容。)

2.3 為什麼高速緩存中的每一行都需要有它自己的标記?

2.4 為什麼采用位址的“位<9..2>”來索引一個512行直接映射高速緩存的雜湊演算法是一種不好的選擇?如果高速緩存是雙路組相聯高速緩存又會怎樣?

2.5 請解釋在使用本章介紹的技術時高速緩存的行數為什麼是或可能不是2的整數幂?

2.6 考慮一個直接映射高速緩存,它以位址的“位<17..8>”來索引1024行高速緩存。每一行包含16位元組。如果程式一般僅僅占用從0x1000到0x4fff範圍内的位址,那麼這是一種好的雜湊演算法嗎?解釋為什麼是或者為什麼不是。如果高速緩存是16路組相聯高速緩存又會怎樣?

2.7 考慮一個寫回、雙路組相聯高速緩存,它有4096行,每行16位元組。應該将哪幾位用于雜湊演算法?為什麼?需要行的标記部分中的多少位來保持位址(假定使用32位位址和随機替換政策)?在标記中為位址使用最少的位數同儲存全部32位位址相比,高速緩存所需的位數節省了百分之多少?

2.8 有一個7路組相聯高速緩存,每行256位元組,總共512組,應該使用什麼樣的雜湊演算法?

2.9 考慮下面對直接映射、寫直通高速緩存的組織結構的兩種選擇。兩者都儲存2048位元組(2 kb)的資料(不包括标記和控制位)。一種組織結構是使用4位元組的行,另一種使用32位元組的行。每一種選擇中,包括資料、标記和控制位在内,高速緩存總共需要多少位?讨論在兩種方案之間進行選擇時,應該注意的有關硬體成本和性能的折中考慮。假定系統使用32位的位址。

2.10 考慮這樣一種環境,其中經常運作文本處理程式。這些程式的特征是它們經常要把字元串從一個地方複制到另一個地方,并且在緩沖區内産生字元串。在這樣的環境中最好是使用寫回還是寫直通高速緩存機制?應該使用寫配置設定嗎?闡述理由。

2.11 描述下面一段代碼的高速緩存局部性。系統使用獨立的指令和資料高速緩存,兩者均為8 kb雙路組相聯高速緩存,每行16位元組。資料高速緩存使用帶有寫配置設定功能的寫回政策(假定int類型是32位的)。如果行的大小增加到256位元組,會發生什麼樣的情況?

2.12 一個系統采用雙路組相聯高速緩存,每行8位元組,總共16行。高速緩存使用帶有寫配置設定功能的寫回政策以及lru替換政策。假定高速緩存内的所有行在初始時都是無效的。主存儲器包含以下資料:

位址    資料

01230    33

01234    44

01270    7

01274    8

02270    67

02274    42

03270    43

03274    46

03650    100

03654    200

06730    120

06734    210

08670    10

08674    20

08600    64

08640    76

09830    333

09834    355

接着出現了下面的存儲器引用(每次引用一個完整的字):

從01234載入

把5儲存到03650

從08670載入

從08674載入

從01274載入

把99儲存到09834

把12儲存到02270

從01230載入

從06730載入

從03654載入

把37儲存到03654

繪制類似于圖2-11的圖,顯示出上面列出的存儲器引用完成後的高速緩存内容。包括每行修改位的狀态,此外要顯示出主存儲器最終的内容。

2.13 一個程式通過每次将一個字儲存到存儲器連續的位址中來使存儲器清零。觀察一個系統,它采用帶有寫配置設定的寫回高速緩存,在一開始被清零的存儲器塊并沒有被高速緩存起來的時候,該系統會發生什麼樣的情況?假定行的大小比一個字大,第一次把資料儲存到每一行中的時候會造成一次缺失,要從主存儲器讀取該行的内容。随後,程式把零儲存到高速緩存行中,替換掉從主存儲器讀取的老資料。是以,讀取高速緩存行是對存儲器帶寬的一種浪費,因為cpu從來不會讀取這些資料。假定要被清零的存儲器塊的起始位址始終和高速緩存行的起始位置相對應,要被清除的存儲量是高速緩存行大小的倍數,那麼請推薦一種特殊用途的高速緩存操作,比如一條新指令,進而讓存儲器的填零操作效率更高。

繼續閱讀