两种计算机与外部设备交流的方式【中等】

程序查询与程序中断方式


程序查询方式
想象一下,你在家里,想要知道外面是不是下雨了。你每次想知道的时候,都得走到窗边去看一看。这就是程序查询方式,计算机就像你一样,要想知道外设(比如打印机)准备好了没有,就得不停地去“看”(查询)。这种方式简单,但有个问题,就是效率低,因为计算机要花很多时间去做这种“看”的工作,有时候还得等着,就像你站在窗边等雨停一样。


程序中断方式
现在换个场景,你在家里写作业,突然电话响了。这时候,你就得停下手中的笔,去接电话。这就是中断,你的作业(当前程序)被电话这个“紧急情况”中断了。计算机也是这样,当有紧急的事情,比如打印机准备好了,或者用户要操作电脑了,计算机就会暂时停下正在做的事情,去处理这个紧急情况。
中断方式的好处是,计算机可以同时做很多事情,不需要一直去“看”外设准备好了没有。就像你可以边写作业边等电话,电话一响就接,接完电话继续写作业。


中断方式里还有一些细节:
内中断:就像你在家写作业时,突然想到有个数学题做错了,这是你自己发现的问题。
外中断:就像电话响了,这是来自家里以外的事情。
硬件中断和软件中断:硬件中断就像是电话响,是实际发生的;软件中断就像是你突然想起来要给朋友发个信息,这是你计划要做的。
非屏蔽中断和可屏蔽中断:非屏蔽中断就像是火警,不管怎么样你都得去处理;可屏蔽中断就像是普通电话,如果你正在忙,可以选择不接。
中断判优:如果有多个电话同时响,你得决定先接哪个,这就是中断判优,决定哪个中断最重要。
CPU响应中断条件:就像你得确保手头的事情可以暂时放下,才能去接电话。
中断隐指令:就像你接电话前要把手洗干净,这是接电话前要做的准备。
中断处理过程:就像接电话的整个过程,从停下手中的事,到接电话,再到挂电话继续之前的事情。


多重中断
想象一下,你在家里做饭,手机响了,你就得放下手里的活儿去接电话。如果这时候门铃也响了,你就得决定是先接电话还是先去开门。多重中断就是电脑版的这种“多任务处理”。电脑在处理一个任务(比如打印文件)的时候,如果突然有更重要的任务(比如紧急数据传输)需要处理,电脑就会先放下手头的活儿,去处理那个紧急任务。


DMA方式
DMA就像是一个快递小哥,当你需要把一大堆文件从一个地方搬到另一个地方时,你不需要自己一趟趟跑,而是让快递小哥帮你一次性搬完。在电脑里,DMA就是让数据传输变得更快更直接的一种方式。
DMA控制器:就像快递小哥,它负责把数据从一个地方(比如硬盘)搬到另一个地方(比如内存)。
主存地址计数器:告诉快递小哥把东西搬到哪个地址。
传送长度计数器:告诉快递小哥要搬多少东西。
数据缓冲寄存器:就像快递小哥的小推车,用来暂时放东西。
DMA请求触发器:就像快递小哥的呼叫器,告诉他有活儿要干了。
“控制/状态”逻辑:就像快递小哥的路线规划和状态更新,确保东西能顺利送达。
中断机构:就像快递小哥完成任务后给你发个短信说“东西送到了”。


DMA传送方式
停止CPU访问主存:就像你让快递小哥进屋搬东西,你自己就先不进屋了,让快递小哥先搬。
DMA与CPU交替访存:如果CPU(你)和快递小哥(DMA)都很忙,你们就轮流进屋搬东西,互不干扰。
周期挪用:如果CPU正在忙,快递小哥就得等CPU忙完了再进去搬东西;如果CPU不忙,快递小哥就可以直接进去搬


DMA传送过程
预处理:就像你告诉快递小哥东西要搬到哪里,怎么搬。
数据传送:快递小哥开始搬东西。
后处理:东西搬完后,快递小哥给你发个短信告诉你东西已经到了。


DMA和中断的区别
中断就像是你正在做饭,突然有电话进来,你得放下手里的活儿去接电话。中断需要电脑停下手头的工作去处理突发的事情。
DMA就像是快递小哥帮你搬东西,你不需要停下手头的工作,快递小哥自己就能搞定。


知识点讲解


程序查询方式
原理:由主机执行程序来完成信息交换,主机需要不断查询设备状态,然后根据状态决定是进行数据传输还是继续等待。
优点:设计简单,对设备数量要求不高。
缺点:CPU需要花费大量时间进行查询和等待,效率较低,可能存在CPU资源浪费(原地踏步现象),且一段时间内只能与一台外设交互。


