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

一种TCAM检测方法、装置及存储介质

文献发布时间:2023-06-19 18:37:28


一种TCAM检测方法、装置及存储介质

技术领域

本发明是关于TCAM检测技术领域,特别是关于一种TCAM检测方法及实现该方法的装置和存储介质。

背景技术

TCAM是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。其是从CAM的基础上发展而来的。一般的CAM存储器中每个比特位的状态只有0或1两个,而在TCAM中每个比特位有三种状态,除了0和1外,还有一个不关心(don’t care)状态,所以称为三态。

TCAM是一类特殊的存储器,传统的存储器都是根据地址读出内容,例如静态存储器(SRAM)和动态存取器(DRAM),而TCAM是根据存储的内容得到对应的地址。实施时,输入一个数据(称为查找内容或者查找关键字),TCAM内部将查找关键字和其内所存储的条目作并行比较,然后把匹配的地址输出,若有多个条目都与查找关键字匹配,则输出最小的地址。

TCAM支持精确查找和模糊匹配,TCAM的基本单元由一个数据部分(data)和一个掩码部分(mask)构成。掩码决定数据的哪部分需要参与比较,哪部分不参与比较。我们可以通过配置不同的掩码来实现精确查找和模糊匹配。每条TCAM占用的大小为80bits,160bits,320bits,640bits。每80bits(一个最小TCAM条目)有一个valid(有效)比特来表示这条TCAM是否有效,只有在有效的情况下,才参与TCAM查找。通过data和mask的组合可实现三态,即每一个bit可以是0,1或者X(不关心)。

虽然TCAM相较于SRAM和DRAM存储器查找速度快,但TCAM更为昂贵。其在实际应用时,由于前期检测机制存在异常,导致部分TCAM异常而没有检测出来,或者TCAM在芯片使用过程中,部分TCAM条目失效,导致整个TCAM芯片无法继续使用,最终会造成资源浪费。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种TCAM检测方法、装置及存储介质,其能够针对TCAM中的条目进行检测,以检测相应条目是否损坏,并且在检测到损坏时基于TCAM内部存在的地址映射表,将损坏的条目地址映射到没有损坏的条目地址上,进而有效提高TCAM利用率。

为实现上述目的,本发明的实施例提供了一种TCAM检测方法,所述TCAM检测方法包括:

对每个TCAM条目配置若干个检测数据,若干个所述检测数据通过配置TCAM条目的每个比特位形成,且在配置时每个比特位都被配置过1或者0;

对每个TCAM条目的每个检测数据配置若干个查找关键字,若干个所述查找关键字至少包括可命中相应条目的第一查找关键字和非命中相应条目的第二查找关键字;

依次对每个TCAM条目利用其对应的若干个所述查找关键字进行TCAM查找;

响应于查找结果为查找失败,则基于芯片内部存在的地址映射表,将损坏的TCAM条目地址映射到没有损坏的条目地址上。

在本发明的一个或多个实施方式中,所述检测数据包括数据检测部分和掩码检测部分,所述第一查找关键字由数据检测部分与掩码检测部分逻辑操作形成。

在本发明的一个或多个实施方式中,所述第一查找关键字由数据检测部分与掩码检测部分逻辑与操作形成。

在本发明的一个或多个实施方式中,所述第二查找关键字由第一查找关键字进行取反操作获得。

在本发明的一个或多个实施方式中,所述查找关键字还包括第三查找关键字,在数据检测部分全为0时,所述第三查找关键字为从最低比特位开始单个比特位为1且每次查找之后左移1位。

在本发明的一个或多个实施方式中,所述查找关键字还包括第四查找关键字,在数据检测部分全为1时,所述第四查找关键字为从最低比特位开始单个比特位为0且每次查找之后左移1位。

在本发明的一个或多个实施方式中,所述查找失败选自如下中的一种:

期望能查到,实际可查到,但查找结果输出的地址与预期不符、

