一种多通道DMA控制器.pdf

上传人:a3 文档编号:973905 上传时间:2018-03-22 格式:PDF 页数:13 大小:601.69KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910080751.8

申请日:

2009.03.27

公开号:

CN101504633A

公开日:

2009.08.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||专利申请权的转移IPC(主分类):G06F 13/28变更事项:申请人变更前权利人:北京中星微电子有限公司变更后权利人:无锡中星微电子有限公司变更事项:地址变更前权利人:100083 北京市海淀区学院路35号世宁大厦16层变更后权利人:214028 江苏省无锡市新区长江路21-1号国家集成电路设计园(创源大厦)登记生效日:20110505|||实质审查的生效IPC(主分类):G06F 13/28申请日:20090327|||公开

IPC分类号:

G06F13/28

主分类号:

G06F13/28

申请人:

北京中星微电子有限公司

发明人:

李晓强

地址:

100083北京市海淀区学院路35号世宁大厦16层

优先权:

专利代理机构:

北京亿腾知识产权代理事务所

代理人:

陈 霁

PDF下载: PDF下载
内容摘要

本发明涉及一种多通道DMA控制器,该DMA控制器包括多个DMA通道模块和一个多路复用模块,每个DMA通道模块分别包括一个数据缓冲存储及其控制模块和一组控制寄存器,所有通道的数据缓冲存储及其控制模块都连接到一个多路复用模块,进一步,本发明的多通道DMA控制器的每个通道还包括一个DMA接口信号处理模块和总线接口处理模块。本发明的多通道DMA控制器能够降低片上系统上总线仲裁块和存储单元的开销,此外,增加或删减一个DMA通道只需增加或删减相应通道的模块,重用性好。

权利要求书

1.  一种多通道DMA控制器,其特征在于,包括:
多个DMA通道模块,所述每个DMA通道模块包括:
数据缓冲存储及其控制模块,用于进行DMA数据传输;以及
控制寄存器模块,包括一组控制寄存器,与所述数据缓冲存储及其控制模块通信,用于根据所述控制寄存器中预配置的数据对所述数据缓冲存储及其控制模块的DMA数据传输进行控制;
多路复用模块,与所述每个DMA通道模块中的数据缓冲存储及其控制模块通信,用于把所述多个DMA通道模块的信号和数据进行多路复用后连接到外部总线接口。

2.
  根据权利要求1所述的多通道DMA控制器,其特征在于,所述数据缓冲存储及其控制模块包括:
第一缓冲存储模块,用于存储DMA数据传输中的数据;
缓冲存储控制模块,用于控制把来自外部DMA请求模块的数据写入所述第一缓冲存储模块,并在所述第一缓冲存储模块中的数据达到一定容量时,产生写请求信号,并把所述写请求信号经所述多路复用模块传输到外部总线接口;也用于控制把所述第一缓冲存储模块中的数据读出后送到外部DMA请求模块,并在所述第一缓冲存储模块中的数据达到一定容量时,产生读请求信号,并把所述读请求信号经所述多路复用模块传送到外部总线接口。

3.
  根据权利要求1所述的多通道DMA控制器,其特征在于,所述每个DMA通道模块还包括:
DMA接口信号处理模块,外部DMA请求模块通过所述DMA接口信号处理模块与所述数据缓冲存储及其控制模块通信,所述DMA接口信号处理模块用于同步所述外部DMA请求模块和所述DMA接口信号处理模块之间的DMA接口信号。

4.
  根据权利要求1或3所述的多通道DMA控制器,其特征在于,所述每个DMA通道模块还包括:
总线接口处理模块,所述每个DMA通道模块中的数据缓冲存储及其控制模块通过所述总线接口处理模块和所述多路复用模块通信,所述总线接口处理模块用于转换所述缓冲存储及其控制模块和多路复用模块之间的信号。

5.
  根据权利要求2所述的多通道DMA控制器,其特征在于,所述第一缓冲存储模块是FIFO存储器。

6.
  根据权利要求1所述的多通道DMA控制器,其特征在于,所述多路复用模块中还包括第二缓冲存储模块,用于存储DMA数据传输中的数据。

7.
  根据权利要求6所述的多通道DMA控制器,其特征在于,所述第二缓冲存储模块是FIFO存储器。

8.
  根据权利要求4所述的多通道DMA控制器,其特征在于,所述每个通道模块中的总线接口处理模块和所述多路复用模块之间的信号以及所述多路复用模块输出的信号符合相同的总线协议。

9.
  根据权利要求8所述的多通道DMA控制器,其特征在于,所述总线协议是AHB、AXI或AXI_lite。

说明书

一种多通道DMA控制器
技术领域
本发明涉及DMA控制器,尤其涉及一种多通道DMA控制器。
背景技术
随着片上系统(SOC)的发展,一颗芯片内所集成的模块也越来越多,其对内存访问的需求也越来越高。因此,为芯片内的模块提供一种简单统一的内存访问机制对于芯片设计的效率,可靠性,复用性都显得越来越重要。一般来说,高速模块大多采用先进高性能总线(AdvancedHigh-performance Bus,AHB)之类的总线来访问内存,而低速模块大多通过直接存储器访问(direct memory access,DMA)方式来访问内存。DMA方式也用于存储器与存储器之间或者外设与存储器之间进行直接数据访问。
图1是现有技术的片上系统中低速模块访问内存的结构示意图。如图1所示,在采用AMBA(Advanced Microcontroller Bus Architecture)总线的片上系统中,每个DMA请求模块都有一个对应的DMA控制器,每个DMA控制器都有一条能直接访问内存的总线。当低速模块需要进行DMA传输时,它向其对应的DMA控制器发出DMA请求信号。DMA控制器接收到DMA请求信号之后,向总线仲裁器发出总线请求信号。总线仲裁器接收到总线请求信号之后,如果此时总线仲裁器没有更高优先级的总线请求,会在当前总线周期结束之后,向DMA控制器发出DMA响应信号,将将总线控制权交由DMA控制器进行控制,当DMA控制器获得总线使用权之后,开始进行DMA传输。在DMA传输之前,处理器需要对DMA控制器中的控制寄存器进行配置,即获得DMA传输的控制信息和对传输参数进行初始化。DMA控制器采用APB(Advanced Peripheral Bus,先进外围总线)从低速DMA请求模块中读取数据,然后再通过AHB(Advanced High performanceBus,先进高性能总线)等高速总线来访问内存,即DMA控制器和低速DMA请求模块之间的数据传输采用APB之类的低速总线,而DMA控制器和内存之间的数据传输采用AHB之类的高速总线。
由于一颗SOC芯片中要求DMA传输的低速模块的数目可能比较多,每个DMA模块都通过总线连到总线仲裁器,导致较多的总线直接连接到总线仲裁器,使得总线仲裁器有不必要的开销;此外,每一个DMA控制器与总线仲裁器之间的总线访问接口中都需要一个单独的先入先出存储单元(FIRST IN FIRST OUT,FIFO),这些存储单元无法在多个低速模块之间共享,从而在一定程度上增加了存储器开销。
发明内容
有鉴于此,本发明提供了一种多通道DMA控制器,能够减少总线开销和存储器开销,并具有很好的重用性。
本发明提供一种多通道DMA控制器,包括:
多个DMA通道模块,所述每个DMA通道模块包括:
数据缓冲存储及其控制模块,和外部DMA请求设备通信,用于进行
DMA数据传输;以及
控制寄存器模块,包括一组控制寄存器,与所述数据缓冲存储及其控
制模块通信,用于根据所述控制寄存器中预配置的数据对所述数据缓
冲存储及其控制模块的DMA数据传输进行控制;
多路复用模块,与所述每个DMA通道模块中的数据缓冲存储及其控制模块通信,用于把所述多个DMA通道模块的DMA数据传输进行多路复用后连接到外部总线接口。
进一步地,所述数据缓冲存储及其控制模块包括:
第一缓冲存储模块,用于存储DMA数据传输中的数据;缓冲存储控制模块,用于控制把来自外部DMA请求设备的数据写入所述第一缓冲存储模块,并在所述第一缓冲存储模块中的数据达到一定容量时,产生写请求信号,并把所述写请求信号经所述总线多路复用模块传输到外部总线接口;也用于控制把所述第一缓冲存储模块中的数据读出后送到外部DMA请求设备,并在所述第一缓冲存储模块中的数据达到一定容量时,产生读请求信号,并把所述读请求信号经所述多路复用模块传输到外部总线接口。
进一步地,所述每个DMA通道模块还包括:
DMA接口信号处理模块,外部DMA请求设备通过所述DMA接口信号处理模块与所述数据缓冲存储及其控制模块通信,所述DMA接口信号处理模块用于同步所述外部DMA请求设备和所述DMA接口信号处理模块之间的DMA接口信号。
进一步地,所述每个DMA通道模块还包括:
总线接口处理模块,所述每个DMA通道模块中的数据缓冲存储及其控制模块通过所述总线接口处理模块和所述多路复用模块通信,所述总线接口处理模块用于转换所述缓冲存储及其控制模块和外部总线接口之间的信号。
根据本发明的多通道DMA控制器和现有技术相比:本发明的多通道DMA控制器分别通过多个DMA接口和多个DMA请求模块相连接,和片上系统的总线仲裁模块之间只有一个总线接口,并且多个DMA通道共享多路复用模块中的缓冲存储单元,从而能够降低片上系统中总线仲裁模块和内存的开销。此外,由于多通道DMA控制器的各个通道相对独立,如果要增加/删减一个DMA通道,只需要增加/删减该DMA通道所对应的模块,而无需修改任何逻辑,复用性好。
附图说明
图1是现有技术的片上系统中低速模块访问内存的结构示意图;
图2是本发明的多通道DMA控制器在片上系统中的连接示意图;
图3是本发明一实施例的多通道DMA控制器的结构框图;
图4是本发明另一实施例的多通道DMA控制器的结构框图;
具体实施方式
下面将结合附图对本发明的具体实施方式进行更详细的说明。
图2是本发明的多通道DMA控制器在片上系统中的连接示意图,如图2所示,多通道DMA控制器与多个低速DMA请求模块直接连接,建立多个DMA通道,所有的DMA通道都通过一个总线接口与总线仲裁模块相连接,芯片中的其他模块也与总线仲裁模块连接。DMA控制器向总线仲裁模块发出总线请求,在经过总线仲裁并获得总线控制权之后通过总线连接到内存,以进行内存访问。应当指出,多通道DMA控制器与低速DMA请求模块直接相连,DMA接口可以采用任何现有的DMA接口,也可以根据需要自行定义DMA接口,只要满足DMA请求模块和多通道DMA控制器之间的正常通信即可。
多通道DMA控制器通过多个DMA接口分别直接与多个DMA请求模块相连接,建立多个DMA通道。图3是本发明一实施例的多通道DMA控制器的结构框图,如图3所示,每个DMA通道包括一个DMA接口信号处理模块、一个数据缓冲存储及其控制模块、一组控制寄存器、一个总线接口处理模块,所有DMA通道的总线接口处理模块都与一个多路复用模块相连接。多路复用模块通过片上系统的一个总线接口与总线仲裁模块相连接。
如图3所示,每个DMA通道的DMA接口信号处理模块用于同步属于不同时钟域的DMA请求模块和多通道DMA控制器之间的DMA接口信号,把DMA请求模块输入多通道DMA控制器的DMA接口信号转换成多通道DMA控制器时钟域的DMA接口信号,把多通道DMA控制器输出给DMA请求模块的DMA接口信号转换成DMA请求模块时钟域的DMA接口信号。DMA接口信号包括DMA请求信号、DMA应答信号和DMA读写数据等。
如图3所示,每个DMA通道的接口信号处理模块连接到数据缓冲存储及其控制模块,数据缓冲存储及其控制模块包括缓冲存储控制模块和第一缓冲存储模块,第一缓冲存储模块可以是任何类型的数据缓冲存储器。在本发明的一个实施例中,第一缓冲存储模块采用FIFO(先入先出)存储器,第一缓冲存储模块FIFO用于存储DMA数据传输中的数据。缓冲存储控制模块控制把来自DMA请求模块并经接口信号处理模块同步处理后的数据写入第一缓冲存储模块FIFO中,当第一缓冲存储模块FIFO中写入的数据达到一定量时,例如,当第一缓冲存储模块FIFO半满时,缓冲存储控制模块产生写请求信号;缓冲存储控制模块也控制把第一缓冲存储模块FIFO中的数据读出并经DMA接口信号处理模块同步处理后送到外部DMA请求模块,在第一缓冲存储模块FIFO中的数据读空到一定量时,例如,当第一缓冲存储模块FIFO半满时,缓冲存储控制模块产生读请求信号。
如图3所示,每个DMA通道的一组控制寄存器连接到数据缓冲存储及其控制模块,控制寄存器中预先设置了DMA传输的控制信息和传输参数,例如,控制信息和传输参数可以包括:DMA请求模块和内存传输的源地址和目的地址、DMA传输数据长度,读写内存的方式是单字传输或是突发传输等。控制寄存器包括存储DMA访问内存的地址寄存器、存储DMA传输数据长度的字节寄存器、状态寄存器和命令控制寄存器等。控制寄存器中的控制信息和传输参数在进行DMA传输之前可以由中央处理单元(CPU)通过软件预先设置。数据缓冲存储及其控制模块根据控制寄存器中预先设置的控制信息和传输参数对数据缓冲存储及其控制模块的DMA数据传输进行控制。
如图3所示,每个DMA通道的总线接口处理模块连接到数据缓冲存储及其控制模块,并且所有通道的总线接口处理模块连接到多路复用模块。每个DMA通道的总线接口处理模块用于转换数据缓冲存储及其控制模块和多路复用模块之间的信号。总线接口处理模块和多路复用模块之间的信号以及多路复用模块输出到外部总线接口的信号均符合外部总线接口采用的总线协议,也即是总线接口处理模块把数据缓冲存储及其控制模块输出的信号转换为符合外部总线接口采用的总线协议的信号,包括把上述缓冲存储控制模块产生的读请求信号和写请求信号转换为符合外部总线接口协议的信号,同时总线接口处理模块也把外部总线接口信号经多路复用模块输入到数据缓冲存储及其控制模块的信号转换为数据缓冲存储及其控制模块要求的信号。多路复用模块用于把多个DMA通道的信号和数据传输进行多路选择后送到一个外部总线接口,包括把经总线接口处理模块转换的读请求信号和写请求信号进行多路选择传送到外部总线接口进而再传送到片上系统的总线仲裁模块进行总线仲裁。多路复用模块中包括第二缓冲存储模块,用于存储DMA传输的数据,在本发明的一个实施例中,第二缓冲存储模块采用FIFO存储器。
应当指出,上述总线协议可以是任何总线协议,例如,AHB总线,AXI总线和AXI_lite总线。AHB总线是ARM公司提出的AMBA2.0协议中最重要的部分,作为SOC的片上系统总线,主要用于高性能模块之间的连接。AXI(Advanced eXtensible Interface,先进可扩展接口)总线协议是ARM公司提出的AMBA3.0协议中最重要的部分,AXI总线是高带宽,高传输速率的总线,在嵌入式系统中应用广泛。AXI_lite(简化版先进可扩展接口)总线协议的信号定义参见本发明人的发明专利申请CN200810116126.X。
图4是本发明另一实施例的多通道DMA控制器的结构框图,如图4所示,每个DMA通道包括一个数据缓冲存储及其控制模块和一组控制寄存器,所有DMA通道的总线接口处理模块都与一个多路复用模块相连接,多路复用模块通过片上系统的一个总线接口与总线仲裁模块相连接。
如图4所示,多通道DMA控制器通过多个DMA接口建立多个DMA通道。当DMA请求模块和多通道DMA控制器属于相同时钟域时,那么多通道DMA控制器的数据缓冲存储及其控制模块通过DMA接口与多个DMA请求模块直接相连;或者当DMA请求模块时钟域和多通道DMA控制器属于不同时钟域时,但是同步属于不同时钟域的DMA请求模块和多通道DMA控制器之间信号的功能由单独的DMA接口信号处理装置完成,那么多通道DMA控制器中的数据缓冲存储及其控制模块通过多个DMA接口与外部单独的DMA接口信号处理装置连接,经DMA接口信号处理装置再与多个DMA请求模块相连接。
如图4所示,每个DMA通道的数据缓冲存储及其控制模块包括缓冲存储控制模块和第一缓冲存储模块,每个DMA通道包括一组控制寄存器,连接到数据缓冲存储及其控制模块。缓冲存储控制模块、第一缓冲存储模块以及控制寄存器的说明如前所述。
如图4所示,所有DMA通道的数据缓冲存储及其控制模块都连接到多路复用模块。多路复用模块用于把多个DMA通道的信号和数据传输进行多路选择后送到一个外部总线接口,包括把数据缓冲存储及其控制模块产生的读请求信号和写请求信号经多路复用后传送到外部总线接口进而再传送到片上系统的总线仲裁模块进行总线仲裁。多路复用模块输出的总线接口信号与外部总线接口采用的总线协议不一致,可以在总线接口中把多路复用模块输出的信号转换为符合总线协议的信号。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。

一种多通道DMA控制器.pdf_第1页
第1页 / 共13页
一种多通道DMA控制器.pdf_第2页
第2页 / 共13页
一种多通道DMA控制器.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种多通道DMA控制器.pdf》由会员分享,可在线阅读,更多相关《一种多通道DMA控制器.pdf(13页珍藏版)》请在专利查询网上搜索。

本发明涉及一种多通道DMA控制器,该DMA控制器包括多个DMA通道模块和一个多路复用模块,每个DMA通道模块分别包括一个数据缓冲存储及其控制模块和一组控制寄存器,所有通道的数据缓冲存储及其控制模块都连接到一个多路复用模块,进一步,本发明的多通道DMA控制器的每个通道还包括一个DMA接口信号处理模块和总线接口处理模块。本发明的多通道DMA控制器能够降低片上系统上总线仲裁块和存储单元的开销,此外,增加。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1