CN106371937A - 多核系统的核间通信方法及装置 - Google Patents

多核系统的核间通信方法及装置 Download PDF

Info

Publication number
CN106371937A
CN106371937A CN201610795939.0A CN201610795939A CN106371937A CN 106371937 A CN106371937 A CN 106371937A CN 201610795939 A CN201610795939 A CN 201610795939A CN 106371937 A CN106371937 A CN 106371937A
Authority
CN
China
Prior art keywords
kernel
queue
data
pond
team
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
CN201610795939.0A
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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN201610795939.0A priority Critical patent/CN106371937A/zh
Publication of CN106371937A publication Critical patent/CN106371937A/zh
Pending legal-status Critical Current

Links

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/546Message passing systems or structures, e.g. queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本发明实施例提供的多核系统的核间通信方法及装置,属于数据通信领域。所述方法包括:所述第一内核向第二内核发送第一数据时,所述第一内核将所述第一数据入队到,与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;所述第二内核在对应的队列池进行出队操作,读取出所述第一数据。本发明实施例提供的多核系统的核间通信方法使得单个队列的入队操作和出队操作都只有一个内核参与,进而队列不再需要锁保护,使得多个内核进行入队操作或者出队操作时,不再需要锁进行互斥,进而实现了无锁的多入多出队列,提升了多核系统利用队列进行数据传输的效率。

Description

