114 年 國立成功大學資訊工程系碩士班《計算機組織與系統》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊
📄 以下 3 題共用同一段題幹

[15%] (memory system) Consider a memory hierarchy consisting of two-tier memory subsystems AA and BB. The access latencies averaged per unit data item for AA and BB are LAL_A and LBL_B, respectively. Additionally, denote the storage capacities for AA and BB as SAS_A and SBS_B. Moreover, assume that the costs per bit for AA and BB are CAC_A and CBC_B, respectively. Note that CA>CBC_A>C_B. Consider the design that a processor reads (or writes) AA if AA can deliver requested data items. Otherwise, the processor reads (or writes) BB, and supplies AA with the missed data items so that the processor can then fetch data from AA.

If we intend to come up with a cost-effective design in minimizing average memory access latency, please identify true (denoted by ∘\circ) or false (×\times) for the following questions. Please summarize your answers explicitly in a table exemplified as follows:

1(a)(b)(c)2(a)×(b)∘(c)×3(a)(b)(c)(d)\begin{array}{c|c|c|c|c} 1 & (a) & (b) & (c) & \\ 2 & (a)\times & (b)\circ & (c)\times & \\ 3 & (a) & (b) & (c) & (d) \end{array}

第 1-(a) 題5 分

LA>LBL_A>L_B

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

這一題的完整詳解

核心觀念

兩層記憶體階層中,成本較高的上層記憶體通常設計為容量較小、存取較快;成本較低的下層記憶體則用來提供較大的儲存容量。因此,合理的階層配置應滿足 LA<LBL_A<L_B。

解題方法

原卷圖中可讀到 CA>CBC_A>C_B,且處理器先查詢 AA;若 AA 沒有資料,再由 BB 提供資料並填入 AA。為了降低平均存取延遲,AA 必須比 BB 快,也就是 LA<LBL_A<L_B。

若 AA 命中率為 hh,平均存取延遲可表示為

hLA+(1−h)(LB+LA)hL_A+(1-h)(L_B+L_A)
🔒

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

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

免費註冊

第 1-(b) 題5 分

SACA>SBCBS_A C_A>S_B C_B

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

這一題的完整詳解

核心觀念

CAC_A、CBC_B 是每位元的成本,SAS_A、SBS_B 是容量,因此兩層記憶體的總成本分別為

CostA=SACA,CostB=SBCB\text{Cost}_A=S_A C_A,\qquad \text{Cost}_B=S_B C_B

已知 CA>CBC_A>C_B,只代表 A 的單位容量成本較高;這不足以比較兩者的總成本。總成本比較還需要知道 SAS_A 與 SBS_B 的大小或比例。

解題方法

直接檢查題目給的條件能否推出 SACA>SBCBS_A C_A>S_B C_B。題目沒有提供容量關係,因此這個不等式不能由 CA>CBC_A>C_B 單獨推出。例如,若 A 容量小到 SACA<SBCBS_A C_A<S_B C_B,不等式便不成立;若 A 容量較大,則可能成立。

🔒

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

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

免費註冊

第 1-(c) 題5 分

None is true.

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

這一題的完整詳解

核心觀念

這是兩層記憶體階層(AA 在上、BB 在下):處理器先存取 AA,未命中才到 BB 取資料並放進 AA。要達到「具成本效益、平均存取延遲最小」的設計,上層 AA 必須是小而快(每位元貴),下層 BB 是大而慢(每位元便宜):

AMAT=LA+(1−h)⋅(未命中代價),\text{AMAT}=L_A+(1-h)\cdot(\text{未命中代價}),

讓大部分存取在快的 AA 命中,大量資料則放在便宜的 BB。

解題方法

本小題「None is true」要先判斷同組的 (a)、(b):

🔒

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

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

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

[15%] (task scheduling) Recall that a random variable XX follows the exponential distribution of the probability density function f(X=x)=λe−λxf(X=x)=\lambda e^{-\lambda x}, where λ\lambda is a given parameter. Assume that processes in a computer system have their execution time following the exponential distribution. Let two processes AA and BB have lifetimes represented by the random variables XAX_A and XBX_B with parameters λA\lambda_A and λB\lambda_B, respectively. Here, λA=100<λB=200\lambda_A=100<\lambda_B=200. Both processes activate their execution at time 00. The computer system hosts a single processor.

