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

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

第 一 題20 分

請說明下列有關指令集的問題:

(一) 有些 CPU 的指令集的浮點運算(floating point operations)是以可有可無(optional)的協同處理器(co-processor)形式來支援。為什麼?

(二) 如果某個 CPU 沒有配置浮點運算的協同處理器,那它該如何達成浮點運算?

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

這一題的完整詳解

核心觀念

本題評量計算機架構設計中的軟硬體權衡(Hardware/Software Trade-off)、**協同處理器(Coprocessor)的架構定位,以及浮點數運算(Floating-Point Operations)**在缺少硬體單元時的替代實現技術:

  1. 浮點運算單元(FPU)的硬體開銷:浮點運算(如 IEEE 754 標準)包含符號位元(Sign)、指數(Exponent)與有效數/尾數(Significand/Mantissa)的對齊、正規化(Normalization)、捨入(Rounding)及例外處理。其硬體電路(如多階管線化浮點乘法器、除法器)極為複雜,需耗費大量電晶體。
  2. 協同處理器架構:協同處理器為輔助主 CPU 處理特定運算(如浮點、向量、加密)的延伸硬體單元,透過專屬的匯流排或指令介面與主處理器溝通。
  3. 軟體模擬與例外處理機制:當指令集中定義的硬體單元不存在時,系統可透過「編譯期函式庫轉換」或「執行期例外捕捉(Trap-and-Emulate)」機制,利用主 CPU 的整數算術邏輯單元(ALU)與位移器來模擬浮點運算。

解題方法

本題為申論與問答題型,解題切入點應涵蓋硬體晶片設計、系統成本效益、編譯技術與作業系統核心機制:

  • 子題 (一) 切入點:從「硬體成本與晶片面積」、「功耗限制」、「市場區隔與應用彈性」、「指令集管線設計複雜度」四個維度剖析為何採「可選(Optional)」設計。
  • 子題 (二) 切入點:從系統階層切入,說明缺少硬體 FPU 時,電腦系統如何在「編譯器層級(軟體函式庫)」、「硬體與作業系統層級(例外陷阱模擬)」以及「演算法層級(定點數運算)」完成浮點運算任務。

申論解析

(一) 浮點運算以「可有可無(Optional)協同處理器」形式支援的原因

在計算機發展史與特定處理器家族(如早期 x86 搭配 8087/80387、MIPS 的 CP1、ARM 早期架構及多數微控制器 MCU)中,浮點運算常被設計為獨立或選配的協同處理器,主要原因如下:

  1. 晶片面積與製造成本(Silicon Area & Die Size):
  • 浮點運算硬體(FPU)結構龐大,包含 3232 位元單倍精準度與 6464 位元雙倍精準度的加法器、陣列乘法器、除法器及多組浮點暫存器。
  • 若將 FPU 整合於 CPU 核心內,會大幅增加晶粒面積(Die Size)。晶圓製造中,晶粒面積愈大,晶圓缺陷率愈高、良率(Yield)愈低,使單顆 CPU 製造成本呈指數型上升。將其分離為獨立晶片或可選模組,能有效降低基本款 CPU 的生產成本。
  1. 功耗與散熱考量(Power Consumption & Thermal Design):
  • 浮點運算電路處於高時脈運作時,動態功耗與漏電流相當可觀。
  • 在嵌入式系統、物聯網裝置或低功耗攜帶型設備中,許多應用場景僅涉及控制邏輯、文字處理或整數傳輸,完全不需要高密度的浮點運算。不配置 FPU 可大幅降低靜態與動態功耗,延長電池續航力並簡化散熱設計。
  1. 市場區隔與產品彈性(Market Segmentation & Flexibility):
  • 處理器製造商可藉此實現彈性定價策略。一般文書或工控市場客戶可購買價格低廉、無 FPU 的入門款系統;而科學計算、3D 繪圖或工程模擬等重度浮點需求之專業用戶,則可加價選配加裝浮點協同處理器。
  1. 簡化主 CPU 管線設計與指令集解碼(Pipeline & Decoder Simplicity):
  • 浮點指令執行週期長且不固定(例如浮點除法往往需要十數個週期以上),容易引發結構相依(Structural Hazard)與資料相依(Data Hazard)。
  • 將浮點運算外包給獨立協同處理器,可使主處理器的整數資料路徑(Datapath)維持高度規整與高時脈頻率,簡化分支預測、轉發(Forwarding)與管線排程邏輯。