多核系统的核间通信方法及装置
技术领域
本发明涉及数据通信领域,具体而言,涉及一种多核系统的核间通信方法及装置。
背景技术
随着网络通信技术的迅猛发展,网络客户对网络要求越来越高,传统的单核系统在处理性能上越来越不能适应需要,因此多核系统得到了越来越多网络设备的应用。多核系统中的核间通信通常采用队列技术来实现。随着多核系统中核数目的增多,队列的访问者也随之增加,而为了保证队列的完整性,通常需要给队列添加锁,以实现核与核之间互斥的访问队列。但是,多核系统中类似自旋锁之类的互斥手段会随着核与核之间的竞争的增加,导致队列的数据传输效率较低,最终造成核间的数据传输效率下降。
发明内容
有鉴于此,本发明实施例的目的在于提供一种多核通信方法及装置,以提升多核系统利用队列进行数据传输的效率。
第一方面,本发明实施例提供了一种多核系统的核间通信方法,所述多核系统包括多[权利要求没有用到N,所以这里提到N的意义不大,最好还是用文字吧]个内核,每个所述内核对应有一个队列池,且每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,每个所述队列对应有唯一可对其执行入队操作的内核,每个内核对应至少一个可供其执行入队操作的队列,其中,所述多个内核至少包括第一内核和第二内核;所述方法包括:所述第一内核向所述第二内核发送第一数据时,所述第一内核将所述第一数据入队到,与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;所述第二内核在对应的队列池进行出队操作,读取出所述第一数据。
第二方面,本发明实施例提供了一种多核系统的核间通信装置,所述多核系统包括多个内核,每个所述内核对应有一个队列池,且每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,每个所述队列对应有唯一可对其执行入队操作的内核,每个内核对应至少一个可供其执行入队操作的队列,其中,所述多个内核至少包括第一内核和第二内核;所述装置包括:第一数据入队单元,用于当所述第一内核向第二内核发送第一数据时,将所述第一数据入队到,与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;第一数据出队单元,用于在所述第二内核对应的队列池进行出队操作,读取出所述第一数据。
本发明实施例提供的多核系统的核间通信方法及装置,通过给多核系统中每个内核分配一个对应的队列池,且每个所述内核仅能在对应的队列池中进行出队操作,而每个所述队列分配唯一可执行入队操作的内核的方式,使得多个内核中的第一内核向第二内核发送数据时,只会在第二内核对应的队列池中用于第一内核用于入队操作的队列中进行入队操作,而有其他内核同时向第二内核发送数据时,其他内核只会在第二内核对应的队列池中用于该内核用于入队操作的队列中进行入队操作,而第二内核也只会在对应的队列池中进行出队操作,单个队列的入队操作和出队操作都只有一个内核参与,进而队列不再需要锁保护,使得多个内核进行入队操作或者出队操作时,不再需要锁进行互斥,进而实现了无锁的多入多出队列,提升了多核系统利用队列进行数据传输的效率。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的队列示意图;
图2为本发明实施例提供的通信设备的结构框图;
图3为本发明实施例提供的多核系统的核间通信方法的流程图;
图4为本发明实施例提供的用于内核间通信的队列的出队和入队的示意图;
图5为本发明实施例提供的多核系统的核间通信装置的结构框图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,在队列技术中,每个队列均设置有头指针head和尾指针tail,头指针head用于入队操作,尾指针tail用于出队操作,在入队操作时,判断头指针head加1后是否和尾指针tail相等,如果相等,表明队列已满,不能入队。如果不相等,表明队列未满,可以入队,入队后,头指针head加1。出队操作判断尾指针tail和头指针head是否相等,如果相等,表明队列为空,不能出队,如果不相等,表明队列有表项,可以出队,出队后,将尾指针tail加1。
因为队列实现较为方便,且操作简便,在多核系统中,队列技术也越来越普遍。队列在多核环境下运用时,由于存在多个内核同时操作队列的情况,需要在队列的入队操作和出队操作时添加锁进行互斥,以便获取到锁的内核以独占的方式对队列进行操作,以避免队列内数据出现错误。例如,当多个内核同时通过队列向另一个内核发送数据时,或者多个内核同时通过队列操作同一存储区域时,都需要给被操作的队列添加锁。
随着多核系统中内核的数量增多,多个内核间对于锁的争夺也更加的激烈,造成了的更多的系统资源消耗,进而导致队列的数据传输效率较低,最终造成核间的数据传输效率下降。为了改善上述问题,本发明实施例提供了一种多核系统的核间通信方法及装置。
图2示出了一种可设置本实施例提供的多核系统的通信设备100的结构框图。通信设备100可以包括存储器101、多核的处理器102和网络模块103。
存储器101、处理器102、网络模块103各元件之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。所述多核系统的核间通信方法分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器101中的软件功能模块,例如所述多核系统的核间通信装置包括的软件功能模块或计算机程序。
存储器101可以存储各种软件程序以及模块,如本申请实施例提供的多核系统的核间通信方法及装置对应的程序指令/模块。处理器102通过运行存储在存储器101中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本申请实施例中的多核系统的核间通信方法。存储器101可以包括但不限于随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。上述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络通信模块103用于接收以及发送网络数据。
在本实施例提供的多核系统中,该多核系统包括N个内核,每个所述内核对应有一个队列池,为了实现队列出队时的无锁机制,每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,为了实现队列入队时的无锁机制,每个所述队列对应有唯一可执行入队操作的内核,每个内核对应至少一个可执行入队操作的队列,其中,N不小于2。
如图3所示,本发明实施例提供的一种多核系统的核间通信方法,所述方法包括:
步骤S310:所述第一内核向所述第二内核发送第一数据时,所述第一内核将所述第一数据入队到,与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中。
作为一种方式,本实施例提供的多核系统包括第一内核以及第二内核。当第一内核需要将接收外部指令进行数据处理得到第一数据或者自身产生的第一数据发送给第二内核时,第一内核需要将所述第一数据入队到,与所述第二内核对应的队列池中用于所述第一内核执行入队操作的队列中。当然,如果多核系统还包括有第三内核,且第三内核同时也需要向第二内核发送数据时,则第三内核需要将需要发送的数据入队到,与所述第二内核对应的队列池中用于所述第三内核执行入队操作的队列中,从而使得不同的内核向另外一个内核发送数据时,可以各自将数据入队到另外一个内核对应的队列池中不同的队列中。
例如,如图4所示,多核系统包括内核1、内核2以及内核3,而内核1对应的队列池1,内核2对应的队列池2,内核3对应的队列池3。而队列池1中有编号依次为1、2、3的三个队列。可以理解,一般通过变量是能够直接访问到队列的,只是在访问队列时使用一个编号访问特定的队列即可,而不同编号对应的队列的存储区域不同。在队列池2中,编号为1的队列,用于内核1执行入队操作,而编号为3的队列,则用于内核3执行入队操作。
步骤S320:所述第二内核在对应的队列池进行出队操作,读取出所述第一数据。
而在出队操作时,每个内核也只能从对应的队列池进行,则第二内核在执行出队操作时,只能在对应的队列池进行出队操作,以读取出所述第一数据。
对于第二内核,在对应的队列池中进行出队操作时,可以轮询对应的队列池内的每一个队列,从所述第一数据入队的队列中,读取出所述第一数据。而第二内核可以通过判断轮询到的队列是否为空,来判断该队列是否有数据,例如,所述第二内核依次判断对应的队列池内的每一个队列的头指针和尾指针是否相等;从所述头指针和所述尾指针不相同的队列中读取出所述第一数据。
而当第二内核向第一内核发送数据时,也是如此。当所述第二内核向所述第一内核发送第二数据时,所述第二内核将所述第二数据入队到,与所述第一内核对应的队列池中所述第二内核可执行入队操作的队列中;所述第一内核在对应的队列池进行出队操作,读取出所述第二数据。
需要说明的是,在每个内核对应的队列池中,用于其他某一个内核进行入队操作的队列可以为一个,即每个队列对应的执行入队操作的内核均不相同。当然队列池中,用于其他某一个内核进行入队操作的队列可以为一个。具体的数量,可以根据每个内核负责处理的数据类型以及数据量来设定。
下面再以本实施例提供的核间通信方法在通信系统中的运用为例进行说明。在通信系统中,经常需要在内核间传递数据报文。比如,多核系统中,每个内核都运行了驱动模块,驱动需要从硬件接收报文,驱动首先需要获得一个用于承载报文的buffer,在接收完报文后,buffer交给其他软件模块处理,这些软件模块可能在其他内核运行。
在这个报文处理完成后,承载报文的buffer最终还要被释放掉。在这个场景中,每个内核都需要获取buffer,每个内核也会释放buffer。我们使用本实施例提供的无锁队列来管理系统中的buffer,以实现buffer获取和buffer释放的功能。
例如,本实施例提供的多个系统包括4个内核,在创建一个无锁队列后,系统中有4*4=16个独立的队列,每个独立队列的深度可以设定为256。在初始化时,每个队列中都设定有63个buffer,每个buffer都记录了自己初始化时的组编号。在内核M(1<=M<=4)上运行的驱动获取一个buffer进行出队操作时,只会从与内核M对应的第M组队列中获取一个buffer。因为第M组内的队列只会被内核M访问,则出队操作是不会有锁的。
再例如,内核K(1<=K<=4)上的模块在处理完报文后,需要释放buffer,buffer记录了自己来自于第M组队列,因此释放buffer动作在队列内就是将buffer入队到第M组队列的K号队列中。其中,第M组队列的K号队列唯一用于核K进行入队操作。
本发明实施例提供的多核系统的核间通信方法,通过给多核系统中每个内核分配一个对应的队列池,且每个所述内核仅能在对应的队列池中进行出队操作,而每个所述队列分配唯一可执行入队操作的内核的方式,使得多个内核中的第一内核向第二内核发送数据时,只会在第二内核对应的队列池中用于第一内核用于入队操作的队列中进行入队操作,而有其他内核同时向第二内核发送数据时,其他内核只会在第二内核对应的队列池中用于该内核用于入队操作的队列中进行入队操作,而第二内核也只会在对应的队列池中进行出队操作,单个队列的入队操作和出队操作都只有一个内核参与,进而队列不再需要锁保护,使得多个内核进行入队操作或者出队操作时,不再需要锁进行互斥,进而实现了无锁的多入多出队列,提升了多核系统利用队列进行数据传输的效率。
如图5所示,本发明实施例提供的一种多核系统的核间通信装置400,所述多核系统包括N个内核,每个所述内核对应有一个队列池,且每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,每个所述队列对应有唯一可执行入队操作的内核,每个内核对应至少一个可执行入队操作的队列,其中,N不小于2;所述装置400包括:第一数据入队单元410、第一数据出队单元420、第二数据入队单元430以及第二数据出队单元440。
其中,第一数据入队单元410,用于当所述第一内核向第二内核发送第一数据时,将所述第一数据入队到,与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;
第一数据出队单元420,用于在所述第二内核对应的队列池进行出队操作,读取出所述第一数据。
所述第一数据出队单元420,具体用于轮询对应的队列池内的每一个队列,从所述第一数据入队的队列中,读取出所述第一数据。
作为一种方式,第一数据出队单元420,包括:队列检测单元421,用于检测所述第二内核对应的队列池内的每一个队列的头指针和尾指针是否相等;数据读出单元422,用于从所述头指针和所述尾指针不相同的队列中读取出所述第一数据。
第二数据入队单元430,用于当所述第二内核向所述第一内核发送第二数据时,将所述第二数据入队到,与所述第一内核对应的队列池中所述第二内核可执行入队操作的队列中;
第二数据出队单元440,用于在所述第一内核在对应的队列池进行出队操作,读取出所述第二数据。
需要说明的是,在每个内核对应的队列池中,用于其他某一个内核进行入队操作的队列可以为一个,即每个队列对应的执行入队操作的内核均不相同。当然队列池中,用于其他某一个内核进行入队操作的队列可以为一个。具体的数量,可以根据每个内核负责处理的数据类型以及数据量来设定。
需要说明的是,本实施例中的各单元可以是由软件代码实现,此时,上述的各单元可存储于网络设备100的存储器101内。以上各单元同样可以由硬件例如集成电路芯片实现。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
综上所述,本发明实施例提供的多核系统的核间通信方法及装置,通过给多核系统中每个内核分配一个对应的队列池,且每个所述内核仅能在对应的队列池中进行出队操作,而每个所述队列分配唯一可执行入队操作的内核的方式,使得多个内核中的第一内核向第二内核发送数据时,只会在第二内核对应的队列池中用于第一内核用于入队操作的队列中进行入队操作,而有其他内核同时向第二内核发送数据时,其他内核只会在第二内核对应的队列池中用于该内核用于入队操作的队列中进行入队操作,而第二内核也只会在对应的队列池中进行出队操作,单个队列的入队操作和出队操作都只有一个内核参与,进而队列不再需要锁保护,使得多个内核进行入队操作或者出队操作时,不再需要锁进行互斥,进而实现了无锁的多入多出队列,提升了多核系统利用队列进行数据传输的效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种多核系统的核间通信方法,其特征在于,所述多核系统包括多个内核,每个所述内核对应有一个队列池,且每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,每个所述队列对应有唯一可对其执行入队操作的内核,每个内核对应至少一个可供其执行入队操作的队列,其中,所述多个内核至少包括第一内核和第二内核;所述方法包括:
所述第一内核向所述第二内核发送第一数据时,所述第一内核将所述第一数据入队到与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;
所述第二内核在对应的队列池进行出队操作,读取出所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第二内核向所述第一内核发送第二数据时,所述第二内核将所述第二数据入队到,与所述第一内核对应的队列池中所述第二内核可执行入队操作的队列中;
所述第一内核在对应的队列池进行出队操作,读取出所述第二数据。
3.根据权利要求1所述的方法,其特征在于,所述第二内核在对应的队列池进行出队操作,读取出所述第一数据,包括:
所述第二内核轮询对应的队列池内的每一个队列,从所述第一数据入队的队列中,读取出所述第一数据。
4.根据权利要求3所述的方法,其特征在于,所述第二内核轮询对应的队列池内的每一个队列,从所述第一数据入队的队列中,读取出所述第一数据,包括:
所述第二内核依次判断对应的队列池内的每一个队列的头指针和尾指针是否相等;
从所述头指针和所述尾指针不相同的队列中读取出所述第一数据。
5.根据权利要求1所述的方法,其特征在于,每个所述队列对应的可对其执行入队操作的内核均不相同。
6.一种多核系统的核间通信装置,其特征在于,所述多核系统包括多个内核,每个所述内核对应有一个队列池,且每个所述内核仅能在对应的队列池中进行出队操作,所述队列池包括多个队列,每个所述队列对应有唯一可对其执行入队操作的内核,每个内核对应至少一个可供其执行入队操作的队列,其中,所述多个内核至少包括第一内核和第二内核;所述装置包括:
第一数据入队单元,用于当所述第一内核向第二内核发送第一数据时,将所述第一数据入队到与所述第二内核对应的队列池中所述第一内核可执行入队操作的队列中;
第一数据出队单元,用于在所述第二内核对应的队列池进行出队操作,读取出所述第一数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二数据入队单元,用于当所述第二内核向所述第一内核发送第二数据时,将所述第二数据入队到与所述第一内核对应的队列池中所述第二内核可执行入队操作的队列中;
第二数据出队单元,用于在所述第一内核在对应的队列池进行出队操作,读取出所述第二数据。
8.根据权利要求6所述的装置,其特征在于,所述第一数据出队单元,具体用于轮询对应的队列池内的每一个队列,从所述第一数据入队的队列中,读取出所述第一数据。
9.根据权利要求8所述的装置,其特征在于,所述第一数据出队单元,包括:
队列检测单元,用于检测所述第二内核对应的队列池内的每一个队列的头指针和尾指针是否相等;
数据读出单元,用于从所述头指针和所述尾指针不相同的队列中读取出所述第一数据。
10.根据权利要求6所述的装置,其特征在于,每个所述队列对应的可对其执行入队操作的内核均不相同。
CN201610795939.0A 2016-08-31 2016-08-31 多核系统的核间通信方法及装置 Pending CN106371937A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610795939.0A CN106371937A (zh) 2016-08-31 2016-08-31 多核系统的核间通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610795939.0A CN106371937A (zh) 2016-08-31 2016-08-31 多核系统的核间通信方法及装置