Please identify true (∘\circ) or false (×\times) for the following.

第 2-(a) 題5 分

Pr(XA≥101∣XA≥100)=Pr(XA≥111∣XA≥110)Pr(X_A\geq 101\mid X_A\geq 100)=Pr(X_A\geq 111\mid X_A\geq 110)

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

這一題的完整詳解

核心觀念

指數分布具有無記憶性。若 X∼Exp⁡(λ)X\sim\operatorname{Exp}(\lambda),則對任意 s,t≥0s,t\geq 0:

Pr⁡(X≥s+t∣X≥s)=Pr⁡(X≥t)\Pr(X\geq s+t\mid X\geq s)=\Pr(X\geq t)

也就是說,已經存活 ss 時,接下來至少再存活 tt 的機率,與先前已存活多久無關。

解題方法

題目兩側都使用 XAX_A,因此皆採用 λA=100\lambda_A=100。指數分布的存活函數為:

Pr⁡(XA≥x)=e−λAx\Pr(X_A\geq x)=e^{-\lambda_A x}

利用條件機率公式:

🔒

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

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

免費註冊

第 2-(b) 題5 分

If we employ the shortest job scheduling, then AA shall be scheduled first and then BB.

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

這一題的完整詳解

核心觀念

Shortest Job Scheduling(最短工作優先排程)會先執行預期執行時間較短的工作。指數分布的機率密度函數為

f(x)=λe−λx,x≥0f(x)=\lambda e^{-\lambda x},\qquad x\ge 0

其期望值為

E[X]=1λE[X]=\frac{1}{\lambda}

因此,λ\lambda 越大,平均執行時間越短。

解題方法

比較兩個程序的平均執行時間:

E[XA]=1λA=1100E[X_A]=\frac{1}{\lambda_A}=\frac{1}{100}
🔒

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

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

免費註冊

第 2-(c) 題5 分

For any scheduling policy, the total expected time to finish both tasks is 300300.

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

這一題的完整詳解

核心觀念

指數分布的機率密度函數為 f(x)=λe−λxf(x)=\lambda e^{-\lambda x},其期望值為

E[X]=1λ\mathbb{E}[X]=\frac{1}{\lambda}

因此,λ\lambda 是執行時間的速率參數,並非平均執行時間。單一處理器依序完成兩個工作時,若排程不讓處理器閒置,完成兩個工作的總時間等於兩者所需執行時間之和。

解題方法

兩個工作都在時間 00 就緒。單一處理器完成兩者所需的總服務時間為 XA+XBX_A+X_B,所以總完成時間的期望值為

🔒

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

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

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

[20%] (file system and synchronization) Consider a disk file F\mathcal{F} that stores a set of key-value pairs. The “y=READ⁡(x)y=\operatorname{READ}(x)” API is provided to return the value yy for a designated key xx if the key-value pair (x,y)(x,y) is available in F\mathcal{F}. The “WRITE⁡(x,y)\operatorname{WRITE}(x,y)” API is to write the provided (x,y)(x,y) into F\mathcal{F} if (x,y)(x,y) is absent; otherwise, WRITE⁡(x,y)\operatorname{WRITE}(x,y) updates the key xx with the value yy. Here, READ⁡(⋅)\operatorname{READ}(\cdot) and WRITE⁡(⋅)\operatorname{WRITE}(\cdot) are independent processes (or threads).

Please identify true (∘\circ) or false (×\times) for the potential designs, as follows, that optimize the read and write operations (in terms of access latency) over the file F\mathcal{F}. Assume SS is the set of key-value pairs stored in F\mathcal{F}.

第 3-(a) 題5 分

Partition SS into a number of disjoint blocks {s}\{s\}, i.e., S=⋃{s}S=\bigcup\{s\}. Each block s∈Ss\in S serves as a fetching unit between the memory and disk subsystems. Given (x,y)∈s(x,y)\in s, we allocate a memory block mm to store ss copied from the disk. Then, retrieve (x,y)(x,y) from mm and deliver the result for READ⁡(⋅)\operatorname{READ}(\cdot). For efficiency, the keys in mm shall be organized in a balanced search tree, for example.

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

這一題的完整詳解

核心觀念

