WO2022095634A1 - 多核处理系统及其核间通信方法、存储介质 - Google Patents
多核处理系统及其核间通信方法、存储介质 Download PDFInfo
- Publication number
- WO2022095634A1 WO2022095634A1 PCT/CN2021/121312 CN2021121312W WO2022095634A1 WO 2022095634 A1 WO2022095634 A1 WO 2022095634A1 CN 2021121312 W CN2021121312 W CN 2021121312W WO 2022095634 A1 WO2022095634 A1 WO 2022095634A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- core
- message
- data
- shared memory
- storage space
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004891 communication Methods 0.000 title claims abstract description 50
- 238000012546 transfer Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
多核处理系统及其核间通信方法、存储介质,方法包括以下步骤:共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度(S102);根据数据长度进行存储空间分配以获得待传输数据的目的地址(S104);根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间(S106)。能够提高CPU效率、降低访问延迟。
Description
相关申请的交叉引用
本申请要求于2020年11月09日提交的申请号为202011240281X,名称为“多核处理系统及其核间通信方法、存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及集成电路技术领域,特别是涉及一种多核处理系统及其核间通信方法、存储介质。
随着SOC(System On Chip,片上系统)对不同类型CPU(Central Processing Unit,中央处理器)的集成,核间通信变得越来越复杂多样,尤其对大数据量的传输性能的要求越来越高。目前的核间通信方式存在应用程序访问延迟大的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低应用程序访问延迟的多核处理系统及其核间通信方法、存储介质。
第一方面,提供一种多核处理系统的核间通信方法,应用于接收核,方法包括以下步骤:
共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度;
根据数据长度进行存储空间分配以获得待传输数据的目的地址;
根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
第二方面,提供另一种多核处理系统的核间通信方法,应用于发送核,方法包括以下步骤:
将消息写入共享内存,以使接收核从共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度,以及根据数据长度进行存储空间分配以获得待传输数据的目的地址,并根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
第三方面,提供一种计算机可读存储介质,其上存储有多核处理系统的核间通信程序,该程序被处理器执行时实现第一方面的多核处理系统的核间通信方法或者第二方面的多核处理系统的核间通信方法。
第四方面,提供一种多核处理系统,包括:发送核、接收核、共享内存模块和DMA控制器,
发送核用于将消息写入共享内存模块,消息包括待传输数据的源地址和数据长度;
接收核用于对消息进行解析以获得待传输数据的源地址和数据长度,并根据源地址、数据长度和目的地址对DMA控制器进行配置以通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间,其中,目的地址由接收核确定。
上述多核处理系统及其核间通信方法、存储介质,通过采用共享内存与DMA方式相结合的方式进行数据传输,在数据传输上释放了CPU,从而提高了CPU效率,同时通过消息将数据的数据长度发送至接收核,以使接收核根据数据长度进行本地存储空间分配,以将数据存储至本地存储空间,不仅能够有效降低应用程序的访问延迟,并且能够提高数据存储的灵活性。
图1为一个实施例中多核处理系统的核间通信方法的流程示意图;
图2为一个实施例中多核处理系统的架构图;
图3为一个实施例中多核处理系统的核间通信示意图;
图4为另一个实施例中多核处理系统的核间通信方法的流程示意图;
图5为一个实施例中多核处理系统的核间通信装置的结构框图;
图6为另一个实施例中多核处理系统的核间通信装置的结构框图;
图7为又一个实施例中多核处理系统的核间通信装置的结构框图;
图8为再一个实施例中多核处理系统的核间通信装置的结构框图;
图9为一个实施例中多核处理系统的结构框图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供一种多核处理系统的核间通信方法,该方法应用于接收核,参考图1所示,该多核处理系统的核间通信方法包括以下步骤:
步骤S102,共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度。
在多核处理系统中,通常具有至少两个处理核CPU,两个处理核之间有时需要进行数据共享与同步等,因此需要进行核间通信,为便于说明,本申请中将发送数据的核称为发送核,将接收数据的核称为接收核。
参考图2所示,发送核的应用程序在运行时会产生一定的数据,其中部分或全部数据可能需要传输至接收核,以通过接收核进行处理等,因此发送核的应用程序将需要传输至接收核的数据即待传输数据写入共享内存的数据区,并将待传输数据在共享内存中的存储地址即源地址和数据长度等提供给发送核的发送驱动程序。
发送核的发送驱动程序在接收到待传输数据的源地址和数据长度后,向接收核发送共享 内存连接建立请求,如果接收核接收到该请求,则根据该请求建立与发送核之间的共享内存连接;否则,说明两者之间出现通信故障,尝试多次后,如果仍无法建立共享内存连接,则报警提醒。在共享内存连接建立成功后,发送核的发送驱动程序对待传输数据的源地址和数据长度等进行封装以生成消息,并将封装获得的消息写入共享内存的消息区,这样可以避免共享内存连接未成功建立之前进行消息封装等导致的资源占用,其中消息的格式可以为:接收核的标识信息、消息的长度、消息的类型(如消息为控制类消息或通信类消息等)、待传输数据的源地址和数据长度。而后,发送核的发送驱动程序产生一个核间通知信号,例如发送核的发送驱动程序通过写接收核的中断寄存器触发中断,以告知接收核数据已经准备好。
接收核的接收驱动程序在接收到核间通知信号如中断信号后,响应于该核间通知信号,从共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度,并将待传输数据的源地址和数据长度提供给接收核的应用程序。
在一些实施例中,共享内存为独立于发送核的存储空间,或者共享内存为发送核内的RAM或SRAM存储空间。也就是说,共享内存可采用外挂的方式(如图2所示),或者采用本地存储方式如RAM或SRAM,其中采用前者可降低消息在发送核的占用空间,采用后者可进一步降低消息传递的延迟。
步骤S104,根据数据长度进行存储空间分配以获得待传输数据的目的地址。
接收核的应用程序在接收到待传输数据的源地址和数据长度后,根据数据长度进行本地存储空间分配,例如在本地存储空间中划分预设长度的连续存储空间供待传输数据存储,其中预设长度大于待传输数据的数据长度,并将该存储空间的地址作为待传输数据的目的地址发送给接收核的接收驱动程序。
在一些实施例中,目的地址对应的存储空间为独立于接收核的存储空间,或者目的地址对应的存储空间为接收核内的RAM或SRAM存储空间。也就是说,本地存储空间可采用外挂的方式,或者采用RAM或SRAM(如图2所示),其中采用前者可降低待传输数据在接收核的占用空间,采用后者可进一步降低接收核的应用程序对待传输数据的访问延迟。
步骤S106,根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
在接收核的接收驱动程序接收到待传输数据的目的地址后,根据待传输数据的源地址、数据长度以及目的地址对直接寄存器访问DMA(Direct Memory Access)控制器进行配置,然后由DMA控制器将源地址对应的待传输数据从共享内存中写入至接收核的本地存储空间。而后,接收核的应用程序可直接从本地存储空间中读取所需的待传输数据,对待传输数据进行处理等,这样可以有效降低应用程序的访问延迟。其中,在DMA控制器将待传输数据从共享内存中写入至接收核的本地存储空间后,会产生一个DMA读取结束信号,接收核根据该信号清除核间通知信号如中断信号,以便发送核的发送驱动程序产生下一核间通知信号,以进行下一数据的传输。
上述实施例中,通过采用共享内存结合DMA的方式进行核间数据传输,在数据传输上释 放了接收核CPU,提高了CPU效率,同时通过消息将数据的数据长度发送至接收核,以使接收核根据数据长度进行本地存储空间分配,以将数据存储至本地存储空间,这样不仅能够有效降低应用程序的访问延迟,避免接收核的应用程序从共享内存中读取数据导致的访问延迟的问题,并且能够根据实际情况进行本地存储空间的实时分配,增加了数据存储的灵活性。
作为一个具体示例,参考图3所示,多核处理系统的核间通信方法可包括:
步骤S302,发送核读取接收核的中断寄存器的状态。
具体地,发送核的应用程序在运行时产生大数据量的待传输数据,并将这些待传输数据存储至共享内存的数据区,以及在待传输数据存储至共享内存的数据区后,将待传输数据在共享内存中的地址即源地址以及数据长度提供给发送核的发送驱动程序。而后,发送核的发送驱动程序向接收核发送共享内存连接建立请求,以建立与接收核之间的共享内存连接。在共享内存连接建立成功后,发送核的发送驱动程序读取接收核的中断寄存器的状态。
步骤S304,发送核判断共享内存是否可写。
发送核的发送驱动程序可以根据读取的中断寄存器的状态判断共享内存是否可写。如果不可写,则重复读取判断;如果可写,则执行下一步骤。
步骤S306,发送核向共享内存中写消息。
在确定共享内存可写时,发送核的发送驱动程序将待传输数据的源地址和数据长度封装成消息,写入共享内存,消息的格式可以为接收核的ID、消息的长度、消息的ID(用于指示消息的类型)、待传输数据的源地址和数据长度。
步骤S308,发送核触发中断信号。
发送核的发送驱动程序通过写接收核的中断寄存器以触发共享内存中断,以告知接收核数据已经准备好。
步骤S310,接收核从共享内存中读取消息。
接收核的接收驱动程序在接收到共享内存中断后,读取并解析共享内存中的消息,以获得待传输数据的源地址和数据长度,并将其提供给接收核的应用程序,由接收核的应用程序根据数据长度分配本地存储空间,并将分配的本地存储空间的地址作为待传输数据的目的地址传递给接收核的接收驱动程序。
步骤S312,接收核配置DMA控制器。
接收核的接收驱动程序在接收到待传输数据的目的地址后,根据待传输数据的源地址、数据长度和目的地址对DMA控制器进行配置,以通过DMA控制器将待传输数据从共享内存中写入至本地存储空间。
步骤S314,等待DMA结束。
接收核的接收驱动程序等待本次数据传输是否结束。
步骤S316,DMA结束。
在本次数据传输结束后,DMA控制器将产生一个DMA结束中断给接收核的接收驱动程序,接收核的接收驱动程序接收该DMA结束中断。
步骤S318,接收核清除中断信号。
在接收核的接收驱动程序接收到DMA结束中断后,告知接收核的应用程序,清除共享内存中断。
步骤S320,接收核从本地存储空间读取待传输数据。
接收核的应用程序直接从本地存储空间中读取待传输数据。
步骤S322,接收核对待传输数据进行处理。
接收核的应用程序对读取的待传输数据进行处理。
本实施例中,通过采用共享内存与DMA相结合的方式进行核间数据传输,由DMA进行数据传输,从而释放了接收核CPU,提高了CPU效率,同时通过消息将数据的数据长度发送至接收核,以使接收核根据数据长度进行本地存储空间分配,以将数据存储至本地存储空间,这样不仅能够有效降低接收核的应用程序对待传输数据的访问延迟,避免接收核的应用程序从共享内存中读取待传输数据导致的访问延迟的问题,并且能够根据实际情况进行本地存储空间的实时分配,增加了数据存储的灵活性。同时,基于中断寄存器的状态确定共享内存是否可写,可以避免数据读取的同时进行数据写入导致数据混乱。
需要说明的是,上述示例是基于中断寄存器的状态确定共享内存是否可写,如果可写,则将消息写入共享内存,该方式主要用于少量消息的传输,此时为消息分配的存储空间较小,如仅有一个消息的存储空间,因此需要读完一个消息之后,再写入一个消息,防止消息读取时进行消息写入导致消息错误。但是,在进行大量消息传输时,如果仍采用该方式,会存在消息写入效率低的问题,基于此,本申请通过根据接收核读取的消息的位置信息以及发送核写入的消息的位置信息来判断共享内存是否可写,以进行消息的写入。
在一些实施例中,在从共享内存中读取与发送核对应的消息之后,还包括:记录当前从共享内存中读取的消息的第二位置信息,以使发送核根据第二位置信息和当前写入至共享内存中的消息的第一位置信息向共享内存中写入消息。
具体地,在进行大量消息传输时,可在共享内存中为消息分配较大的存储空间,如分配四个消息的存储空间等,并且在发送核的发送驱动程序将封装后的消息写入共享内存的消息区后,记录当前写入至共享内存中的消息的位置信息记为第一位置信息,并产生一个核间通知信号。而后,接收核的接收驱动程序根据该核间通知信号从共享内存中读取消息,并记录当前读取的消息的位置信息记为第二位置信息,并将其传递给发送核的发送驱动程序。而后,发送核的发送驱动程序根据第一位置信息和第二位置信息判断共享内存的消息区是否存在剩余存储空间,如果存在,则发送核的发送驱动程序向剩余存储空间写入下一消息,否则,暂停写入。
本实施例中,通过根据接收核读取的消息的位置信息以及发送核写入的消息的位置信息来判断共享内存是否可写,以进行下一消息的写入,无需等待当前共享内存中断是否结束,有效提高了消息的写入效率,适用于多消息的传输。
在一个实施例中,提供一种多核处理系统的核间通信方法,该方法应用于发送核,参考图4所示,该多核处理系统的核间通信方法包括以下步骤:
步骤S402,将消息写入共享内存,以使接收核从共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度,以及根据数据长度进行存储空间分配以获得待传输数据的目的地址,并根据源地址、数据长度和目的地址,通过DMA访问方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
参考图2所示,发送核的应用程序在运行时会产生一定的数据,其中部分或全部数据可能需要传输至接收核,以通过接收核进行处理等,因此发送核的应用程序将需要传输至接收核的数据即待传输数据写入共享内存的数据区,并将待传输数据在共享内存中的存储地址即源地址和数据长度等提供给发送核的发送驱动程序。
发送核的发送驱动程序在接收到待传输数据的源地址和数据长度后,向接收核发送共享内存连接建立请求,如果接收核接收到该请求,则根据该请求建立与发送核之间的共享内存连接;否则,说明两者之间出现通信故障,尝试多次后,如果仍无法建立共享内存连接,则报警提醒。在共享内存连接建立成功后,发送核的发送驱动程序对待传输数据的源地址和数据长度等进行封装以生成消息,并将封装获得的消息写入共享内存的消息区,这样可以避免共享内存连接未成功建立之前进行消息封装等导致的资源占用,其中消息的格式可以为:接收核的标识信息、消息的长度、消息的类型(如消息为控制类消息或通信类消息等)、待传输数据的源地址和数据长度。
在一些实施例中,共享内存为独立于发送核的存储空间,或者共享内存为发送核内的RAM或SRAM存储空间。也就是说,共享内存可采用外挂的方式(如图2所示),或者采用本地存储方式如RAM或SRAM,其中采用前者可降低消息在发送核的占用空间,采用后者可进一步降低消息传递的延迟。
在发送核的发送驱动程序将封装后的消息写入至共享内存后,发送核的发送驱动程序产生一个核间通知信号,例如发送核的发送驱动程序通过写接收核的中断寄存器触发中断,以告知接收核数据已经准备好。接收核的接收驱动程序在接收到核间通知信号如中断信号后,响应于该核间通知信号,从共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度,并将待传输数据的源地址和数据长度提供给接收核的应用程序。
接收核的应用程序在接收到待传输数据的源地址和数据长度后,根据数据长度进行本地存储空间分配,例如在本地存储空间中划分预设长度的连续存储空间供待传输数据存储,其中预设长度大于待传输数据的数据长度,并将该存储空间的地址作为待传输数据的目的地址发送给接收核的接收驱动程序。
在接收核的接收驱动程序接收到待传输数据的目的地址后,根据待传输数据的源地址、数据长度以及目的地址对DMA控制器进行配置,然后由DMA控制器将源地址对应的待传输数据从共享内存中写入至接收核的本地存储空间。而后,接收核的应用程序可直接从本地存储空间中读取所需的待传输数据,对待传输数据进行处理等,这样可以有效降低应用程序的访问延迟。其中,在DMA控制器将待传输数据从共享内存中写入至接收核的本地存储空间后,会产生一个DMA读取结束信号,接收核根据该信号清除核间通知信号如中断信号, 以便发送核的发送驱动程序产生下一核间通知信号,以进行下一数据的传输。
在一些实施例中,目的地址对应的存储空间为独立于接收核的存储空间,或者目的地址对应的存储空间为接收核内的RAM或SRAM存储空间。也就是说,本地存储空间可采用外挂的方式,或者采用RAM或SRAM(如图2所示),其中采用前者可降低待传输数据在接收核的占用空间,采用后者可进一步降低接收核的应用程序对待传输数据的访问延迟。
上述实施例中,通过采用共享内存结合DMA的方式进行核间数据传输,在数据传输上释放了接收核CPU,提高了CPU效率,同时通过消息将数据的数据长度发送至接收核,以使接收核根据数据长度进行本地存储空间分配,以将数据存储至本地存储空间,这样不仅能够有效降低应用程序的访问延迟,避免接收核的应用程序从共享内存中读取数据导致的访问延迟的问题,并且能够根据实际情况进行本地存储空间的实时分配,增加了数据存储的灵活性。
在一个实施例中,在将消息写入共享内存之后,还包括:记录当前写入至共享内存中的消息的第一位置信息;获取当前从共享内存中读取的消息的第二位置信息;根据第一位置信息和第二位置信息向共享内存中写入消息。
具体地,在进行大量消息传输时,可在共享内存中为消息分配较大的存储空间,如分配四个消息的存储空间等,并且在发送核的发送驱动程序将封装后的消息写入共享内存的消息区后,记录当前写入至共享内存中的消息的位置信息记为第一位置信息,并产生一个核间通知信号。而后,接收核的接收驱动程序根据该核间通知信号从共享内存中读取消息,并记录当前读取的消息的位置信息记为第二位置信息,并将其传递给发送核的发送驱动程序。而后,发送核的发送驱动程序根据第一位置信息和第二位置信息判断共享内存的消息区是否存在剩余存储空间,如果存在,则发送核的发送驱动程序向剩余存储空间写入下一消息,否则,暂停写入。
本实施例中,通过根据接收核读取的消息的位置信息以及发送核写入的消息的位置信息来判断共享内存是否可写,以进行下一消息的写入,无需等待当前共享内存中断是否结束,有效提高了消息的写入效率,适用于多消息的传输。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一些实施例中,提供一种计算机可读存储介质,其上存储有多核处理系统的核间通信程序,该程序被处理器执行时实现上述的应用于接收核或发送核的多核处理系统的核间通信方法。
在一个实施例中,提供一种多核处理系统的核间通信装置,应用于接收核,参考图5 所示,该多核处理系统的核间通信装置500包括:消息读取模块502、消息解析模块504、空间分配模块506和数据传输模块508。
其中,消息读取模块502用于从共享内存中读取与发送核对应的消息,消息包括待传输数据的源地址和数据长度;消息解析模块504用于对消息进行解析以获得待传输数据的源地址和数据长度;空间分配模块506用于根据数据长度进行存储空间分配以获得待传输数据的目的地址;数据传输模块508用于根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
在一个实施例中,消息还包括接收核的标识信息、消息的长度和消息的类型。
在一个实施例中,目的地址对应的存储空间为独立于接收核的存储空间,或者目的地址对应的存储空间为接收核内的RAM或SRAM存储空间。
在一个实施例中,参考图6所示,多核处理系统的核间通信装置500还包括:读取位置记录模块510,用于记录当前从共享内存中读取的消息的第二位置信息,以使发送核根据第二位置信息和当前写入至共享内存中的消息的第一位置信息向共享内存中写入消息。
在一个实施例中,提供一种多核处理系统的核间通信装置,应用于发送核,参考图7所示,该多核处理系统的核间通信装置700包括:消息写入模块702。
其中,消息写入模块702用于将消息写入共享内存,以使接收核从共享内存中读取与发送核对应的消息,并对消息进行解析以获得待传输数据的源地址和数据长度,以及根据数据长度进行存储空间分配以获得待传输数据的目的地址,并根据源地址、数据长度和目的地址,通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间。
在一个实施例中,消息包括接收核的标识信息、消息的长度、消息的类型、待传输数据的源地址和数据长度。
在一个实施例中,共享内存为独立于发送核的存储空间,或者共享内存为发送核内的RAM或SRAM存储空间。
在一个实施例中,参考图8所示,多核处理系统的核间通信装置700还包括:写入位置记录模块704和读取位置获取模块706,写入位置记录模块704用于记录当前写入至共享内存中的消息的第一位置信息;读取位置获取模块706用于获取当前从共享内存中读取的消息的第二位置信息;消息写入模块702还用于根据第一位置信息和第二位置信息向共享内存中写入消息。
关于多核处理系统的核间通信装置的具体限定可以参见上文中对于多核处理系统的核间通信方法的限定,在此不再赘述。上述多核处理系统的核间通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,参考图9所示,提供一种多核处理系统,包括:发送核902、接收核904、共享内存模块906和DMA控制器908。
其中,发送核902用于将消息写入共享内存模块906,消息包括待传输数据的源地址和数据长度;接收核904用于对消息进行解析以获得待传输数据的源地址和数据长度,并根据源地址、数据长度和目的地址对DMA控制器908进行配置以通过DMA方式将待传输数据从源地址对应的存储空间传输至目的地址对应的存储空间,目的地址由接收核904确定。
在一个实施例中,消息还包括:接收核的标识信息、消息的长度和消息的类型。
在一个实施例中,接收核904包括:接收驱动模块9042、第一应用程序模块9044和本地存储模块9046,接收驱动模块9042用于对消息进行解析以获得待传输数据的源地址和数据长度;第一应用程序模块9044用于根据数据长度对本地存储模块9046进行存储空间分配以获得目的地址;接收驱动模块9042还用于根据源地址、数据长度和目的地址对DMA控制器908进行配置。
在一个实施例中,DMA控制器908设于接收驱动模块9042中。
在一个实施例中,发送核902包括:第二应用程序模块9022和发送驱动模块9024,第二应用程序模块9022用于获述待传输数据的源地址和数据长度;发送驱动模块9024用于对待传输数据的源地址和数据长度进行封装以获得消息,并将消息写入共享内存模块906中。
在一个实施例中,本地存储模块9046为独立于接收核的存储空间,或者本地存储模块9046为接收核内的RAM或SRAM存储空间。
在一个实施例中,共享内存模块906为独立于发送核的存储空间,或者共享内存模块906为发送核内的RAM或SRAM存储空间。
在一个实施例中,发送核902还用于记录当前写入至共享内存模块906中的消息的第一位置信息;接收核904还用于记录当前从共享内存模块906中读取的消息的第二位置信息;发送核902还用于根据第一位置信息和第二位置信息向共享内存模块906中写入消息。
关于多核处理系统的具体限定可以参见上文中对于多核处理系统的核间通信方法的限定,在此不再赘述。上述多核处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器 总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (17)
- 一种多核处理系统的核间通信方法,其特征在于,应用于接收核,所述方法包括以下步骤:共享内存中读取与发送核对应的消息,并对所述消息进行解析以获得待传输数据的源地址和数据长度;根据所述数据长度进行存储空间分配以获得所述待传输数据的目的地址;根据所述源地址、所述数据长度和所述目的地址,通过DMA方式将所述待传输数据从所述源地址对应的存储空间传输至所述目的地址对应的存储空间。
- 根据权利要求1所述的多核处理系统的核间通信方法,其特征在于,所述消息包括所述接收核的标识信息、所述消息的长度、所述消息的类型、所述待传输数据的源地址和数据长度。
- 根据权利要求1所述的多核处理系统的核间通信方法,其特征在于,所述目的地址对应的存储空间为独立于所述接收核的存储空间,或者所述目的地址对应的存储空间为所述接收核内的RAM或SRAM存储空间。
- 根据权利要求1-3中任一项所述的多核处理系统的核间通信方法,其特征在于,所述共享内存中读取与发送核对应的消息之后,还包括:记录当前所述共享内存中读取的消息的第二位置信息,以使所述发送核根据所述第二位置信息和当前写入至所述共享内存中的消息的第一位置信息向所述共享内存中写入消息。
- 一种多核处理系统的核间通信方法,其特征在于,应用于发送核,所述方法包括以下步骤:将消息写入共享内存,以使接收核从所述共享内存中读取与所述发送核对应的消息,并对所述消息进行解析以获得待传输数据的源地址和数据长度,以及根据所述数据长度进行存储空间分配以获得所述待传输数据的目的地址,并根据所述源地址、所述数据长度和所述目的地址,通过DMA方式将所述待传输数据从所述源地址对应的存储空间传输至所述目的地址对应的存储空间。
- 根据权利要求5所述的多核处理系统的核间通信方法,其特征在于,所述消息包括所述接收核的标识信息、所述消息的长度、所述消息的类型、所述待传输数据的源地址和数据长度。
- 根据权利要求5所述的多核处理系统的核间通信方法,其特征在于,所述共享内存为独立于所述发送核的存储空间,或者所述共享内存为所述发送核内的RAM或SRAM存储空间。
- 根据权利要求5-7中任一项所述的多核处理系统的核间通信方法,其特征在于,所述将消息写入共享内存之后,还包括:记录当前写入至所述共享内存中的消息的第一位置信息;获取当前从所述共享内存中读取的消息的第二位置信息;根据所述第一位置信息和所述第二位置信息向所述共享内存中写入消息。
- 一种计算机可读存储介质,其特征在于,其上存储有多核处理系统的核间通信程序,该程序被处理器执行时实现如权利要求1-4中任一项所述的多核处理系统的核间通信方法,或者如权利要求5-8中任一项所述的多核处理系统的核间通信方法。
- 一种多核处理系统,其特征在于,包括:发送核、接收核、共享内存模块和DMA控制器,所述发送核用于将消息写入所述共享内存模块,所述消息包括待传输数据的源地址和数据长度;所述接收核用于对所述消息进行解析以获得所述待传输数据的源地址和数据长度,并根据所述源地址、所述数据长度和目的地址对所述DMA控制器进行配置以通过DMA方式将所述待传输数据从所述源地址对应的存储空间传输至所述目的地址对应的存储空间,其中,所述目的地址由所述接收核确定。
- 根据权利要求10所述的多核处理系统,其特征在于,所述消息还包括:所述接收核的标识信息、所述消息的长度和所述消息的类型。
- 根据权利要求10所述的多核处理系统,其特征在于,所述接收核包括:接收驱动模块、第一应用程序模块和本地存储模块,所述接收驱动模块用于对所述消息进行解析以获得所述待传输数据的源地址和数据长度;所述第一应用程序模块用于根据所述数据长度对所述本地存储模块进行存储空间分配以获得所述目的地址;所述接收驱动模块还用于根据所述源地址、所述数据长度和所述目的地址对所述DMA控制器进行配置。
- 根据权利要求12所述的多核处理系统,其特征在于,所述DMA控制器设于所述接收驱动模块中。
- 根据权利要求12所述的多核处理系统,其特征在于,所述发送核包括:第二应用程序模块和发送驱动模块,所述第二应用程序模块用于获取所述待传输数据的源地址和数据长度;所述发送驱动模块用于对所述待传输数据的源地址和数据长度进行封装以获得所述消息,并将所述消息写入所述共享内存模块中。
- 根据权利要求10所述的多核处理系统,其特征在于,所述本地存储模块为独立于所述接收核的存储空间,或者所述本地存储模块为所述接收核内的RAM或SRAM存储空间。
- 根据权利要求10所述的多核处理系统,其特征在于,所述共享内存模块为独立于所述发送核的存储空间,或者所述共享内存模块为所述发送核内的RAM或SRAM存储空间。
- 根据权利要求10-16中任一项所述的多核处理系统,其特征在于,所述发送核还用于记录当前写入所述共享内存模块中的消息的第一位置信息;所述接收核还用于记录当前从所述共享内存模块中读取的消息的第二位置信息;所述发送核还用于根据所述第一位置信息和所述第二位置信息向所述共享内存模块中写入消息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21888331.2A EP4227818A4 (en) | 2020-11-09 | 2021-09-28 | MULTI-CORE PROCESSING SYSTEM AND METHOD FOR COMMUNICATION BETWEEN CORES AND STORAGE MEDIUM |
US18/135,877 US20230259468A1 (en) | 2020-11-09 | 2023-04-18 | Multi-core processing system and inter-core communication method therefor, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011240281.X | 2020-11-09 | ||
CN202011240281.XA CN112328533A (zh) | 2020-11-09 | 2020-11-09 | 多核处理系统及其核间通信方法、存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/135,877 Continuation US20230259468A1 (en) | 2020-11-09 | 2023-04-18 | Multi-core processing system and inter-core communication method therefor, and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022095634A1 true WO2022095634A1 (zh) | 2022-05-12 |
Family
ID=74316431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/121312 WO2022095634A1 (zh) | 2020-11-09 | 2021-09-28 | 多核处理系统及其核间通信方法、存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230259468A1 (zh) |
EP (1) | EP4227818A4 (zh) |
CN (1) | CN112328533A (zh) |
WO (1) | WO2022095634A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827269A (zh) * | 2022-11-18 | 2023-03-21 | 北醒(北京)光子科技有限公司 | 核间通信通道构建方法、装置、存储介质及激光雷达 |
CN115840650A (zh) * | 2023-02-20 | 2023-03-24 | 麒麟软件有限公司 | 基于kvisor隔离实时域实现三端系统通信的方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
CN113110950B (zh) * | 2021-05-18 | 2023-05-26 | 南方电网科学研究院有限责任公司 | 处理器及通信方法、存储介质及计算设备 |
CN113326149B (zh) * | 2021-05-27 | 2022-11-15 | 展讯通信(天津)有限公司 | 异构多核系统的核间通信方法和设备 |
CN113360294B (zh) * | 2021-06-11 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 多进程核间通信建立方法、系统、终端及存储介质 |
CN113377703B (zh) * | 2021-06-23 | 2024-04-09 | 上海擎昆信息科技有限公司 | 一种核间通信方法 |
CN114253741B (zh) * | 2021-12-02 | 2022-11-08 | 国汽智控(北京)科技有限公司 | 多核微处理器的核间通信方法和多核微处理器 |
CN114237509B (zh) * | 2021-12-17 | 2024-03-26 | 西安紫光展锐科技有限公司 | 数据访问方法及装置 |
CN115185858B (zh) * | 2022-09-09 | 2023-01-24 | 北京特纳飞电子技术有限公司 | 地址映射表的处理方法、装置和存储设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090109968A1 (en) * | 2007-10-30 | 2009-04-30 | Ariel Noy | Grid router |
CN109491587A (zh) * | 2017-09-11 | 2019-03-19 | 华为技术有限公司 | 数据访问的方法及装置 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
CN111107586A (zh) * | 2019-12-24 | 2020-05-05 | 广东机电职业技术学院 | 一种bbu前传数据的处理方法及系统 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458757C (zh) * | 2005-07-28 | 2009-02-04 | 大唐移动通信设备有限公司 | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 |
JP4476267B2 (ja) * | 2006-10-06 | 2010-06-09 | 株式会社日立製作所 | プロセッサ及びデータ転送ユニット |
US8635412B1 (en) * | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
CN110764924A (zh) * | 2018-07-27 | 2020-02-07 | 普天信息技术有限公司 | 一种多核处理器的核间通信方法及装置 |
CN111338998B (zh) * | 2020-02-20 | 2021-07-02 | 深圳震有科技股份有限公司 | 基于amp系统的flash访问处理方法及装置 |
CN115203142A (zh) * | 2022-07-27 | 2022-10-18 | 重庆大学 | 一种多核核间实时通信系统及方法 |
-
2020
- 2020-11-09 CN CN202011240281.XA patent/CN112328533A/zh active Pending
-
2021
- 2021-09-28 EP EP21888331.2A patent/EP4227818A4/en active Pending
- 2021-09-28 WO PCT/CN2021/121312 patent/WO2022095634A1/zh unknown
-
2023
- 2023-04-18 US US18/135,877 patent/US20230259468A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090109968A1 (en) * | 2007-10-30 | 2009-04-30 | Ariel Noy | Grid router |
CN109491587A (zh) * | 2017-09-11 | 2019-03-19 | 华为技术有限公司 | 数据访问的方法及装置 |
CN109976925A (zh) * | 2019-03-27 | 2019-07-05 | 北京翼辉信息技术有限公司 | 一种基于混合多系统核间实时通信的方法和系统 |
CN111107586A (zh) * | 2019-12-24 | 2020-05-05 | 广东机电职业技术学院 | 一种bbu前传数据的处理方法及系统 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4227818A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827269A (zh) * | 2022-11-18 | 2023-03-21 | 北醒(北京)光子科技有限公司 | 核间通信通道构建方法、装置、存储介质及激光雷达 |
CN115827269B (zh) * | 2022-11-18 | 2024-04-12 | 北醒(北京)光子科技有限公司 | 核间通信通道构建方法、装置、存储介质及激光雷达 |
CN115840650A (zh) * | 2023-02-20 | 2023-03-24 | 麒麟软件有限公司 | 基于kvisor隔离实时域实现三端系统通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112328533A (zh) | 2021-02-05 |
EP4227818A1 (en) | 2023-08-16 |
EP4227818A4 (en) | 2024-04-24 |
US20230259468A1 (en) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022095634A1 (zh) | 多核处理系统及其核间通信方法、存储介质 | |
KR102532173B1 (ko) | 메모리 액세스 기술 및 컴퓨터 시스템 | |
US20120221671A1 (en) | Controlling Shared Memory | |
KR20110010707A (ko) | 슬레이브 디바이스 사이에서 직접 데이터를 전송하는 방법 | |
JPS61109164A (ja) | バス制御方法 | |
CN113535425A (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
US20190155765A1 (en) | Operation method of host system including storage device and operation method of storage device controller | |
CN108197039B (zh) | 一种ssd控制器混合流数据的传输方法和系统 | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN107453845B (zh) | 应答确认方法及设备 | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN113946527B (zh) | 一种基于PCIe总线的多通道DMA交互设计方法 | |
CN116486868A (zh) | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) | |
CN111651282B (zh) | 报文处理方法、报文处理装置及电子设备 | |
JP4649257B2 (ja) | マルチcpuシステム | |
JP7363344B2 (ja) | メモリ制御装置、および制御方法 | |
CN105739919A (zh) | 资料存取系统及方法 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 | |
WO2022226998A1 (zh) | 执行原子操作的装置和方法 | |
US10970155B1 (en) | Error reporting when reading data | |
WO2022222375A1 (zh) | 传输数据的方法及存储装置 | |
WO2024037172A1 (zh) | 一种dpu的存储空间扩展方法、装置及系统 | |
KR101192594B1 (ko) | 슬레이브 디바이스 사이에서 직접 데이터를 전송하는 방법 | |
JP3594952B2 (ja) | 中央システムの操作を実行するための中央システムと衛星システムとの間のリンク |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21888331 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021888331 Country of ref document: EP Effective date: 20230510 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |