專利名稱:多哈希函數的虛通道標識/虛通路標識的查找方法
所屬領域本發明涉及一種多哈希(HASH)函數的虛通道標識(VPI)/虛通路標識(VCI)的查找方法,確切地說,涉及一種利用RAM實現低成本的高速查找方法,屬于數據網絡通信的技術領域。
(2)原有的哈希(HASH)技術用于查找的哈希技術主要有鏈表法。哈希鏈表法的原理是參見圖2,將異步傳輸模式ATM地址的虛通道標識VPI/虛通路標識VCI進行哈希運算,求出更小地址范圍的哈希地址(0-14位),用于查找哈希表,得到指向哈希鏈表的指針,再使用該指針查找哈希鏈表,如果VPI/VCI不匹配,則用下一鏈表指針去查找下一級鏈表;如果VPI/VCI匹配,則用存儲表的指針去讀取所需的表項內容。如果查找到鏈表的尾(即下一鏈表指針為空)都沒有匹配,則說明該哈希表里沒有該VPI/VCI對應的存儲內容,說明該次查找失敗。
(3)采用商用的內容可尋址存儲器(CAM)芯片。
采用上述三種現有技術的缺點是1、分段完全匹配查找的優點是查找時間固定,地址沒有沖突,即對任何一個關鍵字都能找到唯一的記錄;其缺點是存儲空間利用率低,需要較大的RAM,這樣勢必增加產品的成本。2、鏈表法主要是從軟件借鑒過來,雖然該技術已經比較成熟,但對硬件實現過程來說,這種方式顯得過于復雜,并且這種方法查找速度不高。3、采用商用的CAM芯片,一是CAM芯片本身的價格成本太高,二是外接CAM芯片需要增加I/O管腳,這樣就需增加印刷電路板的面積和布線難度,無疑又會增加生產成本。
本發明的目的是這樣實現的一種多哈希函數的虛通道標識(VPI)/虛通路標識(VCI)的查找方法,其特征在于該查找方法是在再哈希技術的基礎上,將源VPI/VCI的地址信息分為兩部分,按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,每個異或結果分別與一哈希函數相對應;再將所得到的這些不同的異或結果分別作為地址依次訪問對應的哈希表,查找匹配的VPI/VCI,即可獲取所需的轉發路由、交換標識類的相應存儲信息。
該查找方法采用各哈希表的存儲空間呈逐級縮小的多級哈希表結構;且對每個哈希函數的查找匹配操作是采取流水線式的依次查找方式。
所述的多種劃分方式的原則是盡可能地使按位異或的各個結果呈離散狀。
該查找方法包括有下列操作步驟(1)采用再哈希技術,將源VPI/VCI的地址信息分為兩部分按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,以解決不同源地址的哈希地址沖突問題,且每個異或結果分別與一不同的哈希函數相對應;(2)再分別將所得到的這些不同的異或結果作為地址偏移,依次加上各哈希表的基地址后作為哈希地址訪問對應的哈希表,查找到匹配的VPI/VCI后,獲取相應的轉發路由、交換標簽類信息的存儲內容;(3)建立多級哈希表的結構,且該多級哈希表的存儲空間大小是逐級縮小的,并按查找次序劃分該多級哈希表的優先等級,以減小存儲器容量,提高利用率;(4)對每個異或結果依次在各個不同哈希表里進行流水線式地查找匹配訪問存儲器的操作,一旦查找到匹配的VPI/VCI,立即返回結果。
在第(3)步驟中,可以利用相應的逐級減少的不同位數的低位地址作為地址偏移來查找不同等級的哈希表存儲空間。
在第(3)步驟中,建立的多級哈希表結構通常不超過4級。
在第(4)步驟中,對每個哈希表進行的查找操作是完全相同的。
本發明的特點是在再哈希技術的基礎上,采用多級哈希表的結構,將各哈希表的存儲空間逐級縮小,從而提高存儲器的利用率,并且,對每個哈希函數的查找匹配操作采取流水線的方式,以提高查找的速度。其優點是與現有的幾種硬件查找技術相比較,本發明的硬件電路相對比較簡單,所需要的存儲器容量小,實現的成本比較低廉。
圖2是現有技術中使用的鏈表哈希法查找方法的示意圖。
圖3是本發明使用的多級哈希表結構示意。
參見圖3,本發明是一種多哈希函數的虛通道標識(VPI)/虛通路標識(VCI)的查找方法,該查找方法包括有下列操作步驟首先采用再哈希技術,將源VPI/VCI的地址信息分為兩部分按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,以解決不同源地址的哈希地址沖突問題,且每個異或結果分別與一不同的哈希函數相對應。這里所述的多種劃分方式的原則是盡可能地使按位異或的各個結果呈離散狀,下面例舉本發明實施例所使用的4種劃分方式,但是并不僅僅局限于這四種方式(1){VPI[110],VCI[1514]}與VCI[130]。
(2){VPI
,VPI[1],VPI[2],VPI[3],VPI[4],VPI[5],VPI[6],VPI[7],VCI[1513]}與VCI[130]。
(3){VCI[1514],VPI[110]}與{VCI
,VCI[1],VCI[2],VCI[3],VCI[4],VCI[5],VCI[6],VCI[7],VCI[8],VCI[9],VCI[10],VCI[11],VCI[12],VCI[13]}。
(4){VPI[10],VPI[8],VPI[6],VPI[4],VPI[2],VPI
,VCI[14],VCI[12],VCI[10],VCI[8],VCI[6],VCI[4],VCI[2],VCI
}與{VCI[1],VCI[3],VCI[5],VCI[7],VCI[9],VCI[11],VCI[13],VCI[15],VPI[1],VPI[3],VPI[5],VPI[7],VPI[9],VPI[11]}。
在圖3所示的實施例中,是采用4種哈希算法(即圖3中所示的哈希算法1-哈希算法4)對28位的VPI/VCI分別進行運算得到4個n位寬的運算結果(例如n為14),這些結果分別為X1、X2、X3、X4。
接著,再分別將所得到的這些不同的異或運算結果X1、X2、X3、X4作為地址偏移,依次加上各哈希表的基地址后得到的結果作為哈希地址訪問對應的哈希表,查找到匹配的VPI/VCI后,就可獲取相應的存儲內容;這些存儲內容一般為轉發路由、交換標簽類的信息。在圖3中各個經過哈希運算得到的運算結果X1、X2、X3、X4就是作為偏移地址,再分別加上其對應的各哈希表的基地址后,得到16個哈希地址H1-H16,然后依次用這16個地址去訪問存儲器尋找匹配的VPI/VCI,一旦查找到匹配的VPI/VCI,就獲取相應的存儲內容,表示查找結束。
最后建立多級哈希表的結構,以進一步提高處理沖突的性能;而且,由于各哈希表的沖突概率逐級縮小,該多級哈希表的存儲空間大小也是逐級縮小的,并按查找次序劃分該多級哈希表的優先等級,可以利用哈希的異或結果的低位作為地址偏移來壓縮各級哈希表的存儲空間,以減小存儲器容量和提高利用率;本發明建立的多級哈希表結構通常不超過4級。
下面結合圖3所示的一個實施例具體說明本發明的工作原理設源地址為VPI/VCI,對VPI/VCI按照四種不同的方式分別劃分為兩部分,這兩部分分別異或后得到4個不同的異或結果,與該4個不同的異或結果所對應的4個不同函數分別為f1(vpi,vci),f2(vpi,vci),f3(vpi,vci),f4(vpi,vci),則該4個異或結果(即哈希地址)可以分別表示為X1=f1(vpi,vci);X2=f2(vpi,vci);X3=f3(vpi,vci);X4=f4(vpi,vci);本發明的該實施例技術方案設計支持8k個鏈接,一共設有4個哈希表,參見圖3所示,按查找的優先次序分為1~4級哈希表1、哈希表2、哈希表3和哈希表4,其存儲容量大小分別為8K、4K、2K、2K。對每個哈希表的查找操作是完全相同的,都是用上述4個不同哈希函數的運算結果Xn加上各哈希表的基地址后得到的地址去查找匹配的VPI/VCI。也就是首先依次用4個不同的地址H1、H2、H3、H4對哈希表1進行查找,如果四次查找都沒有找到匹配的VPI/VCI,再取另外4個不同的地址H5、H6、H7、H8對哈希表2進行順序查找,如果同樣沒有找到匹配的VPI/VCI,再取4個不同的地址H9、H10、H11、H12對哈希表3進行查找,如此類推,如果上述4個表都沒有找到匹配的VPI/VCI,則表明該次查找VPI/VCI的鏈接失敗。實際上,經過軟件仿真和系統運行證明,經過4級哈希表仍然沒有找到匹配的VPI/VCI而發生沖突的概率非常低,足以滿足要求。
為了提高查找匹配速度,該實施例在對給定的VPI/VCI使用4個哈希地址訪問4個哈希表的查找匹配過程中,采用流水線的方式訪問存儲器,一旦查找到匹配的VPI/VCI立即返回結果。
本發明的查找方法已經在計算機中進行仿真、模擬等多次試驗,并且在交換介入產品線的有關設備的項目中使用試驗性實施,經多次實施試驗,該方法可靠可行,實現了發明目的。
權利要求
1.一種多哈希函數的虛通道標識(VPI)/虛通路標識(VCI)的查找方法,其特征在于該查找方法是在再哈希技術的基礎上,將源VPI/VCI的地址信息分為兩部分,按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,每個異或結果分別與一哈希函數相對應;再將所得到的這些不同的異或結果分別作為地址依次訪問對應的哈希表,查找匹配的VPI/VCI,即可獲取所需的轉發路由、交換標識類的相應存儲信息。
2.根據權利要求1所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于該查找方法采用各哈希表的存儲空間呈逐級縮小的多級哈希表結構;且對每個哈希函數的查找匹配操作是采取流水線式的依次查找方式。
3.根據權利要求1所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于所述的多種劃分方式的原則是盡可能地使按位異或的各個結果呈離散狀。
4.根據權利要求1所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于該查找方法包括有下列操作步驟(1)采用再哈希技術,將源VPI/VCI的地址信息分為兩部分按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,且每個異或結果分別與一不同的哈希函數相對應;(2)再分別將所得到的這些不同的異或結果作為地址偏移,依次加上各哈希表的基地址后作為哈希地址訪問對應的哈希表,查找到匹配的VPI/VCI后,獲取相應的轉發路由、交換標簽類信息的存儲內容;(3)建立多級哈希表的結構,且該多級哈希表的存儲空間大小是逐級縮小的,并按查找次序劃分該多級哈希表的優先等級;(4)對每個異或結果依次在各個不同哈希表里進行流水線式地查找匹配訪問存儲器的操作,一旦查找到匹配的VPI/VCI,立即返回結果。
5.根據權利要求4所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于在第(3)步驟中,可以利用相應的逐級減少的不同位數的低位地址作為地址偏移來查找不同等級的哈希表存儲空間。
6.根據權利要求4所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于在第(3)步驟中,建立的多級哈希表結構通常不超過4級。
7.根據權利要求4所述的多哈希函數的虛通道標識/虛通路標識的查找方法,其特征在于在第(4)步驟中,對每個哈希表進行的查找操作是完全相同的。
全文摘要
一種多哈希函數的虛通道標識/虛通路標識的查找方法,是在再哈希技術的基礎上,將源VPI/VCI的地址信息分為兩部分按照多種不同劃分方式分別進行按位異或,得到若干不同的異或結果,以解決不同源地址的哈希地址沖突問題,且每個異或結果分別與一哈希函數相對應;再將所得到的這些不同的異或結果分別作為地址訪問內存,獲取相應的存儲信息;并采用多級哈希表結構,將各哈希表的存儲空間逐級縮小,提高存儲器的利用率;且對每個哈希函數的查找匹配操作采取流水線的方式,以提高查找速度。本發明的優點是與現有的幾種硬件查找技術相比較,其硬件電路相對比較簡單,所需要的存儲器容量小,實現的成本比較低廉。
文檔編號H04Q3/00GK1437357SQ0210391
公開日2003年8月20日 申請日期2002年2月7日 優先權日2002年2月7日
發明者陳如陽 申請人:華為技術有限公司