TWI458307B - 管理網路資訊處理的系統和方法 - Google Patents

管理網路資訊處理的系統和方法 Download PDF

Info

Publication number
TWI458307B
TWI458307B TW96111204A TW96111204A TWI458307B TW I458307 B TWI458307 B TW I458307B TW 96111204 A TW96111204 A TW 96111204A TW 96111204 A TW96111204 A TW 96111204A TW I458307 B TWI458307 B TW I458307B
Authority
TW
Taiwan
Prior art keywords
queue
gos
nic
interface card
network interface
Prior art date
Application number
TW96111204A
Other languages
English (en)
Other versions
TW200810466A (en
Inventor
Fan F Kan
Original Assignee
Broadcom 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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW200810466A publication Critical patent/TW200810466A/zh
Application granted granted Critical
Publication of TWI458307B publication Critical patent/TWI458307B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Description

管理網路資訊處理的系統和方法
本發明涉及TCP(傳輸控制協定)資料和相關的TCP資訊的處理,更具體地說,涉及一種作業系統虛擬認知網路介面卡(virtualization-aware network interface card)系統和方法。
在網路系統中,一個伺服器可同時支援多個伺服器操作或服務。例如,一個伺服器可提供對商業應用程式的訪問,並可同時用作電子郵件伺服器、資料庫伺服器和/或交換伺服器。伺服器通過使用一個作業系統(OS)支援各種伺服器操作。通過一個OS,伺服器操作使用伺服器處理資源,例如,中央處理器(CPU)、記憶體、網路介面卡(NIC)、外設音效卡和/或圖形卡。在許多情況中,伺服器資源可能不被充分地使用,因為伺服器操作的需求基於提供的服務和/或用戶的需要而變化。將伺服器的服務合併為一個操作可改善伺服器的效率。然而,合併後操作的安全性也不如分離的操作的安全性高。例如,如果操作被合併,資料庫伺服器的崩潰或故障可導致電子郵件服務、交換服務和/或應用程式服務的丟失。
另一種改善伺服器效率的方法是同時運行多個作業系統,每個作業系統支援不同的伺服器操作。該多個作業系統可稱作客戶作業系統(GOS)。這種方法在伺服器操作未被合併的情況下保持安全性級別,並同時優化伺服器的處理資源的使用。多客戶作業系統的使用又稱為OS虛擬化,因為每個GOS都認為有充分訪問伺服器的硬體資源。在這點上,GOS不知道 還有其他的GOS在同一伺服器上運行。為了實現OS虛擬化,需要有軟體層來仲裁對伺服器硬體資源的訪問。例如,所述軟體層可以是系統管理器(hypervisor)或虛擬機(VM)監視器。該系統管理器可允許多個GOS以分時(time-sharing)的方式訪問硬體資源。
NIC(網路介面卡)可一種被至少一個伺服器操作或服務頻繁使用的硬體。在這點上,所述系統管理器或VM監視器可允許創建GOS所使用的NIC的軟體表示。所述NIC的軟體表示可稱作“虛擬NIC”。然而,虛擬NIC在提供給GOS的NIC的功能或特性上受到限制。例如,虛擬NIC不能支援傳輸控制協定(TCP)卸載功能。從CPU卸載至少一部分TCP處理至NIC上的處理器可提高網路吞吐量。沒有卸載功能,伺服器的資料傳輸率在某些情況下可能受限制。另一個限制是,虛擬NIC僅可對多個GOS提供基礎層2(L2)網路功能。虛擬NIC在提供GOS和網路之間的資料通信方面也受到限制。在這點上,虛擬NIC不能支援其他高級特徵,例如遠端直接記憶體訪問(RDMA)和/或互聯網小型電腦系統介面(ISCSI)。
除了虛擬NIC可提供的特性的限制之外,在管理多個GOS和伺服器硬體資源之間的交互時,還要求系統管理器處理大量的工作。使用系統管理器層會引入更多的開銷至基礎L2網路操作,而在使用一個OS時,不會出現所述開銷。例如,在從任意GOS傳輸資料時,需要系統管理器仲裁對NIC的訪問。在NIC接收到資料時,需要系統管理器確定是哪個恰當的GOS發送該接收的資料的。此外,因為每個GOS和該系統管理器 會使用記憶體的不同部分,系統管理器還具有管理資料從記憶體的一個部分傳輸至另一部分的附加責任。
隨著在一個伺服器內支援多個GOS的需求增加,需要有新的解決方案來降低系統管理器引入的開銷,和/或通過一部分伺服器硬體資源例如網路介面卡的虛擬化來支援高級特性。
比較本發明後續將要結合附圖介紹的系統,現有技術的其他局限性和弊端對於本領域的普通技術人員來說是顯而易見的。
本發明提供一種作業系統(OS)虛擬認知網路介面卡系統和/或方法,在後續部分給出充分的展示和/或結合至少一個附圖進行了描述,並在權利要求中對技術方案進行了完整的記載。
根據本發明的一個方面,提供一種管理網路資訊處理的方法,所述方法包括:通過網路介面卡內的多個客戶作業系統(GOS)佇列中對應的至少一個佇列,與主機系統內同時運行的多個客戶作業系統中的每一個客戶作業系統傳輸資料。
優選地,所述多個客戶作業系統佇列中的每個佇列包括發送(TX)佇列、接收(RX)佇列和事件佇列中至少其一。
優選地,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的發送佇列,從所述網路介面卡傳輸資料至所述多個同時運行的客戶作業系統之一。
優選地,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的接收佇列,從所述多個同時運行的客戶作業系統之一傳輸資料至所述網路介面卡。
優選地,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的事件佇列,將通信事件的發生從所述網路介面卡指示給所述多個同時運行的客戶作業系統之一。
優選地,所述通信事件是上行鏈路事件、下行鏈路事件、資料包發送事件和資料包接收事件之一。
優選地,所述方法進一步包括:通過所述網路介面卡,在所述多個同時運行的客戶作業系統中至少兩個客戶作業系統之間傳輸資料。
優選地,所述方法進一步包括:驗證緩存在所述網路介面卡中的客戶作業系統媒體訪問控制(MAC)位址。
根據本發明的一個方面,提供一種機器可讀記憶體,其內存儲的電腦程式具有至少一個用於管理網路資訊處理的代碼段,所述至少一個代碼段由機器執行後使得所述機器執行如下步驟:通過網路介面卡內的多個客戶作業系統(GOS)佇列中對應的至少一個佇列,與主機系統內同時運行的多個客戶作業系統中的每一個客戶作業系統傳輸資料。
優選地,所述多個客戶作業系統佇列中的每個佇列包括發送(TX)佇列、接收(RX)佇列和事件佇列中至少其一。
優選地,所述機器可讀記憶體進一步包括有用於通過所述對應的客戶作業系統佇列中的發送佇列,從所述網路介面卡傳輸資料至所述多個同時運行的客戶作業系統之一的代碼。
優選地,所述機器可讀記憶體進一步包括有用於通過所述對應的客戶作業系統佇列中的接收佇列,從所述多個同時運行的客戶作業系統之一傳輸資料至所述網路介面卡的代碼。
優選地,所述機器可讀記憶體進一步包括有用於通過所述對應的客戶作業系統佇列中的事件佇列,將通信事件的發生從所述網路介面卡指示給所述多個同時運行的客戶作業系統之一的代碼。
優選地,所述通信事件是上行鏈路事件、下行鏈路事件、資料包發送事件和資料包接收事件之一。
優選地,所述機器可讀記憶體進一步包括有用於通過所述網路介面卡,在所述多個同時運行的客戶作業系統中至少兩個客戶作業系統之間傳輸資料的代碼。
優選地,所述機器可讀記憶體進一步包括有驗證緩存在所述網路介面卡內的客戶作業系統媒體訪問控制(MAC)位址的編碼。
根據本發明的一個方面,提供一種管理網路資訊處理的系統,所述系統包括網路介面卡(NIC)中的電路,允許所述網路介面卡與主機系統內同時運行的多個客戶作業系統(GOS)中的每一個客戶作業系統之間,通過所述網路介面卡內的多個客戶作業系統佇列中對應的至少一個佇列傳輸資料。
優選地,所述多個客戶作業系統佇列中的每個佇列包括發送(TX)佇列、接收(RX)佇列和事件佇列中至少其一。
優選地,所述系統進一步包括有位於所述網路介面卡內的、用於通過所述對應的客戶作業系統佇列中的發送佇列從所述網路介面卡傳輸資料至所述多個同時運行的客戶作業系統之一的電路。
優選地,所述系統進一步包括有位於所述網路介面卡內 的、用於通過所述對應的客戶作業系統佇列中的接收佇列從所述多個同時運行的客戶作業系統之一傳輸資料至所述網路介面卡的電路。
優選地,所述系統進一步包括有位於所述網路介面卡內的、用於通過所述對應的客戶作業系統佇列中的事件佇列將通信事件的發生從所述網路介面卡指示給所述多個同時運行的客戶作業系統之一的電路。
優選地,所述通信事件是上行鏈路事件、下行鏈路事件、資料包發送事件和資料包接收事件之一。
優選地,所述系統進一步包括有位於所述網路介面卡內的、用於通過所述網路介面卡在所述多個同時運行的客戶作業系統中至少兩個客戶作業系統之間傳輸資料的電路。
優選地,所述系統進一步包括有位於所述網路介面卡內的、驗證緩存在所述網路介面卡內的客戶作業系統媒體訪問控制(MAC)位址的電路。
本發明的各種優點、各個方面和創新特徵,以及其中所示例的實施例的細節,將在以下的說明書和附圖中進行詳細介紹。
本發明的各個實施例涉及一種作業系統(OS)虛擬認知網路介面卡(NIC)的方法和系統。所述系統包括NIC,為主機系統中多個同時運行的客戶作業系統(GOS)提供直接I/O功能。所述NIC包括有用於每個GOS的GOS佇列,其中每個GOS佇列包括發送(TX)佇列、接收(RX)佇列和事件佇列。所述NIC可與GOS通過對應的TX佇列和RX佇列傳輸資料。 所述NIC可通過對應的事件佇列,通知GOS有事件發生,例如下行鏈路、上行鏈路、資料包發送和資料包接收。所述NIC也可支援GOS之間的單播、廣播和/或多播通信。當有位址與主機系統中的GOS之一相對應時,所述NIC也可驗證該被緩存的地址。
圖1是本發明通信連接至支援多個客戶作業系統(GOS)的主機系統的網路介面卡的模組圖。參照圖1,展示了第一GOS 102a、第二GOS 102b、第三GOS 102c、系統管理器104、主機系統106、發送(TX)佇列108a、接收(RX)佇列108b和NIC 110。NIC 110包括NIC處理器118和NIC記憶體116。主機系統106包括主機處理器122和主機記憶體120。
主機系統106可包括恰當的邏輯、電路和/或編碼,例如,可進行資料處理和/或網路操作。在某些例子中,主機系統106還包括有其他硬體資源,例如,圖形卡和/或外設音效卡。主機系統106可通過系統管理器104支援第一GOS 102a、第二GOS 102b和第三GOS 102c的操作。主機系統106通過使用系統管理器104支援的GOS的數量不限於圖1中的實施例所示。例如,主機系統106可支援兩個或多個GOS。
系統管理器104可用作實現主機系統106中硬體資源OS虛擬化和/或通信連接至主機系統106的硬體資源虛擬化的軟體層,例如,NIC 110。系統管理器104也可實現GOS和主機系統106中的硬體資源和/或連接至主機系統106的硬體資源之間的資料傳輸。例如,系統管理器204可實現主機系統106所支援的GOS和NIC 110之間通過TX佇列108a和/或RX佇列 108b傳輸資料包。
主處理器122可包括恰當的邏輯、電路和/或編碼,可控制和/或管理與主機系統106相關的資料處理和/或網路操作。主機記憶體120包括恰當的邏輯、電路和/或編碼,可存儲主機系統106所使用的資料。主機記憶體120可被分割為多個存儲區。例如,主機系統106所支援的每個GOS在主機記憶體120中具有對應的存儲區。此外,系統管理器104在主機記憶體120中具有對應的存儲區。因此,系統管理器104可通過控制資料從對應一個GOS的記憶體120的一部分傳輸到對應另一個GOS的記憶體120的另一部分,實現GOS之間的資料傳輸。
NIC 110包括恰當的邏輯、電路和/或編碼,可實現與網路的資料傳輸。例如,NIC 110可進行基礎級2(L2)交換操作。TX佇列108a包括恰當的邏輯、電路和/或編碼,可登記(posting)資料以通過NIC 110發送。RX佇列108b包括恰當的邏輯、電路和/或編碼,可登記通過NIC 110接收到的資料以供主機系統106處理。因而,NIC 110可登記RX佇列108b中從網路接收的資料,並可獲取TX佇列108a中由主機系統106登記的資料以發送到該網路。例如,TX佇列108a和RX佇列108b可集成在NIC 110中。NIC處理器118包括恰當的邏輯、電路和/或編碼,可控制和/或管理NIC 110中的資料處理和/或網路操作。NIC記憶體116包括恰當的邏輯、電路和/或編碼,可存儲NIC 110所使用的資料。
第一GOS 102a、第二GOS 102b和第三GOS 102每個均對應一個作業系統,可運行或執行操作或服務,例如,應用程 式、電子郵件伺服器操作、資料庫伺服器操作和/或交換伺服器操作。第一GOS 102a包括虛擬NIC 112a,第二GOS 102b包括虛擬NIC 112b,第三GOS 102c包括虛擬NIC 112c。例如,虛擬NIC 112a、虛擬NIC 112b和虛擬NIC 112c對應于NIC 110資源的軟體表示。因而,NIC 110資源包括TX佇列108a和RX佇列108b。通過虛擬NIC 112a、虛擬NIC 112b和虛擬NIC 112c的NIC 110資源的虛擬化,可使得系統管理器104提供NIC 110所提供的L2交換支援給第一GOS 102a、第二GOS 102b和第三GOS 102。然而,在這個例子中,通過系統管理器104實現的NIC 110資源的虛擬化,可能不支援其他高級功能,例如,GOS中的TCP卸載、iSCSI和/或RDMA。
操作中,當圖1A中所示的GOS需要發送資料包至網路時,該資料包傳輸可至少部分地由系統管理器104控制。如果不止一個GOS需要發送資料包至網路,系統管理器104對訪問NIC 110資源進行仲裁。在這點上,作為仲裁結果,系統管理器104可使用虛擬NIC將NIC 110傳輸資源的當前可用性通知給對應的GOS。系統管理器104可依據仲裁操作的結果將資料包登入TX佇列108a內,從而協調GOS的資料包傳輸。資料包傳輸所發生的仲裁和/或協調操作將增加系統管理器104的開銷。
通過NIC 110從網路接收資料包時,系統管理器104確定與該資料包相關聯的媒體訪問控制(MAC)位址,以便將接收到的資料包傳送給恰當的GOS。在這點上,系統管理器104可從RX佇列108b接收資料包,並對該資料包解多工,以傳輸至 恰當的GOS。在為接收的資料包確定MAC位址和恰當的GOS後,系統管理器104將接收的資料包從主機記憶體120的系統管理器區內的緩存中傳輸到主機記憶體120的對應恰當GOS的存儲區內的緩存中。與接收資料包和傳輸資料包至恰當的GOS相關的操作也會增加系統管理器104的開銷。
圖2A是本發明作業系統(OS)虛擬認知NIC的一個實施例的模組圖。參照圖2A,展示了第一GOS 202a、第二GOS 202b、第三GOS 202c、系統管理器204、主機系統206、事件佇列208a、212a和214a、發送(TX)佇列208b、212b和214b、接收(RX)佇列208c、212c和214c,以及NIC 210。NIC 210包括NIC處理器218和NIC記憶體216。主機系統206包括主機處理器222和主機記憶體220。系統管理器204包括主驅動器224。
主機系統206包括恰當的邏輯、電路和/或編碼,可進行資料處理和/或網路操作。在某些例子中,主機系統206也可包括其他硬體資源,例如,圖形卡和/或外設音效卡。主機系統206通過系統管理器204支援第一GOS 202a、第二GOS 202b和第三GOS 202c的操作。第一GOS 202a、第二GOS 202b和第三GOS 202每個均對應於可運行或執行操作或服務的作業系統,例如,所述操作或服務可以是應用程式、電子郵件伺服器操作、資料庫伺服器操作和/或交換伺服器操作。主機系統206通過使用系統管理器104所支援的GOS的數量不限於圖2A中描述的實施例。例如,主機系統206可支援兩個或多個GOS。
系統管理器204可運行為軟體層,實現主機系統206內的硬體資源的虛擬化和/或通信連接至主機系統206的硬體資源的虛擬化,例如,NIC 210。系統管理器204也可實現GOS和主機系統206中硬體資源和/或連接至主機系統206的硬體資源之間的資料通信。例如,系統管理器204可通過事件佇列208a、212a和214a、TX佇列208b、212b和214b和/或RX佇列208c、212c和214c實現主機系統206支援的GOS和NIC 210之間的通信。在這點上,第一GOS 202a和NIC 210之間的通信可通過事件佇列208a、TX佇列208b和RX佇列208c發生。同樣地,第二GOS 202b和NIC 210之間的通信可通過事件佇列212a、TX佇列212b和RX佇列212c發生。第三GOS 202c和NIC 210之間的通信可通過事件佇列214a、TX佇列214b和RX佇列214c發生。每組佇列彼此之間單獨和獨立地運行。
系統管理器204包括主驅動器224,其可協調GOS和佇列之間的資料傳輸。主驅動器224可與GOS 202a中的GOS驅動器226a、GOS 202b中的GOS驅動器226b和/或GOS 202c中的GOS驅動器226c通信。每個GOS驅動器對應於一部分GOS,通過主驅動器224進行GOS所執行的操作或服務與恰當的佇列之間的資料傳輸。例如,來自第一GOS 202a中的操作或服務傳輸的資料包和/或資料包描述符可通過GOS驅動器226a傳輸至TX佇列208b。在另一個例子中,由NIC 210登入事件佇列208a中以指示網路條件或報告資料發送或資料接收的資料,將被傳輸至由GOS驅動器226a登記的緩存中。在另一個例子中,由NIC 210從網路接收的、具有對應第一GOS 202a的MAC位址的資料包,可從RX佇列208c傳輸至由GOS驅動器226a登記的緩存中。
主機處理器222包括恰當的邏輯、電路和/或編碼,可控制和/或管理與主機系統206相關的資料處理和/或網路操作。主機記憶體220包括恰當的邏輯、電路和/或編碼,可存儲主機系統206所使用的資料。主機記憶體220可被分割為多個存儲區。例如,主機系統206所支援的每個GOS在主機記憶體220中具有對應的存儲區。此外,系統管理器204在主機記憶體220中具有對應的存儲區。因而,系統管理器204可通過控制資料從對應一個GOS的記憶體220的存儲區傳輸至對應另一個GOS的記憶體220的另一存儲區,來實現GOS之間的資料傳輸。
NIC 210包括恰當的邏輯、電路和/或編碼,可實現與網路傳輸資料。NIC 210可實現基礎L2交換、TCP卸載、iSCSI和/或RDMA操作。NIC 210可稱為OS虛擬認知NIC,因為與每個GOS的通信通過獨立的佇列組完成。NIC 210可確定所接收的資料包的MAC位址,並可將接收的資料包發送給與具有恰當MAC位址的GOS相對應的RX佇列。同樣地,NIC 210可通過協調和/或伸裁TX佇列中登記的資料包被發送的順序,來實現從GOS到網路的資料包傳輸。在這點上,NIC 210可實現直接輸入/輸出(I/O)或系統管理器旁路操作。
事件佇列208a、212a和214a包括恰當的邏輯、電路和/或編碼,可通過NIC 210登入資料以表示事件的發生。例如,NIC 210可在事件佇列中登入資料以表示下行鏈路或上行鏈 路。鏈路的當前狀態,無論是上行的還是下行的,都將登記給所有事件佇列。
TX佇列208b、212b和214b包括恰當的邏輯、電路和/或編碼,可通過NIC 110從第一GOS 202a、第二GOS 202b和第三GOS 202c登記資料。RX佇列208c、212c和214c包括恰當的邏輯、電路和/或編碼,可登入通過NIC 110接收到的資料以供第一GOS 202a、第二GOS 202b和第三GOS 202c處理。TX佇列208b、212b和214b和/或RX佇列208c、212c和214c可集成在NIC 210內。
NIC處理器218包括恰當的邏輯、電路和/或編碼,可控制和/或管理NIC210中的資料處理和/或網路操作。NIC記憶體216包括恰當的邏輯、電路和/或編碼,可存儲NIC 210所使用的資料。
圖2B是本發明OS虛擬認知NIC的另一實施例的模組圖。參照圖2B,所示的主機系統206可支援N個GOS和一個NIC 210,該NIC 210可支援N組佇列。主機系統206如圖2A中描述,並可支援GOS 2021、...、GOS202N的操作,其中1 N。每個GOS可用於提供單獨的操作或服務。系統管理器204和主驅動器224可支援N個GOS和佇列組2281、...、228N之間的資料通信。主機記憶體220的一部分可與每個GOS 2021、...、GOS 202N以及系統管理器204相關聯。圖2B中展示的GOS驅動器2281、...、228N可用於在GOS2021、...、GOS 202N執行的操作或服務和對應的佇列2281、...、228N之間傳輸資料。GOS驅動器2281、...、228N和對應的佇列 2281、...、228N之間的資料傳輸可通過主驅動器224發生。在這點上,GOS驅動器和主驅動器224如圖2A中展示。
NIC 210如圖2A描述,並也可稱作OS虛擬認知NIC。NIC 210可通過佇列組2261、...、226N實現網路和N個GOS的每個之間的通信。例如,網路和GOS 2021之間的通信可通過佇列組2261發生。在另一個例子中,網路和GOS 202N之間的通信可通過佇列組226N發生。每組佇列可包括事件佇列、發送(TX)佇列和接收(RX)佇列。佇列組2261,...,226N中的事件佇列、TX佇列和RX佇列如圖2A所描述。
圖2C是本發明通過OS虛擬認知NIC發送和接收資料包的流程圖。參照圖2C,展示了流程圖230。起始步驟232後,步驟234中,當資料包準備好通過圖2A-2B中的OS虛擬認知NIC 210從GSO傳輸至網路時,流程圖230中的處理可進入步驟236。步驟236中,GOS中的GOS驅動器可通過系統管理器204中的主驅動器224發送將要登入對應TX佇列中的資料包。步驟238中,將資料包從TX佇列傳輸至NIC 210用於傳輸。步驟240中,NIC 210可傳輸該資料包至與網路連接的終端和/或設備。在這點上,NIC 210可在與發起資料包傳輸的GOS相對應的事件佇列中登記一個標識,以此報告資料包已經被傳輸至網路。步驟240後,流程圖230中的處理進入結束步驟242。
回到步驟234,當資料包將通過圖2A-2B中的OS虛擬認知NIC 210從網路接收到時,流程圖230可進入步驟244。步驟244中,NIC 210可基於為每個資料包確定的MAC位址對 從網路接收的資料包進行解多工。步驟246中,NIC 210可將該資料包登入對應的RX佇列中,該RX佇列與所確定的MAC位址對應的GOS相關聯。此外,NIC 210可在與所確定的MAC位址對應的GOS相關聯的事件佇列中登記一個標識,以此報告已經從網路中接收到資料包。步驟248中,將資料包從RX佇列傳輸至由對應的GOS中的GOS驅動器所登記的緩存中。在這點上,該傳輸可通過系統管理器204中的主驅動器224發生。步驟248後,流程圖230中的處理進入結束步驟242。
圖2D是本發明通過OS虛擬認知NIC發送和接收資料包的過程中GOS和主驅動器的操作流程圖。參照圖2D,展示了流程圖252。步驟254中,當資料包準備好通過圖2A-2B中的OS虛擬認知NIC 210從GOS傳輸至網路時,流程圖230中的處理可進入步驟256。步驟256中,GOS中的GOS驅動器發送資料包,通過系統管理器204中的主驅動器224將該資料包登入對應的TX佇列中。步驟258中,將該資料包從TX佇列傳輸至NIC 210以供傳輸。NIC 210可傳輸資料包至與網路連接的設備和/或終端。在這點上,NIC 210可在與發起資料包傳輸的GOS相對應的事件佇列中登記一個標識,以報告資料包已經傳輸至網路。步驟258後,流程圖250的處理進入結束步驟260。
回到步驟254,當對從網路接收的資料包使用一個中斷時,流程圖250的處理進入步驟264。步驟264中,NIC 210為收到的資料包確定MAC位址,且該資料包可登入對應的RX佇列中。此外,NIC 210可生成資料包到達標識並將該標識登 記在對應的事件佇列中。步驟266中,NIC 210可生成中斷信號並將其傳送至系統管理器204內的主驅動器224。步驟268中,主驅動器224通知與收到的資料包的MAC位址相對應的GOS內的GOS驅動器,資料包已經登記在對應的RX佇列中。對應該合適GOS的主機記憶體220中存儲區內的緩存被登入資料包。步驟270後,流程圖250的處理進入結束步驟260。
回到步驟262,當多信號中斷(MSI)方法用於從網路接收的資料包時,流程圖250的處理可進入步驟272。步驟272中,NIC 210確定收到的資料包的MAC位址,並且所述資料包被登入對應的RX佇列中。此外,NIC 210可產生資料包到達通知,並且可將所述通知登入對應的事件佇列中。步驟274中,在NIC 210和主機系統206之間啟動MSI。在這點上,NIC 210可產生多個中斷信號,且該多個中斷信號被傳輸至系統管理器204所使用的記憶體位置內。NIC 210可寫所述記憶體位置以表示特定的GOS接收到了資料包。步驟276中,在讀取了包含有關於多個中斷信號的資訊的記憶體位置後,主驅動器224可通知對應的GOS驅動器資料包已經到達。步驟278中,GOS驅動器登記一個緩存用於存儲RX佇列中登入的資料包。該緩存可位於與合適的GOS相對應的主機記憶體220內的一個存儲區內。步驟278後,流程圖250的處理可進入結束步驟260。
圖3是本發明支援統計值採集的OS虛擬認知NIC的模組圖。參照圖3,展示了圖2A-2B中描述的NIC 210。在這點上,NIC 210可包括有存儲或記憶體緩存,例如,記憶體302a、記 憶體302b、記憶體302c和記憶體304,其中NIC 210可存儲與網路傳輸資料包相關的統計資訊。例如,標記為記憶體302a、記憶體302b和記憶體302c的緩存可基於NIC記憶體216實現,並可存儲對應主機系統206支援的每個GOS的統計資訊。例如,記憶體302a可存儲NIC 210產生的關於GOS 202a的資料包通信的統計資訊。例如,記憶體302b可存儲NIC 210產生的關於GOS 202b的資料包通信的統計資訊。例如,GOS 202c和網路之間的通信有關的統計資訊可存儲在記憶體302c內。在本發明的這個實施例中,每個GOS的統計資訊可存儲在單獨的緩存中。在本發明的另一個實施例中,所有統計資訊可存儲在一個緩存中。
緩衝記憶體302a、302b和302c可用於存儲每個GOS的統計資訊,例如,NIC 210為每個GOS接收的正確資料包的數量、接收的資料包中位元組的數量和/或正確地傳遞至每個GOS的資料包的數量。所述統計資料可稱作“好”統計值(good statistics),並可由NIC 210用於通信操作。
緩衝記憶體304可存儲與主機系統206所支援的任意GOS相對應的關於資料包錯誤的統計資訊。例如,緩存304可用於存儲統計資訊,例如,不符合迴圈冗餘校驗(CRC)的資料包和/或長度短於乙太網通信規範的資料包。因為這些錯誤不能使NIC 210確定資料包對應的GOS,NIC 210可將這些統計值收集並存儲在單個緩衝記憶體304中。這些統計資訊可稱作“壞”統計資訊(bad statistics),並可由NIC 210用於通信操作。
圖4A是本發明支援主機系統中GOS之間通信的第二級 (L2)交換的OS虛擬認知NIC的模組圖。參照圖4A,展示了圖2A-2B中描述的NIC 210。如圖所示,NIC 210包括L2交換機(switch)400。L2交換機400包括恰當的邏輯、電路和/或編碼,可使得NIC 210支援GOS和網路之間和/或GOS之間的資料包通信。L2交換機400可支援單播、廣播和/或多播操作。單播操作指的是到一個MAC位址的資料包傳輸。廣播操作指的是到所有MAC位址的資料包傳輸。多播操作指的是到一組特定MAC位址的資料包傳輸。
例如,圖2A中的GOS 202a可發送資料包至與網路連接的至少一個設備。在這個情況中,GOS驅動器226a可傳輸資料包至對應於GOS 202a的TX佇列208b。L2交換機400可接收來自TX佇列208b的該資料包,並可確定MAC地址對應於網路上的某個或多個設備。然後NIC 210可傳輸該資料包至對應的MAC位址。
又例如,GOS 202a可發送資料包至GOS 202b和/或GOS 202c。在這個例子中,GOS驅動器226a可傳輸資料包至對應GOS 202a的TX佇列208b。L2交換機400從TX佇列208b接收資料包,並可確定MAC位址對應於GOS 202b和/或GOS 202c的地址。L2交換機400可傳輸該資料包至對應於GOS 202b和/或GOS 202c的RX佇列212c和/或RX佇列214c。GOS驅動器226b和/或GOS驅動器226c可被通知接收到資料包,並可在主機記憶體220的恰當存儲區內登記緩存。執行在GOS 202b和/或GOS 202c上的操作或服務可從該被登記的緩存中讀取接收到的資料包。
圖4A中的NIC 210還包括有地址驗證器402。位址驗證器402包括恰當的邏輯、電路和/或編碼,可驗證由GOS驅動器所登記的、用以存儲接收的資料包的緩存的位址。例如,在將RX佇列中的資料包傳輸至被登記的緩存之前,地址驗證器402可驗證被登記的緩存是位於與接收的資料包相關的GOS對應的位址或記憶體位置中。如果位址通過驗證,則將該接收的資料包從RX佇列傳輸至被登記的緩存中。如果位址未通過驗證,則GOS驅動器需要登記一個新的緩存來接收來自RX佇列的資料包。
圖4B是本發明通過OS虛擬認知NIC進行單播、多播和/或廣播的步驟流程圖。參照圖4,展示了流程圖410。開始步驟402後,在步驟404中,圖2A-2B中描述的主機系統206支援的GOS可產生資料包以供傳輸。GOS驅動器可傳輸該資料包至恰當的TX佇列。圖4A中的L2交換機400可從TX佇列接收資料包,並確定目的地MAC位址。步驟406中,基於對應資料包目的地的MAC位址,L2交換機400可確定資料包傳輸是單播、廣播還是多播。如果該資料包的傳輸是多播或廣播,流程410進入步驟408。
步驟408中,L2交換機400可傳輸資料包至網路上列為多播或廣播傳輸的一部分的恰當的MAC地址。步驟410中,L2交換機400還傳輸資料包至具有列為多播或廣播傳輸的一部分的恰當的MAC位址的每個GOS的RX佇列。列出的每個GOS的GOS驅動器可被通知已接收到資料包,並可在主機記憶體220的恰當存儲區中登記緩存。執行在列出的每個GOS 上的操作或服務可從登記的緩存中讀取接收的資料包。步驟410後,流程410進入結束步驟418。
回到步驟406,如果該資料包的傳輸是單播傳輸,流程410進入步驟412。步驟412中,L2交換機400可確定MAC位址是否對應於主機系統206支援的GOS或者對應於線纜或網路上的設備。如果將被傳輸的資料包的MAC位址對應於某個GOS,流程410進入步驟414。步驟414中,L2交換機400傳輸該資料包至與具有恰當MAC位址的GOS相對應的RX佇列。GOS驅動器可被通知資料包已接收到,並在主機系統220的恰當存儲區部分內登記一個緩存。GOS上執行的操作或服務可從被登記的緩存中讀取所接收到的資料包。步驟414後,流程410進入結束步驟418。
回到步驟412,如果將被傳輸的資料包的MAC位址對應網路上的設備,流程410進入步驟416。步驟416中,L2交換機400傳輸資料包至網路上恰當的MAC地址。步驟416後,流程410進入結束步驟418。
本申請中描述的OS虛擬認知NIC可實現OS虛擬化,降低系統管理器層在GOS和網路之間和/或GOS之間傳輸資料包的開銷要求。OS虛擬認知NIC可支援多個GOS。此外,OS虛擬認知NIC可實現高級特性的虛擬化,例如,TCP卸載功能、RDMA和/或iSCSI介面。
本發明可以通過硬體、軟體,或者軟、硬體結合來實現。本發明可以在至少一個電腦系統中以集中方式實現,或者由分佈在幾個互連的電腦系統中的不同部分以分散方式實現。任何 可以實現所述方法的電腦系統或其他設備都是可適用的。常用軟硬體的結合可以是安裝有電腦程式的通用電腦系統,通過安裝和執行所述程式控制電腦系統,使其按所述方法運行。在電腦系統中,利用處理器和存儲單元來實現所述方法。
本發明還可以通過電腦程式產品進行實施,所述套裝程式含能夠實現本發明方法的全部特徵,當其安裝到電腦系統中時,通過運行,可以實現本發明的方法。本文件中的電腦程式所指的是:可以採用任何程式語言、代碼或符號編寫的一組指令的任何運算式,該指令組使系統具有資訊處理能力,以直接實現特定功能,或在進行下述一個或兩個步驟之後實現特定功能:a)轉換成其他語言、編碼或符號;b)以不同的格式再現。
本發明是通過幾個具體實施例進行說明的,本領域技術人員應當明白,在不脫離本發明範圍的情況下,還可以對本發明進行各種變換及等同替代。另外,針對特定情形或具體情況,可以對本發明做各種修改,而不脫離本發明的範圍。因此,本發明不局限於所公開的具體實施例,而應當包括落入本發明權利要求範圍內的全部實施方式。
102a‧‧‧第一客戶作業系統(GOS)
102b‧‧‧第二客戶作業系統(GOS)
102c‧‧‧第三客戶作業系統(GOS)
104‧‧‧系統管理器
106‧‧‧主機系統
108a‧‧‧發送(TX)佇列
108b‧‧‧接收(RX)佇列
110‧‧‧網路介面卡(NIC)
118‧‧‧NIC處理器
116‧‧‧NIC記憶體
122‧‧‧主機處理器
120‧‧‧主機記憶體
112a‧‧‧虛擬NIC
112b‧‧‧虛擬NIC
112c‧‧‧虛擬NIC
202a‧‧‧第一GOS
202b‧‧‧第二GOS
202c‧‧‧第三GOS
204‧‧‧系統管理器
206‧‧‧主機系統
208a、212a、214a‧‧‧事件佇列
208b、212b、214b‧‧‧發送(TX)佇列
208c、212c、214c‧‧‧接收(RX)佇列
210‧‧‧NIC
216‧‧‧NIC記憶體
218‧‧‧NIC處理器
220‧‧‧主機記憶體
222‧‧‧主機處理器
224‧‧‧主驅動器
226a‧‧‧GOS驅動器
226b‧‧‧GOS驅動器
226c‧‧‧GOS驅動器
2281、...、228N‧‧‧GOS驅動器
302a、302b、302c‧‧‧記憶體
304‧‧‧緩衝記憶體
400‧‧‧第二級(L2)交換機(switch)
402‧‧‧地址驗證器
圖1是本發明通信連接至支援多個客戶作業系統(GOS)的主機系統的網路介面卡的模組圖;圖2A是本發明作業系統(OS)虛擬認知NIC的一個實施例的模組圖;圖2B是本發明OS虛擬認知NIC的另一實施例的模組圖;圖2C是本發明通過OS虛擬認知NIC發送和接收資料包 的流程圖;圖2D是本發明通過OS虛擬認知NIC發送和接收資料包的過程中GOS和主驅動器的操作的流程圖;圖3是本發明支援統計值採集(statistics collection)的OS虛擬認知NIC的一個實施例的模組圖;圖4A是本發明支援主機系統中GOS之間通信的第二級(L2)交換的OS虛擬認知NIC的一個實施例的模組圖;圖4B是本發明通過OS虛擬認知NIC進行單播、多播和/或廣播的步驟流程圖。
202a‧‧‧第一GOS
202b‧‧‧第二GOS
202c‧‧‧第三GOS
204‧‧‧系統管理器
206‧‧‧主機系統
208a、212a、214a‧‧‧事件佇列
208b、212b、214b‧‧‧發送(TX)佇列
208c、212c、214c‧‧‧接收(RX)佇列
210‧‧‧NIC
216‧‧‧NIC記憶體
218‧‧‧NIC處理器
220‧‧‧主機記憶體
222‧‧‧主機處理器
224‧‧‧主驅動器
226a‧‧‧GOS驅動器
226b‧‧‧GOS驅動器
226c‧‧‧GOS驅動器

Claims (7)

  1. 一種管理網路資訊處理的方法,其特徵在於,所述方法包括:通過網路介面卡內的多個客戶作業系統佇列中對應的至少一佇列,主機系統內同時運行的多個客戶作業系統中的每一個客戶作業系統分別與所述網路介面卡傳輸資料,以及所述每一客戶作業系統彼此之間藉由所述至少一佇列傳輸資料;其中,所述多個客戶作業系統佇列中的每個佇列包括發送佇列、接收佇列和事件佇列中至少其一。
  2. 如申請專利範圍第1項所述的方法,其中,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的發送佇列,從所述網路介面卡傳輸資料至所述多個同時運行的客戶作業系統之一。
  3. 如申請專利範圍第1項所述的方法,其中,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的接收佇列,從所述多個同時運行的客戶作業系統之一傳輸資料至所述網路介面卡。
  4. 如申請專利範圍第1項所述的方法,其中,所述方法進一步包括:通過所述對應的客戶作業系統佇列中的事件佇列,將通信事件的發生從所述網路介面卡指示給所述多個同時運行的客戶作業系統之一。
  5. 一種機器可讀記憶體,其特徵在於,其內存儲的電腦程式具 有至少一個用於管理網路資訊處理的代碼段,所述至少一個代碼段由機器執行後使得所述機器執行如下步驟:通過網路介面卡內的多個客戶作業系統佇列中對應的至少一佇列,主機系統內同時運行的多個客戶作業系統中的每一個客戶作業系統分別與所述網路介面卡傳輸資料,以及所述每一客戶作業系統彼此之間藉由所述至少一佇列傳輸資料;其中,所述多個客戶作業系統佇列中的每個佇列包括發送佇列、接收佇列和事件佇列中至少其一。
  6. 一種管理網路資訊處理的系統,其特徵在於,所述系統包括網路介面卡中的電路,允許所述網路介面卡與主機系統內同時運行的多個客戶作業系統中的每一個客戶作業系統之間,通過所述網路介面卡內的多個客戶作業系統佇列中對應的至少一佇列傳輸資料,以及允許所述每一客戶作業系統彼此之間藉由所述至少一佇列傳輸資料;其中,所述多個客戶作業系統佇列中的每個佇列包括發送佇列、接收佇列和事件佇列中至少其一。
  7. 如申請專利範圍第6項所述的系統,其中,所述系統進一步包括有位於所述網路介面卡內的、用於通過所述對應的客戶作業系統佇列中的發送佇列從所述網路介面卡傳輸資料至所述多個同時運行的客戶作業系統之一的電路。
