欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

半導(dǎo)體器件的制作方法

文檔序號:12179775閱讀:455來源:國知局
半導(dǎo)體器件的制作方法與工藝

于2015年8月28日提交的日本專利申請公開號2015-168522的全部內(nèi)容,包括說明書附圖和摘要,通過引用合并于本文中。

技術(shù)領(lǐng)域

本發(fā)明涉及一種半導(dǎo)體器件,并且例如適用于設(shè)置有TCAM(三態(tài)內(nèi)容可尋址存儲器)器件的半導(dǎo)體器件。



背景技術(shù):

被稱作關(guān)聯(lián)存儲器或CAM(內(nèi)容可尋址存儲器)的存儲器件在儲存的數(shù)據(jù)詞中搜索出與搜索詞匹配的數(shù)據(jù)詞,并且在發(fā)現(xiàn)匹配的數(shù)據(jù)詞時(shí),存儲器器件輸出匹配的數(shù)據(jù)詞的地址。

在CAM中存在BCAM(二元CAM)和TCAM(三元CAM)。BCAM的每個(gè)存儲單元儲存“0”或“1”的信息。另一方面,TCAM的每個(gè)存儲器單元除了“0”和“1”以外還儲存“不關(guān)注”的信息?!安魂P(guān)注”可以是“0”和“1”中的任意值。

TCAM器件在例如因特網(wǎng)的網(wǎng)絡(luò)中廣泛用作路由器,以便用于地址搜索和訪問控制。為了響應(yīng)容量的增加,TCAM器件通常具有以下的配置:其中提供多個(gè)子陣列,并且同時(shí)執(zhí)行針對每個(gè)子陣列的搜索操作。例如,根據(jù)非專利文件1,被稱作構(gòu)造塊的子陣列在字線方向布置成八片且在位線方向布置成四片。

TCAM器件一次可以將所有的輸入搜索數(shù)據(jù)(輸入分組)與TCAM單元數(shù)據(jù)進(jìn)行比較;因而,其在所有的搜索應(yīng)用中比RAM(隨機(jī)存取存儲器)操作在更快的速度。但是,在搜索時(shí)產(chǎn)生搜索電流,帶來了電功率消耗增加的問題。

日本未審專利申請公布No.2003-272386(專利文獻(xiàn)1)公開了這種配置的TCAM器件:其中布置在匹配線方向上的多個(gè)子陣列在管線系統(tǒng)下鏈接,以便獲得低的功率消耗。在這個(gè)文獻(xiàn)公開的TCAM器件中,下一階段中的搜索僅針對在之前階段中匹配的條目進(jìn)行。

[專利文獻(xiàn)]

(專利文獻(xiàn)1)日本未審專利申請公開No.2003-272386

[非專利文件]

(非專利文件1)H.Miyatake等在IEEE固態(tài)電路雜志第36卷第956-968頁于2001年6月發(fā)表的“A design for high-speed low-power CMOS fully parallel content-addressable memory macros”。



技術(shù)實(shí)現(xiàn)要素:

在TCAM器件中,被設(shè)置為不關(guān)注的TCAM單元可以整體存在于一些范圍中。例如,經(jīng)常出現(xiàn)與子陣列匹配線的一部分耦合的TCAM單元被設(shè)置為不關(guān)注。作為一個(gè)更明顯的示例,配置子陣列的所有TCAM單元可以被設(shè)置為不關(guān)注。在這種情況下,搜索結(jié)果是明顯的(不論搜索數(shù)據(jù)如何搜索結(jié)果當(dāng)然命中(匹配));因此,對于無用的搜索操作消耗電流。

通過本說明書的描述和附圖,本發(fā)明的其他的方面和新的特征將變得清楚。

根據(jù)一個(gè)實(shí)施例的半導(dǎo)體器件包括多個(gè)子陣列,每個(gè)子陣列包括TCAM單元陣列。每個(gè)子陣列搜索輸入搜索數(shù)據(jù)的相應(yīng)部分。當(dāng)相應(yīng)的第一控制信號被激活時(shí),每個(gè)子陣列在沒有搜索的情況下輸出指示針對每個(gè)條目的匹配的搜索結(jié)果。

根據(jù)以上描述的實(shí)施例,可以減少TCAM器件的消耗電流。

附圖說明

圖1是示出TCAM單元配置的示例的電路圖;

圖2是示出圖1所示的X單元和Y單元的存儲內(nèi)容以及TCAM單元數(shù)據(jù)的對應(yīng)關(guān)系的表;

圖3是示出配置TCAM器件的子陣列的配置的框圖;

圖4是示出TCAM器件的配置的框圖;

圖5是示出每個(gè)匹配放大器的檢測結(jié)果的與操作的示例性示圖;

圖6是示出數(shù)據(jù)搜索系統(tǒng)的整個(gè)配置的框圖;

圖7是示出ACL規(guī)則文件的示例的表;

圖8是示出通過轉(zhuǎn)換圖7中圖示的ACL而獲得的TCAM數(shù)據(jù)的示例的圖;

圖9是示意性示出其中寫入了基于ACL的轉(zhuǎn)換數(shù)據(jù)的TCAM器件的存儲器狀態(tài)的圖;

圖10是示出根據(jù)第一實(shí)施例的TCAM器件中的子陣列的配置的框圖;

圖11是示出圖10所示的控制邏輯電路中的搜索操作相關(guān)的部分的配置的電路圖;

圖12是示出圖10所示的搜索線驅(qū)動(dòng)器的配置的示例的電路圖;

圖13是示出圖10所示的匹配放大器的配置的示例的電路圖;

圖14是示出當(dāng)表示不關(guān)注的數(shù)據(jù)“0”儲存在設(shè)置在圖10所示的子陣列中的寄存器REG1中時(shí)的搜索操作的時(shí)序圖;

圖15是示出當(dāng)表示不關(guān)注的數(shù)據(jù)“1”儲存在設(shè)置在圖10所示的子陣列中的寄存器REG1中時(shí)的搜索操作的時(shí)序圖;

圖16是示出圖10所示的匹配放大器的修改的示例的電路圖;

圖17是示出根據(jù)第二實(shí)施例的TCAM器件中的子陣列SA的配置的框圖;

圖18是示出根據(jù)第三實(shí)施例的TCAM器件中的匹配放大器MA的配置的電路圖;

圖19是示出根據(jù)第三實(shí)施例的TCAM器件的配置的框圖;

圖20是示出圖19所示的數(shù)據(jù)確定電路33的操作的流程圖;

圖21是示出根據(jù)第三實(shí)施例的TCAM器件中的圖18所示的寄存器REG3的數(shù)據(jù)寫入程序的時(shí)序圖;

圖22是示出圖18所示的匹配放大器MA的修改的示例的框圖;

圖23是示意性示出根據(jù)第四實(shí)施例的TCAM器件中的子陣列的配置的框圖;

圖24是示出圖23中所示的控制邏輯電路24中的與搜索操作有關(guān)的部分的配置的電路圖;

圖25是示出針對來自控制邏輯電路24的輸出信號采用的緩沖放大器的布置的示意性視圖;

圖26是示出根據(jù)第五實(shí)施例的TCAM器件中的緩沖放大器單元的配置的示意性視圖;

圖27A、27B和27C是示出在開始供電后寫入到寄存器REG1、REG2和REG3中的每個(gè)的數(shù)據(jù)的程序的示意性視圖;

圖28A和28B是示出輸入數(shù)據(jù)的陣列轉(zhuǎn)換的示意性示圖;

圖29是示出根據(jù)第七實(shí)施例的搜索系統(tǒng)的配置的框圖;

圖30是示意性示出TCAM器件的存儲狀態(tài)的圖,其中寫入了TCAM數(shù)據(jù)的示例作為數(shù)據(jù)陣列轉(zhuǎn)換的目標(biāo);

圖31是示出根據(jù)第八實(shí)施例的TCAM器件的配置的框圖;

圖32是示出圖31所示的匹配放大器MA的配置的示例的電路圖;以及

圖33是示出圖31所示的TCAM器件的操作的示意性視圖。

具體實(shí)施方式

此后,將參考附圖詳細(xì)描述每個(gè)實(shí)施例。在下文中,相同附圖標(biāo)記用于相同或相應(yīng)的元件且省略對其重復(fù)解釋。

<每個(gè)實(shí)施例通用的配置>

[TCAM單元的配置]

圖1是示出TCAM單元配置的示例的電路圖。參見圖1,TCAM單元(也稱作存儲單元MC)包括兩個(gè)SRAM(靜態(tài)隨機(jī)存取存儲器單元)單元11和12以及數(shù)據(jù)比較器13。SRAM單元11也被稱作X單元且SRAM單元12也被稱作Y單元。X單元11在內(nèi)部存儲節(jié)點(diǎn)對ND1和ND1_n儲存互補(bǔ)的1比特?cái)?shù)據(jù)(當(dāng)一側(cè)是1時(shí),另一側(cè)是0)。Y單元12在內(nèi)部存儲節(jié)點(diǎn)對ND2和ND2_n儲存互補(bǔ)的1比特?cái)?shù)據(jù)。

TCAM單元耦合到位線對BL和BL_n、搜索線對SL和SL_n、匹配線ML以及字線WLX和WLY。位線對BL和BL_n在圖3所示的TCAM單元陣列20的列方向(Y方向)上延伸,并且由在列方向上布置的多個(gè)TCAM單元共享。搜索線對SL和SL_n在TCAM單元陣列20的列方向(Y方向)上延伸,并且由在列方向上布置的多個(gè)TCAM單元共享。匹配線ML在TCAM單元陣列20的行方向(X方向)中延伸,并且由在行方向中布置的多個(gè)TCAM單元共享。字線WLX和WLY在TCAM單元陣列20的行方向(X方向)上延伸,并且由在行方向上布置的多個(gè)TCAM單元共享。

X單元11包括反相器INV1和INV2以及N溝道MOS(金屬氧化物半導(dǎo)體)晶體管Q1和Q2。反相器INV1耦合在存儲節(jié)點(diǎn)ND1和存儲節(jié)點(diǎn)ND_n之間,使得從存儲節(jié)點(diǎn)ND1_n到存儲節(jié)點(diǎn)ND1的方向成為前向方向。反相器INV2以并聯(lián)并以相反方向與反相器INV1耦合。MOS晶體管Q1耦合在存儲節(jié)點(diǎn)ND1和位線BL之間。MOS晶體管Q2耦合在存儲節(jié)點(diǎn)ND1_n和位線BL_n之間。MOS晶體管Q1和Q2的柵極耦合到字線WLX。

Y單元12包括反相器INV3和INV4以及MOS(金屬氧化物半導(dǎo)體)晶體管Q3和Q4。反相器INV3耦合在存儲節(jié)點(diǎn)ND2和存儲節(jié)點(diǎn)ND2_n之間,使得從存儲節(jié)點(diǎn)ND2_n到存儲節(jié)點(diǎn)ND2的方向成前向方向。反相器INV4并聯(lián)耦合到反相器INV3并且處于相反方向。MOS晶體管Q3耦合在存儲節(jié)點(diǎn)ND2和位線BL之間。MOS晶體管Q4耦合在存儲節(jié)點(diǎn)ND2_n和位線BL之間。MOS晶體管Q3和Q4的柵極耦合到字線WLX。

數(shù)據(jù)比較器13包括N溝道MOS晶體管Q6-Q9。MOS晶體管Q6和Q7串聯(lián)耦合在作為與匹配線ML的連接節(jié)點(diǎn)的節(jié)點(diǎn)ND3與接地節(jié)點(diǎn)GND之間。MOS晶體管Q8和Q9串聯(lián)耦合在節(jié)點(diǎn)ND3與接地節(jié)點(diǎn)GND之間,并且與整個(gè)串聯(lián)耦合的MOS晶體管Q6和Q7并聯(lián)。MOS晶體管Q6和Q8的柵極分別耦合到存儲節(jié)點(diǎn)ND1和ND2。MOS晶體管Q7和Q9的柵極分別耦合到搜索線SL和SL_n。

圖2是示出圖1所示的X單元和Y單元的存儲內(nèi)容以及TCAM單元數(shù)據(jù)的對應(yīng)關(guān)系的表。

參見圖1和圖2,TCAM單元可以使用2比特的SRAM單元來存儲“0”、“1”和“x”(不關(guān)注)的三個(gè)值。具體來說,當(dāng)在X單元11的存儲節(jié)點(diǎn)ND1中存儲“1”而在Y單元12的存儲節(jié)點(diǎn)ND2中存儲“0”時(shí),假設(shè)“0”存儲在TCAM單元中。當(dāng)在X單元11的存儲節(jié)點(diǎn)ND1中存儲“0”而在Y單元12的存儲節(jié)點(diǎn)ND2中存儲“1”時(shí),假設(shè)“1”存儲在TCAM單元中。當(dāng)在X單元11的存儲節(jié)點(diǎn)ND1中存儲“0”而在Y單元12的存儲節(jié)點(diǎn)ND2中存儲“0”時(shí),假設(shè)“x”(不關(guān)注)存儲在TCAM單元中。沒有使用其中在X單元11的存儲節(jié)點(diǎn)ND1中儲存“1”而在Y單元12的存儲節(jié)點(diǎn)ND2中儲存“1”的情況。

根據(jù)TCAM單元的上述配置,當(dāng)搜索數(shù)據(jù)是“1”(即,搜索線SL是“1”而搜索線SL_n是“0”)且TCAM數(shù)據(jù)是“0”(存儲節(jié)點(diǎn)ND1是“1”而存儲節(jié)點(diǎn)ND2是“0”)時(shí),MOS晶體管Q6和Q7變?yōu)榻油顟B(tài)。因此,已經(jīng)預(yù)充電的匹配線ML的電勢被拉出至接地電勢。當(dāng)搜索數(shù)據(jù)是“0”(即,搜索線SL是“0”而搜索線SL_n是“1”)且TCAM數(shù)據(jù)是“1”(存儲節(jié)點(diǎn)ND1是“0”而存儲節(jié)點(diǎn)ND2是“1”)時(shí),MOS晶體管Q8和Q9變?yōu)榻油顟B(tài)。因此,已經(jīng)預(yù)充電的匹配線ML的電勢被拉出至接地電勢。即,當(dāng)搜索數(shù)據(jù)和TCAM數(shù)據(jù)不匹配時(shí),匹配線ML的電勢被拉出至接地電勢。

