讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

導言

這需要前面小短文的知識

內存——臨時存儲

今天要說的是內存就是經常說的內存條。內存的主要作用是臨時存儲

就像我們要計算一道很複雜的數學題一樣。例如78977841 + 8889475 = ?這個問題,很多人一般不能直接通過心算來一下子就在試卷上填寫結果,而需要先把部分的結果先放在草稿紙上,算出正確答案之後再將答案寫在橫線處或者答題紙上。而內存的作用就很像草稿紙了,CPU的任務很重,因此它需要一個地方可以臨時存放數據及運算的中間結果。

下面我們看一下1比特的數據是怎麼存儲的。

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

我們用AND門來存儲0,用OR門來存儲1,注意上圖有導線從邏輯門中出去然後回來。

並加上一些其他的電路來進行控制(是否可以寫入的控制),然後這就是鎖存器,結構如下圖:

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

它實現的主要功能就是當允許寫入線為真時(也就是為1時),數據輸入線可以輸入數據0或者1,當允許輸入線為假時(也就是為0時)數據輸入線不接受任何數據輸入,無論數據的輸入是什麼,數據輸出只會輸入允許寫入線關閉時數據輸入線的數據。

這就好比一個有鎖的櫃子,如果鎖打開了,那麼我們就可以往裡面放東西,啥都可以,但是一旦鎖上了,除非你用大錘把鎖給敲沒了,不然你放不進去任何東西。這就是簡單的說法。最後不要管那麼多邏輯門,直接抽象出來,則有了如下圖:

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

門鎖

這便可以存儲1比特的數據。

寄存器

寄存器就是多個鎖存器。我們可以將8個鎖存器並排放在一起,則這個就是一個寄存器。

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

這是一個8位寄存器

但是我們可以看到,這裡面的線比較複雜,我們來算算 8位寄存器需要多少根的線,8根數據輸出線+8根數據輸入線+ 1根控制線 = 17根,這好像不是很多,你會發現存128位要257根,256需要513根線,這有點多了。那麼我們就使用了矩陣。使用矩陣來排列的話,很方便,行和列如果都是16根線的話,那麼可以對應16*16 = 256個位置,那麼如何選擇呢?很好辦,多幾個邏輯門就好了。

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

如果要在256個鎖存器中選出“天選之子”,很簡單,首先看他在第幾行,第幾列,就可以選中它,如果想要對他進行寫操作,那就將門鎖打開,可寫控制線置為1就可以了,因此,如果你想要對一個鎖存器進行寫入,需要滿足它的行線列線還有可寫入線 3者均為1這才可以對其進行寫入。

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

矩陣內每一個元素的內部情況

更進一步的減少線路

為了更進一步地減少線路的使用,我們可以使用多路複用器。

讓小朋友懂一點計算機(四)|CPU的草稿紙——內存

多路複用器

256個鎖存器需要行和列都要有16根線,那麼我們用對每一根線做編號,就像單元小區的門牌號碼一樣,但是我們這個門牌號碼不同,他是用2進制來進行表達的,二進制數0000代表第一根線,0001代表第二根線... 然後1111代表16根線。列也是這麼表示,那麼現在就可0000 0000這8位二進制數來代表第一行第一列的地址了。

資料來源

特此鳴謝 The Crash Course

官方網站 https://www.thecrashcourse.com/ (由於是國外網站,可能打開比較慢或者無法打開。)


分享到:


相關文章: