I/O传输的几种方式

I/O传输的几种方式


程序查询方式

由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。

在这种方式下,I/O接口需要设置一个反应设备是否准备就绪的状态标记,CPU借此得知I/O设备是否准备完成。

若I/O设备没有就绪,CPU会不断查询其状态,若已就绪,则将数据从I/O接口送至CPU,再由CPU传送至主存,一字一字传送,直至整个数据块传送完成,CPU重新执行访问I/O设备前的原程序。

这个查询方式的弊端是如果设备状态未就绪CPU会一直踏步等待,影响CPU的执行效率。


程序中断方式

CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只在设备准备就绪并向CPU发出中断请求后予以响应。这样可以避免CPU出现“踏步”现象,提高CPU的利用率。

在这种方式下,CPU在向I/O设备发送读命令后,不会等待,而是继续执行原本的程序。只有收到I/O设备的请求后才会将从接口读数据至CPU再至主存(依赖中断程序服务实现),依次循环直到数据传输完成。

这个方式CPU的利用率大大提高,但是CPU和I/O接口不仅在硬件方面需增加相应的电路,而且在软件方面还必须编制中断服务程序。


DMA方式

 该方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断程序。

DMA和CPU一起访问主存时,DMA有绝对优先权,称为窃取或挪用。此时的CPU可以进行其他操作,一般持续时间为一个存取周期。


其他方式还有I/O通道方式和I/O处理机方式。

程序查询方式示意图                                                             程序中断方式示意图

                                           

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值