DAM(Direct Memory Access)

cpu 和 IO 之间的协作关系

占用-->中断-->异步(IOP专门做IO操作)

以往的io操作都需要经过cpu之手,在以前,cpu要一直轮询io系统,io操作是否已经结束,在这期间,cpu不能做其他的事情,效率极低,后来中断机制的出现,使得cpu的效率大大提高,主要的方法有轮询和菊花链。但是他们都需要cpu通过执行程序来实现。直到DMA出现。
DMA的出现使得CPU从大量的中断负载中得到释放,CPU的效率显著提高。DMA 全称为 Direct Memory Access ,中文译为直接内存访问,通过io设备读取的数据不必再由操守,而是直接把读取到的数据存入内存,然后再由内存传送数据到寄存器,再由cpu处理,整个过程,大概为:

io设备向DMAC发起DMA传输请求
DMAC 接到请求后,向cpu发出请求,并且将其请求信号加到cpu的HOLD保持请求输入端上
cpu接到请求后对DMAC作出回应,将其响应信号加到DMAC的HLDA保持响应输出端上,同时向DMAC预置主存首地址以及交换数据个数和读写命令,并且放弃对系统总线的控制权,此时,DMAC获得系统总线的控制权
DMAC将接到的响应后,将响应转交给io设备,开始数据的传输。
数据传输完毕后,DMAC将HOLD信号设置为无效并加到cpu上
cpu接到HOLD信号判定为无效,就知道数据传输完毕,同时把HLDA信号设置为无效加到DMAC上,并且重新获得系统总线的控制权
总之,在系统进行DMA数据交换的过程中,cpu都不得获得系统总线的控制权,在此过程当中,cpu只需开始和结束的对DMAC进行响应,其余的时间,cpu可以处理其他的事情,比如处理中断之前的作业。

iop的出现,通道结构又被称作输入输出处理机为iop,iop独立于cpu,是一个专门管理io的处理机。它把cpu从众多的io操作中释放出来,减少了cpu的负担,与此同时,系统的io操作都由iop来负责, 并且一个iop能够控制许多的设备进行io操作,还能实现iop的复用,无疑减少了中断次数,提高了cpu的效率。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值