可直连外设设备的自启动dma装置及应用

文档序号:190295 发布日期:2021-11-02 浏览:48次 >En<

阅读说明:本技术 可直连外设设备的自启动dma装置及应用 (Self-starting DMA device capable of directly connecting peripheral equipment and application ) 是由 张格毅 袁力 胡扬央 于 2021-07-30 设计创作,主要内容包括:本发明公开了可直连外设设备的自启动DMA装置及应用,涉及DMA数据处理技术领域。所述自启动DMA装置包括DMA控制器、监测模块和数据整理模块,监测模块用于监测外设低速总线上外设设备的数据传输请求信息,并在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求;数据整理模块不经过前述外设低速总线直接连接前述外设设备,用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。本发明能够避免因外设设备请求过多导致的低速总线拥堵,提高了系统的数据处理性能。(The invention discloses a self-starting DMA device capable of being directly connected with peripheral equipment and application thereof, and relates to the technical field of DMA data processing. The self-starting DMA device comprises a DMA controller, a monitoring module and a data sorting module, wherein the monitoring module is used for monitoring data transmission request information of peripheral equipment on a peripheral low-speed bus and sending a data direct carrying self-starting request aiming at the peripheral equipment when judging that the data transmission request information reaches a preset quantity threshold; the data sorting module is directly connected with the peripheral equipment without passing through the peripheral low-speed bus, and is used for sorting the stored data in the peripheral equipment initiating the data transmission request when receiving the direct data carrying self-starting request, and carrying the sorted data to a system memory through the high-speed bus. The invention can avoid the low-speed bus congestion caused by excessive requests of peripheral equipment and improve the data processing performance of the system.)

可直连外设设备的自启动DMA装置及应用

技术领域

本发明涉及DMA数据处理技术领域。

背景技术

DMA(Direct Memory Access,直接存储器访问,或称直接存储器存取)传输是一种代替处理器完成存储器与外设设备之间数据传输的技术,DMA允许例如来自外设设备的数据被转移到存储器而不需要处理器干预,使得处理器能够并行地执行其它任务。具体的,在实现DMA传输时,数据转移任务由DMA装置中的DMA控制器来实行和完成,此时, CPU除了在数据传输开始和结束时做处理外(开始和结束时候要做中断处理),在外设设备和CPU进行数据传输的过程中,CPU可以执行其他任务。DMA控制器实质上是一个设置在外设设备和系统总线之间的硬件接口电路,通常可以包括内存地址计数器、字计数器、数据缓冲寄存器、DMA请求标志模块、控制/状态逻辑模块和中断模块。所述内存地址计数器用于存放内存中要交换的数据的地址。所述字计数器用于记录传送数据块的长度。所述数据缓冲寄存器用于暂存每次传送的数据。所述DMA请求标志模块被配置为:每当外部设备准备好一个数据后给出一个控制信号,使这个标志位置1。具体的,所述控制/状态逻辑模块在接收到CPU发回的响应信号HLDA后发出DMA响应信号,并把DMA请求标志复位,为交换下一个字做准备,该控制/状态逻辑模块由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对DMA请求信号和CPU响应信号进行协调和同步。在字计数器溢出时,判定一组数据交换完毕并发出溢出信号以触发前述中断模块,中断模块向CPU提出中断报告。

目前,外设设备一般是通过低速总线与CPU进行通信的。作为典型方式的举例,参见图1所示,DMA装置位于高速总线与低速总线之间,所有外设设备都挂载在低速总线上,运行速度较快的内部模块则挂载在系统高速总线上,内部模块访问外设设备时通常需要通过低速总线进行访问。一方面,随着电子设备的功能越来越强大,低速总线上挂载的外设设备数量也越来越多,随着外设设备数量增加,当多个外设设备同时发出数据传输的请求时,由于低速总线的性能上限不够,可能造成低速总线的拥堵,使得外设设备的数据无法及时经过低速总线,导致整体系统的处理性能下降。另一方面,传统DMA装置的功能较为单一,在进行数据搬运时需要CPU或其他关联模块发送数据搬运的操作请求,不能自发地进行启动数据搬运。

发明内容

本发明的目的在于:克服现有技术的不足,提供了一种可直连外设设备的自启动DMA装置及应用。本发明提供的DMA装置能够监测低速总线上的数据传输请求信息,并在外设设备请求数量达到预设阈值时,直接跳过低速总线将外设设备的数据经过数据整理后搬运至系统存储器内,本发明能够避免因外设设备请求过多导致的低速总线拥堵,提高了系统的数据处理性能。

为实现上述目标,本发明提供了如下技术方案:

一种可直连外设设备的自启动DMA装置,包括DMA控制器、监测模块和数据整理模块,所述监测模块连接外设低速总线,外设低速总线上连接有多个外设设备,所述数据整理模块通过高速总线连接CPU;

所述监测模块用于监测外设低速总线上外设设备的数据传输请求信息,并判断外设低速总线上的数据传输请求的数量是否达到预设数量阈值,在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求;

所述数据整理模块不经过前述外设低速总线直接连接前述外设设备,用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。

进一步,自启动DMA装置还可以获取上位机针对目标外设设备发出的数据直接搬运自启动请求,触发数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

进一步,所述数据整理模块包括数据打包单元、数据存储地址分配单元和数据搬运单元;

所述数据打包单元,用于将需要进行数据直接搬运的外设设备中的存储数据按照前述高速总线要求的数据结构进行打包处理,形成数据结构统一的处理后数据;

所述数据存储地址分配单元,用于针对前述处理后数据,分配用于存储该数据的系统存储器的存储地址信息;

所述数据搬运单元,用于根据前述分配的存储地址信息,将前述处理后数据通过前述高速总线写入到系统存储器中的对应地址上。

进一步,所述系统存储器为DRAM,对应各个外设设备在前述DRAM中分配有对应的存储区域,不同的存储区域对应有不同的地址信息。

进一步,所述数据整理模块包括数据路径和地址路径;所述数据路径连接到前述高速总线,用于通过前述高速总线将数据搬运到所述系统存储器;所述地址路径连接到前述高速总线,用于针对被搬运到前述高速总线的数据,指示要存储所述数据的存储区域对应的地址信息。

进一步,所述数据整理模块通过req和ack信号握手的方式与所述外设设备进行通讯,数据整理模块在获取外设设备的数据期间发出ack信号;

当前述外设设备的数据存储在FIFO中时,通过多次重复读取来获取外设设备的完整数据,数据读取期间外设设备保持发送req信号,全部数据读取完成后通过数据整理模块的数据打包单元对多次读取的零散数据进行数据打包处理。

进一步,所述数据整理模块还被配置为:

获取外设设备进行数据打包处理后的数据包大小,比对前述数据包大小与预设的数据量阈值,当前述数据包大小未达到预设的数据量阈值,暂存前述外设设备的数据包;

等待下一个外设设备的数据包,与前述暂存的数据包进行数据包的总数据量计算,并将计算的总数据量与前述数据量阈值进行比对;判定总数据量的大小达到前述数据量阈值时,将前述各个外设设备的数据包一同打包后搬运到前述DRAM中,再根据前述各个外设设备分配的存储区域,将数据包中的数据写入对应存储区域的地址上;否则,继续暂存数据包,返回执行前述等待下一个外设设备的数据包的步骤。

本发明还提供了一种基于DMA的数据处理系统,包括CPU、系统存储器、DMA装置、高速总线和外设低速总线,所述CPU和系统处理器通过高速总线连接DMA装置,所述外设低速总线上连接有多个外设设备,所述CPU和系统处理器通过外设低速总线连接外设设备;

所述DMA装置为前述的自启动DMA装置。

本发明还提供了一种根据前述自启动DMA装置的数据处理方法,包括如下步骤:

监测外设低速总线上外设设备的数据传输请求信息;

判断数据传输请求的数量是否达到预设数量阈值;

在判定达到预设数量阈值时,发出针对外设设备的数据直接搬运自启动请求;

根据前述数据直接搬运自启动请求,触发数据整理模块对发起前述数据传输请求的外设设备中的存储数据进行数据整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

本发明还提供了一种DMA控制器,包括监测模块和数据整理模块,所述监测模块连接外设低速总线,外设低速总线上连接有多个外设设备,所述数据整理模块通过高速总线连接CPU;

所述监测模块用于监测外设低速总线上外设设备的数据传输请求信息,并判断外设低速总线上的数据传输请求的数量是否达到预设数量阈值,在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求;

所述数据整理模块不经过前述外设低速总线直接连接前述外设设备,用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。

