這題是典型的「CPU 執行程序循環」考題,屬於計算機組織的基本題。以下是完整標準答案示範(可得滿分 15 分):
---
? 一、CPU 執行程式的整體流程
CPU 執行程式時,會不斷重複「取指(Fetch)→ 解碼(Decode)→ 執行(Execute)」的機器週期,直到程式結束。每一條指令皆經過以下步驟:
---
?(1)取指階段(Instruction Fetch)
1. 程式計數器(PC, Program Counter) 儲存下一條要執行的指令位址。
2. 控制單元(CU, Control Unit) 將此位址送到記憶體位址暫存器(MAR)。
3. CPU 發出「讀取指令」訊號給主記憶體,將指令載入到記憶體資料暫存器(MDR)。
4. 指令再被送入指令暫存器(IR, Instruction Register),同時 PC+1,準備下一條指令。
---
?(2)解碼階段(Instruction Decode)
1. 控制單元 讀取 IR 內容,解析指令的操作碼(Opcode)與運算元(Operands)。
2. 判斷該指令屬於哪一類(算術、邏輯、資料存取或控制指令)。
3. 若需資料,CU 會計算有效位址,並向記憶體或暫存器取出所需資料。
---
?(3)執行階段(Instruction Execute)
1. 將運算元送入算術邏輯單元(ALU),由 ALU 進行加、減、邏輯運算等動作。
2. 計算結果回存至暫存器或主記憶體中。
3. 若是跳躍(Branch)指令,則修改 PC 的內容,使下一步跳至新位址;
否則 PC 保持順序執行下一條指令。
---
?(4)記憶體與 I/O 存取(如有)
若指令需存取外部裝置或資料:
CU 控制資料總線進行讀取(Read)或寫入(Write)動作;
等待 I/O 完成後再繼續主迴圈。
---
?(5)重複循環
CPU 重複執行上述三階段,形成指令週期(Instruction Cycle)。
在每次週期內,若遇到中斷(Interrupt),控制權轉移至中斷服務程序,再返回原程序繼續執行。
---
? 總結(可作為結尾用)
CPU 的執行步驟可概述為:
> 取指 → 解碼 → 執行 → 存回 → 更新 PC → 重複
整個過程由控制單元協調、ALU計算、暫存器組暫存資料,使程式能自動、循序地從記憶體中執行每條指令。