計算機里存儲數據主要有這幾個部件:CPU里的寄存器和緩存、內存(內存條)和磁盤,這里我們主要簡單講下寄存器和內存條的基礎實現電路。
在前面的文章《CPU怎么計算1+1----CPU計算的電路基礎》我們就講到了晶體管怎么表示0,1,那么自然而然我們就會想到,用晶體管來做存儲器,但需要多個晶體管來組成門電路,來實現數據的讀/寫和存儲。基礎的與門/非門/或門/異或門在該文里也講到,但在該文我們只是講了用這些基礎門電路組成了加法器電路從而實現加法運算,那么數據的存儲,應該怎么實現呢?
那么存儲器應該如何工作呢,首先我們要決定數據存在哪兒,就是存儲的地址,其次就是數據要穩定的存在,不能受其他操作的影響。好,在講下,通過門電路,我們可以實現計算機內的邏輯單元(加法器之類的運算單元也是邏輯單元),邏輯單元可以分為兩類:一類不可存儲信息的(組合邏輯單元);另一類可存儲信息(存儲單元)。我們分別介紹和內存相關的幾個結構。
組合邏輯
包括各種運算邏輯和控制邏輯,而在存儲這塊兒,我們需要的是地址選擇控制單元,也可以叫地址譯碼器,它的基本電路如下
依據輸入端的二進制(地址值),在輸出端選中某一條電路,比如,A=0,B=0,則選中最上面的那條線,A=1,B=1,則選中最下面的那條線
還有就是讀出數據的多路復用器:根據控制信號,只選擇輸入端的某根電路,把這根線輸出到輸出端
如圖,若S1=0,S2=0,則A線路被選中,A的值即是輸出值。
存儲邏輯單元
可存儲信息的結構:可用於保存二進制。
可保存1bit數據的鎖存器
WE=0時(不可讀寫),S和R必為1,則電路穩定,out端可保持原來的值;WE=1時(可讀寫),則根據D的值,out端變為對應的值。然后恢復WE=0則保存起來
有了1bit的鎖存器,我們就可以用n個這樣的鎖存器組合起來實現n bit的寄存器了
利用地址譯碼器、多路復用器和鎖存器,我們就可以實現簡單的隨機存儲器(RAM)了
如圖
- 內存的尋址由一個2個輸入的譯碼器實現。譯碼器根據A1和A2的輸入,選中對應的一條線,即找到地址對應的存儲空間。
- 內存存儲信息的能力具體實現是由門控鎖存器組成的存儲矩陣保存bit信息。
- 讀取內存的輸出由多路復用器實現。根據尋址時譯碼器選中的某一個線路,每一列的多路復用器只能輸出那個線路的對應的那個門控鎖存器保存的bit。則最終的三個bit都是由同一個線路對應的三個門控鎖存器的輸出。
參考:https://www.jianshu.com/p/c7fc7293f239