Last Updated on 2021-10-21 by Clay
- 之前已經簡單記錄過算術邏輯單元(Arithmetic Logic Unit, ALU)。不過若計算出結果卻不儲存,則沒有意義:我們需要計算機的記憶體(memory)
- 使用電腦玩著 RPG 遊戲、或是寫程式,若是突然拔掉了電源,則意味著你損失了你的工作進度(遊戲的話,則是從你上一個存檔的地方開始):這是因為你的電腦使用 RAM(Random Access Memory)儲存當前工作的所有資訊
- 其他種類的記憶體,比方說持續性記憶體(persistent memory)則不倚賴電源
要如何『記憶』資訊(暫存器)
- 眾所皆知,電腦中的資訊都是由 0 和 1 所組成
- 若要儲存資訊(bit),則需使用 AND-OR LATCH(AND-OR 鎖存器)
儲存 1 的情況
使用 OR Gate 並加上回傳路徑(feedback),可以讓電路記憶 1 的情況。
OR 的真值表如下:
INPUT A | INPUT B | OUTPUT |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
可以發現,只要輸入中有 1 ,則輸出無論如何都是 1。透過這個特性,我們設計一個回傳路徑(feedback),則可以讓此電路保持為 1、也就是記憶 1 的情況。
之後,即便我們更改輸入,也無法改變輸出結果為 1。這也就是記憶 1 的情況。
儲存 0 的情況
與之相對的,要儲存 0 的話,就必須使用 AND Gate。
AND 的真值表如下:
INPUT A | INPUT B | OUTPUT |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
可以發現,唯有 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。鎖存器的輸入只有 SET 和 RESET 兩種。
儲存 1 的情況
若是設定 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
- https://www.youtube.com/watch?v=fpnE6UAfbtU
- https://terms.naer.edu.tw/detail/1314788/
- https://searchstorage.techtarget.com/definition/RAM-random-access-memory