108 年 國立中正大學資訊工程學系碩士班《計算機系統》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1-(1) 題2 分

Which of the following was a mechanism allowed us to keep track of the free space on a disk drive and did some other things at the same time?

(A) FCB
(B) Partition
(C) FAT
(D) Inode
(E) None of the above allowed us to track file system free space.

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

這一題的完整詳解

核心觀念

本題考查檔案系統如何管理磁碟上的空閒空間。檔案系統除了要記錄檔案使用哪些磁碟區塊,也要能找出尚未配置的區塊,供新檔案使用。

**FAT(File Allocation Table,檔案配置表)**中的表格項目可表示磁碟叢集的使用狀態,也可串接同一檔案所占用的叢集,因此能同時協助管理空閒空間與檔案配置。

解題方法

圖中題目詢問哪種機制能追蹤磁碟空閒空間,並同時執行其他功能;選項依序為 FCB、Partition、FAT、Inode,以及「以上皆非」。判斷關鍵是找出能兼顧「記錄空閒叢集」與「管理檔案配置」的機制。

FAT 的表格會為每個叢集記錄狀態:未配置的叢集可標示為空閒;已配置的叢集則透過表格項目連結,記錄檔案所占用的叢集鏈。因此 FAT 不只追蹤空閒空間,也能記錄檔案資料的配置方式。

選項分析

🔒

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

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

免費註冊

第 1-(2) 題2 分

Which of these disk drive organizations provided redundancy but at the highest cost in extra drives?

(A) RAID 0
(B) RAID 1
(C) RAID 5
(D) RAID 6
(E) All of the above require the same number of drives.

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

這一題的完整詳解

核心觀念

本題考各種 RAID 磁碟組織如何提供冗餘,以及為了冗餘需要額外配置多少顆磁碟。比較時,應看同樣可用容量下,哪些磁碟空間用來存放鏡像或同位元資訊,而非一般資料。

解題方法

原卷第 1-(2) 題詢問哪一種磁碟組織「提供冗餘,但額外磁碟成本最高」,選項為 RAID 0、RAID 1、RAID 5、RAID 6,以及「以上都需要相同數量的磁碟」。比較各組織的冗餘方式與額外磁碟需求即可。

假設每顆磁碟容量相同,若要存放 NN 顆磁碟容量的資料:

  • RAID 1 以鏡像複製資料,約需再配置 NN 顆磁碟存放副本;總磁碟數約為 2N2N。
  • RAID 5 以分散式同位元資訊提供冗餘,約需相當於 11 顆磁碟的容量存放同位元資訊。
  • RAID 6 以雙重分散式同位元資訊提供冗餘,約需相當於 22 顆磁碟的容量存放同位元資訊。
  • RAID 0 沒有冗餘,不需額外磁碟存放副本或同位元資訊。

因此,RAID 1 的鏡像副本需要最多額外磁碟。

🔒

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

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

免費註冊

第 1-(3) 題2 分

Why were multi-level page tables developed?

(A) It made lookup faster.
(B) So they did not have to include the process identifier.
(C) Page tables were so large that they caused external fragmentation.
(D) So a system call was not necessary.
(E) None of the above.

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

這一題的完整詳解

核心觀念

本題考查作業系統虛擬記憶體管理中**分頁機制(Paging)與多層頁表(Multi-Level Page Tables / Hierarchical Paging)**的設計緣由。

  1. 單層線性頁表(Linear Page Table)的限制:

    • 在線性頁表中,虛擬位址中的虛擬頁號(Virtual Page Number, VPN)直接作為頁表的陣列索引(Index)。
    • 硬體記憶體管理單元(MMU)透過頁表基底暫存器(PTBR)以基底加偏移量方式定址:
      Physical Address of PTE=PTBR+(VPN×PTE Size)\text{Physical Address of PTE} = \text{PTBR} + (\text{VPN} \times \text{PTE Size})
    • 這要求整個線性頁表必須存放在大片連續的實體記憶體中。
    • 頁表大小取決於虛擬位址空間的大小,而非行程實際使用的記憶體量。
  2. 外部碎裂(External Fragmentation)問題:

    • 以傳統 32 位元架構為例,若分頁大小為 4 KB4\text{ KB}(212 bytes2^{12}\text{ bytes}),則虛擬位址空間包含 2202^{20}(約 100 萬)個頁面。
    • 若每個頁表項目(Page Table Entry, PTE)佔 4 bytes4\text{ bytes},則單一行程的線性頁表即需佔用:
      220×4 bytes=4 MB2^{20} \times 4\text{ bytes} = 4\text{ MB}
    • 每個行程都必須在實體記憶體中分配連續的 4 MB4\text{ MB} 空間。當系統有多個行程時,在核心或實體記憶體中頻繁尋找大片連續空間會遭遇嚴重的外部碎裂,失去分頁原本「無需連續實體空間」的美意。
  3. 多層頁表的解法:

    • 透過「對頁表進行分頁(Paging the page table)」,將頁表切成頁面大小(例如每個節點 4 KB4\text{ KB})的小單元。
    • 每個頁表分頁可以分散置於任意非連續的實體頁框(Frames)中,徹底消除了連續實體記憶體配置的需求,解決了外部碎裂;同時對於稀疏(Sparse)的位址空間,未使用的分頁目錄不需要配置,大幅節省記憶體。

