诗和远方

DMA及Intel 8237

集成电路

DMA直接内存存取原理

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恢复正常工作状态。


随着大规模集成电路技术的发展,DMA传送已不局限于存储器与外设间的信息交换,而可以扩展为在存储器的两个区域之间,或两种高速的外设之间进行DMA传送。

DMAC是控制存储器和外部设备之间直接高速地传送数据的硬件电路,它应能取代CPU,用硬件完成数据传送的各项功能。


Intel 8237/8237-2是一种高功能的可编程的DMA控制器,采用5MHz的8237-2传送,速度可达到1.6M字节/秒。

8237的DMA传送有以下四种方式:

1. 单字节传送方式

2. 数据块传送方式

3. 请求传送方式

4. 级连方式

Related
DMA及Intel 82372019年07月08日
Linus Torvalds 谈软件开发面临的硬件问题2019年07月01日
操作系统发展简史2019年06月20日
Linux内核邮件列表LKML2019年06月19日
Source Insight2019年06月14日
Docker2019年06月06日
消息摘要2019年06月05日
命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法)2019年05月28日

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Catalog
标签列表
最新
最热
常用网站
站点信息
  • 文章总数:2016
  • 页面总数:1
  • 分类总数:17
  • 标签总数:518
  • 评论总数:0
  • 浏览总数:592287
Archives
Copyright © 2017-2019 www.my889.com Some Rights Reserved.
推荐使用 Chrome 浏览器浏览本站
沪ICP备17052342号
Sitemap XML