1. 程式人生 > >地址匯流排,字長,記憶體容量,定址範圍 之間的計算

地址匯流排,字長,記憶體容量,定址範圍 之間的計算

處理機字長是指處理機能同時處理(或運算)的位數,即同時處理多少位(bit)資料。比如Intel Pentium 4處理器字長為32位,它能同時處理32位的資料,也即它的資料匯流排為32位。以前的處理器比如8086,則為16位處理器,現在新興的64位處理器,它的資料吞吐能力更強,即能同時對64位資料進行運算。處理器的字長越大,說明它的運算能力越強。如果講處理器的定址範圍,則要看處理器的地址匯流排的位數,而不是它的字長!這個要明白!比如Intel Pentium 4處理器的資料匯流排為32位,地址匯流排也是32位。8086的資料匯流排為16位,地址匯流排為20位。新興的64位處理器的資料匯流排為64位,地址匯流排大部分是32位。這個清楚之後,再看地址匯流排與定址範圍的關係。儲存單元是以位元組(byte)為單位,N根地址匯流排能訪問2的N次方個儲存單元。於是有32位地址匯流排可以訪問2的32次方個儲存單元,即4GB。 8086處理器字長是16位,它的地址匯流排是20位,所以能訪問2的20次方個儲存單元,即1MB。 另外一點需要注意的就是,如果有些題目說:按“字”定址,就說明是儲存單元大小為字長的位數,按“位元組”定址,說明儲存單元式位元組的大小 (個人理解,沒有考證)

下面通過舉幾個例子,來說明這些關係

1、某計算機字長32位,儲存容量8MB。按字編址,其定址範圍為(0~2M)
計算步驟:8MB位元組=8*1024*1024*8位。所以8MB/32位=2M.

2、某計算機字長32位,其儲存容量為4MB,若按半字編址,它的定址範圍是(0-2M)
計算步驟:若按半字就是16位了 4MB=4*1024*1024*8位,所以4MB/16 = 2M;

3、字長為32位.儲存器容量為64KB.按字編址的定址範圍是多少
計算步驟:64K位元組=64*1024*8位. 所以64KB/32位=(64*1024*8)/32=16*1024=16K 故定址範圍為: 0-16K

4、某機字長32位,儲存容量1MB,若按字編址,它的定址範圍是什麼?


解釋:容量1M=2*1024*1024 位      一個字長是32 位
所以,定址範圍是二者相除=256K

5、對於儲存器的容量擴充套件,有位擴充套件,字擴充套件,字位擴充套件三種形式。對於字位擴充套件,一個儲存器的容量為M*N位,若使用L*K位儲存器晶片,那麼,這個儲存器共需(M*N)/(L*K)個儲存器晶片。

下面分析一下字位擴充套件的習題: 設有一個具有14位地址和8位字長的儲存器,問該儲存器容量有多大?如果儲存器由 1K*1靜態儲存器組成,需多少晶片?多少位地址作晶片選擇?

分析:位擴充套件指的是用多個儲存器對字長進行擴充。本題中所用的儲存器晶片字長是1位,要擴充套件到8位,就得用8片。原題中說, “儲存器由 1K*1靜態儲存器組成”,其中,1K指的是儲存單元個數,它決定地址的位數,因為2的10次方是1K,所以它用10根地址線,4位地址線用來作晶片選擇。

字擴充套件指的是增加儲存器中字的數量。

解:該儲存器的地址線有14位,它的可定址範圍是:2^14=2^4*2^10=16K,因為它是8位字長,所以可儲存16K個位元組的資訊,即16K*8位;所需晶片總數為(16K*8)/(1K*1)=16*8=128個晶片; 晶片選擇線為14-10=4。