111 年 國立成功大學電機工程學系碩士班已組《計算機組織與作業系統》
第 1 題
- Assume the set of five processes have arrived at time 0, 1,2,3,4, respectively.
| Process | Burst Time (ms) | Arrival Time |
|---|---|---|
| P1 | 10 | 0 |
| P2 | 29 | 1 |
| P3 | 3 | 2 |
| P4 | 7 | 3 |
| P5 | 12 | 4 |
Please calculate both of the average waiting time and average turnaround time for:
(a) FCFS
(b) SJF
(c) RR (Quantum = 10 ms)
登入後即可作答並保存紀錄。
核心觀念
本題考查三種 CPU 排程法:
- FCFS(First-Come, First-Served):依到達時間先後執行,通常為非搶先式。
- SJF(Shortest Job First):每次 CPU 空閒時,從已到達的程序中選擇 Burst Time 最短者執行,通常指非搶先式。
- RR(Round Robin):每個程序最多執行一個 Quantum,未完成者排到就緒佇列尾端。
相關定義如下:
亦可使用:
平均值為:
本題的 SJF 採用非搶先式 SJF。
(a)FCFS
依到達時間排序:
甘特圖
0 10 39 42 49 61
| P1 | P2 | P3 | P4 | P5 |
各程序計算
| Process | 執行區間 | Completion Time | Waiting Time | Turnaround Time |
|---|---|---|---|---|
| P1 | 0–10 | 10 | ||
| P2 | 10–39 | 39 | ||
| P3 | 39–42 | 42 | ||
| P4 | 42–49 | 49 | ||
| P5 | 49–61 | 61 |
因此:
(b)SJF
時間 時只有 已到達,因此先執行 。
時間 時, 都已到達,其 Burst Time 分別為 ,所以依短作業優先選擇:
甘特圖
0 10 13 20 32 61
| P1 | P3 | P4 | P5 | P2 |
各程序計算
| Process | 執行區間 | Completion Time | Waiting Time | Turnaround Time |
|---|---|---|---|---|
| P1 | 0–10 | 10 |
第 2 題
- Consider the following segment table:
| Segment | Base | Length |
|---|---|---|
| 0 | 210 | 600 |
| 1 | 2300 | 14 |
| 2 | 90 | 100 |
| 3 | 1327 | 580 |
| 4 | 1952 | 96 |
What are the physical addresses for the following logical addresses?
(a) 0,430
(b) 1,10
(c) 2,500
(d) 3,400
(e) 4,112
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統中**分段記憶體管理(Segmentation Memory Management)**的邏輯位址至實體位址轉換(Address Translation)。
在分段記憶體機制中,邏輯位址(Logical Address)由一個二元組 表示:
- :段號(Segment Number)
- :段內位移量(Offset)
記憶體管理單元(MMU)進行位址轉換時的兩大核心要點:
- 合法性檢查(Limit / Length Check):
位移量 必須嚴格小於該段的長度限制 。
若 ,代表存取範圍超出該段大小,硬體會觸發 Trap 產生定址錯誤(Addressing Error / Segment Fault)。 - 實體位址計算(Physical Address Calculation):
若檢查合法,實體位址(Physical Address, PA)為基址加上位移量:
解題方法
對每一個邏輯位址 ,依循下列三步驟推導:
- 查表找出段號 對應的基址 與長度限制 。
- 進行邊界判斷:比對 是否成立。
- 若成立,計算 ;若不成立,直接判定為定址錯誤(Addressing Error / Trap)。
選項與小題詳細解析
(a) 邏輯位址
- 對應數據:。查表得 ,。
- 合法性檢查:(成立,合法)。
- 實體位址計算:
(b) 邏輯位址
- 對應數據:。查表得 ,。
- 合法性檢查:(成立,合法)。
- 實體位址計算:
第 3 題
- Please explain the meaning of Effective Access Time (EAT)? And please calculate the EAT of the following 1-level paging system. Ignore the overheads to revise the TLB and the page table, and suppose that each page fault involves page replacement (considering both swap-in and swap-out overhead).
Given:
TLB hit ratio = 90%
TLB access time = 200ns
Memory access time = 100μs
Page-fault ratio = 0.001%
To access a page on a disk = 15ms (including memory access time)
(You only need to list your calculation process, don't waste your time to calculate the final result.)
登入後即可作答並保存紀錄。
核心觀念
-
有效存取時間(Effective Access Time, EAT)的物理意義:
EAT 是指 CPU 在存取記憶體資料時,考量了記憶體階層架構(Memory Hierarchy)、轉譯後備緩衝區(TLB)命中與否、頁表(Page Table)查詢以及分頁錯誤(Page Fault)引發之磁碟 I/O 開銷後,平均每次讀取或寫入資料所需花費的時間期望值。 -
核心公式與分路架構:
在單階分頁(1-Level Paging)結合 TLB 的系統中,存取邏輯位址依序經歷 TLB 查詢、頁表查詢與磁碟讀寫。其算式結構如下:
具體可分為三個互斥事件:- TLB Hit(機率 ):時間成本
- TLB Miss 且 Page Hit(機率 ):時間成本
- TLB Miss 且 Page Fault(機率 ):時間成本
-
單位統一(Unit Conversion):
本題給定時間單位包含 、 與 ,計算前必須統一單位:
解題方法
Step 1:已知條件整理與單位統一(統一轉換為 )
- TLB 命中率 ():
- TLB 未命中率 ():
- TLB 存取時間 ():
- 主記憶體存取時間 ():
- 分頁錯誤率 ():
- 單頁磁碟存取時間 ():
Step 2:分頁錯誤(Page Fault)開銷分析
題目明確規定:「每一個 page fault 皆包含 page replacement(同時考量 swap-in 與 swap-out 時間)」。
- 當 Page Fault 發生時,必須先將記憶體中髒頁(Dirty Page)寫回磁碟(Swap-out),耗時 。
- 接著從磁碟讀入目標頁面(Swap-in),耗時 。
- 因此,每次 Page Fault 產生的總磁碟處理時間為:
Step 3:建立三路徑 EAT 總算式
- 路徑 1(TLB Hit):
- 機率:
- 時間:
- 路徑 2(TLB Miss 且 Page Hit):
- 機率:
- 時間:
- 路徑 3(TLB Miss 且 Page Fault):
- 機率:
- 時間:
- 耗時:
Step 4:列出最終計算算式
將上述路徑組合,可得到依題目要求的完整計算列式:
第 4 題
- Explain why interrupts are not appropriate for implementing synchronization primitives in multiprocessor systems.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統(Operating Systems)與計算機組織(Computer Architecture)中**同步原語(Synchronization Primitives)**在不同系統架構下的實作原理與硬體限制。
- 臨界區(Critical Section)與互斥(Mutual Exclusion):
當多個執行緒(Threads)或行程(Processes)競爭存取共享資源時,同步原語必須確保互斥性,即同一時間僅允許一個執行緒進入臨界區存取共享變數,以避免競態條件(Race Condition)。 - 單處理器系統(Uniprocessor Systems)的關閉中斷機制:
在單核 CPU 中,執行緒在臨界區被打斷並引發競爭條件的唯一途徑是外部中斷(如時脈中斷 Timer Interrupt)所導致的強制搶佔(Preemption)與上下文切換(Context Switch)。因此,進入臨界區前「關閉中斷(Disable Interrupts)」、離開後「開啟中斷(Enable Interrupts)」即可有效保證原子性(Atomicity)與互斥性。 - 多處理器系統(Multiprocessor / Multi-core Systems)的平行執行特性:
多處理器系統擁有多個獨立運作的 CPU Core,可同時平行(Parallel)執行不同的程式碼。
解題方法
說明為何「關閉中斷」不適用於多處理器系統,需從互斥失效、系統開銷與硬體架構三個層面進行深入切入與分析:
1. 互斥性失效(Failure of Mutual Exclusion)
關閉中斷指令(例如 x86 的 cli 指令)具有本機性(Local Effect Only),僅能防止發出指令的該顆 CPU Core 產生上下文切換。
- 當 CPU Core A 執行關閉中斷指令並進入臨界區時,CPU Core B 與 CPU Core C 仍處於中斷開啟狀態,且完全不知情。
- CPU Core B 與 C 依然可以同時執行並存取位於共享記憶體(Shared Memory)中的相同臨界區資源。
- 這導致關閉中斷完全無法防止多核心之間的平行競爭,互斥保證宣告失敗。
2. 跨核心廣播中斷開銷過高(Prohibitive Overhead of Inter-Processor Interrupts, IPI)
若嘗試修改機制,令 CPU Core A 在進入臨界區時透過跨處理器中斷(Inter-Processor Interrupt, IPI)廣播給系統中的所有其他 CPU Core,強制它們一併關閉中斷並停止執行:
- 廣播訊息與等待所有核心回應(Acknowledge)會引發極大的匯流排開銷(Bus Overhead)與記憶體延遲。
- 隨著系統核心數量 的增加,同步開銷呈 甚至更高的指數級成長,嚴重破壞系統的可擴充性(Scalability)與效能。
3. 多處理器系統的正確同步機制
多處理器系統的同步原語必須仰賴硬體層級提供的原子操作指令(Hardware Atomic Instructions):
- 例如:
Test-and-Set(tas)、Compare-and-Swap(cas) 或Load-Linked / Store-Conditional(LL/SC)。
第 5 題
- In order to ensure the proper execution of the operating system, we can use dual-mode with hardware
support to differentiate among various modes of execution. Please describe the dual-mode operation
and draw the transition from user to kernel mode.
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統(Operating System)基於硬體支援的雙模式運作(Dual-Mode Operation)與特權保護機制(Privileged Protection Mechanism)。
在現代電腦系統中,為了防止使用者程式(User Program)故意或無意地破壞作業系統核心、修改關鍵記憶體區域,或非法存取硬體資源(如 I/O 裝置),硬體(CPU)必須提供兩種或多種執行模式:
- 使用者模式(User Mode):受限的執行環境,只能執行非特權指令,無法直接存取硬體與保護記憶體。
- 核心模式(Kernel Mode / Monitor Mode / Supervisor Mode / System Mode):具備完全權限的執行環境,可執行所有指令(含特權指令)與存取所有記憶體位址。
- 模式位元(Mode Bit):硬體暫存器(如狀態暫存器 PSW, Program Status Word)中的一個 bit,用以區分目前 CPU 處於何種模式。習慣上,用 代表 Kernel Mode,用 代表 User Mode。
- 特權指令(Privileged Instruction):可能損害系統安全或干擾其他程序的指令(如設定 Base/Limit 暫存器、關閉中斷、直接執行 I/O 操作、切換 Mode Bit 等)。此類指令僅能在 Kernel Mode 下執行;若在 User Mode 下試圖執行特權指令,硬體會產生 Trap/Exception 並將控制權交給 OS。
解題方法
1. 雙模式運作機制說明
雙模式運作的核心目的在於達成系統保護(System Protection)。其運作原則如下:
- 硬體支援模式位元:CPU 內部維護一個 Mode Bit。當電腦開機(Booting)時,硬體自 Kernel Mode () 啟動並載入 OS;當 OS 準備將控制權移交給 User Process 時,會執行特權指令將 設定為 (切換至 User Mode)。
- 特權指令防禦機制:當 CPU 在 User Mode 下執行指令時,硬體會檢視該指令是否為特權指令。若為特權指令且 ,硬體會立即攔截並觸發 Illegal Instruction Trap,將 CPU 控制權強制轉移給 OS 的 Trap Handler 處置(通常為終止該違規程序)。
- 安全切換管道:當 User Process 需要使用硬體資源或 OS 服務時,無法直接執行特權指令,必須透過發起系統呼叫(System Call)、觸發陷阱(Trap/Exception)或受到硬體中斷(Hardware Interrupt),促使硬體自動將 置為 ,控制權切換回 Kernel Mode 中的中斷服務程式(ISR)。
2. 從 User Mode 切換至 Kernel Mode 之轉換流程與圖示
模式轉移的完整生命週期可分為以下步驟:
- User Mode 執行:User Process 於 User Mode () 順利執行一般運算。
- 觸發轉移(System Call / Trap / Interrupt):
- 使用者發起 System Call(例如讀取檔案
read())。 - 或發生 Trap/Exception(例如除以零
Divide-by-zero、缺頁Page Fault)。 - 或外部硬體發出 Interrupt(例如 Timer 到期、Disk I/O 完成)。
- 使用者發起 System Call(例如讀取檔案
- 硬體自動切換模式:
- 硬體自動將 由 設定為 (進入 Kernel Mode)。
- 將當前程序的執行狀態(PC、PSW、通用暫存器等)推入 Kernel Stack。
- 硬體根據 Interrupt Vector Table 尋找對應的 ISR / System Call Handler 位址,並將 PC 設定為該 Handler 的起始位址。
- Kernel Mode 處理服務:作業系統執行對應的特權指令完成要求之 I/O 或資源管理。
- 返還控制權:
- OS 完成服務後,執行返回指令(如
return-from-interrupt/iret/sysret)。 - 硬體自動重置 (恢復至 User Mode)。
- 恢復先前儲存的 User Process 暫存器狀態,繼續執行 User Process。
- OS 完成服務後,執行返回指令(如
Transition Diagram(模式轉換狀態圖):
+-----------------------------------+
| User Mode |
| (Mode bit = 1) |
+-----------------------------------+
|
| 1. System Call / Trap / Interrupt
| (Hardware sets Mode bit = 0)
v
+-----------------------------------+
| Kernel Mode |
| (Mode bit = 0) |
+-----------------------------------+
|
| 2. Execute Privileged Instructions
| and System Services
v
+-----------------------------------+
| Return-from-interrupt / iret |
| (Hardware sets Mode bit = 1) |
+-----------------------------------+
|
v
+-----------------------------------+
| User Mode |
| (Mode bit = 1) |
+-----------------------------------+
選項分析
本題屬於簡答與繪圖題(Essay / Short Answer Question),無選項。評分要點與答題構面分析如下:
第 6 題
- For the value 0x13579ACE, how would this value be stored in memory?
Assume the data stored at address 0 and word size is 4 bytes.
(a) In a little-endian machine
(b) In a big-endian machine
登入後即可作答並保存紀錄。
核心觀念
本題考查多位元組資料在記憶體中的排列方式,也就是 Endian(位元組序)。
一個 4 bytes 的數值 0x13579ACE 可拆成四個位元組:
- Little-endian:最低有效位元組放在最低記憶體位址。
- Big-endian:最高有效位元組放在最低記憶體位址。
題目指定資料從位址 開始,且 word size 為 4 bytes,因此會使用位址 、、、。
解題方法
先將 32 位元數值由高位元組到低位元組排列:
| 位元組意義 | 數值 |
|---|---|
| 最高有效位元組(MSB) | 0x13 |
| 次高位元組 | 0x57 |
| 次低位元組 | 0x9A |
| 最低有效位元組(LSB) | 0xCE |
接著依照位址由小到大的順序填入記憶體。
(a) Little-endian machine
Little-endian 將最低有效位元組 0xCE 放在最低位址 :
| 記憶體位址 | 儲存內容 |
|---|---|
| 0 | 0xCE |
| 1 | 0x9A |
| 2 | 0x57 |
| 3 | 0x13 |
因此記憶體排列為:
(b) Big-endian machine
Big-endian 將最高有效位元組 0x13 放在最低位址 :
| 記憶體位址 | 儲存內容 |
|---|---|
| 0 | 0x13 |
| 1 | 0x57 |
| 2 | 0x9A |
| 3 | 0xCE |
因此記憶體排列為:
第 7 題
- Which of the following is/are true?
(a) Two processor can be evaluated using MIPS(million instructions per second) to compare their
overall performance
(b) A right shift instruction can replace an integer division by a power of 2
(c) Idea throughput of an single pipeline processor is 1* (number of pipeline stages) instruction per
cycle
(d) It is the principle of locality that gives us a chance to overcome the long latency of memory access.
(e) Generally, increasing cache size can results in decreasing capacity misses
登入後即可作答並保存紀錄。
核心觀念
本題整合測試計算機組織與結構(Computer Organization and Architecture)的多個核心觀念:
- 效能評估指標(Performance Evaluation Metrics):MIPS(Million Instructions Per Second)的定義、限制及其為何不能跨架構比較效能。
- 算術與邏輯位移(Shift Operations & Integer Arithmetic):邏輯右移(Logical Right Shift)與算術右移(Arithmetic Right Shift)在補碼(Two's Complement)表示法下對無號數與有號數進行除法(Division by Power of 2)時的取整行為(Rounding Behavior)差異。
- 管線化處理器吞吐量(Pipeline Throughput):單一管線處理器在理想狀況下的 IPC(Instructions Per Cycle)、CPI(Cycles Per Instruction)與加速比(Speedup)之關係。
- 區域性原理(Principle of Locality):時間區域性(Temporal Locality)與空間區域性(Spatial Locality)如何作為記憶體階層(Memory Hierarchy)的理論基礎,用以緩解主記憶體長延遲(Memory Access Latency)問題。
- 快取缺失三分法(3C Miss Model):強制缺失(Compulsory Misses)、容量缺失(Capacity Misses)與衝突缺失(Conflict Misses)的成因及應對改善策略。
解題方法
本題為計算機組織與結構的觀念選擇題,解題切入點如下:
- 分析 (a):引用 CPU 效能方程式 ,檢驗 MIPS 能否客觀反應不同處理器執行同一程式的總時間。
- 分析 (b):分別檢視無號整數(Unsigned)與補碼有號整數(Signed)在右移運算中的算術結果,比較向零取整(Truncate toward zero)與向負無窮大取整(Floor toward )的差異。
- 分析 (c):釐清「吞吐量(IPC)」與「加速比(Speedup)」的定義,推導單管線(Single Pipeline)在理想狀態下的每週期完成指令數。
- 分析 (d):從快取記憶體(Cache Memory)設計初衷出發,確認記憶體階層結構如何利用區域性定理(Principle of Locality)縮短平均記憶體存取時間(AMAT)。
- 分析 (e):運用 3C Miss 模型定義,評估增加快取總容量(Cache Size)對容量缺失(Capacity Misses)的影響。
選項分析
-
(a) 錯誤
MIPS(Million Instructions Per Second,每秒百萬條指令)之定義公式為:
使用 MIPS 評估兩台不同處理器的整體效能有以下致命缺點:- 忽略指令集架構(ISA)差異:不同 ISA 的處理器執行相同程式所需的指令數(Instruction Count, IC)不同。若 A 處理器需要執行較多簡單指令,其 MIPS 可能很高,但總執行時間反而比 MIPS 較低的 B 處理器更長。
- 忽略指令複雜度(CPI 差異):同一處理器執行不同程式時,CPI 會有所變化,導致 MIPS 隨程式而異。
因此,MIPS 不能單獨作為比較不同處理器整體效能(Overall Performance)的可靠指標。
-
(b) 錯誤
在無號整數(Unsigned Integer)的情況下,邏輯右移(Logical Right Shift) 位元確實等於整數除以 。然而,在補碼(Two's Complement)有號整數(Signed Integer)的情況下:- 標準整數除法(如 C 語言與多數 ISA)採向零取整(Truncate toward zero)。例如:。
第 8 題
- Consider a five-stage RISC-V/MIPS pipeline processor, describe what will happen in each stage when
executing the following instructions.
Id rd, immed(rs1) //load double word from mem[reg[rs1]+immed]
登入後即可作答並保存紀錄。
核心觀念
本題考驗經典五階段 RISC 管線處理器(5-stage RISC-V/MIPS Pipeline Processor)對**記憶體讀取指令(Load Instruction)**的執行流程與資料路徑(Data Path)細節。
典型的五階段管線包含以下五個順序執行的階段,各階段之間透過管線暫存器(Pipeline Registers,如 IF/ID、ID/EX、EX/MEM、MEM/WB)傳遞資料與控制訊號:
- IF(Instruction Fetch,取指階段)
- ID(Instruction Decode / Register Read,譯碼與暫存器讀取階段)
- EX(Execute / Address Calculation,執行與位址計算階段)
- MEM(Memory Access,記憶體存取階段)
- WB(Write Back,寫回暫存器階段)
指令 ld rd, immed(rs1) 的功能為從記憶體中讀取一個雙字組(Doubleword,64 位元 / 8 位元組),其目標記憶體有效位址(Effective Address)為基底暫存器 的數值加上符號擴充後的立即數 ,最後將讀出的資料寫回目的暫存器 中。
解題方法
分析 ld rd, immed(rs1) 在五階段管線處理器中每個階段的詳細運作機制與資料流動:
1. IF 階段(Instruction Fetch,取指階段)
- 動作:使用程式計數器(Program Counter, )儲存的位址,從指令記憶體(Instruction Memory)中擷取 32 位元的
ld指令碼。 - 計算:同時透過加法器計算下一個順序指令位址:
- 鎖存:將讀出的
ld指令碼與 鎖存至 IF/ID 管線暫存器 中,準備供下個階段使用。
2. ID 階段(Instruction Decode / Register Read,譯碼與暫存器讀取階段)
- 指令解碼與控制:主控制單元(Main Control Unit)解碼 IF/ID 中的指令碼,識別為 Load 指令,並產生該指令所需的所有控制訊號(如
ALUSrc、MemRead、RegWrite、MemtoReg等)。 - 暫存器讀取:根據指令中的來源暫存器欄位
rs1,從暫存器檔案(Register File)讀取基底暫存器的值 。 - 立即數擴充:立即數產生器(Immediate Generator)將指令中的 12 位元立即數
immed進行符號擴充(Sign-extension),生成 64 位元的擴充值 。 - 鎖存:將 、、目的暫存器代碼
rd及控制訊號鎖存至 ID/EX 管線暫存器 中。
3. EX 階段(Execute / Address Calculation,執行與位址計算階段)
- 位址計算:多工器根據控制訊號
ALUSrc = 1選擇符號擴充後的立即數作為算術邏輯單元(ALU)的第二個輸入源。ALU 執行加法運算,計算記憶體有效位址:
- 鎖存:將計算出的有效位址 、欲寫回的目的暫存器代碼
rd及 MEM/WB 階段需要的控制訊號鎖存至 EX/MEM 管線暫存器 中。
4. MEM 階段(Memory Access,記憶體存取階段)
- 記憶體讀取:在控制訊號
MemRead = 1作用下,將 EX/MEM 管線暫存器中的有效位址傳送至資料記憶體(Data Memory / Cache)的位址輸入端,從記憶體讀出 64 位元(8 位元組)的資料:
- 鎖存:將讀出的 64 位元資料、目的暫存器代碼
rd以及 WB 階段控制訊號鎖存至 MEM/WB 管線暫存器 中。
第 9 題
- What does TLB stands for in the memory hierarchy system?
Describe how will TLB miss handler deal with a TLB miss.
登入後即可作答並保存紀錄。
核心觀念
-
TLB 的全稱與定義:
- TLB 的全稱為 Translation Lookaside Buffer(中文常譯為轉譯後備緩衝區)。
- 它是一個位於記憶體管理單元(MMU)內的特殊高速快取記憶體(Cache),專門用於存放最近使用過的「虛擬頁碼(VPN, Virtual Page Number)至實體頁碼(PFN, Physical Frame Number)」之位址轉譯對(Page Table Entry, PTE)。
- 在記憶體階層(Memory Hierarchy)中,TLB 的存取速度極快(通常為 個 CPU 週期),能避免每次進行虛擬位址轉換時都必須存取位於主記憶體(DRAM)中的頁表(Page Table),有效降低平均記憶體存取時間(AMAT)。
-
TLB Miss(TLB 缺失):
- 當 CPU 發出虛擬位址欲存取記憶體時,MMU 會先在 TLB 中搜尋對應的轉譯紀錄。若未命中(即 TLB 內無該頁面的轉譯資料),稱為 TLB Miss。
解題方法
當 TLB Miss 發生時,系統必須取得實體位址。在計算機結構中,TLB Miss Handler 的處理機制主要分為 硬體管理(Hardware-managed TLB) 與 軟體管理(Software-managed TLB) 兩大類,解題時應將兩種架構的完整處理流程分別說明:
1. 硬體管理機制(Hardware-Managed TLB Miss)
代表架構:x86, ARM
- Step 1:硬體走訪頁表(Page Table Walk)
當 TLB 發生 Miss 時,MMU 硬體會自動讀取頁表基底暫存器(如 x86 的CR3暫存器),在主記憶體中進行多層頁表走訪(Page Table Walk),尋找對應的頁表項(PTE)。 - Step 2:判斷 PTE 狀態
- 狀況 A:PTE 存在於主記憶體中(Present bit / Valid bit = 1)
MMU 硬體自動將查到的 PTE 載入(Update)TLB 中,並自動重試(Retry)剛才被暫停的記憶體存取指令,完成位址轉譯。 - 狀況 B:PTE 顯示頁面不在主記憶體中(Present bit / Valid bit = 0)
硬體無法單獨解決,會觸發一個中斷異常 Page Fault(頁面錯誤),將控制權移交給作業系統核心(OS Kernel)的 Page Fault Handler(從磁碟將資料頁面載入 RAM,更新頁表後再返回重試指令)。
- 狀況 A:PTE 存在於主記憶體中(Present bit / Valid bit = 1)
2. 軟體管理機制(Software-Managed TLB Miss)
代表架構:MIPS, SPARC, Alpha
- Step 1:引發 TLB Miss 異常(Trap/Exception)
MMU 發現 TLB Miss 後,立刻暫停目前指令執行,硬體自動引發一個特權層級的 TLB Miss Trap,將 CPU 控制權移交給作業系統的 TLB Miss Handler。 - Step 2:軟體查表與寫入 TLB
- OS 的 TLB Miss Handler 執行一段經過高度優化的核心程式碼,從記憶體頁表中尋找該虛擬頁碼對應的 PTE。
- 找到 PTE 後,Handler 使用特權指令(例如 MIPS 的
tlbwi或tlbwr)將該 PTE 手動寫入 TLB 之中。
- Step 3:指令重試與例外接續
Handler 執行結束後返回使用者模式,重新執行引發 TLB Miss 的指令。若 Handler 在走訪頁表時發現該頁面尚未載入主記憶體(Page Fault),則會轉由作業系統的 Page Fault Handler 處理磁碟 I/O。
選項分析
第 10 題
- Dynamic branch prediction predicts branches at runtime using runtime information. Draw a 2-bit
branch predictor scheme. Mark each state with predictions output and transition conditions.
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機架構中**動態分支預測(Dynamic Branch Prediction)**的核心機制——2-bit 滯後/飽和計數器分支預測器(2-bit Saturating Counter / Hysteresis Branch Predictor)。
-
基本定義:
- 動態分支預測器在硬體執行期(Runtime)記錄分支指令歷史執行的結果(Taken 或 Not Taken),並以此預測未來該分支是否會發生跳躍。
- 1-bit 預測器僅紀錄上一次的結果,在遇到迴圈(Loop)結束或頻繁交替的分支時,容易發生連續兩次預測錯誤(Misprediction)。
- 2-bit 預測器具備 4 個狀態,導入滯後性(Hysteresis),要求分支指令必須連續兩次預測錯誤才會徹底改變預測方向,大幅減低迴圈開頭與結尾的預測懲罰。
-
狀態定義與輸出:
2-bit 預測器內部由一個 2-bit 的飽和計數器組成,共有 4 個狀態:- 狀態 (Strongly Taken):輸出預測 Taken (T)
- 狀態 (Weakly Taken):輸出預測 Taken (T)
- 狀態 (Weakly Not Taken):輸出預測 Not Taken (NT)
- 狀態 (Strongly Not Taken):輸出預測 Not Taken (NT)
解題方法
繪製 2-bit 分支預測器的狀態轉移圖時,必須明確標示狀態名稱/二進位編碼、該狀態對應的預測輸出(Predict T / Predict NT),以及在接收到實際執行結果(Taken / Not Taken)時的轉移條件。
1. 狀態轉移機制推導
- 實際結果為 Taken (T):推動狀態向「Strongly Taken ()」移動(計數器 ,最大值飽和於 )。
- 實際結果為 Not Taken (NT):推動狀態向「Strongly Not Taken ()」移動(計數器 ,最小值飽和於 )。
2. 2-bit 分支預測器狀態轉移圖(Finite State Machine Diagram)
+---------------------------------------+
| Taken (T) |
v |
+---------------+ Not Taken (NT) +---------------+
| Strongly Taken|---------------------->| Weakly Taken |
| (11) | | (10) |
| [Predict T] |<----------------------| [Predict T] |
+---------------+ Taken (T) +---------------+
|
| Not Taken (NT)
v
+---------------+ Taken (T) +---------------+
|Strongly NT |<----------------------| Weakly NT |
| (00) | | (01) |
| [Predict NT] |---------------------->| [Predict NT] |
+---------------+ Not Taken (NT) +---------------+
^ |
| Not Taken (NT) |
+---------------------------------------+