本題考磁碟區塊快取+記憶體內索引。磁碟存取延遲比記憶體高好幾個數量級,因此:

  1. 以「區塊」為單位在磁碟與記憶體之間搬資料,一次 I/O 就帶回同一區塊內的多組鍵值,後續存取同區塊的鍵值不必再讀磁碟(利用區域性)。
  2. 區塊載入記憶體後,用平衡搜尋樹組織其中的鍵,查找時間為 O(log⁡n)O(\log n)(nn 為區塊內鍵數),比線性掃描快。

解題方法

依題意逐步檢查這個 READ 設計:

  • 把 SS 切成互斥區塊 {s}\{s\},每個區塊是磁碟與記憶體之間的搬移單位——這就是快取區塊(block/page)的作法。
🔒

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

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

免費註冊

第 3-(b) 題5 分

For WRITE⁡(⋅)\operatorname{WRITE}(\cdot), update (x,y)(x,y) in mm. When mm is replaced, mm shall be written back to F\mathcal{F} and the original s∈Fs\in\mathcal{F} may be overwritten.

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

這一題的完整詳解

核心觀念

本題考查寫回式快取(write-back cache)。將資料先更新在較快的主記憶體 mm 中,延後到快取項目被替換時才寫回磁碟檔案 F\mathcal{F},可縮短 WRITE 等待磁碟寫入的時間。

這種設計要維持正確性,讀取時必須先檢查 mm,確保取得最新值;READ 與 WRITE 並行時,也須同步存取共享資料。

解題方法與選項分析

此設計將 (x,y)(x,y) 先寫入 mm,而非每次呼叫 WRITE 都立即更新 F\mathcal{F}。因此,寫入可以較快完成;

🔒

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

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

免費註冊

第 3-(c) 題5 分

We shall additionally create a local file index JJ in the file system for locating (x,y)(x,y) in SS. That is, JJ helps rapidly identify which s∈Ss\in S stores (x,y)(x,y). JJ shall be replicated in the memory (denoted by J∗J^*) to minimize the number of I/O operations performed over the disk subsystem. J∗J^* is updated for newly arriving (x,y)(x,y) due to WRITE⁡(⋅)\operatorname{WRITE}(\cdot). Consequently, J∗J^* and JJ may be inconsistent.

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

這一題的完整詳解

核心觀念

本題考索引的記憶體快取(write-back 式的索引)。磁碟上的索引 JJ 可以快速找到某個鍵 (x,y)(x,y) 在哪一個區塊 ss;把 JJ 複製一份 J∗J^* 放在記憶體中,查索引就不必讀磁碟。

解題方法

逐項檢查這個設計:

  1. 建立索引 JJ:不用掃描整個檔案就能定位 (x,y)(x,y) 所在的區塊,減少讀取時的磁碟 I/O。
  2. 在記憶體保留副本 J∗J^*:每次 READ/WRITE 查索引都在記憶體完成,進一步省掉讀索引的 I/O。
  3. WRITE 新增鍵值時只更新 J∗J^*:避免每次寫入都要同步寫磁碟上的索引,降低 WRITE 的延遲。
🔒

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

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

免費註冊

第 3-(d) 題5 分

Possibly, multiple WRITE⁡(⋅)\operatorname{WRITE}(\cdot) operations address the identical key xx. These WRITE⁡(⋅)\operatorname{WRITE}(\cdot) operations may be concurrently invoked by distinct clients. One potential implementation is that each WRITE⁡(⋅)\operatorname{WRITE}(\cdot) successfully acquires the locks for accessing both mm and J∗J^* before the WRITE⁡(⋅)\operatorname{WRITE}(\cdot) can proceed to update the value of xx. Once the value is committed, both locks are released. With such an implementation, it is NOT possible to introduce deadlock due to various WRITE⁡(⋅)\operatorname{WRITE}(\cdot) operations.

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

這一題的完整詳解

核心觀念

這題考多執行緒的死結(deadlock)與鎖定順序。死結可能發生的必要條件之一,是不同執行緒各自持有資源,並等待對方持有的資源。若兩個寫入操作都要取得互斥鎖 mm 與 J∗J^*,取得鎖的順序會影響是否可能形成死結。

解題方法

檢查能否安排出一個執行順序,使兩個寫入操作各持有一把鎖,同時等待另一把鎖。若能,題目所稱「不可能發生死結」便不成立。

