一种便捷的交换设备存储单元管理办法的制作方法

未命名 09-17 阅读:73 评论:0


1.本技术涉及以太网交换的技术领域,特别是一种便捷的交换设备存储单元管理办法。


背景技术:

2.交换网络普遍应用于高速大流量数据传输,交换设备作为不同子网的桥梁是当代通信网络的关键组成部分。交换的本质是对网络报文进行先存储再转发。因此,面对不断增加的网络需求,设备对存储的分配管理是否合理将直接影响交换的时延,丢包率等性能,对网络质量产生重要的影响。
3.通常系统内部的存储由该系统处理器进行统一管理,处理器为接收的报文分配空闲的存储空间,即提供一个可访问的存储地址。由于交换设备的功能特性,内部的存储将被快速的占用或者释放,且存储的报文并不能有序的被读出,因此需要不断的刷新存储的使用情况,有效统计空闲存储进行快速分配,避免报文丢弃。如果使用处理器来监测及分配存储地址,将会严重占用处理器资源,管理效率较低,造成转发时延增大。


技术实现要素:

4.本发明针对以上问题,提出一种无需处理器管理的便捷交换设备存储单元管理办法,能够硬件实现无需外部管理,保证了管理效率与转发时延。
5.第一方面,提供了一种存储单元管理办法,所述方法应用于报文库,所述报文库包括多个存储单元,所述方法包括:
6.根据地址链表和第一指针,为待写入报文分配存储单元,所述地址链表包括具有关联关系的地址标识和内容,所述第一指针指示所述地址链表中的地址标识,所述地址标识对应的内容用于指示可用存储单元;
7.根据所述存储单元的回收情况,更新所述地址链表和第二指针,所述地址链表中待更新的内容通过更新前的第二指针指示,更新后的内容和更新后的第二指针均对应当前回收的存储单元。
8.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:
9.为目标端口预分配m个存储单元,所述m个存储单元的存储量大于或等于报文的最大长度。
10.结合第一方面,在第一方面的某些实现方式中,所述根据地址链表和第一指针,为待写入报文分配存储单元,包括:
11.根据所述地址链表和第一指针pr_a=i,在地址链表的地址i处查询到的内容为存储单元k,所述存储单元k为预分配的存储单元,同时更新pr_a=k。
12.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:
13.获取待写入报文的长度;
14.根据所述待写入报文的长度,确定下一次额外预留n个存储单元,所述n个存储单
元的存储量大于或等于待写入报文的长度,n-1个存储单元的存储量小于待写入报文的长度。
15.结合第一方面,在第一方面的某些实现方式中,所述根据所述存储单元的回收情况,更新所述地址链表和第二指针,包括:
16.根据回收的存储单元p和第二指针pr_s=q,在地址链表的地址q处写入p,同时更新pr_s=p;
17.其中,在所述pr_s和pr_a相等的情况下,所述存储空间全部被占用。
18.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:
19.获取待写入报文的长度;
20.根据待写入报文的长度、所述地址链表和第一指针pr_a=i,将存储单元i分配用于写入报文,同时更新pr_a=k,k为地址链表的地址i处对应的内容。
21.结合第一方面,在第一方面的某些实现方式中,所述根据所述存储单元的回收情况,更新所述地址链表和第二指针,包括:
22.根据回收的存储单元p和第二指针pr_s=q,在地址链表的地址q处写入p,同时更新pr_s=p;
23.其中,在所述pr_s和pr_a相等的情况下,所述存储空间剩余1个存储单元可用。
24.结合第一方面,在第一方面的某些实现方式中,所述地址链表初始化后满足:地址i对应的内容为i+1,i=0~254,所述第一指针初始化后指向0,所述第二指针初始化后指向255。
25.第二方面,提供了一种报文写入的方法,所述方法包括:
26.根据预分配的m个第一存储单元的信息,在所述m个第一存储单元中的n个第一存储单元写入第一报文,所述m个第一存储单元的存储量大于或等于报文的最大长度,所述n个第一存储单元的存储量大于或等于所述第一报文的长度,n-1个第一存储单元的存储量小于所述第一报文的长度;
27.从存储地址获取n个第二存储单元的信息;
28.所述m个第一存储单元中剩余m-n个第一存储单元和所述n个第二存储单元为下一报文的预分配存储单元。
29.第三方面,提供了一种交换设备,所述交换设备包括地址库、地址分配站、地址回收站以及报文库;
30.所述报文库包括多个存储单元并用于分配存储单元;
31.所述地址库用于管理地址链表,所述地址链表包括具有关联关系的地址标识和内容;
32.所述地址分配站用于管理第一指针,所述第一指针指示所述地址链表中的地址标识,所述地址标识对应的内容用于指示可用存储单元;
33.所述地址回收站用于更新第二指针,所述地址链表中待更新的内容通过更新前的第二指针指示,更新后的内容和更新后的第二指针均对应当前回收的存储单元。
34.与现有技术相比,本技术提供的方案至少包括以下有益技术效果:
35.(1)本发明采用地址链表结构进行自动地址管理,无需处理器,节省了资源。
36.(2)本发明为端口预留存储空间,报文进入后即可进入到提前安排的“房间”,缩短
了处理时间。
37.(3)本发明采用“门牌号”作为统一的索引,简化系统结构,降低系统复杂度。
附图说明
38.图1为本发明系统框图。
39.图2为报文库示意图。
40.图3为地址库初始化示意图。
41.图4为地址分配站初始图。
42.图5为图地址回收站功能示意图。
43.图6为存储地址管理流程示意图。
具体实施方式
44.下面结合附图和具体实施例对本技术作进一步详细的描述。
45.本技术实施例提供一种便捷的交换设备的存储地址管理系统。该存储地址管理系统可以包括地址库l,地址分配站a,地址回收站s以及报文库f。地址库l可以用于收集存储地址;地址分配站a用于为接收到的报文分配存储地址;报文库f用于存储整个报文;地址回收站s用于监测存储占用情况,回收可用地址。
46.报文库f可以由ram_f实现。报文库f用于为报文提供“房间”,即存储单元。具体的,将1m的存储空间分为256个存储单元,每个存储单元512字节。即存储模块ram_f可提供256个“房间”,房间容量为512字节。初始化或者复位时,ram_f将清空所有内容,256个“房间”都处于空闲状态,等待报文存储。如图2报文库f示意图。
47.地址库l可以由一块双端口ram_a实现,存储所有用于分配的存储地址。为了便于描述,本技术将该存储地址称为“门牌号”。每个报文进入时需要领取“门牌号”,转发成功后则需要归还“门牌号”。存储大小需根据设备的交换容量进行设置。报文领取到自己的“门牌号”后,即可进入到相应的“房间”,即存储,等待转发。地址库l所存储的“门牌号”应与报文库f提供的“房间”一一对应。假设报文库f提供的“房间”为256个,那么“门牌号”为256个。
48.如图3所示,地址库l可以包括地址和内容,地址库l将地址与内容关联从而形成一张链表。地址库l的地址与报文库f提供的“房间”的“门牌号”一一对应。每个地址所关联的内容为下一可用“房间”的“门牌号”。例如,地址0中存储的内容1,即为“门牌号”0分配后,下一次可分配的“门牌号”为1。
49.初始化或者复位时,报文库f的所有存储“房间”均可用。假设初始化后默认“房间”0可被端口读取。地址库l分别对应0-254个地址,按顺序存放1-255个“门牌号”,如图3所示。地址0对应存放“门牌号”为1,由此可以指示,在报文库f的“房间”0使用后,下一个可使用的空闲存储单元为报文库f的“房间”1。报文存储r具有两组通道,通道a只读,由地址分配站a读出空闲“门牌号”;通道b只写,由地址回收站s写入结束占用的“门牌号”。
50.地址分配站a不断将空闲的“门牌号”从地址库l中读出,分配给交换端口,保证各个端口接收到的报文都能快速领取到自己的“门牌号”。端口可以与收发器连接,收发器可以通过端口写入、读取报文。
51.地址回收站s统计交换出口处报文的转发情况,每当报文转发成功后确认该报文
所在的“房间”是否再次进入空闲状态。如果该空闲,则将该“门牌号”重新写入地址库l。
52.为了能够详细阐述地址分配策略的实现办法,以下实施过程均以8端口,1m存储空间的交换系统为例。实际应用根据需求进行调整。
53.在一个实施例中,为了报文快速存储,地址分配站a为每个端口预留至少一个最长帧(1518字节)的空间。而一个“门牌号”对应一块512byte的存储,因此每个端口将被提前分配到4个“门牌号”。复位后地址分配站a从“门牌号”0-255依次为8个端口分配初始号码,如图4所示。报文进入交换后领取相应端口的号码进入存储,同时地址分配站a从地址库l读取新的空闲“门牌号”补充给该端口,保证每端口均预留有4个号码牌。
54.地址分配站a通过维持一个地址分配指针pr_a,该指针为当前分配的“门牌号”。初始化时,pr_a=0。
55.(1)开始分配时,“门牌号”0对应的“房间”处于可被端口j存放报文的状态。j可以为0。
56.(2)根据pr_a=i,可以在地址库l的地址i处查询到“门牌号”i+1,“门牌号”可以指向报文库f的“房间”i+1的地址,从而“房间”i+1可以被端口j存放地址,同时更新i=i+1。
57.(3)循环执行(2),直到端口j被分配报文库f的4个“房间”,并更新j=j+1。
58.(4)循环执行(2)和(3),直到8个端口均被分配4个“房间”。
59.初始化完成后,pr_a=31。假设端口3接收到一个289byte的报文,领取了“门牌号”:12,则端口3需要补充一个新的号码,当前pr_a=31,则只需读取地址库l的地址31,即可获得新“门牌号”:32,分给端口3。同时更新pr_a=32。
60.同理,若端口7接收到一个1200byte的报文,会消耗掉3个“门牌号”,需补充3个新的“门牌号”。当前pr_a=32,则读取地址库l的地址32,即可获得新“门牌号”:33,同时更新pr_a=33;当前pr_a=33,则读取地址库l的地址33,即可获得新“门牌号”:34,同时更新pr_a=34;当前pr_a=34,则读取地址库l的地址34,即可获得新“门牌号”:35,同时更新pr_a=35;之后将“门牌号”33~35分给端口7。
61.复位后地址分配站a从“门牌号”0-255依次为8个端口分配初始号码,如图4所示。报文进入交换后领取相应端口的号码进入存储,同时地址分配站a从地址库l读取新的空闲“门牌号”补充给该端口,保证每端口均预留有4个号码牌。
62.由于地址分配站a可以为端口预留足够多的存储单元以存储报文。因此与端口连接的收发器可以记录上次写入报文时未使用的存储单元,以便于下一次写入报文时使用。
63.假设收发器通过端口0接收到预留的“门牌号”为0~3。然而收发器需要写入的报文为289byte,仅需要一个“房间”即可。那么收发器可以向存储地址管理系统发生该报文的大小。从而地址库l可以根据该报文的大小,在下一次为端口0分配“房间”时,仅需额外配置1个“房间”即可。根据pr_a=35,则读取地址库l的地址35,即可获得新“门牌号”:36,同时更新pr_a=36。由此将“门牌号”36分给端口0。收发器在写入289byte报文后,可以记录剩余未使用的“门牌号”。在下一次存储报文时,可以在“门牌号”1~3以及地址库l预留的“门牌号”36处写入报文。
64.地址回收站s统计交换出口处报文的转发情况。每当报文转发成功后,确认该报文所在的“房间”是否再次进入空闲状态。如果该空闲,则将该“门牌号”重新写入地址库l。具体的,报文经过查表得到目标转发端口,单播报文被转发至一个端口,多播和广播报文将被
转发至多个端口。各个端口的队列长短不一致,因此一次报文转发完成不代表该报文占用的存储已经得到释放。地址回收站s负责将对各个报文的排队数进行记录,完成一次报文转发,相应记数减一,当该记数减至0时,说明该报文存储释放,地址回收站s则将对应“门牌号”写回地址库l。
65.如图5所示,3条报文经过查表在相应出口进行排队,报文与门牌是相对应的,因此使用“门牌号”代表该报文。其中报文(4/5/6)分别在p0,p4,p7端口等待转发,因此门牌4/5/6排队数为3;报文(12)在p0,p4端口等待转发,因此门牌12排队数为2;报文(16)在p0端口等待转发,因此门牌16排队数为1。
66.地址回收站s需要维持一个回收指针pr_s,用于指向地址库l中门牌回收的位置。如图3所示,地址库l经过初始化后,位置0-254已经填写了初始“门牌号”,回收指针pr_s的初始值为255。
67.假设图5中(16)号报文转发出交换端口后,排队数减为0,地址回收站s就会回收“门牌号”16,将“门牌号”16在地址库l中写入位置255,并更新pr_s=16。也就是说,地址库l的地址255对应的内容为“门牌号”16。假设(12)报文在两个端口均转发成功时,将“门牌号”12在地址库l中写入位置16,更新pr_s=12。也就是说,地址库l的地址16对应的内容为“门牌号”12。以此类推,维持地址库l的地址顺序。
68.在其他实施例中,地址分配站a可以不必为每个端口预留预设存储量。地址分配站a可以根据报文的长度为端口预留报文库f的“门牌号”。在此场景下,初始化完成后,pr_a=0。根据地址0对应的报文库f的“门牌号”0,“门牌号”处于可分配状态。假设端口3接收到一个289byte的报文,根据pr_a=0,则读取地址库l的地址0,即可获得新“门牌号”:0,也就是说,“门牌号”0对应的“房间”用于存放289byte的报文。同时根据地址库l的地址0,即可获得新“门牌号”:1,因此更新pr_a=1。也就是说,pr_a指示的下一可用的“房间”。
69.之后,假设端口7接收到一个1200byte的报文,则需要3个“房间”存储报文。根据pr_a=1,则读取地址库l的地址1,即可获得新“门牌号”:1,同时根据地址库l的地址1,即可获得新“门牌号”:2,因此更新pr_a=2。根据pr_a=2,则读取地址库l的地址2,即可获得新“门牌号”:2,同时根据地址库l的地址2,即可获得新“门牌号”:3,因此更新pr_a=3。根据pr_a=3,则读取地址库l的地址3,即可获得新“门牌号”:3,同时根据地址库l的地址3,即可获得新“门牌号”:4,因此更新pr_a=4。也就是说,“门牌号”1-3对应的“房间”用于存放1200byte的报文。
70.假设289byte的报文收发完毕,则“门牌号”0对应的“房间”可以被释放。地址回收站s就会回收“门牌号”0,将“门牌号”0在地址库l中写入位置255,并更新pr_s=0。
71.假设1200byte的报文收发完毕,则“门牌号”1-3对应的“房间”可以被释放。地址回收站s可以顺序或乱序回收“门牌号”。以顺序为例,地址回收站s回收“门牌号”1,将“门牌号”1在地址库l中写入位置0,并更新pr_s=1;之后,地址回收站s回收“门牌号”2,将“门牌号”2在地址库l中写入位置1,并更新pr_s=2;之后,地址回收站s回收“门牌号”“门牌号”3,将门牌号3在地址库l中写入位置2,并更新pr_s=3。
72.当pr_s和pr_a相同时,可以意味着报文库f仅剩一个“房间”可用。
73.通过地址分配指针pr_a,地址回收指针pr_s建立地址链表,形成了地址闭环,从而高效的完成存储地址的自动管理。当地址分配指针pr_a追上回收指针pr_s时,即指针pr_a
和指针pr_s相同时,意味着报文存储已经全部被占用。
74.本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此,本发明的保护范围应当以本发明权利要求所界定的范围为准。

