1. 程式人生 > >按字定址和按位元組定址以及記憶體編碼、地址匯流排與資料匯流排的理解

按字定址和按位元組定址以及記憶體編碼、地址匯流排與資料匯流排的理解

記憶體編制和關於按字定址和按位元組定址的理解:

在很多書上都看到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記憶體都可以定址得到,記憶體可以充分被利用。