某計算機主存儲器的電流以下圖所示,試問:1)ROM和RAM芯片的規格是多少?(用?K*?位表示)2)ROM和RAM的容量各是多少?(用KB表示)3)ROM和RAM的地址範圍是多少?))

1. 題目講解

在這裏插入圖片描述

1.1 地址線

這道題目主要是看地址線,地址線從 A 0 A 14 A_0到A_{14} ,也就是說有15條地址線,不要把它想象得太複雜,地址線其實就是電線,它能經過電流的高低不一樣來表示0和1這兩個狀態(即高電平和低電平),當你有一條電線的時候,你能夠表示2個狀態(01),當你擁有兩條電線的時候,你能夠表示4個狀態(00,01,10,11),以此類推html

換成地址線的話,也就是一條地址線能夠選擇2個地址,2條地址線能夠選擇4個地址……當你有13條電線的時候,你能夠選擇 2 13 2^{13} 個地址,記住這個結論,後面須要用到web

那麼,咱們再來看地址線 A 0 A 12 A_0到A_{12} ,他們同時鏈接到一個ROM、四個RAM,當 A 0 A 12 A_0到A_{12} 地址線工做的時候,(注意,這裏的「工做」是說他們有電流流過的時候,ROM和四個RAM是可以同時接收到地址線的電流,但5個存儲器要同時工做是很混亂的,這個時候咱們就須要用到譯碼器app

1.2 譯碼器

在這裏插入圖片描述

譯碼器見名會意,就是翻譯解析的意思,上圖這個74LS139譯碼器,鏈接兩條地址線 A 13 A_{13} A 14 A_{14} ,咱們知道2條地址線能夠表示4個地址,那麼它的四個輸出端對應的就是4個不一樣的地址: Y 0 Y_0 00 Y 1 Y_1 01 Y 2 Y_2 10 Y 3 Y_3 11
假如此時 A 13 A 14 A_{13}A_{14} 00,選擇輸出端就是 Y 0 Y_0 ,那麼 Y 0 Y_0 這條電線就有高電平輸出到ROM,ROM的 C S \overline{CS} 片選信號引腳收到高電平後,它就可以使ROM工做了,而此時其餘四個RAM是不工做的
在這裏插入圖片描述
兩條地址線,一個譯碼器就可以使咱們的各個存儲器有序的工做了。svg

1.3 鎖存器

接着,咱們須要進入到ROM和RAM的內部了,前面經過 A 0 A 14 A_0到A_{14} 咱們能夠選擇到某一存儲器的某一地址,但咱們還不太清楚選擇的這個地址裏面有什麼東西,那就來講個結論,這個地址其實就是一個鎖存器spa

再次強調下,ROM和RAM都是存儲器,內部都是用鎖存器來鎖存數據的翻譯

你能夠去仔細研究一下鎖存器,但在這裏咱們只須要知道鎖存器的功能就行了,鎖存器是可以將數據鎖存起來的,這麼些個數據其實也就是0或者1,也就是說,鎖存器可以保存01code

說一下這個概念,1位就是說這一個位置能夠存放0或者1,2位就是說着有兩個位置能夠存放01orm

一個鎖存器,確定不止鎖存一個0或者1,也就是不止鎖存1位,能夠是4位、8位等等xml

1.4 總結

在這裏插入圖片描述
那麼這整個電路的工做就是這樣的,以讀操做爲例(即CPU的 R / W R/\overline{W} 引腳爲高電平):
A 0 A 14 A_0到A_{14} 工做時,選擇某一存儲器的某一地址,告訴這個地址上的鎖存器,「你要工做了,把你的鎖存的數據,輸出到數據總線上」htm

這裏的數據總線就是圖上的 D 0 D 7 D_0到D_7

2. 答案解析

2.1 第一小題

對於第一小題,?K是問這一存儲器有多少個地址,?位是問這一存儲器地址上的鎖存器鎖存的位數。
每一個ROM/RAM存儲器鏈接的都是13條地址線,13條地址線就是 2 13 = 2 13 2 10 = 2 3 K 2^{13}=\cfrac{2^{13}}{2^{10}}=2^3K

這裏 1 K = 2 10 1K=2^{10}

ROM鏈接的數據總線是 D 0 D 7 D_0到D_7 ,說明它的鎖存器是8位
一個RAM鏈接的數據總線是 D 0 D 3 D_0到D_3 或者 D 4 D 7 D_4到D_7 ,說明它的鎖存器是4位
答案就呼之欲出了,ROM芯片的規格是 8 K × 8 8K\times8位 ,ROM芯片的規格是 8 K × 4 8K\times4位

2.2 第二小題

這裏有一個坑,答案是要用KB表示,咱們知道1B=8bit,也就1B等於8位,因此咱們須要知道ROM或者RAM能夠存儲多少個8位的數據量
ROM比較簡單,就一個ROM,且它的鎖存器是8位的,從地址線就能夠知道共有 2 13 2^{13} 個鎖存器,也就是說ROM可以存儲 2 13 2^{13} 個8位的數據量,轉換成 K B KB 就是 8 K B 8KB
而RAM就稍微複雜點,它是由四個RAM兩兩間相互關聯組成的,咱們先來單看其中兩個RAM

在這裏插入圖片描述
這兩個RAM裏的鎖存器是4位的,右邊的RAM存放低4位,左邊RAM存放高4位,在輸出的時候就可以合併輸出一個8位的數據了
換個角度看,它本質上無非就是將一個8位的數據拆成兩半分別存儲,因此,咱們就可以知道這兩個RAM就至關於一個ROM,一樣是 8 K B 8KB ,那還有另外2個RAM,總共就是 16 K B 16KB

至於爲何RAM不和ROM同樣,非要將一個8位的數據拆成兩半分別存儲超出個人知識範圍,留個坑,待研究

2.3 第三小題

第3小題就很簡單了
共有15條地址線,地址範圍也就是:
000    0000    0000    0000 111    1111    1111    1111 從000\; 0000\; 0000\; 0000 \\ 到111\; 1111\; 1111\; 1111
首先經過譯碼器,當 A 14 A 13 A_{14}A_{13} 爲00時,經過 Y 0 Y_0 選擇ROM,那麼最高兩位就是00,範圍就是:
000    0000    0000    0000 001    1111    1111    1111 從000\; 0000\; 0000\; 0000 \\ 到001\; 1111\; 1111\; 1111
這麼長的數據寫起來挺費勁的,通常換算成16進制,也就是從0H1FFFH
剩餘的RAM也好求了,最高兩位是01到10,範圍就是:
010    0000    0000    0000 101    1111    1111    1111 從010\; 0000\; 0000\; 0000 \\ 到101\; 1111\; 1111\; 1111
換算成16進制也就是2000H5FFFFH