專利名稱::網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法與裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種網(wǎng)絡(luò)技術(shù),特別是涉及一種交換式網(wǎng)絡(luò)的數(shù)據(jù)傳輸方法,以及應(yīng)用此方法的裝置。一個網(wǎng)絡(luò)系統(tǒng)是由許多架構(gòu)塊(buildingblock)所組成的。這些塊包括集線器(hub)、橋接器(bridge)、路由器(router)、網(wǎng)絡(luò)卡、用戶電腦、伺服主機、傳輸媒體連接裝置與網(wǎng)絡(luò)管理軟件等等。其中集線器就是一群使用者連上網(wǎng)絡(luò)的集中處,其包括獨立式中繼集線器(standalonerepeatinghub)、可堆疊式集線器(stackablehub)與交換式集線器(switchinghub)。交換式集線器,一般而言,會將其中一端口(port)暫時儲存所接收到的數(shù)據(jù)包(packet)或稱為幀(frame),之后再由另一端口送出數(shù)據(jù)包,此種方式稱為儲存后輸送(store-and-forward)。一個數(shù)據(jù)包的大小可為64字節(jié)(byte,B)到1518字節(jié)。對一以太網(wǎng)絡(luò)(ethernet)而言,有三種不同的數(shù)據(jù)包(或分組)型態(tài)廣播型數(shù)據(jù)包(broadcastpacket)、多播型數(shù)據(jù)包(multicastpacket)與單播型數(shù)據(jù)包(unicastpacket)。當(dāng)一數(shù)據(jù)包從交換式集線器的其中一端口送進后從其余的端口送出此數(shù)據(jù)包,此種類型的數(shù)據(jù)包稱之為廣播型數(shù)據(jù)包。由交換式集線器的其中一端口送進后,再從其余端口的其中幾個送出數(shù)據(jù)包,此種稱為多播型數(shù)據(jù)包。單播型數(shù)據(jù)包則從一端口傳送到另一個指定的端口。下面以具有16個端口的交換式集線器為例說明,而每一個端口的傳出速率為100Mbps(megabytepersecond)。請參考圖1,交換式集線器的核心部分由一交換控制芯片(switchingIC)100所組成,用以控制數(shù)據(jù)包的傳送。交換控制芯片再耦接到一靜態(tài)隨機存取存儲器(staticranomaccessmemory,SRAM)110與一同步動態(tài)隨機存取存儲器(synchrotrondynamicrandomaccessmemory,SDRAM)120。請參考圖2,在SRAM110中,主要儲存轉(zhuǎn)送表(forwardtable)部分112、未使用列表的鏈路節(jié)點(linknodeoffreelists)部分114,其包括數(shù)個未使用列表的鏈路節(jié)點114a,以及屬性項(attributeentry)部分116,其由數(shù)個屬性項116a構(gòu)成。轉(zhuǎn)送表112記錄每一個數(shù)據(jù)包的來源地址與要轉(zhuǎn)送到的端口的埠號。每一個端口具有一輸出隊列(ouputqueue)。當(dāng)有一個數(shù)據(jù)包要從該端口送出時,會從未使用列表的鏈路節(jié)點部分114配置一未使用列表的鏈路節(jié)點114a給輸出隊列130,如圖3A所示,做為鏈路節(jié)點114a′。配置于輸出隊列130的未使用列表的鏈路節(jié)點114a用來暫存將從該端口送出一數(shù)據(jù)包的相關(guān)數(shù)據(jù)。圖3A繪出于某一端口具有三個鏈路節(jié)點114a′。每一輸出隊列均有兩個指針隊列首H(head)與隊列尾T(tail),其分別用來指出對應(yīng)到第一個要被傳送的數(shù)據(jù)包信息與對應(yīng)最后一個要被傳送的數(shù)據(jù)包信息。參考圖3B,其繪示輸出隊列130的鏈路節(jié)點114a′的格式,其大小為64位。如圖所示,第0位是釋放標(biāo)記(dropflag),用來標(biāo)示此一鏈路節(jié)點是屬于使用中或未使用。第1到第16位是一指針(pointer),用來指出下一個鏈路節(jié)點的地址。第17位則用來標(biāo)示此鏈路節(jié)點114a′所對應(yīng)的數(shù)據(jù)包類型。第18到第33位為另一指針,用來指出數(shù)據(jù)包緩存器(packetbuffer)的地址。SDRAM存儲器120(參考圖1)以15KB為一單位將存儲器120分割成數(shù)個區(qū)塊122,每一區(qū)塊用來做為一數(shù)據(jù)包皙存區(qū)122。同時,在SRAM存儲器110(圖1)中的屬性項部分116的每一屬性項116a均對應(yīng)到一數(shù)據(jù)包緩存器122,用以記錄此一數(shù)據(jù)包緩存器122所儲存的數(shù)據(jù)包是否已經(jīng)從一端口傳送出去。圖3C繪示出此一屬性項116a的格式。屬性項116a的第0到15位為一指針,用來指出下一個未使用列表的鏈路節(jié)點的地址。第16到32位為端口掩模(portmask)。其余位(33~63)則保留。一般而言,網(wǎng)絡(luò)的數(shù)據(jù)傳送需要滿足先進先出的規(guī)則;亦即,先送到的數(shù)據(jù)包要先被傳送出去。然而,在上述現(xiàn)有的架構(gòu)下,當(dāng)一廣播數(shù)據(jù)包從一端口(例如端口0)送進后,又有另一數(shù)據(jù)包,如一單播型數(shù)據(jù)包,從一端口(例如端口12)要傳送到另一端口(例如端口1)。在此情況下,為了要確保數(shù)據(jù)傳送先進先出的規(guī)則,現(xiàn)有的做法非常復(fù)雜且無效率。請參考圖4,圖中繪出端口1的輸出隊列已經(jīng)串有6個單播型數(shù)據(jù)包的鏈路節(jié)點U11~U16,端口2有2個單播型數(shù)據(jù)包鏈路節(jié)點U21~U22,端口3有9個鏈路節(jié)點U31~U39,為了說明簡潔省去端口4到端口15。請配合圖1,當(dāng)一廣播數(shù)據(jù)包從端口0送進時,SRAM存儲器110會配置15個未使用列表的鏈路節(jié)點114a給每一個端口1~15之后,成為一廣播型數(shù)據(jù)包鏈路節(jié)點B。每一廣播鏈路節(jié)點B均會指向SDRAM存儲器120中的一數(shù)據(jù)包緩存器122,做為廣播型數(shù)據(jù)包的緩存器。此一數(shù)據(jù)包緩存器122又與SRAM存儲器110中的一屬性項116a對應(yīng)。利用屬性項116a中的端口掩模便可以得知各個端口對此廣播數(shù)據(jù)包的傳送情形。之后,在時間t2如果另一單播型數(shù)據(jù)包從端口12要傳送到端口1時,SRAM存儲器110會配置1個未使用列表的鏈路節(jié)點114a給端口1的輸出隊列。當(dāng)時間t6時,因為廣播型數(shù)據(jù)包鏈路節(jié)點B,端口1會從SDRAM存儲器120中讀出對應(yīng)此鏈路節(jié)點B的數(shù)據(jù)包緩存器122所儲存的數(shù)據(jù)包傳送出去。之后,端口1便可以把后進的單播型數(shù)據(jù)包在廣播型數(shù)據(jù)包之后送出,以確保數(shù)據(jù)數(shù)據(jù)包先進先出的規(guī)則。等到此一廣播型數(shù)據(jù)包從各個端口送出后,SRAM存儲器便釋放配置給此廣播數(shù)據(jù)包的15個鏈路節(jié)點以及屬性項。由上述所述,當(dāng)一廣播型數(shù)據(jù)包從一端口送進后到由其余各端口完全送出,其存取SRAM的次數(shù)非常頻繁。首先就必須配置15個未使用列表的鏈路節(jié)點給輸出隊列,此舉便需存取SRAM存儲器15次。接著,再把這15個鏈路節(jié)點串排(enqueue)在每一個端口的輸出隊列后,以必須存取SRAM存儲器15次。當(dāng)廣播數(shù)據(jù)包完全送出后,并需將輸出隊列上鏈路節(jié)點解除(dequeue)且釋放此15個鏈路節(jié)點,其分別要存取15次SRAM存儲器。故總共就必須存取SRAM存儲器高達(dá)60次。其次,每有一次廣播數(shù)據(jù)包的傳送便必須配置15個未使用列表的鏈路節(jié)點給每一個端口的輸出隊列。因此,如果有多個廣播數(shù)據(jù)包要傳送時,便需要有大容量的SRAM存儲器。此外,SRAM還要配置數(shù)據(jù)包緩存器的屬性項來記錄每一端口數(shù)據(jù)包的傳送狀態(tài),這又會占用SRAM存儲器的容量。同時,SRAM存儲器也必須維護許多額外的未使用列表的鏈路節(jié)點以符合實際需要,例如上述的多個廣播數(shù)據(jù)包要傳送的情形。這對數(shù)據(jù)傳送而言是很沒有效率的。因此本發(fā)明提出一種交換式網(wǎng)絡(luò)輸出隊列方法,其存取存儲器的次數(shù)遠(yuǎn)較現(xiàn)有少。本發(fā)明提出一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其不必在存儲器中配置數(shù)據(jù)包緩存器的屬性項部分,存儲器的利用更具彈性。本發(fā)明提出一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其不必大容量存儲器也能處理多個廣播數(shù)據(jù)包送進交換集線器的狀況。本發(fā)明提出一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法與裝置,其簡述如下一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,應(yīng)用于具有多數(shù)個端口的交換式數(shù)據(jù)包傳輸裝置,其包括接收一數(shù)據(jù)包,并且判斷數(shù)據(jù)包的形式為單播型數(shù)據(jù)包或廣播型數(shù)據(jù)包。當(dāng)數(shù)據(jù)包為單播型數(shù)據(jù)包時,從SRAM存儲器配置一第一鏈路節(jié)點給一輸出隊列,前述的輸出隊列對應(yīng)到要送出此單播型數(shù)據(jù)包的其中的一端口。當(dāng)數(shù)據(jù)包是一廣播型數(shù)據(jù)包時,從SRAM存儲器配置一第二鏈路節(jié)點給一廣播輸出隊列(broadcastoutputqueue),同時將對應(yīng)各個端口的各輸出隊列中的最后一個第一鏈路節(jié)點中的一廣播數(shù)據(jù)包計數(shù)值(broadcastcount)加一。讀取對應(yīng)單播數(shù)據(jù)包的第一鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值。當(dāng)鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值等于零時,表示此端口并無廣播數(shù)據(jù)包需要送出,故直接將單播數(shù)據(jù)包傳送出去。當(dāng)鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值不等于零時,表示再送完此單播型數(shù)據(jù)包后,必須依據(jù)廣播數(shù)據(jù)包計數(shù)值,由SDRAM存儲器讀取對應(yīng)此廣播數(shù)據(jù)包計數(shù)值的數(shù)據(jù)包緩存器讀取廣播數(shù)據(jù)包,并且將廣播數(shù)據(jù)包傳送出,之后再送出對應(yīng)目前的鏈路節(jié)點的下一鏈路節(jié)點的數(shù)據(jù)包。一種網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其具有多個端口,用以從其中一端口接收數(shù)據(jù)包后轉(zhuǎn)送至另一端口端,網(wǎng)絡(luò)數(shù)據(jù)包交換裝置至少包括交換控制芯片、SRAM存儲器、SDRAM存儲器、數(shù)個輸出隊列與一廣播輸出隊列。SRAM存儲器耦接于交換控制芯片,且更區(qū)分成一轉(zhuǎn)送表區(qū)與一鏈路節(jié)點區(qū)塊。鏈路節(jié)點區(qū)塊則具有數(shù)個鏈路節(jié)點。SDRAM存儲器亦耦接于交換控制芯片,并且分割成數(shù)個數(shù)據(jù)包緩存器,并藉由交換控制芯片的控制,得以配置其中的一數(shù)據(jù)包緩存器來儲存數(shù)據(jù)包。各數(shù)個輸出隊列與各個端口一一對應(yīng),并且由交換控制芯片所控制,當(dāng)送進的數(shù)據(jù)包為單播型數(shù)據(jù)包時,便從SRAM存儲器中的鏈路節(jié)點區(qū)塊配置其中的一鏈路節(jié)點做為單播型數(shù)據(jù)包的單播數(shù)據(jù)包鏈路節(jié)點給輸出隊列之一,其對應(yīng)送出此單播型數(shù)據(jù)包的其中一端口。廣播輸出隊列由交換控制芯片所控制,當(dāng)送進的數(shù)據(jù)包為一廣播型數(shù)據(jù)包時,從SRAM存儲器的鏈路節(jié)點區(qū)塊配置其中的一鏈路節(jié)點做為廣播型數(shù)據(jù)包的廣播數(shù)據(jù)包鏈路節(jié)點給廣播輸出隊列,同時在對應(yīng)各輸出隊列中的一最后單播鏈路節(jié)點中的一廣播數(shù)據(jù)包計數(shù)欄位的數(shù)值加一。運用上述的裝置便可以有效地執(zhí)行本發(fā)明的方法。同時,以更少存取存儲器的次數(shù)來達(dá)到數(shù)據(jù)包先進先出的要求。當(dāng)一廣播數(shù)據(jù)包送進來時,因為不必配置鏈路節(jié)點給每一端口所對應(yīng)的輸出隊列與配置一屬性節(jié)點來記錄數(shù)據(jù)包的傳送情形,所以可以不必使用大量的存儲器。為使本發(fā)明的上述目的、特征、和優(yōu)點能更明顯易懂,下文特舉優(yōu)選實施例,并配合附圖作詳細(xì)說明。附圖中圖1繪示交換式集線器核心部分的交換控制芯片與周圍存儲器的連接關(guān)系圖;圖2繪示圖1中的SRAM存儲器與SDRAM存儲器的配置圖;圖3A繪示現(xiàn)有的輸出隊列的結(jié)構(gòu);圖3B繪示現(xiàn)有的輸出隊列中各鏈路節(jié)點的數(shù)據(jù)格式;圖3C繪示現(xiàn)有與數(shù)據(jù)包緩存器對應(yīng)的屬性項的數(shù)據(jù)格式;圖4繪示現(xiàn)有技術(shù)在傳送廣播型數(shù)據(jù)包時,每一端口的輸出隊列的結(jié)構(gòu)圖;圖5繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,與交換控制芯片耦接的存儲器的配置圖;圖6繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,輸出隊列的隊列方法的流程示意圖;圖7繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法的流程示意圖;圖8繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,端口的輸出隊列中的每一鏈路節(jié)點的數(shù)據(jù)格式;圖9繪示本發(fā)明在傳送廣播型數(shù)據(jù)包時,每一端口的輸出隊列的結(jié)構(gòu)示意圖;以及圖10繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置的結(jié)構(gòu)示意圖。標(biāo)號說明100交換式控制芯片110SRAM存儲器120SDRAM存儲器112轉(zhuǎn)送表114未使用列表的鏈路節(jié)點部分114a未使用列表的鏈路節(jié)點116屬性項部分116a屬性項122數(shù)據(jù)包緩存器130輸出隊列114a′已使用鏈路節(jié)點114b未使用列表的鏈路節(jié)點140廣播輸出隊列10交換式集線器200~218輸出隊列的隊列方法的各流程300~320網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法的各流程本發(fā)明的方法的網(wǎng)絡(luò)交換式集線器也是由如圖1所示的交換式控制芯片100所控制,而此控制芯片100還耦接到第一存儲器110與第二存儲器120,第一存儲器可為SRAM存儲器而第二存儲器可為SDRAM存儲器。請參考圖5,在SRAM存儲器110中,主要也是區(qū)分為儲存轉(zhuǎn)送表部分112′與未使用列表的鏈路節(jié)點部分114′,其包括數(shù)個未使用列表的鏈路節(jié)點114b。與現(xiàn)有的SRAM存儲器配置不同處在于不包含用來記錄數(shù)據(jù)包狀態(tài)的屬性項。本發(fā)明對于SDRAM存儲器內(nèi)的配置并未加以修改。本發(fā)明對于廣播型數(shù)據(jù)包的處理方式增加一廣播輸出隊列(broadcstoutputqueue),其隊列的記錄僅與廣播數(shù)據(jù)包相關(guān)的訊息。對應(yīng)每一個端口的輸出隊列中的每一鏈路節(jié)點則僅僅做為記錄與單播型數(shù)據(jù)包相關(guān)的訊息。請參照圖6并配合圖5,用以簡略說明本發(fā)明的方法,其繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,輸出隊列的隊列方法的流程示意圖,其應(yīng)用于具有多個端口的交換式數(shù)據(jù)包傳輸裝置,其如在以太網(wǎng)絡(luò)上所使用的交換式集線器。以下的說明是以一具有16個端口(端口0到端口15)的交換集線器。首先執(zhí)行流程204,由交換式數(shù)據(jù)包傳輸裝置的其中一端口,例如從端口0接收一數(shù)據(jù)包,并且在流程208判斷數(shù)據(jù)包的形式為單播型數(shù)據(jù)包或廣播型數(shù)據(jù)包。當(dāng)數(shù)據(jù)包為單播型數(shù)據(jù)包時,便進行流程212,從SRAM存儲器110配置一鏈路節(jié)點114b與一輸出隊列,前述的輸出隊列對應(yīng)到要送出此單播型數(shù)據(jù)包的其中的端口,例如端口1到15之一。當(dāng)數(shù)據(jù)包為一廣播型數(shù)據(jù)包時,進行流程216,從SRAM存儲器110配置另一鏈路節(jié)點114b給廣播輸出隊列,同時進行218,將對應(yīng)各個端口的各輸出隊列中的最后一個第一鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值(broadcastcount)加一。請參考圖7,其繪示當(dāng)一廣播數(shù)據(jù)包由一端口送進后,如何由其他端口送出的方法流程式意圖。首先,進行流程304讀取對應(yīng)單播數(shù)據(jù)包的鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值。當(dāng)鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值等于零時,表示此端口并無廣播數(shù)據(jù)包需要送出,便執(zhí)行流程308直接將單播數(shù)據(jù)包傳送出去。當(dāng)鏈路節(jié)點中的廣播數(shù)據(jù)包計數(shù)值不等于零時,表示再送完此單播型數(shù)據(jù)包后,進行流程312,依據(jù)廣播數(shù)據(jù)包計數(shù)值,由SDRAM存儲器120讀取對應(yīng)此廣播數(shù)據(jù)包計數(shù)值的數(shù)據(jù)包緩存器122讀取廣播數(shù)據(jù)包,并且將廣播數(shù)據(jù)包傳送出,之后再送出對應(yīng)目前的鏈路節(jié)點的下一鏈路節(jié)點的數(shù)據(jù)包。圖8繪示依據(jù)本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,端口的輸出隊列中的每一鏈路節(jié)點的數(shù)據(jù)格式的范例。第0到第15位做為一指針,用以將此一連結(jié)點指向下一個連結(jié)點。第16位則用以標(biāo)示其對應(yīng)的數(shù)據(jù)包為單播型數(shù)據(jù)包或廣播型數(shù)據(jù)包。第17到第33位元則做為端口掩模(portmask)或做為廣播數(shù)據(jù)包計數(shù)值。當(dāng)此節(jié)點對應(yīng)一單播型數(shù)據(jù)包時,做為廣播數(shù)據(jù)包計數(shù)值,用以指出當(dāng)此節(jié)點所對應(yīng)的單播型數(shù)據(jù)包送出后,接著要送出的廣播數(shù)據(jù)包個數(shù)。當(dāng)此節(jié)點對應(yīng)一廣播型數(shù)據(jù)包時,用以記錄各端口已送出此廣播數(shù)據(jù)包或否的狀態(tài)。接著請參考圖9,其繪示本發(fā)明在傳送廣播型數(shù)據(jù)包時,每一端口的輸出隊列的結(jié)構(gòu)示意圖。藉有此圖,用以更詳細(xì)地說明本發(fā)明的方法如何有效地確保各端口在傳送廣播型數(shù)據(jù)包與單播型數(shù)據(jù)包時可以維持?jǐn)?shù)據(jù)包傳送所要求的先進先出的規(guī)則。為了說明簡單起見,僅繪示出3個端口的輸出隊列。說明例亦以從端口0送進一廣播數(shù)據(jù)包,并且轉(zhuǎn)送到其他端口1~15。在時間t2時,在端口1的輸出隊列已經(jīng)串有U11~U15五個鏈路節(jié)點,端口2的輸出隊列則串有U21~U23三個節(jié)點,而端口2的輸出隊列則串有U31~U37七個節(jié)點,其中每一個節(jié)點均由SRAM存儲器110中的鏈路節(jié)點114b。每一端口1~15的輸出隊列中的鏈路節(jié)點均對應(yīng)一單播型數(shù)據(jù)包的數(shù)據(jù)包緩存器,數(shù)據(jù)包緩存器配置于SDRAM存儲器120中的區(qū)塊122。在此同時,假如有三個廣播數(shù)據(jù)包從一端口(例如端口0)送入交換集線器,交換控制芯片100必須控制此廣播數(shù)據(jù)包從端口1~15送出。當(dāng)一廣播數(shù)據(jù)包送進集線器后,藉由交換控制芯片100的控制,從SRAM存儲器110配置一鏈路節(jié)點114b給廣播輸出隊列,此廣播輸出隊列與各端口的輸出隊列完全獨立,僅處理廣播數(shù)據(jù)包的用途。在此實施例以三個廣播數(shù)據(jù)包為例子。在廣播輸出隊列中便串有三個鏈路節(jié)點B1~B3。當(dāng)每個廣播數(shù)據(jù)包放入廣播輸出隊列的同時,控制芯片100便將每一端口所對應(yīng)的輸出隊列內(nèi)的最后一個鏈路節(jié)點,如U15、U23與U37內(nèi)的廣播計數(shù)b欄位的值加一。在此實施例,其值b=3,這表示在送出鏈路節(jié)點U15、U23與U37所對應(yīng)的單播數(shù)據(jù)包后,依據(jù)廣播計數(shù)值b=3,向所對應(yīng)的數(shù)據(jù)包緩存器讀取廣播數(shù)據(jù)包,而依次從各端口送出廣播數(shù)據(jù)包。每一端口還具有一廣播隊列首(broadcastoutputqueuehead),用以指出第一個要送出的廣播數(shù)據(jù)包。如圖9的H1~H15指向節(jié)點B1。例如當(dāng)端口1將第一廣播數(shù)據(jù)包送出后,便將隊列首H1指向第二個節(jié)點B2。其余的端口同理可以推知。廣播輸出隊列則具有一共用的廣播隊列尾(broadcastoutputqueuetail)T,用以指出廣播輸出隊列的最后一個節(jié)點。當(dāng)隊列首與隊列尾指到同節(jié)點時,便表示已經(jīng)將廣播數(shù)據(jù)包完全送出。此時,即使有一單播數(shù)據(jù)包送進,例如由端口12轉(zhuǎn)送給端口1,其由SRAM存儲器110配置一鏈路節(jié)點114b給輸出隊列成為單播節(jié)點U16。藉由廣播計數(shù)值b,端口1會將對應(yīng)b值的廣播數(shù)據(jù)包個數(shù)完全送出后,才會在繼續(xù)送出對應(yīng)節(jié)點U16的單播數(shù)據(jù)包。為了完成上述的數(shù)據(jù)包輸出的方法,配合此方法的交換裝置也一并提出說明。請參考圖10,其繪示依據(jù)本發(fā)明的一種網(wǎng)絡(luò)數(shù)據(jù)包交換裝置10,其具有多個端口(端口0~15),用以從其中一端口(例如端口0)接收數(shù)據(jù)包后轉(zhuǎn)送至另一端口端(例如端口1)。網(wǎng)絡(luò)數(shù)據(jù)包交換裝置10至少包括交換控制芯片100、第一存儲器110,如SRAM、第二存儲器120,如SDRAM、數(shù)個輸出隊列130與一廣播輸出隊列140。配合圖5,SRAM存儲器110耦接于交換控制芯片100,且更區(qū)分成一轉(zhuǎn)送表區(qū)112′與一鏈路節(jié)點區(qū)塊114′。鏈路節(jié)點區(qū)塊114′則具有數(shù)個鏈路節(jié)點114b。SDRAM存儲器120亦耦接于交換控制芯片100,并且分割成數(shù)個數(shù)據(jù)包緩存器122,并藉由交換控制芯片100的控制,得以配置其中的一數(shù)據(jù)包緩存器122來儲存數(shù)據(jù)包。各數(shù)個輸出隊列130與各個端口(例如端口0~15)一一對應(yīng),并且由交換控制芯片100所控制。例如,當(dāng)從端口0送進的數(shù)據(jù)包為單播型數(shù)據(jù)包時,便從SRAM存儲器110中的鏈路節(jié)點區(qū)114′塊配置其中的一鏈路節(jié)點114b做為單播型數(shù)據(jù)包的單播數(shù)據(jù)包鏈路節(jié)點給輸出隊列130之一,其對應(yīng)送出此單播型數(shù)據(jù)包的其中一端口,例如端口1。廣播輸出隊列140由交換控制芯片100所控制。例如,當(dāng)從端口0送進的數(shù)據(jù)包為一廣播型數(shù)據(jù)包時,從SRAM存儲器110的鏈路節(jié)點區(qū)塊114′配置其中的一鏈路節(jié)點114b做為廣播型數(shù)據(jù)包的廣播數(shù)據(jù)包鏈路節(jié)點給廣播輸出隊列140,同時在每一個輸出隊列130中的一最后單播鏈路節(jié)點中的一廣播數(shù)據(jù)包計數(shù)欄位的數(shù)值加一。詳細(xì)的運作方式如上文所敘述,在此便不在冗述。上述的單播數(shù)據(jù)包鏈路節(jié)點還包括一廣播隊列首指針,用以指向該廣播輸出隊列中的一節(jié)點。廣播輸出隊列還包括一廣播隊列尾指針。其中該單播數(shù)據(jù)包鏈路節(jié)點還包括指針,用以指向該單播數(shù)據(jù)包所對應(yīng)的該些數(shù)據(jù)包緩存器之一。其中該廣播數(shù)據(jù)包鏈路節(jié)點還包括指針,用以指向該廣播數(shù)據(jù)包所對應(yīng)的該些數(shù)據(jù)包緩存器之一。運用上述的裝置便可以有效地執(zhí)行本發(fā)明的方法。同時,以更少存取存儲器的次數(shù)來達(dá)到數(shù)據(jù)包先進先出的要求。當(dāng)一廣播數(shù)據(jù)包送進來時,因為不必配置鏈路節(jié)點給每一端口所對應(yīng)的輸出隊列與配置一屬性節(jié)點來記錄數(shù)據(jù)包的傳送情形,所以可以不必使用大量的存儲器。因此,本發(fā)明的特征是對應(yīng)各端口的輸出隊列僅處理單播數(shù)據(jù)包,而增加一廣播輸出隊列來處理廣播數(shù)據(jù)包。本發(fā)明的另一特征是各端口的輸出隊列內(nèi)的節(jié)點具有記錄是否要送出且送出多少個廣播數(shù)據(jù)包的計數(shù)欄位。本發(fā)明的再一特征是一個廣播數(shù)據(jù)包的接收再轉(zhuǎn)送,其存取存儲器的次數(shù)大為減少。綜上所述,雖然本發(fā)明已結(jié)合優(yōu)選實施例揭露如上,然而其并非用以限定本發(fā)明,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),可作處出各種更動與潤飾,因此本發(fā)明的保護范圍應(yīng)當(dāng)由后附的權(quán)利要求所界定。權(quán)利要求1.一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,應(yīng)用于具有多個端口的一交換式數(shù)據(jù)包傳輸裝置,該網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法包括接收一數(shù)據(jù)包,并且判斷該數(shù)據(jù)包的形式;當(dāng)該數(shù)據(jù)包是一單播型數(shù)據(jù)包時,從一第一存儲器配置一第一鏈路節(jié)點給一輸出隊列,其中該輸出隊列對應(yīng)到要送出該單播型數(shù)據(jù)包的該些端口之一;當(dāng)該數(shù)據(jù)包是一廣播型數(shù)據(jù)包時,從該第一存儲器配置一第二鏈路節(jié)點給一廣播輸出隊列,同時將各端口的各該些輸出隊列中的最后一該第一鏈路節(jié)點中的一廣播數(shù)據(jù)包計數(shù)值加一;讀取對應(yīng)該單播數(shù)據(jù)包的該第一鏈路節(jié)點中的該廣播數(shù)據(jù)包計數(shù)值;當(dāng)該鏈路節(jié)點中的該廣播數(shù)據(jù)包計數(shù)值等于零時,直接將該單播數(shù)據(jù)包傳送出去;以及當(dāng)該鏈路節(jié)點中的該廣播數(shù)據(jù)包計數(shù)值不等于零時,依據(jù)該廣播數(shù)據(jù)包計數(shù)值,由一第二存儲器讀取對應(yīng)該廣播數(shù)據(jù)包計數(shù)值的一數(shù)據(jù)包緩存器讀取一廣播數(shù)據(jù)包,并且將該廣播數(shù)據(jù)包傳送出去,之后再送出對應(yīng)該鏈路節(jié)點的下一鏈路節(jié)點。2.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該廣播輸出隊列包括一隊列尾。3.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該第一鏈路節(jié)點包括一廣播隊列首指針,用以指向該廣播輸出隊列中的一節(jié)點。4.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該廣播輸出隊列包括一廣播隊列尾指針。5.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該第一鏈路節(jié)點包括指針,用以指向該單播數(shù)據(jù)包所對應(yīng)的該數(shù)據(jù)包緩存器。6.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該第二鏈路節(jié)點還包括指針,用以指向該廣播數(shù)據(jù)包所對應(yīng)的該數(shù)據(jù)包緩存器。7.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該第一存儲器是靜態(tài)隨機存取存儲器(SRAM)。8.如權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法,其中該第二存儲器是同步動態(tài)隨機存取存儲器(SDRAM)。9.一種網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,具有多個端口,用以從該些端口之一接收一數(shù)據(jù)包后轉(zhuǎn)送至該些端口中的另一端口,該網(wǎng)絡(luò)數(shù)據(jù)包交換裝置包括一交換控制芯片;一第一存儲器,耦接于該交換控制芯片,該第一存儲器區(qū)分為一轉(zhuǎn)送表區(qū)與一鏈路節(jié)點區(qū)塊,該鏈路節(jié)點區(qū)塊具有多個鏈路節(jié)點;一第二存儲器,耦接于該交換控制芯片,該第二存儲器區(qū)分成多個數(shù)據(jù)包緩存器,并藉由該交換控制芯片的控制,得以配置該些數(shù)據(jù)包緩存器之一來儲存該數(shù)據(jù)包;多個輸出隊列,與各該些端口一一對應(yīng),并且由該交換控制芯片所控制,當(dāng)該數(shù)據(jù)包為一單播型數(shù)據(jù)包時,從該第一存儲器中的該鏈路節(jié)點區(qū)塊配置該些鏈路節(jié)點其中之一做為該單播型數(shù)據(jù)包的一單播數(shù)據(jù)包鏈路節(jié)點給該些輸出隊列之一,其對應(yīng)送出該單播型數(shù)據(jù)包的該些端口之一;以及一廣播輸出隊列,由該交換控制芯片所控制,當(dāng)該數(shù)據(jù)包為一廣播型數(shù)據(jù)包時,從該第一存儲器的該鏈路節(jié)點區(qū)塊配置該些鏈路節(jié)點其中之一做為該廣播型數(shù)據(jù)包的一廣播數(shù)據(jù)包鏈路節(jié)點給該廣播輸出隊列,同時在輸出隊列中的一最后單播鏈路節(jié)點中的一廣播數(shù)據(jù)包計數(shù)欄位的數(shù)值加一。10.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該第一存儲器是靜態(tài)隨機存取存儲器(SRAM)。11.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該第二存儲器是同步動態(tài)隨機存取存儲器(SDRAM)。12.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該單播數(shù)據(jù)包鏈路節(jié)點包括一廣播隊列首指針,用以指向該廣播輸出隊列中的一節(jié)點。13.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該廣播輸出隊列包括一廣播隊列尾指針。14.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該單播數(shù)據(jù)包鏈路節(jié)點包括指針,用以指向該單播數(shù)據(jù)包所對應(yīng)的該些數(shù)據(jù)包緩存器之一。15.如權(quán)利要求9所述的網(wǎng)絡(luò)數(shù)據(jù)包交換裝置,其中該廣播數(shù)據(jù)包鏈路節(jié)點包括指針,用以指向該廣播數(shù)據(jù)包所對應(yīng)的該些數(shù)據(jù)包緩存器之一。全文摘要一種網(wǎng)絡(luò)數(shù)據(jù)包的輸出隊列方法與裝置,利用一額外的廣播輸出隊列來處理廣播數(shù)據(jù)包,與各端口對應(yīng)的輸出隊列內(nèi)的節(jié)點僅用作處理單播型數(shù)據(jù)包。當(dāng)一廣播數(shù)據(jù)包送進后,僅由存儲器配置一鏈路節(jié)點給廣播輸出隊列。同時在每一端口對應(yīng)的輸出隊列內(nèi)的最后一節(jié)點記錄要送出廣播數(shù)據(jù)包的個數(shù)。當(dāng)一端口送完其輸出隊列內(nèi)的節(jié)點所對應(yīng)的單播數(shù)據(jù)包后,若讀到廣播數(shù)據(jù)包的計數(shù)值,便指向廣播輸出隊列,讀取并送出對應(yīng)的廣播數(shù)據(jù)包。文檔編號H04L12/56GK1366400SQ0111679公開日2002年8月28日申請日期2001年5月10日優(yōu)先權(quán)日2001年5月10日發(fā)明者陳任凱,劉建華申請人:威盛電子股份有限公司