CPU(Centrual Processing Unit)
中央處理器
- 暫存器(register)
- 儲存運算/待運算的數值/位址
- Clock
- 同步訊號
- 控制單元CU (Control Unit)
- 控制操作順序
- ALU (Arithmetic Logic Unit) 算術邏輯單元
- 做數學運算(+, -)/邏輯運算(and, or, not)
- 暫存器(register)
CPU與Memory跟I/O裝置之間以 Bus(匯流排) 連接著
- Data Bus (資料bus)
- 「CPU跟Memory」之間傳輸資料的路徑
- I/O Bus
- 「CPU跟I/O裝置」之間傳輸資料的路徑
- Control Bus
- 控制memory, I/O裝置
- Address Bus
- 指定寫入/讀取的位址(對memory, I/O裝置)
- Data Bus (資料bus)
Clock
- Clock cycle (時脈週期)
- 一次電子脈衝所需的時間
- 每個指令至少需要一個以上的cycle( $\ge{1}$),有些長、有些短。
- Wait State (等待狀態)
- 一個cycle沒做事,就只是等待
浪費電。
- 一個cycle沒做事,就只是等待
- Clock cycle (時脈週期)
指令執行週期
- CPU在執行程式之前,先把當前要執行的指令存到
instruction queue
中,然後把IP
指向下個指令,才開始執行。 - 分成三個基本步驟:
- Fetch (擷取)
- 從
instruction queue
中拿指令,並改變IP
- 從
- Decode (解碼)
CU
decode送進來的指令,接著把指令的操作對象送到ALU
中,並且告訴ALU
要執行的運算。- Fetch operands (擷取運算元)
- 如果指令要操作的對象在memory中,則要等待讀取,會放到一個看不見的register中。
- Execute (執行)
ALU
執行運算,把結果放到Named register(有名字的暫存器)中。- 並更新
EFLAGS
- Store Output operands (儲存輸出運算元)
- 如果輸出要放在memory中,則要等待寫入。
- Fetch (擷取)
- CPU在執行程式之前,先把當前要執行的指令存到
Cache 快取記憶體
一般的記憶體太慢,CPU會使用較快的記憶體:cache,儲存最近用的的資料及指令。
如果程式要讀相同資料,則會去cache找:
- Cache Hit (快取命中)
- 資料在cache中找到
- Cache Miss (快取未中)
- 找不到,必須去讀RAM(較慢)
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)