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

能夠使用設(shè)備向量路由多播數(shù)據(jù)分組的集成電路的制作方法

文檔序號:7948336閱讀:212來源:國知局
專利名稱:能夠使用設(shè)備向量路由多播數(shù)據(jù)分組的集成電路的制作方法
技術(shù)領(lǐng)域
本公開內(nèi)容涉及一種能夠通過使用設(shè)備向量路由多播數(shù)據(jù)分組的集成電路。
背景技術(shù)
在傳統(tǒng)網(wǎng)絡(luò)布置中,交換機(jī)用來允許在其它交換機(jī)和耦合到該交換機(jī)的計算機(jī)節(jié)點(diǎn)之間進(jìn)行通信與數(shù)據(jù)交換。交換機(jī)可以有多個端口,每個端口耦合到一個交換機(jī)或者更多的計算機(jī)節(jié)點(diǎn)。到達(dá)的分組經(jīng)由路由機(jī)制被路由到一個或多個端口。多個交換機(jī)可以被堆棧在一起從而為另外的計算機(jī)節(jié)點(diǎn)提供另外的網(wǎng)絡(luò)連接性。在一些情況下,一個或多個分組可以被指定給多個端口,包括通過一個或多個交換機(jī)的端口。在傳統(tǒng)數(shù)據(jù)存儲布置中,為多個端口所指定的分組的每個實例在存儲器中必須被復(fù)制并且被傳送到指定端口。傳統(tǒng)網(wǎng)絡(luò)布置不能有效處理被指定給多個端口的分組。并且,在傳統(tǒng)網(wǎng)絡(luò)布置中,用于數(shù)據(jù)分組的每個復(fù)制的路由信息必須被存儲在存儲器中,這可能會消耗大量的存儲器資源。不消耗存儲器資源,則傳統(tǒng)網(wǎng)絡(luò)布置不能為被指定給多個端口的分組提供路由信息。


