計(jì)算機(jī)需要 「”內(nèi)存“來(lái)記錄這些計(jì)算后的結(jié)果」 ,如果只是計(jì)算后就扔掉沒(méi)有多大意義,我們需要將結(jié)果存儲(chǔ)起來(lái)以便后面使用
RAM
當(dāng)我們打游戲的時(shí)候如果停電或者電源不小心被拔掉,那么之前做的一切工作將丟失。損失數(shù)據(jù)的原因是因?yàn)?a href="http://www.nxhydt.com/v/tag/1247/" target="_blank">電腦是用的:「”隨機(jī)存取存儲(chǔ)器“,簡(jiǎn)稱“ROM”。他只能在有電的時(shí)候存儲(chǔ)東西;另一種存儲(chǔ)叫做持久存儲(chǔ),電源關(guān)閉時(shí)數(shù)據(jù)也不會(huì)丟失。」
存儲(chǔ)一位的電路
之前說(shuō)過(guò)的電路他們電流的流動(dòng)方向總是向前流動(dòng),比如之前的八位加法器。但是也可以做**「回向電路,把輸出連回輸入」**
記錄“1”
也即記錄“true“,回想一下什么時(shí)候輸出為true比較容易。答案是OR門(mén),「只要有一個(gè)輸入為true輸出將永遠(yuǎn)為true。只要有一個(gè)1,輸出將永遠(yuǎn)為1」
因此**「將輸出的線路接回到兩個(gè)輸入線路中的其中一個(gè)即(輸出=A/B)」** 。只要 「A/B其中一個(gè)輸入1」 ,那么輸出就是1,由于輸出會(huì)鏈接到另一個(gè)輸入, 「因此B/A也會(huì)為1」 。之后不管如何變化A/B,B/A始終都為1,因此這個(gè)電路就是存儲(chǔ)1的電路。
圖示:只要當(dāng)A輸入為1的時(shí)候,這個(gè)電路的輸出將會(huì)一直是1(輸出會(huì)鏈接到B因此B為1),不管A如何變化。
也即存儲(chǔ)”1“
「存儲(chǔ)之后將永遠(yuǎn)無(wú)法改變輸出是1這個(gè)結(jié)果。」
記錄“0”
同樣,用什么來(lái)存儲(chǔ)false比較簡(jiǎn)單呢?答案是通過(guò)AND門(mén),「因?yàn)椤?/strong> 「只要有一個(gè)為false輸出就一直為false。」
「即只要有一個(gè)0,那么輸出就會(huì)一直是0.」
和上面一樣,替換1為0即可:
「將輸出的線路接回到兩個(gè)輸入線路中的其中一個(gè)即(輸出=A/B)」 。只要 「A/B其中一個(gè)輸入0」 ,那么輸出就是0,由于輸出會(huì)鏈接到另一個(gè)輸入, 「因此B/A也會(huì)為0」 。之后不管如何變化A/B,B/A始終都為0,因此這個(gè)電路就是永久存儲(chǔ)0的電路。
圖示:當(dāng)A輸入0時(shí),AND的結(jié)果為0,B也為0.之后不管A如何變化,輸出將永遠(yuǎn)為0
同樣也是持久化的存儲(chǔ)了之后就不會(huì)改變
AND-OR鎖存器
現(xiàn)在我們把上面的兩個(gè)存儲(chǔ)電路結(jié)合起來(lái)做成一個(gè)有用的存儲(chǔ):
組合到一起之后:
變化:存儲(chǔ)1的B線輸入接至整體的最后輸出,存儲(chǔ)0的B線輸入為存儲(chǔ)1的輸出
首先來(lái)看兩個(gè)輸入:設(shè)置和復(fù)位。先不糾結(jié)他們的作用,把他們看成普通的輸入即可
SET,RESET都為1:最后輸出為0
SET=0,RESET=1:最后輸出為0
RESET,SET都為0:輸出為0
重點(diǎn)來(lái)了:
**「SET=1RESET=0:輸出為1,不管之后SET如何變化(設(shè)置為0也好1也好)最后的輸出都為T(mén)RUE(他鎖住了1位的信息),除非RESET設(shè)置為1輸出才會(huì)重置為0因此這也是RESET的含義」**
觀察規(guī)律可得出:復(fù)位為1不管輸入是0還是1最終輸出都是0;復(fù)位為0輸出的值=SET的值。「當(dāng)SET為1時(shí)他鎖住了這個(gè)1」
鎖存介紹
重點(diǎn):「當(dāng)SET為1RESET=0時(shí)他鎖住了這個(gè)1(即SET不管如何變化最后的結(jié)果永遠(yuǎn)都是1)。」
「這叫“鎖存”,因?yàn)樗版i定”了一個(gè)值,放入數(shù)據(jù)的動(dòng)作叫做“寫(xiě)入”,拿出數(shù)據(jù)的動(dòng)作叫做”讀取“」
鎖存器優(yōu)化——門(mén)鎖
兩條線設(shè)置和復(fù)位太麻煩,為了更容易使用。通過(guò)**「一條輸入線設(shè)置為0或1來(lái)存儲(chǔ)值,還需要另外一根線去啟用內(nèi)存,讓他存儲(chǔ)。啟用時(shí)允許寫(xiě)入,沒(méi)有啟動(dòng)時(shí)就”鎖定“這條線叫”允許寫(xiě)入線“」**
正如圖中所說(shuō)的,這叫”門(mén)鎖“,因?yàn)殚T(mén)可以打開(kāi)和關(guān)上。
接下來(lái)讀者自己去做下面的規(guī)則運(yùn)算吧,最終會(huì)發(fā)現(xiàn)只有當(dāng)允許寫(xiě)入線打開(kāi)數(shù)據(jù)輸入才會(huì)進(jìn)行存儲(chǔ)(OUT才會(huì)改變),允許寫(xiě)入線關(guān)閉,不管數(shù)據(jù)輸入如何變化最后的結(jié)果都不會(huì)變(OUT不會(huì)改變)
抽象-門(mén)鎖
將這個(gè)門(mén)鎖放到一個(gè)盒子里面,「這個(gè)盒子可以存儲(chǔ)一個(gè)Bit的信息。」
允許寫(xiě)入線關(guān)閉,數(shù)據(jù)輸入線不管是0還是1輸出都不會(huì)有變化。
允許寫(xiě)入線開(kāi)啟,輸出隨著數(shù)據(jù)輸入的值進(jìn)行改變。
寄存器-存儲(chǔ)一系列鎖存器
經(jīng)過(guò)上面介紹我們現(xiàn)在可以存儲(chǔ)一個(gè)一位的數(shù)字了,不過(guò)存儲(chǔ)一位的數(shù)字并不能做什么。
定義
如果我們可以 「并排放八個(gè)鎖存器,就可以存八位的信」 息,比如一個(gè)8Bit的數(shù)字。
「一組這樣的鎖存器叫做寄存器,寄存器能存一個(gè)數(shù)字,這個(gè)數(shù)字有多少位,叫做位寬。」
早期的電腦是用的八位寄存器,然后發(fā)展16位,32位,現(xiàn)在許多計(jì)算機(jī)都有64位寬的寄存器
8位寄存器需要多少線?
數(shù)據(jù)輸入需要有八根線,對(duì)應(yīng)的八個(gè)鎖存器對(duì)應(yīng)存儲(chǔ)的數(shù)字
數(shù)據(jù)輸出線也是需要八根線,每個(gè)鎖存器輸出各自存儲(chǔ)的位
最后只需要 「用一條啟用寫(xiě)入線連接所有的允許輸入線即可」 .當(dāng)設(shè)置為1時(shí),這個(gè)八位的寄存器才會(huì)進(jìn)行存儲(chǔ)之后輸出的時(shí)候會(huì)發(fā)生變化;當(dāng)設(shè)置為0時(shí),不會(huì)影響數(shù)據(jù)的輸出。
可見(jiàn)八位的寄存器所需的線的數(shù)量時(shí)17根(8+8+1)
由此可推斷出我們**「現(xiàn)如今使用的64位寄存器所需要多少線:(64+64+1)=129根線」**
「寄存器是一塊比較小的內(nèi)存用于存儲(chǔ)一個(gè)值,而RAM是一大塊內(nèi)存能在不同地址(矩陣中的行列。地址多少取決于矩陣中行列數(shù)量)存大量數(shù)字」
「那么我們?nèi)绻面i存器存256位就需要129X4=513條線!!!因此后面換了一種組合方式存儲(chǔ)RAM」
-
電源
+關(guān)注
關(guān)注
184文章
17605瀏覽量
249558 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7455瀏覽量
163623 -
ROM
+關(guān)注
關(guān)注
4文章
562瀏覽量
85679
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論