三态内容寻址存储器及其条目管理方法

文档序号:35500982发布日期:2023-09-20 11:52阅读:30来源:国知局
三态内容寻址存储器及其条目管理方法

本技术涉及存储器领域,尤其是涉及一种三态内容寻址存储器及其条目管理方法。


背景技术:

1、随着互联网的高速发展,网络中节点大幅增长,对路由器接口速率的要求也越来越高,例如支持10g速率的路由器,单包转发处理时间已经要求小于50纳秒,软件路由查找机制显然已不能满足线速转发要求。由于三态内容寻址存储器(tcam)的查表速度快,且解决了cidr最长前缀匹配的问题,已成为业界目前常用的硬件解决方案。

2、现在的tcam条目管理方法主要是有两类,一类是将内部存储的条目严格的按照优先级高到低的顺序进行排布。另一类就是按照有向无环图(dag)的方式将条目进行存储,也就是根据递归的思想对条目进行处理,只需要保证根据传输过来的数据流进行匹配后得到结果根据优先级相对位置正确就可以正确的对数据流进行分类。在tcam条目管理方法中,通常会采用插入备存储层的方式减少条目变化时的条目移动,但是如果不及时对tcam中备存储层及存储条目的分布进行更新调整操作,那么终究有可能出现备选空间越来越集中,存储条目也越来越集中的情况,导致tcam更新时间的延长以及通讯数据的延迟与丢失。


技术实现思路

1、为了解决上述技术问题,本技术提供一种三态内容寻址存储器及其条目管理方法,在每一次更新调整操作都会将备存储层中的条目移动到主存储层中,从而保证备存储层分布均匀,并使得每次进行更新调整操作的操作量较为一致,能够保证tcam更新时间不随使用时间的增加而延长。

2、一种三态内容寻址存储器的条目管理方法,其特征在于,包括条目插入操作和更新调整操作;

3、其中,更新调整操作包括如下步骤:

4、s110、将备存储层中的条目移动至主存储层中;

5、s120、查看是否存在待插入条目,将待插入条目插入主存储层中;

6、s130、检查各个数据流上的相关条目是否按照递归顺序排列,如果不是,对相关条目进行位置调整,使位于同一数据流上的相关条目按照递归顺序排列;

7、s140、重复s130,直至每个数据流上的相关条目都按照递归顺序排列。

8、在上述技术方案中,由于每次更新都将备存储层中的条目移动到主存储层中,保证了备存储层的分布不会随着tcam的使用时间正常而越来越集中,从而保证每次进行更新调整操作所需的时间不会越来越长。

9、在一种可能的实现方式中,s110、将备存储层中的条目移动至主存储层中的操作包括如下步骤:

10、s111、判断主存储层中是否存在与待移动的条目处于同一数据流的相关条目,若无相关条目,则直接将待移动的条目移动至空闲的主存储层,否则执行s112;

11、s112、判断待移动的条目在数据流上的最短路径,若最短路径上的条目的优先级低于待移动的条目,则将最短路径上的条目向更高存储地址的空闲的主存储层移动一次,之后将待移动条目插入对应的主存储层;

12、若最短路径上的条目的优先级高于待移动的条目,则将最短路径上的条目向更低存储地址的空闲的主存储层移动一次,之后将待移动条目插入对应的主存储层。

13、在上述技术方案中,将存储在备存储层中的条目移动到主存储层中,首先半段主存储层中是否存在待移动的条目的相关条目进行判定,若存在相关条目,则根据数据流中的相对顺序判断待移动的条目应该插入的位点,若没有空闲的插入位点,则请求数据流上最短路径上的各个条目进行移动。通过上述操作,能够保证每个主存储层均有相邻的空闲的备存储层可以用于临时存放条目,备存储层的分布较为分散,减少存储空间需要进行更新调整操作的频率。

14、在一种可能的实现方式中,判断待移动的条目在数据流上的最短路径的操作为,对相关条目与待移动的条目进行优先级比较,之后分别得到优先级低于待移动条目的相关条目的数量ni和优先级高于待移动条目的相关条目的数量nj,比较ni与nj的大小;

15、若ni>nj,则最短路径为顺着数据流的流向的路径;