隨著下面詳細(xì)描述進(jìn)行并且參考附圖,所要求主題的實施例的特征和優(yōu)點(diǎn)將變得明顯,在附圖中相同的標(biāo)號表示相同的部分,并且其中圖1是說明一個系統(tǒng)實施例的圖;圖2是說明一個堆棧式交換機(jī)系統(tǒng)中的多個交換機(jī)的圖;圖3是說明根據(jù)一個實施例的示范性設(shè)備到達(dá)能力表的圖;圖4A是說明圖1的系統(tǒng)的集成電路的示范性操作的圖;圖4B是說明圖1的系統(tǒng)的集成電路的圖;圖5是說明圖4的集成電路的示范性操作和示范性電路的圖;和圖6是示出根據(jù)實施例的示范性操作的流程圖。
雖然參考說明性實施例進(jìn)行下列詳細(xì)描述,但是許多備選、修改和變化對于本領(lǐng)域技術(shù)人員來說將是顯而易見的。因此,意圖是所要求的主題應(yīng)當(dāng)廣義地來看,并且只是像所附權(quán)利要求中闡述的那樣被定義。
具體實施例方式
圖1說明所要求主題的一個系統(tǒng)實施例100。系統(tǒng)100通??梢园ń粨Q機(jī)102A,它可以能夠與被表示為102B、102C、102D...102N的一個或多個外部設(shè)備通信。如在本文任一實施例中使用的,一個″設(shè)備″或者″多個設(shè)備″可以單獨(dú)地或者以組合形式包括例如交換機(jī)、路由器和/或計算機(jī)節(jié)點(diǎn)單元。在開始時應(yīng)該注意,如下的詳細(xì)說明將參考交換機(jī)102A進(jìn)行,可以假設(shè)如果設(shè)備102B、102C、102D...102N每一個都包括與交換機(jī)102A通信的一個或多個交換機(jī),那么這些設(shè)備可以按照與交換機(jī)102A類似的方式工作。交換機(jī)102A也可以能夠與一個或多個網(wǎng)絡(luò)節(jié)點(diǎn)單元、例如計算機(jī)節(jié)點(diǎn)單元(未示出)通信。如在本文任一實施例中使用的,術(shù)語″交換機(jī)″(例如交換機(jī)102A)可以被定義為這樣一種設(shè)備即它能夠從一個或多個設(shè)備中接收一個或多個數(shù)據(jù)分組和/或把一個或多個數(shù)據(jù)分組發(fā)送到一個或多個設(shè)備。
交換機(jī)102A可以包括外殼,其中包括集成電路104、存儲器130、設(shè)備可達(dá)性表格(DRAT)140和多個端口0、1、2、...、N,隨后將更全面地提供其細(xì)節(jié)。如在本文任一實施例中使用的,″集成電路″是指半導(dǎo)體器件和/或微電子器件,諸如半導(dǎo)體集成電路芯片之類的。存儲器130可以包括下列存儲器類型中的一個或多個半導(dǎo)體固件存儲器、可編程存儲器、非易失性存儲器、只讀存儲器、電可編程存儲器、隨機(jī)存取存儲器、快閃存儲器、磁盤存儲器和/或光盤存儲器。附加地或者替換地,存儲器130可以包括其它和/或以后開發(fā)的計算機(jī)可讀存儲器類型。機(jī)器可讀固件程序指令可存儲在存儲器130中。這些指令可以由集成電路104訪問和執(zhí)行。當(dāng)由集成電路104執(zhí)行時,這些指令可以導(dǎo)致集成電路104執(zhí)行本文所述的由集成電路執(zhí)行的操作。
系統(tǒng)100可以包括分組交換網(wǎng)絡(luò)。交換機(jī)102A能夠與使用選定的分組交換網(wǎng)絡(luò)通信協(xié)議的一個或多個設(shè)備102B、102C、102D...102N通信。一種示范性通信協(xié)議可以包括以太網(wǎng)通信協(xié)議,它可以能夠許可使用傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)的通信。以太網(wǎng)協(xié)議可以遵守由電氣和電子工程師協(xié)會(IEEE)于2002年3月發(fā)布的、標(biāo)題為″IEEE 802.3標(biāo)準(zhǔn)″的以太網(wǎng)標(biāo)準(zhǔn)和/或此標(biāo)準(zhǔn)以后的版本或者與之兼容。替換地或者附加地,交換機(jī)102A能夠通過使用X.25通信協(xié)議與一個或多個設(shè)備102B、102C、102D...102N通信。X.25通信協(xié)議可以遵守由國際電信聯(lián)盟-電信標(biāo)準(zhǔn)化部門(ITU-T)發(fā)布的標(biāo)準(zhǔn)或者與之兼容。替換地或者附加地,交換機(jī)102A能夠通過使用幀中繼通信協(xié)議與一個或多個設(shè)備102B、102C、102D...102N通信。幀中繼通信協(xié)議可以遵守由國際電報電話咨詢委員會(CCITT)和/或美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)公布的標(biāo)準(zhǔn)或者與之兼容。替換地或者附加地,交換機(jī)102A能夠通過使用異步傳輸模式(ATM)通信協(xié)議與一個或多個設(shè)備102B、102C、102D...102N通信。ATM通信協(xié)議可以遵守由ATM論壇2001年8月發(fā)布的標(biāo)題為″ATM-MPLS網(wǎng)絡(luò)互通1.0″的ATM標(biāo)準(zhǔn)和/或此標(biāo)準(zhǔn)以后的版本或者與之兼容。當(dāng)然,這里同樣可設(shè)想不同的和/或之后開發(fā)的通信協(xié)議。
端口0、1、2、...、N每一個都可以包括客戶端口和/或堆棧式端口。端口可以包括能夠把一個設(shè)備耦合到另一設(shè)備的物理接口。如在本文使用的,堆棧式端口可以被定義為用于把交換機(jī)耦合到另一交換機(jī)的端口??蛻舳丝诳梢员欢x為用于把交換機(jī)耦合到網(wǎng)絡(luò)節(jié)點(diǎn)單元(即,除了交換機(jī)之外的設(shè)備)的端口。在一個實施例中,IC 104可以能夠把一個或多個數(shù)據(jù)分組路由到被耦合到堆棧式端口的另一交換機(jī)和/或被耦合到客戶端口的另一設(shè)備。如在本文任一實施例中使用的,″數(shù)據(jù)分組″可以包括碼元序列。
在詳細(xì)描述交換機(jī)102A和IC 104的細(xì)節(jié)之前,在下面提供對堆棧式交換機(jī)以及在堆棧式交換機(jī)之間傳送數(shù)據(jù)分組的簡要概述。如所述,交換機(jī)102A能夠經(jīng)由一個或多個堆棧式端口與其它交換機(jī)通信。多個交換機(jī)可以在交換機(jī)堆棧中耦合在一起。圖2是說明示范性交換機(jī)堆棧200的圖。堆棧200可以包含多個設(shè)備102A、102B、102C、102D、102E以及102F,并且堆棧200可以表示一個完整的交換機(jī)堆棧式布置或者它的一個示范性子集。在圖2中為了清晰起見已省略了交換機(jī)102A的細(xì)節(jié)(圖1中所示)。堆棧200中的每一個設(shè)備能夠直接或者經(jīng)由其它交換機(jī)與其它交換機(jī)通信。
諸如圖2中描述的堆棧200那樣的交換機(jī)的堆棧可用來把多個網(wǎng)絡(luò)節(jié)點(diǎn)單元集合在一起,以便允許例如統(tǒng)一管理交換機(jī)和增加可用網(wǎng)絡(luò)節(jié)點(diǎn)單元的數(shù)目。經(jīng)由耦合到交換機(jī)之一的客戶端口的計算機(jī),交換機(jī)的集合(堆棧的成員)可以被統(tǒng)一地管理。圖2中描述的交換機(jī)的集合可以作為單個大型交換機(jī)來操作。在開始時應(yīng)當(dāng)看到,堆棧200的特定拓?fù)浣Y(jié)構(gòu)可被形成來支持特定網(wǎng)絡(luò)環(huán)境的冗余要求和/或帶寬要求,因此,本公開內(nèi)容應(yīng)該被解釋為涵蓋交換機(jī)堆棧的任何拓?fù)浣Y(jié)構(gòu)。
堆棧200中的每個設(shè)備也可以能夠與一個或多個其它設(shè)備、例如計算機(jī)節(jié)點(diǎn)單元(未示出)通信。例如,在交換機(jī)102A的端口2上描述的″到達(dá)分組″可以由計算機(jī)節(jié)點(diǎn)單元生成。替換地或者附加地,圖2中描述的″到達(dá)分組″可以由堆棧200中未描述的另一交換機(jī)發(fā)送?!宓竭_(dá)分組″可以包括多播數(shù)據(jù)分組。如在本文任一實施例中使用的,″多播數(shù)據(jù)分組″例如可以包括要復(fù)制并轉(zhuǎn)發(fā)到堆棧200中的多個設(shè)備之中的一個以上設(shè)備的數(shù)據(jù)分組。
舉例來說,交換機(jī)102A的端口2上的″到達(dá)分組″可以包括多播數(shù)據(jù)分組。交換機(jī)102A可以能夠復(fù)制多播數(shù)據(jù)分組并通過將多播數(shù)據(jù)分組的拷貝經(jīng)由一個或多個端口轉(zhuǎn)發(fā)到堆棧200中的一個或多個交換機(jī)而路由多播數(shù)據(jù)分組。如圖2中說明的,多播數(shù)據(jù)分組的一個拷貝可以經(jīng)由端口4發(fā)送給設(shè)備102D并且經(jīng)由端口5和/或6發(fā)送給設(shè)備102B。設(shè)備102B可以包括″中間設(shè)備″,中間設(shè)備可以被定義為兩個或更多設(shè)備之間的設(shè)備。設(shè)備102D也可以能夠把在端口2上接收到的分組路由到設(shè)備102F(經(jīng)由端口1)。設(shè)備102F可以能夠經(jīng)由端口5路由被標(biāo)記為″出發(fā)分組″的分組。離開設(shè)備102F的出發(fā)分組的目的地可能為計算機(jī)節(jié)點(diǎn)和/或另一交換機(jī)。類似地,設(shè)備102B也可以能夠經(jīng)由端口5和/或7把分組的一個拷貝路由到設(shè)備102E。設(shè)備102E可以能夠經(jīng)由端口4路由被標(biāo)記為“出發(fā)分組”的分組。離開設(shè)備102C的出發(fā)分組的目的地可能為計算機(jī)節(jié)點(diǎn)和/或另一交換機(jī)。當(dāng)然,前述的說明只是作為實例提供,并且意圖是本公開內(nèi)容的交換機(jī)102A可以能夠?qū)?shù)據(jù)分組路由到堆棧中的一個設(shè)備或所有設(shè)備。
為了確定把數(shù)據(jù)分組路由到的適當(dāng)?shù)亩丝冢粨Q機(jī)102A可以包括設(shè)備可達(dá)性表格(DRAT)140。圖3描繪可被包括在交換機(jī)102A中的一個示范性DRAT 140(被標(biāo)記為″設(shè)備3的DRAT″,與圖2中所示的示范性堆棧200相應(yīng))。DRAT通??砂ㄒ粋€或多個條目,以確定在被包括在交換機(jī)中的多個端口之中的哪一個或者哪些端口應(yīng)該被使用來到達(dá)堆棧中的目標(biāo)交換機(jī)。DRAT 140的第一列302可包括一個或多個設(shè)備編號,例如,設(shè)備編號0到8。如對于DRAT 140所使用的″設(shè)備″可包括在交換機(jī)堆棧中的想要的目標(biāo)設(shè)備。多個路線304可以在DRAT140中被定義。例如,DRAT 140可以包含路線0、路線1、路線2、...、路線11。每個路線可以為目標(biāo)設(shè)備指定一個端口。例如,行306描述了每一個路線(路線0-路線11)指定到達(dá)目標(biāo)設(shè)備1的端口4。行308描述了路線0-路線5指定到達(dá)目標(biāo)設(shè)備2的端口5以及路線6-路線11指定到達(dá)目標(biāo)設(shè)備2的端口6。由每個路線(路線0-路線11)指定的一個或多個端口可以表示端口的隨機(jī)選擇。替換地,端口可以根據(jù)例如端口的帶寬被指定。因此,例如在用于目標(biāo)設(shè)備5的那行中,端口4由路線0-路線9提供,端口5由路線10提供,以及端口6由路線11提供。這例如可以反映這樣一種情況即,其中設(shè)備3的端口4擁有比端口5或者6更寬的帶寬。如果隨機(jī)數(shù)在一個封閉的可用隨機(jī)數(shù)集上是均勻分布的,則任意或者所有端口的業(yè)務(wù)均勻性可以是基于帶寬考慮,這可用來在一個多負(fù)載平衡的布置中分發(fā)業(yè)務(wù)。DRAT 140中的行數(shù)可以表示堆棧中的設(shè)備數(shù)目。在本例中,設(shè)備0、設(shè)備6與設(shè)備7對于交換機(jī)3可能是不能到達(dá)的或者不可用的,因此與這些交換機(jī)對應(yīng)的這些行可能具有零個條目。在操作中,通過生成隨機(jī)數(shù)來選擇包括在DRAT 140中的路線,IC 104可以選擇一個或多個端口用于轉(zhuǎn)發(fā)數(shù)據(jù)分組。
DRAT 140可以存儲在諸如存儲器130或其它存儲器(未示出)之類的存儲器中。被包括在交換機(jī)102A中的IC 104可以能夠確定在使用交換機(jī)102A的堆棧中的設(shè)備的數(shù)目和/或可用性,并且也可以能夠確定被包括在交換機(jī)102A中的一個或多個端口的可用性和/或性能。IC 104可以能夠更新和/或創(chuàng)建DRAT 140來反映堆棧和/或交換機(jī)端口中的當(dāng)前情況。替換地或者附加地,耦合到交換機(jī)102A的計算機(jī)節(jié)點(diǎn)單元可以能夠探測交換機(jī)102A和/或在使用交換機(jī)102A的堆棧中的一個或多個設(shè)備,并且可以確定更新和/或創(chuàng)建DRAT 140的信息。計算機(jī)節(jié)點(diǎn)單元可以對堆棧中的所有成員或者其子集擁有管理控制,并且可以能夠更新和/或創(chuàng)建與堆棧中的其它交換機(jī)相關(guān)的DRAT。
圖4A是說明圖1的系統(tǒng)的集成電路104的示范性操作400的圖表。再次參考圖1和2,被包括在交換機(jī)102A中的集成電路104通??梢阅軌蚪邮諄碜员话ㄔ诮粨Q機(jī)102A中的一個或多個端口的一個或多個分組,和/或把一個或多個數(shù)據(jù)分組發(fā)送給被包括在交換機(jī)102A中的一個或多個端口。在本文的至少一個實施例中,集成電路104可以能夠生成一個或多個設(shè)備向量,該設(shè)備向量可用來把一個或多個多播分組路由到交換機(jī)堆棧200中的一個或多個交換機(jī)。替換地,集成電路104可以能夠接收一個或多個設(shè)備向量(例如,來自堆棧200中的其它交換機(jī)),該設(shè)備向量可用來把一個或多個多播分組路由到交換機(jī)堆棧200中的一個或多個交換機(jī)。如本文使用的,″設(shè)備向量″可以被定義為代表要為之復(fù)制多播分組的至少一個設(shè)備的、碼元的超集。
在一個示范性實施例中,主設(shè)備向量412可包括位序列,每個位代表在給定堆棧中的相應(yīng)交換機(jī)。主設(shè)備向量412可以規(guī)定應(yīng)當(dāng)接收多播分組410的拷貝的一個或多個目標(biāo)設(shè)備,并且可以代表可能與多播分組410的每個拷貝有關(guān)的所有設(shè)備向量的超集。主設(shè)備向量412可能來源于另一設(shè)備,比如集成電路104外部的另一交換機(jī)。替換地,集成電路104可包括設(shè)備向量生成器電路(未示出),它可以能夠生成設(shè)備向量412來把多播數(shù)據(jù)分組410路由到一個或多個目標(biāo)設(shè)備?;谝炎R別的端口號和主設(shè)備向量412,集成電路104可以能夠生成至少一個附加設(shè)備向量,并且可以能夠直接將讀附加設(shè)備向量和多播分組410發(fā)送到已識別的端口。
圖4A中描述的操作通常可以針對如圖2所示的交換機(jī)堆棧200中的交換機(jī)102A的操作。對于圖4A的操作,假定交換機(jī)102A接收多播分組410,并且多播信息提供到交換機(jī)堆棧200中的設(shè)備2、5和8,用于分組的復(fù)制。
集成電路104可以生成或者可以從另一源接收形式為0000_0001_0010_0100的主設(shè)備向量412。在本例中,主設(shè)備向量412中的每個位可以表示交換機(jī)堆棧200中的一個設(shè)備。最低有效位可以代表交換機(jī)0,并且最高有效位可以代表交換機(jī)15。因此,在本例中,交換機(jī)堆棧中可能有16個交換機(jī),并且交換機(jī)2、5和8已經(jīng)被選擇用來接收分組410的拷貝。集成電路104(或其它電路,未示出)可以能夠生成隨機(jī)數(shù)414。在本例中,隨機(jī)數(shù)416可包括對應(yīng)于在DRAT 140中規(guī)定的路線編號的整數(shù)。因此,隨機(jī)數(shù)414例如可以是從0到11的整數(shù)。
基于隨機(jī)數(shù)414,集成電路104可以能夠生成對應(yīng)于在DRAT 140中的路線的端口號。例如,等于5的隨機(jī)數(shù)414對應(yīng)于DRAT 140中的路線5。集成電路104可以為主設(shè)備向量412中表示的每個交換機(jī)選擇與DRAT 140中的路線5對應(yīng)的端口。在本例中,隨機(jī)數(shù)414是5,并且設(shè)備向量412的位2(413)被設(shè)置,因此集成電路104可以選擇端口5(430)(對應(yīng)于路線5)。同樣地,因為設(shè)備向量412的位5(414)和8(415)被設(shè)置,所以集成電路104可以選擇端口4(420)來到達(dá)交換機(jī)5和交換機(jī)8。在本實施例中,對于給定的設(shè)備向量412,同一個隨機(jī)數(shù)414可以用于集成電路104的所有操作。
在本例中,可以為端口4(420)生成附加設(shè)備向量。設(shè)備向量412的位5(414)和8(415)可以被設(shè)置(即,等于1),選擇設(shè)備5和8來接收分組410的拷貝。集成電路104可以生成形式為0000_0001_0010_0000的新設(shè)備向量422(即,位5和8被設(shè)置),表示多播分組可以經(jīng)由端口4(420)向目標(biāo)為設(shè)備5和8發(fā)送。多播分組410和新設(shè)備向量422可以經(jīng)由端口4(420)直接地或者通過被包括在交換機(jī)堆棧中的一個或多個中間設(shè)備發(fā)送給設(shè)備5和8。如果使用一個或多個中間交換機(jī),則每個交換機(jī)可包括類似的電路并且按照與本文參考交換機(jī)102A描述的類似方式來操作,以便把多播分組路由到至少一個最終目的地。
也可以為端口5(430)生成附加設(shè)備向量。設(shè)備向量412的位2(413)可以被設(shè)置,選擇設(shè)備2來接收分組410的拷貝。集成電路104可以生成形式為0000_0000_0000_0100的新設(shè)備向量432,表示多播分組可以經(jīng)由端口5(430)向目標(biāo)為設(shè)備2發(fā)送。多播分組410和新設(shè)備向量432可以經(jīng)由端口5(430)直接地或者通過被包括在交換機(jī)堆棧中的一個或多個中間設(shè)備發(fā)送給設(shè)備2。如果使用一個或多個中間交換機(jī),則每個交換機(jī)可以包括類似的電路并且按照與這里參照交換機(jī)102A描述的類似方式來操作,以便把多播分組路由到至少一個最終目的地。
圖4B是更詳細(xì)地顯示圖1和2中的交換機(jī)102A的示范性集成電路104的圖450。集成電路(IC)104通??梢阅軌驈囊粋€或多個端口(被包括在交換機(jī)102A中)接收一個或多個數(shù)據(jù)分組和/或把一個或多個數(shù)據(jù)分組發(fā)送給一個或多個端口(被包括在交換機(jī)102A中)。IC104還可以能夠接收多播數(shù)據(jù)分組并把該多播數(shù)據(jù)分組和主設(shè)備向量412存儲在存儲器中。當(dāng)端口可用來發(fā)送數(shù)據(jù)時,IC 104也可以能夠把主設(shè)備向量412和多播數(shù)據(jù)分組從存儲器中出列,至少部分地根據(jù)主設(shè)備向量生成至少一個附加設(shè)備向量,并經(jīng)由讀端口把數(shù)據(jù)分組和附加設(shè)備向量發(fā)送到一個或多個外部設(shè)備。在一個示范性實施例中,IC 104能夠通過使用出列處理電路(將在下面描述)生成一個或多個設(shè)備向量,出列處理電路可用來在后存儲處理階段生成一個或多個設(shè)備向量,即不需要在存儲器中存儲附加設(shè)備向量。
IC 104可以接收多播數(shù)據(jù)分組410和主設(shè)備向量412。主設(shè)備向量412可以規(guī)定應(yīng)當(dāng)接收多播數(shù)據(jù)分組410的拷貝的一個或多個目標(biāo)設(shè)備。主設(shè)備向量412可以代表可能與多播數(shù)據(jù)分組410的每個拷貝有關(guān)的所有設(shè)備向量的超集。設(shè)備向量412可能來源于另一設(shè)備,比如IC 104外部的另一交換機(jī)。替換地,IC 104可包括設(shè)備向量生成器電路(未示出),它可以能夠生成主設(shè)備向量412以便把多播數(shù)據(jù)分組410路由到一個或多個目標(biāo)設(shè)備。主設(shè)備向量412和多播數(shù)據(jù)分組410可以在存儲器130中分別排隊在存儲單元142和144。
再一次簡要地參考圖1,多播數(shù)據(jù)分組的每個拷貝可以經(jīng)由多個端口0、1、2、...、N路由一個和多個目標(biāo)設(shè)備。在任何端口上出發(fā)的多播數(shù)據(jù)分組可以包括相關(guān)的設(shè)備向量,以便把給定端口上的多播數(shù)據(jù)分組適當(dāng)?shù)芈酚傻揭粋€或多個目標(biāo)設(shè)備。再一次參考圖4,IC 104可以包括與被包括在交換機(jī)102A中的每個端口0、1、2...N有關(guān)的端口隊列414A、414B、414C...414N。雖然端口隊列存儲器可以被包括在IC 104中,但是本文同樣可假設(shè)端口隊列存儲器可以共同地或者單獨(dú)地被包括在存儲器130中圖上未示出的其它存儲單元處。
IC 104可以包括能夠處理主設(shè)備向量412的隊列處理電路402,以便至少部分地確定用來把多播數(shù)據(jù)分組410轉(zhuǎn)發(fā)給另一設(shè)備的至少一個端口。隊列處理電路402也可以能夠把主設(shè)備向量412和相關(guān)的多播數(shù)據(jù)分組410排隊在存儲器中。如在本文任一實施例中使用的,″電路″可包括例如單獨(dú)或者以任意組合形式的硬連線電路、可編程電路、狀態(tài)機(jī)電路和/或可以存儲由可編程電路執(zhí)行的指令的固件。隊列處理電路402可以能夠處理主設(shè)備向量412,以便在多個設(shè)備之中確定哪一個或者哪些設(shè)備由主設(shè)備向量412被指定來轉(zhuǎn)發(fā)多播數(shù)據(jù)分組410。對于給定的設(shè)備,隊列處理電路可以能夠讀取DRAT 140,以便確定哪一個端口(或哪些端口)可用來到達(dá)一個或多個設(shè)備。一旦確定端口,隊列處理電路402就可以能夠把指針寫入一個或多個端口隊列中。例如,隊列處理電路402可以確定端口2和端口N可用來到達(dá)一個或多個特定的設(shè)備。隊列處理電路402可以把指針406寫在端口2的隊列(414C)中并且把指針408寫在端口N的隊列(414N)中。指針406和408可以指向存儲器130中可以存儲設(shè)備向量412的單元142。
出列處理電路404可以能夠確定端口是否可用來發(fā)送數(shù)據(jù)。如果端口是可用的,則出列處理電路404可以能夠為端口414A、414B、414C、...414N讀取端口隊列存儲器并在其中發(fā)現(xiàn)指針。出列處理電路404可以分別從由端口隊列存儲器中的一個或多個指針指向的存儲器130中的單元、例如從單元142和144讀取主設(shè)備向量412和數(shù)據(jù)分組410?;谠谧x取端口隊列存儲器時所識別的端口號以及主設(shè)備向量412,出列處理電路404可以能夠生成至少一個新設(shè)備向量422。出列處理電路可以能夠直接地發(fā)送新設(shè)備向量422和多播數(shù)據(jù)分組410到所識別的端口,即,不必在存儲器130中存儲新設(shè)備向量422。
圖5更詳細(xì)地說明圖4A和4B的IC 104的示范性操作以及示范性電路500。圖5的操作繼續(xù)了圖4A和4B的實例(并且因此可以對這些圖繼續(xù)進(jìn)行參考),并且通常針對堆棧200中的交換機(jī)102A的操作。對于圖5中的電路和它的操作,假設(shè)交換機(jī)102A接收多播數(shù)據(jù)分組并且該多播信息提供到交換機(jī)堆棧200中的設(shè)備2、5和8,用于數(shù)據(jù)分組的復(fù)制(例如,通過包括這樣規(guī)定的設(shè)備向量)。
IC 104可以生成或者可以從另一源接收形式為0000_0001_0010_0100的主設(shè)備向量412。在本例中,設(shè)備向量412中的每一位可以代表諸如交換機(jī)堆棧200那樣的堆棧中的一個設(shè)備。最低有效位可以代表交換機(jī)0,并且最高有效位可以代表交換機(jī)15。因此在本例中,交換機(jī)堆棧中可能有16個交換機(jī)。主設(shè)備向量512可被排隊(例如存儲)在存儲器130中。IC 104(或者其它電路,未示出)可以能夠生成隨機(jī)數(shù)414。在本例中,隨機(jī)數(shù)可以包括與在DRAT 140中規(guī)定的路線編號相對應(yīng)的整數(shù)。因此,隨機(jī)數(shù)414例如可以是從0到11的整數(shù)。隨機(jī)數(shù)414也可被存儲在存儲器130中。
隊列處理電路402可以包括主設(shè)備向量轉(zhuǎn)發(fā)引擎(PDVFE)電路517和隊列引擎電路412。主設(shè)備向量412和隨機(jī)數(shù)414可以用作PDVFB電路517的輸入。PDVFE 517可以能夠并行處理主設(shè)備向量412的每個位,以便以如下所述的方式生成多個中間端口向量。
PDVFE 517可以包括用于主設(shè)備向量412中的每個位的、端口號生成器電路504A、...504C、...504F、...504I、...。圖5只描述了用于位0、2、5和8的端口號生成器電路,然而,,應(yīng)當(dāng)看到,PDVFE517可以包括用于設(shè)備向量412中的每個位的類似電路。端口號生成器電路可以能夠讀取DRAT 140中的相應(yīng)行。因此,例如,可以對應(yīng)于設(shè)備向量412中的位2、又可以對應(yīng)于堆棧中的交換機(jī)2的端口號生成器電路504C可以能夠至少部分地讀取DRAT 140中對應(yīng)于交換機(jī)2的那行數(shù)據(jù)。根據(jù)隨機(jī)數(shù)512,端口號生成器電路可以能夠生成對應(yīng)于DRAT140中的路線的端口號。例如,假定隨機(jī)數(shù)是5,則這個數(shù)對應(yīng)于DRAT140中的路線5。端口號生成器電路可以為設(shè)備向量412中表示的每個交換機(jī)選擇與DRAT中的路線5對應(yīng)的端口。
因此,端口號生成器電路504A可以能夠讀取DRAT 140中對應(yīng)于交換機(jī)0的行。因為在本例中,交換機(jī)0對于交換機(jī)102A(交換機(jī)3)可能是不能到達(dá)或不可用的,所以該行可能包括空條目。因此,端口號生成器電路504A可以生成空值端口號。同時,因為在本例中設(shè)備向量412的位0未被設(shè)置(即,位0=0),所以端口號生成器電路504A可以生成空值或者0值。端口號電路504C可以能夠讀取DRAT中對應(yīng)于交換機(jī)2的那行。在本例中,隨機(jī)數(shù)414是5并且設(shè)備向量412的位2被設(shè)置,因此端口號生成器電路504C可以選擇端口5(對應(yīng)于路線5)。同樣地,端口號生成器504F可以選擇端口4,并且端口號生成器電路504I可以選擇端口4。在本實施例中,對于給定的設(shè)備向量511,同一隨機(jī)數(shù)512可以用于PDVFE 517的所有操作。
基于可能為設(shè)備向量412中的每個位所生成的端口號,端口向量電路502A、...502C、...、502F、...、502I、...的端口號可以能夠生成多個中間端口向量。端口向量可以包括位序列,每個位代表被包括在交換機(jī)102A中的端口。因此,例如,如果交換機(jī)102A包括26個端口,則每個中間端口向量可以是26位長。在本例中,因為端口號生成器電路504A生成空或者0端口號,所以端口向量電路502A的端口號可以生成沒有設(shè)置位的中間端口向量。因為端口號生成器電路504C生成端口號4,所以端口向量電路502C的端口號可以生成形式為...0_0001_0000的中間端口向量,其中最低有效位代表交換機(jī)102A的端口0,端口4包含設(shè)置位(即,位4=1)。類似地,并且繼續(xù)本例,端口向量電路502F的端口號可以生成形式為...0_0001_0000的中間端口向量。同樣地,因為端口號生成器電路504I生成端口號5,所以端口向量電路502I的端口號可以生成形式為...0_0010_0000的中間端口向量,表示端口5包含設(shè)置位。
可以由端口向量電路的每一個端口號生成的每一個中間端口向量可以被組合以生成端口向量515。在一個實施例中,中間端口向量可以被″或″運(yùn)算在一起以生成單端口向量515。為此,DVFE電路512可以包括″或″電路507C、..、507F、...、507I、...,它們可以能夠?qū)蓚€或兩個以上端口向量進(jìn)行″或″運(yùn)算,生成單端口向量515。如可以由或電路執(zhí)行的或運(yùn)算的結(jié)果可以生成形式為...0_0011_0000的端口向量515,表示端口4和5可用來傳送多播數(shù)據(jù)分組到堆棧中的其它交換機(jī)。
隊列引擎電路408可以能夠接收端口向量515并生成一個或多個指針。在本例中,指針可以放置在端口4的端口隊列存儲器(406E)中和端口5的端口隊列存儲器(406F)中,對應(yīng)于包括在示范性端口向量515中的設(shè)置位。隊列406E和406F中的指針可以指向存儲器130中保存設(shè)備向量412的位置。
出列處理電路404可以包括輔助設(shè)備向量轉(zhuǎn)發(fā)引擎(SDVFE)電路516和出列引擎電路412。設(shè)備向量511、隨機(jī)數(shù)512和端口號可以用作SDVFE電路516的輸入。SDVFE 516可以能夠并行處理設(shè)備向量412的每個位,以便以如下所述的方式生成新設(shè)備向量。出列引擎電路518可以能夠發(fā)現(xiàn)交換機(jī)102A中的多個端口之中的一個或多個端口是否可用來發(fā)送多播數(shù)據(jù)分組。如果端口可用,則出列電路518可以能夠讀取那個端口的端口隊列存儲器,讀取包括在端口存儲器中的指針,并且把端口號、多播數(shù)據(jù)分組、隨機(jī)數(shù)512和設(shè)備向量511出列到SDVFE電路516。
SDVFE 516可以包括用于設(shè)備向量511中的每個位的端口號生成器電路508A、...508C、...、508F、...508I、...。被包括在PDVFE 517中的端口號生成器電路504A、...504C、...、504F、...504I、...可以以類似于包括在SDVFE 516中的端口號生成器電路508A、...508C、...、508F、...508I、...的方式運(yùn)轉(zhuǎn)。圖5只描繪用于位0、2、5和8的端口號生成器電路,可是,應(yīng)該理解,SDVFE 516可以包括用于設(shè)備向量511中的每個位的類似電路。端口號生成器電路可以能夠讀取DRAT 140中的相應(yīng)行。因此,例如,可以對應(yīng)于設(shè)備向量412中的位2、又可以對應(yīng)于堆棧中的交換機(jī)2的端口號生成器電路508C可以能夠至少部分地讀取DRAT 140中對應(yīng)于交換機(jī)2的那行數(shù)據(jù)?;陔S機(jī)數(shù)414,端口號生成器電路可以能夠生成對應(yīng)于DRAT140中的路線的端口號。例如,仍然假定隨機(jī)數(shù)414是5,則這個數(shù)對應(yīng)于DRAT 140中的路線5。端口號生成器電路508A、...508C、...、508F、...508I、...可以為在設(shè)備向量412中表示的每個交換機(jī)選擇與DRAT中的路線5對應(yīng)的端口。
因此,端口號生成器電路508A可以能夠讀取DRAT 140中對應(yīng)于交換機(jī)0的那行。因為在本例中,交換機(jī)0對于交換機(jī)102A(交換機(jī)3)可能是不能到達(dá)或不可用的,所以那行可能包括空條目。因此,端口號生成器電路508A可以生成空值端口號。同時,因為在本例中設(shè)備向量412的位0未被設(shè)置(即,位0=0),所以端口號生成器電路508A可以生成空值或者0值。端口號電路508C可以能夠讀取DRAT中對應(yīng)于交換機(jī)2的行。在本例中,隨機(jī)數(shù)414是5并且設(shè)備向量412的位2被設(shè)置,因此端口號生成器電路508C可以選擇端口5(對應(yīng)于路線5)。同樣地,端口號生成器508F可以選擇端口4,并且端口號生成器電路504I可以選擇端口4。在本實施例中,對于給定的主設(shè)備向量412,同一隨機(jī)數(shù)414可以用于SDVFE 516的所有操作。
基于可以被出列電路518確定的端口號520和由端口號生成器電路508A、...508C、...、508F、...508I、...生成的、并且可以為設(shè)備向量412中的每個位生成的端口號,設(shè)備向量位設(shè)置邏輯電路510A、...、510C、...、510F、...、510I、...可以能夠生成多個中間設(shè)備向量。設(shè)備向量位設(shè)置邏輯電路510A、...、510C、...、510F、...、510I、...可以能夠確定端口號520和每個相應(yīng)的端口號生成器電路508A、...508C、...、508F、...508I、...生成的端口號之間的等同性。當(dāng)這些兩個編號之間存在匹配時,設(shè)備向量位設(shè)置邏輯電路510A、...、510C、...、510F、...、510I、...可以在其中生成的中間設(shè)備向量中設(shè)置相應(yīng)位。首先采用可以為端口4生成的新設(shè)備向量,對于位5和8,端口號生成器電路508F和508I每一個都生成端口號4(在上面以實例的方式描述的)。因為在本例中,端口號520是4(即,為端口4生成新設(shè)備向量),所以設(shè)備向量位設(shè)置位邏輯電路510F和510I可以分別生成設(shè)置了位5和8(即,位5=1,位8=1)的相應(yīng)的中間設(shè)備向量。在本例中,剩余的端口號生成器電路生成的端口號和端口號520之間不存在其它匹配,因此,剩余設(shè)備向量位設(shè)置邏輯電路中生成的設(shè)備中間向量可以包括所有的未設(shè)置位(即,全0)。
可以由每一個設(shè)備向量位設(shè)置邏輯電路510A、...、510C、...、510F、...、510I、...生成的每一個中間設(shè)備向量可以被組合以生成新設(shè)備向量。在一個實施例中,中間設(shè)備向量可以被″或″運(yùn)算在一起,以生成單個新設(shè)備向量524。為此,DVFE電路516可以包括或電路513A...513C、...513F、...、513I、...,它們可以能夠?qū)蓚€或兩個以上中間設(shè)備向量進(jìn)行或運(yùn)算,從而為端口4生成單個設(shè)備向量524。正如可以由或電路執(zhí)行的或運(yùn)算的結(jié)果可以生成形式為0000_0001_0010_0000的新設(shè)備向量524,表示多播數(shù)據(jù)分組經(jīng)由端口4向目標(biāo)為設(shè)備5和8發(fā)送。多播數(shù)據(jù)分組(它可以排隊在端口4的端口隊列存儲器中)和新設(shè)備向量524可以經(jīng)由端口4直接地或者通過包括在交換機(jī)堆棧中的一個或多個中間設(shè)備發(fā)送給設(shè)備5和8。如果使用一個或多個中間交換機(jī),則每個交換機(jī)可以包括類似的電路并且按照與本文參考交換機(jī)102A描述的類似方式來操作,以便把多播分組路由到至少一個最終目的地。
現(xiàn)在采用可以為端口5生成的新設(shè)備向量522,對于位2,端口號生成器電路508C生成端口號5(在上面以實例的方式描述的)。因為在本例中,端口號520是5(即,為端口5生成新設(shè)備向量),所以設(shè)備向量位設(shè)置位電路510C可以生成設(shè)置了位2(即,位2=1)的中間設(shè)備向量。在本例中,剩余的端口號生成器電路生成的端口號和端口號520之間不存在其它匹配,因此,剩余設(shè)備向量位設(shè)置邏輯電路中生成的設(shè)備中間向量可以包括所有的未設(shè)置位(即,全0)。
正如象端口4的實例那樣,可以由每一個設(shè)備向量位設(shè)置邏輯電路510A、...、510C、...、510F、...、510I、...生成的每一個設(shè)備向量可以被組合以生成新設(shè)備向量。在一個實施例中,中間設(shè)備向量可以或在一起,以生成單個新設(shè)備向量522。正如可以由或電路執(zhí)行的或運(yùn)算的結(jié)果可以生成形式為0000_0000_0000_0100的新設(shè)備向量522,表示多播數(shù)據(jù)分組經(jīng)由端口5向目標(biāo)為設(shè)備2發(fā)送。多播數(shù)據(jù)分組(它可排隊在端口5的隊列存儲器中)和新設(shè)備向量522可以經(jīng)由端口5直接地或者通過包括在交換機(jī)堆棧中的一個或多個中間設(shè)備發(fā)送到設(shè)備2。如果使用一個或多個中間交換機(jī),則每個交換機(jī)可以包括類似的電路并且按照與本文參考交換機(jī)102A描述的類似方式來操作,以便把多播分組路由到至少一個最終目的地。
圖6說明根據(jù)一個實施例可以執(zhí)行的示范性操作600。這些操作可以包括使用至少一個端口602與至少一個外部設(shè)備通信。這些操作還可以包括將多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器604中。多播數(shù)據(jù)分組可以包括要發(fā)向多個位置、例如到和/或通過交換機(jī)堆棧的多個位置的數(shù)據(jù)分組??梢耘c多播數(shù)據(jù)分組一起接收主設(shè)備向量,或者可以基于包括在多播數(shù)據(jù)分組中的路由信息來生成主設(shè)備向量。這些操作還可以包括從存儲器606中出列主設(shè)備向量。這些操作還可以至少部分地基于主設(shè)備向量608生成至少一個附加設(shè)備向量。這些操作還可以包含經(jīng)由至少一個端口610把附加設(shè)備向量和多播數(shù)據(jù)分組發(fā)送到至少一個外部設(shè)備。
因此,總起來說,一個設(shè)備實施例可以包括能夠使用至少一個端口與至少一個外部設(shè)備通信的集成電路(IC)。IC也可以能夠接收多播數(shù)據(jù)分組并把該多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中。IC還可以能夠從存儲器中出列主設(shè)備向量,至少部分地基于主設(shè)備向量生成至少一個附加設(shè)備向量,并且經(jīng)由至少一個端口把讀多播數(shù)據(jù)分組和至少一個附加設(shè)備向量發(fā)送到至少一個外部設(shè)備。
至少一個系統(tǒng)實施例可以包括能夠使用多個端口與一個或多個外部交換機(jī)通信的交換機(jī)。該交換機(jī)可以包括能夠使用至少一個端口與至少一個外部設(shè)備通信的集成電路(IC)。該IC還可以能夠接收多播數(shù)據(jù)分組并把該多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中。IC還可以能夠從存儲器中出列主設(shè)備向量,至少部分地基于主設(shè)備向量生成至少一個附加設(shè)備向量,并且經(jīng)由至少一個端口把該多播數(shù)據(jù)分組和至少一個附加設(shè)備向量發(fā)送到至少一個外部設(shè)備。
這些實施例的集成電路可以能夠以并行方式處理設(shè)備向量,這可用來提高設(shè)備的速度和數(shù)據(jù)吞吐量。例如,如果設(shè)備向量包括位序列,則序列中的每個位可以被同時處理。并且,在出列處理階段,基于主設(shè)備向量,這些實施例的集成電路可以能夠生成附加設(shè)備向量(例如圖5中的522和524)。附加設(shè)備向量可以在生成時直接轉(zhuǎn)發(fā)給設(shè)備堆棧中的一個或多個設(shè)備,而不需要干涉用于附加設(shè)備向量的存儲器寫操作。因此,可以減少或消除至少一個新設(shè)備向量的存儲器存儲空間,因為在出列處理電路中生成新設(shè)備向量并將其轉(zhuǎn)發(fā)到一個或多個裝置之前,可以壓縮新設(shè)備向量。這例如可以提供運(yùn)行時生成附加設(shè)備向量而不需要附加存儲器并且不需要附加存儲器操作。
如果多播數(shù)據(jù)分組至少部分地被預(yù)定到耦合到交換機(jī)102A的端口的設(shè)備(例如計算機(jī)節(jié)點(diǎn)),則IC 104可以能夠發(fā)送多播數(shù)據(jù)分組到那個設(shè)備而不必為那個復(fù)制生成附加設(shè)備向量。
這里采用的的術(shù)語和表達(dá)式是用作為說明而不是限制的術(shù)語,并且在這類術(shù)語和表達(dá)式的使用中,不打算排除所示出的和所描述的特征(或者其一些部分)的任何等價物,并且要意識到在權(quán)利要求范圍內(nèi)各種修改都是可能的。因此,權(quán)利要求要涵蓋所有這些等價物。
權(quán)利要求
1.一種設(shè)備,包括能夠通過使用至少一個端口與至少一個外部設(shè)備通信的集成電路(IC),所述IC還能夠接收多播數(shù)據(jù)分組并把所述多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中,所述IC還能夠從存儲器中出列所述主設(shè)備向量,至少部分地基于主設(shè)備向量生成至少一個附加設(shè)備向量,并且經(jīng)由至少一個所述端口把所述多播數(shù)據(jù)分組和至少一個所述附加設(shè)備向量發(fā)送到至少一個所述外部設(shè)備。
2.如權(quán)利要求1所述的設(shè)備,其中所述IC包括隊列處理電路,所述隊列處理電路能夠讀取設(shè)備可達(dá)性表格并生成端口向量,所述設(shè)備可達(dá)性表格包括至少一個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪一個所述端口由所述IC用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備,所述端口向量表示使用至少一個所述端口把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到至少一個所述外部設(shè)備。
3.如權(quán)利要求2所述的設(shè)備,其中所述主設(shè)備向量包括位序列,其中每個位代表相應(yīng)的所述外部設(shè)備,所述隊列處理電路包括能生成多個中間端口向量的設(shè)備向量轉(zhuǎn)發(fā)引擎電路,一個所述中間端口向量對應(yīng)所述設(shè)備向量中的一個位,所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路還能夠組合所述多個中間端口向量以生成所述端口向量。
4.如權(quán)利要求3所述的設(shè)備,其中所述端口向量包括位序列,其中每個位表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個所述外部設(shè)備的相應(yīng)的所述端口,所述隊列處理電路還包括端口隊列電路引擎,所述端口隊列電路引擎能夠把指針寫到與至少一個所述端口相關(guān)的至少一個端口隊列中,所述指針指向所述存儲器中的所述主設(shè)備向量。
5.如權(quán)利要求3所述的設(shè)備,其中所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路能夠同時處理所述主設(shè)備向量中的每個所述位。
6.如權(quán)利要求1所述的設(shè)備,其中所述IC包括出列處理電路,所述出列處理電路能夠讀取設(shè)備可達(dá)性表格,所述設(shè)備可達(dá)性表格包括至少一個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪一個端口由所述IC使用,從而識別把所述多播數(shù)據(jù)分組發(fā)送到所述至少一個外部設(shè)備的所述端口,基于在所述設(shè)備可達(dá)性表格中識別的端口號和所述主設(shè)備向量,所述出列處理電路還能夠讀取生成所述附加設(shè)備向量。
7.如權(quán)利要求6所述的設(shè)備,其中所述出列處理電路包括能夠讀取存儲在與至少一個所述端口相關(guān)的至少一個端口隊列中的至少一個指針的端口出列引擎電路,所述指針指向所述存儲器中的所述主設(shè)備向量,所述出列處理電路還能夠從所述存儲器中出列所述主設(shè)備向量,所述出列電路還能夠確定在所述多個端口隊列之中哪一個端口隊列存儲所述指針。
8.如權(quán)利要求6所述的設(shè)備,其中所述主設(shè)備向量包括位序列,其中每個位表示相應(yīng)的所述外部設(shè)備,所述出列處理電路包括能生成多個中間設(shè)備向量的設(shè)備向量轉(zhuǎn)發(fā)引擎電路,一個所述中間設(shè)備向量對應(yīng)所述主設(shè)備向量中的一個位,所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路還能夠組合所述多個中間設(shè)備向量以生成至少一個所述附加設(shè)備向量。
9.如權(quán)利要求8所述的設(shè)備,其中所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路能夠同時處理所述主設(shè)備向量中的每個所述位。
10.如權(quán)利要求1所述的設(shè)備,其中所述IC還能夠把至少一個所述附加設(shè)備向量和所述多播數(shù)據(jù)分組直接轉(zhuǎn)發(fā)到至少一個所述外部設(shè)備。
11.一種方法,包括使用至少一個端口與至少一個外部設(shè)備通信;把多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中;從存儲器中出列所述主設(shè)備向量;至少部分地根據(jù)主設(shè)備向量生成至少一個附加設(shè)備向量;和經(jīng)由至少一個所述端口把所述多播數(shù)據(jù)分組和至少一個所述附加設(shè)備向量發(fā)送到至少一個所述外部設(shè)備。
12.如權(quán)利要求11所述的方法,還包括讀取設(shè)備可達(dá)性表格并生成端口向量,所述設(shè)備可達(dá)性表格包括一個或多個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪一個所述端口用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備,所述端口向量表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備的至少一個所述端口。
13.如權(quán)利要求12所述的方法,其中所述主設(shè)備向量包括位序列,其中每個位代表相應(yīng)的所述外部設(shè)備,所述方法還包括生成多個中間端口向量,一個所述中間端口向量對應(yīng)所述主設(shè)備向量中的一個位;組合所述多個中間端口向量以生成所述端口向量。
14.如權(quán)利要求13所述的方法,其中所述端口向量包括位序列,其中每個位代表用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個所述外部設(shè)備的相應(yīng)的所述端口,所述方法還包括根據(jù)所述端口向量,把指向所述存儲器中的所述主設(shè)備向量的指針寫到與至少一個所述端口相關(guān)的至少一個端口隊列中。
15.如權(quán)利要求13所述的方法,還包括同時處理所述主設(shè)備向量中的每個所述位。
16.如權(quán)利要求14所述的方法,還包括確定在所述多個端口隊列之中哪一個端口隊列存儲所述指針。
17.如權(quán)利要求11所述的方法,其中所述主設(shè)備向量包括位序列,其中每個位表示相應(yīng)的所述外部設(shè)備,所述方法還包括生成多個中間設(shè)備向量,一個所述中間設(shè)備向量對應(yīng)所述主設(shè)備向量中的一個位,并且組合所述多個中間設(shè)備向量以生成至少一個所述附加設(shè)備向量。
18.如權(quán)利要求11所述的方法,還包括使用由所述主設(shè)備向量確定的所述端口,把所述第二設(shè)備向量和所述多播數(shù)據(jù)分組直接轉(zhuǎn)發(fā)到至少一個所述外部設(shè)備。
19.一種產(chǎn)品,包括存儲介質(zhì),在其上存儲有指令,所述指令在被機(jī)器執(zhí)行時導(dǎo)致如下操作通過使用至少一個端口與至少一個外部設(shè)備通信;把多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中;從存儲器中出列所述主設(shè)備向量;至少部分地根據(jù)主設(shè)備向量生成至少一個附加設(shè)備向量;和經(jīng)由至少一個所述端口把所述多播數(shù)據(jù)分組和至少一個所述附加設(shè)備向量發(fā)送到至少一個所述外部設(shè)備。
20.如權(quán)利要求19所述的產(chǎn)品,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作讀取設(shè)備可達(dá)性表格并生成端口向量,所述設(shè)備可達(dá)性表格包括一個或多個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪一個所述端口用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備,所述端口向量表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備的至少一個所述端口。
21.如權(quán)利要求20所述的產(chǎn)品,其中所述主設(shè)備向量包括位序列,其中每個位代表相應(yīng)的所述外部設(shè)備,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作生成多個中間端口向量,一個所述中間端口向量對應(yīng)所述主設(shè)備向量中的一個位;和組合所述多個中間端口向量以生成所述端口向量。
22.如權(quán)利要求21所述的產(chǎn)品,其中所述端口向量包括位序列,其中每個位表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個所述外部設(shè)備的相應(yīng)所述端口,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作根據(jù)所述端口向量,把指向所述存儲器中的所述主設(shè)備向量的指針寫到與至少一個所述端口相關(guān)的至少一個端口隊列中。
23.如權(quán)利要求21所述的產(chǎn)品,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作同時處理所述主設(shè)備向量中的每個所述位。
24.如權(quán)利要求22所述的產(chǎn)品,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作確定在所述多個端口隊列之中哪個端口隊列存儲所述指針。
25.如權(quán)利要求19所述的產(chǎn)品,其中所述主設(shè)備向量包括位序列,其中每個位表示相應(yīng)的所述外部設(shè)備,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作生成多個中間設(shè)備向量,一個所述中間設(shè)備向量對應(yīng)所述主設(shè)備向量中的一個位,并且組合所述多個中間設(shè)備向量以生成至少一個所述附加設(shè)備向量。
26.如權(quán)利要求19所述的產(chǎn)品,其中在所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作使用由所述主設(shè)備向量確定的所述端口,把至少一個所述附加的第二設(shè)備向量和所述多播數(shù)據(jù)分組直接轉(zhuǎn)發(fā)到至少一個所述外部設(shè)備。
27.一種系統(tǒng),包括能夠使用多個端口與至少一個外部設(shè)備通信的交換機(jī),所述交換機(jī)包括集成電路(IC),所述IC能夠接收多播數(shù)據(jù)分組并把所述多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中,所述IC還能夠從存儲器中出列所述主設(shè)備向量,至少部分地根據(jù)主設(shè)備向量生成至少一個附加設(shè)備向量,并且經(jīng)由至少一個所述端口把所述數(shù)據(jù)分組和至少一個所述附加設(shè)備向量發(fā)送到至少一個所述外部設(shè)備。
28.如權(quán)利要求27所述的系統(tǒng),其中所述交換機(jī)包括設(shè)備可達(dá)性表格,所述設(shè)備可達(dá)性表格包括至少一個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪個所述端口由所述IC用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備,所述IC包括隊列處理電路,所述隊列處理電路能夠讀取所述設(shè)備可達(dá)性表格并生成端口向量,所述端口向量表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個外部設(shè)備的至少一個所述端口。
29.如權(quán)利要求28所述的系統(tǒng),其中所述主設(shè)備向量包括位序列,其中每個位表示相應(yīng)的所述外部設(shè)備,所述隊列處理電路包括能生成多個中間端口向量的設(shè)備向量轉(zhuǎn)發(fā)引擎電路,一個所述中間端口向量對應(yīng)所述主設(shè)備向量中的一個位,所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路還能夠組合所述多個中間端口向量以生成所述端口向量。
30.如權(quán)利要求29所述的系統(tǒng),其中所述端口向量包括位序列,其中每個位表示用來把所述多播數(shù)據(jù)分組轉(zhuǎn)發(fā)到所述至少一個所述外部設(shè)備的相應(yīng)的所述端口,所述預(yù)存儲處理電路還包括端口隊列電路,所述端口隊列電路能夠把指向所述存儲器中的所述第一設(shè)備向量的指針寫到與至少一個所述端口相關(guān)的至少一個端口隊列中。
31.如權(quán)利要求29所述的系統(tǒng),其中所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路能夠同時處理所述主設(shè)備向量中的每個所述位。
32.如權(quán)利要求27所述的系統(tǒng),其中所述IC包括出列處理電路,所述出列處理電路能夠讀取設(shè)備可達(dá)性表格,所述設(shè)備可達(dá)性表格包括至少一個數(shù)據(jù)條目,所述數(shù)據(jù)條目表示對于給定的所述外部設(shè)備在多個所述端口之中哪個端口由所述IC使用,從而標(biāo)識把所述多播數(shù)據(jù)分組發(fā)送到所述至少一個外部設(shè)備的所述端口,所述出列處理電路還能夠基于所述設(shè)備可達(dá)性表格中識別的端口號和所述主設(shè)備向量生成所述附加設(shè)備向量。
33.如權(quán)利要求32所述的系統(tǒng),其中所述出列處理電路包括能夠讀取被存儲在與至少一個所述端口相關(guān)的至少一個端口隊列中的至少一個指針的端口出列引擎電路,所述指針指向所述存儲器中的所述第一設(shè)備向量,所述出列處理電路還能夠從所述存儲器中出列所述主設(shè)備向量,所述端口出列電路還能夠確定在所述多個端口隊列之中哪個端口隊列存儲所述指針。
34.如權(quán)利要求32所述的系統(tǒng),其中所述主設(shè)備向量包括位序列,其中每個位代表示相應(yīng)的所述外部設(shè)備,所述出列處理電路包括能生成多個中間設(shè)備向量的設(shè)備向量轉(zhuǎn)發(fā)引擎電路,一個所述中間設(shè)備向量對應(yīng)所述主設(shè)備向量中的一個位,所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路還能夠組合所述多個中間設(shè)備向量以生成所述至少一個附加設(shè)備向量。
35.如權(quán)利要求34所述的系統(tǒng),其中所述設(shè)備向量轉(zhuǎn)發(fā)引擎電路能夠同時處理所述主設(shè)備向量中的每個所述位。
36.如權(quán)利要求32所述的系統(tǒng),其中所述IC還能夠?qū)⒅辽僖粋€所述附加設(shè)備向量和所述多播數(shù)據(jù)分組直接轉(zhuǎn)發(fā)到至少一個所述外部設(shè)備。
37.如權(quán)利要求27所述的系統(tǒng),其中所述至少一個外部設(shè)備從由另一交換機(jī)和計算機(jī)節(jié)點(diǎn)組成的組中進(jìn)行選擇。
38.如權(quán)利要求27所述的系統(tǒng),其中所述至少一個外部設(shè)備包括第二交換機(jī),并且其中所述交換機(jī)和所述第二交換機(jī)一起被耦合在交換機(jī)堆棧中。
39.如權(quán)利要求1所述的設(shè)備,其中所述IC還能夠根據(jù)隨機(jī)數(shù)在所述多個端口之中選擇至少一個端口,所述隨機(jī)數(shù)代表所述多個端口之中的給定端口的可用帶寬的帶寬分布。
40.如權(quán)利要求11所述的方法,還包括根據(jù)隨機(jī)數(shù),在所述多個端口之中選擇至少一個端口,所述隨機(jī)數(shù)代表在所述多個端口之中的給定端口的可用帶寬的帶寬分布。
41.如權(quán)利要求19所述的產(chǎn)品,其中所述指令在被所述機(jī)器執(zhí)行時導(dǎo)致如下附加的操作根據(jù)隨機(jī)數(shù),在所述多個端口之中選擇至少一個端口,所述隨機(jī)數(shù)代表在所述多個端口之中的給定端口的可用帶寬的帶寬分布。
42.如權(quán)利要求27所述的系統(tǒng),其中所述IC還能夠根據(jù)隨機(jī)數(shù)在所述多個端口之中選擇至少一個端口,所述隨機(jī)數(shù)代表在所述多個端口之中的給定端口的可用帶寬的帶寬分布。
全文摘要
根據(jù)一個實施例的方法可以包括使用至少一個端口與至少一個外部設(shè)備通信。該方法還可以包括把多播數(shù)據(jù)分組和主設(shè)備向量存儲在存儲器中。該方法還可以包括從存儲器中出列主設(shè)備向量,至少部分地基于主設(shè)備向量生成至少一個附加設(shè)備向量,并且經(jīng)由至少一個端口把該多播數(shù)據(jù)分組和至少一個附加設(shè)備向量發(fā)送到至少一個外部設(shè)備。當(dāng)然,有可能作出許多替換例、變例和修改方案,而不背離本實施例。
文檔編號H04L12/18GK101032119SQ200580033137
公開日2007年9月5日 申請日期2005年9月29日 優(yōu)先權(quán)日2004年9月29日
發(fā)明者M·納瓦達(dá), H·拉斯托吉 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1