CN111459879A - 一种数据处理方法和片上系统 - Google Patents

一种数据处理方法和片上系统 Download PDF

Info

Publication number
CN111459879A
CN111459879A CN202010488770.0A CN202010488770A CN111459879A CN 111459879 A CN111459879 A CN 111459879A CN 202010488770 A CN202010488770 A CN 202010488770A CN 111459879 A CN111459879 A CN 111459879A
Authority
CN
China
Prior art keywords
data
specified type
hardware accelerator
memory
continuous
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.)
Pending
Application number
CN202010488770.0A
Other languages
English (en)
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.)
Zhejiang Sineva Intelligent Technology Co ltd
Original Assignee
Zhejiang Sineva Intelligent 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 Zhejiang Sineva Intelligent Technology Co ltd filed Critical Zhejiang Sineva Intelligent Technology Co ltd
Priority to CN202010488770.0A priority Critical patent/CN111459879A/zh
Publication of CN111459879A publication Critical patent/CN111459879A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种数据处理方法和片上系统。根据本发明实施例提供的方案,可以在硬件端获取数据之前,按照硬件端获取数据的先后顺序,通过软件端将硬件端每次需要获取的数据块对应的碎片化的存储空间,整理成连续的存储空间,这样硬件端就可以实现数据块的连续获取,无需频繁访问软件端内部存储器,从而大大减少数据传输时延,提高数据传输速度,进而提高整个系统的数据处理能力。

Description

