106 中央資工所硬體考點分析
多選 13 題逐選項倒扣、單選 7 題答錯扣 2 分。單選有四題把答案藏在「算完再 mod 5」後面,禁用計算器還要手算 MIPS 與 CPI。
題型與配分
所別「資工類」,科目:作業系統與計算機組織,全卷 100 分、7 頁、20 題。本科考試禁用計算器。
| 區段 | 題號 | 配分 | 計分 |
|---|---|---|---|
| 多選 | 1–13 | 65%(每題 5 分) | 每一選項單獨計分,答錯倒扣 1 分 |
| 單選 | 14–20 | 35%(每題 5 分) | 答錯倒扣 2 分 |
這一年的卷面沒有寫「倒扣到該大題 0 分為止」——106 是中央硬體十年裡少數沒有註明倒扣下限的年度(108 起才固定加上這句)。實際計分以當年度為準,但作答時要當成可能扣到負分來保守處理。
單選 15–18 四題都是「算出 K,再回答 K mod 5」。這是中央獨有的設計:答案被 mod 5 壓成 0–4 五個選項,所以猜中率固定 20%,而且算錯一步就完全看不出來——沒有「接近的選項」可以反推。
OS 與計組的比重:OS 約 45%(第 6–13、19 題),計組約 50%(第 1–5、14–18 題),計算機網路 5%(第 20 題)。
計算機組織考點
- 第 1 題(5%)|布林代數恆等式:五個式子逐一驗證,包含
X+YZ=(X+Y)(Y+Z)這種分配律變形與(X+Y)(Y+Z)(X+Z)的共識定理(consensus theorem)。只能靠展開或真值表,五個選項各是獨立一分。分配律變形那一項的變數位置要看仔細,跟課本的形式不一定一樣 - 第 2 題(5%)|single-cycle 對 multi-cycle——選項圍繞三件事:單週期的時脈由誰決定、同一個功能單元能不能在一道指令內重複使用、現代主流處理器實際上採用哪一種。中間那一項跟多週期存在的理由直接相關,方向最容易記反
- 第 3 題(5%)|pipeline 資料相依的偵測邏輯:給 SUB/AND/OR/ADD/SW 五道指令,問 forwarding 單元用哪一條比較式抓到哪一組相依。要分清哪一個管線暫存器對應哪一種距離的相依,以及
SW R9,100(R2)裡 R2 與 R9 各自的角色 - 第 4 題(5%)|分支預測——選項涵蓋 1-bit 與 2-bit 預測器改變預測所需的連錯次數、BHT 用分支位址的哪一端位元做索引、delayed branch slot 能填什麼指令。其中有一項是把位元的高低端對調
- 第 5 題(5%)|指令集設計——五個敘述涵蓋 Reg-Reg 架構的 CPI 變異大小、MIPS 的記憶體對齊要求、暫存器間接定址的語意、PC-relative 的基準、編譯器技術演進對暫存器數量的影響。有幾項是把「大/小」「增/減」的方向反過來寫
- 第 14 題(5%)|管線加速比:ALU 40%/4 cycles、Branch 30%/4、Memory 30%/5,未管線化時脈 1 ns、管線化 1.2 ns、理想 CPI = 1。兩邊的時脈不一樣,加速比要以「每道指令的平均時間」比較
- 第 15 題(5%)|minterm 展開:已知 F1 的 minterm 集合當範例,要自己把 F2 = A'B'D + CD' + A'BC' + ABD 展開成 minterm,依題目定義加總得 K,再取 K mod 5。題目對 Xi 的定義要一字一字讀,照範例驗算一次再做 F2
- 第 16 題(5%)|本質質含項(essential prime implicant):七項的 F3 要畫四變數卡諾圖,數出 EPI 個數。要分清「質含項」與「本質質含項」
- 第 17 題(5%)|兩台機器的 MIPS:A 機 2 GHz、B 機 2.2 GHz,各給四類指令的指令數與 CPI。題目問的是「比較慢的那一台」的 MIPS,要先比出快慢再算
- 第 18 題(5%)|二階快取對 CPI 的影響:base CPI = 4、主記憶體 100 ns、L1 miss rate 8%;加入 20 ns 的 L2 後 miss rate 降到 2%。要先把時間換算成時脈週期,並分清楚 2% 是哪一層、哪一種失誤率
作業系統考點
- 第 6 題(5%)|手持裝置的 OS 需要什麼:批次程式設計、虛擬記憶體、分時、中斷驅動 I/O、RAID 五選。考的是手持裝置的定位與硬體限制
- 第 7 題(5%)|硬體沒有特權模式時,如何仍然做出安全的 OS——選項圍繞「用軟體手段補上硬體缺少的保護」。這題與 107 年第 10 題、108 年第 12 題連續三年出現,一字不差
- 第 8 題(5%)|多執行緒共享什麼:heap、全域變數、暫存器、堆疊、區域變數五選。最基本的送分題
- 第 9 題(5%)|哪些排程演算法會造成飢餓:FCFS、SJF、Priority、Round Robin。要想清楚每種演算法有沒有「一直被插隊」的可能。這題與 109 年第 4 題完全相同
- 第 10 題(5%)|把 CPU-bound 應用多執行緒化,各段該開幾條執行緒——兩個子問題的限制因素不同,要逐段找出是什麼資源在限制平行度。分不清就會兩小題都錯
- 第 11 題(5%)|綜合判斷——涵蓋 使用者程序能不能自行改頁表、執行緒能不能在處理器間遷移、dirty bit 對換出開銷的作用、test-and-set 需不需要是特權指令。最後一項要想清楚 test-and-set 是給誰用的
- 第 12 題(5%)|policy 對 mechanism:「root 的程序優先權較高」「密碼每 90 天要換」「可執行程序存在 heap 裡」「用計時器收回核心」等敘述要分類。中央很愛考這組辨析,107 年第 9 題接著問「分離兩者的目的」
- 第 13 題(5%)|死結與銀行家演算法——涵蓋 銀行家演算法屬於預防/避免/偵測/復原的哪一類、它對程序提出的前提要求、以及 unsafe 狀態的意涵。unsafe 與 deadlock 的關係是中央十年裡最常被扣分的一個點
- 第 19 題(5%)|fork 迴圈:
for (i=0;i<3;i++) fork();產生幾個新程序。題目問的是 new processes,要分清「新增的」與「總共的」 - 第 20 題(5%)|子網路可用主機數:給一個
/27網段求可用主機數。「可用」兩個字是這題的陷阱
這份考卷的難點
- 四題連續的「mod 5」把部分分數全部歸零(15–18 題)。第 18 題要同時處理 base CPI、兩層 cache 的 miss penalty、時脈換算,中間任何一步的單位錯了,最後的 mod 5 完全看不出異常。
- 多選 65 分全部逐選項倒扣,而且第 1 題的布林恆等式、第 5 題的 ISA 敘述都是「五個選項各自獨立」的細節題,憑印象勾就是負分。
- 第 15 題的題意容易誤讀:題目對 Xi 的定義如果讀成 0/1 指示變數,會得到完全不同的 K。
- 第 3 題要同時掌握兩件事:哪一組指令構成 hazard,以及 forwarding 單元實際使用的比較式長什麼樣。只知道「有相依」但背不出 Patterson & Hennessy 裡的偵測條件式就答不了。
準備建議
- 中央硬體的 OS 題幾乎年年重複:第 7 題(無特權模式)在 107 年第 10 題原樣重考、第 9 題(飢餓)在 109 年第 4 題原樣重考、第 12 題(policy/mechanism)在 107 年第 9 題換個問法再考。106 與 107 兩份一起練,CP 值最高
- 「mod 5」的答題策略:這類題沒有部分分數也沒有相近選項,算完務必用第二種方法覆核一次
- 計組的五大常考塊在這一年全部出現:布林化簡(1、15、16)、單/多週期與管線(2、3、14)、分支預測(4)、cache 階層(18)、效能公式(14、17)。這五塊就是中央硬體十年的骨架
- fork 的程序數(第 19 題)要能從程序樹推出通式,中央在 112 年第 2 題用遞迴函式換皮再考一次
- 禁用計算器,所以 CPI、MIPS、AMAT 的數字都要練到能手算。中央的數字設計通常很乾淨,算到一半發現數字很醜通常就是前面錯了