專利名稱:一種ram、網(wǎng)絡(luò)處理系統(tǒng)和一種ram查表方法
技術(shù)領(lǐng)域:
本發(fā)明設(shè)計通信技術(shù)領(lǐng)域、尤其涉及一種RAM、網(wǎng)絡(luò)處理系統(tǒng)和一種RAM查表方法。
背景技術(shù):
現(xiàn)今網(wǎng)絡(luò)發(fā)展速度驚人,網(wǎng)絡(luò)流量的增長及新業(yè)務(wù)的出現(xiàn),需要網(wǎng)絡(luò)設(shè)備具有線速和靈活的處理能力。網(wǎng)絡(luò)處理器憑借其高速處理及靈活的可編程性,已成為當(dāng)今網(wǎng)絡(luò)中數(shù)據(jù)處理的有效解決方案。但是目前網(wǎng)絡(luò)處理器轉(zhuǎn)發(fā)速率的增長極其驚人,目前主流網(wǎng)絡(luò)處理器達到了IOOGbps (包速率150Mpps),很顯然現(xiàn)在RAM (random access memory隨機存儲器)接口帶寬增長的速率遠遠跟不上網(wǎng)絡(luò)處理器轉(zhuǎn)發(fā)速率的增長,所以如何提高RAM的查找速率是亟需解決的問題。
發(fā)明內(nèi)容
本發(fā)明要解決的主要技術(shù)問題是,提供一種RAM、網(wǎng)絡(luò)處理系統(tǒng)和一種RAM查表方法,解決了 RAM查表效率低的問題。為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案如下一種RAM查表方法,包括以下步驟網(wǎng)絡(luò)處理器接收來自各物理接口的業(yè)務(wù)表訪問報文;所述網(wǎng)絡(luò)處理器解析所述業(yè)務(wù)表訪問報文,獲取所述業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別信息;根據(jù)所述業(yè)務(wù)表識別信息為所述業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址;所述虛擬內(nèi)存庫地址為RAM劃分的至少兩個虛擬內(nèi)存庫中,所對應(yīng)的其中一個含有需要查找的業(yè)務(wù)表的虛擬內(nèi)存庫地址;在所述RAM的至少兩個虛擬內(nèi)存庫中,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi);根據(jù)所述虛擬內(nèi)存庫地址訪問對應(yīng)的虛擬內(nèi)存庫,查找對應(yīng)的業(yè)務(wù)表。進一步地,分配所述虛擬內(nèi)存庫地址信息的具體過程為所述網(wǎng)絡(luò)處理器根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成虛擬內(nèi)存庫地址信息。更進一步地,在所述RAM的至少兩個虛擬內(nèi)存庫中,所有所述虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表。更進一步地,分配所述虛擬內(nèi)存庫地址信息的具體過程為所述網(wǎng)絡(luò)處理器根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定所述業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。更進一步地,在獲得所述業(yè)務(wù)表訪問報文對應(yīng)的所述虛擬內(nèi)存庫地址后,還包括根據(jù)得到的所述虛擬內(nèi)存庫地址構(gòu)造查表鍵值,根據(jù)所述鍵值在對應(yīng)的所述虛擬內(nèi)存庫中查找對應(yīng)的業(yè)務(wù)表。更進一步地,所述RAM包括SRAM、TCAM和SDRAM中的一種。本發(fā)明還提供一種RAM,所述RAM中包括至少兩個虛擬內(nèi)存庫,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi)。進一步地,所述RAM的至少兩個虛擬內(nèi)存庫中,所有所述虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表。本發(fā)明還提供一種網(wǎng)絡(luò)處理系統(tǒng),包括網(wǎng)絡(luò)處理器和RAM ;所述網(wǎng)絡(luò)處理器包括接收模塊、解析模塊、分配模塊、查找模塊和處理模塊;所述接收模塊用于接收來自各物理接口的業(yè)務(wù)表訪問報文;所述解析模塊用于解析所述接收模塊接收的所述業(yè)務(wù)表訪問報文,獲取所述業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別信息;所述分配模塊用于根據(jù)所述業(yè)務(wù)表識別信息為所述業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址,該虛擬內(nèi)存庫地址所對應(yīng)的虛擬內(nèi)存庫中含有需要查找的業(yè)務(wù)表;所述查找模塊用于根據(jù)得到的所述虛擬內(nèi)存庫地址查找RAM中對應(yīng)的虛擬內(nèi)存庫中的業(yè)務(wù)表,并向處理模塊轉(zhuǎn)發(fā)返回的查找結(jié)果;所述處理模塊用于根據(jù)返回的查找結(jié)果進行相應(yīng)的業(yè)務(wù)處理;所述RAM包括至少兩個虛擬內(nèi)存庫,且在所述RAM的至少兩個虛擬內(nèi)存庫中,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi)。進一步地,所述分配模塊還包括選擇單元;所述選擇單元用于根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成相應(yīng)的內(nèi)存庫地址信息。更進一步地,所述分配模塊還包括哈希計算單元;所述哈希計算單元用于當(dāng)所述RAM中的虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表時,根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定所述業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。更進一步地,其特征在于,還包括構(gòu)造模塊;所述構(gòu)造模塊用于所述分配模塊獲得所述業(yè)務(wù)表訪問報文對應(yīng)的所述虛擬內(nèi)存庫地址后,根據(jù)得到的所述虛擬內(nèi)存庫地址構(gòu)造查表鍵值;所述RAM根據(jù)所述鍵值在對應(yīng)的所述虛擬內(nèi)存庫中查找對應(yīng)的業(yè)務(wù)表。更進一步地,所述RAM包括SRAM、TCAM和SDRAM中的一種。本發(fā)明的有益效果是提供一種RAM、網(wǎng)絡(luò)處理系統(tǒng)和一種RAM查表方法,通過將RAM劃分為至少兩個虛擬內(nèi)存庫,且將同一個業(yè)務(wù)表存儲于其中的至少兩個虛擬內(nèi)存庫中,并通過網(wǎng)絡(luò)存儲器的計算確定適合的虛擬內(nèi)存庫進行訪問,在提高RAM的查表速率的同時,有效的減小了 RAM的訪問流量壓力,也使網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能得到提高。同時,還可以在RAM的虛擬內(nèi)存庫中存儲相同的業(yè)務(wù)表,最大限度上提升RAM的查表速率,并且網(wǎng)絡(luò)處理器可以使用哈希算法來計算虛擬內(nèi)存庫地址信息,不僅使計算過程更為簡便,也能更為有效的找到適合的虛擬內(nèi)存庫,進一步提高查表效率以及網(wǎng)絡(luò)轉(zhuǎn)發(fā)性倉泛。
圖1為本發(fā)明一實施例中SDRAM結(jié)構(gòu)示意圖2為本發(fā)明一實施例中網(wǎng)絡(luò)處理器結(jié)構(gòu)示意圖;圖3為本發(fā)明又一實施例中網(wǎng)絡(luò)處理器結(jié)構(gòu)示意圖;圖4為本發(fā)明一實施例中RAM查表方法流程圖。
具體實施例方式本發(fā)明的整體構(gòu)思為通過將RAM劃分為多個虛擬內(nèi)存區(qū),并在其中至少兩個中存儲相同的業(yè)務(wù)表,當(dāng)業(yè)務(wù)表訪問報文需要訪問相應(yīng)的業(yè)務(wù)表時,業(yè)務(wù)處理器根據(jù)業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息進行相應(yīng)的計算,從而獲得適合的虛擬內(nèi)存庫地址,以供網(wǎng)絡(luò)處理器進行訪問。而在本發(fā)明中所提及的RAM,可以為多種不同的存儲器類型,如SRAM(Static RAM 靜態(tài)隨機存儲器)、TCAM(ternary content addressable memory 三態(tài)內(nèi)容尋址存儲器)、SDRAM (Synchronous Dynamic RAM同步動態(tài)隨機存儲器)等都可以通過本發(fā)明中的查表方法提高查表效率。為使本發(fā)明技術(shù)方案和優(yōu)點更加清楚,下面通過具體實施方式
結(jié)合附圖對本發(fā)明作進一步詳細說明。在本發(fā)明中,雖然RAM可以為多種存儲器類型,但SDRAM由于自身結(jié)構(gòu)限制,其查表速率相對較慢,本申請中的查表方法應(yīng)用在SDRAM上能獲得較好的效果,所以在本實施例中以RAM為SDRAM為例對本申請的技術(shù)方案進行說明。請參考圖1,在本實施例中,可以將SDRAM分為至少兩個虛擬內(nèi)存庫,為了保持整個SDRAM的查表速率,較優(yōu)的,各個虛擬內(nèi)存庫的容量可以采用均分的方式進行分配。在本實施例中,將SDRAM分為N個虛擬內(nèi)存庫,而為了實現(xiàn)提高查表速率,可以將一個業(yè)務(wù)表分別存儲在至少兩個虛擬內(nèi)存庫中;而一種較優(yōu)的存儲方式為,在所有劃分的虛擬內(nèi)存庫中都存儲相同的業(yè)務(wù)表,以達到最大限度提升查表效率的目的。而虛擬內(nèi)存庫的劃分個數(shù)可以為任意多個,其中較優(yōu)的劃分個數(shù)N的計算方式N=F2/F1,其中Fl為單個虛擬內(nèi)存庫的查表頻率,F(xiàn)2為實際需要業(yè)務(wù)表的查表頻率。請參考圖2和圖3,在本實施例中還提供一種網(wǎng)絡(luò)處理系統(tǒng),其包括網(wǎng)絡(luò)處理器和RAM ;其中網(wǎng)絡(luò)處理器包括接收模塊、解析模塊、分配模塊、查找模塊和處理模塊。其中,接收模塊主要用于接收來自各物理接口的業(yè)務(wù)表訪問報文;解析模塊用于解析所述接收模塊接收的業(yè)務(wù)表訪問報文,獲取業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別信息;分配模塊用于根據(jù)所述業(yè)務(wù)表識別信息為所述業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址;查找模塊用于根據(jù)得到的所述虛擬內(nèi)存庫地址查找RAM中對應(yīng)的虛擬內(nèi)存庫中的業(yè)務(wù)表,并向處理模塊轉(zhuǎn)發(fā)返回的查找結(jié)果;處理模塊用于根據(jù)返回的查找結(jié)果進行相應(yīng)的業(yè)務(wù)處理。在本實施例中,其分配模塊還包括選擇單元;該選擇單元主要用于根據(jù)業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成相應(yīng)的內(nèi)存庫地址信息。在本實施例中,還提供另一種網(wǎng)絡(luò)處理器,其包括接收模塊、解析模塊、分配模塊、查找模塊和處理模塊;且各模塊的作用也與上述實施例中相同,不同的是本實施例中的分配模塊還包含哈希計算單元;該哈希計算單元用于當(dāng)SDRAM中的虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表時,根據(jù)業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。請參考圖4,下面結(jié)合RAM結(jié)構(gòu)以及網(wǎng)絡(luò)處理器的各個模塊作用對本申請中RAM查表方法進行詳細說明。本實施例中的RAM查表方法包括以下步驟步驟400 :網(wǎng)絡(luò)處理器接收來自各物理接口的業(yè)務(wù)表訪問報文;進入步驟402 ;在該步驟中,網(wǎng)絡(luò)處理器的接收模塊主要負責(zé)接收來自各物理接口的業(yè)務(wù)表訪問報文。步驟402 網(wǎng)絡(luò)處理器解析業(yè)務(wù)表訪問報文,獲取業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別信息;進入步驟404 ;在本步驟中,解析模塊負責(zé)解析接收到的業(yè)務(wù)表訪問報文,并獲取其中的業(yè)務(wù)表識別信息,獲取的業(yè)務(wù)表識別信息主要為業(yè)務(wù)表訪問報文的MAC地址信息或者IP地址信息
等信息。步驟404 :根據(jù)業(yè)務(wù)表識別信息為業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址;進入步驟 406 ;在本步驟中,主要包括以下情況,當(dāng)RAM的所有虛擬內(nèi)存庫中并未存儲同一個業(yè)務(wù)表時,分配模塊中的選擇單元則負責(zé)根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成內(nèi)存庫地址信息。而當(dāng)RAM中的虛擬內(nèi)存庫都包含有同一個業(yè)務(wù)表時,分配模塊中的哈希計算單元則根據(jù)業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。步驟406 :根據(jù)得到的虛擬內(nèi)存庫地址構(gòu)造查表鍵值;進入步驟408 ;在本步驟中,構(gòu)造模塊負責(zé)根據(jù)分配模塊計算得到的虛擬內(nèi)存庫地址構(gòu)造相應(yīng)的查表鍵值,即將虛擬內(nèi)存庫地址編輯進對應(yīng)的查表鍵值中。步驟408 :根據(jù)查表鍵值在對應(yīng)的虛擬內(nèi)存庫中查找對應(yīng)的業(yè)務(wù);進入步驟410 ;在該步驟中,查找模塊負責(zé)根據(jù)相應(yīng)的查表鍵值查找RAM中對應(yīng)的虛擬內(nèi)存庫中的業(yè)務(wù)表,并將返回的查表結(jié)果轉(zhuǎn)發(fā)給處理模塊。步驟410 :根據(jù)返回的查表結(jié)果進行相應(yīng)的業(yè)務(wù)處理。在本步驟中,處理模塊根據(jù)返回的查表結(jié)果進行相應(yīng)的業(yè)務(wù)處理。以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種RAM查表方法,其特征在于,包括以下步驟 網(wǎng)絡(luò)處理器接收來自各物理接口的業(yè)務(wù)表訪問報文; 所述網(wǎng)絡(luò)處理器解析所述業(yè)務(wù)表訪問報文,獲取所述業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別息; 根據(jù)所述業(yè)務(wù)表識別信息為所述業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址;所述虛擬內(nèi)存庫地址為RAM劃分的至少兩個虛擬內(nèi)存庫中,所對應(yīng)的其中一個含有需要查找的業(yè)務(wù)表的虛擬內(nèi)存庫地址;在所述RAM的至少兩個虛擬內(nèi)存庫中,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi); 根據(jù)所述虛擬內(nèi)存庫地址訪問對應(yīng)的虛擬內(nèi)存庫,查找對應(yīng)的業(yè)務(wù)表。
2.如權(quán)利要求1所述的RAM查表方法,其特征在于,分配所述虛擬內(nèi)存庫地址信息的具體過程為所述網(wǎng)絡(luò)處理器根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成虛擬內(nèi)存庫地址信息。
3.如權(quán)利要求1所述的RAM查表方法,其特征在于,在所述RAM的至少兩個虛擬內(nèi)存庫中,所有所述虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表。
4.如權(quán)利要求3所述的RAM查表方法,其特征在于,分配所述虛擬內(nèi)存庫地址信息的具體過程為所述網(wǎng)絡(luò)處理器根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定所述業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。
5.如權(quán)利要求1-4中任一項所述的RAM查表方法,其特征在于,在獲得所述業(yè)務(wù)表訪問報文對應(yīng)的所述虛擬內(nèi)存庫地址后,還包括根據(jù)得到的所述虛擬內(nèi)存庫地址構(gòu)造查表鍵值,根據(jù)所述鍵值在對應(yīng)的所述虛擬內(nèi)存庫中查找對應(yīng)的業(yè)務(wù)表。
6.如權(quán)利要求1-4中任一項所述的RAM查表方法,其特征在于,所述RAM包括SRAM、TCAM和SDRAM中的一種。
7.一種RAM,其特征在于,所述RAM中包括至少兩個虛擬內(nèi)存庫,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi)。
8.如權(quán)利要求7所述的RAM,其特征在于,所述RAM的至少兩個虛擬內(nèi)存庫中,所有所述虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表。
9.一種網(wǎng)絡(luò)處理系統(tǒng),其特征在于,包括網(wǎng)絡(luò)處理器和RAM ; 所述網(wǎng)絡(luò)處理器包括接收模塊、解析模塊、分配模塊、查找模塊和處理模塊; 所述接收模塊用于接收來自各物理接口的業(yè)務(wù)表訪問報文; 所述解析模塊用于解析所述接收模塊接收的所述業(yè)務(wù)表訪問報文,獲取所述業(yè)務(wù)表訪問報文所訪問的業(yè)務(wù)表識別信息; 所述分配模塊用于根據(jù)所述業(yè)務(wù)表識別信息為所述業(yè)務(wù)表訪問報文分配虛擬內(nèi)存庫地址,該虛擬內(nèi)存庫地址所對應(yīng)的虛擬內(nèi)存庫中含有需要查找的業(yè)務(wù)表; 所述查找模塊用于根據(jù)得到的所述虛擬內(nèi)存庫地址查找RAM中對應(yīng)的虛擬內(nèi)存庫中的業(yè)務(wù)表,并向處理模塊轉(zhuǎn)發(fā)返回的查找結(jié)果; 所述處理模塊用于根據(jù)返回的查找結(jié)果進行相應(yīng)的業(yè)務(wù)處理; 所述RAM包括至少兩個虛擬內(nèi)存庫,且在所述RAM的至少兩個虛擬內(nèi)存庫中,同一個業(yè)務(wù)表存儲于其中至少兩個所述虛擬內(nèi)存庫內(nèi)。
10.如權(quán)利要求9所述的網(wǎng)絡(luò)處理系統(tǒng),其特征在于,所述分配模塊還包括選擇單元;所述選擇單元用于根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息查詢含有其所要訪問業(yè)務(wù)表的虛擬內(nèi)存庫,并從中選擇當(dāng)前流量最低的一個虛擬內(nèi)存庫,生成相應(yīng)的內(nèi)存庫地址信息。
11.如權(quán)利要求9所述的網(wǎng)絡(luò)處理系統(tǒng),其特征在于,所述分配模塊還包括哈希計算單元;所述哈希計算單元用于當(dāng)所述RAM中的虛擬內(nèi)存庫都存儲有相同的業(yè)務(wù)表時,根據(jù)所述業(yè)務(wù)表訪問報文的業(yè)務(wù)表識別信息,通過哈希運算確定所述業(yè)務(wù)表訪問報文所對應(yīng)的虛擬內(nèi)存庫地址。
12.如權(quán)利要求9-11中任一項所述的網(wǎng)絡(luò)處理系統(tǒng),其特征在于,還包括構(gòu)造模塊;所述構(gòu)造模塊用于所述分配模塊獲得所述業(yè)務(wù)表訪問報文對應(yīng)的所述虛擬內(nèi)存庫地址后,根據(jù)得到的所述虛擬內(nèi)存庫地址構(gòu)造查表鍵值;所述RAM根據(jù)所述鍵值在對應(yīng)的所述虛擬內(nèi)存庫中查找對應(yīng)的業(yè)務(wù)表。
13.如權(quán)利要求9-11中任一項所述的網(wǎng)絡(luò)處理系統(tǒng),其特征在于,所述RAM包括SRAM、TCAM 和 SDRAM 中的一種。
全文摘要
本發(fā)明提供一種RAM、網(wǎng)絡(luò)處理系統(tǒng)和一種RAM查表方法,通過將RAM劃分為至少兩個虛擬內(nèi)存庫,且將同一個業(yè)務(wù)表存儲于其中的至少兩個虛擬內(nèi)存庫中,并通過網(wǎng)絡(luò)存儲器的計算確定適合的虛擬內(nèi)存庫進行訪問,在提高RAM的查表速率的同時,有效的減小了RAM的訪問流量壓力,也使網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能得到提高。同時,還可以在RAM的虛擬內(nèi)存庫中存儲相同的業(yè)務(wù)表,最大限度上提升RAM的查表速率,并且網(wǎng)絡(luò)處理器可以使用哈希算法來計算虛擬內(nèi)存庫地址信息,不僅使計算過程更為簡便,也能更為有效的找到適合的虛擬內(nèi)存庫,進一步提高查表效率以及網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能。
文檔編號H04L12/70GK103064901SQ20121054985
公開日2013年4月24日 申請日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者姜海明 申請人:中興通訊股份有限公司