114 中正資工所硬體考點分析
沿用 112 年的單選/多選/填空三段結構。填空第 5 題要算三層頁表各級 PTE 的實際位址,是十年最細的一題。
題型與配分
科目名稱:計算機系統,系所組別「資訊工程學系-甲組」,第 4 節,全卷 100 分、3 頁。
| 區段 | 題數 | 配分 | 計分 |
|---|---|---|---|
| I. 單一選擇題 | 6 | 30%(每題 5 分) | 單選 |
| II. 多重選擇題 | 4 | 20%(每題 5 分) | 所有答案必須符合才算分 |
| III. 填空題 | 10 格 | 50%(每格 5 分) | 不需要作答過程,但要標明題號與空格編號 |
114 年沿用 112 年的三段結構(單選/多選/填空),填空題一樣佔 50 分且不給部分分數。
OS 與計組的比重:計組 50%、OS 50%。
I. 單一選擇題(30%)
- 1|效能比較,哪個敘述是錯的——核心觀念:效能由指令數、CPI、時脈三者共同決定,單看任何一項都不夠
- 2|暫存器相關敘述,哪個是錯的——關鍵分界:在高階語言的開發流程裡,暫存器配置是誰的工作
- 3|哪種架構特性「無助於」編譯器產生程式碼——要從「這個特性讓編譯器的工作變簡單還是變複雜」去判斷
- 4|分散式檔案系統的主要功能——「透明性(transparency)」是分散式系統的核心詞彙,要能說出它指的是什麼
- 5|由行為描述反推是哪一種同步機制——要能把 mutex、semaphore、condition variable、monitor 的行為各寫一句
- 6|DMA 的主要目的——送分題
II. 多重選擇題(20%,全對才給分)
- 1|關於分支預測哪些正確——涵蓋 它針對哪一種危障、2-bit 與 1-bit 預測器的比較、靜態與動態預測的比較、迴圈展開對分支預測的影響。有兩個選項用了「總是」這種絕對字眼,要優先檢查
- 2|數字表示與 ALU,哪些敘述是錯的——涵蓋 1 的補數與 2 的補數誰是主流、各有幾個零、零延伸的用途、小位元 ALU 能不能疊成大位元 ALU
- 3|現代檔案系統通常提供哪些功能——涵蓋日誌、檔案版本管理、跨節點複寫、階層式目錄。判斷點在題目的「typically」界定到多寬
- 4|使用中斷的好處有哪些——涵蓋 回應延遲、CPU 在等待期間能不能做別的事、非同步通訊、以及對驅動程式複雜度的影響。要想清楚每一項是「好處」還是「代價」
III. 填空題(50%)
- 1|記憶體階層中快取與記憶體之間的對映單位。送分題
- 2|32-bit 位址、直接對映、128 KB 資料、4-word 區塊時的總位元數。「總位元數」要包含 tag 與 valid,不是只算資料
- 3|五級管線執行一段程式:
add $2, $1, $3
and $12, $2, $5
sub $13, $6, $2
or $14, $2, $2
- (a) 這段程式碼中的相依是哪一種
- (b) 無任何技術時執行需要的週期數。答案取決於暫存器檔能不能同週期先寫後讀,要先確定假設再算停頓
- (c) 可以用什麼技術解決危障
- 這段程式是 Patterson & Hennessy 講 forwarding 的經典範例(中山 111 年第 5 題用的是同一段的加長版)
- 4|SRTF 下三個程序的等待時間:每個程序有第一段 CPU burst → I/O burst → 第二段 CPU burst。P1(0, 5, 4, 7)、P2(2, 6, 3, 5)、P3(4, 8, 5, 6)。要畫出含 I/O 的完整甘特圖,算出
<P1, P2, P3>的等待時間。程序做完 I/O 回來時要重新參與 SRTF 的比較,而且等待時間只算在就緒佇列裡的時間,不算 I/O - 5|三層頁表各級 PTE 的位址:32-bit 虛擬位址切成 第一層 10 bits、第二層 10 bits、第三層 6 bits、偏移 6 bits;三層頁表的基底位址分別是
0x1000、0x2000、0x3000;每個 PTE 4 bytes、頁面 64 bytes。虛擬位址是0x1A3F5C。 - 步驟:把位址展開成 32 位元二進位 → 按 10/10/6/6 切段 → 每段索引乘以 PTE 大小再加上該層基底
- 陷阱是
0x1A3F5C只寫了六個十六進位數字,展開成 32 位元時前面要補零,補錯位置整題全錯 - 6|號誌的值:連線池最多 4 條連線,2 條執行緒取得連線、再有 1 條釋放,求號誌目前的值。考計數號誌的初值與 wait/signal 的語意
- 7|LRU 的頁錯誤數:參考串
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2、3 個頁框,逐步模擬。這是 Silberschatz 課本參考串的變形 - 8|RAID 0+1(8 顆磁碟)最多能容忍幾顆故障而不遺失資料(前提是沒有整個分條組全毀)。要分清 RAID 0+1 與 RAID 1+0 的結構,並仔細讀題目給的前提條件,它決定了「最多」指的是哪一種情況
這份考卷的難點
- 填空第 5 題是十年最細的一格。 要展開位址、切段、乘以 PTE 大小再加基底,還要用十六進位回答。任何一個步驟錯,三個答案全錯。
- 填空第 8 題要分清 RAID 0+1 與 RAID 1+0。 兩者的容錯行為不同,而且題目特別加了前提條件,讀題不仔細就會答成另一種情況。
- 填空第 4 題要畫含 I/O 的 SRTF 甘特圖。 程序會離開 CPU 再回到就緒佇列,回來時要重新參與 SRTF 的比較。
- 填空第 2 題的「總位元數」要包含 tag 與 valid 位元,不是只算資料。
準備建議
- 多層頁表的位址計算(填空第 5 題)要練到反射:展開成二進位 → 按各層位元數切段 → 索引 × PTE 大小 + 該層基底。這是中正十年最細的一題,但步驟很固定
- RAID 0+1 對 RAID 1+0(填空第 8 題):兩者的結構與容錯能力要能畫圖說明。台大 114 年第 2(d) 題也考同一個對調
- 含 I/O burst 的排程甘特圖(填空第 4 題)是中正近年的固定題型(112 年第 I-1 題也是)
- 快取總位元數(填空第 2 題):tag、valid、資料三部分都要算
- 「絕對字眼」要優先檢查(多選第 1 題的「always」出現兩次)
- 數值表示(多選第 2 題):1 的補數與 2 的補數的差異是最常考的一格
- 填空題不給部分分數,所以計算要一次到位,算完務必覆核
- 中正十年無倒扣,全部題目都要寫