多通道直接存储器存取控制器制造技术

技术编号:8626025 阅读:215 留言:0更新日期:2013-04-25 23:07
本发明专利技术公开了一种多通道DMA控制器,在DMA控制器中设置若干个DMA通道和数据传输单元,将数据传输的控制操作和数据搬运工作分离开来,由若干个DMA通道处理DMA数据传输的控制操作,各个DMA通道进行BD管理操作和生成传输指令操作,由一个数据传输单元处理全部的DMA数据传输的数据搬运工作,数据传输单元对来自若干个DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令,在CPU内存和外设缓存之间传输数据,能够在DMA通道中形成数据传输的控制操作的流水作业,在数据传输单元中形成数据传输的数据搬运操作的流水作业,能够提高DMA控制器的数据传输速度,适用于高速数据传输的应用场景。

【技术实现步骤摘要】

本专利技术涉及数据通信领域,具体地,涉及一种多通道直接存储器存取控制器
技术介绍
直接存储器存取(DMA,Direct Memory Access)是一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,整个数据传输操作在DMA控制器的控制下进行,在传输过程中不需要中央处理器(CPU, Central ProcessUnit)的干预,CPU可以进行其他工作,从而极大地提高了 CPU的运行效率。图1a是现有技术中典型的DMA系统的结构框图。CPU、DMA控制器、片内外存储器(包括片内RAM、RAM控制器、片内Flash、Flash控制器、片外存储器、存储器控制器)和高速I/O连接在高速总线上,各种低速外设(包括低速外设1、低速外设2、低速外设3)连接在低速总线上,并且通过总线桥和高速总线相连。总线上的设备如果要进行DMA传输,则向DMA控制器发起请求,DMA控制器在获得总线使用权后,控制在CPU内存和其它设备进行数据传输,并在传输结束后归还总线使用权。DMA传输过程中无需CPU参与,节省CPU的额外开销。中国专利(申请号200910080751,公开号101504633)公开了一种多通道DMA控制器,该DMA控制器包括多个DMA通道模块和一个多路复用模块,每个DMA通道模块分别包括一个数据缓冲存储及其控制模块和一组控制寄存器,所有通道的数据缓冲存储及其控制模块都连接到一个多路复用模块。这种DMA控制器可以在一定程度上降低片上系统上总线仲裁块和存储单元的开销,并提高系统的重用性。但是,在该中国专利的技术方案中,每个DMA通道均执行数据控制和数据传输工作,具体地,DMA通道对需读取的数据生成读取数据请求,并向CPU内存发送读取数据请求后,必须等到CPU内存返回所请求读取的数据,才能进行下一个生成读取数据请求的操作,但是,CPU内存返回数据通常会存在时延,这就造成数据传输速度慢的问题,导致该DMA控制器不适合高速数据传输的应用场景。
技术实现思路
有鉴于此,本专利技术实施例提供了一种多通道DMA控制器,用以解决现有技术中的DMA控制器的传输速度慢、不适合高速数据传输应用场景的问题。本专利技术实施例技术方案如下一种DMA控制器,包括若干个DMA通道和数据传输单元;所述DMA通道,用于接收到来自中央处理器CPU的缓存标识符(BD,Buffer Descriptor)更新消息后,从CPU内存中读取BD,根据BD和外设缓存中的数据存储情况,生成传输指令;所述数据传输单元,用于对来自若干个所述DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令、在所述CPU内存和所述外设缓存之间传输数据。本专利技术实施例通过在DMA控制器中设置若干个DMA通道和数据传输单元,将数据传输的控制操作和数据传输的数据搬运工作分离开来,也即由若干个DMA通道处理DMA数据传输的控制操作,具体地,各个DMA通道进行BD管理操作和生成传输指令操作,由一个数据传输单元处理全部的DMA数据传输的数据搬运工作,具体地,数据传输单元对来自若干个DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令,在CPU内存和外设缓存之间传输数据,可见,数据传输单元执行的数据控制操作不必依赖于数据传输单元执行的数据搬运操作,能够在DMA通道侧形成数据传输的控制操作的流水作业,数据传输单元依次对来自若干个DMA通道的传输指令进行处理,在数据传输单元侧形成数据传输的数据搬运操作的流水作业,进而能够提高DMA控制器的数据传输速度,能够适用于高速数据传输的应用场景。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明图1a是现有技术中典型的DMA系统的结构框图;图1b是本专利技术实施例提供的多通道DMA控制器的结构框图;图1c是图1b所示多通道DMA控制器的工作流程图;图2是图1b所示的多通道DMA控制器的优选结构框图;图3是图2所示的多通道DMA控制器的优选结构框图;图4是图3中的下行指令生成模块的工作流程图;图5是图3中的读数据模块对下行数据的处理工作流程图;图6是图3中的下行回写模块的工作流程图;图7是图2所示的多通道DMA控制器的另一优选结构框图;图8是图7中的上行指令生成模块的工作流程图;图9是图7中的写数据模块对上行数据的处理工作流程图;图10是图7中的上行回写模块的工作流程图。具体实施例方式以下结合附图对本专利技术的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。本专利技术实施例针对现有技术中的DMA控制器数据传输速度慢、不适用于高速数据传输的应用场景的问题,提出一种多通道DMA控制器,以解决该问题。本专利技术实施例将DMA数据传输的控制操作和数据搬运工作分离开来,在DMA控制器中设置若干个DMA通道和数据传输单元,DMA通道处理DMA数据传输的控制操作,即生成用于指示如何进行数据搬运的传输指令,由数据传输单元处理DMA数据传输的数据搬运工作,即根据传输指令进行具体的数据搬运操作,DMA通道的控制操作不依赖于数据传输单元的数据搬运工作,能够在DMA通道侧形成控制操作的流水作业,数据传输单元依次对来自若干个DMA通道的传输指令进行处理,在数据传输单元侧形成数据搬运操作的流水作业,进而能够提高DMA控制器的数据传输速度,能够适用于高速数据传输的应用场景。下面详细说明本专利技术实施例提供的多通道DMA控制器。图1b示出了本专利技术实施例提供的多通道DMA控制器的结构框图,该多通道DMA控制器包括若干个DMA通道11和数据传输单元12。DMA通道11,用于接收到来自CPU的BD更新消息后,从CPU内存中读取BD,根据BD和外设缓存中的数据存储情况,生成传输指令;数据传输单元12,连接至DMA通道11,用于对来自若干个DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令、在CPU内存和外设缓存之间传输数据。图1c所示多通道DMA控制器的工作流程图,如图1c所示,包括步骤101、若干个DMA通道11分别接收到来自CPU的BD更新消息后,从CPU内存中读取BD,并分别根据读取的BD和外设缓存中的数据存储情况,生成传输指令;步骤102、数据传输单元12接收来自各个DMA通道11的传输指令,对接收到的若干个传输指令进行仲裁,得到对传输指令的排序顺序;步骤103、数据传输单元12根据仲裁得到的排序顺序,依次执行各个传输指令、在CPU内存和外设缓存之间传输数据。通过如图1b所示的多通道DMA控制器和图1c所示的工作原理,能够将DMA数据传输的控制操作和数据传输的数据搬运工作分离开来,也即由若干个DMA通道处理数据传输的控制操作,由数据传输单元处理DMA数据传输的数据搬运工作,DMA通道的控制操作不依赖于数据传输单元的数据搬运 工作,并且数据传输单元对来自若干个DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令所指示的数据搬运操作,DMA通道不必等数据传输单元的数据搬运操作结束后再进行下一次控制操作,能够在DMA通道侧本文档来自技高网
...