本发明由于采用以上技术方案,与现有技术相比,作为举例,具有以下的优点和积极效果:本发明提供的DMA装置能够监测低速总线上的数据传输请求信息,在外设设备请求数量达到预设阈值时,直接跳过低速总线将外设设备的数据经过数据整理后搬运至系统存储器内,本发明能够避免因外设设备请求过多导致的低速总线拥堵,提高了系统的数据处理性能。同时,如果后期系统内的内部模块需要处理上述外设设备数据,能够直接经过内部的高速总线从系统存储器内获得前述外设设备数据,提高了系统的处理效率。

另一方面,所有外设设备均通过req和ack信号握手的方式与DMA装置进行通讯,DMA装置通过数据整理模块获取外设设备的数据后发出ack信号。

另一方面,当外设设备的数据存储在FIFO中,可以通过多次重复读取来获取外设设备的完整数据,数据读取期间外设设备保持发送req信号,全部数据读取完成后对零散数据进行数据打包操作。

另一方面,可以暂存外设设备中获取的数据,基于预设的数据量阈值,当进行数据打包处理的外设设备的数据量达到前述数据量阈值时,再一同打包后分配至DRAM内不同的对应存储区域,如此,可以在收集足够数据后再统一向DRAM中写入,提高了向DRAM中搬运数据的效率。

附图说明

图1为现有技术中的DMA装置的示意性框图。

图2为本发明实施例提供的自启动DMA装置的示意性框图。

图3为本发明实施例提供的数据整理模块与外设设备的通讯示意图。

图4为本发明实施例提供的数据打包和搬运的信息处理示意图。

图5为本发明实施例提供的基于DMA的数据处理方法的流程图。

具体实施方式

以下结合附图和具体实施例对本发明公开的可直连外设设备的自启动DMA装置及应用作进一步详细说明。应当注意的是,下述实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。在下述实施例的附图中,各附图所出现的相同标号代表相同的特征或者部件,可应用于不同实施例中。因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

需说明的是,本说明书所附图中所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定发明可实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在不影响发明所能产生的功效及所能达成的目的下,均应落在发明所揭示的技术内容所能涵盖的范围内。本发明的优选实施方式的范围包括另外的实现,其中可以不按所述的或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

实施例

参见图2所示,提供了一种可直连外设设备的自启动DMA装置,自启动DMA装置设置在系统的高速总线和低速总线之间。所述高速总线作为系统内部总线,用于挂载运行速度较快的内部模块。所述低速总线用于挂载外设设备,也可称为外设低速总线,即用于挂载外设设备的低速总线。

所述自启动DMA装置包括DMA控制器、监测模块和数据整理模块。

所述监测模块连接外设低速总线,外设低速总线上连接有多个外设设备。所述数据整理模块通过高速总线连接CPU(central processing unit,中央处理器)。

所述监测模块,用于监测前述外设低速总线上外设设备的数据传输请求信息,并判断外设低速总线上的数据传输请求的数量是否达到预设数量阈值,在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求。

所述的预设数量阈值可以由系统默认设置,也可以由用户根据需要进行个性化设置,在此不做限制。

所述数据整理模块不经过前述外设低速总线直接连接前述外设设备。所述数据整理模块用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。

所述系统存储器可以为DRAM(Dynamic Random Access Memory,动态随机存取存储器),DRAM通过高速总线连接DMA装置。

可选的,所述自启动DMA装置还可以获取上位机针对目标外设设备发出的数据直接搬运自启动请求,触发数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

本实施例提供的上述技术方案,DMA装置可以不经过上位机请求自动发起并进行数据搬运。一方面,可以在外设设备发起的数据传输请求的数量达到预设数量阈值时,自启动搬运数据,即,触发前述数据整理模块对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至DRAM中。另一方面,也可以是上位机(比如CPU,或者其它连接DMA装置的主设备)直接向DMA装置发出针对前述某一个或多个外设设备(即目标外设设备)的数据直接搬运自启动请求;DMA装置在接收到前述数据直接搬运自启动请求时,自启动搬运数据,即,触发前述数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至DRAM中。

本实施例中,需要对多个外设设备的存储数据进行搬运,考虑到不同外设设备的数据结构类型可能不同,数据获取方式和时间也可能不同,由于跳过了低速总线,因此在搬运时需要对各外设设备的数据进行处理。

