專(zhuān)利名稱(chēng):搜索內(nèi)容可尋址存儲(chǔ)器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計(jì)領(lǐng)域,尤其涉及一種搜索內(nèi)容可尋址存儲(chǔ)器的方法和系統(tǒng)。
背景技術(shù):
CAM (Content Addressable Memory,內(nèi)容可尋■址存儲(chǔ)器),是一種特殊類(lèi)型的計(jì)算機(jī)存儲(chǔ)器,被廣泛運(yùn)用于計(jì)算機(jī)和通信領(lǐng)域。標(biāo)準(zhǔn)的存儲(chǔ)器RAM的功能為根據(jù)用戶(hù)提供的讀地址返回存儲(chǔ)在該地址上的數(shù)據(jù)字。不同于RAM,CAM的功能為根據(jù)用戶(hù)提供的一個(gè)數(shù)據(jù)字,捜索全部的存儲(chǔ)以判斷該數(shù)據(jù)字是否存儲(chǔ)在其中。如果找到這個(gè)數(shù)據(jù)字,則返回匹配地址,即該數(shù)據(jù)字在存儲(chǔ)器中的位置,因此CAM就是軟件術(shù)語(yǔ)associative array的硬件具體化。通常的CAM設(shè)計(jì)原理為在ー個(gè)操作中搜索整個(gè)存儲(chǔ),即讀出存儲(chǔ)器中每ー組數(shù)據(jù),并將外部接收的數(shù)據(jù)與之逐一進(jìn)行比較,然后根據(jù)比較結(jié)果對(duì)其進(jìn)行優(yōu)先譯碼,優(yōu)先譯碼器產(chǎn)生一個(gè)ニ進(jìn)制的匹配位置定位和一個(gè)匹配命中信號(hào)。常規(guī)的CAM實(shí)現(xiàn)方法有兩種,一種為將數(shù)據(jù)存儲(chǔ)在SRAM中,搜索時(shí)逐一讀出靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)中的內(nèi)容與查找字進(jìn)行比較。另ー種為將數(shù)據(jù)存儲(chǔ)在Register搭建存儲(chǔ)器組中,搜索時(shí)將查找字廣播到每ー組Register中進(jìn)行比較,再由優(yōu)先譯碼器根據(jù)各組的比較結(jié)果產(chǎn)生匹配位置和匹配命中信號(hào)。但上述兩種實(shí)現(xiàn)方法均存在不同程度的弊端,第一種方法受到RAM讀端口數(shù)量的限制,且完成一個(gè)CAM搜索過(guò)程需要的延時(shí)很大,L=(存儲(chǔ)器深度/RAM讀端ロ個(gè)數(shù))*Tclk,需要多個(gè)時(shí)鐘周期。在RAM器件規(guī)格確定,端ロ不變的前提下,存儲(chǔ)器深度越大,CAM搜索延遲也就越大。以ー個(gè)I讀I寫(xiě)兩端ロ SRAM實(shí)現(xiàn)的CAM為例,若存儲(chǔ)深度為64,則需要64個(gè)時(shí)鐘周期才能完成一次捜索。第二種方法則受到資源和面積的約束,使用Register搭建的存儲(chǔ)器組雖然能并行對(duì)查找字進(jìn)行比較,但占用的芯片面積比同等容量的SRAM大。查找字?jǐn)?shù)據(jù)寬度越大,這種面積差距就越明顯,為芯片的資源分配和布局布線(xiàn)帶來(lái)很大的挑戰(zhàn)。因此,如何快速CAM是ー個(gè)亟待解決的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明提供一種搜索內(nèi)容可尋址存儲(chǔ)器的方法和系統(tǒng),要解決的技術(shù)問(wèn)題是如何快速搜索CAM。為解決上述技術(shù)問(wèn)題,本發(fā)明提供了如下技術(shù)方案一種搜索內(nèi)容可尋址存儲(chǔ)器CAM的方法,包括獲取查找字; 將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM ;
并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果;對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。優(yōu)選的,所述方法還具有如下特點(diǎn)所述每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果是通過(guò)如下方式得到的,包括SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向 量的姆一位依次表不一個(gè)CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功;如果位向量所有位都等于0,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。優(yōu)選的,所述方法還具有如下特點(diǎn)對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果包括對(duì)得到的N個(gè)位向量進(jìn)行逐位的與操作,得到該查找字在CAM中的匹配結(jié)果。優(yōu)選的,所述方法還具有如下特點(diǎn)在得到該查找字在CAM中的匹配結(jié)果之后,還包括對(duì)得到的匹配結(jié)果進(jìn)行縮減運(yùn)算或操作,得到CAM的捜索匹配結(jié)果,如果結(jié)果為1,表示匹配成功;如果結(jié)果為0,表示匹配失敗。優(yōu)選的,所述方法還具有如下特點(diǎn)在得到該查找字在CAM中的匹配結(jié)果之后,還包括對(duì)得到的匹配結(jié)果進(jìn)行優(yōu)先譯碼操作,得到一匹配項(xiàng),該匹配項(xiàng)作為該查找字在CAM中的地址。一種搜索內(nèi)容可尋址存儲(chǔ)器CAM的系統(tǒng),包括獲取裝置,用于獲取查找字;劃分裝置,與所述獲取裝置相連,用于將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM ;讀裝置,與所述劃分裝置相連,用于并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果;處理裝置,用于對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。優(yōu)選的,所述系統(tǒng)還具有如下特點(diǎn)所述讀裝置通過(guò)如下方式得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果,包括SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一個(gè)CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功;如果位向量所有位都等于0,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。優(yōu)選的,所述系統(tǒng)還具有如下特點(diǎn)所述處理裝置,用于對(duì)得到的N個(gè)位向量進(jìn)行逐位的與操作,得到該查找字在CAM中的匹配結(jié)果。
優(yōu)選的,所述系統(tǒng)還具有如下特點(diǎn)所述系統(tǒng)還包括與操作裝置,與所述處理裝置相連,對(duì)得到的匹配結(jié)果進(jìn)行縮減運(yùn)算或操作,得到CAM的捜索匹配結(jié)果,如果結(jié)果為1,表示匹配成功;如果結(jié)果為0,表示匹配失敗。優(yōu)選的,所述系統(tǒng)還具有如下特點(diǎn)所述系統(tǒng)還包括優(yōu)先譯碼裝置,與所述處理裝置相連,用于對(duì)得到的匹配結(jié)果進(jìn)行優(yōu)先譯碼操作,得到一匹配項(xiàng),該匹配項(xiàng)作為該查找字在CAM中的地址。不同于通常的CAM實(shí)現(xiàn)方法,本發(fā)明提供的實(shí)施例不通過(guò)逐一比較存儲(chǔ)數(shù)據(jù)和查找字的方法進(jìn)行搜索,而是將查找字拆分成多個(gè)子查找字,拆分后的每個(gè)子查找字作為訪(fǎng)問(wèn)地址對(duì)SRAM進(jìn)行讀操作,地址數(shù)值等同于查找字的那ー項(xiàng)存儲(chǔ)字被選通,此操作即暗含一次完整搜索過(guò)程,且系統(tǒng)時(shí)間開(kāi)銷(xiāo)僅為存儲(chǔ)器的讀延遲。
圖I為本發(fā)明提供的捜索內(nèi)容可尋址存儲(chǔ)器的方法實(shí)施例的流程示意圖;圖2為本發(fā)明中劃分查找字的示意圖;圖3為本發(fā)明中位向量的示意圖;圖4為本發(fā)明提供的對(duì)得到的位向量進(jìn)行處理的示意圖;圖5為本發(fā)明中縮減和優(yōu)先譯碼操作的處理方式的示意圖;圖6為本發(fā)明中搜索CAM的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)ー步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。圖I為本發(fā)明提供的捜索內(nèi)容可尋址存儲(chǔ)器的方法實(shí)施例的流程示意圖。圖I所示方法實(shí)施例,包括步驟101、獲取查找字;步驟102、將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的SRAM ;其中SRAM的地址寬度的大小為SRAM的存儲(chǔ)空間大小對(duì)2取對(duì)數(shù)的結(jié)果;例如,存儲(chǔ)空間大小為256的SRAM,其地址寬度為8。步驟103、并行地以劃分后子查找字作為讀地址,在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果;步驟104、對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。不同于通常的CAM實(shí)現(xiàn)方法,本發(fā)明提供的方法實(shí)施例不通過(guò)逐一比較存儲(chǔ)數(shù)據(jù)和查找字的方法進(jìn)行搜索,而是將查找字拆分成多個(gè)子查找字,拆分后的每個(gè)子查找字作為訪(fǎng)問(wèn)地址對(duì)SRAM進(jìn)行讀操作,地址數(shù)值等同于查找字的那ー項(xiàng)存儲(chǔ)字被選通,此操作即暗含一次完整搜索過(guò)程,且系統(tǒng)時(shí)間開(kāi)銷(xiāo)僅為存儲(chǔ)器的讀延遲。
下面對(duì)本發(fā)明提供的方法實(shí)施例作進(jìn)ー步說(shuō)明以通用IRlW SRAM存儲(chǔ)器為例進(jìn)行說(shuō)明,其中該SRAM的存儲(chǔ)數(shù)據(jù)寬度等同于CAM搜索深度,即CAM最多可容納的被搜索數(shù)據(jù)的個(gè)數(shù)。整個(gè)CAM所包括多個(gè)SRAM存儲(chǔ)體,如深度為256的SRAM和深度為128的SRAM。當(dāng)搜索內(nèi)容數(shù)值較大,即查找字?jǐn)?shù)據(jù)寬度較大時(shí),若以整個(gè)搜索內(nèi)容単一編址將造成SRAM深度過(guò)大(等同于查找字的寬度)。因此將查找字劃分為N個(gè)子查找字,每個(gè)子查找字對(duì)應(yīng)一片地址寬度等于該子查找字寬度的SRAM存儲(chǔ)器。圖2為本發(fā)明中劃分查找字的示意圖。在圖2所示示意圖中,以8為基數(shù)將查找字(SearchWord)劃分為N個(gè)子查找字(SubWord)其中,在查找字寬度為39時(shí),則劃分成5份,每個(gè)子查找字的寬度依次為8、8、8、8、7。即前四個(gè)子查找字對(duì)應(yīng)存儲(chǔ)空間為28的SRAM,最后ー個(gè)對(duì)應(yīng)存儲(chǔ)空間為27的SRAM。
在得到劃分后的子查找字后,以子查找字為讀地址,在各個(gè)子查找字對(duì)應(yīng)的SRAM進(jìn)行并行進(jìn)行讀操作。其中,SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表示ー個(gè)CAM有效入口,通過(guò)配置位向量的姆一位的數(shù)值來(lái)表示該SRAM中同等位置上是否存在與該子查找字相同的數(shù)據(jù)。具體來(lái)說(shuō),SRAM中存儲(chǔ)的內(nèi)容為寬度等同于CAM搜索深度的位向量,位向量的每一位均指代ー個(gè)CAM有效入口,I表示該入口有效,0表示無(wú)效。位向量中為I的位在位向量中的位置即指示該有效入口在CAM中的匹配地址。位向量某一位值等于1,說(shuō)明CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功。位向量所有位都等于0,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。圖3為本發(fā)明中位向量的示意圖。在圖3所示示意圖中,數(shù)據(jù)寬度等同于CAM搜索深度D的位向量,其中位向量的每一位均指代該SAM中一個(gè)有效入口,其中該位的屬性值為I時(shí),表示該入口有效;該位的屬性值為0時(shí),表示該入口無(wú)效。并行讀出N個(gè)子查找字所對(duì)應(yīng)的SRAM存儲(chǔ)器中的位向量,每個(gè)位向量都代表了它所在查找字子查找字的匹配信息。對(duì)N個(gè)位向量的合并操作,即N輸入的相同數(shù)據(jù)寬度的ニ進(jìn)制操作數(shù)逐位與(&)操作,計(jì)算出一個(gè)完整寬度的查找字在CAM中的匹配信息。圖4為本發(fā)明提供的對(duì)得到的位向量進(jìn)行處理的示意圖。在圖4所示示意圖中,對(duì)N個(gè)子查找字所對(duì)應(yīng)的位向量(BitVecN)進(jìn)行逐位“與”操作,當(dāng)輸出結(jié)果為I吋,則計(jì)算出完整寬度的查找字所對(duì)應(yīng)的位向量(BitVector)在合并操作完成后,對(duì)合并結(jié)果進(jìn)行縮減運(yùn)算或(I)操作和優(yōu)先譯碼(pri-encoder)操作。合并位向量的縮減運(yùn)算或操作的結(jié)果即為CAM的搜索匹配結(jié)果,I表示匹配成功,0表示匹配失敗。合并位運(yùn)算的優(yōu)先譯碼操作的結(jié)果即為CAM的匹配項(xiàng)在CAM中的地址。圖5為本發(fā)明中縮減和優(yōu)先譯碼操作的處理方式的示意圖。在圖5所示示意圖中,以合并操作所得位向量(BitVector)為操作數(shù),分別進(jìn)行優(yōu)先譯碼和縮減運(yùn)算或,計(jì)算出匹配的CAM有效入口地址(MatchedAddr)和CAM搜索匹配結(jié)果(IsMatched)。另外,CAM的寫(xiě)操作由邏輯控制単元進(jìn)行控制由優(yōu)先譯碼器找到CAM空項(xiàng),然后通過(guò)SRAM的寫(xiě)端ロ向地址等同于寫(xiě)入數(shù)據(jù)的存儲(chǔ)字發(fā)起寫(xiě)操作,寫(xiě)入內(nèi)容為該地址上原有存儲(chǔ)字與寫(xiě)入對(duì)應(yīng)的位為1,其余位為0的位向量進(jìn)行逐位或操作的計(jì)算結(jié)果。本發(fā)明的方法實(shí)施例的有益效果是基于SRAM實(shí)現(xiàn),相對(duì)于基于Register的方式電路面積更小。以搜索內(nèi)容編址的方式取代全遍歷一一比對(duì)的方式,無(wú)需額外的比較邏輯。只需I個(gè)時(shí)鐘周期即輸出匹配結(jié)果和匹配數(shù)據(jù)地址,大大提高搜索效率,縮小了事務(wù)處理延遲,提高了系統(tǒng)的吞吐率。與上述方法對(duì)應(yīng)的,本發(fā)明還提供一種搜索內(nèi)容可尋址存儲(chǔ)器CAM的系統(tǒng),包括獲取裝置,用于獲取查找字;劃分裝置,與所述獲取裝置相連,用于將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM ;讀裝置,與所述劃分裝置相連,用于并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配 結(jié)果;處理裝置,用于對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。其中,所述讀裝置通過(guò)如下方式得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果,包括SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一個(gè)CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功;如果位向量所有位都等于0,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。優(yōu)選的,所述處理裝置,用于對(duì)得到的N個(gè)位向量進(jìn)行逐位的與操作,得到該查找字在CAM中的匹配結(jié)果??蛇x的,所述系統(tǒng)還包括與操作裝置,與所述處理裝置相連,對(duì)得到的匹配結(jié)果進(jìn)行縮減運(yùn)算或操作,得到CAM的捜索匹配結(jié)果,如果結(jié)果為1,表示匹配成功;如果結(jié)果為0,表示匹配失敗??蛇x的,所述系統(tǒng)還包括優(yōu)先譯碼裝置,與所述處理裝置相連,用于對(duì)得到的匹配結(jié)果進(jìn)行優(yōu)先譯碼操作,得到一匹配項(xiàng),該匹配項(xiàng)作為該查找字在CAM中的地址。下面以ー應(yīng)用實(shí)例進(jìn)行說(shuō)明圖6為本發(fā)明中搜索CAM的系統(tǒng)的結(jié)構(gòu)示意圖。在圖6所示系統(tǒng)中,該系統(tǒng)包括三個(gè)單元,即查找字區(qū)間劃分単元、SRAM存儲(chǔ)器単元和邏輯控制単元。其中查找字単元負(fù)責(zé)接收CAM搜索使能(SearchEn)和CAM搜索內(nèi)容,并對(duì)CAM搜索內(nèi)容,即查找字(SearchWord)進(jìn)行區(qū)域劃分,得到N個(gè)子區(qū)間。每個(gè)子區(qū)間對(duì)應(yīng)I個(gè)子查找字(SubWord),以此驅(qū)動(dòng)SRAM存儲(chǔ)器単元的讀操作地址。同時(shí)查找字劃分單元輸出各片SRAM的讀使能信號(hào),SRAM存儲(chǔ)器単元接收到讀使能信號(hào)有效即開(kāi)始讀操作,讀出相應(yīng)地址上的位向量(BitVecN),并且在端口上輸出。邏輯控制単元在接收到存儲(chǔ)器控制單元發(fā)出的N個(gè)位向量后對(duì)其進(jìn)行合井,縮減和優(yōu)先譯碼,計(jì)算出最終的搜索匹配結(jié)果(IsMatched)和匹配地址(MatchedAddr),并在端口上輸出。本發(fā)明的系統(tǒng)實(shí)施例的有益效果是基于SRAM實(shí)現(xiàn),相對(duì)于基于Register的方式電路面積更小。以搜索內(nèi)容編址的方式取代全遍歷一一比對(duì)的方式,無(wú)需額外的比較邏輯。只需I個(gè)時(shí)鐘周期即輸出匹配結(jié)果和匹配數(shù)據(jù)地址,大大提高搜索效率,縮小了事務(wù)處理延遲,提高了系統(tǒng)的吞吐率。
以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種搜索內(nèi)容可尋址存儲(chǔ)器CAM的方法,其特征在于,包括 獲取查找字; 將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM ; 并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果; 對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果是通過(guò)如下方式得到的,包括 SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一個(gè)CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功;如果位向量所有位都等于O,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果包括 對(duì)得到的N個(gè)位向量進(jìn)行逐位的與操作,得到該查找字在CAM中的匹配結(jié)果。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在得到該查找字在CAM中的匹配結(jié)果之后,還包括 對(duì)得到的匹配結(jié)果進(jìn)行縮減運(yùn)算或操作,得到CAM的捜索匹配結(jié)果,如果結(jié)果為1,表示匹配成功;如果結(jié)果為O,表示匹配失敗。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,在得到該查找字在CAM中的匹配結(jié)果之后,還包括 對(duì)得到的匹配結(jié)果進(jìn)行優(yōu)先譯碼操作,得到一匹配項(xiàng),該匹配項(xiàng)作為該查找字在CAM中的地址。
6.一種搜索內(nèi)容可尋址存儲(chǔ)器CAM的系統(tǒng),其特征在于,包括 獲取裝置,用于獲取查找字; 劃分裝置,與所述獲取裝置相連,用于將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM ; 讀裝置,與所述劃分裝置相連,用于并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果; 處理裝置,用于對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述讀裝置通過(guò)如下方式得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果,包括 SRAM的每個(gè)存儲(chǔ)地址上均對(duì)應(yīng)ー個(gè)長(zhǎng)度等同于CAM搜索深度的位向量,其中位向量的姆一位依次表不一個(gè)CAM有效入ロ,如果位向量某一位值等于1,表不CAM中同等位置上存在與子查找字相同的數(shù)據(jù),捜索完成,匹配成功;如果位向量所有位都等于O,說(shuō)明CAM中不存在與子查找字相同的數(shù)據(jù),捜索完成,匹配失敗。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于 所述處理裝置,用于對(duì)得到的N個(gè)位向量進(jìn)行逐位的與操作,得到該查找字在CAM中的匹配結(jié)果。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 與操作裝置,與所述處理裝置相連,對(duì)得到的匹配結(jié)果進(jìn)行縮減運(yùn)算或操作,得到CAM的捜索匹配結(jié)果,如果結(jié)果為1,表示匹配成功;如果結(jié)果為O,表示匹配失敗。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 優(yōu)先譯碼裝置,與所述處理裝置相連,用于對(duì)得到的匹配結(jié)果進(jìn)行優(yōu)先譯碼操作,得到一匹配項(xiàng),該匹配項(xiàng)作為該查找字在CAM中的地址。
全文摘要
本發(fā)明提供一種搜索內(nèi)容可尋址存儲(chǔ)器的方法和系統(tǒng)。所述方法,包括獲取查找字;將查找字劃分成N個(gè)子查找字,其中每個(gè)子查找字對(duì)應(yīng)內(nèi)容可尋址存儲(chǔ)器CAM中一地址寬度等于該子查找字寬度的靜態(tài)隨機(jī)存儲(chǔ)器SRAM;并行地以子查找字作為讀地址在對(duì)應(yīng)的在SRAM中進(jìn)行讀操作,得到每個(gè)子查找字所對(duì)應(yīng)的SRAM上各存儲(chǔ)地址對(duì)該子查找字的匹配結(jié)果;對(duì)得到的匹配結(jié)果進(jìn)行合并處理,得到該查找字在CAM中的匹配結(jié)果。
文檔編號(hào)G06F17/30GK102663051SQ20121008940
公開(kāi)日2012年9月12日 申請(qǐng)日期2012年3月29日 優(yōu)先權(quán)日2012年3月29日
發(fā)明者周恒釗, 陳繼承 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司