表项生成方法及装置制造方法及图纸

技术编号:37542665 阅读:23 留言:0更新日期:2023-05-12 16:11
本说明书实施例提供了一种表项生成方法及装置,其中,方法包括:确定特定深度和数据位宽的随机存取存储器RAM;指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数;在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据。获取有效的表项条目数据。获取有效的表项条目数据。

【技术实现步骤摘要】
表项生成方法及装置


[0001]本文件涉及计算机
,尤其涉及一种表项生成方法及装置。

技术介绍

[0002]按照用户的要求生成一组特定的表项是网络测试仪的重要功能之一,上述的表项内容(表项条目)可以是报文中的任何位域,例如MAC地址、IP地址、TCP端口号等等。举例说明,如图1所示,有一条由50个IP报文组成的数据流stream,其中各个报文的destination IP地址组成一个表项,该表项的条目即destination IP位宽为32比特,表项条目数即表项深度为50。
[0003]通常来说,在表项总容量确定的情况下,各个表项中条目的位宽和表项的深度都是可以灵活指定的,例如表项条目为Ipv4地址时位宽为32比特,如果是Ipv6地址则位宽为128比特;由于用户需求的不同,条目的个数即表项深度更是多种多样;当有多个数据流需要实现多个表项时,还涉及多个表项共享总的表项存储容量,使问题更加复杂。因此,如何高效的产生各种位宽和深度组合的表项就成为网络测试仪实现中的一个重要问题。
[0004]通常测试仪支持的最大表项容量规定为若干个32比特entry,这里为了简化问题,假设测试仪支持的最大表项容量为128个32比特entry,每个表项条目的最大位宽为8*32比特(即256比特)。意思是表项总的容量为128*32比特=4K比特,位宽单位即一个entry=32比特,表项中条目的位宽可变,范围可以是1个32比特~8个32比特。
[0005]具体地,表项通常存储在某种存储器中,例如SRAM、DRAM等。对于上述128个32比特的表项容量,需要4K比特的RAM存储空间。为了支持1个32比特~8个32比特不等的表项条目位宽,直观的想法是,可以使用一个位宽为32比特,地址数为128的RAM;也可以使用位宽为256比特,地址数为16的RAM,两者的容量都是4K比特。
[0006]对于前者来说,当一个数据流stream需要的表项条目位宽为32比特时,最大表项深度等于RAM的地址数,可以为128,但是当位宽大于32比特时,则需要读取多次才能获取一个完整的条目,例如位宽为256比特时,需要读取8个地址,才能获取一个完整的条目位宽,导致性能下降,只有32比特位宽时的八分之一。
[0007]对于后者来说,读取一次地址即可获得256比特位宽数据,但当位宽较小时剩余数据被浪费。而且由于只有16个地址,如果表项的深度仍然等于地址数,就会受到较大的限制,最大也只有16。
[0008]当多个不同位宽的表项共享总的表项存储空间容量时,还需要兼容各种位宽和深度的组合,使得上述问题更加复杂。

技术实现思路

[0009]本专利技术的目的在于提供一种表项生成方法及装置,旨在解决现有技术中的上述问题。
[0010]本专利技术提供一种表项生成方法,包括:
[0011]确定特定深度和数据位宽的随机存取存储器RAM;
[0012]指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数;
[0013]在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据。
[0014]本专利技术提供一种表项生成装置,包括:
[0015]确定模块,用于确定特定深度和数据位宽的随机存取存储器RAM;
[0016]指定模块,用于指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数;
[0017]处理模块,用于在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据。
[0018]本专利技术实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述表项生成方法的步骤。
[0019]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现上述表项生成方法的步骤。
[0020]采用本专利技术实施例在特定容量下深度和位宽可变的表项生成方法,具有较高的存储空间利用率和灵活性,同时易于实现,适用于基于FPGA或其他类型处理器件的网络测试设备。
附图说明
[0021]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是现有技术中的表项内容的示意图;
[0023]图2是本专利技术实施例的表项生成方法的流程图;
[0024]图3是本专利技术实施例的RAM实例的示意图;
[0025]图4是本专利技术实施例的表项生成装置的示意图;
[0026]图5是本专利技术实施例的电子设备的示意图。
具体实施方式
[0027]为了使本
的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
[0028]方法实施例
[0029]根据本专利技术实施例,提供了一种表项生成方法,图2是本专利技术实施例的表项生成方法的流程图,如图2所示,根据本专利技术实施例的表项生成方法具体包括:
[0030]步骤101,确定特定深度和数据位宽的随机存取存储器RAM;具体包括:确定深度为M/P,数据位宽为P*W比特的RAM,其中,表项总容量为M个W比特,每个表项条目位宽为W比特,每个数据流可插入1~P个表项条目。
[0031]步骤102,指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数;具体包括:指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址为:start_addr[log2(M)

1:0]、结束地址为end_addr[log2(M)

1:0]、起始表项条目为:start_entry、以及有效表项条目数为entry_num=Q。
[0032]步骤103,在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据。具体包括:
[0033]在每个RAM的读周期,根据公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种表项生成方法,其特征在于,包括:确定特定深度和数据位宽的随机存取存储器RAM;指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数;在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据。2.根据权利要求1所述的方法,其特征在于,确定特定深度和数据位宽的随机存取存储器RAM具体包括:确定深度为M/P,数据位宽为P*W比特的RAM,其中,表项总容量为M个W比特,每个表项条目位宽为W比特,每个数据流可插入1~P个表项条目。3.根据权利要求1所述的方法,其特征在于,指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址、结束地址、起始表项条目以及有效表项条目数具体包括:指定当前数据流在所述RAM的整个表项存储空间中分配的起始地址为:start_addr[log2(M)

1:0]、结束地址为end_addr[log2(M)

1:0]、起始表项条目为:start_entry、以及有效表项条目数为entry_num=Q。4.根据权利要求1所述的方法,其特征在于,在每个RAM的读周期,根据所述起始地址、所述结束地址、所述起始表项条目以及所述有效表项条目数读取RAM,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据具体包括:在每个RAM的读周期,根据公式1,以ram_addr_current[log2(M/P)

1:0]为RAM的读地址,对当前数据流的读数据进行逻辑移位操作,获取有效的表项条目数据:data_shift=data_ram[P*W

1:0]>>(ram_addr_current[log2(M)
‑1‑
:log2(P)]*entry_num*W+start_entry*W)公式1;其中:>>表示向右移位操作,data_ram为从RAM读取的有效的表项条目数据,位宽为P*W比特;entry_num=Q为当前数据流的有效表项条目数,Q位于1~P之间;start_entry为当前数据流在表项存储空间中分配的起始表项条目位置;ram_addr_current为当前读周期当前数据流在表项中的地址,位于start_addr和end_addr之间,每个读周期以步长为1循环累加,且满足end_addr

start_addr+1=N,N位于1~M之间,表项总容量为M个W比特,每个表项条目位宽为W比特,每个数据流可插入1~P个表项条目。5.一种表项生成装置,其特征在于,包括:确定模块,用于确定特定深度和数据位宽的...

【专利技术属性】
技术研发人员:高宇
申请(专利权)人:北京信而泰科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1