程序中断方式
中断概念
中断是计算机在执行程序过程中,遇到异常情况或特殊请求时,暂时中止当前程序,转而处理这些情况或请求。
中断作用
实现CPU与I/O设备的并行工作。
处理硬件故障和软件错误。
实现人机交互,快速响应用户干预。
支持多道程序和分时操作,包括程序切换和操作系统切换。
中断工作流程
中断请求:分为内中断和外中断。
内中断:处理器和内存内部产生的中断,如运算错误。
外中断:来自处理器和内存外部的中断,如I/O设备请求。
硬件中断与软件中断:
硬件中断:由外部硬件产生的中断。
软件中断:通过特定指令产生的中断,可编程实现。
非屏蔽与可屏蔽中断:
非屏蔽中断:即使在中断标志位IF为0(关中断)时也会被响应。
可屏蔽中断:受中断标志位IF影响,在关中断时不接受请求。
中断判优
通过中断判优逻辑确定响应哪个中断源的请求,通常硬件实现或软件实现。
一般逻辑:硬件故障中断优先级最高,非屏蔽中断优于可屏蔽中断,DMA请求优于I/O设备中断请求,高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备。
CPU响应中断条件
中断源发出中断请求。
CPU允许中断且中断标志位IF为1(开中断)。
当前执行的指令完成,且没有更紧迫的任务。
中断隐指令
CPU响应中断后,执行中断隐指令,包括关闭中断、保存断点、引出中断服务程序等。
中断处理过程
关中断,确保中断服务程序执行期间不被其他中断干扰。
保存断点,记录当前程序计数器(PC)的值。
引出中断服务程序,获取中断服务程序的入口地址。
保存现场和屏蔽字,保存中断时的CPU状态。
开中断,允许中断服务程序执行期间响应其他中断。
执行中断服务程序。
关中断,中断服务程序完成后防止立即响应其他中断。
恢复现场和屏蔽字,恢复中断前的CPU状态。
开中断、中断返回,继续执行被中断的程序。

多重中断和中断屏蔽技术
概念:CPU在执行中断服务程序时,如果出现新的中断请求,可以暂停当前的中断服务程序,转而去处理新的中断请求。
条件:
中断服务程序中需要提前设置开启指令。
优先级别高的中断源可以中断优先级别低的中断源。


DMA方式
概述
当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求。CPU响应后,将让出系统总线,由DMA控制器接管总线进行数据传送。
特点
主存与CPU的固定联系脱钩,主存既可以被CPU访问,也可以被外设访问。
数据块传送时,主存地址的确定和数据计数等由硬件电路直接实现。
需要在主存中开辟专用缓冲区,用于及时供给和接收外设的数据。
DMA传送速度快,CPU和外设可以并行工作,提高系统效率。
DMA在传送开始前需要预处理,结束后通过中断方式进行后处理。
组成
主存地址计数器:存放要交换数据的主存地址。
传送长度计数器:记录传送数据的长度,计数溢出时数据传送完毕,自动发中断请求信号。
数据缓冲寄存器:暂存每次传送的数据。
DMA请求触发器:I/O发出控制信号,使得DMA请求触发置位。
“控制/状态”逻辑:指定传送方向,修改传送参数,协调和同步DMA请求信号和CPU响应信号。
中断机构:数据块传送完毕后触发中断,向CPU提出中断请求。
传送方式
停止CPU访问主存:CPU放弃总线控制权,DMA接口获得控制权。
DMA与CPU交替访存:适用于CPU工作周期比主存存取周期长的情况。
周期挪用(或周期窃取):CPU不在访存时,I/O的访存请求与CPU未发生冲突;CPU正在访存时,I/O设备需要等待;I/O和CPU同时请求访存时,CPU暂时放弃总线占有权。
传送过程
预处理:CPU完成准备工作,如寄存器置初值、设置传送方向、启动设备。
数据传送:DMA控制数据传输,可以是单字节或数据块。
后处理:DMA控制器发送中断请求,CPU执行中断服务程序进行DMA结束处理。


DMA方式与中断方式的区别
中断方式是程序的切换,需要保护和恢复现场。
DMA方式除了预处理和后处理,其他时候不占用CPU资源。
中断请求的响应只能在每条指令执行完毕后发生,而DMA请求的响应可以发生在每个机器周期结束时。
中断传送过程需要CPU干预,而DMA传送过程不需要CPU干预,适合高速外设的成组数据传送。
DMA请求的优先级高于中断请求。
中断方式具有对异常事件的处理能力,而DMA方式仅处理数据。
 

 

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值