衆所周知(並沒有) ram芯片的尋址範圍與譯碼器有關,這裏使用兩個題目來簡要講解2-4譯碼器和3-8譯碼器的存儲器子系統中ram芯片地址範圍的計算。
不想看解析只想看答案的同學,答案在最下方 還是看一下解析吧畢竟 我寫得這麼辛苦 會了解析 就啥情況都會了鴨 你說是吧ヾ(◍°∇°◍)ノ゙
前導
地址範圍的計算永遠看地址線,永遠看地址線,永遠看地址線。
這個芯片的地址範圍計算跟CPU尋址範圍計算不同的地方在於,有幾根高位地址線可能是用於選擇哪一組的(控制片選),而不是直接拿所有的n根地址線計算 作爲與地址範圍
具體哪幾根控制片選,由譯碼器決定
題目一:2-4譯碼器
有一存儲器子系統連接圖如圖1所示,系統有16條地址線A15-A0,使用2-4譯碼器,寫出每個存儲器的地址範圍:(使用16進製表示)
解析
如圖所示,一共0~15 16根地址線,即其本身尋址範圍是 。
接下來分別計算每個芯片的尋址範圍。
2-4譯碼器用A15、A14兩個引腳來控制芯片的選擇。如上圖標示,從左到右的四個芯片分別於 A14=0,A15=0;A14=0,A15=1;A14=1,A15=0;A14=1,A15=1 這四種情況被選上(A11往前都是直接控制地址的,省略不寫)
芯片組 | |
---|---|
第一片 | 0 0 |
第二片 | 0 1 |
第三片 | 1 0 |
第四片 | 1 1 |
那麼剩下的14根地址線全爲1的時候,就是每個芯片可尋址的空間大小啦: = 3FFFF
已知了每個芯片的可尋址範圍,又:首地址爲所有地址線均爲0即0,所以第一片芯片的尋址範圍是:0000 ~3FFFF。往後的每一個芯片,只要在其基礎上增加3FFFF 就可以啦
那麼就可以寫出四個芯片的尋址範圍了:
芯片 | 尋址範圍 | |
---|---|---|
第一片 | 0 0 | 0000 ~3FFF |
第二片 | 0 1 | 4000 ~7FFF |
第三片 | 1 0 | 8000 ~BFFF |
第四片 | 1 1 | C000 ~FFFF |
注意每片的尋址範圍是閉區間,所以進入下一片的時候地址還要額外+1哦(即第二片的尋址範圍是從4000開始),以及16進制加法8000 +4000 = C000。
題目二 3-8譯碼器
存儲器系統連接如下圖,使用74LS138,請分別寫出圖中四組芯片的地址分配範圍。
解析
首先我們來看一下3-8譯碼器,重點關注跟2-4譯碼器不一樣的地方:三個使能端。
這三個使能端的含義是,三個G全有效的時候,數字電路的真值表(綠表)才成立,才能夠激活ABC三者組合控制Y0到Y7的作用。注意是正邏輯,和是負邏輯(即要讓三者全有效,的輸入應爲1,而和的輸入應爲0)
瞭解了3-8譯碼器,看這個題就很容易了。首先我們使用ABC來控制Yn實現片選。所以必須保證三個使能端全部有效(值全爲1)。即:=1,=0,=1
注意上面連接的雖然是負邏輯,理應輸入0,但前面有一個負邏輯連線(那個小圈圈),所以負負得正啦!
確定了前面三條地址線的取值,接下來看連接ABC的、和。跟上面的2-4譯碼器相同,這三條地址線控制的是片選。也就是右邊四組存儲器。三條線可以控制 = 8 組,但我們只有四組,所以這條地址線的輸入應該恆爲0。
至此確認最高位4位恆定的取值:(0101)
剩下兩條、就跟上題的、一樣,二者的組合控制四組芯片
芯片組 | |
---|---|
第一組 | 0 0 |
第二組 | 0 1 |
第三組 | 1 0 |
第四組 | 1 1 |
那麼剩下的12根地址線全爲1的時候,就是每個芯片可尋址的空間大小啦: = 03FF
又:首地址爲 = A000 所以第一片芯片的尋址範圍是:A000 ~A3FF。往後的每一個芯片在其基礎上增加03FF
那麼就可以寫出四個芯片的尋址範圍了:
芯片組 | 尋址範圍 | |
---|---|---|
第一組 | 0 0 | A000 ~A3FF |
第二組 | 0 1 | A400 ~A7FF |
第三組 | 1 0 | A800 ~ABFF |
第四組 | 1 1 | AC00 ~AFFF |
同上題每片的尋址範圍是閉區間,所以進入下一片的時候地址還要額外+1哦(即第二片的尋址範圍是從A400開始)
答案
第一題
0000 ~3FFF
4000 ~7FFF
8000 ~BFFF
C000 ~FFFF
第二題
A000 ~A3FF
A400 ~A7FF
A800 ~ABFF
AC00 ~AFFF