CN109558091B - 查找表存储方法、装置及计算机可读存储介质 - Google Patents
查找表存储方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109558091B CN109558091B CN201811515641.5A CN201811515641A CN109558091B CN 109558091 B CN109558091 B CN 109558091B CN 201811515641 A CN201811515641 A CN 201811515641A CN 109558091 B CN109558091 B CN 109558091B
- Authority
- CN
- China
- Prior art keywords
- lookup table
- storage
- capacity
- processing unit
- storing
- 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 46
- 238000012545 processing Methods 0.000 claims abstract description 76
- 239000002699 waste material Substances 0.000 abstract description 11
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种查找表存储方法、装置以及计算机可读存储介质,包括以下步骤:获取业务需求对应的查找表,并获取所述查找表的第一存储容量;判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。因本发明能够对业务的所有查找表根据表的存储容量进行分级存储,从而解决了在使用固定的RAM存储查找表时,存储小存储容量查找表的RAM剩余大量存储空间又不能使用而造成的资源浪费问题。
Description
技术领域
本发明涉及计算机通讯领域,尤其涉及一种查找表存储方法、装置以及计算机可读存储介质。
背景技术
随着通信网络技术向纵深发展,特别是新一代移动互联网和物联网技术逐渐成熟,带来了海量终端接入到通讯网络中。由于终端互联需要在交换设备中保存其对应的路由信息,所以海量终端互联造成了交换设备中的交换芯片的查找表越来越大。现代网络考虑到管理维护方便以及技术迭代更新,一般采用多协议,多层次的组网方式来实现终端设备的互联。例如在局域网内,终端设备采用二层网络协议来完成设备间的互联,但是到了网际则采用IP路由协议来完成设备之间的互联。
在不同的应用场景下,对交换设备的查找表的规格是不一样的,但是在现有的实现方案中,存储各类查找表的RAM(随机访问存储单元)存储容量的大小都是固定不变的。在查找表的存储容量远小于固定的RAM存储容量时,会导致在RAM中剩余大量存储容量,但是这部分剩余的存储容量却不能给别的查找表使用,造成了RAM资源的巨大浪费。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种查找表存储方法、装置以及计算机可读存储介质,旨在解决了在使用固定的RAM存储查找表时,存储小存储容量查找表的RAM剩余大量存储空间又不能使用而造成的资源浪费问题。
为了达到上述目的,本发明提供一种查找表存储方法,所述查找表存储方法包括以下步骤:
获取业务需求对应的查找表,并获取所述查找表的第一存储容量;
判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;
在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;
在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
优选地,所述判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量的步骤之前,还包括:
获取所述业务需求对应的查找表配置文件;
根据所述查找表配置文件获取所述业务需求对应的报文处理单元。
优选地,所述将所述查找表存储至所述报文处理单元的步骤包括:
基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息;
根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元。
优选地,所述根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元的步骤包括:
根据所述第一宽度信息以及所述第一深度信息获取所述查找表存储至所述报文处理单元所需要的第一子存储单元的数量,其中,所述第一子存储单元为所述报文处理单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第一子存储单元中。
优选地,所述将所述查找表存储至大容量存储单元的步骤包括:
基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息;
根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元。
优选地,所述根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元的步骤包括:
根据所述第二宽度信息以及所述第二深度信息获取所述查找表存储至所述大容量存储单元所需要的第二子存储单元的数量,其中,所述第二子存储单元为所述大容量存储单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第二子存储单元中。
此外,为实现上述目的,本发明还提供一种查找表存储装置,所述查找表存储装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的查找表存储程序,所述查找表存储程序被所述处理器执行时实现如上所述的查找表存储方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有查找表存储程序,所述查找表存储程序被处理器执行时实现如上所述的查找表存储方法的步骤。
本发明提供的查找表存储方法、装置以及计算机可读存储介质,首先,获取业务需求对应的查找表,并获取所述查找表的第一存储容量,然后,判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量,再,在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元,最后,在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。因本发明能够对业务的所有查找表根据表的存储容量进行分级存储,从而解决了在使用固定的RAM存储查找表时,存储小存储容量查找表的RAM剩余大量存储空间又不能使用而造成的资源浪费问题。
附图说明
附图说明用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例方案涉及的查找表存储装置的硬件结构示意图;
图2为本发明查找表存储方法第一实施例的流程示意图;
图3为本发明查找表存储方法第二实施例的流程示意图;
图4为本发明查找表存储方法第三实施例的流程示意图;
图5为本发明查找表存储方法第四实施例的流程示意图;
图6为本发明查找表存储方法第五实施例的流程示意图;
图7为本发明查找表存储方法第六实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取业务需求对应的查找表,并获取所述查找表的第一存储容量;判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
在不同的应用场景下,对交换设备的查找表的规格是不一样的,但是在现有的实现方案中,存储各类查找表的RAM(随机访问存储单元)存储容量的大小都是固定不变的。在查找表的存储容量远小于固定的RAM存储容量时,会导致在RAM中剩余大量存储容量,但是这部分剩余的存储容量却不能给别的查找表使用,造成了RAM资源的巨大浪费。
本发明提供一种解决方案,首先,获取业务需求对应的查找表,并获取所述查找表的第一存储容量,然后,判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量,再,在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元,最后,在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。因本发明能够对业务的所有查找表根据表的存储容量进行分级存储,从而解决了在使用固定的RAM存储查找表时,存储小存储容量查找表的RAM剩余大量存储空间又不能使用而造成的资源浪费问题。
如图1所示,图1是本发明实施例方案涉及装置的硬件结构示意图。
参照图1,该装置可以包括:处理器1001,例如CPU,存储器1002,通信总线1003,网络接口1004。其中,通信总线1003用于实现该装置中各组成部件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1002可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1002可选的还可以是独立于前述处理器1001的存储装置。如图1所示,作为一种计算机存储介质的存储器1002中可以包括操作系统、网络通信模块以及查找表存储程序。
可选地,第一终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在智能终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,智能终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的装置所涉及的硬件中,网络接口1004可以用于接收终端发送的基于业务的所有查找表;而处理器1001可以用于调用存储器1002中存储的查找表存储程序,并执行以下操作:
获取业务需求对应的查找表,并获取所述查找表的第一存储容量;
判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;
在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;
在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
进一步地,处理器1001可以用于调用存储器1002中存储的查找表存储程序,还执行以下操作:
获取所述业务需求对应的查找表配置文件;
根据所述查找表配置文件获取所述业务需求对应的报文处理单元。
进一步地,处理器1001可以用于调用存储器1002中存储的查找表存储程序,还执行以下操作:
基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息;
根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元。
进一步地,处理器1001可以用于调用存储器1002中存储的查找表存储程序,还执行以下操作:
根据所述第一宽度信息以及所述第一深度信息获取所述查找表存储至所述报文处理单元所需要的第一子存储单元的数量,其中,所述第一子存储单元为所述报文处理单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第一子存储单元中。
进一步地,处理器1001可以用于调用存储器1002中存储的查找表存储程序,还执行以下操作:
基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息;
根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元。
进一步地,处理器1001可以用于调用存储器1002中存储的查找表存储程序,还执行以下操作:
根据所述第二宽度信息以及所述第二深度信息获取所述查找表存储至所述大容量存储单元所需要的第二子存储单元的数量,其中,所述第二子存储单元为所述大容量存储单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第二子存储单元中。
本发明根据上述方案,用户根据业务需求创建所述业务对应的所有查找表,然后将查找表上传到交换设备,以供交换芯片将查找表配置到对于的报文处理单元或外部的大容量存储单元。终端在获取到所有所述查找表时,获取所有所述查找表的第一存储容量,其中,所述第一存储容量为所述查找表的存储容量大小。然后获取所述业务需求对应的报文处理单元的第二存储容量,并判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量,其中,所述第二存储容量为所述报文处理单元的存储容量;在判定所述第一存储容量小于或等于所述第二存储容量时,获取所述业务需求对应的查找表配置文件,通过所述查找表配置文件获取所述业务需求对应的报文处理单元,将所述查找表存储至所述报文处理单元中。在判定所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
参照图2,图2为本发明查找表存储方法的第一实施例,所述查找表存储方法包括:
步骤S10、获取业务需求对应的查找表,并获取所述查找表的第一存储容量;
本发明提供的查找表存储方法主要用于将用户创建的基于业务的所有查找表进行分级存储。本发明提供的查找表存储方法涉及的终端包括可以是交换机等,所述终端上预先加载有相关的应用系统。
本发明提供的技术方案,用户根据业务需求创建所述业务对应的所有查找表,然后将所有所述查找表上传到终端。终端在获取到所有所述查找表时,获取所有所述查找表的第一存储容量。
需要说明的是,本申请规划了多级查找表。所述查找表根据储存容量的大小进行分级。可以划分两级或两级以上,本申请以划分为两级查找表进行阐述。所述PPU根据业务逻辑划分等级先后顺序,每级PPU内部有M张查找表(取决于RAM的数量,一个RAM对应只能存储一张查找表的内容,但是一张查找表可以有一个或多个RAM组成),这些查找表的容量比较小,可以存储一些表项条目数比较少的内容,例如端口属性表,VLAN(虚拟局域网)属性表,VFI(虚拟转发域实例virtual forward instance)属性表就可以存放在对应的PPU内。有些容量较大的查找表,例如MAC地址交换表,MPLS交换表,IP路由表等包含巨大条目数,这些查找表存储在PPU外部的大容量存储单元中。
需要说明的是,PPU内部的查找表或者大容量存储单元中的查找表,查找表的深度和宽度都是可通过配置文件或软件编程配置其深度和宽度的大小,可以理解的是,对于在某种特定场景下没有业务使用的查找表,可以配置分配0块RAM资源,将其RAM的资源可以分配给其他的查找表使用。
需要说明的是,每个查找表都包含p个配置寄存器,用于生成查表需要的关键字。每个配置寄存器配置了关键字的字段在报文描述符字段的对应的字节位置,字节内的位置,字段的比特长度。根据配置寄存器的配置值可以从报文的描述符字段取出对应的关键字,然后根据配置寄存器的顺序将各个关键字进行拼接,得到查表关键字。
步骤S20、判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;
本实施例提供的技术方案中,在获取到当前存储表的存储容量后,获取所述查找表对应的配置文件,然后根据所述配置文件获取当前查找表基于当前业务是哪一级的PPU,再获取所述PPU的第二存储容量,所述第二存储容量为当前PPU的存储容量大小,再判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量。
需要说明的是,本申请规划了多级查找表。存储容量较小的查找表存储在PPU(报文处理单元packet process unit)内部的存储单元中,其中,PPU内部的查找表对应的RAM规格比较小;存储容量较大的查找表配置到PPU的外部实现,PPU外部的查找表对应的RAM的规格比较大,可以通过外挂的DDR(双倍速率同步动态随机存储器)进行存储。可以理解的是,为了存储更大容量的查找表,所述PPU外部的RAM的深度是内部的RAM的深度四倍或四倍以上,但PPU外部的RAM的深度是内部的RAM的深度也可以是相同的。即便同等深度的查找表,其表项的宽度差别也是比较大的,有些查找表的宽度只有二十几比特,有些查找表的宽度四五百比特。
需要说明的是,每级PPU支持与外部的大容量存储单元关联两张大容量查找表时,即可满足交换业务的需求,也可以每级PPU支持与外部的大容量存储单元关联多张大容量存储表。也可以任一级PPU不与外部的大容量存储单元中的大容量查找表关联。
需要说明的是,PPU内部和外部的RAM读写控制模块都有一个查找表寄存器,所述查找表属性寄存器的内容包括查找表的深度信息、查找表的字节宽度、查找表的比特宽度、是否携带counter指针(计数器指针),是否携带meter指针(流量测量器指针)等。同时PPU内部的RAM读写控制模块的每一块RAM也包含描述该RAM的属性寄存器。
步骤S30、在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;
本实施例提供的技术方案中,在所述第一存储容量小于或等于所述第二存储容量时,获取所述报文处理单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而得到在PPU中存储所述查找表需要的RAM的数量,例如,如果表的深度是2048,宽度是256比特RAM的深度是512,宽度是128比特那么宽度需要两个RAM,深度需要四块RAM,最后将宽度的两个RAM进行拼接,将深度的四个RAM进行拼接,得到一个拼接了八块RAM的存储空间存储所述查找表。
步骤S40、在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
本实施例提供的技术方案中,在所述第一存储容量大于所述第二存储容量时,获取所述大容量存储单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而得到在所述大容量存储单元中存储所述查找表需要的RAM的数量。拼接所述数量的RAM后存储所述查找表。
本发明根据上述方案,用户根据业务需求创建所述业务对应的所有查找表,然后将查找表上传到交换设备,以供交换芯片将查找表配置到对于的报文处理单元或外部的大容量存储单元。终端在获取到所有所述查找表时,获取所有所述查找表的第一存储容量,其中,所述第一存储容量为所述查找表的存储容量大小。然后获取所述业务需求对应的报文处理单元的第二存储容量,并判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量,其中,所述第二存储容量为所述报文处理单元的存储容量;在判定所述第一存储容量小于或等于所述第二存储容量时,获取所述业务需求对应的查找表配置文件,通过所述查找表配置文件获取所述业务需求对应的报文处理单元,将所述查找表存储至所述报文处理单元中。在判定所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
因本发明能够对业务的所有查找表根据表的存储容量进行分级存储,从而解决了在使用固定的RAM存储查找表时,存储小存储容量查找表的RAM剩余大量存储空间又不能使用而造成的资源浪费问题。
进一步的,参照图3,图3为本发明查找表存储方法的第二实施例,基于上述实施例,所述步骤S20之前,还包括:
步骤S50、获取所述业务需求对应的查找表配置文件;
步骤S60、根据所述查找表配置文件获取所述业务需求对应的报文处理单元。
本实施例提供的技术方案中,进一步地,在获取到当前存储表的第一存储容量后,获取预设存储容量,在所述第一存储容量小于或等于所述预设存储容量时,获取所述查找表对应的配置文件,然后根据所述配置文件获取当前查找表对应的PPU,最后将查找表存储至所述PPU中。
进一步地,报文首先进入报文处理单元进行解析,获取报文的结构,并将解析结果放置到报文的描述符字段,发送至后续的PPU进行处理。其中,所述报文解析结果主要是报文的类型、MAC DA、MAC SA、VLAN属性、Eth-Type、DIP、SIP、IP协议号、IP TTL以及UDP源目的端口号等。一个报文处理需要多级PPU才能处理完,所述多级PPU可以是12级或更多级,也可以少于12级PPU,业务需要的PPU级数可通过配置文件进行配置。每级PPU对应不同的查表功能,例如,第一级的PPU存储的查找表为端口属性表,在获取到端口属性后,进入下一级PPU进行查表,下一级PPU存储的查找表为VLAN属性表,获取了VLAN属性后继续进入下一级的PPU进行查表。经过多级PPU处理后将描述符和报文的内容送给报文处理单元进行报文修改,最后根据描述符字段指示的输出端口将报文从正确的目的端口转发出去。
进一步地,在报文进入PPU进行查表时,PPU根据查找表属性寄存器配置内容包括查找表的深度确定访问的查找表对应的RAM块。可以理解的是,PPU内部的RAM读写控制模块的每一块RAM都含有属性寄存器。所述属性寄存器存储了RAM属于查找表的逻辑表号,所述RAM位于对应查找表的行块和列块,该RAM选用的hash函数编号等。所述PPU内部RAM读写控制模块接收到的查表请求后,每块RAM都根据查表的请求和查表地址查看自己的RAM属性寄存器的查找表编号,确定查表请求对应的查找表编号和RAM属性寄存器配置的查找表编号一致后,再判断查表请求对应的地址是否落在自己所在的查找表的行块内,如果是则发起读RAM的请求信号,同时驱动RAM的地址为查找表的地址,读出RAM内部的数据。然后根据RAM的属性寄存器配置的逻辑表列块号将读出的数据放入到结果寄存器的对应位置上。最后将查表的结果按照查找表属性寄存器中的表字节宽度配置值将查表结果切成等长的分片。如果是hash表查找,那么需要将所有分片中取出关键字字段和请求查表的关键字段进行比较,如果相等则对应的该分片为本次查找的结果。如果是直接表查找,那么根据地址的低位从所有分片中选择一片作为本次查表的结果。
终端通过配置文件配置查找表存储的目标PPU,从而方便业务逻辑的实现。所述终端将查表结果分成多片数据,再从中取一片数据作为最终结果,节省了RAM的空间。
进一步的,参照图4,图4为本发明查找表存储方法的第三实施例,在上述图2所示的实施例基础上,所述步骤S30,包括:
步骤S31、基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息;
步骤S32、根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元。
本实施例提供的技术方案中,在所述第一存储容量小于或等于所述第二存储容量时,获取所述报文处理单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息,最后根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元。
终端基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息,再根据第一宽度信息以及第一深度信息存储所述查找表,所述从而避免了内存资源浪费。
进一步的,参照图5,图5为本发明查找表存储方法的第四实施例,在上述图4所示的实施例基础上,所述步骤S32,包括:
步骤S321、根据所述第一宽度信息以及所述第一深度信息获取所述查找表存储至所述报文处理单元所需要的第一子存储单元的数量,其中,所述第一子存储单元为所述报文处理单元中的随机访问存储单元;
步骤S322、将所述查找表存储至与所述数量对应的第一子存储单元中。
本实施例提供的技术方案中,在所述第一存储容量小于或等于所述第二存储容量时,获取所述报文处理单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而得到在PPU中存储所述查找表需要的RAM的数量,例如,如果表的深度是2048,宽度是256比特RAM的深度是512,宽度是128比特那么宽度需要两个RAM,深度需要四块RAM,最后将宽度的两个RAM进行拼接,将深度的四个RAM进行拼接,得到一个拼接了八块RAM的存储空间存储所述查找表。
终端基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息,再根据第一宽度信息以及第一深度信息获取存储到PPU中需要的RAM的数量,所述从而避免了内存资源浪费。
进一步的,参照图6,图6为本发明查找表存储方法的第五实施例,在上述图2所示的实施例基础上,所述步骤S40,包括:
步骤S41、基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息;
步骤S42、根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元。
本实施例提供的技术方案中,在所述第一存储容量大于所述第二存储容量时,获取所述大容量存储单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息,最后根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元。
终端基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息,再根据第二宽度信息以及第二深度信息存储所述查找表,所述从而避免了内存资源浪费。
进一步的,参照图7,图7为本发明查找表存储方法的第六实施例,在上述图6所示的实施例基础上,所述步骤S42,包括:
步骤S421、根据所述第二宽度信息以及所述第二深度信息获取所述查找表存储至所述大容量存储单元所需要的第二子存储单元的数量,其中,所述第二子存储单元为所述大容量存储单元中的随机访问存储单元;
步骤S422、将所述查找表存储至与所述数量对应的第二子存储单元中。
本实施例提供的技术方案中,在所述第一存储容量大于所述第二存储容量时,获取所述大容量存储单元中的RAM的宽度以及深度,然后获取当前查找表对应的宽度以及深度,再将查找表的深度与RAM的深度进行比较,将查找表的宽度与RAM的宽度进行比较,从而得到在大容量存储单元中存储所述查找表需要的RAM的数量。拼接所述数量的RAM后存储所述查找表。
终端基于所述大容量存储单元中的子存储单元获取所述查找表对应的第二宽度信息以及第二深度信息,再根据第二宽度信息以及第二深度信息获取存储到大容量存储单元中需要的RAM的数量,所述从而避免了大容量存储单元中内存资源浪费。
为实现上述目的,本发明还提供一种查找表存储装置,所述查找表存储装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的查找表存储程序,所述查找表存储程序被所述处理器执行时实现如上所述的查找表存储方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有查找表存储程序,所述查找表存储程序被处理器执行时实现如上所述的查找表存储方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是电视机,手机,计算机,装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种查找表存储方法,其特征在于,所述查找表存储方法包括以下步骤:
获取业务需求对应的查找表,并获取所述查找表的第一存储容量;
判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量;
在所述第一存储容量小于或等于所述第二存储容量时,将所述查找表存储至所述报文处理单元;
在所述查找表的存储容量大于预设存储容量时,将所述查找表存储至大容量存储单元,其中,所述大容量存储单元为报文处理单元外部的存储单元。
2.如权利要求1所述的查找表存储方法,其特征在于,所述判断所述查找表的第一存储容量是否大于所述业务需求对应的报文处理单元的第二存储容量的步骤之前,还包括:
获取所述业务需求对应的查找表配置文件;
根据所述查找表配置文件获取所述业务需求对应的报文处理单元。
3.如权利要求1所述的查找表存储方法,其特征在于,所述将所述查找表存储至所述报文处理单元的步骤包括:
基于所述报文处理单元中的子存储单元获取所述查找表对应的第一宽度信息以及第一深度信息;
根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元。
4.如权利要求3所述的查找表存储方法,其特征在于,所述根据所述第一宽度信息以及所述第一深度信息将所述查找表存储至所述报文处理单元的步骤包括:
根据所述第一宽度信息以及所述第一深度信息获取所述查找表存储至所述报文处理单元所需要的第一子存储单元的数量,其中,所述第一子存储单元为所述报文处理单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第一子存储单元中。
5.如权利要求1所述的查找表存储方法,其特征在于,所述将所述查找表存储至大容量存储单元的步骤包括:
基于所述大容量存储单元中的子存储单元获取所述查找表的第二宽度信息以及第二深度信息;
根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元。
6.如权利要求5所述的查找表存储方法,其特征在于,所述根据所述第二宽度信息以及所述第二深度信息将所述查找表存储至所述大容量存储单元的步骤包括:
根据所述第二宽度信息以及所述第二深度信息获取所述查找表存储至所述大容量存储单元所需要的第二子存储单元的数量,其中,所述第二子存储单元为所述大容量存储单元中的随机访问存储单元;
将所述查找表存储至与所述数量对应的第二子存储单元中。
7.一种查找表存储装置,其特征在于,所述查找表存储装置包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的查找表存储程序,所述查找表存储程序被所述处理器执行时实现如权利要求1至6中任一项所述的查找表存储方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有查找表存储程序,所述查找表存储程序被处理器执行时实现如权利要求1至6中任一项所述的查找表存储方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811515641.5A CN109558091B (zh) | 2018-12-11 | 2018-12-11 | 查找表存储方法、装置及计算机可读存储介质 |
PCT/CN2019/114427 WO2020119310A1 (zh) | 2018-12-11 | 2019-10-30 | 查找表存储方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811515641.5A CN109558091B (zh) | 2018-12-11 | 2018-12-11 | 查找表存储方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558091A CN109558091A (zh) | 2019-04-02 |
CN109558091B true CN109558091B (zh) | 2020-10-13 |
Family
ID=65869605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811515641.5A Active CN109558091B (zh) | 2018-12-11 | 2018-12-11 | 查找表存储方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109558091B (zh) |
WO (1) | WO2020119310A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558091B (zh) * | 2018-12-11 | 2020-10-13 | 广东省新一代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
CN112905587B (zh) * | 2019-12-04 | 2024-05-14 | 北京金山云网络技术有限公司 | 数据库的数据管理方法、装置及电子设备 |
CN111078627A (zh) * | 2019-12-04 | 2020-04-28 | 广东省新一代通信与网络创新研究院 | 一种阵列处理器的无冲突访问方法、装置及存储介质 |
CN111683036B (zh) * | 2020-02-29 | 2022-05-27 | 新华三信息安全技术有限公司 | 数据存储方法、装置以及报文识别方法和装置 |
CN112668260B (zh) * | 2020-12-17 | 2024-04-12 | 北京物芯科技有限责任公司 | 一种芯片sram拼接方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434603A (zh) * | 2002-01-23 | 2003-08-06 | 华为技术有限公司 | 一种查找表电路的实现方法及查找表电路 |
CN104539537A (zh) * | 2014-12-25 | 2015-04-22 | 北京华为数字技术有限公司 | 一种路由查找方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5951629A (en) * | 1997-09-15 | 1999-09-14 | Motorola, Inc. | Method and apparatus for log conversion with scaling |
CN1176539C (zh) * | 2001-11-27 | 2004-11-17 | 华为技术有限公司 | 一种节省查找表存储器和中间状态存储器的方法 |
DE112008003278T5 (de) * | 2007-12-05 | 2011-04-07 | Hamamatsu Photonics K.K., Hamamatsu | Phasenmodulationsvorrichtung und Phasenmodulationsverfahren |
US9129441B2 (en) * | 2010-06-21 | 2015-09-08 | Microsoft Technology Licensing, Llc | Lookup tables for text rendering |
CN103414658B (zh) * | 2013-08-05 | 2016-08-10 | 北京华为数字技术有限公司 | 查找表和报文缓存共享动态随机访问存储器的系统和方法 |
CN109558091B (zh) * | 2018-12-11 | 2020-10-13 | 广东省新一代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
-
2018
- 2018-12-11 CN CN201811515641.5A patent/CN109558091B/zh active Active
-
2019
- 2019-10-30 WO PCT/CN2019/114427 patent/WO2020119310A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434603A (zh) * | 2002-01-23 | 2003-08-06 | 华为技术有限公司 | 一种查找表电路的实现方法及查找表电路 |
CN104539537A (zh) * | 2014-12-25 | 2015-04-22 | 北京华为数字技术有限公司 | 一种路由查找方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020119310A1 (zh) | 2020-06-18 |
CN109558091A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558091B (zh) | 查找表存储方法、装置及计算机可读存储介质 | |
EP2347561B1 (en) | Determining a network interface to access a network | |
CN106326091B (zh) | 一种浏览器网页兼容性的检测方法及系统 | |
CN107896249B (zh) | 跨网络区域数据访问方法、装置、设备及存储介质 | |
CN107885540A (zh) | 一种加载应用程序静态资源的方法、装置及终端 | |
CN110113744A (zh) | 通信方法、装置、设备及存储介质 | |
CN110727417B (zh) | 一种数据处理方法和装置 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN104268229A (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
CN112667415B (zh) | 数据调用方法、装置、可读存储介质及电子设备 | |
CN113110944A (zh) | 信息查找方法、装置、服务器、可读存储介质及程序产品 | |
CN113472901A (zh) | 负载均衡方法、装置、设备、存储介质及程序产品 | |
CN110489474B (zh) | 一种数据处理的方法、装置、介质和电子设备 | |
CN112367195B (zh) | 一种网络配置方法、系统及装置 | |
CN110955478B (zh) | 数据的分区动态显示方法、装置、设备及可读存储介质 | |
CN107092494B (zh) | 访问apk资源的方法和装置 | |
CN111783010A (zh) | 网页空白页面监测方法、装置、终端及存储介质 | |
CN113407662B (zh) | 敏感词识别方法、系统及计算机可读存储介质 | |
CN112291212B (zh) | 静态规则的管理方法、装置、电子设备和存储介质 | |
CN114090127A (zh) | 电子设备及其配置文件的加载方法和介质 | |
CN111641690B (zh) | 会话消息处理方法、装置及电子设备 | |
CN107453950A (zh) | 一种信息处理方法及监控系统 | |
CN110691023A (zh) | 地址系统 | |
CN112351420A (zh) | 终端设备的组网身份创建方法、设备及可读存储介质 | |
CN113064898A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240115 Address after: Building A, Runhui Science and Technology Park, No. 18 Shenzhou Road, Huangpu District, Guangzhou City, Guangdong Province, 510663 (self numbered 301, 3rd floor) Patentee after: Guangzhou New Generation Chip Technology Co.,Ltd. Address before: 510000 Room 201, 88 Haiyun Road, Science City, Guangzhou hi tech Industrial Development Zone, Guangdong Province Patentee before: GUANGDONG NEW GENERATION COMMUNICATION AND NETWORK INNOVATION INSTITUTE |