查表装置以及查表方法.pdf

上传人:a*** 文档编号:1629404 上传时间:2018-06-30 格式:PDF 页数:31 大小:4.70MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410353246.7

申请日:

2014.07.24

公开号:

CN104346289A

公开日:

2015.02.11

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 12/02申请日:20140724|||公开

IPC分类号:

G06F12/02; G06F17/30; G11C15/00

主分类号:

G06F12/02

申请人:

联发科技股份有限公司

发明人:

陈宏庆

地址:

中国台湾新竹科学工业园区新竹市笃行一路一号

优先权:

61/859,796 2013.07.30 US; 14/280,698 2014.05.19 US

专利代理机构:

北京万慧达知识产权代理有限公司11111

代理人:

张金芝; 杨颖

PDF下载: PDF下载
内容摘要

本发明提供一种查表装置以及查表方法。查表装置包含内容寻址存储器元件和第一高速缓存存储器,内容寻址存储器元件储存至少一个表,第一高速缓存存储器用来高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。本发明的查表装置及查表方法为网络应用提供一种创新的查表设计,可以达到较低功率消耗和较高搜寻速度。

权利要求书

权利要求书
1.  一种查表装置,包含有:
内容寻址存储器元件,用来储存至少一个表;以及
第一高速缓存存储器,用来高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。

2.  根据权利要求1所述的查表装置,其特征在于,另包含有:
多个第二高速缓存存储器,每一第二高速缓存存储器用来高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果;以及
仲裁器,耦接于所述第一高速缓存存储器与每一第二高速缓存存储器之间,所述仲裁器用来仲裁所述多个第二高速缓存存储器和所述第一高速缓存存储器之间的存取。

3.  根据权利要求1所述的查表装置,其特征在于,所述第一高速缓存存储器是非阻塞高速缓存存储器。

4.  根据权利要求1所述的查表装置,其特征在于,所述第一高速缓存存储器支持乱序完成。

5.  根据权利要求1所述的查表装置,其特征在于,当所述内容寻址存储器元件中的表内容改变时,所述第一高速缓存存储器将高速缓存数据作废。

6.  一种查表装置,包含有:
内容寻址存储器元件,具有多个内容寻址存储器条目来以字组聚合方式垂直地储存多个表,其中所述多个内容寻址存储器条目可反映包含所述多个内容寻址存储器条目的有效比特输入,且当接收到相对应有效比特为预定逻辑值时,内容寻址存储器条目无效;以及
范围屏蔽电路,用来通过指定所述有效比特输入的一部分中所包含的每一有效比特为所述预定逻辑值,来屏蔽所述有效比特输入的所述部分,其中所述有效比特输入的所述部分对应未选到的表。

7.  根据权利要求6所述的查表装置,其特征在于,所述范围屏蔽电路包含有:
范围映射器,用来接收被选取表的表索引,并且产生所述被选取表的开始内容寻址存储器条目的条目索引,以及所述被选取表的结束内容寻址存储器条 目的条目索引;以及
范围解码器,用来依据所述被选取表的所述开始内容寻址存储器条目的所述条目索引,以及所述被选取表的所述结束内容寻址存储器条目的所述条目索引来设定所述有效比特输入。

8.  一种查表装置,包含有:
内容寻址存储器元件,具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目;以及
控制逻辑,用来将所述冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目,并利用所述新主要内容寻址存储器条目来代替所述内容寻址存储器元件中的特定主要内容寻址存储器条目,以及将所述特定主要内容寻址存储器条目编程为所述数据字。

9.  根据权利要求8所述的查表装置,其特征在于,用于编程所述冗余内容寻址存储器条目的所述数据字是欲加入至所述内容寻址存储器元件的新数据字。

10.  根据权利要求9所述的查表装置,其特征在于,当利用所述新主要内容寻址存储器条目来代替所述内容寻址存储器元件中的所述特定主要内容寻址存储器条目时,所述控制逻辑另用来在背景将原本储存在主要内容寻址存储器条目中的数据字洗牌至下一主要内容寻址存储器条目,所述多个主要内容寻址存储器条目从表的最后数据字开始,到储存在所述特定主要内容寻址存储器条目中的所述表的特定数据字结束。

11.  根据权利要求10所述的查表装置,其特征在于,所述控制逻辑将所述特定主要内容寻址存储器条目编程为所述新数据字,并且在所述多个数据字被洗牌至所述下一主要内容寻址存储器条目后,释放所述冗余内容寻址存储器条目。

12.  根据权利要求8所述的查表装置,其特征在于,用来编程所述冗余内容寻址存储器条目的所述数据字是原本储存在所述内容寻址存储器元件中的所述特定主要内容寻址存储器条目中的数据字。

13.  根据权利要求12所述的查表装置,其特征在于,另包含有:
测试单元,用来在当利用所述新主要内容寻址存储器条目来代替所述特定主要内容寻址存储器条目时,针对所述特定主要内容寻址存储器条目执行运行时间测试。

14.  根据权利要求13所述的查表装置,其特征在于,在针对所述特定主要 内容寻址存储器条目执行的所述运行时间测试完成后,所述控制逻辑将所述冗余内容寻址存储器条目中的所述数据字恢复至所述特定主要内容寻址存储器条目。

15.  一种查表方法,包含有:
在内容寻址存储器元件中储存至少一个表;以及
高速缓存所述内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。

16.  一种查表方法,包含有:
以字组聚合方式垂直地将多个表储存至内容寻址存储器元件中的多个内容寻址存储器条目,其中所述多个内容寻址存储器条目可反映包含所述多个内容寻址存储器条目的多个有效比特的有效比特输入,且当接收到相对应有效比特为第一逻辑值时,内容寻址存储器条目有效,以及当接收到所述相对应有效比特为第二逻辑值时,所述内容寻址存储器条目无效;以及
通过指定所述有效比特输入的一部分中所包含的每一有效比特为所述第二逻辑值,来屏蔽所述有效比特输入的所述部分,其中所述有效比特输入的所述部分对应未选到的表。

17.  一种查表方法,包含有:
使用具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目的内容寻址存储器元件;
将所述冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目;
利用所述新主要内容寻址存储器条目来代替所述内容寻址存储器元件中的特定主要内容寻址存储器条目;以及
将所述特定主要内容寻址存储器条目编程为所述数据字。

