CN115114041A - 众核系统中数据的处理方法及装置 - Google Patents

众核系统中数据的处理方法及装置 Download PDF

Info

Publication number
CN115114041A
CN115114041A CN202110308784.4A CN202110308784A CN115114041A CN 115114041 A CN115114041 A CN 115114041A CN 202110308784 A CN202110308784 A CN 202110308784A CN 115114041 A CN115114041 A CN 115114041A
Authority
CN
China
Prior art keywords
data
cache
cache region
address
core
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
CN202110308784.4A
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.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi 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 Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202110308784.4A priority Critical patent/CN115114041A/zh
Priority to PCT/CN2022/079235 priority patent/WO2022199357A1/zh
Publication of CN115114041A publication Critical patent/CN115114041A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请提供一种众核系统中数据的处理方法及装置,其中,所述众核系统包括多个内核,该方法包括:确定第一内核当前待被执行运算的任务对应的第一数据;在所述第一内核的第一缓存区中存在所述第一数据的情况下,从所述第一缓存区获取所述第一数据;在所述第一缓存区中不存在所述第一数据的情况下,从所述第一内核以外的第二缓存区获取所述第一数据。通过本申请,解决了现有技术中通过共享内存区其他核读取数据其读取效率低的问题。

Description

众核系统中数据的处理方法及装置
技术领域
本申请涉及计算机领域,尤其涉及一种众核系统中数据的处理方法及装置。
背景技术
现有众核系统中可以通过核私有内存和多核共享内存分别访问对应的地址,以获取对应数据。但是,私有内存只在核内部使用,对于系统的其它区域而言是不可见的;共享内存放置在核外部或芯片外部,可被多于一个核使用。也就是说,如果当前核要访问其他核的数据可以通过多核共享内存从其他核读取数据,以供当前核使用。需要说明的是,共享内存放置在核外部或芯片外部,可被多于一个核使用,多个核在使用时需要通过竞争仲裁获得使用权,即如果有多个内核同时访问该共享内存,通过仲裁只能是其中一个内核的请求会被执行,其他内核的请求则会被拒绝,可见,如果要读取其他核的数据其效率较低还有可能读取失败。
发明内容
本申请实施例提供了一种众核系统中数据的处理方法及装置,以解决现有技术中通过共享内存区其他核读取数据其读取效率低的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种众核系统中数据的处理方法,所述众核系统包括多个内核,所述方法包括:确定第一内核当前待被执行运算的任务对应的第一数据;在所述第一内核的第一缓存区中存在所述第一数据的情况下,从所述第一缓存区获取所述第一数据;在所述第一缓存区中不存在所述第一数据的情况下,从所述第一内核以外的第二缓存区获取所述第一数据。
第二方面,本申请实施例提供了一种众核系统中数据的处理装置,所述众核系统包括多个内内核,所述装置包括:第一确定模块,用于确定第一内核当前待被执行运算的任务对应的第一数据;第一获取模块,用于在所述第一内核的第一缓存区中存在所述第一数据的情况下,从所述第一缓存区获取所述第一数据;第二获取模块,用于在所述第一缓存区中不存在所述第一数据的情况下,从所述第一内核以外的第二缓存区获取所述第一数据。
第三方面,本申请实施例还提供了一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例还提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
通过本申请,对于当前待被执行运算的任务对应的第一数据,首先是从第一内核的第一缓存区中获取,如果没有则从第一内核以外的第二缓存区获取第一数据;也就是说,第一内核具有缓存其他核的数据的第一缓存区,这样,在需要其他核的数据的情况下,可以先去本地缓存区去获取。因此,通过在核内设置缓存其他核的数据的方式,提高了任务执行运算的效率,从而解决了现有技术中通过共享内存区其他核读取数据其读取效率低的问题。
附图说明
图1是本申请实施例的众核系统中数据的处理方法流程图;
图2是本申请实施例的本核与目的核之间进行数据刷新的示意图;
图3是本申请实施例的本核与片外缓存区进行数据刷新的示意图;
图4是本申请实施例的众核系统中数据的处理装置的结果示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅由于描述目的,且不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的众核系统中数据的处理方法进行详细地说明。
本申请实施例提供了一种众核系统中数据的处理方法,其中,该众核系统包括多个内核,图1是本申请实施例的众核系统中数据的处理方法流程图,如图1所示,该方法的步骤包括:
步骤102,确定第一内核当前待被执行运算的任务对应的第一数据;
步骤104,在第一内核的第一缓存区中存在第一数据的情况下,从第一缓存区获取第一数据;
步骤106,在第一缓存区中不存在第一数据的情况下,从第一内核以外的第二缓存区获取第一数据。
通过上述步骤102至步骤106,对于当前待被执行运算的任务对应的第一数据,首先是从第一内核的第一缓存区中获取,如果没有则从第一内核以外的第二缓存区获取第一数据;也就是说,第一内核具有缓存其他核的数据的第一缓存区,这样,在需要其他核的数据的情况下,可以先去本地缓存区去获取。因此,通过在核内设置缓存其他核的数据的方式,提高了任务执行运算的效率,从而解决了现有技术中通过共享内存区其他核读取数据其读取效率低的问题。
也就是说,本申请实施例中的第一内核的第一缓存区有多个存储区域,每个存储区域用于缓存对应于第二缓存区的数据。对于众核系统中的其他内核,也是一样的,即都有对应的缓存区。
在本申请实施例的可选实施方式中,对于步骤104中涉及到的从第一缓存区获取第一数据的方式,进一步可以包括:
步骤11,根据第一数据所对应的全局地址和地址映射表确定第一缓存区中与第一数据对应的缓存地址;其中,地址映射表用于记录全局地址与内核的缓存地址之间的映射关系;
步骤12,根据缓存地址从第一缓存区中获取第一数据。
通过上述步骤11和步骤12可知,缓存在第一缓存内的数据第一缓存区内是具有对应的缓存地址的,在确定第一数据的同时可以确定对应的全局地址,因此,根据事先设置的用于记录全局地址与内核的缓存地址之间的映射关系映射表,可以从第一缓存区对应的缓存地址中获取到该第一数据。如果该第一缓存区中不存在第一数据,则可以通过全局地址直接去对应的其他核获取该第一数据。可见,在本申请实施例中可以利用现有的全局地址与缓存地址的映射关系进行查找,在尽量不增加核的负担的同时,还能够提高对数据的处理效率。
在本申请实施例的可选实施方式中,在第一缓存区中不存在第一数据的情况下,本申请实施例的方法还可以包括:
步骤21,轮询任务列表中是否存在已经获取到数据的任务;其中,任务列表用于存储当前待执行的任务;
步骤22,在轮询到任务列表中存在已经获取到数据的任务的情况下,对已经获取到数据的任务执行运算操作。
需要说明的是,该任务列表中记录用于待执行运算的任务,如果当前执行到某一任务,但是该任务对应的数据还未获取到,则可以对任务列表中已经获取到的任务执行运算操作,例如,任务列表中有3个任务,分别是任务1,任务2,和任务3;其中,3个任务的执行顺序为任务1先执行,然后是任务2,然后是任务3,在执行任务1时,发现任务1对应的数据需要从其他核获取,且任务2的数据已经获取到,则可以优先执行任务2,在任务1的数据获取到后再执行任务1。
在本申请实施例的可选实施例中,对于本申请步骤106中涉及到的在第一数据所包括的数据存储在一个第二缓存区的情况下,从第二缓存区中获取第一数据的方式,进一步可以包括:
步骤31,组建用于请求第一数据的请求包,其中,请求包中携带有全局地址;
步骤32,根据全局地址通过片上网络向第二缓存区发送请求包;
步骤33,接收第二缓存区响应于请求包反馈的携带有第一数据的数据包,其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;
步骤34,将第一数据缓存在第一缓存区中与缓存地址对应的区域。
通过上述步骤31至步骤34,对于从其他核或其他存储区域获取数据的方式,可以由当前核组件用于请求第一数据的请求包后,通过全局地址通过片上网络向第二缓存区发送请求包,由于该请求包携带有全局地址,通过片上网络对全局地址的解析,将该请求包发送对应的第二缓存区,从而接收到第二缓存区反馈的携带第一数据的数据包。
需要说明的是,本申请实施例中的第二缓存区可以是其他内核的缓存区,也可以是片外缓存区,例如,外接的存储器、非易失存储器缓存区、外设数据缓存区、与中央处理器CPU的共享内存区。
在本申请实施例的可选实施方式中,对于步骤106中涉及到的在第一数据所包括的数据存储在多个不同的第二缓存区的情况下,从第二缓存区中获取第一数据的方式,进一步可以包括:
步骤41,组建用于分别请求多个第二数据的多个请求包,其中,每一个请求包中携带对应第二缓存区的全局地址;多个第二数据组成第一数据;
步骤42,根据全局地址向多个不同的第二缓存区分别发送对应的多个请求包;
步骤43,接收多个不同的第二缓存区响应于请求包反馈的携带有第二数据的多个数据包,其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;
步骤44,将多个第二数据组合为第一数据之后,将第一数据缓存在第一缓存区中与缓存地址对应的区域。
通过上述步骤41至步骤44可知,对于同一第一数据可以由多个第二数据组成,而该多个第二数据则可以分布在不同得第二缓存区,例如分布在不同的其他内核中,则在这种情况下,需要组件多个请求包用于请求第一数据,并将该多个请求包分别发送到对应的多个内核,然后接收该多个内核返回的数据,以获取到该第一数据。例如,第一内核的第一数据由在第二内核的第二数据、第三内核的第三数据、第四内核中的第四数据组成,则需要组件四个请求包,根据对应的全局地址将四个请求包分别发送到第二内核、第三内核和第四内核用于请求对应的第二数据、第三数据和第四数据,并将第二数据、第三数据和第四数据返回给第一内核,从而得到第一数据,并将第一数据缓存到第一缓存区。
在本申请实施例的可选实施方式中,本申请实施例的方法还可以包括:
步骤51,获取用于对第一缓存区进行读刷新的第一指令;其中,第一指令携带有与第二缓存区中的第三数据对应的全局地址;
步骤52,根据全局地址通过片上网络向第二缓存区所在单元发送第一指令;
步骤53,接收第二缓存区所在单元响应于第一指令返回的第三数据;
步骤54,将第一缓存区域中刷新时间最早的第四数据替换为第三数据;
步骤55,将映射表中第四数据的全局地址与缓存地址之间的映射关系更新为第三数据的全局地址与缓存地址之间的映射关系,以及在映射表中更新第三数据的刷新时间。
通过上述步骤51至步骤55可知,在本申请实施例中可以对第一缓存区内的数据进行读刷新,即第一内核的第一缓存区由于是存储的其他内核或片外缓存区的数据,如果其他内核或片外缓存区的数据更新了,则需要同步对第一内核的第一缓存区中的数据进行更新,或者是直接从其他内核或片外缓存区的数据读取数据更新本地的数据,无论是哪一种情况,都是可以将本地第一缓存区中刷新时间最早的数据进行替换,即对第一缓存区进行读刷新。此外,还需要建立刷新后的数据的全局地址与缓存地址的映射关系,以及在映射表中更新其刷新时间,以便后续进行读刷新。
在本申请实施例的可选实施方式中,本申请实施例的方法还可以包括:
步骤61,接收用于对第一缓存区的第五数据进行写刷新的第二指令;
步骤62,根据第五数据对应的全局地址通过片上网络将第二指令发送到第二缓存区所在单元;
步骤63,接收第二缓存区所在单元响应于第二指令发送响应指令,其中,响应指令用于指示第二缓存区所在单元是否对第五数据写刷新成功;
步骤64,在对第五数据写刷新成功的情况下,更新映射表中第五数据的刷新时间。
通过上述步骤61至步骤64可知,对于第一内核的第一缓存区内的数据,可以是由第一内核对其进行写操作之后,实现对其写更新,在写更新之后需要告知对应其他内核或片外缓存区本地存储的对应数据已经更新,需要同步对其进行更新,同样地,也需要更新映射表中的刷新时间,以便后进行更新。
在第二缓存为其他内核的缓存区域的情况下,结合图2对本申请实施例中的读刷新和写刷新进行解释说明。
基于图2,读刷新过程为:控制单元将读刷新指令发送给缓存模块,读刷新指令包括目标刷新区域;缓存模块在接收到读刷新指令时,将读刷新指令发送给路由模块;路由模块将读刷新指令通过片上网络传输至目的核,目的核包括目标刷新区域;目的核把目标刷新区域的数据通过片上网络发送给路由模块;路由模块接收返回的目标刷新区域的数据,并将目标刷新区域的数据发送给缓存模块;缓存模块根据目标刷新区域的数据进行刷新。
基于图2,写刷新过程为:控制单元在接收到写刷新指令时,向缓存模块发送写刷新指令,指令包括缓存的目的刷新区域;缓存模块将写刷新指令及目的刷新区域的数据通过路由模块传输到片上网络,并通过片上网络传输到目的核(发起刷新指令的核),以使目的核写刷新。
需要说明的是,本申请实施例中的第二缓存区为以下至少一项的缓存区:第二内核、片外缓存区;
其中,片外缓存区包括以下至少一项:外接的存储器、非易失存储器缓存区、外设数据缓存区、与中央处理器CPU的共享内存区;
第二内核为与第一内核在同一芯片内,或,第二内核与第一内核在不同芯片内。
基于此,在本申请实施例中的可选实施方式中,本申请实施例步骤106中涉及到的在第二缓存区为片外缓存区的情况下,从第二缓存区中获取第一数据的方式,进一步可以包括:
步骤71,获取第一内核组件的用于请求第一数据的请求包,其中,请求包中携带有全局地址;
步骤72,基于全局地址通过存储协议转换模块转发请求包到片外缓存区;
步骤73,接收片外缓存区通过存储协议转发模块转发的携带有第一数据的数据包;其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;
步骤74,将第一数据缓存在第一缓存区中与缓存地址对应的区域。
可见,对于在第二缓存区为片外缓存区的情况下,存储协议转换模块对全局地址进行解析,然后转发请求包到对应的区域。下面结合图3对本申请实施例第二缓存区为片外缓存区的情况下,读刷新和写刷新过程进行解释说明。
如图3所示,众核系统中的芯片可以包括核阵列和片内存储调度模块等部分,核阵列与存储调度模块通过片上网络连接。存储协议转换模块,包括DMA模块负责各个缓冲区之间的数据搬运。
读刷新,内核通过核内控制单元解译,当解译到缓存读指令时,向缓存模块发送读刷新指令,指令包括缓存的刷新区域。缓存模块将此指令通过核内路由传输到片上网络,并通过片上网络传输到存储调度模块的DMA模块,DMA模块负责从对应的缓冲区读取数据,并将读取到的数据通过片上网络发送给核路由,核路由接收到数据后发送给缓存,缓存对应区域被刷新。
写刷新,内核通过核内控制单元解译,当解译到缓存写指令时,向缓存模块发送写刷新指令,指令包括缓存的刷新区域。缓存模块将此指令及需要刷新的数据通过核内路由传输到片上网络,并通过片上网络传输到存储调度模块的DMA模块,DMA模块负责将数据写回到对应的缓冲区,并将写回是否成功的信令通过片上网络发送给核路由,核路由接收到信令后发送给缓存的寄存器。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
本申请实施例还提供了一种众核系统中数据的处理装置,其中,众核系统包括多个内内核,图4是本申请实施例的众核系统中数据的处理装置的结构示意图,如图4所示,该装置包括:
确定模块42,用于确定第一内核当前待被执行运算的任务对应的第一数据;
第一获取模块44,用于在第一内核的第一缓存区中存在第一数据的情况下,从第一缓存区获取第一数据;
第二获取模块46,用于在第一缓存区中不存在第一数据的情况下,从第一内核以外的第二缓存区获取第一数据。
通过本申请实施例的装置,对于当前待被执行运算的任务对应的第一数据,首先是从第一内核的第一缓存区中获取,如果没有则从第一内核以外的第二缓存区获取第一数据;也就是说,第一内核具有缓存其他核的数据的第一缓存区,这样,在需要其他核的数据的情况下,可以先去本地缓存区去获取。因此,通过在核内设置缓存其他核的数据的方式,提高了任务执行运算的效率,从而解决了现有技术中通过共享内存区其他核读取数据其读取效率低的问题。
可选地,本申请实施例中的第一获取模块44进一步可以包括:第一确定单元,用于根据第一数据所对应的全局地址和地址映射表确定第一缓存区中与第一数据对应的缓存地址;其中,地址映射表用于记录全局地址与内核的缓存地址之间的映射关系;第一获取单元,用于根据缓存地址从第一缓存区中获取第一数据。
可选地,在第一缓存区中不存在第一数据的情况下,本申请实施例中的装置还可以包括:轮训模块,用于轮询任务列表中是否存在已经获取到数据的任务;其中,任务列表用于存储当前待执行的任务;执行模块,用于在轮询到任务列表中存在已经获取到数据的任务的情况下,对已经获取到数据的任务执行运算操作。
可选地,本申请实施例中的第二获取模块46进一步可以包括:第一组建单元,用于组建用于请求第一数据的请求包,其中,请求包中携带有全局地址;第一发送单元,用于根据全局地址通过片上网络向第二缓存区发送请求包;
第一接收单元,用于接收第二缓存区响应于请求包反馈的携带有第一数据的数据包,其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;第一缓存单元,用于将第一数据缓存在第一缓存区中与缓存地址对应的区域。
可选地,在第一数据所包括的数据存储在多个不同的第二缓存区的情况下,本申请实施例中的第二获取模块46进一步可以包括:第二组建单元,用于组建用于分别请求多个第二数据的多个请求包,其中,每一个请求包中携带对应第二缓存区的全局地址;多个第二数据组成第一数据;第二发送单元,用于根据全局地址向多个不同的第二缓存区分别发送对应的多个请求包;第二接收单元,用于接收多个不同的第二缓存区响应于请求包反馈的携带有第二数据的多个数据包,其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;第二缓存单元,用于将多个第二数据组合为第一数据之后,将第一数据缓存在第一缓存区中与缓存地址对应的区域。
可选地,本申请实施例中的装置还可以包括:第三获取模块,用于获取用于对第一缓存区进行读刷新的第一指令;其中,第一指令携带有与第二缓存区中的第三数据对应的全局地址;第一发送模块,用于根据全局地址通过片上网络向第二缓存区所在单元发送第一指令;第一接收模块,用于接收第二缓存区所在单元响应于第一指令返回的第三数据;替换模块,用于将第一缓存区域中刷新时间最早的第四数据替换为第三数据;第一更新模块,用于将映射表中第四数据的全局地址与缓存地址之间的映射关系更新为第三数据的全局地址与缓存地址之间的映射关系,以及在映射表中更新第三数据的刷新时间。
可选地,本申请实施例中的装置还可以包括:第二接收模块,用于接收用于对第一缓存区的第五数据进行写刷新的第二指令;第二发送模块,用于根据第五数据对应的全局地址通过片上网络将第二指令发送到第二缓存区所在单元;第三接收模块,用于接收第二缓存区所在单元响应于第二指令发送响应指令,其中,响应指令用于指示第二缓存区所在单元是否对第五数据写刷新成功;第二更新模块,用于在对第五数据写刷新成功的情况下,更新映射表中第五数据的刷新时间。
可选地,本申请实施例中的第二缓存区为以下至少一项的缓存区:第二内核、片外缓存区;其中,片外缓存区包括以下至少一项:外接的存储器、非易失存储器缓存区、外设数据缓存区、与中央处理器CPU的共享内存区;第二内核为与第一内核在同一芯片内,或,第二内核与第一内核在不同芯片内。
可选地,在第二缓存区为片外缓存区的情况下,本申请实施例中的第二获取模块46进一步可以包括:第二获取单元,用于获取第一内核组件的用于请求第一数据的请求包,其中,请求包中携带有全局地址;转发单元,用于基于全局地址通过存储协议转换模块转发请求包到片外缓存区;第三接收单元,用于接收片外缓存区通过存储协议转发模块转发的携带有第一数据的数据包;其中,数据包中的包头有用于指示第一内核的缓存地址的标志位;第三缓存单元,用于将第一数据缓存在第一缓存区中与缓存地址对应的区域。
可选地,本申请实施例中的第一缓存区有多个存储区域,每个存储区域用于缓存对应于第二缓存区的数据。
可选的,本申请实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的程序或指令,该程序或指令被处理器执行时实现上述众核系统中请求消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述众核系统中请求消息处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种众核系统中数据的处理方法,其特征在于,所述众核系统包括多个内核,所述方法包括:
确定第一内核当前待被执行运算的任务对应的第一数据;
在所述第一内核的第一缓存区中存在所述第一数据的情况下,从所述第一缓存区获取所述第一数据;
在所述第一缓存区中不存在所述第一数据的情况下,从所述第一内核以外的第二缓存区获取所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一缓存区获取所述第一数据,包括:
根据所述第一数据所对应的全局地址和地址映射表确定所述第一缓存区中与所述第一数据对应的缓存地址;其中,所述地址映射表用于记录所述全局地址与内核的缓存地址之间的映射关系;
根据所述缓存地址从所述第一缓存区中获取所述第一数据。
3.根据权利要求1所述的方法,其特征在于,在所述第一缓存区中不存在所述第一数据的情况下,所述方法还包括:
轮询任务列表中是否存在已经获取到数据的任务;其中,所述任务列表用于存储当前待执行的任务;
在轮询到所述任务列表中存在已经获取到数据的任务的情况下,对已经获取到数据的任务执行运算操作。
4.根据权利要求1所述的方法,其特征在于,在所述第一数据所包括的数据存储在一个所述第二缓存区的情况下,从第二缓存区中获取所述第一数据,包括:
组建用于请求第一数据的请求包,其中,所述请求包中携带有全局地址;
根据所述全局地址通过片上网络向第二缓存区发送所述请求包;
接收所述第二缓存区响应于所述请求包反馈的携带有所述第一数据的数据包,其中,所述数据包中的包头有用于指示第一内核的缓存地址的标志位;
将所述第一数据缓存在所述第一缓存区中与所述缓存地址对应的区域。
5.根据权利要求4所述的方法,其特征在于,在所述第一数据所包括的数据存储在多个不同的第二缓存区的情况下,所述从第二缓存区中获取所述第一数据包括:
组建用于分别请求多个第二数据的多个请求包,其中,每一个所述请求包中携带对应所述第二缓存区的全局地址;多个所述第二数据组成所述第一数据;
根据所述全局地址向多个不同的所述第二缓存区分别发送对应的多个所述请求包;
接收多个不同的所述第二缓存区响应于所述请求包反馈的携带有第二数据的多个数据包,其中,所述数据包中的包头有用于指示第一内核的缓存地址的标志位;
将多个所述第二数据组合为第一数据之后,将所述第一数据缓存在所述第一缓存区中与所述缓存地址对应的区域。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用于对所述第一缓存区进行读刷新的第一指令;其中,所述第一指令携带有与第二缓存区中的第三数据对应的全局地址;
根据所述全局地址通过片上网络向所述第二缓存区所在单元发送所述第一指令;
接收所述第二缓存区所在单元响应于所述第一指令返回的所述第三数据;
将所述第一缓存区域中刷新时间最早的第四数据替换为所述第三数据;
将映射表中所述第四数据的全局地址与缓存地址之间的映射关系更新为所述第三数据的全局地址与所述缓存地址之间的映射关系,以及在所述映射表中更新所述第三数据的刷新时间。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用于对所述第一缓存区的第五数据进行写刷新的第二指令;
根据所述第五数据对应的全局地址通过片上网络将所述第二指令发送到所述第二缓存区所在单元;
接收所述第二缓存区所在单元响应于所述第二指令发送响应指令,其中,所述响应指令用于指示所述第二缓存区所在单元是否对第五数据写刷新成功;
在对第五数据写刷新成功的情况下,更新映射表中所述第五数据的刷新时间。
8.一种众核系统中数据的处理装置,其特征在于,所述众核系统包括多个内内核,所述装置包括:
第一确定模块,用于确定第一内核当前待被执行运算的任务对应的第一数据;
第一获取模块,用于在所述第一内核的第一缓存区中存在所述第一数据的情况下,从所述第一缓存区获取所述第一数据;
第二获取模块,用于在所述第一缓存区中不存在所述第一数据的情况下,从所述第一内核以外的第二缓存区获取所述第一数据。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现包括如权利要求1-8中任一项所述的众核系统中数据的处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现包括如权利要求1-8中任一项所述的众核系统中数据的处理方法的步骤。
CN202110308784.4A 2021-03-23 2021-03-23 众核系统中数据的处理方法及装置 Pending CN115114041A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110308784.4A CN115114041A (zh) 2021-03-23 2021-03-23 众核系统中数据的处理方法及装置
PCT/CN2022/079235 WO2022199357A1 (zh) 2021-03-23 2022-03-04 数据处理方法及装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110308784.4A CN115114041A (zh) 2021-03-23 2021-03-23 众核系统中数据的处理方法及装置

