介面與匯流排規格
下列關於讓CPU能讀寫PCI Express裝置的暫存器或記憶體的機制,何者正確?
- A開機時由OS等調查裝置所要求的大小,並在BAR(基底位址暫存器)分配位址,使其以記憶體位址的形式呈現
- B每個裝置在製造時就決定了固定的位址
- CCPU無法讀取裝置的暫存器,所有溝通都透過DMA進行
查看答案與解析
正確答案:A. 開機時由OS等調查裝置所要求的大小,並在BAR(基底位址暫存器)分配位址,使其以記憶體位址的形式呈現
PCI Express裝置會透過BAR告知自身暫存器與記憶體的大小。開機時韌體或OS會調查所有已連接的裝置(列舉,enumeration),並分配位址以避免衝突。之後CPU就像讀寫一般記憶體一樣,讀寫所分配的位址來操作裝置。事後才插入裝置時,同樣會分配位址。
- A. 正確。作為記憶體映射I/O(memory-mapped I/O)來使用。
- B. 若是固定位址,裝置之間的位址會互相衝突。
- C. CPU可以直接讀寫暫存器。