題組內容
一、請回答下列問題:
(二)如果電腦使用記憶體映射 I/O(Memory-mapped I/O)的定址方法(Addressing Method) ,位址匯流排(Address Bus)使用 12 條線(12 位元),且其主記憶體由 4000 個字(Words)組成。假設每個 I/O 控制器(Controller)有 16 個暫存器(Register),那麼在這個系統中可以存取多少個 I/O 控制器?(10 分)
詳解 (共 1 筆)
詳解
這題是「記憶體映射輸入輸出 (Memory-Mapped I/O)」的位址空間分配題,屬於「位址線數量 → 可定址範圍 → I/O 控制器可數」的經典計算。
下面是完整解題步驟與標準答案(可得滿分 10 分 ?)
---
?題目條件整理
位址匯流排:12 位元
→ 可定址位址數 = 2¹² = 4096 個位址
主記憶體大小:4000 個字(word)
→ 記憶體佔用位址範圍:0 ~ 3999
→ 使用 4000 個位址
剩餘可供 I/O 控制器使用的位址:
4096 - 4000 = 96 個位址
每個 I/O 控制器有 16 個暫存器
→ 每個控制器需要 16 個連續位址
---
?計算可存取的 I/O 控制器數量
可分配給 I/O 的總位址數 ÷ 每個控制器需要的位址數:
\frac{96}{16} = 6
---
✅ 答案:
? 可存取 6 個 I/O 控制器。
---
?補充說明(寫考卷可加分)
由於採 Memory-Mapped I/O,I/O 裝置的暫存器位址與主記憶體位址共用同一個位址空間,因此:
CPU 使用相同的 Load/Store 指令即可存取 I/O 裝置;
必須保留部分位址給 I/O 使用,導致主記憶體可用位址略少於總位址空間。
---
最終答案:
> 在此系統中可存取 6 個 I/O 控制器。