111 成大資工所硬體考點分析
第 4 題一題 50 分、十個小問全部在問 I/O 子系統,是十年來最集中的一次。第 3 題同一組位址要跑三種快取。
題型與配分
科目:計算機組織與系統,系所「電機資訊學院-資訊聯招」,日期 0219、節次 1,全卷 100 分、4 頁、4 大題。不可使用計算機、於本試題紙上作答者不予計分。
| 題號 | 配分 | 主題 |
|---|---|---|
| 1 | 20% | 十個是非題(效能、浮點、快取、GPU、roofline) |
| 2 | 15% | 管線完成週期(有/無 forwarding) |
| 3 | 15% | 同一組位址跑三種快取 |
| 4 | 50% | I/O 子系統(十個小問) |
第 4 題一題就佔 50 分,而且十個小問全部圍繞 I/O 子系統——這是成大硬體十年裡單一主題配分最高的一次。I/O 這一章沒讀就直接失去一半分數。
OS 與計組的比重:計組 50%(第 1、2、3 題)、OS 50%(第 4 題)。
第 1 題:十個是非題(20%)
- a|「電腦使用率低時耗電也少」——考能源比例性(energy proportionality)
- b|給 A 機(100 億指令、4 GHz、CPI 1.0)與 B 機(80 億指令、4 GHz、CPI 1.2),判斷「A 的 MIPS 較高但 B 較快」是否成立。要分別算出兩機的執行時間與 MIPS 再比較,這是 MIPS 指標侷限性的經典例子
- c|PC 在
0x00000600,能否用一道beq跳到0x00020000。考 beq 位移欄位的寬度與範圍,要算清楚位移是以什麼為單位、相對於哪一個 PC - d|IEEE754 單精度最小正正規化數的位元樣式是否為
0000_0001_0000..._0000。考正規化數的指數欄位範圍 - e|−0.7510 的 IEEE754 表示是否為
1_01111110_1000...0。自己轉一次再比對 - f|「相較於 PIPT,VIPT 的主要優點是失誤率較低」——考 VIPT 到底改善的是 AMAT 的哪一個因子
- g|「全關聯快取沒有衝突失誤」——考衝突失誤的定義
- h|「GPU 靠深管線架構隱藏 DRAM 的長延遲」——考 GPU 隱藏延遲的機制
- i|看 roofline 圖判斷 Kernel 1 是否受記憶體頻寬限制。要會讀 roofline 圖的斜線與水平線各代表什麼
- j|「TLB 失誤但不發生頁錯誤是可能的」——考 TLB 失誤與頁錯誤的關係
第 2 題:管線完成週期(15%)
給一段含兩個分支的 MIPS 程式與實際執行順序(第一次 not taken、之後 taken),採用 predict-taken 預測器、分支結果在 EX 級決定、無延遲槽。第一道指令在第 5 週期完成。
- a. 5%|無 forwarding 時,填出後五道指令各在第幾個週期完成
- b. 10%|完整 forwarding 時,同樣填出五個週期數
要同時處理三件事:資料危障的停頓(有無 forwarding 差很多,load-use 要特別看)、暫存器檔讀寫時序的假設、predict-taken 在實際不跳時的誤判罰則。分支誤判與資料危障的停頓會互相疊加,要畫完整的時序圖才不會算錯。
第 3 題:同一組位址跑三種快取(15%)
字位址序列:3, 180, 2, 43, 191, 88, 190, 14, 181, 88(10 個)。
- a. 5%|直接對映、1-word 區塊、總容量 8 words:標出每次存取的命中或失誤並算命中率
- b. 5%|2-way、2-word 區塊、總容量 8 words,用 LRU
- c. 5%|全關聯、2-word 區塊、總容量 8 words,用 LRU
三種組態的區塊數、set 數都不同,要分別重算。2-word 區塊時要先把字位址換成區塊號再取 index。這是 108 年第 1 題的延伸版(那年是兩種快取,111 年變成三種)。
第 4 題:I/O 子系統(50%)
- a. 5%|裝置驅動程式能對裝置控制器下哪些種類的命令與資料(提示:透過特殊或標準 I/O 指令)。要講到控制器上有哪幾類暫存器,以及兩種下命令的方式
- b. 5%|小量資料、延遲導向的 I/O 該用 CPU 還是 DMA、為什麼。判準是 DMA 的固定設定成本與傳輸量的比值
- c. 5%|DMA 需要實體位址,但虛擬到實體的轉換很耗時,什麼硬體裝置可以協助這個轉換
- d. 6%|依描述寫出三個 I/O 服務的名稱:
- i. 2%|「資料從應用程式傳往裝置期間暫存資料的記憶體區」
- ii. 2%|「存放資料副本的快速記憶體區,存取副本比存取原始資料更有效率」。與上一小題的差別在「暫存原始資料」與「存放副本」
- iii. 2%|「為無法接受交錯資料流的 I/O 裝置保存輸出的記憶體區」(提示:一次只能服務一個工作)
- e. 4%|非同步 I/O 可以用上述三種技術中的哪一種來實作、為什麼。關鍵是「哪一種機制能讓應用程式交出資料後立刻繼續執行」
- f. 5%|swap 空間用「檔案系統內的檔案」還是「獨立磁碟分割區」,哪種實作效率較好、為什麼。要從有沒有經過檔案系統的資料結構去比較
- g. 5%|固定 swap 空間下不斷增加多工度會發生什麼現象
- h. 5%|用工作集模型防止上述現象:三個程序的工作集大小為 WSS(a)、WSS(b)、WSS(c),可用頁框為 d。要用數學式寫出「OS 該暫停某個程序」的條件
- i. 5%|多工並行 I/O 環境下,FCFS、SCAN、LOOK 哪一族表現較好、為什麼
- j. 5%|當磁碟佇列長度固定為 1 時,哪一族表現較好、為什麼。要想清楚佇列長度對排程演算法的意義
這份考卷的難點
- 第 4 題一題 50 分、十個小問全在 I/O 子系統。 這一章在很多人的複習清單裡排在最後,但成大在 111 年給了它一半的分數。buffering/caching/spooling 的定義區分、DMA 的位址轉換、swap 空間的兩種實作、工作集的數學式這些細節都要能寫出來。
- 第 4(j) 題要想到佇列長度的影響。 一旦看出關鍵,比較就變得很單純,但很多人不敢寫出看起來「太簡單」的結論。
- 第 1(b) 題要真的算兩次才敢確定。 兩個指標的結論可能相反。
- 第 2 題要畫兩張不同的管線時序圖,而且 predict-taken 預測器在第一次 not taken 時會誤判。分支誤判的罰則與資料危障的停頓會互相疊加。
準備建議
- I/O 子系統這一章絕對不能跳過。111 年給了 50 分,而且問得非常細。要準備的清單:
- buffering/caching/spooling 三者的定義差異
- programmed I/O、interrupt-driven I/O、DMA 各自適用的場景
- DMA 與虛擬記憶體的配合
- swap 空間的兩種實作與效率差異
- 磁碟排程各族在不同負載下的表現
- 工作集模型(第 4(h) 題)要能寫成數學式
- 快取追蹤要練到能同時處理三種組態(第 3 題):直接對映、組相聯、全關聯。每種的區塊數與 set 數都不同,先算清楚結構再追蹤
- 十個是非題(第 1 題,20 分)幾乎全是課本正文等級,其中幾個是跨校高頻陷阱:MIPS 指標的侷限、VIPT 改善的是哪個因子、GPU 怎麼隱藏延遲
- IEEE754 的位元樣式(第 1(d)(e) 題)要能直接寫出來,不用查表
- 成大硬體從 110 年起都是「少題大分」,一題 15–50 分。沒有選擇題可以猜,準備時要求完整而非廣泛