说明书

说明书查表装置以及查表方法
【技术领域】
本发明有关于执行数据比较,尤其是一种使用内容寻址存储器(content-addressable memory,CAM)元件的查表装置以及相关查表方法。
【背景技术】
内容寻址存储器是一种特别适合高速应用的存储器。具体来说,内容寻址存储器符合需要高速数据库搜寻的应用需求。内容寻址存储器会就输入搜寻关键字和由数据字所构成的存储表进行比较,并将表中匹配的数据字的地址回传。换句话说,在内容寻址存储器中,并不是通过一开始提供地址来存取内容寻址存储器阵列所储存的数据字,而是一开始利用输入搜寻关键字来在内容寻址存储器阵列中执行比较,来在包含和输入搜寻关键字的相同数据并显示“匹配”或是“命中”的内容寻址存储器阵列里,找出一个或是多个行位置。这样一来,便可依据其内容而非地址来存取储存的数据。因此,由于其快速搜寻能力,内容寻址存储器元件是用来实现查表操作的良好选项。不过,许多内容寻址存储器制造商所遭遇的共同问题都是在搜寻操作时耗电量过大,无法得到最佳化的搜寻速度。
【发明内容】
有鉴于此,本发明特提供以下技术方案:
本发明实施例提供一种查表装置,包含有内容寻址存储器元件及第一高速缓存存储器,内容寻址存储器元件用来储存至少一个表;第一高速缓存存储器用来高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。
本发明实施例另提供一种查表装置,包含有内容寻址存储器元件和范围屏蔽电路,内容寻址存储器元件具有多个内容寻址存储器条目来以字组聚合方式垂直地储存多个表,其中多个内容寻址存储器条目可反映包含多个内容寻址存 储器条目的有效比特输入,且当接收到相对应有效比特为预定逻辑值时,内容寻址存储器条目无效;范围屏蔽电路用来通过指定有效比特输入的一部分中所包含的每一有效比特为预定逻辑值,来屏蔽有效比特输入的部分,其中有效比特输入的部分对应未选到的表。
本发明实施例另提供一种查表装置,包含有内容寻址存储器元件和控制逻辑,内容寻址存储器元件具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目;控制逻辑用来将冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目,并利用新主要内容寻址存储器条目来代替内容寻址存储器元件中的特定主要内容寻址存储器条目,以及将特定主要内容寻址存储器条目编程为数据字。
本发明实施例又提供一种查表方法,包含有在内容寻址存储器元件中储存至少一个表;以及高速缓存内容寻址存储器元件的至少一个输入搜寻关键字以及至少一个相对应搜寻结果。
本发明实施例又提供一种查表方法,包含有以字组聚合方式垂直地将多个表储存至内容寻址存储器元件中的多个内容寻址存储器条目,其中多个内容寻址存储器条目可反映包含多个内容寻址存储器条目的多个有效比特的有效比特输入,且当接收到相对应有效比特为第一逻辑值时,内容寻址存储器条目有效,以及当接收到相对应有效比特为第二逻辑值时,内容寻址存储器条目无效;以及通过指定有效比特输入的一部分中所包含的每一有效比特为第二逻辑值,来屏蔽有效比特输入的部分,其中有效比特输入的部分对应未选到的表。
本发明实施例又提供一种查表方法,包含有使用具有多个主要内容寻址存储器条目以及至少一个冗余内容寻址存储器条目的内容寻址存储器元件;将冗余内容寻址存储器条目编程为数据字,以作为新主要内容寻址存储器条目;利用新主要内容寻址存储器条目来代替内容寻址存储器元件中的特定主要内容寻址存储器条目;以及将特定主要内容寻址存储器条目编程为数据字。
本发明的查表装置及查表方法为网络应用提供一种创新的查表设计,可以达到较低功率消耗和较高搜寻速度。
【附图说明】
图1为本发明查表装置的第一实施例的示意图。
图2为本发明查表装置所采用的高速缓存存储器一致性机制的实施例的示意图。
图3为本发明查表装置的第二实施例的示意图。
图4为本发明针对三元内容寻址存储器采用二阶高速缓存存储器来降低排队延迟的实施例的示意图。
图5为本发明非阻塞高速缓存存储器所执行的”命中未中”操作的实施例的示意图。
图6为本发明高速缓存存储器的乱序事务处理的实施例的示意图。
图7为本发明查表装置的第三实施例的示意图。
图8为本发明查表装置的第四实施例的示意图。
图9为本发明三元内容寻址存储器宏单元的实施例的示意图。
图10为本发明查表装置的第五实施例的示意图。
图11为具有可编程优先顺序的三元内容寻址存储器条目的内容寻址存储器元件。
图12为本发明支持针对不同表同时查找操作的内容寻址存储器元件的实施例的示意图。
图13为本发明查表装置的第六实施例的示意图。
图14为图13所示的查表装置所执行的表更新工作的示意图。
图15为图13所示的查表装置所执行的运行时间测试的示意图。
【具体实施方式】
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
本发明的主要精神在于为网络应用提供一种创新的查表设计,使用内容寻 址存储器元件(content-addressable memory(CAM)based device),例如三元内容寻址存储器(Ternary Content-Addressable Memory,TCAM),加上高速缓存存储器系统(cache system),例如单阶(single-level)或是多阶(multi-level)高速缓存存储器系统,以达到较低功率消耗和较高搜寻速度。此外,透过表的聚合(aggregation),多个表可以共用一个单一内容寻址存储器元件,进而达到更有弹性的操作。另外,该内容寻址存储器元件可搭载至少一个冗余内容寻址存储器条目(entry)(例如至少一个双插槽(repair slot)),该冗余内容寻址存储器条目能够避免因为表更新或是运行时间测试所造成的搜寻停滞(stall)。关于本发明更进一步的细节将说明如下。
图1为本发明查表装置的第一实施例的示意图。在此实施例中,查表装置100包含有内容寻址存储器元件102、高速缓存存储器104以及高速缓存控制器106。举例来说,内容寻址存储器元件102可以由具有多个三元内容寻址存储器条目(也被称为三元内容寻址存储器行或是三元内容寻址存储器字)的三元内容寻址存储器110以及优先编码器(priority encoder)114所实现。其中每个三元内容寻址存储器条目都储存有数据字(例如WORD0~WORDn)以及具有比较器(例如CMP0~CMPn)。当三元内容寻址存储器110接收到输入搜寻关键字SK后,相对应的比较器会将输入搜寻关键字SK和每一数据字进行比较。每一个三元内容寻址存储器条目中的数据字是储存在三元内容寻址存储器细胞中的一串比特(未显示于图中)。其中每一比特可以是“0”、“1”或是“X”(不理会)。举例来说,储存的数据字“100X”会匹配“1000”或是“1001”的输入搜寻关键字。因此,一个输入搜寻关键字可能会对应多个匹配的三元内容寻址存储器条目。优先编码器114用来选择排名第一的匹配三元内容寻址存储器条目,即在所有匹配的三元内容寻址存储器条目中,具有较高优先顺序的匹配三元内容寻址存储器条目。并且使用所选择的三元内容寻址存储器条目的条目索引来针对输入搜寻关键字SK设定搜寻结果SR。应注意的是,三元内容寻址存储器110仅仅是内容寻址存储器元件102的一个范例,本发明不以此为限。在一个设计变化中,可以使用由内容寻址存储器细胞所构成的内容寻址存储器来实现内容寻址存储器元件102,其中每一内容寻址存储器细胞是“0”或“1”。这也属于本发明的范围。在以下的段落中,“三元内容寻址存储器”和“内容寻址存储器”也可互换。
当三元内容寻址存储器110用于网络应用时,输入搜寻关键字SK可以是输入分组的分组报头,且由三元内容寻址存储器条目所构成的三元内容寻址存储 器宏单元(TCAM unit macro)中储存的数据字WORD0~WORDn可以是由一组预定规则所建立的表113,其中每一预定规则是储存在一个三元内容寻址存储器条目中的一个数据字。因此,三元内容寻址存储器110会比较该分组报头和该组预定规则以找出哪一规则匹配该分组报头。搜寻结果SR会指出排名第一的匹配三元内容寻址存储器条目的位置,并当作规则索引传送到后续规则动作表(未显示于图中)以从多个预定规则动作中选择一个规则动作。例如“允许(permit)”、“拒绝(deny)”、复制、服务质量(quality of service)控制等等。分组处理引擎(未显示于图中)会基于所选择的规则动作来处理该输入分组。当来源装置试图与目的装置透过网络建立连结时,可能会产生来自相同来源装置并往相同目的装置去的突发分组(burst of packets)(又称作一分组序列(packet train))。由于该来源装置以及该目的装置的网络地址都是固定的,属于相同分组序列的连续分组的分组报头可能会很相似。因此,表113所定义的相同规则可能会匹配一列中的若干个分组报头。换句话说,同一交通流量的进入分组会有相似/相同的分组报头,意味着最近存取的三元内容寻址存储器数据字可能会在短时间内再度被存取。基于三元内容寻址存储器查表的时间局部性,本发明提出使用高速缓存结构来提升三元内容寻址存储器的带宽并且降低三元内容寻址存储器的操作功率的方案。
高速缓存控制器106用来控制高速缓存存储器104的存取,包含有散列单元(hash unit)115、匹配决定单元116以及选择器117。高速缓存存储器104透过高速缓存控制器106耦接至三元内容寻址存储器110,用来高速缓存三元内容寻址存储器110的至少一输入搜寻关键字以及至少一相对应搜寻结果。举例来说,当输入搜寻关键字SK0以及高速缓存未中(cache miss)发生时,输入搜寻关键字SK0会被输入至三元内容寻址存储器110以进行数据比较,并得到相对应搜寻结果SR0。输入搜寻关键字SK0以及相对应搜寻结果SR0透过高速缓存存储器104的替换策略来被高速缓存在高速缓存存储器104中。相似地,当输入搜寻关键字SK1/SK2以及高速缓存未中发生时,输入搜寻关键字SK1/SK2会被输入至三元内容寻址存储器110以进行数据比较,并得到相对应搜寻结果SR1/SR2。输入搜寻关键字SK1/SK2以及相对应搜寻结果SR1/SR2透过高速缓存存储器104的替换策略来被高速缓存在高速缓存存储器104中。
高速缓存存储器104中的高速缓存列105的数目小于三元内容寻址存储器110中的三元内容寻址存储器条目112的数目。因此,散列单元115会针对输入 搜寻关键字SK产生散列值(hash value),并且将该散列值输出为高速缓存列索引。匹配决定单元116会对输入搜寻关键字SK和散列单元115所产生的散列值所指向的高速缓存列所得到的高速缓存搜寻关键字(例如SK2)进行比较。当输入搜寻关键字SK匹配高速缓存的搜寻关键字时,即高速缓存命中。匹配决定单元116控制选择器117来直接输出散列单元115所产生的散列值所指向的高速缓存列所得到的高速缓存搜寻结果(例如SR2)为输入搜寻关键字SK的搜寻结果。这样一来,在三元内容寻址存储器110内部并无须执行输入搜寻关键字SK的数据比对,因而降低了功耗。
当输入搜寻关键字SK不匹配高速缓存的搜寻关键字时,即高速缓存未中。三元内容寻址存储器110便需要针对输入搜寻关键字SK执行数据比对,并据以产生搜寻结果SR。匹配决定单元116控制选择器117来输出从三元内容寻址存储器110所得到的搜寻结果SR。此外,视所采用的替换策略而定,高速缓存在输出散列单元115所产生的散列值所指向的高速缓存列中的搜寻关键字SK2和搜寻结果SR2可以选择性地替换输入搜寻关键字SK和搜寻结果SR。
如上所述,至少一个搜寻关键字以及三元内容寻址存储器110中相关于表113的至少一个相对应搜寻结果被高速缓存于高速缓存存储器104中。因此,若是发现高速缓存的搜寻关键字和该输入搜寻关键字相同,高速缓存的搜寻结果可被重复使用。可能至少一个条目被插入表113,至少一个条目从表113被移除,及/或表113中的至少一个条目被改变。因此查表装置100也可采用高速缓存存储器一致性机制(cache coherence mechanism),如图2所示。图2为本发明查表装置所采用的高速缓存存储器一致性机制的实施例的示意图。每次三元内容寻址存储器110中的表内容改变(例如,写入)时,高速缓存存储器104会作废/清除其高速缓存的数据(图2中标识为“无效”)。
高速缓存存储器104和三元内容寻址存储器110之间的若干固有特性比较如下表所示。

