我知道CPU通過IO端口地址(通常是16位)與IO設備進行通信,但我想知道誰是IO端口地址分配? BIOS?中央處理器? OS?這些地址是預設的還是動態的?CPU,BIOS或OS執行IO端口地址分配嗎?
2
A
回答
1
通常,可尋址I/O的地址由硬件分配。從字面上看,邏輯電路(處理器內部或外部)監視總線的特定地址,並使外設功能寄存器鎖存正在寫入總線的數據,或者驅動數據被讀到它上面。
有時,特定外設的地址是基地址和內部地址的總和,其中基地址可能由DIP開關或跳線或甚至(在某些歷史情況下,但不在IBM PC中)確定)擴展卡插入的插槽。
在更復雜的接口(如PCI)中,發現後可能會由軟件分配I/O基地址(?)。雖然傳統的本地總線接口可能只是幾個邏輯門,但PCI接口相當複雜,具有很多配置功能。
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開關。
相關問題
- 1. CPU IO端口如何工作?
- 2. 爲Mac OS X IO完成端口
- 3. 爲JGroups配置地址和端口
- 4. 使端口和地址可配置
- 5. 異或IP地址和端口號
- 6. 想要執行的網址端口號
- 7. Sendto或連接是否將任意地址和端口分配給套接字?
- 8. 請求,無法分配請求的地址,端口?
- 9. 分配播放默認地址到端口
- 10. 插座 - 如何找出哪些端口和地址我分配
- 11. 網絡端口IO
- 12. CPU要求地址高於0xC0000000時如何執行地址轉換(virt-> phy)?
- 13. SMTP地址和端口
- 14. DLL內存映射或可執行文件中的地址空間分配
- 15. 在Mac OS X上執行線程,強制執行多個CPU
- 16. .NET如何使用IO線程或IO完成端口?
- 17. nrComm分配端口
- 18. AWS EC 2分配次級公共IPv4地址 - 不執行ping
- 19. CPU註冊個人或尋址部分
- 20. 查詢執行單元,端口等的Intel CPU詳細信息
- 21. c#並行IO完成端口
- 22. 如何在Mac OS上重新分配端口號?
- 23. 串行端口重定向或分割
- 24. 在執行時如何在OS中完成地址綁定?
- 25. VESA通過IO /端口
- 26. IO完成端口和OpenSSL
- 27. 分配TCP和UDP端口到家庭網絡中的多個IP地址
- 28. DHCP服務器基於端口的地址分配交換機思科2960
- 29. 在jvisualvm中可以同時執行CPU和內存分析嗎?
- 30. IP地址和端口應該被認爲是保密的嗎?
這清除了我的理解了很多 –