解題方法

檢視原卷附圖 原卷第 1 大題之第 (3) 小題,題目詢問「發展多層頁表的主要原因為何?(Why were multi-level page tables developed?)」。

解題切入點為比對單層頁表與多層頁表在實體記憶體配置結構上的差異:

  • 單層頁表必須以陣列形式連續排列,對實體記憶體而言是一個大型連續區塊(例如 32 位元下需連續 4 MB4\text{ MB},64 位元下更為天文數字),在實體記憶體分配大型連續區塊必然會引起外部碎裂。
🔒

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

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

免費註冊

第 1-(4) 題2 分

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.

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

這一題的完整詳解
載入中…

第 1-(5) 題2 分

We said that we could spend lots of CPU cycles to avoid making a disk access in the VM system when we try to find a free frame. Which would be an example of time well spent in such a pursuit?

(A) Swap out processes that are in a wait state.
(B) Do garbage collection on the memory holes.
(C) Sort the page table in order by reference count.
(D) Clean dirty pages.
(E) None of the above would help the VM system avoid a later I/O operation.

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

這一題的完整詳解

核心觀念

本題的核心在於作業系統虛擬記憶體(Virtual Memory, VM)管理中的效能權衡(Trade-off: CPU cycles vs. Disk I/O)與頁面置換策略(Page Replacement Policy):

  1. CPU 週期與磁碟存取之代價差距:
    在計算機系統中,CPU 執行指令的時間通常在奈秒等級(約 0.2∼1 ns0.2 \sim 1\text{ ns}),而磁碟 I/O(特別是傳統機械硬碟的尋軌與旋轉延遲,甚至固態硬碟的存取)延遲高達數毫秒(ms\text{ms})至數十微秒(μs\mu\text{s}),兩者差距可達數萬至數百萬倍。因此,作業系統願意花費數千甚至數萬個 CPU 週期進行複雜的演算法決策,只要能成功避免一次磁碟存取(Disk Access),對整體系統效能而言都是極具效益的時間投資(time well spent)。
  2. 尋找空閒頁框(Finding a Free Frame)與置換演算法:
    當系統發生缺頁中斷(Page Fault)且缺乏空閒頁框時,必須從目前已配置的頁面中挑選犧牲頁面(Victim Page)淘汰。如果挑選了錯誤的頁面(例如不久後又會被存取的活躍頁面),將會迅速再次觸發缺頁中斷,造成代價高昂的磁碟讀取與系統顛簸(Thrashing)。
  3. 基於參考計數(Reference Count)的最佳化置換:
    依據程式存取的局部性原理(Principle of Locality),參考次數較少的頁面在未來被再次存取的機率最低。若花費 CPU 週期統計並排序頁面的參考資訊(例如 LFU、LRU 近似演算法或維護活躍/非活躍計數佇列),優先淘汰冷門頁面,可最大程度降低後續再度將該頁面讀入記憶體的機率,從而達成「花費 CPU 週期以避免後續磁碟 I/O」的目的。

解題方法

由原卷頁圖(第 1 頁)第 1-(5) 題題幹可知:

「We said that we could spend lots of CPU cycles to avoid making a disk access in the VM system when we try to find a free frame. Which would be an example of time well spent in such a pursuit?」

題幹明確設定情境:在虛擬記憶體系統尋找空閒頁框時,「投入大量的 CPU 週期進行運算,目標是避免(avoid)後續的磁碟 I/O 存取」,而選項 (E) 亦補充提示「avoid a later I/O operation」。