TW96111204A 2006-03-31 2007-03-30 管理網路資訊處理的系統和方法 TWI458307B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US78839606P 2006-03-31 2006-03-31
US11/435,075 US8635388B2 (en) 2006-03-31 2006-05-16 Method and system for an OS virtualization-aware network interface card

Publications (2)

Publication Number Publication Date
TW200810466A TW200810466A (en) 2008-02-16
TWI458307B true TWI458307B (zh) 2014-10-21

Family

ID=38308721

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96111204A TWI458307B (zh) 2006-03-31 2007-03-30 管理網路資訊處理的系統和方法

Country Status (4)

Country Link
US (2) US8635388B2 (zh)
EP (1) EP1841162B1 (zh)
CN (1) CN101102305B (zh)
TW (1) TWI458307B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card
US7672299B2 (en) * 2006-06-30 2010-03-02 Sun Microsystems, Inc. Network interface card virtualization based on hardware resources and software rings
US7894453B2 (en) * 2006-07-20 2011-02-22 Oracle America, Inc. Multiple virtual network stack instances
US7885257B2 (en) * 2006-07-20 2011-02-08 Oracle America, Inc. Multiple virtual network stack instances using virtual network interface cards
US8005022B2 (en) * 2006-07-20 2011-08-23 Oracle America, Inc. Host operating system bypass for packets destined for a virtual machine
US8001282B2 (en) * 2007-08-14 2011-08-16 Intel Corporation Virtualization aware hard drive
US8095661B2 (en) * 2007-12-10 2012-01-10 Oracle America, Inc. Method and system for scaling applications on a blade chassis
US8370530B2 (en) * 2007-12-10 2013-02-05 Oracle America, Inc. Method and system for controlling network traffic in a blade chassis
US7984123B2 (en) * 2007-12-10 2011-07-19 Oracle America, Inc. Method and system for reconfiguring a virtual network path
US7945647B2 (en) * 2007-12-10 2011-05-17 Oracle America, Inc. Method and system for creating a virtual network path
US8086739B2 (en) * 2007-12-10 2011-12-27 Oracle America, Inc. Method and system for monitoring virtual wires
US7962587B2 (en) * 2007-12-10 2011-06-14 Oracle America, Inc. Method and system for enforcing resource constraints for virtual machines across migration
US8990799B1 (en) * 2008-01-30 2015-03-24 Emc Corporation Direct memory access through virtual switch in device driver
US7970951B2 (en) * 2008-02-29 2011-06-28 Oracle America, Inc. Method and system for media-based data transfer
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
US7944923B2 (en) * 2008-03-24 2011-05-17 Oracle America, Inc. Method and system for classifying network traffic
US8307405B2 (en) * 2008-04-28 2012-11-06 International Business Machines Corporation Methods, hardware products, and computer program products for implementing zero-trust policy in storage reports
US8336099B2 (en) * 2008-05-08 2012-12-18 International Business Machines Corporation Methods, hardware products, and computer program products for implementing introspection data comparison utilizing hypervisor guest introspection data
US7941539B2 (en) * 2008-06-30 2011-05-10 Oracle America, Inc. Method and system for creating a virtual router in a blade chassis to maintain connectivity
US8739179B2 (en) * 2008-06-30 2014-05-27 Oracle America Inc. Method and system for low-overhead data transfer
US8406230B2 (en) * 2008-06-30 2013-03-26 Oracle America, Inc. Formerly Known As Sun Microsystems, Inc. Method and system for classifying packets in a network interface card and interface for performing the same
US8327355B2 (en) * 2008-07-15 2012-12-04 International Business Machines Corporation Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit
US8667187B2 (en) * 2008-09-15 2014-03-04 Vmware, Inc. System and method for reducing communication overhead between network interface controllers and virtual machines
US8873375B2 (en) 2009-07-22 2014-10-28 Broadcom Corporation Method and system for fault tolerance and resilience for virtualized machines in a network
US8566822B2 (en) * 2009-07-22 2013-10-22 Broadcom Corporation Method and system for distributing hypervisor functionality over multiple physical devices in a network and configuring sub-hypervisor to control the virtual machines
US8086765B2 (en) * 2010-04-29 2011-12-27 Hewlett-Packard Development Company, L.P. Direct I/O device access by a virtual machine with memory managed using memory disaggregation
ES2639643T3 (es) 2010-06-23 2017-10-27 Telefonaktiebolaget Lm Ericsson (Publ) Gestión de interferencias de señales de referencia en despliegues de redes heterogéneas
US8726093B2 (en) 2010-06-30 2014-05-13 Oracle America, Inc. Method and system for maintaining direct hardware access in the event of network interface card failure
US8634415B2 (en) 2011-02-16 2014-01-21 Oracle International Corporation Method and system for routing network traffic for a blade server
US9858241B2 (en) 2013-11-05 2018-01-02 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US9237127B2 (en) * 2011-05-12 2016-01-12 Airmagnet, Inc. Method and apparatus for dynamic host operating system firewall configuration
US8949428B2 (en) 2011-06-17 2015-02-03 International Business Machines Corporation Virtual machine load balancing
US8966084B2 (en) 2011-06-17 2015-02-24 International Business Machines Corporation Virtual machine load balancing
US8843924B2 (en) 2011-06-17 2014-09-23 International Business Machines Corporation Identification of over-constrained virtual machines
US8838837B2 (en) * 2011-06-23 2014-09-16 Microsoft Corporation Failover mechanism
US9042383B2 (en) * 2011-06-30 2015-05-26 Broadcom Corporation Universal network interface controller
CN102790777B (zh) * 2012-08-07 2016-06-15 华为技术有限公司 网络接口适配器注册方法及驱动设备、服务器
US9253121B2 (en) 2012-12-31 2016-02-02 Broadcom Corporation Universal network interface controller
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
US9489327B2 (en) 2013-11-05 2016-11-08 Oracle International Corporation System and method for supporting an efficient packet processing model in a network environment
CN106055989B (zh) * 2016-05-26 2019-05-17 深圳市金立通信设备有限公司 一种数据传递方法及终端
US11054884B2 (en) * 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718392B1 (en) * 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US6804729B2 (en) * 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US20050071472A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and system for hardware enforcement of logical partitioning of a channel adapter's resources in a system area network
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414851A (en) * 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5968176A (en) * 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
US20030065856A1 (en) * 2001-10-03 2003-04-03 Mellanox Technologies Ltd. Network adapter with multiple event queues
US7346701B2 (en) 2002-08-30 2008-03-18 Broadcom Corporation System and method for TCP offload
US7299468B2 (en) * 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7356818B2 (en) * 2003-06-24 2008-04-08 International Business Machines Corporation Virtual machine communicating to external device without going through other virtual machines by using a list of IP addresses managed only by a single virtual machine monitor
US7934020B1 (en) * 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7478173B1 (en) * 2003-12-18 2009-01-13 Wmware, Inc. Method and system for sharing a network connection in a virtual computer system
US7562366B2 (en) * 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
US7865908B2 (en) * 2005-03-11 2011-01-04 Microsoft Corporation VM network traffic monitoring and filtering on the host
US7353360B1 (en) * 2005-04-05 2008-04-01 Sun Microsystems, Inc. Method for maximizing page locality
US8230153B2 (en) * 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US8635388B2 (en) 2006-03-31 2014-01-21 Broadcom Corporation Method and system for an OS virtualization-aware network interface card

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718392B1 (en) * 2000-10-24 2004-04-06 Hewlett-Packard Development Company, L.P. Queue pair partitioning in distributed computer system
US6804729B2 (en) * 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US20050071472A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Method and system for hardware enforcement of logical partitioning of a channel adapter's resources in a system area network

