希赛考试网
首页 > 软考 > 网络工程师

dma工作原理及过程

希赛网 2024-08-09 14:55:56

DMA 即直接内存存取(Direct Memory Access),是一种用于计算机内存传输的技术。DMA 可以在不干扰 CPU 工作的情况下,直接在主存和外设之间进行数据传输。DMA 减少了 CPU 的负担,使 CPU 可以集中精力解决计算问题。

下面将从 DMA 工作流程、DMA 模式以及 DMA 实现原理等多个角度,对 DMA 工作原理及过程进行分析。

一、DMA 工作流程

DMA 工作流程一般分为四个步骤:

1. 配置 DMA 控制器

程序在将数据传输给外部设备之前,要通过 DMA 控制器对传输进行配置。配置信息包括传输数据的内存地址、外设的地址、传输数据的大小以及 DMA 控制器的工作模式等。

2. 启动 DMA 通道

DMA 通道启动后,将直接从内存中读取数据,而无需 CPU 参与。DMA 控制器在传输数据之前,先检测传输地址是否正确,并确认 DMA 访问权限是否存在等问题。

3. 数据传输

DMA 控制器向内部总线发出传输命令,将数据从内存传输到外设中, 或将外设数据读取到内存中。

4. 中断处理

当 DMA 传输完成后,DMA 控制器向处理器发出中断请求。处理器收到中断请求后,将会执行与 DMA 相关的中断处理程序。

二、DMA 模式

DMA 工作模式有三种: 单次 DMA 模式、循环 DMA 模式和自动初始化 DMA 模式。

1. 单次 DMA 模式

单次 DMA 模式指 DMA 在数据传输完成之后,就停止传输。单次 DMA 模式主要用于传输长度确定的数据,如程序启动时的设备初始化操作,数据采集等。

2. 循环 DMA 模式

循环 DMA 模式是指在 DMA 处理完一段传送的数据后,再从内存开始重复传送相同的数据,直到 DMA 被中断停止。循环 DMA 模式主要适用于存储器测试,震荡、音频等连续性数据处理,或需要传送相同数据多次的场合。

3. 自动初始化 DMA 模式

发生于循环 DMA 模式,即在 DMA 控制器第一次传输完制定的数据后,会自动将传输指针返回到数据缓存的初始位置,进行下次数据传输。该模式主要用于周期性传输得场合,如多媒体应用传输视频流数据。

三、DMA 实现原理

DMA 实现的本质是使用 DMA 控制器硬件模块代替 CPU 进行数据存储到主存和介质读写等操作。

首先应该有能实现 DMA 的外设(比如:DMA 控制器、输入/输出端口、存储器)与 DMA 控制器之间建立起专门的数据通道或数据交换方式,这也是 DMA 实现的基础。在传输数据时,DMA 控制器只需要根据预设下来的参数从存储器中读取指定的数据,并将其存入目的外设接口或者将外设的数据导入内存。同时,在整个 DMA 控制器连接的体系中,CPU 的工作重心则移至其他任务。这样,当 CPU 再次需要进行数据读写时,DMA 控制器就能够立即响应其请求,用数据总线与输入输出器或者存储器交换数据。

扫码咨询 领取资料


软考.png


网络工程师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
网络工程师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件