一种基于海量数据传输的DMA控制器制造技术

技术编号:4270028 阅读:281 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于海量数据传输的DMA控制器,通过对公共寄存器及字节计数器、块计数器以及子块数计数器的配置可实现字节数据传输、块数据传输和子块数据传输。字节数据传输和子块数据传输适用于数据源缓存区和数据目的缓存区不同的情况,块数据传输,适用于数据源缓存区与数据目的缓存区相同的情况,通过改变其逻辑地址就完成了传送过程。采用本发明专利技术的技术方案使数据源缓冲区与数据目的缓冲区数据可以在一个节拍内完成数据传输,大大加快了DMA传输的数据量,提高了传输效率。

【技术实现步骤摘要】

本专利技术涉及一种DMA结构,尤其涉及一种基于海量数据传输的DMA控制器。
技术介绍
在含有中央处理器(CPU)的系统中,为了提高CPU的使用效率和数据传输速率,在 海量数据传输操作过程中,通常采用直接内存访问(Direct MemoryAccess Control, DMA) 的方式对数据进行操作。而DMA的操作是通过DMA控制器(DMA Controller,DMAC)来实现 的。DMA控制器有选择型和多路型两类,本专利技术涉及的DMA控制器为选择型,即物理上连接 有多个硬件,而逻辑上只允许一个硬件,即在某段时间内只能为一个硬件服务。 如图1所示,在现有传统DMA结构中,外设发起的DMA传输通常是从外设1的FIFO 中取数据放到外设2的FIFO中,外设发起的DMA传输通常是从外设的缓存中取数据放到总 线上的存储器中;例如当有外设需要进行DMA传输时,当其缓存装满数据后,其通过DMA请 求触发器想DMA控制器发起DMA传输请求。在此之前CPU已经将地址等控制信息配给DMA 控制器内的地址寄存器中,当DMA控制器接到DMA传输请求时,其向CPU发起总线占用请 求。CPU通常在执行完当前指令后将总线控制权交给DMA控制器。此时DMA控制器的控制、 状态寄存器发生变化,表明已获得总线控制权,开始进行DMA传输,传输中用一个计数器对 传输的数据量进行计算,并且每个时钟节拍只能传送1个字节。这虽然有效的避免了由CPU 重复取数、搬数所耗费的时间,但是对于海量数据传输来说,由于数据量大,逐字节的传送 仍然需要消耗很长时间,因此传输效率依然较低。另外,在现有的DMA传输中,如果外设比 如UART等仅有字节类型的缓存,则DMA控制器仅用总线的低8位进行传输,降低了总线的 利用率,并且DMA传输效率也比较低。
技术实现思路
本专利技术的技术解决问题是针对上述不足,提供一种基于海量数据传输的DMA控 制器,数据传输量大,并且传输速率高。 本专利技术的技术解决方案是一种基于海量数据传输的DMA控制器,包括总线接口、 寄存器组、状态机、存储器管理单元和数据缓存区,总线接口与控制器的总线相连,数据缓 存区连接两个外部设备;控制器通过总线接口对寄存器组进行配置管理,寄存器组的配置 结果控制状态机的工作状态,状态机根据状态机的工作状态控制存储器管理单元完成数据 缓存区与外部设备的数据交换; 所述寄存器组包括块数计数器、子块数计数器、字节计数器以及由数据源基址寄 存器、数据目的基址寄存器、数据地址增量寄存器、DMA状态寄存器和DMA控制寄存器构成 的公共寄存器; 所述控制器将寄存器组配置成三种配置结果,三种配置结果对应三种状态机的工 作状态,其中状态机的第一种工作状态是字节数据传输,状态机的第二种工作状态是块数 据传输,状态机的第三种工作状态是子块数据传输; 字节传输的配置方式为 数据源基址寄存器设置为输入数据缓冲区的首地址; 数据目的基址寄存器设置为输出数据缓冲区的首地址; 数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量 控制位和目的地址增量控制位分别设置为地址加1模式; DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位 设为0,即为字节传输方式; DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示DMA控制器正 在传送数据、DMA控制器暂停或者不活动、全部数据传送完成、全部数据未传送完成 和一子块传输完成的值; 块数计数器设置为1,即匿控制器A传输过程采用字节传输; 子块数计数器设置为1,即DMA控制器传输过程采用字节传输; 字节计数器设置为欲传送数据的字节数,即当次DMA控制器要传输的字节数; 块数据传输的配置方式为 数据源基址寄存器设置为输入数据缓冲区的首地址; 数据目的基址寄存器设置为输出数据缓冲区的首地址; 数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量 控制位和目的地址增量控制位分别设置为地址不改变; DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位 设为l,即为块传输方式; DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示DMA控制器正 在传送数据、DMA控制器暂停或者不活动、全部数据传送完成、全部数据未传送完成 和一子块传输完成的值; 块数计数器设置为欲传输数据的块数,每次DMA控制器传输过程完成一块数据的传输,此计数器中的值相应减1,当所有块数据传输完成后计数器的值为0 ; 子块数计数器设置为1,即每次DMA控制器传输过程中每块数据中包含唯一子块,当所有数据块传输完成后此计数器中的值为0 ; 字节计数器设置为每块数据所包含的字节数; 子块数传输的配置方式为 数据源基址寄存器设置为输入数据缓冲区的首地址; 数据目的基址寄存器设置为输出数据缓冲区的首地址; 数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量 控制位和目的地址增量控制位分别设置为地址不改变; DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位 设为2,即为子块传输方式; DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示DMA控制器正 在传送数据、DMA控制器暂停或者不活动、全部数据传送完成、全部数据未传送完成 和一子块传输完成的值; 块数计数器设置为欲传输数据的块数,DMA控制器传输过程每完成一个数据块的传输,此计数器中的值相应减1,当所有块数据传输完成后此计数器中的值为0 ; 子块数计数器设置为每块数据所包含的子块个数,每次DMA控制器传输过程仅完 成一子块数据的传输,该计数器中的值相应减1,当所有子数据块传输完成后该计数器的值 为O,该计数器中的值为0时表示一块数据传输完成; 字节计数器设置为子块数据所包含的字节数。 —种基于海量数据传输的DMA控制器,包括两个总线接口 、寄存器组、存储器管理 单元、数据缓存区和状态机;两个总线接口的一端与控制器的总线相连,其中一个总线接口 的另一端连接寄存器组,另外一个总线接口的另一端连接存储器管理单元,数据缓存区连 接两个外部设备;控制器对寄存器组进行配置管理,寄存器组的配置结果控制状态机的工 作状态,状态机根据状态机的工作状态通过另外一个总线接口控制存储器管理单元完成数 据缓存区与外部设备的数据交换; 所述寄存器组包括块数计数器、子块数计数器、字节计数器以及由数据源基址寄 存器、数据目的基址寄存器、数据地址增量寄存器、DMA状态寄存器和DMA控制寄存器构成 的公共寄存器; 所述控制器将寄存器组配置成三种配置结果,三种配置结果对应三种状态机的工 作状态,其中状态机的第一种工作状态是字节数据传输,状态机的第二种工作状态是块数 据传输,状态机的第三种工作状态是子块数据传输; 字节传输的配置方式为 数据源基址寄存器设置为输入数据缓冲区的首地址; 数据目的基址寄存器设置为输出数据缓冲区的首地址; 数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量 控制位和目的地址增量控制位分别设置为地址加1模式; DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位 设为0,即为字节传输方式; D本文档来自技高网
...