从上表可知,高速缓存存储器104具有较快的存取速度、较低的延迟时间 以及较低的功耗。由于采用单阶的高速缓存存储器结构,高速缓存存储器104能够降低三元内容寻址存储器查表的功耗和延迟时间,并且通过高高速缓存命中率来增加三元内容寻址存储器的带宽。简而言之,使用高速缓存存储器能够避免三元内容寻址存储器的瓶颈,并且降低三元内容寻址存储器的功率消耗。在一设计变化中,也可以采用多阶的高速缓存存储器结构来提供相比于单阶的高速缓存存储器结构更多的好处/优势。
图3为本发明查表装置的第二实施例的示意图。在此实施例中,查表装置300采用二阶高速缓存存储器结构。因此,除了上述内容寻址存储器元件102(可以使用三元内容寻址存储器110来实现)以及高速缓存存储器104(当作第一阶高速缓存存储器)以外,查表装置300包含有仲裁器(arbiter)302以及多个高速缓存存储器304_0~304_k(当作第二阶高速缓存存储器)。举例来说,高速缓存存储器304_0~304_k会分别从不同代理器Agent_0~Agent_k接收输入搜寻关键字。每一第二阶高速缓存存储器的功能和第一阶高速缓存存储器的功能相似,两者之间主要的差别在于,当发生高速缓存未中时,第二阶高速缓存存储器会向第一阶高速缓存存储器要求输入搜寻关键字的搜寻结果。由于单一第一阶高速缓存存储器(即高速缓存存储器104)由多个第二阶高速缓存存储器(即高速缓存存储器304_0~304_k)所共享,耦接于高速缓存存储器104和高速缓存存储器304_0~304_k之间的仲裁器302会仲裁多个第二阶高速缓存存储器304_0~304_k和第一阶高速缓存存储器104之间的存取。
使用高速缓存存储器304_0~304_k能够进一步降低三元内容寻址存储器的带宽需求。假设代理器的带宽是每秒2.5G个分组(packet per second,pps),如上表所示,三元内容寻址存储器的存取速度仅有800MHz~1GHz,无法直接提供代理器的输入搜寻关键字(例如分组报头)足够的带宽。通过多阶高速缓存存储器结构的帮助,可以降低三元内容寻址存储器的带宽需求。举例来说,在二阶高速缓存存储器的失误率(miss rate)为50%,且一阶高速缓存存储器的失误率为30%的情况下。三元内容寻址存储器的带宽需求可以用以下方程式来表示。
三元内容寻址存储器带宽需求=2.5Gpps×50%×30%=375M pps  (1)
另外,使用高速缓存存储器304_0~304_k能够降低排队延迟(queuing latency)。图4为本发明针对三元内容寻址存储器采用二阶高速缓存存储器来降低排队延迟的实施例的示意图。如图4的子图(A)所示,在三元内容寻址存储 器没有使用高速缓存存储器的时候,多个输入搜寻关键字A~Z会排队并且依序地被送入三元内容寻址存储器以供数据比对,三元内容寻址存储器因此依序地产生搜寻结果。其中搜寻结果在图4中以符号“□”…“□”来表示。在得到搜寻结果□~□之后才会得到搜寻结果□,因此在第一个搜寻结果□到最后一个搜寻结果□之间存在有延迟时间L1。
如图4的子图(B)所示,三元内容寻址存储器使用了二阶高速缓存存储器,且每一二阶高速缓存存储器可缓冲输入搜寻关键字A~Z中的两个输入搜寻关键字。所以仅有两个输入搜寻关键字A和B在队列中然后依序地被送入第一个二阶高速缓存存储器,以及仅有两个输入搜寻关键字Y和Z缓冲在队列中然后依序地被送入最后一个二阶高速缓存存储器。假设第一个二阶高速缓存存储器和最后一个二阶高速缓存存储器都缓冲有连续的输入搜寻关键字,第一个二阶高速缓存存储器会依序地产生搜寻结果□~□,该最后一个二阶高速缓存存储器会依序地产生搜寻结果□~□。由于本实施例平行处理该多个输入搜寻关键字,因此可以同时得到搜寻结果□和□,以及同时得到搜寻结果□和□。因此,在第一个搜寻结果□到最后一个搜寻结果□之间存在有延迟时间L2,且L2<L1。简而言之,三元内容寻址存储器的主要查表延迟时间来自于搜寻关键字排队时间,而非三元内容寻址存储器的延迟时间。二阶高速缓存存储器可以有效地消除搜寻关键字排队时间所造成的延迟。
一般来说,来自不同交通流量的分组彼此没有相依性。在一个示范性设计中,可以将分组重新排序以增进三元内容寻址存储器的查找效率。为了完整地利用分组重新排序的特性,高速缓存存储器104以及高速缓存存储器304_0~304_k可以是非阻塞高速缓存存储器(non-blocking cache)以支持“命中未中(hit on miss)”,其支持高速缓存未中等待并能同时处理独立高速缓存存储器的存取。图5为本发明非阻塞高速缓存存储器所执行的“命中未中”操作的实施例的示意图。举例来说,高速缓存存储器104可以是非阻塞高速缓存存储器,依序地接收输入搜寻关键字SK(A)、SK(B)、SK(C)、SK(D)。高速缓存存储器104针对输入搜寻关键字SK(A)发生高速缓存命中,然后将缓冲在高速缓存存储器内的搜寻结果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)隐藏在现正进行中的高速缓存存储器存取的背后。
在一个示范性设计中,接口协议(interface protocol)支持乱序事务处理(out-of-order transaction)。因此,高速缓存存储器104和高速缓存存储器304_0~304_k可支持乱序完成(out-of-order completion)。图6为本发明高速缓存存储器的乱序事务处理的实施例的示意图。举例来说,高速缓存存储器104支持乱序完成,传送输入搜寻关键字的关键字通道以及传送搜寻结果的值通道是分开的。通道识别码用来提供异动的相依性信息。举例来说,通道识别码可以是入口(ingress port)的序号、媒体存取控制(Media Access Control,MAC)地址的散列值、网络协定地址的散列值等等。关于图6中的范例,输入搜寻关键字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)的处理顺序被重新安排过,这样一来在得到搜寻结果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(E)和SK(F)的处理仍是由高速缓存存储器104依序完成,这样一来在得到搜寻结果SR(E)之后便可得到搜寻结果SR(F)。
在一个示范性设计中,内容寻址存储器元件102中可配置有多个表以得到更多查表弹性。依据本发明,有两种类型的表聚合来共享具有若干表的单一内容寻址存储器元件(例如三元内容寻址存储器)。其中一个是比特聚合(bit-wise  aggregation),另一个是字组聚合(word-wise aggregation)。
图7为本发明查表装置的第三实施例的示意图。在此实施例中,查表装置700采用比特聚合以在单一内容寻址存储器元件中配置多个表。查表装置700包含有内容寻址存储器元件,例如三元内容寻址存储器702,以及另包含有搜寻屏蔽(search mask)电路704。三元内容寻址存储器702用来以比特聚合的方式来水平地储存多个表。如图7所示,该多个表的大小不同。因此,相同三元内容寻址存储器条目中所储存的一个数据字可包含有属于第一表的第一部分、属于第二表的第二部分以及属于第三表的第三部分;相同三元内容寻址存储器条目中所储存的另一数据字可包含有属于第一表的第一部分、属于第二表的第二部分以及属于三元内容寻址存储器细胞的第三部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态;相同三元内容寻址存储器条目中所储存的又一数据字可包含有属于第一表的第一部分以及属于三元内容寻址存储器细胞的第二部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态。
搜寻屏蔽电路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”)状态,因此可以产生相对应搜寻结果而不会影响该第二表和该第三表。
当选择该第二个表(表示为“表2”)来进行数据比对时,便使用搜寻屏蔽SM_2来针对该第二个表把输入搜寻关键字SK的中间部分设为搜寻关键字SK2,以及把输入搜寻关键字SK的报头部分以及结尾部分中的每一比特位置设为不理会(“X”)状态。这样一来,搜寻关键字SK2会被和该第二个表中的所有条目平行地比较,且由于搜寻屏蔽电路704刻意将输入搜寻关键字SK的报头部分以及结尾部分设为不理会(“X”)状态,因此可以产生相对应搜寻结果而不会影响 该第一表和该第三表。
当选择该第三个表(表示为“表3”)来进行数据比对时,便使用搜寻屏蔽SM_3来针对该第三个表把输入搜寻关键字SK的结尾部分设为搜寻关键字SK3,以及把输入搜寻关键字SK的报头部分以及中间部分中的每一比特位置设为不理会(“X”)状态。这样一来,搜寻关键字SK3会被和该第三个表中的所有条目平行地比较,且由于搜寻屏蔽电路704刻意将输入搜寻关键字SK的报头部分以及中间部分设为不理会(“X”)状态,因此可以产生相对应搜寻结果而不会影响该第一表和该第二表。
图8为本发明查表装置的第四实施例的示意图。在此实施例中,查表装置800采用字组聚合以在单一内容寻址存储器元件中配置多个表。查表装置800包含有内容寻址存储器元件,例如三元内容寻址存储器802,以及另包含有表选择电路804。三元内容寻址存储器802用来以字组聚合的方式来垂直地储存多个表。如图8所示,该多个表的大小不同。因此,三元内容寻址存储器纵行(column)可包含有属于第一表的第一部分、属于第二表的第二部分、属于第三表的第三部分以及属于第四表的第四部分;另一三元内容寻址存储器纵行可包含有属于第一表的第一部分、属于第二表的第二部分、属于三元内容寻址存储器细胞的第三部分、以及属于第四表的第四部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态;又另一三元内容寻址存储器纵行可包含有属于第一表的第一部分、属于三元内容寻址存储器细胞的第二部分、以及属于第四表的第三部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态;再另一三元内容寻址存储器纵行可包含有属于第一表的第一部分、属于三元内容寻址存储器细胞的第二部分,其中该多个三元内容寻址存储器细胞都具有不理会(“X”)状态。
对应相同表的每一三元内容寻址存储器条目都具有储存相同数字码的标签比特。相对于使用独热码(one-hot code),使用该数字码能够降低用来区分不同表的标签比特数。在此范例中,每一三元内容寻址存储器条目中的前两个三元内容寻址存储器细胞用来储存标签比特。如图8所示,第一表(表示为“表1”)的每一三元内容寻址存储器条目储存相同数字码“00”,第二表(表示为“表2”)的每一三元内容寻址存储器条目储存相同数字码“01”,第三表(表示为“表3”)的每一三元内容寻址存储器条目储存相同数字码“10”,第四表(表示为“表4”)的每一三元内容寻址存储器条目储存相同数字码“11”。
由于每一表会被映射到唯一的数字码,设为不同数字码的标签比特用来区别不同表。表选择电路804用来设定该内容寻址存储器元件(例如三元内容寻址存储器802)的输入搜寻关键字SK中的被选取表的数字码。具体来说,输入搜寻关键字SK包含有前缀码关键字SKpre,设为被选取表的数字码。举例来说,当选择第一表来进行数据比对时,针对第一表,将前缀码关键字SKpre设定为数字码“00”,并随后附上搜寻关键字SK1。接着,由前缀码关键字SKpre(“00”)和SK1所组成的搜寻关键字SK会被用来和三元内容寻址存储器802中的所有条目平行地比较,且由于前缀码关键字SKpre在第一表中被设为唯一的“00”,因此第一表可以产生搜寻关键字SK1的相对应搜寻结果而不会影响该第二表、该第三表和该第四表。也就是说,将前缀码关键字SKpre设定为数字码“00”仅允许该第一表的范围内的三元内容寻址存储器条目具匹配条件。
相似地,当选择第二表来进行数据比对时,针对第二表,将前缀码关键字SKpre设定为数字码“01”,并随后附上搜寻关键字SK2。接着,由前缀码关键字SKpre(“01”)和SK2所组成的搜寻关键字SK会被用来和三元内容寻址存储器802中的所有条目平行地比较,且由于前缀码关键字SKpre在第二表中被设为唯一的“01”,因此第二表可以产生搜寻关键字SK2的相对应搜寻结果而不会影响该第一表、该第三表和该第四表。也就是说,将前缀码关键字SKpre设定为数字码“01”仅允许该第二表的范围内的三元内容寻址存储器条目具匹配条件。
当选择第三表来进行数据比对时,针对第三表,将前缀码关键字SKpre设定为数字码“10”,并随后附上搜寻关键字SK3。接着,由前缀码关键字SKpre(“10”)和SK3所组成的搜寻关键字SK会被用来和三元内容寻址存储器802中的所有条目平行地比较,且由于前缀码关键字SKpre在第三表中被设为唯一的“10”,因此第三表可以产生搜寻关键字SK3的相对应搜寻结果而不会影响该第一表、该第二表和该第四表。也就是说,将前缀码关键字SKpre设定为数字码“10”仅允许该第三表的范围内的三元内容寻址存储器条目具匹配条件。
当选择第四表来进行数据比对时,针对第四表,将前缀码关键字SKpre设定为数字码“11”,并随后附上搜寻关键字SK4。接着,由前缀码关键字SKpre(“11”)和SK4所组成的搜寻关键字SK会被用来和三元内容寻址存储器802中的所有条目平行地比较,且由于前缀码关键字SKpre在第四表中被设为唯一的“11”,因此第四表可以产生搜寻关键字SK4的相对应搜寻结果而不会影响该第一表、该第二表和该第三表。也就是说,将前缀码关键字SKpre设定为数字码“11”仅允许该 第四表的范围内的三元内容寻址存储器条目具匹配条件。
图8中所示的查表设计需要比较同一内容寻址存储器元件中所有的表,因此在功耗上的表现效率并不高。除此之外,同一内容寻址存储器元件中表的数目受限于能够用于表的选择的标签比特数。另外,由于需要使用额外比特来当作标签比特以供选表,因此硬体成本也相对较高。本发明另提出一个替代方案来解决需要使用标签比特的问题。
图9为本发明三元内容寻址存储器宏单元的实施例的示意图。三元内容寻址存储器宏单元900包含有多个三元内容寻址存储器条目(即三元内容寻址存储器字组)902(图中被标示为word(0)、word(1)…word(n))。关于每一三元内容寻址存储器条目902,可以使用一个内部有效比特V以及一个外部有效比特VLD(VLD[0]、VLD(1)…VLD[n])来表示三元内容寻址存储器条目902是否有效,并输出至优先编码器(例如,输出HIT[0]、HIT[1]…HIT[n])。具体来说,仅有在当内部有效比特V以及外部有效比特VLD都被设为逻辑高值“1”时,一预充电/感测电路904才会被使能。因此,当外部有效比特VLD被设为逻辑低值“0”时,由于预充电/感测电路904未被使能,所以三元内容寻址存储器条目902为无效。通过适当地设定该多个外部有效比特可节省无谓的三元内容寻址存储器条目的操作功耗。
图10为本发明查表装置的第五实施例的示意图。在此实施例中,查表装置1000采用字组聚合以在单一内容寻址存储器元件中配置多个表。查表装置1000包含有内容寻址存储器元件,例如三元内容寻址存储器1002,以及另包含有范围屏蔽电路1004。三元内容寻址存储器1002用来以字组聚合的方式来垂直地储存多个表(例如表0和表1)。三元内容寻址存储器1002可以使用如图9所示的三元内容寻址存储器宏单元900来实现,进而具有三元内容寻址存储器条目W0~W9以响应有效比特输入VLD_IN,包含有三元内容寻址存储器条目W0~W9的外部有效比特。因此,当接收设定为预定逻辑值,例如逻辑低值“0”的相对应有效比特时,三元内容寻址存储器条目为无效;而当接收设定为另一预定逻辑值,例如逻辑高值“1”的相对应有效比特时,三元内容寻址存储器条目为有效。
在此实施例中,范围屏蔽电路1004通过将该预定逻辑值(例如“0”)指定至该有效比特输入的一部分中所包含的每一有效比特来屏蔽该有效比特输入的该部分,其中该有效比特输入的该部分对应至未被选择的表。具体来说,范围屏蔽电路1004包含有范围映射器1006以及范围解码器1008。范围映射器1006 用来接收被选取表的表索引IDX_TB,并且产生该被选取表的开始三元内容寻址存储器条目的条目索引SC_BG,以及该被选取表的结束三元内容寻址存储器条目的条目索引SC_ED。在此范例中,一个表(即表0)被储存在连续的内容寻址存储器条目W0~W3中,而另一个表(即表2)被储存在连续的内容寻址存储器条目W4~W9中。因此,对于所储存的表而言,其中之一的SC_BG=0而SC_ED=3;另一个的SC_BG=4而SC_ED=9。范围映射MAP_S可以如下。
表索引(IDX_TB)开始(SC_BG)结束(SC_ED)0(表0)031(表1)49
范围映射器1006可以参考范围映射MAP_S来设定条目索引SC_BG和SC_ED以响应所接收的表索引IDX_TB。
接下来,范围解码器1008用来依据该被选取表的开始三元内容寻址存储器条目的条目索引SC_BG,以及该被选取表的该结束内容寻址存储器条目的条目索引SC_ED来设定有效比特输入VLD_IN作为范围屏蔽。举例来说,当SC_BG=0以及SC_ED=3时,有效比特输入VLD_IN可被设为{1111000000};而当SC_BG=4以及SC_ED=9时,有效比特输入VLD_IN可被设为{0000111111}。
本技术方案设定一个主动范围来动态地指定哪一个三元内容寻址存储器条目被允许来和该输入搜寻关键字进行比较,可降低功耗以及三元内容寻址存储器成本。
图11为具有可编程优先顺序的三元内容寻址存储器条目的内容寻址存储器元件。优先编码器(未显示)会参考内容寻址存储器条目的优先顺序来针对输入搜寻关键字决定搜寻结果。该主动范围功能的额外特征会指定哪一个内容寻址存储器条目具有最高优先顺序,该优先顺序从所指定的内容寻址存储器条目到该主动范围的结束,接着移至该主动范围的开始。在此范例中,当内容寻址存储器元件(例如三元内容寻址存储器1102)中被选取的表的内容寻址存储器条目W2被优先序指标PTR所指向,其具有最高优先顺序。对应被选取表1101的该主动范围中的内容寻址存储器条目的优先序为{W2、W3、…Wn、W0、W1}。内容寻址存储器条目的优先序可以通过对优先序指标PTR进行编程来调整。此外,如图11所示,该主动范围功能的另一额外特征是该主动范围功能可以和图7中的范例所使用的搜寻屏蔽功能结合,以任意选择三元内容寻址存储器1102 中所配置的表,其中该搜寻屏蔽功能会指定该关键字范围,而该主动范围功能会指定该条目范围。
图12为本发明支持针对不同表同时查找操作的内容寻址存储器元件的实施例的示意图。在此实施例中,该内容寻址存储器元件是三元内容寻址存储器1200,包含有三元内容寻址存储器宏单元1202、多个复用器1204_1、1204_2以及多个优先编码器1206_1、1206_2。在此实施例中,三元内容寻址存储器宏单元1202具有两表,包含有表0以及表1,分别储存在三元内容寻址存储器条目W0~W3以及三元内容寻址存储器条目W4~W9之中。该多个表以字组聚合的方式来储存在三元内容寻址存储器宏单元1202中,并且定义有相同的数据字(例如相同规则)。因此,相同的输入搜寻关键字可以和不同的表平行地比较,避免了共用三元内容寻址存储器带宽的瓶颈。所有三元内容寻址存储器条目W0~W9的比较器输出HIT[9:0]都会分别被传送到复用器1204_1和1204_2。复用器1204_1会参考该第一表(即表0)的条目范围(表0范围)来输出对应该第一表的比较器输出至优先编码器1206_1。相似地,复用器1204_2会参考该第二表(即表1)的条目范围(表1范围)来输出对应该第二表的比较器输出至优先编码器1206_2。这样一来,便能够以平行处理的方式来产生针对该第一表搜寻该输入搜寻关键字的搜寻结果(表0命中索引),以及针对该第二表搜寻该同一输入搜寻关键字的搜寻结果(表1命中索引)。
图13为本发明查表装置的第六实施例的示意图。在此实施例中,查表装置1300包含有内容寻址存储器元件,例如三元内容寻址存储器1302,以及另包含有控制逻辑1304。三元内容寻址存储器1302包含有优先编码器1305以及三元内容寻址存储器宏单元1306,其中三元内容寻址存储器宏单元1306具有多个主要三元内容寻址存储器条目1307(图中标示为主要条目)以及至少一个冗余三元内容寻址存储器条目1308(图中标示为冗余条目)。为简明起见,图13中仅绘示了一个冗余三元内容寻址存储器条目1308。不过本发明不以此为限。在一个替代设计中,三元内容寻址存储器宏单元1306可具有多个冗余三元内容寻址存储器条目以供不同用途。
一般正常情况下,冗余三元内容寻址存储器条目1308并不会用来储存有效数据字以进行数据比对。然而,当查表装置1300执行特别工作时,冗余三元内容寻址存储器条目1308会用来储存有效数据字并涉及该特别工作的完成。举例来说,该特别工作可以是修复工作、表更新工作或是运行时间测试工作。当查 表装置1300开始处理该特别工作时,控制逻辑1304会将冗余内容寻址存储器条目1308编程为数据字,以作为新主要内容寻址存储器条目,并利用该新主要内容寻址存储器条目来代替该内容寻址存储器元件(例如三元内容寻址存储器1302)中的特定主要内容寻址存储器条目。
举例来说,但不以此为限,控制逻辑1304包含有微控制单元1312、测试单元1314、仲裁器1316以及决定单元1318。当查表装置1300执行正常三元内容寻址存储器搜寻工作时,仲裁器1316会允许输入搜寻关键字被传送至三元内容寻址存储器1302。当查表装置1300执行该特别工作时,仲裁器1316会允许表读/写操作及/或测试单元1314存取三元内容寻址存储器1302。除此之外,由于冗余三元内容寻址存储器条目1308用来储存有效数据字并且涉及该特别工作的完成,决定单元1318可决定最终搜寻结果。
决定单元1318的操作可以使用以下的伪码(pseudo code)来表示。

