跳转至

I/O管理

I/O硬件

设备通过发送信号与计算机系统通信,可以通过电缆,有时甚至可以通过空气。

下面是PPT上没有讲到过的几个概念, 出现在操作系统概念一书中.

  • Port: 设备与机器建立联系的连接点.
  • Bus: 被多个设备共享使用的一组电线以及通过电线传入的信息的相关协议, 这些协议规定了什么样的信息能够被这些电线传递.
  • daisy chain: 如果设备A存在线缆插入了设备B, B又以同样的方式插入了设备C, 这样的组织方式称为daisy chain. 通常这个链条发挥着Bus的作用.

其中标准输入输出设备端口 (Port) 通常由以下四个寄存器组成:

  • 数据输入寄存器(data-in register): 被宿主读取, 用来获取输入信息.
  • 数据输出寄存器(data-out register): 被宿主写, 用来传递输出信息.
  • 状态寄存器(status register): 包含一些可以被宿主读取的标志位, 这些位用来表明各种状态, 比如指令是否已经执行完毕, 是否输入寄存器存在可以被读取的信息, 是否设备出现了错误等等.
  • 控制寄存器(control register): 通常可以被宿主写来开始一个指令或者改变对应设备的模式实现控制设备, 比如在Serial port的控制寄存器中就存在一些位用来控制设备速度, 信息传输的宽度等等.

在我们教学内容中, 数据输入寄存器和数据输出寄存器应该被归于数据寄存器一类中了.

I/O控制方式

轮询(Pooling)

在教材中应该被归于程序控制方式这一类了.

在宿主机与控制器之间完整的交互协议或许会非常复杂, 但是基本的握手概念是很简单的.

可以通过一个例子来理解, 比如可以通过以下基本流程完成交互.

  1. 宿主机不断读取busy bit忙位直到它为0.
  2. 宿主机把写指令write写入指令寄存器.