期望能查到,实际没有查到、

期望查不到,实际查到。

本发明还提供了一种TCAM检测装置,所述TCAM检测装置包括:

第一配置模块,用于对TCAM中的每个条目配置若干个检测数据,若干个所述检测数据通过配置TCAM条目的每个比特位形成,且在配置时每个比特位都被配置过1或者0;

第二配置模块,用于对每个条目的每个检测数据配置若干个查找关键字,若干个所述查找关键字至少包括期望查找到相应条目且输出地址为期望地址的第一查找关键字和期望不查找到相应条目的第二查找关键字;

查找模块,用于依次对每个TCAM条目利用其对应的若干个所述查找关键字进行TCAM查找;

映射模块,用于响应于查找结果为查找失败,则基于芯片内部存在的地址映射表,将损坏的TCAM条目地址映射到无损坏的条目地址上。

本发明还提供了一种TCAM检测装置,所述TCAM检测装置包括:

至少一个处理器;

至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器并且存储用于由所述至少一个处理器执行的计算机程序,所述计算机程序由所述至少一个处理器执行时,使得所述电子设备执行上述所述的方法。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被机器执行时实现上述所述的方法。

与现有技术相比,本发明能够针对TCAM中的条目进行检测,以检测相应条目是否损坏,并且在检测到损坏时基于TCAM内部存在的地址映射表,将损坏的条目地址映射到没有损坏的条目地址上,进而有效提高TCAM利用率。

附图说明

图1是根据本发明一实施方式的TCAM检测方法流程图;

图2是根据本发明一实施方式的TCAM检测流程图;

图3是TCAM不存在损坏的示意图;

图4是TCAM存在损坏的示意图;

图5是根据本发明一实施方式的TCAM检测装置结构框图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

结合图1和图2所示,根据本发明优选实施方式的一种TCAM检测方法,能够针对TCAM中的条目进行检测,以检测相应条目是否损坏,并且在检测到损坏时基于TCAM内部存在的地址映射表,将损坏的条目地址映射到没有损坏的条目地址上,进而有效提高TCAM利用率。

具体地,TCAM检测方法包括如下步骤:

首先,对TCAM中的每个条目配置若干个检测数据,若干个所述检测数据通过配置TCAM条目的每个比特位形成,且在配置时每个比特位都被配置过1或者0;

具体地,为了检测TCAM中的每个条目是否存在损坏。首先针对每个条目配置检测数据,该检测数据可用于检测条目是否损坏。由于在TCAM中,每个条目均包括数据部分(Data)、掩码部分(Mask)和值(Valid)部分,因而,在配置检测数据时,所配置的检测数据需覆盖到条目的数据部分、掩码部分和值部分,以提高检测的准确性。这里的检测数据包括数据检测部分、掩码检测部分和值检测部分。实施时,该检测数据可通过配置条目的每个比特位形成,即针对条目的每个比特位,对其进行赋值处理,如赋0或者赋1处理,如针对数据部分的每个比特位进行赋值处理,形成检测数据中的数据检测部分;针对掩码部分的每个比特位进行赋值处理,形成检测数据中的掩码检测部分;针对值部分的每个比特位进行赋值处理,形成检测数据中的值检测部分。

进一步地,在配置时,针对每个比特位,其都要被配置过0或者1,也就是说,检测数据需要覆盖到每个比特位赋0或者赋1的情况,以提高检测的准确性。以下以针对可输出地址0的TCAM条目进行配置检测数据为例,进行详细地说明。在配置检测数据时,针对数据部分(Data)可从全为0、全为0xF、全为0x5、全为0xA中进行选择,而掩码部分可根据实际需求进行配置,如配置为全为0xF或者配置为全为0x5等等;值部分可根据实际需求配置0或者1。共配置了9种不同的检测数据,如下表所示:

