CN110825690B - 多核处理器的核间通信方法及装置 - Google Patents

多核处理器的核间通信方法及装置 Download PDF

Info

Publication number
CN110825690B
CN110825690B CN201911113724.6A CN201911113724A CN110825690B CN 110825690 B CN110825690 B CN 110825690B CN 201911113724 A CN201911113724 A CN 201911113724A CN 110825690 B CN110825690 B CN 110825690B
Authority
CN
China
Prior art keywords
load
area
descriptor
core
data
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
CN201911113724.6A
Other languages
English (en)
Other versions
CN110825690A (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.)
Beijing HJIMI Technology Co Ltd
Original Assignee
Beijing HJIMI 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 HJIMI Technology Co Ltd filed Critical Beijing HJIMI Technology Co Ltd
Priority to CN201911113724.6A priority Critical patent/CN110825690B/zh
Publication of CN110825690A publication Critical patent/CN110825690A/zh
Application granted granted Critical
Publication of CN110825690B publication Critical patent/CN110825690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种多核处理器的核间通信方法及装置,发送核通过构建待处理的数据存储至动态共享区的目标载荷区域,动态共享区表征存放有效载荷的区域,有效载荷表征多核之间需要传递的有效数据;构建与目标载荷区域相匹配的载荷描述符,并将载荷描述符存储至静态共享区,静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;将中断信号发送至接收核,使得接收核收到中断信号后,从静态共享区获取载荷描述符,通过载荷描述符获得目标载荷区域的入口指针,实现接收核从目标载荷区域获得待处理数据。实现了消息的传递和消息的处理解耦合,极大的降低了核间通信阻塞的风险,提高了通信效率。

Description

