CN103338157A - 一种多核系统核间数据报文缓存方法及设备 - Google Patents

一种多核系统核间数据报文缓存方法及设备 Download PDF

Info

Publication number
CN103338157A
CN103338157A CN2013102751000A CN201310275100A CN103338157A CN 103338157 A CN103338157 A CN 103338157A CN 2013102751000 A CN2013102751000 A CN 2013102751000A CN 201310275100 A CN201310275100 A CN 201310275100A CN 103338157 A CN103338157 A CN 103338157A
Authority
CN
China
Prior art keywords
message
complete machine
buffer queue
buffer
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.)
Granted
Application number
CN2013102751000A
Other languages
English (en)
Other versions
CN103338157B (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 CN201310275100.0A priority Critical patent/CN103338157B/zh
Publication of CN103338157A publication Critical patent/CN103338157A/zh
Application granted granted Critical
Publication of CN103338157B publication Critical patent/CN103338157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种多核系统核间数据报文缓存方法及设备,该方法应用于可缓存M个报文、转发核数量为N的多核系统,每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,报文入队时,如果与所述报文对应的FIFO缓存队列当前缓存的报文数小于队列门限,则报文入队,所述FIFO缓存队列缓存报文数加1;否则进一步判断整机空闲缓存报文数S是否大于或等于转发核数量N,如果是,报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1,否则丢弃报文。应用本发明方案,能够有效提高多核系统的核间抗突发性能,有利于多核数据报文转发业务的推广应用。

Description

一种多核系统核间数据报文缓存方法及设备
技术领域
本发明涉及网络通信传输技术,特别是一种多核系统核间数据报文的缓存方法和设备。
背景技术
多核系统(处理器)是指在一枚处理器中集成两个以上完整的计算引擎(内核),使得多核处理器可在特定的时钟周期内执行更多任务。多核处理器处理报文时,根据所要处理的具体的业务,或者基于负载分担的考虑,都可能涉及到同一个报文在多个转发核之间的传递。这里的转发核,是指多核处理器中负责转发数据报文的各个内核,其可以按照异步对称多处理(ASMP,Asymmetric Symmetric Multiprocessing)方式进行工作。理论上讲,任意两个转发核之间都有相互传递报文的可能。整个多核系统中的报文传递路径抽象出来可以是一张全连通的图,如图1所示,以4个转发核的多核系统为例。
为了实现报文在多个转发核之间的传递,一般都采用队列的方法,用以缓存其他转发核发送来的报文,通过缓存报文的入队出队操作来实现报文在转发核间的传递。
对于任何一个多核系统而言,都不会允许报文在缓存队列中无限的缓存累积下去,因为这意味着对系统资源的持续消耗。一般都会定制一个整机缓存的上限,比如,整个多核系统的FIFO队列中缓存的报文数不能超过12K,超过12K就丢弃报文。
现有技术中处理这种多核系统核间报文缓存的方案为:每个转发核都设置有一个定长FIFO缓存队列用于接收其它转发核数据报文。任意其它转发核需要向这个转发核提交报文时,都把报文入队到这个定长FIFO缓存队列。这样,对于有N个转发核的多核系统,需要创建N个相同长度的FIFO缓存队列。每个队列可以缓存的报文数就是整机缓存门限M的1/N,所述整机缓存门限就是多核系统可缓存的报文数。以图2所示4个转发核、整机缓存门限为12K的多核系统为例:转发核1建立一个定长FIFO缓存队列用以缓存来自转发核2、转发核3和转发核4的报文,同样,转发核2、转发核3和转发核4也各自建立一个定长FIFO缓存队列,用以缓存来自其他三个转发核的报文(图中没有画出),则对于这个4个转发核的多核系统,共需要建立4个定长FIFO缓存队列,每个队列可以缓存的报文数为3K。
图2中转发核2、3、4都有可能向转发核1提交报文。因此,当它们向转发核1的缓存队列入队报文时,存在着竞争的关系,转发核1同一时间只能处理一个入队报文的入队操作,因此,转发核2、3、4报文入队的操作需要自旋锁的保护来保证报文入队的原子性。
当转发核的数目N增长时,一方面,这种报文入队的原子性操作所带来的效率上的损失也会增长;另一方面,每个缓存队列可以缓存的报文数会越来越少。这就会导致对任意两个转发核之间因为处理报文速率的不匹配而产生的报文突发的抗突发性能越差,越容易在核间被动丢弃报文从而影响整个多核系统的不丢包转发性能。
继续上面的举例,对于4个转发核的系统而言,每个队列的入队存在3个竞争者,每个队列可以缓存的报文数是3K;当变成32个转发核的系统时,每个队列的入队存在31个竞争者,每个队列可以缓存的报文数只有384个,核间的抗突发性能大幅降低了。现有技术方案导致的核间抗突发性能比较差,尤其在多核系统的转发核数量增大时,这种劣势更加明显。除此之外,上述方案不能实现对入队报文的过滤,即不能保证当某两个核间传递的报文不可避免的要丢弃时能优先缓存具有特定特征的高优先级报文。这两个缺陷不利于多核数据报文转发业务的推广应用。
发明内容
有鉴于此,本发明提供了一种多核系统核间数据报文缓存方法及设备,每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,并且将多核系统的FIFO缓存队列设计成一种可以动态调节队列长度的模式,从而提高多核系统中某一个或者某几个转发核的抗突发性能。本发明提出的技术方案是:
一种多核系统核间数据报文缓存方法,应用于可缓存M个报文、转发核数量为N的多核系统,其中N≥2,该方法包括以下步骤:
每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;
报文入队时,
如果与所述报文对应的FIFO缓存队列当前缓存的报文数小于队列门限,则所述报文入队,所述FIFO缓存队列缓存报文数加1;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S大于或等于转发核数量N,所述报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1,所述整机空闲缓存报文数S为整个多核系统剩余的空闲缓存空间;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S小于转发核数量N,丢弃报文。
上述方案中,所述队列门限为B,且B为一个正整数。
上述方案中,该方法进一步包括:
报文入队时,如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限B,且整机空闲缓存报文数S大于或等于转发核数量N,进一步判断整机空闲缓存报文数S是否大于整机拥塞门限C,如果是,报文入队;否则高优先级报文入队,低优先级报文丢弃,所述整机拥塞门限C为正整数,且N≤C<M;
报文入队后,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1。
上述方案中,所述高优先级报文,是符合访问控制列表ACL的报文;
所述低优先级报文,是不符合ACL的报文。
上述方案中,该方法进一步包括:
报文出队时,如果所述报文所在的FIFO缓存队列当前缓存的报文数小于或等于队列门限B,所述FIFO缓存队列缓存报文数减1;
如果所述报文所在的FIFO缓存队列当前缓存的报文数大于队列门限B,所述FIFO缓存队列缓存报文数减1,整机空闲缓存报文数S加1。
本发明提出的多核设备的技术方案是:
一种多核设备,该设备包括:
存储单元,设置有每个转发核与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,存储单元的容量为M,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;
收发单元,用于转发核接收其它转发核的数据报文和发送数据报文;
处理单元,用于转发核接收到报文时,判断对应的FIFO缓存队列当前缓存报文数是否小于队列门限,如果是,报文入队,所述FIFO缓存队列缓存报文数加1;否则继续判断整机空闲缓存报文数S是否大于或等于转发核数量N,如果是,报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1;如果整机空闲缓存报文数S小于转发核数量N,则丢弃报文;所述整机空闲缓存报文数S为多核系统剩余的空闲缓存空间;
计数单元,用以计录各个缓存队列当前缓存报文数以及整机空闲报文数S。
上述方案中,所述缓存队列的门限为B,且B为一个正整数。
上述方案中,所述处理单元还用于:
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限B,且整机空闲缓存报文数S大于或等于转发核数量N,进一步判断整机空闲缓存报文数S是否大于整机拥塞门限C,如果是,报文入队;否则高优先级报文入队,低优先级报文丢弃,所述整机拥塞门限C为正整数,且N≤C<M;
报文入队后,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1。
上述方案中,所述处理单元进一步用于,判断入队报文是否符合访问控制列表ACL,如果是,则将该报文定为高优先级报文,否则将其定为低优先级报文;
所述存储单元进一步用于,存储ACL。
上述方案中,报文出队时,所述处理单元进一步用于:
如果所述报文所在的FIFO缓存队列当前缓存的报文数小于或等于队列门限B,所述FIFO缓存队列缓存报文数减1;
如果所述报文所在的FIFO缓存队列当前缓存的报文数大于队列门限B,所述FIFO缓存队列缓存报文数减1,整机空闲缓存报文数S加1。
综上所述,本发明提出的技术方案能够有效提高多核系统的核间抗突发性能,并且能实现对入队报文的过滤,有利于多核数据报文转发业务的推广应用。
附图说明
图1是多核处理器各转发核之间报文转发的结构示意图。
图2是现有技术方案中每个转发核仅建立一个FIFO缓存队列的示意图。
图3是本发明中每个转发核为其他所有转发核各自建立一个FIFO缓存队列的示意图。
图4是本发明实施例一的流程图。
图5是本发明实施例二的流程图。
图6是本发明实施例三的流程图。
图7是实现本发明实施例的设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点表达的更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明一个实施例的技术方案是:一种多核系统核间数据报文缓存方法,应用于可缓存M个报文、转发核数量为N的多核系统,其中N≥2,每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;
报文入队时,
如果与所述报文对应的FIFO缓存队列当前缓存的报文数小于队列门限,则所述报文入队,所述FIFO缓存队列缓存报文数加1;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S大于或等于转发核数量N,所述报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1,所述整机空闲缓存报文数S为多核系统剩余的空闲缓存空间;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S小于转发核数量N,丢弃报文。
所述队列门限可以为B,且B为一个正整数
所述FIFO缓存队列的长度可以动态调整,最小为B,最大扩展至B+(M-B×N×(N-1)-(N-1)),其中B×N×(N-1)为一个多核系统中所有FIFO缓存队列固定占用的缓存空间,M-B×N×(N-1)为整机空闲缓存报文数S的最大值,即整个多核系统剩余的空闲缓存空间的最大值,理论上M-B×N×(N-1)全部用来为一个FIFO缓存队列扩展队列长度时,该FIFO缓存队列扩展到最大长度,但是当整机空闲缓存报文数S减小至N-1时,FIFO缓存队列已经不能再扩展,因此队列长度最大可以扩展至B+(M-B×N×(N-1)-(N-1))。
由于转发核之间以异步对称多处理(ASMP,Asymmetric SymmetricMultiprocessing)方式工作,彼此之间处理报文入队出队互不影响,同一时刻每个转发核只能处理一个FIFO缓存队列的报文出队和入队,因此完全可能出现同一时刻有两个或两个以上由不同转发核建立的的FIFO缓存队列要求扩展队列长度,极限情况为某一时刻有N个FIFO缓存队列同时要求扩展队列长度,且每个FIFO缓存队列分别由各个不同的转发核建立,针对这一情况,本实施例可以将整机空闲缓存报文数S的最小值设置为N,这样可以避免了各个缓存队列均查询到整机空闲缓存资源可以为其扩展缓存空间却出现报文不能成功入队的情况。
由上述技术方案可知,本发明与现有技术的区别之处在于:每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,并且把各个FIFO缓存队列由固定长度变成可变长度,根据具体的瞬时拥塞情况自动对每个缓存队列做动态调整,从而达到一种“弹性”缓存队列的效果。同时引入访问控制列表ACL,在整机拥塞比较严重的情况下,通过使能ACL过滤,实现对用户自定义的高优先级报文的优先缓存保证。
为了更好地说明本发明技术方案,下面用实施例分别从报文入队和报文出队两个角度对其进行详细描述。
方法实施例一
在本实施例中,假设多核系统有4个转发核来实现转发核间报文的转发,结构示意图如图1所示,分别为转发核1、转发核2、转发核3和转发核4,任意两个转发核间都可以相互传递报文。本实施例中每个转发核设置有与其它转发核一一对应的FIFO缓存队列用于接收其它转发核数据报文,如图3所示,为了便于描述,图3仅展示转发核1与其他转发核一一对应的FIFO缓存队列,其中队列D为转发核1与转发核2对应的FIFO缓存队列,队列E为转发核1与转发核3对应的FIFO缓存队列,队列F为转发核1与转发核4对应的FIFO缓存队列。当转发核2、3和4发送报文给转发核1时,所发送的报文就会加入各自对应的FIFO缓存队列,排队等候转发核1对其进行处理,或者丢弃。
本实施例中,转发核数量N=4,即该多核系统共有4个转发核;设置整机缓存门限M=12000,表示该四个转发核的多核系统最多可以缓存12000个报文;队列门限B=100,即每个FIFO缓存队列至少能缓存100个报文;所述整机空闲缓存报文数S为整个多核系统剩余的空闲缓存空间。
图4是本实施例的流程图,以转发核1接收转发核2发送的数据报文为例对本发明的技术方案进行说明,如图4所示,本实施例包括以下步骤:
步骤401:转发核1接收到转发核2发送的数据报文X。
步骤402:判断队列D当前缓存报文数是否大于或等于队列门限B?
当队列D当前缓存报文数小于B时转向步骤403,当队列D当前缓存报文数大于或等于B时,转向步骤404;
所述队列D当前缓存报文数即为队列D中已缓存的等待处理的报文数。
步骤403:报文X入队队列D,队列D缓存报文数加1,整机空闲缓存报文数S不变。
基于步骤402的判断结果:队列D当前缓存报文数小于B,这里B=100。则不妨设队列D当前缓存报文数为80,则报文X入队队列D,队列D当前缓存报文数加1,即为80+1=81,由于报文X占用的是队列D自身固有的缓存资源,并非为队列D在队列门限B的基础上扩展的缓存资源,因此报文X并不影响整机空闲缓存报文数S的变化。
步骤404:判断整机空闲缓存报文数S是否大于或等于N?
基于步骤402的判断结果:队列D当前缓存报文数大于或等于B,其中B=100。这种情况下,表明队列D的缓存报文已经完全占用了队列D自身固有的资源,队列D通过扩展其缓存空间才可以成功缓存报文X,当整机空闲缓存报文数S大于或等于N时,说明整机空闲缓存资源充裕,可以对队列D进行扩展,此时转向步骤405;当整机空闲缓存报文数S小于N时,说明整机空闲缓存资源不存在,不能对队列D进行扩展,此时转向步骤406;
步骤405:报文X入队队列D,队列D缓存报文数加1,整机空闲缓存报文数S减1。
基于步骤404的判断结果,队列D当前缓存报文数大于或等于B,整机空闲缓存报文数S大于或等于N,其中B=100,N=4。不妨设队列D当前缓存报文数为110,整机空闲缓存报文数S为14。此时,报文X入队队列D,队列D当前缓存报文数加1,即110+1=111,由于报文X占用的是队列D在队列门限B的基础上扩展的缓存资源,因此报文X入队队列D导致整机空闲缓存报文数S减1,即14-1=13。
步骤406:丢弃报文。
基于步骤404的判断结果,队列D当前缓存报文数大于或等于B,且整机空闲缓存报文数S小于转发核数量N,其中B=100,N=4。不妨设队列D当前缓存报文数为150,整机空闲缓存报文数S为3,此时可以认为整机空闲缓存资源已经不存在,无法再为缓存队列扩展队列长度来缓存报文,因此将报文丢弃。
应用本发明方案,能够动态调节FIFO缓存队列的长度,从而提高多核系统的核间抗突发性能,有利于多核数据报文转发业务的推广应用。
方法实施例二
本实施例仍然用方法实施例一的数据参数,在方法实施例一的基础上新增加一个参数-整机拥塞门限C,其为正整数,且N≤C<M,当整机空闲缓存报文数S减小至整机拥塞门限C时,空闲缓存资源开始紧张,不能保证缓存所有报文,高优先级报文入队,低优先级报文丢弃。符合访问控制列表ACL的报文为高优先级报文,不符合ACL的报文为低优先级报文。新增加对入队报文的过滤操作,在当某两个转发核间传递的报文不可避免的要丢弃时能优先保证高优先级报文入队等候处理。本实施例中假设C=2000,即当整机空闲缓存报文数S下降至2000个报文时(包括2000),则该多核系统进入资源紧张状态。
图5是本实施例的流程图,以转发核1接收转发核2发送的数据报文为例对本发明的技术方案进行说明,如图5所示,本实施例包括以下步骤:
步骤501:转发核1接收到转发核2发送的数据报文X。
步骤502:判断队列D当前缓存报文数是否大于或等于队列门限B?
当队列D当前缓存报文数小于B时转向步骤503,当队列D当前缓存报文数大于或等于B时,转向步骤504;
所述队列D当前缓存报文数即为队列D中已缓存的等待处理的报文数。
步骤503:报文X入队队列D,队列D缓存报文数加1,整机空闲缓存报文数S不变。
本步骤作用同步骤403,在此不再详述。
步骤504:判断整机空闲缓存报文数S是否大于或等于N?
基于步骤502的判断结果:队列D当前缓存报文数大于或等于B,其中B=100。这种情况下,表明队列D的缓存报文已经完全占用了队列D自身固有的资源,队列D是否可以进行扩展用以缓存报文X,还需要判断整机空闲缓存报文数S是否大于或等于转发核数量N,如果是,则转向步骤505,否则转向步骤508。
步骤505:判断整机空闲缓存报文数S是否大于拥塞门限C?
基于步骤504的判断结果,队列D当前缓存报文数大于或等于B,且整机空闲缓存报文数S大于或等于转发核数量N,其中B=100,N=4。这种情况说明队列D的缓存报文已经完全占用了队列D自身固有的资源,且整机空闲缓存资源也存在为队列D扩展长度来缓存报文X的可能,但是整机空闲缓存资源是否紧张仍需判断。当整机空闲缓存报文数S小于或等于拥塞门限C时,空闲缓存资源进入紧张状态,此时不能保证报文X能被缓存,需要对报文X进行进一步过滤,转向步骤506;当整机空闲缓存报文数S大于拥塞门限C时,说明整机空闲缓存资源充裕,可以为队列D扩展长度来缓存报文X,此时转向步骤507。
步骤506:判断报文X是否符合访问控制列表ACL?
基于步骤505的判断结果:队列D当前缓存报文数大于或等于B,整机空闲缓存报文数S大于或等于N且小于或等于整机拥塞门限C,其中B=100,C=2000,N=4。不妨设S=100,队列D当前缓存报文数为110。这种情况下说明整机空闲缓存资源已经紧张,此时需要对等待入队的报文使能ACL过滤,对于符合ACL的报文定为高优先级报文,不符合ACL的报文定为低优先级报文,具体判断方法为本领域常用技术手段,在此不再详述。如果等待入队的报文是高优先级报文,则转向步骤507,如果等待入队的报文是低优先级报文,则转向步骤508。
步骤507:报文X入队队列D,队列D缓存报文数加1,整机空闲缓存报文数S减1。
基于步骤505的判断结果,队列D当前缓存报文数大于或等于B,整机空闲缓存报文数S大于整机拥塞门限C,其中B=100,C=2000。不妨设队列D当前缓存报文数为110,整机空闲缓存报文数S为2100。此时,报文X入队队列D,队列D当前缓存报文数加1,即110+1=111,由于报文X占用的是队列D在队列门限B的基础上扩展的缓存资源,因此报文X入队队列D导致整机空闲缓存报文数S减1,即2100-1=2009。
或者基于步骤506的判断结果,队列D当前缓存报文数大于或等于B,整机空闲缓存报文数S大于或等于N且小于或等于整机拥塞门限C,报文X符合ACL为高优先级报文,其中B=100,C=2000,N=4。不妨设队列D当前缓存报文数为110,整机空闲缓存报文数S为1901。此时,报文X入队队列D,队列D当前缓存报文数加1,即110+1=111,由于报文X占用的是队列D在队列门限B的基础上扩展的缓存资源,因此报文X入队队列D导致整机空闲缓存报文数S减1,即1901-1=1900。
步骤508:丢弃报文。
基于步骤504的判断结果,队列D当前缓存报文数大于或等于B,且整机空闲缓存报文数S小于转发核数量N,其中B=100,N=4。不妨设队列D当前缓存报文数为150,整机空闲缓存报文数S为3,此时可以认为整机空闲缓存资源已经不存在,无法再为缓存队列扩展队列长度来缓存报文,因此将报文丢弃;
或者基于步骤506的判断结果,队列D当前缓存报文数大于或等于B,整机空闲缓存报文数S大于或等于N且小于或等于整机拥塞门限C,报文X不符合ACL为低优先级报文,此时为了有效利用已经紧张的整机空闲缓存资源,丢弃低优先级报文。
应用本实施例方案,使每个缓存队列可以缓存的报文数在队列门限B和最大缓存报文数B+(M-B×N×(N-1)-(N-1))之间动态变化,从而提高多核系统中某一个或某几个转发核的抗突发性能;同时通过访问控制列表ACL的引入实现对入队报文的过滤,在当某两个转发核间传递的报文不可避免的要丢弃时能优先保证高优先级报文入队等候处理。
方法实施例三
方法实施例一和方法实施例二的方案是从报文入队的角度介绍本发明方案,本实施例则从报文出队的角度对本发明方案进行阐述。
图6是本实施例的流程图,以队列D中的报文出队为例对本发明的技术方案进行说明,如图6所示,本实施例包括以下步骤:
步骤601:队列D中的报文即将出队。
步骤602:判断队列D当前缓存报文数是否大于队列门限B?
本步骤中,报文Y出队之前首先需要判断队列D当前缓存报文数是否大于队列门限B?如果是,则转向步骤603;否则转向步骤605。
步骤603:队列D中的报文Y出队。
基于步骤602的判断结果:队列D当前缓存报文数大于队列门限B,其中B=100,即队列D当前处于已扩展状态。报文Y出队之前,不妨设队列D当前缓存报文数为120,整机空闲缓存报文数S为1000。报文Y出队后转向步骤604。
步骤604:队列D缓存报文数减1,整机空闲缓存报文数加1。
步骤603中报文Y出队之前队列D缓存报文数为120,大于队列门限B=100,报文Y出队后,队列D释放一个缓存报文空间,此时队列D的当前缓存报文数为120-1=119;由于队列D的缓存报文数处于已扩展状态,因此队列D释放的缓存报文空间应当还给整机空闲缓存报文,因此整机空闲缓存报文数S加1,即为1000+1=1001。
步骤605:队列D中的报文Y出队。
基于步骤602的判断结果:队列D当前缓存报文数小于或等于队列门限B,其中B=100,即队列D当前处于未扩展状态。报文Y出队之前,不妨设队列D当前缓存报文数为80,整机空闲缓存报文数S为1000。报文Y出队后转向步骤606。
步骤606:队列D缓存报文数减1,整机空闲缓存报文数不变。
步骤605中报文Y出队之前队列D缓存报文数为80,小于队列门限B=100,报文Y出队后,队列D释放一个缓存报文空间,此时队列D的当前缓存报文数为80-1=79;由于队列D的缓存报文数处于未扩展状态,因此其释放的缓存报文空间为队列D本身固有的缓存资源,不会引起整机空闲缓存报文数S的变化,因此S不变。
应用本实施例方案,使每个缓存队列的报文出队后自动释放缓存空间,如果报文出队前该队列的缓存报文数已经处于扩展状态,则将释放的缓存空间归还给整机空闲缓存报文数;如果报文出队前该队列的缓存报文数没有处于扩展状态,则释放的缓存空间为缓存队列自身的缓存资源。
针对上述方法,本发明还公开一种多核系统。本发明公开的设备如图7所示,包括:
收发单元701,用于转发核接收其它转发核的数据报文和发送数据报文;
处理单元702,用于转发核接收到报文时,判断对应的FIFO缓存队列当前缓存报文数是否小于队列门限,如果是,报文入队,所述FIFO缓存队列缓存报文数加1;否则继续判断整机空闲缓存报文数S是否大于或等于转发核数量N,如果是,报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1;如果整机空闲缓存报文数S小于转发核数量N,则丢弃报文;所述整机空闲缓存报文数S为多核系统剩余的空闲缓存空间;所述缓存队列的门限为B,且B为一个正整数。
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限B,且整机空闲缓存报文数S大于或等于转发核数量N,还用于进一步判断整机空闲缓存报文数S是否大于整机拥塞门限C,如果是,报文入队;否则高优先级报文入队,低优先级报文丢弃,所述整机拥塞门限C为正整数,且N≤C<M;报文入队后,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1。
还用于报文出队时,如果所述报文所在的FIFO缓存队列当前缓存的报文数小于或等于队列门限B,所述FIFO缓存队列缓存报文数减1;如果所述报文所在的FIFO缓存队列当前缓存的报文数大于队列门限B,所述FIFO缓存队列缓存报文数减1,整机空闲缓存报文数S加1。
进一步用于判断入队报文是否符合访问控制列表ACL,如果是,则将该报文定为高优先级报文,否则将其定为低优先级报文;
存储单元703,设置有每个转发核与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,存储单元的容量为M,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;还用于存储访问控制列表ACL。
计数单元704,用以计录各个缓存队列当前缓存报文数以及整机空闲报文数S。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种多核系统核间数据报文缓存方法,应用于可缓存M个报文、转发核数量为N的多核系统,其中N≥2,其特征在于,该方法包括以下步骤:
每个转发核设置有与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;
报文入队时,
如果与所述报文对应的FIFO缓存队列当前缓存的报文数小于队列门限,则所述报文入队,所述FIFO缓存队列缓存报文数加1;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S大于或等于转发核数量N,所述报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1,所述整机空闲缓存报文数S为整个多核系统剩余的空闲缓存空间;
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限,且整机空闲缓存报文数S小于转发核数量N,丢弃报文。
2.根据权利要求1所述的方法,其特征在于,
所述队列门限为B,且B为一个正整数。
3.根据权利要求2所述的方法,其特征在于,该方法进一步包括:
报文入队时,如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限B,且整机空闲缓存报文数S大于或等于转发核数量N,进一步判断整机空闲缓存报文数S是否大于整机拥塞门限C,如果是,报文入队;否则高优先级报文入队,低优先级报文丢弃,所述整机拥塞门限C为正整数,且N≤C<M;
报文入队后,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1。
4.根据权利要求3所述的方法,其特征在于,
所述高优先级报文,是符合访问控制列表ACL的报文;
所述低优先级报文,是不符合ACL的报文。
5.根据权利要求2所述的方法,其特征在于,该方法进一步包括:
报文出队时,如果所述报文所在的FIFO缓存队列当前缓存的报文数小于或等于队列门限B,所述FIFO缓存队列缓存报文数减1;
如果所述报文所在的FIFO缓存队列当前缓存的报文数大于队列门限B,所述FIFO缓存队列缓存报文数减1,整机空闲缓存报文数S加1。
6.一种多核设备,其特征在于,该设备包括:
存储单元,设置有每个转发核与其它转发核一一对应的先进先出FIFO缓存队列用于接收其它转发核数据报文,其中,存储单元的容量为M,每个FIFO缓存队列设置有队列门限,各转发核FIFO缓存队列的门限之和小于M;
收发单元,用于转发核接收其它转发核的数据报文和发送数据报文;
处理单元,用于转发核接收到报文时,判断对应的FIFO缓存队列当前缓存报文数是否小于队列门限,如果是,报文入队,所述FIFO缓存队列缓存报文数加1;否则继续判断整机空闲缓存报文数S是否大于或等于转发核数量N,如果是,报文入队,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1;如果整机空闲缓存报文数S小于转发核数量N,则丢弃报文;所述整机空闲缓存报文数S为多核系统剩余的空闲缓存空间;
计数单元,用以计录各个缓存队列当前缓存报文数以及整机空闲报文数S。
7.根据权利要求6所述的设备,其特征在于,
所述缓存队列的门限为B,且B为一个正整数。
8.根据权利要求7所述的设备,其特征在于,所述处理单元还用于:
如果与所述报文对应的FIFO缓存队列当前缓存的报文数大于或等于队列门限B,且整机空闲缓存报文数S大于或等于转发核数量N,进一步判断整机空闲缓存报文数S是否大于整机拥塞门限C,如果是,报文入队;否则高优先级报文入队,低优先级报文丢弃,所述整机拥塞门限C为正整数,且N≤C<M;
报文入队后,所述FIFO缓存队列缓存报文数加1,整机空闲缓存报文数S减1。
9.根据权利要求8所述的设备,其特征在于:
所述处理单元进一步用于,判断入队报文是否符合访问控制列表ACL,如果是,则将该报文定为高优先级报文,否则将其定为低优先级报文;
所述存储单元进一步用于,存储ACL。
10.根据权利要求7所述的设备,其特征在于,报文出队时,所述处理单元进一步用于:
如果所述报文所在的FIFO缓存队列当前缓存的报文数小于或等于队列门限B,所述FIFO缓存队列缓存报文数减1;
如果所述报文所在的FIFO缓存队列当前缓存的报文数大于队列门限B,所述FIFO缓存队列缓存报文数减1,整机空闲缓存报文数S加1。
CN201310275100.0A 2013-07-01 2013-07-01 一种多核系统核间数据报文缓存方法及设备 Active CN103338157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310275100.0A CN103338157B (zh) 2013-07-01 2013-07-01 一种多核系统核间数据报文缓存方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310275100.0A CN103338157B (zh) 2013-07-01 2013-07-01 一种多核系统核间数据报文缓存方法及设备

Publications (2)

Publication Number Publication Date
CN103338157A true CN103338157A (zh) 2013-10-02
CN103338157B CN103338157B (zh) 2016-04-06

Family

ID=49246257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310275100.0A Active CN103338157B (zh) 2013-07-01 2013-07-01 一种多核系统核间数据报文缓存方法及设备

Country Status (1)

Country Link
CN (1) CN103338157B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168217A (zh) * 2014-08-15 2014-11-26 杭州华三通信技术有限公司 一种先入先出队列调度方法及装置
CN104378308A (zh) * 2014-11-19 2015-02-25 盛科网络(苏州)有限公司 报文发送速率检测方法及装置
CN106371937A (zh) * 2016-08-31 2017-02-01 迈普通信技术股份有限公司 多核系统的核间通信方法及装置
WO2018076641A1 (zh) * 2016-10-28 2018-05-03 深圳市中兴微电子技术有限公司 一种减少时延的方法、装置及存储介质
CN109286539A (zh) * 2018-10-31 2019-01-29 迈普通信技术股份有限公司 检测发送异常的方法、装置、通信设备及可读存储介质
CN109450816A (zh) * 2018-11-19 2019-03-08 迈普通信技术股份有限公司 一种队列调度方法、装置、网络设备及存储介质
CN109600321A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN109617832A (zh) * 2019-01-31 2019-04-12 新华三技术有限公司合肥分公司 报文缓存方法及装置
CN109660468A (zh) * 2017-10-12 2019-04-19 深圳市中兴微电子技术有限公司 一种端口拥塞管理方法、装置和设备
CN110708253A (zh) * 2018-07-09 2020-01-17 华为技术有限公司 一种报文控制方法、流表更新方法和节点设备
CN111030943A (zh) * 2019-12-13 2020-04-17 迈普通信技术股份有限公司 一种报文的处理方法、装置、转发设备及存储介质
CN112187668A (zh) * 2020-09-29 2021-01-05 新华三信息安全技术有限公司 一种队列管理方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616083A (zh) * 2009-08-06 2009-12-30 杭州华三通信技术有限公司 一种报文转发方法和装置
WO2012019114A1 (en) * 2010-08-06 2012-02-09 Citrix Systems, Inc. Systems and methods for a para-virtualized driver in a multi-core virtual packet engine device
CN103166867A (zh) * 2011-12-19 2013-06-19 迈普通信技术股份有限公司 一种流控方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616083A (zh) * 2009-08-06 2009-12-30 杭州华三通信技术有限公司 一种报文转发方法和装置
WO2012019114A1 (en) * 2010-08-06 2012-02-09 Citrix Systems, Inc. Systems and methods for a para-virtualized driver in a multi-core virtual packet engine device
CN103166867A (zh) * 2011-12-19 2013-06-19 迈普通信技术股份有限公司 一种流控方法和装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168217A (zh) * 2014-08-15 2014-11-26 杭州华三通信技术有限公司 一种先入先出队列调度方法及装置
CN104168217B (zh) * 2014-08-15 2018-01-09 新华三技术有限公司 一种先入先出队列调度方法及装置
CN104378308A (zh) * 2014-11-19 2015-02-25 盛科网络(苏州)有限公司 报文发送速率检测方法及装置
CN106371937A (zh) * 2016-08-31 2017-02-01 迈普通信技术股份有限公司 多核系统的核间通信方法及装置
WO2018076641A1 (zh) * 2016-10-28 2018-05-03 深圳市中兴微电子技术有限公司 一种减少时延的方法、装置及存储介质
CN108011845A (zh) * 2016-10-28 2018-05-08 深圳市中兴微电子技术有限公司 一种减少时延的方法和装置
CN109600321A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN109600321B (zh) * 2017-09-30 2022-06-21 迈普通信技术股份有限公司 报文转发方法及装置
CN109660468A (zh) * 2017-10-12 2019-04-19 深圳市中兴微电子技术有限公司 一种端口拥塞管理方法、装置和设备
CN110708253A (zh) * 2018-07-09 2020-01-17 华为技术有限公司 一种报文控制方法、流表更新方法和节点设备
US11516145B2 (en) 2018-07-09 2022-11-29 Huawei Technologies Co., Ltd. Packet control method, flow table update method, and node device
CN109286539A (zh) * 2018-10-31 2019-01-29 迈普通信技术股份有限公司 检测发送异常的方法、装置、通信设备及可读存储介质
CN109450816A (zh) * 2018-11-19 2019-03-08 迈普通信技术股份有限公司 一种队列调度方法、装置、网络设备及存储介质
CN109617832A (zh) * 2019-01-31 2019-04-12 新华三技术有限公司合肥分公司 报文缓存方法及装置
CN109617832B (zh) * 2019-01-31 2022-07-08 新华三技术有限公司合肥分公司 报文缓存方法及装置
CN111030943A (zh) * 2019-12-13 2020-04-17 迈普通信技术股份有限公司 一种报文的处理方法、装置、转发设备及存储介质
CN112187668A (zh) * 2020-09-29 2021-01-05 新华三信息安全技术有限公司 一种队列管理方法、装置及设备
CN112187668B (zh) * 2020-09-29 2022-05-27 新华三信息安全技术有限公司 一种队列管理方法、装置及设备

Also Published As

Publication number Publication date
CN103338157B (zh) 2016-04-06

Similar Documents

Publication Publication Date Title
CN103338157A (zh) 一种多核系统核间数据报文缓存方法及设备
CN107196870B (zh) 一种基于dpdk的流量动态负载均衡方法
CN108476177B (zh) 支持用于处理功能可扩展性的数据平面的装置及相关方法
CN102594691B (zh) 一种处理报文的方法及装置
CN102480430B (zh) 实现报文保序的方法和装置
CN104158699B (zh) 一种基于优先级和分段的数据采集方法
CN108259355B (zh) 一种报文转发方法和装置
US20140185442A1 (en) Supporting quality of service differentiation using a single shared buffer
CN107404443B (zh) 队列缓存资源控制方法及装置、服务器及存储介质
CN102811176B (zh) 一种数据流量控制方法和装置
WO2012145841A1 (en) Hierarchical profiled scheduling and shaping
CN111314240B (zh) 拥塞控制方法及装置、网络设备及存储介质
CN102970244A (zh) 一种多cpu核间负载均衡的网络报文处理方法
CN103532876A (zh) 数据流的处理方法与系统
US8737227B2 (en) Packet transmission device, memory control circuit, and packet transmission method
Shan et al. Analyzing and enhancing dynamic threshold policy of data center switches
CN105978821B (zh) 网络拥塞避免的方法及装置
US8018958B1 (en) System and method for fair shared de-queue and drop arbitration in a buffer
CN103607360A (zh) 一种报文处理方法、线卡及交换设备
Hu et al. Load Balancing With Multi-Level Signals for Lossless Datacenter Networks
CN103200131A (zh) 一种数据收发装置
CN111464453A (zh) 一种报文转发方法及装置
CN110430146B (zh) 基于CrossBar交换的信元重组方法及交换结构
Yang et al. Crsp: Network congestion control through credit reservation
US9128785B2 (en) System and method for efficient shared buffer management

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 hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

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

Effective date of registration: 20230602

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