在上述伪码中,REP_HIT、REP_IDX[]、T_HIT以及T_IDX[]为决定单元1318的输入,而TCAM_HIT以及TCAM_IDX[]为决定单元1318的输出。REP_HIT会指出冗余三元内容寻址存储器条目1308是否具有匹配条件。REP_IDX[]代表被冗余三元内容寻址存储器条目1308所取代的主要三元内容寻址存储器条目1307的条目索引。T_HIT会指出主要三元内容寻址存储器条目1307中是否至少有一个具有匹配条件。T_IDX[]代表该第一匹配主要三元内容寻址存储器条目的条目索引。TCAM_HIT会指出该三元内容寻址存储器是否具有至少一个三元内容寻址存储器条目符合匹配条件。TCAM_IDX[]代表该匹配三元内容寻址存储器条目的条目索引。
当REP_HIT指示冗余三元内容寻址存储器条目1308不具有匹配条件时,TCAM_HIT以及TCAM_IDX[]会分别被设为T_HIT和T_IDX[]。
当REP_HIT指示冗余三元内容寻址存储器条目1308具有匹配条件,且 T_HIT指示主要三元内容寻址存储器条目1307均不具有匹配条件时,TCAM_HIT以及TCAM_IDX[]会分别被设为REP_HIT和REP_IDX[]。
当REP_HIT指示冗余三元内容寻址存储器条目1308具有匹配条件,且T_HIT指示主要三元内容寻址存储器条目1307中至少有一个具有匹配条件时,会比较条目索引REP_IDX[]和T_IDX[]。若是REP_IDX[]大于T_IDX[],则表示条目索引为T_IDX[]的该匹配主要三元内容寻址存储器条目具有较高的优先序。因此,TCAM_HIT以及TCAM_IDX[]会分别被设为T_HIT和T_IDX[]。然而,若是REP_IDX[]不大于T_IDX[],则表示相关于条目索引REP_IDX[]的冗余三元内容寻址存储器条目1308具有较高的优先序。因此,TCAM_HIT以及TCAM_IDX[]会分别被设为REP_HIT和REP_IDX[]。
通过决定单元1318的帮助,可以将条目索引REP_IDX[]的失败的主要三元内容寻址存储器条目替换为冗余三元内容寻址存储器条目1308,其中欲储存至该失败的主要三元内容寻址存储器条目的数据字将会被储存至冗余三元内容寻址存储器条目1308。除了三元内容寻址存储器条目的替换,冗余三元内容寻址存储器条目1308也可以进行表的更新。依据常规的表更新设计,当增加新数据字进入三元内容寻址存储器表时,搜寻操作会停滞若干周期以对该三元内容寻址存储器中的数据字重新排序。本发明提出使用冗余三元内容寻址存储器条目1308以及微控制单元1312来防止搜寻操作停滞。
图14为图13所示的查表装置1300所执行的表更新工作的示意图。假设表的数据字A~F分别连续地储存在主要三元内容寻址存储器条目1307_1~1307_6中。数据字F是表的最后一个数据字,且三元内容寻址存储器条目1307_7~1307_9是空的。如图14的子图(A)所示,欲插入新数据字NEW至数据字B和C中。也就是说,定义为新数据字NEW的规则相比于定义为数据字C的规则具有较高的优先序,以及相比于定义为数据字B的规则具有较低的优先序。微控制单元1312可以是低成本处理器用以作为输入/输出处理器(input/output processor,IOP),其中该输入/输出处理器可处理输入/输出工作以缓解主机处理器(未显示于图中)以避免过度频繁的输入/输出工作。从该主机处理器接收表更新要求之后,微控制单元1312会对冗余三元内容寻址存储器条目1308进行编程以作为新的主要内容寻址存储器条目,如图14的子图(B)所示。该新的主要内容寻址存储器条目(即储存了该新的数据字NEW的冗余三元内容寻址存储器条目1308)用来代替主要内容寻址存储器条目1307_3,如此一 来允许背景执行数据字C~F的重新洗牌而不影响正常的三元内容寻址存储器搜寻操作。如上所述,决定单元1318会决定最终搜寻结果。在此范例中,REP_IDX[]会被设为主要内容寻址存储器条目1307_3的条目索引。
在此刻,微控制单元1312会在背景处理输入/输出工作来对原本储存在主要内容寻址存储器条目1307_6~1307_3的数据字F~C进行洗牌,从最后一个数据字F到数据字C,到下一主要内容寻址存储器条目1307_7~1307_4,如图14的子图(B)所示。具体来说,数据字F从主要内容寻址存储器条目1307_6读出,然后被写入至下一主要内容寻址存储器条目1307_7,数据字E从主要内容寻址存储器条目1307_5读出,然后被写入至下一主要内容寻址存储器条目1307_6以覆盖数据字F。数据字D从主要内容寻址存储器条目1307_4读出,然后被写入至下一主要内容寻址存储器条目1307_5以覆盖数据字E。数据字C从主要内容寻址存储器条目1307_3读出,然后被写入至下一主要内容寻址存储器条目1307_4以覆盖数据字D。如图14的子图(C)所示。在数据字C~F都被重新洗牌至下一主要内容寻址存储器条目1307_4~1307_7后,微控制单元1312会将主要内容寻址存储器条目1307_3编程为新数据字NEW,并释放冗余三元内容寻址存储器条目1308以供下次使用。
除了三元内容寻址存储器条目替换之外,冗余三元内容寻址存储器条目1308可以用来进行运行时间测试(runtime test),来探测和恢复电路退化所导致的失败,可以保留冗余条目来一条条测试内容寻址存储器元件的主要条目。本发明提出使用冗余三元内容寻址存储器条目1308以及微控制单元1312来在背景执行测试操作而不阻碍三元内容寻址存储器1302的正常存取。图5为图13所示的查表装置1300所执行的运行时间测试的示意图。假设表的数据字W(n)被储存在主要三元内容寻址存储器条目1307_n中,如图15的子图(A)所示,主要三元内容寻址存储器条目1307_n会被选择来确认其三元内容寻址存储器细胞。如上所述,可以将微控制单元1312当作输入/输出处理器来应付输入/输出工作。因此,数据字W(n)会被微控制单元1312复制至冗余三元内容寻址存储器条目1308。
在冗余三元内容寻址存储器条目1308被编程为数据字W(n)后,测试单元1314会开始确认三元内容寻址存储器条目1307_n的三元内容寻址存储器细胞。测试单元1314会将预定数据模式写入至三元内容寻址存储器条目1307_n,接着检查三元内容寻址存储器细胞的放电和漏电特性,以确认三元内容寻址存储器 条目1307_n的功能。如图15的子图(B)所示。该新的主要内容寻址存储器条目(即储存有数据字W(n)的冗余三元内容寻址存储器条目1308)用来替换主要内容寻址存储器条目1307_n,这样一来可允许主要内容寻址存储器条目1307_n的测试操作可以在背景执行而不会干扰正常的三元内容寻址存储器搜寻操作。如上所述,决定单元会决定最终搜寻结果。在此范例中,REP_IDX[]会被设为主要内容寻址存储器条目1307_n的条目索引。为避免正常的三元内容寻址存储器存取受到运行时间测试的影响,该测试的优先序最低,且针对测试放电特性的要求,每次仅测试一比特(即仅一个三元内容寻址存储器细胞)。除此之外,两次测试要求之间的最小时间间隔也被限制。
在主要内容寻址存储器条目1307_n的运行时间测试完成后,微控制单元1312会将冗余三元内容寻址存储器条目1308中的数据字W(n)恢复至主要内容寻址存储器条目1307_n,并释放冗余三元内容寻址存储器条目1308以供下次使用,如图15的子图(C)所示。请注意,复制和恢复操作也可更新三元内容寻址存储器的内容,在内容停滞的问题发生时可以派上用场。
上述查表装置可以应用在网络装置,例如网络交换器中。然而,本发明不以此为限,上述查表装置也可应用在其它任何所需的场合中。
以上所述仅为本发明的较佳实施例,本领域相关的技术人员依据本发明的精神所做的等效变化与修改,都应当涵盖在权利要求书内。

查表装置以及查表方法.pdf_第1页
第1页 / 共31页
查表装置以及查表方法.pdf_第2页
第2页 / 共31页
查表装置以及查表方法.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《查表装置以及查表方法.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。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1