專利名稱:網(wǎng)絡(luò)處理器單元和用于網(wǎng)絡(luò)處理器單元的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理網(wǎng)絡(luò)中的分組的方法和網(wǎng)絡(luò)處理器單元,并且特別涉及具有 嵌入式分組交換機的方法和網(wǎng)絡(luò)處理器單元。
背景技術(shù):
網(wǎng)絡(luò)處理器可以被用作單芯片交換機/路由器或用在模塊化交換機/路由器中的 入或出線路卡上。許多現(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器包括用在網(wǎng)絡(luò)處理器的不同模塊之間的若干 中間緩沖器,導致網(wǎng)絡(luò)處理器具有比所需更多的緩沖器空間。此外,若干中間緩沖器可能導 致處理期間的等待時間。圖1示意性示出了具有若干中間緩沖器的現(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器1。如所示出的, 網(wǎng)絡(luò)處理器1包括業(yè)務(wù)管理器(traffic manager) 2、接口 3、具有隊列和調(diào)度器的緩沖器 如,牝,4(、處理裝置5、以及可選的外部存儲器63,613,參照圖1。從接口 3接收的分組數(shù)據(jù) 在輸入緩沖器4a中緩沖、通過處理裝置5處理、在中間緩沖器4b中緩沖,之后被寫入業(yè)務(wù) 管理器2的緩沖器。從業(yè)務(wù)管理器2,分組數(shù)據(jù)經(jīng)由輸出緩沖器如在接口 3上被調(diào)度和傳 送。由于不同系統(tǒng)之間的需求變化,導致分組處理的理想次序變化。例如,離開業(yè)務(wù)管理器 的全部或部分業(yè)務(wù)在傳送之前可能需要附加的穿過處理裝置,如通過環(huán)回路徑7所示的。 在其它情況下,可能需要兩次穿過業(yè)務(wù)管理器。現(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器1的缺陷是需要比所需更大的大緩沖器尺寸。例如,如果 突發(fā)的分組數(shù)據(jù)穿過圖1的網(wǎng)絡(luò)處理器1,則它首先存儲在輸入緩沖器如中,之后在中間緩 沖器4b中最后在輸出緩沖器如中。這意味著每一個緩沖器(輸入緩沖器、中間緩沖器以及 輸出緩沖器)必須提供用于常規(guī)量的分組數(shù)據(jù)以及用于突發(fā)大小的緩沖空間?,F(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器的另一缺陷是穿過網(wǎng)絡(luò)處理器的分組順序流。如圖1所 示,首先,分組在接口上被接收;第二,它們在輸入緩沖器中被緩沖;第三,它們被處理裝置 處理;第四,它們在中間緩沖器中被緩沖;第五,它們被寫入業(yè)務(wù)管理器的緩沖器;以及第 六,它們在輸出緩沖器中被緩沖;以及第七,它們在接口上被傳送。Su等人的US2005/0169259公開了一種分組交換單元,包括端口、分組交換控制單 元、微處理器數(shù)據(jù)傳輸接口、微處理器、以及分組緩沖器。分組緩沖器包括分組區(qū)、索引緩沖 器以及傳輸隊列電路。分組交換控制單元和微處理器數(shù)據(jù)傳輸接口兩者都可以分別從/向 端口和微處理器傳輸分組。Su等人的分組交換單元的缺陷在于,它也需要大的緩沖空間,原因是端口具有存 儲和轉(zhuǎn)發(fā)功能意味著在將分組移入分組緩沖器之前通過端口存儲。Langner的US2007/0230475公開了一種基于交換機的網(wǎng)絡(luò)處理器,包括輸入接 口、輸出接口、處理部件、以及具有雙向端口的交換機。網(wǎng)絡(luò)處理器將信息與通過輸入接口 接收的分組關(guān)聯(lián),并且該信息基于交換機的交換操作串行次序通過多個處理部件順序地處 理。該網(wǎng)絡(luò)處理器可被看作在各處理部件的輸入和輸出之間根據(jù)應(yīng)用提供可選擇的互連。 對于特定應(yīng)用,分組將因此僅流到所需的以及處于恰當次序的特定處理部件。處理部件的次序通過交換機的配置和處理部件的配置來獲得。Langner的網(wǎng)絡(luò)處理器的缺陷是針對給定應(yīng)用(如安全交易服務(wù)器應(yīng)用、安全套 接字層(SSL) VPN防火墻應(yīng)用或安全因特網(wǎng)協(xié)議(IPSEC) VPN防火墻應(yīng)用)的分組交換的預(yù) 定串行次序。在針對特別應(yīng)用進行配置之后,所有的分組將具有相同的串行處理次序,并因 此將采用相同的路徑穿過網(wǎng)絡(luò)處理器。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺陷和缺點。更特別地,本發(fā)明的目的是使網(wǎng)絡(luò) 處理器中的緩沖器尺寸最小,并為分組提供靈活的路徑穿過網(wǎng)絡(luò)處理器以便適應(yīng)不同的系 統(tǒng)需求。上述目的尤其利用按照獨立權(quán)利要求的方法和網(wǎng)絡(luò)處理器單元來完成。本發(fā)明另 外的實施例在從屬權(quán)利要求中詳細說明。
本發(fā)明的實施例將參考以下附圖詳細描述,附圖中 圖1示意性圖示了現(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器的框圖;圖2示意性圖示了按照本發(fā)明實施例的網(wǎng)絡(luò)處理器的框圖; 圖3示意性圖示了按照本發(fā)明實施例的網(wǎng)絡(luò)處理器的框圖; 圖如示意性圖示了按照本發(fā)明的網(wǎng)絡(luò)處理器實施例的框圖; 圖4b示意性圖示了按照本發(fā)明的網(wǎng)絡(luò)處理器實施例的框圖; 圖如示意性圖示了按照本發(fā)明的網(wǎng)絡(luò)處理器實施例的框圖,其中示出了嵌入式交換 機的調(diào)度視圖;以及圖恥示意性圖示了按照本發(fā)明的網(wǎng)絡(luò)處理器實施例的框圖,其中示出了嵌入式交換 機的調(diào)度視圖。
具體實施例方式現(xiàn)在將參考附圖詳細描述本發(fā)明,附圖中,相同的參考標號表示相同或?qū)?yīng)的特 征、構(gòu)件或裝置。按照本發(fā)明,圖1所示的現(xiàn)有技術(shù)的網(wǎng)絡(luò)處理器中所包括的輸入緩沖器、中間緩 沖器和輸出緩沖器由嵌入式交換機來代替。按照本發(fā)明,功能塊(例如,諸如端口的通信接 口、處理裝置、業(yè)務(wù)管理器、分組格式化器或與嵌入式交換機通信并將分組數(shù)據(jù)寫入嵌入式 交換機的另一構(gòu)件)被配置以選擇分組數(shù)據(jù)的輸出地址。在實施例中,嵌入式交換機包括在 去往網(wǎng)絡(luò)處理器的諸如功能塊的不同模塊(諸如去往處理裝置、一個或多個接口以及可能 的業(yè)務(wù)管理器)的隊列之間共享的緩沖存儲器,由此所需的總緩沖尺寸減小。因此,按照本發(fā)明,同一分組突發(fā)在嵌入式交換機中最多每次僅發(fā)生一次。此外, 本發(fā)明的尋址機制(籍此將分組數(shù)據(jù)寫到嵌入式交換機的功能塊選擇輸出地址,例如輸出 端口)能夠靈活地組織穿過網(wǎng)絡(luò)處理器的模塊(例如穿過處理裝置和業(yè)務(wù)管理器)的數(shù)據(jù)路 徑。而且,借助于本發(fā)明,可以基于屬性集將分組從接收接口直接交換到傳送接口,所述屬 性可以基于與分組一起接收的(例如在分組頭部中的)信息。此外,本發(fā)明的統(tǒng)一通信接口和靈活的尋址使不同的子系統(tǒng)(例如處理裝置)能夠連接到嵌入式交換機的不同端口。應(yīng)理解,術(shù)語分組在本申請文件中使用時可能指各種類型的數(shù)據(jù)單元,包括但不 限于因特網(wǎng)協(xié)議版本4 (IPv4)分組、因特網(wǎng)協(xié)議版本6 (IPv6)分組、IEEE 802. 3幀、點到 點協(xié)議(PPP)幀、ATM信元、或其它協(xié)議數(shù)據(jù)單元(PDU)。此外,分組可以是這樣的PDU (例 如、信元、分段或存儲頁)的、控制消息的、或者在網(wǎng)絡(luò)處理系統(tǒng)內(nèi)相互通信的另一類型的數(shù) 據(jù)單元的一部分。圖2示意性圖示了按照本發(fā)明實施例的網(wǎng)絡(luò)處理器10,有時也稱為網(wǎng)絡(luò)處理單 元。網(wǎng)絡(luò)處理器10包括交換機12、通信接口 14和處理裝置16。交換機12被設(shè)置為與接 口 14和處理裝置16通信。圖3示意性圖示了網(wǎng)絡(luò)處理器10的實施例,該網(wǎng)絡(luò)處理器10還包括設(shè)置成與交 換機12和通信接口 14通信的業(yè)務(wù)管理器18。可選的外部存儲器20、22可以被設(shè)置成分別 與處理裝置16和業(yè)務(wù)管理器18通信。該網(wǎng)絡(luò)處理器可以是各種已知類型中的任一種,包括在國際專利申請No. PCT/ EP2007/055777 (其通過引用結(jié)合于此)中描述的處理器,但是它還可以是加密的處理器、字 符串搜索處理器、和/或通用CPU。該處理器可以包括各種已知類型的處理裝置,包括如國 際專利申請No. PCT/SE2005/001969 (其通過引用結(jié)合于此)中描述的同步處理管道。此外, 該處理器可以包括諸如分組格式化器和/或業(yè)務(wù)管理器之類的處理裝置。交換機12被配置為提供業(yè)務(wù)管理功能,包括服務(wù)類別分離、分層調(diào)度、業(yè)務(wù)整形、 以及空間和邏輯多播。此外,交換機12 (優(yōu)選嵌入式交換機),在此還被稱為共享存儲器交換機(SMS),被 配置成在通信接口(例如在接收/傳送接口 14中之一)和處理裝置16之間交換分組。在實 施例中,所述交換優(yōu)選基于與分組一起接收的信息(例如設(shè)置屬性)。此外,交換機12適于 在數(shù)據(jù)路徑上以匹配系統(tǒng)需求(即匹配網(wǎng)速)的數(shù)據(jù)率來交換分組數(shù)據(jù)。圖4 4b示意性圖示了網(wǎng)絡(luò)處理器10的實施例,其中交換機12包括分組緩沖器 對、輸入端口(有時也稱為寫端口)26a、輸出端口(有時也稱為讀端口)^b、輸入仲裁器28、 隊列映射器30、丟棄單元34、隊列管理器36、以及分組調(diào)度器38。如圖4所示,網(wǎng)絡(luò)處理器 10的實施例還可包括設(shè)置成與交換機12通信的分組格式化器32。在實施例中,交換機12被配置成利用交換機12的嵌入式存儲器中的緩沖器來完 成分組交換,參照圖如,4b。該緩沖器可以例如是諸如分組緩沖器M之類的嵌入式緩沖器。如圖4 4b中示例性圖示的,分組緩沖器M (有時也被稱為主分組緩沖器)包括 用于儲存分組數(shù)據(jù)的數(shù)據(jù)儲存器M - 1以及控制單元M - 2,控制單元M - 2包括用于 執(zhí)行隊列的邏輯和控制存儲器以及用于多播和/或單播的裝置。控制存儲器被配置成存儲 鏈接的列表元素(包括例如到分組數(shù)據(jù)的指針、到其它鏈接的列表元素的指針)以及分組屬 性(諸如分組類型和分組長度)。共享存儲器交換機12的分組緩沖器M可以利用以下端口 中的一個或多個端口來讀取或?qū)懭攵鄠€端口 26 (26a,26b);處理裝置端口(例如可編程管 道端口(PP端口)、業(yè)務(wù)接口端口(TI端口)、可選的分組格式化器端口(PF端口)、和/或可 選的業(yè)務(wù)管理器端口( TM端口))。PP, Tl, PF, TM端口沈可包括一個或多個子端口,即該端口內(nèi)的一個或多個邏輯地 址。子端口可由來自接收子系統(tǒng)(例如來自處理裝置16、業(yè)務(wù)管理器18和/或分組格式化器32)的背壓來調(diào)節(jié)(throttle)。例如,對應(yīng)于TX以太網(wǎng)MAC的TI子端口可以調(diào)節(jié)在調(diào) 度器中針對去往業(yè)務(wù)接口 14的隊列映射到該子端口的節(jié)點。PP讀端口可具有對應(yīng)于業(yè)務(wù) 接口的16個子端口。TI讀端口可具有對應(yīng)于業(yè)務(wù)接口的64個子端口。TM讀端口可具有 單個子端口。PF讀端口可具有2個子端口。當在端口沈上對具有不同子端口的分組進行 讀取或?qū)懭霑r,可以將分組交織,即屬于第一子端口的第一分組的第一部分可在端口上被 讀取或?qū)懭耄笫窃诘谝环纸M的第二部分之前在該端口上讀取或?qū)懭氲诙纸M的第一部 分。分組緩沖器M可以被配置成以存儲一轉(zhuǎn)發(fā)方式來操作,即分組緩沖器M被配置 成存儲完整的輸入分組之后將其發(fā)出,使得存儲器交換機12可以證實所接收分組的分組 完整性并丟棄有差錯標記的分組。此外,在實施例中,分組緩沖器M被配置成存儲4MB的 分組數(shù)據(jù)并吸收高達32K的分組。它可以支持400MHz的分組寫速率和分組讀速率。在另 一實施例中,它可以支持800MHz的分組寫速率和400MHz的分組讀速率。然而,應(yīng)理解該分 組寫速率和分組讀速率可以改變,并且可以分別是另一適當?shù)膶懰俾屎妥x速率。分組緩沖 器M還可以包括64個多播隊列,每個隊列可以容納64個分組。在實施例中,交換機12被配置成不修改分組對齊,即不修改該分組或包含在該分 組中的數(shù)據(jù)。此外,為了給網(wǎng)絡(luò)處理器10接收的分組預(yù)留用于附加的頭部的空間,業(yè)務(wù)接 口 14應(yīng)優(yōu)選被配置成例如通過增加分組偏移值PBase來將分組偏移移位。通信接口 14還 可以在將來自交換機12的分組傳輸?shù)嚼邕B接的單元之前,將額外的頭部空間從該分組 中剝離。被配置成接收和傳送完整分組的其它處理裝置也可以將分組偏移移位。這些處理 裝置包括例如業(yè)務(wù)管理器、分組格式化器、加密處理單元或字符串搜索處理單元。在實施例中,當從隊列讀取分組以便插入到處理裝置16中時,頭256個字節(jié)被發(fā) 送到處理裝置16。如果分組長度PLen和分組偏移值PBase的和為256字節(jié)或更少,則整個 分組進入處理裝置16。如果分組較長,即如果PLen和PBase的和大于256個字節(jié),則該分 組的尾部被保持在分組緩沖器M的專區(qū)中(例如在數(shù)據(jù)儲存器M - 1中),并且當分組頭 部從分組裝置16退出時,該分組尾部與分組頭部被重新連接。然而,在另一實施例中,整個 分組被發(fā)送到處理裝置16,不管分組長度如何。此外,處理裝置16可以被配置成處理分組 的部分、全部分組以及它們的組合。還應(yīng)理解,交換機接收的分組或其部分可以被交織。在實施例中,如果接收的分組具有變化的長度,則在分組短的情況下(例如包含的 在64字節(jié)和256字節(jié)之間)比在分組長的情況下(例如大于256個字節(jié))分組速率更高。在 僅長分組的第一部分被發(fā)送到處理裝置16的實施例中,處理裝置16的容量可被超額預(yù)訂 (oversubscribe),即低于針對短分組以最大分組速率處理分組所需的容量。如果處理裝置 16被超額預(yù)訂,則嵌入式交換機12可以存儲臨時的短突發(fā)分組。如果這些突發(fā)的范圍被限 制,且處理裝置16的容量大于平均分組速率,則所有接收的分組可以仍然由處理裝置16來 處理,原因是該處理裝置16可以追上和處理先前在具有長分組的周期期間存儲的突發(fā)。在實施例(其中長分組的頭部被發(fā)送到處理裝置16,并且處理裝置16的作用就象 同步管道一樣適于以受保證的150MHz分組速率或另一適當分組速率來處理短分組)中,如 果分組長的話,可能有未使用的處理容量,因為針對長分組的分組速率可能小于該受保證 的分組速率,導致可插入分組到該同步管道的時隙未被使用。在這樣的實施例中,從處理裝 置16退出的分組頭部可以被存儲在嵌入式交換機12中,并重新進入處理裝置16以供進一8步處理,從而利用了另外未使用的處理容量。在處理完成之后,分組頭部從處理裝置16退 出并與嵌入式交換機12中的分組尾部重新連接。例如在分組集合的子集需要比其它分組 更多的處理時(例如由于它們需要添加額外的協(xié)議頭部),這種擴展的處理是有用的。交換機12被配置成支持單播、邏輯多播和/或空間多播。分組類型和附加的輸入 參數(shù)作為分組屬性隨分組被傳遞到寫端口內(nèi),如下所述。在實施例中,嵌入式交換機12包括用于邏輯多播的裝置,由此嵌入式交換機12至 少部分地基于隨分組接收的信息以及可選地還部分基于一個或多個查找表中的信息,通過 將屬性NumCopies隨寫入到隊列中的分組一起存儲而存儲拷貝數(shù)量。當從隊列讀取分組 時,該分組的NumCopies個拷貝被傳送。因此,通過邏輯多播,分組被讀取多次。當這樣的分組出列時,可以將用于拷貝數(shù) 量的參考計數(shù)器遞減。然而,應(yīng)理解,參考計數(shù)器可以針對每個拷貝遞增直到達到拷貝的最 大數(shù)量。如果拷貝的數(shù)量到達最小數(shù)(例如零)或者最大數(shù),該分組從隊列中解除分配。否 則,該分組被保留在隊列中,并且當被對應(yīng)調(diào)度器選擇時重復地出列。邏輯多播可以支持高 達每個分組64個拷貝,它適合于包括3層多播,即ISO OSI模型三層多播,例如IP分組的 多播以及VPLS (虛擬專LAN服務(wù))泛洪的大范圍應(yīng)用。在實施例中,嵌入式交換機12包括用于空間多播的裝置,由此嵌入式交換機12至 少部分地基于隨分組接收的信息以及可選地還部分地基于一個或多個查找表中的信息、來 選擇至少兩個隊列并將接收的分組寫到所選擇的兩個隊列。因此,通過空間多播,分組描述符被并行寫到多個空間多播隊列而非常規(guī)隊列,并 且參考計數(shù)器被初始化。對于每個空間多播隊列,多播拷貝被創(chuàng)建且參考計數(shù)器被遞增或 遞減。如果拷貝數(shù)量達到最小數(shù)量(例如零)或最大數(shù)量,該分組從該隊列中解除分配。這 些空間多播隊列可被配置成遮蔽交換機12中的隊列。這意味著空間多播隊列被讀取而不 是被對應(yīng)的調(diào)度器選擇的隊列??臻g多播適合于到物理端口的低等待時間多播,其中多媒 體分布或二層多播或廣播是典型的應(yīng)用。每個空間多播隊列能夠容納高達任何分組大小的 64個分組。應(yīng)理解,可以組合邏輯和空間多播。對于被寫到空間多播隊列的分組,拷貝數(shù)量可 以是高達64K。該組合可以用于針對物理端口內(nèi)的邏輯子端口制作拷貝。在實施例中,交換機12的輸入仲裁器觀被配置成服務(wù)于來自交換機12的輸入端 口 ^a的交織分組并朝向分組緩沖器M將其傳遞給隊列映射器30,參照圖4 4b。因此, 輸入仲裁器觀可以被配置成將來自一個或多個輸入端口 26的分組數(shù)據(jù)緩沖并調(diào)度到交換 機12。來自一個或多個輸入端口沈的分組數(shù)據(jù)43a由包含在輸入仲裁器觀中并由輸入仲 裁器觀服務(wù)的隊列接收。該輸入仲裁器觀被配置成將來自不同輸入端口 26a的分組數(shù)據(jù) 43a進行交織,當時將一個存儲頁寫入交換機12。如果隊列裝滿,則可以激活用于溢出保 護的機制,如背壓4 ,44b,尾部丟棄或頭部丟棄。在實施例中,隊列映射器30被配置成接收來自輸入仲裁器觀的分組屬性42a。分 組屬性隨分組通過業(yè)務(wù)接口 14、可選分組格式化器32、可選業(yè)務(wù)管理器18和/或處理裝 置16中的一個或多個發(fā)送。在其它實施例時,分組屬性還可以單獨被發(fā)送而不發(fā)送分組。 隊列映射器30被配置成解碼分組屬性并根據(jù)分組屬性生成隊列映射。隊列映射包括隊列 號和其中寫入分組的可選一個或多個多個多播隊列,以及一旦分組出列制作多少數(shù)量的拷貝。隊列映射還可以由丟棄單元34使用,該丟棄單元被配置成決定是丟棄還是讓分組排 隊。在實施例中,業(yè)務(wù)接口 14、處理裝置16、業(yè)務(wù)管理器18和可選的分組格式化器32 中的至少一個基于從交換機12接收的分組屬性和/或分組數(shù)據(jù)的處理來設(shè)置分組屬性。該 處理可以通過執(zhí)行計算機程序、通過有限狀態(tài)機或通過利用存儲器查找(例如在內(nèi)容可尋 址的存儲器或RAM中的查找)的分類、或者通過其它由本領(lǐng)域普通技術(shù)人員所理解的適當方 式來實現(xiàn)。在其它實施例中,分組屬性按每端口、每子端口、每個流或端口內(nèi)的每個其它邏 輯單元來配置。在一個實施例中,分組屬性4 是輸入端口 26a上的帶外信號,即屬性不是通過與 分組相同的信道來發(fā)送。在另一實施例中,分組屬性4 在帶內(nèi)發(fā)送,并且交換機12(例如 隊列映射器30)被配置成從分組數(shù)據(jù)43a提取分組屬性43a。例如,隊列映射器30或輸入 仲裁器觀可以被配置成提取/獲取存儲在分組的頭部和/或尾部中的屬性。尾部可以包 括放置在分組末端的補充數(shù)據(jù)。隊列映射器30包括被配置成存儲有關(guān)于隊列映射的信息的映射數(shù)據(jù)庫31。分組屬性可包含直接或間接的隊列映射。在直接映射的情況下,分組屬性包含隊 列映射,該隊列映射被直接中繼到丟棄單元以便確定是否應(yīng)由隊列管理器將分組數(shù)據(jù)寫到 對應(yīng)于該直接隊列映射的隊列。在間接隊列映射的情況下,隊列映射器30使用分組屬性 42a從映射數(shù)據(jù)庫31中查找隊列映射,并且隨后該分組屬性被中繼給丟棄單元以便確定是 否應(yīng)由隊列管理器將分組數(shù)據(jù)寫到查找的隊列。然而,應(yīng)理解,所述屬性可以被中繼給丟棄 單元以便確定在直接或間接將分組映射到隊列之前是否應(yīng)將其丟棄。此外,分組屬性可包含有關(guān)于分組丟棄、分組開始、分組結(jié)束、差錯、分組長度、分 組中字段的偏移、源節(jié)點、源端口、源子端口、源隊列、目的節(jié)點、目的端口、目的子端口、目 的隊列、業(yè)務(wù)類別、顏色、鏡像、存儲地址、存儲器占用、多播狀態(tài)、數(shù)據(jù)保護的信息或可與分 組關(guān)聯(lián)的其它信息。在實施例中,交換機12包括用于丟棄接收的分組而不是將其寫到隊列的裝置。丟 棄分組的決定至少部分地基于當前的隊列長度和/或平均隊列長度和/或存儲在表格中的 信息和/或隨分組接收的信息。用于丟棄分組的裝置可以由前述的丟棄單元34實現(xiàn)。在實施例中,交換機12還包括用于丟棄隊列頭部的分組而不是將其傳送到輸出 端口的裝置。丟棄分組的決定可以至少部分地基于當前的隊列長度和/或平均隊列長度和 /或存儲在表格中的信息和/或隨分組接收的信息和/或隊列中分組花費的時間。用于丟棄分組的裝置可以由丟棄單元34實現(xiàn),該丟棄單元被配置成針對每個接 收的分組檢查對用于緩沖區(qū)預(yù)留以及有效隊列管理的規(guī)則的符合性,并作出通過或丟棄的 決定。丟棄單元34可以被配置成包括用于加權(quán)隨機早期丟棄(WRED)的裝置以及針對可選 地共享存儲器池的隊列進行尾部丟棄的裝置。丟棄單元34還可以包括配置成檢測分組差 錯的裝置。丟棄單元34還可維持隊列長度并包含用于背壓生成的配置寄存器。通過丟棄單元34中的配置,分組緩沖器M可被分割成不同的存儲器使用類型的 多個區(qū)域。丟棄單元34可被配置成監(jiān)督這些區(qū)域的使用,并應(yīng)用用于分組丟棄或背壓的一 組機制來保護緩沖器存儲區(qū)域并防止毀滅性的緩沖器情形。10
在實施例中,交換機12還可包括隊列管理器36,該隊列管理器36包括配置成保持 隊列狀態(tài)并管理鏈接的用于隊列和自由控制存儲器的列表的排隊塊(enqueue block)。該 排隊塊還可通過如丟棄單元所請求的將分組和存儲頁添加到鏈接列表的尾部實現(xiàn)分組的 排隊。隊列管理器26還可包括配置成通過如分組調(diào)度器38所請求的從鏈接列表彈出分組 和存儲頁來實現(xiàn)分組的出列。在實施例中,交換機12包括一個或多個內(nèi)部隊列組,組的數(shù)量對應(yīng)于端口數(shù)量。如圖如示意性示出的,在實施例中,交換機12包括朝向處理裝置16的隊列組PP 隊列;朝向業(yè)務(wù)接口 14或可選的業(yè)務(wù)管理器18的隊列組TX隊列,以及到可選的業(yè)務(wù)格式 化器32的隊列組PF隊列。每個隊列組具有分組調(diào)度器38。如圖恥示意性示出的,在實施例中,交換機12包括朝向處理裝置16的一組隊列 PP隊列;朝向業(yè)務(wù)接口 14的一組隊列TX隊列;朝向可選的業(yè)務(wù)管理器18的一組隊列ΤΜ 隊列;到可選的分組格式化器32的一組隊列PF隊列;以及用于調(diào)度針對待丟棄的分組數(shù) 據(jù)的讀取操作的一組隊列丟棄隊列。每組隊列具有分組調(diào)度器38,其中某些在圖如,4b中 示意性示出。此外,如圖如,4b和圖fe,5b示意性示出的,交換機12包括分組調(diào)度器38,其被配 置成將來自交換機12的隊列的分組調(diào)度到與交換機12通信的一個或多個功能塊,所述調(diào) 度利用調(diào)度算法來執(zhí)行。交換機12可以每個輸出端口具有至少一個調(diào)度器,其確定針對該 隊列的業(yè)務(wù)次序。在實施例中,分組調(diào)度器38被配置成利用虧損加權(quán)循環(huán)法(DWRR)、嚴格優(yōu)先隊列 (SPQ)以及循環(huán)法(RR)中的一種或組合來調(diào)度分組。然而,應(yīng)理解可以使用其它的適當調(diào) 度算法。例如,輸出端口調(diào)度器可以按照以下至少一種調(diào)度算法來服務(wù)隊列循環(huán)法、加權(quán) 循環(huán)法、虧損循環(huán)法、虧損加權(quán)循環(huán)法、嚴格優(yōu)先隊列、先來先服務(wù)、最早截止期優(yōu)先、時分 復用或另一適當調(diào)度算法。在實施例中,分組調(diào)度器38可包括包含至少兩層調(diào)度器的一個或多個分層調(diào)度 器。例如,分組調(diào)度器38可包括處理裝置調(diào)度器一 PP調(diào)度器,其被配置成將分組數(shù)據(jù)調(diào) 度到處理裝置16 ;業(yè)務(wù)管理器調(diào)度器一 TM調(diào)度器,其被配置成將分組數(shù)據(jù)調(diào)度到業(yè)務(wù)管理 器;接口調(diào)度器一 TX調(diào)度器,其被配置成將分組數(shù)據(jù)向業(yè)務(wù)接口一 TX接口,14b調(diào)度;分 組格式化調(diào)度器一 PF調(diào)度器,其被配置成將分組數(shù)據(jù)調(diào)度到分組格式化器32 ;和/或丟棄 調(diào)度器,其被配置成調(diào)度分組丟棄。交換機的輸出端口調(diào)度器(例如TX調(diào)度器)包括業(yè)務(wù)整形器,如令牌桶、漏桶或用 于實現(xiàn)業(yè)務(wù)整形的其它適當裝置或算法,其限制了從每個調(diào)度器輸出的數(shù)據(jù)速率。PP調(diào)度器和TX調(diào)度器可以被配置成每個都服務(wù)512個隊列,并且PF調(diào)度器可被 配置成服務(wù)16個隊列。在實施例中,交換機可包括輸出仲裁器41,參照圖4b和釙。輸出仲裁器41可對 應(yīng)于輸入仲裁器觀。輸出仲裁器41被配置成從分組調(diào)度器38接收分組讀取操作的請求, 并從主分組緩沖器M將這些操作轉(zhuǎn)換成數(shù)據(jù)讀取操作。輸出仲裁器41被配置成控制輸出 端口 26b之間的讀取帶寬的共享。在實施例中,輸出仲裁器41被配置成利用虧損加權(quán)循環(huán) 法(DWRR)、嚴格優(yōu)先隊列(SPQ)以及循環(huán)法(RR)中的一種或組合來調(diào)度分組。然而,應(yīng)理解 可以使用其它適當?shù)恼{(diào)度算法。例如,輸出端口調(diào)度器可以按照以下至少一種調(diào)度算法來服務(wù)隊列循環(huán)法、加權(quán)循環(huán)法、虧損循環(huán)法、虧損加權(quán)循環(huán)法、嚴格優(yōu)先隊列、先來先服務(wù)、 最早截止期優(yōu)先、時分復用或另一適當調(diào)度算法。在實施例中,至少一個輸出端口具有子端 口。在這種情況下,輸出仲裁器41進一步調(diào)度這些子端口并控制該輸出端口的子端口之間 的帶寬共享。交換機12的實施例包括狀態(tài)格式化器40,其被設(shè)置成與分組緩沖器M和分組調(diào) 度器38通信,并被配置成當隊列水平超過配置的水位標志時產(chǎn)生對分組調(diào)度器的背壓。依 靠可配置的連接矩陣,背壓信號可靈活地映射到分組調(diào)度器中的隊列或節(jié)點。如圖5 5b所示,調(diào)度可以被來自處理裝置16、分組格式化器32、業(yè)務(wù)接口 14、或 業(yè)務(wù)管理器18的背壓進行開/關(guān)調(diào)節(jié)。換句話說,分組數(shù)據(jù)到處理裝置16、分組格式化器 32、業(yè)務(wù)接口 14、或業(yè)務(wù)管理器18的調(diào)度可以被中斷,如果它們的緩沖器滿了并且不能夠 接收任何更多的分組數(shù)據(jù)的話。分組調(diào)度器38停止調(diào)度和發(fā)送分組數(shù)據(jù),直到緩沖器被清 空并且再一次能夠接收分組數(shù)據(jù)。以下示例描述了由網(wǎng)絡(luò)處理器進行的四個示例性分組的處理??梢岳镁W(wǎng)絡(luò)處理 器的相同配置并發(fā)地處理這些分組和其它分組。因此,同一個網(wǎng)絡(luò)處理器配置可以導致穿 過網(wǎng)絡(luò)處理器的不同流路徑。所有的四個分組43a最初采用相同的路徑。它們由業(yè)務(wù)接口 14接收。通過配置 業(yè)務(wù)接口 14,分組屬性4 被設(shè)置成到朝向處理裝置16的PP隊列的直接映射。除非該分 組被丟棄單元34丟棄,否則該分組在所選的PP隊列中排隊,且其分組數(shù)據(jù)被存儲在主分組 緩沖器M的數(shù)據(jù)儲存器M — 1中。從該PP隊列,分組被分組調(diào)度器38調(diào)度,并且部分或 全部的分組數(shù)據(jù)被輸出仲裁器41從主分組緩沖器M中讀取,并經(jīng)由PP端口 26b發(fā)送給處 理裝置16。分組屬性由交換機12基于隊列號來設(shè)定。處理裝置16借助于執(zhí)行程序代碼序 列的計算機程序處理分組,其可執(zhí)行分組數(shù)據(jù)和/或分組屬性的分類和編輯,以及本領(lǐng)域 普通技術(shù)人員公知的分組信息和數(shù)據(jù)庫的其它操作。處理裝置16檢查分組內(nèi)容(如分組頭 部)并執(zhí)行表格查找?;谶@些操作,四個分組以四種不同方式來處理,這將在以下第1)一 4)點中描述。1)處理裝置16將第一示例性分組標識為將穿過交換機12、業(yè)務(wù)管理器18以及再 次穿過交換機12之后被送往業(yè)務(wù)接口 14的用戶分組。為了實現(xiàn)該目的,處理裝置16將容 納了對于業(yè)務(wù)管理器18的輸入?yún)?shù)的頭部添加到分組,并且將分組屬性設(shè)置成對朝向業(yè) 務(wù)管理器18的隊列的直接映射。在經(jīng)由交換機12傳送分組后,如上所述,業(yè)務(wù)管理器18 利用輸入頭部中的參數(shù)來設(shè)置對朝向業(yè)務(wù)接口 14的隊列的直接映射。在另一個穿過交換 機12到業(yè)務(wù)接口 14之后,分組被傳送給外部接收器(未示出)。2)處理裝置16將第二示例性分組標識為低等待時間控制分組,其將穿過交換機 12直接到業(yè)務(wù)接口 14。為實現(xiàn)該目的,處理裝置16將分組屬性設(shè)置成到朝向業(yè)務(wù)接口 14 的隊列的直接映射。在另一個穿過交換機12到業(yè)務(wù)接口 14之后,該分組被傳送給外部接 收器(未示出)。3)處理裝置16將第三示例性分組標識為多播分組,例如多播視頻分組。該分組應(yīng) 被拷貝到多個實例并被發(fā)送給業(yè)務(wù)接口 14的不同端口。為實現(xiàn)該目的,可編程的管道16 將分組屬性設(shè)置成標識多播組的間接映射。然而,應(yīng)理解,到多播隊列的直接映射也是可能 的,但是由于存在許多多播隊列,提供直接的映射需要資源,因此,為了節(jié)省帶寬,優(yōu)選提供間接映射。隊列映射器30使用多播組作為關(guān)鍵字以便在映射數(shù)據(jù)庫31中查找。該查找返 回其中分組排隊的多播隊列列表。除非拷貝被丟棄單元34丟棄,否則每個拷貝被寫到多播 隊列。在穿過交換機12到業(yè)務(wù)接口 14之后,每個分組被傳送給外部接收器(未示出)。4)處理裝置16將第四示例性分組標識為將要通過例如IPv4分段 (fragmentation)來分段的用戶分組。該分組將穿過交換機12、分組格式化器32、再一次穿 過交換機12、業(yè)務(wù)管理器18、以及最后一次穿過交換機12,之后被發(fā)送到業(yè)務(wù)接口 14以便 傳輸。為實現(xiàn)該目的,處理裝置16針對給分組格式化器32的輸入?yún)?shù)增加頭部并將分組屬 性設(shè)置成到朝向業(yè)務(wù)管理器18的隊列的直接映射。在已經(jīng)如上所述地經(jīng)由交換機12傳遞 分組之后,分組格式化器32使用配置參數(shù)或輸入頭部中的參數(shù)來控制將要執(zhí)行的功能和/ 或操作。此外,分組格式化器32設(shè)置到返回處理裝置16的隊列的直接映射。此后,采用與 用于第一示例性分組的從處理裝置16進行過程步驟的相同的過程步驟。盡管已經(jīng)按照所示出的實施例描述了本發(fā)明,本領(lǐng)域的一個普通技術(shù)人員將容易 認識到在不背離本發(fā)明范圍的情況下可能進行變化。因此,預(yù)期的是包含在以上描述中并 在附圖中示出的所有內(nèi)容應(yīng)被理解為說明性的而非限制的意義。
權(quán)利要求
1.一種用于處理網(wǎng)絡(luò)中的分組的網(wǎng)絡(luò)處理器單元(10),該網(wǎng)絡(luò)處理器單元(10)包括一通信接口(14),被配置成接收和傳送分組;一至少一個處理裝置(16),用于處理分組或其部分;一嵌入式交換機(12),被配置成在通信接口( 14)和處理裝置(16)之間交換分組;以及其中,嵌入式交換機(12)被配置成分析接收的分組并確定該分組是否應(yīng)被丟棄;如果 分組不應(yīng)被丟棄,則該交換機被配置成存儲所接收的分組,發(fā)送該分組的第一部分給處理 裝置(16)以便對其進行處理,從處理裝置(16)接收經(jīng)處理的該分組的第一部分并傳送所 述經(jīng)處理的該分組的第一部分。
2.按照權(quán)利要求1的網(wǎng)絡(luò)處理器單元(10),其中被布置成與嵌入式交換機(12)通信 的通信接口(14)、處理裝置(16)或諸如業(yè)務(wù)管理器(12)或分組格式化器(32)的另一功能 塊(12,14,16,32)被配置成基于分組數(shù)據(jù)的處理設(shè)置分組屬性。
3.按照權(quán)利要求1的網(wǎng)絡(luò)處理器單元(10),其中被布置成與嵌入式交換機(12)通信 的通信接口(14)、處理裝置(16)或諸如業(yè)務(wù)管理器(12)或分組格式化器(32)的另一功能 塊(12,14,16,32)被配置成基于從嵌入式交換機(12)接收的信息設(shè)置分組屬性。
4.按照權(quán)利要求2— 3中任一項的網(wǎng)絡(luò)處理器單元(10),其中交換機(12)根據(jù)所設(shè) 置的分組屬性來確定功能塊(12,14,16,32)并將分組發(fā)送給該功能塊(12,14,16,32)。
5.按照權(quán)利要求1一 4中任一項的網(wǎng)絡(luò)處理器單元(10),其中所述分組的第一部分包 括整個分組。
6.按照權(quán)利要求1一 4中任一項的網(wǎng)絡(luò)處理器單元(10),其中嵌入式交換機(12)被 配置成存儲分組的第二部分,從處理裝置(16)接收經(jīng)處理的分組的第一部分,并重新組裝 經(jīng)處理的分組的第一部分和分組的第二部分,之后傳送重新組裝的分組。
7.按照權(quán)利要求6的網(wǎng)絡(luò)處理器單元(10),其中分組的第一部分是該分組的頭部,分 組的第二部分是該分組的主體,并且其中嵌入式交換機(12)包括用于在處理第一部分的同 時存儲所述第二部分的分組緩沖器(24)。
8.按照任一前述權(quán)利要求的網(wǎng)絡(luò)處理器單元(10),其中嵌入式交換機(12)被配置有 來自通信接口( 14)和處理裝置(16)的輸入端口 ;以及到通信接口(14)和處理裝置 (16)的輸出端口(26b),由此根據(jù)所設(shè)置的分組屬性,能夠?qū)⒃谌我惠斎攵丝?26a)上接收 的分組寫到任一輸出端口(26b)的輸出隊列并通過輸出端口(26b)傳送。
9.按照權(quán)利要求8的網(wǎng)絡(luò)處理器單元(10),還包括被配置成與嵌入式交換機(12)和 通信接口( 14)通信的業(yè)務(wù)管理器(18),其中嵌入式交換機(12)配置有來自業(yè)務(wù)管理器 (18)的輸入端口(26a)以及到業(yè)務(wù)管理器(18)的輸出端口(2乩),由此在任一輸入端口 (26a)上接收的分組能夠被寫到任一輸出端口(26b)的輸出隊列并通過輸出端口(26b)傳 送。
10.按照權(quán)利要求8或9的網(wǎng)絡(luò)處理器單元(10),其中嵌入式交換機(12)包括配置成 將來自一個或多個輸入端口(26a)的分組數(shù)據(jù)進行緩沖和調(diào)度的輸入仲裁器(28),以及配 置成從該輸入仲裁器(28)接收分組屬性的隊列映射器(30)。
11.按照權(quán)利要求10的網(wǎng)絡(luò)處理器單元(10),其中嵌入式交換機(12)包括配置成利 用調(diào)度算法調(diào)度來自交換機(12)的隊列的分組的分組調(diào)度器(38),所述調(diào)度算法例如循環(huán)法、加權(quán)循環(huán)法、虧損循環(huán)法、虧損加權(quán)循環(huán)法、嚴格優(yōu)先隊列、先來先服務(wù),或最早截止 期優(yōu)先。
12.按照權(quán)利要求8— 11中任一項的網(wǎng)絡(luò)處理器單元(10),其中每個輸入端口(26a) 和/或每個輸出端口(26b)包括一個或多個子端口。
13.按照任一前述權(quán)利要求的網(wǎng)絡(luò)處理器單元(10),其中嵌入式交換機(12)被配置 成支持單播、邏輯多播和/或空間多播。
14.一種用于處理網(wǎng)絡(luò)中的分組的網(wǎng)絡(luò)處理器單元(10)的方法,該方法包括 一借助于通信接口(14)接收和傳送分組;一借助于至少一個處理裝置(16)處理分組或其部分; 一借助于嵌入式交換機(12), 分析所接收的分組,確定該分組是否應(yīng)被丟棄;如果該分組不應(yīng)被丟棄,借助于交換機(12) 存儲所接收的分組;發(fā)送分組的第一部分給處理裝置(16)以便對其處理, 從處理裝置(16)接收經(jīng)處理的分組的第一部分,以及 傳送經(jīng)處理的分組的第一部分。
15.按照權(quán)利要求14的方法,其中,借助于被布置成與嵌入式交換機(12)通信的通信 接口( 14),處理裝置(16)或諸如業(yè)務(wù)管理器(12)或分組格式化器(32)的另一功能塊(12, 14,16,32),分組屬性基于分組數(shù)據(jù)的處理來設(shè)置。
16.按照權(quán)利要求14的方法,其中,借助于被布置成與嵌入式交換機(12)通信的通信 接口( 14),處理裝置(16)或諸如業(yè)務(wù)管理器(12)或分組格式化器(32)的另一功能塊(12, 14,16,32),分組屬性基于從嵌入式交換機(12)接收的信息來設(shè)置。
17.按照權(quán)利要求15- 16中的任一項的方法,還包括以下步驟借助于交換機(12) 并根據(jù)所設(shè)置的分組屬性,確定功能塊(12,14,16,32),并發(fā)送分組給功能塊(12,14,16, 32)。
18.按照權(quán)利要求14- 17中的任一項的方法,其中所述分組的第一部分包括整個分組。
19.按照權(quán)利要求14- 17中的任一項的方法,還包括 存儲分組的第二部分,從處理裝置(16)接收經(jīng)處理的分組的第一部分,以及重新組裝經(jīng)處理的分組的第一部分和分組的第二部分,之后傳送重新組裝的分組。
20.按照權(quán)利要求14- 19中的任一項的方法,其中分組的第一部分是分組的頭部,分 組的第二部分是分組的主體,并且其中在處理第一部分的同時將第二部分存儲在嵌入式交 換機(12)的分組緩沖器(24)中。
21.按照權(quán)利要求14- 20中的任一項的方法,根據(jù)所設(shè)置的分組屬性,在交換機(12) 的任一輸入端口(26a)上接收的分組能夠被寫到交換機(12)的任一輸出端口(26b)并通過 輸出端口(26b)傳送。
22.按照權(quán)利要求21的方法,其中,借助于包括在嵌入式交換機(12)中的輸入仲裁器 (觀),緩沖并調(diào)度在一個或多個輸入端口(26a)上接收的分組數(shù)據(jù),并且其中,借助于包括在嵌入式交換機(12)中的隊列映射器(30),接收來自輸入仲裁器(28)的分組屬性。
23.按照權(quán)利要求22的方法,其中,借助于包括在嵌入式交換機(12)中的分組調(diào)度器 (38),利用調(diào)度算法調(diào)度來自交換機(12)的隊列的分組數(shù)據(jù),所述調(diào)度算法如循環(huán)法、加權(quán) 循環(huán)法、虧損循環(huán)法、虧損加權(quán)循環(huán)法、嚴格優(yōu)先隊列、先來先服務(wù),或最早截止期優(yōu)先。
24.按照權(quán)利要求14- 23中的任一項的方法,還包括單播、邏輯多播和/或空間多播。
25.一種計算機程序產(chǎn)品,包括計算機程序代碼序列,當在計算機化單元上執(zhí)行時,該 計算機程序代碼序列用于實現(xiàn)權(quán)利要求1 一 13中任一項的一個或多個功能,和/或執(zhí)行權(quán) 利要求14 - 24中任一項的一個或多個步驟。
全文摘要
一種用于處理網(wǎng)絡(luò)中的分組的網(wǎng)絡(luò)處理器單元(10)及其方法,該網(wǎng)絡(luò)處理器(10)包括通信接口(14),被配置成接收和傳送分組;至少一個處理裝置(16),用于處理分組或其部分;嵌入式交換機(12),被配置成在通信接口(14)和處理裝置(16)之間交換分組;以及其中,嵌入式交換機(12)被配置成分析接收的分組并確定該分組是否應(yīng)被丟棄;如果分組不應(yīng)被丟棄,則該交換機被配置成存儲所接收的分組,發(fā)送該分組的第一部分給處理裝置(16)以便對其進行處理,從處理裝置(16)接收經(jīng)處理的該分組的第一部分并傳送所述經(jīng)處理的該分組的第一部分。
文檔編號H04L12/56GK102047618SQ200980119421
公開日2011年5月4日 申請日期2009年5月29日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者諾德馬克 G., 卡爾斯特倫 J., 珀森 M., 博登 T., 蘇科尼克 V. 申請人:厄塞勒拉特公司