了解DMA技术
来源:互联网 发布:软件负载均衡技术 编辑:程序博客网 时间:2024/06/05 19:28
DMA
Direct Memory Access
直接存储器存取
1、概述
DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。
要把外设的数据读入内存或把内存的数据传送到外设,一般都要通过CPU控制完成,如CPU程序查询或中断方式。利用中断进行数据传送,可以大大提高CPU的利用率。
但是采用中断传送有它的缺点,对于一个高速I/O设备,以及批量交换数据的情况,只能采用DMA方式,才能解决效率和速度问题。DMA在外设与内存间直接进行数据交换,而不通过CPU,这样数据传送的速度就取决于存储器和外设的工作速度。
通常系统的总线是由CPU管理的。在DMA方式时,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态--高阻状态,而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。DMA控制器必须有以下功能:
1. 能向CPU发出系统保持(HOLD)信号,提出总线接管请求;
2. 当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;
3. 能对存储器寻址及能修改地址指针,实现对内存的读写操作;
4. 能决定本次DMA传送的字节数,判断DMA传送是否结束
5. 发出DMA结束信号,使CPU恢复正常工作状态。
2、结构
如图是DMA控制器硬件结构示意图。
DMA的可能引脚说明:
数据总线:用于传送数据。
地址总线:用于选择存储器地址。
数据传送信号:MEMR为存储器读操作信号,MEMW为存储器写操作信号,IOR为外设读操作信号,IOW为外设写操作信号。
DRQ:DMA请求信号。是外设向DMA控制器提出要求DMA操作的申请信号。
DACK:DMA响应信号。是DMA控制器向提出DMA请求的外设表示已收到请求和正进行处理的信号。
HOLD:总线请求信号。是DMA控制器向CPU要求让出总线的请求信号。
HLDA:总线响应信号,是CPU向DMA控制器表示允许总线请求的应答信号。
3、DMA的四种传送方式:
1、单字节传输方式:每次DMA传送时仅传送一个字节的数据,效率略低。在数据的传送过程中,CPU有机会重新获得对总线的控制权。
2、数据块传输方式:数据以数据块的方式进行传输。只要DREQ启动就会连续地传送数据块。一次请求传送一个数据块,效率高。在数据的传送期间,CPU长时间无法控制总线。
3、请求传输方式:DREQ信号有效就连续传输数据,否则不能进行数据的传输。
4、级联传输方式:用于通过多个Intel 8237、8257级联以扩展通道。第一级只起优先权网络的作用,实际的操作由第二级芯片完成。还可由第二级到第三级等。
- 了解DMA技术
- DMA技术
- DMA技术
- DMA技术
- DMA技术
- DMA技术
- DMA技术
- DMA&&I/O接口了解
- 缓冲、中断和DMA技术
- DMA
- DMA
- DMA
- DMA
- DMA
- DMA
- DMA
- DMA
- DMA
- PHPwind9.01傻瓜图解安装教程
- 通过JAVA代码获取手机的一些基本信息(本机号码,SDK版本,系统版本,手机型号)
- 图形上下文
- redis上tomcat和session共享的问题
- Android RSA加密解密
- 了解DMA技术
- 类似桌面背景壁纸随手指滑动--第三方开源--BackgroundViewPager
- 升级Python版本脚本
- EF学习笔记——生成自定义实体类
- phpwind图文安装2
- 引导界面(只显示一次)的实现
- Struts2之拦截器的简单应用
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- mongoexport导出csv中文乱码