zoukankan      html  css  js  c++  java
  • DMA为什么比轮询、中断方式性能要卓越非常多?(你不懂)

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/35735397


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

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

    在轮询中,CPU是死循环运行对IOport的检測,这样的模式,大量的浪费了CPU(由于CPU除了处理外设之外,很多其它的时间应该用于对内存的操作,如计算等)。

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


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

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

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

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

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

    明确了吧?

    还不明确加我qq号吧:129三865272,注明linux。



  • 相关阅读:
    webkit特有的css属性
    js apply/call/caller/callee/bind使用方法与区别分析
    canvas
    seajs
    div 等高
    js常用函数
    浮动元素水平居中
    JavaScript的9个陷阱及评点
    Touch Event
    js跨域问题
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4016412.html
Copyright © 2011-2022 走看看