Publications (1)

Publication Number Publication Date
CN106371937A true CN106371937A (zh) 2017-02-01

Family

ID=57900340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610795939.0A Pending CN106371937A (zh) 2016-08-31 2016-08-31 多核系统的核间通信方法及装置

Country Status (1)

Country Link
CN (1) CN106371937A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542832A (zh) * 2018-11-30 2019-03-29 青岛方寸微电子科技有限公司 一种无锁机制的异构多核cpu间通信系统及方法
CN109600321A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN110764924A (zh) * 2018-07-27 2020-02-07 普天信息技术有限公司 一种多核处理器的核间通信方法及装置
CN111782419A (zh) * 2020-06-23 2020-10-16 北京青云科技股份有限公司 一种缓存更新方法、装置、设备及存储介质
CN115599459A (zh) * 2022-12-13 2023-01-13 成都启英泰伦科技有限公司(Cn) 一种跨电源域多处理器运行装置及其通信方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013383A (zh) * 2007-02-13 2007-08-08 杭州华为三康技术有限公司 实现多核cpu进行报文联合处理的系统及方法
CN101266561A (zh) * 2008-04-29 2008-09-17 中兴通讯股份有限公司 一种在多核多线程处理器中的核间消息通信方法
CN101631139A (zh) * 2009-05-19 2010-01-20 华耀环宇科技(北京)有限公司 基于多核平台的负载均衡软件架构及方法
CN103338157A (zh) * 2013-07-01 2013-10-02 杭州华三通信技术有限公司 一种多核系统核间数据报文缓存方法及设备
CN103530130A (zh) * 2013-10-28 2014-01-22 迈普通信技术股份有限公司 实现多入多出队列的方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013383A (zh) * 2007-02-13 2007-08-08 杭州华为三康技术有限公司 实现多核cpu进行报文联合处理的系统及方法
CN101266561A (zh) * 2008-04-29 2008-09-17 中兴通讯股份有限公司 一种在多核多线程处理器中的核间消息通信方法
CN101631139A (zh) * 2009-05-19 2010-01-20 华耀环宇科技(北京)有限公司 基于多核平台的负载均衡软件架构及方法
CN103338157A (zh) * 2013-07-01 2013-10-02 杭州华三通信技术有限公司 一种多核系统核间数据报文缓存方法及设备
CN103530130A (zh) * 2013-10-28 2014-01-22 迈普通信技术股份有限公司 实现多入多出队列的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《多任务下的数据结构与算法》: "《多任务下的数据结构与算法》", 30 April 2006 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600321A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN110764924A (zh) * 2018-07-27 2020-02-07 普天信息技术有限公司 一种多核处理器的核间通信方法及装置
CN109542832A (zh) * 2018-11-30 2019-03-29 青岛方寸微电子科技有限公司 一种无锁机制的异构多核cpu间通信系统及方法
CN111782419A (zh) * 2020-06-23 2020-10-16 北京青云科技股份有限公司 一种缓存更新方法、装置、设备及存储介质
CN111782419B (zh) * 2020-06-23 2023-11-14 北京青云科技股份有限公司 一种缓存更新方法、装置、设备及存储介质
CN115599459A (zh) * 2022-12-13 2023-01-13 成都启英泰伦科技有限公司(Cn) 一种跨电源域多处理器运行装置及其通信方法
US11921563B1 (en) 2022-12-13 2024-03-05 Chipintelli Technology Co., Ltd Operating device of cross-power domain multiprocessor and communication method thereof

