2012-12-14 90 views
1

所以我真的不明白這一點。任何人都可以解釋如何解決這些問題嗎?翻譯虛擬和實體地址

假設我們有一個帶有基於分頁的內存系統的32位CPU。一個頁面的大小是4KB(2^12)。現在CPU產生一個虛擬地址0x0000AAA

1.)這個虛擬地址的虛擬頁號是多少?什麼是頁面偏移量? 2)使用下面的頁表,將上述虛擬地址轉換爲物理地址 - 以十六進制表示。頁面表顯示前5個條目。

0 - 0xAAAAA 1 - 0xBBBBB 2 - 0xCCCCC 3 - 0xDDDDD 4 - 0xEEEEE

+0

這是功課嗎?你有什麼嘗試? –

+0

它不是作業考試複習。我知道答案,我只是不明白它 –

回答

2

如果一頁的大小是4KB(= 4096個字節),這就意味着從0到所有地址,包括4095(0x00000fff)在第一頁。

0x0000aaa小於0x00000fff,所以這仍然在第一頁(頁面#0)。

要獲取與虛擬地址0x00000aaa相對應的物理地址,請查找頁面#0的前綴,即0xAAAAA。

+0

謝謝你,清楚的解釋。所以只是爲了確保說給出的地址應該是0x00001AAA。那意味着它會在第二頁?所以我會去表中找到第二頁,在這個例子中它是0xBBBBB? –

+0

正確。在第二個例子中,物理地址最終爲0xBBBBBAAA。 – IvoC

1

由於頁面大小爲4 KB,這意味着頁面有4K地址。因此我們需要12位來訪問頁面中的每個地址。
因此,頁面偏移量= 12位。
由於系統是32位,因此20位將用作頁碼。
由於頁面大小等於幀大小,因此幀偏移量= 12位。
現在,使用頁表來使用獲取物理地址。