DMA为什么比轮询、中断方式性能要卓越很多?

如果是计算机专业出身的同学,都听过一个概念,中断比轮询要好、DMA比中断要好。

中断比轮询要好,是容易理解的:

在轮询中,CPU是死循环执行对IO端口的检测,这种模式,大量的浪费了CPU(因为CPU除了处理外设之外,更多的时间应该用于对内存的操作,如计算等)。

而中断方式,则没有死循环的浪费,CPU可以正常做别的事情,等到外部设备数据来了,就会主动由设备控制器发出中断(设备控制器预先需要注册对应的中断控制号)

但是,为什么DMA比中断要好呢?

嘿嘿。不幸的是,这个问题本身就是错的。oh my god!

DMA和中断不是同一个层级的概念。DMA本身也会用到中断。

DMA之所以比中断快,是因为,在DMA机制下,进行外设读写操作的指令是由DMA控制器完成,而不是由主机的CPU完成!

DMA方式下,中断已经成为了,DMA开始或完成的一个通知信号(读写指令由DMA控制器完成)。而在“纯中断”模式下,中断是启动主机CPU开始外设读写的信号(读写指令out_p(),in_p()由主机CPU执行)!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值