Publications (1)

Publication Number Publication Date
CN115114041A true CN115114041A (zh) 2022-09-27

Family

ID=83323657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110308784.4A Pending CN115114041A (zh) 2021-03-23 2021-03-23 众核系统中数据的处理方法及装置

Country Status (1)

Country Link
CN (1) CN115114041A (zh)

Similar Documents

Publication Publication Date Title
US20060047849A1 (en) Apparatus and method for packet coalescing within interconnection network routers
EP2894568B1 (en) Information processing device, parallel computer system and information processing device control method
CN111796948B (zh) 一种共享内存访问方法、装置、计算机设备和存储介质
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
JPWO2012137339A1 (ja) 情報処理装置、並列計算機システムおよび演算処理装置の制御方法
CN113419973B (zh) 一种报文转发方法及装置
US20240152474A1 (en) On-chip integrated circuit, data processing device, and data processing method
JP2008234059A (ja) データ転送装置および情報処理システム
CN115114042A (zh) 存储数据访问方法、装置、电子设备和存储介质
US20230394000A1 (en) Interconnection system, data transmission method, and chip
WO2022199357A1 (zh) 数据处理方法及装置、电子设备、计算机可读存储介质
CN115114041A (zh) 众核系统中数据的处理方法及装置
JP6249117B1 (ja) 情報処理装置
US11194744B2 (en) In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
CN112395245B (zh) 处理器的访问装置、方法及计算机设备
KR20090128605A (ko) 버스트 전송이 가능한 프로세서간 통신 장치, 프로세서간통신 장치를 포함하는 시스템 및 프로세서간 통신 장치를구동하기 위한 디바이스 드라이버
JP4658064B2 (ja) 相互接続ネットワークでの効率的な順序保存用の方法及び装置
CN117201518B (zh) 数据的传输方法、系统、装置、存储介质和电子设备
CN116775510B (zh) 数据访问方法、装置、服务器和计算机可读存储介质
JP2018101184A (ja) 情報処理システム、データ送信方法及び情報処理装置
US11347667B2 (en) Bus controller and related methods
CN114610661B (zh) 数据处理装置、方法和电子设备
US11677624B2 (en) Configuration of a server in view of a number of clients connected to the server
WO2009037614A2 (en) Circuit with a plurality of processors connected to a plurality of memory circuits via a network
US20220276960A1 (en) Method for Processing Non-Cache Data Write Request, Cache, and Node

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