114 中山資工所硬體考點分析
第 3 題把 109 年的分支題再考一次並加上「信心估計器」的第四小問,第 6 題完整比較 VLIW、超純量與陣列處理器。
題型與配分
科目名稱:計算機結構【資工系碩士班甲組、乙組】,題號 434001,考試時間 100 分鐘。不可以使用計算機(問答申論題)。試題請隨卷繳回。
| 題號 | 配分 | 主題 |
|---|---|---|
| 1 | 18% | DRAM 更新的命令匯流排使用率 |
| 2 | 14% | 虛擬記憶體的位元拆解與頁表條目數 |
| 3 | 18% | 七級管線的分支誤判與信心估計器 |
| 4 | 14% | forwarding 硬體的成本效益分析 |
| 5 | 18% | 多執行緒的最少執行緒數(兩種切換策略) |
| 6 | 18% | VLIW、超純量、陣列處理器的三方比較 |
114 年有兩題是舊題重出:第 3.1–3.3 題與 109 年第 5 題一字不差(七級管線、分支在第六級解析、20% 是分支),114 年多加了第 3.4 小問的信心估計器;第 1 題與 112 年第 2 題是同一個 DRAM refresh 的題型。
全卷純計算機結構,不考作業系統。
第 1 題:DRAM 更新的匯流排使用率(18%)
8 個 bank、每個 bank 有 214 列(OCR 顯示為 21,依上下文應為 2 的某次方),每次更新命令佔用命令匯流排 5 ns。
- 1.1(6%)|更新間隔 64 ms 時的命令匯流排使用率,題目要求逐步寫出過程。考點是 refresh 開銷的基本定義:一個更新週期內,所有列各要被更新一次
- 1.2(12%)|若 70% 的列可以承受 256 ms 的更新間隔,使用率如何改變?並算出使用率的降幅 (1 − 新/舊)。考的是依列的保留能力分級更新(現代 DRAM 研究中 RAIDR 的概念)。陷阱是兩群列的更新頻率不同,要分開算再合併,不能直接拿 70% 去乘
第 2 題:虛擬記憶體的位元拆解(14%)
實體位址空間 256 MiB、虛擬位址空間 4 GiB、頁面 1 KiB、TLB 有 4 個 set、8-way 組相聯、LRU。
- 2.1(10%)|求頁內偏移、VPN、PPN、TLB index、TLB tag 各幾位元。標準的位址欄位拆解題。最常見的錯是把 8-way 的「路數」當成 set 數去算 index,以及 tag 忘了是從 VPN 切、不是從整個虛擬位址切
- 2.2(4%)|這個頁表有幾個條目。考單層頁表條目數由什麼決定,別跟實體頁框數搞混
第 3 題:七級管線的分支(18%)
七級管線、分支在第六級解析、20% 的指令是分支。
- 3.1(4%)|每次分支誤判浪費幾道指令。關鍵是「分支在第幾級才解析出來」
- 3.2(4%)|正確路徑上有 N 道指令、預測準確率為 A 時,總共擷取幾道指令(用 N、A 表示)
- 3.3(4%)|改用雙路徑執行(dual-path execution)時擷取幾道指令
- 3.4(6%)|結合分支預測與雙路徑執行:用信心估計器(confidence estimator)判斷預測的可信度,高信心時用預測器、低信心時用雙路徑。設高信心的比例為 C、高信心估計出錯的機率為 M,求擷取的指令數(用 N、A、C、M 表示)
- 這一小問是把前三小問統一成一個通式。寫完之後可以自己把極端值代回去,看會不會退化回 3.2、3.3 的結果,這是檢查有沒有推錯的好方法
第 4 題:forwarding 硬體的成本效益(14%)
典型的 n 道指令程式需要額外的 NOP 來處理資料危障。無 forwarding 時週期 250 ps、需要 0.4n 個 NOP;加上 forwarding 後 NOP 降到 0.05n,但週期變成 300 ps。
- 4.1(4%)|求加上 forwarding 的加速比。考「總時間 = 週期數 × 週期時間」,NOP 也要算進週期數
- 4.2(4%)|只有 0.075n 個 NOP 的程式,在有 forwarding 的管線上會不會跑得比較快?為什麼。題目沒有明講這支程式加上 forwarding 後 NOP 剩多少,答題時要自己寫清楚假設
- 4.3(6%)|程式至少要有多少比例的 NOP,才「可能」在有 forwarding 的管線上跑得比較快。反求損益兩平點,重點在「可能」兩個字對應的是最理想的情況
第 5 題:多執行緒的最少執行緒數(18%)
單發射循序多執行緒處理器,各操作延遲:load/store 13 週期(完全管線化)、整數加 1 週期、浮點加 6 週期(完全管線化)、分支 1 週期。沒有快取、完美分支預測。
每條執行緒跑的 RISC-V 程式:
loop: LD f2, 0(x1) # 載入資料到 f2
ADDI x1, x1, 4 # 移動指標
FADD f3, f3, f2 # f3 = f3 + f2
BNE f2, f4, loop # f2 != f4 就繼續
- 5.1(8%)|兩種切換策略(固定週期輪替、遇到資料相依才切換)下,要完全利用處理器各需要最少幾條執行緒?說明理由。先找出程式裡最長、最卡的相依鏈,再看兩種策略各自能把多少延遲藏起來
- 5.2(10%)|把 load/store 延遲改成 1 週期(浮點加仍是 6 週期),兩種策略各需最少幾條執行緒。陷阱是瓶頸會換人:load 變快之後,要重新檢查哪一條相依(包含跨迭代的相依)變成最長的
第 6 題:VLIW、超純量、陣列處理器(18%)
五小問都是論述題,每一問要求比較兩種架構的某一面:
- 6.1(3%)|三者的共同點
- 6.2(6%)|為什麼 VLIW 的微架構比「同寬度」的超純量簡單?給兩個理由
- 6.3(3%)|為什麼超純量可能比「同寬度」的 VLIW 效能更高
- 6.4(3%)|為什麼 VLIW 比陣列處理器更有彈性
- 6.5(3%)|為什麼陣列處理器比「同寬度」的 VLIW 簡單
考點集中在「靜態排程 vs 動態排程」與「MIMD 式的指令束 vs SIMD」這兩條軸線。每一問都有「同寬度」的前提,比較時要扣緊這個條件。
這份考卷的難點
- 第 3.4 題要把前三小問統一成一個通式。 式子裡有 A、C、M 三個機率,哪一個機率套在哪一群分支上很容易搞混,而且沒做邊界驗算很難確定自己推對了。
- 第 5 題要先找出「最長的相依鏈」。 5.1 與 5.2 的瓶頸不是同一條,5.2 還牽涉到跨迭代的相依,找錯瓶頸就整題錯。
- 第 4.3 題要反求「損益兩平點」。 這種「反求條件」的題型在中山很常見(112 年第 1.4 題也是)。
- 第 1.2 題的「分級更新」要分成兩群計算。 有一種錯誤算法碰巧得到相同的降幅數字,但推導是錯的,閱卷時仍會扣分。
準備建議
- 114 年第 3.1–3.3 題與 109 年第 5 題一字不差,第 1 題與 112 年第 2 題同型。中山硬體的舊題重出率不低,109 與 112 兩份一定要練
- 分支誤判的擷取指令數(第 3 題)要能自己用 N、A 推出通式,並延伸到雙路徑與信心估計器
- 多執行緒要幾條執行緒才能把延遲藏起來(第 5 題)是 Hennessy & Patterson 多執行緒章節的標準題型,固定切換與相依切換兩種策略都要會
- forwarding 的損益兩平點(第 4.3 題):練習「加硬體讓 CPI 下降、但時脈變慢」這類取捨題
- VLIW/超純量/陣列處理器的三方比較(第 6 題)是計算機結構最經典的對照題,三者各靠什麼開發平行性、代價在哪要能用自己的話講清楚
- DRAM refresh 的開銷(第 1 題)112、114 年連兩次考
- 100 分鐘六大題,第 5、6 題偏論述可以快速寫完,第 1、3、4 題的計算要留足時間