2012-01-22 108 views
1

在32位系統中,邏輯地址被分爲| 10 | 10 | 12 |,頁面目錄偏移量,頁面偏移量和頁面偏移量。由於在x86系統中的頁面是4KBytes,並且爲了表示4K條目,所以需要log2(4K)= 12位,因此需要12位。因此剩餘位數=(32-12)= 20。32位系統邏輯地址

假設我的理解是正確的,我的問題是10和10從哪裏來的? 爲什麼不是8和12還是別的?

+0

並非所有的32位處理器都使用10-10-12,所以答案是「沒有理由必須是10-10-12」。 –

+0

是的,如果頁面大小不同,那麼劃分也是如此。但是在上面的例子中,10和10是隨機選擇的,還是背後有邏輯? – rgamber

回答

1

這裏的一致性允許更小和更簡單的代碼(以及可能的硬件)。

如果仔細查看頁面目錄和頁表項的格式,您會注意到它們在x86上幾乎完全相同。

現在,如果您將PDEs中的一個指向PD,則訪問所有PDEsPTEs將變得無足輕重。我不知道在i80386設計與否的時候是否有這樣的計劃,但它確實派上用場。

+0

感謝您的解釋! – rgamber