logo好方法网

一种DMA控制器及其实现方法


技术摘要:
本发明提供一种DMA控制器及其实现方法,应用于MCU控制器中,MCU控制器包括CPU处理器,DMA控制器包括:缓存模块;多个DMA传输通道,每个DMA传输通道中没有设置对应的缓存单元,每个DMA传输通道通过AHB总线均连接缓存模块;调度模块,与每个DMA传输通道连接,用于接收CPU  全部
背景技术:
MCU(Microcontroller  Unit)也称单片微型计算机,需要在单一芯片中集成不同 的功能模块,并且上述功能模块之间需要进行数据交换,因此可以采用AMBA(Advanced  Microcontroller  Bus  Architecture,高级微控制器总线结构)总线结构将这些功能模块 (例如CPU、DMA)连接起来。其中,当CPU通过总线进行数据搬移的时候,需要先将数据先存储 到内部寄存器,然后再将内部寄存器中的数据写到其他地方,因此CPU将要花费大量的时 间,以及占用CPU的处理时间,从而使得CPU性能被大大降低。 而DMA技术可以在需要进行大量数据搬移的时候,DMA可以根据CPU下发的搬移命 令进行数据搬移,此时CPU可以进行其他工作,即不需要占用CPU的处理时间,当数据搬移完 毕,DMA向CPU下发一个搬移完成的响应,此次搬移就结束。DMA技术不仅提升了搬移速度,也 提升了CPU的性能。 然而现有技术中的DMA技术大多采用将传输总长度拆分为多个能够通过硬件电路 传输的小组,将每个小组通过一个AMBA总线结构中AHB总线主机接口(master  interface) 进行数据搬移,数据搬移的步骤为:先从源地址读到数据并缓存,数据读取完成之后,再将 数据从缓存写入目的地址。 上述现有技术存在下述缺点: 1、架构设计扩展性与复用性很低,无法适应不同的应用场景; 2、DMA传输中,只有一个AHB总线主机接口,数据从源地址读取过程中,是不能写入 目的地址的,必须等这一次读传输完成,数据全部进入缓存,才能进行写入目的地址传输, 读操作与写操作互斥,总线利用率大大降低。 3、DMA为多通道传输,由于读写互斥,一次传输会阻塞下一次传输,即一次读写传 输不完成,下一次传输无法进行。 4、由于通道阻塞,现有技术DMA通道越多,通道阻塞现象越严重,通道利用率越低。
技术实现要素:
针对现有技术中存在的上述问题,现提供一种旨在提升多通道效率的DMA控制器 及其实现方法。 具体技术方案如下: 一种DMA控制器,其中,应用于MCU控制器中,MCU控制器包括CPU处理器; DMA控制器包括: 一个缓存模块; 多个DMA传输通道,每个DMA传输通道中没有设置对应的缓存单元,每个DMA传输通 道通过AHB总线均连接缓存模块; 4 CN 111581136 A 说 明 书 2/6 页 调度模块,与每个DMA传输通道连接,用于接收CPU处理器发送的数据搬移命令,并 将数据搬移命令分配至对应的DMA传输通道,使得DMA传输通道根据数据搬移命令进行数据 传输; AHB总线中设置有: 读取模块,分别与缓存模块和调度模块连接,并连接一用于读取的第一存储单元, 用于接收调度模块分配的数据搬移命令,以根据数据搬移命令调用对应的DMA传输通道,使 得DMA传输通道将第一存储单元中的数据读取到缓存模块中,数据设置有对应于数据搬移 命令的唯一标识; 写入模块,与缓存模块连接,并连接一第二存储单元,用于读取缓存模块中的数 据,并根据读取的数据中的唯一标识查到对应的数据搬移命令,根据数据搬移命令调用对 应的DMA传输通道,将缓存模块中的数据写入到第二存储单元中。 优选的,DMA控制器,其中,唯一标识对应于一个DMA传输通道。 优选的,DMA控制器,其中,于DMA控制器的每次数据传输时,只使用一个DMA传输通 道。 优选的,DMA控制器,其中,调度信息中设置有每个DMA传输通道需分配的总传输数 据、传输次数和每次传输的数据长度。 优选的,DMA控制器,其中,调度模块采用一预设优先级策略分配数据搬移命令。 优选的,DMA控制器,其中,预设优先级策略为最近最低优先级算法。 优选的,DMA控制器,其中,DMA控制器具有总线矩阵,DMA传输通道通过总线矩阵连 接AHB总线。 还包括一种DMA控制器的实现方法,其中,实现方法包括: 步骤S1,提供如权利要求1-7的DMA控制器; 步骤S2,读取模块接收调度模块分配的数据搬移命令,以根据数据搬移命令调用 对应的DMA传输通道,使得DMA传输通道将第一存储单元中的数据读取到缓存模块中,数据 设置有对应于数据搬移命令的唯一标识; 写入模块读取缓存模块中的数据,并根据读取的数据中的唯一标识查到对应的数 据搬移命令,根据数据搬移命令调用对应的DMA传输通道,将缓存模块中的数据写入到第二 存储单元中。 优选的,DMA控制器的实现方法,其中,步骤S2包括当缓存模块中没有数据时的初 始步骤: 步骤S21,调度模块根据预设优先级策略将数据搬移命令分配至DMA传输通道; 步骤S22,读取模块接收数据搬移命令,以根据数据搬移命令调用对应的DMA传输 通道,使得DMA传输通道将第一存储单元中的数据读取到缓存模块中,数据设置有对应于数 据搬移命令的唯一标识; 步骤S23,写入模块读取初始的缓存模块中的数据,并根据读取的数据中的唯一标 识查到对应的数据搬移命令,根据数据搬移命令调用对应的DMA传输通道,将缓存模块中的 数据写入到第二存储单元中。 优选的,DMA控制器的实现方法,其中,步骤S2包括当缓存模块中存储有数据时的 后续步骤: 5 CN 111581136 A 说 明 书 3/6 页 步骤S24,读取模块和写入模块并行工作。 上述技术方案具有如下优点或有益效果:提升DMA控制器对于AHB总线的利用率, 降低DMA的电路面积与生产成本,提升多通道效率。 附图说明 参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和 阐述,并不构成对本发明范围的限制。 图1为本发明DMA控制器的实施例的原理框图一; 图2为本发明DMA控制器的实施例的原理框图二; 图3为本发明DMA控制器的实现方法的实施例的流程图; 图4为本发明DMA控制器的实现方法的实施例的步骤S2的流程图。
下载此资料需消耗2积分,
分享到:
收藏