TWI483590B - 處理封包之方法、系統及電腦程式產品 - Google Patents

處理封包之方法、系統及電腦程式產品 Download PDF

Info

Publication number
TWI483590B
TWI483590B TW101148755A TW101148755A TWI483590B TW I483590 B TWI483590 B TW I483590B TW 101148755 A TW101148755 A TW 101148755A TW 101148755 A TW101148755 A TW 101148755A TW I483590 B TWI483590 B TW I483590B
Authority
TW
Taiwan
Prior art keywords
processing
processor
network
rate
packet
Prior art date
Application number
TW101148755A
Other languages
English (en)
Other versions
TW201347471A (zh
Inventor
Ren Wang
Sanjay Rungta
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201347471A publication Critical patent/TW201347471A/zh
Application granted granted Critical
Publication of TWI483590B publication Critical patent/TWI483590B/zh

Links

Classifications

    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs

Landscapes

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

Description

處理封包之方法、系統及電腦程式產品
本發明關於處理封包之方法、系統及電腦程式產品。
由於網路技術的改善已有助於提高傳輸速度,電腦已逐漸地用於處理從網路所擷取的資訊而非僅經由應用程式處理資訊。這導致越來越多中央處理單元的作業能力用於資訊封包的網路處理,這有損此作業能力用於其他操作。除了執行在標頭及註腳的操作以及提取囊封的資料外,此類網路處理也可包括建立一連接至一網路,使搜尋資訊可被擷取。
為緩解這種情況,已發展出卸載引擎以將網路處理從中央處理單元轉移到網路介面控制器。除了使中央處理單元免除其他操作,卸載亦降低了通過局部輸入/輸出互連的流量,像是例如在週邊組件互連高速標準下操作者。用以根據網際網路協定套組操作之卸載引擎係稱作傳輸控制協定(TCP)卸載引擎。
TCP卸載引擎通常分為兩類。部份TCP卸載引擎將資料路徑從中央處理單元轉移至網路介面控制器,且使中央處理單元免於處理資料傳輸及接收。然而,中央處理單元仍執行建立連接至網路的操作。從中央處理單元至網路介面控制器的卸載係發生在網路連接已建立之後。Microsoft公司所發展的TCP Chimney Offload技術為部份TCP卸載 引擎的一範例。相反地,對完整TCP卸載引擎來說,封包處理及網路連接之建立兩者的執行皆轉移至網路介面控制器。
不論TCP卸載引擎為部份或完全的,目前實行上考量的唯一標準為網路介面控制器的負載。操作上,只要網路介面控制器的負載小於滿載,目前TCP卸載引擎係自動地將網路處理從中央處理單元轉移到網路介面控制器。
現在將參考圖式描述具體實施例,其中類似的元件符號係指相同或功能類似的元件。雖然描述了特定的組態及安排,但應理解到這僅作為說明之用。熟此相關技藝者將了解到可使用其他組態及安排而不會偏離描述內容的精神及範疇。熟此相關技藝者將清楚這亦可用於本文所述之外的各種其他系統及應用中。
本文所描述為用以處理封包之方法、系統、及電腦程式產品。用以處理封包之系統可包括(針對網路介面控制器及中央處理單元之每一者)處理時間之量測、處理在封包中之資訊單元所消耗之能量的量測、及負載的量測。使用者可提供信號給系統以採用較佳方式實行網路處理。系統的一部份可接收量測、決定、及信號的其中至少一者,且可使網路介面控制器及中央處理單元之其中一者執行封包的網路處理。網路處理可包括建立對網路的連接。雖然本文所述之具體實施例係以處理單一封包來解釋,但熟此 相關技藝者將了解到這些具體實施例也可在一封包流上操作,例如預計處理為一集合的一封包序列。因此,本文所述之具體實施例係以應用於單一封包的相同方式應用於封包流。
使用者可提供一信號給系統,以降低整體系統處理時間的方式來執行封包的網路處理。舉例來說,網路處理的效能可分佈於網路介面控制器與中央處理單元之間。
或者,使用者可提供一信號給系統,以降低整體系統在處理封包所消耗之能量的方式來執行網路處理。舉例來說,考慮網路介面控制器與中央處理單元之間的選擇,可選擇兩者中較為節能者來執行網路處理,直到所選處理器的負載實質等於滿載。
或者,使用者可提供一信號給系統,以降低整體系統處理封包所消耗之能量的方式來執行網路處理,直到達到理想最大處理時間。舉例來說,最初可選擇網路介面控制器與中央處理單元中較為節能者來執行網路處理。當新連接開始時,若處理時間小於理想最大處理時間,則所選處理器可針對新連接執行網路處理。
此外,系統可用以在正在進行之連接的過程中動態地在網路介面控制器與中央處理單元之間轉換網路處理。舉例來說,若某些封包的網路處理已由網路介面控制器完成且網路介面控制器的負載小於滿載,則由中央處理單元所執行之針對其他封包之正在進行中的網路處理可轉換至網路介面控制器。這可完成以最佳化整體系統的效能、整體 系統的能源效率、或其他偏好。
本文所述之具體實施例係識別出TCP卸載引擎之目前實施中的不足,其係由於缺乏對整體系統之效能的考量。此外,TCP卸載引擎之目前實施並未考量整體效能的能源效率。目前的TCP卸載引擎並未設計以在網路介面控制器及中央處理單元之間轉換網路處理以平衡處理器之間的連接,用以最佳化整體系統的效能或整體系統的能源效率。此外,目前TCP卸載引擎並未提供機制給整體系統的使用者以表達對網路處理的偏好,以降低系統處理時間的方式執行或以降低系統所消耗之能量的方式執行來處理封包。
這些不足引起不希望出現的效果。舉例來說,重度負載的網路介面控制器可能花費長時間處理封包,其接著可能降低整體系統的效能。此外,缺乏對網路介面控制器及中央處理單元之能源效率差異的考量可能導致網路處理由無效率的網路介面控制器而非由有效率的中央處理單元所執行,其接著可能加重整體系統之冷卻系統的負擔且可能限制整體系統對其電池的給定循環所可執行的操作數量。
圖1為根據具體實施例之用以處理封包之範例方法的程序流程圖。圖1中之方法100可使用操作硬體、軟體、韌體、或其某些結合之電子處理系統而執行。
在方法100中,選擇性地,在102,電子處理系統可從一使用者接收一信號,而以降低由電子處理系統所消耗之能量的方式來執行封包的網路處理。
選擇性地,在104,電子處理系統可從記憶體擷取至 少一預定值。至少一預定值可為第一速率、第二速率、或兩者。第一速率可為第一處理器處理在封包中之一資訊單元所消耗之能量。第二速率可為第二處理器處理在封包中之資訊單元所消耗之能量。第一及第二速率可表示為例如每位元組焦耳。第一處理器可為一網路介面控制器或一中央處理單元。第二處理器可為網路介面控制器或中央處理單元。第二處理器不同於第一處理器。
在106中,電子處理系統可決定第一速率是否小於第二速率。
在108中,電子處理系統可決定第一處理器的負載是否小於一滿載。
在110中,若第一速率小於第二速率且第一處理器之負載小於滿載,則電子處理系統使第一處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,在112中,若第一速率小於第二速率且第一處理器之負載實質等於滿載,則電子處理系統使第二處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
圖2為根據一具體實施例之方法100之軟體或韌體具體實施例之範例的方塊圖。在圖2中,電子處理系統200可包括例如二或更多可程式化處理器202及204、記憶體206、電腦程式邏輯208、一或更多I/O埠及/或I/O裝置210、第一比較邏輯212、第二比較邏輯214、及切換邏輯216。選擇性地,電子處理系統200也可包括信號處理邏 輯218。選擇性地,電子處理系統200也可包括記憶體擷取邏輯220。
二或更多可程式化處理器202及204可組態以執行上述方法100的功能。二或更多可程式化處理器202及204可包括網路介面控制器(NIC)及中央處理單元(CPU)及/或圖形處理單元(GPU)。記憶體206可包括可儲存電腦程式邏輯208的一或更多電腦可讀媒體。舉例來說,記憶體206可實施為硬碟驅動器、可移動式媒體(例如光碟)、唯讀記憶體(ROM)或隨機存取記憶體(RAM)裝置、或其某些組合。二或更多可程式化處理器202及204以及記憶體206可使用任何熟此技藝者所習知的許多技術(例如匯流排)而彼此通訊。包含於記憶體206中的電腦程式邏輯208可由二或更多可程式化處理器202及204所讀取及執行。一或更多I/O埠及/或I/O裝置210也可連接至二或更多可程式化處理器202及204以及記憶體206。
在圖2的具體實施例中,電腦程式邏輯208可包括第一比較邏輯212,其可組態以決定第一速率是否小於第二速率。第一速率可為第一處理器處理在一封包中之一資訊單元所消耗之能量。第二速率可為第二處理器處理在封包中之資訊單元所消耗之能量。第一及第二速率可表示為例如每位元組焦耳。第一處理器可為一網路介面控制器或一中央處理單元。第二處理器可為網路介面控制器或中央處理單元。第二處理器不同於第一處理器。
電腦程式邏輯208也可包括第二比較邏輯214,其可 組態以決定第一處理器之負載是否小於一滿載或實質等於滿載。
電腦程式邏輯208也可包括切換邏輯216,其可組態使第一處理器在第一速率小於第二速率且第一處理器之負載小於滿載時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。選擇性地,切換邏輯216也可組態使第二處理器在第一速率小於第二速率且第一處理器之負載實質等於滿載時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,電腦程式邏輯208也可包括信號處理邏輯218,其可組態以從一使用者接收一信號,以降低由電子處理系統200所消耗之能量的方式執行封包的網路處理。
選擇性地,電腦程式邏輯208也可包括記憶體擷取邏輯220,其可組態以從記憶體擷取至少一預定值。至少一預定值可為第一速率、第二速率、或兩者。
圖3為根據具體實施例之用以處理封包之範例方法的程序流程圖。圖3中之方法300可使用操作硬體、軟體、韌體、或其某些結合之電子處理系統所執行。
在方法300中,選擇性地,在302,電子處理系統可從一使用者接收一信號,而以降低由電子處理系統之處理時間的方式來執行封包的網路處理。
在304,電子處理系統可決定第一處理器的處理時間。第一處理器可為一網路介面控制器或一中央處理單元。
在306,電子處理系統可決定第二處理器的處理時間。第二處理器可為一網路介面控制器或一中央處理單元。第二處理器不同於第一處理器。
在308,若第一處理器的處理時間小於第二處理器的處理時間,則電子處理系統使第一處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,在310,若第一處理器的處理時間等於或大於第二處理器的處理時間,則電子處理系統使第二處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
圖4為根據一具體實施例之方法300之軟體或韌體具體實施例之範例的方塊圖。在圖4中,電子處理系統400可包括例如二或更多可程式化處理器402及404、記憶體406、電腦程式邏輯408、一或更多I/O埠及/或I/O裝置410、第一量測邏輯412、第二量測邏輯414、及切換邏輯416。選擇性地,電子處理系統400也可包括信號處理邏輯418。
二或更多可程式化處理器402及404可組態以執行上述方法300的功能。二或更多可程式化處理器402及404可包括網路介面控制器(NIC)及中央處理單元(CPU)及/或圖形處理單元(GPU)。記憶體406可包括可儲存電腦程式邏輯408的一或更多電腦可讀媒體。舉例來說,記憶體406可實施為硬碟驅動器、可移動式媒體(例如光碟)、唯讀記憶體(ROM)或隨機存取記憶體(RAM)裝 置、或其某些組合。二或更多可程式化處理器402及404以及記憶體406可使用任何熟此技藝者所習知的許多技術(例如匯流排)而彼此通訊。包含於記憶體406中的電腦程式邏輯408可由二或更多可程式化處理器402及404所讀取及執行。一或更多I/O埠及/或I/O裝置410也可連接至二或更多可程式化處理器402及404以及記憶體406。
在圖4的具體實施例中,電腦程式邏輯408可包括第一量測邏輯412,其可組態以決定第一處理器的處理時間。第一處理器可為一網路介面控制器或一中央處理單元。
電腦程式邏輯408也可包括第二量測邏輯414,其可組態以決定第二處理器的處理時間。第二處理器可為網路介面控制器或中央處理單元。第二處理器不同於第一處理器。
電腦程式邏輯408也可包括切換邏輯416,其可組態使第一處理器在第一處理器的處理時間小於第二處理器的處理時間時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。選擇性地,切換邏輯416也可組態使第二處理器在第一處理器的處理時間等於或大於第二處理器的處理時間時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,電腦程式邏輯408也可包括信號處理邏輯418,其可組態以從一使用者接收一信號,以降低電子處理系統400之處理時間的方式執行封包的網路處理。
圖5為根據具體實施例之用以處理封包之範例方法的程序流程圖。圖5中之方法500可使用操作硬體、軟體、韌體、或其某些結合之電子處理系統所執行。
在方法500中,選擇性地,在502,電子處理系統可從一使用者接收一信號以設定理想最大處理時間。
在504,電子處理系統可決定第一速率是否小於第二速率。第一速率為第一處理器處理在一封包中之一資訊單元所消耗之能量。第二速率為第二處理器處理在封包中之資訊單元所消耗之能量。第一及第二速率可表示為例如每位元組焦耳。第一處理器可為一網路介面控制器或一中央處理單元。第二處理器可為網路介面控制器或中央處理單元。第二處理器不同於第一處理器。
在506,電子處理系統可決定第一處理器之處理時間是否小於理想最大處理時間。
在508,若第一速率小於第二速率且第一處理器之處理時間小於理想最大處理時間,則電子處理系統可使第一處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,在510,若第一速率小於第二速率且第一處理器之處理時間等於或大於理想最大處理時間,則電子處理系統可使第二處理器執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
圖6為根據一具體實施例之方法500之軟體或韌體具體實施例之範例的方塊圖。在圖6中,電子處理系統600 可包括例如二或更多可程式化處理器602及604、記憶體606、電腦程式邏輯608、一或更多I/O埠及/或I/O裝置610、第一比較邏輯612、第二比較邏輯614、及切換邏輯616。選擇性地,電子處理系統600也可包括信號處理邏輯618。
二或更多可程式化處理器602及604可組態以執行上述方法500的功能。二或更多可程式化處理器602及604可包括網路介面控制器(NIC)及中央處理單元(CPU)及/或圖形處理單元(GPU)。記憶體606可包括可儲存電腦程式邏輯608的一或更多電腦可讀媒體。舉例來說,記憶體606可實施為硬碟驅動器、可移動式媒體(例如光碟)、唯讀記憶體(ROM)或隨機存取記憶體(RAM)裝置、或其某些組合。二或更多可程式化處理器602及604以及記憶體606可使用任何熟此技藝者所習知的許多技術(例如匯流排或互連)而彼此通訊。包含於記憶體606中的電腦程式邏輯608可由二或更多可程式化處理器602及604所讀取及執行。一或更多I/O埠及/或I/O裝置610也可連接至二或更多可程式化處理器602及604以及記憶體606。
在圖6的具體實施例中,電腦程式邏輯608可包括第一比較邏輯612,其可組態以決定第一速率是否小於第二速率。第一速率可為第一處理器處理在一封包中之一資訊單元所消耗之能量。第二速率可為第二處理器處理在封包中之資訊單元所消耗之能量。第一及第二速率可表示為例 如每位元組焦耳。第一處理器可為一網路介面控制器或一中央處理單元。第二處理器可為網路介面控制器或中央處理單元。第二處理器不同於第一處理器。
電腦程式邏輯608也可包括第二比較邏輯614,其可組態以決定第一處理器之處理時間是否小於一理想最大處理時間。
電腦程式邏輯608也可包括切換邏輯616,其可組態使第一處理器在第一速率小於第二速率且第一處理器之處理時間小於理想最大處理時間時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。選擇性地,切換邏輯616也可組態使第二處理器在第一速率小於第二速率且第一處理器之處理時間等於或大於理想最大處理時間時執行封包的網路處理。選擇性地,網路處理可包括建立連接至網路。
選擇性地,電腦程式邏輯608也可包括信號處理邏輯618,其可組態以從一使用者接收一信號,以設定理想最大處理時間。
圖7、8、及9為根據具體實施例之用以處理封包的範例系統的方塊圖。在圖7中,系統700例如包括第一電子系統702、第二電子系統704、及第三電子系統706。選擇性地,系統700也可包括第四電子系統708。選擇性地,系統700也可包括第五電子系統710及第六電子系統712。
第一電子系統702可組態以決定第一量測並傳送第一 量測。第一量測為網路介面控制器714之處理時間的一量測。選擇性地,第一電子系統702可使用時間戳記技術以決定處理時間之量測。使用時間戳記技術,處理時間的量測可決定為網路介面控制器714結束處理封包的時間點與網路介面控制器714接收封包的時間點之間的差異。或者,處理時間的量測可由熟此技藝者所顯而易知的其他方式所決定。選擇性地,第一電子系統702可設置於網路插座716中,其係組態以接收封包。或者,第一電子系統702可設置於圖8所示的網路介面控制器驅動器802中。或者,第一電子系統702可設置於圖9所示的網路介面控制器714中。選擇性地,若第一電子系統702設置於網路介面控制器714中,則系統700可更包含一通訊路徑902於第一電子系統702及第三電子系統706之間,其係通過網路插座716及網路介面控制器驅動器802之其中至少一者。
第二電子系統704可組態以決定第二量測並傳送第二量測。第二量測為中央處理單元之處理時間的一量測。有關中央處理單元的資訊可經由例如核心/插座718而接收。選擇性地,第二電子系統704可使用時間戳記技術以決定處理時間之量測。使用時間戳記技術,處理時間的量測可決定為中央處理單元結束處理封包的時間點與中央處理單元接收封包的時間點之間的差異。或者,處理時間的量測可由熟此技藝者所顯而易知的其他方式所決定。
第三電子系統706可組態以接收第一量測及第二量 測,並選擇網路介面控制器714及中央處理單元之其中一者以執行封包的網路處理。選擇性地,第三電子系統706可更組態以從一使用者接收一信號720,以由降低系統700處理封包之處理時間的方式而執行封包的網路處理。選擇性地,第三電子系統706可更組態以從一使用者接收一信號722以設定一理想最大處理時間。
第四電子系統708可組態以傳送第一速率及第二速率。第一速率為網路介面控制器714處理在封包中之一資訊單元所消耗之能量。第二速率為中央處理單元處理在封包中之資訊單元所消耗之能量。第一及第二速率可表示為例如每位元組焦耳。第三電子系統706可更組態以接收第一速率及第二速率。選擇性地,第三電子處理系統706可更組態以從一使用者接收信號724,以由降低系統700處理封包所消耗之能量的方式而執行封包的網路處理。選擇性地,第一速率、第二速率、或兩者可為習知基於網路介面控制器714、中央處理單元、或兩者的硬體規格、韌體規格、或兩者。若第一速率及第二速率之其中至少一者已預先決定,則系統700可更包含記憶體726,其係組態以儲存第一速率及第二速率之其中至少一者的至少一預定值。或者,第四電子系統708可更組態以由熟此技藝者所顯而易知的其他方式決定第一速率及第二速率之其中至少一者。
第五電子系統710可組態以決定第三量測並傳送第三量測。第三量測為網路介面控制器714之一負載的量測。 第三電子系統706更組態以接收第三量測。選擇性地,第五電子系統710可使用一計數器以決定負載之量測。計數器可保持網路介面控制器714所執行之處理數量的計數。一般來說,到網路介面控制器714的連接越多表示越高的封包速率及越長的處理時間。或者,可由熟此技藝者所顯而易知的其他方式決定負載的量測。選擇性地,第五電子系統710可設置於網路插座716中。或者,第五電子系統710可設置於圖8所示的網路介面控制器驅動器802中。或者,第五電子系統710可設置於圖9所示的網路介面控制器714中。選擇性地,若第五電子系統710設置於網路介面控制器714中,則系統700可更包含一通訊路徑904於第五電子系統710及第三電子系統706之間,其係通過網路插座716及網路介面控制器驅動器802之其中至少一者。
第六電子系統712可組態以決定第四量測並傳送第四量測。第四量測為中央處理單元之負載的量測。有關中央處理單元的資訊可經由例如核心/插座718而接收。第三電子系統706可更組態以接收第四量測。選擇性地,第六電子系統712可使用一計數器以決定負載之量測。計數器可保持中央處理單元所執行之處理數量的計數。一般來說,到中央處理單元的連接越多表示越高的封包速率及越長的處理時間。或者,可由熟此技藝者所顯而易知的其他方式決定負載的量測。
圖10為一長條圖,其比較卸載引擎的現行實施(靜 態策略)與併入本文所述具體實施例之卸載引擎(適應性策略)之用於網路處理的時間。產生圖10所示結果的模擬係假設(靜態策略)只要網路介面控制器的負載小於滿載,卸載引擎就自動地將網路處理從中央處理單元轉移至網路介面控制器。當共計建立起2,048個連接,網路介面控制器的負載係實質等於滿載。模擬顯示在這些條件下,網路介面控制器需要幾乎一毫秒來完成對封包的網路處理。這樣的長延遲可能實質上降低整體的效能。
相反地,針對併入本文所述具體實施例的卸載引擎(適應性策略),其主要考慮服務資訊的品質,只有約1,000連接轉移至網路介面控制器。這將網路處理的處理時間降低了約20微秒。此外,網路介面控制器執行關聯於約1,000連接的網路處理係使中央處理單元免於執行其他操作。針對此模擬之效能的改善(如對處理時間之降低的量測)約為50倍。當發展出新的網路介面控制器而具有處理更大數量連接之能力,此倍數可更大。因為在許多虛擬機器同時操作的高度負載資料中心伺服器中有7,000至10,000個並行的網路連接並不常見,具有併入本文所述具體實施例之卸載引擎對於管理網路處理的處理時間可為重要的。
圖11為一長條圖,其比較卸載引擎的現行實施(靜態策略)與併入本文所述具體實施例之卸載引擎(適應性策略)用於網路處理的能量效率。產生圖11所示結果的模擬係假設中央處理單元具有每百萬位元組0.1焦耳的能 量效率且網路介面控制器具有每百萬位元組0.2焦耳的能量效率(即模擬假設中央處理單元比網路介面控制器更節能)。模擬亦假設每秒100百萬位元組的產出率。針對自動將網路處理從中央處理單元轉移至網路介面控制器的卸載引擎(靜態策略),模擬決定網路處理的總功率消耗為約20瓦特。針對併入本文所述具體實施例之卸載引擎(適應性策略),網路處理主要由中央處理單元所執行,即使當網路介面控制器的負載足夠小而使網路介面控制器能夠執行某些網路處理。
模擬係假設中央處理單元除了其他操作之外可以每秒80百萬位元組的產出率來執行網路處理,而不會增加太多處理時間。為符合每秒100百萬位元組的整體產出率,網路介面控制器只需要以每秒20百萬位元組的產出率來執行網路處理。這將網路處理所消耗的功率降低至約12瓦特。此模擬之能量效率的改善為約百分之40。這可在維持服務品質的同時就完成。
方法100、300、及500以及系統200、400、600、及700可由硬體、軟體、韌體、或其某些組合所實施,其包括例如併入由Intel所開發之Springville、Broadwell、及Skylake架構之處理器。
在具體實施例中,方法100、300、及500以及系統200、400、600、及700可實施為有線通訊系統、無線通訊系統、或兩者組合之部份。在具體實施例中,方法100、300、及500以及系統200、400、600、及700可實 施於具有無線能力的行動計算裝置中。舉例來說,行動計算裝置可指具有電子處理系統及行動電源或供給(例如一或多個電池)的任何裝置。
行動計算裝置的範例可包括膝上型電腦、超級行動個人電腦、可攜式電腦、手持電腦、筆記型電腦、平板電腦、掌上型電腦、個人數位助理(PDA)、行動電話、組合行動電話/PDA、智慧型手機、呼叫器、單向呼叫器、雙向呼叫器、通信裝置、資料通訊裝置、行動網際網路裝置、MP3播放器等等。
在具體實施例中,舉例來說,行動計算裝置可實施為能夠執行電腦應用程式以及聲音通訊及/或資料通訊的智慧型手機。雖然某些具體實施例以實施為例如智慧型手機的行動計算裝置來描述,但可理解到其他具體實施例也可使用其他無線行動計算裝置而實施。具體實施例並不受限於此上下文。
方法及系統在本文中係借助描述功能、特徵、及其關係之功能性結構方塊而揭露。這些功能性結構方塊的至少某些界限在本文中係任意地定義,以便於描述。只要可適當地執行特定的功能及其關係,可定義其他的界限。
本文所述之一或多個特徵可由硬體、軟體、韌體及其組合所實施,包括離散及積體電路邏輯、特殊應用積體電路(ASIC)邏輯、及微控制器,且可實施為領域特定積體電路封裝、或積體電路封裝之組合的部份。本文所使用之軟體一詞係指電腦程式產品,其包括具有電腦程式邏輯儲 存於其中的電腦可讀媒體,以使電腦系統執行本文所揭露之一或多個特徵及/或特徵的組合。電腦可讀媒體可為暫態或非暫態。暫態電腦可讀媒體的一範例可為數位信號,其經由局部或廣域網路、或經由像是網際網路之一網路而在射頻或在電性導體上傳輸。非暫態電腦可讀媒體的一範例可為光碟、快閃記憶體、或其他資料儲存裝置。
雖然本文描述許多具體實施例,但應了解到其所呈現僅為範例而非限制。熟此技藝者將清楚可在形式及細節上做出許多改變而不會偏離本文所述之方法及系統的精神及範疇。因此,申請專利範圍的範圍及範疇不應受限於本文所揭露之任何範例具體實施例。
100‧‧‧方法
200‧‧‧電子處理系統
202‧‧‧可程式化處理器
204‧‧‧可程式化處理器
206‧‧‧記憶體
208‧‧‧電腦程式邏輯
210‧‧‧I/O埠
212‧‧‧第一比較邏輯
214‧‧‧第二比較邏輯
216‧‧‧切換邏輯
218‧‧‧信號處理邏輯
220‧‧‧記憶體擷取邏輯
300‧‧‧方法
400‧‧‧電子處理系統
402‧‧‧可程式化處理器
404‧‧‧可程式化處理器
406‧‧‧記憶體
408‧‧‧電腦程式邏輯
410‧‧‧I/O埠
412‧‧‧第一量測邏輯
414‧‧‧第二量測邏輯
416‧‧‧切換邏輯
418‧‧‧信號處理邏輯
500‧‧‧方法
600‧‧‧電子處理系統
602‧‧‧可程式化處理器
604‧‧‧可程式化處理器
606‧‧‧記憶體
608‧‧‧電腦程式邏輯
610‧‧‧I/O埠
612‧‧‧第一比較邏輯
614‧‧‧第二比較邏輯
616‧‧‧切換邏輯
618‧‧‧信號處理邏輯
700‧‧‧系統
702‧‧‧第一電子系統
704‧‧‧第二電子系統
706‧‧‧第三電子系統
708‧‧‧第四電子系統
710‧‧‧第五電子系統
712‧‧‧第六電子系統
714‧‧‧網路介面控制器
716‧‧‧網路插座
718‧‧‧核心/插座
720‧‧‧信號
722‧‧‧信號
724‧‧‧信號
726‧‧‧記憶體
802‧‧‧網路介面控制器驅動器
902‧‧‧通訊路徑
904‧‧‧通訊路徑
圖1、3、及5為根據具體實施例之用以處理封包的範例方法的程序流程圖;圖2、4、及6分別為根據具體實施例之方法100、300、及500之軟體或韌體具體實施例之範例的方塊圖;圖7、8、及9為根據具體實施例之用以處理封包的範例系統的方塊圖;圖10為比較卸載引擎的現行實施與併入本文所述具體實施例之卸載引擎用於網路處理的時間的長條圖;以及圖11為比較卸載引擎的現行實施與併入本文所述具體實施例之卸載引擎用於網路處理的能量效率的長條圖。
在圖式中,元件符號最左邊的數字係指示元件符號第 一次出現的圖式。
100‧‧‧方法

Claims (36)

  1. 一種處理封包之方法,包含:經由至少一電子處理系統決定一第一速率是否小於一第二速率,其中該第一速率係相對於一第一處理器處理在一封包中之一資訊單元所消耗之能量,該第二速率係相對於一第二處理器處理在該封包中之該資訊單元所消耗之能量,該第一處理器為一網路介面控制器及一中央處理單元之其中一者,該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;經由該至少一電子處理系統決定該第一處理器之一負載是否小於一滿載;經由該至少一電子處理系統且若該第一速率小於該第二速率及該第一處理器之該負載小於該滿載,使該第一處理器執行該封包的網路處理;以及經由該至少一電子處理系統且若該第一速率小於該第二速率及該第一處理器之該負載實質等於該滿載,使該第二處理器執行該封包的網路處理。
  2. 如申請專利範圍第1項所述之方法,其中該網路處理包括建立一連接至一網路。
  3. 如申請專利範圍第1項所述之方法,其中該第一速率及該第二速率之至少一者的至少一預定值係儲存於一記憶體中且更包含:經由該至少一電子處理系統,從該記憶體擷取該至少 一預定值。
  4. 如申請專利範圍第1項所述之方法,更包含:經由該至少一電子處理系統且從一使用者接收一信號,以降低由該電子處理系統所消耗之能量的方式執行該封包的網路處理。
  5. 一種儲存指令之非暫態機器可讀媒體,當由一電子處理系統執行時係造成該電子處理系統執行指令以:決定一第一速率是否小於一第二速率,其中該第一速率係相對於一第一處理器處理在一封包中之一資訊單元所消耗之能量,該第二速率係相對於一第二處理器處理在該封包中之該資訊單元所消耗之能量,該第一處理器為一網路介面控制器及一中央處理單元之其中一者,該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;決定該第一處理器之一負載是否小於一滿載;若該第一速率小於該第二速率及該第一處理器之該負載小於該滿載,則使該第一處理器執行該封包的網路處理;以及若該第一速率小於該第二速率及該第一處理器之該負載實質等於該滿載,則使該第二處理器執行該封包的網路處理。
  6. 如申請專利範圍第5項所述之非暫態機器可讀媒體,其中該網路處理包括建立一連接至一網路。
  7. 如申請專利範圍第5項所述之非暫態機器可讀媒 體,其中該第一速率及該第二速率之至少一者的至少一預定值係儲存於一記憶體中且更包含指令以:從該記憶體擷取該至少一預定值。
  8. 如申請專利範圍第5項所述之非暫態機器可讀媒體,更包含指令以:從一使用者接收一信號,以降低由該電子處理系統所消耗之能量的方式而執行該封包的網路處理。
  9. 一種用以處理封包的方法,包含:經由至少一電子處理系統,決定一第一處理器之處理時間,其中該第一處理器為一網路介面控制器及一中央處理單元之其中一者;經由該至少一電子處理系統,決定一第二處理器之處理時間,其中該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;經由該至少一電子處理系統且若該第一處理器的處理時間小於該第二處理器的處理時間,使該第一處理器執行該封包的網路處理;以及經由該至少一電子處理系統且若該第一處理器的處理時間為等於以及大於該第二處理器的處理時間之其中一者,使該第二處理器執行該封包的網路處理。
  10. 如申請專利範圍第9所述之方法,其中該網路處理包括建立一連接至一網路。
  11. 如申請專利範圍第9項所述之方法,更包含:經由該至少一電子處理系統且從一使用者接收一信號,以降低該電子處理系統之處理時間的方式而執行該封包的網路處理。
  12. 一種儲存指令之非暫態機器可讀媒體,當由一電子處理系統執行時係造成該電子處理系統執行指令以:決定一第一處理器之處理時間,其中該第一處理器為一網路介面控制器及一中央處理單元之其中一者;決定一第二處理器之處理時間,其中該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;若該第一處理器的處理時間小於該第二處理器的處理時間,則使該第一處理器執行該封包的網路處理;以及若該第一處理器的處理時間為等於以及大於該第二處理器的處理時間之其中一者,則使該第二處理器執行該封包的網路處理。
  13. 如申請專利範圍第12項所述之非暫態機器可讀媒體,其中該網路處理包括建立一連接至一網路。
  14. 如申請專利範圍第12項所述之非暫態機器可讀媒體,更包含指令以:從一使用者接收一信號,以由降低該電子處理系統之處理時間的方式而執行該封包的網路處理。
  15. 一種用以處理封包之方法,包含:經由至少一電子處理系統決定一第一速率是否小於一 第二速率,其中該第一速率係相對於一第一處理器處理在一封包中之一資訊單元所消耗之能量,該第二速率係相對於一第二處理器處理在該封包中之該資訊單元所消耗之能量,該第一處理器為一網路介面控制器及一中央處理單元之其中一者,該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;經由該至少一電子處理系統決定該第一處理器之處理時間是否小於一理想最大處理時間;經由該至少一電子處理系統且若該第一速率小於該第二速率及該第一處理器之處理時間小於該理想最大處理時間,使該第一處理器執行該封包的網路處理;以及經由該至少一電子處理系統且若該第一速率小於該第二速率及該第一處理器的處理時間為等於以及大於該理想最大處理時間之其中一者,使該第二處理器執行該封包的網路處理。
  16. 如申請專利範圍第15項所述之方法,其中該網路處理包括建立一連接至一網路。
  17. 如申請專利範圍第15項所述之方法,更包含:經由該至少一電子處理系統,從一使用者接收一信號以設定該理想最大處理時間。
  18. 一種儲存指令之非暫態機器可讀媒體,當由一電子處理系統執行時係造成該電子處理系統執行指令以:決定一第一速率是否小於一第二速率,其中該第一速 率係相對於一第一處理器處理在一封包中之一資訊單元所消耗之能量,該第二速率係相對於一第二處理器處理在該封包中之該資訊單元所消耗之能量,該第一處理器為一網路介面控制器及一中央處理單元之其中一者,該第二處理器為該網路介面控制器及該中央處理單元之其中一者,且該第二處理器不同於該第一處理器;決定該第一處理器之處理時間是否小於一理想最大處理時間;若該第一速率小於該第二速率及該第一處理器之處理時間小於該理想最大處理時間,則使該第一處理器執行該封包的網路處理;以及若該第一速率小於該第二速率及該第一處理器的處理時間為等於以及大於該理想最大處理時間之其中一者,則使該第二處理器執行該封包的網路處理。
  19. 如申請專利範圍第18項所述之非暫態機器可讀媒體,其中該網路處理包括建立一連接至一網路。
  20. 如申請專利範圍第18項所述之非暫態機器可讀媒體,更包含指令以:從一使用者接收一信號以設定該理想最大處理時間。
  21. 一種用以處理封包之系統,包含:一第一電子系統,組態以決定一第一量測並傳送該第一量測,其中該第一量測為一網路介面控制器之處理時間的一量測;一第二電子系統,組態以決定一第二量測並傳送該第 二量測,其中該第二量測為一中央處理單元之處理時間的一量測;以及一第三電子系統,組態以接收該第一量測及該第二量測並選擇該網路介面控制器及該中央處理單元之其中一者以執行該封包的網路處理,其中該第三電子系統更組態以從一使用者接收一信號,以由降低該系統處理該封包之處理時間的方式而執行該封包的網路處理。
  22. 如申請專利範圍第21項所述之系統,其中該第三電子系統更組態以從一使用者接收一信號以設定一理想最大處理時間。
  23. 如申請專利範圍第21項所述之系統,其中該第一電子系統及該第二電子系統之其中至少一者係使用一時間戳記技術以決定該處理時間之該量測。
  24. 如申請專利範圍第21項所述之系統,其中該第一電子系統係位於一網路插座中,該網路插座係組態以接收來自該網路介面控制器之該封包。
  25. 如申請專利範圍第21項所述之系統,其中該第一電子系統係位於一網路介面控制器驅動器中。
  26. 如申請專利範圍第21項所述之系統,其中該第一電子系統係位於該網路介面控制器中。
  27. 如申請專利範圍第26項所述之系統,更包含:一通訊路徑,位於該第一電子系統及該第三電子系統之間,其中該通訊路徑係通過組態以接收來自該網路介面 控制器之該封包的一網路插座及一網路介面控制器驅動器之其中至少一者。
  28. 如申請專利範圍第21項所述之系統,更包含:一第四電子系統,組態以傳送一第一速率及一第二速率,其中該第一速率係相對於該網路介面控制器處理在該封包中之一資訊單元所消耗之能量,該第二速率係相對於該中央處理單元處理在該封包中之該資訊單元所消耗之能量,該第三電子系統更組態以接收該第一速率及該第二速率。
  29. 如申請專利範圍第28項所述之系統,其中該第三電子系統更組態以從一使用者接收一信號,以由降低該系統用以處理該封包所消耗之能量的方式而執行該封包的網路處理。
  30. 如申請專利範圍第28項所述之系統,更包含:一記憶體,組態以儲存該第一速率及該第二速率之其中至少一者的至少一預定值。
  31. 如申請專利範圍第28項所述之系統,更包含:一第五電子系統,組態以決定一第三量測並傳送該第三量測,其中該第三量測為該網路介面控制器之一負載的一量測且該第三電子系統更組態以接收該第三量測;以及一第六電子系統,組態以決定一第四量測並傳送該第四量測,其中該第四量測為該中央處理單元之一負載的一量測且該第三電子系統更組態以接收該第四量測。
  32. 如申請專利範圍第31項所述之系統,其中該第 五電子系統及該第六電子系統之其中至少一者係使用一計數器以決定該負載之該量測。
  33. 如申請專利範圍第31項所述之系統,其中該第五電子系統係位於一網路插座中,該網路插座係組態以接收來自該網路介面控制器之該封包。
  34. 如申請專利範圍第31項所述之系統,其中該第五電子系統係位於一網路介面控制器驅動器中。
  35. 如申請專利範圍第31項所述之系統,其中該第五電子系統係位於該網路介面控制器中。
  36. 如申請專利範圍第35項所述之系統,更包含:一通訊路徑,位於該第五電子系統及該第三電子系統之間,其中該通訊路徑係通過組態以接收來自該網路介面控制器之該封包的一網路插座及一網路介面控制器驅動器之其中至少一者。
TW101148755A 2011-12-22 2012-12-20 處理封包之方法、系統及電腦程式產品 TWI483590B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/066812 WO2013095502A1 (en) 2011-12-22 2011-12-22 Methods, systems, and computer program products for processing a packet

Publications (2)

Publication Number Publication Date
TW201347471A TW201347471A (zh) 2013-11-16
TWI483590B true TWI483590B (zh) 2015-05-01

Family

ID=48669143

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101148755A TWI483590B (zh) 2011-12-22 2012-12-20 處理封包之方法、系統及電腦程式產品

Country Status (4)

Country Link
US (1) US9860175B2 (zh)
JP (1) JP5933027B2 (zh)
TW (1) TWI483590B (zh)
WO (1) WO2013095502A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860175B2 (en) 2011-12-22 2018-01-02 Intel Corporation Methods, systems, and computer program products for processing a packet
US20150052280A1 (en) * 2013-08-19 2015-02-19 Emulex Design & Manufacturing Corporation Method and system for communications-stack offload to a hardware controller
US20190129882A1 (en) * 2017-10-30 2019-05-02 NVXL Technology, Inc. Multi-connector module design for performance scalability
EP4087326B1 (en) * 2021-05-07 2023-05-03 Deutsche Telekom AG Method for taking into account energy intensity of data transmissions between a user equipment and a telecommunications network, user equipment, telecommunications network, program, and computer-readable medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394362A (zh) * 2008-11-12 2009-03-25 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法
TW200915806A (en) * 2007-06-13 2009-04-01 O2Micro Inc A network interface system and a data packet transferring method and a computer system thereof
CN101689158A (zh) * 2007-07-09 2010-03-31 惠普发展公司,有限责任合伙企业 用于多核处理器的数据分组处理方法
US7782782B1 (en) * 2002-04-12 2010-08-24 Juniper Networks, Inc. Packet spraying for load balancing across multiple packet processors
US7920470B2 (en) * 1999-08-05 2011-04-05 Intel Corporation Network adapter with TCP support

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215168A (ja) * 1990-12-13 1992-08-05 Nec Corp コンピュータシステム
US6904519B2 (en) * 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US7430220B2 (en) * 2005-07-29 2008-09-30 International Business Machines Corporation System load based dynamic segmentation for network interface cards
CN101356783B (zh) * 2006-01-12 2014-06-04 博通以色列研发公司 虚拟化网络环境中具有i/o共享的协议卸载和直接i/o的方法和系统
JP2008061223A (ja) * 2006-08-04 2008-03-13 Canon Inc 通信装置及び通信方法
US20080120426A1 (en) * 2006-11-17 2008-05-22 International Business Machines Corporation Selective acceleration of transport control protocol (tcp) connections
JP4275169B2 (ja) * 2006-11-30 2009-06-10 シャープ株式会社 Nicを備えたシステム機器および同システム機器の省電力制御方法
JP4740897B2 (ja) * 2007-05-24 2011-08-03 株式会社日立製作所 仮想ネットワーク構成方法及びネットワークシステム
US8068433B2 (en) * 2007-11-26 2011-11-29 Microsoft Corporation Low power operation of networked devices
US20100299392A1 (en) * 2009-05-19 2010-11-25 Shih-Chien Chiou Method for controlling remote devices using instant message
JP5377091B2 (ja) * 2009-06-05 2013-12-25 キヤノン株式会社 情報処理装置及びその制御方法
JP5395539B2 (ja) * 2009-06-30 2014-01-22 株式会社東芝 情報処理装置
US8284778B2 (en) * 2009-11-19 2012-10-09 At&T Intellectual Property I, L.P. Method, device, and computer program product for detecting and encoding states for accurate measurement
US9860175B2 (en) 2011-12-22 2018-01-02 Intel Corporation Methods, systems, and computer program products for processing a packet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7920470B2 (en) * 1999-08-05 2011-04-05 Intel Corporation Network adapter with TCP support
US7782782B1 (en) * 2002-04-12 2010-08-24 Juniper Networks, Inc. Packet spraying for load balancing across multiple packet processors
TW200915806A (en) * 2007-06-13 2009-04-01 O2Micro Inc A network interface system and a data packet transferring method and a computer system thereof
CN101689158A (zh) * 2007-07-09 2010-03-31 惠普发展公司,有限责任合伙企业 用于多核处理器的数据分组处理方法
CN101394362A (zh) * 2008-11-12 2009-03-25 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法

Also Published As

Publication number Publication date
TW201347471A (zh) 2013-11-16
JP5933027B2 (ja) 2016-06-08
US9860175B2 (en) 2018-01-02
US20140301199A1 (en) 2014-10-09
JP2015505210A (ja) 2015-02-16
WO2013095502A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
US10243856B2 (en) Load balancing systems, devices, and methods
CN110278157B (zh) 拥塞控制方法及网络设备
US20180006896A1 (en) Techniques to enable live migration of virtual environments
US9239607B2 (en) Storing data using a direct data path architecture to reduce energy consumption and improve performance
TWI483590B (zh) 處理封包之方法、系統及電腦程式產品
WO2016187813A1 (zh) 一种光电混合网络的数据传输方法及装置
US20210368392A1 (en) Method and apparatus for load balancing ip address selection in a network environment
CN105430702B (zh) 一种网络切换方法、装置及通信终端
WO2019129167A1 (zh) 一种处理数据报文的方法和网卡
WO2022119620A1 (en) Network device intermediary for memory access requests
US8472469B2 (en) Configurable network socket aggregation to enable segmentation offload
CN110764605B (zh) 多核处理器控制方法、装置、电子设备及存储介质
CN105743690B (zh) 用于管理网络设备的功率和性能的技术
WO2018009110A1 (en) Methods and systems for handling scalable network connections
CN105099957B (zh) 一种基于软件查表的数据包转发方法
CN104052683A (zh) 处理分组交换的网络处理器及方法、网络交换系统
EP3087496B1 (en) Transition-minimized low speed data transfer
WO2013124715A1 (en) Method and apparatus for establishing a connection with an access network based upon access network interworking information
US20150220371A1 (en) Energy aware information processing framework for computation and communication devices coupled to a cloud
CN114221899A (zh) 一种故障处理方法及装置
CN102571280B (zh) 数据传输的方法及装置
WO2024119325A1 (en) Method and apparatus to batch packet fragments prior to entrance into a processing core queue
US20210328945A1 (en) Configurable receive buffer size
WO2016144368A1 (en) Frequency of a clock signal
CN102364455A (zh) 一种级联多核cpu间vcpu均衡分担控制方法及其装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees