專(zhuān)利名稱(chēng):一種訪問(wèn)三態(tài)內(nèi)容尋址存儲(chǔ)器的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種訪問(wèn)三態(tài)內(nèi)容尋址存儲(chǔ)器(TernaryContent Addressable Memory, TCAM)的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)帶寬的不斷增加,網(wǎng)絡(luò)應(yīng)用過(guò)程中對(duì)路由器轉(zhuǎn)發(fā)速度的要求也越來(lái)越高,而查找技術(shù)作為網(wǎng)絡(luò)設(shè)備處理和轉(zhuǎn)發(fā)數(shù)據(jù)包過(guò)程的關(guān)鍵技術(shù),其實(shí)現(xiàn)包括軟件和硬件兩種方式,其中,硬件方式由于具有較高的查找速度而被廣泛應(yīng)用,這里, 硬件設(shè)備TCAM因?yàn)榫哂心軌蚍祷乇徊檎覂?nèi)容的存放地址的能力而被廣泛應(yīng)用;類(lèi)似一般的存儲(chǔ)器,TCAM內(nèi)部由多個(gè)存儲(chǔ)單元構(gòu)成,存儲(chǔ)單元通常被稱(chēng)為表項(xiàng)(entry);表項(xiàng)的物理寬度即存儲(chǔ)單元的容量,可以被靈活設(shè)置,一般為36bit的倍數(shù)。通常TCAM可支持的表項(xiàng)物理寬度為72bit、144bit、288bit和576bit,查詢關(guān)鍵字(KEY)的長(zhǎng)度與表項(xiàng)寬度一樣。TCAM的每一條表項(xiàng)由兩部分組成,一部分稱(chēng)為數(shù)據(jù)單元,另一部分稱(chēng)為掩碼單元,兩個(gè)單元的寬度相同,都為表項(xiàng)寬度。數(shù)據(jù)單元和掩碼單元的每一個(gè)存儲(chǔ)位一一對(duì)應(yīng),當(dāng)掩碼單元中的某個(gè)存儲(chǔ)位設(shè)置成MASK,則可以認(rèn)為該存儲(chǔ)位對(duì)應(yīng)數(shù)據(jù)單元中的數(shù)據(jù)不起作用,即該數(shù)據(jù)單元的數(shù)據(jù)可以為“X”,代表don’t care。而TCAM的這個(gè)第三種狀態(tài)特征(MASK)使得TCAM既能進(jìn)行精確匹配查找,又能進(jìn)行模糊匹配查找。TCAM的查找過(guò)程是這樣查詢方送來(lái)查找關(guān)鍵字(KEY),TCAM將KEY與內(nèi)部存儲(chǔ)的所有表項(xiàng)同時(shí)進(jìn)行匹配比較,并返回匹配表項(xiàng)內(nèi)容所在的地址(INDEX)返回給查詢方。利用TCAM取代軟件進(jìn)行查找,性能可顯著提升。然而,目前標(biāo)準(zhǔn)的TCAM芯片接口有QDR接口和72bit的標(biāo)準(zhǔn)接口,而主流的CPU,如OCTEON多核、Intel x86等CPU均不具備TCAM的接口,無(wú)法實(shí)現(xiàn)對(duì)TCAM的訪問(wèn)。帶有縮短讀潛伏時(shí)間的動(dòng)態(tài)隨機(jī)存取器(Reduce latency dynamic RandomAccess Memory, RLDRAM)控制器的中央處理器(CPU)能夠?qū)崿F(xiàn)TCAM的訪問(wèn),具體參照?qǐng)D1,CPU通過(guò)RLDRAM控制器接口的地址線(ADDR)攜帶命令,RLDRAM控制器接口的數(shù)據(jù)通道(DQ)傳送KEY ;FPGA接收從RLDRAM控制器接口傳送過(guò)來(lái)的命令和數(shù)據(jù),再發(fā)送給TCAM進(jìn)行查找匹配并返回結(jié)果。但隨著RLDRAM技術(shù)應(yīng)用越來(lái)越少,帶有RLDRAM控制器的CPU也越來(lái)越少,并且該方法中需使用地址線攜帶命令,會(huì)增加總線負(fù)荷,特別當(dāng)TCAM和內(nèi)存同時(shí)掛載于內(nèi)存總線時(shí),容易導(dǎo)致數(shù)據(jù)傳輸?shù)牟环€(wěn)定,在使用領(lǐng)域上有較大的限制。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種訪問(wèn)TCAM的方法及裝置,能夠?qū)崿F(xiàn)處理器對(duì)TCAM的訪問(wèn),擴(kuò)大TCAM的應(yīng)用范圍。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種訪問(wèn)TCAM的方法,該方法包括處理器通過(guò)自身的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DDR)控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作;所述接口轉(zhuǎn)換單元接收處理器發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM ;TCAM根據(jù)接收到的數(shù)據(jù)進(jìn)行查詢并返回查詢結(jié)果。其中,所述處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作為所述處理器通過(guò)自身的DDR控制器向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;其中,所述DDR控制器包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器
一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種。
其中,所述接口轉(zhuǎn)換單元將解析得到的數(shù)據(jù)發(fā)送給TCAM為所述接口轉(zhuǎn)換單元將解析得到的查詢命令通過(guò)命令總線發(fā)送給TCAM,將關(guān)鍵字通過(guò)數(shù)據(jù)總線發(fā)送給TCAM。其中,所述TCAM返回查詢結(jié)果為T(mén)CAM通過(guò)結(jié)果總線將查詢結(jié)果返回給接口轉(zhuǎn)換單元,所述接口轉(zhuǎn)換單元將查詢結(jié)果進(jìn)行緩存。進(jìn)一步地,所述方法還包括所述處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換單元檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給處理器。一種訪問(wèn)TCAM的裝置,該裝置包括處理器單元、接口轉(zhuǎn)換單元;其中,所述處理器單元,用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元發(fā)起查詢操作;所述接口轉(zhuǎn)換單元,用于接收處理器單元發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM,并接收所述TCAM返回的查詢結(jié)果。其中,所述處理器單元,具體用于通過(guò)自身的DDR控制器子單元向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;其中,所述DDR控制器子單元包括DDRl控制器子單元、DDR2控制器子單元、DDR3控制器子單元、DDR4控制器子單元一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種。其中,所述接口轉(zhuǎn)換單元,具體用于將解析得到的查詢命令通過(guò)命令總線發(fā)送給TCAM,將關(guān)鍵字通過(guò)數(shù)據(jù)總線發(fā)送給TCAM。其中,所述接口轉(zhuǎn)換單元,具體用于接收所述TCAM通過(guò)結(jié)果總線返回的查詢結(jié)果并進(jìn)行緩存。進(jìn)一步地,所述處理器單元,還用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換單元,還用于檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給所述處理器單元。本發(fā)明中處理器通過(guò)自身的DDR控制器與接口轉(zhuǎn)換單元進(jìn)行通信,實(shí)現(xiàn)對(duì)TCAM的訪問(wèn),并且處理器還可以通過(guò)對(duì)發(fā)送給接口轉(zhuǎn)換單元的關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度等的控制,實(shí)現(xiàn)多關(guān)鍵字同時(shí)發(fā)送,多查詢結(jié)果同時(shí)返回,并且在不同線程發(fā)起查詢時(shí),根據(jù)關(guān)鍵字ID,保證接口轉(zhuǎn)換單元返回正確的查詢結(jié)果,適用于不同接口的TCAM,擴(kuò)大了TCAM的應(yīng)用范圍,并且能夠提高查詢速度,進(jìn)而滿足路由器轉(zhuǎn)發(fā)的速度要求。
圖1為帶有RLDRAM控制器的CPU訪問(wèn)TCAM的結(jié)構(gòu)示意圖;圖2為本發(fā)明訪問(wèn)TCAM的方法的實(shí)現(xiàn)流程示意圖;圖3為本發(fā)明DDR控制器傳輸數(shù)據(jù)格式的示意圖;圖4為本發(fā)明訪問(wèn)TCAM的裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明訪問(wèn)TCAM的裝置實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的基本思想為處理器通過(guò)自身的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DoubleData Rate,DDR)控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作;所述接口轉(zhuǎn)換單元接收處理器發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM ;TCAM根據(jù)接收到的數(shù)據(jù)進(jìn)行查詢并返回查詢結(jié)果。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。圖2示出了本發(fā)明訪問(wèn)TCAM的方法的實(shí)現(xiàn)流程,如圖2所示,所述方法包括下述步驟步驟201,處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作;具體地,所述處理器通過(guò)自身的DDR控制器向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;這里,所述DDR控制器具體可以包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器的一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種;具體地,所述接口轉(zhuǎn)換單元可以通過(guò)現(xiàn)場(chǎng)可編程門(mén)陣列(Field ProgrammableGate Array,F(xiàn)PGA)進(jìn)行實(shí)現(xiàn);所述處理器可以通過(guò)使用DDR控制器的數(shù)據(jù)通道(DQ)信號(hào)線和控制信號(hào)線,與FPGA進(jìn)行通信,減少FPGA的I/O接口的使用數(shù)量,簡(jiǎn)化操作;其中,處理器通過(guò)DQ信號(hào)線進(jìn)行相關(guān)數(shù)據(jù)的傳輸,處理器通過(guò)控制信號(hào)線向FPGA發(fā)起讀寫(xiě)等操作。進(jìn)一步地,當(dāng)TCAM和內(nèi)存同時(shí)掛載于內(nèi)存總線時(shí),處理器還可以通過(guò)DDR控制器的片選(ChipSelect, CS)信號(hào)對(duì)TCAM和內(nèi)存進(jìn)行區(qū)分。進(jìn)一步地,所述DDR控制器的DQ信號(hào)線傳輸?shù)臄?shù)據(jù)寬度為64bit,一個(gè)時(shí)鐘周期可傳輸128bit。而通常TCAM可支持的查找關(guān)鍵字(KEY)長(zhǎng)度為72bit、144bit、288bit和576bit,如此,對(duì)于144bit及以上的KEY長(zhǎng)度,需要多個(gè)時(shí)鐘周期進(jìn)行傳輸。本發(fā)明中,DDR控制器傳輸?shù)臄?shù)據(jù)的格式參照?qǐng)D3,該數(shù)據(jù)的總長(zhǎng)度為64bit,其中Command為命令字,具體可以參考現(xiàn)有TCAM的命令字,占用8個(gè)比特;KEY ID為查詢的關(guān)鍵字序列號(hào)(ID),占用8個(gè)比特;KEY Num為一次查詢的關(guān)鍵字個(gè)數(shù),占用6個(gè)比特;KEY Len為關(guān)鍵字長(zhǎng)度,占用2個(gè)比特,具體地,2’ b00表示關(guān)鍵字長(zhǎng)度為72bit ;2’ b01表示關(guān)鍵字長(zhǎng)度為144bit ;2,blO表示關(guān)鍵字長(zhǎng)度為288bit ;2,bll表示關(guān)鍵字長(zhǎng)度為576bit。
步驟202,所述接口轉(zhuǎn)換單元接收處理器發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM ;其中,所述接口轉(zhuǎn)換單元將解析得到的查詢命令通過(guò)命令總線(InstructionBus)發(fā)送給TCAM,將關(guān)鍵字通過(guò)數(shù)據(jù)總線(Data Bus)發(fā)送給TCAM。步驟203,TCAM根據(jù)接收到的數(shù)據(jù)進(jìn)行查詢并返回查詢結(jié)果;具體地,TCAM接收到查詢命令和關(guān)鍵字后,將關(guān)鍵字與自身存儲(chǔ)的內(nèi)容進(jìn)行比較匹配,經(jīng)過(guò)預(yù)設(shè)的固定延時(shí)后,通過(guò)結(jié)果總線(Result Bus)將查詢結(jié)果返回給接口轉(zhuǎn)換單元,所述接口轉(zhuǎn)換單元將所述查詢結(jié)果進(jìn)行緩存。進(jìn)一步地,上述方法還包括下述步驟處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換單元檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給處理器。下面通過(guò)具體實(shí)施例對(duì)上述方法進(jìn)行進(jìn)一步說(shuō)明,所述實(shí)施例中,處理器具體為中央處理器(CPU),所述接口轉(zhuǎn)換單元具體為FPGA。實(shí)施例一實(shí)施例一中,CPU發(fā)起的查詢操作中查詢的KEY Num為1,Key Len為72bit,實(shí)施例一包括下述步驟步驟一,CPU向FPGA發(fā)起寫(xiě)操作,其中Command為查詢命令,KEYID為1,KEY Num為 1,Key Len 為 2’ b00。步驟二,F(xiàn)PGA檢測(cè)到CPU的寫(xiě)操作后,開(kāi)始接收CPU發(fā)來(lái)的數(shù)據(jù)并緩存。
步驟三,F(xiàn)PGA解析接收到的數(shù)據(jù),通過(guò)Instruction Bus把解析得到的查詢命令發(fā)送到TCAM,通過(guò)Data Bus把KEY發(fā)送到TCAM,實(shí)現(xiàn)對(duì)TCAM的訪問(wèn)。步驟四,TCAM接收到查詢命令和KEY后,將KEY和自身存儲(chǔ)的內(nèi)容進(jìn)行比較匹配,經(jīng)過(guò)預(yù)設(shè)的固定延時(shí)后,通過(guò)Result Bus返回查找結(jié)果。步驟五,F(xiàn)PGA檢測(cè)到查詢結(jié)果有效后,讀取查詢結(jié)果并按照KEY ID進(jìn)行對(duì)應(yīng)緩存。步驟六,CPU向FPGA發(fā)起寫(xiě)操作,向FPGA寫(xiě)入如圖3所示的數(shù)據(jù),其中Command為讀命令,KEY ID 為 1,KEY Num 為 1,Key Len 為 2’ b00。步驟七,CPU向FPGA發(fā)起讀操作,F(xiàn)PGA檢測(cè)到讀操作后,根據(jù)步驟六中CPU寫(xiě)入的數(shù)據(jù),將與寫(xiě)入的KEY ID為I相對(duì)應(yīng)的查詢結(jié)果輸出給CPU。優(yōu)選地,本發(fā)明實(shí)施例中,在步驟三中,當(dāng)FPGA解析接收到的數(shù)據(jù)后,發(fā)現(xiàn)CPU要查詢的數(shù)據(jù)已經(jīng)存在于自身的緩存中,可以將CPU要查詢的數(shù)據(jù)直接返回給CPU。實(shí)施例二實(shí)施例二中,CPU發(fā)起的查詢操作中查詢的KEY Num為2,Key Len為144bit,所述實(shí)施例二包括下述步驟步驟一,CPU向FPGA發(fā)起寫(xiě)操作,其中Command為查詢命令,KEYID為1,KEY Num為 2,Key Len 為 2,b01。步驟二,F(xiàn)PGA檢測(cè)到CPU的寫(xiě)操作后,開(kāi)始接收CPU發(fā)來(lái)的數(shù)據(jù)并緩存;這里,一個(gè)時(shí)鐘周期可以傳輸128bit,而DDR控制器傳輸?shù)臄?shù)據(jù)長(zhǎng)度為64bit,如此,一個(gè)時(shí)鐘周期可以接收40*2=80bit長(zhǎng)度的KEY,又144*2/80=3. 6,即需要4個(gè)時(shí)鐘周期才能傳完2個(gè)長(zhǎng)度為 144bit 的 KEY。步驟三,F(xiàn)PGA解析接收到的數(shù)據(jù),得到長(zhǎng)度分別為144bit的KEYl和KEY2,其中,KEYl 的 KEY ID 為 1,KEY2 的 KEY ID 自動(dòng)加 1,為 2。步驟四,F(xiàn)PGA通過(guò)Instruction Bus把解析得到的查詢命令發(fā)送到TCAM,通過(guò)Data Bus將KEYl送往TCAM查詢,得到查詢結(jié)果Resultl ;然后再通過(guò)Data Bus把KEY2送往TCAM繼續(xù)查詢,得到結(jié)果Result2。FPGA將通過(guò)ResultBus接收到的查詢結(jié)果按照KEYID進(jìn)行對(duì)應(yīng)緩存。步驟五,CPU向FPGA發(fā)起寫(xiě)操作,向FPGA寫(xiě)入如圖3所示的數(shù)據(jù),其中Command為讀命令,KEY ID 為 1,KEY Num 為 2,Key Len 為 2’ bOl。步驟六,CPU向FPGA發(fā)起讀操作,F(xiàn)PGA檢測(cè)到讀操作后,根據(jù)步驟五中CPU寫(xiě)入的 數(shù)據(jù),將與寫(xiě)入的KEYl和KYE2分別相對(duì)應(yīng)的查詢結(jié)果輸出給CPU。由上述實(shí)施例可知,本發(fā)明中處理器可以通過(guò)對(duì)KEY ID,KEY Num和Key Len的控制,可以實(shí)現(xiàn)多關(guān)鍵字同時(shí)發(fā)送,多查詢結(jié)果同時(shí)返回,并且在不同線程發(fā)起查詢時(shí),根據(jù)KEY ID,接口轉(zhuǎn)換單元能夠保證返回給查詢發(fā)起方正確的查詢結(jié)果。圖4示出了本發(fā)明訪問(wèn)TCAM的裝置的結(jié)構(gòu),如圖4所示,所述裝置包括處理器單元、接口轉(zhuǎn)換單元;其中, 所述處理器單元,用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元發(fā)起查詢操作;具體為通過(guò)自身的DDR控制器子單元向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;這里,所述DDR控制器子單元具體可以包括DDRl控制器子單元、DDR2控制器子單元、DDR3控制器子單元、DDR4控制器子單元的一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種;進(jìn)一步地,當(dāng)TCAM和內(nèi)存同時(shí)掛載于內(nèi)存總線時(shí),處理器還可以通過(guò)DDR控制器子單元的片選(Chip Select, CS)信號(hào)對(duì)TCAM和內(nèi)存進(jìn)行區(qū)分。進(jìn)一步地,所述DDR控制器子單元的DQ信號(hào)線傳輸?shù)臄?shù)據(jù)寬度為64bit,一個(gè)時(shí)鐘周期可傳輸128bit。而通常TCAM可支持的查找關(guān)鍵字(KEY)長(zhǎng)度為72bit、144bit、288bit和576bit,如此,對(duì)于144bit及以上的KEY長(zhǎng)度,需要多個(gè)時(shí)鐘周期進(jìn)行傳輸。本發(fā)明中,DDR控制器子單元傳輸?shù)臄?shù)據(jù)的格式參照?qǐng)D3,該數(shù)據(jù)的總長(zhǎng)度為64bit,其中Command為命令字,具體可以參考現(xiàn)有TCAM的命令字,占用8個(gè)比特;KEY ID為查詢的關(guān)鍵字序列號(hào)(ID),占用8個(gè)比特;KEY Num為一次查詢的關(guān)鍵字個(gè)數(shù),占用6個(gè)比特;KEY Len為關(guān)鍵字長(zhǎng)度,占用2個(gè)比特,具體地,2’ b00表示關(guān)鍵字長(zhǎng)度為72bit ;2’ bOl表示關(guān)鍵字長(zhǎng)度為144bit ;2,blO表示關(guān)鍵字長(zhǎng)度為288bit ;2,bll表示關(guān)鍵字長(zhǎng)度為576bit。所述接口轉(zhuǎn)換單元,用于接收處理器單元發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM,并接收所述TCAM返回的查詢結(jié)果;這里,所述接口轉(zhuǎn)換單元可以通過(guò)FPGA進(jìn)行實(shí)現(xiàn);所述處理器單元可以通過(guò)使用DDR控制器子單元的DQ信號(hào)線和控制信號(hào)線,與FPGA進(jìn)行通信,減少FPGA的1/0接口的使用數(shù)量,簡(jiǎn)化操作。其中,所述處理器單元,具體用于通過(guò)自身的DDR控制器子單元向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;其中,所述DDR控制器子單元包括DDRl控制器子單元、DDR2控制器子單元、DDR3控制器子單元、DDR4控制器子單元一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種。其中,所述接口轉(zhuǎn)換單元,具體用于將解析得到的查詢命令通過(guò)Instruction Bus發(fā)送給TCAM,將關(guān)鍵字通過(guò)Data Bus發(fā)送給TCAM。其中,所述接口轉(zhuǎn)換單元,具體用于接收所述TCAM通過(guò)Result Bus返回的查詢結(jié)果并進(jìn)行緩存。進(jìn)一步地,所述處理器單元,還用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換單元,還用于檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給所述處理器單元。 圖5示出了本發(fā)明訪問(wèn)TCAM的裝置實(shí)施例的結(jié)構(gòu),結(jié)合圖4和圖5可知,所述處理器單元可以具體為CPU,所述DDR控制器子單元可以為所述CPU中的DDR控制器;所述接口轉(zhuǎn)換單元為FPGA實(shí)現(xiàn),與FPGA相連的為將要訪問(wèn)的TCAM ;這里,所述CPU、FPGA與上述訪問(wèn)TCAM的裝置的工作過(guò)程基本相同,不再贅述。其中,所述FPGA進(jìn)一步包括與DDR控制器連接的DDR接口、先入先出(First InFirst Out,F(xiàn)IFO)緩存單元以及與TCAM連接的TCAM接口 ;其中,所述CPU通過(guò)DDR控制器向FPGA寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;所述FPGA通過(guò)自身的DDR接口接收CPU發(fā)來(lái)的數(shù)據(jù),并發(fā)送至FIFO緩存單元進(jìn)行緩存后輸出給TCAM接口 ;所述TCAM接口將解析得到的查詢命令通過(guò)Instruction Bus發(fā)送給TCAM,將關(guān)鍵字通過(guò)Data Bus發(fā)送給TCAM,并通過(guò)Result Bus接收TCAM返回的查詢結(jié)果,進(jìn)一步地,TCAM接口還會(huì)發(fā)送Control命令給TCAM以保證正常通信。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種訪問(wèn)三態(tài)內(nèi)容尋址存儲(chǔ)器TCAM的方法,其特征在于,所述方法包括處理器通過(guò)自身的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作;所述接口轉(zhuǎn)換單元接收處理器發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給 TCAM ;TCAM根據(jù)接收到的數(shù)據(jù)進(jìn)行查詢并返回查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作為所述處理器通過(guò)自身的DDR控制器向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;其中,所述DDR控制器包括DDRl控制器、DDR2控制器、DDR3控制器、DDR4控制器一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接口轉(zhuǎn)換單元將解析得到的數(shù)據(jù)發(fā)送給TCAM為所述接口轉(zhuǎn)換單元將解析得到的查詢命令通過(guò)命令總線發(fā)送給TCAM,將關(guān)鍵字通過(guò)數(shù)據(jù)總線發(fā)送給TCAM。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述TCAM返回查詢結(jié)果為T(mén)CAM通過(guò)結(jié)果總線將查詢結(jié)果返回給接口轉(zhuǎn)換單元,所述接口轉(zhuǎn)換單元將查詢結(jié)果進(jìn)行緩存。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于,所述方法還包括所述處理器通過(guò)自身的DDR控制器向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換單元檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給處理器。
6.一種訪問(wèn)TCAM的裝置,其特征在于,所述裝置包括處理器單元、接口轉(zhuǎn)換單元;其中,所述處理器單元,用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元發(fā)起查詢操作; 所述接口轉(zhuǎn)換單元,用于接收處理器單元發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM,并接收所述TCAM返回的查詢結(jié)果。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述處理器單元,具體用于通過(guò)自身的 DDR控制器子單元向所述接口轉(zhuǎn)換單元寫(xiě)入查詢命令、關(guān)鍵字及其相關(guān)信息;其中,所述 DDR控制器子單元包括DDRl控制器子單元、DDR2控制器子單元、DDR3控制器子單元、DDR4 控制器子單元一種或多種;所述關(guān)鍵字相關(guān)信息包括關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度的一種或多種。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述接口轉(zhuǎn)換單元,具體用于將解析得到的查詢命令通過(guò)命令總線發(fā)送給TCAM,將關(guān)鍵字通過(guò)數(shù)據(jù)總線發(fā)送給TCAM。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述接口轉(zhuǎn)換單元,具體用于接收所述 TCAM通過(guò)結(jié)果總線返回的查詢結(jié)果并進(jìn)行緩存。
10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的裝置,其特征在于,所述處理器單元,還用于通過(guò)自身的DDR控制器子單元向接口轉(zhuǎn)換單元寫(xiě)入讀命令、關(guān)鍵字ID、關(guān)鍵字個(gè)數(shù)、關(guān)鍵字長(zhǎng)度后,向所述接口轉(zhuǎn)換單元發(fā)起讀操作;所述接口轉(zhuǎn)換 單元,還用于檢測(cè)到所述讀操作后,將與所述關(guān)鍵字ID對(duì)應(yīng)的查詢結(jié)果返回給所述處理器單元。
全文摘要
本發(fā)明提供了一種訪問(wèn)TCAM的方法及裝置,該方法包括處理器通過(guò)自身的雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR控制器向接口轉(zhuǎn)換單元發(fā)起查詢操作;所述接口轉(zhuǎn)換單元接收處理器發(fā)來(lái)的查詢數(shù)據(jù)并解析,將解析得到的數(shù)據(jù)發(fā)送給TCAM;TCAM根據(jù)接收到的數(shù)據(jù)進(jìn)行查詢并返回查詢結(jié)果。本發(fā)明中處理器通過(guò)自身的DDR控制器與接口轉(zhuǎn)換單元進(jìn)行通信,實(shí)現(xiàn)對(duì)TCAM的訪問(wèn),適用于不同接口的TCAM,擴(kuò)大了TCAM的應(yīng)用范圍,進(jìn)而滿足路由器轉(zhuǎn)發(fā)的速度要求。
文檔編號(hào)H04L12/741GK103023782SQ20121047930
公開(kāi)日2013年4月3日 申請(qǐng)日期2012年11月22日 優(yōu)先權(quán)日2012年11月22日
發(fā)明者陳岳林, 徐洋 申請(qǐng)人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司