計算機需要 「”內存“來記錄這些計算后的結果」 ,如果只是計算后就扔掉沒有多大意義,我們需要將結果存儲起來以便后面使用
RAM
當我們打游戲的時候如果停電或者電源不小心被拔掉,那么之前做的一切工作將丟失。損失數據的原因是因為電腦是用的:「”隨機存取存儲器“,簡稱“ROM”。他只能在有電的時候存儲東西;另一種存儲叫做持久存儲,電源關閉時數據也不會丟失。」
存儲一位的電路
之前說過的電路他們電流的流動方向總是向前流動,比如之前的八位加法器。但是也可以做**「回向電路,把輸出連回輸入」**
記錄“1”
也即記錄“true“,回想一下什么時候輸出為true比較容易。答案是OR門,「只要有一個輸入為true輸出將永遠為true。只要有一個1,輸出將永遠為1」
因此**「將輸出的線路接回到兩個輸入線路中的其中一個即(輸出=A/B)」** 。只要 「A/B其中一個輸入1」 ,那么輸出就是1,由于輸出會鏈接到另一個輸入, 「因此B/A也會為1」 。之后不管如何變化A/B,B/A始終都為1,因此這個電路就是存儲1的電路。
圖示:只要當A輸入為1的時候,這個電路的輸出將會一直是1(輸出會鏈接到B因此B為1),不管A如何變化。
也即存儲”1“
「存儲之后將永遠無法改變輸出是1這個結果。」
記錄“0”
同樣,用什么來存儲false比較簡單呢?答案是通過AND門,「因為」 「只要有一個為false輸出就一直為false。」
「即只要有一個0,那么輸出就會一直是0.」
和上面一樣,替換1為0即可:
「將輸出的線路接回到兩個輸入線路中的其中一個即(輸出=A/B)」 。只要 「A/B其中一個輸入0」 ,那么輸出就是0,由于輸出會鏈接到另一個輸入, 「因此B/A也會為0」 。之后不管如何變化A/B,B/A始終都為0,因此這個電路就是永久存儲0的電路。
圖示:當A輸入0時,AND的結果為0,B也為0.之后不管A如何變化,輸出將永遠為0
同樣也是持久化的存儲了之后就不會改變
AND-OR鎖存器
現在我們把上面的兩個存儲電路結合起來做成一個有用的存儲:
組合到一起之后:
變化:存儲1的B線輸入接至整體的最后輸出,存儲0的B線輸入為存儲1的輸出
首先來看兩個輸入:設置和復位。先不糾結他們的作用,把他們看成普通的輸入即可
SET,RESET都為1:最后輸出為0
SET=0,RESET=1:最后輸出為0
RESET,SET都為0:輸出為0
重點來了:
**「SET=1RESET=0:輸出為1,不管之后SET如何變化(設置為0也好1也好)最后的輸出都為TRUE(他鎖住了1位的信息),除非RESET設置為1輸出才會重置為0因此這也是RESET的含義」**
觀察規律可得出:復位為1不管輸入是0還是1最終輸出都是0;復位為0輸出的值=SET的值。「當SET為1時他鎖住了這個1」
鎖存介紹
重點:「當SET為1RESET=0時他鎖住了這個1(即SET不管如何變化最后的結果永遠都是1)。」
「這叫“鎖存”,因為他“鎖定”了一個值,放入數據的動作叫做“寫入”,拿出數據的動作叫做”讀取“」
鎖存器優化——門鎖
兩條線設置和復位太麻煩,為了更容易使用。通過**「一條輸入線設置為0或1來存儲值,還需要另外一根線去啟用內存,讓他存儲。啟用時允許寫入,沒有啟動時就”鎖定“這條線叫”允許寫入線“」**
正如圖中所說的,這叫”門鎖“,因為門可以打開和關上。
接下來讀者自己去做下面的規則運算吧,最終會發現只有當允許寫入線打開數據輸入才會進行存儲(OUT才會改變),允許寫入線關閉,不管數據輸入如何變化最后的結果都不會變(OUT不會改變)
抽象-門鎖
將這個門鎖放到一個盒子里面,「這個盒子可以存儲一個Bit的信息。」
允許寫入線關閉,數據輸入線不管是0還是1輸出都不會有變化。
允許寫入線開啟,輸出隨著數據輸入的值進行改變。
寄存器-存儲一系列鎖存器
經過上面介紹我們現在可以存儲一個一位的數字了,不過存儲一位的數字并不能做什么。
定義
如果我們可以 「并排放八個鎖存器,就可以存八位的信」 息,比如一個8Bit的數字。
「一組這樣的鎖存器叫做寄存器,寄存器能存一個數字,這個數字有多少位,叫做位寬。」
早期的電腦是用的八位寄存器,然后發展16位,32位,現在許多計算機都有64位寬的寄存器
8位寄存器需要多少線?
數據輸入需要有八根線,對應的八個鎖存器對應存儲的數字
數據輸出線也是需要八根線,每個鎖存器輸出各自存儲的位
最后只需要 「用一條啟用寫入線連接所有的允許輸入線即可」 .當設置為1時,這個八位的寄存器才會進行存儲之后輸出的時候會發生變化;當設置為0時,不會影響數據的輸出。
可見八位的寄存器所需的線的數量時17根(8+8+1)
由此可推斷出我們**「現如今使用的64位寄存器所需要多少線:(64+64+1)=129根線」**
「寄存器是一塊比較小的內存用于存儲一個值,而RAM是一大塊內存能在不同地址(矩陣中的行列。地址多少取決于矩陣中行列數量)存大量數字」
「那么我們如果要用鎖存器存256位就需要129X4=513條線!!!因此后面換了一種組合方式存儲RAM」
-
電源
+關注
關注
185文章
18276瀏覽量
255025 -
存儲器
+關注
關注
38文章
7636瀏覽量
166425 -
ROM
+關注
關注
4文章
578瀏覽量
87015
發布評論請先 登錄
鎖存器、觸發器、寄存器和緩沖器的區別
觸發器、鎖存器、寄存器三者的區別
如何使用鎖存器的Time Borrowing技術來替代關鍵路徑中的寄存器
鎖存器、觸發器、寄存器的關聯與區別及其相應的verilog描述
一文詳細區分寄存器、鎖存器和觸發器
簡單利用鎖存器做一個寄存器和內存(下)

評論