114 專利師高等考試 專利師(選試專業日文及計算機結構) 計算機結構 考古題詳解
第 一 題25 分
Amdahl’s Law 是評估電腦效能的重要概念:
(一) 說明它的意義。(5 分)
(二) 它對於改善電腦效能有何幫助?(5 分)
(三) 程式 在電腦 上執行需要 100 秒,其中乘法指令占了 40%,請問有沒有可能藉由改善乘法器的速度達到把程式 的執行速度加倍的目的?若是可以,該把乘法器的速度加強到幾倍?若是不可以,那是為什麼?(15 分)
登入後即可作答並保存紀錄。
核心觀念
Amdahl’s Law(阿姆達爾定律)用來估算:只改善電腦系統中某一部分時,整體效能最多能提升多少。關鍵在於,程式執行時間中只有一部分受該項改善影響,其餘部分仍維持原狀。
令:
- :原執行時間中,可被改善部分所占的比例
- :該部分改善後的加速倍數
- :整體程式的加速倍數
改善後的相對執行時間為:
因此整體加速倍數為:
即使可改善部分變得無限快,,整體加速倍數仍受限於:
解題方法
(一)說明 Amdahl’s Law 的意義
Amdahl’s Law 說明,整體效能提升受未改善部分限制。改善某一部分的效益,取決於它原本占總執行時間的比例,以及改善後的速度倍數;局部效能提高,不會等比例轉化為整體效能提高。
(二)它對改善電腦效能的幫助
Amdahl’s Law 可用來評估改善方案的整體效益,協助判斷資源應優先投入哪個瓶頸。若某部分占總執行時間比例很小,即使大幅加速,整體效能改善仍有限;若該部分占比大,改善後帶來的整體效益才較明顯。
因此,設計者可先找出主要耗時部分,再依改善成本與預期整體加速效果,決定是否值得優化。公式也能用來估算局部加速的上限與達成特定目標所需的改善倍數。
(三)乘法器加速能否讓程式執行速度加倍?
程式 在電腦 上執行 秒,其中乘法指令占 。因此:
第 二 題25 分
我們要把以下的 C 程式片段編譯成 MIPS 組合語言程式。假設變數 是存在 暫存器裡,陣列 的 base address 是存在 暫存器裡。
以下是編譯後的 MIPS 組合語言程式。請推導出 、、、、 這五個欄位值。這些值是暫存器名稱(例如 )或(十進位)立即值。
其中:
登入後即可作答並保存紀錄。
核心觀念
MIPS 的 lw 與 sw 使用「基底暫存器加位移」的位址形式:
C 語言陣列採連續配置。若每個元素占 位元組,則 的位址為:
本題的 ,須先載入 ,再加上暫存器 $s1 中的 ,最後將結果存入 。
解題方法
MIPS 題目中的一般整數陣列元素為 4 位元組,因此:
所以 lw $t0, X(L) 的基底暫存器與位移分別為:
第 三 題25 分
記憶體設計:
(一) 何謂快取記憶體(cache memory)?(5 分)
(二) 何謂虛擬記憶體(virtual memory)?(5 分)
(三) 以上兩者的工作原理有什麼相近之處?(5 分)
(四) 有一個 direct mapped cache,它有 8 個 block;每個 block 存一筆 memory word。假設一開始該 cache 內容全部空白,請問依序存取八筆 memory word(address 依序為 )後,總共有幾次 cache miss?(10 分)
登入後即可作答並保存紀錄。
(一)快取記憶體(Cache Memory)
**核心觀念:**快取記憶體是容量較小、速度較快的記憶體,設置在處理器與主記憶體之間,用來暫存近期或常被使用的資料與指令。處理器要讀取資料時,先查快取:若資料已在快取中,稱為「快取命中」(cache hit);若不在,稱為「快取失誤」(cache miss),則需從較慢的主記憶體取回資料,並依快取配置規則放入快取。
**解題重點:**快取利用程式存取的時間區域性與空間區域性,減少處理器等待主記憶體的時間,提升平均存取速度。
(二)虛擬記憶體(Virtual Memory)
**核心觀念:**虛擬記憶體是由作業系統與硬體記憶體管理單元(MMU)共同提供的記憶體管理機制,使程式使用的虛擬位址空間能大於實際主記憶體容量。系統將虛擬位址對應至實體記憶體中的頁框;未載入主記憶體的頁面則可存放在輔助儲存裝置,需要時再載入。若存取的頁面不在主記憶體,會發生「頁面失誤」(page fault),由作業系統處理載入或置換。
(三)快取與虛擬記憶體的相近之處
**共同原理:**兩者都利用較快、容量有限的儲存層,暫存較慢或較大儲存層中常用的資料,以縮短平均存取時間。快取暫存主記憶體中的資料,虛擬記憶體則以主記憶體作為輔助儲存裝置資料的工作區。
兩者都仰賴時間區域性(近期使用過的資料可能再次使用)與空間區域性(鄰近資料可能很快被使用),並都會遇到命中或失誤,以及容量有限時的資料置換問題。主要差異在於管理方式與資料單位:快取通常以硬體為主,常以區塊(block)搬移;虛擬記憶體由作業系統與 MMU 管理,通常以頁面(page)搬移。
(四)Direct mapped cache 的 miss 次數
第 四 題25 分
考量在下圖的 MIPS 處理器管線(pipeline)裡執行以下 MIPS 組合語言程式:
🖼️【此處有附圖,請對照原卷】
(一) 如果電路中沒有 forwarding unit,請列出在第五個 clock cycle 結束時,在 MIPS 五級 pipeline stage(IF、ID、EXE、MEM、WB)中各有那個指令在執行?(若沒有指令在執行,那就列為 nop 指令。)(12 分)
(二) 當 forwarding unit 有作用時,請列出在第五個 clock cycle 結束時,在 MIPS 五級 pipeline stage(IF、ID、EXE、MEM、WB)中各有那個指令在執行?(若沒有指令在執行,那就列為 nop 指令。)(13 分)
登入後即可作答並保存紀錄。
核心觀念
本題考 MIPS 五級管線的資料相依與停滯(stall):
- 五級管線依序為 IF、ID、EXE、MEM、WB。
- 沒有 forwarding 時,消費者指令必須等到來源指令寫回暫存器後,才能在 ID 階段讀取正確資料。
- 有 forwarding 時,資料可直接由後續管線階段送至 EXE;但
lw的資料要到 MEM 階段結束才取得,因此緊接著使用該資料的指令仍需停一個 cycle。 - 以下採用常見的暫存器檔慣例:同一個 cycle 中,WB 先寫入,ID 隨後讀取。因此指令可在來源指令 WB 的同一 cycle 留在 ID,下一個 cycle 進入 EXE。
解題方法
先標出資料相依:
lw $4, 8($9)→add $2, $3, $4:add使用lw載入的$4。add $2, $3, $4→or $8, $2, $7:or使用$2。sub $7, $6, $5→or $8, $2, $7:or使用$7。or $8, $2, $7→and $1, $3, $8:and使用$8。
第五個 cycle 時,關鍵是第一組 lw→add 相依;其餘相依指令尚未影響第五個 cycle 的管線位置。
(一)沒有 forwarding unit
lw 在第五個 cycle 才進入 WB。add 必須停留在 ID,等到第五個 cycle 寫回 $4 後,才能在下一個 cycle 進入 EXE。停滯期間,後續的 sub 留在 IF,管線中的 EXE、MEM 位置為氣泡(nop)。