跳至內容

記持體對映輸入輸出

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 00:07 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

記持體對映輸入輸出(英語:Memory-mapped I / O , MMI / O,簡稱做記持體對映 I / O), 以及埠頭對映輸入輸出port-mapped I / O , PMI / O,嘛叫做獨立輸入輸出isolated I / O), 是 PC 機踮中央處理器(CPU)佮外部裝置之間執行輸入輸出操作的兩種方法,這兩種方法互為補充。除了這以外,執行輸入輸出操作嘛會當使用專用輸入輸出處理器(dedicated I / O processors)——這通常是指大型電腦上的通道輸入輸出(Channel I / O), 遮的專用處理器執行自有的指令集。

記持體對映 I / O(莫佮記憶體對映檔案的輸入輸出相濫摻)使用仝款的位址匯流排來定址記憶體佮輸入輸出裝置(簡稱 I / O 裝置), 前提是 I / O 裝置的裝置記持體佮暫存器攏已經予對映到記憶體空間的某一个位址。按呢當做 CPU 存取某一个徛起的時陣,可能是欲儉佇佗一部份的物理記憶體,嘛可能是愛存取 I / O 裝置的記持體。所以,裝置記持體嘛會當通過記持體存取指令來完成讀寫。彼每一个 I / O 裝置監測 CPU 的位址匯流排,並且佇咧發現 CPU 存取予分配著本裝置的位址區域的時陣做出回應,建立資料匯流排和相應裝置暫存器之間的連接。為著實現 CPU 著 MMI / O 裝置的存取,相應的位址空間著愛予遮的裝置保留,並且袂當閣分配給系統實體記憶體。這會當是永久保留,嘛會當是暫時性的保留。通常來講 X 八十六架構攏是永久保留的,啊若佇咧 Commodore 六十四中,因為採用矣 I / O 裝置佮普通記憶體之間的堆交換技術(bank switching), 會當做到暫時性保留。

PMI / O 通常使用一組專門為 I / O 設計的 CPU 指令來執行 I / O 操作。比如講佇基於 x 八十六佮 x 八十六鼻六十四架構微處理器當中使用 in / out 指令。這兩條指令有一寡無仝款的形式,分別用來佇咧 CPU 的 EAX 暫存器(抑是高十六位元 / 低十六位元 / 高八位元 / 低八位元)和 I / O 裝置的某一个埠之間完成對單位元組 / 雙位元組 / 四位元組資料的操作 ( 比如講著 out 指令,分別有 outb , outw 和 outl )。I / O 裝置有一个和記憶體位址空間互相獨立的 I / O 位址空間。I / O 裝置通過專用 I / O 針跤抑是專用的匯流排和 CPU 相連。因為這个 I / O 位址空間和記憶體位址空間互相獨立,所以有當時仔號做獨立 I / O .

外部連結

  • University lecture notes about computer I / O