CN101471132B - 一种内容寻址存储器查找性能测试方法及系统 - Google Patents

一种内容寻址存储器查找性能测试方法及系统 Download PDF

Info

Publication number
CN101471132B
CN101471132B CN2007103056719A CN200710305671A CN101471132B CN 101471132 B CN101471132 B CN 101471132B CN 2007103056719 A CN2007103056719 A CN 2007103056719A CN 200710305671 A CN200710305671 A CN 200710305671A CN 101471132 B CN101471132 B CN 101471132B
Authority
CN
China
Prior art keywords
call number
data
test data
test
content adressable
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.)
Expired - Fee Related
Application number
CN2007103056719A
Other languages
English (en)
Other versions
CN101471132A (zh
Inventor
李桂生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2007103056719A priority Critical patent/CN101471132B/zh
Publication of CN101471132A publication Critical patent/CN101471132A/zh
Application granted granted Critical
Publication of CN101471132B publication Critical patent/CN101471132B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明涉及CAM的技术,尤其涉及一种对CAM器件进行测试的技术。一种内容寻址存储器查找性能测试方法,其特征在于,包括如下步骤:用具有高速总线接口的器件通过内容寻址存储器的业务总线,以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据;根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能。本发明还提供了一种内容寻址存储器查找性能测试系统。由于采用了高速接口能力的可编程器件对CAM器件按照上述的查找顺序查找写入的测试数据,从而测试了CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能。

Description

一种内容寻址存储器查找性能测试方法及系统 
技术领域
本发明涉及CAM(Content Addressable Memory,内容可寻址存储器)的技术,尤其涉及一种CAM查找性能测试方法及系统。 
背景技术
现代社会和技术越来越多的依靠信息或者数据。各种数据被存储或者保存,并被访问或者检索,以及被修改或者更新。 
传统的数据存储与查询的方法主要是利用高速处理器对RAM(RandomAccess Memory,随机存取器)存储器件进行存储内容的读或写操作,并使用复杂的算法来查询存储在RAM中的信息,这种方式对处理器的速度要求很苛刻,且由于算法的原因,对于宽带网络系统几乎不可能做到实时查询。网络的查找与搜索速度至少是目前网络处理器处理速度的40倍,满足不了网络的使用需求。 
使用CAM(Content Addressable Memory,内容可寻址存储器)器件使得快速查找数据内容成为可能。通过CAM器件的级连,使网络系统能够负担40Gbps的数据流量,不仅解决了网络带宽的瓶颈问题,而且也大大地减轻了处理器的负担,在高端应用中也降低了成本。 
CAM器件除了具有与一般存储器一样的读取或保存存储内容的功能,还具有逆向查找功能,即根据给定的特定内容返回这个内容对应的地址或索引。CAM有两个显著的特点: 
1、根据给定的特定内容查找存储单元中匹配的内容,并返回该匹配内容的地址索引或者索引信息; 
2、所有存储单元硬件并行匹配查找,速度快。 
CAM的主要作用在于高速地查询数据。在一个单一的时钟周期中,整个CAM的存储空间都被同时搜索比较一次,若有匹配,则输出匹配内容的地址信息、匹配信息和其他相关信息。 
CAM的工作示意图如图1a所示,在CAM中有数据库database用以存储数据。在database中数据的存储可以是8位或者16位或者其它位数,对于每个存储的数据都有存储空间的索引号index。CAM除了可以进行完全的数据内容查找外,还可以进行部分数据内容查找。向CAM输入要查找的数据,比如二进制数据“10110XXX”,其中的“XXX”表示任意值,CAM根据输入的要查找的数据“10110XXX”在database中查找到对应存储内容“10110010”,并返回该存储内容对应的索引号4。本文用存储宽度表示CAM的数据库database中每个存储空间可以存储的数据的二进制位数;用存储深度表示CAM的数据库database中有多少个存储空间。 
CAM根据输入的要查找的数据返回索引号的查找性能直接关系到应用CAM的网络进行快速查找性能的优劣。所以,测试CAM的查找性能是保障网络的快速查找功能的前提。 
目前,在现有技术方案中,通过CPU(Central Processing Unit,中央处理器)向CAM的database写入测试数据,并逐一查找写入的测试数据,检测CAM返回的索引号是否正确。该方案对CAM的测试虽然灵活,但是由于CPU接口速度较慢,对CAM查找写入的测试数据的速度也较慢,无法测试出CAM的高速查找性能。 
如图1b所示,在现有技术中,还可以用CPU通过CAM的控制总线向CAM的database写入测试数据,再用NP(Network Processor,网络处理器)通过CAM的业务总线对CAM单元进行查找测试。其中,业务总线包括业务输入总线,业务输出总线。业务输入总线用于向CAM输入要查找的数据;业务输出总线用于CAM返回查找的数据对应的索引号。由于,NP接口速度快,可以达到CAM的线速,所以可以测试CAM高速的查找性能。CPU向CAM 的database写入测试数据的测试表项如表1所示,NP根据表1中的测试数据进行查找、验证。 
表1 
    查找顺序     索引号     测试数据
    1     0     000......000
    2     1     100......000
    3     2     110......000
    4     3     111......000
    ......     ......     ......
    N-1     N-2     111......100
    N     N-1     111......110
    N+1     N     111......111
从上表可以看出,在测试过程中,查找顺序为按照索引号从小到大的顺序,依次查找索引号对应的存储空间中的测试数据。输入的测试数据依次为000......000、100......000、110......000、......;输入的测试数据的低位在较长时钟周期内都保持低电平0,没有翻转为高电平1。输出的索引号依次为0、1、2......,输出的二进制索引号的高位在较长时钟周期内都保持为低电平0,没有翻转为高电平1。这样,CAM的业务总线或内部工作寄存器的电平也都在较长时钟周期内保持某个电平而不进行翻转。当然,对于查找顺序为按照索引号从大到小的顺序,依次查找索引号对应的存储空间中的测试数据,也会使得CAM的业务总线或内部工作寄存器的电平在较长时钟周期内保持某个电平而不进行翻转。 
本发明人发现该方案虽然可以达到线速测试CAM的目的,但是在测试方面存在较大缺陷:由于测试过程中总线或内部工作寄存器电平长时间为1或0,电平翻转强度不够,没能测试CAM的总线或内部工作寄存器电平出现翻转频繁的情况下的查找性能。而在实际情况中,往往当总线或内部工作寄存器由于输入的测试数据或者输出的索引号的bit位频繁变化,导致总线或内部工作 寄存器的电平在0、1之间不断快速跳变的时候,CAM的查找性能会急剧下降。 
所以上述现有技术的测试方法,虽然对CAM的查找性能作了一定的测试,但没能测试出CAM在高速,以及总线或内部工作寄存器的电平翻转频繁的情况下的查找性能。 
发明内容
本发明实施例提供了一种内容可寻址存储器的测试方法及系统,用以测试CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能。 
一种内容寻址存储器查找性能测试方法,包括如下步骤: 
用具有高速总线接口的器件通过内容寻址存储器的业务总线,以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据;所述非顺序排列次序为除从最小到最大或者从最大到最小之外的排列顺序; 
根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能。 
另一种内容寻址存储器查找性能测试方法,包括如下步骤: 
用具有高速总线接口的器件通过内容寻址存储器的业务总线顺序查找写入到各个索引号对应的存储空间中的非顺序测试数据; 
根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能; 
所述非顺序测试数据为不是按照从小到大或者从大到小顺序的测试数据。 
一种内容寻址存储器查找性能测试系统,包括:控制处理模块、功能测试模块、其中, 
所述控制处理模块用于通过内容寻址存储器的控制总线向所述内容寻址 存储器写入测试数据; 
所述功能测试模块用于通过内容寻址存储器的业务总线以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据,并根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能;所述功能测试模块具有高速总线接口,用于与所述业务总线相连;所述非顺序排列次序为除从最小到最大或者从最大到最小之外的排列顺序。 
本发明实施例由于采用了高速接口能力的可编程器件对CAM器件,以非顺序索引号查找写入的测试数据,使得CAM器件的业务总线在高速查找的情况下,业务总线电平翻转频繁,从而测试了CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能。 
附图说明
图1a为现有技术的CAM工作示意图; 
图1b为现有技术二的测试CAM的系统示意图; 
图2为本发明实施例的CAM测试系统示意图; 
图3为本发明实施例的CAM测试方法流程图; 
图4为本发明实施例的确定基数B的流程图; 
图5为本发明实施例的CAM测试系统结构框图。 
具体实施方式
如图2所示,本发明实施例通过控制处理模块向CAM器件写入测试数据,通过功能测试模块查找所写入的测试数据,并验证CAM器件返回的索引号是否正确,从而测试CAM器件的查找性能,测试系统具体包括: 
控制处理模块,用以通过控制总线向CAM写入测试数据,填充CAM的database存储空间。控制处理模块可以是CPU、DSP(Digital Signal Processor, 数字信号处理器)等可编程器件。 
功能测试模块,用以通过业务总线查找写入CAM的测试数据,并检查CAM返回的索引号是否正确,从而实现对CAM查找性能的测试。业务总线包括业务输入总线以及业务输出总线。业务输入总线与业务输出总线既可以是同一物理总线分时复用,也可以是不同的物理总线。具体的,功能测试模块通过业务输入总线向CAM输入要查找的测试数据,CAM通过业务输出总线将查找到的测试数据所对应的索引号输出给功能测试模块,功能测试模块检查该返回的索引号是否正确。功能测试模块可以是ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)芯片、FPGA(Field ProgrammableGate Array,现场可编程门阵列)、NP等具有高速接口能力的可编程器件。 
对于如图2所示的测试系统,本发明实施例提供了一种内容可寻址存储器的测试方法,该测试方法的流程如图3所示,包括如下具体步骤: 
步骤S301:控制处理模块为CAM的database的存储空间配置测试数据。在测试CAM之前要向CAM的database的存储空间配置测试数据,在配置了测试数据后,可多次根据配置的测试数据进行测试。 
控制处理模块为database的每一个索引号对应的存储空间配置测试数据。例如,如表2所示,为填充到database中的测试数据进行配置: 
表2 
    索引号     测试数据
    0     测试数据0
    1     测试数据1
    2     测试数据2
    ……     ……
    N-2     测试数据N-2
    N-1     测试数据N-1
    N     测试数据N
 对于database中索引号为0的存储空间配置测试数据0;为索引号为1的存储空间配置测试数据1......。 
步骤S302:控制处理模块根据配置的测试数据通过控制总线将测试数据写入CAM。 
根据配置的测试数据,将测试数据写入CAM。比如,对于表2的配置测试数据:将第0测试数据写入database中索引号为0的存储空间;测试数据1写入database中索引号为1的存储空间......;对于索引号为N的存储空间,写入测试数据N。 
步骤S303:功能测试模块通过业务总线以索引号非顺序排列次序,依次查找所有写入CAM的测试数据,检查CAM返回的索引号是否正确。 
功能测试模块通过业务总线的业务输入总线向CAM输入要查找的测试数据,为了使得业务输出总线翻转频繁,从而测试CAM的查找性能,从业务输入总线采用索引号非顺序排列次序,依次查找顺序输入要查找的测试数据,并检查CAM返回的测试数据所在存储空间对应的索引号是否正确,以返回索引号的正确率来确定CAM的查找性能。非顺序排列次序指的是除从最小到最大或者从最大到最小之外的排列顺序。 
比如可以按如下查找顺序输入要查找的测试数据: 
从最小和最大的索引号对应的存储空间中存储的测数据开始,交替向中间值的索引号存储空间中存储的测数据进行查找。 
例如,对于步骤S302中写入的测试数据,通过业务输入总线向CAM输入要查找的测试数据,输入顺序如表3所示(假设最大索引号N为255): 
表3 
  查找的测试数据 返回的索引号 二进制索引号
    测试数据0     0   00000000
    测试数据N     N   11111111
    测试数据1     1   00000001
 
  测试数据N-1     N-1     11111110
  测试数据2     2     00000010
  测试数据N-2     N-2     11111101
  ……     ……     ……
先查找索引号为0对应的存储空间存储的测试数据——测试数据0,通过业务输入总线向CAM输入测试数据0,CAM应该通过业务输出总线输出测试数据0的存储空间对应的索引号“0”;然后查找索引号为N对应的存储空间存储的测试数据——测试数据N,CAM应该通过业务输出总线输出测试数据0的存储空间对应的索引号“N”;然后是索引号1对应的测试数据1,...... 
功能测试模块检测通过业务输出总线输出的索引号是否正确。从表3的二进制索引号可以看出,通过这样的顺序进行查找,输出的相邻的二进制索引号在bit位上出现了频繁的改变,也就是说相邻的二进制索引号的bit位上的数值绝大多数都不同,所以使得连续输出索引号的业务输出总线上的电平也翻转频繁。当然,如果先查找索引号为N对应的存储空间存储的测试数据N,然后是索引号为0对应的存储空间存储的测试数据0,然后是索引号为N-1对应的存储空间存储的测试数据N-1......;同样也可以使得业务输出总线输出的索引号翻转频繁。 
对于本领域的技术人员来说还可以有多种非顺序查找的技术手段来实现使得业务输出总线输出的索引号翻转频繁的目的。比如,从中间值的索引号对应的存储空间中存储的测数据开始,向最小和最大的索引号对应的存储空间中存储的测数据交替地进行查找,也可以使得业务输出总线输出的索引号翻转频繁。还可以跳跃式的查找,比如可以以间隔d个索引号的顺序,来查找索引号对应的存储空间中的测试数据。例如,d为5时,查找输出的索引号为:0、5、10、15......,对应的二进制索引号为:0000......0000、0000......0101、0000......1010、0000......0100、......。当然该种查找顺序不如前述的几种查找顺序,使得业务总线翻转频繁。 
由于业务输出总线与功能测试模块的高速接口相连,其业务输出总线上的数据传输速度达到CAM器件的极限,此时,业务输出总线上的电平还要翻转频繁,在这种情况下,检测CAM器件返回的索引号是否正确,从而测试了CAM器件在查找速度快,以及业务总线中的业务输出总线电平翻转频繁情况下的查找性能。 
为了使得业务输入总线翻转频繁,更进一步测试CAM的查找性能,对于步骤S301中配置的测试数据,以及步骤S302中测试数据写入的方法作了进一步改进: 
对于索引号为前半部分的存储空间,如索引号为0、1、2......(N-1)/2的存储空间中配置的测试数据为:由背景数据与一变化量M确定的数据; 
对于索引号为后半部分的存储空间,如索引号为(N+1)/2......N-1、N的存储空间中配置的测试数据为:由反背景数据与一变化量M确定的数据。 
其中,反背景数据是背景数据按位取反得到的。比如,可以设置背景数据为二进制数据00000000,则反背景数据的二进制数据为11111111。当然也可设置背景数据为11111111,反背景数据为00000000。本领域技术人员可以根据实际情况选取背景数据与反背景数据。 
上述的变化量M为根据索引号的改变而改变的数据。准确地说,变化量为索引号的函数。假设索引号为n,变化量可以表示为公式1: 
M=f(n)    (1) 
其中,f(n)表示随着n改变的某种函数规则。不同的索引号,可以根据函数计算出不同的变化量。 
例如,M=f(n)可以是如下函数式,如公式2所示: 
M = n * B ; ( 0 ≤ n ≤ ( N - 1 ) / 2 ) M = ( n - N ) * B ; ( ( N + 1 ) / 2 ≤ n ≤ N ) - - - ( 2 )
其中,B为一常数,可以视为一基数。在公式中,该基数B为固定数,n则随着索引号的不同而改变,从而使得变化量M随着索引号的不同而改变。 本领域技术人员可以根据实际情况选取B的取值。例如B取值为1,背景数据取值为00000000,由背景数据与变化量M相加确定索引号为0至(N-1)/2的存储空间中配置的测试数据,由反背景数据与变化量M相加确定索引号为(N+1)/2至N的存储空间中配置的测试数据。配置的测试数据如表4所示: 
表4 
  索引号              测试数据   二进制测试数据
    0     背景数据+0*B=背景数据     00000000
    1     背景数据+1*B=背景数据+1     00000001
    2     背景数据+2*B=背景数据+2     00000010
    3     背景数据+2*B=背景数据+3     00000011
    ……     ……     ……
    N-2     反背景数据-2*B=反背景数据-2     11111101
    N-1     反背景数据-1*B=反背景数据-1     11111110
    N     反背景数据-0*B=反背景数据     11111111
对应于上述的配置测试数据的方法,步骤S302中写入测试数据的方法也类似: 
向CAM的索引号为前半部分的存储空间,如从索引号为0到N-1/2的存储空间中写入的测试数据为:由背景数据与一变化量M确定的数据; 
向CAM的索引号为后半部分的存储空间,如从索引号为N+1/2到N的存储空间中写入的测试数据为:由反背景数据与一变化量M确定的数据; 
其中,反背景数据是背景数据按位取反得到的,变化量M为根据索引号而确定的数据。 
对于上述配置与写入测试数据的方法,在按照步骤S303中的查找顺序,从最小和最大的索引号存储空间中存储的测试数据开始,交替向中间值的索引号存储空间中存储的测试数据进行查找时,可以使得功能测试模块通过业务输入总线向CAM输入要查找的测试数据,其中查找的相邻测试数据绝大多 数bit位都不同,从而使得业务输入总线在连续输入测试数据时,总线上的电平翻转频繁。 
例如对于写入CAM中的上述表4中的测试数据,按照步骤S303中的查找顺序,通过业务输入总线输入的查找测试数据如表5所示: 
表5 
查找顺序 查找的测试数据(二进制) 返回的索引号
    1     00000000     0
    2     11111111     N
    3     00000001     1
    4     11111110     N-1
    5     00000010     2
    6     11111101     N-2
    ……     ……     ……
从上表可以看出输入的测试数据,相邻的测试数据的bit位出现翻转频繁,所以使得业务输入总线在连续输入这些测试数据时,总线上的电平也翻转频繁。这样更进一步的测试了CAM器件在高速业务总线翻转频繁的情况下的查找性能。 
以上仅是介绍了一种变化量M随索引号n改变的方法,对于M=f(n)中的函数的选取,本领域技术人员还可以有多种方案。比如,可以采用公式3来确定变化量M: 
M = B < < n ; ( 0 &le; n &le; ( N - 1 ) / 2 ) M = - ( B < < n ) ( ( N + 1 ) / 2 &le; n &le; N ) - - - ( 3 )
其中,符号“<<”表示对B的二进制数作循环右移操作,右移的位数为n。 
比如当B为1,背景数据取值为00000000,由背景数据与变化量M相加确定索引号为0至(N-1)/2的存储空间中配置的测试数据,由反背景数据与 变化量M相加确定索引号为(N+1)/2至N的存储空间中配置的测试数据。写入的测试数据如表6所示: 
表6 
索引号 二进制测试数据
    0     00000000
    1     00000001
    2     00000010
    3     00000100
    ……     ……
    N-2     11111101
    N-1     11111110
    N     11111111
对于公式2或公式3中的基数B,可以取值为1,也可以是其它非零值,比如2。但是作为更优的测试方案来说,还可以根据CAM的存储宽度以及存储深度来确定基数B。 
在CAM的存储宽度较大而存储深度较小的情况下,如果基数B取值为1,虽然测试过程中输入测试数据的业务输入总线依然会翻转频繁,但是CAM的database中的存储空间中存储的数据的高bit位会一致保持0或1。所以,在这种情况下,可以按如下方法确定基数B,如图4所示,包括如下具体步骤: 
步骤S401:对于database中的单个存储空间,按bit位分为若干组。 
举例说明,对于一个存储宽度为64bit的CAM,其database中的单个存储空间为64bit,可以以8bit为一单位把64bit分成8组。对于本领域技术人员,也可以根据实际情况来划分组,比如以16bit为单位把64bit分为4组。 
步骤S402:将常数B′填入到每个所分的组中,组成基数B。 
选取常数B′,B′可以取值为1或者其它非零值。比如,B′取值为1,将B′填入到每个分组中,最后形成基数B:0x11111111(十六进制)。 
本发明实施例还提供一种内容可寻址存储器的测试系统,如图5所示,包括:控制处理模块501、功能测试模块503 
其中,控制处理模块501包括:测试数据第一存储子模块511、测试数据写入子模块512。 
功能测试模块503包括:测试数据第二存储子模块521、测试数据查找子模块522、索引号检测子模块523。 
控制处理模块501,用于通过CAM502的控制总线向CAM502写入测试数据。控制处理模块501可以是CPU、DSP等可编程器件。 
功能测试模块503,用于通过CAM502的业务总线按照一定的输入顺序向CAM502查找写入的测试数据,并检验所述业务总线返回的索引号是否正确;所述输入顺序为: 
交替的输入从两端索引号到中间值索引号对应的存储空间中存储的测试数据; 
功能测试模块503具有高速总线接口,用于与所述业务总线相连。功能测试模块可以是ASIC、FPGA、NP等具有高速接口能力的可编程器件。 
控制处理模块501的测试数据第一存储子模块511,用于存储预先配置好的测试数据。 
控制处理模块501的测试数据写入子模块512,用于根据第一存储子模块511存储的预先配置好的测试数据,通过CAM502的控制总线向CAM502写入所述测试数据。 
功能测试模块503的测试数据第二存储子模块521,用于存储与测试数据第一存储子模块511中一样的预先配置好的测试数据。 
功能测试模块503的测试数据查找子模块522,用于根据测试数据第二存储子模块521存储的测试数据,按照上述的输入顺序通过CAM502的业务总线向CAM502查找写入的测试数据。 
功能测试模块503的索引号检测子模块523,用于根据测试数据第二存储 子模块521存储的预先配置好的测试数据检验CAM502的业务总线返回的索引号是否正确。 
当然,以上介绍的方法是一种较佳的测试方法,对于本领域技术人员来说,还可以仅仅通过高速接口能力的可编程器件顺序查找写入到CAM的database存储空间的非顺序的测试数据,使得业务总线的业务输入总线电平翻转频繁,达到测试CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能的目的。 
非顺序测试数据指的是测试数据不是按照从小到大或者从大到小顺序的测试数据。比如,对于最大索引号为N的database存储空间,写入的测试数据如下表所示: 
  索引号 测试数据 二进制测试数据
    0     0     00000000
    1     N     11111111
    2     1     00000001
    3     N-1     11111110
    4     2     00000010
    ……     ……     ……
或者,对于索引号为奇数的存储空间写入的测试数据为:由背景数据与一变化量W确定的数据; 
对于索引号为偶数的存储空间写入的测试数据为:由反背景数据与一变化量W确定的数据。 
其中,反背景数据是背景数据按位取反得到的。比如,可以设置背景数据为二进制数据00000000,则反背景数据的二进制数据为11111111。当然也可设置背景数据为11111111,反背景数据为00000000。本领域技术人员可以根据实际情况选取背景数据与反背景数据。 
上述的变化量W为根据索引号的改变而改变的数据。假设索引号为n, 变化量可以表示为公式4: 
W=f(n)    (4) 
例如,W=f(n)可以是如下函数式,如公式5所示: 
Figure S2007103056719D00151
其中,B为一常数,例如,B=1,此时,奇数索引号对应的存储空间中的测试数据为背景数据与变化量W之和;偶数索引号对应的存储空间中的测试数据为反背景数据与变化量W之和。 
本发明实施例由于采用了高速接口能力的可编程器件对CAM器件,以非顺序索引号查找写入的测试数据,使得CAM器件的业务总线在高速查找的情况下,业务总线的业务输出总线电平翻转频繁,从而测试了CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能。同时,由于CAM器件输出的索引号翻转频繁,也使得CAM器件的内部单元,如内部工作寄存器和内部RAM也翻转频繁,从而还测试了内部单元的极限翻转性能。 
本发明实施例由于采用如下的写入测试数据的方法: 
向CAM的索引号为前半部分的存储空间,如从索引号为0到(N-1)/2的存储空间中写入的测试数据为由背景数据与一变化量M确定的数据; 
向CAM的索引号为后半部分的存储空间,如从索引号为(N+1)/2到N的存储空间中写入的测试数据为由反背景数据与一变化量M确定的数据; 
其中,反背景数据是背景数据按位取反得到的,变化量M为根据索引号而确定的数据。 
并配合上述查找测试数据的方法查找测试数据,使得CAM器件的业务总线在高速查找的情况下,业务总线的业务输入总线电平翻转频繁,从而更进一步测试了CAM在查找速度快且业务总线电平翻转频繁情况下的查找性能。同时,由于CAM器件输入的测试数据翻转频繁,也使得CAM器件的内部单元,如内部工作寄存器和内部RAM也翻转频繁,从而还测试了内部单元的极 限翻转性能。 
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。 
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。 

Claims (16)

1.一种内容寻址存储器查找性能测试方法,其特征在于,包括如下步骤:
用具有高速总线接口的器件通过内容寻址存储器的业务总线,以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据;所述非顺序排列次序为除从最小到最大或者从最大到最小之外的排列顺序;
根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能。
2.如权利要求1所述的方法,其特征在于,所述以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据的方法,包括:
从最大值和最小值索引号开始,交替的向中间值索引号对应的存储空间中存储的测试数据进行查找。
3.如权利要求1所述的方法,其特征在于,所述以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据的方法,包括:
从中间值索引号开始,交替的向最大值和最小值索引号对应的存储空间中存储的测试数据进行查找。
4.如权利要求1至3任一所述的方法,所述内容寻址存储器的存储空间最大索引号为N,其特征在于,所述写入到所述内容寻址存储器的各个存储空间的测试数据为:
索引号0至(N-1)/2对应的存储空间中的测试数据由第一数据与变化量M确定;
索引号(N+1)/2至N对应的存储空间中的测试数据由第二数据与变化量M确定;
所述第二数据为所述第一数据按bit位取反;所述变化量M根据索引号确定。
5.如权利要求4所述的方法,其特征在于,
所述第一数据为0;或者所述第二数据为0。
6.如权利要求4所述的方法,其特征在于,所述变化量M根据索引号确定的方法,如公式所示:
M = n * B ; ( 0 &le; n &le; ( N - 1 ) / 2 ) M = ( n - N ) * B ; ( ( N + 1 ) / 2 &le; n &le; N )
其中,B为一常数,n为索引号;以及,
索引号0至(N-1)/2对应的存储空间中的测试数据为:第一数据与变化量M之和;
索引号(N+1)/2至N对应的存储空间中的测试数据为:第二数据与变化量M之和。
7.如权利要求4所述的方法,其特征在于,所述变化量M根据索引号确定的方法,如公式所示:
M = B < < n ; ( 0 &le; n &le; ( N - 1 ) / 2 ) M = - ( B < < n ) ; ( ( N + 1 ) / 2 &le; n &le; N )
其中,B为一常数,n为索引号;以及,
索引号0至(N-1)/2对应的存储空间中的测试数据为:第一数据与变化量M之和;
索引号(N+1)/2至N对应的存储空间中的测试数据为:第二数据与变化量M之和。
8.如权利要求6或7所述的方法,其特征在于,所述常数B为1或者其它非零整数。
9.如权利要求6或7所述的方法,其特征在于,所述常数B的确定方法包括:
根据所述内容寻址存储器的存储宽度以及存储深度确定常数B。
10.如权利要求9所述的方法,所述存储宽度表征的是所述内容寻址存储器中单个存储空间存储数据的二进制位数,其特征在于,所述根据所述内容寻址存储器的存储宽度以及存储深度确定常数B的方法,包括:
将所述单个存储空间存储数据的二进制位数,按bit位分为若干组;
将一数据B′分别写入到每个组中,组成常数B;所述数据B′为1或者其它非零整数。
11.一种内容寻址存储器查找性能测试方法,其特征在于,包括如下步骤:
用具有高速总线接口的器件通过内容寻址存储器的业务总线顺序查找写入到各个索引号对应的存储空间中的非顺序测试数据;
根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能;
所述非顺序测试数据为不是按照从小到大或者从大到小顺序的测试数据。
12.如权利要求11所述的方法,其特征在于,所述写入到各个索引号对应的存储空间中的非顺序测试数据为:
奇数索引号对应的存储空间中的测试数据由第三数据与变化量W确定;
偶数索引号对应的存储空间中的测试数据由第四数据与变化量W确定;
所述第四数据为所述第三数据按bit位取反;所述变化量W根据索引号确定。
13.如权利要求12所述的方法,其特征在于,所述变化量W根据索引号确定的方法,如公式所示:
Figure FSB00000252718900031
其中,B为一常数,n为索引号;以及,
奇数索引号对应的存储空间中的测试数据为第三数据与变化量W之和;
偶数索引号对应的存储空间中的测试数据为第四数据与变化量W之和。
14.一种内容寻址存储器查找性能测试系统,包括:控制处理模块、功能测试模块,其特征在于,
所述控制处理模块用于通过内容寻址存储器的控制总线向所述内容寻址存储器写入测试数据;
所述功能测试模块用于通过内容寻址存储器的业务总线以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据,并根据所述业务总线返回的所述测试数据所在存储空间对应的索引号的正确率确定所述内容寻址存储器的查找性能;所述功能测试模块具有高速总线接口,用于与所述业务总线相连;所述非顺序排列次序为除从最小到最大或者从最大到最小之外的排列顺序。
15.如权利要求14所述的系统,其特征在于,所述控制处理模块包括:
测试数据第一存储子模块,用于存储预先配置好的测试数据;
测试数据写入子模块,用于根据所述测试数据第一存储子模块存储的预先配置好的测试数据,通过所述内容寻址存储器的控制总线向内容寻址存储器写入所述测试数据。
16.如权利要求14所述的系统,其特征在于,所述功能测试模块包括:
测试数据第二存储子模块,用于存储预先配置好的测试数据;
测试数据查找子模块,用于根据所述测试数据第二存储子模块存储的预先配置好的测试数据,通过内容寻址存储器的业务总线以所述内容寻址存储器中各存储空间索引号的非顺序排列次序,依次查找写入到各个索引号对应的存储空间中的测试数据;
索引号检测子模块,用于根据所述测试数据第二存储子模块存储的预先配置好的测试数据,检验所述业务总线返回索引号的正确率,以确定所述内容寻址存储器的查找性能。
CN2007103056719A 2007-12-27 2007-12-27 一种内容寻址存储器查找性能测试方法及系统 Expired - Fee Related CN101471132B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007103056719A CN101471132B (zh) 2007-12-27 2007-12-27 一种内容寻址存储器查找性能测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007103056719A CN101471132B (zh) 2007-12-27 2007-12-27 一种内容寻址存储器查找性能测试方法及系统

Publications (2)

Publication Number Publication Date
CN101471132A CN101471132A (zh) 2009-07-01
CN101471132B true CN101471132B (zh) 2011-05-11

Family

ID=40828515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103056719A Expired - Fee Related CN101471132B (zh) 2007-12-27 2007-12-27 一种内容寻址存储器查找性能测试方法及系统

Country Status (1)

Country Link
CN (1) CN101471132B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279423B (zh) * 2013-05-15 2016-11-23 华为技术有限公司 一种内容寻址存储器的寻址方法及设备
US9396794B1 (en) * 2015-08-14 2016-07-19 Qualcomm Incorporated Matchline retention for mitigating search and write conflict

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496950B1 (en) * 1999-08-11 2002-12-17 Lsi Logic Corporation Testing content addressable static memories
CN1614717A (zh) * 2003-11-03 2005-05-11 三星电子株式会社 检测优先编码器中错误的方法及其内容可寻址存储器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496950B1 (en) * 1999-08-11 2002-12-17 Lsi Logic Corporation Testing content addressable static memories
CN1614717A (zh) * 2003-11-03 2005-05-11 三星电子株式会社 检测优先编码器中错误的方法及其内容可寻址存储器

Also Published As

Publication number Publication date
CN101471132A (zh) 2009-07-01

Similar Documents

Publication Publication Date Title
US6526474B1 (en) Content addressable memory (CAM) with accesses to multiple CAM arrays used to generate result for various matching sizes
KR102165716B1 (ko) 플렉시블 퓨즈 송신을 위한 장치 및 방법
US4607331A (en) Method and apparatus for implementing an algorithm associated with stored information
CN101667958B (zh) 选择哈希函数的方法、存储及查找路由表的方法及装置
CA1081366A (en) Best match content addressable memory
US3588830A (en) System for using a memory having irremediable bad bits
EP0180239A2 (en) Content-addressable memory
US9317481B2 (en) Data access method and device for parallel FFT computation
JPS5958558A (ja) 並列周期的冗長チエツク回路
US11258539B2 (en) Technologies for performing encoding of data symbols for column read operations
CN108268596B (zh) 搜索存储在存储器中的数据的方法和系统
CN117121107A (zh) 使用内容可寻址存储器的用于经排序字符串表的密钥存储
CN101471132B (zh) 一种内容寻址存储器查找性能测试方法及系统
CN102122270B (zh) 在存储器中查找数据的方法和装置以及存储器
US4916649A (en) Method and apparatus for transforming a bit-reversed order vector into a natural order vector
CN108062289B (zh) 快速傅里叶变换fft地址换序方法、信号处理方法及装置
US7061267B2 (en) Page boundary detector
CN1585987A (zh) 存储器测试
US20020087537A1 (en) Method and apparatus for searching a data stream for character patterns
CN115270690A (zh) 查找空闲存储的装置、方法及芯片
US20030131032A1 (en) Bit-reversed indexing in a modified harvard DSP architecture
KR20010110203A (ko) 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법
CN110349605B (zh) 通道控制装置
KR950012218A (ko) 연상 메모리
SU1056269A1 (ru) Ассоциативное запоминающее устройство

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20110511

Termination date: 20161227