台大資工所考古題詳解硬體十年大統整(106–115)
各章配分
表中數字是各題的卷面配分,依主題加總。有子題的照子題分,沒有子題的整題算在主要考點,敘述判斷題算在多數敘述所屬的主題。111、112、115 年卷面沒有分計結與 OS,照題目內容歸類。顏色越深,占當年總分的比例越高。
| 章/細項 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 合計 | 占比 | 年數 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Operating Systems | 50 | 50 | 50 | 50 | 50 | 55 | 66 | 50 | 50 | 50 | 521 | 52% | 10 |
| CPU Scheduling | 5 | 5 | 4 | 10 | 12 | 10 | 9 | 10 | 15 | 80 | 8% | 9 | |
| Scheduling Algorithms | 5 | 5 | 2 | 10 | 8 | 7 | 5 | 10 | 52 | 5% | 8 | ||
| Real-time Scheduling | 2 | 4 | 10 | 2 | 5 | 5 | 28 | 3% | 6 | ||||
| Processes & Threads | 10 | 15 | 4 | 10 | 8 | 4 | 8 | 5 | 64 | 6% | 8 | ||
| Threads & Concurrency | 5 | 2 | 4 | 2 | 5 | 5 | 23 | 2% | 6 | ||||
| IPC & Signals | 10 | 2 | 10 | 22 | 2% | 3 | |||||||
| fork / wait / exec | 10 | 4 | 3 | 17 | 2% | 3 | |||||||
| Process States & Context Switch | 2 | 2 | <1% | 1 | |||||||||
| Memory Management | 10 | 15 | 10 | 10 | 10 | 7 | 62 | 6% | 6 | ||||
| Paging, Page Tables & TLB | 15 | 10 | 10 | 7 | 42 | 4% | 4 | ||||||
| Address Binding & Memory Layout | 10 | 10 | 20 | 2% | 2 | ||||||||
| I/O Systems | 9 | 5 | 15 | 10 | 15 | 54 | 5% | 5 | |||||
| Storage & File Systems | 5 | 5 | 7 | 10 | 5 | 2 | 10 | 10 | 54 | 5% | 8 | ||
| File System Design & Semantics | 5 | 2 | 10 | 2 | 5 | 24 | 2% | 5 | |||||
| File Allocation & Free Space | 5 | 10 | 15 | 2% | 2 | ||||||||
| Disk Scheduling & Management | 5 | 5 | 10 | 1% | 2 | ||||||||
| RAID | 5 | 5 | <1% | 1 | |||||||||
| Virtual Memory | 5 | 12 | 5 | 10 | 4 | 10 | 5 | 51 | 5% | 7 | |||
| Page Replacement | 2 | 10 | 2 | 10 | 5 | 29 | 3% | 5 | |||||
| Thrashing & Working Set | 10 | 2 | 12 | 1% | 2 | ||||||||
| Virtual Memory & Demand Paging | 5 | 5 | 10 | 1% | 2 | ||||||||
| Synchronization | 8 | 10 | 2 | 10 | 8 | 2 | 5 | 5 | 50 | 5% | 8 | ||
| Critical Section & Race Condition | 8 | 10 | 8 | 5 | 5 | 36 | 4% | 5 | |||||
| Semaphores, Mutex & Monitors | 10 | 10 | 1% | 1 | |||||||||
| Classic Problems & Transactions | 2 | 2 | 4 | <1% | 2 | ||||||||
| Other | 8 | 10 | 2 | 12 | 32 | 3% | 4 | ||||||
| Distributed Systems | 8 | 10 | 18 | 2% | 2 | ||||||||
| Other | 2 | 12 | 14 | 1% | 2 | ||||||||
| Protection & Security | 5 | 15 | 5 | 5 | 30 | 3% | 4 | ||||||
| OS Structure | 5 | 2 | 10 | 8 | 5 | 30 | 3% | 5 | |||||
| OS Structure & Design Goals | 2 | 10 | 5 | 17 | 2% | 3 | |||||||
| Virtual Machines & Containers | 8 | 8 | <1% | 1 | |||||||||
| System Calls & Dual Mode | 5 | 5 | <1% | 1 | |||||||||
| Deadlock | 2 | 10 | 2 | 14 | 1% | 3 | |||||||
| Safe State & Banker's Algorithm | 2 | 10 | 2 | 14 | 1% | 3 | |||||||
| Computer Organization | 50 | 50 | 50 | 50 | 50 | 45 | 34 | 50 | 50 | 50 | 479 | 48% | 10 |
| Parallel & Domain-specific | 10 | 4 | 18 | 15 | 10 | 10 | 14 | 30 | 20 | 131 | 13% | 9 | |
| Parallelism, Multicore & Coherence | 18 | 10 | 10 | 10 | 6 | 54 | 5% | 5 | |||||
| AI Accelerators & LLM Systems | 4 | 20 | 20 | 44 | 4% | 3 | |||||||
| Roofline & Arithmetic Intensity | 5 | 5 | 8 | 10 | 28 | 3% | 4 | ||||||
| SIMD, Vector & GPU | 5 | 5 | <1% | 1 | |||||||||
| Pipelining | 8 | 12 | 16 | 15 | 20 | 5 | 5 | 5 | 29 | 10 | 125 | 12% | 10 |
| Hazards & Forwarding | 2 | 2 | 5 | 5 | 5 | 5 | 17 | 10 | 51 | 5% | 8 | ||
| Pipeline Timing | 15 | 5 | 6 | 26 | 3% | 3 | |||||||
| ILP, Superscalar & OoO | 5 | 6 | 5 | 6 | 22 | 2% | 4 | ||||||
| Branch Prediction | 8 | 2 | 5 | 15 | 2% | 3 | |||||||
| Exceptions & Interrupts | 3 | 8 | 11 | 1% | 2 | ||||||||
| Memory Hierarchy | 19 | 8 | 4 | 10 | 10 | 5 | 10 | 5 | 8 | 5 | 84 | 8% | 10 |
| Cache Organization | 9 | 3 | 5 | 10 | 10 | 5 | 5 | 47 | 5% | 7 | |||
| Virtual Memory, TLB & VIPT | 5 | 4 | 5 | 8 | 22 | 2% | 4 | ||||||
| Cache Performance & Optimization | 10 | 5 | 15 | 2% | 2 | ||||||||
| ISA & Assembly | 5 | 8 | 5 | 10 | 8 | 5 | 41 | 4% | 6 | ||||
| Instruction Set Design & Encoding | 5 | 8 | 5 | 5 | 23 | 2% | 4 | ||||||
| Assembly & Code Translation | 5 | 5 | 8 | 18 | 2% | 3 | |||||||
| Performance | 8 | 10 | 5 | 5 | 10 | 38 | 4% | 5 | |||||
| CPU Time, CPI & Benchmarks | 8 | 10 | 5 | 23 | 2% | 3 | |||||||
| Power & Energy | 5 | 10 | 15 | 2% | 2 | ||||||||
| Other | 14 | 4 | 5 | 5 | 5 | 5 | 38 | 4% | 6 | ||||
| Other | 9 | 5 | 5 | 5 | 24 | 2% | 4 | ||||||
| Hardware Security | 5 | 4 | 5 | 14 | 1% | 3 | |||||||
| I/O & Storage | 12 | 12 | 1% | 1 | |||||||||
| I/O & Buses | 12 | 12 | 1% | 1 | |||||||||
| Datapath & Control | 5 | 5 | <1% | 1 | |||||||||
| Single-cycle Datapath & Control | 5 | 5 | <1% | 1 | |||||||||
| Computer Arithmetic | 5 | 5 | <1% | 1 | |||||||||
| Floating Point | 5 | 5 | <1% | 1 |
計組這邊分數最多的是 Parallel & Domain-specific(131 分)與 Pipelining(125 分,十年每年都有),113、115 兩年的 AI Accelerators & LLM Systems 各 20 分。OS 這邊是 CPU Scheduling(80 分,十年考九年),其中 real-time scheduling 考了六年。
重複出題清單
台大硬體很少原樣重考舊題,這點跟中央硬體差很多。不過有些主題隔幾年就會換個問法再出現:
| 主題 | 出現年度 |
|---|---|
| roofline model(arithmetic intensity → 可達效能 → 該優化什麼) | 106 第 3 題、109 第 1(j) 題、112 第 1–5 題、113 第 7 題 |
| VIPT cache 的 aliasing 條件 | 107 第 9 題(有無 aliasing)、111 第 14 題(哪些 associativity 可行)、114 第 14–15 題(index 溢出幾個 bit) |
| pipeline 各級延遲表(非 pipeline 週期、pipeline 週期、單指令 latency、某單元 utilization 四種問法) | 113 第 2 題、114 第 12 題 |
| register 數量與 instruction encoding 的取捨 | 106 第 5 題、111 第 17 題、112 第 8(B) 題、115 第 7(D) 題 |
| 兩個編譯器的 CPI 與 speedup | 111 第 4 題、114 第 11 題(同一模板換數字) |
| 沒有 forwarding 時的 stall 數、要插幾個 NOP | 109 第 1(c) 題、111 第 5 題、112 第 7 題、115 第 11 題 |
| 多 process 與 process 記憶體(fork、vfork) | 106 第 9(b)、11 題、108 第 7 題、114 第 3 題 |
| concurrency 與 parallelism 的區別 | 111 第 9(C) 題、114 第 9(B) 題 |
| real-time scheduling(RMS/DM/EDF)的可排程性 | 111 第 10 題(RMS)、112 第 16 題(帶 softness)、114 第 8 題(DM)、115 第 5 題(EDF 最佳性) |
| 十個是非題 | 109 第 2 題、113 第 9 題(八題主題相同:113 的 A、B、C、D 是 109 的 (a)、(b)、(c)、(e) 反過來寫,J 與 109 (j) 幾乎一字不差,F、H、I 對應 109 的 (g)、(h)、(i)) |
| 滑鼠事件到畫面重繪的軟體鏈路 | 107 第 12 題、113 第 10 題 |
| 開檔案的三層資料結構圖 | 111 第 3 題、114 第 6 題(同一張圖) |
| false sharing 與 block size | 110 第 6 題、111 第 19(D)(E) 題 |
| TEE/SGX 與 hardware security | 107 第 1、3 題(Meltdown)、108 第 2(c) 題、111 第 16 題 |
| big.LITTLE 與異質多核 | 108 第 6 題、111 第 19(A) 題 |
| 指令比例與時間比例的區別(Amdahl 陷阱) | 111 第 15(B) 題、115 第 12(A) 題 |
| cache blocking/tiling 的定義 | 109 第 1(g) 題、113 第 8(E) 題 |
如果時間不夠,先練三組:109 和 113 的是非題(各 20 分,八題主題相同)、107/111/114 的 VIPT、113/114 的 pipeline 延遲表。
台大硬體的三個特點
1. 題目跟著當年的技術熱點走
每隔幾年就會有一整段題目圍著當年的新聞或論文轉:
- 107 年:Meltdown/Spectre(2018 年 1 月爆發)。卷上直接印論文摘要,計結和 OS 兩段都在問,合計 43 分。
- 108 年:TEE、big.LITTLE、Snapdragon 670/850。
- 109 年:CNN 卷積層,佔計結 50 分整段。
- 112 年:Intel Core i7 的 roofline、memory consistency model。
- 113 年:LLM 整組題,G2 的 15 分依卷上印的 IEEE Spectrum MLPerf 報導作答,G3 的 20 分是 TinyChat 與 DGX GH200 的規格分析,合計 35 分。
- 115 年:LLM 推論的 quantization、memory hierarchy 與 CPU 到 NPU 的 PCIe 傳輸瓶頸(第 9、10 題各 10 分)。
所以考前可以把當年度的硬體新聞掃過一遍,像 IEEE Spectrum、MLPerf、新晶片發表這些。
2. roofline 出現過四次
| 年度 | 問法 |
|---|---|
| 106 第 3 題 | 給 roofline 圖,問哪些優化有效(多選、無部分分數) |
| 109 第 1(j) 題 | 自己算出卷積的 arithmetic intensity,再討論加 cache 與加向量單元對 roofline 的影響有什麼不同 |
| 112 第 1–5 題 | 從程式的存取模式一路算到 miss rate、arithmetic intensity、roofline 上的執行時間,最後問該優化什麼 |
| 113 第 7 題 | 拿 TinyChat 的實測 arithmetic intensity,判斷該加運算單元還是加 bandwidth |
四次的做法一樣:先算出或讀出 kernel 的 arithmetic intensity,看它落在 roofline 的哪一段,再決定該補哪種資源。109 和 113 還會問某個硬體改動動到的是 kernel 的點還是屋頂,所以每一種改動在圖上怎麼移,都要能畫出來。
3. 措辭相近的對照題
107 第 8 題寫「有資料相依的兩道指令未必造成 data hazard」,108 第 1(b) 題寫「有資料相依的兩道指令會造成 pipeline stall」,同一個觀念,一個說未必,一個說會。兩題要對著讀。是非題裡的 will、may、must 每個字都要看。
題型演變
| 年度 | 頁數 | 形式 | 最大單題 | 特色 |
|---|---|---|---|---|
| 106 | 5 | 申論 14 題 | 15 分 | OS 段第 9、10、11、14 題用台北市 IoT 交通號誌的情境串起來 |
| 107 | 5 | 申論+少量選擇 | 25 分 | Meltdown 漏洞相關題合計 43 分 |
| 108 | 5 | 8 大題(是非、單選、申論) | 25 分 | fork/vfork 只差一個字母的對照題 |
| 109 | 4 | 5 大題(含 10 個是非) | 50 分 | 計結 50 分整段只有一題(CNN 卷積,十個小問) |
| 110 | 6 | 只填答案 | 25 分 | 答案要抄進指定表格 |
| 111 | 10 | 單選 7+複選 12 | 10 分 | 第一次全選擇;第 18 題要推三次多項式係數 |
| 112 | 12 | 單選 8+複選 9 | 10 分 | 前 5 題共用一段程式,一路跑完 roofline |
| 113 | 9 | 複選 8+申論 4 | 20 分 | 卷上印了 IEEE Spectrum 的 MLPerf 報導,橫跨第 2–4 頁 |
| 114 | 11 | 單選+複選 18 題 | 10 分 | 四題把答案藏進係數等式;x86-64 反組譯 |
| 115 | 6 | 全卷複選 14 題 | 10 分 | 後六題各 10 分,含 LLM 推論的 quantization 與資料調度、能耗效率、逐拍 pipeline、file allocation、雙佇列 scheduling |
形式從手寫申論變成選擇題,頁數從 4–6 頁增加到 9–12 頁(111 年 10 頁、112 年 12 頁、113 年 9 頁、114 年 11 頁),113 年還把一篇英文技術報導印進考卷。115 年回到 6 頁。
倒扣規則逐年對照
十年之中卷面沒有任何一年寫明倒扣。變的是作答形式和計分細節,大致分三個階段:
| 年度 | 形式 | 計分規定 | 特殊要求 |
|---|---|---|---|
| 106 | 全手寫申論 | 不倒扣 | 第 6(a) 題不寫計算過程只能拿部分分數 |
| 107 | 全手寫申論 | 不倒扣 | 作答於「非選擇題作答區」,標明題號依序作答 |
| 108 | 全手寫申論 | 不倒扣 | 第 6(a) 題明訂「不解釋零分」 |
| 109 | 全手寫申論 | 不倒扣 | Part I 50 分整段只有一題 |
| 110 | 只填答案 | 不倒扣 | 要把卷首表格抄到答案卷第一頁,表格外一律不計分;第 8 題全對才給分 |
| 111 | 全選擇(單選+複選) | 單選不倒扣;複選逐選項計分,錯誤選項零分、不倒扣 | 無 |
| 112 | 全選擇 | 同上 | 多一句「整題空白則該題零分」,2B 鉛筆劃卡 |
| 113 | 半卡半卷 | 複選逐選項計分、不倒扣 | 第 1–8 題劃卡、第 9–12 題手寫;沒照題號順序作答可能不計分 |
| 114 | 全選擇 | 複選逐選項計分,錯誤選項零分、不倒扣 | 卷首寫明作業系統、計算機結構兩個子科目各 50 分(113 年是在 Part I、Part II 標題各標 50 points) |
| 115 | 全卷複選 | 逐選項計分、不倒扣,整題空白則該題零分 | 沒有單選,也沒有申論 |
這張表看下來有三件事會影響作答策略:
- 不倒扣。111 年起錯的選項只是零分,112、115 年另外明訂整題空白零分,所以每題每個選項都要填。中央硬體多數年度是逐選項倒扣,邏輯剛好相反,兩校一起準備的話要分開練。
- 各年規定差很多。106 第 6(a) 題、108 第 6(a) 題明訂不寫計算過程或不解釋會扣分,109 第 2 題錯誤的敘述要寫理由,到了 110 年變成只有表格裡的答案才算分,而且要先把卷首那張表格抄到答案卷第一頁。進場先讀作答規定。
- 111 年是分水嶺,之後改成全選擇。113 年回到一半手寫,114、115 又全部劃卡。
給 116 年考生的準備方向
- 每題每個選項都要填。十年卷面都沒有寫倒扣,112、115 年整題空白零分。中央硬體多數年度是逐選項倒扣,策略不同。
- 進場先讀作答規定。106、108 各有一題明訂不寫過程或不解釋會扣分,110 年只有表格內的答案算分,113 年前 8 題劃卡、後 4 題手寫還要照題號順序。
- roofline 要練熟整條路:由存取模式算 miss rate,再算 arithmetic intensity,在 roofline 上定位,最後判斷該補強哪一種資源。
- VIPT 的 aliasing 條件考過三種問法:有無 aliasing(107)、哪些 associativity 可行(111)、index 溢出幾個 bit(114)。要能從位元切法自己推出條件,只背結論換個問法就卡住。
- pipeline 延遲表在 113、114 連兩年出現。非 pipeline 週期、pipeline 週期、pipelined 單指令 latency、某單元 utilization 這四個量各自怎麼算要分清楚,台大會把它們混在選項裡互相對調。
- 109 和 113 各有十個是非題(各 20 分),八題主題相同。Belady's anomaly、two-phase locking 的保證範圍、firmware 在 RAM 還是 ROM 執行、UNIX 與 session semantics、safe state 與 deadlock 的關係,這幾個主題要讀熟。
- 113、115 連著考了低精度 quantization 與系統層 bandwidth 分析。可以補這幾塊:
- FP8 的 E4M3/E5M2 格式(exponent bias、最大值、dynamic range 與精度的取捨)
- quantization 跟 bandwidth 的關係:記憶體受限的 kernel 改變資料位元寬度,throughput 怎麼變
- 從規格表做瓶頸分析:HBM/DDR/PCIe/NVLink 的 bandwidth,各階段時間算出來再找瓶頸
- 能耗:dynamic power = C×V2×F、Energy × Delay 指標、power gating 和 DVFS 的差別
- 111 到 114 年頁數增加到 9–12 頁,要練先掃配分再決定作答順序。112 年前五題各 2 分、後四題各 10 分;115 年後六題就佔 60 分。
本頁的題型、配分、計分規則都取自 106–115 年度試卷上的標示,各章配分是逐題分類後加總的。如果發現有誤,歡迎來信指正。
最後更新:2026-10-23