多核处理器的核间通信方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种多核处理器的核间通信方法及装置。
背景技术
随着物联网技术的不断发展以及人工智能化技术的不断催化,对芯片的功能、算力等要求越来越高。传统的单核芯片越来越难满足需求,芯片朝着多核、异构的方向发展,这就涉及到多处理核之间的通信问题。
现有基于共享内存的多核通信方案,一般采用预先分配固定大小的区域用作载荷共享区,即现有的载荷共享区采用固定大小的队列实现,消息的传递和处理必须同时完成才可完成一次核间通信,或者是将载荷备份至本地,延后处理。这就使得核间通信必须等待消息处理的完成,易导致核间通信阻塞;另外在遇到载荷较大时,数据拷贝耗时较大,较大的降低通信效率。
发明内容
针对于上述问题,本发明提供一种多核处理器的核间通信方法及装置,实现了降低核间通信阻塞的风险,提高了通信效率的目的。
为了实现上述目的,本发明提供了如下技术方案:
一种多核处理器的核间通信方法,应用于发送核,该方法包括:
构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理,其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
可选地,所述构建与所述目标载荷区域相匹配的载荷描述符,包括:
读取静态共享区的载荷队列描述符;
依据所述载荷队列描述符,获取当前载荷描述符队列状态;
根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
可选地,该方法还包括:
接收所述接收核发送的中断消息,并获取载荷释放指令,所述载荷释放指令表征接收核在完成对待处理的数据的处理之后,生成的指令,且所述载荷释放指令用于使得发送核释放所述待处理数据所在目标载荷区域占据的内存空间;
对所述载荷释放指令进行解析,获得载荷描述符中存放的指针所对应的内存块,所述载荷描述符中存放的指针标识所述目标载荷区域的入口指针;
释放所述内存块的内存。
一种多核处理器的核间通信方法,应用于接收核,该方法包括:
接收发送核发送的中断信号;
依据所述中断信号,在静态共享区读取载荷描述符;
通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号并发送至接收核。
可选地,所述方法还包括:
响应于接收到中断信号,在所述静态共享区内载荷队列描述符中读取载荷描述符中的读写偏移信息;
若所述静态共享区内有待读取的载荷描述符,将所述待读取的载荷描述符存储至本地;
更新所述载荷队列描述符中的读偏移信息。
可选地,该方法还包括:
响应于对所述待处理数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
一种应用于发送核的多核处理器的核间通信装置,该装置包括:
第一构建单元,用于构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
第二构建单元,用于构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
信号生成单元,用于生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理,其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
可选地,所述第二构建单元包括:
第一读取子单元,用于读取静态共享区的载荷队列描述符;
第一获取子单元,用于依据所述载荷队列描述符,获取当前载荷描述符队列状态;
第一构造子单元,用于根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
一种应用于接收核的多核处理器的核间通信装置,该装置包括:
信号接收单元,用于接收发送核发送的中断信号;
读取单元,用于依据所述中断信号,在静态共享区读取载荷描述符;
获取单元,用于通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号并发送至所述接收核。
可选地,该装置还包括:
第三构建单元,用于响应于对所述待处理数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
信号发送单元,用于发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
相较于现有技术,本发明提供了一种多核处理器的核间通信方法及装置,发送核通过构建待处理的数据存储至动态共享区的目标载荷区域,动态共享区表征存放有效载荷的区域,有效载荷表征多核之间需要传递的有效数据;构建与目标载荷区域相匹配的载荷描述符,并将载荷描述符存储至静态共享区,静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号,并将中断信号发送至接收核,使得接收核根据中断信号对待处理的数据进行处理,其中,接收核接收到中断信号后,从静态共享区获取载荷描述符,通过载荷描述符获得目标载荷区域的入口指针,实现从目标载荷区域获得待处理数据。通过采用一组固定长度的载荷描述符,其中包含待处理载荷的指针和长度等信息。接收核只需将载荷描述符暂存至本地,即可完成当前消息的接收,实现了消息的传递和消息的处理解耦合,极大的降低了核间通信阻塞的风险,提高了通信效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种多核系统内存分布示意图;
图2为本发明实施例提供的一种双核系统的核1内存划分示意图;
图3为本发明实施例提供的一种应用于发送核的多核处理器的核间通信方法的流程示意图;
图4为本发明实施例提供的一种应用于接收核的多核处理器的核间通信方法的流程示意图;
图5为本发明实施例提供的一种发送核向接收核发送消息的流程示意图;
图6为本发明实施例提供的一种接收核向发送核发送载荷释放消息的流程示意图;
图7为本发明实施例提供的一种应用于发送核的多核处理器的核间通信装置的结构示意图;
图8为本发明实施例提供的一种应用于接收核的多核处理器的核间通信装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了便于对本发明的技术方案进行理解,将本发明实施例中应用到的术语进行解释。
载荷索引(Payload Index):是指采用定长的载荷描述符对载荷进行描述,并将载荷描述符采用环形队列存储在共享内存里,通过环形队列描述符中的读/写偏移索引相应的载荷描述符,从而索引到相应载荷的过程。
载荷(Payload):多核之间需要传递的有效消息/数据。
载荷共享区(Share Payload Zone):用于存放待传递的载荷的内存区,所有有通信需求处理器均可访问该区域。
静态共享区:用于存放载荷队列描述符和载荷描述符的区域。
动态共享区:用于存放有效载荷的区域。
载荷描述符:用于描述载荷的定长数据包。包括但不限于用于实际存放载荷的共享内存指针,载荷的长度,消息类型,用于释放载荷内存指针的标志等。
载荷描述符队列:用于存放载荷描述符的一组环形队列。
载荷队列描述符:用于描述载荷描述符队列的定长数据包,包括载荷描述符队列的宽度、深度、读偏移、写偏移、载荷的入口指针等。每个处理器核占有一个载荷队列描述符,该载荷队列描述符位于多核共享内存区,所有核均可访问。本核具有读/写权限,其他核对该队列具有读权限。
如图1所示,其示出了本发明实施例提供的多核系统内存分布示意图。多核系统具有n个核(n≥2),n核具有可以共同访问的共享内存区。按照本方案将共享内存划分为n块,每个核拥有1块共享内存区,大小依据共享内存总大小及核间通信任务需求确定。单核所属的共享内存区分为静态共享区和动态共享区。其中,静态共享区包含n-1块,分别与除本核外的其他核一一对应,用于存放载荷队列描述符及载荷描述符;动态共享区包含1块,用于动态申请/释放待传递的载荷。
参见图2,以n=2为例,其示出了核1共享内存划分示意图。在图2中是以核1为例说明的,其他核内存划分与之一致。
载荷队列描述符包含但不限于以下内容:用于描述载荷队列的宽度、深度信息;用于描述载荷队列与指定通信核之间的读/写偏移;用于描述载荷队列的起始地址以及用于标识当前载荷队列描述符的标志。
载荷描述符用于描述待传递的载荷,包含但不限于以下内容:用于描述待传递载荷的入口地址和长度信息;用于描述当前传递消息的类型,用于区分当前载荷是否使用完毕可以释放的标志等。
如前所述,载荷队列描述符和载荷描述符位于静态共享区。每个静态共享区与一个待通信的核一一对应。n核系统内除本核外,需划分n-1个静态共享区,分别与n-1个待通信的核一一对应。对于静态共享区,本核具有读、写权限,对应待通信的核只有读权限,特别的,载荷队列描述符中的读偏移信息需要有对应核根据读取情况进行写更新,除此之外,不享有写权限。
载荷用于存储发送核待传递给接收核的有效信息,位于动态共享区。载荷数据由发送核产生,内存由发送核负责申请和维护。对于动态共享区,接收核只有在从载荷描述符中获取到了载荷所在内存区后,在未宣告释放的时间内,对该载荷所在的内存区具有读写权限。当接收核使用完成,向发送核发送释放指令后,发送核将释放该片内存,此后,接收核将不再享有对该区域内存的读、写权限。
在本申请实施例中提供了一种多核处理器的核间通信方法,由于多核系统包括发送核和接收核,当该方法应用于发送核时,参见图3,该方法包括以下步骤:
S101、构建待处理的数据存储至动态共享区的目标载荷区域。
所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
S102、构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区。
所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
S103、生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理。
其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
具体的,所述构建与所述目标载荷区域相匹配的载荷描述符,包括:
读取静态共享区的载荷队列描述符,所述载荷队列描述符用于描述载荷描述符队列的宽度、深度、读偏移、写偏移、载荷的入口指针等。每个核占有一个载荷队列描述符,该载荷队列描述符位于多核共享内存区,所有核均可访问。
依据所述载荷队列描述符,获取当前载荷描述符队列状态;
根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
对应的,当对内存资源进行释放时,该方法还包括:
接收所述接收核发送的中断消息,并获取载荷释放指令,所述载荷释放指令表征接收核在完成对待处理的数据的处理之后,生成的指令,且所述载荷释放指令用于使得发送核释放所述待处理数据所在目标载荷区域占据的内存空间;
对所述载荷释放指令进行解析,获得载荷描述符中存放的指针所对应的内存块,所述载荷描述符中存放的指针标识所述目标载荷区域的入口指针;
释放所述内存块的内存。
相应的,本发明实施例还提供了一种应用于接收核的多核处理器的核间通信方法。参见图4,该方法包括:
S201、接收发送核发送的中断信号;
S202、依据所述中断信号,在静态共享区读取载荷描述符;
S203、通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号并发送至接收核。
在上述实施例的基础上,该方法还包括:
响应于接收到中断信号,在所述静态共享区内载荷队列描述符中读取载荷描述符中的读写偏移信息;
若所述静态共享区内有待读取的载荷描述符,将所述待读取的载荷描述符存储至本地;
更新所述载荷队列描述符中的读偏移信息。
当需要对内存进行释放时,该方法还包括:
响应于对所述待处理的数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
举例说明,以核1代表发送核,核2代表接收核。
参见图5,其示出了发送核向接收核发送消息的流程示意图。
S10、核1构建待处理的数据至载荷1区域。
核1访问核1专属的与核2一一对应的静态共享区,读取载荷描述符队列描述符,获取当前载荷描述符队列状态。当载荷描述符队列为不满的情况下,申请动态共享区空间,存放有效载荷,得到载荷1区域。
S11、核1构建载荷描述符并根据索引写入载荷描述符2位置。
实现了将构造的载荷描述符写入载荷描述符队列。
S12、核1更新载荷队列描述符写偏移。
实现了维护载荷队列描述符的写偏移。
S13、核1通过中断模块向核2发送中断信号,通知其处理该消息。
S14、核2读取载荷队列描述符,根据读、写偏移,索引至载荷描述符2,拷贝至本地。
核2在收到中断通知后,读取核1专属的与核2一一对应的静态共享区内载荷队列描述符中的读、写偏移,确认当前有待读取的载荷描述符后,立即将待读取的载荷描述符拷贝至本地。
S15、核2更新载荷队列描述符读偏移。
S17、从载荷描述符2中获取载荷1入口指针,独占其读、写权限。
参见图6,其示出了接收核向发送核发送载荷释放消息的流程示意图。接收核(核2)在完成对消息的处理之后,构建载荷释放指令,通知发送核(核1)可以释放/回收该载荷所占据的共享内存空间用作他用,具体过程如下:
S20、核2构建载荷描述符并根据索引写入载荷描述符2位置;
构建基于载荷描述符的释放/回收指令包。将载荷可释放/回收的标志置为有效并将载荷指针一起放入释放/回收指令包,存入本核与发送核绑定的静态共享区。
S21、核2更新载荷队列描述符写偏移;
S22、发送中断信号给核1。
S23、核1读取核2上与核1对应的载荷队列描述符,根据读、写偏移、索引至载荷描述符2,拷贝至本地。
S24、核1更新核2上与核1对应的载荷队列描述符读偏移。
S25、从载荷描述符2中读取载荷释放标志位有效,释放载荷1。
因此,通过本发明中多核处理器的核间通信装置实现了:
1)每个核拥有一片专属的共享内存区。n个核划分n块共享内存区。以核1的共享内存区为例,该共享内存区划分为静态共享区和动态共享区。静态共享区与需要通信的核的数量有关系,n个核需要n-1个静态共享区。静态共享区只存储载荷描述符及载荷队列描述符,占用内存少;动态共享区存储有效载荷,一般占用内存较大。
2)载荷队列描述符用于索引载荷描述符队列,包含但不限于描述载荷描述符队列的宽度、深度、读偏移、写偏移、入口地址等信息。
3)载荷描述符队列用于存放载荷描述符,载荷描述符用于索引有效载荷,包含但不限于描述载荷的入口地址、长度以及用于标识载荷已用完可释放的标志。
4)消息发送时,发送核构建载荷描述符,通过载荷队列描述符索引至空闲的区域,写入该载荷描述符,更新载荷队列描述符的写偏移,发送中断通知。
5)消息接收时,接收核读取该发送核的静态共享区,获取载荷队列描述符并索引至相应的载荷描述符,拷贝该载荷描述符至本地内存进行备份,更新该载荷队列描述符的读偏移,表示当前消息已读取。
6)接收核从收到该消息到发出释放指令前,对载荷及载荷所占内存享有独占的读、写权限。
7)载荷释放/回收时,接收核构建载荷描述符,将用于标识载荷已用完可释放的标志置位,同时将载荷的入口地址打包至载荷描述符内,将载荷描述符写入自身拥有的与发送核对应的静态内存区,更新写偏移,发送中断信号给发送核,通知其有消息传入。发送核根据中断信号索引至该静态内存区,通过载荷队列描述符索引至该载荷描述符,读取内存已用完可释放标志,将载荷指针所指向的内存区域进行释放/回收。
在本发明中每个核划分一个共享内存区的方法,明确了每个核的内存管理边界,避免了内存越界引起的问题。采用多个静态共享区的方法,每个核相对其他核之间都有一个专有的静态共享区,用于存放本核发出的消息,对该静态共享区,本核享有读、写权限(读偏移字段除外),其他核享有读权限(读偏移除外,读偏移字段享有读、写权限)。该方法避免了内存抢占问题,避免由于竞争导致异常,大大降低系统风险。采用单个动态共享区的方法,单个核对外提供的载荷内存的回收和释放从同一的内存池申请和释放,既避免了动态共享区过小引起内存申请失败问题,同时,内存统一管理,降低了系统的复杂度。采用载荷队列描述符描述载荷描述符,可以快速索引载荷描述符,同时可以通过载荷描述符的读/写偏移,判断载荷描述符队列的满/非满状态,避免内存覆盖。采用载荷描述符索引载荷,解耦载荷索引和有效载荷,实现载荷共享区动态分配,提高内存利用率。解耦载荷传递和载荷处理,确保载荷传递的延迟小且固定,提高消息传递的效率,极大的降低了消息阻塞的风险。有效载荷零拷贝,接收核只需根据收到的载荷描述符索引至相应的载荷即享有相应区域内存的读、写权限,效率高。申请者释放机制,内存管理更加灵活。
对应的,在本发明中还分别提供了应用于发送核和接收核的多核处理器的核间通信装置,参见图7,应用于发送核的多核处理器的核间通信装置包括:
第一构建单元10,用于构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
第二构建单元11,用于构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
信号生成单元12,用于生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理,其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
可选地,所述第二构建单元包括:
第一读取子单元,用于读取静态共享区的载荷队列描述符;
第一获取子单元,用于依据所述载荷队列描述符,获取当前载荷描述符队列状态;
第一构造子单元,用于根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
可选地,该装置还包括:
指令获取单元,用于接收所述接收核发送的中断消息,并获取载荷释放指令,所述载荷释放指令表征接收核在完成对待处理的数据的处理之后,生成的指令,且所述载荷释放指令用于使得发送核释放所述待处理数据所在目标载荷区域占据的内存空间;
解析单元,用于对所述载荷释放指令进行解析,获得载荷描述符中存放的指针所对应的内存块,所述载荷描述符中存放的指针标识所述目标载荷区域的入口指针;
释放单元,用于释放所述内存块的内存。
参见图8,一种应用于接收端的多核处理器的核间通信装置,包括:
信号接收单元20,用于接收发送核发送的中断信号;
读取单元21,用于依据所述中断信号,在静态共享区读取载荷描述符;
获取单元22,用于通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷描述符队列描述符和载荷描述符的区域;生成中断信号并发送至接收核。
可选地,该装置还包括:
第三构建单元,用于响应于对所述待处理的数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
信号发送单元,用于发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
可选地,该装置还包括:
响应单元,用于响应于接收到中断信号,在所述静态共享区内载荷队列描述符中读取载荷描述符中的读写偏移信息;
存储单元,用于若所述静态共享区内有待读取的载荷描述符,将所述待读取的载荷描述符存储至本地;
更新单元,用于更新所述载荷描述队列描述符中的读偏移信息。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种多核处理器的核间通信方法,其特征在于,将共享内存区划分给每个核,每个核拥有一块共享内存区,将单核所属的区域分为静态共享区和动态共享区;
应用于发送核,该方法包括:
构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理,其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,接收核将载荷描述符暂存至本地,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
2.根据权利要求1所述的方法,其特征在于,所述构建与所述目标载荷区域相匹配的载荷描述符,包括:
读取静态共享区的载荷队列描述符;
依据所述载荷队列描述符,获取当前载荷描述符队列状态;
根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
接收所述接收核发送的中断消息,并获取载荷释放指令,所述载荷释放指令表征接收核在完成对待处理的数据的处理之后,生成的指令,且所述载荷释放指令用于使得发送核释放所述待处理数据所在目标载荷区域占据的内存空间;
对所述载荷释放指令进行解析,获得载荷描述符中存放的指针所对应的内存块,所述载荷描述符中存放的指针标识所述目标载荷区域的入口指针;
释放所述内存块的内存。
4.一种多核处理器的核间通信方法,其特征在于,将共享内存区划分给每个核,每个核拥有一块共享内存区,将单核所属的区域分为静态共享区和动态共享区;
应用于接收核,该方法包括:
接收发送核发送的中断信号;
依据所述中断信号,在静态共享区读取载荷描述符,将载荷描述符暂存至本地;
通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号并发送至接收核。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于接收到中断信号,在所述静态共享区内载荷队列描述符中读取载荷描述符中的读写偏移信息;
若所述静态共享区内有待读取的载荷描述符,将所述待读取的载荷描述符存储至本地;
更新所述载荷队列描述符中的读偏移信息。
6.根据权利要求4所述的方法,其特征在于,该方法还包括:
响应于对所述待处理数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
7.一种应用于发送核的多核处理器的核间通信装置,其特征在于,将共享内存区划分给每个核,每个核拥有一块共享内存区,将单核所属的区域分为静态共享区和动态共享区;
该装置包括:
第一构建单元,用于构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;
第二构建单元,用于构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;
信号生成单元,用于生成中断信号,并将所述中断信号发送至接收核,使得所述接收核根据所述中断信号对所述待处理的数据进行处理,其中,所述接收核接收到所述中断信号后,从所述静态共享区获取所述载荷描述符,将载荷描述符暂存至本地,通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据。
8.根据权利要求7所述的装置,其特征在于,所述第二构建单元包括:
第一读取子单元,用于读取静态共享区的载荷队列描述符;
第一获取子单元,用于依据所述载荷队列描述符,获取当前载荷描述符队列状态;
第一构造子单元,用于根据所述当前载荷描述符队列状态构造载荷描述符,并将所述载荷描述符写入载荷描述符队列,其中,所述载荷描述符包括所述目标载荷区域的入口指针。
9.一种应用于接收核的多核处理器的核间通信装置,其特征在于,将共享内存区划分给每个核,每个核拥有一块共享内存区,将单核所属的区域分为静态共享区和动态共享区;
该装置包括:
信号接收单元,用于接收发送核发送的中断信号;
读取单元,用于依据所述中断信号,在静态共享区读取载荷描述符,将载荷描述符暂存至本地;
获取单元,用于通过所述载荷描述符获得目标载荷区域的入口指针,实现从所述目标载荷区域获得待处理数据;
其中,所述发送核构建待处理的数据存储至动态共享区的目标载荷区域,所述动态共享区表征存放有效载荷的区域,所述有效载荷表征多核之间需要传递的有效数据;构建与所述目标载荷区域相匹配的载荷描述符,并将所述载荷描述符存储至静态共享区,所述静态共享区表征用于存放载荷队列描述符和载荷描述符的区域;生成中断信号并发送至所述接收核。
10.根据权利要求9所述的装置,其特征在于,该装置还包括:
第三构建单元,用于响应于对所述待处理数据的处理完成,构建基于载荷描述符的释放指令,并将所述释放指令存储至静态共享区;
信号发送单元,用于发送根据所述释放指令构成的中断消息至所述发送核,使得所述发送核根据所述中断消息在所述静态共享区读取载荷描述符,并对所述载荷描述符进行解析,获得载荷描述符中存放的指针所对应的内存块;释放所述内存块的内存。
CN201911113724.6A 2019-11-14 2019-11-14 多核处理器的核间通信方法及装置 Active CN110825690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911113724.6A CN110825690B (zh) 2019-11-14 2019-11-14 多核处理器的核间通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911113724.6A CN110825690B (zh) 2019-11-14 2019-11-14 多核处理器的核间通信方法及装置

