CN109302353B - 一种分配报文缓存空间的方法及装置 - Google Patents
一种分配报文缓存空间的方法及装置 Download PDFInfo
- Publication number
- CN109302353B CN109302353B CN201710607476.5A CN201710607476A CN109302353B CN 109302353 B CN109302353 B CN 109302353B CN 201710607476 A CN201710607476 A CN 201710607476A CN 109302353 B CN109302353 B CN 109302353B
- Authority
- CN
- China
- Prior art keywords
- message
- uplink
- downlink
- messages
- cache
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种分配报文缓存空间的方法及装置,包括:按照预设周期获取网络处理器的流量信息;根据获取的流量信息进行片内报文缓存空间的分配;其中,流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;片内报文缓存空间由两个或两个以上分块组成。本发明实施例提高了片内报文缓存空间的利用率;进一步的,根据上行标识和下行标识实现了动态分配的片内缓存空间的地址设置。
Description
技术领域
本文涉及但不限于移动通信技术,尤指一种分配报文缓存空间的方法及装置。
背景技术
为了满足未来网络发展的需要,提高路由器的性能,处于因特网 (Internet)骨干位置的核心路由器进行了一个又一个的技术变革。尤其在高端路由器市场,网络处理器以其杰出的报文处理性能及可编程性已经成为构成路由转发引擎不可替代的部分。
在网络处理器***中,包缓存(PBU,Packet Buffer Unit)是网络处理器的重要部件,负责报文的片内缓存。网络处理器在进行报文处理之前,需要将报文缓存在片内报文缓存空间;网络处理器处理完报文之后,再从片内报文缓存空间将报文读出发往后级。当片内报文缓存空间可存储的报文过少时,网络处理器会频繁对前级起反压,还会因为缓存的报文不是完整的包而频繁丢包。由于芯片面积的限制,片内报文缓存空间的大小不可能无限制增加。在片内报文缓存空间大小一定的情况下,片内报文缓存空间的利用率就决定了芯片的报文缓存能力及芯片的性能。因此,需要设计一种片内报文缓存空间的分配方案,来提高片内报文缓存空间的利用率。
相关技术中,高性能的网络处理器已经将报文分成上行和下行两路进行缓存和处理,上行报文和下行报文分别拥有独享的片内报文缓存空间;相比于上行报文和下行报文分别拥有相应的片内报文缓存空间,通过上行和下行两路共享片内报文缓存空间的方法可以进一步提高片内报文缓存空间的利用率。但是,两路共享片内报文缓存空间支持静态配置,即***复位之后,在网络处理器开始接收报文之前可以对上行和下行报文缓存空间进行配置。一旦开始接收报文,就不能再对报文缓存空间进行配置,当分配给上行报文或下行报文的片内报文缓存空间不足时,将降低片内报文缓存空间的利用率。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种分配报文缓存空间的方法及装置,能够提高片内报文缓存空间的利用率。
本发明实施例提供了一种分配报文缓存空间的方法,包括:
按照预设周期获取网络处理器的流量信息;
根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成。
可选的,所述根据获取的流量信息进行片内报文缓存空间的分配包括:
在每一个所述预设周期,计算所述上行流量信息和下行流量信息的比值,获得上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;或者,
在首个所述预设周期,计算所述上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
可选的,所述方法还包括:
为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;
在进行上行报文的缓存时,根据所述上行标识设置缓存上行报文的上行缓存地址;在进行下行报文的缓存时,根据所述下行标识设置缓存下行报文的下行缓存地址;
根据设置的所述上行缓存地址和所述下行缓存地址,对上行报文和下行报文进行缓存。可选的,所述上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述对上行报文和下行报文进行缓存包括:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。可选的,所述方法还包括:
将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;
将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;
读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;
将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。可选的,所述方法还包括:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。另一方面,本发明实施例还提供一种分配报文缓存空间的装置,包括:获取单元和分配单元;其中,
获取单元用于:按照预设周期获取网络处理器的流量信息;
分配单元用于:根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成。
可选的,所述分配单元具体用于:
在每一个所述预设周期,计算所述上行流量信息和下行流量信息的比值,获得上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;或者,
在首个所述预设周期,计算所述上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
可选的,所述装置还包括设置单元和缓存单元;其中,
设置单元用于:为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;在进行上行报文和下行报文的缓存时,根据所述上行标识和下行标识,分别设置缓存上行报文的上行缓存地址和缓存下行报文的下行缓存地址;
缓存单元用于:根据设置的所述上行缓存地址和所述下行缓存地址,对上行报文和下行报文进行缓存。
可选的,所述上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述缓存单元具体用于:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。可选的,所述装置还包括流控单元,用于:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。
可选的,所述装置还包括区分单元和拼接单元;其中,
区分单元用于:将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;拼接单元用于:将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。
再一方面,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述分配报文缓存空间的方法。
还一方面,本发明实施例还提供一种分配报文缓存空间的终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行以下操作:
按照预设周期获取网络处理器的流量信息;
根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成。
与相关技术相比,本申请技术方案包括:按照预设周期获取网络处理器的流量信息;根据获取的流量信息进行片内报文缓存空间的分配;其中,流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;片内报文缓存空间由两个或两个以上分块组成。本发明实施例提高了片内报文缓存空间的利用率。进一步的,根据上行标识和下行标识实现了动态分配的片内缓存空间的地址设置
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例分配报文缓存空间的方法的流程图;
图2为本发明实施例上行缓存地址的组成结构示意图;
图3位本发明实施例地址处理示意图;
图4为本发明实施例分配报文缓存空间的装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例分配报文缓存空间的方法的流程图,如图1所示,
步骤100、按照预设周期获取网络处理器的流量信息;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;
需要说明的是,本发明实施例预设周期可以由本领域技术人员根据报文缓存的流量信息进行分析确定;当流量信息波动较大时,可以设置预设周期较小;当流量信息波动较小时,可以设置预设周期较大;预设周期可以为30 分钟左右,可以根据实际情况进行调整。
步骤101、根据获取的流量信息进行片内报文缓存空间的分配;
这里,片内报文缓存空间由两个或两个以上分块组成。
需要说明的是,将片内报文缓存空间进行分块的方法可以是相关技术的已有方法,在此不再赘述。
可选的,本发明实施例根据获取的流量信息进行片内报文缓存空间的分配包括:
在每一个所述预设周期,计算所述上行流量信息和下行流量信息的比值,获得上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;或者,
在首个所述预设周期,计算所述上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
需要说明的是,本发明实施例预设百分比的波动包括:当前预设周期的上下路流量减去在前一个预设周期的上下路流量比获得差值后,将差值取绝对值后除以在前一个预设周期的上下路流量比获得波动百分比;预设百分比可以根据片内报文缓存空间的大小和报文缓存的流量大小进行分析确定,一般的片内报文缓存空间越大,预设百分比可以相对较大;报文缓存的流量越大,预设百分比可以相对较小,预设百分比可以设置为10%左右的数值;另外,分配给上行报文和下行报文的分块为完整分块,当计算获得的分块不是完整的分块时,可以采用四舍五入的方法进行处理;假设总的报文缓存空间大小为32G,分块的粒度为4G,总共有8个分块。根据公式:上行流量/(上行流量+下行流量)*8,然后四舍五入取整数得到配给上行报文使用的分块数目,剩下的就是给下行报文使用的分块数目。即,上行报文使用的分块数目=上行流量/(上行流量+下行流量)*总分块数量,结果四舍五入取整。剩下的分块给下行报文使用。
可选的,本发明实施例方法还包括:
为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;
在进行上行报文的缓存时,根据所述上行标识设置缓存上行报文的上行缓存地址;在进行下行报文的缓存时,根据所述下行标识设置缓存下行报文的下行缓存地址;
根据设置的所述上行缓存地址和所述下行缓存地址,对上行报文和下行报文进行缓存。
可选的,本发明实施例上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述对上行报文和下行报文进行缓存包括:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。
需要说明的是,上行标识和下行标识可以是地址信息中一个编号标识;例如、通过0表示上行标识,通过1表示下行标识。当缓存报文的分块相同时,上行缓存地址或下行缓存地址中的分块的地址是相同,分块内部的写入地址不同。本发明实施例缓存上行报文的片内报文缓存空间和缓存下行报文的片内报文缓存空间相互独立。分块内部的写入地址的位宽根据分块的深度决定。图2为本发明实施例上行缓存地址的组成结构示意图,如图2所示,上行缓存地址包括上行标识,用于确定分块用于缓存上行报文,分块的地址用于确定分块所在位置,分块内部的写入地址用于写入缓存的上行报文。
可选的,本发明实施例方法还包括:
将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;
将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;
读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;
将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。
需要说明的是,区分报文分片为上行报文或下行报文的分片后,根据报文缓存地址可以对报文进行整理拼接,整理拼接方法可以采用相关技术中已有的分析处理方法实现,在此不做赘述。
图3位本发明实施例地址处理示意图,如图3所示,未使用的上行空闲地址和下行空闲地址分别存在各自所属分块的先入先出队列(FIFO)中,此时,上行空闲地址和下行空闲地址是没有上行标识或者下行标识的,当上行空闲地址和/或下行空闲地址被分配之后,才会被打上上行标识或者下行标识;上行空闲地址打上上行标识后形成上行缓存地址;下行空闲地址打上下行标识后形成下行缓存地址。例如,当接收到一个上行报文的报文分片后,从上行报文可以使用的分块所属的FIFO中取出一个未使用的地址,即上行空闲地址,然后在上行空闲地址的最高位增加1bit上行标识,此时地址的位宽会增加;生成上行缓存地址。当这个报文分片被从报文缓存空间读出去之后,上行缓存地址会被回收,因为FIFO中存的地址是不包含上行标识的,所以在将上行缓存地址写入FIFO之前会先剥掉上行标识,此时上行缓存地址的位宽又和被打上上行标识之前一样,即又转换为上行空闲地址。
可选的,本发明实施例方法还包括:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。需要说明的是,本发明实施例上行空闲地址包括分配给上行报文的片内缓存空间中未进行报文缓存的地址;下行空闲地址包括分配给下行报文的片内缓存空间中未进行报文缓存的地址;上行流控阈值和下行流控阈值可以相等,可以由本领域技术人员根据延时进行分析确定。
与相关技术相比,本申请技术方案包括:按照预设周期获取网络处理器的流量信息;根据获取的流量信息进行片内报文缓存空间的分配;其中,流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;片内报文缓存空间由两个或两个以上分块组成。本发明实施例提高了片内报文缓存空间的利用率;进一步的,根据上行标识和下行标识实现了动态分配的片内缓存空间的地址设置。
图4为本发明实施例分配报文缓存空间的装置的结构框图,如图4所示,包括:获取单元和分配单元;其中,
获取单元用于:按照预设周期获取网络处理器的流量信息;
分配单元用于:根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成。
可选的,本发明实施例分配单元具体用于:
在每一个所述预设周期,计算所述上行流量信息和下行流量信息的比值,获得上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;或者,
在首个所述预设周期,计算所述上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
可选的,本发明实施例装置还包括设置单元和缓存单元;其中,
设置单元用于:为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;在进行上行报文和下行报文的缓存时,根据所述上行标识和下行标识,分别设置缓存上行报文的上行缓存地址和缓存下行报文的下行缓存地址;
缓存单元用于:根据设置的上行缓存地址和下行缓存地址,对上行报文和下行报文进行缓存。
可选的,本发明实施例上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述缓存单元具体用于:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。可选的,本发明实施例装置还包括流控单元,用于:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。
可选的,本发明实施例装置还包括区分单元和拼接单元;其中,
区分单元用于:将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;
拼接单元用于:将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。
另一方面,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述分配报文缓存空间的方法。
再一方面,本发明实施例还提供一种分配报文缓存空间的终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行以下操作:
按照预设周期获取网络处理器的流量信息;
根据获取的流量信息进行片内报文缓存空间的分配;
其中,流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;片内报文缓存空间由两个或两个以上分块组成。
以下通过应用示例对本发明实施例方法进行清楚详细的说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。
应用示例一
本应用示例一个上行报文有部分报文分片存储在一个分块1中,剩余报文分片还在陆续接收,此时中央处理器(CPU)将该分块1配给了下行报文使用。本应用示例的处理过程包括:
由于报文为上行报文,因此该上行报文申请的报文缓存地址为上行缓存地址,即上行报文可以使用的分块中的地址;由于分块1被分配给下行报文进行缓存应用,因此,分块1中的地址不会再被分配给上行报文。该上行报文的后续报文分片只能申请到上行报文可以用的其他分块的空闲地址。
后级在进行报文处理时,如果要读该包存储在分块1中的报文分片可以根据地址中的上行标识知道该报文是属于上行报文,然后通过上行缓存地址去读分片,根据各个上行报文的分片的上行缓存地址,确定缓存上行报文的各个分片的分块的地址,在确定的分块的地址中根据分块内部的写入地址,将各上行报文的分片读出,从而得到要处理的报文分片。
本应用示例将上行报文的分片从分块中读出时,对上行缓存地址进行回收处理,当上行缓存地址被用于进行上行报文的缓存时,可以根据上行标识对上行缓存地址的使用进行统计管理。
应用示例二
本应用示例一个上行报文无法使用其中一个分块,而上行流量与下行流量的比值确定,需要为上行报文分配更多分块时,本应用示例处理过程包括:
将分块分配给上行报文进行缓存后,通过上行缓存地址的上行标识可以确定分块被用于缓存上行报文。需要说明的是,如果分块中部分存储空间被用于缓存下行报文,则该部分存储空间不会被回收,该部分存储空间依旧被用于缓存下行报文,只有该部分下行报文被读出时,才可以进行下行缓存地址的回收和上行缓存地址的配置。当分块中的下行报文被全部读出时,分块才完全被用于缓存上行报文。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种分配报文缓存空间的方法,其特征在于,包括:
按照预设周期获取网络处理器的流量信息;
根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成;
所述根据获取的流量信息进行片内报文缓存空间的分配包括:
在首个所述预设周期,计算上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;
在进行上行报文的缓存时,根据所述上行标识设置缓存上行报文的上行缓存地址;在进行下行报文的缓存时,根据所述下行标识设置缓存下行报文的下行缓存地址;
根据设置的所述上行缓存地址和所述下行缓存地址,对上行报文和下行报文进行缓存。
3.根据权利要求2所述的方法,其特征在于,所述上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述对上行报文和下行报文进行缓存包括:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;
将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;
读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;
将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。
6.一种分配报文缓存空间的装置,其特征在于,包括:获取单元和分配单元;其中,
获取单元用于:按照预设周期获取网络处理器的流量信息;
分配单元用于:根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成;
所述分配单元具体用于:在首个所述预设周期,计算上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括设置单元和缓存单元;其中,
设置单元用于:为分配给上行报文的所有分块设置上行标识,为分配给下行报文的所有分块设置下行标识;在进行上行报文和下行报文的缓存时,根据所述上行标识和下行标识,分别设置缓存上行报文的上行缓存地址和缓存下行报文的下行缓存地址;
缓存单元用于:根据设置的所述上行缓存地址和所述下行缓存地址,对上行报文和下行报文进行缓存。
8.根据权利要求7所述的装置,其特征在于,所述上行缓存地址包括:上行标识、分块的地址和分块内部的写入地址;所述下行缓存地址包括:下行标识、分块的地址和分块内部的写入地址,所述缓存单元具体用于:
进行缓存的报文为上行报文时,将所述上行报文的各个报文分片,分别根据对应的上行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间;
进行缓存的报文为下行报文时,将所述下行报文的各个报文分片,分别根据对应的下行缓存地址中的所述分块的地址和所述分块内部的写入地址写入片内报文缓存空间。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括流控单元,用于:
当未进行上行报文缓存的上行空闲地址的个数小于预设的上行流控阈值时,对上行报文进行流量控制;
当未进行下行报文缓存的下行空闲地址的个数小于预设的下行流控阈值时,对下行报文进行流量控制。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括区分单元和拼接单元;其中,
区分单元用于:将上行报文根据上行缓存地址进行写入时,根据写入的各个上行报文的报文分片的上行缓存地址建立链表;读出缓存的上行报文前,从建立的链表中读出写入的各上行报文的报文分片的上行缓存地址;将下行报文根据下行缓存地址进行写入时,根据写入的各个下行报文的报文分片的下行缓存地址建立链表;读出缓存的下行报文前,从建立的链表中读出写入的各下行报文的报文分片的下行缓存地址;读出缓存的报文时,根据读出的所述上行缓存地址中的上行标识和下行缓存地址中的下行标识区分上行报文和下行报文的各个报文分片;
拼接单元用于:将区分的上行报文的各个报文分片拼接为上行报文后发往下级;将区分的下行报文的各个报文分片拼接为下行报文后发往下级。
11.一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行如权利要求1~5任一项所述分配报文缓存空间的方法。
12.一种分配报文缓存空间的终端,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令被处理器读取执行以下操作:
按照预设周期获取网络处理器的流量信息;
根据获取的流量信息进行片内报文缓存空间的分配;
其中,所述流量信息包括上行报文的上行流量信息和下行报文的下行流量信息;所述片内报文缓存空间由两个或两个以上分块组成;
所述根据获取的流量信息进行片内报文缓存空间的分配包括:
在首个所述预设周期,计算上下路流量比;根据计算获得的所述上下路流量比,将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;对除所述首个预设周期以外的其他预设周期,当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生大于预设百分比的波动时,根据当前预设周期的所述上下路流量比重新将片内报文缓存空间中包含的分块分别分配为缓存上行报文或下行报文;当当前预设周期的所述上下路流量比较在前一个预设周期的所述上下路流量比发生小于或等于预设百分比的波动时,保持分配给上行报文和下行报文的分块不变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607476.5A CN109302353B (zh) | 2017-07-24 | 2017-07-24 | 一种分配报文缓存空间的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710607476.5A CN109302353B (zh) | 2017-07-24 | 2017-07-24 | 一种分配报文缓存空间的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109302353A CN109302353A (zh) | 2019-02-01 |
CN109302353B true CN109302353B (zh) | 2022-03-25 |
Family
ID=65167174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710607476.5A Active CN109302353B (zh) | 2017-07-24 | 2017-07-24 | 一种分配报文缓存空间的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109302353B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014308B (zh) * | 2021-02-23 | 2022-08-02 | 湖南斯北图科技有限公司 | 一种卫星通信大容量通道并行的物联网数据接收方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855881A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 动态共享存储器存储空间的实现方法 |
CN104572498A (zh) * | 2014-12-26 | 2015-04-29 | 曙光信息产业(北京)有限公司 | 报文的缓存管理方法和装置 |
WO2016086641A1 (zh) * | 2014-12-05 | 2016-06-09 | 中兴通讯股份有限公司 | 缓存的配置方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10862630B2 (en) * | 2015-02-13 | 2020-12-08 | Samsung Electronics Co., Ltd | Method and system for contiguous HARQ memory management with memory splitting |
-
2017
- 2017-07-24 CN CN201710607476.5A patent/CN109302353B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855881A (zh) * | 2005-04-28 | 2006-11-01 | 华为技术有限公司 | 动态共享存储器存储空间的实现方法 |
WO2016086641A1 (zh) * | 2014-12-05 | 2016-06-09 | 中兴通讯股份有限公司 | 缓存的配置方法及装置 |
CN104572498A (zh) * | 2014-12-26 | 2015-04-29 | 曙光信息产业(北京)有限公司 | 报文的缓存管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109302353A (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109565476B (zh) | 使用共享全局存储器储备进行队列保护 | |
US9584332B2 (en) | Message processing method and device | |
KR102594657B1 (ko) | 비순차적 리소스 할당을 구현하는 방법 및 장치 | |
CN110209348B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN105791254B (zh) | 网络请求处理方法、装置及终端 | |
CN111045782A (zh) | 日志处理方法、装置、电子设备和计算机可读存储介质 | |
CN110267276B (zh) | 网络切片部署方法及装置 | |
CN111294792A (zh) | 一种缓存状态上报方法、终端和计算机存储介质 | |
CN117093371B (zh) | 缓存资源分配方法、装置、电子设备和存储介质 | |
CN111124270A (zh) | 缓存管理的方法、设备和计算机程序产品 | |
CN114595043A (zh) | 一种io调度方法和装置 | |
US10348651B2 (en) | Apparatus and method for virtual switching | |
CN109302353B (zh) | 一种分配报文缓存空间的方法及装置 | |
CN107896196B (zh) | 一种分配报文的方法和装置 | |
CN112306693B (zh) | 数据包的处理方法和设备 | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
JP2008516320A (ja) | メモリフレームのサイズを決定する方法および装置 | |
CN102055671A (zh) | 一种多应用发包的优先级管理方法 | |
Julián-Moreno et al. | On the feasibility of 40 gbps network data capture and retention with general purpose hardware | |
CN105988871B (zh) | 一种远端内存分配方法、装置和*** | |
CN114817090B (zh) | 低ram消耗mcu通信管理方法及*** | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN110731109B (zh) | 一种资源指示方法、设备和计算机存储介质 | |
CN115914130A (zh) | 智能网卡的数据流量处理方法及装置 | |
CN117499351A (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 |