以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての変換装置10の機能ブロック構成を図1に示す。図1において、変換装置10は、アウトバウンド変換部11と、インバウンド変換部12とを有する。変換装置10は、ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続される。
ここで、変換装置10のハードウェア構成の一例を図2に示す。図2において、変換装置10は、上流ポート101と、下流ポート102と、ブリッジ回路103と、変換回路104とを含んで構成される。ブリッジ回路103は、上流ポート101または下流ポート102から入力されるパケットを他方のポートから出力するか否かの制御を行う集積回路である。また、変換回路104は、変換装置10の各機能ブロックを実現する集積回路である。なお、変換装置10を構成するハードウェア構成は、上述の構成に限定されない。
次に、変換装置10の各機能ブロックの詳細について説明する。
アウトバウンド変換部11は、ホスト装置から入力される入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報を第2識別情報に変換する。そして、アウトバウンド変換部11は、変換した第2識別情報を、当該パケットに含めて入出力スイッチに出力する。なお、第2識別情報を含める位置は、当該パケットにおける宛先の識別子として入出力インタフェースの仕様に基づく識別情報の位置である。
ここで、入出力インタフェースとは、入出力スイッチおよび入出力デバイスが準拠するインタフェースを指すものとする。以下、入出力インタフェースの仕様のことを、単に「仕様」とも記載する。
また、第1識別情報とは、入出力デバイス宛のパケットにおいて、宛先の識別子として仕様に基づく識別情報を構成する各ビットと、n個の追加ビット(nは1以上の整数)とからなる情報である。例えば、n個の追加ビットは、宛先の識別子として仕様に基づく識別情報の下位に連続するn個のビットであってもよいが、その位置は限定されない。ただし、n個の追加ビットは、仕様に基づくパケットのヘッダにおいて使用されないビットであることが望ましい。
また、第2識別情報は、仕様に基づく識別情報と同一ビット幅の情報である。アウトバウンド変換部11は、第1識別情報から、第1識別情報に含まれていたn個の追加ビットの情報を含むよう、第2識別情報を生成する。
例えば、アウトバウンド変換部は、第1識別情報の上位nビットを破棄し、n個の追加ビットを下位nビットとして含むよう、第2識別情報を構成してもよい。
具体的には、第1識別情報に含まれる追加ビットが、前述のように、宛先の識別子として仕様に基づく識別情報の下位に連続するnビットであるとする。この場合、アウトバウンド変換部11は、パケットから第1識別情報を取り出してnビット左論理シフトを行ったものを、取り出した第1識別情報の位置に書き戻せばよい。
インバウンド変換部12は、入出力スイッチから入力されるホスト装置宛のパケットにおいて、送信元の入出力デバイスの識別子として含まれる第2識別情報を、元の第1識別情報に変換する。そして、インバウンド変換部12は、変換した第1識別情報を、当該パケットに含めてホスト装置に出力する。なお、第1識別情報を含める位置は、当該パケットにおいて送信元の識別子として仕様に基づく識別情報の位置およびn個の追加ビットの位置である。
例えば、インバウンド変換部は、アウトバウンド変換部11により破棄された上位nビットを第2識別情報の上位に追加することにより、第1識別情報を構成してもよい。
ここで、変換装置10より下流に接続される各デバイスに対して付与される第1識別情報の少なくとも上位nビットが同一であることが想定されるとする。この場合、インバウンド変換部12は、そのような上位nビットを記憶しておき、変換の際に用いればよい。
具体的には、第1識別情報に含まれる追加ビットが、送信元の識別子として仕様に基づく識別情報の下位に連続するnビットであるとする。この場合、インバウンド変換部12は、パケットから第2識別情報およびその下位に連続するnビットを取り出して、nビット右論理シフトを行う。そして、インバウンド変換部12は、右論理シフトの結果と、記憶している上位nビットとの論理和をとったものを、取り出した第2識別情報の位置およびその下位に連続するnビットの位置に書き戻せばよい。
以上のように構成された変換装置10の動作について、図面を参照して説明する。
まず、入出力デバイス宛のパケットを転送する動作を図3に示す。図3において、まず、アウトバウンド変換部11は、入出力デバイス宛のパケットをホスト装置から受信する(ステップA1)。
次に、アウトバウンド変換部11は、受信したパケットから、宛先の識別子としての第1識別情報を取り出す(ステップA2)。
次に、アウトバウンド変換部11は、取り出した第1識別情報に基づいて、n個の追加ビットの情報を含むよう、仕様に基づく識別情報と同一ビット幅の第2識別情報を生成する(ステップA3)。
次に、アウトバウンド変換部11は、生成した第2識別情報を、パケットにおいて宛先の識別子として仕様に基づく識別情報の位置に含める(ステップA4)。
そして、アウトバウンド変換部11は、第2識別情報を含むパケットを、入出力スイッチに出力する(ステップA5)。
以上で、変換装置10は、入出力デバイス宛のパケットを転送する動作を終了する。
次に、ホスト装置宛のパケットを転送する動作を図4に示す。図4において、まず、インバウンド変換部12は、ホスト装置宛のパケットを入出力スイッチから受信する(ステップB1)。
次に、インバウンド変換部12は、受信したパケットから、送信元の識別子としての第2識別情報を取り出す(ステップB2)。
次に、インバウンド変換部12は、取り出した第2識別情報に基づいて、元の第1識別情報を生成する(ステップB3)。
次に、インバウンド変換部12は、生成した第1識別情報を、パケットにおける送信元の識別子として仕様に基づく識別情報の位置およびn個の追加ビットの位置に含める(ステップB4)。
そして、インバウンド変換部12は、第1識別情報を含むパケットを、ホスト装置に出力する(ステップB5)。
以上で、変換装置10は、ホスト装置宛のパケットを転送する動作を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての変換装置は、導入コストを抑えながら、情報処理システムに接続可能な入出力デバイスの個数を増加させることができる。
その理由について説明する。本実施の形態の変換装置は、ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続される。そして、ホスト装置から変換装置に入力される入出力デバイス宛のパケットには、宛先の識別子として第1識別情報が含まれる。第1識別情報は、入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビットからなる。そして、アウトバウンド変換部が、第1識別情報を、追加ビットの情報を含むよう、仕様に基づく識別情報と同一ビット幅の第2識別情報に変換する。そして、アウトバウンド変換部が、変換した第2識別情報を、パケットにおける宛先の識別子として仕様に基づく識別情報の位置に含めて、入出力スイッチに出力するからである。
また、インバウンド変換部が、入出力スイッチから入力されるホスト装置宛のパケットにおいて、送信元の入出力デバイスの識別子として含まれる第2識別情報を元の第1識別情報に変換する。そして、インバウンド変換部が、変換した第1識別情報を、パケットにおける送信元の識別子として仕様に基づく識別情報の位置および追加ビットの位置に含めて、ホスト装置に出力するからである。
ここで、第2識別情報は、第1識別情報よりビット幅が短いため、第1識別情報に含まれていた一部の情報が失われていることになる。換言すると、異なる第1識別情報から同一の第2識別情報が生成される可能性がある。しかしながら、アウトバウンド変換部は、追加ビットの情報を含むよう第2識別情報を生成する。そのため、変換装置の下流では、少なくとも追加ビットの情報を用いて入出力デバイスが識別される。このとき、情報処理システムに複数の変換装置が含まれるとする。この場合、ある変換装置の下流において、他の変換装置の下流で用いられる第2識別情報と同一の第2識別情報が用いられるとしても、ホスト装置から変換装置までの転送経路が正しければ、パケットは正しい宛先に転送される。そして、このように構成した場合、ホスト装置は、仕様に基づく識別情報より高ビット幅の第1識別情報を用いて入出力デバイスを識別できる。その結果、本実施の形態は、情報処理システムにおいて接続可能な入出力デバイスの個数を増加させることができる。
しかも、本実施の形態では、入出力スイッチおよび入出力デバイスは、自装置の識別情報として、仕様に基づく識別情報と同等の第2識別情報を用いて動作すればよい。そのため、入出力スイッチおよび入出力デバイスとしては、一般的な入出力スイッチおよび入出力デバイスを適用可能である。したがって、本実施の形態は、本実施の形態の変換装置をホスト装置および入出力スイッチの間に適用すればよく、導入コストを抑えることができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。本発明の第2の実施の形態では、本発明の第1の実施の形態としての変換装置を用いて入出力デバイスが接続されるホスト装置の一例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としての構成を図5に示す。図5において、ホスト装置20は、デバイス初期化部21と、デバイスアクセス部22とを有する。また、ホスト装置20は、本発明の第1の実施の形態としての変換装置10に接続される。
ここで、ホスト装置20のハードウェア構成の一例を図6に示す。図6において、ホスト装置20は、プロセッサ201と、メモリ202と、入出力インタフェース203とを含んで構成される。プロセッサ201は、メモリ202に格納されたプログラムを読み込んで実行することにより、入出力インタフェース203を介して入出力デバイスとの通信を行う。入出力インタフェース203は、変換装置10に接続し、入出力デバイスとの通信を行うインタフェースである。この場合、ホスト装置20の各機能ブロックは、メモリ202に記憶されたプログラムを読み込んで実行するプロセッサ201によって構成される。
次に、ホスト装置20の機能の詳細について説明する。
デバイス初期化部21は、変換装置10に接続される入出力スイッチを介して自装置に接続される入出力デバイスに対して、第1識別情報を付与する。
デバイスアクセス部22は、入出力デバイスに対して、第1識別情報を用いてアクセスする。
なお、これらの機能ブロックは、メモリ202に記憶されたファームウェアやオペレーティングシステムが、プロセッサ201によって読み込まれて実行されることにより実現される。
以上のように構成されたホスト装置20の動作について、図7を参照して説明する。
図7において、まず、デバイス初期化部21は、変換装置10に接続される入出力スイッチを介して自装置に接続される入出力デバイスに対して、第1識別情報を付与する(ステップC1)。
以降、デバイスアクセス部22は、自装置に接続される入出力デバイスに対して、第1識別情報を用いてアクセスする(ステップC2)。
以上で、ホスト装置20の動作の説明を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本実施の形態のホスト装置は、導入コストを抑えながら、自装置が含まれる情報処理システムに接続可能な入出力デバイスの個数を増加させることができる。その理由について説明する。本実施の形態は、本発明の第1の実施の形態としての変換装置に接続される。そして、デバイス初期化部が、変換装置に接続される入出力スイッチを介して自装置に接続される入出力デバイスに対して、第1識別情報を付与する。そして、デバイスアクセス部が、入出力デバイスに対して、第1識別情報を用いてアクセスするからである。
これにより、本実施の形態のホスト装置は、仕様に基づく識別情報より高ビット幅の第1識別情報を用いて、入出力デバイスを識別できる。その結果、情報処理システムに接続可能な入出力デバイスの個数が増加する。
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。本発明の第3の実施の形態では、本発明の第1および第2の実施の形態を含む情報処理システムについて説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1〜第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第3の実施の形態としての情報処理システム3の機能ブロック構成を図8に示す。図8において、情報処理システム3は、本発明の第2の実施の形態としてのホスト装置20と、本発明の第1の実施の形態としての変換装置10と、入出力スイッチ30とを含む。1つのホスト装置20には、1つ以上の変換装置10が接続される。また、各変換装置10には、1つの入出力スイッチ30が接続される。また、各入出力スイッチ30には、1つ以上の入出力デバイスが接続可能となっている。
なお、図8では、1つのホスト装置20が示されているが、この数は限定されない。例えば、情報処理システム3は、複数のホスト装置20を含み、各ホスト装置20に、変換装置10および入出力スイッチ30の組合せが1つ以上接続されてもよい。また、図8では、1つのホスト装置20に対して、変換装置10および入出力スイッチ30の組合せが2つ接続されているが、1つのホスト装置20に接続されるこの組合せの数は限定されない。また、図8では、1つの入出力スイッチ30に2つの入出力デバイスが接続される例が示されているが、接続可能な入出力デバイスの個数は限定されない。ただし、これらの個数は、情報処理システム3全体で接続可能な入出力デバイスの個数が、本実施の形態における第1識別情報に基づき識別可能な個数までとなるよう限定される。
ここで、情報処理システム3のハードウェア構成の一例について、図9を参照して説明する。図9において、変換装置10およびホスト装置20のハードウェア構成は、図2および図6を用いて説明した通りであるため、説明を省略する。ここでは、入出力スイッチ30のハードウェア構成について説明する。
図9において、入出力スイッチ30は、上流ポート301と、複数の下流ポート302と、入出力スイッチ回路303とを含む。上流ポート301は、変換装置10に接続される。また、下流ポート302は、それぞれ入出力デバイスを接続可能となっている。また、入出力スイッチ回路303は、上流ポート301と複数の下流ポート302との間でパケットの転送を制御するため集積回路であり、階層的に接続される複数の仮想ブリッジ31を実現する。
なお、情報処理システム3を構成するハードウェア構成は、上述の構成に限定されない。
次に、入出力スイッチ30の機能について説明する。入出力スイッチ30は、変換装置10から入力される入出力デバイス宛のパケットを、第2識別情報に基づき適切な下流ポート302から出力する。また、入出力スイッチ30は、入出力デバイスから入力されるホスト装置20宛のパケットを、変換装置10に出力する。
以上のように構成された情報処理システム3において、変換装置10は、本発明の第1の実施の形態で説明したように動作する。また、ホスト装置20は、本発明の第2の実施の形態で説明したように動作する。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としての情報処理システムは、導入コストを抑えながら、情報処理システムに接続可能な入出力デバイスの個数を増加させることができる。その理由は、本発明の第1および第2の実施の形態で述べたとおりである。
(第4の実施の形態)
次に、本発明の第4の実施の形態について説明する。本発明の第4の実施の形態では、本発明の第1の実施の形態を含む入出力スイッチシステムについて説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1〜第3の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第4の実施の形態としての入出力スイッチシステム4の構成を図10に示す。図10において、入出力スイッチシステム4は、本発明の第1の実施の形態としての変換装置10と、本発明の第3の実施の形態における入出力スイッチ30とを含む。変換装置10は、ホスト装置に接続される。入出力スイッチ30には、1つ以上の入出力デバイスを接続可能である。
ここで、入出力スイッチシステム4のハードウェア構成の一例について、図11を参照して説明する。図11において、変換装置10および入出力スイッチ30のハードウェア構成は、図2および図9を用いて説明した通りであるため、説明を省略する。なお、入出力スイッチシステム4において、変換装置10および入出力スイッチ30は、物理的に同一の基板上に構成されてもよい。
以上のように構成された入出力スイッチシステム4において、変換装置10は、本発明の第1の実施の形態で説明したように動作する。入出力スイッチ30は、本発明の第3の実施の形態で説明したように動作する。
次に、本発明の第4の実施の形態の効果について述べる。
本発明の第4の実施の形態としての入出力スイッチシステムは、導入コストを抑えながら、情報処理システムにおいて接続可能な入出力デバイスの個数を増加させることができる。その理由については、本発明の第1の実施の形態で説明した通りである。
なお、もし、本実施の形態を物理的に同一の基板として構成した場合、本実施の形態は、ホスト装置に対して、一般的な入出力スイッチの代わりに接続可能である。このため、本実施の形態は、システム構成を複雑にすることがなく、導入をより容易にすることができる。
(第5の実施の形態)
次に、本発明の第5の実施の形態について説明する。本発明の第5の実施の形態では、本発明における入出力インタフェースとして、PCIeを適用した例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1〜第4の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第5の実施の形態としての情報処理システム5の構成を図12に示す。図12において、情報処理システム5は、変換装置50と、ホスト装置60と、PCIeスイッチ70とを含む。変換装置50は、ホスト装置60とPCIeスイッチ70とに接続される。PCIeスイッチ70には、1つ以上のPCIeデバイスが接続される。なお、PCIeスイッチ70は、本発明における入出力スイッチの一実施形態を構成する。また、PCIeデバイスは、本発明に接続される入出力デバイスの一実施形態を構成する。なお、変換装置50およびPCIeスイッチ70は、本発明の入出力スイッチシステムの一実施形態として、物理的に一体に構成されていてもよい。
ここで、情報処理システム5は、ホスト装置60に対して、変換装置50およびPCIeスイッチ70の組合せを、1つ以上接続した構成であってもよい。また、図12では、1つのPCIeスイッチ70に2つのPCIeデバイスが接続される例が示されているが、接続可能なPCIeデバイスの個数は限定されない。また、図12では、1つのホスト装置60に接続される変換装置50およびPCIeスイッチ70の組合せを2つ示しているが、この組合せの個数は限定されない。ただし、これらの個数は、情報処理システム5全体で接続可能なPCIeデバイスの個数が、本実施の形態における第1識別情報に基づき識別可能な個数までとなるよう限定される。
なお、情報処理システム5のハードウェア構成は、図9を用いて本発明の第3の実施の形態で説明した通りである。ただし、図9に示した各ハードウェア要素として、PCIeに準拠するハードウェア要素が採用されているものとする。
本実施の形態では、ホスト装置60からPCIeデバイス宛のパケットに含まれる宛先の第1識別情報として、PCIeにおいて各バスに付与されるバス番号と、デバイス番号の上位nビットとが用いられる。つまり、バス番号は、本発明における「仕様に基づく識別情報」の一実施形態である。また、デバイス番号の上位nビットは、本発明における「n個の追加ビット」」の一実施形態である。
ここで、第1識別情報およびn個の追加ビットの構成を、図13を用いて説明する。図13において、PCIから継承されたデバイス識別情報の構成は、図38を参照して背景技術で説明したように、バス番号8ビットと、デバイス番号5ビットと、ファンクション番号3ビットとからなる。ただし、背景技術で述べたように、PCIeでは、事実上バス番号のみによってデバイスが識別されることになり、デバイス番号は、デバイスの識別に寄与していない。なお、ファンクション番号は、背景技術で述べたように、1つのデバイスに含まれる機能を識別する情報であるため、デバイス自体の識別には寄与していない。
そこで、図13に示すように、第1識別情報は、このようなデバイス識別情報において、バス番号8ビットと、デバイス番号の上位1ビットとによって構成されていてもよい。つまり、図13の例では、追加ビットの個数nとして、1が適用されている。ただし、この場合、ホスト装置60に接続されるPCIeデバイスが有するデバイス番号が、デバイス番号の残り4ビットで表される範囲であることが前提となる。なお、デバイス番号は、通常、デバイスのメーカ等によって割り当てられている。
次に、変換装置50の機能ブロックの詳細を、図14を参照して説明する。図14において、変換装置50は、アウトバウンド変換部51と、インバウンド変換部52と、仮想PCIブリッジ53とを有する。なお、アウトバウンド変換部51および仮想PCIブリッジ53は、本発明におけるアウトバウンド変換部の一実施形態として構成される。また、インバウンド変換部52および仮想PCIブリッジ53は、本発明におけるインバウンド変換部の一実施形態として構成される。
仮想PCIブリッジ53は、ホスト装置60から入力されるアウトバウンドTLP(Transaction Layer Packet)が自装置の下流に流すパケットであれば、アウトバウンド変換部51に出力する。自装置の下流に流すパケットであるか否かは、自装置の下流に接続されるバスであるセカンダリバス番号に基づいて判定可能である。なお、変換装置50は、セカンダリバス番号を記憶しているものとする。また、仮想PCIブリッジ53は、インバウンド変換部52から入力されるインバウンドTLPを、ホスト装置60に出力する。
アウトバウンド変換部51は、アウトバウンドTLPに宛先の識別子として含まれる第1識別情報から、バス番号の上位nビットを破棄し、デバイス番号の上位nビットを下位nビットとして含むよう、第2識別情報に変換する。そして、アウトバウンド変換部51は、変換した第2識別情報を、アウトバウンドTLPの第1識別情報が含まれていた箇所のバス番号の位置に含める。
具体的には、アウトバウンド変換部51は、アウトバウンドTLPに含まれる宛先を示すデバイス識別情報の中から、第1識別情報を取り出す。そして、アウトバウンド変換部51は、第1識別情報のバス番号の上位nビットを破棄し、デバイス番号の上位nビットを下位nビットとして含むよう、第2識別情報に変換する。そして、アウトバウンド変換部51は、変換した第2識別情報を、アウトバウンドTLPにおいて宛先を示すデバイス識別情報のバス番号の位置に含めればよい。
インバウンド変換部52は、自装置のセカンダリバスについて記憶しているバス番号の上位nビットを用いて、第2識別情報を第1識別情報に変換する。これは、自装置より下流の各バスに少なくとも上位nビットが同一の第1識別情報が付与されることを前提としている。そして、インバウンド変換部52は、変換した第1識別情報を、インバウンドTLPの第2識別情報が含まれていた箇所であるバス番号の位置およびそれに続くnビットの位置に含める。
具体的には、インバウンド変換部52は、インバウンドTLPに含まれる送信元を示すデバイス識別情報の中から、第2識別情報を取り出す。そして、インバウンド変換部52は、第2識別情報の上位に、セカンダリバス番号の上位nビットを追加することにより、第1識別情報に変換する。そして、インバウンド変換部52は、変換した第1識別情報を、インバウンドTLPにおいて送信元を示すデバイス識別情報のバス番号の位置およびデバイス番号の上位nビットの位置に含めればよい。
次に、PCIeスイッチ70の機能について説明する。図15に示すように、PCIeスイッチ70は、複数の仮想PCIブリッジ71によって構成される。例えば、PCIeスイッチ70は、上流ポート301に接続する仮想PCIブリッジ71と、下流ポート302に接続する複数の仮想PCIブリッジ71とを含む。この例では、下流ポート302に接続する各仮想PCIブリッジ71は、上流ポート301に接続する仮想PCIブリッジ71に接続されている。なお、PCIeスイッチ70が有する仮想PCIブリッジ71の個数およびその接続関係は、図15に示すものに限定されない。
各仮想PCIブリッジは、仮想的な上流ポートおよび下流ポートを有し、一方のポートから入力されたTLPに含まれる宛先の識別子に基づいて、そのTLPを通過させる(すなわち、他方のポートから出力する)か否かを決定する。
なお、PCIeスイッチ70としては、一般的なPCIeスイッチを適用可能であるため、各仮想PCIブリッジの詳細な構成および動作の説明を省略する。
次に、ホスト装置60の機能について説明する。図16に示すように、ホスト装置60は、デバイス初期化部61と、デバイスアクセス部62とを有する。
デバイス初期化部61は、情報処理システム5の初期化時に、各PCIeスイッチ70や各PCIeデバイスに、バス番号の8ビットおよびデバイス番号の上位nビットを組み合わせた第1識別情報を付与する。
デバイスアクセス部62は、第1識別情報を用いて、各PCIeデバイスにアクセスする。
なお、これらの機能ブロックは、メモリ202に記憶されたファームウェアやオペレーティングシステムが、プロセッサ201によって読み込まれて実行されることにより実現される。
以上のように構成された情報処理システム5の動作について説明する。
まず、ホスト装置60の動作を、図17に示す。
図17において、デバイス初期化部61は、情報処理システム5の初期化時に、各PCIeスイッチ70や各PCIeデバイスに、バス番号の8ビットおよびデバイス番号の上位nビットを組み合わせた第1識別情報を付与する(ステップC51)。
以降、デバイスアクセス部62は、第1識別情報を用いて、PCIeデバイスにアクセスする(ステップC52)。
具体的には、デバイスアクセス部62は、アクセス対象となるPCIeデバイスの第1識別情報を、アウトバウンドTLPのヘッダにおける宛先の識別子として含めて、変換装置50に対して送信する。また、デバイスアクセス部62は、受信したインバウンドTLPのヘッダにおける送信元の識別子に含まれる第1識別情報を認識して、送信元のPCIeデバイスを識別する。
以上で、ホスト装置60の動作の説明を終了する。
次に、アウトバウンドTLPを転送する変換装置50の動作を図18に示す。
図18では、まず、仮想PCIブリッジ53は、アウトバウンドTLPをホスト装置60から受信し、アウトバウンド変換部51に出力する(ステップA51)。
次に、アウトバウンド変換部51は、アウトバウンドTLPから、宛先の識別子に含まれる第1識別情報であるバス番号およびデバイス番号の上位nビットを取り出す(ステップA52)。
次に、アウトバウンド変換部51は、バス番号の上位nビットを破棄し、デバイス番号の上位nビットを下位nビットとして含むよう構成した第2識別情報を生成する(ステップA53)。
次に、アウトバウンド変換部51は、生成した第2識別情報を、アウトバウンドTLPにおける宛先の識別子のバス番号の位置に含める(ステップA54)。
そして、アウトバウンド変換部51は、宛先の識別子として第2識別情報を含めたアウトバウンドTLPを、PCIeスイッチ70に出力する(ステップA55)。
以上で、変換装置50は、アウトバウンドTLPを転送する動作を終了する。
また、アウトバウンドTLPを受信したPCIeデバイスは、自装置を識別する第2識別情報をヘッダに含めたインバウンドTLPを、ホスト装置60に向けて送信する。
そこで、インバウンドTLPを転送する変換装置50の動作を図19に示す。図19において、まず、インバウンド変換部52は、インバウンドTLPをPCIeスイッチ70から受信する(ステップB51)。
次に、インバウンド変換部52は、インバウンドTLPから、送信元の識別子に含まれる第2識別情報であるバス番号を取り出す(ステップB52)。
次に、インバウンド変換部52は、取り出した第2識別情報の上位に、自装置で記憶しているセカンダリバス番号の上位nビットを追加して、第1識別情報を生成する(ステップB53)。
次に、インバウンド変換部52は、生成した第1識別情報を、インバウンドTLPにおける送信元の識別子のバス番号の位置およびデバイス番号の上位nビットの位置に含める(ステップB54)。
そして、インバウンド変換部52は、送信元の識別子として第1識別情報を含むインバウンドTLPを、仮想PCIブリッジ53に出力する(ステップB55)。
そして、仮想PCIブリッジ53は、インバウンドTLPをホスト装置60に出力する(ステップB56)。
以上で、変換装置50は、インバウンドTLPを転送する動作を終了する。
次に、変換装置50の動作の具体例を、図面を用いて説明する。
ここでは、図13に示したように、追加ビットの個数nとして1が採用されているとする。
また、具体例の説明にあたり、PCIeにおけるTLPヘッダの構成について説明しておく。PCIeで送受信されるTLPには、メモリリード/ライト、コンフィグレーションリード/ライト等の要求(リクエスト)と、リクエストに対する応答(コンプリーション)がある。TLPの種類によってヘッダの構成が異なる。
図20は、メモリリード要求に使用されるTLPヘッダの一例である。このTLPヘッダにおいて、バイト4、5の「Requester ID」には、要求元の識別子が格納される。つまり、PCIeデバイスからのメモリリード要求において、「Requester ID」には、当該PCIeデバイスの第2識別情報を含む情報が格納される。
また、図21は、コンフィグレーションリード/ライト要求に使用されるTLPヘッダである。このTLPヘッダにおいて、バイト4、5の「Requester ID」には、要求元の識別子が格納される。つまり、PCIeデバイスからのコンフィグレーションリード/ライト要求において、「Requester ID」には、当該PCIeデバイスの第2識別情報を含む情報が格納される。また、バイト8、9の「バス番号、デバイス番号、ファンクション番号」には、要求先の識別子が格納される。つまり、ホスト装置60からのコンフィグレーションリード/ライト要求において、「バス番号、デバイス番号、ファンクション番号」には、要求先のPCIeデバイスの第1識別情報を含む情報が格納される。
また、図22は、各要求に対する応答で使用されるTLPヘッダである。このTLPヘッダにおいて、バイト4、5の「Completer ID」には、要求の応答元の識別子が格納される。つまり、PCIeデバイスからの応答において、「Completer ID」には、当該PCIeデバイスの第2識別情報を含む情報が格納される。また、バイト8、9の「Requester ID」には、要求元の識別子が格納される。つまり、PCIeデバイスからの要求に対するホスト装置60からの応答である場合、「Requester ID」には、当該PCIeデバイスの第1識別情報を含む情報が格納される。
なお、図20〜22において、「Requester ID」および「Completer ID」の構成は、図38に示したデバイス識別情報と同様である。
このように、アウトバウンドTLPのうち、メモリリード/ライト要求には、宛先となるPCIeデバイスの第1識別情報が含まれない。コンフィグレーションリード/ライト要求またはコンプリーションには、バイト8、9に、宛先となるPCIeデバイスの第1識別情報が含まれる。そこで、アウトバウンド変換部51は、受信したアウトバウンドTLPが、コンフィグレーションリード/ライト要求またはコンプリーションである場合に、ヘッダのバイト8、9からデバイス識別情報を取り出し、変換処理を行えばよい。また、アウトバウンド変換部51は、受信したアウトバウンドTLPが、コンフィグレーションリード/ライト要求またはコンプリーション以外である場合には、変換処理を行わずにそのまま下流に流せばよい。
この場合、アウトバウンド変換部51の動作の具体例を、図23および図24を参照しながら説明する。なお、この具体例において、アウトバウンド変換部51は、内部に、それぞれ2バイト長のレジスタAおよびBを有するものとする。
図23において、アウトバウンド変換部51は、仮想PCIブリッジ53によってステップA51で受信されたアウトバウンドTLPが、コンフィグレーションリード/ライト要求またはコンプリーションであるか否かを判断する(ステップA521)。
ここで、コンフィグレーションリード/ライト要求またはコンプリーションであった場合について説明する(ステップA521でYes)。
この場合、アウトバウンド変換部51は、アウトバウンドTLPのヘッダのバイト8、9から、バス番号、デバイス番号およびファンクション番号を取り出して、レジスタAおよびBに格納する(ステップA522)。レジスタA、Bに格納されるデータは、図24の符号501が示す通りである。
なお、ステップA521〜A522は、図18のステップA52の具体例に相当する。
次に、アウトバウンド変換部51は、レジスタAを1ビット左論理シフトした上で、0xFF00との論理積を、レジスタAに格納する(ステップA531)。
これにより、図24の符号502に示すように、元のバス番号の下位7ビットに元のデバイス番号の上位1ビットが連結された8ビット(すなわち第2識別情報)が、レジスタAの上位8ビットに格納される。
次に、アウトバウンド変換部51は、レジスタBと0x007Fとの論理積を、レジスタBに格納する(ステップA532)。
これにより、図24の符号503に示すように、デバイス番号の下位4ビットと、ファンクション番号3ビットとが、レジスタBの下位7ビットに格納される。
次に、アウトバウンド変換部51は、レジスタAおよびレジスタBの論理和をレジスタAに格納する(ステップA533)。
これにより、図24の符号504に示すように、第2識別情報と、元のデバイス番号の下位4ビットと、ファンクション番号とが、レジスタAに格納される。
なお、ステップA531〜A533は、図18のステップA53の具体例に相当する。
次に、アウトバウンド変換部51は、レジスタAを、アウトバウンドTLPのヘッダのバイト8、9に格納する(ステップA54)。
そして、アウトバウンド変換部51は、アウトバウンドTLPを、下流ポート102に送信する(ステップA55)。
一方、受信されたアウトバウンドTLPがコンフィグレーションリード/ライト要求でもコンプリーションでもない場合(ステップA521でNo)について説明する。この場合、アウトバウンド変換部51は、ステップA55を実行し、受信されたアウトバウンドTLPをそのまま下流ポート102に送信する。
このように、変換後のアウトバウンドTLPでは、ホスト装置60から受信したアウトバウンドTLPに含まれていたデバイス番号のMSB(Most Significant Bit)が、バス番号のLSB(Least Significant Bit)となっている。また、デバイス番号のMSBは、0に固定されている。
以上で、アウトバウンド変換部51の動作の具体例の説明を終了する。
次に、この具体例におけるインバウンド変換部52の動作を、図25〜図27を参照しながら説明する。
なお、インバウンド変換部52の変換動作において必要となるセカンダリバスのバス番号は、仮想PCIブリッジ53のコンフィグレーションレジスタのbyte0x18に格納されているものとする。また、コンフィグレーションレジスタのbyte0x19には、プライマリバスのバス番号が格納されている。
また、インバウンドTLPは、その種類に関わらず、ヘッダのバイト4、5にPCIeデバイスの第2識別情報を含む。したがって、インバウンド変換部52は、インバウンドTLPの種類に応じて分岐処理をする必要はない。
また、この具体例において、インバウンド変換部52は、内部に、それぞれ2バイト長のレジスタA、BおよびCを有するものとする。
図25において、まず、インバウンド変換部52は、ステップB51で受信されたインバウンドTLPのバイト4、5から、バス番号、デバイス番号およびファンクション番号を取り出して、レジスタAおよびBに格納する(ステップB52)。レジスタA、Bに格納されるデータは、図26の符号601が示す通りである。
次に、インバウンド変換部52は、レジスタAを1ビット右論理シフトした上で、0x7F80との論理積を、レジスタAに格納する(ステップB531)。
これにより、図26の符号602に示すように、レジスタAにおいて、第1識別情報の下位8ビットの位置に、第2識別情報が格納される。
次に、インバウンド変換部52は、レジスタBと0x007Fの論理積を、レジスタBに格納する(ステップB532)。
これにより、図26の符号603に示すように、インバウンドTLPに含まれていたデバイス番号の下位4ビットおよびファンクション番号3ビットが、レジスタBに格納される。
次に、インバウンド変換部52は、自装置の仮想PCIブリッジ53のコンフィグレーションレジスタのバイト0x18および0x19を読み出して、レジスタCに格納する(ステップB533)。
これにより、図27の符号604に示すように、セカンダリバス番号およびプライマリバス番号が、レジスタCに格納される。
次に、インバウンド変換部52は、レジスタCと0x8000との論理積を、レジスタCに格納する(ステップB534)。
これにより、図27の符号605に示すように、セカンダリバス番号のMSB(図27において「V」と記載)が、レジスタCに格納される。第1識別情報におけるバス番号のMSBに変更がなければ、セカンダリバス番号のMSBと、第1識別情報におけるバス番号のMSBは同一である。
次に、インバウンド変換部52は、レジスタA、BおよびCの論理和を、レジスタAに格納する(ステップB535)。
これにより、図27の符号606に示すように、元の第1識別情報と、デバイス番号の下位4ビットおよびファンクション番号とが、レジスタCに格納される。
なお、ステップB531〜B535は、図19のステップB53の具体例に相当する。
次に、インバウンド変換部52は、インバウンドTLPのヘッダのバイト4、5に、レジスタAの値を格納する(ステップB54)。
次に、インバウンド変換部52は、インバウンドTLPを仮想PCIブリッジ53に送信し、仮想PCIブリッジ53は、インバウンドTLPを上流ポート101に送信する(ステップB55〜B56)。
以上で、インバウンド変換部52の動作の具体例の説明を終了する。
次に、情報処理システム5において、接続可能なPCIeデバイスの個数の具体例について、図28〜図29を参照して説明する。
図28の例では、ホスト装置60に接続された1つの変換装置50に、4つのPCIeデバイスd1〜d4を接続可能なPCIeスイッチ70が接続されている。PCIeスイッチ70において上流ポート301に接続される仮想PCIブリッジ71を、仮想PCIブリッジ71_0と記載する。また、4つの下流ポート302に接続される仮想PCIブリッジ71を、仮想PCIブリッジ71_1〜71_4と記載する。
また、図28において、変換装置50およびPCIeスイッチ70の組合せを、PCIeボックス500として表記している。PCIeボックス500は、本発明の入出力スイッチシステムの一実施形態である。
また、図28の例では、ホスト装置60によって各バスに図示の第1識別情報が付与されているとする。なお、図28では、第1識別情報を、「Bus#/Dev=bb/dx」として表記している。「bb」は、デバイス識別情報における8ビットのバス番号を16進数で表したものである。また、「dx」のうち左側の「d」は、デバイス識別情報におけるデバイス番号のMSBを表し、0または1である。なお、「d」として、0または1の代わりに「x」を表記したものは、0または1のどちらもとり得ることを表している。また、「dx」のうち右側の「x」は、デバイス識別情報におけるデバイス番号の下位4ビットとしての任意の値を表している。また、図28において、第1識別情報の下部に、対応する第2識別情報を「Bus#=bb」と表記している。ただし、ホスト装置60および変換装置50間を結ぶバスに付与される識別情報は変換対象ではないため、デバイス識別情報におけるバス番号「Bus#=bb」のみを表示している。
このとき、Bus#00は、ホスト装置60内で消費される。また、ホスト装置60および変換装置50を結ぶバスに、Bus#01が付与されている。
また、変換装置50および仮想PCIブリッジ71_0とを結ぶバスには、第1識別情報として、「Bus#/Dev#=02/0x」が付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=04」である。
また、仮想PCIブリッジ71_0および各仮想PCIブリッジ71_1〜71_4を結ぶバスには、第1識別情報として、「Bus#/Dev#=02/1x」が付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=05」である。
また、仮想PCIブリッジ71_1およびPCIeデバイスd1を結ぶバスには、第1識別情報として、「Bus#/Dev#=04/xx」の2つが占有可能に付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=08」から「Bus#=09」までとなる。
また、仮想PCIブリッジ71_2およびPCIeデバイスd2を結ぶバスには、第1識別情報として、「Bus#/Dev#=05/xx」が占有可能に付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=0A」から「Bus#=0B」までとなる。
また、仮想PCIブリッジ71_3およびPCIeデバイスd3を結ぶバスには、第1識別情報として、「Bus#/Dev#=06/xx」が占有可能に付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=0C」から「Bus#=0D」までとなる。
また、仮想PCIブリッジ71_4およびPCIeデバイスd4を結ぶバスには、第1識別情報として、「Bus#/Dev#=07/xx」が占有可能に付与されている。この第1識別情報が、変換装置50によって変換された第2識別情報は、「Bus#=0E」から「Bus#=0F」までとなる。
この場合、ホスト装置60は、各PCIeデバイスd1〜d4に対して、第1識別情報を用いてアクセスする。各PCIeデバイスd1〜d4は、自装置の識別子として第2識別情報を用いて動作する。
このように、この例では、PCIeスイッチ70の4つの下流ポート302のそれぞれの下流で2つずつの第1識別情報が占有可能に割り当てられる。したがって、PCIeスイッチ70の下流では、8つの第1識別情報が占有されることになる。また、ホスト装置60および変換装置50を結ぶバス、変換装置50およびPCIeスイッチ70を結ぶバスおよびPCIeスイッチ70の内部バスで消費される第1識別情報は、合計3つである。したがって、PCIeボックス500およびそれより下流の構成において、合計11個の第1識別情報が占有される。
次に、複数個のPCIeボックス500をホスト装置60に接続し、さらに、そのホスト装置60配下の構成を複数個備える情報処理システム5を想定する。そのような情報処理システム5の一例を図29に示す。
図29において、情報処理システム5は、m個(mは正の整数)のホスト装置60を有する。また、各ホスト装置60には、PCIeボックス500が4つずつ接続されている。なお、m個のホスト装置60は、互いに通信可能に接続され、各ホスト装置60のデバイス初期化部61は、情報処理システム5全体で重複しない第1識別情報を、各バスに付与するものとする。なお、各ホスト装置60を、ホスト装置60_i(i=1〜m)とも記載する。また、ホスト装置60_iに接続された4つのPCIeボックス500を、PCIeボックス500_i1〜500_i4とも記載する。
なお、この例では、前述のように、PCIeボックス500配下の構成において、合計11個の第1識別情報が占有される。ただし、管理しやすさのため、あるPCIeボックス500配下で16個の連番の第1識別情報が占有されたと仮定して、他のPCIeボックス500配下に第1識別情報が付与されていく規則が適用されるものとする。つまり、一部の番号は飛ばされて第1識別情報が付与されるものとする。
この場合、前述のように、PCIeボックス500_11より下流では、第1識別情報として、「Bus#/Dev#=04/xx〜07/xx」の8つの第1識別情報が占有される。また、前述したように、PCIeボックス500_11の前後や内部で、それ以外に3つの第1識別情報が消費される。また、一部の第1識別情報の番号は飛ばされる。したがって、前述の規則に基づいて、PCIeボックス500_11およびその下流で、「Bus#/Dev#=01/xx〜08/xx」の16個の第1識別情報が占有されたと仮定して、次のPCIeボックス500_12配下に第1識別情報が付与される。
すなわち、PCIeボックス500_12配下では、第1識別情報として、「Bus#/Dev#=0C/xx〜0F/xx」の8つの第1識別情報が占有される。ただし、前述の規則に基づいて、PCIeボックス500_12配下では、「Bus#/Dev#=09/xx〜10/xx」の16個の第1識別情報が占有されたと仮定して、次のPCIeボックス500_13配下に第1識別情報が付与される。
同様にして、PCIeボックス500_13〜500_14それぞれの配下に、前述の規則に基づいて第1識別情報が付与されたとする。すると、ホスト装置60_1以下の構成では、第1識別情報として、「Bus#/Dev#=00/xx〜1F/xx」の64個の第1識別情報が占有される。
同様にして、ホスト装置60_2以降でも、それぞれの下流で、64個ずつの第1識別情報が占有されるとする。すると、情報処理システム5は、9ビットの第1識別情報で表現可能な512個まで、合計8個のホスト装置60配下の構成を含むことができる。つまり、m=8となる。
すると、1つのホスト装置60以下に16個のPCIeデバイスを接続可能であるため、全体として、128個のPCIeデバイスが接続可能となる。このように、本実施の形態は、背景技術の図39を参照して説明した一般的なPCIeスイッチを用いたときに64個程度までしかデバイスを接続できない場合に比べて、接続可能なPCIeデバイスの個数を倍増させている。これは、情報処理システム5が、本来識別に利用可能なバス番号の8ビットより多い9ビットの第1識別情報を用いて、PCIeデバイスを識別可能なためである。
しかも、この具体例において、各PCIeスイッチ70および各PCIeデバイスは、PCIeのデバイス識別情報に含まれるバス番号8ビットに相当する第2識別情報を用いて動作すればよい。したがって、PCIeデバイスには、一般的なデバイスを適用可能である。
なお、図29の例において、例えば、第1識別情報「Bus#/Dev#=7F/xx」は、第2識別情報「Bus#=FE」から「Bus#=FF」までに変換される。また、第1識別情報「Bus#/Dev#=FF/xx」も、同様の第2識別情報「Bus#=FE」から「Bus#=FF」までに変換される。しかしながら、第1識別情報「Bus#/Dev#=7F/xx」によって識別されるPCIeデバイスは、ホスト装置60_4配下のPCIeボックス500_44に接続される。また、第1識別情報「Bus#/Dev#=FF/xx」によって識別されるPCIeデバイスは、ホスト装置60_8配下のPCIeボックス500_84に接続される。したがって、これらの各PCIeデバイス宛のパケットは、該当するホスト装置60から該当するPCIeボックス500まで正しく転送されることを前提とすれば、その後、第2識別情報により正しく転送される。また、各PCIeデバイスが、他と同一の第2識別情報を用いて動作しても、該当するホスト装置60は、それぞれが変換された他と互いに異なる第1識別情報によって送信元のPCIeデバイスを識別可能である。
以上で、本実施の形態の具体例の説明を終了する。
次に、本発明の第5の実施の形態の効果について述べる。
本発明の第5の実施の形態としての情報処理システムは、導入コストを抑えながら、情報処理装置に接続可能なPCIeデバイスの個数を増加させることができる。
その理由について説明する。本実施の形態では、第1識別情報として、PCIe仕様に基づくデバイス識別情報に含まれるバス番号と、n個の追加ビットとしてのデバイス番号の上位nビットとからなる情報を適用する。そして、アウトバウンド変換部が、アウトバウンドTLPのヘッダに含まれる宛先を示すデバイス識別情報において、第1識別情報のバス番号の上位nビットを破棄し、デバイス番号の上位nビットを下位nビットとして含むよう、第2識別情報を生成する。そして、アウトバウンド変換部が、生成した第2識別情報を、宛先を示すデバイス識別情報におけるバス番号の位置に含める。また、インバウンド変換部が、自装置のセカンダリバスについて記憶しているバス番号の上位nビットを用いて、インバウンドTLPのヘッダに含まれる送信元を示すデバイス識別情報における第2識別情報を、元の第1識別情報に変換する。そして、インバウンド変換部が、変換した第1識別情報を、送信元を示すデバイス識別情報におけるバス番号の位置およびデバイス番号の上位nビットの位置に含めるからである。
このように、本実施の形態は、一般的な情報処理システムでは、バス番号8ビットで表される個数未満までしか接続できなかったPCIeデバイスを、バス番号8ビット+デバイス番号の上位nビットで表される個数未満まで接続可能にする。しかも、本実施の形態において変換装置の下流に接続されるPCIeスイッチおよびPCIeデバイスは、PCIeの仕様に準拠する第2識別情報である通常のバス番号を用いて動作すればよい。したがって、本実施の形態において、PCIeスイッチおよびPCIeデバイスとしては、一般的なPCIeスイッチおよびPCIeデバイスを適用可能である。このため、本実施の形態は、導入コストを抑えることができる。
なお、本実施の形態の具体例として、本発明におけるn個の追加ビットとして、デバイス番号のMSBを適用する例について説明したが、デバイス番号の上位2ビット以上を適用してもよい。ただし、接続が想定されるPCIeデバイスが有するデバイス番号が、デバイス番号の残りの5−nビットで表される範囲であることが前提である。
また、本実施の形態における変換処理の具体例として、アウトバウンド変換部がレジスタA〜Bを用いて論理演算を行う手順と、インバウンド変換部がレジスタA〜Cを用いて論理演算を行う手順とについて説明した。ただし、各変換部は、本実施の形態における第1識別情報と第2識別情報との間を変換可能な手順であれば、他の手順によって変換処理を行ってもよい。
(第6の実施の形態)
次に、本発明の第6の実施の形態について説明する。本発明の第6の実施の形態では、本発明の第5の実施の形態における変換装置に改良を加えた例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1〜第5の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第6の実施の形態としての情報処理システム6の構成を図30に示す。図30において、情報処理システム6は、本発明の第5の実施の形態としての情報処理システム5に対して、変換装置50に替えて変換装置80と、ホスト装置60に替えてホスト装置90とを有する点が異なる。
また、図31に示すように、変換装置80は、本発明の第5の実施の形態における変換装置50に対して、アウトバウンド変換部51に替えてアウトバウンド変換部81と、インバウンド変換部52に替えてインバウンド変換部82とを有する点が異なる。
また、図32に示すように、ホスト装置90は、本発明の第5の実施の形態におけるホスト装置60に対して、デバイス初期化部61に替えてデバイス初期化部91と、デバイスアクセス部62に替えてデバイスアクセス部92とを有する点が異なる。
ここで、情報処理システム6のハードウェア構成は、図9を用いて本発明の第3の実施の形態で説明した通りである。ただし、図9に示した各ハードウェア要素として、PCIeに準拠するハードウェア要素が採用されているものとする。
まず、ホスト装置90の機能のうち、本発明の第5の実施の形態と異なる点について説明する。
デバイス初期化部91は、情報処理システム6の初期化時に、変換装置80による変換機能を有効にするか否かを判断する。この判断処理は、例えば、外部から入力される指示情報や、メモリ202に記憶された設定情報に基づいて行われてもよい。もし、複数の変換装置80が自装置に接続される場合、変換装置80毎に、変換機能を有効にするか否かを判断してもよい。そして、デバイス初期化部91は、変換機能を有効にすると判断された変換装置80の配下に、第1識別情報を付与する。また、デバイス初期化部91は、変換機能を有効にしないと判断された変換装置80の配下には、通常のバス番号による識別情報を付与する。
また、デバイスアクセス部92は、初期化時に変換機能を有効にすると判断された変換装置80を介して送信するパケットには、宛先の識別子としての第1識別情報と、変換機能を有効にすることを表す情報とをヘッダに含めて送信する。また、デバイスアクセス部92は、初期化時に変換機能を有効にしないと判断された変換装置80を介して送信するパケットには、宛先の識別子としての通常のバス番号と、変換機能を有効にしないことを表す情報とをヘッダに含めて送信する。
例えば、変換機能を有効する/しないことを表す情報としては、宛先の識別子としてのデバイス識別情報に含まれるファンクション番号のMSBを適用してもよい。この場合、ファンクション番号のMSBが1であれば「有効」を示し、0であれば「無効」を示すものとしてもよい。
次に、変換装置80の機能ブロックのうち、本発明の第5の実施の形態と異なる点について詳細に説明する。
アウトバウンド変換部81は、PCIeデバイス宛のパケットに、変換機能を有効にすることを示す情報が含まれる場合に、本発明の第5の実施の形態におけるアウトバウンド変換部51と同様に動作する。なお、この場合、アウトバウンド変換部81は、変換機能が有効であることを記憶しておく。
また、前述のように、ファンクション番号のMSBが、変換機能を有効にする/しないことを表す情報として適用されている場合について説明する。この場合、アウトバウンド変換部81は、受信したアウトバウンドTLPのヘッダにおいて、宛先の識別子としてのデバイス識別情報に含まれるファンクション番号のMSBが1である場合に、次のように動作する。すなわち、アウトバウンド変換部81は、第1識別情報を第2識別情報に変換するとともに、ファンクション番号のMSBを0に変換する。
これにより、変換後のアウトバウンドTLPを受信したPCIeデバイスでは、宛先の識別子に含まれるファンクション番号を、仕様に基づくファンクション番号として認識することができる。ただし、この場合、本来のファンクション番号が、MSBを除いた2ビットで表される範囲であることが前提である。ファンクション番号のMSBが1であるか0であるかに応じたアウトバウンド変換部81の処理を、模式的に図33に示す。
図33において、受信されたアウトバウンドTLPにおける宛先の識別子としてのデバイス識別情報701では、ファンクション番号のMSBが1である。そこで、変換機能が有効となる。その結果、下流に送信されるアウトバウンドTLPにおける宛先の識別子としてのデバイス識別情報702では、元のバス番号の下位7ビットおよび元のデバイス番号のMSBからなる合計8ビットの第2識別情報が、バス番号の位置に含まれている。また、変換により、デバイス番号のMSBは0となっている。また、ファンクション番号のMSBは、0に変換されている。
また、図33において、受信されたアウトバウンドTLPにおける宛先の識別子としてのデバイス識別情報703では、ファンクション番号のMSBが0である。そこで、変換機能は無効となる。その結果、受信されたアウトバウンドTLPはそのまま下流に送信される。
インバウンド変換部82は、アウトバウンド変換部81による変換機能が有効である場合に、本発明の第5の実施の形態におけるインバウンド変換部52と同様に動作する。
以上のように構成された情報処理システム6の動作について説明する。
まず、ホスト装置90の動作を図34に示す。
図34において、まず、情報処理システム6の初期化時等に、デバイス初期化部91が、変換装置80の変換機能を有効にするか否かを判断する(ステップC91)。
ここで、変換機能を有効にすると判断した場合(ステップC91でYes)、デバイス初期化部91は、変換装置80配下の各PCIeスイッチ70や各PCIeデバイスに、第1識別情報を付与する。
以降、デバイスアクセス部92は、第1識別情報および変換機能を有効にすることを表す情報を、ヘッダにおける宛先のデバイス識別情報に含めたアウトバウンドTLPを、変換装置80に対して送信する。また、デバイスアクセス部92は、受信したインバウンドTLPに含まれる送信元のデバイス識別情報における第1識別情報を用いて、送信元のPCIeデバイスを識別する(ステップC93)。
一方、変換機能を有効にしないと判断した場合(ステップC91でNo)、デバイス初期化部91は、変換装置80配下の各PCIeスイッチ70や各PCIeデバイスに、通常のバス番号に基づくデバイス識別情報を付与する(ステップC94)。
以降、デバイスアクセス部92は、通常のデバイス識別情報および変換機能を有効にしないことを表す情報を、ヘッダにおける宛先のデバイス識別情報に含めたアウトバウンドTLPを、変換装置80に対して送信する。また、デバイスアクセス部92は、受信したインバウンドTLPに含まれる送信元のデバイス識別情報におけるバス番号を用いて、送信元のPCIeデバイスを識別する(ステップC95)。
以上で、ホスト装置90の動作の説明を終了する。
次に、アウトバウンドTLPを転送する変換装置80の動作を図35に示す。
図35では、まず、アウトバウンド変換部81は、ステップA51で受信されたアウトバウンドTLPに、変換機能を有効にすることを示す情報が含まれているか否かを判断する(ステップA91)。
前述のように、例えば、アウトバウンド変換部81は、アウトバウンドTLPのヘッダに宛先の識別子として含まれるデバイス識別情報のファンクション番号のMSBが、1であるか否かを判断してもよい。
ここで、変換機能を有効にすることを示す情報が含まれている場合(ステップA91でYes)、アウトバウンド変換部81は、ステップA52〜A55まで、本発明の第5の実施の形態と同様に動作する。
一方、変換機能を有効にすることを示す情報が含まれていない場合(ステップA91でNo)、アウトバウンド変換部81は、ステップA51で受信されたアウトバウンドTLPを、そのまま下流に送信する(ステップA55)。
以上で、アウトバウンド変換部81は、アウトバウンドTLPを送信する動作を終了する。
次に、インバウンドTLPを転送する変換装置80の動作を図36に示す。
図36では、まず、インバウンド変換部82は、ステップB51でインバウンドTLPを受信すると、アウトバウンド変換部81において変換機能が有効であるか否かを判断する(ステップB91)。
ここで、変換機能が有効である場合(ステップB91でYes)、インバウンド変換部82は、ステップB52〜B56まで、本発明の第5の実施の形態と同様に動作する。
一方、変換機能が有効でない場合(ステップS91でNo)、インバウンド変換部82は、受信されたインバウンドTLPを、そのまま仮想PCIブリッジ53を介して上流に送信する(ステップB55、B56)。
以上で、インバウンド変換部82は、インバウンドTLPを転送する動作を終了する。
次に、本発明の第6の実施の形態の効果について述べる。
本発明の第6の実施の形態としての情報処理システムは、情報処理システムに接続可能な入出力デバイスの個数を増加させるかどうかを柔軟に設定可能にして、システム構成の自由度を高めることができる。
その理由について説明する。本実施の形態では、変換装置のアウトバウンド変換部が、パケットに変換機能を有効にすることを示す情報が含まれる場合に、該パケットに含まれる第1識別情報を第2識別情報に変換する。また、インバウンド変換部が、アウトバウンド変換部における変換機能が有効である場合に、パケットに含まれる第2識別情報を元の第1識別情報に変換するからである。
これにより、本実施の形態は、情報処理システムに含まれる変換装置毎に、その配下を、第1識別情報を用いて識別する拡張空間として構成するか、通常のデバイス識別情報を用いて識別する通常空間として構成するかを選択できる。これにより、本実施の形態は、情報処理システムに拡張空間および通常空間を混在させることも可能とする。
なお、本実施の形態において、ファンクション番号のMSBを、変換機能を有効にするか否かを示す情報として適用する例について説明した。これに限らず、変換機能を有効にするか否かを示す情報としては、ヘッダに含まれるその他の情報が適用可能である。ただし、そのような他の情報は、ヘッダにおいて使用されていないことが望ましい。
また、本実施の形態において、入出力インタフェースがPCIeである場合について説明した。これに限らず、本実施の形態は、その他の入出力インタフェースの場合にも適用可能である。
また、上述した本発明の各実施の形態において、変換装置の各機能ブロックが、専用のハードウェア要素により実現される例について説明した。ただし、変換装置の各機能ブロックの一部または全部は、メモリに格納されたプログラムを実行するプロセッサにより実現されてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各装置の動作を、本発明のプログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておく。そして、係るプログラムを当該プロセッサが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るプログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続され、
前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力するアウトバウンド変換部と、
前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力するインバウンド変換部と、
を有する変換装置。
(付記2)
前記アウトバウンド変換部は、前記第1識別情報の上位nビットを破棄して前記n個の追加ビットを下位nビットとして含むよう前記第2識別情報を構成し、
前記インバウンド変換部は、前記第2識別情報を、前記第1識別情報に含まれていた前記上位nビットに基づいて、前記第1識別情報に変換することを特徴とする付記1に記載の変換装置。
(付記3)
前記アウトバウンド変換部は、前記パケットに、変換機能を有効にすることを示す情報が含まれる場合に、前記第1識別情報を前記第2識別情報に変換し、
前記インバウンド変換部は、前記アウトバウンド変換部において前記変換機能が有効である場合に、前記第2識別情報を元の前記第1識別情報に変換することを特徴とする付記1または付記2に記載の変換装置。
(付記4)
前記入出力インタフェースがPCIe(Peripheral Component Interconnect Express)であるとき、
前記アウトバウンド変換部は、前記仕様に基づく識別情報としてのバス番号と、前記n個の追加ビットとしてのデバイス番号の上位nビットとからなる前記第1識別情報から、前記バス番号の上位nビットを破棄し、前記デバイス番号の上位nビットを下位nビットとして含むよう、前記第2識別情報を生成し、
前記インバウンド変換部は、自装置のセカンダリバスについて記憶しているバス番号の上位nビットを用いて、前記第2識別情報を元の前記第1識別情報に変換することを特徴とする付記1から付記3のいずれか1つに記載の変換装置。
(付記5)
付記1から付記4のいずれか1つに記載の変換装置および前記入出力スイッチを介して自装置に接続される前記入出力デバイスに対して、前記第1識別情報を付与するデバイス初期化部と、
前記入出力デバイスに対して、前記第1識別情報を用いてアクセスするデバイスアクセス部と、
を有するホスト装置。
(付記6)
付記1から付記4のいずれか1つに記載の変換装置と、
前記入出力スイッチと、
を備えた入出力スイッチシステム。
(付記7)
付記5に記載のホスト装置と、
付記1から付記4のいずれか1つに記載の変換装置と、
前記入出力スイッチと、
を備えた情報処理システム。
(付記8)
ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続されるコンピュータ装置を用いて、
前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力し、
前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力する方法。
(付記9)
ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続されるコンピュータ装置に、
前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力するアウトバウンド変換ステップと、
前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力するインバウンド変換ステップと、
を実行させるプログラム。
(付記10)
コンピュータ装置を用いて、
付記1から付記4のいずれか1つに記載の変換装置および前記入出力スイッチを介して自装置に接続される前記入出力デバイスに対して、前記第1識別情報を付与し、
前記入出力デバイスに対して、前記第1識別情報を用いてアクセスする方法。
(付記11)
付記1から付記4のいずれか1つに記載の変換装置および前記入出力スイッチを介して自装置に接続される前記入出力デバイスに対して、前記第1識別情報を付与するデバイス初期化ステップと、
前記入出力デバイスに対して、前記第1識別情報を用いてアクセスするデバイスアクセスステップと、
をコンピュータ装置に実行させるプログラム。