【技术保护点】
一种基于海量数据传输的DMA控制器,其特征在于:包括总线接口、寄存器组、状态机、存储器管理单元和数据缓存区,总线接口与控制器的总线相连,数据缓存区连接两个外部设备;控制器通过总线接口对寄存器组进行配置管理,寄存器组的配置结果控制状态机的工作状态,状态机根据状态机的工作状态控制存储器管理单元完成数据缓存区与外部设备的数据交换;所述寄存器组包括:块数计数器、子块数计数器、字节计数器以及由数据源基址寄存器、数据目的基址寄存器、数据地址增量寄存器、DMA状态寄存器和DMA控制寄存器构制位,源地址增量控制位和目的地址增量控制位分别设置为地址不改变;DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位设为2,即为子块传输方式;DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示“DMA控制器正在传送数据”、“DMA控制器暂停或者不活动”、“全部数据传送完成”、“全部数据未传送完成”和“一子块传输完成”的值;块数计数器设置为欲传输数据的块数,DMA控制器传输过程每完成一个数据块的传输,此计数器中的值相应减1,当所有块数据传输完成后此计数器中的值为0;子块数计数器设置为每块数据所包含的子块个数,每次DMA控制器传输过程仅完成一子块数据的传输,该计数器中的值相应减1,当所有子数据块传输完成后该计数器的值为0,该计数器中的值为0时表示一块数据传输完成;字节计数器设置为子块数据所包含的字节数。成的公共寄存器;所述控制器将寄存器组配置成三种配置结果,三种配置结果对应三种状态机的工作状态,其中状态机的第一种工作状态是字节数据传输,状态机的第二种工作状态是块数据传输,状态机的第三种工作状态是子块数据传输;字节传输的配置方式为:数据源基址寄存器设置为输入数据缓冲区的首地址;数据目的基址寄存器设置为输出数据缓冲区的首地址;数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量控制位和目的地址增量控制位分别设置为地址加1模式;DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位设为0,即为字节传输方式;DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示“DMA控制器正在传送数据”、“DMA控制器暂停或者不活动”、“全部数据传送完成”、“全部数据未传送完成”和“一子块传输完成”的值;块数计数器设置为1,即DM控制器A传输过程采用字节传输;子块数计数器设置为1,即DM...

