112 專利師高等考試 專利師(選試專業英文及計算機結構) 計算機結構 考古題詳解
第 一 題25 分
請回答以下有關 CPU(Central Processing Unit)與 GPU(Graphical Processing Unit)在架構與功能方面比較的問題。
(一)一個 CPU 內的核心(core)數量,比一個 GPU 的核心數量多出數十倍到數百倍。對或錯?
(二)CPU 內的單一核心的時脈速率(clock rate)比 GPU 內單一核心的時脈速率大。對或錯?
(三)GPU 內之記憶體結構大多採用快取記憶體(cache),而 CPU 內之記憶體結構適合多核心同時進行資料存取。對或錯?
(四)假設 CPU 在執行程式時,(clock cycles per instruction)從 變成 ,時脈速率從 變成 ,則執行時間會變成原來的幾倍?請詳細提供計算過程,否則不予計分。
登入後即可作答並保存紀錄。
核心觀念
本題考 CPU 與 GPU 的設計目標、核心特性及記憶體階層,並用 CPU 執行時間公式比較效能。
CPU 著重低延遲與通用性,通常採用少量但功能較複雜的核心,並配置較大的快取,以減少單一執行緒等待資料的時間。GPU 著重高吞吐量,通常配置大量較簡化的運算核心,並以大量平行執行緒隱藏記憶體延遲。
CPU 執行時間公式為:
其中,CPI 是每一指令平均所需的時脈週期數;時脈週期為時脈速率的倒數。
解題方法與各子題分析
(一)CPU 核心數是否比 GPU 多數十至數百倍?
錯。
一般而言,GPU 的運算核心數量遠多於 CPU。CPU 核心設計較複雜,擅長分支判斷、控制流程及低延遲的序列執行;GPU 核心相對簡化,透過大量核心同時處理資料,提升平行運算的吞吐量。因此,題目所稱「CPU 核心數比 GPU 多數十至數百倍」顛倒了通常的數量關係。
(二)CPU 單一核心的時脈速率是否大於 GPU 單一核心?
對。
一般而言,CPU 單一核心的時脈速率較高。CPU 著重單一核心的執行效能與反應速度,常以較高時脈及複雜的核心設計處理各類工作;GPU 著重大量核心的平行吞吐量,單一核心的時脈通常較低。比較時應看「單一核心」,不能將 GPU 所有核心合計的運算能力與 CPU 單一核心時脈混為一談。
(三)GPU 記憶體結構大多採用快取,而 CPU 記憶體結構適合多核心同時存取?
錯。
題目把兩者的記憶體設計特性對調了。CPU 通常配置較大的多層快取,藉此降低資料存取延遲;
第 二 題25 分
在處理器的結構當中,管線化(Pipelining)屬於加速執行的一種選項。當處理器的指令集架構可將處理器管線化成在四個均等的管線中執行指令,將可使每道指令在「正常狀況」下於通過四個管線階段所需的總時間為 (nanosecond),也就是每一均等階段需 的時間。請回答以下問題。
(一)執行一道、五道、十道、一百道、一千道指令時,各需多少時間?
(二)承上題,相較於沒有管線化的架構,執行一道、五道、十道、一百道、一千道指令時,分別可預期獲得幾倍的加速?(註:沒有加速,是謂「零倍加速」。)請用紙、筆、手作除法計算,回答到小數第二位,而小數第三位四捨五入處理。
(三)請具體舉例說明一個「非正常狀況」的狀況,是什麼狀況?(硬體故障、停電、人為外力中斷等不計。)
登入後即可作答並保存紀錄。
核心觀念
本題考查管線化的執行時間與加速比。四個管線階段各需 ,因此管線時脈週期為 ,而一道指令完整通過四個階段需 。
正常狀況下,各指令能依序進入管線,並在不同階段重疊執行。對 道指令:
- 管線化總時間:第一道指令需先經過四個階段,之後每個管線週期完成一道指令,因此
- 未管線化總時間:每道指令需 ,故
- 加速比定義為未管線化執行時間除以管線化執行時間:
解題方法與計算
第一道指令需 個週期完成;此後每增加一道指令,總時間增加 個週期。將題目要求的指令數代入公式,可得:
| 指令數 | 管線化時間 | 未管線化時間 | 加速比 |
|---|---|---|---|
| 1 | 倍 | ||
| 5 | 倍 |
第 三 題25 分
請回答以下有關 的補數(two’s complement)邏輯設計的問題。在一個 位元的系統中, 的補數可以用於表示正數(positive number)與負數(negative number)。
(一)請將這個 位元的系統的 以二進位方式(binary form)表示。
(二)請將這個 位元的系統的 以二進位方式(binary form)表示。
(三)以 代表一個數字 在這個系統中的 個位元,其中 是 MSB(most significant bit)。以 來代表數字 的 的補數,其中 是 MSB。
如今提供給你四個加法器(、、、)與四個 NOT gate。每一個 接受兩個輸入 與 ,運算後會產生一個進位 與和 ( to )。
請使用 與四個加法器、四個 NOT gate,以及 AND、OR 等邏輯運算子(logic operator)進行運算來表示 。提示:將 設定為 , 設定為 ,則 就是 。請表示如何從 、、 得到 、、。
登入後即可作答並保存紀錄。
核心觀念
位元二補數的最高位是符號位,範圍為 至 。正數以一般二進位表示;負數可由其正數逐位取反後加 得到。
本題第三小題要以加法器實作「取二補數」:對輸入位元 計算 。因為加法器一次只處理一個位元,須將每級的進位接到下一級,形成漣波進位加法器。
解題方法
(一)表示
的二進位為 。補足為 位元:
(二)表示
先寫出 ,逐位取反得 ,再加 :
因此:
(三)以加法器與邏輯閘產生二補數
依提示,最低位設定為:
最低位加法器輸出:
其進位為:
對其餘位元,令 ,並將前一級進位接到 :
每一級的和為:
進位為:
因此各位元展開如下:
電路設定整理如下:
第 四 題25 分
假設實體記憶體有四頁,以及參考頁面的編號序列為 ,也就是先參考頁面 ,接續頁面 ,再接續頁面 ,……,一直到最後頁面 。請逐一跟隨(trace)與計算以下每一種記憶體置換策略(replacement strategy),會發生幾次的頁面存取錯誤(page fault)。(假設每種策略最初所有頁面的內容都是空的。)
(一)FIFO(First In First Out)。
(二)LRU(Least Recently Used)。
(三)LIFO(Last In First Out)。
(四)MRU(Most Recently Used)。
(五)請設計與說明一套你自己提出的置換策略,以及展示會發生幾次頁面存取錯誤。
登入後即可作答並保存紀錄。
核心觀念
本題考記憶體頁面置換:實體記憶體有四個頁框,參考序列為
參考頁面已在記憶體中,稱為命中;不在記憶體中,稱為頁面錯誤。若仍有空頁框,就直接載入;頁框已滿時,才依置換策略選擇要移出的頁面。初始記憶體為空,因此最初載入的四個不同頁面都會造成頁面錯誤。
以下以「由左至右」記錄四個頁框;「錯」表示發生頁面錯誤,「中」表示命中。
解題方法
依序處理每個參考頁面。頁框未滿時直接載入;頁框已滿時,先依該策略找出要置換的頁面,再更新頁框內容並累計錯誤次數。
題目中的 LIFO 依「最後載入的頁面先被置換」解讀;頁面命中不會改變載入先後次序。LRU 與 MRU 則依頁面的最近使用時間判斷。
(一)FIFO(先進先出)
FIFO 置換最早載入且尚未移出的頁面。命中不會改變頁面的載入順序。
| 參考 | 結果 | 頁框內容(由左至右) |
|---|---|---|
| a | 錯 | a |
| b | 錯 | a,b |
| g | 錯 | a,b,g |
| a | 中 | a,b,g |
| d | 錯 | a,b,g,d |
| e | 錯,置換 a | b,g,d,e |
| a | 錯,置換 b | g,d,e,a |
| b | 錯,置換 g | d,e,a,b |
| a | 中 | d,e,a,b |
| d | 中 | d,e,a,b |
| e | 中 | d,e,a,b |
| g | 錯,置換 d | e,a,b,g |
| d | 錯,置換 e | a,b,g,d |
| e | 錯,置換 a | b,g,d,e |
錯誤發生在第 次參考,共 10 次。
(二)LRU(最近最少使用)
LRU 置換最久沒有被使用的頁面。每次命中也會更新該頁面的最近使用時間。
| 參考 | 結果 | 頁框內容(由左至右) |
|---|---|---|
| a | 錯 | a |
| b | 錯 | a,b |
| g | 錯 | a,b,g |
| a | 中 | a,b,g |
| d | 錯 | a,b,g,d |
| e | 錯,置換 b | a,g,d,e |
| a | 中 | a,g,d,e |
| b | 錯,置換 g | a,d,e,b |
| a | 中 | a,d,e,b |
| d | 中 | a,d,e,b |
| e | 中 | a,d,e,b |
| g | 錯,置換 b | a,d,e,g |
| d | 中 | a,d,e,g |
| e | 中 | a,d,e,g |
例如參考 時, 中最久未使用的是 ,因此置換 。錯誤發生在第 次參考,共 7 次。
(三)LIFO(後進先出)
LIFO 置換最近載入的頁面。命中不會改變載入先後次序,因此本題在頁框已滿後,置換的頁面依序是目前最後載入的頁面。
| 參考 | 結果 | 頁框內容(由左至右) |
|---|---|---|
| a | 錯 | a |
| b | 錯 | a,b |
| g | 錯 | a,b,g |
| a | 中 | a,b,g |
| d | 錯 | a,b,g,d |
| e | 錯,置換 d | a,b,g,e |
| a | 中 | a,b,g,e |
| b | 中 | a,b,g,e |
| a | 中 | a,b,g,e |
| d | 錯,置換 e | a,b,g,d |