TW201642140A - 用於防止欠載之封包記憶體系統、方法及裝置 - Google Patents
用於防止欠載之封包記憶體系統、方法及裝置 Download PDFInfo
- Publication number
- TW201642140A TW201642140A TW105109655A TW105109655A TW201642140A TW 201642140 A TW201642140 A TW 201642140A TW 105109655 A TW105109655 A TW 105109655A TW 105109655 A TW105109655 A TW 105109655A TW 201642140 A TW201642140 A TW 201642140A
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- controller
- packet data
- memory
- ports
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一種用於選擇性地在一個或多個輸出埠上輸出所接收到的封包的封包記憶體系統。該封包記憶體系統包括用於控制輸出埠的控制器。具體地,針對需要從多個埠輸出的多播或廣播業務的封包,控制器指定從封包記憶體中讀取封包資料的一個或多個讀取埠,使得其餘的埠能夠僅僅對讀取的封包資料進行監聽而不執行讀取操作。
Description
本發明涉及封包記憶體系統。更具體地,本發明涉及在封包記憶體系統中防止欠載(underrun)。
類似於交換機微晶片的封包處理設備通常都需要在設備對封包進行處理時緩衝封包到具有一個或多個記憶體庫的封包緩衝記憶體(PM)中封包。某些封包(例如,乙太網封包)的大小事先是未知的,因此設備需要在不知道封包多大的情況下啟動在封包緩衝器中儲存封包。而且,封包以一交錯方式到達設備,因而設備同時將到達的多個封包儲存到封包緩衝器中。封包在設備的封包記憶體中儲存封包的現有技術的解決方案是為每個封包分派封包記憶體的多個塊(被稱作頁面),而不是為其分派單個大的塊。使用這種方案,封包沒有被連續地儲存在封包記憶體的多個記憶體庫中,而是被分散在遍及封包記憶體的多個記憶體庫的一個或多個頁面中。因此,需要在交換機中維護特定封包所使用的所有頁面(及其記憶體庫)的鏈表;隨後遍歷該鏈表,從而從封包記憶體定位和讀取封包來
進行傳輸。
在被稱作廣播業務的封包業務類型中,要求設備的所有輸出埠輸出相同的封包資料。類似地,在被稱作多播業務的封包業務類型中,要求設備的輸出埠中的多個(但不是所有)埠輸出相同的封包資料。因此,對於這樣的業務,所有這些輸出埠將針對該相同封包資料請求封包記憶體。這會在設備中產生性能問題,因為這引起了大量的輸出埠在大致相同的時間對相同資料的請求。具體地,當這種情況經常發生時,封包記憶體中的少數記憶體庫將需要服務所有的請求,而其它記憶體庫保持空閒。因此,輸出埠中的某些埠將很快地得到資料,但是其它埠將需要等待相對較長的時間以獲取資料,這是因為這個記憶體庫的較小子集需要序列化來自多個輸出埠的所有請求,因為每個記憶體庫通常只有少量的讀取埠。
資料的這一等待時間具有兩個不希望的結果。如果資料對應於封包的開始,那麼將延遲整個封包的傳輸。這意味著埠頻寬的下降,因為在其實際能夠發送資料時卻在等待發送資料。如果資料對應於封包的中部而且已經傳輸了封包中的一些資料,那麼輸出埠不能以需要的速率進行傳輸,並且引起欠載錯誤。這比上面描述的性能下降更為嚴重,因為封包在有錯誤的情況下傳輸,並且接收機將不得不丟棄該封包,從而導致在某些情況下代價很高的封包重傳。上面描述的第二種情況在交換機工作在直通(cut-thru)模式時更加常見。在這種模式下,需要傳輸封包的所有輸出埠都將在大致相同的時間進行操作,因為它們被指示儘快傳輸封包而無需等待接收到整個封包。
一種用於選擇性地在一個或多個輸出埠上輸出所接收的封包的封包記憶體系統。該封包記憶體系統包括用於控制輸出埠的一控制器。具體地,針對需要從多個埠輸出的多播或廣播業務的封包,控制器指定從一封包記憶體讀取封包資料的一個或多個讀取埠,使得其餘的埠能夠僅僅對讀取的封包資料進行監聽而不執行一讀取操作。
第一個方面針對封包記憶體系統,所述系統包括一非瞬態電腦可讀封包記憶體,所述非瞬態電腦可讀封包記憶體包括用於儲存由所述系統輸入的封包的封包資料的一個或多個記憶體庫,其中,所述封包資料在被儲存在記憶體庫上時根據被映射到所述記憶體庫的一個或多個頁面來進行組織;多個輸出埠,多個輸出埠與封包記憶體耦合,並且被配置為選擇性地從封包記憶體讀取封包資料,並且將封包資料向系統的外部輸出;以及,與多個輸出埠耦合的一控制器,控制器用於控制哪些埠輸出所述封包資料,其中如果封包資料將從兩個或更多個埠被輸出,則控制器命令少於兩個或更多個埠中的所有埠的埠以引起封包資料從封包記憶體被讀出並且被傳輸至兩個或更多個埠中的所有埠。在某些實施例中,多個輸出埠和控制器正以直通(cut-thru)模式操作,以使得多個輸出埠中的每個埠在封包的整體被接收到之前開始輸出封包資料。在某些實施例中,控制器命令兩個或更多個埠中的所有埠基於一封包資料識別符在封包資料從封包記憶體被讀出之後監聽並且輸出封包資料,封包資料的識別符由控制器發送至兩個或更多個埠中的所有埠。在某些實施例中,少於兩個或更多個埠中的所有埠的埠中的每個埠引起封包資料的不同部分從所述封包記憶體被
讀出。在某些實施例中,少於兩個或更多個埠中的所有埠的埠中的每個埠的封包資料的不同部分由控制器基於在頁面之間如何分配封包資料而決定。在某些實施例中,少於兩個或更多個埠中的所有埠的埠的數量由控制器基於在其上儲存有封包資料的頁面的數量來決定。在某些實施例中,控制器基於兩個或更多個埠中的每個埠的擁塞程度來選擇少於所述兩個或更多個埠中的所有埠的埠。在某些實施例中,多個輸出埠中的每個埠包括一緩衝器,緩衝器儲存有用於標識已經由控制器指定將被埠輸出的、但是還沒有被該埠輸出的一個或多個封包的一列表,並且另外其中兩個或更多個埠中的每個埠的擁塞程度基於由該埠的緩衝器清單所標識的封包的當前數量。在某些實施例中,少於所述兩個或更多個埠中的所有埠的埠正是引起所有的封包資料從封包記憶體被讀出的兩個或更多個埠中的一個埠。在某些實施例中,少於所述兩個或更多個埠中的所有埠的埠正是兩個或更多個埠中的一第一埠和一第二埠,並且另外其中控制器命令第一埠以引起封包資料的一第一部分被讀出,並且命令第二埠以引起封包資料的沒有被包括在第一部分中內的剩餘部分被讀出。在某些實施例中,第一部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第一頁面上並且包含封包資料的標頭,並且另外其中封包資料的剩餘部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第二頁面上並且包括封包資料的沒有被包含在第一頁面內的剩餘部分。
第二個方面針對儲存在一非暫態性的電腦可讀介質上並且與多個輸出埠耦合的一控制器,多個輸出埠選擇性地從封包記憶體讀取並輸出封包資料,其中封包儲存器具有儲存封包資料的一個或多個記憶體
庫,並且另外其中控制器被配置為,如果封包資料將從兩個或更多個埠被輸出所,則命令少於兩個或更多個埠中的所有埠的埠以引起封包資料從封包記憶體被讀出並且被傳輸至兩個或更多個埠中的所有埠。在某些實施例中,多個輸出埠和控制器以直通模式進行操作,以使得多個輸出埠中的每個埠在封包的整體被接收到之前開始輸出封包資料。在某些實施例中,控制器被配置為,命令兩個或更多個埠中的所有埠基於一封包資料識別符在封包資料從封包記憶體被讀出之後監聽並且輸出所述封包資料,封包資料的識別符由控制器發送至兩個或更多個埠中的所有埠。在某些實施例中,少於所述兩個或更多個埠中的所有埠的埠中的每個埠引起封包資料的不同部分從所述封包記憶體被讀出。在某些實施例中,封包資料被儲存在所述記憶體庫上時根據被映射到記憶體庫的一個或多個頁面來進行組織,另外其中少於所述兩個或更多個埠中的所有埠的埠中的每個埠的封包資料的不同部分由控制器基於在頁面之間如何分配封包資料而決定。在某些實施例中,控制器被配置為,基於其上儲存了封包資料的頁面的數量來決定少於所述兩個或更多個埠中的所有埠的埠的數量。在某些實施例中,控制器被配置為,基於兩個或更多個埠中的每個埠的擁塞程度來選擇少於所述兩個或更多個埠中的所有埠的埠。在某些實施例中,多個輸出埠中的每個埠包括一緩衝器,緩衝器儲存有用於標識已經由所述控制器指定將被埠輸出的、但是還沒有被該埠輸出的一個或多個封包的一列表,並且另外其中兩個或更多個埠中的每個埠的擁塞程度基於由該埠的緩衝器清單所標識的封包的當前數量。在某些實施例中,少於兩個或更多個埠中的所有埠的埠正是引起所有的封包資料從封包記憶體被讀出的兩個或更多個埠中的一個
埠。在某些實施例中,少於兩個或更多個埠中的所有埠的埠正是所述兩個或更多個埠中的一第一埠和一第二埠,並且其中控制器被配置為,命令第一埠以引起封包資料的一第一部分被讀出,並且命令第二埠以引起封包資料的沒有被包括在第一部分內的剩餘部分被讀出。在某些實施例中,第一部分被儲存在被映射到記憶體庫的頁面中的一個或多個第一頁面上並且包括封包資料的標頭,並且另外其中封包資料的剩餘部分被儲存在被映射到儲存庫的頁面中的一個或多個第二頁面上並且包括封包資料的沒有被包括在第一頁面內的剩餘部分。
第三個方面針對操作一封包記憶體系統的一方法。方法包括:在一非瞬態電腦可讀封包記憶體的一個或多個記憶體庫上儲存封包的封包資料,其中在記憶體庫上儲存封包資料包括當封包資料被儲存在儲存庫上時根據被映射到儲存庫的一個或多個頁面來進行組織;如果封包資料從被耦合至封包記憶體的兩個或更多個埠被輸出,則利用被耦合至輸出埠的一控制器來命令少於兩個或更多個埠中的所有埠的埠以引起封包資料以引起封包資料從所述封包記憶體被讀出且被傳輸至兩個或更多個埠中的所有埠;以及利用兩個或更多個埠從兩個或更多個埠中的每個埠輸出封包資料。在某些實施例中,多個輸出埠和控制器以直通模式進行操作,以使得通過兩個或更多個埠中的每個埠輸出封包資料包括,在封包的整體被接收到之前開始輸出封包資料的至少一部分。在某些實施例中,方法還包括,利用控制器命令兩個或更多個埠中的所有埠基於一封包資料識別符在封包資料從封包記憶體被讀出之後監聽並且輸出封包資料,封包資料識別符由控制器發送至兩個或更多個埠中的所有埠。在某些實施例中,少於所述兩
個或更多個埠中的所有埠的所述埠中的每個埠引起封包資料的不同部分從所述封包記憶體被讀出。在某些實施例中,方法還包括,利用控制器基於在頁面之間如何分配封包資料來決定少於所述兩個或更多個埠中的所有埠的埠中的每個埠的封包資料的不同部分。在某些實施例中,方法還包括,利用控制器基於在其上儲存了封包資料的頁面的數量來確定少於兩個或更多個埠中的所有埠的埠的數量。在某些實施例中,方法還包括,利用控制器基於兩個或更多個埠中的每個埠的擁塞程度來選擇數目少於兩個或更多個埠中的所有埠的埠。在某些實施例中,多個輸出埠中的每個埠包括一緩衝器,緩衝器儲存有用於標識已經由控制器指定將被埠輸出的、但是還沒有被該埠輸出的一個或多個封包的一列表,並且其中兩個或更多個埠中的每個埠的擁塞程度基於由該埠的緩衝器清單所標識的封包的當前的數量。在某些實施例中,少於兩個或更多個埠中的所有埠的埠正是引起所有的封包資料從所述封包記憶體被讀出的兩個或更多個埠中的一個埠。在某些實施例中,少於所述兩個或更多個埠中的所有埠的埠正是兩個或更多個埠中的一第一埠和一第二埠,還包括,利用控制器命令第一埠以引起封包資料的一第一部分被讀出以及命令第二埠以引起封包資料的沒有被包括在第一部分內的剩餘部分被讀出。在某些實施例中,第一部分被儲存在被映射到記憶體庫的頁面中的一個或多個第一頁面上並且包括所述封包資料的標頭,並且其中封包資料的剩餘部分被儲存在被映射到儲存庫的頁面中的一個或多個第二頁面上並且包括封包資料的沒有被包括在第一頁面內的剩餘部分。
100‧‧‧封包記憶體系統
102‧‧‧封包處理設備
104‧‧‧封包記憶體
106‧‧‧輸出埠
108‧‧‧控制器
110‧‧‧記憶體庫
112‧‧‧封包記憶體存取元件
114‧‧‧記憶體庫位址元件
116‧‧‧埠緩衝器
202‧‧‧鏈表
202a‧‧‧第一集合
202b‧‧‧第二集合
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
第一圖圖示了根據某些實施例的封包記憶體系統。
第二圖圖示了根據某些實施例的封包的頁面鏈表和鏈表到封包記憶體的記憶體庫的示例性映射。
第三圖圖示了根據某些實施例的、在封包記憶體系統中防止欠載的方法。
在以下描述中,出於說明的目的闡述了許多細節。然而,本領域的技術人員將認識到,本發明可以不使用這些具體的細節來實踐。因此,本發明並不旨在被限制於所示出的實施例,而是遵循與本文所描述的原理和特徵相一致的最大的範圍。
多個實施例針對用於選擇性地在一個或多個輸出埠上輸出所接收的封包的封包記憶體系統。該封包記憶體系統包括用於控制輸出埠的一控制器。具體地,針對需要從多個埠輸出的多播或廣播業務的封包,控制器指定從封包記憶體中讀取封包資料的一個或多個讀取埠,使得其餘的埠能夠僅僅對讀取封包資料進行監聽而不執行讀取操作。因此,防止了所有輸出埠基本上同時存取封包記憶體中的封包的嘗試,從而提高了系統的效率。
第一圖圖示了根據某些實施例的一封包處理設備102上的一封包記憶體系統100。如第一圖所示,封包記憶體系統100包括與一封包記憶體104和一控制器108耦合的一個或多個輸出埠106。封包記憶體104包括一個或多個記憶體庫110,每個記憶體庫具有一個或多個讀取和/或寫入埠
(未示出),實現每週期從記憶體庫110讀取資料或向其寫入資料。記憶體庫110被耦合至每個埠106,使得每個儲存體110能夠輸出由一個、多個或所有的埠106接收的資料。每個埠106包括一埠緩衝器116,並且能夠作為一封包記憶體存取元件112(例如,直接記憶體存取塊)的一部分,其中封包記憶體存取元件112還可以包括被耦合至每個埠106以及至少一個記憶體庫110的一個或多個記憶體庫位址元件114。特別地,元件112可以包括用於每個儲存體110的記憶體庫位址元件114。備選地,可以存在比記憶體庫110的數目更多或更少的記憶體庫位址元件114。因此,每個埠106能夠經由相關聯的記憶體庫位址元件114和封包記憶體存取元件112與每個儲存體110進行通信(例如,從其讀取資料)。在某些實施例中,記憶體庫位址元件114是記憶體庫讀取位址複用器(多工器)。控制器108能夠對封包執行任何需要的修改,確定將封包發送到何處,並且執行所需的任何業務管理。控制器108與每個埠106耦合,使得控制器108能夠選擇性地向一個或多個埠106發送控制資料和其它類型的資料。另外,在某些實施例中,控制器108能夠監測一個或多個埠106的埠緩衝器116的狀態和/或接收來自一個或多個埠106的埠緩衝器116的回饋資料。
封包處理設備102可以是一封包處理電路和/或微晶片。例如,設備102可以是資料中心的一交換機微晶片(例如,機架頂端交換機)或其它類型的封包處理電路或專用積體電路。在某些實施例中,設備102是一軟體定義網路可程式設計微晶片,其能夠被程式設計/定制以調整對封包進行處理的方式。備選地,設備102可以是本領域已知的其它類型的封包處理設備。埠106、控制器108和位址元件114可以包括硬體、軟體、或硬體和
軟體的組合,其中的軟體被儲存在設備102的一非暫態性的電腦可讀介質上。封包記憶體104可以包括諸如三態內容可定址記憶體的一非暫態性的電腦可讀介質。備選地,封包記憶體104可以包括本領域已知的其它類型的記憶體或它們的組合。系統100和/或設備102能夠以常規模式和直通模式進行操作。在常規模式下,系統/設備在開始進行封包輸出之前進行等待,直到接收到整個封包。在直通模式下,控制器108和/或輸出埠106盡可能快地傳輸封包而不等到接收到整個封包。
第二圖圖示了根據某些實施例的封包所使用的頁面的鏈表202和鏈表202到封包記憶體104的記憶體庫110的示例性映射。如第二圖所示,在映射到封包記憶體104的記憶體庫110的一個或多個頁面202上儲存封包的封包資料。具體地,每個頁面202都能夠表示(或被映射到)多個記憶體庫110的一個或多個條目(entry)。因此,當在一個頁面202上儲存封包或封包的一部分時,這將導致該封包被儲存在被映射到該頁面的、封包記憶體104內跨記憶體庫110分配的多個不連續的位置中。封包通常將需要多個頁面202以便儲存封包的整體。將頁面的清單202稱為鏈表,並且它可以用作指向在封包記憶體104的記憶體庫110上儲存封包的位置的指標的映射或列表。通常,鏈表202中的一個或多個頁面的一第一集合202a將包括封包的標頭(header),而鏈表202中的一個或多個頁面的一第二集合202b將儲存封包的主體(body)。具體地,標頭頁面含有控制塊處理的標頭資料,主體頁面含有通常不由設備102改變的封包的主體。因此,頁面202實現了跨記憶體庫110分配每個封包的封包資料,使得從記憶體庫110讀取封包資料或向其寫入封包資料更高效。
如第二圖所示,雖然標頭頁面202a跨兩個記憶體庫110被映射,並且主體頁面202b跨三個記憶體庫110被映射,但是頁面202每個能夠跨更多或更少的記憶體庫被映射。例如,可以將頁面映射到單個記憶體庫110的不連續的條目,或者可以將其映射到多個記憶體庫110中任意數目的記憶體庫的條目。備選地,頁面202可以被映射到單個記憶體庫110的連續的條目。封包具有關聯的一描述符或標記,基本形式的描述符或標記可以是指向儲存封包的頁面的鏈表202的第一頁面的一指標。使用這一初始指標,封包所使用的所有頁面都能夠按照與使用其遍歷鏈表202的相同的次序來獲取,因為每個後續頁面都包含了指向清單202中的下一個頁面的位置的一指標。
在操作中,當設備/系統102/100處於直通模式時,控制器108決定一封包是旨在由埠106中的一單個目標埠輸出的一單播業務封包、還是旨在由埠106中的多個目標埠輸出的多播/廣播業務封包。如果決定封包為多播/廣播,那麼控制器108不會命令所有的目標埠106嘗試從記憶體104讀取封包的封包資料,而是僅僅選擇和命令目標埠106中的子集嘗試讀取封包資料。在某些實施例中,這一子集僅僅是目標埠106中的單個埠106,使得選擇的單個埠106被命令從封包記憶體104存取所有封包資料。備選地,這一子集可以是目標埠106中的多個(但不是所有)埠。在這些實施例中,選擇的埠106中的每一個都能夠被控制器108命令存取封包資料的不同部分,使得只有在所有的埠106都已經發佈了它們的請求之後,才從封包記憶體104中讀取所有的封包資料。特別地,能夠在鏈表202中的逐個頁面的基礎上劃分封包資料和/或將其在埠的子集當中分配,從而使得子集中的每個埠被指
定與封包相關聯的鏈表202中的一個或多個頁面。例如,如果子集具有兩個埠106,控制器108能夠將儲存封包的標頭資料的頁面202a分配給子集中的第一個埠106,並且將儲存封包的主體資料(或其餘部分)的頁面202b分配給子集中的第二個埠106。
在某些實施例中,控制器108隨機地或根據輪詢(round robin)協定選擇哪些目標埠106將被包含在子集中和/或將被包含在子集中的目標埠106的數量。備選地,控制器108可以基於目標埠106當前的擁塞程度來選擇哪些目標埠106將被包含在子集中和/或將被包含在子集中的目標埠106的數目。例如,將具有低擁塞程度的目標埠106選擇為構成子集的讀取埠。特別地,控制器108可以監測、請求和/或被傳輸以來自每個目標埠106的指示它們當前的業務擁塞程度的回饋。在某些實施例中,每個埠106的擁塞程度基於已經由控制器指定給埠將輸出的、但是還沒有被該埠輸出的待處理的封包的數量,通過埠緩衝器116對其進行指示,埠緩衝器116儲存了來自控制器108的、指示需要從埠106輸出的封包資料的命令消息或標記。例如,埠緩衝器116可以根據一先進先出協定進行操作,其中,將被輸出的封包或封包資料的識別符(例如,描述符或標記)由緩衝器116進行接收,並且隨後只有在埠106已經接收並且輸出了相關聯的封包或封包資料之後才從緩衝器116中將其去除。因此,儲存在緩衝器116中的識別符的數量表示埠106當前的積壓(backlog)或擁塞程度。備選地,擁塞程度可以基於其它的度量和/或因素。
在某些實施例中,控制器108可以基於封包的大小(例如,儲存封包的頁面的數目、位元組數)、不同類型的封包資料的數目、和/或可
以基於目標埠106的當前的擁塞程度,決定將被指定為讀取埠106的子集的(目標埠中的)埠的數量。例如,基於第一選擇埠106的一擁塞程度,控制器108能夠限制被指定給第一埠106的封包的頁面的一數目,並且能夠確定需要一個或多個附加的埠106,其中,可以對每個附加的埠106執行同樣的頁面數目的限制和/或添加選擇的埠106,直到已經將所有的封包資料指定給了形成子集的目標埠106為止。換言之,擁塞程度越高,將為選擇的目標埠106所指定的頁面的數目和/或封包資料量就越少,其中,如果由於擁塞限制而不能夠在當前選擇的埠106當中分配所有的資料,可以添加一個或多個埠106作為選擇的讀取埠106。
一旦控制器108已經決定了目標埠106的子集,控制器108向子集中的每個目標埠發送讀取消息。讀取消息包括一讀取識別符、一封包識別符(例如,描述符或標記)、一埠識別符、和/或一封包資料識別符。讀取識別符向埠106指示,其需要發佈、從由該封包資料指示符所指示的封包記憶體104的記憶體庫110的多個條目內的位置處讀取由封包資料指示符所指示的封包資料的一讀取存取請求。埠識別符指示讀取消息針對哪個埠106,並且由此使得埠106能夠獲知該消息是針對該埠106的。封包識別符唯一地標識封包,而且封包資料識別符標識指示埠106正被指向以從封包記憶體104讀出的封包資料或其中的部分。例如,封包資料識別符能夠標識與封包相關聯的鏈表202中的一個或多個頁面,從而基於由所述頁面所指向的記憶體110中的位置,所選擇的讀取埠106能夠發佈讀取存取消息,讀取存取消息導致從封包記憶體104讀取出儲存在所標識的頁面上的封包資料。在某些實施例中,埠識別符能夠被省略和/或封包識別符和封包資料識別符能夠
匹配或只有單個識別符。例如,如果子集僅僅是單個埠106,封包識別符自身能夠被用於對封包資料進行標識(例如,經由相關聯的鏈表202)。另外,封包識別符能夠被附加到所有的存取請求,並且隨後將所有的封包資料作為資料讀出並且傳輸到設備102上的所有埠106,從而使得所有的目標埠106能夠在接收到封包資料時,基於所附加的封包識別符來識別和輸出封包資料。
控制器108還能夠向沒有被包含在選擇的子集中的每個目標埠106發送監聽消息。這些監聽消息類似於讀取消息,但是其中的封包資料識別符可以被省略、並且讀取識別符能夠被省略和/或指示埠106不是讀取埠,並且相反地,其僅僅需要針對具有與監聽消息中所指示的識別符相匹配的所附加的封包識別符的封包資料而監測/監聽來自封包記憶體104的輸出。因此,沒有被選擇的或其餘的目標埠106將不嘗試從封包記憶體104讀取封包資料,並且相反地,將僅在基於子集的存取嘗試、將封包資料從記憶體104讀出到所有的埠106時監聽/監測封包資料。
在接收到讀取消息之後,選擇的目標埠106發佈針對由封包資料識別符和/或包括所需要的封包資料的封包識別符所指示的記憶體庫110的多個條目上的資料的封包資料請求。如上所述,這些讀取存取請求可以包括封包識別符,使得封包資料當從封包記憶體104中讀出時能夠將該封包識別符附加,從而使所有的目標埠(子集和其餘埠)能夠通過將被附加到資料的封包識別符和所接收到的讀取/監聽消息中的封包識別符進行匹配,來接收和輸出所讀出的封包資料。所選擇的埠106的子集能夠發佈對封包記憶體104的任意所需數量的讀取存取請求,以獲取由控制器108所指示
的封包資料。例如,對於為每個埠106所指定的頁面,埠106能夠從由所指定的頁面中的第一個頁面指示的記憶體104內的一第一位置開始,並且隨後進行到由鏈表202中的下一頁面所指示的封包記憶體104內的另一位置,直到被指定給埠106的所有頁面已經被發佈存取/讀取請求。
這些請求能夠發生在存取元件112的內部。具體地,從埠106的子集傳輸請求至與在其中儲存了所需要的封包資料的記憶體庫110(由頁面202指示)相關聯的記憶體庫位址元件114。記憶體庫位址元件114隨後裁決在該週期中發佈了讀取存取請求的哪個埠106將獲得對與記憶體庫110相關聯的一個或多個讀取埠的存取。這種裁決可以是獨立的、或者可以針對每個位址元件114獨立地發生,並且對於每個記憶體庫110也是如此。隨後,如上所述,所存取的記憶體庫110的讀取埠傳播讀取封包資料的請求的封包識別符,並且將該讀取的封包資料傳輸到設備102上的所有的埠106。因此,在接收到封包資料之後,每個埠106能夠對指定給埠106的封包識別符與被附加到封包資料的被傳播的封包識別符進行比較,並且如果二者匹配,則消費(consume)並且輸出該資料。因此,所有的目標埠106將根據控制器108的指示消費多播/廣播封包資料並且輸出所述資料,儘管實際上只有子集埠106從封包記憶體104請求資料。因此,系統100提供了降低多播業務中針對記憶體庫110的爭用的優點,並且由此消除或最小化了特別在一直通模式期間的封包欠載的可能性。
第三圖圖示了根據某些實施例的、在一封包記憶體系統中防止欠載的一方法。如第三圖所示,在步驟302,封包處理設備102在封包記憶體104的一個或多個記憶體庫110上儲存一個或多個封包。如上所述,
每個封包能夠被儲存在被映射到封包記憶體104中的多個位置的鏈表202的一個或多個頁面上。在步驟304,控制器108確定封包是否是需要從多個目標埠106輸出的多播/廣播封包。在步驟306,如果封包是多播或廣播,控制器108發送一讀取命令至目標埠106的選擇子集,指示子集中的每個埠從封包記憶體104讀取封包資料的部分或者全部。在步驟308,所有的目標輸出埠106在接收到來自封包記憶體103的封包資料後輸出封包資料。在某些實施例中,設備102處於一直通模式,從而由目標埠106輸出封包資料包括,在接收到整個封包之前開始輸出封包資料的至少部分。在某些實施例中,方法還包括,如果封包是多播或廣播,控制器108發送一監聽命令至目標埠106中的未被選擇的其餘埠,並且指示其餘埠中的每個埠在子集從封包記憶體104讀取封包資料時,監聽/監測封包資料並且輸入封包資料。因此,該方法提供了減少被發送給封包資料的記憶體庫110的針對多播/廣播封包資料的讀取存取流量的優點。
本文描述的封包記憶體系統具有許多優點。具體地,系統提供了減少讀取需要從埠發送的封包而對封包記憶體的存取量,並且由此減少了對記憶體庫讀取埠的爭用。事實上,這反過來又降低了封包欠載的可能性,並且有助於埠的頻寬性能。而且,當多個目標埠而不是所有的目標埠被指定為讀取埠、從而可以執行一適當數量的並行資料存取時,增加了封包記憶體的頻寬。特別是,在多個埠之間劃分封包資料可以有助於防止所選擇的所有埠對同時存取相同記憶體庫的需求。另外,通過使用來自多個埠的擁塞回饋,控制器除了可以確定需要的埠數量之外還可以提供在目標埠之間更好的分配讀取存取負荷的益處。因此,系統可以再次降低封
包欠載的可能性,並且有助於埠的頻寬性能。
儘管已經參照許多特定的細節描述了本發明,但是本領域的技術人員將認識到的是,本發明可以通過其它的具體形式來體現,而沒有背離本發明的精神。例如,雖然本文所描述的不同的方法和操作描述了步驟的特定次序,但是可以預見其它的次序以及省略一個或多個步驟和/或添加一個或多個新的步驟。而且,雖然在本文中獨立地描述了前面的方法和操作,但是可以組合(全部地或部分地)一個或多個方法和操作。因此,本領域的技術人員將理解的是,本發明不受前面說明性細節的限制,而是由隨附的申請專利範圍限定。
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
Claims (33)
- 一種封包記憶體系統,所述系統包括:一非瞬態電腦可讀封包記憶體,所述非瞬態電腦可讀封包記憶體包括用於儲存由所述系統輸入的封包的封包資料的一個或多個記憶體庫,其中所述封包資料在被儲存在所述記憶體庫上時根據被映射到所述記憶體庫的一個或多個頁面來進行組織;多個輸出埠,所述多個輸出埠與所述封包記憶體耦合,並且被配置為選擇性地從所述封包記憶體讀取所述封包資料並且將所述封包資料向所述系統外部輸出;以及與所述多個輸出埠耦合的一控制器,所述控制器用於控制哪些所述埠輸出所述封包資料,其中如果所述封包資料將從兩個或更多個所述埠被輸出,則所述控制器命令少於所述兩個或更多個埠中的所有埠的埠以引起所述封包資料從所述封包記憶體被讀出並且被傳輸至所述兩個或更多個埠中的所有埠。
- 如申請專利範圍第1項所述的系統,其中所述多個輸出埠和所述控制器正以一直通模式進行操作,以使得所述多個輸出埠中的每個輸出埠在所述封包的整體被接收到之前開始輸出封包資料。
- 如申請專利範圍第2項所述的系統,其中所述控制器命令所述兩個或更多個埠中的所有埠基於一封包資料識別符在所述封包資料從所述封包記憶體被讀出之後監聽並且輸出所述封包資料,所述封包資料識別符由所述控制器發送至所述兩個或更多個埠中的所有埠。
- 如申請專利範圍第3項所述的系統,其中所述少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠引起所述封包資料的一不同部分從所述封包記憶體被讀出。
- 如申請專利範圍第4項所述的系統,其中所述少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠的所述封包資料的所述不同部分由所述控制器基於在所述頁面之間如何分配所述封包資料來決定。
- 如申請專利範圍第5項所述的系統,其中所述少於所述兩個或更多個埠中的所有埠的所述埠的數量由所述控制器基於其上儲存有所述封包資料的頁面的一數量來決定。
- 如申請專利範圍第6項所述的系統,其中所述控制器基於所述兩個或更多個埠中的每個埠的一擁塞程度來選擇少於所述兩個或更多個埠中的所有埠的所述埠。
- 如申請專利範圍第7項所述的系統,其中所述多個輸出埠中的每個輸出埠包括一緩衝器,所述緩衝器儲存用於標識已經由所述控制器指定將被所述埠輸出的、但是還沒有被所述埠輸出的一個或多個封包的一列表,並且另外其中所述兩個或更多個埠中的每個埠的所述擁塞程度基於由所述埠的所述緩衝器的所述清單所標識的封包的一當前數量。
- 如申請專利範圍第7項所述的系統,其中少於所述兩個或更多個埠中的所有埠的所述埠正是引起所有的封包資料從所述封包記憶體被讀出的所述兩個或更多個埠中的一個埠。
- 如申請專利範圍第7項所述的系統,其中少於所述兩個或更多個埠中的所有埠的所述埠正是所述兩個或更多個埠中的一第一埠和一第 二埠,並且另外其中所述控制器命令所述第一埠以引起所述封包資料的一第一部分被讀出以及命令所述第二埠以引起所述封包資料的沒有被包括在所述第一部分內的一剩餘部分被讀出。
- 如申請專利範圍第10項所述的系統,其中所述第一部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第一頁面上並且包括所述封包資料的標頭,並且另外其中所述封包資料的所述剩餘部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第二頁面上並且包括所述封包資料的沒有被包括在所述第一頁面內的剩餘部分。
- 一種儲存在一非瞬態電腦可讀介質上並且與多個輸出埠耦合的控制器,所述多個輸出埠選擇性地從封包記憶體讀取並且輸出一封包的封包資料,其中所述封包儲存器具有儲存所述封包資料的一個或多個記憶體庫,並且另外其中所述控制器被配置為,如果所述封包資料將從兩個或更多個埠被輸出,則命令少於所述兩個或更多個埠中的所有埠的埠以引起所述封包資料從所述封包記憶體被讀出並且被傳輸至所述兩個或更多個埠中的所有埠。
- 如申請專利範圍第12項所述的控制器,其中所述多個輸出埠和所述控制器正以一直通模式進行操作,以使得所述多個輸出埠中的每個輸出埠在所述封包的整體被接收到之前開始輸出封包資料。
- 如申請專利範圍第13項所述的控制器,其中所述控制器被配置為,命令所述兩個或更多個埠中的所有埠基於一封包資料識別符在所述封包資料從所述封包記憶體被讀出之後監聽並且輸出所述封包資料,所述封包資料識別符由所述控制器發送至所述兩個或更多個埠 中的所有埠。
- 如申請專利範圍第14項所述的控制器,其中少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠引起所述封包資料的一不同部分從所述封包記憶體被讀出。
- 如申請專利範圍第15項所述的控制器,其中所述封包資料在被儲存在所述記憶體庫上時根據被映射到所述記憶體庫的一個或多個頁面來進行組織,另外其中少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠的封包資料的不同部分由所述控制器基於在所述頁面之間如何分配所述封包資料來決定。
- 如申請專利範圍第16項所述的控制器,其中所述控制器被配置為,基於其上儲存有所述封包資料的頁面的數量來決定少於所述兩個或更多個埠中的所有埠的所述埠的一數量。
- 如申請專利範圍第17項所述的控制器,其中所述控制器被配置為,基於所述兩個或更多個埠中的每個埠的一擁塞程度來選擇少於所述兩個或更多個埠中的所有埠的所述埠。
- 如申請專利範圍第18項所述的控制器,其中所述多個輸出埠中的每個輸出埠包括一緩衝器,所述緩衝器儲存用於標識已經由所述控制器指定將被所述埠輸出的、但是還沒有被所述埠輸出的一個或多個封包的一列表,並且另外其中所述兩個或更多個埠中的每個埠的所述擁塞程度基於由所述埠的所述緩衝器的所述清單所標識的封包一當前數量。
- 如申請專利範圍第18項所述的控制器,其中少於所述兩個或更多個 埠中的所有埠的所述埠正是引起所有的封包資料從所述封包記憶體被讀出的所述兩個或更多個埠中的一個埠。
- 如申請專利範圍第18項所述的控制器,其中少於所述兩個或更多個埠中的所有埠的所述埠正是所述兩個或更多個埠中的一第一埠和一第二埠,並且另外其中所述控制器被配置為,命令所述第一埠以引起所述封包資料的一第一部分被讀出以及命令所述第二埠以引起所述封包資料的沒有被包括在所述第一部分內的一剩餘部分被讀出。
- 如申請專利範圍第21項所述的控制器,其中所述第一部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第一頁面上並且包括所述封包資料的標頭,並且另外其中所述封包資料的所述剩餘部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第二頁面上並且包括所述封包資料的沒有被包括在所述第一頁面內的剩餘部分。
- 一種操作一封包記憶體系統的方法,所述方法包括:在一非瞬態電腦可讀封包記憶體的一個或多個記憶體庫上儲存一封包的封包資料,其中在所述記憶體庫上儲存所述封包資料包括當所述封包資料被儲存在所述記憶體庫上時根據被映射到所述記憶體庫的一個或多個頁面來進行組織;如果所述封包資料將從被耦合至所述封包記憶體的多個輸出埠中的兩個或更多個輸出埠被輸出,則利用被耦合至所述輸出埠的一控制器來命令少於所述兩個或更多個埠中的所有埠的埠以引起所述封包資料從所述封包記憶體被讀出並且被傳輸至所述兩個或更多個 埠中的所有埠;以及利用所述兩個或更多個埠從所述兩個或更多個埠中的每個埠輸出所述封包資料。
- 如申請專利範圍第23項所述的方法,其中所述多個輸出埠和所述控制器正以一直通模式進行操作,以使得通過所述兩個或更多個埠中的每個埠輸出所述封包資料包括,在所述封包的整體被接收到之前開始輸出所述封包資料的至少一部分。
- 如申請專利範圍第24項所述的方法,還包括利用所述控制器命令所述兩個或更多個埠中的所有埠基於一封包資料識別符在所述封包資料從所述封包記憶體被讀出之後監聽並且輸出所述封包資料,所述封包資料識別符由所述控制器發送至所述兩個或更多個埠中的所有埠。
- 如申請專利範圍第25項所述的方法,其中少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠引起所述封包資料的一不同的部分從所述封包記憶體被讀出。
- 如申請專利範圍第26項所述的方法,還包括利用所述控制器基於在所述頁面之間如何分配所述封包資料來決定少於所述兩個或更多個埠中的所有埠的所述埠中的每個埠的封包資料的所述不同部分。
- 如申請專利範圍第27項所述的方法,還包括利用所述控制器基於其上儲存有所述封包資料的頁面的一數量來決定少於所述兩個或更多個埠中的所有埠的所述埠的一數量。
- 如申請專利範圍第28項所述的方法,還包括利用所述控制器基於所 述兩個或更多個埠中的每個埠的一擁塞程度來選擇少於所述兩個或更多個埠中的所有埠的所述埠。
- 如申請專利範圍第29項所述的方法,其中所述多個輸出埠中的每個埠包括一緩衝器,所述緩衝器儲存用於標識已經由所述控制器指定將被所述埠輸出的、但是還沒有被所述埠輸出的一個或多個封包的一列表,並且另外其中所述兩個或更多個埠中的每個埠的所述擁塞程度基於由所述埠的所述緩衝器的所述清單所標識的封包的一當前數量。
- 如申請專利範圍第29項所述的方法,其中少於所述兩個或更多個埠中的所有埠的所述埠正是引起所有的封包資料從所述封包記憶體被讀出的所述兩個或更多個埠中的一個埠。
- 如申請專利範圍第29項所述的方法,其中少於所述兩個或更多個埠中的所有埠的所述埠正是所述兩個或更多個埠中的一第一埠和一第二埠,所述方法還包括利用所述控制器命令所述第一埠以引起所述封包資料的一第一部分被讀出以及命令所述第二埠以引起所述封包資料的沒有被包括在所述第一部分內的一剩餘部分被讀出。
- 如申請專利範圍第32項所述的方法,其中所述第一部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第一頁面上並且包括所述封包資料的標頭,並且另外其中所述封包資料的所述剩餘部分被儲存在被映射到所述記憶體庫的頁面中的一個或多個第二頁面上並且包括所述封包資料的沒有被包括在所述第一頁面內的剩餘部分。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/673,807 US10003551B2 (en) | 2015-03-30 | 2015-03-30 | Packet memory system, method and device for preventing underrun |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201642140A true TW201642140A (zh) | 2016-12-01 |
Family
ID=56937077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105109655A TW201642140A (zh) | 2015-03-30 | 2016-03-28 | 用於防止欠載之封包記憶體系統、方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10003551B2 (zh) |
KR (1) | KR102524566B1 (zh) |
CN (1) | CN106027426B (zh) |
DE (1) | DE102016003679A1 (zh) |
FR (1) | FR3034542A1 (zh) |
TW (1) | TW201642140A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333848B2 (en) * | 2016-07-01 | 2019-06-25 | Intel Corporation | Technologies for adaptive routing using throughput estimation |
US11606346B2 (en) | 2020-06-29 | 2023-03-14 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing reception of secure data packets |
US11599649B2 (en) * | 2020-06-29 | 2023-03-07 | Rockwell Automation Technologies, Inc. | Method and apparatus for managing transmission of secure data packets |
CN112257104A (zh) * | 2020-10-10 | 2021-01-22 | 北京字跳网络技术有限公司 | 权限控制方法、装置和电子设备 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978379A (en) | 1997-01-23 | 1999-11-02 | Gadzoox Networks, Inc. | Fiber channel learning bridge, learning half bridge, and protocol |
US6658016B1 (en) | 1999-03-05 | 2003-12-02 | Broadcom Corporation | Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control |
CA2283627C (en) | 1999-09-27 | 2008-08-12 | Nortel Networks Corporation | High-capacity wdm-tdm packet switch |
US7079525B1 (en) | 2000-04-27 | 2006-07-18 | Cisco Technology, Inc. | Network switch having a hybrid switch architecture |
US7068603B2 (en) | 2001-07-06 | 2006-06-27 | Juniper Networks, Inc. | Cross-bar switch |
US7215639B2 (en) * | 2001-08-31 | 2007-05-08 | 4198638 Canada Inc. | Congestion management for packet routers |
US7043569B1 (en) | 2001-09-07 | 2006-05-09 | Chou Norman C | Method and system for configuring an interconnect device |
US7289537B1 (en) | 2002-11-01 | 2007-10-30 | Greenfield Networks, Inc. | Single-chip multi-port Ethernet switch |
US7489683B2 (en) * | 2004-09-29 | 2009-02-10 | Intel Corporation | Integrated circuit capable of routing multicast data packets using device vectors |
US7916743B2 (en) * | 2004-11-17 | 2011-03-29 | Jinsalas Solutions, Llc | System and method for improved multicast performance |
US7719982B2 (en) * | 2005-08-31 | 2010-05-18 | Intel Corporation | Switching device utilizing flow-control management |
US20090073873A1 (en) | 2007-09-17 | 2009-03-19 | Integrated Device Technology, Inc. | Multiple path switch and switching algorithms |
US8554851B2 (en) | 2010-09-24 | 2013-10-08 | Intel Corporation | Apparatus, system, and methods for facilitating one-way ordering of messages |
WO2012120527A1 (en) | 2011-03-07 | 2012-09-13 | Tejas Networks Limited | A protection method and system on preplanning duality of paths for a unicast and/or a multicast traffic |
US8630286B2 (en) * | 2011-09-30 | 2014-01-14 | Broadcom Corporation | System and method for improving multicast performance in banked shared memory architectures |
US9195622B1 (en) | 2012-07-11 | 2015-11-24 | Marvell World Trade Ltd. | Multi-port memory that supports multiple simultaneous write operations |
US9148346B2 (en) | 2012-09-05 | 2015-09-29 | Brocade Communications Systems, Inc. | Multiple ring identification and configuration protocol |
US9037670B2 (en) | 2012-09-18 | 2015-05-19 | Cisco Technology, Inc. | Ultra low latency network buffer storage |
US9154441B2 (en) | 2013-01-25 | 2015-10-06 | Broadcom Corporation | Adaptive buffer allocation management |
US9582440B2 (en) | 2013-02-10 | 2017-02-28 | Mellanox Technologies Ltd. | Credit based low-latency arbitration with data transfer |
US9699118B2 (en) * | 2014-04-25 | 2017-07-04 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System for flexible dynamic reassignment of throughput |
-
2015
- 2015-03-30 US US14/673,807 patent/US10003551B2/en active Active
-
2016
- 2016-03-24 DE DE102016003679.6A patent/DE102016003679A1/de active Pending
- 2016-03-25 KR KR1020160036000A patent/KR102524566B1/ko active IP Right Grant
- 2016-03-28 TW TW105109655A patent/TW201642140A/zh unknown
- 2016-03-29 FR FR1652675A patent/FR3034542A1/fr not_active Withdrawn
- 2016-03-30 CN CN201610193288.8A patent/CN106027426B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20160294729A1 (en) | 2016-10-06 |
CN106027426B (zh) | 2020-07-07 |
KR20160117232A (ko) | 2016-10-10 |
US10003551B2 (en) | 2018-06-19 |
DE102016003679A1 (de) | 2016-10-06 |
CN106027426A (zh) | 2016-10-12 |
KR102524566B1 (ko) | 2023-04-21 |
FR3034542A1 (zh) | 2016-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US8583851B2 (en) | Convenient, flexible, and efficient management of memory space and bandwidth | |
US10303618B2 (en) | Power savings via dynamic page type selection | |
US9264369B2 (en) | Technique for managing traffic at a router | |
TW201642140A (zh) | 用於防止欠載之封包記憶體系統、方法及裝置 | |
WO2015165398A1 (zh) | 一种数据处理装置和终端 | |
US20070086428A1 (en) | Network packet storage method and network packet transmitting apparatus using the same | |
US9137780B1 (en) | Synchronizing multicast data distribution on a computing device | |
US9063841B1 (en) | External memory management in a network device | |
US10061513B2 (en) | Packet processing system, method and device utilizing memory sharing | |
JP7241194B2 (ja) | メモリ管理方法及び装置 | |
US10715437B2 (en) | Deadline driven packet prioritization for IP networks | |
US20090240793A1 (en) | Memory Buffer Management Method and System Having Multiple Receive Ring Buffers | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
JP2010067091A (ja) | 共有メモリシステム | |
JP5729659B2 (ja) | メディアストリーミング方法およびメディアコントローラ | |
US8914550B2 (en) | System and method for transferring data between components of a data processor | |
US9612950B2 (en) | Control path subsystem, method and device utilizing memory sharing | |
US20160291895A1 (en) | Packet processing system, method and device utilizing memory sharing | |
JP5742424B2 (ja) | 通信装置及び方法、並びに制御装置 | |
US20230153239A1 (en) | Method and apparatus for allocating memory addresses in resource-centric networks | |
WO2016014044A1 (en) | Node-based compute device with protocol-based priority | |
US20140068220A1 (en) | Hardware based memory allocation system with directly connected memory | |
US8233478B2 (en) | Method and an apparatus for data storage and communications | |
KR101814411B1 (ko) | 네트워크 어드레스화가 가능한 디바이스 |