115 中正資工所考古題詳解|硬體考點分析
全卷 7 大題 3 頁,沒有選擇題區與填空題區,系所組別不再分甲組。第 1 題 30 分用同一組位址跑三種 cache,第 7 題 30 分要證明讀寫 spinlock 的 mutual exclusion 與並行性。
最後更新:2026-10-22
題型與配分
全卷 3 頁、7 題、100 分。系所組別為「資訊工程學系」,不再分甲組。全卷沒有選擇題區與填空題區,只有第 2 題是三選一。答案寫在試卷(答案卷)作答區內,限用藍色或黑色筆(含鉛筆),試題須隨試卷繳還。入場後 40 分鐘內不得離場。卷面沒有倒扣規定。
| 題號 | 配分 | 主題 |
|---|---|---|
| 1 | 30% | 同一組位址跑三種 cache 組態 |
| 2 | 5% | main memory 變大時 cache 容量是否要跟著變 |
| 3 | 5% | 深 pipeline 的 clock rate |
| 4 | 10% | big.LITTLE 的平均功耗 |
| 5 | 10% | CPU scheduling 與 I/O 效能 |
| 6 | 10% | Copy-on-Write |
| 7 | 30% | 讀寫 spinlock 的證明 |
逐題考點
- 第 1 題(30%)|32 位元、以位元組定址的系統,單一 cache 總容量 4 KB、block 16 bytes,比較三種組態:direct-mapped、4-way set-associative、fully-associative。cache 一開始是空的,兩種相聯式用 LRU,寫入採 write-back 與 write-allocate。依序處理 10 次存取(R 為讀、W 為寫):(1) R 0x12345678、(2) R 0x1234567C、(3) W 0x12345670、(4) R 0x12346678、(5) R 0x12347678、(6) W 0x12348678、(7) R 0x12345674、(8) R 0x12349678、(9) R 0x1234667C、(10) W 0x1234867C。對每種組態判斷每次存取是 hit 或 miss,並寫出總 hit 數與 miss 數
- 第 2 題(5%)|承第 1 題,main memory 從 4 GB 增加到 16 GB,系統要正常運作,cache 總容量(4 KB)是否一定要增加(Increase、Decrease 或 No Change Required)
- 第 3 題(5%)|程式在電腦 A 上執行 10 秒,A 是 5 級 pipeline、平均 CPI 1.0、clock rate 2 GHz。新機器 B 是 10 級 pipeline,目標執行時間 6 秒,更深的 pipeline 使平均 CPI 增加到 1.2,指令數相同,求 B 必須達到的 clock rate
- 第 4 題(10%)|ARM 的 big.LITTLE 架構:一個 big core 與一個 LITTLE core,同時只有一個 core 運作,LITTLE core 運作時耗電 2 W,big core 8 W,閒置的 core 耗電不計。程式完全在 LITTLE core 上要 10 秒,其中 30% 的執行時間是效能關鍵的程式碼,big core 執行這一部分比 LITTLE 快 4 倍,切換 core 沒有額外負擔。關鍵部分在 big core 執行、其餘在 LITTLE core 執行,求平均功耗(瓦)
- 第 5 題(10%)|CPU scheduling 與 I/O 效能。(a) 說明為什麼要讓 I/O-bound process 盡早取得 CPU,才能讓 I/O throughput 最大。(b) 以 Multilevel Feedback Queue 為例,說明如何動態辨識 I/O-bound process 並調整 priority
- 第 6 題(10%)|用 Copy-on-Write 最佳化
fork()。(a) 說明fork()剛完成時,parent process 與 child process 的 PTE 應如何設定。(b) child process 寫入共享頁面時會觸發 page fault,kernel 如何分辨這是 Copy-on-Write 造成的,還是非法的記憶體存取 - 第 7 題(30%)|用 atomic operation 實作的簡單讀寫 spinlock(Simple Reader-Writer Spinlock),已知
atomic_sub(addr, val)atomically 從*addr減去 val 並回傳舊值,atomic_add是 atomic 加法。卷上給init_spinlock、writer_lock、reader_lock、reader_unlock、writer_unlock的程式碼,鎖的初始值為MAXVAL = 0x40000000。(a) 證明寫者與讀者之間的 mutual exclusion。(b) 證明多個讀者可以同時進入 critical section(Concurrency)
作答時要注意的地方
- 全卷沒有選擇題區與填空題區,卷面沒有倒扣規定。
- 第 1 題要對三種組態的十次存取逐一判斷 hit 或 miss,並寫出總數。
- 第 7 題是證明題,要求證明 mutual exclusion 與並行性。
- 第 2 題的選項寫在題目裡:Increase、Decrease 或 No Change Required。
準備方向
- 同一組位址跑多種 cache 組態(115 第 1 題),107 第 8 題、111 第 6 題、113 第 4 題用兩種 block size。
- CPU 效能方程式(115 第 3 題),109 第 6、8 題、111 第 3 題、113 第 5 題也有。
- 能耗與功率(115 第 4 題,big.LITTLE),其他年度沒有。
- MLFQ 與 I/O-bound process(115 第 5 題),108 第 1(4) 題、109 第 1(9) 題、113 第 1(7) 題也有 MLFQ。
- Copy-on-Write(115 第 6 題),109 第 1(2) 題也有,112 單選第 2 題考 unified virtual memory。
- synchronization primitive 的正確性證明(115 第 7 題),109 第 1(5) 題、110 第 1(7)(8)(9) 題、111 第 1(1) 題、112 多選第 2 題、114 單選第 5 題也有 synchronization 題。
- cache 總容量與 main memory 大小的關係(115 第 2 題),114 填空第 2 題也有 cache 位元數。
其他年度與考科
同一年的其他科
同一科的其他年度
同一年其他學校的硬體