一种表项保存方法和控制器的制造方法

文档序号:9923566阅读:176来源:国知局
一种表项保存方法和控制器的制造方法
【技术领域】
[0001 ]本发明设及通信技术领域,尤其设及一种表项保存方法和控制器。
【背景技术】
[0002] 转发设备处理报文是基于一系列的表项完成的。表项在转发设备上占用的内存可 W分为转发忍片内部的内存和转发忍片外部的内存,为了便于说明,下文将运两种内存分 别称为片内内存和片外内存。通常片内内存的空间小但带宽高,片外内存的空间大但带宽 较小。
[0003] 转发设备在出厂时,其支持的业务和每个类型的表项的规格都是确定的。每种业 务的完成需要一系列的表项来支持,转发设备支持的业务确定了意味着转发设备支持的表 项的类型也是确定的。表项的规格表示表项可W同时配置的最大数量,例如,某一类型的表 项的规格为10000,表示同一时间存储在该转发设备上的运一类型的表项的数量不能超过 1000 Oo
[0004] 目前各类型的表项在转发设备上的存储位置在转发设备出厂时便是规划好的。例 如,转发设备可W预先规定将带宽要求高占用内存小的表项部署在片内内存,如下表1中的 表(Table)A和Table B;将带宽要求低的表项部署在片外内存,如下表1中的Table C和 化ble D;对带宽要求高占用内存也大的表项采用分段部署,即将运类表项的一部分部署在 片内内存,另一部分部署在片外内存,如下表1中的化We E。
[0005] 表 1
[000引由于表项的部署位置是固定的,表项不论是否配置都会占用转发设备的空间和带 宽,而转发设备实际使用的规格往往远小于转发设备支持的规格,从而实际使用的内存可 能只是片内内存和片外内存的一小部分,导致片内内存的带宽和空间利用率低。

【发明内容】

[0009]本申请提供一种表项保存方法和控制器,用W解决转发设备采用固定方式部署表 项导致片内内存的带宽和空间利用率低的问题。
[0010] 第一方面,提供了一种表项保存方法,方法包括:
[0011] 控制器将转发设备的第一内存和第二内存包括的每个物理块均划分为多个小颗 粒存储单元,每个小颗粒存储单元用于存储同种类型的表项;所述第一内存的带宽大于所 述第二内存的带宽;
[0012] 所述控制器生成第一表项,并在保存所述第一表项之前,首先判断所述第一内存 和所述第二内存中是否已经存储有与所述第一表项属于同一类型的表项;
[0013] 若所述第一内存和所述第二内存中未存储有与所述第一表项属于同一类型的表 项,则所述控制器在确定所述第一内存包括的第一物理块的剩余带宽和剩余空间不小于所 述第一表项需要的带宽和空间时,可W在所述第一物理块中确定出未被任何表项占用的第 一小颗粒存储单元,所述第一物理块为所述第一内存包括的各个物理块中的一个,所述第 一小颗粒存储单元为对所述第一物理块划分得到的多个小颗粒存储单元中的任意一个;
[0014] 所述控制器将所述第一表项发送给所述转发设备,并指示所述转发设备将所述第 一表项保存到所述第一小颗粒存储单元中。
[001引通过上述方式,通过将内存划分成小颗粒存储单元,并在转发设备片内内存带宽 和空间足够的情况下,让表项优先占用高速的片内内存,更充分地利用了片内内存的带宽 和空间。
[0016] 在一个可能的设计中,控制器将转发设备的第一内存和第二内存包括的每个物理 块划分为多个小颗粒存储单元时,可W通过如下方式实现:
[0017] 控制器将转发设备的第一内存和第二内存包括的每个物理块划分为大小为N的多 个小颗粒存储单元;
[001引相应的,所述方法还包括:
[0019] 所述控制器确定在生成所述第一表项之前已生成的与所述第一表项属于同一类 型的其它表项的数量m;
[0020] 若m=0,则所述控制器确定所述第一内存或所述第二内存中未存储有与所述第一 表项属于同一类型的表项;
[0021 ]若m辛0,则所述控制器确定所述第一内存或所述第二内存中存储有与所述第一表 项属于同一类型的表项;
[0022] 当m = 0时,或是当m辛0,且m为
的整数倍时,L为所述第一表项的位宽,所述控 制器可W在确定所述第一物理块的剩余带宽和剩余空间不小于所述第一表项需要的带宽 和空间时,在所述第一物理块中确定所述第一小颗粒存储单元;其中,当m辛0,且m为
的整数倍时,表明虽然所述第一内存和第二内存中存储有与所述第一类型属于同一类型的 表项,但分配给运些表项的小颗粒存储单元已存满。
[0023] 所述控制器将所述第一表项发送给所述转发设备,并指示所述转发设备将所述第 一表项保存到所述第一小颗粒存储单元中。
[0024] 在一个可能的设计中,所述方法还包括:
[00巧]若m不为 的整数倍,表明所述第一内存和第二内存中存储有与所述第一类型 属于同一类型的表项,并且分配给运类表项的小颗粒存储单元还足够存下所述第一表项, 则所述控制器确定存储有第二表项的第二小颗粒存储单元;所述第二表项为在所述第一表 项前一个生成的、与所述第一表项属于同一类型的表项;
[0026] 所述控制器将所述第一表项发送给所述转发设备,并指示所述转发设备将所述第 一表项保存到所述第二小颗粒存储单元中。
[0027] 在一个可能的设计中,所述方法还包括:
[0028] 若m为
的整数倍,所述第一内存包括的每个物理块的剩余带宽小于所述第一 表项需要的带宽;m可W等于0,也可W不等于0;
[0029] 则所述控制器确定在所述第一内存包括的第二物理块上保存的第一类型的表项, W及确定所述第二物理块上用于保存所述第一类型的表项的所有小颗粒存储单元;所述第 一类型的表项的优先级低于所述第一表项的优先级,所述第二物理块为所述第一内存包括 的各个物理块中的任意一个;
[0030] 所述控制器将所述第一表项发送给所述转发设备,并指示所述转发设备将所述所 有小颗粒存储单元中保存的表项移动到所述第二内存中,W及指示所述转发设备将所述第 一表项保存到所述所有小颗粒存储单元中的其中一个小颗粒存储单元中。
[0031 ]在一个可能的设计中,所述方法还包括:
[0032] 若m为
的整数倍,所述第一内存包括的每个物理块的剩余空间小于所述第一 表项需要的空间;m可W等于0,也可W不等于0;
[0033] 则所述控制器确定在所述第一内存包括的第=物理块上保存的第二类型的表项, W及确定所述第=物理块上用于保存所述第二类型的表项的一个小颗粒存储单元;所述第 二类型的表项的优先级低于所述第一表项的优先级,所述第=物理块为所述第一内存包括 的各个物理块中的任意一个;
[0034] 所述控制器将所述第一表项发送给所述转发设备,并指示所述转发设备将所述一 个小颗粒存储单元中保存的表项移动到所述第二内存中,W及指示所述转发设备将所述第 一表项保存到所述一个小颗粒存储单元中。
[0035] 通过上述两种方式,在转发设备片内内存带宽或空间不足的情况下,优先将片内 内存中优先级较低的表项切换到片外内存,从而充分利用了皮纳内内存的带宽和空间。
[0036] 在一个可能的设计中,所述方法还包括:
[0037] 所述控制器删除第=小颗粒存储单元上的第=表项,所述第=小颗粒存储单元位 于所述第一内存包括的第四物理块上,所述第四物理块为所述第一内存包括的各个物理块 中的任意一个,所述第=小颗粒存储单元为对所述第四物理块划分得到的多个小颗粒存储 单元中的任意一个;
[0038] 若删除所述第=表项后的第=小颗粒存储单元未被任何表项占用、且删除所述第 =表项后的所述第四物理块上还保存有与所述第=表项属于同一类型的其它表项、并保存 有第=类型的表项,则所述控制器指示所述转发设备将所述第二内存中保存的所述第=类 型的表项从所述第二内存的一个小颗粒存储单元移动到所述第=小颗粒存储单元,所述第 =类型与所述第=表项所属的类型为不同类型;或
[0039] 若删除所述第=表项后的所述第四物理块上未保存有与所述第=表项属于同一 类型的其它表项,则所述控制器指示所述转发设备将所述第二内存中保存的优先级最高的 表项从所述第二内存的一个小颗粒存储单元移动到所述第=小颗粒存储单元。
[0040] 通过上述方式,在转发设备片内内存中有表项删除时,优先将片外内存中优先级 较高的表项切回至片内内存,从而实现了片内内存的带宽和空间的最大利用。
[0041] 第二方面,提供了一种控制器,所述控制器具有实现上述方法的功能。所述功能可 W通过硬件实现,也可W通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个 与上述功能相对应的模块。
[0042] 在一个可能的设计中,所述控制器包括:
[0043] 划分单元,用于将转发设备的第一内存和第二内存包括的每个物理块划分为多个 小颗粒存储单元,每个小颗粒存储单元用于存储同种类型的表项;所述第一内存的带宽大 于所述第二内存的带宽;
[0044] 生成单元,用于生成第一表项;
[0045] 确定单元,若所述第一内存和所述第二内存中未存储有与所述第一表项属于同一 类型的表项,则用于在确定所述第一内存包括的第一物理块的剩余带宽和剩余空间不小于 所述第一表项需要的带宽和空间时,在所述第一物理块中确定未被任何表项占用的第一小 颗粒存储单元,所述第一物理块为所述第一内存包括的各个物理块中的一个,所述第一小 颗粒存储单元为对所述第一物理块划分得到的多个小颗粒存储单元中的任意一个;
[0046] 发送单元,用于将所述第一表项发送给所述转发设备,并指示所述转发设备将所 述第一表项保存到所述第一小颗粒存储单元中。
[0047] 在另一个可能的设计中,所述移动终端包括存储器、处理器和通信接口,所述存储
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1