專利名稱:幀和協(xié)議分類的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于將各種類型和性能的信息處理系統(tǒng)或計(jì)算機(jī)鏈接在一起的通信網(wǎng)絡(luò)設(shè)備,并涉及這種設(shè)備中的用于數(shù)據(jù)處理的部件和方法。具體地說,本發(fā)明涉及一種用于管理與數(shù)據(jù)傳輸網(wǎng)連接的處理設(shè)備中的數(shù)據(jù)流的改進(jìn)型系統(tǒng)和方法,其中包括了一種用于處理多個(gè)輸入信息單元(也稱為“分組”或“幀”)的方法和系統(tǒng),這些輸入信息單元可以同時(shí)被多個(gè)獨(dú)立處理器所處理,并且這些輸入信息單元可以具有多種不同協(xié)議之一。
背景技術(shù):
本實(shí)施方式與下列文獻(xiàn)有關(guān),所有這些文獻(xiàn)都已轉(zhuǎn)讓給本發(fā)明的受讓人。
專利申請(qǐng)系列號(hào)09/384,691,它由Brian Bass等人于1999年8月27日申請(qǐng),名稱為“網(wǎng)絡(luò)處理器處理集合體和方法”(NetworkProcessor Processing Complex and Methods),本文中該專利有時(shí)稱為“網(wǎng)絡(luò)處理單元專利”或“NPU專利”。
美國專利5,724,348,它于1998年3月3日發(fā)布,名稱為“數(shù)據(jù)交換機(jī)的有效硬件/軟件接口”(Efficient Hardware/SoftwareInterface for a Data Switch),該專利有時(shí)稱為“接口專利”。
專利申請(qǐng)系列號(hào)09/330,968,它于1999年6月11日申請(qǐng),名稱為“數(shù)據(jù)通信的高速并行/串行鏈路”(High Speed Parallel/SerialLink for Data Communications),該專利有時(shí)稱為“鏈路專利”。
轉(zhuǎn)讓給IBM的用于其多協(xié)議交換業(yè)務(wù)的各種專利和申請(qǐng),這些專利和申請(qǐng)有時(shí)稱為“MSS”,其中某些專利和申請(qǐng)包括CedricAlexander作為發(fā)明人,并且有時(shí)稱為“MSS專利”。
以下對(duì)本實(shí)施方式的描述基于這樣一個(gè)假設(shè)讀者具有關(guān)于網(wǎng)絡(luò)數(shù)據(jù)通信以及這種網(wǎng)絡(luò)通信中所用的路由器和交換機(jī)的基本知識(shí)。具體地說,這一描述假定讀者熟悉將網(wǎng)絡(luò)運(yùn)行劃分為層的網(wǎng)絡(luò)體系結(jié)構(gòu)的國際標(biāo)準(zhǔn)化組織(“ISO”)模型?;贗SO模型的典型體系結(jié)構(gòu)從作為信號(hào)向上所通過的物理通路或媒體的第一層(有時(shí)稱為“L1”)至第2層(或“L2”)、第3層(或“L3”),等等,一直擴(kuò)展到作為駐留在與網(wǎng)絡(luò)鏈接的計(jì)算機(jī)系統(tǒng)中的應(yīng)用編程層的第7層(或“L7”)。在整個(gè)本文中,引用諸如L1、L2、L3等層旨在表示網(wǎng)絡(luò)體系結(jié)構(gòu)的相應(yīng)層。本文的描述還假定讀者基本了解網(wǎng)絡(luò)通信中所用的比特串(稱為分組或幀)。
在如今的網(wǎng)絡(luò)運(yùn)行中,對(duì)帶寬的考慮(即系統(tǒng)在單位時(shí)間內(nèi)能處理的數(shù)據(jù)量)正變得越來越重要。近年來,主要是隨著因特網(wǎng)(松散鏈接的計(jì)算機(jī)的公用網(wǎng),有時(shí)稱為“萬維網(wǎng)”)的飛速發(fā)展,在較小程度上也隨著專用數(shù)據(jù)傳輸網(wǎng)或內(nèi)部網(wǎng)的普遍增長(zhǎng),網(wǎng)絡(luò)業(yè)務(wù)量急劇增加。因特網(wǎng)和內(nèi)部網(wǎng)涉及了遠(yuǎn)端之間的大量信息的傳輸,以滿足日益增長(zhǎng)的對(duì)信息和新出現(xiàn)的應(yīng)用的遠(yuǎn)程訪問需求。因特網(wǎng)已對(duì)地理上分散的地區(qū)的大量用戶開放了大量的遠(yuǎn)程信息,并使得可以進(jìn)行各種新的應(yīng)用(比如電子商務(wù)),它導(dǎo)致網(wǎng)絡(luò)負(fù)荷越來越大。諸如電子郵件、文件傳送和數(shù)據(jù)庫訪問等其他應(yīng)用進(jìn)一步增加了網(wǎng)絡(luò)的負(fù)荷,由于網(wǎng)絡(luò)業(yè)務(wù)量居高不下,有些應(yīng)用已處于過度使用狀態(tài)。
網(wǎng)絡(luò)上的業(yè)務(wù)還越來越多樣化。某些網(wǎng)絡(luò)原來主要用于某種通信業(yè)務(wù),比如,電話網(wǎng)上的話音和數(shù)據(jù)傳輸網(wǎng)上的數(shù)字?jǐn)?shù)據(jù)。當(dāng)然,除了話音信號(hào)外,電話網(wǎng)還可以載送一定量的“數(shù)據(jù)”(比如主叫號(hào)碼和被叫號(hào)碼,用于選擇路由和記帳),但某些網(wǎng)絡(luò)的基本用途有時(shí)實(shí)際上已屬于同類分組。
然而,目前,話音和數(shù)據(jù)業(yè)務(wù)正不斷地聚合到相同的網(wǎng)絡(luò)中。隨著因特網(wǎng)的繼續(xù)擴(kuò)展及在可靠性和安全性等方面的技術(shù)的不斷提高,已有可能相對(duì)同時(shí)地發(fā)送許多不同類型的信息,包括不同類型信息的混合體,比如,話音和數(shù)據(jù)。
目前,數(shù)據(jù)可以不計(jì)費(fèi)地通過因特網(wǎng)(通過因特網(wǎng)協(xié)議即IP)進(jìn)行傳輸,而話音業(yè)務(wù)通常也走費(fèi)用最低的通路。諸如基于IP的話音(VoIP)和基于異步傳送方式即ATM的話音(VoATM)或基于幀中繼的話音(VoFR)等一些技術(shù)是當(dāng)今環(huán)境條件下傳輸話音業(yè)務(wù)的合算備選方法。隨著這些業(yè)務(wù)的變遷,產(chǎn)業(yè)將應(yīng)對(duì)諸如改變費(fèi)用結(jié)構(gòu)的問題,以及對(duì)處理器之間信息傳輸?shù)姆?wù)費(fèi)用與服務(wù)質(zhì)量進(jìn)行折衷選擇的考慮。
服務(wù)質(zhì)量方面包括容量或帶寬、響應(yīng)時(shí)間(處理一幀需要多長(zhǎng)時(shí)間)以及處理的靈活性(是否響應(yīng)不同的協(xié)議和幀結(jié)構(gòu),比如不同的壓縮或幀標(biāo)題方式)。使用資源的人將根據(jù)情況折衷考慮服務(wù)質(zhì)量和服務(wù)費(fèi)用。
發(fā)送數(shù)據(jù)分組的一些現(xiàn)有技術(shù)的系統(tǒng)要求分組具有單一的協(xié)議或格式,或者具有所允許的有限種協(xié)議或幀中的一種。由于這種系統(tǒng)可是為這些所允許的協(xié)議所定制的,因此,當(dāng)在系統(tǒng)中發(fā)現(xiàn)只有一種協(xié)議(或者有限種協(xié)議)的分組時(shí),由于設(shè)計(jì)相對(duì)簡(jiǎn)單,這種系統(tǒng)具有速度和響應(yīng)快的優(yōu)點(diǎn)。當(dāng)整個(gè)數(shù)據(jù)傳輸系統(tǒng)在單個(gè)實(shí)體控制下時(shí),該控制實(shí)體易于強(qiáng)制用戶使用單一標(biāo)準(zhǔn)傳輸協(xié)議(用戶要么遵循所允許的協(xié)議要么不使用該網(wǎng)絡(luò),因?yàn)椋W(wǎng)絡(luò)被編程為只提供指定的協(xié)議而并不能處理這些協(xié)議的變形,即使是看起來較小的變形)。
然而,即使是來自通信“標(biāo)準(zhǔn)”如以太網(wǎng)的幀也可以利用幾種協(xié)議之一被格式化,并且可以利用不同的壓縮技術(shù)被壓縮成一個(gè)消息。這些不同的協(xié)議和壓縮技術(shù)通常在幀的起點(diǎn)處和在其他關(guān)鍵信息(如L3消息的起點(diǎn))之前提供了不定量的數(shù)據(jù)。因此,來自以太網(wǎng)的幀的關(guān)鍵信息(如果有的話)可以根據(jù)以太網(wǎng)L3協(xié)議或以太網(wǎng)的形式和壓縮技術(shù)位于該幀中的不同位置。對(duì)L3消息進(jìn)行處理的系統(tǒng)需要首先找到它,在多協(xié)議系統(tǒng)中這可能是個(gè)艱巨的任務(wù)。因此,例如,以太網(wǎng)DIX版本2不同于以太網(wǎng)802.3,基于以太網(wǎng)的IPX不同于本身有三種不同格式(Novell專用、LLC和SNAP)的基于以太網(wǎng)802.3的IPX。此外,IPX的每種版本利用所謂的IEEE 802.1q標(biāo)準(zhǔn)可能支持也可能不支持虛擬LAN(即VLAN),這還會(huì)改變幀的格式,從而改變L3消息的位置。
在那些現(xiàn)有技術(shù)的支持多種協(xié)議的幀的系統(tǒng)中,有時(shí)需要提供大量的開銷(比如計(jì)算機(jī)編程,有時(shí)含有一百多行帶有比較和分支指令的代碼),用來識(shí)別協(xié)議和用來將幀從一種協(xié)議轉(zhuǎn)換為另一種協(xié)議,或用來從幀中去除不必要的信息(比如壓縮信息)。這種多協(xié)議處理過程是很耗時(shí)的,而且識(shí)別協(xié)議的時(shí)間量通常還是不定的。當(dāng)這種系統(tǒng)需要不定量的時(shí)間來識(shí)別協(xié)議和提供必要的處理時(shí),該系統(tǒng)不得不被配置為允許最長(zhǎng)必要時(shí)間(以便處理最壞的情況),這樣,所有幀的處理速度減慢到最壞情況,或者出現(xiàn)在分類所允許的時(shí)間內(nèi)某些幀未被處理的可能性。
大多數(shù)處理器都從指令集的公共起點(diǎn)(對(duì)所有數(shù)據(jù)都在同一位置)開始進(jìn)行處理,并設(shè)置這樣一些標(biāo)志,當(dāng)處理器需要判斷轉(zhuǎn)到哪里和執(zhí)行哪些指令時(shí),它將有選擇地讀取這些標(biāo)志。因此,許多處理器的執(zhí)行都將完成一些測(cè)試,以判斷它具有哪種數(shù)據(jù)以及從哪里開始進(jìn)行實(shí)質(zhì)性處理,這些測(cè)試涉及多個(gè)周期且可能涉及多個(gè)處理。
在現(xiàn)有技術(shù)中,已知一些用于處理數(shù)據(jù)的多處理器系統(tǒng),這些系統(tǒng)采用了嚴(yán)格的先進(jìn)先出的數(shù)據(jù)處理方式。雖然處理以常規(guī)方式進(jìn)行時(shí)這種系統(tǒng)工作得很好,但是,當(dāng)某一輸入的處理被延遲時(shí),這種系統(tǒng)將受約束并停止工作。某一輸入的處理的延遲還會(huì)停止其他輸入的處理。
還已知其他一些現(xiàn)有技術(shù)的系統(tǒng),這些系統(tǒng)在處理期間一直對(duì)輸入消息單元進(jìn)行跟蹤。這些系統(tǒng)的局限性和缺點(diǎn)在于必須用大量的處理能力來一直跟蹤每個(gè)信息單元在系統(tǒng)中的何處,并且某些系統(tǒng)并不提供附加的輸入信息單元,比如來自新數(shù)據(jù)流或來自內(nèi)部產(chǎn)生的消息的信息單元。
因此,用于處理數(shù)據(jù)分組的現(xiàn)有技術(shù)的系統(tǒng)有一些不合乎需要的缺點(diǎn)和局限性,這些缺點(diǎn)和局限性不是影響了系統(tǒng)的多功能性就是影響了系統(tǒng)運(yùn)行的速度,或者這兩者都受影響。對(duì)熟練技術(shù)人員而言,縱觀本發(fā)明的下列描述,還將看到現(xiàn)有技術(shù)的系統(tǒng)的其他缺點(diǎn)和局限性。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施方式可以克服現(xiàn)有技術(shù)的系統(tǒng)的這些缺點(diǎn)和局限性,它提供一種簡(jiǎn)單而又有效的管理在網(wǎng)絡(luò)上的幀或分組的數(shù)據(jù)流的方法,這些幀或分組是利用眾多不同的所允許的消息協(xié)議之一所構(gòu)成的,并且它們可能使用也可能不使用虛擬局域網(wǎng)(即VLAN)系統(tǒng)。通過快速有效地分析每一分組或幀,可以確定和保存該幀的幀類型和關(guān)鍵特征,以便將來例如在以上所引用的NPU專利中所述類型的網(wǎng)絡(luò)處理器中用作參考和對(duì)該幀進(jìn)行處理。
本實(shí)施方式的優(yōu)點(diǎn)在于,它可以快速有效地處理具有不同協(xié)議的分組,并提供了更快更容易的分組處理方法,從而使得整個(gè)系統(tǒng)可以以高速的幀處理速率運(yùn)行。
本實(shí)施方式使得路由器或交換機(jī)可以處理不定格式的連續(xù)分組或幀,而無需事先知道具體的幀或分組是以哪種格式構(gòu)成的。這一實(shí)施方式包括識(shí)別該消息或分組的第2層(L2)壓縮格式,然后運(yùn)用所存儲(chǔ)的規(guī)則來識(shí)別L2壓縮、L3協(xié)議和虛擬局域網(wǎng)(VLAN)的存在。作為這種判定的結(jié)果,處理器可以在起始指令地址開始運(yùn)行;也就是說,處理器用基于該幀的標(biāo)識(shí)的指令的起始地址進(jìn)行了預(yù)處理。因此,處理器具有起始指令地址和該幀的數(shù)據(jù)部分中的L3標(biāo)題的起點(diǎn)的指針以及一些指示協(xié)議、VLAN存在和壓縮格式的標(biāo)志。
本實(shí)施方式的優(yōu)點(diǎn)在于,它在分組的初始處理期間建立并存儲(chǔ)了關(guān)于分組的關(guān)鍵信息,然后,所存儲(chǔ)的關(guān)于分組或幀的信息以后可以有利于例如NPU專利中所述的網(wǎng)絡(luò)處理單元集合體在處理過程中所使用,從而使得在其后續(xù)階段可以更快更有效地處理分組。
本實(shí)施方式的優(yōu)點(diǎn)在于,它使得可以將來自單一數(shù)據(jù)流的輸入分組或幀分配給用于處理的多個(gè)獨(dú)立處理器之一,然后,使得可以將輸出(處理后的)分組或幀重組成與輸入分組或幀被接收到的次序相同的次序。
本實(shí)施方式的優(yōu)點(diǎn)在于,多個(gè)數(shù)據(jù)流可以互不影響地被處理,并且一個(gè)數(shù)據(jù)流不會(huì)阻塞其他數(shù)據(jù)流。也就是說,當(dāng)一個(gè)數(shù)據(jù)流的處理因等待完成其某一部分的處理而停止時(shí),其他數(shù)據(jù)流的處理可以繼續(xù)。
本實(shí)施方式還可以使系統(tǒng)的刷新或所完成的幀的即刻分配與次序無關(guān)(需要的話),從而不考慮按所接收到的次序處理每一數(shù)據(jù)流的正常操作。
本實(shí)施方式的優(yōu)點(diǎn)還在于,它便于緩沖器和存儲(chǔ)裝置的有效使用,并且它運(yùn)行快捷,這樣,處理速度不會(huì)因?yàn)楣芾頂?shù)據(jù)流的開銷而下降。
本實(shí)施方式預(yù)期它可以在與一組網(wǎng)絡(luò)處理器及其相應(yīng)的存儲(chǔ)器件相同的半導(dǎo)體襯底上實(shí)現(xiàn),從而使得在這些器件之間可以實(shí)現(xiàn)快速數(shù)據(jù)傳輸。
本實(shí)施方式還可以用硬件而不用軟件來實(shí)現(xiàn),并且,所需的格式測(cè)試可以在統(tǒng)一的時(shí)間內(nèi)完成,而與確定格式或壓縮技術(shù)之前的格式和必須進(jìn)行多少次比較無關(guān)。在所示的設(shè)計(jì)中,在兩個(gè)時(shí)鐘周期內(nèi),可以完成幀的分類,同時(shí)設(shè)置必要的指示符來指示存在哪種類型的幀(例如采用了哪種壓縮技術(shù)和哪種第3層協(xié)議)和是否支持虛擬LAN(即VLAN)以及關(guān)于該幀的關(guān)鍵信息。在這兩個(gè)周期內(nèi),分配器可以將幀發(fā)送到空閑的網(wǎng)絡(luò)處理單元(如所引用的NPU專利中所述)。作為判斷協(xié)議和壓縮方法的幀處理結(jié)果,可以確定處理器所需用的起始地址并將其傳送給處理器,這樣,由于處理器預(yù)裝了起始地址(到有關(guān)的指令存儲(chǔ)器的指針)以及其處理所需的其他有關(guān)的信息,從而它可以開始對(duì)該幀的工作。處理器預(yù)裝其處理所需的起始地址有時(shí)稱為處理器的預(yù)處理(preconditioning),這可使處理器更有效一一它不必處理完許多測(cè)試指令和根據(jù)測(cè)試結(jié)果跳過一些指令,而是在所出現(xiàn)的消息的具體格式的初始地址處開始起動(dòng)。
本實(shí)施方式的系統(tǒng)的優(yōu)點(diǎn)還在于,幀的分類和預(yù)處理可以與將該幀分配到網(wǎng)絡(luò)處理集合體中并行地進(jìn)行。這種并行處理使得幀的處理更有效并可以使系統(tǒng)運(yùn)行得更快。
通過使用本實(shí)施方式,多處理單元既可以相互獨(dú)立,又可以處理同一數(shù)據(jù)流,而不會(huì)使其一部分陷入不同的和所不希望的次序。給定數(shù)據(jù)流的處理后的分組或幀的輸出次序?qū)⑴c系統(tǒng)從數(shù)據(jù)流接收輸入分組或幀的次序相同,除非由于刷新命令而被覆蓋。
最后,本實(shí)施方式還允許系統(tǒng)插入新數(shù)據(jù)流和創(chuàng)建分組或幀,而不會(huì)影響保持從網(wǎng)絡(luò)接收到的數(shù)據(jù)流的次序的處理過程。
本實(shí)施方式的一種增強(qiáng)型方式使得不僅可以進(jìn)行處理器的預(yù)處理(存儲(chǔ)第一指令的地址),而且還可以存儲(chǔ)以后執(zhí)行的一些指令的附加地址。這樣,處理器不僅有第一指令的地址,而且還有后續(xù)分支(即分叉)點(diǎn)處的指令的地址,從而在代碼的執(zhí)行中避免了不必要的測(cè)試(如滿足某條件,則轉(zhuǎn)向指令#1,否則轉(zhuǎn)向指令#2)。這使得代碼的執(zhí)行更有效。
對(duì)熟悉相關(guān)技術(shù)的人員而言,縱觀優(yōu)選實(shí)施方式的下列描述,并參照附圖和附屬權(quán)利要求書,還將看到本實(shí)施方式的其他目的和優(yōu)點(diǎn)。
因此,在陳述了現(xiàn)有技術(shù)的一些局限性和缺點(diǎn)以及本發(fā)明的一些目的和優(yōu)點(diǎn)后,對(duì)熟悉相關(guān)技術(shù)的人員而言,縱觀一種改進(jìn)型路由選擇系統(tǒng)和方法的用于說明本發(fā)明的附圖的下列描述,還將看到其他目的和優(yōu)點(diǎn),其中圖1是一個(gè)含有NPU專利中所述的實(shí)施本發(fā)明所用的嵌入式處理器集合體的接口設(shè)備的框圖;圖2是一個(gè)圖1中所示類型的嵌入式處理器集合體的框圖,它具有一個(gè)本發(fā)明中有用的分類器硬件輔助;圖3A-3T是一些說明在本發(fā)明的硬件分類器中所使用的各種以太網(wǎng)協(xié)議格式的圖解;
圖4是本發(fā)明的分類器硬件輔助的流程圖,用于說明本發(fā)明中的分類器處理幀部分所用的邏輯電路;圖5是一個(gè)用于說明本發(fā)明的分類器的功能圖解;圖6是本發(fā)明的具有所示可選增強(qiáng)型器件的硬件分類器的備選實(shí)施方式,它除了第一指令的地址外還可使一系列地址存儲(chǔ)在堆棧中;圖7是與每一幀相應(yīng)的隊(duì)列的示意圖;圖8是本發(fā)明的完成單元的詳細(xì)示圖,其中N個(gè)處理器中的每個(gè)處理器都有兩個(gè)標(biāo)記存儲(chǔ)器;圖9是一個(gè)用于一直對(duì)N個(gè)處理器中的每個(gè)處理器正在處理的數(shù)據(jù)流進(jìn)行跟蹤的標(biāo)記存儲(chǔ)器的格式的示意圖;圖10是說明完成單元在接收和處理一個(gè)已將新的幀分配給處理單元之一的指示時(shí)所執(zhí)行的邏輯的流程圖;圖11是說明完成單元在處理一個(gè)幀處理已完成的報(bào)告時(shí)所執(zhí)行的邏輯的流程圖;和圖12是圖8的完成單元的另一示圖,其中包括了用以說明其優(yōu)選實(shí)施方式中完成單元的操作的數(shù)據(jù)。
具體實(shí)施例方式
在優(yōu)選實(shí)施方式的以下描述中,將描述發(fā)明人目前所知的實(shí)施本發(fā)明的最佳實(shí)現(xiàn)方式的某些特性。不過,這一描述只是以一種特定實(shí)施方式中講述本發(fā)明的大致的一般性的思想,而并不是將本發(fā)明局限于本實(shí)施方式中所示的情況,尤其對(duì)于相關(guān)技術(shù)的熟練人員而言,他們將認(rèn)識(shí)到針對(duì)這些圖所說明和描述的具體結(jié)構(gòu)和操作可以有許多變形和更改。
圖1是一個(gè)適合于與數(shù)據(jù)傳輸網(wǎng)連接的處理系統(tǒng)的功能框圖,該處理系統(tǒng)用于以分組或信息單元(有時(shí)也稱為幀,本文中將交替使用這些術(shù)語)的形式接收、處理數(shù)據(jù)以及將其重發(fā)給網(wǎng)絡(luò)。如圖1中所示,這種用于數(shù)據(jù)處理的系統(tǒng)包括了多個(gè)子組件,如NPU專利中所述,這些子組件有利地集成在單一襯底上。整個(gè)組件在單一襯底上集成便于緊密封裝系統(tǒng)的各個(gè)部件,從而減少了部件之間通信所需的時(shí)間,并因此提高了系統(tǒng)運(yùn)行的速度。多處理器以及支持邏輯和存儲(chǔ)器使用單一襯底還可以減少因相互連接而導(dǎo)致的故障的發(fā)生率,并且還可以提高對(duì)可能干擾網(wǎng)絡(luò)中的數(shù)據(jù)傳輸?shù)脑肼暬蚱渌s散信號(hào)的抵抗力。
裝在襯底10上的子組件分為上部配置和下部配置,其中“上部”配置(有時(shí)也稱為“入口”)是指與從數(shù)據(jù)傳輸網(wǎng)進(jìn)入芯片(到達(dá)或進(jìn)入芯片)的數(shù)據(jù)有關(guān)的那些部件,而“下部”(有時(shí)也稱為“出口”)是指以離開方式(離開芯片或向下進(jìn)入網(wǎng)絡(luò))將來自芯片的數(shù)據(jù)發(fā)向數(shù)據(jù)傳輸網(wǎng)的那些部件。數(shù)據(jù)流分別流向上部和下部配置;因此,在圖1的系統(tǒng)中,存在著上部數(shù)據(jù)流和下部數(shù)據(jù)流。上部或入口配置單元包括排隊(duì)-出隊(duì)-調(diào)度UP(EDS-UP)邏輯電路16、多個(gè)復(fù)用的MAC’s-UP(PMM-UP)14、交換數(shù)據(jù)移動(dòng)器-UP(SDM-UP)18、系統(tǒng)接口(SIF)20、數(shù)據(jù)調(diào)整串行鏈路A(DASL-A)22和數(shù)據(jù)調(diào)整串行鏈路B(DASL-B)24。數(shù)據(jù)鏈路在以上所引用的鏈路專利中作了詳述,因此應(yīng)當(dāng)參照這一文獻(xiàn),以便更好地理解系統(tǒng)的這一部分。應(yīng)當(dāng)理解,本發(fā)明的優(yōu)選實(shí)施方式使用了如該專利中所詳述的數(shù)據(jù)鏈路,但因?yàn)楸景l(fā)明并不局限于那些特定的輔助設(shè)備(比如本優(yōu)選實(shí)施方式中所用的數(shù)據(jù)鏈路),其他系統(tǒng)也可以很好地應(yīng)用本發(fā)明,尤其是那些支持相對(duì)高速的數(shù)據(jù)流和系統(tǒng)要求的系統(tǒng)。
本系統(tǒng)的下部(或出口)中所述的部分包括數(shù)據(jù)鏈路DASL-A 26和DASL-B 28、系統(tǒng)接口SIF 30、交換數(shù)據(jù)移動(dòng)器SDM-DN 32、排隊(duì)-出隊(duì)-調(diào)度器EDS-DN 34和出口的多個(gè)復(fù)用的MAC PMM-DN 36。襯底10還包括多個(gè)內(nèi)部靜態(tài)隨機(jī)存取存儲(chǔ)器件(S-RAM)、一個(gè)業(yè)務(wù)量管理調(diào)度器(TRAFFIC MGT SCHEDULER)40和一個(gè)如所引用的NPU專利中所詳述的嵌入式處理器集合體12。接口設(shè)備38通過各自的DMU總線與PMM 14、36連接。接口設(shè)備38可以是用于與L1電路系統(tǒng)連接的任意合適的設(shè)備,比如,以太網(wǎng)物理(ENET PHY)設(shè)備或異步傳送方式的成幀設(shè)備(ATM FRAMER),這兩種設(shè)備均是商業(yè)上眾所周知的很適用于這一目的的設(shè)備的例子。接口設(shè)備的類型和大小至少部分地由所用芯片及其系統(tǒng)所連接的網(wǎng)絡(luò)媒體來確定。多個(gè)外部動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器件(D-RAM)和一個(gè)S-RAM可由該芯片所使用。
盡管這里特別針對(duì)這樣的網(wǎng)絡(luò)進(jìn)行了討論,即其中,在相關(guān)交換和路由選擇設(shè)備外部的一般數(shù)據(jù)流是通過導(dǎo)體(比如安裝在建筑物內(nèi)部的電線或電纜)傳送的,然而,本發(fā)明預(yù)期網(wǎng)絡(luò)交換機(jī)及其部件也可以應(yīng)用于無線環(huán)境中。例如,這里所討論的媒體訪問控制(MAC)單元可以代之以合適的射頻器件,比如,用硅鍺技術(shù)制成的器件,這樣可以使所討論的器件直接與無線網(wǎng)連接。當(dāng)適當(dāng)?shù)夭捎昧诉@種技術(shù)時(shí),對(duì)所屬領(lǐng)域技術(shù)人員而言,可以將射頻單元集成到這里所討論的VLSI結(jié)構(gòu)中?;蛘撸漕l或其他無線響應(yīng)器件(比如紅外(IR)響應(yīng)器件)可以安裝在帶有這里討論的其他單元的葉片(blade)上,以實(shí)現(xiàn)適用于無線網(wǎng)絡(luò)設(shè)備的交換設(shè)備。
箭頭表示圖1中所示接口系統(tǒng)中的一般的數(shù)據(jù)流向。離開ENETPHY塊38經(jīng)過DMU總線從以太網(wǎng)MAC 14接收到的數(shù)據(jù)的幀或消息被EDS-UP器件16置于內(nèi)部數(shù)據(jù)存儲(chǔ)緩沖器16a中。這些幀被識(shí)別為正常幀或引導(dǎo)幀,這會(huì)涉及多個(gè)處理器中的后續(xù)處理的方法和位置。
圖2是一個(gè)可以很好地應(yīng)用本發(fā)明的處理系統(tǒng)100的框圖。在圖2中,多個(gè)處理單元110位于分配器單元112與完成單元114之間。每一到來幀F(xiàn)(來自未示出的與本數(shù)據(jù)處理系統(tǒng)連接的網(wǎng)絡(luò))被接收后存儲(chǔ)到通過接口UP DS i/f117與處理單元110連接的UP數(shù)據(jù)存儲(chǔ)器116中,所述接口UP DS i/f117可以讀取數(shù)據(jù)并將數(shù)據(jù)寫到數(shù)據(jù)存儲(chǔ)器中。這些幀依次被分配器112所移動(dòng)并被分配給多個(gè)處理單元110之一,分配時(shí)根據(jù)分配器112判斷該處理單元是否可以處理幀的情況來確定。這一指示可以是被分配了幀F(xiàn)的一個(gè)處理單元已將信號(hào)發(fā)送給分配器112,表明該特定的處理單元有空?qǐng)?zhí)行任務(wù),不過,在本系統(tǒng)中也可以很好地采用其他分配任務(wù)的方法(比如,循環(huán)分配法或最近所用算法)。關(guān)于具體的處理單元110的結(jié)構(gòu)和功能和通常的處理系統(tǒng)的詳盡描述,可以參見以上NPU專利參考文獻(xiàn)。介于分配器112與多個(gè)處理單元110之間的是一個(gè)硬件分類器輔助118,它將在本文中稍后具體結(jié)合圖4和5作詳細(xì)描述。與多個(gè)處理單元110相關(guān)的還有指令存儲(chǔ)器122(如圖4中所示),在該存儲(chǔ)器中,存儲(chǔ)有眾多不同的指令集,以供各處理單元110所檢索和執(zhí)行。如后面所述,根據(jù)基于硬件分類器輔助118所確定的消息類型(其協(xié)議和壓縮方法)的地址,可以對(duì)指令存儲(chǔ)器122中的起始指令尋址。
完成單元114操作上連接在多個(gè)處理器110與向下排隊(duì)系統(tǒng)(標(biāo)記為“DN排隊(duì)”,即圖1中的單元34)以及UP排隊(duì)系統(tǒng)(圖1中的單元16)之間。DN排隊(duì)系統(tǒng)34用來將來自處理集合體的處理后的幀向下發(fā)送到與該集合體連接的網(wǎng)絡(luò)或其他系統(tǒng)中,而UP排隊(duì)系統(tǒng)16用來將處理后的幀發(fā)送到交換結(jié)構(gòu)中。分配器112可以用來分配和存儲(chǔ)與各幀有關(guān)的和與被分配來處理這樣的幀的處理單元有關(guān)的標(biāo)識(shí)信息。于是,完成單元114可以用這種標(biāo)識(shí)信息來確保處理后的構(gòu)成單一數(shù)據(jù)流的幀按它們被接收到時(shí)的次序被轉(zhuǎn)發(fā)。本發(fā)明的這一方面稍后將在本說明書中作更詳細(xì)的討論。
圖3(包括其各種分圖,圖3A-3T)示出了本處理系統(tǒng)被編程來接受和處理的多種消息格式(以太網(wǎng)消息格式的組成部分和變形),不過,為了適合所考慮的系統(tǒng)的環(huán)境,消息或幀的格式的表是熟練技術(shù)人員可以改變的表。本系統(tǒng)還可以被重新設(shè)計(jì)成可以接受其他消息格式,包括將來可能指定的消息格式和變形。這樣,為了描述幀的不同格式,圖3的消息格式具有不同的協(xié)議和壓縮類型,并且本發(fā)明是一個(gè)靈活系統(tǒng),它被設(shè)計(jì)成可以接受各種不同的協(xié)議和壓縮格式,并可以通過提供指向壓縮和協(xié)議的類型的指針為這些幀的處理提供幫助,還可以為處理所給幀的處理器提供指令存儲(chǔ)器中的起始地址。
圖3A示出了一般的或基本的以太網(wǎng)消息格式,這種格式有時(shí)稱為以太網(wǎng)版本2.0/DIX。這種消息格式的消息包括目標(biāo)地址DA,源地址SA,指示消息類型的塊(類型),消息正文即數(shù)據(jù),和用于消息完整性檢驗(yàn)的循環(huán)冗余校驗(yàn)即CRC的尾部。目標(biāo)地址DA和源地址SA都被規(guī)定為6個(gè)字節(jié)(48比特),指示“類型”的塊被規(guī)定為2個(gè)字節(jié),而CRC尾部被規(guī)定為4個(gè)字節(jié)。通常,消息的剩余部分(即“數(shù)據(jù)”)可具有最多達(dá)1500個(gè)字節(jié)的任意長(zhǎng)度,不過,從后面可以看到,某些類型的以太網(wǎng)為了得到其他好處對(duì)這一靈活性進(jìn)行限制。源地址SA可以指示該消息是一個(gè)預(yù)定給網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)的單一網(wǎng)絡(luò)地址的單個(gè)消息,或者它是一個(gè)多點(diǎn)傳播或一個(gè)廣播消息。多點(diǎn)傳播消息是發(fā)給網(wǎng)絡(luò)中的一組節(jié)點(diǎn)的,而廣播則是發(fā)給所有站的。指示“類型”的塊是16比特,它用于識(shí)別所采用的較高層協(xié)議。每一所寄存的以太網(wǎng)協(xié)議都給定一個(gè)唯一的類型碼,即一個(gè)總是大于以太網(wǎng)802.3長(zhǎng)度字段的長(zhǎng)度字段中的最大值的值,以使該字段可以共存。數(shù)據(jù)字段其長(zhǎng)度通常為46-1500個(gè)字節(jié),假定,在將數(shù)據(jù)傳送給MAC層之前,較高的層可以保證滿足46個(gè)字節(jié)的最小字段。長(zhǎng)度大于所允許的幀長(zhǎng)度的消息必須分割成多個(gè)長(zhǎng)度小于數(shù)據(jù)字段的最大允許長(zhǎng)度的消息。
圖3B示出了一種一般以太網(wǎng)格式的變形,它稱為IEEE 802.3以太網(wǎng)格式。該格式除了類型字段用長(zhǎng)度字段LEN取代之外,其他與圖1中的一般以太網(wǎng)消息格式的格式類似,該長(zhǎng)度字段共16比特,用于指示隨后的數(shù)據(jù)字段(不包括任何填充)的長(zhǎng)度。該標(biāo)準(zhǔn)強(qiáng)行規(guī)定分組的最小長(zhǎng)度為64個(gè)字節(jié),因此,數(shù)據(jù)字段“數(shù)據(jù)”必須至少為46個(gè)字節(jié)。如果數(shù)據(jù)字段“數(shù)據(jù)”的實(shí)際數(shù)據(jù)少于46個(gè)字節(jié),那么,MAC層必須將一些空間補(bǔ)足塊(place saver)(填充字符)添加到LLC數(shù)據(jù)字段中,以便在通過網(wǎng)絡(luò)發(fā)送分組之前達(dá)到最小容量。然而,長(zhǎng)度字段是指不含填充字符的長(zhǎng)度,這使得接收系統(tǒng)可以識(shí)別并不考慮所添加的填充字符。
圖3C示出了一種用于以太網(wǎng)消息的標(biāo)記控制信息格式,尤其遵循IEEE標(biāo)準(zhǔn)802.1q。它包括3比特用戶優(yōu)先級(jí)、1比特規(guī)范格式指示符即CFI和12比特VID即虛擬LAN(即VLAN)標(biāo)識(shí)符。虛擬LAN或局域網(wǎng)是一組節(jié)點(diǎn)的標(biāo)識(shí)(這些節(jié)點(diǎn)已通過將地址定義為包括VLAN而被識(shí)別為虛擬局域網(wǎng)),從而使得這些物理上不相關(guān)的節(jié)點(diǎn)可以在邏輯上相關(guān),并作為一個(gè)組來尋址,而不是單獨(dú)來尋址。
圖3D示出了一種嵌入式RIF(即E-RIF)格式,它用于某些以太網(wǎng)協(xié)議消息格式,而且遵循IEEE標(biāo)準(zhǔn)802.1q。在這種格式中,路由類型RT用前3比特來表示,長(zhǎng)度LTH用隨后的5比特來表示(指示整個(gè)E-RIF部分的字節(jié)的長(zhǎng)度,包括E-RIF路由控制和E-RIF路由描述符),而路由描述符方向D用1比特來表示,(通常,“0”表示按前向次序遍歷路由描述符,而在某些專門發(fā)送的幀中,用“1”表示路由描述符處于反向次序)。E-RIF格式包括6比特最大幀指示符和1比特非規(guī)范格式指示符(NCFI)。路由類型RT可以是00X、01X、10X或11X,以指示該幀分別是專門發(fā)送的幀、透明幀、全程探測(cè)幀或跨越樹探測(cè)幀。根據(jù)以太網(wǎng)的IEEE 802.3標(biāo)準(zhǔn),最大幀LF字段等于或小于1470個(gè)字節(jié)。NCFI指示所指定的MAC地址是非規(guī)范形式的(如果為0)還是規(guī)范形式的(如果為1)。
圖3E示出了E-RIF路由描述符格式,它包括12比特局域網(wǎng)標(biāo)識(shí)LAN ID和4比特橋接號(hào)(“橋接號(hào)”)。E-RIF路由描述符格式字段在工業(yè)上是眾所周知的,此用法遵循這種字段的標(biāo)準(zhǔn)。
圖3F和圖3G示出了以太網(wǎng)消息中所用的LLC格式的組成部分,包括圖3F中的802.2 LPDU格式和圖3G中的一般SNAP格式。圖3F的LPDU格式包括1個(gè)字節(jié)(8比特)目標(biāo)業(yè)務(wù)接入點(diǎn)DSAP、1個(gè)字節(jié)源業(yè)務(wù)接入點(diǎn)SSAP和1至2個(gè)字節(jié)控制字段“控制”(包括命令、響應(yīng)、序號(hào)和輪詢/最終比特)。這種情況下,業(yè)務(wù)接入點(diǎn)為6比特加上U比特和最終比特(單獨(dú)的I比特用于目標(biāo)業(yè)務(wù)接入點(diǎn),而C比特用于源的命令/響應(yīng)指示符)。圖3G示出了SNAP格式,它包括用于指示構(gòu)造(構(gòu)造的唯一標(biāo)識(shí)符,即OUI)的3個(gè)字節(jié)和用于指示在因特網(wǎng)標(biāo)準(zhǔn)0002情況下分配給該格式的類型的2個(gè)字節(jié)。類型字段的例子有IP的0800、IPX的8137、ARP的0806、RARP的8035、802.1q VLAN的8100、IPv6的86DD、Appletalk的80DB和AppletalkAARP的80F3。
圖3H示出了基于以太網(wǎng)格式的IPX中的消息的格式,它包括以太網(wǎng)MAC標(biāo)題和IPX標(biāo)題,其中,以太網(wǎng)MAC標(biāo)題具有各為6個(gè)字節(jié)的源地址SA和目標(biāo)地址DA,隨后是2個(gè)字節(jié)的類型8137(表示該幀具有IPX格式)。然后,IPX標(biāo)題包括所示的這樣一些組成部分,即2個(gè)字節(jié)的校驗(yàn)和,2個(gè)字節(jié)的分組長(zhǎng)度,1個(gè)字節(jié)的TC,1個(gè)字節(jié)的PT,4個(gè)字節(jié)的目標(biāo)網(wǎng)絡(luò),6個(gè)字節(jié)的目標(biāo)節(jié)點(diǎn),2個(gè)字節(jié)的目標(biāo)套接字,4個(gè)字節(jié)的源節(jié)點(diǎn),6個(gè)字節(jié)的源節(jié)點(diǎn),和2個(gè)字節(jié)的源套接字。
圖3I示出了基于以太網(wǎng)802.3的專用版本的IPX的消息格式(有時(shí)稱為Novell格式),它包括以太網(wǎng)802.3 MAC標(biāo)題,其中,在第三字段中規(guī)定了該消息的長(zhǎng)度(而不是圖3H中所示的以太網(wǎng)上的IPX中的類型)。這一格式中的校驗(yàn)和根據(jù)其協(xié)議被設(shè)為“FFFF”。
圖3J示出了基于具有802.2的以太網(wǎng)802.3的IPX,其中,該消息包括了被802.2的LLC LPDU字段所分開的MAC標(biāo)題和IPX標(biāo)題(與圖3H中所示一樣)。
圖3K示出了基于具有SNAP的802.3的IPX幀的格式,其中,就象參照?qǐng)D3J所示的格式那樣,該消息包括了802.3 MAC標(biāo)題,隨后是LLC LPDU字段,最終是IPX標(biāo)題。安排在LLC LPDU部分與IPX標(biāo)題之間的是SNAP字段,用于指示OUI和ETYPE8137。
圖3L示出了基于具有802.1q VLAN支持的以太網(wǎng)的IPX的格式,其中,類型字段表示為8100,而VLAN分組安排在以太網(wǎng)MAC標(biāo)題與IPX標(biāo)題之間(IPX標(biāo)題具有與以上參照?qǐng)D3H、3J和3K所述相同的格式)。VLAN分組包括2個(gè)字節(jié)的TCI字段和2個(gè)字節(jié)的長(zhǎng)度LEN或e-類型字段,然后是e-rif控制字段和不定個(gè)數(shù)的e-rif描述符字段,其個(gè)數(shù)由公式(LEN-2)/2來指定。
圖3M示出了基于利用802.1q VLAN支持的以太網(wǎng)802.3(專用)的IPX的格式。類型字段為8100,而VLAN分組與前面圖3L中的VLAN例子中的情況類似。IPX標(biāo)題與前面圖3I中的802.3專用幀中所示的情況類似,其中,校驗(yàn)和字段設(shè)為等于“FFFF”。
圖3N示出了基于采用具有VLAN支持的以太網(wǎng)802.3的IPX的幀的幀結(jié)構(gòu)。它包括802.3 MAC標(biāo)題,其中類型為8100,表示有VLAN分組(與圖3M中一樣);VLAN分組(也具有與圖3M一樣的格式);LLC LPDU(類似于參照?qǐng)D3J所示和所述的情況);和IPX標(biāo)題(如圖3H中所示)。
圖30示出了基于具有SNAP和利用802.1q的VLAN支持的以太網(wǎng)802.3的IPX中的消息的結(jié)構(gòu)或格式。它與圖3N的格式類似,其中在LLC LPDU字段與IPX標(biāo)題之間增加了SNAP字段。
圖3P示出了基于以太網(wǎng)的IPv4的格式,其中,該消息包括了以太網(wǎng)MAC標(biāo)題與IPv4標(biāo)題。各字段的長(zhǎng)度如圖中所示。
圖3Q示出了基于具有802.2的以太網(wǎng)802.3的IPv4的消息格式,圖中示出了MAC標(biāo)題,隨后是LLC LPDU,然后是IPv4標(biāo)題。
圖3R示出了基于具有SNAP的以太網(wǎng)802.3的IPv4幀的消息格式,其中,802.3 MAC標(biāo)題后面是LLC LPDU,然后是IPv4標(biāo)題(并帶有可選的用于UDP或TCP尾部,如果適用的話)。
圖3S示出了基于具有802.1q VLAN支持的以太網(wǎng)的IPv4的消息格式。這一格式具有IPv4和如802.1q VLAN支持的其他例子中所示的VLAN分組的特性。
圖3T示出了基于具有802.1q VLAN支持的以太網(wǎng)802.3(具有802.2)的IPv4的消息格式,它將具有802.2的802.3上的IPv4的特性與VLAN分組的消息特性相結(jié)合。
在圖3H至3T的每一圖中,底部那行代表幀或消息的第3層(即L3)部分,并且,由于在消息的L3部分前面的內(nèi)容的大小的變化,因此,根據(jù)消息的類型(協(xié)議和壓縮方法),消息的L3部分將在不同位置開始。盡管要求對(duì)L3消息進(jìn)行處理(忽視壓縮),然而,在多協(xié)議和多壓縮系統(tǒng)中,可能難以找到L3消息的起點(diǎn)。此外,由于多個(gè)處理器110之一針對(duì)幀所執(zhí)行的指令取決于幀協(xié)議和壓縮方法的類型,因此,希望有某種東西(在這種情況下是硬件分類器輔助118)來為處理器進(jìn)入指令存儲(chǔ)器122提供一個(gè)到達(dá)正確的起始指令的指針。
圖4示出了圖2中用單元118表示的分類器硬件輔助連同指令存儲(chǔ)器122的選定部分和多個(gè)處理單元110之一的框圖。分類器硬件輔助118對(duì)與輸入信息單元(或幀)相關(guān)的128比特片段進(jìn)行操作,這128比特片段有時(shí)稱作“FISH”,它可被分類器硬件輔助118(也被各處理單元110之一)從分配器112所接收到。這一分類功能對(duì)一直到前3個(gè)FISH(即與幀相關(guān)的前384比特,有時(shí)稱為FISH1、FISH2和FISH3以便于相互區(qū)分這些FISH)進(jìn)行操作。第一個(gè)FISH(FISH1)實(shí)際上不是所接收到的幀,而是一組與該幀有關(guān)的信息,比如,幀從哪個(gè)端口進(jìn)來,缺省代碼入口點(diǎn)291,和是否利用本發(fā)明的硬件分類器進(jìn)行幀分類的指示符292(“是”或“否”)。
在塊210中,在幀中的不同位置來比較以太網(wǎng)的類型,以判斷字段是否符合目前配置的協(xié)議,比如,第一以太網(wǎng)版本(如IPx)或第二以太網(wǎng)版本(如IPv4)。在塊220中,判斷SAP(業(yè)務(wù)接入點(diǎn))字段是否符合目前配置的協(xié)議,這仍是判斷其是否如寄存器中所規(guī)定的值(例如,具體的存儲(chǔ)值,指示協(xié)議類型)。該系統(tǒng)還在塊240判斷是否存在表示不同壓縮類型的SNAP字段(諸如“AAAA03”的特定字段),并在塊250中檢測(cè)消息中是否存在虛擬局域網(wǎng)(VLAN)使用。塊260是分類控制,在被使能分類292使能時(shí),該分類控制可以負(fù)責(zé)存儲(chǔ)與幀相關(guān)的參數(shù),并在線路270、272、274上提供一個(gè)指示協(xié)議類型、第3層指針和分類標(biāo)志的輸出。
各消息的控制入口點(diǎn)(處理的起點(diǎn),指令存儲(chǔ)器122的第一指令的地址)針對(duì)各種規(guī)定的格式可以事先被確定并存儲(chǔ)在表280中。也就是說,對(duì)于ETYPE=0而無VLAN,則控制入口點(diǎn)(起點(diǎn)地址)是指令存儲(chǔ)器中的地址122a,而對(duì)于ETYPE=1而無VLAN,則控制入口點(diǎn)是地址122b。類似地,對(duì)于ETYPE=0而有VLAN和ETYPE=1而有VLAN,則各自的控制入口點(diǎn)(實(shí)際消息的處理的開始位置)分別是指令122c和122d。對(duì)于具有ERIF字段的幀,處理將從指令122f開始,而對(duì)于未找到協(xié)議或壓縮方法的缺省程序,處理將從指令122f開始。
無論在哪種情況,缺省控制入口點(diǎn)都包含在消息的FISH1中并在塊290中被讀取。然后,塊295判斷是否使用缺省控制入口點(diǎn)——如果硬件分類在線路295上被使能并且塊280中沒有確定不同的控制入口點(diǎn),那么使用缺省入點(diǎn);否則,使用來自表280的控制入口點(diǎn)。
來自硬件分類器118的線路270、272(分別具有由硬件分類器輔助118所確定的分類標(biāo)志和L3基地址)被輸入到所分配的用于處理該幀的單個(gè)處理器110,并被存儲(chǔ)到與一個(gè)正在處理存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器110b中的幀的處理單元相關(guān)的通用寄存器110a中。來自器件295的輸出線276為這一特定類型的幀提供了指令存儲(chǔ)器122的起始地址,即存儲(chǔ)在指令控制邏輯電路110c中的數(shù)據(jù)。ALU(運(yùn)算/邏輯單元)是處理單元110的一個(gè)部件。處理器110利用指令控制邏輯電路110c中的指令計(jì)數(shù)器從指令存儲(chǔ)器122中取出指令。這樣,根據(jù)硬件分類器輔助118所確定的協(xié)議和壓縮方法,處理單元110用適合于正在處理的幀的指令集的起始地址進(jìn)行了預(yù)處理,并且,設(shè)置合適的指示幀類型的標(biāo)志,從而使處理器110可以利用正確的指令開始對(duì)幀進(jìn)行處理。
圖5示出了用于確定消息格式的分類的邏輯。這一邏輯從選定了FISH2的塊310開始,然后,在塊320中,測(cè)試該幀的第13-14個(gè)字節(jié)(即包括了幀中的類型信息的兩個(gè)字節(jié),該幀在類型前面包括了6個(gè)字節(jié)的目標(biāo)地址DA和6個(gè)字節(jié)的源地址SA)。如果這些字節(jié)符合ETYPE0或ETYPE1的內(nèi)容,那么,該過程將在塊323中通過設(shè)置一個(gè)適當(dāng)?shù)臉?biāo)志來標(biāo)識(shí)協(xié)議信息,并在塊325中結(jié)束過程。否則,如果類型塊小于0600H(十六進(jìn)制),那么,該幀是以太網(wǎng)802.3的幀格式而不是以太網(wǎng)V2.0DIX的格式,并且該字段是長(zhǎng)度字段而不是類型字段,于是,其處理在圖5的左側(cè)圖中進(jìn)行。如果這一類型塊為8100,那么,該幀是利用了802.1q VLAN支持的幀(參見例如圖3L、3M、3N、3O、3S和3T),于是,其處理在圖5的右側(cè)圖中進(jìn)行。如果類型字段是其他,那么,控制進(jìn)至塊325,在此,認(rèn)為分類結(jié)束,而無需記錄任何協(xié)議信息,這是因?yàn)?,該幀顯然是未知協(xié)議。
如果在塊320中判定第13-14個(gè)字節(jié)小于0600H,那么,在塊322中對(duì)第15-17個(gè)字節(jié)進(jìn)行分析,以判斷它們被認(rèn)為是SAP字段還是類型的LLC即邏輯鏈路控制字段(例如圖3K中所用的AAAA03)。如果這一字段被認(rèn)為是SAP字段之一,那么,設(shè)置這一SAP字段并在塊323中保存協(xié)議信息,然后在塊325中認(rèn)為分類結(jié)束。如果這一字段是SNAP字段,那么,控制進(jìn)至塊324,在此,得到FISH3,并針對(duì)所識(shí)別的ETYPE分析FISH3的第2-6個(gè)字節(jié)。如果識(shí)別了ETYPE,那么在塊323中保存協(xié)議信息,然后在塊325中退出。
如果在塊320中判定第13-14個(gè)字節(jié)等于8100,表示這是IEEE標(biāo)準(zhǔn)802.1q中所規(guī)定的虛擬局域網(wǎng)(VLAN),那么,在塊330中保存VLAN的存在,然后,在塊340中檢查是否存在CFI字段。如果有,那么分類結(jié)束并且控制進(jìn)至塊325。如果沒有,那么,在塊350中測(cè)試FISH3的第1-2個(gè)字節(jié)以判斷它們是提供了已知的ETYPE(如同塊320中的測(cè)試)還是提供了長(zhǎng)度(小于0600H)。如果它們提供了ETYPE,那么在塊323中保存協(xié)議信息,然后控制進(jìn)至塊325,在此認(rèn)為分類結(jié)束。如果在塊350中認(rèn)為該字段不是ETYPE,那么在塊325中認(rèn)為分類過程結(jié)束。如果塊350中的測(cè)試提供了長(zhǎng)度(小于0600H),那么,在塊360中針對(duì)已知的SAP測(cè)試第3-5個(gè)字節(jié)。如果它是AAAA03,那么控制進(jìn)至塊370,以針對(duì)已知的ETYPE確定第6-10個(gè)字節(jié)。
圖6示出了一種改進(jìn)型的硬件分類器,該改進(jìn)特別針對(duì)圖4中所示的單元。在圖6中,硬件分類器包括了圖4中的單元,但對(duì)指令控制邏輯電路110c有所改進(jìn),它不是包括單一的起點(diǎn)地址,而是包括了存儲(chǔ)在指令堆棧110d中的一系列地址。這一指令堆棧包括了初始指令地址,隨后還包括了當(dāng)處理器到達(dá)分叉或分支時(shí)所需的其他地址,從而還避免了在后來的分支處進(jìn)行測(cè)試或條件陳述。然后,這些起點(diǎn)地址按次序存儲(chǔ)在堆棧中,并當(dāng)需要分支指令時(shí)從堆棧中取出。
要獲得關(guān)于各種協(xié)議或壓縮技術(shù)的以太網(wǎng)消息的定義內(nèi)容的進(jìn)一步信息,讀者可以查閱以太網(wǎng)幀結(jié)構(gòu)的有關(guān)標(biāo)準(zhǔn)或參考指南。在了解以太網(wǎng)協(xié)議和壓縮技術(shù)以及相應(yīng)標(biāo)準(zhǔn)和選項(xiàng)時(shí),可用的一些通用文獻(xiàn)有1997年11月24日的IEEE p802.1D/D15的附錄C,“ISO/IECFinal CD 15802-3”,1998年2月20日發(fā)布的“IEEE Draft Standard802.1Q/D9”;RFC 1700-1994年10月J.Reynolds和J.Postel的分配號(hào)(該文獻(xiàn)還可以從http//www/isi.edu/rfc-editor/rfc.html得到);“IBM Token Ring Network Architecture Reference”;和“IBMLAN Bridge and Switch Summary”,出版號(hào)為SG24-5000-00的版本1.3,1996年1月,具體參見第1.1.1節(jié)。
硬件分類器的設(shè)計(jì)可以有各種各樣的方法,包括使用多種通用軟件工具之一來設(shè)計(jì)和制造硬件(或硅襯底的實(shí)際實(shí)現(xiàn))結(jié)構(gòu)中的邏輯電路設(shè)計(jì)方案,以及由邏輯電路設(shè)計(jì)者親手通過傳統(tǒng)設(shè)計(jì)方法來設(shè)計(jì)。本例中,所需的測(cè)試?yán)梅Q為VLSI硬件定義語言(簡(jiǎn)稱為VHDL)的軟件語言被編程,從而做成一個(gè)已知的軟件(比如IBM銷售的軟件或Synopsis銷售的軟件)以實(shí)現(xiàn)具有所必需的門電路和邏輯電路的設(shè)計(jì)方案,從而完成硬件方式中的所需測(cè)試。另外,還有一些其他類似的設(shè)計(jì)系統(tǒng)可以很好地使用,因此,邏輯的設(shè)計(jì)者不必知道門電路的結(jié)構(gòu)或其位置,只須知道其所需輸入和測(cè)試以及輸出的邏輯功能。
如上所述,在某些系統(tǒng)中,可能要求在本發(fā)明的處理系統(tǒng)中包括這樣的性能,以便按數(shù)據(jù)流的幀被接收時(shí)的次序來轉(zhuǎn)發(fā)處理后的數(shù)據(jù)流的幀,而與哪些處理器被指定用來處理每個(gè)幀無關(guān)。在這種系統(tǒng)中,分配器112在識(shí)別了可用的處理單元并將所接收的幀分配給這一用于處理的處理單元后,將針對(duì)該幀和被分配了該幀的處理單元產(chǎn)生并存儲(chǔ)標(biāo)識(shí)信息。
幀到達(dá)時(shí)一般具有標(biāo)識(shí)信息,比如幀的消息編號(hào)(有時(shí)稱為MAC)以及源地址(有時(shí)稱為SA)和目標(biāo)地址(有時(shí)稱為DA)。這種信息的位置和內(nèi)容可能隨消息的格式及其壓縮技術(shù)而變化,但這一信息使得幀可以很好地通過該系統(tǒng)和交換機(jī)及路由器被發(fā)送到目標(biāo),并按合適的次序被組合成一個(gè)完整的消息,即使整個(gè)消息的長(zhǎng)度大于單個(gè)幀。通常,一個(gè)消息的組成部分被稱為數(shù)據(jù)流,而數(shù)據(jù)流的每一部分將包括相同的標(biāo)識(shí)信息(比如MAC、SA和DA)。分配器112單元分配給輸入幀的實(shí)際標(biāo)記(或標(biāo)識(shí)信息)可以以多種方式來形成,比如MAC-SA+DA,或?qū)⑵渌⒏袷街械腖ID與MID字段進(jìn)行邏輯異或。
如圖7所示,可以為每幀建立三種表或隊(duì)列的存儲(chǔ)。首先,規(guī)定處理后的幀的隊(duì)列400來保存完成的任務(wù)(一個(gè)輸出,或從處理給定幀的處理器處接收到的處理后的幀),因此對(duì)于每個(gè)處理器要求緩沖器或存儲(chǔ)器空間可用于至少一個(gè)完成的幀(如幀0至幀N),其中標(biāo)記為NPU-0至NPU-N的處理器與各自的幀相聯(lián)。當(dāng)分配器112將一個(gè)幀發(fā)送給一個(gè)處理單元時(shí),它將該幀的標(biāo)識(shí)符發(fā)送給與各網(wǎng)絡(luò)處理單元NPU-0至NPU-N相應(yīng)的包括存儲(chǔ)單元0至n的第二存儲(chǔ)器或隊(duì)列410。當(dāng)具有標(biāo)識(shí)符或標(biāo)記m的幀被發(fā)送給NPU-0時(shí),那么,與NPU-0的標(biāo)記相應(yīng)的存儲(chǔ)器0接收到所標(biāo)識(shí)的m后進(jìn)行存儲(chǔ),這表示NPU-0正在處理標(biāo)識(shí)符為m的輸入信息單元??梢岳斫?,具有相同標(biāo)識(shí)符m的后面的幀將屬于相同數(shù)據(jù)流,而標(biāo)識(shí)符或標(biāo)記不同的幀將表示不同的數(shù)據(jù)流。因此,如果標(biāo)記為0的輸入信息單元被接收并分配給NPU-1,那么將0記錄在與NPU-1相應(yīng)的存儲(chǔ)器1中。于是,如果以后來自相同數(shù)據(jù)流(標(biāo)記同樣為0)的第二輸入信息單元被分配器112接收到并分配給處理器NPU-N,那么,存儲(chǔ)器N也存儲(chǔ)標(biāo)記0,表示該信息單元被分配給了處理器N。
第三存儲(chǔ)器420包括存儲(chǔ)當(dāng)前正被n個(gè)處理單元處理的標(biāo)記中的每一個(gè)標(biāo)記。對(duì)于這些標(biāo)記中的每一個(gè)標(biāo)記,將存儲(chǔ)所分配的處理器的標(biāo)識(shí)符,并且,由于列表是依次的,因此,分配給特定消息流的第一處理器首先出現(xiàn)在存儲(chǔ)器中。在這種情況下,對(duì)于標(biāo)記m,存儲(chǔ)器422中的條目0表示NPU-0正在處理來自該流的輸入信息單元,而對(duì)于標(biāo)記0,第一單元正被用存儲(chǔ)器424表示的處理器NPU-N所處理而第二單元正被用存儲(chǔ)器426表示的處理器NPU-1所處理。對(duì)于給定的流,要保持輸入信息單元到達(dá)分配器時(shí)的次序,這樣,同一數(shù)據(jù)流的后續(xù)傳輸可以與它被接收到時(shí)的次序相同,因此,將可以看到,標(biāo)記存儲(chǔ)器424、426使得這些NPU即處理單元按輸入幀從網(wǎng)絡(luò)處被接收到并被分配給N個(gè)處理器的次序列出。
圖8示出了在處理輸入幀和使用所述數(shù)據(jù)管理技術(shù)時(shí)所用的完成單元114的詳細(xì)結(jié)構(gòu)。本實(shí)施方式中所示的完成單元114與用于分配處理單元的輸出(如處理后的信息單元)的多個(gè)循環(huán)裝置(圖4中未示出)進(jìn)行通信。多個(gè)循環(huán)裝置包括一個(gè)上循環(huán)裝置450;和兩個(gè)下循環(huán)裝置,即一個(gè)標(biāo)記為460的用于目標(biāo)端口(少數(shù)常用的專門尋址的端口)的循環(huán)裝置和一個(gè)標(biāo)記為470的用于普通分配(發(fā)給除專門尋址的目標(biāo)端口之外的其他端口的處理信息)的循環(huán)裝置。
邏輯“與”門452、462、472分別為循環(huán)裝置450、460、470提供了選通。對(duì)于將幀提供給上循環(huán)裝置450的“與”門452,輸入是作為UP幀的幀(來自與就緒FCB頁510相關(guān)的塊UP),作為有效幀的幀(指示符VF,表明是有效幀,傳輸就緒),在相關(guān)的幀標(biāo)記字段中有效的標(biāo)記字段(M01至M92),和與數(shù)據(jù)流的頭(即最早的)幀相關(guān)的標(biāo)記。
當(dāng)幀被分配給給定的處理器時(shí),分配器112將兩條信息提供給標(biāo)記排隊(duì)480——線路482上的幀的標(biāo)記和線路484上的幀所分配給的處理器的身份。幀的標(biāo)記識(shí)別該幀所屬的數(shù)據(jù)流,在本優(yōu)選實(shí)施方式中,這基于MAC加上源地址減去目標(biāo)地址,其目標(biāo)是為各個(gè)數(shù)據(jù)流提供唯一的標(biāo)識(shí)符,這樣,來自同一數(shù)據(jù)流的幀將具有相同的標(biāo)記,而來自不同數(shù)據(jù)流的幀其標(biāo)記或標(biāo)識(shí)符將不同。
圖9示出了用于存儲(chǔ)與N個(gè)處理器中的每個(gè)處理器相關(guān)的信息的標(biāo)記字段單元500的格式。N個(gè)處理器中的每個(gè)處理器都有兩個(gè)這樣與其相關(guān)的標(biāo)記字段,一個(gè)用于正被處理的幀,一個(gè)用于已被處理并正等待從處理集合體中輸出的幀。處理后的準(zhǔn)備要傳送的幀保存在有時(shí)也稱為就緒FCB頁的存儲(chǔ)器510中,這些存儲(chǔ)器之一針對(duì)N個(gè)處理器中的每一個(gè)而存在。
標(biāo)記字段單元500包括標(biāo)記L、“頭”字段H、“有效”字段V、“尾”字段T和“下一個(gè)”字段N。標(biāo)記L可從消息內(nèi)容中得到,它表示各個(gè)數(shù)據(jù)流的唯一標(biāo)識(shí)符。頭字段H將當(dāng)前正被N個(gè)處理單元處理的數(shù)據(jù)流或一連串相關(guān)的幀的起點(diǎn)標(biāo)識(shí)為正被處理的工作或者處理后、正等待從處理集合體中輸出的幀。在N個(gè)處理器的處理集合體中正被處理的每個(gè)數(shù)據(jù)流在這N個(gè)處理器中的某處有一個(gè)頭或起點(diǎn)(即該數(shù)據(jù)流的最先被接收到的幀),并且該起點(diǎn)用其相關(guān)的標(biāo)記字段單元的頭字段H中的1標(biāo)識(shí)為“頭”。同樣,這些處理器中的每個(gè)數(shù)據(jù)流當(dāng)前在這N個(gè)處理器中還有一個(gè)尾幀,并且該尾幀因尾字段T中的1而被標(biāo)識(shí)為尾。
有效字段V指示處理器是含有實(shí)際數(shù)據(jù)(因?yàn)樗赡軄碜蕴幚磉^程)(在有效字段中用1表示),還是不含實(shí)際數(shù)據(jù)(在有效字段V中用0表示)。當(dāng)處理剛開始時(shí),系統(tǒng)中沒有實(shí)際或有效數(shù)據(jù),因此,有效字段V被置為0,作為系統(tǒng)初始化的一部分。然后,隨著數(shù)據(jù)從給定處理器的就緒FCB頁510中讀出,便將與該處理器的FCB頁相應(yīng)的有效字段V置為0,這表示該處理器不再有與該標(biāo)記相應(yīng)的有效信息(因?yàn)?,F(xiàn)CB頁中的信息已被傳送到循環(huán)裝置;盡管,由于該處理器本身可能正在處理一個(gè)不同的幀,該處理器可能在與該處理器相關(guān)的別的標(biāo)記字段中還有有效信息)?!跋乱粋€(gè)”字段N表示與同一數(shù)據(jù)流中的下一幀相關(guān)的標(biāo)記字段一一與N個(gè)處理器相關(guān)的2N個(gè)標(biāo)記字段中的另一個(gè)標(biāo)記字段。標(biāo)記排隊(duì)480接收來自用于各輸入信息單元或幀的分配器的關(guān)于給定幀已被分配的消息,以及該數(shù)據(jù)流的標(biāo)識(shí)符和該幀所分配給的處理器的標(biāo)識(shí)符。
圖10示出了圖4的標(biāo)記排隊(duì)480的流程。當(dāng)一個(gè)幀從分配器112被分配給n個(gè)處理器之一時(shí),在塊600中,輸入信息單元或幀的標(biāo)記通過線路482發(fā)送到標(biāo)記排隊(duì)480,而n個(gè)處理器中的正在處理該幀的那個(gè)處理器的標(biāo)識(shí)通過線路484發(fā)送。標(biāo)記排隊(duì)550的第一處理是在塊602中判斷對(duì)于第一標(biāo)記字段指向的某個(gè)存儲(chǔ)器而言有效字段V是否為1。如果有效字段V為1,那么所指向的存儲(chǔ)器已被占用,于是應(yīng)將數(shù)據(jù)存儲(chǔ)到塊606所指定的其他存儲(chǔ)器中,否則,應(yīng)當(dāng)在塊604中使用所指向的存儲(chǔ)器。接著,在塊650中,將該合適的存儲(chǔ)器的有效字段V置為1,以表示在該存儲(chǔ)器中存儲(chǔ)了有效數(shù)據(jù),然后,在塊640中,使當(dāng)前存儲(chǔ)位置的尾指示符T置位以表示這是當(dāng)前數(shù)據(jù)流的尾(直到接收到同一數(shù)據(jù)流的下一幀,此時(shí)將尾字段T)。然后,在塊610中,將這一標(biāo)記與處理器中任一處理器正處理的當(dāng)前標(biāo)記進(jìn)行比較(當(dāng)然,其有效字段V必須是1,表示這是個(gè)有效幀)。這一比較的結(jié)果是當(dāng)前標(biāo)記等于進(jìn)行中的一個(gè)標(biāo)記,在這種情況下控制進(jìn)至塊670,或者它與當(dāng)前進(jìn)行中的任一標(biāo)記都不符,在這種情況下,控制進(jìn)至塊630。如果有一個(gè)與當(dāng)前標(biāo)記之一相符,那么,該幀是現(xiàn)有數(shù)據(jù)流的一部分,因此,在塊670中,將該數(shù)據(jù)流的前一終點(diǎn)的尾字段T復(fù)位(因此T=0),并使該標(biāo)記字段的“下一個(gè)”字段指針指向當(dāng)前幀的位置。然后,在塊680中,頭字段H被置為0,表示當(dāng)前幀不是數(shù)據(jù)流的頭。如果當(dāng)前幀的標(biāo)記不等于當(dāng)前所存儲(chǔ)的任一標(biāo)記,那么當(dāng)前幀是一個(gè)新數(shù)據(jù)流,并且該當(dāng)前幀是該新數(shù)據(jù)流的起點(diǎn),于是在塊630中將頭字段H置為1以表示這種狀態(tài)。在塊630或塊680中進(jìn)行了設(shè)置適當(dāng)標(biāo)志(尤其是頭字段H的標(biāo)志)的處理后,將完成與現(xiàn)有數(shù)據(jù)流鏈接和設(shè)置字段或標(biāo)志的處理。
在圖11中,示出了用于處理或傳送處理器輸出的幀的過程。首先,在塊710中,翻轉(zhuǎn)第一字段指示符,使得,指針指向其他存儲(chǔ)器,作為處理器的第一或下一字段。然后,在塊720中,有效字段V被復(fù)位為0,表示該數(shù)據(jù)不再有效(幀已被分配出去,并且該數(shù)據(jù)不表示當(dāng)前被處理的幀)。塊725測(cè)試尾字段T是否被置位(T=1),以表示這是特定數(shù)據(jù)流的尾幀。如果是,那么控制進(jìn)至塊740,表示過程被完成。如果不是,那么,在塊730中,找到連續(xù)的下一幀(通過“下一個(gè)”字段中的指針),并使該幀的頭比特或標(biāo)志H被置位,以表示它是處理器中當(dāng)前數(shù)據(jù)流的第一幀。然后,離開塊730,如塊740所示,完成標(biāo)志的設(shè)置。
圖12舉例示出了本發(fā)明的系統(tǒng),說明了如上所述的具有圖10中的邏輯的完成單元是如何容納多個(gè)數(shù)據(jù)流的。N個(gè)處理器以及分配器112和完成單元工作了一段時(shí)間,因此,圖12表示完成單元的一部分(尤其是標(biāo)記存儲(chǔ)器)中所存儲(chǔ)的數(shù)據(jù)的瞬間狀態(tài)。如該圖中所示,標(biāo)記排隊(duì)與眾多的標(biāo)記存儲(chǔ)器連接,N個(gè)處理器中的每個(gè)處理器都有兩個(gè)標(biāo)記存儲(chǔ)器。這些處理器中的每一個(gè)處理器還與一個(gè)輸出緩沖器(有時(shí)稱為就緒FCB頁)相關(guān),用于處理后、正等待傳輸?shù)饺齻€(gè)所示的循環(huán)裝置的幀。與每個(gè)標(biāo)記存儲(chǔ)器對(duì)相關(guān)的是第一標(biāo)記存儲(chǔ)器,以指示首先接收到哪個(gè)標(biāo)記存儲(chǔ)器(并且,當(dāng)這兩個(gè)標(biāo)記存儲(chǔ)器都有效時(shí),第一標(biāo)記代表處在就緒FCB頁緩沖器的標(biāo)記,而第二或后來接收到的標(biāo)記代表當(dāng)前在相應(yīng)處理器中被處理的標(biāo)記)。本圖中示出了5個(gè)單獨(dú)的數(shù)據(jù)流,盡管在任何給定時(shí)刻通過的數(shù)據(jù)流的個(gè)數(shù)取決于系統(tǒng)(尤其是其容量和網(wǎng)絡(luò)業(yè)務(wù)量)并且隨時(shí)間而變化。本例中,10個(gè)處理器被標(biāo)記為處理器0-9,而標(biāo)記存儲(chǔ)器被標(biāo)記為處理器0所用的存儲(chǔ)器M01和M02至處理器9所用的標(biāo)記存儲(chǔ)器M91和M92,但是處理器的個(gè)數(shù)是一個(gè)設(shè)計(jì)選擇并可以變化(如果需要的話)。標(biāo)識(shí)符為A的第一數(shù)據(jù)流在標(biāo)記存儲(chǔ)器M01中起動(dòng),如標(biāo)記存儲(chǔ)器M01(以及處理器0的相應(yīng)參考)表示一連串?dāng)?shù)據(jù)流的頭的指示(H=1)所示。標(biāo)記存儲(chǔ)器M01的“下一個(gè)”字段N指向標(biāo)記存儲(chǔ)器M21,以表示處理器2正在處理與該數(shù)據(jù)流相關(guān)的下一信息單元。標(biāo)記存儲(chǔ)器M21的“下一個(gè)”字段指向標(biāo)記存儲(chǔ)器M52,它表示處理器5具有該數(shù)據(jù)流的下一部分。標(biāo)記存儲(chǔ)器M52的設(shè)置尾字段表示這是在N個(gè)處理器中當(dāng)前正被處理的這一數(shù)據(jù)流的最后部分。本例中的數(shù)據(jù)流次序用從標(biāo)記存儲(chǔ)器M01指向標(biāo)記存儲(chǔ)器M21的箭頭A1和從標(biāo)記存儲(chǔ)器M21指向標(biāo)記存儲(chǔ)器M52的箭頭A2來表示,以說明數(shù)據(jù)流的單元之間的邏輯連接(這些箭頭邏輯上表示“下一個(gè)”字段中的指針,而物理上在實(shí)際實(shí)現(xiàn)中并不存在)。類似地,從標(biāo)記存儲(chǔ)器M02到標(biāo)記存儲(chǔ)器M11的數(shù)據(jù)流通過箭頭A3來表示同一數(shù)據(jù)流的次序(盡管是一個(gè)與結(jié)合標(biāo)記存儲(chǔ)器M01、M21和M52所述不同的數(shù)據(jù)流)。第三數(shù)據(jù)流用與標(biāo)記存儲(chǔ)器M31和M42有關(guān)的箭頭A4來表示,而第四數(shù)據(jù)流用標(biāo)記存儲(chǔ)器M71與M72之間的箭頭A5來表示。最終,第五數(shù)據(jù)流在沒有箭頭的標(biāo)記存儲(chǔ)器M41中表示,這是因?yàn)?,它是目前只包括單一?biāo)記存儲(chǔ)器的數(shù)據(jù)流。這一標(biāo)記存儲(chǔ)器M41既是該數(shù)據(jù)流的頭又是尾,且沒有“下一個(gè)”字段,這是因?yàn)?,并不存在與這一數(shù)據(jù)流相關(guān)的其他標(biāo)記存儲(chǔ)器。
應(yīng)當(dāng)記住,當(dāng)存在與單個(gè)處理器相關(guān)的兩個(gè)標(biāo)記存儲(chǔ)器時(shí),標(biāo)記存儲(chǔ)器之一表示存儲(chǔ)在緩沖器(有時(shí)稱為就緒FCB頁)中的已完成或處理后的信息單元,該信息單元準(zhǔn)備從處理集合體傳送到適當(dāng)?shù)难h(huán)單元以用于傳輸,根據(jù)情況可以是上循環(huán)或是下循環(huán),向上傳送是指?jìng)魉偷浇涌谠O(shè)備,而向下傳送是指?jìng)魉突氐綌?shù)據(jù)傳輸網(wǎng)絡(luò)。在這種情況下,處理器0、處理器4和處理器7包括了在這兩個(gè)相關(guān)的標(biāo)記存儲(chǔ)器中的數(shù)據(jù)。與各就緒FCB頁相關(guān)的還有一個(gè)UP字段(表示這是向上頁還是向下頁),以及一個(gè)關(guān)于(在向下頁情況下)幀是發(fā)向目標(biāo)端口還是發(fā)向普通端口的指示符,這樣可以判斷是將向下頁發(fā)送到向下目標(biāo)端口循環(huán)裝置還是發(fā)送到普通端口循環(huán)裝置。如果處理器0的較早接收到的幀是標(biāo)記存儲(chǔ)器M02,并且這既是數(shù)據(jù)流的頭又是上循環(huán)裝置為處理器集合體及其緩沖器輸出的下一傳輸所選擇的向上幀,那么,從就緒FCB頁中取出FCB頁及相關(guān)數(shù)據(jù)字段,從而將信息送到上循環(huán)裝置。然后,切換第一標(biāo)記指示符,以表示處理器1的其他標(biāo)記存儲(chǔ)器M01目前是第一個(gè)標(biāo)記存儲(chǔ)器,并且將標(biāo)記存儲(chǔ)器M02的有效字段V置為0,表示這一標(biāo)記存儲(chǔ)器不再是激活的或有效的而相關(guān)的FCB頁的有效字段VF被復(fù)位到0。
本發(fā)明可以支持新數(shù)據(jù)流,而不必?cái)_亂現(xiàn)有的數(shù)據(jù)流并且無需事先知道新數(shù)據(jù)流。代表新數(shù)據(jù)流(例如來自處理單元之一的關(guān)于其狀態(tài)的消息)的分組只是與其標(biāo)識(shí)數(shù)據(jù)一起被存儲(chǔ),而不必參考另一個(gè)數(shù)據(jù)流。如果它沒有標(biāo)識(shí)符,將不會(huì)與任一設(shè)置了“無標(biāo)記”字段的現(xiàn)有數(shù)據(jù)流(隨時(shí)可以傳輸?shù)南?的標(biāo)識(shí)符相匹配。
本發(fā)明還考慮到了刷新命令,以便將通過使系統(tǒng)按完成的幀被接收時(shí)的次序處理完成的幀以按相應(yīng)的次序處理數(shù)據(jù)流的操作覆蓋,從而可以忽略標(biāo)記字段的束縛(下一指針和在訪問轉(zhuǎn)發(fā)幀的循環(huán)裝置之前給定幀是頭的要求)。這可以通過將“無標(biāo)記字段”強(qiáng)加給FCB頁來實(shí)現(xiàn)。
單個(gè)數(shù)據(jù)流將一直保持阻塞,直到處理完該數(shù)據(jù)流的頭,這是因?yàn)?,在正常運(yùn)行中(沒有刷新選擇時(shí)),只有作為消息流的頭的幀才會(huì)被完成單元考慮發(fā)送到循環(huán)裝置。然而,由于各數(shù)據(jù)流都有各自的頭,因此,一個(gè)數(shù)據(jù)流可能被阻塞,而其他數(shù)據(jù)可以繼續(xù)進(jìn)行處理并在沒有中斷或障礙以及沒有干擾的情況下將完成的信息單元發(fā)送到循環(huán)裝置。這對(duì)單個(gè)數(shù)據(jù)流被停止(例如處理器出問題或無法處理單個(gè)數(shù)據(jù)流的一個(gè)單元)而其他數(shù)據(jù)流不應(yīng)被停止的情況尤其有用。否則,在該單個(gè)數(shù)據(jù)流阻塞被排除之前整個(gè)處理都將會(huì)停止。
當(dāng)然,對(duì)熟悉相關(guān)技術(shù)的人員而言,縱觀本優(yōu)選實(shí)施方式的以上描述,并參照附圖,還將看到本發(fā)明的許多修改。例如,實(shí)現(xiàn)分類器的硬件的實(shí)際類型可以有多種設(shè)計(jì)選擇,并且一些所描述的具體選擇取決于消息內(nèi)容和消息的壓縮方法以及需進(jìn)行的處理。在不違背本發(fā)明的思想的前提下,還可以對(duì)系統(tǒng)的實(shí)現(xiàn)方式以及系統(tǒng)所能處理的消息結(jié)構(gòu)作出許多修改。所存儲(chǔ)的標(biāo)記可以按其他方法而不根據(jù)消息的內(nèi)容來產(chǎn)生,或者,可以只是由分配器所標(biāo)識(shí)的數(shù)據(jù)流的連續(xù)編號(hào)。在不違背本發(fā)明的思想的前提下,還可以很好地采用本系統(tǒng)的許多其他修改方式和改進(jìn)方式,并且,無需相應(yīng)地使用其他相關(guān)的特性就能得到本發(fā)明的某些優(yōu)點(diǎn)。因此,本實(shí)施方式的以上描述應(yīng)當(dāng)認(rèn)為只不過是本發(fā)明的原理的說明,而并不局限于此。
權(quán)利要求
1.一種設(shè)備,包括一個(gè)半導(dǎo)體襯底;構(gòu)造于該襯底上的N個(gè)處理單元,其中N>1;構(gòu)造于所述襯底上的第一內(nèi)部數(shù)據(jù)存儲(chǔ)器,所述數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)可由所述N個(gè)處理單元訪問的信息;一個(gè)操作上與N個(gè)處理單元連接的分配器,用于接收輸入信息單元和將輸入信息單元發(fā)送到N個(gè)處理單元之一;一個(gè)與分配器連接的分類器,所述分類器包括一個(gè)比較單元,用于確定輸入信息單元的數(shù)據(jù)格式,和用于產(chǎn)生輸入信息單元的輸出指示符以及該輸入信息單元的起始地址并將它們存儲(chǔ)于內(nèi)部數(shù)據(jù)存儲(chǔ)器中,其中所述輸出指示符指示該輸入信息單元的數(shù)據(jù)格式,這些指示符和起始地址在N個(gè)信息處理單元之一處理輸入信息期間對(duì)該N個(gè)處理單元之一可用,并用于輸入信息單元的處理過程中;以及位于所述半導(dǎo)體襯底上并且在操作上與N個(gè)處理單元相連的完成單元,用于接收由N個(gè)處理單元之一處理的信息單元。
2.如權(quán)利要求1所述類型的設(shè)備,其特征在于比較單元包括一種對(duì)輸入信息數(shù)據(jù)中所含的虛擬局域網(wǎng)字段的測(cè)試,而所產(chǎn)生的輸出指示符包括一種用于標(biāo)識(shí)輸入信息單元中存在虛擬局域網(wǎng)字段的標(biāo)識(shí)符。
3.如權(quán)利要求1或2的設(shè)備,其特征在于分類器包括構(gòu)造于襯底上的多個(gè)硬件裝置。
4.如權(quán)利要求1、2或3所述類型的設(shè)備,其特征在于輸出指示符包括一些用于標(biāo)識(shí)輸入信息單元的類型及其第2層的壓縮技術(shù)的指示符。
5.如權(quán)利要求1、2、3或4所述類型的設(shè)備,其特征在于指示符包括缺省代碼入口點(diǎn)。
6.如權(quán)利要求1至5任一所述類型的設(shè)備,其特征在于分類器包括一種用于確定基于由分類器所確定的輸入信息單元的類型及其壓縮技術(shù)的代碼入口點(diǎn)的系統(tǒng)。
7.如權(quán)利要求1至6任一所述類型的設(shè)備,其特征在于分類器包括一種用于確定缺省代碼入口點(diǎn)和基于輸入信息單元的類型的代碼入口點(diǎn)的系統(tǒng)。
8.如權(quán)利要求7所述類型的設(shè)備,其特征在于該設(shè)備還包括一個(gè)用于從缺省代碼入口點(diǎn)和基于輸入信息單元的類型的代碼入口點(diǎn)中作出選擇的選擇器。
9.如權(quán)利要求8所述類型的設(shè)備,還包括一種用于標(biāo)識(shí)虛擬局域網(wǎng)信息是否包含在輸入信息單元中的系統(tǒng)。
10.如權(quán)利要求1至9任一所述類型的設(shè)備,其特征在于指示符還包括被分配了輸入信息單元的N個(gè)處理單元之一的身份。
11.如權(quán)利要求10所述類型的設(shè)備,還包括一種標(biāo)志,用于指示處理后的信息單元要按所述處理后的信息單元被接收時(shí)的次序從襯底發(fā)出,其中所述完成單元響應(yīng)該標(biāo)志以便當(dāng)N個(gè)處理單元之一完成對(duì)信息單元的處理時(shí)分配所述處理后的信息單元。
12.如權(quán)利要求11所述類型的設(shè)備,其特征在于分類器包括一種系統(tǒng),用于產(chǎn)生指示其數(shù)據(jù)流的各輸入信息單元的標(biāo)識(shí)符并將其存儲(chǔ)在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,和用于將來自同一數(shù)據(jù)流的后續(xù)信息單元與來自同一數(shù)據(jù)流的較早信息單元鏈接,其中處理器中較早的信息單元被標(biāo)記為特定數(shù)據(jù)流中的第一信息單元,并且,來自處理單元的信息單元的傳輸局限于被標(biāo)記為該特定數(shù)據(jù)流的第一信息單元的那些信息單元。
13.如權(quán)利要求1至12任一所述類型的設(shè)備,其特征在于分配單元還依次將各信息單元的標(biāo)識(shí)符以及為進(jìn)行處理而被分配了該信息單元的處理單元的身份存儲(chǔ)于一個(gè)隊(duì)列中;并且,其中,完成單元還與該順序隊(duì)列連接,并利用分配器所分配的各信息單元的標(biāo)識(shí)符以及被分配了該信息單元的處理單元的身份,以便按與信息單元被接收時(shí)的次序相同的次序來組合處理后的信息單元。
14.如權(quán)利要求13所述類型的設(shè)備,其特征在于該設(shè)備還包括一種信號(hào),用于覆蓋該次序并按信息單元被完成的次序?qū)⑻幚砗蟮男畔卧l(fā)送到網(wǎng)絡(luò)。
15.一種處理輸入信息單元的方法,包括以下步驟在分配器處接收輸入信息單元;將輸入信息單元從分配器發(fā)送到多個(gè)處理器之一以進(jìn)行處理;當(dāng)將信息單元從分配器發(fā)送到多個(gè)處理器之一時(shí),從輸入信息單元中讀取選定的比特;對(duì)照已知的標(biāo)識(shí)輸入信息單元的預(yù)定類型的指示符測(cè)試來自輸入信息單元的讀取比特,以標(biāo)識(shí)輸入信息單元的類型和協(xié)議,或者標(biāo)識(shí)輸入信息單元不符合輸入信息單元的任何預(yù)定標(biāo)識(shí)類型;和根據(jù)來自輸入信息單元的比特的測(cè)試的結(jié)果,存儲(chǔ)輸入信息單元的類型的指示符以及關(guān)于輸入信息單元的其他信息;和在多個(gè)處理單元之一中,在進(jìn)行輸入信息單元的處理時(shí),將利用所存儲(chǔ)的指示符和其他所存儲(chǔ)的關(guān)于輸入信息單元的信息。
16.包括權(quán)利要求15的步驟的方法,其特征在于產(chǎn)生指示符和存儲(chǔ)指示符的步驟在輸入信息單元正被發(fā)送到多個(gè)處理器之一時(shí)出現(xiàn),這樣,當(dāng)多個(gè)處理器之一處理輸入信息單元時(shí),指示符和其他信息已被確定和存儲(chǔ),并且該多個(gè)處理器之一在處理該輸入信息單元時(shí)可利用這些指示符和關(guān)于輸入信息單元的其他信息。
17.包括權(quán)利要求15或16的步驟的方法,還包括根據(jù)輸入信息單元的內(nèi)容產(chǎn)生用于進(jìn)一步處理輸入信息單元的起始地址的步驟,并且在多個(gè)處理單元之一中利用所存儲(chǔ)的指示符的步驟包括利用起始地址。
18.包括權(quán)利要求15、16或17的步驟的方法,其特征在于讀取和測(cè)試的步驟用硬件來完成,據(jù)此,這一過程可以以比通過執(zhí)行一系列存儲(chǔ)的指令來完成讀取和測(cè)試更少的處理周期來完成。
19.包括權(quán)利要求18的步驟的方法,其特征在于用硬件來完成輸入信息單元的類型的標(biāo)識(shí)和存儲(chǔ)這些指示符的步驟在兩個(gè)機(jī)器周期內(nèi)完成,據(jù)此,在多個(gè)處理單元之一中利用指示符的步驟會(huì)比通過按次序執(zhí)行一系列編程的指令來完成測(cè)試時(shí)更早出現(xiàn)。
20.如權(quán)利要求19所述類型的處理信息單元的方法,其特征在于測(cè)試和存儲(chǔ)輸入信息單元的指示符的步驟與在多個(gè)處理單元之一中接收來自分配器的輸入信息單元的步驟相互重疊。
21.包括權(quán)利要求15至20任一的步驟的方法,還包括如下步驟產(chǎn)生和存儲(chǔ)輸入信息單元的指示符;與該標(biāo)識(shí)符相關(guān)聯(lián)地存儲(chǔ)被分配了該信息單元的處理單元的身份;和利用該標(biāo)識(shí)符和被分配了信息單元的處理單元的身份,按信息單元被接收的次序來發(fā)送處理后的信息單元。
22.包括權(quán)利要求21的步驟的方法,還包括通過將無標(biāo)記標(biāo)志包含于幀中來響應(yīng)處理單元所產(chǎn)生的幀的步驟。
23.如權(quán)利要求22所述類型的處理信息單元的方法,其特征在于系統(tǒng)通過將幀傳送到網(wǎng)絡(luò)而不作進(jìn)一步存儲(chǔ)來響應(yīng)無標(biāo)記標(biāo)志的幀。
24.一種用于標(biāo)識(shí)輸入幀和為進(jìn)一步處理幀而提供與該幀有關(guān)的指示符的方法,這種方法的步驟包括通過將輸入幀的一部分與表示壓縮類型和協(xié)議類型的預(yù)定內(nèi)容進(jìn)行比較,從輸入幀確定壓縮類型和協(xié)議類型;與各輸入幀相關(guān)地產(chǎn)生和存儲(chǔ)該輸入幀的壓縮類型和協(xié)議類型的指示符;確定和存儲(chǔ)輸入幀的第3層標(biāo)題的位置;和根據(jù)所確定的協(xié)議類型和壓縮方法,確定和存儲(chǔ)進(jìn)一步處理該輸入幀的起點(diǎn),據(jù)此,在進(jìn)一步處理該輸入幀時(shí)可使用所述位置和起點(diǎn)。
25.包括權(quán)利要求24的步驟的用于確定輸入幀的特性的方法,其特征在于確定用于進(jìn)一步處理的起點(diǎn)的步驟包括如下步驟從輸入幀確定缺省代碼入口點(diǎn),然后,利用輸入幀協(xié)議和壓縮方法來確定針對(duì)壓縮和協(xié)議的組合是否已存儲(chǔ)了所存儲(chǔ)的控制入口點(diǎn),如果是,那么用所存儲(chǔ)的控制入口點(diǎn)作為進(jìn)一步處理的起始點(diǎn),否則,用缺省的代碼入口點(diǎn)作為進(jìn)一步處理的起始點(diǎn)。
26.一種用于從網(wǎng)絡(luò)中接收并處理不同格式的數(shù)據(jù)分組的設(shè)備,包括多個(gè)處理器,各處理器都相互獨(dú)立地進(jìn)行操作,用于處理數(shù)據(jù)分組和提供基于輸入數(shù)據(jù)分組的輸出數(shù)據(jù)分組;一個(gè)與這些處理器連接的分配單元,用于接收來自網(wǎng)絡(luò)的數(shù)據(jù)分組和將分組分配給多個(gè)獨(dú)立處理器之一;一個(gè)與分配單元連接的分類裝置,用于接收分組和確定其協(xié)議和壓縮技術(shù)以及處理單元進(jìn)一步處理幀的起始地址,該分類裝置包括根據(jù)幀的一部分來確定壓縮技術(shù)的邏輯;確定在幀中存在虛擬局域網(wǎng)信息的邏輯;和包括壓縮類型和用于進(jìn)一步處理的起始地址的各幀的輸出。
27.如權(quán)利要求26所述類型的設(shè)備,其特征在于分類器包含在硬件中,而沒有被存儲(chǔ)的程序。
28.如權(quán)利要求26所述類型的設(shè)備,其特征在于分類發(fā)生在兩個(gè)周期內(nèi),這樣,處理單元之一可以在幀被分配單元分配后的兩個(gè)周期內(nèi)開始對(duì)幀的進(jìn)一步處理。
29.如權(quán)利要求26所述類型的設(shè)備,其特征在于起始地址這樣來確定,即從幀中生成缺省起始地址,并且使用該缺省地址作為用于處理幀的起始地址,除非針對(duì)分類系統(tǒng)所確定的壓縮方法和協(xié)議存儲(chǔ)了不同的起始地址。
30.如權(quán)利要求26所述類型的設(shè)備,其特征在于該設(shè)備還包括一種處理系統(tǒng),用于處理不是從網(wǎng)絡(luò)接收到的新信息單元,這種處理系統(tǒng)給新信息單元添加一個(gè)記號(hào),指示這種新信息單元不是從網(wǎng)絡(luò)接收到的。
31.一種設(shè)備,用于分析具有可變協(xié)議和壓縮的信息幀以及用于提供用于處理該幀的起始位置和到處理該幀的初始指令的指針,該設(shè)備包括一個(gè)比較器,用于查看幀的預(yù)定字節(jié)并判斷這些字節(jié)是表示長(zhǎng)度還是協(xié)議;用于確定該幀的協(xié)議和壓縮系統(tǒng)的邏輯;利用協(xié)議和壓縮系統(tǒng)來確定用于處理該幀的起始位置和到用于處理該幀的初始指令的指針。
全文摘要
數(shù)據(jù)處理(例如對(duì)數(shù)據(jù)分組或幀進(jìn)行交換或路由選擇)系統(tǒng)中的一種用于幀協(xié)議分類和處理的方法和系統(tǒng)。本發(fā)明包括根據(jù)預(yù)定的測(cè)試分析幀的一部分,然后存儲(chǔ)分組的關(guān)鍵特征,用于隨后的幀處理。幀(或輸入信息單元)的關(guān)鍵特征包括該幀中所用的第3層協(xié)議的類型,第2層壓縮技術(shù),起始指令地址,指示該幀是否使用虛擬局域網(wǎng)的標(biāo)志,和該幀所屬的數(shù)據(jù)流的身份。大多數(shù)分析最好利用硬件來實(shí)現(xiàn),這樣,可以快速地在統(tǒng)一的時(shí)間段內(nèi)完成分析。然后,網(wǎng)絡(luò)處理集合體在幀的處理過程中可以使用所存儲(chǔ)的幀的特征。處理器用起始指令地址和第3層標(biāo)題的起點(diǎn)位置以及幀類型的標(biāo)志進(jìn)行了預(yù)處理。也就是說,根據(jù)幀的類型,處理器利用該指令地址或代碼入口點(diǎn)在合適的位置開始對(duì)幀進(jìn)行處理。還可以依次堆積一些附加的指令地址并在分支處依次使用,以免進(jìn)行附加測(cè)試和分支說明。此外,構(gòu)成數(shù)據(jù)流的幀還可以按它們被接收時(shí)同樣的次序被處理和轉(zhuǎn)發(fā)。
文檔編號(hào)H04L12/28GK1433543SQ0081883
公開日2003年7月30日 申請(qǐng)日期2000年12月21日 優(yōu)先權(quán)日2000年1月7日
發(fā)明者布萊恩·米切爾·巴斯, 讓·路易斯·卡爾威格納, 高登·泰勒·戴維斯, 安托尼·馬特奧·加羅, 馬克·海德斯, 斯蒂芬·肯尼斯·詹金斯, 羅斯·伯伊德·利文斯, 邁克爾·斯蒂芬·西格爾, 法布里斯·讓·威爾布蘭肯 申請(qǐng)人:國際商業(yè)機(jī)器公司