其次,对每个条目的每个检测数据配置若干个查找关键字,若干个所述查找关键字至少包括期望查找到相应条目且输出地址为期望地址的第一查找关键字和期望不查找到相应条目的第二查找关键字。

具体地,当针对每个条目配置完检测数据后,进一步针对每个检测数据配置若干个查找关键字(Key),以根据实际需求选择是否利用相应查找关键字命中条目,这里的命中即为查找到相关条目。这里的查找关键字至少包括第一查找关键字和第二查找关键字,其中,第一查找关键字为期望查找到相应条目且输出地址为期望地址的关键字,第二查找关键字为期望不查找到相应条目的关键字。

实施时,第一查找关键字可通过将数据检测部分与掩码检测部分进行逻辑操作获得。如第一查找关键字是通过将数据检测部分与掩码检测部分逻辑与操作获得。第二查找关键字可根据实际需求进行设置,只需其无法命中相应条目即可。具体实施时,以通过将第一查找关键字进行取反操作,来获得第二查找关键字为最佳,如第一查找关键字为0x5时,将其进行取反操作后,获得的第二查找关键字为0xA。如上表所示,针对上述9种检测数据配置多个查找关键字,如针对第一个检测数据,配置第一查找关键字为0x5,期望通过该第一查找关键字可命中相应条目,且输出的地址为地址0;配置第二查找关键字为0xA,期望通过第二查找关键字不可命中相应条目。

进一步地,在为每个检测数据配置查找关键字时还需要考虑其他比特位取不同的值对当前比特位造成影响。在本实施例中,针对数据检测部分全部为0或者全部为1的情形,还可配置相应的第三查找关键字。如针对数据检测部分全为0的情形,第三查找关键字为从最低比特位开始单个比特位为1且每次查找之后左移1位。如针对数据检测部分全为1的情形,第三查找关键字为从最低比特位开始单个比特位为0且每次查找之后左移1位。如上表所示,针对第八个检测数据和第九个检测数据,分别配置第三查找关键字为从最低比特位开始单个比特位为1且每次查找之后左移1位、从最低比特位开始单个比特位为0且每次查找之后左移1位。

再次,依次对每个TCAM条目利用其对应的若干个所述查找关键字进行TCAM查找;

具体地,当针对每个条目配置好相应的检测数据和查找关键字后,进一步进行查找操作。实施时,如图所示,利用芯片提供的功能使能TCAM查找操作后,便可依次对每个TCAM条目利用其对应的若干个所述查找关键字进行TCAM查找。

最后,响应于查找结果为查找失败,则基于芯片内部存在的地址映射表,将损坏的TCAM条目地址映射到无损坏的条目地址上。

具体地,针对每个条目利用其对应的查找关键字进行TCAM查找时,查找结果通常存在两种情况,一种是查找通过的情况,一种查找失败的情况。其中,针对查找通过的情况,其包括(1)期望能够查到,实际上查到了且查找结果输出的地址和预期一致的情况,如在配置时,期望利用查找关键字0x5能够查到条目1,且输出的地址为地址0,而在进行TCAM查找时,利用查找关键字0x5命中的是条目1,且输出的地址和预期的地址一致,为地址0。(2)期望查不到,实际上未查到。

针对查找失败的情况,其包括(1)期望能够查到,实际可以查到,但是查找结果输出的地址不符合预期,如在配置时,期望利用查找关键字0x5能够查到条目1,且输出的地址为地址0,而在进行TCAM查找时,利用查找关键字0x5命中的是条目1,但输出的地址为地址1,这和预期的地址不一致。(2)期望能够查到,实际没有查到;(3)期望查不到,实际确查到。

