数据包缓存管理方法和设备的制作方法

文档序号:7646784阅读:330来源:国知局
专利名称:数据包缓存管理方法和设备的制作方法
技术领域
本发明涉及网络通信数据存储技术,是一种用来在高速网络通信中提高数据包 缓存带宽的处理方法。
背景技术
随着网络通信带宽的急剧增长,作为网络通信核心设备的路由器,其接口速率 已经逼近lOOGbps,甚至是200Gbps。路由器为了实现流量管理功能,进行大量数目队列 的管理和调度,需要将数据包进行缓冲存储。随着网络线速的急剧增长,能够满足大量 数据高速缓冲存储要求的带宽也呈现出了极大的瓶颈。数据包缓存一般采用芯片外挂存储器的方式来实现,存储量大时主要是使用外 部的 SDRAM (Synchronous Dynamic RandomAccess Memory,同步动态随机存储器)来实 现。当前主流的DDR3 SDRAM (Double Data Rate 3SDRAM,双倍速率同步动态随机存储
器)的实际最大工作频率在667MHz,单片颗粒最大4Gbit,位宽8bit或4bit。综合单板 的设计难度,以及芯片的封装难度,流量管理芯片外挂DDR3SDRAM的能力已经接近极 限。由于DDR3SDRAM是按照burst (突发)来存取数据的,一次传输给SDRAM的数据 必须为1个burst长度,32bit位宽的DDR3接口每个burst传输32字节的数据。在极端 字节下,例如传输65字节需要3个burst,其中第3个burst中只有1字节的有效数据,造 成了带宽的浪费。所以很难满足全字节下的线速要求。在现有的技术中,65字节的问题主要是通过提高SDRAM的工作频率,以及增 加SDRAM的组数来解决。实际上是提高了总线的总带宽,但仍旧在总线利用率不高的 情况下工作,浪费了带宽。另外一种解决65字节的方法,是将前后数据包首尾相接地拼接起来,使得通过 DDR3SDRAM的burst数据都为有效数据,以提高带宽的利用率,这种方法实现起来很复杂。在ASIC (Application Specific Integrated Circuit,专用集成电路)中,65nm 和 40nm工艺下,芯片中可以实现0.5Gb到IGb的片内eDRAM(embededDRAM,嵌入式 DRAM)。虽然在片内使用eDRAM作为数据包缓存可以轻松地满足线速的要求,但是容 量方面较外部存储器还是有较大差距。所以在片内使用eDRAM作为数据包缓存一般针 对队列数比较少的情况,队列数量大时仍旧需要以外部存储器作为主要的数据存储器。