解題切入點在於區分以下四類操作的本質:

  1. 是否屬於分頁式虛擬記憶體系統在尋找頁框時的機制。
  2. 該操作消耗的資源是 CPU 週期還是直接產生磁碟 I/O。
  3. 該操作是否能真正「免除/避免」日後的 I/O 操作,而非僅僅是「提前執行」或「引發更多」I/O。

選項分析

  • (A) Swap out processes that are in a wait state(換出處於等待狀態的行程):錯誤
    將處於等待(等待 I/O 或事件)的行程置換出記憶體,需要將該行程所佔用的所有頁面或工作集寫入磁碟的 Swap 空間,這會立即引發大量的磁碟寫入 I/O,不但沒有避免磁碟存取,反而主動增加了磁碟負載。此外,Swapping 屬於中程排程(Mid-term Scheduling)的粗粒度記憶體調節,並非頁面層級尋找 free frame 時用來避免 I/O 的演算法。
🔒

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

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

免費註冊

第 1-(6) 題2 分

Which of the following was not given as a necessary condition for a deadlock to occur?

(A) Avoidance
(B) Hold and Wait
(C) Circular wait
(D) Mutual Exclusion
(E) All of the above are necessary conditions for a deadlock.

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

這一題的完整詳解

核心觀念

本題考「死結發生的必要條件」。死結要能發生,必須同時具備四項條件:互斥、持有並等待、不可搶先,以及循環等待。少了其中任一條件,就能避免死結。

「死結避免」是作業系統處理死結的方法,不是死結發生的必要條件。

解題方法

依原卷第二頁第(6)題,題目問哪些選項不是死結發生的必要條件;選項包含 Avoidance、Hold and Wait、Circular wait、Mutual Exclusion,以及「以上皆為必要條件」。將各選項與死結四項必要條件逐一比對即可。

選項分析

  • (A) Avoidance:正確。「避免」是處理死結的策略,不是死結發生所需的條件。
  • **(B) Hold and Wait:錯誤。
🔒

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

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

免費註冊

第 1-(7) 題2 分

What is the problem with the Shortest Run Time First process scheduling algorithm?

(A) We don't know the next CPU burst length.
(B) It may lead to starvation.
(C) It can make shorter jobs wait behind longer jobs.
(D) It uses too much CPU time to run.
(E) None of the above is a problem with SRTF job scheduling.

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

這一題的完整詳解

核心觀念

SRTF(Shortest Remaining Time First,最短剩餘時間優先)是 SJF 的搶佔式版本:新行程抵達時,若其 CPU burst 比目前執行中行程的剩餘時間更短,就立刻搶佔。

它的排程特性:

  • 對一組已知 burst 的行程,平均等待時間最小。
  • 偏好短行程,因此長行程可能一再被後來的短行程搶佔,永遠排不到 CPU,這就是飢餓(starvation),也是這個演算法在排程行為上最典型的缺陷,通常以老化(aging)緩解。

解題方法

題目問的是演算法本身的問題,逐一檢查五個選項的說法是否是 SRTF 的排程缺陷:

  • 先排除與 SRTF 行為相反的敘述(C)與不符合事實的敘述(D)。
  • 再比較 (A) 與 (B):(A) 說的是「事先不知道 burst 長度」,屬於取得輸入資訊的實作前提,所有以 burst 長度為依據的排程法(SJF、SRTF)都共有,實務上用指數平均估計;(B) 說的是排程政策運作後造成的結果,是 SRTF 本身的缺陷。題目問「problem with the algorithm」,標準答案取 (B)。

簡單範例:行程 P1P_1 的 burst 為 100,在 t=0t=0 抵達;之後每個時間單位都有一個 burst 為 1 的新行程抵達。

🔒

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

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

免費註冊

第 1-(8) 題2 分

When we allow preemption with a CPU scheduling algorithm we will often improve the average waiting time as we saw with the SRTF algorithm. But everything comes with a cost.

What is the cost of allowing preemption in the scheduler?

(A) We introduce the convoy effect.
(B) We may see starvation.
(C) We will see a decrease in CPU utilization.
(D) We incur more context switches.
(E) None of the above is a cost of allowing preemption in the scheduler.

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

這一題的完整詳解

核心觀念

