
文章目录【硬核科普】CPU是如何一步步“甩锅”的详解计算机I/O控制的5种进化史 第一阶段亲力亲为程序控制方式1. 无条件传送盲传2. 程序查询方式轮询 第二阶段学会听指挥程序中断方式3. 程序中断方式 第三阶段雇佣搬运工DMA方式4. DMA直接存储器存取方式 第四阶段设立包工头通道与I/O处理机5. 通道方式 (Channel)6. I/O处理机 (PPU) 一张表总结考前必看【硬核科普】CPU是如何一步步“甩锅”的详解计算机I/O控制的5种进化史在计算机组成原理中I/O输入/输出控制方式绝对是一个让无数初学者头秃的考点。教材上的定义往往晦涩难懂什么“程序查询”、“中断向量”、“DMA控制器”……看得人云里雾里。其实这一章的核心逻辑非常简单就讲了一件事CPU是如何一步步把“搬运数据”这种脏活累活甩给别人的。今天我们就用大白话把这5种I/O控制方式彻底讲透。 第一阶段亲力亲为程序控制方式这是最原始的阶段。这时候的CPU就像个苦命的保姆。1. 无条件传送盲传场景你要给一个LED灯发信号。做法CPU根本不管灯亮没亮也不管它准没准备好直接就把数据送过去。特点简单粗暴。适用那些**“总是准备好”**的简单设备比如开关、指示灯。如果设备没准备好数据就丢了。2. 程序查询方式轮询场景你要打印一份文件。做法CPU发一个数据前先问打印机“你忙吗”打印机说“忙”CPU就等着过了一会儿再问“现在呢”直到打印机说“不忙了”CPU才赶紧把数据塞过去。特点CPU全程在那盯着忙等待效率极低。就像你在等外卖每隔一分钟就看一眼窗外啥事都干不了。 第二阶段学会听指挥程序中断方式CPU觉得太累了决定改变策略我不盯着你了你好了叫我。3. 程序中断方式场景你在打游戏CPU执行主程序键盘被按下了。做法CPU继续打游戏不管键盘。键盘按下后向CPU发送一个**“中断请求”**喊一声“我有数据了”。CPU暂停游戏保存现场跑去处理键盘数据执行中断服务程序。处理完回来继续打游戏。特点实现了CPU和设备的并行工作。但问题是每传输一个字节的数据都要打断一次CPU对于硬盘这种海量数据传输CPU会被烦死。 第三阶段雇佣搬运工DMA方式面对硬盘这种大数据量的设备中断方式也不行了。CPU决定雇个专门的搬运工DMA控制器。4. DMA直接存储器存取方式核心逻辑CPU对DMA控制器说“我要把硬盘里的1GB电影搬到内存你负责搬搬完告诉我。”做法预处理CPU告诉DMA起始地址、数据长度。数据传送DMA控制器接管总线直接在内存和硬盘之间倒腾数据。此时CPU完全不用管可以去干别的事。后处理DMA搬完了发个中断告诉CPU“老板活干完了。”特点批量传输只有在开始和结束时才占用CPU。这是现代计算机高速传输的基础。 第四阶段设立包工头通道与I/O处理机随着设备越来越多几十个硬盘、磁带机、打印机一个DMA控制器管不过来了。CPU决定设立一个专门的管理层。5. 通道方式 (Channel)本质通道是一个专门负责I/O的小处理器有的书叫IOP。做法CPU不再直接指挥设备而是写一段**“通道程序”**交给通道。通道自己读取程序自己去指挥多个DMA控制器或设备干活。特点软件手段控制I/O。CPU彻底解放只需要发一条指令剩下的全是通道的事。6. I/O处理机 (PPU)本质通道的超级进化版。做法它不仅仅能管理I/O甚至有自己独立的指令系统能进行复杂的逻辑运算、通信控制、故障诊断。它基本上就是一台独立的小型计算机。特点构成了分布式多机系统的雏形。 一张表总结考前必看方式谁在干活CPU参与度关键词无条件传送CPU⭐⭐⭐⭐⭐ (全程)总是准备好、不检查状态、简单设备程序查询CPU⭐⭐⭐⭐⭐ (全程轮询)CPU反复轮询、检查状态位、忙等待程序中断CPU 设备⭐⭐⭐ (被频繁打断)设备主动通知CPU、中断请求、中断服务程序DMADMA控制器⭐ (仅头尾)主存与设备直接交换、批量传输、CPU仅开始和结束参与通道/IOP通道处理器✨ (发令即走)通道程序、软件控制I/O、专用处理器执行I/O指令I/O处理机 (PPU)独立的小电脑(专用处理器)☁️ (几乎不参与彻底甩手)外围处理机、独立指令系统、分布式多机、通信/诊断任务 学习心得计算机的发展史就是CPU不断“偷懒”的历史。从自己干到让别人干自己盯着再到让别人干完汇报最后到让别人全权代理。理解了这条主线这些概念就再也不会混淆了