113 專利師高等考試 專利師(選試專業日文及計算機結構) 計算機結構 考古題詳解
第 一 題25 分
在計算機結構中,2 對 1 多工器(2-to-1 Multiplexer)是一個常用的電路。
考慮一個 2 對 1 多工器 ,就是在兩個輸入訊號 或 當中選取其中一個來當作輸出訊號 ,選取的原則由一控制訊號 來決定。如果 ,則 ;如果 ,則 。請回答下列有關多工器的問題。
(一) 請畫出 、、、 四個訊號的真值表(Truth Table)。(8 分)
(二) 請利用 AND、OR 與 NOT 邏輯運算元(logic operator)來表示 與 、、 的關係。(8 分)
(三) 考慮一個 4 對 1 多工器 ,其中:
當 、 時,;
當 、 時,;
當 、 時,;
當 、 時,。
請利用 AND、OR 與 NOT 邏輯運算元,來表示 與 、、、、、 的關係。(9 分)
登入後即可作答並保存紀錄。
核心觀念
多工器(Multiplexer,MUX)依控制訊號選擇一個資料輸入,並將選中的訊號送至輸出。2 對 1 多工器的控制訊號為 : 時選 , 時選 。
以 AND、OR 與 NOT 表示時,可將各輸入視為一個「選擇條件成立時才通過」的項,再以 OR 合併。
解題方法
(一)真值表
依題目定義, 時輸出 , 時輸出 。因此對 、 的四種組合分別列出輸出:
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 |
(二)2 對 1 多工器的邏輯式
被選中的條件是 ,對應選擇項 ; 被選中的條件是 ,對應選擇項 。將兩項以 OR 合併:
其中乘積表示 AND、加號表示 OR、 表示 NOT 。
第 二 題25 分
AI 伺服器的運算能力常以 FLOPs 來表示其運算的效能。
(一) 請解釋 FLOPs。(9 分)
(二) 請解釋 FP32。(8 分)
(三) 請解釋 FP64。(8 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查浮點運算效能的表示方式,以及單精度與雙精度浮點數的精度和儲存格式。作答時須區分「每秒浮點運算次數」與「浮點數的位元格式」:FLOPS 描述運算速率;FP32、FP64 描述浮點數的精度格式。
(一)FLOPs
FLOPs 是 floating-point operations per second 的縮寫,意指「每秒浮點運算次數」,用來表示處理器或系統執行浮點加、減、乘、除等運算的速率。常見單位包括:
例如,若系統每秒可完成 次浮點運算,其效能可表示為 。實際效能會受處理器架構、指令種類、資料精度、記憶體頻寬及工作負載影響,因此 FLOPS 是運算吞吐量指標,不代表所有程式都能達到標示的峰值效能。
(二)FP32
FP32 是 32 位元浮點數格式,通常稱為單精度(single precision)。依 IEEE 754 二進位單精度格式,32 位元分為:
| 欄位 | 位元數 | 功能 |
|---|---|---|
| 符號位元 | 1 | 表示正數或負數 |
| 指數欄位 | 8 | 表示數值的尺度,採偏移值 127 |
| 尾數欄位 | 23 | 表示有效數字部分 |
一般正規化數的形式為:
其中 是符號位元、 是儲存的指數值、 是尾數欄位。正規化數具有隱含的前導 ,故有效精度約為 24 個二進位有效位元,約相當於 7 位十進位有效數字。其表示範圍與精度低於 FP64,但每個數值只占 4 位元組,通常較節省記憶體並有利於較高的運算吞吐量。
(三)FP64
第 三 題25 分
考慮以下計算機,其所執行之程式有四種指令,每種指令之特性如下表的各欄位所示。其中 NC 表示「不需計入考量」。在本題中,計算效能(throughput)定義為每秒可執行的指令數。
| 指令 | 在程式占有之比重 | 擷取時間 | 解碼時間 | ALU 執行時間 | 記憶體儲存時間 | 結果寫入(WB)時間 |
|---|---|---|---|---|---|---|
| Load | 25% | 2 ns | 2 ns | NC | 2 ns | 2 ns |
| Store | 20% | 2 ns | 2 ns | 2 ns | 2 ns | NC |
| Arithmetic | 30% | 2 ns | NC | 2 ns | NC | 2 ns |
| Branch | 25% | 2 ns | NC | NC | NC | NC |
(一) 如果該電腦以 single-cycle processor 實現,請問 throughput 是多少?(8 分)
(二) 如果該電腦以 multi-cycle processor 實現,請問 throughput 是多少?(8 分)
(三) 如果該電腦以 5-stage pipelined processor 實現,假設沒有任何資料錯置或是結構錯置的發生,也不計中斷時間,請問 throughput 是多少?(9 分)
登入後即可作答並保存紀錄。
核心觀念
本題比較三種處理器設計的指令吞吐量。吞吐量定義為每秒可完成的指令數,須先求出平均每條指令所需的時間,再取其倒數:
其中,single-cycle processor 的每條指令都占用一個固定週期;multi-cycle processor 的指令則依各自需要的階段數執行;5-stage pipelined processor 在理想狀況下,每個時脈週期可完成一條指令。
表中的 NC 表示該指令不使用該階段,不應將該階段時間計入該指令的實際需求。
(一)Single-cycle processor
Single-cycle processor 必須讓最慢的指令也能在一個週期內完成,因此時脈週期取所有指令所需時間的最大值。各指令時間為:
- Load:
- Store:
- Arithmetic:
- Branch:
因此,single-cycle 時脈週期為 。每條指令都占用 ,不受指令比例影響:
(二)Multi-cycle processor
Multi-cycle processor 可依指令實際使用的階段數執行。此處各階段時間均為 ,所以各指令的執行時間為:
- Load: 個階段,
- Store: 個階段,
- Arithmetic: 個階段,
- Branch: 個階段,
第 四 題25 分
總工作量(Work)的定義就是處理器花在某個程式上的時間總和(不包含待命時間)。而工作深度(Depth)就是根據計算的相依性,找出相依性最長的那件工作。如下圖所示:
【原卷圖示:將 16 個數加總之計算相依性圖,請參考原卷。】
本圖所示之例子,一個程式的工作是將 16 個數加總起來,如果我們把所有運算步驟的相依性繪製成一個圖,那麼 Depth 是 4,而 Work 是 15。
現今考慮一個程式的工作是將 個數加總起來的時候:
(一) 請建立 Work 與 的關係式。(12 分)
(二) 請建立 Depth 與 的關係式。(13 分)
登入後即可作答並保存紀錄。
核心觀念
本題考平行計算的總工作量(Work)與工作深度(Depth)。Work 是完成程式所需的運算總數;Depth 是相依性最長的運算鏈,也就是以平行方式執行時,至少需要的運算層數。
依題圖,每次加法將兩個數或兩個部分和合併,且同一層中彼此沒有相依性的加法可以平行執行。
解題方法
(一)Work 與 的關係
初始有 個數,每做一次加法,就將待合併的數或部分和減少一個。從 個數合併成一個總和,必須減少 次,因此:
題圖中 ,故 Work 為 ,與圖示相符。
(二)Depth 與 的關係
每一層加法最多將已合併的數量加倍。因此,經過 層,最多可合併 個原始數。要涵蓋 個數,須滿足:
取能滿足條件的最小整數層數,得到: