115 師大資工所硬體考點分析
第 4 題丟一整頁記憶體 hex dump 要你手動走完兩層頁表,15 分是師大硬體六年最硬的一題。
題型與配分
科目「計算機系統」,適用系所:資訊工程學系,全卷 4 頁、9 大題、100 分(頁數是六年最多,因為第 4 題的記憶體 dump 獨佔一整頁)。
| 題號 | 配分 | 歸屬 | 主題 |
|---|---|---|---|
| 1 | 10% | OS | 保護核心需要哪些硬體支援 |
| 2 | 10% | OS | inode 是什麼 |
| 3 | 15% | OS | Round-Robin 的平均周轉時間 |
| 4 | 15% | OS | 兩層頁表的位址轉換(看 hex dump) |
| 5 | 10% | 計組 | 時脈率反推 |
| 6 | 10% | 計組 | MIPS 位移與邏輯運算 |
| 7 | 10% | 計組 | 乘除法合併硬體的暫存器配置 |
| 8 | 10% | 計組 | 單週期資料路徑的最小週期時間 |
| 9 | 10% | 計組 | 快取的 tag 位元與總位元數 |
OS 50 分(第 1–4 題)、計算機組織 50 分(第 5–9 題),師大連續五年(111–115)精準對半、一分不差。
沒有倒扣,全卷申論與計算題。第 1、2 題明寫「用一句話/至多兩句」 ⇒ 這 20 分要的是精準,不是長度——寫一大段反而容易把關鍵字埋掉。
第 4 題是師大硬體六年來最硬的一題:丟一整頁 57 列的記憶體 hex dump,要你自己找到頁目錄、讀出 PDE、跳到頁表、讀出 PTE、算出實體位址。這是 OSTEP(《Operating Systems: Three Easy Pieces》)分頁章節作業的原始題型。
逐題考點
- 第 1 題(10%)|保護作業系統核心需要哪些硬體支援(題目限制「至多兩句」)
- 考的是 OS 保護機制的硬體基礎,要在兩句裡涵蓋執行模式、記憶體、CPU 控制權這幾個面向
- 只寫出一種機制的名稱拿不到滿分——要說明硬體怎麼強制執行
- 第 2 題(10%)|inode 是什麼(題目限制「一句話」)
- 一句話裡要講到它的數量對應關係、存了哪些東西
- 想想檔名存在哪裡——這是最容易被忽略、也最能展現理解的一點,也能連到 hard link 的原理
- 第 3 題(15%)|Round-Robin(時間量 3)的平均周轉時間
- 這題的勝負全在一條規則:時間量用完的程序,與「這段期間新到達者」誰先排進佇列
- 問的是 turnaround time 不是 waiting time,不要再減掉 burst
- 第 4 題(15%)|兩層頁表的位址轉換——師大硬體六年來最硬的一題
- 題目丟一整頁 57 列的記憶體 hex dump,要自己找到頁目錄、讀出 PDE、跳到頁表、讀出 PTE、算出實體位址
- 這是 OSTEP(《Operating Systems: Three Easy Pieces》)分頁章節作業的原始題型
- 第一步是切開虛擬位址:由頁面大小得 offset 位元數;由「一頁裝得下幾個條目」得每層索引的位元數
- 每一層都要先檢查 VALID 位元再往下走
- 讀 dump 的訣竅:先搞清楚 VALID 位元在條目的哪個位置,無效的條目可以快速跳過;數位元組時固定幾個一組數,用筆尖逐格點,一格都不能跳
- 第 5 題(10%)|時脈率反推:兩顆處理器都要把執行時間縮短 20%,但 CPI 會增加 20%
- 把新舊執行時間的比值寫成一個等式,看看原本的 CPI 與時脈在式子裡會不會留下來
- 只把時脈提高 20% 是最常見的錯法——忘了 CPI 也同時惡化了
- 第 6 題(10%)|MIPS 位移與邏輯運算後的暫存器內容
- (a) 左移幾位+OR、(b) 右移幾位+
andi - 全題最大的陷阱:
andi的立即數怎麼擴展到 32 位元。邏輯類與算術類立即數指令的擴展方式不同,記錯方向會讓高 16 位元算錯 srl與sra的差別——題目用的是哪一個要看清楚- 逐個 hex digit 做位元運算比攤成 32 個位元快得多
- 第 7 題(10%)|乘除法合併硬體的暫存器配置與位移方向
- 題目已示範「被乘數放在 32 位元的那個暫存器、不位移」,要你答乘數與商各放哪裡、往哪個方向位移
- 要能畫出 Patterson & Hennessy 的乘法器與除法器硬體,比較兩者的結構,就能看出為什麼它們能共用同一組暫存器
- 第 8 題(10%)|單週期資料路徑的最小週期時間,且只需支援條件式 PC 相對分支
- 必須真的去追路徑,不能把所有延遲加起來
- 題目限定「只支援 beq」,要想清楚 beq 會走過資料路徑上的哪些元件、哪些用不到
- 列出所有候選路徑逐條比較;ALU 的 Zero 輸出延遲算在哪裡、多工器要不要算這些細節要想清楚
- 第 9 題(10%)|快取的 tag 位元數與總位元數
- 「4096 個 double-word」講的是資料容量還是區塊數,要先判斷清楚
- 總位元數要包含資料、tag 與 valid,valid 位元不能忘
- 位址是 64 位元不是 32 位元——習慣 32 位元的話 tag 會算錯
這份考卷的難點
- 第 4 題要在一頁 57 列、每列 32 個位元組的 dump 裡精準數到指定位置。 數錯一格,整題 15 分全沒。這題還要同時處理兩層索引的切法,是六年來單題難度最高的一題。
- 第 8 題必須真的去追路徑,不能把延遲全部加起來。 題目限定的指令類型會影響哪些元件在關鍵路徑上——看到延遲最大的元件就直接加進去是刻意設的誘餌。
- 第 6(b) 題的
andi立即數擴展。 記錯方向會讓高 16 位元算錯。 - 第 5 題要同時處理「時間縮短 20%」與「CPI 惡化 20%」兩個變動。 兩個因子要一起進到同一個等式裡——只想到其中一個就會少乘一項。
- 第 9(b) 題有三個容易漏的細節:容量的意義、valid 位元、位址寬度。
- 第 1、2 題各 10 分卻限制「一到兩句」。 20 分靠的是關鍵字密度。
準備建議
- 115 年的兩層分頁 dump 題值得專門練一輪。 這是 OSTEP 分頁章節作業的原始題型,網路上有大量同款題目。練習重點:(1) 算出每層索引的位元數、(2) 從 dump 裡數出正確的位元組、(3) 每一層都要先檢查 VALID 位元
- 師大的位址轉換題兩種都考過:111 年的分段(segmentation) 與 115 年的兩層分頁。兩種的共通點是「每一步都要驗證合法性」
- 單週期資料路徑的關鍵路徑分析(第 8 題)要練到能對五種指令(R-type、lw、sw、beq、j)分別列出走過哪些元件
- MIPS 立即數的擴展規則(第 6 題):邏輯類與算術類的差別,以及兩種右移的差別
- 乘除法合併硬體(第 7 題):兩種硬體的暫存器配置與位移方向要能畫出來
- CPU 效能方程式的變形要練熟(第 5 題)。當題目同時動兩個變數時,先把新舊比值寫成一個等式再解,不要分開想
- 快取的總位元數(第 9 題):「容量」給的通常是資料容量,要先換算成區塊數
- 簡答題要抓關鍵字不要抓字數(第 1、2 題)