7.1 I/O 系统与 I/O 接口
I/O 系统的组成与四种 I/O 控制方式;外部设备简介;I/O 接口的功能与基本结构;I/O 端口及其统一编址、独立编址方式。
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 控制方式
随着计算机的发展,CPU 在 I/O 过程中的参与越来越少,CPU 与外设的并行程度越来越高:
| 方式 | 基本思想 | CPU 的参与 |
|---|---|---|
| 程序查询 | CPU 执行程序不断查询设备的状态,设备就绪后由 CPU 传送数据 | 全程参与,CPU 与外设串行工作,有「踏步」等待 |
| 程序中断 | 设备就绪后向 CPU 发出中断请求,CPU 暂停现行程序,执行中断服务程序传送数据 | 设备准备数据时 CPU 可执行其他程序;每传送一个数据都要中断一次 |
| DMA | 在主存与外设之间开辟直接数据通路,由 DMA 控制器(硬件)完成成块数据的传送 | 只在传送开始前(预处理)和结束后(后处理)参与 |
| 通道 | 通道是专门负责 I/O 的处理器,执行通道程序控制多台设备的 I/O | CPU 只需启动通道,进一步减少了 CPU 的干预 |
外部设备简介
外部设备包括输入设备(键盘、鼠标、扫描仪等)、输出设备(显示器、打印机等)和外存储器(磁盘、固态硬盘、光盘等,磁盘的结构与调度在操作系统课程中详细讨论)。
显示器的主要参数有分辨率(屏幕上横向、纵向的像素点数)和颜色深度(每个像素用多少位表示颜色,如 24 位真彩色)。显示存储器(显存,VRAM)用来存放一帧图像,因此
例如 1920 × 1080、24 位真彩色、60 Hz 的显示器,一帧图像需 1920 × 1080 × 3 B ≈ 6.2 MB,每秒刷新需读出约 6.2 MB × 60 ≈ 373 MB。
I/O 接口
I/O 接口(I/O 控制器、设备控制器)是主机和外设之间的交接界面。由于外设种类繁多、速度各异、信号格式与主机不同,需要接口来协调两者之间的信息交换。
主要功能
- 地址译码和设备选择:CPU 送来的地址经译码后,选中要访问的设备(端口);
- 主机与外设的通信联络控制:传送设备「忙」「就绪」等联络信号,实现同步控制,以及中断请求等;
- 数据缓冲:主机与外设的速度不匹配,接口中设有数据缓冲寄存器暂存数据;
- 信号格式转换:电平转换、并/串转换、数/模转换等;
- 传送控制命令和状态信息:把 CPU 的命令传给外设,把外设的状态信息反馈给 CPU。
基本结构
- 内部接口:与系统总线相连,实质上是与主存和 CPU 相连,数据传输方式只能是并行;外部接口:通过接口电缆与外设相连,数据传输方式可能是串行或并行。
- CPU 通过数据线向数据缓冲寄存器写数据、从中读数据,向控制寄存器写入命令字、从状态寄存器读出状态字;地址线用于选择端口;控制线传送读/写信号、中断请求与响应等。
- 状态寄存器和控制寄存器的传送方向相反(一个由 CPU 读、一个由 CPU 写),访问时间也错开,因此可以合用一个寄存器。
按数据传送方式,接口分为并行接口和串行接口;按主机访问 I/O 设备的控制方式,分为程序查询接口、中断接口和 DMA 接口;按功能选择的灵活性,分为可编程接口和不可编程接口。
I/O 端口及其编址
I/O 端口是指接口电路中可以被 CPU 直接访问的寄存器,如数据端口、状态端口和控制端口。若干端口加上相应的控制逻辑才构成接口。为了让 CPU 能访问端口,需要对端口进行编址,有两种方式:
| 统一编址(存储器映射方式) | 独立编址(I/O 映射方式) | |
|---|---|---|
| 做法 | 把 I/O 端口当作存储器的单元进行地址分配,用统一的访存指令访问端口 | I/O 端口的地址空间与主存地址空间相互独立,用专门的 I/O 指令(如 x86 的 IN、OUT)访问端口 |
| 如何区分主存与 I/O | 靠不同的地址码 | 靠不同的指令(端口地址与主存地址可以相同) |
| 优点 | 不需要专门的 I/O 指令,CPU 访问 I/O 的操作更灵活、方便;端口的编址空间大 | 端口地址位数少、译码快;I/O 指令使程序清晰,便于理解和检查 |
| 缺点 | 端口占用了主存地址,主存可用的地址空间变小;端口地址位数多,地址译码速度较慢 | I/O 指令少,一般只能对端口进行传送操作,程序设计灵活性差;CPU 要提供存储器读/写和 I/O 读/写两组控制信号,控制更复杂 |
| 例子 | ARM、MIPS、RISC-V 等 | x86 |
即时练习
即时练习5 题
点击选项即可作答
- 1下列选项中,在 I/O 总线的数据线上传输的信息包括( )。
Ⅰ. I/O 接口中的命令字 Ⅱ. I/O 接口中的状态字 Ⅲ. 中断类型号 - 2下列有关 I/O 接口的叙述中,错误的是( )。
- 3I/O 指令实现的数据传送通常发生在( )。
- 4在统一编址的方式下,区分存储单元和 I/O 设备是靠( )。
- 5下列关于 I/O 控制方式的叙述中,正确的是( )。
学完了吗?
标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。