109 年 國立中正大學資訊工程學系碩士班甲組《計算機系統》
第 1 題
(1) Consider a system crash on a log-structured file system. Which one of the following events must occur?
A. Only aborted transactions must be completed.
B. All transactions in the log must be completed.
C. All transactions in the log must be marked as invalid.
D. File consistency checking must be performed.
E. None of the above will occur.
登入後即可作答並保存紀錄。
核心觀念
Log-structured file system(LFS)將資料與檔案系統中繼資料依序追加到 log,並定期寫入一致的 checkpoint。發生 crash 後,復原流程通常是:
- 讀取最近一次有效的 checkpoint。
- 從 checkpoint 之後開始掃描 log。
- 重做已完整寫入、狀態有效的更新。
- 捨棄 crash 時尚未完整寫入的尾端紀錄或未提交交易。
因此,LFS 的正常復原依靠的是 checkpoint 與 roll-forward recovery,而不是傳統檔案系統的完整一致性檢查。
解題方法
逐一判斷各選項所描述的事件是否符合 LFS 的 crash recovery:
- 已提交且完整的交易:保留或重做。
- 未提交、已取消或寫入不完整的交易:捨棄。
- 不需要將所有 log 內容一律視為有效或無效。
- 不需要每次 crash 都執行完整的 file consistency checking。
選項分析
A. Only aborted transactions must be completed.
錯誤。aborted transaction 已被取消,不應完成或重做;復原時應捨棄它。需要保留的是已完整寫入且有效的交易。
B. All transactions in the log must be completed.
第 2 題
(2) ____ allows the parent and child processes to initially share the same pages, but when either process modifies a page, a copy of the shared page is created.
A. Copy-on-write
B. Zero-fill-on-demand
C. Memory-mapped
D. Virtual memory fork
E. Copy-on-reference
登入後即可作答並保存紀錄。
核心觀念:行程 (process) 間的記憶體共享與 Copy-on-Write (COW) 機制。
當一個父行程 (parent process) 建立一個子行程 (child process) 時,為了效率,通常會讓子行程繼承父行程的資源,包括記憶體空間。在現代作業系統中,為了避免立即複製整個記憶體空間(這非常耗時且浪費資源),會採用一些共享機制。
選項分析:
A. Copy-on-write (COW):這是一種資源管理技術。當父行程建立子行程時,兩個行程會共享相同的記憶體頁面。只有當其中一個行程試圖修改共享頁面時,系統才會為該頁面創建一個副本,然後修改副本。這樣就實現了初始的記憶體共享,以及在需要時才進行實際的複製。這完美符合題目的描述。
B. Zero-fill-on-demand:這是一種記憶體管理技術,用於在分配新的記憶體頁面時,將其內容初始化為零。這與父子行程共享頁面的情境無關。
C. Memory-mapped:這是一種將檔案或裝置映射到行程的虛擬位址空間的技術。
第 3 題
(3) Which of the following statements is true?
A. A safe state is a deadlocked state.
B. A safe state may lead to a deadlocked state.
C. An unsafe state is necessarily, and by definition, always a deadlocked state.
D. A deadlocked state may lead to a safe state.
E. An unsafe state may lead to a safe state.
登入後即可作答並保存紀錄。
觀念剖析
依據作業系統資源分配與死鎖(Deadlock)理論,系統狀態間的關係如下:
- 安全狀態(Safe State):存在至少一個安全序列(Safe Sequence),系統保證絕對不會發生死鎖。
- 不安全狀態(Unsafe State):不存在安全序列,代表系統有可能發生死鎖,但不等於已經死鎖(死鎖狀態僅為不安全狀態的子集合)。
第 4 題
(4) The file-allocation table (FAT) used in some file systems is an example of ____.
A. contiguous allocation
B. indexed allocation
C. linked allocation
D. multilevel index
E. extent-based allocation
登入後即可作答並保存紀錄。
核心觀念
本題考查檔案配置(file allocation)的基本方法。常見方式包括:
- Contiguous allocation:檔案所有資料區塊連續存放。
- Linked allocation:檔案區塊以鏈結串列連接,每個區塊記錄下一個區塊的位置。
- Indexed allocation:另設索引區塊,集中記錄檔案所有資料區塊的位置。
- Multilevel index:使用多層索引區塊管理大型檔案。
- Extent-based allocation:以多個連續區段(extent)描述檔案位置。
FAT(File Allocation Table)的每個表格項目記錄「下一個配置區塊」的位置。例如:
若檔案的起始區塊為 ,其配置鏈結就是:
因此,FAT 的本質是以表格集中保存鏈結配置所需的下一區塊指標。
解題方法
判斷檔案配置方式時,觀察「檔案的下一個區塊位置如何取得」:
- 目錄項目記錄檔案的起始區塊。
- 由該區塊編號查詢 FAT。
- FAT 項目提供下一個區塊編號。
- 持續查詢,直到遇到 EOF(End of File)標記。
檔案不必連續存放,系統透過 FAT 中的指標將分散的區塊串成一條鏈。因此,FAT 是以集中式表格實作的鏈結配置。
選項分析
-
A. contiguous allocation:錯誤
連續配置要求檔案的所有區塊位於連續磁碟位置,例如:
FAT 中的檔案區塊可以分散在磁碟各處,例如:
第 5 題
(5) A solution to the critical section problem does not have to satisfy which of the following requirements?
A. mutual exclusion
B. progress
C. atomicity
D. bounded waiting
E. All of the above
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統中的「臨界區問題(critical-section problem)」及其三項標準要求。
一個行程通常具有以下結構:
其中,臨界區會存取共享資料。合格的臨界區解法必須滿足:
- Mutual exclusion(互斥)
- Progress(進度)
- Bounded waiting(有限等待)
**Atomicity(原子性)**雖然常用於實作同步機制,但不是臨界區問題所列出的三項標準要求。
解題方法
直接對照臨界區問題的標準定義:
- 若選項屬於三項必要要求,則不能選。
- 不在三項必要要求中的性質,才是本題答案。
三項必要要求為:
1. Mutual exclusion
任一時刻最多只能有一個行程位於臨界區:
若無法滿足互斥,兩個行程可能同時修改共享資料,造成競爭條件。
2. Progress
當目前沒有行程位於臨界區,且有行程希望進入時,系統必須在有限時間內決定下一個進入者。
不能讓不想進入臨界區的行程影響決策,也不能讓所有等待行程無限期停滯。
3. Bounded waiting
行程提出進入臨界區的請求後,其他行程可以插隊進入臨界區的次數必須有上限。
此要求用來避免 starvation(飢餓),確保等待中的行程最終能夠進入。
因此,標準要求中沒有 atomicity,答案為 C。
選項分析
第 6 題
(6) Which of the following can be directly done by an application (i.e., not via a system call that asks the OS to do it) running in user mode?
A. Disarm Interrupts
B. Set the system timer
C. Modify the interrupt vector
D. Execute an I/O instruction
E. None of the above can be done in user mode.
登入後即可作答並保存紀錄。
核心觀念
本題考查「使用者模式(user mode)」與「核心模式(kernel mode)」的權限區分。
作業系統會將可能影響整台電腦、其他程序或系統控制流程的指令,列為特權操作(privileged operations)。使用者模式中的應用程式若直接執行此類指令,CPU 會觸發例外並轉交作業系統處理;應用程式必須透過系統呼叫,請求核心代為完成。
本題四項操作都會直接影響系統的中斷控制或硬體資源,因此不能由使用者模式中的應用程式直接完成。
解題方法
逐一判斷各操作是否會影響全域系統狀態:
- 若操作會改變 CPU 的中斷處理方式,屬於核心權限。
- 若操作會改變系統時脈或排程依據,屬於核心權限。
- 若操作會改變中斷處理程序的入口位置,屬於核心權限。
- 若操作會直接存取 I/O 裝置,屬於核心權限。
四者皆非使用者模式可直接執行的操作,因此選擇 E。
選項分析
-
A. Disarm Interrupts
關閉或禁止中斷會使 CPU 暫時不接受外部中斷。若應用程式能任意關閉中斷,便可能阻止作業系統取得 CPU 控制權,造成系統無法排程、處理裝置事件,甚至整個系統停止運作。
因此,禁止中斷屬於特權操作。例如 x86 的
CLI指令便不能由一般使用者模式直接執行,否則會產生例外。A 錯誤。
-
B. Set the system timer
系統計時器通常用來產生週期性中斷,讓作業系統進行時間管理與搶先式排程。若應用程式能自行設定系統計時器,便可能任意改變排程頻率、干擾其他程序,甚至阻止排程器正常運作。
因此,設定系統計時器必須由核心執行,使用者程式只能透過系統呼叫提出請求。
B 錯誤。
第 7 題
(7) In OSs for modern machines, what is the immediate result if a process generates an address that is outside its legal address range?
A. Blue Screen of Death
B. Deadlock
C. The program will probably not work right
D. A hardware interrupt (trap) will occur
E. The system call will return an error
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統的**記憶體保護(memory protection)**與 trap/exception。
每個行程都有合法的虛擬位址範圍。CPU 執行記憶體存取指令時,會由記憶體管理單元(MMU)檢查位址是否:
- 落在行程允許的位址範圍內;
- 對應到有效的頁面;
- 符合存取權限,例如可讀、可寫或可執行。
若位址不合法,指令不會正常完成,硬體會同步產生記憶體保護例外,將控制權轉交作業系統的例外處理程式。
在簡化的基底暫存器與界限暫存器模型中,合法位址可表示為:
若不符合此條件,就會觸發保護例外。
解題方法
題目問的是「immediate result」,也就是非法位址產生後的立即結果,不是作業系統後續如何處置該行程。
判斷流程如下:
- 行程產生一個虛擬位址。
- MMU 檢查位址範圍、頁表有效位元與存取權限。
- 檢查失敗,硬體產生同步的 trap/exception。
- CPU 轉入核心模式,執行作業系統的處理常式。
- 作業系統後續可能終止行程,或回報存取違規。
因此,立即結果是發生硬體 trap。
選項分析
-
A. Blue Screen of Death
錯誤。藍色畫面是某些作業系統在發生核心層級嚴重錯誤時的錯誤呈現,不是一般使用者行程存取非法位址的必然立即結果。使用者行程通常只會被終止或收到存取違規訊號,不會直接造成整個系統藍屏。
-
B. Deadlock
第 8 題
(8) What system call does a Linux job normally use to start another copy of itself?
A. clone
B. fork/exec
C. shell
D. dispatch
E. None of the above is used by a Linux job use to start another copy of itself.
登入後即可作答並保存紀錄。
核心觀念
本題考的是 Linux 的行程(process)建立與程式映像置換:
fork():建立目前行程的子行程。子行程一開始是父行程的複製品,具有新的 PID。exec()家族:將目前行程的程式碼、資料區與堆疊替換成另一個可執行檔,但 PID 不變。
因此,Linux 中啟動另一個程式的典型流程是:
fork() 負責「建立另一個行程」,exec() 負責「讓子行程執行指定程式」。
解題方法
題幹的關鍵是「start another copy」:
- 需要產生新的行程,先使用
fork()。 - 若子行程要執行另一個程式,再呼叫
exec()。 - Linux shell 執行命令時,通常也是採用此流程。
簡化程式碼如下:
pid_t pid = fork();
if (pid == 0) {
execlp("program", "program", (char *)NULL);
_exit(127); // exec 失敗時離開
} else {
waitpid(pid, NULL, 0);
}
其中,fork() 成功後會同時存在父、子兩個行程;子行程再透過 exec() 載入指定程式。
若只是單純建立目前程式的副本,fork() 本身已足夠;在一般「建立子行程並執行另一個程式」的考試語境中,標準答案寫作 fork/exec。
選項分析
-
A.
clone:錯誤clone()是 Linux 提供的低階行程/執行緒建立系統呼叫,可透過 flags 指定父子行程是否共享記憶體、檔案描述元等資源。
第 9 題
(9) When an OS is using a Multilevel Feedback Queuing system for scheduling, how is the CPU time divided between the queues?
A. Each level gets a predefined percentage of the CPU time.
B. The top level is exhausted and then the next level gets a turn, etc.
C. Each level gets the same percentage of the CPU time.
D. The percentage of time allocated to a queue varies with the performance of the jobs in that queue. If they run too long the percentage is decreased.
E. Each OS is designed differently.
登入後即可作答並保存紀錄。
核心觀念
多層回饋佇列(Multilevel Feedback Queue, MLFQ)將 ready queue 分成多個優先層級,例如 、、,通常 的優先權最高。
跨佇列的 CPU 分配比例是排程政策事先設定的參數。若第 層分配比例為 ,則必須滿足:
在觀察期間 內,第 層預期取得的 CPU 時間約為:
取得 CPU 時間後,各佇列內部再使用 Round Robin、FCFS 等演算法安排其中的行程。
「回饋」指的是行程會依 CPU 使用行為在不同佇列間移動。常見規則是:耗盡時間片的 CPU-bound 行程降到較低層;經常進行 I/O 或主動讓出 CPU 的行程維持較高優先權;長時間等待的行程則可透過 aging 或 priority boost 提升,以避免 starvation。這種調整主要改變行程所屬的佇列,不代表每個佇列的 CPU 百分比會隨意變動。
解題方法
題目問的是「各佇列之間如何分配 CPU 時間」,不是問「同一佇列內如何排程」。
MLFQ 的典型描述是由系統預先指定各層佇列的 CPU 份額,例如:
- :
- :
- :
第 10 題
(10) With paged memory hardware there was a bit in each page table entry called the "valid" bit that originally meant the page was not a part of the logical address space for the process. When Virtual Memory was implemented on top of this hardware we changed the significance of that bit. What did it now mean?
A. The page had not been referenced lately.
B. The page was not currently in memory.
C. The page was read only.
D. The page was part of the kernel space.
E. The page was dirty.
登入後即可作答並保存紀錄。
核心觀念
本題考查頁式記憶體與虛擬記憶體中,頁表項目(Page Table Entry, PTE)之 valid bit 的意義變化。
在一般頁式記憶體中,valid bit 用來表示該頁是否屬於此行程的合法邏輯位址空間:
valid = 1:此頁是合法頁面。valid = 0:此頁不屬於該行程,存取時會產生例外。
加入虛擬記憶體後,行程的合法位址空間可能大於實體記憶體容量。因此,一個頁面即使屬於行程的合法位址空間,也不一定目前存放在主記憶體中。
此時,valid bit 的意義改為表示:
valid = 1:該頁目前位於主記憶體。valid = 0:該頁目前不在主記憶體,通常位於磁碟等後備儲存空間。
若 CPU 存取 valid = 0 的頁面,硬體會產生 page fault,由作業系統將該頁載入主記憶體,再更新頁表後重新執行指令。
解題方法
判斷關鍵在於區分兩種不同問題:
- 這個頁面是否屬於行程的合法位址空間?
- 這個合法頁面目前是否位於主記憶體?
沒有虛擬記憶體時,頁表通常直接描述合法位址與實體頁框的對應,因此 valid bit 可表示「此頁是否合法」。
有了虛擬記憶體後,合法頁面可能暫時被換出到磁碟。此時需要利用同一個位元表示「目前是否有有效的實體頁框對應」,也就是「是否在主記憶體中」。
因此正確選項是 B。
選項分析
-
A. The page had not been referenced lately.
錯誤。這是 reference bit、accessed bit 的用途,用來記錄頁面近期是否曾被 CPU 存取,常用於頁面置換演算法,例如 Second-Chance。
第 2 題5 分
2 (5%) Consider a file system that uses inodes to represent files. Disk blocks are 8-KB in size and a pointer to a disk block requires 4 bytes. This file system has 12 direct disk blocks, plus single, double, and triple indirect disk blocks. What is the maximum size of a file that can be stored in this file system?
登入後即可作答並保存紀錄。
關鍵參數計算
- 區塊大小:
- 指標大小:
- 單一指標區塊可容納的指標數量 ():
各層級容量定址推導
-
直接區塊(Direct Blocks)(12 個):
-
單層間接區塊(Single Indirect Block)(1 個):
第 3 題13 分
3 (13%) To meet the growing needs on both of capacity and performance of storage devices, the NAND
flash-memory-based devices, i.e., solid-state disks (SSDs), are regarded as the primary storage
candidate on the modern computing system. To overcome the inherent constraints of NAND flash
memory, a key module called "flash translation layer (FTL)" is implemented and maintained in the SSD
controller for efficiently manage the whole device. The FTL consists of three components, and they are
address translator, garbage collector, and wear leveler. Please answer the following questions about the
SSDs.
(1) Please provide two inherent constraints of NAND flash memory. (4%)
(2) Please describe the functionalities of garbage collector and wear leveler. (6%)
(3) Over-provisioning space is usually adopted to improve the performance of garbage collection and
wear leveling processes. Please explain what is "over-provisioning space" and how it helps on
improving the performance of garbage collection or wear leveling processes. (3%)
登入後即可作答並保存紀錄。
核心觀念
本題考查 NAND Flash SSD 中 Flash Translation Layer(FTL)的三項核心功能:
- Address Translator:將主機的邏輯區塊位址(LBA)轉換為 NAND Flash 的實體位址。
- Garbage Collector(GC):回收含有無效資料的區塊,重新產生可寫入的空間。
- Wear Leveler(WL):平均分散各區塊的擦除次數,避免少數區塊過度磨損。
NAND Flash 的重要特性是:
- 資料不能直接覆寫,必須先擦除。
- 寫入以 page 為單位,但擦除以 block 為單位。
- 每個 block 的 Program/Erase(P/E)次數有限。
因此,SSD 必須透過 FTL 管理邏輯位址、資料搬移、區塊回收與磨耗分散。
解題方法
作答時可依照「限制 → 對應管理機制 → 額外空間效益」的順序:
- 先指出 NAND Flash 的兩個根本限制。
- 說明 GC 如何解決「無法直接覆寫」造成的空間回收問題。
- 說明 WL 如何解決「P/E 次數有限且容易分布不均」的問題。
- 最後解釋 OP space 如何增加 GC 與 WL 的操作彈性。
(1)NAND Flash Memory 的兩項先天限制
限制一:不能直接覆寫,且寫入與擦除的粒度不同
NAND Flash 的 page 一旦寫入資料,不能像磁碟或記憶體一樣直接將原內容覆寫。若要更新資料,通常必須:
- 將新資料寫入另一個尚未使用的 page。
- 將原 page 標記為無效(invalid)。
- 待整個 block 中累積足夠無效 page 後,再由 GC 搬移仍有效的 page。
- 擦除整個 block,重新取得可用空間。
其中,資料寫入以 page 為單位,但擦除必須以較大的 block 為單位。因此,即使只更新一個 page,也可能需要搬移同一 block 中其他仍有效的資料,造成額外成本。
限制二:每個 block 的 P/E 次數有限
NAND Flash 的儲存單元經過反覆的 Program 與 Erase 後會逐漸劣化。每個 block 可承受的 P/E 次數有限,超過耐久度後可能出現:
- 資料保存時間縮短;
- 位元錯誤增加;
- ECC 修正負擔增加;
- 最終形成壞 block,無法可靠使用。
因此,SSD 不能讓少數熱門區塊反覆被擦除,而必須透過 wear leveling 將擦除次數分散到不同 block。
可補充的相關特性
NAND Flash 的讀取、寫入與擦除速度也不對稱,通常擦除操作特別慢;此外,MLC、TLC、QLC 等多位元儲存單元對錯誤與磨耗更加敏感。這些特性會進一步增加 FTL 管理的必要性。
(2)Garbage Collector 與 Wear Leveler 的功能
A. Garbage Collector
GC 的主要功能是回收 NAND Flash 中的無效空間,重新建立可寫入的 free blocks。
當主機更新資料時,FTL 不會覆寫原 page,而是將新版本寫到其他 page,舊 page 則成為 invalid。GC 的基本流程如下:
- 從已使用的 block 中選擇一個回收對象,通常稱為 victim block。
- 找出其中仍然有效的 pages。
- 將有效資料搬移至其他 free block。
- 更新 FTL 的邏輯位址到實體位址對映。
- 擦除原本的 victim block。
- 將擦除後的 block 放回 free-block pool,供後續寫入使用。
若 victim block 中有效 page 很少,所需搬移的資料量較少,GC 成本也較低。因此常見的選擇策略是優先回收「無效 page 比例高」的 block。
GC 會造成額外的實體寫入。其寫入放大率可表示為:
GC 搬移的有效資料越多,NAND 實際寫入量越大,寫入放大率越高,效能與 Flash 壽命也越差。
B. Wear Leveler
WL 的主要功能是平均分配各 block 的 P/E 次數,避免部分 block 過度磨損。
假設某些 block 儲存作業系統或長期不變的資料,其他 block 則持續承受頻繁更新。若沒有 WL,寫入密集的 block 會很快達到耐久度上限,即使其他 block 幾乎沒有被使用,整顆 SSD 仍可能因少數壞 block 而降低可用性。
常見的 WL 分為兩種:
動態磨耗平均(Dynamic Wear Leveling)
新資料寫入時,優先選擇 P/E 次數較低的可用 block,讓新的寫入工作分散到不同 block。
其優點是成本較低;缺點是長期不變的資料可能一直留在原本的低磨耗 block,造成整體磨耗仍不完全平均。
靜態磨耗平均(Static Wear Leveling)
除了安排新的資料寫入低磨耗 block,也會定期搬移長期不變的資料,讓原本很少使用的 block 能夠被納入擦除與重新配置。
第 4 題6 分
4 (6%) Consider the following snapshot of a system:
Allocation
Max
A
B
C
D
A
B
C
D
PO
3
0
1
4
6
2
2
8
P1
2
2
1
0
4
3
2
2
P2
3
1
2
1
4
4
3
2
P3
0
5
1
0
5
7
2
3
P4
4
2
1
2
7
4
3
6
登入後即可作答並保存紀錄。
核心觀念
本題使用 Banker’s algorithm(銀行家演算法) 判斷系統是否處於安全狀態。
各欄位意義如下:
- Allocation:程序目前已占用的資源量。
- Max:程序完成工作所需的最大資源總量。
- Need:程序尚需的資源量。
若目前可用資源為 Available,則令:
若某程序 滿足:
則可假設該程序取得所需資源並完成工作;完成後釋放原本占用的資源:
若所有程序都能依序完成,系統即為安全狀態,該順序稱為 安全序列(safe sequence)。
計算 Need 矩陣
逐列計算 :
| 程序 | Allocation | Max | Need |
|---|---|---|---|
因此,題目提供的資料可確定為:
解題方法
目前所有程序已配置的資源總量為:
若系統總資源為 ,則:
Banker’s algorithm 的判斷流程如下:
-
將
Work設為Available。 -
找出尚未完成且滿足 的程序。
-
假設該程序完成,更新:
-
重複上述步驟,直到所有程序完成,或找不到任何可完成的程序。
合理假設下的完整計算
題目未提供 Available 或各資源的總量,因此無法僅由表格唯一判定安全性。以下採用一組合理的示範假設:
初始時:
第一步:完成
因此 可以完成。釋放其配置資源:
第二步:完成
完成後:
第 5 題6 分
5 (6%) Consider a demand-paging system with the following time-measured utilizations:
CPU utilization 20%
Paging disk 97.7%
Other I/O devices 5%
Please provide three ways to improve the CPU utilization. The brief explanation is needed.
登入後即可作答並保存紀錄。
核心觀念
本題考查 demand paging、page fault 與 thrashing。
在 demand paging 中,若行程存取的頁面不在實體記憶體,便會產生 page fault。作業系統必須從 paging disk 載入頁面,行程在磁碟 I/O 完成前會被阻塞,CPU 因而無法執行有效工作。
有效存取時間可表示為:
其中:
- :page fault 發生機率
- :一般記憶體存取時間
- :處理 page fault 所需時間,主要包含磁碟 I/O
由於 遠大於 ,只要 page fault 頻繁發生,CPU 就會長時間等待 paging disk。
本題中 CPU utilization 僅為 ,paging disk utilization 卻高達 ,而其他 I/O 裝置僅 ,表示瓶頸在分頁 I/O,系統正處於典型的 thrashing:大部分時間都在換入、換出頁面,而非執行程式。
解題方法
設實體記憶體可提供 個 frame。對第 個行程,在最近 次記憶體參考中所使用的頁面集合大小稱為 working-set size:
所有執行中行程的總記憶體需求為:
當:
所有行程就無法同時保留其主要工作集合,page fault 會大量增加,形成 thrashing。因此改善 CPU utilization 的方向,是降低 page fault,讓更多行程保持 ready 狀態。
題目沒有提供 page fault rate 與磁碟服務時間,因此無法計算改善後的精確 CPU utilization;本題應根據裝置利用率判斷系統瓶頸並提出改善方法。
三種改善方式
-
降低多道程度(degree of multiprogramming)
暫停或 swap out 部分行程,使記憶體中的行程數減少。此時:
第 6 題5 分
6 (5%) If we have two machines P and Q with the same instruction set architecture (ISA), the cycles per
instruction (CPI) are 2.0 in P and 1.0 in Q, and the machine P has a clock cycle time of 250ps, and
machine Q has a clock rate of 2.0 GHz. Then, for any program, please compare the performance
between these two machines.
登入後即可作答並保存紀錄。
核心觀念
本題考查 CPU 執行時間與效能的比較。
CPU 執行時間公式為:
也可寫成:
同一 ISA 下,執行相同程式時所需的指令數相同,設為 。機器效能與執行時間成反比:
解題方法
先將兩部機器的時脈資訊統一成「每條指令的平均執行時間」。
機器 P 的 clock cycle time 為 ,因此其 clock rate 為:
機器 Q 的 clock rate 為 ,因此其 clock cycle time 為:
對相同程式,指令數皆為 。
機器 P 的執行時間:
第 7 題5 分
7 (5%) If a pipelined processor has five stages with the critical path delay of 5ns, 4ns, 6ns, 10ns, and 5ns, respectively. What is the minimum execution time for N instructions? (Assume that no pipeline stalls occur)
登入後即可作答並保存紀錄。
核心觀念
本題考查管線處理器的:
- 管線時脈週期:由所有階段中延遲最大的階段決定。
- 管線填充時間:第一筆指令必須依序通過全部 個階段。
- 穩態吞吐量:管線填滿後,每一個時脈週期可完成一筆指令。
假設管線暫存器延遲忽略不計,且沒有任何 pipeline stall。
解題方法
五個管線階段的延遲分別為:
每一個階段必須在同一個時脈週期內完成,因此時脈週期至少要等於最慢階段的延遲:
共有 個階段。對 筆連續指令而言:
- 第一筆指令需要 個週期完成;
- 之後每增加一筆指令,只需再增加 個週期;
- 因此總共需要
個週期。
所以最小執行時間為:
第 8 題5 分
8 (5%) Assume a processor operates at clock frequency 2.5GHz, and the instruction cache and data cache
are split. If all memory access is hit in the cache, the cycles per instruction (CPI) is 2. The miss penalty
of the cache is 20ns. If a program runs on this processor, in the instructions been executed, 20% of them
are memory access instructions. The miss rate for the instruction cache is 2%, and is 5% for the data
cache. What is the actual CPI?
登入後即可作答並保存紀錄。
核心觀念
本題考查 Cache miss 對 CPI 的影響。實際 CPI 可表示為:
由於指令快取與資料快取分離:
- 每一條指令都需存取一次 instruction cache。
- 只有 20% 的指令會存取 data cache。
- 題目給定的 CPI 已包含 Cache 命中時的正常成本,因此只需額外加入 miss penalty。
解題方法
先將 miss penalty 的時間換算成處理器週期。
處理器頻率為 ,每個 cycle 的時間為:
因此, 相當於:
接著分別計算兩種 Cache 造成的額外 CPI。
指令快取方面,每條指令都會存取 instruction cache,miss rate 為 :
第 9 題10 分
9 (10%) Convolutional neural networks (CNN) have demonstrated impressive performance in various
computer vision tasks, and CNN spends the majority of computations in doing convolution. The
following figure shows an example of convolution. If there is one 3x4 input map (a to I), the kernel size
is 2x2 with four parameters (w, x, y, and z), and then the 2x3 output feature map can be computed as
illustrated in the figure. Based on IEEE 754 standard, the single-precision numbers are stored in 32 bits
with one sign bit, 8 exponent bits, and 23 mantissa bits. The inputs and kernel parameters are expressed
in the single-precision format. If we assume the values for a to I are 0xc0800000, the values for w, x, y,
and z are 0x40000000. Please compute the output feature map and express the answer in the
single-precision format.
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
本題考查:
- CNN 的二維卷積運算。
- IEEE 754 單精度浮點數格式。
- 十六進位位元表示與十進位浮點數的轉換。
輸入特徵圖為 ,卷積核為 ,採用 stride 、不補零的 valid convolution,因此輸出大小為:
每個輸出元素都是輸入的 區塊與卷積核逐元素相乘後相加。
IEEE 754 數值轉換
輸入值
所有輸入 到 的位元表示為:
此數的 IEEE 754 欄位為:
- sign bit:,表示負數
- exponent:,實際指數為
- fraction:
因此:
卷積核參數
的位元表示為:
其 IEEE 754 欄位為:
- sign bit:
- exponent:,實際指數為
- fraction:
因此:
解題方法
輸入特徵圖可表示為:
卷積核為:
第 10 題15 分
10 (15%)
(1) Illustrate (a) the setup time (Tsetup), (b) clock-to-q delay (Tc2Q), and (c) hold time (Thold) of a
flip-flop with a timing diagram.
(2) Express the minimum clock period of a synchronous circuit in terms of Tsetup, Tc2Q, and Thold of a
flip-flop (i.e. pipeline register), and the critical path delay (Tcp) of the datapath.
(3) Use Amdahl's law to explain why pipelining a datapath into N stages cannot achieve the ideal
speedup of N.
登入後即可作答並保存紀錄。
核心觀念
本題涵蓋數位邏輯設計(Digital Logic Design)與計算機結構(Computer Architecture)的兩個核心主題:
- 正反器(Flip-Flop)之動態時序約束(Timing Constraints):
邊緣觸發正反器的關鍵動態參數包含:建立時間(Setup Time, )、時脈到輸出延遲(Clock-to-Q Delay, )與保持時間(Hold Time, )。同步順序電路必須滿足建立時間約束以避免產生亞穩態(Metastability),這決定了系統的最高運作頻率與最小時脈週期 。 - 流水線(Pipelining)效能與阿姆達爾定律(Amdahl's Law):
將組合邏輯 Datapath 切分為 個階段(Stages)時,理想加速比(Speedup)為 。然而在實際系統中,受到流水線暫存器開銷(Pipeline Register Overhead)、階段不平衡(Unbalanced Stages)與流水線冒險(Pipeline Hazards)引起的停頓(Stalls)影響,存在無法隨 縮小的非可改善部分,因此可透過阿姆達爾定律證明其實際加速比必然小於 。
解題方法
- 子題 (1):繪製標準邊緣觸發正反器的時序圖,標示時脈信號()、輸入信號()與輸出信號(),並分別針對 、 與 給出嚴謹的定義。
- 子題 (2):考慮兩個前後相連的暫存器 與 及其間的關鍵路徑組合邏輯(延遲為 )。自時脈觸發邊緣起算,分析資料由 傳播至 必須滿足的時間下限約束,導出 ,並說明 不納入最小時脈週期公式的原因。
- 子題 (3):建立阿姆達爾定律數學模型:
將流水線化過程中的固定時間開銷(暫存器延遲、階段不平衡、Hazard Stalls)映射至不可改善的比例 ,證明當加速倍數 時,總加速比無法達到理想值 。
子題詳解
(1) 正反器時序圖與參數定義
- (a) 建立時間(Setup Time, ):在時脈觸發邊緣(Active Clock Edge)之前,輸入資料信號 必須保持穩定不變的最短時間。若資料在此區間內發生變動,正反器將無法正確鎖存資料並可能陷入亞穩態。
- (b) 時脈到輸出延遲(Clock-to-Q Delay, ):在時脈觸發邊緣發生之後,輸出端 產生對應的穩定新資料所需的時間延遲(即正反器自身的傳播延遲)。
- (c) 保持時間(Hold Time, ):在時脈觸發邊緣發生之後,輸入資料信號 仍必須繼續保持穩定不變的最短時間,以防止新資料過早變化而破壞當前的採樣。
時序圖(Timing Diagram):
CLK : ___________/¯¯¯¯¯¯¯¯¯¯¯¯¯\___________
^
Active Edge
|<--Tsetup-->|<--Thold-->|
D (Input) : ------------< Stable Data >------------
Valid Window
Q (Output): ------------------------< New Output >
|<- Tc2Q ->|
(2) 同步電路最小時脈週期推導
考慮由暫存器 、關鍵路徑組合邏輯電路(延遲為 )與暫存器 組成的同步路徑:
- 傳播時間分析:
- 在第一個時脈觸發邊緣 , 採樣輸入。經過 時間後, 的輸出 更新為穩定新資料。
- 新資料經組合邏輯運算傳播,經過關鍵路徑延遲 後抵達 的輸入端 。
- 資料到達 並穩定所需的最短時間點為:。
- Setup Time 約束條件:
- 下一個時脈觸發邊緣發生於 。
- 為使 正確採樣,資料必須在 發生前的 時間即抵達並保持穩定:
- 消去 後整理可得:
- 之作用說明:
- 用於規範「最短路徑延遲(Contamination Delay, )」之限制條件:。
第 11 題10 分
Design a 4-bit shift register with a minimum number of:
(1) flip-flops, of which , , and ; and
(2) inverters, of which the gate delay .
Draw the logic diagram and identify the critical path. What is the maximum operating frequency of your shift register?
登入後即可作答並保存紀錄。
核心觀念
移位暫存器由 D 正反器串接而成,相鄰兩級之間的路徑須同時滿足:
其中 是兩級之間的延遲(這裡只有反相器)。
解題方法
(1) 正反器數量。 4 位元需要儲存 4 個位元,最少 4 個 D 正反器,串成 。
(2) 是否需要反相器:檢查 hold。 若 直接接到 ,:
hold time 不足,必須在級間加入延遲,題目提供的延遲元件就是反相器。
(3) 每級最少幾個反相器。 設級間有 個反相器:
1 個反相器(延遲 )就能滿足,此時 hold 餘裕為 。3 條級間路徑共需 3 個反相器。每經過一個反相器,資料極性會翻轉一次,因此相鄰各級儲存的是交替極性的資料(這在讀出時可以由已知的極性對應處理)。
(4) 邏輯圖。