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。
DMA为什么比轮询、中断方式性能要卓越非常多?(你不懂)的更多相关文章
- java用while循环设计轮询线程的性能问题
java用while循环设计轮询线程的性能问题 轮询线程在开发过程中的应用是比较广泛的,在这我模拟一个场景,有一个队列和轮询线程,主线程往队列中入队消息,轮询线程循环从队列中读取消息并打印消息内容.有 ...
- 为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失
wait/notify 机制是为了避免轮询带来的性能损失. 为了说清道理,我们用“图书馆借书”这个经典例子来作解释. 一本书同时只能借给一个人.现在有一本书,图书馆已经把这本书借了张三. 在简单的s ...
- 采用轮询的方式检测串口输入&&采用中断的方式检测串口输入的区别!
区别1:中断USART1_IRQHandler()不放进main(主函数)里,而轮询检测rcv()需要: 但是需要在主函数里对中断NVIC()进行初始化,因为所有程序都是从主函数开始一步一步执行,想要 ...
- 工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常
前两天处理过一个故障,是S7-200 Smart与V20的USS通讯,设备厂家在程序里面利 用USS_RPM _R程序循环轮询5个V20设备读取频率和电流值等信息. 图 USS_RPM_R读取信息 上 ...
- 轮询、中断、DMA和通道
from http://blog.csdn.net/lastsweetop/article/details/3418769 一.轮询方式 对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的 ...
- S5PV210 串口配置与实验(轮询方式)
S5PV210 UART 相关说明 通用异步收发器简称 UART, 即 UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来传输串行数据.发送数据时, ...
- STM32F10x_硬件I2C主从通信(轮询发送,中断接收)
Ⅰ.写在前面 关注我分享文章的朋友应该知道我在前面讲述过(软件.硬件)I2C主机控制从机EEPROM的例子.在I2C通信主机控制程序是比较常见的一种,可以说在实际项目中,很多应用都会使用到I2C通信. ...
- 基于Ajax的长轮询(long-polling)方式
如 图 1 所示,AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面 ...
- 实现Comet(服务器推送)的两种方式:长轮询和http流
Comet 是一种高级的Ajax技术,实现了服务器向页面实时推送数据的技术,应用场景有体育比赛比分和股票报价等. 实现Comet有两种方式:长轮询与http流 长轮询是短轮询的翻版,短轮询的方式是:页 ...
随机推荐
- VSTO学习笔记(七)基于WPF的Excel分析、转换小程序
原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...
- win7下硬盘安装win7+CentOS双系统方法
原文:win7下硬盘安装win7+CentOS双系统方法 LinuxCentOS安装大致介绍: win7下硬盘安装win7+CentOS双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. ...
- hdu1251(Trie树)
传送门:统计难题 分析:Trie树入门题,随便写写练下手感,统计每个节点被多少单词经过就可以了. #include <iostream> #include <cstdio> # ...
- B. 沙漠之旅(分组背包)
B. 沙漠之旅 Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: % ...
- tomcat dbcp 基于jndi当配置java.sql.SQLException: Already closed
最近发现了一个现象,观察到的生产环境,不要有一段时间操作,然后另一个操作,首先将有一个数据库连接:java.sql.SQLException: Already closed.,例如下列: error ...
- poj3252(数位dp)
题目连接:http://poj.org/problem?id=3252 题意:拆成2进制,在记录0和1的个数 求区间[a,b]中,满足传化成2进制后,0的个数>=1的个数的数字的个数... 分析 ...
- Netbeans源代码编辑技巧——使用代码补全和代码生成
原文 Netbeans源代码编辑技巧——使用代码补全和代码生成 使用代码补全生成代码 一般来说,代码补全对于自动填充缺失的代码是有帮助的,例如标识符和关键字.截至 NetBeans IDE 6.0,您 ...
- VBA怎样统计同一类型的数据的总和
今天是2014-11-01 是周末,忙了一周了,最终能够闲下来了.想起近期工作用到的VBA的一个场景,结合VBA的数组,所以就想试试看.结果还好.出来了.这年头,又玩起了VB了,经过多时才接受了VB的 ...
- windows phone 墓碑化(9)
原文:windows phone 墓碑化(9) 几个术语的理解: 名称 说明 ; App ap = (App)Application.Current; // 构造函数 ...
- android一些面试题目
1.ListView怎么提高滑动效率 2.说下你做过项目的包的构架,(联网,解析,activity,database) 重点 3.载入大量图片怎么做(包含小图和查看大图) 怎么降低一次跟server的 ...