113 中山資工所硬體考點分析
難度明顯回到標準題型,七大題幾乎全是 Patterson & Hennessy 的課後習題。卷首首度加註「題意不清可自行假設並寫明」。
題型與配分
科目名稱:計算機結構【資工系碩士班甲組、乙組】,題號 434001,考試時間 100 分鐘。不可以使用計算機(問答申論題)。試題請隨卷繳回。
| 題號 | 配分 | 主題 |
|---|---|---|
| 1 | 8% | Amdahl's Law 與通訊開銷 |
| 2 | 8% | GPU 的尖峰浮點吞吐量與頻寬限制 |
| 3 | 18% | 管線各級延遲、總執行時間與單元使用率 |
| 4 | 15% | 三種分支預測器的額外 CPI 與加速比 |
| 5 | 15% | 快取追蹤表格與總位元數 |
| 6 | 16% | 直接對映與 2-way 的 AMAT 及 CPU 時間比較 |
| 7 | 20% | 單層頁表大小與 TLB/頁表的狀態追蹤 |
113 年卷首首度加註:「若某些題目對你而言不清楚或定義不完整,你可以自行做假設並在答案卷上清楚說明」——這與中山軟體考科(作業系統與資料結構)109–114 年的註記一致。
113 年的題目明顯回到標準教科書題型,與 112 年全部是反推/設計題形成強烈對比。七大題幾乎全部可以在 Patterson & Hennessy 的課後習題中找到對應。
全卷純計算機結構,不考作業系統。
第 1 題:Amdahl's Law 與通訊開銷(8%)
80% 的應用可平行化。
- 1.1(4%)|8 個處理器、忽略通訊成本的加速比
- 1.2(4%)|每當處理器數加倍,通訊開銷就增加原始執行時間的 0.5% 時的加速比。陷阱是「加倍了幾次」,不是乘上處理器數
第 2 題:GPU 的吞吐量(8%)
時脈 2.0 GHz、16 個 SIMD 處理器、每個含 16 個單精度浮點單元、晶片外記憶體頻寬 600 GB/s。
- 2.1(4%)|不考慮記憶體頻寬時的尖峰單精度吞吐量
- 2.2(4%)|在記憶體頻寬限制下這個吞吐量能否維持?請說明理由。題目沒有給每次運算要搬多少資料,要自行假設並寫明(這正是卷首註記的用意),再比較所需頻寬與可用頻寬。考的是 roofline 模型與算術強度的觀念
第 3 題:管線各級延遲(18%)
各級延遲 IF 250、ID 150、EX 350、MEM 300、WB 200 ps;指令組合 alu 45%、beq 10%、lw 25%、sw 20%。
- 3.1(4%)|非管線化與管線化的時脈週期
- 3.2(4%)|
lw與beq的個別總延遲。非管線化時要先講清楚採用的假設(單週期設計下所有指令一樣長,還是各指令只走自己用到的級) - 3.3(6%)|連續四道指令(lw、sw、add、beq)的總執行時間,非管線化與管線化各算一次
- 3.4(4%)|資料記憶體與「Register」單元寫入埠的使用率。關鍵是哪些指令類別會用到這兩個單元,逐類判斷就好
這是 Patterson & Hennessy 第四章的標準模板,台大、交大也出過同一型。
第 4 題:分支預測器的額外 CPI(15%)
指令組合:R-Type 40%、BEQ 20%、JMP 5%、LW 25%、SW 10%;預測器準確率:Always-Taken 40%、Always-Not-Taken 60%、2-Bit 80%。分支在 EX 級解析、五級管線、無資料危障、無延遲槽。
- 4.1(5%)|Always-Taken 的額外 CPI
- 4.2(5%)|2-bit 預測器的額外 CPI
- 4.3(5%)|用 Always-Taken 時,若能把「一半的分支指令」換成 ALU 指令,加速比是多少(正確與錯誤預測的指令被替換的機會相同)
先決定誤判罰則:分支在哪一級解析決定了要沖掉幾道指令。4.3 要注意指令數有沒有改變。
第 5 題:快取追蹤與總位元數(15%)
- 5.1(9%)|字位址序列
3, 180, 43, 2, 191, 88, 190, 14, 181, 44, 186, 253(12 個),直接對映、two-word 區塊、共 8 個區塊。卷上直接給一張要填的表格(欄位為:字位址、二進位位址、tag、index、命中/失誤),第一列已示範:字位址 3 ⇒ 二進位0000 0011、tag 0、index 3、Miss。 - 陷阱是 two-word 區塊:index 不是直接取字位址的低位,要先去掉區塊內的 word offset
- 5.2(6%)|直接對映、32 KiB 資料、8-word 區塊、32-bit 位址的總位元數。標準的 tag/index/offset 拆解,再加上 valid 位元
第 6 題:兩種快取組態的效能比較(16%)
完美快取的 CPI = 2.0、時脈週期 1.0 ns、每指令 1.5 次記憶體參考、兩種快取都是 64 KB、64-byte 區塊;一個直接對映、一個 2-way。因為組相聯要多一個選擇多工器,2-way 的 CPU 時脈週期要拉長 1.3 倍。失誤罰則都是 80 ns、命中時間 1 個週期、直接對映失誤率 1.5%、2-way 失誤率 1.1%。
- 6.1(8%)|兩者的平均記憶體存取時間。要把 2-way 的命中時間變長也算進去,不能只看失誤率
- 6.2(8%)|兩者的 CPU 時間。失誤罰則的週期數要依各自的時脈換算,而時脈變慢會影響所有指令,不只是記憶體存取
這是 Patterson & Hennessy 的經典例題,重點是 AMAT 與 CPU 時間兩個指標不一定給出同一個結論。算完之後要能解釋兩個結果為什麼會這樣。
第 7 題:虛擬記憶體(20%)
- 7.1(8%)|虛擬位址 42 bits、實體 DRAM 16 GiB、頁面 4 KiB、PTE 4 bytes:求 PTE 數量與單層頁表所需的實體記憶體。算完之後拿去跟實體記憶體容量比一比,就知道為什麼需要多層頁表
- 7.2(12%)|TLB 與頁表的狀態追蹤:卷上給初始的頁表狀態(valid 位元與「實體頁或在磁碟」)與初始的 4 條目全關聯 TLB(valid、tag、實體頁號),真 LRU 置換。
- 位址串流:4669、13916、…
- 要對每次參考判斷是 TLB 命中、頁表命中、還是頁錯誤,並填出最終的 TLB 與頁表狀態
- 若必須從磁碟載入,就把頁號遞增到下一個最大的頁號(題目的特別規定,容易漏看)
- TLB 的 LRU 順序要每一步都更新,包括 TLB 命中的時候
這份考卷的難點
- 第 6 題的兩個指標要分開判斷。 時脈拉長會影響「所有」指令,而不只是記憶體存取。這是 Patterson & Hennessy 反覆強調的觀念,只算 AMAT 就下結論是最常見的錯。
- 第 7.1 題算出來的頁表大小本身就是重點,要能說出它代表什麼。
- 第 5.1 題要填 12 列 × 5 欄的表格,每列都要算二進位位址、tag、index 並判斷命中失誤。9 分但工作量極大,而且不能用計算器。
- 第 2.2 題要自己設定「每次運算需要多少位元組」的假設。題目沒有明說算術強度,要自行假設並說明。
準備建議
- 113 年回到標準教科書題型,是中山硬體八年裡最適合「照課本準備」的一份。七大題幾乎全部對應 Patterson & Hennessy 的課後習題
- AMAT 與 CPU 時間的比較(第 6 題)是跨校高頻考點,要練到能解釋兩個指標差在哪裡
- 單層頁表的大小(第 7.1 題)是多層頁表存在的理由
- 管線各級延遲的四個問法(第 3 題):非管線週期、管線週期、單指令延遲、單元使用率。與台大 107/113/114、交大都是同一個模板
- 分支預測的額外 CPI(第 4 題):先確定誤判罰則,再乘上比例
- 卷首允許「自行假設並寫明」——遇到條件不足的題目,大膽設定合理假設並清楚寫出來,不要空白
- 100 分鐘七大題,第 5.1 題的表格與第 7.2 題的狀態追蹤最耗時,建議放到最後做