《查表装置以及查表方法.pdf》由会员分享,可在线阅读,更多相关《查表装置以及查表方法.pdf(31页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 104346289 A(43)申请公布日 2015.02.11CN104346289A(21)申请号 201410353246.7(22)申请日 2014.07.2461/859,796 2013.07.30 US14/280,698 2014.05.19 USG06F 12/02(2006.01)G06F 17/30(2006.01)G11C 15/00(2006.01)(71)申请人联发科技股份有限公司地址中国台湾新竹科学工业园区新竹市笃行一路一号(72)发明人陈宏庆(74)专利代理机构北京万慧达知识产权代理有限公司 11111代理人张金芝 杨颖(54) 发明名称。
2、查表装置以及查表方法(57) 摘要本发明提供一种查表装置以及查表方法。查表装置包含内容寻址存储器元件和第一高速缓存存储器,内容寻址存储器元件储存至少一个表,第一高速缓存存储器用来高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。本发明的查表装置及查表方法为网络应用提供一种创新的查表设计,可以达到较低功率消耗和较高搜寻速度。(30)优先权数据(51)Int.Cl.权利要求书2页 说明书14页 附图14页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书14页 附图14页(10)申请公布号 CN 104346289 ACN 104346289。
3、 A1/2页21.一种查表装置,包含有:内容寻址存储器元件,用来储存至少一个表;以及第一高速缓存存储器,用来高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。2.根据权利要求1所述的查表装置,其特征在于,另包含有:多个第二高速缓存存储器,每一第二高速缓存存储器用来高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果;以及仲裁器,耦接于所述第一高速缓存存储器与每一第二高速缓存存储器之间,所述仲裁器用来仲裁所述多个第二高速缓存存储器和所述第一高速缓存存储器之间的存取。3.根据权利要求1所述的查表装置,其特征在于,所述第一高速缓存存储器是非。
4、阻塞高速缓存存储器。4.根据权利要求1所述的查表装置,其特征在于,所述第一高速缓存存储器支持乱序完成。5.根据权利要求1所述的查表装置,其特征在于,当所述内容寻址存储器元件中的表内容改变时,所述第一高速缓存存储器将高速缓存数据作废。6.一种查表装置,包含有:内容寻址存储器元件,具有多个内容寻址存储器条目来以字组聚合方式垂直地储存多个表,其中所述多个内容寻址存储器条目可反映包含所述多个内容寻址存储器条目的有效比特输入,且当接收到相对应有效比特为预定逻辑值时,内容寻址存储器条目无效;以及范围屏蔽电路,用来通过指定所述有效比特输入的一部分中所包含的每一有效比特为所述预定逻辑值,来屏蔽所述有效比特输入。
5、的所述部分,其中所述有效比特输入的所述部分对应未选到的表。7.根据权利要求6所述的查表装置,其特征在于,所述范围屏蔽电路包含有:范围映射器,用来接收被选取表的表索引,并且产生所述被选取表的开始内容寻址存储器条目的条目索引,以及所述被选取表的结束内容寻址存储器条目的条目索引;以及范围解码器,用来依据所述被选取表的所述开始内容寻址存储器条目的所述条目索引,以及所述被选取表的所述结束内容寻址存储器条目的所述条目索引来设定所述有效比特输入。8.一种查表装置,包含有:内容寻址存储器元件,具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目;以及控制逻辑,用来将所述冗余内容寻址存储器条目编程为。
6、数据字,以作为新主要内容寻址存储器条目,并利用所述新主要内容寻址存储器条目来代替所述内容寻址存储器元件中的特定主要内容寻址存储器条目,以及将所述特定主要内容寻址存储器条目编程为所述数据字。9.根据权利要求8所述的查表装置,其特征在于,用于编程所述冗余内容寻址存储器条目的所述数据字是欲加入至所述内容寻址存储器元件的新数据字。10.根据权利要求9所述的查表装置,其特征在于,当利用所述新主要内容寻址存储器条目来代替所述内容寻址存储器元件中的所述特定主要内容寻址存储器条目时,所述控制权 利 要 求 书CN 104346289 A2/2页3逻辑另用来在背景将原本储存在主要内容寻址存储器条目中的数据字洗牌。
7、至下一主要内容寻址存储器条目,所述多个主要内容寻址存储器条目从表的最后数据字开始,到储存在所述特定主要内容寻址存储器条目中的所述表的特定数据字结束。11.根据权利要求10所述的查表装置,其特征在于,所述控制逻辑将所述特定主要内容寻址存储器条目编程为所述新数据字,并且在所述多个数据字被洗牌至所述下一主要内容寻址存储器条目后,释放所述冗余内容寻址存储器条目。12.根据权利要求8所述的查表装置,其特征在于,用来编程所述冗余内容寻址存储器条目的所述数据字是原本储存在所述内容寻址存储器元件中的所述特定主要内容寻址存储器条目中的数据字。13.根据权利要求12所述的查表装置,其特征在于,另包含有:测试单元,。
8、用来在当利用所述新主要内容寻址存储器条目来代替所述特定主要内容寻址存储器条目时,针对所述特定主要内容寻址存储器条目执行运行时间测试。14.根据权利要求13所述的查表装置,其特征在于,在针对所述特定主要内容寻址存储器条目执行的所述运行时间测试完成后,所述控制逻辑将所述冗余内容寻址存储器条目中的所述数据字恢复至所述特定主要内容寻址存储器条目。15.一种查表方法,包含有:在内容寻址存储器元件中储存至少一个表;以及高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。16.一种查表方法,包含有:以字组聚合方式垂直地将多个表储存至内容寻址存储器元件中的多个内容寻址存储器条目,。
9、其中所述多个内容寻址存储器条目可反映包含所述多个内容寻址存储器条目的多个有效比特的有效比特输入,且当接收到相对应有效比特为第一逻辑值时,内容寻址存储器条目有效,以及当接收到所述相对应有效比特为第二逻辑值时,所述内容寻址存储器条目无效;以及通过指定所述有效比特输入的一部分中所包含的每一有效比特为所述第二逻辑值,来屏蔽所述有效比特输入的所述部分,其中所述有效比特输入的所述部分对应未选到的表。17.一种查表方法,包含有:使用具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目的内容寻址存储器元件;将所述冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目;利用所述新主要内容。
10、寻址存储器条目来代替所述内容寻址存储器元件中的特定主要内容寻址存储器条目;以及将所述特定主要内容寻址存储器条目编程为所述数据字。权 利 要 求 书CN 104346289 A1/14页4查表装置以及查表方法【 技术领域 】0001 本发明有关于执行数据比较,尤其是一种使用内容寻址存储器(content-addressable memory,CAM)元件的查表装置以及相关查表方法。【 背景技术 】0002 内容寻址存储器是一种特别适合高速应用的存储器。具体来说,内容寻址存储器符合需要高速数据库搜寻的应用需求。内容寻址存储器会就输入搜寻关键字和由数据字所构成的存储表进行比较,并将表中匹配的数据字的。
11、地址回传。换句话说,在内容寻址存储器中,并不是通过一开始提供地址来存取内容寻址存储器阵列所储存的数据字,而是一开始利用输入搜寻关键字来在内容寻址存储器阵列中执行比较,来在包含和输入搜寻关键字的相同数据并显示“匹配”或是“命中”的内容寻址存储器阵列里,找出一个或是多个行位置。这样一来,便可依据其内容而非地址来存取储存的数据。因此,由于其快速搜寻能力,内容寻址存储器元件是用来实现查表操作的良好选项。不过,许多内容寻址存储器制造商所遭遇的共同问题都是在搜寻操作时耗电量过大,无法得到最佳化的搜寻速度。【 发明内容 】0003 有鉴于此,本发明特提供以下技术方案:0004 本发明实施例提供一种查表装置,。
12、包含有内容寻址存储器元件及第一高速缓存存储器,内容寻址存储器元件用来储存至少一个表;第一高速缓存存储器用来高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。0005 本发明实施例另提供一种查表装置,包含有内容寻址存储器元件和范围屏蔽电路,内容寻址存储器元件具有多个内容寻址存储器条目来以字组聚合方式垂直地储存多个表,其中多个内容寻址存储器条目可反映包含多个内容寻址存储器条目的有效比特输入,且当接收到相对应有效比特为预定逻辑值时,内容寻址存储器条目无效;范围屏蔽电路用来通过指定有效比特输入的一部分中所包含的每一有效比特为预定逻辑值,来屏蔽有效比特输入的部分,其中有效比特。
13、输入的部分对应未选到的表。0006 本发明实施例另提供一种查表装置,包含有内容寻址存储器元件和控制逻辑,内容寻址存储器元件具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目;控制逻辑用来将冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目,并利用新主要内容寻址存储器条目来代替内容寻址存储器元件中的特定主要内容寻址存储器条目,以及将特定主要内容寻址存储器条目编程为数据字。0007 本发明实施例又提供一种查表方法,包含有在内容寻址存储器元件中储存至少一个表;以及高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。0008 本发明实施例又提供一。
14、种查表方法,包含有以字组聚合方式垂直地将多个表储存至内容寻址存储器元件中的多个内容寻址存储器条目,其中多个内容寻址存储器条目可反说 明 书CN 104346289 A2/14页5映包含多个内容寻址存储器条目的多个有效比特的有效比特输入,且当接收到相对应有效比特为第一逻辑值时,内容寻址存储器条目有效,以及当接收到相对应有效比特为第二逻辑值时,内容寻址存储器条目无效;以及通过指定有效比特输入的一部分中所包含的每一有效比特为第二逻辑值,来屏蔽有效比特输入的部分,其中有效比特输入的部分对应未选到的表。0009 本发明实施例又提供一种查表方法,包含有使用具有多个主要内容寻址存储器条目以及至少一个冗余内容。
15、寻址存储器条目的内容寻址存储器元件;将冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目;利用新主要内容寻址存储器条目来代替内容寻址存储器元件中的特定主要内容寻址存储器条目;以及将特定主要内容寻址存储器条目编程为数据字。0010 本发明的查表装置及查表方法为网络应用提供一种创新的查表设计,可以达到较低功率消耗和较高搜寻速度。【 附图说明 】0011 图1为本发明查表装置的第一实施例的示意图。0012 图2为本发明查表装置所采用的高速缓存存储器一致性机制的实施例的示意图。0013 图3为本发明查表装置的第二实施例的示意图。0014 图4为本发明针对三元内容寻址存储器采用二阶高速缓。
16、存存储器来降低排队延迟的实施例的示意图。0015 图5为本发明非阻塞高速缓存存储器所执行的”命中未中”操作的实施例的示意图。0016 图6为本发明高速缓存存储器的乱序事务处理的实施例的示意图。0017 图7为本发明查表装置的第三实施例的示意图。0018 图8为本发明查表装置的第四实施例的示意图。0019 图9为本发明三元内容寻址存储器宏单元的实施例的示意图。0020 图10为本发明查表装置的第五实施例的示意图。0021 图11为具有可编程优先顺序的三元内容寻址存储器条目的内容寻址存储器元件。0022 图12为本发明支持针对不同表同时查找操作的内容寻址存储器元件的实施例的示意图。0023 图13。
17、为本发明查表装置的第六实施例的示意图。0024 图14为图13所示的查表装置所执行的表更新工作的示意图。0025 图15为图13所示的查表装置所执行的运行时间测试的示意图。【 具体实施方式 】0026 在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的包含是开放式的用语,故应解释成包含说 明 书CN 104346289 A3/14页6但不限定于。另外,耦接一词在此包含任何直接及间接的。
18、电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。0027 本发明的主要精神在于为网络应用提供一种创新的查表设计,使用内容寻址存储器元件(content-addressable memory(CAM)based device),例如三元内容寻址存储器(Ternary Content-Addressable Memory,TCAM),加上高速缓存存储器系统(cache system),例如单阶(single-level)或是多阶(multi-level)高速缓存存储器系统,以达到较低功率消耗和较高搜寻速。
19、度。此外,透过表的聚合(aggregation),多个表可以共用一个单一内容寻址存储器元件,进而达到更有弹性的操作。另外,该内容寻址存储器元件可搭载至少一个冗余内容寻址存储器条目(entry)(例如至少一个双插槽(repair slot),该冗余内容寻址存储器条目能够避免因为表更新或是运行时间测试所造成的搜寻停滞(stall)。关于本发明更进一步的细节将说明如下。0028 图1为本发明查表装置的第一实施例的示意图。在此实施例中,查表装置100包含有内容寻址存储器元件102、高速缓存存储器104以及高速缓存控制器106。举例来说,内容寻址存储器元件102可以由具有多个三元内容寻址存储器条目(也被。
20、称为三元内容寻址存储器行或是三元内容寻址存储器字)的三元内容寻址存储器110以及优先编码器(priority encoder)114所实现。其中每个三元内容寻址存储器条目都储存有数据字(例如WORD0WORDn)以及具有比较器(例如CMP0CMPn)。当三元内容寻址存储器110接收到输入搜寻关键字SK后,相对应的比较器会将输入搜寻关键字SK和每一数据字进行比较。每一个三元内容寻址存储器条目中的数据字是储存在三元内容寻址存储器细胞中的一串比特(未显示于图中)。其中每一比特可以是“0”、“1”或是“X”(不理会)。举例来说,储存的数据字“100X”会匹配“1000”或是“1001”的输入搜寻关键字。
21、。因此,一个输入搜寻关键字可能会对应多个匹配的三元内容寻址存储器条目。优先编码器114用来选择排名第一的匹配三元内容寻址存储器条目,即在所有匹配的三元内容寻址存储器条目中,具有较高优先顺序的匹配三元内容寻址存储器条目。并且使用所选择的三元内容寻址存储器条目的条目索引来针对输入搜寻关键字SK设定搜寻结果SR。应注意的是,三元内容寻址存储器110仅仅是内容寻址存储器元件102的一个范例,本发明不以此为限。在一个设计变化中,可以使用由内容寻址存储器细胞所构成的内容寻址存储器来实现内容寻址存储器元件102,其中每一内容寻址存储器细胞是“0”或“1”。这也属于本发明的范围。在以下的段落中,“三元内容寻址。
22、存储器”和“内容寻址存储器”也可互换。0029 当三元内容寻址存储器110用于网络应用时,输入搜寻关键字SK可以是输入分组的分组报头,且由三元内容寻址存储器条目所构成的三元内容寻址存储器宏单元(TCAM unit macro)中储存的数据字WORD0WORDn可以是由一组预定规则所建立的表113,其中每一预定规则是储存在一个三元内容寻址存储器条目中的一个数据字。因此,三元内容寻址存储器110会比较该分组报头和该组预定规则以找出哪一规则匹配该分组报头。搜寻结果SR会指出排名第一的匹配三元内容寻址存储器条目的位置,并当作规则索引传送到后续规则动作表(未显示于图中)以从多个预定规则动作中选择一个规则。
23、动作。例如“允许(permit)”、“拒绝(deny)”、复制、服务质量(quality of service)控制等等。分组处理引擎(未显示于图中)会基于所选择的规则动作来处理该输入分组。当来源装置试图与目的说 明 书CN 104346289 A4/14页7装置透过网络建立连结时,可能会产生来自相同来源装置并往相同目的装置去的突发分组(burst of packets)(又称作一分组序列(packet train)。由于该来源装置以及该目的装置的网络地址都是固定的,属于相同分组序列的连续分组的分组报头可能会很相似。因此,表113所定义的相同规则可能会匹配一列中的若干个分组报头。换句话说,同一。
24、交通流量的进入分组会有相似/相同的分组报头,意味着最近存取的三元内容寻址存储器数据字可能会在短时间内再度被存取。基于三元内容寻址存储器查表的时间局部性,本发明提出使用高速缓存结构来提升三元内容寻址存储器的带宽并且降低三元内容寻址存储器的操作功率的方案。0030 高速缓存控制器106用来控制高速缓存存储器104的存取,包含有散列单元(hash unit)115、匹配决定单元116以及选择器117。高速缓存存储器104透过高速缓存控制器106耦接至三元内容寻址存储器110,用来高速缓存三元内容寻址存储器110的至少一输入搜寻关键字以及至少一相对应搜寻结果。举例来说,当输入搜寻关键字SK0以及高速缓。
25、存未中(cache miss)发生时,输入搜寻关键字SK0会被输入至三元内容寻址存储器110以进行数据比较,并得到相对应搜寻结果SR0。输入搜寻关键字SK0以及相对应搜寻结果SR0透过高速缓存存储器104的替换策略来被高速缓存在高速缓存存储器104中。相似地,当输入搜寻关键字SK1/SK2以及高速缓存未中发生时,输入搜寻关键字SK1/SK2会被输入至三元内容寻址存储器110以进行数据比较,并得到相对应搜寻结果SR1/SR2。输入搜寻关键字SK1/SK2以及相对应搜寻结果SR1/SR2透过高速缓存存储器104的替换策略来被高速缓存在高速缓存存储器104中。0031 高速缓存存储器104中的高速缓。
26、存列105的数目小于三元内容寻址存储器110中的三元内容寻址存储器条目112的数目。因此,散列单元115会针对输入搜寻关键字SK产生散列值(hash value),并且将该散列值输出为高速缓存列索引。匹配决定单元116会对输入搜寻关键字SK和散列单元115所产生的散列值所指向的高速缓存列所得到的高速缓存搜寻关键字(例如SK2)进行比较。当输入搜寻关键字SK匹配高速缓存的搜寻关键字时,即高速缓存命中。匹配决定单元116控制选择器117来直接输出散列单元115所产生的散列值所指向的高速缓存列所得到的高速缓存搜寻结果(例如SR2)为输入搜寻关键字SK的搜寻结果。这样一来,在三元内容寻址存储器110内。
27、部并无须执行输入搜寻关键字SK的数据比对,因而降低了功耗。0032 当输入搜寻关键字SK不匹配高速缓存的搜寻关键字时,即高速缓存未中。三元内容寻址存储器110便需要针对输入搜寻关键字SK执行数据比对,并据以产生搜寻结果SR。匹配决定单元116控制选择器117来输出从三元内容寻址存储器110所得到的搜寻结果SR。此外,视所采用的替换策略而定,高速缓存在输出散列单元115所产生的散列值所指向的高速缓存列中的搜寻关键字SK2和搜寻结果SR2可以选择性地替换输入搜寻关键字SK和搜寻结果SR。0033 如上所述,至少一个搜寻关键字以及三元内容寻址存储器110中相关于表113的至少一个相对应搜寻结果被高速。
28、缓存于高速缓存存储器104中。因此,若是发现高速缓存的搜寻关键字和该输入搜寻关键字相同,高速缓存的搜寻结果可被重复使用。可能至少一个条目被插入表113,至少一个条目从表113被移除,及/或表113中的至少一个条目被改变。因此查表装置100也可采用高速缓存存储器一致性机制(cache coherence 说 明 书CN 104346289 A5/14页8mechanism),如图2所示。图2为本发明查表装置所采用的高速缓存存储器一致性机制的实施例的示意图。每次三元内容寻址存储器110中的表内容改变(例如,写入)时,高速缓存存储器104会作废/清除其高速缓存的数据(图2中标识为“无效”)。0034。
29、 高速缓存存储器104和三元内容寻址存储器110之间的若干固有特性比较如下表所示。0035 0036 从上表可知,高速缓存存储器104具有较快的存取速度、较低的延迟时间以及较低的功耗。由于采用单阶的高速缓存存储器结构,高速缓存存储器104能够降低三元内容寻址存储器查表的功耗和延迟时间,并且通过高高速缓存命中率来增加三元内容寻址存储器的带宽。简而言之,使用高速缓存存储器能够避免三元内容寻址存储器的瓶颈,并且降低三元内容寻址存储器的功率消耗。在一设计变化中,也可以采用多阶的高速缓存存储器结构来提供相比于单阶的高速缓存存储器结构更多的好处/优势。0037 图3为本发明查表装置的第二实施例的示意图。在。
30、此实施例中,查表装置300采用二阶高速缓存存储器结构。因此,除了上述内容寻址存储器元件102(可以使用三元内容寻址存储器110来实现)以及高速缓存存储器104(当作第一阶高速缓存存储器)以外,查表装置300包含有仲裁器(arbiter)302以及多个高速缓存存储器304_0304_k(当作第二阶高速缓存存储器)。举例来说,高速缓存存储器304_0304_k会分别从不同代理器Agent_0Agent_k接收输入搜寻关键字。每一第二阶高速缓存存储器的功能和第一阶高速缓存存储器的功能相似,两者之间主要的差别在于,当发生高速缓存未中时,第二阶高速缓存存储器会向第一阶高速缓存存储器要求输入搜寻关键字的搜。
31、寻结果。由于单一第一阶高速缓存存储器(即高速缓存存储器104)由多个第二阶高速缓存存储器(即高速缓存存储器304_0304_k)所共享,耦接于高速缓存存储器104和高速缓存存储器304_0304_k之间的仲裁器302会仲裁多个第二阶高速缓存存储器304_0304_k和第一阶高速缓存存储器104之间的存取。0038 使用高速缓存存储器304_0304_k能够进一步降低三元内容寻址存储器的带宽需求。假设代理器的带宽是每秒2.5G个分组(packet per second,pps),如上表所示,三元内容寻址存储器的存取速度仅有800MHz1GHz,无法直接提供代理器的输入搜寻关键字(例如分组报头)足。
32、够的带宽。通过多阶高速缓存存储器结构的帮助,可以降低三元内容寻址存储器的带宽需求。举例来说,在二阶高速缓存存储器的失误率(miss rate)为50,且一阶高速缓存存储器的失误率为30的情况下。三元内容寻址存储器的带宽需求可以用以下方程式来表示。0039 三元内容寻址存储器带宽需求2.5Gpps5030375M pps (1)0040 另外,使用高速缓存存储器304_0304_k能够降低排队延迟(queuing 说 明 书CN 104346289 A6/14页9latency)。图4为本发明针对三元内容寻址存储器采用二阶高速缓存存储器来降低排队延迟的实施例的示意图。如图4的子图(A)所示,在三。
33、元内容寻址存储器没有使用高速缓存存储器的时候,多个输入搜寻关键字AZ会排队并且依序地被送入三元内容寻址存储器以供数据比对,三元内容寻址存储器因此依序地产生搜寻结果。其中搜寻结果在图4中以符号“”“”来表示。在得到搜寻结果之后才会得到搜寻结果,因此在第一个搜寻结果到最后一个搜寻结果之间存在有延迟时间L1。0041 如图4的子图(B)所示,三元内容寻址存储器使用了二阶高速缓存存储器,且每一二阶高速缓存存储器可缓冲输入搜寻关键字AZ中的两个输入搜寻关键字。所以仅有两个输入搜寻关键字A和B在队列中然后依序地被送入第一个二阶高速缓存存储器,以及仅有两个输入搜寻关键字Y和Z缓冲在队列中然后依序地被送入最后。
34、一个二阶高速缓存存储器。假设第一个二阶高速缓存存储器和最后一个二阶高速缓存存储器都缓冲有连续的输入搜寻关键字,第一个二阶高速缓存存储器会依序地产生搜寻结果,该最后一个二阶高速缓存存储器会依序地产生搜寻结果。由于本实施例平行处理该多个输入搜寻关键字,因此可以同时得到搜寻结果和,以及同时得到搜寻结果和。因此,在第一个搜寻结果到最后一个搜寻结果之间存在有延迟时间L2,且L2L1。简而言之,三元内容寻址存储器的主要查表延迟时间来自于搜寻关键字排队时间,而非三元内容寻址存储器的延迟时间。二阶高速缓存存储器可以有效地消除搜寻关键字排队时间所造成的延迟。0042 一般来说,来自不同交通流量的分组彼此没有相依。
35、性。在一个示范性设计中,可以将分组重新排序以增进三元内容寻址存储器的查找效率。为了完整地利用分组重新排序的特性,高速缓存存储器104以及高速缓存存储器304_0304_k可以是非阻塞高速缓存存储器(non-blocking cache)以支持“命中未中(hit on miss)”,其支持高速缓存未中等待并能同时处理独立高速缓存存储器的存取。图5为本发明非阻塞高速缓存存储器所执行的“命中未中”操作的实施例的示意图。举例来说,高速缓存存储器104可以是非阻塞高速缓存存储器,依序地接收输入搜寻关键字SK(A)、SK(B)、SK(C)、SK(D)。高速缓存存储器104针对输入搜寻关键字SK(A)发生高。
36、速缓存命中,然后将缓冲在高速缓存存储器内的搜寻结果SR(A)输出。高速缓存存储器104针对输入搜寻关键字SK(B)发生高速缓存未中。因此高速缓存存储器104可对三元内容寻址存储器110要求搜寻结果SR(B)并且同时开始处理下一输入搜寻关键字SK(C)。如图5所示,高速缓存存储器104针对接下来的输入搜寻关键字SK(C)以及SK(D)都发生高速缓存命中,并且依序地将缓冲在高速缓存存储器内的搜寻结果SR(C)和SR(D)输出。接着从三元内容寻址存储器110所送入的搜寻结果SR(B)会被输出。非阻塞高速缓存存储器的好处是可以将高速缓存存储器的未中损失(miss penalty)隐藏在现正进行中的高速。
37、缓存存储器存取的背后。0043 在一个示范性设计中,接口协议(interface protocol)支持乱序事务处理(out-of-order transaction)。因此,高速缓存存储器104和高速缓存存储器304_0304_k可支持乱序完成(out-of-order completion)。图6为本发明高速缓存存储器的乱序事务处理的实施例的示意图。举例来说,高速缓存存储器104支持乱序完成,传送输入搜寻关键字的关键字通道以及传送搜寻结果的值通道是分开的。通道识别码用来提供异动的相依性信息。举例来说,通道识别码可以是入口(ingress port)的序号、媒体存取控制(Media Acce。
38、ss Control,MAC)地址的散列值、网络协定地址的散列值等等。关于图6中的范例,说 明 书CN 104346289 A7/14页10输入搜寻关键字SK(A)以及SK(B)具有相同的通道序号ID0,输入搜寻关键字SK(C)以及SK(D)具有相同的通道序号ID1,以及输入搜寻关键字SK(E)以及SK(F)具有相同的通道序号ID2。高速缓存存储器104可以将输入搜寻关键字SK(A)SK(F)的处理重新排序,其中具有相同通道序号的输入搜寻关键字的处理顺序不会改变,具有不同通道序号的输入搜寻关键字的处理顺序则可被调整。如图6所示,具有不同通道序号的输入搜寻关键字SK(B)和SK(C)的处理顺序被。
39、重新安排过,这样一来在得到搜寻结果SR(C)之后便可得到搜寻结果SR(B);具有不同通道序号的输入搜寻关键字SK(D)和SK(E)的处理顺序被重新安排过,这样一来在得到搜寻结果SR(E)之后便可得到搜寻结果SR(D)。然而,具有相同通道序号ID0的输入搜寻关键字SK(A)和SK(B)的处理仍是由高速缓存存储器104依序完成,这样一来在得到搜寻结果SR(A)之后便可得到搜寻结果SR(B);具有相同通道序号ID1的输入搜寻关键字SK(C)和SK(D)的处理仍是由高速缓存存储器104依序完成,这样一来在得到搜寻结果SR(C)之后便可得到搜寻结果SR(D);具有相同通道序号ID2的输入搜寻关键字SK(。
40、E)和SK(F)的处理仍是由高速缓存存储器104依序完成,这样一来在得到搜寻结果SR(E)之后便可得到搜寻结果SR(F)。0044 在一个示范性设计中,内容寻址存储器元件102中可配置有多个表以得到更多查表弹性。依据本发明,有两种类型的表聚合来共享具有若干表的单一内容寻址存储器元件(例如三元内容寻址存储器)。其中一个是比特聚合(bit-wise aggregation),另一个是字组聚合(word-wise aggregation)。0045 图7为本发明查表装置的第三实施例的示意图。在此实施例中,查表装置700采用比特聚合以在单一内容寻址存储器元件中配置多个表。查表装置700包含有内容寻址存。
41、储器元件,例如三元内容寻址存储器702,以及另包含有搜寻屏蔽(search mask)电路704。三元内容寻址存储器702用来以比特聚合的方式来水平地储存多个表。如图7所示,该多个表的大小不同。因此,相同三元内容寻址存储器条目中所储存的一个数据字可包含有属于第一表的第一部分、属于第二表的第二部分以及属于第三表的第三部分;相同三元内容寻址存储器条目中所储存的另一数据字可包含有属于第一表的第一部分、属于第二表的第二部分以及属于三元内容寻址存储器细胞的第三部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态;相同三元内容寻址存储器条目中所储存的又一数据字可包含有属于第一表的第一部分以及属。
42、于三元内容寻址存储器细胞的第二部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态。0046 搜寻屏蔽电路704用来屏蔽该内容寻址存储器元件(例如三元内容寻址存储器702)的输入搜寻关键字SK的一部分,其中输入搜寻关键字SK的该部分对应未被选取的表,以及输入搜寻关键字SK的剩余部分对应被选取的表。在此实施例中,由于有三个表,搜寻屏蔽电路704会被设计含有三个搜寻屏蔽SM_1、SM_2、SM_3,并且依据选到哪一个表进行数据比对来使能三个搜寻屏蔽SM_1、SM_2、SM_3之一。举例来说,当选择第一表(表示为“表1”)来进行数据比对时,便使用搜寻屏蔽SM_1来针对第一表把输入搜寻关键字SK的报头部分设为搜寻关键字SK1,以及把输入搜寻关键字SK的中间部分以及结尾部分中的每一比特位置设为不理会(“X”)状态。这样一来,搜寻关键字SK1会被和第一表中的所有条目平行地比较,且由于搜寻屏蔽电路704刻意将输入搜寻关键字SK的中间部分以及结尾部分设为不理会(“X”)状态,因此可以产生相对应搜寻结果而不会影响该第二表和该第三表。说 明 书CN 104346289 A10。