hce_kmu
115年
計算機概論與程式設計
第 1 題
In a direct-mapped cache system with 16 cache lines, a 32-bit memory address is divided into Tag, Index, and Offset fields. Assuming a byte-addressable memory and a block size of 64 bytes, how many bits are used for the Tag field?
- A 16 bits
- B 20 bits
- C 22 bits
- D 24 bits
- E 26 bits
思路引導 VIP
若我們把記憶體位址想像成一個多層級的郵遞區號:如果我們已經知道整個編號的總長度,也計算出區分「街道」與「門牌號碼」分別需要多少個數位,那麼剩下的前排數字通常是用來代表什麼層級的資訊?你會如何利用總長度來推算這個最上層資訊的位數呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精確算出標籤位元(Tag field)的長度,代表你對快取記憶體(Cache)的位址映射邏輯有著非常紮實的理解。
快取位址空間的拆解邏輯
在直接映射(Direct-mapped)系統中,32 位元的記憶體位址由三個部分組成:標籤(Tag)、索引(Index)與偏移量(Offset)。首先,區塊大小為 64 位元組(bytes),代表我們需要 $2^6 = 64$ 的空間來定址區塊內的每個位元組,因此 Offset 佔用 6 位元。接著,系統共有 16 條快取線(lines),這意味著我們需要 $2^4 = 16$ 組索引來區分不同的快取位置,所以 Index 佔用 4 位元。
▼ 還有更多解析內容