计算机组成原理--5.输入/输出(I/O)系统

这一章的核心在于解决高速的CPU/内存与低速的外部设备之间如何进行高效、协调的数据交换。

理论知识

为了帮你更好地掌握这一章,我为你整理了以下核心知识体系:

1. I/O系统的组成与基本概念

I/O系统由硬件 和软件两部分组成。

  • 硬件:包括I/O设备(键盘、磁盘等)、I/O接口(连接主机与外设的电路)、总线等。
  • 软件:包括I/O指令、驱动程序、中断处理程序等。

核心矛盾:主机(CPU+内存)工作速度快,外设工作速度慢,且外设种类繁多、格式各异。I/O系统的任务就是解决这些差异,实现协调工作。

2. I/O设备与主机的联系方式

这是理解I/O的基础,主要涉及编址、传送和联络方式。

I/O编址方式

CPU如何访问I/O设备中的寄存器(端口)?主要有两种方式:

编址方式 描述 优点 缺点
统一编址 (存储器映射I/O) 将I/O端口看作内存地址的一部分,使用访存指令(如LOAD/STORE)访问。 指令集简单,无需专用I/O指令,编程灵活。 占用内存地址空间,I/O操作速度可能受限。
不统一编址 (独立编址) I/O端口地址与内存地址独立,需使用专用I/O指令(如IN/OUT)。 不占用内存空间,I/O操作清晰。 需要专用指令,编程稍繁琐。
联络方式 (定时方式)

解决速度不匹配的问题:

  1. 立即响应:适用于极简单的设备(如开关),CPU发出指令外设立即执行。
  2. 同步传送:CPU与外设共用时钟,速度匹配。
  3. 异步传送(应答式):最常用。采用"请求-应答"握手信号(如READY/BUSY),允许外设按自己的速度工作。

3. I/O数据传送的控制方式 (核心考点)

这是本章的重中之重,描述了CPU如何控制数据传输,经历了从低效到高效的四个发展阶段:

(1) 程序查询方式 (Polling)
  • 原理:CPU不断轮询外设状态("你准备好了吗?"),直到外设就绪才传送数据。
  • 特点 :串行工作。CPU在查询和等待期间无法做其他事,效率极低("踏步等待")。
(2) 程序中断方式 (Interrupt)
  • 原理 :CPU启动外设后继续执行原程序。当外设准备好后,主动向CPU发送中断请求。CPU暂停当前程序,保存现场,转去执行中断服务程序处理数据,处理完后返回。
  • 特点 :并行工作(CPU与外设)。消除了"踏步等待",提高了CPU利用率。但每次传输数据(通常是一个字)都需要中断,频繁的中断处理(保存/恢复现场)会消耗CPU时间,适合少量数据传输。
(3) 直接存储器访问方式 (DMA)
  • 原理 :引入DMA控制器 。数据传输时,DMA向CPU申请总线控制权(周期挪用),接管总线,直接在内存和外设之间搬运数据块。仅在传输开始和结束时通过中断通知CPU。
  • 特点 :块传输。CPU仅在开始和结束时参与,中间数据搬运完全由DMA独立完成。适合高速、大批量数据传输(如磁盘读写)。
(4) 通道方式 (Channel)
  • 原理:通道是一个专门负责I/O的处理器(有自己的指令集)。CPU只需发出一条I/O指令启动通道,通道即可独立执行通道程序,管理多个设备与内存的数据交换。
  • 特点 :高度并行。实现了CPU、通道、外设三者的并行工作,进一步减轻了CPU负担,适用于大型机。

4. I/O接口

接口是主机和外设之间的"翻译官"和"缓冲器"。

  • 主要功能 :
    1. 数据缓冲:解决速度差异(设置数据缓冲寄存器)。
    2. 格式变换:如串行/并行转换。
    3. 电平转换:匹配TTL电平与外设电平。
    4. 状态反馈:提供"忙"、"就绪"等状态信息。
    5. 设备选择:通过译码电路选中特定设备。

5. 总结与对比

控制方式 CPU干预程度 数据传送单位 适用场景
程序查询 全程干预,串行 字/字节 简单、低速设备
中断驱动 传输过程干预 (每次) 字/字节 随机、少量数据
DMA 仅开始/结束干预 数据块 高速、大数据量 (磁盘)
通道 极少干预 (指令级) 成组数据 大型系统、多设备并发

希望这份汇总与习题能帮你理清的输入/输出(I/O)系统脉络!如果有关于具体协议或计算(如波特率)的问题,欢迎继续提问。

相关推荐
修船大队长1 分钟前
启动阶段 KL15 未接通时触发报文超时监控
运维·服务器·网络
xiaoye-duck3 分钟前
《C++ 项目:手写大模型接入 SDK》项目背景、目标及名词解释
服务器·网络·c++·语言模型
摇滚侠5 分钟前
《大模型应用开发实践:基于 Spring AI+DeepSeek 实现》第 12 章 Spring AI 开发入门 阅读笔记 2
人工智能·笔记·spring
滴啦嘟啦哒10 分钟前
【具身笔记】【π0.5 微调与仿真】三、libero数据可视化
笔记·python·ros·vla
flytalei12 分钟前
从 Docker Compose 到 K3s:逐浪笔记首次完整部署与故障排查实战
笔记·docker·容器
tz_zs16 分钟前
【AI编程】使用笔记:AI编程项目文档体系与框架
笔记·ai编程
霖霖71417 分钟前
【ESP32笔记】I2S的音频录制与播放
笔记·单片机·mcu·音视频
qq_2842740518 分钟前
电动机控制与PLC入门:自耦减压启动、反接制动与速度继电器KS,及PLC诞生、定义、特点与分类(含考点)
笔记·学习·自动化·制造
小蜗子23 分钟前
Historically Relevant Event Structuring for Temporal Knowledge Graph Reasoning
人工智能·知识图谱
RD_daoyi25 分钟前
外贸独立站从0到1:平台选择 + 建站流程 + 新手避坑
大数据·服务器·网络·人工智能·搜索引擎·职场和发展