CN102622434A - 数据存储方法、查找方法及装置 - Google Patents
数据存储方法、查找方法及装置 Download PDFInfo
- Publication number
- CN102622434A CN102622434A CN2012100486059A CN201210048605A CN102622434A CN 102622434 A CN102622434 A CN 102622434A CN 2012100486059 A CN2012100486059 A CN 2012100486059A CN 201210048605 A CN201210048605 A CN 201210048605A CN 102622434 A CN102622434 A CN 102622434A
- Authority
- CN
- China
- Prior art keywords
- key word
- bit wide
- tcam
- standard
- index value
- 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.)
- Granted
Links
Images
Abstract
本发明提供一种数据存储方法、数据查找方法及装置。该数据存储方法包括:获取待存储到TCAM的关键字;从TCAM的所有标准位宽中,选择与关键字的位宽的差值最小的标准位宽为第一标准位宽;若第一标准位宽大于等于关键字的位宽,将关键字存储到TCAM中存储位宽等于第一标准位宽的空间中;否则,将关键字切割成第一关键字和第二关键字;将第一关键字存储到TCAM中存储位宽等于第一标准位宽的空间中;将第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中;将关键字对应的关联数据存储于存储器中,关联数据在存储器中的存储地址与关键字在TCAM的索引值对应。本发明显著减少了TCAM空间的浪费,提高了空间利用率。
Description
本申请要求于2011年12月31日提交中国专利局、申请号201110459396.2、发明名称为“数据存储方法、查找方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据存储方法、数据查找方法及装置。
背景技术
三态内容可寻址存储器(Ternary Content Addressable Memory,TCAM)中每一个bit的状态可以是“0”或“1”,或者是第三种状态“don’tcare”,所以称为“三态”。这个特点使TCAM具有对所查找数据的位域具有筛选功能,TCAM表内所有条目都可以并行访问,例如,如果TCAM有100条表项,能一次对这100条表项进行对比操作,相对与普通的轮询查找方法,提高了查找的速度。然而,TCAM成本比较高,存储空间的单位价格高于普通的SRAM,耗能也远远高于SRAM。
TCAM所使用的特定key长度主要有以下四种标准位宽:80bit,160bit,320bit和640bit。现有方法的TCAM表项下发过程是根据待存储的key值位宽选择需要用到的标准位宽,选择标准是选择大于待存储的key值位宽的最小标准位宽。例如,待存储的key值是170bit,则选择320bit的标准位宽进行下发。并将待存储的key值对应的关联数据下发到该key值的Index为偏移地址的DDR DRAM地址中。
然而,在实际应用中,TCAM的key值长度因业务的需要各有不同,很难达到以上标准位宽。例如:报文的key值长度为330bit,超过了320bit,需要使用标准位宽为640bit的表项来存储,多出的640bit-330bit=310bit用mask码表示,该表项浪费了310bit空间。因此,非标准位宽的key值存在浪费TCAM表项空间的问题。
发明内容
本发明实施例提供一种数据存储方法、数据查找方法及装置,用以解决TCAM中非标准位宽的关键字key值浪费空间的缺陷。
一方面,本发明实施例提供一种数据存储方法,包括:
获取待存储到TCAM的关键字,并获取所述关键字的位宽;
从TCAM的所有标准位宽中,选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
若所述第一标准位宽大于等于所述关键字的位宽,将所述关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述关键字的存储地址,并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;将所述第一关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值,所述第一标准位宽等于所述第一关键字的位宽;将所述第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中,获取所述第一关键字的存储地址作为所述第二关键字在TCAM中的索引值,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
将所述关键字对应的关联数据存储于存储器中,所述关联数据在所述存储器中的存储地址与所述关键字在TCAM的索引值对应,所述关联数据中包含有所述关键字的报文的处理信息。
另一方面,本发明实施例提供一种数据查找方法,包括:
从报文中提取出待查找的关键字,并获取所述关键字的位宽;
从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
若所述第一标准位宽大于等于所述关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找所述关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;在TCAM中位宽等于第一标准位宽的空间中查找所述第一关键字,并将所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;在TCAM中位宽等于第二标准位宽的空间中查找所述第二关键字,获取所述第二关键字的存储地址并将所述第二关键字的存储地址作为所述第二关键字在TCAM中的索引值,其中,所述第一标准位宽等于所述第一关键字的位宽,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
根据所述关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,所述关联数据中包含有所述关键字的报文的处理信息。
又一方面,本发明实施例还提供一种数据存储装置,包括:
获取模块,用于获取待存储到TCAM的关键字,并获取所述关键字的位宽;
标准位宽选择模块,用于从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
索引值确定模块,用于若所述第一标准位宽大于等于所述关键字的位宽,将所述关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述关键字的存储地址,并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
所述索引值确定模块,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;将所述第一关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;将所述第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中,获取所述第一关键字的存储地址作为所述第二关键字在TCAM中的索引值;第一关键字的位宽等于所述第一标准位宽,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;
所述索引值确定模块,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
关联数据保存模块,用于将所述关键字对应的关联数据存储于存储器中,所述关联数据在所述存储器中的存储地址与所述关键字在TCAM的索引值对应,所述关联数据中包含有所述关键字的报文的处理信息。
又一方面,本发明实施例还提供一种数据查找装置,包括:
提取模块,用于从报文中提取出待查找的关键字,并获取所述关键字的位宽;
位宽选择模块,用于从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
查找模块,用于若所述第一标准位宽大于等于所述关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找所述关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
所述位宽选择模块,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字,其中第一关键字的位宽等于所述第一标准位宽;
所述查找模块,还用于将所述关键字切割成第一关键字和第二关键字后,在TCAM中位宽等于第一标准位宽的空间中查找所述第一关键字,并将所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;在TCAM中位宽等于第二标准位宽的空间中查找所述第二关键字,获取所述第二关键字的存储地址并将所述第二关键字的存储地址作为所述第二关键字在TCAM中的索引值,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;
所述查找模块,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
读取模块,用于根据所述关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,所述关联数据中包含有所述关键字的报文的处理信息。
本发明实施例提供的数据存储方法、数据查找方法及装置,在存储关键字对应的关联数据的过程中,如果第一标准位宽大于等于关键字的位宽,将该关键字存储到TCAM中位宽等于第一标准位宽的空间中,由于第一标准位宽为所有标准带宽中与该关键字的位宽的差值最小的标准带宽,因此,存储该关键字的空间浪费的位宽较少。如果第一标准位宽小于关键字的位宽,根据该关键字的位宽将该关键字切割成第一关键字和第二关键字,将第一关键字存储到位宽等于第一标准位宽的空间中,由于第一关键字的位宽与第一标准位宽相同,因此存储第一关键字的空间没有浪费;对于第二关键字,选择位宽等于第二标准位宽的空间来存储,由于第二关键字为待存储的关键字的一部分,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小,存储第二关键字的空间浪费的位宽远小于存储没有切割的关键字的空间所浪费的位宽。因此,本发明实施例与选择大于待存储的关键字的位宽的最小标准位宽作为存储该关键字的空间的标准位宽的方法相比,显著减少了TCAM空间的浪费,提高了空间利用率,节省了硬件成本。
附图说明
图1为本发明实施例提供的一种数据存储方法流程图;
图2A为本发明实施例提供的另一种数据存储方法流程图;
图2B为本发明实施例提供的一种key值存储示意图;
图2C为本发明实施例提供的另一种key值存储示意图;
图3A为本发明实施例提供的一种数据查找方法流程图;
图3B为本发明实施例提供的一种应用场景示意图;
图4为本发明实施例提供的一种数据存储装置结构示意图;
图5为本发明实施例提供的另一种数据存储装置结构示意图;
图6为本发明实施例提供的一种数据查找装置结构示意图;
图7本发明实施例提供的另一种数据查找装置结构示意图。
具体实施方式
图1为本发明实施例提供的一种数据存储方法流程图。如图1所示,本实施例包括:
步骤11:获取待存储到TCAM的关键字,并获取关键字的位宽。
步骤12:从TCAM的所有标准位宽中选择与该关键字的位宽的差值最小的标准位宽为第一标准位宽。若该第一标准位宽大于等于该关键字的位宽,执行步骤13和步骤15;否则执行步骤14a、14b和步骤15。
第一标准位宽为从所有标准位宽中选择与待存储的关键字的位宽的差值最小的标准位宽,而不是大于待存储的关键字的位宽的最小标准位宽。例如,TCAM所使用的特定key长度主要有以下四种标准位宽:80bit,160bit,320bit和640bit。如果待存储的关键字的位宽为350bit,与350的差值最小的标准带宽为320bit。如果待存储的关键字的位宽为590bit,与590的差值最小的标准带宽为640bit。
进一步,若所有标准位宽中有两个标准位宽与该关键字的位宽的差值相等且最小,确定其中位宽小的标准位宽为第一标准位宽。例如:待存储的关键字的位宽为480bit,与480的差值最小的标准带宽有两个:640bit和320bit,选择位宽小的320bit为第一标准带宽。如果选择640bit为第一标准带宽,由于640大于480,用位宽为640bit的空间存储该关键字,会浪费160bit的空间。
步骤13:若该第一标准位宽大于等于该关键字的位宽,将该关键字存储到TCAM中存储位宽等于该第一标准位宽的空间中,获取该关键字的存储地址,并将该关键字的存储地址作为关键字在TCAM中的索引值。
第一标准位宽与该关键字的位宽的差值最小,如果第一标准位宽大于等于该关键字的位宽,则位宽为该第一标准位宽的空间不仅可容纳待存储的关键字,且该空间中不被该关键字占用的空间最少。例如,待存储的关键字的位宽为300bit,与300的差值最小的标准带宽为320bit,由于320大于300。则用320bit的空间存储该关键字,剩余20bit用掩码表示。在查找TCAM表项时,用掩码表示的bit不参与查找。
步骤14a:若该第一标准位宽小于该关键字的位宽,将该关键字切割成两个关键字,分别为第一关键字和第二关键字,其中第一关键字的位宽等于该第一标准位宽。
步骤14b:将第一关键字存储到位宽等于第一标准位宽的空间中,获取第一关键字的存储地址,并将第一关键字的存储地址作为第一关键字在TCAM的索引值;将第二关键字存储到位宽等于第二标准位宽的空间中,获取第二关键字的存储地址,并将第二关键字的存储地址作为在TCAM的索引值;通过将第一关键字在TCAM中的索引值和第二关键字在TCAM的中索引值进行组合变换获得该关键字在TCAM中的索引值,其中,所述组合变换使得该关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突。
如果第一标准位宽小于该关键字的位宽,则位宽为该第一标准位宽的空间不足以容纳待存储的该关键字。根据该关键字的位宽将该关键字切割成两部分:第一关键字和第二关键字,其中第一关键字的位宽等于该第一标准位宽。将该第一关键字存储到位宽与该第一标准位宽相同的空间中,寻找位宽为其它标准位宽的空间来存储第二关键字。为避免第二关键字占用过多的空间,选择位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小的标准位宽为第二标准位宽,将该第二关键字存储到位宽与第二标准位宽相同的空间中。由于第二关键字为待存储的关键字的一部分,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小,存储第二关键字的空间浪费的位宽远小于存储没有切割的关键字的空间所浪费的位宽。
例如,待存储的关键字的位宽为480bit,第一标准位宽为320bit,由于320小于480,将待存储的关键字按照位宽切割为两部分:第一关键字和第二关键字,第一关键字的位宽为320bit,那么第二关键字的位宽等于标准位宽160bit,因此,将第二关键字存储在位宽为160bit的第一空间中,将第一关键字存储在位宽为320bit的第二空间中,这里按照现有技术,采用640bit的空间存储480bit的关键字,则会浪费160bit的存储空间。
将第一关键字在TCAM的索引值a和第二关键字在TCAM的索引值b进行组合交换后得到的组合值作为待存储的关键字在TCAM的索引值。索引值a和索引值b的组合交换方法有多种,只需满足以下条件组合变换后的的索引值与其它关键字在TCAM的索引值不产生冲突。具体组合变换方法不是本发明的重点,本领域技术人员可以获知多种满足以上条件的实现方法,例如采用高低位组合变换、幂次变换等。例如高低位组合方法:第一关键字的索引值a为高位,第二关键字的索引值b为低位,组合后的索引值为ab,或者,第二关键字的索引值b为高位,第一关键字的索引值a为低位,组合后的地址ba;又例如幂次变换:ab,或者,ba。其中,第一关键字在TCAM的索引值可以是第一关键字在TCAM的地址,第二关键字在TCAM的索引值可以是第二关键字在TCAM的地址。
步骤15:将该关键字对应的关联数据存储于存储器中,该关联数据在存储器中的存储地址与该关键字在TCAM的索引值对应,该关联数据中包含有该关键字的报文的处理信息。
确定该关键字在TCAM的索引值后,将该关键字对应的关联数据存储于存储器中,其中,该关联数据在存储器中的存储地址与该关键字在TCAM的索引值对应。其中,关联数据可以为地址映射表项、ACL信息、路由信息等针对报文的处理信息。
进一步,还可保存关键字的索引值与关联数据在存储器中的存储地址之间的对应关系。在查找该关键字的关联数据时,先确定关键字在TCAM的索引值,再根据关键字的索引值与关联数据在存储器中的存储地址之间的对应关系,确定该关键字对应的关联数据在存储器中的存储地址,然后根据关联数据在存储器中的存储地址读取出关联数据。
本发明实施例提供的数据存储方法,如果第一标准位宽大于等于关键字的位宽,将该关键字存储到TCAM中位宽等于第一标准位宽的空间中,由于第一标准位宽为所有标准带宽中与该关键字的位宽的差值最小的标准带宽,因此,存储该关键字的空间浪费的位宽较少。如果第一标准位宽小于关键字的位宽,根据该关键字的位宽将该关键字切割成第一关键字和第二关键字,将第一关键字存储到位宽等于第一标准位宽的空间中,由于第一关键字的位宽与第一标准位宽相同,因此存储第一关键字的空间没有浪费;对于第二关键字,选择位宽等于第二标准位宽的空间来存储,由于第二关键字为待存储的关键字的一部分,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小,存储第二关键字的空间浪费的位宽远小于存储没有切割的关键字的空间所浪费的位宽。因此,本发明实施例与选择大于待存储的关键字的位宽的最小标准位宽作为存储该关键字的空间的标准位宽的方法相比,显著减少了TCAM空间的浪费,提高了空间利用率,节省了硬件成本。
图2A为本发明实施例提供的另一种数据存储方法流程图。本实施例以key长度采用以下四种标准位宽:80bit,160bit,320bit和640bit的TCAM为例进行说明。本实施例用TCAM表来存储ACL下发的关键字。TCAM将ACL下发的关键字,存储到TCAM表的空表项中,同时将与该关键字相关的关联数据存储到存储器中,其中关联数据在内存中的地址保存在对应数据库的特定表项中,该特定表项的索引值根据该关键字在TCAM表的索引值确定。如图2A所示,本实施例包括:
步骤20:获取待存储到TCAM表的关键字Key值,并获取Key值的位宽。
步骤21:对待存储的Key值进行压缩。
为节省TCAM空间,并提高后续的查找效率,可对待存储Key值进行压缩,缩小待存储Key值的位宽。压缩后Key值的位宽小于压缩前Key值的位宽,由于Key值位宽减小可节省TCAM空间,并可减小后续查找的位数,从从而提高查找效率。
步骤22:查找该TCAM表中是否已存在与压缩后的待存储Key值相同的Key值。若是执行步骤23,否则执行步骤24。
在TCAM中位宽与压缩后的待存储Key值的位宽相同的表项中,查找待存储Key值。
步骤23:若TCAM表中存在与压缩后的待存储Key值相同的Key值,将压缩前的待存储Key值的位宽确定为待存储Key值的位宽。
步骤24:若TCAM表中不存在与压缩后的待存储Key值相同的Key值,将压缩后的待存储Key值的位宽确定为待存储Key值的位宽。
步骤25:根据实际Key值位宽与使用的标准位宽对应表,选择待存储Key值使用的标准位宽,根据选择的标准位宽切割待存储Key值。
根据图1对应实施例提供的方法,本实施例为采用以下四种标准位宽:80bit,160bit,320bit和640bit的TCAM建立如表1所示的实际Key值位宽与使用的标准位宽对应表。表1中位宽在一定范围的Key值使用相同的标准位宽。例如,位宽在(160,240]范围内的KEY值对应两个的标准位宽分别为160bit和80bit。位宽在(240,320]范围内的KEY值对应一个标准位宽320bit。
根据表1提供的实际Key值位宽与使用的标准位宽的对应关系,如果待存储Key值选择的标准位宽有两个标准位宽:第一标准位宽和第二标准位宽,根据位宽将待存储Key值切割成两部分:Key1和Key2,其中Key1的位宽为第一标准位宽,第二标准位宽为大于Key2的位宽的最小标准位宽。如果待存储Key值选择的标准位宽有一个标准位宽,则不需对待存储Key值进行切割,采用位宽为标准位宽的表项存储Key值。如图2B所示,待存储的Key值的位宽为300bit,位宽在(240,320]范围内,查找表1确定Key值对应的标准位宽为320bit,不需对该待存储Key值进行切割,用位宽为320bit的表项存储该Key,多余的20bit用掩码表示。如图2C所示,位宽为220bit的待存储Key值,其位宽在(160,240]范围内,根据表1该待存储Key值对应有两个标准位宽:160bit和80bit,则将该待存储Key值切割成两部分:Key1和Key2;其中,Key1的位宽为160bit,Key2的位宽为80bit。Key1存储在位宽为160bit的表项中,Key2存储在位宽为80bit的表项中,Key2所在表项的多余的20bit用掩码表示。
表1为Key值位宽与使用的标准位宽对应表
Key值位宽 | 使用的标准位宽 | 数据库 |
(0,80] | 80 | a |
(80,160] | 160 | b |
(160,240] | 160,80 | ab |
(240,320] | 320 | c |
(320,400] | 320,80 | ac |
(400,480] | 320,,160 | bc |
(480,640] | 640 | d |
(640,720] | 640,80 | ad |
(720,800] | 640,160 | bd |
(800,900] | 640,620 | cd |
步骤26:将切割后的Key值,存储到TCAM表中位宽与被选择的各标准位宽相同的表项中。并将存储切割后的Key值的表项的地址作为Key值的在TCAM的索引值。
被切割的Key值在TCAM表中的索引值为切割后两个KEY值的在TCAM表的索引值的组合值,且该组合值使Key值的索引值与被切割的其它Key值的索引值不产生冲突。承上所述,如图2C所示,如果key1值在TCAM表的索引值为x,如果key2值在TCAM表的索引值为y,采用以下组合方法:第一部分关键字在TCAM表的索引值为高位,第二关键字在TCAM表的索引值为低位,得到key的索引值为xy。
步骤27:将与关键字Key值对应的关联数据存储到存储器中,将关联数据在存储器中存储地址保存在该Key值的位宽对应数据库的相应表项中,存储关联数据地址的表项在数据库的索引值为该Key值在TCAM表的索引值。
表1中数据库用于存储Key值对应关联数据在内存的存储地址。可根据Key值的位宽确定用于存储该Key值对应关联数据在内存的存储地址的数据库的名称。一种实现方式是,每个标准位宽对应一个数据库名称,如果Key值对应一个标准位宽,根据该标准位宽确定存储该Key值对应关联数据的数据库名称;如果Key值对应两个标准位宽,分别根据该Key值对应的两个标准位宽确定两个数据库名称,将这两个数据库名称组合后形成于存储该Key值对应关联数据在内存的存储地址的数据库的名称。如表1所示,位宽在(0,80]范围内的各KEY值所对应的关联数据在内存的存储地址均保存在数据库a中,位宽在(80,160]范围内的各KEY值所对应的关联数据在内存的存储地址均保存在数据库b中,位宽在(160,240]范围内的各KEY值所对应的关联数据在内存的存储地址均保存在数据库ab中,通过KEY值在TCAM表中的索引值可确定保存关联数据在内存的存储地址的表项在相应数据库的索引值。
本发明实施例提供的数据存储方法,显著减少了TCAM空间的浪费,提高了空间利用率,节省了硬件成本。
图3A为本发明实施例提供的一种数据查找方法流程图。本实施例主要说明如何从TCAM中查找与当前报文的关键字相匹配的关键字,并根据该关键字的索引值,从存储器中读取该关键字对应的关联数据,即当前报文的处理信息。如图3A所示,本实施例包括:
步骤31:从报文中提取出待查找的关键字,并获取关键字的位宽。
进一步,为提高查找效率,在从报文中提取出该关键字之后,还可对待查找的该关键字进行压缩,将压缩后的该关键字的位宽确定为待查找的该关键字的位宽。
步骤32:从TCAM的所有标准位宽中选择与该关键字的位宽的差值最小的标准位宽为第一标准位宽。若该第一标准位宽大于等于该关键字的位宽,执行步骤33和步骤35;否则执行步骤34a、34b和步骤35。
从TCAM中查找与当前报文中的关键字相匹配的关键字,与向TCAM表下发关键字的方法一样,首先确定与该关键字的位宽的差值最小的标准位宽为第一标准位宽。进一步,若所有标准位宽中有两个标准位宽与该关键字的位宽的差值相等且最小,确定其中位宽最小的标准位宽为第一标准位宽。
步骤33:若该第一标准位宽大于等于该关键字的位宽,在TCAM的存储位宽等于第一标准位宽的空间中查找该关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值。
步骤34a:若该第一标准位宽小于该关键字的位宽,将该关键字切割成两部分,分别为第一关键字和第二关键字。
步骤34b:在TCAM的位宽为第一标准位宽的空间中查找该第一关键字,获取第一关键字在TCAM的存储地址,并将第一关键字在TCAM的存储地址作为第一关键字在TCAM的索引值;在TCAM的位宽为第二标准位宽的空间中查找该第二关键字,获取第二关键字在TCAM的存储地址,并将第二关键字在TCAM的存储地址作为第二关键字在TCAM的索引值;通过将第一关键字在TCAM中的索引值和第二关键字在TCAM的中索引值进行组合变换获得关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突。
其中,第一关键字的位宽等于该第一标准位宽,第二标准位宽为大于等于该第二关键字的位宽且与第二关键字的位宽的差值最小。
查找到第一关键字和第二关键字后,通过该第一关键字在TCAM的索引值和该第二关键字在TCAM的索引值组合成待查找的关键字在TCAM的索引值,且使待查找的关键字在TCAM的索引值与其它关键字的索引值不产生冲突。
步骤35:根据关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,关联数据中包含有关键字的报文的处理信息。其中,关联数据可以为地址映射表项、ACL信息、路由信息等针对报文的处理信息。
图3B为本发明实施例提供的一种应用场景示意图。如图3B所示,网络处理器(Network Processor,简称NP)从报文中提取出待查找的关键字,将待查找的关键字Key送入TCAM中。TCAM根据步骤32、步骤33、步骤34a和步骤33b提供的方法查找该关键字,并将该关键字在TCAM的索引值INDEX返回给NP,NP再根据TCAM返回的索引值INDEX确定关键字KEY对应的关联数据在存储器中的存储地址ADDR,之后根据存储地址从存储器中读取关联数据,以对报文进行处理。
本发明实施例提供的数据查找方法,如果与待查找关键字的位宽的差值最小的第一标准位宽大于等于关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找该关键字;否则,根据该关键字的位宽将该关键字切割成第一关键字和第二关键字。然后,在TCAM的位宽等于第一标准位宽的空间中查找该第一关键字;在TCAM的位宽等于第二标准位宽的空间中查找该第二关键字,其中,第一关键字的位宽等于第一标准位宽,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小。被切割后的关键字在TCAM的索引值根据第一关键字在TCAM的索引值和第二关键字在TCAM的索引值的组合值确定且与其它关键字在TCAM的索引值不产生冲突。
图4为本发明实施例提供的一种数据存储装置结构示意图。如图4所示,本实施例包括:获取模块41、标准位宽确定模块42、索引值确定模块43以及关联数据保存模块44。
获取模块41,用于获取待存储到TCAM的关键字,并获取所述关键字的位宽。
标准位宽选择模块42,用于从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽。
其中,所述标准位宽选择模块42,还用于若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
索引值确定模块43,用于若所述第一标准位宽大于等于所述关键字的位宽,将所述关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述关键字的存储地址,并将所述关键字的存储地址作为所述关键字在TCAM中的索引值。
所述索引值确定模块43,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;将所述第一关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;将所述第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中,获取所述第一关键字的存储地址作为所述第二关键字在TCAM中的索引值;第一关键字的位宽等于所述第一标准位宽,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小。
所述索引值确定模块43,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
关联数据保存模块44,用于将所述关键字对应的关联数据存储于存储器中,所述关联数据在所述存储器中的存储地址与所述关键字在TCAM的索引值对应,所述关联数据中包含有所述关键字的报文的处理信息。
上述各模块实现的功能参见图1对应实施例中描述,在此不再赘述。
为节省TCAM空间,并提高后续的查找效率,如图5所示,本实施例还包括:。
第一压缩模块45,用于获取所述关键字的位宽后,对待存储的所述关键字进行压缩;查找所述TCAM中是否已存在与压缩后的所述关键字相同的关键字;若TCAM中存在与压缩后的所述关键字相同的关键字,将压缩前的所述关键字的位宽确定为待存储的所述关键字的位宽;若TCAM中不存在与压缩后的所述关键字相同的关键字,将压缩后的所述关键字的位宽确定为待存储的所述关键字的位宽。
上述各模块实现的功能参见图2A对应实施例中描述,在此不再赘述。
本发明实施例提供的数据存储装置,如果第一标准位宽大于等于关键字的位宽,将该关键字存储到TCAM中位宽为第一标准位宽的空间中,由于第一标准位宽为所有标准带宽中与该关键字的位宽的差值最小的标准带宽,因此,存储该关键字的空间浪费的位宽较少。如果第二位宽小于关键字的位宽,根据该关键字的位宽将该关键字切割成第一关键字和第二关键字,采用位宽为第一标准位宽的空间存储第一关键字,由于第一关键字的位宽与第一标准位宽相同,因此存储第一关键字的空间没有浪费;对于第二关键字,选择位宽为第二标准位宽的空间来存储,由于第二关键字为待存储的关键字的一部分,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小。因此,本发明实施例与选择大于待存储的关键字的位宽的最小标准位宽作为存储该关键字的空间的标准位宽的方法相比,显著减少了TCAM空间的浪费,提高了空间利用率,节省了硬件成本。
图6为本发明实施例提供的一种数据查找装置结构示意图。如图6所示,本实施例包括:提取模块60、位宽选择模块61、查找模块62和读取模块63。
提取模块60,用于从报文中提取出待查找的关键字,并获取所述关键字的位宽。
位宽选择模块61,用于从TCAM的所有标准位宽中确定与所述关键字的位宽的差值最小的标准位宽为第一标准位宽。进一步,位宽选择模块61,还用于若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
查找模块62,用于若所述第一标准位宽大于等于所述关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找所述关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值。
位宽选择模块61,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字,其中第一关键字的位宽等于所述第一标准位宽。
所述查找模块62,还用于将所述关键字切割成第一关键字和第二关键字后,在TCAM中位宽等于第一标准位宽的空间中查找所述第一关键字,并将所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;在TCAM中位宽等于第二标准位宽的空间中查找所述第二关键字,获取所述第二关键字的存储地址并将所述第二关键字的存储地址作为所述第二关键字在TCAM中的索引值,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小。
所述查找模块62,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突。
读取模块63,用于根据所述关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,所述关联数据中包含有所述关键字的报文的处理信息。
进一步,为提高查找效率,在从报文中提取出该关键字,获取关键字的位宽之后,还可对待查找的该关键字进行压缩。如图7所示,本实施例还可包括:第二压缩模块64。
第二压缩模块64,用于获取所述关键字的位宽后,对所述关键字进行压缩,将压缩后的所述关键字的位宽确定为待查找的所述关键字的位宽。
上述各模块实现的功能参见图3应实施例中描述,在此不再赘述。
本发明实施例提供的数据查找装置,如果与待查找关键字的位宽的差值最小的第一标准位宽大于等于关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找该关键字;否则,根据该关键字的位宽将该关键字切割成第一关键字和第二关键字。然后,在TCAM的位宽等于第一标准位宽的空间中查找该第一关键字;在TCAM的位宽等于第二标准位宽的空间中查找该第二关键字,其中,第一关键字的位宽等于第一标准位宽,第二标准位宽大于等于第二关键字的位宽且与第二关键字的位宽的差值最小。被切割后的关键字在TCAM的索引值根据第一关键字在TCAM的索引值和第二关键字在TCAM的索引值的组合值确定且与其它关键字在TCAM的索引值不产生冲突。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种数据存储方法,其特征在于,包括:
获取待存储到TCAM的关键字,并获取所述关键字的位宽;
从TCAM的所有标准位宽中,选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
若所述第一标准位宽大于等于所述关键字的位宽,将所述关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述关键字的存储地址,并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;将所述第一关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值,所述第一标准位宽等于所述第一关键字的位宽;将所述第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中,获取所述第一关键字的存储地址作为所述第二关键字在TCAM中的索引值,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
将所述关键字对应的关联数据存储于存储器中,所述关联数据在所述存储器中的存储地址与所述关键字在TCAM的索引值对应,所述关联数据中包含有所述关键字的报文的处理信息。
2.根据权利要求1所述方法,其特征在于,在所述从TCAM的所有标准位宽中,选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽之后,还包括:
若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
3.根据权利要求1或2所述方法,其特征在于,所述获取所述关键字的位宽,还包括:
对所述关键字进行压缩;
查找所述TCAM中是否已存在与压缩后的所述关键字相同的关键字;
若TCAM中存在与压缩后的所述关键字相同的关键字,将压缩前的所述关键字的位宽确定为待存储的所述关键字的位宽;
若TCAM中不存在与压缩后的所述关键字相同的关键字,将压缩后的所述关键字的位宽确定为待存储的所述关键字的位宽。
4.一种数据查找方法,其特征在于,包括:
从报文中提取出待查找的关键字,并获取所述关键字的位宽;
从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
若所述第一标准位宽大于等于所述关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找所述关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;在TCAM中位宽等于第一标准位宽的空间中查找所述第一关键字,并将所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;在TCAM中位宽等于第二标准位宽的空间中查找所述第二关键字,获取所述第二关键字的存储地址并将所述第二关键字的存储地址作为所述第二关键字在TCAM中的索引值,其中,所述第一标准位宽等于所述第一关键字的位宽,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
根据所述关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,所述关联数据中包含有所述关键字的报文的处理信息。
5.根据权利要求4所述方法,其特征在于,在所述从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽之后,还包括:
若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
6.根据权利要求4或5所述方法,其特征在于,所述获取所述关键字的位宽之后,还包括:
对所述关键字进行压缩,将压缩后的所述关键字的位宽确定为待查找的所述关键字的位宽。
7.一种数据存储装置,其特征在于,包括:
获取模块,用于获取待存储到TCAM的关键字,并获取所述关键字的位宽;
标准位宽选择模块,用于从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
索引值确定模块,用于若所述第一标准位宽大于等于所述关键字的位宽,将所述关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述关键字的存储地址,并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
所述索引值确定模块,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字;将所述第一关键字存储到TCAM中存储位宽等于所述第一标准位宽的空间中,获取所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;将所述第二关键字存储到TCAM中存储位宽等于第二标准位宽的空间中,获取所述第一关键字的存储地址作为所述第二关键字在TCAM中的索引值;第一关键字的位宽等于所述第一标准位宽,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;
所述索引值确定模块,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
关联数据保存模块,用于将所述关键字对应的关联数据存储于存储器中,所述关联数据在所述存储器中的存储地址与所述关键字在TCAM的索引值对应,所述关联数据中包含有所述关键字的报文的处理信息。
8.根据权利要求7所述装置,其特征在于,所述标准位宽确定模块,还用于若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
9.根据权利要求7或8所述装置,其特征在于,还包括:
第一压缩模块,用于获取所述关键字的位宽后,对待存储的所述关键字进行压缩;查找所述TCAM中是否已存在与压缩后的所述关键字相同的关键字;若TCAM中存在与压缩后的所述关键字相同的关键字,将压缩前的所述关键字的位宽确定为待存储的所述关键字的位宽;若TCAM中不存在与压缩后的所述关键字相同的关键字,将压缩后的所述关键字的位宽确定为待存储的所述关键字的位宽。
10.一种数据查找装置,其特征在于,包括:
提取模块,用于从报文中提取出待查找的关键字,并获取所述关键字的位宽;
位宽选择模块,用于从TCAM的所有标准位宽中选择与所述关键字的位宽的差值最小的标准位宽为第一标准位宽;
查找模块,用于若所述第一标准位宽大于等于所述关键字的位宽,在TCAM中位宽等于第一标准位宽的空间中查找所述关键字,获取所述关键字的存储地址并将所述关键字的存储地址作为所述关键字在TCAM中的索引值;
所述位宽选择模块,还用于若所述第一标准位宽小于所述关键字的位宽,将所述关键字切割成两个关键字,分别为第一关键字和第二关键字,其中第一关键字的位宽等于所述第一标准位宽;
所述查找模块,还用于将所述关键字切割成第一关键字和第二关键字后,在TCAM中位宽等于第一标准位宽的空间中查找所述第一关键字,并将所述第一关键字的存储地址作为所述第一关键字在TCAM中的索引值;在TCAM中位宽等于第二标准位宽的空间中查找所述第二关键字,获取所述第二关键字的存储地址并将所述第二关键字的存储地址作为所述第二关键字在TCAM中的索引值,所述第二标准位宽大于等于所述第二关键字的位宽且与所述第二关键字的位宽的差值最小;
所述查找模块,还用于通过将所述第一关键字在TCAM中的索引值和所述第二关键字在TCAM的中索引值进行组合变换获得所述关键字在TCAM中的索引值,其中,所述组合变换使得所述关键字在TCAM中的索引值与其它关键字在TCAM的索引值不产生冲突;
读取模块,用于根据所述关键字在TCAM的索引值,确定与所述关键字对应的关联数据在存储器中的存储地址,根据所述关联数据在存储器中的存储地址读取出所述关联数据,所述关联数据中包含有所述关键字的报文的处理信息。
11.根据权利要求10所述装置,其特征在于,所述位宽选择模块,还用于若所有标准位宽中有两个标准位宽与所述关键字的位宽的差值相等且最小,选择其中位宽小的标准位宽为第一标准位宽。
12.根据权利要求9或10所述装置,其特征在于,还包括:
第二压缩模块,用于获取所述关键字的位宽后,对所述关键字进行压缩,将压缩后的所述关键字的位宽确定为待查找的所述关键字的位宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210048605.9A CN102622434B (zh) | 2011-12-31 | 2012-02-28 | 数据存储方法、查找方法及装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110459396.2 | 2011-12-31 | ||
CN201110459396 | 2011-12-31 | ||
CN201210048605.9A CN102622434B (zh) | 2011-12-31 | 2012-02-28 | 数据存储方法、查找方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102622434A true CN102622434A (zh) | 2012-08-01 |
CN102622434B CN102622434B (zh) | 2014-06-25 |
Family
ID=46562353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210048605.9A Expired - Fee Related CN102622434B (zh) | 2011-12-31 | 2012-02-28 | 数据存储方法、查找方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622434B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959548A (zh) * | 2012-08-22 | 2013-03-06 | 华为技术有限公司 | 数据存储方法、查找方法及装置 |
CN104252333B (zh) * | 2013-06-26 | 2017-03-29 | 龙芯中科技术有限公司 | 带掩码位查找电路、旁路转换缓冲器、存储器及微处理器 |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、系统和方法 |
CN107506310A (zh) * | 2017-07-13 | 2017-12-22 | 北京东土军悦科技有限公司 | 一种地址查找、关键字存储方法及设备 |
CN109194665A (zh) * | 2018-09-17 | 2019-01-11 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
CN111224879A (zh) * | 2018-11-23 | 2020-06-02 | 恒为科技(上海)股份有限公司 | 一种扩展tcam位宽的方法 |
CN111597407A (zh) * | 2020-04-08 | 2020-08-28 | 北京百卓网络技术有限公司 | 一种基于tcam的关键字匹配方法、装置、设备及存储介质 |
CN112769703A (zh) * | 2021-02-09 | 2021-05-07 | 芯河半导体科技(无锡)有限公司 | 一种高效的基于sram的tcam实现方法 |
WO2023273858A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | 表项存储系统、方法、资源管理单元及存储介质 |
CN116721684A (zh) * | 2023-08-11 | 2023-09-08 | 深圳云豹智能有限公司 | 三态内容寻址存储器及其寻址方法、芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175228A (zh) * | 2006-11-03 | 2008-05-07 | 中兴通讯股份有限公司 | 一种在智能网中支持变长数据结构的实现方法 |
US7650345B2 (en) * | 2005-02-28 | 2010-01-19 | Microsoft Corporation | Entity lookup system |
CN101794304A (zh) * | 2010-02-10 | 2010-08-04 | 深圳先进技术研究院 | 行业信息服务系统及方法 |
-
2012
- 2012-02-28 CN CN201210048605.9A patent/CN102622434B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650345B2 (en) * | 2005-02-28 | 2010-01-19 | Microsoft Corporation | Entity lookup system |
CN101175228A (zh) * | 2006-11-03 | 2008-05-07 | 中兴通讯股份有限公司 | 一种在智能网中支持变长数据结构的实现方法 |
CN101794304A (zh) * | 2010-02-10 | 2010-08-04 | 深圳先进技术研究院 | 行业信息服务系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014029084A1 (zh) * | 2012-08-22 | 2014-02-27 | 华为技术有限公司 | 数据存储方法、查找方法及装置 |
CN102959548B (zh) * | 2012-08-22 | 2015-12-09 | 华为技术有限公司 | 数据存储方法、查找方法及装置 |
CN102959548A (zh) * | 2012-08-22 | 2013-03-06 | 华为技术有限公司 | 数据存储方法、查找方法及装置 |
CN104252333B (zh) * | 2013-06-26 | 2017-03-29 | 龙芯中科技术有限公司 | 带掩码位查找电路、旁路转换缓冲器、存储器及微处理器 |
CN107342948B (zh) * | 2017-06-09 | 2019-08-13 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、系统和方法 |
CN107342948A (zh) * | 2017-06-09 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种基于tcam的数据流识别处理装置、系统和方法 |
CN107506310B (zh) * | 2017-07-13 | 2020-04-24 | 北京东土军悦科技有限公司 | 一种地址查找、关键字存储方法及设备 |
CN107506310A (zh) * | 2017-07-13 | 2017-12-22 | 北京东土军悦科技有限公司 | 一种地址查找、关键字存储方法及设备 |
CN109194665A (zh) * | 2018-09-17 | 2019-01-11 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
CN109194665B (zh) * | 2018-09-17 | 2020-10-20 | 盛科网络(苏州)有限公司 | 一种报文查找键值的生成方法及装置 |
CN111224879A (zh) * | 2018-11-23 | 2020-06-02 | 恒为科技(上海)股份有限公司 | 一种扩展tcam位宽的方法 |
CN111597407A (zh) * | 2020-04-08 | 2020-08-28 | 北京百卓网络技术有限公司 | 一种基于tcam的关键字匹配方法、装置、设备及存储介质 |
CN112769703A (zh) * | 2021-02-09 | 2021-05-07 | 芯河半导体科技(无锡)有限公司 | 一种高效的基于sram的tcam实现方法 |
WO2023273858A1 (zh) * | 2021-06-30 | 2023-01-05 | 中兴通讯股份有限公司 | 表项存储系统、方法、资源管理单元及存储介质 |
CN116721684A (zh) * | 2023-08-11 | 2023-09-08 | 深圳云豹智能有限公司 | 三态内容寻址存储器及其寻址方法、芯片 |
CN116721684B (zh) * | 2023-08-11 | 2023-12-01 | 深圳云豹智能有限公司 | 三态内容寻址存储器及其寻址方法、芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN102622434B (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622434B (zh) | 数据存储方法、查找方法及装置 | |
CN100468402C (zh) | 一种数据存储及查询方法 | |
CN104794123B (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
CN101782922B (zh) | 一种面向海量数据检索的多级桶哈希索引方法 | |
US20070124277A1 (en) | Index and Method for Extending and Querying Index | |
CN110276002A (zh) | 搜索应用数据处理方法、装置、计算机设备和存储介质 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN102024047B (zh) | 数据检索方法及装置 | |
CN101840400A (zh) | 一种多级分类检索方法及系统 | |
CN110825733B (zh) | 一种面向多采样流的时间序列数据管理方法及系统 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN104765754A (zh) | 数据存储方法及装置 | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
CN102542041A (zh) | 栅格数据处理方法及系统 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN105912696A (zh) | 一种基于对数归并的dns索引创建方法及查询方法 | |
CN100383787C (zh) | 一种数据库多表信息初始化方法 | |
CN101833511A (zh) | 数据管理方法、装置和系统 | |
CN102169497A (zh) | 一种通过位图方式管理元数据的方法及装置 | |
CN110990340A (zh) | 一种大数据多层次存储架构 | |
JP2006092503A (ja) | マルチインスタンス・インメモリ・データベース | |
CN101515253A (zh) | 将文件写入存储介质与从存储介质读取文件的装置及方法 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River Applicant after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd. Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River Applicant before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140625 |