Io 地址是如何分配的?

问题描述

最近我一直在研究内存映射 IO 和端口映射 IO(又名 IO 映射 IO)。关于端口映射 IO,我正在努力理解 IO 端口和 IO 地址之间的区别。如果有人能澄清差异,那将是一个巨大的帮助。

在计算机上,每个 IO 控制器(AKA 外设)或 IO 设备都有一个 IO 地址,范围从 DMA、GPU、网卡、声卡等......我知道 x86-64 IBM 兼容 PC(漂亮几乎每台未嵌入的台式机/笔记本电脑)都有 IBM PC 标准,用于定义哪些地址范围适用于哪些设备。例如,如果 BIOS 正在寻找键盘,它会搜索包含键盘地址的 IO 地址范围。这个 IBM PC 标准存储在哪里?如果有人能告诉我或引导我找到一些文档,那就太好了!

哪些设备有 IO 地址?我知道 Io 控制器获得 IO 地址,但是从它们分支出来的设备也获得地址吗?让我澄清一下这个问题。

假设我有一个 USB 控制器和从它们分出的 3 个 USB 端口。我知道 USB 控制器有一个 IO 地址,但是从它们分支出来的 USB 端口会有 IO 地址吗?如果我在控制器端口连接一个USB扩展集线器,集线器和它的USB端口是否都有IO地址?

还有一件事。这些 IO 地址是否由制造商预设,因为他们知道它是什么类型的设备并且他们可以将 IO 地址与 IBM PC 标准对齐?或者 BIOS(或其他实体)是否会根据设备类型分配 IO 地址,然后根据 IBM PC 标准分配适当的地址?

类 UNIX 系统中的设备驱动程序如何知道特定设备的 IO 地址(对于端口映射 IO)或内存地址(对于内存映射 IO)是什么?

几乎所有这些问题实际上都涉及内存映射和端口映射 IO。

一些清晰度会很有帮助! 谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...