本題考 CPU 排程中的搶先(preemption)。搶先式排程允許作業系統在程序尚未完成前,暫停目前執行的程序,改由其他程序使用 CPU。這可能改善平均等待時間,例如最短剩餘時間優先(SRTF),但切換執行程序需要額外處理成本。

解題方法

依原卷圖,第 1-(8) 題詢問:CPU 排程器允許搶先的代價為何?選項包含護送效應、飢餓、CPU 使用率下降、更多脈絡切換,以及「以上皆非」。判斷關鍵是找出搶先時直接增加的系統開銷:程序被暫停、另一程序開始執行時,系統需要進行脈絡切換(context switch)。

選項分析

  • (A) 引入護送效應:錯誤。 護送效應常見於先到先服務(FCFS)這類非搶先式排程:短作業可能排在長作業後面等待。它不是允許搶先所直接帶來的代價。
  • **(B) 可能發生飢餓:錯誤。
🔒

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

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

免費註冊

第 1-(9) 題2 分

Which best describes the architecture of Linux?

(A) Microkernel
(B) Monolithic
(C) Monolithic with Dynamically Loadable Drivers
(D) Macrokernel
(E) None of the above describes the Linux architecture

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

這一題的完整詳解

核心觀念

本題考的是作業系統核心的架構分類。**單體式核心(monolithic kernel)**把核心服務與驅動程式放在核心空間執行;Linux 的核心屬於單體式核心,並支援動態載入與卸載核心模組,因此最精確的描述是「具有可動態載入驅動程式的單體式核心」。

解題方法

依原卷圖,第 1-(9) 題詢問哪一項最能描述 Linux 的架構,選項包含 Microkernel、Monolithic、Monolithic with Dynamically Loadable Drivers、Macrokernel,以及以上皆非。判斷時先辨認 Linux 的核心服務是否主要在核心空間執行,再看它是否支援執行期間載入驅動程式模組。

Linux 的核心服務與驅動程式主要在核心空間執行,符合單體式核心的特徵;Linux 也支援以核心模組方式動態載入驅動程式。因此,選項 C 比只寫「單體式」的選項 B 更完整、精確。

選項分析

  • (A) Microkernel:錯誤。 微核心架構會將許多服務移至使用者空間,核心本身盡量維持精簡;這不是 Linux 核心的主要架構分類。
🔒

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

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

免費註冊

第 1-(10) 題2 分

What is the "sandbox model" about?

(A) Executing untrusted code on a separate computer
(B) Executing untrusted code in a controlled environment like a virtual machine
(C) Executing untrusted code on a separate CPU
(D) Executing untrusted code in a virtual OS environment
(E) None of the above describes the sandbox model.

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

這一題的完整詳解

核心觀念

本題考「沙箱模型」(sandbox model):將不受信任的程式限制在隔離、受控的環境中執行,避免它任意存取主機的檔案、記憶體或其他資源。虛擬機器是建立這類受控環境的一種方式。

解題方法

依原卷頁圖,第 1-(10) 題問沙箱模型的意義;選項提到在另一台電腦、另一顆 CPU、受控環境、虛擬作業系統環境中執行不受信任的程式,或以上皆非。判斷重點是:沙箱的核心在於「受控隔離」,不要求使用獨立硬體,也不限定某一種作業系統虛擬化方式。

選項分析

🔒

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

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

免費註冊

第 2 題5 分

Can a system be in a state that is neither deadlocked nor safe? Explain your answer.

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

這一題的完整詳解

核心觀念

可以。關鍵在於「死結(deadlock)」與「安全狀態(safe state)」判斷的是不同事情:

  • 死結狀態:目前已有程序彼此等待資源,且沒有任何程序能繼續執行並釋放資源。
  • 安全狀態:從目前配置出發,存在一個安全序列,使每個程序都能取得其最大剩餘需求、完成並釋放資源。
  • 不安全狀態(unsafe state):不存在安全序列,因此系統無法保證未來一定避免死結;但這不表示死結已經發生。

安全性檢查使用:

Needi=Maxi−AllocationiNeed_i=Max_i-Allocation_i

若存在程序 PiP_i 滿足:

Needi≤WorkNeed_i\leq Work

則可假設 PiP_i 完成,完成後釋放其目前持有的資源:

Work=Work+AllocationiWork=Work+Allocation_i

依序找到所有程序,即表示系統安全。

因此,兩者的關係是:

安全狀態⇒目前不死結\text{安全狀態}\Rightarrow\text{目前不死結}

但反向不成立:

