本次筆記學習目標:了解 CPU 如何處理指令,記憶體如何儲存資料
簡單來說,CPU 會從 Cache 也就是較上層的記憶體取得資料
圖片來源:Introduction to Memory
再用複習一次這張圖,其中Register 跟Cache 會很常被提到,因為他們離 CPU 最近,通常從這兩個地方取得。
Memory 與 Storage:它們有什麼不同?
大家常常聽到「記憶體」和「儲存裝置」,但這兩個東西到底有什麼不同?其實,它們的差別很明顯:
Memory(記憶體)
- 記憶體的工作像是一個臨時的工作台,用來暫時存放正在運行的資料或程式。它速度快,但斷電後資料就會消失,屬於 揮發性記憶體。
- 常見的記憶體種類:
- SRAM(靜態記憶體):速度超快,用於 CPU 的快取記憶體(Cache),但造價昂貴。
- DRAM(動態記憶體):用於一般的主記憶體(RAM),比 SRAM 慢但便宜。
- RAM(隨機存取記憶體):一般用來指 DRAM,電腦執行中的程式和資料都放在這裡。
- ROM(唯讀記憶體):儲存固化的資料,例如電腦開機的基本指令(BIOS)。它是非揮發性記憶體,斷電後資料不會消失。
Storage(儲存裝置)
- 儲存裝置像是一個大型倉庫,用來長期保存檔案、應用程式、作業系統等。它屬於 非揮發性記憶體,即使斷電,資料仍然存在。
- 常見的儲存裝置:
- 硬碟(HDD):磁碟式儲存,容量大但讀寫速度相對慢。
- 固態硬碟(SSD):速度比 HDD 快很多,沒有機械結構,更耐用。
- USB 隨身碟 / 記憶卡:便攜式儲存裝置,用於短期資料存取。
兩者的區別
- 記憶體(Memory):執行程式用的暫存空間,速度快但容量小。
- 儲存裝置(Storage):用來長期保存資料,速度慢但容量大。
舉個例子,當你開啟一個應用程式時,它會從 儲存裝置 載入到 記憶體,讓 CPU 可以快速讀取來執行。
Memory 和 Storage 的關係圖。
10+ Key Memory & Storage Systems: Crash Course System Design #5
CPU 的 Fetch-Decode-Execute Cycle(取指令-解碼-執行循環)
CPU 就像電腦的大腦,所有運算都由它來執行,而它的工作原理可以簡化為三個步驟:
- Fetch(取指令)
CPU 從記憶體(RAM)中取出要執行的指令。這些指令以電壓的形式存在,0 表示低電壓,1 表示高電壓,組成機器語言的指令。舉例:CPU 發出訊號,要求記憶體提供下一條指令,像是「開啟一個檔案」。 - Decode(解碼)
CPU 解讀剛取出的指令,判斷需要做什麼工作。指令會被拆解成小步驟,例如運算或資料移動。舉例:解讀出指令是「從磁碟讀取檔案到記憶體」。 - Execute(執行)
CPU 執行剛解碼的指令,可能是進行數學運算、移動資料,或者與其他硬體互動。舉例:CPU 執行「將檔案從磁碟載入到記憶體」的指令,這裡可能涉及 I/O 裝置的操作。
這個過程就像一個永不停歇的循環,CPU 會不斷從記憶體中取指令、解碼、執行,直到所有指令完成。
參考影片:(待補充細節圖片給讀者)
The Fetch-Execute Cycle: What's Your Computer Actually Doing?
小總結
- 記憶體和儲存裝置各有用途,記憶體速度快但只能暫時存資料,儲存裝置負責長期保存。
- CPU 的取指-解碼-執行循環讓它能高效地執行程式。