1.本发明属于计算机网络及计算机系统结构领域,涉及一种千兆以太网交换器缓存管理方法,具体涉及一种面向以太网交换器的高效缓存管理系统。
背景技术:
2.近几年来,随着通信业务的飞速发展,以太网交换机作为网络通信的关键设备,发展非常迅速,各方面不断完善。纵观当前整个发展趋势,以太网交换机呈现了如下几个发展特点,更高的速度,更大的端口密度,更高的智能化。交换机的交换方式主要有三种,直通式、存储转发式和碎片隔离式。其中,存储转发交换机因可对进入的数据包进行错误检测,有效改善网络性能,更重要的是它可以支持不同速率端口间的协同工作而有了更广泛的应用。
3.存储转发式以太网交换器的性能主要取决于缓存管理单元,该单元完成了数据包的存储及发送控制,包括的主要功能有缓存空间的分配和释放及发送队列管理。目前主流的实现方式是将整个缓存空间作为一个整体,按照数据包请求顺序分配缓存空间存储数据包,当数据包完成发送,释放缓存空间。队列管理是指数据包在出口如何完成发送,包括了入队和出队管理,入队是指将数据包放入指定的队列,出队是指数据包从指定队列取出并发送。
4.基于共享缓存的交换机,缓存空间的使用可以基于数据包进行存储,也可以基于最小单元(cell)进行存储。基于数据包的存储方式,优点是空间浪费小,但缺点是交换延迟大,如果存储一个巨型帧,需要等到该数据包完整存储在缓存中其它端口才可以开始可以处理。基于cell的存储方式是每次只完成一个cell的存储,各端口可以轮询存储,这样避免了一个端口长时间占用缓存,而导致不能服务其它端口,也保证了数据存储和交换控制两个平面并行处理,减小了交换延迟,但缺点是存在空间浪费。
5.基于整体的缓存空间管理,不能有效抑制单个端口的流量突发,这将导致该端口可能占用过多的缓存而且不能及时释放,导致其它端口无缓存空间可用。传统的队列管理是将数据取出之后,放到出口的队列中,出队时再从出口队列中读出数据并发送。这种方式的缺点是数据需要二次缓存,交换延迟也会变大。
技术实现要素:
6.本发明的目的在于提供一种面向以太网交换器的高效缓存管理系统,以克服现有技术的不足。
7.为达到上述目的,本发明采用如下技术方案:
8.一种面向以太网交换器的高效缓存管理系统,包括缓存管理模块,队列管理模块,入口控制模块,出口控制模块,qos控制模块和寄存器模块;
9.缓存管理模块用于完成从mac收发的数据包缓存地址的分配和释放,将待分配数据包传输至队列管理模块,同时丢弃待丢弃数据包释放缓存空间;
10.队列管理模块用于将缓存管理模块分配的数据包进行入队和出队分配;
11.入口控制模块用于控制监视入端口cos队列的缓存使用情况;
12.出口控制模块用于统计出口缓存的使用实现出口流量控制;
13.qos控制模块是对接收的数据包进行流分类并根据分类结果放入不同的cos队列,并且实现端口和队列的流控及拥塞处理;
14.寄存器模块用于实现缓存管理单元的配置。
15.进一步的,待丢弃数据包包括找不到转发的端口、超出规定的长度、该端口不能接收的巨型帧或者其它控制给出丢弃标志则丢弃该数据包。
16.进一步的,缓存管理模块的数据缓存空间中存放的是待转发的数据包;当接收端口接收到好数据包时,缓存管理模块为其分配相应的空间,同时生成描述符信息,并发送至队列管理模块;如果该数据包为待丢弃数据包则丢弃该数据包并释放已经分配的存储空间。
17.进一步的,缓存管理模块的缓存以cell为最小单位,每个cell大小为128字节。
18.进一步的,队列管理模块的出口使用两层的链表结构形成一个输出阵列,第一层是发送队列链表,第二层是缓存标记链表。
19.进一步的,在接收存储数据包时,描述符管理模块将一个数据包的描述符写入某一端口的发送描述符队列,当交换控制器从发送端口描述符队列中读出该数据包的描述符,按照描述符中各个字段的内容,从数据缓存中读出该包的数据,从相应端口发送。
20.进一步的,队列管理模块包括缓存请求模块、描述符写请求控制模块、描述符读请求控制模块、描述符管理模块、描述符缓存模块、cell写管理模块和数据包写管理模块;
21.缓存请求模块用于将缓存管理模块分配给数据包的地址进行记录;
22.描述符管理模块用于将缓存请求模块记录的信息写入相应的描述符队列中;
23.描述符写请求控制模块根据转发控制的相关结果,请求相应的发送端口进行写描述符队列操作;
24.描述符读请求控制模块用于判断发送传输端口是否可以进行数据转发,并给出描述符队列读请求;
25.描述符缓存模块用于存储描述符链表信息;
26.cell写管理模块用于记录当前请求入队的cell写操作状态,为端口下一个cell写做准备。
27.数据包写管理模块用于记录当前请求入队的数据包写操作状态,为端口下一个数据包写做准备。
28.进一步的,入端口cos队列的缓存如果超过阈值,则产生流量控制消息;如果对端处理流控报文,则对端会停止发送数据包。
29.进一步的,入口控制模块将缓存空间分为端口保证空间、共享空间和头空间,端口保证空间为端口提供最小保证可用空间;共享空间用于当最小保证空间不足时,为端口提供的共享缓存空间;头空间用于当最小保证空间与共享缓存空间不足时,提供一些额外的缓存能力。
30.进一步的,寄存器模块用于实现缓存管理单元的配置,包括了入口控制、出口控制及qos控制各个模块中缓存空间、cos队列及流量控制和整形功能的阈值。
31.与现有技术相比,本发明具有以下有益的技术效果:
32.本发明一种面向以太网交换器的高效缓存管理系统,通过队列管理模块对缓存管理模块进行划分,对缓存空间进行划分,利用入口控制模块控制监视入端口cos队列的缓存使用情况,对接收的数据包进行流分类并根据分类结果放入不同的cos队列,并且实现端口和队列的流控及拥塞处理,对动态管理实现了缓存的合理使用,通过双链表管理技术实现了出口队列的管理,本发明不需要二次缓存数据包,节省了存储资源,减小了交换延迟,通过流分类、流量监管和整形及拥塞管理,保证了服务质量。
33.进一步的,将缓存空间分为端口保证空间、共享空间和头空间三部分,端口保证空间为每个端口保留了一块最小的缓存空间,其它端口不能占用,当其被使用完之后,端口才可以使用共享缓存,这样保证了各端口对缓存空间的合理使用,头空间是用来存储当共享缓存已使用完,交换机发送流控信号之后仍然可以接收到的一小部分数据,保证尽力无丢包。
34.进一步的,缓存管理单元实现了流量分类、流量监管和整形及拥塞管理等功能,实现了数据的高效无阻塞转发,保证了服务质量。
35.进一步的,在入端口和出端口分别独立统计进入的报文,采用了阈值、漏桶、wred、对队列进行分类策略实现了流量控制及拥塞的处理。
附图说明
36.图1为本发明实施例中总体结构框图
37.图2为本发明实施例中发送队列模块的结构框图。
具体实施方式
38.下面结合附图对本发明做进一步详细描述:
39.如图1所示,一种面向以太网交换器的高效缓存管理系统,包括缓存管理模块1,队列管理模块2,入口控制模块3,出口控制模块4,qos控制模块5和寄存器模块6;
40.缓存管理模块1用于实现缓存空间的分配和释放。
41.缓存管理模块1的数据缓存空间中存放的是待转发的数据包。当接收端口接收到好数据包时,缓存管理模块1负责为其分配相应的空间,同时生成描述符信息,并发送至队列管理模块;如果该数据包找不到转发的端口、超出规定的长度、该端口不能接收的巨型帧或者其它控制给出丢弃标志则丢弃该数据包并释放已经分配的存储空间。在这些数据包满足转发条件时,队列管理模块通过此描述符信息从缓存管理模块1的缓存空间中取出数据包进行转发,相应的空间被释放,成为新的空闲空间。
42.缓存管理模块1的缓存以cell为最小单位,每个cell大小为128字节。缓存管理模块1的数据缓存空间拟采用链表的结构进行组织,这里的链表是指限于表头节点删除和表尾节点插入的单链表。数据缓存空间中的空闲部分以cell为单位用单链表的方式加以组织,每次分配空间时,从链表的头部删除链表的一个节点;而每次释放空间时,在链表的尾部插入一个节点。
43.单链表的结构通过片内16384x14位的ram实现,深度16384对应了最大的空闲页数,即整个数据缓存空间,14位字的内容对应于控制ram中下一个字的地址,此ram中的每一
项的位置对应于缓存存储空间中一个页的位置。除了控制ram之外,还有两个14位宽的寄存器,分别记录单链表的头指针和尾指针的位置,记为head和tail。
44.空闲页链表在使用前需要一个初始化的过程,初始化之后,head中的内容为0,控制ram中的0字中的内容为1,1字中的内容为2
……
16383字中的内容为16383,tail中的内容为16383。
45.对于缓存空间的释放可分为两种情况,一种是接收端口对接收的数据包进行分析,发现它并不满足转发的条件,这时候需要释放已经为该数据包分配的空间;另一种情况是当各个发送端口的数据包转发完成后需要释放占用的缓存空间。需要注意的是当转发多播或者广播包时,必须当所有转发端口都完成数据发送才可以释放该空间。
46.队列管理模块2在出口使用两层的链表结构形成一个输出阵列。第一层是发送队列链表,第二层是缓存标记链表;使用发送队列链表来保证每个端口数据包优先级次序;对于每一个数据包,使用缓存标记链表来保证缓存中页的次序和每一数据包相对应。
47.每个输出口支持最多24个发送队列以保证服务质量,所有的发送队列共享发送队列链表。发送队列作为一个链表维护,每个节点代表一个指向数据包缓存标识的指针。每个缓存标识包括数据包信息和指向下一个数据包标识的指针。每一个缓存标识有一个分配在数据缓存中的关联页。对于包大小大于128字节的包,需要多个缓存标识。
48.在接收存储数据包时,描述符管理模块将一个数据包的描述符写入某一端口的发送描述符队列,即把存储的数据包绑定到对应的发送端口,当交换控制器从发送端口描述符队列中读出该数据包的描述符,就可以按照描述符中各个字段的内容,从数据缓存中读出该包的数据,从相应端口发送出去。
49.端口接收的一个包在数据缓存中的存储位置是随机的,一个包可能占用一个cell,也可能占用多cell,且这些cell不一定是连续的,因此,定义描述符结构时需要考虑数据包内及数据包之间如何进行关联。
50.所以,描述符中不仅记录了数据包的存储位置的信息,而且需要记录数据包每一个cell之间的关联信息,以及数据包之间的关联信息。第一层发送队列链表用来保证每个端口包优先级次序,所以记录了包的首地址等相关信息。第二层是缓存标记链表用来保证缓存页的次序和每一包相对应,所以记录了数据包的cell地址等信息。
51.描述符链表通过地址指针与数据缓存相关联,数据包转发时,将其信息写入发送端口的描述符队列,当数据包需要转发到不同端口时,这些端口的描述符指针可以指向同一块缓存区,节省了存储空间。
52.在设计中,共有30个发送端口,所以将片内描述符队列空间划分成30个端口队列,每个端口队列可以容纳16383个描述符,若配置了端口优先级,发送传输端口可以支持最多24个传输队列,那么每个端口根据相应的优先级被发送给相应的发送传输队列,所有队列共享该端口描述符队列。
53.对于组播发送,当存储控制器接收到来自输入端口的数据包结束信号时,就准备把当前存储的数据包绑定到发送端口的描述符队列。在绑定描述符的过程中,如果遇到组播发送的情况,也就是一个数据包要从多个发送端口输出,需要把该包的相关属性绑定到所有的发送端口描述符队列。在缓存空间的控制ram中,用5位计数器来计发送端口队列数。在管理描述符队列,进行描述符绑定时,当接收到包结束标志并且从交换控制器确认当前
包可以转发,就为当前包在其对应的发送端口队列中写入描述符。当交换控器已经将某一个端口的包发送完毕时,就需要释放该包描述符,根据描述符中的帧地址找到对应的数据缓存空间,将相应控制ram里的5位计数减1,然后释放描述符。
54.如图2所示,队列管理模块2包括缓存请求模块7、描述符写请求控制模块8、描述符读请求控制模块9、描述符管理模块10、描述符缓存模块11、cell写管理模块12和数据包写管理模块13;
55.缓存请求模块7用于将缓存管理模块分配给数据包的地址进行记录,包括每个数据包的所有cell的地址,并记录cell的相关信息,如sof,eof及be,描述符管理模块10用于将缓存请求模块7记录的信息写入相应的描述符队列中,实现数据包的关联。
56.描述符写请求控制模块8根据转发控制的相关结果,请求相应的发送端口进行写描述符队列操作。
57.描述符读请求控制模块9用于判断发送传输端口是否可以进行数据转发,并给出描述符队列读请求,当数据包完成转发与描述符管理模块的握手并给出发送完成标志,请求缓存管理模块1释放缓存空间。
58.描述符管理模块是队列管理的核心模块,主要完成了描述符队列的写控制和描述符队列的读控制。
59.描述符缓存模块11用于存储描述符链表信息。在数据包入队和出队是更新该缓存。
60.cell写管理模块用于记录当前请求入队的cell写操作状态,为端口下一个cell写做准备。
61.数据包写管理模块用于记录当前请求入队的数据包写操作状态,为端口下一个数据包写做准备。
62.发送队列写控制实现了30个端口队列写请求仲裁,对仲裁出的端口完成请求数据包写入队列的操作并更新相应的队列指针和描述符。上述过程通过状态机完成,如端口2首先有请求,那么状态机跳转至端口2前一次地址状态,在该状态下根据配置的队列模式和数据包的队列号,如果该次请求是数据包的第一个cell请求,那么需要更新帧链表,将该次分配的地址空间更新到帧链表描述符链表尾指针所指向的地址空间的下一帧地址项。同时还需要更新缓存标记链表的尾指针指向的地址空间的描述符中下一页地址项。如果该次请求不是帧的第一个cell请求,那么只需要更新缓存链表描述符。完成上述操作后,状态机跳转至端口2当前地址状态,在该状态下,根据配置的队列模式和请求的队列号更新相应队列的尾指针及描述符队列。同上如果该次请求是包的第一次请求则发送队列链表和缓存标记链表的描述符和尾指针都需要更新,否则,只需要更新缓存标记链表的描述符项及尾指针。
63.发送队列读(发送)状态机描述了某一端口的发送队列如何进行发送的机制,调度器监测每个出端口cos队列的带宽使用情况,监测机制把cos队列分类到不同的调度组里,带宽监测基于每个cos队列单独进行。最小带宽监测是为了向每个出端口的cos队列提供最小的带宽保证。最大带宽监测是为了控制每个出端口的cos队列的最大带宽限制。最小带宽监测和最大带宽监测是通过漏桶机制来实现。
64.普通端口只有8个标准cos队列,该8个cos队列由s2调度器调度。而高速端口可以支持24个cos队列。前8个cos队列由s2调度器调度,其他16个cos队列由s1调度器调度,该两
级调度的方法保证高速端口的服务质量。
65.出口队列调度支持四种cos队列调度算法:严格优先级cos队列调度,轮询优先级cos队列调度,加权轮询优先级cos队列调度,加权差额轮询优先级cos队列调度,用户可根据需要进行选择。
66.入口控制模块3用于控制监视入端口cos队列的缓存使用情况。如果超过阈值,则产生流量控制消息。如果对端处理流控报文,则对端会停止发送数据包,以此来缓解入口的压力。
67.将缓存空间分为三部分:端口保证空间、共享空间和头空间;
68.端口保证空间为端口提供最小保证可用空间。通过寄存器配置。只有一组寄存器配置,所有的端口空间是一样的。共享空间,当最小保证空间不足时,为端口提供的共享缓存空间,包括总的共享缓存空间,和每个端口的最大可用共享缓存空间。所有端口可以选择动态配置,也可以选择静态阈值。头空间,当最小保证空间与共享缓存空间不足时,提供一些额外的缓存能力。包括端口头空间和全局头空间,优先级组头空间用来存储流控帧发送出去到对端停止发送报文这段时期,可能收到对端发送过来的部分报文,全局头空间是指如果没有为每个端口单独分配头空间,则使用这分部缓存空间作为所有端口的共享头空间。如果使用此空间,则每个端口只允许保存一个报文。
69.缓存规则是接收数据包时,优先使用端口保证空间,然后使用共享空间,最后是头空间。当数据包完成发送后,则优先释放头空间,然后是共享空间,最后是端口保证空间。
70.每个端口都有单独的漏桶算法机制,用来监测其缓存的使用情况,在入端口触发流控,实现入口流量整形。bucket_count表示当前桶里的令牌个数,一开始bucket_count是0,如果有报文到达,则按报文字节大小转换成相应的令牌个数加入到桶里。每过一个t_refresh周期,就把refreshcount个数的令牌从桶里取出(bucket_count-=refreshcount)。每个令牌的粒度大小由meter_granularity选择。当bucket_count到达discard_thd水线时,mmu将通告端口丢弃到达的报文。
71.出口控制模块4用于控制达到最高吞吐量;
72.入口控制的原则是尽量无丢包,出口控制的原则是尽量达到高的吞吐量。
73.出口控制通过设置每个端口的阈值来实现。出端口与cos队列关联,每个队列都有各自的阈值,这些阈值决定了准备进入队列的报文,及哪个的目的端口为该端口的报文将会被丢弃。与入口控制类似,出口控制也有两个缓存资源,最小保证空间和共享空间。当数据包发送完成,优先释放共享空间,减少对其它端口缓存使用的影响。
74.qos控制模块5是对接收的数据包进行流分类并根据分类结果放入不同的cos队列,并且实现端口和队列的流控及拥塞处理。
75.qos控制模块支持传统流控和服务相关的流控。传统流控是指通过pause帧背压整个端口的形式来实现流控。服务相关流控,则细致到端口内部的每个cos队列,每个cos队列之间的流控是独立的,这样就允许基于cos队列之间的细化流控。例如,可以控制高优先级的流尽量无丢包,给低优先级的流设置一个较低的门限,如果超出该门限,不需要流控而是直接丢弃。
76.数据包进入缓存并创建队列后,qos控制模块会更新相关的一些内部资源寄存器。根据这些资源统计寄存器来决定一个端口是否进入流控状态、对头阻塞、权重早期丢弃状
态(wred)或是确定转发。
77.寄存器模块6用于实现缓存管理单元的配置。主要包括了入口控制、出口控制及qos控制各个模块中缓存空间、cos队列及流量控制和整形功能的阈值。
78.在使用时,用户根据不同需要,在上电后进行配置以满足不同应用需求。
79.本发明中不再将所有的缓存空间作为共享缓存,而是将其分为端口保证空间、共享空间和头空间三部分,端口保证空间为每个端口保留了一块最小的缓存空间,其它端口不能占用,当其被使用完之后,端口才可以使用共享缓存,这样保证了各端口对缓存空间的合理使用,头空间是用来存储当共享缓存已使用完,交换机发送流控信号之后仍然可以接收到的一小部分数据,保证尽力无丢包。此外该缓存管理单元实现了流量分类、流量监管和整形及拥塞管理等功能,实现了数据的高效无阻塞转发,保证了服务质量。
80.本发明一种面向以太网交换器的高效缓存管理系统,该单元通过将缓存空间进行划分,为每个交换端口保留了最小保证空间,实现了缓存单元的动态管理。同时采用链表结构管理缓存空间及队列,减少了资源占用且可靠性高。在入端口和出端口分别独立统计进入的报文,采用了阈值、漏桶、wred、对队列进行分类等策略实现了流量控制及拥塞的处理。出口调度器采用两级调度策略及sp/rr/wrr/wdrr队列调度算法保证了端口报文的服务优先级。通过流分类、流量整形及拥塞管理等技术,实现了正常与拥塞情景下报文的高效转发。
81.如图1所示,线内部结构为本发明所提出的高效缓存管理单元的硬件实现架构,虚线外部为与其连接的千兆以太网交换器中的其它模块,包括接收仲裁、发送仲裁及缓存模块、mac模块和phy模块。
82.下面对图1中编号模块进行说明。
83.缓存管理模块1,其数量为1,完成从mac收发的数据包缓存地址的分配和释放,包括多播和广播数据转发端口的记录。
84.发送队列管理模块2,其数量为1,完成数据包的入队和出队操作。
85.入口控制模块3,其数量为1,实现入口缓存的分配和流量控制。
86.出口控制模块4,其数量为1,统计出口缓存的使用实现出口流量控制。
87.qos控制模块5,其数量为1,实现流量分类、流量控制和拥塞管理。
88.寄存器模块6,其数量为1,实现个功能模块的配置。
89.如图2所示,虚线内为发送队列模块的架构,虚线外部为与其连接的其它模块。
90.缓存请求模块7,其数量为30,记录缓存管理模块分配给数据包的cell地址及该cell相关的数据包信息,如sof、eof及be等。
91.描述符写请求控制模块8,其数量为30,生成出口的写队列信息,包括写请求、地址、数据包相关信息等。
92.描述符读请求控制模块9,其数量为30,实现出口的队列读请求功能。
93.描述符管理模块10,其数量为30,实现各出口的入队和出队管理。
94.描述符缓存模块11,其数量为1,存储描述符队列链表。
95.cell写管理模块12,其数量为30,记录cell相关信息的写状态。
96.数据包写管理模块13,其数量为30,是记录数据包相关信息的写状态。
97.本发明可用于支持存储转发架构的以太网交换器中,特别适用于二层三层高性能
以太网交换器中。
98.采用本发明提出的缓存管理,可实现正常与拥塞情景下报文的高效转发。
99.根据上述方案,用vhdl语言描述了本发明中各个模块的对本发明中各个模块的逻辑功能,将并将其与千兆以太网交换器中的mac和phy模块进行集成,在fpga上进行系统级的验证。验证结果表明,本发明实现了设计功能。针对正常与拥塞传输情景下的数据交换,都可以实现报文的线速转发,且丢包率较小。
技术特征:
1.一种面向以太网交换器的高效缓存管理系统,其特征在于,包括缓存管理模块(1),队列管理模块(2),入口控制模块(3),出口控制模块(4),qos控制模块(5)和寄存器模块(6);缓存管理模块(1)用于完成从mac收发的数据包缓存地址的分配和释放,将待分配数据包传输至队列管理模块(2),同时丢弃待丢弃数据包释放缓存空间;队列管理模块(2)用于将缓存管理模块(1)分配的数据包进行入队和出队分配;入口控制模块(3)用于控制监视入端口cos队列的缓存使用情况;出口控制模块(4)用于统计出口缓存的使用实现出口流量控制;qos控制模块(5)是对接收的数据包进行流分类并根据分类结果放入不同的cos队列,并且实现端口和队列的流控及拥塞处理;寄存器模块(6)用于实现缓存管理单元的配置。2.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,待丢弃数据包包括找不到转发的端口、超出规定的长度、该端口不能接收的巨型帧或者其它控制给出丢弃标志则丢弃该数据包。3.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,缓存管理模块(1)的数据缓存空间中存放的是待转发的数据包;当接收端口接收到好数据包时,缓存管理模块(1)为其分配相应的空间,同时生成描述符信息,并发送至队列管理模块;如果该数据包为待丢弃数据包则丢弃该数据包并释放已经分配的存储空间。4.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,缓存管理模块(1)的缓存以cell为最小单位,每个cell大小为128字节。5.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,队列管理模块(2)的出口使用两层的链表结构形成一个输出阵列,第一层是发送队列链表,第二层是缓存标记链表。6.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,在接收存储数据包时,描述符管理模块将一个数据包的描述符写入某一端口的发送描述符队列,当交换控制器从发送端口描述符队列中读出该数据包的描述符,按照描述符中各个字段的内容,从数据缓存中读出该包的数据,从相应端口发送。7.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,队列管理模块(2)包括缓存请求模块(7)、描述符写请求控制模块(8)、描述符读请求控制模块(9)、描述符管理模块(10)、描述符缓存模块(11)、cell写管理模块(12)和数据包写管理模块(13);缓存请求模块(7)用于将缓存管理模块分配给数据包的地址进行记录;描述符管理模块(10)用于将缓存请求模块(7)记录的信息写入相应的描述符队列中;描述符写请求控制模块(8)根据转发控制的相关结果,请求相应的发送端口进行写描述符队列操作;描述符读请求控制模块(9)用于判断发送传输端口是否可以进行数据转发,并给出描述符队列读请求;描述符缓存模块(11)用于存储描述符链表信息;cell写管理模块(12)用于记录当前请求入队的cell写操作状态,为端口下一个cell写
做准备;数据包写管理模块(13)用于记录当前请求入队的数据包写操作状态,为端口下一个数据包写做准备。8.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,入端口cos队列的缓存如果超过阈值,则产生流量控制消息;如果对端处理流控报文,则对端会停止发送数据包。9.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,入口控制模块(3)将缓存空间分为端口保证空间、共享空间和头空间,端口保证空间为端口提供最小保证可用空间;共享空间用于当最小保证空间不足时,为端口提供的共享缓存空间;头空间用于当最小保证空间与共享缓存空间不足时,提供一些额外的缓存能力。10.根据权利要求1所述的一种面向以太网交换器的高效缓存管理系统,其特征在于,寄存器模块(6)用于实现缓存管理单元的配置,包括了入口控制、出口控制及qos控制各个模块中缓存空间、cos队列及流量控制和整形功能的阈值。
技术总结
本发明公开了一种面向以太网交换器的高效缓存管理系统,通过队列管理模块对缓存管理模块进行划分,对缓存空间进行划分,利用入口控制模块控制监视入端口CoS队列的缓存使用情况,对接收的数据包进行流分类并根据分类结果放入不同的CoS队列,并且实现端口和队列的流控及拥塞处理,对动态管理实现了缓存的合理使用,通过双链表管理技术实现了出口队列的管理,本发明不需要二次缓存数据包,节省了存储资源,减小了交换延迟,通过流分类、流量监管和整形及拥塞管理,保证了服务质量。保证了服务质量。保证了服务质量。
技术研发人员:赵文琦 史阳春 李龙飞 李小波 冯海强 王剑峰 杨靓
受保护的技术使用者:西安微电子技术研究所
技术研发日:2021.10.29
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-9079.html