主存儲器與CPU的連接
主存儲器(簡化結構)
主存簡單模型
連接原理
3類
數據總線、地址總線、控制總線
從存儲器中讀出一個信息字:
- 首先CPU把這個信息字的地址送到MAR
- 然后經過地址總線到主存
- 在通過控制總線發出讀命令
- 主存接到讀命令后,就知道把這個地址的數據讀出
- 根據CPU決定將數據送到哪,通過數據總線
寫一個數據到主存:
- CPU要把信息字所在的主存單元的地址經過MAR送到地址總線
- 然后在把這個信息字送到MDR
- 然后向主存發送一個寫命令
- 主存收到寫命令后
- 把數據總線上的信息寫到相應地址線指出的儲存單元中
主存地址單元分配(比較重要)
主存地址分配
總容量1KB
按字節尋址:1K個單元,每個單元1B,1K=1024,十根地址線
按字尋址:256個單元,每個單元4B,高位看成組號,后面跟兩位
按半子尋址:512個單元,每個單元2B
按雙字尋址:128個單元,每個單元8B
如何存放一個字?如12345678H
大端方式:高位字(12)節作為字地址
小端方式:低位字(78)節做為字地址
主存儲容量的擴展
由於單個芯片的容量總是有限的。
需要在字和位兩個方面擴充。
位擴展法,字擴展法,字位擴展法。
位擴展
這個是8K*1位,即13根地址線和1位數據線。
CPU要求:8位的數據線,16位的地址線
如何進行連接?
CS是高電平有效,所以要選擇到他要給個1
這樣顯然是不夠的,cpu有8位的數據線,而存儲芯片只有1位,不滿足存儲容量的要求。
在加一塊芯片
8塊芯片進行擴展
相當於並聯在一起。
一個8K*8位的存儲器。
字擴展
存儲芯片是8K*8位的,CPU也是8位的數據線
會不知道哪一個數據
使用片選線來進行控制。
但是還是會遇到同樣的問題,如果是11的話,兩個的數據都會被操作了。
線選法:A14 A13只能為01或10,n條線->n個選片信號
地址:01x xxxx xxxx xxxx、10x xxxx xxxx xxxx
改進:用一個非門
地址1x xxxx xxxx xxxx、0x xxxx xxxx xxxx
譯碼片選法:n條線->2^n個選片信號
譯碼器。
譯碼器
高電平有效,1
低電平有效,0
3位地址選8塊芯片。
注意圈圈。
使能端,EN,還有可能有多個使能端。使譯碼器工作。
將譯碼器利用到字擴展
00,01,10,11
對比
字位同時拓展
例題
系統程序區用ROM,用戶程序區用RAM
1.確認地址線、數據線、選擇存儲芯片
數據線:CPU數據線8根 -> 存儲器位數應擴展為8位
回顧