一种数据处理方法和片上系统
技术领域
本发明涉及集成电路技术领域,特别涉及一种数据处理方法和片上系统。
背景技术
目前越来越多的芯片采用片上系统(SOC)的设计方法。SOC包括软件端和硬件端,软件端可以包括通用处理器(CPU)和内部存储器(可以简单记为内存),用于支撑软件的运行,以完成相应任务,以及实现对硬件端的控制,硬件端可以理解为硬件加速器,硬件加速器包含多个可根据需求固化的知识产权核(IP核,Intellectual Property core),用于实现相应任务。
目前的SOC设计一般采用各个模块独立的设计方法,即某个功能要么通过硬件端实现,要么通过软件端实现。
但是,如果硬件端实现的某个功能需要的数据不是放在硬件端,而是存储在软件端的内部存储器中,例如,如果硬件端实现的某个功能需要的数据存储空间较大,无法放在硬件端,需要将实现该功能需要的数据存储到软件端的内部存储器中,此时,硬件端需要访问软件端中的内部存储器,获取需要的数据,以实现该功能。
对于硬件端需要频繁访问软件端内部存储器中的数据的情况,会导致SOC性能大大降低。
这是因为SOC实现一个功能的时间包括数据传输时间和数据处理时间,在数据传输过程中,硬件端对于软件端内部存储器中数据的访问是需要过程的,这个过程包括读操作的发起,读数据的寻址,读数据的返回,需要消耗较多时间。而如果硬件端需要频繁访问内部存储器中的数据,则会进一步导致数据传输时间的增加,从而使得数据传输时间在整个实现一个功能的时间中占的比重较大,导致整个数据处理的吞吐量大大降低。
发明内容
本发明实施例提供一种数据处理方法和SOC,用于解决硬件端需要频繁访问软件端内部存储器获取数据的情况下,数据传输时间较长的问题。
本发明提供了一种片上系统,所述片上系统包括通用处理器、内部存储器和硬件加速器,所述硬件加速器需要的至少一种指定类型的数据保存在所述内部存储器中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,针对所述内部存储器中保存的所述硬件加速器需要的每一种指定类型的数据:
所述通用处理器,用于在所述内部存储器中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在所述连续分布的内存空间,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据;
所述硬件加速器,用于从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
本发明还提供了一种数据处理方法,该方法应用于片上系统,所述片上系统包括通用处理器、内部存储器和硬件加速器,所述硬件加速器需要的至少一种指定类型的数据保存在所述内部存储器中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,针对所述内部存储器中保存的所述硬件加速器需要的每一种指定类型的数据,所述方法包括:
所述通用处理器在所述内部存储器中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在所述连续分布的内存空间,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据;
所述硬件加速器从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现如上所述的方法。
根据本发明实施例提供的方案,可以在硬件端获取数据之前,按照硬件端获取数据的先后顺序,通过软件端将硬件端每次需要获取的数据块对应的碎片化的存储空间,整理成连续的存储空间,这样硬件端就可以实现数据块的连续获取,无需频繁访问软件端内部存储器,从而大大减少数据传输时延,提高数据传输速度,进而提高整个系统的数据处理能力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的片上系统的结构示意图;
图2(a)为本发明实施例二提供的内存重组前示意图;
图2(b)为本发明实施例二提供的内存重组后示意图;
图3为本发明实施例三提供的数据处理方法的步骤流程图。
具体实施方式
本发明实施例中,软件端通用处理器可以重新组织内存,按照硬件端数据获取先后顺序连续保存数据,使得硬件端可以连续获取需要的数据,减少硬件端与软件端内部存储器的交互过程,大大提高数据传输速度,提高系统处理性能。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
本发明实施例一提供一种片上系统,该片上系统的结构可以如图1所示,包括通用处理器111和内部存储器112和硬件加速器12,所述硬件加速器12需要的至少一种指定类型的数据保存在所述内部存储器112中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,针对所述内部存储器112中保存的所述硬件加速器12需要的每一种指定类型的数据:
所述通用处理器111用于在所述内部存储器112中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在所述连续分布的内存空间,所述连续数据对应按照所述硬件加速器12对该指定类型的数据的获取先后顺序,由所述硬件加速器12每次需要获取的该指定类型的数据块依次拼接得到的一段数据;
所述硬件加速器12用于从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
如图1所示,通用处理器111和内部存储器112可以理解为软件端,软件端可以标记为11(软件端可以记为Software side),硬件加速器12可以理解为硬件端(为方便起见,硬件加速器12后续也称为硬件端12,硬件端可以记为Hardware side)。通用处理器111可以记为CPU,且在图1中,以内部存储器112为双倍速率同步动态随机存储器(DDR SDRAM,DoubleData Rate SDRAM,在图1中简单记为DDR)为例进行示意。在图1中,硬件端12可以用加速器(Accelerator)表示。
在本实施例中,硬件端可以采取任意方式,从软件端内部存储器连续分布的内存空间,连续获取连续数据中每个该指定类型的数据块,通过数据块的连续获取,无需频繁访问软件端内部存储器,从而有效减少数据传输时间。
在一种可能的实现方式中,由于存储空间变成了连续的空间,因此数据传输可以采用直接内存存取(DMA,Direct Memory Access)方式实现,硬件端可以直接接收DMA控制器发送的数据,无需从软件端内部存储器中读取数据,从而省去请求、仲裁、数据准备和数据返回等过程,进一步提高数据传输的效率。
此时,所述片上系统还可以包括DMA控制器13,在图1中以DMA控制器13为多通道DMA控制器为例, DMA控制器的各个通道用DMA表示,当然,DMA控制器13也可以为单通道DMA控制器:
所述DMA控制器13用于接收所述通用处理器111配置的所述连续分布的内存空间的首地址和内存长度,从所述内部存储器112所述首地址对应的内存空间开始,从所述内存长度的内存空间中,获取所述连续数据,并发送给所述硬件端12;
所述硬件端12具体用于接收所述直接内存读取控制器发送的所述连续数据,从所述连续数据中获取每次需要获取的该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
即在本实施例中,可以通过DMA控制器,通过DMA方式实现内部存储器到硬件端的数据传输。
需要说明的是,在一种可能的实现方式中,DMA控制器13为多通道DMA控制器时,不同指定类型的数据可以分别通过DMA控制器的不同通道进行传输,以实现数据的并行传输,进一步提高数据传输速度,提高系统的数据处理能力。此时,可以理解为,多通道DMA控制器的每个通道对应一种数据类型,用于传输该指定类型的数据。
结合图1可以看出,根据本发明实施例一提供的方案,CPU可以对DDR中的内存进行重组(Memory rearrangement),即,将DDR中的内存碎片(Memory fragments)中的数据块拼接成对应的连续数据,保存在DDR中一段连续分布的内存空间(通过CPU在DDR中分配一段连续分布的内存空间(Continuously allocated memory)得到)。进而加速器可以连续获取(例如,通过DMA控制器以DMA方式)所述连续数据的每个数据块,根据获取的每个数据块实现数据处理(Processing)。
需要说明的是,一个内存碎片可以理解为对应一个数据块(该数据块可以理解为占用一段内存,例如几个字节的数据),在本实施例中,一个连续数据可以是由多个不同内存碎片对应的多个数据块拼接而成的一段数据,也可以是由一个内存碎片对应的一个数据块反复拼接而成的一段数据。需要说明的是,拼接而成的连续数据的大小可能会大于拼接前的各数据块的大小之和,数据膨胀的程度与硬件端每次需要获取的数据块的重复程度有关。
也就是说,一种指定类型的数据,所述硬件端12至少需要获取两次,可以理解为一种指定类型的数据块数量为至少两个,所述硬件端12至少需要获取两次,该指定类型的至少两个数据块。也可以理解为一种指定类型的数据块数量为一个,所述硬件端12至少需要获取两次,该指定类型的一个数据块。
例如,内部存储器112中可以保存三个某一种指定类型的数据块,可以分别记为A、B和C,也可以保存一个某一种指定类型的数据块,可以记为D。
此外,需要说明的是,在一种可能的实现方式中,所述连续数据对应按照所述硬件端对该指定类型的数据的获取先后顺序,由所述硬件端每次需要获取的该指定类型的数据块依次拼接得到的一段数据,包括:
所述连续数据对应按照所述硬件端对该指定类型的数据的从先到后的获取顺序,由所述硬件端每次需要获取的该指定类型的数据块依次拼接得到的一段数据。
即在本实施例中,提供了一种内存重组的可能方式。其中,可以按照硬件端获取数据由先到后的顺序,针对DDR中的内存碎片,进行连续内存分配。从而使得硬件端可以按照数据块先后顺序,快速地从重组后的内存中获取每次需要获取的数据块,进一步提高数据处理的吞吐量。
例如,针对内部存储器112中保存的某一种指定类型的数据块,分别记为A、B和C,硬件端获取该指定类型的数据由先到后的顺序为B、A、B、A、C,那么通用处理器111可以通过分配连续内存,将该指定类型的数据对应的连续数据BABAC,保存在所述内部存储器112中一段连续分布的内存空间。
此时,由于连续数据中数据块保存的先后顺序即为硬件端获取数据块的顺序,硬件端可以快速地从连续数据BABAC中,获取每次需要获取的数据块B、A、B、A、C,进一步提高数据处理的吞吐量。
需要进一步说明的是,在一种可能的实现方式中,所述通用处理器111还可以用于清空所述内部存储器112中用于保存该指定类型的数据块的内存空间。
即,通用处理器除了可以对内部存储器中保存的碎片化的数据块整理成顺序存储的连续数据,以供硬件端实现数据块的连续获取之外,还可以清空原有的碎片化的数据块,以节约内部存储器中的存储空间。
下面通过实施例二对本发明实施例一提供的方案进行说明。
实施例二
本发明实施例一,是针对硬件端需要的至少一种指定类型的数据保存在软件端的内部存储器中,硬件端针对任意一种指定类型的数据,需要频繁访问软件端的内部存储器,以实现对该指定类型的数据的获取,进而实现数据处理的情况,提供的一种节约数据传输时间的解决方案。
此时,可以理解为硬件端从软件端的内部存储器中读取的内存是不连续的,或者可以理解为是碎片化的。例如,在图像处理工程中,如果对图像的处理不是按行或者按列来顺序地处理,而是对像素的存取,呈类似随机化的状态,那么在这种情况下,硬件端同软件端的内部存储器会有多次交互,尤其在读延时很大的情况下,会大大降低整个系统的效率。
以有效大尺度立体匹配的稠密视差匹配过程为例,硬件端需要读入的数据包括左侧图像的描述子(左侧图像的描述子可以理解为一种类型的数据)、右侧图像的描述子(右侧图像的描述子可以理解为另一种类型的数据)以及网格信息(网格信息可以理解为另一种类型的数据)等等。
以硬件端需要读入的数据包括左侧图像的描述子、右侧图像的描述子以及网格信息为例,因为这三种类型的数据占用的空间都非常大,无法放在硬件端内部实现,只能放在硬件端外部的存储器中,在本实施例中,假设放在软件端的内存(DDR)中。
在稠密视差匹配过程中,针对每一种类型的数据,硬件端每次读取的数据量都不是很大(硬件端每次读取的数据可以理解为一个数据块),从几个字节到十几个字节不等。硬件端需要频繁地读取软件端的DDR,会占用非常多的读取时间(也可以理解为交互时间)。
每次硬件端读取软件端DDR中的数据需要大约40个时钟周期,约200微秒(199.98MHz)。经过统计,在稠密视差匹配过程中,对于某图像,总共需要读取左侧图像的描述子(类型的数据)773575次,右侧图像的描述子(类型的数据)5062899次,网格信息(类型的数据)3789317次。总的读取数据所耗的时间约为(773575+5062899+3789317)*0.2,即1925158.2ms,耗时超大,无法满足实时性的要求。
如果采用本发明实施例一提供的方案,软件端通用处理器可以将软件端DDR中,硬件端需要的每一种类型的数据对应的碎片化的内存,按照硬件端需要的顺序拼接起来,使得每一种类型的数据组成一段连续数据,保存在DDR中连续分布的内存空间。
需要说明的是,由于硬件端每次读取的数据量一般比较小,即一个数据块对应的存储空间较小,因此,通过连续内存分配方式,可以快速地将硬件端需要获取的指定类型的数据整理到一个连续的存储空间中。
以图2(a)为例,对内存重组前,各种类型的数据占用的内存进行示意。其中,网格格子表示左侧图像的描述子类型的数据占用的内存、横线格子表示右侧图像的描述子类型的数据占用的内存,竖线格子表示网格信息类型的数据占用的内存。从图2(a)可以看出,每个数据块(每一段连续的网格格子,或者,每一段连续的横线格子,或者,每一段连续的竖线格子可以理解为一个数据块)占用的内存空间都较小,2字节到16字节(假设一个格子表示2个字节的内存空间)不等。
以图2(a)为例,软件端DDR中保存的左侧图像的描述子类型的数据块为9个,通用处理器可以分配连续内存,将按照硬件端对这9个数据块的获取先后顺序(假设按照由先到后的获取顺序),依次拼接对应的连续数据,保存在一段连续分布的内存空间。
软件端DDR中保存的右侧图像的描述子类型的数据块为7个,通用处理器可以分配连续内存,将按照硬件端对这7个数据块的获取先后顺序(假设按照由先到后的获取顺序),依次拼接对应的连续数据,保存在一段连续分布的内存空间。
软件端DDR中保存的网格信息类型的数据块为7个,通用处理器可以分配连续内存,将按照硬件端对这7个数据块的获取先后顺序(假设按照由先到后的获取顺序),依次拼接对应的连续数据,保存在一段连续分布的内存空间。
内存重组后各种类型的数据占用的内存可以如图2(b)所示。其中,网格格子表示拼接后得到的左侧图像的描述子类型的连续数据占用的内存,横线格子表示拼接后得到的右侧图像的描述子类型的连续数据占用的内存,竖线格子表示拼接后得到的网格信息类型的连续数据占用的内存。
此时,由于存储空间变成了连续的空间,且各个数据块是按照实际处理过程需要的顺序提供的,因此针对左侧图像的描述子类型的连续数据,或者,右侧图像的描述子类型的连续数据,或者,网格信息类型的连续数据,可以分别通过多通道DMA控制器的三个通道,采用DMA方式,从内部存储器对应的首地址对应的内存空间开始,从对应的内存长度的内存空间中,将在DDR中连续分布的数据传输给硬件端。在硬件端,针对接收到的每个连续数据,可以从该连续数据中,根据每次需要获取的数据长度,依次获取每次需要获取的数据块,根据每次获取的数据块实现数据处理,节约大量的数据传输等待时间,极大地提升系统性能。
经试验可知,在稠密视差匹配过程中,对于同一图像,采用本发明实施例一提供的 方案,数据传输耗时仅为470.4ms,相对于现有技术方案,数据传输时间提高了1925158.2/ 470.4
Figure 767906DEST_PATH_IMAGE002
4093倍。
综上可知,通过软件端将硬件端需要的数据,按照硬件端的处理顺序重新组织,将碎片化的内存整理成顺序存储的形式,使得硬件端进行连续分布内存中数据的连续获取(例如,通过DMA方式),可以大大提高整个系统的处理能力,有效提高引擎吞吐量。
与实施例一提供的片上系统对应的,提供以下的方法。
实施例三
本发明实施例三提供一种数据处理方法,该方法应用于片上系统,所述片上系统包括通用处理器、内部存储器和硬件加速器,所述硬件加速器需要的至少一种指定类型的数据保存在所述内部存储器中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,针对所述内部存储器中保存的所述硬件加速器需要的每一种指定类型的数据,该方法的步骤流程可以如图3所示,包括:
步骤101、通用处理器分配连续内存空间并重新组织存储数据。
在本步骤中,通用处理器可以在内部存储器中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在该段连续分布的内存空间。
所述连续数据对应按照硬件加速器对该指定类型的数据的获取先后顺序,由硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据。
需要说明的是,在一种可能的实现方式中,所述连续数据可以对应按照硬件加速器对该指定类型的数据的从先到后的获取顺序,由硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据。
另外,需要说明的是,在一种可能的实现方式中,通用处理器除了可以通过分配连续内存,将该指定类型的数据对应的连续数据保存在内部存储器中一段连续分布的内存空间,还可以清空内部存储器中用于保存该指定类型的数据块的内存空间,从而达到节约内部存储器中的存储空间的效果。
步骤102、硬件端获取数据并处理。
在本步骤中,硬件加速器可以从软件端内部存储器连续分布的内存空间,连续获取连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
在本实施例中,硬件加速器可以采取任意方式,从软件端内部存储器连续分布的内存空间,连续获取连续数据中每个该指定类型的数据块,通过数据块的连续获取,无需频繁访问软件端内部存储器,从而有效减少数据传输时间。
在一种可能的实现方式中,硬件加速器可以通过直接内存读取方式,从软件端内部存储器连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块。
此时,步骤101之后,步骤102之前可以包括步骤102’:
步骤102’、DMA控制器获取数据。
在本步骤中,DMA控制器可以接收通用处理器配置的连续分布的内存空间的首地址和内存长度,从内部存储器中,接收到的首地址对应的内存空间开始,从接收到的内存长度的内存空间中,获取连续数据,并发送给硬件加速器。需要说明的是,DMA控制器从内部存储器中,接收到的首地址对应的内存空间开始,从接收到的内存长度的内存空间中,获取连续数据,并发送给硬件加速器,可以理解为是DMA控制器获得数据总线的控制权之后执行的。
此时,步骤102中,硬件加速器从软件端内部存储器连续分布的内存空间,连续获取连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理,可以包括:
接收DMA控制器发送的连续数据,从接收到的连续数据中获取每次需要获取的该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
需要说明的是,硬件加速器在接收DMA控制器发送的连续数据的过程中,即可以从接收到的连续数据中获取每次需要获取的该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理,从而进一步提高系统的数据处理能力。
本发明实施例四提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,当可执行程序被处理器执行时,实现本发明实施例三提供的方法。
Figure DEST_PATH_IMAGE003
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实 现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为 一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或 者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互 之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连 接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus Flash Drive)、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.一种片上系统,所述片上系统包括通用处理器、内部存储器和硬件加速器,所述硬件加速器需要的至少一种指定类型的数据保存在所述内部存储器中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,其特征在于,针对所述内部存储器中保存的所述硬件加速器需要的每一种指定类型的数据:
所述通用处理器,用于在所述内部存储器中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在所述连续分布的内存空间,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据;
所述硬件加速器,用于从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
2.如权利要求1所述的片上系统,其特征在于,所述片上系统还包括直接内存读取控制器:
所述直接内存读取控制器,用于接收所述通用处理器配置的所述连续分布的内存空间的首地址和内存长度,从所述内部存储器所述首地址对应的内存空间开始,从所述内存长度的内存空间中,获取所述连续数据,并发送给所述硬件加速器;
所述硬件加速器,具体用于接收所述直接内存读取控制器发送的所述连续数据,从所述连续数据中获取每次需要获取的该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
3.如权利要求1所述的片上系统,其特征在于,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据,包括:
所述连续数据对应按照所述硬件加速器对该指定类型的数据的从先到后的获取顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据。
4.如权利要求1~3任一所述的片上系统,其特征在于,所述通用处理器,还用于清空所述内部存储器中用于保存该指定类型的数据块的内存空间。
5.一种数据处理方法,该方法应用于片上系统,所述片上系统包括通用处理器、内部存储器和硬件加速器,所述硬件加速器需要的至少一种指定类型的数据保存在所述内部存储器中,且每一种指定类型的数据,所述硬件加速器至少需要获取两次,其特征在于,针对所述内部存储器中保存的所述硬件加速器需要的每一种指定类型的数据,所述方法包括:
所述通用处理器在所述内部存储器中分配一段连续分布的内存空间,将该指定类型的数据对应的连续数据保存在所述连续分布的内存空间,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据;
所述硬件加速器从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
直接内存读取控制器接收所述通用处理器配置的所述连续分布的内存空间的首地址和内存长度,从所述内部存储器所述首地址对应的内存空间开始,从所述内存长度的内存空间中,获取所述连续数据,并发送给所述硬件加速器;
所述硬件加速器从所述连续分布的内存空间,连续获取所述连续数据中每个该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理,包括:
接收所述直接内存读取控制器发送的所述连续数据,从所述连续数据中获取每次需要获取的该指定类型的数据块,根据获取的每个该指定类型的数据块实现数据处理。
7.如权利要求5所述的方法,其特征在于,所述连续数据对应按照所述硬件加速器对该指定类型的数据的获取先后顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据,包括:
所述连续数据对应按照所述硬件加速器对该指定类型的数据的从先到后的获取顺序,由所述硬件加速器每次需要获取的该指定类型的数据块依次拼接得到的一段数据。
8.如权利要求5~7任一所述的方法,其特征在于,所述方法还包括:
所述通用处理器清空所述内部存储器中用于保存该指定类型的数据块的内存空间。
9.一种非易失性计算机存储介质,其特征在于,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现权利要求5~8任一所述的方法。
CN202010488770.0A 2020-06-02 2020-06-02 一种数据处理方法和片上系统 Pending CN111459879A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010488770.0A CN111459879A (zh) 2020-06-02 2020-06-02 一种数据处理方法和片上系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010488770.0A CN111459879A (zh) 2020-06-02 2020-06-02 一种数据处理方法和片上系统