相反,當(dāng)輸入的搜索數(shù)據(jù)是“1”而TCAM數(shù)據(jù)是“1”或“x”時(shí),或者當(dāng)搜索數(shù)據(jù)是“0”而TCAM數(shù)據(jù)是“0”或“x”時(shí)(即都匹配),預(yù)充電的匹配線ML的電勢(電源電勢的電平VDD)被保持。

如上所述,在TCAM中,只要耦合到與一個(gè)條目(行)對應(yīng)的匹配線的所有TCAM單元的數(shù)據(jù)不與輸入搜索數(shù)據(jù)匹配,儲存在匹配線ML中的電荷被拉出。因此,雖然通過TCAM的搜索以高速執(zhí)行,但是消耗電流的問題較大。

[子陣列的配置]

圖3是示出配置TCAM器件的子陣列的配置的框圖。參見圖3,子陣列SA包括TCAM單元陣列20(簡稱為單元陣列)、寫入驅(qū)動(dòng)器21、搜索線(SL)驅(qū)動(dòng)器22、匹配放大器單元23和控制邏輯電路24。子陣列SA還包括用于驅(qū)動(dòng)圖1所示的字線WLX和WLY的字線驅(qū)動(dòng)器(沒有示出)。

單元陣列20包括布置在矩陣(m行k列)中的TCAM單元。圖3所示的單元陣列20具有256行(條目數(shù)目)m和32列(比特?cái)?shù)目)k。

與單元陣列20的每列對應(yīng),提供了k個(gè)比特線對(k=32)(從BL[0]和BL_n[0]至BL[k-1]和BL_n[k-1])以及k個(gè)搜索線對(k=32)(從SL[0]和SL_n[0]至SL[k-1]和SL_n[k-1])。與單元陣列20的每行對應(yīng),提供了用于X單元的m個(gè)字線(從WLX[0]到WLX[m-1])(沒有示出)和m個(gè)匹配線(m=256)(從ML[0]到ML[m-1])以及用于Y單元(從WLY[0]到WLY[m-1])(沒有示出)的m個(gè)字線。

寫入驅(qū)動(dòng)器21在寫入時(shí)經(jīng)由位線對BL和BL_n將寫入數(shù)據(jù)提供給每個(gè)TCAM單元。搜索線驅(qū)動(dòng)器22在搜索時(shí)經(jīng)由搜索線對SL和SL_n將搜索數(shù)據(jù)提供給每個(gè)TCAM單元??刂七壿嬰娐?4控制整個(gè)子陣列SA的操作。例如,在搜索時(shí),控制邏輯電路24接收搜索命令并且通過輸出控制信號至搜索線驅(qū)動(dòng)器22和匹配放大器單元23來控制搜索線驅(qū)動(dòng)器22、匹配放大器單元23和預(yù)充電電路的操作。

匹配放大器單元23包括分別與單元陣列的行對應(yīng)的多個(gè)匹配放大器MA。在搜索時(shí),匹配放大器MA基于對應(yīng)匹配線ML的電勢來檢測對應(yīng)的TCAM單元數(shù)據(jù)是否與輸入搜索數(shù)據(jù)的相應(yīng)部分匹配。在本實(shí)施例中,匹配放大器MA包括用于在搜索時(shí)對相應(yīng)匹配線ML進(jìn)行預(yù)充電的預(yù)充電電路。

[TCAM的配置]

圖4是示出TCAM器件的配置的框圖。參考圖4,TCAM器件100包括布置在矩陣中的多個(gè)子陣列SA、優(yōu)先級編碼器30、數(shù)據(jù)輸入電路31和命令輸入電路32。

由圖4所示的TCAM器件支持的搜索表大小是一個(gè)條目(1行)的比特長度是128比特,且條目的總數(shù)是4096。TCAM器件100被分成布置成16行和4列的子陣列SA[0,0]-SA[15,3]。每個(gè)子陣列SA的大?。鹤鳛闂l目總數(shù)總計(jì)至256條目,一個(gè)條目的比特長度為32比特。這些數(shù)目只是示例且TCAM器件的配置不限于這種情況。

針對每個(gè)子陣列公開了已經(jīng)解釋的搜索線對SL和SL_n、位線對BL和BL_n、匹配線ML以及字線。例如,從搜索線對SL[0]和SL_n[0]至搜索線對SL[31]和SL_n[31],提供了子陣列SA[0,0]。從搜索線對SL[32]和SL_n[32]至搜索線對SL[63]和SL_n[63],提供了子陣列SA[0,1]。從搜索線對SL[64]和SL_n[64]至搜索線對SL[95]和SL_n[95],提供了子陣列SA[0,2]。從搜索線對SL[96]和SL_n[96]至搜索線對SL[127]和SL_n[127],提供了子陣列SA[0,3]。

如圖4所示,針對一個(gè)條目的整個(gè)搜索數(shù)據(jù)和一個(gè)條目的整個(gè)TCAM單元數(shù)據(jù)(寫入數(shù)據(jù)),以32比特為單位將匹配線ML分成四個(gè)部分。因此,如圖5所示,針對每行在匹配放大器單元32中提供了用于計(jì)算每個(gè)匹配放大器MA的監(jiān)測結(jié)果的邏輯乘積的與門(圖5中的附圖標(biāo)記26)。

在數(shù)據(jù)寫入時(shí),數(shù)據(jù)輸入電路31從外部(例如圖6所示的網(wǎng)絡(luò)處理器單元)接收寫入數(shù)據(jù),并且輸出接收的寫入數(shù)據(jù)至子陣列SA的相應(yīng)寫入驅(qū)動(dòng)器21。在數(shù)據(jù)搜索時(shí),數(shù)據(jù)輸入電路31從外部接收搜索數(shù)據(jù),并且輸出接收的搜索數(shù)據(jù)至相應(yīng)的子陣列SA的搜索線驅(qū)動(dòng)器22。

命令輸入電路32從外部接收多種命令,例如寫入命令和搜索命令,并且將接收的命令輸出到相應(yīng)子陣列SA的控制邏輯電路24。

優(yōu)先級編碼器30從相鄰的子陣列SA[0,3],SA[1,3],···,SA[15,3]接收用于每個(gè)條目的搜索結(jié)果(輸入搜索數(shù)據(jù)和TCAM數(shù)據(jù)是否匹配)。優(yōu)先級編碼器30輸出命中的地址(儲存與搜索數(shù)據(jù)匹配的TCAM數(shù)據(jù)的條目地址)。當(dāng)多個(gè)條目命中(匹配)時(shí),優(yōu)先級編碼器30輸出具有更高優(yōu)先級的命中條目的地址。

[用于相同條目的多個(gè)匹配放大器的檢測結(jié)果的與操作]

圖5是示出每個(gè)匹配放大器的檢測結(jié)果的與操作的示例性示圖。圖5僅有代表性地示出子陣列SA[0,0]和SA[0,1]的一個(gè)條目。然而,同樣也適用于其它條目和其它子陣列。

如圖5所示,每個(gè)子陣列SA的匹配放大器單元23包括提供在用于每行的匹配放大器MA的后級中的與門26。然而,通過輸入“H”電平(電源電勢VDD)電勢至一個(gè)輸入節(jié)點(diǎn)中,在距離優(yōu)先級編碼器30最遠(yuǎn)的諸如SA[0,0]和[1,0]的子陣列中的與門36作用為緩沖器。此后,參考圖4和5,采用子陣列SA[0,0]-SA[0,3]的一個(gè)條目作為示例來解釋與門26的操作。

參考圖4和圖5,首先,在子陣列SA[0,0]-SA[0,3]的每個(gè)中,經(jīng)由搜索線對SL和SL_n輸入的搜索數(shù)據(jù)的相應(yīng)部分與TCAM單元數(shù)據(jù)進(jìn)行比較。每個(gè)子陣列SA的匹配放大器MA檢測相應(yīng)匹配線ML的電勢(當(dāng)輸入搜索數(shù)據(jù)的相應(yīng)部分和TCAM單元數(shù)據(jù)完全匹配時(shí),電勢處于“H”電平,并且當(dāng)它們一點(diǎn)都不匹配時(shí),電勢處于“L”電平)。

接著,子陣列SA[0,0]的匹配放大器MA的檢測結(jié)果通過提供在子陣列SA[0,0]的匹配放大器單元中用作緩沖器的與門26,并且作為匹配放大器輸出信號mo_0傳遞給相鄰的子陣列SA[0,1]。提供在子陣列SA[0,1]的匹配放大器單元23中的與門26獲得上述的匹配放大器輸出信號mo_0和子陣列SA[0,1]的匹配放大器MA的檢測結(jié)果的邏輯乘積。運(yùn)算結(jié)果作為匹配放大器輸出信號mo_1傳遞給相鄰的子陣列SA[0,2]。

類似地,在下文中,提供在子陣列SA[0,2]的匹配放大器單元23中的與門26獲得上述的匹配放大器輸出信號mo_1和子陣列SA[0,2]的匹配放大器MA的檢測結(jié)果的邏輯乘積。運(yùn)算結(jié)果作為匹配放大器輸出信號mo_2傳遞給相鄰的子陣列SA[0,3]。提供在子陣列SA[0,3]的匹配放大器單元23中的與門26獲得上述的匹配放大器輸出信號mo_2和子陣列SA[0,3]的匹配放大器MA的檢測結(jié)果的邏輯乘積。運(yùn)算結(jié)果被輸入到優(yōu)先級編碼器30中作為匹配放大器輸出信號mo_3。

[數(shù)據(jù)搜索系統(tǒng)的配置]

圖6是示出數(shù)據(jù)搜索系統(tǒng)的整個(gè)配置的框圖。圖6所示的框圖是提供在用于諸如因特網(wǎng)的網(wǎng)絡(luò)的路由器中的數(shù)據(jù)搜索系統(tǒng)120的配置。

為了網(wǎng)絡(luò)交通和網(wǎng)絡(luò)安全管理的質(zhì)量改進(jìn),ACL(訪問控制列表)用于網(wǎng)絡(luò)系統(tǒng)。ACL規(guī)則文件通過網(wǎng)絡(luò)管理員創(chuàng)建并且儲存在存儲器件102中。

數(shù)據(jù)搜索系統(tǒng)120基于ACL中描述的規(guī)則來直接確定經(jīng)由LAN(局域網(wǎng))輸入的網(wǎng)絡(luò)分組是允許傳遞的分組還是拒絕傳遞的分組。即,數(shù)據(jù)搜索系統(tǒng)120需要具有高速搜索輸入的分組所對應(yīng)的ACL中的規(guī)則的能力,并且此處的處理一般通過使用TCAM器件100的數(shù)據(jù)搜索系統(tǒng)120來執(zhí)行。

具體來說,數(shù)據(jù)搜索系統(tǒng)120包括TCAM器件100和NPU(網(wǎng)絡(luò)處理器單元)101。NPU 101用于控制TCAM器件100的操作,并且輸出多種命令(寫入命令、讀取命令、搜索命令等)以及多種數(shù)據(jù)(寫入數(shù)據(jù)、搜索數(shù)據(jù)等)至TCAM器件100。TCAM器件100提供有控制寄存器,且TCAM器件100還輸出用于控制寄存器的命令和數(shù)據(jù)。

在圖6中,優(yōu)選地僅僅將TCAM器件100配置為一個(gè)半導(dǎo)體器件,或者可以優(yōu)選地將TCAM器件100和NPU101以組合方式配置為一個(gè)半導(dǎo)體器件。

由網(wǎng)絡(luò)管理員創(chuàng)建的ACL規(guī)則文件通過NPU 101的數(shù)據(jù)轉(zhuǎn)換器103被轉(zhuǎn)換成用于TCAM的數(shù)據(jù),且轉(zhuǎn)換的數(shù)據(jù)儲存在TCAM器件中。TCAM器件100具有將基于包括在網(wǎng)絡(luò)分組中的IP地址等的搜索數(shù)據(jù)同時(shí)與儲存在TCAM器件中的所有數(shù)據(jù)進(jìn)行比較的能力。然而,不利之處在于TCAM的搜索操作產(chǎn)生了大電流。在具有TCAM器件的網(wǎng)絡(luò)系統(tǒng)和數(shù)據(jù)搜索系統(tǒng)中,問題是如何實(shí)現(xiàn)低功率消耗。

[ACL規(guī)則文件和相應(yīng)的TCAM數(shù)據(jù)的示例]

圖7是示出ACL規(guī)則文件的示例的表。圖7僅示出了ACL的三行,然而,ACL規(guī)則文件實(shí)際包括更多行。如圖7所示,ACL用于檢查從網(wǎng)絡(luò)輸入的分組的源IP地址、協(xié)議號、目標(biāo)端口號、源端口號和目標(biāo)IP地址。范圍規(guī)格可以用于這些檢查元件。

例如,圖7中附圖標(biāo)記201表示的行具有關(guān)于源IP地址的范圍規(guī)格。具體來說,“147.121.56.152/29”是固定地址的32比特中的較高級的29比特并且使用剩余的3比特作為掩碼(通配符)的表示。即,指定了147.121.56.152-147.121.56.255的范圍。還可能關(guān)于目的IP地址描述類似的范圍規(guī)格。

圖7中的附圖標(biāo)記202表示的行具有關(guān)于源端口號的范圍規(guī)格。即,“0:65535”表示指定從0到65535的范圍。

圖7中的附圖標(biāo)記203表示的行具有關(guān)于目的端口號的范圍規(guī)格。即,“1024:65535”的表示指定從1024到65535的范圍。

圖8是示出通過轉(zhuǎn)換圖7中圖示的ACL而獲得的TCAM數(shù)據(jù)的示例的圖。

參見圖8,一個(gè)規(guī)則包括8比特的協(xié)議號、16比特的目的端口號、16比特的源端口號、32比特的目的IP地址和32比特的源IP地址,共計(jì)104比特的數(shù)據(jù)。附圖中“x”表示不關(guān)注數(shù)據(jù)(通配數(shù)據(jù))。不關(guān)注數(shù)據(jù)是與“0”和“1”都匹配的數(shù)據(jù)。

通過圖8中的附圖標(biāo)記201、202和203表示的行的內(nèi)容分別對應(yīng)于通過圖7中的附圖標(biāo)記201、202和203所表示的行的ACL規(guī)則。如附圖標(biāo)記203所示,在ACL規(guī)則中的一行內(nèi)描述的范圍規(guī)格規(guī)則(1024-65535)在轉(zhuǎn)換為TCAM數(shù)據(jù)時(shí)可以變?yōu)橐粤忻枋龅臄?shù)據(jù)。當(dāng)通過使用范圍規(guī)格規(guī)則來描述諸如目的端口號和源端口號的多個(gè)元素時(shí),TCAM需要的行數(shù)進(jìn)一步增加。例如,當(dāng)通過使用1024-6535的區(qū)域規(guī)格規(guī)則來描述目的端口號和源端口號時(shí),TCAM器件需要36行的數(shù)據(jù)區(qū)域。因而,當(dāng)在ACL中包括許多區(qū)域規(guī)格規(guī)則時(shí),應(yīng)理解在TCAM數(shù)據(jù)中包括了許多不關(guān)注數(shù)據(jù)的項(xiàng)目。