【技术保护点】
一种多通道直接存储器存取DMA控制器,其特征在于,包括:若干个DMA通道和数据传输单元;所述DMA通道,用于接收到来自中央处理器CPU的缓存标识符BD更新消息后,从CPU内存中读取BD,根据BD和外设缓存中的数据存储情况,生成传输指令;所述数据传输单元,用于对来自若干个所述DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令、在所述CPU内存和所述外设缓存之间传输数据。

【技术特征摘要】
1.一种多通道直接存储器存取DMA控制器,其特征在于,包括若干个DMA通道和数据传输单兀; 所述DMA通道,用于接收到来自中央处理器CPU的缓存标识符BD更新消息后,从CPU内存中读取BD,根据BD和外设缓存中的数据存储情况,生成传输指令; 所述数据传输单元,用于对来自若干个所述DMA通道的传输指令进行仲裁,根据仲裁得到的排序顺序,依次执行各个传输指令、在所述CPU内存和所述外设缓存之间传输数据。2.根据权利要求1所述的多通道DMA控制器,其特征在于,所述传输指令包括读指令;则, 所述DMA通道,具体包括下行通道,用于在接收到来自CPU的BD更新消息后,从所述CPU内存中读取BD,根据读取的BD中的读取数据长度信息和所述外设缓存中所存储的已接收数据的数据量大小,生成所述读指令; 所述数据传输单元,具体包括读数据模块,用于对来自若干个所述DMA通道的下行通道的读指令进行仲裁,根据仲裁得到的排序顺序,依次根据各个读指令从所述CPU内存中读出相应的数据,并将读出的数据发送给所述外设缓存。3.根据权利要求2所述的多通道DMA控制器,其特征在于,所述下行通道,具体包括 下行读BD模块,用于在接收到来自CPU的BD更新消息后,从所述CPU内存中读取若干个BD,并保存读取的若干个BD ; 下行指令生成模块,用于根据所述下行读BD模块读取的BD中的读取数据长度信息和所述外设缓存中所存储的已接收数据的数据量大小,生成所述读指令。4.根据权利要求3所述的多通道DMA控制器,其特征在于,所述下行指令生成模块,具体用于执行读取当前BD操作、判断操作、生成读指令操作和发送读指令操作;其中, 读取当前BD操作在当前时间片内,在所述下行指令生成模块中具有空闲存储空间的情况下,从所述下行读BD模块中获取一个BD作为当前BD ; 判断操作判断对比条件是否成立,对比条件为对比当前BD中的读取数据长度信息所示的数据长度和所述下行指令生成模块中存储的已经对应生成读指令的各个BD中的读取数据长度信息所示的数据长度之和,是否小于所述外设缓存中与该DMA通道的下行通道相对应的存储空间中的空闲存储空间的大小,在判断对比条件成立的情况下,执行生成读指令操作,否则,继续等待,直到对比条件成立; 生成读指令操作生成与当前BD对应的读指令,在读指令中携带当前BD中的读取数据长度信息和当前BD中的读取数据的地址信息;并在所述下行指令生成模块中保存当前BD ; 发送读指令操作将生成的与当前BD对应的读指令发送给所述读数据模块。5.根据权利要求4所述的多通道DMA控制器,其特征在于,所述读数据模块,具体用于 对于仲裁得到的排序顺序中的当前读指令,根据当前读指令中的地址信息和读取数据长度信息,从所述CPU内存中相应地址的存储空间中读出相应长度的数据,并将读出的数据发送到所述外设缓存中与发送当前读指令的DMA通道相对应的存储空间中。6.根据权利要求4所述的多通道DMA控制器,其特征在于,所述读数据模块,还用于对于仲裁得到的排序顺序中的当前读指令,轮询到当前读指令时,向发送当前读指令的DMA通道的下行通道反馈读响应;在从所述CPU内存中读出数据并发送给所述外设缓存后,还向发送当前读指令的DMA通道的下行通道反馈读完成响应;则, 所述下行通道,还包括下行回写模块;其中, 所述下行指令生成模块,还用于在接收到来自所述读数据模块的读响应之后,在所述下打指令生成1旲块中保存当如BD ;在接收到来自所述读数据|旲块的读完成响应之后,从所述下行指令生成模块保存的BD中取出一个BD发送给所述下行回写模块; 所述下行回写模块,用于将接收到的BD中的控制权信息改写为CPU,将改写后的BD发送给所述CPU内存。7.根据权利要求6所述的多通道DMA控制器,其特征在于...

【专利技术属性】
技术研发人员:王瑶宝
申请(专利权)人:福建星网锐捷网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1