技术特征:
1.一种存储单元管理办法,其特征在于,所述方法应用于报文库,所述报文库包括多个存储单元,所述方法包括:根据地址链表和第一指针,为待写入报文分配存储单元,所述地址链表包括具有关联关系的地址标识和内容,所述第一指针指示所述地址链表中的地址标识,所述地址标识对应的内容用于指示可用存储单元;根据所述存储单元的回收情况,更新所述地址链表和第二指针,所述地址链表中待更新的内容通过更新前的第二指针指示,更新后的内容和更新后的第二指针均对应当前回收的存储单元。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:为目标端口预分配m个存储单元,所述m个存储单元的存储量大于或等于报文的最大长度。3.根据权利要求2所述的方法,其特征在于,所述根据地址链表和第一指针,为待写入报文分配存储单元,包括:根据所述地址链表和第一指针pr_a=i,在地址链表的地址i处查询到的内容为存储单元k,所述存储单元k为预分配的存储单元,同时更新pr_a=k。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:获取待写入报文的长度;根据所述待写入报文的长度,确定下一次额外预留n个存储单元,所述n个存储单元的存储量大于或等于待写入报文的长度,n-1个存储单元的存储量小于待写入报文的长度。5.根据权利要求2至4中任一项所述的方法,其特征在于,所述根据所述存储单元的回收情况,更新所述地址链表和第二指针,包括:根据回收的存储单元p和第二指针pr_s=q,在地址链表的地址q处写入p,同时更新pr_s=p;其中,在所述pr_s和pr_a相等的情况下,所述存储空间全部被占用。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取待写入报文的长度;根据待写入报文的长度、所述地址链表和第一指针pr_a=i,将存储单元i分配用于写入报文,同时更新pr_a=k,k为地址链表的地址i处对应的内容。7.根据权利要求6所述的方法,其特征在于,所述根据所述存储单元的回收情况,更新所述地址链表和第二指针,包括:根据回收的存储单元p和第二指针pr_s=q,在地址链表的地址q处写入p,同时更新pr_s=p;其中,在所述pr_s和pr_a相等的情况下,所述存储空间剩余1个存储单元可用。8.根据权利要求1所述的方法,其特征在于,所述地址链表初始化后满足:地址i对应的内容为i+1,i=0~254,所述第一指针初始化后指向0,所述第二指针初始化后指向255。9.一种报文写入的方法,其特征在于,所述方法应用于收发器,所述方法包括:根据预分配的m个第一存储单元的信息,在所述m个第一存储单元中的n个第一存储单元写入第一报文,所述m个第一存储单元的存储量大于或等于报文的最大长度,所述n个第一存储单元的存储量大于或等于所述第一报文的长度,n-1个第一存储单元的存储量小于
所述第一报文的长度;从存储地址获取n个第二存储单元的信息;所述m个第一存储单元中剩余m-n个第一存储单元和所述n个第二存储单元为下一报文的预分配存储单元。10.一种交换设备,其特征在于,所述交换设备包括地址库、地址分配站、地址回收站以及报文库;所述报文库包括多个存储单元并用于分配存储单元;所述地址库用于管理地址链表,所述地址链表包括具有关联关系的地址标识和内容;所述地址分配站用于管理第一指针,所述第一指针指示所述地址链表中的地址标识,所述地址标识对应的内容用于指示可用存储单元;所述地址回收站用于更新第二指针,所述地址链表中待更新的内容通过更新前的第二指针指示,更新后的内容和更新后的第二指针均对应当前回收的存储单元。

技术总结
本发明公开了一种便捷的交换设备存储单元管理办法。在交换网络中,交换设备的功能是对报文进行存储转发,存储地址管理的主要负责向进入交换的报文不断提供空闲储存地址并回收结束占用的地址。本发明通过地址库,地址分配站,地址回收站,报文库四个模块来有效的管理存储地址。从而保证交换设备的转发时延,提高网络质量。高网络质量。高网络质量。


技术研发人员:毛雅欣 陶淑婷 张永波 张奇荣
受保护的技术使用者:北京微电子技术研究所
技术研发日:2023.03.22
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