CN113806288A - 适用于SoC内核之间的数据交互方法、装置及电子设备 - Google Patents
适用于SoC内核之间的数据交互方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113806288A CN113806288A CN202110899626.0A CN202110899626A CN113806288A CN 113806288 A CN113806288 A CN 113806288A CN 202110899626 A CN202110899626 A CN 202110899626A CN 113806288 A CN113806288 A CN 113806288A
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- kernel
- area
- interacted
- 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
Links
Images
Classifications
-
- 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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种适用于SoC内核之间的数据交互方法、装置及电子设备,所述方法包括:第一内核首先获取待交互数据,其中,待交互数据为第一内核获取的,且为第二内核所需的数据。然后确定外设存储器中供第一内核写入数据的第一数据区域中的第一存储区域,并将待交互数据写入到第一存储区域中,以使第二内核从目标存储区域中读取待交互数据。基于此,本申请可以借助外设存储器实现第一内核与第二内核之间的数据交互,满足数据量较大的数据传输需求。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种适用于SoC内核之间的数据交互方法、装置及电子设备。
背景技术
片上系统(System on Chip,SoC),也称为系统级芯片,是一种以用户的特定需求为目标而定制的集成电路芯片,因其拥有ARM内核部分(即PS)与FPGA内核部分(即PL),将ARM的优势与FPGA的优势集于一身,所以在近年来被广泛使用。
相关技术中,PS在获取到待交互数据后,会发送给PL进行处理,但是PS与PL之间进行数据交互时,往往需要利用GPIO引脚或者BRAM控制器。但是利用GPIO引脚进行数据交互时,其可传递的数据量很小,而且传输速度也非常慢,利用BRAM控制器进行数据交互,利用的是BRAM控制器的Ping-Pong机制,但是这种机制会消耗PL大量的内存资源,导致其处理能力不足,同时该机制传输的数据量也十分有限,在面对导航与定位数据这种数据量比较大的数据时,目前的PS与PL的数据交互方式便无法满足数据传输需求,进而导致对导航与定位数据的处理难以利用SoC芯片实现。
发明内容
为克服相关技术中存在的面对导航与定位数据这种数据量比较大的数据时,目前的PS与PL的数据交互方式便无法满足数据传输需求问题,本申请提供一种适用于SoC内核之间的数据交互方法、装置及电子设备。
根据本申请的第一方面,提供一种适用于SoC内核之间的数据交互方法,应用于SoC的第一内核,所述方法包括:
获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
根据所述待交互数据的数据量和预设的存储单元的大小确定在所述第一数据区域中存储所述待交互数据的第一存储区域。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
获取所述第一内核前次写入数据的存储区域对应的历史地址标识,以及所述第一数据区域包含的所有地址标识;
将所述所有地址标识中除所述历史地址标识之外的地址标识对应的存储区域确定为所述第一存储区域。
在一个可选的实施方式中,所述以使所述第二内核从所述第一存储区域中读取所述待交互数据,包括:
获取所述第一存储区域对应的地址标识和/或所述第一内核向所述第一数据区域写入数据的累计次数;
根据所述地址标识和/或所述累计次数生成第一读取信息,并发送给所述第二内核,以使所述第二内核根据所述第一读取信息对所述第一存储区域的数据进行读取。
在一个可选的实施方式中,所述方法还包括:
获取针对所述第二内核写入第二数据区域的数据而生成的第二读取信息,所述第二数据区域为外设存储器中供所述第二内核写入数据的存储区域;
根据所述第二读取信息从所述第二数据区域读取数据。
在一个可选的实施方式中,所述第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
从所述第二读取信息中解析所述第二存储区域对应的地址标识;
按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述累计次数时,将最新获取到的累计次数与前次获取到的累计次数进行比较;
若最新获取到的累计次数大于前次获取到的累计次数,按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识;
所述第二数据区域中的第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述第二数据区域中的第二存储区域对应的地址标识时,将最新获取到的地址标识与前次获取到的地址标识进行比较;
若比较结果为不同,按照最新获取到的地址标识读取所述第二存储区域的第二存储区域中的数据。
根据本申请的第二方面,提供一种适用于SoC内核之间的数据交互装置,应用于SoC的第一内核,所述装置包括:
获取模块,用于获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定模块,用于确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
写入模块,用于将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
根据本申请的第三方面,提供一种电子设备,包括:至少一个处理器和存储器;
所述处理器用于执行所述存储器中存储的适用于SoC内核之间的数据交互程序,以实现本申请第一方面所述的适用于SoC内核之间的数据交互方法。
本申请提供的技术方案可以包括以下有益效果:第一内核首先获取待交互数据,其中,待交互数据为第一内核获取的,且为第二内核所需的数据。然后确定外设存储器中供第一内核写入数据的第一数据区域中的第一存储区域,并将待交互数据写入到第一存储区域中,以使第二内核从目标存储区域中读取待交互数据。基于此,本申请可以借助外设存储器实现第一内核与第二内核之间的数据交互,满足数据量较大的数据传输需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请的一个实施例提供的一种适用于SoC内核之间的数据交互方法的流程示意图;
图2是本申请的一个实施例提供的一种SoC内核之间数据交互的架构示意图;
图3是本申请的一个实施例提供的一种确定第一存储区域的流程示意图;
图4是本申请的一个实施例提供的一种外设存储器数据区域划分的示意图;
图5为本申请的一个实施例提供的一种第一内核读取第二内核写入的数据的流程示意图;
图6是本申请的另一实施例提供的一种适用于SoC内核之间的数据交互装置的结构示意图;
图7是本申请的另一实施例提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
请参阅图1,图1是本申请的一个实施例提供的一种适用于SoC内核之间的数据交互方法的流程示意图。
本实施例可以由SoC中的第一内核执行,如图1所示,本实施例提供的适用于SoC内核之间的数据交互方法可以包括:
步骤S101、获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据。
本实施例中,第一内核和第二内核之间可能需要较大量的数据交互,而比如第一内核负责接收外部数据,第二内核负责对外部数据进行处理,那么第一内核接收到的外部数据就可以是本步骤中的待交互数据,也是第二内核所需的数据。
当然,第一内核也可以具有数据处理的功能,第二内核可以具有与外部通信的功能,第二内核需要将第一内核处理完成的数据发送给外部设备或者外部装置。那么,第一内核处理完成的数据便可以是本申请中的待交互数据。
在一个具体的例子中,SoC中可以包括两个内核:处理系统(Processing System,PS)内核(可以为第一内核)和可编程逻辑(Programmable Logic)内核(可以为第二内核)。可以参阅图2,图2是本申请的一个实施例提供的一种SoC内核之间数据交互的架构示意图。
以导航与定位技术领域为例,SoC需要接收点云数据以及位姿数据,并将点云数据和位姿数据进行处理,并将处理后的数据反馈给需要处理后的数据的需求方。其中,点云数据是由激光雷达生成的用于感知环境信息的数据,位姿数据是由惯性导航单元生成的用于表征位姿的数据。
如图2所示,通常,在SoC中,一般由PS内核接收点云数据以及位姿数据,由PL内核对点云数据以及位姿数据进行处理,再由PS内核将处理后的数据发送给需求方。
由于点云数据、位姿数据以及处理后的数据的数据量通常比较大,那么依靠现有的PS内核和PL内核之间交互方式,就会快速进行大数据量的交互。因此,本实施例中与PS内核外接一个外接存储器,需要说明的是,外接存储器由PS内核中的DDR控制器进行初始化以及划区。
具体的,本实施例中,DDR控制器在外接存储器中,可以为第一内核分割出第一数据区域,供第一内核写入数据;可以为第二内核分割出第二数据区域,供第二内核写入数据。
步骤S102、确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域。
本步骤中,具体确定第一存储区域的方式可以有多种。比如可以直接将第一数据区域中的所有的存储区域作为第一存储区域,这种方式最为节省运算速度,但是在待交互数据的数据量小于第一数据区域的存储区域大小时,可能会造成第一数据区域的浪费。
因此,本实施例还可以根据待交互数据的存储量来确定第一存储区域,即根据待交互数据的数据量和预设的存储单元的大小确定在第一数据区域中存储待交互数据的第一存储区域。
具体的,可以先确定所需的存储单元的数量。待交互数据的数据量是可以统计的,而第一数据区域中每个存储单元的大小也是预先设置好的。那么就可以利用数据量除以存储单元的大小,即可知道存储该待交互数据所需的存储单元的数量。
另外,也有一些领域会将存储的方式设置为一个存储单元存储一条数据,那么本实施例便可以统计一共有多少条待交互数据,从而得到需要多少个存储单元。比如一共有1000条待交互数据,那么就需要1000个存储单元。
在确定好所需的存储单元的数量之后,只需要将第一数据区域中的确定好的数量的存储单元确定为第一存储区域即可。
当然,本申请的实施例还可以根据前次写入数据的情况确定第一存储区域,具体可以参阅图3,图3是本申请的一个实施例提供的一种确定第一存储区域的流程示意图。
如图3所示,本实施例提供的确定第一存储区域的过程可以包括:
步骤S301、获取所述第一内核前次写入数据的存储区域对应的历史地址标识,以及所述第一数据区域包含的所有地址标识。
需要说明的是,本实施例中,第一内核每次写入数据时,可以记录写入的存储区域的地址标识,并存放在第一预设位置中。在存放地址标识时,可以直接在第一预设位置中进行覆盖存储,这样,第一预设位置中存放的便是前次写入数据时的历史地址标识。
而在本步骤中,可以直接从第一预设位置中获取第一内核前次写入数据的存储区域对应的历史地址标识。
为了避免第一内核向第一数据区域中写入待交互数据时,将第一数据区域中前次写入的数据完全覆盖,本步骤还可以获取第一数据区域中包含的所有地址标识,然后进行步骤S302的处理。
步骤S302、将所述所有地址标识中除所述历史地址标识之外的地址标识对应的存储区域确定为所述第一存储区域。
本步骤中,为了避免将第一数据区域中前次写入的数据完全覆盖,只需要将所有地址标识中,除去历史地址标识的其他地址标识确定出来,然后将其他地址标识对应的存储区域作为第一存储区域即可。
步骤S103、将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
本步骤中,在将待交互数据写入到第一存储区域中时,为了避免数据发生混乱,可以先判断一下第二内核是否正在处于读取第一数据区域的数据的状态。
具体的,可以在外设存储器中预先划分出指令区域,请参阅图4,图4是本申请的一个实施例提供的一种外设存储器数据区域划分的示意图。
如图4所示,外设存储器可以分为数据交互区和系统区,其中,数据交互区为供第一内核和第二内核进行数据交互的数据区域,系统区为系统运行过程中用到的区域。
进一步地,数据交互区域具体可以设置有指令区域和数据区域,指令区域中可以设置有4个存储区域,分别用于存放第一内核写数据状态指令PS_write_cnt(累加值的指令为PS_cnt++)、第一内核读数据状态指令PS_reading、第二内核写数据状态指令PL_write_cnt(累加值的指令为PL_cnt++)、第二内核读数据状态指令PL_reading。
数据区域即可以设置有第一数据区域和第二数据区域,第一数据区域供第一内核写入数据(如图4中的PS向此写入待处理数据的区域),第二数据区域供第二内核写入数据(如图4中的PL向此写入处理后数据)。
本步骤中,将待交互数据写入到所述第一存储区域,即写入到第一数据区域的第一区域中。为了便于第二内核进行读取,本实施例可以获取第一存储区域对应的地址标识和/或所述第一内核向所述第一数据区域写入数据的累计次数;根据所述地址标识和/或所述累计次数生成第一读取信息,并发送给所述第二内核,以使所述第二内核根据所述第一读取信息对所述第一存储区域的数据进行读取。
需要说明的是,第一读取信息可以作为前述例子中第一内核写数据状态指令,存放在指令区域PS_write_cnt中,由第二内核周期性主动获取。第二内核一旦确定本次获取的第一读取信息相较于前次获取的第一读取信息有所差别,便可以认为第一内核有写入数据的操作,第二内核便可以去第一数据区域中进行数据读取。
由于第一内核和第二内核写入数据和读取数据的过程相似,为了便于说明,本实施例对第一内核读取第二内核写入的数据的过程进行说明。第二内核的读取过程可以参考第一内核的读取过程。
具体可以参阅图5,图5为本申请的一个实施例提供的一种第一内核读取第二内核写入的数据的流程示意图。
如图5所示,本实施例提供的第一内核读取第二内核写入的数据的过程可以包括:
步骤S501、获取针对所述第二内核写入第二数据区域的数据而生成的第二读取信息,所述第二数据区域为外设存储器中供所述第二内核写入数据的存储区域。
需要说明的是,第二读取信息包含的内容以及获取方式可以有多种,比如所述第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息,或者,主动获取的第二读取信息,第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识,或者,主动获取的第二读取信息,第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识。
步骤S502、根据所述第二读取信息从所述第二数据区域读取数据。
对应步骤S501中第二读取信息包含的内容以及获取方式的不同,本步骤的具体过程也会有所不同。
对于第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息,其中,第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域,本步骤具体包括从所述第二读取信息中解析所述第二存储区域对应的地址标识;按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
由于该种情况下,第二读取信息是第二内核主动发送给第一内核的,因此,第一内核可以直接根据接收到的第二读取信息中的地址标识进行读取。
对于第一内核主动获取第二读取信息的情况,若第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识,本步骤具体可以包括每次获取到所述累计次数时,将最新获取到的累计次数与前次获取到的累计次数进行比较;若最新获取到的累计次数大于前次获取到的累计次数,按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
需要说明的是,累计次数是每次第二内核写完数据后,累加一次后得到的。当然,第一内核也可能涉及到累计次数,同样是第一内核写完数据后累加一次得到。
若第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识,其中,第二数据区域中的第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域。本步骤可以包括每次获取到所述第二数据区域中的第二存储区域对应的地址标识时,将最新获取到的地址标识与前次获取到的地址标识进行比较;若比较结果为不同,按照最新获取到的地址标识读取所述第二存储区域的第二存储区域中的数据。
为了防止第一内核读取数据时,第二内核写入数据,第一内核读取数据时将前述指令区域中的第一内核读数据状态指令的指令内容设置为第一内容,比如128位的d0(128’d0),第一内核读取数据完成后,将前述指令区域中的第一内核读数据状态指令的指令内容设置为第二内容,比如128位的d1(128’d1)。
对应的,第二内核在写入数据时,需要先判断第一内核读数据状态指令的指令内容是否为第二内容,如果是第二内容,则说明第一内核没有在读取数据,此时第二内核可以写入数据。如果是第一内容,则说明第一内核正在读取数据,此时第二内核不可以写入数据。
另外,为了防止第一内核写入数据时,第二内核读取数据,第一内核吸入数据时将前述指令区域中的第一内核写数据状态指令的指令内容设置为第三内容(比如置为0),第一内核写入数据完成后,将前述指令区域中的第一内核写数据状态指令的指令内容设置为第四内容(比如第一读取信息)。
对应的,第二内核在读取数据时,如果第一内核写数据状态指令的指令内容设置为第三内容,基于前述读取数据时的判断过程,是无法被认为第一内核有数据写入的,也就不会触发读取操作。
请参阅图6,图6是本申请的另一实施例提供的一种适用于SoC内核之间的数据交互装置的结构示意图。
如图6所示,本实施例提供的适用于SoC内核之间的数据交互装置应用于SoC的第一内核,所述装置包括:
获取模块601,用于获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定模块602,用于确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
写入模块603,用于将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
请参阅图7,图7是本申请的另一实施例提供的一种电子设备的结构示意图。
如图7所示,本实施例提供的电子设备包括:至少一个处理器701、存储器702、至少一个网络接口703和其他用户接口704。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。
其中,用户接口704可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器702存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7021和第二应用程序7022。
其中,操作系统7021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。第二应用程序7022,包含各种第二应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在第二应用程序7022中。
在本发明实施例中,通过调用存储器702存储的程序或指令,具体的,可以是第二应用程序7022中存储的程序或指令,处理器701用于执行各方法实施例所提供的方法步骤,例如包括:
获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
根据所述待交互数据的数据量和预设的存储单元的大小确定在所述第一数据区域中存储所述待交互数据的第一存储区域。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
获取所述第一内核前次写入数据的存储区域对应的历史地址标识,以及所述第一数据区域包含的所有地址标识;
将所述所有地址标识中除所述历史地址标识之外的地址标识对应的存储区域确定为所述第一存储区域。
在一个可选的实施方式中,所述以使所述第二内核从所述第一存储区域中读取所述待交互数据,包括:
获取所述第一存储区域对应的地址标识和/或所述第一内核向所述第一数据区域写入数据的累计次数;
根据所述地址标识和/或所述累计次数生成第一读取信息,并发送给所述第二内核,以使所述第二内核根据所述第一读取信息对所述第一存储区域的数据进行读取。
在一个可选的实施方式中,所述方法还包括:
获取针对所述第二内核写入第二数据区域的数据而生成的第二读取信息,所述第二数据区域为外设存储器中供所述第二内核写入数据的存储区域;
根据所述第二读取信息从所述第二数据区域读取数据。
在一个可选的实施方式中,所述第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
从所述第二读取信息中解析所述第二存储区域对应的地址标识;
按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述累计次数时,将最新获取到的累计次数与前次获取到的累计次数进行比较;
若最新获取到的累计次数大于前次获取到的累计次数,按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识;
所述第二数据区域中的第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述第二数据区域中的第二存储区域对应的地址标识时,将最新获取到的地址标识与前次获取到的地址标识进行比较;
若比较结果为不同,按照最新获取到的地址标识读取所述第二存储区域的第二存储区域中的数据。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的适用于SoC内核之间的数据交互方法。
处理器用于执行存储器中存储的适用于SoC内核之间的数据交互程序,以实现以下在电子设备侧执行的适用于SoC内核之间的数据交互方法的步骤:
获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
根据所述待交互数据的数据量和预设的存储单元的大小确定在所述第一数据区域中存储所述待交互数据的第一存储区域。
在一个可选的实施方式中,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
获取所述第一内核前次写入数据的存储区域对应的历史地址标识,以及所述第一数据区域包含的所有地址标识;
将所述所有地址标识中除所述历史地址标识之外的地址标识对应的存储区域确定为所述第一存储区域。
在一个可选的实施方式中,所述以使所述第二内核从所述第一存储区域中读取所述待交互数据,包括:
获取所述第一存储区域对应的地址标识和/或所述第一内核向所述第一数据区域写入数据的累计次数;
根据所述地址标识和/或所述累计次数生成第一读取信息,并发送给所述第二内核,以使所述第二内核根据所述第一读取信息对所述第一存储区域的数据进行读取。
在一个可选的实施方式中,所述方法还包括:
获取针对所述第二内核写入第二数据区域的数据而生成的第二读取信息,所述第二数据区域为外设存储器中供所述第二内核写入数据的存储区域;
根据所述第二读取信息从所述第二数据区域读取数据。
在一个可选的实施方式中,所述第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
从所述第二读取信息中解析所述第二存储区域对应的地址标识;
按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述累计次数时,将最新获取到的累计次数与前次获取到的累计次数进行比较;
若最新获取到的累计次数大于前次获取到的累计次数,按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
在一个可选的实施方式中,所述第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识;
所述第二数据区域中的第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述第二数据区域中的第二存储区域对应的地址标识时,将最新获取到的地址标识与前次获取到的地址标识进行比较;
若比较结果为不同,按照最新获取到的地址标识读取所述第二存储区域的第二存储区域中的数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种适用于SoC内核之间的数据交互方法,其特征在于,应用于SoC的第一内核,所述方法包括:
获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
2.根据权利要求1所述的方法,其特征在于,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
根据所述待交互数据的数据量和预设的存储单元的大小确定在所述第一数据区域中存储所述待交互数据的第一存储区域。
3.根据权利要求1所述的方法,其特征在于,所述确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域,包括:
获取所述第一内核前次写入数据的存储区域对应的历史地址标识,以及所述第一数据区域包含的所有地址标识;
将所述所有地址标识中除所述历史地址标识之外的地址标识对应的存储区域确定为所述第一存储区域。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述以使所述第二内核从所述第一存储区域中读取所述待交互数据,包括:
获取所述第一存储区域对应的地址标识和/或所述第一内核向所述第一数据区域写入数据的累计次数;
根据所述地址标识和/或所述累计次数生成第一读取信息,并发送给所述第二内核,以使所述第二内核根据所述第一读取信息对所述第一存储区域的数据进行读取。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取针对所述第二内核写入第二数据区域的数据而生成的第二读取信息,所述第二数据区域为外设存储器中供所述第二内核写入数据的存储区域;
根据所述第二读取信息从所述第二数据区域读取数据。
6.根据权利要求5所述的方法,其特征在于,所述第二读取信息为所述第二内核向所述第二数据区域写入数据后,向第一内核发送的携带有所述第二数据区域中的第二存储区域对应的地址标识的读取指令信息;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
从所述第二读取信息中解析所述第二存储区域对应的地址标识;
按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
7.根据权利要求5所述的方法,其特征在于,所述第二读取信息包括所述第二内核向所述第二数据区域写入数据的累计次数以及所述第二数据区域中的第二存储区域对应的地址标识;
所述第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述累计次数时,将最新获取到的累计次数与前次获取到的累计次数进行比较;
若最新获取到的累计次数大于前次获取到的累计次数,按照所述地址标识读取所述第二数据区域的第二存储区域中的数据。
8.根据权利要求5所述的方法,其特征在于,所述第二读取信息包括所述第二数据区域中的第二存储区域对应的地址标识;
所述第二数据区域中的第二存储区域为所述第二数据区域中所述第二内核写入数据的存储区域;
所述根据所述第二读取信息从所述第二数据区域读取数据,包括:
每次获取到所述第二数据区域中的第二存储区域对应的地址标识时,将最新获取到的地址标识与前次获取到的地址标识进行比较;
若比较结果为不同,按照最新获取到的地址标识读取所述第二存储区域的第二存储区域中的数据。
9.一种适用于SoC内核之间的数据交互装置,其特征在于,应用于SoC的第一内核,所述装置包括:
获取模块,用于获取待交互数据,所述待交互数据为所述第一内核获取的,且为第二内核所需的数据;
确定模块,用于确定外设存储器中供所述第一内核写入数据的第一数据区域中的第一存储区域;
写入模块,用于将所述待交互数据写入到所述第一存储区域中,以使所述第二内核从所述第一存储区域中读取所述待交互数据。
10.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述处理器用于执行所述存储器中存储的适用于SoC内核之间的数据交互程序,以实现权利要求1-8任一项所述的适用于SoC内核之间的数据交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899626.0A CN113806288A (zh) | 2021-08-06 | 2021-08-06 | 适用于SoC内核之间的数据交互方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899626.0A CN113806288A (zh) | 2021-08-06 | 2021-08-06 | 适用于SoC内核之间的数据交互方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806288A true CN113806288A (zh) | 2021-12-17 |
Family
ID=78893386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110899626.0A Pending CN113806288A (zh) | 2021-08-06 | 2021-08-06 | 适用于SoC内核之间的数据交互方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806288A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424145A (zh) * | 2013-08-30 | 2015-03-18 | 联想(北京)有限公司 | 一种电子设备及数据传输方法 |
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
-
2021
- 2021-08-06 CN CN202110899626.0A patent/CN113806288A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
CN104424145A (zh) * | 2013-08-30 | 2015-03-18 | 联想(北京)有限公司 | 一种电子设备及数据传输方法 |
Non-Patent Citations (1)
Title |
---|
习伟 等: "基于SOC系统数据交互的保护装置设计", 《电力科学与技术学报》, vol. 32, no. 3, 30 September 2017 (2017-09-30), pages 122 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797434B2 (en) | Managing storage devices | |
US20210342071A1 (en) | Input/output processing in a distributed storage node with rdma | |
US9274983B2 (en) | Memory systems including nonvolatile buffering and methods of operating the same | |
US8898410B1 (en) | Efficient garbage collection in a data storage device | |
CN107621959B (zh) | 电子装置及其软件训练方法、计算系统 | |
EP3398075B1 (en) | Transfer descriptor for memory access commands | |
KR102100458B1 (ko) | 메모리를 관리하기 위한 방법 및 그 전자 장치 | |
CN113625973B (zh) | 数据写入方法、装置、电子设备及计算机可读存储介质 | |
CN101310241A (zh) | 用于在多处理器系统中共享存储器的方法和装置 | |
US11762590B2 (en) | Memory system and data processing system including multi-core controller for classified commands | |
WO2022199284A1 (zh) | 调用栈回溯方法、装置、设备和介质 | |
US10795606B2 (en) | Buffer-based update of state data | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
KR20220050407A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
CN113238977A (zh) | 数据传输方法、装置、系统、电子设备及存储介质 | |
US9934100B2 (en) | Method of controlling memory swap operation and data processing system using same | |
US8555005B2 (en) | Memory managing apparatus and method using a pointer indicator bit to perform garbage collection | |
CN111444117B (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
KR20140073955A (ko) | 메모리 시스템 및 그 구동 방법 | |
CN115840654B (zh) | 消息的处理方法、系统、计算设备及可读存储介质 | |
CN113806288A (zh) | 适用于SoC内核之间的数据交互方法、装置及电子设备 | |
US11922062B2 (en) | Controller and operating method thereof | |
US10572382B2 (en) | Method of operating data storage device and method of operating data processing system including the same | |
US20130346677A1 (en) | Non-volatile memory device | |
US20230418521A1 (en) | Memory system for optimizing parameter values according to workload class and data processing system including the same |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211217 |