選項分析

題述為錯誤(×\times)。題目沒有規定所有寫入操作必須按同一順序取得兩把鎖,因此可能發生以下情況:

🔒

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

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

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

[30%] Please indicate whether the following statements are Correct or Incorrect and provide your explanations to justify your answers.

第 4-(a) 題5 分

In the design of a microprocessor, the instruction set architecture of the processor completely hides all physical implementation details.

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

這一題的完整詳解

核心觀念

指令集架構(ISA)是軟體與處理器硬體之間的介面,定義程式可見的行為,例如指令功能、暫存器、資料型態、記憶體定址方式、例外處理與記憶體一致性規則。不同處理器可以用不同的微架構實作同一套 ISA,執行相同程式並產生符合 ISA 規範的結果。

微架構與實體設計則描述處理器如何實際完成這些行為,例如管線深度、快取配置、執行單元、電路與版圖。

解題方法

判斷關鍵在於區分「ISA 抽象掉多數實作細節」與「ISA 完全隱藏所有實體細節」。只要仍有硬體行為會影響程式可觀察的結果,或 ISA 本身規範了某些硬體相關行為,就不能說是完全隱藏。

選項分析

🔒

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

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

免費註冊

第 4-(b) 題5 分

For a given problem, the speedup achieved by a multicore processor is a critical factor in assessing the processor design. A multicore system exhibits strong scaling when the speedup is achieved without increasing the problem size, SS, where the memory size utilized by each processor core is SS.

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

這一題的完整詳解

核心觀念

這題考查平行系統的強擴展(strong scaling)與弱擴展(weak scaling),關鍵在於增加處理器核心時,總問題規模是否固定。

若總問題大小固定為 SS,使用 pp 個核心時,每個核心平均分配的工作量約為 S/pS/p。這是強擴展。其加速比可寫為:

Speedup⁡(p)=T1(S)Tp(S)\operatorname{Speedup}(p)=\frac{T_1(S)}{T_p(S)}

其中 T1(S)T_1(S) 是單核心處理規模為 SS 的問題所需時間,Tp(S)T_p(S) 是 pp 個核心處理同一規模問題所需時間。

解題方法

判斷敘述中的問題大小如何隨核心數改變。強擴展要求增加核心數時,總問題大小維持為 SS。

🔒

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

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

免費註冊

第 4-(c) 題5 分

In the design of a multi-level processor cache, it is critical to balance between miss rate and miss penalty. The design of the first-level caches focuses on miss rate reduction, so larger cache blocks are desired to reduce the miss rate. The design of the second-level caches puts emphasis on miss penalty improvement to avoid higher memory access latencies.

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

這一題的完整詳解

核心觀念

多層快取的目標,是降低處理器平均記憶體存取時間(AMAT),而不是只追求某一層的最低未命中率。兩層快取的簡化公式為:

AMAT=TL1+MRL1(TL2+MRL2×Pmem)\mathrm{AMAT} = T_{L1} + MR_{L1}\bigl(T_{L2}+MR_{L2}\times P_{\mathrm{mem}}\bigr)

其中 TL1T_{L1}、TL2T_{L2} 是各層命中時間,MRL1MR_{L1}、MRL2MR_{L2} 是各層的區域未命中率,PmemP_{\mathrm{mem}} 是主記憶體存取所造成的未命中代價。

解題方法與敘述判斷

判斷快取區塊大小時,要看它對命中時間、未命中率與未命中代價的影響,而不能只看區塊變大是否能利用空間區域性。

  • **第一層快取(L1)**緊接處理器,命中時間對整體效能影響很大,因此設計重點是快速命中。區塊變大雖能利用空間區域性,降低部分未命中,卻也可能增加命中時間、區塊填入時間與頻寬需求。因此 L1 常採用較小的區塊,以兼顧快速命中與較低的未命中代價。
🔒

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

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

免費註冊

第 4-(d) 題5 分

In the design of a pipelined processor, it is important to allow instructions to take fewer clock cycles in order to increase overall pipeline performance. A common practice is to make ALU instructions take fewer cycles to improve the processor throughput.

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

這一題的完整詳解

核心觀念

