亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種快速搜索cam的方法

文檔序號:6378668閱讀:653來源:國知局
專利名稱:一種快速搜索cam的方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路設(shè)計領(lǐng)域,具體地說是一種快速搜索CAM的方法。
背景技術(shù)
CAM (Content Addressable Memory),是一種特殊類型的計算機存儲器,被廣泛運用于計算機和通信領(lǐng)域。標準的存儲器RAM的功能為根據(jù)用戶提供的讀地址返回存儲在該地址上的數(shù)據(jù)字。不同于RAM,CAM的功能為根據(jù)用戶提供的一個數(shù)據(jù)字,搜索全部的存儲以判斷該數(shù)據(jù)字是否存儲在其中。如果找到這個數(shù)據(jù)字,則返回匹配地址,即該數(shù)據(jù)字在存儲器中的位置,因此CAM就是軟件術(shù)語associative array的硬件具體化。通常的CAM設(shè)計原理為在一個操作中搜索整個存儲,即讀出存儲器中每一組數(shù) 據(jù),并將外部接收的數(shù)據(jù)與之逐一進行比較,然后根據(jù)比較結(jié)果對其進行優(yōu)先譯碼,優(yōu)先譯碼器產(chǎn)生一個二進制的匹配位置定位和一個匹配命中信號。常規(guī)的CAM實現(xiàn)方法有兩種,一種為將數(shù)據(jù)存儲在SRAM中,搜索時逐一讀出SRAM中的內(nèi)容與查找字進行比較。另一種為將數(shù)據(jù)存儲在Register搭建存儲器組中,搜索時將查找字廣播到每一組Register中進行比較,再由優(yōu)先譯碼器根據(jù)各組的比較結(jié)果產(chǎn)生匹配位置和匹配命中信號。但上述兩種實現(xiàn)方法均存在不同程度的弊端,第一種方法受到RAM讀端口數(shù)量的限制,且完成一個CAM搜索過程需要的延時很大,L =(存儲器深度/RAM讀端口個數(shù))* Tclk,需要多個時鐘周期。在RAM器件規(guī)格確定,端口不變的前提下,存儲器深度越大,CAM搜索延遲也就越大。以一個I讀I寫兩端口 SRAM實現(xiàn)的CAM為例,若存儲深度為64,則需要64個時鐘周期才能完成一次搜索。第二種方法則受到資源和面積的約束,使用Register搭建的存儲器組雖然能并行對查找字進行比較,但占用的芯片面積比同等容量的SRAM大。查找字數(shù)據(jù)寬度越大,這種面積差距就越明顯,為芯片的資源分配和布局布線帶來很大的挑戰(zhàn)。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種快速搜索CAM的方法。本發(fā)明的目的是按以下方式實現(xiàn)的,快速搜索CAM是基于SRAM存儲器和邏輯控制模塊來實現(xiàn),以搜索內(nèi)容作為讀地址,同時進行多塊SRAM存儲器訪問,SRAM存儲器中存儲的內(nèi)容均為寬度等同于CAM搜索深度的位向量,位向量中的有效位即指示搜索匹配結(jié)果和匹配項地址,經(jīng)過邏輯控制模塊合并多塊SRAM存儲器輸出的結(jié)果,得到完整搜索內(nèi)容在CAM中的匹配結(jié)果和匹配項的地址;具體步驟如下
1)SRAM存儲器存放寬度等同于CAM搜索深度的位向量,每次進行CAM搜索時以被檢索的數(shù)據(jù)作為讀地址,發(fā)起相應(yīng)的SRAM存儲器讀操作,SRAM存儲器返回對應(yīng)地址上的位向量;
2)SRAM存儲器的讀使能由CAM搜索使能驅(qū)動,讀地址由CAM搜索內(nèi)容驅(qū)動,將CAM的查找字以存儲器深度為基數(shù)劃分為若干個搜索子區(qū)間,每個子區(qū)間各對應(yīng)一片SRAM存儲器,所有SRAM存儲器之間互不相干;3)并行讀出每個子區(qū)間所對應(yīng)的SRAM存儲器中的位向量,每個位向量都代表了它所在查找字子區(qū)間的匹配信息,由CAM控制邏輯模塊完成對每個位向量的合并操作,即每次輸入的相同數(shù)據(jù)寬度的二進制操作數(shù)逐位與&操作,計算出一個完整寬度的查找字在CAM中的匹配信息;
4)SRAM存儲器中每個地址上均存放著數(shù)據(jù)寬度等同于CAM搜索深度的位向量,位向量每一位指代一個CAM的有效入口,I表示該入口有效,O表示無效,指示CAM有效入口的位向量,位向量中值為I的位所在位向量中的位置即為該有效入口在CAM中的匹配地址;位向量某一位值等于1,說明CAM中同等位置上存在與查找字相同的數(shù)據(jù),搜索完成,匹配成功,位向量所有位都等于O,說明CAM中不存在與查找字相同的數(shù)據(jù),搜索完成,匹配失??;
5)CAM控制邏輯模塊在接收到SRAM存儲器控制單元發(fā)出的每個位向量后對其進行合并,縮減和優(yōu)先譯碼,計算出最終的搜索匹配結(jié)果和匹配地址,并在端口上輸出對應(yīng)內(nèi)容,完成對多個SRAM存儲器讀出數(shù)據(jù)的合并操作和各子區(qū)間對應(yīng)的位向量的與操作,得到完 整搜索數(shù)據(jù)所對應(yīng)的位向量;
6)CAM控制邏輯模塊合并操作完成后,對合并結(jié)果進行縮減運算或(I )操作和優(yōu)先譯碼pri-encoder操作,合并位向量的縮減運算或操作的結(jié)果即為CAM的搜索匹配結(jié)果,I表示匹配成功,O表示匹配失敗,合并位運算的優(yōu)先譯碼操作的結(jié)果即為CAM的匹配項在CAM中的地址;
7)CAM的寫操作由CAM控制邏輯模塊進行控制由優(yōu)先譯碼器找到CAM空項,然后通過SRAM存儲器的寫端口向地址等同于寫入數(shù)據(jù)的存儲字發(fā)起寫操作,寫入內(nèi)容為該地址上原有存儲字與寫入對應(yīng)的位為1,其余位為O的位向量進行逐位或操作的計算結(jié)果。本發(fā)明的有益效果是快速搜索CAM設(shè)計實現(xiàn)的模塊劃分以及數(shù)據(jù)處理流程。整個設(shè)計劃分為三個單元,查找字區(qū)間劃分單元,SRAM存儲器單元和CAM控制邏輯模塊。其中查找字單元負責接收CAM搜索使能和CAM搜索內(nèi)容,并對CAM搜索內(nèi)容,即查找字進行區(qū)域劃分,得到N個子區(qū)間。每個子區(qū)間對應(yīng)I個子查找字,以此驅(qū)動SRAM存儲器單元的讀操作地址。同時查找字劃分單元輸出各片SRAM存儲器的讀使能信號,SRAM存儲器單元接收到讀使能信號有效即開始讀操作,讀出相應(yīng)地址上的位向量,并且在端口上輸出。


