專利名稱::有效處理通信流量的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種用于有效通信流量處理的系統(tǒng)和方法,特別涉及一種將通信流量按預(yù)定的總線流量寬度重排并將選擇的流量類型區(qū)分優(yōu)先次序的交換系統(tǒng)和方法。
背景技術(shù):
:IP網(wǎng)上語音(VoIP)在本領(lǐng)域里眾所周知,且已經(jīng)證明其用于通信是非常有用和節(jié)省成本的。但是,一些用戶發(fā)現(xiàn)VoIP質(zhì)量達(dá)不到他們的期望或要求。特別地,延遲和抖動(dòng)是VoIP最主要的問題。另外,VoIP的安全性也是一個(gè)令人擔(dān)心的問題。由于沒有身份驗(yàn)證給VoIP用戶,使用各種知名黑客系統(tǒng)就可以輕易地竊聽和回放VoIP用戶之間的談話。而且,盡管開發(fā)了一些軟件用來減少延遲和抖動(dòng),但當(dāng)VoIP流量增加時(shí),語音質(zhì)量并不能得到保證。當(dāng)前技術(shù)提供一定接口用于在一個(gè)通信系統(tǒng)里交換數(shù)據(jù)信息包。例如,在美國專利6,668,297中Karr等披露了一個(gè)接口,通過POS(SONET上的數(shù)據(jù)包)實(shí)施,將物理層(PHY)設(shè)備互連到鏈接層設(shè)備。但是,這個(gè)接口設(shè)計(jì)在多信道系統(tǒng)里只有較低的吞吐量。另外,這個(gè)接口設(shè)計(jì)通常是為普通數(shù)據(jù)傳送而設(shè)計(jì),并不能為傳送語音通信而提供有效途徑。因此,需要提供一種系統(tǒng)和方法用于有效且安全地處理和傳輸語音通信。發(fā)明概述此處披露了一種數(shù)據(jù)處理方法。本方法包括以下步驟接收初始數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的流量;重排接收到的流量到預(yù)定數(shù)據(jù)寬度的總線流量里;識(shí)別總線流量內(nèi)的一個(gè)特別流量;處理總線流量;給予特別流量的優(yōu)先權(quán)次序優(yōu)于總線流量里的其它流量;并依照優(yōu)先次序的結(jié)果輸出總線流量。而且,此處披露了一種用于數(shù)據(jù)處理的系統(tǒng)。本系統(tǒng)包括一個(gè)電路用于接收并重排一個(gè)初始數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的流量到所述預(yù)定數(shù)據(jù)寬度的總線流量;一個(gè)電路用于辨認(rèn)總線流量里一個(gè)特別流量;一個(gè)處理器用于處理重排的總線流量;和一個(gè)電路用于給予特別流量以優(yōu)先權(quán)次序優(yōu)于總線流量里其它流量。再者,此處披露了一種用于安全幀傳輸?shù)脑O(shè)備。本設(shè)備包括一個(gè)接收電路用于接收幀;和一個(gè)入口處理器用于處理幀以確定是否進(jìn)一步處理此幀。依照本發(fā)明披露的一個(gè)實(shí)施例將流量重排到一個(gè)預(yù)定總線流量數(shù)據(jù)寬度,以確保在多信道系統(tǒng)里的高吞吐量。另外,依照本發(fā)明披露的一個(gè)實(shí)施例將一個(gè)特別類型的流量(如語音)從其它普通數(shù)據(jù)流量區(qū)分出來,并提供優(yōu)先權(quán)來傳輸此特別流量。再者,由于VoIP用戶是由網(wǎng)絡(luò)驗(yàn)證和授權(quán),VoIP通話的安全性得以保證,且通話不會(huì)被泛濫或傳播給其他用戶。所以,本發(fā)明提供一種有效且安全的語音流量處理和傳輸?shù)南到y(tǒng)和方法。圖l是描述本發(fā)明一個(gè)實(shí)施例的總體構(gòu)造的方框示意圖。圖2是描述如圖1所示的本發(fā)明相同實(shí)施例的總體過程的流程圖。圖3是一個(gè)可以實(shí)施所述方案的通用計(jì)算機(jī)的方框示意圖。圖4是描述如圖1所述的轉(zhuǎn)發(fā)芯片模塊的方框示意圖。圖5是描述如圖1所述的排隊(duì)芯片模塊的方框示意圖。圖6是表示存儲(chǔ)控制器的方框示意圖。圖7是圖1MUX芯片140的結(jié)構(gòu)方框示意圖。圖8是圖1DEMUX芯片190的結(jié)構(gòu)方框示意圖。圖9顯示由圖1轉(zhuǎn)發(fā)芯片150處理的Ethernet和IP幀格式。圖10是在具體端口上的Ethernet幀的每個(gè)區(qū)段上執(zhí)行處理的流程圖。圖11是圖4入口處理模塊420的功能流程示意圖。圖12顯示一個(gè)端口表格存儲(chǔ)器的組織結(jié)構(gòu)。圖13顯示一個(gè)VLAN屬性表格的格式。圖14顯示一個(gè)生成樹表格的格式。圖15是2層轉(zhuǎn)發(fā)功能的流程圖。圖16是一個(gè)學(xué)習(xí)過程的流程圖。圖17是一個(gè)時(shí)效過程的流程圖。圖18顯示一個(gè)時(shí)效表格的編碼。0027]圖19顯示學(xué)習(xí)FIFO寄存器的格式。圖20是2層和3層轉(zhuǎn)發(fā)技術(shù)的流程圖。圖21是一個(gè)RFC1812硬件里進(jìn)行單播工P轉(zhuǎn)發(fā)的流程圖。圖22是IP頭檢驗(yàn)過程的流程圖。圖23是IP頭校驗(yàn)和過程的流程圖。圖24是ira地址査找過程的流程圖。圖25是轉(zhuǎn)發(fā)更新過程的流程圖。圖26是轉(zhuǎn)發(fā)輸出過程的流程示意圖。圖27顯示分類輸入項(xiàng)字段的格式。圖28是一個(gè)由CAM執(zhí)行過程的流程圖。圖29是下一跳功能的流程圖。圖30是下一跳模塊過程的流程圖。圖31顯示SRAM里的2層、3層,和流程分類輸入項(xiàng)以及在外部SRAM里下一跳表格內(nèi)的對應(yīng)輸入項(xiàng)之間的關(guān)系。圖32顯示Ethernet幀頭里將被替換的字段。圖33顯示L2NHInfo和L3NHInfo表格里的輸入項(xiàng)格式。圖34顯示在FCNInfo表格里的輸入項(xiàng)格式。圖35是多播處理功能的流程圖。圖36是多播數(shù)據(jù)隊(duì)列處理功能的流程圖。圖37顯示一個(gè)控制頭的格式。圖38顯示MHdrFIFO的輸入項(xiàng)格式。圖39顯示多播控制RAM的輸入項(xiàng)格式。圖40是描述緩沖和排隊(duì)過程的方框示意圖。圖41是表示出站排隊(duì)過程的方框示意圖。圖42是表示緩沖工D自由列表的方框示意圖。圖43是表示輸入-輸出頭和輸入-輸出尾表格的表格格式的方框示意圖。圖44是表示自由頭寄存器和自由尾寄存器的方框示意圖。圖45是表示per-flow排隊(duì)的頭和尾緩沖區(qū)ID表格的方框示意圖。圖46是表示使用鏈接列表的頭和尾流隊(duì)列的方框示意圖。圖47是表示使用鏈接列表的頭和尾流隊(duì)列的方框示意圖。圖48是表示每個(gè)-端口-類別-子類隊(duì)列-長度計(jì)數(shù)表格格式的方框示意圖。圖49是表示積壓流鏈接列表的數(shù)據(jù)結(jié)構(gòu)的方框示意圖。圖50是表示積壓流鏈接列表的頭和尾FlowID表格的方框示意圖。圖51是表示形成積壓FlowID環(huán)的數(shù)據(jù)結(jié)構(gòu)的方框示意圖。圖52是表示積壓端口-類別位圖表格的方框示意圖。圖53是表示積壓端口-類別子類位圖表格的方框示意圖。圖54是表示流-端口-類別-子類表格的方框示意圖。圖55是表示隊(duì)列長度高閾值表格的方框示意圖。圖56是表示隊(duì)列長度低閾值表格的方框示意圖。圖57是表示隊(duì)列管理器SRAM存儲(chǔ)器映射表格的方框示意圖。圖58是表示分層式修改加權(quán)輪轉(zhuǎn)調(diào)度實(shí)施的示意圖。圖59是表示時(shí)隙配置表格的方框示意圖。圖60是表示類別權(quán)重表格的方框示意圖。圖61是表示類別WRR計(jì)數(shù)表格的方框示意圖。圖62是表示W(wǎng)RR合適端口類別-位圖表格的方框示意圖。圖63是表示之前被調(diào)度的類別表格的方框示意圖。圖64是表示子類權(quán)重表格的方框示意圖。圖65是表示子類WRR計(jì)數(shù)表格的方框示意圖。圖66是表示W(wǎng)RR合適端口-類別子類-位圖表格的方框示意圖。圖67是表示之前被調(diào)度的子類表格的方框示意圖。發(fā)明詳述在此,為了便于描述,請參考任何一個(gè)或多個(gè)附圖里的步驟和/或特征,那些具有相同參考數(shù)字的步驟和/或特征具有相同的功能或操作,除非出現(xiàn)相反的指示。此處披露了一種交換系統(tǒng)和方法,用于重排通信流量到一個(gè)預(yù)定總線流量寬度。在此描述的一個(gè)實(shí)施例里,預(yù)定總線寬度是64比特寬。如此所述,寬度窄于或等于64比特的數(shù)據(jù)被定義為在1比特和64比特之間的任何數(shù)據(jù)寬度,包括但不限于l、2、4、8、16、32和64比特?cái)?shù)據(jù)。但是,本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員將會(huì)理解,使用不同于64比特包括但不限于8、16、32或128比特的總線流量寬度,可以等同地實(shí)施本發(fā)明的實(shí)施例,而不會(huì)偏離本發(fā)明的精神和范圍。綜述以下是依照本發(fā)明描述本方法和系統(tǒng)的一個(gè)具體應(yīng)用。參考圖l和圖2,它們分別描述用于流量處理的本系統(tǒng)和方法。圖1顯示依照本發(fā)明披露的一個(gè)實(shí)施例的整體系統(tǒng)構(gòu)造100。系統(tǒng)100接收流量105、125。流量首先經(jīng)過物理層(PHY)芯片110、120,然后行進(jìn)到媒介訪問控制(MAC)芯片130。通常,流量105、125包括語音流量和其它普通數(shù)據(jù)流量。在這個(gè)特別實(shí)施例里,流量105、125通常具有一個(gè)窄于或等于64比特的數(shù)據(jù)寬度。但是,實(shí)際總線寬度將依照特定應(yīng)用的不同而不同。所示系統(tǒng)100有48個(gè)快速以太網(wǎng)(FE)端口110和4個(gè)萬兆以太網(wǎng)(GE)端口120,因而總計(jì)52個(gè)端口可用于接收流量105、125。在所示實(shí)施例里,F(xiàn)E端口110接收流量105,而GE端口120接收流量125。FE端口110和GE端口120被雙工鏈接連接到MAC芯片130。相應(yīng)地,MAC130最好是一個(gè)快速以太網(wǎng)MAC和萬兆以太網(wǎng)MAC。第一電路140,通常是如圖1所示的MUX芯片140,被連接到MAC芯片130。MUX芯片140發(fā)送控制信號(hào)到MAC芯片130以控制在MUX芯片140和MAC芯片130之間的流量。如前所述,這個(gè)實(shí)施例的流量通常包括語音流量和數(shù)據(jù)寬度窄于或等于64比特的其它普通數(shù)據(jù)流量。當(dāng)而X芯片140接收到來自MAC芯片130的流量時(shí),MUX芯片140重排此流量成預(yù)定寬度(在此例子里是64比特)的總線流量,并在所述總線流量內(nèi)識(shí)別出一個(gè)特定類型的流量,如語音流量。例如,在一個(gè)實(shí)施例里,MUX芯片140在虛擬LAN(VLANID)里使用語音設(shè)備識(shí)別器,以在存儲(chǔ)器內(nèi)形成一個(gè)表格,從而識(shí)別此通信流量的源/端口,并相應(yīng)地編排數(shù)據(jù)的優(yōu)先次序。MUX芯片140如何重排和區(qū)分語音流量的更多細(xì)節(jié)將在以下描述。第二電路150,通常是如圖l所示的轉(zhuǎn)發(fā)芯片150,被連接到MUX芯片140以從MUX芯片140接收重排過的總線流量。轉(zhuǎn)發(fā)芯片150執(zhí)行第二和第三層入口處理,有關(guān)細(xì)節(jié)將在以下描述,重點(diǎn)參考圖4。第三電路170,通常是如圖1所示的排隊(duì)芯片170,其被連接到轉(zhuǎn)發(fā)芯片150以從轉(zhuǎn)發(fā)芯片150接收被處理過的流量。排隊(duì)芯片170從其它普通流量識(shí)別出一個(gè)選擇的流量類型,如語音,并進(jìn)一步編排所選擇流量的次序優(yōu)于其它普通流量。特別地,排隊(duì)芯片170重新整理流量并首先輸出所選擇的流量,同時(shí)存儲(chǔ)其它普通數(shù)據(jù)流量在一個(gè)與排隊(duì)芯片170連接的緩沖區(qū)180里。排隊(duì)芯片170如何編排流量優(yōu)先次序的細(xì)節(jié)將在以下描述,重點(diǎn)參考圖5。在轉(zhuǎn)發(fā)芯片150轉(zhuǎn)發(fā)處理過的流量到排隊(duì)芯片170之前,有可能增加新特征到此流量。相應(yīng)地,系統(tǒng)100包括一個(gè)擴(kuò)展/處理器接口模塊160。選擇出的流量被轉(zhuǎn)發(fā)芯片150提交給擴(kuò)展/處理器接口模塊160。在一個(gè)例子里,擴(kuò)展/處理器接口模塊160利用一個(gè)軟件程序來配置和改變流量的數(shù)據(jù)頭。在另一個(gè)例子里,用戶可能發(fā)現(xiàn),對一個(gè)特別應(yīng)用而言,在流量被傳遞到排隊(duì)芯片170之前,可以很方便地利用擴(kuò)展/處理器接口160對流量執(zhí)行進(jìn)一步處理,或執(zhí)行流量特定信息的驗(yàn)證檢查。擴(kuò)展/處理器接口模塊160在執(zhí)行任何要求的處理之后,將轉(zhuǎn)發(fā)通信流量到排隊(duì)芯片170。第四電路190,通常是如圖1所示的DEMUX芯片190,其被連接到排隊(duì)芯片170。如前所述,來自排隊(duì)芯片170的流量現(xiàn)在是一個(gè)預(yù)定寬度的總線流量,是一個(gè)被MUX芯片140處理后的結(jié)果。在這個(gè)例子里,總線流量是64比特,相應(yīng)地,DEMUX芯片190從排隊(duì)芯片170接收64比特流量,并拆分64比特流量到一個(gè)對應(yīng)初始流量105、125的數(shù)據(jù)寬度。DEMUX芯片190如何拆分64比特流量到初始數(shù)據(jù)寬度的有關(guān)細(xì)節(jié)將在以下描述。DEMUX芯片190傳遞被拆分的流量到MAC芯片130,以便傳輸?shù)紽E端口110和GE端口120。圖2是一個(gè)由圖1系統(tǒng)100執(zhí)行的方法步驟的流程圖200。圖2的210到270中的每個(gè)步驟對應(yīng)參考圖1以上所述的電路功能。本方法開始于BEGIN步驟205,然后到步驟210,其對應(yīng)于MUX芯片140接收具有數(shù)據(jù)寬度窄于或等于預(yù)定總線流量數(shù)據(jù)寬度的流量。如有關(guān)圖1的以上所述,這個(gè)特別例子的預(yù)定總線流量數(shù)據(jù)寬度是64比特,但其它數(shù)據(jù)寬度可以被等同地使用。控制行進(jìn)到步驟220,其中MUX芯片140重排接收到的流量成一個(gè)64比特的數(shù)據(jù)寬度流量??刂菩羞M(jìn)到步驟230,其中MUX芯片140在64比特流量里識(shí)別出一個(gè)特定類型的流量??刂茝牟襟E230行進(jìn)到步驟240,其中轉(zhuǎn)發(fā)芯片150處理此64比特流量。隨后,控制行進(jìn)到步驟250,其中排隊(duì)芯片170和緩沖區(qū)180編排此特定流量的次序優(yōu)于其它64比特的流量,并在步驟260依照優(yōu)先次序結(jié)果輸出此64比特的流量??刂茝牟襟E260行進(jìn)到步驟270,其中DEMUX芯片190拆分此64比特的流量到初始數(shù)據(jù)寬度,并傳輸此流量回到MAC芯片130,然后依次傳遞到PHY芯片110、120??刂菩羞M(jìn)到END步驟280,本方法結(jié)束。本發(fā)明具有一定的優(yōu)點(diǎn)。例如,所有通信流量被重排成預(yù)定數(shù)據(jù)寬度的總線流量,從而流量處理率被顯著提高,以確保在多信道系統(tǒng)里的高吞吐量。另外,本發(fā)明將選擇出的流量從其它普通數(shù)據(jù)流量區(qū)分開來,并提供優(yōu)先權(quán)以傳輸此選擇出的流量。在此例子里,語音流量被選擇出來以享有優(yōu)先權(quán),VoIP的延遲被顯著降低,且能夠提高語音質(zhì)量。另外,由于VoIP用戶是由網(wǎng)絡(luò)驗(yàn)證和授權(quán),VoIP通話的安全性得以保證,且通話不會(huì)被泛濫或廣播到任何其他用戶。所以,本發(fā)明提供了一種有效且安全的語音流量處理和傳輸?shù)南到y(tǒng)和方法。依照本發(fā)明的一個(gè)實(shí)施例,以下是一個(gè)在先前技術(shù)方法上處理性能改善的例子。通常使用軟件的VoIP處理延遲大概是2G0、sec(微秒),使用軟件的VoIP處理的吞吐量高達(dá)500Mbps。對比而言,依照本發(fā)明的一個(gè)實(shí)施例,VoIP流量的硬件協(xié)助處理可以有l(wèi)、sec或更短的處理延遲。具體地,假設(shè)時(shí)鐘頻率是80MHz,且大約需要10個(gè)流水線(pipeline)來處理一個(gè)64字節(jié)幀,在一個(gè)8時(shí)鐘周期流水線里的處理延遲僅是1、sec。如果時(shí)鐘頻率是100MHz,處理延遲是800nsec(納秒)。而且,如果時(shí)鐘頻率是160MHz,處理延遲是500nsec。因此,依照本發(fā)明的處理延遲比先前技術(shù)的方法更短。而且,依照本發(fā)明的一個(gè)實(shí)施例,VoIP處理的吞吐量可以高達(dá)14Gbps,它比使用軟件獲得的吞吐量高28倍。另外,由于排隊(duì)芯片170和緩沖區(qū)180,還可以獲得進(jìn)一步的改善。例如,本發(fā)明的一個(gè)實(shí)施例提供會(huì)話之間的流量隔離、單個(gè)會(huì)話的帶寬分配、和一個(gè)固定低VoIP的流量延遲,而先前技術(shù)的軟件方法不能提供這樣的性能。本發(fā)明的實(shí)施例可以被應(yīng)用在不同接口上,用于在通信系統(tǒng)里交換數(shù)據(jù)信息包。例如,在美國專利6,668,297里Karr等披露的通過一個(gè)POS(SONET上的數(shù)據(jù)包)實(shí)施的將物理層(PHY)設(shè)備互連到鏈接層設(shè)備的接口已經(jīng)被成功實(shí)施在MUX芯片140和DEMUX芯片190上以增強(qiáng)語音質(zhì)量。在本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員的知識(shí)范圍內(nèi),對MUX芯片140和DEMUX芯片190的設(shè)計(jì)作出較小改變之后,本發(fā)明可以被等同地應(yīng)用到PCI接口、PCMCIA接口、USB接口和CARDBUS接口等。本發(fā)明將依照某些首選實(shí)施例被詳細(xì)描述。為了完整且清晰地描述本發(fā)明的細(xì)節(jié),某些描述性的名字將被賦予給各種組成部分。本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員應(yīng)該理解,這些描述性術(shù)語只是被用來提供一種方式來容易地識(shí)別說明書里的組成部分,而不是限制本發(fā)明到特定描述。例如,盡管以上披露特別提供優(yōu)先權(quán)給語音流量,但本發(fā)明也能夠提供優(yōu)先權(quán)給其它類型的流量,如用于增強(qiáng)視頻傳輸質(zhì)量的視頻流量。另外,盡管以上披露特別指定Vo工P,但重排流量成預(yù)定總線數(shù)據(jù)寬度以提高流量處理率的芯片和方法可以被用于其它通信系統(tǒng),包括控制和編排數(shù)據(jù)的優(yōu)先次序用于家庭用具。另外一個(gè)例子,在以上實(shí)施例里描述的64比特流量轉(zhuǎn)發(fā)和處理可以通過一個(gè)64比特總線或一個(gè)雙時(shí)鐘頻率的32比特總線執(zhí)行。所以,可以作出許多這樣的修改,而不會(huì)偏離本發(fā)明的精神和范圍。MUX芯片圖7是一個(gè)圖1中MUX芯片140構(gòu)造的模塊示意圖。如以上圖1所述,MUX芯片140從MAC芯片130接收流量,重排此流量成一個(gè)預(yù)定數(shù)據(jù)寬度的總線流量,并在所述總線流量里識(shí)別出一個(gè)特定類型的流量,如語音流量。圖7顯示MUX芯片140從MAC芯片130接收流量705。流量705是以POS-PHY2級(jí)接口(PP2Rx)總線(在此例子里是16比特寬)和系統(tǒng)信息包3級(jí)接口(SPI3Rx)總線(在此例子里是32比特寬)的格式呈現(xiàn)。在所示實(shí)施例里,PP2Rx總線是3.3V,LVTTL,50MHz,SDR,而SPI3Rx總線是3.3V,LVTTL,125MHz,SDR。特別地,來自PP2Rx總線的流量比特705a…705f被提交給一系列相應(yīng)的PP2Rx接收模塊710...710f。類似地,來自SPI3Rx總線的流量比特710a...710d被提交給一系列相應(yīng)的接收模塊720a...720d。在所示實(shí)施例里,MUX芯片140同時(shí)兼容SPI3和PP2的接口標(biāo)準(zhǔn)。但是,本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員應(yīng)該容易理解,也可以同樣使用其它通信標(biāo)準(zhǔn)接口。而且,圖7所示的實(shí)施例有10個(gè)總線通道705a...705f和705g...705j。其它實(shí)施例可以同樣地使用更多或更少的總線通道,并不偏離本發(fā)明的精神和范圍。各個(gè)PP2Rx接收模塊710a...710f各自運(yùn)行作為一個(gè)總線控制器,將來自外部POS-PHY/2級(jí)(PP2Rx)總線的流量解碼成具有預(yù)定數(shù)據(jù)寬度(在此例子里是64比特)的數(shù)據(jù)總線,并提交一個(gè)64比特的輸出到一系列相應(yīng)的PKTFIFO模塊715a...715f。這6個(gè)PP2Rx接收模塊710a...710f各自提供-8個(gè)通道,總計(jì)達(dá)到圖1的48個(gè)FE端口.110。每個(gè)PKTFIFO.模塊715a...715f運(yùn)行作為一個(gè)緩沖區(qū)用于從PP2Rx接收模塊710a...710f接收數(shù)據(jù)包,并提交一個(gè)64比特的輸出到一個(gè)多路復(fù)用器730。各個(gè)SPI3Rx接收模塊720a...720d各自運(yùn)行作為一個(gè)總線控制器,將來自外部SPI3(SPI3Rx)總線的流量解碼成預(yù)定數(shù)據(jù)寬度的總線流量。在這個(gè)例子里,預(yù)定總線流量是64比特寬,所以每個(gè)SPI3Rx接收模塊720a...720d提交一個(gè)64比特的輸出到一系列相應(yīng)的PKTFIFO模塊725a...725d。這4個(gè)SPI3Rx接收模塊720a...720d對應(yīng)圖1的4個(gè)GE端口120。每個(gè)PKTFIFO模塊725a...725d運(yùn)行作為一個(gè)緩沖區(qū)用于從SP工3Rx接收模塊720a...720d接收數(shù)據(jù)包,并提交一個(gè)64比特的輸出到多路復(fù)用器730。多路復(fù)用器730從這10個(gè)PKTFIFO模塊715a...715f和725a...725d中的每個(gè)模塊接收64比特輸入,并多路復(fù)用傳iI這10個(gè)信道的數(shù)據(jù)到正確的FIFO信道里HDRFIFO和CHUNKFIFO,以產(chǎn)生(i)一個(gè)16比特的輸出到一個(gè)HDRFIFO模塊735,和(ii)一個(gè)64比特的輸出到一個(gè)CHUNKFIFO模塊740。HDRFIFO模塊735緩沖頭信息,并提交一個(gè)16比特的輸出到一個(gè)發(fā)送器(XMTR)模塊750。CHUNKFIFO模塊740緩沖數(shù)據(jù)并提交一個(gè)64比特的輸出到這個(gè)發(fā)送器(XMTR)模塊750。發(fā)送器模塊750產(chǎn)生一個(gè)頭信息760和數(shù)據(jù)(DAT)770再被提交到轉(zhuǎn)發(fā)芯片150。如上所示,可以同樣實(shí)施不同的總線流量寬度,并不偏離本發(fā)明的精神和范圍。因此,MUX芯片140利用PP2Rx接收模塊710a...710f和SPI3Rx接收模塊720a...720d來將進(jìn)入的以太網(wǎng)流量解碼成64比特?cái)?shù)據(jù),其被存儲(chǔ)在PKTFIFO模塊715a...715f和725a..725d內(nèi)。MUX芯片140多路復(fù)用數(shù)據(jù)到HDRFIFO735和ChunkFIFO740里。然后,發(fā)送器模塊750編排頭信息和塊(chunk)成一個(gè)XMT協(xié)議的流量760和77(V在所示實(shí)施例里,輸出是1.8V,HSTL,133MHz,DDR。PKTFIFO的大小是512(地址)x64比特,臓FIFO的大小是128(地址)x16比特,以及CHUNKFIFO的大小是512(地址)x64比特。本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員將會(huì)理解,可以同樣使用其它流量寬度、信息包大小和電壓,而不會(huì)偏離本發(fā)明的精神和范圍。轉(zhuǎn)發(fā)芯片存發(fā)餅-娜圖4是一個(gè)表示圖1轉(zhuǎn)發(fā)芯片(FCHIP)150的模塊示意圖。轉(zhuǎn)發(fā)芯片150在一個(gè)接收(RCV)模塊410上從MUX芯片140接收一個(gè)來自預(yù)定數(shù)據(jù)寬度的總線流量的幀405。特別地,RCV模塊410通過分析幀頭預(yù)處理此幀來確定此幀的幀頭有效性。如果幀頭字段是錯(cuò)誤的,該幀將被丟棄。否則,RCV模塊410傳遞此幀到一個(gè)入口(ingress)處理器420以確定是否對此幀執(zhí)行進(jìn)一步的處理。RCV模塊也被連接到CPU/DMA接口415,其提供一個(gè)雙工鏈接465到轉(zhuǎn)發(fā)芯片150外部的一個(gè)中央處理單元(CPU)。此CPU/DMA接口415提供一個(gè)直接存儲(chǔ)器存取(DMA)通信信道在擴(kuò)展/處理器接口模塊160和排隊(duì)芯片170之間。典型地,入口處理器420為一個(gè)特別幀分配一個(gè)VLANID。此VLANID是從一個(gè)頭VLAN標(biāo)記、默認(rèn)端口ID里挑選出來的,或通過一個(gè)關(guān)聯(lián)源MAC地址被分類成一個(gè)語音VLAN。更具體地,入口處理器420設(shè)置VLANID并被配置給VoiceVID,并進(jìn)一步為VoiceVID設(shè)置X2比特以避免幀泛濫。VocieVID和X2隨后將在說明書里被詳細(xì)描述。或者,入口處理器420記錄被授權(quán)用戶的MAC地址到一個(gè)硬件寄存器內(nèi)。在整個(gè)過程里使用被分配的VLANID。由于VLANID對一個(gè)特別幀是唯一的,入口處理器420能夠使用VLANID來識(shí)別用戶是否被授權(quán),在LAN內(nèi)未被授權(quán)的用戶是不能訪問這個(gè)特別的VLANID。所以,僅有授權(quán)用戶能夠訪問網(wǎng)絡(luò),而其他用戶不能聽到授權(quán)用戶之間的談話。入口處理器420也能夠確定是否以第2層或第3層實(shí)體轉(zhuǎn)發(fā)此幀。如果幀被確定為是第2層實(shí)體,入口處理器420輸出一個(gè)入口處理幀424到第2層處理器430以引導(dǎo)入口處理幀到一個(gè)正確端口以避免幀泛濫。第2層處理器430提交一個(gè)入口處理幀432到下一跳處理器460?;蛘?,如果幀被確定為是第3層實(shí)體,入口處理器420輸出一個(gè)入口處理幀426到一個(gè)第3層處理器440以引導(dǎo)入口處理幀到一個(gè)正確端口。第3層處理器440提交一個(gè)入口處理幀442到下一跳處理器460。在其它情況下,如當(dāng)頭信息被確定為是第4層、第5層、第7層等,入口處理器420輸出一個(gè)入口處理幀422到一個(gè)流分類電路450,以通過匹配幀的頭字段將此幀分類成一個(gè)流。流分類電路450提交一個(gè)入口處理幀452到下一跳處理器460。流分類單元450也被連接到一個(gè)內(nèi)容可尋址存儲(chǔ)器(CAM)接口455,其從FCHIP150提供一個(gè)雙工連接475到一個(gè)CAM模塊,這在圖中未顯示。下一跳處理器460確定一個(gè)接收幀452、432或442的控制幀頭修改和幀輸出。下一跳處理器460轉(zhuǎn)發(fā)幀到一個(gè)多播處理器470以輸出此幀。多播處理器470通過一個(gè)傳輸(XFER)模塊480輸出此幀。轉(zhuǎn)發(fā)芯片150的輸出是一個(gè)幀495。下一跳處理器460也被連接到一個(gè)SRAM接口445,其從FCHIP150提供一個(gè)雙工連接到一個(gè)靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)模塊。而且,RCV模塊410連接到一個(gè)FFIF0模塊425,其隨后連接到下一跳處理器460。綠餅祭遂轉(zhuǎn)發(fā)芯片150處理核心是對從MUX芯片140接收到的每個(gè)幀執(zhí)行第2層、第3層和第4層(流)處理。在所述應(yīng)用里,幀是一個(gè)以太網(wǎng)幀。通過檢査幀頭并隨后確定此幀的一個(gè)輸出決定,轉(zhuǎn)發(fā)芯片150執(zhí)行轉(zhuǎn)發(fā)功能。幀的頭字段也可以被修改用于第3層轉(zhuǎn)發(fā),包括但不限于如,生存時(shí)間(TTL)遞減、區(qū)分服務(wù)代碼點(diǎn)(DSCP)標(biāo)記、和網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的地址和端口替換。一旦轉(zhuǎn)發(fā)芯片150作出一個(gè)輸出決定,幀被轉(zhuǎn)發(fā)到排隊(duì)芯片(QCHIP)170里執(zhí)行緩沖、排隊(duì)和調(diào)度功能。排隊(duì)芯片170可以被一個(gè)現(xiàn)場可編程門陣列(FPGA)來執(zhí)行實(shí)現(xiàn)。幀以64字節(jié)區(qū)段從MAC模塊130傳輸?shù)筋^-處理模塊,對應(yīng)圖4的入口處理模塊420。頭處理是在一個(gè)來自輸入端口的幀的第一區(qū)段上被觸發(fā),例如一個(gè)以太網(wǎng)幀的起始位。頭處理的結(jié)果是一個(gè)包含F(xiàn)lowID的輸出決定。此FlowID值以每一個(gè)輸入端口為基礎(chǔ)被存儲(chǔ),以頭信息被增加到相同輸入端口的每個(gè)64字節(jié)幀區(qū)段。流分類模塊450利用此Flow工D值給每個(gè)信息包映射分配正確的輸出端口和優(yōu)先權(quán)。此FlowID值也被用來將此幀分類成正確的流量類別和子類用于調(diào)度。此FlowID值通過SRAM接口445、485被存儲(chǔ)在SRAM內(nèi)?!﹫?zhí)行了頭處理,多播和輸出處理模塊470產(chǎn)生一個(gè)輸出決定。此輸出決定被存儲(chǔ)在一個(gè)外部存儲(chǔ)器內(nèi)(圖中未顯示),并被用來標(biāo)記來自相同端口的幀的所有后續(xù)區(qū)段的頭(直到幀指示結(jié)束)。因此,所有這些區(qū)段被轉(zhuǎn)發(fā)到相同的輸出端口。微芯#-必麟遂轉(zhuǎn)發(fā)芯片150對每個(gè)以太網(wǎng)幀執(zhí)行第2層、第3層和第4層(流)處理。處理包括檢查幀頭并作出幀輸出決定的轉(zhuǎn)發(fā)功能,可以改變第2層、第3層和第4層頭的頭修改功能(例如TTL遞減,DSCP標(biāo)記,NAT的地址和端口替換),和流處理功能(例如校正、RTP監(jiān)控、信息包統(tǒng)計(jì))。一旦已經(jīng)執(zhí)行了輸出決定、頭修改和流處理功能,幀被轉(zhuǎn)發(fā)到在QCHIP芯片170里執(zhí)行緩沖、排隊(duì)和調(diào)度功能。表1顯示在文檔剩余部分的幀處理描述里使用的標(biāo)頭縮寫。表1<table>tableseeoriginaldocumentpage22</column></row><table>圖9顯示轉(zhuǎn)發(fā)芯片150處理的Ethernet和IP幀的格式900。在一個(gè)實(shí)施例里,可以使用一個(gè)現(xiàn)場可編程門陣列(FPGA)來實(shí)現(xiàn)轉(zhuǎn)發(fā)芯片150。圖IO是一個(gè)在一個(gè)指定端口上對以太網(wǎng)幀的每個(gè)區(qū)段執(zhí)行處理的流程圖1000。處理在歩驟1005上開始,然后行進(jìn)到?jīng)Q策步驟1010,其確定是否處理一個(gè)信息包起始位(SOP)。如果處理SOP,控制行進(jìn)到步驟1040以提取頭字段??刂菩羞M(jìn)到步驟1045以進(jìn)行入口處理,然后行進(jìn)到?jīng)Q策步驟1050,其確定是否丟棄正被處理的幀。如果此幀將被丟棄,控制行進(jìn)到步驟1055,丟棄幀并結(jié)束處理。但是,如果在步驟1050上幀未被丟棄,控制行進(jìn)到下一個(gè)決策步驟1060。決策步驟1060確定幀是否將被發(fā)送到一個(gè)中央處理單元(CPU)。如果幀將被發(fā)送到CPU,控制行進(jìn)到步驟1065,發(fā)送幀到CPU。如果在步驟1060上幀未被發(fā)送到CPU,控制以并行方式行進(jìn)到步驟1070和1090。決策步驟1070確定是否執(zhí)行第3層轉(zhuǎn)發(fā)和第3層啟動(dòng)。如果執(zhí)行第3層轉(zhuǎn)發(fā)和第3層啟動(dòng),控制行進(jìn)到步驟1075以執(zhí)行第3層轉(zhuǎn)發(fā),接著過程結(jié)束。但是,'如果在步驟1070上沒有執(zhí)行第3層轉(zhuǎn)發(fā)和第3層啟動(dòng),控制行進(jìn)到步驟1080以執(zhí)行第2層轉(zhuǎn)發(fā)。與決策步驟1070并行,決策步驟1090上確定是否啟動(dòng)流處理。如果啟動(dòng)流處理,控制行進(jìn)到步驟1095以執(zhí)行流處理,接著過程結(jié)束。但是,如果在步驟1090上沒有啟東流處理,控制行進(jìn)到End步驟1035,過程結(jié)束。回到步驟1010,如果沒有處理信息包起始位(S0P),控制行進(jìn)到?jīng)Q策步驟1015,其確定是否處理信息包終止位(E0P)。如果處理E0P,控制行進(jìn)到?jīng)Q策步驟1020,其確定幀循環(huán)冗余校驗(yàn)(CRC)是否等于一個(gè)計(jì)算的CRC。如果是的話,控制行進(jìn)到步驟1025?;氐讲襟E1015,如果不處理EOP,控制直接行進(jìn)到步驟1025。步驟1025使用一個(gè)當(dāng)前^^口輸出決定,增加FlowID和控制頭。控制從步驟1025行進(jìn)到End步驟1035?;氐讲襟E1020,如果幀CRC不等于計(jì)算的CRC,控制從步驟1020行進(jìn)到步驟1030,在傳遞控制到End步驟1035之前,增加FlowID和一個(gè)丟棄指示。[0111]轉(zhuǎn)發(fā)過程包括入口處理功能,接著是第2層和第3層轉(zhuǎn)發(fā)功能,然后是流處理功能。注意到信息包可以由第2層或第3層處理轉(zhuǎn)發(fā),但不能同時(shí)通過這兩個(gè)處理轉(zhuǎn)發(fā)。但是,流處理功能可以被應(yīng)用到所有信息包(第2層和第3層轉(zhuǎn)發(fā)的)。流處理功能可以修改第2層和第3層轉(zhuǎn)發(fā)決策,并可以導(dǎo)致信息包被重新指向不同端口、優(yōu)先權(quán)和隊(duì)列或用于信息包軟件處理。第2層和第3層轉(zhuǎn)發(fā)決策的輸出包括用于處理幀頭的FlowID和控制信息(如替換源工P地址,目標(biāo)IP地址等),和需要更新的信息字段。存發(fā)芯#-乂/7必潘入口處理模塊420執(zhí)行多種預(yù)處理功能,包括分析幀頭和檢查頭以確保信息包頭是有效的。入口處理模塊420通過一個(gè)64比特的數(shù)據(jù)總線連接到RCV模塊410,傳輸幀區(qū)段和控制信號(hào)(如PORTID、S0P、EOP和ERR控制信號(hào))。在這個(gè)實(shí)施例里,假設(shè)所有以太網(wǎng)幀是VLAN標(biāo)記格式用于入口處理功能。在一個(gè)SOP指示上,第2層頭字段(DA、SAP、PT、VID、PRI)和第3層頭字段(DIP、SIP、HL、FRAG、PROT)是從幀區(qū)段里提取的。然后,頭字段被用來執(zhí)行第2層和第3層頭檢查以確保幀頭的完整性。如果獲知頭字段是錯(cuò)誤的,在開始頭處理之前丟棄此幀。如果幀包括需要轉(zhuǎn)發(fā)到處理器以作進(jìn)一步處理的第2層或第3層頭字段,對此幀設(shè)置toCPU字段,并禁止正常的第2層或第3層轉(zhuǎn)發(fā)。除了確定特定案例之外,入口處理模塊420對一個(gè)特別幀分配VLANID-VLANID是從一個(gè)頭VLAN標(biāo)記、默認(rèn)端口ID選擇出來,或通過一個(gè)關(guān)聯(lián)的源MAC地址被分類成一個(gè)語音VLAN。分配的VLANID被用于在轉(zhuǎn)發(fā)過程的其余部分里執(zhí)行的處理和查詢。幀入口處理也確定入站幀是否以第2層或第3層實(shí)體而被轉(zhuǎn)發(fā)。這是通過首先檢查以確保幀有一個(gè)0x800的以太網(wǎng)協(xié)議類型(PT)、然后比較幀的目標(biāo)MAC地址(DA)和路由器MAC地址(RMAC)而實(shí)現(xiàn)。如果這些MAC地址(和VLANID)匹配的話,使用IP轉(zhuǎn)發(fā)算法,幀被轉(zhuǎn)發(fā)。如果MAC地址不匹配,對此幀使用第2層(802.1D/Q)基于網(wǎng)橋的轉(zhuǎn)發(fā)。圖11是一個(gè)由入口處理模塊420執(zhí)行的方法1100的流程圖。方法1100開始于步驟1105,接收信息包頭、輸入端口標(biāo)識(shí)符、SOP和EOP??刂茝牟襟E1105行進(jìn)到步驟1110,從接收到的參數(shù)獲得頭信息、端口ID、VLANID、和生成樹ID。控制從步驟1110行進(jìn)到步驟1120,執(zhí)行第2層生成樹和端口驗(yàn)證??刂菩羞M(jìn)到步驟1130以執(zhí)行第2層轉(zhuǎn)發(fā)入口檢査,并隨后行進(jìn)到步驟1140進(jìn)行第2層、第3層、第4層的轉(zhuǎn)發(fā)檢査。控制行進(jìn)到End步驟1150,并輸出信息包頭字段、端口ID、SOP、EOP、Drop、toCPU變量、L2Forward、L3Forward、L4Forward、禾口L2Learn。微芯#-雜微1.T進(jìn)klD索引輸入端口工D數(shù)據(jù)中繼線組ID(TrunkGroupID)大小64x6比特7>7/7^/"表格包括在輸入端口和中繼線組之間的映射。在轉(zhuǎn)發(fā)過程里的基于輸入端口ID上的所有操作被有關(guān)中繼線組ID優(yōu)先執(zhí)行。默認(rèn)地,TrunkID表格最好是輸入端口ID和中繼線組ID之間的1對1映射。當(dāng)配置一個(gè)中繼線時(shí),在中繼線組里的最低物理端口號(hào)使用中繼線組ID。2.VL扁emberMap索弓l:VLANID數(shù)據(jù)成員端口映射(MemberPortMap)大小256x64比特VLA麗emberMap表格保留交換系統(tǒng)100的VLAN到端口的連接關(guān)系。一個(gè)VLANID索引指向這個(gè)表格。數(shù)據(jù)以位元映射(bitmap)格式被存儲(chǔ)在這個(gè)表格里。如果對應(yīng)端口的比特被設(shè)置成1,端口是在VLAN上被寄存。這個(gè)表格被用來濾除無效的入站幀,并使幀的多播泛濫成為可能。3.SpanningTreeID索引VLANID數(shù)據(jù)生成樹(ST)大小256x3比特5^/Mi/^7ree/"表格存儲(chǔ)VLAN到生成樹映射。表格是在多個(gè)生成樹支持的情況下要求的。在此所述的實(shí)施例里,交換最多支持8個(gè)生成樹。生成樹的最大數(shù)目可能依照特定應(yīng)用的不同而不同。4.ForwardMap索弓l:ST工D數(shù)據(jù)轉(zhuǎn)發(fā)端口映射(ForwardingPortMap)大小8x64比特/^r附2Y/ife/包括控制比特,其顯示端口是否在由生成樹協(xié)議軟件確定的轉(zhuǎn)發(fā)模式上。這個(gè)表格被生成樹ID索引,且每個(gè)位置包括每個(gè)端口的轉(zhuǎn)發(fā)狀態(tài)的位元映射。5.LearnMap索弓l:ST工D數(shù)據(jù)學(xué)習(xí)端口映射(LearningPortM即)大小8x64比特i:朋27^Sp包括控制比特,其顯示端口是否在由生成樹協(xié)議軟件確定的學(xué)習(xí)模式上。生成樹ID索引這個(gè)表格,且每個(gè)位置包括每個(gè)端口的學(xué)習(xí)狀態(tài)的位元映射。6.體AC索引VLANID數(shù)據(jù)路由器MAC地址大小49比特7細(xì)C表格包括VLANID到路由器MAC地址的映射。對每個(gè)入站幀而言,VLANID被確定,并對照這個(gè)表格里的對應(yīng)位置的路由器MAC地址檢査DA。如果地址匹配的話,信息包被指定該IP路由引擎。7.AuthPortMap大小64比特^W力A^^/sp是在系統(tǒng)里每個(gè)端口的授權(quán)狀態(tài)的位元映射。如果802.lx在端口上是有效的,這個(gè)比特的狀態(tài)是由這個(gè)協(xié)議確定,否則系統(tǒng)管理員配置這個(gè)比特。8.DefaultPortVID索引端口ID數(shù)據(jù)VLANID大小64x12比特Zfe/ai/h尸oj^K/""表格包括未標(biāo)記信息包被分配到的默認(rèn)VLANID。端口ID被使用作為這個(gè)表格的索引,且存儲(chǔ)器位置包括這個(gè)端口的默認(rèn)VID。默認(rèn)優(yōu)先權(quán)在這個(gè)表格里也被指定。9.AuthMAC索引端口ID數(shù)據(jù)區(qū)C地址大小64x49比特A/仏始c表格包括使用802.lx驗(yàn)證的端口的授權(quán)MAC地址。當(dāng)一個(gè)802.lx授權(quán)端口被配置作為單機(jī)端口時(shí),驗(yàn)證主機(jī)的MAC地址被寫到這個(gè)表格里。這樣鎖定這個(gè)端口,使僅被授權(quán)的終端主機(jī)能夠通過這個(gè)端口發(fā)送或接收信息包。10.VoiceMAC索引端口ID數(shù)據(jù)MAC地址大小64x49比特P^'ce船c表格包括與輸入端口連接的IP電話的MAC地址。當(dāng)端口接收一個(gè)具有VoiceMac地址作為其源地址的信息包時(shí),信息包被看作一個(gè)被授權(quán)的MAC地址,并通過這個(gè)端口被轉(zhuǎn)發(fā)。11.VoiceVID索引端口工D數(shù)據(jù)VLANID大小64x16比特f^'ceP7"表格指定VLANID分配給任何包括VoiceMac作為其源地址的幀。這樣允許交換始終如一地交換引導(dǎo)所有的語音信息包。這個(gè)表格也允許對這些信息包分配802.lp優(yōu)先權(quán)。12.AFT大小64比特可接受的幀類型"/T)寄存器是一個(gè)位元映射,指定是否應(yīng)該從當(dāng)前端口接受被標(biāo)記的VLAN幀。位元映射里的0值顯示僅有未被標(biāo)記的幀將從端口被接受,1值顯示在端口上將允許被標(biāo)記的和未被標(biāo)記的幀。,30]13.X2索弓l:VLAN工D數(shù)據(jù)X2VLAN大小256x1比特X表格被用來實(shí)施一個(gè)專有VLAN,其中未知泛濫或傳播幀是禁止的。X2VLAN也禁止幀的路由,僅當(dāng)如果幀在相同的VLAN上且存在目標(biāo)MAC地址的一個(gè)輸入項(xiàng),或如果對幀的第4層轉(zhuǎn)發(fā)設(shè)置了合適的流處理輸入項(xiàng)時(shí),幀才被交換。14.MulticastIndex索弓l:VLANID數(shù)據(jù)麗ndex大小256x9比特M/7"csWT/7ofer表格被用來作為在入站VLAN工D和出站多播表格索引之間的映射。這個(gè)索引被用于未知的第2層轉(zhuǎn)發(fā)幀(例如,如果在CAM里幀的目標(biāo)MAC地址不是匹配的)。這個(gè)字段的MSB被設(shè)置成1,以顯示這個(gè)值已經(jīng)由軟件寫入。如果索引未被初始化,VLANID被用來作為W/72c/^r用于表格l.端口表格圖12顯示一個(gè)端口表格存儲(chǔ)器1200的組織結(jié)構(gòu)。端口表格1200包括以上所述的幀頭的入口處理所要求的端口屬性。端口表格存儲(chǔ)器通過端口表格地址和數(shù)據(jù)寄存器可以進(jìn)入CPU。2.VLAN表格圖13顯示一個(gè)VLAN屬性表格1300的格式。VLAN表格1300通過VLAN表格地址和數(shù)據(jù)寄存器可以進(jìn)入CPU。3.生成樹表格生成樹表格包括8個(gè)不同生成樹IDs的轉(zhuǎn)發(fā)和學(xué)習(xí)信息。屑14顯示一個(gè)生成樹表格1400的格式。轉(zhuǎn)發(fā)第2層轉(zhuǎn)發(fā)過程執(zhí)行以太網(wǎng)信息包基于802.1Q的轉(zhuǎn)發(fā)所要求的處理歩驟。第2層轉(zhuǎn)發(fā)功能的目標(biāo)是引導(dǎo)具有認(rèn)識(shí)到的MAC地址的流量到正確的輸出端口,從而避免幀泛濫到所有端口。圖15是第2層轉(zhuǎn)發(fā)功能1500的流程圖。第2層(L2)轉(zhuǎn)發(fā)功能1500在步驟1510上開始,然后行進(jìn)到CAMSearchL2步驟1520。如果基于幀頭行使L2轉(zhuǎn)發(fā)功能,CAMSearchL2步驟1520對一個(gè)匹配當(dāng)前幀的目標(biāo)MAC地址和VLANID的第2層輸入項(xiàng)執(zhí)行搜索外部內(nèi)容尋址存儲(chǔ)器(CAM)?!獋€(gè)匹配信號(hào)顯示CAM搜索是成功的,這個(gè)從步驟1520返回的匹配信號(hào)必須由L2Age表格的狀態(tài)證明是匹配的索引,以確保輸入項(xiàng)不在被刪除的過程里。如果L2Match(匹配)信號(hào)和L2Index(索引)是有效的,L2Age輸入項(xiàng)就是有效的。搜索返回的索引值指定了轉(zhuǎn)發(fā)信息表格里的位置,轉(zhuǎn)發(fā)信息表格包括L2輸入項(xiàng)的轉(zhuǎn)發(fā)信息。這個(gè)索引被用來從外部SRAM存儲(chǔ)器取回FlowID,其指定幀應(yīng)該被轉(zhuǎn)發(fā)到的端口??刂茝牟襟E1520行進(jìn)到?jīng)Q策步驟1530。決策步驟1530確定匹配信號(hào)是否是正的以及時(shí)效過程是否已經(jīng)達(dá)到一個(gè)預(yù)定的時(shí)效閾值,在這個(gè)例中其顯示為L2Age[CAMIndex]〉6。如果是的話,控制行進(jìn)到步驟1550,設(shè)置L2Match等于1和L2Index等于CAMIndex。然后,控制行進(jìn)到輸出步驟1560。回到步驟1530,如果不是的話,控制行進(jìn)到歩驟1540,其設(shè)置L2Match等于0。然后,控制行進(jìn)到輸出步驟1560。輸出歩驟1560輸出L2Match和L2Index,然后傳遞控制到End步驟1570。本領(lǐng)域有經(jīng)驗(yàn)的技術(shù)人員將會(huì)理解,這個(gè)預(yù)定的時(shí)效閾值是可變的,并且根據(jù)實(shí)施例應(yīng)用的不同而不同。學(xué)習(xí)(Learning)第2層處理也必須執(zhí)行源MAC地址和VLAN的學(xué)習(xí)。學(xué)習(xí)過程的功能如下1.在6"0尸和L^esr"的指示上,在CAM里搜索源MAC地址和VLANID。如果發(fā)現(xiàn)沒有匹配的,源MAC地址(48比特)、VLANID(8比特)和中繼線組ID(6比特)被寫入到一個(gè)Z朋27FIF0。如果發(fā)現(xiàn)有匹配的,MatchIndex(匹配索引,12比特)被作為下一跳SRAM的一個(gè)索引,且源MAC地址(48比特)、VLANID(8比特)和中繼線組ID(6比特)被寫入到SRAM。匹配索引也被用來將Z^4ge表格里的對應(yīng)輸入項(xiàng)更新成來自時(shí)效寄存器的當(dāng)前值,并設(shè)置有效的比特。2.在一個(gè)非活躍的時(shí)隙上,讀取Z朋i77FIF0(如果不是空的)的頭,并連同源MAC地址和VLANID作為數(shù)據(jù)字段發(fā)出一個(gè)學(xué)習(xí)CAM命令。學(xué)習(xí)命令在CAM里的下一個(gè)自由地址上寫入數(shù)據(jù),并返回與這個(gè)地址相關(guān)聯(lián)的索引值。這個(gè)學(xué)習(xí)索引(12-比特)被作為地址以寫入源MAC地址(48比特),VLANID(8比特)和中繼線組ID(6比特)到下一跳SRAM。學(xué)習(xí)索引也被使用將L2Age表格里的對應(yīng)輸入項(xiàng)更新成來自時(shí)效寄存器的當(dāng)前值,并設(shè)置有效的比特。圖16是當(dāng)L^eara有效時(shí)的學(xué)習(xí)過程1600的流程圖。過程1600在L2Learning歩驟1605上開始,然后行進(jìn)到CAMSearch步驟1610,其在內(nèi)容可尋址存儲(chǔ)器(CAM)內(nèi)搜索源MAC地址和VLAN丄D??刂茝臍i驟1610行進(jìn)到?jīng)Q策歩驟1615,其確定在源MAC地址和VLANID之間是否有一個(gè)匹配。如果存在匹配,控制行進(jìn)到步驟1620,處理數(shù)據(jù)。特別地,步驟1620讀取一個(gè)匹配索引,其將被作為到下一跳SRAM的一個(gè)索引,并寫入源MAC地址、VLANID和中繼線組ID到SRAM。而且,這個(gè)匹配索引將L2Age表格里的對應(yīng)輸入項(xiàng)更新成來自時(shí)效寄存器的當(dāng)前值(數(shù)據(jù)二時(shí)效+8)。控制從步驟1630行進(jìn)到End步驟1645,學(xué)習(xí)過程1600結(jié)束。回到步驟1615,如果沒有匹配,控制從歩驟1615行進(jìn)到?jīng)Q策歩驟1625,其確定學(xué)習(xí)FIFO隊(duì)列是否是滿的。如果FIFO隊(duì)列是滿的,控制行進(jìn)到End步驟1645,過程1600結(jié)束。但是,如果FIFO隊(duì)列在步驟1625上不是滿的,控制從步驟1625行進(jìn)到1630。步驟1630寫到學(xué)習(xí)FIFO隊(duì)列,并設(shè)置源MAC地址、VLANID、中繼線ID、和時(shí)效作為數(shù)據(jù)字段??刂茝牟襟E1630行進(jìn)到?jīng)Q策步驟1635,其確定是否有一個(gè)空閑時(shí)隙。如果沒有空閑時(shí)隙,控制遞歸返回到步驟1635,直到有一個(gè)空閑時(shí)隙。如果在步驟1635上有一個(gè)空閑時(shí)隙,控制行進(jìn)到步驟1640,步驟1640讀取學(xué)習(xí)FIFO隊(duì)列的頭,并使用源MAC地址和VLANID作為參數(shù)發(fā)出一個(gè)CAMLearn(學(xué)習(xí))命令。這個(gè)CAMLearn命令在C雄里的下一個(gè)可用的自由地址上寫入數(shù)據(jù),并返回一個(gè)與這個(gè)地址相關(guān)聯(lián)的索引值。然后,學(xué)習(xí)索引被作為一個(gè)地址用于寫入源MAC地址、VLANID和中繼線ID的值到下一跳SRAM。學(xué)習(xí)索引也被用來更新L2Age表格里的一個(gè)對應(yīng)輸入項(xiàng)。控制從步驟1640行進(jìn)到End步驟1645,過程1600結(jié)束。時(shí)效(Aging)時(shí)效過程的功能是當(dāng)輸入項(xiàng)時(shí)效達(dá)到一個(gè)高于時(shí)效寄存器里的時(shí)效數(shù)值時(shí)從CAM地址表格刪除第2層MAC輸入項(xiàng)。這意味著具有一個(gè)對應(yīng)給定輸入項(xiàng)的源MAC地址的Ethernet幀沒有在此輸入項(xiàng)時(shí)效期間內(nèi)進(jìn)行交換。一個(gè)軟件進(jìn)程在等于由交換配置指定的時(shí)效時(shí)間V8th的間隔上更新3-比特時(shí)效寄存器。圖17是一個(gè)時(shí)效過程1700的流程圖。時(shí)效過程包括兩個(gè)主要操作(i)基于時(shí)效寄存器的當(dāng)前值無效L2Age輸入項(xiàng);(ii)當(dāng)有一個(gè)空閑時(shí)隙時(shí)從CAM刪除時(shí)效的輸入項(xiàng)。時(shí)效過程1700在步驟1705上開始,然后行進(jìn)到步驟1710,其讀取L2Age表格的一個(gè)當(dāng)前索引,并獲得Valid(有效)值和AgeVal值的數(shù)據(jù)??刂菩羞M(jìn)到?jīng)Q策歩驟1715,其確定讀取的數(shù)據(jù)是否等于Oxl,且是否有空閑時(shí)隙。AgeVal值存儲(chǔ)時(shí)效值。如果AgeVal等于Oxl,時(shí)效值是在其初始值上。如果不是的話,控制行進(jìn)到?jīng)Q策步驟1725,其確定Valid數(shù)據(jù)值是否是正的,且AgeVal值是否等于當(dāng)前時(shí)效值+l。如果是的話,控制行進(jìn)到步驟1735,使用索引寫入L2Age表格,并設(shè)置數(shù)據(jù)為Oxl。然后,控制行進(jìn)到End步驟1740?;氐讲襟E1715,如果是的話,控制行進(jìn)到步驟1720,其使用當(dāng)前索引寫入CAM,并設(shè)置數(shù)據(jù)等于0x2??刂茝牟襟E1720行進(jìn)到步驟1730,其以幅度l遞增當(dāng)前的索引,然后行進(jìn)到步驟1735?;氐讲襟E1725,如果不是的話,控制行進(jìn)到步驟1730以遞增索引?;氐讲襟E1710,并行路徑處理從步驟1710行進(jìn)到歩驟1720以遞增索引。寄存器和表格l.時(shí)效寄存器時(shí)效寄存器是一個(gè)3比特字段,當(dāng)學(xué)習(xí)或更新第2層MAC輸入項(xiàng)時(shí),其指定被寫入到L2Age表格的當(dāng)前時(shí)間。時(shí)效寄存器最好通過一個(gè)軟件進(jìn)程在一個(gè)等于MAC地址時(shí)效時(shí)間的l/8th的間隔上被更新。2.L2Age表格L2Age表格包括8192個(gè)輸入項(xiàng),每個(gè)輸入項(xiàng)對應(yīng)CAM里的一個(gè)索引,CAM包含一個(gè)第2層輸入項(xiàng)。在L2Age表格里的每個(gè)輸入項(xiàng)包括4-比特。圖18顯示L2Age表格1800的編碼。在初始時(shí),所有L2Age輸入項(xiàng)被設(shè)置成0以顯示沒有輸入項(xiàng)對應(yīng)CAM里的索引。當(dāng)一個(gè)MAC地址在CAM里被學(xué)習(xí)時(shí),Valid(有效)比特被設(shè)置成1,且時(shí)效寄存器的值被寫入到L2Age表格輸入項(xiàng)。當(dāng)輸入項(xiàng)超過時(shí)效時(shí),Valid比特被設(shè)置成0,且State(狀態(tài))字被設(shè)置成l以顯示CAM輸入項(xiàng)可以被改寫。當(dāng)CAM輸入項(xiàng)被清除時(shí),State字被設(shè)置成2。3.學(xué)習(xí)FIFO(LearnFIFO)學(xué)習(xí)FIFO包括將被存儲(chǔ)的數(shù)據(jù),直到有可利用的時(shí)隙被寫到CAM和下一跳SRAM。學(xué)習(xí)FIFO是一個(gè)有512個(gè)輸入項(xiàng)的36_比特FIFO,只要有空閑時(shí)隙,其能夠存儲(chǔ)將被學(xué)習(xí)的256個(gè)MAC地址。學(xué)習(xí)FIFO輸入項(xiàng)包括(源)MAC地址和VLAN工D、輸入中繼線ID和當(dāng)前時(shí)效值。圖19顯示學(xué)習(xí)FIFO寄存器1900的格式。-第3y^OT^存發(fā)L3(第3層)處理功能包括一個(gè)IP路由器所要求的轉(zhuǎn)發(fā)功能。圖20是一個(gè)結(jié)合L2和L3轉(zhuǎn)發(fā)技術(shù)的簡化流程圖2000。流程圖2000在BEGIN步驟2005上開始,然后行進(jìn)到步驟2010,讀取幀以獲取目標(biāo)MAC地址(DA)、目標(biāo)IP地址(DIP)和VLANID(VID)??刂菩羞M(jìn)到?jīng)Q策歩驟2015,其確定DA是否等于在路由器MAC地址(RMAC)表格的索引V工D上的輸入項(xiàng)。如果不等于的話,控制行進(jìn)到結(jié)束步驟2020以進(jìn)行第2層處理。如果在步驟2015上DA等于在RMAC表格的索引VID上的輸入項(xiàng),控制行進(jìn)到?jīng)Q策步驟2025,其確定IP地址是否是本地的。如果IP地址是本地的,控制行進(jìn)到另一個(gè)決策歩驟2035。決策步驟2035確定地址是否在CAM里。如果地址是在CAM里,控制行進(jìn)到步驟2040以進(jìn)行第3層處理。然后,控制行進(jìn)到End歩驟2050,過程結(jié)束?;氐讲襟E2025,如果IP地址不是本地的,控制行進(jìn)到結(jié)束步驟2030,其發(fā)送幀到CPU。回到步驟2035,如果地址不在CAM里,控制行進(jìn)到結(jié)束步驟2030以發(fā)送幀到CPU。以上所述的有關(guān)圖20的方法假設(shè)交換保留IP網(wǎng)絡(luò)地址的路由表格。這些表格被用來確定被指定到路由器的IP幀的下一跳IP和MAC地址。IP轉(zhuǎn)發(fā)算法圖21是在RFC1812的硬件里進(jìn)行單播IP轉(zhuǎn)發(fā)的流程圖2100,其提供IP版本4路由器要求。RFC1812描述每個(gè)操作的相關(guān)部分如圖21里的圓括號(hào)所示。由于IP選項(xiàng)處理和互聯(lián)網(wǎng)控制信息協(xié)議(ICMP)生成通常是由軟件執(zhí)行,為了清楚起見,這些操作不在流程圖里顯示。流程圖2100在步驟2105上開始,然后行進(jìn)到步驟2110,讀取一個(gè)IP頭??刂菩羞M(jìn)到步驟2115驗(yàn)證IP頭,隨后行進(jìn)到步驟2120轉(zhuǎn)發(fā)一個(gè)決策??刂菩羞M(jìn)到步驟2125驗(yàn)證下一跳,然后步驟2130減少一個(gè)TTL計(jì)數(shù)器??刂菩羞M(jìn)到步驟2135連接層地址。下一個(gè)步驟2140轉(zhuǎn)發(fā)幀到端口,然后過程2100在End步驟2145上結(jié)束。對于多播轉(zhuǎn)發(fā),需要額外的檢査。特別地,源地址被檢查以確保接收信息包的接口就是被用來轉(zhuǎn)發(fā)信息包到源的接口。這個(gè)過程也可被看作是一個(gè)反向路徑轉(zhuǎn)發(fā)檢查。在一個(gè)實(shí)施例里,多播路由是由軟件執(zhí)行,而多播傳送是由硬件執(zhí)行。第3層功能第3層硬件特征1.支持基于類別的路由和支持可變長度子網(wǎng)掩碼。2.支持TTL遞減和增量頭校驗(yàn)和計(jì)算。3.支持基于區(qū)分服務(wù)(DiffServ)的服務(wù)質(zhì)量(QoS)。第3層功能被分為以下功能:*IP頭校驗(yàn)-驗(yàn)證IP頭字段是合法的,且頭可以由硬件轉(zhuǎn)發(fā)處理。*IP校驗(yàn)和-計(jì)算IP頭的校驗(yàn)和,并驗(yàn)證被插入到幀頭里的校驗(yàn)和與這個(gè)數(shù)值匹配。*IP地址査尋-IP地址查尋的算法足夠靈活,能夠支持有限數(shù)目的可變長度網(wǎng)絡(luò)前綴,或也能夠被用于基于類別的路由。*IP輸出-執(zhí)行增量頭校驗(yàn)和的計(jì)算和基于IP協(xié)議項(xiàng)的流量類別分類,然后轉(zhuǎn)發(fā)幀到合適的輸出端口。寄存器和表格l.端口IP轉(zhuǎn)發(fā)禁止(PortIPFDisl[31:0],PortlPFDis2[31:0])這些寄存器被用來啟動(dòng)或禁止任何端口的IP轉(zhuǎn)發(fā)操作。0值代表啟動(dòng),1值代表禁止。2.3層狀態(tài)和控制寄存器(L3SCR[31:0])寄存器包含3層轉(zhuǎn)發(fā)過程的控制比特。這個(gè)寄存器里的比特接通或斷開轉(zhuǎn)發(fā)信息包到CPU。它包括3層頭校驗(yàn)失敗的頭和沒有路由在表格里的幀。功能流程圖在以下流程圖里,假設(shè)己經(jīng)執(zhí)行了校驗(yàn)以確保發(fā)給3層處理的幀包含路由器MAC地址(對VLAN)作為目標(biāo)區(qū)C地址。對所有其它的幀,執(zhí)行2層802.1Q處理。圖22是一個(gè)工P頭檢查過程2200的流程圖。過程2200在步驟2205上開始,然后行進(jìn)到步驟2210,讀取幀以獲取目標(biāo)MAC地址(DA)、IP頭長度(HL)、工nP0RTID、工P版本VER、和TTL。然后,控制行進(jìn)到?jīng)Q策步驟2215,其確定幀是否是一個(gè)IP幀。如果在歩驟2215上互聯(lián)網(wǎng)協(xié)議類型(PT)等于0x800,且顯示協(xié)議類型是互聯(lián)網(wǎng)協(xié)議CIP),控制進(jìn)行到下一個(gè)決策步驟2220。決策步驟2220檢查IP選項(xiàng),且如果IP頭長度HL等于0x5,控制行進(jìn)到另一個(gè)決策步驟2225。HL等于0x5表示沒有選項(xiàng)出現(xiàn)。決策步驟2225檢査IP版本,如果VER等于0x4,從而表示幀是IPv4,控制行進(jìn)到?jīng)Q策步驟2230,檢査TTL是否期滿。如果在決策步驟2230上TTL大于Oxl,控制行進(jìn)到步驟2235以執(zhí)行拒絕服務(wù)(DoS)檢查??刂茝牟襟E2235行進(jìn)到結(jié)束步驟2250以執(zhí)行IP地址查尋?;氐?jīng)Q策步驟2215,如果當(dāng)檢查IP幀時(shí)PT不等于0x800,控制行進(jìn)到步驟2240,設(shè)置變量toCPU等于1。然后,控制行進(jìn)到結(jié)束步驟2245執(zhí)行IP轉(zhuǎn)發(fā)?;氐?jīng)Q策步驟2220,如果IP選項(xiàng)是那些HL不等于0x5的項(xiàng),如上所述,控制行進(jìn)到步驟2240。類似地,如果在步驟2225,當(dāng)檢查IP版本時(shí),VER不等于0x4,控制也行進(jìn)到步驟2240。在類似情況下,如果在步驟2230上當(dāng)檢査TTL是否期滿時(shí),TTL不大于Oxl,控制行進(jìn)到步驟2240。IP頭校驗(yàn)執(zhí)行IP頭字段的驗(yàn)證,以便確定硬件里的IP處理是否是可行的,并丟棄非法的IP幀。對IP頭驗(yàn)證,將進(jìn)行以下檢査1.幀的協(xié)議類型使Ox800(IP)嗎?-如果協(xié)議類型不是IP,幀被轉(zhuǎn)發(fā)到CPU端口。這樣允許相同的MAC地址與軟件里采用的其它協(xié)議一起使用。2.頭等長度使等于Ox05(32比特)字嗎?-如果IP頭不包含IP選項(xiàng)(如源路由),頭的大小應(yīng)該總是10個(gè)16-比特字。如果出現(xiàn)IP選項(xiàng),幀被發(fā)送到軟件作適當(dāng)處理。如果頭長度小于0x05,幀也可以被軟件丟棄。3.IP版本項(xiàng)是Ox4嗎?IPv4有一個(gè)版本號(hào)4。如果版本號(hào)是5(ST-I1)或6(IPv6),處理是在軟件里進(jìn)行,另外信息包將被丟棄。4.幀的TTL值等于Ox1或Ox0嗎?具有TTL值0或1的幀不應(yīng)該被轉(zhuǎn)發(fā)。但是,這些幀也不應(yīng)該被丟棄,因?yàn)镮CMP的時(shí)間超過消息可以被發(fā)送到幀的最初發(fā)送端。因此,這些幀被轉(zhuǎn)發(fā)到CPU端口。5.拒絕服務(wù)防衛(wèi)檢測6.數(shù)據(jù)報(bào)長度太短7.幀有碎片8.源IP地址=目標(biāo)IP地址(LAND攻擊)9.源IP地址是子網(wǎng)廣播地址10.源IP地址不是單播地址11.源IP地址是一個(gè)環(huán)回地址(loop-backaddress)12.目標(biāo)IP地址是一個(gè)環(huán)回地址13.目標(biāo)地址不是一個(gè)有效的單播或多播地址(martian火星地址)在頭字段被檢查之后,路由IP幀到正確的輸出端口是通過IP地址査尋和轉(zhuǎn)發(fā)來執(zhí)行的。圖23是一個(gè)IP頭校驗(yàn)和過程2300的流程圖。過程2300在步驟2305上開始,然后行進(jìn)到步驟2310,設(shè)置頭陣列的第一元素,HEADER[O],合并IP版本、IP頭鏈接、和生成樹信息、(VER&HL&ST)。控制行進(jìn)到步驟2315,設(shè)置索引i等于0。然后,控制行進(jìn)到步驟2355,設(shè)置校驗(yàn)和等于當(dāng)前校驗(yàn)和加上索引i的當(dāng)前值指定的頭陣列內(nèi)容。然后,增加索引i??刂茝牟襟E2355行進(jìn)到?jīng)Q策步驟2320,其確定索引i是否小于10。如果索引j'小于10,控制返回到步驟2355。但是,如果在歩驟2320上索引i不小于10,控制從歩驟2320行進(jìn)到歩驟2325。步驟2325設(shè)置Carry(進(jìn)位)等于一個(gè)遠(yuǎn)大于16的校驗(yàn)和,并設(shè)置校驗(yàn)和(CKSUM)等于Carry(進(jìn)位)加(CKSUM&OxFFFF)??刂茝臍i驟2325行進(jìn)到歩驟2330,設(shè)置Carry等于一個(gè)遠(yuǎn)大于16的校驗(yàn)和,然后賦值校驗(yàn)和(CKSUM)等于Carry力口(CKSUM&OxFFFF)??刂茝牟襟E2330行進(jìn)到?jīng)Q策步驟2335,其確定校驗(yàn)和是否等于0xFFFF。如果等于的話,控制行進(jìn)到結(jié)束步驟2345執(zhí)行IP地址查尋。如果在步驟2335上校驗(yàn)和不等于0xFFFF,控制行進(jìn)到2340,設(shè)置Drop標(biāo)記等于1??刂茝牟襟E2340行進(jìn)到結(jié)束步驟2350執(zhí)行IP轉(zhuǎn)發(fā)。頭起始位是在IP版本字段(VER)上。校驗(yàn)和算法如下使用20-比特加法,獲得IP幀頭的首10個(gè)16-比特字的總和。使用17-比特加法,獲得比特[19:16](進(jìn)位比特)和比特[15:0]的總和。*比特16被增加到比特[15:0]以獲得最終的校驗(yàn)和。杏如果這個(gè)總和的求反(complement)等于0,校驗(yàn)和是有效的。7"尸縱査尋圖24是一個(gè)IP地址査尋過程2400的流程圖,其在步驟2405上開始。控制行進(jìn)到步驟2410,讀取目標(biāo)IP地址(DIP)、源工P地址(SIP)、和端口。控制行進(jìn)到步驟2420,確定是否有一個(gè)無效的前綴地址,DIP(31:24)〉二240。如果是的話,控制行進(jìn)到步驟2460,設(shè)置Drop標(biāo)記等于1。控制從步驟2460行進(jìn)到結(jié)束IP轉(zhuǎn)發(fā)步驟2470。返回到步驟2420,如果DIP(31:24)不大于或等于240,控制行進(jìn)到步驟2430,使用DIP、S工P和端口執(zhí)行CAMSearchL3功能??刂菩羞M(jìn)到另一個(gè)決策步驟2440,確定是否有一個(gè)匹配。如果沒有匹配的話,控制行進(jìn)到歩驟2460設(shè)置Drop等于1。但是,如果在歩驟2440上有匹配,控制行進(jìn)到步驟2450,設(shè)置3層匹配指數(shù)等于1,并設(shè)置3層指數(shù)等于CAMIndex。然后,控制從步驟2450行進(jìn)到結(jié)束步驟2470執(zhí)行IP轉(zhuǎn)發(fā)。地址查尋返回一個(gè)到下一跳SRAM的指針,其包括下一跳(路由器或主機(jī))MAC地址、TrunkID、和VID。CAMSearchL3功能返回一個(gè)索引,指向在CAM里的目標(biāo)IP地址的首個(gè)匹配。IP地址包括網(wǎng)絡(luò)前綴和主機(jī)號(hào)碼。網(wǎng)絡(luò)前綴可以是從1到32比特的任何長度,主機(jī)號(hào)碼是IP地址的其余部分。對一個(gè)給定的IP地址而言,在CAM里可以有輸入項(xiàng),是用于匹配目標(biāo)IP地址的多個(gè)網(wǎng)絡(luò)前綴。IPv4路由器要求(RFC1812)規(guī)定,必須使用最長長度網(wǎng)絡(luò)前綴匹配一個(gè)給定的IP地址,以便轉(zhuǎn)發(fā)IP幀到正確的下一跳。這個(gè)無類別査詢要求與已被廣泛使用在互聯(lián)網(wǎng)上的基于類別的尋址完全相反。在基于類別的尋址里,IP地址的首4個(gè)比特確定用于IP地址的掩碼,以便進(jìn)行CAM查尋。子網(wǎng)概念將此擴(kuò)展到兩個(gè)可能被潛在使用的掩碼中的一個(gè)最大值。此處描述的實(shí)施例使用三態(tài)CAM(ternaryCAM),以便確定最長長度匹配。為了進(jìn)行這個(gè)搜索,C旭里的輸入項(xiàng)一直增加,從而使較長前綴的路由器總是比較短前綴的路由器存儲(chǔ)在一個(gè)更低索引的存儲(chǔ)器位置。由于CAM將返回存儲(chǔ)器里的首個(gè)匹配給一個(gè)特別IP地址,這個(gè)匹配將被保證是IP地址的最長前綴路由匹配。為了簡化IP表格管理,對每個(gè)前綴最好預(yù)訂存儲(chǔ)器位置的一個(gè)區(qū)塊,從而可以插入輸入項(xiàng),而不會(huì)弄亂(shuffling)CAM里的IP路由前綴輸入項(xiàng)。在CAM里具有相同前綴長度路由器的輸入項(xiàng)順序是不重要的。這個(gè)特性可以被用來實(shí)施一個(gè)較快的重整(reshuffling),即便是前綴用完了存儲(chǔ)器位置。當(dāng)CAM搜索不產(chǎn)生任何匹配時(shí),幀被丟棄。如果有一個(gè)匹配,CAM搜索將返回此匹配的索引。這個(gè)索引被用于下一跳模塊以獲得下一跳MAC、TrunkID和VID。這些數(shù)值是從外部SRAM里的轉(zhuǎn)發(fā)信息存儲(chǔ)器讀取。綠棘圖25是一個(gè)轉(zhuǎn)發(fā)更新過程2500的流程圖,其在步驟2505上開始??刂菩羞M(jìn)到初始決策步驟2510,其確定一個(gè)變量toCPU是否等于1或Drop標(biāo)記是否等于1。如果是的話,控制行進(jìn)到一個(gè)輸出轉(zhuǎn)發(fā)決策步驟2540,過程結(jié)束。但是,如果在步驟2510上的答案是否定的,控制行進(jìn)到步驟2520。步驟2520設(shè)置一個(gè)臨時(shí)變量(tmp)等于頭校驗(yàn)和(HC)加1。然后,頭校驗(yàn)和被設(shè)置等于(tmp&OxFFFF)+(t即》16)。TTL計(jì)數(shù)器是遞減的。控制從步驟2520行進(jìn)到步驟2530,設(shè)置一個(gè)Etheraent優(yōu)先權(quán)變量(Pri)為生成樹ST[8:6]以設(shè)置端口映射的優(yōu)先權(quán),其中ST[8:6]對應(yīng)圖14里ST1…ST8地址中的一個(gè)地址。控制從步驟2530行進(jìn)到輸出轉(zhuǎn)發(fā)決策步驟2540。IP處理的最后階段要求遞減TTL和更新IP頭校驗(yàn)和。當(dāng)以幅度l遞減TTL時(shí),增量頭校驗(yàn)和操作是初始校驗(yàn)和增加1。如果設(shè)置了Carry進(jìn)位比特,必須檢査進(jìn)位比特并將其增加到校驗(yàn)和。如果信息包將被丟棄或轉(zhuǎn)發(fā)到CPU,不需要進(jìn)行TTL遞減。綠微圖26是一個(gè)轉(zhuǎn)發(fā)輸出過程2600的流程圖。過程2600在歩驟2605上開始,并行進(jìn)到步驟2610輸出一個(gè)轉(zhuǎn)發(fā)決策。特別地,步驟2610輸出參數(shù)L3Match、L3Index、TTL、HC、drop、PRI、和ToCPU??刂茝牟襟E2610行進(jìn)到End步驟2620,過程結(jié)束。3層轉(zhuǎn)發(fā)輸出生成^i/7ofex,作為輸出被用于確定輸出FlowID、下一跳目標(biāo)MAC地址和V工D。新的TTL和HC也被輸出,并被用來更新幀的頭字段。絲微-魔分微綴微器流分類模塊450對2層或IP幀的頭字段、甚至包括傳輸層文件標(biāo)頭執(zhí)行匹配操作。這個(gè)操作將任何與這些字段匹配的信息包分類成一個(gè)流。流分類操作產(chǎn)生或不產(chǎn)生一個(gè)匹配。在有匹配的情況下,返回一個(gè)索引并被轉(zhuǎn)發(fā)到下一跳模塊460作進(jìn)一步處理。在沒有匹配的情況下,分類不返回一個(gè)索引,且信息包也不被分類成一個(gè)流。流分類模塊執(zhí)行的處理步驟要點(diǎn)如下1.如果W尸、^s7S^C禾Qh/尸(/T二二0朋仍信號(hào)是活躍的,目標(biāo)IP地址、源IP地址、源端口、目標(biāo)端口、輸入端口、TOS、SYN和ACK字段被用來執(zhí)行一個(gè)相對于CAM里流分類輸入項(xiàng)的128-比特搜索操作。7T7Qfer和ife&力狀態(tài)信號(hào)被傳遞到下一跳模塊。2.另外,如果5ZF和A/尸(/T二二做W)信號(hào)是活躍的,目標(biāo)MAC地址、目標(biāo)IP地址、源端口和目標(biāo)端口被用來執(zhí)行一個(gè)在CAM里2層分類字段的128-比特搜索。CAM控制器返回T/7o^和i^c力信號(hào)。3.如果6YF和i'siP信號(hào)不是活躍的,不需要執(zhí)行流分類搜索。流分類模塊也對2層和3層頭查尋執(zhí)行CAM搜索操作,并以流水線方式將這些操作進(jìn)行排序。CAM控制器CAM控制器為外部CAM執(zhí)行流水線操作。CAM被用來存儲(chǔ)以太網(wǎng)MAC地址、IP路由前綴和流分類輸入項(xiàng)。在這個(gè)實(shí)施例里,使用一個(gè)能夠存儲(chǔ)最大32K72-比特輸入項(xiàng)或16K144-比特輸入項(xiàng)或以4KB幅度遞增的72-比特和144-比特輸入項(xiàng)的任何組合的1Mb三態(tài)CAM。三態(tài)CAM包括CAM里每個(gè)輸入項(xiàng)的一個(gè)掩碼,也包括能夠被用來在全局基礎(chǔ)上進(jìn)行搜索操作的全局掩碼寄存器。當(dāng)對于一個(gè)輸入項(xiàng),設(shè)置一個(gè)掩碼比特為0時(shí),CAM搜索將對應(yīng)的比特看作"不考慮",并不會(huì)去比較那個(gè)比特和搜索數(shù)據(jù)以確定是否已經(jīng)產(chǎn)生一個(gè)匹配。CAM輸入項(xiàng)的四個(gè)類型是2層輸入項(xiàng)、3層輸入項(xiàng)(IP路由器)、2層分類輸入項(xiàng)和流分類輸入項(xiàng)。圖27顯示分類輸入項(xiàng)字段的格式。CAM里每個(gè)輸入項(xiàng)類型的格式如圖27所示。搜索操作是在72-比特區(qū)段(對2層/3層搜索)或144-比特區(qū)段(對流程/2層分類)里執(zhí)行的。這些區(qū)段最好是在系統(tǒng)啟動(dòng)時(shí)被配置,從而搜索操作將僅匹配相關(guān)CAM輸入項(xiàng)。1-比特類型字段被用來區(qū)分2層和3層輸入項(xiàng)以及2層分類輸入項(xiàng)和流分類輸入項(xiàng)。2層輸入項(xiàng)2702包括72比特,T二0。2層輸入項(xiàng)包括目標(biāo)MAC地址2705(48比特);VID2710(8比特);未使用的部分2715(14比特);T字段2720(1比特)、和V字段2725(1比特)。3層輸入項(xiàng)2704包括72比特,T二l。3層輸入項(xiàng)包括源IP地址2730(32比特);端口標(biāo)識(shí)符2735(6比特);目標(biāo)IP前綴2740(32比特);T字段2745(1比特)、和V字段2750(1比特)。2層分類輸入項(xiàng)2706包括144比特,T二Ol。2層分類輸入項(xiàng)包括源端口2755(16比特);目標(biāo)端口2760(16比特);V工D2765(8比特);目標(biāo)MAC地址2770(48比特);未使用的部分2775(16比特);端口標(biāo)識(shí)符2780(6比特);目標(biāo)IP前綴2785(32比特);和T字段2790(2比特)。流分類輸入項(xiàng)2708包括144比特,T=ll。流分類輸入項(xiàng)包括源端口2782(16比特);目標(biāo)端口2784(16比特);V工D2786(8比特);PR0T字段2788(8比特);T0S字段2792(6比特);SYN字段2794(1比特);ACK字段2796(1比特);未使用的部分2708(16比特);源IP地址2772(32比特);端口標(biāo)識(shí)符2774(6比特);目標(biāo)IP前綴2776(32比特);和T字段2790(2比特)?;诿總€(gè)時(shí)隙的控制信號(hào),CAM控制器將搜索和寫入操作排序到CAM。CAM控制器執(zhí)行的過程如圖28所示。CAM控制器基于來自2層和3層轉(zhuǎn)發(fā)模塊的控制信號(hào),執(zhí)行2層和3層搜索。然后,執(zhí)行流分類搜索,最后也可以執(zhí)行可選的CPU訪問(或源地址學(xué)習(xí)訪問)。圖28是CAM控制器操作2800的流程圖。過程2800在步驟2805上開始,然后行進(jìn)到初始決策步驟2810,確定是否需要CAMSearchL2(2層搜索)和CAMSearchL3(3層搜索)。如果不需要的話,控制行進(jìn)到另一個(gè)決策步驟2840,確定是否需要CPU。如果CPU是必需的,控制行進(jìn)到步驟2850,執(zhí)行一個(gè)寫入/搜索命令,并設(shè)置Comparand為CPU數(shù)據(jù)。Comparand是被用來比較CPU數(shù)據(jù)和學(xué)習(xí)請求。如果在決策步驟2840上CPU不是必需的,控制行進(jìn)到另一個(gè)決策步驟2845,確定是否需要學(xué)習(xí)。如果學(xué)習(xí)是必需的,控制行進(jìn)到結(jié)束步驟2855,執(zhí)行一個(gè)學(xué)習(xí)命令并設(shè)置Comparand為學(xué)習(xí)FIFO,如果學(xué)習(xí)不是必需的,控制流程結(jié)束?;氐讲襟E2810,如果需要的話,控制行進(jìn)到?jīng)Q策步驟2815,確定CAMSearchL3是否是必需的。如果是的話,控制行進(jìn)到步驟2830,執(zhí)行CAMSearchL3并設(shè)置Comparand為SIP、Trunk、和DIP。然后,控制行進(jìn)到步驟2835'執(zhí)行CAMSearchL3Flow命令,并設(shè)置Co即arand為SIP、DIP、SP、DP、SYN、APK、T0S、TRUNK、和PR0T??刂茝牟襟E2835行進(jìn)到?jīng)Q策步驟2840以確定進(jìn)一歩的CPU處理是否是必需的?;氐綒i驟2815,如果CAMSearchL3不是必需的,控制行進(jìn)到步驟2820,執(zhí)行一個(gè)CAMSearchL2命令,并設(shè)置Co即arand為DMAC、V工D??刂菩羞M(jìn)到步驟2825,其執(zhí)行CAMSearchL2Flow命令,并設(shè)置Co即arand為DIP、SP、DP、DMAC、VID和TRUNK。寄存器l.CAM命令寄存器CAM命令寄存器被用來執(zhí)行CAM陣列的寫入和搜索操作。CAM命令寄存器包括一個(gè)被用來訪問三態(tài)CAM陣列以讀取和寫入輸入項(xiàng)的13-比特CAM地址和指定是否要執(zhí)行特別操作的控制比特。這種特別操作可以包括但不限于,例如寫入一個(gè)掩碼字和刪除一個(gè)掩碼輸入項(xiàng)。CPU可以使用的典型指令有-在地址位置上寫入數(shù)據(jù)-在地址位置上寫入掩碼-在地址位置無效輸入項(xiàng)-比較三態(tài)CAM和comparand寄存器里的數(shù)據(jù)并返回索引寫入到命令寄存器會(huì)觸發(fā)將要執(zhí)行的操作。在發(fā)出命令之前,與指令相關(guān)聯(lián)的數(shù)據(jù)最好被存儲(chǔ)在數(shù)據(jù)寄存器里。2.CAM數(shù)據(jù)寄存器CAM數(shù)據(jù)寄存器被用來將數(shù)據(jù)和掩碼字寫入到三態(tài)CAM。對一個(gè)寫入操作,這些寄存器內(nèi)的數(shù)據(jù)被用作寫入到一個(gè)位置里的數(shù)據(jù),對一個(gè)讀取操作,CAM里的數(shù)據(jù)被返回到這些寄存器里。3.CAM控制和狀態(tài)寄存器CAM控制和狀態(tài)寄存器被用來控制通過處理器的CAM操作。指示完成CAM初始化操作的狀態(tài)比特和CAM的CAM狀態(tài)標(biāo)記(全滿標(biāo)記、匹配標(biāo)記等)被保留在這個(gè)寄存器里。綠芯#-r一凝必謬下一跳功能是以流水線方式執(zhí)行的,從而每8時(shí)鐘周期處理一個(gè)新的幀頭決定。這種實(shí)施確保處理速度與64字節(jié)幀的入站最大信息包到達(dá)率匹配。下一跳處理模塊460負(fù)責(zé)確定幀的最終輸出決策,并控制幀頭修改。下一跳處理步驟的綜述如下。基于2層、3層和流分類匹配信號(hào),從一個(gè)外部SRAM存儲(chǔ)器讀取轉(zhuǎn)發(fā)信息。轉(zhuǎn)發(fā)信息被用來確定輸出流和新幀頭。接著,基于一個(gè)被分配給當(dāng)前流的PolicingID,對信息包執(zhí)行policing(監(jiān)管)和DiffServ(區(qū)分服務(wù))操作。如果信息包不被丟棄,執(zhí)行頭字段替換、幀區(qū)段復(fù)制和轉(zhuǎn)發(fā)區(qū)段到CPU,正如輸出決策所要求的一樣。最后,多播控制模塊按照需要復(fù)制幀區(qū)段,并在轉(zhuǎn)發(fā)幀區(qū)段到QCHIP之前增加正確的頭控制比特用于幀緩沖和排隊(duì)。圖29是一個(gè)下一跳模塊功能2900的流程圖。過程2900在步驟2905上開始,然后行進(jìn)到分類査詢步驟2910??刂菩羞M(jìn)到信息查詢步驟2920,然后分成三個(gè)平行的流。首個(gè)平行流從步驟2920行進(jìn)到2層處理步驟2930。2層處理步驟使用學(xué)習(xí)、未知幀、多播幀、和鏈路匯聚??刂茝牟襟E2930行進(jìn)到步驟2960。第二平行流從步驟2920行進(jìn)到3層處理步驟2940,其使用TTL更新和下一跳MAC。控制從步驟2940行進(jìn)至步驟2960。第三平行處理流從步驟2920行進(jìn)到步驟2950,在控制行進(jìn)到2960之前,其使用會(huì)話頭和幀統(tǒng)計(jì)執(zhí)行會(huì)話處理。步驟2960執(zhí)行監(jiān)管和區(qū)分服務(wù)處理,然后控制行進(jìn)到步驟2970執(zhí)行頭替換之前??刂菩羞M(jìn)到步驟2980進(jìn)行多播和輸出控制,然后行進(jìn)到End步驟2990結(jié)束。圖30是下一跳轉(zhuǎn)發(fā)過程3000的流程圖。過程3000在步驟3005上開始,然后控制行進(jìn)到?jīng)Q策步驟3010,確定是否有一個(gè)分類指數(shù)(CI)匹配。如果有一個(gè)CI匹配,控制行進(jìn)到步驟3015,通過讀取下一跳SRAM(NHSRAM):地址是CIndex,數(shù)據(jù)是CType和CNHIndex而獲得分類信息??刂茝牟襟E3015行進(jìn)到?jīng)Q策步驟3020,確定是否有一個(gè)許可證。如果沒有許可證,控制行進(jìn)至另一個(gè)決策步驟3025,確定是否需要重新定向。如果需要的話,控制從步驟3025行進(jìn)到步驟3030以獲得下一跳信息。步驟3030讀取下一跳SRAM(NHSRAM):地址是NHID,讀取的數(shù)據(jù)是FlowID、MAC、VID、SIP、DIP、SP、DP、和CTRL。控制從步驟3030行進(jìn)到步驟3070,輸出轉(zhuǎn)發(fā)信息。轉(zhuǎn)發(fā)信息包括FlowID、頭字段、控制信息、Dr叩、和未知/多播(UM)比特??刂茝牟襟E3070行進(jìn)到End步驟3075。返回到步驟3025,如果沒有重新定向,控制行進(jìn)至Drop步驟3035,其設(shè)置Drop等于l,然后控制行進(jìn)到轉(zhuǎn)發(fā)信息輸出步驟3070。返回到步驟3020,如果有許可證,控制行進(jìn)到?jīng)Q策步驟3040。返回到步驟3010,如果沒有CI匹配,控制行進(jìn)到?jīng)Q策歩驟3040。決策步驟3040確定是否有2層轉(zhuǎn)發(fā)。如果有2層轉(zhuǎn)發(fā),控制行進(jìn)到?jīng)Q策步驟3050,確定是否有一個(gè)2層匹配。如果沒有2層匹配,控制從步驟3050行進(jìn)到步驟3055,設(shè)置未知/多播(UM)比特等于1。控制從步驟3055行進(jìn)到轉(zhuǎn)發(fā)信息輸出步驟3070。如果在步驟3050上有一個(gè)2層匹配,控制行進(jìn)到步驟3060,獲得下一跳信息。步驟3060讀取NHSR雄地址是L2Index,數(shù)據(jù)是UM和FlowID。控制從步驟3060行進(jìn)到轉(zhuǎn)發(fā)信息輸出步驟3070。返回到?jīng)Q策步驟3040,如果沒有2層轉(zhuǎn)發(fā),控制行進(jìn)到?jīng)Q策步驟3045,其確定是否有一個(gè)3層匹配。如果沒有3層匹配,控制行進(jìn)到drop步驟3035,其設(shè)置Drop等于l,然后控制行進(jìn)到轉(zhuǎn)發(fā)信息輸出步驟3070。但是,如果在步驟3045上有一個(gè)3層匹配,控制行進(jìn)到步驟3065,獲得下—跳信息。步驟3065讀取NHSRAM:地址是L3Index,數(shù)據(jù)是UM、FlowID、MAC、和VID??刂茝臍i驟3065行進(jìn)到轉(zhuǎn)發(fā)信息輸出步驟3070。FlowID參數(shù)值被用來確定幀應(yīng)該被轉(zhuǎn)發(fā)到的端口。但是,如果設(shè)置了未知/多播(UM)比特,F(xiàn)lowID值被使用作在多播和輸出處理模塊里轉(zhuǎn)發(fā)表格內(nèi)的一個(gè)索引。對2層轉(zhuǎn)發(fā)的例子而言,當(dāng)在CAM里沒有匹配時(shí)(未知幀),F(xiàn)lowID被設(shè)置成0,且多播模塊通過讀取VID的VLANMemberMap表格確定轉(zhuǎn)發(fā)端口映射。圖31顯示在SRAM里2層、3層和流分類輸入項(xiàng)和在外部SRAM里下一跳表格內(nèi)對應(yīng)輸入項(xiàng)之間的關(guān)系。CAM里的2層和3層輸入項(xiàng)總是有一個(gè)對應(yīng)輸入項(xiàng)在NHSRAM表格里(如圖31里的L2NHInfo和L3NHInfo所示)。但是,CAM里的流分類輸入項(xiàng)不一定有對應(yīng)的NHInfo輸入項(xiàng)(如FCftlCAM輸入項(xiàng)所示),除了重新定向(如FCtt2CAM輸入項(xiàng)所示)和會(huì)話控制輸入項(xiàng)的例子之外。流分類輸入項(xiàng)在外部SRAM里總是有分類信息輸入項(xiàng)(Cinfo),指定了分類輸入項(xiàng)類型。下一跳模塊的處理步驟如下1.如果流分類產(chǎn)生一個(gè)成功匹配(CIMatch是有效的),讀取在分類輸入項(xiàng)(CIndex[14:0])的下一跳SRAM里的存儲(chǔ)器位置。分類輸入項(xiàng)可能有以下4種類型a)—個(gè)/7e,Af傻嚴(yán)多類撒游/f^"⑧輸入項(xiàng),其指定幀是否應(yīng)該被轉(zhuǎn)發(fā)和其應(yīng)該以什么類別被轉(zhuǎn)發(fā);b)—個(gè)cfe/77f否決9輸入項(xiàng),指定幀應(yīng)該被過濾;c)一個(gè)化&'化"f^^7^9輸入項(xiàng),包含到下一跳存儲(chǔ)器的一個(gè)指針,其指定端口和參數(shù)以轉(zhuǎn)發(fā)幀;和d)—個(gè)M^io;7f會(huì)話J輸入項(xiàng),包含到下一跳存儲(chǔ)器的指針和規(guī)定將被替換頭字段的控制比特。2.基于分類輸入項(xiàng)類型,采取以下動(dòng)作。a)對一個(gè)per邁it『it力CoS輸入項(xiàng),通過0R,ing(或操作)具有此字段的下一跳/^opt/A使用CIF1owID[13:0]字段(在6T/7/b輸入項(xiàng)里)產(chǎn)生一個(gè)新/7o,/"。這樣被用來產(chǎn)生幀的新服務(wù)類別。b)對一個(gè)c/e77y輸入項(xiàng),產(chǎn)生一個(gè)Drop信號(hào)。c)對一個(gè)re^'re"輸入項(xiàng),從C7/7/b輸入項(xiàng)讀取一個(gè)新的下一跳索引(CINHID[13:0]),輸入項(xiàng)取代由2層和3層匹配操作返回的索引。d)對一個(gè)ses^o/7co/^roJ輸入項(xiàng),產(chǎn)生一個(gè)新的CINHID[13:0]和CTRL[4:0]字段,其指定下一跳輸入項(xiàng)和替換幀頭里各種頭的控制字段。3.如果對3層轉(zhuǎn)發(fā)幀出現(xiàn)一個(gè)匹配(L3Match是有效的),執(zhí)行讀取由L3Index指定的位置。這個(gè)位置包括3層路由的下一跳輸入項(xiàng)(包括目標(biāo)MAC地址(DMAC)、VLANID(VID)、UM比特和FlowID)。4.如果L2Match是活躍的,執(zhí)行讀取由L2Index指定的位置。這個(gè)位置包括確定幀輸出端口的FlowID和UM字段。5.當(dāng)被一個(gè)Redirect或5bssio/7Omz^7分類輸入項(xiàng)(FCNHInfo輸入項(xiàng))指定時(shí),讀取下一跳信息表格是外部下一跳SRAM的最后讀取操作。這次讀取找回會(huì)話信息,包括與下一跳相關(guān)聯(lián)的2層標(biāo)頭(DMAC和VID)和指定輸出端口的未知/多播控制比特(UM)禾口流ID(FlowID)。新的IP和傳輸標(biāo)頭(SIPIndex、DIP、SP、DP)是從NHSRAM讀取,且被用于6^^i'朋6b;^2y^輸入項(xiàng),指定修改這些頭。SIPIndex被用來從SIPAddr表格里尋找源IP地址。對一個(gè)3層轉(zhuǎn)發(fā)幀,源MAC地址(SMAC)是從VLAN信息表格讀取。—旦從下一跳SRAM獲得標(biāo)頭和控制信息,基于FlowID信息執(zhí)行監(jiān)管、區(qū)分服務(wù)和統(tǒng)計(jì)處理。下一跳處理的最后步驟包括從FIFO425讀取區(qū)段以修改幀頭,然后發(fā)送幀區(qū)段到輸出模塊470。如果幀區(qū)段包括SOP,從下一跳外部存儲(chǔ)器讀取的參數(shù)被用來替換2層頭用于3層轉(zhuǎn)發(fā)。對于4層轉(zhuǎn)發(fā),可以有選擇地替換源和/或目標(biāo)IP地址和源和目標(biāo)端口。IP幀的TTL和頭校驗(yàn)和字段也被替換用于3層轉(zhuǎn)發(fā),且UDP和TCP校驗(yàn)和被修改用于頭轉(zhuǎn)換。在SOP上,控制頭也被存儲(chǔ)在端口的一個(gè)內(nèi)部存儲(chǔ)器內(nèi),并被使用直到信息包的下一個(gè)起始位。對SOP信號(hào)不是活躍的幀區(qū)段,從存儲(chǔ)在內(nèi)部存儲(chǔ)器內(nèi)的數(shù)據(jù)增加控制頭,但不改變區(qū)段數(shù)據(jù)。區(qū)分服務(wù)處理和監(jiān)管Policing(監(jiān)管)功能采用一個(gè)LeakyBucket算法用來監(jiān)控流和限制它們的速率。1024個(gè)監(jiān)管器中的每個(gè)監(jiān)管器需要一個(gè)平均比特率和一個(gè)突發(fā)長度作為輸入?yún)?shù),并基于這些參數(shù),監(jiān)管器或者標(biāo)記或者丟棄不符合預(yù)定特征的幀。幀的PoliceID是從DiffServ(區(qū)分服務(wù))表格或分類輸入項(xiàng)表格里獲得。如果通過流分類匹配沒有獲得PoliceID,PoliceID就從DiffServ表格里獲得。基于DiffServ的policing表格使用幀頭里一系列的TrunkPortID和DiffServ碼點(diǎn),作為這個(gè)表格的一個(gè)索引。這個(gè)表格包括一個(gè)被用作這些幀的監(jiān)管器的PoliceID、一個(gè)指定幀是否應(yīng)該被標(biāo)記的概率值,以及一個(gè)替換802.lp優(yōu)先權(quán)字段的優(yōu)先權(quán)?!┘拇嫫骱蛢?nèi)部存儲(chǔ)器控制監(jiān)管操作。監(jiān)管狀態(tài)(policestatus)和控制寄存器(controlregister)、全局規(guī)模寄存器(globalscaleregister)、隊(duì)列長度RAM(queuelengthRAM))、速率RAM(rateRAM)、和閾值RAM(thresholdRAM)控制監(jiān)管器的基本操作。對一個(gè)給定的PoliceID,一個(gè)統(tǒng)計(jì)RAM計(jì)算被標(biāo)記(或被丟棄)幀的數(shù)目。全局規(guī)模寄存器是一個(gè)16-比特寄存器,其包括在通過所有policeIDs完成一個(gè)完整周期之后開始遞減過程的一個(gè)新周期的延遲值。設(shè)置全局規(guī)模寄存器為一個(gè)除0以外的值可以提高被監(jiān)管的最大比率,在監(jiān)管率粒度上也有相應(yīng)損失。隊(duì)列長度RAM跟蹤每個(gè)PoliceID的隊(duì)列長度。一個(gè)監(jiān)管器索引的隊(duì)列長度是基于速率RAM里的相應(yīng)速率值,而遞減的。速率RAM表格包括一個(gè)16-比特速率字段。設(shè)置速率字段為0,避免隊(duì)列長度計(jì)數(shù)器的遞減。速率字段指定一個(gè)隊(duì)列長度計(jì)數(shù)器在周期性間隔上遞減的值,周期性間隔則由全局規(guī)模計(jì)數(shù)器規(guī)定。速率值由32-比特字給定。閾值RAM表格包括閾值,當(dāng)在信息包起始位上的相同PoliceID的隊(duì)列長度計(jì)數(shù)器達(dá)到閾值,會(huì)導(dǎo)致一個(gè)入站信息包被標(biāo)記或丟棄,且遞增統(tǒng)計(jì)計(jì)數(shù)器。另外,閾值RAM表格包括模式比特(modebit),其指定什么時(shí)候能夠標(biāo)記/丟棄,什么時(shí)候能夠統(tǒng)計(jì)計(jì)數(shù),以及模式是否是丟棄或標(biāo)記。會(huì)話處理會(huì)話處理包括執(zhí)行網(wǎng)絡(luò)地址轉(zhuǎn)換和端口地址轉(zhuǎn)換(NAT/PAT)、負(fù)載均衡、會(huì)話監(jiān)控和統(tǒng)計(jì)收集所要求的特征。會(huì)話監(jiān)控的2個(gè)主要硬件功能是*頭字段替換;和RTP監(jiān)控和統(tǒng)計(jì)。頭字段替換會(huì)話處理功能如NAT、PAT和服務(wù)器負(fù)載均衡要求替換源和目標(biāo)IP地址和/或源和目標(biāo)端口。替換源和目標(biāo)端口的功能和傳輸控制協(xié)議(TCP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是相同的,除了頭校驗(yàn)和的位置之外。替換合適的頭字段是基于一個(gè)特別流所要求的會(huì)話處理類型?;谠诜诸愝斎腠?xiàng)的會(huì)話控制類型里的控制字段,將被替換的字段和它們在以太網(wǎng)幀頭里的位置如圖32所示。使用源IP索引(被存儲(chǔ)在NHSRAM里的Info表格里),從源IP地址RAM里獲得源IP地址(SIP)作為RAM里的地址。目標(biāo)IP(DIP)、源端口(SP0RT)、目標(biāo)端口(DPORT)字段是直接從NHSRAM獲得的。使用一個(gè)增量頭校驗(yàn)和算法,計(jì)算IP、TCP和UDP頭校驗(yàn)和。TCP和UDP頭校驗(yàn)和使用一個(gè)包括源和目標(biāo)IP地址的偽標(biāo)頭。因此,當(dāng)僅僅替換這些字段時(shí),仍然需要重新計(jì)算UDP和TCP校驗(yàn)和。增量頭校驗(yàn)和重新計(jì)算算法如以下所示。注意到工P、TCP和UDP案例的校驗(yàn)和計(jì)算使用求反運(yùn)算,是在16-比特字上執(zhí)行,并且都是相同的。1.IP校驗(yàn)和對一個(gè)被路由(TTL遞減,DSCP標(biāo)記)的信息包,或當(dāng)IP地址或傳輸端口被更新時(shí),執(zhí)行增量IP校驗(yàn)和計(jì)算。給定x,初始字段數(shù)值,和x',更新字段數(shù)值,更新的校驗(yàn)和計(jì)算如下HC'=Hc~~TTL~~TTL'-~TOS-TOS'-~DIP-DIP"-~SIP-SIP'...l)2.TCP和UDP校驗(yàn)和W二7T-"/尸--67P---OT-卿W-57W-…(2)注意到,以上所寫的公式是關(guān)于可被替換的頭字段的邏輯表達(dá)式。但是,這些計(jì)算是在包括被替換字段的標(biāo)頭里的合適16-比特字上進(jìn)行。會(huì)話監(jiān)控會(huì)話監(jiān)控功能的目標(biāo)是提供一個(gè)準(zhǔn)確的IP電話通話質(zhì)量的表示。會(huì)話監(jiān)控通常跟蹤一個(gè)RTP會(huì)話(由分類匹配定義)的一個(gè)或多個(gè)以下參數(shù).-抖動(dòng)、幀丟失數(shù)目、和任何被監(jiān)控的流所累積的字節(jié)數(shù)目,如分類輸入項(xiàng)里規(guī)定的。設(shè)計(jì)會(huì)話監(jiān)控功能使得僅有UDP和工P流上的RTP被監(jiān)控,因?yàn)樵赥CP上的流能夠重新傳輸信息包,導(dǎo)致不正確抖動(dòng)和丟失包數(shù)目。l.抖動(dòng)抖動(dòng)計(jì)算取決于RTP幀里的時(shí)間戳和從RTP源產(chǎn)生幀的期望速率。源的速率由RTP檔案(RTPprofile)給定,由合適的RFC或由相互協(xié)議規(guī)定。源的速率在有效負(fù)荷檔案(profile)里描述為源產(chǎn)生的每秒樣本。由于每個(gè)源樣本通常是以一個(gè)獨(dú)立RTP幀被分組打包和傳輸,幀的到達(dá)時(shí)間和包含在幀里的時(shí)間戳可以被聯(lián)合使用以確定網(wǎng)絡(luò)傳輸引起的抖動(dòng)。表2提供抖動(dòng)計(jì)算的定義R源速率(每218個(gè)時(shí)鐘周期的樣本)TS(i)包含在RTP幀i里的32-比特時(shí)間戳C(i)RTP幀i到達(dá)的32-比特時(shí)鐘值時(shí)間戳單位的幀i的轉(zhuǎn)發(fā)延遲計(jì)算如下:Transit(i)=R*C(i)-TS(i)…(3)在幀i到達(dá)時(shí)間上計(jì)算的累計(jì)抖動(dòng)被計(jì)算如下<formula>formulaseeoriginaldocumentpage54</formula>…(4)為了便于存儲(chǔ)和獲得更好的準(zhǔn)確性,等式(3)和(4)被重新記作<formula>formulaseeoriginaldocumentpage54</formula>…(5)以下例子強(qiáng)調(diào)抖動(dòng)監(jiān)控功能的操作。在RTP幀里為每個(gè)有效載荷類型(7-比特)指定參數(shù)R。對一個(gè)語音編碼器的例子,源速率的共同值是每秒8000個(gè)樣本,或者假設(shè)4微秒的時(shí)鐘周期,R是8388(20C4h)。假設(shè)C(l)是FF000000h,即在流里首個(gè)幀的到達(dá)時(shí)間的時(shí)鐘值,以及包含在首個(gè)幀里的時(shí)間戳是72h。然后計(jì)算并存儲(chǔ)以下的值<formula>formulaseeoriginaldocumentpage54</formula>(6)<formula>formulaseeoriginaldocumentpage54</formula>(7)注意到,對首個(gè)信息包,抖動(dòng)必須被設(shè)置成0,因?yàn)榍耙粋€(gè)幀的轉(zhuǎn)發(fā)時(shí)間是未知的。假設(shè)下一個(gè)信息包在一個(gè)FF0003E8h時(shí)鐘值上到達(dá),并包含一個(gè)9Ah的時(shí)間戳值。然后計(jì)算和存儲(chǔ)以下的值<formula>formulaseeoriginaldocumentpage54</formula>(6)<formula>formulaseeoriginaldocumentpage54</formula>(7)注意到在進(jìn)行這些計(jì)算時(shí),應(yīng)該考慮時(shí)鐘時(shí)間翻轉(zhuǎn)和時(shí)間戳翻轉(zhuǎn)的影響。時(shí)鐘當(dāng)前MSB可以與前一個(gè)樣本的MSB進(jìn)行比較,以確定是否已經(jīng)發(fā)生翻轉(zhuǎn),并在如果已經(jīng)發(fā)生翻轉(zhuǎn)時(shí)作出適當(dāng)校正。類似方法也可用于時(shí)間戳值。2.丟失幀為了計(jì)算丟失RTP幀的數(shù)目,RTP幀格式提供一個(gè)序列號(hào),其能夠被用來確定幀是否已經(jīng)丟失。通常,RTP序列號(hào)應(yīng)該對由源產(chǎn)生的每個(gè)幀遞增1。但是,對一些源而言,一個(gè)源幀被分割成(被碎成)幾個(gè)RTP幀是可能的。在這個(gè)例子里,對連續(xù)的RTP幀,序列號(hào)將不會(huì)增加。為了計(jì)算丟失幀的數(shù)目,第一個(gè)步驟是確定己經(jīng)發(fā)現(xiàn)一個(gè)序列的RTP幀。丟失幀計(jì)數(shù)過程首先檢查確保兩個(gè)按次序的RTP幀被觀察到。然后,如果當(dāng)前幀的RTP序列號(hào)不大于前一個(gè)幀的存儲(chǔ)值,根據(jù)在當(dāng)前序列號(hào)和被存儲(chǔ)的序列號(hào)之間的差值,這個(gè)過程遞增丟失計(jì)數(shù)值。如果序列號(hào)差值大于一個(gè)預(yù)定閾值,計(jì)數(shù)將不再增加,并假設(shè)源重新設(shè)置序列號(hào)為一個(gè)新對每個(gè)監(jiān)控的會(huì)話流,存儲(chǔ)當(dāng)前序列號(hào)(16-比特)和丟失幀的計(jì)數(shù)(24-比特)。這個(gè)計(jì)數(shù),結(jié)合信息包和字節(jié)統(tǒng)計(jì),確定會(huì)話丟失率。統(tǒng)計(jì)當(dāng)統(tǒng)計(jì)使在下一跳模塊狀態(tài)和控制寄存器里設(shè)置比特成為可能時(shí),每個(gè)FlowID的信息包和字節(jié)計(jì)數(shù)器被保留。對會(huì)話控制分類輸入項(xiàng),在每個(gè)輸入項(xiàng)基礎(chǔ)上而不是在每FlowID基礎(chǔ)上保留統(tǒng)計(jì)。這樣使確定每個(gè)會(huì)話的一個(gè)更準(zhǔn)確藍(lán)圖成為可能。下一跳存儲(chǔ)器外部NHSRAM被分成多個(gè)邏輯表格。這個(gè)存儲(chǔ)器的布局如表3所示表3<table>tableseeoriginaldocumentpage55</column></row><table><table>tableseeoriginaldocumentpage56</column></row><table>1.L2NHInfo和L2NHInfo表格L2NHInfo和L2NHInfo表格位于128Kx72比特下一跳SRAM的首個(gè)16K位置內(nèi)。圖33顯示這些表格里的輸入項(xiàng)格式。一個(gè)樣本輸入項(xiàng)3300包括UM字段3305(1比特)、備用字段3310(1比特)、FlowID3315(14比特)、VID3320(8比特)、和MAC地址3325(48比特)。對2層轉(zhuǎn)發(fā)幀,F(xiàn)lowID3315和UM3305字段被用來確定幀應(yīng)該被轉(zhuǎn)發(fā)到的端口。當(dāng)MAC地址3325被學(xué)習(xí)時(shí)(通過學(xué)習(xí)過程),MAC地址和VID連同F(xiàn)lowID—起被寫入到L2Info字段。對3層轉(zhuǎn)發(fā)幀,MAC地址和VID指定替換當(dāng)前目標(biāo)MAC地址和VID的下一跳MAC地址和VLANID。2.FC麗nfo表格FCNHInfo表格位于128Kx72比特下一跳SRAM里從16K(0x4000)到48K-1(0xBFFF)的地址位置內(nèi)。表格包括16KInfo輸入項(xiàng),每個(gè)大小為144比特。這些輸入項(xiàng)的格式如圖34所示。一個(gè)樣本輸入項(xiàng)3400包括UM字段3405(1比特)、Un字段3410(1比特)、FlowID3415(14比特)、VID3420(8比特)、DMAC3425(48比特)、目標(biāo)IP3430(32比特)、源IP索弓|3435(8比特)、目標(biāo)端口3440(16比特)、和源端口3445(16比特)?;跁?huì)話處理的FCNHInfo輸入項(xiàng)可以執(zhí)行3層路由功能,而不需要要求一個(gè)48-比特目標(biāo)MAC地址(DMAC)和一個(gè)也被用來確定輸出幀頭的源MAC地址的8-比特VLANID的頭替換。源IP(SIP)字段是一個(gè)256-輸入項(xiàng)源IP地址表格(32-比特寬)的索引,在分類表格里的會(huì)話控制輸入項(xiàng)的控制比特指定幀頭里的源IP地址替換時(shí)才被使用。類似地,目標(biāo)IP、源端口和目標(biāo)端口字段,在會(huì)話控制輸入項(xiàng)里的控制比特指定這些字段的替換操作時(shí),才被使用。3.Cinfo表格分類信息表格(Cinfo)占用NHSRAM里的地址OxCOOO(49152)上開始的16K位置。表格里的每個(gè)輸入項(xiàng)是一個(gè)36-比特字,其占用NHSRAM里的72-比特字的LSBs(最低有效位),格式如表4所示。表4輸入項(xiàng)類型35:3332:28272625:1615:0QoSi午可i正010未使用CIPoEn未使用CIPoIDCIFlowID拒絕100未使用重新定向.110未使用-CIP。En未使用.CIPoIDCINHID-會(huì)話控制111CTRLCIPoEn未使用CIPoIDCINHID分類輸入項(xiàng)可以是4種類型,如下所示。e/7t/y(^^^^^著,^/",^^^^類型被用來識(shí)別分配有給定優(yōu)先權(quán)隊(duì)列的特別幀。在這個(gè)操作過程中,CLFLOWID參數(shù)與從下一跳輸入項(xiàng)獲得的Flow工D—起被或操作。這樣允許FlowID被修改,而不會(huì)影響下一跳輸入項(xiàng)和參數(shù)。ZfeA76/7&7^^/《^>1_#卩類型說明幀應(yīng)該被悄悄地丟棄;不需要參數(shù)。e77^^重箭定/^翰A艱J包括一個(gè)CLNHID字段,指定將被使用的下一跳,不考慮2層或3層輸入項(xiàng)指定的下一跳。在被用來獲得轉(zhuǎn)發(fā)信息的下一跳表格里,CLNHID指定輸入項(xiàng)地址。&5^》/7co/^ro2e/7^yf會(huì)話^^煮/^^A^^包括一個(gè)CLNH工D和一個(gè)CTRL字段作為參數(shù)。CLNHID值指定在被用來獲得轉(zhuǎn)發(fā)信息的下一跳表格里的輸入項(xiàng)地址。CTRL字段比特指示在當(dāng)前幀上將要進(jìn)行的動(dòng)作,如以下表5所定義的表5<table>tableseeoriginaldocumentpage58</column></row><table>REPDIP替換目標(biāo)IP地址字段除了以上所述的操作之外,許可證、重新定向和會(huì)話控制輸入項(xiàng)也包括一個(gè)與每個(gè)輸入項(xiàng)相關(guān)聯(lián)接的監(jiān)管器的索引。這個(gè)索引指定被分配到分類輸入項(xiàng)的監(jiān)管器(Policer)索引,并能夠被用來限制與分類輸入項(xiàng)匹配的信息包流速率。Policer可以在基于以下多個(gè)變量中的一個(gè)變量而被分派指定每個(gè)FlowID、每個(gè)分類匹配或每個(gè)DiffSev碼點(diǎn)和輸入端口。4.統(tǒng)計(jì)計(jì)數(shù)器基于字節(jié)計(jì)數(shù)的統(tǒng)計(jì)計(jì)數(shù)器是32-比特字段,基于信息包的計(jì)數(shù)器是24-比特計(jì)數(shù)器。計(jì)數(shù)器被存儲(chǔ)在NHSRAM的內(nèi)存庫3(SByteCnt)、5(SPktCnt)和6(FByteCnt和FPktCnt)里?;诹鞯挠?jì)數(shù)器(FByteCnt和FPktCnt)計(jì)算所有基于非會(huì)話流的信息包數(shù)目。如果存在一個(gè)被監(jiān)控的會(huì)話控制分類輸入項(xiàng),計(jì)數(shù)被保留作為會(huì)話計(jì)數(shù)(FByteCnt和FPktCnt)。5.源IP地址(SIP)表格源IP地址表格是一個(gè)256x32比特的表格,存儲(chǔ)源IP地址,其可以被用來替換在幀頭里的入站源IP地址。當(dāng)由于一個(gè)會(huì)話控制分類輸入項(xiàng)匹配而從下一跳SRAM的FCNHInfo字段讀取一個(gè)8-比特索引時(shí),訪問這個(gè)表格。當(dāng)源IP地址將被替換時(shí),這個(gè)索引指定將被使用的表格里的位置。表格里的輸入項(xiàng)格式如表6所示<table>tableseeoriginaldocumentpage59</column></row><table>6.區(qū)分服務(wù)表格DiffServ(區(qū)分服務(wù))表格是一個(gè)4Kxl8表格,'其規(guī)定DiffServ流的Policing(監(jiān)管)和流控制行為。來自IP頭、優(yōu)先權(quán)、延遲、吞吐量、和可靠性字段的6個(gè)T0S(服務(wù)類型)比特與6-比特輸入端口ID連接在一起,并被使用作為DiffServ表格的索引。這個(gè)表格里的數(shù)據(jù)輸入項(xiàng)包括4個(gè)字段,優(yōu)先權(quán)字段,Pri,概率,Prob,或速率字段和DiffServPoliceID(DSPoID)和PoliceEnable(監(jiān)管啟動(dòng))比特,如表7所示。注意到,這個(gè)表格分配的優(yōu)先權(quán)與被用作表格索弓1的T0S頭比特里的優(yōu)先權(quán)是不同的,盡管使用一個(gè)合適的初始化他們能夠達(dá)成匹配。<table>tableseeoriginaldocumentpage60</column></row><table>DiffServ功能只有當(dāng)輸入信息包是一個(gè)IP信息包時(shí)且當(dāng)來自下一跳轉(zhuǎn)發(fā)的FlowID小于64時(shí)是活躍的。包含在輸入項(xiàng)里的優(yōu)先權(quán)字段與FlowID比特8:6被或操作。概率字段被用來確定是否設(shè)置了出站控制頭里的DiffServDrop比特。如果概率設(shè)定是0,將絕對不設(shè)置DiffServDrop比特,且如果概率字段是100%或更高,DiffServDrop總是被設(shè)置。在這個(gè)范圍內(nèi)的任何數(shù)目是一個(gè)百分概率,其確定DiffServDrop將被設(shè)置的可能性。從一個(gè)每8個(gè)周期從0到99遞增的計(jì)數(shù)器計(jì)算概率字段。因此,對背靠背的信息包,概率字段實(shí)際上是確定的,但仍然應(yīng)該有這個(gè)比特集合信息包的恰當(dāng)比率。'基于在默認(rèn)流的FlowID里的假設(shè)項(xiàng),選擇FlowID格式,如以下表8所示<table>tableseeoriginaldocumentpage60</column></row><table>在這個(gè)實(shí)施例里,表8是基于一個(gè)軟件定義,而硬件并不限于此,不同于以上所述的基于比特13:9的啟動(dòng)功能是0。當(dāng)啟動(dòng)DiffServ時(shí),產(chǎn)生一個(gè)PoliceID,DSPoID,允許具有給定T0S比特的流量流被分配到Policer。Police啟動(dòng)比特必須被設(shè)置為1以使Policer能夠響應(yīng)這個(gè)PoID。注意到,分類系統(tǒng)也能夠產(chǎn)生一個(gè)PoliceID,CIPoID,且它將具有超過DSPoID的優(yōu)先權(quán)。DiffServ表格有4096個(gè)輸入項(xiàng),包括64個(gè)輸入項(xiàng)的64個(gè)內(nèi)存庫,而不是總共僅僅是64個(gè)輸入項(xiàng)。第一內(nèi)存庫對應(yīng)端口0,第二內(nèi)存庫對應(yīng)端口l,等等。PoliceID是9比特,從而DiffServ輸入項(xiàng)能夠被映射到首512個(gè)Policer中的任何一個(gè)Policer。7.隊(duì)列長度RAM隊(duì)列長度RAM包括每個(gè)PoliceID的24-比特Qlen(隊(duì)列長度)計(jì)數(shù)器(QlenCtr)。提供一個(gè)PoliceID地址寄存器(QlenPoIDAdr),其控制下一個(gè)Qlen計(jì)數(shù)器讀取的地址。當(dāng)這個(gè)地址寄存器是CPU可讀寫(RW)時(shí),那么Qlen數(shù)據(jù)寄存器是只讀的(即Qlen計(jì)數(shù)器不能被CPU設(shè)置)。訪問QlenCtr的合適途徑是在QlenPoIDAdr寄存器里設(shè)置計(jì)數(shù)器地址,并等待直到狀態(tài)寄存器里的QlenCntGotlt標(biāo)記被設(shè)置了。然后,QlenData寄存器具有有效的計(jì)數(shù)。當(dāng)QlenPoIDAdr寄存器被寫入或當(dāng)QlenData寄存器被讀取時(shí),QlenCntGotlt標(biāo)記自動(dòng)被硬件消除??梢圆捎靡韵鹿綄lenCntGot工t標(biāo)記進(jìn)行設(shè)置最壞情況延遲=2*(GlblScale-1024+2)/系統(tǒng)時(shí)鐘率…(10)由于這個(gè)讀取延遲,QlenCtr訪問主要用于測試和除錯(cuò)。QlenCtr在一個(gè)字是4字節(jié)的虛擬"隊(duì)列"里提供字?jǐn)?shù)目。8.速率RAM速率表格是一個(gè)lKxl6表格,其包括每個(gè)PoliceID的16速率比特。設(shè)置數(shù)據(jù)為0將避免由當(dāng)前RatePoIdAdr提供的Qlen計(jì)數(shù)器的遞減。速率字段規(guī)定在GlblScale計(jì)數(shù)器指定的一個(gè)周期性間隔上QlenCtr遞減的值。速率值以字計(jì)數(shù)。速率RAM的數(shù)據(jù)格式由以下表9給定。表格9比特15:0功能速率9.閾值薩閾值RAM是一個(gè)1Kx18表格,其包括每個(gè)PoliceID的閾值。當(dāng)QlenCtr達(dá)到信息包起始位上的這個(gè)數(shù)值時(shí),信息包被標(biāo)記或被丟棄,且統(tǒng)計(jì)計(jì)數(shù)器遞增。另外,閾值RAM表格包括模式比特,其說明何時(shí)能夠標(biāo)記/丟棄、何時(shí)能夠統(tǒng)計(jì)計(jì)數(shù)、和模式是否是Drop(丟棄)或Mark(標(biāo)記)。閾值RAM格式由表10提供。在1時(shí),Drop比特設(shè)置模式為Dr叩,在0時(shí),設(shè)置模式為Mark。在1時(shí),/b分a^)7啟動(dòng)被標(biāo)記/被丟棄的信息包的監(jiān)管統(tǒng)計(jì)計(jì)數(shù),而/bf/7比特啟動(dòng)標(biāo)記/丟棄信息包。當(dāng)這個(gè)比特被設(shè)置成0時(shí),"leakybucket"繼續(xù)運(yùn)作。閾值是一個(gè)15-比特值,其由幀區(qū)段(16個(gè)32-比特字)給定。We/7計(jì)數(shù)器跟蹤字計(jì)數(shù),但較低的4比特不進(jìn)行比較。一個(gè)7fff的閾值將從不標(biāo)記或丟棄信息包。一個(gè)oooo的閾值將總是標(biāo)記或丟棄信息包。表10<table>tableseeoriginaldocumentpage62</column></row><table>10.統(tǒng)計(jì)RAM統(tǒng)計(jì)表格是一個(gè)lKxl8表格,其保留被每個(gè)PoliceID的轉(zhuǎn)發(fā)芯片標(biāo)記或丟棄的信息包的計(jì)數(shù)數(shù)目。盡管可以在任何時(shí)候讀取計(jì)數(shù),清除時(shí)要特別注意,以避免競爭條件。有兩個(gè)方法可以使用。第一,通過寫入o到那個(gè)PoID、然后讀回計(jì)數(shù)器以證明計(jì)數(shù)沒有被信息包遞增功能改寫,計(jì)數(shù)器被清除。如果在那個(gè)特別PoID上有持續(xù)的標(biāo)記,則需要一些試驗(yàn)。第二,對那個(gè)PoID關(guān)閉PoStatEn比特,位置被清除,然后PoStatEn比特被再次設(shè)置回l。1.設(shè)置ThresPoIdAdr為PoID2.設(shè)置StatPoIdAdr為PoID3.讀取ThresData寄存器4.將3fff和讀取數(shù)據(jù)與操作(ANDed)后,寫入ThresData寄存器,關(guān)閉PoStatEn比特5.將0寫入StatData寄存器6.將步驟3讀取的數(shù)據(jù)寫入ThresData寄存器,再次打開這個(gè)PoID的狀態(tài)閾值RAM的數(shù)據(jù)格式是由表11提供。表ll<table>tableseeoriginaldocumentpage63</column></row><table>下一跳寄存器l.監(jiān)管控制和狀態(tài)寄存器(P0CTLST)監(jiān)管模塊控制和狀態(tài)寄存器被分成兩部分,較高的16-比特可用于狀態(tài)比特,而較低的16-比特可用于控制比特。較高的比特和在較低部分里的任何填補(bǔ)比特僅可被讀取而不能被設(shè)置。表12概括這些比特的意義。表12<table>tableseeoriginaldocumentpage64</column></row><table>隊(duì)列長度計(jì)數(shù)器GotIt標(biāo)記,We;0^6^/"是一個(gè)只讀比特,與讀取隊(duì)列長度計(jì)數(shù)器一起使用。隊(duì)列長度計(jì)數(shù)器GotIt標(biāo)記是寄存器的較高16-比特狀態(tài)段的最低有效位(LSB)。從寄存器的控制部分的LSBs上開始,全局隊(duì)列長度計(jì)數(shù)器遞減寫入啟動(dòng)比特,WWWe//fec/Frfb,控制著遞減速率過程。67W^e"/fecF^>7必須被設(shè)置為l,以"打開在leakybucket底部的洞",否則隊(duì)列長度計(jì)數(shù)器將從不遞減。全局隊(duì)列長度信息包寫入啟動(dòng)比特,67W^e/7/^W:n^,控制著遞增速率過程。67W以朋,虹/^&初始應(yīng)該被設(shè)置為1,以允許到達(dá)的信息包按照字計(jì)數(shù)遞增隊(duì)列長度計(jì)數(shù)器。設(shè)置WW^朋尸v^fh5)7為0是用來測試和清除計(jì)數(shù)器。全局統(tǒng)計(jì)寫入啟動(dòng)比特,Wi^^^Frf",控制當(dāng)信息包已被標(biāo)記或丟棄時(shí)的統(tǒng)計(jì)寫入。67W6Ys^fr5h通常是l,但可以被設(shè)置為0用于測試或當(dāng)從CPU清除統(tǒng)計(jì)計(jì)數(shù)器時(shí)避免競爭條件。當(dāng)WW5YW/&^>7是0時(shí),丟棄或標(biāo)記不記錄。這并不會(huì)改變實(shí)際信息包的標(biāo)記或丟棄。全局監(jiān)管計(jì)數(shù)器重置比特,WW化ar/fe^V,控制遞減過程的PoliceID計(jì)數(shù)器。設(shè)置67W尸oC^/fet/^為0保持計(jì)數(shù)器為0,從而避免運(yùn)行遞減過程,并避免加載QlenGotlt狀態(tài)比特和QlenData寄存器。這樣可以被用來重置計(jì)數(shù)器以消清除隊(duì)列長度計(jì)數(shù)器。當(dāng)監(jiān)管流量正常運(yùn)作時(shí),WW戶oCtryfe^V應(yīng)該被設(shè)置為1。全局隊(duì)列長度消除比特,WWW朋67r,控制遞減過程里的比率值。通過設(shè)置67W^e/767r為1,有可能迫使比率達(dá)到最大值。消除67W^e/767r恢復(fù)存儲(chǔ)在比率表格里的比率。設(shè)置WWWe77C/r有助加快消除隊(duì)列長度計(jì)數(shù)器。2.全局規(guī)模寄存器全局規(guī)模寄存器是一個(gè)16-比特寄存器,其包括一個(gè)有預(yù)載值的計(jì)數(shù)器。計(jì)數(shù)器在系統(tǒng)時(shí)鐘里計(jì)數(shù),并在所有PoliceIDs完成一個(gè)完整周期之后延遲開始遞減過程的一個(gè)新周期。正常運(yùn)行時(shí),全局規(guī)模寄存器被設(shè)置為0,以獲得足夠大的速率用于千兆位以太網(wǎng)端口。全局規(guī)模寄存器可以被設(shè)置成較大值以補(bǔ)償較高的系統(tǒng)時(shí)鐘率,或提高可能在動(dòng)態(tài)范圍開銷上的低遞減率的分辨率。3.NH一Control一RegNH—SCR寄存器是下一跳處理模塊的狀態(tài)和控制寄存器。4.NH一S,一AReg5.NH—S應(yīng)一DReg26,腿—SRAM—DRegl7.既S應(yīng)一DRegONH—SRAM—Areg、NH—SRAM—DRegO、NH_SRAM_DRegl和NH—SRAM—DReg2寄存器提供到外部HNSRAM的訪問。NH一SRAMAreg寄存器包括用于SRAM地址的17-比特值。在對外部SRAM的讀取或?qū)懭氩僮鲿r(shí),首先寫入NH—SRAM_Areg寄存器。在讀取操作時(shí),NH—SMM—DRegO寄存器包括32-比特外部NHSRAM的32LSBs。NH—SRAM_DRegO寄存器應(yīng)該被首先讀取(在讀取NH—SRAM一DRegl和NH—SRAM—DReg2之前),因?yàn)檫@次讀取觸發(fā)從由NH—SRAM—Areg指向的外部SRAM存儲(chǔ)器取回?cái)?shù)據(jù)的動(dòng)作。—旦NH—SRA^LDRegO被讀取,NH—SRAM_DRegl寄存器包括NHSRAM的比特63:32,且NH一SRAM—DReg2包括比特71:64。到外部SRAM的寫入操作首先要求寫入32LSBs到NH_SRAM_DRegO,隨后寫入比特63:32到NH—SRAM_DRegl,和寫入8MSBs到NH_SRAM_DReg2,其觸發(fā)寫入到外部SRAM。8.NH一SIP—AdrReg9.NH—SIP一DataRegNH—SIP—AdrReg和NH—SIP—DataReg是地址和數(shù)據(jù)寄存器,其控制訪問在NH模塊里的內(nèi)部SIP表格SRAMs。在內(nèi)部SRAM的讀取或?qū)懭氩僮鲿r(shí),首先將被讀取的8-比特地址寫入到NH—SIP—AdrReg寄存器。對讀取操作,讀取NH—SIP—DataReg寄存器是從SR顏獲取32-比特?cái)?shù)據(jù)。對寫入操作,寫入到NH_SIP—DataReg寄存器是在地址寄存器的地址上存儲(chǔ)32-比特值到SRAM內(nèi)。多播和輸出處理每個(gè)區(qū)段處理的最后階段是多播處理。在這個(gè)步驟上,如果是多播幀、鏡幀(mirroredframe)或2層未知幀,幀區(qū)段被復(fù)制到一組輸出端卩。初始多播處理功能如圖35所示。這個(gè)初始處理確定一個(gè)輸出幀區(qū)段是否將被復(fù)制到多播隊(duì)列。由下一跳模塊輸出的UM比特設(shè)置顯示當(dāng)前區(qū)段將是多播。圖35是一個(gè)多播輸出處理3500的流程圖。過程3500在步驟3505上開始,然后行進(jìn)到步驟3510,i賣取UM、FlowID、和InPortID??刂茝牟襟E3510行進(jìn)到?jīng)Q策步驟3515,確定UM是否等于1且Drop是否未被設(shè)置。如果是的話,控制行進(jìn)到步驟3525,增加一個(gè)區(qū)段到多播數(shù)據(jù)FIFO隊(duì)列,存儲(chǔ)InTrunk工D、S0P、E0P、VB、FlowID到多播頭FIFO內(nèi)??刂茝臍i驟3525行進(jìn)到End步驟3530。如果在決策步驟3515上的回答是否定的,控制行進(jìn)到步驟3520,增加一個(gè)區(qū)段到一個(gè)輸出數(shù)據(jù)隊(duì)列??刂茝牟襟E3520行進(jìn)到結(jié)束步驟3530。多播數(shù)據(jù)隊(duì)列處理功能如圖36所示。過程檢查多播頭(MHdr)FIF0,并在其非空時(shí),通過讀取一個(gè)說明^7,(9的FlowID和幀輸出端口之間映射關(guān)系的多播控制(M7^乃表格,讀取頭并準(zhǔn)備輸出頭用于多播操作。使用入站FlowID作為索引讀取MCtrl表格,且表格輸出是基本多播FlowID(#/^^/")和多播映射(ifosp),其包括發(fā)送幀所到的端口。對來自#v%/rFIF0的FlowID是0(未知幀)的例子而言,Mzsp被設(shè)置等于來自VLAN表格的^AWe涵erifsp,且#/7o^7Z被設(shè)置為0。然后多播輸出過程挑選在她Kp里設(shè)置的首個(gè)比特,計(jì)算輸出Flow工D(0FlowID)。在一個(gè)空閑時(shí)隙上,多播輸出過程插入來自多播數(shù)據(jù)R認(rèn)的幀區(qū)段,并使用當(dāng)前幀區(qū)段的值寫出合適的頭。然后,多播過程將在對應(yīng)輸出端口的她sp里的比特歸零,并通過在她7邵里尋找下一個(gè)非零比特計(jì)算幀區(qū)段應(yīng)該被發(fā)送到的下一個(gè)端口。如果Mffi3/是0,多播輸出過程在MHdrFIFO里尋找下一個(gè)頭。圖36是多播隊(duì)列處理3600的流程圖。過程3600在步驟3605上開始,然后行進(jìn)到?jīng)Q策步驟3610,確定多播頭FIFO是否是空的。如果多播頭FIFO是空的,控制返回到歩驟3610,但是,如果在步驟3610上多播頭FIFO是非空的,控制行進(jìn)到步驟3615,讀取多播頭FIFO以獲得FlowID、VID和InPportID??刂茝牟襟E3615行進(jìn)到步驟3620,確定FlowID是否等于0。如果FlowID等于0,控制行進(jìn)到歩驟3625,讀取控制表格,設(shè)置地址為FlowID,且數(shù)據(jù)是MflowID和Mmap??刂茝牟襟E3625行進(jìn)到步驟3635,設(shè)置Mmap(Mmap=Mmap&(l〈〈InportID)),并設(shè)置索引i等于0。返回到步驟3620,如果FlowID不等于0,控制行進(jìn)到步驟3630,讀取VLAN表格,設(shè)置地址為VID,并設(shè)置數(shù)據(jù)為VLANMemberMap以及MflowID等于0??刂茝牟襟E3630行進(jìn)到步驟3635。從步驟3635,控制行進(jìn)到?jīng)Q策步驟3640,確定是否有一個(gè)Mmap。如果沒有Mmap,控制行進(jìn)到?jīng)Q策步驟3610。但是,如果在步驟3640上有一個(gè)Mmap,控制行進(jìn)到另一個(gè)決策步驟3645。步驟3645確定對當(dāng)前索引在Mmap里是否有一個(gè)輸入項(xiàng)。如果沒有輸入項(xiàng),控制行進(jìn)到步驟3650,遞增索引i并傳遞控制到步驟3640。但是,如果在步驟3645在索引上的Mmap里有一個(gè)輸入項(xiàng),控制行進(jìn)到步驟3655。步驟3655傳遞控制到?jīng)Q策步驟3660,確定是否有一個(gè)空閑時(shí)隙。如果沒有空閑時(shí)隙,控制返回到歩驟3660直到有一個(gè)空閑時(shí)隙。如果在步驟3660上有一個(gè)空閑時(shí)隙,控制行進(jìn)到歩驟3665,輸出Fdata、S0P、E0P、VB、0PktlD、0flowID、和InPortID。控制從步驟3665行進(jìn)到步驟3650遞增計(jì)數(shù)器,并繼續(xù)過程。被傳輸?shù)皆O(shè)備緩沖和排隊(duì)區(qū)的幀的每64-字節(jié)區(qū)段有一個(gè)相關(guān)聯(lián)的64-比特控制頭,其在頭總線上被傳輸。這個(gè)控制頭包括FlowID、信息包起始和信息包終止指示、區(qū)段里的有效字節(jié)數(shù)目、兩個(gè)丟棄指示(顯示是否是一個(gè)無條件丟棄或一個(gè)基于會(huì)導(dǎo)致幀丟棄的隊(duì)列長度的丟棄)、和用于多播幀的輸入端口ID以及輸出信息包ID??刂祁^的格式如圖37所示。存儲(chǔ)器1.多播頭FIFO多播頭(i^rfr)FIFO存儲(chǔ)幀區(qū)段的控制信息,其具有在來自下一跳模塊的控制頭里設(shè)置的未知/多播比特。i/及frFIFO有512個(gè)輸入項(xiàng)深和36比特寬。在MHdrFIFO里的輸入項(xiàng)格式如圖38所示。2.多播數(shù)據(jù)RAM多播數(shù)據(jù)RAM是一個(gè)1024x64比特的存儲(chǔ)器,其在這些區(qū)段的復(fù)制過程期間存儲(chǔ)多播幀區(qū)段數(shù)據(jù)。多播數(shù)據(jù)RAM能夠緩沖高達(dá)16個(gè)幀區(qū)段以便處理。3.多播控制RAM多播控制RAM是一個(gè)512x36的模塊RAM,其包括8-比特FlowID和輸出基本FlowID和用于多播幀區(qū)段的輸出端口之間的映射關(guān)系。多播控制RAM里的輸入項(xiàng)格式如圖39所示。排隊(duì)芯片圖5是圖1中排隊(duì)芯片的模塊示意圖。如以上所述,排隊(duì)芯片170從轉(zhuǎn)發(fā)芯片150和擴(kuò)充/處理器接口160接收處理過的流量。在所述關(guān)于VoIP的實(shí)施例里,排隊(duì)芯片170將語音流量和其它普通流量區(qū)分開來,并進(jìn)一步給予語音流量優(yōu)先權(quán)優(yōu)于其它普通流量。排隊(duì)芯片170通過一個(gè)DDR輸入總線510在接收模塊525上接收處理過的流量。接收模塊525提交流量到緩沖管理器540。緩沖管理器540與BMSRAM接口530和隊(duì)列管理器545連接。緩沖管理器540提交輸出到存儲(chǔ)控制器565。存儲(chǔ)控制器565與FCRAM接口575連接,并提交輸出到傳輸多路分解器(XMTDEMUX)模塊580。多路分解器580的輸出被提交到傳輸模塊590。傳輸模塊590提交此輸出到一個(gè)DDR輸出總線595。隊(duì)列管理器545同時(shí)連接到QMSRAM接口555和調(diào)度器560。調(diào)度器隨后連接到傳輸模塊590。QMSRAM接口連接到一個(gè)外部總線555。XMTDEMUX模塊580被連接到一個(gè)本地總線RxDMA520。其隨后連接到一個(gè)CPU接口515。CPU接口通過一個(gè)PLX本地總線505處理在排隊(duì)芯片170和CPU之間的通信。微芯#-微緩沖、排隊(duì)和調(diào)度功能是由QCH工P170執(zhí)行。緩沖和排隊(duì)過程使用一個(gè)64-比特Q頭,其由轉(zhuǎn)發(fā)芯片150預(yù)先計(jì)劃給每個(gè)幀區(qū)段,以獲得控制信息用于處理區(qū)段。這個(gè)控制信息包括隊(duì)列的FlowID、幀起始位和幀標(biāo)記結(jié)束位、區(qū)段里有效字節(jié)的數(shù)目、drop標(biāo)記、mark標(biāo)記和區(qū)段的輸入和輸出端口ID。緩沖管理器540實(shí)現(xiàn)從轉(zhuǎn)發(fā)芯片150接收到的幀區(qū)段的幀重新組裝,并實(shí)現(xiàn)與幀緩沖相關(guān)聯(lián)的邏輯結(jié)構(gòu)(緩沖鏈接列表)。存儲(chǔ)控制器565實(shí)現(xiàn)到FCRAM存儲(chǔ)器的幀區(qū)段讀取和寫入。隊(duì)列管理器545實(shí)現(xiàn)流隊(duì)列建立和管理算法。QCHIP170也負(fù)責(zé)與本地總線接口連接,用于從外部接口傳送以太網(wǎng)幀和傳送以太網(wǎng)幀到外部接口。本地總線接口520實(shí)現(xiàn)接收DMA功能用于通過PLXPCI設(shè)備505從交換子系統(tǒng)到處理器子系統(tǒng)的有效幀傳每個(gè)幀區(qū)段被拷貝到FCRAM存儲(chǔ)器里,并對每個(gè)信息包形成幀區(qū)段的一個(gè)邏輯鏈接列表。如果信息包被錯(cuò)誤接收,幀被丟棄且不進(jìn)行排隊(duì)。當(dāng)信息包已經(jīng)完全被準(zhǔn)確地接收,隊(duì)列管理器將信息包加到流隊(duì)列的尾部。在每個(gè)流隊(duì)列里的幀可以被分配到任何具有一個(gè)給定類別和子類分配以及低和高隊(duì)列長度閾值的端口。當(dāng)流變得活躍時(shí)(即有一個(gè)排隊(duì)信息包),此流被增加到一個(gè)流列表,其將被服務(wù)用于當(dāng)前端口。排隊(duì)過程的控制被傳遞到調(diào)度器?!獋€(gè)幀區(qū)段的緩沖和排隊(duì)過程4000的插圖描述如圖40所示。一個(gè)來自FCHIP150的入站區(qū)段4005被接收,并被提交到步驟4010和4015。步驟4015存儲(chǔ)此入站區(qū)段4005在一個(gè)DRAM緩沖區(qū)4020里。步驟4010分析頭并轉(zhuǎn)發(fā)該入站區(qū)段到一個(gè)流配置表格4025。流配置表格4025分配一個(gè)輸出流到一系列端口4030a...n中的一個(gè)端口。端口4030a...n中的每個(gè)端口都被分配有一系列端口-類別-子類4035a...k中的一個(gè)端口-類別-子圖41顯示一個(gè)出站排隊(duì)過程4100和調(diào)度器任務(wù)的插圖描述。一旦流變成活躍的,調(diào)度器有助于服務(wù)處于正確順序的信息包。調(diào)度器在端口基于類別和子類在流之間執(zhí)行分層式加權(quán)輪轉(zhuǎn)(hierarchicalweightedroundrobin)功能。一個(gè)時(shí)隙配置寄存器執(zhí)行分配帶寬到端口,而調(diào)度器在端口上的流之間分配帶寬。許多信息包4105a...n被提交到許多環(huán)緩沖器(ringbuffer)4110a...k。在緩沖到一系列子類4115a...m中的一個(gè)子類之后,環(huán)緩沖器4110a...k提交信息包。然后,子類4115a...m被排序分類成類別4120a...z中的一個(gè)類別。類別4120a...z提交相應(yīng)的信息包到端口4125a...y中的一個(gè)端口。然后,來自端口4125a...y的信息包被提交到一個(gè)調(diào)度器4135,-其分配一個(gè)時(shí)隙給來自相應(yīng)端口4125a...y的信息包。調(diào)度器4135的輸出被提交到一個(gè)取回模塊4140,其從FCRAM緩沖器4150中尋回區(qū)段。然后,取回模塊4140提交一個(gè)輸出區(qū)段4155。微芯#_麥/7緩沖管理器功能綜述緩沖管理器負(fù)責(zé)(l)管理自由緩沖區(qū)鏈接列表;(2)分配緩沖區(qū)IDs(BIDs)用于入隊(duì)操作;(3)丟棄Q頭里設(shè)置drop標(biāo)記的幀;(4)將出隊(duì)幀的BIDs增加到自由緩沖區(qū)鏈接列表;和(5)建立一個(gè)BIDs鏈接列表以組成一個(gè)以太網(wǎng)幀,然后轉(zhuǎn)發(fā)幀的頭和尾指針到隊(duì)列管理器。緩沖管理器與(1)接收接口;(2)隊(duì)列管理器;和(3)FCRAM控制器連接并執(zhí)行以下功能1.在初始化時(shí),緩沖管理器建立一個(gè)自由緩沖區(qū)鏈接列表,其將所有BIDs放置在自由緩沖存儲(chǔ)器里。2.對一個(gè)入隊(duì)操作,緩沖管理器從自由緩沖區(qū)鏈接列表分配一個(gè)新BID,并將此BID值(具有寫入操作比特集合)寫入到FCRAM控制器命令FIFO里。緩沖管理器將此新BID更新到輸入-輸出尾BID(IOT)表格(和以SOP開始的輸入-輸出頭BID(IOH)),并將此新BID值寫入到先前尾BID值的存儲(chǔ)器位置,從而連接此新BID到任何先前幀區(qū)段。3.關(guān)于一個(gè)EOP,緩沖管理器讀取IOH和IOT表格的內(nèi)容用于當(dāng)前輸入-輸出合并,并轉(zhuǎn)發(fā)信息到隊(duì)列管理器。4.關(guān)于一個(gè)Drop操作,緩沖管理器通過增加頭BID到自由列表的尾部釋放整個(gè)幀。5.關(guān)于一個(gè)出隊(duì)操作,緩沖管理器將具有讀取操作比特集合的BID值寫入到FCRAM命令FIFO里。然后,緩沖管理器增加出隊(duì)BID到自由緩沖區(qū)鏈接列表的尾部。6.關(guān)于一個(gè)增加BID操作,緩沖管理器將NextBID值和相關(guān)聯(lián)的標(biāo)記寫入到在外部SRAM里的CurrentBID位置。數(shù)據(jù)結(jié)構(gòu)1.自由緩沖區(qū)鏈接列表和Per-flow(每個(gè)流)排隊(duì)鏈接列表為了提供對per-flow隊(duì)列和一個(gè)自由緩沖區(qū)鏈接列表的管理,邏輯隊(duì)列在緩沖管理器SRAM里形成,其中每個(gè)隊(duì)列對應(yīng)一個(gè)流隊(duì)列或自由緩沖區(qū)鏈接列表。每個(gè)邏輯隊(duì)列按照FIFO順序包括FCRAM里的緩沖區(qū)地址鏈接列表。緩沖區(qū)的自由列表的數(shù)據(jù)結(jié)構(gòu)被用來實(shí)施per-flow隊(duì)列。BID自由列表的每個(gè)記錄包括下一個(gè)BID字段(用于存儲(chǔ)鏈接列表里下一個(gè)記錄的BID)、1-比特信息包終止位(EOP)、1-比特信息包起始位(SOP)地段(以顯示下一個(gè)BID是否包起始位/終止位相關(guān)聯(lián))和一個(gè)6-比特長度字段(其規(guī)定在一個(gè)64字節(jié)信息包區(qū)段里有效八位字節(jié)的數(shù)目)。BID自由列表的概念性布局如圖42所示。BID是從自由列表的頭里被刪除,最終被插入到對應(yīng)per-flow隊(duì)列鏈接列表里。per-flow排隊(duì)鏈接列表的實(shí)施被記作flow—BIDlist[BID]二(NxtE0P,NxtS0P,NxtLen,NxtBID}?;诖嗽?,指向一個(gè)單元緩沖區(qū)的SDRAM地址被稱作緩沖區(qū)識(shí)別符(BID),而單元緩沖區(qū)的自由列表被稱作單元緩沖區(qū)列表。隊(duì)列管理器通過緩沖區(qū)管理器訪問(即寫入或讀取)per-flow鏈接歹據(jù)。寄存器和表格輸入-輸出頭(TOH)和尾(IOT)表格輸入-輸出頭和尾表格包括在任何輸入和輸出端口組合之間交換的幀的頭和尾BID值。由于隨時(shí)可能有最多4096個(gè)輸入-輸出端口對(64個(gè)輸入端口到64個(gè)輸出端口),表格深度是4096。表格格式如圖43所示。幀的首個(gè)區(qū)段的信息包起始位(SOP)、信息包終止位(EOP)和有效字節(jié)(VB)值必須被保留在頭BID表格里,因?yàn)楫?dāng)接收到一個(gè)幀終止位時(shí)這些值只能被寫入到流隊(duì)列存儲(chǔ)器里。尾BID存儲(chǔ)器包括尾指針表格和幀區(qū)段長度計(jì)數(shù)以及有效信息包(VP)控制比特,其顯示信息包是否正被處理用于一個(gè)給定輸入-輸出端口組合。頗義哪絲器自由頭寄存器包括指向外部SRAM存儲(chǔ)器里的自由緩沖區(qū)表格的頭指針值。自由頭寄存器值被用來分配存儲(chǔ)器給一個(gè)入站幀區(qū)段,并通過從外部SRAM讀取自由緩沖區(qū)鏈接列表里的下一單元得以更新。自由頭寄存器如圖44所示。頗眉,絲器自由尾寄存器包括指向外部SRAM存儲(chǔ)器里的自由緩沖區(qū)表格的尾指針值。當(dāng)將前一個(gè)被分配的存儲(chǔ)器位置增加回到自由緩沖區(qū)列表時(shí)(例如在一個(gè)出隊(duì)操作之后或在一個(gè)丟棄操作之后),使用自由尾寄存器值。自由尾寄存器如圖44所示。緩沖管理器SRAM存儲(chǔ)器映射緩沖管理器(BM)SRAM存儲(chǔ)器映射是基于一個(gè)1Mx36SRAM存儲(chǔ)器。2個(gè)512Kx36SRAM的模塊可以被用來形成1Mx36存儲(chǔ)器。存儲(chǔ)器映射布置如圖57所示。功能說明緩沖管理器的功能設(shè)計(jì)是由以下表格13里的一組偽碼顯示。這些偽碼對由緩沖管理器執(zhí)行的入隊(duì)和出隊(duì)操作提供功能說明。表格13操作入隊(duì)/出隊(duì)功能開始入隊(duì)入隊(duì)Read一RCVMUX(,,鵬i7"/"",0/,I觀腳尸',況廁WU"/"W:(義Z層A)讀取尾入隊(duì)ReadS腿A/rfr亂-孤+鄰灘,肌欣。義諷讀取頭入隊(duì)ReadS腿超潛s,J貝/"7H。義/"觀7"腳尸,入隊(duì)區(qū)段入隊(duì)If(XDR0Pli(IDV==1&&XS0P)II(IDV==0&&!XSOP))ThenDR0P=1ElseIf(IDV==0&&!XE0P)Then{WriteS跳認(rèn)潛&所n。J,J觀WriteS跳超潛s;/,+柳ft"ats,解議'07,7,7Write—MC(FH[19:0],Enqueue)}ElseIf(IDV==l&&!XEOP){WriteSRAM:A/rfres5vi""7Y"":(U/^/79:^WriteS醒/柳請鄰,組a;,肌7>7Write—MC09iO5W,S晃fiV巡/"/7乂'ft7)}EOP區(qū)段入隊(duì)If(XEOP&&!DROP)Then{BM—HD=IDH,BM—TL=FH,BM_S0P=IDS0P,BM_EOP=IDE0P,BM_VB=IDVB,<table>tableseeoriginaldocumentpage76</column></row><table>隊(duì)列管理器功能綜述隊(duì)列管理器負(fù)責(zé)(1)管理幀的per-flow入隊(duì)和出隊(duì);(2)跟蹤積壓流隊(duì)列(即非空流隊(duì)列);和(3)形成基于每個(gè)端口-類別-子類的積壓流環(huán)。隊(duì)列管理器與(1)調(diào)度器;(2)緩沖管理器;禾P(3)SRAM接口連接并執(zhí)行以下功能1.在流隊(duì)列被調(diào)度和發(fā)送到合適端口之前,隊(duì)列管理器為per-flow排對管理流隊(duì)列的一個(gè)鏈接列表數(shù)據(jù)結(jié)構(gòu);2.關(guān)于緩沖管理器的新幀指示,隊(duì)列管理器檢查PCS的隊(duì)列長度以確定幀是否能夠被增加到隊(duì)列。為了增加幀到隊(duì)列,隊(duì)列管理器査詢前一個(gè)尾部的BID,并指示緩沖管理器增加信息包頭BID到尾部。與頭BID記錄相關(guān)聯(lián)的狀態(tài)比特也被存儲(chǔ);如果有必要的話,對處理器已經(jīng)分配流到合適的端口-類別-子類,更新積壓流環(huán)(即包含整個(gè)信息包的流)。3.—旦調(diào)度器請求端口-類別-子類出隊(duì),隊(duì)列管理器從積壓FlowIDs的端口-類別-子類環(huán)的頭上的流隊(duì)列頭找回記錄。Per-flow隊(duì)列長度計(jì)數(shù)是遞減的;4.然后,隊(duì)列管理器更新對應(yīng)的流隊(duì)列頭BID和端口-類別-子類的積壓FlowIDs環(huán)。寄存器和表格戸-,微鵬浙細(xì)/i)表潛為了跟蹤每個(gè)per-flow隊(duì)列的頭和尾用于FIFO操作,per-flow頭和尾BID表格(FlowHdTl)是在隊(duì)列管理器SRAM里執(zhí)行的。這個(gè)表格的一個(gè)概念性數(shù)據(jù)結(jié)構(gòu)如圖45所示。頭和尾BID表格具有64個(gè)輸入項(xiàng),其由Flow工Ds索引。每個(gè)輸入項(xiàng)包含6個(gè)字段一個(gè)頭BID字段(包含相應(yīng)流隊(duì)列頭的BID值),一個(gè)尾BID字段(包含相應(yīng)流隊(duì)列尾的BID值),一個(gè)空字段(包含顯示per-flow隊(duì)列是否是空的狀態(tài)),一個(gè)SOP字段(顯示當(dāng)前單元是否是信息包起始位),一個(gè)E0P字段(顯示當(dāng)前單元是否是信息包終止位),和一個(gè)長度字段(顯示當(dāng)前區(qū)段里有效字節(jié))。流隊(duì)列的頭和尾BID和單元緩沖區(qū)鏈接列表如何被用來實(shí)現(xiàn)per-flow隊(duì)列的一個(gè)例子如圖46和圖47所示。圖46顯示設(shè)立頭和尾BID表格輸入項(xiàng)和相應(yīng)流隊(duì)列鏈接列表字段的例子。圖47描述圖46的設(shè)立例子形成的流隊(duì)列鏈接列表。每-樣〃-類-殘廳-長度微每-端口-類別-子類隊(duì)列-長度計(jì)數(shù)表格(QCt)存儲(chǔ)每個(gè)端口、類別、和子類的隊(duì)列長度。每-端口-類別-子類隊(duì)列-長度表格的格式如圖48所示。為了便于調(diào)度具有入隊(duì)信息包的per-flow隊(duì)列(即積壓流隊(duì)列),基于端口-類別-子類的積壓FlowID鏈接列表被用于這個(gè)實(shí)施例里。每個(gè)鏈接列表對應(yīng)一個(gè)端口-類別-子類,并存儲(chǔ)被設(shè)立到這個(gè)端口-類別-子類和具有將被調(diào)度信息包的FlowID。積壓FlowID鏈接列表的數(shù)據(jù)結(jié)構(gòu)如圖49所示。積壓FlowID鏈接列表被表示為BF[FloWID]={NxtFlOWID},并被存儲(chǔ)在與流的頭和尾指針表格相同的16K存儲(chǔ)器位置地址。離蔬縦身表鵬鵬表潛為了管理基于端口-類別-子類的積壓FlowIDs環(huán)的頭和尾FlowID,必需存儲(chǔ)形成這個(gè)環(huán)的鏈接列表的頭和尾FlowID在內(nèi)部寄存器里。對64個(gè)線卡(line-card)端口、8個(gè)流量類別、和2個(gè)子類,基于端口-類別-子類的積壓FlowIDs(BradTl)環(huán)的頭和尾FlowID表格包括1K輸入項(xiàng),如圖50所示。積壓流鏈接列表的頭和尾FlowID表格是被由連接6-比特PortID,3-比特類別和l-比特子類(PortID(6,b),C1(3,b),Subcl(l,bM形成的10-比特PtClSub索引。每個(gè)輸入項(xiàng)的最高有效位(mostsignificantbit)包括輸入項(xiàng)的空指示符。用于形成基于端口-類別-子類的積壓FlowIDs環(huán)的數(shù)據(jù)結(jié)構(gòu)描述如圖51所示。微,鄉(xiāng)船—活躍端口位圖(PtM即)是一個(gè)對應(yīng)每個(gè)端口的64-比特位圖?;钴S端口位圖表格是由隊(duì)列管理器設(shè)立,并被調(diào)度器使用。位圖里的每個(gè)比特指明相應(yīng)端口是否處于空閑或活躍狀態(tài)。至于隊(duì)列管理器調(diào)度一個(gè)新幀到端口,端口則必須處于空閑狀態(tài)。艦縱像表潛積壓端口類別-位圖(BPtClMap)表格包括64個(gè)輸入項(xiàng),對應(yīng)64個(gè)可能出站端口的每個(gè)端口。積壓端口-類別-子類位圖表格是由隊(duì)列管理器設(shè)立,并被調(diào)度器使用。每個(gè)輸入項(xiàng)包括一個(gè)8-比特寬位圖對應(yīng)8個(gè)可能類別。在位圖里的每個(gè)控制比特顯示對應(yīng)端口-子類是否有積壓流隊(duì)列需要調(diào)度。這個(gè)表格的概念性描述如圖52所示。BPtClMap的編碼被定義如下0:對應(yīng)的端口-類別沒有積壓流隊(duì)列用于調(diào)度;1:對應(yīng)的端口-類別有積壓流隊(duì)列用于調(diào)度。隊(duì)列管理器設(shè)置或重新設(shè)置每個(gè)端口-類別的對應(yīng)控制比特,顯示是否有任何與端口-類別相關(guān)聯(lián)的積壓流隊(duì)列。當(dāng)調(diào)度一個(gè)傳輸給端口時(shí),調(diào)度器請求一個(gè)給定PortID的位圖,并使用表格里的控制比特協(xié)助端口的調(diào)度決策。如果對一個(gè)指定端口有至少一個(gè)類別的積壓流隊(duì)列控制比特集合,調(diào)度器使用WRR算法在控制比特被設(shè)置的類別中間作出一個(gè)調(diào)度決策。艦端O-鄉(xiāng)殘位歸潛積壓端口-類別子類位圖(BPtSubM即)表格包括512個(gè)輸入項(xiàng),對應(yīng)512個(gè)可能端口和類別。積壓端口-類別子類位圖表格是由隊(duì)列管理器設(shè)立,并被調(diào)度器使用。每個(gè)輸入項(xiàng)包括2比特寬位圖對應(yīng)2個(gè)可能的子類。在位圖里的每個(gè)控制比特顯示對應(yīng)的端口-類別-子類是否有積壓流隊(duì)列用于調(diào)度。這個(gè)表格的概念性描述如圖53所示。BPtSubM鄰的編碼被定義如下0:對應(yīng)的端口-類別-子類沒有積壓流隊(duì)列用于調(diào)度;1:對應(yīng)的端口-類別-子類有積壓流隊(duì)列用于調(diào)度。隊(duì)列管理器設(shè)置或重新設(shè)置每個(gè)端口-類別-子類的相應(yīng)控制比特,指示是否有任何與端口-類別-子類相關(guān)聯(lián)的積壓流隊(duì)列。當(dāng)調(diào)度一個(gè)單元傳輸給端口和類別時(shí),調(diào)度器請求一個(gè)給定PortID和類別的位圖,并使用表格里的控制比特協(xié)助端口的調(diào)度決策。調(diào)度器使用WRR算法在控制比特被設(shè)置的子類中間作出一個(gè)調(diào)度決策。魔-端/7-,-殘表潛流-端口-類別-子類表格是一個(gè)詳細(xì)說明FlowID和端口-類別-子類之間映射的管理表格。流-端口-類別-子類表格包括16K輸入項(xiàng)對應(yīng)每個(gè)FlowID,并包括FlowID的10-比特端口-類別-子類項(xiàng)。流-端口-類別-子類表格如圖54所示。流-端口-類別-子類表格里的每個(gè)輸入項(xiàng)包括對應(yīng)FlowID的(端口(6'b),類別(3,b),子類(l,b)}。麵長度庳離隊(duì)列長度高閾值(QHiThresh)表格是一個(gè)管理表格,如圖55所示,其指明信息包丟棄開始發(fā)生時(shí)每個(gè)端口-類別-子類的隊(duì)列長度。隊(duì)列長度高閾值是16比特長,因此最低分配單元是16幀區(qū)段。隊(duì)列管理器比較隊(duì)列長度高閾值和當(dāng)前隊(duì)列長度以確定一個(gè)入站流的信息包是否應(yīng)該被丟棄。麵長度戀離隊(duì)列長度低閾值(QLoThresh)表格是一個(gè)管理表格,如圖56所示,其指明標(biāo)記信息包被丟棄時(shí)每個(gè)端口-類別-子類的隊(duì)列長度。隊(duì)列長度低閾值是16比特長,因此最低分配單元是16幀區(qū)段。隊(duì)列管理器比較隊(duì)列長度低閾值和當(dāng)前隊(duì)列長度,如果超出隊(duì)列長度低閾值,且設(shè)置了入站幀頭里的DSD比特,入站流的信息包被丟棄。隊(duì)列管理器SRAM存儲(chǔ)器映射SRAM存儲(chǔ)器映射是基于一個(gè)32Kx72SRAM存儲(chǔ)器。2個(gè)128Kx36SRAM模塊被并行排列以形成72-比特寬存儲(chǔ)器。存儲(chǔ)器映射安排如圖57所示。調(diào)度器功能綜述調(diào)度器負(fù)責(zé)每8-時(shí)鐘周期安排一次出站傳輸。1.調(diào)度器保留一個(gè)時(shí)隙配置表格,其將幀里512個(gè)時(shí)隙中的每個(gè)時(shí)隙映射到出站端口。2.調(diào)度器調(diào)度一個(gè)出站幀區(qū)段傳輸給端口,通過-a.對端口和類別執(zhí)行優(yōu)先權(quán)排隊(duì)或加權(quán)輪轉(zhuǎn)調(diào)度算法,在具有積壓流隊(duì)列的高達(dá)8個(gè)類別中間確定一個(gè)類別;b.對端口、類別、和子類調(diào)度器執(zhí)行優(yōu)先權(quán)排隊(duì)或加權(quán)輪轉(zhuǎn)調(diào)度算法在具有積壓流隊(duì)列的高達(dá)2個(gè)子類中間確定一個(gè)子類;C.調(diào)度器執(zhí)行輪轉(zhuǎn)算法,在所有積壓流隊(duì)列中間確定一個(gè)流隊(duì)列。3.然后,調(diào)度器請求流隊(duì)列頭的幀區(qū)段記錄,該流隊(duì)列被安排了隊(duì)列管理器的時(shí)隙以被出隊(duì)?!獋€(gè)分層式改進(jìn)的加權(quán)輪轉(zhuǎn)實(shí)施5800的插圖如圖58所示。許多流隊(duì)列5810被分類到子類5820里。然后,分類的流隊(duì)列5830被分類到類別5840里,然后其被輸出調(diào)度到端口5850。加權(quán)輪轉(zhuǎn)過程的詳細(xì)細(xì)節(jié)將在以下提供。為類別0和1及其相應(yīng)子類執(zhí)行優(yōu)先權(quán)排隊(duì),類別l、子類l具有最高優(yōu)先權(quán),類別O、子類O有最低優(yōu)先權(quán)。寄存器和表格好像體表潛如果59所示,時(shí)隙配置(TSConfig)表格將512個(gè)出站時(shí)隙的一個(gè)幀映射到出站端口。當(dāng)line-card(線卡)端口被配置時(shí),設(shè)置相應(yīng)的輸入項(xiàng)。此表格包括512個(gè)輸入項(xiàng),每個(gè)輸入項(xiàng)被一個(gè)0511范圍內(nèi)的時(shí)隙索引。一個(gè)輸入項(xiàng)包括一個(gè)相應(yīng)時(shí)隙映射的Port工D字段。每個(gè)輸入項(xiàng)的最高有效位包括PortID的一個(gè)空指示符比特。這個(gè)最高有效位被編碼為*0:輸入項(xiàng)PortID是空的,沒有端口被配置時(shí)隙;*1:輸入項(xiàng)PortID不是空的,有端口被配置時(shí)隙。之微微游纖、靜器之前被調(diào)度的時(shí)隙(PreSchTS)寄存器包括8個(gè)比特,并存儲(chǔ)了512個(gè)時(shí)隙幀里被調(diào)度的之前時(shí)隙的索引值。之前被調(diào)度的時(shí)隙寄存器在被用來確定一個(gè)時(shí)隙用于調(diào)度之前,以幅度1遞增。類微羞表潛類別權(quán)重表格(ClWeight)包括每個(gè)端口-類別的.個(gè)輸入項(xiàng),并存儲(chǔ)了類別之間用于加權(quán)輪轉(zhuǎn)(WRR)調(diào)度算法的權(quán)重值。此表格的一個(gè)概念性描述如圖60所示。類別權(quán)重表格在有流建立或拆除的PortIDs的交換操作期間建立。對一個(gè)給定端口,所有類別的權(quán)重總和提供端口的WRR調(diào)度窗口大小。一個(gè)類別權(quán)重對這個(gè)總和的比率提供保證給此類別的端口帶寬比例。類謝,微表潛類別WRR計(jì)數(shù)(ClWeightCT)表格包括每個(gè)端口-類別的一個(gè)輸入項(xiàng)。類別權(quán)重計(jì)數(shù)表格存儲(chǔ)WRR計(jì)數(shù)值用于類別之間的加權(quán)輪轉(zhuǎn)調(diào)度算法運(yùn)作。此表格的一個(gè)概念性描述如圖61所示?;钴S端口-類別的輸入項(xiàng)在WRR調(diào)度算法運(yùn)作期間被更新。WRR適合端口類別-位圖表格WRR合適端口類別-位圖(WrrPtClMap)表格包括64個(gè)輸入項(xiàng),對應(yīng)64個(gè)可能出站端口。每個(gè)輸入項(xiàng)包括一個(gè)8-比特寬位圖,對應(yīng)8個(gè)可能類別。位圖里的每個(gè)控制比特顯示對應(yīng)的端口-類別是否適合被WRR算法調(diào)用。此表格的一個(gè)概念性描述如圖62所示。WrrPtClMap的編碼被定義如下0:相應(yīng)的端口-類別不適合WRR調(diào)度-此端口-類別的類別WRR權(quán)重計(jì)數(shù)已經(jīng)達(dá)到相應(yīng)的端口-類別權(quán)重;1:相應(yīng)的端口-類別適合WRR調(diào)度-此端口-類別的類別WRR權(quán)重計(jì)數(shù)沒有達(dá)到相應(yīng)的端口-類別權(quán)重。之微錄度麟微潛之前被調(diào)度的類別(PreSchCl)表格包括64個(gè)輸入項(xiàng);每個(gè)輸入項(xiàng)對應(yīng)端口之前被WRR算法調(diào)度給類別識(shí)別符。此表格的一個(gè)概念性描述如圖63所示。WRR調(diào)度算法設(shè)置對應(yīng)端口的輸入項(xiàng)為調(diào)度算法剛剛調(diào)度傳輸?shù)念悇e。f微置表潛子類權(quán)重表格(SubWeight)包括每個(gè)端口-類別-子類的一個(gè)輸入項(xiàng),并存儲(chǔ)子類之間用于加權(quán)輪轉(zhuǎn)(冊R)調(diào)度算法的權(quán)重值。此表格的一個(gè)概念性描述如圖64所示。子類權(quán)重表格在有流建立或拆除的PortID和類別的交換操作期間建立。對一個(gè)給定端口和類別,所有子類的權(quán)重總和提供端口和類別的WRR調(diào)度窗口大小。一個(gè)子類權(quán)重對這個(gè)總和的比率提供保證給此子類的端口-類別的帶寬比例。賴,微表潛子類權(quán)重計(jì)數(shù)(SubWeightCT)表格包括每個(gè)端口-類別-子類的一個(gè)輸入項(xiàng)。子類權(quán)重計(jì)數(shù)表格存儲(chǔ)WRR權(quán)重值用于子類之間的加權(quán)輪轉(zhuǎn)調(diào)度算法的運(yùn)算。此表格的一個(gè)概念性描述如圖65所示?;钴S端口-類別-子類的輸入項(xiàng)在子類間的WRR調(diào)度算法運(yùn)算期間被更新。腳適,/7-鄉(xiāng)殘-鄉(xiāng)表搭WRR適合端口-類別子類-位圖(WrrPtSubMap)表格包括512個(gè)輸入項(xiàng)對應(yīng)512個(gè)可能的端口-類別。每個(gè)輸入項(xiàng)包括一個(gè)2-比特寬位圖對應(yīng)2個(gè)可能子類。位圖里的每個(gè)控制比特顯示對應(yīng)的端口-類別-子類是否適合被WRR算法調(diào)度。此表格的一個(gè)概念性描述如圖66所示。WrrPtSubMap的編碼被定義如下0:相應(yīng)的端口-類別-子類不適合WRR調(diào)度-此端口-類別-子類的類別WRR權(quán)重計(jì)數(shù)已經(jīng)達(dá)到相應(yīng)的端口-類別-子類權(quán)重;*1:相應(yīng)的端口-類別-子類適合WRR調(diào)度-此端口-類別-子類的類別WRR權(quán)重計(jì)數(shù)沒有達(dá)到相應(yīng)的端口-類別-子類權(quán)重。之,凝微游殘表潛之前被調(diào)度的子類(PreSchSub)表格包括512個(gè)輸入項(xiàng),每個(gè)輸入項(xiàng)對應(yīng)那個(gè)端口-類別之前被WRR算法調(diào)度的子類識(shí)別符。此表格的一個(gè)概念性說明如圖67所示。WRR調(diào)度算法設(shè)置對應(yīng)端口-類別的輸入項(xiàng)為WRR調(diào)度算法剛剛調(diào)度區(qū)段傳輸?shù)淖宇?。功能對一個(gè)端口,加權(quán)輪轉(zhuǎn)算法被用于類別調(diào)度。對一個(gè)端口和類別,加權(quán)輪轉(zhuǎn)算法被用于子類調(diào)度。對一個(gè)端口、類別和子類,輪轉(zhuǎn)算法被用于流隊(duì)列的幀傳輸調(diào)度。*汰辦對加權(quán)輪轉(zhuǎn)(TOR)算法的運(yùn)算,滿足三個(gè)特性1.如果所有類別包括非積壓流,WRR等待下一個(gè)區(qū)段以進(jìn)入任何類別的流隊(duì)列。然后,那個(gè)類別被處理,并提供完全服務(wù);2.如果僅有一個(gè)類別包括積壓流,且所有其它類別包括非積壓流,具有積壓流的類別被處理,并繼續(xù)服務(wù),直到流在另一個(gè)類別里積壓;3.如果兩個(gè)或多個(gè)類別包括積壓流;WRR使用調(diào)度窗口來確定類別進(jìn)入服務(wù)a.在調(diào)度窗口里給一個(gè)特別類別較多時(shí)隙,保證較多的帶寬給此類別;同樣,b.在調(diào)度窗口里給一個(gè)特別類別較少時(shí)隙,表示較少的帶寬給此類別;c.提供一個(gè)特別類別的端口帶寬的保證比例是分給那個(gè)類別的時(shí)隙數(shù)目除以調(diào)度窗口里的時(shí)隙總數(shù)。對WRR運(yùn)算,調(diào)度窗口里的時(shí)隙順序和安排不影響分配到每個(gè)類別的帶寬數(shù)量。但是,延遲取決于調(diào)度窗口里的時(shí)隙順序。有兩種方法用于基于窗口的WRR調(diào)度算法1.一個(gè)面向模塊的WRR調(diào)度算法給一個(gè)特別類別提供所有按次序的時(shí)隙,而不會(huì)移到另一個(gè)類別;2.—個(gè)分布式的WRR調(diào)度算法嘗試為一個(gè)給定類別在調(diào)度窗口均勻分布時(shí)隙。此處所述的實(shí)施例利用第二種方法。特別地,實(shí)施例提供一個(gè)WRR計(jì)數(shù)和一個(gè)權(quán)重給所有與每個(gè)端口-分類相關(guān)聯(lián)的流隊(duì)列。每次從與端口-類別相關(guān)聯(lián)的流隊(duì)列調(diào)度一個(gè)區(qū)段,對應(yīng)端口-類別的WRR計(jì)數(shù)增加1,且類別被存儲(chǔ)為之前被調(diào)度的類別。對所有到一個(gè)端口的類別,只要在類別里有至少一個(gè)積壓流隊(duì)列,且相關(guān)聯(lián)的WRR計(jì)數(shù)沒有達(dá)到其權(quán)重,算法就依次從流隊(duì)列頭里繼續(xù)調(diào)度緩沖區(qū)的區(qū)段給每個(gè)類別。如果在一個(gè)類別里不再有積壓流隊(duì)列,或一個(gè)類別的對應(yīng)WRR計(jì)數(shù)達(dá)到其權(quán)重,該類別就被排除在調(diào)度周期之外。對相同端口-類別里的積壓流隊(duì)列,一個(gè)輪轉(zhuǎn)方案被用來從每個(gè)積壓流隊(duì)列的頭傳輸區(qū)段。對一個(gè)給定的端口,只要所有類別使它們的WRR計(jì)數(shù)達(dá)到其權(quán)重或WRR計(jì)數(shù)沒有達(dá)到其權(quán)重的類別沒有積壓流隊(duì)列,所有類別的WRR計(jì)數(shù)被重新設(shè)置,且一個(gè)新的調(diào)度窗口開始用于這個(gè)端口。對一個(gè)基于可變長度信息包的系統(tǒng),加權(quán)輪轉(zhuǎn)算法必須被修改以適應(yīng)流達(dá)到其服務(wù)閾值的情況,但必須如packet-by-packet包傳輸所要求的,服務(wù)信息包直到完成。對這種情況,其中流被服務(wù),而此流已經(jīng)達(dá)到一個(gè)相關(guān)閾值,這時(shí)使用一種虧損服務(wù)計(jì)數(shù)器。虧損服務(wù)計(jì)數(shù)器對每個(gè)被服務(wù)的高過閾值的幀區(qū)段遞增,顯示流在當(dāng)前調(diào)度循環(huán)里已經(jīng)利用額外帶寬。當(dāng)這個(gè)信息包已經(jīng)被服務(wù)完成,如果任何其它的流隊(duì)列有積壓信息包,但還沒有達(dá)到其閾值,這些流的信息包被服務(wù)。當(dāng)所有這些信息包已經(jīng)被服務(wù)且所有積壓隊(duì)列已經(jīng)達(dá)到其調(diào)度閾值時(shí),不需要重新設(shè)置調(diào)度器計(jì)數(shù)為0,計(jì)數(shù)被重新設(shè)置為虧損計(jì)數(shù)器里保留的值。與其它流相比,減少當(dāng)前循環(huán)里流可利用的服務(wù)。這樣可以保持公平的帶寬-共享算法。微餅-存縦縱功能綜述存儲(chǔ)控制器565從FCRAM緩沖區(qū)存儲(chǔ)器讀取幀區(qū)段或?qū)懭霂瑓^(qū)段到FCRAM緩沖區(qū)存儲(chǔ)器。存儲(chǔ)控制器與(1)MUX模塊;(2)緩沖管理器;和(3)DEMUX模塊連接以執(zhí)行以下功能*存儲(chǔ)控制器從緩沖管理器讀取一個(gè)命令FIFO,這個(gè)命令是通過讀取和寫入請求(和存儲(chǔ)器里的區(qū)段開始地址)而寫入的。關(guān)于讀取請求,存儲(chǔ)控制器從給定的存儲(chǔ)器地址讀取幀區(qū)段,并寫入數(shù)據(jù)到一個(gè)出隊(duì)FIFO里。關(guān)于寫入請求,存儲(chǔ)控制器讀取入隊(duì)FIFO,并寫入幀區(qū)段到具體的存儲(chǔ)器地址。存儲(chǔ)控制器產(chǎn)生如FCRAM-II規(guī)范所要求的存儲(chǔ)更新周期。存儲(chǔ)控制器模塊565的模塊圖如圖6所示。存儲(chǔ)控制器565在一個(gè)命令FIFO模塊610上通過一個(gè)21比特總線接收來自緩沖區(qū)管理器540的輸入。在一個(gè)入隊(duì)FIFO模塊650里通過一個(gè)64比特總線接收來自MUX芯片140的MUX輸入。存儲(chǔ)控制器565包括一個(gè)讀/寫狀態(tài)機(jī)630。存儲(chǔ)控制器565通過一個(gè)FCRAM控制模塊640提交輸出到FCRAM接口模塊570。存儲(chǔ)控制器565通過一個(gè)出隊(duì)FIFO模塊620提交輸出到圖5的多路復(fù)用器580。FCRAM存儲(chǔ)器映射4個(gè)FCRAM設(shè)備中的每個(gè)設(shè)備包括4個(gè)內(nèi)存庫(內(nèi)存庫A、B、C和D),每個(gè)包括32K個(gè)行地址和128個(gè)列地址。每個(gè)FCRAM設(shè)備存儲(chǔ)每64-字節(jié)幀區(qū)段的16個(gè)字節(jié)。這16個(gè)字節(jié)被存儲(chǔ)為每內(nèi)存庫8個(gè)字節(jié),且每次讀取或?qū)懭氩僮骺梢詡鬏?個(gè)字節(jié)(2個(gè)字節(jié),突發(fā)長度為4)從/到內(nèi)存庫A(內(nèi)存庫C)或從/到內(nèi)存庫B(內(nèi)存庫D)。存儲(chǔ)控制器模塊接口存做劍器,_,C應(yīng)W在一個(gè)10-周期期間內(nèi)讀取和寫入FCRAM存儲(chǔ)器,其中讀取和寫入64-字節(jié)幀區(qū)段是交叉的。如圖所示,每個(gè)命令要求5個(gè)周期完成。讀取和寫入可以由FCRAM更新周期預(yù)先進(jìn)行,其消耗大約2%的可用接口帶寬。DEMUX芯片140圖8是圖1的DEMUX芯片190的體系結(jié)構(gòu)模塊圖。如圖1的以上所述,DEMUX芯片190從排隊(duì)芯片170接收流量,并從預(yù)定數(shù)據(jù)寬度將流量重排成系統(tǒng)100接收到的初始數(shù)據(jù)寬度。DEMUX芯片190提交輸出流量到MAC芯片130。圖8顯示DEMUX芯片190在接收模塊850上接收頭'(HDR)860和數(shù)據(jù)(DAT)870。接收模塊850緩沖接收到的頭860和數(shù)據(jù)870,并提交相應(yīng)信息到HDRFIFO模塊835和CHUNGFIFO模塊840。HDRFIFO模塊835緩沖頭信息,并提交一個(gè)16比特輸出到多路復(fù)用器830。類似地,CHUNGFIFO模塊840緩沖接收到的數(shù)據(jù),并提交一個(gè)64比特輸出到多路復(fù)用器830。多路復(fù)用器830多路傳輸接收到的頭和數(shù)據(jù)信息到10個(gè)FIFO信道(被連接到一系列10個(gè)PKTFIFO模塊815a...f,825a...d),從而將一個(gè)預(yù)定數(shù)據(jù)寬度的接收到的總線流量恢復(fù)到由系統(tǒng)100接收到的流量705的數(shù)據(jù)寬度。PKTFIFO模塊815a...f緩沖接收到的信息,并提交64比特輸出到相應(yīng)的POS-PHY/Leve12傳輸(PP2Tx)模塊810a...f。類似地,PKTFIF0模塊825a...d緩沖接收到的信息,并提交64比特輸出到相應(yīng)的SPI3Tx模塊820a...d。PP2Tx模塊810a...f產(chǎn)生輸出流量805a...f,SPI3Tx模塊820a...d產(chǎn)生輸出流量805g...j。所有的流量805a...j被提交到MAC130。前述的首選方法包括一個(gè)特別控制流。此首選方法可以有許多其它轉(zhuǎn)變,如使用不同的控制流,而不會(huì)偏離本發(fā)明的精神和范圍。而且,首選方法的一個(gè)或多個(gè)步驟可以并行地而不是按順序地進(jìn)行。計(jì)算機(jī)應(yīng)用流量處理的方法最好使用一臺(tái)通用計(jì)算機(jī)系統(tǒng)300實(shí)施,如圖3所示,其中圖1、2和4到70的過程可以作為軟件實(shí)施,如計(jì)算機(jī)系統(tǒng)300內(nèi)運(yùn)行的應(yīng)用程序。特別地,流量處理方法的步驟受計(jì)算機(jī)執(zhí)行的軟件里的指令影響。這些指令可以由一個(gè)或多個(gè)代碼模塊產(chǎn)生,每個(gè)代碼模塊被用來執(zhí)行一個(gè)或多個(gè)特別任務(wù)。軟件也可以被分割成兩個(gè)獨(dú)立部分,其中第一部分執(zhí)行流量處理方法,第二部分管理第一部分和用戶之間的用戶界面。軟件可以被存儲(chǔ)在計(jì)算機(jī)可讀媒介里,例如包括以下描述的存儲(chǔ)設(shè)備。軟件從計(jì)算機(jī)可讀媒介被載入到計(jì)算機(jī)里,然后由計(jì)算機(jī)執(zhí)行。記錄有這種軟件或計(jì)算機(jī)程序的計(jì)算機(jī)可讀媒介是計(jì)算機(jī)程序產(chǎn)品。在計(jì)算機(jī)里使用計(jì)算機(jī)程序產(chǎn)品最好是流量處理的有效裝置。計(jì)算機(jī)系統(tǒng)300是由計(jì)算機(jī)模塊301、輸入設(shè)備如鍵盤302和鼠標(biāo)303、輸出設(shè)備包括打印機(jī)315、顯示設(shè)備314和揚(yáng)聲器317組成。調(diào)制解調(diào)器(Modem)收發(fā)器設(shè)備316被計(jì)算機(jī)模塊301用來與通信網(wǎng)絡(luò)320進(jìn)行通信,例如通過電話線321或其它功能媒介進(jìn)行連接。Modem316可以被用來訪問Internet和其它網(wǎng)絡(luò)系統(tǒng),如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),且在一些應(yīng)用里可以被合并到計(jì)算機(jī)模塊301。計(jì)算機(jī)模塊301通常包括至少一個(gè)處理器單元305和一個(gè)存儲(chǔ)器單元306,例如由半導(dǎo)體隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)形成。模塊301也包括許多輸入/輸出(I/O)接口,其包括一個(gè)連接視頻顯示器314和揚(yáng)聲器317的音頻-視頻接口307,一個(gè)1/0接口一313用于鍵盤302和鼠標(biāo)303以及可選擇的操作桿(未說明),以及接口308用于Modem316和打印機(jī)315。在一些應(yīng)用里,Modem316可以被合并到計(jì)算機(jī)模塊301內(nèi),例如接口308內(nèi)。提供一個(gè)存儲(chǔ)設(shè)備309,其通常包括硬碟驅(qū)動(dòng)器310和軟碟驅(qū)動(dòng)器311。也可以使用一個(gè)磁帶驅(qū)動(dòng)器(未顯示)。一個(gè)CD-R0M驅(qū)動(dòng)器312通常被提供作為一個(gè)永久數(shù)據(jù)源。計(jì)算機(jī)模塊301的組件305到313通常通過一個(gè)互連總線304進(jìn)行通信,并在某種意義上其就是相關(guān)領(lǐng)域計(jì)算人員所知的計(jì)算機(jī)系統(tǒng)300的常規(guī)操作模式。所述計(jì)算機(jī)例子可以包括IBM-PC,s和相容設(shè)備、SunSparcstations或由此衍生的相關(guān)計(jì)算機(jī)系統(tǒng)。通常,應(yīng)用程序駐存在硬碟驅(qū)動(dòng)器310上,并通過處理器305的進(jìn)行讀取和控制。程序的中間存儲(chǔ)和從網(wǎng)絡(luò)320提取任何數(shù)據(jù)可以使用半導(dǎo)體存儲(chǔ)器306來完成,可能與硬碟驅(qū)動(dòng)器310—致。在一些情況下,可以提供應(yīng)用程序給用戶在CD-R0M或軟碟上編碼,然后通過相應(yīng)的驅(qū)動(dòng)器312或313讀取,或通過Modem設(shè)備316用戶從網(wǎng)絡(luò)320讀取。更進(jìn)一步地,軟件也可以從其它計(jì)算機(jī)可讀媒介被載入到計(jì)算機(jī)系統(tǒng)300里。此處使用的術(shù)語"計(jì)算機(jī)可讀媒介"是指參與提供指令和/或數(shù)據(jù)給計(jì)算機(jī)系統(tǒng)300用于執(zhí)行和/或處理的任何存儲(chǔ)或傳輸媒介。存儲(chǔ)媒介的例子包括軟碟、磁帶、CD-R0M、硬碟驅(qū)動(dòng)器、ROM或集成電路、磁光盤、或計(jì)算機(jī)可讀卡如PCMCIA卡等,不管這種設(shè)備是計(jì)算機(jī)模塊301的內(nèi)部或外部設(shè)備。傳輸媒介的例子包括無線電或紅外傳輸信道和連接到另一部計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò),和Internet或內(nèi)聯(lián)網(wǎng)包括在網(wǎng)頁上的e-mail傳輸和記錄的信息等流量處理的方法也可以由專用硬件來實(shí)施,如執(zhí)行多路傳輸和處理功能或子功能的一個(gè)或多個(gè)集成電路。這種專用硬件可以包括圖形處理器、數(shù)字信號(hào)處理器、或一個(gè)或多個(gè)微處理器和相連存儲(chǔ)器。在一些可選的方案里,交換系統(tǒng)100表現(xiàn)為一個(gè)以太網(wǎng)交換機(jī)。在一個(gè)首選實(shí)施例里,-以太網(wǎng)交換機(jī)被合并到一個(gè)獨(dú)立IP電話系統(tǒng)。交換機(jī)在IP電話手機(jī)和以太網(wǎng)網(wǎng)絡(luò)之間連接以提高語音質(zhì)量和網(wǎng)絡(luò)性能。當(dāng)IP電話接通到交換機(jī),流量通過48FE端口110。交換機(jī)分辨并分類IP電話設(shè)備。然后,語音VLAN的語音ID被分配給IP電話。其后,交換機(jī)也分配優(yōu)先權(quán)給IP電話設(shè)備的語音流量以保護(hù)如以上所述的計(jì)算機(jī)應(yīng)用例子里的語音質(zhì)量。工業(yè)應(yīng)用從以上顯然知道,所述方案可以被應(yīng)用到計(jì)算機(jī)、數(shù)據(jù)處理和電話通信工業(yè)。前述僅僅描述了本發(fā)明的一些實(shí)施例,此外可以對此作出修改和/或變化,而不會(huì)偏離本發(fā)明的范圍和精神,實(shí)施例只是用作描述目的而非限制本發(fā)明。權(quán)利要求1.一種通信流量處理方法,包括接收一個(gè)初始數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的通信流量;將所述接收到的流量重排到所述預(yù)定數(shù)據(jù)寬度的總線流量;辨認(rèn)所述總線流量里的一個(gè)特別流量;處理所述總線流量;給所述特別流量以優(yōu)先權(quán)優(yōu)于所述總線流量里的其它流量;和依照所述優(yōu)先次序的結(jié)果輸出所述總線流量;2.根據(jù)權(quán)利要求1所述的方法,還包括將所述總線流量拆分到所述初始數(shù)據(jù)寬度。3.根據(jù)權(quán)利要求1所述的方法,其中所述辨認(rèn)和所述給以優(yōu)先權(quán)還包括辨認(rèn)一個(gè)語音流量和給一個(gè)語音流量以優(yōu)先權(quán)。4.根據(jù)權(quán)利要求1所述的方法,其中所述給以優(yōu)先權(quán)還包括將所述預(yù)定數(shù)據(jù)寬度的所述總線流量進(jìn)行排隊(duì)。5.根據(jù)權(quán)利要求1所述的方法,其中所述給以優(yōu)先權(quán)還包括緩沖所述預(yù)定數(shù)據(jù)寬度的所述總線流量。6.根據(jù)權(quán)利要求1所述的方法,其中所述處理還包括2層、3層、和4層頭處理中的至少一種。7.根據(jù)權(quán)利要求1所述的方法,其中所述接收到的流量被應(yīng)用到以下至少一個(gè)接口POS-PHY接口、SPI接口、PCI接口、PCMCIA接口、USB接口和CARDBUS接口。8.根據(jù)權(quán)利要求1所述的方法,其中所述預(yù)定數(shù)據(jù)寬度是64比特。9.一種通信流量處理的系統(tǒng),包括 一個(gè)電路用于接收和重排一個(gè)初始數(shù)據(jù)寬度窄于或等于預(yù)訂數(shù)據(jù)寬度的流量到所述預(yù)定數(shù)據(jù)寬度的總線流量;一個(gè)電路用于區(qū)分所述總線流量里一個(gè)特別流量-,一個(gè)處理器用于處理所述重排的總線流量;和一個(gè)電路用于給予所述特別流量以優(yōu)先權(quán)優(yōu)于所述總線流量里其它流10.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括一個(gè)電路用于將所述總線流量拆分到所述初始數(shù)據(jù)寬度。11.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述用于給以優(yōu)先權(quán)的電路給予一個(gè)語音流量以優(yōu)先權(quán)優(yōu)于所述總線流量里的其它流量。12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述用于給以優(yōu)先權(quán)的電路還包括一個(gè)排隊(duì)芯片用于排隊(duì)所述總線流量和一個(gè)緩沖器用于緩沖所述總線流13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述處理器包括一個(gè)電路,根據(jù)2層、3層和4層中的至少一種進(jìn)行頭處理。14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述的系統(tǒng)包括至少一個(gè)用于接收和重排的接口,所述接口是從以下選擇POS-PHY接口、SPI接口、PCI接口、'PCMCIA接口、USB接口和CARDBUS接口。15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述的用于拆分的電路包括以下至少一個(gè)接口POS-PHY接口、SPI接口、PCI接口、PCMCIA接口、USB接口禾卩CARDBUS接口。16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述預(yù)定數(shù)據(jù)寬度是64比特。17.—個(gè)用于安全幀傳輸?shù)脑O(shè)備,包括一個(gè)接收電路用于接收幀;和一個(gè)入口處理器用于處理所述幀以確定是否進(jìn)一歩處理所述幀。18.根據(jù)權(quán)利要求17所述的設(shè)備,還包括一個(gè)電路用于預(yù)處理所述幀,通過分析所述幀頭以檢查所述幀的幀頭有效性。19.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述入口處理器包括一個(gè)電路用于分配識(shí)別符給所選幀。20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述識(shí)別符是一個(gè)VLANID。21.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述入口處理器包括一個(gè)電路用于設(shè)置一個(gè)VLANID被配置給VoiceID,并還設(shè)置X2比特給所述VoiceID以避免幀泛濫。22.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述的入口處理器包括一個(gè)電路用于記錄被授權(quán)用戶的MAC地址到寄存器里。23.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述寄存器是一個(gè)硬件寄存器。24.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述的入口處理器包括一個(gè)電路用于確定是否以2層或3層實(shí)體轉(zhuǎn)發(fā)所述幀。25.根據(jù)權(quán)利要求17所述的設(shè)備,還包括一個(gè)2層處理器用于引導(dǎo)所述入口處理的幀到正確端口。26.根據(jù)權(quán)利要求17所述的設(shè)備,還包括一個(gè)3層處理器用于引導(dǎo)所述入口處理的幀到正確端口。27.根據(jù)權(quán)利要求17所述的設(shè)備,還包括電路,用于通過匹配所述幀的頭字段將所述幀分類成一個(gè)流。28.根據(jù)權(quán)利要求17所述的設(shè)備,還包括一個(gè)下一跳處理器,用于確定所述幀輸出和所述幀的控制幀頭修改。29.根據(jù)權(quán)利要求17所述的設(shè)備,還包括一個(gè)用于輸出所述幀的多播處理器。30.—種處理通信流量的以太網(wǎng)交換系統(tǒng),所述交換系統(tǒng)包括一個(gè)電路,用于接收和重排初始數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的以太網(wǎng)流量到所述預(yù)定數(shù)據(jù)寬度的總線流量;一個(gè)電路,用于區(qū)分所述總線流量里的一個(gè)特別流量;一個(gè)處理器,用于處理所述重排的總線流量;和一個(gè)電路,用于給予所述具體流量以優(yōu)先權(quán)優(yōu)于所述總線流量里其它流量。31.—個(gè)互聯(lián)網(wǎng)協(xié)議電話系統(tǒng),包括一個(gè)數(shù)據(jù)網(wǎng)絡(luò);一個(gè)互聯(lián)網(wǎng)協(xié)議(IP)電話手機(jī);和一個(gè)將所述IP電話手機(jī)連接到所述數(shù)據(jù)網(wǎng)絡(luò)的交換器,所述交換器包括第一電路,用于從所述電話手機(jī)和所述數(shù)據(jù)網(wǎng)絡(luò)中的至少一個(gè)接收通信流量,所述通信流量具有一個(gè)窄于或等于預(yù)定數(shù)據(jù)寬度的初始數(shù)據(jù)寬度;第二電路,用于將所述接收到的流量重排到所述預(yù)定數(shù)據(jù)寬度的總線流量;第三電路,用于在所述總線流量里區(qū)分出來自所述IP電話手機(jī)的語音流量;一個(gè)處理器,用于處理所述重排的總線流量;和第四電路,用于給予所述IP電話手機(jī)的語音流量以優(yōu)先權(quán)優(yōu)于所述總線流量里的其它流量。全文摘要本發(fā)明披露了一種用于通信流量處理以提高數(shù)據(jù)通信網(wǎng)絡(luò)整體性能的方法。本方法包括接收一個(gè)數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的通信流量;將接收到的通信流量重排到所述預(yù)定數(shù)據(jù)寬度的總線流量;識(shí)別總線流量內(nèi)的一個(gè)特別流量;處理總線流量;給特別流量(如語音流量)優(yōu)先權(quán)優(yōu)于所述總線流量里的其它流量;和依照優(yōu)先排序結(jié)果輸出總線流量。因此,本方法保證網(wǎng)絡(luò)資源用于語音流量,并避免可能導(dǎo)致系統(tǒng)崩潰的幀泛濫。此處還披露了一種用于通信流量處理的系統(tǒng)。本系統(tǒng)包括一個(gè)電路用于接收和重排數(shù)據(jù)寬度窄于或等于預(yù)定數(shù)據(jù)寬度的通信流量到所述預(yù)定數(shù)據(jù)寬度的總線流量里;一個(gè)電路用于區(qū)分所述總線流量里一個(gè)特別流量;一個(gè)處理器用于處理重排的總線流量;和一個(gè)電路用于給予特別流量優(yōu)先權(quán)優(yōu)于所述總線流量的其它流量。本發(fā)明還提供一個(gè)用于安全幀傳輸?shù)脑O(shè)備。本設(shè)備包括一個(gè)接收電路用于接收幀;和一個(gè)入口處理器用于處理幀以確定是否進(jìn)一步處理此幀。文檔編號(hào)H04L12/28GK101160825SQ200680010081公開日2008年4月9日申請日期2006年2月1日優(yōu)先權(quán)日2005年2月1日發(fā)明者林子建,洪俊傑,潘查·樸羅謀申請人:香港應(yīng)用科技研究院有限公司