專利名稱::早期釋放緩沖區(qū)的方法及其相關媒體存取控制芯片的制作方法
技術領域:
:本發(fā)明有關一種早期釋放(earlyrelease)緩沖區(qū)的方法及其相關媒體存取控制芯片,特別有關于一種以太網絡交換器中早期釋放緩沖區(qū)的方法及其相關以太網絡媒體存取控制芯片。(2)
背景技術:
以太網絡交換器可以提供多端口的網絡連結,每一個端口可供線速度(linespeed)10M/100M/1000M(1M=106)的全雙工數據傳收。以太網絡交換器的核心為媒體存取控制器(mediumaccesscontroller,簡稱MACcontroller),典型地負責網絡七層運作中第二層及部分第三層以上的工作,媒體存取控制器耦接實體層(physicallayer,簡稱PHY),以提供多端口的網絡連結,負責與遠程實體訊號的傳收。媒體存取控制器先暫存所有連接端口所接收的封包數據,再轉送至指定的目的連接端口,媒體存取控制器通常利用外掛存儲器芯片或者內建整合的有限存儲器進行封包數據的暫存,例如內建1M位(相當于128K字節(jié))的靜態(tài)隨機存取存儲器,而以太網絡交換器典型地為8端口/16端口/24端口,有限的存儲器空間要同時供多個連接端口的數據暫存與轉送,因此存儲器的有效利用非常重要。以太網絡交換器接收到的封包可以區(qū)分為單播(uni-cast)封包、多播(multi-cast)封包、以及廣播(broadcast)封包,單播封包從以太網絡交換器其中一端口接收后從另一端口轉送出去,多播封包從以太網絡交換器其中一端口接收后從其它多個端口轉送出去,而廣播封包從以太網絡交換器其中一端口接收后從其它所有端口轉送出去。一般而言,以太網絡封包的最大長度為1522字節(jié)長,而在NAS/SAN系統(tǒng)中更有9.6K(1K=103)字節(jié)長的特長封包(jumbopacket)的應用,這樣的特長封包只要幾個便可占據內建的1M位存,造成網絡交換器的擁塞((congestion)。媒體存取控制器利用外掛或內建存儲器以緩沖暫存封包數據,媒體存取控制器包含轉送控制單元、隊列控制單元、緩沖器控制單元以及連接端口控制單元(未示)。緩沖器控制單元于初始化階段便規(guī)劃該外掛或內建的存儲器以建立適當的數據結構與格式,以利后續(xù)的運用。圖1顯示以太網絡封包100的結構,以太網絡封包100包含目的地址(DMAC)110、來源地址(SMAC)120、酬載(payload)130、以及循環(huán)冗余檢查碼(cyclicredundantcode,簡稱CRC)140,由以太網絡交換器(未示)外部接收進來的以太網絡封包100以緩沖器(buffer)為單位,緩沖器控制單元從存儲器配置適當大小的緩沖區(qū)予以暫存的,緩沖區(qū)包含一或多個緩沖器,舉例而言,每個緩沖器定義為128字節(jié)長,當一個256字節(jié)長的以太網絡封包100進入以太網絡交換器中時,需要占據暫存存儲器的兩個緩沖器的空間,也就是其緩沖區(qū)大小為256字節(jié)長;而當一個260字節(jié)長的以太網絡封包100進入以太網絡交換器中時,則需要占據暫存存儲器的三個緩沖器的空間,其緩沖區(qū)大小為384字節(jié)長;而當一個1522字節(jié)長的以太網絡封包100進入以太網絡交換器中時,則需要占據暫存存儲器的十二個緩沖器的空間,其緩沖區(qū)大小為1536字節(jié)長;緩沖器之間藉由適當的節(jié)點(node)編織(stitch)而形成對應的緩沖區(qū)?,F(xiàn)有技術當將以太網絡封包100轉送完畢之后,會將所配置的緩沖區(qū)釋放。圖2顯示典型用以暫存以太網絡封包的緩沖區(qū)的結構,該緩沖區(qū)包含多個緩沖器200、210、…、220、230,這些緩沖器200~230是依序地編織串接(stitch),這些緩沖器分別具有連結節(jié)點(linknode)202、212、222、232,第一緩沖器200藉由其連結節(jié)點202指向第二緩沖器210,第二緩沖器210藉由其連結節(jié)點212指向第三緩沖器(未示),依序指向至第N-1緩沖器220,第N-1緩沖器220藉由其連結節(jié)點222指向第N緩沖器230,其中將第二緩沖器210的編號寫入第一緩沖器200的連結節(jié)點202,使得第一緩沖器200藉由其連結節(jié)點202指向第二緩沖器210,此動作稱為編織串接,舉例而言,內建1M位存儲器,而以以太網絡交換器以每個緩沖器為128字節(jié)進行利用,則共可規(guī)劃出1024個緩沖器供使用,因此利用十位便可指出每個緩沖器的編號。(3)
發(fā)明內容本發(fā)明揭示一種早期釋放緩沖區(qū)的方法,包含下列步驟自來源連接端口接收以太網絡封包,配置具有多個緩沖器的緩沖區(qū)以儲存以太網絡封包,而這些緩沖器是依序地編織串接,將以太網絡封包開始轉送出目的連接端口,以及若目的連接端口是為全雙工傳輸模式,則當完成各緩沖器的轉送時,便即刻地釋放該各緩沖器,其中以太網絡封包可為單播封包、多播封包、甚至廣播封包;若目的連接端口是為半雙工傳輸模式,則較佳地當完成以太網絡封包的至少128字節(jié)長的轉送時,方可釋放已經傳送完成的緩沖器。本發(fā)明進一步揭示一種媒體存取控制芯片,包含多個連接端口控制單元,用以耦接實體層控制芯片;轉送控制單元,耦接于連接端口控制單元;隊列控制單元,耦接轉送控制單元及連接端口控制單元;以及緩沖器控制單元,用以耦接一緩沖存儲器及這些連接端口控制單元;其中,各連接端口控制單元具有用以計數已經傳送的封包長度的計數器以及用以記錄傳輸能力的傳輸模式緩存器,連接端口控制單元根據傳輸模式緩存器以及計數器,發(fā)訊緩沖器控制單元早期釋放該緩沖存儲器的空間;當連接端口控制單元接收到以太網絡封包,由緩沖器控制單元配置緩沖存儲器中具有多個緩沖器的緩沖區(qū)以儲存該以太網絡封包,若傳輸模式緩存器顯示連接端口控制單元為全雙工運作模式,則當連接端口控制單元正傳送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N是為大于1的正整數;而若傳輸模式緩存器顯示連接端口控制單元為半雙工運作模式,則當連接端口控制單元正傳送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N是為大于1的正整數。為進一步說明本發(fā)明的上述目的、結構特點和效果,以下將結合附圖對本發(fā)明進行詳細的描述。(4)圖1是顯示以太網絡封包的結構;圖2顯示典型用以暫存以太網絡封包的緩沖區(qū)的結構;圖3顯示根據本發(fā)明的早期釋放緩沖區(qū)的方法流程圖;以及圖4顯示根據本發(fā)明的硬件方塊圖的一具體實施例。(5)具體實施方式圖3顯示根據本發(fā)明的早期釋放緩沖區(qū)的方法流程圖,以具有多個連接端口及暫存存儲器的以太網絡交換器做為實施例說明,從步驟300開始,步驟310,自這些連接端口的一來源連接端口接收以太網絡封包;步驟320,以太網絡交換器根據以太網絡封包的大小,配置適當的緩沖區(qū)以儲存以太網絡封包,以太網絡交換器是依照固定大小的緩沖器為單位運用暫存存儲器,將緩沖器分別編號管理并依照適當方式予以編織串接,例如依照圖2的方式編織串接,使得以太網絡封包所相關聯(lián)而配置的緩沖區(qū)包含多個緩沖器200、210、…、220、230,以依序暫存以太網絡封包的數據,以太網絡封包可以區(qū)分為單播、多播、及廣播封包,本實施例以單播封包作為說明,單播封包中會指定目的地址及來源地址;步驟330,開始轉送以太網絡封包,于此實施例中,以太網絡封包會由來源連接端口被轉送到指定的目的連接端口;步驟340,檢查目的連接端口是否為全雙工,若是全雙工,則繼續(xù)步驟350,否則則繼續(xù)步驟360;步驟350,為全雙工目的連接端口進行早期釋放緩沖器,以太網絡交換器依序轉送緩沖器200、210、…、220、230,當目的連接端口為全雙工,在轉送完緩沖器200,接著開始轉送緩沖器210,便可立即地釋放緩沖器200,當開始轉送緩沖器220,便可立即地釋放緩沖器210,因為在確認是全雙工運作傳收模式下,不會有封包碰撞的情形發(fā)生,因此在開始轉送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N為大于1的正整數;步驟360,為半雙工目的連接端口進行早期釋放緩沖器,以太網絡交換器依序轉送第1、2、3、…、(N-2)、(N-1)、N個緩沖器,當目的連接端口為半雙工,在確定完成預定長度緩沖器的轉送時,方可開始進行緩沖器的早期釋放,較佳地,在確認送出128位組長度時,方可開始釋放緩沖器,舉例而言,假設每個緩沖器的大小為128字節(jié),在轉送完第1個緩沖器,接著開始轉送第2個緩沖器,即可釋放第1個緩沖器,也即于開始轉送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N為大于1的正整數,因為于此實施例中,每個緩沖器的大小為128字節(jié),而以太網絡中,依照CSMA/CD傳輸標準,必須保證傳輸信道上于傳輸64字節(jié)時間長度之間不可發(fā)生碰撞,如果實際傳輸違反CSMA/CD傳輸標準,會發(fā)生所謂的「遲碰撞(latecollision)」,通常發(fā)生在64至128位組長度之間,所以在確認是半雙工運作傳收模式下,較佳地于開始轉送第2個緩沖器時,方可釋放第1個緩沖器(若是定義每個緩沖器的大小為64字節(jié),則必須等到開始轉送第3個緩沖器時,方可釋放第1及2個緩沖器,依照硬件運作時所定義的緩沖器大小而異),目的連接端口確認開始傳送第2個緩沖器可確保占有此目的連接端口的傳輸信道,在確定成功傳輸之后,于開始轉送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N為大于1的正整數。在實際硬件實施時,可以根據以太網絡交換器所定義各緩沖器的大小,對于緩沖器為64字節(jié)而言,藉由計數每次傳送緩沖器大小過程中,是否已經傳送達128字節(jié),對于全雙工傳收模式傳送各緩沖器以及半雙工傳收模式傳送第2個緩沖器之后的各緩沖器而言,便可立即地釋放確定已經傳送完畢的緩沖器,被釋放出來的緩沖器便可提供稍后進來的以太網絡封包暫存,以達最有效率的暫存存儲器的運用。若是發(fā)生超過128字節(jié)時間長度的「超遲碰撞」,較佳地執(zhí)行丟棄(drop)封包傳輸的動作,以增加硬件使用率,而無法實施重新傳輸,因為先前的緩沖器已經被早期釋放了,這樣的情形是鮮少發(fā)生的,因為超遲碰撞是嚴重違反傳輸標準規(guī)范的。圖4顯示根據本發(fā)明的硬件方塊圖的一具體實施例,以太網絡交換器的內主要包含媒體存取控制(mediaaccesscontrol,簡稱MAC)芯片500,以及實體層控制(physicallayercontrol,簡稱PHY)芯片580,較佳地,媒體存取控制芯片500藉由精簡媒體獨立界面(reducedmediumindependentinterface,簡稱RMII)耦接實體層控制芯片580。媒體存取控制芯片500包含連接端口控制(portcontrol)單元510至517(以前述八端口以太網絡交換器為例,分別對應端口0至端口7)、轉送控制(forwardingcontrol)單元520、隊列控制(queuecontrol)單元530、緩沖器控制單元550以及緩沖存儲器560,連接端口控制單元510耦接轉送控制單元520、隊列控制單元530以及緩沖器控制單元550,緩沖器控制單元550耦接緩沖存儲器560。實體層控制芯片580負責以太網絡交換器對外實體電氣訊號的傳收,而以上本發(fā)明所揭示的流程方法則與媒體存取控制芯片500內部的運作設計有關,由以太網絡交換器的端口0所接收到封包數據,經由實體層控制芯片580首先到達連接端口控制單元510,由轉送控制單元520產生對應的端口屏蔽,舉例而言,藉由查表方式(look-uptable)產生對應的端口屏蔽,并由緩沖器控制單元550于緩沖存儲器560配置(allocate)適當的緩沖器大小以供該封包數據的暫存,然后由隊列控制單元530根據端口屏蔽建立隊列連結,隊列控制單元530可依照各端口的輸出隊列長度判斷各連接端口消秏緩沖存儲器560的狀況,而發(fā)訊給連接端口控制單元510適當地進行擁塞控制(congestioncontrol);連接端口控制單元510至517分別具有傳輸模式緩存器。更進一步地,以太網絡交換器于各連接端口剛開始建立鏈接時,會進行自動協(xié)調機制并利用傳輸模式緩存器記錄對方的傳輸能力,而各連接端口控制單元具有用以計數已經傳送的封包長度的計數器,對于各連接端口控制單元而言,每次傳送一個新的封包便會重新開始利用其計數器進行計數,舉例而言,連接端口控制單元517具有用以計數已經傳送的封包長度的計數器518以及用以記錄對方的傳輸能力的傳輸模式緩存器519,較佳地,連接端口控制單元517于每次傳送一個新的以太網絡封包時,便會重新開始利用其計數器518進行計數,當計數到64或者128時,則藉由傳輸模式緩存器519得知所記錄的目前連接端口517的實際傳輸模式,包括全雙工/半雙工傳收模式若當計數到64時,傳輸模式緩存器519顯示目前該連接端口517是全雙工傳輸,且目前傳送的以太網絡封包相關聯(lián)(associated)的端口屏蔽顯示連接端口517為最后一個應傳送的連接端口,則可立即地釋放已經傳送完的緩沖器;若當計數到128時,傳輸模式緩存器519顯示目前該連接端口517是半雙工傳輸,且目前傳送的以太網絡封包相關聯(lián)(associated)的端口屏蔽顯示連接端口517為最后一個應傳送的連接端口,方可釋放已經傳送完的緩沖器。尤其對于NAS/SAN系統(tǒng)中的特長封包(jumbopacket)而言,更能彰顯早期釋放緩沖區(qū)的優(yōu)點,避免封包占據有限存儲器空間過長的時間。圖4的實施例依照制程的進步可有不同程度的整合實施方式,舉例而言,緩沖存儲器560可以整合于媒體存取控制芯片500之中或者是外掛芯片,依照存取速度不同可以是靜態(tài)隨機存取存儲器(SRAM)、同步動態(tài)隨機存取存儲器(SDRAM)、或者DDR動態(tài)隨機存取存儲器等等,實體層控制芯片580由于制程特殊以及需要提供多個端口的實體層控制,通常屬于外掛芯片,但隨著未來整合度提高也有可能整合進媒體存取控制芯片500之中??v上所述,本發(fā)明揭示一種早期釋放緩沖區(qū)的方法,包含下列步驟自來源連接端口接收以太網絡封包,配置具有多個緩沖器的緩沖區(qū)以儲存以太網絡封包,而這些緩沖器是依序地編織串接,將以太網絡封包開始轉送出目的連接端口,以及若目的連接端口是為全雙工傳輸模式,則當完成各緩沖器的轉送時,便即刻地釋放該各緩沖器,其中以太網絡封包可為單播封包、多播封包、甚至廣播封包;若目的連接端口是為半雙工傳輸模式,則當完成以太網絡封包的至少128字節(jié)長的轉送時,方可釋放已經傳送完成的緩沖器。本發(fā)明進一步揭示一種媒體存取控制芯片,包含多個連接端口控制單元,用以耦接實體層控制芯片;轉送控制單元,耦接于連接端口控制單元;隊列控制單元,耦接轉送控制單元及連接端口控制單元;以及緩沖器控制單元,用以耦接一緩沖存儲器及這些連接端口控制單元;其中,各連接端口控制單元具有用以計數已經傳送的封包長度的計數器以及用以記錄傳輸能力的傳輸模式緩存器,連接端口控制單元根據傳輸模式緩存器以及計數器,發(fā)訊緩沖器控制單元早期釋放該緩沖存儲器的空間;當連接端口控制單元接收到以太網絡封包,由緩沖器控制單元配置緩沖存儲器中具有多個緩沖器的緩沖區(qū)以儲存該以太網絡封包,若傳輸模式緩存器顯示連接端口控制單元為全雙工運作模式,則當連接端口控制單元正傳送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N是為大于1的正整數,而不論各緩沖器的大小;而若傳輸模式緩存器顯示連接端口控制單元為半雙工運作模式,則當連接端口控制單元正傳送第N個緩沖器時,便可立即地釋放第(N-1)個緩沖器,其中N是為大于1的正整數,而各緩沖器大小是實質超過128字節(jié)長;而若各緩沖器大小是實質小于128字節(jié)長,較佳地當該各連接端口控制單元正傳送這些緩沖器的第N個緩沖器時,便可立即地釋放這些緩沖器的第(N-2)個緩沖器,其中N是為大于2的正整數。雖然本發(fā)明已參照當前的具體實施例來描述,但是本
技術領域:
中的普通技術人員應當認識到,以上的實施例僅是用來說明本發(fā)明,在沒有脫離本發(fā)明精神的情況下還可作出各種等效的變化和修改,因此,只要在本發(fā)明的實質精神范圍內對上述實施例的變化、變型都將落在本發(fā)明權利要求書的范圍內。權利要求1.一種早期釋放緩沖區(qū)的方法,包含下列步驟自一來源連接端口接收一以太網絡封包;配置一緩沖區(qū)以儲存該以太網絡封包,該緩沖區(qū)包含多個緩沖器,而這些緩沖器是依序地編織串接;將該以太網絡封包開始轉送出一目的連接端口;以及若該目的連接端口是為全雙工傳輸模式,則當完成各緩沖器的轉送時即刻地釋放該各緩沖器。2.如權利要求1所述的方法,其特征在于該以太網絡封包是為一單播封包。3.如權利要求1所述的方法,其特征在于該以太網絡封包是為一多播封包。4.如權利要求1所述的方法,其特征在于各緩沖器是為128字節(jié)。5.一種早期釋放緩沖區(qū)的方法,包含下列步驟自一來源連接端口接收一以太網絡封包;配置一緩沖區(qū)以儲存該以太網絡封包,該緩沖區(qū)包含多個緩沖器,而這些緩沖器是依序地編織串接;將該以太網絡封包開始轉送出一目的連接端口;以及若該目的連接端口是為半雙工傳輸模式,則當完成該以太網絡封包的一預定長度數據的轉送時,開始釋放已經傳送完成的緩沖器。6.如權利要求5所述的方法,其特征在于該以太網絡封包是為一單播封包。7.如權利要求5所述的方法,其特征在于該以太網絡封包是為一多播封包。8.如權利要求5所述的方法,其特征在于該預定長度數據是為64字節(jié)長。9.權利要求5所述的方法,其特征在于該預定長度數據是為128字節(jié)長。10.一種媒體存取控制芯片,包含多個連接端口控制單元,用以耦接一實體層控制芯片;一轉送控制單元,耦接于這些連接端口控制單元;一隊列控制單元,耦接該轉送控制單元及這些連接端口控制單元;以及一緩沖器控制單元,用以耦接一緩沖存儲器及這些連接端口控制單元;其中,各連接端口控制單元具有一用以計數已經傳送的封包長度的計數器以及一用以記錄傳輸能力的傳輸模式緩存器,該各連接端口控制單元根據該傳輸模式緩存器以及該計數器,發(fā)訊該緩沖器控制單元早期釋放該緩沖存儲器的空間。11.如權利要求10所述的媒體存取控制芯片,其特征在于該各連接端口控制單元接收一以太網絡封包,并由該緩沖器控制單元配置該緩沖存儲器中一具有多個緩沖器的緩沖區(qū)以儲存該以太網絡封包。12.如權利要求11所述的媒體存取控制芯片,其特征在于該各連接端口控制單元根據該傳輸模式緩存器以及該計數器,發(fā)訊該緩沖器控制單元,使得若該傳輸模式緩存器顯示該各連接端口控制單元為全雙工運作模式,則當該各連接端口控制單元正傳送這些緩沖器的一第N個緩沖器時,便可立即地釋放這些緩沖器的一第(N-1)個緩沖器,其中N是為大于1的正整數。13.如權利要求11所述的媒體存取控制芯片,其特征在于該各連接端口控制單元根據該傳輸模式緩存器以及該計數器,發(fā)訊該緩沖器控制單元,使得若該傳輸模式緩存器顯示該各連接端口控制單元為半雙工運作模式,則當該各連接端口控制單元正傳送這些緩沖器的一第N個緩沖器時,便可立即地釋放這些緩沖器的一第(N-1)個緩沖器,其中N是為大于1的正整數,而各緩沖器大小是超過128字節(jié)長。14.如權利要求11所述的媒體存取控制芯片,其特征在于該各連接端口控制單元根據該傳輸模式緩存器以及該計數器,發(fā)訊該緩沖器控制單元,使得若該傳輸模式緩存器顯示該各連接端口控制單元為半雙工運作模式,則當該各連接端口控制單元正傳送這些緩沖器的一第N個緩沖器時,便可立即地釋放這些緩沖器的一第(N-2)個緩沖器,其中N是為大于2的正整數,而各緩沖器大小是小于128字節(jié)長。15.如權利要求11所述的媒體存取控制芯片,其特征在于該各連接端口控制單元根據該傳輸模式緩存器以及該計數器,發(fā)訊該緩沖器控制單元,使得若該傳輸模式緩存器顯示該各連接端口控制單元為半雙工運作模式,則當該各連接端口控制單元已經傳送完該以太網絡封包的一預定長度數據時,方可開始釋放一已經被傳送完畢的緩沖器。16.如權利要求15所述的媒體存取控制芯片,其特征在于該預定長度數據是為128字節(jié)長。全文摘要一種早期釋放緩沖區(qū)的方法及其相關媒體存取控制芯片,該早期釋放緩沖區(qū)的方法,包含下列步驟自來源連接端口接收以太網絡封包,配置具有多個緩沖器的緩沖區(qū)以儲存以太網絡封包,而這些緩沖器是依序地編織串接,將以太網絡封包開始轉送出目的連接端口,以及若目的連接端口是為全雙工傳輸模式,則當完成各緩沖器的轉送時,便即刻地釋放該各緩沖器,其中以太網絡封包可為單播封包、多播封包、甚至廣播封包;若目的連接端口是為半雙工傳輸模式,較佳地當完成以太網絡封包的128字節(jié)長的轉送時,方可釋放已經傳送完成的緩沖器。文檔編號G06F13/00GK1612121SQ20031010468公開日2005年5月4日申請日期2003年10月30日優(yōu)先權日2003年10月30日發(fā)明者陳任凱,蔡文仲申請人:創(chuàng)惟科技股份有限公司