亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分組交換機(jī)中的可配置幀處理管道的制作方法

文檔序號:6350766閱讀:276來源:國知局
專利名稱:分組交換機(jī)中的可配置幀處理管道的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及分組交換機(jī),并且具體地,涉及分組交換機(jī)中的可配置幀處理管道(,pipeline)。
背景技術(shù)
分組交換機(jī)是許多網(wǎng)絡(luò)設(shè)備和交換結(jié)構(gòu)體系架構(gòu)的基礎(chǔ)模塊,其在入端口上接收數(shù)據(jù)幀,將幀臨時存儲在共享存儲器或數(shù)據(jù)路徑交叉開關(guān)(crossbar)中,并且,在ー個或多個出端口上發(fā)送每個幀。某些分組交換機(jī)僅實(shí)現(xiàn)非?;镜墓δ埽?,對所接收到的幀的簡單轉(zhuǎn)發(fā),而其他分組交換機(jī)提供相對更加復(fù)雜的幀處理能力,例如,實(shí)現(xiàn)服務(wù)水平協(xié)議的條款。不管復(fù)雜級別如何,分組交換機(jī)通常包括資源,該資源參照存儲在幀頭部(即,幀處理管道)中的信息來判定應(yīng)當(dāng)如何處理每幀。慣常地,幀處理管道被實(shí)現(xiàn)為在幀頭部數(shù)據(jù)上執(zhí)行預(yù)定的固定邏輯操作的復(fù)雜但相對靜態(tài)的功能。該慣常方式使得很難實(shí)現(xiàn)動態(tài)地處理不同類型的數(shù)據(jù)幀的交換機(jī)。另外,這種設(shè)計的靜態(tài)性質(zhì)對修補(bǔ)錯誤或更新設(shè)計以融合新功能呈現(xiàn)了顯著障礙,其通常需要顯著的重設(shè)計。

發(fā)明內(nèi)容
根據(jù)ー類實(shí)施例,提供了包括多端ロ交換數(shù)據(jù)路徑的分組交換機(jī)。多個入口端ロ接收進(jìn)入數(shù)據(jù)幀。入口互聯(lián)電路有選擇地將所述入口端ロ中的每ー個連接至所述交換數(shù)據(jù)路徑。多個出口端ロ發(fā)送外出數(shù)據(jù)幀。出口互聯(lián)電路有選擇地將所述出口端口中的每ー個連接至所述交換數(shù)據(jù)路徑。控制電路控制所述入口互聯(lián)電路和所述出ロ互聯(lián)電路以及所述交換數(shù)據(jù)路徑的操作,以輔助將所述進(jìn)入數(shù)據(jù)幀寫入到所述交換數(shù)據(jù)路徑并從所述交換數(shù)據(jù)路徑讀取所述外出數(shù)據(jù)幀。幀處理管道電路參照與所述進(jìn)入數(shù)據(jù)幀相關(guān)聯(lián)的進(jìn)入頭部數(shù)據(jù)來判定進(jìn)入幀中的每ー個的轉(zhuǎn)發(fā)行為和應(yīng)用到所述進(jìn)入幀中的每ー個的修改。該幀處理管道還生成與所述外出數(shù)據(jù)幀相關(guān)聯(lián)的外出頭部數(shù)據(jù)。幀處理管道電路包括多個管道階 段。所述管道階段包括將所述進(jìn)入頭部數(shù)據(jù)的一部分導(dǎo)向到數(shù)據(jù)字段信道中的數(shù)據(jù)字段的解析電路。所選擇的管道階段包括可編程結(jié)構(gòu),該可編程結(jié)構(gòu)被配置為從所述數(shù)據(jù)字段信道中動態(tài)選擇ー個或多個操作數(shù)并利用所述ー個或多個操作數(shù)來執(zhí)行ー個或多個操作。參照基于每幀從所述數(shù)據(jù)字段信道導(dǎo)出的一個或多個關(guān)鍵字來完成對所述ー個或多個操作數(shù)和所述ー個或多個操作的選擇。所述管道階段還包括被配置為參照所述數(shù)據(jù)字段信道來生成所述外出頭部數(shù)據(jù)的修改電路。根據(jù)另ー類實(shí)施例,提供了被配置為互聯(lián)多個計算設(shè)備的交換結(jié)構(gòu),該交換結(jié)構(gòu)包括多個互聯(lián)的分組交換機(jī),根據(jù)發(fā)明來實(shí)現(xiàn)至少某些分組交換機(jī)。根據(jù)又ー類實(shí)施例,提供了ー種在包括中央交換結(jié)構(gòu)的多芯片交換系統(tǒng)中所使用的網(wǎng)絡(luò)處理設(shè)備。所述網(wǎng)絡(luò)處理設(shè)備被配置為部署在所述中央交換結(jié)構(gòu)和外部設(shè)備之間,該外部設(shè)備被配置為經(jīng)由所述網(wǎng)絡(luò)處理設(shè)備將數(shù)據(jù)幀發(fā)送到所述中央交換結(jié)構(gòu)并從所述中央交換結(jié)構(gòu)接收數(shù)據(jù)幀。所述網(wǎng)絡(luò)處理設(shè)備包括管道電路,該管道電路被配置為在數(shù)據(jù)字段信道中的數(shù)據(jù)字段上操作,以判定對應(yīng)于所述數(shù)據(jù)字段信道中的數(shù)據(jù)字段的數(shù)據(jù)幀的轉(zhuǎn)發(fā)行為和對所述對應(yīng)于所述數(shù)據(jù)字段信道中的數(shù)據(jù)字段的數(shù)據(jù)幀所應(yīng)用的修改。所述管道電路包括多個管道階段。所選的所述管道階段包括可編程結(jié)構(gòu),該可編程結(jié)構(gòu)被配置為從所述數(shù)據(jù)字段信道動態(tài)選擇ー個或多個操作數(shù)和將要利用所述ー個或多個操作數(shù)來執(zhí)行的ー個或多個操作。參照從所述數(shù)據(jù)字段信道所導(dǎo)出的一個或多個關(guān)鍵字來完成對所述ー個或多個操作數(shù)和所述ー個或多個操作的選擇。
通過參照說明書和示圖的剩余部分,可實(shí)現(xiàn)對本發(fā)明的本質(zhì)和優(yōu)點(diǎn)的進(jìn)ー步理解。