所述的处理,优选为将需要搬运的外设设备的数据形成统一并符合高速总线要求的数据结构。具体的,所述数据整理模块还可以包括数据打包单元、数据存储地址分配单元和数据搬运单元。

所述数据打包单元,用于将需要进行数据直接搬运的外设设备中的存储数据按照前述高速总线要求的数据结构进行打包处理,形成数据结构统一的处理后数据。

所述数据存储地址分配单元,用于针对前述处理后数据,分配用于存储该数据的DRAM的存储地址信息。

所述数据搬运单元,用于根据前述分配的存储地址信息,将前述处理后数据通过前述高速总线写入到DRAM中的对应地址上。

本实施例中,优选的,对应各个外设设备在前述DRAM中分配有对应的存储区域,不同的存储区域对应有不同的地址信息。

所述数据整理模块包括有数据路径和地址路径。所述数据路径连接到前述高速总线,用于通过前述高速总线将数据搬运到所述DRAM。所述地址路径连接到前述高速总线,用于针对被搬运到前述高速总线的数据,指示要存储所述数据的存储区域对应的地址信息。此时,针对各个外设设备,所述地址路径能够指示各外设设备的数据的存储区域对应的地址信息,以便前述数据搬运单元能够根据指示的存储区域的地址信息,将各外设设备的处理后数据通过前述高速总线分别写入到对应的存储区域的地址上。

本实施例中,所述数据整理模块可以通过req和ack信号握手的方式与所述外设设备进行通讯,数据整理模块在获取外设设备的数据期间发出ack信号,而不是在外设设备的数据传输完成后才发出ack信号。

考虑到一些外设设备的数据是存储在FIFO中的,需要多次重复读取数据才能获得完整的数据,期间会一直发出req信号,数据整理模块获得全部数据后将其打包。

具体的,参见图3所示,当前述外设设备的数据存储在FIFO中时,通过多次重复读取来获取外设设备的完整数据,数据读取期间外设设备保持发送req信号,全部数据读取完成后通过数据整理模块的数据打包单元对多次读取的零散数据进行数据打包处理。

进一步,考虑到向DRAM中搬运数据的效率,可以暂存外设设备中获取的数据,基于预设的数据量阈值,当进行数据打包处理的外设设备的数据量达到前述数据量阈值时,再一同打包后分配至DRAM内不同的对应存储区域,如此,可以在收集足够数据后再统一向DRAM中写入,提高了向DRAM中搬运数据的效率。

具体的,所述数据整理模块还可以被配置为:获取外设设备进行数据打包处理后的数据包大小,比对前述数据包大小与预设的数据量阈值,当前述数据包大小未达到预设的数据量阈值,暂存前述外设设备的数据包;等待下一个外设设备的数据包,与前述暂存的数据包进行数据包的总数据量计算,并将计算的总数据量与前述数据量阈值进行比对;判定总数据量的大小达到前述数据量阈值时,将前述各个外设设备的数据包一同打包后搬运到前述DRAM中,再根据前述各个外设设备分配的存储区域,将数据包中的数据写入对应存储区域的地址上;否则,继续暂存数据包,返回执行前述等待下一个外设设备的数据包的步骤。

作为典型方式的举例而非限制,参见图4所示,比如首先获取了外设设备1进行数据打包处理后的数据包Package1,比对前述数据包Package1与预设的数据量阈值,当Package1的数据量大小未达到预设的数据量阈值时,暂存Package1。

等待下一个外设设备——比如外设设备2的数据包Package2,将Package2与前述暂存的数据包Package1进行数据包的总数据量计算(即和运算),并将计算的总数据量与前述数据量阈值进行比对。判定总数据量的大小达到前述数据量阈值时,将前述外设设备1和外设设备2的数据包Package1和Package2一同打包后搬运到前述DRAM中,再根据前述各个外设设备分配的存储区域——比如外设设备1对应的存储区域地址为Addr11,外设设备2对应的存储区域地址为Addr22,将数据包Package1和Package2中的数据分别写入对应存储区域的地址Addr11和Addr22上。

否则,继续暂存数据包Package2,返回执行前述等待下一个外设设备的数据包的步骤,直至累计的数据包的总数据量到达前述数据量阈值时,将此次进行数据打包处理的所有外设设备(比如外设设备1,外设设备2,……,外设设备m)对应的数据包(比如图4中的Package1,Package2,……,Package m)一同打包(形成一个总包)后搬运到前述DRAM中,再根据前述各个外设设备分配的存储区域,将各数据包(比如Package1,Package2,……,Package m)中的数据分别写入对应存储区域的地址(比如Addr11,Addr22,……,Addr mm)。如此,将不同外设设备的数据对应的不同数据包分别分配到了对应的存储器区域中。

本发明的另一实施例,还提供了一种基于DMA的数据处理系统,包括CPU、系统存储器、DMA装置、高速总线和外设低速总线,所述CPU和系统处理器通过高速总线连接DMA装置,所述外设低速总线上连接有多个外设设备,所述CPU和系统处理器通过外设低速总线连接外设设备。

所述DMA装置为前述实施例的自启动DMA装置,包括DMA控制器、监测模块和数据整理模块。

所述监测模块连接外设低速总线,外设低速总线上连接有多个外设设备。所述数据整理模块通过高速总线连接CPU。

所述监测模块,用于监测前述外设低速总线上外设设备的数据传输请求信息,并判断外设低速总线上的数据传输请求的数量是否达到预设数量阈值,在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求。

所述数据整理模块不经过前述外设低速总线直接连接前述外设设备。所述数据整理模块用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。

所述系统存储器可以为DRAM(Dynamic Random Access Memory,动态随机存取存储器),DRAM通过高速总线连接DMA装置。

可选的,所述自启动DMA装置还可以获取上位机针对目标外设设备发出的数据直接搬运自启动请求,触发数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

其它技术特征参见在前实施例的描述,在此不再赘述。

参见图5所示,为本发明的另一实施例,提供了一种根据前述自启动DMA装置的数据处理方法。

所述方法包括如下步骤:监测外设低速总线上外设设备的数据传输请求信息;判断数据传输请求的数量是否达到预设数量阈值;在判定未达到预设数量阈值时,继续监测外设低速总线上外设设备的数据传输请求信息,判定达到预设数量阈值时,发出针对外设设备的数据直接搬运自启动请求;根据前述数据直接搬运自启动请求,触发数据整理模块对发起前述数据传输请求的外设设备中的存储数据进行数据整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

在完成数据搬运后,可以返回继续监测外设低速总线上外设设备的数据传输请求信息的步骤。

可选的,所述自启动DMA装置还可以获取上位机针对目标外设设备发出的数据直接搬运自启动请求,触发数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

其它技术特征参见在前实施例的描述,在此不再赘述。

本发明的另一实施例,还提供了一种DMA控制器。

所述DMA控制器包括监测模块和数据整理模块,所述监测模块连接外设低速总线,外设低速总线上连接有多个外设设备,所述数据整理模块通过高速总线连接CPU。

所述监测模块用于监测外设低速总线上外设设备的数据传输请求信息,并判断外设低速总线上的数据传输请求的数量是否达到预设数量阈值,在判定达到预设数量阈值时发出针对外设设备的数据直接搬运自启动请求。

所述数据整理模块不经过前述外设低速总线直接连接前述外设设备,用于在接收到前述数据直接搬运自启动请求时,对发起前述数据传输请求的外设设备中的存储数据进行数据整理后,将整理后的数据经前述高速总线搬运至系统存储器中。

本实施例中,所述DMA控制器还可以获取上位机针对目标外设设备发出的数据直接搬运自启动请求,触发数据整理模块对前述目标外设设备中的存储数据进行数据编码整理,并将整理后的数据经前述高速总线搬运至系统存储器中。

数据整理模块的其它技术特征参见在前实施例的描述,在此不再赘述。

在上面的描述中,本发明的公开内容并不旨在将其自身限于这些方面。而是,在本公开内容的目标保护范围内,各组件可以以任意数目选择性地且操作性地进行合并。另外,像“包括”、“囊括”以及“具有”的术语应当默认被解释为包括性的或开放性的,而不是排他性的或封闭性,除非其被明确限定为相反的含义。所有技术、科技或其他方面的术语都符合本领域技术人员所理解的含义,除非其被限定为相反的含义。在词典里找到的公共术语应当在相关技术文档的背景下不被太理想化或太不实际地解释,除非本公开内容明确将其限定成那样。本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于USB转SATA桥接电路的存储系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!