【技术特征摘要】
一种基于海量数据传输的DMA控制器,其特征在于包括总线接口、寄存器组、状态机、存储器管理单元和数据缓存区,总线接口与控制器的总线相连,数据缓存区连接两个外部设备;控制器通过总线接口对寄存器组进行配置管理,寄存器组的配置结果控制状态机的工作状态,状态机根据状态机的工作状态控制存储器管理单元完成数据缓存区与外部设备的数据交换;所述寄存器组包括块数计数器、子块数计数器、字节计数器以及由数据源基址寄存器、数据目的基址寄存器、数据地址增量寄存器、DMA状态寄存器和DMA控制寄存器构成的公共寄存器;所述控制器将寄存器组配置成三种配置结果,三种配置结果对应三种状态机的工作状态,其中状态机的第一种工作状态是字节数据传输,状态机的第二种工作状态是块数据传输,状态机的第三种工作状态是子块数据传输;字节传输的配置方式为数据源基址寄存器设置为输入数据缓冲区的首地址;数据目的基址寄存器设置为输出数据缓冲区的首地址;数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量控制位和目的地址增量控制位分别设置为地址加1模式;DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位设为0,即为字节传输方式;DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示“DMA控制器正在传送数据”、“DMA控制器暂停或者不活动”、“全部数据传送完成”、“全部数据未传送完成”和“一子块传输完成”的值;块数计数器设置为1,即DM控制器A传输过程采用字节传输;子块数计数器设置为1,即DMA控制器传输过程采用字节传输;字节计数器设置为欲传送数据的字节数,即当次DMA控制器要传输的字节数;块数据传输的配置方式为数据源基址寄存器设置为输入数据缓冲区的首地址;数据目的基址寄存器设置为输出数据缓冲区的首地址;数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量控制位和目的地址增量控制位分别设置为地址不改变;DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位设为1,即为块传输方式;DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示“DMA控制器正在传送数据”、“DMA控制器暂停或者不活动”、“全部数据传送完成”、“全部数据未传送完成”和“一子块传输完成”的值;块数计数器设置为欲传输数据的块数,每次DMA控制器传输过程完成一块数据的传输,此计数器中的值相应减1,当所有块数据传输完成后计数器的值为0;子块数计数器设置为1,即每次DMA控制器传输过程中每块数据中包含唯一子块,当所有数据块传输完成后此计数器中的值为0;字节计数器设置为每块数据所包含的字节数;子块数传输的配置方式为数据源基址寄存器设置为输入数据缓冲区的首地址;数据目的基址寄存器设置为输出数据缓冲区的首地址;数据地址增量寄存器分为源地址增量控制位和目的地址增量控制位,源地址增量控制位和目的地址增量控制位分别设置为地址不改变;DMA控制寄存器包含启动控制位、暂停控制位和传输方式控制位,传输方式控制位设为2,即为子块传输方式;DMA状态寄存器,用于查询DMA控制器当前的活动状态,包括表示“DMA控制器正在传送数据”、“DMA控制器暂停或者不活动”、“全部数据传送完成”、“全部数据未传送完成”和“一子块传输完成”的值;块数计数器设置为欲传输数据的块数,DMA控制器传输过程每完成一个数据块的传输,此计数器中的值相应减1,当所有块数据传输完成后此计数器中的值为0;子块数计数器设置为每块数据所包含的子块个数,每次DMA控制器传输过程仅完成一子块数据的传输,该计数器中的值相应减1,当所有子数据块传输完成后该计数器的值为0,该计数器中的值为0时表示一块数据传输完成;字节计数器设置为子块数据所包含的字节数。2. —种基于海量数据传输的DMA控制器,其特征在于包括两个总线接口、寄存器组、 存储器管理单元、数据缓存区和状态机;两个总线接口的一端与控制器的总线相连,其中一 个总线接口的另一端连接寄存器组,另外一个总线接口的另一端连接存储器管理单元,数 据缓存区连接两个外部设备;控制器对寄存器组进行配置管理,寄存器组的配置结果控制 状态机的工作状态,状态机根据状态机的工作状态通过另外一个总线接口控制存储器管理 单元完成数据缓存区与外部设备的数据交换;所述寄存器组包括块数计数器、子块数计数器、字节计数器以及由数据源基址寄存 器、数据目的基址寄存器、数据地址增量寄存器、DMA状态寄存器和DMA控制寄存器构成的 公共寄存器;所述控制器将寄存器组配置成三种配置结果,三种配置结果对应三种状态机的工作状 态,其中状态机...

【专利技术属性】
技术研发人员:宗宇谢俊玲张志永
申请(专利权)人:北京时代民芯科技有限公司中国航天科技集团公司第九研究院第七七二研究所
类型:发明
国别省市:11[中国|北京]

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

1