Publications (2)

Publication Number Publication Date
CN110825690A CN110825690A (zh) 2020-02-21
CN110825690B true CN110825690B (zh) 2022-03-15

Family

ID=69555294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911113724.6A Active CN110825690B (zh) 2019-11-14 2019-11-14 多核处理器的核间通信方法及装置

Country Status (1)

Country Link
CN (1) CN110825690B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535341B (zh) * 2020-04-14 2023-09-22 大唐移动通信设备有限公司 Linux下CPU核间中断通信的实现方法及装置
CN112104572B (zh) * 2020-09-11 2023-02-07 北京天融信网络安全技术有限公司 数据处理方法、装置、电子设备及存储介质
CN117909089A (zh) * 2022-10-11 2024-04-19 深圳市中兴微电子技术有限公司 多核处理器的核间通信系统、方法、设备及存储介质
CN116841952A (zh) * 2023-09-01 2023-10-03 北京智芯微电子科技有限公司 核间通信系统、方法、装置、设备、芯片及可读存储介质
CN117234607B (zh) * 2023-11-15 2024-01-26 北京智芯微电子科技有限公司 多核系统及其动态模块加载方法、介质和处理器芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571843A (zh) * 2008-04-29 2009-11-04 国际商业机器公司 在多核处理器中动态共享高速缓存的方法、设备和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100458757C (zh) * 2005-07-28 2009-02-04 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置
CN101000596A (zh) * 2007-01-22 2007-07-18 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
CN100492339C (zh) * 2007-01-22 2009-05-27 北京中星微电子有限公司 一种可实现芯片内多核间通信的芯片及通信方法
CN101178701B (zh) * 2007-12-11 2010-07-21 华为技术有限公司 一种多处理器间通信的方法及系统
CN108073545A (zh) * 2016-11-17 2018-05-25 联芯科技有限公司 一种多处理器通信装置及方法
US20190149552A1 (en) * 2017-04-21 2019-05-16 InfoSci, LLC Systems and Methods for Dynamic Authentication and Communication Protection Using an Ephemeral Shared Data Set

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571843A (zh) * 2008-04-29 2009-11-04 国际商业机器公司 在多核处理器中动态共享高速缓存的方法、设备和系统

