轮询、中断和DMA三种方式的原理和联系

CPU控制外部设备的方式:中断、轮询、DMA


由于外部设备的速度差异,CPU可以使用不同的方式控制外部设备的访问。常见的方式轮询、中断和DMA。

轮询

轮询最简单,CPU通过不断地查询某个外部设备的状态,如果外部设备准备好,就可以向其发送数据或者读取数据,这种方式由于CPU不断查询总线,导致指令执行受到影响,效率非常低。

中断

中断方式克服了CPU轮询外部设备的缺点,正常情况下,CPU执行指令,不会主动去检查外部设备的状态。外部设备准备好之后,向CPU发送中断信号,CPU收到中断信号后停止当前的工作,会根据中断信号指定的设备号处理相应的设备。这种处理方式既不影响COU的工作,也能保证外部设备的数据得到及时处理,工作效率很高。

DMA

中断方式效率虽然很高,但是对于大量数据的传输就显得力不从心。大量的中断会导致CPU忙于处理中断而减少对指令的处理,效率会变的很低。对于大量的数据传输可以不通过CPU而直接传送到内存,这种方式叫做DMA(DIrect Memory Access)。使用DMA方式,外部设备在数据准备好之后只需向DMA控制器发送一个命令,把数据的地址和大小传送过去,由DMA控制器负责把数据从外部设备直接存放到内存。DMA方式适合处理大量的数据,因此越来越多的嵌入式处理器开始支持它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值