当查找结果为查找失败时,基于芯片内部存在的地址映射表,将损坏的TCAM条目地址映射到无损坏的条目地址上,进而可提高TCAM芯片的利用率。结合图3和图4所示,图3为TCAM不存在损坏的情况,图4为TCAM存在损坏的情况。当TCAM不存在损坏的情况时,CPU传入的访问地址和芯片实际访问地址是一一映射的。当TCAM存在损坏的情况时,如通过上述TCAM检测方法检测到条目2和条目6存在损坏,TCAM芯片可通过地址映射表自动完成对损坏TCAM条目的规避,如图4所示,CPU访问TCAM条目2的地址时,因TCAM条目2损坏,经过芯片地址映射,芯片实际访问的是TCAM条目3的地址,同理CPU访问条目4对应芯片实际的条目5地址,CPU访问条目5的地址时,因TCAM条目6损坏,对应芯片实际的条目7地址,以此类推,CPU访问TCAM条目10和11时,芯片自动映射为无效地址0xFFFFFFFF。

在映射完成后,CPU可访问的TCAM条目数为有效的TCAM条目数减去损坏的TCAM条目数。

进一步地,如图2所示,当映射完成后(即TCAM隔离),进一步判断是否查找结束。在未查找结束时,可重新配置TCAM查找关键字并执行后续检测流程。在查找结束时,进一步判断TCAM条目是否完成检测,并在未完成检测时重新配置TCAM检测数据并执行后续检测流程。

本发明通过配置不同的TCAM查找关键字,并利用这些查找关键字逐一进行TCAM损坏条目的检测,当检测到TCAM损坏条目时,基于芯片内部存在地址映射表,将损坏的条目地址映射到没有损坏的条目地址上,从而有效的提高芯片利用率。

如图5所示,本发明还提供了一种TCAM检测装置,可实现上述TCAM检测方法,其包括第一配置模块、第二配置模块、查找模块和映射模块。其中,第一配置模块用于对每个TCAM条目配置若干个检测数据,若干个所述检测数据通过配置TCAM条目的每个比特位形成,且在配置时每个比特位都被配置过1或者0;第二配置模块用于对每个条目的每个检测数据配置若干个查找关键字,若干个所述查找关键字至少包括期望查找到相应条目且输出地址为期望地址的第一查找关键字和期望不查找到相应条目的第二查找关键字;查找模块用于依次对每个TCAM条目利用其对应的若干个所述查找关键字进行TCAM查找;映射模块用于响应于查找结果为查找失败,则基于芯片内部存在的地址映射表,将损坏的TCAM条目地址映射到无损坏的条目地址上。

各模块如何实现上述功能,具体详见上述,在此不再一一赘述。

本发明还提供了一种TCAM检测装置,TCAM检测装置可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动电子设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴电子设备、消费电子设备等等。该TCAM检测装置可实现上述所述的TCAM检测方法,能够针对TCAM中的条目进行检测,以检测相应条目是否损坏,并且在检测到损坏时基于TCAM内部存在的地址映射表,将损坏的条目地址映射到没有损坏的条目地址上,从而有效提高TCAM利用率。具体地,TCAM检测装置包括至少一个存储器、至少一个处理器以及计算机程序,至少一个存储器被耦合到所述至少一个处理器,其中,计算机程序存储于存储器中并可在处理器中运行,如该计算机程序为TCAM检测程序等。实施时,处理器执行该计算机程序时可实现上述TCAM检测方法中的各个步骤,如实现对每个TCAM条目配置若干个检测数据,若干个所述检测数据通过配置TCAM条目的每个比特位形成,且在配置时每个比特位都被配置过1或者0等等。

这里的计算机程序可被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器中,并由所述存储器执行,以完成本发明。其中,一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该计算机程序指令段用于描述计算机程序在所述电子设备中的执行过程。

需要说明的是,这里的电子设备包括并不限于上述所述的存储器、处理器和计算机程序,也可包括其它,如用于输入预测信息的输入设备(如键盘等)、通信接口等等,这些部件通过总线进行相互间的通信。

本发明还揭示了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,可实现上述TCAM检测方法。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、可执行文件或某些中间形式等,所述计算机可读介质可以包括能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)等等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

技术分类

06120115638155