看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《serflygod (serflygod)》之銘言: : 對於虛擬記憶體的一些題目常不太會寫 : 像這題的第一題 : http://i215.photobucket.com/albums/cc91/serflygod/04069.jpg
: http://i215.photobucket.com/albums/cc91/serflygod/04070.jpg
: 每一個欄位的bit數我大致算出來了(就是不確定對不對而已) : 但是我搞不太清楚page table在圖上的哪裡Q_Q 這一題其實沒給圖就可以算出來了…page table在左下角 (1) 一個分頁為2^14 KB,所以virtual number有26bit、physical number有 18bits,又分頁表為直接對映,所以有2^26個entries,每一個entry都記載著 physical number,故大小為2^26 * 18 bits (2) byte offset為4bit(一個block有2^16個byte) 再來因為一個cache有4K個blocks,且他是用4-way set, 故index為2^12/2^2=2^10(即算set的數量),其餘就都是tag bits tag= 32 - 4 - 10 = 18 bits 4K*18 : 另一題 : http://i215.photobucket.com/albums/cc91/serflygod/04071.jpg
: 除了8 segment這個值很確定以外 : 其他值都是看解答看很久才看懂 : 但過一陣子看又看不懂了@@ : 想請問的是 : 白算盤有哪裡對這類問題比較詳細的解釋? 白算盤對segmentation沒有太多的著墨,我記得是只放在Elaboration 不過他的練習題是有相關的題目就是了。 這題是先分頁後,再分段,所以最外層是分段, 碰到題目時,也得先解分段的部份才能解分頁。 首先他有一個STBR暫存器作為基底負責指向分段表, 再利用一個d作為分段表的index,再來是分段表可容 納8個分段,所以s為 3 (2^3=8) 取得了分段表的資訊(segment length及page table base) segment length用來檢查是否有讀取到非法計憶體。 page table base則是拿來指向分頁表的基底。 再來就是處理分頁了: 一個分段最多容納了2^20 byte,又一個分頁大小為2^12byte 所以一個分頁最多有2^8(2^20/2^12)個分頁,故p為8 因為他支援最多2^26byte,所以最多可分為2^14個分頁 f=14 (不必算valid bit) 再來是q 一個分頁有 q=2^12/2^2=2^10 s=3 d=18 p=8 f=14 q=10 : 順便麻煩高手解答一下第一題 : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.187.85
privatewind:對了也只能分頁再分段XD 09/25 07:33
※ 編輯: privatewind 來自: 59.126.187.85 (09/25 08:15)
serflygod:感謝詳細的解釋,我思考一下 09/25 17:09
serflygod:有比較理解了,感謝你 09/25 17:23