I/O设备与主机信息传送的方式(程序查询方式,程序中断方式,DMA方式)

您所在的位置:网站首页 中断io方式是程序中断的方式吗 I/O设备与主机信息传送的方式(程序查询方式,程序中断方式,DMA方式)

I/O设备与主机信息传送的方式(程序查询方式,程序中断方式,DMA方式)

2024-07-05 17:07| 来源: 网络整理| 查看: 265

一.程序查询方式

CPU和I/O设备串行工作,CPU连接I/O设备和内存,CPU需要等待,效率很低

(由CPU通过程序不断查询IO设备是否已经做好准备,从而控制IO设备与主机交换信息)

二.程序中断方式:

中断:CPU在执行程序的过程中,如果发生意外或特殊事件,cpu要中断当前程序的处理,转而去处理特殊事件,中断结束后要返回之前的断点,继续执行之前的程序。

CPU一定程度解放,在IO设备自身准备的时候,CPU可以先进行自己的工作(不需要主动查询外设的状态),当IO与主机进行信息交换的时候,CPU暂停自身程序,参与信息交换

 程序中断的步骤:

•收到中断请求信号

•执行完第K条指令(执行周期结束)后保存(要执行现场保存)

•跳转到中断服务程序

•执行中断服务程序,执行完中断程序后再去执行K+1条指令

单重中断:中断服务过程中不允许响应其他中断

多重中断:中断服务过程中可以响应更高优先级的中断,当遇到更高优先级中断时,此中断也被当作是一个普通的程序,转而去执行更高优先级的中断

补充:中断判优

当某一个时刻有多个中断源提出中断请求时,中断系统必须按照其优先顺序予以响应。

1.硬件故障中断属于最高级,其次是软件中断 2.非屏蔽中断优于可屏蔽中断 3.DMA请求优于I/O设备传送的中断请求 4.高速设备优于低速设备 5.输入设备优于输出设备 6.实时设备优于普通设备

可以通过硬件来实现:

硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中

 设备1#,2#,3#,4#优先级按降序排列

INTR=1表示有请求。那么其他的中断不允许有请求,在同样的时间内,只有一个中断请求

可以通过软件实现:

利用程序查询的方式来控制中断源的优先级:

 如果有A请求,就进入A请求的中断服务程序,如果没有就跳到B的,即将优先级从高到低进行一次遍历和查询

三.DMA(Direct Memory Access)方式:直接内存访问

使外部设备和主存之间直接建立联系,不经过CPU,外部设备直接从内存存取数据的数据交换模式

DMA的工作过程可以分为请求,响应,传输,结束:

请求 CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。响应 DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求传输 DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。结束 当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。

•外设通过DMA控制器向CPU发送DMA请求

•CPU响应DMA请求后,就会转变为DMA工作方式 

•CPU将总线的控制权交给DMA控制器

•DMA控制器发送存储器地址并且决定传送数据块的长度,实行I/O设备与主存之间的传送

•操作完毕后,将总线控制权交还给CPU,CPU再执行现行程序

DMA与主存交换数据的三种方式:1.停止CPU访问主存:

 由图中可以看到,CPU对于主存的利用率没有充分发挥

2.周期挪用(或周期窃取)

DMA访问主存有三种可能 •CPU此时不访存:DMA可以访存,CPU继续执行不访存的指令

•CPU正在访存:DMA等待CPU访存 •CPU与DMA同时请求访存:此时CPU将总线控制权让给DMA

 3.DMA与CPU交替访问:(效率最高) 不需要申请建立和归还总线的使用权

 

对比程序中断方式和DMA方式:

•中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理。

• DMA方式则是以数据块为单位传输的,在所要求传送的数据块全部传送结束时要求CPU进行中断处理,这样大大减少CPU进行中断处理的次数,并且CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。

•中断方式,可以进行异常处理,处理步骤1.保存被中断的现场2.执行中断处理函数3.恢复现场

DMA不能处理异常情况,所以两者是不能相互替代的

•中断方式是程序切换,每次操作需要保护和恢复现场,中断次数多,CPU需要花较多的时间处理中断,中断次数多也会导致数据丢失。但是DMA是必须利用中断的,DMA是通过硬件实现的,否则CPU无法得到数据已经传输结束的信号,当数据传输结束的时候,DMA控制器给CPU一个中断信号,CPU进行响应.这个就大大的节约了CPU的资源。

•中断方式的数据传送方向是由设备到CPU再到内存,或者相反。 DMA方式的数据传送则是将所传输的数据由设备直接送入内存,或是由内存直接送到设备。

 •DMA的优先级比中断方式的优先级高



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3