JP2010140471A - 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用 - Google Patents

冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用 Download PDF

Info

Publication number
JP2010140471A
JP2010140471A JP2009246376A JP2009246376A JP2010140471A JP 2010140471 A JP2010140471 A JP 2010140471A JP 2009246376 A JP2009246376 A JP 2009246376A JP 2009246376 A JP2009246376 A JP 2009246376A JP 2010140471 A JP2010140471 A JP 2010140471A
Authority
JP
Japan
Prior art keywords
virtual function
virtual
root
computer
function
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2009246376A
Other languages
English (en)
Other versions
JP5315209B2 (ja
Inventor
Steven Thurber
スティーブ・サーバー
M Freimuth Douglas
ダグラス・エム・フレイマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010140471A publication Critical patent/JP2010140471A/ja
Application granted granted Critical
Publication of JP5315209B2 publication Critical patent/JP5315209B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities

Abstract

【課題】冗長システム構成を生成するためのコンピュータ実施方法、データ処理システム、およびコンピュータ・プログラムを提供する。
【解決手段】コンピュータ実施方法は、1組の仮想機能パス許可テーブルを生成し、リクエスタから要求を受信して、要求されたデータを仮想機能から提供し、仮想機能は、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される。さらに、1組のアドレス範囲において選択されたアドレス範囲内に受信バッファが生成され、また選択されたアドレス範囲内の受信バッファのアドレスを含む、仮想機能のための仮想機能作業待ち行列エントリが生成される。仮想機能は許可されているという判定に応答して、1つまたは複数のシステム内の選択されたアドレス範囲の受信バッファに要求されたデータが書き込まれ、要求されたデータの書き込みに応答して、リクエスタに完了通知が発行される。
【選択図】図3

Description

本発明は、一般に、改良データ処理システムに関し、より具体的には、周辺機器相互接続入出力仮想化構成(peripheral component interconnect input/output virtualizationconfiguration)を使用して冗長構成を生成するための、コンピュータ実施方法、データ処理システム、およびコンピュータ・プログラム製品に関する。
典型的なコンピューティング・デバイスは、元々は1990年代にインテル・コーポレーションによって作成され、現在はPCI−SIGによって管理される、周辺機器相互接続(PCI:Peripheral Component Interconnect)規格のあるバージョンまたは実施を利用する、入出力(I/O)アダプタおよびバスを使用する。周辺機器相互接続(PCI)規格は、周辺デバイスをコンピュータ・マザーボードに接続するためのコンピュータ・バスを規定する。PCIエクスプレス(PCIExpress)すなわちPCIeは、既存のPCIプログラミング概念を使用するPCIコンピュータ・バスの実施であるが、コンピュータ・バスは、まったく異なるはるかに高速なシリアル物理レイヤ通信プロトコルに基づいている。物理レイヤは、複数のデバイス間で共用できる双方向バスから成るのではなく、正確に2つのデバイスに接続される単一の一方向リンクから成る。
図1を参照すると、周辺機器相互接続エクスプレス仕様に従った周辺機器相互接続エクスプレス(PCIe:peripheral component interconnect express)バスを含むシステムを示す例示的な図が提示されている。図1に示された具体的なシステムは、複数のサーバ・ブレード(serverblade)101〜104が提供されるブレード・エンクロージャ(blade enclosure)である。サーバ・ブレードは、高密度システム用に設計された内蔵型のコンピュータ・サーバである。サーバ・ブレードは、スペース、電力、および他の考慮点のために多くのコンポーネントが除去されているが、それでも、コンピュータと見なされるためのすべての機能コンポーネントを有している。ブレード・エンクロージャ100は、電力、冷却、ネットワーキング、様々な相互接続、およびブレード・エンクロージャ100内の様々なサーバ・ブレード101〜104の管理などのサービスを提供する。サーバ・ブレード101〜104およびブレード・エンクロージャ100は、一緒になってブレード・システムを形成する。
図1に示されるように、周辺機器相互接続エクスプレスが、サーバ・ブレード101〜104の各々に実装され、周辺機器相互接続エクスプレス・デバイス105〜112の1つに接続するために使用される。次にこれらのサーバ・ブレード101〜104の各々が、ブレード・エンクロージャ100内のスロットに差し込まれ、次にブレード・エンクロージャが、周辺機器相互接続エクスプレス・イーサネット・デバイス105、107、109、111の出力を、ブレード・エンクロージャ100内のバックプレーン(backplane)を介して、イーサネット・スイッチ113に接続し、次にイーサネット・スイッチが、例えば、ブレード・エンクロージャ100の外部のデバイスへの通信接続などの、外部接続用のイーサネット接続115を生成する。同様に、周辺機器相互接続エクスプレス・ストレージ・デバイス106、108、110、112の各々は、ブレード・エンクロージャ100内のバックプレーンを介して、ストレージ・エリア・ネットワーク・スイッチ114に接続され、次にストレージ・エリア・ネットワーク・スイッチが、外部接続用のストレージ・エリア・ネットワーク接続116を生成する。
したがって、図1に示されるシステムは、周辺機器相互接続仕様または周辺機器相互接続エクスプレス仕様あるいはその両方が実施された、データ処理システムの例示的な1つのタイプである。周辺機器相互接続仕様または周辺機器相互接続エクスプレス仕様あるいはその両方を使用するデータ処理システムの他の構成も知られている。これらのシステムは、アーキテクチャが多様であり、したがって、その各々を本明細書で詳しく説明することはできない。周辺機器相互接続および周辺機器相互接続エクスプレスに関するより多くの情報については、周辺機器相互接続スペシャル・インタレスト・グループ(PCI−SIG:peripheral component interconnect special interest group)のウェブサイトwww.pcisig.comから入手可能な周辺機器相互接続仕様および周辺機器相互接続エクスプレス仕様を参照されたい。
周辺機器相互接続仕様および周辺機器相互接続エクスプレス仕様に加えて、周辺機器相互接続スペシャル・インタレスト・グループは、いくつかの論理パーティション(LPAR:logical partition)によって共用できる入出力アダプタ(IOA:input/output adapter)をいかに設計するかについて規定するための、入出力仮想化(IOV:input/outputvirtualization)規格も規定している。論理パーティションは、コンピュータのプロセッサ、メモリ、およびストレージを、リソースの多数の組に分割して、リソースの各組を、独自のオペレーティング・システム・インスタンスおよびアプリケーションとともに独立に動作させ得るようにする。生成できる論理パーティションの数は、システムのプロセッサ・モデルおよび利用可能なリソースに依存する。一般に、パーティションは、データベース動作、クライアント/サーバ動作、またはテスト環境と生産環境の分離など、様々な目的で使用される。各パーティションは、他のパーティションがあたかも別個のマシンであるかのように、他のパーティションと通信することができる。
論理パーティションをサポートする現代のシステムでは、いくつかのリソースは、論理パーティション間で共用することができる。上で言及されたように、周辺機器相互接続仕様および周辺機器相互接続エクスプレス仕様では、共用できるそのようなリソースの1つは、入出力仮想化メカニズムを使用する入出力アダプタである。
さらに、周辺機器相互接続スペシャル・インタレスト・グループは、多数のシステム間で入出力アダプタを共用するための入出力仮想化(IOV)規格も規定している。この機能は、マルチルート(MR:multi-root)入出力仮想化と呼ばれる。
図2を参照すると、周辺機器相互接続エクスプレス・マルチルート入出力仮想化を含むシステムを示す例示的な図が提示されている。具体的には、図2は、多数のシステム間で周辺機器相互接続エクスプレス・デバイスを共用するために、図1に示されたアーキテクチャをどのように変更できるかを示している。
今度はサーバ・ブレード201〜204は、図1のサーバ・ブレード101〜104で行われたように、サーバ・ブレード201〜204上に周辺機器相互接続エクスプレス・デバイス自体を含む代わりに、周辺機器相互接続エクスプレス・ルート・ポート(root port)205〜212を生成し、ブレード・エンクロージャ200のバックプレーンを横断する周辺機器相互接続エクスプレス接続を駆動する。その場合、各サーバ・ブレード201〜204からの周辺機器相互接続エクスプレス・リンクは、マルチルート周辺機器相互接続エクスプレス・スイッチ213〜214の一方に接続され、次にマルチルート周辺機器相互接続エクスプレス・スイッチは、周辺機器相互接続エクスプレス・イーサネット/ストレージ・デバイス217〜220に接続される。周辺機器相互接続エクスプレス・イーサネット/ストレージ・デバイス217〜220は、外部接続215、216を介して、外部のイーサネット・デバイスおよびストレージ・デバイスに接続する。そのようにして、周辺機器相互接続エクスプレス・デバイスを、ブレード・エンクロージャ200内で使用することができる。これは、サーバ・ブレード201〜204間で周辺機器相互接続エクスプレス・デバイス217〜220が共用されるので、それらの数を最低限に抑えることができる点で、全体的コストを低減する。さらに、これは、周辺機器相互接続エクスプレス・デバイス217〜220の組み込みを必要としないことによって、サーバ・ブレード201〜204自体の複雑さおよびコストを低減することができる。
周辺機器相互接続スペシャル・インタレスト・グループは、いくつかの論理パーティションによって共用できる入出力アダプタをいかに設計するかについて規定するための規格を提供するが、その仕様は、入出力アダプタをいかにホスト・システムに接続するかについて規定していない。さらに、その規格は、各機能を単一システムにいかに割り当てることができるかについて規定するに過ぎない。
本発明は、周辺機器相互接続入出力仮想化構成を使用して冗長構成を生成するための、コンピュータ実施方法、データ処理システム、およびコンピュータ・プログラムを提供する。
本発明の一実施形態によれば、冗長システム構成を生成するためのコンピュータ実施方法が提示される。コンピュータ実施方法は、信用できるエンティティによって1組の仮想機能パス許可テーブル(virtual function path authorization table)を生成することであって、エントリが、1つまたは複数のシステム内の1組のアドレス範囲への機能のアクセスを定義し、エントリが、無効な機能間アクセス(crossfunction access)を防止する境界をさらに定義し、仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、生成することと、リクエスタから要求を受信して、要求されたデータを仮想機能から提供することと、1組のアドレス範囲において選択されたアドレス範囲内に受信バッファ(receivebuffer)を生成することと、選択されたアドレス範囲内の受信バッファのアドレスを含む、仮想機能のための仮想機能作業待ち行列エントリ(virtualfunction work queue entry)を生成することと、を含む。さらに、コンピュータ実施方法は、1組の仮想機能パス許可テーブルにおいて、選択されたアドレス範囲の使用を仮想機能が許可されているかどうかを判定することと、仮想機能は許可されているという判定に応答して、要求されたデータを、1つまたは複数のシステム内の各アドレス範囲の受信バッファに書き込むことと、要求されたデータの書き込みに応答して、リクエスタに完了通知を発行することと、を含む。
別の実施形態によれば、冗長システム構成を生成するためのデータ処理システムが提示される。データ処理システムは、バスと、バスに接続されたコンピュータ実行可能命令を含むメモリと、中央プロセッサ・ユニットとを含む。中央プロセッサ・ユニットは、コンピュータ実行可能命令を実行し、コンピュータ実行可能命令は、信用できるエンティティによって1組の仮想機能パス許可テーブルを生成することであって、エントリが、1つまたは複数のシステム内の1組のアドレス範囲への機能のアクセスを定義し、エントリが、無効な機能間アクセスを防止する境界をさらに定義し、仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、生成することと、リクエスタから要求を受信して、要求されたデータを仮想機能から提供することと、1組のアドレス範囲において選択されたアドレス範囲内に受信バッファを生成することと、選択されたアドレス範囲内の受信バッファのアドレスを含む、仮想機能のための仮想機能作業待ち行列エントリを生成することと、1組の仮想機能パス許可テーブルにおいて、選択されたアドレス範囲の使用を仮想機能が許可されているかどうかを判定することと、仮想機能は許可されているという判定に応答して、要求されたデータを、1つまたは複数のシステム内の選択されたアドレス範囲の受信バッファに書き込むことと、要求されたデータの書き込みに応答して、リクエスタに完了通知を発行することと、を実行するようにデータ処理システムに指令する。
別の実施形態によれば、冗長システム構成を生成するためのコンピュータ・プログラム製品が提示される。コンピュータ・プログラム製品は、コンピュータ実行可能命令が保存されたコンピュータ可読媒体を含む。コンピュータ実行可能命令は、信用できるエンティティによって1組の仮想機能パス許可テーブルを生成するためのコンピュータ実行可能命令であって、エントリが、1つまたは複数のシステム内の1組のアドレス範囲への仮想機能のアクセスを定義し、エントリが、無効な機能間アクセスを防止する境界をさらに定義し、仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、コンピュータ実行可能命令と、リクエスタから要求を受信して、要求されたデータを仮想機能から提供するためのコンピュータ実行可能命令と、1組のアドレス範囲において選択されたアドレス範囲内に受信バッファを生成するためのコンピュータ実行可能命令と、を含む。コンピュータ実行可能命令は、選択されたアドレス範囲内の受信バッファのアドレスを含む、仮想機能のための仮想機能作業待ち行列エントリを生成するためのコンピュータ実行可能命令と、1組の仮想機能パス許可テーブルにおいて、選択されたアドレス範囲の使用を仮想機能が許可されているかどうかを判定するためのコンピュータ実行可能命令と、仮想機能は許可されているという判定に応答して、要求されたデータを、1つまたは複数のシステム内の選択されたアドレス範囲の受信バッファに書き込むためのコンピュータ実行可能命令と、要求されたデータの書き込みに応答して、リクエスタに完了通知を発行するためのコンピュータ実行可能命令と、をさらに含む。
周辺機器相互接続エクスプレス規格を実施するシステム・アーキテクチャのブロック図である。 周辺機器相互接続マルチルート入出力仮想化を含む図1のシステムのブロック図である。 周辺機器相互接続マルチルート入出力ファブリックを利用する分散コンピューティング・システムのブロック図である。 本発明の例示的な実施形態が実施できる、多数の論理パーティションを使用するシステム・リソースの仮想化のブロック図である。 例示的な一実施形態による、周辺機器相互接続エクスプレス・マルチルート入出力仮想化対応エンドポイントのブロック図である。 周辺機器相互接続エクスプレス・マルチルート対応周辺機器相互接続エクスプレス・スイッチのブロック図である。 例示的な一実施形態による、仮想機能作業待ち行列エントリのブロック図である。 例示的な一実施形態による、マルチルート・デバイス内の任意の与えられた仮想階層にアクセスするための仮想機能の権限を確認するためのテーブルのブロック図である。 例示的な一実施形態による、マルチルート・デバイスの冗長パス実施のための代替ルート仮想階層を指定するためのテーブルのブロック図である。 例示的な一実施形態による、許可アドレスと仮想機能の関係を指定するためのテーブルのブロック図である。 例示的な一実施形態による、図10のアドレスを使用する仮想機能作業待ち行列エントリのブロック図である。 例示的な一実施形態による、マルチルート・デバイスおよびマルチルート・スイッチを使用する冗長システムの構成のブロック図である。 例示的な一実施形態による、シングルルート・デバイスを使用する冗長論理パーティションの構成のブロック図である。 例示的な一実施形態による、マルチルート・マルチシステム構成のマルチルート・ファブリック構成のプロセスのフローチャートである。 例示的な一実施形態による、パートナ・システムに伝達するために必要とされる仮想階層番号をシステムが決定するためのプロセスのフローチャートである。 例示的な一実施形態による、仮想機能作業待ち行列エントリを設定するためのプロセスのフローチャートである。 例示的な一実施形態による、入出力ファブリック・パス動作ステータスおよび代替パス使用を動的に決定するためのプロセスのフローチャートである。 例示的な一実施形態による、データ・レプリケーションのためのデュアル・パスを使用して書き込み動作を実行するプロセスのフローチャートである。
当業者によって理解されるように、本発明は、システム、方法、またはコンピュータ・プログラム製品として実施することができる。したがって、本発明は、全面的にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)全面的にソフトウェアの実施形態、またはソフトウェア態様とハードウェア態様を組み合わせた実施形態の形態を取ることができ、本明細書では、それらのすべてを一般に、「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する表現である、任意の有形な媒体内に具体化されたコンピュータ・プログラム製品の形態を取ることができる。
1つまたは複数のコンピュータ使用可能またはコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、デバイス、または伝播媒体とすることができるが、それらに限定されない。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)は、1つもしくは複数の電線を有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMもしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CDROM)、光記憶デバイス、インターネットもしくはイントラネットをサポートするような伝送媒体、または磁気記憶デバイスを含む。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、紙または他の媒体の光学的スキャニングによって、プログラムが電子的に獲得でき、次に必要であれば、コンパイル、インタプリテーション、または他の適切な方法で処理でき、次にコンピュータ・メモリ内に保存できるように、プログラムが印刷された紙または別の適切な媒体とすることさえできることに留意されたい。本文書との関連では、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによって使用するため、またはそれらに関連して使用するために、プログラムを格納、保存、伝達、伝播、または転送できる任意の媒体とすることができる。コンピュータ使用可能媒体は、ベースバンド内または搬送波の一部として、コンピュータ可読プログラム・コードが具体化された伝播データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなどを含むが、それらに限定されない、任意の適切な媒体を使用して、伝送することができる。
本発明の動作を実施するためのコンピュータ・プログラム・コードは、Java、Smalltalk、またはC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、スタンドアロン・ソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、一部はユーザのコンピュータ上、一部はリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介して、ユーザのコンピュータに接続することができ、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行うことができる。
本発明は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら以下で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ・プログラム命令によって実施することができることが理解されよう。
これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、またはマシンを生成するための他のプログラマブル・データ処理装置のプロセッサに提供することができ、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施するための手段を生成する。特定の方法で機能するようにコンピュータまたは他のプログラマブル・データ処理装置に指令することができる、これらのコンピュータ・プログラム命令はまた、コンピュータ可読媒体内に保存することができ、コンピュータ可読媒体内に保存された命令は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施する命令手段を含む製造品を生成する。
コンピュータ・プログラム命令はまた、一連の動作ステップがコンピュータまたは他のプログラマブル装置上で実行されて、コンピュータ実施プロセスを生成するように、コンピュータまたは他のプログラマブル・データ処理装置にロードすることができ、コンピュータまたは他のプログラマブル装置上で実行される命令は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施するためのプロセスを提供する。
例示的な実施形態は、入出力仮想化機能から別個のシステムへの多数のパスを可能にする、マルチルート入出力仮想化(MR−IOV)アダプタおよび入出力ファブリック(input/output fabric)の構成のためのメカニズムを提供する。例示的な実施形態は、周辺機器相互接続エクスプレス(PCIe)アダプタまたはエンドポイントに関して説明されるが、本発明は、そのようなものに限定されない。むしろ、例示的な実施形態のメカニズムは、入出力アダプタ内で入出力仮想化をサポートする任意の入出力ファブリックにおいて実施することができる。
さらに、例示的な実施形態は、ハイパーバイザ(hypervisor)が利用される実施に関して説明されるが、本発明は、そのようなものに限定されない。反対に、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの任意の組合せのどれで実施されようと、現在知られている、または今後開発される、ハイパーバイザ以外の他のタイプの仮想化プラットフォームが、本発明の主旨および範囲から逸脱することなく使用できる。
ここで図を、特に図3を参照すると、周辺機器相互接続マルチルート入出力ファブリック(peripheralcomponent interconnect multi-root input output fabric)を利用する分散コンピューティング・システムのブロック図が、本発明の例示的な一実施形態に従って示されている。図3は、システム・ノードを共用入出力アダプタと接続するための周辺機器相互接続ファブリックを追加して、図1および図2の構成を増強する。図3に示されるように、分散コンピューティング・システム300は、周辺機器相互接続マルチルート入出力ファブリック344に結合された複数のルート・ノード(rootnode)360〜363を含み、次に周辺機器相互接続マルチルート入出力ファブリック344は、マルチルート入出力ファブリック構成マネージャ(multi-rootinput output fabric configuration manager)364と、周辺機器相互接続入出力アダプタまたはエンドポイント345〜347に結合される。各ルート・ノード360〜363は、1つまたは複数の対応するルート・コンプレックス(rootcomplex)308、318、328、338、339を含み、それらは、入出力リンク310、320、330、342、343をそれぞれ介して、周辺機器相互接続マルチルート入出力ファブリック344に接続され、さらにルート・ノード(RN)360〜363のメモリ・コントローラ304、314、324、334に接続される。入出力ファブリック344は、リンク351、352、353を介して、入出力アダプタ345、346、347に接続される。入出力アダプタ345、346、347は、周辺機器相互接続エクスプレス入出力アダプタ345におけるような非入出力仮想化対応アダプタ、周辺機器相互接続エクスプレス入出力アダプタ346におけるようなシングルルート(SR)入出力仮想化アダプタ、または周辺機器相互接続エクスプレス入出力アダプタ347におけるようなマルチルート入出力仮想化アダプタとすることができる。
示されるように、ルート・コンプレックス308、318、328、338、339は、ルート・ノード360、361、362、363の一部である。ルート・ノード363に示されるように、ルート・ノード当たり2つ以上のルート・コンプレックスが存在してもよい。ルート・コンプレックスは、中央プロセッサ/メモリを入出力アダプタに接続する入出力階層(input/output hierarchy)のルートである。ルート・コンプレックスは、ホスト・ブリッジ(host bridge)と、ゼロまたは1つ以上のルート・コンプレックス組み込みエンドポイントと、ゼロまたは1つ以上のルート・コンプレックス・イベント・コレクタ(rootcomplex event collector)と、1つまたは複数のルート・ポートを含む。各ルート・ポートは、別個の入出力階層をサポートする。入出力階層は、ルート・コンプレックス、例えば、ルート・コンプレックス308と、ゼロまたは1つ以上の相互接続スイッチまたはブリッジ(スイッチもしくは周辺機器相互接続マルチルート入出力ファブリック344などの周辺機器相互接続エクスプレス・ファブリックを含む)あるいはその両方と、周辺機器相互接続エクスプレス入出力アダプタまたはエンドポイント345〜347などの1つまたは複数のエンドポイントから成ることができる。
ルート・コンプレックスに加えて、各ルート・ノードは、1つまたは複数の中央処理装置301、302、311、312、321、322、331、332と、メモリ303、313、323、333と、メモリ・コントローラ304、314、324、334から成る。メモリ・コントローラ304、314、324、334は、中央処理装置301、302、311、312、321、322、331、332を、バス305、306、307、315、316、317、325、326、327、335、336、337によって、メモリ303、313、323、333と接続し、バス309、319、329、340、341によって、入出力ルート・コンプレックス308、318、328、338、339と接続する。メモリ・コントローラは一般に、メモリのためのコヒーレンシ・トラフィック(coherency traffic)の処理などの機能を実行する。ルート・ノード360、361は、1つのコヒーレンシ・ドメイン(coherencydomain)を形成するために、それぞれのメモリ・コントローラ304、314を介して、接続359で互いに接続することができる。したがって、ルート・ノード360〜361は、単一の対称マルチプロセッシング(SMR:symmetricmulti-processing)システムとして動作することができ、またはルート・ノード362、363におけるように、別個のコヒーレンシ・ドメインを有する独立ノードとすることもできる。
マルチルート入出力ファブリック構成マネージャ364は、ルート・ノードの他の動作から分離されることができ、したがって、入出力ファブリック344に別個に接続されるように示されている。しかし、これはシステムに費用を追加し、したがって、本明細書で開示される実施形態は、1つまたは複数のルート・ノード360、361、362、363の一部として、この機能を含むことができる。構成マネージャ364は、マルチルート入出力ファブリック344のリソースを構成し、リソースをルート・ノード360、361、362、363に割り当てる。
図3に示されたハードウェアが様々であり得ることを当業者であれば理解されよう。例えば、光ディスク・ドライブなどの他の周辺デバイスを、示されたハードウェアに追加して、またはそれと交換して使用することができる。示された例は、本発明に関するアーキテクチャの限定を暗示することを意図していない。
図3の分散コンピューティング・システム300の例を使用して、例示的な実施形態は、入出力仮想化デバイスの単一機能に、多数のシステムにアクセスする能力を提供する。その能力は、冗長パスを有する入出力サブシステムを構成マネージャ364によって構成することを可能にし、入出力仮想化デバイスの単一機能が、多数のシステム間の多数の通信パスを介して多数のシステムにアクセスすることを可能にする。
例示的な実施形態は、入出力(I/O)ファブリック344が、ルート・ノード360、361、362、363のシステムもしくは論理パーティション(LPAR)など、2つ以上のシステムによって共用される状況、各システムまたは論理パーティションが潜在的に、周辺機器相互接続エクスプレス入出力アダプタもしくはエンドポイント345〜347などの入出力アダプタ(IOA)を、他の論理パーティションと共用できる状況、または多数のシステムが、マルチルート入出力仮想化ファブリックの使用によって、入出力アダプタを共用できる状況に対処する。例示的な実施形態は、ルート・ノードの多数のシステムまたは論理パーティションにアクセスすることを周辺機器相互接続エクスプレス入出力アダプタ347などの入出力仮想化アダプタの単一機能に許可する一方で、またアクセスを許可すべきではないシステムへのアクセスを防止するための、メカニズムを規定する。したがって、エンドポイント345〜347とマルチルート・ノードのメモリ303、313、323、333の間に冗長パスを確立する目的で、単一の入出力仮想化機能は、多数の仮想階層(VH:virtual hierarchy)またはパス、およびマルチルート入出力ファブリック344の仮想化機能へのアクセスを許可される。
図4を参照すると、本発明の例示的な実施形態が実施できる多数の論理パーティションを使用するシステム・リソースの仮想化のブロック図が提示されている。論理パーティション化プラットフォーム(logical partitioned platform)400内のハードウェアは、例えば、図3のルート・ノード360、361、362、363内で実施することができ、ルート・ノードに割り当てられた、マルチルート入出力ファブリック344および入出力アダプタ345〜347の部分をさらに含むことができる。
論理パーティション化プラットフォーム400は、パーティション化ハードウェア430と、オペレーティング・システム402、404、406、408と、プラットフォーム・ファームウェア410のパーティション管理を含む。オペレーティング・システム402、404、406、408は、論理パーティション化プラットフォーム400上で同時に動作する、単一のオペレーティング・システムの多数のコピー、また多数の異種のオペレーティング・システムとすることができる。
オペレーティング・システム402、404、406、408は、パーティション403、405、407、409内に配置される。ハイパーバイザ・ソフトウェアまたはファームウェアは、プラットフォーム・ファームウェア410のパーティション管理を実施するために使用できるソフトウェアの一例である。ファームウェアは、電力がなくてもその内容を保持するメモリ・チップ内に、例えば、リード・オンリ・メモリ(ROM)、プログラマブル・リード・オンリ・メモリ(PROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、および不揮発性ランダム・アクセス・メモリ(NVRAM)内に保存された「ソフトウェア」である。
加えて、パーティション403、405、407、409は、パーティション・ファームウェア411、413、415、417も含む。パーティション・ファームウェア411、413、415、417は、初期ブート・ストラップ・コード、例えば、電気電子学会(IEEE)1275規格のオープン・ファームウェア(Open Firmware)、およびランタイム・アブストラクション・ソフトウェア(RTAS:runtime abstractionsoftware)を使用して、実施することができる。パーティション403、405、407、409がインスタンス化される場合、ブート・ストラップ・コードのコピーが、プラットフォーム・ファームウェア410によって、パーティション403、405、407、409にロードされる。その後、制御は、ブート・ストラップ・コードに移され、ブート・ストラップ・コードを用いて、オープン・ファームウェアおよびランタイム・アブストラクション・ソフトウェアをロードする。その後、パーティション・ファームウェア411、413、415、417を実行するために、パーティション403、405、407、409に関連する、または割り当てられたプロセッサが、パーティションのメモリにディスパッチされる。
パーティション化ハードウェア430は、複数のプロセッサ432、434、436、438と、複数のシステム・メモリ・ユニット440、442、444、446と、複数の入出力アダプタ448、450、452、454、456、458、460、462と、ストレージ・ユニット470と、不揮発性ランダム・アクセス・メモリ・ストレージ498を含む。プロセッサ432、434、436、438、メモリ・ユニット440、442、444、446、不揮発性ランダム・アクセス・メモリ・ストレージ498、および入出力アダプタ448、450、452、454、456、458、460、462、またはそれらの部分の各々は、論理パーティション化プラットフォーム400内の多数のパーティションの1つに割り当てることができ、その各々は、オペレーティング・システム402、404、406、408の1つに対応する。
プラットフォーム・ファームウェア410は、論理パーティション化プラットフォーム400のパーティショニングを生成および実施するために、パーティション403、405、407、409のための多数の機能およびサービスを実行する。プラットフォーム・ファームウェア410は、基礎をなすハードウェアと同じファームウェア実施仮想マシンを含むことができる、パーティション管理ファームウェアを含むことができる。したがって、プラットフォーム・ファームウェア410内のパーティション管理ファームウェアは、論理パーティション化プラットフォーム400のハードウェア・リソースを仮想化することによって、独立のオペレーティング・システム・イメージ402、404、406、408の同時実行を可能にする。
サービス・プロセッサ490は、パーティション403、405、407、409におけるプラットフォーム・エラーの処理など、様々なサービスを提供するために使用することができる。これらのサービスは、エラーをベンダに報告するためのサービス・エージェントとしても動作することができる。パーティション403、405、407、409の動作は、ハードウェア管理コンソール480などのハードウェア管理コンソールを介して制御することができる。ハードウェア管理コンソール480は、異なるパーティションへのリソースの再アロケーションを含む様々な機能をシステム管理者がそこから実行できる、別個の分散コンピューティング・システムである。制御され得る動作は、パーティションが動作中であってもなくても、パーティションに割り当てられるコンポーネントに関連したパーティションの構成などを含む。
論理パーティション(LPAR)環境では、1つのパーティション内のリソースまたはプログラムが別のパーティションにおける動作に影響を及ぼすことは許可されない。さらに、有用なこととして、リソースの割り当ては、細かい粒度(fine-grained)とする必要がある。例えば、特定の周辺機器相互接続ホスト・ブリッジ(PHB:peripheralcomponent interconnect host bridge)下のすべての入出力アダプタを同じパーティションに割り当てることは、パーティション間でリソースを動的に移動させる能力を含むシステムの構成可能性を制限するので、しばしば許可されない。
したがって、個々の入出力アダプタまたは入出力アダプタの部分を別個のパーティションに割り当てることができ、同時に、他のパーティションのリソースにアクセスすることなどによって、割り当てられたリソースが他のパーティションに影響を及ぼすことを防止することができるように、いくつかの機能が、入出力アダプタを入出力バスに接続するブリッジ内で必要とされる。
図5を参照すると、周辺機器相互接続エクスプレス・マルチルート入出力仮想化対応エンドポイントのブロック図が提示されている。図5に示されるように、図3のマルチルート周辺機器相互接続エクスプレス入出力アダプタ347などの周辺機器相互接続エクスプレス・マルチルート入出力仮想化エンドポイント500は、周辺機器相互接続エクスプレス・ファブリックの周辺機器相互接続エクスプレス・スイッチなどとの通信がそれを介して実行され得る周辺機器相互接続エクスプレス・ポート501を含む。内部ルーティング502は、構成管理機能503および構成管理機能509、ならびに複数の仮想機能(VF:virtual function)504〜506への通信経路を提供する。構成管理機能503は、仮想機能504〜506とは反対に、物理機能(PF:physicalfunction)とすることができ、構成管理機能509は、基本機能(BF:base function)とすることができる。周辺機器相互接続仕様において使用される用語としての物理「機能」は、単一の構成空間によって表される1組のロジックである。言い換えると、物理「機能」は、例えば、分離不能リソース507において提供され得るような、メモリ内の機能関連構成空間に保存されたデータに基づいて構成可能な回路ロジックである。基本「機能」509についても同様のことが言える。
構成管理機能503は、仮想機能504〜506を構成するために使用することができる。仮想機能は、周辺機器相互接続エクスプレス・マルチルート入出力仮想化エンドポイント500の共用可能リソース・プール508において提供され得る、例えば、リンクなどの1つまたは複数の物理エンドポイント・リソースを、例えば、別の機能と共用する、入出力仮想化対応エンドポイント内の機能である。仮想機能は、ハイパーバイザによるランタイム介入なしに、直接的に、システム・イメージからの入出力およびメモリ動作のためのシンクとすることができ、システム・イメージへのダイレクト・メモリ・アクセス(DMA:direct memory access)、完了、および割り込み動作のソースとすることができる。
マルチルート入出力仮想化エンドポイント500は、例えば、図3のルート・ノード360〜363など、多数のルート・ノード間で共用することもできる。基本機能としての構成管理機能509は、例えば、どのルート・ノードが各物理機能にアクセスするかなど、物理機能の特性を構成するために使用することができる。
周辺機器相互接続エクスプレス・エンドポイントは、周辺機器相互接続エクスプレス・エンドポイントによってサポートされる「機能」に関して、多くの異なるタイプの構成を有することができる。例えば、エンドポイントは、単一の物理機能、多数の独立物理機能をサポートすることができ、または多数の従属物理機能さえもサポートすることができる。ネイティブ入出力仮想化をサポートするエンドポイントでは、エンドポイントによってサポートされる各物理機能は、1つまたは複数の仮想機能に関連付けることができ、仮想機能自体は、他の物理機能に関連付けられた仮想機能に従属することができる。ルート・ノードに割り当てられる入出力仮想化エンドポイントの単位は、物理機能であり、マルチルート入出力仮想化対応エンドポイントは、多数の物理機能を含む。
一実施形態では、仮想機能(VF)−仮想階層(VH)許可テーブル(virtualfunction (VF) to virtual hierarchy (VH) authorization table)510は、図3の構成マネージャ364が、多数の仮想階層へのアクセスを各機能に与えることを可能にする。この態様は後で説明される。やはりさらに説明される仮想機能作業待ち行列511が、仮想機能のために、デバイス・ドライバ・ソフトウェアによって設定され、仮想機能によって実行される動作を指定する。テーブル内の仮想機能作業待ち行列エントリは、要求された特定の動作のために使用する1つまたは複数の仮想階層番号も含む。
図6を参照すると、周辺機器相互接続エクスプレス・マルチルート対応周辺機器相互接続エクスプレス・スイッチのブロック図が提示されている。周辺機器相互接続エクスプレス・スイッチ520は、例えば、図3の周辺機器相互接続マルチルート入出力ファブリック344において、周辺機器相互接続マルチルート入出力仮想化仕様によって規定されるように、使用することができる。スイッチ520は論理的に、ルート・ノードに接続されるポート当たり1つの、多数の仮想プレーン(virtual plane)から成る。例えば、ルート・ノード521は、周辺機器相互接続エクスプレス・リンク524によって、論理周辺機器相互接続−周辺機器相互接続(P2P:peripheralcomponent interconnect to peripheral component interconnect)ブリッジ527に接続され、それは論理的に、周辺機器相互接続−周辺機器相互接続ブリッジ536〜538に対するスイッチに内部的に接続される。同様に、ルート・ノード522は、周辺機器相互接続エクスプレス・リンク525によって、論理周辺機器相互接続−周辺機器相互接続ブリッジ528に接続され、それは論理的に、周辺機器相互接続−周辺機器相互接続ブリッジ530〜532に対するスイッチに内部的に接続され、またルート・ノード523は、周辺機器相互接続エクスプレス・リンク526によって、論理周辺機器相互接続−周辺機器相互接続ブリッジ529に接続され、それは論理的に、周辺機器相互接続−周辺機器相互接続ブリッジ533〜535に対するスイッチに内部的に接続される。
その場合、周辺機器相互接続−周辺機器相互接続ブリッジ530、533、536は、マルチルート周辺機器相互接続エクスプレス・デバイス542のリソースを共用できるように、周辺機器相互接続エクスプレス・マルチルート・リンク539を共用する。同様に、その場合、周辺機器相互接続−周辺機器相互接続ブリッジ531、534、537は、マルチルート周辺機器相互接続エクスプレス・デバイス543のリソースを共用できるように、周辺機器相互接続エクスプレス・マルチルート・リンク540を共用し、その場合、周辺機器相互接続−周辺機器相互接続ブリッジ532、535、538は、マルチルート周辺機器相互接続エクスプレス・デバイス544のリソースを共用できるように、周辺機器相互接続エクスプレス・マルチルート・リンク541を共用する。
スイッチ520を設定するための制御点が、基本機能(BF)545である。この入出力仮想化構成メカニズム、例えば、基本機能545は、マルチルート周辺機器相互接続マネージャ(MR−PCIM:multi-root peripheral component interconnect manager)・プログラムが、スイッチ520内の論理構造を決定することを可能にする。例えば、図6は、各ルート・ノード521〜523が、各周辺機器相互接続エクスプレス・マルチルート・デバイス542〜544の一部にアクセスする、かなり対称な構成を示している。通常のシステムでは、システムを使用するユーザの必要を満たすために、システム管理者は、あまり対称的ではない方法で、入出力を設定することを望むことがある。
基本機能545、509は、マルチルート周辺機器相互接続マネージャ・プログラムによってアクセスされる。このプログラムが存在する場所は、周辺機器相互接続スペシャル・インタレスト・グループ入出力仮想化仕様によって規定されていない。プログラムは、例えば、ルート・ノード521〜523の1つによって示されるような、マルチルート周辺機器相互接続マネージャにもっぱら専用され、ルート・ポート・ノードの1つに接続されるノード内に存在することができ、または別個のプロセッサ、例えば、図4の490のようなサービス・プロセッサが接続される、ベンダ独自のポートを介して提供することができる。マルチルート周辺機器相互接続マネージャがどこで実行されるかに関わらず、主要な要件は、このプログラムが堅牢であり、システム内の他のアプリケーションの動作または動作失敗によって影響され得ないことである。
例示的な実施形態は、図5に示された周辺機器相互接続エクスプレス・マルチルート入出力仮想化エンドポイント500など、2つ以上のシステムにアクセスするための入出力仮想化アダプタの構成のためのメカニズムを提供する。例示的な実施形態のメカニズムは、図6の周辺機器相互接続エクスプレス・スイッチ520など、1つまたは複数の周辺機器相互接続エクスプレス・スイッチを含むことができる入出力ファブリックが、2つ以上のシステム、例えば、図3のルート・ノード362および363によって共用される状況に対処する。
図7を参照すると、例示的な一実施形態による、仮想機能(VF)作業待ち行列エントリのブロック図が提示されている。提供された例は、図5における仮想機能作業待ち行列エントリ511を表している。仮想機能作業待ち行列エントリ601のフィールド605、607は、周辺機器相互接続エクスプレス・ファブリック仮想階層番号を含む。フィールド605、607は、動作のためのダイレクト・メモリ・アクセス・データを、どのシステムに送信すべきか、またはどのシステムから受信するべきかを、仮想機能に指示する。このフィールドは、デバイス・ドライバ・ソフトウェアが、同じデータを多数のシステムに送信することを可能にする。例えば、ネットワーク・アダプタ上で仮想機能ネットワーク接続から受信したパケットは、多数のシステムのシステム・メモリに書き込むことができる。例えば、データがディスクなどの不揮発性ストレージ媒体にコミットされる前にシステムが故障した場合にデータのコピーを維持するために、図3のシステム362、363内のシステム・メモリ323、333に書き込むことができる。冗長システムではデータは安全であるので、冗長性を有することによって、システムは、例えば、データが実際にディスクに書き込まれる前に、データがディスクにコミットされたことを通知することができる。データが物理的にディスクに書き込まれる前に書き込み動作の完了を通知することは、より速い応答、より短い待ち時間を、ディスク書き込み動作のリクエスタに提供する。
仮想機能作業待ち行列エントリ601の他のフィールドは、動作タイプ602と、転送長603と、動作アドレス604、606を含む。動作タイプ602は、どの動作を実行すべきかを仮想機能に指示する。例えば、ネットワーク・アダプタの場合、動作は、受信バッファの設定とすることができる。この場合、受信バッファは、各システムにつき1つの対の、動作アドレスと周辺機器相互接続エクスプレス・ファブリック仮想階層番号のフィールド対を2つ以上使用して、2つ以上のシステムにおいて設定することができる。例えば、604と605、606と607など、これらのフィールドの対は、受信データを送信すべき各システムにつき1つ存在する。この場合、転送長603は、バッファ長となるように設定される。
動作タイプおよびフィールド・タイプは、アダプタによって提供される機能によって様々になり得ることを当業者であれば理解されよう。正しいシステムにデータを送るために、周辺機器相互接続エクスプレス・ファブリック仮想階層番号が、各アドレスに提供される。
図8を参照すると、例示的な一実施形態による、マルチルート・デバイス内の任意の与えられた仮想階層にアクセスするための仮想機能の権限を確認するためのテーブルのブロック図が提示されている。仮想機能−仮想階層許可テーブル610は、図5の仮想機能−仮想階層許可テーブル510の一例である。マルチルート・デバイスでは、アダプタは、異なるシステムによってアクセスされ得る機能間にファイヤウォールの等価物を提供する。図7の周辺機器相互接続エクスプレス・ファブリック仮想階層番号フィールド605、607は、異なるシステムによって制御される異なる機能に通常は割り当てられる仮想階層番号を使用して、ファイヤウォールをトンネリングするためのメカニズムを提供する。図7の周辺機器相互接続エクスプレス・ファブリック仮想階層番号フィールド605、607は、1つのシステム内のデバイス・ドライバ・ソフトウェアによって設定されるので、アダプタ上の許可されたファイヤウォールだけをトンネリングするよう、システムが関連する仮想機能を設定できるように、使用される仮想階層番号が確認されることは重要である。必要な機能は、仮想機能−仮想階層許可テーブル610を介して提供される。アダプタ内の各仮想機能について仮想機能−仮想階層番号許可テーブル(virtual function to virtual hierarchy number authorization table)611、615が存在する。この例では、テーブルは、多数のエントリ612〜614、616〜618を含むことができ、テーブルが適用される仮想機能がアクセスを許可された各仮想階層につき1つのエントリを含むことができる。仮想機能が仮想機能作業待ち行列エントリ601を処理できるようにする前に、仮想機能が仮想階層番号にアクセスする許可を得ていることを確認するために、周辺機器相互接続エクスプレス・ファブリック仮想階層番号フィールド605、607は、適切な仮想機能−仮想階層許可テーブルと照合される。許可されていない場合、仮想機能作業待ち行列エントリ601の処理は許可されず、エラーが、デバイス・ドライバ・ソフトウェアに通知される。仮想機能−仮想階層許可テーブル610は、信用できるソフトウェアによって設定される。例えば、信用できるソフトウェアは、のマルチルート入出力ファブリック構成マネージャまたは図3マルチルート周辺機器相互接続マネージャ364とすることができる。テーブルは、システム内のデバイス・ドライバ・ソフトウェアによって変更することができず、したがって、トンネリング・プロセスの制御を安全にする。これらのテーブルの使用のさらなる説明は後で説明される。
図9を参照すると、例示的な一実施形態による、マルチルート・デバイスの冗長パス実施のための代替ルート仮想階層を指定するためのテーブルのブロック図が提示されている。仮想機能に許可された仮想階層番号のテーブル(authorized virtual hierarchy number for virtual function table)620は、図5の内部ルーティング502内に維持される1次および2次パス・エントリの対応である。仮想機能−仮想階層許可テーブル610において仮想階層番号によって指定されたパスの1つが利用不可能になった場合、冗長かつ堅牢な構成は、動作のために所望されるシステムへの代替パスを使用するための能力を提供する。この場合、仮想機能−仮想階層許可テーブル610の代わりに、仮想機能に許可された仮想階層番号の拡張テーブル620が使用できる。仮想機能に許可された仮想階層番号のテーブル620における相違は、各エントリ621、623、625に対して、動作不能の仮想階層番号の代わりに使用する代替仮想階層番号を指定する代替エントリ622、624、626が存在することである。例えば、エントリ621が仮想階層番号「1」を指定し、エントリ622が仮想階層番号「3」を指定した場合、仮想機能作業待ち行列エントリ601が仮想階層番号「1」を指定し、仮想階層番号「1」が動作不能として検出されたときは、仮想階層番号「1」を用いて利用可能だった同じシステム内の同じシステム・メモリにアクセスするために、仮想階層番号「3」が使用できる。したがって、例えば、同じ動作のための多数のシステムに同じデータを送信することによって、全システム故障を回避する方法が存在するばかりでなく、冗長性を通して入出力ファブリック故障を回避する方法も存在する。仮想階層番号は、パス識別子として使用することができる。
図10を参照すると、例示的な一実施形態による、許可アドレスと仮想機能の関係を指定するためのテーブルのブロック図が示されている。仮想機能−アドレス範囲許可テーブル(virtual function to address range authorization table)628は、許可を必要とする各仮想機能のためのテーブルを含む。各機能について、関連する仮想機能がアクセスを許可されたアドレスの範囲を表すテーブル630、640内のエントリを用いて、1組の許可アドレスが提供される。この例では、第1の仮想機能630のためのテーブルは、1組の関連するアドレスを有する。第1の仮想機能が使用を許可されたアドレス630は、許可アドレス632〜638として列挙される。同様に、最後の仮想機能「VFn」も、テーブル・エントリ640によって示される1組のエントリを有する。仮想機能−アドレス範囲許可テーブル628の機能は、例えば、同じルート・ノードの異なる論理パーティション内のアドレス範囲などのリソースへの仮想機能によるアクセスを許可する点において、図8の仮想機能−仮想階層許可テーブル610の機能と同様である。仮想機能−アドレス範囲許可テーブル628は、仮想階層を使用する代わりにアドレスを用いて、仮想機能−仮想階層許可テーブル610と同様の能力を提供する。
図11を参照すると、例示的な一実施形態による、図10のアドレスを使用する仮想機能(VF)作業待ち行列エントリのブロック図が提示されている。提供された例は、図5の仮想機能作業待ち行列511のさらなる例としての、図7の仮想機能作業待ち行列エントリ601を表している。この例では、仮想機能作業待ち行列エントリ642は、以前のように、動作タイプ644および転送長646を含む多数のフィールドを含む。図7の先の仮想機能作業待ち行列エントリとの相違は、仮想階層番号が存在しないことである。仮想階層番号の代わりに、動作アドレス648から動作アドレス650が見出される。動作アドレスは、データに関連付けられたロケーション、例えば、同じルート・ノードの異なる論理パーティション内のアドレスを指定する。
図12を参照すると、例示的な一実施形態による、マルチルート・デバイスおよびマルチルート・スイッチを使用する冗長システムの構成のブロック図が提示されている。図3の分散コンピューティング・システム300の例を使用して、マルチルート・デバイスと、コンピュータ電子コンプレックス(CEC:computer electronic complex)を使用してマルチルート・デバイス1 727およびマルチルート・デバイス2 728などのコンピュータ電子コンプレックス通信デバイスに接続されるマルチルート・スイッチとを使用するシステム700の構成が定義される。
コンピュータ電子コンプレックス1 701およびコンピュータ電子コンプレックス2 702を含む2つのコンピュータ・システムが示されているが、3ウェイ以上の冗長システムも構成できることは当業者であれば理解されよう。コンピュータ電子コンプレックスは、図3のルート・ノードに対応し、周辺機器相互接続ホスト・ブリッジ(PHB)は、図3のルート・コンプレックスに対応する。
2つのコンピュータ電子コンプレックスは、論理パーティションの組を形成するために、図4におけるように、パーティショニングすることもできる。2つのコンピュータ電子コンプレックスは、システム・メモリ703、704と、各々3つの周辺機器相互接続ホスト・ブリッジ705〜707、708〜710から成る。マルチルート周辺機器相互接続マネージャ711は、図3の構成マネージャ364に対応する。これは冗長性の高いシステムであるので、1次マルチルート周辺機器相互接続マネージャ711の故障、コンピュータ電子コンプレックス1の故障、周辺機器相互接続ホスト・ブリッジ1(PHB1)705の故障、またはマルチルート周辺機器相互接続マネージャ711がマルチルート入出力ファブリック動作を制御することを妨げる他の任意の故障の場合には、1次マルチルート周辺機器相互接続マネージャ711を引き継ぐことができる、バックアップ・マルチルート周辺機器相互接続マネージャ712も存在する。マルチルート周辺機器相互接続マネージャのフェイルオーバ・プロセスは、本発明の範囲を超えている。
マルチルート周辺機器相互接続マネージャ711、712は、周辺機器相互接続ホスト・ブリッジ1(PHB1)705およびマルチルート・スイッチ1 719への周辺機器相互接続エクスプレス・リンク713を介して、また周辺機器相互接続ホスト・ブリッジ6(PHB6)710およびマルチルート・スイッチ2 720への周辺機器相互接続エクスプレス・リンク716を介して、周辺機器相互接続エクスプレス・マルチルート入出力仮想化仕様によって管理仮想階層として定義されるマルチルート・ファブリックの仮想階層0に接続される。他の周辺機器相互接続ホスト・ブリッジは、マルチルート・ファブリックへの1次仮想階層接続および2次仮想階層接続を形成する。具体的には、コンピュータ電子コンプレックス1の1次仮想階層は、仮想階層1であり、コンピュータ電子コンプレックス1は、周辺機器相互接続ホスト・ブリッジ2(PHB2)706、さらにマルチルート・スイッチ1 719への周辺機器相互接続エクスプレス・リンク714を介して、仮想階層1に接続する。コンピュータ電子コンプレックス1の2次仮想階層接続は、周辺機器相互接続ホスト・ブリッジ3(PHB3)707、さらにマルチルート・スイッチ2 720への周辺機器相互接続エクスプレス・リンク718を介して仮想階層3に接続する。同様に、コンピュータ電子コンプレックス2の1次仮想階層は、周辺機器相互接続ホスト・ブリッジ5(PHB5)709、さらにマルチルート・スイッチ2 720への周辺機器相互接続エクスプレス・リンク715を介して仮想階層4に接続する。コンピュータ電子コンプレックス2の2次仮想階層接続は、周辺機器相互接続ホスト・ブリッジ4(PHB4)708、さらにマルチルート・スイッチ1 719への周辺機器相互接続エクスプレス・リンク717を介して仮想階層2に接続する。
「2次」リンクは、必ずしもバックアップ目的だけとは限らず、デバイスがその下に配置されるスイッチに応じて、デバイスとの通信用にも使用される。一般に、デバイスからコンピュータ電子コンプレックスへの最短パスが使用され、それは、動作待ち時間を短縮するために最小数のスイッチを通過するパスである。その場合、多数のスイッチを通過するパスは、バックアップ目的で残して置かれる。周辺機器相互接続エクスプレス・リンク721、722は、代替パスを提供するためにスイッチ間接続を提供する。
各マルチルート・スイッチの下には、2つのマルチルート・デバイスが示されている。マルチルート・デバイス1 727は、接続738によってネットワークに接続し、周辺機器相互接続エクスプレス・リンク723を介してマルチルート・スイッチ1 719に接続するネットワーク・デバイスとして示されている。同様に、マルチルート・デバイス2 728は、接続739によってネットワークに接続し、周辺機器相互接続エクスプレス・リンク726を介してマルチルート・スイッチ2に接続するネットワーク・デバイスとして示されている。
冗長性の理由で、2つのネットワーク・アダプタ接続738、739は、外部ネットワーク・スイッチに接続する可能性が最も高く、両方のデバイスは、同じネットワークにアクセスする。そのようにして、一方のネットワーク・アダプタが故障した場合でも、両方の中央電子コンプレックスは依然として、残りのアダプタを介してネットワークにアクセスする。ネットワーク・アダプタ接続727、728に加えて、2つのディスク・アダプタが、マルチルート・デバイス3 729およびマルチルート・デバイス4 730として存在し、これらのデバイスの両方は、同じ1組のディスク・ドライブ731にアクセスする。マルチルート・デバイス3 729は、周辺機器相互接続エクスプレス・リンク724を介してマルチルート・スイッチ1 719に接続し、マルチルート・デバイス4 730は、周辺機器相互接続エクスプレス・リンク725を介してマルチルート・スイッチ2 720に接続する。
この例では、マルチルート・デバイス1 727は、4つの仮想階層、すなわち、仮想階層1 732、仮想階層2 733、仮想階層3 734、および仮想階層4 735にアクセスする。これらの仮想階層の各々は、通常は別個の周辺機器相互接続エクスプレス機能に関連付けられる。例えば、1つの仮想機能が別の仮想機能の仮想階層にアクセスできないように機能の各々がファイヤウォール737によって分離されることになる仮想機能。ファイヤウォール・トンネル736を仮想階層1 732と仮想階層2 733の間(例えば、マルチルート・デバイス1 727の仮想機能1と仮想機能2の間)に生成して、マルチルート・デバイス1 727が、仮想階層の異なる組に接続された両方のコンピュータ電子コンプレックス内のメモリ703およびメモリ704にダイレクト・メモリ・アクセスによってデータを送ることを可能にすることができる。
マルチルート・デバイス1 727は、図5に示された周辺機器相互接続エクスプレス・マルチルート入出力仮想階層エンドポイント500と論理的に同様である。そのようなものとして、マルチルート・デバイス1 727は、図5および図8の仮想機能−仮想階層許可テーブル510、610と、図7の仮想機能作業待ち行列エントリ601を有する図5の仮想機能作業待ち行列511を含む。マルチルート周辺機器相互接続マネージャ711におけるような信用できるソフトウェアが、仮想機能が仮想階層1 732および仮想階層2 733の両方にアクセスすることを、基本的にファイヤウォール・トンネル736を抜けるトンネルを形成して可能にするように、仮想機能−仮想階層許可テーブルを設定する。
ファイヤウォールを抜けるトンネルの他の実施形態も使用することができる。例えば、1つの仮想機能が、何らかの手段によって別の仮想機能への通信パスを生成し、情報を、データ上で実行する動作とともに、他の仮想機能へ渡す能力が提供できる。他の手段は、ファイヤウォールを抜けるトンネルが信用できるコードによって制御され得るように、説明されたメカニズムのような手段を設定する安全な方法も必要とする。
以下では、ディスクに書き込まれる予定のデータをネットワーク・リンク738から受信する動作について説明する。仮想機能の処理を担当するコンピュータ電子コンプレックス1 701内のデバイス・ドライバが、システム・メモリ703内に受信バッファを生成する。加えて、コンピュータ電子コンプレックス1 701は、例えば、2つのコンピュータ電子コンプレックス間のネットワーク接続を使用することによって、コンピュータ電子コンプレックス2 702内の対応するドライバと通信する。対応するコンピュータ電子コンプレックス2 702のドライバは、システム・メモリ704内に対応する受信バッファをアロケートし、その後、受信バッファのアドレスをコンピュータ電子コンプレックス1 701内のドライバに伝達する。その後、コンピュータ電子コンプレックス1 701内のドライバは、仮想階層1 732を介してコンピュータ電子コンプレックス1 701の受信バッファを、仮想階層2 733を介してコンピュータ電子コンプレックス2 702の受信バッファを指し示す仮想機能作業待ち行列エントリを、マルチルート・デバイス1 727の仮想機能内に設定する。仮想機能によって通信パケットを受信すると、仮想機能は、バッファがどこに配置されているかを識別するために仮想機能作業待ち行列エントリ内に与えられた情報を使用し、その後、仮想機能に対応する図8の仮想機能−仮想階層許可テーブル610を使用して、ファイヤウォールをトンネリングするための仮想機能の権限を検証する。権限が合格すると、マルチルート・デバイス1 727は、次に仮想階層1 732を介してコンピュータ電子コンプレックス1 701のシステム・メモリにダイレクト・メモリ・アクセスによってデータを送り、次に仮想階層2 733を介してコンピュータ電子コンプレックス2 702のシステム・メモリ704にダイレクト・メモリ・アクセスによってデータを送る。これらのダイレクト・メモリ・アクセスの正常完了時に、デバイス・ドライバは、マルチルート・デバイス1 727から割り込みによって通知され、両方のコンピュータ電子コンプレックスに対して正常に完了した動作を検出する。この時点で、データは、コンピュータ電子コンプレックスの一方における故障から安全であり、動作は、正常に完了したと見なすことができる。この時点で、例えば、システム・クラッシュからデータは安全であるので、データがまだディスク上になくても、ディスク書き込み動作のオリジネータは、動作が完了したと通知される。その後、コンピュータ電子コンプレックス1 701内のデバイス・ドライバは、マルチルート・デバイス3 729を介するディスク書き込み動作を待ち行列に入れる。
図12をさらに参照すると、2つのマルチルート・スイッチから成るマルチルート・ファブリックを通る多数のパスが提示されている。例えば、周辺機器相互接続エクスプレス・リンク717の故障が存在する場合、マルチルート・デバイスは、システム・メモリ704に対する書き込みを、上で説明されたように実行することができない。マルチルート・デバイスが、図9に示された冗長テーブルを実装している場合、そのリンクを介するマルチルート・デバイス1 727からコンピュータ電子コンプレックス2 702へのパスが動作可能でないとき、仮想階層2 733の代わりの仮想階層4 735による代替パスが存在することを決定するために、図9に示されたテーブルを使用することができ、データは、リンク723、次にマルチルート・スイッチ1 719、次に周辺機器相互接続エクスプレス・リンク721、722、次にマルチルート・スイッチ2 720、次に周辺機器相互接続エクスプレス・リンク715、次に周辺機器相互接続ホスト・ブリッジ5(PHB5)709を介して、システム・メモリ704まで流れる。
図13を参照すると、例示的な一実施形態による、シングルルート・デバイスのみを使用する冗長論理パーティションの構成のブロック図が提示されている。図4の論理パーティション化プラットフォーム400のさらなる一例として、多数の仮想階層という概念が存在しない構成800が提示されている。別個の仮想階層を有する代わりに、仮想機能にダイレクト・メモリ・アクセス・アドレス範囲を割り当てるという概念が存在する。単一のシステム801は、多数の論理パーティション802〜803から成り、その各々は、1つまたは複数の中央処理装置804〜807を有し、各中央処理装置は、メモリ808〜809を有する。論理パーティションは、1つまたは複数の周辺機器相互接続ホスト・ブリッジ(PHB)810〜811を共用し、シングルルート・デバイス814〜815は、周辺機器相互接続エクスプレス・リンク812〜813を介して、周辺機器相互接続ホスト・ブリッジに接続される。シングルルート・デバイスは、ネットワーク・アダプタとして示されており、デバイスは、リンク816〜817を介してネットワークに接続される。図12におけるように、他方のリンクが故障した場合でも、両方のリンクが同じネットワークにアクセスできるように、2つのネットワーク・リンクが、ネットワーク・スイッチ(図示されず)に接続される。また図12におけるように、仮想機能818〜821は、ファイヤウォール823によって分離され、仮想機能が別の仮想機能の論理パーティション・メモリにアクセスすることを許可するために、ファイヤウォール・トンネル822が生成される。アクセスは、各仮想機能がただ1つだけの論理パーティションのメモリにアクセスすることを要求する、標準的な周辺機器相互接続エクスプレス入出力仮想化仕様とは異なる。
シングルルート・トンネリングを可能にするデータ構造は、図8に示されたマルチルートの場合に必要とされるものに類似している。仮想階層を含むテーブルの代わりに、許可された各仮想階層番号は、許可された周辺機器相互接続エクスプレス・ダイレクト・メモリ・アクセス・アドレス範囲によって置き換えられる。マルチルートの場合のマルチルート周辺機器相互接続マネージャに類似するシングルルート周辺機器相互接続マネージャ(図示されず)は、周辺機器相互接続エクスプレス・ダイレクト・メモリ・アクセス・アドレス範囲をアロケートし、図10の仮想機能−アドレス範囲許可テーブル628を設定する。マルチルートの場合の仮想階層のためのように、明示的に設定されない限り、1つの論理パーティションが別の論理パーティションのメモリにアクセスできないように、論理パーティション内のソフトウェアは、テーブルにアクセスさせてもらえない。図12のマルチルートの場合におけるように、2つの論理パーティションは、受信バッファを設定するために、マルチルートの場合のコンピュータ電子コンプレックスにおいてソフトウェアが行ったのと同じ方法で通信する。図11の仮想機能作業待ち行列エントリ642は、この場合、仮想階層番号を含むが、図11の648のような動作アドレスをパス識別子として使用することができる。
図13には、2つの論理パーティションが示されているが、論理パーティションの3ウェイ以上の冗長組も構成できることは当業者であれば理解されよう。示されるように、仮想機能は、マルチルート周辺機器相互接続デバイス仮想機能およびシングルルート周辺機器相互接続デバイス仮想機能の一方とすることができる。
図14を参照すると、例示的な一実施形態による、マルチルート・マルチシステム構成のマルチルート・ファブリック構成のプロセスのフローチャートが提示されている。構成プロセス900は、図12に示されたような構成を提供する、図3の構成マネージャ364の構成プロセスの一例である。構成プロセス900が開始し(ステップ902)、マルチルート周辺機器相互接続マネージャが、マルチルート・ファブリックを構成する(ステップ904)。マルチルート・ファブリックの構成は、冗長性のための任意の所望の代替ルートを含む、デバイスからルート・コンプレックスまでの正しいルートを生成する。マルチルート周辺機器相互接続マネージャは、仮想階層番号−周辺機器相互接続ホスト・ブリッジ(PHB)相関をルート・コンプレックスから利用可能にする(ステップ906)。マルチルート周辺機器相互接続マネージャは、任意の代替相関を含む仮想機能−仮想階層番号許可テーブルを設定するために、デバイス物理機能のためのデバイス・ドライバを起動し(ステップ908)、その後、構成プロセス900は終了する。
図15を参照すると、例示的な一実施形態による、パートナ・システムに伝達するために必要とされる仮想階層番号をシステムが決定することを可能にするプロセスのフローチャートが提示されている。プロセス1000は、ルート・ノード360およびルート・ノード361によって図12の構成を使用する、または図13の構成ならびに図4の論理パーティション403および論理パーティション405を使用するプロセスの一例である。
プロセス1000が開始し(ステップ1002)、それぞれのパートナおよびパートナに関連付けられた仮想階層番号を発見するために、コンピュータ電子コンプレックスが互いに通信し、または論理パーティションが使用される場合、論理パーティションが互いに通信する(ステップ1004)。コンピュータ電子コンプレックスまたは論理パーティションの各々は、それぞれのコンプレックスまたはパーティションに関連付けられたデバイスを発見し、それぞれの発見デバイスのためのデバイス・ドライバをロードし、それぞれの仮想機能のための仮想機能−仮想階層番号許可テーブルを読む(ステップ1006)。デバイス・ドライバは今では、図7の適切な仮想機能作業待ち行列エントリ601を設定するために必要な仮想階層番号を有している。その後、プロセス1000は終了する(ステップ1008)。
図16を参照すると、例示的な一実施形態による、仮想機能作業待ち行列エントリを設定するためのプロセスのフローチャートが提示されている。プロセス1100は、図12のCEC1 701または図13のLPAR1 802などの中央電子コンプレックスによって、図5の仮想機能作業待ち行列エントリ511を確立するためのプロセスの一例である。プロセス1100が開始し(ステップ902)、マスタ・コンピュータ電子コンプレックスまたは論理パーティションが、システム仮想機能内の仮想機能作業待ち行列エントリを設定する(ステップ1104)。生成されたエントリは、動作が適用可能なすべてのコンピュータ電子コンプレックスまたは論理パーティションに対して仮想階層番号を指定する。マスタ・コンピュータ電子コンプレックスまたは論理パーティションは、特定の動作のためのデバイス・ドライバが存在する場所である。すべてのコンピュータ電子コンプレックスまたは論理パーティションは、同時に実行するマスタ動作を有することができる。すなわち、様々なコンピュータ電子コンプレックスまたは論理パーティション間に作業負荷を分散させるために、1つのコンピュータ電子コンプレックスまたは論理パーティションは、作業負荷の一部を担い、その部分を制御することができ、別のコンピュータ電子コンプレックスまたは論理パーティションは、作業負荷の別の一部を担うことができる。
デバイスは、要求された動作を実行し、動作のための仮想機能作業待ち行列エントリ内の仮想階層番号およびアドレスを使用して、データをすべての適切なコンピュータ電子コンプレックスまたは論理パーティションに送信する(ステップ1106)。その後、プロセス1100は終了する(ステップ1108)。
図17を参照すると、例示的な一実施形態による、入出力ファブリック・パス動作ステータスおよび代替パス使用を動的に決定するためのプロセスのフローチャートが提示されている。構成プロセス1200は、パス利用可能性を決定するための、図12のMRデバイス1 727などのデバイスのプロセスの一例である。構成プロセス1200が開始し(ステップ1202)、デバイスが、システム・メモリへの仮想階層パスの動作ステータスを定期的に決定し、仮想階層パスが利用可能でない場合にはフラグを設定する(ステップ1204)。例えば、デバイスは、ダイレクト・メモリ・アクセスを介してシステム・メモリ内のロケーションを読み、読み取り時に動作タイムアウトなどのエラーを受信した場合、パスを利用不能としてマーク付ける。一般に、デバイスは、1次パスが利用可能である場合、そのパス上で動作を開始し、それ以外の場合、デバイスは、代替パスを使用する(ステップ1206)。その後、プロセス1200は終了する(ステップ1208)。
図18を参照すると、例示的な一実施形態による、データ・レプリケーションのためのデュアル・パスを使用して書き込み動作を実行するプロセスのフローチャートが提示されている。構成プロセス1300は、図12のCEC1 701または図13のLPAR1 802などの中央電子コンプレックスのデバイス・ドライバ部分の一例である。プロセス1300は、デュアル・パス・ディスク書き込み動作の一例であるが、より多くまたは多数のパスも同様に使用することができる。例えば、書き込み動作は、1組のパスを含むことができ、その組は3つ以上のパスを含む。ストレージ・サーバ・ディスク書き込み動作のプロセス1300が開始し(ステップ1302)、デバイス・ドライバが、各中央電子コンプレックスに1つの受信バッファが配置される、2つの通信ネットワーク受信バッファを指し示すための仮想機能作業待ち行列エントリを設定する(ステップ1304)。ディスクに書き込まれるデータが、通信ネットワークを介してホストから受信され、両方の中央電子コンプレックス内のバッファに書き込まれる(ステップ1306)。各受信バッファへの書き込み動作は、同時またはほぼ同時に発生する。ディスク書き込み動作は、データがまだディスクに書き込まれていなくても、完了したものとしてホストに通知される(ステップ1308)。ディスク書き込みの正常完了の後、データは物理的にディスクに書き込まれ、両方の中央電子コンプレックスのメモリから廃棄される(ステップ1310)。その後、プロセス1300は終了する(ステップ1312)。
したがって、例示的な実施形態は、入出力仮想化デバイスの単一の機能が、多数のシステム間の多数のパスを介して多数のシステムにアクセスするための能力を提供する。特に、単一の機能は、冗長通信パスを確立するために、入出力ファブリックの多数の仮想階層へのアクセスを許可されることができる。冗長システムの確立は、データ・インテグリティの理由で多数のシステムの2つ以上のシステムにデータが送信されること、または同じ入出力仮想化アダプタの同じ機能から2つ以上のシステム内のデータにアクセスすることを可能にする。例示的な一実施形態では、許可は、仮想機能−仮想階層許可対応テーブルまたは仮想機能−アドレス範囲許可テーブルの使用を通して確立される。対応は、機能が、リソースに関連付けられた別の仮想機能または仮想階層のリソースを使用するために、仮想機能または仮想階層を分離するファイヤウォールをトンネリングすることを特に許可する。
図のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実施の、アーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、規定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表すことができる。いくつかの代替実施では、ブロック内で述べられた機能は、図内で述べられた順序とは異なる順序で発生し得ることにも留意されたい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されることがあり、またはブロックは、含まれる機能に応じて、時には逆の順序で実行されることもある。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する専用ハードウェア・ベースのシステムによって、または専用ハードウェアおよびコンピュータ・プログラム命令の組合せによって実施できることにも留意されたい。
添付の特許請求の範囲におけるすべての手段またはステップおよび機能要素に対応する構造、材料、動作、および均等物は、具体的に特許請求されるように他の特許請求要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。本発明の説明は、例示および説明の目的で提示されたものであり、網羅的であること、または開示された形態の本発明に限定することは意図していない。本発明の範囲および主旨から逸脱しない多くの修正および変形が、当業者には明らかであろう。本発明の原理および実際の応用を最もよく説明し、企図された特定の使用に適した様々な修正を有する様々な実施形態のために当業者が本発明を理解できるように、実施形態が選択され、説明された。
本発明は、全面的にハードウェアの実施形態、全面的にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素の両方を含む実施形態の形態を取ることができる。好ましい一実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、それらに限定されない、ソフトウェアで実施される。
さらに、本発明は、コンピュータもしくは任意の命令実行システムによって使用される、またはそれらに関連して使用されるプログラム・コードを提供するコンピュータ使用可能またはコンピュータ可読媒体から取得可能なコンピュータ・プログラム製品の形態を取ることができる。この説明のため、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによって使用される、またはそれらに関連して使用されるプログラムを含み、保存し、伝達し、伝播し、または転送することができる任意の有形な装置とすることができる。
媒体は、電子、磁気、光、電磁気、赤外線、または半導体システム(または装置もしくはデバイス)、あるいは伝播媒体とすることができる。コンピュータ可読媒体の例は、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−リード・オンリ・メモリ(CD−ROM)、コンパクト・ディスク−リード/ライト(CD−R/W)、およびDVDを含む。
プログラム・コードの保存または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ要素に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に利用される局所メモリ、大容量記憶装置、および実行中に大容量記憶装置からコードを取り出さなければならない回数を減らすために、少なくとも一部のプログラム・コードの一時記憶を提供するキャッシュ・メモリを含むことができる。
(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、それらに限定されない)入出力すなわちI/Oデバイスは、直接的に、または介在するI/Oコントローラを介してシステムに結合することができる。
データ処理システムが、介在する私設ネットワークまたは公共ネットワークを介して、他のデータ処理システムまたはリモート・プリンタもしくはストレージ・デバイスに結合できるように、ネットワーク・アダプタも、システムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
本発明の説明は、例示および説明の目的で提示されたものであり、網羅的であること、または開示された形態の本発明に限定することは意図していない。多くの修正および変形が、当業者には明らかであろう。本発明の原理および実際の応用を最もよく説明し、企図された特定の使用に適した様々な修正を有する様々な実施形態のために当業者が本発明を理解できるように、実施形態が選択され、説明された。

Claims (9)

  1. 信用できるエンティティによって1組の仮想機能パス許可テーブルを生成することであって、エントリが、1つまたは複数のシステム内の1組のアドレス範囲への仮想機能のアクセスを定義し、前記エントリが、無効な機能間アクセスを防止する境界をさらに定義し、前記仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、前記生成することと、
    リクエスタから要求を受信して、要求されたデータを前記仮想機能から提供することと、
    前記1組のアドレス範囲において選択されたアドレス範囲内に受信バッファを生成することと、
    前記選択されたアドレス範囲内の前記受信バッファのアドレスを含む、前記仮想機能のための仮想機能作業待ち行列エントリを生成することと、
    前記1組の仮想機能パス許可テーブルにおいて、前記選択されたアドレス範囲の使用を前記仮想機能が許可されているかどうかを判定することと、
    前記仮想機能は許可されているという判定に応答して、前記要求されたデータを、前記1つまたは複数のシステム内の前記選択されたアドレス範囲の前記受信バッファに書き込むことと、
    前記要求されたデータの書き込みに応答して、前記リクエスタに完了通知を発行することと、
    を含む、冗長システム構成を生成するためのコンピュータ実施方法。
  2. 前記信用できるエンティティによって生成された前記1組の仮想機能パス許可テーブル内のエントリの存在が、1次パスおよび対応する2次パスによる前記1組のシステム内のシステムへの機能のアクセスを許可する、請求項1に記載のコンピュータ実施方法。
  3. 前記信用できるエンティティによって生成された前記1組の仮想機能パス許可テーブル内のエントリの非存在が、1次パスおよび対応する2次パスによる前記1組のシステム内のシステムへの機能のアクセスを防止する、請求項1に記載のコンピュータ実施方法。
  4. 冗長システム構成を生成するためのデータ処理システムであって、
    バスと、
    前記バスに接続されたコンピュータ実行可能命令を含むメモリと、
    前記コンピュータ実行可能命令を実行する中央プロセッサ・ユニットであって、前記コンピュータ実行可能命令が、
    信用できるエンティティによって1組の仮想機能パス許可テーブルを生成することであって、エントリが、1つまたは複数のシステム内の1組のアドレス範囲への仮想機能のアクセスを定義し、前記エントリが、無効な機能間アクセスを防止する境界をさらに定義し、前記仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、前記生成することと、
    リクエスタから要求を受信して、要求されたデータを前記仮想機能から提供することと、
    前記1組のアドレス範囲において選択されたアドレス範囲内に受信バッファを生成することと、
    前記選択されたアドレス範囲内の前記受信バッファのアドレスを含む、前記仮想機能のための仮想機能作業待ち行列エントリを生成することと、
    前記1組の仮想機能パス許可テーブルにおいて、前記選択されたアドレス範囲の使用を前記仮想機能が許可されているかどうかを判定することと、
    前記仮想機能は許可されているという判定に応答して、前記要求されたデータを、前記1つまたは複数のシステム内の前記選択されたアドレス範囲の前記受信バッファに書き込むことと、
    前記要求されたデータの書き込みに応答して、前記リクエスタに完了通知を発行することと、
    を実行するように前記データ処理システムに指令する、前記中央プロセッサ・ユニットと、
    を備えるデータ処理システム。
  5. 前記1組の仮想機能パス許可テーブルが、各仮想機能およびアドレス範囲間の1組のパスを規定する複数のエントリを含み、1次エントリが、前記仮想機能とアドレス範囲の間の1次パスを規定し、各2次エントリが、前記仮想機能と前記アドレス範囲の間の代替パスを規定する、請求項4に記載のデータ処理システム。
  6. 前記1組の仮想機能パス許可テーブルが、各仮想機能と1組の仮想階層の間の対応を含む、請求項4に記載のデータ処理システム。
  7. 前記1組の仮想機能パス許可テーブルが、各仮想機能と1組の論理パーティション内の1組のアドレス範囲の間の対応を含む、請求項4に記載のデータ処理システム。
  8. 前記1次パスが、優先パスであり、前記優先パスが利用不可能であることに応答して、前記代替パスの1つを使用する、請求項5に記載のデータ処理システム。
  9. コンピュータに、
    信用できるエンティティによって1組の仮想機能パス許可テーブルを生成するステップであって、各エントリが、1つまたは複数のシステム内の1組のアドレス範囲への仮想機能のアクセスを定義し、前記エントリが、無効な機能間アクセスを防止する境界をさらに定義し、前記仮想機能が、シングルルートまたはマルチルート周辺機器相互接続デバイスによって実行される、前記生成するステップと、
    リクエスタから要求を受信して、要求されたデータを前記仮想機能から提供するステップと、
    前記1組のアドレス範囲において選択されたアドレス範囲内に受信バッファを生成するステップと、
    前記選択されたアドレス範囲内の前記受信バッファのアドレスを含む、前記仮想機能のための仮想機能作業待ち行列エントリを生成するステップと、
    前記1組の仮想機能パス許可テーブルにおいて、前記選択されたアドレス範囲の使用を前記仮想機能が許可されているかどうかを判定するステップと、
    前記仮想機能は許可されているという判定に応答して、前記要求されたデータを、前記1つまたは複数のシステム内の前記選択されたアドレス範囲の前記受信バッファに書き込むステップと、
    前記要求されたデータの書き込みに応答して、前記リクエスタに完了通知を発行するステップと、
    を実行させる、冗長システム構成を生成するためのコンピュータ・プログラム。
JP2009246376A 2008-12-11 2009-10-27 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用 Expired - Fee Related JP5315209B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/332,957 US8346997B2 (en) 2008-12-11 2008-12-11 Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
US12/332957 2008-12-11

Publications (2)

Publication Number Publication Date
JP2010140471A true JP2010140471A (ja) 2010-06-24
JP5315209B2 JP5315209B2 (ja) 2013-10-16

Family

ID=42241910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009246376A Expired - Fee Related JP5315209B2 (ja) 2008-12-11 2009-10-27 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用

Country Status (3)

Country Link
US (1) US8346997B2 (ja)
JP (1) JP5315209B2 (ja)
KR (1) KR101107408B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091494A (ja) * 2014-10-05 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド エミュレートされたエンドポイントコンフィグレーション

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321926B1 (en) * 2008-12-02 2012-11-27 Lockheed Martin Corporation System and method of protecting a system that includes unprotected computer devices
US20120005392A1 (en) * 2009-01-23 2012-01-05 Hitachi, Ltd. Information processing system
JP5533867B2 (ja) * 2009-07-06 2014-06-25 日本電気株式会社 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム
US8327055B2 (en) * 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
US8055934B1 (en) * 2010-06-22 2011-11-08 International Business Machines Corporation Error routing in a multi-root communication fabric
US8677176B2 (en) * 2010-12-03 2014-03-18 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8645746B2 (en) 2010-12-03 2014-02-04 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
WO2012117515A1 (ja) * 2011-03-01 2012-09-07 株式会社日立製作所 計算機システム、管理システム及びデータ管理方法
US9772858B2 (en) * 2011-04-21 2017-09-26 Ineda Systems Inc. Multi-root peripheral component interconnect manager
US9626207B2 (en) 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9311127B2 (en) 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9278595B2 (en) * 2011-12-21 2016-03-08 Honda Motor Co., Ltd. Suspension arm mounting structure
US20130227190A1 (en) * 2012-02-27 2013-08-29 Raytheon Company High Data-Rate Processing System
US9740518B2 (en) 2012-09-12 2017-08-22 Nxp Usa, Inc. Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines
US9904802B2 (en) 2012-11-23 2018-02-27 Nxp Usa, Inc. System on chip
US9078577B2 (en) 2012-12-06 2015-07-14 Massachusetts Institute Of Technology Circuit for heartbeat detection and beat timing extraction
US9288163B2 (en) * 2013-03-15 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Low-latency packet receive method for networking devices
KR101695012B1 (ko) * 2013-06-04 2017-01-10 한국전자통신연구원 동적 노드 서비스 제공 방법 및 그 장치
US20150113314A1 (en) * 2013-07-11 2015-04-23 Brian J. Bulkowski Method and system of implementing a distributed database with peripheral component interconnect express switch
US9781120B2 (en) 2013-07-18 2017-10-03 Nxp Usa, Inc. System on chip and method therefor
US9454394B2 (en) 2013-11-22 2016-09-27 Red Hat Israel, Ltd. Hypervisor dynamically assigned input/output resources for virtual devices
US9690719B2 (en) 2014-09-11 2017-06-27 Nxp Usa, Inc. Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
US9875208B2 (en) 2014-10-03 2018-01-23 Futurewei Technologies, Inc. Method to use PCIe device resources by using unmodified PCIe device drivers on CPUs in a PCIe fabric with commodity PCI switches
KR102336443B1 (ko) 2015-02-04 2021-12-08 삼성전자주식회사 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
US10157160B2 (en) 2015-06-04 2018-12-18 Intel Corporation Handling a partition reset in a multi-root system
US9990327B2 (en) * 2015-06-04 2018-06-05 Intel Corporation Providing multiple roots in a semiconductor device
US10621125B2 (en) * 2016-06-28 2020-04-14 Nec Corporation Identifier-based packet request processing
CN114490222B (zh) * 2022-02-14 2022-11-15 无锡众星微系统技术有限公司 一种PCIe P2P系统测试启动方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088698A1 (en) * 2001-11-06 2003-05-08 Inderpreet Singh VPN failure recovery
JP2004013899A (ja) * 2002-06-03 2004-01-15 Internatl Business Mach Corp <Ibm> トラステッド・コンピューティング・プラットフォーム・システムの記憶装置に格納されたデータへのアクセス制御
US20050281191A1 (en) * 2004-06-17 2005-12-22 Mcgee Michael S Monitoring path connectivity between teamed network resources of a computer system and a core network
JP2008009980A (ja) * 2006-06-27 2008-01-17 Internatl Business Mach Corp <Ibm> 入出力(i/o)ファブリック内のキューをクリアする方法、i/oファブリック・エラーを処理する方法及びコンピュータ・プログラム製品(エラー回復のためにi/oファブリックのロックアップ状態を検出しクリアするためのメカニズム)
JP2008065561A (ja) * 2006-09-06 2008-03-21 Hitachi Ltd ストレージシステムおよびストレージシステムの制御方法
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
JP2008171413A (ja) * 2006-12-19 2008-07-24 Internatl Business Mach Corp <Ibm> データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
US20090094403A1 (en) * 2007-10-05 2009-04-09 Yoshihito Nakagawa Storage system and virtualization method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4706081A (en) 1984-12-14 1987-11-10 Vitalink Communications Corporation Method and apparatus for bridging local area networks
JPH03218543A (ja) 1990-01-24 1991-09-26 Sony Corp プロセッサ
US6108715A (en) * 1994-12-13 2000-08-22 Microsoft Corporation Method and system for invoking remote procedure calls
US7068624B1 (en) * 2000-02-25 2006-06-27 Cisco Technology, Inc. Wireless router and method for processing traffic in a wireless communications network
US6671819B1 (en) * 2000-04-06 2003-12-30 Bbnt Solutions Llc System and methods routing packets on alterate paths
US20020165962A1 (en) * 2001-02-28 2002-11-07 Alvarez Mario F. Embedded controller architecture for a modular optical network, and methods and apparatus therefor
US7194662B2 (en) * 2003-02-28 2007-03-20 International Business Machines Corporation Method, apparatus and program storage device for providing data path optimization
US7107382B2 (en) * 2003-04-03 2006-09-12 Emulex Design & Manufacturing Corporation Virtual peripheral component interconnect multiple-function device
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7646708B2 (en) * 2005-08-01 2010-01-12 Hewlett-Packard Development Company, L.P. Network resource teaming combining receive load-balancing with redundant network connections
US7363404B2 (en) 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
US7835378B2 (en) 2006-02-02 2010-11-16 Cisco Technology, Inc. Root node redundancy for multipoint-to-multipoint transport trees
US8072879B2 (en) * 2006-02-03 2011-12-06 Cisco Technology, Inc. Technique for determining whether to reestablish fast rerouted primary tunnels based on backup tunnel path quality feedback
US7484029B2 (en) 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US7865654B2 (en) 2006-02-28 2011-01-04 Emulex Design And Manufacturing Corporation Programmable bridge header structures
US7984454B2 (en) 2006-12-19 2011-07-19 International Business Machines Corporation Migration of single root stateless virtual functions
US20080313632A1 (en) * 2007-06-13 2008-12-18 Apurva Kumar Methods, devices, and products for providing access to system-administration functions of a computer or related resources

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088698A1 (en) * 2001-11-06 2003-05-08 Inderpreet Singh VPN failure recovery
JP2004013899A (ja) * 2002-06-03 2004-01-15 Internatl Business Mach Corp <Ibm> トラステッド・コンピューティング・プラットフォーム・システムの記憶装置に格納されたデータへのアクセス制御
US20050281191A1 (en) * 2004-06-17 2005-12-22 Mcgee Michael S Monitoring path connectivity between teamed network resources of a computer system and a core network
US7464218B2 (en) * 2004-08-31 2008-12-09 Seagate Technology Llc Method for improving data throughput for a data storage device
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
JP2008009980A (ja) * 2006-06-27 2008-01-17 Internatl Business Mach Corp <Ibm> 入出力(i/o)ファブリック内のキューをクリアする方法、i/oファブリック・エラーを処理する方法及びコンピュータ・プログラム製品(エラー回復のためにi/oファブリックのロックアップ状態を検出しクリアするためのメカニズム)
JP2008065561A (ja) * 2006-09-06 2008-03-21 Hitachi Ltd ストレージシステムおよびストレージシステムの制御方法
JP2008171413A (ja) * 2006-12-19 2008-07-24 Internatl Business Mach Corp <Ibm> データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US20090094403A1 (en) * 2007-10-05 2009-04-09 Yoshihito Nakagawa Storage system and virtualization method
JP2009093316A (ja) * 2007-10-05 2009-04-30 Hitachi Ltd ストレージシステム及び仮想化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019091494A (ja) * 2014-10-05 2019-06-13 アマゾン テクノロジーズ インコーポレイテッド エミュレートされたエンドポイントコンフィグレーション
US11321247B2 (en) 2014-10-05 2022-05-03 Amazon Technologies, Inc. Emulated endpoint configuration
US11886355B2 (en) 2014-10-05 2024-01-30 Amazon Technologies, Inc. Emulated endpoint configuration

Also Published As

Publication number Publication date
US8346997B2 (en) 2013-01-01
US20100153592A1 (en) 2010-06-17
JP5315209B2 (ja) 2013-10-16
KR20100067601A (ko) 2010-06-21
KR101107408B1 (ko) 2012-01-19

Similar Documents

Publication Publication Date Title
JP5315209B2 (ja) 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US7363404B2 (en) Creation and management of destination ID routing structures in multi-host PCI topologies
US8103810B2 (en) Native and non-native I/O virtualization in a single adapter
US8144582B2 (en) Differentiating blade destination and traffic types in a multi-root PCIe environment
US7913024B2 (en) Differentiating traffic types in a multi-root PCI express environment
US7907604B2 (en) Creation and management of routing table for PCI bus address based routing with integrated DID
US7430630B2 (en) Routing mechanism in PCI multi-host topologies using destination ID field
US7707465B2 (en) Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US7571273B2 (en) Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches
US8930507B2 (en) Physical memory shared among logical partitions in a VLAN
US7492723B2 (en) Mechanism to virtualize all address spaces in shared I/O fabrics
US20070136458A1 (en) Creation and management of ATPT in switches of multi-host PCI topologies
US20110167189A1 (en) Storage apparatus and its data transfer method
US20120215941A1 (en) Accessing a configuration space of a virtual function
CN115203095A (zh) PCIe装置及其操作方法
US20180011807A1 (en) Low latency efficient sharing of resources in multi-server ecosystems
US11003618B1 (en) Out-of-band interconnect control and isolation
Tu et al. Seamless fail-over for PCIe switched networks
KR102568909B1 (ko) PCIe 펑션 및 그 동작 방법
Chencinski et al. Advances in the IBM z13 I/O function and capability
US20230318606A1 (en) Interface device and method of operating the same
KR20230152394A (ko) PCIe 장치 및 이의 동작 방법
WO2009113571A1 (ja) 複数の基盤ソフトウェアを動作可能な情報処理装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130305

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130305

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130620

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130708

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees