【技术实现步骤摘要】
本专利技术涉及数据通信领域,具体地,涉及一种多通道直接存储器存取控制器。
技术介绍
直接存储器存取(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控制器,其特征在于,包括:若干个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控制器,其特征在于...
【专利技术属性】
技术研发人员:王瑶宝,
申请(专利权)人:福建星网锐捷网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。