CN116055397B - 队列表项维护方法与装置 - Google Patents
队列表项维护方法与装置 Download PDFInfo
- Publication number
- CN116055397B CN116055397B CN202310300154.1A CN202310300154A CN116055397B CN 116055397 B CN116055397 B CN 116055397B CN 202310300154 A CN202310300154 A CN 202310300154A CN 116055397 B CN116055397 B CN 116055397B
- Authority
- CN
- China
- Prior art keywords
- entry
- queue
- key value
- new
- table entry
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提出了一种队列表项维护方法与装置。方法包括:根据接收到的报文的特征值提取键值;查询表项中是否存在与所述键值对应的表项条目;若查询结果为不存在,则建立与所述键值对应的新的表项条目,输出所述新的表项条目对应的队列号和新队列标记。本公开支持流水动态建立表项,根据键值,若不曾存入该表项,则进行表项的建立植入,支持流水无气泡的建立、识别、查询表项,不需要提前配置好表项。另外,本公开的方案,根据接收到的报文的特征值提取键值,可以减少RAM的使用和逻辑资源。
Description
技术领域
本公开涉及数据处理技术领域,具体涉及一种队列表项维护方法与装置。
背景技术
目前针对表项查表主要为“布谷鸟”的形式,即,采取对数据进行哈希计算得出键值,通过多种哈希公式,得出不同键值来减小键值冲突,通过查找表项内相同键值的表项,输出该表项条目的行地址,即队列号。该方法往往占用3个查表RAM(Random AccessMemory,随机存取存储器)和大量的匹配逻辑,深度和宽度较大,耗费资源。并且,现有的表项查表方法,是通过将RAM(Random Access Memory,随机存取存储器)中提前写入表项内容,报文到来时进行哈希得出键值,表项内容需要提前配置好,表项内容的大小收到表项空间的限制。
发明内容
本公开提出了一种队列表项维护方法与装置,以有助于节省资源和提高性能。本公开可应用于涉及根据键值内容查表,对表项进行建立和删除、更新等操作的技术领域,通过本公开方案对报文进行队列区分,可以实现根据报文内容进行分发队列。如以太网查表、各领域涉及对表项进行查表、建立、查找、删除队列表项的操作。
第一方面,本公开提供一种队列表项维护方法,包括:根据接收到的报文的特征值提取键值;查询表项中是否存在与所述键值对应的表项条目;若查询结果为不存在,则建立与所述键值对应的新的表项条目,输出所述新的表项条目对应的队列号和新队列标记。
在一些可选的实施方式中,所述建立与所述键值对应的新的表项条目包括:获取当前分发的队列号,根据所述键值和所分发的队列号在所述表项中建立一个新的表项条目,其中,以所述键值为所述新的表项条目的写入数据,以所分发的队列号为所述新的表项条目在所述表项中的行地址。
在一些可选的实施方式中,所述方法还包括:若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
在一些可选的实施方式中,所述方法还包括:若接收到与所述报文随路发送的队列清除标记,则删除对应的表项条目。
在一些可选的实施方式中,所述方法的各个步骤由逻辑电路实现,按照时间节拍执行,支持流水操作,具体包括:
在T0时刻,执行所述根据接收到的报文的特征值提取键值的步骤和所述查询所述表项中是否存在与所述键值对应的表项条目的步骤,并执行所述建立与所述键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若所述查询结果为不存在,则执行所述输出所述新的表项条目对应的队列号和新队列标记的步骤,若所述查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的所述新的表项条目。
第二方面,本公开提供一种队列表项维护装置,包括:队列表项存储模块,被配置成存储表项;控制逻辑模块,被配置成根据接收到的报文的特征值提取键值,查询所述表项中是否存在与所述键值对应的表项条目,若查询结果为不存在,则建立与所述键值对应的新的表项条目,输出所述新的表项条目对应的队列号和新队列标记。
在一些可选的实施方式中,所述装置还包括:队列号管理模块,被配置成分发队列号给所述控制逻辑模块;所述控制逻辑模块,进一步被配置成获取所述队列号管理模块当前分发的队列号,根据所述键值和所分发的队列号在所述表项中建立一个新的表项条目,其中,以所述键值为所述新的表项条目的写入数据,以所分发的队列号为所述新的表项条目在所述表项中的行地址。
在一些可选的实施方式中,所述装置还包括:所述控制逻辑模块,进一步被配置成若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
在一些可选的实施方式中,所述装置还包括:所述控制逻辑模块,进一步被配置成若接收到与所述报文随路发送的队列清除标记,则删除对应的表项条目。
在一些可选的实施方式中,所述装置的各个模块由逻辑电路实现,按照时间节拍执行,支持流水操作,其中,所述控制逻辑模块进一步被配置成:
在T0时刻,执行所述根据接收到的报文的特征值提取键值的步骤和所述查询所述表项中是否存在与所述键值对应的表项条目的步骤,并执行所述建立与所述键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若所述查询结果为不存在,则执行所述输出所述新的表项条目对应的队列号和新队列标记的步骤,若所述查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的所述新的表项条目。
如上所述,为了解决现有的表项查表方法浪费资源和性能受限的技术问题,本公开提出了一种队列表项维护方法和装置。区别于现有技术中需要将RAM中提前写入表项内容,报文到来时进行哈希得出键值,表项内容需要提前配置好。本公开支持流水动态建立表项,根据键值,若不曾存入该表项,则进行表项的建立植入,支持流水无气泡的建立、识别、查询表项,不需要提前配置好表项。另外,本公开的方案,根据接收到的报文的特征值提取键值,以替代“布谷鸟”的方式,可以减少RAM的使用和逻辑资源。
进一步的实施方式中,本公开支持表项的删除。有别于现有技术中表项的删除需要再配置该表项条目使能位,或重新写入覆盖表项,不能达到根据识别报文,自动消除表项条目。本公开可以根据接收报文的删除表项标记(即队列清除标记),进行对表项的使能位置无效,以删除对应的表项条目,实现了根据识别报文自动消除对应的表项条目。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是根据本公开一实施例的队列表项维护方法的流程图;
图2是根据本公开一实施例的队列表项维护方法的结构图;
图3是根据本公开另一实施例的队列表项维护方法的流程图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
在本公开的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本公开的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
在本公开的描述中,需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
参考图1,图1是根据本公开一个实施例的队列表项维护方法的流程图。如图1所示,本公开实施例的队列表项维护方法100可包括:
步骤11、根据接收到的报文的特征值提取键值;
步骤12、查询表项中是否存在与键值对应的表项条目;
步骤13、若查询结果为不存在,则建立与键值对应的新的表项条目,输出该新的表项条目对应的队列号(即队列编号)和新队列标记;
步骤14、若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
这里,通过识别报文并输出队列号,可以将进入的报文分发到不同的队列。
在一些可选的实施方式中,步骤11中根据接收到的报文的特征值提取键值,可以包括:通过协商报文头字段内容,选取报文头中部分或全部数据,例如高97位(bit)数据,作为特征值数据,进行键值提取。这里,所说的键值可以作为队列特征识别元素。
在一些可选的实施方式中,可以直接将报文的特征值(例如报文头高97bit数据)作为键值,或者,也可以将特征值进行处理后作为键值。可选的,例如97bit的特征值中,有一些位域是不关心的,可以不作为区分队列的元素,以此,所说的处理例如可以是将特征值与输入的键值掩码取反后做按位逻辑与操作。
在一些可选的实施方式中,步骤12中查询表项中是否存在与键值对应的表项条目可以是,将提取的键值与所存储的表项中的各个表项条目进行比较,判断是否有任何一个表项条目中已经存在该键值。
在一些可选的实施方式中,步骤13中建立与键值对应的新的表项条目可以包括:获取当前分发的队列号,根据提取的键值和所分发的队列号在表项中建立一个新的表项条目,其中,以提取的键值为新的表项条目的写入数据,以所分发的队列号为新的表项条目在表项中的行地址。以此种方式,可以实现流水的在表项中新建表项条目。这里,可以将新的表项条目对应的队列号(即行地址)输出,同时还可以输出一个新队列标记,以此,可以将进入的报文分发到一个新的队列中去。
在一些可选的实施方式中,步骤14可以具体包括:若查询结果为存在,则获取查询到的表项条目的行地址,将该行地址作为对应的队列号进行输出。以此,可以将进入的报文分发到一个已经存在的队列中去。
在一些可选的实施方式中,本公开实施例的方法还可以包括:若接收到与报文随路发送的队列清除标记,则删除对应的表项条目。队列清除标记即为表项删除标记,当报文随路发送有该标记时,可以通过对表项的使能位置无效,来删除对应的表项条目,实现根据识别报文自动消除对应的表项条目。
在一些可选的实施方式中,本公开实施例的方法的各个步骤由逻辑电路实现,按照时间节拍执行,支持流水操作,具体包括:
在T0时刻,执行根据接收到的报文的特征值提取键值的步骤和查询表项中是否存在与键值对应的表项条目的步骤,并执行建立与键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若若查询结果为不存在,则执行输出新的表项条目对应的队列号和新队列标记的步骤,若若查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的新的表项条目。
如上所述,本公开实施例提出了一种队列表项维护方法,该方法可应用于流水识别报文,流水的对队列进行建立、查表及删除操作。通过协商报文头字段内容,将选取报文头例如97位数据作为特征值,进行键值提取,对提取的键值进行查表,若表项中无该键值对应的表项条目,则建立相应的表项条目,同时输出该表项条目的队列号和新队列标记(该队列首次建立标记)。后续报文流水进入,通过后续报文的特征值数据所提取的键值进行查表,若存在对应的表项条目,则输出该报文的队列号。进一步的,后续报文进入,可随路匹配队列清除标记,通过报文的特征值数据所提取的键值进行查表时,输出队列号,同时清除该表项条目。无气泡的下一包该队列数据可作为新入队报文。
参考图2,图2是根据本公开一个实施例的队列表项维护装置的结构图。如图2所示,本公开实施例的队列表项维护装置200可包括:队列表项存储模块21,控制逻辑模块22,和队列号管理模块23。
队列表项存储模块21,被配置存储表项;
控制逻辑模块22,被配置成根据接收到的报文的特征值提取键值,查询表项中是否存在与键值对应的表项条目,若查询结果为不存在,则建立与键值对应的新的表项条目,输出所建立的新的表项条目对应的队列号和新队列标记。
在一些可选的实施方式中,队列号管理模块23,被配置成分发队列号给控制逻辑模块22;控制逻辑模块22,可以进一步被配置成获取队列号管理模块当前分发的队列号,根据键值和所分发的队列号在表项中建立一个新的表项条目,其中,以键值为新的表项条目的写入数据,以所分发的队列号为新的表项条目在表项中的行地址。
在一些可选的实施方式中,控制逻辑模块22,可以进一步被配置成若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
在一些可选的实施方式中,控制逻辑模块22,可以进一步被配置成若接收到与报文随路发送的队列清除标记,则删除对应的表项条目。
在一些可选的实施方式中,装置的各个模块可以由逻辑电路实现,按照时间节拍执行,支持流水操作,其中,控制逻辑模块22可以进一步被配置成:
在T0时刻,执行根据接收到的报文的特征值提取键值的步骤和查询表项中是否存在与键值对应的表项条目的步骤,并执行建立与键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若若查询结果为不存在,则执行输出新的表项条目对应的队列号和新队列标记的步骤,若若查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的新的表项条目。
这里,队列表项存储模块21,可以采用寄存器数组来实现,也可称为队列表项寄存器数组。可以用LUT(Look-Up-Table,显示查找表)来实现寄存器数组。LUT本质上就是一个RAM,把数据写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
在一些可选的实施方式中,本公开实施例的装置,其输入接口为时钟clk、复位rst_n、数据总线i_data_bus,队列尾标志i_ig_pkt_stat_flag,键值掩码i_session_mask,删除队列号及使能有效i_del_quebp_id+i_del_quebp_vld;其输出接口为数据总线o_data_bus,队列尾标志o_eg_pkt_stat_flag,输出队列号o_que_num,输出队列号使能o_que_vld,新队列标记o_new_session_flag。
本公开实施例提出的采用上述三个模块组成的队列表项维护装置,可用于实现如图1所示的实施例提出的队列表项维护方法。关于该装置未详细描述的部分,可参考前文对方法实施例的描述。
参考图3,图3是根据本公开一个具体应用场景实施例的队列表项维护方法的流程图。结合图2和图3,本实施例的队列表项维护方法可包括如下步骤:
当某个队列的首个报文进入时,控制逻辑模块22提取报文的特征值,例如包头(报文头)的高97bit数据(时刻T0)。可选的,在该97bit中,有一些位域是不关心的,不作为区分队列的元素,所以与(输入的键值掩码取反后)做按位逻辑与操做(时刻T0)。
队列号管理模块23最大生成的计数值可以为32,数值范围为0-31,常态会露出当前未被占用的最小队列号(当前队列号),当接收到队列号占用使能s_id_pop信号,使能占用当前队列号,队列号管理模块23下一时刻时序逻辑输出下一个队列号值;当收到即队列号释放管理信号组(队列号释放使能s_id_push信号+释放队列号),或收到释放队列号bitmap,会将该释放队列号标记为未被使用,等待被占用。
时刻T0,控制逻辑模块22接收到报文的报文头数据,提取报文头的特征值例如高97bit数据作为键值,根据当前队列号管理模块23当前分发的队列号(当前队列号),作为表项(寄存器数组)的行地址,将97bit键值内容时序逻辑写入表项条目中(T1时刻写入内容生效)。即若在包头时,i_ig_sop&&s_st_quebp_id == i成立,s_que_lut[i] <= s_session_data;s_st_quebp_id为当前待使用的队列号。i_ig_sop为包头有效信号。
同时T0时刻,将该97bit键值,并行与表项中所有表项条目进行时序逻辑比对,比对逻辑为 |(s_session_data^s_que_lut[i]&(~i_session_mask))==1’b0,s_session_data为97bit键值,s_que_lut[i]为当前所有表项条目的内容,得出s_que_compare[i],若该值为1,代表当前表项内容与查表键值匹配。
在T1时刻,s_lut_session_exist_vld = |(s_que_compare&(~s_st_quebpmap));s_lut_session_exist_vld为查询的该入队报文是否为该队列的新入队报文,高有效。s_st_quebp_bitmap为队列号管理模块未被占用的队列号bitmap形式。s_que_compare&(~s_st_quebpmap)表示的含义为:所有表项条目内容匹配结果同被占用的队列号独热码形式按位与运算,该运算结果按位或逻辑运算是否为1。
在T1时刻,如果s_que_compare[ii-1]&&(~s_st_quebp_bitmap[ii-1]成立, s_lut_session_num= ii-1;s_lut_session_num为已经存入表项的队列号,即表项寄存器数组的行地址。ii为循环的0-31参数。
在T1时刻,如果i_del_quebp_vld&&(i_del_quebp_id == ii -1)成立,s_i_del_quebp_bp[ii-1] = 1’b1 ; s_i_del_quebp_bp为删除释放队列号的bitmap形式。
在T1时刻,如果s_stream_tail_fail&&(s_lut_session_num == ii -1)成立,s_lut_session_num_bp[ii-1] = 1’b1 ;在T0时刻随着报文进入模块的队列尾标记信号i_ig_pkt_stat_flag,该信号在T1时刻为s_stream_tail_fail;s_lut_session_num_bp为已经存在该表项的队列号bitmap形式。
在T1时刻,如果s_lut_session_exist_vld&&(s_st_quebp_id_ff == ii -1)成立,s_st_quebp_id_ff_bp[ii-1] = 1’b1 ; s_st_quebp_id_ff为T1时刻下,s_st_quebp_id在T0时刻的值。
在T1时刻,若报文队列已经存在(包含队列尾标记情况),则删除在T0时刻新申请的队列号。若报文队列不存在,则不删除在T0时刻新申请的队列号。
对于队列号管理模块,在释放被占用的队列号时,采取bitmap形式s_del_quebp_bitmap,支持同时删除多个队列号,在删除释放队列号时,通过s_del_quebp_vld指示释放有效信号。
在T1时刻输出队列号o_eg_que_num = s_lut_session_exist_vld? s_lut_session_num :s_st_quebp_id_ff ;
在T1时刻输出队列新入队标记 o_eg_new_session_flag = ~s_lut_session_exist_vld ;
在T1时刻输出的数据总线为T0时刻输入的数据总线流水打一拍输出。
本公开能够支持1拍的流水延迟对队列表项进行管理,在T1时刻输出队列是否为新入队队列及查表队列号,释放队列表项等功能,支持无气泡报文的流水处理。
由上可见,该方案的关键点包括:
不需要提前对表项进行写入配置,复位后是个空表项,随着报文的进入,进行流水的对报文的特征值进行提取键值(时刻T0);
将该键值写入一个空表项,空表项的写入地址根据动态的队列号管理模块给出,写入表项的数据为键值数据(时刻T0写入,时刻T1写入生效);
同时将该键值与表项空间所有表项条目内存入的键值进行比较,在T0时刻比较,T1时刻给出比较结果。在T1时刻,若查询到已经存入了该键值,则输出该键值的队列号,即行地址(T1时刻)。同时在T1时刻删除T0时刻该键值写入的空表项条目(T2时刻删除生效)。若查询到没有存入过该键值,则在T1时刻输出该键值在T0时刻写入的行地址,即队列号。若在T1时刻,在查询到该键值已经写入过,并且有随路删除队列标记(队列清除标记),在T1同时刻向动态的队列号管理模块发出清除该地址(队列号)的占用。
本实施例方法中,当报文进入时,在T0时刻即进行键值提取并将提取的键值与表项条目进行逻辑比对,查询是否存在匹配的表项条目,同时,在表项中新建一个条目将提取的键值写入;在T1时刻,如果查询到原先表项中已存在对应的表项条目则输出对应的队列号,并删除为该键值新建的条目;如果未查询到,则T0时刻新建的表项条目生效,输出该新建的表项条目对应的队列号。即,将查询键值与新建表项条目在T0时刻同时进行,后续T1时刻根据查询结果再决定是否保留T0时刻新建的表项条目;以此,新表项条目提前建立而不依赖于查询结果,在T0和T1两个节拍时间内,即可完成整个作业,节省了作业时间,得以实现流水动态的表项建立、查询和删除。
综上,本公开提出了一种队列表项维护方法和装置。本公开支持动态写入表项、删除表项、查询表项,对于入队的报文,识别报文固定位置,提取特征值数据作为队列识别特征元素(即键值),进行查询表项,若不存在该队列条目,则将该键值写入表项条目,同时分发队列号。若该键值已经存在,则将查询表项的结果即队列号进行输出。若报文匹配着删除队列标记(队列清除标记)一起到来,则输出该队列号,同时清除该队列表项条目,下一个无气泡进入的该队列报文,能够正确识别为新入队报文。若在无报文到来时,或其它队列入队查表,此时支持收到清除队列条目标记+队列号,用以并行清除该队列表项条目。
本公开实现的技术效果包括:
1. 通过对报文的特征值数据进行键值提取和查表,若无该表项则建立队列,输出分配的队列标号和该队列首次建立标记。
2. 通过对报文的特征值数据进行键值提取和查表,若查询到该键值的表项已经存在,则输出该表项的队列号。
3. 通过对报文的特征值数据进行键值提取和查表,若与报文随路发送了队列清除标记,输出该表项的队列号,同时删除该表项,为表项空间减少一个表项的占用。
4. 基于第三点,已删除的表项,若后续报文的特征值键值与被删除的表项键值相同,则也当做首次建立该队列表项的报文,因为该表项已不存在。同时该表项所分配的队列号也不一定相同,因为队列标号是由队列号管理模块动态维护的。
5. 不需要提前对表项进行配置,也即对查表的键值无限制,只是区分不同键值,不同的键值查询到不同的表项,无重复。当随路信号标记删除该表项条目时,则清除该表项条目。以此可以实现当表项空间只有128(不限制该个数)个条目时,支持任意报文进入,得出的键值范围可以远远超过128个条目,本公开只是限制了同时存在的表项条目不超过表项空间允许的个数(例如128个),并不限制键值范围。
6. 本公开可以利用动态队列号管理模块(例如127bit的bitmap管理模块),实现从0-127间数字的分发,其分发的数字用于作为队列号。该模块会保持当前输出分发的数字,接收到申请标记,则分发新的数字,同时可用分发数字的总个数-1,当接收到撤销标记+撤销数字编号,将对应的撤销数字标号释放,同时可用分发数字的总个数+1。该模块默认在数字编号池中分发从小到大的数字编号,即以递增的方式分配队列号,另外,当可用分发数字的总个数为1时,向前级反压,不再允许报文进入。
7. 本公开不采用诸如布谷鸟查表方法,减少了RAM的使用及逻辑资源。
8. 本公开支持流水式报文输入查表,能够缩小逻辑面积和大大的提高时序及执行性能。
以上,通过具体实施例对本公开的技术方案进行了详细说明。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (8)
1.一种队列表项维护方法,其特征在于,包括:
根据接收到的报文的特征值提取键值;
查询表项中是否存在与所述键值对应的表项条目;
若查询结果为不存在,则建立与所述键值对应的新的表项条目,输出所述新的表项条目对应的队列号和新队列标记;
所述方法的各个步骤由逻辑电路实现,按照时间节拍执行,支持流水操作,具体包括:
在T0时刻,执行所述根据接收到的报文的特征值提取键值的步骤和所述查询表项中是否存在与所述键值对应的表项条目的步骤,并执行所述建立与所述键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若所述查询结果为不存在,则执行所述输出所述新的表项条目对应的队列号和新队列标记的步骤,若所述查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的所述新的表项条目。
2.根据权利要求1所述的方法,其特征在于,所述建立与所述键值对应的新的表项条目包括:
获取当前分发的队列号,根据所述键值和所分发的队列号在所述表项中建立一个新的表项条目,其中,以所述键值为所述新的表项条目的写入数据,以所分发的队列号为所述新的表项条目在所述表项中的行地址。
3.根据权利要求1所述的方法,其特征在于,还包括:
若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
4.根据权利要求1所述的方法,其特征在于,还包括:
若接收到与所述报文随路发送的队列清除标记,则删除对应的表项条目。
5.一种队列表项维护装置,其特征在于,包括:
队列表项存储模块,被配置成存储表项;
控制逻辑模块,被配置成根据接收到的报文的特征值提取键值,查询所述表项中是否存在与所述键值对应的表项条目,若查询结果为不存在,则建立与所述键值对应的新的表项条目,输出所述新的表项条目对应的队列号和新队列标记;
所述装置的各个模块由逻辑电路实现,按照时间节拍执行,支持流水操作,其中,所述控制逻辑模块进一步被配置成:
在T0时刻,执行所述根据接收到的报文的特征值提取键值的步骤和所述查询所述表项中是否存在与所述键值对应的表项条目的步骤,并执行所述建立与所述键值对应的新的表项条目的步骤;
在T1时刻,得到查询结果,若所述查询结果为不存在,则执行所述输出所述新的表项条目对应的队列号和新队列标记的步骤,若所述查询结果为存在,则根据查询到的表项条目输出对应的队列号,并删除在T0时刻建立的所述新的表项条目。
6.根据权利要求5所述的装置,其特征在于,还包括:
队列号管理模块,被配置成分发队列号给所述控制逻辑模块;
所述控制逻辑模块,进一步被配置成获取所述队列号管理模块当前分发的队列号,根据所述键值和所分发的队列号在所述表项中建立一个新的表项条目,其中,以所述键值为所述新的表项条目的写入数据,以所分发的队列号为所述新的表项条目在所述表项中的行地址。
7.根据权利要求5所述的装置,其特征在于,
所述控制逻辑模块,进一步被配置成若查询结果为存在,则根据查询到的表项条目输出对应的队列号。
8.根据权利要求5所述的装置,其特征在于,
所述控制逻辑模块,进一步被配置成若接收到与所述报文随路发送的队列清除标记,则删除对应的表项条目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310300154.1A CN116055397B (zh) | 2023-03-27 | 2023-03-27 | 队列表项维护方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310300154.1A CN116055397B (zh) | 2023-03-27 | 2023-03-27 | 队列表项维护方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055397A CN116055397A (zh) | 2023-05-02 |
CN116055397B true CN116055397B (zh) | 2023-08-18 |
Family
ID=86120376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310300154.1A Active CN116055397B (zh) | 2023-03-27 | 2023-03-27 | 队列表项维护方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055397B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225665B (zh) * | 2023-05-04 | 2023-08-08 | 井芯微电子技术(天津)有限公司 | 一种队列调度方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283906A (zh) * | 2013-07-02 | 2015-01-14 | 华为技术有限公司 | 分布式存储系统、集群节点及其区间管理方法 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN105515919A (zh) * | 2016-01-20 | 2016-04-20 | 中国电子科技集团公司第五十四研究所 | 一种基于哈希压缩算法的网络流量监控方法 |
CN111988211A (zh) * | 2019-05-21 | 2020-11-24 | 华为技术有限公司 | 网络设备的报文分流方法和装置 |
CN112087402A (zh) * | 2020-09-16 | 2020-12-15 | 盛科网络(苏州)有限公司 | 基于hash算法的队列分配方法及系统 |
CN113595822A (zh) * | 2021-07-26 | 2021-11-02 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、系统和装置 |
CN114253979A (zh) * | 2021-12-23 | 2022-03-29 | 北京百度网讯科技有限公司 | 一种报文处理方法、装置及电子设备 |
-
2023
- 2023-03-27 CN CN202310300154.1A patent/CN116055397B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283906A (zh) * | 2013-07-02 | 2015-01-14 | 华为技术有限公司 | 分布式存储系统、集群节点及其区间管理方法 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN105515919A (zh) * | 2016-01-20 | 2016-04-20 | 中国电子科技集团公司第五十四研究所 | 一种基于哈希压缩算法的网络流量监控方法 |
CN111988211A (zh) * | 2019-05-21 | 2020-11-24 | 华为技术有限公司 | 网络设备的报文分流方法和装置 |
CN112087402A (zh) * | 2020-09-16 | 2020-12-15 | 盛科网络(苏州)有限公司 | 基于hash算法的队列分配方法及系统 |
CN113595822A (zh) * | 2021-07-26 | 2021-11-02 | 北京恒光信息技术股份有限公司 | 一种数据包管理方法、系统和装置 |
CN114253979A (zh) * | 2021-12-23 | 2022-03-29 | 北京百度网讯科技有限公司 | 一种报文处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116055397A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6633565B1 (en) | Apparatus for and method of flow switching in a data communications network | |
US6606681B1 (en) | Optimized content addressable memory (CAM) | |
US6535951B1 (en) | Hit result register file used in a CAM | |
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
CN116055397B (zh) | 队列表项维护方法与装置 | |
US6571313B1 (en) | Memory for information search through prefix analysis, in particular for building routing tables for nodes of high speed communication networks, such as the internet network | |
CN102035738B (zh) | 一种获取路由信息的方法及装置 | |
WO2016029684A1 (zh) | 报文处理转发装置、方法和计算机存储介质 | |
JP7074839B2 (ja) | パケット処理 | |
JP2004242326A (ja) | 高速ルーティングテーブル検索を可能にするアドレス学習 | |
CN113806403B (zh) | 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法 | |
CN108234264A (zh) | 一种基于PCIe信号接口扩展的数据包转发方法及装置 | |
CN104009921A (zh) | 基于任意字段匹配的数据报文转发方法 | |
US6385072B1 (en) | Content addressable memory using part of memory region to store data which should not be erased | |
CN113986560B (zh) | 一种在智能网卡/DPU内实现P4与OvS逻辑复用的方法 | |
JP3202160B2 (ja) | 識別子変換装置 | |
US6208662B1 (en) | Method for distributing and recovering buffer memories in an asynchronous transfer mode edge device | |
US7400623B2 (en) | Method and apparatus for managing medium access control (MAC) address | |
WO2018201694A1 (zh) | 在100g以上光传输芯片中控制ptp报文的方法及系统 | |
US8363653B2 (en) | Packet forwarding method and device | |
US20030101276A1 (en) | Parallel lookup engine and method for fast packet forwarding in network router | |
WO2023088226A1 (zh) | 转发报文的方法以及相关设备 | |
US7075938B1 (en) | Common buffer memory control apparatus | |
CN109802900B (zh) | 报文缓存、读取方法、装置及计算机可读存储介质 | |
CN107517161B (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 |