圖9是示意性示出其中寫入了基于ACL的轉(zhuǎn)換數(shù)據(jù)的TCAM器件的存儲器狀態(tài)的圖。圖9示出了在TCAM器件的儲存區(qū)域?qū)懭刖哂性S多范圍規(guī)格規(guī)則的ACL規(guī)則文件的狀態(tài)。

圖9所示的TCAM器件具有4096個(gè)條目的儲存區(qū)域,且可以每個(gè)條目可以儲存128比特的數(shù)據(jù)。整個(gè)TCAM器件被分成16行4列的總共64個(gè)子陣列SA[0,0]-SA[15,3]。

TCAM器件的儲存區(qū)域中通過圖9的加重線框包圍的區(qū)域是寫入基于ACL的轉(zhuǎn)換數(shù)據(jù)的區(qū)域。其中寫入數(shù)據(jù)的區(qū)域210的比特寬度是104比特并且對應(yīng)于圖8所示的5個(gè)檢查元素(8比特的協(xié)議號、16比特的目的端口號、16比特的源端口號、32比特的目的IP地址和32比特的源IP地址)。在加重線框區(qū)域210中,在較窄間隔處具有斜線的陰影區(qū)的區(qū)域211表示不關(guān)注數(shù)據(jù)的區(qū)域,其余區(qū)域表示數(shù)據(jù)“0”和數(shù)據(jù)“1”的區(qū)域。

對于104比特的ACL規(guī)則,TCAM器件的比特寬度是128比特;因而,在TCAM器件中產(chǎn)生了不具有寫入數(shù)據(jù)的24比特寬度的區(qū)域212。不關(guān)注數(shù)據(jù)儲存在所述區(qū)域212的TCAM單元中。

此外,當(dāng)規(guī)則數(shù)目對于作為TCAM器件的條目總數(shù)的4096個(gè)條目不足夠時(shí),存在沒有寫入數(shù)據(jù)的128比特寬度的空間區(qū)域213。整個(gè)空間區(qū)域被設(shè)置作為無效條目(也稱作非搜索目標(biāo)條目)。無效條目區(qū)域在搜索時(shí)總是導(dǎo)致錯(cuò)失(不匹配)。

具體來說,在圖9所示的TCAM中,關(guān)于子陣列SA[14,1]、SA[12,2]、SA[13,2]、SA[14,2]和SA[j,3](j=7-14),每個(gè)子陣列中的所有單元數(shù)據(jù)都是不關(guān)注;因而,這些子陣列的所有行的搜索結(jié)果是明顯的(全變?yōu)槊?。關(guān)于圖9中的子陣列SA[15,1]、SA[15,2]和SA[15,3],相關(guān)的每行子陣列只包括不關(guān)注的單元數(shù)據(jù)或者其對應(yīng)于無效條目;因而,這些子陣列的每行的搜索結(jié)果是明顯的。然而,當(dāng)輸入搜索命令時(shí)針對所有的這些子陣列執(zhí)行搜索操作;因而,也向具有上述的明顯搜索結(jié)果的子陣列執(zhí)行搜索操作。為此,存在無效消耗電流的問題。

<實(shí)施例1>

在第一實(shí)施例中,提供了以下技術(shù):其中,輸出正常搜索結(jié)果,同時(shí)在TCAM器件中具有明顯搜索結(jié)果的區(qū)域中,具體是不關(guān)注數(shù)據(jù)區(qū)域,停止搜索操作。因而,可以減少現(xiàn)有技術(shù)中的無效消耗的電流;因而,可以提供具有低功率消耗的TCAM器件以及采用這種TCAM器件的數(shù)據(jù)搜索系統(tǒng)。此后,將參考附圖進(jìn)行詳細(xì)說明。

[子陣列的配置]

圖10是示出根據(jù)第一實(shí)施例的TCAM器件中的子陣列的配置的框圖。參見圖10,圖10所示的子陣列SA與圖3所示的子陣列SA的區(qū)別在于進(jìn)一步包括了寄存器REG1。在圖10中,寄存器REG1被示出為提供在控制邏輯電路24的內(nèi)部,但是也可以提供在控制邏輯電路24以外。圖10的其它元件的配置與圖3相同。因此,相同附圖標(biāo)記用于相同或相應(yīng)的元件且省略了重復(fù)描述。圖10主要示出了與數(shù)據(jù)搜索有關(guān)的部分,因而沒有示出與數(shù)據(jù)寫入有關(guān)的寫入驅(qū)動(dòng)器21。

當(dāng)TCAM單元陣列20的所有數(shù)據(jù)是不關(guān)注時(shí),寄存器REG1被設(shè)置為高電平“H”(在本說明書中被定義為“1”),且在至少一個(gè)不是不關(guān)注時(shí)(稱作“非不關(guān)注”)被設(shè)置在低電平“L”(在本說明書中被定義為“0”)。具體來說,TCAM器件中的專用電路可以分析TCAM單元陣列20中的所有數(shù)據(jù)是否是不關(guān)注,并且相關(guān)的專用電路可以基于分析結(jié)果設(shè)定寄存器REG1的值。可替選地,上述的分析也可以在外部執(zhí)行(例如通過圖6所示的NPU 101的數(shù)據(jù)分析器104),并且可以從外部將分析結(jié)果寫入到寄存器REG1中。

控制邏輯電路24根據(jù)在寄存器REG1中設(shè)置的邏輯電平產(chǎn)生用于控制搜索操作的控制信號(sle、force_hit、mae和mlpre_n)。此后將參考圖11-15進(jìn)行詳細(xì)解釋。

[搜索系統(tǒng)控制電路的配置]

圖11是示出圖10所示的控制邏輯電路中的搜索操作相關(guān)的部分的配置的電路圖。參考圖10和圖11,控制邏輯電路24包括寄存器REG1、反相器42、47和48、與門43、46、49和51、D觸發(fā)器44和45以及延遲級50。寄存器REG1包括D觸發(fā)器40和與門41。

在寄存器寫入命令被激活至“H”電平時(shí),在時(shí)鐘信號clk的上升沿(即,在與門41的輸出變?yōu)椤癏”電平時(shí))在D觸發(fā)器40中寫入寄存器設(shè)置數(shù)據(jù)。當(dāng)子陣列中所有單元的數(shù)據(jù)是不關(guān)注時(shí),在D觸發(fā)器40中寫入1(“H”電平),并且當(dāng)是非不關(guān)注時(shí),在D觸發(fā)器40中寫入0(“L”電平)。寄存器設(shè)置數(shù)據(jù)和寄存器寫入數(shù)據(jù)從TCAM器件的外部提供(例如圖6所示的NPU 101)。例如,在激活TCAM器件時(shí),執(zhí)行寄存器設(shè)置數(shù)據(jù)的寫入。

D觸發(fā)器40的輸出信號被輸入到匹配放大器單元23的每個(gè)匹配放大器MA中作為控制信號force_hit。D觸發(fā)器的輸出經(jīng)由反相器42也被輸入到與門43。

搜索命令經(jīng)過與門43、觸發(fā)器44和45、與門46和反相器47的順序被輸入到匹配放大器單元23作為匹配線預(yù)充電信號mlpre_n。由反相器42反相的控制信號force_hit被輸入到上述與門43的其他輸入節(jié)點(diǎn)。時(shí)鐘信號clk被輸入到上述觸發(fā)器44和45的時(shí)鐘端子。時(shí)鐘信號clk被輸入到上述與門46的其他輸入節(jié)點(diǎn)。

上述觸發(fā)器45的輸出信號也經(jīng)由與門49被輸出到搜索線驅(qū)動(dòng)器22作為搜索線使能信號sle。利用反相器48將時(shí)鐘信號clk反相獲得的信號被輸入到與門49的其它輸入節(jié)點(diǎn)。

上述與門49的輸出信號還經(jīng)由延遲級50被輸入到與門51的第一輸入節(jié)點(diǎn),且同時(shí),直接輸入到與門51的第二輸入節(jié)點(diǎn),沒有經(jīng)過延遲級50。與門51的輸出信號被輸入到匹配放大器單元23的每個(gè)匹配放大器MA中作為匹配放大器使能信號mae。

根據(jù)上述的電路配置,依賴于寄存器REG1的設(shè)定值,當(dāng)寄存器REG1的設(shè)定值是“1”時(shí)、控制信號force_hit變?yōu)椤癏”電平,并且當(dāng)寄存器REG1的設(shè)定值是“0”時(shí)、控制信號force_hit變?yōu)椤癓”電平。用于搜索操作控制的控制信號(sle、mae和mlpre_n)根據(jù)寄存器REG1的搜索命令和設(shè)定值而改變。

具體來說,當(dāng)寄存器REG1的儲存數(shù)據(jù)是“L”(不關(guān)注)時(shí),并且當(dāng)搜索命令被激活到“H”電平時(shí),匹配線預(yù)充電信號mlpre_n先被激活到“L”電平。接著,搜索線使能信號sle被激活至“H”電平。最后,匹配放大器使能信號mae被激活至“H”電平。

相反,當(dāng)寄存器REG1的設(shè)置數(shù)據(jù)是“H”(不關(guān)注)時(shí),即使搜索命令被激活到“H”電平,匹配線預(yù)充電信號mlpre_n也保持“H”電平(不激活狀態(tài)),且搜索線使能信號sle保持“L”電平(不激活狀態(tài)),且匹配放大器使能信號mae保持“L”電平(不激活狀態(tài))。

[搜索線驅(qū)動(dòng)器的配置和操作]

圖12是示出圖10所示的搜索線驅(qū)動(dòng)器的配置的示例的電路圖。參見圖10和12,當(dāng)搜索線使能信號sle被激活至“H”電平時(shí),搜索線驅(qū)動(dòng)器22將輸入搜索數(shù)據(jù)sd[i](i=0,1,…,k)輸出至搜索線SL[i],并且同時(shí),將通過對輸入搜索數(shù)據(jù)sd[i]的邏輯電平反相而獲得的信號輸出到互補(bǔ)的搜索線SL_n[i]。

具體來說,搜索線驅(qū)動(dòng)器22包括分別與搜索線SL[0]-SL[k]對應(yīng)的與門60[0]-60[k]、分別與搜索線SL_n[0]–SL_n[k]對應(yīng)的與門61[0]-61[k]以及反相器62[0]-62[k]。搜索線使能信號sle公共輸入到與門60[0]-60[k]和與門61[0]-61[k]。相應(yīng)的搜索數(shù)據(jù)sd[i]和相應(yīng)的掩碼信號mask_n[i]被輸入到與門60[i](i=0,1,…,k)。與門60[i](i=0,1,…,k)的輸出信號傳輸?shù)剿阉骶€SL[i]。通過將相應(yīng)的搜索數(shù)據(jù)sd[i]反相而獲得信號以及相應(yīng)的掩碼信號mask_n[i]被輸入到與門61[i](i=0,1,…,k)。

根據(jù)上述配置,例如,當(dāng)搜索線使能信號sle被激活至“H”電平時(shí),并且當(dāng)輸入數(shù)據(jù)sd[i]處于“H”電平(“1”)時(shí),搜索線SL[i]的電壓變?yōu)椤癏”電平且搜索線SL_n[i]的電壓變?yōu)椤癓”電平。當(dāng)搜索線使能信號sle被激活至“H”電平時(shí),并且當(dāng)輸入數(shù)據(jù)sd[i]處于“L”電平(“0”)時(shí),搜索線SL[i]的電壓變?yōu)椤癓”電平且搜索線SL_n[i]的電壓變?yōu)椤癏”電平。在掩碼搜索的情況下(屏蔽搜索操作的操作),當(dāng)掩碼信號mask_n[i](i=0,1,…,k)被激活至“L”電平時(shí),搜索線SL[i]的電壓變?yōu)椤癓”電平且搜索線SL_n[i]的電壓變?yōu)椤癓”電平。

[匹配放大器的配置和操作]

圖13是示出圖10所示的匹配放大器的配置的示例的電路圖。參考圖10和圖13,匹配放大器MA包括作為預(yù)充電電路的P溝道MOS晶體管70、反相器71-74以及邏輯門(與非門)75。在圖13中,作為預(yù)充電電路的MOS晶體管70被示出在匹配放大器MA的內(nèi)部,但是MOS晶體管70也可以提供在匹配放大器MA以外。

此后,解釋上述部件的連接。MOS晶體管70耦合在相應(yīng)的匹配線ML和提供電源電勢VDD的電源節(jié)點(diǎn)之間。匹配線預(yù)充電信號mlpre_n輸入到MOS晶體管70的柵極。匹配線ML還耦合到反相器71的輸入節(jié)點(diǎn)。反相器71的輸出節(jié)點(diǎn)耦合到邏輯門75的第一輸入節(jié)點(diǎn)。控制信號force_hit經(jīng)由反相器74輸入到邏輯門75的第二輸入節(jié)點(diǎn)。邏輯門75的輸出節(jié)點(diǎn)經(jīng)由反相器72耦合到邏輯門75的第一輸入節(jié)點(diǎn)。匹配放大器使能信號mae和由反相器73反相其邏輯電平而獲得的信號耦合到反相器71和72的驅(qū)動(dòng)電源節(jié)點(diǎn)。當(dāng)匹配放大器使能信號mae處于不激活狀態(tài)時(shí)(“L”電平),反相器71變?yōu)榉遣僮鳡顟B(tài),且反相器72變?yōu)椴僮鳡顟B(tài)。當(dāng)匹配放大器使能信號mae處于非激活狀態(tài)(“H”電平)時(shí),反相器71變?yōu)椴僮鳡顟B(tài)而反相器72變?yōu)榉遣僮鳡顟B(tài)。

接著,解釋圖13所示的匹配放大器MA的電路操作。首先,解釋:(i)其中控制邏輯電路24的寄存器REG1被設(shè)置在“L”電平(表示非不關(guān)注)的情況。在這種種情況下,由于控制信號force_hit處在“L”電平,邏輯門75起反相器作用。