本題考查指令延遲(latency)與處理器吞吐量(throughput)的差別。

  • 延遲:一條指令從開始執行到完成所需的時間或時脈週期數。
  • 吞吐量:單位時間內完成多少條指令。
  • 在理想的 kk 階管線中,指令可能需要 kk 個週期才完成,但管線填滿後,理想情況下仍可每個週期完成一條指令。因此,單條指令所需週期數較少,不代表整體吞吐量必然提高。

解題方法

判斷敘述時,先看它把哪種效能指標和哪種設計手段連在一起。題目主張「讓指令使用較少時脈週期」是提升管線處理器吞吐量的重要方法,並舉 ALU 指令為例。這把減少單一指令的延遲直接當成提升整體吞吐量,兩者並不等價。

🔒

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

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

免費註冊

第 4-(e) 題5 分

In the design of arithmetic logic units, the speed of addition depends highly on the number of bits involved. As the number of bits increases, more 1-bit adders are required to calculate the sum of each bit, and it leads to longer delays to obtain the sum for all bits involved.

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

這一題的完整詳解

核心觀念

加法器的延遲取決於進位如何傳遞,不只取決於位元數。常見的漣波進位加法器(ripple-carry adder)由每一位的全加器串接而成,某一位產生的進位必須依序傳到高位,因此位元數增加時,最壞情況的延遲也會增加。

對第 ii 位,可用產生進位與傳遞進位表示:

Gi=AiBi,Pi=Ai⊕BiG_i = A_iB_i,\qquad P_i = A_i \oplus B_i Ci+1=Gi+PiCiC_{i+1}=G_i+P_iC_i

在漣波進位架構中,Ci+1C_{i+1} 必須等待 CiC_i,進位逐位傳遞;若每級延遲近似固定,nn 位加法器的最壞延遲約與 nn 成正比,即 O(n)O(n)。

解題方法與敘述分析

判斷此敘述時,要區分「漣波進位加法器」與「所有加法器設計」。題目描述的「更多 1-bit 加法器串接,導致更長延遲」符合漣波進位加法器,但不能推廣到所有算術邏輯單元中的加法器

🔒

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

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

免費註冊

第 4-(f) 題5 分

For the PC-relative addressing in RISC-V processors, the SB-format branches have a 12-bit address immediate and the UJ-format jumps have a 20-bit address immediate. These formats mean that a RISC-V program can branch within ±210\pm 2^{10} words of the current instruction and jump within ±218\pm 2^{18} words of the current instruction, if the PC is used as the register to be added to the address.

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

這一題的完整詳解

核心觀念

本題考查 RISC-V 的 PC-relative 定址,以及 SB(分支)與 UJ(JAL 跳躍)格式如何由編碼欄位還原位移量。雖然格式分別編碼 12 位與 20 位立即值,位移量的最低位元固定為 00,因此實際位移的範圍比欄位位數所表示的範圍多一個位元。

解題方法

RISC-V 的分支與 JAL 目標位址皆以目前指令的 PC 為基準:

target=PC+sign-extended immediate\text{target} = PC + \text{sign-extended immediate}

SB 格式的立即值經符號延伸後,最低位補 00,所以位移量以 2 位元組為單位,範圍為:

−212≤offset≤212−2-2^{12} \leq \text{offset} \leq 2^{12}-2

若以 4 位元組為一個 word 換算,這相當於約 −210-2^{10} 到 +210+2^{10} 個 word 的範圍。

UJ 格式同樣將符號延伸後的立即值最低位補 00,位移量範圍為:

−220≤offset≤220−2-2^{20} \leq \text{offset} \leq 2^{20}-2
🔒

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

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

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

[20%] Please answer the following questions related to memory locality of matrix multiplication. The following C code has elements within the same row stored contiguously. The nested loops perform the operations on the floating-point arrays NN and MM. Each array element is a 32-bit floating-point number.

for (x=0; x<8; x++)for (y=0; y<8000; y++)N[x][y] = M[x][0] + N[x][y];\begin{aligned} &\texttt{for (x=0; x<8; x++)}\\ &\quad \texttt{for (y=0; y<8000; y++)}\\ &\qquad \texttt{N[x][y] = M[x][0] + N[x][y];} \end{aligned}

第 5-(a) 題5 分

Which variables demonstrate temporal locality in their references?

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

這一題的完整詳解

核心觀念

