114 專利師高等考試 專利師(選試專業日文及計算機結構) 計算機結構 考古題詳解

114 年・專利師・高等考試・專利師(選試專業日文及計算機結構)
試題代碼 計算機結構

第 一 題25 分

Amdahl’s Law 是評估電腦效能的重要概念:

(一) 說明它的意義。(5 分)

(二) 它對於改善電腦效能有何幫助?(5 分)

(三) 程式 XX 在電腦 AA 上執行需要 100 秒,其中乘法指令占了 40%,請問有沒有可能藉由改善乘法器的速度達到把程式 XX 的執行速度加倍的目的?若是可以,該把乘法器的速度加強到幾倍?若是不可以,那是為什麼?(15 分)

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

Amdahl’s Law(阿姆達爾定律)用來估算:只改善電腦系統中某一部分時,整體效能最多能提升多少。關鍵在於,程式執行時間中只有一部分受該項改善影響,其餘部分仍維持原狀。

令:

  • ff:原執行時間中,可被改善部分所占的比例
  • ss:該部分改善後的加速倍數
  • SS:整體程式的加速倍數

改善後的相對執行時間為:

(1−f)+fs(1-f)+\frac{f}{s}

因此整體加速倍數為:

S=1(1−f)+fsS=\frac{1}{(1-f)+\frac{f}{s}}

即使可改善部分變得無限快,s→∞s\to\infty,整體加速倍數仍受限於:

Smax⁡=11−fS_{\max}=\frac{1}{1-f}

解題方法

(一)說明 Amdahl’s Law 的意義

Amdahl’s Law 說明,整體效能提升受未改善部分限制。改善某一部分的效益,取決於它原本占總執行時間的比例,以及改善後的速度倍數;局部效能提高,不會等比例轉化為整體效能提高。

(二)它對改善電腦效能的幫助

Amdahl’s Law 可用來評估改善方案的整體效益,協助判斷資源應優先投入哪個瓶頸。若某部分占總執行時間比例很小,即使大幅加速,整體效能改善仍有限;若該部分占比大,改善後帶來的整體效益才較明顯。

因此,設計者可先找出主要耗時部分,再依改善成本與預期整體加速效果,決定是否值得優化。公式也能用來估算局部加速的上限與達成特定目標所需的改善倍數。

(三)乘法器加速能否讓程式執行速度加倍?

程式 XX 在電腦 AA 上執行 100100 秒,其中乘法指令占 40%40\%。因此:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 二 題25 分

我們要把以下的 C 程式片段編譯成 MIPS 組合語言程式。假設變數 gg 是存在 s1s1 暫存器裡,陣列 BB 的 base address 是存在 s2s2 暫存器裡。

B[9]=g+B[8];B[9] = g + B[8];

以下是編譯後的 MIPS 組合語言程式。請推導出 LL、XX、YY、ZZ、MM 這五個欄位值。這些值是暫存器名稱(例如 s3s3)或(十進位)立即值。

lw $t0,X(L)\text{lw } \$t0, X(L) add $t0,Y,$t0\text{add } \$t0, Y, \$t0 sw $t0,Z(M)\text{sw } \$t0, Z(M)

其中:

$t0=Memory⁡[L+X]\$t0 = \operatorname{Memory}[L+X] $t0=Y+$t0\$t0 = Y+\$t0 Memory⁡[M+Z]=$t0\operatorname{Memory}[M+Z]=\$t0

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

MIPS 的 lw 與 sw 使用「基底暫存器加位移」的位址形式:

有效位址=基底暫存器內容+位移\text{有效位址}=\text{基底暫存器內容}+\text{位移}

C 語言陣列採連續配置。若每個元素占 ww 位元組,則 B[i]B[i] 的位址為:

Address⁡(B[i])=Address⁡(B)+i×w\operatorname{Address}(B[i])=\operatorname{Address}(B)+i\times w

本題的 B[9]=g+B[8]B[9]=g+B[8],須先載入 B[8]B[8],再加上暫存器 $s1 中的 gg,最後將結果存入 B[9]B[9]。

解題方法

MIPS 題目中的一般整數陣列元素為 4 位元組,因此:

Address⁡(B[8])=$s2+8×4=$s2+32\operatorname{Address}(B[8])=\$s2+8\times4=\$s2+32

所以 lw $t0, X(L) 的基底暫存器與位移分別為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 三 題25 分

記憶體設計:

(一) 何謂快取記憶體(cache memory)?(5 分)

(二) 何謂虛擬記憶體(virtual memory)?(5 分)

(三) 以上兩者的工作原理有什麼相近之處?(5 分)

(四) 有一個 direct mapped cache,它有 8 個 block;每個 block 存一筆 memory word。假設一開始該 cache 內容全部空白,請問依序存取八筆 memory word(address 依序為 0,4,8,4,8,0,3,00,4,8,4,8,0,3,0)後,總共有幾次 cache miss?(10 分)

登入後即可作答並保存紀錄。

這一題的完整詳解

(一)快取記憶體(Cache Memory)

**核心觀念:**快取記憶體是容量較小、速度較快的記憶體,設置在處理器與主記憶體之間,用來暫存近期或常被使用的資料與指令。處理器要讀取資料時,先查快取:若資料已在快取中,稱為「快取命中」(cache hit);若不在,稱為「快取失誤」(cache miss),則需從較慢的主記憶體取回資料,並依快取配置規則放入快取。

**解題重點:**快取利用程式存取的時間區域性與空間區域性,減少處理器等待主記憶體的時間,提升平均存取速度。

(二)虛擬記憶體(Virtual Memory)

**核心觀念:**虛擬記憶體是由作業系統與硬體記憶體管理單元(MMU)共同提供的記憶體管理機制,使程式使用的虛擬位址空間能大於實際主記憶體容量。系統將虛擬位址對應至實體記憶體中的頁框;未載入主記憶體的頁面則可存放在輔助儲存裝置,需要時再載入。若存取的頁面不在主記憶體,會發生「頁面失誤」(page fault),由作業系統處理載入或置換。

(三)快取與虛擬記憶體的相近之處

**共同原理:**兩者都利用較快、容量有限的儲存層,暫存較慢或較大儲存層中常用的資料,以縮短平均存取時間。快取暫存主記憶體中的資料,虛擬記憶體則以主記憶體作為輔助儲存裝置資料的工作區。

兩者都仰賴時間區域性(近期使用過的資料可能再次使用)與空間區域性(鄰近資料可能很快被使用),並都會遇到命中或失誤,以及容量有限時的資料置換問題。主要差異在於管理方式與資料單位:快取通常以硬體為主,常以區塊(block)搬移;虛擬記憶體由作業系統與 MMU 管理,通常以頁面(page)搬移。

(四)Direct mapped cache 的 miss 次數

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 四 題25 分

考量在下圖的 MIPS 處理器管線(pipeline)裡執行以下 MIPS 組合語言程式:

lw$4,8($9)add$2,$3,$4sub$7,$6,$5or$8,$2,$7and$1,$3,$8\begin{aligned} \text{lw} &\quad \$4, 8(\$9) \\ \text{add} &\quad \$2, \$3, \$4 \\ \text{sub} &\quad \$7, \$6, \$5 \\ \text{or} &\quad \$8, \$2, \$7 \\ \text{and} &\quad \$1, \$3, \$8 \end{aligned}

🖼️【此處有附圖,請對照原卷】

(一) 如果電路中沒有 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)。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題

專利師(選試專業日文及計算機結構)《計算機結構》其他年度

114 年專利師高等考試・其他類科的《計算機結構》