TWI703840B - 設置在交換器內的電路以及管理交換器中記憶體的方法 - Google Patents
設置在交換器內的電路以及管理交換器中記憶體的方法 Download PDFInfo
- Publication number
- TWI703840B TWI703840B TW108101627A TW108101627A TWI703840B TW I703840 B TWI703840 B TW I703840B TW 108101627 A TW108101627 A TW 108101627A TW 108101627 A TW108101627 A TW 108101627A TW I703840 B TWI703840 B TW I703840B
- Authority
- TW
- Taiwan
- Prior art keywords
- area
- egress
- memory
- sequences
- storage space
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
Abstract
本發明揭露了一種設置在一交換器內的電路,其包含有一記憶體以及一控制電路。該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小。
Description
本發明係有關於交換器,尤指一種管理交換器內之記憶體的方法。
交換器的作用就是收到一筆封包後會根據封包內容來轉發到適當的輸出埠,而基於許多原因,例如L2/L3多播傳輸、未知的媒體存取控制目的位址泛洪(unknown MAC DA flood)、高速輸入埠轉發到低速輸出埠、多個輸入埠轉發到同一個輸出埠等,所接收到的封包無法立即地傳送出去,而必須將封包存在一個記憶體,等到這些封包都已轉發到所有的輸出埠後,才會把儲存這筆封包的記憶體位址釋放出來給後續的封包來使用,而這塊記憶體由於主要的作用是拿來儲存封包,因此一般也被稱為封包緩衝器。
在現今交換機的技術日新月異,不管交換機的輸入/輸出埠速度和數量都在不斷地增加,在考量成本之下,封包緩衝器並無法大量地增加,在這種狀況下,如何讓所有輸入/輸出埠有效地使用這些有限的封包緩衝器空間就成為一個重要的課題了。
因此,本發明的目的之一在於提出一種設置在交換器內的電路及管理交換器內之記憶體的方法,其可以動態地配置封包緩衝器內的空間,以讓封包緩衝器的空間能夠作最有效的運用,以解決先前技術中的問題。
在本發明的一個實施例中,揭露了一種設置在一交換器內的電路,其包含有一記憶體以及一控制電路。該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小。
在本發明的另一個實施例中,揭露了一種管理一交換器中一記憶體的方法,其中該記憶體係包含至少一第一區域以及一第二區域,其中其中該第一區域係用來提供多個出口序列之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間,以及該方法包含有:當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小。
100:交換器
110:控制電路
120:記憶體
910:記錄表
Pin0~Pin2:輸入埠
P0~P2:輸出埠
Q_GUA_REMAIN、Q_GUA_USED、Qn_USED、Q_SHARE_USED:參數
Q_SHARE_TOTAL:第二區域的最大使用量
Q0:出口序列
ESG0~ESG3:出口序列群組
第1圖為根據本發明一實施例之交換器的示意圖。
第2圖為記憶體所包含了之第一區域以及第二區域的示意圖。
第3圖為根據本發明一實施例之調整第二區域的最大使用量的示意圖。
第4~7圖為根據本發明一實施例之動態調整第二區域的最大使用量的方法。
第8圖說明了應用在邏輯序列/虛擬序列之記憶體管理方法。
第9~10圖為根據本發明另一實施例之動態調整第二區域的最大使用量的方法。
第1圖為根據本發明一實施例之交換器100的示意圖。如第1圖所示,交換器100包含了多個輸入埠(本實施例以三個輸入埠Pin0、Pin1、Pin2為例)、多個輸出埠(本實施例以三個輸出埠P0、P1、P2為例)、一控制電路110以及一記憶體120。控制電路110係用來接收來輸入埠Pin0、Pin1、Pin2中至少其一的封包、並將該封包傳送至輸出埠P0、P1、P2中的至少其一。
當封包被輸入至交換器100時,封包會先被暫存至作為封包暫存器的記憶體120中,之後再透過控制電路110傳送至適當的輸出埠P0、P1、P2。在記憶體120的配置中,如第2圖所示,記憶體120係包含了至少一第一區域以及一第二區域,其中第一區域為每一個輸出埠之每一個出口序列(egress queue)的一最小保證儲存空間(圖示的斜線區域,Pm為輸出埠序號、Qn為出口序列序號),且第二區域為一共用儲存空間。關於第一區域,由於在記憶體120內設置了每一個出口序列的最小保證儲存空間,因此,以輸出埠P1的第一個出口序列Q1來進行說明,無論轉發到出口序列Q1的封包是甚麼時候輸入到交換器100中,只要記憶體120內目前所儲存之對應到出口序列Q1的封包沒有超過其最小保證儲存空間,則此封包就一定可以立即被儲存至記憶體120中,如此一來便可以提升每一個出口序列在使用記憶體120上的公平性。另外,第二區域係用來供每一個輸出埠之每
一個出口序列使用,以出口序列Q1來進行說明,若是記憶體120內目前所儲存之對應到出口序列Q1之封包總數已到達其最小保證儲存空間,則在第二區域尚有空間的情形下,後續輸入至交換器100且對應到出口序列Q1的封包便可直接儲存到第二區域中。
為了管理記憶體120中的第一區域以及第二區域,控制電路110會具有計數器以對每一個輸出埠之每一個出口序列之封包的輸入輸出做計算,以供判斷每一個出口序列的最小保證儲存空間的剩餘量,以進行記憶體120的管理。在一例子中,假設交換器100自輸入埠Pin1接收需要轉發至三個輸出埠P0、P1、P2的封包時,且若是三個輸出埠P0、P1、P2都未達到其最小保證儲存空間,則雖然記憶體120只會儲存一筆封包,但是三個輸出埠P0、P1、P2所對應到的最小保證儲存空間都會減少一筆封包的資料量。因此,在這種情況下,由於在最小保證儲存空間的計算上是三筆封包,但實際上記憶體120只儲存了一筆封包,因而造成記憶體120中兩筆封包之儲存空間的浪費,因而使得記憶體120的利用率降低。
因此,為了解決此一問題,本實施例提出了一種管理記憶體120的方法,其可以根據封包所需轉發至輸出埠的數量以及這筆封包在記憶體的第一區域上所使用空間數量,以動態地調整第二區域的大小,以更有效地利用記憶體120的儲存空間。
詳細來說,控制電路110會建立四個參數Qn_USED、Q_SHARE_USED、Q_GUA_USED以及Q_GUA_REMAIN來進行記憶體120的管理。參數Qn_USED是每一個出口序列都具有的參數,代表的是其對應的出口序
列在記憶體120的使用量,亦即,每當進來的封包會轉發到這個出口序列時,便會對此參數加上“1”;反之,當這筆進來的封包已從所有該轉發的出口序列送出時,會對所有轉發的出口序列相對應的參數Qn_USED減去“1”。參數Q_SHARE_USED是代表目前在記憶體120中有多少資料頁是被使用到該第二區域(亦即,共用儲存空間)的封包所占用的,計算方式是當進來封包轉發到的所有出口序列使用量都已個別滿足最小保證儲存空間設定值(亦即,封包轉發到的所有出口序列的最小保證儲存空間都已被寫滿),就可以對此參數加上“1”;而當有達到記憶體120內資料頁釋出條件的封包從出口序列送出時,並且參數Q_SHARE_USED大於0的狀況下,參數Q_SHARE_USED便會減去“1”。參數Q_GUA_USED可視為一已使用參數,代表目前在記憶體120中有多少使用量是被使用到最小保證儲存空間的封包所占用的,計算方式是進來的封包只要轉發到任一最小保證儲存空間都尚未被寫滿的出口序列,就可以對參數Q_GUA_USED加上“1”;而當參數Q_SHARE_USED等於零的狀況下,有封包從出口序列送出並且達到記憶體120內資料頁釋出的條件,則對參數Q_GUA_USED減去“1”。參數Q_GUA_REMAIN可視為一剩餘參數,是指記憶體120還須保留多少資料頁數量,來讓內部所有管理的出口序列可至少確保拿到各自的最小保證儲存空間的使用量,每當封包進來時,若這次的轉發要去的出口序列中有N個出口序列未滿足最小保證儲存空間,便會對參數Q_GUA_REMAIN減去“N”;而有封包從出口序列送出,只要這個出口序列所對應的參數Qn_USED小於最小保證儲存空間之設定值時,便可對參數Q_GUA_REMAIN加上“1”。
以上四個參數中只有參數Qn_USED是每一個出口序列都具有的,而其餘的三個參數Q_SHARE_USED、Q_GUA_USED以及Q_GUA_REMAIN都是所有出口序列所共用的參數。
參數Q_GUA_USED可視為在該第一區域已經使用的資料頁數量(在本實施例中可視為封包數量),而參數Q_GUA_REMAIN則是被當作在最差的情況下(進來的全是單播(unicast)封包),若要確保所有管理的出口序列至少都可拿到各自最小保證儲存空間,記憶體120所要保留下來的資料頁數量。接下來可以利用參數Q_GUA_USED和參數Q_GUA_REMAIN的總和來得到當前狀況下實際的最小保證儲存空間,而第二區域(亦即,共用儲存空間)最大的使用量可以用下列方程式來進行動態調整:Q_SHARE_TOTAL=Q_TOTAL-(Q_GUA_USED+Q_GUA_REMAIN),其中Q_SHARE_TOTAL為第二區域的最大使用量、Q_TOTAL為記憶體120的總共空間。
第3圖繪示了本實施例的概念,在初始狀態時(亦即,尚未接收到任何封包時),記憶體120包含之第一區域及第二區域分別對應到參數Q_GUA_REMAIN以及Q_SHARE_TOTAL。接著,當接收到多播(multicast)封包時,由於參數Q_GUA_USED與參數Q_GUA_REMAIN的總和會小於初始狀態的參數Q_GUA_REMAIN,故第二區域(亦即,共用儲存空間)的最大使用量Q_SHARE_TOTAL便會增加,以供儲存後續的封包。
以下以第4~7圖來說明本實施例之動態調整第二區域(亦即,共用儲存空間)的最大使用量Q_SHARE_TOTAL的方法。為了方便說明,以下的說明假設交換器100僅管理三個出口序列(P0,Q0)、(P1,Q0)、(P2,Q0),記憶體120中可供儲存封包的資料頁數量為“10”(亦即Q_TOTAL=10),每一筆封包的大小等於一個資料頁,並假設每一個出口序列的最小保證儲存空間均為“1”。因此,在此設
定下,交換機100在初始狀態下的參數Qn_USED、Q_SHARE_USED和Q_GUAE_USED都設成0,而Q_GUA_REMAIN則是所管理之出口序列的最小保證儲存空間的總和“3”,第二區域的最大使用量Q_SHARE_TOTAL是“7”。交換器100在初始狀態時的參數如第4圖所示。
在第5圖中,假設交換器100接收到第一筆封包,其中第一筆封包是要轉送到出口序列(P0,Q0)與(P1,Q0),而由於出口序列(P0,Q0)與(P1,Q0)的最小保證儲存空間尚未被寫滿,故參數Q_GUA_REMAIN會減去“2”而變成1,出口序列(P0,Q0)和(P1,Q0)的參數Qn_USED則是加上“1”,參數Q_GUA_USED也是加上“1”,而參數Q_SHARE_TOTAL在這個狀況下會調整成為8(亦即,10-1-1=8)。
在第6圖中,交換器100接收到第二筆封包,其中第二筆封包是要轉送到出口序列(P1,Q0)與(P2,Q0),由於出口序列(P2,Q0)的最小保證儲存空間尚未被寫滿,因此參數Q_GUA_REMAIN會減去“1”而變成0,出口序列(P1,Q0)的參數Qn_USED會加上“1”而變成“2”,出口序列(P2,Q0)的參數Qn_USED則是加上“1”而變成“1”,參數Q_GUA_USED也是加上“1”而變成“2”,此時參數Q_SHARE_TOTAL維持在8(亦即,10-2-0=8)。
在第7圖中,交換器100接收到第三筆封包,其中第三筆封包是要轉送到出口序列(P0,Q0)、(P1,Q0)與(P2,Q0),由於出口序列(P0,Q0)、(P1,Q0)與(P2,Q0)的最小保證儲存空間都已被寫滿,因此,參數Q_GUA_REMAIN不會進行運算且其值仍舊維持在0,出口序列(P0,Q0)、(P1,Q0)和(P2,Q0)的參數Qn_USED會各自加上“1”而分別變成“2”、“3”、“2”,而由於第三筆封包要轉發的所有出口序列的最小保證儲存空間都已被寫滿,因此參數Q_SHARE_USED會加
上“1”而變成“1”,此外,參數Q_SHARE_TOTAL在這個狀況維持在8(亦即,10-2-0=8)。
如以上第4~7圖所述,在本實施例之根據多播封包來動態調整第二區域的最大使用量Q_SHARE_TOTAL中,即使在出口序列(P0,Q0)、(P1,Q0)與(P2,Q0)的最小保證儲存空間都已被寫滿後,參數Q_SHARE_TOTAL也可以從初始狀態的“7”調高變成了“8”,來達到提高記憶體120之利用率的效果。
另外,當儲存在記憶體120內的封包由輸出埠P0~P2輸出時,第二區域的最大使用量Q_SHARE_TOTAL也會進行動態地調整。接續著第7圖所示的範例來說明,首先,假設一開始送出來的封包是進來的上述第三筆封包,在封包分別從出口序列(P0,Q0)、(P1,Q0)、(P2,Q0)送出後,出口序列(P0,Q0)、(P1,Q0)、(P2,Q0)的參數Qn_USED會各自減去“1”而分別變成“1”、“2”、“1”;此時由於出口序列(P0,Q0)、(P1,Q0)、(P2,Q0)的最小保證儲存空間都已被寫滿,故參數Q_GUA_REMAIN不會進行運算且其值仍舊維持在0,參數Q_SHARE_USED會減去“1”而變成0,參數Q_SHARE_TOTAL此時仍是繼續維持在“8”。
接著,假設接下來送出來的封包是轉送到出口序列(P0,Q0)和(P1,Q0)的第一筆封包,在第一筆封包分別從出口序列(P0,Q0)和(P1,Q0)送出後,出口序列(P0,Q0)和(P1,Q0)的參數Qn_USED會各自減去“1”來分別變成“0”和“1”,而封包送出時出口序列(P0,Q0)的最小保證儲存空間都尚未寫滿,故參數Q_GUA_REMAINING會加上“1”而變成“1”,參數Q_SHARE_USED會減去“1”而變成“1”,而此時參數Q_SHARE_TOTAL仍是繼續維持在“8”。
接著,假設接下來送出來的封包是轉送到出口序列(P1,Q0)和(P2,Q0)的第二筆封包,在第二筆封包分別從出口序列(P1,Q0)和(P2,Q0)送出後,出口序列(P1,Q0)和(P2,Q0)的參數Qn_USED會各自減去“1”而全變成“0”,而封包送出時由於出口序列(P1,Q0)和(P2,Q0)的最小保證儲存空間都尚未寫滿,故參數Q_GUA_REMAIN會加上“2”而變成“3”,參數Q_GUA_USED減去“1”而變成“0”,而參數Q_SHARE_TOTAL此時將會變成“7”(10-0-3=7)。
經過上述將第三筆封包、第一筆封包、第二筆封包依序傳送出去之後,上述的參數也都回歸到最初始的狀態,過程中也動態調整了第二區域的最大使用量Q_SHARE_TOTAL,因此可以反映出本實施例在運作上的正確性及可行性。
以上第1~7圖所述之管理出口序列的方法並不僅限於實體序列(physical queue),而也可以適用於邏輯序列(logical queue)或是虛擬序列(virtual queue)。第8圖說明了應用在邏輯序列/虛擬序列之記憶體120的管理方法。參考第8圖,記憶體120的下方區域係分配每個出口序列至少可以使用到記憶體空間,亦即每一個出口序列的一最小保證儲存空間,因此,以輸出埠P1的第一個出口序列Q1來進行說明,無論轉發到出口序列Q1的封包是甚麼時候輸入到交換器100中,只要記憶體120內目前所儲存之對應到出口序列Q1的封包沒有超過其最小保證儲存空間,則此封包就一定可以立即被儲存至記憶體120中,如此一來便可以提升每一個出口序列在使用記憶體120上的公平性。記憶體120的中間區域則是把一些出口序列根據應用集合起來成為出口序列群組(egress system group)ESG0~ESG3,例如把所有傳遞影音資料的出口序列集合成為一個出口序列群組,或是把上行傳輸埠內部的所有出口序列集合成為另一個出口序列群
組。而針對每一個出口序列群組,其所對應到之中間區域可視為其中之多個出口序列的共享空間,以出口序列群組ESG0中的出口序列Q1來進行說明,若是記憶體120內目前所儲存之對應到出口序列Q1之封包總數已到達其最小保證儲存空間,則在出口序列群組ESG0所對應之中間區域尚有空間的情形下,後續輸入至交換器100且對應到出口序列Q1的封包便可直接儲存到出口序列群組ESG0所對應之中間區域中。記憶體120的上方區域則可視為所有出口序列群組ESG0~ESG3的一共用區域,而上方區域的配置是考慮到每一筆進來的封包可能會使用到記憶體120中的多個資料頁,因此當封包傳到一半已用完了第二區域的記憶空間時,為了讓這筆正在處理的封包能夠持續的傳輸完成,在這個狀況下,這筆封包後續的內容就會被儲存至上方區域。
第8圖所示的每一個出口序列群組ESG0~ESG3可以是所謂的邏輯序列/虛擬序列,會將多個實體出口序列根據應用來加以集合,並成為一個管理單位,而每一個邏輯序列/虛擬序列在記憶體120的使用上也會類似第2圖所示地給予每一個出口序列群組ESG0~ESG3所能使用的空間(亦即,每一個邏輯序列/虛擬序列、或是出口序列群組ESG0~ESG3的記憶體配置方法可以如第2~7圖的實施例所述),而上方區域則是邏輯序列/虛擬序列能共享的空間,其概念可類比為第2圖提到之多個出口序列所共同使用的第二區域,因此上述第2~7圖之實施例亦可套用在邏輯序列/虛擬序列中。
舉例來說,參考第9圖,其為根據本發明一實施例之動態調整記憶體120之上方區域(亦即,所有出口序列群組ESG0~ESG3之共用儲存空間)的最大使用量Q_SHARE_TOTAL的方法。為了方便說明,以下的說明假設交換器100僅管理三個出口序列群組ESG0~ESG2(亦即,三個邏輯序列/虛擬序列),記憶體120
中可供儲存封包的資料頁數量為“10”(亦即Q_TOTAL=10),每一筆封包的大小等於一個資料頁,並假設每一個出口序列群組的最小保證儲存空間均為“1”。因此,在此設定下,交換機100在初始狀態下的參數Qn_USED、Q_SHARE_USED和Q_GUAE_USED都設成0,而參數Q_GUA_REMAIN則是所管理之出口序列的最小保證儲存空間的總和“3”,共用儲存空間的最大使用量Q_SHARE_TOTAL是“7”。
在第9圖中,假設第一筆封包是轉送到出口序列群組ESG0、ESG1、ESG2,而由於出口序列群組ESG0、ESG1、ESG2的最小保證儲存空間尚未被寫滿,因此,參數Q_GUA_REMAIN會減去“3”而變成“0”,出口序列群組ESG0、ESG1和ESG2相對應的Qn_USED則是加上“1”而變為“1”,參數Q_GUA_USED也是加上“1”而變為“1”,參數Q_SHARE_TOTAL在這個狀況下調整成“9”。此外,控制電路110會將要轉發的出口序列群組位置記錄在一記錄表910中。
另外,當儲存在記憶體120內的封包由輸出埠P0~P2輸出時,記憶體120之上方區域的最大使用量Q_SHARE_TOTAL也會進行動態地調整。具體來說,在封包分別從ESG0、ESG1和ESG2送出後,根據記錄表910來將相對應的參數Qn_USED會各自減去“1”而分別變成“0”、“0”、“0”。此時,由於ESG0、ESG1和ESG2送出後所對應的最小保證儲存空間都尚未寫滿,於是參數Q_GUA_REMAIN會加上“3”而變成“3”,參數Q_SHARE_USED會減去“1”的運算而變成“0”,參數Q_SHARE_TOTAL在這個狀況會調整成“7”。
簡要歸納本發明,在本發明之設置在交換器內的電路及管理交換器內之記憶體的方法中,透過根據輸入封包所需轉發至輸出埠的數量以及剩餘最
小保證儲存空間的數量,以動態地調整出口序列之共用區域的大小,可以讓記憶體/封包緩衝器的空間作最有效的運用。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
120:記憶體
Q_GUA_REMAIN、Q_GUA_USED:參數
Q_SHARE_TOTAL:第二區域的最大使用量
Claims (9)
- 一種設置在一交換器內的電路,包含有:一記憶體,其中該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列(egress queue)之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及一控制電路,耦接於該記憶體,其中當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小;其中當該輸入封包需要被轉發至多個出口序列,且每一個出口序列在該第一區域尚具有最小保證儲存空間時,該控制電路增加該第二區域的大小。
- 一種設置在一交換器內的電路,包含有:一記憶體,其中該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列(egress queue)之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及一控制電路,耦接於該記憶體,其中當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小;其中當該輸入封包需要被轉發至多個出口序列,且該多個出口序列在該第一區域具有最小保證儲存空間的數量大於1時,該控制電路增加該第二區域的大小。
- 一種設置在一交換器內的電路,包含有:一記憶體,其中該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列(egress queue)之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及一控制電路,耦接於該記憶體,其中當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小;其中該控制電路記錄了對應至該第一區域的一已使用參數以及一剩餘參數,且該控制電路根據該已使用參數以及該剩餘參數以動態地決定該第二區域的大小。
- 如申請專利範圍第3項所述之電路,其中該已使用參數為該第一區域所儲存之該輸入封包的數量,該剩餘參數為該第一區域的一預設大小減去該輸入封包所對應之在該第一區域具有最小保證儲存空間的出口序列的數量,以及該控制電路將一總共空間減去該已使用參數以及該剩餘參數的總和以得到該第二區域的大小。
- 如申請專利範圍第4項所述之電路,其中當該輸入封包需要被轉發至多個出口序列,且該多個出口序列中有N個出口序列在該第一區域尚具有最小保證儲存空間時,該控制電路將該已使用參數加上一,並將該剩餘參數減去N。
- 一種設置在一交換器內的電路,包含有:一記憶體,其中該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列(egress queue)之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及一控制電路,耦接於該記憶體,其中當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,該控制電路根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小;其中當該記憶體內所儲存的該輸入封包所對應的多個出口序列透過該交換器的多個輸出埠傳送出時,該控制電路根據該多個出口序列的數量以動態地決定該第二區域的大小。
- 如申請專利範圍第6項所述之電路,其中當該記憶體內所儲存的該輸入封包所對應的該多個出口序列透過該交換器的多個輸出埠傳送出時,若是該多個出口序列在該第一區域具有最小保證儲存空間的數量大於1,該控制電路減少該第二區域的大小。
- 如申請專利範圍第6項所述之電路,其中該控制電路記錄了對應至該第一區域的一已使用參數以及一剩餘參數,該已使用參數為該第一區域所儲存之該輸入封包的數量,該剩餘參數為該第一區域的一預設大小減去該輸入封包所對應之在該第一區域具有最小保證儲存空間的出口序列的數量,以及該控制電路將一總共空間減去該已使用參數以及該剩餘參數的總和以得到該第二區域的大小。
- 一種管理一交換器中一記憶體的方法,其中該記憶體係包含至少一第一區域以及一第二區域,其中該第一區域係用來提供多個出口序列(egress queue)之每一個出口序列的一最小保證儲存空間,且該第二區域係用來提供該多個出口序列的一共用儲存空間;以及該方法包含有:當該交換器的一輸入埠接收到一輸入封包並將該輸入封包儲存至該記憶體時,根據該輸入封包所需被轉發至出口序列的數量,以動態地決定該第二區域的大小;其中當該輸入封包需要被轉發至多個出口序列,且每一個出口序列在該第一區域尚具有最小保證儲存空間時,增加該第二區域的大小。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108101627A TWI703840B (zh) | 2019-01-16 | 2019-01-16 | 設置在交換器內的電路以及管理交換器中記憶體的方法 |
US16/679,344 US11388115B2 (en) | 2019-01-16 | 2019-11-11 | Circuit within switch and method for managing memory within switch |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108101627A TWI703840B (zh) | 2019-01-16 | 2019-01-16 | 設置在交換器內的電路以及管理交換器中記憶體的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202029706A TW202029706A (zh) | 2020-08-01 |
TWI703840B true TWI703840B (zh) | 2020-09-01 |
Family
ID=71516979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108101627A TWI703840B (zh) | 2019-01-16 | 2019-01-16 | 設置在交換器內的電路以及管理交換器中記憶體的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11388115B2 (zh) |
TW (1) | TWI703840B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI785759B (zh) * | 2021-04-26 | 2022-12-01 | 新加坡商瑞昱新加坡有限公司 | 封包轉發裝置及佇列管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW429705B (en) * | 1999-05-15 | 2001-04-11 | Via Tech Inc | Shared memory allocation method to improve the accessing efficiency |
US7852867B2 (en) * | 2007-07-06 | 2010-12-14 | Integrated Deoice Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
TWI525445B (zh) * | 2010-03-25 | 2016-03-11 | 萬國商業機器公司 | 用以無頭互連晶片中增強鏈路頻寬之方法、電路、多路徑區域機架互連系統以及設計結構 |
US9584432B2 (en) * | 2000-03-22 | 2017-02-28 | Texas Instruments Incorporated | Circular time differencing add/subtract delta to TMAX on sign, MSB |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB706298A (en) * | 1951-07-16 | 1954-03-24 | Ebauches Sa | Method for comparing the frequencies of two high-frequency generators and apparatus for carrying out this method |
US6219728B1 (en) * | 1996-04-22 | 2001-04-17 | Nortel Networks Limited | Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor |
US6456590B1 (en) * | 1998-02-13 | 2002-09-24 | Texas Instruments Incorporated | Static and dynamic flow control using virtual input queueing for shared memory ethernet switches |
AU4848799A (en) * | 1998-07-08 | 2000-02-01 | Broadcom Corporation | High performance self balancing low cost network switching architecture based ondistributed hierarchical shared memory |
CN1203684C (zh) * | 1999-12-30 | 2005-05-25 | 康涅克森特系统公司 | 用于通信设备的、带有并行通道的纵横制集成电路 |
ATE404001T1 (de) * | 2000-09-12 | 2008-08-15 | Ibm | System und verfahren zur steuerung des mehrfachdatenverkehrs einer datenvermittlungsstelle |
CA2355473A1 (en) * | 2000-09-29 | 2002-03-29 | Linghsiao Wang | Buffer management for support of quality-of-service guarantees and data flow control in data switching |
JPWO2012133211A1 (ja) * | 2011-03-25 | 2014-07-28 | 日本電気株式会社 | データ転送装置及びデータ転送方法 |
US10015112B2 (en) * | 2015-12-08 | 2018-07-03 | Mellanox Technologies Tlv Ltd. | Memory-efficient handling of multicast traffic |
US10069701B2 (en) * | 2016-01-13 | 2018-09-04 | Mellanox Technologies Tlv Ltd. | Flexible allocation of packet buffers |
US10250530B2 (en) * | 2016-03-08 | 2019-04-02 | Mellanox Technologies Tlv Ltd. | Flexible buffer allocation in a network switch |
-
2019
- 2019-01-16 TW TW108101627A patent/TWI703840B/zh active
- 2019-11-11 US US16/679,344 patent/US11388115B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW429705B (en) * | 1999-05-15 | 2001-04-11 | Via Tech Inc | Shared memory allocation method to improve the accessing efficiency |
US9584432B2 (en) * | 2000-03-22 | 2017-02-28 | Texas Instruments Incorporated | Circular time differencing add/subtract delta to TMAX on sign, MSB |
US7852867B2 (en) * | 2007-07-06 | 2010-12-14 | Integrated Deoice Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
TWI525445B (zh) * | 2010-03-25 | 2016-03-11 | 萬國商業機器公司 | 用以無頭互連晶片中增強鏈路頻寬之方法、電路、多路徑區域機架互連系統以及設計結構 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI785759B (zh) * | 2021-04-26 | 2022-12-01 | 新加坡商瑞昱新加坡有限公司 | 封包轉發裝置及佇列管理方法 |
US11575616B2 (en) | 2021-04-26 | 2023-02-07 | Realtek Singapore Pte Ltd. | Packet forwarding device and queue management method |
Also Published As
Publication number | Publication date |
---|---|
US20200228468A1 (en) | 2020-07-16 |
US11388115B2 (en) | 2022-07-12 |
TW202029706A (zh) | 2020-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9800513B2 (en) | Mapped FIFO buffering | |
US7953002B2 (en) | Buffer management and flow control mechanism including packet-based dynamic thresholding | |
US8218546B2 (en) | Interleaved processing of dropped packets in a network device | |
US9178830B2 (en) | Network processor unit and a method for a network processor unit | |
US10567307B2 (en) | Traffic management for high-bandwidth switching | |
US10686714B2 (en) | Traffic management for high-bandwidth switching | |
US7461214B2 (en) | Method and system for accessing a single port memory | |
US20060018329A1 (en) | Network interconnect crosspoint switching architecture and method | |
US20110038261A1 (en) | Traffic manager and a method for a traffic manager | |
US11700209B2 (en) | Multi-path packet descriptor delivery scheme | |
US20200177521A1 (en) | Use of stashing buffers to improve the efficiency of crossbar switches | |
CA2459001A1 (en) | Shared memory data switching | |
CN101499956A (zh) | 分级缓冲区管理系统及方法 | |
TWI703840B (zh) | 設置在交換器內的電路以及管理交換器中記憶體的方法 | |
CN108768898A (zh) | 一种片上网络传输报文的方法及其装置 | |
US8599694B2 (en) | Cell copy count | |
Lin et al. | Two-stage fair queuing using budget round-robin | |
CN111447154B (zh) | 设置在交换器内的电路以及管理交换器中的存储器的方法 | |
US20080181247A1 (en) | Method and apparatus for processing queue in network system | |
Shan et al. | Less is More: Dynamic and Shared Headroom Allocation in PFC-Enabled Datacenter Networks | |
Reddy et al. | Efficient and novel distributed packet buffers and high-bandwidth switches and routers | |
CN116204298A (zh) | 一种确定反压水线值的方法和相关装置 | |
Eberle | Switcherland-A Scalable Interconnect for Distributed Multimedia Systems | |
AU2002345294A1 (en) | Shared memory data switching | |
JPH0870303A (ja) | Vpシェーパー |