自学教程 学编程从这里开始

输入输出系统(I/O系统)

本课目标

理解I/O系统基本作用;掌握I/O接口功能;区分程序查询、中断、DMA三种I/O控制方式;了解通道与I/O设备基本概念,明白CPU如何和外设交互数据。

7.1 I/O系统概述

I/O(Input/Output)输入输出系统:主机与外部设备之间的数据交互子系统。
计算机依靠I/O设备完成接收外部信息、向外输出处理结果。
外设种类繁多:键盘、显示器、鼠标、硬盘、网卡、打印机等。
外设和CPU之间在速度、信号类型、数据格式上差异巨大,不能直接相连,需要 I/O接口(I/O Interface) 做转换。

7.2 I/O接口的功能

I/O接口是外设与主机之间的桥梁,核心能力:

  1. 数据缓冲:解决CPU高速与外设低速的速度不匹配,设置缓冲寄存器,避免数据丢失;
  2. 信号转换:电平、串行/并行数据格式转换;
  3. 状态上报:保存外设工作状态(就绪/忙/故障),供CPU读取;
  4. 接收控制命令:接收CPU下发的读写指令,控制外设动作;
  5. 地址译码:识别端口地址,区分不同外设寄存器。

I/O编址两种方式:

  1. 统一编址 Memory-mapped I/O:I/O端口和内存单元共用地址空间,使用访存指令访问;
  2. 独立编址 Isolated I/O:I/O拥有独立地址空间,需要专门的IN/OUT输入输出指令。

7.3 I/O控制方式(重点)

1. 程序查询方式 Program Polling

CPU主动循环读取外设状态,不断查询设备是否就绪,就绪后传输数据。

  • 优点:硬件简单,容易实现;
  • 缺点:CPU大量时间浪费在循环等待,CPU利用率极低。

2. 程序中断方式 Program Interrupt

外设准备完成后,主动向CPU发送中断信号。CPU平时可以执行其他任务,收到中断请求后,暂停当前程序,进入中断服务程序完成数据传输,结束后返回原程序。

  • 优点:CPU不用轮询,CPU利用率大幅提升;
  • 缺点:每次传输都需要中断保护现场、恢复现场,少量数据传输尚可,大批量数据开销大。

3. DMA 直接存储器访问 Direct Memory Access

DMA控制器接管总线,不需要CPU干预,直接在外设与主存之间批量传输数据。传输完成后,DMA向CPU发送一次中断通知。

  • 优点:大批量数据传输速度快,极大减轻CPU负担;
  • 缺点:需要额外DMA硬件,硬件成本更高。

4. 通道方式 Channel

大型机/服务器使用。通道是独立的专用处理器,专门负责I/O控制,自主管理多个外设和主存之间的数据传输,CPU只需要启动通道。

7.4 DMA工作流程

  1. CPU预先给DMA控制器设置参数:主存起始地址、传输数据长度、读写方向;
  2. DMA控制器向总线发送请求,抢占总线;
  3. DMA直接控制外设与主存传输数据,CPU并行执行其他任务;
  4. 全部数据传输完毕,DMA向CPU发送中断;
  5. CPU处理中断,做传输收尾工作。

DMA仅在数据块传输开始、结束时需要CPU介入,传输过程CPU不参与数据搬运。

7.5 中断屏蔽与中断优先级

系统中可能同时有多个中断源请求。

  • 中断优先级 Interrupt Priority:预先定义中断的先后顺序,优先级高的中断优先响应;
  • 中断屏蔽 Interrupt Mask:通过屏蔽字,可以临时屏蔽某些中断,禁止其打断当前程序;
  • 中断嵌套:CPU正在处理中断时,可以响应优先级更高的中断请求。

本课小结

I/O接口隔离主机与外设,解决速度、信号不匹配问题。I/O编址分为统一编址和独立编址。四种I/O控制方式:程序查询最简单但效率低;中断适合少量数据;DMA适合大批量高速数据传输;通道多用于大型计算机。中断优先级和屏蔽机制用来管理多个中断源。

思考练习

  1. I/O接口有哪些主要功能?
  2. 简述统一编址与独立编址的区别。
  3. 程序查询、中断、DMA三种I/O方式的优缺点对比。
  4. DMA传输数据时,CPU是否参与数据的搬运过程?
标签:

0 条笔记