目前不死結⇏安全狀態\text{目前不死結}\nRightarrow\text{安全狀態}

解題方法與範例

考慮系統只有一種資源,共有 1010 個實例,包含兩個程序:

程序最大需求 MaxMax已分配 AllocationAllocation剩餘最大需求 NeedNeed目前請求 RequestRequest
P1P_110551
P2P_210460

目前可用資源為:

🔒

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

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

免費註冊
📄 以下 2 題共用同一段題幹

The following figure shows the RD/WD patterns for several representative applications in SPEC CPU 2006. The x-axis denotes sampling time and the y-axis represents different memory pages in the entire address space.

(WD\mathrm{WD} = written data, RD\mathrm{RD} = read data)

🖼️【此處有附圖,請對照原卷】

第 3-(a) 題4 分

Please briefly describe the behavior of processes in astar.

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 4 頁原卷第 5 頁

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

這一題的完整詳解

核心觀念

這題考的是從記憶體存取圖辨認程式的存取行為。圖中橫軸是取樣時間,縱軸是應用程式位址空間中的記憶體頁面;不同位置的點代表程式在該時間讀取或寫入相應頁面。若存取集中在不同頁面區域,且隨時間切換,表示程式具有不同的執行階段與工作集合。

解題方法

讀圖可見,astar 位於右下方。它的存取點呈現數段明顯的垂直區塊:不同時間區段會密集存取不同的頁面範圍,中間則有存取較少或頁面範圍改變的區段。

🔒

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

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

免費註冊

第 3-(b) 題4 分

Please briefly describe the behavior of processes in cactusADM.

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 4 頁原卷第 5 頁

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

這一題的完整詳解

核心觀念

這題考的是從記憶體頁面存取圖辨認程式的空間與時間存取行為。縱軸是程式位址空間中的記憶體頁面,橫軸是取樣時間;圖例中的 RD、WD 分別表示讀取與寫入的資料。

解題方法

圖中 cactusADM 位於左上方。它的圖樣由密集、反覆起伏的條紋組成,且分布涵蓋大範圍的位址空間;這表示程式會以有規律的方式,反覆觸及許多不同頁面,而非長時間只存取少數固定頁面。

🔒

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

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

免費註冊

第 4 題7 分

Given the following piece of code:

main(int argc, char **argv)
{
int child = fork();
int c = 5;
if (child == 0)
{
c += 5;
}
else
{
child = fork();
c += 10;
if (child)
{
c += 5;
}
}
}

How many different copies of the variable cc are there? What are their values?

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

這一題的完整詳解
載入中…
📄 以下 3 題共用同一段題幹

The following table shows Solaris dispatch table for time-sharing and interactive threads. Please answer the following questions according to the dispatch table.

🖼️【此處有附圖,請對照原卷】

Priority | Time Quantum | Time Quantum Expired | Return from Sleep
00 | 200200 | 00 | 5050
55 | 200200 | 00 | 5050
1010 | 160160 | 00 | 5151
1515 | 160160 | 55 | 5151
2020 | 120120 | 1010 | 5252
2525 | 120120 | 1515 | 5252
3030 | 8080 | 2020 | 5353
3535 | 8080 | 2525 | 5454
4040 | 4040 | 3030 | 5555
4545 | 4040 | 3535 | 5656
5050 | 4040 | 4040 | 5858
5555 | 4040 | 4545 | 5858
5959 | 2020 | 4949 | 5959

第 5-(a) 題4 分

What is the time quantum (in milliseconds) for a thread with priority 1010? With priority 5555?

(2 pts, 2 pts)

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 6 頁

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

這一題的完整詳解

核心觀念

Solaris 的 dispatch table 依執行緒的 priority 查詢排程參數;本題要讀取的是 Time Quantum 欄,代表該優先權執行緒可使用的時間量子,單位為毫秒。

解題方法

依原卷表格,Priority 1010 的 Time Quantum 是 160160;Priority 5555 的 Time Quantum 是 4040。

🔒

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

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

免費註冊

第 5-(b) 題3 分

Assume a thread with priority 3535 has used its entire time quantum without blocking. What new priority will the scheduler assign this thread?

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 6 頁

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

這一題的完整詳解

核心觀念

Solaris 分派表會依執行緒的狀態事件調整其優先權。執行緒用完整個時間量子而未阻塞時,應查表中的 Time Quantum Expired 欄;若是從睡眠狀態返回,才查 Return from Sleep 欄。

