CN100451975C - 实现多核cpu进行报文联合处理的系统及方法 - Google Patents

实现多核cpu进行报文联合处理的系统及方法 Download PDF

Info

Publication number
CN100451975C
CN100451975C CNB200710063853XA CN200710063853A CN100451975C CN 100451975 C CN100451975 C CN 100451975C CN B200710063853X A CNB200710063853X A CN B200710063853XA CN 200710063853 A CN200710063853 A CN 200710063853A CN 100451975 C CN100451975 C CN 100451975C
Authority
CN
China
Prior art keywords
message
cpu
queue
shared
nuclear
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
CNB200710063853XA
Other languages
English (en)
Other versions
CN101013383A (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.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CNB200710063853XA priority Critical patent/CN100451975C/zh
Publication of CN101013383A publication Critical patent/CN101013383A/zh
Application granted granted Critical
Publication of CN100451975C publication Critical patent/CN100451975C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种实现多核CPU进行报文联合处理的系统,包括多核CPU以及多个共享队列区,任一共享队列区与确定的两个CPU核连接,用于为所述两个CPU核提供共享报文队列:由共享队列区的报文发送CPU核写入该CPU核处理后的报文信息,共享队列区的报文接收CPU核根据写入顺序提取报文信息并进行处理。本发明还公开了一种实现多核CPU进行报文联合处理的方法,报文发送CPU核向共享队列区写入该CPU核处理后的报文信息,报文接收CPU核根据写入顺序提取报文信息并进行处理。通过本发明,避免了中断开销;不再局限于CPU核的硬件空间限制,提高了队列设计的灵活性,提高了吞吐量。

Description

实现多核CPU进行报文联合处理的系统及方法
技术领域
本发明涉及通信技术领域,特别是一种在通信数据处理设备中,实现多核CPU进行报文联合处理的系统及方法。
背景技术
由于多核CPU的每一个内核都能够运行独立的任务,提高处理的吞吐量和处理效率,因此日益广泛的应用于通信数据处理设备中。目前通信数据处理设备中多核CPU的工作方式有两种,包括流水线方式和并行方式对报文进行处理。对于流水线方式而言,每个CPU核完成报文处理的一部分,并在该部分处理完成后,将报文的控制权移交给下一个CPU核来继续处理,实现多核CPU对报文的联合处理,如图1所示,一个任务(Task)被分解为多段。
而对于并行方式来说,每个CPU可独立完成报文的全部处理,如图2所示,每个CPU完成一个Task的处理。
在流水线方式中,实行报文控制权转移主要有中断方式和轮询方式。
中断方式是指当前一个CPU核(称为第一CPU核)处理完报文后,向下一个CPU核(称为第二CPU核)发送一个处理器间中断(Inter-processorInterrupt,简称IPI),第二CPU核根据IPI信号接收要处理的报文。在这种方式下,增加了第二CPU核的中断开销,特别是在大流量的情况下,频繁的中断开销会严重影响系统的性能;同时,中断信号只能起到通知第二CPU核接收报文的作用,并不能在信号中携带报文地址和报文处理结果等信息,因此,两个CPU核必须通过其他方式传递信息从而进行报文处理,如进程通信(Inter-Process Communication,简称IPC)。
轮询方式是指在硬件上采用的是入队出队的方式,比如在某些CPU核中,采用如消息环方式等硬件通信方式在CPU之间传递信息,当第一CPU核处理完成后,将报文相关的信息组成硬件要求的消息格式发送给第二CPU核,使消息进入第二CPU核的硬件消息队列中,第二CPU核通过读取相应的消息队列获取需要处理的报文。在这种方式下,消息格式受到硬件的限制,无法满足软件更新变化的要求;同时,硬件队列长度是固定的,当进入的消息达到硬件队列最大长度时,后续的消息将无法继续进入,导致报文处理失败。
可见,多核CPU在流水线方式下实现报文联合处理的现有技术方案都存在着不同的缺陷,如果能够提供一种即不受限于硬件,且能够避免中断带来的额外开销的灵活报文处理方案,将有助于提高报文处理的效率和成功率。
发明内容
本发明的目的是提供一种实现多核CPU进行报文联合处理的系统及方法,解决现有技术中多核CPU进行报文联合处理时存在的中断开销或者受到硬件限制的问题。
为实现上述目的,本发明的实施例提供了一种实现多核CPU进行报文联合处理的系统,包括多核CPU,还包括:
至少一个共享队列区,任一所述共享队列区与顺序进行报文处理的两个CPU核连接,用于为所述两个CPU核提供共享报文队列:由所述共享队列区的报文发送CPU核写入该CPU核处理后的报文信息,所述共享队列区的报文接收CPU核根据写入顺序提取所述报文信息并进行处理;
每一CPU核连接有一共享队列控制单元,所述共享队列控制单元包括队列状态识别模块,用于识别所述CPU核作为报文发送CPU核所对应的共享队列区的状态,还包括与队列状态识别模块连接的队列状态控制模块,用于相应控制所述CPU核以及所述CPU核作为报文接收CPU核所对应的共享队列区。
本发明的实施例还提供了一种实现多核CPU进行报文联合处理的方法,包括以下步骤:
报文发送CPU核识别共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列;所述报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息,报文接收CPU核根据写入顺序提取所述报文信息并进行处理;所述共享报文队列为所述报文发送CPU核和所述报文接收CPU核共享的报文队列。
由上述技术方案可知,本发明的实施例通过在报文发送CPU核和报文接收CPU核间设置共享队列区,采用队列轮询的方式,具有以下有益效果:
1、避免了中断开销,提高吞吐量;
2、共享队列区不再局限于CPU核的硬件空间限制,提高了队列设计的灵活性,并提高了吞吐量;
3、通过缓冲操作,进一步避免了对超出处理能力的报文的丢弃;
4、通过控制报文队列长度,进一步实现了报文吞吐量和时延之间的平衡。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有技术中多核CPU流水线工作方式下处理报文的示意图;
图2为现有技术中多核CPU并行方式下处理报文的示意图;
图3为本发明所提供的实现多核CPU进行报文联合处理的系统实施例1的框图;
图4为本发明所提供的实现多核CPU进行报文联合处理的系统实施例2的框图;
图5为本发明所提供的实现多核CPU进行报文联合处理的系统实施例3的框图;
图6为本发明所提供的实现多核CPU进行报文联合处理的方法实施例1的流程图;
图7为图6所示方法中,报文发送CPU核识别、控制共享队列区状态的一个实施例的流程图;
图8为图6所示方法中,报文发送CPU核识别、控制共享队列区状态的一个实施例的流程图;
图9为本发明所提供的实现多核CPU进行报文联合处理的方法实施例2的流程图。
具体实施方式
为了克服现有实现多核CPU进行报文联合处理技术中,中断方式或者轮询方式所导致的各种缺陷,本发明的实施例提供了一种实现多核CPU进行报文联合处理的系统和方法,下面分别加以说明。
参见图3,为本发明所提供的实现多核CPU进行报文联合处理的系统实施例1,包括用于报文联合处理的多核CPU,这里分别表述为CPU核A1,A2......A(n-1)和An,其中n≥2;还包括多个共享队列区,任一共享队列区与两个CPU核连接,因此共享队列区根据所连接的CPU核的不同,可以表示为B12,......,B1n,B2n......B(n-1)n。一般来说,在流水线方式下,每个CPU核负责处理报文的一部分,而且该处理具有一定的顺序,在本实施例中,是由A1、A2......An依次进行报文处理,因此,所包括的共享队列区为与顺序进行报文处理的两个CPU核A1、A2连接的共享队列区B12,与顺序进行报文处理的两个CPU核A2、A3连接的共享队列区B23......与顺序进行报文处理的两个CPU核A(n-1)、An连接的共享队列区B(n-1)n。可以看出,这种顺序可以根据实际需要灵活设置,比如按照A2、A1的顺序进行报文处理,则共享队列区为B21,并不影响本发明的技术方案。
在本实施例中,对于共享队列区B12而言,CPU核A1是其报文发送CPU核,CPU核A2是其报文接收CPU核;而对于共享队列区B23,CPU核A2是其报文发送CPU核,CPU核A3是其报文接收CPU核。可见,任何一个CPU核当其不是源CPU核和终CPU核时,都同时兼具报文发送、接收两种身份,分别对应着不同的共享队列区,比如CPU核A2同时对应着共享队列区B12和B23。
任何一个共享队列区都同时对应着两个CPU核,为这两个CPU核提供共享报文队列,由所述共享队列区的报文发送CPU核写入该CPU核处理后的报文信息,所述共享队列区的报文接收CPU核根据写入顺序提取所述报文信息并进行处理。比如,在本实施例中,共享队列区B12对应着CPU核A1和A2,由CPU核A1写入其处理后的报文信息,由CPU核A2根据写入顺序提取所述报文信息并进行处理。
在通信设备中进行报文处理,其所利用的CPU核以及各个CPU核的处理关系对本领域技术人员而言是明确并可以加以设置的,因此,管理人员可以启用或者设置相应的共享队列区。
通过本实施例1所提供的技术方案,顺序进行报文处理的两个CPU核共同维护一个双方都可以访问的报文接收队列,则前一CPU核处理完成后,无需发出中断信号,减少了因中断而产生的开销。同时,共同维护的报文接收队列是一种软件队列方式,可以在内存中或者其他存储器中根据需要设置或者指定,与传统的CPU核硬件队列相比,设计上具有相当大的灵活性;进一步的,基于软件的队列不再受到CPU核硬件空间的限制,可以进行调整;而且,在采用流水线方式的报文处理中,由于每个CPU完成报文处理的不同部分,每个报文在不同CPU上的处理时间可能不相同,所以采用队列方式进行报文的传递,除了可以降低报文传递的开销之外,还可以吸收短暂的突发流量,解决两个CPU在报文处理速度上的差异,提高设备的吞吐量。
为了对所述共享报文队列状态进行控制,较佳的技术方案是每一CPU核还连接有一共享队列控制单元,所述共享队列控制单元包括队列状态识别模块,用于识别所述CPU核作为报文发送CPU核所对应的共享队列区的状态,还包括与队列状态识别模块连接的队列状态控制模块,用于相应控制所述CPU核作为报文接收CPU核所对应的共享队列区。参见图4,为本发明所提供的实现多核CPU进行报文联合处理的系统实施例2,包括用于报文联合处理的多核CPU,具体为CPU核A1、A2和A3,按照A1-A2-A3的顺序分别处理报文的一部分。还包括共享队列区B12、B23,共享队列区B12与CPU核A1、A2连接,为CPU核A1、A2提供共享报文队列;共享队列区B23与CPU核A2、A3连接,为CPU核A2、A3提供共享报文队列。
在本实施例中,每一CPU核A1、A2和A3还分别连接有一共享队列控制单元C1、C2和C3,每一共享队列控制单元包括队列状态识别模块,用于识别所述CPU核作为报文发送CPU核所对应的共享队列区的状态,还包括与队列状态识别模块连接的队列状态控制模块,用于相应控制所述CPU核以及所述CPU核作为报文接收CPU核所对应的共享队列区。以共享队列控制单元C1为例,包括队列状态识别模块C11和队列状态控制模块C12,由于在本实施例中CPU核A1是第一个对报文进行处理的CPU核,不存在作为报文接收CPU核的情况,因此队列状态控制模块C12仅对所述CPU核A1进行相应控制;对于共享队列控制单元C2,则需要同时控制CPU核A2以及共享队列区B12;对于共享队列控制单元C3,由于在本实施例中CPU核A3是最后一个对报文进行处理的CPU核,不存在作为报文发送CPU核的情况,因此不会起到控制作用。
在本实施例中,共享队列控制单元C1、C2和C3与CPU核可以为内部连接,即通过软件方式设置在CPU核的内部,也可以为外部连接,即增加与CPU核连接的功能块;无论采取哪一种连接方式,都并不影响本发明的技术方案。如本实施例所示,就为外部连接的情况。
对CPU核以及CPU核作为报文接收CPU核所对应的共享队列区的控制可以包括很多方式,本发明提供了以下几种处理方案,但本领域技术人员应当了解,所例举的处理方案并非对本发明技术方案的限制:
所述队列状态控制模块可以包括一缓冲模块,用于在所述CPU核作为报文发送CPU核所对应的共享队列区已满的情况下,指令所述CPU核不再发送处理后的报文信息,并指令所述CPU核对其作为报文接收CPU核所对应的共享队列区缓冲处理后的报文信息。通过缓冲模块,可以避免所述共享报文队列已满所导致的后续报文丢弃,也避免了继续发送导致的网络拥堵。
所述队列状态控制模块可以包括一队列调整模块,用于根据所述CPU核作为报文发送CPU核所对应的共享队列区的状态,调整所述CPU核作为报文接收CPU核所对应的共享队列区的长度。通过队列调整模块,实现了在所述共享报文队列已满之前就加以控制,而不是消极等待队列全满时才被动的进行控制。同时,有效的控制报文的队列长度,能够克服较长队列缓冲所带来的时间延迟,从而在高吞吐量和低时延之间进行合理的平衡。
所述队列状态控制模块包括一置位模块,用于在所述CPU核作为某一共享队列区的报文发送CPU核且所述共享队列区已满的情况下,标识所述CPU核作为报文接收CPU核所对应的共享队列区为满。通过置位模块,实现了逐层连续反映,在任意共享报文队列已满时,源头CPU核就可以获知并进行控制。
参见图5,为本发明所提供的实现多核CPU进行报文联合处理的系统实施例3,包括用于报文联合处理的多核CPU,具体为CPU核A1、A2和A3,按照A1-A2-A3的顺序分别处理报文的一部分。还包括共享队列区B12、B23,共享队列区B12与CPU核A1、A2连接,为CPU核A1、A2提供共享报文队列;共享队列区B23与CPU核A2、A3连接,为CPU核A2、A3提供共享报文队列。每一CPU核A1、A2和A3还分别连接有一共享队列控制单元C1、C2和C3。
在本实施例中,任一共享队列控制单元包括队列状态识别模块,用于识别所述CPU核作为报文发送CPU核所对应的共享队列区的状态,还包括与队列状态识别模块连接的队列状态控制模块,用于相应控制所述CPU核以及所述CPU核作为报文接收CPU核所对应的共享队列区。而对于任一队列状态控制模块,又分别包括缓冲模块、队列调整模块和置位模块。具体的,共享队列控制单元C1包括队列状态识别模块C11和与之连接的队列状态控制模块C12,队列状态控制模块C12中包括缓冲模块C121、队列调整模块C122和置位模块C123;共享队列控制单元C2包括队列状态识别模块C21和与之连接的队列状态控制模块C22,队列状态控制模块C22中包括缓冲模块C221、队列调整模块C222和置位模块C223;共享队列控制单元C3包括队列状态识别模块C31和与之连接的队列状态控制模块C32,队列状态控制模块C32中包括缓冲模块C321、队列调整模块C322和置位模块C323。
显然,实施例3所提供的技术方案,不仅能够减少中断产生的开销,提高队列设计的灵活性和吞吐量,同时能够避免队列已满时后续报文的丢弃,以及通过主动队列控制的方式,实现队列拥塞的控制,在吞吐量和时延之间达到平衡。
本发明还提供了一种实现多核CPU进行报文联合处理的方法,包括报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息,报文接收CPU核根据写入顺序提取所述报文信息并进行处理;所述共享报文队列为所述报文发送CPU核和所述报文接收CPU核共享的报文队列。
可以看出,维护一个报文发送CPU核和报文接收CPU核都可以访问的报文接收队列进行报文处理,无需发出中断信号,减少了因中断而产生的开销;同时,共同维护的报文接收队列是一种软件队列方式,可以在内存中或者其他存储器中根据需要设置或者指定,与传统的CPU核硬件队列相比,设计上具有相当大的灵活性;进一步的,基于软件的队列不再受到CPU核硬件空间的限制,可以进行调整;而且,在采用流水线方式的报文处理中,由于每个CPU完成报文处理的不同部分,每个报文在不同CPU上的处理时间可能不相同,所以采用队列方式进行报文的传递,除了可以降低报文传递的开销之外,还可以吸收短暂的突发流量,解决两个CPU在报文处理速度上的差异,提高设备的吞吐量。
为了对所述共享报文队列状态进行控制,所述报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息之前,还包括所述报文发送CPU核识别所述共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列的步骤。
报文接收CPU核根据写入顺序提取所述报文信息可以包括:报文接收CPU核查询所述共享报文队列是否为空,是则循环执行查询操作,否则按照入队顺序提取所述报文信息。这相当于采用了轮询处理的框架,无需中断。
参见图6,为本发明所提供方法的实施例1,包括以下步骤:
步骤1、报文发送CPU核处理报文信息;
在本步骤中,报文发送CPU在完成自身对报文的处理之后,将报文信息封装成预设的消息结构,以保证下一CPU核能够识别,例如:
struct pkt_message
{
   ulong*packet;
   ulong*pretreat;
   ulong*parameter;
}
步骤2、报文发送CPU核识别所述共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列;
步骤3、报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息;
步骤4、报文接收CPU核查询所述共享报文队列是否为空,是则重新执行步骤4,否则执行步骤5;
步骤5、报文接收CPU核按照入队顺序提取所述报文信息。
在本实施例1中,步骤2可以采用如下两种方式进行处理:
参见图7,为步骤2一个实施例的流程图,具体为:
步骤201、报文发送CPU核识别所述共享报文队列是否已满,是则执行步骤202;否则直接执行步骤3;
步骤202、对所述处理后的报文信息进行缓冲;
步骤203、查询所述共享报文队列状态是否变更,是则对所缓冲的报文执行步骤3,否则重新执行步骤203。
由于报文发送CPU可以根据报文接收队列的长度和缓冲的报文个数判断报文接收CPU核可能发送的拥塞,所以可以不是等队列全满、丢弃到来时进行被动的控制,而是利用队列负荷门限判定机制,通过主动队列控制判断下游CPU的负载并采用相应的动作来预防可能发生的拥塞。参见图8,为步骤2另一个实施例的流程图,具体为:
步骤211、报文发送CPU核识别所述共享报文队列长度1,小于预设的最小门限值1min时表明无拥塞发生,执行步骤3;大于预设的最小门限值1min且小于预设的最大门限值1max时,执行步骤212,大于预设的最大门限值1max时,执行步骤213;
步骤212、缩短所述CPU核作为报文接收CPU核所对应的共享报文队列的长度,并执行步骤3;之所以要减少作为报文接收CPU核所对应的共享报文队列的长度,是为了对源CPU核的拥塞策略产生影响;
步骤213、表明所述共享报文队列已满,对所述处理后的报文信息进行缓冲,以通过缓冲来避免网络拥塞;
步骤214、查询所述共享报文队列状态是否变更,是则对所缓冲的报文执行步骤3,否则重新执行步骤214。
在共享报文队列已满的情况下,还可以包括标识所述CPU核作为报文接收CPU核所对应的共享报文队列为满的步骤,从而顺序实现对源CPU的通知。
参见图9,为为本发明所提供方法的实施例2,包括以下步骤:
步骤21、报文发送CPU核处理报文信息;
步骤22、报文发送CPU核识别所述共享报文队列长度1,小于预设的最小门限值1min时表明无拥塞发生,执行步骤27;大于预设的最小门限值1min且小于预设的最大门限值1max时,执行步骤23,大于预设的最大门限值1max时,执行步骤24;
步骤23、缩短所述CPU核作为报文接收CPU核所对应的共享报文队列的长度,并执行步骤27;
步骤24、表明所述共享报文队列已满,对所述处理后的报文信息进行缓冲;
步骤25、标识所述CPU核作为报文接收CPU核所对应的共享报文队列为满;
步骤26、查询所述共享报文队列状态是否变更,是则对所缓冲的报文执行步骤27,否则重新执行步骤26;
步骤27、报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息;
步骤28、报文接收CPU核查询所述共享报文队列是否为空,是则重新执行步骤28,否则执行步骤29;
步骤29、按照入队顺序提取所述报文信息。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。

Claims (10)

1、一种实现多核CPU进行报文联合处理的系统,包括用于报文联合处理的多核CPU,其特征在于还包括:
至少一个共享队列区,任一所述共享队列区与顺序进行报文处理的两个CPU核连接,用于为所述两个CPU核提供共享报文队列:由所述共享队列区的报文发送CPU核写入该CPU核处理后的报文信息,所述共享队列区的报文接收CPU核根据写入顺序提取所述报文信息并进行处理;
每一CPU核连接有一共享队列控制单元,所述共享队列控制单元包括队列状态识别模块,用于识别所述CPU核作为报文发送CPU核所对应的共享队列区的状态,还包括与队列状态识别模块连接的队列状态控制模块,用于相应控制所述CPU核以及所述CPU核作为报文接收CPU核所对应的共享队列区。
2、根据权利要求1所述的系统,其特征在于所述队列状态控制模块包括一缓冲模块,用于在所述CPU核作为报文发送CPU核所对应的共享队列区已满的情况下,指令所述CPU核不再发送处理后的报文信息,并指令所述CPU核对其作为报文接收CPU核所对应的共享队列区缓冲处理后的报文信息。
3、根据权利要求1所述的系统,其特征在于所述队列状态控制模块包括一队列调整模块,用于根据所述CPU核作为报文发送CPU核所对应的共享队列区的状态,调整所述CPU核作为报文接收CPU核所对应的共享队列区的长度。
4、根据权利要求1所述的系统,其特征在于所述队列状态控制模块包括一置位模块,用于在所述CPU核作为某一共享队列区的报文发送CPU核且所述共享队列区已满的情况下,标识所述CPU核作为报文接收CPU核所对应的共享队列区为满。
5、根据权利要求2-4任一所述的系统,其特征在于共享队列控制单元与所述CPU核为内部连接或者外部连接,所述内部连接为该共享队列控制单元通过软件方式设置在所述CPU核内部达到与所述CPU核连接;该外部连接为所述共享队列控制单元设置在所述CPU核外部通过功能块与所述CPU核连接。
6、一种实现多核CPU进行报文联合处理的方法,其特征在于包括以下步骤:
报文发送CPU核识别共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列;所述报文发送CPU核向共享报文队列写入该CPU核处理后的报文信息,报文接收CPU核根据写入顺序提取所述报文信息并进行处理;所述共享报文队列为所述报文发送CPU核和所述报文接收CPU核共享的报文队列。
7、根据权利要求6所述的方法,其特征在于报文发送CPU核识别所述共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列具体为:报文发送CPU核识别所述共享报文队列是否已满,是则对所述处理后的报文信息进行缓冲,直至所述共享报文队列状态变更;否则直接写入该CPU核处理后的报文信息。
8、根据权利要求6所述的方法,其特征在于报文发送CPU核识别所述共享报文队列状态,并相应控制所述CPU核作为报文接收CPU核所对应的共享报文队列具体为:
当所述共享报文队列长度小于预设的最小门限值时,直接写入该CPU核处理后的报文信息;
当所述共享报文队列长度大于预设的最小门限值且小于预设的最大门限值时,直接写入该CPU核处理后的报文信息,同时缩短所述CPU核作为报文接收CPU核所对应的共享报文队列的长度;
当所述共享报文队列长度大于预设的最大门限值时,所述共享报文队列已满,则对所述处理后的报文信息进行缓冲,直至所述共享报文队列状态变更。
9、根据权利要求7或8所述的方法,其特征在于当所述报文发送CPU核识别所述共享报文队列已满时,还包括标识所述CPU核作为报文接收CPU核所对应的共享报文队列为满的步骤。
10、根据权利要求6所述的方法,其特征在于报文接收CPU核根据写入顺序提取所述报文信息包括:
报文接收CPU核查询所述共享报文队列是否为空,是则循环执行查询操作,否则按照入队顺序提取所述报文信息。
CNB200710063853XA 2007-02-13 2007-02-13 实现多核cpu进行报文联合处理的系统及方法 Active CN100451975C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200710063853XA CN100451975C (zh) 2007-02-13 2007-02-13 实现多核cpu进行报文联合处理的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200710063853XA CN100451975C (zh) 2007-02-13 2007-02-13 实现多核cpu进行报文联合处理的系统及方法

Publications (2)

Publication Number Publication Date
CN101013383A CN101013383A (zh) 2007-08-08
CN100451975C true CN100451975C (zh) 2009-01-14

Family

ID=38700915

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710063853XA Active CN100451975C (zh) 2007-02-13 2007-02-13 实现多核cpu进行报文联合处理的系统及方法

Country Status (1)

Country Link
CN (1) CN100451975C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442513B (zh) * 2007-11-20 2012-05-23 杭州华三通信技术有限公司 实现多种业务处理功能的方法和多核处理器设备
US8417848B2 (en) 2007-11-20 2013-04-09 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for implementing multiple service processing functions
CN102055649B (zh) * 2009-10-29 2012-11-21 成都市华为赛门铁克科技有限公司 多核系统的报文处理方法、装置及系统
CN102480430B (zh) * 2010-11-24 2014-07-09 迈普通信技术股份有限公司 实现报文保序的方法和装置
CN102185770A (zh) * 2011-05-05 2011-09-14 汉柏科技有限公司 基于多核架构的批量式报文收发方法
CN103166873B (zh) * 2011-12-12 2018-02-27 中兴通讯股份有限公司 核间通信的方法及核处理器
CN104821924B (zh) * 2014-01-30 2018-11-27 西门子公司 一种网络数据包处理方法、装置和网络处理设备
US10037301B2 (en) * 2015-03-04 2018-07-31 Xilinx, Inc. Circuits and methods for inter-processor communication
CN106371937A (zh) * 2016-08-31 2017-02-01 迈普通信技术股份有限公司 多核系统的核间通信方法及装置
CN106713185B (zh) * 2016-12-06 2019-09-13 瑞斯康达科技发展股份有限公司 一种多核cpu的负载均衡方法及装置
CN107590100B (zh) * 2017-09-06 2020-06-19 北京航天发射技术研究所 一种多核处理器的核间数据交互方法
CN107454016A (zh) * 2017-09-29 2017-12-08 湖南恒茂高科股份有限公司 报文处理装置及方法
CN110119304B (zh) * 2018-02-07 2021-08-31 华为技术有限公司 一种中断处理方法、装置及服务器
CN109656705A (zh) * 2018-12-21 2019-04-19 北京天融信网络安全技术有限公司 一种数据处理的方法和装置
CN111083075B (zh) * 2019-12-20 2022-01-11 苏州盛科通信股份有限公司 多核SoC处理报文的方法及应用其的SoC

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US6934815B2 (en) * 2000-08-01 2005-08-23 Fujitsu Limited Method and apparatus used for data communication between processors, and data processing apparatus
US7035908B1 (en) * 2001-07-26 2006-04-25 Lsi Logic Corporation Method for multiprocessor communication within a shared memory architecture
CN1904873A (zh) * 2005-07-28 2007-01-31 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131113A (en) * 1998-02-24 2000-10-10 International Business Machines Corporation Managing a shared resource in a multi-processor system
US6934815B2 (en) * 2000-08-01 2005-08-23 Fujitsu Limited Method and apparatus used for data communication between processors, and data processing apparatus
US7035908B1 (en) * 2001-07-26 2006-04-25 Lsi Logic Corporation Method for multiprocessor communication within a shared memory architecture
CN1904873A (zh) * 2005-07-28 2007-01-31 大唐移动通信设备有限公司 嵌入式实时操作系统中多核处理器的核间通信方法及装置

Also Published As

Publication number Publication date
CN101013383A (zh) 2007-08-08

Similar Documents

Publication Publication Date Title
CN100451975C (zh) 实现多核cpu进行报文联合处理的系统及方法
US6032205A (en) Crossbar switch system for always transferring normal messages and selectively transferring broadcast messages from input buffer to output buffer when it has sufficient space respectively
US8102763B2 (en) Method, system and node for backpressure in multistage switching network
US5943479A (en) Method for reducing the rate of interrupts in a high speed I/O controller
US6877048B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US7480238B2 (en) Dynamic packet training
US6615282B1 (en) Adaptive messaging
US20130322243A1 (en) System for performing distributed data cut-through
WO2010007339A1 (en) Switching device
US8397003B2 (en) CPU connection circuit, data processing apparatus, arithmetic processing device, portable communication terminal using these modules and data transfer
US7554908B2 (en) Techniques to manage flow control
TW200415474A (en) Method and apparatus for intermediate buffer segmentation and reassembly
CN105337888B (zh) 基于多核转发的负载均衡方法、装置及虚拟交换机
US20040139239A1 (en) Bundle skew management and cell synchronization
JPWO2009144824A1 (ja) 情報処理装置、転送回路及び情報処理装置のエラー制御方法
US7853713B2 (en) Communication interface device and communication method
JP2000232470A (ja) スイッチングハブ
JPH09191321A (ja) 適応クレジット制御型転送方法
JPH07283817A (ja) Atm−lanノード間フロー制御方法
WO2018167838A1 (ja) 中継装置及びデータ転送方法
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
US20200379798A1 (en) Apparatus for transmitting packets using timer interrupt service routine
WO2023040412A1 (zh) 一种报文处理方法、网卡及服务器
JP2000222374A (ja) 負荷分散型パケット並列処理装置
JP2538901B2 (ja) バス結合装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou science and Technology Industrial Park, high tech Industrial Development Zone, Zhejiang, HUAWEI,, Hangzhou, No. six

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230609

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right