首先,匹配線預(yù)充電信號mlpre_n被激活(設(shè)置為低電平),B并且因此,MOS晶體管70被變得導(dǎo)通。因而,匹配線ML被充電至電源電勢VDD(預(yù)充電)。

在匹配線預(yù)充電信號mlpre_n被去激活之后圖10的搜索線使能信號sle被激活(設(shè)置到“H”電平),并且因此,搜索數(shù)據(jù)被輸入到搜索線對SL和SL_n。因而,匹配線ML的電勢根據(jù)搜索結(jié)果(輸入搜索數(shù)據(jù)和TCAM單元數(shù)據(jù)的相應(yīng)部分的比較結(jié)果)而改變。即,在匹配(命中)的情況下,匹配線Ml的電勢保持在電源電勢VDD(“H”電平),且在不匹配(失配)的情況下,匹配線ML的電荷被放電至接地節(jié)點(diǎn);因而,匹配線ML的電勢改變到接地電勢(“L”電平)。

接著,匹配線使能信號mae被激活(設(shè)置到“H”電平)。因而,基于搜索結(jié)果的匹配線ML的電勢經(jīng)由反相器71和邏輯門75(等同于反相器)被輸出作為匹配放大器輸出信號mo。當(dāng)匹配放大器使能信號mae被去激活時(shí)(設(shè)置為“L”電平),基于搜索結(jié)果的匹配線ML的電勢保持在包括用作反相器的邏輯門75和反相器72的鎖存電路69中。

另一面,在第(ii)種情況下:其中寄存器REG1設(shè)置在“H”電平(表示不關(guān)注),控制信號force_hit處在“H”電平;因而匹配放大器MA的輸出信號mo(邏輯門75的輸出信號)固定在“H”電平(表示匹配(命中))。此外,在這種情況下,匹配線預(yù)充電信號mlpre_n處在“H”電平(非激活狀態(tài));因而,沒有執(zhí)行匹配線ML的預(yù)充電。搜索線使能信號sle處在“L”電平(非激活狀態(tài));因而,搜索線對SL和SL_n被固定到“L”電平(搜索線驅(qū)動(dòng)器24不工作)。匹配線使能信號mae處在“L”電平(非激活狀態(tài));因而,反相器71處在不工作狀態(tài)。

[搜索操作的示例]

此后,參考圖14和15所示的時(shí)序圖來解釋再一個(gè)特定的子陣列中搜索操作的示例。

(“0”儲存在寄存器REG1中的情況)

圖14是示出當(dāng)表示不關(guān)注的數(shù)據(jù)“0”儲存在設(shè)置在圖10所示的子陣列中的寄存器REG1中時(shí)的搜索操作的時(shí)序圖。在圖14中,周期是從時(shí)鐘信號clk的正沿到下一正沿的時(shí)段。從控制邏輯電路24輸出的控制信號force_hit處在“L”電平。

參考圖14,在改變到周期T1之后(從緊接在周期T1之前的第二個(gè)半周期至周期T1的第一個(gè)半周期),搜索命令和搜索數(shù)據(jù)被輸入到TCAM器件。在周期T中時(shí)鐘信號clk的第一個(gè)上升,搜索命令和搜索數(shù)據(jù)被獲取到控制邏輯電路24中。響應(yīng)于該搜索命令,控制邏輯電路24在隨后的周期T2的第一個(gè)半周期內(nèi)激活(設(shè)置為“L”電平)匹配線預(yù)充電信號mlpre_n。因此,匹配線ML被充電至電源電勢VDD(預(yù)充電)。

響應(yīng)于搜索命令,控制邏輯電路24激活在周期T2的第二個(gè)半周期內(nèi)激活(設(shè)置為“H”電平)搜索線使能信號sle。在搜索線使能信號sle被激活之前,匹配線預(yù)充電信號mlpre_n被去激活(設(shè)置為“H”電平)。由于搜索線使能信號sle的激活,搜索線驅(qū)動(dòng)器22被激活以傳遞搜索數(shù)據(jù)sd至搜索線對SL和SL_n。結(jié)果,當(dāng)耦合到匹配線ML的所有TCAM單元的單元數(shù)據(jù)匹配(命中)經(jīng)由搜索線對SL和SL_n傳遞的搜索數(shù)據(jù)sd時(shí),匹配線ML的電勢保持在電源電勢VDD(“H”電平)。當(dāng)耦合到匹配線ML的TCAM單元的儲存值中的至少一個(gè)不與傳送的搜索數(shù)據(jù)sd匹配(失配)時(shí),在匹配線ML處預(yù)充電的電荷被放電,因而匹配線ML的電勢變?yōu)榻拥仉妱?“L”電平)。

響應(yīng)于搜索命令,在周期T2的第二個(gè)半周期,在激活搜索線使能信號sle之后且在去激活其之前,控制邏輯電路24激活(設(shè)置為“H”電平)匹配放大器使能信號mae。因而,在每行(條目)中,從匹配放大器MA輸出基于匹配線ML(搜索結(jié)果)的信號。對應(yīng)于同一條目的多個(gè)子陣列(匹配放大器MA)中的搜索結(jié)果進(jìn)行與操作且然后被輸入到優(yōu)先級編碼器30中。

在隨后的周期T3中,當(dāng)控制邏輯電路24去激活(設(shè)置為“L”電平)匹配放大器使能信號mae,在每個(gè)匹配線ML中檢測到的搜索結(jié)果保持在相應(yīng)匹配放大器MA中的鎖存電路69中。此外,在周期T3中,優(yōu)先級編碼器30輸出命中地址(搜索結(jié)果)。當(dāng)存在多個(gè)命中地址時(shí),輸出具有最高優(yōu)先級的命中地址。

(在寄存器REG1中儲存“1”的情況)

圖15是示出當(dāng)表示不關(guān)注的數(shù)據(jù)“1”儲存在設(shè)置在圖10所示的子陣列中的寄存器REG1中時(shí)的搜索操作的時(shí)序圖。

參見圖15,在電源啟動(dòng)等時(shí),首先(在圖15中,從緊接在周期T1前的周期的第二個(gè)半周期至周期T1的第一個(gè)半周期),寄存器寫入命令和表示不關(guān)注的寄存器設(shè)置數(shù)據(jù)(“H”電平)被輸入到TCAM器件中。在周期T1的時(shí)鐘信號clk的第一個(gè)上升,寄存器設(shè)置數(shù)據(jù)(“H”電平)被寫入到相應(yīng)子陣列SA的寄存器REG1中。因而,控制信號force_hit被設(shè)置至“H”電平,且每個(gè)匹配放大器MA的輸出信號mo被固定至“H”電平(表示命中)。

在搜索操作中,首先(在圖15中,從周期T2的第二個(gè)半周期至周期T3的第一個(gè)半周期),搜索命令和搜索數(shù)據(jù)被輸入到TCAM器件。當(dāng)在寄存器REG1中設(shè)置“L”電平時(shí),在周期T3中的時(shí)鐘信號clk的第一個(gè)上升沿,搜索命令被獲取到控制邏輯電路24中,且在隨后的周期T4中,執(zhí)行搜索操作(參見圖14)。然而,當(dāng)在寄存器REG1中設(shè)置“H”電平時(shí),搜索命令沒有被獲取到控制邏輯電路24中。因此,在隨后的周期T4中沒有啟動(dòng)搜索操作。

這樣,當(dāng)一個(gè)確定的子陣列的所有TCAM單元的單元數(shù)據(jù)表示不關(guān)注時(shí),寄存器REG1被設(shè)置在“H”電平(“1”)。結(jié)果,相關(guān)子陣列的每個(gè)匹配放大器MA被固定到“H”電平(命中),且搜索操作(匹配線的預(yù)充電和搜索線驅(qū)動(dòng)器的操作)沒有在相關(guān)子陣列中執(zhí)行。因此,可以實(shí)現(xiàn)功率節(jié)省。

[匹配放大器的配置的修改的示例]

例如,圖9所示的TCAM器件的子陣列SA[15,1]、SA[15,2]和SA[15,3]包括沒有儲存數(shù)據(jù)的無效條目。即,在三個(gè)子陣列的每行中,所有的單元數(shù)據(jù)被設(shè)置為不關(guān)注或者對應(yīng)于無效條目。因而,每行(條目)的搜索結(jié)果是明顯的。在這樣的情況下,通過將圖10的控制邏輯電路24中的寄存器REG1設(shè)置為“H”電平(“1”),可以獲得低的功率消耗,使得不在相關(guān)子陣列中執(zhí)行搜索操作。然而,關(guān)于與三個(gè)子陣列中的無效條目對應(yīng)的行,需要進(jìn)行改變使得匹配放大器MA輸出“L”電平(錯(cuò)失)作為搜索結(jié)果。

以下解釋上述的在無效條目的情況下被改變來輸出錯(cuò)失作為搜索結(jié)果的匹配放大器MA的配置。如圖9所示,無效條目在TCAM器件的全部條目中指定沒有儲存數(shù)據(jù)的空條目,并且其是非搜索目標(biāo)條目。另一方面,有效條目是TCAM器件的所有條目中的儲存數(shù)據(jù)的搜索目標(biāo)條目。

圖16是示出圖10所示的匹配放大器的修改的示例的電路圖。圖16所示的匹配放大器MA與圖10所示的匹配放大器的區(qū)別在于進(jìn)一步包括了與門76和寄存器REG2。寄存器REG2在子陣列的相應(yīng)行(條目)是無效條目時(shí)被設(shè)置在“L”電平(在本說明書中被定義為“0”),并且在相應(yīng)行(條目)是有效條目時(shí)被設(shè)定在“H”電平(在本說明書中被定義為“1”)。寄存器REG2只需要與用于子陣列SA每行的匹配放大器MA對應(yīng)地提供;因而,寄存器REG2不需要提供在匹配放大器MA以內(nèi),如圖16所示。寄存器REG2的上述設(shè)定值可以通過提供在TCAM器件內(nèi)的專用電路來執(zhí)行,或者可以從TCAM器件的外部執(zhí)行(例如,圖6所示的NPU 101)。

與門76輸出從寄存器REG2輸出的控制信號val_ent和邏輯門75的輸出信號的與運(yùn)算結(jié)果,作為匹配放大器MA的輸出信號mo。圖16的其它元件的配置與圖10的配置相同;因此,相同的附圖標(biāo)記應(yīng)用于相同或相應(yīng)的元件且省略對其重復(fù)描述。

根據(jù)上述配置,即使當(dāng)圖10和11所述的寄存器REG1被設(shè)置在表示不關(guān)注的“H”電平(“1”)時(shí),通過將與無效條目對應(yīng)的匹配放大器MA的寄存器REG2設(shè)置為“L”電平(“0”)值,可以將匹配放大器MA的輸出信號mo設(shè)置在“L”電平(錯(cuò)失)。因此,當(dāng)某個(gè)子陣列的每行完全包括不關(guān)注的單元數(shù)據(jù)或者對應(yīng)于無效條目且不包括“1”或“0”的TCAM單元儲存數(shù)據(jù)時(shí),可以停止在相關(guān)的子陣列中的搜索操作,并且從每個(gè)匹配放大器MA中正常輸出命中(在不關(guān)注的情況下)或者錯(cuò)失(在無效條目的情況下)。結(jié)果,可以減少相關(guān)子陣列的功耗。

[第一實(shí)施例的效果]

根據(jù)上述實(shí)施例,可以控制不對具有明顯搜索結(jié)果的子陣列執(zhí)行搜索操作并且從相關(guān)子陣列輸出正常搜索結(jié)果。具體來說,當(dāng)包括在子陣列中的所有TCAM單元的數(shù)據(jù)是不關(guān)注時(shí),表示命中的“H”電平信號從每個(gè)匹配放大器MA輸出。當(dāng)相關(guān)子陣列的每行完全包括不關(guān)注的單元數(shù)據(jù)時(shí)或者對應(yīng)于無效條目時(shí),對應(yīng)于不關(guān)注的情況從匹配放大器MA輸出表示命中的“H”電平信號,并且對應(yīng)于無效條目的情況從匹配放大器MA輸出表示錯(cuò)失的“L”電平信號。結(jié)果,相關(guān)子陣列的每個(gè)匹配放大器MA沒有產(chǎn)生匹配線的預(yù)充電電流和操作電流。因而,可以減少TCAM器件的功耗。

此外,通過不對具有明顯搜索結(jié)果的子陣列執(zhí)行搜索操作,可以減少搜索操作時(shí)的峰值電流并且抑制快速電流變化。此外,由于抑制了快速電流變化,可以減少提供到安裝TCAM器件的半導(dǎo)體芯片的供給電壓。結(jié)果,可以實(shí)現(xiàn)具有穩(wěn)定搜索特性的高質(zhì)量的TCAM器件。此外,由于減少了TCAM器件的電流消耗和在搜索操作時(shí)的峰值電流,可以減輕耦合到TCAM器件的外部電源器件的需要容量(例如電流的供給容量和響應(yīng)性能)。因此,可以實(shí)現(xiàn)不昂貴和高質(zhì)量的數(shù)據(jù)搜索系統(tǒng)。

<第二實(shí)施例>

[TCAM子陣列的配置]

圖17是示出根據(jù)第二實(shí)施例的TCAM器件中的子陣列SA的配置的框圖。圖17所示的子陣列SA與圖10所示的子陣列SA的不同之處在于:布置在列方向(Y方向)的兩端的兩個(gè)控制邏輯電路24A和24B以及布置在列方向(Y方向)的兩端的兩個(gè)搜索線驅(qū)動(dòng)器22A和22B。雖然在圖17中沒有示出,寫入驅(qū)動(dòng)器還布置在列方向(Y方向)的兩端。

從第0行至第(m-1)/2行的TCAM單元(被稱作單元陣列20A)通過與這些TCAM單元(單元陣列20A)相鄰的驅(qū)動(dòng)器22A、匹配放大器單元23A和控制邏輯電路24A來控制。

當(dāng)單元陣列20A僅儲存不關(guān)注數(shù)據(jù)時(shí),在設(shè)置在控制邏輯電路24A中的寄存器REG1A中設(shè)置“H”電平的(“1”)值。在這種情況下,從控制邏輯電路24A輸出的控制信號force_hit變?yōu)椤癏”電平(“1”)。因此,來自提供在匹配放大器單元23A中的匹配放大器(未示出)的輸出信號mo[0]-mo[(m-1)/2]被固定在“H”電平(命中)。

從第((m-1)/2+1)行至第m行的TCAM單元(被稱作單元陣列20B)通過與這些TCAM單元(單元陣列20B)相鄰的SL驅(qū)動(dòng)器22B、匹配放大器單元23B和控制邏輯電路24B來控制。

