目录
7.1 I/O系统概述
I/O系统分为:
I/O软件:驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现CPU与I/O设备的信息交换。
I/O硬件:外部设备(I/O设备)、I/O接口、I/O总线等。
- 外部设备(外设):输入设备:如键盘、鼠标。输出设备:如显示屏、打印机。可输出输出设备:磁盘、光盘、CRT终端、网卡等。
- I/O接口:包括I/O端口与相应的控制逻辑。
- I/O总线:主要用于连接中低速的I/O设备,通过I/O接口与系统总线相连接。注:单总线结构中只有一个系统总线,充当了I/O总线。
低速设备:如键盘、鼠标。
中速设备:如激光打印机。
高速设备:如磁盘。
块设备:如磁盘,可寻址。
字符设备:数据的传输单位是字符,如鼠标。不能随机寻址。
7.2 I/O接口
7.2.1 I/O接口的基本结构及功能
I/O接口又称设备控制器、I/O控制器、I/O控制接口、I/O模块。
I/O接口内部包含的有I/O端口(即数据缓冲寄存器和状态/控制寄存器)和相关控制逻辑。
注:由于状态寄存器和控制寄存器的传送方向是反向且时间分开的,因此可将两者合二为一。
I/O接口在主机侧通过系统总线与内存、CPU相连。
通过数据总线,
- 读/写数据:在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送。
- 读状态:从状态寄存器中将外设和接口的状态信息送到CPU。
- 发命令:通过数据总线将对外设的命令送到控制寄存器。
通过地址总线,
- 将要访问的I/O接口中的寄存器地址送到控制逻辑部件。
通过控制总线,
- 将读/写信号、一些仲裁信号和握手信号送到控制逻辑部件。
I/O接口的功能
- 数据缓冲:将输入设备传送的数据先输入数据缓冲寄存器(DBR),CPU可以在数据缓冲寄存器满了的时候很快地将其信息取走;或是将要输出的数据传入数据缓冲寄存器,等到输出设备返回准备就绪状态再将接下来要输出的数据接着传入数据缓冲寄存器。以解决CPU与外设速度不匹配问题。
- 错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用。
- 控制和定时:接收从控制总线发来的控制信号、时钟信号。
- 数据格式转换:串-并、并-串等格式转换。
- 与主机和设备通信:实现主机-I/O接口-I/O设备之间的通信。
7.2.2 I/O接口的类型
从不同的角度看,I/O接口可以分为不同的类型。
- 按外设与接口一侧的数据传送方式可分为:并行接口和串行接口,接口要完成数据格式的转换。
- 按主机访问I/O设备的控制方式可分为程序查询接口、中断接口、DMA接口。
- 按功能选择的灵活性可分为可编程接口和不可编程接口。
注:一个I/O接口可能会对应多个设备;三类I/O端口都可能有多个。
7.2.3 I/O端口编址
统一编址
- 又称,存储器映射方式,内存映像I/O。
- 区分存储单元和I/O设备的方式:不同的地址码
- 访问I/O端口的方式:统一的访存指令,不存在I/O指令。
- 缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢。
独立编址
- 又称,I/O映射方式
- 区分存储单元和I/O设备的方式:不同的指令。
- 访问I/O端口的方式:I/O指令。
- 缺点:输入/输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制的复杂性。
- 补充:I/O指令只能在操作系统内核的底层I/O软件中使用,它们是一种特权指令,不提供给用户使用。