(二) CPU 未配置浮點協同處理器時達成浮點運算的方式

當 CPU 缺乏硬體浮點運算單元時,系統主要透過以下三種途徑達成浮點運算:

  1. 編譯器層級的軟體函式庫模擬(Software Floating-Point Emulation / Soft-Float):
  • 運作機制:在編譯程式碼時,編譯器指定使用軟體浮點旗標(例如 GCC 的 -msoft-float)。編譯器不會產生硬體浮點指令,而是將所有高階語言中的浮點運算子(+、-、*、/)替換為呼叫執行時期軟體輔助函式(Runtime Emulation Library,如 __addsf3、__mulsf3 等)。
🔒

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

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

免費註冊

第 二 題20 分

某指令集有四類(class)指令,分別為 class A、class B、class C、class D。此指令集有兩種硬體的實現方式 P1 及 P2。這些指令在 P1 及 P2 的 clock rate 及 CPI(cycles per instruction)如下表。有一個程式總共執行了 10,000 個指令,其中 class A、class B、class C、class D 的指令比重各為 40%、30%、20%、10%。

硬體實現Clock rateCPI of class ACPI of class BCPI of class CCPI of class D
P11.0 GHz1234
P21.2 GHz1336

(一) 依該程式在 P1 及 P2 上執行的 CPI 值而言,P1 及 P2 哪一個比較快?

(二) 依該程式在 P1 及 P2 上執行的時間而言,P1 及 P2 哪一個比較快?

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

這一題的完整詳解

核心觀念

本題評量計算機架構中「效能評估」(CPU Performance Evaluation)的基本核心觀念與計算能力:

  1. 平均每指令週期數(Average Cycles Per Instruction, CPI) 若程式中包含不同種類的指令,且各類指令所需的時脈週期數不同,整體的平均 CPI 為各類指令之 CPI 乘上其出現頻率(比重)的加權總和: CPI=∑i=1n(fi×CPIi)\text{CPI} = \sum_{i=1}^{n} (f_i \times \text{CPI}_i) 其中 fif_i 為第 ii 類指令佔總指令數的比例,CPIi\text{CPI}_i 為第 ii 類指令所需的週期數。

  2. CPU 效能方程式(CPU Performance Equation) 程式執行的總 CPU 時間(CPU Execution Time, TT)由指令數(Instruction Count, ICIC)、平均每指令週期數(CPI\text{CPI})及時脈週期時間(Clock Cycle Time, τ\tau)或時脈頻率(Clock Rate, RR)共同決定: T=IC×CPI×τ=IC×CPIRT = IC \times \text{CPI} \times \tau = \frac{IC \times \text{CPI}}{R}

  3. 效能指標判斷依據

  • 單就 CPI 而言:CPI 衡量的是「平均執行一個指令需要多少個時脈週期」,CPI 愈小代表週期效率愈高、速度愈快。
  • 單就 執行時間(Execution Time) 而言:執行時間衡量程式實際運行的真實物理時間,時間愈短代表系統效能愈佳、速度愈快。

解題方法

(一) 計算 P1 與 P2 的平均 CPI 並進行比較

