2014-04-12 57 views

回答

1

通常,可尋址I/O的地址由硬件分配。從字面上看,邏輯電路(處理器內部或外部)監視總線的特定地址,並使外設功能寄存器鎖存正在寫入總線的數據,或者驅動數據被讀到它上面。

有時,特定外設的地址是基地址和內部地址的總和,其中基地址可能由DIP開關或跳線或甚至(在某些歷史情況下,但不在IBM PC中)確定)擴展卡插入的插槽。

在更復雜的接口(如PCI)中,發現後可能會由軟件分配I/O基地址(?)。雖然傳統的本地總線接口可能只是幾個邏輯門,但PCI接口相當複雜,具有很多配置功能。

+0

這清除了我的理解了很多 –

1

這取決於設備的,你所談論的類型:

  • 如果它是一個PCI或PCI Express設備,I/O地址設置 在啓動時的BIOS的基礎。如果需要,可以通過Operating 系統重新映射它們(考慮熱插拔設備的情況)。

  • 如果它是傳統的ISA插槽設備(非PnP),基地址通常由板上的跳線或DIP開關設置爲 。在這種情況下, 的基地址不能動態改變。

  • 部分ISA板支持ISA PnP,允許其基地址 在啓動時由BIOS或OS設置。

  • 在PC,也有內置在 主板/芯片組,住在固定的I/O地址(例如PS/2鍵盤 控制器)幾個「ISA」設備。有硬編碼,不改變。

  • 某些主板外設(如串口和並口 )在BIOS設置中配置了其基地址。在那種情況下, BIOS設置的行爲就像跳線或DIP開關。