在计算机组成原理的复习备考过程中IO系统相关的选择题往往是考试的重点和难点。很多同学在遇到IO控制方式、中断优先级、DMA传输等概念题时容易混淆特别是在计算CPU时间占用率、传输效率等数值型题目时更是头疼。本文将通过系统梳理IO选择题的常见考点结合典型例题详解帮助大家掌握解题技巧。1. IO控制方式核心概念梳理1.1 四种IO控制方式对比计算机系统中常见的IO控制方式包括程序查询方式、程序中断方式、DMA方式和通道控制方式。每种方式都有其特定的应用场景和性能特点。程序查询方式是最简单的IO控制方式CPU需要不断查询设备状态效率低下。其工作流程为CPU执行初始化程序预置传送参数向IO接口发送命令字启动IO设备CPU不断查询设备状态直到外设准备就绪进行数据传输完成后继续查询下一个数据程序中断方式允许CPU在等待IO设备时执行其他任务当IO设备准备好后向CPU发出中断请求。中断过程分为中断响应和中断处理两个阶段。DMA方式通过专门的DMA控制器在IO设备与内存之间直接传输数据不需要CPU的频繁干预适合大数据量传输。通道控制方式是更高级的IO控制方式通过专门的通道处理器执行通道程序来完成IO操作。1.2 关键概念辨析中断向量 vs 中断向量地址中断向量是中断服务程序的入口地址而中断向量地址是中断向量在中断向量表中的存储地址。DMA请求 vs DMA中断DMA请求是IO设备向DMA控制器发出的数据传输请求而DMA中断是DMA控制器在完成数据传输后向CPU发出的中断信号。断点信息 vs 现场信息断点信息包括PC、PSW等由硬件自动保存的寄存器内容现场信息包括通用寄存器等由软件保存的内容。2. 程序查询方式典型例题详解2.1 基础计算题【例题1】在程序查询方式的输入/输出系统中假设不考虑处理时间每一个查询操作需要100个时钟周期CPU的时钟频率为50MHz。现有鼠标和硬盘两个设备CPU必须每秒对鼠标进行30次查询硬盘以32位字长为单位传输数据传输率为2×2²⁰B/s。求CPU对这两个设备查询所花费的时间比率。【解题步骤】鼠标设备计算每秒查询次数30次每次查询时钟周期100个总时钟周期30 × 100 3000个CPU总时钟周期50MHz 50×10⁶个时间比率3000/(50×10⁶) 0.006%硬盘设备计算每秒传输数据量2×2²⁰B字长32位 4B查询次数(2×2²⁰)/4 2¹⁹次总时钟周期2¹⁹ × 100时间比率(2¹⁹ × 100)/(50×10⁶) ≈ 105%【结论】对硬盘使用程序查询方式是不合理的会占用过多CPU时间。2.2 综合应用题【例题2】假定计算机的主频为500MHzCPI为4。设备A的数据传输率为2MB/s对应IO接口中有32位数据缓冲寄存器。若设备A采用定时查询IO方式每次输入/输出都至少执行10条指令。求设备A最多间隔多长时间查询一次才能不丢失数据CPU用于设备A输入/输出的时间占CPU总时间的百分比至少是多少【解题步骤】计算最大查询间隔每秒传输数据量2MB缓冲寄存器大小32位 4B传输次数2MB/4B 0.5M次最大查询间隔1s/0.5M 2μs计算CPU时间占比每次查询执行指令数10条CPI为4每次查询时钟周期10×440个总时钟周期0.5M×4020M个CPU总时钟周期500M个时间占比20M/500M4%3. 程序中断方式深度解析3.1 中断响应条件与过程CPU响应中断必须满足三个条件中断源有中断请求CPU允许中断及开中断异常和不可屏蔽中断除外在当前指令执行结束后且没有更紧迫的任务中断响应过程由硬件自动完成中断隐指令关中断保证保护断点和转移操作的原子性保存断点将PC等寄存器内容保存到堆栈引出中断服务程序识别中断源并获取服务程序入口地址3.2 中断处理优先级技术中断处理优先级可以通过中断屏蔽技术动态调整。中断屏蔽字用1表示屏蔽0表示允许中断。每个中断源对应一个屏蔽字屏蔽字中1越多优先级越高。【例题3】设某机器有四个中断源A、B、C、D其硬件排队优先次序为ABCD现要求将中断处理次序改为DACB写出这四个中断源的屏蔽字。【解题分析】A的屏蔽字DA所以D0屏蔽自身A1。因此为1110A1,B1,C1,D0B的屏蔽字D,A,CB所以D0,A0,C0屏蔽自身B1。因此为0100C的屏蔽字D,AC所以D0,A0屏蔽自身C1。因此为0110D的屏蔽字最高级别其余全为0屏蔽自身D1。因此为00013.3 中断方式计算题【例题4】某设备以中断方式与CPU进行数据交换CPU主频为1GHz设备接口中的数据缓冲寄存器为32位设备的数据传输率为50kB/s。若每次中断开销包括中断响应和中断处理为1000个时钟周期求CPU用于该设备输入/输出的时间占整个CPU时间的百分比最多是多少【解题步骤】缓冲寄存器存满时间4B/(50kB/s) 4B/(50×10³B/s) 80μs每次中断开销时间1000×(1/1G) 1μs时间占比1μs/80μs 1.25%4. DMA方式专题突破4.1 DMA传送过程详解DMA传送分为三个阶段预处理外设向DMA控制器发请求DMA控制器向CPU申请总线控制权数据传送DMA控制器直接控制总线进行数据传输后处理DMA控制器归还总线控制权向CPU发中断信号4.2 DMA传送方式比较DMA与CPU共享内存的三种方式停止CPU访问简单但CPU利用率低周期挪用利用CPU不访问内存的间隙进行传输DMA与CPU交替访存将CPU周期分为两部分分别供DMA和CPU使用4.3 DMA计算题精讲【例题5】假设磁盘传输数据以32位的字为单位采用DMA方式与主机交换信息传输速率为2MB/sDMA的预处理需1000个时钟周期后处理需500个时钟周期。如果平均传输的数据长度为4KB50MHz的处理器需用多少时间比率进行DMA辅助操作【解题步骤】DMA传输次数2MB/4KB 500次每次辅助操作时钟周期10005001500个总时钟周期500×1500750,000个CPU总时钟周期50M个时间比率750,000/50M 1.5%5. 综合应用题解题技巧5.1 多设备IO性能分析【例题6】某计算机CPU主频为500MHzCPI为5。外设数据传输率为0.5MB/s采用中断方式传输单位为32位中断服务程序包含18条指令中断响应等其他开销相当于2条指令的执行时间。1求中断方式下CPU时间占比 2当传输率达到5MB/s时改用DMA方式每次DMA传送块大小5000BDMA预处理和后处理总开销500个时钟周期求此时CPU时间占比【解题步骤】 1中断方式传输次数0.5MB/4B 0.125M次每次中断时钟周期(182)×5 100个总时钟周期0.125M×100 12.5M个时间占比12.5M/500M 2.5%2DMA方式传输次数5MB/5KB 1K次总时钟周期1K×500 0.5M个时间占比0.5M/500M 0.1%5.2 复杂系统性能计算【例题7】假定CPU主频为80MHzCPI为4平均每条指令访存1.5次主存与Cache交换块大小为16BCache命中率99%存储器总线宽度32位。1求MIPS数、Cache缺失次数、主存最小带宽 2Cache缺失时缺页率0.0005%页面大小4KB求缺页异常次数和DMA请求次数 3比较CPU和DMA控制器的总线优先级 44体交叉存储存储周期50ns求最大带宽【解题步骤】 1基础计算MIPS80M/(4×10⁶) 20每秒指令数80M/4 20M条访存次数20M×1.5 30M次Cache缺失次数30M×1% 0.3M次主存带宽16B×0.3M 4.8MB/s2缺页与DMA缺页异常0.3M×0.0005% 1.5次缺页数据量1.5×4KB 6KBDMA请求次数6KB/4B 1.5K次3优先级DMA优先级更高因为DMA请求不及时响应会导致数据丢失4存储带宽有效周期50ns/4 12.5ns带宽4B/12.5ns 320MB/s6. 常见错误与避坑指南6.1 单位换算错误在IO计算题中单位换算是常见的错误点。需要特别注意1MB 10⁶B vs 1MiB 2²⁰B时钟频率单位1MHz 10⁶Hz时间单位换算1s 10³ms 10⁶μs 10⁹ns6.2 概念混淆问题中断与异常中断由外部设备引发异常由CPU内部引发。异常不可屏蔽中断可分为可屏蔽和不可屏蔽。DMA请求与中断请求DMA请求优先级高于中断请求因为DMA涉及实际数据传输不及时处理会丢失数据。程序查询与中断的适用场景程序查询适合低速设备中断适合中速设备DMA适合高速设备。6.3 计算逻辑错误时间占比计算要明确计算的是CPU时间占用比例而不是实际时间。公式为(设备占用时钟周期数)/(总时钟周期数)传输次数计算注意数据缓冲寄存器的大小传输次数 总数据量 / 每次传输量7. 解题模板与快速判断方法7.1 程序查询方式判断模板当题目中出现以下特征时考虑使用程序查询方式解题设备速度较慢需要计算查询频率涉及CPU时间占用率计算解题步骤计算设备数据传输所需的查询次数计算每次查询的CPU开销计算总CPU开销和时间占比7.2 中断方式判断模板中断方式题目的特征设备有中断请求机制需要计算中断响应时间涉及中断优先级和屏蔽字解题要点明确中断响应条件和时机区分中断响应和中断处理过程掌握中断屏蔽技术的应用7.3 DMA方式判断模板DMA方式题目的识别特征高速设备数据传输涉及总线控制权转移需要计算DMA传输效率解题关键区分DMA请求和DMA中断理解DMA与CPU的内存访问冲突解决方案掌握DMA传输过程的三个阶段通过系统掌握这些解题方法和技巧结合大量的练习相信大家能够在组成原理IO选择题中取得优异成绩。重点是要理解各种IO控制方式的工作原理和适用场景掌握计算题的基本方法和常见陷阱这样才能在考试中游刃有余。