根據題意,指令總數 IC=10,000IC = 10,000,各類指令所佔比例分別為:

  • fA=40%=0.4f_A = 40\% = 0.4
  • fB=30%=0.3f_B = 30\% = 0.3
  • fC=20%=0.2f_C = 20\% = 0.2
  • fD=10%=0.1f_D = 10\% = 0.1
  1. 計算硬體實現 P1 之平均 CPI: CPIP1=(0.4×1)+(0.3×2)+(0.2×3)+(0.1×4)\text{CPI}_{P1} = (0.4 \times 1) + (0.3 \times 2) + (0.2 \times 3) + (0.1 \times 4) CPIP1=0.4+0.6+0.6+0.4=2.0\text{CPI}_{P1} = 0.4 + 0.6 + 0.6 + 0.4 = 2.0

  2. 計算硬體實現 P2 之平均 CPI: CPIP2=(0.4×1)+(0.3×3)+(0.2×3)+(0.1×6)\text{CPI}_{P2} = (0.4 \times 1) + (0.3 \times 3) + (0.2 \times 3) + (0.1 \times 6) CPIP2=0.4+0.9+0.6+0.6=2.5\text{CPI}_{P2} = 0.4 + 0.9 + 0.6 + 0.6 = 2.5

  3. 比較分析: CPIP1=2.0<CPIP2=2.5\text{CPI}_{P1} = 2.0 < \text{CPI}_{P2} = 2.5 在 CPI 的定義下,數值愈小代表平均每個指令耗費的週期數愈少。因此,依 CPI 值而言,P1 比較快。


(二) 計算 P1 與 P2 之執行時間並進行比較

各硬體之時脈頻率(Clock Rate)分別為:

  • R1=1.0 GHz=1.0×109 HzR_1 = 1.0\text{ GHz} = 1.0 \times 10^9\text{ Hz}
  • R2=1.2 GHz=1.2×109 HzR_2 = 1.2\text{ GHz} = 1.2 \times 10^9\text{ Hz}

利用 CPU 效能方程式分別求出執行時間:

🔒

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

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

免費註冊

第 三 題20 分

2’s complement 是一種用二進位表示有號數的方法。它的好處是在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。例如,兩個二進位數字 AA 及 BB 之減法可表達為:

A−B=A+(∼B)+1A-B=A+(\sim B)+1

其中「∼\sim」是 bitwise not 運算。

下圖為一個 1-bit Arithmetic Logic Unit(ALU),其中 aa、bb 為 1-bit input signal,Result 為 1-bit output signal;Binvert(1 bit,possible values: 0/1)、CarryIn(1 bit,possible values: 0/1)及 Operation(2 bits,possible values: 00/01/10/11)為控制訊號。請依序設定這三個控制訊號值,使得 Result =a−b=a-b。

圖中包含下列訊號與元件:

  • Binvert
  • Operation
  • CarryIn
  • aa
  • bb
  • Result
  • CarryOut
🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

二補數減法可改寫為加法:

a−b=a+(∼b)+1a-b=a+(\sim b)+1

此 1-bit ALU 可用 Binvert 控制是否反相輸入 bb,並由 CarryIn 設定加法器的進位輸入。Operation 則選擇 ALU 的輸出功能。

解題方法

要計算 a−ba-b,先依二補數公式設定三個控制訊號:

  1. Binvert = 1:反相 bb,使加法器取得 ∼b\sim b。
  2. CarryIn = 1:提供公式中的 +1+1。
  3. Operation = 10:選擇加法器的輸出。
🔒

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

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

免費註冊

第 四 題20 分

請說明下列有關高效能處理器的問題:

(一) Pipelining 是指把一個工作拆成多個前後銜接的子工作。如果拆成五個子工作,理想情況下,這個 pipeline 的效能可以變為原來的幾倍?

(二) 有哪些因素會無法達成上題中的理想效能?

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

這一題的完整詳解

