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