一种缓存分配方法、装置及网络处理器制造方法及图纸

技术编号:15122683 阅读:57 留言:0更新日期:2017-04-10 01:24
本发明专利技术的实施例提供一种缓存分配方法、装置及网络处理器,涉及通信领域,缓存分配方法包括:将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源。本发明专利技术的方案可以更加有效利用网络处理器的缓存资源。

【技术实现步骤摘要】

本专利技术涉及通信领域,特别是指一种应用于网络处理器的端口的缓存分配方法、装置及网络处理器
技术介绍
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。目前网络芯片包括ASIC(专用集成电路)和NP(网络处理器)两大类。网络处理器凭借其高速处理及灵活的可编程性,已成为当今网络中数据处理的有效解决方案。如图1所示,网络处理器内部通常包含两个单元:包缓存单元和包处理引擎。报文进入网络处理器,首先进入包缓存单元中与入端口相应的队列中;然后,报文头进入包处理引擎,微码负责处理包头,对报文进行修改后重新进入包缓存单元,与包缓存单元相应队列取出原包进行链接后从端口发送出去。如图2所示,包缓存单元中包含多个队列,每个队列对应于一个入端口。包缓存单元包含一块缓存(buffer),该内存为不同端口的队列共用。现有队列缓存的分配方式通常采用固定分配的方式,即根据端口速率分配缓存。比如,某芯片包含2个10G端口和10个1GE端口(千兆以太网接口),如果缓存总大小为60K,则每个10G端口分配20K内存,每个1GE端口分配2K内存。这种传统的缓存分配方式存在一个弊端,由于端口流量的突发性和随机性,会出现某些端口队列缓存区耗尽而某些队列缓冲区没有使用的情况,因此队列缓存区这一宝贵资源没有得到充分利用。
技术实现思路
本专利技术要解决的技术问题是提供一种缓存分配方法、装置及网络处理器,可以更加有效利用网络处理器缓存资源。为解决上述技术问题,本专利技术的实施例提供的技术方案如下:一种缓存分配方法,包括:将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源。其中,在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源的步骤包括:在固定预留缓存区域中,按照端口的数据传输速率为网络处理器的每个端口分别分配一块固定缓存资源。其中,所述动态共享缓存区域包括:多个动态缓存资源池或者与网络处理器的端口类型一一对应的动态缓存资源池;其中,所述网络处理器的端口类型是根据端口的数据传输速率划分的。其中,所述从动态共享缓存区域中为该端口分配动态缓存资源的步骤包括:从动态共享缓存区域中的多个动态缓存资源池中或者与该端口类型对应的动态缓存池中,为该端口分配动态缓存资源。本专利技术的实施例还提供一种缓存分配装置,包括:划分模块,用于将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;第一分配模块,用于在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;第二分配模块,用于在一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源。其中,第一分配模块具体用于:在固定预留缓存区域中,按照端口的数据传输速率为网络处理器的每个端口分别分配一块固定缓存资源。其中,所述动态共享缓存区域包括:多个动态缓存资源池或者与网络处理器的端口类型一一对应的动态缓存资源池;其中,所述网络处理器的端口类型是根据端口的数据传输速率划分的。其中,所述第二分配模块具体用于:从动态共享缓存区域中的多个动态缓存资源池中或者与该端口类型对应的动态缓存池中,为该端口分配动态缓存资源。本专利技术的实施例还提供一种网络处理器,包括多个端口和缓存单元,以及如上所述的缓存分配装置。其中,上述网络处理器还包括:与所述缓存单元连接的处理引擎,所述处理引擎接收来自所述缓存单元中的数据包,并进行处理,将处理后的数据包返回所述端口。本专利技术的方案至少具有以下优点:本专利技术的上述方案通过将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源;从而保证在端口流量突然增大时,可以更加有效利用网络处理器缓存资源。附图说明图1为网络处理器内部结构简化示意图;图2为现有的网络处理器缓存单元队列缓存分配方式示例图;图3为本专利技术的缓存分配方法流程图;图4为本专利技术的网络处理器缓存单元端口缓存分配方式示例图;图5为本专利技术的实施例的缓存分配示意图;图6为本专利技术的实施例的缓存分配流程图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本专利技术的核心思想是将网络处理器缓存单元划分为两部分:固定预留缓存区域和动态共享缓存区域。具体的,固定预留缓存区域和动态共享缓存区域的大小可以通过调试取最优值,固定预留缓存区域为队列专有分配区域,类似于传统方式,每个队列按照端口速率分配;动态共享缓存区域划分为一个个资源池,为多个端口的数据包队列共享。每个端口队列都需要指定其动态缓存资源池。每个端口流量进入网络处理器,首先到端口相应队列的固定预留缓存区域申请缓存资源,如果固定预留缓存区域耗尽,再从其指定的动态缓存资源池中申请分配缓存资源。如图3所示,本专利技术的实施例提供一种缓存分配方法,包括:步骤31,将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;步骤32,在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;步骤33,若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源。本专利技术的上述方案通过将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源;从而保证在端口流量突然增大时,可以更加有效利用网络处理器缓存资源。本专利技术的一具体实施例中,步骤12具体可以是:在固定预留缓存区域中,按照端口的数据传输速率为网络处理器的每个端口分别分配一块固定缓存资源。其中,所述动态共享缓存区域包括:多个动态缓存资源池;所述从动态共享缓存区域中为该端口分配动态缓存资源的步骤可以具体是:从动态共享缓存区域中的多个动态本文档来自技高网...

【技术保护点】
一种缓存分配方法,其特征在于,包括:将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存资源;若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓存区域中为该端口分配动态缓存资源。

【技术特征摘要】
1.一种缓存分配方法,其特征在于,包括:
将网络处理器的缓存单元划分为固定预留缓存区域和动态共享缓存区域;
在固定预留缓存区域中,为网络处理器的每个端口分别分配一块固定缓存
资源;
若一端口的实际流量大于为该端口分配的固定缓存资源,则从动态共享缓
存区域中为该端口分配动态缓存资源。
2.根据权利要求1所述的缓存分配方法,其特征在于,在固定预留缓存
区域中,为网络处理器的每个端口分别分配一块固定缓存资源的步骤包括:
在固定预留缓存区域中,按照端口的数据传输速率为网络处理器的每个端
口分别分配一块固定缓存资源。
3.根据权利要求1所述的缓存分配方法,其特征在于,所述动态共享缓
存区域包括:多个动态缓存资源池或者与网络处理器的端口类型一一对应的动
态缓存资源池;其中,所述网络处理器的端口类型是根据端口的数据传输速率
划分的。
4.根据权利要求3所述的缓存分配方法,其特征在于,所述从动态共享
缓存区域中为该端口分配动态缓存资源的步骤包括:
从动态共享缓存区域中的多个动态缓存资源池中或者与该端口类型对应
的动态缓存池中,为该端口分配动态缓存资源。
5.一种缓存分配装置,其特征在于,包括:
划分模块,用于将网络处理器的缓存单元划分为固定预留缓存区域和动态
共享缓存区域;

【专利技术属性】
技术研发人员:姜海明孔玲丽
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1