发明内容
本发明要解决的技术问题是提供一种数据包缓存管理方法和设备,以提高缓存 带宽利用率。为解决以上技术问题,本发明提供了一种数据包缓存管理方法,该方法包括通信设备接收写指令,获取数据包信息;所述通信设备根据所述数据包信息及预置的缓存策略确定所述数据包的缓存方式,所述缓存方式包括外部缓存方式以及外部缓存和内部缓存结合的内外结合缓存方 式;所述通信设备根据确定的缓存方式,缓存所述数据包至外部缓存装置,或,外 部缓存装置和内部缓存装置。进一步地,根据所述缓存策略确定采用外部缓存方式的数据包符合以下至少一 个条件数据包长大于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数大于预设余数阈值;或,与外部缓存节点对应的内部缓存节点中已缓存数据,且适用该条件时,所 述外部存储装置和内部存储装置包括均包括若干个缓存节点,且多个外部缓存节点共享 一个内部缓存节点;根据所述缓存策略确定采用内外结合缓存方式的数据包符合以下至少一个条 件数据包长小于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数小于预设余数阈值;或,与外部缓存节点对应的内部缓存节点中未缓存数据。进一步地,所述通信设备根据所述数据包的信息及预置的缓存策略确定所述数 据包的缓存方式的步骤包括(a)判断所述数据包长是否大于预设的包长阈值,若是则确定采用外部缓存方 式,否则执行步骤(b);(b)判断所述数据包长对突发(burst)长度求余的余数是否大于预设余数阈值, 若是,则确定采用外部缓存方式,否则执行步骤(C);(c)判断与外部缓存地址对应的内部缓存中是否缓存数据,若是,则确定采用外 部缓存方式,否则采用内外结合缓存方式;所述外部存储装置和内部存储装置包括均包括若干个缓存节点,且多个外部缓 存节点共享一个内部缓存节点。进一步地,所述包长阈值是根据以下公式确定的
权利要求
1.一种数据包缓存管理方法,其特征在于,该方法包括 通信设备接收写指令,获取数据包信息;所述通信设备根据所述数据包信息及预置的缓存策略确定所述数据包的缓存方式, 所述缓存方式包括外部缓存方式以及外部缓存和内部缓存结合的内外结合缓存方式;所述通信设备根据确定的缓存方式,缓存所述数据包至外部缓存装置,或,外部缓 存装置和内部缓存装置。
2.如权利要求1所述的方法,其特征在于根据所述缓存策略确定采用外部缓存方 式的数据包符合以下至少一个条件数据包长大于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数大于预设余数阈值; 或,与外部缓存节点对应的内部缓存节点中已缓存数据,且适用该条件时,所述外 部存储装置和内部存储装置包括均包括若干个缓存节点,且多个外部缓存节点共享一个 内部缓存节点;根据所述缓存策略确定采用内外结合缓存方式的数据包符合以下至少一个条件 数据包长小于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数小于预设余数阈值; 或,与外部缓存节点对应的内部缓存节点中未缓存数据。
3.如权利要求1所述的方法,其特征在于所述通信设备根据所述数据包的信息及 预置的缓存策略确定所述数据包的缓存方式的步骤包括(a)判断所述数据包长是否大于预设的包长阈值,若是则确定采用外部缓存方式,否 则执行步骤(b);(b)判断所述数据包长对突发(burst)长度求余的余数是否大于预设余数阈值,若 是,则确定采用外部缓存方式,否则执行步骤(C);(C)判断与外部缓存地址对应的内部缓存中是否缓存数据,若是,则确定采用外部缓 存方式,否则采用内外结合缓存方式;所述外部存储装置和内部存储装置包括均包括若干个缓存节点,且多个外部缓存节 点共享一个内部缓存节点。
4.如权利要求2或3所述的方法,其特征在于所述包长阈值是根据以下公式确定的Wαζ+Λ+叹(A用i = 其中W为芯片带宽,Bs为外部缓存装置提供的带宽,B为突发的长度、L为待缓存包的包长,符合该公式的L值记为包长阈值;K个外部缓存节点共享一个内部缓存节点,所述K值的计算公式为K-I1ceiling(L_max,B)-+ floor{L_max,B)—= Bs,其中,在包长小于包长阈KK值的范围内,采用ceilingCL,B) XS对每个小于L_th的包长计算一次所需的外部缓存装置带宽,其中最大带宽所对应的包长值即为L_max;余数阈值的确定方法为确定好共享节点数目K之后,按照从大到小的原则,选取若干个小于burst长度B的数值R,每次取值R之后,采用共享节点方式分别对小于1^_max的包长来计算所需的外部缓存装置带宽,若所有小于L_max的包所需的外部缓存装 置带宽小于或等于外部缓存装置能提供的带宽,此时的R就为余数预置。
5.如权利要求1所述的方法,其特征在于,缓存数据包时,若为外部缓存方式,则将 所述数据包直接缓存到外部缓存装置,若为内外结合缓存方式,则将所述数据包划分为 数据包体和数据包尾,将所述数据包体缓存到所述外部缓存装置,将所述数据包尾缓存 到内部缓存装置;缓存所述数据包后,该方法还包括所述通信设备接收读指令,获取其中的要读取的数据包的信息;所述通信设备根据所述信息确定所述数据包的缓存方式,确定为外部缓存方式时,所述通信设备从外部缓存装置读取数据包并输出;确定为 内外结合缓存方式时,所述通信设备从外部缓存装置读取数据包头,从所述内部缓存装 置读取数据包尾,并将所述数据包尾拼接在所述数据包体后组成完整的数据包输出。
6.如权利要求5所述的方法,其特征在于所述外部存储装置和内部存储装置包括 均包括若干个缓存节点,且多个外部缓存节点共享一个内部缓存节点,所述内部缓存节 点结构包括用于缓存数据的内部缓存空间,用于指示外部缓存节点在对应共享节点组中 的偏移地址以及该内部缓存空间是否有效的数据有效指示;所述读指令中的数据包信息包括所述数据包储存的外部缓存节点信息,所述通信设 备执行读指令确认缓存方式时,若所述外部缓存节点所在的共享节点组对应的内部缓存 节点中的偏移地址指向所述外部缓存节点,且所述数据有效指示表明该内部缓存空间有 效,确定缓存方式为内外结合缓存方式,否则确定为外部缓存方式。
7.如权利要求5所述的方法,其特征在于所述读指令中的数据包信息还包括包长 信息,具体读取时,根据包长信息确定数据包所占的突发(burst)个数N,确定为外部缓 存方式时,从外部缓存装置读取N个burst获取完整数据包;确定为内外结合缓存方式 时,从外部缓存装置中读取N-I个burst作为包体,再将内部缓存装置中的对应包尾拼接 在包体后面组成完整的包进行输出,完成读出过程。
8.—种数据包缓存管理设备,其特征在于,该设备包括指令处理装置、外部缓存装 置和内部缓存装置,其中所述指令处理装置包括指令接收单元、缓存方式确定单元和数据包处理单元,其 中,所述指令接收单元,用于接收写指令,并获取所述写指令中的数据包的信息;所述缓存方式确定单元,用于根据所述写指令中所述数据包的信息及预置的缓存策 略确定所述数据包的缓存方式,所述缓存方式包括外部缓存方式以及外部缓存和内部缓 存结合的内外结合缓存方式;所述数据包读写单元,用于根据确定的缓存方式,缓存所述数据包;所述外部缓存装置和内部缓存装置用于缓存所述数据包。
9.如权利要求8所述的设备,其特征在于根据所述缓存策略确定采用外部缓存方 式的数据包符合以下至少一个条件数据包长大于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数大于预设余数阈值;或,与外部缓存节点对应的内部缓存节点中已缓存数据,且适用该条件时,所述外 部存储装置和内部存储装置包括均包括若干个缓存节点,且多个外部缓存节点共享一个内部缓存节点;根据所述缓存策略确定采用内外结合缓存方式的数据包符合以下至少一个条件数据包长小于预设的包长阈值;或,数据包长对突发(burst)长度求余的余数小于预设余数阈值;或,与外部缓存节点对应的内部缓存节点中未缓存数据。
10.如权利要求8所述的设备,其特征在于所述缓存方式确定单元确定缓存方式 时,先判断所述数据包长是否大于预设的包长阈值,若是则确定采用外部缓存方式,否 则再判断所述数据包长对突发(burst)长度求余的余数是否大于预设余数阈值,若是,则 确定采用外部缓存方式,否则进一步判断与外部缓存地址对应的内部缓存中是否缓存数 据,若是,则确定采用外部缓存方式,否则采用内外结合缓存方式;所述外部存储装置 和内部存储装置包括均包括若干个缓存节点,且多个外部缓存节点共享一个内部缓存节 点ο
11.如权利要求9所述的设备,其特征在于,缓存数据包时,若为外部缓存方式,则 数据包读写单元将所述数据包直接缓存到外部缓存装置,若为内外结合缓存方式,则数 据包读写单元将所述数据包划分为数据包体和数据包尾,将所述数据包体缓存到所述外 部缓存装置,将所述数据包尾缓存到内部缓存装置;所述指令接收单元还用于接收读指令,获取其中的要读取的数据包的信息;所述缓存方式确定单元,还用于根据所述读指令中的数据包信息确定所述数据包的 缓存方式;确定为外部缓存方式时,所述数据包读写单元,从外部缓存装置读取数据包并输 出;确定为内外结合缓存方式时,所述数据包读写单元,从外部缓存装置读取数据包 头,从所述内部缓存装置读取数据包尾,并将所述数据包尾拼接在所述数据包体后组成 完整的数据包输出。
12.如权利要求11所述的设备,其特征在于所述外部存储装置和内部存储装置包 括均包括若干个缓存节点,且多个外部缓存节点共享一个内部缓存节点,所述内部缓存 节点结构包括用于缓存数据的内部缓存空间,用于指示外部缓存节点在对应共享节点组 中的偏移地址、实时该内部缓存空间是否有效的数据有效指示;所述读指令中的数据包信息包括所述数据包储存的外部缓存节点信息,所述缓存方 式确定单元,执行读指令确认缓存方式时,若所述外部缓存节点所在的共享节点组对应 的内部缓存节点中的偏移地址指向所述外部缓存节点,且所述数据有效指示表明该内部 缓存空间有效,确定缓存方式为内外结合缓存方式,否则确定为外部缓存方式。
13.如权利要求11所述的设备,其特征在于所述读指令中的数据包信息还包括包 长信息,所述数据包读写单元根据包长信息确定数据包所占的burst个数N,确定为外部 缓存方式时,从外部缓存装置读取N个burst获取完整数据包;确定为内外结合缓存方式 时,从外部缓存装置中读取N-I个burst作为包体,再将内部缓存装置中的对应包尾拼接 在包体后面组成完整的包进行输出,完成读出过程。
全文摘要
本发明涉及一种数据包缓存管理方法和设备,该方法包括通信设备接收写指令,获取数据包信息;所述通信设备根据所述数据包信息及预置的缓存策略确定所述数据包的缓存方式,所述缓存方式包括外部缓存方式以及外部缓存和内部缓存结合的内外结合缓存方式;所述通信设备根据确定的缓存方式,缓存所述数据包至外部缓存装置,或,外部缓存装置和内部缓存装置。本发明方法和设备可以提高缓存带宽利用率。
文档编号H04L12/56GK102025634SQ20101059175
公开日2011年4月20日 申请日期2010年12月16日 优先权日2010年12月16日
发明者陈敏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1