時間區域性(temporal locality)是指某個記憶體位置被存取後,短時間內很可能再次被存取。空間區域性(spatial locality)則是指存取某位置後,附近位置也很可能被存取。

解題方法

固定一個 xx,內層迴圈讓 yy 從 00 跑到 79997999。

  • M[x][0]M[x][0] 在每次內層迴圈都會被讀取,因此同一個元素會連續被引用 80008000 次,具有明顯的時間區域性。
  • 迴圈變數 xx、yy 在每次迭代都被讀取(比較、遞增、計算位址),同一個變數反覆使用,也具有時間區域性(它們通常放在暫存器中)。
🔒

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

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

免費註冊

第 5-(b) 題5 分

Which variables demonstrate spatial locality in their references?

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

這一題的完整詳解

核心觀念

空間區域性(spatial locality)是指:程式存取某個記憶體位置後,接著也會存取附近的記憶體位置。若陣列每列連續儲存,沿著欄索引逐一存取同一列的元素,就會呈現空間區域性。

每個元素是 32 位元浮點數,因此每個元素占 44 bytes。相鄰欄位的位址相差 44 bytes。

解題方法

固定 xx,內層迴圈讓 yy 從 00 遞增至 79997999:

  • N[x][y] 每次讀取並寫回目前元素;下一次存取的是 N[x][y+1]。兩者在記憶體中相鄰,位址只差 44 bytes,因此 N 的參考具有空間區域性。
  • M[x][0] 在同一列的內層迴圈中始終是同一個元素。重複存取同一位址屬於時間區域性,不是空間區域性。
🔒

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

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

免費註冊

第 5-(c) 題5 分

If the cache size is unlimited, how many cache blocks, each with 4 words, are required to store all the referenced matrix elements?

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

這一題的完整詳解

核心觀念

快取區塊數要計算「所有被存取元素分布在哪些不同的區塊」,而不是計算存取次數。每個元素是 1 個 word,每個區塊可容納 4 個 word。

迴圈會讀寫完整的 NN 矩陣,並反覆讀取 MM 矩陣每一列的第一個元素 M[x][0]M[x][0]。同一個元素在迴圈中被重複存取,仍只算其所在的區塊一次。

解題方法

假設兩個矩陣分別存放,且各自從區塊邊界開始。

計算 NN 的區塊數:

NN 有 8 列,每列 8000 個元素,因此共有

8×8000=64000 個元素8 \times 8000 = 64000 \text{ 個元素}

由於每個區塊可存放 4 個元素,儲存這些元素需要

640004=16000 個區塊\frac{64000}{4} = 16000 \text{ 個區塊}
🔒

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

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

免費註冊

第 5-(d) 題5 分

Assume that the data in the two arrays, NN and MM, are streaming over the Internet (similar to a video streaming application) with predictable data accessing patterns. What technique can be used to bring up adjacent cache blocks into a buffer within the processor core to reduce the data accessing time? Note that when the data is found in the buffer, it is considered as a hit and moved into the cache for the next block. Please provide a detailed explanation of how this technique works.

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

這一題的完整詳解

核心觀念

本題考查串流緩衝區(stream buffer)預取。當程式的存取模式可預測、且會依序讀取連續記憶體區塊時,處理器可以在目前區塊尚未用完前,先把後續相鄰的快取區塊取入處理器核心內的緩衝區,降低之後存取時等待主記憶體的時間。

串流緩衝區位於一般快取之外,用來暫存預取進來的區塊。若處理器要求的資料已在串流緩衝區中,就視為命中;該區塊會送入快取,供後續存取使用。

解題方法

題目中的陣列採列優先儲存,因此固定 xx、讓 yy 逐一增加時,N[x][y]N[x][y] 是依序存取的連續元素。每個元素為 32 位元,也就是 4 位元組;每次快取區塊通常會包含多個相鄰元素。因此存取一個區塊時,後續的 N[x][y]N[x][y] 很可能位於相鄰區塊,適合採用串流預取。

另一方面,M[x][0]M[x][0] 在固定 xx 的內層迴圈中會重複使用 8000 次,具有時間區域性,通常可由快取留存。題目所問的「預先把相鄰區塊放入核心內緩衝區」,主要針對連續掃描的 NN 資料流。

串流緩衝區如何運作

🔒

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

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

免費註冊

其他考古題