16、若ni≤nj,则最短路径为与数据流的流向相反的路径。

17、在上述技术方案中,对同一数据流中待移动的条目上下的相关条目的数量进行比较,从而判断出最短路径的方向。通过对同一数据流上的相关的条目进行调整,能够防止查找工作无法按数据流流向进行而输出错误的匹配结果。其中,通过最少移动次数算法进行位置调整,具有较高的更新调整效率。

18、在一种可能的实现方式中,对相关条目进行位置调整的操作为,比较同一数据流中的各个相关条目的优先级,确定各个相关条目的有序相对位置,计算条目的当前位置到有序相对位置的最少移动次数并进行移动。

19、在上述技术方案中,通过对当前位置移动到有序相对位置的最少次数进行计算从而对相关条目进行位置调整。

20、在一种可能的实现方式中,三态内容寻址存储器的条目管理方法还包括条目插入操作。更新调整操作被配置为当存储空间中没有能够进行条目插入操作的空闲的主存储层和备存储层时,或者,进行条目插入操作之后,同一数据流上的相关条目未按照递归顺序排列时被动触发。

21、在上述技术方案中,更新调整操作在没有用于条目插入操作的存储空间或者在相关条目没有按照递归顺序排列时,才会被动触发,相对于现有的主动触发的更新调整操作,本方案能够实现对备存储层的最大化利用,减少更新次数,提高条目管理的效率。

22、在一种可能的实现方式中,条目插入操作包括如下步骤:

23、s210、判断存储空间内是否存在待插入条目的相关条目,若无,则执行s220,否则执行s230;

24、s220、判断存储空间内存储有条目的最高存储地址与存储有条目的最低存储地址之间是否存在空闲的主存储层,若有,则将待插入条目插入存储空间内存储有条目的最高存储地址与存储有条目的最低存储地址之间的空闲的主存储层,否则,执行s221;

25、s221、判断存储空间内是否存在空闲的主存储层,若有,则执行s222,否则将待插入条目插入空闲的备存储层;

26、s222、判断存储地址高于存储有条目的最高存储地址的空闲的主存储层的数量与存储地址低于存储有条目的最低存储地址的空闲的主存储层的数量,若存储地址高于存储有条目的最高存储地址的空闲的主存储层的数量较大,则将待插入条目插入与存储有条目的最低存储地址相邻的空闲的主存储层,否则,将待插入条目插入与存储有条目的最高存储地址相邻的空闲的主存储层;

27、s230、查找与待插入条目位于同一数据流上的相关条目并进行优先级比较;

28、若存在至少一条优先级低于待插入条目的相关的条目,获取存储有优先级低于待插入条目的相关的条目的最低存储地址rj.addr;

29、若存在至少一条优先级高于于待插入条目的相关条目,获取存储有优先级高于待插入条目的相关的条目的最高存储地址ri.addr;

30、当仅存在rj.addr时,执行s231,当仅存在ri.addr时,执行s232,当同时存在rj.addr和ri.addr时,执行s233;

31、s231、判断存储有条目的最高存储地址与存储有条目的最低存储地址之间是否存在存储地址低于rj.addr的空闲的主存储层,若有,则将待插入条目插入对应的主存储层,否则将待插入条目插入与存储有条目的最高存储地址相邻的空闲的主存储层;

32、s232、判断存储有条目的最高存储地址与存储有条目的最低存储地址之间是否存在存储地址高于ri.addr的空闲的主存储层,若有,则将待插入条目插入对应的主存储层,否则将待插入条目插入与存储有条目的最低存储地址相邻的空闲的主存储层;

33、s233、比较ri.addr和rj.addr,若ri.addr>rj.addr,则进行更新调整操作,否则,判断存储有条目的最高存储地址与存储有条目的最低存储地址之间是否存在存储地址高于ri.addr且低于rj.addr的空闲的主存储层,若有,则将待插入条目插入对应的主存储层,否则查看ri.addr和rj.addr所对应的主存储层之间是否存在空闲的备存储层,若有,则将待插入条目插入备存储层,否则进行更新调整操作;

34、s234、在完成s231、s232和s233中的任意一步后,检查待插入条目的相关条目是否按照递归顺序排布,若是,则结束操作,否则进行更新调整操作。

