掌桥专利:专业的专利平台
掌桥专利
首页

查表方法及装置、存储介质以及电子设备

文献发布时间:2023-06-19 10:32:14


查表方法及装置、存储介质以及电子设备

技术领域

本发明涉及通信领域,具体而言,涉及一种查表方法及装置、存储介质以及电子设备。

背景技术

在交换网络中,芯片存储器存在着跳变或者被黑客攻击的情况,从而使某块存储内存里面的数据出现错误,导致芯片不能正常工作。相关技术中,通常使用错误检查和纠正(Error Correcting Code,简称为ECC)或者三态内容寻址存储器扫描(Ternary ContentAddressable Memory Scan,简称为TCAM Scan)来解决该问题,然而这些方案都需要依靠软件来协助发现和纠正芯片存储器中的错误数据。在大数据网络应用中,中央处理器CPU需要同时处理大量业务,存在着无法及时对芯片存储器中的错误数据进行纠正的问题,从而同样会导致芯片在一定的时间内无法正常工作。并且,相关技术中的方案只能解决芯片存储器中的少量比特的数据出现错误的问题,无法解决某块内存中的大量比特出现跳变从而导致的数据错误的情况。

针对相关技术中,由于存储器中的数据发生变化从而导致交换芯片无法正常工作的问题,尚未提出有效的技术方案。

发明内容

本发明实施例提供了一种查表方法及装置、存储介质以及电子设备,以至少解决相关技术中由于存储器中的数据发生变化从而导致交换芯片无法正常工作的问题。

根据本发明的一个实施例,提供了一种查表方法,包括:根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

可选地,所述从所述多个查表结果中筛选出一个查表结果,包括:确定所述多个查表结果中的每个查表结果在所述多个查表结果中出现的次数;将出现次数最多的查表结果确定为所述一个查表结果。

可选地,所述将出现次数最多的查表结果确定为所述一个查表结果,包括:在出现次数最多的查表结果的数量等于1的情况下,将所述出现次数最多的查表结果确定为所述一个查表结果;在所述出现次数最多的查表结果的数量大于1的情况下,获取所述出现次数最多的查表结果中的每个查表结果对应的存储器的优先级;将所述出现次数最多的查表结果中,对应的存储器优先级最高的查表结果确定为所述一个查表结果。

可选地,在所述数据表为动作表的情况下,所述多个查表结果包括多个动作,所述一个查表结果包括目标动作,其中,所述多个动作包括所述目标动作,所述根据筛选出的所述一个查表结果对所述报文进行处理,包括:对所述报文执行所述目标动作指示的操作。

可选地,在所述数据表为键字表的情况下,所述多个查表结果包括多个键字,所述一个查表结果包括目标键字,其中,所述多个键字包括所述目标键字,所述根据筛选出的所述一个查表结果对所述报文进行处理,包括:获取所述目标键字对应的目标索引;确定所述目标索引指示的目标动作;对所述报文执行所述目标动作指示的操作。

根据本发明的另一实施例,提供了一种查表装置,包括:查表模块,用于根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;处理模块,用于从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

可选地,所述处理模块,还用于:确定所述多个查表结果中的每个查表结果在所述多个查表结果中出现的次数;将出现次数最多的查表结果确定为所述一个查表结果。

可选地,所述处理模块,还用于:在出现次数最多的查表结果的数量等于1的情况下,将所述出现次数最多的查表结果确定为所述一个查表结果;在所述出现次数最多的查表结果的数量大于1的情况下,获取所述出现次数最多的查表结果中的每个查表结果对应的存储器的优先级;将所述出现次数最多的查表结果中,对应的存储器优先级最高的查表结果确定为所述一个查表结果。

可选地,在所述数据表为动作表的情况下,所述多个查表结果包括多个动作,所述一个查表结果包括目标动作,其中,所述多个动作包括所述目标动作,所述处理模块,还用于:对所述报文执行所述目标动作指示的操作。

