CN115292054A - 数据处理方法、装置、系统级芯片及存储介质 - Google Patents
数据处理方法、装置、系统级芯片及存储介质 Download PDFInfo
- Publication number
- CN115292054A CN115292054A CN202211220260.0A CN202211220260A CN115292054A CN 115292054 A CN115292054 A CN 115292054A CN 202211220260 A CN202211220260 A CN 202211220260A CN 115292054 A CN115292054 A CN 115292054A
- Authority
- CN
- China
- Prior art keywords
- data
- core
- processed
- core node
- memory address
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请实施例公开了一种芯片技术领域,具体涉及一种数据处理方法、装置、系统级芯片及存储介质,本申请的数据处理方法应用于系统级芯片,系统级芯片包括:多个IP核节点,一个IP核节点可向另一个IP核节点的缓冲区发送待处理数据的内存地址,从而使得另一个核节点能够基于缓冲区中存储的内存地址读取待处理数据,并进行数据处理。本申请实施例中的IP核节点无需向CPU发送中断请求并在CPU的指示下与另一个IP核进行交互,而是由IP核之间进行交互,从而降低了IP核进行数据处理的延迟以及时间的不确定性,加快了IP核进行数据处理的时间。
Description
技术领域
本申请涉及芯片技术领域,具体涉及一种数据处理方法、装置、系统级芯片及存储介质。
背景技术
系统级芯片(System on Chip,SOC)是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。在集成电路中,知识产权核(intellectual propertycore,IP核)是指芯片中具有独立功能的电路模块的成熟设计。
SOC在进行数据处理时,一个IP核将数据写入内存后,该IP核会向处理器(centralprocessing unit,CPU)发送中断请求,待CPU将当前执行的任务中断后,CPU会通知下一个处理该数据的IP核从内存中读取该数据进行处理,处理完成之后再次向CPU发送中断请求,以此类推,直至该数据处理完毕。
然而,上述IP核需要频繁与CPU交互,CPU频繁中断,影响数据处理进度,导致数据处理延迟增加。
发明内容
本申请实施例提供一种数据处理方法、装置、系统级芯片及存储介质,减少系统级芯片处理数据的延迟。
一方面,本申请提供一种数据处理方法,数据处理方法应用于系统级芯片,系统级芯片包括:内存、多个用于处理待处理数据的IP核节点,每个IP核节点在系统级芯片中具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址,所述数据处理方法包括:确定待处理数据在处理过程中需要依次经过的IP核节点,其中,所述依次经过的IP核节点包括第一IP核节点和第二IP核节点;通过第一IP核节点向内存中写入待处理数据,得到存储待处理数据的第一内存地址;将第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储第一内存地址的缓冲区地址;控制所述第二IP核节点按照缓冲区地址,从目标缓冲区读取第一内存地址;控制第二IP核节点按照第一内存地址,从内存中读取待处理数据;通过所述第二IP核节点处理所述待处理数据。
在本申请一些实施方案中,第二IP核节点包括多个IP核,所述通过所述第二IP核节点处理所述待处理数据,包括:在所述多个IP核中确定用于处理所述待处理数据的目标IP核;通过目标IP核处理所述待处理数据。
在本申请一些实施方案中,目标IP核包括:第一IP核和第二IP核,通过目标IP核处理所述待处理数据,包括:通过所述第一IP核处理所述待处理数据,得到第一待处理数据;将所述第一待处理数据传输至第二IP核;通过所述第二IP核处理所述第一待处理数据。
在本申请一些实施方案中,目标缓冲区还存储有表征内存地址是否有效的标签,无效标签表征当前内存地址无剩余读取次数,有效标签表征当前内存地址存在剩余读取次数;控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址,包括:若所述第一内存地址的标签为有效标签,则控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址。
在本申请一些实施方案中,将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址,包括:在所述目标缓冲区中查找出目标存储空间,所述目标存储空间存储的内存地址的标签为无效标签;将所述第一内存地址写入所述目标存储空间,得到存储所述第一内存地址的缓冲区地址。
在本申请一些实施方案中,依次经过的IP核节点还包括所述第三IP核节点,所述通过所述第二IP核节点中的IP核处理所述待处理数据之后,所述方法还包括:通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据,得到存储所述经第二IP核节点处理后的待处理数据的第二内存地址;将所述第二内存地址写入与所述第三IP核节点关联的缓冲区。
在本申请一些实施方案中,所述系统级芯片还包括:处理器,在所述通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据之后,所述方法还包括:控制所述第二IP核节点向处理器发送剩余读取次数更新消息;通过所述处理器更新所述第一内存地址的剩余读取次数。
另一方面,本申请提供一种数据处理装置,所述数据处理装置应用于系统级芯片,所述系统级芯片包括:内存、多个用于处理待处理数据的IP核节点,每个IP核节点在系统级芯片中具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址,所述数据处理装置包括:
地址写入模块,用于确定待处理数据在处理过程中需要依次经过的IP核节点,其中,所述依次经过的IP核节点包括第一IP核节点和第二IP核节点;通过所述第一IP核节点向内存中写入待处理数据,得到存储所述待处理数据的第一内存地址;
数据读取模块,用于将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址;控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址;控制所述第二IP核节点按照所述第一内存地址,从所述内存中读取所述待处理数据;
数据处理模块,用于通过所述第二IP核节点处理所述待处理数据。
另一方面,本申请还提供一种系统级芯片,所述系统级芯片包括:
内存、和多个用于处理待处理数据的IP核节点,每个IP核节点具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址;
一个或多个处理器;
以及一个或多个应用程序,其中所述一个或多个应用程序在执行时被存储于所述内存中,并配置为由所述处理器执行以实现第一方面中任一项所述的数据处理方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的数据处理方法中的步骤。
本申请实施例一个IP核节点,即第一IP核节点可向另一个IP核节点,即第二IP核节点的缓冲区发送待处理数据的内存地址,从而使得另一个核节点能够基于缓冲区中存储的内存地址读取待处理数据,并进行处理,无需向CPU发送中断请求,由IP核间进行交互,从而降低了IP核进行数据处理的延迟以及时间的不确定性,加快了IP核进行数据处理的时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的数据处理方法的处理场景示意图;
图2是本申请实施例中提供的SOC中各IP核节点间数据交互的示意图;
图3是本申请实施例中提供的缓冲区控制器的结构示意图;
图4是本申请实施例中提供的数据处理方法的一个实施例流程示意图;
图5是本申请实施例中提供的数据处理方法的场景示意图;
图6是本申请实施例中提供的IP核节点中的数据处理分支示意图;
图7是本申请实施例中提供的各IP核节点间通信网络图;
图8是本申请实施例中提供的数据处理装置的一个实施例结构示意图。
具体实施方式
SOC在进行数据处理时,一个IP核将数据写入内存后,该IP核会向CPU发送中断请求,待CPU将当前执行的任务中断后,CPU会通知下一个处理该数据的IP核从内存中读取该数据进行处理,处理完成之后再次向CPU发送中断请求,以此类推,直至该数据处理完毕。
例如,可参考下图1所示,处理数据的IP核依次为:IP0、IP1、IP2,……,IPn,当IP0向内存写数据后,IP0向CPU发送中断请求,以告知CPU该数据已经存入内存,然后,CPU通知IP1从相应的内存地址中读取该数据进行处理, IP1将处理后的数据写回内存后,IP1向CPU发送中断请求,以此类推,直至CPU通知IPn从内存中取出数据。
上述为SOC中具有直接存储器访问(Direct Memory Access,DMA)功能的IP核的数据处理方式。
然而,上述数据处理方式中IP核需与CPU不断交互,增加了数据处理的延迟,处理数据所用的IP核越多,延迟越大,而且,若IP核向CPU发出中断请求时,CPU正在执行不能中断的任务,CPU需要在执行该任务后,才能向IP核发送指令,在此过程中,IP核持续等待CPU的指令,进而导致数据处理延迟的不确定性。
鉴于此,本申请实施例提出一种数据处理方法、装置、系统级芯片及存储介质,能够减少数据处理过程中IP核与CPU频繁交互,从而减少CPU因指示IP核操作而产生中断的情况,进而减少数据处理的延迟,而且,还能降低数据处理的延迟的不确定性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
需要说明的是,本申请实施例方法由于是在系统级芯片中执行,各系统级芯片的处理对象均以数据或信息的形式存在,例如时间,实质为时间信息,可以理解的是,后续实施例中若提及地址、数量、位置等,均为对应的数据存在,以便系统级芯片进行处理,具体此处不作赘述。
本申请实施例提供一种数据处理方法、装置、系统级芯片及存储介质,以下分别进行详细说明。
本申请实施例中提供一种数据处理方法,该数据处理方法的执行主体为数据处理装置,该数据处理装置应用于系统级芯片。
请参阅图2所示,图2为本申请实施例所提供的SOC中各IP核节点间数据交互的示意图,图2中实线箭头为数据信号,虚线箭头为控制信号,该SOC包括:内存201、多个用于处理待处理数据的IP核节点202,以及互联结构(interconnect)。
其中,内存可以为双倍速率同步动态随机存储器(Double Data Rate,DDR),待处理数据可以包括图像的帧数据,但不限于此。每个IP核节点包括至少一个IP核,IP核可以包括多种功能,例如:图像的旋转、放大、缩小、数据的加密、解密等。
互联结构能够兼容多种总线协议,其能够实现各IP核节点之间、以及IP核节点与内存之间的控制信号和数据信号的传输。
多个用于处理待处理数据的IP核节点202可以包括源IP核节点、目的IP核节点,还可以包括:中间IP核节点。其中,处理数据所用到的第一个IP核节点称作源IP核节点,处理数据所用到的最后一个IP核节点称作目的IP核节点。源IP核节点和目的IP核节点可称为中间IP核节点。
在整个待处理数据的处理过程中,处理该待处理数据所用到的IP核节点,以及各IP核节点处理该待处理的先后顺序可称作待处理数据的关键路径。即关键路径表征待处理数据从源IP核节点至目标IP核节点的全部处理过程。
每个IP核节点具有与该IP核节点关联的缓冲区,与该IP核节点关联的缓冲区用于存储该IP核节点的待处理数据的内存地址。
可从内存中开辟一块存储空间作为与该IP核节点关联的缓冲区,也可在SOC中的其他存储器中开辟存储空间作为该IP核节点关联的缓冲区,本申请实施例不对此进行限定。
在一些实施例中,与该IP核节点关联的缓冲区还用于存储内存地址是否有效的标签。无效标签表征当前内存地址无剩余读取次数,有效标签表征当前内存地址存在剩余读取次数。
每个缓冲区具有对应的缓冲区控制器203,缓冲区控制器203用于控制对应的缓冲区。
可参照图3所示,缓冲区控制器包括:
内存地址接收单元301,用于接收上游模块发送的内存地址。上游模块可以为在关键路径上,当前IP核节点的上一个IP核节点,在当前IP核为源IP核节点时,上游模块可为与该源IP核节点进行数据传输的部件。
内存地址存储单元302,用于在当前IP核节点关联的缓冲区存储接收到的内存地址。
内存地址查找单元303,用于响应当前IP核节点中的IP核的内存地址查找请求,在当前IP核节点关联的缓冲区中查找出该IP核请求的内存地址,并将内存地址传输至当前IP核节点中的IP核。
该IP核得到内存地址后,会从该内存地址中查找待处理数据。
内存地址发送单元304,用于在当前IP核节点中的IP核通过内存地址查找到待处理数据并进行处理后,将处理后的数据写入内存,并将处理后的数据的内存地址发往下游模块。下游模块可为在待处理数据的关键路径上,当前IP核节点的下一IP核节点,若当前IP核节点为目的IP核节点,下游模块可为与当前IP核节点进行数据传输的部件。
上述缓冲区控制器的功能仅为示例,例如若缓冲区为源IP核节点关联的缓冲区时,该缓冲区功能的功能可以包括:确定当前的待处理数据,通过IP核节点将当前的待处理数据写入内存,得到当前待处理数据的内存地址,将内存地址传输至下游模块。
需要说明的是,图2所示的SOC中各IP核节点间数据交互的示意图仅仅是一个示例,本申请实施例描述的SOC是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,如SOC还可以包括:接口控制模块等,本领域普通技术人员可知,随着SOC的演变,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
应用于上述系统级芯片的数据处理方法包括:确定待处理数据在处理过程中需要依次经过的IP核节点,其中,依次经过的IP核节点包括第一IP核节点和第二IP核节点;通过第一IP核节点向内存中写入待处理数据,得到存储待处理数据的第一内存地址;将第一内存地址写入与第二IP核节点关联的目标缓冲区,得到存储第一内存地址的缓冲区地址;控制第二IP核节点按照缓冲区地址,从目标缓冲区读取第一内存地址;控制第二IP核节点按照第一内存地址,从内存中读取待处理数据;通过第二IP核节点处理待处理数据。
本申请实施例一个IP核节点(第一IP核节点)可向另一个IP核节点(第二IP核节点)的缓冲区发送待处理数据的内存地址,从而使得另一个核节点能够基于缓冲区中存储的内存地址读取待处理数据,并进行处理,本申请实施例无需向CPU发送中断请求,而是由IP核间进行交互,从而降低了IP核进行数据处理的延迟以及时间的不确定性,加快了IP核进行数据处理的时间。
如图4所示,为本申请实施例中数据处理方法的一个实施例流程示意图,下面结合图4对本申请实施例的数据处理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。该数据处理方法包括:
步骤401,确定待处理数据在处理过程中需要依次经过的IP核节点。
其中,待处理数据可以通过SOC芯片的用于接收数据的接口获取,也可以通过SOC中的其他部件获取,本申请实施例不对此进行限定。
本申请实施例中,待处理数据在处理过程中需要依次经过多个IP核节点的处理,确定待处理数据在处理过程中需要依次经过的IP核节点即确定待处理数据的关键路径。
其中,依次经过的IP核节点包括:第一IP核节点和第二IP核节点,每个IP核节点中包括至少一个IP核。待处理数据需要依次经过的IP核节点可预先配置,也可以通过其他方式确定,本申请实施例不对此进行限定。
第一IP核节点和第二IP核节点可为关键路径上按照数据处理顺序任意相邻的两个IP核节点,且,第一IP核节点在关键路径上的数据处理顺序早于第二IP核节点。
可以理解的是,待处理数据需要依次经过的IP核节点除了第一IP核节点和第二IP核节点之外,还可以有更多的IP核节点,具体此处不作限定。
示例性地,可参考图5所示,待处理数据的关键路径,即待处理数据在处理过程中需要依次经过的IP核节点为IP核节点1、IP核节点2,……,和IP核节点n,其中,IP核节点1包括IP1, IP核节点2包括IP2,……,IP核节点n包括IPn;待处理数据需要依次经过IP1至IPn处理,在该关键路径中,IP0可作为第一IP核节点中的IP核,IP1可作为第二IP核节点中的IP核,又例如:IP1可作为第一IP核节点中的IP核,IP2可作为第二IP核节点中的IP核。
步骤402,通过第一IP核节点向内存中写入待处理数据,得到存储待处理数据的第一内存地址。
例如,图5中的IP0为第一IP核节点中的IP核,IP0向内存中写入待处理数据,得到存储待处理数据的第一内存地址,第一内存地址即内存中存储待处理数据的内存地址。
步骤403,将第一内存地址写入与第二IP核节点关联的目标缓冲区,得到存储第一内存地址的缓冲区地址。
目标缓冲区用于存储第二IP核节点的待处理数据的内存地址。
目标缓冲区的存储空间大小可根据实际情况进行设置。例如,在图像处理中,存储空间大小可设置为N个图像帧的内存地址的大小,N为大于0的正整数,示例性的,N可以为3。
在一些实施例中,目标缓冲区还用于存储表征内存地址是否有效的标签,无效标签表征当前内存地址无剩余读取次数,有效标签表征当前内存地址存在剩余读取次数。
示例性地,目标缓冲区中存储的用于存储内存地址的缓冲区地址、表征内存地址是否有效的标签核内存地址可参见下表1所示。
表1
缓冲区地址 | 内存地址 | 标签 |
Buffer_address1 | Memory_address1 | 有效(valid) |
Buffer_address2 | Memory_address2 | 无效(invalid) |
Buffer_address3 | Memory_address3 | 有效 |
在一些实施例中,每隔预设周期将标签为无效的内存地址对应的存储空间释放。本实施例能够及时清理缓冲区空间,避免因缓冲区空间不足影响后续内存地址的存储。
在另一些实施例,若目标缓冲区存储空间不足,在所述目标缓冲区中查找出目标存储空间,所述目标存储空间存储的内存地址的标签为无效标签;将所述第一内存地址写入所述目标存储空间,得到所述内存地址的缓冲区地址。
本实施例在缓冲区存储空间不足的情况下下,可覆盖标签为无效的内存地址,避免影响其他待处理数据的处理过程,还能够确保当前待处理数据的内存地址可以成功存储于缓冲区。
步骤404,控制第二IP核节点按照缓冲区地址,从目标缓冲区读取第一内存地址。
具体地,若第二IP核节点仅包括一个IP核,则该IP核为用于读取第一内存地址的IP核,若第二IP核节点包括多个IP核,则在该多个IP核中确定用于读取第一内存地址的IP核,通过用于读取第一内存地址的IP核从目标缓冲区读取第一内存地址。
在一些实施例中,若第一内存地址的标签为有效标签,则控制第二IP核节点按照缓冲区地址,从目标缓冲区读取第一内存地址。
即本实施例在判定第一内存地址存在剩余读取次数后,才会读取第一内存地址,以对第一内存地址的读取次数进行控制,进而控制待处理数据的读取次数。
步骤405,控制第二IP核节点按照第一内存地址,从内存中读取待处理数据。
步骤406,通过第二IP核节点处理待处理数据。
具体地,若第二IP核节点包括多个IP核,在多个IP核中确定用于处理所述待处理数据的目标IP核;通过目标IP核处理所述待处理数据。
目标IP核可根据实际需求选择,本申请实施例不对此进行限定。
进一步地,在目标IP核包括第一IP核和第二IP核的情况下,通过第一IP核处理该待处理数据,得到第一待处理数据;将第一待处理数据传输至第二IP核;通过所述第二IP核处理该第一待处理数据。
本实施例中,在同一IP核节点的各IP核之间数据可以互相传输,无需通过内存实现数据共享,提高IP核节点的数据处理效率,而且,本实施例在同一IP和节点中待处理数据可经过不同的IP核进行不同的处理。
在一些实施例中,在依次经过的IP核节点还包括第三IP核节点的情况下,在步骤406之后,还包括:
通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据,得到存储经第二IP核节点处理后的待处理数据的第二内存地址;
将第二内存地址写入与第三IP核节点关联的缓冲区。
第三IP核节点为关键路径按照数据处理顺序与第二IP核节点相邻的IP核节点,且,第二IP核节点在关键路径上的数据处理顺序早于第三IP核节点。
示例性地,可参考图6所示,以第二IP核节点包括:IP0、IP1为例,若目标IP核为IP0,则由IP0从目标缓冲区读取第一内存地址,通过第一内存地址在内存中读取待处理数据,将待处理数据处理完成之后,得到经第二IP核节点处理后的待处理数据,IP0将该处理后的数据写入内存。
若目标IP核为IP0和IP1,IP0可作为第一IP核从目标缓冲区读取第一内存地址,通过第一内存地址在内存中读取待处理数据,并通过第一IP核处理待处理数据,得到第一待处理数据,将第一待处理数据传输至第二IP核,即IP1,IP1处理第一待处理数据后,得到第二待处理数据(经第二IP核节点处理后的待处理数据),将第二待处理数据写入内存,得到第二内存地址,将第二内存地址写入与第三IP核节点关联的缓冲区。
进一步地,在通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据之后,还包括:
控制第二IP核节点向处理器发送剩余读取次数更新消息;
通过处理器更新第一内存地址的剩余读取次数。
例如,第一内存地址的剩余读取次数记作counter,CPU收到剩余读取次数更新消息,将counter减1,当counter为0时,则表征第一内存地址不存在剩余读取次数,可将第一内存地址的标签设为无效。
值得一提的是,虽然本实施例的IP核需要与CPU进行交互以更新剩余读取次数,但是在交互过程中,无需等待CPU通知IP核节点处理该待处理数据,待处理数据在关键路径上的处理流程仍能正常进行,因此,本实施例即使存在CPU与IP核的交互,也并不会导致数据处理的延时增加。
参考图7所示,通过上述数据处理方法,各IP核节点构成了一个分布式的数据处理网络。SOC通过源IP核节点的缓冲区控制器控制源IP核节点将待处理数据的内存地址发送至相关的中间IP核节点,直至待处理数据经目标IP核节点处理,表征数据处理完毕。
本申请实施例第一IP核节点可向另一个IP核节点的缓冲区发送待处理数据的内存地址,从而使得另一个核节点能够基于缓冲区中存储的内存地址读取待处理数据,并进行处理,无需向CPU发送中断请求,由IP核间进行交互,从而降低了IP核进行数据处理的延迟以及时间的不确定性,加快了IP核进行数据处理的时间。
参考图8所示,本申请实施例还提供一种数据处理装置,该数据处理装置应用于系统级芯片,所述系统级芯片包括:内存、多个用于处理待处理数据的IP核节点,每个IP核节点在系统级芯片中具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址,所述数据处理装置包括:
地址写入模块801,用于确定待处理数据在处理过程中需要依次经过的IP核节点,其中,所述依次经过的IP核节点包括第一IP核节点和第二IP核节点;通过所述第一IP核节点向内存中写入待处理数据,得到存储所述待处理数据的第一内存地址;
数据读取模块802,用于将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址;控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址;控制所述第二IP核节点按照所述第一内存地址,从所述内存中读取所述待处理数据;
数据处理模块803,用于通过所述第二IP核节点处理所述待处理数据。
在本申请一些实施方案中,第二IP核节点包括多个IP核,数据处理模块803中通过所述第二IP核节点处理所述待处理数据,包括:在所述多个IP核中确定用于处理所述待处理数据的目标IP核;通过目标IP核处理所述待处理数据。
在本申请一些实施方案中,数据处理模块803中目标IP核包括第一IP核和第二IP核。通过目标IP核处理所述待处理数据,包括:通过所述第一IP核处理所述待处理数据,得到第一待处理数据;将所述第一待处理数据传输至第二IP核;通过所述第二IP核处理所述第一待处理数据。
在本申请一些实施方案中,目标缓冲区还存储有表征内存地址是否有效的标签,无效标签表征当前内存地址无剩余读取次数,有效标签表征当前内存地址存在剩余读取次数;数据读取模块802中控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址,包括:若所述第一内存地址的标签为有效标签,则控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址。
在本申请一些实施方案中,数据读取模块802中将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址,包括:在所述目标缓冲区中查找出目标存储空间,所述目标存储空间存储的内存地址的标签为无效标签;将所述第一内存地址写入所述目标存储空间,得到存储所述第一内存地址的缓冲区地址。
在本申请一些实施方案中,依次经过的IP核节点还包括所述第三IP核节点,数据处理模块803进一步用于在通过所述第二IP核节点中的IP核处理所述待处理数据之后,通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据,得到存储所述经第二IP核节点处理后的待处理数据的第二内存地址;将所述第二内存地址写入与所述第三IP核节点关联的缓冲区。
在本申请一些实施方案中,所述系统级芯片还包括:处理器,数据处理模块803进一步用于在所述通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据之后,控制所述第二IP核节点向处理器发送剩余读取次数更新消息;通过所述处理器更新所述第一内存地址的剩余读取次数。
本申请实施例还提供一种系统级芯片,其集成了本申请实施例所提供的任一种数据处理装置,所述系统级芯片包括:
内存、和多个用于处理待处理数据的IP核节点,每个IP核节点具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址;
一个或多个处理器;
以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述数据处理方法实施例中任一实施例中所述的数据处理方法中的步骤。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种数据处理方法中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据处理方法、装置、系统级芯片及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,所述数据处理方法应用于系统级芯片,所述系统级芯片包括:内存、多个用于处理待处理数据的IP核节点,每个IP核节点在所述系统级芯片中具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址,所述数据处理方法包括:
确定待处理数据在处理过程中需要依次经过的IP核节点,其中,所述依次经过的IP核节点包括第一IP核节点和第二IP核节点;
通过所述第一IP核节点向内存中写入待处理数据,得到存储所述待处理数据的第一内存地址;
将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址;
控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址;
控制所述第二IP核节点按照所述第一内存地址,从所述内存中读取所述待处理数据;
通过所述第二IP核节点处理所述待处理数据。
2.根据权利要求1所述的数据处理方法,其特征在于,所述第二IP核节点包括多个IP核,所述通过所述第二IP核节点处理所述待处理数据,包括:
在所述多个IP核中确定用于处理所述待处理数据的目标IP核;
通过目标IP核处理所述待处理数据。
3.根据权利要求2所述的数据处理方法,其特征在于,所述目标IP核包括第一IP核和第二IP核,所述通过目标IP核处理所述待处理数据,包括:
通过所述第一IP核处理所述待处理数据,得到第一待处理数据;
将所述第一待处理数据传输至第二IP核;
通过所述第二IP核处理所述第一待处理数据。
4.根据权利要求1所述的数据处理方法,其特征在于,所述目标缓冲区还存储有表征内存地址是否有效的标签,无效标签表征当前内存地址无剩余读取次数,有效标签表征当前内存地址存在剩余读取次数;
所述控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址,包括:
若所述第一内存地址的标签为有效标签,则控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址。
5.根据权利要求4所述的数据处理方法,其特征在于,所述将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址,包括:
在所述目标缓冲区中查找出目标存储空间,所述目标存储空间存储的内存地址的标签为无效标签;
将所述第一内存地址写入所述目标存储空间,得到存储所述第一内存地址的缓冲区地址。
6.根据权利要求4所述数据处理方法,其特征在于,所述依次经过的IP核节点还包括第三IP核节点,所述通过所述第二IP核节点处理所述待处理数据之后,所述方法还包括:
通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据,得到存储所述经第二IP核节点处理后的待处理数据的第二内存地址;
将所述第二内存地址写入与所述第三IP核节点关联的缓冲区。
7.根据权利要求6所述数据处理方法,其特征在于,所述系统级芯片还包括:处理器,在所述通过第二IP核节点向内存中写入经第二IP核节点处理后的待处理数据之后,所述方法还包括:
控制所述第二IP核节点向处理器发送剩余读取次数更新消息;
通过所述处理器更新所述第一内存地址的剩余读取次数。
8.一种数据处理装置,其特征在于,所述数据处理装置应用于系统级芯片,所述系统级芯片包括:内存、多个用于处理待处理数据的IP核节点,每个IP核节点具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址,所述数据处理装置包括:
地址写入模块,用于确定待处理数据在处理过程中需要依次经过的IP核节点,其中,所述依次经过的IP核节点包括第一IP核节点和第二IP核节点;通过所述第一IP核节点向内存中写入待处理数据,得到存储所述待处理数据的第一内存地址;
数据读取模块,用于将所述第一内存地址写入与所述第二IP核节点关联的目标缓冲区,得到存储所述第一内存地址的缓冲区地址;控制所述第二IP核节点按照所述缓冲区地址,从所述目标缓冲区读取所述第一内存地址;控制所述第二IP核节点按照所述第一内存地址,从所述内存中读取所述待处理数据;
数据处理模块,用于通过所述第二IP核节点处理所述待处理数据。
9.一种系统级芯片,其特征在于,所述系统级芯片包括:
内存、和多个用于处理待处理数据的IP核节点,每个IP核节点在所述系统级芯片中具有与所述IP核节点关联的缓冲区,所述关联的缓冲区用于存储所述IP核节点的待处理数据的内存地址;
一个或多个处理器;
一个或多个应用程序,其中所述一个或多个应用程序在执行时被存储于所述内存中,并配置为由所述处理器执行以实现权利要求1至7中任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至7任一项所述的数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211220260.0A CN115292054B (zh) | 2022-10-08 | 2022-10-08 | 数据处理方法、装置、系统级芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211220260.0A CN115292054B (zh) | 2022-10-08 | 2022-10-08 | 数据处理方法、装置、系统级芯片及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115292054A true CN115292054A (zh) | 2022-11-04 |
CN115292054B CN115292054B (zh) | 2022-12-06 |
Family
ID=83833227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211220260.0A Active CN115292054B (zh) | 2022-10-08 | 2022-10-08 | 数据处理方法、装置、系统级芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292054B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120036509A1 (en) * | 2010-08-06 | 2012-02-09 | Sonics, Inc | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
CN102812438A (zh) * | 2010-03-01 | 2012-12-05 | 索尼克斯公司 | 用于优化多核系统中的并发性的各种方法和装置 |
CN110399219A (zh) * | 2019-07-18 | 2019-11-01 | 深圳云天励飞技术有限公司 | 内存访问方法、dmc及存储介质 |
CN112631757A (zh) * | 2020-12-31 | 2021-04-09 | 成都卓讯云网科技有限公司 | 一种ddr4多用户访问的调度方法和设备 |
WO2021168861A1 (zh) * | 2020-02-29 | 2021-09-02 | 华为技术有限公司 | 一种多核处理器、多核处理器处理方法及相关设备 |
CN113490917A (zh) * | 2019-03-15 | 2021-10-08 | 英特尔公司 | 内核间的本地存储器共享 |
WO2022063255A1 (zh) * | 2020-09-28 | 2022-03-31 | 上海商汤智能科技有限公司 | 芯片系统 |
CN114546896A (zh) * | 2022-02-22 | 2022-05-27 | 杭州中天微系统有限公司 | 系统内存管理单元、读写请求处理方法、电子设备和片上系统 |
CN114661428A (zh) * | 2022-03-03 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种原子操作的处理方法、设备、装置及存储介质 |
CN114928579A (zh) * | 2021-02-01 | 2022-08-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-10-08 CN CN202211220260.0A patent/CN115292054B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102812438A (zh) * | 2010-03-01 | 2012-12-05 | 索尼克斯公司 | 用于优化多核系统中的并发性的各种方法和装置 |
US20120036509A1 (en) * | 2010-08-06 | 2012-02-09 | Sonics, Inc | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
CN113490917A (zh) * | 2019-03-15 | 2021-10-08 | 英特尔公司 | 内核间的本地存储器共享 |
CN110399219A (zh) * | 2019-07-18 | 2019-11-01 | 深圳云天励飞技术有限公司 | 内存访问方法、dmc及存储介质 |
WO2021168861A1 (zh) * | 2020-02-29 | 2021-09-02 | 华为技术有限公司 | 一种多核处理器、多核处理器处理方法及相关设备 |
WO2022063255A1 (zh) * | 2020-09-28 | 2022-03-31 | 上海商汤智能科技有限公司 | 芯片系统 |
CN112631757A (zh) * | 2020-12-31 | 2021-04-09 | 成都卓讯云网科技有限公司 | 一种ddr4多用户访问的调度方法和设备 |
CN114928579A (zh) * | 2021-02-01 | 2022-08-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN114546896A (zh) * | 2022-02-22 | 2022-05-27 | 杭州中天微系统有限公司 | 系统内存管理单元、读写请求处理方法、电子设备和片上系统 |
CN114661428A (zh) * | 2022-03-03 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 一种原子操作的处理方法、设备、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
李鹏等: "多核片上系统主控式内存控制器预取", 《高技术通讯》 * |
Also Published As
Publication number | Publication date |
---|---|
CN115292054B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8209690B2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
US6038646A (en) | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface | |
US10079916B2 (en) | Register files for I/O packet compression | |
JP2012038293A (ja) | マシンビジョン用マルチプロセッサシステムオンチップ | |
JPH0219945A (ja) | 主記憶制御装置 | |
JPH1185618A (ja) | 仮想メモリ変換を制御する方法 | |
CN115454887A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
US6874040B2 (en) | Employing a data mover to communicate between dynamically selected zones of a central processing complex | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
CN114721975A (zh) | 链表处理方法、装置、加速器、电路板、设备和存储介质 | |
CN115292054B (zh) | 数据处理方法、装置、系统级芯片及存储介质 | |
US8909873B2 (en) | Traffic control method and apparatus of multiprocessor system | |
US8117626B2 (en) | Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor | |
US20100131719A1 (en) | Early Response Indication for data retrieval in a multi-processor computing system | |
WO2022199357A1 (zh) | 数据处理方法及装置、电子设备、计算机可读存储介质 | |
US9805440B2 (en) | Method and apparatus to improve performance of chained tasks on a graphics processing unit | |
US20080209085A1 (en) | Semiconductor device and dma transfer method | |
JPS593774A (ja) | アクセス処理方式 | |
US20200097294A1 (en) | Method for managing the supply of information, such as instructions, to a microprocessor, and a corresponding system | |
KR100978083B1 (ko) | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
JP2007241601A (ja) | マルチプロセッサシステム | |
JP4658064B2 (ja) | 相互接続ネットワークでの効率的な順序保存用の方法及び装置 | |
CN118377741B (zh) | 原子操作的执行系统、方法和装置 | |
US11347667B2 (en) | Bus controller and related methods | |
CN116089116B (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 |