深入解析计算机 I/O 架构与设备驱动
1. I/O 架构基础
在计算机系统中,硬件设备通过名为桥接器的硬件连接在一起。有两条高速总线专门用于与内存芯片进行数据传输:前端总线将 CPU 连接到 RAM 控制器,而后端总线则直接将 CPU 连接到外部硬件缓存。主机桥接器将系统总线和前端总线连接起来。
每个 I/O 设备仅由一条总线承载,总线类型会影响 I/O 设备的内部设计以及内核处理该设备的方式。连接 CPU 和 I/O 设备的数据路径通常被称为 I/O 总线。80×86 微处理器使用 16 个地址引脚来寻址 I/O 设备,并使用 8、16 或 32 个数据引脚来传输数据。I/O 总线通过一个包含多达三个元素的硬件组件层次结构连接到每个 I/O 设备,这些元素包括 I/O 端口、接口和设备控制器。
2. I/O 端口
连接到 I/O 总线的每个设备都有自己的一组 I/O 地址,通常称为 I/O 端口。在 IBM PC 架构中,I/O 地址空间提供多达 65,536 个 8 位 I/O 端口。两个连续的 8 位端口可以视为一个 16 位端口,该端口必须从偶数地址开始。同样,两个连续的 16 位端口可以视为一个 32 位端口,该端口必须从 4 的倍数的地址开始。有四条特殊的汇编语言指令(in、ins、out 和 outs)允许 CPU 从 I/O 端口读取数据或向其写入数据。执行这些指令时,CPU 选择所需的 I/O 端口,并在 CPU 寄存器和端口之间传输数据。
I/O 端口也可以映射到物理地址空间的地址。这样,处理器就可以通过直接对内存进行操作的汇编语言指令(如 mov、and、or 等)与 I/O 设备进行通信。现代硬件设备更适合使用
超级会员免费看
订阅专栏 解锁全文
1482

被折叠的 条评论
为什么被折叠?