核心觀念

  1. 管線化(Pipelining)與加速比(Speedup): 管線化是一種利用「指令層級平行度(Instruction-Level Parallelism, ILP)」來提升處理器吞吐量(Throughput)的技術。將一項工作的執行過程劃分為 kk 個循序銜接的子工作(Stages),在理想情況下,每個時脈週期(Clock Cycle)都能完成並輸出一個指令(CPI=1CPI = 1)。 加速比公式定義為: Speedup=Execution TimeunpipelinedExecution Timepipelined\text{Speedup} = \frac{\text{Execution Time}_{\text{unpipelined}}}{\text{Execution Time}_{\text{pipelined}}} 若指令數為 nn,各階段耗時完全均等且無額外延遲,當 nn 趨近於無限大時,理想加速比收斂至級數 kk。

  2. 管線阻礙因素(Pipeline Hazards and Overheads): 在實際硬體架構中,管線受限於管線衝突(Hazards)、級段不均等(Unbalanced Stages)、硬體暫存器開銷(Register Overhead)及記憶體階層延遲(Memory Latency),導致平均每指令週期數 CPI>1CPI > 1,時脈週期亦大於理想劃分值。


解題方法

(一) 計算理想加速比

設原始未管線化的處理器執行單一任務所需時間為 TT。將該工作均等拆成 k=5k = 5 個前後銜接的子工作,每個子工作的執行時間為 τ=T5\tau = \frac{T}{5}。

假設執行 nn 個工作(指令):

  1. 未管線化總執行時間(TunpipelinedT_{\text{unpipelined}}): 每個工作需依序執行 5 個子工作完畢後才開始下一個工作: Tunpipelined=n×5τT_{\text{unpipelined}} = n \times 5\tau

  2. 管線化總執行時間(TpipelinedT_{\text{pipelined}}): 在管線正常運作下,第一個工作需耗費 55 個週期填滿管線(Latency),後續 n−1n - 1 個工作在無停頓(Stall)情況下,每隔 11 個週期輸出一個結果: Tpipelined=(5+n−1)×τ=(n+4)×τT_{\text{pipelined}} = (5 + n - 1) \times \tau = (n + 4) \times \tau

  3. 加速比推導: Speedup=TunpipelinedTpipelined=n×5τ(n+4)τ=5nn+4\text{Speedup} = \frac{T_{\text{unpipelined}}}{T_{\text{pipelined}}} = \frac{n \times 5\tau}{(n + 4)\tau} = \frac{5n}{n + 4} 在理想情況下,工作負載量極大(n→∞n \to \infty): lim⁡n→∞Speedup=lim⁡n→∞51+4n=5\lim_{n \to \infty} \text{Speedup} = \lim_{n \to \infty} \frac{5}{1 + \frac{4}{n}} = 5

因此,理想情況下效能可提升為原來的 5 倍。


(二) 無法達成理想效能之因素

實際處理器無法達到 5 倍加速比,主要受下列五大因素限制:

  1. 管線衝突造成管線停頓(Pipeline Hazards & Stalls):
  • 結構衝突(Structural Hazard):硬體資源不足,多個指令在同一時脈週期爭用相同硬體單元(例如指令擷取與資料存取同時競爭單一埠記憶體/快取)。
🔒

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

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

免費註冊

第 五 題20 分

請說明下列有關記憶體設計的問題:

(一) 請依下表格式作答,並在空格中以 1~3 之數值(1 最佳,2 其次,3 最差)來分別評比 SRAM(static random access memory)、DRAM(dynamic random access memory)、HD(hard disk)的 Speed 及 Capacity。

Storage DevicesSRAMDRAMHD
Speed
Capacity

(二) 如何根據以上的分析,以階層(hierarchical)的方式將這三種 storage devices 組合成為處理器(CPU)的記憶體系統,以優化整體的效能?

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

這一題的完整詳解

核心觀念