Publications (1)

Publication Number Publication Date
CN111459879A true CN111459879A (zh) 2020-07-28

Family

ID=71680328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010488770.0A Pending CN111459879A (zh) 2020-06-02 2020-06-02 一种数据处理方法和片上系统

Country Status (1)

Country Link
CN (1) CN111459879A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527197A (zh) * 2020-12-09 2021-03-19 北京握奇智能科技有限公司 一种智能卡碎片存储空间整理方法、智能卡及系统
CN112749112A (zh) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 一种硬件流水结构

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085393A (ja) * 2004-09-15 2006-03-30 National Institute Of Information & Communication Technology デバイスからの高速データ転送方法及びデータ処理装置
US20090216958A1 (en) * 2008-02-21 2009-08-27 Arm Limited Hardware accelerator interface
US9684615B1 (en) * 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
CN108701348A (zh) * 2017-08-31 2018-10-23 深圳市大疆创新科技有限公司 处理图像的方法、集成电路、处理器、系统和可移动设备
CN111159075A (zh) * 2019-12-31 2020-05-15 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085393A (ja) * 2004-09-15 2006-03-30 National Institute Of Information & Communication Technology デバイスからの高速データ転送方法及びデータ処理装置
US20090216958A1 (en) * 2008-02-21 2009-08-27 Arm Limited Hardware accelerator interface
US9684615B1 (en) * 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
CN108701348A (zh) * 2017-08-31 2018-10-23 深圳市大疆创新科技有限公司 处理图像的方法、集成电路、处理器、系统和可移动设备
CN111159075A (zh) * 2019-12-31 2020-05-15 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(美)奥沙那: "《嵌入式实时系统的DSP软件开发技术》", 31 January 2011 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527197A (zh) * 2020-12-09 2021-03-19 北京握奇智能科技有限公司 一种智能卡碎片存储空间整理方法、智能卡及系统
CN112749112A (zh) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 一种硬件流水结构
CN112749112B (zh) * 2020-12-31 2021-12-24 无锡众星微系统技术有限公司 一种硬件流水结构