當(dāng)單元陣列20B僅儲存不關(guān)注數(shù)據(jù)時(shí),在設(shè)置在控制邏輯電路24B中的寄存器REG1B中設(shè)置“H”電平(“1”)的值。在這種情況下,從控制邏輯電路24B輸出的控制信號force_hit變?yōu)椤癏”電平(“1”)。因此,來自提供在匹配放大器單元23B中的匹配放大器(未示出)的輸出信號mo[(m-1)/2+1]-mo[m]被固定在“H”電平(命中)。

在圖17所示的子陣列SA的匹配放大器單元23A和23B中提供的每個(gè)匹配放大器(未示出)可以具有圖16所解釋的具有寄存器REG2的匹配放大器MA的配置。在這種情況下,來自與子陣列SA的單元陣列20A和20B中的無效條目對應(yīng)的行的匹配放大器的輸出信號mo變?yōu)椤癓”電平(錯(cuò)失)。

圖17的其它元件與例如圖10所示的第一實(shí)施例的相同。因此,相同附圖標(biāo)記用于相同或相應(yīng)的元件且省略了重復(fù)描述。

[第一實(shí)施例的效果]

根據(jù)以上配置的包括子陣列的TCAM器件,產(chǎn)生了與根據(jù)第一實(shí)施例的TCAM器件相同的效果,并且還產(chǎn)生了以下的效果。首先,與第一實(shí)施例的圖10所示配置的子陣列相比,可以執(zhí)行指示條目(行)總數(shù)的一半的區(qū)域是否是不關(guān)注區(qū)域的設(shè)置。因而,對于具有相對小的不關(guān)注區(qū)域的ACL規(guī)則文件,可以獲得功率節(jié)省。

當(dāng)布置了圖10所示配置的多個(gè)子陣列SA時(shí),需要在相鄰子陣列SA之間提供一定量的間隔,使得諸如搜索線驅(qū)動(dòng)器22的驅(qū)動(dòng)器電路和單元陣列20A不會(huì)靠的太近,由于設(shè)計(jì)規(guī)則的限制。與此相比,當(dāng)布置圖17所示配置的多個(gè)子陣列SA時(shí),可以在與相鄰子陣列SA的搜索線驅(qū)動(dòng)器22B和控制邏輯電路24B的附近,布置每個(gè)子陣列SA的搜索線驅(qū)動(dòng)器22A和控制邏輯電路24A。因此,如圖10的情況,優(yōu)勢在于不必?cái)U(kuò)大相鄰子陣列之間的間隔。

<第三實(shí)施例>

例如,對于圖9所示的子陣列SA[6,1]和SA[13,1],子陣列中的所有行的TCAM單元沒有被設(shè)置為不關(guān)注。因此,不可能將圖10和圖11所示的寄存器REG1設(shè)置在“H”電平(“1”)。然而,一些行的所有TCAM單元被設(shè)置為不關(guān)注。因此,對于這些行,搜索結(jié)果明顯變?yōu)槊小?/p>

因此,根據(jù)第三實(shí)施例的TCAM器件可以控制來針對子陣列的每行停止匹配線ML的預(yù)充電和停止匹配放大器MA的電路操作。因而,可以實(shí)現(xiàn)進(jìn)一步的功率節(jié)省。此后,將參考附圖進(jìn)行詳細(xì)描述。

[匹配放大器的配置和操作]

圖18是示出根據(jù)第三實(shí)施例的TCAM器件中的匹配放大器MA的配置的電路圖。圖18中的匹配放大器MA與圖13中的匹配放大器MA的區(qū)別在于進(jìn)一步包括了寄存器REG3、或門77、與門78和反相器79。此外,圖18所示的匹配放大器MA與圖13所示的匹配放大器MA區(qū)別在于包括或非門80來代替反相器74。

當(dāng)經(jīng)由匹配線ML耦合到匹配放大器MA的所有TCAM單元的單元數(shù)據(jù)被設(shè)置為不關(guān)注時(shí),寄存器REG3被設(shè)置為“H”電平(本說明書中定義為“1”)。當(dāng)經(jīng)由匹配線ML耦合到匹配放大器MA的TCAM單元中的至少一個(gè)單元數(shù)據(jù)不是不關(guān)注時(shí),寄存器REG3被設(shè)置為“L”電平(本說明書中定義為“0”)。寄存器REG3只需要對應(yīng)于用于子陣列SA的每行的匹配放大器MA來提供;因而,寄存器REG3不需要提供在圖18所示的匹配放大器MA內(nèi)。

或門77對從寄存器REG3輸出的控制信號dnc_hit和匹配線預(yù)充電信號mlpre_n執(zhí)行或運(yùn)算,并且輸出運(yùn)算結(jié)果至P溝道MOS晶體管70的柵極。因而,當(dāng)按照寄存器REG3的設(shè)定值的控制信號dnc_hit處于“H”電平時(shí),MOS晶體管70被固定至關(guān)斷狀態(tài)。因此,匹配線ML的預(yù)充電沒有進(jìn)行。

與門78對匹配放大器使能信號mae和利用反相器79對從寄存器REG3輸出的控制信號dnc_hit的邏輯電平進(jìn)行反相而獲得的值進(jìn)行與運(yùn)算。與門78的與運(yùn)算結(jié)果和通過反相器73將與運(yùn)算結(jié)果的邏輯電平反相而獲得的信號被供給到反相器71和72的驅(qū)動(dòng)電源節(jié)點(diǎn)。因此,當(dāng)按照寄存器REG3的設(shè)定值的控制信號dnc_hit處于高電平時(shí),反相器71處于不操作狀態(tài),且反相器72處于操作狀態(tài)。因此,匹配線ML的電勢沒有被輸出到下一級電路,且匹配線ML的電勢沒有被鎖存。

或非門80對從寄存器REG3輸出的控制信號dnc_hit和控制信號force_hit執(zhí)行或非操作,且將運(yùn)算結(jié)果輸入到邏輯門75(與非門)的第二輸入節(jié)點(diǎn)。因而,當(dāng)寄存器REG3(控制信號dnc_hit)被設(shè)置在“H”電平時(shí),匹配放大器MA的輸出信號mo(邏輯門75的輸出信號)被固定至“H”電平(表示匹配(命中))。

如上所述,當(dāng)寄存器REG3(控制信號dnc_hit)被設(shè)置在“H”電平時(shí),可以將匹配放大器MA的輸出信號mo固定在“H”電平(命中)并且停止匹配線ML的預(yù)充電和匹配放大器MA的電路操作,即使是在寄存器REG1設(shè)置在“L”電平時(shí)。

圖18的其他配置和操作與圖13相同。因而,相同的附圖標(biāo)記應(yīng)用于相同或相應(yīng)的元件且省略其重復(fù)描述。例如,當(dāng)提供在控制邏輯電路24中的寄存器REG1和提供在匹配放大器MA中的寄存器REG3都設(shè)置在“L”電平(表示不關(guān)注)時(shí),經(jīng)由匹配放大器MA對耦合到匹配線ML的TCAM單元執(zhí)行普通搜索操作。當(dāng)在控制邏輯電路24中的寄存器REG1設(shè)置在“H”電平(表示不關(guān)注)時(shí),停止整個(gè)子陣列的搜索操作。

[寄存器REG3的數(shù)據(jù)設(shè)置方法]

此后,將參考圖18至21來描述寄存器REG3的數(shù)據(jù)設(shè)置方法。

如圖18所示,寄存器寫入信號reg_w_sig和寄存器數(shù)據(jù)reg_data被輸入到寄存器REG3中。寄存器REG3在寄存器寫入信號reg_w_sig激活時(shí)儲存寄存器數(shù)據(jù)reg_data。寄存器寫入信號reg_w_sig和寄存器數(shù)據(jù)reg_data可以從TCAM器件內(nèi)的專用電路提供,或者可以從TCAM器件外部的處理器提供(例如,圖6所示的NPU 101)。

具體來說,當(dāng)專用電路(圖19所示的數(shù)據(jù)確定電路33)提供在TCAM器件內(nèi)時(shí),相關(guān)的專用電路可以方便地在數(shù)據(jù)寫入到TCAM器件時(shí)確定至與公共匹配線ML耦合的所有TCAM單元的寫入數(shù)據(jù)是否是不關(guān)注,并且能夠基于確定結(jié)果立即執(zhí)行對寄存器REG3的寫入。當(dāng)耦合到公共匹配線ML的所有TCAM單元被設(shè)置為不關(guān)注,相關(guān)的專用電路將寄存器REG3設(shè)置在“H”電平(“1”),否則,相關(guān)的專用電路將寄存器REG3設(shè)置在“L”電平(“0”)。

與此相反,當(dāng)通過TCAM器件以外的處理器來設(shè)置寄存器REG3時(shí),在數(shù)據(jù)寫入到TCAM器件之后,外部處理器從用于每個(gè)條目的TCAM器件讀取數(shù)據(jù)并且確定上述確定條件是否滿足。因而,與在TCAM器件內(nèi)提供專用電路相比,需要花更多時(shí)間。

此后,將參考附圖來詳細(xì)描述上述專用電路(圖19所示的數(shù)據(jù)確定電路33)的操作。

圖19是示出根據(jù)第三實(shí)施例的TCAM器件的配置的框圖。圖19所示的TCAM器件與圖4所示的TCAM器件的不同在于進(jìn)一步包括數(shù)據(jù)確定電路33[0]-33[3](當(dāng)整體地稱為時(shí)或表示不特定的一個(gè)時(shí)被描述為數(shù)據(jù)確定電路33)。

如圖19所示,對應(yīng)于子陣列SA[0,0]、SA[1,0]、SA[2,0]和……而提供了數(shù)據(jù)確定電路33[0]。當(dāng)經(jīng)由命令輸入電路32輸入的寫入命令被檢測到時(shí),數(shù)據(jù)確定電路33[0]基于要寫入到相應(yīng)子陣列的寫入數(shù)據(jù)d[0:31]來確定是否滿足相同行(條目)的所有寫入數(shù)據(jù)是不關(guān)注的條件。數(shù)據(jù)確定電路33[0]在上述確定條件滿足時(shí)將于相關(guān)行對應(yīng)的寄存器REG3設(shè)定為“H”電平(表示不關(guān)注)。

類似地,對應(yīng)于子陣列SA[0,1]、SA[1,1]、SA[2,1]和……而提供了數(shù)據(jù)確定電路33[1],并且基于到相應(yīng)子陣列的寫入數(shù)據(jù)d[32:63]來設(shè)置相應(yīng)子陣列的每個(gè)寄存器REG3。對應(yīng)于子陣列SA[0,2]、SA[1,2]、SA[2,2]和……而提供了數(shù)據(jù)確定電路33[2],并且基于要寫入到相應(yīng)子陣列的寫入數(shù)據(jù)d[64:95]來設(shè)置相應(yīng)子陣列的每個(gè)寄存器REG3。對應(yīng)于子陣列SA[0,3]、SA[1,3]、SA[2,3]和……而提供了數(shù)據(jù)確定電路33[3],并且基于要寫入到相應(yīng)子陣列的寫入數(shù)據(jù)d[96:127]來設(shè)置相應(yīng)子陣列的每個(gè)寄存器REG3。

圖20是示出圖19所示的數(shù)據(jù)確定電路33的操作的流程圖。參見圖19和20,在TCAM單元的數(shù)據(jù)寫入時(shí),數(shù)據(jù)輸入電路31輸出每個(gè)條目的用于每個(gè)TCAM單元的X單元(參見圖1)的寫入數(shù)據(jù),并且隨后輸出用于Y單元的寫入數(shù)據(jù)。從數(shù)據(jù)輸入電路31順序輸出的用于X單元和Y單元的寫入數(shù)據(jù)d[0:31]、d[32:63]、d[64:95]和d[96:127]以32比特為單位被提供至相應(yīng)子陣列SA的寫入驅(qū)動(dòng)器21,并且從寫入驅(qū)動(dòng)器21被輸出到每個(gè)位線對BL和BL_n。用于X單元和Y單元的寫入數(shù)據(jù)d[0:31]、d[32:63]、d[64:95]和d[96:127]以32比特為單位被輸入到相應(yīng)數(shù)據(jù)確定電路33中。當(dāng)以其它方式表達(dá)時(shí),數(shù)據(jù)確定電路33順序地接收與同一匹配線耦合的寫入目標(biāo)TCAM單元的X單元和Y單元的寫入數(shù)據(jù)(步驟S100)。

隨后,數(shù)據(jù)確定電路33確定接收的寫入數(shù)據(jù)是否滿足條件:接收的X單元的32比特寫入數(shù)據(jù)的所有比特和Y單元的32比特寫入數(shù)據(jù)的所有比特是否為“0”(步驟110)。具體來說,數(shù)據(jù)確定電路33對X單元的寫入數(shù)據(jù)的所有比特執(zhí)行或運(yùn)算,并且還對Y單元的寫入數(shù)據(jù)的所有比特執(zhí)行或運(yùn)算。數(shù)據(jù)確定電路33對這些或運(yùn)算的結(jié)果執(zhí)行或非運(yùn)算,并且確定最后獲得值是“1”(不關(guān)注)還是“0”(非不關(guān)注)。

當(dāng)滿足了上述X單元數(shù)據(jù)和Y單元數(shù)據(jù)的所有比特是“0”的確定條件時(shí),即當(dāng)通過上述邏輯運(yùn)算最終獲得的值是“1”(不關(guān)注)(步驟S110處為是),數(shù)據(jù)確定電路33將與寫入目標(biāo)的條目對應(yīng)的寄存器REG3設(shè)置為表示不關(guān)注的值“1”(“H”電平)(步驟S120)。值“1”被設(shè)置到寄存器REG3的時(shí)刻可以與數(shù)據(jù)被寫入到TCAM單元中的時(shí)刻相同。

相反,當(dāng)上述確定條件沒有滿足時(shí),即當(dāng)通過上述邏輯運(yùn)算最終獲得的值是“0”(非不關(guān)注)(步驟S110處為否),數(shù)據(jù)確定電路33將與寫入目標(biāo)的條目對應(yīng)的寄存器REG3設(shè)置為表示非不關(guān)注的值“0”(“L”電平)(步驟S130)。

圖21是示出根據(jù)第三實(shí)施例的TCAM器件中的圖18所示的寄存器REG3的數(shù)據(jù)寫入程序的時(shí)序圖。在圖21中,周期是從時(shí)鐘信號clk的正邊沿到下一正邊沿的時(shí)段。

