第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中止现行程序的执行,转而执行另一个更紧迫事件的程序,处理完毕自动返回。
中断功能
- CPU与I/O设备并行工作,提高CPU效率
- 处理故障,提高可靠性
- 实时处理
- 人机对话
- 实现多道程序运行
中断请求条件
- 外设工作已经完成
- 该外设的中断没有被系统屏蔽
中断处理流程
中断请求 → 中断响应 → 中断隐指令(关中断、保存断点、转向入口)→ 中断服务程序(保存现场→处理→恢复现场)→ 开中断 → 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 | 对比简答 |