本題的核心在於計算機結構中的記憶體階層架構(Memory Hierarchy)與局部性原理(Principle of Locality):

  1. 儲存技術特性與權衡(Trade-off):
  • SRAM(靜態隨機存取記憶體):以雙穩態電路(通常為 4~6 顆電晶體組成雙穩態正反器)儲存位元,不需刷新電路。存取速度最快(奈秒級 0.5∼2.5 ns0.5 \sim 2.5\text{ ns}),但電路複雜、晶片面積大、每位元成本最高,因此實體容量最小。
  • DRAM(動態隨機存取記憶體):以單顆電晶體搭配電容儲存電荷,需定期充電刷新(Refresh)。存取速度次之(數十奈秒 50∼70 ns50 \sim 70\text{ ns}),成本與密度居中,容量居中。
  • HD(傳統機械硬碟):以磁頭在旋轉磁盤表面讀寫資料,受限於機械尋道時間(Seek Time)與旋轉延遲(Rotational Latency),速度最慢(毫秒級 5∼15 ms5 \sim 15\text{ ms}),但每位元儲存成本極低,容量最大且具備非揮發性(Non-volatile)。
  1. 記憶體階層設計與局部性原理:
  • 系統無法單純使用便宜但極慢的儲存裝置,也無法全數採用高速但昂貴的裝置。
  • 藉由程式執行的時間局部性(Temporal Locality)與空間局部性(Spatial Locality),將不同速度與容量的裝置由內而外層層排列,使整體系統能以較低的成本,達到「容量接近最底層 HD、速度接近最頂層 SRAM」的綜合效能。
  1. 平均記憶體存取時間(Average Memory Access Time, AMAT)公式: AMAT=Hit Time+Miss Rate×Miss PenaltyAMAT = \text{Hit Time} + \text{Miss Rate} \times \text{Miss Penalty} 階層式設計藉由高命中率(Hit Rate)使存取大多發生在高速層,大幅壓低 AMAT。

解題方法

  1. 第 (一) 小題:
  • 依據題目給定的數值定義:1 最佳、2 其次、3 最差。
  • Speed(速度):延遲越低、頻寬越高者為佳。SRAM(最佳,給 1)>> DRAM(其次,給 2)>> HD(最差,給 3)。
  • Capacity(容量):單一系統或組件中典型可提供的儲存空間越大者為佳。HD(最大,給 1)>> DRAM(其次,給 2)>> SRAM(最小,給 3)。
  1. 第 (二) 小題:
  • 架構規劃:由內而外(由靠近 CPU 至遠離 CPU)建立階層金字塔:
  • CPU 內部/緊鄰核心:SRAM 作為快取記憶體(Cache Memory)。
  • 中階系統匯流排:DRAM 作為主記憶體(Main Memory / RAM)。
  • 外圍儲存介面:HD 作為次級儲存裝置(Secondary Storage / 輔助記憶體)。
  • 運作與優化機制說明:說明局部性原理如何發揮作用、快取區塊(Block/Line)與虛擬記憶體分頁(Page)的置換機制,並結合 AMAT 數學式佐證整體效能優化之原因。

各評比項目與裝置分析

在進行評分填表時,各裝置的具體技術指標與特性如下:

  1. SRAM(Static RAM):
  • Speed(評比:1):電晶體直接切換狀態,存取延遲通常小於數奈秒,與處理器運作頻率最為匹配,速度評為三者最佳(1)。
  • Capacity(評比:3):每位元需要 6 顆電晶體(6T),晶粒佔用面積極大且發熱量高,常見系統配置僅有數 MB 至幾十 MB,容量評為三者最差(3)。
  1. DRAM(Dynamic RAM):
  • Speed(評比:2):因電容充放電與週期性更新動作,延遲約為數十奈秒,慢於 SRAM 但遠快於機械裝置,速度評為居中(2)。
  • Capacity(評比:2):每位元僅需 1 顆電晶體加 1 顆電容(1T-1C),集成度高,常見容量為數 GB 至數百 GB,容量評為居中(2)。
  1. HD(Hard Disk):
  • Speed(評比:3):涉及機械臂移動尋道及磁盤旋轉等待,存取延遲達數毫秒(比 DRAM 慢約 10510^5 倍),速度評為三者最差(3)。
  • Capacity(評比:1):磁性記錄密度高且每 GB 成本極低,單碟或系統配置容量通常在數百 GB 至數十 TB 以上,容量評為三者最佳(1)。

記憶體階層整合與優化論述

將三者整合成階層式系統的架構如下:

🔒

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

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

免費註冊

其他考古題

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

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