參見圖19和圖21,首先,在改變到周期T1附近(從緊接在周期T1之前的第二個(gè)半周期朝向周期T1的第一個(gè)半周期),X單元的寫入數(shù)據(jù)(128比特)和用于指引X單元寫入的命令被分別輸入到數(shù)據(jù)輸入電路31和命令輸入電路32。數(shù)據(jù)輸入電路31以32比特為單位來劃分輸入的X單元數(shù)據(jù)(128比特),并且在劃分之后將X單元數(shù)據(jù)中的每個(gè)(32比特)輸出至相應(yīng)的子陣列SA和相應(yīng)的數(shù)據(jù)確定電路33。命令輸入電路32輸出輸入的命令(寫入到X單元)至每個(gè)子陣列SA和每個(gè)數(shù)據(jù)確定電路33。在周期T1中,每個(gè)數(shù)據(jù)確定電路33獲取32比特的相應(yīng)X單元數(shù)據(jù)。

隨后,在改變到周期T2附近(從周期T1的第二個(gè)半周期至周期T2的第一個(gè)半周期),Y單元的寫入數(shù)據(jù)(128比特)和用于指引Y單元寫入的命令被分別輸入到數(shù)據(jù)輸入電路31和命令輸入電路32。數(shù)據(jù)輸入電路31以32比特為單位來分割輸入的Y單元數(shù)據(jù)(128比特),并且在分割之后輸出Y單元數(shù)據(jù)中的每個(gè)(32比特)至相應(yīng)的子陣列SA和相應(yīng)的數(shù)據(jù)確定電路33。命令輸入電路32輸出輸入的命令(寫入到Y(jié)單元)至每個(gè)子陣列SA和每個(gè)數(shù)據(jù)確定電路33。

在周期T2中,每個(gè)數(shù)據(jù)確定電路33獲取32比特的相應(yīng)Y單元數(shù)據(jù)。每個(gè)數(shù)據(jù)確定電路33執(zhí)行在周期T1中獲取的X單元數(shù)據(jù)的所有比特的或操作,并且例如保持運(yùn)算結(jié)果(“0”或“1”)在每個(gè)數(shù)據(jù)確定電路33提供的2比特移位寄存器的第一比特。

在隨后的周期T3中,X單元數(shù)據(jù)的或運(yùn)算結(jié)果被移位到移位寄存器的第二比特。每個(gè)數(shù)據(jù)確定電路33執(zhí)行在周期T2中獲取的Y單元數(shù)據(jù)的所有比特的或操作,并且保持運(yùn)算結(jié)果(“0”或“1”)在上述移位寄存器的第一比特。隨后,每個(gè)數(shù)據(jù)確定電路33執(zhí)行相應(yīng)移位寄存器的第一比特和第二比特的或非運(yùn)算(即,進(jìn)一步執(zhí)行在周期T2獲得的X單元數(shù)據(jù)的或運(yùn)算結(jié)果與在周期T3獲得的Y單元數(shù)據(jù)的或運(yùn)算結(jié)果的或非運(yùn)算)。當(dāng)上述邏輯運(yùn)算的最終結(jié)果是“1”時(shí),說明32比特的X單元數(shù)據(jù)和32比特的Y單元數(shù)據(jù)的全部比特是“0”,即,32比特的寫入數(shù)據(jù)的所有比特是不關(guān)注。

在隨后的周期T4中,數(shù)據(jù)確定電路33輸出或非運(yùn)算結(jié)果至相應(yīng)子陣列SA的每個(gè)寄存器REG3作為寄存器數(shù)據(jù)reg_data。在周期T4中時(shí)鐘信號clk的負(fù)邊沿,數(shù)據(jù)確定電路33將寄存器寫入信號reg_w_sig激活(設(shè)置為“H”電平),該寄存器寫入信號reg_w_sig激活將被供給到與寫入目標(biāo)條目對應(yīng)的匹配放大器MA中提供的寄存器REG3。結(jié)果,當(dāng)寫入目標(biāo)條目的TCAM單元的所有值是不關(guān)注時(shí),“1”(“H”電平)被設(shè)置到寄存器REG3,否則(在不關(guān)注的情況下),“0”(“L”電平)被設(shè)置到寄存器REG3。在時(shí)鐘信號clk的負(fù)邊沿產(chǎn)生寄存器寫入信號reg_w_sig的理由是為了完全確保設(shè)置時(shí)間和保持時(shí)間。

[匹配放大器的修改的示例]

圖22是示出圖18所示的匹配放大器MA的修改的示例的框圖。圖22所示的匹配放大器MA也可以在相應(yīng)的行是沒有儲存數(shù)據(jù)的無效條目時(shí)應(yīng)用。

具體來說,圖22所示的匹配放大器MA與圖18所示的匹配放大器MA的區(qū)別在于進(jìn)一步包括了寄存器REG2、與門76、反相器81和或門82。

當(dāng)子陣列中相應(yīng)的行是無效條目時(shí),寄存器REG2被設(shè)置在“L”電平(在本說明書中被定義為“0”),并且當(dāng)相應(yīng)的行是有效條目時(shí),被設(shè)置在“H”電平(在本說明書中被定義為“1”)。只需要與子陣列的每行的匹配放大器MA對應(yīng)地提供寄存器REG2,因此,寄存器REG2不需要提供在圖22所示的匹配放大器MA內(nèi)。上述寄存器REG2的值設(shè)定可以通過TCAM器件內(nèi)的專用電路來執(zhí)行,或者可以通過TCAM器件外部來執(zhí)行(例如圖6所示的NPU 101)。

與門76輸出從寄存器REG2輸出的控制信號val_ent和邏輯門75的輸出信號的與運(yùn)算結(jié)果,作為匹配放大器MA的輸出信號mo。因此,當(dāng)寄存器REG1的設(shè)定值是“1”時(shí)(不關(guān)注),或者當(dāng)寄存器REG2的設(shè)定值是“0”時(shí)(無效)即使寄存器REG3的設(shè)定值是“1”(不關(guān)注),向寄存器REG2的無效設(shè)定給出優(yōu)先級;因此可以將匹配放大器MA的輸出信號mo設(shè)置在“L”電平(錯(cuò)失)。

或門82對從寄存器REG3輸出的控制信號dnc_hi和利用反相器81對從寄存器REG2輸出的控制信號val_ent的邏輯電平進(jìn)行反相而獲得的值進(jìn)行或操作。

或門77對或門82的輸出值和匹配線預(yù)充電信號mlpre_n執(zhí)行或操作,并且輸出運(yùn)算結(jié)果至P溝道MOS晶體管70的柵極。因而,當(dāng)根據(jù)寄存器REG3的設(shè)定值的控制信號dnc_hit處于“H”電平(不關(guān)注)時(shí),和/或當(dāng)根據(jù)寄存器REG2的設(shè)定值的控制信號dnc_hit處于“L”電平(無效)時(shí),MOS晶體管70被固定至關(guān)斷狀態(tài);因此,匹配線ML的預(yù)充電沒有進(jìn)行。

與門78對匹配放大器使能信號mae和利用反相器79對或門82的輸出值的邏輯電平進(jìn)行反相而獲得的值進(jìn)行與操作。與門78的與運(yùn)算結(jié)果和通過反相器73將與運(yùn)算結(jié)果的邏輯電平反相而獲得的信號被供給到反相器71和72的驅(qū)動(dòng)電源節(jié)點(diǎn)。因此,當(dāng)根據(jù)寄存器REG3的設(shè)定值的控制信號dnc_hit處于“H”電平(不關(guān)注)時(shí)和/或當(dāng)根據(jù)寄存器REG2的設(shè)定值的控制信號val_ent處于“L”電平(無效)時(shí),反相器71處于不操作狀態(tài),且反相器72處于操作狀態(tài);因此,匹配線ML的電勢沒有被輸出到下一級電路,且匹配線ML的電勢沒有被鎖存。

圖22的其他元件的配置與圖18相同。因而,相同的附圖標(biāo)記應(yīng)用于相同或相應(yīng)的元件且省略其重復(fù)描述。

這樣,當(dāng)與匹配放大器MA對應(yīng)的行時(shí)無效條目時(shí),搜索結(jié)果是明顯的(如錯(cuò)失)。因而,匹配線ML的預(yù)充電操作停止,且匹配放大器MA的電路操作停止。這樣,匹配放大器MA的輸出信號被固定到“L”電平(錯(cuò)失)且輸出正常搜索結(jié)果。

也可以采用沒有提供圖22中的反相器81和或門82的修改的示例。即,從寄存器REG2輸出的控制信號val_ent只被輸入到與門76。在這種情況下,通過僅僅將寄存器REG2設(shè)置為“0”(無效),可以不停止對應(yīng)匹配線ML的預(yù)充電或者匹配放大器MA的電路操作。因此,當(dāng)寄存器REG2被設(shè)置為“0”(無效)時(shí),也需要將寄存器REG3設(shè)置為“1”(不關(guān)注)。

[第三實(shí)施例的效果]

如上所述,即使當(dāng)子陣列中所有單元的數(shù)據(jù)并非是不關(guān)注,當(dāng)所有單元的數(shù)據(jù)包括不關(guān)注的行(此后稱作“不關(guān)注條目”)或沒有設(shè)置數(shù)據(jù)的無效條目時(shí),相關(guān)行的搜索結(jié)果是明顯的。在這樣的情況下,相關(guān)行(不關(guān)注條目或無效條目)的匹配線ML的預(yù)充電操作停止且匹配放大器MA的電路操作停止。因此,可以減少TCAM器件的功耗。另外,通過將與不關(guān)注條目對應(yīng)的匹配放大器MA的輸出信號固定在“H”電平(命中)并且將與無效條目對應(yīng)的匹配放大器MA的輸出信號固定在“L”電平(錯(cuò)失),可以執(zhí)行正常搜索操作。

按照根據(jù)第三實(shí)施例的TCAM器件,可以提供低功耗裝置,其在不關(guān)注條目或無效條目分散在子陣列中時(shí)是有效的。

<第四實(shí)施例>

對于根據(jù)第四實(shí)施例的TCAM器件,將針對沒有提供圖10和圖11所示的用于停止整個(gè)子陣列的搜索操作的寄存器REG1的情況進(jìn)行描述。在這種情況下,基于圖18和圖22中所示的用于每個(gè)匹配放大器MA的寄存器REG3的設(shè)定值來確定整個(gè)子陣列的搜索操作是否停止。此后,將參考附圖來進(jìn)行詳細(xì)解釋。

[子陣列的配置]

圖23是示意性示出根據(jù)第四實(shí)施例的TCAM器件中的子陣列的配置的框圖。圖23所示的子陣列SA與圖10所示的子陣列SA的不同之處在于沒有提供控制邏輯電路24但是提供了邏輯乘積電路27來代替寄存器REG1。圖23的其它元件的配置與圖10相同,因此,相同的附圖標(biāo)記用于相同或相應(yīng)的元件并且省略對其重復(fù)描述。

邏輯乘積電路27獲得提供用于TCAM單元陣列20的每行(每個(gè)匹配線ML)的寄存器REG3[0]-REG3[m]的設(shè)定值dnc_hit[0]-dnc_hit[m]中每個(gè)的邏輯乘積,并且輸出運(yùn)算結(jié)果作為控制信號force_hit。控制信號force_hit被輸入到控制邏輯電路24。如已經(jīng)解釋的那樣,當(dāng)子陣列中相應(yīng)行的所有單元的數(shù)據(jù)是不關(guān)注時(shí),寄存器REG3被設(shè)置為“1”(“H”電平),否則寄存器REG3被設(shè)置為“0”(“L”電平)。因此,當(dāng)子陣列中所有單元的數(shù)據(jù)是不關(guān)注時(shí),控制信號force_hit被設(shè)置在“H”電平(“1”),否則控制信號force_hit被設(shè)置在“L”電平(“0”)。

[控制邏輯電路的配置]

圖24是示出圖23中所示的控制邏輯電路24中的與搜索操作有關(guān)的部分的配置的電路圖。圖24中所示的控制邏輯電路24與圖11中所示的控制邏輯電路24的不同之處在于沒有包括寄存器REG1。在圖24中,要輸入到反相器42中的控制信號force_hit從圖23所示的邏輯乘積電路27提供。

此外,在圖24中,控制信號force_hit沒有從控制邏輯電路24輸出到每個(gè)匹配放大器MA。因此,在圖18和圖22所示的匹配放大器MA中,提供了用于將從寄存器REG3輸出的控制信號dnc_hit的邏輯電平反相的反相器來代替或非門80。該反相器的輸出信號被輸入到邏輯門75。圖24的其他元件的配置與圖11相同;因此,相同的附圖標(biāo)記用于相同或相應(yīng)的元件并且省略對其重復(fù)描述。

[第四實(shí)施例的效果]

根據(jù)上述配置,子陣列中所有單元的數(shù)據(jù)被設(shè)置為不關(guān)注,因而,當(dāng)提供用于子陣列中每行的所有寄存器REG3被設(shè)置為不關(guān)注時(shí),可以自動(dòng)停止子陣列的搜索操作。如圖19和圖21所示,利用數(shù)據(jù)確定電路33可以自動(dòng)執(zhí)行寄存器REG3的值設(shè)定。因此有一個(gè)優(yōu)點(diǎn),不必在數(shù)據(jù)寫入到TCAM器件之后來分析TCAM單元數(shù)據(jù)的內(nèi)容以設(shè)置寄存器REG1的值。

作為修改的示例,可以采用以下的配置:其中,沒有提供圖10和圖11所示的寄存器REG1以及圖23所示的邏輯乘積電路27。然而,在這個(gè)改型的示例中,當(dāng)子陣列中所有單元的數(shù)據(jù)被設(shè)置為不關(guān)注時(shí),可以停止所有匹配線ML的預(yù)充電操作以及所有匹配放大器MA的電路操作;但是,不可以停止搜索線驅(qū)動(dòng)器22的操作。在本實(shí)施例中,提供邏輯乘積電路27以便確定是否可以停止所有的搜索操作。

<第五實(shí)施例>

[緩沖放大器單元的配置]

圖25是示出用于來自控制邏輯電路24的輸出信號的緩沖放大器的布置的示意性視圖。

從圖11所示的控制邏輯電路24輸出的控制信號force_hit、匹配線預(yù)充電信號mlpre_n和匹配放大器使能信號mae被輸出到子陣列中的所有匹配放大器MA。因此,當(dāng)存在用于每個(gè)子陣列的一些條目時(shí),需要提供緩沖放大器。因此在圖25的情況下,為每四個(gè)匹配放大器MA提供緩沖放大器單元84。

