TWI700912B - 運算裝置中預測封包壽命之佇列系統 - Google Patents

運算裝置中預測封包壽命之佇列系統 Download PDF

Info

Publication number
TWI700912B
TWI700912B TW108121242A TW108121242A TWI700912B TW I700912 B TWI700912 B TW I700912B TW 108121242 A TW108121242 A TW 108121242A TW 108121242 A TW108121242 A TW 108121242A TW I700912 B TWI700912 B TW I700912B
Authority
TW
Taiwan
Prior art keywords
queue
rate
memory
state
threshold
Prior art date
Application number
TW108121242A
Other languages
English (en)
Other versions
TW202002596A (zh
Inventor
克雷格 R 菲林克
Original Assignee
美商瞻博網路公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商瞻博網路公司 filed Critical 美商瞻博網路公司
Publication of TW202002596A publication Critical patent/TW202002596A/zh
Application granted granted Critical
Publication of TWI700912B publication Critical patent/TWI700912B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6295Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明揭示用於網路裝置之一佇列系統之技術。在一項實例中,一網路裝置包含複數個記憶體及連接至該複數個記憶體之處理電路。該複數個記憶體包含處理電路之一本端記憶體及該處理電路之一外部記憶體。該處理電路經組態以接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中且基於該佇列之一移出佇列速率判定該網路封包之一預測壽命。該處理電路進一步經組態以基於該預測壽命自該複數個記憶體選擇一第一記憶體,且回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。

Description

運算裝置中預測封包壽命之佇列系統
本發明一般而言係關於運算裝置,且特定而言係關於網路化裝置中之佇列。
一電腦網路係可交換資料及共用資源之互連網路裝置之一集合。實例網路裝置包含路由器、交換機、及在開放系統互連(OSI)參考模型之第二層(即,資料鏈路層)內操作之其他第二層(L2)網路裝置、及在OSI參考模型之第三層(即,網路層)內操作之第三層(L3)網路裝置。電腦網路內之網路裝置通常包含為網路裝置提供控制平面功能之一控制單元及用於路由或切換資料單元之轉發組件。
一電腦網路之一網路交換機可使用一佇列來幫助提供發送器與接收器之間的頻寬匹配。更具體而言,網路交換機以一相對快速率自一發送器接收封包。網路交換機以一相對慢速率將經接收封包之一部分自發送器發送至一接收器,且將經接收封包之一剩餘部分儲存於佇列中。在傳輸經接收封包之部分之後,網路交換機以相對慢速率將儲存於佇列中之封包傳輸至接收器。
通常,本發明描述用於網路裝置中之改良佇列系統之技術。一網路裝置(諸如一路由器或一交換機)可在封包轉發引擎之間內部切換之前或在透過網路傳輸封包之前將封包排入佇列於一或多個佇列中。可將一佇列之封包儲存於一延遲頻寬緩衝器中,該延遲頻寬緩衝器可經實施為一「混合記憶體」,該「混合記憶體」包含本端記憶體(例如,晶載記憶體)及外部記憶體(例如,高頻寬記憶體(HBM))兩者。
據此,本發明之技術描述用於在本端記憶體與外部記憶體之間進行選擇之預測封包「壽命」(本文中亦被稱為「預測壽命」)之用於一網路裝置之一佇列系統。壽命係一封包期望駐留於延遲頻寬緩衝器中之時間之一預測。根據所描述技術,一網路裝置將具有一「短」壽命之封包(例如,在時間上被快速寫入及讀取之封包)儲存於本端記憶體中且將具有一「長」壽命之封包(例如,被寫入但與具有一短壽命之封包相比在時間上晚得多被讀取之封包)儲存於外部記憶體中。
本發明之技術使用壽命來藉由預料封包之延遲頻寬緩衝器要求,且針對封包之預測壽命將封包放置於「最佳」記憶體中來最佳化混合記憶體效能。例如,一網路裝置可將快速進入及退出延遲頻寬緩衝器之封包儲存於本端記憶體中,且將「逗留」封包儲存於外部記憶體中。本文中所描述之技術可藉由量測佇列之佇列長度(在本文中亦被稱為「Qlength」)及移出佇列(dequeue)速率(在本文中亦被稱為「DQrate」(例如,傳輸速率))來預測佇列延時。延時量度係一封包期望駐留於佇列中之時間。另外,該技術可在等待佇列長度及延時增長之前判定佇列壅塞且將經歷壅塞之佇列移動至外部記憶體,此可幫助避免寶貴之本端記憶體使用。
在一項實例中,本發明描述一種方法,其包含:由一網路化裝置之處理電路接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;由該處理電路基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;由該處理電路基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體,其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及由該處理電路回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
在另一實例中,本發明描述一種網路化裝置,其包含:複數個記憶體,其等包括處理電路之一本端記憶體及該處理電路之一外部記憶體;且該處理電路經連接至該複數個記憶體。該處理電路經經組態以:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;基於該預測壽命自該複數個記憶體選擇一第一記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
在另一實例中,本發明描述一種包含指令之非暫時性電腦可讀媒體,該等指令在被執行時致使一網路化裝置之處理電路:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體,其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
在隨附圖式及下文描述中闡述本發明之技術之一或多項實例之細節。自描述及圖式且自發明申請專利範圍,該等技術之其他特徵、目的及優點將顯而易見。
優先權主張
本申請案主張2018年6月27日申請之美國專利申請案第16/020,842號之權益,該案之全部內容以引用方式併入本文中。
圖1係繪示一實例系統102之一方塊圖,其中網路104包含路由器106A至106B (統稱為路由器106)。裝置110A至110N (統稱為裝置110)經由路由器106連接至網路104以便存取由網路104提供之資源。裝置110之各者可為一終端使用者運算裝置,諸如一個人電腦、一膝上型電腦、一行動電話、一網路電話、一電視機上盒、一視訊遊戲系統、一銷售點裝置、一個人數位助理、一中間網路裝置、一網路器具、一超級電腦、一主機電腦、一工業機器人、或能夠與網路104介接且透過網路104通信之另一類型之裝置。
網路104可包含促進由裝置110存取內容之複數個網路裝置。複數個網路裝置之各者可包括以下一者:一路由器、一交換機、一伺服器、一資料庫伺服器、一集線器、一防火牆、一入侵偵測/防禦(IDP)裝置及/或促進將資料傳送至裝置110及自裝置110傳送資料之任何其他類型之網路化設備或裝置。網路104包含使用各種協定(諸如邊界閘道協定及網際網路控制訊息協定)進行通信以便交換路由、網路組態資訊及其他資訊之路由器106。網路可為一區域網路(「LAN」) (諸如一符記環或乙太網路)、一虛擬區域網路(「VLAN」)或另一類型之網路。網路可包括一或多個有線或無線鏈路。例如,網路104可為包括一或多個乙太網路電纜之一乙太網路。在另一實例中,網路可為使用無線無線電傳輸來傳達資訊之一無線保真(「Wi-Fi」)網路。在另一實例中,網路104可為一行動網路。儘管圖1中被展示為單個網路104,但網路104可包括任何數目個互連網路(公共的或私人的),其中各種網路互連以形成一或多個虛擬網路。
網路104提供可由裝置110存取之各種資源。在圖1之實例中,網路104包含儲存或以其他方式供應內容之內容伺服器112,該內容如本文所使用之術語般指代通常在一網路內傳輸及/或儲存之任何資料,諸如基於網路之應用程式、影像、文件、網頁、視訊資料、音訊資料(諸如語音)、基於於網路之遊戲、指令碼或任何其他類型之基於網路之內容。網路104可支援多播技術以改良利用網路傳輸之資料之遞送效率。通常,網路104亦將連接至各種其他類型之裝置(例如,檔案伺服器、印表機、電話、及電子郵件及其他應用程式伺服器)。網路104亦被展示為經由路由器106B耦合至公共網路114 (例如,網際網路)。公共網路114可包含例如一或多個客戶端運算裝置。公共網路114可提供對網路伺服器、應用程式伺服器、公共資料庫、媒體伺服器、終端使用者裝置、及許多其他類型之網路資源裝置及內容之存取。
網路104可使用一或多個基於封包之協定(諸如一網際網路協定(IP)/傳輸控制協定(TCP))透過路由器106A將內容傳輸至裝置110。在此方面,網路104可支援經由離散資料單元(通常被稱為「封包」)傳輸資料。因此,網路104可被稱為一「基於封包」或「封包交換」網路。雖然在本發明中被描述為傳輸、輸送或以其他方式支援封包,但網路104可根據由任何其他協定定義之任何其他離散資料單元(諸如由非同步傳送模式(ATM)協定定義之一小區或由使用者資料報協定(UDP)定義之一資料報)傳輸資料。
可根據數種類別對由網路104遞送之網路訊務進行分類。例如,內容伺服器112可透過路由器106A將即時視訊串流傳輸至裝置110之一者。傳輸此視訊之封包可被分類為串流多媒體封包。內容伺服器112亦可使用HTTP封包將網頁發送至裝置110之一者。作為另一實例,由路由器106交換之資訊可被分類為網路管理訊務。除按應用分類以外,網路訊務亦可按源或目的地、使用者、協定及埠(用於TCP及UDP)以及其他特性進行分類。
各種類別之網路訊務可能需要一特定位準之網路效能。例如,串流多媒體可能需要保證頻寬以提供一可接受使用者體驗。作為另一實例,網路管理訊務應經歷低延時以便維持一網路之效率。再者,網際網路服務提供者(ISP)可基於一服務提供者協議使特定使用者之訊務優先於其他使用者之訊務。為了滿足此等要求,網路104包含根據數個預定義QoS位準支援服務品質(QoS)保證之機制。
路由器106接收、分析及分類封包以將封包指派給一合適優先級位準。除對封包進行分類以外,路由器106亦根據其等優先級位準處理經接收且經分類之封包。以此方式,路由器106實施由網路104提供之QoS保證之態樣。此外,基於自系統102中之其他裝置接收之資訊,路由器106針對各經接收之封包判定通過系統之適當路線且據此轉發該封包。
路由器106可調節傳輸封包之一速度以防止網路上之氾濫。例如,路由器106可包含一符記桶成形器,該符記桶成形器花費「符記」以使對應量之位元組自一佇列移出佇列並透過網路傳輸該等位元組,且若符記桶成形器不具足夠符記來花費則可不傳輸封包。換言之,各符記可對應於允許符記桶成形器自佇列移出佇列且透過網路傳輸之位元組之一數目。以此方式,符記桶成形器用來調節自佇列移除封包且在網路上傳輸之速度。
路由器106可使用一延遲頻寬緩衝器(DBB)作為封包之主儲存器。用於網路裝置之延遲頻寬緩衝器可包含例如本端記憶體(舉例而言諸如晶載記憶體(OCM)),且可使用一外部記憶體(舉例而言諸如高頻寬記憶體(HBM))進一步增加。延遲頻寬緩衝器為較快發送器與較慢接收器(諸如使用傳輸控制協定(TCP)之彼等)之間的頻寬匹配提供緩衝。然而,隨著埠速度增加,外部記憶體頻寬在所有情況下可能不再支援全封包速率,例如,其可能僅提供半線速率頻寬。為了補償,可包含一更快但小得多之晶載記憶體作為延遲頻寬緩衝器之部分,亦被稱為例如「混合記憶體」。混合記憶體可在封包利用晶載記憶體時具有線速率效能,但可僅在利用外部記憶體時具有線速率之一部分。當足夠數目個封包利用晶載記憶體(例如,在外部記憶體具有半線速率效能之情況下超過50%)且剩餘封包適合在可用外部記憶體頻寬內時,線速率效能係可能的。若過多封包利用頻寬受限之外部記憶體,使得外部記憶體變為頻寬過度預訂,則效能降級,可能至外部記憶體頻寬限度之位準。
一些網路裝置(例如,路由器)可僅使用一段佇列(本文中亦被稱為佇列長度或簡稱為「Qlength」)在本端記憶體與外部記憶體之間進行選擇。然而,雖然淺佇列(例如,小Qlength)通常具有短於深佇列之一壽命(例如,封包儲存於佇列中之一持續時間),但單單佇列長度並不總是壽命之一良好預測因子。例如,儲存於具有一相對快移出佇列速率之一深佇列中之一第一封包可具有短於儲存於具有一相對慢移出佇列速率之一淺佇列中之一第二封包之一壽命。因而,此等網路裝置可將具有相對短壽命之第一封包儲存於外部記憶體中且將具有相對長壽命之第二封包儲存於本端記憶體中,此可能導致網路裝置之線速率效能之一非期望降低。
據此,本發明之技術描述可使用一預測壽命在本端記憶體與外部記憶體之間進行選擇的用於一路由器106之一佇列系統,而非僅僅依賴於佇列長度。預測壽命可指代一封包期望駐留於延遲頻寬緩衝器中之一時間。路由器106可將具有一「短」預測壽命之封包(例如,在時間上被快速寫入及讀取之封包)儲存於本端記憶體中且將具有一「長」壽命之封包(例如,被寫入但與具有一短壽命之封包相比在時間上晚得多被讀取之封包)儲存於外部記憶體中。例如,用於路由器106A之佇列系統可藉由量測佇列之佇列長度及移出佇列速率(本文中亦被稱為「DQrate」(例如,傳輸速率))來預測佇列延時。延時量度可指代一封包期望駐留於佇列中之時間。
路由器106各可包含一佇列系統,該佇列系統經組態以與僅使用佇列長度之佇列系統相比,使用一預測壽命在本端記憶體與外部記憶體之間進行選擇以幫助避免不必要地浪費外部記憶體頻寬用於可能另外更適於使用本端記憶體之封包(例如,具有短壽命之封包)。在一些實例中,路由器106各可包含一佇列系統,該佇列系統經組態以與僅使用佇列長度之佇列系統相比,使用一預測壽命在本端記憶體與外部記憶體之間進行選擇以幫助避免不必要地浪費本端記憶體容量用於可能更適於外部記憶體之封包。在一些實例中,路由器106各可包含一佇列系統,該佇列系統經組態以使用一預測壽命在本端記憶體與外部記憶體之間進行選擇以藉由遵守佇列優先級來幫助維持一服務品質及/或獨立地管理移動臨限值。
更具體而言,例如,路由器106A使用一移出佇列速率判定各傳入網路封包之一預測壽命。在此實例中,路由器106A基於各自網路封包之預測壽命將網路封包儲存於本端記憶體或外部記憶體中。路由器106A將具有相對長預測壽命之網路封包儲存於外部記憶體中且將具有相對短預測壽命之網路封包儲存於本端記憶體中。以此方式,與具有一「長」壽命之封包(例如,被寫入但與具有一短壽命之封包相比在時間上晚得多被讀取之封包)相比,路由器106可能將具有一「短」壽命之封包(例如,在時間上被快速寫入及讀取之封包)儲存於本端記憶體中。
儘管參考路由器106論述本文中所描述之原理,但其他網路裝置(舉例而言諸如但不限於一非同步傳送模式(ATM)交換機、一區域網路(LAN)交換機、一介面卡、一閘道器、一防火牆或系統102之另一裝置)可判定一預測壽命。
圖2係繪示根據本發明之技術之圖1之網路內之一實例路由器之一方塊圖。通常,路由器206可實質上類似於圖1之路由器106而操作。在此實例中,路由器206包含介面卡230A至230N (「IFC 230」),該等介面卡230A至230N經由傳入鏈路232A至232N (「傳入鏈路232」)接收封包且經由出站鏈路234A至234N (「出站鏈路234」)發送封包。 IFC 230通常經由數個介面埠耦合至鏈路232、234。路由器206亦包含:一控制單元222,其判定經接收封包之路線且據此經由IFC 230轉發封包;及混合記憶體228,其與控制單元222通信。
控制單元222包含一路由引擎224及一封包轉發引擎226。路由引擎224作為路由器206之控制平面操作,且包含提供用於執行數個並發程序之多任務操作環境之一作業系統(未展示)。例如,路由引擎224執行軟體指令以實施一或多個控制平面網路化協定246。例如,協定246可包含用於與其他路由裝置交換路由資訊且用於更新路由資訊庫(RIB) 242之一或多個路由協定,諸如BGP 252。協定246可進一步包含輸送協定(諸如多協定標籤交換(MPLS)協定250)及多播管理協定(諸如網際網路群組管理協定(IGMP) 256)。在其他實例中,協定246可包含其他路由、輸送、管理或通信協定。
在一些實例中,路由引擎224包含命令行介面(CLI) 240以允許一管理者組態及/或管理路由器206。例如,管理者可經由CLI 240存取佇列延時管理器264以組態佇列266A至266N (「佇列266」)之一或多個參數。在另一實例中,路由引擎224包含一圖形使用者介面(GUI)代替一CLI。在又進一步實例中,路由引擎執行簡單網路管理協定(SMNP) 254以允許管理者自一遠端終端機組態及/或控制路由器206。
路由協定常駐程式 (RPD) 244可執行BGP 252或其他路由協定以更新RIB 242。RIB 242描述路由器206所駐留之電腦網路之一拓撲,且亦包含通過電腦網路之路線。RIB 242描述電腦網路內之各種路線及各路線之適當下一躍點(hop),即,沿著該等路線之各者之鄰近路由裝置。 RPD 244分析儲存於RIB 242中之資訊且為封包轉發引擎226產生轉發資訊,該封包轉發引擎226將轉發資訊儲存於轉發資訊庫(FIB) 260中。
混合記憶體228充當路由器206之儲存器。如所展示,混合記憶體228可包含本端記憶體(例如,晶載記憶體)及外部記憶體(例如,高頻寬記憶體-HBM)。根據本發明之技術,混合記憶體228可儲存路由器206之佇列266。在一些實例中,混合記憶體228包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可擦除可程式化唯讀記憶體(EPROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體,包括用於致使一或多個處理器執行歸因於其等之動作之可執行指令。
混合記憶體228之佇列266之各者可為用於資料之組織及暫時儲存之一先進先出(FIFO)資料結構。在圖2之實例中,佇列266儲存用於路由器206之一或多個封包。在其中路由器206包含一個以上封包轉發引擎之一項實例中,路由器206在封包轉發引擎之間內部切換之前將一或多個封包儲存於一或多個佇列266中。在另一實例中,路由器206在透過網路傳輸封包之前將一或多個封包儲存於一或多個佇列266中。
封包轉發引擎226作為路由器206之資料平面操作,且包含FIB 260、成形器信用更新引擎262、移動臨限值管理器263及佇列延時管理器264。封包轉發引擎226例如處理由路由器206經由IFC 230轉發及接收之封包。例如,封包轉發引擎226可將濾波器及路由策略應用於傳出封包且將該等封包轉發至網路中之下一躍點。在一些實例中,控制單元222包含複數個封包轉發引擎,該等封包轉發引擎之各者經組態以類似於封包轉發引擎226而操作以為不同網路訊務流提供封包轉發功能。
例如,FIB 260可將網路訊務之網路目的地與特定下一躍點及對應IFC 230以及輸出鏈路234之實體輸出埠相關聯。FIB 260可為程式化至專用轉發晶片中之一數基樹、一系列表、一複雜資料庫、一鏈結串列(link list)、一數基樹、一資料庫、一平坦檔或各種其他資料結構。在一些實例中,FIB 260包含查找結構。在給定一密鑰(諸如一位址)的情況下,查找結構可提供一或多個值。在一些實例中,一或多個值可為一或多個下一躍點。下一躍點可經實施為在被執行時執行一或多個操作之微碼。可「鍊接」一或多個下一躍點,使得一鍊接之下一躍點組在被執行時針對各自不同下一躍點執行一組操作。此等操作之實例可包含使用由一或多個下一躍點識別之一介面及/或若干介面將一或多個服務應用於一封包,丟棄一封包及/或轉發一封包。
封包轉發引擎226之佇列延時管理器264可與成形器信用更新引擎262及移動臨限值管理器263一起工作以根據本發明之技術對佇列266執行管理功能。例如,成形器信用更新引擎262可實施符記桶成形器資料結構以判定佇列266之移出佇列速率。在此實例中,佇列延時管理器264使用由成形器信用更新引擎262指定之移出佇列速率調節來自佇列266之一各自者 (例如,佇列266A)之封包流。參考圖3進一步描述成形器信用更新引擎262。
隨著埠速度增加,外部記憶體頻寬在所有情況下可能不再支援全封包速率,例如,其可能僅提供半線速率頻寬。為了補償,可包含混合記憶體228之一更快但小得多之本端記憶體作為延遲頻寬緩衝器之部分,亦被稱為例如混合記憶體。混合記憶體228在封包利用本端記憶體時可具有線速率效能,但在使用外部記憶體時可僅具有線速率之一部分。當足夠數目個封包利用本端記憶體(例如,在外部記憶體具有半線速率效能之情況下超過50%)且剩餘封包適合在可用外部記憶體頻寬內時,則線速率效能係可能的。若過多封包利用頻寬受限之外部記憶體,使得外部記憶體變為頻寬過度預訂,則混合記憶體228之效能可降級,可能至外部記憶體頻寬限度之位準。
為了幫助防止外部記憶體之過度預訂,佇列延時管理器264可包含壽命模組265。壽命模組265可例如使用一移出佇列速率、目標速率、延時、優先級、所經歷壅塞或其他資訊之一或多者預測一封包壽命。參考圖7進一步描述壽命模組265。
例如,佇列延時管理器264可最初將一封包儲存於混合記憶體228之一本端記憶體中。壽命模組265可預測一封包壽命。在此實例中,移動臨限值管理器263可判定混合記憶體228之一移動臨限值。移動臨限值管理器263可判定如參考圖8至圖9進一步描述之一移動臨限值。佇列延時管理器264可使用移動臨限值及預測壽命來選擇哪個記憶體(例如,本端記憶體或外部記憶體)儲存封包。例如,回應於判定一封包之一預測壽命小於一移動臨限值,佇列延時管理器264可將封包儲存於混合記憶體228之本端記憶體中。在此實例中,回應於判定一封包之一預測壽命大於移動臨限值,佇列延時管理器264可將封包儲存於混合記憶體228之外部記憶體中。
圖3係繪示根據本發明之技術之圖2之一實例成形器信用更新引擎262之一方塊圖。在一項實例實施方案中,成形器信用更新引擎262包含速率輪370及排程器372。再者,網路裝置可包含成形器信用更新引擎262以調節傳輸封包之一速度以防止網路上之氾濫。此外,壽命模組265可基於由成形器信用更新引擎262輸出之一移出佇列速率判定一封包之壽命。
速率輪370將信用更新提供至排程器372。排程器372可使用信用來判定何時允許佇列/節點資料結構388傳輸藉由佇列/節點資料結構388排入佇列之一或多個位元組。在圖3之實例中,速率輪370包含速率指令374及更新速率376。速率指令374將「保證」(G)且「最大」(M)之信用欄位378之速率更新提供至排程器372之信用加法器382。可使用G信用來將保證量之頻寬分配給佇列/節點資料結構388,除非網路之G速率被過度預訂。 M信用可用作一速率極限以防止佇列/節點資料結構388超過一指定平均傳輸速率。
另外,更新速率376表示正由速率輪370更新信用之一速率。更新速率376將一正規化移出佇列速率提供至佇列/節點資料結構388。在圖3之實例中,更新速率376係速率輪370之一速率更新週期之倒數。在一些實例中,排程器372應用一低通濾波器以平滑化移出佇列速率之瞬時變化。
排程器372包含信用加法器382、信用更新器392、速率更新器386及佇列/節點資料結構388。排程器372之信用加法器382基於來自剪輯380之輸入,使用MUX 384將額外信用提供至速率更新器392,該速率更新器392繼而將此等額外G/M信用390提供至佇列/節點資料結構388。取決於當前信用值及剪輯380,速率更新器392可將一些、全部信用與佇列/節點資料結構388之G/M信用390相加或不將信用與佇列/節點資料結構388之G/M信用390相加。排程器372使用G/M信用390來判定何時允許佇列/節點資料結構388進行傳輸。在一項實例中,當佇列/節點資料結構388之G/M信用390為非負時,排程器372可自佇列/節點資料結構388移出佇列或傳輸封包。在自佇列/節點資料結構388移出佇列及傳輸封包時,信用更新器386自佇列/節點資料結構388之G/M信用390移除對應數目個信用。一旦佇列/節點資料結構388之G/M信用390為負,佇列/節點資料結構388便可能無資格移出佇列或傳輸後續封包。在累積G/M信用390之一非負值時,佇列/節點資料結構388再次變得被允許移出佇列或傳輸封包。
圖4係繪示根據本發明之技術之圖2之路由器內之一實例混合記憶體228之一方塊圖。如所展示,混合記憶體228可包含全頻寬之本端記憶體429。此外,混合記憶體228 (本文中亦被稱為「延遲頻寬緩衝器」或簡稱為「DBB」)可進一步包含外部記憶體427以允許大延遲頻寬緩衝器要求,舉例而言諸如大至100毫秒之延遲。例如,本端記憶體429可含於晶載記憶體中,亦被稱為「晶載封包記憶體」或簡稱為「OCPmem」。在此實例中,本端記憶體429處於全頻寬,此意謂著本端記憶體429將以線速率排入佇列及移出佇列。佇列延時管理器264可使用可小於全頻寬之外部記憶體427。然而,因為與外部記憶體427相比,本端記憶體429相對較小,所以佇列延時管理器264可將本端記憶體429僅用於最短「壽命」封包。與本端記憶體429相比,外部記憶體427相對較大。因而,佇列延時管理器264可將外部記憶體427用於較長「有效」封包。本端記憶體429可為例如外部記憶體427之約1/100或更小。延遲頻寬緩衝器依據記憶體大小及傳輸速率而變化,且較低傳輸速率具有較大延遲頻寬緩衝器。
圖4繪示針對延遲頻寬緩衝器之本端記憶體429及外部記憶體427之組織。外部記憶體427之延遲頻寬緩衝器部分具有指示使用中之外部記憶體427之量之一全域或共用封包記憶體使用計量404,亦被簡稱為「共用Pmem使用計量」404。如本文中所使用,共用記憶體可指代其中多個佇列系統(本文中被簡稱為「Qsys」)使用記憶體之例項。共用Pmem使用計量404記憶體可包含:多個組構Qsys,其被繪示為「共用組構使用計量」406,其可表示組構利用率;及多個WAN Qsys,其被繪示為「WAN Pmem使用計量」402,其可表示廣域網路(WAN)佇列系統利用率。WAN Qsys可用來為埠排程封包,例如100 GE。
類似地,圖4繪示之一「共用」WAN使用計量408及一共用組構使用計量412,以及本端記憶體429之總組合使用計量410。共用WAN OCPmem使用計量408可進一步包含多個本端或個人OCPmem使用計量(每個WAN Qsys一個)。根據本文中所描述之技術,具有一較小壽命(例如,延時)之佇列之封包可利用本端記憶體429且具有較長壽命之封包可利用外部記憶體427。
圖5係繪示根據本發明之技術之延時之一概念圖。佇列長度504 (本文中亦被稱為「Qlength」)指示一佇列中之封包之一數目。移出佇列速率506 (本文中亦被稱為「DQrate」)指示封包行進通過佇列之速率。當在做出一移動決定時將一「時間值」或「壽命」指派給一封包時,壽命模組265可使用移出佇列速率506 (及其他因子)預測壽命。在其中延時不可計算或尚不可靠之情況下(例如一空佇列),壽命模組265可使用預測因子(諸如先前移出佇列速率、目標速率、優先級及所經歷壅塞(例如,不以組態速率傳輸))指派一預測壽命。
圖5繪示表示儲存於圖4之本端記憶體429中之封包之類型之一陰影區域502。如所展示,圖5繪示沿著橫軸(例如,水平軸)之移出佇列速率(其中移出佇列速率自右至左增加)及沿著縱軸(例如,垂直軸)之佇列長度(其中佇列長度自下至上增加)。
具有「短」壽命之封包可利用本端記憶體429且具有增加之壽命之封包移動至外部記憶體427。圖5繪示具有一高移出佇列速率(例如,移出佇列速率512)之深佇列(例如,佇列長度510)可產生短壽命以及具有低移出佇列速率(例如,移出佇列速率522)之淺佇列(例如,佇列長度520)。雖然本端記憶體429中存在空間(例如,使用計量未接近滿),但本文中所描述之預測壽命技術允許具有短壽命之封包保持於本端記憶體429中。此為其他更長壽命封包保留外部記憶體427頻寬,且避免過度預訂外部記憶體427頻寬。
圖6係繪示根據本發明之技術之佇列狀態之一狀態圖。壽命模組265可針對一佇列之各狀態使用單獨壽命查找表(LUT)。在此實例中,預測壽命LUT包括基於佇列長度(例如,Qlength)、移出佇列速率(例如,DQrate)及佇列間歇性而選擇之(4)個單獨LUT。
在間歇或空佇列狀態602 (例如,無移出佇列速率及無佇列長度)中,佇列可為空或具有少量位元組,其中無移出佇列速率或具有小移出佇列速率。例如,當佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當佇列之一佇列長度不超過一臨限佇列長度時,壽命模組265可自佇列之複數種佇列狀態選擇間歇佇列狀態602。間歇佇列狀態602可指示空且自上次佇列速率更新(QRU)以來首次接收位元組之一佇列。壽命模組265可設定臨限值以濾除小暫態。間歇佇列狀態602可經組態以具有朝向較小延時之一偏置以將封包保持於本端記憶體429中。例如,間歇佇列狀態602之一預測壽命LUT可對因子進行加權以輸出與狀態604至608相比較低之壽命。可使用目標速率產生壽命值以區分經組態之高速佇列與低速佇列,使得與較低速度佇列相比,較高速度佇列接收一相對較低壽命(例如,延時)值。
在突發qlength佇列狀態604中,移出佇列速率在先前佇列速率更新週期中為0或小,此表明佇列可能自空突發至非空或為壅塞的且無法傳輸。例如,當佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當佇列之一佇列長度超過一臨限佇列長度時,壽命模組265可自佇列之複數種佇列狀態選擇一突發佇列狀態。在一些實例中,當qlength超過一qlength臨限值時,佇列可自間歇佇列狀態602移動至突發佇列狀態604。在突發佇列狀態604中,當佇列長度增長超過一點(例如,兩個或三個最大傳輸單元(MTU))時,壽命模組265可將延時設定為一相對大值以將封包移動至外部記憶體427上。將封包移動至外部記憶體427上可幫助處置壅塞佇列情況,但在轉變至主動佇列狀態608之前允許一定量突發。在突發佇列狀態604中,若取而代之一佇列係非壅塞的,則其可能在下一QRU週期中轉變至主動佇列狀態608且具有一移出佇列速率。可使用目標延時(Qlength/目標速率)為壽命指派值。在一些實例中,假定一傳輸速率,Qlength可用來產生壽命值。
在波動佇列狀態606 (本文中亦被稱為「暫態佇列狀態」)中,佇列當前為空或接近空,但在最後QRU週期期間以移出佇列速率傳輸一些位元組(例如,壽命模組265可藉由暸解QRU週期來預測位元組之數目)。例如,當佇列之一取樣移出佇列速率超過一臨限移出佇列速率時且當佇列之一佇列長度不超過一臨限佇列長度時,壽命模組265可自佇列之複數種佇列狀態選擇波動佇列狀態606。在波動佇列狀態606中,佇列可間歇地接收封包。在波動佇列狀態606中,壽命模組265可使用在先前QRU週期中發送之位元組之量(例如,DQrate*QRU週期)來判定延時。在波動佇列狀態606中,壽命模組265可保持於本端記憶體429中,直至轉變至主動佇列狀態608或佇列長度區域。在一些實例中,可使用DQrate來指派壽命值,在其他實例中當設定指示一佇列自空變為非空之Q-Intermittent時,佇列可轉變至間歇佇列狀態602或突發佇列狀態604。
在主動佇列狀態608 (例如,移出佇列速率及佇列長度)中,佇列具有使用移出佇列速率及佇列長度之一可計算延時。例如,當佇列之一取樣移出佇列速率超過一臨限移出佇列速率時且當佇列之一佇列長度超過一臨限佇列長度時,壽命模組265可自佇列之複數種佇列狀態選擇主動佇列狀態608。在一些實例中,當佇列長度為空時,壽命模組265可轉變至突發佇列狀態604。
圖6之狀態圖繪示當封包到達及離開且佇列變為非空並再次變為空時在四種狀態之間的一轉變。間歇佇列狀態602與一先前空佇列相關聯。波動佇列狀態606通常可與一佇列自空轉變且轉變至空相關聯。突發佇列狀態604通常可與一佇列自空轉變至非空相關聯。主動佇列狀態608通常可與具有一中等佇列長度且歸因於具有一移出佇列速率而傳輸之佇列相關聯。
一空佇列通常進入間歇佇列狀態602。壽命模組265可取決於何時發生一移出佇列(其產生一移出佇列速率)而轉變至主動佇列狀態608或突發佇列狀態604。壽命模組265可在變空時(例如,使所有經傳輸位元組移出佇列)自主動佇列狀態608轉變至波動佇列狀態606。一旦發生移出佇列且產生移出佇列速率,壽命模組265便可自突發佇列狀態604轉變至主動佇列狀態608。
表1中繪示實例臨限值及壽命選擇LUT臨限值。
Figure 108121242-A0304-0001
表1
在表1中,一「Hi-Pri」值「1」表示一高優先級封包且一Hi-Pri值「0」表示一低或正常優先級封包且一「Q-int」值「1」表示已發生一佇列間歇狀態且一Q-int值「0」表尚未發生一佇列間歇狀態。在表1中,針對一高優先級封包且當已發生一佇列間歇狀態時,壽命模組265選擇一高Qlength臨限值(針對增加之突發)及一低DQrate臨限值。另外,在表1中,針對一高優先級封包且當尚未發生一佇列間歇狀態時,壽命模組265選擇一高Qlength臨限值(針對增加之突發)及一低DQrate臨限值。另外,在表1中,針對一低優先級封包且當已發生一佇列間歇狀態時,壽命模組265選擇一低Qlength臨限值及一高DQrate臨限值。例如,針對一低優先級封包且當已發生一佇列間歇狀態時,壽命模組265迫使選擇空間歇區域(例如,區域00)及突發區域(例如,區域10)。另外,在表1中,針對一低優先級封包且當尚未發生一佇列間歇狀態時,壽命模組265選擇一低Qlength臨限值及一低DQrate臨限值。
表2中繪示實例壽命LUT輸入及壽命LUT輸出。
Figure 108121242-A0304-0002
表2
在表2中,ACTIVE對應於主動佇列狀態608,QLENGTH對應於突發佇列狀態604,DQRATE對應於波動佇列狀態606,且EMPTY對應於間歇佇列狀態602。在表2中,主動佇列中狀態608中之LUT輸入係「Dqrate延時」且壽命模組265自DQrate及Qlength計算延時。另外,在表2中,突發佇列狀態604中之LUT輸入係目標延時且壽命模組265自一目標速率及Qlength計算延時,或LUT輸入係佇列長度且延時LUT使用Qlength作為一索引及一軟體(SW)定義最大速率。另外,在表2中,波動佇列狀態606中之LUT輸入係DQrate且壽命模組265使用DQrate作為一索引及軟體定義最小Qlength來計算延時。另外,在表2中,間歇佇列狀態602中之LUT輸入係目標速率且壽命模組265使用目標速率作為一索引及軟體定義臨限Qlength來計算延時。
壽命模組265可經組態為具有組合地選擇四種佇列狀態LUT之一者之單獨佇列長度及移出佇列速率臨限值。臨限值可過濾佇列長度及移出佇列速率之小值,且可基於佇列優先級按比例調整(例如,較高優先級可具有較高臨限值且較低優先級可具有較低臨限值,使得當佇列為空或低於Qlength臨限值時,高優先級可具有一較大「突發容差」)。例如,當一佇列為空且封包到達並開始在一突發中填充佇列時,壽命模組265可使用高達Qlength臨限值(其經設定為一大值,例如但不限於10千位元組(kB))之一固定壽命且接著使用目標延時自EMPTH區域轉變至QLENGTH區域,或當QDrate可用時使用QDrate延時自EMPTH區域轉變至ACTIVE區域。固定壽命值來自由高優先級選擇之壽命LUT中之一單獨區域。此允許高優先級使用本端記憶體接收一突發,但若高優先級被過度預訂(例如,一埠上之訊務過多)且高優先級佇列開始建立且高優先級佇列可能超過Qlength臨限值,則隨著Qlength增長,壽命模組265可開始將優先級佇列之高訊務移位至外部記憶體,此可在突發佇列狀態604或主動佇列狀態608中發生一次。
圖7係繪示根據本發明之技術之圖2之路由器之佇列延時管理器264內之一實例壽命模組265之一方塊圖。壽命模組265經組態以判定由路由器接收之一封包之一預測壽命以用於判定是否將封包儲存於一本端記憶體或一外部記憶體中。如所展示,壽命模組265可接收目標速率702、取樣移出佇列速率704、佇列長度706。目標速率702可為一預定目標速率。取樣移出佇列速率704可為一當前取樣移出佇列速率。當取樣移出佇列速率704不穩定(例如,小於一臨限值)時,可使用目標速率702取代取樣移出佇列速率704。如所展示,速率差模組714可接收目標速率702及取樣移出佇列速率704之一指示,且輸出指示是否經歷佇列壅塞之一佇列壅塞經歷位元712。速率差模組714可比較目標速率702與取樣移出佇列速率704且當偵測到一足夠大差時,設定佇列壅塞經歷位元712。當取樣移出佇列速率704小於目標速率702時,可設定佇列壅塞經歷位元712。壽命模組265可將佇列長度706用於一突發佇列狀態中接收之封包。
最初,LUT模組718可經組態以基於是否經歷佇列壅塞而選擇一臨限移出佇列速率。一壅塞區域用於正經歷壅塞之佇列,即,設定壅塞經歷位元712。此等佇列歸因於外部記憶體頻寬壅塞而丟棄封包,或已增長得過大且處於基於Qlength之丟棄臨限值(例如,尾部丟棄或加權隨機早期偵測(WRED)),且因此應經偏置以移動至外部記憶體。此等佇列將具有一按比例調整之較大壽命,因此其等在其他類似但不壅塞之佇列之前移動至外部記憶體。例如,LUT模組718可經組態以當佇列壅塞經歷位元712經設定為一邏輯高值「1」時,使用一壅塞LUT來選擇一臨限佇列長度「n1」。在此實例中,LUT模組718可經組態以當佇列壅塞經歷位元712經設定為一邏輯低值「0」時,使用一非壅塞LUT來選擇一臨限佇列長度「n2」。類似地,LUT模組718可經組態以當佇列壅塞經歷位元712經設定為一邏輯高值「1」時,使用一壅塞LUT來選擇一臨限移出佇列速率「m1」。在此實例中,LUT模組718可經組態以當佇列壅塞經歷位元712經設定為一邏輯低值「0」時,使用一非壅塞LUT來選擇一臨限移出佇列速率「m2」。
在一些實例中,LUT模組718可經組態以基於佇列長度706是否變空而選擇一臨限移出佇列速率。換言之,在一些實例中,LUT模組718可迫使臨限移出佇列速率「m」變至最大以基於佇列間歇710選擇佇列區域00 (例如,間歇佇列狀態)及10 (例如,突發佇列狀態)。例如,LUT模組718可經組態以當Q_went_empty 708經設定為一邏輯高值「1」時,使用一第一LUT來選擇一臨限佇列長度「n1」。在此實例中,LUT模組718可經組態以當Q_went_empty 708經設定為一邏輯低值「0」時,使用一第二LUT來選擇一臨限佇列長度「n2」。類似地,LUT模組718可經組態以當Q_went_empty 708經設定為一邏輯高值「1」時,使用一第一LUT來選擇一臨限移出佇列速率「m1」。在此實例中,LUT模組718可經組態以當Q_went_empty 708經設定為一邏輯低值「0」時,使用一第二LUT來選擇一臨限移出佇列速率「m2」。
在一些實例中,LUT模組718可經組態以基於一優先級選擇一臨限移出佇列速率。換言之,例如,LUT模組718可基於嚴格之高優先級而針對增大之突發容限提高臨限佇列長度「n」。例如,LUT模組718可經組態以使用一第一LUT來為一第一優先級選擇一臨限佇列長度「n1」。在此實例中,LUT模組718可經組態以使用一第二LUT來為一第一優先級選擇一臨限佇列長度「n2」。類似地,LUT模組718可經組態以使用一第一LUT來為一第一優先級選擇一臨限移出佇列速率「m1」。在此實例中,LUT模組718可經組態以使用一第二LUT來為一第二優先級選擇一臨限移出佇列速率「m2」。
壽命模組265可判定一佇列狀態。如所展示,比較模組724比較佇列長度706與一臨限佇列長度「n」。在此實例中,當佇列長度706超過臨限佇列長度「n」時,比較模組724輸出一邏輯高值「1」。類似地,比較模組726比較取樣移出佇列速率704與一臨限移出佇列速率「m」。
在此實例中,當取樣移出佇列速率704超過臨限移出佇列速率「m」時,比較模組726輸出一邏輯高值「1」。以此方式,壽命模組265可使用比較模組724及比較模組726之輸出判定一佇列狀態。例如,當比較模組724輸出一邏輯高值「1」時且當比較模組726輸出一邏輯高值「1」時,壽命模組265可判定佇列狀態為主動佇列狀態608。
在一些實例中,當比較模組724輸出一邏輯高值「1」時且當比較模組726輸出一邏輯低值「0」時,壽命模組265可判定佇列狀態為突發佇列狀態604。在一些實例中,當比較模組724輸出一邏輯低值「0」時且當比較模組726輸出一邏輯高值「1」時,壽命模組265可判定佇列狀態為波動佇列狀態606。在一些實例中,當比較模組724輸出一邏輯低值「0」時且當比較模組726輸出一邏輯低值「0」時,壽命模組265可判定佇列狀態為間歇佇列狀態602。
目標速率種子733可基於比較模組724之輸出及比較模組726之輸出產生一目標速率選擇值以控制多工器720。例如,當取樣移出佇列速率704不穩定時(例如,在一間歇佇列狀態期間),目標速率種子733可產生一邏輯高值「1」。
壽命模組265可基於佇列狀態選擇一輸入以供LUT模組732使用。 LUT模組732可經組態以將浮點輸入格式映射至壽命,將輸入範圍剪輯及按比例調整至壽命,及/或根據需要提供非線性壽命。壽命模組265可輸出具有自0至本端記憶體之一最大大小之範圍之一壽命(例如,0至255)值。例如,多工器730可經組態以當選擇間歇佇列狀態602及波動佇列狀態606時,將多工器720之輸出作為一輸入傳遞至LUT模組732。延時模組728可經組態以輸出一目標延時以供處於一突發佇列狀態之一佇列及/或清空佇列之封包使用。如所展示,多工器730可經組態以當選擇主動佇列狀態608時將延時模組728之輸出作為一輸入傳遞至LUT模組732。在一些實例中,多工器730可經組態以當選擇突發佇列狀態604時將多工器731之輸出作為一輸入傳遞至LUT模組732。例如,多工器730可經組態以將多工器731之輸出作為一輸入傳遞至LUT模組732以用於一高優先級封包,其通常不具有與該封包相關聯之一目標速率。以此方式,當過度預訂一佇列時,壽命模組265可幫助將甚至高優先級封包移動至外部記憶體。
LUT模組732可經組態以自LUT模組718接收優先級選擇資訊735。在一些實例中,優先級選擇資訊735可指示:「11」用於一高優先級封包,「10」用於佇列間歇,「01」用於一正常或低優先級封包,或「00」用於佇列頻寬壅塞。 LUT模組732可經組態以自LUT模組718接收佇列臨限值區域資訊737。在一些實例中,佇列臨限值區域資訊737可指示:「11」用於主動穩定區域(例如,Qlength、DQrate),「10」用於突發區域(例如,Qlength、無DQrate),「01」DQrate——清空區域(例如,無Qlength、DQrate),或「00」用於空間歇區域(例如,無Qlength、無DQrate)。 LUT模組732可基於優先級選擇資訊735產生壽命。
壽命模組265可基於由多工器720輸出之一移出佇列速率判定一預測壽命。例如,針對主動佇列狀態608,多工器720經組態以輸出取樣移出佇列速率704作為移出佇列速率。在此實例中,延時模組728基於由多工器720輸出之取樣移出佇列速率704及佇列長度706判定延時。LUT模組732可藉由自主動佇列狀態608之一LUT選擇由延時模組728輸出之延時之一壽命值來判定一預測壽命。
針對突發佇列狀態604,多工器720經組態以輸出目標速率702作為移出佇列速率。在此實例中,延時模組728基於由多工器720輸出之目標速率702及佇列長度706判定延時。LUT模組732可藉由自突發佇列狀態604之一LUT選擇由延時模組728輸出之延時之一壽命值來判定一預測壽命。
在一些實例中,針對突發佇列狀態604,壽命模組265可指示當LUT模組718以佇列長度旁路輸出一邏輯高值「1」時,佇列長度小於一佇列長度旁路(例如,佇列長度旁路係選擇qlength用於輸入至LUT模組732而非延時之一控制信號)值。例如,當LUT模組718以佇列長度旁路輸出一邏輯高值「1」時,多工器731將佇列長度706輸出至LUT模組732,該LUT模組732可藉由自突發佇列狀態604之一LUT選擇佇列長度706之一壽命值來判定一預測壽命。然而,當LUT模組718以佇列長度旁路輸出一邏輯低值「0」時,多工器731將延時輸出至LUT模組732,該LUT模組732可藉由自突發佇列狀態604之一LUT選擇由延時模組728輸出之延時之一壽命值來判定一預測壽命。可藉由高優先級將Qlength旁路設定為LUT模組718之一輸入(例如,靜態優先級類別之一者)。此允許壽命模組265使用Qlength作為LUT模組732之一輸入及LUT模組732之輸出處之一壽命量度。例如,當形成由佇列長度編索引之LUT時,壽命模組265可在假定一固定傳輸速率(例如,400 Gbps)之情況下計算壽命值。因為高優先級正是如此,所以壽命模組265可以Qsys之最大速率(在此實例中其係400 Gbps)服務高優先級封包。隨著qlength之量值增加,壽命亦增加,此係因為速率係固定的(例如,Qlength/速率=壽命)。
針對波動佇列狀態606,多工器720經組態以輸出取樣移出佇列速率704作為移出佇列速率。在此實例中,LUT模組732可藉由自波動佇列狀態606之一LUT選擇由多工器720輸出之取樣移出佇列速率704之一壽命值來判定一預測壽命。針對間歇佇列狀態602,多工器720經組態以輸出目標速率702作為移出佇列速率。在此實例中,LUT模組732可藉由自間歇佇列狀態602之一LUT選擇由多工器720輸出之輸出目標速率702之一壽命值來判定一預測壽命。
圖8A係繪示根據本發明之技術之一第一移動臨限值802之一概念圖。移位臨限值802可由一路由器連同由路由器接收之一封包之一預測壽命一起使用以判定是否將封包儲存於一本端記憶體或一外部記憶體中。在圖8之實例中,壽命區域804各可與一值範圍相關聯。例如,壽命區域804A可指定將小於1微秒(μs)之壽命儲存於本端記憶體429中且將不小於1微秒(μs)之壽命儲存於外部記憶體427中。
在一些實例中,移動臨限值管理器263可修改移動臨限值802,使得壽命區域804之額外或更少區域對應於本端記憶體429。例如,當使用計量指示本端記憶體429被重度使用時,移動臨限值管理器263可減小移動臨限值802,使得更少壽命區域804對應於本端記憶體429。然而,回應於使用計量指示本端記憶體429被輕度使用,移動臨限值管理器263可增加移動臨限值802,使得額外壽命區域804對應於本端記憶體429。以此方式,移動臨限值管理器263可幫助最大化本端記憶體429之一利用率。
圖8B係繪示根據本發明之技術之一第二移動臨限值812之一概念圖。在圖8B之實例中,第二移動臨限值812表示包含壽命區域804A及壽命區域804B之一移動滯後。移動臨限值管理器263可隨著本端記憶體使用計量增加而按比例調整第二移動臨限值812為更低,使得需要越來越小之延時來停留在本端記憶體429中。在一些實例中,移動臨限值管理器263可隨著本端記憶體使用計量減小而按比例調整第二移動臨限值812為更大,使得當本端記憶體429中之空間可用時,更大延時封包停留在本端記憶體429中。在一些實例中,移動臨限值管理器263可在發生佇列頻寬壅塞時按比例調整第二移動臨限值812為更低,使得壅塞佇列更可能移動至外部記憶體427。在一些實例中,移動臨限值管理器263可隨著增加之優先級而按比例調整第二移動臨限值812為更高,以幫助將更高優先級封包保持於本端記憶體429中。
圖9係繪示根據本發明之技術之圖2之路由器內之一第一實例移動臨限值管理器263之一方塊圖。移動臨限值管理器263可判定可連同一預測壽命使用之一移動臨限值(例如,移動臨限值802、第二移動臨限值812等),以判定是否將封包儲存於一本端記憶體或一外部記憶體中。如所展示,移動臨限值管理器263可接收佇列權重902、佇列優先級904、主動GE區域906、本端記憶體429之本端塊指標佇列權重(CPQW) 908、本端記憶體429之共用使用計量910、本端記憶體429之共用WAN使用計量912及佇列壅塞經歷位元914。
佇列權重902可為由一管理者設定之權重值。佇列權重902可指示為超額優先級佇列提供一偽優先級之加權循環(WRR)權重。佇列優先級904可指示一網路封包之一優先級位準。佇列優先級904可指示由識別單及雙優先級佇列之軟體指派之靜態優先級類別。在圖9之實例中,佇列權重902及佇列優先級904可形成一靜態組態。主動GE區域906可指示一主動佇列優先級,該主動佇列優先級指示雙優先級佇列何時處於一保證或一超額優先級區域中。主動GE區域906可在各佇列速率更新時更新且在排入佇列(NQ)時讀取。
本端CPQW 908可由一本端塊指標佇列WAN藉由查看各塊指標(CP)且看一封包塊位址是否在晶載封包記憶體(*OCPmem)或封包記憶體(Pmem)中來提供。塊指標佇列(CPQW)可為保持儲存於DBB中之封包塊(例如,256個位元組)之指標之佇列系統(Qsys)之部分。CPQW維護每個佇列之一指標清單,該等指標將所有塊一起鏈接在一佇列(FIFO)中。封包被劃分成固定大小之塊,被儲存至DBB、本端記憶體或外部記憶體,且由CPQW維持此等塊之指標。
本端記憶體429之共用使用計量910可為本端記憶體429之總組合使用計量410之一實例。共用使用計量910可由追蹤所有WAN Qsys使用多少本端記憶體之一記憶體分配(MALLOC)區塊提供。本端記憶體429之共用WAN使用計量912可為WAN 408之共用使用計量之一實例。共用WAN使用計量912可由追蹤所有WAN及組構Qsys使用多少本端記憶體之一記憶體分配區塊提供。佇列壅塞經歷位元914可為速率差模組714之輸出。佇列壅塞經歷位元914可指示當DQrate低於一目標速率時經歷佇列頻寬壅塞。在一些實例中,佇列壅塞經歷位元914將使移動臨限值移位為更低,因此壅塞佇列更可能移動至外部記憶體。
LUT模組916可基於佇列權重902、佇列優先級904、主動GE區域906輸出一優先級。類似地,LUT模組918可基於本端記憶體429之本端CPQW 908、本端記憶體429之共用使用計量910及本端記憶體429之共用WAN使用計量912輸出一WAN移動使用計量。LUT 920可基於一預測壽命(例如,由LUT模組732輸出)、由LUT模組916輸出之優先級、由LUT模組918輸出之WAN移動使用計量及佇列壅塞經歷位元914輸出一移動上旗標922。LUT模組916可使用壽命、OCPmem使用計量及優先級作為其索引來實施一比較功能。在此實例中,當壽命量值超過LUT模組918中實施之一邏輯臨限值時,移動上旗標922經設定以指示壽命量值超過LUT模組918中實施之一邏輯臨限值。
類似地,LUT 920可基於一預測壽命(例如,由LUT模組732輸出)、由LUT模組916輸出之優先級、由LUT模組918輸出之WAN移動使用計量及佇列壅塞經歷位元914輸出一移動下旗標924。LUT模組916可使用壽命、OCPmem使用計量及優先級作為其索引來實施一比較功能。在此實例中,當壽命量值小於LUT模組918中實施之一邏輯臨限值時,移動下旗標924經設定以指示壽命量值小於LUT模組918中實施之一邏輯臨限值。
移動邏輯926可基於移動上旗標922及移動下旗標924調整(例如,減小或增加)移動臨限值802。例如,移動邏輯926可在設定移動上旗標922且未設定移動下旗標924時增加移動臨限值802。在一些實例中,移動邏輯926可在未設定移動上旗標922且設定移動下旗標924時減小移動臨限值802及/或移動臨限值812。在圖9之實例中,移動邏輯926可使用移動位元925之一「M」提供可選滯後,使得壽命中之小變化不會導致封包在轉變期間移動及不移動。當未期望滯後時,可將臨限值設定為一相同值。可由以下偽碼定義移動位元925。
Figure 02_image001
在一些實例中,移動邏輯926之輸出可由外部記憶體管理器用來,例如但不限於判定是否丟棄一網路封包。圖9中之LUT模組920具有2個輸出:移動上旗標922及移動下旗標924。移動上旗標922係一封包壽命已超過由移動LUT輸入判定之一值且封包將移動至外部記憶體427之一指示。此移動下旗標924係封包壽命低於一臨限值且將停留在本端記憶體429中之一指示。移動上旗標922設定一位元(所謂M位元),該位元指示一封包經儲存至外部記憶體429。移動上旗標922設定M位元且移動下旗標924清除M位元。
圖10係繪示根據本發明之技術之圖2之路由器內之一第二實例移動臨限值管理器263之一方塊圖。移動臨限值管理器263可判定可連同一預測壽命使用之一移動臨限值(例如,臨限值802及/或移動臨限值812),以判定是否將封包儲存於本端記憶體429或外部記憶體427中。在圖10之實例中,LUT模組1016可接收佇列權重1002、佇列優先級1004及主動GE區域1006。在此實例中,LUT模組1018可接收本端記憶體429之本端塊指標佇列權重(CPQW) 1008、本端記憶體429之共用使用計量1010及本端記憶體429之共用WAN使用計量1012。在此實例中,LUT模組1020可接收佇列壅塞經歷位元1014。輸入1002至1014可實質上類似於圖9之輸入902至914。然而,在圖10之實例中,移動邏輯1026接收壽命1021。
在圖10之實例中,LUT模組1020產生移動上臨限值1022。在此實例中,移動邏輯1026比較移動上臨限值1022與各封包之壽命1021。移動臨限值模組1020針對OCPmem使用計量及優先級索引之各組合產生移動上臨限值1022。臨限值通常在較多本端記憶體429可用時量值增加,例如從而允許更多封包使用本端記憶體429,且通常在較少本端記憶體429可用時值減小,由此幫助迫使更多封包使用外部記憶體427。當壽命1021超過移動上臨限值1022時,佇列延時管理器264將封包移動至外部記憶體427。
類似地,LUT模組1020產生移動下臨限值1024。在此實例中,移動邏輯1026比較移動下臨限值1024與各封包之壽命1021。移動臨限值模組1020針對OCPmem使用計量及優先級索引之各組合產生移動下臨限值1024。臨限值通常在較多本端記憶體429可用時量值增加,例如從而允許更多封包使用本端記憶體429,且通常在較少本端記憶體429可用時值減小,由此幫助迫使更多封包使用外部記憶體427。當壽命1021低於移動下臨限值1024時,移動臨限值管理器263不移動封包。例如,佇列延時管理器264將封包保持於外部記憶體427本端。
圖11係繪示根據本發明之技術之一實例操作之一流程圖。僅出於實例性目的關於圖2之路由器206描述圖11。最初,IFC 230A接收一待處理之傳入網路封包(1002)。在一些實例中,佇列延時管理器264最初將網路封包儲存於本端記憶體429處。
成形器信用更新引擎262判定一移出佇列速率(1003)。例如,成形器信用更新引擎262判定由一符記桶成形器在一單位時間內用來使一或多個封包自佇列移出佇列之符記之一數目。在此實例中,符記之各者表示待自佇列移出佇列之位元組之一給定數目。在此實例中,成形器信用更新引擎262基於在單位時間內使用之符記之數目判定取樣移出佇列速率。
壽命模組265選擇一佇列狀態(1004)。例如,壽命模組265自佇列之複數種佇列狀態選擇一佇列狀態。更具體而言,例如,當取樣移出佇列速率704超過一臨限移出佇列速率時且當佇列長度706超過一臨限佇列長度時,壽命模組265自佇列之複數種佇列狀態選擇一主動佇列狀態。在一些實例中,當佇列之取樣移出佇列速率704不超過一臨限移出佇列速率時且當佇列長度706超過一臨限佇列長度時,壽命模組265自佇列之複數種佇列狀態選擇一突發佇列狀態。在一些實例中,當佇列之取樣移出佇列速率704不超過一臨限移出佇列速率時且當佇列之佇列長度706不超過一臨限佇列長度時,壽命模組265自佇列之複數種佇列狀態選擇一間歇佇列狀態。在一些實例中,當取樣移出佇列速率704超過一臨限移出佇列速率時且當佇列之佇列長度706不超過一臨限佇列長度時,壽命模組265自佇列之複數種佇列狀態選擇一暫態佇列狀態。
壽命模組265基於移出佇列速率及對應於佇列狀態之一LUT判定網路封包之一預測壽命(1006)。例如,壽命模組265判定預測壽命包括使用對應於選定佇列狀態之一查找表。更具體而言,例如,壽命模組265基於佇列之一佇列長度及移出佇列速率判定佇列之一延時。例如,壽命模組265使用經判定延時作為至對應於主動佇列狀態之一查找表中之一輸入來判定預測壽命。在一些實例中,壽命模組265使用經判定延時作為至對應於突發佇列狀態之一查找表中之一輸入來判定預測壽命。
在一些實例中,壽命模組265使用一預定目標移出佇列速率作為至對應於間歇佇列狀態之一查找表中之一輸入來判定預測壽命。在一些實例中,壽命模組265使用取樣移出佇列速率作為至對應於暫態佇列狀態之一查找表中之一輸入來判定預測壽命。壽命模組265可基於佇列之取樣移出佇列速率704與預定目標率702之一差判定佇列處之一佇列壅塞經歷位元712,且可進一步基於佇列壅塞經歷位元712判定網路封包之預測壽命。例如,當佇列壅塞經歷位元712指示取樣移出佇列速率704小於預定目標率702時,LUT模組732可選擇對應於佇列壅塞之一LUT表。
移動臨限值管理器263判定一移動臨限值(1007)。例如,移動臨限值管理器263基於本端記憶體之一使用計量或佇列之一優先級之之至少一者判定一移動臨限值。佇列延時管理器264基於預測壽命及移動臨限值自複數個記憶體為網路封包選擇第一記憶體(1008)。例如,當預測壽命不超過移動臨限值時,佇列延時管理器264選擇本端記憶體429作為第一記憶體。在一些實例中,當預測壽命超過移動臨限值時,佇列延時管理器264選擇外部記憶體427作為第一記憶體。
佇列延時管理器264將網路封包儲存於第一記憶體處(1010)。例如,當預測壽命不超過移動臨限值時,佇列延時管理器264將網路封包儲存於本端記憶體429處。在一些實例中,當預測壽命超過移動臨限值時,佇列延時管理器264將網路封包儲存於外部記憶體427處。封包轉發引擎226自第一記憶體擷取網路封包(1012)。IFC 230A傳輸網路封包(1014)。
可至少部分地以硬體、軟體、韌體或其等任何組合來實施本發明中所描述之技術。例如,所描述技術之各個態樣可在一或多個處理器內實施,包含一或多個微處理器、數位信號處理器(DSP)、特定應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或任何其他等效積體或離散邏輯電路、以及此等組件之任何組合。術語「處理器」或「處理電路」通常可指代前述邏輯電路(單獨或組合其他邏輯電路)或任何其他等效電路之任一者。包括硬體之一控制單元亦可執行本發明之一或多種技術。
此等硬體、軟體及韌體可在相同裝置內或在單獨裝置內實施以支援本發明中所描述之各種操作及功能。另外,所描述單元、模組或組件之任一者可一起實施或單獨實施為離散但可互操作之邏輯裝置。作為模組或單元之不同特徵之描繪意欲於突出不同功能態樣,且不一定暗示此等模組或單元必須由單獨硬體或軟體組件實現。相反,與一或多個模組或單元相關聯之功能可由單獨硬體或軟體組件執行,或整合於共同或單獨硬體或軟體組件內。
本發明中所描述之技術亦可在含有指令之一電腦可讀媒體(諸如一電腦可讀儲存媒體)中體現或編碼。一電腦可讀儲存媒體中嵌入或編碼之指令可致使一可程式化處理器或其他處理器例如在指令被執行時執行方法。電腦可讀儲存媒體可包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可擦除可程式化唯讀記憶體(EPROM)、電可擦除可程式化唯讀記憶體(EEPROM)、快閃記憶體、一硬碟、一CD-ROM、一軟碟、一磁帶盒、磁性媒體、光學媒體或其他電腦可讀媒體。
作為上述之補充或替代,亦描述以下實施例。任何以下實例中所描述之特徵可與本文中所描述之任何其他實例一起利用。
實例1. 一種方法包括:由一網路化裝置之處理電路接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;由該處理電路基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;由該處理電路基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體,其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及由該處理電路回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
實例2. 如實例1之方法,其包括:由該處理電路自該佇列之複數種佇列狀態選擇一佇列狀態,其中判定該預測壽命包括使用對應於該選定佇列狀態之一查找表。
實例3. 如實例2之方法,其中判定該網路封包之該預測壽命包括:基於該佇列之一佇列長度及該移出佇列速率判定該佇列之一延時。
實例4. 如實例3之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一主動佇列狀態,且其中選擇該佇列狀態包括:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該主動佇列狀態,其中判定該延時係回應於選擇該主動佇列狀態,且其中判定該預測壽命進一步包括使用該經判定延時作為至對應於該主動佇列狀態之一查找表中之一輸入。
實例5. 如實例3之方法,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一突發佇列狀態,且其中選擇該佇列狀態包括:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該突發佇列狀態,其中判定該延時係回應於選擇該突發佇列狀態,且其中判定該預測壽命進一步包括使用該經判定延時作為至對應於該突發佇列狀態之一查找表中之一輸入。
實例6. 如實例2之方法,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一間歇佇列狀態,且其中選擇該佇列狀態包括:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該間歇佇列狀態,其中判定該預測壽命包括使用該預定目標移出佇列速率作為至對應於該間歇佇列狀態之一查找表中之一輸入。
實例7. 如實例2之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一暫態佇列狀態,且其中選擇該佇列狀態包括:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該暫態佇列狀態,其中判定該預測壽命包括使用該取樣移出佇列速率作為至對應於該暫態佇列狀態之一查找表中之一輸入。
實例8. 如實例1至7之任何組合之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,該方法進一步包括:由該處理電路基於該佇列之該取樣移出佇列速率與一預定目標移出佇列速率之一差判定該佇列處經歷之一佇列壅塞,其中判定該預測壽命進一步基於該佇列壅塞。
實例9. 如實例1至8之任何組合之方法,其中選擇該第一記憶體包括:基於該本端記憶體之一使用計量或該佇列之一優先級之至少一者判定一移動臨限值;及比較該移動臨限值與該預測壽命。
實例10. 如實例9之方法,其中選擇該第一記憶體包括:當該預測壽命不超過該移動臨限值時,選擇該本端記憶體作為該第一記憶體;及當該預測壽命超過該移動臨限值時,選擇該外部記憶體作為該第一記憶體。
實例11. 如實例1至10之任何組合之方法,其包括:回應於接收該網路封包,由該處理電路在選擇該第一記憶體之前,將該網路封包儲存於該本端記憶體中。
實例12. 如實例1至11之任何組合之方法,其中該網路化裝置係一第一網路化裝置,該方法進一步包括:由該處理電路自該第一記憶體擷取該網路封包;及由該處理電路將該經擷取網路封包傳輸至一第二網路化裝置。
實例13. 如實例1至12之任何組合之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,該方法進一步包括:由該處理電路判定由該佇列之一符記桶成形器在一單位時間內用來使一或多個封包自該佇列移出佇列之符記之一數目,其中該等符記之各者表示待自該佇列移出佇列之位元組之一給定數目;及由該處理電路基於在該單位時間內使用之符記之該數目判定該取樣移出佇列速率。
實例14. 一種網路化裝置包括:複數個記憶體,其等包括處理電路之一本端記憶體及該處理電路之一外部記憶體;且該處理電路經連接至該複數個記憶體且經組態以:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;基於該預測壽命自該複數個記憶體選擇一第一記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
實例15. 如實例14之網路化裝置,其中該處理電路經組態以:自該佇列之複數種佇列狀態選擇一佇列狀態,其中為了判定該預測壽命,該處理電路經組態以使用對應於該選定佇列狀態之一查找表。
實例16. 如實例15之網路化裝置,其中為了判定該網路封包之該預測壽命,該處理電路經組態以:基於該佇列之一佇列長度及該移出佇列速率判定該佇列之一延時。
實例17. 如實例16之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一主動佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該主動佇列狀態,其中判定該延時係回應於選擇該主動佇列狀態,且其中為了判定該預測壽命,該處理電路進一步經組態以使用該經判定延時作為至對應於該主動佇列狀態之一查找表中之一輸入。
實例18. 如實例16之網路化裝置,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一突發佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該突發佇列狀態,其中判定該延時係回應於選擇該突發佇列狀態,且其中為了判定該預測壽命,該處理電路進一步經組態以使用該經判定延時作為至對應於該突發佇列狀態之一查找表中之一輸入。
實例19. 如實例15之網路化裝置,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一間歇佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該間歇佇列狀態,其中為了判定該預測壽命,該處理電路經組態以使用該預定目標移出佇列速率作為至對應於該間歇佇列狀態之一查找表中之一輸入。
實例20. 如實例15之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一暫態佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該暫態佇列狀態,其中為了判定該預測壽命,該處理電路經組態以使用該取樣移出佇列速率作為至對應於該暫態佇列狀態之一查找表中之一輸入。
實例21. 如實例14至20之任何組合之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率且其中該處理電路經組態以:基於該佇列之該取樣移出佇列速率與一預定目標移出佇列速率之一差判定該佇列處經歷之一佇列壅塞,其中判定該預測壽命進一步基於該佇列壅塞。
實例22. 如實例14至21之任何組合之網路化裝置,其中為了選擇該第一記憶體,該處理電路經組態以:基於該本端記憶體之一使用計量或該佇列之一優先級之至少一者判定一移動臨限值;及比較該移動臨限值與該預測壽命。
實例23. 如實例22之網路化裝置,其中為了選擇該第一記憶體,該處理電路經組態以:當該預測壽命不超過該移動臨限值時,選擇該本端記憶體作為該第一記憶體;及當該預測壽命超過該移動臨限值時,選擇該外部記憶體作為該第一記憶體。
實例24. 如實例14至23之任何組合之網路化裝置,其中該處理電路經組態以:回應於接收該網路封包,在選擇該第一記憶體之前將該網路封包儲存於該本端記憶體中。
實例25. 如實例14至24之任何組合之網路化裝置,其中該網路化裝置係一第一網路化裝置且其中該處理電路經組態以:自該第一記憶體擷取該網路封包;及將該經擷取網路封包傳輸至一第二網路化裝置。
實例26. 如實例14至25之任何組合之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率且其中該處理電路經組態以:判定由該佇列之一符記桶成形器在一單位時間內用來使一或多個封包自該佇列移出佇列之符記之一數目,其中該等符記之各者表示待自該佇列移出佇列之位元組之一給定數目;及基於在該單位時間內使用之符記之該數目判定該取樣移出佇列速率。
實例27. 一種非暫時性電腦可讀媒體包括指令,該等指令在被執行時致使一網路化裝置之處理電路:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命;基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體,其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
此外,可將上述任何實例中所闡述之任何特定特徵組合成所描述技術之有益實例。即,任何特定特徵通常適用於本發明之所有實例。已描述各項實例。此等及其他實例在下文發明申請專利範圍之範疇內。
102‧‧‧系統 104‧‧‧網路 106A-B‧‧‧路由器 110A-N‧‧‧裝置 112‧‧‧內容伺服器 114‧‧‧公共網路 206‧‧‧路由器 222‧‧‧控制單元 224‧‧‧路由引擎 226‧‧‧封包轉發引擎 228‧‧‧混合記憶體 230A-N‧‧‧介面卡 232A-N‧‧‧傳入鏈路 234A-N‧‧‧出站鏈路 240‧‧‧命令行介面(CLI) 242‧‧‧路由資訊庫(RIB) 244‧‧‧路由協定常駐程式 (RPD) 246‧‧‧控制平面網路化協定 250‧‧‧多協定標籤交換(MPLS)協定 252‧‧‧BGP 254‧‧‧簡單網路管理協定(SMNP) 256‧‧‧網際網路群組管理協定(IGMP) 260‧‧‧轉發資訊庫(FIB) 262‧‧‧成形器信用更新引擎 263‧‧‧移動臨限值管理器 264‧‧‧佇列延時管理器 265‧‧‧壽命模組 266‧‧‧佇列 266A-N‧‧‧佇列 370‧‧‧速率輪 372‧‧‧排程器 374‧‧‧速率指令 376‧‧‧更新速率 378‧‧‧信用欄位 380‧‧‧剪輯 382‧‧‧信用加法器 384‧‧‧多工器(MUX) 386‧‧‧信用更新器 388‧‧‧佇列/節點資料結構 390‧‧‧G/M信用 392‧‧‧速率更新器 402‧‧‧廣域網路(WAN) Pmem使用計量 404‧‧‧全域或共用封包記憶體使用計量 406‧‧‧共用組構使用計量 408‧‧‧共用WAN OCPmem使用計量 410‧‧‧總組合使用計量 412‧‧‧共用組構使用計量 427‧‧‧外部記憶體 429‧‧‧本端記憶體 502‧‧‧陰影區域 504‧‧‧佇列長度 506‧‧‧移出佇列速率 510‧‧‧佇列長度 512‧‧‧移出佇列速率 520‧‧‧佇列長度 522‧‧‧移出佇列速率 602‧‧‧間歇或空佇列狀態 604‧‧‧突發qlength佇列狀態 606‧‧‧波動佇列狀態 608‧‧‧主動佇列狀態 702‧‧‧目標速率 704‧‧‧取樣移出佇列速率 706‧‧‧佇列長度 708‧‧‧Q_went_empty 710‧‧‧佇列間歇 712‧‧‧佇列壅塞經歷位元 714‧‧‧速率差模組 718‧‧‧查找表(LUT)模組 720‧‧‧多工器 724‧‧‧比較模組 726‧‧‧比較模組 728‧‧‧延時模組 730‧‧‧多工器 731‧‧‧多工器 732‧‧‧查找表(LUT)模組 733‧‧‧目標速率種子 735‧‧‧優先級選擇資訊 737‧‧‧佇列臨限值區域資訊 802‧‧‧第一移動臨限值 804‧‧‧壽命區域 804A‧‧‧壽命區域 804B‧‧‧壽命區域 812‧‧‧第二移動臨限值 902‧‧‧佇列權重 904‧‧‧佇列優先級 906‧‧‧主動GE區域 908‧‧‧本端塊指標佇列權重(CPQW) 910‧‧‧共用使用計量 912‧‧‧共用WAN使用計量 914‧‧‧佇列壅塞經歷位元 916‧‧‧LUT模組 918‧‧‧LUT模組 920‧‧‧LUT模組 922‧‧‧移動上旗標 924‧‧‧移動下旗標 925‧‧‧移動位元 926‧‧‧移動邏輯 1002‧‧‧佇列權重 1004‧‧‧佇列優先級 1006‧‧‧主動GE區域 1008‧‧‧本端塊指標佇列權重(CPQW) 1010‧‧‧共用使用計量 1012‧‧‧共用WAN使用計量 1014‧‧‧佇列壅塞經歷位元 1016‧‧‧LUT模組 1018‧‧‧LUT模組 1020‧‧‧LUT模組 1021‧‧‧壽命 1022‧‧‧移動上臨限值 1024‧‧‧移動下臨限值 1026‧‧‧移動邏輯 1102‧‧‧步驟 1103‧‧‧步驟 1104‧‧‧步驟 1106‧‧‧步驟 1107‧‧‧步驟 1108‧‧‧步驟 1111‧‧‧步驟 1112‧‧‧步驟 1114‧‧‧步驟
圖1係繪示根據本發明之技術之一實例網路之一方塊圖。
圖2係繪示根據本發明之技術之圖1之網路內之一實例路由器之一方塊圖。
圖3係繪示根據本發明之技術之圖2之路由器內之一實例成形器信用更新引擎之一方塊圖。
圖4係繪示根據本發明之技術之圖2之路由器內之一實例記憶體之一方塊圖。
圖5係繪示根據本發明之技術之延時之一概念圖。
圖6係繪示根據本發明之技術之佇列狀態之一狀態圖。
圖7係繪示根據本發明之技術之圖2之路由器內之一實例佇列延時管理器之一方塊圖。
圖8A係繪示根據本發明之技術之一第一移動臨限值之一概念圖。
圖8B係繪示根據本發明之技術之一第二移動臨限值之一概念圖。
圖9係繪示根據本發明之技術之圖2之路由器內之一第一實例移動臨限值管理器之一方塊圖。
圖10係繪示根據本發明之技術之圖2之路由器內之一第二實例移動臨限值管理器之一方塊圖。
圖11係繪示根據本發明之技術之一實例操作之一流程圖。
貫穿附圖及描述,類似元件符號指代類似元件。
206‧‧‧路由器
222‧‧‧控制單元
224‧‧‧路由引擎
226‧‧‧封包轉發引擎
228‧‧‧混合記憶體
230A-N‧‧‧介面卡
232A-N‧‧‧傳入鏈路
234A-N‧‧‧出站鏈路
240‧‧‧命令行介面(CLI)
242‧‧‧路由資訊庫(RIB)
244‧‧‧路由協定常駐程式(RPD)
246‧‧‧控制平面網路化協定
250‧‧‧多協定標籤交換(MPLS)協定
252‧‧‧BGP
254‧‧‧簡單網路管理協定(SMNP)
256‧‧‧網際網路群組管理協定(IGMP)
260‧‧‧轉發資訊庫(FIB)
262‧‧‧成形器信用更新引擎
263‧‧‧移動臨限值管理器
264‧‧‧佇列延時管理器
265‧‧‧壽命模組
266‧‧‧佇列
266A-N‧‧‧佇列

Claims (25)

  1. 一種操作運算裝置之方法,包括:由一網路化裝置之處理電路接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列(queue)中;由該處理電路自該佇列之複數種佇列狀態選擇一佇列狀態;由該處理電路基於該佇列之一移出佇列速率(dequeue rate)判定該網路封包之一預測壽命,其中判定該預測壽命包括使用對應於該選定佇列狀態之一查找表;由該處理電路基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體,其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及由該處理電路回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
  2. 如請求項1之方法,其中判定該網路封包之該預測壽命包括:基於該佇列之一佇列長度及該移出佇列速率判定該佇列之一延時。
  3. 如請求項2之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一主動佇列狀態,且其中選擇該佇列狀態包括:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該主動佇列狀 態,其中判定該延時係回應於選擇該主動佇列狀態,且其中判定該預測壽命進一步包括使用該經判定延時作為至對應於該主動佇列狀態之一查找表中之一輸入。
  4. 如請求項2之方法,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一突發佇列狀態,且其中選擇該佇列狀態包括:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該突發佇列狀態,其中判定該延時係回應於選擇該突發佇列狀態,且其中判定該預測壽命進一步包括使用該經判定延時作為至對應於該突發佇列狀態之一查找表中之一輸入。
  5. 如請求項1之方法,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一間歇佇列狀態,且其中選擇該佇列狀態包括:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該間歇佇列狀態,其中判定該預測壽命包括使用該預定目標移出佇列速率作為至對應於該間歇佇列狀態之一查找表中之一輸入。
  6. 如請求項1之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一暫態佇列狀態,且其中選擇該佇列狀態 包括:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該暫態佇列狀態,其中判定該預測壽命包括使用該取樣移出佇列速率作為至對應於該暫態佇列狀態之一查找表中之一輸入。
  7. 如請求項1之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,該方法進一步包括:由該處理電路基於該佇列之該取樣移出佇列速率與一預定目標移出佇列速率之一差判定該佇列處經歷之一佇列壅塞,其中判定該預測壽命進一步基於該佇列壅塞。
  8. 如請求項1之方法,其中選擇該第一記憶體包括:基於該本端記憶體之一使用計量或該佇列之一優先級之至少一者判定一移動臨限值;及比較該移動臨限值與該預測壽命。
  9. 如請求項8之方法,其中選擇該第一記憶體包括:當該預測壽命不超過該移動臨限值時,選擇該本端記憶體作為該第一記憶體;及當該預測壽命超過該移動臨限值時,選擇該外部記憶體作為該第一記憶體。
  10. 如請求項1之方法,其包括:回應於接收該網路封包,由該處理電路在選擇該第一記憶體之前,將該網路封包儲存於該本端記憶體中。
  11. 如請求項1之方法,其中該網路化裝置係一第一網路化裝置,該方法進一步包括:由該處理電路自該第一記憶體擷取該網路封包;及由該處理電路將該經擷取網路封包傳輸至一第二網路化裝置。
  12. 如請求項1之方法,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,該方法進一步包括:由該處理電路判定由該佇列之一符記桶成形器在一單位時間內用來使一或多個封包自該佇列移出佇列之符記之一數目,其中該等符記之各者表示待自該佇列移出佇列之位元組之一給定數目;及由該處理電路基於在該單位時間內使用之符記之該數目判定該取樣移出佇列速率。
  13. 一種網路化裝置,包括:複數個記憶體,其等包括處理電路之一本端(local)記憶體及該處理電路之一外部記憶體;且該處理電路經連接至該複數個記憶體且經組態以:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中; 自該佇列之複數種佇列狀態選擇一佇列狀態;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命,其中為了判定該預測壽命,該處理電路經組態以使用對應於該選定佇列狀態之一查找表;基於該預測壽命自該複數個記憶體選擇一第一記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
  14. 如請求項13之網路化裝置,其中為了判定該網路封包之該預測壽命,該處理電路經組態以:基於該佇列之一佇列長度及該移出佇列速率判定該佇列之一延時。
  15. 如請求項14之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一主動佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該主動佇列狀態,其中判定該延時係回應於選擇該主動佇列狀態,且其中為了判定該預測壽命,該處理電路進一步經組態以使用該經判定延時作為至對應於該主動佇列狀態之一查找表中之一輸入。
  16. 如請求項14之網路化裝置,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一突發佇列狀態,且其中為 了選擇該佇列狀態,該處理電路經組態以:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列長度超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該突發佇列狀態,其中判定該延時係回應於選擇該突發佇列狀態,且其中為了判定該預測壽命,該處理電路進一步經組態以使用該經判定延時作為至對應於該突發佇列狀態之一查找表中之一輸入。
  17. 如請求項13之網路化裝置,其中該移出佇列速率包括該佇列之一預定目標移出佇列速率,其中該選定佇列狀態係一間歇佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該佇列之一取樣移出佇列速率不超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該間歇佇列狀態,其中為了判定該預測壽命,該處理電路經組態以使用該預定目標移出佇列速率作為至對應於該間歇佇列狀態之一查找表中之一輸入。
  18. 如請求項13之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率,其中該選定佇列狀態係一暫態佇列狀態,且其中為了選擇該佇列狀態,該處理電路經組態以:當該取樣移出佇列速率超過一臨限移出佇列速率時且當該佇列之一佇列長度不超過一臨限佇列長度時,自該佇列之該複數種佇列狀態選擇該暫態佇列狀態,其中為了判定該預測壽命,該處理電路經組態以使用該取樣移出佇列速率作為至對應於該暫態佇列狀態之一查找表中之一輸入。
  19. 如請求項13之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率且其中該處理電路經組態以:基於該佇列之該取樣移出佇列速率與一預定目標移出佇列速率之一差判定該佇列處經歷之一佇列壅塞,其中判定該預測壽命進一步基於該佇列壅塞。
  20. 如請求項13之網路化裝置,其中為了選擇該第一記憶體,該處理電路經組態以:基於該本端記憶體之一使用計量或該佇列之一優先級之至少一者判定一移動臨限值;及比較該移動臨限值與該預測壽命。
  21. 如請求項20之網路化裝置,其中為了選擇該第一記憶體,該處理電路經組態以:當該預測壽命不超過該移動臨限值時,選擇該本端記憶體作為該第一記憶體;及當該預測壽命超過該移動臨限值時,選擇該外部記憶體作為該第一記憶體。
  22. 如請求項13之網路化裝置,其中該處理電路經組態以:回應於接收該網路封包,在選擇該第一記憶體之前將該網路封包儲存於該本端記憶體中。
  23. 如請求項13之網路化裝置,其中該網路化裝置係一第一網路化裝置且其中該處理電路經組態以:自該第一記憶體擷取該網路封包;及將該經擷取網路封包傳輸至一第二網路化裝置。
  24. 如請求項13之網路化裝置,其中該移出佇列速率包括該佇列之一取樣移出佇列速率且其中該處理電路經組態以:判定由該佇列之一符記桶成形器在一單位時間內用來使一或多個封包自該佇列移出佇列之符記之一數目,其中該等符記之各者表示待自該佇列移出佇列之位元組之一給定數目;及基於在該單位時間內使用之符記之該數目判定該取樣移出佇列速率。
  25. 一種非暫時性電腦可讀媒體,包括指令,該等指令在被執行時致使一網路化裝置之處理電路:接收一待處理之傳入網路封包,其中該網路封包在處理之前保存於一佇列中;自該佇列之複數種佇列狀態選擇一佇列狀態;基於該佇列之一移出佇列速率判定該網路封包之一預測壽命,其中為了判定該預測壽命,該等指令致使該處理電路使用對應於該選定佇列狀態之一查找表;基於該預測壽命自複數個記憶體為該網路封包選擇一第一記憶體, 其中該複數個記憶體包含該處理電路之一本端記憶體及該處理電路之一外部記憶體;及回應於自該複數個記憶體選擇該第一記憶體而將該網路封包儲存於該第一記憶體處。
TW108121242A 2018-06-27 2019-06-19 運算裝置中預測封包壽命之佇列系統 TWI700912B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/020,842 2018-06-27
US16/020,842 US10623329B2 (en) 2018-06-27 2018-06-27 Queuing system to predict packet lifetime in a computing device

Publications (2)

Publication Number Publication Date
TW202002596A TW202002596A (zh) 2020-01-01
TWI700912B true TWI700912B (zh) 2020-08-01

Family

ID=66999713

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108121242A TWI700912B (zh) 2018-06-27 2019-06-19 運算裝置中預測封包壽命之佇列系統

Country Status (6)

Country Link
US (1) US10623329B2 (zh)
EP (1) EP3588880B1 (zh)
KR (1) KR102177574B1 (zh)
CN (1) CN110650099B (zh)
SG (1) SG10201905137YA (zh)
TW (1) TWI700912B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10541946B1 (en) 2016-01-30 2020-01-21 Innovium, Inc. Programmable visibility engines
US10355981B1 (en) 2016-03-02 2019-07-16 Innovium, Inc. Sliding windows
US11075847B1 (en) 2017-01-16 2021-07-27 Innovium, Inc. Visibility sampling
US11784932B2 (en) * 2020-11-06 2023-10-10 Innovium, Inc. Delay-based automatic queue management and tail drop
US11621904B1 (en) 2020-11-06 2023-04-04 Innovium, Inc. Path telemetry data collection

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005925A1 (en) * 2005-06-21 2007-01-04 Paul Burkley Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures
US8184540B1 (en) * 2009-12-11 2012-05-22 Juniper Networks, Inc. Packet lifetime-based memory allocation
US20170242625A1 (en) * 2016-02-24 2017-08-24 Samsung Electronics Co., Ltd. Apparatus for ssd performance and endurance improvement
WO2017192400A1 (en) * 2016-05-02 2017-11-09 Visa International Service Association System and method for latency-based queuing
TW201812591A (zh) * 2016-09-02 2018-04-01 韓商三星電子股份有限公司 使用自動串流偵測以及指定演算法的固態硬碟、驅動器及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149563A1 (en) * 2004-01-06 2005-07-07 Yong Yean K. Random early detect and differential packet aging flow control in switch queues
CN101621469B (zh) 2009-08-13 2012-01-04 杭州华三通信技术有限公司 数据报文存取控制装置和方法
US9019824B2 (en) * 2013-02-15 2015-04-28 Cisco Technology, Inc. Prioritized queueing in a mesh network based on age of payload data
US10193831B2 (en) * 2014-01-30 2019-01-29 Marvell Israel (M.I.S.L) Ltd. Device and method for packet processing with memories having different latencies
CA2882446A1 (en) * 2014-02-21 2015-08-21 Coho Data, Inc. Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities
US10419370B2 (en) * 2015-07-04 2019-09-17 Avago Technologies International Sales Pte. Limited Hierarchical packet buffer system
US10715441B2 (en) * 2015-09-04 2020-07-14 Arista Networks, Inc. System and method of a high buffered high bandwidth network element

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005925A1 (en) * 2005-06-21 2007-01-04 Paul Burkley Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures
US8184540B1 (en) * 2009-12-11 2012-05-22 Juniper Networks, Inc. Packet lifetime-based memory allocation
US20170242625A1 (en) * 2016-02-24 2017-08-24 Samsung Electronics Co., Ltd. Apparatus for ssd performance and endurance improvement
WO2017192400A1 (en) * 2016-05-02 2017-11-09 Visa International Service Association System and method for latency-based queuing
TW201812591A (zh) * 2016-09-02 2018-04-01 韓商三星電子股份有限公司 使用自動串流偵測以及指定演算法的固態硬碟、驅動器及方法

Also Published As

Publication number Publication date
TW202002596A (zh) 2020-01-01
US10623329B2 (en) 2020-04-14
EP3588880A1 (en) 2020-01-01
CN110650099A (zh) 2020-01-03
CN110650099B (zh) 2023-05-26
SG10201905137YA (en) 2020-01-30
KR20200001532A (ko) 2020-01-06
US20200007454A1 (en) 2020-01-02
EP3588880B1 (en) 2021-05-26
KR102177574B1 (ko) 2020-11-11

Similar Documents

Publication Publication Date Title
TWI700912B (zh) 運算裝置中預測封包壽命之佇列系統
US9413611B2 (en) Generating and enforcing a holistic quality of service policy in a network
US8797877B1 (en) Virtual output queue allocation using dynamic drain bandwidth
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
US8817807B2 (en) System and method for distributed resource control of switches in a network environment
US11784925B2 (en) Combined input and output queue for packet forwarding in network devices
US20110228781A1 (en) Combined Hardware/Software Forwarding Mechanism and Method
EP3094053A1 (en) Predictive egress packet classification for quality of service
US9379991B2 (en) Communication node, a receiving node and methods therein
US20110122883A1 (en) Setting and changing queue sizes in line cards
WO2019061302A1 (zh) 对报文进行处理方法及装置
EP2985963A1 (en) Packet scheduling networking device
US10523571B2 (en) Processing data items in a communications network
US20230142425A1 (en) Virtual dual queue core stateless active queue management (agm) for communication networks
Rodríguez-Pérez et al. A delay-oriented prioritization policy based on cooperative lossless buffering in PTN domains
Jiang et al. Differentiated queueing service (DQS) for granular QoS
Vijay et al. PACKET HANDLING SCHEDULING IN MULTIPLE ROUTING CONFIGURATIONS FOR FAST IP NETWORK RECOVERY
JP2004266561A (ja) トラヒック量制御装置およびその方法