按字定址和按位元組定址以及記憶體編碼、地址匯流排與資料匯流排的理解
阿新 • • 發佈:2019-01-09
記憶體編制和關於按字定址和按位元組定址的理解:
在很多書上都看到32位地址線的定址空間是4G,我的理解是32位不就是32bit嗎,2^32Bit=4GB/8=0.5GB,為什麼會是4G呢?這裡其實設計到一個概念,就是記憶體編址的問題。
32位地址線的定址範圍為什麼是4G?
2^30B = 1GB
2^32B = 4GB
這裡的計算方法,預設計算機是【記憶體地址是以位元組為單位的,一個記憶體單元的大小就是1B】
若計算機中記憶體地址是以字為單位的,4G記憶體,對應的定址範圍是多少?
4GB=2^32B
1字= 32bit = 4B
2^32/ 4B = 2^30
所以,若以字為定址單位,則至少需要30跟地址線才能完成對4GB空間的編碼。
綜上,計算機中記憶體地址是以位元組為單位的,一個記憶體單元大小就是1KB。
資料匯流排與地址匯流排:
地址匯流排的位數決定CPU的定址範圍;資料匯流排的位數決定CPU單次能交換的資訊總量。匯流排的速度決定CPU和外設互換資訊的速度。
CPU的位數指的是資料匯流排的位數,而決定最大支援記憶體的則是地址匯流排位數。
一般來說,資料匯流排與地址匯流排的位數是相同的(也有不同的,比喻51微控制器)。
32位作業系統,其地址匯流排與資料匯流排位數均為32,若其記憶體為4G,2^32B=4G,則剛好4G記憶體都可以定址得到,記憶體可以充分被利用。