參見圖25,緩沖放大器單元85對應(yīng)于4個(gè)匹配放大器MA[0]、MA[1]、MA[2]和MA[3]來提供,并且包括緩沖器85、86和87。匹配線預(yù)充電信號mlpre_n通過緩沖器85來成形并且并且被輸入到4個(gè)匹配放大器MA[0]、MA[1]、MA[2]和MA[3]中的每個(gè)的或門77。匹配放大器使能信號mae通過緩沖器86來成形,并且被輸入到4個(gè)匹配放大器MA[0]、MA[1]、MA[2]和MA[3]中的每個(gè)的與門78??刂菩盘杅orce_hit通過緩沖器87來成形,并且被輸入到4個(gè)匹配放大器MA[0]、MA[1]、MA[2]和MA[3]中的每個(gè)的或非門80。

在圖25中,分別排除了寄存器REG3[0]、REG3[1]和REG3[2]的匹配放大器MA[0]、MA[1]、MA[2]的電路部分83具有與匹配放大器MA[3]的電路部分83相同的配置;因此,不再示出其電路圖。

[緩沖放大器單元的修改的示例]

圖26是示出根據(jù)第五實(shí)施例的TCAM器件中的緩沖放大器單元的配置的示意性視圖。圖26中所示的緩沖放大器單元84等效于圖25所示的緩沖放大器單元84,并且具有修改的配置以便實(shí)現(xiàn)低功耗。

具體來說,在圖26所述的緩沖放大單元中,通過提供邏輯門來代替圖25中的緩沖器,除了輸入波形的成形功能以外,邏輯運(yùn)算也是可以的。即,在圖26所示的緩沖放大器單元84中,提供或門89來代替緩沖器85,提供與門90和反相器91來代替緩沖器86,并且提供或門92來代替緩沖器87。

圖26所示的緩沖放大器單元84還包括與門88,其執(zhí)行從提供在相應(yīng)匹配放大器MA[0]-MA[3]中的寄存器REG3[0]-REG3[3]輸出的控制信號dnc_hit[0]-dnc_hit[3]的與運(yùn)算。當(dāng)從寄存器REG3[0]-REG3[3]輸出的控制信號dnc_hit[0]-dnc_hit[3]都處在指示不關(guān)注的“H”電平(對應(yīng)于設(shè)置值“1”)時(shí),與門88輸出高電平的信號。

或門89將匹配線預(yù)充電信號mlpre_n和與門88的輸出信號的或運(yùn)算結(jié)果輸出到相應(yīng)的匹配放大器MA[0]-MA[3],作為本地匹配線預(yù)充電信號mlpre_local_n。與門90將匹配放大器使能信號mae和利用反相器91對與門88的輸出信號的邏輯電平進(jìn)行反相而獲得的值的與運(yùn)算的結(jié)果輸出至相應(yīng)的匹配放大器MA[0]-MA[3],作為本地匹配放大器使能信號mae_local。或門92將控制信號force_hit和與門88的輸出信號的或運(yùn)算結(jié)果輸出到相應(yīng)的匹配放大器MA[0]-MA[3],作為本地控制信號force_hit_local。

因此,當(dāng)從相應(yīng)的寄存器REG3[0]-REG3[3]輸出的控制信號dnc_hit[0]-dnc_hit[3]處在表示不關(guān)注的“H”電平(對應(yīng)“1”)時(shí),本地匹配線預(yù)充電信號mlpre_local_n被固定在“H”電平,并且本地匹配放大器使能信號mae_local被固定在“L”電平。此外,本地控制信號force_hit_local在這種情況下被固定在“H”電平。因此可以減少需要對用于傳遞這些本地控制信號的布線進(jìn)行充電和放電的電流消耗。此外,上述的緩沖放大器單元是第一實(shí)施例至第四實(shí)施例中需要的電路的修改的電路,因此基本上不會(huì)造成面積的增加。

<第六實(shí)施例>

圖27A、27B和27C是示出在供電開始后寫入到寄存器REG1、REG2和REG3中的每個(gè)的數(shù)據(jù)的程序的示意性視圖。在圖27A、27B和27C中代表性地示出了三個(gè)子陣列SA[0,0]、SA[1,0]和SA[2,0]。在每個(gè)子陣列中,在圖10和圖11中所示的寄存器REG1提供在控制邏輯電路24中,圖18和圖22中所示的寄存器REG2和REG3被提供用于每行。

寄存器REG1用于設(shè)置整個(gè)子陣列的單元數(shù)據(jù)是不關(guān)注(“1”)還是非不關(guān)注(“0”)。寄存器REG2用于表示相應(yīng)的行是在每個(gè)TCAM單元中寫入數(shù)據(jù)的有效條目(“1”)還是沒有寫入數(shù)據(jù)的無效條目(“0”)。寄存器REG3用于設(shè)置相應(yīng)行的所有單元數(shù)據(jù)是不關(guān)注(“1”)還是非不關(guān)注(“0”)。

對每個(gè)寄存器的數(shù)據(jù)寫入可以通過TCAM器件內(nèi)的專用電路來執(zhí)行(例如圖19所示的數(shù)據(jù)確定電路33),或者可以通過TCAM器件外的處理器來執(zhí)行(例如圖6所示的NPU 101)。

參見圖27A,緊接在開始供電之后,所有的寄存器REG1、REG2和REG3處于非固定狀態(tài)。在圖27A中,使用陰影來表示處于非固定狀態(tài)的寄存器。

參見圖27B,在TCAM器件中寫入數(shù)據(jù)之前的初始狀態(tài)中,向每個(gè)寄存器REG1設(shè)置“1”(不關(guān)注),向每個(gè)寄存器REG2設(shè)置“0”(無效),并且向每個(gè)寄存器REG3設(shè)置“1”(不關(guān)注)。

圖27C概括性示出在TCAM器件中寫入ACL規(guī)則文件之后的狀態(tài)(可搜索狀態(tài))。如圖27C所示,數(shù)據(jù)已經(jīng)寫入在子陣列SA[0,0]的所有行的TCAM單元中。數(shù)據(jù)沒有寫入在子陣列SA[1,0]的一些行的TCAM單元中。數(shù)據(jù)沒有寫入在子陣列SA[2,0]的任何行的TCAM單元中。

當(dāng)寫入數(shù)據(jù)在某一行的TCAM單元中時(shí),與相關(guān)行對應(yīng)的寄存器REG2的值從“0”(無效)改變到“1”(有效),并且在很多情況下,寄存器REG3的值從“1”(不關(guān)注)改變到“0”(非不關(guān)注)。然而,當(dāng)相關(guān)行的所有單元數(shù)據(jù)是不關(guān)注時(shí),寄存器REG3的值保持在“1”。當(dāng)“1”或“0”的值(即,除了不關(guān)注以外)寫入到子陣列的TCAM單元中的一個(gè)時(shí),寄存器REG1的值從“1”(不關(guān)注)改變到“0”(非不關(guān)注)。

由于根據(jù)上述過程對每個(gè)寄存器執(zhí)行數(shù)據(jù)寫入,如圖27C所示,在已經(jīng)在所有行的TCAM單元中寫入數(shù)據(jù)的子陣列SA[0,0]中,寄存器REG1設(shè)置為“0”(非不關(guān)注),每個(gè)寄存器REG2設(shè)置為“1”(有效),并且每個(gè)寄存器REG3設(shè)置為“0”(非不關(guān)注)。與每行對應(yīng)的匹配放大器MA基于寫入到每個(gè)TCAM單元中的數(shù)據(jù)和搜索數(shù)據(jù)相應(yīng)部分的比較結(jié)果來輸出“H”電平(匹配)信號或“L”電平(錯(cuò)失)信號。

在數(shù)據(jù)已經(jīng)被寫入到一些行的TCAM單元的子陣列SA[1,0]中,寄存器REG1被設(shè)置為“0”(非不關(guān)注)。由其中已經(jīng)寫入數(shù)據(jù)的有效條目對應(yīng)的寄存器REG2和REG3被分別設(shè)置為“1”(有效)和“0”(非不關(guān)注)。與這些行對應(yīng)的匹配放大器MA基于搜索結(jié)果來輸出信號(“H”電平(匹配)或“L”電平(錯(cuò)失))。

另一方面,在子陣列SA[1,0]中,與其中沒有寫入數(shù)據(jù)的無效條目對應(yīng)的寄存器REG2和REG3的值沒有改變,且分別保持在初始階段設(shè)置的“0”(無效)和“1”(不關(guān)注)。與這些行對應(yīng)的匹配放大器MA根據(jù)寄存器REG2的值“0”(無效)來輸出處于“L”電平(錯(cuò)失)的信號。對于未使用的區(qū)域,寄存器REG2和REG3的值分別被設(shè)置為“0”(無效)和“1”(不關(guān)注);因而,匹配線ML的預(yù)充電操作停止且匹配放大器MA的電路操作停止。因而,可以減少TCAM器件的功耗。

在所有TCAM單元中沒有寫入數(shù)據(jù)的子陣列SA[2,0]中,寄存器REG1、REG2和REG3的值沒有改變,分別保持在初始設(shè)置中設(shè)置的值“1”(不關(guān)注)、“0”(無效)和“1”(不關(guān)注)。與每行對應(yīng)的匹配放大器MA根據(jù)寄存器REG2的值“0”(無效)輸出處在“L”電平(錯(cuò)失)的信號。由于寄存器REG1的值被設(shè)置在“1”(不關(guān)注),子陣列SA[2,0]的搜索操作可以停止(即,可以停止匹配線ML的預(yù)充電、搜索線驅(qū)動(dòng)器22和匹配放大器MA的電路操作)。因而,可以減少電流消耗。

這樣,通過對寄存器REG1、REG2和REG3中每個(gè)的值進(jìn)行初始設(shè)置并且通過根據(jù)在向TCAM單元寫入數(shù)據(jù)時(shí)寫入數(shù)據(jù)的值來改變存儲器REG1、REG2和REG3中每個(gè)的值,可以有效且容易地設(shè)置每個(gè)寄存器的值。

當(dāng)包括了圖22所示的匹配放大器MA時(shí),即使寄存器REG3的值被設(shè)置為“0”(非不關(guān)注),只要寄存器REG2的值被設(shè)置為“0”(無效),也可以停止匹配線ML的預(yù)充電和匹配放大器MA的電路操作。因而,在這種情況下,寄存器REG3的值可以在圖27B的初始設(shè)置中被設(shè)置為“0”(非不關(guān)注)。

<第七實(shí)施例>

只有當(dāng)耦合到每個(gè)子陣列的匹配線ML的所有TCAM單元被設(shè)置為不關(guān)注時(shí),才可以應(yīng)用上述第一實(shí)施例至第六實(shí)施例中描述的TCAM器件的低功耗技術(shù)。因而,即使在其中相對較大數(shù)目的被設(shè)置為不關(guān)注的TCAM單元連續(xù)定位的情況下,如果這些TCAM單元延伸通過兩個(gè)匹配線,并且如果被設(shè)置為“1”或“0”的TCAM單元被包括在每個(gè)匹配線中,也不可以應(yīng)用上述的低功耗技術(shù)。

在第七實(shí)施例中,通過改變TCAM單元數(shù)據(jù)的布置,上述的低功耗技術(shù)可以應(yīng)用在上述的情況中。此后,參考附圖進(jìn)行詳細(xì)描述。以下解釋采用的輸入數(shù)據(jù)的比特寬度和輸入數(shù)據(jù)的劃分?jǐn)?shù)目是示例且不限于這個(gè)示例。

圖28A和28B是示出輸入數(shù)據(jù)的陣列轉(zhuǎn)換的示意性示圖。圖28A示出以下示例:在輸入數(shù)據(jù)的比特寬度是32比特時(shí),數(shù)據(jù)按照這個(gè)順序輸入到兩個(gè)子陣列SA_0和SA_1,而沒有執(zhí)行陣列轉(zhuǎn)換。即,在數(shù)據(jù)寫入時(shí),32比特寫入數(shù)據(jù)中前一半的16比特寫入數(shù)據(jù)(比特號0-15)分別寫入到子陣列SA_0的16個(gè)TCAM單元中(比特號0-15),且后一半的16比特寫入數(shù)據(jù)(比特號16-31)分別寫入到子陣列SA_1的16個(gè)TCAM單元中(比特號16-31)。類似地在搜索時(shí),32比特輸入搜索數(shù)據(jù)中前一半的16比特搜索數(shù)據(jù)(比特號0-15)分別輸入到子陣列SA_0的16個(gè)TCAM單元中(比特號0-15),且后一半的16比特搜索數(shù)據(jù)(比特號16-31)分別輸入到子陣列SA_1的16個(gè)TCAM單元中(比特號16-31)。

此處,在沒有執(zhí)行陣列轉(zhuǎn)換時(shí),如圖28A所示,假設(shè)“1”或“0”的數(shù)據(jù)從比特號0至比特號9以及從比特號29至比特號31被寫入在每個(gè)TCAM單元中(附圖中的黑色方形)。還假設(shè)表示不關(guān)注的數(shù)據(jù)被寫入在從比特號10至比特號28的19個(gè)連續(xù)TCAM單元(附圖中的陰影方形)中的每個(gè)中。在這種情況下,有16個(gè)或更多個(gè)表示不關(guān)注的數(shù)據(jù)位,并且它們是連續(xù)的;然而,儲存表示不關(guān)注的數(shù)據(jù)的TCAM單元涉及子陣列SA_0和子陣列SA_1。因而,除了被設(shè)置為不關(guān)注的TCAM單元以外,被設(shè)置為“0”或“1”的TCAM單元也耦合到匹配線ML_0和ML_1中的每個(gè)。因此,可以利用上述的低功耗技術(shù)。

圖28B的示例改變了圖28A的示例中的數(shù)據(jù)陣列,使得耦合到子陣列SA_1的匹配線ML_1的所有TCAM單元被設(shè)置為不關(guān)注。因而,可以應(yīng)用上述的低功耗技術(shù)。具體來說,數(shù)據(jù)陣列被改變,并且輸入數(shù)據(jù)(寫入數(shù)據(jù)和搜索數(shù)據(jù))中比特號29-31的部分的布置順序被向前移動(dòng)使得所述部分的數(shù)據(jù)被分別輸入到比特號10-12的TCAM單元中。此外,數(shù)據(jù)陣列被改變,并且輸入數(shù)據(jù)中比特號10-28的部分的布置順序被向下移動(dòng)使得所述部分的數(shù)據(jù)被分別輸入到比特號13-31的TCAM單元中。結(jié)果,如圖28B所示,可以將耦合至子陣列SA_1的匹配線ML_1的所有TCAM單元(比特號16-31)設(shè)置為不關(guān)注(附圖中的陰影方形)。因此,可以應(yīng)用上述的低功耗技術(shù)(停止匹配線ML_1的預(yù)充電以及停止匹配放大器MA_1的操作)。

