I/O硬件原理
I/O硬件分类
按外设特性分类
- 使用特征:存储、输入输出、终端
- 数据传输率:低速、中速、高速
- 信息组织特征:单个字符或数据块
- 字符设备(如打印机)
- 块设备(如磁盘)
I/O设备的特点
- 种类多
- 差异大(控制和速度)
- 在速率相差多个数量级的不同设备上保持相对良好的性能
- 在速率相差多个数量级的不同设备上保持相对良好的性能
块设备和字符设备
块设备
将信息存储在可寻址的固定大小的数据块中
- 通常数据块大小为512字节到32768字节不等
- 块设备的主要特征是能够独立地读写单个的数据块
- 磁盘是最常见的块设备
字符设备
发送或接受字符流
- 无法编址,也不存在任何寻址操作
- 如打印机、网络接口、鼠标等
设备控制器
I/O设备通常包含一个机械部件和一个电子部件。
为了达到设计的模块性和通用性,一般将其分开。电子部分称为设备控制器或适配器,在个人计算机中,它常常是一块可以插入主板扩展槽的印刷电路板。机械部分则是设备本身。
控制器负责将驱动器读出来的比特流转换成字节块并纠错,通常该字节块是在控制器中的缓冲区中逐个比特汇集而成。在对检查和进行校验证实数据正确之后,该数据随后被拷贝到主存中。
I/O控制技术
程序控制I/O
- I/O操作由程序发起,并等待操作完成。数据的每次读写通过CPU
- 每个控制器都有一些用来与CPU通信的寄存器及数据缓存区
- 通过写入寄存器,操作系统可以命令设备发送数据、接收数据、开启或关闭或其他操作
- 通常设备有一个数据缓冲区,以供操作系统读写数据
- 设备编址方式
- I/O端口
设备寄存器单独编址,即I/O端口号 - 内存映射I/O
设备数据缓冲区按内存地址空间进行统一编址
- I/O端口
中断驱动方式
- I/O操作是否可以开始或完成
- 检测设备控制寄存器中的状态标志位
- 使用中断方式通知CPU
- 中断驱动方式
- I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU。
- 优点
在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序 - 缺点
CPU每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备
直接存储访问方式DMA
由程序设置DMA(Direct Memory Access)控制器中的若干寄存器值(如内存起始地址,传送字节数),然后发起I/O操作,而后者完成内存与外设的成批数据交换,在操作由DMA控制器向CPU发出中断
优点:CPU只需干预I/O操作的开始和结束,而其中一批数据读写无需CPU控制,适于高速设备。
DMA传送操作
通道控制方式
通道控制器有自己专用的存储器,可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制。