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 总线等;
  • 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/OCPU 只需启动通道,进一步减少了 CPU 的干预

外部设备简介

外部设备包括输入设备(键盘、鼠标、扫描仪等)、输出设备(显示器、打印机等)和外存储器(磁盘、固态硬盘、光盘等,磁盘的结构与调度在操作系统课程中详细讨论)。

显示器的主要参数有分辨率(屏幕上横向、纵向的像素点数)和颜色深度(每个像素用多少位表示颜色,如 24 位真彩色)。显示存储器(显存,VRAM)用来存放一帧图像,因此

显存容量=分辨率×颜色深度8,显存带宽≥显存容量×帧频(刷新频率)\text{显存容量} = \text{分辨率} \times \frac{\text{颜色深度}}{8},\qquad \text{显存带宽} \ge \text{显存容量} \times \text{帧频(刷新频率)}

例如 1920 × 1080、24 位真彩色、60 Hz 的显示器,一帧图像需 1920 × 1080 × 3 B ≈ 6.2 MB,每秒刷新需读出约 6.2 MB × 60 ≈ 373 MB。

I/O 接口

I/O 接口(I/O 控制器、设备控制器)是主机和外设之间的交接界面。由于外设种类繁多、速度各异、信号格式与主机不同,需要接口来协调两者之间的信息交换。

主要功能

  1. 地址译码和设备选择:CPU 送来的地址经译码后,选中要访问的设备(端口);
  2. 主机与外设的通信联络控制:传送设备「忙」「就绪」等联络信号,实现同步控制,以及中断请求等;
  3. 数据缓冲:主机与外设的速度不匹配,接口中设有数据缓冲寄存器暂存数据;
  4. 信号格式转换:电平转换、并/串转换、数/模转换等;
  5. 传送控制命令和状态信息:把 CPU 的命令传给外设,把外设的状态信息反馈给 CPU。

基本结构

外部接口I/O 接口数据线地址线控制线数据缓冲寄存器数据端口状态/控制寄存器状态端口、控制端口I/O 控制逻辑地址译码、读写控制、中断外设接口逻辑外设
I/O 接口的基本结构
  • 内部接口:与系统总线相连,实质上是与主存和 CPU 相连,数据传输方式只能是并行;外部接口:通过接口电缆与外设相连,数据传输方式可能是串行或并行。
  • CPU 通过数据线向数据缓冲寄存器写数据、从中读数据,向控制寄存器写入命令字、从状态寄存器读出状态字;地址线用于选择端口;控制线传送读/写信号、中断请求与响应等。
  • 状态寄存器和控制寄存器的传送方向相反(一个由 CPU 读、一个由 CPU 写),访问时间也错开,因此可以合用一个寄存器。

按数据传送方式,接口分为并行接口和串行接口;按主机访问 I/O 设备的控制方式,分为程序查询接口、中断接口和 DMA 接口;按功能选择的灵活性,分为可编程接口和不可编程接口。

I/O 端口及其编址

I/O 端口是指接口电路中可以被 CPU 直接访问的寄存器,如数据端口、状态端口和控制端口。若干端口加上相应的控制逻辑才构成接口。为了让 CPU 能访问端口,需要对端口进行编址,有两种方式:

主存单元0000H ~ EFFFHI/O 端口F000H ~ FFFFH一个地址空间,用访存指令访问主存地址空间0000H ~ FFFFHI/O 地址空间00H ~ FFH两个独立的地址空间,I/O 用 IN/OUT
统一编址(左)与独立编址(右)
统一编址(存储器映射方式)独立编址(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. 1
    下列选项中,在 I/O 总线的数据线上传输的信息包括( )。
    Ⅰ. I/O 接口中的命令字 Ⅱ. I/O 接口中的状态字 Ⅲ. 中断类型号
  2. 2
    下列有关 I/O 接口的叙述中,错误的是( )。
  3. 3
    I/O 指令实现的数据传送通常发生在( )。
  4. 4
    在统一编址的方式下,区分存储单元和 I/O 设备是靠( )。
  5. 5
    下列关于 I/O 控制方式的叙述中,正确的是( )。
学完了吗?

标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。