1 IO设备的基本概念和分类
1.1 什么是I/O设备
- “
I/O”就是“输入/输出”(Input/Output)I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。
UNIX系统将外部设备抽象为一种特殊的文件,用户可以使用与文件操作相同的方式对外部设备进行操作。
1.2 I/O设备分类
I/O设备按使用特性分类:
- 人机交互类外部设备:数据传输速度慢→鼠标、键盘、打印机等用于数据交互
- 存储设备:数据传输速度快→移动硬盘、光盘等用于数据存储
- 网络通信设备:数据传输速度介于上述二者之间→调制解调器等用于网络通信
I/O设备按传输速率分类:
- 低速设备→传输速率每秒几个到几百字节,如鼠标、键盘
- 中速设备→传输速率每秒数千到上万字节,如激光打印机
- 高速设备→传输速率为每秒数千字节至千兆字节,如磁盘
I/O设备按传输速率分类:
- 块设备:传输速率较高,可寻址,即对块设备它可随机地读/写任一块
- 字符设备:传输速率较慢,不可寻址,在输入/输出时常采用中断驱动方式

2 IO控制器
2.1 I/O设备组成
I/O设备由机械部件和电子部件组成,电子部件包括(I/O控制器、设备控制器)
I/O设备的机械部件:
I/O设备的机械部件主要用来执行具体I/O操作。
如我们看得见摸得着的鼠标/键盘的按钮;显示器的LED屏;移动硬盘的磁臂、磁盘盘面。I/O设备的电子部件通常是一块插入主板扩充槽的印刷电路板。
I/O设备的电子部件(I/O控制器)
CPU无法直接控制l/O设备的机械部件,因此I/0设备还要有一个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制。- 这个电子部件就是
I/O控制器,又称设备控制器。CPU可控制I/O控制器,又由I/O控制器来控制设备的机械部件。
2.2 I/O控制器功能

2.3 I/O控制器的组成

值得注意的小细节:
- 一个
I/O控制器可能会对应多个设备;- 数据寄存器、控制寄存器、状态寄存器可能有多个
(如:每个控制/状态寄存器对应一个具体的设备),且这些寄存器都要有相应的地址,才能方便CPU操作。有的计算机会让这些寄存器占用内存地址的一部分,称为内存映像I/0;另一些计算机则采用I/O专用地址,即寄存器独立编址。
2.4 寄存器编址方式
内存映像
I/OVS 寄存器独立编址:
2.5 IO控制器小结

3 IO控制方式
IO控制总览:
3.1 程序直接控制方式
Key word:轮询
完成一次读/写操作的流程(以读操作为例):
- 完成一次读/写操作的流程(见下图,Key word:轮询)
- CPU干预的频率
很频繁,I/O操作开始之前、完成之后需要CPU介入,并且在等待l/0完成的过程中CPU需要不断地轮询检查。
- 数据传送的单位
每次读/写一个字
- 数据的流向
读操作(数据输入):
I/O设备→CPU(CPU寄存器)→内存
写操作(数据输出):内存→CPU→I/0设备
每个字的读/写都需要CPU的帮助
- 主要缺点和主要优点
优点:实现简单。在读/写指令之后,加上实现循环检查的一系列指令即可(因此才称为“程序直接控制方式”)
缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于“忙等”状态,CPU利用率低。
3.2 中断驱动方式
- 引入中断机制。由于
I/O设备速度很慢,因此在CPU发出读/写命令后,可将等待I/O的进程阻塞,先切换到别的进程执行。- 当
I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/O控制器读一个字的数据传送到CPU寄存器,再写入主存。接着,CPU恢复等待I/O的进程(或其他进程)的运行环境,然后继续执行。
注意:
- CPU会在每个指令周期的末尾检查中断;
- 中断处理过程中需要保存、恢复进程的运行环境,这个过程是需要一定时间开销的。可见,如果中断发生的频率太高,也会降低系统性能。
- 完成一次读/写操作的流程(见下图,Key word:中断)
CPU干预的频率
每次
I/O</







1万+

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



