地址和地址譯碼器

地址和地址譯碼器

CPU輸出一個存儲器地址到地址總線上,這個地址怎樣才能選中一個存儲單元,這就是地址譯碼器要解決的問題。

地址譯碼器是這樣一種器件:輸入爲數字量(即地址),根據輸入的數字量在多個輸出端中選一個有效。打個比方:地址譯碼器就像電話系統,打電話時輸入電話號碼就好比地址,根據輸入的電話號碼在若干門電話中只有一門電話被選中。如下圖2.13。是一個3線---8線譯碼器,輸入信號爲3位數字量,3位數字量的變化範圍是000B~111B。(末尾的B表示二進制數),輸出爲8個輸出端。根據輸入量在8個輸出端中只能一個有效。該譯碼器的輸入輸出關係見下表2.2

 

                    譯碼器

 

表2.2 3線---8線譯碼器真值表

輸   入 

有效輸出端

C

B

A

0

0

0

Y0

0

0

1

Y1

0

1

0

Y2

0

1

1

Y3

1

0

0

Y4

1

0

1

Y5

1

1

0

Y6

1

1

1

Y7

由於存儲器單元數量很多,比如在8086系統中,地址線數爲20根,存儲器單元數達到1M,當地址譯碼器輸入線數爲20根,輸出線數便達到1048576根,採用一級譯碼難度很大。實際組成存儲器系統時,通常採用多級譯碼的方法實現,把若干存儲單元和芯片內部譯碼器集成在存儲器芯片中,然後用多片存儲器芯片與譯碼器組成存儲器系統。

如右圖2.14所示的存儲器芯片內部有64K個8位的存儲單元,即存儲容量爲64K×8位,外部引腿有16根地址線,8根數據線,讀/寫控制線,片選線等。芯片用16位地址線通過內部譯碼器選擇存儲單元。用16片這種存儲器芯片可以組成1MB的存儲器系統。

每一個存儲器芯片內部的存儲單元都有2個地址,一個是芯片內部地址,一個是系統地址。內部地址是與外部連線無關的,如右圖2.14的芯片,每一個芯片內部地址範圍都是從0000H~FFFFH。而系統地址取決於外部連線。

圖2.14 64K×8位的存儲器芯片

如下圖2.15所示,系統地址線接地址譯碼器的片選,接到地址譯碼器的3個輸入端。地址譯碼器的輸出端接儲器芯片IC1的片選。

圖2.15 芯片的系統地址範圍

我們可以計算該芯片的系統地址範圍如下:系統地址線=0選中地址譯碼器,而爲000選中端有效從而選中IC1,地址線用於選擇IC1內部單元。因此IC1佔用的最低的系統地址爲00000H,如下圖2.16所示,而佔用的最高址爲0FFFFH,如下圖2.17所示:

圖2.16 IC1的最低地址

圖2.17 IC1的最高地址

如果芯片IC1的片選輸入端接到地址譯碼器的輸出端,三根地址線爲001選中端有效,則IC1佔用的系統地址爲10000H~1FFFFH。

在上述計算中,要區分片內地址和片外地址。比如某種芯片有10根地址線,則該芯片存儲單元的片內地址是從0~-1=3FFH。而片外地址除與芯片地址線的數量有關,還與芯片連接到系統地址總線的方法有關。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章