邏輯地址轉(zhuǎn)換物理地址公式
邏輯地址轉(zhuǎn)換物理地址公式
物理地址是明確的、最終用在總線上的編號(hào)。那么邏輯地址轉(zhuǎn)物理地址怎么轉(zhuǎn)?學(xué)習(xí)啦小編為大家介紹邏輯地址轉(zhuǎn)物理地址的解決方法。希望大家喜歡。
邏輯地址轉(zhuǎn)換物理地址公式參考如下
1. 物理地址和邏輯地址
物理地址:加載到內(nèi)存地址寄存器中的地址,內(nèi)存單元的真正地址。在前端總線上傳輸?shù)膬?nèi)存地址都是物理內(nèi)存地址,編號(hào)從0開始一直到可用物理內(nèi)存的最高端。這些數(shù)字被北橋(Nortbridge chip)映射到實(shí)際的內(nèi)存條上。物理地址是明確的、最終用在總線上的編號(hào),不必轉(zhuǎn)換,不必分頁,也沒有特權(quán)級(jí)檢查(no translation, no paging, no privilege checks)。
邏輯地址:CPU所生成的地址。邏輯地址是內(nèi)部和編程使用的、并不唯一。例如,你在進(jìn)行C語言指針編程中,可以讀取指針變量本身值(&操作),實(shí)際上這個(gè)值就是邏輯地址,它是相對(duì)于你當(dāng)前進(jìn)程數(shù)據(jù)段的地址(偏移地址),不和絕對(duì)物理地址相干。
(具體步驟 共三步)
1.確定虛擬地址(物理地址)的有效位
例如:假設(shè)頁面大小1KB,共32頁。(頁面:邏輯地址 頁框:物理地址)
由32(KB)=32×1024(B) 即等于32×1024 字節(jié)
二進(jìn)制用多少位能有效表示這么多字節(jié)呢——答是:15位 因?yàn)?2×1024=2^5×2^10=2^15
2.再次確定邏輯地址頁面位數(shù) 你應(yīng)該知道:邏輯地址=頁號(hào)+頁面
還是以上假設(shè),那么頁面大小為1KB=1024字節(jié) 同樣的方法計(jì)算出表示位數(shù):10位
如果給你邏輯地址:0000 1111 1000 0000
那么由:011+11100000000(相當(dāng)于 頁號(hào)+頁面(10位))推得出頁號(hào)011=3
3.根據(jù)頁號(hào)找出對(duì)應(yīng)的頁框號(hào)
由 物理地址=頁框號(hào)×頁塊大小(頁塊大小是等于頁面大小的)+頁內(nèi)位移(即頁面邏輯地址)
根據(jù)上面 物理地址=頁框號(hào)×1024B + 1110000000 ( 這里的相加是指位置上而言)
例如:110+110=110110(即高地址+低地址)
提問:在一分頁存儲(chǔ)管理系統(tǒng)中,邏輯地址長(zhǎng)度為16位,頁面大小為4096B,現(xiàn)有一邏輯地址為2F6AH,且第0、1、2頁依次存放在物理塊5、10、11中,問相應(yīng)的物理地址為多少?
答:4096B=2^12B
16位尋址一共2^16B
分頁存儲(chǔ)。共分的頁: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頁的范圍對(duì)應(yīng)物理塊11
所以物理地址為:
2F6AH - 2000H + B000H = F6AH + B000H= BF6AH
看過“ 邏輯地址轉(zhuǎn)換物理地址公式 ”的人還看了: