一种多通道dma控制器的制作方法

文档序号:6484141阅读:155来源:国知局
专利名称:一种多通道dma控制器的制作方法
技术领域
本发明涉及DMA控制器,尤其涉及一种多通道DMA控制器。
背景技术
随着片上系统(soc)的发展, 一颗芯片内所集成的模块也越来越多,
其对内存访问的需求也越来越高。因此,为芯片内的模块提供一种简单统 一的内存访问机制对于芯片设计的效率,可靠性,复用性都显得越来越重
要。 一 般来说,高速模块大多采用先进高性能总线(Advanced High-performance Bus, AHB )之类的总线来访问内存,而j氐速才莫块大多通 过直才妄存卡者器访问(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 performance
4Bus,先进高性能总线)等高速总线来访问内存,即DMA控制器和低速DMA 请求模块之间的数据传输采用apb之类的低速总线,而dma控制器和内 存之间的数据传输采用ahb之类的高速总线。
由于一颗SOC芯片中要求DMA传输的低速模块的数目可能比较多, 每个DMA模块都通过总线连到总线仲裁器,导致较多的总线直接连接到总 线仲裁器,使得总线仲裁器有不必要的开销;此外,每一个DMA控制器与 总线仲裁器之间的总线访问接口中都需要一个单独的先入先出存储单元 (FIRST IN FIRST OUT, FIFO),这些存储单元无法在多个低速模块之间 共享,从而在一定程度上增加了存储器开销。

发明内容
有鉴于此,本发明提供了一种多通道DMA控制器,能够减少总线开销 和存储器开销,并具有很好的重用性。
本发明提供一种多通道DMA控制器,包括
多个DMA通道模块,所述每个DMA通道模块包括
数据緩冲存储及其控制模块,和外部DMA请求设备通信,用于进行 DMA数据传输;以及
控制寄存器模块,包括一组控制寄存器,与所述数据緩冲存储及其控 制模块通信,用于根据所述控制寄存器中预配置的数据对所述数据緩 冲存储及其控制模块的DMA数据传输进行控制;
多路复用模块,与所述每个DMA通道模块中的数据緩沖存储及其控制 模块通信,用于把所述多个DMA通道模块的DMA数据传输进行多路复用 后连接到外部总线接口。
进一步地,所述数据緩冲存储及其控制模块包括
第一緩冲存储^t块,用于存储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通道的信号和数据传输进行多 路选择后送到一个外部总线接口 ,包括把数据緩冲存储及其控制模块产生的读请求信号和写请求信号经多路复用后传送到外部总线接口进而再传送 到片上系统的总线仲裁模块进行总线仲裁。多路复用模块输出的总线接口 信号与外部总线接口采用的总线协议不 一致,可以在总线接口中把多路复 用模块输出的信号转换为符合总线协议的信号。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的 本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的 改变,都应包括在本权利要求书所涵盖的范围之内。
权利要求
1. 一种多通道DMA控制器,其特征在于,包括多个DMA通道模块,所述每个DMA通道模块包括数据缓冲存储及其控制模块,用于进行DMA数据传输;以及控制寄存器模块,包括一组控制寄存器,与所述数据缓冲存储及其控制模块通信,用于根据所述控制寄存器中预配置的数据对所述数据缓冲存储及其控制模块的DMA数据传输进行控制;多路复用模块,与所述每个DMA通道模块中的数据缓冲存储及其控制模块通信,用于把所述多个DMA通道模块的信号和数据进行多路复用后连接到外部总线接口。
2. 根据权利要求1所述的多通道DMA控制器,其特征在于,所述数据緩沖存储及其控制模块包括第一緩沖存储;漠块,用于存储DMA数据传输中的数据;緩沖存储控制模块,用于控制把来自外部DMA请求模块的数据写入所述第 一緩沖存储模块,并在所述第 一緩冲存储模块中的数据达到 一 定容量时,产生写请求信号,并把所述写请求信号经所述多路复用模块传输到外部总线接口 ;也用于控制把所述第一緩冲存储模块中的数据读出后送到外部DMA请求模块,并在所述第一緩冲存储模块中的数据达到一定容量时,产生读请求信号,并把所述读请求信号经所述多路复用模块传送到外部总线接口。
3. 根据权利要求1所述的多通道DMA控制器,其特征在于,所述每个DMA通道才莫块还包括DMA接口信号处理模块,外部DMA请求模块通过所述DMA接口信号处理模块与所述数据緩沖存储及其控制模块通信,所述DMA接口信号处理模块用于同步所述外部DMA请求模块和所述DMA接口信号处理模块之间的DMAJ妄口信号。
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或AXIJite。
全文摘要
本发明涉及一种多通道DMA控制器,该DMA控制器包括多个DMA通道模块和一个多路复用模块,每个DMA通道模块分别包括一个数据缓冲存储及其控制模块和一组控制寄存器,所有通道的数据缓冲存储及其控制模块都连接到一个多路复用模块,进一步,本发明的多通道DMA控制器的每个通道还包括一个DMA接口信号处理模块和总线接口处理模块。本发明的多通道DMA控制器能够降低片上系统上总线仲裁块和存储单元的开销,此外,增加或删减一个DMA通道只需增加或删减相应通道的模块,重用性好。
文档编号G06F13/28GK101504633SQ20091008075
公开日2009年8月12日 申请日期2009年3月27日 优先权日2009年3月27日
发明者李晓强 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1