可选地,在所述数据表为键字表的情况下,所述多个查表结果包括多个键字,所述一个查表结果包括目标键字,其中,所述多个键字包括所述目标键字,所述处理模块,还用于:获取所述目标键字对应的目标索引;确定所述目标索引指示的目标动作;对所述报文执行所述目标动作指示的操作。

可选地,根据本发明的另一个实施例,提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。

可选地,根据本发明的另一个实施例,提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。

通过本发明,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。由于在交换芯片的多个存储器中预先存储有相同的数据表,在对接收到的报文进行查表时,可以得到多个存储器的多个查表结果,并从多个查表结果中筛选出一个查表结果,因此,可以解决相关技术中由于存储器中的数据发生变化从而导致交换芯片无法正常工作的问题,达到了使交换芯片正常工作的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为根据本发明实施例的查表方法的流程图;

图2为根据本发明另一实施例的查表方法的示意图;

图3为根据本发明实施例的查表装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本发明实施例提供了一种查表方法。图1为根据本发明实施例的查表方法的流程图,如图1所示,包括:

步骤S102,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;

步骤S104,从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

通过本发明,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。由于在交换芯片的多个存储器中预先存储有相同的数据表,在对接收到的报文进行查表时,可以得到多个存储器的多个查表结果,并从多个查表结果中筛选出一个查表结果,因此,可以解决相关技术中由于存储器中的数据发生变化从而导致交换芯片无法正常工作的问题,达到了使交换芯片正常工作的技术效果。

需要说明的是,上述实施例中的查表方法可以由交换芯片执行,而不需要CPU协助执行。

可选地,所述从所述多个查表结果中筛选出一个查表结果,包括:确定所述多个查表结果中的每个查表结果在所述多个查表结果中出现的次数;将出现次数最多的查表结果确定为所述一个查表结果。

其中,通过多个存储器存储相同的数据表,达到了相互备份,并且由于多个存储器同时发生数据跳变、以及发生相同的数据跳变的概率很低,可以忽略。

在上述实施例中,可以按照每个查表结果在得到的多个查表结果中的出现次数(即频次)对多个查表结果按照从多到少的顺序进行排序,并将排序最靠前的查表结果作为目标查表结果(即上述实施例中的一个查表结果),即通过对多个查表结果进行决策从中选举出一个选举结果。

可选地,所述将出现次数最多的查表结果确定为所述一个查表结果,包括:在出现次数最多的查表结果的数量等于1的情况下,将所述出现次数最多的查表结果确定为所述一个查表结果;在所述出现次数最多的查表结果的数量大于1的情况下,获取所述出现次数最多的查表结果中的每个查表结果对应的存储器的优先级;将所述出现次数最多的查表结果中,对应的存储器优先级最高的查表结果确定为所述一个查表结果。

需要说明的是,在上述实施例中,可以预先为多个存储器中的每个存储器预设设置优先级,当得到的多个查表结果中出现次数最多的查表结果的数量大于1的情况下)。例如,当交换芯片中存在N个存储器,N个存储器进行查表后得到N个查表结果,出现次数最多的查表结果的数量为3个,则可以根据各个查表结果对应的存储器的优先级,将上述3个查表结果中对应的存储器的优先级最高的查表结果作为目标查表结果。

可选地,在所述数据表为动作表的情况下,所述多个查表结果包括多个动作,所述一个查表结果包括目标动作,其中,所述多个动作包括所述目标动作,所述根据筛选出的所述一个查表结果对所述报文进行处理,包括:对所述报文执行所述目标动作指示的操作。

在上述实施例中,动作表包括但不限于转发表、路由表、业务表,多个动作包括但不限于对报文执行的转发操作、路由操作等操作。

可选地,在所述数据表为键字表的情况下,所述多个查表结果包括多个键字,所述一个查表结果包括目标键字,其中,所述多个键字包括所述目标键字,所述根据筛选出的所述一个查表结果对所述报文进行处理,包括:获取所述目标键字对应的目标索引;确定所述目标索引指示的目标动作;对所述报文执行所述目标动作指示的操作。

在上述实施例中,数据表也可以是键字表,其中,键字表中用于存储键字,键字可以用于指向其他数据表中的一个索引,该索引可以是其他数据表中的一个表项,进而实现对所述报文执行目标键字对应的目标索引所执行的目标动作。

以下结合一示例对上述的查表方法进行解释说明,但不用于限定本发明实施例的技术方案。图2为根据本发明另一实施例的查表方法的示意图。下面结合图2所示的流程图对本发明示例的技术方案进行详细说明。

在本发明一个可选实施例中,通过对从多个介质的数据表中得到的匹配的数据(即上述实施例中的多个存储器的多个查表结果)进行多元化选举,从而达到防止芯片存储跳变或者黑客恶意篡改数据,所导致的芯片不能正常工作的技术问题。其中,介质中存储的数据表可以是键字表和动作表,存放在介质里面的数据都可以成为被选举的数据,下面以数据表为动作表为例,对上述实施例中的查表方法进行说明。

在本发明实施例中,交换芯片通过多块介质(例如多个存储器)保存同一份动作表,介质可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)和TCAM等,通过对多块介质匹配得到的动作进行选举,最终根据选举结果获取相应的动作对报文进行处理。以TCAM介质为例,本发明一个可选实施例中的查表方法如下:

步骤1、配置存储器;其中,以交换芯片中的多个存储器为3个TCAM(即图2中的TCAM0、TCAM1和TCAM2)为例,为3个TCAM配置相同的动作表,即交换芯片使用三个TCAM存放相同的动作表。

步骤2、查表;其中,如图2所示,在接收到报文后,根据报文通过三块TCAM并行查找,获取到每块TCAM查找到的动作表中的条目(即查表结果)。

步骤3、选举;选举的策略就是比较三块TCAM查找到的条目,依据少数服从多数的原则,选举查找到的条目中数量最多的条目作为目标条目(即上述实施例中的目标查表结果),其中在数量一样的情况下,结合预先设置的三块TCAM的优先级(例如,TCAM0、TCAM 1和TCAM 2的优先级的大小关系如下:TCAM0>TCAM1>TCAM2)确定出目标条目。

表1为根据本发明一可选实施例中的查表方法得到的选举结果的示意图。

表1

其中,在表1中,仅仅以TCAM0查表后得到的查表结果为动作0,TCAM1查表后得到的查表结果为动作1,TCAM2查表后得到的查表结果为动作2作为示意性说明;在选举案例1中,对三个TCAM得到的三个查表结果进行选举后得到的选举结果为动作1,并且动作1在三个查表结果中出现的次数为3,即三个查表结果均相同,确定三个TCAM中均未发生数据变化,因此为每个TCAM添加标识“1”以表示其存储的数据正常;在选举案例2中,选举结果为动作0,并且动作0与动作1相同,确定TCAM0、TCAM1数据正常,并添加标识“1”,而TCAM2得到的查表结果动作2不同于动作0,则确定TCAM2存在数据变化,为其添加标识“0”。

在上述实施例中,TCAM芯片在对三块TCAM查找到的动作进行选举的时候,比较三块TCAM查到的动作是否相同,并选举相同次数多的动作,即使其中一块TCAM数据出现跳变,芯片还是能够获取到正确的动作。

基于上述实施例,在使用三块TCAM存放相同的数据的情况下,有两块内存数据出现跳变是无法选举出正确的结果,因为此时芯片不知道哪块内存数据是对的,因此当有N块TCAM时,有N-1块TCAM出现跳变时,是无法选举出正确的数据的。但是一块TCAM发生跳变的概率本身很低,因此当N越来越大时,N-1块TCAM都发生跳变的概率非常低,几乎不可能发生。可选地,可以通过增加芯片中的存储介质的数量来提高芯片的安全性,例如N为10、20、50、100或其他更大的数值。

