專利名稱::一種處理分組的網(wǎng)絡(luò)設(shè)備及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備,特別涉及一種當(dāng)有大量數(shù)據(jù)通過網(wǎng)絡(luò)設(shè)備時縮減處理延遲時間的方法和裝置。
背景技術(shù):
:分組交換網(wǎng)可包括一個或多個網(wǎng)絡(luò)設(shè)備,例如以太網(wǎng)交換設(shè)備,每個以太網(wǎng)交換設(shè)備包括幾個模塊,用于處理通過所述設(shè)備傳送的信息。特別地,該設(shè)備包括入站模塊、存儲器管理單元(MMU)以及出站模塊。所述入站模塊具有交換功能,能夠確定分組應(yīng)傳送到哪一個目標(biāo)端口。MMU用于存儲分組信息并執(zhí)行資源檢測。出站模塊用于執(zhí)行分組更改并將分組發(fā)送到至少一個適當(dāng)?shù)哪繕?biāo)端口。設(shè)備上的端口之一可以是CPU端口,使得能在設(shè)備和外部交換/路由控制實體或CPU之間相互發(fā)送和接收信息。當(dāng)網(wǎng)絡(luò)設(shè)備接收分組時,要執(zhí)行許多處理以確定接收到的分組的屬性。多數(shù)情況下,當(dāng)分組的剩余部分仍在接收時,對分組的估計已完成。其部分原因是由于對分組做出確定所需要的信息可在分組報頭中找到,在對分組做出轉(zhuǎn)發(fā)或其它決策時不需要剖析分組的剩余部分(亦即有效載荷)。對于分組整體尺寸較大的巨型幀,這種情況更是經(jīng)常發(fā)生。在現(xiàn)有技術(shù)的網(wǎng)絡(luò)設(shè)備中,設(shè)備要等待直到所有的分組都讀入存儲器------網(wǎng)絡(luò)設(shè)備利用該存儲器暫時存儲分組數(shù)據(jù)。在這樣的情況下,當(dāng)數(shù)據(jù)已經(jīng)可以轉(zhuǎn)發(fā)、刪除或進行其它處理時,還要花費時間等待整個分組的存儲,是一種“浪費”。因此,在必要縮減現(xiàn)有技術(shù)中的網(wǎng)絡(luò)設(shè)備處理分組的延遲時間。
發(fā)明內(nèi)容根據(jù)本發(fā)明的一個方面,提供了一種處理分組的網(wǎng)絡(luò)設(shè)備,包括對入站分組執(zhí)行交換功能的入站模塊;存儲分組的存儲器管理單元;以及將入站分組發(fā)送至出站端口的出站模塊;其中存儲器管理單元用于將入站分組的初始信元存儲在存儲器中,決定直通處理是否需要激活,將當(dāng)直通處理激活時,在將入站分組的最終信元存儲到存儲器中之前,將初始信元轉(zhuǎn)發(fā)給出站端口。優(yōu)選地,所述存儲器管理單元用于檢測入站端口的入站速度是否大于或等于出站端口的出站速度,當(dāng)入站速度大于或等于出站速度時,激活直通處理。優(yōu)選地,所述存儲器管理單元用于檢測多播包的每個目標(biāo)端口的速度,當(dāng)每個目標(biāo)端口的速度都小于入站速度時,激活直通處理。優(yōu)選地,所述存儲器管理單元用于確定入站分組是否是大尺寸的分組,當(dāng)入站分組是大尺寸的分組時,激活直通處理。優(yōu)選地,所述存儲器管理單元用于在將信元轉(zhuǎn)發(fā)給出站端口之前,等待接收預(yù)定數(shù)量的入站分組的信元。優(yōu)選地,所述存儲器管理單元用于根據(jù)出站端口的延遲因子來設(shè)定信元的預(yù)定數(shù)量。優(yōu)選地,所述存儲器管理單元用于在將信元轉(zhuǎn)發(fā)給出站端口之前,等待接收入站分組的多個信元,其中信元數(shù)量的設(shè)置需保證出站端口的緩沖器不會過載。根據(jù)本發(fā)明的一個方面,提供一種在網(wǎng)絡(luò)設(shè)備中處理分組的方法,所述方法包括以下步驟接收入站分組的信元;確定入站分組的出站端口;將入站分組信元的初始信元存儲在存儲器中;決定直通處理是否需要激活;以及當(dāng)直通處理激活時,在將入站分組的最終信元存儲到存儲器中之前,將初始信元轉(zhuǎn)發(fā)給出站端口。優(yōu)選地,所述決定的步驟包括,檢測入站端口的入站速度是否大于或等于出站端口的出站速度,當(dāng)入站速度大于或等于出站速度時,激活直通處理。優(yōu)選地,所述檢測步驟還包括檢測多播分組的每個目標(biāo)端口的速度,當(dāng)每個目標(biāo)端口的速度都小于入站速度時,激活直通處理。優(yōu)選地,所述決定步驟包括確定入站分組是否是大尺寸的分組,當(dāng)入站分組是大尺寸的分組時,激活直通處理。優(yōu)選地,所述方法還包括,在決定步驟之后,在執(zhí)行轉(zhuǎn)發(fā)步驟之前,等待接收預(yù)定數(shù)量的入站分組的信元。優(yōu)選地,所述方法還包括根據(jù)出站端口的延遲因子來設(shè)定信元的預(yù)定數(shù)量。優(yōu)選地,所述方法還包括,在決定步驟之后,在將信元轉(zhuǎn)發(fā)給出站端口之前,等待接收入站分組的多個信元,其中信元數(shù)量的設(shè)置需保證出站端口的緩沖器不會過載。根據(jù)本發(fā)明的一個方面,提供一種在網(wǎng)絡(luò)設(shè)備中處理分組的裝置,包括用于接收入站分組的信元的接收裝置;用于確定入站分組的出站端口的確定裝置;用于將入站分組信元的初始信元存儲到存儲器中的存儲裝置;用于決定直通處理是否需要激活的決定裝置;以及用于當(dāng)直通處理激活時在將入站分組的最終信元存儲到存儲器中之前將初始信元轉(zhuǎn)發(fā)給出站端口的轉(zhuǎn)發(fā)裝置。優(yōu)選地,所述決定裝置包括用于檢測入站端口的入站速度是否大于或等于出站端口的出站速度的檢測裝置,以及用于當(dāng)入站速度大于或等于出站速度時激活直通處理的激活裝置。優(yōu)選地,所述檢測裝置還包括用于檢測多播分組的每個目標(biāo)端口的速度的第二檢測裝置,以及當(dāng)每個目標(biāo)端口的速度都小于入站速度時激活直通處理的激活裝置。優(yōu)選地,所述決定裝置包括大小確定裝置,用于確定入站分組是否是大尺寸的分組,以及激活裝置,當(dāng)入站分組是大尺寸的分組時,用于激活直通處理。優(yōu)選地,所述設(shè)備還包括等待裝置,用于等待接收預(yù)定數(shù)量的入站分組的信元,以及轉(zhuǎn)發(fā)裝置,用于在將信元轉(zhuǎn)發(fā)給出站端口之前,等待直至預(yù)定數(shù)量的信元被接收。優(yōu)選地,所述裝置還包括根據(jù)出站端口的延遲因子、設(shè)定信元的預(yù)定數(shù)量的裝置。附圖是本發(fā)明的說明書的一部分,其有助于更深入地理解本發(fā)明,圖示了本發(fā)明的實施例,與說明書一道解釋了本發(fā)明的原理。其中圖1示出了本發(fā)明的實施例可在其中實現(xiàn)的網(wǎng)絡(luò)設(shè)備;圖2示出了根據(jù)本發(fā)明的一個實施例的集中式入站管線結(jié)構(gòu)示意圖。圖3示出了根據(jù)本發(fā)明的一個實施例的剖析單元的組成部分示意圖。圖4示出了根據(jù)本發(fā)明的一個實施例的集中式出站管線結(jié)構(gòu)示意圖。圖5示出了根據(jù)本發(fā)明的一個實施例的查表單元的實施例示意圖。圖6示出了根據(jù)本發(fā)明的一個實施例的能夠處理分組并減少延遲時間的存儲器管理單元以及存儲器示意圖。圖7示出了根據(jù)本發(fā)明的一個實施例的確定延遲因子的示意圖。具體實施例方式以下將參照本發(fā)明的優(yōu)選實施例對本發(fā)明進行說明,這些實施例的例子已在附圖中示出。圖1示出了一種網(wǎng)絡(luò)設(shè)備,例如交換設(shè)備,本發(fā)明的實施例可在其中實現(xiàn)。設(shè)備100包括入站模塊102、MMU104、以及出站模塊106。入站模塊102用于對入站分組執(zhí)行交換功能。MMU104用于存儲分組,并對每個分組執(zhí)行資源檢測。出站模塊106用于執(zhí)行分組更改并將分組發(fā)送到適當(dāng)?shù)哪繕?biāo)端口。入站模塊102、MMU104以及出站模塊106中的每一個模塊都包括多個用于處理該模塊產(chǎn)生的指令的周期。設(shè)備100采用管線化(pipelined)方式處理入站分組。根據(jù)一個實施例,設(shè)備100具有在每個時鐘周期處理一個分組的管線(pipeline)處理能力。根據(jù)本發(fā)明的一個實施例,設(shè)備100具有133.33MHz的核心時鐘。這意味著設(shè)備100具有133.33M分組/秒的處理能力。設(shè)備100還可包括一個或多個內(nèi)部構(gòu)造的高速端口(例如HiGigTM高速端口)108a-108x、一個或多個外部以太網(wǎng)端口109a-109x,以及CPU端口110。高速端口108a-108x用于系統(tǒng)內(nèi)的各個網(wǎng)絡(luò)設(shè)備的相互連接,從而形成在外部源端口和一個或多個外部目標(biāo)端口之間傳送分組的內(nèi)部交換結(jié)構(gòu)。這樣,從包括有多個相互連接的網(wǎng)絡(luò)設(shè)備的系統(tǒng)外部是看不見這些高速端口108a-108x的。CPU端口110用于將分組發(fā)送到外部交換/路由控制實體或CPU,或者從外部交換/路由控制實體或CPU接收信息。根據(jù)本發(fā)明的一個實施例,CPU端口110可看作是外部以太網(wǎng)端口109a-109x中的一個端口。設(shè)備100通過CPU處理模塊111(例如CMIC)與外部/離線(off-chip)CPU接口相連(interfacewith),其中CPU處理模塊111是與PCI總線接口相連的,而PCI總線將設(shè)備100連接到外部CPU上。網(wǎng)絡(luò)信息流(traffic)通過外部以太網(wǎng)端口109a-109x進、出設(shè)備100。特別地,設(shè)備100中的信息流從外部以太網(wǎng)源端口路由至一個或多個唯一的目標(biāo)以太網(wǎng)端口109a-109x。在本發(fā)明的一個實施例中,設(shè)備100支持物理以太網(wǎng)端口和邏輯(中繼)端口。物理以太網(wǎng)端口是設(shè)備100上的物理端口,由全球端口標(biāo)識符進行標(biāo)識。在實施例中,全球端口標(biāo)識符包括模塊標(biāo)識符和本地端口號,本地端口號可唯一標(biāo)識設(shè)備100和特定的物理端口。中繼端口是一組物理外部以太網(wǎng)端口,其作用就象單個的鏈路層端口。每個中繼端口都配置了一個全球中繼群組標(biāo)識符(TGID)。根據(jù)實施例,設(shè)備100可支持多達128個中繼端口以及多達29個外部物理端口,其中每個中繼端口具有多達8個成員(members)。設(shè)備100上的目標(biāo)端口109a-109x可以是物理外部以太網(wǎng)端口或中繼端口。如果目標(biāo)端口是中繼端口,設(shè)備100通過使用雜亂信號來選擇成員,從而動態(tài)地選擇物理外部以太網(wǎng)端口。這種動態(tài)選擇使設(shè)備100能夠在中繼的端口之間分擔(dān)動態(tài)負(fù)載。一旦分組進入設(shè)備100的源端口109a-109x,即被發(fā)送給入站模塊102進行處理。分組可從XBOD或GBOD進入設(shè)備100。XBOD是具有一個10GE/12GMAC的模塊(block),支持來自高速端口108a-108x的分組。GBOD是具有12個10/100/1GMAC的模塊(block),支持來自端口109a-109x的分組。圖2示出了入站模塊102的集中式入站管線結(jié)構(gòu)200。入站管線200處理入站分組,主要是確定出站位圖,并在某些情況下計算出分組的那一部分可以更改。入站管線200包括數(shù)據(jù)保持寄存器202、模塊報頭(moduleheader)保持寄存器204、判定器206、配置單元208、剖析(parser)單元210、丟棄單元21以及交換單元213。入站管線200從XBOD、GBOD或CPU處理模塊111接收數(shù)據(jù)并將信元數(shù)據(jù)存儲在數(shù)據(jù)保持寄存器202中。判定器206負(fù)責(zé)為來自GBOD、XBOD和CPU的請求設(shè)定時間表。配置單元208用于建立交換所需的具有全部主要端口-特定域的對照表。剖析單元210剖析入站的分組和高速模塊報頭(moduleheader),如果出現(xiàn),通過第三層(L3)信道表查尋來處理信道化分組,生成用戶定義域,在外部IPv4報頭上檢測因特網(wǎng)協(xié)議版本4(IPv4)的校驗和,執(zhí)行地址檢測并為下行的查尋處理準(zhǔn)備相關(guān)的域。丟棄單元212查尋各種早期的丟棄狀況,或者丟棄分組或者防止分組通過管線200發(fā)送。交換單元213執(zhí)行入站管線200中全部的交換操作,包括地址解析。根據(jù)本發(fā)明的一個實施例,對每個XBOD或GBOD,入站管線包括一個1024位的信元數(shù)據(jù)保持寄存器202和一個96位的模塊報頭寄存器204。在進行判定之前,數(shù)據(jù)保持寄存器202將入站數(shù)據(jù)累積成一個連續(xù)的128字節(jié)信元,而模塊報頭寄存器204存儲入站的96位模塊報頭,供以后在入站管線200中使用。特別地,保持寄存器202存儲入站狀態(tài)信息,包括分組的起始信元(SOP)信號、分組的結(jié)束信元(EOP)域、用于指示分組應(yīng)被清除的清除域、用于指示對于某一特定的分組統(tǒng)計計數(shù)器應(yīng)更新的統(tǒng)計更新域、用于指示有關(guān)分組到達高速端口的高速域、用于指示當(dāng)前的高速分組是否是中止分組的中止分組域、用于指示所累加的信元總字節(jié)數(shù)的信元字節(jié)計數(shù)域、及源端口域。如本領(lǐng)域的技術(shù)人員所知悉,保持寄存器202還可存儲以上未提及的其它域。入站管線200每六個時鐘周期為來自XBOD和GBOD的請求設(shè)定時間表,并向每個XBOD和GBOD發(fā)送信號指示來自XBOD和GBOD的請求將于何時處理。CPU處理模塊111在某時(attime)向?qū)⑷胝灸K102發(fā)送一個信元,并在發(fā)送隨后的信元之葡,等待入站模塊102已經(jīng)使用該信元的指示。根據(jù)判定器206作出的哪個源端口被準(zhǔn)予接入入站管線200的判定,入站管線200多路復(fù)用來自每一個XBOD、GBOD和CPU處理的信號。一旦從XBOD或GBOD接收信號,緩沖寄存器202計算出源端口,XBOD或GBOD連接映射到設(shè)備100上的特定物理端口號碼,寄存器202將與已設(shè)定時間表的信元有關(guān)的信息傳遞到判定器206。當(dāng)判定器206從緩沖寄存器202接收信息時,取決于資源沖突的情況,判定器206可發(fā)出(issue)分組運算(operation)代碼、指令運算代碼或FP更新代碼中的至少一個。根據(jù)本發(fā)明的一個實施例,判定器206包括主判定器207和輔助判定器209。主判定器207是基于時分復(fù)用(TDM)的判定器,負(fù)責(zé)為來自GBOD和XBOD的請求設(shè)定時間表,其中來自主判定器207的請求具有最高優(yōu)先權(quán)。輔助判定器209為全部非XBOD/GBOD請求設(shè)定時間表,包括CPU分組接入請求、CPU存儲器/寄存器讀/寫請求、學(xué)習(xí)運算(learnoperation)、壽命運算(ageoperation)、CPU表插入/刪除請求、更新請求以及速率限定計數(shù)器更新請求。輔助判定器209的請求是根據(jù)可利用的主判定器207的空隙時段來設(shè)定時間表的。當(dāng)主判定器207給予XBOD或GBOD一個時段,信元數(shù)據(jù)從寄存器202中取出,與來自寄存器202的其它信息一起發(fā)送到入站管線200。XBOD/GBOD將某些狀態(tài)位,例如SOP、EOP和MOP狀態(tài)位,發(fā)送到主判定器207,以便為XBOD/GBOD請求設(shè)定時間表,及解決與輔助判定器209之間的任何判定沖突。在為XBOD/GBOD信元設(shè)定時間表之后,主判定器207將某些狀態(tài)位,例如SOP、EOP和MOP狀態(tài)位轉(zhuǎn)發(fā)給輔助判定器209。輔助判定器209還負(fù)責(zé)在特定的周期內(nèi)執(zhí)行所有的資源檢測,以保證同時進行的任何運算都不會接入相同的資源。這樣,輔助判定器209能夠為每個請求周期中的最大指令運算代碼或分組運算代碼設(shè)定時間表。根據(jù)一個實施例,輔助判定器209實現(xiàn)資源檢測處理和嚴(yán)格的優(yōu)先級判定設(shè)置。資源檢測處理考慮所有可能的待決請求,根據(jù)請求需使用的資源來確定哪個請求可以發(fā)送。入站管線200的資源被分成SOP信元的查尋資源、所有的信元的MMU存取、EOP信元的EOP資源以及第二層(L2)運算的L2_MOD_FIFO資源。L2_MOD_FIFO資源是16欄目表(16entrytable),用于追蹤至第二層(L2)表的全部更新。由于L2_MOD_FIFO資源是有限的,當(dāng)L2_MOD_FIFO資源占用已滿,輔助判定器209就會限制某些運算(operations)。另外,輔助判定器209不會把對任何地址解析處理的接入設(shè)定得快于每三個時鐘周期一次。在本發(fā)明的實施例中執(zhí)行的嚴(yán)格的優(yōu)先級判定設(shè)置的情況下,要求輔助判定器209將最高級的優(yōu)先權(quán)給予CPU接入請求、將第二級優(yōu)先權(quán)給予CPU分組發(fā)送請求、將第三級優(yōu)先權(quán)給予速率更新請求、將第四級優(yōu)先權(quán)給予CPU存儲器重置運算、將第五級優(yōu)先權(quán)給予學(xué)習(xí)和壽命運算(learnandageoperations)。當(dāng)對信元數(shù)據(jù)進行處理時,輔助判定器209向配置單元208發(fā)送分組信號(包括SOP和EOP)、1024位分組信元數(shù)據(jù)、L2_MOD_FIFO鎖定位、指令運算代碼信息和指令寫入數(shù)據(jù)。本領(lǐng)域的技術(shù)人員知悉,判定器可將其它類型和/或配置的信息發(fā)送給配置單元208。配置單元208包括端口表,用于保持執(zhí)行交換操作所需的全部主要端口特定域,其中一個欄目對應(yīng)有每個端口的信息。配置單元208還包括幾個寄存器,當(dāng)配置單元208從判定器206獲得信息時,配置單元208在第一個周期為端口表設(shè)置(setup)入站,在第二個周期為其它端口特定的寄存器多路復(fù)用輸出。在第二個周期結(jié)束時,配置單元208向剖析單元210發(fā)送輸出信息,包括SOP、EOP、MOP、PURGE和統(tǒng)計更新。剖析單元210管理入站管線緩沖器,當(dāng)查尋請求經(jīng)過管線200時,入站管線緩沖器保持128字節(jié)信元。當(dāng)查尋請求到達管線200的末尾時,數(shù)據(jù)從入站管線緩沖器中取出,并發(fā)送到MMU104。如果數(shù)據(jù)是在高速端口上接收的,剖析單元210剖析出伴隨分組的96位模塊報頭。圖3示出了剖析單元210的組成部分。根據(jù)圖3,剖析單元210包括源中繼映射表(maptable)302、L2剖析模塊304、第三層(L3)剖析模塊306、L3信道查尋模塊308、IPv4校驗和模塊310、第四層(L4)剖析模塊312和用戶定義域(UDF)剖析模塊314。剖析單元210利用源中繼映射表302進行源中繼解析。L2剖析模塊304支持對不同類型的第二層(L2)封裝的剖析,包括以太網(wǎng)II、802.3、SNAP以及802.3LLC分組類型。L3剖析模塊306支持對不同類型的第三層(L3)封裝的剖析,包括具有或者不具有可選項的IPv4分組、IPv6分組以及ARP分組。另外,L3剖析模塊306支持對信道化分組的剖析,以使IP-in-IP和IPv6overIPv4信道能夠?qū)崿F(xiàn)。L3信道查尋模塊308包括128個欄目的TCAML3信道表,以使剖析器210能夠確定入站分組是否是信道化IPv4分組。IPv4校驗和模塊310檢測外部IPv4報頭上的IPv4校驗和,并檢測具有或者不具有可選項的外部IPv4報頭上的IPv4校驗和。L4剖析模塊312支持L4剖析,UDF剖析模塊314支持用戶定義域剖析,以允許用戶與分組的第一個128字節(jié)內(nèi)的任意域相匹配。對全部域進行剖析后,剖析單元210將入站信元數(shù)據(jù)寫入入站管線緩沖器,并將寫指針往下傳遞到管線。由于分組數(shù)據(jù)被寫入入站管線緩沖器,分組數(shù)據(jù)不需要進一步傳送,剖析過的模塊報頭信息可丟棄。然后丟棄單元212查尋各種早期的丟棄狀況,并丟棄分組和/或防止分組通過設(shè)備發(fā)送。交換單元213對入站分組執(zhí)行地址解析處理和其它交換操作。根據(jù)本發(fā)明的一個實施例,交換單元213包括第一交換單元214和第二交換單元216。第一交換單元214決定(resolve)任何丟棄狀況、執(zhí)行BPDU處理、檢測L2原站運動、決定L2和L3單播分組、L3多播分組以及IPMC分組的大多數(shù)目標(biāo)處理。第一交換單元214還通過將不同類型的協(xié)議分組拷貝到CPU上或?qū)⑺鼈儊G棄,來執(zhí)行協(xié)議分組控制交換。第一交換單元214還執(zhí)行全部的源地址檢測,并確定在工作站運動情況下L2欄目是否需要被學(xué)習(xí)或被重新被學(xué)習(xí)。第一交換單元214還執(zhí)行目標(biāo)呼叫,以確定根據(jù)目標(biāo)交換信息如何交換分組。特別地,第一交換單元214計算出單播分組的目標(biāo)端口或者多播分組的端口位圖、計算新的優(yōu)先級、選擇性地將分組轉(zhuǎn)入CPU,并在各種錯誤狀況下丟棄分組。第一交換單元214還包括DSCP表,用于將入站IPv4或IPv6DSCP映射到新值上。第一交換單元214還包括速率限制計數(shù)器(counters),它可為多播、廣播和DLF信息流提供程序控制特定速率的能力。第一交換單元214進行高速交換處理,該高速交換處理與端口109a-109i的交換處理分離,并根據(jù)單元報頭運算代碼交換入站高速分組。然后第二交換單元216執(zhí)行FP動作解析(actionresolution)、源端口移除(sourceportremoval)、中繼解析(trunkresolution)、高速中繼(highspeedtrunking)、端口阻斷(portblocking)、CPU優(yōu)先級處理、端對端線端(end-to-endHeadofLine)(HOL)資源檢測、資源檢測、鏡像、最大傳送長度(MTU)檢測,其中最大傳送長度(MTU)檢測用于確認(rèn)入站/出站分組的長度小于最大傳送長度。第二交換單元216采用第一交換單元214的交換決策、任何L3路由信息和FP重新定向,從而產(chǎn)生交換的最終目標(biāo)。第二交換單元216還從目標(biāo)端口位圖中移除源端口,并執(zhí)行中繼解析處理,從而為單播分組的目標(biāo)端口、入站的鏡像到端口和出站的鏡像到端口決定中繼(線路)。第二轉(zhuǎn)換單元216還通過檢測源端口是否是高速中繼群組的一部分來執(zhí)行高速中繼,如果是,移除源高速中繼群組的全部端口。第二交換單元216還通過執(zhí)行各種原因的屏蔽,包括捕捉(meshing)和出站屏蔽,來執(zhí)行端口阻斷。第二交換單元216還為正向CPU發(fā)送的分組確定優(yōu)先權(quán)/服務(wù)等級。第二交換單元216還在鏡像操作之前執(zhí)行資源檢測,以便為出站鏡像操作生成精確的端口位圖,并將可能已被鏡像操作添加的任何資源受限的端口移除。然后第二交換單元216將p總線域(p-busfields)和信元數(shù)據(jù)輸出到MMU104。p總線域指示出站單元106如何交換和更改分組。當(dāng)從MMU104接收分組時,對于72千兆字節(jié)端口帶寬和CPU處理帶寬,出站模塊106支持執(zhí)行多個出站功能。根據(jù)一個實施例,出站模塊106能夠處理多于72千兆的信息流,也就是每個GE端口24千兆,4個高速端口(12G),以及CPU處理端口0.2GE。出站模塊106接收從以太網(wǎng)端口109a-109i、MMU104輸入的初始分組,并將更改的或者未更改的分組傳送到目標(biāo)端口109j-109x。根據(jù)本發(fā)明的一個實施例,設(shè)備100內(nèi)的所有分組更改都是在出站模塊106中進行的,且出站模塊106的核心處理的運行能夠比目標(biāo)端口109a-109x的處理運行更快。因此,出站模塊106在端口上提供了延遲機制,以防止端口109a-109x發(fā)生過載,從而按照端口的速度為每個端口提供服務(wù)。在本發(fā)明的實施例中,出站模塊106通過1024位數(shù)據(jù)接口連接到MMU104上,MMU104發(fā)送的所有分組都通過出站模塊106。特別地,MMU104將未更改的分組數(shù)據(jù)和控制信息傳遞給出站模塊106??刂菩畔ū聿閷そY(jié)果和在入站模塊102中做出的交換決策。所有的端口108和109以及CPU處理111共用來自MMU104的數(shù)據(jù)總線。這樣,總線使用“基于請求”的時分復(fù)用(TDM)方式,其中在總線上各千兆端口每72個周期輪到一次,各高速端口108每6個周期輪到一次。CPU處理分組數(shù)據(jù)通過空時段(總線上出現(xiàn)的空閑時間)傳送。當(dāng)接收MMU104的信息時,在數(shù)據(jù)被傳送到適當(dāng)?shù)哪繕?biāo)端口109a-109x之前,出站模塊106剖析分組數(shù)據(jù)、進行表查尋、執(zhí)行交換邏輯、更改、排列(align)、及進一步緩沖分組。出站模塊106通過32位S總線接口連接到CPU處理模塊111上,CPU利用該32位S總線接口向出站模塊106發(fā)送請求。請求典型地用于讀取出站模塊的資源,也就是寄存器、存儲器和/或統(tǒng)計計數(shù)器。一旦接收到請求,出站模塊106將請求轉(zhuǎn)換成命令,并使用一種機制(將在以下詳細(xì)描述)在管線上可利用的時段將CPU指令存儲并插入到管線中。圖4示出了出站單元106的集中式出站管線結(jié)構(gòu)圖。出站管線包括判定器402、剖析器406、表查尋單元408、決策單元410、更改單元412以及數(shù)據(jù)緩沖器414。為接入出站管線資源,判定器402對來自MMU的分組數(shù)據(jù)和控制信息、來自CPU的信息提供判定。剖析器406為表查尋和更改執(zhí)行分組剖析。表查尋單元408為剖析器406發(fā)送的信息執(zhí)行表查尋。決策單元410用于確定是否對分組進行更改、丟棄或其它處理。更改單元412根據(jù)入站模塊的前面單元的輸出對分組數(shù)據(jù)做出更改。來自MMU104的所有入站分組數(shù)據(jù)都被發(fā)送到初始分組緩沖器404。在本發(fā)明的一個實施例中,初始分組緩沖器是1044位寬、18字深。出站管線接收兩個輸入來自MMU104的分組數(shù)據(jù)和控制信息、以及來自S總線的CPU運算。初始分組緩沖器404存儲分組數(shù)據(jù)并對來自MMU104的任何空周期保持追蹤。初始分組緩沖器404輸出其寫地址,剖析器406將帶有管線指令的最近寫地址傳遞到更改單元414。判定器402收集來自MMU104的分組數(shù)據(jù)和控制信息、來自CPU的對寄存器和存儲器的讀取/寫入請求,使來自MMU104的分組數(shù)據(jù)和控制信息同步,并將來自CPU的請求寫入保持寄存器。根據(jù)來自CPU的請求類型,判定器402產(chǎn)生管線寄存器和存儲器接入(access)指令以及硬件表初始化指令。當(dāng)判定器402收集分組數(shù)據(jù)、CPU請求和硬件表初始化消息之后,其產(chǎn)生適當(dāng)?shù)闹噶?。根?jù)實施例,判定器402生成分組指令的起始信元、分組指令的未端信元、分組指令的中間信元、分組指令的首尾信元、寄存器讀運算指令、寄存器寫運算指令、存儲器讀運算指令、存儲器寫運算指令、存儲器復(fù)位(reset)寫運算指令、存儲器復(fù)位(reset)寫全部運算指令以及無運算指令。判定器402賦予與分組指令的起始信元和分組指令的首尾信元相關(guān)的出站管線資源以最高的優(yōu)先級。判定器402賦予分組指令的末端信元、分組指令的中間信元、寄存器讀運算指令、寄存器寫運算指令、存儲器讀運算指令和存儲器寫運算指令以第二級優(yōu)先權(quán)。判定器402賦予存儲器復(fù)位寫運算指令和存儲器復(fù)位寫全部運算指令以第三級優(yōu)先權(quán)。判定器402賦予無運算指令以最低的優(yōu)先級。當(dāng)從判定器402處接收指令后,剖析器406利用判定器402發(fā)送的控制信息及配置寄存器,剖析與分組指令的起始信元和分組指令的首尾信元有關(guān)的分組數(shù)據(jù)。根據(jù)實施例,對分組數(shù)據(jù)進行剖析以獲得L4和L3域,該L4和L3域出現(xiàn)在分組的第一個148字節(jié)。然后表查尋單元408從剖析器406接收所有的分組域和寄存器值。圖5進一步示出了表查尋單元408。表查尋單元408包括L3模塊502、VLAN單元504、VLAN譯碼單元506、IP信道查尋單元508。在本發(fā)明的實施例中,L3模塊502包括8k深的下一跳表(nexthoptable)510以及4k深的接口表512。下一跳表510是根據(jù)MMU104的13位寬下一跳(nexthop)目錄編成索引的,下一跳表510根據(jù)分組的類型提供所用的MAC地址和的接口號碼,以為接口表512做索引。對于全部存儲器讀取運算和存儲器寫入運算指令,表查尋單元408解碼地址,并在對應(yīng)的表中寫入或讀取數(shù)據(jù)。VLAN單元504用于獲取VLAN相關(guān)的信息以及輸出端口的生成樹狀態(tài)。VLAN單元504包括VLAN表514和單元(STG)表516。VLAN表514根據(jù)來自分組或接口表512的VLANID編制索引。如果VLAN表查尋結(jié)果是“失敗”,也就是無效VLAN,則該分組將被丟棄。如果VLAN條目是有效的,但是輸出端口不是VLAN的成員,則該分組也被丟棄。VLAN表輸出VLAN成員列表、無標(biāo)記位圖以及用于索引STG表516的STG組號碼。STG表516輸出STG向量,STG向量包含輸出端口的生成樹狀態(tài)。VLAN單元504還確定在出站管線中是否應(yīng)該為CPU和入站鏡像情況更改分組。VLAN譯碼單元506將入站VLAN轉(zhuǎn)換成新的一個,并搜索各種表。VLAN譯碼單元506包括內(nèi)容可尋址存儲器(CAM)518和相關(guān)的數(shù)據(jù)隨機可尋址存儲器(RAM)520。CAM518的搜索是以VLANID和目標(biāo)端口號碼為入口的,如果找到相關(guān)的入口,可從CAM518中獲得地址,從而接入相關(guān)的數(shù)據(jù)RAM520。IP信道查尋單元508從適當(dāng)?shù)谋?、寄存器和被剖析的分組域獲得部分(partial)信道IP報頭。IP信道查尋單元508包括IP信道表522。該IP信道表522編成索引,給出了接口表512中的信道索引,并在其它的信息中輸出信道類型,這些信道類型用于區(qū)別出站管線所遵循的信道協(xié)議。接下來,來自表查尋單元406的信息被傳送到?jīng)Q策單元410,在決策單元410中做出決策,確定是否對分組進行更改、丟棄或其它處理。例如,決策單元410首先在分組傳輸?shù)钠鹗疾閷で宄?flushbits),如果清除位被設(shè)定,則將該分組標(biāo)記為“丟棄”。在本發(fā)明的實施例中,如果已經(jīng)在傳送中為分組設(shè)定清除位,則該分組被完全傳送,下一個分組被清除。在另一個實施例中,MMU104可將分組標(biāo)記為清除、老化(aged)或信元錯誤,決策單元410既可丟棄這些分組,也可傳送這些分組但是將它們標(biāo)記為錯誤的。在另一個例子中,如果VLAN譯碼功能是激活的,但是CAM518查尋失敗,如果某些域被設(shè)定,決策單元410則丟棄該分組。決策單元408還確定分組是否需要進行L4交換或L3路由,并確定需要在分組上執(zhí)行的鏡像功能的類型。之后更改單元412為分組構(gòu)造信道IP報頭和模塊報頭,使分組內(nèi)的替換(replacement)改變,并計算內(nèi)、外IP報頭的IP的校驗和。更改單元412從初始緩沖器404接收分組數(shù)據(jù)接口,初始緩沖器404使更改單元412為初始緩沖器404提供讀取地址,并相應(yīng)地獲得分組數(shù)據(jù)和基本控制數(shù)據(jù)。然后更改單元412根據(jù)從初始緩沖器404接收到的數(shù)據(jù),產(chǎn)生分組的中部和分組指令的未端,并根據(jù)這些命令做出變化。更改單元412還從決策單元410接收全部分組決策和管線命令,并使用這種信息對分組做出進一步的改變。特別地,需要被入站分組域填充的信道IP報頭的全部域被填充。另外,IP信道報頭的IP校驗和的計算與報頭的構(gòu)建并行進行。更改單元412還從初始緩沖器404中讀回分組和控制信息,并執(zhí)行所有的分組更改和域替換。它在一條總線上輸出CPU運算和硬件命令、以及與其相關(guān)的數(shù)據(jù)和地址,還在另一條總線上的輸出分組數(shù)據(jù)和控制信息。另外,更改單元412對報頭進行物理封裝和解包,以及特征標(biāo)記移除和插入。如果分組進入高速端口,更改單元412將分組從以太網(wǎng)格式轉(zhuǎn)換成高速格式。更改單元412還通過填充(padding)小于64字節(jié)的分組來排列分組,還通過將數(shù)據(jù)排列到1314位范圍來清除空穴。之后,1314位“完整的”數(shù)據(jù)字從更改單元412輸出至數(shù)據(jù)緩沖器414。數(shù)據(jù)緩沖器414將來自更改單元412的完整數(shù)據(jù)字存儲在存儲器中。在出站管線將分組發(fā)送到目標(biāo)端口109a-109x之前,分組數(shù)據(jù)存儲在數(shù)據(jù)緩沖器414中,以達到管線延遲和端口速度匹配。只要MMU104有自由空間,數(shù)據(jù)緩沖器414就能從MMU104請求數(shù)據(jù)。作為上述分組發(fā)送和處理的一部分,與之前的技術(shù)相比,本發(fā)明在處理接收到的數(shù)據(jù)分組時,能使延遲時間減少。該過程在圖6中示出。如上所述,存儲管理單元(MMU)606用于管理在分組存儲器601中數(shù)據(jù)的存儲和重新獲取。分組存儲器被看作MMU的一部分,但是本發(fā)明也可應(yīng)用于分組存儲器中的直通處理,這種分組存儲器可以設(shè)置網(wǎng)絡(luò)設(shè)備內(nèi),也可以設(shè)置在網(wǎng)絡(luò)設(shè)備外部。根據(jù)本發(fā)明的至少一個實施例,在分組被分組存儲器601完全接收之前,允許MMU606將分組發(fā)送到出站端口605。信元的臨界數(shù)量被提供,用于確定在允許MMU將分組發(fā)送到出站端口之前必須接收到多少個信元。在一個實施例中,這個值可被配置成預(yù)定數(shù)量的信元,取決與網(wǎng)絡(luò)設(shè)備的延遲時間。在圖6中,接收到的信元的數(shù)量用“n”表示。為了激活這個功能,可設(shè)定寄存器內(nèi)的一個位域。當(dāng)由于不夠預(yù)定數(shù)量的信元,分組未被傳送時,在之后所接收的每個信元每次到達時,都執(zhí)行直通檢測,直至滿足條件??赡芤训竭_分組的末端,或者分組通過直通檢測并開始直通處理。必須將端口的端口速度參數(shù)提供給MMU606,從而使該模塊做出正確的決策,該決策關(guān)于當(dāng)沒有接收完分組時是否允許轉(zhuǎn)發(fā)。如果入站端口速度快于或等于出站端口的速度,可使用直通處理。如果入站端口速度慢于出站端口的速度,可發(fā)生欠載(under-run),從而不允許直通處理。多播和廣播分組也受到端口速度性能的影響。所有參與多播或廣播的端口必須滿足上述的要求,才能允許直通處理。MMU還采用延遲因子“m”,如圖7所示。該延遲因子的取值范圍為1至7,主要取決于目標(biāo)端口的速度。如圖所示,根據(jù)目標(biāo)端口的速度從10Mbs至12Gbs來設(shè)定該因子1至7。由于出站端口處潛在的延遲可能引起過載或者堆積(backups),所以采用了延遲因子。通過使用該因子,這些內(nèi)在的延遲可被補償,直通處理可順利執(zhí)行。通過實施本發(fā)明,用戶可減少給定的分組從網(wǎng)絡(luò)設(shè)備的入口至網(wǎng)絡(luò)設(shè)備的出口的延遲時間。與之前的技術(shù)方法相反,在同一個分組可從網(wǎng)絡(luò)設(shè)備中出來之前,不需要等待整個分組被網(wǎng)絡(luò)設(shè)備完全接收。雖然以上是通過實施例對直通處理進行說明,但是本發(fā)明不限于上述的實施例。相反,它包括允許在存儲器內(nèi)進行直通處理的任何網(wǎng)絡(luò)設(shè)備,使得在分組開始傳送到出站端口之前,無需完全接收分組。如本領(lǐng)域的技術(shù)人員所知悉,在上述優(yōu)選實施例中,本發(fā)明的上述配置,可通過適當(dāng)?shù)陌雽?dǎo)體制造技術(shù)及線路布圖,在半導(dǎo)體基底(例如硅)上實現(xiàn)。根據(jù)上述的結(jié)構(gòu)描述,半導(dǎo)體設(shè)計和制造技術(shù)專業(yè)的技術(shù)人員能夠?qū)⒈景l(fā)明的各種模塊、端口和表、緩沖器等在單個的半導(dǎo)體基底上實現(xiàn)。本發(fā)明的范圍也包括在分立的電子器件上實現(xiàn)本發(fā)明所揭露的各種部件,從而不必通過使用單個的半導(dǎo)體基片,也可利用本發(fā)明的功能特征。關(guān)于本發(fā)明,網(wǎng)絡(luò)設(shè)備可以是任何處理網(wǎng)絡(luò)數(shù)據(jù)的設(shè)備,可包括交換機、路由器、橋接器、網(wǎng)關(guān)或者服務(wù)器。另外,雖然上面的討論特別提及對分組的討論,但是,在實際應(yīng)用的內(nèi)容中,可包括任何種類的數(shù)據(jù)報文、數(shù)據(jù)分組和信元,或網(wǎng)絡(luò)設(shè)備之間交換的任何類型的數(shù)據(jù)。前面的描述是針對本發(fā)明的特定實施例。但是,很顯然可以對所描述的實施例做出其它的變化和更改,并獲得它們的一些或所有優(yōu)點。因此,本發(fā)明的權(quán)利要求的目的是涵蓋所有落入本發(fā)明的精神實質(zhì)和范圍內(nèi)的這樣的更改和變化。本發(fā)明要求申請日為2004年11月30日、申請?zhí)枮?0/631,624的美國臨時專利申請的優(yōu)先權(quán),本申請參考該在先申請并將其結(jié)合于本申請中。權(quán)利要求1.一種處理分組的網(wǎng)絡(luò)設(shè)備,包括對入站分組執(zhí)行交換功能的入站模塊;存儲分組的存儲器管理單元;以及將入站分組發(fā)送至出站端口的出站模塊;其中存儲器管理單元用于將入站分組的初始信元存儲在存儲器中、決定直通處理是否需要激活,并當(dāng)直通處理激活時,在將入站分組的最終信元存儲到存儲器中之前,將初始信元轉(zhuǎn)發(fā)給出站端口。2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其特征在于所述存儲器管理單元用于檢測入站端口的入站速度是否大于或等于出站端口的出站速度,當(dāng)入站速度大于或等于出站速度時,激活直通處理。3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)設(shè)備,其特征在于所述存儲器管理單元用于檢測多播分組的每個目標(biāo)端口的速度,當(dāng)每個目標(biāo)端口的速度都小于入站速度時,激活直通處理。4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其特征在于所述存儲器管理單元用于確定入站分組是否是大尺寸的分組,當(dāng)入站分組是大尺寸的分組時,激活直通處理。5.一種在網(wǎng)絡(luò)設(shè)備中處理分組的方法,所述方法包括以下步驟接收入站分組的信元;確定入站分組的出站端口;將入站分組信元的初始信元存儲在存儲器中;決定直通處理是否需要激活;以及當(dāng)直通處理激活時,在將入站分組的最終信元存儲到存儲器中之前,將初始信元轉(zhuǎn)發(fā)給出站端口。6.根據(jù)權(quán)利要求5所述的方法,其特征在于所述決定步驟包括,檢測入站端口的入站速度是否大于或等于出站端口的出站速度,當(dāng)入站速度大于或等于出站速度時,激活直通處理。7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述檢測步驟還包括檢測多播分組的每個目標(biāo)端口的速度,當(dāng)每個目標(biāo)端口的速度都小于入站速度時,激活直通處理。8.一種在網(wǎng)絡(luò)設(shè)備中處理分組的裝置,所述裝置包括用于接收入站分組的信元的接收裝置;用于確定入站分組的出站端口的確定裝置;用于將入站分組信元的初始信元存儲到存儲器中的存儲裝置;用于決定直通處理是否需要激活的決定裝置;以及用于當(dāng)直通處理激活時在將入站分組的最終信元存儲到存儲器中之前將初始信元轉(zhuǎn)發(fā)給出站端口的轉(zhuǎn)發(fā)裝置。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于所述決定裝置包括用于檢測入站端口的入站速度是否大于或等于出站端口的出站速度的檢測裝置,以及用于當(dāng)入站速度大于或等于出站速度時激活直通處理的激活裝置。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于所述檢測裝置還包括用于檢測多播分組的每個目標(biāo)端口的速度的第二檢測裝置,以及當(dāng)每個目標(biāo)端口的速度都小于入站速度時激活直通處理的激活裝置。全文摘要一種處理分組的網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備包括對入站分組執(zhí)行交換功能的入站模塊;存儲分組的存儲器管理單元;以及將入站分組發(fā)送至出站端口的出站模塊。所述存儲器管理單元被配置來將入站分組的初始信元存儲在存儲器中,確定直通處理是否被激活,當(dāng)直通處理被激活時,在入站分組的最終信元存儲到存儲器中之前,將初始信元轉(zhuǎn)發(fā)給出站端口。文檔編號H04L12/56GK1798101SQ20051012656公開日2006年7月5日申請日期2005年11月29日優(yōu)先權(quán)日2004年11月30日發(fā)明者希恩海森·吳申請人:美國博通公司