CN108287946A - 一种tcam查找方法及装置 - Google Patents
一种tcam查找方法及装置 Download PDFInfo
- Publication number
- CN108287946A CN108287946A CN201711486018.7A CN201711486018A CN108287946A CN 108287946 A CN108287946 A CN 108287946A CN 201711486018 A CN201711486018 A CN 201711486018A CN 108287946 A CN108287946 A CN 108287946A
- Authority
- CN
- China
- Prior art keywords
- data
- data slot
- slot
- list item
- slice
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种TCAM查找方法及装置,方法包括将TCAM中每一个表项数据均分割成N个第一数据片段;将待查找数据分割成N个第二数据片段,且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应;N个第二数据片段与TCAM中第一个表项的N个第一数据片段一一进行匹配,若当前第二数据片段与第一数据片段不匹配,则以后的第二数据片段停止匹配并进行下一个表项数据片段的匹配。本发明能够提高TCAM查找效率,适用于数据位宽较大、表项数量较多的TCAM的验证。
Description
技术领域
本发明涉及一种集成电路设计技术领域,尤其是涉及一种提高TCAM验证效率的TCAM查找方法及装置。
背景技术
TCAM(Ternary content addressable memory,三态内容寻址存储器),能够满足高速实时通信的极速查找需求,查找速度快,每个周期即可完成一次查找,常用于快速查找ACL、路由等表项。
在集成电路设计过程中,对于高速实时通信的应用要求,通常选择TCAM查找技术。若TCAM查找模块出现缺陷会导致查找结果错误,从而影响芯片的功能,因此,对带有TCAM模块的芯片进行验证非常重要。
现有的TCAM验证技术中,常使用真值表直接对TCAM中每个表项中的每个比特位进行查找。随着集成电路的快速发展,TCAM的查找数据位宽越来越大,表项数量越来越多,采用上述方式验证时消耗大量的时间成本,验证效率低,因此该验证方式不适用于数据位宽较大、表项数据量较多的TCAM模块。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种查找效率高、适用于验证数据位宽较大、表项数量较多的TCAM模块的TCAM查找方法及装置。
为实现上述目的,本发明提出如下技术方案:一种TCAM查找方法,包括如下步骤:
S1,将TCAM中每一个表项数据均分割成N个第一数据片段;
S2,将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应;
S3,将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配。
优选地,每个第一数据片段的数据位宽均相同。
优选地,在步骤S3中,还通过设置标志位用于标识的查找表项中第m个第二数据片段与第一数据片段是否匹配。
优选地,所述查找的表项中第m+1个第二数据片段与第一数据片段匹配之前先查看标志位的值。
优选地,所述标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示表示查找的表项中第m个第二数据片段与第一数据片段不匹配。
一种TCAM查找装置,包括
第一数据分段模块,用于将TCAM中每一个表项数据均分割成N个第一数据片段;
第二数据分段模块,用于将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应;以及
数据匹配模块,用于将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配。
优选地,每个第一数据片段的数据位宽均相同。
优选地,所述数据匹配模块还通过设置标志位用于标识查找的表项中第m个第二数据片段与第一数据片段是否匹配。
优选地,所述查找的表项中第m+1个第二数据片段与第一数据片段匹配之前先查看标志位的值。
优选地,所述标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示查找的表项中第m个第二数据片段与第一数据片段不匹配。
本发明的有益效果是:
与现有技术相比,本发明所述的TCAM查找方法及装置,通过将TCAM表项数据分割成N个第一数据片段,将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),并按照Slice(0)~Slice(n-1)的顺序与TCAM中第一个表项的N个第一数据片段进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配,减少了匹配的次数,进而提高了TCAM的查找效率。
附图说明
图1是本发明的方法流程图示意图;
图2是本发明的TCAM表项数据分段示意图;
图3是本发明的结构框图示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)查找方法,能够提高TCAM查找效率,尤其适用于数据位宽较大、表项数量较多的TCAM的验证。
如图1所示,一种TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)查找方法,包括如下步骤:
S1,将TCAM中每一个表项数据均分割成N个第一数据片段。
具体的,TCAM常用于查找ACL(Access Control List,访问控制列表)、路由表项等,其包括若干个表项,每个表项中存储了一定数据位宽的数据。进一步地,为了实现TCAM快速查找,首先将每个表项数据分割成N个第一数据片段。优选地,每个第一数据片段的数据位宽均相同,实施时,以每个第一数据片段的数据位宽是8位最佳。当然,每个第一数据片段的数据位宽也可以不同。
S2,将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应。
具体的,TCAM在进行查找时,待查找数据的数据位宽与TCAM中表项中的数据位宽相同。因此,将待查找数据同样分割成N个第二数据片段,并使N个第一数据片段与N个第二数据片段的数据位宽一一对应,N个第二数据片段记为Slice(0)~Slice(n-1),其中,Slice(0)表示第一个第二数据片段,依次类推,Slice(n-1)表示第n个第二数据片段。
如图2所示,本实施例中以包含256个表项,每个表项的数据位宽为320位的TCAM为例对如何进行数据分段进行详细的说明:
首先,将TCAM中每个表项中的数据分割成40个第一数据片段,其中,第一个第一数据片段的数据位宽为4位,第二个第一数据片段的数据位宽为4位,第三个第一数据片段的数据位宽为8位,第四个第一数据片段的数据位宽为16位,从第五个第一数据片段至第四十个第一数据片段的数据位宽均为8位。
其次,待查找数据的数据位宽同样为320位,将其分成40个第二数据片段,并且40个第二数据片段需要与40个第一数据片段的数据位宽一一对应,因此,在40个第二数据片段中,第一个第二数据片段的数据位宽为4位,第二个第二数据片段的数据位宽为4位,第三个第二数据片段的数据位宽为8为,第四个第二数据片段的数据位宽为16位,从第五个第二数据片段至第四十个第二数据片段的数据位宽均为8位。
当然,也可以对待查找数据和表项数据进行均分,如每个第一数据片段和第二数据片段的数据位宽均为8位。
S3,将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配,其中,0≤m≤n-1,m、n为自然数。
具体的,在数据匹配过程中,按照Slice(0)~Slice(n-1)的顺序以数据片段为单位进行一一匹配,即第一个第二数据片段与第一个表项中的第一个第一数据片段进行匹配,第二个第二数据片段与第一个表项中的第二个第一数据片段进行匹配,以此类推,第N个第二数据片段与第一表项中的第N个第一数据片段进行匹配。若第m个第二数据片段与第一数据片段在匹配的过程中存在匹配的情形,则继续第m+1个第二数据片段的匹配,直到第N个第二数据片段与第一表项中的第N个第一数据片段完成匹配;若第m个第二数据片段与第一数据片段在匹配过程中存在不匹配的情形,表示待查找数据与第一个表项中的数据不相匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配,将带查找数据与下一个表项中的数据进行匹配。
待查找数据与第二个表项进行匹配时,第一个第二数据片段与第二个表项中的第一个第一数据片段进行匹配,第二个第二数据片段与第一个表项中的第二个第一数据片段进行匹配,以此类推,第N个第二数据片段与第一表项中的第N个第一数据片段进行匹配。同样的,若第m个第二数据片段与第一数据片段在匹配的过程中存在匹配的情形,则继续第m+1个第二数据片段的匹配,直到第N个第二数据片段与第二表项中的第N个第一数据片段完成匹配;若第m个第二数据片段与第一数据片段在匹配过程中存在不匹配的情形,表示待查找数据与第二个表项中的数据不相匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配,将带查找数据与下一个表项中的数据进行匹配。
以此类推,直到查找到与待查找数据相匹配的表项。
在步骤S3中,第m个第二数据片段与第一数据片段匹配时是以数据片段中的每个数据进行一一匹配的。
在上述数据片段匹配的过程中,若第一个第二数据片段与待查找表项中的第一个第一数据片段不匹配,则从第二数据片段开始无需再对该表项中的数据片段进行匹配,进而节约了N-1次查找。若第m个第二数据片段与待查找表项中的第m个第一数据片段不匹配,则可以节约N-m次查找。
与现有技术相比,本发明所述的TCAM查找方法可以进一步提高查找效率。
进一步地,在第二数据片段与第一数据片段匹配过程中,还通过设置标志位,用于标识查找的表项中第m个第二数据片段与第一数据片段是否匹配。标志位的数据可根据表项的数据进行设置,如有256个表项,则可以设置256个标志位。本实施例中,当标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示查找的表项中第m个第二数据片段与第一数据片段不匹配。在第m+1个第二数据片段与第一数据片段匹配时首先要查看当前标志位的值,若为1,则无需在进行匹配,直接进行下一个表项的匹配,若为0,则继续匹配该表项。
如图3所示,一种TCAM查找装置,包括第一数据分段模块、第二数据分段模块,以及数据匹配模块。其中,第一数据分段模块用于将TCAM中每一个表项数据均分割成N个第一数据片段;第二数据分段模块用于将待查找数据分割成N个第二数据片段,记为Slice(0)~Slice(n-1),并且N个第二数据片段的数据位宽与第一数据片段的数据位宽一一对应;数据匹配模块用于将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项数据片段的匹配。
优选地,每个第一数据片段的数据位宽均相同,实施时,以每个第一数据片段的数据位宽是8位最佳。当然,每个第一数据片段的数据位宽也可以不同。
进一步地,按照Slice(0)~Slice(n-1)的顺序一一进行数据片段匹配时,第m个第二数据片段与第一数据片段匹配时是以数据片段中的每个数据进行一一匹配的。数据匹配模块还通过设置标志位用于标识查找的表项中第m个第二数据片段与第一数据片段是否匹配。当标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示查找的表项中第m个第二数据片段与第一数据片段不匹配。在第m+1个第二数据片段与第一数据片段匹配时首先要查看当前标志位的值,若为1,则无需在进行匹配,直接进行下一个表项中数据片段的匹配,若为0,则继续匹配该表项。
本发明中通过将每个表项中的数据分割成N个数据片段,以数据片段为单位进行匹配,若当前数据片段不匹配,则后续数据片段不再进行匹配,节省了匹配次数,提高TCAM查找效率。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种TCAM查找方法,其特征在于,包括如下步骤:
S1,将TCAM中每一个表项数据均分割成N个第一数据片段;
S2,将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应;
S3,将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配,其中,0≤m≤n-1,m、n为自然数。
2.根据权利要求1所述的方法,其特征在于,每个第一数据片段的数据位宽均相同。
3.根据权利要求1所述的方法,其特征在于,在步骤S3中,还通过设置标志位用于标识查找的表项中第m个第二数据片段与第一数据片段是否匹配。
4.根据权利要求3所述的方法,其特征在于,所述查找的表项中第m+1个第二数据片段与第一数据片段匹配之前先查看标志位的值。
5.根据权利要求4所述的方法,其特征在于,所述标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示查找的表项中第m个第二数据片段与第一数据片段不匹配。
6.一种TCAM查找装置,其特征在于,包括
第一数据分段模块,用于将TCAM中每一个表项数据均分割成N个第一数据片段;
第二数据分段模块,用于将待查找数据分割成N个第二数据片段:Slice(0)~Slice(n-1),且N个第二数据片段的数据位宽与N个第一数据片段的数据位宽一一对应;以及
数据匹配模块,用于将N个第二数据片段与TCAM中第一个表项的N个第一数据片段按照Slice(0)~Slice(n-1)的顺序一一进行匹配,若第m个第二数据片段与第一数据片段不匹配,则Slice(m)~Slice(n-1)的数据片段停止匹配并进行下一个表项中数据片段的匹配。
7.根据权利要求6所述的装置,其特征在于,每个第一数据片段的数据位宽均相同。
8.根据权利要求6所述的装置,其特征在于,所述数据匹配模块还通过设置标志位用于标识查找的表项中第m个第二数据片段与第一数据片段是否匹配。
9.根据权利要求8所述的装置,其特征在于,所述查找的表项中第m+1个第二数据片段与第一数据片段匹配之前先查看标志位的值。
10.根据权利要求9所述的装置,其特征在于,所述标志位的值为0时,表示查找的表项中第m个第二数据片段与第一数据片段匹配,为1时,表示查找的表项中第m个第二数据片段与第一数据片段不匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486018.7A CN108287946A (zh) | 2017-12-30 | 2017-12-30 | 一种tcam查找方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486018.7A CN108287946A (zh) | 2017-12-30 | 2017-12-30 | 一种tcam查找方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108287946A true CN108287946A (zh) | 2018-07-17 |
Family
ID=62831949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711486018.7A Withdrawn CN108287946A (zh) | 2017-12-30 | 2017-12-30 | 一种tcam查找方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108287946A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039215A (zh) * | 2006-08-10 | 2007-09-19 | 华为技术有限公司 | 一种维护三态内容可寻址存储器表项的方法和系统 |
CN101364947A (zh) * | 2008-09-08 | 2009-02-11 | 中兴通讯股份有限公司 | 一种访问控制列表规则匹配方法及系统 |
CN101783719A (zh) * | 2010-03-18 | 2010-07-21 | 华为技术有限公司 | 一种速率匹配和解速率匹配方法、装置和通信系统 |
CN104901947A (zh) * | 2015-04-13 | 2015-09-09 | 国家计算机网络与信息安全管理中心 | 一种基于tcam连续数值匹配方法和装置 |
WO2017052125A1 (ko) * | 2015-09-23 | 2017-03-30 | 한양대학교 에리카산학협력단 | 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템 |
-
2017
- 2017-12-30 CN CN201711486018.7A patent/CN108287946A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039215A (zh) * | 2006-08-10 | 2007-09-19 | 华为技术有限公司 | 一种维护三态内容可寻址存储器表项的方法和系统 |
CN101364947A (zh) * | 2008-09-08 | 2009-02-11 | 中兴通讯股份有限公司 | 一种访问控制列表规则匹配方法及系统 |
CN101783719A (zh) * | 2010-03-18 | 2010-07-21 | 华为技术有限公司 | 一种速率匹配和解速率匹配方法、装置和通信系统 |
CN104901947A (zh) * | 2015-04-13 | 2015-09-09 | 国家计算机网络与信息安全管理中心 | 一种基于tcam连续数值匹配方法和装置 |
WO2017052125A1 (ko) * | 2015-09-23 | 2017-03-30 | 한양대학교 에리카산학협력단 | 비트 수를 증가시킨 sram 기반 tcam의 동작 방법 및 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019647B (zh) | 一种关键词搜索方法、装置和搜索引擎 | |
CN106056003A (zh) | 用于生成识别密钥的装置 | |
CN105224708B (zh) | 集成电路中网路的确定方法和装置 | |
CN105827530B (zh) | 一种兼容ipv4/ipv6的ip二分查找方法及装置 | |
US8966167B1 (en) | Content search system having multiple pipelines | |
US10957391B2 (en) | Array organization and architecture to perform range-match operations with content addressable memory (CAM) circuits | |
CN107818151A (zh) | 数据查找方法、装置、计算机设备和存储介质 | |
US10490242B2 (en) | Apparatus and method of clock shaping for memory | |
CN106202028A (zh) | 一种地址信息识别方法及装置 | |
CN107506310A (zh) | 一种地址查找、关键字存储方法及设备 | |
EP2492828A1 (en) | Method and apparatus for searching for data in content addressable memory | |
CN108287946A (zh) | 一种tcam查找方法及装置 | |
CN103745050A (zh) | 一种管脚映射方法和系统 | |
CN108363638A (zh) | 一种芯片内tcam存储器的纠错方法及系统 | |
US8626688B2 (en) | Pattern matching device and method using non-deterministic finite automaton | |
CN110505322A (zh) | 一种ip地址段查找方法及装置 | |
CN104012053A (zh) | 查找装置及方法 | |
US9916086B2 (en) | Content-addressable memory device | |
CN109063222B (zh) | 一种基于大数据的自适应数据搜索方法 | |
CN109325149A (zh) | Xml报文检索方法及装置 | |
CN112925753A (zh) | 文件追加写入方法、装置、电子设备及存储介质 | |
CN106934631A (zh) | 名称数据处理方法及装置 | |
WO2020191668A1 (en) | Proposal processing method and related products | |
US20150012904A1 (en) | System and method for setting electrical specification of signal transmission line | |
CN104952484A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180717 |