两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法及其系統(tǒng)的制作方法

文檔序號:7685119閱讀:136來源:國知局
專利名稱:三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及到網(wǎng)絡(luò)技術(shù)領(lǐng)域,特指一種三態(tài)內(nèi)容可尋址存儲器條目免排序存儲 方法及其系統(tǒng)。
背景技術(shù)
隨著Intemet的高速發(fā)展,網(wǎng)絡(luò)中節(jié)點數(shù)目大幅度增長,路由器接口速率也越來越高, 最壞情況下(以最短IP包為40字節(jié)計,100%流量負(fù)荷),10Gbps接口速率下處理能力要 求達到31Mpps (packet per second),而40Gbps接口速率下的處理能力則要達到125Mpps。 而隨著各種新的網(wǎng)絡(luò)應(yīng)用的涌現(xiàn),網(wǎng)絡(luò)高質(zhì)量服務(wù)要求越來越復(fù)雜,報文分類技術(shù)也面 臨著更大的挑戰(zhàn),傳統(tǒng)的基于軟件的路由查找和分類方法由于需要多次的內(nèi)存交互,通 常效率較低,根本不能滿足高端設(shè)計需要。由于三態(tài)內(nèi)容可尋址存儲器(TCAM)的查 表速度快,己成為目前業(yè)界常用的硬件解決方案。實際應(yīng)用中,路由和報文分類規(guī)則條 目需要頻繁刷新,TCAM條目更新(一般包括條目刪除和條目添加)時又必須中斷正常 的匹配操作,而現(xiàn)行應(yīng)用中,TCAM對條目存放的有序性要求,使得條目更新和管理非 常復(fù)雜, 一旦條目更新占用的時間過長,必然影響查表和分類速度,非常容易引起處理 隊列阻塞甚至丟包,嚴(yán)重影響網(wǎng)絡(luò)服務(wù)性能。本發(fā)明就是旨在消除條目存放的有序性要 求,從根本上解決TCAM快速更新問題。
TCAM現(xiàn)行應(yīng)用方式如圖1所示, 一般還需要一個同等容量的RAM與之配合使用, TCAM中存儲規(guī)則條目,RAM對應(yīng)地址中存儲規(guī)則條目的操作指令。 一般匹配流程是 從數(shù)據(jù)包中提取相關(guān)字段組成匹配關(guān)鍵字送入TCAM進行并行査找,當(dāng)匹配關(guān)鍵字與規(guī) 則表中某一條目匹配一致時,TCAM輸出該條目所在地址,通過該地址直接讀取RAM, 最終獲得該數(shù)據(jù)包對應(yīng)的操作指令。
TCAM可以支持3種邏輯態(tài)0,1或者X,其中X代表"不關(guān)心位"(Don't care state), — 般利用掩碼實現(xiàn)。當(dāng)設(shè)置成"不關(guān)心位"時,表示該數(shù)據(jù)位不參與匹配,并默認(rèn)該數(shù)據(jù) 位匹配成功,相當(dāng)于一個通配數(shù)據(jù)位。目前不同廠商的器件對掩碼的定義不同,本發(fā)明 敘述過程中以掩碼為'0'時表示對應(yīng)數(shù)據(jù)位為"不關(guān)心位"。
這種掩碼機制使得TCAM可以存儲那些包含有通配符的規(guī)則,從而很好的解決了路 由查找中最長前綴匹配的問題,但同時也會出現(xiàn)匹配關(guān)鍵字與多個條目同時匹配命中的
情況?,F(xiàn)行應(yīng)用中,當(dāng)多匹配命中出現(xiàn)時,TCAM以條目存儲地址作為判斷依據(jù),默認(rèn) 選取存儲所在地址最低的條目作為最終結(jié)果輸出。所以,為了在TCAM中實現(xiàn)最長前綴 路由査找,初始規(guī)則表在存入TCAM之前,必須對所有條目進行排序處理,按照前綴由 長到短的順序從低地址到高地址依次存放,即將優(yōu)先級較高的條目存放在較低的地址上。 正是這種存儲的有序性要求,讓一次看似簡單的條目刪除或添加操作,可能引起多個條 目的關(guān)聯(lián)移動,使得TCAM的條目更新過程變得非常復(fù)雜。而報文分類應(yīng)用中,由于參 與匹配的數(shù)據(jù)類型更多,出現(xiàn)多匹配概率相應(yīng)增大,由此引發(fā)的更新問題更為棘手。 簡單以最長前綴匹配應(yīng)用說明現(xiàn)行條目添加復(fù)雜度問題。初始規(guī)則表采用連續(xù)存儲
方式,把空閑空間都留在TCAM高地址段,首先,確定待添加條目不在當(dāng)前規(guī)則表中, 然后根據(jù)條目輸出優(yōu)先級確定其在當(dāng)前規(guī)則表中的存儲位置,為了維持前綴順序,在寫 入該存儲位置前,需要將優(yōu)先級比它低的條目都順序往高地址段移動,這樣,如果初始 規(guī)則表中前綴數(shù)目為N,最壞情況下需要移動N次為其騰出空間,即更新復(fù)雜度為0(7V入 顯然,這種條目存儲方式下進行更新時,條目關(guān)聯(lián)性太大,效率極低。
很多學(xué)者和機構(gòu)針對路由更新展開了一系列的研究工作,改進方向主要有兩個第 一種思路是弱化排序約束,優(yōu)化空閑空間的使用和管理。最初提出的是將空閑空間的預(yù) 留位置從TCAM末段(即高地址段)改為TCAM中段。這樣,在更新時,關(guān)聯(lián)條目的移 動就由原來的只能往后的單向移動變?yōu)橄蛑虚g的雙向移動,可以在一定程度上提高更新 速度,但是這種改進效果非常有限,而且存在很大的不確定性;隨后的改進是將空閑空 間分散到一定的集合中,當(dāng)新增條目對應(yīng)的集合中存在空閑空間時,直接寫入,無需移 動其他條目;而如果不存在空閑空間時,只須從相鄰的集合中借用一個空閑地址即可寫 入。顯然,該方法可以明顯的減少條目的平均移動次數(shù),但是在最壞情況下(如預(yù)留空 閑空間出現(xiàn)連續(xù)滿狀態(tài)),算法復(fù)雜度仍然是O^V入更進一步,結(jié)合TCAM工作原理分 析,發(fā)現(xiàn)路由前綴查找只需要保證不同前綴長度條目的順序關(guān)系即可,而對于相同前綴 長度的條目則可以不用嚴(yán)格要求,這樣就有效的將原本基于條目的排序存儲改進為基于 前綴長度的排序存儲,算法復(fù)雜度為0(Tf9 (W為前綴長度的個數(shù)),但是對于IPv4協(xié)議 而言,該算法的最多移動次數(shù)仍有可能大于60,而對于IPv6以及報文分類應(yīng)用則可能更 加復(fù)雜。
另外一種改進的思路是通過數(shù)據(jù)結(jié)構(gòu)設(shè)計,優(yōu)化排序算法,減少更新時條目移動次 數(shù),從而降低更新復(fù)雜度。如Shah基于前綴鏈約束的路由排序方法,提出了CAO一OPT路 由更新算法。根據(jù)這種Tries樹數(shù)據(jù)結(jié)構(gòu),越靠近葉子節(jié)點的路由前綴將存儲在TCAM越
低的地址中,最差情況下,該算法的更新復(fù)雜度為0^V》(D為Tries樹中最大鏈長度), 平均情況不,該算法的更新復(fù)雜度可以到達0(^/刀(A為Tries樹中所有鏈的平均長度), 當(dāng)路由表中的前綴數(shù)量較少時,A值也會比較小,CAO—OPT算法性能很好,但是一旦路 由前綴增加,Tries樹節(jié)點分布密度變大,A值也會隨之增加,該算法的性能也相應(yīng)下降, 而且該算法對IPv6協(xié)議以及更為復(fù)雜的報文分類應(yīng)用基本失效。還有一些算法通過壓縮 路由冗余來優(yōu)化TCAM存儲空間,以提高更新效率,但是隨之而來的是復(fù)雜的預(yù)計算和 節(jié)點管理,同樣無法突破更新瓶頸。
比如中國專利 一種維護三態(tài)內(nèi)容可尋址存儲器表項的方法和系統(tǒng),專利申請?zhí)?200610109329.7,公開號101039215,其基本思路是預(yù)先對TCAM進行分塊,并預(yù)置每 個前綴塊占有的表項數(shù),采用這樣的存儲方式,可以減少增加或刪除表項時對表項的操 作次數(shù)。,是該方法只是由原來的以所有條目排序改為以前綴長度排序,減少的只是表 項的平均操作次數(shù),相當(dāng)情況下仍然會出現(xiàn)大量的表項移動。
綜上所述,網(wǎng)絡(luò)設(shè)備使用三態(tài)內(nèi)容可尋址存儲器進行路由查找和報文分類應(yīng)用時, 由于以存儲地址作為最優(yōu)匹配結(jié)果輸出的判決條件,使得條目必須按照優(yōu)先級有序存儲, 導(dǎo)致了實時更新過程中需要通過頻繁的移動關(guān)聯(lián)條目保證條目的存儲順序,以保證最優(yōu) 匹配結(jié)果的正確輸出,嚴(yán)重影響了正常匹配操作,降低了網(wǎng)絡(luò)設(shè)備的實用性能。

發(fā)明內(nèi)容
本發(fā)明要解決的問題就在于針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種能夠 從根本上消除TCAM條目存儲有序性要求、實現(xiàn)條目的免排序存儲,從而解除條目存儲 和管理的最大束縛,并能夠結(jié)合優(yōu)化的條目管理策略,徹底解決條目更新復(fù)雜度問題的 三態(tài)內(nèi)容對尋址存儲器條目免排序存儲方法及其系統(tǒng)。
為解決上述技術(shù)問題,本發(fā)明提出的解決方案為 一種三態(tài)內(nèi)容可尋址存儲器條目
免排序存儲方法,其特征在于將規(guī)則條目存儲在三態(tài)內(nèi)容可尋址存儲器中,通過掩碼
計算出條目掩碼優(yōu)先級,并將條目操作指令和條目掩碼優(yōu)先級一并存儲在關(guān)聯(lián)隨機存儲
器中;當(dāng)接收到網(wǎng)絡(luò)數(shù)據(jù)后,進行相應(yīng)的協(xié)議解析,并提取約定字段組成匹配關(guān)鍵字送 入三態(tài)內(nèi)容可尋址存儲器中進行匹配查找,根據(jù)匹配結(jié)果在關(guān)聯(lián)隨機存儲器中得到對應(yīng) 數(shù)據(jù)包的條目操作指令,最終完成相應(yīng)操作和輸出轉(zhuǎn)發(fā);當(dāng)多匹配命中出現(xiàn)時,對命中
條目的條目掩碼優(yōu)先級進行比較決定后最優(yōu)結(jié)果輸出。
當(dāng)三態(tài)內(nèi)容可尋址存儲器中的條目進行刪除更新時,步驟為
(701) 、得到待刪除條目和條目刪除請求后,進入條目刪除流程;
(702) 、將待刪除條目作為匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器中執(zhí)行匹配操作;
(703) 、結(jié)果處理模塊對TCAM返回信息進行判斷,如果沒有匹配命中,執(zhí)行步驟 704;如果匹配命中,執(zhí)行步驟705;
(704) 、終止刪除操作,并返回"待刪除條目不在當(dāng)前規(guī)則表內(nèi)"信息;
(705) 、進一步判斷是否是多匹配情況,如果當(dāng)前是唯一匹配命中,執(zhí)行歩驟707; 如果是多匹配情況,執(zhí)行步驟706;
(706) 、采用并行流水作業(yè)方式,將各命中條目的掩碼優(yōu)先級和待刪除條目的掩碼 優(yōu)先級進行逐一比較;
(707) 、進一步判斷,如果命中條目掩碼優(yōu)先級和待刪除條目的掩碼優(yōu)先級沒有一 致的情況,執(zhí)行步驟704;如果有一致的,執(zhí)行步驟708;
(708) 、說明待刪除條目在當(dāng)前規(guī)則表中,對最終確定的命中結(jié)果所在地址上的數(shù) 據(jù)覆蓋全'l'或'0',實現(xiàn)對該條目的刪除;
(709) 、將已刪除條目的地址指針存放到存儲回收隊列中,刷新狀態(tài)參數(shù),條目刪 除操作完蓽。
當(dāng)三態(tài)內(nèi)容可尋址存儲器中的條目進行添加更新時,步驟為
(801) 、得到待添加條目和條目添加請求后,進入條目添加流程;
(802) 、先檢査三態(tài)內(nèi)容可尋址存儲器的存儲狀態(tài),如果尚有可用存儲空間,即三 態(tài)內(nèi)容可尋址存儲器中有空閑空間或者回收隊列中有可用地址指針時,則執(zhí)行步驟804; 如果既無空閑空間,同時回收隊列也無可用地址指針,說明當(dāng)前三態(tài)內(nèi)容可尋址存儲器 的存儲空間己滿,執(zhí)行步驟803;
(803) 、終止條目添加操作,并返回"存儲空間滿"或"待添加條目已經(jīng)在當(dāng)前規(guī) 則表中"信息;
(804) 、將待添加條目作為匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器執(zhí)行匹配操作;
(805) 、對三態(tài)內(nèi)容可尋址存儲器的返回信息進行判斷,如果沒有匹配命中,說明 待添加條目不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果匹配命中,執(zhí)行步驟806;
(806) 、進一步判斷是否是多匹配情況,如果是唯一匹配命中,執(zhí)行步驟808;如果 是多匹配情況,則執(zhí)行步驟807;
(807) 、采用并行流水作業(yè)方式,將各命中條目的條目掩碼優(yōu)先級和待添加條目的 條目掩碼優(yōu)先級進行逐一比較;
(808) 、判斷掩碼優(yōu)先級比較情況,如果命中條目掩碼優(yōu)先級和待添加條目的掩碼 優(yōu)先級沒有一致的情況,說明待添加條目尚不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果有一 致的情況,說明待添加條目已經(jīng)在當(dāng)前規(guī)則表中,執(zhí)行步驟803;
(809) 、檢查存儲回收隊列情況,如果回收隊列中有可用地址指針,執(zhí)行步驟810;
如果回收隊列中無可用地址,執(zhí)行步驟811;
(810)、將新條目寫入隊列最前地址中,并將條目對應(yīng)的掩碼優(yōu)先級和操作指令存 入RAM的對應(yīng)地址;
(811) 、'將新條目寫入三態(tài)內(nèi)容可尋址存儲器的空閑存儲空間當(dāng)前最低地址中,并將 條目對應(yīng)的掩碼優(yōu)先級和操作指令存入RAM的對應(yīng)地址;
(812) 、刷新三態(tài)內(nèi)容可尋址存儲器的存儲空間狀態(tài)信息,條目添加操作完畢。 執(zhí)行條目匹配流程時步驟為-
(501) 、當(dāng)有網(wǎng)絡(luò)數(shù)據(jù)輸入,開始啟動匹配流程,首先從輸入數(shù)據(jù)包中提取約定字 段形成匹配關(guān)鍵字;
(502) 、將匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器中進行匹配操作;
(503) 、判斷三態(tài)內(nèi)容可尋址存儲器的返回信息,如果沒有匹配命中,說明該數(shù)據(jù) 包不在需求范圍內(nèi),對其執(zhí)行丟棄操作步驟504;
(505) 、進一步判斷是否存在多匹配情況,如果沒有,即當(dāng)前為唯一匹配命中,執(zhí) 行步驟508;如果是多匹配情況,執(zhí)行步驟506;
(506) 、采用并行流水作業(yè)方式將所有匹配命中條目對應(yīng)的條目掩碼優(yōu)先級一一讀 取并進行比較;
(507) 、選取條目掩碼優(yōu)先級最高的匹配命中作為最優(yōu)匹配結(jié)果輸出;
(508) 、根據(jù)最優(yōu)匹配結(jié)果對應(yīng)的后續(xù)操作指令完成對數(shù)據(jù)包的處理和輸出轉(zhuǎn)發(fā)。 所述多匹配情況時并行流水作業(yè)方式的步驟為
(51) :獲取三態(tài)內(nèi)容可尋址存儲器的匹配結(jié)果;
(52) :讀取關(guān)聯(lián)隨機存儲器RAM的信息,得到與上述匹配結(jié)果對應(yīng)的條目掩碼優(yōu) 先級和操作指令;
(53),:對條目掩碼優(yōu)先級比較;在每個操作時鐘下,將最新匹配結(jié)果的條目掩碼優(yōu) 先級與比較器中保存的掩碼優(yōu)先級進行比較,始終將較高的掩碼優(yōu)先級保存在比較器中, 并將對應(yīng)操作指令暫存在操作指令緩存器中,直至所有匹配結(jié)果比較完畢,屆時操作指 令緩存器中存放的就是對應(yīng)數(shù)據(jù)包的最終處理指令。
一種三態(tài)內(nèi)容可尋址存儲器條目免排序存儲系統(tǒng),其特征在于它包括 數(shù)據(jù)接收模塊,用來接收網(wǎng)絡(luò)數(shù)據(jù),并根據(jù)要求進行協(xié)議解析,將解析后的數(shù)據(jù)包 存入數(shù)據(jù)緩存模塊;
數(shù)據(jù)處理模塊,用來對已經(jīng)完成協(xié)議解析的數(shù)據(jù)包進行約定字段提取,組成匹配關(guān) 鍵字;
匹配模塊,接收匹配關(guān)鍵字,通過指令、數(shù)據(jù)以及寄存器管理控制三態(tài)內(nèi)容可尋址
存儲器實現(xiàn)匹配査找功能;
管理模塊,用來對三態(tài)內(nèi)容可尋址存儲器和關(guān)聯(lián)隨機存儲器RAM的管理; 結(jié)果處理模塊,用來對匹配結(jié)果的分析處理;
數(shù)據(jù)輸出模塊,用來根據(jù)結(jié)果處理模塊的匹配結(jié)果獲取后續(xù)操作指令,從數(shù)據(jù)緩存
模塊中讀fe數(shù)據(jù)包的進行相應(yīng)處理和輸出轉(zhuǎn)發(fā);
三態(tài)內(nèi)容可尋址存儲器,用來存放規(guī)則條目,并根據(jù)指令完成匹配關(guān)鍵字與預(yù)存規(guī) 則條目的并行匹配查找,輸出匹配命中與否以及是否存在多匹配命中等匹配狀態(tài)信息和 匹配命中結(jié)果;
關(guān)聯(lián)隨機存儲器RAM,用來存儲條目操作指令和條目掩碼優(yōu)先級; 數(shù)據(jù)緩存模塊,存儲數(shù)據(jù)接收模塊完成解析的數(shù)據(jù)包,并供數(shù)據(jù)輸出模塊讀取實現(xiàn) 數(shù)據(jù)包的相應(yīng)處理和輸出轉(zhuǎn)發(fā)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點就在于本發(fā)明通過引入掩碼優(yōu)先級概念,并使之 替代存儲地址成為最優(yōu)匹配結(jié)果輸出的判定依據(jù),將條目輸出優(yōu)先級與存儲地址關(guān)系有 效剝離,從根本上消除了TCAM條目存儲有序性要求,實現(xiàn)了條目的免排序存儲,解除 了條目存儲和管理的最大束縛。這樣,添加條目時,無需進行排序計算、關(guān)聯(lián)條目移動 等操作步驟,而是可以直接存入空閑地址中,更新復(fù)雜度為0(7只即一個操作時鐘周期), 從而徹底的解決了條目快速更新問題。在此方法中,還有效保證了條目更新的正確性, 并支持對條目輸出優(yōu)先級高效靈活的調(diào)整。此方法包含的條目管理優(yōu)化策略,可以更高 效的利用TCAM存儲空間,進一步提高TCAM的更新性能,而依據(jù)此方法制成的三態(tài) 內(nèi)容可尋址存儲器條目免排序存儲系統(tǒng)同樣具備復(fù)雜度降低、快速更新、調(diào)整靈活等優(yōu) 點。


圖1是現(xiàn)行三態(tài)內(nèi)容可尋址存儲器的應(yīng)用示意圖; 圖2;fc本發(fā)明的應(yīng)用示意圖; 圖3是本發(fā)明實施例系統(tǒng)結(jié)構(gòu)圖; 圖4是本發(fā)明實施例系統(tǒng)工作模式示意圖; 圖5是本發(fā)明實施例中匹配輸出的流程示意圖; 圖6是本發(fā)明實施例中多匹配結(jié)果并行流水作業(yè)示意圖; 圖7是本發(fā)明實施例中條目刪除方法的流程示意圖; 圖8是本發(fā)明實施例中條目添加方法的流程示意圖。
具體實施例方式
本發(fā)明的三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,首先通過掩碼計算出條目掩
碼優(yōu)先級,將條目操作指令和條目掩碼優(yōu)先級一并存儲在關(guān)聯(lián)隨機存儲器RAM中,并 將與條目操作指令對應(yīng)的規(guī)則條目存儲在三態(tài)內(nèi)容可尋址存儲器中;當(dāng)接收到網(wǎng)絡(luò)數(shù)據(jù) 后,進行相應(yīng)的協(xié)議解析,并提取約定字段組成匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器 中進行匹配査找,根據(jù)匹配結(jié)果在關(guān)聯(lián)隨機存儲器RAM中得到對應(yīng)數(shù)據(jù)包的條目操作 指令,最終完成相應(yīng)操作和輸出轉(zhuǎn)發(fā);當(dāng)多匹配命中出現(xiàn)時,對命中條目的條目掩碼優(yōu) 先級進行比較決定后最優(yōu)結(jié)果輸出。正是采用這種存儲方式和優(yōu)選方法,將條目輸出優(yōu) 先級與存儲地址關(guān)系有效剝離,當(dāng)添加條目時,無需進行排序計算、關(guān)聯(lián)條目移動等操 作步驟,而是可以直接存入空閑地址中,實現(xiàn)更新復(fù)雜度為O(X)(即一個操作時鐘周期), 結(jié)合優(yōu)化的條目管理策略,更有效的利用TCAM存儲空間,徹底解決了條目快速更新問 題。
由于三態(tài)內(nèi)容可尋址存儲器(TCAM)內(nèi)規(guī)則表中條目無需根據(jù)前綴長度或其他條 件進行排序處理,各條目存儲位置沒有關(guān)聯(lián)性,也不需要為添加操作考慮,在有效條目 之間預(yù)留存儲空間,而是將TCAM空閑存儲空間全部預(yù)留在高地址段,因此三態(tài)內(nèi)容可 尋址存儲& (TCAM)中條目免排序連續(xù)存儲。而關(guān)聯(lián)隨機存儲器RAM不僅存放條目對 應(yīng)的后續(xù)操作指令,同時也存放對應(yīng)條目的掩碼優(yōu)先級。當(dāng)多匹配情況出現(xiàn)時,所有匹 配命中條目對應(yīng)的掩碼優(yōu)先級將被讀取出來進行一一比較,以確定最優(yōu)匹配結(jié)果。這樣, 將條目輸出優(yōu)先級與存儲地址關(guān)系有效剝離,為實現(xiàn)TCAM條目免排序存儲提供重要支 持。
本發(fā)明技術(shù)方案關(guān)鍵點包括
1、條目掩碼優(yōu)先級的確定和應(yīng)用。通常應(yīng)用情況下,條目掩碼中"不關(guān)心位"越少, 指示該條目限定的匹配條件越精確,也是用戶最需要的,路由前綴匹配就是一個典型例 子。本發(fā)明通過計算條目掩碼中"不關(guān)心位"數(shù)量,確定對應(yīng)條目的優(yōu)先級,"不關(guān)心位" 越少,掩碼優(yōu)先級就越高。
當(dāng)有多匹配命中情況出現(xiàn)時,將所有匹配命中條目對應(yīng)的掩碼優(yōu)先級讀取出來進行 一一比較,以確定最優(yōu)匹配結(jié)果,而不是依據(jù)條目存儲地址高低選擇輸出,徹底改變了 最優(yōu)匹配結(jié)果輸出模式,實現(xiàn)真正的免排序存儲結(jié)構(gòu),解除了條目存儲的最大束縛。最 顯著的效果是,條目添加時,無需再進行排序計算、關(guān)聯(lián)條目移動等操作步驟,而是可 以直接存入空閑地址中,更新復(fù)雜度為O (7_)(即一個操作時鐘周期),從而徹底的解決 了條目快速更新問題。
在本發(fā)明實現(xiàn)方法中,掩碼優(yōu)先級的引入還可以保證條目更新的正確性,具體而言 就是保證判別待更新條目是否已在當(dāng)前規(guī)則表中的正確性。條目更新之前,都需要將待 更新條目作為匹配關(guān)鍵字送入TCAM,判斷是否己經(jīng)存在于當(dāng)前規(guī)則表中。按照現(xiàn)行多 數(shù)的實現(xiàn)方法,比較容易出現(xiàn)誤判,導(dǎo)致條目的誤刪除和忽略添加。例如,如果當(dāng)前規(guī) 則表中己有條目"192.168丄0",其掩碼為"255.255.0.0",假設(shè)待更新條目為"192.168.11.0", 掩碼為"255.255.255.0",此時,待更新條目作為匹配關(guān)鍵字送入將會有匹配命中返回, 如果當(dāng)前是要進行刪除操作,則會將原有正常條目誤刪除;如果當(dāng)前是要進行添加操作, 則因為誤認(rèn)為該條目已經(jīng)存在而放棄操作。而在本發(fā)明的更新流程中,由于有掩碼優(yōu)先 級比較環(huán)節(jié),則可以很容易的將類似情況加以區(qū)分,保證條目更新的正確性。
另外,考慮到報文分類應(yīng)用的多樣性,條目掩碼優(yōu)先級除了根據(jù)條目掩碼計算還可 以進行人工設(shè)定,實現(xiàn)優(yōu)先級實時靈活修改。在實際應(yīng)用中,經(jīng)常需要對已有條目輸出 優(yōu)先級進行調(diào)整,在現(xiàn)行存儲結(jié)構(gòu)下,這種調(diào)整必須中斷匹配操作,通過條目移動改變 條目的存儲順序來實現(xiàn),嚴(yán)重影響設(shè)備的正常工作;而在本發(fā)明的存儲結(jié)構(gòu)下,用戶只 需要單獨修改RAM中對應(yīng)條目的掩碼優(yōu)先級即可,無需移動TCAM中的條目和中斷正 常匹配操作,相比之下,更加高效和靈活。
2、條目管理方法優(yōu)化。依據(jù)關(guān)鍵參數(shù),對條目存儲、刪除和添加設(shè)計靈活高效的管 理策略,更高效的利用TCAM存儲空間,輔助實現(xiàn)條目的快速更新。主要包括
(1) 關(guān)鍵參數(shù)的建立和更新。將TCAM的空閑存儲空間容量、起始地址、回收存 儲空間數(shù)量以及回收存儲空間隊列等作為關(guān)鍵參數(shù),并在條目刪除、添加操作過程中, 實時進行更新,為高效管理提供保證。其中回收空間是指已刪除條目所占空間,是區(qū)別 于TCAM空閑空間的可用存儲空間。由于本方法的免排序存儲結(jié)構(gòu),當(dāng)一個條目被刪除 后,無需移動其他條目填充該存儲空間,可以將該存儲空間地址存放在回收隊列中,在 條目添加操作時可以直接使用;
(2) 刪除操作時,對TCAM存儲空間進行直接回收使用,即,當(dāng)一個條目被刪除 后,利用i發(fā)明存儲結(jié)構(gòu)的無序性特性,無需移動其他條目填充該存儲空間,而是將該 存儲空間地址放在回收隊列中,可供條目添加操作時直接使用,并更新相應(yīng)狀態(tài)參數(shù);
條目添加時,通過對關(guān)鍵參數(shù)的判斷,優(yōu)先使用回收隊列中的可用空間,然后才是 TCAM空閑存儲空間,并實時更新相應(yīng)狀態(tài)參數(shù)。
下面結(jié)合附圖和實施例對本發(fā)明的系統(tǒng)結(jié)構(gòu)、工作模式以及免排序存儲方法下的匹 配、條目刪除與添加流程進行說明。
本發(fā)明根據(jù)解決方案設(shè)計的TCAM條目以及相關(guān)RAM存儲結(jié)構(gòu)如圖2所示,基本 特征是
1、 TCAM中條目免排序連續(xù)存儲規(guī)則表中條目無需根據(jù)前綴長度或其他條件進行 排序處理,各條目存儲位置沒有關(guān)聯(lián)性,也不需要為添加操作考慮,在有效條目之間預(yù) 留存儲空間,而是將TCAM空閑存儲空間全部預(yù)留在高地址段;
2、 RAM中不僅存放條目對應(yīng)的后續(xù)操作指令,同時也存放對應(yīng)條目的掩碼優(yōu)先級。 當(dāng)多匹配情況出現(xiàn)時,所有匹配命中條目對應(yīng)的掩碼優(yōu)先級將被讀取出來進行一一比較, 以確定最優(yōu)匹配結(jié)果。這樣,將條目輸出優(yōu)先級與存儲地址關(guān)系有效剝離,為實現(xiàn)TCAM 條目免排序存儲提供重要支持。
請參見圖3所示,為本發(fā)明系統(tǒng)結(jié)構(gòu)圖-
301數(shù)據(jù)接收模塊,負(fù)責(zé)接收網(wǎng)絡(luò)數(shù)據(jù),并根據(jù)要求進行協(xié)議解析, 一般包括鏈路 層、網(wǎng)絡(luò)層和傳輸層的多種協(xié)議類型,并將解析后的數(shù)據(jù)包存入數(shù)據(jù)緩存模塊309;
302數(shù)據(jù)處理模塊,負(fù)責(zé)對已經(jīng)完成協(xié)議解析的數(shù)據(jù)包進行約定字段提取,組成匹 配關(guān)鍵字;
303匹配模塊,接收匹配關(guān)鍵字,通過指令、數(shù)據(jù)以及寄存器管理控制TCAM實現(xiàn) 匹配査找功能;
304管理模塊,負(fù)責(zé)TCAM和關(guān)聯(lián)RAM的管理,具體包括掩碼優(yōu)先級的計算和調(diào) 整,TCAM規(guī)則表的初始化和條目更新操作以及TCAM存儲關(guān)鍵參數(shù)的建立與維護,是 免排序存儲方法實現(xiàn)和區(qū)別與其他基于TCAM系統(tǒng)的重要功能模塊;
305結(jié)果處理模塊,完成對匹配結(jié)果的分析處理,尤其是在多匹配命中情況下,采 用并行流水作業(yè)方式將所有匹配命中條目對應(yīng)的掩碼優(yōu)先級讀取并進行一一比較,得到 最優(yōu)匹配結(jié)果,和管理模塊一樣,是免排序存儲方法實現(xiàn)和區(qū)別與其他基于TCAM系統(tǒng) 的重要功能模塊;
306數(shù)據(jù)輸出模塊,根據(jù)結(jié)果處理模塊305的匹配結(jié)果獲取后續(xù)操作指令,從數(shù)據(jù) 緩存模塊309中讀取數(shù)據(jù)包的進行相應(yīng)處理和輸出轉(zhuǎn)發(fā);
307 TCAM,系統(tǒng)的核心模塊,存放規(guī)則條目,并根據(jù)指令完成匹配關(guān)鍵字與預(yù)存 規(guī)則條目的并行匹配査找,輸出匹配命中與否以及是否存在多匹配命中等匹配狀態(tài)信息 和匹配命中結(jié)果;
308 RAM, TCAM的協(xié)同工作單元,其中存儲的各條目的掩碼優(yōu)先級供結(jié)果處理模 塊305實現(xiàn)匹配結(jié)果的優(yōu)選功能,存儲的操作指令供數(shù)據(jù)輸出模塊306實現(xiàn)數(shù)據(jù)包處理 和轉(zhuǎn)發(fā)功能;
309數(shù)據(jù)緩存,存儲數(shù)據(jù)接收模塊302完成解析的數(shù)據(jù)包,并供數(shù)據(jù)輸出模塊306
讀取實現(xiàn)數(shù)據(jù)包的相應(yīng)處理和輸出轉(zhuǎn)發(fā)。
請參見圖4所示,為本發(fā)明實施例系統(tǒng)工作模式示意圖。
系統(tǒng)的工作模式根據(jù)TCAM的工作狀態(tài)進行劃分和轉(zhuǎn)移,主要包括
401初始化模式系統(tǒng)在該狀態(tài)下,最重要的工作是將初始規(guī)則表的載入TCAM,
計算條目掩碼優(yōu)先級并和條目操作指令一起存入RAM,還包括各功能模塊自檢并設(shè)定初
始狀態(tài),清空數(shù)據(jù)緩存,為系統(tǒng)正常工作做好準(zhǔn)備,上述工作完成后,進入匹配査找模
式402;
402匹配查找模式系統(tǒng)成功完成初始化操作后,進入匹配查找模式,在該狀態(tài)下, 以匹配和結(jié)果處理模塊為核心,各模塊協(xié)同工作完成匹配査找操作接收到網(wǎng)絡(luò)數(shù)據(jù)后, 進行相應(yīng)的協(xié)議解析,并提取約定字段組成匹配關(guān)鍵字送入TCAM中進行匹配査找,根 據(jù)匹配結(jié)果得到對應(yīng)數(shù)據(jù)包的操作指令,最終完成相應(yīng)操作和輸出轉(zhuǎn)發(fā);在各模塊工作
正常和網(wǎng)絡(luò)數(shù)據(jù)不斷輸入情況下,系統(tǒng)將持續(xù)進行上述流程,當(dāng)出現(xiàn)異常而且無法自我
排除時,系統(tǒng)可能采取復(fù)位方式轉(zhuǎn)移到初始化模式401;如果有條目刪除或者條目添加請 求時,系統(tǒng)將中斷當(dāng)前流程,保護各模塊狀態(tài),然后進入相應(yīng)的操作模式;
403條目刪除模式當(dāng)管理模塊有條目刪除請求時,系統(tǒng)將中斷匹配查找模式402,
進入條目刪除模式。在該狀態(tài)下,以管理模塊和結(jié)果處理模塊為核心,完成條目刪除操 作-先通過匹配操作判斷待刪除條目是否在當(dāng)前規(guī)則表中,如果不在當(dāng)前規(guī)則表中,說
明該條目刪除請求無效,直接返回匹配查找模式402;如果在當(dāng)前規(guī)則表中,執(zhí)行刪除操 作,回收刪除條目所在存儲空間,刷新相關(guān)參數(shù),返回匹配查找模式402;
404條目添加模式當(dāng)管理模塊有條目添加請求時,系統(tǒng)將中斷匹配查找模式402, 進入條目添加模式。在該狀態(tài)下,以管理模塊和結(jié)果處理模塊為核心,完成條目添加操 作先通過匹配操作判斷待添加條目是否在當(dāng)前規(guī)則表中,如果已經(jīng)在當(dāng)前規(guī)則表中, 說明該條目添加請求無效,返回匹配査找模式402;如果不在當(dāng)前規(guī)則表中,將待添加條
目直接存入當(dāng)前空閑存儲空間,并將計算好的掩碼優(yōu)先級與該條目操作指令一起存入
RAM對應(yīng)地址,刷新相關(guān)參數(shù),返回匹配査找模式402。 請參見圖5所示,為本發(fā)明實施例條目匹配流程圖
501當(dāng)有網(wǎng)絡(luò)數(shù)據(jù)輸入,開始啟動匹配流程。首先由數(shù)據(jù)處理模塊從輸入數(shù)據(jù)包中 提取約定字段形成匹配關(guān)鍵字; 502匹配模塊將匹配關(guān)鍵字送入TCAM進行匹配操作;
503結(jié)果處理模塊判斷TCAM返回信息,如果沒有匹配命中,說明該數(shù)據(jù)包不在需 求范圍內(nèi),對其執(zhí)行丟棄操作步驟504;
505結(jié)果處理模塊進一步判斷是否存在多匹配情況,如果沒有,即當(dāng)前為唯一匹配 命中,執(zhí)行步驟508;如果是多匹配情況,執(zhí)行步驟506;
506結(jié)果處理模塊采用并行流水作業(yè)方式將所有匹配命中條目對應(yīng)的掩碼優(yōu)先級一 一讀取并進行比較;
507選取掩碼優(yōu)先級最高的匹配命中作為最優(yōu)匹配結(jié)果輸出;
508數(shù)據(jù)輸出模塊根據(jù)最優(yōu)匹配結(jié)果對應(yīng)的后續(xù)操作指令完成對數(shù)據(jù)包的處理和輸 出轉(zhuǎn)發(fā)。
請參見圖6所示,為本發(fā)明實施例多匹配結(jié)果并行流水作業(yè)示意圖。 橫坐標(biāo)為時間軸,單位是操作時鐘周期;縱坐標(biāo)是具體操作步驟,當(dāng)出現(xiàn)多匹配情 況,需要進行匹配結(jié)果優(yōu)選流程時,包括以下三個步驟并行流水作業(yè)執(zhí)行 Sh獲取TCAM匹配結(jié)果;
S2:讀取RAM信息,得到該匹配結(jié)果對應(yīng)的掩碼優(yōu)先級和操作指令; S3:掩碼優(yōu)先級比較。
其中,最關(guān)鍵的步驟是S3,在每個操作時鐘下,將最新匹配結(jié)果的條目掩碼優(yōu)先級 與比較器中保存的掩碼優(yōu)先級進行比較,始終將較高的掩碼優(yōu)先級保存在比較器中,并 將對應(yīng)操作指令暫存在操作指令緩存器中。直至所有匹配結(jié)果比較完畢,屆時操作指令 緩存器中存放的就是對應(yīng)數(shù)據(jù)包的最終處理指令。
正是這種并行流水作業(yè)方式,保證了在多匹配情況出現(xiàn)時,增加的操作時鐘周期是 線性可控的。本實施例以出現(xiàn)4個匹配命中結(jié)果的情況為例,如圖6所示,設(shè)tl時鐘獲 得第一個匹配結(jié)果,那么,t6時鐘時就能得到最終的操作指令。即當(dāng)操作步驟數(shù)為s時, 如果有m個命中,得到最終操作指令需要(m+s—l)個時鐘周期,其中,操作步驟一 般是固定的,本實施例中是s-3,所需處理時鐘周期為(m+2),與匹配命中數(shù)量呈簡單 的線性關(guān)系。
請參卑圖7所示,為本發(fā)明實施例條目刪除方法流程圖。
701管理模塊得到待刪除條目和條目刪除請求,進入條目刪除流程;
702將待刪除條目作為匹配關(guān)鍵字送入TCAM執(zhí)行匹配操作;
703結(jié)果處理模塊對TCAM返回信息進行判斷,如果沒有匹配命中,執(zhí)行步驟704;
如果匹配命中,執(zhí)行步驟705;
704終止刪除操作,并返回"待刪除條目不在當(dāng)前規(guī)則表內(nèi)"信息;
705結(jié)果處理模塊進一步判斷是否是多匹配情況,如果當(dāng)前是唯一匹配命中,執(zhí)行
步驟707;如果是多匹配情況,執(zhí)行步驟706;
706采用并行流水作業(yè)方式,將各命中條目的掩碼優(yōu)先級和待刪除條目的掩碼優(yōu)先 級進行逐一比較;
707進一步判斷,如果命中條目掩碼優(yōu)先級和待刪除條目的掩碼優(yōu)先級沒有一致的 情況,執(zhí)行步驟704;如果有一致的,執(zhí)行步驟708;
708說明待刪除條目在當(dāng)前規(guī)則表中,對最終確定的命中結(jié)果所在地址上的數(shù)據(jù)覆 蓋全或'0',實現(xiàn)對該條目的刪除;
709將己刪除條目的地址指針存放到存儲回收隊列中,刷新狀態(tài)參數(shù),條目刪除操 作完畢。
請參見圖8所示,為本發(fā)明實施例條目添加方法流程圖。 801管理模塊得到待添加條目和條目添加請求,進入條目添加流程; 802管理模塊先檢査TCAM存儲狀態(tài),如果尚有可用存儲空間(TCAM有空閑空間 或者回收隊列中有可用地址指針),則執(zhí)行步驟804;如果既無空閑空間,同時回收隊列 也無可用地址指針,說明當(dāng)前TCAM存儲空間己滿,執(zhí)行步驟803;
803終止條目添加操作,并返回"存儲空間滿"或"待添加條目已經(jīng)在當(dāng)前規(guī)則表 中"信息f
804將待添加條目作為匹配關(guān)鍵字送入TCAM執(zhí)行匹配操作;
805結(jié)果處理模塊對TCAM返回信息進行判斷,如果沒有匹配命中,說明待添加條 目不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果匹配命中,執(zhí)行步驟806;
806進一步判斷是否是多匹配情況,如果是唯一匹配命中,執(zhí)行步驟808;如果是多 匹配情況,則執(zhí)行步驟807;
807采用并行流水作業(yè)方式,將各命中條目的掩碼優(yōu)先級和待添加條目的掩碼優(yōu)先 級進行逐一比較;
808判斷掩碼優(yōu)先級比較情況,如果命中條目掩碼優(yōu)先級和待添加條目的掩碼優(yōu)先 級沒有一夢的情況,說明待添加條目尚不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果有一致的 情況,說明待添加條目己經(jīng)在當(dāng)前規(guī)則表中,執(zhí)行步驟803;
809檢查存儲回收隊列情況,如果回收隊列中有可用地址指針,執(zhí)行步驟810;如果
回收隊列屮無可用地址,執(zhí)行步驟811;
810將新條目寫入隊列最前地址中,并將條目對應(yīng)的掩碼優(yōu)先級和操作指令存入 RAM的對應(yīng)地址;
811將新條目寫入TCAM空閑存儲空間當(dāng)前最低地址中,并將條目對應(yīng)的掩碼優(yōu)先 級和操作指令存入RAM的對應(yīng)地址;
812刷新存儲空間狀態(tài)信息,條目添加操作完畢。
綜上所述,為了從根本上消除了TCAM條目存儲有序性要求,本發(fā)明根據(jù)掩碼計算 確定對應(yīng)條目的優(yōu)先級,并使之替代存儲地址成為最優(yōu)匹配結(jié)果輸出的判定依據(jù),將條 目輸出優(yōu)先級與存儲地址關(guān)系有效剝離,實現(xiàn)了條目的免排序存儲,解除了條目存儲和 管理的最大束縛。這樣,添加條目時,無需進行排序計算、關(guān)聯(lián)條目移動等操作步驟, 而是可以;k接存入空閑地址中,更新復(fù)雜度為O",結(jié)合優(yōu)化的條目管理策略,更有效 利用TCAM空閑地址,徹底解決了條目快速更新問題。在此方法實現(xiàn)下,還有效保證了 條目更新的正確性,并支持對條目輸出優(yōu)先級靈活高效調(diào)整,大大提高了基于三態(tài)內(nèi)容 可尋址存儲器應(yīng)用的設(shè)備的整體應(yīng)用性能。
權(quán)利要求
1、一種三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,其特征在于將規(guī)則條目存儲在三態(tài)內(nèi)容可尋址存儲器中,通過掩碼計算出條目掩碼優(yōu)先級,并將條目操作指令和條目掩碼優(yōu)先級一并存儲在關(guān)聯(lián)隨機存儲器中;當(dāng)接收到網(wǎng)絡(luò)數(shù)據(jù)后,進行相應(yīng)的協(xié)議解析,并提取約定字段組成匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器中進行匹配查找,根據(jù)匹配結(jié)果在關(guān)聯(lián)隨機存儲器中得到對應(yīng)數(shù)據(jù)包的條目操作指令,最終完成相應(yīng)操作和輸出轉(zhuǎn)發(fā);當(dāng)多匹配命中出現(xiàn)時,對命中條目的條目掩碼優(yōu)先級進行比較決定后最優(yōu)結(jié)果輸出。
2、 根據(jù)權(quán)利要求l所述的三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,其特征在于 當(dāng)三態(tài)內(nèi)容可尋址存儲器中的條目進行刪除更新時,步驟為(701) 、得到待刪除條目和條目刪除請求后,進入條目刪除流程;(702) 、將待刪除條目作為匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器中執(zhí)行匹配操作;(703) 、結(jié)果處理模塊對三態(tài)內(nèi)容可尋址存儲器的返回信息進行判斷,如果沒有匹 配命中,執(zhí)行步驟704;如果匹配命中,執(zhí)行步驟705;(704) 、終止刪除操作,并返回"待刪除條目不在當(dāng)前規(guī)則表內(nèi)"信息;(705) 、進一步判斷是否是多匹配情況,如果當(dāng)前是唯一匹配命中,執(zhí)行步驟707; 如果是多匹配情況,執(zhí)行步驟706;(706) 、采用并行流水作業(yè)方式,將各命中條目的掩碼優(yōu)先級和待刪除條目的掩碼 優(yōu)先級進行逐一比較;(707) 、進一步判斷,如果命中條目掩碼優(yōu)先級和待刪除條目的掩碼優(yōu)先級沒有一 致的情況,執(zhí)行步驟704;如果有一致的,執(zhí)行步驟708;(708) 、說明待刪除條目在當(dāng)前規(guī)則表中,對最終確定的命中結(jié)果所在地址上的數(shù) 據(jù)覆蓋全'l'或'0',實現(xiàn)對該條目的刪除;(709) 、將已刪除條目的地址指針存放到存儲回收隊列中,刷新狀態(tài)參數(shù),條目刪 除操作完畢。
3、 根據(jù)權(quán)利要求l所述的三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,其特征在于 當(dāng)三態(tài)內(nèi)容可尋址存儲器中的條目進行添加更新時,步驟為(801) 、得到待添加條目和條目添加請求后,進入條目添加流程;(802) 、先檢查三態(tài)內(nèi)容可尋址存儲器的存儲狀態(tài),如果尚有可用存儲空間,即三 態(tài)內(nèi)容可尋址存儲器中有空閑空間或者回收隊列中有可用地址指針時,則執(zhí)行步驟804; 如果既無空閑空間,同時回收隊列也無可用地址指針,說明當(dāng)前三態(tài)內(nèi)容可尋址存儲器 的存儲空間已滿,執(zhí)行步驟803;(803) 、終止條目添加操作,并返回"存儲空間滿"或"待添加條目已經(jīng)在當(dāng)前規(guī) 則表中"信息;(804) 、將待添加條目作為匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器執(zhí)行匹配操作;(805) 、對三態(tài)內(nèi)容可尋址存儲器的返回信息進行判斷,如果沒有匹配命中,說明 待添加條目不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果匹配命中,執(zhí)行步驟806;(806) 、進一步判斷是否是多匹配情況,如果是唯一匹配命中,執(zhí)行步驟808;如果 是多匹配情況,則執(zhí)行步驟807;(807) 、采用并行流水作業(yè)方式,將各命中條目的條目掩碼優(yōu)先級和待添加條目的 條目掩碼優(yōu)先級進行逐一 比較;(808) 、判斷掩碼優(yōu)先級比較情況,如果命中條目掩碼優(yōu)先級和待添加條目的掩碼 優(yōu)先級沒有一致的情況,說明待添加條目尚不在當(dāng)前規(guī)則表中,執(zhí)行步驟809;如果有一 致的情況,說明待添加條目已經(jīng)在當(dāng)前規(guī)則表中,執(zhí)行步驟803;(809) 、檢査存儲回收隊列情況,如果回收隊列中有可用地址指針,執(zhí)行步驟810;如果回收隊列中無可用地址,執(zhí)行步驟811;(810) 、將新條目寫入隊列最前地址中,并將條目對應(yīng)的掩碼優(yōu)先級和操作指令存 入關(guān)聯(lián)隨機存儲器的對應(yīng)地址;(811) 、將新條目寫入三態(tài)內(nèi)容可尋址存儲器的空閑存儲空間當(dāng)前最低地址中,并將 條目對應(yīng)的掩碼優(yōu)先級和操作指令存入關(guān)聯(lián)隨機存儲器的對應(yīng)地址;(812) 、刷新三態(tài)內(nèi)容可尋址存儲器的存儲空間狀態(tài)信息,條目添加操作完畢。
4、根據(jù)權(quán)利要求1或2或3所述的三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,其 特征在于執(zhí)行條目匹配流程時步驟為(501) 、形成匹配關(guān)鍵字;(502) 、將匹配關(guān)鍵字送入三態(tài)內(nèi)容可尋址存儲器中進行匹配操作;(503) 、判斷三態(tài)內(nèi)容可尋址存儲器的返回信息,如果沒有匹配命中,說明該數(shù)據(jù)包不在需求范圍內(nèi),對其執(zhí)行丟棄操作步驟504;(505) 、進一步判斷是否存在多匹配情況,如果沒有,即當(dāng)前為唯一匹配命中,執(zhí) 行步驟508;如果是多匹配情況,執(zhí)行步驟506;(506) 、采用并行流水作業(yè)方式將所有匹配命中條目對應(yīng)的條目掩碼優(yōu)先級一一讀 取并進行比較;(507) 、選取條目掩碼優(yōu)先級最高的匹配命中作為最優(yōu)匹配結(jié)果輸出;(508)、根據(jù)最優(yōu)匹配結(jié)果對應(yīng)的后續(xù)操作指令完成對數(shù)據(jù)包的處理和輸出轉(zhuǎn)發(fā)。
5、 根據(jù)權(quán)利要求4所述的三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法,其特征在于 所述多匹配情況時并行流水作業(yè)方式的步驟為(51) :獲取三態(tài)內(nèi)容可尋址存儲器的匹配結(jié)果;(52) :讀取關(guān)聯(lián)隨機存儲器的信息,得到與上述匹配結(jié)果對應(yīng)的條目掩碼優(yōu)先級和 操作指令;(53) :對條目掩碼優(yōu)先級比較;在每個操作時鐘下,將最新匹配結(jié)果的條目掩碼優(yōu) 先級與比較器中保存的條目掩碼優(yōu)先級進行比較,始終將較高的條目掩碼優(yōu)先級保存在 比較器中,并將對應(yīng)操作指令暫存在操作指令緩存器中,直至所有匹配結(jié)果比較完畢, 屆時操作指令緩存器中存放的就是對應(yīng)數(shù)據(jù)包的最終處理指令。
6、 一種三態(tài)內(nèi)容可尋址存儲器條目免排序存儲系統(tǒng),其特征在于它包括 數(shù)據(jù)接收模塊(301),用來接收網(wǎng)絡(luò)數(shù)據(jù),并根據(jù)要求進行協(xié)議解析,將解析后的數(shù)據(jù)包存入數(shù)據(jù)緩存模塊(309);數(shù)據(jù)處理模塊(302),用來對已經(jīng)完成協(xié)議解析的數(shù)據(jù)包進行約定字段提取,組成 匹配關(guān)鍵字;匹配模塊(303),接收匹配關(guān)鍵字,通過指令、數(shù)據(jù)以及寄存器管理控制三態(tài)內(nèi)容 可尋址存儲器實現(xiàn)匹配査找功能;管理模塊(304),用來對三態(tài)內(nèi)容可尋址存儲器和關(guān)聯(lián)隨機存儲器RAM的管理; 結(jié)果處理模塊(305),用來對匹配結(jié)果的分析處理;數(shù)據(jù)輸出模塊(306),用來根據(jù)結(jié)果處理模塊(305)的匹配結(jié)果獲取后續(xù)操作指令, 從數(shù)據(jù)緩存模塊(309)中讀取數(shù)據(jù)包的進行相應(yīng)處理和輸出轉(zhuǎn)發(fā);三態(tài)內(nèi)容可尋址存儲器(307),用來存放規(guī)則條目,并根據(jù)指令完成匹配關(guān)鍵字與 預(yù)存規(guī)則條目的并行匹配查找,輸出匹配命中與否以及是否存在多匹配命中等匹配狀態(tài) 信息和匹配命中結(jié)果;關(guān)聯(lián)隨機存儲器(308),用來存儲條目操作指令和條目掩碼優(yōu)先級;數(shù)據(jù)緩存模塊(309),存儲數(shù)據(jù)接收模塊(302)完成解析的數(shù)據(jù)包,并供數(shù)據(jù)輸出 模塊(306)讀取實現(xiàn)數(shù)據(jù)包的相應(yīng)處理和輸出轉(zhuǎn)發(fā)。
全文摘要
一種三態(tài)內(nèi)容可尋址存儲器條目免排序存儲方法及其系統(tǒng),規(guī)則條目無需進行排序處理,連續(xù)存儲在三態(tài)內(nèi)容可尋址存儲器(TCAM)中,通過規(guī)則掩碼計算出掩碼優(yōu)先級,并將其與操作指令一起存儲在關(guān)聯(lián)隨機存儲器(RAM)中;接收網(wǎng)絡(luò)數(shù)據(jù)后,進行協(xié)議解析,提取約定字段組成匹配關(guān)鍵字送入TCAM進行匹配查找,根據(jù)匹配結(jié)果從關(guān)聯(lián)RAM中得到對應(yīng)數(shù)據(jù)包的操作指令,最終完成相應(yīng)操作和輸出轉(zhuǎn)發(fā);當(dāng)有多匹配命中時,對所有命中條目的掩碼優(yōu)先級進行比較獲得最優(yōu)結(jié)果輸出。本發(fā)明實現(xiàn)了輸出判決與存儲地址的有效剝離,消除了TCAM條目存儲有序性要求,解除條目存儲和管理的最大束縛,結(jié)合優(yōu)化的條目管理策略,徹底解決條目更新復(fù)雜度問題。
文檔編號H04L12/56GK101350771SQ20081003169
公開日2009年1月21日 申請日期2008年7月7日 優(yōu)先權(quán)日2008年7月7日
發(fā)明者劉純武, 呂喜在, 唐貴林, 震 左, 張羿猛, 蘇紹璟, 黠 鄧, 郭熙業(yè), 黃芝平 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
同仁县| 苏尼特右旗| 奉新县| 莱芜市| 南宫市| 二连浩特市| 四会市| 江油市| 临澧县| 昌邑市| 新民市| 泸溪县| 呼玛县| 汉川市| 松滋市| 青神县| 霍城县| 泰来县| 田东县| 西盟| 五指山市| 榆中县| 平谷区| 泰安市| 化州市| 贵阳市| 北安市| 丰镇市| 琼中| 温泉县| 三原县| 望江县| 竹北市| 中江县| 辽阳县| 皮山县| 新绛县| 阳原县| 西藏| 仙桃市| 会东县|