CN114979041B - 一种提升片上缓存利用效率的拼包方法 - Google Patents
一种提升片上缓存利用效率的拼包方法 Download PDFInfo
- Publication number
- CN114979041B CN114979041B CN202210542997.8A CN202210542997A CN114979041B CN 114979041 B CN114979041 B CN 114979041B CN 202210542997 A CN202210542997 A CN 202210542997A CN 114979041 B CN114979041 B CN 114979041B
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- splicing
- data
- descriptor information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004806 packaging method and process Methods 0.000 title claims description 4
- 238000012545 processing Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种提升片上缓存利用效率的拼包方法,通过使用片上小包拼接小包以及小包拼接长包的方法,提高了片上缓存的利用效率,节省了成本,同时降低了报文的出队时延。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种提升片上缓存利用效率的拼包方法。
背景技术
时延是QOS(服务质量)的重要指标之一,其中增加系统的片上缓存是缩短时延的一种方法。让报文更多的存储在系统的片上缓存中,能够更快的处理报文,减小报文的处理时延从而达到业务的实时性要求。如今随着通讯业务越来越多,流量要求越来越大,对片上缓存也要求能存储更多的待处理报文。如何能让系统存储越来越多的待处理报文,现有的方案一是增加片上缓存的大小,使其能存储更多的片内报文;方案二是增加片外缓存,使一些报文先存入片外缓存中,等需要报文出队时再从片外读出报文进行处理。
现有技术的缺陷和不足:
1.方案一增加片上缓存的大小,使其能存储更多的片内报文,该方案缺点是增加成本,对于需要短暂存储大量的小包(包长<128B(B:字节))场景,内存利用率极低,造成内存的浪费。
2.方案二增加片外缓存,使一些报文先存入片外缓存中,等需要报文出队时再从片外读出报文进行处理,该方案缺点是报文处理时延增大,大大降低服务质量,并且增加了片外缓存的接口,使设计更加复杂。
结合以上两个方案的缺点本专利提出了一种片内小包拼包的方案,该方案能在不增加时延的基础上不增加片内资源实现报文的快速处理。
发明内容
为了解决现有技术中的不足,本发明提出了一种提升片上缓存利用效率的拼包方法,通过使用片上小包拼接小包和小包拼接长包的方法,提高了片上缓存的利用效率,节省了成本,同时降低了报文的出队时延。
为实现上述目的,本发明采用如下的技术方案。
在本发明实施例中,提出了一种提升片上缓存利用效率的拼包方法,该方法包括如下步骤:
S1报文入队时,检测报文长度,判断是否满足拼包条件;
S2将满足拼包条件的报文数据和报文描述符信息保存在寄存器中,同时申请空闲链表,将报文数据以及报文描述符信息分别写入空闲链表的data_ram和pd_ram,并为所述报文拉起拼包等待标记;
S3若后续的报文可以与满足拼包条件的报文进行拼包,则进行拼包处理,同时更新满足拼包条件报文的data_ram中的数据和pd_ram中的报文描述符信息;
S4报文出队列时,从报文对应的data_ram和pd_ram中分别读出报文数据和报文描述符信息,并根据报文描述符信息中的拼包标记进行解包处理,然后出队。
进一步的,所述报文描述符信息描述以太网报文信息,包括且不限于包长、转发类型、入向端口号、出向端口号等信息;所述data_ram用来存储报文数据,所述pd_ram存储报文描述符信息。
进一步的,所述拼包后的报文描述符信息包括且不限于拼包标记、两个拼包报文各自的包长、拼包后的总包长、转发类型、入向端口号以及出向端口号。
进一步的,若出队时,满足拼包条件的报文还没等到可拼包的报文,则直接进行出队,并且入向拼包等待标记清零。
进一步的,当报文长度小于128B或者报文长包大于256B并且eop拍报文有效长度小于128B时,则认为所述报文满足拼包条件,将所述报文打上拼包标记,直到等到下一个长度小于128B的报文到来时一起存入链表中。
进一步的,报文出队列时,报文数据和报文描述符信息进入pkt_parse模块进行解析,若发现有拼包标记,则把读出的报文数据按照报文描述符信息中的每个包长拆成两个完整的包,然后出队。
本发明的有益效果在于,针对现有的通信系统中存在的问题,提出了一种提升片上缓存利用效率的拼包方法,通过使用片上小包拼接小包和小包拼接长包的方法,提高了片上缓存的利用效率,节省了成本,同时降低了报文的出队延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实现流程示意图;
图2为本发明实施例一的具体实施示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。以下实施用例仅用于更加清楚地说明本发明的系统方法及技术方案,而不能以此来限制本申请的保护范围。
根据本发明的实施方式,本发明提出了一种提升片上缓存利用效率的拼包方法,通过使用片上小包拼接小包和小包拼接长包的方法,提高了片上缓存的利用效率,节省了成本,同时降低了报文的出队延时。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是一种提升片上缓存利用效率的拼包方法的处理流程示意图。如图1所示,该方法包括如下步骤:
S1报文入队时,检测报文长度,判断是否满足拼包条件;
S2将满足拼包条件的报文数据和报文描述符信息保存在寄存器中,同时申请空闲链表,将报文数据以及报文描述符信息分别写入空闲链表的data_ram和pd_ram,并为所述报文拉起拼包等待标记;
S3若后续的报文可以与满足拼包条件的报文进行拼包,则进行拼包处理,同时更新满足拼包条件报文的data_ram中的数据和pd_ram中的报文描述符信息;
S4报文出队列时,从报文对应的data_ram和pd_ram中分别读出报文数据和报文描述符信息,并根据报文描述符信息中的拼包标记进行解包处理,然后出队。
具体实施时,所述报文描述符信息描述以太网报文信息:包括包长,转发类型,入向端口号,出向端口号等信息;所述data_ram用来存储报文数据,所述pd_ram存储报文描述符信息。
具体实施时,所述拼包后的报文描述符信息包含:拼包标记,两个拼包报文各自的包长、拼包后的总包长,转发类型,入向端口号以及出向端口号。
具体实施时,若出队时,满足拼包条件的报文还没等到可拼包的报文,则直接进行出队,并且入向拼包等待标记清零。
具体实施时,当报文长度小于128B或者报文长包大于256B并且eop拍报文有效长度小于128B时,则认为所述报文满足拼包条件,将所述报文打上拼包标记,直到等到下一个长度小于128B的报文到来时一起存入链表中。
具体的,报文出队列时,报文数据和报文描述符信息进入pkt_parse模块进行解析报文描述符,若发现有拼包标记,则把读出的报文数据按照报文描述符信息中的每个包长拆成两个完整的包,然后出队。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述一种提升片上缓存利用效率的拼包方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
实施例一:
一种提升片上缓存利用效率的拼包方法,具体实施示意图如图2所示,具体如下:
1、报文入队时,进入pkt_join模块进行拼包处理,首先检测报文长度;
1)如果当前报文长度<128B时,为该报文打上拼包标记,等到下一个包长小于128B的报文到来后一起存入链表中。
对于单拍包包长<128B(总线位宽为256B)的短包,首先把报文数据和报文描述符信息保存在寄存器中,同时进行空闲链表地址的申请,然后把数据以及描述信息写入data_ram、pd_ram;为该报文打上拼包标记,等到下一个包长小于128B的报文到来后一起存入链表中。
所述拼包标记基于报文,寄存器只有拼包标记的才能写进去。
所述报文描述符信息描述以太网报文信息:包括包长,转发类型,入向端口号,出向端口号等信息;所述data_ram用来存储报文数据,所述pd_ram存储报文描述符信息。
若后面的一个报文同样是一个<128B的小包,然后把两个小包数据进行拼包,挤泡(拼包)成一个256B的数据,该拼包后的报文不申请空闲链表地址,直接用上个小包申请的地址把数据写入data_ram中,此时写入的数据为两个小包拼在一起的数据,同时把两个小包的报文描述符信息整合在一起写入pd_ram,若紧接着的报文包长>128B,则该报文不拼包,直到等到报文长度<128B时,再进行拼包。
拼包后的报文描述符信息包含:拼包标记,每个小包的包长,拼包后的总包长,转发类型,入向端口号,出向端口号等,为后面的报文出队做准备。
2)如果当前报文长包大于256B,在eop拍时报文有效长度小于128B时,该报文打上拼包标记,直到等到下一个长度小于128B的报文到来时一起存入链表中。
对于长包(报文切片大于1),若eop(报文的最后一个切片(end of packet))拍切片长度<128B时,该报文可拼包,把该报文的eop拍数据以及描述符信息暂存在寄存器中(eop拍的数据是要存入链表的,只是还没有完成拼包,需要先写入寄存器中),其余拍数据和报文描述符先申请空闲链表地址,数据存入相应地址的data_ram,报文描述符存入sop拍(start of packet,报文的首切片,由前级模块传输而来)申请的空闲链表地址相对应的pd_ram。
若下一个报文来的是一个<128B的小包,则该小包数据要和上一个长包的eop数据进行拼接并进行挤泡得到一个新的256B的数据,然后小包和长包的报文描述符信息组合在一起写入sop切片申请的空闲链表地址对应的pd_ram中,该报文描述符信息包含:拼包标记,两个拼包报文各自的包长、拼包后的总包长,转发类型,入向端口号以及出向端口号等;为后面的报文出队做准备。若长包后面的报文长度>128B时,此包不进行拼包,直接进行空闲链表地址的申请,进行入队,直到下一个包出现包长<128B的小包,才进行拼包。
2、报文出队时,根据出队报文的地址从data_ram读出每个报文的切片数据以及用sop切片地址从pd_ram中读出报文描述符信息,然后报文数据和报文描述符信息进入pkt_parse模块进行解析报文描述符,若发现有拼包标记,要把读出的报文数据按照报文描述符信息中的每个包长拆成两个完整的包,然后出队。
若出队时,报文还没等到拼包的条件,那直接进行出队,并且入向拼包等待标记清零。
本发明的有益效果在于,针对现有的通信系统中存在的问题,提出了一种提升片上缓存利用效率的拼包方法,不增加片上缓存的基础上,通过使用片上小包拼接小包和小包拼接长包的方法,提高了片上缓存的利用效率,节省了成本,同时降低了报文的出队延时。
本发明申请人结合说明书附图对本发明的实施用例做了详细的说明与描述,以上实施用例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
Claims (1)
1.一种提升片上缓存利用效率的拼包方法,其特征在于,该方法包括如下步骤:
S1报文入队时,检测报文长度,判断是否满足拼包条件;
S2将满足拼包条件的报文数据和报文描述符信息保存在寄存器中,同时申请空闲链表,将报文数据以及报文描述符信息分别写入空闲链表的data_ram和pd_ram,并为所述报文拉起拼包等待标记;
S3若后续的报文可以与所述满足拼包条件的报文进行拼包,则进行拼包处理,同时更新所述满足拼包条件报文的data_ram中的数据和pd_ram中的报文描述符信息;
S4报文出队列时,从报文对应的data_ram和pd_ram中分别读出报文数据和报文描述符信息,并根据报文描述符信息中的拼包标记进行解包处理,然后出队;
所述报文描述符信息描述以太网报文信息,包括且不限于包长,转发类型,入向端口号,出向端口号;所述data_ram存储报文数据,所述pd_ram存储报文描述符信息;
当报文长度小于128B或者报文长包大于256B并且eop拍报文有效长度小于128B时,则认为所述报文满足拼包条件,将所述报文打上拼包标记,直到等到下一个长度小于128B的报文到来时一起存入链表中;
所述拼包后的报文描述符信息包括且不限于拼包标记,两个拼包报文各自的包长、拼包后的总包长,转发类型,入向端口号以及出向端口号;
若出队时,满足拼包条件的报文还没等到可拼包的报文,则直接进行出队,并且入向拼包等待标记清零;
报文出队列时,报文数据和报文描述符信息进入pkt_parse模块进行解析,若发现有拼包标记,则把读出的报文数据按照报文描述符信息中的每个包长拆成两个完整的包,然后出队。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542997.8A CN114979041B (zh) | 2022-05-18 | 2022-05-18 | 一种提升片上缓存利用效率的拼包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542997.8A CN114979041B (zh) | 2022-05-18 | 2022-05-18 | 一种提升片上缓存利用效率的拼包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979041A CN114979041A (zh) | 2022-08-30 |
CN114979041B true CN114979041B (zh) | 2024-03-08 |
Family
ID=82986002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542997.8A Active CN114979041B (zh) | 2022-05-18 | 2022-05-18 | 一种提升片上缓存利用效率的拼包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979041B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
WO2017173755A1 (zh) * | 2016-04-06 | 2017-10-12 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN108881062A (zh) * | 2017-05-12 | 2018-11-23 | 深圳市中兴微电子技术有限公司 | 一种数据包传输方法和设备 |
CN113535633A (zh) * | 2020-04-17 | 2021-10-22 | 深圳市中兴微电子技术有限公司 | 一种片上缓存装置和读写方法 |
-
2022
- 2022-05-18 CN CN202210542997.8A patent/CN114979041B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
WO2017173755A1 (zh) * | 2016-04-06 | 2017-10-12 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN108881062A (zh) * | 2017-05-12 | 2018-11-23 | 深圳市中兴微电子技术有限公司 | 一种数据包传输方法和设备 |
CN113535633A (zh) * | 2020-04-17 | 2021-10-22 | 深圳市中兴微电子技术有限公司 | 一种片上缓存装置和读写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114979041A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070248110A1 (en) | Dynamically switching streams of packets among dedicated and shared queues | |
WO2006063298A1 (en) | Techniques to manage flow control | |
EP3657744B1 (en) | Message processing | |
CN112751788A (zh) | 一种支持多类型帧混合传输的双平面交换方法 | |
WO2014146468A1 (zh) | 一种数据包调度和缓存的方法、装置和计算机存储介质 | |
CN111211990B (zh) | 一种数据包处理方法和装置 | |
CN114979041B (zh) | 一种提升片上缓存利用效率的拼包方法 | |
WO2018177041A1 (zh) | 一种报文分片存储及重组的方法、装置和计算机存储介质 | |
CN111224895A (zh) | 一种hsr网络中时间敏感报文传输方法、装置及设备 | |
CN114827292A (zh) | 工业异构协议高速转换优化处理方法及系统 | |
CN112822722B (zh) | 一种数据报文的传输方法和装置 | |
CN107707548B (zh) | Tlv报文解析方法、装置、电子设备及存储介质 | |
US20060187963A1 (en) | Method for sharing single data buffer by several packets | |
WO2018171115A1 (zh) | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 | |
CN107332839B (zh) | 一种报文传输方法及装置 | |
US20040125750A1 (en) | Packet header alignment | |
CN113014606B (zh) | 一种网络芯片中硬件模块的访问装置及方法 | |
CN115914130A (zh) | 智能网卡的数据流量处理方法及装置 | |
CN114422624A (zh) | 数据接收方法 | |
CN115361191A (zh) | 一种基于sflow的防火墙流量检测方法、系统、设备及介质 | |
CN101938404B (zh) | 用于数据流量管理的随机早期丢弃方法和装置 | |
CN111935036A (zh) | 一种光纤通道交换机中数据帧切分与重组的实现方法 | |
CN107426180B (zh) | 一种以太网数据帧覆盖性的检测装置 | |
US20230388253A1 (en) | Packet forwarding system and associated packet forwarding method | |
CN110691043B (zh) | 一种支持多源多虚通道非连续传输的插花整理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |