CN114979041B - 一种提升片上缓存利用效率的拼包方法 - Google Patents

一种提升片上缓存利用效率的拼包方法 Download PDF

Info

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
Application number
CN202210542997.8A
Other languages
English (en)
Other versions
CN114979041A (zh
Inventor
李�浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhe Semiconductor Technology Wuxi Co Ltd
Original Assignee
Xinhe Semiconductor Technology Wuxi Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinhe Semiconductor Technology Wuxi Co Ltd filed Critical Xinhe Semiconductor Technology Wuxi Co Ltd
Priority to CN202210542997.8A priority Critical patent/CN114979041B/zh
Publication of CN114979041A publication Critical patent/CN114979041A/zh
Application granted granted Critical
Publication of CN114979041B publication Critical patent/CN114979041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

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模块进行解析,若发现有拼包标记,则把读出的报文数据按照报文描述符信息中的每个包长拆成两个完整的包,然后出队。
CN202210542997.8A 2022-05-18 2022-05-18 一种提升片上缓存利用效率的拼包方法 Active CN114979041B (zh)

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)

* Cited by examiner, † Cited by third party
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 深圳市中兴微电子技术有限公司 一种片上缓存装置和读写方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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) 一种支持多类型帧混合传输的双平面交换方法
CN114827292B (zh) 工业异构协议高速转换优化处理方法及系统
CN111211990B (zh) 一种数据包处理方法和装置
US8340090B1 (en) Interconnecting forwarding contexts using u-turn ports
WO2014146468A1 (zh) 一种数据包调度和缓存的方法、装置和计算机存储介质
CN114979041B (zh) 一种提升片上缓存利用效率的拼包方法
WO2018177041A1 (zh) 一种报文分片存储及重组的方法、装置和计算机存储介质
CN112822722B (zh) 一种数据报文的传输方法和装置
CN107707548B (zh) Tlv报文解析方法、装置、电子设备及存储介质
US20060187963A1 (en) Method for sharing single data buffer by several packets
CN113300929A (zh) 一种报文转发方法、装置、电子设备及存储介质
CN110661745B (zh) 一种开销传输方法、装置、设备及计算机可读存储介质
CN107332839B (zh) 一种报文传输方法及装置
US20040125750A1 (en) Packet header alignment
CN113014606B (zh) 一种网络芯片中硬件模块的访问装置及方法
CN115914130A (zh) 智能网卡的数据流量处理方法及装置
CN114422617B (zh) 一种报文处理方法、系统及计算机可读存储介质
CN114422624A (zh) 数据接收方法
CN115361191A (zh) 一种基于sflow的防火墙流量检测方法、系统、设备及介质
CN111935036A (zh) 一种光纤通道交换机中数据帧切分与重组的实现方法
CN107426180B (zh) 一种以太网数据帧覆盖性的检测装置
CN101938404A (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