TWI474181B - 在多根pcie環境中區別刀鋒型目的地及訊務類型 - Google Patents
在多根pcie環境中區別刀鋒型目的地及訊務類型 Download PDFInfo
- Publication number
- TWI474181B TWI474181B TW98139783A TW98139783A TWI474181B TW I474181 B TWI474181 B TW I474181B TW 98139783 A TW98139783 A TW 98139783A TW 98139783 A TW98139783 A TW 98139783A TW I474181 B TWI474181 B TW I474181B
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual
- traffic
- data structure
- mapping data
- mapping
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Description
本發明一般係關於改良式資料處理系統以及方法,尤其是本發明係關於根據訊務類型與伺服器刀鋒型目的地兩者區別通過多根PCI Express環境內根複合體的訊務類型之系統及方法。該區別將避免一個訊務等級阻擋其他訊務等級流通過多根系統。
大多數現代計算裝置都會使用到輸入/輸出(input/output,I/O)配接器以及匯流排,這些都運用到1990年代Intel所制定的周邊組件互連標準(Peripheral Component Interconnect standard)的某些版本。周邊組件互連(Peripheral Component Interconnect,PCI)標準指定讓周邊裝置附加至電腦主機板的電腦匯流排。PCI Express或PCIe屬於PCI電腦匯流排的一種實施,其使用現有的PCI程式設計概念,但是使用完全不同並且更快速的序列實體層通訊協定的電腦匯流排。該實體層並非由可在許多裝置之間共享的雙向匯流排,而是確實連接至兩裝置的單一單向連結所構成。
在一個說明的環境內,在多根資料處理系統內提供一種區別不同訊務類型與伺服器刀鋒型目的地之方法。該方法包含以下步驟:產生一第一映射資料結構,對於該多根資料處理系統內每一單根虛擬階層,該第一映射資料結構將複數個訊務等級與複數個優先群組相關,並將該複數個訊務等級內每一訊務等級映射至複數個虛擬通道內的一對應虛擬通道。該方法另包含以下步驟:產生一第二映射資料結構,其映射該複數個虛擬通道內的每一虛擬通道至該多根資料處理系統內複數個虛擬連結內的每一對應主機刀鋒型虛擬連結。再者,該方法包含以下步驟:根據該第一映射資料結構以及第二映射資料結構,將一特定優先群組的訊務從一單根虛擬階層繞送至該複數個虛擬連結內的一特定虛擬連結。
在其他說明的具體實施例內,一電腦程式產品包含:一電腦可使用或可讀取媒體,其中提供一電腦可讀取程式。該電腦可讀取程式當在一計算裝置上執行時,會導致該計算裝置執行上述有關所說明具體實施例方法的多個操作或操作組合。
仍舊在其他說明的具體實施例內,提供一系統/設備。該系統/設備可包含一或多個處理器以及耦合至該一或多個處理器的一記憶體。該記憶體可包含指令,當在該一或多個處理器上執行時,該指令會導致該一或多個處理器執行上述有關該所說明具體實施例方法的多個操作和操作組合。
從下列本發明示範具體實施例的實施方式當中,精通此技術的人士將瞭解本發明的這些與其他特徵及優點。
周邊組件互連特殊相關群組(peripheral component interconnect special interest group,PCI-SIG)已經發展出周邊組件互連(peripheral component interconnect,PCI)和PCI Express(PCIe)規格,指定PCI和PCIe在資料處理系統內實施之方式。第1圖為說明合併根據PCIe規格的PCI Express(PCIe)結構拓撲之系統範例圖。如第1圖內所示,系統100包含一主機處理器(CPU)110以及耦合至根複合體130的記憶體120,其中該根複合體依序耦合至一或多個PCIe端點140(PCIe規格內使用術語「端點」代表PCIe啟用的I/O配接器)、PCI Express對PCI橋接器150以及一或多個互連交換器160。根複合體130代表將CPU/記憶體連接至I/O配接器的I/O階層根部。根複合體130包含一主機橋接器、沒有或多個根複合體整合端點、沒有或多個複合體事件收集器以及一或多個根連接埠。每一根連接埠都支援一個別I/O階層。I/O階層可包含一根複合體130、沒有或多個互連交換器160以及/或橋接器150(包含一交換器或PCIe結構)和一或多個端點,像是端點140、170和182-188。有關PCI和PCIe的更多資訊,請參閱可從PCI-SIG網站中取得的PCI和PCIe規格,網址為www.pcisig.com
。
除了PCI和PCIe規格以外,PCI-SIG也定義輸入/輸出虛擬化(input/output virtualization,IOV)標準,用於定義如何設計可由許多邏輯分割(logical partition,LPAR)共享的I/O配接器(I/O adapter,IOA)。在單根系統上共享IOA稱為單根IO虛擬化(Single Root IO Virtualization,SR-IOV),橫跨多根系統(例如刀鋒型系統)共享的IOA稱為多根IO虛擬化(Multi-root IO Virtualization,MR-IOV)。LPAR為將電腦處理器、記憶體和儲存裝置分成多個資源集合的分區,如此每一資源集合都可用自己的作業系統實體與應用程式獨立操作。可建立的邏輯分割數量取決於系統的處理器模型以及可用的資源,一般來說,分割用於不同目的,像是資料庫操作、主從式操作,以分開測試與生產環境等。每一分割都可與其他分割通訊,如同其他分割在分開的機器內。在支援LPAR的現代系統中,某些資源可在LPAR之間共享。如上面所提及,在PCI和PCIe規格中,一種可共享的資源為使用I/O虛擬化機制的I/O配接器。
雖然PCI-SIG提供標準來定義如何設計可由SR-IOV或MR-IOV環境內許多LPAR共享的IOA,此規格並未定義如何避免佇列前端阻擋在多根系統的個別虛擬階層內所有訊務中的不同訊務等級與不同主機刀鋒。PCIe多根I/O虛擬化(Multi-root I/O Virtualization,MR-IOV)規格包含虛擬通道至虛擬連結映射的細節,來建立通過系統的多獨立資料流與資源。不過,MR-IOV規格並不提供如何避免佇列前端阻擋不同訊務等級通過虛擬階層的虛擬連結之細節。MR-IOV規格陳述「一般來說,MR-PCIM事先並不知道VH內的軟體操作將使用哪個VC ID或如何配置。在MR-PCIM處理此確認或其中MR-PCIM可將所要配置傳遞至VH內所操作軟體之系統內,VC ID可在MR-PCIM初始化時(即是VH內所操作軟體的實體化之前)映射至VL。」如此,該規格並不提供如何避免佇列前端阻擋通過虛擬連結內之虛擬階層(virtual hierarchies,VH)的任何方法。該規格說明可幫助避免佇列前端阻擋的旁通佇列,但是最終這些旁通佇列將耗盡緩衝區資源。這導致佇列前端阻擋以及由於使用旁通佇列造成訊務佇列處理內的額外延遲。
所說明的具體實施例定義將使用一訊務等級通過虛擬階層到達虛擬通道的訊務區別成虛擬連結映射能力之機制,在此虛擬連結提供多重獨立邏輯資料流通過單實體多根(Multi-Root,MR)PCIe連結之支援,並且在MR拓
撲中扮演與PCIe基本拓撲內之虛擬通道(VC)相同的角色。虛擬通道可在PCI Express單根階層內建立多重獨立資料流。虛擬連結可在PCI Express多根階層內建立多重獨立資料流。多根系統的每一虛擬階層都可指派單一虛擬通道給虛擬連結。多訊務類型共享單一虛擬連結會導致佇列前端阻擋,例如:儲存訊務會阻擋虛擬連結上的高效能計算(high performance computing,HPC)訊務,即是與超級電腦和叢集相關的訊務。進一步,儲存訊務可來自與HPC訊務不同的虛擬階層。如此具有較長傳輸時間的訊務會阻擋需要較低延遲的訊務。阻擋虛擬連結的較慢訊務可來自不同的虛擬階層,其導致一個系統的工作阻擋目標為其他系統的訊務。說明的具體實施例定義指派優先群組給訊務等級、虛擬通道以及虛擬連結的機制,以避免像是儲存訊務這類較慢訊務阻擋對於延遲比較敏感的訊務,像是HPC應用訊務。
精通此技術的人士將瞭解,本發明可具體實施為系統、方法或電腦程式產品。因此,本發明可為完整硬體具體實施例、完整軟體具體實施例(包含韌體、常駐軟體、微代碼等)或軟體與硬體態樣的組合具體實施例之形式,在此通稱為「電路」、「模組」或「系統」。更進一步,本發明可採用具有媒體內具體實施之電腦可使用程式碼的任何實質媒體內具體實施之電腦程式產品之形式。
任何一或多個電腦可使用或電腦可讀取媒體的組合都可利用。電腦可使用或電腦可讀取媒體可為例如但不受限於電、磁、光學、電磁、紅外線或半導體系統、設備、裝置或傳播媒體。電腦可讀取媒體的更多特定範例(非窮舉清單)包含下列:具有一或多條線的電連接、可攜式電腦磁碟片、硬碟、隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、可抹除可程式唯讀記憶體(erasable programmable read-only memory(EPROM)或快閃記憶體)、光纖、可攜式光碟唯讀記憶體(compact disc read-only memory,CDROM)、光學儲存裝置、像是支援網際網路或企業內部網路的這些傳輸媒體或磁性儲存裝置。請注意,電腦可使用或電腦可讀取媒體可為上面列印程式的紙張或其他合適媒體,而該程式可透過例如紙張或其他媒體上的光學掃描以電子方式擷取,然後若有需要以合適的方式組譯、解釋、或處理,然後儲存在電腦記憶體內。在本文件的內容中,電腦可使用或電腦可讀取媒體可為可以包含、儲存、通訊、傳播或傳輸程式,來讓指令執行系統、設備或裝置使用或相連之任何媒體。在基頻或部分載波內,電腦可使用媒體可包含其內具體實施電腦可使用程式碼的傳播資料訊號。電腦可使用程式碼可使用任何適當的媒體來傳輸,該媒體包含但不受限於無線、有線、光纖纜線、RF等。
執行本發明操作的電腦程式碼可用任何一或多種程式語言的組合來撰寫,包含像是Java、Smalltalk、C++等物件導向程式語言,以及像是「C」程式語言或類似程式語言的傳統程序程式語言。程式碼可完全在使用者的電腦上、部分在使用者的電腦上、作為單機套裝軟體、部分在使用者的電腦上並且部分在遠端電腦上或完全在遠端電腦或伺服器上執行。在稍後的案例中,遠端電腦可透過任何網路,包含區域網路(local area network,LAN)或廣域網路(wide area network,WAN),連接至使用者的電腦,或與外部電腦連線(例如透過網際網路系統服務商提供的網際網路)。
底下參考根據本發明說明具體實施例的方法、設備(系統)和電腦程式產品之流程圖以及/或方塊圖,來說明具體實施例。吾人將瞭解,電腦程式指令可實施流程圖及/或方塊圖的每一方塊以及流程圖及/或方塊圖內方塊的組合。這些電腦程式指令可提供給一般用途電腦、特殊用途電腦或其他可程式資料處理設備的處理器以產生一機器,如此透過電腦或其他可程式資料處裡設備的處理器所執行之指令,建立用於實施流程圖及/或方塊圖方塊內所指定功能/步驟之構件。
這些電腦程式指令也可儲存在電腦可讀取媒體內,指引電腦或其他可程式資料處理設備以特定方式運作,如此儲存在電腦可讀取媒體內的指令產生製造物品,包含實施流程圖及/或方塊圖方塊內所指定功能/步驟之構件。
電腦程式指令也可載入電腦或其他可程式資料處理設備,導致在電腦或其他可程式設備上執行一連串操作步驟來產生電腦實施的處理,如此在電腦或其他可程式設備上執行的指令提供用於實施流程圖及/或方塊圖方塊內所指定功能/步驟之處理。
圖式內的流程圖和方塊圖說明根據本發明許多具體實施例的系統、方法和電腦程式產品可能實施之架構、功能和操作。如此,流程圖或方塊圖內每一方塊都可代表模組、區段或程式碼部分,這部分程式碼可包含一或多個可執行指令來實施特定邏輯功能。吾人也應該注意,在某些替代實施當中,方塊內提到的功能可以不依照圖式內順序來執行。例如:兩連續顯示的方塊實際上可同時執行,或可以顛倒順序執行,這取決於所牽涉到的功能。吾人也注意,使用執行特殊功能或步驟的特殊用途硬體式系統或特殊用途硬體與電腦指令的組合,實施方塊圖及/或流程圖的每一方塊以及方塊圖及/或流程圖內方塊的組合。
因為說明的具體實施例定義使用虛擬通道通過虛擬階層到達虛擬連結映射以區別訊務類型之機制,以便瞭解所說明具體實施例的機制,所以最重要是先瞭解如何利用管理程序或其他虛擬化平台實施I/O虛擬化。吾人應該瞭解,雖然說明關於周邊組件互連Express(Peripheral Component Interconnect Express,PCIe)配接器或端點的說明性具體實施例,但本發明並不受限於此。而是所說明具體實施例的機制可用支援I/O配接器內I/O虛擬化的任何I/O結構實施。再者吾人應該瞭解,雖然將用其中使用管理程序(hypervisor)的實施來描述所說明的具體實施例,但本發明並不受限於此。相較之下,在不悖離本發明精神與範疇之下可使用管理程序以外的其他種虛擬平台(用目前已知或稍後開發的軟體、硬體或軟硬體的任何組合來實施)。
第2圖為說明業界一般已知的系統虛擬化之範例圖。系統虛擬化為實體系統處理器、記憶體、I/O配接器、儲存裝置以及其他資源的區別,如此每一資源集合都可用自己的系統映像實體與應用程式獨立操作。在這種系統虛擬化內,虛擬資源由實體資源構成並且作為具有相同外部介面與功能的實體資源代理來操作,例如記憶體、磁碟機以及具有架構介面/功能的其他硬體組件。系統虛擬化通常運用建立虛擬資源的虛擬層,並且將他們映射至實體資源,讓虛擬資源之間隔離。虛擬層通常作為軟體、韌體與硬體機制中之一個或組合。
如第2圖內所示,通常在虛擬化系統內,應用程式210與屬於軟體組件的系統映像(system image,SI)220通訊,該應用程式像是一般或特殊作業系統,利用其指派特定虛擬與實體資源。系統映像220相關於虛擬系統230,該系統由執行例如虛擬化處理器、記憶體、I/O配接器、儲存裝置等的單一SI實體所需之實體或虛擬化資源所構成。
透過使用虛擬系統230,系統映像220藉由虛擬化層240存取實體系統資源250。虛擬化層240管理資源到SI的配置,並隔離指派給SI的資源以免遭其他SI存取。此配置與隔離通常根據虛擬化層240所執行的資源映射以及虛擬化層240所維護的一或多個資源映射資料結構來執行。
這種虛擬化可用於I/O操作與I/O資源的虛擬化。也就是關於I/O虛擬化(I/O virtualization,IOV),超過一個SI可使用部分或完整實施為管理程序的虛擬化層240來共享單一實體I/O單元。管理程序可為軟體、韌體等,其利用介入例如SI的一或多個組態、I/O和記憶體操作以及完成直接記憶體存取(direct memory access,DMA)和中斷SI操作,用來支援IOV。
第3圖為說明使用虛擬化層將PCI根複合體的I/O虛擬化之第一方式範例圖。如第3圖內所示,可為晶片、主機板、刀鋒等等當中一或多個處理器的主機處理器集合310可支援複數個系統映像320-330,應用程式(未顯示)可透過此來存取系統資源,像是PCIe端點370-390。系統映像透過虛擬化層340、PCIe根複合體350、一或多個PCIe交換器360以及/或其他PCIe結構元件與虛擬化資源通訊。
運用第3圖內說明的方式,可部分或全部實施為管理程序或其他種虛擬化平台的虛擬化層340都牽涉在所有I/O交易內,並且執行所有I/O虛擬化功能。例如:虛擬化層340將來自許多SI中I/O佇列的I/O要求多工至PCIe端點370-390內的單一佇列,如此虛擬化層340作為SI 320-330與實體PCIe端點370-390之間的代理層。
第4圖為說明使用本質上共享的PCI I/O配接器,以將PCI根複合體的I/O虛擬化之第二方式範例圖。如第4圖內所示,可為晶片、主機板、刀鋒等等當中一或多個處理器的主機處理器集合410可支援複數個系統映像420-430,應用程式(未顯示)可透過此來存取系統資源,像是PCIe I/O虛擬化(IOV)端點470-490。系統映像420-430透過PCIe根複合體440、一或多個PCIe交換器460以及/或其他PCIe結構元件與虛擬化資源通訊。
PCIe根複合體440包含根複合體虛擬化啟用器(root complex virtualization enabler,RCVE)442,其可包含一或多個位址轉譯和保護表資料結構、中斷表資料結構等等,幫助使用IOV啟用端點470-490的I/O操作虛擬化。PCIe根複合體440可使用位址轉譯與保護表資料結構執行例如虛擬化資源的虛擬與實際位址間之位址轉譯、根據虛擬資源對SI的映射來控制對虛擬資源的存取,以及其他虛擬化操作。這些根複合體中斷表資料結構可透過PCIe記憶體位址空間存取,並且用於例如將中斷映射至與SI相關的適當中斷處置器。
第3圖內所示的方式,第4圖的虛擬化結構內也提供虛擬化層450。虛擬化層450與可耦合至PCIe交換器460的非IOV啟用PCIe端點搭配使用。也就是,可部分或全部實施為管理程序或其他虛擬化平台的虛擬化層450針對非本質上(即是端點內部)支援I/O虛擬化(IOV)的這些PCIe端點,用和上述關於第3圖的類似方式來運用PCIe端點。
針對IOV啟用的PCIe端點470-490,虛擬化層450主要用於組態交易目的,不牽涉到記憶體位址空間操作,像是來自SI或直接記憶體存取(DMA)操作的記憶體映射輸入/輸出(memory mapped input/output,MMIO)操作從PCIe端點470-490開始。相較之下,直接執行SI 420-430與端點470-490之間的資料傳輸,虛擬化層450並不介入。SI 420-430與端點470-490之間的直接I/O操作可由RCVE 442和IOV啟用的PCIe端點470-490內建的I/O虛擬化邏輯,例如實體與虛擬功能,來進行。執行直接I/O操作逐漸增加I/O操作所執行速度的能力,但是需要PCIe端點470-490支援I/O虛擬化。
第5圖為PCIe I/O虛擬化(IOV)啟用端點的範例圖。如第5圖內所示,PCIe IOV端點500包含透過此與PCIe交換器等通訊的PCIe連接埠510,並且可執行PCIe結構。內部繞送520提供通訊通道給組態管理功能530以及複數個虛擬功能(virtual function,VF)540-560。組態管理功能530可為相對於虛擬功能540-560的實體功能(physical function,PF)。如PCI規格內所使用的術語,實體「功能」為單一組態空間所表示的邏輯集合。換言之,實體「功能」為可根據記憶體內功能的相關組態空間內所儲存之資料組態之電路邏輯,像是例如非可分離資源570內所提供者。
組態管理功能530可用來組態虛擬功能540-560。在I/O虛擬啟用端點內,虛擬功能為共享一或多個實體端點資源(例如連結)的功能,並且PCIe IOV端點500的共享資源佇池580內可提供該功能,例如與其他功能一起。管理程序未在執行時間時介入,虛擬功能可直接成為I/O的佇槽,自系統映像的記憶體操作以及來自直接記憶體存取(DMA)的來源,以及對於系統映像(SI)的中斷操作。
PCIe配接器/端點可具有許多不同種組態,其關於PCIe配接器/端點所支援的「功能」。例如:端點可支援單一實體功能(PF)、多重獨立PF或甚至多重相依PF。在支援本質I/O虛擬化的端點內,端點所支援的每一PF都可相關於一或多個虛擬功能(VF),功能本身可取決於與其他PF相關的VF。此後將用第6圖和第7圖說明實體與虛擬功能之間的範例關係。
第6圖為說明單根端點在無本質虛擬化時實體與虛擬功能之範例圖。術語「單根端點」代表相關於單根結點的單根複合體之端點,即是單主機系統。運用單根端點,端點可由相關於單根複合體的複數個系統映像(SI)所共享,但是不在相同或不同根節點上複數個根複合體之間共享。
如第6圖內所示,根節點600包含複數個系統映像610、612,其與PCIe端點670-690、I/O虛擬化中間體630(如先前所述)、PCIe根複合體640以及一或多個PCIe交換器650及/或其他PCIe結構元件。根節點600進一步包含一單根PCIe組態管理(single root PCIe configuration management,SR-PCIM)單元620。SR-PCIM單元620負責管理PCIe結構,其包含根複合體640、一或多個PCIe交換器650等以及端點670-690。SR-PCIM 620的管理責任包含決定哪個功能指派給哪個SI 610、612以及設定端點670-690的組態空間。SR-PCIM 620可根據SI能力以及來自使用者,像是系統管理員,或負載平衡軟體的輸入組態許多端點670-690的功能,以及哪個資源已指派給哪個SI 610、612。SI的能力可包含許多因素,包含有多少位址空間可配置給端點670-690、有多少中斷可用於指派給端點670-690等。
每一PCIe端點670-690可支援一或多個實體功能(PF)。一或多個PF可彼此獨立,或在某些方式內彼此相依。根據供應商定義的功能從屬,PF可與其他PF相依,其中一個PF需要其他PF的操作或其他PF所產生的結果,例如為了正確操作。在說明的範例中,PCIe端點670支援單PF並且PCIe端點680支援複數個不同類型1至M的獨立PF,即是PF0
至PFN
。類型係關於PF或VF的功能性,例如乙太網路功能以及光纖通道功能為兩種不同功能類型。端點690支援不同類型,其中二或多個PF相依的多個PF。在說明的範例中,PF0
視PF1
而定,或反之。
在第6圖顯示的範例中,系統映像(SI)610和612透過由I/O虛擬化中間體(I/O virtualization intermediary,IOVI)630讓虛擬化機制變成可用,來共享端點670-690。如先前所說明,在這種配置內,IOVI 630牽涉在SI 610、612與PCIe端點670-690之間的所有PCIe 交易內。個別PCIe端點670-690本身並不需要支援虛擬化,因為處理虛擬化的負荷都完全加諸在IOVI 630上。結果,雖然這種配置內可使用虛擬化的已知機制,不過若IOVI 630並未牽涉到每一I/O操作,則I/O操作可執行的速率相較於潛在的I/O速率來說相對較慢。
第7圖為說明單根端點起用本質I/O虛擬化時實體與虛擬功能之範例圖。第7圖內顯示的配置類似於第6圖的配置,不過某些重要差異在於PCIe端點770-790原本(即是在端點本身內)就支援I/O虛擬化(IOV)。結果,可有效消除第6圖內的I/O虛擬化中間體630,當然組態操作除外,有關IOV啟用的PCIe端點770-790。不過,若配置內也使用非IOV啟用的PCIe端點(未顯示),例如舊端點,則I/O虛擬化中間體可搭配第7圖內顯示的元件使用,來處理系統映像710與712之間這種非IOV啟用PCIe端點的共享。
如第7圖內所示,IOV啟用PCIe端點770-790可支援一或多個獨立或相依實體功能(PF),其輪流相關於一或多個獨立或相依虛擬功能(VF)。在此範疇內,SR-PCIM 720使用PF管理VF集合,也用於管理端點功能,像是實體錯誤與事件。與PF相關的組態空間定義VF的能力,包含相關於PF的VF最大數量、PF與VF與其他PF與VF的組合等等。
SI使用VF存取IOV啟用PCIe端點770-790上的資源,例如記憶體空間、佇列、中斷等等。如此,產生不同VF給要共享特定PF的每一SI 710、712。根據對應PF的組態空間內SR-PCIM 720所設定的VF數量,由端點770-790產生VF。在此方式中,PF虛擬化,如此可由複數個SI 710、712共享。
如第7圖內所示,VF和PF視其他VF和PF而定。通常,若PF為相依的PF,然後相關於PF的所有VF也將為相依。如此例如PF0
的VF可視對應的PF1
之VF而定。
如第7圖內顯示的配置,SI 710、712可透過PCI根複合體730和PCIe交換器740直接與IOV啟用的PCIe端點770-790通訊,反之亦然,而不需要牽涉到I/O虛擬中間體。這種直接通訊由端點770-790內以及SR-PCIM 720內提供的IOV支援所進行,其設定端點770-790內的PF和VF。
逐漸增加SI與端點之間的直接通訊速度,其上可執行複數個SI 710、712與共享IOV啟用的PCIe端點770-790之間的I/O操作。不過,為了進行這種效能強化,PCIe端點770-790必須利用提供SR-PCIM 720內的機制以及用於產生與管理虛擬功能(VF)的端點770-790之實體功能(PF),來支援I/O虛擬化。
上述PCIe階層受限為單根階層。換言之,PCIe端點只能由與單PCI根複合體730相關的單根節點700上之SI 710、712共享。上述機制並不支援多根複合體共享PCIe端點。如此,多根節點無法提供PCIe端點資源的共享存取。因為每一根節點需要個別端點集合,所以限制了運用這種配置的系統之擴充性。
此處所說明的具體實施例可運用多根I/O虛擬化,其中多PCI根複合體可共享存取相同的IOV啟用PCIe端點集合。結果,與每一這種PCI根複合體相關的系統映像每一都可共享相同的IOV啟用PCIe端點資源集合的存取,但是針對每一根節點上每一SI安置虛擬化保護。如此,利用提供允許增加根節點以及對應PCI根複合體的機制,其可共享相同現有IOV啟用PCIe端點集合,將擴充性最大化。
第8圖為說明根據一個說明具體實施例的多根虛擬化I/O拓撲之範例圖。如第8圖內所示,提供複數個根節點810和820,其中每一根節點具有單根PCI組態管理員(SR-PCIM)812、822、一或多個系統映像(SI)814、816、824和826以及PCI根複合體818和828。這些例如刀鋒型伺服器內刀鋒的根節點810和820可耦合至PCIe交換器結構的一或多個多根覺醒(multi-root aware,MRA)PCIe交換器840,其中該結構可包含一或多個這種MRA PCIe交換器840及/或其他PCIe結構元件。MRA交換器840與第7圖內的非MRA交換器740不同,因為MRA交換器840具有額外根節點的連接,並且內含維持這些不同根節點的位址空間分隔與分開所需的機制。
除了這些根節點810和820以外,提供第三根節點830,其包含多根PCI組態管理員(MR-PCIM)832和對應的PCI根複合器834。MR-PCIM 832負責發現並組態第8圖內所示多根(MR)拓撲內的虛擬階層,此後將有更詳細討論。如此MR-PCIM 832就多根節點的多根複合體,組態端點的實體與虛擬功能。SR-PCIM 812和822組態其相關單根複合體的實體與虛擬功能。換言之,MR-PCIM將MR拓撲看待成一個整體,而SR-PCIM只看見MR拓撲內自己擁有的虛擬階層,此後將會更詳細說明。
如第8圖內所示,IOV啟用PCIe端點850和860支援一或多個虛擬端點(VE)852、854、862和864。VE為指派給根複合體的實體與虛擬功能集合,如此例如在IOV啟用PCIe端點850和860上提供個別VE 852和862給根節點810的PCI根複合體818。類似地,在IOV啟用PCIe端點850和860上提供個別VE 854和864給根節點820的PCI根複合體828。
每一VE都指派給虛擬階層(VH),該階層具有作為VH根部的單根複合體並且VE作為階層內的終止節點。VH為完整功能的PCIe階層,其已經指派給根複合體或SR-PCIM。吾人應該注意,VE內所有實體功能(PF)和虛擬功能(VF)都已經指派給相同VH。
每一IOV啟用PCIe端點850和860都支援基本功能(base function,BF)859和869。BF 859、869為MR-PCIM 832用來管理對應端點850、860的VE之實體功能。例如:BF 859、869負責指派功能給對應端點850、860的VE。MR-PCIM 832使用BF組態空間內允許指派VH編號給端點850、860內每一PF的欄位,將功能指派給VE。在說明的具體實施例內,每一端點只有一個BF,不過本發明並不受限於此。
如第8圖內所示,每一VE 852、854、862和864都支援自己的實體與虛擬功能集合。如先前所說明,這種函數集合可包含獨立實體功能、相依實體功能以及其相關的獨立/相依虛擬功能。如第8圖內所示,VE 852支援具有其相關虛擬功能(VF)的單一實體功能(PF0
)。VE 854同樣支援具有其相關虛擬功能(VF)的單一實體功能(PF0
)。VE 862支援複數個獨立實體功能(PF0
-PFN
)以及其相關虛擬功能(VF)。不過,VE 864支援複數個獨立實體功能(PF0
-PFN
)。
若及只有若VE指派至SI已經存取的VH,VE 852、854、862或864可直接與根節點810和820的SI 814、816、824和826通訊,反之亦然。端點850和860本身必須支援單根I/O虛擬化,像是先前所說明,以及多根I/O虛擬化,如關於本說明具體實施例所說明。此需求係根據拓撲支援多根複合體但是每一個別根節點只看見其相關單根式虛擬階層之事實。
第9圖為說明根據一個說明具體實施例從根節點的根複合體觀點來看,多根虛擬化I/O拓撲的虛擬階層圖之範例圖。如第9圖內所示,雖然多根(MR)拓撲可能如第8圖內所示,不過每一個別根節點的每一根複合體只看見其MR拓撲的部分。如此例如相關於根節點810的PCI根複合體818瞭解其主機處理器集合、自己的系統映像(SI)814、816、MRA交換器840以及自己的虛擬端點(VE)852和862。在此虛擬階層內有完整PCIe功能性,不過PCI根複合體818不瞭解不屬於其虛擬階層部分的VE、根複合體、系統映像等。
第10圖為其中根據一個說明具體實施例運用IOV啟用端點或配接器的系統結構之範例圖。第10圖內所示的機制可與第4圖內說明的機制結合實施。例如:可提供可為單根(SR)或多根(MR)PCIM之第10圖內顯示的PCI管理員(PCI manager,PCIM)1003,來與第4圖內系統映像1 420相關,而提供第10圖內的用戶端分割1004來與第4圖內系統映像2 430相關。類似地,第10圖的I/O結構1011可包含第4圖內的PCIe交換器460,IOV端點1014可類似於第4圖內任一PCIe端點470-490並且端點1015和1016可為IOV啟用端點或非IOV啟用端點,像是第3圖內的端點370-390。
如第10圖內所示,系統1001包含可為任何資料處理裝置的主機系統1026,例如伺服器、用戶端計算裝置等、I/O結構1011(例如PCIe結構),其可包含一或多個通訊連結及一或多個交換器,以及一或多個I/O端點1014-1016,其在一個說明的具體實施例內可為PCIeI/O端點,I/O端點1014為I/O虛擬化(IOV)啟用端點,而其他端點1015-1016為IOV啟用或非IOV啟用端點。主機系統1026包含平台硬體1010,其為資料處理裝置的硬體、管理程序1025、邏輯分割(LPARS)1003和1004以及對應的分割韌體(partition firmware,PFW)1023和1024。雖然此處就使用管理程序1025來描述說明的具體實施例,吾人應該瞭解在不悖離先前提及本發明精神與範疇之下,可運用其他種虛擬化平台。
在一個說明的具體實施例內,管理程序1025可為在平台硬體1010上執行的程式碼,並且屬於平台韌體的一部分。類似地,分割韌體(PFW)1023-1024也可為平台韌體的一部分,但是因為考慮到其邏輯上屬於LPAR內所執行LAPR程式碼的一部分,所以顯示成相關於LPAR 1003和1004。
LPAR 1003和1004具有已配置的資源以及在LPAR內執行的作業系統映像或實體。此外,LPAR 1003和1004可執行LPAR內其他應用程式、軟體、程式碼等。例如:對於所說明具體實施例的一個LPAR,例如LPAR 1003,特別重要,執行讓LPAR 1003操作成為單根通訊結構管理員,例如SR-PCIM,或成為多根通訊結構管理員,例如MR-PCIM 1003(此後簡稱為「PCIM」),的程式碼。其他LPAR 1004可操作成為用戶端分割。雖然第10圖內只顯示一個PCIM 1003和一個用戶端分割1004,吾人應該瞭解,在不悖離所說明具體實施例的精神與範疇之下,主機系統1026內可提供超過一個PCIM 1003和用戶端分割1004。
管理程序1025已經存取至IOV端點1014的組態空間1019、1021以及I/O結構1011組態空間1017。此處所用的術語「組態空間」代表來自記憶體映射中I/O(memory mapped I/O,MMIO)位址空間之散開位址空間,為I/O配接器上的記憶體,由主機作業系統映射用於主機作業系統的可定址性,其可配置用於儲存用於系統1001的特定組件之組態資料。進一步,PCIM的作業系統1031和裝置驅動器1005在指派給PCIM 1003時存取至實體功能(PF)1012的組態空間1019,以及存取至屬於已指派給PCIM 1003中PF的虛擬功能(VF)之組態空間1021。
管理應用程式1040位於硬體管理控制台(Hardware Management Console,HMC)1009上,該控制台位於主機系統1026上或個別資料處理裝置之內(如所示),HMC 1009本身通訊通過遠端管理指令(Remote Management Command,RMC)介面1002到PCIM 1003和用戶端分割1004,並且通過相同介面1020到管理程序1025。管理應用程式1040(此後將HMC 1009的集合通稱為HMC 1009)作為指揮者來控制存取系統1001內許多組件的功能,並且提供使用者介面1042讓人檢視系統組態,並且輸入要將哪些資源指派給哪些LPAR 1003-1004之資訊。管理應用程式1040可提供許多不同功能,這些功能可由使用者引動,此後將會更詳細說明。另外,不用使用者就可自動引動這些功能來回應觸發這些功能啟動的事件或輸入。
如此後將根據所說明具體實施例來說明,某些這些功能包含映射資料結構之產生或建立,來根據優先群組從訊務等級映射至虛擬通道以及從虛擬通道映射至虛擬連結。再者,如稍後所討論,這些功能可進一步包含組態這些映射的通訊結構管理員功能,如此可適當繞送許多訊務等級和優先群組的資料至適當虛擬連結,避免佇列前端阻擋。
如上述,虛擬通道可在PCI Express單根階層內建立多重獨立資料流,而虛擬連結可在PCI Express多根階層內建立多重獨立資料流。多根系統的每一虛擬階層都可指派單一虛擬通道給虛擬連結。不過,多訊務類型共享單一虛擬連結會導致佇列前端阻擋,如此具有較長傳輸時間的訊務會阻擋需要較低延遲的訊務。說明的具體實施例定義指派優先群組給訊務等級、虛擬通道以及虛擬連結的機制,以避免較慢訊務阻擋對於延遲比較敏感的訊務。
第11圖為說明建立阻擋通過MR-IOV系統的佇列前端(head of line,HOL)之虛擬連結範例圖。MR-IOV規格可讓虛擬通道(VC)映射至虛擬連結(VL),如第11圖內所說明。例如,如第11圖內所示,計算系統1105的第一計算裝置1110,在說明範例中為刀鋒型伺服器1105內的刀鋒1110,相關於例如圖式內顯示為VH1的第一虛擬階層(VH)的根節點。第二計算裝置1120相關於第二虛擬階層(VH2)的根節點,第三計算裝置1130相關於第三虛擬階層(VH3)的根節點。不同虛擬階層可相關於不同虛擬通道(VC0-VC1)。每一虛擬連結(VL),即是VL0和VL1,可通訊資料通過與許多虛擬階層(VH)相關的這些VL。
吾人可瞭解,在未定義每一VL的優先群組之下,VH VC配對的任意放置會導致第11圖內所示的組態。也就
是,不同虛擬階層的計算裝置1110-1130可傳輸資料,即是訊務,其繞送通過虛擬連結(VL),該連結提供MR PCIe交換器與計算裝置1110-1130之間的邏輯連線。每一VL,即是VL0和VL1,可通訊資料通過與許多虛擬階層(VH)相關的這些VL。結果如方塊1150內所示,來自VH1的資料通過VC0,其可為需要更多處理器週期來處理或在處理時效性上具有比其他資料慢的依存性之較慢訊務,可繞送通過相同虛擬連結,例如VL0,而較快訊務需要相對較少數處理器週期來處理,例如通過VH3 VC1的資料訊務。也就是,例如HPC訊務可根據短延遲或回應(即是較快訊務)產生小封包,而儲存的訊務可為無法容許損耗行為的較大區塊資料(即是較慢訊務)。每一訊務等級的簽署完全取決於應用環境,例如:HPC資料可為較大區塊,而儲存訊務可為較小區塊。
較慢訊務和較快訊務可繞送過相同虛擬連結的事實會導致在虛擬連結(VL)的緩衝區內,之前的較慢訊務VH1 VC0佇列前端(HOL)阻擋較快訊務VH3 VC1。此外,一個系統或計算裝置,例如相關於第一虛擬階層VH1的刀鋒1110,本質上會阻擋其他系統或計算裝置的訊務,例如相關於第三虛擬階層VH3的刀鋒130。若發生HOL阻擋時可發出旁通佇列,不過旁通佇列資源受到限制並且會耗盡,最終導致HOL阻擋。旁通佇列也可導致實施的
系統顯著效能負擔。
第12圖為一個說明具體實施例的範例圖,其中訊務等級映射在每一主機刀鋒的虛擬連結上,以避免佇列前端阻擋通過MR-IOV系統。優先群組相關於虛擬通道可利用在自己的優先群組內放入較快訊務,並且將這些優先群組相關於虛擬連結(VL),以避免佇列前端阻擋。這避免一個優先群組內較慢訊務阻擋其他優先群組內更快訊務。此外,當具有不同效能目標時,避免一個主機系統或虛擬階層(VH)阻擋其他主機系統或虛擬階層(VH)。如此允許說明的具體實施例根據其優先並且也根據訊務要前往的系統刀鋒,來區別訊務。在說明的具體實施例內,若緩衝區資源擁擠,則此擁擠只會影響進入特定系統刀鋒的特定訊務優先。例如:若相關於VH1/VC3組合的虛擬連結(VL)變得擁擠,則只有到系統刀鋒1(VH1)的HPC訊務(VC3)變得擁擠。所提到一個重要的說明具體實施例之一個態樣為所說明具體實施例提供實施加權訊務的能力。例如:若有一個比較重要或系統內廣泛使用的訊務優先或一個特定系統刀鋒,可配置更多緩衝區資源給此訊務優先或系統刀鋒,確定進入特定刀鋒的特定訊務優先群組不會輕易造成擁擠。
運用所說明具體實施例的機制,計算裝置1210-1230內的PCI管理員1202、1204和1206,可構成對應虛擬
階層的根節點,可例如依序為刀鋒伺服器系統的系統刀鋒,使用映射表程式設計,用於根據所傳輸訊務的優先,將訊務等級映射至虛擬通道,最終映射到虛擬連結。如此不同的虛擬階層可傳輸資料,即是訊務,其繞送通過許多虛擬通道(VC0-VC3)。每一VH的VC都可相關於特定優先群組,如稍後更詳細討論。VH和VC的組合可輪流映射至特定虛擬連結(VL),例如VL1-VL12。
在說明的具體實施例內,VH和VC的每一組合都可映射至個別虛擬連結。如此相同VH和VC可映射至不同訊務等級,使得不同訊務等級的訊務可透過與相同虛擬階層相關的相同虛擬通道來傳輸/接收,但是這些訊務等級必須具有相關的相同優先群組。不過,VH和VC的每一組合都映射至個別虛擬連結(VL),使得相關於相同優先群組的訊務根據訊務所相關的虛擬階層組合或系統刀鋒,以及訊務的特定訊優先(相關於虛擬通道(VC)),傳輸通過不同虛擬連結。
如第12圖內所示,每一虛擬連結(VL)都有自己的VH和VC相關組合。因為VC對應至特定優先群組,如此每一VL都相關於來自特定VH的不同訊務優先。因為VH相關於特定主機系統或系統刀鋒、每一VL都相關於特定主機系統或系統刀鋒,並且特定訊務優先相關於該主機系統或系統刀鋒。例如:虛擬連結VL1相關於VH1
和VC0,其對應至刀鋒1210以及「管理」優先群組。虛擬連結VL2相關於VH1和VC0,其對應至刀鋒1220以及「管理」優先群組。類似地,虛擬連結VL6相關於VH3和VC1,其對應至刀鋒1230以及「SAN」優先群組。虛擬連結VL10相關於VH1和VC3,其對應至刀鋒1210以及「HPC」優先群組。其他虛擬連結VL同樣具有不同VH和VC組合,其對應至不同刀鋒1210-1230組合和優先群組。
來自許多計算裝置或系統1210-1230的訊務可根據訊務的訊務等級(TC)(用於單根I/O虛擬化)或虛擬通道(VC)(用於多根I/O虛擬化),映射及繞送至許多虛擬連結VL1至VL12。如此,根據所傳輸訊務的訊務等級,PCI管理員1202、1204和1206可將來自計算裝置1210的訊務繞送至多根PCIe交換器1240的任何虛擬連結VL1-VL12。訊務要繞送的特定虛擬連結VL1-VL12根據傳送資料或訊務以及訊務的訊務等級(TC)之刀鋒1210-1230之VH映射來決定。TC映射至刀鋒1210-1230的VH之特定VC,以及用於決定哪個VL要繞送訊務的VC和VH之組合。
如此例如運用單根I/O虛擬化,來自刀鋒1210,即是VH1,具有相關於「HPC」優先群組的訊務等級(TC)之訊務將由PCI管理員1202映射並繞送至虛擬通道VC3。在
說明的範例中,VH1和VC3的組合對應至虛擬連結VL10。類似地,來自計算裝置或刀鋒1220-1230並具有相關於相同「HPC」優先群組的訊務等級之訊務由個別PCI管理員1204和1206分別映射至虛擬連結VL11和VL12。同樣地,來自每一這些計算裝置或刀鋒1210-1230並具有映射至其他優先群組的訊務等級之訊務由PCI管理員1202、1204和1206映射並繞送至適當虛擬連結VL1-VL9。
如第12圖內所示,PCI管理員(PCIM)1202-1206包含映射模組1250-1254和映射表資料庫1260-1264。映射模組1250-1254根據虛擬階層(VH)和訊務等級(TC)將通過PCIM 1202-1206的訊務映射至虛擬通道(VC),然後將VC和VH結合映射至特定虛擬連結(VL)。映射表資料庫1260-1264儲存映射表資料,其指定如何從訊務等級和虛擬階層映射至虛擬通道並且最終至優先群組,反之亦然,從虛擬通道映射至虛擬連結,反之亦然等。如之後所討論,儲存在映射表資料庫1260-1264內的映射表資料可由硬體管理控制台(HMC),如第10圖內的HMC 1009,提供給PCI管理員1202-1206。
當決定例如如何將來自計算裝置或刀鋒1210-1230的訊務映射並繞送至虛擬連結VL4至VL7時,映射表資料庫1260-1264內的映射表用來作為PCIM 1202-1206的映
射模組1250-1254所執行的映射查找操作之基礎,反之亦然。如此例如當資料從計算裝置或刀鋒1210上執行的處理流進PCIM 1202時,PCIM 1202的映射模組1250決定與資料相關的虛擬階層(VH)和訊務等級(TC)。此決定可例如根據端點與交換器內的組態資料來進行,如第15圖和第16圖內所示。與組態資料相關的PCI Express封包具有可貼附於資料的標頭來實施,否則使用第14圖內所示的映射資訊,如稍後所述。此資訊使用映射表資料庫1260內的映射表,以決定對應於VH和TC的虛擬通道(VC)。然後使用VC和VH選擇與VH和VC組合相關的虛擬連結(VL),資料透過此連結傳輸至MR PCIe交換器1240。然後PCIM 1250將對應至計算裝置或刀鋒1210訊務的資料,透過選取的虛擬連結(VL)繞送至MR PCIe交換器1240的適當連接埠。
如此,VC定義優先群組並且該優先群組用於管理應用層上,如此管理員可適當指派訊務等級(TC)給VC以及VH/VC組合給VL。通常無法只使用VC至VL映射,因為MR-PCIM事先並不知道VH內的軟體操作將使用哪個VC ID或如何配置。在不使用管理應用程式將VC映射至優先群組並且機制根據該映射組態PCI Express端點時,如所說明具體實施例所提供,當相同VL上混合優先群組時會導致佇列前端阻擋(PCI Express標準所允
許),如上面關於第11圖的討論。
在一個說明具體實施例內,映射表可由特權使用者、自動機制等透過硬體管理控制台(HMC),如第10圖內的HMC 1009,程式設計進入映射表資料庫1260-1264。第13圖為說明硬體管理控制台(HMC)映射單階層,例如VH1 1320,單根I/O虛擬化(SR-IOV)訊務等級(TC)1330至虛擬通道(VC)1310映射,並且接著至優先群組1340的範例圖。優先群組1340跨單根與多根環境。如第13圖內所示,一個優先群組1340內所有TC 1330都指派給相同虛擬通道VC 1310。如此例如針對優先群組「HPC」,訊務等級TC7和TC3指派給相同虛擬通道VC3,針對優先群組「LAN」,訊務等級TC6和TC2指派給虛擬通道VC2,以此類推。
如此在單一虛擬階層(VH)內,相同虛擬通道(VC)對應至相同優先群組。不過,不同訊務等級(TC)可相關於相同虛擬通道(VC)。多重虛擬階層(VH)可結合成多根I/O虛擬化(MR-IOV)啟用架構,如前所述。如此在MR-IOV環境內,會有多個第13圖內所示表格的副本,或這些表格可結合在單一映射表內。不過,針對每一虛擬階層,不同TC可相關於像是第一VH內的相同VC,TC7對應至VC1並且在第二VH內,TC7對應至VC4。結果由於不同映射至不同虛擬通道,所以相同訊務等級,例如
TC7,可對應至不同虛擬階層(VH)內不同優先群組。
第14圖為說明根據一個說明具體實施例的硬體維護控制台將到虛擬連結的虛擬通道映射至每一主機系統刀鋒的優先群組之範例圖。此圖式顯示單根環境VH1,如第13圖內所示,VH2和VH3的VC如何映射至多根環境內的虛擬連結。再者,此圖式顯示HMC如何進行第12圖內所示多根環境的映射。此映射避免佇列前端阻擋指派給每一主機刀鋒的不同優先群組。基本上第14圖用於顯示若單獨管理但是有共同的VH和VC組合映射至個別VL時,每一VH,例如每一實體伺服器、刀鋒等,具有自己的TC至VC映射。然而,在此有不同的映射用於每一VH,根據特定VH和VC適當映射,如第14圖內所示,至個別VL是相當重要的,如此避免一個系統或刀鋒的佇列前端阻擋其他系統或刀鋒。
如第14圖內所示,在說明的範例中,每一VH內的VC3都相關於HPC優先群組,不過根據找尋哪個VH,該VH的HPC優先訊務相關於不同VL。如此例如在第14圖的映射資料結構內,VH1的VC3訊務相關於VL10,而VH2的VC3訊務相關於VL11。吾人應該瞭解,VC和VH的每一組合都具有個別VL,如此不同優先的訊務在每一VH的不同虛擬連結上傳輸。基本上,根據訊務的系統/刀鋒和優先特定組合,例如訊務的VC,不同優
先和不同系統或刀鋒的訊務繞送通過多根系統。這種繞送可由於映射結構和所說明具體實施例所提供機制來達成。藉由將來自不同VH的不同優先訊務放置在個別VL上,可避免不同系統上不同優先群組之間的佇列前端阻擋。
如此運用所說明具體實施例的機制,特定VH的TC映射至VC,並且VH/VC的組合映射至個別VL。如此,使用所說明具體實施例映射表的映射操作以及所說明具體實施例的機制,避免佇列前端阻擋不同優先群組和不同系統/刀鋒。因為不同優先群組和不同系統/刀鋒的所有訊務都相關於不同虛擬連結,所以避免佇列前端阻擋。結果,較低優先訊務、較高優先訊務或甚至不同系統/刀鋒的相同優先訊務都不會導致目前系統/刀鋒上訊務效能降級。
第15圖為說明個別SR-IOV系統的TC/VC映射表資料結構之範例圖。此TC/VC映射表可儲存在例如虛擬通道擴充能力結構的VC資源控制暫存器內,這說明於PCI-SIG網站內可取得的PCI Express Base Specification,1.1版第428頁內。VC資源控制配置VC資源。TC/VC映射表資料結構說明用於參考功能(虛擬或實體功能)或端點的TC至VC映射。端點可具有多個功能並且每一功能都有自己的TC/VC映射。實體功能指派
至單一VH。單一功能裝置表示該端點具有一個TC/VC映射。
每一SR-IOV系統代表一個虛擬階層VH,像是第12圖內所說明,並且在第14圖的映射表資料結構內顯示為個別輸入。在第15圖說明的範例中,TC/VC映射表資料結構已經傳播資料值以代表上面第13圖內所說明的TC/VC映射。例如在第15圖內,VC ID值「000」對應至VC0並且相關值「00010001」對應至TC的4和0,如第13圖的表內所示。啟用位元讓VC相關於VC ID來使用(有關啟用VC的進一步資訊,請參閱PCI Express Base Specification,1.1版第428頁)。第13圖和第14圖的實施造成在PCI Express端點上設定組態空間。
第16圖為說明具有來自第14圖的虛擬通道至虛擬連結映射之MR-IOV裝置功能表範例圖。使用HMC建立優先群組映射,然後傳送至MR-PCIM。MR-PCIM根據說明具體實施例組態具有來自第14圖的虛擬通道至虛擬連結映射之裝置功能表。第16圖表示所說明具體實施例的VC至VL映射儲存在PCI Express組態空間的裝置功能表內之方式,可由根據所說明具體實施例機制之HMC所產生。
在第16圖內,第一欄位表示指向32位元值的位元欄位,像是第15圖內的位元0至31。如此例如位元2:0
指向3位元值,這對應至VC0 VL映射,如第三欄位內所示。PCI SIG多根I/O虛擬化1.0規格內保留位元3 1610,但是在說明具體實施例的範圍內,此位元用來增加可定址虛擬連結的空間。也就是,使用VL提供與VH、VC配對的一對一映射,並且使用3位元指定VC0 VL映射,只有支援8 VH、VC配對。運用所說明具體實施例的機制,使用相鄰保留位元以擴充指定VC VL映射用的位元。如此例如位元3:0,即是新增位元3 1610,可用來代表VC VL映射,藉此提供可支援至少12 VH、VC配對的4位元值。再者吾人應該注意,第16圖內的所有VCx VL映射具有相鄰保留位元1620-1670,可用來增加VCx VL映射至4位元。
第二欄位為十六進位值,代表特定VC至VL映射,例如「0001」對應至VC0。位元4為啟用VC0 VL映射的啟用位元。在此提供類似位元值給VH的每一VC1 VL、VC2 VL和VC3 VL映射。啟用位元的設定指示是否運用對應的VC至VL映射。第16圖內顯示的表格資料結構可與上面提到的其他表格資料結構搭配使用,以幫助PCI管理員、交換器等等進行的映射查找操作,以決定繞送來自特定VC上特定主機系統/刀鋒(例如VH)的資料流之虛擬連結。
吾人應該瞭解,第13圖至第16圖內表示的複雜映射
只用於三個VH,且當在多根系統內運用更多多重VH時,例如高達256個VH,就會變得更複雜。在此情況下,需要額外VCx VL映射位元。
第17圖為描述根據一個說明具體實施例用於執行優先群組映射和繞送的範例操作之流程圖。如第17圖內所示,操作由特權使用者,像是系統管理員,或自動機制開始,建立訊務等級(TC)至虛擬通道(VC)映射表資料結構,其使用硬體管理控制台(HMC)將訊務等級(TC)指派至單一虛擬階層(VH)內的虛擬通道(VC),例如像是之前關於第13圖的說明(步驟1710)。HMC使用例如第10圖內的遠端管理指令介面1002,將TC至VC映射表資料結構傳遞至SR-PCIM(步驟1720)。SR-PCIM使用例如第15圖內所示的PCI Express組態位元欄,組態具有TC至VC映射的VC資源控制暫存器(步驟1730)。根據SR-PCIM如何程式設定VC,VC根據限制排程、循環法(round robin)或加權循環法來仲裁。利用判斷是否還有額外SR-IOV系統要組態(步驟1740),針對每一SR-IOV系統重複上面關於步驟1710-1730描述的操作,若有,則針對下一個SR-IOV系統返回步驟1710,其中每一SR-IOV系統都代表MR-IOV系統內的虛擬階層(VH)。
一旦用上述方式定義每一SR-IOV系統的TC至VC映射表資料結構,例如系統管理員這類特權使用者或自動
機制使用HMC將每一VH/VC配對指派給VH/VC配對至VL映射表資料結構內個別虛擬連結(VL)(步驟1750)。這導致每一主機刀鋒的優先群組,因為如第14圖內所示VL相關於每一主機刀鋒的優先群組。HMC使用例如第10圖內的遠端管理指令介面1002,將定義優先群組映射的此VH/VC配對至VL映射表資料結構傳遞至MR-PCIM(步驟1760)。MR-PCIM使用例如第16圖內所示的PCI Express組態位元,組態來自MR-IOV裝置功能表映射的功能VC至VL映射(步驟1770)。然後操作結束。
一旦已經根據所說明具體實施例的機制設定映射,則根據優先群組運用這些映射將特定訊務等級的資料繞送至適當虛擬連結。例如在一個說明的具體實施例內,第10圖內的HMC 1009具有所說明具體實施例的每一主機刀鋒之優先群組映射,如第13圖和第14圖內所示的映射。然後RMC介面1002可例如用來將資料傳輸至PCIM 1003。HMC 1009可為單一管理介面,透過RMC介面1002可傳輸資料至MR-PCIM或每一個別SR-PCIM。然後SR-PCIM或MR-PCIM可將組態資料寫入端點及/或交換器內的PCI Express組態空間之中。
吾人應該瞭解,功能VC至VL映射依照VH來組態。不過為了簡化範例,每一VH的位元欄都相同。根據MR-PCIM如何程式設計VL,VL可根據限制優先法或包
含循環法和加權佇列的其他排程法來仲裁。
如此所說明具體實施例提供機制來區別多根環境內的訊務類型,如此較高優先執行緒不會因為佇列前端阻擋而遭到較低優先執行緒阻擋。所說明具體實施例的機制提供一種系統及方法,來指派優先群組給虛擬連結,以便提供訊務區別並避免像是儲存這類較慢訊務阻擋對於延遲比較敏感的訊務,像是HPC應用。所說明具體實施例定義使用訊務等級將通過虛擬階層的訊務類型區別至虛擬通道、至虛擬連結映射能力的機制。多根系統的每一虛擬階層都可指派單一虛擬通道給虛擬連結。多訊務類型共享單一虛擬連結會導致佇列前端阻擋,例如虛擬連結上儲存訊務會阻擋HPC訊務。進一步,該儲存訊務可來自與該HPC訊務不同的虛擬階層。如此傳輸時間比較久的訊務會阻擋需要較少延遲的訊務,並且較慢訊務阻擋來自不同虛擬階層的虛擬連結。說明的具體實施例定義一種系統及方法,來指派優先群組給訊務等級、虛擬通道以及虛擬連結,以避免像是儲存的較慢訊務阻擋對於延遲比較敏感的訊務,像是HPC應用。
如上述,吾人應該瞭解,所說明具體實施例的態樣可採用整個硬體具體實施例、整個軟體具體實施例或包含硬體與軟體元件兩者的具體實施例之形式。在一個範例具體實施例內,所說明具體實施例的機制實施在軟體或
程式碼內,這包含但不受限於韌體、常駐軟體、微代碼等等。
適合儲存以及/或執行程式碼的資料處理系統將包含至少一個直接或透過系統匯流排間接耦合至記憶體元件的處理器。該記憶體元件可包含實際執行程式碼期間運用的本機記憶體、大量儲存體以及提供至少某些程式碼暫存的快取記憶體,以便減少執行期間必須從大量儲存體擷取的時間碼次數。
輸入/輸出或I/O裝置(包含但不受限於鍵盤、顯示器、指標裝置等等)可直接或透過中間I/O控制器耦合至系統。網路配接器也可耦合至系統,讓該資料處理系統變成耦合至其他資料處理系統,或透過中間私用或公用網路耦合至遠端印表機或儲存裝置。數據機、纜線數據機以及乙太網路卡只是一些目前可用的網路配接器種類。
本發明的描述已經為了說明與描述而呈現,並非要將本發明窮盡或受限在所揭示形式中。精通此技術的人士將瞭解許多修改與變化,具體實施例經過選擇與說明來最佳闡述本發明原理及實際應用,並且以許多具體實施例讓其他精通此技術的人士對本發明有最佳瞭解,這些具體實施例可具有多種修正來適用於所考慮到的特定使用。
100‧‧‧系統
110‧‧‧主機處理器
120‧‧‧記憶體
130‧‧‧根複合體
140‧‧‧PCIe端點
150‧‧‧PCI Express對PCI橋接器
160‧‧‧互連交換器
170‧‧‧端點
182‧‧‧端點
184‧‧‧端點
186‧‧‧端點
188‧‧‧端點
210‧‧‧應用程式
220‧‧‧系統映像
230‧‧‧虛擬系統
240‧‧‧虛擬化層
250‧‧‧實體系統資源
310‧‧‧主機處理器集合
320‧‧‧系統映像
330‧‧‧系統映像
340‧‧‧虛擬化層
350‧‧‧PCIe根複合體
360‧‧‧PCIe交換器
370‧‧‧PCIe端點
380‧‧‧PCIe端點
390‧‧‧PCIe端點
410‧‧‧主機處理器集合
420‧‧‧系統映像
430‧‧‧系統映像
440‧‧‧PCIe根複合體
442‧‧‧根複合體虛擬化啟用器
450‧‧‧虛擬化層
460‧‧‧PCIe交換器
470‧‧‧PCIe I/O虛擬化(IOV)端點
480‧‧‧PCIe I/O虛擬化(IOV)端點
490‧‧‧PCIe I/O虛擬化(IOV)
端點
500‧‧‧PCIe IOV端點
510‧‧‧PCIe連接埠
520‧‧‧內部繞送
530‧‧‧組態管理功能
540‧‧‧虛擬功能
550‧‧‧虛擬功能
560‧‧‧虛擬功能
570‧‧‧非可分離資源
580‧‧‧共享資源佇池
600‧‧‧根節點
610‧‧‧系統映像
612‧‧‧系統映像
620‧‧‧單根PCIe組態管理單元
630‧‧‧I/O虛擬化中間體
640‧‧‧PCIe根複合體
650‧‧‧PCIe交換器
670‧‧‧PCIe端點
680‧‧‧PCIe端點
690‧‧‧PCIe端點
700‧‧‧單根節點
710‧‧‧系統映像
712‧‧‧系統映像
720‧‧‧SR-PCIM
730‧‧‧單PCI根複合體
740‧‧‧PCIe交換器
770‧‧‧PCIe端點
780‧‧‧PCIe端點
790‧‧‧PCIe端點
810‧‧‧根節點
812‧‧‧SR-PCIM
814‧‧‧系統映像
816‧‧‧系統映像
818‧‧‧PCI根複合體
820‧‧‧根節點
822‧‧‧SR-PCIM
824‧‧‧系統映像
826‧‧‧系統映像
828‧‧‧PCI根複合體
830‧‧‧第三根節點
832‧‧‧多根PCI組態管理員
834‧‧‧PCI根複合體
840‧‧‧多根覺醒PCIe交換器
850‧‧‧IOV啟用PCIe端點
852‧‧‧虛擬端點
854‧‧‧虛擬端點
859‧‧‧基本功能
860‧‧‧IOV啟用PCIe端點
862‧‧‧虛擬端點
864‧‧‧虛擬端點
869‧‧‧基本功能
1001‧‧‧系統
1002‧‧‧遠端管理指令介面
1003‧‧‧PCI管理員
1004‧‧‧用戶端分割
1005‧‧‧裝置驅動器
1006‧‧‧裝置驅動器
1009‧‧‧硬體管理控制台
1010‧‧‧平台硬體
1011‧‧‧I/O結構
1012‧‧‧實體功能
1014‧‧‧IOV端點
1014‧‧‧I/O端點
1015‧‧‧I/O端點
1016‧‧‧I/O端點
1017‧‧‧組態空間
1019‧‧‧組態空間
1020‧‧‧介面
1021‧‧‧組態空間
1023‧‧‧分割韌體
1024‧‧‧分割韌體
1025‧‧‧管理程序
1026‧‧‧主機系統
1031‧‧‧作業系統
1032‧‧‧作業系統
1040‧‧‧管理應用程式
1042‧‧‧使用者介面
1105‧‧‧計算系統
1105‧‧‧刀鋒型伺服器
1110‧‧‧第一計算裝置
1120‧‧‧第二計算裝置
1130‧‧‧第三計算裝置
1140‧‧‧多根PCIe交換器
1145‧‧‧I/O配接器
1150‧‧‧方塊
1202‧‧‧PCI管理員
1204‧‧‧PCI管理員
1206‧‧‧PCI管理員
1210‧‧‧刀鋒
1210‧‧‧計算裝置
1220‧‧‧計算裝置
1220‧‧‧刀鋒
1230‧‧‧計算裝置
1230‧‧‧刀鋒
1245‧‧‧I/O配接器
1250‧‧‧映射模組
1252‧‧‧映射模組
1254‧‧‧映射模組
1260‧‧‧映射表資料庫
1262‧‧‧映射表資料庫
1264‧‧‧映射表資料庫
1240‧‧‧MR PCIe交換器
1310‧‧‧虛擬通道
1320‧‧‧VH1
1330‧‧‧單根I/O虛擬化(SR-IOV)訊務等級
1340‧‧‧優先群組
1410‧‧‧VC
1420‧‧‧VH
1430‧‧‧VL
1440‧‧‧優先群組
1610‧‧‧位元3
1620‧‧‧保留位元
1630‧‧‧保留位元
1640‧‧‧保留位元
1650‧‧‧保留位元
1660‧‧‧保留位元
1670‧‧‧保留位元
閱讀本發明並結合附圖,利用參考下列實施方式就可對於本發明本身、較佳使用模式、進一步目的及其優點有最佳瞭解,其中:第1圖為說明合併業界一般已知的PCIe結構拓撲的系統之範例圖;第2圖為說明業界一般已知的系統虛擬化之範例圖;第3圖為說明使用虛擬化層將PCI根複合體的I/O虛擬化之第一方式範例圖;第4圖為說明使用本質上共享的PCI I/O配接器,將PCI根複合體的I/O虛擬化之第二方式範例圖;第5圖為PCIe I/O虛擬化啟用端點的範例圖;第6圖為說明單根端點在無本質虛擬化時實體與虛擬功能之範例圖;第7圖為說明單根端點起用本質I/O虛擬化時實體與虛擬功能之範例圖;第8圖為說明根據一個說明具體實施例的多根虛擬化I/O拓撲之範例圖;第9圖為說明根據一個說明具體實施例從根節點之SR-PCIM的觀點來看,多根虛擬化I/O拓撲的虛擬階層圖之範例圖;
第10圖為說明根據一個說明具體實施例的硬體維護控制台(hardware maintenance console,HMC)和PCIM之範例圖;第11圖為說明建立阻擋通過MR-IOV系統的佇列前端之虛擬連結範例圖;第12圖為說明根據一個說明具體實施例使用映射在每一主機系統刀鋒型虛擬連結上的訊務等級,避免佇列前端阻擋通過MR-IOV系統之範例圖;第13圖為說明根據一個說明具體實施例的硬體維護控制台將單階層SR-IOV訊務等級(traffic class,TC)映射至虛擬通道(virtual channel,VC)之範例圖;第14圖為說明根據一個說明具體實施例的硬體維護控制台將到虛擬連結的虛擬通道(VC)映射至每一主機刀鋒型的優先群組之範例圖;第15圖為說明根據一個說明具體實施例在用於個別SR-IOV系統的VC資源控制暫存器內之TV/VC映射範例圖;第16圖為說明根據一個說明具體實施例具有來自第14圖的虛擬通道至虛擬連結映射之MR-IOV裝置功能表範例圖;以及第17圖為描述根據一個說明具體實施例用於執行優先群組映射以及每一主機系統刀鋒與繞送的範例操作之
流程圖。
1710-1770...步驟流程
Claims (18)
- 一種在資料處理系統內區別不同訊務類型之方法,包含以下步驟:產生一第一映射資料結構,對於該資料處理系統之複數個單根虛擬階層內每一單根虛擬階層,該第一映射資料結構將複數個訊務等級內每一訊務等級與複數個優先群組內之一對應優先群組及複數個虛擬通道內之一對應虛擬通道相關;產生一第二映射資料結構,其將該複數個虛擬通道內每一虛擬通道映射至該資料處理系統內複數個虛擬連結中之一對應虛擬連結;以及根據該第一映射資料結構以及第二映射資料結構,將訊務從一單根虛擬階層的一特定優先群組繞送(route)至該複數個虛擬連結內一特定虛擬連結,其中每一虛擬階層與虛擬通道的組合都映射至該複數個虛擬連結內之一不同的虛擬連結,其中根據該第一映射資料結構以及第二映射資料結構,將訊務從該單根虛擬階層繞送至該複數個虛擬連結內該特定虛擬連結之步驟包含以下步驟:決定與該訊務相關的一訊務等級;在該第一映射資料結構內執行一查找操作,以識別對應至該訊務之該特定優先群組的一虛擬通道,該 訊務之該特定優先群組對應至該訊務之該單根虛擬階層和該訊務等級之一組合;在該第二映射資料結構內執行一查找操作,以識別與該訊務之該虛擬通道和單根虛擬階層相關的一虛擬連結;以及將該訊務繞送至該已識別虛擬連結。
- 如申請專利範圍第1項所述之方法,其中該第一映射資料結構與第二映射資料結構由該資料處理系統的一硬體管理控制台所產生。
- 如申請專利範圍第2項所述之方法,其中該硬體管理控制台根據該第一映射資料結構與第二映射資料結構組態一主機系統的一或多個通訊結構管理員。
- 如申請專利範圍第1項所述之方法,其中該資料處理系統為具有複數個單根虛擬階層的一多根資料處理系統。
- 如申請專利範圍第4項所述之方法,其中該第一映射資料結構與第二映射資料結構根據該單根虛擬階層的一識別碼組合與由該識別碼識別的該單根虛擬階層相關之複數個虛擬通道內一虛擬通道,將資料從該複數個單根虛擬階層內每一單根虛擬階層繞送至該複數個虛擬連結內的一不同虛擬連結。
- 如申請專利範圍第1項所述之方法,其中針對一單根 虛擬階層,在該第一映射資料結構內,一相同虛擬通道對應至一相同優先群組,並且其中該相同虛擬通道具有相關於該相同虛擬通道的一或多個訊務等級。
- 如申請專利範圍第6項所述之方法,其中該單根虛擬階層相關於一刀鋒型伺服器的一主機系統刀鋒。
- 如申請專利範圍第1項所述之方法,其中由一刀鋒型伺服器內一主機系統刀鋒的一周邊組件互連(PCI)Express管理組件實施該方法。
- 如申請專利範圍第8項所述之方法,其中該PCIExpress管理組件為一單根PCI Express管理組件或一多根PCI Express管理組件中之一個。
- 一種包含一電腦可讀取媒體的電腦程式產品,在該媒體上記錄一電腦可讀取程式,其中該電腦可讀取程式在一資料處理系統上執行時會導致該資料處理系統:產生一第一映射資料結構,對於在該資料處理系統之複數個單根虛擬階層內每一單根虛擬階層,該第一映射資料結構將複數個訊務等級內每一訊務等級與複數個優先群組內之一對應優先群組及複數個虛擬通道內一對應虛擬通道相關;產生一第二映射資料結構,其將該複數個虛擬通道內每一虛擬通道映射至該資料處理系統內複數個虛擬連結中之一對應虛擬連結;以及 根據該第一映射資料結構以及第二映射資料結構,將訊務從一單根虛擬階層的一特定優先群組繞送至該複數個虛擬連結內一特定虛擬連結,其中每一虛擬階層與虛擬通道的組合都映射至該複數個虛擬連結內一不同的虛擬連結,其中根據該第一映射資料結構以及第二映射資料結構,將訊務從該單根虛擬階層繞送至該複數個虛擬連結內該特定虛擬連結之步驟包含以下步驟:決定與該訊務相關的一訊務等級;在該第一映射資料結構內執行一查找操作,以識別對應至該訊務之該特定優先群組的一虛擬通道,該訊務之該特定優先群組對應至該訊務之該單根虛擬階層和該訊務等級之一組合;在該第二映射資料結構內執行一查找操作,以識別與該訊務之該虛擬通道和單根虛擬階層相關的一虛擬連結;以及將該訊務繞送至該已識別虛擬連結。
- 如申請專利範圍第10項所述之電腦程式產品,其中該第一映射資料結構與第二映射資料結構由該資料處理系統的一硬體管理控制台所產生。
- 如申請專利範圍第11項所述之電腦程式產品,其中該硬體管理控制台根據該第一映射資料結構與第二 映射資料結構組態一主機系統的一或多個通訊結構管理員。
- 如申請專利範圍第10項所述之電腦程式產品,其中該資料處理系統為具有複數個單根虛擬階層的一多根資料處理系統。
- 如申請專利範圍第13項所述之電腦程式產品,其中該第一映射資料結構與第二映射資料結構根據該單根虛擬階層的一識別碼組合與由該識別碼識別的該單根虛擬階層相關之複數個虛擬通道內一虛擬通道,將資料從該複數個單根虛擬階層內每一單根虛擬階層繞送至該複數個虛擬連結內之一不同虛擬連結。
- 如申請專利範圍第10項所述之電腦程式產品,其中針對一單根虛擬階層,在該第一映射資料結構內,一相同虛擬通道對應至一相同優先群組,並且其中該相同虛擬通道具有相關於該相同虛擬通道的一或多個訊務等級。
- 如申請專利範圍第15項所述之電腦程式產品,其中該單根虛擬階層相關於一刀鋒型伺服器的一主機系統刀鋒。
- 如申請專利範圍第10項所述之電腦程式產品,其中由一刀鋒型伺服器內一主機系統刀鋒的一周邊組件互連(PCI)Express管理組件執行該電腦可讀取程式。
- 一種資料處理系統,包含:一硬體管理控制台;以及一主機系統,其耦合至該硬體管理控制台,其中該硬體管理控制台:產生一第一映射資料結構,對於該資料處理系統之複數個單根虛擬階層內每一單根虛擬階層,該第一映射資料結構將複數個訊務等級內每一訊務等級與複數個優先群組內之一對應優先群組及複數個虛擬通道內一對應虛擬通道相關;產生一第二映射資料結構,其將該複數個虛擬通道內每一虛擬通道映射至該資料處理系統內複數個虛擬連結中之一對應虛擬連結;以及根據該第一映射資料結構以及第二映射資料結構,將訊務從一單根虛擬階層的一特定優先群組繞送至該複數個虛擬連結內之一特定虛擬連結,其中每一虛擬階層與虛擬通道的組合都映射至該複數個虛擬連結內之一不同的虛擬連結,其中根據該第一映射資料結構以及第二映射資料結構,將訊務從該單根虛擬階層繞送至該複數個虛擬連結內該特定虛擬連結之步驟包含以下步驟:決定與該訊務相關的一訊務等級;在該第一映射資料結構內執行一查找操作,以識 別對應至該訊務之該特定優先群組的一虛擬通道,該訊務之該特定優先群組對應至該訊務之該單根虛擬階層和該訊務等級之一組合;在該第二映射資料結構內執行一查找操作,以識別與該訊務之該虛擬通道和單根虛擬階層相關的一虛擬連結;以及將該訊務繞送至該已識別虛擬連結。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/346,251 US8144582B2 (en) | 2008-12-30 | 2008-12-30 | Differentiating blade destination and traffic types in a multi-root PCIe environment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201025025A TW201025025A (en) | 2010-07-01 |
| TWI474181B true TWI474181B (zh) | 2015-02-21 |
Family
ID=42284852
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW98139783A TWI474181B (zh) | 2008-12-30 | 2009-11-23 | 在多根pcie環境中區別刀鋒型目的地及訊務類型 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8144582B2 (zh) |
| KR (1) | KR101104025B1 (zh) |
| TW (1) | TWI474181B (zh) |
Families Citing this family (89)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6118776A (en) * | 1997-02-18 | 2000-09-12 | Vixel Corporation | Methods and apparatus for fiber channel interconnection of private loop devices |
| US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
| US8141093B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
| US8141094B2 (en) | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
| US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
| JP5232602B2 (ja) * | 2008-10-30 | 2013-07-10 | 株式会社日立製作所 | ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法 |
| US7913024B2 (en) * | 2008-12-09 | 2011-03-22 | International Business Machines Corporation | Differentiating traffic types in a multi-root PCI express environment |
| US8144582B2 (en) | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
| US8208396B2 (en) * | 2009-05-12 | 2012-06-26 | International Business Machines Corporation | Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter |
| JP5533867B2 (ja) * | 2009-07-06 | 2014-06-25 | 日本電気株式会社 | I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム |
| KR20110020708A (ko) * | 2009-08-24 | 2011-03-03 | 삼성전자주식회사 | Ofdm 시스템에서 셀간 간섭 조정을 위한 제어 채널 구성과 다중화 방법 및 장치 |
| CN102110072B (zh) * | 2009-12-29 | 2013-06-05 | 中兴通讯股份有限公司 | 一种多处理器完全互访的方法及系统 |
| US8271707B2 (en) * | 2010-02-17 | 2012-09-18 | Broadcom Corporation | Method and system for PCI hybrid function |
| EP2541845A4 (en) * | 2010-02-23 | 2017-01-25 | Nec Corporation | Remote control system, remote control method, and remote control program |
| US9852087B2 (en) | 2010-04-20 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Inline PCI-IOV adapter |
| US10103939B2 (en) | 2010-07-06 | 2018-10-16 | Nicira, Inc. | Network control apparatus and method for populating logical datapath sets |
| US9525647B2 (en) | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
| US9680750B2 (en) | 2010-07-06 | 2017-06-13 | Nicira, Inc. | Use of tunnels to hide network addresses |
| US8717895B2 (en) | 2010-07-06 | 2014-05-06 | Nicira, Inc. | Network virtualization apparatus and method with a table mapping engine |
| US8964528B2 (en) | 2010-07-06 | 2015-02-24 | Nicira, Inc. | Method and apparatus for robust packet distribution among hierarchical managed switching elements |
| US9135044B2 (en) * | 2010-10-26 | 2015-09-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch |
| US8677176B2 (en) * | 2010-12-03 | 2014-03-18 | International Business Machines Corporation | Cable redundancy and failover for multi-lane PCI express IO interconnections |
| US8543754B2 (en) * | 2011-02-25 | 2013-09-24 | International Business Machines Corporation | Low latency precedence ordering in a PCI express multiple root I/O virtualization environment |
| US8972611B2 (en) * | 2011-08-11 | 2015-03-03 | Cisco Technology, Inc. | Multi-server consolidated input/output (IO) device |
| JP5979229B2 (ja) * | 2012-05-22 | 2016-08-24 | 富士通株式会社 | 情報処理装置、制御方法、及び制御プログラム |
| US10380041B2 (en) | 2012-08-23 | 2019-08-13 | Dell Products, Lp | Fabric independent PCIe cluster manager |
| US9086919B2 (en) | 2012-08-23 | 2015-07-21 | Dell Products, Lp | Fabric independent PCIe cluster manager |
| US9075952B2 (en) * | 2013-01-17 | 2015-07-07 | Intel Corporation | Controlling bandwidth allocations in a system on a chip (SoC) |
| US9298658B2 (en) * | 2013-02-26 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter |
| EP2979170B1 (en) | 2013-03-28 | 2020-07-08 | Hewlett-Packard Enterprise Development LP | Making memory of compute and expansion blade devices available for use by an operating system |
| JP6031212B2 (ja) | 2013-03-28 | 2016-11-24 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | ブレードデバイスを備えるパーティションのオペレーティングシステムによって用いられるブレードデバイスのメモリの特定 |
| WO2014158161A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Error coordination message for a blade device having a logical processor in another system firmware domain |
| US9094287B2 (en) | 2013-06-13 | 2015-07-28 | Cisco Technology, Inc. | System and method for providing a topology path |
| US9135200B2 (en) | 2013-06-28 | 2015-09-15 | Futurewei Technologies, Inc. | System and method for extended peripheral component interconnect express fabrics |
| KR102147629B1 (ko) | 2013-11-18 | 2020-08-27 | 삼성전자 주식회사 | 플렉시블 서버 시스템 |
| CN103731317B (zh) * | 2013-12-10 | 2017-02-08 | 福建星网锐捷网络有限公司 | 一种pcie地址映射检测的方法及装置 |
| US9648148B2 (en) * | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
| TWI556174B (zh) | 2014-03-05 | 2016-11-01 | 威盛電子股份有限公司 | 虛擬功能分配系統、方法及其管理主機 |
| US9742682B2 (en) | 2014-03-11 | 2017-08-22 | Vmware, Inc. | Large receive offload for virtual machines |
| US9755981B2 (en) | 2014-03-11 | 2017-09-05 | Vmware, Inc. | Snooping forwarded packets by a virtual machine |
| US9384033B2 (en) | 2014-03-11 | 2016-07-05 | Vmware, Inc. | Large receive offload for virtual machines |
| US20160154756A1 (en) * | 2014-03-31 | 2016-06-02 | Avago Technologies General Ip (Singapore) Pte. Ltd | Unordered multi-path routing in a pcie express fabric environment |
| US9558148B2 (en) * | 2014-04-30 | 2017-01-31 | Intel Corporation | Method to optimize network data flows within a constrained system |
| US9774707B2 (en) | 2014-06-04 | 2017-09-26 | Nicira, Inc. | Efficient packet classification for dynamic containers |
| US9825913B2 (en) | 2014-06-04 | 2017-11-21 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
| US10110712B2 (en) | 2014-06-04 | 2018-10-23 | Nicira, Inc. | Efficient packet classification for dynamic containers |
| US9419897B2 (en) | 2014-06-30 | 2016-08-16 | Nicira, Inc. | Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization |
| US9692698B2 (en) | 2014-06-30 | 2017-06-27 | Nicira, Inc. | Methods and systems to offload overlay network packet encapsulation to hardware |
| US10089129B2 (en) * | 2014-06-30 | 2018-10-02 | International Business Machines Corporation | Supporting flexible deployment and migration of virtual servers via unique function identifiers |
| CN105743808B (zh) | 2014-12-08 | 2017-09-19 | 华为技术有限公司 | 一种适配QoS的方法和装置 |
| US10237191B2 (en) | 2015-02-18 | 2019-03-19 | Intel Corporation | Traffic class arbitration based on priority and bandwidth allocation |
| US9921994B1 (en) * | 2015-02-26 | 2018-03-20 | Marvell International Ltd. | Dynamic credit control in multi-traffic class communication system |
| KR102398213B1 (ko) | 2015-03-09 | 2022-05-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법 |
| US9990327B2 (en) | 2015-06-04 | 2018-06-05 | Intel Corporation | Providing multiple roots in a semiconductor device |
| US10157160B2 (en) * | 2015-06-04 | 2018-12-18 | Intel Corporation | Handling a partition reset in a multi-root system |
| CN105334920B (zh) * | 2015-10-29 | 2019-03-12 | 上海飞斯信息科技有限公司 | 一种pcie通用信号交换板 |
| US10860520B2 (en) * | 2015-11-18 | 2020-12-08 | Oracle International Corporation | Integration of a virtualized input/output device in a computer system |
| US11038845B2 (en) | 2016-02-23 | 2021-06-15 | Nicira, Inc. | Firewall in a virtualized computing environment using physical network interface controller (PNIC) level firewall rules |
| WO2018003629A1 (ja) * | 2016-06-28 | 2018-01-04 | 日本電気株式会社 | パケット処理装置、及び、パケット処理方法 |
| TWI622884B (zh) * | 2016-11-17 | 2018-05-01 | 宏碁股份有限公司 | 根複合體管理方法及根複合體 |
| WO2018173245A1 (ja) * | 2017-03-24 | 2018-09-27 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのバックエンド構築方法 |
| US10313926B2 (en) | 2017-05-31 | 2019-06-04 | Nicira, Inc. | Large receive offload (LRO) processing in virtualized computing environments |
| US11347531B2 (en) * | 2018-10-31 | 2022-05-31 | The Boeing Company | Generalized virtualization platform for systems using hardware abstraction software layers |
| KR102588143B1 (ko) | 2018-11-07 | 2023-10-13 | 삼성전자주식회사 | 메모리 컨트롤러를 포함하는 스토리지 장치 및 메모리를 포함하는 전자 시스템을 동작시키는 방법 |
| CN111835652B (zh) * | 2019-04-17 | 2024-04-16 | 华为技术有限公司 | 一种数据流的虚拟通道的设置方法及装置 |
| CN110209606B (zh) * | 2019-04-30 | 2021-01-22 | 杭州电子科技大学 | 一种基于PCIe的多接口存储设备的控制方法 |
| DE102019214273A1 (de) * | 2019-09-19 | 2021-03-25 | Siemens Energy Global GmbH & Co. KG | System und Verfahren zum Bereitstellen einer digitalen Nachbildung einer Anlage und entsprechendes Computerprogrammprodukt |
| US11962518B2 (en) | 2020-06-02 | 2024-04-16 | VMware LLC | Hardware acceleration techniques using flow selection |
| US11593278B2 (en) | 2020-09-28 | 2023-02-28 | Vmware, Inc. | Using machine executing on a NIC to access a third party storage not supported by a NIC or host |
| US11792134B2 (en) | 2020-09-28 | 2023-10-17 | Vmware, Inc. | Configuring PNIC to perform flow processing offload using virtual port identifiers |
| US12021759B2 (en) | 2020-09-28 | 2024-06-25 | VMware LLC | Packet processing with hardware offload units |
| US11636053B2 (en) | 2020-09-28 | 2023-04-25 | Vmware, Inc. | Emulating a local storage by accessing an external storage through a shared port of a NIC |
| US11736566B2 (en) | 2020-09-28 | 2023-08-22 | Vmware, Inc. | Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module |
| US11829793B2 (en) | 2020-09-28 | 2023-11-28 | Vmware, Inc. | Unified management of virtual machines and bare metal computers |
| KR102521902B1 (ko) * | 2021-03-23 | 2023-04-17 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
| US11561909B2 (en) | 2021-04-28 | 2023-01-24 | Western Digital Technologies, Inc. | Bandwidth allocation for storage system commands in peer-to-peer environment |
| US11714776B2 (en) * | 2021-08-05 | 2023-08-01 | Texas Instmments Incorporated | Enabling a multi-chip daisy chain topology using peripheral component interconnect express (PCIe) |
| CN113806258B (zh) * | 2021-11-16 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种动态自适应的虚拟通道映射方法、装置及存储介质 |
| US11863376B2 (en) | 2021-12-22 | 2024-01-02 | Vmware, Inc. | Smart NIC leader election |
| US11995024B2 (en) | 2021-12-22 | 2024-05-28 | VMware LLC | State sharing between smart NICs |
| US12229578B2 (en) | 2021-12-22 | 2025-02-18 | VMware LLC | Teaming of smart NICs |
| US12175281B2 (en) | 2022-01-05 | 2024-12-24 | SanDisk Technologies, Inc. | PCIe TLP size and alignment management |
| US12373237B2 (en) | 2022-05-27 | 2025-07-29 | VMware LLC | Logical memory addressing by smart NIC across multiple devices |
| US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
| US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
| US12481444B2 (en) | 2022-06-21 | 2025-11-25 | VMware LLC | Smart NIC responding to requests from client device |
| US11928367B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Logical memory addressing for network devices |
| US20240354141A1 (en) * | 2023-04-19 | 2024-10-24 | Qualcomm Incorporated | Virtual data links |
| US20250238388A1 (en) * | 2024-01-19 | 2025-07-24 | Microchip Technology Incorporated | DEVICE AND METHODS FOR SINGLE-CHIP PCIe VIRTUALIZATION |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWM309135U (en) * | 2006-10-16 | 2007-04-01 | Hon Hai Prec Ind Co Ltd | Motherboard and expansion card apparatus thereof |
| US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
| TW200817914A (en) * | 2006-06-15 | 2008-04-16 | Nvidia Corp | BUS interface controller for cost-effective high performance graphics system with two or more graphics processing units |
| TWM342008U (en) * | 2008-03-12 | 2008-10-01 | Giga Byte Tech Co Ltd | Monitoring motherboard which set in the host computer |
Family Cites Families (70)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4115854A (en) * | 1977-03-28 | 1978-09-19 | International Business Machines Corporation | Channel bus controller |
| US5479407A (en) * | 1991-05-24 | 1995-12-26 | Ko; Cheng-Hsu | Channel utilization method and system for ISDN |
| US5379297A (en) * | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
| US6247080B1 (en) * | 1997-05-13 | 2001-06-12 | Micron Electronics, Inc. | Method for the hot add of devices |
| US6005851A (en) * | 1997-10-10 | 1999-12-21 | Nortel Networks Corporation | Adaptive channel control for data service delivery |
| US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
| AU6255199A (en) * | 1998-09-17 | 2000-04-17 | Tod Mcnamara | System and method for network flow optimization using traffic classes |
| US6618380B1 (en) * | 1999-09-09 | 2003-09-09 | Lucent Technologies Inc. | Priority queueing |
| US6633580B1 (en) * | 2000-03-07 | 2003-10-14 | Sun Microsystems | N×N crossbar packet switch |
| US6775790B2 (en) * | 2000-06-02 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Distributed fine-grained enhancements for distributed table driven I/O mapping |
| US6594712B1 (en) * | 2000-10-20 | 2003-07-15 | Banderacom, Inc. | Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link |
| US20030005068A1 (en) * | 2000-12-28 | 2003-01-02 | Nickel Ronald H. | System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same |
| US6842857B2 (en) * | 2001-04-12 | 2005-01-11 | International Business Machines Corporation | Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine |
| US6880002B2 (en) * | 2001-09-05 | 2005-04-12 | Surgient, Inc. | Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources |
| US7093024B2 (en) * | 2001-09-27 | 2006-08-15 | International Business Machines Corporation | End node partitioning using virtualization |
| DE20207862U1 (de) * | 2002-05-21 | 2002-09-26 | TRW Airbag Systems GmbH & Co. KG, 84544 Aschau | Schlauchgasgenerator |
| US7565398B2 (en) * | 2002-06-27 | 2009-07-21 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
| US7836211B2 (en) * | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
| US20040158834A1 (en) * | 2003-02-06 | 2004-08-12 | International Business Machines Corporation | Apparatus and method for dynamically allocating resources of a dead logical partition |
| US7073002B2 (en) * | 2003-03-13 | 2006-07-04 | International Business Machines Corporation | Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system |
| US7047372B2 (en) * | 2003-04-15 | 2006-05-16 | Newisys, Inc. | Managing I/O accesses in multiprocessor systems |
| US7134052B2 (en) * | 2003-05-15 | 2006-11-07 | International Business Machines Corporation | Autonomic recovery from hardware errors in an input/output fabric |
| US8301809B2 (en) * | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
| US7237139B2 (en) * | 2003-08-07 | 2007-06-26 | International Business Machines Corporation | Services heuristics for computer adapter placement in logical partitioning operations |
| US7502842B2 (en) * | 2003-09-25 | 2009-03-10 | International Business Machines Corporation | Auto-configuration of an internal VLAN network interface |
| US7171417B2 (en) * | 2003-09-30 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for improving performance and scalability of an object manager |
| US7254652B2 (en) * | 2003-09-30 | 2007-08-07 | International Business Machines Corporation | Autonomic configuration of port speeds of components connected to an interconnection cable |
| US7111102B2 (en) * | 2003-10-06 | 2006-09-19 | Cisco Technology, Inc. | Port adapter for high-bandwidth bus |
| US20070061441A1 (en) * | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
| US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
| US7234037B2 (en) * | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
| US7660322B2 (en) * | 2003-12-11 | 2010-02-09 | International Business Machines Corporation | Shared adapter |
| US7487258B2 (en) * | 2004-01-30 | 2009-02-03 | International Business Machines Corporation | Arbitration in a computing utility system |
| US8782024B2 (en) * | 2004-02-12 | 2014-07-15 | International Business Machines Corporation | Managing the sharing of logical resources among separate partitions of a logically partitioned computer system |
| US7530071B2 (en) * | 2004-04-22 | 2009-05-05 | International Business Machines Corporation | Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions |
| US20050246453A1 (en) | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
| US7249208B2 (en) * | 2004-05-27 | 2007-07-24 | International Business Machines Corporation | System and method for extending the cross-memory descriptor to describe another partition's memory |
| US7240177B2 (en) * | 2004-05-27 | 2007-07-03 | International Business Machines Corporation | System and method for improving performance of dynamic memory removals by reducing file cache size |
| IL163314A (en) | 2004-08-02 | 2010-06-16 | Lsi Technologies Israel Ltd | Booting from a storage area network |
| US7260661B2 (en) * | 2004-09-03 | 2007-08-21 | Intel Corporation | Processing replies to request packets in an advanced switching context |
| JP2006113767A (ja) * | 2004-10-14 | 2006-04-27 | Sony Corp | 情報処理システム、および、情報処理方法、並びに、プログラム |
| US20060123111A1 (en) * | 2004-12-02 | 2006-06-08 | Frank Dea | Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems |
| US8285907B2 (en) * | 2004-12-10 | 2012-10-09 | Intel Corporation | Packet processing in switched fabric networks |
| JP4733399B2 (ja) * | 2005-01-28 | 2011-07-27 | 株式会社日立製作所 | 計算機システム、計算機、ストレージ装置及び管理端末 |
| US7694047B1 (en) * | 2005-02-17 | 2010-04-06 | Qlogic, Corporation | Method and system for sharing input/output devices |
| US20060195663A1 (en) | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Virtualized I/O adapter for a multi-processor data processing system |
| US7543305B2 (en) * | 2005-03-24 | 2009-06-02 | International Business Machines Corporation | Selective event registration |
| US20060236063A1 (en) * | 2005-03-30 | 2006-10-19 | Neteffect, Inc. | RDMA enabled I/O adapter performing efficient memory management |
| US7415034B2 (en) * | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Virtualized partitionable shared network interface |
| US20060250945A1 (en) * | 2005-04-07 | 2006-11-09 | International Business Machines Corporation | Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system |
| US8223745B2 (en) * | 2005-04-22 | 2012-07-17 | Oracle America, Inc. | Adding packet routing information without ECRC recalculation |
| US7620741B2 (en) * | 2005-04-22 | 2009-11-17 | Sun Microsystems, Inc. | Proxy-based device sharing |
| US7949766B2 (en) * | 2005-06-22 | 2011-05-24 | Cisco Technology, Inc. | Offload stack for network, block and file input and output |
| US7716662B2 (en) * | 2005-06-22 | 2010-05-11 | Comcast Cable Holdings, Llc | System and method for generating a set top box code download step sequence |
| US8521912B2 (en) * | 2006-01-12 | 2013-08-27 | Broadcom Corporation | Method and system for direct device access |
| US8230153B2 (en) * | 2006-01-20 | 2012-07-24 | Broadcom Corporation | Method and system for HBA assisted storage virtualization |
| US20070192518A1 (en) * | 2006-02-14 | 2007-08-16 | Aarohi Communications, Inc., A California Corporation | Apparatus for performing I/O sharing & virtualization |
| US7613749B2 (en) * | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
| US7613847B2 (en) * | 2006-05-16 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Partially virtualizing an I/O device for use by virtual machines |
| JP5068056B2 (ja) * | 2006-10-11 | 2012-11-07 | 株式会社日立製作所 | 障害回復方法、計算機システム及び管理サーバ |
| US9098347B2 (en) | 2006-12-21 | 2015-08-04 | Vmware | Implementation of virtual machine operations using storage system functionality |
| US7734859B2 (en) * | 2007-04-20 | 2010-06-08 | Nuon, Inc | Virtualization of a host computer's native I/O system architecture via the internet and LANs |
| US8464260B2 (en) * | 2007-10-31 | 2013-06-11 | Hewlett-Packard Development Company, L.P. | Configuration and association of a supervisory virtual device function to a privileged entity |
| US7945436B2 (en) * | 2007-11-06 | 2011-05-17 | Vmware, Inc. | Pass-through and emulation in a virtual machine environment |
| US8141092B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
| US8141093B2 (en) * | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
| US8141094B2 (en) * | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
| US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
| US7913024B2 (en) * | 2008-12-09 | 2011-03-22 | International Business Machines Corporation | Differentiating traffic types in a multi-root PCI express environment |
| US8144582B2 (en) | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
-
2008
- 2008-12-30 US US12/346,251 patent/US8144582B2/en not_active Expired - Fee Related
-
2009
- 2009-11-23 TW TW98139783A patent/TWI474181B/zh not_active IP Right Cessation
- 2009-11-27 KR KR1020090115690A patent/KR101104025B1/ko not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
| TW200817914A (en) * | 2006-06-15 | 2008-04-16 | Nvidia Corp | BUS interface controller for cost-effective high performance graphics system with two or more graphics processing units |
| TWM309135U (en) * | 2006-10-16 | 2007-04-01 | Hon Hai Prec Ind Co Ltd | Motherboard and expansion card apparatus thereof |
| TWM342008U (en) * | 2008-03-12 | 2008-10-01 | Giga Byte Tech Co Ltd | Monitoring motherboard which set in the host computer |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201025025A (en) | 2010-07-01 |
| US20100165874A1 (en) | 2010-07-01 |
| US8144582B2 (en) | 2012-03-27 |
| KR20100080360A (ko) | 2010-07-08 |
| KR101104025B1 (ko) | 2012-01-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI474181B (zh) | 在多根pcie環境中區別刀鋒型目的地及訊務類型 | |
| US7913024B2 (en) | Differentiating traffic types in a multi-root PCI express environment | |
| US8103810B2 (en) | Native and non-native I/O virtualization in a single adapter | |
| TWI511048B (zh) | 多主機上單根輸入/輸出虛擬化虛擬功能共享的方法及系統 | |
| US7743189B2 (en) | PCI function south-side data management | |
| JP5490336B2 (ja) | Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け | |
| JP5362980B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
| CN104426814B (zh) | Numa节点外围交换机 | |
| US7529860B2 (en) | System and method for configuring an endpoint based on specified valid combinations of functions | |
| JP5763873B2 (ja) | データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム | |
| JP4931787B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
| JP5315209B2 (ja) | 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用 | |
| US8225005B2 (en) | Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect | |
| US8972611B2 (en) | Multi-server consolidated input/output (IO) device | |
| US20080148295A1 (en) | System and method for migration of single root stateless virtual functions | |
| US20080147943A1 (en) | System and method for migration of a virtual endpoint from one virtual plane to another | |
| US8918568B2 (en) | PCI express SR-IOV/MR-IOV virtual function clusters | |
| JP2008152787A (ja) | データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法) | |
| US7492723B2 (en) | Mechanism to virtualize all address spaces in shared I/O fabrics | |
| US9483290B1 (en) | Method and system for virtual machine communication | |
| US20070136458A1 (en) | Creation and management of ATPT in switches of multi-host PCI topologies | |
| CN101889263B (zh) | 控制路径i/o虚拟化 | |
| CN110362523B (zh) | 一种基于virtio协议的接口及数据处理方法 | |
| Chencinski et al. | Advances in the IBM z13 I/O function and capability |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |