计算机组成原理--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)系统脉络!如果有关于具体协议或计算(如波特率)的问题,欢迎继续提问。

相关推荐
ZYJCSZKJ40 分钟前
基于地理位置围栏的短视频POI团购系统:LBS空间索引与流量分发实践
java·服务器·数据库
深圳雨林凯AI7 小时前
图案裂变的“风格归一化“设计思路:主体保得住,画风才拉得齐|雨林凯AI技术笔记
人工智能·笔记
问天_观心7 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
指掀涛澜天下惊7 小时前
强化学习进阶篇八 策略梯度算法
深度学习·学习·算法·强化学习
乌恩大侠8 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
啊阿狸不会拉杆8 小时前
《计算机网络-自顶向下方法》2.8 小结、课后习题和 Wireshark 实验 读书笔记
计算机网络·测试工具·wireshark·因特网
冬木家居8 小时前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
Mr.朱鹏8 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠9 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
mengge.cloud9 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储