用于tcam共享的架構(gòu)的制作方法
【專利摘要】本發(fā)明的各實(shí)施方式總體上涉及一種用于TCAM共享的架構(gòu)。具體地,本發(fā)明的各方面提供了一種分組處理系統(tǒng)。所述分組處理系統(tǒng)包括多個(gè)處理單元、三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)引擎和接口。所述多個(gè)處理單元被配置為處理從計(jì)算機(jī)網(wǎng)絡(luò)接收的分組,并執(zhí)行關(guān)于所接收的分組的動(dòng)作。該動(dòng)作響應(yīng)于規(guī)則表中的查找被確定以確定要應(yīng)用到所接收的分組的規(guī)則。所述TCAM引擎具有定義TCAM存儲(chǔ)器空間的相應(yīng)子集的多個(gè)TCAM組來存儲(chǔ)規(guī)則。所述接口被配置為可選擇地將TCAM組與處理單元相關(guān)聯(lián)。所述關(guān)聯(lián)可被配置為向處理單元的分組分配TCAM存儲(chǔ)器空間的子集,來由處理單元共享TCAM存儲(chǔ)器空間。
【專利說明】用于TCAM共享的架構(gòu)
[0001]通過引用并入
[0002]本公開要求2013年I月30日提交的美國臨時(shí)申請(qǐng)N0.61 / 758,497的“Architecture for TCAM Sharing”的權(quán)益,通過引用將其全文并入本文。
【背景技術(shù)】
[0003]在此處提供對(duì)【背景技術(shù)】的描述是用于從整體上給出本公開上下文的目的。就在此【背景技術(shù)】部分中描述的工作而言的、本發(fā)明發(fā)明人的工作,以及在遞交時(shí)不以其他方式作為現(xiàn)有技術(shù)的描述的方面,并不顯式或隱式承認(rèn)其是本公開的現(xiàn)有技術(shù)。
[0004]通常,內(nèi)容可尋址存儲(chǔ)器(CAM)用于各種應(yīng)用中,以提供相對(duì)快速的精確匹配搜索能力。在一個(gè)例子中,網(wǎng)絡(luò)設(shè)備(如網(wǎng)絡(luò)交換機(jī)、路由器等)包括三態(tài)CAM(TCAM)來為各種功能存儲(chǔ)用于多個(gè)交換規(guī)則的標(biāo)準(zhǔn),例如分組解析、服務(wù)分配的質(zhì)量、安全性、轉(zhuǎn)發(fā)、過濾等。在一個(gè)例子中,標(biāo)準(zhǔn)包括需求,例如范圍需求、精確匹配需求等等,這占用一個(gè)或多個(gè)TCAM詞條,而TCAM詞條的地址指向與標(biāo)準(zhǔn)相關(guān)聯(lián)的操作碼。當(dāng)網(wǎng)絡(luò)設(shè)備接收分組時(shí),提取分組的屬性以形成搜索關(guān)鍵字。搜索關(guān)鍵字與多個(gè)TCAM詞條進(jìn)行比較,通常來說,搜索關(guān)鍵字與多個(gè)TCAM詞條的比較在單個(gè)時(shí)鐘周期中并行地執(zhí)行,以在單個(gè)搜索操作中從TCAM詞條中找到匹配詞條。匹配詞條的地址指向操作碼。根據(jù)該操作碼,網(wǎng)絡(luò)設(shè)備在分組上采取指定的操作。
【發(fā)明內(nèi)容】
[0005]本公開的方面提供了一個(gè)分組處理系統(tǒng)。所述分組處理系統(tǒng)包括多個(gè)處理單元、三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)引擎和接口。所述多個(gè)處理單元被配置為處理從計(jì)算機(jī)網(wǎng)絡(luò)接收的分組,并執(zhí)行關(guān)于所接收的分組的動(dòng)作。該動(dòng)作響應(yīng)于規(guī)則表中的查找被確定以確定要應(yīng)用到所接收的分組的規(guī)則。所述TCAM引擎具有定義TCAM存儲(chǔ)器空間的相應(yīng)子集的多個(gè)TCAM組(bank)來存儲(chǔ)規(guī)則。所述接口被配置為可選擇地將TCAM組與處理單元相關(guān)聯(lián)。所述關(guān)聯(lián)可被配置為給處理單元的群組分配TCAM存儲(chǔ)器空間的子集,來由處理單元共享TCAM存儲(chǔ)器空間。
[0006]在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備包括控制器,所述控制器被配置為接收處理單元的存儲(chǔ)器空間需求的指示,并配置所述接口以基于所述指示為處理單元的群組分配TCAM存儲(chǔ)器的子集。在一個(gè)示例中,所述控制器被配置為控制所述可配置接口,將TCAM組與應(yīng)用中的活動(dòng)處理單元相關(guān)聯(lián)。例如,所述控制器被配置為接收指示存儲(chǔ)器空間需求的處理單元的活動(dòng)信息,并根據(jù)該活動(dòng)信息控制所述接口以向處理單元的群組分配存儲(chǔ)器空間的子集。
[0007]在一個(gè)示例中,所述接口被配置為將兩個(gè)或更多個(gè)處理單元關(guān)聯(lián)到處理群組中,并為該處理群組分配TCAM組的一個(gè)相同子集,以在通常適用于兩個(gè)或更多個(gè)處理單元的規(guī)則中執(zhí)行查找。此外,在一個(gè)示例中,所述接口被配置為將另一處理單元關(guān)聯(lián)到另一處理群組中,并且當(dāng)另一個(gè)處理單元應(yīng)用來自兩個(gè)或更多個(gè)處理單元的不同規(guī)則時(shí),為另一個(gè)處理群組分配TCAM組的另一子集。
[0008]根據(jù)本公開的一個(gè)方面,基于搜索關(guān)鍵字大小要求,兩個(gè)或更多個(gè)TCAM組的詞條耦合以形成TCAM組群組,該TCAM組群組被配置為當(dāng)搜索關(guān)鍵字匹配耦合的詞條時(shí)輸出耦合的詞條的索引。此外,所述接口被配置為基于處理群組的許多規(guī)則詞條需求,將一個(gè)或多個(gè)TCAM組群組與處理單元的處理群組相關(guān)聯(lián)。在一個(gè)示例中,所述接口被配置為當(dāng)TCAM組群組關(guān)聯(lián)到單個(gè)結(jié)果時(shí),基于TCAM組群組的優(yōu)先權(quán)順序而選擇來自TCAM組群組中的一個(gè)TCAM組的輸出。在另一個(gè)示例中,所述接口被配置為當(dāng)TCAM組群組關(guān)聯(lián)到不同的結(jié)果時(shí)輸出TCAM組群組的相應(yīng)輸出。
[0009]本公開的方面提供了一種用于在具有多個(gè)處理單元的分組處理系統(tǒng)中分組處理的方法。該方法包括:由處理單元解析接收的分組以生成搜索關(guān)鍵字,以及通過接口向三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)引擎提供搜索關(guān)鍵字。所述TCAM引擎包括多個(gè)定義TCAM存儲(chǔ)器空間各自的子集的TCAM組來存儲(chǔ)規(guī)則,所述接口可選擇地將TCAM組與處理單元相關(guān)聯(lián)。所述關(guān)聯(lián)可被配置為給處理單元的群組分配TCAM存儲(chǔ)器空間的子集來由處理單元共享TCAM存儲(chǔ)器空間。此外,該方法包括基于來自TCAM引擎的搜索結(jié)果執(zhí)行關(guān)于所接收的分組的動(dòng)作。
[0010]附圖簡(jiǎn)要說明
[0011]將參照以下附圖詳細(xì)說明作為示例提出的本公開的各種實(shí)施例,其中相同的標(biāo)號(hào)引用相同的元件,并且其中:
[0012]圖1示出了根據(jù)本公開的一個(gè)實(shí)施例,具有用于三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)共享的架構(gòu)的電子設(shè)備示例100的框圖;
[0013]圖2不出了根據(jù)本公開的一個(gè)實(shí)施例,具有TCAM共享配置的電子設(shè)備不例200的框圖;
[0014]圖3不出了根據(jù)本公開的一個(gè)實(shí)施例,具有TCAM共享配置的電子設(shè)備不例300的框圖;以及
[0015]圖4示出了根據(jù)本公開的一個(gè)實(shí)施例,概述過程示例400的流程圖。
【具體實(shí)施方式】
[0016]根據(jù)本公開的一個(gè)實(shí)施例,圖1示出了具有用于三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)共享的架構(gòu)的電子設(shè)備示例100的框圖。電子設(shè)備100包括TCAM引擎140,該TCAM引擎140具有多個(gè)TCAM組160、多個(gè)搜索客戶端110和可配置接口 120。接口 120可配置地關(guān)聯(lián)TCAM組160 (例如TCAM組群組150等)到搜索客戶端110,以使得基于搜索客戶端110的搜索服務(wù)需求,通過搜索客戶端110靈活地共享TCAM引擎140。如圖1所示,在一個(gè)實(shí)施例中,這些元件被合適地耦合在一起。
[0017]電子設(shè)備100可以是使用TCAM來匹配搜索關(guān)鍵字以存儲(chǔ)數(shù)據(jù)模式的任何合適的設(shè)備。在圖1的示例中,電子設(shè)備100是網(wǎng)絡(luò)設(shè)備100,例如網(wǎng)絡(luò)交換機(jī)、路由器等。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備100包括一個(gè)或多個(gè)被配置為處理分組的分組處理器(內(nèi)核),例如分組處理器111-114??梢允褂萌魏魏线m的架構(gòu)來分別實(shí)現(xiàn)分組處理器,如專用集成電路(ASIC)流水線處理引擎架構(gòu)、可編程處理引擎架構(gòu)、運(yùn)行到完成處理器的多重架構(gòu)等。例如,網(wǎng)絡(luò)設(shè)備100通過詞條端口接收網(wǎng)絡(luò)中傳送的分組(未示出),分組處理器111-114中的一個(gè)處理該分組,并確定關(guān)于該分組的操作,例如將該分組轉(zhuǎn)發(fā)給一個(gè)或多個(gè)出口端口以輸出該分組、丟棄該分組等。在另一示例中,網(wǎng)絡(luò)設(shè)備100接收兩個(gè)或更多個(gè)分組,兩個(gè)或更多個(gè)分組處理器111-114分別在同一時(shí)間處理所述分組,并確定關(guān)于所述分組的相應(yīng)動(dòng)作。
[0018]根據(jù)本公開的一個(gè)方面,基于規(guī)則確定關(guān)于分組的操作。在一個(gè)實(shí)施例中,規(guī)則包括標(biāo)準(zhǔn)和與標(biāo)準(zhǔn)相關(guān)聯(lián)的操作碼。標(biāo)準(zhǔn)為屬性指定數(shù)據(jù)模式。例如,轉(zhuǎn)換規(guī)則可以用通俗易懂的英語表述為“允許轉(zhuǎn)發(fā)源地址172.15.5.0 / 24,TCP端口號(hào)為I至14之間的分組”。在前面的示例中,轉(zhuǎn)換規(guī)則包括源地址標(biāo)準(zhǔn)、協(xié)議(TCP)標(biāo)準(zhǔn)、TCP端口號(hào)標(biāo)準(zhǔn)、以及與標(biāo)準(zhǔn)相關(guān)聯(lián)的操作碼“允許轉(zhuǎn)發(fā)”。當(dāng)所接收的分組滿足條件時(shí),可以根據(jù)操作碼采取關(guān)于所接收的分組的操作。
[0019]在圖1的示例中,每個(gè)分組處理器包括多個(gè)處理單元,例如用于分組處理器111-114中每一個(gè)的S0-S4等,這需要來自TCAM引擎140的搜索服務(wù)。分組處理器111-114中的處理單元S0-S4被稱為TCAM引擎140的搜索客戶端。
[0020]在一個(gè)示例中,分組包括128字節(jié)的報(bào)頭。分組處理單元S0-S4分別解析報(bào)頭的一部分以形成搜索關(guān)鍵字。向TCAM引擎140提供該搜索關(guān)鍵字。然后,TCAM引擎140分別查找搜索關(guān)鍵字,以確定具有由搜索關(guān)鍵字滿足的標(biāo)準(zhǔn)的規(guī)則。然后,搜索結(jié)果指示用于將應(yīng)用到該分組的操作的操作碼。
[0021]根據(jù)本公開的一個(gè)方面,標(biāo)準(zhǔn)存儲(chǔ)在TCAM引擎140中,分別從該標(biāo)準(zhǔn)存儲(chǔ)操作碼。在一個(gè)實(shí)施例中,標(biāo)準(zhǔn)存儲(chǔ)在TCAM引擎140中作為被索引的詞條,而操作碼存儲(chǔ)在存儲(chǔ)器(未示出,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)等)中由所述詞條的索引指向的地址處。在一個(gè)示例中,詞條的索引指向存儲(chǔ)該標(biāo)準(zhǔn)相關(guān)聯(lián)的操作碼的存儲(chǔ)器中的地址。
[0022]搜索客戶端110具有相同或不同的搜索服務(wù)需求。在一個(gè)示例中,用于搜索客戶端SO的規(guī)則詞條的數(shù)量相對(duì)大,例如大于512個(gè)詞條,搜索客戶端SI的規(guī)則詞條的數(shù)量相對(duì)小,例如小于256個(gè)詞條。在另一不例中,在分組處理器111-114中,用于分組處理器111-114中搜索客戶端SO的規(guī)則相同。在另一示例中,在特定應(yīng)用中,分組處理器113被禁用,因此,分組處理器113中的搜索客戶端S0-S4不需要任何搜索服務(wù)。
[0023]根據(jù)本公開的一個(gè)方面,每個(gè)TCAM組160被配置為能夠執(zhí)行搜索操作。多個(gè)TCAM組160形成TCAM組群組150。接口 120被配置為使能TCAM組群組150以便可單獨(dú)地分配給搜索客戶端。
[0024]具體地,在一個(gè)示例中,每個(gè)TCAM組160包括TCAM單元陣列來存儲(chǔ)數(shù)據(jù)模式和輔助電路(例如輸入電路)以接收搜索關(guān)鍵字,所述搜索關(guān)鍵字用于與存儲(chǔ)在TCAM組等中的數(shù)據(jù)模式比較。因此,每個(gè)TCAM組160是獨(dú)立地可操作的。在一個(gè)示例中,每個(gè)TCAM組160包括一個(gè)256*84的矩陣,該矩陣有256行和84列的TCAM單元。每一行是一個(gè)TCAM詞條。在一個(gè)示例中,在每一行中,80位用于數(shù)據(jù)模式,4位用于定義搜索關(guān)鍵字的大小。因此,每個(gè)TCAM組160適合于多達(dá)10字節(jié)的搜索關(guān)鍵字的大小和多達(dá)256個(gè)規(guī)則詞條。
[0025]根據(jù)本公開的一個(gè)方面,一行中的TCAM組形成一個(gè)層。在同一個(gè)層上的多個(gè)TCAM組可以耦合在一起,形成TCAM組群組150,以支持大范圍的關(guān)鍵字大小。在圖1的示例中,每個(gè)TCAM組群組150包括六個(gè)TCAM組,并支持80位至480位的所有關(guān)鍵字大小。注意,TCAM引擎140可以被實(shí)現(xiàn)為具有每個(gè)TCAM組群組150中任何合適數(shù)量的TCAM組。在另一示例中,每個(gè)TCAM組群組150包括八個(gè)TCAM組,并支持80位至640位的所有關(guān)鍵字大小。TCAM組群組150可以關(guān)聯(lián)到需要在所支持的范圍內(nèi)的關(guān)鍵字大小的搜索服務(wù)。此外,在不同的層上的多個(gè)TCAM組群組150可以關(guān)聯(lián)到需要用于搜索服務(wù)的相對(duì)大量的規(guī)則詞條的同一個(gè)搜索服務(wù)。
[0026]具體而言,在圖1的示例中,在同一個(gè)層上的六個(gè)相鄰的TCAM組耦合在一起,形成TCAM組群組150,TCAM組群組150中的TCAM組與同一個(gè)搜索服務(wù)相關(guān)聯(lián)。例如,六個(gè)TCAM組的同一詞條行中的對(duì)應(yīng)詞條被適當(dāng)?shù)伛詈弦孕纬神詈系脑~條。注意,每個(gè)耦合的詞條支持規(guī)則標(biāo)準(zhǔn)組合的許多組合,例如,在圖1的示例中,每個(gè)占用80位的多達(dá)六個(gè)短標(biāo)準(zhǔn)的第一組合,每個(gè)占用160位的多達(dá)三個(gè)標(biāo)準(zhǔn)的第二組合,具有480位的標(biāo)準(zhǔn)的第三組合,每個(gè)占用80位的四個(gè)標(biāo)準(zhǔn)與160位的另一標(biāo)準(zhǔn)的第四組合等。此外,在一個(gè)示例中,優(yōu)先權(quán)譯碼器被適當(dāng)?shù)伛詈蟃CAM組群組,用以在匹配搜索關(guān)鍵字的耦合的詞條之間輸出具有最高優(yōu)先權(quán)的耦合的詞條的索引。因此,例如,用于TCAM組群組的搜索關(guān)鍵字大小多達(dá)60字節(jié)。注意,TCAM引擎140可以被適當(dāng)?shù)匦薷?,以在每層上具有其他合適數(shù)量的TCAM組,并且TCAM引擎140可以被適當(dāng)?shù)匦薷?,以具有其他合適數(shù)量的一起耦合在每個(gè)TCAM組群組中的TCAM組。
[0027]在另一個(gè)實(shí)施例中,當(dāng)不同層的兩個(gè)TCAM組群組150與同一個(gè)搜索服務(wù)相關(guān)聯(lián)以產(chǎn)生結(jié)果時(shí),兩個(gè)TCAM組群組的優(yōu)先權(quán)譯碼器以優(yōu)先權(quán)順序耦合在一起。在一個(gè)示例中,較低層上的TCAM組群組150具有較高的優(yōu)先權(quán)順序。在另一個(gè)示例中,較高層上的TCAM組群組150具有較高的優(yōu)先權(quán)順序。在一個(gè)實(shí)施例中,在搜索操作期間,兩個(gè)TCAM組群組150分別響應(yīng)于同一搜索關(guān)鍵字而執(zhí)行搜索,兩個(gè)TCAM組群組150的優(yōu)先權(quán)譯碼器分別輸出TCAM組群組150中匹配詞條的索引,具有較高優(yōu)先權(quán)順序的索引被輸出為這兩個(gè)TCAM組群組150的聚集結(jié)果。因此,例如,用于兩個(gè)TCAM組群組150的規(guī)則詞條的數(shù)量多達(dá)512。
[0028]根據(jù)本公開的一個(gè)方面,接口 120被配置為將TCAM組群組150與搜索客戶端110相關(guān)聯(lián)。在圖1的示例中,接口 512包括用于集合客戶端的第一配置121和用于將組群組關(guān)聯(lián)到客戶端群組的第二配置123。
[0029]在一個(gè)實(shí)施例中,根據(jù)各自的搜索服務(wù)需求的規(guī)則共性,通過第一配置121對(duì)搜索客戶端110分組。相同客戶端群組中的搜索客戶端110應(yīng)用相同的規(guī)則,并共享TCAM組群組150的同一子集。注意,在一個(gè)示例中,每個(gè)搜索客戶端僅與一個(gè)客戶端群組相關(guān)聯(lián)。
[0030]此外,在一個(gè)實(shí)施例中,通過第二配置123,TCAM組群組150與客戶端群組相關(guān)聯(lián)。在一個(gè)示例中,每個(gè)TCAM組群組150只與一個(gè)客戶端群組相關(guān)聯(lián),而多個(gè)TCAM組群組150可與同一客戶端群組相關(guān)聯(lián)。
[0031]根據(jù)本公開的一個(gè)方面,接口 120是軟件可配置的。在一個(gè)示例中,第一配置121被存儲(chǔ)作為第一表,該第一表將客戶端關(guān)聯(lián)到客戶端群組中,而第二配置123被存儲(chǔ)為第二表,該第二表將TCAM組群組關(guān)聯(lián)到客戶端群組。根據(jù)第一表和第二表配置接口 120。第一表和第二表可由配置控制器修改(未不出)。在一個(gè)不例中,網(wǎng)絡(luò)設(shè)備100包括中央處理單元(CPU)(未示出),CPU執(zhí)行軟件指令來執(zhí)行所述配置控制器的功能。在另一個(gè)示例中,外部控制器耦合至網(wǎng)絡(luò)設(shè)備100以配置接口 120。
[0032]根據(jù)本公開的一個(gè)方面,基于搜索客戶端110的搜索需求,由多個(gè)搜索客戶端110靈活地共享TCAM引擎140。[0033]在一個(gè)示例中,相同的全局規(guī)則用于分組處理器111-114的處理單元SO中。接口120通過第一配置121將同一客戶端群組中分組處理器111-114的處理單元SO相關(guān)聯(lián),并通過第二配置123將一個(gè)或多個(gè)TCAM組群組與客戶端群組相關(guān)聯(lián)。所述一個(gè)或多個(gè)TCAM組群組用于存儲(chǔ)全局規(guī)則。因此,對(duì)于單獨(dú)的處理器,不可復(fù)制地存儲(chǔ)全局規(guī)則,而TCAM存儲(chǔ)器空間被節(jié)省。
[0034]在另一個(gè)示例中,處理單元(例如分組處理器112的處理單元SI)應(yīng)用來自其他處理單元的不同規(guī)則。接口 120通過第一配置121關(guān)聯(lián)客戶端群組中分組處理器112的處理單元SI,并通過第二配置123將一個(gè)或多個(gè)TCAM組群組與客戶端群組相關(guān)聯(lián)。所述一個(gè)或多個(gè)TCAM組群組用于存儲(chǔ)僅用于分組處理器112的處理單元SI的規(guī)則。
[0035]在另一示例中,對(duì)于特定的應(yīng)用,當(dāng)處理單元(例如分組處理器114中的處理級(jí)S4)未使用時(shí),接口 120被配置為不向處理單元分配任何TCAM組群組,而TCAM空間被節(jié)省。
[0036]在一個(gè)實(shí)施例中,基于網(wǎng)絡(luò)設(shè)備100的應(yīng)用,確定處理單元的使用信息和處理單元的服務(wù)需求信息,然后在網(wǎng)絡(luò)設(shè)備100進(jìn)入正常操作模式之前,基于配置模式中的使用信息和服務(wù)需求信息配置該接口 120。
[0037]在另一個(gè)實(shí)施例中,在網(wǎng)絡(luò)設(shè)備100的正常操作期間,檢測(cè)處理單元的使用信息和服務(wù)需求信息,然后基于程序運(yùn)行期間(on the fly)的使用信息和服務(wù)需求信息配置或重新配置該接口 120。
[0038]根據(jù)本公開的另一個(gè)方面,接口 120包括用于TCAM組群組的第三配置125以引起關(guān)聯(lián)。在一個(gè)實(shí)施例中,所述第三配置125可用于多字段搜索中以擴(kuò)大TCAM容量。在一個(gè)示例中,基于第一字段和第二字段中的值的排列,搜索服務(wù)包括執(zhí)行不同的操作的規(guī)則。在一個(gè)實(shí)施例中,第一字段和第二字段中的每個(gè)字段具有三個(gè)值,并且總共九個(gè)不同的操作分別與第一字段和第二字段的九個(gè)值的排列相關(guān)聯(lián)。在一個(gè)實(shí)施例中,為搜索服務(wù)分配兩個(gè)TCAM組群組。第一 TCAM組群組存儲(chǔ)用于第一字段的規(guī)則詞條,并通過第三配置125關(guān)聯(lián)第一結(jié)果,而第二 TCAM組群組存儲(chǔ)用于第二字段的規(guī)則詞條,并通過第三配置125關(guān)聯(lián)第二結(jié)果。因此,在TCAM引擎140中使用了總計(jì)六個(gè)詞條,而不是全部九個(gè)排列所需要的九個(gè)詞條。此外,例如,在低成本的存儲(chǔ)器(未示出,例如SRAM)中,九個(gè)操作碼分別與第一結(jié)果和第二結(jié)果的排列相關(guān)聯(lián)。因此,可以節(jié)省比低成本的存儲(chǔ)器更昂貴的TCAM存儲(chǔ)器空間。
[0039]在另一個(gè)實(shí)施例中,第三配置125用來支持每個(gè)查找階段(例如,在查找期間)的多個(gè)并行查找。在一個(gè)示例中,為搜索服務(wù)分配四個(gè)TCAM組群組。四個(gè)TCAM組群組分別存儲(chǔ)用于搜索服務(wù)的不同規(guī)則詞條,并且四個(gè)TCAM組群組分別關(guān)聯(lián)四個(gè)結(jié)果。在每個(gè)TCAM組群組中,例如通過存儲(chǔ)每個(gè)都匹配“I”和“O”的屏蔽位,屏蔽所有詞條的一部分。四個(gè)TCAM組群組有不同的屏蔽部分。因此,在查找期間,當(dāng)向TCAM引擎140提供搜索關(guān)鍵字時(shí),四個(gè)TCAM組群組分別基于該檢索關(guān)鍵字的不同部分(例如,對(duì)應(yīng)于所述TCAM組群組的未屏蔽部分)執(zhí)行查找,并生成四個(gè)結(jié)果。因此,并行執(zhí)行四個(gè)查找。
[0040]根據(jù)本公開的一個(gè)實(shí)施例,圖2不出了具有TCAM共享配置的電子設(shè)備200的框圖。電子設(shè)備200的組件與電子設(shè)備100中使用的那些組件是相同的或等同的;上面已經(jīng)提供了這些組件的描述,為清楚起見,這里將省略。
[0041]具體而言,在圖2的示例中,接口 220被配置為形成多個(gè)客戶端群組,例如第一客戶端群組GROUPO、第二客戶端群組GR0UP1、第三客戶端群組GR0UP4等。在一個(gè)示例中,在分組處理器211-214的處理單元SO中使用第一組全局規(guī)則,例如可以用通俗易懂的英語表述為“避免具有目標(biāo)地址字段中的特定值的分組”的過濾規(guī)則等。分組處理器211-214的所有的處理單元SO執(zhí)行接收的分組的目的地址的查找。接口 220被配置為將分組處理器211-214的處理單元SO分組到第一客戶端群組GROUPO中。在圖2的示例中,例如,第二組全局規(guī)則用于分組處理器211-214的處理單元SI中,接口 220被配置為將分組處理器211-214的處理單元SI分組到第二客戶端群組GROUPl中;而第三組全局規(guī)則用于分組處理器211-214的處理單元S4中,接口 220被配置為將分組處理器211-214的處理單元S4分組到第三客戶端群組GR0UP4中。注意,接口 220可以包括未示出的其他客戶端群組。
[0042]此外,接口 220被配置為分配TCAM組群組到客戶端群組。在圖2的示例中,接口220被配置為分配TCAM組群組251、252和256到第一客戶端群組GROUPO,分配TCAM組群組255到第二客戶端群組GROUPl,并分配TCAM組群組253和254到第三客戶端群組GR0UP4。未示出用于其他客戶端群組的TCAM存儲(chǔ)器空間分配。
[0043]根據(jù)本公開的一個(gè)實(shí)施例,圖3不出了具有TCAM共享配置的電子設(shè)備300的框圖。電子設(shè)備300包括與電子設(shè)備100中使用的那些組件相同或等同的組件;上面已經(jīng)提供了這些組件的描述,為清楚起見,這里將省略。
[0044]在圖3的示例中,TCAM組群組351、352、354和356被分配給同一客戶端群組GR0UP3但不分配給不同的結(jié)果,而TCAM組群組353和355被分配給客戶端群組GROUPl和相同的結(jié)果。在一個(gè)實(shí)施例中,不聚集輸出分別來自TCAM組群組351、352、354和356的搜索結(jié)果。此外,聚集來自TCAM組群組353和355的搜索結(jié)果。例如,具有較高優(yōu)先權(quán)順序的搜索結(jié)果被輸出為聚集的搜索結(jié)果。
[0045]根據(jù)本公開的一個(gè)實(shí)施例,圖4示出了概述過程示例400的流程圖。在一個(gè)示例中,過程400由電子設(shè)備100執(zhí)行。該過程開始于S401,并進(jìn)入S410。
[0046]在S410,電子設(shè)備(例如電子設(shè)備100)進(jìn)入配置模式。在圖1的示例中,在配置模式下,接口 120被配置為分配TCAM組160到搜索客戶端110。在一個(gè)示例中,CPU(例如,電子設(shè)備100的內(nèi)部CPU或電子設(shè)備100的外部CPU)執(zhí)行軟件指令來構(gòu)造用于配置該接口120的表,例如,將搜索客戶端分組到客戶端群組中的第一表,將TCAM組群組關(guān)聯(lián)到客戶端群組的第二表,將TCAM組群組關(guān)聯(lián)到結(jié)果的第三表等。然后,根據(jù)所述表配置該接口 120。
[0047]在S420,基于搜索服務(wù)需求將搜索客戶端關(guān)聯(lián)到客戶端群組中。在一個(gè)示例中,通過第一配置121將使用相同的全局規(guī)則的搜索客戶端關(guān)聯(lián)到同一個(gè)客戶端群組中。在另一個(gè)示例中,將使用來自其他搜索客戶端的不同規(guī)則的搜索客戶端關(guān)聯(lián)到與其他搜索客戶端相分離的客戶端群組中。在另一個(gè)示例中,無效的搜索客戶端不關(guān)聯(lián)到任何客戶端群組中。
[0048]在S430,TCAM組群組關(guān)聯(lián)到客戶端群組和結(jié)果。在一個(gè)示例中,通過第二配置123將TCAM組群組關(guān)聯(lián)到客戶端群組。在一個(gè)示例中,TCAM組群組僅關(guān)聯(lián)到一個(gè)客戶端群組。此外,在一個(gè)示例中,通過第三配置125將TCAM組群組關(guān)聯(lián)到同一結(jié)果或不同結(jié)果。
[0049]在S440,電子設(shè)備退出配置模式,然后過程進(jìn)入S499并終止。
[0050]注意,該電子設(shè)備具有其它合適的模式。在一個(gè)示例中,在接口配置之后,網(wǎng)絡(luò)設(shè)備100進(jìn)入規(guī)則輸入模式,用于不同客戶端群組的各自規(guī)則分別存儲(chǔ)在為客戶端群組所分配的TCAM組群組中。然后,網(wǎng)絡(luò)設(shè)備100進(jìn)入正常操作模式。在一個(gè)示例中,在正常操作模式中,網(wǎng)絡(luò)設(shè)備100接收分組,分組處理器111-114中的處理單元解析所述分組并生成搜索關(guān)鍵字,而共享TCAM引擎140根據(jù)接口 120的配置執(zhí)行搜索。具體地,在一個(gè)示例中,根據(jù)客戶端群組的第一配置121向TCAM引擎140提供搜索關(guān)鍵字。該TCAM引擎140執(zhí)行客戶端群組的查找,并根據(jù)第二配置123產(chǎn)生結(jié)果(組群組到客戶端群組的關(guān)聯(lián))和第三配置125 (組群組到結(jié)果的關(guān)聯(lián))。所述結(jié)果指示要應(yīng)用到接收的分組的適當(dāng)?shù)牟僮鳌?br>
[0051]雖然本公開的方面已經(jīng)結(jié)合作為示例、替代、修改而提出的其特定的實(shí)施例進(jìn)行了描述,并且可以對(duì)示例作出改變。因此,如本文所闡述的實(shí)施例意圖是說明性的,而非限制性的。存在可能作出的改變而不脫離以下所闡述的權(quán)利要求的范圍。
【權(quán)利要求】
1.一種分組處理系統(tǒng),包括: 多個(gè)處理單元,被配置為處理從計(jì)算機(jī)網(wǎng)絡(luò)接收的分組數(shù)據(jù),并對(duì)所接收的分組執(zhí)行動(dòng)作,所述動(dòng)作響應(yīng)于規(guī)則表中的查找被確定以確定要應(yīng)用到所接收的分組的規(guī)則; 三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)引擎,其具有定義TCAM存儲(chǔ)器空間的相應(yīng)子集的多個(gè)TCAM組以存儲(chǔ)所述規(guī)則;以及 接口,被配置為可選擇地將所述TCAM組與所述處理單元關(guān)聯(lián),所述關(guān)聯(lián)可被配置為向所述處理單元的群組分配所述TCAM存儲(chǔ)器空間的子集以由所述處理單元共享所述TCAM存儲(chǔ)器空間。
2.根據(jù)權(quán)利要求1所述的分組處理系統(tǒng),進(jìn)一步包括: 控制器,被配置為接收所述處理單元的存儲(chǔ)器空間需求的指示,并基于所述指示向所述處理單元的所述群組分配所述TCAM存儲(chǔ)器的子集。
3.根據(jù)權(quán)利要求1所述的分組處理系統(tǒng),其中,所述接口被配置為將兩個(gè)或更多個(gè)處理單元關(guān)聯(lián)到處理群組,并向所述處理群組分配TCAM組的相同子集,以在通常適用于所述兩個(gè)或更多個(gè)處理單元的規(guī)則中執(zhí)行查找。
4.根據(jù)權(quán)利要求3所述的分組處理系統(tǒng),其中,所述接口被配置為將另一處理單元關(guān)聯(lián)到另一處理群組,并且當(dāng)另一個(gè)處理單元應(yīng)用來自所述兩個(gè)或更多個(gè)處理單元的不同規(guī)則時(shí),向另一個(gè)處理群組分配TCAM組的另一子集。
5.根據(jù)權(quán)利要求1所述的分組處理系統(tǒng),其中,基于搜索關(guān)鍵字大小要求,將兩個(gè)或更多個(gè)TCAM組的詞條耦合以形成TCAM組群組,并且所述TCAM組群組被配置為當(dāng)搜索關(guān)鍵字匹配所耦合的詞條時(shí),輸出所耦合的詞條的索引。
6.根據(jù)權(quán)利要求5所述的分組處理系統(tǒng),其中,所述接口被配置為基于所述處理群組所需的許多規(guī)則詞條,將一個(gè)或多個(gè)TCAM組群組與處理單元的處理群組關(guān)聯(lián)。
7.根據(jù)權(quán)利要求6所述的分組處理系統(tǒng),其中,所述接口被配置為當(dāng)所述TCAM組群組與單個(gè)結(jié)果關(guān)聯(lián)時(shí),基于所述TCAM組群組的優(yōu)先權(quán)順序而選擇來自所述TCAM組群組中的一個(gè)TCAM組群組的輸出。
8.根據(jù)權(quán)利要求6所述的分組處理系統(tǒng),其中,所述接口被配置為當(dāng)所述TCAM組群組與不同的結(jié)果關(guān)聯(lián)時(shí),輸出所述TCAM組群組的相應(yīng)輸出。
9.根據(jù)權(quán)利要求2所述的分組處理系統(tǒng),其中,所述控制器被配置為控制所述可配置接口以將所述TCAM組與應(yīng)用中的活動(dòng)處理單元關(guān)聯(lián)。
10.根據(jù)權(quán)利要求2所述的分組處理系統(tǒng),其中,所述控制器被配置為接收指示所述存儲(chǔ)器空間需求的所述處理單元的活動(dòng)信息,并根據(jù)所述活動(dòng)信息控制所述接口以向所述處理單元的群組分配所述存儲(chǔ)器空間的子集。
11.一種用于在具有多個(gè)處理單元的分組處理系統(tǒng)中的分組處理的方法,包括: 由處理單元解析接收的分組以生成搜索關(guān)鍵字; 通過接口向三態(tài)內(nèi)容可尋址存儲(chǔ)器(TCAM)引擎提供所述搜索關(guān)鍵字,其中,所述TCAM引擎包括定義TCAM存儲(chǔ)器空間的相應(yīng)子集的多個(gè)TCAM組以存儲(chǔ)規(guī)則,并且所述接口可選擇地將所述TCAM組與所述處理單元關(guān)聯(lián),所述關(guān)聯(lián)可被配置為向所述處理單元的群組分配所述TCAM存儲(chǔ)器空間的子集以由所述處理單元共享所述TCAM存儲(chǔ)器空間;以及 基于來自所述TCAM引擎的搜索結(jié)果,對(duì)所接收的分組執(zhí)行動(dòng)作。
12.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括: 接收所述處理單元的存儲(chǔ)器空間需求的指示;以及 基于所述指示向所述處理單元的群組分配所述TCAM存儲(chǔ)器的子集。
13.根據(jù)權(quán)利要求11所述的方法,其中,所述接口將所述處理單元以及一個(gè)或多個(gè)其他處理單元關(guān)聯(lián)到處理群組,并向所述處理群組分配TCAM組的相同子集以在通常適用于所述處理單元以及所述一個(gè)或多個(gè)其他處理單元的規(guī)則中執(zhí)行查找。
14.根據(jù)權(quán)利要求11所述的方法,其中,所述接口將單個(gè)處理單元關(guān)聯(lián)到處理群組,并且當(dāng)所述處理單元應(yīng)用來自其他處理單元的不同規(guī)則時(shí),向所述處理群組分配TCAM組的子集。
15.根據(jù)權(quán)利要求11所述的方法,進(jìn)一步包括: 響應(yīng)于所述搜索關(guān)鍵字,在TCAM組群組中搜索耦合的詞條,其中,所述TCAM組群組用耦合的兩個(gè)或更多個(gè)TCAM組的詞條形成;以及 輸出匹配所述搜索關(guān)鍵字的耦合的詞條的索引。
16.根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括: 搜索與所述處理單元關(guān)聯(lián)的兩個(gè)或更多個(gè)TCAM組群組。
17.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括: 當(dāng)所述TCAM組群組與單個(gè)結(jié)果關(guān)聯(lián)時(shí),基于所述TCAM組群組的優(yōu)先權(quán)順序選擇來自所述TCAM組群組中的一個(gè)TCAM組群組的輸出。
18.根據(jù)權(quán)利要求16所述的方法,進(jìn)一步包括: 當(dāng)所述TCAM組群組與不同的結(jié)果關(guān)聯(lián)時(shí),輸出所述TCAM組群組的相應(yīng)輸出。
19.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括: 將所述TCAM組與應(yīng)用中的活動(dòng)處理單元關(guān)聯(lián)。
20.根據(jù)權(quán)利要求12所述的方法,進(jìn)一步包括: 接收指示所述存儲(chǔ)器空間需求的所述處理單元的活動(dòng)信息;以及 根據(jù)所述活動(dòng)信息向所述處理單元的群組分配所述存儲(chǔ)器空間的子集。
【文檔編號(hào)】G06F17/30GK103970829SQ201410102290
【公開日】2014年8月6日 申請(qǐng)日期:2014年1月30日 優(yōu)先權(quán)日:2013年1月30日
【發(fā)明者】L·瓦倫西, A·沃爾格木斯, G·利維 申請(qǐng)人:馬維爾以色列(M.I.S.L.)有限公司