一种网络芯片内存管理方法与流程

文档序号:13697222阅读:168来源:国知局
技术领域本发明涉及网络芯片内存管理技术领域,尤其是涉及一种对不同优先级的报文进行差异化的内存管理的网络芯片内存管理方法。

背景技术:
在高密度网络芯片中,如图1所示,多通道的数据汇聚到数据接收模块并调度至芯片内部进行处理。随着外部输入带宽的增加,会出现数据接收模块输出带宽小于输入带宽的现象,称之为网络芯片超带宽。在网络芯片超带宽时,数据接收模块内部的存储器入口流量大于出口流量,引起存储器被占满,进而导致新的数据因为没有存储器而被丢弃。流控是指当接收端预判由于拥塞将无法接受报文时,为了防止丢包,需要通知报文的发送端一段时间内停止发送报文。接收端通过发送一种特殊的数据帧来通知发送端,停止发送报文,这种特殊的数据帧称为暂停(PAUSE)帧。如果数据报文的接收端在发送PAUSE帧后可以处理数据报文,则再发送一个等待时间为0的PAUSE帧通知数据发送端开始发送数据。传统的网络芯片数据接收模块未对网络中不同优先级的数据进行差异化管理,也未将上述流控技术应用在因网络超带宽而产生拥塞的数据接收模块中,因而导致在网络芯片超带宽时,报文会在数据接收模块中被概率性的丢弃,不利于网络芯片对不同类型报文的服务和管理。

技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种网络芯片内存管理方法,通过对不同优先级的报文进行差异化的内存管理,并对所有数据通道进行流控,防止高优先级报文因为网络超带宽而被丢弃。为实现上述目的,本发明提出如下技术方案:一种网络芯片内存管理方法,包括:当网络芯片的数据接收模块收到一个报文时,通过解析报文的关键字段将其映射到相应的优先级上;根据映射到的优先级查到相应的存储阈值,并将所述存储阈值与存储器内统计内存使用情况的计数器的值进行对比,根据对比结果选择丢弃或存储当前报文;若存储器内计数器的值超过置PAUSE帧阈值,则在数据接收模块中产生PAUSE帧通知所有数据通道的报文发送端暂停发送数据。优选地,当数据接收模块收到一个报文时,根据报文的关键字段及通道属性给报文标识优先级,进而得到该报文的存储阈值。优选地,根据报文的关键字段及通道属性给报文标识优先级的过程包括:根据报文不同的关键字段将报文标识为不同的优先级,选择出等级最高的优先级作为所述报文的优先级。优选地,将报文按优先级从高到低依次划分为最高优先级、高优先级、中优先级和低优先级四个优先级,不同的优先级对应不同的存储阈值。优选地,所述数据接收模块的存储器用一个全局的计数器来统计其总的使用情况。优选地,当有数据写进存储器时,对应计数器加1;当数据从存储器中调度出来时,对应计数器减1。优选地,若计数器的值大于存储阈值,则丢弃当前的报文;若计数器的值小于存储阈值,则存储当前的报文。优选地,若存储器内计数器的值小于置PAUSE帧阈值,且已发送过PAUSE帧,则数据接收模块发送一个等待时间为0的PAUSE帧通知数据发送端开始发送数据。本发明的有益效果是:本发明通过解析报文的关键字段,将其映射到相应的优先级上,对不同优先级的报文进行差异化的内存管理,并对所有数据通道进行流控,保证网络中高优先级报文不会因为网络芯片超带宽而发生丢包,增强网络管理能力。附图说明图1是现有网络芯片结构示意图;图2是本发明数据接收模块中内存管理的原理示意图;图3是本发明网络芯片内存管理方法的流程示意图。具体实施方式下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。如图3所示,本发明实施例所揭示的一种网络芯片内存管理方法,适用于网络芯片数据接收模块,包括以下步骤:步骤1,当数据接收模块收到一个报文时,通过解析报文的关键字段将其映射到相应的优先级上。具体地,本实施例中,当数据接收模块收到一个报文时,根据网络应用的需要将报文按照配置(如关键字段及通道属性)标识为不同的优先级,进而得到该报文的存储阈值。结合图2所示,本实施例中,数据接收模块中的内存空间分为四个优先级:a、最高优先级,该优先级只支持bpdu(bridgeprotocoldataunit,网桥协议数据单元)和pause帧存储;b、高优先级,该优先级支持高优先级通道和特定的数据字段存储;c、中优先级,该优先级支持特定的数据字段存储;d、低优先级,支持除了上述优先级报文外所有的普通报文存储。不同的优先级对应不同的存储阈值,存储阈值是每个优先级的存储器所设定的能最大化存储的数据量。例如:解析报文的目的MAC地址(macda)字段,如果满足bpdu和pause帧条件,会被标识为最高优先级;解析报文IEEE802.1pVLAN字段,如果满足配置则根据VlanCOS将报文标识为高优先级;解析报文IPDSCP字段,如果满足配置则根据DSCP将报文标识为高优先级;解析通道优先级属性,根据配置将该通道所有报文标识为中优先级;最后,根据以上四种情况,选择出等级最高的优先级做为该报文的优先级。步骤2,根据映射到的优先级查到相应的存储阈值,并将存储阈值与存储器内统计内存使用情况的计数器的值进行对比,根据对比结果选择丢弃或存储当前报文。具体地,如上述实施例中,根据得到的报文的优先级查找到相应的存储阈值。本发明中,用一个全局的计数器来统计数据接收模块的存储器总的使用情况,当有数据写进存储器时,对应计数器加1;当数据从存储器中调度出来时,对应计数器减1。将查找到的存储阈值与相应优先级存储器内的计数器的值进行对比,若计数器的值大于存储阈值,则丢弃当前的报文;若计数器的值小于存储阈值,则存储当前的报文。但是本发明对于优先级较高的报文,如这里标识为最高优先级的报文,其在计数器的值超过存储阈值时,不能简单丢弃,而是采用相应的流控技术对其进行管理,防止其丢包。具体地,对于标识为最高优先级的报文,若其相应的存储器内计数器的值超过其存储阈值,则数据接收模块产生pause帧通知数据发送端暂停发送数据,当计数器的值小于其存储阈值且已发送过pause帧,则数据接收模块发送一个等待时间为0的pause帧通知数据发送端开始发送数据。这样,可以保证网络中高优先级报文不会因为网络芯片超带宽而发生丢包,提高网络的管理能力。本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1