第10章 输入输出(I/O)系统

输入输出系统管理CPU与外设之间的数据交换,包括程序查询、程序中断、DMA三种基本方式,以及通道和外围处理机方式,涵盖总线结构和各类接口标准。

10.1 系统概述

I/O设备与CPU交换数据的过程

CPU ←→ 接口电路 ←→ 外设

接口电路的功能:数据缓冲、信号转换(并行↔串行)、电平转换、地址译码、时序控制。

I/O编址方式

  • 统一编址:I/O端口与主存共享同一地址空间(如Motorola 68000)
  • 独立编址:I/O端口有独立的地址空间,用专门的I/O指令访问(如x86的IN/OUT)

数据传送控制方式

方式 说明 特点
程序查询方式 CPU通过I/O指令查询外设状态 控制简单,CPU串行等待,利用率低
程序中断方式 外设就绪后主动向CPU发中断请求 CPU与外设可并行工作
DMA方式 外设与主存直接传送,不需CPU参与 适用于高速大批量传送
通道方式 专用I/O处理器管理I/O 进一步减轻CPU负担
外围处理机方式 独立处理机管理I/O 能力最强

10.2 程序中断方式

中断的基本概念

中断是指CPU中止现行程序的执行,转而执行另一个更紧迫事件的程序,处理完毕自动返回。

中断功能

  1. CPU与I/O设备并行工作,提高CPU效率
  2. 处理故障,提高可靠性
  3. 实时处理
  4. 人机对话
  5. 实现多道程序运行

中断请求条件

  1. 外设工作已经完成
  2. 该外设的中断没有被系统屏蔽

中断处理流程

中断请求 → 中断响应 → 中断隐指令(关中断、保存断点、转向入口)→ 中断服务程序(保存现场→处理→恢复现场)→ 开中断 → IRET返回

中断响应条件:至少有一个中断请求 + CPU允许中断(IF=1)+ 当前指令执行完毕。

中断判优

方法 说明 特点
单线请求软件查询 共用IRQ线,软件查询确定中断源 简单,速度慢
单线请求菊花链响应 共用IRQ线,硬接线逻辑判优 离CPU最近优先级最高
多线请求判优响应 独立中断请求线 速度快,硬件复杂
多线请求菊花链响应 同优先级设备共用一条请求线 灵活

优先权:故障中断 > 简单中断(DMA) > I/O程序中断,高速外设 > 低速外设,输入 > 输出。

单级中断与多重中断

  • 单级中断:处理过程中不再响应其他中断,实现简单
  • 多重中断:允许更高优先级中断打断当前处理,实现复杂,实时性好

响应优先权 vs 处理优先权:硬件排队决定响应次序,屏蔽码可动态改变实际处理顺序。

10.3 DMA方式

基本概念

DMA(Direct Memory Access):外设与主存之间由硬件组成的直接数据通路,在DMA控制器控制下进行数据传送,不需CPU参与。

DMA与中断的对比

对比项 程序中断方式 DMA方式
数据传送 CPU参与每字传送 硬件直接传送
响应时间 一条指令执行完毕 一个总线周期结束
处理 处理异常事件 批量数据传送
优先级 低于DMA 高于中断
适用 低速外设 高速外设

DMA控制器组成

DMA控制器包含:DMA地址寄存器(DMAR)、外设地址寄存器(ADR)、字计数器(WCR)、控制状态寄存器(CSR)、数据缓冲寄存器(DBR)、中断控制逻辑。

DMA三种工作方式

方式 说明 特点
CPU暂停方式 DMA占用总线直到整组数据传送完毕 实现简单,CPU完全等待
周期挪用方式 DMA窃取一个CPU周期传送一个字后立即归还 对CPU影响小,最常用
直接访问方式 DMA和CPU同时请求时DMA优先级高 效率最高,硬件最复杂

DMA操作过程

预处理(CPU初始化地址/字数/方向)→ 数据传送(DMA控制,每字发一次DMA请求)→ 结束处理(DMA发中断,CPU处理)。

10.4 I/O通道控制方式

通道是专用的I/O处理器,可执行通道程序管理I/O操作,进一步释放CPU。

通道类型 特点 适用
字节多路通道 分时传送多个设备的字节流 多个低速设备
数组多路通道 一次传送一个数据块,可交叉执行多道通道程序 中速设备
选择通道 一次只为一台设备服务,传送整批数据 高速设备

10.5 总线结构

总线类型

总线 位置 功能
地址总线 CPU→存储器/I/O 传送地址信号(单向)
数据总线 双向 传送数据信息(双向)
控制总线 双向 传送控制和状态信号

总线标准演进

ISA(8/16位,8.33MHz)→ EISA(32位)→ PCI(32/64位,33/66MHz)→ PCI-X → PCI Express(串行,点对点,多个Lane)

PCI Express(PCIe)用串行差分信号代替并行总线,每个Lane为双向串行通道,可聚合为x1/x4/x8/x16。

总线裁决

多个设备同时请求总线时的优先级决定机制:

  • 集中式:中央裁决器(菊花链、定时查询、独立请求)
  • 分布式:各设备自行裁决

10.6 接口

接口 特点 速率
ATA(IDE) 并行,用于连接磁盘/光盘 最高133MB/s
SATA 串行,点对点连接 SATA 3.0:6Gbps
SCSI 并行,可连接多个设备 Ultra320:320MB/s
SAS 串行SCSI,兼容SATA 12Gbps
iSCSI 基于IP网络的SCSI 取决于网络
USB 通用串行总线,热插拔 USB 3.0:5Gbps,USB 3.1:10Gbps
IEEE 1394(火线) 高速串行,用于音视频设备 800Mbps~3.2Gbps
光纤通道(FC) 高速串行,用于存储网络 2~128Gbps
InfiniBand 高速互联,用于HPC和存储 200Gbps+

10.7 网络存储——SAN和NAS

方式 说明 特点
DAS(直连存储) 存储设备直接连接到服务器 简单,扩展性差
NAS(网络附加存储) 存储设备通过IP网络共享,文件级访问 易于共享,基于文件协议(NFS/CIFS)
SAN(存储区域网络) 专用高速网络连接存储设备,块级访问 高性能,基于FC或IP

考试重点

★★★ 第一梯队(必考)

考点 典型题型
中断处理流程(中断隐指令+中断服务程序) 流程描述 + 分析
DMA与中断方式的对比 对比表 + 分析
多重中断与中断优先权 分析 + 屏蔽码设置

★★☆ 第二梯队

考点 典型题型
中断判优方法(单线/多线/菊花链) 分析 + 简答
DMA操作过程和三种工作方式 过程描述 + 对比
程序查询方式流程 流程描述
通道类型(字节多路/数组多路/选择) 对比简答

★☆☆ 第三梯队

考点 典型题型
I/O编址方式(统一编址vs独立编址) 对比简答
总线标准演进(ISA→PCI→PCIe) 简答
接口标准对比(ATA/SATA/USB/SCSI) 对比简答
SAN vs NAS vs DAS 对比简答