Skip to content

暫存器(Register)和記憶體(RAM)的介紹

Last Updated on 2021-10-21 by Clay

  • 之前已經簡單記錄過算術邏輯單元Arithmetic Logic Unit, ALU)。不過若計算出結果卻不儲存,則沒有意義:我們需要計算機的記憶體memory
  • 使用電腦玩著 RPG 遊戲、或是寫程式,若是突然拔掉了電源,則意味著你損失了你的工作進度(遊戲的話,則是從你上一個存檔的地方開始):這是因為你的電腦使用 RAMRandom Access Memory)儲存當前工作的所有資訊
  • 其他種類的記憶體,比方說持續性記憶體persistent memory)則不倚賴電源

要如何『記憶』資訊(暫存器)

  • 眾所皆知,電腦中的資訊都是由 0 和 1 所組成
  • 若要儲存資訊(bit),則需使用 AND-OR LATCH(AND-OR 鎖存器)


儲存 1 的情況

使用 OR Gate 並加上回傳路徑(feedback),可以讓電路記憶 1 的情況。

OR 的真值表如下:

INPUT AINPUT BOUTPUT
000
011
101
111

可以發現,只要輸入中有 1 ,則輸出無論如何都是 1。透過這個特性,我們設計一個回傳路徑(feedback),則可以讓此電路保持為 1、也就是記憶 1 的情況。

之後,即便我們更改輸入,也無法改變輸出結果為 1。這也就是記憶 1 的情況


儲存 0 的情況

與之相對的,要儲存 0 的話,就必須使用 AND Gate。

AND 的真值表如下:

INPUT AINPUT BOUTPUT
000
010
100
111

可以發現,唯有 INPUT A 及 INPUT B 皆為 1 的時候,其輸出 OUTPUT 才為 1。

利用這樣的特性,我們設置回傳路徑(feedback)給 INPUT B,使其保持 0 的狀態。

我們會發現,不論怎麼修改 INPUT A,其輸出結果保持為 0。這就是記憶 0 的情況。


AND-OR 鎖存器(AND-OR LATCH)

利用以上兩種 Gate 的特性,我們便可以設計出 AND-OR 鎖存器AND-OR LATCH)來儲存 0 或 1。鎖存器的輸入只有 SETRESET 兩種。


儲存 1 的情況

AND-OR 鎖存器

若是設定 SET 輸入為 1,便會看到整個鎖存器最終的輸出為 1。

這時候,將 SET 以及 RESET 都設為 0(這是很重要的步驟),便會看到鎖存器同樣輸出為 1。


儲存為 0 的情況

若是將 RESET 設定為 1,則鎖存器無論如何都會輸出 0。

這時候,再次將 SET 及 RESET 都設定為 0(這同樣是重要的步驟),鎖存器的輸出恆為 0。


結論

無論鎖存器最終的輸出為何,只要將 SET 及 RESET 同時設為 0,鎖存器便會儲存最後的『輸出狀態』,也就是所謂的記憶memory)。這也就是儲存位元(bit)的方法。

實際上還有所謂的 GATED LATCH,不過我今天畫的圖已經夠多了 ......(MacBook 的觸控鍵盤超難畫圖的)所以詳細的電路結構就容我跳過了,抱歉。

簡單來說,GATED LATCH 是剛才 AND-OR LATCH 的進階版、也是更複雜一點點的電路結構。它有兩個輸入:輸入資料data-in)及寫入許可write-enable)。

輸入資料可以為 0 或 1,但是若寫入許可為 0,則資料無法寫入;反之,若寫入許可為 1,則輸入資料不論是 0 或 1,都會被輸出資料data out)儲存。

而一組(group)運行的鎖存器(latches)被稱為暫存器register),也就是我們今天的主題。

早期電腦從 8-bit (暫存器的位數)開始,一直到今天為大宗的 64-bit(64 位元),其『位元』的意義就是由暫存器的儲存位元數量決定。


隨機存取記憶體(Random Access Memory, RAM)

隨機存取記憶體Random Access Memory, 以下簡稱 RAM)是電腦設備中的硬體,用於儲存當前使用的作業系統OS)、應用程式applications)、資料data)。最大的用途為讓處理器processors)能快速取得這些資料。

RAM 是電腦中主要的記憶體,跟 HDD 和 SSD 相比,讀寫速度都快上許多。

當我們開機時,資料將會由 HDD 或 SSD 將作業系統、開機程式、文件寫入 RAM 當中;而一但電腦關閉,則 RAM 中的資料則會消失。


References


Read More

Tags:

Leave a Reply