《一种数据包调度和缓存的装置及方法.pdf》由会员分享,可在线阅读,更多相关《一种数据包调度和缓存的装置及方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104065588A43申请公布日20140924CN104065588A21申请号201310093886422申请日20130321H04L12/86120130171申请人中兴通讯股份有限公司地址518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部72发明人赖伟汪友宝74专利代理机构北京派特恩知识产权代理有限公司11270代理人蒋雅洁王黎延54发明名称一种数据包调度和缓存的装置及方法57摘要本发明公开了一种数据包调度和缓存的装置,包括包数据先入先出FIFO模块、包头数据FIFO模块和业务处理模块;其中,包数据FIFO模块,用于调度读出数据包数据时,提取。
2、数据包的包头信息,并将包头信息发送到包头数据FIFO模块进行存储;还用于调度读出包尾标志时,获得包长信息和循环冗余校验码CRC校验结果;包头数据FIFO模块,用于存储包头信息;当包数据FIFO模块读出与包头信息相对应的包尾标志时,读出所述包头信息;业务处理模块,用于根据包头信息、包长信息和CRC校验结果生成描述符信息。本发明还同时公开了一种数据包调度和缓存的方法,采用本发明,能节省大量的芯片内部存储资源,缩短数据包在芯片内的延时,降低芯片成本,改善芯片的面积和功耗。51INTCL权利要求书2页说明书6页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图2页10。
3、申请公布号CN104065588ACN104065588A1/2页21一种数据包调度和缓存的装置,其特征在于,所述装置包括包数据先入先出FIFO模块、包头数据FIFO模块和业务处理模块;其中,所述包数据FIFO模块,用于调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;还用于调度读出包尾标志时,获得包长信息和循环冗余校验码CRC校验结果,并将所述包长信息和CRC校验结果发送到业务处理模块;所述包头数据FIFO模块,用于存储包数据FIFO模块发送的包头信息;当包数据FIFO模块读出与所述包头信息相对应的包尾标志时,读出所述包头信息,并将所述。
4、包头信息发送到业务处理模块;所述业务处理模块,用于根据包头信息、包长信息和CRC校验结果生成描述符信息。2根据权利要求1所述的装置,其特征在于,所述装置还包括包管理模块和外部存储模块;其中,所述包管理模块,用于接收业务处理模块发送的描述符信息;还用于在收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,对数据包数据和描述符信息进行轮询调度,将所述数据包数据和描述符信息发送到外部存储模块进行存储;所述外部存储模块,用于存储数据包数据和描述符信息;还用于向包管理模块返回包尾数据存储完成标志,以及描述符信息存储完成标志。3根据权利要求1所述的装置,其特征在于,所述包数据FIFO模块,还用于在调。
5、度读出数据包数据之前,对输入的数据包数据进行缓存,然后对数据包数据进行轮询调度。4根据权利要求1所述的装置,其特征在于,所述数据包数据包括包头标志、数据包实体和包尾标志;所述包头信息的长度根据业务处理模块所需要的信息量决定。5根据权利要求1所述的装置,其特征在于,所述装置还包括出队模块,用于接收包管理模块发送的标识信息,并根据所述标识信息对数据包做出队处理或丢弃处理;所述包管理模块,还用于在收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息并将所述标识信息发送到出队模块。6根据权利要求5所述的装置,其特征在于,所述包数据FIFO模块、包头数据FIFO模块、业务处理模块、包管理模块。
6、、出队模块设置于流量管理芯片中;所述外部存储模块为双倍速率同步动态随机存储器DDRSDRAM。7一种数据包调度和缓存的方法,其特征在于,为每个输入端口设置包数据FIFO模块和包头数据FIFO模块;所述方法包括从包数据FIFO模块调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;读出包尾标志时,获得包长信息和CRC校验结果,从对应的包头数据FIFO模块读出包头信息;根据所述包头信息、包长信息和CRC校验结果生成描述符信息。8根据权利要求7所述的方法,其特征在于,所述方法还包括收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,对数据包。
7、数据和描述符信息进行轮询调度,并将所述数据包数据和描述符信息发送到外部存储模块进行存储处理;权利要求书CN104065588A2/2页3收到外部存储模块返回的包尾数据存储完成标志和描述符信息存储完成标志后,确定完成数据包缓存。9根据权利要求7所述的方法,其特征在于,从包数据FIFO模块调度读出数据包数据之前,该方法还包括输入端口输入数据时,将数据包数据缓存至包数据FIFO模块,然后对数据包数据进行轮询调度。10根据权利要求7所述的方法,其特征在于,所述数据包数据包括包头标志、数据包实体和包尾标志;所述包头信息的长度根据业务处理模块所需要的信息量决定。11根据权利要求7所述的方法,其特征在于,所。
8、述方法还包括收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息,并根据所述标识信息对数据包做出队处理或丢弃处理。12根据权利要求7所述的方法,其特征在于,所述包数据FIFO模块、包头数据FIFO模块设置于流量管理芯片中;所述外部存储模块为DDRSDRAM。权利要求书CN104065588A1/6页4一种数据包调度和缓存的装置及方法技术领域0001本发明涉及数据通信领域,尤其涉及一种数据包调度和缓存的装置及方法。背景技术0002目前,在传统的流量管理芯片中,对于数据包的业务处理,需要根据数据包的包头信息、包长信息和循环冗余校验码CRC,CYCLICREDUNDANCYCHECK校验。
9、结果,决定数据包需不需要存入缓存。而包长信息和CRC校验结果均需要在接收到完整数据包后才能计算得出,也就是说在包尾时才能获得。0003在实际应用中,通常需要为每个输入端口开辟一个端口数据先入先出FIFO,FIRSTINFIRSTOUT存储器,用来存储至少一个完整数据包,提取包头信息并获知包长信息和CRC校验结果后,才将包头信息、包长信息和CRC校验结果发送到业务处理模块处理,然后再在端口之间轮询调度输出数据包数据。如此,不仅需要占用流量管理芯片内大量的存储资源,也使得数据包在流量管理芯片内的滞留时间较长。随着网络业务的飞速增长,流量管理芯片的输入端口数目越来越多,并且数据包的长度越来越大,对芯。
10、片存储能力的要求也越来越高,进而加大了芯片的成本。0004另外,数据包在业务处理模块中经过预定规则处理后,会生成几十甚至上百字节的描述符信息,所述描述符信息通常存储在流量管理芯片内部,无形中又增加了芯片的存储负担。由于芯片所需存储资源越多,芯片的面积和功耗就越大,因此,如何节省大量片内存储资源、降低芯片成本、改善芯片的面积和功耗,是目前亟需解决的问题。发明内容0005有鉴于此,本发明的主要目的在于提供一种数据包调度和缓存的装置及方法,能够节省芯片内部的存储资源,且缩短数据包在芯片内的延时。0006为达到上述目的,本发明的技术方案是这样实现的0007本发明提供了一种数据包调度和缓存的装置,所述装。
11、置包括包数据FIFO模块、包头数据FIFO模块和业务处理模块;其中,0008所述包数据FIFO模块,用于调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;还用于调度读出包尾标志时,获得包长信息和CRC校验结果,并将所述包长信息和CRC校验结果发送到业务处理模块;0009所述包头数据FIFO模块,用于存储包数据FIFO模块发送的包头信息;当包数据FIFO模块读出与所述包头信息相对应的包尾标志时,读出所述包头信息,并将所述包头信息发送到业务处理模块;0010所述业务处理模块,用于根据包头信息、包长信息和CRC校验结果生成描述符信息。0011上。
12、述方案中,所述装置还包括包管理模块和外部存储模块;其中,说明书CN104065588A2/6页50012所述包管理模块,用于接收业务处理模块发送的描述符信息;还用于在收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,对数据包数据和描述符信息进行轮询调度,将所述数据包数据和描述符信息发送到外部存储模块进行存储;0013所述外部存储模块,用于存储数据包数据和描述符信息;还用于向包管理模块返回包尾数据存储完成标志,以及描述符信息存储完成标志。0014上述方案中,所述包数据FIFO模块,还用于在调度读出数据包数据之前,对输入的数据包数据进行缓存,然后对数据包数据进行轮询调度。0015上述方案中。
13、,所述数据包数据包括包头标志、数据包实体和包尾标志;0016所述包头信息的长度根据业务处理模块所需要的信息量决定。0017上述方案中,所述装置还包括出队模块,用于接收包管理模块发送的标识信息,并根据所述标识信息对数据包做出队处理或丢弃处理;0018所述包管理模块,还用于在收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息并将所述标识信息发送到出队模块。0019上述方案中,所述包数据FIFO模块、包头数据FIFO模块、业务处理模块、包管理模块、出队模块设置于流量管理芯片中;所述外部存储模块为双倍速率同步动态随机存储器DDRSDRAM,DOUBLEDATARATESYNCHRONOU。
14、SDYNAMICRANDOMACCESSMEMORY。0020本发明还提供了一种数据包调度和缓存的方法,为每个输入端口设置包数据FIFO模块和包头数据FIFO模块;所述方法包括0021从包数据FIFO模块调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;0022读出包尾标志时,获得包长信息和CRC校验结果,从对应的包头数据FIFO模块读出包头信息;根据所述包头信息、包长信息和CRC校验结果生成描述符信息。0023上述方案中,所述方法还包括0024收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,对数据包数据和描述符信息进行轮询调度。
15、,并将所述数据包数据和描述符信息发送到外部存储模块进行存储处理;0025收到外部存储模块返回的包尾数据存储完成标志和描述符信息存储完成标志后,确定完成数据包缓存。0026上述方案中,从包数据FIFO模块调度读出数据包数据之前,该方法还包括0027输入端口输入数据时,将数据包数据缓存至包数据FIFO模块,然后对数据包数据进行轮询调度。0028上述方案中,所述数据包数据包括包头标志、数据包实体和包尾标志;0029所述包头信息的长度根据业务处理模块所需要的信息量决定。0030上述方案中,所述方法还包括0031收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息,并根据所述标识信息对数据包。
16、做出队处理或丢弃处理。0032上述方案中,所述包数据FIFO模块、包头数据FIFO模块设置于流量管理芯片中;所述外部存储模块为DDRSDRAM。0033本发明所提供的数据包调度和缓存的装置及方法,为流量管理芯片的每个输入端说明书CN104065588A3/6页6口分别设置包数据FIFO模块和包头数据FIFO模块,从包数据FIFO模块调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;读出包尾标志时,获得包长信息和CRC校验结果,并从对应的包头数据FIFO模块读出包头信息;根据所述包头信息、包长信息和CRC校验结果生成描述符信息。通过本发明的。
17、技术方案,无需为每个输入端口存储完整数据包,节省了流量管理芯片的存储资源,缩短了数据包在芯片内的延时;并且,将业务处理模块生成的描述符信息存储在外部存储模块中,同样节省了大量的芯片内部存储资源,降低了芯片成本,大大改善了芯片的面积和功耗。附图说明0034图1为本发明数据包调度和缓存装置的组成结构示意图;0035图2为本发明包管理模块的功能实现示意图;0036图3为本发明数据包调度和缓存方法的实现流程示意图;0037图4为本发明包头信息存储调度原理示意图。具体实施方式0038下面结合附图及具体实施例对本发明再作进一步详细的说明。0039图1为本发明数据包调度和缓存装置的组成结构示意图,如图1所示。
18、,该装置包括包数据FIFO模块11、包头数据FIFO模块12和业务处理模块13;其中,0040所述包数据FIFO模块11,用于调度读出数据包数据时,提取所述数据包的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块12进行存储;还用于调度读出包尾标志EOP,ENDOFPACKET时,获得包长信息和CRC校验结果,并将所述包长信息和CRC校验结果发送到业务处理模块13;0041所述包头数据FIFO模块12,用于存储包数据FIFO模块11发来的包头信息;还用于当包数据FIFO模块11读出与所述包头信息相对应的包尾标志时,读出所述包头信息,并将所述包头信息发送到业务处理模块13;0042其中。
19、,所述包数据FIFO模块11与所述包头数据FIFO模块12一一对应,且对应流量管理芯片的一个输入端口,分别用于存储该输入端口传输的数据包数据、数据包的包头信息;所述数据包数据中包括包头信息、数据包实体、包尾标志等信息,包尾标志中包括包长信息和CRC校验结果;所述包头信息是以包头标志为起点的一段字节数据;0043所述业务处理模块13,用于根据包头信息、包长信息和CRC校验结果生成描述符信息。0044这里,所述生成描述符信息的过程与现有技术相同;所述获得包长信息和CRC校验结果的方式与现有技术相同,此处不再赘述。0045进一步的,所述数据包调度和缓存装置还包括包管理模块14和外部存储模块15;其中。
20、,0046所述包管理模块14,用于接收业务处理模块13发送的描述符信息;还用于在收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,然后对数据包数据和描述符信息进行轮询调度,将所述数据包数据和描述符信息发送到外部存储模块15进行存储;0047所述外部存储模块15,用于存储数据包数据和描述符信息;还用于向包管理模块说明书CN104065588A4/6页714返回包尾数据存储完成标志,以及描述符信息存储完成标志。0048具体的,所述包数据FIFO模块11,还用于在调度读出数据包数据之前,对输入的数据包数据进行缓存,然后对数据包数据进行轮询调度。0049其中,所述数据包数据包括包头标志SOP,。
21、STARTOFPACKET、数据包实体和包尾标志;0050所述包头信息的长度根据业务处理模块13所需要的信息量决定;优选的,所述包头信息为数据包的前128字节数据。0051进一步的,所述数据包调度和缓存装置还包括出队模块16,用于接收包管理模块14发来的标识信息,并根据所述标识信息对数据包做出队处理或丢弃处理;0052其中,所述出队处理为将从外部存储模块15读出的数据通过网络接口发送到装置外;所述丢弃处理为不向装置外发送从外部存储模块15读出的数据,该数据丢弃不处理;0053相应的,所述包管理模块14,还用于在收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息,并将所述标识信息发。
22、送到出队模块16。0054这里,包管理模块14在收到包尾数据存储完成标志和描述符信息存储完成标志后,表示对所述数据包的缓存完成;包管理模块确定所述数据包缓存完成后,才可以产生标识信息,并向出队模块16发送所述标识信息。0055具体的,所述包数据FIFO模块11、包头数据FIFO模块12、业务处理模块13、包管理模块14、出队模块16设置于流量管理芯片中。0056具体的,所述外部存储模块15可以为DDRSDRAM。0057具体的,所述包管理模块14的功能实现如图2所示;包管理模块14收到数据包数据后,从包管理模块14的空闲链表申请逻辑地址,将所述逻辑地址经过映射转换成外部存储模块15的物理地址段。
23、;并为描述符信息预留存储空间,即通过偏移固定的物理地址为描述符信息预留出存储空间;然后对接收到的数据包数据和描述符信息进行轮询调度,并将所述数据包数据和描述符信息发送到外部存储模块15进行存储。这里,包管理模块14在将所述数据包数据和描述符信息发送到外部存储模块15进行存储的同时,可根据所申请的逻辑地址完成数据包链表的建立;0058其中,所述完成数据包链表的建立为在空闲链表中创建一个数据包链表,以便于出队模块对数据包进行出队处理或丢弃处理。0059图3为本发明数据包调度和缓存方法的实现流程示意图,如图3所示,该方法包括以下步骤0060步骤301为每个输入端口设置包数据FIFO模块和包头数据FI。
24、FO模块;0061这里,所述包数据FIFO模块和包头数据FIFO模块的存储深度均较浅,也就是说,所述包数据FIFO模块和包头数据FIFO模块的容量均较小;因为本发明从包数据FIFO模块调度读出数据包数据时,仅提取所述数据包数据的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储,无需预先存储一个完整的数据包,因此,所需的包数据存储FIFO模块的容量较小;而包头信息所占的存储资源很少,容量较小的包头数据FIFO模块即可满足包头信息的存储。0062具体的,所述包数据FIFO模块,用于缓存输入的数据包数据;说明书CN104065588A5/6页80063这里,所述缓存的数据包数据是轮。
25、询调度时读出的数据包数据,无需存储完整的数据包;其中,所述数据包数据包括包头标志、数据包实体和包尾标志。0064所述包头数据FIFO模块,用于缓存从包数据FIFO模块轮询调度读出的数据包数据中提取的包头信息;其中,所述提取的包头信息的具体长度由业务处理模块根据业务数据规则所需的信息量决定;一般来说,提取的包头信息为数据包的前128字节数据。0065步骤302从包数据FIFO模块调度读出数据包数据时,提取所述数据包数据的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储;0066具体的,从包数据FIFO模块调度读出数据包数据之前,该方法还包括输入端口输入数据时,将数据包数据缓存至。
26、包数据FIFO模块,然后对数据包数据进行轮询调度。0067具体的,包头信息的存储调度原理如图4所示,将包数据FIFO模块调度读出数据包数据发送到包管理模块;同时,从包数据FIFO模块调度读出数据包数据时,提取所述数据包数据的包头信息,并将所述包头信息发送到对应的包头数据FIFO模块进行存储。当读出包尾标志时,根据所述数据包的端口号,从对应端口的包头数据FIFO读出所述数据包的包头信息。0068步骤303读出包尾标志时,获得包长信息和CRC校验结果,从对应的包头数据FIFO模块读出所述数据包的包头信息;根据所述包头信息、包长信息和CRC校验结果生成描述符信息。0069这里,当包数据FIFO模块读。
27、出包尾标志时,经计算可获得包长信息和CRC校验结果;同时,根据所述数据包的端口号,从对应端口的包头数据FIFO模块读出所述数据包的包头信息,将包头信息、包长信息和CRC校验结果一起发送至业务处理模块进行处理。0070这里,包长信息和CRC校验结果的计算方法与现有技术中的计算方法相同。业务处理模块根据包头信息、包长信息、CRC校验结果等按预定规则对数据进行处理,生成关于所述数据包处理结果的描述符信息。0071进一步的,所述方法还包括在接收到数据包数据后申请逻辑地址,并为描述符信息预留存储空间,然后对数据包数据和描述符信息进行轮询调度,并将所述数据包数据和描述符信息发送到外部存储模块进行存储处理;。
28、0072这里,包管理模块会接收来自数据包数据和描述符信息两个通道的数据,由于业务处理模块的处理延时关系,数据包数据的包头标志必定比描述符信息先到达包管理模块。数据包数据的包头标志到达包管理模块后,包管理模块开始从空闲链表申请逻辑地址,并开始建立数据包数据链表;0073所述逻辑地址需要经过一次映射才能转换成外部存储模块的物理地址;将数据包数据发送到外部存储模块进行存储时,需要偏移固定的物理地址进行存储,所偏移的物理地址空间为所述数据包的描述符信息作预留;0074然后,包管理模块对接收到的数据包数据和描述符信息进行轮询调度,发送到外部存储模块进行存储,同时能够根据所申请的逻辑地址完成数据包链表的建。
29、立。0075进一步的,收到外部存储模块返回的包尾数据存储完成标志和描述符信息存储完成标志后,完成数据包缓存。0076具体的,所述方法还包括接收到包尾数据存储完成标志和描述符信息存储完成标志后,生成标识信息,并根据所述标识信息对数据包做出队处理或丢弃处理。说明书CN104065588A6/6页90077这里,本发明为了避免出现数据包没有存储完成即被读出的情况,必须当外部存储模块返回包尾数据存储完成标志和描述符信息存储完成标志后,才表示这个数据包完成存储。数据包完成存储后,包管理模块才可以产生标志信息,将所述标识信息发送到出队模块处理。业务处理模块根据CRC校验结果和预定规则判断对数据包是否做丢弃处理,如果业务处理模块判定对该数据包做丢弃处理时,则在出队模块将该数据包做丢弃处理。业务处理模块产生的描述符信息中包含了对所述数据包是否做丢弃处理的信息。0078其中,所述丢弃处理为不向装置外发送所述数据包,所述数据包丢弃不处理;所述出队处理为从外部存储模块读出来的数据包信息,通过网络接口发送到装置外。0079以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。说明书CN104065588A1/2页10图1图2说明书附图CN104065588A102/2页11图3图4说明书附图CN104065588A11。