第八章:输入输出系统
输入输出系统是计算机与外部世界交互的桥梁,负责管理各种I/O设备、处理中断、实现DMA传输等功能。本章详细介绍I/O系统的组成、工作原理和实现技术。
8.1 I/O系统概述
8.1.1 I/O系统的功能
输入输出系统的主要功能包括:
- 设备管理:管理各种I/O设备
- 数据传输:在CPU、内存、I/O设备间传输数据
- 中断处理:处理设备中断请求
- 错误处理:处理I/O操作中的错误
- 设备驱动:提供设备访问接口
生动比喻:I/O系统就像公司的前台
- 接待来访者(处理设备请求)
- 传递信息(数据传输)
- 处理突发事件(中断处理)
- 协调各部门(设备管理)
8.1.2 I/O系统的层次结构
应用程序
↓
系统调用接口
↓
设备驱动程序
↓
I/O子系统
↓
硬件抽象层
↓
I/O硬件8.2 I/O接口与控制
8.2.1 I/O接口的功能
I/O接口是CPU与I/O设备之间的桥梁,主要功能:
- 数据缓冲:暂存传输的数据
- 信号转换:转换信号格式和电平
- 时序控制:控制数据传输时序
- 错误检测:检测传输错误
- 设备选择:选择特定的I/O设备
8.2.2 I/O接口的组成
数据寄存器
功能:存储要传输的数据
例子:
- 数据输入寄存器:存储从设备读取的数据
- 数据输出寄存器:存储要发送给设备的数据
状态寄存器
功能:存储设备状态信息
状态位:
- 就绪位(Ready):设备是否准备好
- 忙位(Busy):设备是否忙碌
- 错误位(Error):是否发生错误
- 完成位(Done):操作是否完成
控制寄存器
功能:控制设备操作
控制位:
- 启动位(Start):启动设备操作
- 停止位(Stop):停止设备操作
- 中断使能位:是否允许中断
- 方向位:数据传输方向
8.2.3 I/O端口编址
统一编址
特点:I/O端口与内存统一编址
优点:
- 指令统一
- 寻址方式丰富
- 编程简单
缺点:
- 占用内存地址空间
- 地址译码复杂
独立编址
特点:I/O端口独立编址
优点:
- 不占用内存地址空间
- 地址译码简单
- 指令区分明确
缺点:
- 需要专门的I/O指令
- 寻址方式有限
8.3 中断系统
8.3.1 中断的基本概念
**中断(Interrupt)**是I/O设备向CPU请求服务的一种机制。
中断的作用:
- 提高CPU利用率
- 实现实时响应
- 处理异常情况
中断类型:
- 外部中断:来自I/O设备
- 内部中断:来自CPU内部
- 软件中断:由程序指令产生
8.3.2 中断处理过程
中断请求
中断请求信号:
- 设备产生中断请求
- 中断控制器接收请求
- 向CPU发送中断信号
中断响应
CPU响应条件:
- 中断使能位为1
- 当前指令执行完毕
- 没有更高优先级中断
中断处理
中断处理步骤:
- 保存现场:保存程序计数器、状态寄存器
- 关中断:禁止其他中断
- 查找中断源:确定中断来源
- 执行中断服务程序:处理中断
- 恢复现场:恢复保存的寄存器
- 开中断:允许其他中断
- 返回:返回原程序
8.3.3 中断优先级
优先级设计
固定优先级:
- 每个中断源有固定优先级
- 高优先级中断可以打断低优先级中断
- 简单但不够灵活
动态优先级:
- 优先级可以动态调整
- 根据系统状态调整优先级
- 灵活但复杂
中断嵌套
中断嵌套:高优先级中断可以打断低优先级中断的处理
嵌套规则:
- 只有高优先级中断可以嵌套
- 嵌套深度有限制
- 需要保存多个现场
8.3.4 中断控制器
8259A中断控制器
功能:
- 管理8个中断源
- 优先级控制
- 中断屏蔽
寄存器:
- IRR:中断请求寄存器
- ISR:中断服务寄存器
- IMR:中断屏蔽寄存器
现代中断控制器
APIC(Advanced Programmable Interrupt Controller):
- 支持多处理器
- 消息中断
- 动态路由
8.4 DMA工作原理
8.4.1 DMA的基本概念
DMA(Direct Memory Access):直接内存访问
DMA的作用:
- 减少CPU负担
- 提高数据传输效率
- 实现高速数据传输
DMA适用场景:
- 大量数据传输
- 高速设备
- 实时性要求高
8.4.2 DMA控制器
DMA控制器的功能
- 总线控制:控制总线使用权
- 地址管理:管理内存地址
- 传输控制:控制传输过程
- 状态监控:监控传输状态
DMA控制器的组成
地址寄存器:
- 源地址寄存器:存储源地址
- 目标地址寄存器:存储目标地址
- 地址计数器:自动递增地址
控制寄存器:
- 传输长度寄存器:存储传输字节数
- 控制位寄存器:控制传输参数
- 状态寄存器:存储传输状态
8.4.3 DMA传输过程
传输准备
- CPU设置DMA参数:
- 设置源地址
- 设置目标地址
- 设置传输长度
- 启动DMA传输
传输执行
DMA请求总线:
- 向总线仲裁器请求总线
- 等待总线授权
执行传输:
- 从源地址读取数据
- 向目标地址写入数据
- 更新地址计数器
- 递减传输计数器
传输完成:
- 传输计数器为0
- 向CPU发送中断
- 释放总线控制权
8.4.4 DMA传输模式
单次传输模式
特点:每次DMA请求传输一个数据
适用:低速设备
块传输模式
特点:一次DMA请求传输一个数据块
适用:高速设备
请求传输模式
特点:根据设备请求决定传输
适用:可变速率设备
8.5 外部设备与接口标准
8.5.1 存储设备
硬盘驱动器
接口类型:
- IDE:并行ATA接口
- SATA:串行ATA接口
- SCSI:小型计算机系统接口
性能指标:
- 容量:存储容量
- 转速:磁盘转速
- 寻道时间:磁头定位时间
- 传输速率:数据传输速度
固态硬盘
特点:
- 无机械部件
- 读写速度快
- 功耗低
- 价格高
接口:
- SATA:传统接口
- M.2:新式接口
- NVMe:高速接口
8.5.2 输入设备
键盘
接口类型:
- PS/2:传统接口
- USB:现代接口
- 无线:蓝牙、2.4GHz
工作原理:
- 按键扫描
- 键码生成
- 数据传输
鼠标
类型:
- 机械鼠标:使用滚球
- 光电鼠标:使用光学传感器
- 激光鼠标:使用激光传感器
接口:
- PS/2:传统接口
- USB:现代接口
- 无线:蓝牙、2.4GHz
8.5.3 输出设备
显示器
类型:
- CRT:阴极射线管显示器
- LCD:液晶显示器
- LED:发光二极管显示器
- OLED:有机发光二极管显示器
接口:
- VGA:模拟接口
- DVI:数字接口
- HDMI:高清多媒体接口
- DisplayPort:显示端口
打印机
类型:
- 针式打印机:使用打印针
- 喷墨打印机:使用墨水喷射
- 激光打印机:使用激光和墨粉
接口:
- 并行接口:传统接口
- USB:现代接口
- 网络接口:网络打印
8.5.4 网络设备
网卡
功能:
- 数据包接收和发送
- 协议处理
- 错误检测
接口类型:
- 以太网:有线网络
- WiFi:无线网络
- 蓝牙:短距离无线
调制解调器
功能:
- 数字信号与模拟信号转换
- 数据传输
- 错误检测和纠正
8.6 I/O性能优化
8.6.1 缓存技术
设备缓存
功能:在设备中缓存数据
优点:
- 减少访问延迟
- 提高传输效率
系统缓存
功能:在内存中缓存设备数据
优点:
- 减少设备访问
- 提高系统性能
8.6.2 预读技术
预读:提前读取可能需要的数据
优点:
- 减少访问延迟
- 提高命中率
缺点:
- 可能读取无用数据
- 占用内存空间
8.6.3 写回技术
写回:延迟写入数据到设备
优点:
- 减少写入次数
- 提高写入效率
缺点:
- 数据丢失风险
- 需要额外管理
8.7 总结
本章介绍了I/O系统的核心内容:
- I/O接口:数据、状态、控制寄存器
- 中断系统:中断处理、优先级、控制器
- DMA技术:直接内存访问、传输模式
- 外部设备:存储、输入、输出、网络设备
- 性能优化:缓存、预读、写回技术
I/O系统是计算机系统的重要组成部分,其设计直接影响系统的性能和用户体验。随着技术的发展,I/O系统不断演进,出现了USB、SATA、PCIe等新的接口标准,为计算机系统提供了更高的性能和更好的扩展性。理解I/O系统的工作原理对于系统设计、性能优化和故障诊断都具有重要意义。