圖I是可根據(jù)發(fā)明的各種實(shí)施例實(shí)現(xiàn)的共享存儲器交換機(jī)的示圖。圖2是可根據(jù)發(fā)明的各種實(shí)施例實(shí)現(xiàn)的幀處理管道的示例的示圖。圖3示出了對幀處理管道計算的階段的一般表示。圖4示出了根據(jù)發(fā)明的具體實(shí)施例的精煉了圖3的表示的計算結(jié)構(gòu)。圖5示出了根據(jù)發(fā)明的具體實(shí)施例的進(jìn)ー步精煉了圖3的表示的計算結(jié)構(gòu)。圖6是根據(jù)發(fā)明的具體實(shí)施例的可配置處理管道階段的框圖。圖7是根據(jù)發(fā)明的另一具體實(shí)施例的可配置幀處理管道階段的框圖。圖8是根據(jù)發(fā)明的又一具體實(shí)施例的可配置幀處理管道階段的框圖。圖9是根據(jù)發(fā)明的更加具體的實(shí)施例的被配置為實(shí)現(xiàn)層2幀處理的可配置幀處理處理管道階段的框圖。圖10是根據(jù)發(fā)明的具體實(shí)施例的可配置幀解析器的框圖。圖11是圖10的解析器的一部分的框圖。圖12是根據(jù)發(fā)明的具體實(shí)施例的可配置動作決議管道階段的框圖。
具體實(shí)施例方式現(xiàn)將詳細(xì)參照發(fā)明的具體實(shí)施例,該具體實(shí)施例包括發(fā)明人所構(gòu)想的用于實(shí)施發(fā)明的最佳模式。附圖中示出了這些具體實(shí)施例的示例。雖然與這些具體實(shí)施例一起描述了發(fā)明,但是,將理解,這并不意欲將發(fā)明限制為所描述的實(shí)施例。相反地,意欲覆蓋替換例、修改例和等同物,因?yàn)槠淇杀话ㄔ谟伤綑?quán)利要求所定義的發(fā)明的精神和范圍內(nèi)。在以下描述中,給出了具體細(xì)節(jié),以便提供對本發(fā)明的徹底理解??梢詿o需某些或全部這些具體的細(xì)節(jié)來實(shí)踐本發(fā)明。另外,將不詳細(xì)描述公知特征,以避免不必要地模糊發(fā)明。根據(jù)發(fā)明的各種實(shí)施例,高可配置幀處理管道被在高性能分組交換機(jī)匯總使能。在這種交換機(jī)體系架構(gòu)中,幀處理管道(FPP)是集中處理資源,其負(fù)責(zé)解析、分類并修改與由交換機(jī)所處理的每個幀相關(guān)聯(lián)的分組頭部,并且,向交換機(jī)數(shù)據(jù)路徑提供必要的轉(zhuǎn)發(fā)和服務(wù)質(zhì)量(QoS)指令。根據(jù)這種實(shí)施例設(shè)計的管道利用以滿足嚴(yán)格的區(qū)域和功率要求的高效方式使能該可配置性的可編程電路結(jié)構(gòu)。不同于實(shí)現(xiàn)了帶有很少可配置性或沒有可配置性的相對靜止的管道的之前的體系架構(gòu),發(fā)明的實(shí)施例利用了可泛化的極其可配置的方式,以用于實(shí)現(xiàn)幀處理功能。根據(jù)這種實(shí)施例所實(shí)現(xiàn)的幀處理管道可執(zhí)行與之前的管道相同的基本功能,但是,很多低層硬件更加通用,使得管道的行為更容易適應(yīng)變化的要求。另夕卜,使得故障處理和對錯誤的修補(bǔ)極大方便。根據(jù)具體的實(shí)施例,幀處理管道的可配置性使能基于每幀的由相同電路所進(jìn)行的對不同類型幀的動態(tài)處理。應(yīng)當(dāng)注意,術(shù)語“幀”和“分組”可被互換使用,因?yàn)槎叨际菢?biāo)準(zhǔn)術(shù)語,其指各種協(xié)議(例如,以太網(wǎng)、IP、光纖信道、以太網(wǎng)上的光纖信道,無限帶寬等)中數(shù)據(jù)傳輸?shù)幕緟g位,通過利用該術(shù)語,本發(fā)明的實(shí)施例可被使用。還應(yīng)當(dāng)注意,通過示例的方式提供了對特定類型的幀或分組和/或具體的數(shù)據(jù)傳輸或網(wǎng)絡(luò)通信協(xié)議的參照,并且,其并不意欲限 制發(fā)明的范圍。而是,本領(lǐng)域技術(shù)人員將理解本發(fā)明所使能的可配置電路結(jié)構(gòu)和管道的廣泛的適用性。圖I示出了根據(jù)發(fā)明的具體實(shí)施例所實(shí)現(xiàn)的共享存儲器交換機(jī)。共享存儲器交換機(jī)100具有共享存儲器102、將入口和出ロ端ロ 108和110連接至存儲器102的入口和出ロ交叉開關(guān)104和106,以及控制交叉開關(guān)和存儲器的調(diào)度器111。幀處理管道(FPP) 112解析進(jìn)入幀,并且,執(zhí)行判定幀是如何被處理的頭部計算。幀(例如,以太網(wǎng)幀)進(jìn)入交換機(jī),并且,端ロ邏輯復(fù)制頭部并將其到FPP 112。FPP中的邏輯判定幀將要被轉(zhuǎn)發(fā)至的(ー個或多個)出ロ端ロ集、應(yīng)用到其層2-4頭部字段的修改,以及交換機(jī)調(diào)度器111所支持的任意服務(wù)質(zhì)量指令。通過在許多種分組交換應(yīng)用上利用這種處理階段所公共的以下顯著屬性中的至少ー些,發(fā)明的實(shí)施例向FPP提供所目標(biāo)的可編程性 非常少的幀對幀狀態(tài)。應(yīng)用到每幀的絕大多數(shù)的計算僅取決于包括在每幀內(nèi)的具體數(shù)據(jù)字段,而非由設(shè)備所處理的過去幀的歷史。 受限的頭部格式。雖然交換機(jī)必須處理的幀長度通常是可變的并可以非常大(10KB或更多),但是,分組頭部格式和相關(guān)聯(lián)的處理要求遠(yuǎn)沒有那么可變。由于分組頭部被定義為位于每個數(shù)據(jù)幀的開始處,因此,F(xiàn)PP僅需要處理每幀的某些固定的最大數(shù)目的初始字節(jié),通過不多于64-128字節(jié)。另外,僅有每個頭部中的字節(jié)的具體子集才與FPP計算相關(guān)。 重復(fù)的分類階段,追隨其后的是字段修改。出現(xiàn)在大多數(shù)幀處理管道中的計算的一般模式是ー個或多個頭部分類階段,追隨其后的是取決于分類結(jié)果的數(shù)據(jù)字段修改規(guī)貝U。例如,出現(xiàn)在管道的開始處的幀解析遵循該模式,最后出ロ頭部字段修改階段也遵循該模式,以及各種中間地址查找階段也遵循該模式。 受限的特定交換機(jī)示例必須支持的幀簡檔的集。給定的交換機(jī)示例僅需支持如其協(xié)議所標(biāo)識的或如取決于協(xié)議的具體頭部字段所分類的有限數(shù)目的幀類型。必須支持的具體幀類型取決于若干因素
O應(yīng)用上下文的通用屬性。例如,部署在層2網(wǎng)絡(luò)中的以太網(wǎng)交換機(jī)可需要支持所有標(biāo)準(zhǔn)的以太網(wǎng)轉(zhuǎn)發(fā)功能(泛洪、學(xué)習(xí)等),但是,可不要求對高層頭部協(xié)議的任意處理或知曉其他層2協(xié)議。O具體的取決于示例的屬性。例如,IP路由器必須基于針對該示例所配置的對姆幀的層2目的地地址相對于單個路由器地址的具體測試來識別將要路由的幀。O在特定網(wǎng)絡(luò)部署中的角色。例如,在供應(yīng)商骨干網(wǎng)中,在網(wǎng)絡(luò)邊緣處的交換機(jī)可需要識別許多種分組類型并支持用于封裝和解封裝那些分組的方法,而部署在這種網(wǎng)絡(luò)的內(nèi)部的交換機(jī)僅需要支持更加受限的已封裝幀類型的集。特定交換機(jī)必須處理的幀的 每個不同類別以及該類別所關(guān)聯(lián)的處理規(guī)則被稱為幀簡檔。給定交換機(jī)設(shè)備所支持的簡檔越多,交換機(jī)可被部署的應(yīng)用上下文越多。給定在支持不斷增長的端ロ速度和集成要求的處理中的攀升的VLSI半導(dǎo)體制造成本,因此,單個交換機(jī)設(shè)備支持寬范圍的幀簡檔而不要求針對每個應(yīng)用的設(shè)計定制變得越來越重要。圖2提供了對可根據(jù)發(fā)明的實(shí)施例來實(shí)現(xiàn)的FPP的高層闡釋,其提供了對層2/3路由器設(shè)備中的某些公共的高層FP功能的概念描繪,可利用此處所描述的可配置電路結(jié)構(gòu)來(或多或少地)實(shí)現(xiàn)每個功能。FPP 200包括解析器202,該解析器202接收幀頭部、識別各種幀頭部數(shù)據(jù)字段,并且,將頭部數(shù)據(jù)導(dǎo)向(vector)至FPP的數(shù)據(jù)字段信道204中的各個位置。如將討論的,數(shù)據(jù)字段信道包括各種下行流管道階段在其上操作的數(shù)據(jù),以及提供給那些下行流階段的控制信息和/或索引信息。幀格式本質(zhì)上可變的事實(shí)使得解析功能具有挑戰(zhàn)性,因?yàn)檫@些字段中的每ー個的相關(guān)信息可能在連續(xù)分組中的不同位置中。如將要討論的,通過使能基于每幀的對不同類型幀的動態(tài)處理,根據(jù)本發(fā)明的實(shí)施例所設(shè)計的FPP的可配置性有效地滿足了該挑戰(zhàn)。層3查找206接收輸入,該輸入以被導(dǎo)向至數(shù)據(jù)字段信道204中的預(yù)定位置的頭部數(shù)據(jù)的形式存在。這些導(dǎo)向數(shù)據(jù)可被看作是包括n個字段的n元組(tuple)。結(jié)果輸出是管道的后續(xù)階段所使用的條件集和索引集。如以下將要討論的,查找206是關(guān)聯(lián)查找(其可包括n個階段的關(guān)聯(lián)查找),因?yàn)檩斎霐?shù)據(jù)映射到一個或多個相關(guān)聯(lián)的表中的(一個或多個)位置?!跋漏`跳”階段208利用來自關(guān)聯(lián)查找的路由索引來標(biāo)識表示正被處理的幀的下一路由“跳”的新的字段集。新的字段集隨后被應(yīng)用于下一管道階段中的關(guān)聯(lián)查找,即,MAC階段210。MAC階段210是層2關(guān)聯(lián)查找階段,其導(dǎo)致最終的修改階段212的另ー轉(zhuǎn)發(fā)條件和索引集,該修改階段212修改數(shù)據(jù)字段信道204中的數(shù)據(jù),以導(dǎo)致反映新的源地址和目的地地址的幀的新的頭部。修改階段212本質(zhì)上執(zhí)行解析器202的反向操作,即,其取出數(shù)據(jù)字段信道中的數(shù)據(jù)字段,并且,(取決于幀類型或分組類型)判定如何將那些字段壓縮(pack)到在可變位置處的外出分組頭部。將理解,圖2的示圖和之前的描述是對FPP的簡化表示,出于闡釋的目的,其僅示出了某些基本功能,并且,不同級別的粒度將示出更少或更多階段和/或功能。更一般地,并且不管特定的功能如何,根據(jù)本發(fā)明所設(shè)計的FPP通常具有(ー個或多個)n元組關(guān)聯(lián)查找的多個示例,追隨其后的是利用來自(ー個或多個)查找的索引的直接映射表查找。另夕卜,還將理解,圖2中所示的每個階段可被實(shí)現(xiàn)為ー個或多個階段,每個階段可利用管道傳輸以滿足交換機(jī)的幀處理呑吐量要求,并且,這些階段中的至少某些將使用此處所描述的電路結(jié)構(gòu)。以下,提供了實(shí)現(xiàn)了這種功能的基本可編程電路結(jié)構(gòu)的某些示例。
一種用于實(shí)現(xiàn)獲得更高的呑吐量的迭代算法(諸如,F(xiàn)PP的功能)的一般技術(shù)是“展開(unroll)”算法并將每次迭代作為邏輯的離散階段來用管道傳輸。但是,這種方式不總是實(shí)用的。例如,如果ー個人試圖用通用CPU來完成該算法,則就芯片區(qū)域而言,實(shí)現(xiàn)將是不切實(shí)際的大。在另一方面,并且根據(jù)發(fā)明的具體實(shí)施例,通過謹(jǐn)慎地選擇執(zhí)行在通過這種方式實(shí)現(xiàn)的FPP中的特定功能,可實(shí)現(xiàn)滿足呑吐量和區(qū)域限制二者的高可配置的FPP。在以下的段落中,描述了示例性設(shè)計分析處理,其導(dǎo)致與發(fā)明的實(shí)施例相關(guān)聯(lián)的電路實(shí)現(xiàn)。這種電路實(shí)現(xiàn)滿足大范圍的幀 處理簡檔的要求,同時保持了合適程度的可編程性,但是,就區(qū)域、功率和性能而目,其提供了聞效的電路實(shí)現(xiàn)。圖3示出了對FPP計算階段的最一般的表示。數(shù)據(jù)字段集氏,X2, ...XJ、(Y1,Y2,... YJ等被從ー個階段轉(zhuǎn)換成下ー階段。這些字段的總聚合位寬度可每個階段不同,但是,可保持小于由實(shí)現(xiàn)效率考慮所限制的某些最大值(通常近似于(on the order of)必須在所有簡檔上處理的幀頭部字段的最大數(shù))。每個計算階段的操作可被數(shù)學(xué)表示為函數(shù)系統(tǒng)Fy Y1 = FH--XJY2 = F2(XljX2^--Xm)…Yn = Fn(XljX2^--Xm)這些函數(shù)Fi中每ー個可以以完全一般完全可編程的方式被實(shí)現(xiàn)為將輸入m元組(X1, X2,…Xm)映射到每個輸出值Yi的表查找。這種表Ti (X1, X2,…Xm)包括每個寬度為I Yi的2 E i I Xi |個條目。針對小聚合位寬度E JXi和E JYiI (近似于16),一般的直接映射表查找(例如,實(shí)現(xiàn)為靜態(tài)隨機(jī)訪問存儲器(SRAM))提供了非常合理并可最大限度地配置的實(shí)現(xiàn)。但是,針對實(shí)現(xiàn)具有實(shí)際意義的處理簡檔的交換機(jī),這些位和達(dá)到上千位,并且因此,不能這么簡單地實(shí)現(xiàn)。幸運(yùn)的是,具有實(shí)際意義的幀處理簡檔并不要求這種程度的一般性。根據(jù)本發(fā)明,可利用多個一般屬性來分割并簡化該完全一般的表示,其導(dǎo)致保持足夠的可編程性以跨越大范圍的幀簡檔的可實(shí)現(xiàn)的體系架構(gòu)。首先,許多FP階段可被分割成在輸入數(shù)據(jù)字段和輸出數(shù)據(jù)字段的具體子集上操作的一個或多個子階段。例如,層2地址查找階段在所有應(yīng)用上僅要求與最大查找關(guān)鍵字所要求的同樣多的輸入位,并且,僅需要產(chǎn)生相對小的輸出集,該輸出集表示物理端ロ的具體集和相關(guān)聯(lián)的處理指令。輸入位寬度和輸出位寬度二者都可被合理地限制到比通過管道該階段的所有字段的總聚合位寬度小得多的值。其次,ー個或多個到特定FPP計算的輸入可被對稱使用,但是,與另ー輸入集彼此互斥,這是非常常見的。對將使用哪個輸入集的選擇可以是某些之前的處理階段的輸出,通常是將要應(yīng)用到幀的具體處理簡檔的函數(shù)。該屬性激發(fā)在這種階段的輸入處的復(fù)用器(“mux”)分解。通常,對稱分解可被應(yīng)用到這種階段的輸出,將要修改的多個具體輸出字段中的一個被由該階段所生成的取決于簡檔的數(shù)據(jù)字段選擇。圖4中示出了從這些簡化中所導(dǎo)致的計算結(jié)構(gòu)。注意,結(jié)果結(jié)構(gòu)包括電線和復(fù)用器(二者實(shí)現(xiàn)起來都極其廉價)和具有遠(yuǎn)比原始函數(shù)Fy更少的輸入位和輸出位的通用函數(shù)F’y。如果這些減少的輸入位和輸出位足夠小,則現(xiàn)可應(yīng)用完全一般的表查找實(shí)現(xiàn)。
針對許多處理階段,F(xiàn)’,保持過于復(fù)雜,以至于不能容許簡單的表查找實(shí)現(xiàn)。下一個可以利用的公共屬性是每個計算階段的已守衛(wèi)的進(jìn)行了優(yōu)先編碼的本質(zhì)。具體地,許多F’y包括帶有具體數(shù)目的由如果則否則(if-then-else)結(jié)構(gòu)所選擇的變化或輕型的函數(shù)F”y。通過偽碼的形式,大范圍的簡檔可匹配如下
IF (§1(Χ 5Χ2, ...Xm))THENcase := I
ELSE IF (g2(Xl5 X2, .. .Xm)) THEN case := 2 ELSE IF ... ELSEcase := k每個衛(wèi)函數(shù)(guard function) g」(X1, X2, . . . Xm) 一般可被表示為輸入字段{Xj的取決于簡檔的位片(bit slice)的結(jié)合(被與)精確匹配測試的析取(或)。例如,IP路由器層2的DMAC指派階段可要求以下守衛(wèi)
IF (ValidRoute =1 Λ Mcast ==0 A(EtherType==(IPv4) VEtherT ype==(IPv6)))
case := I基于匹配路由規(guī)則來查找并重新指派DMAC
ELSE
case := O保持DMAC原樣不變“ValidRoute”和“Mcast”是在管道的早期階段中所計算的條件,并且,“EtherType”變量是是由解析階段所標(biāo)識的并被映射到某些具體的數(shù)字字段的16位頭部字段。在可編程的FPP中,根據(jù)簡檔配置,這些字段可被編碼在任意數(shù)量的具體數(shù)據(jù)字段位中。因此,對以上偽碼中的守衛(wèi)的通用表示可以是X1 [O] = = I Λ X1 [4] = = O Λ (X3 [15:0] == (IPv4) V X3 [15:0] == (IPv6))(其中,Xi[η]和XjiKm]符號分別表示字段Xi的第η位和字段Xi的位片n:m。)可以用三態(tài)內(nèi)容可尋址存儲器(TCAM)來高效并可編程地實(shí)現(xiàn)這種通用守衛(wèi)的非常大的空間,追隨其后的是優(yōu)先命中檢測階段,該優(yōu)先命中檢測階段之后是由位檢測輸出所索引的表查找(RAM)。TCAM的輸入位寬度可以非常大(例如,100位或更多),但是,只要可保持條目數(shù)小(近似32),TCAM和RAM的大小和功率保持可接受的低。條目(或規(guī)則)數(shù)對應(yīng)于在所有將要支持的簡檔的所有守衛(wèi)上的可分項(xiàng)的最大數(shù)目之和。如以上的示例(其僅要求三個規(guī)則)所暗示的,近似32的數(shù)確實(shí)一般提供了足夠的靈活性,以對各種處理簡檔進(jìn)行編碼。圖5中提供了被精煉以包括該輸入TCAM分類階段的計算結(jié)構(gòu)。在應(yīng)用上述變換之后,圖5中的最終計算核心?'表示由階段所應(yīng)用的處理函數(shù) 或動作。在某些情形中,函數(shù)可被完全一般地實(shí)現(xiàn)為RAM表查找。即便當(dāng)這不可能時,以上固定函數(shù)核心周圍的變換用足夠的可配置電路來允許動作以大范圍的取決于簡檔的方式被應(yīng)用。例如,F(xiàn)”y可以是關(guān)聯(lián)層2的MAC地址查找表。取決于簡檔配置,相同的查找表資源可被配置為實(shí)現(xiàn)目的地MAC查找、源MAC查找、對來自內(nèi)封裝幀的這些字段的查找、或?qū)θ缬稍缙陔A段所指派的下一跳DMAC地址的查找。另外,表查找的輸出位可留給可編程解釋處理。取決于下行流FPP階段的配置,其可被解釋為后續(xù)轉(zhuǎn)發(fā)表查找的索引、用于網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù)監(jiān)視的標(biāo)志、位編碼安全處理情形等。除了為每個各自階段提供大量有用的可編程性以外,上述變換技術(shù)提供了第二并具有同等價值的可編程靈活性的“交叉乘積(cross-product) ”。例如,假定被如此變換的一個處理階段提供靈活性,以將10位標(biāo)記字段與許多幀頭部字段相關(guān)聯(lián),諸如,其層2的DMAC地址、外部VLAN ID、內(nèi)部VLAN ID、或?qū)?的目的地端口,并且,還假定被如此變換的下行流階段提供1024個條目,該1024個條目可被各自配置為通過對已復(fù)用的10位標(biāo)記的選擇來監(jiān)督(police)映射到每個監(jiān)督器/計數(shù)器的幀或?qū)ζ溥M(jìn)行計數(shù)。該可配置性的交叉
乘積現(xiàn)為整個FPP提供了大量新特征,諸如,由外部WLAN的技術(shù)、由層4的目的地端口的監(jiān)督等。另外,可基于每個交換機(jī),或基于每個簡檔,或基于每幀來使能這些特征。圖6示出了可編程電路結(jié)構(gòu)600的一般示例,此處,其還被稱為“動作階段”,其變化被用作根據(jù)發(fā)明的具體實(shí)施例所設(shè)計的動態(tài)可配置FPP的各個階段的基本的基礎(chǔ)模塊。數(shù)據(jù)字段信道602表示芯片上的固定數(shù)據(jù)傳輸資源,例如,承載信息位的實(shí)際導(dǎo)體。一種方式將是將整個分組頭部發(fā)送至管道的每個階段。但是,這種方式將要求每個階段處理大量比特,其實(shí)現(xiàn)起來是不實(shí)際的。因此,根據(jù)發(fā)明的各種實(shí)施例,在每個階段處所處理的位數(shù)被減少到可管理的位數(shù),并且,通過管道,總位寬度被保持。每個階段通過判定不再需要處理數(shù)據(jù)字段信道中的哪些位并重寫這些位來實(shí)現(xiàn)上述。隨著這些字段602中的頭部數(shù)據(jù)在管道內(nèi)向下進(jìn)行,某些位可對應(yīng)于導(dǎo)出字段,而其他位對應(yīng)于直譯的(literal)頭部數(shù)據(jù)。取決于該實(shí)現(xiàn),這些后者位可存留為直譯頭部數(shù)據(jù),或可用中間項(xiàng)的數(shù)據(jù)重寫。在FPP的上下文中,數(shù)據(jù)字段信道開始為入口分組頭部的直譯字段,并且,隨著時間的推移,在各種管道中被重寫,以表示頭部數(shù)據(jù)的各種中間狀態(tài),最終,被映射到交換機(jī)調(diào)度器所需的轉(zhuǎn)發(fā)指令和合適的出口分組頭部值。關(guān)聯(lián)查找機(jī)構(gòu)604接收輸入關(guān)鍵字,并且,將輸入提供給一個或多個動作表606,每個動作表606表示如何(例如,經(jīng)由應(yīng)用塊608)變換數(shù)據(jù)字段信道602中的數(shù)據(jù)的規(guī)范。在圖6中所示的示例中,輸入關(guān)鍵字被從數(shù)據(jù)字段信道中的數(shù)據(jù)導(dǎo)出。但是,如將要討論的,構(gòu)想這方面的變化。關(guān)聯(lián)查找604可被看作是幀分類,根據(jù)實(shí)施例的特定種類,其被實(shí)現(xiàn)為三態(tài)內(nèi)容可尋址存儲器(TCAM)。應(yīng)當(dāng)理解,在某些應(yīng)用中,諸如二態(tài)內(nèi)容可尋址存儲器之類的更簡單的電路實(shí)現(xiàn)可能就夠用。這與慣常的方式形成對比,在慣常的方式中,可執(zhí)行查找來標(biāo)識與將要執(zhí)行的具體操作有靜態(tài)關(guān)系的某些值。根據(jù)發(fā)明的各種實(shí)施例,從關(guān)聯(lián)查找(例如,TCAM)中導(dǎo)出的數(shù)據(jù)被用于動態(tài)選擇將要操縱來自數(shù)據(jù)字段信道的哪些數(shù)據(jù)以及如何基于每幀來操縱該數(shù)據(jù)。例如,這種靈活性使得單個管道電路結(jié)構(gòu)能夠隨著實(shí)時遇到不同類型的幀(例如,光纖信道對IP)而對其進(jìn)行不同處理。來自數(shù)據(jù)字段信道的數(shù)據(jù)被用作關(guān)聯(lián)查找的關(guān)鍵字,例如,作為TCAM的輸入。根據(jù)某些實(shí)施例,可動態(tài)選擇這些數(shù)據(jù)(選擇610)。根據(jù)其他實(shí)施例,來自在前階段和/或數(shù)據(jù)字段信道自身的數(shù)據(jù)可被用來選擇哪些數(shù)據(jù)被用作TCAM的關(guān)鍵字。根據(jù)某些實(shí)現(xiàn),(針對當(dāng)前階段或之前階段)被用作關(guān)聯(lián)查找的關(guān)鍵字的來自數(shù)據(jù)字段信道的數(shù)據(jù)可以是硬連接的。如另ー替換例,在這方面,對這些方式的某些組合可提供不同級別的可配置性。
動作表606利用關(guān)聯(lián)查找的結(jié)果來判定將從數(shù)據(jù)字段信道中的哪些數(shù)據(jù)來導(dǎo)出針對該階段的(ー個或多個)輸入操作數(shù)(輸入表到選擇塊612)。動作表606還可被配置為指定掩碼函數(shù)(掩碼表到掩碼塊614),以判定(ー個或多個)輸入操作數(shù)的哪些位將要被掩碼或否則被修改,即,對(ー個或多個)輸入操作數(shù)的進(jìn)ー步選擇。例如,這可涉及直接從動作表606中的掩碼表的對特定位的值的指定。(ー個或多個)結(jié)果操作數(shù)被作為某些操作(操作表到操作塊616)的輸入而提供,例如,該操作可涉及又一表或TCAM查找、對邏輯函數(shù)(例如,哈希、校驗(yàn)和、或邏輯或算術(shù)操作)的應(yīng)用或各種可替換選擇中的任ー個?;诿繋瑏韯討B(tài)配置來自在先階段的結(jié)果的可視性和使用,而非在FPP的每個階段處進(jìn)行硬編碼的慣常方式,在該慣常方式中,來自在先階段的結(jié)果是可視的并可由該階段使用。慣常方式提交這種判決,以在設(shè)計階段修補(bǔ)硬件電路。相反地,發(fā)明的實(shí)施例不僅允許對每個階段的編程的修改,還允許在操作期間對各自管道階段的動態(tài)配置。關(guān)聯(lián)查找機(jī)構(gòu)(例如,TCAM)通常是消耗大量區(qū)域資源的相對高功率的結(jié)構(gòu)。因此,根據(jù)某些實(shí)施例,可以以“簡檔索引”的形式引入一定水平的間接手段(indirection)來減少或減輕這種開銷。根據(jù)這種實(shí)施例,并且如在圖7中所示的,TCAM 702指定應(yīng)用可能的動作操作的ー個或多個簡檔。這是高效壓縮,其中,TCAM 702通過動作簡檔表704的間接手段來指定簡檔號,該簡檔號隨后被用于索引到動作表706-710。根據(jù)某些實(shí)施例,并且,如圖7和圖8 二者中所示,所選簡檔可保持并被后續(xù)管道階段所利用。這減少了或甚至消除了對下行流階段中的關(guān)聯(lián)查找資源的需求。可替換地,即便不使用由對簡檔的使用所表示的壓縮,一個或多個后續(xù)階段也可利用來自ー個階段的關(guān)聯(lián)查找(例如,由TCAM)的結(jié)果,以在減少所需資源方面具有類似的效果。可利用以上所討論的各種功能和結(jié)構(gòu)的特定上下文的示例是如圖9中所示的多階段目的地掩碼變換(例如,其可被實(shí)現(xiàn)在L2處理塊中)。每個DMASK變換階段902具有在右側(cè)所示出的基本結(jié)構(gòu),其特征在于通過參照圖6至圖8的更多的通用結(jié)構(gòu)的上述可編程性和動態(tài)可配置性。在該示例中,單個簡檔索引由更早的TCAM查找(未示出)所判定,并且,在所有DMASK階段中共享,每個階段的具體動作被從其動作表中映射。在本示例中的“0P”動作變換是4096個條目的查找表,追隨其后的是基于動作配置和表查找結(jié)果來變換DMASK信道的功能塊。支持諸如與和或之類的基本邏輯操作。例如,通過選擇將幀的12位出口 VLAN ID編碼為表索引的具體的數(shù)據(jù)字段和“與”邏輯操作,這些階段中的一個可被配置為實(shí)現(xiàn)VLAN成員過濾,其為層2交換機(jī)的ー個根本特征。更加靈活的體系架構(gòu)在每個階段中將包括TCAM查找,其允許ー個階段的簡檔索引獨(dú)立于其他索引而被映射。但是,在以太網(wǎng)交換的具體應(yīng)用中,這種靈活性的增強(qiáng)程度一般不是必須的,并且因此,可能無法證明另外的TCAM的成本是正當(dāng)?shù)摹D10中示出了對在根據(jù)發(fā)明的各種實(shí)施例所設(shè)計的可配置FPP中所使用的可配置解析器1000的具體實(shí)現(xiàn)的表示。每個解析器片或階段1002是對圖6至圖8的通用結(jié)構(gòu)中的至少ー個的具體實(shí)現(xiàn),并且,操作于幀頭部數(shù)據(jù)的幀位的某些子集上。圖11中示出了對解析器片的特定實(shí)現(xiàn)的示例。在該結(jié)構(gòu)中,由每片所修改的恒定寬度的字段的集被分為兩類(1)直接從輸入幀數(shù)據(jù)指派或?qū)С龅淖侄?被標(biāo)記為“標(biāo)志”、“校驗(yàn)和”和“字段”),以及(2)用于將解析狀態(tài)從一片傳送到另一片的臨時數(shù)據(jù)字段(被標(biāo)記為“狀態(tài)”)。標(biāo)志字段包括位的集合,動作SRAM可各自設(shè)定該位,以便將有興趣的屬性傳送給FPP的稍后階段(例如,如果幀具有IPv4頭部)。校驗(yàn)和字段是補(bǔ)充加法器的結(jié)果,該補(bǔ)充加法器被用于驗(yàn)證包括在層3或?qū)?分組頭部中的頭部校驗(yàn)和。字段數(shù)據(jù)字節(jié)被直接從有興趣的頭部字段指派,例如,從6字節(jié)的層2目的地MAC地址或16字節(jié)的IPv6源地址指派。根據(jù)如動作RAM所選的多個操作中的ー個來變換所描繪的階段的狀態(tài)輸出,并且,該狀態(tài)輸出變?yōu)樵谥箅A段中的TCAM查找804的關(guān)鍵字的一部分。補(bǔ)充加法器是所描繪的結(jié)構(gòu)的唯一粗金啊,該所描繪的結(jié)構(gòu)具有由對將要支持的層3-4協(xié)議的具體要求所激發(fā)的固定定義。否則,所有電路組件都是完全通用的。結(jié)果,如此實(shí)現(xiàn)的解析器可被配置為處理廣泛使用的分組協(xié)議頭部的多樣的集合(例如,IEEE 802.3以太網(wǎng)、IPv4、IPv6、TCP、UDP、FCoE)以及還未定義或標(biāo)準(zhǔn)化的任意數(shù)目的其他協(xié)議。圖12中示出了對在根據(jù)發(fā)明的各種實(shí)施例所設(shè)計的可配置FPP中所使用的可配置動作決議階段1200的具體實(shí)現(xiàn)的表示。所描繪的動作決議階段可被利用在可配置的FPP 的各種位置處,其中,做出了體系架構(gòu)上顯著的處理決定。其可被看作是圖6的結(jié)構(gòu)的放大版,響應(yīng)于在大量分類和由更早期階段所生成的查找輸入上所評估的可配置條件,其適于對大量數(shù)據(jù)字段的全面的重新指派。對在IP路由器FPP中的這種階段的一個示例應(yīng)用在訪問控制表(ACL)和下一跳路由表分類階段之后,并緊接層2的MAC地址查找表之前。雖然每個ACL和路由查找階段可遵循圖6至圖8的結(jié)構(gòu),從而提供很大程度上的依賴于簡檔的可編程性,但是,出于效率原因,那些階段中的許多階段可獨(dú)立于彼此而產(chǎn)生其輸出。追隨這些階段之后的層2目的地MAC查找根本上依賴于層3的下一跳路由決定,因此,某些可配置階段必須用對所有更早期的分類的查找結(jié)果的知曉來解決必要的數(shù)據(jù)依賴性(在本示例中,即下ー跳DMAC和VLAN字段)。每個動作決議片1202是圖6至圖8的通用結(jié)構(gòu)中的至少ー個的具體實(shí)現(xiàn)。該片順序修改數(shù)據(jù)字段信道中的數(shù)據(jù),該數(shù)據(jù)隨后經(jīng)由輸出信道復(fù)用被映射回數(shù)據(jù)字段信道。如所示,對輸出信道復(fù)用的每個階段的操作由可配置簡檔控制(例如,如以上參照圖7所述),該可配置簡檔由片所生成的簡檔索引所選擇。圖12中所示的復(fù)用動作表將簡檔索引映射到復(fù)用器的具體集的復(fù)用控制值。當(dāng)被某些復(fù)用控制情形所選擇吋,復(fù)用動作表還可提供重寫了輸出數(shù)據(jù)字段的依賴于簡檔的常量值。為了額外的靈活性,該表可將這些常量指定為(掩碼,值)對,其用作將復(fù)用限制到輸出數(shù)據(jù)字段的具體掩碼位,未掩碼位被從常量值指派。應(yīng)當(dāng)注意,構(gòu)想了本發(fā)明的實(shí)施例,其中,輸出信道復(fù)用可被概括為邏輯變換結(jié)構(gòu),其中,如由相關(guān)聯(lián)的簡檔表所生成的控制值所配置的,復(fù)用器被替換為邏輯變換電路或塊,其被配置為應(yīng)用對任意大范圍的輸入數(shù)據(jù)字段的邏輯變換。在所描繪的實(shí)施例中,相同的關(guān)鍵字被應(yīng)用到每個階段中的關(guān)聯(lián)查找(S卩,例如,TCAM 1204)中的每ー個,但是,查找自身并不是迭代的,因?yàn)樵谌我饨o定階段中的查找結(jié)果作為后續(xù)階段的關(guān)鍵字而言不是可視的或可用的。但是,可見,對在所描繪的結(jié)構(gòu)的底部處的數(shù)據(jù)字段信道的順序變換是迭代的,因?yàn)椹`個階段的變換對之后的階段是可見的。出于判定某些數(shù)目的之前查找和分類階段的結(jié)果如何被應(yīng)用到幀的目的,輸出信道復(fù)用階段可遵循主要的體系架構(gòu)查找和分類操作。即,給定由動作決議片所執(zhí)行的查找操作的結(jié)果,輸出信道復(fù)用階段判定如何修改或重寫數(shù)據(jù)字段信道中的數(shù)據(jù)字段。通常,這些主要的查找和分類階段產(chǎn)生大量的在其解釋中帶有復(fù)雜的互依賴性的數(shù)據(jù)字段。動作決議片處理這些互依賴性,并且,指定這些字段的合適的復(fù)用。動作決議階段在管道中有效地實(shí)現(xiàn)主要的決定點(diǎn),其中,大量的數(shù)據(jù)字段被一同變換。如果沒有動作決議階段,所導(dǎo)出的分類和查找字段將連續(xù)聚積,其要求越來越多的下行流FPP階段中的昂貴的路由和操作數(shù)復(fù)用資源。這種動作決議階段的操作示例是路由器中的層3幀處理的上下文,其例如可涉及基于目的地查找來替換源和目的地MAC地址和幀頭部中的潛在的VLAN標(biāo)志。在執(zhí)行所有這些相關(guān)的查找并獲得所需的值之后,是動 作決議階段提供邏輯以使得對數(shù)據(jù)字段信道中的對應(yīng)字段的實(shí)際替換生效,其隨后被后續(xù)層2地址查找和FPP的修改階段所使用以構(gòu)建中貞頭部。本發(fā)明的各種實(shí)施例提供FPP,該FPP允許除了各種表查找之外的功能上的顯著的可編程性(例如,涉及將頭部數(shù)據(jù)變換為向量字段(其被用于查找以生成條件)的功能)以及對使變換回頭部數(shù)據(jù)生效的條件的使用。如以上所討論的,傳統(tǒng)的通用CPU不適于在FPP上下文中實(shí)現(xiàn)這種可編程性,因?yàn)樗鼈兪堑?即,慢的)。場可編程門陣列(FPGA)是另ー實(shí)現(xiàn)選項(xiàng),其比通用CPU提供更多的可配置性,同時保持高性能,但是,對有興趣的任意現(xiàn)實(shí)生活中的FPP的FPGA實(shí)現(xiàn)遭受無法實(shí)行的高區(qū)域和功率要求。除非要利用類似于由本發(fā)明的實(shí)施例所使能的電路結(jié)構(gòu),F(xiàn)PGA實(shí)現(xiàn)也不會為動態(tài)幀依賴于簡檔的處理提供很多支持。在頻譜的另一端,慣常的FPP實(shí)現(xiàn)(例如,實(shí)現(xiàn)了靜止?fàn)顟B(tài)機(jī)的完全集成的ASIC,該靜止?fàn)顟B(tài)機(jī)在分組上執(zhí)行固定功能)具有非常少的可配置性。根據(jù)發(fā)明的具體實(shí)施例所實(shí)現(xiàn)的FPP提供顯著的可編程性,并且,能夠基于每幀以全線速率提供幀處理。根據(jù)發(fā)明的實(shí)施例所設(shè)計的FPP可像ASIC狀態(tài)機(jī)一祥操作,因?yàn)槠湓诜纸M頭部上執(zhí)行管道式預(yù)先計劃的離散操作。但是,發(fā)明的實(shí)施例提供電路結(jié)構(gòu)和體系架構(gòu),其使能對這種操作的高效實(shí)現(xiàn),同時仍允許其是可編程的。因此,其可比固定功能的ASIC跨越更寬范圍的功能行為,同時交付可比的性能水平和成本。雖然已經(jīng)參照具體實(shí)施例特別示出并描述了發(fā)明,但是,本領(lǐng)域技術(shù)人員將理解,可作出所公開的實(shí)施例的形式和細(xì)節(jié)上的變更,只要它們不偏離發(fā)明的精神和范圍即可。例如,可利用不偏離發(fā)明的范圍的各種技術(shù)來在各種上下文中實(shí)現(xiàn)此處所描述的功能。即,發(fā)明的實(shí)施例可被實(shí)現(xiàn)在處理和電路中,其可作為ー個或多個網(wǎng)絡(luò)列表在編譯的不同階段由軟件(對象碼或機(jī)器碼)(沒有限制地)表示,由半導(dǎo)體處理掩碼集用仿真語言、硬件描述語言表示,并且,作為部分或完全實(shí)現(xiàn)的半導(dǎo)體設(shè)備。如本領(lǐng)域技術(shù)人員所理解的,前述中的每ー個的各種替換也在發(fā)明的范圍內(nèi)。例如,各種類型的計算機(jī)可讀介質(zhì)、軟件語言(例如,Verilog, VHDL)、可仿真表示(例如,SPICE網(wǎng)絡(luò)列表)、半導(dǎo)體處理(例如,CMOS、GaAs、SiGe等)以及適于設(shè)計并制造處理的設(shè)備類型(例如,幀交換機(jī))和此處所描述的電路在發(fā)明的范圍內(nèi)。此處,參照分組或幀交換設(shè)備描述了發(fā)明的實(shí)施例。根據(jù)這種實(shí)施例并如上所述,所描述的某些或所有功能可實(shí)現(xiàn)在高集成的半導(dǎo)體設(shè)備的硬件中,例如,I吉比特和10吉比特的以太網(wǎng)交換機(jī)、各種交換系統(tǒng)交換機(jī)和類似設(shè)備。另外,此處對共享存儲器交換機(jī)的參照僅是示例。本領(lǐng)域技術(shù)人員將理解,本發(fā)明更一般地應(yīng)用于更廣泛的分組或幀交換設(shè)備。在另ー示例中,發(fā)明的實(shí)施例可包括多芯片交換系統(tǒng),其中,根據(jù)發(fā)明所實(shí)現(xiàn)的FPP可替換ー個或多個連接在每個端ロ的PHY設(shè)備和中央交換結(jié)構(gòu)(在這種系統(tǒng)中,其通常并不執(zhí)行任意特定于協(xié)議的幀頭部處理)之間的離散網(wǎng)絡(luò)處理器(NPU)設(shè)備(還稱為“流量管理器”)。此處,根據(jù)描述所實(shí) 現(xiàn)的FPP可被配置為提供這種設(shè)備中的某些或所有功能的高效可編程實(shí)現(xiàn)。另外,雖然已經(jīng)參照各種實(shí)施例討論了本發(fā)明的各種優(yōu)點(diǎn)、方面和目的,但是,將理解,發(fā)明的范圍不應(yīng)當(dāng)被參照限制于這種優(yōu)點(diǎn)、方面和目的。而是,發(fā)明的范圍應(yīng)當(dāng)參照所附權(quán)利要求而被確定。
權(quán)利要求
1.ー種分組交換機(jī),包括 多端ロ交換數(shù)據(jù)路徑; 用于接收進(jìn)入數(shù)據(jù)幀的多個入口端ロ; 入口互聯(lián)電路,該入口互聯(lián)電路被配置為有選擇地將各個入口端ロ連接至所述交換數(shù)據(jù)路徑; 用于發(fā)送外出數(shù)據(jù)幀的多個出口端ロ; 出口互聯(lián)電路,該出口互聯(lián)電路被配置為有選擇地將各個出口端ロ連接至所述交換數(shù)據(jù)路徑; 控制電路,該控制電路被配置為控制所述入ロ互聯(lián)電路和所述出ロ互聯(lián)電路的操作以及所述交換數(shù)據(jù)路徑,以輔助將所述進(jìn)入數(shù)據(jù)幀寫入到所述交換數(shù)據(jù)路徑以及從所述交換數(shù)據(jù)路徑讀取所述外出數(shù)據(jù)幀;以及 幀處理管道電路,該幀處理管道電路被配置為參照與所述進(jìn)入數(shù)據(jù)幀相關(guān)聯(lián)的進(jìn)入頭部數(shù)據(jù)來確定每個進(jìn)入幀的轉(zhuǎn)發(fā)行為和應(yīng)用到每個進(jìn)入幀的修改,并且,該幀處理管道電路被配置為生成與所述外出數(shù)據(jù)幀相關(guān)聯(lián)的外出頭部數(shù)據(jù),所述幀處理管道電路包括多個管道階段,所述管道階段包括被配置為將所述進(jìn)入頭部數(shù)據(jù)的一部分導(dǎo)向到數(shù)據(jù)字段信道中的數(shù)據(jù)字段的解析電路,所述管道階段中的所選擇的ー些管道階段包括可編程結(jié)構(gòu),該可編程結(jié)構(gòu)被配置為從所述數(shù)據(jù)字段信道中動態(tài)選擇ー個或多個操作數(shù)并選擇一個或多個操作來利用所述ー個或多個操作數(shù)來執(zhí)行,對所述ー個或多個操作數(shù)和所述ー個或多個操作的選擇是參照按每幀從所述數(shù)據(jù)字段信道導(dǎo)出的ー個或多個關(guān)鍵字而完成的,所述管道階段還包括修改電路,該修改電路被配置為參照所述數(shù)據(jù)字段信道來生成所述外出頭部數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的分組交換機(jī),其中,所述可編程結(jié)構(gòu)包括被配置為接收所述一個或多個關(guān)鍵字作為輸入并生成ー個或多個索引的關(guān)聯(lián)查找機(jī)構(gòu),所述可編程結(jié)構(gòu)還包括被配置為參照所述ー個或多個索引來從所述數(shù)據(jù)字段信道選擇所述ー個或多個操作數(shù)并選擇所述ー個或多個操作的一個或多個動作表。
3.根據(jù)權(quán)利要求2所述的分組交換機(jī),其中,所述ー個或多個動作表還被配置為參照所述ー個或多個索引來輔助選擇來自所述ー個或多個操作的一個或多個結(jié)果如何被寫入到所述數(shù)據(jù)字段信道的字段中。
4.根據(jù)權(quán)利要求2所述的分組交換機(jī),其中,所述ー個或多個動作表還被配置為參照所述ー個或多個索引來輔助選擇所述ー個或多個操作數(shù)的要修改的ー個或多個位。
5.根據(jù)權(quán)利要求2所述的分組交換機(jī),其中,所述關(guān)聯(lián)查找機(jī)構(gòu)包括三態(tài)內(nèi)容可尋址存儲器。
6.根據(jù)權(quán)利要求2所述的分組交換機(jī),其中,至少ー個其他管道階段被配置為使用由所選管道階段中的之前一個管道階段中的所述關(guān)聯(lián)查找機(jī)構(gòu)所生成的ー個或多個索引作為輸入。
7.根據(jù)權(quán)利要求2所述的分組交換機(jī),其中,由所述關(guān)聯(lián)查找機(jī)構(gòu)所生成的一個或多個索引包括ー個或多個動作簡檔號,所述可編程結(jié)構(gòu)還包括ー個或多個動作簡檔表,所述一個或多個動作簡檔表被配置為接收所述ー個或多個動作簡檔號作為輸入,并且生成ー個或多個動作表索引用于由所述ー個或多個動作表使用。
8.根據(jù)權(quán)利要求I所述的分組交換機(jī),其中,所選管道階段中的至少ー些還包括選擇電路,該選擇電路被配置為參照所述數(shù)據(jù)字段信道從所述數(shù)據(jù)字段信道選擇ー個或多個關(guān)鍵字。
9.根據(jù)權(quán)利要求I所述的分組交換機(jī),其中,輸入到所選管道階段中至少ー些管道階段的一個或多個關(guān)鍵字被硬連接到所述可編程結(jié)構(gòu)。
10.根據(jù)權(quán)利要求I所述的分組交換機(jī),其中,所選管道階段中的ー個或多個包括動作決議階段,該動作決議階段包括順序配置的所述可編程結(jié)構(gòu)的多個實(shí)例,每個實(shí)例被配置為生成一個或多個簡檔索引以及ー個或多個數(shù)據(jù)字段輸出,所述可編程結(jié)構(gòu)的各個連續(xù)的實(shí)例被配置為重寫從所述動作決議階段中的可編程結(jié)構(gòu)的緊接之前的實(shí)例所接收的數(shù)據(jù)字段輸出和所述簡檔索引,所述動作決議階段還包括邏輯變換結(jié)構(gòu),該邏輯變換結(jié)構(gòu)包括至少ー個針對由所述可編程結(jié)構(gòu)的最終實(shí)例所生成的每個索引的簡檔表,每個簡檔表被配置為根據(jù)按照對應(yīng)的簡檔索引而選擇的簡檔來控制邏輯變換塊,該邏輯變換塊接收由所述 可編程結(jié)構(gòu)的最終實(shí)例所生成的數(shù)據(jù)字段輸出中的一個或多個數(shù)據(jù)字段輸出。
11.ー種在包括中央交換結(jié)構(gòu)的多芯片交換系統(tǒng)中所使用的網(wǎng)絡(luò)處理設(shè)備,所述網(wǎng)絡(luò)處理設(shè)備被配置用于部署在所述中央交換結(jié)構(gòu)和外部設(shè)備之間,該外部設(shè)備被配置為經(jīng)由所述網(wǎng)絡(luò)處理設(shè)備將數(shù)據(jù)幀發(fā)送到所述中央交換結(jié)構(gòu)以及經(jīng)由所述網(wǎng)絡(luò)處理設(shè)備從所述中央交換結(jié)構(gòu)接收數(shù)據(jù)幀,所述網(wǎng)絡(luò)處理設(shè)備包括管道電路,該管道電路被配置為對數(shù)據(jù)字段信道中的數(shù)據(jù)字段進(jìn)行操作,以確定與所述數(shù)據(jù)字段信道中的數(shù)據(jù)字段相對應(yīng)的數(shù)據(jù)幀的轉(zhuǎn)發(fā)行為以及對與所述數(shù)據(jù)字段信道中的數(shù)據(jù)字段相對應(yīng)的數(shù)據(jù)幀所應(yīng)用的修改,所述管道電路包括多個管道階段,所述管道階段中的所選的ー些包括可編程結(jié)構(gòu),該可編程結(jié)構(gòu)被配置為從所述數(shù)據(jù)字段信道中動態(tài)選擇ー個或多個操作數(shù)并選擇ー個或多個操作來利用所述ー個或多個操作數(shù)來執(zhí)行,對所述ー個或多個操作數(shù)和所述ー個或多個操作的選擇是參照從所述數(shù)據(jù)字段信道導(dǎo)出的ー個或多個關(guān)鍵字而完成的。
12.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)處理設(shè)備,其中,所述可編程結(jié)構(gòu)包括被配置為接收所述ー個或多個關(guān)鍵字作為輸入并生成ー個或多個索引的關(guān)聯(lián)查找機(jī)構(gòu),所述可編程結(jié)構(gòu)還包括被配置為參照所述ー個或多個索引來從所述數(shù)據(jù)字段信道選擇所述ー個或多個操作數(shù)并選擇所述ー個或多個操作的一個或多個動作表。
13.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理設(shè)備,其中,所述ー個或多個動作表還被配置為參照所述ー個或多個索引來輔助選擇來自所述ー個或多個操作的一個或多個結(jié)果如何被寫入到所述數(shù)據(jù)字段信道的字段中。
14.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理設(shè)備,其中,所述ー個或多個動作表還被配置為參照所述ー個或多個索引來輔助選擇所述ー個或多個操作數(shù)的要修改的ー個或多個位。
15.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理設(shè)備,其中,關(guān)聯(lián)查找機(jī)構(gòu)包括三態(tài)內(nèi)容可尋址存儲器。
16.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理設(shè)備,其中,至少ー個其他管道階段被配置為使用由所選管道階段中的之前一個管道階段中的所述關(guān)聯(lián)查找機(jī)構(gòu)所生成的ー個或多個索引作為輸入。
17.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)處理設(shè)備,其中,由所述關(guān)聯(lián)查找機(jī)構(gòu)所生成的ー個或多個索引包括ー個或多個動作簡檔號,所述可編程結(jié)構(gòu)還包括ー個或多個動作簡檔表,所述ー個或多個動作簡檔表被配置為接收所述ー個或多個動作簡檔號作為輸入,并且生成一個或多個動作表索引用于由所述ー個或多個動作表使用。
18.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)處理設(shè)備,其中,所選管道階段中的至少ー些還包括選擇電路,該選擇電路被配置為參照所述數(shù)據(jù)字段信道從所述數(shù)據(jù)字段信道選擇ー個或多個關(guān)鍵字。
19.根據(jù)權(quán)利要求11所述的網(wǎng)絡(luò)處理設(shè)備,其中,輸入到所選管道階段中至少ー些管道階段的一個或多個關(guān)鍵字被硬連接到所述可編程結(jié)構(gòu)。
20.ー種被配置為互聯(lián)多個計算設(shè)備的交換結(jié)構(gòu),所述交換結(jié)構(gòu)包括多個互聯(lián)的分組交換機(jī),所述分組交換機(jī)中的ー個或多個包括 交換數(shù)據(jù)路徑; 用于接收進(jìn)入數(shù)據(jù)幀的多個入口端ロ; 入口互聯(lián)電路,該入ロ互聯(lián)電路被配置為有選擇地將各個入ロ端ロ連接至所述交換數(shù)據(jù)路徑; 用于發(fā)送外出數(shù)據(jù)幀的多個出口端ロ; 出口互聯(lián)電路,該出ロ互聯(lián)電路被配置為有選擇地將各個出ロ端ロ連接至所述交換數(shù)據(jù)路徑; 控制電路,該控制電路被配置為控制所述入口互聯(lián)電路和所述出口互聯(lián)電路的操作以及所述交換數(shù)據(jù)路徑,以輔助將所述進(jìn)入數(shù)據(jù)幀寫入到所述交換數(shù)據(jù)路徑以及從所述交換數(shù)據(jù)路徑讀取所述外出數(shù)據(jù)幀;以及 幀處理管道電路,該幀處理管道電路被配置為參照與所述進(jìn)入數(shù)據(jù)幀相關(guān)聯(lián)的進(jìn)入頭部數(shù)據(jù)來確定每個進(jìn)入幀的轉(zhuǎn)發(fā)行為和應(yīng)用到每個進(jìn)入幀的修改,并且,該幀處理管道電路被配置為生成與所述外出數(shù)據(jù)幀相關(guān)聯(lián)的外出頭部數(shù)據(jù),所述幀處理管道電路包括多個管道階段,所述管道階段包括被配置為將所述進(jìn)入頭部數(shù)據(jù)的一部分導(dǎo)向到數(shù)據(jù)字段信道中的數(shù)據(jù)字段的解析電路,所述管道階段中的所選擇的ー些管道階段包括可編程結(jié)構(gòu),該可編程結(jié)構(gòu)被配置為從所述數(shù)據(jù)字段信道中動態(tài)選擇ー個或多個操作數(shù)并選擇一個或多個操作來利用所述ー個或多個操作數(shù)來執(zhí)行,對所述ー個或多個操作數(shù)和所述ー個或多個操作的選擇是參照按每幀從所述數(shù)據(jù)字段信道導(dǎo)出的ー個或多個關(guān)鍵字而完成的,所述管道階段還包括修改電路,該修改電路被配置為參照所述數(shù)據(jù)字段信道來生成所述外出頭部數(shù)據(jù)。
全文摘要
通過滿足嚴(yán)格的區(qū)域和功率要求的高效方式將高可配置幀處理管道使能在分組交換機(jī)中。描述了幀處理管道,該幀處理管道使能基于每幀的對不同類型幀的動態(tài)處理。
文檔編號G06F15/16GK102656849SQ201080045607
公開日2012年9月5日 申請日期2010年10月6日 優(yōu)先權(quán)日2009年10月7日
發(fā)明者米歇爾·戴維斯, 羅伯特·斯歐思沃斯 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1