圖29是示出根據(jù)第七實(shí)施例的搜索系統(tǒng)的配置的框圖。圖29所示的搜索系統(tǒng)120與圖6所示的搜索系統(tǒng)120區(qū)別在于進(jìn)一步包括了用于轉(zhuǎn)換數(shù)據(jù)陣列的開關(guān)電路110(此后稱為數(shù)據(jù)陣列轉(zhuǎn)換開關(guān))。圖29示出了128比特的示例作為輸入數(shù)據(jù)din的比特?cái)?shù)目。

參見圖29,存儲在存儲器件102中的ACL規(guī)則文件通過包括在NPU(網(wǎng)絡(luò)處理器單元)101中數(shù)據(jù)轉(zhuǎn)換器103被轉(zhuǎn)換成TCAM數(shù)據(jù)。TCAM數(shù)據(jù)包括三個(gè)值:“0”、“1”和“不關(guān)注”(“1”或“0”)。TCAM數(shù)據(jù)從NPU 101的數(shù)據(jù)輸出電路105輸入到數(shù)據(jù)陣列轉(zhuǎn)換開關(guān)110作為輸入數(shù)據(jù)din[0:127]。

數(shù)據(jù)陣列轉(zhuǎn)換開關(guān)110根據(jù)提前確定的規(guī)則來改變輸入數(shù)據(jù)din[0:127](寫入數(shù)據(jù)和搜索數(shù)據(jù))的布置順序。數(shù)據(jù)陣列轉(zhuǎn)換開關(guān)110在改變完布置順序之后將輸入數(shù)據(jù)輸入到TCAM器件100的數(shù)據(jù)輸入電路31[0]-31[3]。在圖29的情況下,數(shù)據(jù)輸入電路31[0]-31[3]被劃分為對應(yīng)于每個(gè)子陣列的4個(gè)(例如,數(shù)據(jù)輸入電路31[0]對應(yīng)于比特號0-31)。數(shù)據(jù)陣列轉(zhuǎn)換開關(guān)110中的轉(zhuǎn)換規(guī)則基于TCAM數(shù)據(jù)的分析結(jié)果通過包括在NPU 101中的數(shù)據(jù)分析器104來確定。

圖30是示意性示出TCAM器件的存儲狀態(tài)的圖,其中寫入了TCAM數(shù)據(jù)的示例作為數(shù)據(jù)陣列轉(zhuǎn)換的目標(biāo)。圖30所示的示出存儲狀態(tài)的附圖對應(yīng)于圖9,并且與圖9的不同之處在于存儲不關(guān)注數(shù)據(jù)的區(qū)域211的布置(附圖中密的陰影區(qū)域)。圖30中所示的其他點(diǎn)與圖9所示的相同。因此,相同的附圖標(biāo)記用于相同或相應(yīng)的元件并且省略對其重復(fù)描述。

在圖30所示的TCAM數(shù)據(jù)布置的情況下,存在其中表示不關(guān)注的區(qū)域的比特寬度超過子陣列SA的比特寬度32比特的區(qū)域,然而,不存在其中不關(guān)注被設(shè)置在一個(gè)子陣列SA的全部比特寬度中的區(qū)域。因此,不能應(yīng)用上述第一實(shí)施例至第六實(shí)施例的低功耗技術(shù)。

因此,例如利用圖29所述的數(shù)據(jù)陣列轉(zhuǎn)換開關(guān)來改變比特號26-31的部分的所有數(shù)據(jù)以及比特號58-63的部分的所有數(shù)據(jù)。根據(jù)這種數(shù)據(jù)陣列轉(zhuǎn)換,在比特號32-63的部分的16個(gè)子陣列SA[0,1]和SA[1,1]-SA[15,1]中,除有效條目以外的所有的TCAM單元數(shù)據(jù)可以被設(shè)置為不關(guān)注。結(jié)果,在子陣列SA[0,1]和SA[1,1]-SA[15,1]中的每個(gè)中,通過將寄存器REG1設(shè)置為“1”(不關(guān)注),可以停止搜索操作。對于子陣列SA[15,1],通過將無效條目的寄存器REG2設(shè)成“0”(無效),可以將匹配放大器MA的輸出信號設(shè)置為“L”電平(錯(cuò)失)。

如上所述,第七實(shí)施例公開了在以下情況下能夠?qū)崿F(xiàn)低功耗的技術(shù):在該情況中關(guān)于TCAM器件除了無效條目以外的所有條目,具有數(shù)據(jù)寬度大于子陣列的比特寬度的區(qū)域被設(shè)置為不關(guān)注。在這種情況下,即使當(dāng)耦合到子陣列的匹配線的所有TCAM單元沒有被設(shè)置為不關(guān)注,通過根據(jù)與每個(gè)匹配線對應(yīng)的比特號來改變數(shù)據(jù)陣列,也可以利用在這個(gè)實(shí)施例中描述的低功耗技術(shù)。因此,為了建立低功耗的搜索系統(tǒng),例如,在說明書中可以為用戶開放每個(gè)匹配線所對應(yīng)的比特號。

在上述實(shí)施例中,針對TCAM器件的全部條目來改變數(shù)據(jù)陣列。然而,通過提供用于改變每個(gè)子陣列SA中數(shù)據(jù)陣列的開關(guān)電路,可以按照屬于子陣列的條目為單位來改變數(shù)據(jù)陣列。

<第八實(shí)施例>

在第一實(shí)施例至第七實(shí)施例中,所有子陣列在幾乎相同的時(shí)序執(zhí)行搜索操作,并且優(yōu)先級編碼器基于每個(gè)子陣列的輸出信號來輸出搜索結(jié)果。第八實(shí)施例公開了以下示例:其中布置在行方向的多個(gè)子陣列(相應(yīng)對應(yīng)于公共條目)在管線系統(tǒng)中順序執(zhí)行搜索。在這種情況下,每個(gè)子陣列在相應(yīng)的前一級子陣列的搜索操作結(jié)束后啟動(dòng)搜索操作。

圖31是示出根據(jù)第八實(shí)施例的TCAM器件的配置的框圖。在圖31所示的TCAM器件中,有代表性地示出了四個(gè)子陣列SA_0-SA_3,且沒有示出優(yōu)先級編碼器。按照子陣列SA_0、子陣列SA_1、子陣列SA_2和子陣列SA_3的順序來執(zhí)行搜索操作。每個(gè)子陣列SA設(shè)有m+1個(gè)匹配線ML。

如圖31所示,在子陣列SA_0中,搜索后的匹配線ML_0,j(j=0,1,2,…,m)的電勢和電源電勢VDD被輸入到相應(yīng)的匹配放大器MA,輸出信號mo_0,j從匹配放大器MA輸出。類似地,在子陣列SA_i(i=1,2,3)中,搜索后的匹配線ML_i,j(j=0,1,2,…,m)的電勢和子陣列SA_i-1,j的輸出信號mo_i-1,j(j是同一條目的前一級)被輸入到相應(yīng)的匹配放大器MA,且輸出信號mo_i,j從匹配放大器MA輸出。

圖32是示出圖31所示的匹配放大器MA的配置的示例的電路圖。圖32的匹配放大器MA示出了耦合到圖31中所示的子陣列SA_i(i=0,1,2,3)的匹配線ML_i,j(j=0,1,2,…,m)的匹配放大器配置的示例。圖32示出了改變圖13所示的匹配放大器MA的配置之后的配置。然而,也可以類似地改變圖16、圖18和圖22所示的匹配放大器MA中的每個(gè)。

具體來說,圖32所示的匹配放大器MA還向圖13(或圖16、圖18和圖22)所示的匹配放大器MA增加了D觸發(fā)器83、與非門84、反相器85和與門26。D觸發(fā)器83和與門26在圖32中被示出為提供在匹配放大器MA內(nèi)。但是,D觸發(fā)器83和與門26只需要分別對應(yīng)于用于每個(gè)條目的匹配放大器MA來提供;因而,D觸發(fā)器83和與門26可以提供在匹配放大器MA以外。

D觸發(fā)器83保持在前一級(前一循環(huán)中的搜索結(jié)果)中的子陣列的相應(yīng)行的匹配放大器MA的輸出信號mo_pre。然而,對于在搜索周期的開始執(zhí)行搜索操作的子陣列SA_0(即,i=0),電源電勢VDD被輸入來代替前一級的相應(yīng)行的匹配放大器MA的輸出信號。

在圖13所示的改變之前輸入到電路中的P溝道MOS晶體管70的柵極的信號通過反相器85反相邏輯電平且在改變后被輸入到與非門84的第二輸入節(jié)點(diǎn)。上述D觸發(fā)器83的輸出信號mo_pre(前一周期的搜索結(jié)果)被輸入到與非門84的第一輸入節(jié)點(diǎn)。與非門84的運(yùn)算結(jié)果被輸入到MOS晶體管70的柵極。

因而,當(dāng)上述D觸發(fā)器83的輸出信號mo_pre(前一周期的搜索結(jié)果)處于“L”電平時(shí)(錯(cuò)失),“H”電平的信號被輸入到MOS晶體管70的柵極。結(jié)果,MOS晶體管70一直變?yōu)殛P(guān)斷來停止匹配線ML的預(yù)充電。

與門26將上述D觸發(fā)器83的輸出信號mo_pre(前一周期的搜索結(jié)果)與圖13(或圖16、圖18和圖22)所示的改變之前的配置的匹配放大器MA情況下的輸出信號mo_now執(zhí)行與運(yùn)算,并輸出運(yùn)算結(jié)果作為匹配放大器MA的輸出信號mo。與門26對應(yīng)于圖5所示的與門,且可以被視作是圖5所示的與門26布置在匹配放大器MA內(nèi)。

因而,當(dāng)上述D觸發(fā)器83的輸出信號mo_pre(前一周期相應(yīng)行的搜索結(jié)果)是“L”電平(錯(cuò)失)時(shí),與門26的輸出信號(即匹配放大器MA的輸出信號mo)變?yōu)椤癓”電平(錯(cuò)失)。圖32所示的其它元件與圖13(或圖16、圖18和圖22)所示的匹配放大器MA相同。因此,相同的附圖標(biāo)記用于相同或相應(yīng)的元件并且省略對其重復(fù)描述。

圖33是示出圖31所示的TCAM器件的操作的示意性視圖。每個(gè)匹配放大器MA的陰影區(qū)域表示TCAM數(shù)據(jù)是不關(guān)注。

在第一周期中,子陣列SA_0執(zhí)行搜索操作。每個(gè)條目的搜索結(jié)果(在命中情況下是“1”而在錯(cuò)失情況下是“0”)存儲在下一級的子陣列SA_1的匹配放大器單元23的相應(yīng)行的D觸發(fā)器83中。在如圖32所示在D觸發(fā)器83中存儲“0”時(shí),在下一第二周期中停止對應(yīng)行的匹配線ML的預(yù)充電。

在第二周期中,在子陣列SA_1的行中,通常僅針對前一級中子陣列SA_0的搜索操作中命中的行執(zhí)行搜索操作。然而,在圖33的情況下,子陣列SA_1的所有TCAM單元的數(shù)據(jù)被設(shè)置為不關(guān)注。因此,通過將寄存器REG1設(shè)置為“1”(不關(guān)注),整個(gè)子陣列SA_1的搜索操作停止。在第一周期中成為命中的條目的輸出信號自動(dòng)變?yōu)槊?,并且在下一級中在子陣列SA_2的匹配放大器單元23的相應(yīng)D觸發(fā)器中寫入“0”。

在第三周期中,在子陣列SA_2的行中,僅針對從子陣列SA_1輸入表示命中的信號的行執(zhí)行搜索操作。針對在D觸發(fā)器83中存儲“0”的行停止匹配線預(yù)充電。對于子陣列SA_2中搜索結(jié)果已經(jīng)命中的行,在下一級中在子陣列SA_3的匹配放大器單元23的相應(yīng)D觸發(fā)器中存儲“1”。在子陣列SA_3的其它行的D觸發(fā)器83中存儲“0”。

在第四周期中,對子陣列SA_3的TCAM單元陣列執(zhí)行搜索操作。在這種情況下,除了與匹配線220和221對應(yīng)的行以外,針對在前一級中從子陣列SA_2輸入表示命中的信號的行執(zhí)行搜索操作。由于耦合到匹配線220和221的所有TCAM單元被設(shè)置為不關(guān)注,通過將寄存器REG3設(shè)置為“1”(不關(guān)注),可以停止這些匹配線220和221的預(yù)充電以及相應(yīng)匹配放大器MA的電路操作。從耦合到匹配線220和221的匹配放大器MA,可以自動(dòng)輸出表示命中的信號至優(yōu)先級編碼器30。搜索結(jié)果也從執(zhí)行了搜索操作的其它行的匹配放大器MA被輸出到優(yōu)先級編碼器30。

這樣,在第八實(shí)施例中,結(jié)合參考第一實(shí)施例至第七實(shí)施例描述的低功耗技術(shù),在管線系統(tǒng)中順序搜索布置在行方向上的多個(gè)子陣列,并且僅僅針對在前一周期中變?yōu)槊械臈l目執(zhí)行搜索操作。因此,可以減少功耗。

如以上所述,基于一些實(shí)施例已經(jīng)具體描述了本發(fā)明人完成的發(fā)明。然而,不必過分強(qiáng)調(diào),本發(fā)明不限于上述實(shí)施例,而是可以在不離開本發(fā)明精神的范圍內(nèi)進(jìn)行各種改變。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
将乐县| 奈曼旗| 十堰市| 屏东县| 济阳县| 土默特左旗| 景宁| 镶黄旗| 灯塔市| 万安县| 双流县| 乌鲁木齐县| 上杭县| 临清市| 泰宁县| 柯坪县| 化州市| 新乐市| 山阳县| 武宣县| 周宁县| 富民县| 瑞安市| 利川市| 汉川市| 利辛县| 千阳县| 安西县| 怀远县| 虹口区| 灌南县| 洛浦县| 监利县| 报价| 文山县| 扬中市| 锡林浩特市| 江口县| 贵阳市| 应用必备| 新民市|