Also Published As

Publication number Publication date
CN110825690A (zh) 2020-02-21

Similar Documents

Publication Publication Date Title
CN110825690B (zh) 多核处理器的核间通信方法及装置
US8381230B2 (en) Message passing with queues and channels
CN108319496B (zh) 资源访问方法、业务服务器、分布式系统及存储介质
US8171267B2 (en) Method and apparatus for migrating task in multi-processor system
CN109032796B (zh) 一种数据处理方法和装置
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN105630731A (zh) 一种多cpu环境下网卡数据处理方法和装置
WO2017056725A1 (ja) 車載制御装置
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
US20190227918A1 (en) Method for allocating memory resources, chip and non-transitory readable medium
CN102667714B (zh) 支持访问由操作系统环境外的资源提供的功能的方法和系统
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN105068769A (zh) 一种基于消息中间件的消息管理方法及装置
CN103324599A (zh) 处理器间通信方法与系统级芯片
CN110445580B (zh) 数据发送方法及装置、存储介质、电子装置
CN104572483B (zh) 动态内存管理装置及方法
CN101547209B (zh) 一种信息表项的更新方法和设备
CN102622271A (zh) 用于多线程处理的使用信号量的方法和设备
CN116089049B (zh) 基于异步并行i/o请求的进程同步调度方法、装置以及设备
CN116107697B (zh) 一种不同操作系统之间互相通信的方法及系统
US8706923B2 (en) Methods and systems for direct memory access (DMA) in-flight status
US20130247065A1 (en) Apparatus and method for executing multi-operating systems
WO2010119932A1 (ja) マルチプロセッサシステム、マルチプロセッサシステムにおけるメモリ管理方法及び通信プログラム
US7096177B2 (en) Multiprocessor array
CN114969851A (zh) 一种基于fpga的数据处理方法、装置、设备及介质

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