考點分析 / 中山 / 111

111 中山資工所硬體考點分析

第 2 題用「完全沒有區域性」的假設反推頁錯誤率與 TLB 大小,第 5 題要自己設計一個能跑指定程式的最小可行 ALU。

題型與配分

科目名稱:計算機結構【資工系碩士班甲組、乙組】,題號 434001,考試時間 100 分鐘。不可以使用計算機(問答申論題)。試題請隨卷繳回。

題號配分主題
110%五個觀念問答(虛擬記憶體、TLB、快取一致性)
230%4 GB 程式配 2 GB DRAM 的頁表、頁錯誤率與 TLB 大小
325%三種快取組態的總位元數 + TLB 與頁表大小
420%AMAT 與「要幾核才能讓效能加倍」
515%五級管線的停頓、最小可行 ALU 設計、加法器移位

111 年的卷名改為「碩士班暨碩士在職專班招生考試」(前幾年是「碩士暨碩士專班」),科目與題號不變。

全卷純計算機結構,不考作業系統。

第 1 題:五個觀念問答(10%)

  • 1(2%)|為什麼需要虛擬記憶體?優缺點是什麼。優點與缺點都要寫,缺點常被漏寫
  • 2(2%)|TLB 通常遠小於頁表,所以用全關聯是好選擇;如果把 TLB 變大,全關聯還是好選擇嗎。考全關聯的硬體代價如何隨條目數成長,以及實務上大型 TLB 的替代設計
  • 3(2%)|多層快取寫入資料時,什麼一致性策略較合適。考 write-through 與 write-back 在不同層級的取捨,要能說出各自的代價
  • 4(2%)|多字區塊(multi-word block)與組相聯(set-associative)的差異與優缺點。兩者都能降低失誤率,但降的是不同類型的失誤,這是本題的核心
  • 5(2%)|為什麼非阻塞快取(nonblocking cache)能提升快取頻寬。考 hit-under-miss、miss-under-miss 的概念

第 2 題:4 GB 程式配 2 GB DRAM(30%)

程式需要 4 GB 記憶體空間,但系統只配給 2 GB DRAM;頁面 4 KB、write-back + LRU。

  • 1(10%)|頁表至少多大。條目數與每個條目的位元數都要交代,控制位元(valid、dirty、reference)要依題目的 write-back + LRU 設定決定放哪些
  • 2(10%)|CPU 完全隨機存取(沒有任何區域性)時,準穩態的近似頁錯誤率。這題的精髓是:沒有區域性時,LRU 之類的替換策略就沒有意義了,命中率只跟容量有關
  • 3(10%)|若系統有 TLB 且準穩態下 TLB 失誤率為 75%,TLB 至少多大。延續 2.2 的思路反推 TLB 條目數,再乘上每條目的位元數。算出來的數字會大得不合常理,那正是題目想讓你看到的

第 3 題:三種快取組態與 TLB/頁表(25%)

32-bit 處理器、快取 16 KB 資料、write-back + LRU。

  • 1(5%)|直接對映、單字區塊的總位元數
  • 2(5%)|直接對映、四字區塊的總位元數
  • 3(5%)|2-way、四字區塊的總位元數
  • 三小題是同一個容量的三種組態,比較三個結果就能看出「區塊變大」與「關聯度變高」對 tag 開銷的影響
  • 步驟都一樣:由區塊大小得 offset、由「區塊數 ÷ 關聯度」得 set 數與 index,剩下的才是 tag;write-back 的 dirty 位元別漏
  • 4(5%)|32-bit 位址、TLB 有 10 個條目、頁面 4 KB 時,TLB 多大
  • 5(5%)|對應的頁表多大。條目數與每條目位元數要各自算出來再相乘,控制位元最容易漏

第 4 題:AMAT 與多核(20%)

時脈週期 1 ns、單層快取、失誤罰則 20 cycles、平均失誤率 5%、快取存取 1 cycle;程式有 40% 可平行執行。

  • 1(10%)|平均記憶體存取時間。AMAT 標準公式,注意題目要的單位
  • 2(10%)|要用幾個核心才能讓系統效能加倍?請說明。這題要先判斷「能不能做到」,題目特別要求說明理由。把 Amdahl 的式子列出來求解之後,要會解讀算出來的結果代表什麼

第 5 題:五級管線與 ALU 設計(15%)

卷上給一張五級管線 MIPS 的資料路徑圖(含 forwarding 與 hazard 相關單元)與一段程式:

sub  $2,  $1, $3
and  $12, $2, $5
or   $13, $6, $2
add  $14, $2, $2
sw   $15, 100($2)
  • 1(5%)|這個架構跑這段程式需不需要停頓?若要,停幾個週期? 這段是 Patterson & Hennessy 講 forwarding 的經典範例程式。答案取決於你對圖上資料路徑的判讀(有沒有 forwarding、有哪幾條轉送路徑),回答時要先交代判讀
  • 2(5%)|為了支援這段程式,設計一個最小可行的 ALU(MVP)並畫出架構。做法是先逐條掃過程式,列出每道指令實際上要 ALU 做哪一種運算(別忘了 load/store 的位址計算也要用到 ALU),取聯集就是最小需求。要畫出 1-bit ALU 的結構與 32 位元的串接
  • 3(5%)|能不能把第三級(EX)的加法器移到第二級(ID)?如果可以,要怎麼重新設計。先釐清題目指的是哪一個加法器,再說明移動之後對控制危障的影響與代價

這份考卷的難點

  1. 第 2.2 與 2.3 題的「無區域性」假設非常反直覺。 一般題目都假設有區域性,這裡卻問「完全隨機存取時會怎樣」。第 2.3 題順著推下去會算出一個大得荒謬的 TLB 容量,那個數字本身就是題目要傳達的訊息。
  2. 第 4.2 題要先判斷「做不做得到」再動筆。 很多人硬解方程式算出不合理的數字,卻不知道那代表什麼。
  3. 第 5.2 題要自己設計最小 ALU。 這是「從需求反推硬體」的設計題,不是背誦題,而且很容易多放了不需要的功能或漏了位址計算。
  4. 第 3 題的三種組態要算三次總位元數,重點在比較不同組態的 tag 開銷差異。

準備建議

  • 「沒有區域性時命中率會怎樣」(第 2 題)是中山很喜歡的反向思考,要能從機率的角度推出來
  • Amdahl's Law 的極限(第 4.2 題):序列部分會把加速比的上限鎖死。要練習判斷「這題是不是根本做不到」
  • 快取總位元數的多組態比較(第 3 題)是中山八年的固定題型(108 年第 4.1–4.3、110 年第 4.2、111 年第 3 題)
  • TLB 與頁表的位元數:兩者在「需不需要存 tag」上的差別要搞清楚
  • 最小可行 ALU 的設計(第 5.2 題):1-bit ALU 的結構(AInvert、BInvert、Operation、CarryIn)要能畫出來。中山、交大都愛考
  • 把分支相關的硬體從 EX 提前到 ID(第 5.3 題)是 Patterson & Hennessy 的標準最佳化,好處與代價都要會講
  • 非阻塞快取(第 1.5 題)
  • 100 分鐘五大題,第 2、3 題的計算量最大,建議先做第 1、5 題的觀念與設計題,再攻計算

想看完整逐題詳解?

國立中山大學 108–115 全年度完整詳解共 179 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科