CN115934385B - 一种多核核间通信方法、系统、设备及存储介质 - Google Patents
一种多核核间通信方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115934385B CN115934385B CN202310087035.2A CN202310087035A CN115934385B CN 115934385 B CN115934385 B CN 115934385B CN 202310087035 A CN202310087035 A CN 202310087035A CN 115934385 B CN115934385 B CN 115934385B
- Authority
- CN
- China
- Prior art keywords
- message request
- rpc
- queue
- sending
- receiving
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 129
- 238000004891 communication Methods 0.000 title claims abstract description 127
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013475 authorization Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 230000002618 waking effect Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Multi Processors (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种多核核间通信方法、系统、设备及存储介质,应用于底层系统设计技术领域,包括:以RPC通信的方式,将消息请求发送至发送队列中;通过发送队列中的消息请求,在接收端产生授权中断,以通过接收端产生的授权中断唤醒接收端的RPC任务;在接收端通过接收端的RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的消息请求在发送端产生授权中断,以通过发送端产生的授权中断唤醒发送端的RPC任务;通过发送端的RPC任务处理接收队列中的各个消息请求。应用本申请的方案,利用授权中断来实现核间通信,有利于有效地提升多核核间通信的实时性。
Description
技术领域
本发明涉及底层系统设计技术领域,特别是涉及一种多核核间通信方法、系统、设备及存储介质。
背景技术
近些年,随着互联网、物联网等行业的迅速崛起,计算数据量和计算速率呈几何级增长,因此单个CPU(Central Processing Unit,中央处理器)核上运行的数据也日益增多。当单核处理器在运行速度和数据安全性上不足以支撑系统业务时,为了提高整个系统的运算性能,便提出了多核处理器的系统架构,多核处理器系统架构将多个任务进程平均分配到多个处理器上进行执行,充分利用了多个处理器的资源,通过多处理器协同配合工作,可以提高整个底层系统的运行速度和数据安全性。
然而随着嵌入式领域threadX等实时操作系统的快速发展,底层系统对于多核核间通信速率、并发性的需求也在日益增长,而多核核间通信的延时特性无法保证系统整体的实时性能,因此需要解决多核核间通信的实时性问题。
目前,支持多核处理器平台的实时操作系统体系结构有SMP(Symmetric Multi-Processing,对称多重处理)架构和AMP(Asymmetric Multi-processing,非对称多重处理)架构两种。采用SMP架构时,每个CPU处理器需要通过相同的总线访问相同的内存资源,如果CPU数量不断增加,使用同一总线就容易导致内存访问冲突,这样就降低了CPU的性能。实验证明,SMP架构的系统,一般使用2至4个CPU可以达到利用率最高,如果CPU再多利用率就会降低,浪费了处理器的性能,因此存在扩展能力有限的缺点。而在AMP架构中,每个CPU上运行一个操作系统,每个操作系统拥有自己专用的内存,相互之间通过访问受限的共享内存进行通信。但是,AMP架构下的消息队列长度和共享内存大小被限定,因此灵活性较差。
还有的方案中采用的是虚拟化技术,在操作系统和硬件平台之间增加一层独立的软件层,用以统一管理内存、CPU和中断等资源,同时抽象出标准的访问接口和虚拟硬件资源,为运行在该软件层的操作系统和应用程序虚拟运行环境,使其以虚拟机的形式与其他系统进行跨核通信。在实际应用时,核间数据交互需要通过中间的虚拟机进行处理,会造成核间通信的实时性下降;而且,创建虚拟机需要消耗额外的CPU和内存资源,因此会增加整个系统的开销和资源浪费。
综上所述,如何有效地实现多核核间通信,提升多核核间通信的实时性,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种多核核间通信方法、系统、设备及存储介质,以有效地实现多核核间通信,提升多核核间通信的实时性。
为解决上述技术问题,本发明提供如下技术方案:
一种多核核间通信方法,应用于多核处理器系统中的当前任意1个作为发送端的处理器中,所述发送端与当前作为接收端的处理器进行RPC通信,所述多核核间通信方法包括:
以RPC通信的方式,将消息请求发送至发送队列中;
通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务;
通过所述发送端的RPC任务处理所述接收队列中的各个消息请求。
优选的,针对所述多核处理器系统中的任意1个处理器,所述处理器仅绑定1个线程。
优选的,所述发送端的RPC任务包括所述发送端的第一RPC任务和所述发送端的第二RPC任务,所述接收端的RPC任务包括所述接收端的第一RPC任务和所述接收端的第二RPC任务;
所述以RPC通信的方式,将消息请求发送至发送队列中,包括:
通过异步发送接口,使用所述发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用所述发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至所述发送队列,且在接收到对应于所述第二类消息请求的反馈之前,控制所述发送端的第二RPC任务为阻塞状态。
优选的,所述通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务,包括:
通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的第二RPC任务;
其中,在所述发送队列中没有消息请求时,所述接收端的第二RPC任务处于休眠状态;在所述接收端的第二RPC任务将所述发送队列中的消息请求执行完毕之后,所述接收端的第二RPC任务恢复为休眠状态。
优选的,针对所述发送队列中的任意1个消息请求,所述消息请求中携带有第一数值,所述第一数值表示的是在所述消息请求生成的时刻,所述发送端当前的第一信号量值X1加上预设参数Y之后所得到的数值;
其中,当所述接收端的第二RPC任务将所述发送队列中的任意1个消息请求执行完毕时,所述接收端的第二RPC任务将所述第一数值减去Y,以表示该消息请求执行完毕。
优选的,通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的授权中断,包括:
通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的基于软件的硬件授权中断。
优选的,在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务,包括:
在所述接收端通过所述接收端的第二RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的各个消息请求在所述发送端产生相应数量的授权中断,以通过所述发送端产生的授权中断唤醒发送端的第一RPC任务。
优选的,通过所述发送端的RPC任务处理所述接收队列中的各个消息请求,包括:
通过所述发送端的第一RPC任务唤醒所述发送端的第二RPC任务,并通过所述发送端的第二RPC任务处理所述接收队列中的各个消息请求。
优选的,针对所述接收队列中的任意1个消息请求,所述消息请求中携带有第二数值,所述第二数值表示的是在所述消息请求生成的时刻,所述接收端当前的第二信号量值X2加上预设参数Y之后所得到的数值;
其中,当所述发送端的第二RPC任务将所述接收队列中的任意1个消息请求处理完毕时,所述发送端的第一RPC任务将所述第二数值减去Y,以表示该消息请求执行完毕。
优选的,针对任意1个消息请求,所述消息请求中设置有用于最多放置第一大小的数据的预留空间,还设置有用于指向共享缓存中的数据地址的指针空间。
优选的,所述多核处理器系统包括控制平面和数据平面,所述控制平面中包括1个或者多个集群,所述数据平面中包括1个或者多个集群,针对任意1个集群,该集群包括1个或多个处理器;
所述控制平面中的处理器为用于处理控制信息的处理器,所述控制平面中的处理器为用于处理数据信息的处理器。
优选的,在所述控制平面中,任意2个处理器均进行RPC通信连接。
优选的,在所述数据平面中,任意2个处理器均进行RPC通信连接。
优选的,所述数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用AMP模式。
优选的,所述数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用SMP模式。
一种多核核间通信系统,应用于多核处理器系统中的当前任意1个作为发送端的处理器中,所述发送端与当前作为接收端的处理器进行RPC通信,所述多核核间通信系统包括:
消息请求发送模块,用于以RPC通信的方式,将消息请求发送至发送队列中;
第一授权中断产生模块,用于通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
第二授权中断产生模块,用于在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务;
反馈数据处理模块,用于通过所述发送端的RPC任务处理所述接收队列中的各个消息请求。
一种多核核间通信方法,应用于多核处理器系统中的当前任意1个作为接收端的处理器中,所述接收端与当前作为发送端的处理器进行RPC通信,所述多核核间通信方法包括:
在所述发送端以RPC通信的方式将消息请求发送至发送队列中,并通过所述发送队列中的消息请求在所述接收端产生授权中断之后,通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过所述接收队列中的消息请求在所述发送端产生授权中断,以使所述发送端产生的授权中断唤醒所述发送端的RPC任务,并通过所述发送端的RPC任务处理所述接收队列中的各个消息请求。
一种多核核间通信系统,应用于多核处理器系统中的当前任意1个作为接收端的处理器中,所述接收端与当前作为发送端的处理器进行RPC通信,所述多核核间通信系统包括:
接收端RPC任务唤醒模块,用于在所述发送端以RPC通信的方式将消息请求发送至发送队列中,并通过所述发送队列中的消息请求在所述接收端产生授权中断之后,通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
任务执行模块,用于通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过所述接收队列中的消息请求在所述发送端产生授权中断,以使所述发送端产生的授权中断唤醒所述发送端的RPC任务,并通过所述发送端的RPC任务处理所述接收队列中的各个消息请求。
一种多核核间通信设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述所述的多核核间通信方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的多核核间通信方法的步骤。
应用本发明实施例所提供的技术方案,利用授权中断来实现核间通信,因为使用的是硬件特性,因此有利于大幅度提升系统的实时性。具体的,本申请可以应用于多核处理器系统中的当前任意1个作为发送端的处理器中,发送端与当前作为接收端的处理器进行RPC通信。发送端的处理器可以以RPC通信的方式,将消息请求发送至发送队列中,通过发送队列中的消息请求,可以在接收端产生授权中断,从而进入接收端CPU的中断处理函数,由于是利用授权中断来实现核间通信,因为使用的是硬件特性,因此有利于大幅度提升系统的实时性。在接收端产生授权中断之后,便可以唤醒接收端的RPC任务,接收端的RPC任务便会执行发送队列中的消息请求,执行完毕之后会反馈相应的消息请求至接收队列。同样的,通过接收队列中的消息请求,可以在发送端产生授权中断,进而通过发送端产生的授权中断唤醒发送端的RPC任务,由于该过程也是利用授权中断来实现核间通信,因此有利于大幅度提升系统的实时性。在发送端产生授权中断之后,便可以通过发送端的RPC任务处理接收队列中的各个消息请求,完成核间通信过程。
综上所述,本申请的方案中利用授权中断来实现核间通信,有利于有效地提升多核核间通信的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种多核核间通信方法应用于发送端的实施流程图;
图2为本发明中一种具体实施方式中的多核核间通信的架构示意图;
图3为本发明中一种具体实施方式中多核核间通信使用信号量值的架构示意图;
图4为本发明中一种具体实施方式中核处理器系统的架构示意图;
图5为本发明中一种多核核间通信系统的结构示意图;
图6为本发明中一种多核核间通信方法应用于接收端的实施流程图;
图7为本发明中一种计算机可读存储介质的结构示意图;
图8为本发明中一种多核核间通信设备的结构示意图。
具体实施方式
本发明的核心是提供种多核核间通信方法,利用授权中断来实现核间通信,有利于有效地提升多核核间通信的实时性。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种多核核间通信方法的实施流程图,该多核核间通信方法可以应用于多核处理器系统中的当前任意1个作为发送端的处理器中,发送端与当前作为接收端的处理器进行RPC通信,该多核核间通信方法可以包括以下步骤:
步骤S101:以RPC通信的方式,将消息请求发送至发送队列中。
具体的,本申请的方案中,多核处理器系统的具体架构可以根据实际需要进行设定和调整,而当其中的2个处理器之间进行通信时,发起本次通信便是发送端,也可以称为Master端,相应的,另一个处理器当前便是作为接收端,也可以称为Remote端。本申请的方案中,发送端与接收端之间采用的是RPC(Remote Procedure Call,远程过程调用)的通信方式实现通信。
发送端会以RPC通信的方式,将消息请求发送至发送队列中,例如可以通过一个任务来实现将消息请求发送至发送队列中。
在本发明的一种具体实施方式中,考虑到发送至发送队列的消息请求可以分为2种类型,一种便是具体的数据内容,另一种则是属性信息,起到控制的效果,例如当前的任务执行进度,元数据信息等均是这一种,因此,发送端可以利用2个不同的RPC任务来分别进行处理,保障任务的有序执行。
即在本发明的一种具体实施方式中,2个处理器之间进行RPC通信时,RPC可以包含两个由共享内存组成的消息队列(发送队列和接收队列)、4个后台RPC处理任务(发送端的第一RPC任务和第二RPC任务,接收端的第一RPC任务和第二RPC任务)以及中断服务程序。
因此,在本发明的该种具体实施方式中,发送端的RPC任务包括发送端的第一RPC任务和发送端的第二RPC任务,接收端的RPC任务包括接收端的第一RPC任务和接收端的第二RPC任务;
相应的,该种实施方式中,步骤S101可以具体包括以下2个步骤:
步骤一:通过异步发送接口,使用发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
步骤一:通过同步发送接口,使用发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至发送队列,且在接收到对应于第二类消息请求的反馈之前,控制发送端的第二RPC任务为阻塞状态。
结合图2进行说明,图2中,将发送端的第一RPC任务标记为发送端TaskA,将发送端的第二RPC任务标记为发送端TaskB。
发送端的第一RPC任务是将用于反映请求内容的各个第一类消息请求发送至发送队列,也就是说,发送端的第一RPC任务允许将1个或者多个第一类消息请求发送至发送队列,而由于允许发送多个第一类消息请求,因此需要使用异步发送接口,即异步发送接口不会阻塞发送端TaskA的任务。
第一类消息请求用于反映请求内容,也即上文描述的将消息请求分为2种类型时,作为具体的数据内容的这一种。
在实际应用中,通常可以在每1个第一类消息请求中均传入一个Callback回调函数,用来处理异步调用的返回数据。
发送端的第二RPC任务则是将用于反映请求属性的第二类消息请求发送至发送队列,也就是说,发送端的第二RPC任务将1个第二类消息请求发送至发送队列之后,便会为阻塞状态,直到接收到了返回数据。由于需要阻塞发送端的第二RPC任务,因此,该种实施方式中使用的是同步发送接口,即,将用于反映请求属性的第二类消息请求发送至发送队列之后,同步发送接口会使得发送端TaskB的任务处于阻塞状态,直到有返回数据。
第二类消息请求用于反映请求属性,也即上文描述的将消息请求分为2种类型时,作为属性信息的这一种,起到控制的效果,例如当前的任务执行进度,元数据信息等均是这一种。
步骤S102:通过发送队列中的消息请求,在接收端产生授权中断,以通过接收端产生的授权中断唤醒接收端的RPC任务。
发送队列中有消息请求时,便可以在接收端产生授权中断,例如具体场合中可以产生HAS授权中断。
在通过接收端产生的授权中断唤醒接收端的RPC任务时,通常可以由中断处理函数实现,例如产生HAS授权中断之后,可以进入接收端CPU的HAS中断处理函数,再由HAS中断处理函数唤醒接收端休眠的RPC 任务,使得接收端可以进行任务的执行。
还需要说明的是,通过发送队列中的消息请求在接收端产生授权中断,具体的触发方式可以有多种,例如可以周期性触发,又如可以在发送队列中的消息请求数量达到一定数量时触发,根据实际需要进行设定即可,并不影响本发明的实施。
在本发明的一种具体实施方式中,步骤S102可以具体包括:
通过发送队列中的各个消息请求,在接收端产生相应数量的授权中断,以通过接收端产生的授权中断唤醒接收端的第二RPC任务;
其中,在发送队列中没有消息请求时,接收端的第二RPC任务处于休眠状态;在接收端的第二RPC任务将发送队列中的消息请求执行完毕之后,接收端的第二RPC任务恢复为休眠状态。
如上文实施方式的描述,接收端的RPC任务可以包括接收端的第一RPC任务和接收端的第二RPC任务,在执行发送队列中相应消息请求时,可以由接收端的第一RPC任务执行,也可以由接收端的第二RPC任务执行,而该种实施方式中,便是由接收端的第二RPC任务执行,即通过接收端产生的授权中断,唤醒的是接收端的第二RPC任务,也即唤醒图2中的接收端TaskB。
并且,该种实施方式中,在发送队列中没有消息请求时,接收端的第二RPC任务处于休眠状态,而在接收端的第二RPC任务将发送队列中的消息请求执行完毕之后,接收端的第二RPC任务恢复为休眠状态,可以看出,通过接收端的第二RPC任务是否为休眠状态,可以方便有效地确定发送队列中的消息请求是否均被执行完毕,避免出错。
进一步的,在实际应用中,接收端的第二RPC任务判断发送队列中的消息请求是否均被执行完毕,具体实现方式可以有多种,例如,针对发送队列中的任意1个消息请求,消息请求中携带有第一数值,第一数值表示的是在消息请求生成的时刻,发送端当前的第一信号量值X1加上预设参数Y之后所得到的数值;
其中,当接收端的第二RPC任务将发送队列中的任意1个消息请求执行完毕时,接收端的第二RPC任务将第一数值减去Y,以表示该消息请求执行完毕。
可参阅图3,该种实施方式中,发送队列中的消息请求中携带有第一数值,第一数值=X1+Y,Y为预设参数通常设置为1即可,例如图3的实施方式中Y便设置为1。
例如一种具体场合中,发送端的第一RPC任务将3个第一类消息请求发送至发送队列,发送端的第二RPC任务将1个第二类消息请求发送至发送队列,即发送队列中此时一共有4个消息请求,则对于这4个消息请求,各自的X1可以不同,也就是说,消息请求的X1表示的是发送端在生成该消息请求的时刻的第一信号量值。发送端可以有多种类型的信号量,可以预先设定其中任意1种类型的信号作为第一信号类型,则第一信号类型在当前时刻的数量便是第一信号量值X1。
接收端的第二RPC任务每执行完发送队列中的1个消息请求时,便会进行X1-Y的操作,图3的例子中便是进行X1-1的操作,以表示该消息请求被执行完毕。可以理解的是,例如上文例子中有4个消息请求,则接收端的第二RPC任务进行了4次X1-1的操作之后,便可以确定发送队列中的各个消息请求均已经执行完毕。
在本发明的一种具体实施方式中,通过发送队列中的各个消息请求,在接收端产生相应数量的授权中断,可以包括:
通过发送队列中的各个消息请求,在接收端产生相应数量的基于软件的硬件授权中断。
在实际应用中,对于发送队列中的每1个消息请求,可以在接收端产生相应的1个授权中断,该种实施方式进一步地考虑到,采用基于软件的硬件授权中断时,实时性很高,因此授权中断具体为基于软件的硬件授权中断,例如具体为上文描述的HAS授权中断。
步骤S103:在接收端通过接收端的RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的消息请求在发送端产生授权中断,以通过发送端产生的授权中断唤醒发送端的RPC任务。
接收端的RPC任务将发送队列中的消息请求执行完毕之后,会反馈相应的消息请求至接收队列,由于接收队列中存在消息请求,因此与上文同理,可以通过接收队列中的消息请求在发送端产生授权中断,例如具体是在发送端产生HAS授权中断。
通过发送端产生的授权中断唤醒发送端的RPC任务时,通常可以由中断处理函数实现,例如在发送端产生HAS授权中断之后,可以进入发送端CPU的HAS中断处理函数,通过该HAS中断处理函数唤醒发送端的RPC任务。
还需要说明的是,接收端的RPC任务执行发送队列中的消息请求,可以是直接执行,也可以是间接执行,即接收端的RPC任务可以直接执行,也可以通过其他业务组件执行,均不影响本发明的实施。例如在图2的实施方式中,接收端的RPC任务可以通过消息队列和业务组件进行交互,由业务组件来完成实际的命令执行,具体如何执行可以由各个业务进行定义,以实现实际应用中所需要实现的逻辑功能函数,此处不做赘述。
如上文的描述,在实际应用中,通常可以在每1个第一类消息请求中均传入一个Callback回调函数,用来处理异步调用的返回数据,因此,针对每1个第一类消息请求,接收端的RPC任务在执行完毕之后,可以调用该Callback回调函数,在Callback回调函数中返回消息数据,即接收端的RPC任务反馈至接收队列的消息请求中,是在Callback回调函数中放置有返回的消息数据。
在本发明的一种具体实施方式中,步骤S103可以具体包括:
在接收端通过接收端的第二RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的各个消息请求在发送端产生相应数量的授权中断,以通过发送端产生的授权中断唤醒发送端的第一RPC任务;
在上文的实施方式中,是由接收端的第二RPC任务执行,即通过接收端产生的授权中断,唤醒的是接收端的第二RPC任务,因此该种实施方式中,是在接收端通过接收端的第二RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的各个消息请求在发送端产生相应数量的授权中断。
而通过发送端产生的授权中断唤醒发送端的RPC任务时,可以唤醒发送端的第一RPC任务,使得可以通过发送端的第一RPC任务调用Callback回调函数,从而方便地获取到返回数据,进而交由发送端的第二RPC任务处理。
步骤S104:通过发送端的RPC任务处理接收队列中的各个消息请求。
由于接收队列中有消息请求,因此,便可以通过发送端的RPC任务处理接收队列中的各个消息请求。
在本发明的一种具体实施方式中,步骤S104可以具体包括:
通过发送端的第一RPC任务唤醒发送端的第二RPC任务,并通过发送端的第二RPC任务处理接收队列中的各个消息请求。
如上文的描述,通过发送端产生的授权中断唤醒发送端的RPC任务时,可以唤醒发送端的第一RPC任务,使得可以通过发送端的第一RPC任务调用Callback回调函数,从而方便地获取到返回数据,进而交由发送端的第二RPC任务处理,即通过发送端的第二RPC任务,处理接收队列中的各个消息请求。
进一步的,在本发明的一种具体实施方式中,针对接收队列中的任意1个消息请求,消息请求中携带有第二数值,第二数值表示的是在消息请求生成的时刻,接收端当前的第二信号量值X2加上预设参数Y之后所得到的数值;
其中,当发送端的第二RPC任务将接收队列中的任意1个消息请求处理完毕时,发送端的第一RPC任务将第二数值减去Y,以表示该消息请求执行完毕。
在前文的实施方式中,通过接收端的第二RPC任务是否为休眠状态,可以方便有效地确定发送队列中的消息请求是否均被执行完毕,避免出错。而接收端的第二RPC任务判断发送队列中的消息请求是否均被执行完毕,具体实现方式可以有多种,例如前文描述的基于第一信号量值X1的方法。
该种实施方式中,通过相应的方法,可以方便有效地确定接收队列中的消息请求是否均被处理,避免出错。
可参阅图3,该种实施方式中,接收队列中的消息请求中携带有第二数值,第二数值=X2+Y,Y为预设参数通常设置为1即可,例如图3的实施方式中Y便设置为1。
例如前文的具体场合中,发送队列中一共有4个消息请求,则该例子中,接收端的第二RPC任务会将任务执行完毕之后所得到的4个消息请求置入接收队列中,与上文同理,接收队列中的这4个消息请求各自的X2可以不同。也就是说,消息请求的X2表示的是接收端在生成该消息请求的时刻的第二信号量值。接收端可以有多种类型的信号量,可以预先设定其中任意1种类型的信号作为第二信号类型,则第二信号类型在当前时刻的数量便是第二信号量值X2,可以理解的是,第二信号类型与上文描述的第一信号类型通常会设置为不同的信号类型。
该例子中,发送端的第二RPC任务每当将接收队列中的1个消息请求处理完毕时,发送端的第一RPC任务便会进行1次X2-Y的操作,图3的例子中便是进行X2-1的操作,以表示接收队列中的该消息请求被处理完毕。可以理解的是,上文例子中接收队列中有4个消息请求,则发送端的第一RPC任务进行了4次X2-1的操作之后,便可以确定,所反馈至接收队列中的各个消息请求均已经处理完毕。
如上文的描述,通过发送队列中的消息请求在接收端产生授权中断,具体的触发方式可以有多种,例如可以周期性触发,又如可以在发送队列中的消息请求数量达到一定数量时触发。图3的实施方式中便是在发送队列中的消息请求数量达到一定数量时触发,即图3中的设置的HAS临界区表示的是一个预设的数值,当发送队列中的消息请求数量超过该数值时才会允许开中断,即可以通过发送队列中的消息请求在接收端产生授权中断。反之则不允许开中断。同理,通过接收队列中的消息请求在发送端产生授权中断,图3中也采用的是该种实施方式。
在实际应用中,采用RPC通信时,具体的RPC消息格式可以根据实际需要进行设定和调整,例如在本发明的一种具体实施方式中,针对任意1个消息请求,消息请求中设置有用于最多放置第一大小的数据的预留空间,还设置有用于指向共享缓存中的数据地址的指针空间。
该种实施方式考虑到,对于小数据而言,即数据大小低于设定的第一大小时,可以直接将数据放置在RPC消息格式的预留空间中,例如一种具体场合中,RPC消息格式可以表示为:消息头—RPCid—标志位—第一数值/第二数值—回调函数—数据长度—进指针—出指针—预留空间。
例如,预留空间具体为20B。而对于较大的数据,则可以通过指针空间来指向较大数据的地址,例如上文具体例子中,指针空间包括进指针和出指针,可以分别表示该较大数据的起始地址和末尾地址。共享缓存中的数据,发送端和接收端均可以进行访问。
在本发明的一种具体实施方式中,针对多核处理器系统中的任意1个处理器,处理器可以仅绑定1个线程,这样有利于最大程度释放处理器的能力。
在实际应用中,处理器的操作系统可以采用ThreadX,ThreadX是优秀的硬实时操作系统,适用于嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC。
可参阅图4,采用的便是一个CUP处理器绑定1个线程的设计,例如图4的处理器A55Core0绑定线程N-1。
在本发明的一种具体实施方式中,多核处理器系统包括控制平面和数据平面,控制平面中包括1个或者多个集群,数据平面中包括1个或者多个集群,针对任意1个集群,该集群包括1个或多个处理器;
控制平面中的处理器为用于处理控制信息的处理器,控制平面中的处理器为用于处理数据信息的处理器。
该种实施方式中考虑到,核间通信的通信内容不外乎控制信息和数据信息,因此,设置了控制平面单独处理控制信息,数据平面则单独处理数据信息,两个平面分工明确,独立处理各自的信息可以提高系统的并行性。
此外,如上文的描述,在传统方案中,存在共享内存大小被限定,灵活性较差的问题,而该种实施方式中划分了控制平面和数据平面之后,有利于降低所需要的共享内存大小,也就进一步地提高了方案的灵活性。这是因为,如果没有如本申请的方案中进行控制平面和数据平面的划分,则控制信息和数据信息会杂糅在一起,随机分配至不同的处理器中,完成任务所需要的核间通信次数会较高,也就使得所需要的共享内存较大,而本申请进行了控制平面和数据平面的划分之后,使得控制信息归为控制平面处理,数据信息则归为数据平面,虽然依旧会存在需要控制平面与数据平面进行通信的情况,但次数会很低,换而言之,在完成任务时,相关的控制信息只需要由控制平面中的若干处理器便可以处理完毕,甚至可能是控制平面中的1个处理器便可以处理完毕,因为控制信息都被分配到了控制平面中的若干处理器甚至1个处理器中,从而无需进行核间通信。相应的,相关的数据信息只需要由数据平面中的处理器便可以处理完毕,大幅地降低了所需要的核间通信次数。
此外需要说明的是,针对任意1个集群,该集群包括1个或多个处理器,而本申请的多核处理器系统包括多个集群,各个集群中的处理器数量可以不同。例如图4的例子中,控制平面中包括1个集群,标记为集群0,集群0中包括1个处理器Cortex-M33。而数据平面中包括2个集群,标记为集群1和集群2,集群1中包括1个处理器Cortex-A55,集群2中包括4个处理器,依次为A55 Core 0至A55 Core 3。
本申请的方案中,处理器之间的具体通信线路连接关系,可以根据实际需要进行设定和调整,例如图4中,由于1个处理器仅绑定1个线程,因此图4的线程之间的通信关系便是处理器之间的通信关系,图4中,线程0连接线程1,线程1再连接线程2,这样依次连接至线程N-1。线程N-1则与线程0和线程N通信连接。
而在本发明的一种具体实施方式中,在控制平面中,任意2个处理器均进行RPC通信连接。
该种实施方式是考虑到,对于控制平面中的各个处理器,相互之间的通信需求通常较高,因此,可以设置控制平面中的任意2个处理器均进行RPC通信连接。
同样的,考虑到对于数据平面中的各个处理器,相互之间的通信需求通常较高,因此在本发明的一种具体实施方式中。在数据平面中,任意2个处理器均进行RPC通信连接。
由于本申请的任意1个集群中可以包括1个或多个处理器,如果包括多个处理器时,则可以选择SMP模式,以发挥SMP模式的优点。并且通常是数据平面中包括较多数量的集群和处理器,因此,在本发明的一种具体实施方式中,数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用SMP模式。
例如图4的实施方式中,集群2中的4个处理器边采用的是SMP模式,在SMP模式下,只需要设置1个操作系统即可,使得集群的设置较为简单,由这一个操作系统控制该集群中的所有处理器,这些处理器共享内存。
在本发明的一种具体实施方式中,数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用AMP模式。
与上文同理,由于本申请的任意1个集群中可以包括1个或多个处理器,如果包括多个处理器时,则也可以选择AMP模式,以发挥AMP模式的优点。并且通常是数据平面中包括较多数量的集群和处理器,因此,在本发明的一种具体实施方式中,数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用AMP模式。
AMP模式下,该集群中的各个处理器上均运行一个操作系统实例,这些操作实例不一定完全相同,各个操作系统拥有自己专用的内存,相互之间通过访问受限的共享内存进行通信。AMP模式下有利于提升核间通信的响应速度。
此外,在实际应用中,本申请的多核处理器系统,可以既存在AMP模式的集群,又存在SMP模式的集群,以发挥这2种模式的优点。
应用本发明实施例所提供的技术方案,利用授权中断来实现核间通信,因为使用的是硬件特性,因此有利于大幅度提升系统的实时性。具体的,本申请可以应用于多核处理器系统中的当前任意1个作为发送端的处理器中,发送端与当前作为接收端的处理器进行RPC通信。发送端的处理器可以以RPC通信的方式,将消息请求发送至发送队列中,通过发送队列中的消息请求,可以在接收端产生授权中断,从而进入接收端CPU的中断处理函数,由于是利用授权中断来实现核间通信,因为使用的是硬件特性,因此有利于大幅度提升系统的实时性。在接收端产生授权中断之后,便可以唤醒接收端的RPC任务,接收端的RPC任务便会执行发送队列中的消息请求,执行完毕之后会反馈相应的消息请求至接收队列。同样的,通过接收队列中的消息请求,可以在发送端产生授权中断,进而通过发送端产生的授权中断唤醒发送端的RPC任务,由于该过程也是利用授权中断来实现核间通信,因此有利于大幅度提升系统的实时性。在发送端产生授权中断之后,便可以通过发送端的RPC任务处理接收队列中的各个消息请求,完成核间通信过程。
综上所述,本申请的方案中利用授权中断来实现核间通信,有利于有效地提升多核核间通信的实时性。
相应于上面的方法实施例,本发明实施例还提供了一种多核核间通信系统,可与上文相互对应参照。
参见图5所示,为该多核核间通信系统可以应用于多核处理器系统中的当前任意1个作为发送端的处理器中,发送端与当前作为接收端的处理器进行RPC通信,多核核间通信系统包括:
消息请求发送模块501,用于以RPC通信的方式,将消息请求发送至发送队列中;
第一授权中断产生模块502,用于通过发送队列中的消息请求,在接收端产生授权中断,以通过接收端产生的授权中断唤醒接收端的RPC任务;
第二授权中断产生模块503,用于在接收端通过接收端的RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的消息请求在发送端产生授权中断,以通过发送端产生的授权中断唤醒发送端的RPC任务;
反馈数据处理模块504,用于通过发送端的RPC任务处理接收队列中的各个消息请求。
在本发明的一种具体实施方式中,针对多核处理器系统中的任意1个处理器,处理器仅绑定1个线程。
在本发明的一种具体实施方式中,发送端的RPC任务包括发送端的第一RPC任务和发送端的第二RPC任务,接收端的RPC任务包括接收端的第一RPC任务和接收端的第二RPC任务;
消息请求发送模块501具体用于:
通过异步发送接口,使用发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至发送队列,且在接收到对应于第二类消息请求的反馈之前,控制发送端的第二RPC任务为阻塞状态。
在本发明的一种具体实施方式中,第一授权中断产生模块502具体用于:
通过发送队列中的各个消息请求,在接收端产生相应数量的授权中断,以通过接收端产生的授权中断唤醒接收端的第二RPC任务;
其中,在发送队列中没有消息请求时,接收端的第二RPC任务处于休眠状态;在接收端的第二RPC任务将发送队列中的消息请求执行完毕之后,接收端的第二RPC任务恢复为休眠状态。
在本发明的一种具体实施方式中,针对发送队列中的任意1个消息请求,消息请求中携带有第一数值,第一数值表示的是在消息请求生成的时刻,发送端当前的第一信号量值X1加上预设参数Y之后所得到的数值;
其中,当接收端的第二RPC任务将发送队列中的任意1个消息请求执行完毕时,接收端的第二RPC任务将第一数值减去Y,以表示该消息请求执行完毕。
在本发明的一种具体实施方式中,通过发送队列中的各个消息请求,在接收端产生相应数量的授权中断,包括:
通过发送队列中的各个消息请求,在接收端产生相应数量的基于软件的硬件授权中断。
在本发明的一种具体实施方式中,第二授权中断产生模块503具体用于:
在接收端通过接收端的第二RPC任务将发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过接收队列中的各个消息请求在发送端产生相应数量的授权中断,以通过发送端产生的授权中断唤醒发送端的第一RPC任务。
在本发明的一种具体实施方式中,反馈数据处理模块504具体用于:
通过发送端的第一RPC任务唤醒发送端的第二RPC任务,并通过发送端的第二RPC任务处理接收队列中的各个消息请求。
在本发明的一种具体实施方式中,针对接收队列中的任意1个消息请求,消息请求中携带有第二数值,第二数值表示的是在消息请求生成的时刻,接收端当前的第二信号量值X2加上预设参数Y之后所得到的数值;
其中,当发送端的第二RPC任务将接收队列中的任意1个消息请求处理完毕时,发送端的第一RPC任务将第二数值减去Y,以表示该消息请求执行完毕。
在本发明的一种具体实施方式中,针对任意1个消息请求,消息请求中设置有用于最多放置第一大小的数据的预留空间,还设置有用于指向共享缓存中的数据地址的指针空间。
在本发明的一种具体实施方式中,多核处理器系统包括控制平面和数据平面,控制平面中包括1个或者多个集群,数据平面中包括1个或者多个集群,针对任意1个集群,该集群包括1个或多个处理器;
控制平面中的处理器为用于处理控制信息的处理器,控制平面中的处理器为用于处理数据信息的处理器。
在本发明的一种具体实施方式中,在控制平面中,任意2个处理器均进行RPC通信连接。
在本发明的一种具体实施方式中,在数据平面中,任意2个处理器均进行RPC通信连接。
在本发明的一种具体实施方式中,数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用AMP模式。
在本发明的一种具体实施方式中,数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用SMP模式。
相应于上面的方法和系统实施例,本发明实施例还提供了一种多核核间通信方法,可与上文相互对应参照。
参见图6所示,该多核核间通信方法应用于多核处理器系统中的当前任意1个作为接收端的处理器中,接收端与当前作为发送端的处理器进行RPC通信,多核核间通信方法包括:
步骤S601:在发送端以RPC通信的方式将消息请求发送至发送队列中,并通过发送队列中的消息请求在接收端产生授权中断之后,通过接收端产生的授权中断唤醒接收端的RPC任务;
步骤S602:通过接收端的RPC任务将发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过接收队列中的消息请求在发送端产生授权中断,以使发送端产生的授权中断唤醒发送端的RPC任务,并通过发送端的RPC任务处理接收队列中的各个消息请求。
本发明实施例还提供了一种多核核间通信系统,应用于多核处理器系统中的当前任意1个作为接收端的处理器中,接收端与当前作为发送端的处理器进行RPC通信,多核核间通信系统包括:
接收端RPC任务唤醒模块,用于在发送端以RPC通信的方式将消息请求发送至发送队列中,并通过发送队列中的消息请求在接收端产生授权中断之后,通过接收端产生的授权中断唤醒接收端的RPC任务;
任务执行模块,用于通过接收端的RPC任务将发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过接收队列中的消息请求在发送端产生授权中断,以使发送端产生的授权中断唤醒发送端的RPC任务,并通过发送端的RPC任务处理接收队列中的各个消息请求。
相应于上面的方法和系统实施例,本发明实施例还提供了一种多核核间通信设备和一种计算机可读存储介质,可与上文相互对应参照。可参阅图7,该计算机可读存储介质70上存储有计算机程序71,计算机程序71被处理器执行时实现如上述任一实施例中的多核核间通信方法的步骤。这里所说的计算机可读存储介质70包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
参阅图8,该多核核间通信设备可以包括:
存储器801,用于存储计算机程序;
处理器802,用于执行计算机程序以实现如上述任一实施例中的多核核间通信方法的步骤。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束个件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明的保护范围内。
Claims (19)
1.一种多核核间通信方法,其特征在于,应用于多核处理器系统中的当前任意1个作为发送端的处理器中,所述发送端与当前作为接收端的处理器进行RPC通信,所述多核核间通信方法包括:
以RPC通信的方式,将消息请求发送至发送队列中;
通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务;
通过所述发送端的RPC任务处理所述接收队列中的各个消息请求;
所述发送端的RPC任务包括所述发送端的第一RPC任务和所述发送端的第二RPC任务,所述接收端的RPC任务包括所述接收端的第一RPC任务和所述接收端的第二RPC任务;
所述以RPC通信的方式,将消息请求发送至发送队列中,包括:
通过异步发送接口,使用所述发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用所述发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至所述发送队列,且在接收到对应于所述第二类消息请求的反馈之前,控制所述发送端的第二RPC任务为阻塞状态。
2.根据权利要求1所述的多核核间通信方法,其特征在于,针对所述多核处理器系统中的任意1个处理器,所述处理器仅绑定1个线程。
3.根据权利要求1所述的多核核间通信方法,其特征在于,所述通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务,包括:
通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的第二RPC任务;
其中,在所述发送队列中没有消息请求时,所述接收端的第二RPC任务处于休眠状态;在所述接收端的第二RPC任务将所述发送队列中的消息请求执行完毕之后,所述接收端的第二RPC任务恢复为休眠状态。
4.根据权利要求3所述的多核核间通信方法,其特征在于,针对所述发送队列中的任意1个消息请求,所述消息请求中携带有第一数值,所述第一数值表示的是在所述消息请求生成的时刻,所述发送端当前的第一信号量值X1加上预设参数Y之后所得到的数值;
其中,当所述接收端的第二RPC任务将所述发送队列中的任意1个消息请求执行完毕时,所述接收端的第二RPC任务将所述第一数值减去Y,以表示该消息请求执行完毕。
5.根据权利要求3所述的多核核间通信方法,其特征在于,通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的授权中断,包括:
通过所述发送队列中的各个消息请求,在所述接收端产生相应数量的基于软件的硬件授权中断。
6.根据权利要求3所述的多核核间通信方法,其特征在于,在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务,包括:
在所述接收端通过所述接收端的第二RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的各个消息请求在所述发送端产生相应数量的授权中断,以通过所述发送端产生的授权中断唤醒发送端的第一RPC任务。
7.根据权利要求6所述的多核核间通信方法,其特征在于,通过所述发送端的RPC任务处理所述接收队列中的各个消息请求,包括:
通过所述发送端的第一RPC任务唤醒所述发送端的第二RPC任务,并通过所述发送端的第二RPC任务处理所述接收队列中的各个消息请求。
8.根据权利要求7所述的多核核间通信方法,其特征在于,针对所述接收队列中的任意1个消息请求,所述消息请求中携带有第二数值,所述第二数值表示的是在所述消息请求生成的时刻,所述接收端当前的第二信号量值X2加上预设参数Y之后所得到的数值;
其中,当所述发送端的第二RPC任务将所述接收队列中的任意1个消息请求处理完毕时,所述发送端的第一RPC任务将所述第二数值减去Y,以表示该消息请求执行完毕。
9.根据权利要求1所述的多核核间通信方法,其特征在于,针对任意1个消息请求,所述消息请求中设置有用于最多放置第一大小的数据的预留空间,还设置有用于指向共享缓存中的数据地址的指针空间。
10.根据权利要求1至9任一项所述的多核核间通信方法,其特征在于,所述多核处理器系统包括控制平面和数据平面,所述控制平面中包括1个或者多个集群,所述数据平面中包括1个或者多个集群,针对任意1个集群,该集群包括1个或多个处理器;
所述控制平面中的处理器为用于处理控制信息的处理器,所述控制平面中的处理器为用于处理数据信息的处理器。
11.根据权利要求10所述的多核核间通信方法,其特征在于,在所述控制平面中,任意2个处理器均进行RPC通信连接。
12.根据权利要求10所述的多核核间通信方法,其特征在于,在所述数据平面中,任意2个处理器均进行RPC通信连接。
13.根据权利要求10所述的多核核间通信方法,其特征在于,所述数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用AMP模式。
14.根据权利要求10所述的多核核间通信方法,其特征在于,所述数据平面中至少存在1个包括多个处理器的集群,且该集群中的各个处理器采用SMP模式。
15.一种多核核间通信系统,其特征在于,应用于多核处理器系统中的当前任意1个作为发送端的处理器中,所述发送端与当前作为接收端的处理器进行RPC通信,所述多核核间通信系统包括:
消息请求发送模块,用于以RPC通信的方式,将消息请求发送至发送队列中;
第一授权中断产生模块,用于通过所述发送队列中的消息请求,在所述接收端产生授权中断,以通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
第二授权中断产生模块,用于在所述接收端通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕并反馈相应的消息请求至接收队列之后,通过所述接收队列中的消息请求在所述发送端产生授权中断,以通过所述发送端产生的授权中断唤醒所述发送端的RPC任务;
反馈数据处理模块,用于通过所述发送端的RPC任务处理所述接收队列中的各个消息请求;
所述发送端的RPC任务包括所述发送端的第一RPC任务和所述发送端的第二RPC任务,所述接收端的RPC任务包括所述接收端的第一RPC任务和所述接收端的第二RPC任务;
所述消息请求发送模块具体用于:
通过异步发送接口,使用所述发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用所述发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至所述发送队列,且在接收到对应于所述第二类消息请求的反馈之前,控制所述发送端的第二RPC任务为阻塞状态。
16.一种多核核间通信方法,其特征在于,应用于多核处理器系统中的当前任意1个作为接收端的处理器中,所述接收端与当前作为发送端的处理器进行RPC通信,所述多核核间通信方法包括:
在所述发送端以RPC通信的方式将消息请求发送至发送队列中,并通过所述发送队列中的消息请求在所述接收端产生授权中断之后,通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过所述接收队列中的消息请求在所述发送端产生授权中断,以使所述发送端产生的授权中断唤醒所述发送端的RPC任务,并通过所述发送端的RPC任务处理所述接收队列中的各个消息请求;
所述发送端的RPC任务包括所述发送端的第一RPC任务和所述发送端的第二RPC任务,所述接收端的RPC任务包括所述接收端的第一RPC任务和所述接收端的第二RPC任务;
所述发送端以RPC通信的方式,将消息请求发送至发送队列中,包括:
通过异步发送接口,使用所述发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用所述发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至所述发送队列,且在接收到对应于所述第二类消息请求的反馈之前,控制所述发送端的第二RPC任务为阻塞状态。
17.一种多核核间通信系统,其特征在于,应用于多核处理器系统中的当前任意1个作为接收端的处理器中,所述接收端与当前作为发送端的处理器进行RPC通信,所述多核核间通信系统包括:
接收端RPC任务唤醒模块,用于在所述发送端以RPC通信的方式将消息请求发送至发送队列中,并通过所述发送队列中的消息请求在所述接收端产生授权中断之后,通过所述接收端产生的授权中断唤醒所述接收端的RPC任务;
任务执行模块,用于通过所述接收端的RPC任务将所述发送队列中的消息请求执行完毕,并反馈相应的消息请求至接收队列,以通过所述接收队列中的消息请求在所述发送端产生授权中断,以使所述发送端产生的授权中断唤醒所述发送端的RPC任务,并通过所述发送端的RPC任务处理所述接收队列中的各个消息请求;
所述发送端的RPC任务包括所述发送端的第一RPC任务和所述发送端的第二RPC任务,所述接收端的RPC任务包括所述接收端的第一RPC任务和所述接收端的第二RPC任务;
所述发送端以RPC通信的方式,将消息请求发送至发送队列中,包括:
通过异步发送接口,使用所述发送端的第一RPC任务将用于反映请求内容的各个第一类消息请求发送至发送队列;
通过同步发送接口,使用所述发送端的第二RPC任务将用于反映请求属性的第二类消息请求发送至所述发送队列,且在接收到对应于所述第二类消息请求的反馈之前,控制所述发送端的第二RPC任务为阻塞状态。
18.一种多核核间通信设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至14任一项所述的多核核间通信方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14任一项所述的多核核间通信方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310087035.2A CN115934385B (zh) | 2023-02-08 | 2023-02-08 | 一种多核核间通信方法、系统、设备及存储介质 |
PCT/CN2023/132736 WO2024164622A1 (zh) | 2023-02-08 | 2023-11-20 | 多核核间通信方法、系统、设备及非易失性可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310087035.2A CN115934385B (zh) | 2023-02-08 | 2023-02-08 | 一种多核核间通信方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934385A CN115934385A (zh) | 2023-04-07 |
CN115934385B true CN115934385B (zh) | 2023-05-23 |
Family
ID=85827319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310087035.2A Active CN115934385B (zh) | 2023-02-08 | 2023-02-08 | 一种多核核间通信方法、系统、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115934385B (zh) |
WO (1) | WO2024164622A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934385B (zh) * | 2023-02-08 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 一种多核核间通信方法、系统、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8937622B2 (en) * | 2010-09-20 | 2015-01-20 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
US10979503B2 (en) * | 2014-07-30 | 2021-04-13 | Excelero Storage Ltd. | System and method for improved storage access in multi core system |
CN114880133A (zh) * | 2017-08-31 | 2022-08-09 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN111277616B (zh) * | 2018-12-04 | 2023-11-03 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN112463710A (zh) * | 2020-12-10 | 2021-03-09 | 西安交通大学 | 一种基于嵌入式平台的核间通信方法及系统 |
CN113778706B (zh) * | 2021-08-18 | 2023-08-15 | 北京自动化控制设备研究所 | 一种基于amp架构的操作系统核间通信方法 |
CN115934385B (zh) * | 2023-02-08 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 一种多核核间通信方法、系统、设备及存储介质 |
-
2023
- 2023-02-08 CN CN202310087035.2A patent/CN115934385B/zh active Active
- 2023-11-20 WO PCT/CN2023/132736 patent/WO2024164622A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942178A (zh) * | 2014-03-03 | 2014-07-23 | 浙江大学 | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115934385A (zh) | 2023-04-07 |
WO2024164622A1 (zh) | 2024-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105579961B (zh) | 数据处理系统及操作方法、用于数据处理系统的硬件单元 | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
CN108351783A (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
CN110471777B (zh) | 一种Python-Web环境中多用户共享使用Spark集群的实现方法和系统 | |
CN112905342B (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN107562685B (zh) | 一种基于延时补偿的多核处理器核心间数据交互的方法 | |
EP3114589B1 (en) | System and method for massively parallel processing database | |
WO2018233299A1 (zh) | 调度处理器的方法、装置、设备及介质 | |
CN115934385B (zh) | 一种多核核间通信方法、系统、设备及存储介质 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN110998530A (zh) | 一种虚拟机资源分配系统、方法及计算机程序 | |
US9417924B2 (en) | Scheduling in job execution | |
WO2016202153A1 (zh) | 一种gpu资源的分配方法及系统 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN115408117A (zh) | 协程运行方法、装置、计算机设备和存储介质 | |
CN117370046A (zh) | 进程间通信方法、系统、设备和存储介质 | |
CN104657204B (zh) | 短任务处理方法、装置及操作系统 | |
US9367326B2 (en) | Multiprocessor system and task allocation method | |
CN113391821B (zh) | 一种非对称多处理器嵌入式操作系统 | |
CN112783651B (zh) | 一种云平台vGPU负载均衡调度方法、介质及装置 | |
CN112311695B (zh) | 一种片上带宽动态分配方法及系统 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN112114967B (zh) | 一种基于服务优先级的gpu资源预留方法 | |
Brandenburg | Blocking optimality in distributed real-time locking protocols | |
CN110955616A (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 |