112 中正資工所硬體考點分析
首度切成單選、多重選擇、填空三段。多重選擇明訂「所有答案必須符合才算分」,填空題則要從 Linux 核心的鎖順序註解推出死結條件。
題型與配分
科目名稱:計算機系統,系所組別「資訊工程學系-甲組」,第 3 節,全卷 100 分、4 頁。
| 區段 | 題數 | 配分 | 計分 |
|---|---|---|---|
| I. 單一選擇題 | 5 | 25%(每題 5 分) | 單選 |
| II. 多重選擇題 | 5 | 25%(每題 5 分) | 所有答案必須符合才算分(全對才給分) |
| III. 填空題 | 10 格 | 50%(每格 5 分) | 不需要作答過程,但每個答案務必標明題號與空格編號 |
112 年是中正硬體十年裡結構最特殊的一年:首度切成單選/多選/填空三段,而且填空題就佔 50 分。
多重選擇明訂「所有答案必須符合才算分」——全對才給分、不倒扣,所以每題都要作答。
填空題明訂「不需要作答過程」,但每個答案必須標明題號與空格編號——格式不對可能不計分。
I. 單一選擇題(25%)
- 1|看五個程序的 CPU burst/I/O burst/到達時間表,用「達成最小平均等待時間的最佳排程演算法」問時間 23 在跑哪個程序。先判斷「最佳演算法」指的是哪一個,再畫出含 I/O 的完整甘特圖
- 2|「統一虛擬記憶體用什麼機制同時快取程序頁與檔案資料」——與 110 年第 1(3) 題、成大 112 年第 1(4) 題一字不差
- 3|關於 MIPS(每秒百萬指令數)這個效能指標哪個正確——要知道 MIPS 在什麼前提下才能拿來比較效能,選項就是拿這個前提的有無來設計
- 4|算術運算的綜合判斷——涵蓋 浮點加法的結合律、算術右移與除以 2 的冪(負數要特別小心)、乘除法硬體能不能共用、Booth 演算法用在哪一種運算、兩個正數相加得到負數代表什麼。要逐條仔細比對
- 5|關於 RISC 與 CISC 哪個是錯的——帶「總是」這類絕對字眼的選項要先挑出來檢查
II. 多重選擇題(25%,全對才給分)
- 1|哪些敘述是「不正確」的——涵蓋 掛載點是目錄還是一般檔案、現代 OS 知不知道磁碟的實體幾何結構(LBA 的意義)等。後者與 110 年第 1(5) 題是同一個觀念
- 2|哪些是「硬體式」的同步工具——要能把選項分成三類:硬體同步指令、軟體同步演算法、以及根本不是同步工具的東西
- 3|哪些情況「必定」引發上下文切換——三個判斷點:中斷發生後是不是一定會換程序、程序狀態圖上有沒有那條轉換、「模式切換」與「上下文切換」是不是同一件事
- 4|圖 1 的程式碼有哪些相依或危障:
lw $1, 10($0)
lw $2, 20($0)
add $3, $2, $4
lw $1, 30($0)
lw $1, 40($0)
選項同時列出各種危障與各種相依(RAW/WAR/WAW)。題目把「相依」與「危障」放在一起問,要分清相依是程式本身的性質、危障是在特定管線上才會出問題的相依。逐對檢查每兩道指令的暫存器讀寫關係
- 5|能解決圖 1 中危障的技術有哪些——要先確定 II-4 裡哪幾種危障真的存在,再逐一判斷每種技術對得上哪一種。有些技術在這段程式裡完全用不上
III. 填空題(50%,10 格)
- 1(a)|24-bit CHS 位址的最大磁碟容量:10 bits 磁柱、8 bits 磁頭、6 bits 磁區,每磁區 512 bytes。這是 IBM PC 早期 BIOS 的著名限制
- 1(b)|C-SCAN 的尋道距離:給七個十六進位 CHS 位址(
1AC320、A2F5BC、7A182D、EF6714、F0D76、C0F1D1、FF2236),要先從每個位址取出前 10 bits 當磁柱號,再跑 C-SCAN 算總移動距離(用十進位回答)。F0D76只有五個十六進位數字,取位元前要先想清楚怎麼補 - 2(c)|Linux 核心
/mm/filemap.c預先定義鎖順序的目的是打破哪個死結條件。考死結的四個必要條件與死結預防 - 3(d)|銀行家演算法:五個工作 T0–T4、四種資源 A/B/C/D,總量 (6,7,6,10),給 Allocation 與 Max。問 OS 最多能立刻核准 T0 請求多少資源。要先求 Available,再檢查 Request ≤ Need、Request ≤ Available,還要確保核准後系統仍在安全狀態——最後一個條件最容易漏
- 4(e)|「___ 是用多顆磁碟來解決儲存系統效能與可靠度問題的技術」。送分題
- 5(f)|把一串 IEEE754 單精度位元轉成十進位。三步驟:指數欄減 bias、尾數補回隱含的 1、再乘上符號與 2 的指數次方
- 6(g)|完美快取相對於實際快取的加速比:I-cache 失誤率 3%、D-cache 失誤率 5%、無停頓 CPI = 2、失誤罰則 100 cycles、35% 的指令存取資料快取。I-cache 每道指令都會存取,D-cache 只有部分指令會,兩者的停頓要分開算再加總
- 7(h)(i)|平均記憶體存取時間:5 GHz、CPI 1.0、失誤率 2%、DRAM 存取 100 ns。
- (h) 只有 L1 時的 AMAT
- (i) 加上 L2(存取 5 ns、整體主記憶體失誤率降到 0.5%)的 AMAT
- L1 命中時間題目沒有直接給 ns,要從時脈換算;(i) 給的 0.5% 是全域失誤率,寫式子時要注意
- 8(j)|兩個加總用 1000 個處理器的加速比:一個是兩個純量變數相加(無法平行)、一個是 1000×1000 二維陣列的矩陣相加(可完全平行)。這是 Patterson & Hennessy 講 strong scaling 的經典例題
這份考卷的難點
- 填空題佔 50 分而且「不需要作答過程」——沒有部分分數。第 1(b) 題的 C-SCAN 要先把七個十六進位位址拆出磁柱號再排序,任何一步錯就是 5 分全失。
- 第 II-4 題要分清「相依」與「危障」。 有些相依在循序單發射管線裡不會造成危障,但它確實是一種相依。
- 第 III-1(b) 題的位元拆解:十六進位轉二進位再切出前 10 bits,工作量大、容易抄錯。
- 第 III-7 題的 AMAT 單位:命中時間要從時脈換算成 ns,而 DRAM 存取直接給 ns。單位不統一就會算錯。
準備建議
- 112 年的填空題佔 50 分且不給部分分數,所以計算題要練到一次算對。算完後用第二種方法覆核
- 兩層快取的 AMAT(第 III-7 題):要注意題目給的是區域失誤率還是全域失誤率
- 死結的四個必要條件與預防方法(第 III-2 題):Linux 核心的鎖順序是真實世界的例子
- 相依與危障的區別(第 II-4 題):RAW/WAR/WAW 三種相依,哪些會在哪種管線造成危障
- 中正的單選題重複率極高:「統一虛擬記憶體用 page cache」在 110、112 兩年都考,而且與成大 112 年一字不差
- 多重選擇「全對才給分、不倒扣」 ⇒ 每題都要作答,而且要把每個選項獨立判斷完再下筆
- 中正十年無倒扣,全部題目都要寫