109 專利師高等考試 專利師(選試專業日文及計算機結構) 計算機結構 考古題詳解
第 一 題20 分
請說明下列有關指令集的問題:
(一) 有些 CPU 的指令集的浮點運算(floating point operations)是以可有可無(optional)的協同處理器(co-processor)形式來支援。為什麼?
(二) 如果某個 CPU 沒有配置浮點運算的協同處理器,那它該如何達成浮點運算?
登入後即可作答並保存紀錄。
核心觀念
本題評量計算機架構設計中的軟硬體權衡(Hardware/Software Trade-off)、**協同處理器(Coprocessor)的架構定位,以及浮點數運算(Floating-Point Operations)**在缺少硬體單元時的替代實現技術:
- 浮點運算單元(FPU)的硬體開銷:浮點運算(如 IEEE 754 標準)包含符號位元(Sign)、指數(Exponent)與有效數/尾數(Significand/Mantissa)的對齊、正規化(Normalization)、捨入(Rounding)及例外處理。其硬體電路(如多階管線化浮點乘法器、除法器)極為複雜,需耗費大量電晶體。
- 協同處理器架構:協同處理器為輔助主 CPU 處理特定運算(如浮點、向量、加密)的延伸硬體單元,透過專屬的匯流排或指令介面與主處理器溝通。
- 軟體模擬與例外處理機制:當指令集中定義的硬體單元不存在時,系統可透過「編譯期函式庫轉換」或「執行期例外捕捉(Trap-and-Emulate)」機制,利用主 CPU 的整數算術邏輯單元(ALU)與位移器來模擬浮點運算。
解題方法
本題為申論與問答題型,解題切入點應涵蓋硬體晶片設計、系統成本效益、編譯技術與作業系統核心機制:
- 子題 (一) 切入點:從「硬體成本與晶片面積」、「功耗限制」、「市場區隔與應用彈性」、「指令集管線設計複雜度」四個維度剖析為何採「可選(Optional)」設計。
- 子題 (二) 切入點:從系統階層切入,說明缺少硬體 FPU 時,電腦系統如何在「編譯器層級(軟體函式庫)」、「硬體與作業系統層級(例外陷阱模擬)」以及「演算法層級(定點數運算)」完成浮點運算任務。
申論解析
(一) 浮點運算以「可有可無(Optional)協同處理器」形式支援的原因
在計算機發展史與特定處理器家族(如早期 x86 搭配 8087/80387、MIPS 的 CP1、ARM 早期架構及多數微控制器 MCU)中,浮點運算常被設計為獨立或選配的協同處理器,主要原因如下:
- 晶片面積與製造成本(Silicon Area & Die Size):
- 浮點運算硬體(FPU)結構龐大,包含 位元單倍精準度與 位元雙倍精準度的加法器、陣列乘法器、除法器及多組浮點暫存器。
- 若將 FPU 整合於 CPU 核心內,會大幅增加晶粒面積(Die Size)。晶圓製造中,晶粒面積愈大,晶圓缺陷率愈高、良率(Yield)愈低,使單顆 CPU 製造成本呈指數型上升。將其分離為獨立晶片或可選模組,能有效降低基本款 CPU 的生產成本。
- 功耗與散熱考量(Power Consumption & Thermal Design):
- 浮點運算電路處於高時脈運作時,動態功耗與漏電流相當可觀。
- 在嵌入式系統、物聯網裝置或低功耗攜帶型設備中,許多應用場景僅涉及控制邏輯、文字處理或整數傳輸,完全不需要高密度的浮點運算。不配置 FPU 可大幅降低靜態與動態功耗,延長電池續航力並簡化散熱設計。
- 市場區隔與產品彈性(Market Segmentation & Flexibility):
- 處理器製造商可藉此實現彈性定價策略。一般文書或工控市場客戶可購買價格低廉、無 FPU 的入門款系統;而科學計算、3D 繪圖或工程模擬等重度浮點需求之專業用戶,則可加價選配加裝浮點協同處理器。
- 簡化主 CPU 管線設計與指令集解碼(Pipeline & Decoder Simplicity):
- 浮點指令執行週期長且不固定(例如浮點除法往往需要十數個週期以上),容易引發結構相依(Structural Hazard)與資料相依(Data Hazard)。
- 將浮點運算外包給獨立協同處理器,可使主處理器的整數資料路徑(Datapath)維持高度規整與高時脈頻率,簡化分支預測、轉發(Forwarding)與管線排程邏輯。
(二) CPU 未配置浮點協同處理器時達成浮點運算的方式
當 CPU 缺乏硬體浮點運算單元時,系統主要透過以下三種途徑達成浮點運算:
- 編譯器層級的軟體函式庫模擬(Software Floating-Point Emulation / Soft-Float):
- 運作機制:在編譯程式碼時,編譯器指定使用軟體浮點旗標(例如 GCC 的
-msoft-float)。編譯器不會產生硬體浮點指令,而是將所有高階語言中的浮點運算子(+、-、*、/)替換為呼叫執行時期軟體輔助函式(Runtime Emulation Library,如__addsf3、__mulsf3等)。
第 二 題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 rate | CPI of class A | CPI of class B | CPI of class C | CPI of class D |
|---|---|---|---|---|---|
| P1 | 1.0 GHz | 1 | 2 | 3 | 4 |
| P2 | 1.2 GHz | 1 | 3 | 3 | 6 |
(一) 依該程式在 P1 及 P2 上執行的 CPI 值而言,P1 及 P2 哪一個比較快?
(二) 依該程式在 P1 及 P2 上執行的時間而言,P1 及 P2 哪一個比較快?
登入後即可作答並保存紀錄。
核心觀念
本題評量計算機架構中「效能評估」(CPU Performance Evaluation)的基本核心觀念與計算能力:
-
平均每指令週期數(Average Cycles Per Instruction, CPI) 若程式中包含不同種類的指令,且各類指令所需的時脈週期數不同,整體的平均 CPI 為各類指令之 CPI 乘上其出現頻率(比重)的加權總和: 其中 為第 類指令佔總指令數的比例, 為第 類指令所需的週期數。
-
CPU 效能方程式(CPU Performance Equation) 程式執行的總 CPU 時間(CPU Execution Time, )由指令數(Instruction Count, )、平均每指令週期數()及時脈週期時間(Clock Cycle Time, )或時脈頻率(Clock Rate, )共同決定:
-
效能指標判斷依據
- 單就 CPI 而言:CPI 衡量的是「平均執行一個指令需要多少個時脈週期」,CPI 愈小代表週期效率愈高、速度愈快。
- 單就 執行時間(Execution Time) 而言:執行時間衡量程式實際運行的真實物理時間,時間愈短代表系統效能愈佳、速度愈快。
解題方法
(一) 計算 P1 與 P2 的平均 CPI 並進行比較
根據題意,指令總數 ,各類指令所佔比例分別為:
-
計算硬體實現 P1 之平均 CPI:
-
計算硬體實現 P2 之平均 CPI:
-
比較分析: 在 CPI 的定義下,數值愈小代表平均每個指令耗費的週期數愈少。因此,依 CPI 值而言,P1 比較快。
(二) 計算 P1 與 P2 之執行時間並進行比較
各硬體之時脈頻率(Clock Rate)分別為:
利用 CPU 效能方程式分別求出執行時間:
第 三 題20 分
2’s complement 是一種用二進位表示有號數的方法。它的好處是在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。例如,兩個二進位數字 及 之減法可表達為:
其中「」是 bitwise not 運算。
下圖為一個 1-bit Arithmetic Logic Unit(ALU),其中 、 為 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 。
圖中包含下列訊號與元件:
- Binvert
- Operation
- CarryIn
- Result
- CarryOut
登入後即可作答並保存紀錄。
核心觀念
二補數減法可改寫為加法:
此 1-bit ALU 可用 Binvert 控制是否反相輸入 ,並由 CarryIn 設定加法器的進位輸入。Operation 則選擇 ALU 的輸出功能。
解題方法
要計算 ,先依二補數公式設定三個控制訊號:
- Binvert = 1:反相 ,使加法器取得 。
- CarryIn = 1:提供公式中的 。
- Operation = 10:選擇加法器的輸出。
第 四 題20 分
請說明下列有關高效能處理器的問題:
(一) Pipelining 是指把一個工作拆成多個前後銜接的子工作。如果拆成五個子工作,理想情況下,這個 pipeline 的效能可以變為原來的幾倍?
(二) 有哪些因素會無法達成上題中的理想效能?
登入後即可作答並保存紀錄。
核心觀念
-
管線化(Pipelining)與加速比(Speedup): 管線化是一種利用「指令層級平行度(Instruction-Level Parallelism, ILP)」來提升處理器吞吐量(Throughput)的技術。將一項工作的執行過程劃分為 個循序銜接的子工作(Stages),在理想情況下,每個時脈週期(Clock Cycle)都能完成並輸出一個指令()。 加速比公式定義為: 若指令數為 ,各階段耗時完全均等且無額外延遲,當 趨近於無限大時,理想加速比收斂至級數 。
-
管線阻礙因素(Pipeline Hazards and Overheads): 在實際硬體架構中,管線受限於管線衝突(Hazards)、級段不均等(Unbalanced Stages)、硬體暫存器開銷(Register Overhead)及記憶體階層延遲(Memory Latency),導致平均每指令週期數 ,時脈週期亦大於理想劃分值。
解題方法
(一) 計算理想加速比
設原始未管線化的處理器執行單一任務所需時間為 。將該工作均等拆成 個前後銜接的子工作,每個子工作的執行時間為 。
假設執行 個工作(指令):
-
未管線化總執行時間(): 每個工作需依序執行 5 個子工作完畢後才開始下一個工作:
-
管線化總執行時間(): 在管線正常運作下,第一個工作需耗費 個週期填滿管線(Latency),後續 個工作在無停頓(Stall)情況下,每隔 個週期輸出一個結果:
-
加速比推導: 在理想情況下,工作負載量極大():
因此,理想情況下效能可提升為原來的 5 倍。
(二) 無法達成理想效能之因素
實際處理器無法達到 5 倍加速比,主要受下列五大因素限制:
- 管線衝突造成管線停頓(Pipeline Hazards & Stalls):
- 結構衝突(Structural Hazard):硬體資源不足,多個指令在同一時脈週期爭用相同硬體單元(例如指令擷取與資料存取同時競爭單一埠記憶體/快取)。
第 五 題20 分
請說明下列有關記憶體設計的問題:
(一) 請依下表格式作答,並在空格中以 1~3 之數值(1 最佳,2 其次,3 最差)來分別評比 SRAM(static random access memory)、DRAM(dynamic random access memory)、HD(hard disk)的 Speed 及 Capacity。
| Storage Devices | SRAM | DRAM | HD |
|---|---|---|---|
| Speed | |||
| Capacity |
(二) 如何根據以上的分析,以階層(hierarchical)的方式將這三種 storage devices 組合成為處理器(CPU)的記憶體系統,以優化整體的效能?
登入後即可作答並保存紀錄。
核心觀念
本題的核心在於計算機結構中的記憶體階層架構(Memory Hierarchy)與局部性原理(Principle of Locality):
- 儲存技術特性與權衡(Trade-off):
- SRAM(靜態隨機存取記憶體):以雙穩態電路(通常為 4~6 顆電晶體組成雙穩態正反器)儲存位元,不需刷新電路。存取速度最快(奈秒級 ),但電路複雜、晶片面積大、每位元成本最高,因此實體容量最小。
- DRAM(動態隨機存取記憶體):以單顆電晶體搭配電容儲存電荷,需定期充電刷新(Refresh)。存取速度次之(數十奈秒 ),成本與密度居中,容量居中。
- HD(傳統機械硬碟):以磁頭在旋轉磁盤表面讀寫資料,受限於機械尋道時間(Seek Time)與旋轉延遲(Rotational Latency),速度最慢(毫秒級 ),但每位元儲存成本極低,容量最大且具備非揮發性(Non-volatile)。
- 記憶體階層設計與局部性原理:
- 系統無法單純使用便宜但極慢的儲存裝置,也無法全數採用高速但昂貴的裝置。
- 藉由程式執行的時間局部性(Temporal Locality)與空間局部性(Spatial Locality),將不同速度與容量的裝置由內而外層層排列,使整體系統能以較低的成本,達到「容量接近最底層 HD、速度接近最頂層 SRAM」的綜合效能。
- 平均記憶體存取時間(Average Memory Access Time, AMAT)公式: 階層式設計藉由高命中率(Hit Rate)使存取大多發生在高速層,大幅壓低 AMAT。
解題方法
- 第 (一) 小題:
- 依據題目給定的數值定義:1 最佳、2 其次、3 最差。
- Speed(速度):延遲越低、頻寬越高者為佳。SRAM(最佳,給 1) DRAM(其次,給 2) HD(最差,給 3)。
- Capacity(容量):單一系統或組件中典型可提供的儲存空間越大者為佳。HD(最大,給 1) DRAM(其次,給 2) SRAM(最小,給 3)。
- 第 (二) 小題:
- 架構規劃:由內而外(由靠近 CPU 至遠離 CPU)建立階層金字塔:
- CPU 內部/緊鄰核心:SRAM 作為快取記憶體(Cache Memory)。
- 中階系統匯流排:DRAM 作為主記憶體(Main Memory / RAM)。
- 外圍儲存介面:HD 作為次級儲存裝置(Secondary Storage / 輔助記憶體)。
- 運作與優化機制說明:說明局部性原理如何發揮作用、快取區塊(Block/Line)與虛擬記憶體分頁(Page)的置換機制,並結合 AMAT 數學式佐證整體效能優化之原因。
各評比項目與裝置分析
在進行評分填表時,各裝置的具體技術指標與特性如下:
- SRAM(Static RAM):
- Speed(評比:1):電晶體直接切換狀態,存取延遲通常小於數奈秒,與處理器運作頻率最為匹配,速度評為三者最佳(1)。
- Capacity(評比:3):每位元需要 6 顆電晶體(6T),晶粒佔用面積極大且發熱量高,常見系統配置僅有數 MB 至幾十 MB,容量評為三者最差(3)。
- DRAM(Dynamic RAM):
- Speed(評比:2):因電容充放電與週期性更新動作,延遲約為數十奈秒,慢於 SRAM 但遠快於機械裝置,速度評為居中(2)。
- Capacity(評比:2):每位元僅需 1 顆電晶體加 1 顆電容(1T-1C),集成度高,常見容量為數 GB 至數百 GB,容量評為居中(2)。
- HD(Hard Disk):
- Speed(評比:3):涉及機械臂移動尋道及磁盤旋轉等待,存取延遲達數毫秒(比 DRAM 慢約 倍),速度評為三者最差(3)。
- Capacity(評比:1):磁性記錄密度高且每 GB 成本極低,單碟或系統配置容量通常在數百 GB 至數十 TB 以上,容量評為三者最佳(1)。
記憶體階層整合與優化論述
將三者整合成階層式系統的架構如下: