微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Io 地址是如何分配的?

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?