CN114595186A - 一种多核处理器的核间通信方法、通信装置 - Google Patents
一种多核处理器的核间通信方法、通信装置 Download PDFInfo
- Publication number
- CN114595186A CN114595186A CN202210497913.3A CN202210497913A CN114595186A CN 114595186 A CN114595186 A CN 114595186A CN 202210497913 A CN202210497913 A CN 202210497913A CN 114595186 A CN114595186 A CN 114595186A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- interrupt
- kernel
- 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.)
- Granted
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/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
Abstract
本申请公开了一种多核处理器的核间通信方法,预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,其中,数据寄存器以及中断寄存器均可被每个内核访问,该方法包括:发送方内核将待发送数据写入数据寄存器,发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在中断服务中处理数据寄存器中的数据。本申请不依赖操作系统,降低了核间通信开发的难度和复杂度。
Description
技术领域
本发明涉及多核处理器领域,特别地,涉及一种多核处理器的核间通信方法。
背景技术
现在的处理器芯片非常复杂,很多都是包含多个内核,特别是片上系统(SoC),一个处理器芯片上不仅包含了很多个内核,并且很多内核都是异构的。例如手机里的芯片,就可能包含了CPU、GPU、DSP等不同的内核。这些不同内核都有着他们各自的用途,例如,为了在终端侧实现高效的神经网络模型推理,现在的高端手机芯片基本都搭载了专门为神经网络这种密集计算的运算内核。
为了最大限度地发挥各个内核的性能,协同完成某一任务,不同的内核上所运行的操作系统可能各不相同,有些内核可能运行通用系统,例如Linux、Android等,另外一些内核可能运行非通用系统,例如,实时操作系统(RTOS)等。这些不同内核以及所运行的软件组合在一起,成了异构多处理系统(Asymmetric Multiprocessing System)。
由于一般多内核存在的目的都是协同地处理任务,因此在异构多处理系统中往往会形成主-从(Master-Slave)结构。主核上的操作系统先启动,并负责准备好运行环境,然后根据需要或者一定规则启动从核并对其进行管理。主、从核上的操作系统都准备好之后,主从核之间就通过IPC(Inter Processor Communication)方式进行通信。
目前多核处理器的核间通信都存在着对软件操作系统的依赖,比如远程过程调用核(RPC,Remote Procedure Call)、远程处理器消息核(RPMsg,Remote ProcessorMessaging),Host核必须使用Linux系统,而且对软件操作系统也有一定的要求,例如,必须集成相对应的组件,这导致多核处理器的核间通信开发困难,也增加了系统资源的浪费。
发明内容
本发明提供了一种多核处理器的核间通信方法,以实现不依赖操作系统的核间通信。
本发明提供的一种多核处理器的核间通信方法是这样实现的:
预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,其中,数据寄存器以及中断寄存器均可被每个内核访问,
该方法包括:
发送方内核将待发送的数据写入数据寄存器,
发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在所述中断服务中处理所述数据寄存器中的数据。
较佳地,所述预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,包括:
预先为多核处理器中的每个内核配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,其中,数据寄存器以及中断寄存器均可被每个内核访问,
该方法包括:
第一内核将待发送的第一数据写入第一内核侧的第一数据寄存器,
第一内核向第一内核侧的第一中断寄存器写入用于触发第二内核产生中断服务的第一中断控制信息,使得第二内核产生第一中断服务,在第一中断服务中处理第一数据寄存器中的第一数据。
较佳地,该方法还包括:
第二内核向第二内核侧的第二数据寄存器写入用于应答所接收数据的第二数据,
第二内核向第二内核侧的第二中断寄存器写入用于触发第一内核产生中断服务的第二中断控制信息,
第一内核产生第二中断服务,在第二中断服务中处理第二数据寄存器中的第二数据;
其中,第一数据的大小取决于第一数据寄存器的位宽、第二数据的大小取决于第二数据寄存器的位宽。
较佳地,所述待发送数据为共享存储区域的地址信息,其中,共享存储区域是预先配置的所有内核均可访问的存储区域,
该方法还包括:
第一内核将待传输的第三数据写入共享存储区域,其中,第一内核从第一数据寄存器获取共享存储区域的地址信息,
第一内核向所述第一中断寄存器写入第三中断控制信息,使得第二内核产生第三中断服务,在第三中断服务中处理共享存储区域中的第三数据,其中,第二内核从第二数据寄存器获取共享存储区域的地址信息。
较佳地,该方法还包括:
第三数据被处理完成之后,第二内核向共享存储区域和/或第二数据寄存器写入用于应答所接收数据的第四数据,向第二中断寄存器写入第四中断控制信息,使得第一内核产生第四中断服务,在第四中断服务中处理第四数据;
其中,
第三数据的大小取决于共享存储区域的大小,
第四数据的大小取决于所写入的共享存储区域和/或第二数据寄存器。
较佳地,所述预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,还包括:
预先为多核处理器中的每个数据通道配置通道寄存器,所述通道寄存器包括:用于写入待发送数据的通道数据寄存器,和用于写入中断控制信息的通道中断寄存器,
所述发送方内核将待发送的数据写入数据寄存器,包括:
第一内核将待发送的第一数据写入所述通道数据寄存器;
所述发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在所述中断服务中处理所述数据寄存器中的数据,包括:
第一内核向所述通道中断寄存器写入第一中断控制信息,该第一中断控制信息用于触发作为接收方的第二内核产生中断服务,使得第二内核产生第一中断服务,在第一中断服务中处理所述通道数据寄存器中的第一数据。
较佳地,通道寄存器还包括,用于写入第一内核标识信息的源寄存器,用于写入第二内核标识信息的目的寄存器,用于写入数据通道当前状态的状态寄存器,
所述第一内核将待发送的第一数据写入所述通道数据寄存器,包括:
第一内核根据状态寄存器确定至少一个可用数据通道,
根据第一内核标识信息设置源寄存器,根据第二内核标识信息设置目的寄存器,其中,目的寄存器的数量与第二内核的数量相同,第二内核的数量为一个以上,
读取状态寄存器中的当前状态信息,
在当前状态为空闲状态或释放状态的情形下,将待发送数据写入通道数据寄存器,并更新状态寄存器为占用状态,
所述第一内核向所述通道中断寄存器写入第一中断控制信息,该第一中断控制信息用于触发作为接收方的第二内核产生中断服务,使得第二内核产生第一中断服务,在第一中断服务中处理所述通道数据寄存器中的第一数据,包括:
向通道中断寄存器写入中断控制信息,使得中断控制器根据目的寄存器中的第二内核标识信息,向第二内核分发中断服务的触发,
第二内核触发中断服务,在中断服务中处理通道数据寄存器中的当前数据。
较佳地,所述通道寄存器还包括用于写入所接收数据应答信息的应答寄存器,其中,应答寄存器与目的寄存器一一对应;
该方法还包括:
所述当前数据被处理之后,第二内核根据该第二内核对应的目的寄存器,设置与该目的寄存器对应的应答寄存器,
在所有目的寄存器所对应的应答寄存器均被设置的情形下,第二内核更新状态寄存器当前状态为空闲状态,清除当前中断。
较佳地,所述向中断寄存器写入中断控制信息之后,进一步包括:
第一内核判断所述待发送数据是否发送完毕,
如果是,则读取状态寄存器中的当前状态信息,在当前状态为空闲状态的情形下,复位通道寄存器,释放当前数据通道;
否则,则返回执行所述读取状态寄存器中的当前状态信息的步骤,以发送下一数据。
较佳地,该方法进一步包括,
在当前状态为占用状态的情形下,等待当前状态被更新为空闲状态,
如果等待时间超时,则强制复位通道寄存器,释放当前数据通道,其中,状态寄存器在复位后当前状态为释放状态;
所述第一内核根据状态寄存器确定至少一个可用数据通道,包括:
将状态寄存器当前状态为释放状态的数据通道,确定为可用数据通道。
本发明还提供一种多核处理器的核间通信装置,该装置包括多核处理器以及存储器,所述存储器存储有指令,所述指令在由处理器执行时使得所述处理器执行所述多核处理器的核间通信方法的步骤。
本申请提供的多核处理器的核间通信方法,通过配置各个内核均可访问的寄存器等硬件资源,利用中断服务来触发接收方内核对写入寄存器中的数据进行处理,从而实现了数据的发送,由于通信过程是基于多核处理器的芯片底层硬件指令来实现,从而与操作系统剥离,这样,本申请的通信方法既可运行于基于任何操作系统的多核处理器,也可运行于无操作系统的多核处理器,降低了多核处理器核间通信的开发难度和复杂度,为整个多核处理器节约了系统资源消耗。
附图说明
图1为本申请实施例多核处理器的核间点对点通信方法的一种示意图。
图2为本申请实施例一的多核处理器核间点对点通信方法的一种示意图。
图3为本申请实施例二的多核处理器核间点对点数据传输方法的一种示意图。
图4 为本申请实施例三的多核处理器核间点对多点数据传输方法的一种示意图。
图5为状态寄存器中状态信息变化的一种示意图。
图6为本申请实施例的多核处理器核间通信装置的一种示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
本申请实施例通过配置每个内核都能够访问的硬件资源,重新设计多核处理器的核间通信机制,实现了不依赖任何操作系统的核间通信。
参见图1所示,图1为本申请实施例多核处理器的核间点对点通信方法的一种示意图。预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,其中,数据寄存器以及中断寄存器均可被每个内核访问,该方法包括:
步骤101,发送方内核将待发送数据写入数据寄存器,
步骤102,发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在中断服务中处理数据寄存器中的数据。
其中,所述处理包括且不限于读取操作。
本申请实施例通过为通信的双方配置可访问的数据寄存器,在待发送数据写入数据寄存器后,利用中断寄存器中的中断控制信息的写入来触发接收方的中断服务,使得接收方在中断服务过程中处理数据寄存器所写入的数据,达到了将数据发送给接收方的发送效果,由于上述过程是基于多核处理器的芯片底层硬件指令来实现,无需依赖操作系统,从而降低了多核处理器核间通信的开发难度和复杂度,为整个多核处理器节约了系统资源消耗。
为便于理解本申请,以下以点对点的少量数据发送、点对点的大量数据发送、点对多点的数据发送为例来进行说明,所应理解的是,本申请实施例不限于此,任何核间的通信包括且不限于多点对多点都可基于本申请实施例来实现。
实施例一
在本实施例中,从硬件上为每个内核配置数据寄存器、中断寄存器,以实现点对点的消息或事件通信,其中,数据寄存器用于写入待发送数据,中断寄存器用于写入中断控制信息,即中断使能控制字。
以第一内核为发送方、第二内核为接收方为例,第一内核侧配置有第一数据寄存器和第一中断寄存器,第二内核侧配置有第二数据寄存器和第二中断寄存器,其中,每个寄存器均可被第一内核、以及第二内核访问。
参见图2所示,图2为本申请实施例一的多核处理器核间点对点通信方法的一种示意图。
步骤201,发送方第一内核将待发送的第一数据(消息或事件)写入第一内核侧的第一数据寄存器,
步骤202,写入第一数据之后,在第一内核侧的第一中断寄存器写入第一中断控制信息,以触发接收方第二内核的第一中断服务,
步骤203,接收方的第二中断寄存器启动第一中断服务,在第一中断服务中,处理第一数据寄存器中的第一数据,从而接收第一数据,
步骤204,接收方第二内核向第二数据寄存器写入用于应答所接收的第一数据的第二数据,并在写入第二数据之后,向第二内核侧的第二中断寄存器写入第二中断控制信息,以触发发送方第一内核的第二中断服务。
步骤205,发送方第一内核启动第一内核侧的第二中断服务,在第二中断服务中,处理第二数据寄存器中的第二数据。
在该实施例中,第一数据、第二数据的大小取决于数据寄存器的位宽大小。
本实施例通过从硬件上为每个内核配置数据寄存器,利用中断服务来访问数据寄存器,从而实现了在不依赖操作系统的情况下的点对点数据通信。
实施例二
在该实施例中,从硬件上,不仅为每个内核配置数据寄存器、中断寄存器,还为所有内核配置共享存储区域,以实现点对点的数据传输。
以第一内核为发送方、第二内核为接收方为例,第一内核侧配置有第一中断寄存器,第二内核侧配置有第二中断寄存器,还配置第一内核和第二内核所共享的共享存储区域,其中,每个寄存器、以及共享存储区域均可被第一内核、以及第二内核访问,共享存储区域可以为异端共享内存,一般为双倍速率同步动态随机存储器(DDR)的某段区域。
参见图3所示,图3为本申请实施例二的多核处理器核间点对点数据传输方法的一种示意图。
步骤301,按照步骤201~205,通过核间通信获取共享存储区域的地址。也就是,在步骤201,发送方发送的第一数据为共享存储区域的地址,在步骤203,接收方接收的第一数据为共享存储区域的地址。例如,核间传递数据量比较大,即非消息或者非事件,就需要共享存储区域,比如传一帧图像1920*1080。
在该示例中,将共享存储区域的地址作为待发送数据从第一内核发送给第二内核,这样,共享存储区域的地址可从数据寄存器获取。
步骤302,发送方第一内核将待传输的第三数据写入共享存储区域,
步骤303,在第三数据的写入完成之后,发送方第一内核将在第一内核侧的第一中断寄存器写入第三中断控制信息,以触发接收方第二内核侧的第三中断服务,
步骤304,接收方第二内核侧启动第二内核侧的第三中断服务,在第三中断服务过程中,根据从第一数据寄存器所获取的共享存储区域的地址,处理存储于共享存储区域中的第三数据,从而接收第三数据,
步骤304,在第三数据被处理完成之后,接收方第二内核侧向第二数据寄存器和/或共享存储区域写入用于应答所接收的第三数据的第四数据,并在第二内核侧的第二中断寄存器写入第四中断控制信息,以触发发送方第一内核的第四中断服务。
较佳地,若第四数据为消息或事件,则写入第二数据寄存器,若第四数据为非消息或非事件,则写入共享存储区域。
步骤305,发送方第一内核在第四中断服务中,处理第四数据。
在该实施例中所传输的第三数据的大小取决于共享存储区域的大小,第四数据的大小取决于所写入的位置。
本实施例通过从硬件上所配置的共享存储区域,利用中断服务来访问共享存储区域,从而实现了在不依赖操作系统的情况下的点对点数据通信,由于共享存储区域的大小可根据需要配置,故而能够实现大数据量的数据传输。
实施例三
在该实施例中,从硬件上,为多核处理器中的每个数据通道配置通道资源,通道资源至少包括通道寄存器,
所述通道寄存器包括:通道数据寄存器、源寄存器、目的寄存器、通道中断寄存器、应答寄存器、以及状态寄存器。
其中,
状态寄存器用于存储数据通道的当前状态信息,状态信息包括空闲状态和占用状态,以及释放状态,其中,在通道被申请之前,状态寄存器的状态为释放状态,在通道被申请之后且进行数据传输时,状态信息为占用状态,在通道被申请之后且停止数据传输时,状态信息为空闲状态。
目的寄存器用于写入目的接收方内核标识信息,不同目的接收方内核对应不同目的寄存器,
源寄存器用于写入源发送方内核标识信息,
应答寄存器用于写入目的接收方的应答信息,与目的寄存器可通过硬件地址一一对应,
通道数据寄存器用于写入待发送数据,
通道中断寄存器用于写入中断控制字,即中断控制信息。
参见图4所示,图4为本申请实施例三的多核处理器核间点对点,或者点对多点数据传输方法的一种示意图。
在源发送方内核的第一内核侧,例如在步骤201之前:
步骤401,查询可用数据通道,以便进行发送方第一内核侧可用数据通道资源的申请,
作为一种示例,可根据状态寄存器确定可用数据通道,例如,状态寄存器的当前状态为释放状态,则说明该状态寄存器所对应的通道为可用数据通道。
如果不存在可用数据通道,则等待可用数据通道被释放,
如果存在一个可用数据通道,则返回该可用数据通道,
如果存在多个可用数据通道,则可以由硬件进行仲裁,返回一可用数据通道。
步骤402,根据源发送方内核标识设置源寄存器,根据各个目的接收方内核标识信息,设置各个目的接收方内核对应的目的寄存器,
作为一种示例,在点对多点数据传输时,接收方的数量为多个,则目的寄存器的数量也是多个,为每个目的接收方内核设置其对应的目的寄存器;
较佳地,设置状态寄存器的当前状态信息为空闲状态,
步骤403,读取当前状态寄存器,以获取可用数据通道的当前状态;
如果当前状态为空闲状态或者释放状态,则执行步骤404,
如果当前状态为占用状态,则进行等待,直至当前状态为空闲状态,或者,在超时的情形下强制释放通道资源或复位通道寄存器。
以下操作与图2所示流程相似,例如:
步骤404,与步骤201相似,源发送方将待发送的第一数据写入通道数据寄存器,
作为一种示例,若通道数据寄存器为多个,则将多个待发送的第一数据写入,因此,每次所写入第一数据的多少取决于通道数据寄存器的数量。
步骤405,与步骤202相似,在每个通道数据寄存器都被写入后,向通道中断寄存器写入中断控制信息,以触发中断,并通过硬件操作更新状态寄存器的当前状态(当前状态为空闲状态)为占用状态,
中断控制器根据目的寄存器触发各目的接收方内核的中断,从而实现中断的分发,返回步骤403,以发送下一数据,直至待发送数据传输完毕,然后执行步骤406。
步骤406,读取当前状态寄存器,
如果当前状态为空闲状态,则复位通道寄存器,释放当前可用数据通道,
如果当前状态为占用状态,则进行等待,直至当前状态为空闲状态,或者,在超时的情形下强制释放通道资源或复位通道寄存器。
在目的接收方的任一第二内核侧:
步骤407,与步骤203相似,启动当前中断服务,在当前中断服务中,处理通道数据寄存器中的当前数据,从而将当前数据从源发送方内核传输到目的接收方内核,
步骤408,与步骤204相似,在当前中断服务中,在处理通道数据寄存器中的当前数据之后,设置应答寄存器,以确认当前数据被处理,例如,设置为1表示接收到当前数据,
步骤409,在当前中断服务中,确定应答寄存器所对应的目的寄存器,
步骤410,在当前中断服务中,判断是否所有的目的寄存器所对应的应答寄存器都进行了设置,以便与步骤205相似,用于向发送方应答所接收的数据;
如果是,则说明所有目的接收方内核都已接收到当前数据,释放通道资源,更新状态寄存器的当前状态(当前状态为占用状态)为空闲状态,硬件清除当前中断,以接收下一数据的传输;
否则,则说明并非所有目的接收方内核都已接收到当前数据,保持当前通道资源和状态寄存器的当前状态,直至所有目的接收方内核都已接收到当前数据,也就是说,所有的目的寄存器所对应的应答寄存器都进行了设置;然后,释放通道资源,更新状态寄存器的当前状态(当前状态为占用状态)为空闲状态,硬件清除当前中断,以接收下一数据的传输。
参见图5所示,图5为状态寄存器中状态信息变化的一种示意图。处于释放状态的数据通道被申请之后,状态寄存器中状态信息由释放状态变为空闲状态;在进行数据写入数据寄存器操作之后,状态寄存器中状态信息由空闲状态转换为占用状态;在中断被清除之后,也就是,所有的目的寄存器所对应的应答寄存器都进行了设置,状态寄存器中状态信息由占用状态转换为空闲状态;在释放通道资源或复位通道寄存器之后,状态寄存器中状态信息由空闲状态转换为释放状态。
本实施例通过配置数据通道的通道寄存器,利用中断服务实现点到多点的数据传输,由于基于多核处理器的芯片底层硬件指令来实现,无需依赖操作系统及其软件组件,使得通信过程与操作系统软件剥离,从而降低了多核处理器核间通信的开发难度和复杂度,为整个多核处理器节约了系统资源消耗。
所应理解的是,在上述实施例三中,若目的接收方的数量仅为一个,则通道寄存器可只配置通道数据寄存器和通道中断寄存器,发送方将待发送数据写入通道数据寄存器,向通道中断寄存器写入中断控制信息,以触发接收方产生中断,在中断服务中处理通道数据寄存器中的数据,这样,可实现点对点的传输。
参见图6所示,图6为本申请实施例多核处理器的核间通信装置的一种示意图。该装置包括:多核处理器以及存储器,所述存储器存储有计算机程序,所述多核处理器被配置执行所述计算机程序实现所述多核处理器的核间通信方法的步骤。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述多核处理器的核间通信方法的步骤。
对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (11)
1.一种多核处理器的核间通信方法,其特征在于,预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,其中,数据寄存器以及中断寄存器均可被每个内核访问,
该方法包括:
发送方内核将待发送的数据写入数据寄存器,
发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在所述中断服务中处理所述数据寄存器中的数据。
2.如权利要求1所述的核间通信方法,其特征在于,所述预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,包括:
预先为多核处理器中的每个内核配置所述数据寄存器和所述中断寄存器;
所述发送方内核将待发送的数据写入数据寄存器,包括:
作为发送方的第一内核将待发送的第一数据写入第一内核侧的第一数据寄存器;
所述发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在所述中断服务中处理所述数据寄存器中的数据,包括:
第一内核向第一内核侧的第一中断寄存器写入第一中断控制信息,该第一中断控制信息用于触发作为接收方的第二内核产生中断服务,使得第二内核产生第一中断服务,在第一中断服务中处理第一数据寄存器中的第一数据。
3.如权利要求2所述的核间通信方法,其特征在于,该方法还包括:
第二内核向第二内核侧的第二数据寄存器写入用于应答所接收的第一数据的第二数据,
第二内核向第二内核侧的第二中断寄存器写入用于触发第一内核产生中断服务的第二中断控制信息,
第一内核产生第二中断服务,在第二中断服务中处理第二数据寄存器中的第二数据;
其中,第一数据的大小取决于第一数据寄存器的位宽、第二数据的大小取决于第二数据寄存器的位宽。
4.如权利要求2或3所述的核间通信方法,其特征在于,所述待发送数据为共享存储区域的地址信息,其中,共享存储区域是预先配置的所有内核均可访问的存储区域,
该方法还包括:
第一内核将待传输的第三数据写入共享存储区域,其中,第一内核从第一数据寄存器获取共享存储区域的地址信息,
第一内核向所述第一中断寄存器写入第三中断控制信息,使得第二内核产生第三中断服务,在第三中断服务中处理共享存储区域中的第三数据,其中,第二内核从第二数据寄存器获取共享存储区域的地址信息。
5.如权利要求4所述的核间通信方法,其特征在于,该方法还包括:
第三数据被处理完成之后,第二内核向共享存储区域和/或第二数据寄存器写入用于应答所接收的第三数据的第四数据,向第二中断寄存器写入第四中断控制信息,使得第一内核产生第四中断服务,在第四中断服务中处理第四数据;
其中,
第三数据的大小取决于共享存储区域的大小,
第四数据的大小取决于所写入的共享存储区域和/或第二数据寄存器。
6.如权利要求1所述的核间通信方法,其特征在于,所述预先配置用于写入待发送数据的数据寄存器和用于写入中断控制信息的中断寄存器,包括:
预先为多核处理器中的每个数据通道配置通道寄存器,所述通道寄存器包括:用于写入待发送数据的通道数据寄存器,和用于写入中断控制信息的通道中断寄存器,
所述发送方内核将待发送的数据写入数据寄存器,包括:
第一内核将待发送的第一数据写入所述通道数据寄存器;
所述发送方内核向中断寄存器写入用于触发接收方内核产生中断服务的中断控制信息,使得接收方内核产生中断服务,在所述中断服务中处理所述数据寄存器中的数据,包括:
第一内核向所述通道中断寄存器写入第一中断控制信息,该第一中断控制信息用于触发作为接收方的第二内核产生中断服务,使得第二内核产生第一中断服务,在第一中断服务中处理所述通道数据寄存器中的第一数据。
7.如权利要求6所述的核间通信方法,其特征在于,所述通道寄存器还包括:用于写入第一内核标识信息的源寄存器,用于写入第二内核标识信息的目的寄存器,用于写入数据通道当前状态的状态寄存器,
所述第一内核将待发送的第一数据写入所述通道数据寄存器,包括:
第一内核根据状态寄存器确定至少一个可用数据通道,
根据第一内核标识信息设置源寄存器,根据第二内核标识信息设置目的寄存器,其中,目的寄存器的数量与第二内核的数量相同,第二内核的数量为一个以上,
读取状态寄存器中的当前状态信息,
在当前状态为空闲状态或释放状态的情形下,将待发送数据写入所述通道数据寄存器,并更新状态寄存器为占用状态,
所述第一内核向所述通道中断寄存器写入第一中断控制信息,该第一中断控制信息用于触发作为接收方的第二内核产生中断服务,使得第二内核产生第一中断服务,在第一中断服务中处理所述通道数据寄存器中的第一数据,包括:
第一内核向通道中断寄存器写入中断控制信息,使得中断控制器根据目的寄存器中的第二内核标识信息,向第二内核分发中断服务的触发,
第二内核触发中断服务,在中断服务中处理通道数据寄存器中的当前数据。
8.如权利要求7所述的核间通信方法,其特征在于,所述通道寄存器还包括用于写入所接收数据应答信息的应答寄存器,其中,应答寄存器与目的寄存器一一对应;
该方法还包括:
所述当前数据被处理之后,所述第二内核根据该第二内核对应的目的寄存器,设置与该目的寄存器对应的应答寄存器,
在所有目的寄存器所对应的应答寄存器均被设置的情形下,第二内核更新状态寄存器当前状态为空闲状态,清除当前中断。
9.如权利要求7或8所述的核间通信方法,其特征在于,所述向通道中断寄存器写入中断控制信息之后,进一步包括:
第一内核判断所述待发送数据是否发送完毕,
如果是,则读取状态寄存器中的当前状态信息,在当前状态为空闲状态的情形下,复位通道寄存器,释放当前数据通道;
否则,则返回执行所述读取状态寄存器中的当前状态信息的步骤,以发送下一数据。
10.如权利要求7或8所述的核间通信方法,其特征在于,该方法进一步包括,
在当前状态为占用状态的情形下,等待当前状态被更新为空闲状态,
如果等待时间超时,则强制复位通道寄存器,释放当前数据通道,其中,状态寄存器在复位后当前状态为释放状态;
所述第一内核根据状态寄存器确定至少一个可用数据通道,包括:
将状态寄存器当前状态为释放状态的数据通道,确定为可用数据通道。
11.一种多核处理器的核间通信装置,其特征在于,该装置包括多核处理器以及存储器,所述存储器存储有指令,所述指令在由多核处理器执行时使得所述多核处理器执行如权利要求1至10任一所述多核处理器的核间通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210497913.3A CN114595186B (zh) | 2022-05-09 | 2022-05-09 | 一种多核处理器的核间通信方法、通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210497913.3A CN114595186B (zh) | 2022-05-09 | 2022-05-09 | 一种多核处理器的核间通信方法、通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114595186A true CN114595186A (zh) | 2022-06-07 |
CN114595186B CN114595186B (zh) | 2022-08-12 |
Family
ID=81821682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210497913.3A Active CN114595186B (zh) | 2022-05-09 | 2022-05-09 | 一种多核处理器的核间通信方法、通信装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595186B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509342A (zh) * | 2022-10-31 | 2022-12-23 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
CN116501507A (zh) * | 2023-06-28 | 2023-07-28 | 北京紫光芯能科技有限公司 | 用于中断处理的方法及中断控制模块、处理器、存储介质 |
CN117724664A (zh) * | 2024-02-18 | 2024-03-19 | 芯来智融半导体科技(上海)有限公司 | 数据写入方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013177854A1 (zh) * | 2012-07-17 | 2013-12-05 | 中兴通讯股份有限公司 | 一种多核处理器的核间通信装置及方法 |
US20160140064A1 (en) * | 2014-11-14 | 2016-05-19 | Cavium, Inc. | Distributed interrupt scheme in a multi-processor system |
CN108073545A (zh) * | 2016-11-17 | 2018-05-25 | 联芯科技有限公司 | 一种多处理器通信装置及方法 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
CN112068970A (zh) * | 2020-08-10 | 2020-12-11 | 珠海全志科技股份有限公司 | 基于异构多核处理器的rpc实现方法及介质 |
CN113110950A (zh) * | 2021-05-18 | 2021-07-13 | 南方电网科学研究院有限责任公司 | 处理器及通信方法、存储介质及计算设备 |
-
2022
- 2022-05-09 CN CN202210497913.3A patent/CN114595186B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013177854A1 (zh) * | 2012-07-17 | 2013-12-05 | 中兴通讯股份有限公司 | 一种多核处理器的核间通信装置及方法 |
US20160140064A1 (en) * | 2014-11-14 | 2016-05-19 | Cavium, Inc. | Distributed interrupt scheme in a multi-processor system |
CN108073545A (zh) * | 2016-11-17 | 2018-05-25 | 联芯科技有限公司 | 一种多处理器通信装置及方法 |
CN112068970A (zh) * | 2020-08-10 | 2020-12-11 | 珠海全志科技股份有限公司 | 基于异构多核处理器的rpc实现方法及介质 |
CN111930676A (zh) * | 2020-09-17 | 2020-11-13 | 湖北芯擎科技有限公司 | 多处理器间的通信方法、装置、系统及存储介质 |
CN113110950A (zh) * | 2021-05-18 | 2021-07-13 | 南方电网科学研究院有限责任公司 | 处理器及通信方法、存储介质及计算设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115509342A (zh) * | 2022-10-31 | 2022-12-23 | 南京芯驰半导体科技有限公司 | 一种多核集群之间的切换方法及系统 |
CN116501507A (zh) * | 2023-06-28 | 2023-07-28 | 北京紫光芯能科技有限公司 | 用于中断处理的方法及中断控制模块、处理器、存储介质 |
CN116501507B (zh) * | 2023-06-28 | 2023-10-24 | 北京紫光芯能科技有限公司 | 用于中断处理的方法及中断控制模块、处理器、存储介质 |
CN117724664A (zh) * | 2024-02-18 | 2024-03-19 | 芯来智融半导体科技(上海)有限公司 | 数据写入方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114595186B (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114595186B (zh) | 一种多核处理器的核间通信方法、通信装置 | |
US10521393B2 (en) | Remote direct memory access (RDMA) high performance producer-consumer message processing | |
US20220283953A1 (en) | Method and system for low latency data management | |
EP3489815B1 (en) | Method and system for low latency data management | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
WO2018075182A1 (en) | Gpu remote communication with triggered operations | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN112491426B (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
CN111190854A (zh) | 通信数据处理方法、装置、设备、系统和存储介质 | |
JPH08241186A (ja) | バッファメモリ管理ユニット及びバッファメモリ管理方法 | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
CN116107774A (zh) | Io请求处理方法、装置、电子设备和存储介质 | |
JP7427775B2 (ja) | ストアドプロシージャの実行方法、装置、データベースシステム及び記憶媒体 | |
CN108874557B (zh) | 一种前端接口处理方法及系统 | |
CN109669793B (zh) | 中间件进程内对象调用方法 | |
CN113704274B (zh) | 一种数据的读取方法及电子设备 | |
CN117149471B (zh) | 通信方法、装置、嵌入式系统、存储介质以及电子设备 | |
CN117149472B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN112041817A (zh) | 用于管理借助于加速器装置的硬件加速的请求的方法和节点 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
CN112540838B (zh) | 系统资源调度方法及装置、计算机存储介质 | |
KR100693601B1 (ko) | 멀티 프로세서간 데이터 통신장치와 그 방법 | |
CN113835850A (zh) | 任务处理方法、系统及存储介质 | |
CN116841760A (zh) | 进程间的通信方法、装置、电子设备及存储介质 | |
CN117687722A (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 |