如果你對其他計算機組成原理的知識感興趣,請考慮閱讀我的專欄
須知
本文僅作學習筆記使用,僅在CSDN網站發佈,如果在其他網站發現,均爲侵權行爲,請舉報。作者:小王在努力。
實驗要求
基本要求
-
理解計算機存儲子系統
-
使用功能等效電路設計並驗證靜態隨機訪問存儲器芯片
-
設計並驗證計算機內存的組成與功能(含ROM和RAM)
擴展要求
-
分別用IO內存統一和獨立編址增加4K的IO地址(擴展)
-
實現CPU接口DR寄存器(擴展)
思考問題
思考計算機系統IO和存儲的工作效率怎樣最大化
實驗步驟
一、理論分析
基本要求:由於實驗用驗證靜態隨機訪問存儲器芯片,所以選用6116來作爲存儲器芯片,我們用74LS373來充當MAR以及MDR,以此來設計實驗。
擴展要求:由於要實現IO內存的統一編址和獨立編址,要求爲4K,獨立編址:採用兩個芯片,6116充當主存單元,6264充當IO地址。統一編址:採用一個6264充當主存芯片,將主存和IO進行統一編址。其中6116的功能表:
/CE | /OE | /WE | 方式 | D0-D7 |
---|---|---|---|---|
H | X | X | 未選中 | 高阻 |
L | L | H | 讀 | Dout |
L | H | L | 寫 | Din |
L | L | L | 寫 | Din |
二、實現方法
- 基本要求
由於實驗用驗證靜態隨機訪問存儲器芯片,其實本質上就是模擬在主存中存儲數據的過程,而在主存中存儲數據分爲兩大步:1.選中對應地址的主存單元。2.將數據寫入主存中。
現在將這兩步細分,首先給出地址,地址通過高低電平給出,打開74LS245的開關,將地址運送到總線上,此時,由編號爲U3的74LS373來充當MAR(也就是地址寄存器,保存地址用的),我們將總線的地址寫入到MAR中,然後讓其讀出到模擬主存的6116的地址端。此時已經完成了第一大步,選中對應地址的主存單元。然後我們還是通過高低電平給出想要的存儲的數據,打開74LS245,將要保存的數據放到總線上,然後打開編號爲U5的74LS245的開關,讓保存的數據從總線上通過U5到達模擬主存的6116的數據端,此時我們使用6116的寫入功能,就可以將要保存的數據保存在之前選中的地址單元中 了。
由於擴展要求實現MDR(存儲數據的寄存器)的功能,所以我們用U6來充當MDR,只需將6116的讀出的數據保存在MDR中,並輸出即可。
- 擴展要求:
獨立編址:
將主存和IO分開進行編址,核心爲編制位數不同,用6116的8位地址作爲主存地址,範圍爲0000 0000-1111 1111,用6264的12位地址作爲4K的IO地址,範圍爲0000 0000 0000-1111 1111 1111,其中IO開關做片選信號,高電平時,代表輸入的地址爲12位,打開U474Ls245(使得後四位地址也能輸入到總線上),關閉主存6116,選中6264;低電平時,代表輸入的地址爲8位,關閉U474LS245(使得只能有8位地址輸入到總線上),選中6116。
統一編址:
將主存和IO設備進行統一編址,總共用到了13位地址線,其中IO的存儲地址範圍爲:0
0000 0000 0000-0 1111 1111 1111,而,主存的存儲範圍爲:1 0000 0000 0000-1 1111 1111 1111
三、實驗結果分析
我們在低位爲0000 0110的主存單元內寫入一個英文字母W,W的ASCII爲0101 0111。
1. MAR寫入地址:
2. 給6116對應地址寫入W的ASCII值(0101 0111)
3. 讀出6116的數據(W的ASCII)並寫入到MDR中:
4. 讀出MDR中存儲的數據W的ASCII:
獨立編址,給出地址1111 0110,位數爲8位,爲主存地址,選中6116的主存單元:
獨立編址,給出地址1111 0000 0110,位數爲12位,爲IO端口地址,選中6264的IO端口地址:
統一編址,選中地址爲0 0000 0000 0110的IO端口地址:
統一編址,選中地址爲1 0000 0000 0110 的主存地址:
四、思考問題
可以用高速緩衝機制,多體交叉,多通道技術來提高效率。
五、問題及解決辦法
問題:如何在proteus裏面尋找SRAM、DRAM、ROM等存儲器原件。
解決辦法:
1. 在選中元器件中,選中Memory ICs,查看其子類別。
2.子類中含有ROM、SRAM、DRAM等。
3.其中的元器件不一定都能用,標識爲:Schematic Model表示能夠使用,標識爲No Simulator Model則表示不能使用(別問爲啥要寫這個,問就是博主拿了一個不能用的測試了半天,報錯了,半天還不知道哪裏錯了〒▽〒)。
六、結論
通過此次學習,我瞭解了6管SRAM的結構的同時,也瞭解的計算機內部存儲器的工作過程,學會了如何在元器件庫中尋找ROM、DRAM、SRAM等元器件,使用6116來模擬主存進行存儲數據,瞭解了IO的獨立編址和統一編址,並瞭解瞭如何提高IO和存儲器的工作效率。
後話
- 首先給大家說一下,博主經常在線,如果有什麼問題或者想法,可以在下方評論,我會積極反饋的。
- 其次還是要請大家能夠多多指出問題,我也會在評論區等候大家!
.