Also Published As

Publication number Publication date
US20140108676A1 (en) 2014-04-17
CN101102305B (zh) 2013-03-20
EP1841162B1 (en) 2016-02-24
EP1841162A2 (en) 2007-10-03
US9258171B2 (en) 2016-02-09
TW200810466A (en) 2008-02-16
EP1841162A3 (en) 2010-01-13
CN101102305A (zh) 2008-01-09
US8635388B2 (en) 2014-01-21
US20070244972A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
TWI458307B (zh) 管理網路資訊處理的系統和方法
US20220214919A1 (en) System and method for facilitating efficient load balancing in a network interface controller (nic)
JP4622835B2 (ja) 仮想計算機システム及びそのネットワーク通信方法
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
US7281030B1 (en) Method of reading a remote memory
US6760783B1 (en) Virtual interrupt mechanism
EP2406723B1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US6775719B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US8099471B2 (en) Method and system for communicating between memory regions
US20020071450A1 (en) Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7865633B2 (en) Multiple context single logic virtual host channel adapter
US20080126564A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US7181541B1 (en) Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
JP2004534311A (ja) 共有属性に基づいて圧縮キューペアから複数の仮想キューペアを作成する構成
JP2004531001A (ja) ホスト・コンピュータ・システムとイーサネット(r)・アダプタの間におけるデータ転送
JP2014509427A (ja) Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け
US20030043794A1 (en) Data stream multiplexing in data network
CN111064680B (zh) 一种通信装置及数据处理方法
CN100442256C (zh) 提供用于i/o适配器的队列对的方法、系统和存储介质
US11765037B2 (en) Method and system for facilitating high availability in a multi-fabric system
US8055818B2 (en) Low latency queue pairs for I/O adapters
US6904545B1 (en) Fault tolerant computing node having multiple host channel adapters
JP3360727B2 (ja) パケット転送システム及びそれを用いたパケット転送方法
CN117041147B (zh) 智能网卡设备、主机设备和方法及系统

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees