CN116701264B - Dma控制系统的控制方法及dma控制系统 - Google Patents

Dma控制系统的控制方法及dma控制系统 Download PDF

Info

Publication number
CN116701264B
CN116701264B CN202310963430.2A CN202310963430A CN116701264B CN 116701264 B CN116701264 B CN 116701264B CN 202310963430 A CN202310963430 A CN 202310963430A CN 116701264 B CN116701264 B CN 116701264B
Authority
CN
China
Prior art keywords
data
dma controller
module
register
dma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310963430.2A
Other languages
English (en)
Other versions
CN116701264A (zh
Inventor
黄岳飞
吴德煌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Jiangxin Chuang Technology Co ltd
Original Assignee
Guangdong Jiangxin Chuang Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Jiangxin Chuang Technology Co ltd filed Critical Guangdong Jiangxin Chuang Technology Co ltd
Priority to CN202310963430.2A priority Critical patent/CN116701264B/zh
Publication of CN116701264A publication Critical patent/CN116701264A/zh
Application granted granted Critical
Publication of CN116701264B publication Critical patent/CN116701264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种DMA控制系统的控制方法及DMA控制系统。其中该控制方法包括:DMA控制器从源端设备读取数据;DMA控制器进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块;在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理,得到第一累加结果;DMA控制器将第一累加结果存储至寄存器,以使处理器从寄存器中获取第一累加结果进行校验处理。本发明能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。

Description

DMA控制系统的控制方法及DMA控制系统
技术领域
本发明涉及集成电路硬件技术领域,尤其是一种DMA控制系统的控制方法及DMA控制系统。
背景技术
随着移动通信、数据分析测量系统等大数据采集传输领域的发展,面对海量数据的处理也有了更高的处理速率要求和可靠性要求。在计算机中,为了进行高效的数据转发,使用不经由CPU而在存储器、设备之间直接进行数据转发的DMA(Direct Memory Access)方式。DMA控制器以高效率转发为目的而被使用于数据处理系统中。
相关技术中,在利用DMA控制器进行数据转发的过程中,需要处理器通过软件算法校验从源端转发至终端的数据的正确性,但每次进行数据转发都需要采用软件算法进行校验,校验用时较长,导致数据校验效率较低。
发明内容
以下是对本文详细描述的主题的概述。
本发明实施例提供了一种DMA控制系统的控制方法及DMA控制系统,能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
第一方面,本发明实施例提供了一种DMA控制系统的控制方法,所述DMA控制系统包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,所述DMA控制器分别与所述源端设备、所述终端设备、所述寄存器电连接,所述处理器分别与所述源端设备、所述终端设备、所述DMA控制器和所述寄存器电连接;
所述控制方法包括:
所述DMA控制器从所述源端设备读取数据;
所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块;
在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,得到第一累加结果;
所述DMA控制器将所述第一累加结果存储至所述寄存器,以使所述处理器从所述寄存器中获取所述第一累加结果进行校验处理。
根据本发明的一些实施例,所述DMA控制系统还包括总线模块;所述DMA控制器还包括:源端控制模块、FIFO缓存模块和终端控制模块;其中,所述源端控制模块通过总线模块与所述源端设备电连接;所述终端控制模块的输出端通过所述总线模块与所述终端设备电连接;所述FIFO缓存模块连接于所述源端控制模块和所述终端控制模块之间,所述计算处理模块连接于所述终端控制模块和所述寄存器之间;
所述在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,包括:
所述终端控制模块每写入预设数据量的数据至所述终端设备,触发所述计算处理模块;
通过所述计算处理模块对所述终端控制模块搬运的所述数据进行一次所述累加计算处理。
根据本发明的一些实施例,所述方法还包括:
在所述DMA控制器重启的情况下,所述DMA控制器将所述寄存器中记录的所述第一累加结果清零。
根据本发明的一些实施例,所述DMA控制器将所述第一累加结果存储至所述寄存器之后,所述控制方法还包括:
在通用引导加载程序阶段,所述处理器执行固定代码得到固件程序代码的第二累加结果;
启动所述DMA控制器,使所述DMA控制器将所述固件程序代码从所述源端设备搬运至所述终端设备,并计算所述固件程序代码的所述第一累加结果,将所述第一累加结果存储至所述寄存器;
所述处理器从所述寄存器中获取所述固件程序代码的所述第一累加结果,将所述第一累加结果和所述第二累加结果进行比较,在所述第一累加结果和所述第二累加结果一致的情况下,则数据校验通过。
根据本发明的一些实施例,所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块之前,还包括:
所述终端控制模块读取所述FIFO缓存模块中缓存的待搬运的所述数据,其中,所述数据由所述源端控制模块从所述源端设备读取。
第二方面,本发明实施例提供了一种DMA控制系统,包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,所述DMA控制器分别与所述源端设备、所述终端设备、所述寄存器电连接,所述处理器分别与所述源端设备、所述终端设备、所述DMA控制器和所述寄存器电连接;
其中,所述DMA控制器用于:
从所述源端设备读取数据;进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块;在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,得到第一累加结果;所述DMA控制器将所述第一累加结果存储至所述寄存器,以使所述处理器从所述寄存器中获取所述第一累加结果进行校验处理。
根据本发明的一些实施例,所述DMA控制系统还包括总线模块;所述DMA控制器还包括:源端控制模块、FIFO缓存模块和终端控制模块;其中,所述源端控制模块通过总线模块与所述源端设备电连接;所述终端控制模块的输出端通过所述总线模块与所述终端设备电连接;所述FIFO缓存模块连接于所述源端控制模块和所述终端控制模块之间,所述计算处理模块连接于所述终端控制模块和所述寄存器之间;
所述DMA控制器还用于:
所述终端控制模块每写入预设数据量的数据至所述终端设备,触发所述计算处理模块;
通过所述计算处理模块对所述终端控制模块搬运的所述数据进行一次所述累加计算处理。
根据本发明的一些实施例,所述DMA控制器还用于:在所述DMA控制器重启的情况下,将所述寄存器中记录的所述第一累加结果清零。
根据本发明的一些实施例,所述处理器还用于:
在通用引导加载程序阶段,所述处理器执行固定代码得到固件程序代码的第二累加结果;
启动所述DMA控制器,使所述DMA控制器将所述固件程序代码从所述源端设备搬运至所述终端设备,并计算所述固件程序代码的所述第一累加结果,将所述第一累加结果存储至所述寄存器;
从所述寄存器中获取所述固件程序代码的所述第一累加结果,将所述第一累加结果和所述第二累加结果进行比较,在所述第一累加结果和所述第二累加结果一致的情况下,则数据校验通过。
根据本发明的一些实施例,所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块之前,所述终端控制模块还用于:
读取所述FIFO缓存模块中缓存的待搬运的所述数据,其中,所述数据由所述源端控制模块从所述源端设备读取。
本申请实施例包括:DMA控制系统包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,DMA控制器分别与源端设备、终端设备、寄存器电连接,处理器分别与源端设备、终端设备、DMA控制器和寄存器电连接;在利用该DMA控制系统进行数据传输的过程中,DMA控制器从源端设备读取数据之后,进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块;在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理,得到第一累加结果,在硬件上实现简单的数据累加计算,通过硬件计算得到简单累加计算结果,可供处理器根据不同应用场景灵活使用;而后将第一累加结果存储至寄存器,以使处理器从寄存器中获取第一累加结果进行数据校验处理,有利于处理器直接利用该累加结果进行进一步的数据校验,从而节约了校验时间,提高了DMA控制系统中数据校验的效率。即是说,本发明实施例的方案,能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书以及附图中所特别指出的结构来实现和获得。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例提供的DMA控制系统的框架示意图;
图2是本发明一个实施例提供过的DMA控制系统的具体结构示意图;
图3是本发明一个实施例提供的DMA控制系统中DMA控制器的控制方法的流程示意图;
图4是图3中步骤S130的具体流程示意图;
图5是本发明一个实施例提供DMA控制系统中处理器的控制方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
需要说明的是,在本发明的描述中虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上。描述到“第一”、“第二”只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
首先,对本发明中涉及的若干名词进行解释:
DMA(Direct Memory Access)控制器,是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。
加法器是产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。在电子学中,加法器是一种数位电路,其可进行数字的加法计算。
寄存器是中央处理器内的组成部分,是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。
DDR(DataDirectionRegister,数据方向寄存器)包括DDRA,DDRA表示A端口的方向寄存器,是固态的,并且是可拆卸的,方便更换。
动态随机存储器(Dynamic Random Access Memory,DRAM),是常见的系统内存。
静态随机存储器(Static Random-Access Memory,SRAM),是常见的系统内存。
FIFO( First Input First Output,先进先出),新一代FIFO芯片是一种新型大规模集成电路。
基于此,本发明提供了一种DMA控制系统的控制方法及DMA控制系统,其中,DMA控制系统包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,DMA控制器分别与源端设备、终端设备、寄存器电连接,处理器分别与源端设备、终端设备、DMA控制器和寄存器电连接;在利用该DMA控制系统进行数据传输的过程中,DMA控制器从源端设备读取数据之后,进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块;在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理,得到第一累加结果,在硬件上实现简单的数据累加计算,通过硬件计算得到简单累加计算结果,可供处理器根据不同应用场景灵活使用;而后将第一累加结果存储至寄存器,以使处理器从寄存器中获取第一累加结果进行数据校验处理,有利于处理器直接利用该累加结果进行进一步的数据校验,从而节约了校验时间,提高了DMA控制系统中数据校验的效率。即是说,本发明实施例的方案,能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
下面结合附图,对本发明实施例作进一步阐述。
一方面,参照图1,该DMA控制系统100包括:源端设备110、终端设备120、寄存器130、处理器140、包括计算处理模块151的DMA控制器150,其中,DMA控制器150分别与源端设备110、终端设备120、寄存器130电连接,处理器140分别与源端设备110、终端设备120、DMA控制器150和寄存器130电连接。
其中,源端设备110用于被DMA控制器150读取数据,终端设备120用于接收DMA控制器150转发的数据,源端设备110与终端设备120之间通过DMA控制器150实现数据转移。
寄存器130,用于存放经过DMA控制器150的简单累加计算处理而得到的第一累加结果,还能够被处理器140访问。
处理器140,用于从寄存器130中获取第一累加结果进行数据校验处理。
DMA控制器150包括计算处理模块151,其中,计算处理模块151用于进行累加计算处理,DMA控制器150用于:从源端设备110读取数据;进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块;在将数据搬运至终端设备的过程中,通过计算处理模块151对数据进行累加计算处理,得到第一累加结果;DMA控制器150将第一累加结果存储至寄存器130,以使处理器140从寄存器130中获取第一累加结果进行数据校验处理。
具体地,计算处理模块151中集成了加法器,从而从硬件上实现了累加功能。加法器的成本低,且计算快速、使用方便,有利于实现可靠的硬件累加计算。本发明对加法器的具体电路结构不做限制。
根据本发明实施例提供的DMA控制系统100,在利用该DMA控制系统100进行数据传输的过程中,DMA控制器150从源端设备110读取数据之后,进行数据搬运处理,将待搬运的数据输出至终端设备120和计算处理模块151;在将数据搬运至终端设备120的过程中,通过计算处理模块151对数据进行累加计算处理,得到第一累加结果,在硬件上实现简单的数据累加计算,通过硬件计算得到简单累加计算结果,可供处理器根据不同应用场景灵活使用;而后将第一累加结果存储至寄存器130,以使处理器140从寄存器130中获取第一累加结果进行数据校验处理,有利于处理器直接利用该累加结果进行进一步的数据校验,从而节约了校验时间,提高了DMA控制系统100中数据校验的效率。即是说,本发明实施例的方案,能够利用计算处理模块151在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
根据本发明的一些实施例,参照图2,DMA控制系统100还包括总线模块160;DMA控制器150还包括:源端控制模块152、FIFO缓存模块153和终端控制模块154;其中,源端控制模块152通过总线模块160与源端设备110电连接;终端控制模块154的输出端通过总线模块160与终端设备120电连接;FIFO缓存模块153连接于源端控制模块152和终端控制模块154之间,计算处理模块151连接于终端控制模块154和寄存器130之间。
可以理解的是,DMA控制系统100中可以包括多个源端设备110和多个终端设备120。其中,多个源端设备110和多个终端设备120均可以挂载在总线模块160上,DMA控制器150可以通过总线模块160访问到多个源端设备110和终端设备120。
在一实施例中,在利用DMA控制系统100进行数据传输的过程中,DMA控制器150中,终端控制模块154每写入预设数据量的数据至终端设备120,通过计算处理模块151对终端控制模块154搬运的数据进行一次累加计算处理。计算处理模块151能够及时地响应于数据的搬运,累计搬运的数据量,从而有利于提高后续的数据校验的效率。
根据本发明的一些实施例,DMA控制器150还用于:在DMA控制器150重启的情况下,将寄存器130中记录的第一累加结果清零。本发明实施例的DMA控制系统中设置了数据清零机制,即在DMA控制器150重启的情况下或者一次数据搬运处理结束的情况下,将寄存器130中记录的第一累加结果清零,节约了寄存器130的内部存储空间;如此,使得DMA控制器150所进行的一次累加计算处理是有限次的,使得累加计算处理保持较低的计算复杂度。
根据本发明的一些实施例,处理器140还用于:在通用引导加载程序阶段,处理器140执行固定代码得到固件程序代码的第二累加结果;启动DMA控制器150,使DMA控制器150将固定代码从源端设备110搬运至终端设备120,并计算固件程序代码的第一累加结果,将第一累加结果存储至寄存器130;从寄存器130中获取固件程序代码的第一累加结果,将第一累加结果和第二累加结果进行比较,在第一累加结果和第二累加结果一致的情况下,则数据校验通过。
相比于完全依赖于处理器140的软件算法进行的数据校验方式,本发明实施例的处理器140能够在通过软件计算出的第二累加结果之后直接获取通过硬件计算出的第一累加结果;并基于第一累加结果和第二累加结果校验数据的传输正确性,在第一累加结果和第二累加结果一致的情况下,则数据校验通过,数据传输正常。从而使得处理器140的软件计算用时减少,在一定程度上提高了数据校验效率。
根据本发明的一些实施例,DMA控制器150进行数据搬运处理,将待搬运的数据输出至终端设备120和计算处理模块151之前,终端控制模块154还用于:读取FIFO缓存模块153中缓存的待搬运的数据,其中,数据由源端控制模块152从源端设备110读取。
可以理解的是,FIFO缓存模块153起到数据缓存的作用,本发明不具体限制FIFO缓存模块153的结构。
具体地,参照图2,在利用该DMA控制系统100进行数据传输的过程中,数据的具体流向为:源端控制模块152从源端设备110读取数据后,将该数据写入FIFO缓存模块153中缓存,接着,终端控制模块154从FIFO缓存模块153中读取缓存的待搬运的数据,而后将待搬运的数据输出至终端设备120,同时触发计算处理模块151,将待搬运的数据输出至计算处理模块151,使计算处理模块151对数据进行累加计算处理,从而在硬件上实现简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
本领域技术人员可以理解的是,图中示出的系统结构并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域技术人员可以理解的是,本发明实施例描述的系统架构以及应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述系统结构,下面提出本发明的DMA控制系统的控制方法的各个实施例。
另一方面,如图3所示,该DMA控制系统的控制方法能够应用于如图1所示的系统框架中,DMA控制系统包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,DMA控制器分别与源端设备、终端设备、寄存器电连接,处理器分别与源端设备、终端设备、DMA控制器和寄存器电连接。该DMA控制系统的控制方法可以包括但不限于有步骤S110至步骤S140。
步骤S110:DMA控制器从源端设备读取数据。
步骤S120:DMA控制器进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块。
步骤S130:在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理,得到第一累加结果。
步骤S140:DMA控制器将第一累加结果存储至寄存器,以使处理器从寄存器中获取第一累加结果进行数据校验处理。
本发明通过步骤S110至步骤S140,在利用该DMA控制系统进行数据传输的过程中,DMA控制器从源端设备读取数据之后,进行数据搬运处理,将待搬运的数据输出至终端设备和计算处理模块;在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理,得到第一累加结果,在硬件上实现简单的数据累加计算,通过硬件计算得到简单累加计算结果,可供处理器根据不同应用场景灵活使用;而后将第一累加结果存储至寄存器,以使处理器从寄存器中获取第一累加结果进行数据校验处理,有利于处理器直接利用该累加结果进行进一步的数据校验,从而节约了校验时间,提高了DMA控制系统中数据校验的效率。即是说,本发明实施例的方案,能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
根据本发明的一些实施例,结合图4,步骤S130中:“在将数据搬运至终端设备的过程中,通过计算处理模块对数据进行累加计算处理”包括但不限于有步骤S210和步骤S220。
步骤S210:终端控制模块每写入预设数据量的数据至终端设备,触发计算处理模块。
步骤S220:通过计算处理模块对终端控制模块搬运的数据进行一次累加计算处理。
具体地,步骤S210中预设数据量为4Byte。在一实施例中,终端控制模块每写入4Byte的数据至终端设备,将触发计算处理模块进行一次累加计算处理。可以理解的是,可以根据实际的数据处理要求,设置具体的预设数据量;本发明对预设数据量的具体值不做限制。
本发明通过步骤S210和步骤S220,计算处理模块151能够及时地响应于数据的搬运,累计搬运的数据量,从而有利于提高后续的数据校验的效率。
根据本发明的一些实施例,在步骤S140之后,控制方法还包括:在DMA控制器重启的情况下,DMA控制器将寄存器中记录的第一累加结果清零。
本发明实施例的DMA控制系统中设置了数据清零机制,即在DMA控制器150重启的情况下或者一次数据搬运处理结束的情况下,将寄存器130中记录的第一累加结果清零,节约了寄存器130的内部存储空间;如此,使得DMA控制器150所进行的一次累加计算处理是有限次的,使得累加计算处理保持较低的计算复杂度。
根据本发明的一些实施例,在步骤S120之前,控制方法还包括:终端控制模块读取FIFO缓存模块中缓存的待搬运的数据,其中,数据由源端控制模块从源端设备读取。
在一实施例中,在利用该DMA控制系统进行数据传输的过程中,数据的具体流向为:源端控制模块从源端设备读取数据后,将该数据写入FIFO缓存模块中缓存,接着,终端控制模块从FIFO缓存模块中读取缓存的待搬运的数据,而后将待搬运的数据输出至终端设备,同时触发计算处理模块,将待搬运的数据输出至计算处理模块,使计算处理模块对数据进行累加计算处理,从而在硬件上实现简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
根据本发明的一些实施例,参照图5,在步骤S140:DMA控制器将第一累加结果存储至寄存器之后,控制方法包括但不限于有步骤S310至步骤S330。
步骤S310:在通用引导加载程序阶段,处理器执行固定代码得到固件程序代码的第二累加结果。
步骤S320:启动DMA控制器,使DMA控制器将固件程序代码从源端设备搬运至终端设备,并计算固件程序代码的第一累加结果,将第一累加结果存储至寄存器。
步骤S330:处理器从寄存器中获取固件程序代码的第一累加结果,将第一累加结果和第二累加结果进行比较,在第一累加结果和第二累加结果一致的情况下,则数据校验通过。
本发明实施例通过步骤S310至步骤S330,在通用引导加载程序阶段,通过软硬件结合的方式进行数据校验处理,提高了DMA控制系统中数据校验的效率。相比于完全依赖于处理器140的软件算法进行的数据校验方式,处理器140能够在通过软件计算出的第二累加结果之后直接获取通过硬件计算出的第一累加结果;并基于第一累加结果和第二累加结果校验数据的传输正确性,在第一累加结果和第二累加结果一致的情况下,则数据校验通过,数据传输正常。从而使得处理器140的软件计算用时减少,在一定程度上提高了数据校验效率。
举一示例,结合图2,对DMA控制器的处理过程进行进一步说明:
当DMA控制器未启动工作时,寄存器中的累加结果sum为0,当DMA控制器开始工作时,在终端控制模块向终端设备写入4Bytes数据(data),其中1单位Byte即为8bits。则触发计算处理模块进行一次累加计算处理:sum=sum+data,得到一次累加结果sum,并且把累加结果sum回写到寄存器中。
具体地,当需要启动DMA控制器从DRAM地址0x4000_0000搬运12Byte数据到SRAM,其中,需搬运的12Byte数据包括:DDRA地址0x4000_0000上的数据0x0000_0001、DDRA地址0x4000_0004上的数据0x0000_0002、DDRA地址0x4000_0008上的数据0x0000_0003。启动DMA控制器时,将前次的累加结果清0,即初始的累加结果sum=0,本次数据搬运处理的过程DMA控制器的计算处理模块会进行3次累加计算处理,分别是:
第一次累加计算处理:sum=0+0x0000_0001;
第二次累加计算处理:sum=0+0x0000_0001+0x0000_0002;
第三次累加计算处理:sum=0+0x0000_0001+0x0000_0002+0x0000_0003。
在DMA控制器将12Byte数据完成搬运之后,本次累加计算处理结果sum为0x0000_0006。将本次累加计算处理结果sum回写至寄存器,在硬件上实现简单的数据累加计算,提供了简单累加计算结果,可供处理器根据不同应用场景灵活使用,并且方便处理器校验使用,节省校验时间。
举一示例,结合图2,对处理器的处理过程进行进一步说明:
一方面,当数据传输处于DMA逻辑本身可靠的应用阶段,则不需要校验,处理器不进行校验处理。
另一方面,在需要进行数据校验的情况下,处理器可以从寄存器获取累加结果,进行数据校验,判断数据搬运是否出错。例如,当数据传输处于需要更高可靠性的uboot阶段,则需要处理器进行数据校验。
具体地,处理器上电之后,会执行一段固定代码(即uboot)。uboot阶段,处理器会启动DMA控制器将外部存储器的固件程序代码,搬运到内部存储器中。固件程序代码主要包括程序部分和校验部分两部分,其中,程序部分包括:0x000000001、0x000000002、0x000000003;校验部分为:~(1+2+3)=0xfffffff9。处理器可以计算固件程序代码中的各数据的第二累加结果为0xffffffff。则DMA控制器搬运的数据包括:0x000000001、0x000000002、0x000000003、0xfffffff9。则数据搬运正常的情况下,DMA控制器累加得到的第一累加结果应当为0xffffffff。
Uboot阶段,处理器会等待DMA控制器传输完成,然后判断DMA控制器的第一累加结果是否为0xffffffff。如果处理器获取的第一累加结果为0xffffffff,则数据一致性校验通过;如果处理器获取的第一累加结果不为0xffffffff,则由处理器读取外部存储器的固件程序代码,搬运到内部存储器中。
在uboot阶段,利用本发明实施例提供的DMA控制系统搬运数据的过程中,优先使用DMA控制器进行数据搬运,搬运效率高;如果DMA控制器传输数据时数据校验出现问题,则使用低效率处理器进行数据搬运,增加容错机制;保障数据搬运的持续进行。
综上所述,本发明实施例至少具有以下的有益效果:
一是:能够利用计算处理模块在硬件上对搬运的数据进行简单累加计算得到累加结果,有利于后续直接利用该累加结果进行进一步的数据校验,节约校验时间,通过软硬件结合的方式提高了DMA控制系统中数据校验的效率。
二是:通过硬件计算得到简单累加计算结果,可供处理器根据不同应用场景灵活使用。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明所限定的范围内。

Claims (8)

1.一种DMA控制系统的控制方法,其特征在于,所述DMA控制系统包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,所述DMA控制器分别与所述源端设备、所述终端设备、所述寄存器电连接,所述处理器分别与所述源端设备、所述终端设备、所述DMA控制器和所述寄存器电连接;
所述控制方法包括:
所述DMA控制器从所述源端设备读取数据;
所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块;
在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,得到第一累加结果;
所述DMA控制器将所述第一累加结果存储至所述寄存器,以使所述处理器从所述寄存器中获取所述第一累加结果进行校验处理;
其中,所述DMA控制器将所述第一累加结果存储至所述寄存器之后,所述控制方法还包括:
在通用引导加载程序阶段,所述处理器执行固定代码得到固件程序代码的第二累加结果;
启动所述DMA控制器,使所述DMA控制器将所述固件程序代码从所述源端设备搬运至所述终端设备,并计算所述固件程序代码的所述第一累加结果,将所述第一累加结果存储至所述寄存器;
所述处理器从所述寄存器中获取所述固件程序代码的所述第一累加结果,将所述第一累加结果和所述第二累加结果进行比较,在所述第一累加结果和所述第二累加结果一致的情况下,则数据校验通过。
2.根据权利要求1所述的DMA控制系统的控制方法,其特征在于,所述DMA控制系统还包括总线模块;所述DMA控制器还包括:源端控制模块、FIFO缓存模块和终端控制模块;其中,所述源端控制模块通过总线模块与所述源端设备电连接;所述终端控制模块的输出端通过所述总线模块与所述终端设备电连接;所述FIFO缓存模块连接于所述源端控制模块和所述终端控制模块之间,所述计算处理模块连接于所述终端控制模块和所述寄存器之间;
所述在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,包括:
所述终端控制模块每写入预设数据量的数据至所述终端设备,触发所述计算处理模块;
通过所述计算处理模块对所述终端控制模块搬运的所述数据进行一次所述累加计算处理。
3.根据权利要求2所述的DMA控制系统的控制方法,其特征在于,所述方法还包括:
在所述DMA控制器重启的情况下,所述DMA控制器将所述寄存器中记录的所述第一累加结果清零。
4.根据权利要求2所述的DMA控制系统的控制方法,其特征在于,所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块之前,还包括:
所述终端控制模块读取所述FIFO缓存模块中缓存的待搬运的所述数据,其中,所述数据由所述源端控制模块从所述源端设备读取。
5.一种DMA控制系统,其特征在于,包括:源端设备、终端设备、寄存器、处理器、包括计算处理模块的DMA控制器,其中,所述DMA控制器分别与所述源端设备、所述终端设备、所述寄存器电连接,所述处理器分别与所述源端设备、所述终端设备、所述DMA控制器和所述寄存器电连接;
其中,所述DMA控制器用于:
从所述源端设备读取数据;进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块;在将所述数据搬运至所述终端设备的过程中,通过所述计算处理模块对所述数据进行累加计算处理,得到第一累加结果;所述DMA控制器将所述第一累加结果存储至所述寄存器,以使所述处理器从所述寄存器中获取所述第一累加结果进行校验处理;
其中,所述处理器还用于:
在通用引导加载程序阶段,所述处理器执行固定代码得到固件程序代码的第二累加结果;
启动所述DMA控制器,使所述DMA控制器将所述固件程序代码从所述源端设备搬运至所述终端设备,并计算所述固件程序代码的所述第一累加结果,将所述第一累加结果存储至所述寄存器;
从所述寄存器中获取所述固件程序代码的所述第一累加结果,将所述第一累加结果和所述第二累加结果进行比较,在所述第一累加结果和所述第二累加结果一致的情况下,则数据校验通过。
6.根据权利要求5所述的DMA控制系统,其特征在于,所述DMA控制系统还包括总线模块;所述DMA控制器还包括:源端控制模块、FIFO缓存模块和终端控制模块;其中,所述源端控制模块通过总线模块与所述源端设备电连接;所述终端控制模块的输出端通过所述总线模块与所述终端设备电连接;所述FIFO缓存模块连接于所述源端控制模块和所述终端控制模块之间,所述计算处理模块连接于所述终端控制模块和所述寄存器之间;
所述DMA控制器还用于:
所述终端控制模块每写入预设数据量的数据至所述终端设备,触发所述计算处理模块;
通过所述计算处理模块对所述终端控制模块搬运的所述数据进行一次所述累加计算处理。
7.根据权利要求6所述的DMA控制系统,其特征在于,所述DMA控制器还用于:在所述DMA控制器重启的情况下,将所述寄存器中记录的所述第一累加结果清零。
8.根据权利要求6所述的DMA控制系统,其特征在于,所述DMA控制器进行数据搬运处理,将待搬运的所述数据输出至终端设备和所述计算处理模块之前,所述终端控制模块还用于:
读取所述FIFO缓存模块中缓存的待搬运的所述数据,其中,所述数据由所述源端控制模块从所述源端设备读取。
CN202310963430.2A 2023-08-02 2023-08-02 Dma控制系统的控制方法及dma控制系统 Active CN116701264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310963430.2A CN116701264B (zh) 2023-08-02 2023-08-02 Dma控制系统的控制方法及dma控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310963430.2A CN116701264B (zh) 2023-08-02 2023-08-02 Dma控制系统的控制方法及dma控制系统

Publications (2)

Publication Number Publication Date
CN116701264A CN116701264A (zh) 2023-09-05
CN116701264B true CN116701264B (zh) 2024-02-23

Family

ID=87829611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310963430.2A Active CN116701264B (zh) 2023-08-02 2023-08-02 Dma控制系统的控制方法及dma控制系统

Country Status (1)

Country Link
CN (1) CN116701264B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317166A (zh) * 2005-09-29 2008-12-03 P.A.Semi公司 统一dma
CN103034599A (zh) * 2012-12-12 2013-04-10 深圳国微技术有限公司 安全dma控制器、soc系统及其数据搬运方法
DE102013017179A1 (de) * 2012-10-15 2014-04-17 Infineon Technologies Ag DMA-Integritätsprüfungseinheit
CN110704236A (zh) * 2019-10-11 2020-01-17 南京元晨微电子科技有限公司 芯片flash数据的在线校验方法及计算机存储介质
CN112988449A (zh) * 2019-12-16 2021-06-18 慧荣科技股份有限公司 写入页面群组的数据到闪存模块的装置及方法
CN114328316A (zh) * 2021-11-22 2022-04-12 北京智芯微电子科技有限公司 Dma控制器、soc系统及基于dma控制器的数据搬运方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317166A (zh) * 2005-09-29 2008-12-03 P.A.Semi公司 统一dma
DE102013017179A1 (de) * 2012-10-15 2014-04-17 Infineon Technologies Ag DMA-Integritätsprüfungseinheit
CN103034599A (zh) * 2012-12-12 2013-04-10 深圳国微技术有限公司 安全dma控制器、soc系统及其数据搬运方法
CN110704236A (zh) * 2019-10-11 2020-01-17 南京元晨微电子科技有限公司 芯片flash数据的在线校验方法及计算机存储介质
CN112988449A (zh) * 2019-12-16 2021-06-18 慧荣科技股份有限公司 写入页面群组的数据到闪存模块的装置及方法
CN114328316A (zh) * 2021-11-22 2022-04-12 北京智芯微电子科技有限公司 Dma控制器、soc系统及基于dma控制器的数据搬运方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于PCI Express总线的DMA高速传输系统;侯杭呈;王忆文;李辉;;微电子学(03);全文 *

Also Published As

Publication number Publication date
CN116701264A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
US20050071602A1 (en) Branch-aware FIFO for interprocessor data sharing
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
JP3176129B2 (ja) マイクロプロセッサのオンチップキャッシュのモニタ構造及びモニタ方法
US20030051122A1 (en) Trace information generation apparatus for generating branch trace information omitting at least part of branch source information and branch destination information on target processing
US20150143045A1 (en) Cache control apparatus and method
WO2000075772A1 (en) Methods and apparatus for combining a plurality of memory access transactions
US11003606B2 (en) DMA-scatter and gather operations for non-contiguous memory
JP4434534B2 (ja) プロセッサ・システム
US9411731B2 (en) System and method for managing transactions
CN115563914A (zh) 验证方法及装置、计算设备、计算机可读存储介质
CN116701264B (zh) Dma控制系统的控制方法及dma控制系统
US9342472B2 (en) PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units
CN110928890B (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
CN110737618A (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
CN114281570B (zh) 嵌入式控制电路、控制方法、装置及芯片
CN111858665B (zh) 一种提升软拷贝读性能的方法、系统、终端及存储介质
CN113220608A (zh) 一种NVMe命令处理器及其处理方法
CN210804421U (zh) 一种服务器系统
JP3764015B2 (ja) メモリアクセス方法及びマルチプロセッサシステム
EP4155939A2 (en) Lane based normalized historical error counter view for faulty lane isolation and disambiguation of transient versus persistent errors
CN113033791B (zh) 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113032299A (zh) 用于处理请求的总线系统、集成电路装置、板卡及保序方法
CN109324826B (zh) 计数装置和计数方法
JP2002259229A (ja) メモリデータ誤り訂正方式
CN116756019A (zh) 内存泄漏定位方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant