半导体器件的制作方法

文档序号:6753671阅读:209来源:国知局
专利名称:半导体器件的制作方法
技术领域
本发明涉及半导体器件,特别涉及在包括对存储在存储节点中的信息与输入的信息进行比较的相联存储器单元(CAM单元)中、具有对在器件内部进行了编码的信息进行存储或比较的CAM阵列的半导体器件。
背景技术
随着互联网的爆发性的普及,网络中的路由器和开关所需要的图表规模急增,图表检索的高速化成为课题。作为从硬件上解决该课题的装置,三进制相联存储器单元引起了人们的注目。
图2示意性地示出了路由器的结构。作为一例,该图示出了由网络接口NIF、网络处理器NP、检索引擎SE、检索表LUT、以及内容存储器CM构成的例子。网络接口NIF与网络处理器NP之间由系统总线SBS连接。网络处理器NP与检索引擎SE由内部总线IBS连接。检索引擎SE与检索表LUT之间由数据总线DQ连接。其中,检索表LUT为TCAM、内容存储器CM为静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。路由器通过互联网接口NIF从互网IPN进行信息包的发送与接收。网络处理器NP对接收的信息包内容进行译码和再组成。例如,从信息包的标题中读出的目的互联网协议地址(IP地址)通过检索引擎SE传送到检索表LUT中。检索表LUT中存储有多个目的IP地址,当存储有输入的目的IP地址时,产生用于从内容存储器CM中读出与该目的IP地址的信息有关的地址。内容存储器CM中存储有信息包传送所需要的通路信息和路由器的通道数等,通过内容总线CBS和检索引擎SE,向网络处理器NP输出与通过内容存储器地址总线CADD输入的地址对应的信息。网络处理器NP基于这些信息重新组成标题的内容,从指定的通道向中继点传送信息包。
非专利文献1记载了TCAM中的TCAM单元结构。图3表示非专利文献1的第1图的单元结构。该单元由以下3个电路块构成。如所谓的SRAM那样,第一电路块是由NMOS晶体管N311、N312、N313、N314和PMOS晶体管P311、P312构成的存储器单元SMC31。第二电路块与SMC31一样,是由NMOS晶体管N321、N322、N323、N324和PMOS晶体管P321、P322构成的存储器单元SMC32。第三电路块是由NMOS晶体管N331、N332、N333、N334、N335构成的比较电路MUC。存储器单元SMC31存储‘0’或‘1’的二进制信息、存储器SMC32存储被称为所谓“随意”状态的第三信息‘X’。通过有选择地激活字线WL31或32,可以与公知的SRAM一样地写入或读出这些信息。此外,比较电路MUC进行用于对存储信息与输入信息进行比较的XNOR运算。
作为一例,说明一下存储信息为‘1’时的检索操作。此时,假设存储器单元SMC311内的存储节点NT被驱动成电源电压VDD、存储节点NB被驱动成地电压VSS。现在,若TCAM单元没有处于随意状态、且存储器单元SMC内的存储节点DC被驱动成电源电压VDD,则比较电路MUC内的晶体管N331、N335分别导通,晶体管N332处于截止状态。在这种状态下,一旦将匹配线ML预充电成高于地电压VSS的电压之后输入信息‘1’,则处于地电压VSS的位线BLT与BLB中的位线BLB被驱动成电源电压VDD,从而使比较电路MUC内的晶体管N334成为导通状态。但是,由于晶体管N332处于截止状态,所以匹配线ML与接地电极之间保持开放状态。因此,利用图中未示出的匹配线读出放大器来识别由预充电电压保持的匹配线ML的电压,由此判定为比较的信息是一致的。相反,若输入信息‘0’,则处于地电压VSS的位线BLT与BLB中的位线BLT被驱动成电源电压VDD,从而使比较电路MUC内的晶体管N333成为导通状态。因此,由于匹配线ML与接接地电极之间通过晶体管N335、N331、N333短路,匹配线ML放电。即,通过用匹配线读出放大器来识别匹配线ML的电压下降,由此判定为比较的信息不一致。此外,该图的TCAM单元处于随意状态时,由于存储器单元SMC32内的存储节点DC被驱动成地电压VSS,所以比较电路MUC内的晶体管N335截止。因此,不论想要输入哪种信息,匹配线ML与接地电极之间都不形成电流通路,所以匹配线ML保持在预充电电压上,强制性地判定为一致。另外,即使在输信信息是表示所谓的“掩码(mask)”状态的第三信息‘X’时,因为位线BLT和BLB保持在接地电位VSS,比较电路内的晶体管N333和N334也被截止。因此无论存储器单元SMC31存储着什么信息,匹配线ML和接地电极之间都不形成电流通路,所以匹配线ML保持在预充电电压上,强制性地判定为一致。
非专利文献2记载了另一种TCAM单元结构。图4示出了非专利文献2的第2图的单元结构。该单元由NMOS晶体管T1、T2、T4、T6和电容器C1、C2构成了存储节点N1、N2,存储三值信息。此外,具有利用晶体管T3、T4、T5、T6有的XNOR运算功能,进行存储信息与输入信息的比较。
首先,说明一下存储功能。三值信息是表示信息_‘1’、信息_‘0’、及随意状态的信息_‘X’。若设高电压为逻辑_‘1’、低电压为逻辑_‘0’,则存储节点(N1,N2)的逻辑值在信息_‘1’时为(1,0)、在信息_‘0’时为(0,1)、在信息_‘X’时为(0,0)。存储信息的更新通过晶体管T1、T2进行,利用分别连接在位线BL1、BL2上的读出放大器进行读出和重写,在该图省略了描述。
接着说明一下XNOR的运算功能。存储信息与被比较的信息是三值信息,通过搜索线SL1、SL2输入。其内容是信息_‘1’与信息‘0’以及表示掩码状态的信息_‘X’。在比较动作中双方的信息一致时,被预充电成高电压的匹配线ML与被固定在低电压(例如地电压VSS)的放电线DCL之间不形成电流通路,所以匹配线保持在预充电电压上。而双方的信息不同时,匹配线ML与放电线DCL之间形成电流通路,所以匹配线ML放电。利用图中未示出的读出放大器来识别上述动作所引起的匹配线ML的电压变化,由此判定比较结果。此外,存储信息或输入信息为_‘X’时,匹配线ML与放电线DCL之间不形成电流通路,所以判定为一致。
专利文献1还记载了另一种TCAM单元结构。图5示出了专利文献1的第4图的单元结构。该单元TMC由分别设置在匹配线ML与比较数据线C0-C3的交点上的四个存储器单元HMC0~HMC3构成。各个存储器单元由NMOS晶体管T51、T52和存储电路SC构成。把连接存储电路SC和晶体管T51的栅极节点称为存储节点,在该图中为了按各个存储器单元进行区分,示出了存储节点D0~D3。这种单元TMC与两个例如图4所示的TCAM单元的电路结构相对应,所以称为双TCAM单元。
图19示出了双TCAM单元的三进制值的数据模型。比较信息的数据模型分别相对于00-11(二进制值)进行定义,使得只有比较数据线C0-C3中一条被驱动成逻辑值‘1’。与此相对,在各存储器单元MC0-MC3的存储电路SC中,存储将在比较数据线C0-C3中定义的逻辑值的极性反转的值。存储三进制值时的数据模型是按对应的二进制值的存储信息一个位一个位地进行AND运算后得到的值。例如,与三进制值信息“X0”对应的数据模型,数据模型“1010”,这是按各个位对对应于二进制“00”的存储信息“1110”和对应于二进制“10”的存储信息“1011”进行AND运算后的结果。通过这种对逻辑值的定义,减少了比较数据线的驱动条数,因此能够降低检索动作中的功率。
专利文献1 美国专利第6288922号说明书非专利文献1 IEEE Journal of Solid-state circuits,vol.31,No.11,November 1996,p.1601-1609)非专利文献2 Records of the 2000 IEEE InternationalWorkshop on Memory Technology Design and Testing,2000,p.101-105非专利文献3 IEEE Network,March/April,2001,p.8-23非专利文献4 IEEE Network,March/April,2001,Page(s)24-32在本发明之前,本发明者们对TCAM阵列的大容量化进行了研究。尤其是在关注存储范围被指定的IP地址时使用的字数时发现了,由于TCAM在存储多个IP地址时需要多个字,所以导致了容量不足。此外,在TCAM中,作为与在DRAM和SRAM中广泛使用的字相对应的词,通常使用“条目(entry)”。条目也是指存储在各字中的信息的词,所以,以下按照惯例使用条目。
非专利文献3记载了用于IP地址的检索算法中的通道检索图表。在互联网协议版次4(IPv4)中,用32位的二进制数来表示IP地址。此外,也可以将用32位的二进制数表示的IP地址以每组8位来划分,用四组10进制数来表示。例如,用10进制数表示的IP地址130.86.16.66用二进制数10000010-01010110-00010000-01000010表示。IP地址的上位位(左侧的多个位)表示组成分层结构的互联网的上位级的网络、下位位(右侧的位)表示下位级的主机。特别称用二进制数来表示表示网络的上位位、用星号“*”来表示与其接续的下位位的东西叫做地址前缀(address prefix)。例如,地址前缀1000001001010110*表示上位位由1000001001010110开始的2的16次方的地址。此外,前缀1000001001010110*与IP地址一样,也可以用10进制数表示为130.86/16。在此,与斜杠“/”接续的数字表示前缀长度。
图20示出了非专利文献3的图表1的通道检索图表。信息包通过设置在网络上的多个路由器被送往目的地。因此,各路由器不用存储各个主机的地址,只要存储多个主机共用的网络地址就可以,即,如图20所示,通道检索图表中只存储目的地址前缀(Destinaon addresspreefix)就可以。根据图20,例如,目的IP地址为130.86.16.66的信息包从第六个输出接口向作为下一个中继器的路由器(Next-hop)192.41.177.181传送。
现有的网络,按其规模分为三个等级(级别)。即,级别A是前缀长度为8的网络,该级别中确保有能够分配给2的24次方个主机的IP地址。此外,级别B是前缀长度为16的网络,确保有能够分配给2的16次方个主机的IP地址。此外,级别C是前缀长度为24的网络,确保有能够分配给2的8次方个主机的IP地址。可是,近年来随着互联网的普及,为了高效率地将IP地址分配给细分化的主机,正在引入废弃级别区分而认可各种长度的前缀的叫做无级别域间路由选择的方法。
在CIDR环境中,需要在通道检索图表中存储各种范围的IP地址。例如,假设被分配了IP地址130.86.16.1-130.86.16.30的主机形成了某个组,利用图21来说明这些多个IP地址的存储方法。此外,在此为了简化说明,在用四个10进制数表示的IP地址中,决定考虑右端的1-30。此外,与此相对应,在用二进制(二进制数)表示的所有的32位中,考虑下位8位的数据模型。用三进制值来表示1-30(10进制数)时,利用表示随意状态的信息‘X’,以2的取幂单位将对应的二进制值分组,可以用8种数据模型来表示。这意味着在使用TCAM的通道检索图表中存储主机的IP地址130.86.16.1-130.86.16.30时,必须扩展成8条目后进行存储。如此,TCAM在存储被细致地指定了范围的IP地址时,导致存储容量不足。该问题源于图2和图3所示的TCAM单元虽然在原理上具有存储四值信息的能力,却只存储三值信息。该原因通过考虑例如能够用两个TCAM单元进行存储的信息,就能够具体地理解。图22示出了0-3(10进制数)的15种组合。本来从四个标本中抽出任意的数的组合有16种(=2的4次方),但是在该图中省略了任何数都不选择(即不存储0-3中的任何一个)的组合。若用三进制值来表示这些数的组合,就只能表示9种(=3的2次方)组合。因此意味着,例如用存储三值信息的两个TCAM单元来存储范围1-3(10进制数)时,必须扩展为1(二进制表示为“01”)和2-3(三进制表示为“1X”)这两个条目后存储。即,存储范围被指定的IP地址时,存储器的使用量增加。
这个问题在除了通道检索以外用路由器进行的检索动作中使用TCAM时更加严重。例如,如非专利文献4所记载的信息包分类(Packet classification)那样,基于目的IP地址和传送方IP地址来控制能否进行信息包的传送时,必须在条目中存储双方的IP地址。可是,若双方的IP地址被指定了范围,则由于各个范围在三进制表示中而被扩展成多个,所以与这些组合相对应,条目数增加。举个具体例子,目的IP地址为130.86.16.1-130.86.16.30、且传送方IP地址为230.86.16.1-230.86.16.30时,由于各自的指定范围可以用8种三进制值来表示,所以它们的组合有64种,因此需要64个条目。
可是,图5所示的双TCAM单元TMC由存储二进制信息的4个存储器单元构成,所以可以用1条目存储0-3(10进制数)的15种组合的全部。可是,如图19所示,比较信息不能取多个数的组合,所以,不能进行使用与图2和图3所示的掩码状态相对应的第三信息‘X’的检索动作。

发明内容
本发明的课题在于高效率地存储范围被指定的IP地址,从而消除TCAM的存储器容量的不足。即,本发明的目的在于,提供用于实现大容量的TCAM的IP地址的存储方法以及TCAM阵列结构。
本发明的具有代表性的装置之一如下。即,使存储信息(条目)与输入信息(比较信息或检索键)成为任何一个一位都一定成为逻辑值‘1’的共同的组码。而且,使匹配线成为分层结构,将存储器单元设置在多个副匹配线与多个搜索线的交点上。副匹配线通过副匹配判定电路分别与主匹配线连接。在进行检索动作时,按每个副匹配线来判定信息的比较结果,用主匹配判定电路来识别与这些比较结果相对应的主匹配线上发生的微小信号,由此来判定条目整体的比较结果。
根据本发明,既能够像现有的TCAM那样进行利用第三信息‘X’的条目和检索键的检索动作,又能够高效率地存储范围被指定的IP地址。因此,能够有效地增加存储器阵列容量。


图1是实施例1所示的三进制按内容访问存储器中的使用了分层匹配线结构的存储器阵列的结构例的说明图;图2是示意性地示出了路由器的结构例的说明图;图3是示出了由17个晶体管构成的现有的三进制按内容访问存储器单元的结构的说明图;图4是示出了由6个晶体管和2个电容器构成的现有的三进制按内容访问存储器单元的另一结构的说明图;图5是示出了由两个三进制按内容访问存储器单元形成的现有双三进制按内容访问存储器单元的结构的说明图;图6是使用实施例1所示的图1的存储器阵列的三进制按内容访问存储器的条目的编码和写入方法的例子的说明图;图7是使用实施例1所示的图1的存储器阵列的三进制按内容访问存储器的条目的译码和读出方法的例子的说明图;图8是使用实施例1所示的图1的存储器阵列的三进制按内容访问存储器的主要部分结构例的说明图;图9是实施例1所示的图1的存储器阵列的电路块的具体结构例子的说明图;图10是在实施例1所示的图1的存储器阵列中检索一致信息时的动作定时例子的说明图;图11是在实施例1所示的图1的存储器阵列中检索不一致信息时的动作定时例子的说明图;图12是实施例2所示的图1的存储器阵列中的存储器组的另一结构例子的说明图;图13是实施例3所示的图1的存储器阵列中的副匹配判定电路的另一结构例子的说明图;图14是在实施例3所示的图13的存储器阵列中检索一致信息时的动作定时例子的说明图;图15是实施例4所示的图1的存储器阵列中的主匹配判定电路的另一结构例子的说明图;
图16是使用实施例5所示的图1的存储器阵列的三进制按内容访问存储器的主要部分结构的另一例的说明图;图17是对实施例3追加的变形例所示的图1的存储器阵列中的副匹配判定电路的又一另一结构例的说明图;图18是在对实施例3追加的变形例所示的图17的存储器阵列中检索一致信息时的动作定时例子的说明图;图19是用于图5的双三进制按内容访问存储器单元的比较信息与存储信息的逻辑值的说明图;图20是示出了通道检索图表的说明图;图21是示出了二进制表示与三进制表示的对应关系的说明图;图22是用于实施例1所示的图1的存储器阵列的一热点(One-hot-spot)成组编码的数据模型例的说明图;图23是用于实施例1所示的图1的存储器阵列的一热点成组编码的数据模型另一例的说明图;图24是用于实施例1所示的图1的存储器阵列的一热点成组编码的数据模型另一例的说明图;图25是对应于实施例1所示的图1的存储器阵列的检索结果的匹配线的电压关系的说明图;图26是用于实施例2所示的图12的存储器阵列的一热点成组编码的数据模型例的说明图;图27是用于实施例3所示的图13的存储器阵列的一热点成组编码与组掩码信号的数据模型例的说明图;图28是用于对实施例3追加的变形例所示的图17的存储器阵列的一热点成组编码与组掩码信号的数据模型的另一例的说明图;图29是用于实施例6所示的图8的三进制按内容访问存储器的存储器阵列结构例的说明图;图30是示出了实施例6所示的搜索线驱动电路的结构例的说明图。
具体实施例方式
下面参照

本发明的实施例。没有特殊限制,典型的是利用公知的CMOS(互补型MOS晶体管)等半导体集成电路技术在单晶硅那样的一个半导体衬底上形成构成实施例的各块的电路元件。
实施例1“一热点(One-hot-spot)成组编码”图22将本发明的代码的数据模型的例子与现有的三进制表示对应地示出。本代码有三个特征(详细内容以后再说)。第一特征在于,逻辑值‘1’的位置的不同与0-3(10进制数)对应。第二特征在于,条目与检索键是公共的数据模型。第三特征在于,利用本代码进行检索动作的CAM,按照图22,用2个位的单位对与现有的TCAM同样地输入的多个位的数据(这里为IP地址)进行编码。本发明中使用的这种代码,以下称之为“一热点组”代码。首先,使对应于0-3(10进制数)的代码成为使逻辑值‘1’的位置从最下位的位(右端的位)逐次移动1位的代码,即,依次为“0001”、“0010”、“0100”、“1000”。对应于多个数的组合的代码,通过对与各个数对应的代码按各位进行OR运算来获得。例如,对应于0和1(10进制数)的组合的代码是对代码“0001”和“0010”进行OR运算而获得的“0011”。若进行同样的OR运算,就像图22那样,获得与所有组合对应的代码。下面按照这种编码原理,对信息量更多时的代码进行说明。
图23分别示出了0-31(10进制数)的代码。该图示出了按照图22,用2个比特单位对8位的二进制值进行编码的例子。得到的代码是将每组4位(=2的2次方位)的代码罗列4组(=8[位]/2[位/组])的由16位组成的数据模型。在此,将4个代码组从左开始以下降的顺序表示为BTW3、BTW2、BTW1、BTW0。此外,对于代码组BTWi(i=0,1,2,3)的要素来说,将后述的条目从左侧以下降的顺序表示为(Ni3,Ni2,Ni1,Ni0),将检索键表示为(SLi3,SLi2,SLi1,SLi0)。此外,为了表明是用2个位的单位进行了编码,所以以下在各代码组之间插入空白。
首先,定义0-3(10进制数)的一热点成组编码。使代码组BTW0像图22所示那样,成为逻辑值‘1’从N00(或SL00)向N03(或SL03)逐次移动1位的数据模型。而且,使代码组BTW1-BTW3的数据模型全为“0001”。
接着,在使代码组BTW1的逻辑值‘1’向左(从N10(或SL10)向N11(或SL11))移动1位的状态下,使4-7(10进制数)成为将代码组BTW0的逻辑值‘1’再次从N00(或SL00)向N03(或SL03)逐次移动1位的数据模型。以下同样,当10进制数每增加4时将代码组RTW0的逻辑值‘1’向左移动1位,并重复代码组BTW0的逻辑值‘1’的移动,由此决定8-15(10进制数)的代码。
当相邻的下位代码组(在此为组BTW0和BTW1)的数据模型同时变为“1000”时,使上一位的代码组(在此为组BTW2)的逻辑值‘1’向左(在此为从N30(或SL30)向N31(或SL31))移动一位。在该状态下,与0-15(10进制数)一样,通过调配代码组BTW0和BTW1的数据模型来决定16-31(10进制数)的代码。
下面,以1-30(10进制数)的范围为例,说明表示多个数时的数据模型。首先,对于1-3(10进制数)的范围,与图22一样,将组BTW0归拢到一起,用代码“0001 0001 0001 1110”来表示。其次,对于4-15(10进制数)的范围,通过对对应成组的编码的各位进行OR运算,用代码“0001 0001 110 1111”来表示。同样,用代码“0001 00100111 1111”来表示16-27(10进制数)的范围。最后,用代码“0001 00101000 0111”来表示28-30(10进制数)的范围。结果,1-30(10进制数)的范围由4个成组编码来表示。该个数是图21所示现有的三进制表示时(8个)的一半。因此,在存储范围被指定的条目时能够抑制必要的条目数,从而可以高效率地进行存储。
此外,在本实施例的代码中,对应于二进制值进行编码的检索键的各代码组的数据模型中只含有一个逻辑值‘1’,所以与图5所示的双TCAM单元TMC的情况一样,能够获得降低检索动作中的搜索线的充放电功率的效果。迄今为止,说明了10进制数每增加1时将逻辑值‘1’向左移动1位的数据模型的代码。但是,数据模型不限于此,也可以是其他的数据模型。例如,可以使0-3(10进制数)的代码组BTW0成为,与图23相反,逻辑值‘1’从N03(或SL03)向N00(或SL00)即向右侧逐次移动1位的数据模型。此时也与图23一样,能够用4个成组编码来表示1-30(10进制数)的范围。但是,为了是数据模型与TCAM内的信号线容易对应,下面按照图22和图23所示的数据模型进行说明。此外,到现在为止,为了简化说明,只考虑了0-31(10进制数),但是可想而知,若将以上的方法展开,就能够定义31-255(10进制数)的代码。
条目的编码和写入方法下面按照图6和图24,说明编码和写入方法。图6示出了本实施例的利用代码进行检索动作的TCAM中的条目的编码和写入算发的一例。此外,图24示出了指定1-30(10进制数)的范围时对应于三进制值的掩码信息和二进制信息,以及被编码的条目的数据模型。此外,该图中的掩码信息和二进制信息的数据模型也分别是8位。它们有如下两个特征。第一特征在于,与现有的TCAM一样,从芯片外部分别输入掩码信息和二进制信息,在芯片内部编码。第二特征在于,在芯片内部对复合的多个条目进行压缩,进行不能用三进制值表现的范围指定。下面一边留意这些方面一边说明编码和写入方法。
首先,输入对应于1(10进制数)的掩码信息“11111111”,存储在掩码寄存器中。将利用该信息以及接着输入的二进制信息“00000001”并效仿图22进行分组编码后得到的代码“0001 0001 00010010”,通过第一暂存条目寄存器存储在第二暂存条目寄存器中。接着,输入对应于2-3(10进制数)的范围的掩码信息“11111110”,重新存储在掩码寄存器中。利用该掩码信息和继续输入的二进制信息“00000010”进行编码,将成组编码“0001 0001 0001 1100”存储在第一暂存条目寄存器中。之后,比较保持在第一和第二暂存条目寄存器中的条目的每一位,调查数据模型的不同代码组的个数。在此,由于不同的组只是BTW0,所以通过对保持第一和第二暂存条目寄存器中的条目的每一位进行OR运算,将两个条目压缩成一个。此外,将压缩后得到的成组编码“0001 0001 0001 1110”重新存储在第二暂存条目寄存器中。
接着输入对应于4-7(10进制数)的范围的掩码“11111100”,重新存储在掩码寄存器中。利用该掩码信息和再次输入的二进制信息“00000100”进行编码,将成组编码“0001 0001 0010 1111”重新存储在第一暂存条目寄存器中。之后,再一次按各个位比较保持在第一和第二暂存条目寄存器中的条目,调查数据模型的不同代码组的个数。这一次,由于不同的组是BTW0与BTW1这两个,所以,例如通过激活后述的下一空闲地址寄存器指定的行地址上的存储器单元,将保持在第二暂存条目寄存器中的成组编码“0001 0001 0001 1110”写入存储器阵列。之后,将存储在第一暂存条目寄存器中的成组编码“0001 00010010 1111”重新存储在第二暂存条目寄存器中。将上述动作继续到30(10进制数),一边随时设定修正行地址,一边将存储在第二暂存条目寄存器中的成组编码写入存储器阵列。并且在写入完最后的条目的时刻,将条目数等关于存储器阵列的使用状况的信息输出给TCAM控制器等外部控制芯片,从而结束写入动作。
从上述动作中,可以获得以下两个效果。第一效果在于与现有的TCAM一样,从芯片外部分别输入二进制信息和掩码信息,在芯片内部进行编码,因此能够实现具有与现有的接口具有互换性的接口的TCAM。因此,TCAM用户可以不用考虑芯片内部的存储方法,与从前一样写入条目。此外,在本编码中,从图24所示的例子中可知,虽然条目的位数从8位倍增到16(=2的平方乘4)位,但是可以通过在芯片内部进行编码来抑制条目的输入所必须的数据总线宽度,因此还能够获得抑制TCAM安装成本的效果。第二特征在于在芯片内部对复合的多个条目进行压缩,产生不能用三进制值表现的范围的条目。从上述说明可知,这样一来,可以将在现有的TCAM中需要8个的条目数减少到4个,从而能够高效率地存储条目。
此外,一直到现在都是以用三进制表示将条目扩展成8个的情况为例,说明了编码和写入方法。但是,由于输入的条目数各式各样,所以不论条目数如何,都应该将编码的条目传送给两个暂存条目寄存器并进行压缩,准确地写入存储器阵列中。因此,特别是在以三进制表示中条目为1个时,将该条目输入两次。例如,若说明只写入30(10进制数)的情况,则首先输入掩码信息“111111”,将其存储在掩码寄存器中。利用该掩码信息和接着输入的二进制信息“00011110”进行编码,通过第一暂存条目寄存器将成组编码“0001 0010 1000 0100”存储在第二暂存条目寄存器中。其次,输入与这些相同的信息,将成组编码“0001 0010 1000 0100”存储在第一暂存条目寄存器中。之后,按各个位比较保持在第一和第二暂存条目寄存器中的条目,调查数据模型的不同代码组的个数。此时,保持在双方暂存条目寄存器中的条目是相同的成组编码,因此没有不同的组。因此,对保持在第一和第二暂存条目寄存器中的条目的每一位的OR运算结果不变,存储到第一暂存条目寄存器中的是与OR运算前相同的代码。通过这种动作,能够将30(10进制数)的成组编码“0001 0010 1000 0100”可靠地写入存储器阵列中。
此外,从到现在为止的说明当中可以了解,在检索动作中,通过像写入动作那样连续输入掩码信息和二进制信息,在芯片内部产生编码后的检索键。编码后的条目不经过第一和第二暂存条目寄存器,直接输入到存储器阵列中。
条目的译码和读出方法图7示出了条目的译码和读出方法的例子。该方法的顺序和图6所示编码的顺序相反。首先,按照从芯片外部输入的地址,将从存储器阵列中读出的条目展开,存储到多个读出条目寄存器中。接着,依次将存储在这些读出条目寄存器中的条目译码,通过读出信息寄存器和读出掩码寄存器将其输出给外部芯片。通过这种方法,可以与现有的TCAM一样,将范围被指定的条目作为表示对应于三进制值的范围的信息而读出。
TCAM的整体结构下面说明实现利用上面介绍的一热点成组编码信息进行检索动作的TCAM的整体结构。图8是TCAM的主要部分的框图。本结构包括存储器阵列MA、数据输入输出电路DIO、各种寄存器、CAM控制电路CAMCTL、标志逻辑电路FLGC、更新计数器RFCNT、条目编码器ENCDR、条目译码器DCDR、条目压缩电路CMP、条目扩展电路EXT、优先编码器PENC、RAM控制电路RAMCTL。存储器阵列MA的结构如图1所示,将在后面详细介绍。数据输入输出电路DIO设置在数据总线DQ与芯片内部数据总线DBS之间,进行数据和地址信号、以及定义芯片的各种设定的控制信号的授受。
各种寄存器分别由对应于数据总线DQ的信号线数的多位寄存器构成。在该图中,作为用于通过数据总线DBS接收数据的寄存器,示出了掩码寄存器MKREG与比较用字符寄存器CPREG这两个。第一个掩码寄存器MKREG存储用于在所需位产生TCAM中的第三信息_‘X’和_“MASK”的信息,通过掩码信号总线MKBS输入到后述的条目编码器ENCDR中。比较用字符寄存器CPREG存储在检索动作中输入的检索键。在检索动作中没有一致的条目时,通过上述条目压缩电路CMP将该检索键写入存储器阵列MA中。此外,在该图中,作为用于通过数据总线DBS传送数据的寄存器,示出了读出掩码寄存器RMKREG和读出二进制信息寄存器RBREG这两个。第一个读出掩码寄存器RMKREG存储从后述的条目译码器DCDR通过第三条目总线TEBS接收的第三信息_‘X’,并通过数据总线DBS向数据输入输出电路DIO输出。读出二进制信息寄存器RBREG与读出掩码寄存器RMSKREG一样,存储从条目译码器DCDR通过第三条目总线TEBS接收的二进制信息,并通过数据总线DBS向数据输入输出电路DIO输出。作为通过数据总线DBS进行地址信号的授受的寄存器,示出了脉冲串(burst)写入寄存器WREG、下一空闲地址寄存器NREG、脉冲串读出寄存器RREG这三个。第一个脉冲串写入寄存器WREG存储脉冲串写入动作中的一个周期的行地址和脉冲串长度,一开始进行脉冲串写入动作,就一边与条目的压缩动作协调一边向上计数,产生第二个周期和其后的地址。第二个下一空闲地址寄存器NREG存储没有条目的行地址。
第三个脉冲串读出寄存器RREG存储脉冲串读出动作中的第一个周期的行地址和脉冲串长度,一开始进行脉冲串读出动作,就一边与条目的扩展动作协调一边向上计数,产生第二个周期和其后的地址。这些寄存器产生的地址信号通过行地址总线XBS输入到存储器阵列MA中。而且,通过数据总线和数据输入电路向芯片外部输出。
作为通过数据总线DBS接收控制信号的寄存器,示出了指令寄存器ISREG、信息寄存器IFREG、配置寄存器CFRE这三个。第一个指令寄存器ISREG存储通过数据总线DBS输入的控制信号,对芯片的初期化方法、级联连接的TCAM芯片数、和芯片内部的图表结构进行定义。这里,图表结构是指对应于条目数及其数据模型的位数的逻辑的存储器阵列结构。第二个信息寄存器IFREG存储分配到路由器等系统上的芯片固有的器件码。第三个配置寄存器CFREG存储例如用于控制像上述那样被逻辑分割的存储器阵列MA的激活的信号、和定义后述的多匹配信号和RAM用时钟是否有效的启动信号。除了这些以外,图8中还分别示出了插在后述的匹配地址总线MABS和数据总线DBS之间的匹配地址寄存器MAREG。
CAM控制电路CAMCTL按照输入的外部时钟CLK、外部控制信号组CMD,产生读出应答信号ACK和传输结束信号EOT、条目计数信号EC、内部控制信号。外部控制信号组CMD由前述的网络处理器或检索引擎SE等使用了用于特定用途的集成电路ASIC等的外部的控制芯片产生。读出应答信号ACK是在读出动作中与读出数据同步地输出的读取信号,传输结束信号EOT是在脉冲串读出动作和脉冲串写入动作中与最终数据同步地输出的标志信号。
条目计数信号组EC是表示关于在芯片内部压缩和扩展的条目的信息的多个信号。该信号组单独地或与前述的地址信号一起被传送到(例如像图2所示的)网络处理器NP或检索引擎SE那样的控制TCAM的芯片中。然后,这些控制器用于掌握条目的压缩和扩展或存储器阵列的使用状况。此外,虽然在该图中了简化而省略了内部控制信号,但实际上多个控制信号与动作对应地被分配在各个电路块中。
标志逻辑电路FLGC与TCAM芯片之间进行全信号的授受。例如在路由器中,为了实现高速图表检索动作,通常级联连接多个TCAM而构成大容量的检索图表。因此,通过在芯片之间进行全输入信号组FIN和全输出信号组FOUT的发送和接收,来进行存储器阵列的使用状况的掌握和重新存储的条目的输入目的地的控制。此外,在检索动作中存在多个一致的条目时,标志逻辑电路激活多匹配信号MM。
更新计数器RFCNT按照更新动作产生行地址。通过数据总线DBS将该地址输入到存储器阵列MA中。条目编码器ENCDR、条目压缩电路CMP、条目扩展电路EXT、条目译码器DCDR都是本实施例的TCAM特有的电路块。第一个条目编码器ENCDR利用保持在前述的掩码寄存器MSKREG中的第三信息和通过数据总线DBS输入的二进制信息,对条目或检索键进行一热点成组编码。编码后的信息在写入动作中从编码数据总线ENBS向存储器阵列MA输出,在检索动作中向条目压缩电路CMP输出。条目压缩电路CMP由用于存储编码后的条目的两个暂存条目存储器FTEREG、STEREG,和对存储在这些寄存器中的条目的代码的每一位进行比较的比较电路BMUC及OR运算电路LORC构成。虽然在该图中省略了这些电路块之间的连线,但是从图6中的说明可知,分别适当地进行编码后的条目的暂时存储、比较、压缩,从第一条目总线FEBS向存储器阵列MA输出将压缩后的条目。条目扩展电路EXT,由将通过第一条目总线FEBS从存储器阵列MA读出的条目分割成能够用三进制(ternary)值表示的范围的代码的条目分割电路EDVD和暂时存储分割后的条目的多个寄存器组MLREG构成。虽然在该图中省略了这些电路块之间的连线,但是从图7中的说明能够容易地理解,分别适当地进行编码后的条目的扩展和暂时存储动作,能够从第二条目总线SEBS向条目译码器DCDR输出扩展后的多个条目。
条目译码器DCDR通过第二条目总线SEBS依次接收保持在条目扩展电路EXT内的多个寄存器组MLREG中的条目,进行译码。而且,通过第三条目总线TEBS,将译码后的结果分别输出给二进制信息寄存器RBREG和读出条目寄存器RMSKREG。
优先编码器PENC在检索动作中,按照从一致信号总线HBS输入的信号,产生对应于与检索键一致的条目的地址信号。此外,在具有多个一致的条目时,还具有从对应于最上位(例如,对应的行地址最小的码的行)的条目的地址信号依次输出的功能。产生的地址信号通过匹配地址总线MABS向匹配地址寄存器MAREG输入。
RAM控制电路RAMCTL按照从数据总线DBS输入的信号,输出用于控制与图2所示的TCAM一起使用的内容存储器CM的信号。该图示出了RAM用时钟RCLK、RAM控制信号组、RAM地址RADD。RAM控制信号组由多个控制信号构成,例如,是芯片启动信号或写入启动信号。RAM地址RADD是前述的优先编码器PENC产生的地址信号,例如向图2所示的内容存储器地址总线CADD输出。产生多个地址信号时,从匹配地址寄存器MAREG通过数据总线DBS依次输出地址。
通过这种结构,本实施例的TCAM可以进行如下的各种动作。第一,通过使用条目编码器ENCDR、条目译码器DCDR、条目压缩电路CMP、条目扩展电路EXT,能够在芯片内部进行三进制值与一热点成组编码的变换,可以实现与现有技术具有互换性的TCAM。第二,通过适当地使用脉冲串写入寄存器WREG或下一空闲地址寄存器NREG、脉冲串读出寄存器RREG,可以连续地写入或读出多个条目。第三,通过上述寄存器产生的地址和条目计数信号组EC,可以与外部控制电路共有与被压缩及扩展的条目数或存储器阵列使用状况有关的信息,因此可以提高动作的可靠性。第四,通过编码数据总线EBS将检索键输入给存储器阵列MA,从而能够进行检索动作。在此,当发现了与检索键一致的条目时,可以由主要编码器PENC产生与该条目对应的地址信号,通过匹配地址寄存器MAREG及RAM控制电路RAMCTL向内容存储器输出。第五,通过数据总线DBS将利用更新计数器RFCNT产生的行地址输入给存储器阵列MA,从而可以进行更新动作。
TCAM阵列的结构图1示出了本发明的使用一热点成组编码信息进行检索动作的TCAM阵列的结构例。本存储器阵列的特征在于,匹配线形成了由主匹配线和副匹配线构成的分层结构。下面一边注意这一点一边说明存储器阵列结构。
存储单元分别设置在多条字线WLm(m=0,1...)和多条位线BLni(n=0,1,...,i=0,1,2,3)的交点。与位线BLni对应的多条搜索线SLni(n=0,1,...,i=0,1,2,3)分别与其平行地设置。而且,多条副匹配线SMLmj(m=0,1,...,j=0,1,...)分别与对应的主匹配线MMLm(m=0,1...)平行地设置。如副匹配线SMLO1那样,副匹配线上分别连接有四个存储器单元MCi(i=0,1,2,3)。以下将由这四个存储器单元MCi(i=0,1,2,3)构成的组分别表示为存储器组MBmj(m=0,1,...,j=0,1,...)。此外,在副匹配线SMLmj(m=0,1,...,j=0,1,...)与对应的主匹配线MMLm(m=0,1...)之间分别设置副匹配判定电路SMDmj(m=0,1,...,j=0,1,...)。副匹配判定电路对对应的副匹配线进行预充电或对副匹配线上产生的微小信号进行识别。
图1还示出了控制TCAM阵列的直接周边电路。行译码器XDEC从多条字线WLm(m=0,1,...)中选择对应于通过前述的行地址总线XBS输入的多个行地址信号的字线。主匹配判定电路块MMDB进行匹配线MLm(m=1,2)的预充电和匹配线上产生的微小信号的识别。而且,向前述的一致信号总线HBS输出对应于微小信号的检测结果而产生的信号。搜索线驱动电路块SDB设置在前述的编码数据总线ENBS与搜索线SLni(n=0,1,...,i=0,1,2,3)之间,将匹配线驱动成对应于编码后的检索键的逻辑值的电压。读写电路块RWB设置在前述的第一条目总线FEBS与位线线BLni(n=0,1,...,i=0,1,2,3)之间,进行被编码和压缩的条目的读写动作。具体说,例如像作为半导体存储器而被广泛了解的那样,是在每条位线上设置使用两个PMOS晶体管与两个NMOS晶体管交叉耦合的电路结构的读出放大器的结构。
下面,按照图9,说明图1所示存储器阵列结构的电路块的具体结构例。在图9中,为了简化说明,关注的是存储器组MB00,示出了与其相关的副匹配判定电路SMD00和作为主匹配判定电路块MMDB的结构要素的主匹配判定电路MMD0。此外,在以下的介绍中,分别将地电压表示为VSS、将阵列电压表示为VDL、将副匹配线的预充电电压表示为VPC。将阵列电压VDL设定在高于地电压VSS、但低于或等于电源电压VDD的电压上。将预充电电压VPC设定在高于地电压VSS、但与阵列电压VDL相等、或比阵列电压VDL低到能使NMOS晶体管充分导通的程度的电压上。
首先,构成存储器组MB00的存储器单元MCi(i=0,1,2,3)由3个NMOS晶体管和1个电容器构成。晶体管T611与电容器C与众所周知的DRAM的存储器单元结构相同,存储条目。晶体管T611的栅极连接在字线WL0上,漏极和源极之一连接在对应的位线BL0i(i=0,1,2,3)上,另一个连接在电容器C的一个电极上。在电容器C的另一个电极上施加所谓的板压VPLT。晶体管T612、T613串联连接在副匹配线SML00与接地电极之间,进行信息的比较。晶体管T612的栅极连接在对应的搜索线上,晶体管T613的栅极连接在电容器C的一个电极上。在这种结构的存储器单元中,通过在电容器C的一个电极上存储电荷来存储信息,因此称晶体管T611、T613、电容器C的连接节点为存储节点。在该图中,为了按每个存储器单元来区分存储节点,与存储器单元MCi(i=0,1,2,3)对应地将存储节点表示为NOi(i=0,1,2,3)。
副匹配判定电路SMD00由两个NMOS晶体管T621、T622构成。晶体管T621将副匹配线SML00充电至预充电电压VPC,其栅极连接在预充电起动信号线PC上,漏极连接在副匹配线SML00上,对其源极施加预充电电压VPC。另一个晶体管T622按照副匹配线的电压变化来驱动主匹配线MML0,其栅极连接在副匹配线SML0上,漏极连接在主匹配线MML0上,对其源极施加地电压VSS。此外,晶体管T622在待机时,因其栅极被施加预充电电压VPC而处于导通状态,因此还起将主匹配线MML0预充电至地电压VSS的作用。此外,还可以有晶体管T621使用PMOS晶体管的结构,但此时存储器阵列内需要多个阱分离,因而面积变大。因此,从抑制阵列面积的观点出发,优选使用NMOS晶体管。
主匹配判定电路MMD0由PMOS晶体管T631与读出放大器SA构成。晶体管T631在检索动作中对主匹配线施加电流,其栅极连接在检索启动信号线SEB、漏极连接在匹配线MML0上,对其源极施加阵列电压VDL。读出放大器SA是例如在半导体存储器中被众所周知的、使用两个PMOS晶体管与两个NMOS晶体管交叉耦合的电路的结构,对主匹配线MML0上产生的微小电压进行识别,按照该电压电平来驱动一致信号。此外,将晶体管T631与副匹配判定电路SMDO0内的晶体管T622的栅极的长度和宽度设定得使双方成为导通状态时主匹配线MML0的电压成为大致接近第电压VSS的电压电平。
下面说明使用这种结构进行的检索动作。首先,检索键与条目一致时,在同一字线上的所有存储器组中,存在对应的匹配线与存储节点的逻辑值都为‘1’的存储器单元,因此,晶体管T612和T613导通,从而使对应的所有副字线放电。因此,对应的副匹配判定电路内的晶体管T622截止,所以被驱动成地电压VSS的对应的主匹配线被主匹配判定电路内的晶体管T631充电。相反,检索键与条目不同时,在同一字线上的某个存储器组中,对应的搜索线与存储节点的逻辑值全部为相反极性,因此,该组的副匹配线与接地电极之间不形成电流通路,对应的副字线保持在预充电电压VPC上。因此,对应的副匹配判定电路内的T622导通,所以主匹配线大致保持在地电压VSS上。利用主匹配判定电路内的读出放大器SA来识别这些主匹配线的电压变化,并由此判定比较结果。
此外,对于未使用的存储器单元的状态来说,只要不影响别的存储器单元的检索动作,就不必进行限制,但优选存储与逻辑值‘0’对应的信息。此时,存储器单元内的晶体管T613成为截止状态,因此可以阻止条目检索动作中的副匹配线的放电,从而能够减少与不存储条目(在此为IP地址)的字对应的副匹配线的功耗。
下面根据上述原理来详细说明图1和图9所示结构的TCAM单元的检索动作。
检索动作在下面的动作说明中,假设供给预充电起动信号线PC的电压与供给字线的升压电压相同,并用VPP来表示。假设该升压电压VPP被设定成高于阵列电压VDL、且其差大于等于NMOS晶体管的阈值电压。此外,将主匹配判定电路内的读出放大器SA识别微小电压时使用的参考电压表示为VREF。假设该参考电压VREF被设定在地电压VSS与阵列电压VDL之间的电压电平上。此外,假设存储器单元内的存储节点被驱动成电源电压VDD或地电压VSS。高电压电平虽然可以取阵列电压VDL,但是为了既能够产生充分的读出信号量又能够可靠地读出存储信息,优选取高于阵列电压VDL的电源电压VDD。此外,为了减少检索动作中的功耗,如后所述,搜索线的高电压优选取低于电源电压VDD的电压,因此,优选将存储节点的高电压设定在不同于阵列电压VDL的电压上。下面根据这些假设来说明检索动作。
首先,按照图10来说明检索键与条目一致时的检索动作。在此,为了简化说明,假设图1所示的存储器阵列为每条字线具有两个存储器组的结构。而且假设注视的字线WL0上存储有与1-3(10进制数)的范围对应的条目,进行与对应于1(10进制数)的检索键的比较。因此,在图10中,与被进行成组编码的条目“0001 1110”对应,存储器组MB00内的存储节点N00及存储器组MB01内的存储节点N11-N13保持在地电压上,存储器组内的N01-N03及存储器组MB01内的存储节点N10保持在电源电压VDD上。
首先,在待机状态下,通过将预充电起动信号线PC驱动至升压电压VPP,使副匹配判定电路内的晶体管T621处于导通状态,因此副匹配线SML00、SML01分别被驱动至预充电电压VPC。如前所述,此时的预充电电压VPC是能够使副匹配判定电路内的晶体管T622充分导通的电压电平,因此,主匹配线MML0被驱动至地电压VSS。
检索动作一开始,就通过将成为升压电压VPP的预充电起动信号线PC驱动至地电压VSS来停止副匹配线的预充电,之后按照检索键将成为地电压VSS的搜索线驱动至阵列电压VDL。在该图示出的例子中,与编码后的检索键“0001 0010”相对应,使搜索线SL00、SL02-SL03、SL11-SL13分别保持着地电压VSS,将成为地电压VSS的搜索线SL01、SL10分别驱动至阵列电压VDL。此时,在存储器组MB00内的存储器单元MC1与存储器组MB01内的存储器单元MC0中,因为晶体管T612、T613都成为导通状态,成为预充电电压VPC的副匹配线SML00、SML01分别放电。因此,副匹配判定电路内的晶体管T622截止。若在该状态下将成为阵列电压VDL的检索启动信号线SEB驱动至地电压,则主匹配判定电路MMD0内的晶体管T631就成为导通状态,所以将成为地电压VSS的主匹配线MML0向阵列电压VDL充电。在主匹配线MML0被充电至充分高于参考电压VREF的电压的时刻,主匹配判定电路内的读出放大器通过识别这些电位差来判定条目与检索键一致,将该图中未示出的一致信号HIT0驱动至与该比较结果对应的电压。最后,将成为地电压VSS的检索启动信号线SEB驱动至阵列电压VDL,将被驱动至阵列电压VDL的搜索线驱动至地电压,进而将成为地电压VSS的预充电起动信号线PC驱动至升压电压VPP,由此将副匹配线SML00、SML01驱动至预充电电压VPC,将主匹配线MML0驱动至地电压VSS,从而再次返回待机状态。
其次,按照图11来说明检索键与条目不一致时的检索动作。在此,与图10一样,假设字线WL0存储有对应于1-3(10进制数)的范围的条目,进行与对应于0(10进制数)的检索键的比较。此外,预充电动作和各信号的驱动定时与图10的说明相同,所以从略。
检索动作一开始,则与编码后的检索键“0001 0001”相对应,分别使搜索线SL01-SL03、SL11-SL13保持着地电压VSS,将成为地电压VSS的搜索线SL00、SL10驱动至阵列电压VDL。此时在存储器组MB01内的存储器单元MC0中,由于晶体管T612、T613都成为导通状态,所以成为预充电电压VPC的副匹配线SML01放电。可是,在存储器组MB00中成为导通状态的晶体管是存储器单元MC0内的晶体管T612和存储器单元MC1-MC3内的晶体管T613,所以不论在哪个存储器中,副匹配线SML00与接地电极之间都不形成电流通路。即,副匹配线SML00保持预充电电压VPC,副匹配判定电路SMD00内的晶体管T622继续导通。因此,检索启动信号线SEB一旦被激活,则主匹配线MML0就被驱动至由主匹配判定电路MMD0内的晶体管T631与副匹配判定电路SMD00内的晶体管T622的电阻分压所决定的电压。如前所述,该电压电平大致接近地电压VSS,所以不会超过参考电压VREF。主匹配判定电路内的读出放大器通过识别这些电位差来判定条目与检索键不一致,并将该图中未示出的一致信号HIT0驱动至与该比较结果对应的电压。图25是将上述检索动作中的副匹配线与主匹配线的电压汇总的表。
按照上述结构与动作,图1和图9所示的存储器阵列具有以下两种效果。第一,通过减少连接在副匹配线和主匹配线上的晶体管数,可以防止动作速度的劣化。第二,即可以与现有的TCAM一样地接收三值信息,又可以利用编码后的信息进行检索动作。
至此,就范围被指定的条目和分别对二进制值成组编码后的检索键的检索动作进行了说明。但是,从到目前为止的说明可知,检索键不限于此,也能够对范围被指定的条目,和对于范围被指定的三进制值编码后的检索键进行检索动作。
此外,在图10和图11中,将主匹配判定电路MMD0的读出放大器当作如前所述的交叉耦合型的结构来决定了参考电压VREF。但是读出放大器的结构不限于此,也可以是将阈值设定在参考电压上的反相电路。此时,构成电路的晶体管数少,所以可以减少读出放大器面积。此外还可以除去读出放大器的起动信号,所以还可以获得设计容易的优点此外,图1和图9所示的存储器组内的存储器单元数,根据按几位来对输入信息和比较信息进行编码而不同。在这些图示出的例子中,示出了用2比特单位进行编码的存储器阵列,因此存储器组用4个(2的平方)存储单元MCi(i=0,1,2,3)组成一组。该存储器组是对应于图5所示的双TCAM单元的电路结构。因此可以认为,本实施例是通过改进编码方法和存储器阵列结构,利用两个图4所示的存储三进制值信息的TCAM单元,将往一个TCAM单元中存储的信息从三值增至四值的存储器阵列。这样考虑就很容易理解,尽管存储器单元数相同,也会像图22所示那样,能够用一个条目表示的情况的数量增加,从而获得了能够高效率地存储信息的效果。
本实施例的效果下面总结一下通过上述一热点成组编码和TCAM的结构及动作获得的效果。
第一效果在于,像图22所示那样,通过如此定义所谓的一热点成组编码,使得逻辑值‘1’的位置的不同具有意思,增加一个条目能够存储的信息量,从而与现有技术相比减少了存储范围被指定的IP地址所必须的条目数。与图4所示的现有的TCAM单元结构相比,由本代码把存储信息量从三值增到了四值,从而能够高效率地存储范围被指定的IP地址,因此可以有效地增加TCAM的存储器容量。此外,对应于二进制值的本代码的数据模型只含有一个逻辑值‘1’,因此还能够获得可以减少检索动作中的搜索线的充放电功率的效果。此外,通过提高存储器阵列的使用效率而使不存储条目(在此为IP地址)的字数增多,进而通过使对应的存储器单元的存储信息成为对应于逻辑值‘0’的值,可以阻止对应的副匹配线的放电,因此,还可以降低检索动作中的存储器单元的功耗。
第二效果在于,像图8所示那样,通过将条目编码器ENCDR、条目译码器DCDR、条目压缩电路CMP、条目扩展电路EXT分别内置于芯片内,可以在芯片内部进行三进制值与一热点成组编码的变换。按照本实施例的编码,条目及检索键的位数与输入信息相比是增多了,但是通过在芯片内部进行编码与译码,可以维持数据总线DQ的总线宽度,从而可以实现具有与现有的具有互换性的接口的TCAM。
第三效果在于,像图1或图9所示那样,通过使匹配线成为由副匹配线与主匹配线构成的分层结构,可以在条目和检索键中使用共同的代码。利用该效果,可以使在图5所示现有的双TCAM单元中不能够进行的、将范围被指定的信息作为检索键的检索动作,能够进行。此外,与副匹配线和主匹配线连接的晶体管数的减少使得负载电容分别减少,从而还能获得抑制动作速度劣化的效果。
此外,虽然至此没有特别提到用于存储器阵列的NMOS晶体管的规格,但图9所示存储器单元MC内的晶体管N611如在泛用的DRAM的存储器单元中的传输门中被众所周知的那样,其栅氧化膜厚的设计考虑了耐压。此外,为了防止存储节点中的存储电荷的泄露,设计时提高了沟道的杂质浓度。通过这些手段,将晶体管N61 1的阈值电压设计在高于设置在存储器阵列周边的逻辑电路中使用的晶体管的阈值电压的电平上。一方面,存储器单元MC内的晶体管N622和N623用于比较动作,所以优选开关响应快。因此,通过调整沟道的杂质浓度来降低阈值电压、并将导通状态中的电阻和扩散电容设计得低,这样才有利于缩短检索时间。同样,在副匹配判定电路内的晶体管N621的栅极电压施加升压电压VPP,因此其栅氧化膜厚的设计考虑了耐压。此外,晶体管N622是与检索动作有关的元件,因此从缩短检索时间的观点出发,优选将其阈值电压设计得低。此外,若阈值电压变低,则即使施加在栅极上的电压低,也能使晶体管导通。因此,同时还能获得可以通过抑制预充电电压VPC来降低副匹配线的充放电功率的效果。
实施例2下面说明利用在实施例1中说明的一热点成组编码进行信息的检索动作的TCAM的存储器阵列结构的另一例子。该结构的特征在于,对于3比特单位的编码,用8个存储器单元来构成存储器组。图12针对这一点,与图9对应地示出了由8个存储器单元MCi(i=0,1,...,7)构成的存储器组TMB00。此外,图26与图23对应,分别示出了0-31(10进制数)的代码。与8位的二进制值对应的代码是由将每组8位(=2的3次方位)的代码罗列成3组的24位构成的数据模型。在此,将3个代码组从左开始按下降的顺序表示为BTD2、BTD1、BTD0。此外,对于代码组BTDi(i=0,1,2)的要素来说,将条目从左侧以下降的顺序表示为(Ni7,Ni6,...,Ni0),将检索键表示为(SLi7,SLi6,...,SLi0)。此外,为了表明是用3比特单位进行了编码,以下在各代码组之间插入空白。
首先,定义0-7(10进制数)的一热点成组编码。使代码组BTD0像图23所示那样,成为逻辑值‘1’从N00(或SL00)向N07(或SL07)逐次移动1位的数据模型。而且,使代码组BTD1及BTD2的数据模型全为“00000001”。
接着,对于8-15(10进制数),是在使代码组BT D1的逻辑值‘1’向左(从N10(或SL10)向N11(或SL11))移动1位的状态下将代码组BTD0的逻辑值‘1’再次从N00(或SL00)向N07(或SL07)逐次移动1位的数据模型。以下同样,当10进制数每增加8时将代码组RTD1的逻辑值‘1’向左移动1位,并重复代码组BTD0的逻辑值‘1’的移动,由此决定16-31(10进制数)的代码。
下面,以1-30(10进制数)的范围为例,说明表示多个数时的数据模型。首先,对于1-7(10进制数)的范围,与图23所示的2比特单位的编码一样,将组BTD0归拢到一起,用代码“0000000100000001 11111110”来表示。其次,对于8-23(10进制数)的范围,通过对对应的成组编码的各位进行OR运算,用代码“0000000100000110 11111111”来表示。最后,用代码“00000001 0000100001111111”来表示24-30(10进制数)的范围。结果,1-30(10进制数)的范围由3个成组编码来表示。该个数比图23所示的2比特单位的编码少一个。因此,通过加大编码的位数,可以进一步抑制存储范围被指定的条目时必须的条目数,从而能够高效率地进行存储。此外,与实施例一样,通过提高存储器阵列的使用效率使得不存储条目的字数增多,因此可以阻止对应的存储器单元中的放电动作,从而还能够进一步降低检索动作中的存储器阵列的功耗。
此外,在本实施例的代码与图23所示的2比特单位的代码一样,对应于二进制值进行编码的检索键的数据模型中只含有一个逻辑值‘1’。而且编码的比特单位大,所以能够获得可以降低检索动作中的搜索线的充放电功率的效果。此外,迄今为止说明了10进制数每增加1时将逻辑值‘1’向左移动1位的数据模型的代码。但是数据模型不限于此,可以是其他的数据模型。例如,可以使0-7(10进制数)的代码组BTD0成为,与图26相反,逻辑值‘1’从N07(或SL07)向N00(或SL00)即向右侧逐次移动1位的数据模型。此时也与图26一样,能够用3个成组编码来表示1-30(10进制数)的范围。此外,到此为止,为了简化说明只考虑了0-31(10进制数)。但是,可以容易地推测出若将以上的方法展开,即,当相邻的下位代码组(在此为组BTD0和BTD1)的数据模型都到达“10000000”时,在将上一位的代码组(在此为组BTD2)中的逻辑值‘1’向左(在此为从N30(或SL30)向N31(或SL31))移动1位的状态下再次分配代码组BTD0与BTD1的数据模型,就能够定义31-255(10进制数)的代码。
实施例3下面说明利用在实施例1中说明的一热点成组编码进行信息的检索动作的TCAM的存储器阵列结构、尤其是副匹配判定电路的的另一个例子。本实施例的目的在于提供这种代码及电路结构在三进制值表示的检索键中,为了进行成组编码而被分割的多个位都是第三信息‘X’(所谓的掩码状态)时,对应的所有搜索线都不被驱动。具体说,例如在2比特单位的成组编码时,若作为检索键而输入三进制表示的信息“XX”(0-3(10进制数)所有值),则在图22所示的代码中,所有位获得逻辑值‘1’的代码,对应的所有搜索线被激活。因此,实施例1的结构存在因搜索线的驱动条数增多而使检索动作的功耗增加的问题。为了解决该问题,本实施例提供的电路结构使对应于信息“XX”的代码为“0000”,将对应的搜索线保持在待机状态,在这种情况下也能够准确地进行检索动作。
图13与图1及图9对应,示出了本实施例的存储器阵列的一部分。该结构与图9的不同之处在于,在副匹配判定电路SMD00中新增加了NMOS晶体管T623。晶体管T623的栅极连接组掩码信号BMSK0,漏极连接副匹配线SML00。而且,源极接地。在图27中,以0-3(10进制数)时为例,示出了搜索线SL0i(i=0,1,...,3)与组掩码信号BMSK0的对应关系。被定义为检索键的代码与图22的不同之处在于,表示0-3(10进制数)的全部时的数据模型从“1111”变更为“0000”。与该变更相对应,只有检索键被指定为0-3(10进制数)的范围时,组掩码信号的逻辑值才取‘1’。
下面按照图14说明检索键与条目一致时的检索动作。在此,假设关注的字线WL0上连接有两个存储器组MB00、MB01,分别与对应的副匹配线SML00、SML01连接的副匹配判定电路,与组掩码信号BMSK0、BMSK1分别连接。因此,在图14中,与成组编码后的条目“0001 1110”相对应,存储器组MB00内的存储节点N00和存储器组MB01内的存储节点N11-N13保持在地电压VSS上,存储器组MB01内的N01-N03及存储器组MB01内的存储节点N10保持在电源电压VDD上。
检索动作一开始,则与编码后的检索键“0001 0000”相对应,使搜索线SL00-SL03、SL11-SL13分别保持着地电压VSS,将成为地电压VSS的搜索线SL10驱动成阵列电压VDL。在此,在存储器组MB01内的存储器单元MC0中,晶体管T612、T613都成为导通状态,所以电压为预充电电压VPC的副匹配线SML01放电。一方面,在存储器组MB00中成为导通状态的晶体管只有存储器单元MC1-MC3内的晶体管T613,所以不论在哪个存储器中,副匹配线SML00与接地电极之间都不形成电流通路。但是由于电压为地电压VSS的组掩码信号BMSK0被驱动成阵列电压VDL而使副匹配判定电路SMD00内的晶体管T623导通,所以,电压为预充电电压VPC的副匹配线SML00放电。因此,成为地电压VSS的主匹配线MML0被主匹配判定电路MMD0充电,比较结果被判定为一致。
根据上述结构和动作,可以减少对应于检索键“XX”的搜索线的激活条数,从而可以抑制检索动作的功耗。此外,至此说明了进行2比特单位的编码时的情况,但是单位位数不限于此。可想而知,例如,如实施例2的图26所示那样进行3比特单位的编码时,通过对三进制表示的信息“XXX”定义代码“00000000”,可以获得同样的效果。此时,在实施例2中有8条搜索线被激活,而在本实施例中只要激活一条组掩码信号就可以,因此可以大幅度地降低检索动作的功耗。
实施例3的变形例此外,副匹配判定电路的结构不限于图13所示的结构,也可以是图17所示的结构。该结构与图13的不同之处在于,在副匹配判定电路SMD00中,摘除了NMOS晶体管T623,而新增加了与NMOS晶体管T622串联的NMOS晶体管T624。晶体管T624的栅极与组掩码信号BMSKB0连接,漏极与主匹配线MML0连接,源极与晶体管T622的漏极连接。在此,晶体管T622与T624的连接顺序可以颠倒。但是,如后所述,若要抑制匹配时进行充电动作的主匹配线的负载电容,优选将晶体管T624连接在主匹配线MLL0侧,以切断副匹配判定电路的内部负载。图28以0-3(10进制数)时为例,示出了搜索线SL0i(i=0,1,...,3)与组掩码信号BMSKB0的对应关系。与图27的不同之处在于,组掩码信号BMSKB0的极性与组掩码信号BMSK0相反。
下面按照图18说明检索键与条目匹配时的检索动作。在此,假设注视的字线WL0上连接有两个存储器组MB00、MB01,分别与对应的副匹配线SML00、SML01连接的副匹配判定电路分别与组掩码信号BMSKB0、BMSKB1连接。此外,假设与图14一样,存储了对应于1-3(10进制数)的范围的条目,进行与对应于0-3(10进制数)的检索键的比较。因此,在图18中,与成组编码后的条目“0001 1110”相对应,存储器组MB00内的存储节点N00和存储器组MB01内的存储节点N11-N13保持在地电压上,存储器组MB01内的N01-N03及存储器组MB01内的存储节点N10保持在电源电压上。
检索动作一开始,则与编码后的检索键“0001 0000”相对应,使搜索线SL00-SL03、SL11-SL13分别保持着地电压,将成为地电压VSS的搜索线SL10驱动成阵列电压VDL。在此,在存储器组MB01内的存储器单元MC0中,晶体管T612、T613都成为导通状态,所以成为预充电电压VPC的副匹配线SML01放电。一方面,在存储器组MB00中成为导通状态的晶体管只有存储器单元MC1-MC3内的晶体管T613,所以不论在哪个存储器中,副匹配线SML00与接地电极之间都不形成电流通路,从而使副匹配线SML00保持在预充电电压VPC上。但是由于成为阵列电压VDL的组掩码信号BMSKB0被驱动成地电压VSS而使副匹配判定电路SMD00内的晶体管T624截止,所以,成为地电压VSS的主匹配线MML0被主匹配判定电路MMD0充电,比较结果被判定为一致。
根据上述结构和动作,在对应于副匹配判定电路SMD00的检索键是信息“XX”时,可以使副匹配线SML00保持着预充电电压VPC,切断匹配线MML0与接地电极之间的电流通路。
即,既可以减少对应于检索键“XX”的搜索线的激活条数,又可以停止副匹配线的充放电动作,因此可以进一步抑制检索动作的功耗。
实施例4下面说明利用在实施例1中说明的一热点成组编码进行信息的检索动作的TCAM的存储器阵列结构、尤其是主匹配判定电路的的另一个例子。本实施例的目的在于降低与不存储条目(在此为IP地址)的存储器单元对应的主匹配线的功耗。
图15与图1及图9对应地示出了本实施例的存储器阵列的一部分。该结构与图9的不同之处在于,在主匹配判定电路MMD0中,新增加了PMOS晶体管T632与空标志寄存器EFREG。以使晶体管T631与接收阵列电压VDL的电极之间形成电流通路的方式插入晶体管T632。空标志寄存器EFREG是保持对应的字线上的存储器单元中是否存储了条目的信息的电路,通过与检索启动信号线平行地设置的空标志线EFLG写入保持的信息。此外,空标志寄存器EFREG的存储节点SNE0连接在晶体管T632的栅极上。
下面说明这种结构的主匹配判定电路的检索动作。首先,假设对应的字线WL0上的存储器单元中保持有条目时,存储节点SNE0的电压是对应于逻辑值‘0’的低电压电平。此时,晶体管T632保持导通状态,所以,主匹配判定电路MMD0通过驱动主匹配线MML0来进行比较结果的判定。一方面,假设对应的字线WL0上的存储器单元中没有保持条目时,存储节点SNE0的电压是对应于‘1’的高电压电平。此时,因晶体管T632截止而使主匹配判定电路MMD0不进行比较结果的判定,从而使主匹配线MML0保持非激活状态。此外,在空标志寄存器EFREG中保持的信息与条目同时写入。
根据上述结构与动作,本实施例的主匹配判定电路可以根据存储器阵列的使用状况来控制主匹配线的驱动。即,在检索动作中,可以降低与没有存储条目的存储器单元对应的主匹配线的充放电功率。因此,在存储器阵列使用效率高的存储器阵列中没有存储条目的存储器单元居多,所以,本主匹配判定电路最适合图1所示的存储器阵列。此外,通过与图13所示的副匹配判定电路进行组合,可以实现功耗更小的存储器阵列。
实施例5图16示出了利用图8所示的实施例1的一热点成组编码信息实现检索动作的TCAM的另一整体结构的例子。该结构的特征在于,将条目与检索键一起从条目压缩电路CMP通过第一编码条目总线FEBS输入到存储器阵列MA中。通过这种结构,范围被指定的检索键与条目一样被压缩后输入到存储器阵列中。因此,可以减少输入存储器阵列MA中的检索键数,所以可以实现检索动作中的功耗小的TCAM。此外,从实施例3和实施例4的说明中可知,如果使用利用了图13所示的副匹配判定电路或图15所示的主匹配判定电路的存储器阵列MA,就能够实现功耗更小的TCAM。
以上说明了利用一热点成组编码信息进行检索动作的TCAM。但是本发明的结构与动作不限于上述说明,可以进行各种变形。例如,存储器单元结构不限于图9所示的结构,可以是各种结构。具体说,可以像图5所示的存储器单元那样,将串联连接的晶体管T612、T613的顺序颠倒。此时,在待机状态下,可以利用导通状态的T613对晶体管T612与T613的连接节点进行预充电,因此可以防止因连接在搜索线上的晶体管T612的导通而引起的充电分配导致的副匹配线的电压降,从而可以准确地进行检索动作。
此外,在图9中示出了将搜索线与位线分开设置的存储器单元结构,但可以将这些信号线共用。此时,可以省去图1所示的搜索线驱动电路块SDB,所以可以减小芯片面积。
还有,虽然在图9中利用使用了一个晶体管和一个电容器的电路结构存储信息,但是,也可以将该部分换成如图2所示的由6个晶体管构成的所谓的SRAM单元、或通过在浮栅上存储电荷来存储信息的例如像闪存器那样的能够电擦除和编程的电可擦可编程只读存储器(EEPROM)。在换成一方的SRAM单元时,不需要形成电容器的特殊加工工序,因此可以抑制芯片制造成本。此外,与设置在存储器阵列周边的逻辑电路一样,使用开关特性优良的晶体管,因此可以实现高速地进行检索动作的存储器阵列。此外,不需要在图9所示的存储器单元中进行的更新动作,因此本TCAM的检索动作的时间可以更长。此外,使用本TCAM的系统的设计变得容易。换成另一方的EEPROM时,与SRAM一样,不需要更新动作。此外,可以减小存储器单元面积,因此使大容量化和低成本化成为可能。进而,存储器单元可以持续保持被切断电源的条目,所以可以实现损害风险低的TVAM。最后,虽然用图8说明了利用条目编码器ENCDR和条目压缩电路CMP,在芯片内部对接收的三进制表示的信息进行编码和压缩,以写入广范围的IP地址的方法,但是可以有各种方法。例如,使前述的比较用字符寄存器CPREG作为检索键与条目公共的寄存器。此外,该寄存器内置有计数器,具有只接收和保持检索键和条目的上限和下限,在芯片内部产生对应于被指定的范围的检索键和条目的功能。根据这种结构和功能,可以抑制范围被指定的IP地址的发送接收次数,因此可以实现降低了数据输入输出电路的功耗的低功率TCAM。
芯片内部的时钟频率高于数据总线DQ时,可以减少写入动作及读出动作所需要的周期数,所以可以进行更快的动作。
此外,可以利用如图2所示的网络处理器NP或检索引擎SE那样的外部的控制芯片来接收进行了一热点成组编码的条目,直接写入存储器阵列中。此时除了条目编码器ENCDR和条目压缩电路CMP以外,还可以去除分别进行条目的扩展、译码的条目扩展电路EXT、条目译码器EDCR,因此可以减小芯片面积。此外,可以高效率地接收条目和检索键,因此还可以减少写入动作和读出动作所需要的周期数以及功耗。而且不只是条目,还可以减少将光范围的IP地址作为检索键输入时所需要的周期数,所以还可以高速地低功率地进行检索动作。
以上根据发明的实施例具体说明了本发明者进行的发明,但是不言而喻,本发明不限定于上述实施例,在不脱离其构思的范围内可以有各种变更。例如,本发明的TCAM不限于分开的芯片即单器件,还适用于装配在被称为单片式系统(SoC)的系统LSI上的TCAM块,此时也能获得与到现在为止所说明的实施例相同的效果。
如上所述,本发明的半导体器件不限于IP地址,可以增加与各种信息有关的每一条目的信息量,因此适用于利用信息量大的图表进行检索动作的技术。
实施例6图29示出了图8和图16所示的存储器阵列MA的结构的例子。该结构有以下两个特征。第一特征在于,具有由图1所示的存储器阵列构成的两个副阵列SMA0、SMA1。第二特征在于,利用对应的主匹配判定电路块MMDB0、MMDB1,分别用驱动搜索线(SL000-SL003、SL010-SL013、...、SL100-SL103、SL110-SL113、...)的搜索线驱动电路块SDB0、SDB1对接收作为第一编码条目总线FEBS的结构要素的第一编码条目线(FE00-FE03、FE10-FE13、...)进行控制。此外,为了简化说明,在该图中省略了设置在副阵列SMA0、SMA1中的行译码器和读写电路块、位线和字线。下面针对副阵列SMA0,详细说明这些特征。
首先,副阵列SMA0具有256条主匹配线MML00-MML0255,在这些主匹配线与搜索线SL000-SL003、SL010-SL013、...的交叉点上设置了存储器组MB00、MB01、...、MB2550、MB2551、...。而且,与存储器组相对应地分别设置了副匹配线判定电路SMD00、SMD01、...、SMD2550、SMD2551、...。
搜索线驱动电路块SDB0由分别设置在第一编码条目线FEL00-FEL03、FEL10-FEL13...与搜索线 SL000-SL003、SL010-SL013、...之间的搜索线驱动电路SD00-SD03、SD10-SD13、...和256输入NAND电路DNM构成。如图30所示,每个搜索线驱动电路由反相电路INV和NAND电路ND构成。例如是搜索线驱动电路SD00时,将第一编码条目线FEL00连接在NAND电路ND的一个输入端子上,将NAND电路NDM的输出信号SNEOB连接在另一个输入端子上。此外,将NAND电路ND的输出端子连接在反相电路INV的输入端子上,将反相电路INV的输出作为搜索线SL00。
主匹配判定电路块MMDB0由256个主匹配判定电路MMD0-MMD255构成。将连接在各主匹配判定电路中的空标志寄存器EFREG的存储节点上的信号SNE00-SNE0255(例如,图15中的主匹配判定电路MMD0内的存储节点SNE0与信号SNE00对应),连接在前述的搜索线驱动电路块SDB0内的256输入NAND电路NDM的各输入端子上。
这种结构有以下两种效果。第一效果在于,因存储器阵列MA被分割而使搜索线的长度变短,负载电容减小,因此可以缩短驱动搜索线所需要的时间。即,可以缩短检索动作时间。第二效果在于,在副阵列内的存储器单元中一个条目也没有写入时,可以停止对应的搜索线的驱动。即,条目空时,如图15所示,对应的空条目寄存器的存储节点是对应于逻辑值‘1’的高电压电平,因此,副阵列SMA0空时,因信号SNE0B保持在地电压VSS上而使对应的搜索线保持在地电压VSS上。因此,在检索动作中可以抑制搜索线的驱动,所以可以降低功耗。
此外,对于利用本发明的一热点成组编码存储条目的CAM来说,上述第二效果特别大。该理由如下如图24所示,本CAM可以用少于现有技术的条目数存储范围被指定的IP地址,因此可以缩小进行信息比较的存储器阵列区域,因此不需要在全体存储器阵列进行检索动作,可以停止不需要的副阵列的检索动作,从而可以减小芯片整体的功耗。以上以图29为例,说明了本实施例的存储器阵列结构,但该结构可以有各种变形。例如,虽然在该图中示出了对具有256条主匹配线的每个副阵列设置搜索线驱动电路块的结构,但该设置不限于此。本发明的CAM与现有的DRAM一样,通过充电分配动作来进行条目的读出,因此,若要获得充分的读出信号就必须限制线电容即位线长度。若假设该长度像图29那样是256条匹配线的长度,则搜索线的长度不限于此,可以长到驱动搜索线所需要的时间被检索动作所允许的范围。此时,可以减少存储器阵列内的搜索线驱动电路块数,因此可以抑制存储器阵列面积。
对此,还可以使搜索线短于位线,并对每个副阵列设置多个搜索线驱动电路块。此时可以精细地控制激活的搜索线的长度,因此可以通过条目数来进一步减小功耗。
此外,虽然在图29中示出了搜索线驱动电路块使用256输入NAND电路的结构例子,但在不脱离逻辑的范围内可以有各种变形。例如可以通过将2至3输入的NAND电路或NOR电路与反相电路组合在一起来高效率地进行搜索线驱动电路块的设计。或者,由于从对应于主匹配判定电路MMD0的存储器单元开始依次写入条目时,只要由对应于主匹配判定电路MMD0的存储节点的信号就能够判断出副阵列内的条目是否空,因此,可以用取代256输入NAND电路NDM而设置的反相电路来接收该信号,并用其输出信号来控制搜索线驱动电路。此时,可以减少逻辑电路面积和信号配线数,因此可以抑制存储器阵列面积。
权利要求
1.一种半导体器件,其特征在于,包括多条位线,沿上述多条位线的方向、与上述多条位线分别成对地设置的多条搜索线,沿与上述多条位线交叉的方向设置的多条字线,沿上述多条字线方向设置的多条主匹配线,沿上述主匹配线方向、与上述多条主匹配线分别成对地设置的多条副匹配线,设置在上述多条位线与上述多条字线的各个交点上的存储器单元,与上述多条副匹配线分别连接的副匹配判定电路,以及与上述多条主匹配线分别连接的主匹配判定电路,其中,上述存储器单元与对应的上述多条副匹配线中的一条连接,并且通过对应的副匹配判定电路连接在上述多条主匹配线中的一条上,对通过上述多条搜索线输入的信息和保持在上述存储器单元中的信息进行比较。
2.如权利要求1所述的半导体器件,其特征在于有偶数个上述存储器单元连接在上述多条副匹配线上。
3.如权利要求2所述的半导体器件,其特征在于上述存储器单元用两个存储器单元存储4种信息。
4.如权利要求3所述的半导体器件,其特征在于上述存储器单元分别具有被连接成使上述多条副匹配线分别与接地电极之间形成电流通路的第一和第二MOS晶体管以及保持二进制信息的存储电路;上述第一MOS晶体管的栅极与上述多条搜索线连接,上述第二MOS晶体管的栅极与上述存储电路连接。
5.如权利要求4所述的半导体器件,其特征在于上述存储电路具有第三MOS晶体管和电容器,并在每隔预定的时间间隔进行读出和写入的更新动作的同时保持信息。
6.一种半导体器件,包括以使第一信号线组与第二信号线组连接的方式设置的输入输出电路、第一寄存器、编码器、条目压缩电路,以及存储器阵列,其特征在于上述输入输出电路将第一或第二信息输出给上述第二信号线组;上述第一寄存器保持上述第一信息;上述编码器将根据经上述第二信号线组接收的上述第一和第二信息进行编码的第三信息,输出给第三信号线组;上述条目压缩电路通过对经上述第三信号线组连续输入的多个第三信息进行逻辑运算而产生第四信息,并将其输出给第四信号线组;以及上述存储器阵列存储经上述第四信号线组输入的第四信息,同时进行与经上述第三信号线组输入的第三信息的比较动作。
7.如权利要求6所述的半导体器件,其特征在于上述编码器按多个位进行编码。
8.如权利要求7所述的半导体器件,其特征在于上述条目压缩电路具有第一多个寄存器、比较电路以及OR运算电路,其中,上述第一多个寄存器存储多个上述第三信息,上述比较电路对分别存储在上述第一多个寄存器中的信息按各个位进行比较,以及上述OR运算电路通过根据上述比较电路的比较结果对分别存储在上述多个寄存器中的信息按各个位进行OR运算,产生上述第四信息。
9.如权利要求8所述的半导体器件,其特征在于,包括第二和第三寄存器、译码器以及条目扩展电路,其中,上述条目扩展电路对通过上述第四信号线组从上述存储器阵列读出的第四信息进行分割而产生第一多个信息,并进行存储;上述译码器存储对通过第五信号线组接收的上述第一多个信息分别进行译码而得到的多个上述第一和第二信息;上述第二寄存器存储通过上述第五信号线组接收的多个上述第一信息;上述第三寄存器存储通过上述第五信号线组接收的多个上述第二信息;以及从上述第二信号线组通过上述输入输出电路,将保持在上述第二和第三寄存器中的多个上述第一和第二信息输出给上述第一信号线组。
10.如权利要求9所述的半导体器件,其特征在于,包括计数器和由动态存储器单元构成的存储器阵列,其中,上述计数器在更新动作中,产生用于有选择地选择上述多个存储器单元的行地址。
11.一种半导体器件,其特征在于,包括多条位线,沿上述多条位线的方向、与上述多条位线分别成对地设置的多条搜索线,沿与上述多条位线交叉的方向设置的多条字线,沿上述多条字线的方向设置的多条主匹配线,沿上述主匹配线方向、与上述多条主匹配线分别成对地设置的多条副匹配线,设置在上述多条位线与上述多条字线的各个交点上的存储器单元,与上述多条副匹配线分别连接的副匹配判定电路,以及与上述多条主匹配线分别连接的主匹配判定电路,其中,上述存储器单元与上述多条副匹配线连接,并且在对经上述多条搜索线输入的信息和保持在上述存储器单元中的信息进行比较的动作中,通过上述多条副匹配线的放电来判定对应的信息一致。
12.如权利要求11所述的半导体器件,其特征在于具有设置在上述多条副匹配线和与其对应的上述多条主匹配线之间的多个副匹配判定电路;上述副匹配判定电路包括第一和第二MOS晶体管;上述第一MOS晶体管被连接成使得作为该MOS晶体管的一个端子的第一电极与上述多条副匹配线之间形成电流通路;上述第二MOS晶体管以使作为该MOS晶体管的一个端子的第二电极与上述多条主匹配线之间形成电流通路的方式连接,同时,上述第二MOS晶体管的栅极连接在上述多条副匹配线上。
13.如权利要求12所述的半导体器件,其特征在于将第一电源电压供给上述第一电极,将第二电源电压供给上述第二电极,以及上述第一电源电压高于上述第二电源电压。
14.一种半导体器件,其特征在于,包括多条位线,沿与上述多条位线交叉的方向设置的多条字线,以及设置在上述多条位线与上述多条字线的各个交点上的存储器单元,其中,上述存储器单元基于某一个位一定是逻辑值‘1’的公共的成组编码进行第一信息与第二信息的比较。
15.如权利要求14所述的半导体器件,其特征在于,具有沿上述多条字线方向设置的多条主匹配线,以及沿上述主匹配线方向、与上述多条主匹配线分别成对地设置的多条副匹配线,其中,上述存储器单元与对应的上述多条副匹配线中的一条连接。
16.如权利要求15所述的半导体器件,其特征在于,包括与上述多条副匹配线分别连接的副匹配判定电路,以及与上述多条主匹配线分别连接的主匹配判定电路,其中,上述存储器单元通过对应的上述副匹配判定电路连接在上述多条主匹配线中的一条上。
17.如权利要求16所述的半导体器件,其特征在于上述副匹配判定电路,根据对应的代码组的比较结果来驱动对应的上述多条主匹配线中的一条;以及上述主匹配判定电路通过识别在对应的上述多条主匹配线中的一条上产生的微小信号来判定整个条目的比较结果。
18.一种信息检索系统,其特征在于,包括处理器、检索器、以及内容存储器,其中,上述处理器通过数据总线与上述检索器连接,同时,通过内容总线与上述内容存储器连接;上述检索器与上述内容存储器通过内容存储器地址总线连接;以及上述检索器将从上述处理器输入的第一信息和第二信息变换成某一个位一定是逻辑值‘1’的公共的成组编码后进行比较。
19.如权利要求18所述的信息检索系统,其特征在于,上述检索器包括多条位线,沿与上述多条位线交叉的方向设置的多条字线,沿上述多条字线的方向设置的多条主匹配线,沿上述主匹配线的方向、与上述多条主匹配线分别成对地设置的多条副匹配线,以及以及设置在上述多条位线与上述多条字线的各个交点上的存储器单元,其中,上述存储器单元与对应的上述多条副匹配线中的一条连接。
20.如权利要求18所述的信息检索系统,其特征在于上述处理器通过条目计数信号与上述检索器共有与上述第一信息有关的信息。
21.一种半导体器件,其特征在于具有编码器和存储器阵列,其中,上述编码器根据第一和第二信息,产生某一个位一定是逻辑值‘1’的成组编码,同时,通过第一信号线组将其输出给上述存储器阵列;以及上述存储器阵列利用上述成组编码进行第三信息与第四信息的比较。
22.如权利要求21所述的半导体器件,其特征在于上述成组编码对上述第三和第四信息是公共的。
23.如权利要求22所述的半导体器件,其特征在于上述存储器阵列包括多条位线,沿与上述多条位线交叉的方向设置的多条字线,设置在上述多条位线与上述多条字线的各个交点上的存储器单元,沿上述多条字线的方向设置的多条主匹配线,以及沿上述主匹配线的方向、与上述多条主匹配线分别成对地设置的多条副匹配线,其中,上述存储器单元与对应的上述多条副匹配线中的一条连接。
全文摘要
本发明通过高效率地存储范围被指定的IP地址,减少必要的条目数,从而提高TCAM的存储器容量。本发明的具有代表性的一种装置如下使存储信息(条目)和输入信息(比较信息或检索键)成为某一个位一定是逻辑值‘1’的公共的成组编码。此外,使匹配线成为分层结构,在多条副匹配线与多条搜索线的交点上设置存储器单元,进而使副匹配线通过副匹配判定电路与主匹配线分别连接,在主匹配线上设置主匹配判定电路。
文档编号G11C15/04GK1645514SQ20041008186
公开日2005年7月27日 申请日期2004年12月24日 优先权日2003年12月25日
发明者半泽悟, 阪田健, 梶谷一彦 申请人:株式会社日立制作所, 尔必达存储器株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1