35、在上述技术方案中,如果待插入条目与已存储的条目均不相关,则待插入条目可以插入任意空闲的存储单元,当存储空间中存在与待插入条目相关的条目时,则应将待插入条目按照数据流的流向选择插入存储地址,此时,若可插入的主存储层和备存储层均已被占满,或者,检测到各个相关的条目之间的存储地址与数据流的流向不一致时,则触发更新调整操作,以释放出能够存储待插入条目的存储单元或者对存储的条目进行顺序调整。在上述条目插入操作中,除了需要进行更新调整操作的情况外,均只对待插入条目进行操作而不影响其他已存储的条目,操作量小。

36、在一种可能的实现方式中,存储空间还配置有空位表,空位表记录有存储有条目的最高存储地址与存储有条目的最低存储地址之间的空闲的主存储层的存储地址。

37、在一种可能的实现方式中,每个存储空间配置有ptop指针和pbot指针,其中,ptop指针指向存储有存储条目的最低地址,pbot指针指向存储有存储条目的最高地址。

38、在上述技术方案中,使用空位表、ptop指针和pbot指针对于存储状态进行记录,能够方便地读取可能的存储单元对应的存储地址,减少每次进行更新调整操作时检测存储状态带来的操作量。

39、在一种可能的实现方式中,三态内容寻址存储器还包括条目删除操作和条目插入操作;

40、其中,条目插入操作为,将被替换的条目删除,之后在被替换的条目的存储地址插入新替换条目;

41、其中,条目删除操作包括:

42、s310、将待删除条目标记为待删除条目,判断待删除条目是否存储在主存储层,若是,则执行s320,否则直接删除待删除条目;

43、s320、判断待删除条目是否位于ptop指针或pbot指针所指存储地址,若是则执行s321,否则执行s322;

44、s321、若待删除条目位于ptop指针所指存储地址,则删除待删除条目,同时令ptop指针重新确定存储有条目的主存储层的最低存储地址;

45、若待删除条目位于pbot指针所指存储地址,则删除待删除条目,同时令pbot指针重新确定存储有条目的主存储层的最高存储地址;

46、s322、删除待删除条目,并将待删除条目所在的存储地址填入空位表。

47、在上述技术方案中,条目替换操作仅对被删除的条目和新替换条目进行操作,其他条目、空位表、ptop指针和pbot指针均不发生改变,操作量小。

48、在上述技术方案中,条目删除操作包括三种情况,当待删除条目存储于备存储层时,条目删除操作不会对空位表、ptop指针和pbot指针造成影响;当待删除条目存储在ptop指针或pbot指针所指存储地址时,则需要在删除待删除条目后,重新确定指针所指存储地址;当带删除条目位于非ptop指针或pbot指针所指的主存储层时,则需要在删除后将对应的存储地址加入到空位表中。上述条目删除操作仅对待删除条目进行操作而不影响其他已存储的条目,操作量小。

49、相应地,本技术还提供了一种三态内容寻址存储器,被配置为实现上述三态内容寻址存储器的条目管理方法,包括:

50、第一处理模块,用于进行更新调整操作。

51、通过上述技术方案,本发明提供的三态内容寻址存储器能够实现上述的条目管理方法,从而保证了正确的匹配结果和对备存储层的有效利用。

52、与现有技术相比,本技术提供的三态内容寻址存储器的条目管理方法包括调整更新操作,更新调整操作包括两个部分,首先是将存储在备存储层中的条目移动到主存储层中,以保证每个主存储层均有相邻的空闲的备存储层可以用于临时存放条目,备存储层的分布较为分散,条目变化所需的操作量小同时防止存储空间需要频繁进行更新调整操作,之后对同一数据流上的相关的条目进行调整,防止查找工作无法按数据流流向进行。其中,无论是对备存储层中的条目进行调整还是对相关的条目进行调整,均通过最短路径和/或最少移动次数算法选定移动的条目,以实现较高的更新调整效率。相对于现有技术,本方法减少了调整更新操作的频率,能够保证tcam更新时间不随使用时间的增加而延长,同时还保证了输出的匹配结果具有较高的正确率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1