邏輯地址轉換實體地址公式
實體地址是明確的、最終用在總線上的編號。那麼邏輯地址轉實體地址怎麼轉?小編為大家介紹邏輯地址轉實體地址的解決方法。希望大家喜歡。
參考如下
1. 實體地址和邏輯地址
實體地址:載入到記憶體地址暫存器中的地址,記憶體單元的真正地址。在前端總線上傳輸的記憶體地址都是實體記憶體地址,編號從0開始一直到可用實體記憶體的最高階。這些數字被北橋***Nortbridge chip***對映到實際的記憶體條上。實體地址是明確的、最終用在總線上的編號,不必轉換,不必分頁,也沒有特權級檢查***no translation, no paging, no privilege checks***。
邏輯地址:CPU所生成的地址。邏輯地址是內部和程式設計使用的、並不唯一。例如,你在進行C語言指標程式設計中,可以讀取指標變數本身值***&操作***,實際上這個值就是邏輯地址,它是相對於你當前程序資料段的地址***偏移地址***,不和絕對實體地址相干。
***具體步驟 共三步***
1.確定虛擬地址***實體地址***的有效位
例如:假設頁面大小1KB,共32頁。***頁面:邏輯地址 頁框:實體地址***
由32***KB***=32×1024***B*** 即等於32×1024 位元組
二進位制用多少位能有效表示這麼多位元組呢——答是:15位 因為32×1024=2^5×2^10=2^15
2.再次確定邏輯地址頁面位數 你應該知道:邏輯地址=頁號+頁面
還是以上假設,那麼頁面大小為1KB=1024位元組 同樣的方法計算出表示位數:10位
如果給你邏輯地址:0000 1111 1000 0000
那麼由:011+11100000000***相當於 頁號+頁面***10位******推得出頁號011=3
3.根據頁號找出對應的頁框號
由 實體地址=頁框號×頁塊大小***頁塊大小是等於頁面大小的***+頁內位移***即頁面邏輯地址***
根據上面 實體地址=頁框號×1024B + 1110000000 *** 這裡的相加是指位置上而言***
例如:110+110=110110***即高地址+低地址***
提問:在一分頁儲存管理系統中,邏輯地址長度為16位,頁面大小為4096B,現有一邏輯地址為2F6AH,且第0、1、2頁依次存放在物理塊5、10、11中,問相應的實體地址為多少?
答:4096B=2^12B
16位定址一共2^16B
分頁儲存。共分的頁:2^16/2^12=2^4=16 共分16頁。
第0頁的地址範圍 0 - FFFH
第1頁的地址範圍 1000H - 1FFFH
第2頁得地址範圍 2000H - 2FFFH
.....
第11頁 B000H - BFFFH
第15頁 F000H - FFFFH
2F6AH=10 1111 0110 1010 在2頁的範圍對應物理塊11
所以實體地址為:
2F6AH - 2000H + B000H = F6AH + B000H= BF6AH
邏輯地址轉實體地址