需要说明的是,在上述实施例中,当得到的N个查表结果均为不同的查表结果时,即N个查表结果之间两两互不相同,则确定N个存储器中至少有N-1个存储器中的数据发生了变化,在该情况下,不再从N个查表结果中筛选出一个查表结果,例如表1中的选举案例5-8,在N-1个存储器中的数据均发生了变化或是N个存储器均发生了数据变化时,不产生选举结果,并以标识“-”表示不得到选角结果。其中,由于N-1个存储器同时发生数据跳变或被黑客攻击的概率很低,几乎为0,因此本发明实施例中的查表方法总是能够筛选出数据为发生变化的存储器对应的查表结果,从而可以实现交换芯片的正常工作。

通过上述实施例,提供了一种通过多个介质存储相同的数据来实现多元选举策略的芯片机制,解决了芯片存储器跳变或被黑客攻击导致芯片不能正常工作的问题。其中,多元选举策略包括选择多个介质查找的相同的数据,从而实现了选举出其中的真实的匹配数据。在上述实施例中,通过对多个介质同时匹配的结果进行选举,最终根据选举出来的匹配结果对报文执行相应的行为,上述实施例不需要CPU协助处理,完全靠交换芯片执行和处理。其中,当芯片中的某块内存中发生跳变或者被黑客攻击导致数据错误的时候,芯片会通过比较多个介质的数据,选举出正确的数据,做相应的业务行为。同时,本发明中的实施例也能处理某块内存出现大量比特跳变的情况,这是因为本发明中的实施例不需要去纠正错误的数据,而是通过依靠其他介质来选举出正确的数据;通过上述实施例,防止了芯片存储跳变或者黑客恶意篡改数据所导致的芯片不能正常工作,提高了芯片的安全性,可以应用在工业级芯片中,尤其能够适用于高低温异常情况下芯片的内存容易出现数据跳变的场景。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明的另一个实施例,提供了一种查表装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3为根据本发明实施例的查表装置的结构框图,如图3所示,该装置包括:

查表模块32,用于根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;

处理模块34,用于从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

通过本发明,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。由于在交换芯片的多个存储器中预先存储有相同的数据表,在对接收到的报文进行查表时,可以得到多个存储器的多个查表结果,并从多个查表结果中筛选出一个查表结果,因此,可以解决相关技术中由于存储器中的数据发生变化从而导致交换芯片无法正常工作的问题,达到了使交换芯片正常工作的技术效果。

可选地,所述处理模块,还用于:确定所述多个查表结果中的每个查表结果在所述多个查表结果中出现的次数;将出现次数最多的查表结果确定为所述一个查表结果。

可选地,所述处理模块,还用于:在出现次数最多的查表结果的数量等于1的情况下,将所述出现次数最多的查表结果确定为所述一个查表结果;在所述出现次数最多的查表结果的数量大于1的情况下,获取所述出现次数最多的查表结果中的每个查表结果对应的存储器的优先级;将所述出现次数最多的查表结果中,对应的存储器优先级最高的查表结果确定为所述一个查表结果。

可选地,在所述数据表为动作表的情况下,所述多个查表结果包括多个动作,所述一个查表结果包括目标动作,其中,所述多个动作包括所述目标动作,所述处理模块,还用于:对所述报文执行所述目标动作指示的操作。

可选地,在所述数据表为键字表的情况下,所述多个查表结果包括多个键字,所述一个查表结果包括目标键字,其中,所述多个键字包括所述目标键字,所述处理模块,还用于:获取所述目标键字对应的目标索引;确定所述目标索引指示的目标动作;对所述报文执行所述目标动作指示的操作。

实施例3

本发明的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

S1,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;

S2,从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

实施例4

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,根据接收到的报文,在交换芯片的多个存储器中进行查表,得到多个查表结果,其中,所述多个存储器中预先存储有相同的数据表,所述多个查表结果中的每个查表结果为所述多个存储器中的一个存储器根据所述报文进行查表得到的查表结果,所述每个查表结果用于指示对所述报文的处理方式;

S2,从所述多个查表结果中筛选出一个查表结果,并根据筛选出的所述一个查表结果对所述报文进行处理。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 查表方法及装置、存储介质以及电子设备
  • 语音特征提取的查表方法、装置、计算机设备和存储介质
技术分类

06120112587180