JP2018160163A - 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム - Google Patents

変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム Download PDF

Info

Publication number
JP2018160163A
JP2018160163A JP2017057747A JP2017057747A JP2018160163A JP 2018160163 A JP2018160163 A JP 2018160163A JP 2017057747 A JP2017057747 A JP 2017057747A JP 2017057747 A JP2017057747 A JP 2017057747A JP 2018160163 A JP2018160163 A JP 2018160163A
Authority
JP
Japan
Prior art keywords
identification information
input
output
conversion
bits
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
JP2017057747A
Other languages
English (en)
Other versions
JP6579140B2 (ja
Inventor
妙嶋 慎二郎
Shinjiro Taejima
慎二郎 妙嶋
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2017057747A priority Critical patent/JP6579140B2/ja
Publication of JP2018160163A publication Critical patent/JP2018160163A/ja
Application granted granted Critical
Publication of JP6579140B2 publication Critical patent/JP6579140B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】導入コストを抑えながら、情報処理システムに接続可能な入出力デバイスの個数を増加させる。
【解決手段】ホスト装置から入力される入出力デバイス宛のパケットにおいて、宛先の識別子としての第1識別情報であって、入出力インタフェース仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、追加ビットの情報が含まれるよう、仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を仕様に基づく識別情報の位置に含めて入出力スイッチに出力するアウトバウンド変換部11と、入出力スイッチから入力されるホスト装置宛のパケットにおいて、送信元の入出力デバイスの識別子としての第2識別情報を元の第1識別情報に変換し、変換した第1識別情報を仕様に基づく識別情報の位置および追加ビットの位置に含めてホスト装置に出力するインバウンド変換部12とを有する。
【選択図】図1

Description

本発明は、情報処理システムにおいて、ホスト装置に接続される入出力デバイスを識別する技術に関する。
情報処理システムにおいて、ホスト装置に1つ以上の入出力デバイスを接続してデータを送受信する際には、入出力デバイスを識別する識別情報が用いられる。
例えば、ホスト装置に入出力デバイスを接続するインタフェースとして、PCIe(Peripheral Component Interconnect Express)が良く知られている。PCIeは、PCI(Peripheral Component Interconnect)とソフトウェアレベルで互換性があり、かつ、PCIより処理能力が高いインタフェースである。PCIeでは、ソフトウェアから見たPCIeデバイスの識別に、PCI仕様を継承したデバイス識別情報が用いられる。ここで、PCIにおけるデバイス識別情報は、バス番号、デバイス番号およびファンクション番号の組合せからなる。
PCIでは、デバイスはバス型トポロジーによってホスト装置に接続される。つまり、1つのバスの配下に複数のPCIデバイスが接続され得る。そのため、PCIデバイスは、そのPCIデバイスが接続されたバスを識別するバス番号と、当該バス上のスロットによって特定されるデバイス番号とによって識別される。すなわち、PCIデバイスは、バス番号およびデバイス番号の組み合わせによって表せる個数まで、ホスト装置に接続することが可能であった。
しかしながら、PCIeは、シリアルインタフェースであるため、ホスト装置に対する接続形態がピアツーピアとなる。そのため、ホスト装置に、PCIeポート数以上のPCIeデバイスを接続するために、一般的に、PCIeスイッチによってポート数が拡張される。PCIeスイッチは、内部に複数の仮想PCI−PCIブリッジを含むため、それらの間を接続するバスによってバス番号を内部で消費する。そして、PCIeスイッチのダウンストリームポート毎に、さらにバス番号が割り当てられる。これにより、そのポートに接続されたPCIeデバイスは、そのバス番号により識別可能となっている。このように、PCIeスイッチ配下に接続されたPCIeデバイスは、バス番号によってのみ識別されることになる。さらに、前述のように、PCIeスイッチ内部で消費されるバス番号も考慮すると、ホスト装置に接続可能なPCIeデバイスの個数は、バス番号によって表せる個数よりさらに少なくなる。これは、バス番号およびデバイス番号の組合せによって表される個数まで接続可能なPCIデバイスの個数に比較すると、大幅に少ない。
例えば、図37は、PCIeスイッチを用いて、複数のPCIeデバイスをホスト装置に接続する一般的な構成の一例を示している。図37において、ホスト装置には、PCIeスイッチを介して、4つのPCIeデバイスd1〜d4が接続されている。PCIeスイッチは、PCIeポートを増やすためのデバイスである。この例では、PCIeスイッチは、5つの仮想PCI−PCIブリッジb1〜b5によって構成される。以降、仮想PCI−PCIブリッジを、単に仮想PCIブリッジと記載する。各仮想PCIブリッジは、2本のPCIバスを相互接続する。また、各バスには、バス番号が割り当てられている。バス番号の割り当ては、ホスト装置で動作するソフトウェアによって、情報処理システムの初期化時等に行われる。図37では、バス番号xxは、16進数で表されているものとする。以降、バス番号xxが割り当てられたバスを、Bus#xxとも記載する。図37の例では、図示されないBus#00は、プロセッサの内部で消費される。また、ホスト装置と仮想PCIブリッジb1とを接続するバスに、Bus#01が割り当てられている。また、仮想PCIブリッジb1と仮想PCIブリッジb2〜b5とを接続するバスに、Bus#02が割り当てられている。また、仮想PCIブリッジb2にPCIeデバイスd1を接続可能なポートの配下には、Bus#04〜05が占有可能に割り当てられる。つまり、仮想PCIブリッジb2およびPCIeデバイスd1を結ぶバスには、Bus#04および05のいずれかが割り当てられる。同様に、仮想PCIブリッジb3、b4、b5の配下には、それぞれ、Bus#06〜07、Bus#08〜09、Bus#0A〜0Bが占有可能に割り当てられている。つまり、図37のホスト装置の下流では、バス番号として、Bus#00〜#0Bが消費される。
このように各バスに割り当てられたバス番号は、前述のように、そのバス番号が示すバスに接続されたPCIeデバイスを、ホスト装置で動作するソフトウェアから識別するために用いられる。ここで、PCIおよびPCIeにおいて定められたデバイス識別情報の構造を図38に示す。図38において、デバイス識別情報は、16ビットで表され、バス番号8ビットと、デバイス番号5ビットと、ファンクション番号3ビットとからなる。ファンクション番号は、1つのデバイスに含まれる機能を識別する情報である。
例えば、図37に示したような、4つのPCIeデバイスd1〜d4を接続したPCIeスイッチ以降を1つのPCIeボックスとしてまとめて表すとする。そして、図39に示すように、このPCIeボックスを4個接続したホスト装置を、複数備える情報処理システムを想定する。このような構成の情報処理システムには、バス番号の制限により、64個程度のPCIeデバイスしか接続することが出来ない。
具体的には、図39に示す1つ目のホスト装置に接続された1つ目のPCIeボックスb1の下流では、図37で説明したように、ポート0〜3に合計4つのPCIeデバイスを接続可能であり、Bus#04〜0Bが消費される。また、同じ1つ目のホスト装置に接続された2つ目のPCIeボックスb2配下では、Bus#14〜1Bが消費される。なお、1つ目のPCIeボックスb1配下で消費される範囲で割り当てられていないBus#03がある。また、1つ目のPCIeボックスb1および2つ目のPCIeボックスb2間で、2つ目のPCIeボックス内部で消費されるバス番号を考慮しても、割り当てられていないバス番号が存在する。このように、バス番号の割り当ては、管理しやすさ等のため必ずしも緻密に割り当てられるわけではなく、飛ばされる番号が存在する場合もある。なお、バス番号の割り当ては、PCIeデバイスを初期化するソフトウェアにより行われる。
同様にして、図39の例のように、各PCIeボックス配下でバス番号が8ずつ消費され、かつ、管理しやすさ等のために一部のバス番号が飛ばされていくとする。すると、この例では、情報処理システムは、Bus#FBまでを消費するPCIeボックスb16までしか接続できない。つまり、接続可能なPCIeボックスがB1〜B16までの16個までであり、各PCIeボックスに接続可能なPCIeデバイスが4個までであるため、接続可能なPCIeデバイスの個数は64個程度までとなってしまう。なお、バス番号が飛ばされずに緻密に割り当てが行われるとすれば、64個より多くのPCIeデバイスを接続することは可能となる。しかしながら、PCIeスイッチ内部で消費されるバス番号等を考慮すると、8ビットで表すことが可能な個数のバス番号を全てPCIeデバイスに割り当てることはできない。
このように、PCIeでは、バス番号のみでデバイスを識別しなければいけないだけでなく、デバイス以外で消費されるバス番号もある。このため、PCIeでは、接続可能なデバイスの個数が、PCIに比べて大幅に少なくなるという問題がある。
このような問題に関連する技術の一例が、特許文献1に記載されている。特許文献1に記載された関連技術は、サーバとデバイスとを複数のPCIeスイッチで接続する構成を想定している。そして、この関連技術は、PCIeスイッチのポートのうちデバイスまたはサーバに接続する外部ポートにおいて、転送されるパケットに含まれるバス番号をシステムポートアドレスに変換し、パケットにラベルとして付加する。また、各外部ポートは、バス番号とシステムポートアドレスとを関連付けた変換テーブルを有する。また、この関連技術は、PCIeスイッチ同士が接続される内部ポート間では、システムポートアドレスを用いてパケットを転送する。そして、この関連技術は、変換テーブルにおいて、デバイスとして識別される必要がない場所に付与されるバス番号に対してシステムポートアドレスを関連付けないようにしたり、各外部ポート毎に異なる変換テーブルを有するようにする。これにより、この関連技術は、バス番号として表される個数より多くのPCIeデバイスの識別を可能にする。
国際公開第2012/086068号
しかしながら、特許文献1に記載された関連技術には、以下の課題がある。この関連技術では、サーバまたはデバイスに接続される各PCIeスイッチが、バス番号をシステムポートアドレスに変換する変換テーブルおよび変換機能を有する必要がある。また、各PCIeスイッチは、システムポートアドレスがラベルとして付加されたパケットを認識して転送する機能を有する必要がある。つまり、この関連技術では、全てのPCIeスイッチを、これらの機能を有する専用のPCIeスイッチで構成する必要があり、導入にコストがかかる。
このように、情報処理システムにおいては、接続可能な入出力デバイスの個数を増加させようとすると、導入にコストがかかるという問題がある。
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、導入コストを抑えながら、情報処理システムにおいて接続可能な入出力デバイスの個数を増加させる技術を提供することを目的とする。
本発明の変換装置は、ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続され、前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力するアウトバウンド変換部と、前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力するインバウンド変換部と、を有する。
また、本発明のホスト装置は、上述の変換装置および前記入出力スイッチを介して自装置に接続される前記入出力デバイスに対して、前記第1識別情報を付与するデバイス初期化部と、前記入出力デバイスに対して、前記第1識別情報を用いてアクセスするデバイスアクセス部と、を有する。
また、本発明の入出力スイッチシステムは、上述の変換装置と、前記入出力スイッチと、を備える。
また、本発明の情報処理システムは、上述のホスト装置と、上述の変換装置と、前記入出力スイッチと、を備える。
また、本発明の方法は、ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続されるコンピュータ装置を用いて、前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力し、前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力する。
また、本発明のプログラムは、ホスト装置と、1つ以上の入出力デバイスを接続可能な入出力スイッチとに接続されるコンピュータ装置に、前記ホスト装置から入力される前記入出力デバイス宛のパケットにおいて、宛先の識別子として含まれる第1識別情報であって、前記入出力デバイスが準拠する入出力インタフェースの仕様に基づく識別情報を構成する各ビットおよびn個の追加ビット(nは1以上の整数)からなる第1識別情報を、前記追加ビットの情報が含まれるよう、前記仕様に基づく識別情報と同一ビット幅の第2識別情報に変換し、変換した第2識別情報を前記宛先の識別子として前記仕様に基づく識別情報の位置に含めて前記入出力スイッチに出力するアウトバウンド変換ステップと、前記入出力スイッチから入力される前記ホスト装置宛のパケットにおいて、送信元の前記入出力デバイスの識別子として含まれる前記第2識別情報を元の前記第1識別情報に変換し、変換した第1識別情報を前記送信元の識別子として前記仕様に基づく識別情報の位置および前記追加ビットの位置に含めて前記ホスト装置に出力するインバウンド変換ステップと、を実行させる。
また、本発明の他の方法は、コンピュータ装置を用いて、上述の変換装置および前記入出力スイッチを介して自装置に接続される前記入出力デバイスに対して、前記第1識別情報を付与し、前記入出力デバイスに対して、前記第1識別情報を用いてアクセスする。
本発明は、導入コストを抑えながら、情報処理システムにおいて接続可能な入出力デバイスの個数を増加させる技術を提供することができる。
本発明の第1の実施の形態としての変換装置の機能ブロック図である。 本発明の第1の実施の形態としての変換装置のハードウェア構成の一例を示す図である。 本発明の第1の実施の形態としての変換装置が入出力デバイス宛のパケットを転送する動作を説明するフローチャートである。 本発明の第1の実施の形態としての変換装置がホスト装置宛のパケットを転送する動作を説明するフローチャートである。 本発明の第2の実施の形態としてのホスト装置の機能ブロック図である。 本発明の第2の実施の形態としてのホスト装置のハードウェア構成の一例を示す図である。 本発明の第2の実施の形態としてのホスト装置の動作を説明するフローチャートである。 本発明の第3の実施の形態としての情報処理システムの構成を示すブロック図である。 本発明の第3の実施の形態としての情報処理システムのハードウェア構成の一例を示す図である。 本発明の第4の実施の形態としての入出力スイッチシステムの構成を示すブロック図である。 本発明の第4の実施の形態としての入出力スイッチシステムのハードウェア構成の一例を示す図である。 本発明の第5の実施の形態としての情報処理システムの構成を示すブロック図である。 本発明の第5の実施の形態における第1識別情報の構成を説明する図である。 本発明の第5の実施の形態における変換装置の機能ブロック図である。 本発明の第5の実施の形態におけるPCIeスイッチの機能ブロック図である。 本発明の第5の実施の形態におけるホスト装置の機能ブロック図である。 本発明の第5の実施の形態におけるホスト装置の動作を説明するフローチャートである。 本発明の第5の実施の形態における変換装置がPCIeデバイス宛のパケットを転送する動作を説明するフローチャートである。 本発明の第5の実施の形態における変換装置がホスト装置宛のパケットを転送する動作を説明するフローチャートである。 本発明の第5の実施の形態において送受信されるパケットのヘッダの構成を説明する図である。 本発明の第5の実施の形態において送受信される他のパケットのヘッダの構成を説明する図である。 本発明の第5の実施の形態において送受信されるさらに他のパケットのヘッダの構成を説明する図である。 本発明の第5の実施の形態における変換装置がPCIeデバイス宛のパケットを転送する動作の具体例を説明するフローチャートである。 本発明の第5の実施の形態において第1識別情報が第2識別情報に変換される過程の一例を模式的に説明する図である。 本発明の第5の実施の形態における変換装置がホスト装置宛のパケットを転送する動作の具体例を説明するフローチャートである。 本発明の第5の実施の形態において第2識別情報が第1識別情報に変換される過程の一例を模式的に説明する図である。 図26に続く模式図である。 本発明の第5の実施の形態において各PCIeデバイスに付与される第1識別情報の一例を説明する図である。 本発明の第5の実施の形態において接続可能なPCIeデバイスの個数を説明する図である。 本発明の第6の実施の形態としての情報処理システムの構成を示すブロック図である。 本発明の第6の実施の形態における変換装置の機能ブロック図である。 本発明の第6の実施の形態におけるホスト装置の機能ブロック図である。 本発明の第6の実施の形態において変換機能が有効であるか否かに基づく変換処理の一例を模式的に説明する図である。 本発明の第6の実施の形態におけるホスト装置の動作を説明するフローチャートである。 本発明の第6の実施の形態における変換装置がPCIeデバイス宛のパケットを転送する動作を説明するフローチャートである。 本発明の第6の実施の形態における変換装置がホスト装置宛のパケットを転送する動作を説明するフローチャートである。 入出力スイッチを介して入出力デバイスが接続される一般的な情報処理システムにおいて入出力デバイスの識別に用いられる情報を説明する図である。 入出力スイッチを介して入出力デバイスが接続される一般的な情報処理システムにおいて、入出力デバイスを識別するデバイス識別情報の構成の一例を示す図である。 入出力スイッチを介して入出力デバイスが接続される一般的な情報処理システムの構成を示す図である。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第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識別情報を用いてアクセスするデバイスアクセスステップと、
をコンピュータ装置に実行させるプログラム。
10、50、80 変換装置
20、60、90 ホスト装置
3、5、6 情報処理システム
4 入出力スイッチシステム
11、51、81 アウトバウンド変換部
12、52、82 インバウンド変換部
21、61、91 デバイス初期化部
22、62、92 デバイスアクセス部
30 入出力スイッチ
31 仮想ブリッジ
53、71 仮想PCIブリッジ
70 PCIeスイッチ
101、301 上流ポート
102、302 下流ポート
103 ブリッジ回路
104 変換回路
201 プロセッサ
202 メモリ
203 入出力インタフェース
303 入出力スイッチ回路
500 PCIeボックス

Claims (10)

  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識別情報を用いてアクセスする方法。
JP2017057747A 2017-03-23 2017-03-23 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム Active JP6579140B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017057747A JP6579140B2 (ja) 2017-03-23 2017-03-23 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017057747A JP6579140B2 (ja) 2017-03-23 2017-03-23 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018160163A true JP2018160163A (ja) 2018-10-11
JP6579140B2 JP6579140B2 (ja) 2019-09-25

Family

ID=63796702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017057747A Active JP6579140B2 (ja) 2017-03-23 2017-03-23 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6579140B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950826B2 (en) 2012-12-27 2021-03-16 Kateeva, Inc. Techniques for print ink droplet measurement and control to deposit fluids within precise tolerances
US11088035B2 (en) 2013-12-12 2021-08-10 Kateeva, Inc. Fabrication of thin-film encapsulation layer for light emitting device
US11673155B2 (en) 2012-12-27 2023-06-13 Kateeva, Inc. Techniques for arrayed printing of a permanent layer with improved speed and accuracy
WO2023112646A1 (ja) * 2021-12-16 2023-06-22 日本電気株式会社 情報処理装置、及び情報処理装置の制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950826B2 (en) 2012-12-27 2021-03-16 Kateeva, Inc. Techniques for print ink droplet measurement and control to deposit fluids within precise tolerances
US11233226B2 (en) 2012-12-27 2022-01-25 Kateeva, Inc. Nozzle-droplet combination techniques to deposit fluids in substrate locations within precise tolerances
US11489146B2 (en) 2012-12-27 2022-11-01 Kateeva, Inc. Techniques for print ink droplet measurement and control to deposit fluids within precise tolerances
US11678561B2 (en) 2012-12-27 2023-06-13 Kateeva, Inc. Nozzle-droplet combination techniques to deposit fluids in substrate locations within precise tolerances
US11673155B2 (en) 2012-12-27 2023-06-13 Kateeva, Inc. Techniques for arrayed printing of a permanent layer with improved speed and accuracy
US11088035B2 (en) 2013-12-12 2021-08-10 Kateeva, Inc. Fabrication of thin-film encapsulation layer for light emitting device
US11551982B2 (en) 2013-12-12 2023-01-10 Kateeva, Inc. Fabrication of thin-film encapsulation layer for light-emitting device
WO2023112646A1 (ja) * 2021-12-16 2023-06-22 日本電気株式会社 情報処理装置、及び情報処理装置の制御方法

Also Published As

Publication number Publication date
JP6579140B2 (ja) 2019-09-25

Similar Documents

Publication Publication Date Title
JP6579140B2 (ja) 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム
JP5360607B2 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
CN111092773B (zh) 一种支持虚拟交换的pcie交换芯片端口配置系统和方法
CN100580648C (zh) 对包含在通信信息包中的标识符进行转换的方法和装置
US6996658B2 (en) Multi-port system and method for routing a data element within an interconnection fabric
JP5452733B2 (ja) 計算機システムおよびルーティング制御方法
US8392645B2 (en) Switch system, sub-switch and method of controlling switch system
US20060239287A1 (en) Adding packet routing information without ECRC recalculation
US20130151750A1 (en) Multi-root input output virtualization aware switch
JP5267943B2 (ja) PCI−Express通信システム、及びPCI−Express通信方法
US10162780B2 (en) PCI express switch and computer system using the same
US9268732B2 (en) Tunnel suitable for multi-segment communication links and method therefor
US20160267035A1 (en) Methods and apparatus for augmented bus numbering
US20230161728A1 (en) Method for expanding pcie system, pcie switching device, and pcie system
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
WO2012157103A1 (ja) マルチルートスイッチ、計算機、及び計算機間通信方法
US7447208B2 (en) Configuration access mechanism for packet switching architecture
US6842817B2 (en) Method for generating configuration tables and for forwarding packets through a network
JP5483020B2 (ja) 通信制御装置、ネットワーク、及びネットワークシステム
US20200341928A1 (en) Information processing system
WO2023112646A1 (ja) 情報処理装置、及び情報処理装置の制御方法
JP4529231B2 (ja) 電子機器
JP5364641B2 (ja) 情報処理装置
JP2023143302A (ja) 中継装置および中継方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190711

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: 20190730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190812

R150 Certificate of patent or registration of utility model

Ref document number: 6579140

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150