Similar Documents

Publication Publication Date Title
JP5121291B2 (ja) データ転送システム
CN105843819B (zh) 一种数据导出方法及装置
CN111459879A (zh) 一种数据处理方法和片上系统
CN112703489A (zh) 控制器、存储器件访问系统、电子设备和数据传输方法
CN102566958B (zh) 一种基于sgdma的图像分割处理装置
CN107256233B (zh) 一种数据存储方法和装置
CN106227506A (zh) 一种内存压缩系统中的多通道并行压缩解压系统及方法
WO2019174206A1 (zh) 一种存储设备的数据读取方法、装置、终端设备和存储介质
CN113286174A (zh) 视频抽帧方法、装置、电子设备、计算机可读存储介质
CN110968538B (zh) 一种数据缓冲方法和装置
CN115658625B (zh) 数据解压系统、图形处理系统、装置、设备及解压方法
US20100153678A1 (en) Memory management apparatus and method
JP6332756B2 (ja) データ処理方法、装置、およびシステム
US20160085683A1 (en) Data receiving device and data receiving method
US9348777B2 (en) Hardware apparatus for a system, system and memory access method
CN106776393B (zh) 一种无中断的串口数据接收方法和装置
CN107797757B (zh) 影像处理系统中的快取存储器管理方法及装置
CN114327854A (zh) 利用协程处理业务请求的方法及相关设备
US7159084B1 (en) Memory controller
US7899957B1 (en) Memory controller having a buffer for providing beginning and end data
CN116661684B (zh) 一种闪存数据的读取方法、系统、设备及介质
CN112131423A (zh) 图片获取方法、装置及系统
CN113419988B (zh) 异构多核数据的传输方法、装置、设备及存储介质
CN117033002B (zh) 一种内存管理方法、装置、设备及存储介质
CN115941792B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200728

RJ01 Rejection of invention patent application after publication