解題方法

🔒

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

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

免費註冊

第 5-(c) 題3 分

Assume a thread with priority 3535 blocks for I/O before its time quantum has expired. What new priority will the scheduler assign this thread?

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 6 頁

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

這一題的完整詳解

核心觀念

Solaris 時間分享排程器會依執行緒的事件調整其優先權。執行緒用完整個時間片時,依「Time Quantum Expired」欄調整;若在時間片用完前因 I/O 阻塞,之後從睡眠狀態返回,則依「Return from Sleep」欄指定新優先權。

解題方法

圖中的表格列出優先權 3535 的執行緒,其「Time Quantum」為 8080、「Time Quantum Expired」為 2525、「Return from Sleep」為 5454。

🔒

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

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

免費註冊
📄 以下 2 題共用同一段題幹

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 3×43\times4 input map (aa to ll), the kernel size is 2×22\times2 with four parameters (ww, xx, yy, and zz), and then the 2×32\times3 output feature map can be computed as illustrated in the figure.

The inputs and kernel parameters are loaded before computing convolution.

🖼️【此處有附圖,請對照原卷】

第 6 題10 分

If we assume the delay times for a two-input adder and a two-input multiplier are DADDD_{\mathrm{ADD}} and DMULD_{\mathrm{MUL}}, respectively. Also, DADDD_{\mathrm{ADD}} is equal to 0.1×DMUL0.1\times D_{\mathrm{MUL}}.

Please determine the minimum delay time for doing one convolution operation in terms of DMULD_{\mathrm{MUL}}.

(Hint: You can perform multiplications and additions in parallel to minimize the delay time)

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 6 頁原卷第 7 頁

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

這一題的完整詳解

核心觀念

每個輸出位置都是 2×22\times2 區域與 2×22\times2 核心逐項相乘後加總,因此需要 4 次乘法、3 次二輸入加法。延遲時間取決於運算依賴鏈;可平行執行的運算不必依序累計延遲。

解題方法

圖中輸入圖為 3×43\times4,包含 aa 到 ll;核心為 2×22\times2,參數為 w,x,y,zw,x,y,z;輸出特徵圖為 2×32\times3。每個輸出位置都是四個乘積相加,例如左上角輸出為 aw+bx+ey+fzaw+bx+ey+fz。

先將四次乘法平行執行,耗時 DMULD_{\mathrm{MUL}}。四個乘積可用平衡加法樹相加:第一層同時做兩次加法,第二層再將兩個部分和相加,共需兩層加法,耗時 2DADD2D_{\mathrm{ADD}}。

因此,單一輸出位置的最短延遲為

🔒

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

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

免費註冊

第 7 題10 分

For the same convolution operation shown in problem 6, if a CPU is used to compute the convolution operation, and the hardware resource limitation restricts only one multiplication and one addition can execute in parallel in one clock cycle.

Please determine the minimum clock cycles to compute one convolution operation when the input map is changed.

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 7 頁

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

這一題的完整詳解

核心觀念

本題考查卷積運算中的乘加數量、運算相依性,以及不同運算單元能否在同一個時脈週期平行工作。圖中輸入為 3×43\times4,核心為 2×22\times2,輸出為 2×32\times3,因此要計算 66 個輸出值;每個輸出值都由 44 次乘法及 33 次加法組成。

題目說明輸入與核心參數已在計算前載入,因此只計算乘法與加法所需的週期。每個週期最多執行一次乘法和一次加法,兩者可以平行。

解題方法

將圖中六個輸出依序記為 O1O_1 至 O6O_6,每個輸出都包含四個乘積。例如:

O1=aw+bx+ey+fzO_1=aw+bx+ey+fz

總乘法數為 6×4=246\times4=24 次,總加法數為 6×3=186\times3=18 次。乘法與加法可重疊執行,但加法必須等相關乘積完成後才能進行。

以下安排乘法連續執行,並在乘積備妥後穿插加法。每個輸出的四個乘法依序完成;加法採累加方式,週期表中的「前兩項相加」、「再加第三項」、「再加第四項」各代表一次加法。

🔒

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

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

免費註冊

第 8 題5 分

Based on IEEE 754 standard, the double precision numbers are stored in 6464 bits with one sign bit, 1111 exponent bits, and 5252 mantissa bits.

Please show the representation of −5.0-5.0.

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

這一題的完整詳解
載入中…

第 9 題25 分

The following figure depicts a fully-connected neural network for recognizing handwritten digits (i.e. 0,1,2,…,90,1,2,\ldots,9), which contains 11 input layer, 33 hidden layers, and 11 output layer.

🖼️【此處有附圖,請對照原卷】

xi,jx_{i,j}: jj-th neuron of ii-th layer.

The input layer has 256256 nodes, each of which represents an 88-bit pixel of a 16×1616\times16 grayscale image.

Each of the 33 hidden layers contains 1616 neurons, which computes a weighted sum of all nodes in its precedent layer, adds a bias value, and performs ReLU activation (i.e. the result remains the same if it has a positive value; otherwise the result becomes 00).

In other words, the jj-th neuron of the ii-th layer, xi,jx_{i,j}, computes

max⁡(∑k=0N−1xi−1,k×wi,j,k+bi,j, 0),\max\left(\sum_{k=0}^{N-1}x_{i-1,k}\times w_{i,j,k}+b_{i,j},\,0\right),

where N=256N=256 for i=1i=1 and N=16N=16 for i=2i=2 and 33.

The output layer has 1010 nodes, each of which represents a digit (i.e. 0,1,2,…,90,1,2,\ldots,9). The jj-th output node x4,jx_{4,j} computes

∑k=015x3,k×w4,j,k+b4,j,\sum_{k=0}^{15}x_{3,k}\times w_{4,j,k}+b_{4,j},

without ReLU. The output with the maximum value will be the inference result.

(a) How many weights and biases are needed respectively to compute the outputs of the neural network shown above for one 16×1616\times16 image? What is the storage size needed if the weights and biases are both represented as IEEE 754 single-precision floating-point numbers?

(b) Due to cost issues, only a 11 KByte SRAM macro is allowed to store the weights on chip (assume biases are handled independently), and the design team decides to implement a direct-mapped cache mechanism to simplify the management of on-chip (i.e. 11 KByte SRAM) and off-chip (i.e. containing all weights) storages. Assume one cache block stores 3232-byte data. What are the on-chip storage requirements in addition to the 11 KByte SRAM macro for weights? (Hint: cache tag ...)

(c) What is the miss rate of the weight cache in (b)? What is the type of cache miss (i.e. compulsory, conflict, or capacity)?

(d) Describe an effective method to improve the weight memory organization in (b) under the same cost constraint.

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 7 頁原卷第 8 頁

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

這一題的完整詳解

核心觀念

本題考查全連接神經網路的參數數量、浮點數儲存量,以及直接對映快取的標籤與有效位元計算。直接對映快取的位址可分成區塊內位移、索引與標籤;有效位元用來標示該快取行是否存有有效資料。

解題方法

依原卷圖與題目文字,網路有 256256 個輸入節點、三層各 1616 個神經元的隱藏層,以及 1010 個輸出節點。每個神經元都連接前一層的所有節點;隱藏層使用 ReLU,輸出層不使用 ReLU。權重快取容量為 11 KiB,區塊大小為 3232 bytes。以下計算權重與偏置,不計輸入像素。

(a) 權重、偏置與儲存量

每一層的權重數等於「前一層節點數 × 本層節點數」:

256×16+16×16+16×16+16×10=4096+256+256+160=4768256\times16+16\times16+16\times16+16\times10 =4096+256+256+160 =4768

每個神經元有一個偏置,因此偏置數為:

16+16+16+10=5816+16+16+10=58

權重與偏置皆使用 IEEE 754 單精度浮點數,每個數占 44 bytes,總儲存量為:

(4768+58)×4=19304 bytes(4768+58)\times4 =19304\text{ bytes}

(b) 快取額外儲存需求

11 KiB SRAM 可容納 1024/32=321024/32=32 個快取區塊,因此有 3232 個快取行。以 AA 位元的 byte address 定址時,區塊內位移占 log⁡232=5\log_2 32=5 位元,索引也占 log⁡232=5\log_2 32=5 位元,故標籤占 A−10A-10 位元。每行另需 11 個有效位元,總額外儲存需求為:

32×((A−10)+1)=32(A−9) bits32\times((A-10)+1) =32(A-9)\text{ bits}

題目沒有指定實際位址寬度,因此額外儲存量要依 AA 計算。例如,若使用權重資料的 1515 位元相對 byte address,需求為 32×6=19232\times6=192 bits,即 2424 bytes;

🔒

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

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

免費註冊

其他考古題