Similar Documents

Publication Publication Date Title
CN106371937A (zh) 多核系统的核间通信方法及装置
US11063835B2 (en) IoT cloud to cloud architecture
CN104572122B (zh) 一种软件应用数据的生成装置及方法
CN107493310A (zh) 一种云资源处理方法及云管理平台
CN100565487C (zh) 仲裁器、交叉开关、请求选择方法以及信息处理设备
CN110231995B (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
CN109906594B (zh) 用于IoT设备认证的装置、方法和处理器可读存储介质
CN106371918A (zh) 任务集群调度管理方法及装置
CN105009089B (zh) 用于促进对指令违反行为的管理的设备和方法
EP3698533A1 (en) Single sign-in for iot devices
CN103309620B (zh) 用于多存储子系统虚拟化的管理接口
CN105117170A (zh) 一种计算机系统架构
CN104424122B (zh) 一种电子设备及内存划分方法
CN108572970A (zh) 一种结构化数据的处理方法和分布式处理系统
CN109656706A (zh) 分布式任务调度方法、系统、设备以及介质
CN109522986A (zh) 一种基于微信小程序的图书管理系统
CN110190887A (zh) 地面站、无人机数据传输系统和方法以及存储介质
CN102402436B (zh) 一种网页游戏引擎及应用其开发网页游戏的方法
CN107247763A (zh) 业务数据统计方法、装置、系统、存储介质及电子设备
CN108665272A (zh) 区块链数据处理方法、装置、设备和存储介质
CN107391295A (zh) 应用程序异常的处理方法及装置
CN114090479A (zh) 访问报告系统、方法、装置、芯片及电子设备
CN112204554A (zh) 看门狗定时器层次结构
CN103810440B (zh) 存取系统及方法
CN110046201A (zh) 用于处理业务交易的总账科目数据的方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170201

RJ01 Rejection of invention patent application after publication