圖I是快速搜索CAM模塊結(jié)構(gòu) 圖2是查找字區(qū)間劃分 圖3是位向量示意 圖4是CAM控制邏輯模塊原理圖I ;
圖5是CAM控制邏輯模塊原理圖2。
具體實施例方式參照說明書附圖對本發(fā)明的方法作以下詳細地說明。附圖I描述了快速搜索CAM設(shè)計實現(xiàn)的模塊劃分以及數(shù)據(jù)處理流程。整個設(shè)計劃分為三個單元,查找字區(qū)間劃分單元,SRAM存儲器單元和CAM控制邏輯模塊。其中查找字單元負責接收CAM搜索使能(SearchEn)和CAM搜索內(nèi)容,并對CAM搜索內(nèi)容,即查找字(SearchWord)進行區(qū)域劃分,得到N個子區(qū)間。每個子區(qū)間對應(yīng)I個子查找字(SubWord),以此驅(qū)動SRAM存儲器單元的讀操作地址。同時查找字劃分單元輸出各片SRAM存儲器的讀使能信號,SRAM存儲器單元接收到讀使能信號有效即開始讀操作,讀出相應(yīng)地址上的位向量(BitVecN),并且在端口上輸出。CAM控制邏輯模塊在接收到SRAM存儲器控制單元發(fā)出的N個位向量后對其進行合并,縮減和優(yōu)先譯碼,計算出最終的搜索匹配結(jié)果(IsMatched)和匹配地址(MatchedAddr),并在端口上輸出。附圖2描述了區(qū)間劃分規(guī)則,即以8為基數(shù)將查找字(SearchWord)劃分為N個子查找字(SubWord),N =查找字寬度W / 8。附圖3描述了存儲器中存儲內(nèi)容的格式,即數(shù)據(jù)寬度等同于CAM搜索深度D的位向量,位向量的每一位均指代CAM的一個有效入口,I表示該入口有效,O表示無效。附圖4描述了 CAM控制邏輯模塊合并操作的原理,即N個子查找字所對應(yīng)的位向量(BitVecN)進行逐位與操作,計算出完整寬度的查找字所對應(yīng)的位向量(BitVector)。 附圖5描述了 CAM控制邏輯模塊縮減和優(yōu)先譯碼操作的原理,即以合并操作所得位向量(BitVector)為操作數(shù),分別進行優(yōu)先譯碼和縮減運算或,計算出匹配的CAM有效入口地址(MatchedAddr)和 CAM 搜索匹配結(jié)果(IsMatched)。
實施例本發(fā)明基于SRAM作為存儲體,以搜索內(nèi)容編址,將查找字劃分為多個子區(qū)間同時檢索,由控制邏輯電路合并各個子區(qū)間的檢索內(nèi)容,計算并且輸出搜索結(jié)果。在不犧牲芯片面積的前提下,只需要I個時鐘周期即完成整個搜索過程。本發(fā)明基于通用IRlW SRAM存儲器實現(xiàn),存儲數(shù)據(jù)寬度等同于CAM搜索深度,SPCAM最多可容納的被搜索數(shù)據(jù)個數(shù)。整個CAM由N片SRAM存儲體和一個控制邏輯單元組成,以深度為256的SRAM為例,N =查找字寬度W / 8。不同于通常的CAM實現(xiàn)方法,本發(fā)明不通過逐一比較存儲數(shù)據(jù)和查找字的方法進行搜索,而是將查找字作為訪問地址對SRAM進行讀操作,地址數(shù)值等同于查找字的那一項存儲字被選通,此操作即暗含一次完整搜索過程,且系統(tǒng)時間開銷僅為存儲器的讀延遲。當搜索內(nèi)容數(shù)值較大,即查找字數(shù)據(jù)寬度較大時,若以整個搜索內(nèi)容單一編址將造成SRAM深度過大(等同于查找字的寬度)。因此將查找字劃分為N個子區(qū)間,每個子區(qū)間對應(yīng)一片深度為256,即地址寬度等于8的SRAM存儲器。CAM進行搜索時各個子區(qū)間對應(yīng)的SRAM并行進行讀操作。子區(qū)間個數(shù)由查找字寬度決定,N =查找字寬度W / 8。SRAM中存儲的內(nèi)容為寬度等同于CAM搜索深度的位向量,位向量的每一位均指代一個CAM有效入口,I表示該入口有效,O表示無效。位向量中為I的位在位向量中的位置即指示該有效入口在CAM中的匹配地址。位向量某一位值等于1,說明CAM中同等位置上存在與查找字相同的數(shù)據(jù),搜索完成,匹配成功。位向量所有位都等于0,說明CAM中不存在與查找字相同的數(shù)據(jù),搜索完成,匹配失敗。并行讀出N個子區(qū)間所對應(yīng)的SRAM存儲器中的位向量,每個位向量都代表了它所在查找字子區(qū)間的匹配信息。由CAM控制邏輯模塊完成對N個位向量的合并操作,即N輸入的相同數(shù)據(jù)寬度的二進制操作數(shù)逐位與(&)操作,計算出一個完整寬度的查找字在CAM中的匹配信息。
CAM控制邏輯模塊合并操作完成后,對合并結(jié)果進行縮減運算或(I )操作和優(yōu)先譯碼(pri-encoder)操作。合并位向量的縮減運算或操作的結(jié)果即為CAM的搜索匹配結(jié)果,I表示匹配成功,O表示匹配失敗。合并位運算的優(yōu)先譯碼操作的結(jié)果即為CAM的匹配項在CAM中的地址。另外,CAM的寫操作由CAM控制邏輯模塊進行控制由優(yōu)先譯碼器找到CAM空項,然后通過SRAM的寫端口向地址等同于寫入數(shù)據(jù)的存儲字發(fā)起寫操作,寫入內(nèi)容為該地址 上原有存儲字與寫入對應(yīng)的位為1,其余位為O的位向量進行逐位或操作的計算結(jié)果。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。
權(quán)利要求
1. 一種快速搜索CAM的方法,其特征在于,快速搜索CAM是基于SRAM存儲器和邏輯控制模塊來實現(xiàn),以搜索內(nèi)容作為讀地址,同時進行多塊SRAM存儲器訪問,SRAM存儲器中存儲的內(nèi)容均為寬度等同于CAM搜索深度的位向量,位向量中的有效位即指示搜索匹配結(jié)果和匹配項地址,經(jīng)過邏輯控制模塊合并多塊SRAM存儲器輸出的結(jié)果,得到完整搜索內(nèi)容在CAM中的匹配結(jié)果和匹配項的地址;具體步驟如下 1)SRAM存儲器存放寬度等同于CAM搜索深度的位向量,每次進行CAM搜索時以被檢索的數(shù)據(jù)作為讀地址,發(fā)起相應(yīng)的SRAM存儲器讀操作,SRAM存儲器返回對應(yīng)地址上的位向量; 2)SRAM存儲器的讀使能由CAM搜索使能驅(qū)動,讀地址由CAM搜索內(nèi)容驅(qū)動,將CAM的查找字以存儲器深度為基數(shù)劃分為若干個搜索子區(qū)間,每個子區(qū)間各對應(yīng)一片SRAM存儲器,所有SRAM存儲器之間互不相干; 3)并行讀出每個子區(qū)間所對應(yīng)的SRAM存儲器中的位向量,每個位向量都代表了它所在查找字子區(qū)間的匹配信息,由CAM控制邏輯模塊完成對每個位向量的合并操作,即每次輸入的相同數(shù)據(jù)寬度的二進制操作數(shù)逐位與&操作,計算出一個完整寬度的查找字在CAM中的匹配信息; 4)SRAM存儲器中每個地址上均存放著數(shù)據(jù)寬度等同于CAM搜索深度的位向量,位向量每一位指代一個CAM的有效入口,I表示該入口有效,O表示無效,指示CAM有效入口的位向量,位向量中值為I的位所在位向量中的位置即為該有效入口在CAM中的匹配地址;位向量某一位值等于1,說明CAM中同等位置上存在與查找字相同的數(shù)據(jù),搜索完成,匹配成功,位向量所有位都等于O,說明CAM中不存在與查找字相同的數(shù)據(jù),搜索完成,匹配失??; 4)CAM控制邏輯模塊在接收到SRAM存儲器控制單元發(fā)出的每個位向量后對其進行合并,縮減和優(yōu)先譯碼,計算出最終的搜索匹配結(jié)果和匹配地址,并在端口上輸出對應(yīng)內(nèi)容,完成對多個SRAM存儲器讀出數(shù)據(jù)的合并操作和各子區(qū)間對應(yīng)的位向量的與操作,得到完整搜索數(shù)據(jù)所對應(yīng)的位向量; 5)CAM控制邏輯模塊合并操作完成后,對合并結(jié)果進行縮減運算或(I )操作和優(yōu)先譯碼pri-encoder操作,合并位向量的縮減運算或操作的結(jié)果即為CAM的搜索匹配結(jié)果,I表示匹配成功,O表示匹配失敗,合并位運算的優(yōu)先譯碼操作的結(jié)果即為CAM的匹配項在CAM中的地址; 6)CAM的寫操作由CAM控制邏輯模塊進行控制由優(yōu)先譯碼器找到CAM空項,然后通過SRAM存儲器的寫端口向地址等同于寫入數(shù)據(jù)的存儲字發(fā)起寫操作,寫入內(nèi)容為該地址上原有存儲字與寫入對應(yīng)的位為1,其余位為O的位向量進行逐位或操作的計算結(jié)果。
全文摘要
本發(fā)明提供一種快速搜索CAM的方法,包括模塊劃分以及數(shù)據(jù)處理流程,整個設(shè)計劃分為三個單元,查找字區(qū)間劃分單元,SRAM存儲器單元和CAM控制邏輯模塊,其中查找字單元負責接收CAM搜索使能和CAM搜索內(nèi)容,并對CAM搜索內(nèi)容,即查找字進行區(qū)域劃分,得到N個子區(qū)間,每個子區(qū)間對應(yīng)1個子查找字,以此驅(qū)動SRAM存儲器單元的讀操作地址,同時查找字劃分單元輸出各片SRAM存儲器的讀使能信號,SRAM存儲器單元接收到讀使能信號有效即開始讀操作,讀出相應(yīng)地址上的位向量,并且在端口上輸出。
文檔編號G06F12/08GK102937969SQ20121038549
公開日2013年2月20日 申請日期2012年10月12日 優(yōu)先權(quán)日2012年10月12日
發(fā)明者周恒釗, 陳繼承 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1