JP5731108B2 - 中継手段、中継システム、中継方法およびプログラム - Google Patents

中継手段、中継システム、中継方法およびプログラム Download PDF

Info

Publication number
JP5731108B2
JP5731108B2 JP2009158812A JP2009158812A JP5731108B2 JP 5731108 B2 JP5731108 B2 JP 5731108B2 JP 2009158812 A JP2009158812 A JP 2009158812A JP 2009158812 A JP2009158812 A JP 2009158812A JP 5731108 B2 JP5731108 B2 JP 5731108B2
Authority
JP
Japan
Prior art keywords
setting
unit
relay
request
value
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.)
Active
Application number
JP2009158812A
Other languages
English (en)
Other versions
JP2011014023A (ja
Inventor
鈴木 順
順 鈴木
飛鷹 洋一
洋一 飛鷹
淳一 樋口
淳一 樋口
隆士 吉川
隆士 吉川
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 JP2009158812A priority Critical patent/JP5731108B2/ja
Publication of JP2011014023A publication Critical patent/JP2011014023A/ja
Application granted granted Critical
Publication of JP5731108B2 publication Critical patent/JP5731108B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は中継手段、中継システム、中継方法およびプログラムに関し、特に入出力(I/O)デバイスを複数のコンピュータ間で共有する入出力(I/O)システムおよび入出力(I/O)制御方法に関する。
現在、コンピュータ内部の各パーツ間を接続する、入出力(I/O:input/output)に関する標準のバス規格として、ペリフェラル コンポネント インタコネクト(PCI)が広く使用されている。
ハードウェア資源の効率的な利用を目的として、システムイメージ(SI)の多重化を可能にしてこのPCIハードウェア資源を共有するよう拡張した次世代の規格が、シングルルート入出力仮想化及び共有化仕様(Single Root I/O Virtualization and Sharing Specification:SR−IOV)により、PCIエクスプレス(PCIe)として規定されている。
PCIeにおいては、ハードウェアとシステムイメージ(SI)との間に仮想化仲裁(Virtualization Intermediary:VI)と呼ばれるソフトウェアが仲介する。これにより、ハードウェア側からシステムイメージ(SI)が仮想マシン(Virtual Machine:VM)とみなされる。
このようなシステムにおいて、プラットフォーム資源のオーバヘッドを削減するためのシステム構成が、非特許文献1に提案されている。
図22は、このような入出力(I/O)システム構成の一例を示すブロック図である。
図22において、非特許文献1に記載のI/Oシステム900は、ホスト9とI/Oデバイス5からなる。I/Oデバイス5は、PCIeが定めるSR−IOVに対応する仕様である。ホスト9は、演算処理を行うCPU903と、プログラムやデータを格納するメモリ905と、ブリッジ904とを含む。ブリッジ904は、I/Oデバイス5と、メモリ905と、CPU903を相互に接続する。ホスト9は、さらに、CPU903上で動作するN個の仮想マシン(VM)902−1〜902−N、及び、これらのN個の仮想マシンを管理する、管理仮想マシン(管理VM)901とを含む。
I/Oデバイス5は、単一のホスト内で仮想マシン902−1〜902−NがI/Oデバイス5を共有する際、仮想マシン902−1〜902−Nが直接アクセスするインタフェース503を備える。直接アクセスすることにより、I/Oデバイス5に関するソフトウェアによる共有処理を省くことができ、共有に関するオーバヘッドが削減される。
I/Oデバイス5は、I/Oデバイス5の全体の設定を管理仮想マシン901から受け付ける物理関数(Physical Function:PF)501と、仮想マシン902−1〜902−Nに個別に割当てられて、仮想マシン902−1〜902−Nのそれぞれの設定を受け付ける仮想関数(Virtual Function:VF)502−1〜502−Nとからなる。ここで、仮想関数502−1〜502−Nは、仮想マシン902−1〜902−Nにそれぞれ割当てられている。物理関数501と仮想関数502−1〜502−Nのそれぞれは、PCIeに基づいて割当てられるID番号のサブフィールドであるファンクション番号で区別される。物理関数501と仮想関数502−1〜502−Nは、それぞれ、PCIeに準拠したコンフィグレーション(CFG)レジスタである物理関数コンフィグレーション(PF CFG)レジスタ5011と、仮想関数コンフィグレーション(VF CFG)レジスタ5021−1〜5021−Nを備える。
PF CFGレジスタ5011は、管理仮想マシン901からI/Oデバイス5に関する設定を受け付ける。また、VF CFGレジスタ5021−1〜5021−Nは、それぞれ仮想マシン902−1〜902−NからI/Oデバイス5に関する設定を受け付ける。仮想マシン902−1〜902−Nは、それぞれに割当てられた仮想関数502−1〜502−Nにアクセスし、I/O要求を発行する。これにより、I/Oデバイス5の内部でI/O機能の使用に関する仲裁が行われる。すなわち、I/Oデバイス5の機能が仮想関数502−1〜502−Nを通して仮想マシン902−1〜902−Nの間で共有される。
PCI−SIG, Single Root I/O Virtualization and Sharing Specification, Revision 1.0, 2007年9月11日, pp.13−15
しかしながら、このようなI/Oデバイスは、単一ホスト内で管理され、単一ホスト内の複数の仮想マシンの間で共有されることを想定して設計されている。このようなI/Oデバイスを複数のホストにより共有する使用形態の要請が近年増えているが、このようなシステムでは、複数のホストからの設定要求が、I/Oデバイスに対して発せられる。この際に、これらの設定要求が競合すると、I/Oデバイスの設定に障害が発生し、I/Oデバイスの制御ができなくなる。このため、この設定要求の競合は、このようなI/Oデバイスの複数のホストによる共有には大きな障壁となっている。
さらに、ホスト上で動作するソフトウェアも、複数のホストがI/Oデバイスを共有する場合には、I/Oデバイスの設定要求の競合などの障害には対応できず、このような使用形態の実現の障壁となっている。
これらの問題を解決するためには、このようなI/Oデバイスの構成と、I/Oデバイスを制御するホスト側のソフトウェアを、複数のホストがI/Oデバイスを共有するような変更が必要となる。しかし、このような変更作業には、I/Oデバイスの構成要素のそれぞれを複数のホストから共有されるように機能を変更・追加する必要があり、膨大な作業を要する。また、I/Oデバイスの設計時から、複数のホストから共有されるように機能を拡充しておくことは可能であるが、I/Oデバイスは通常、単一のホスト内で管理される使用の様態が殆どであり、複数ホストの共有の機能の使用は通常想定されない。このため、I/Oデバイスのコストを引き上げるという問題がある。
従って、通常単一のホストで管理されているI/Oデバイスを、必要に応じて複数のホストから共有されるようにするため、I/Oデバイスの外部で、複数のホストからI/Oデバイスへの設定要求を仲裁する処理を行うシステムを構築することが必要である。
本発明の目的は、単一のホストで管理されるI/Oデバイスに改変を加えることなく、I/Oデバイスが複数のホストから共有されるシステムを提供することである。
本発明の中継システムは、デバイスと、デバイスを設定する設定手段と、設定手段とデバイスとを接続する中継手段とを含む中継システムであって、中継手段は設定手段のデバイスに対する設定要求に含まれる設定情報を保存手段に保持し、保存手段に保持した設定情報を元にデバイスを設定することを特徴とする。
本発明の中継手段は、デバイスと、デバイスを設定する設定手段とを接続する中継手段であって、設定手段のデバイスに対する設定要求に含まれる設定情報を保持する保存手段と、保存手段に保持した設定情報を元にデバイスを設定する制御手段とを含むことを特徴とする。
本発明の中継方法は、デバイスと、デバイスを設定する設定手段とを中継する中継方法であって、設定手段のデバイスに対する設定要求に含まれる設定情報を保持し、保持した設定情報を元にデバイスを設定することを特徴とする。
本発明の中継プログラムは、デバイスと、デバイスを設定する設定手段とを中継する中継プログラムであって、設定手段のデバイスに対する設定要求に含まれる設定情報を保持する保持処理と、保持した設定情報を元にデバイスを設定するデバイス設定処理とをコンピュータに行わせることを特徴とする。
本発明は単一のホスト内で管理されるI/Oデバイスを複数のホストにより共有されるシステムに関する。本発明によれば、ホストに不要な処理を実行させることなく、I/Oデバイスの状態に応じた最適な設定が可能になる。
本発明の第1の実施形態の構成を示すブロック図と流れ図である。 本発明の第1の実施形態の動作を示す流れ図である。 本発明の第1の実施形態の動作を示す流れ図である。 本発明の第2の実施形態の構成を示すブロック図である。 本発明の第2の実施形態におけるネットワーク処理部の構成を示すブロック図である。 本発明の第2の実施形態におけるI/Oパケット転送部の構成を示すブロック図である。 本発明の第2の実施形態におけるI/O仮想化部の構成を示すブロック図である。 本発明の第2の実施形態におけるアドレス変換部の構成を示すブロック図である。 本発明の第2の実施形態の動作を示す流れ図である。 本発明の第2の実施形態の動作を示す流れ図である。 本発明の第2の実施形態の動作を示す流れ図である。 本発明の第2の実施形態の動作を示す流れ図である。 本発明の第3の実施形態の構成を示すブロック図である。 本発明の第3の実施形態におけるI/O仮想化部の構成を示すブロック図である。 本発明の第3の実施形態の動作を示す流れ図である。 本発明の第4の実施形態の構成を示すブロック図である。 本発明の第4の実施形態におけるI/O仮想化部の構成を示すブロック図である。 本発明の第4の実施形態の動作を示す流れ図である。 本発明の第5の実施形態におけるI/O仮想化ブリッジの構成を示すブロック図である。 本発明の第5の実施形態におけるI/O仮想化部の構成を示すブロック図である。 本発明の第5の実施形態の動作を示す流れ図である。 関連技術を説明するための図である。
(第1の実施形態)
次に、発明を実施するための形態について、図面を参照して、詳細に説明する。
本発明の第1の実施形態による中継システムについて、図面を参照して詳細に説明する。図1は本発明の実施形態による中継システムの構成を示すブロック図である。
図1を参照すると、本発明の第1の実施形態による中継システム1000は、設定手段1001と、設定手段1001が設定しようとするデバイス1002と、設定手段1001とデバイス1002を接続する中継手段1003とを含む。
中継手段1001は、制御手段1004と、記憶手段1005とを含む。
設定手段1001は、デバイス1002に対して設定要求を送信する。中継手段1003は、設定手段1001が発行した設定要求を受信し、制御手段1004により設定要求を処理する。設定要求は設定情報を含む。ここで、設定情報は、例えば、デバイスに対して何らかの状態を設定するための情報である。
設定手段1001はまた、参照要求をデバイス1002に対して送信し、デバイス1002は、受信した参照要求に対して応答を返す。
本発明の第1の実施形態による中継手段1003は、設定手段1001が発信した設定情報を受信し、また、設定手段1001が発信した参照要求を受信する。さらに、中継手段1003は、設定手段1001に対して、デバイス1002が設定手段1001に返す応答と同等の応答を設定手段1001に返す。
さらにまた、中継手段1003は、デバイス1002の設定に関する情報を用いてデバイス1002を設定する。或は、中継手段1003は、設定手段1001がデバイス1002に対して発行する設定要求と同等の設定指示を、デバイス1002に対して発行してもよい。
中継手段1003が備える制御手段1004は、設定手段1001が発行した設定要求を受信して、設定要求に含まれる設定情報を記憶手段1005に保持することができる。また、記憶手段1005に保持した設定情報を元に、デバイス1002に設定指示を発行することができる。
次に、図1乃至3を参照して、本発明を実施するための第1の実施形態における中継システム1000の動作を説明する。
設定手段1001は、デバイス1002宛に信号を発行する(図2のステップS101)。
設定手段1001が発行した信号がデバイス1002に対する設定要求であれば(ステップS102のYES)、中継手段1003は、設定要求を受け、制御手段1004により設定要求に含まれる設定情報を記憶手段1005に保持する(ステップS103)。
設定手段1001が発行した信号が、デバイス1002への参照要求であれば(ステップS102のNO)、制御手段1004は記憶手段1005に保持した設定情報を元に、設定手段1001に応答を返す(ステップS104)。設定手段1001への応答は、例えば、デバイス1002の実際の設定状態にかかわらず、デバイス1002が設定手段1001の発行した設定要求の通りに設定されている、という内容を含んでも良い。
制御手段1004は、デバイス1002を設定する場合(ステップS105のYES)は、記憶手段1005の保持した設定情報を元に設定に関する情報を生成し、この設定に関する情報に基いてデバイス1002を設定する(ステップS106)。また、デバイス1002の入力の仕様によっては、設定手段1001がデバイス1002に対して発行する設定要求と同等の設定指示を、中継手段1003がデバイス1002に対して発行することができる。この場合、制御手段1004は、デバイス1002の設定に関する情報を含む設定指示を、設定手段1001が発行する設定要求のフォーマットに変換して、デバイス1002に対して発行する。
また、上述のデバイス1002の設定処理によりデバイス1002に問題が生じた場合(図3のステップS107のYES)は、デバイス1002から設定手段1001に宛てた通知を中継手段1003が受信する(ステップS108)。
中継手段1003の制御手段1004は通知を受けて、この通知を制御する。すなわち、この通知を破棄して放置する(ステップS110)か、デバイスを再設定するかを判断する(ステップS109)。
また、制御手段1003は、デバイス1002を制御手段1003により再設定する(ステップS111)か、デバイス1002からの通知を設定手段1001に送信してデバイス1002の再設定を要求するか(ステップS112)を判断する(ステップS113)。なお、デバイス1002の再設定は、問題が生じる設定要求を受信する前の状態に戻してもよい。
第1の実施形態において、中継手段1003は、設定手段1001がデバイス1002に対して発行した設定要求を元に設定情報を記憶手段1005に保持する。中継手段1003は、この設定情報に基いて、デバイス1002の設定を制御する。設定手段1001に対しては、照会に対して、デバイス1002が設定済みであると応答する。これにより、設定手段1001に不要な処理を実行させることなく、デバイス1002の状態に応じた最適な設定ができる。また、通信回線への不要な負荷を抑制することができる。
(第2の実施形態)
本発明の第2の実施形態による入出力(I/O)システム(中継システム)について図面を参照して詳細に説明する。図4は本発明に実施形態によるI/Oシステムの構成を示すブロック図である。
なお、I/Oデバイスの構成は、図22と同じであるので、各部材に同じ参照番号を付して、説明を省略する。
第2の実施形態では、複数のホスト(設定手段)がI/Oデバイス(デバイス)を共有する。
図4を参照すると、本発明の第2の実施形態によるI/Oシステム100は、ホスト1−1〜1−Nと、ホスト1−1〜1−Nによって共有されるI/Oデバイス5と、ホスト1−1〜1−NとI/Oデバイス5とを相互に接続するネットワーク3と、ホスト1−1〜1−NのI/Oデバイス5に対する設定要求を仲裁するI/O仮想化ブリッジ4(中継手段)とを含む。I/O仮想化ブリッジ4は、I/Oデバイス5をネットワーク3に接続する。このI/Oシステムは、さらに、ホスト1−1〜1−Nをネットワーク3に接続するホストブリッジ2−1〜2−Nを含む。
ホスト1−1〜1−Nは、それぞれ、演算処理を行うCPU101−1〜101−Nと、プログラムやデータを格納するメモリ103−1〜103−Nと、ブリッジ102−1〜102−Nとを含む。ブリッジ102−1〜102−Nは、ホストブリッジ2−1〜2−Nと、メモリ103−1〜103−Nと、CPU101−1〜101−Nを相互に接続する。
ホストブリッジ2−1〜2−Nは、それぞれホスト1−1〜1−Nが発行するI/Oパケットをネットワーク3で定められたパケット(以下ネットワークパケットと称する)の仕様(フォーマット)にカプセル化し、ネットワーク3に送信する。なお、PCIeでは特に、I/Oパケットをトランザクション レイヤ パケット(Transaction Layer Packet:TLP)と呼ぶ。以下では、このようなI/OパケットをTLPと呼ぶ。
また、ホストブリッジ2−1〜2−Nは、TLPがカプセル化されたネットワークパケットを受信して、TLPをデカプセル化する。このTLPはI/Oデバイス5から送信され、ホストブリッジ2−1〜2−Nがそれぞれ接続するホスト1−1〜1−N宛である。デカプセル化されたTLPは、ホスト1−1〜1−Nのうちの送信先として指定されたホストに送信される。
ネットワーク3は、TLPがカプセル化されたネットワークパケットを、宛先として指定されたホストに接続されるノードに送信する。
I/O仮想化ブリッジ4は、ネットワーク処理部401と、I/Oパケット転送部402と、I/O仮想化部403と、アドレス変換部404と、仮想CFGレジスタ405−1〜405−Nとを含む。ネットワーク処理部401は、TLPのカプセル化およびデカプセル化処理を行う。I/Oパケット転送部402は、TLPの種類を判定し、指定された宛先にTLPを転送する。I/O仮想化部403は、ホスト1−1〜1−NによるI/Oデバイス5への設定を仲裁する。アドレス変換部404は、TLPの宛先アドレスを変換する。仮想CFGレジスタ405−1〜405−Nは、ホスト1−1〜1−Nに対して、I/Oデバイス5の仮想関数コンフィグレーション(VF CFG)レジスタを仮想的に提供する。
図5乃至8を参照して、I/O仮想化ブリッジ4を構成する各部の働きを次に説明する。
図5に示すネットワーク処理部401は、ホスト1−1〜1−Nから送信された設定要求を含むTLPがカプセル化されたネットワークパケットを、ネットワークパケット送受信部413によりネットワーク3から受信する。デカプセル化部411は、このネットワークパケットからTLPをデカプセル化し、このTLPをI/Oパケット転送部402に転送する。また、ネットワーク処理部401は、I/Oパケット転送部402からホスト1−1〜1−N宛のTLPを受信し、カプセル化部412によりTLPをカプセル化する。ネットワークパケット送受信部413は、カプセル化したTLPをネットワーク3に送信する。ネットワーク処理部401は、アドレス保持部414に保持されている、宛先ホスト1−1〜1−Nが接続するホストブリッジ2−1〜2−Nのネットワークアドレスを用いてTLPのカプセル化をする。
図6に示すI/Oパケット転送部402は、ホスト1−1〜1−Nが発行したTLPをネットワーク処理部401から受信し、パケット選択部421により、これらのTLPから、I/O仮想化部403において仲裁されるI/Oデバイス5の設定パケットを選択する。第1転送部422は、選択されたTLP(以後、設定TLPと言う。)をI/O仮想化部403に転送する。また、第1転送部422は、ホスト1−1〜1−Nが発行したTLPのうち、選択されなかったTLPを、アドレス変換部404に転送する。さらに、I/Oパケット転送部402は、I/O仮想化部403とアドレス変換部404とから、ホスト1−1〜1−NとI/Oデバイス5のいずれかに宛てたTLPを受信する。第2転送部423は、受信したTLPを、指定された宛先へ転送する。
図7に示すI/O仮想化部403は、ホスト1−1〜1−NによるI/Oデバイス5への設定を仲裁する。すなわち、I/O仮想化部403は、I/Oデバイス5にそのまま設定されると各ホストからの設定が競合するような設定を仲裁する。I/O仮想化部403は、ホスト1−1〜1−Nが発行したI/Oデバイス5の設定TLPをI/Oパケット転送部402から受信する。パケット仲裁部431は、設定TLPを元にして得られた設定値を仮想CFGレジスタ405−1〜405−Nに登録する。
I/O仮想化部403は、仮想CFGレジスタに登録された設定値を元にI/Oデバイス5への設定を仲裁する。すなわち、以下の3つの少なくともいずれか1つの処理を行う。
(1)パケット仲裁部431は、I/Oデバイス5に対しては設定処理を行わないが、ホスト1−1〜1−Nに対してはI/Oデバイス5が設定された状態にする。
(2)I/Oデバイス設定値生成・変換部432は、ホスト1−1〜1−Nから仮想CFGレジスタ405−1〜405−Nに登録した設定情報に対し、これらの設定情報が要求する全ての条件を満たす設定値を求め、得られた設定値に基づいてI/Oデバイス5の物理関数コンフィグレーション(PF CFG)レジスタ5011を設定する。例えば、設定指示を生成し、I/Oデバイス5に対して発行する。
(3)I/Oデバイス5の物理関数501が仮想関数502−1〜502−Nを制御するインタフェースを実装している場合には、I/Oデバイス設定値生成・変換部432は、(2)で求めた設定値を、I/Oデバイス5のPF CFGレジスタ5011を設定する設定TLP(設定指示)に変換し、変換した設定TLPをI/Oデバイス5に発行する。なお、この設定TLPは、ホスト1−1〜1−Nが発行した設定TLP(設定要求)とは異なったものになる。
なお、上記(1)での、ホスト1−1〜1−Nに対してI/Oデバイス5が設定された状態は、ホスト1−1〜1−Nの少なくとも何れか1つがI/Oデバイス5にリード要求を発行したときに、仮想CFGレジスタがI/Oデバイス5の設定状態を返却値としてホストに返すことにより実現する。
I/Oデバイス5に設定をしているか否かによらず、ホスト1−1〜1−NはI/Oデバイス5が設定されているという返却値を受ける。
I/O仮想化部403はまた、ホスト1−1〜1−Nを設定する、I/Oデバイス5がホスト1−1〜1−Nへ発行した設定TLP(通知)を仲裁する。ホスト1−1〜1−Nからの設定要求により、I/Oデバイス5でエラーなどが発生し、I/Oデバイス5を共有する全てのホスト1−1〜1−Nに影響を与えるような場合に、I/Oデバイス5がホスト1−1〜1−Nに対してこのような設定TLPを発行する。I/O仮想化部403は、この設定TLPを仲裁する。
すなわち、I/O仮想化部403は、以下の3つの少なくともいずれか1つの処理を行い、ホスト1−1〜1−Nへの設定TLPを仲裁する。
(1')パケット仲裁部431は、I/Oデバイス5が発行した設定TLPをI/Oパケット転送部402から受信し、受信したTLPを破棄して放置する。
(2')ホスト通知生成部434は、全てのホスト1−1〜1−N宛にイベントを通知するTLPを作成し、作成したTLPをI/Oパケット転送部402を経由してホスト1−1〜1−Nに送信する。
(3')I/Oデバイス設定値生成・変換部432は、問題を生じる設定の代わりに、その設定を基にしてI/Oデバイス5を制御する設定TLPを独自に作成し、作成したTLPを基にI/Oデバイス5のPF CFGレジスタ5011を設定する。なお、この再設定は、I/Oデバイスの設定を、ホスト1−1〜1−Nが設定TLPを発行する前の状態に戻してもよい。
また、I/O仮想化部403は、デバイス情報登録部433により、I/Oデバイス5の物理関数が含むPF CFGレジスタ5011のみが保持しているデバイス情報を取得し、このデバイス情報を仮想CFGレジスタ405−1〜405−Nに登録してもよい。これにより、ホスト1−1〜1−Nが仮想CFGレジスタ405−1〜405−Nをリード(READ)した場合に、デバイス5のデバイス情報が取得できる。
仮想CFGレジスタ405−1〜405−Nは、I/Oデバイス5の各VF CFGレジスタを、ホスト1−1〜1−Nに、仮想的に提供する。すなわち、ホスト1−1〜1−Nからのリード要求に対して、仮想CFGレジスタがI/Oデバイス5のVF CFGレジスタの情報を返すことができる。仮想CFGレジスタ405−1〜405−NはI/Oデバイス5が含む仮想関数502−1〜502−Nにそれぞれ対応し、ホスト1−1〜1−Nからのアクセスをそれぞれ受け付ける。仮想CFGレジスタ405−1〜405−Nは、ホスト1−1〜1−NがI/Oデバイス5に設定した設定情報を、例えばデバイス情報登録部433を経由して登録し、保持する。また、仮想CFGレジスタ405−1〜405−Nは、ホスト1−1〜1−Nからリード要求があれば、保持されている値を返す。仮想CFGレジスタ405−1〜405−Nはまた、ホスト1−1〜1−NがI/Oデバイス5に割当てるアドレスとメモリ領域とI/O領域の情報を、例えばデバイス情報登録部433を経由して登録し、保持する。
図8に示すアドレス変換部404は、ホスト1−1〜1−NがI/Oデバイス5に発行した設定要求を含むTLPのうち、I/O仮想化部403において仲裁されるI/Oデバイス5の設定パケットとして選択されなかった設定TLPを受信する。上述のように、仮想CFGレジスタ405−1〜405−Nには、ホスト1−1〜1−NがI/Oデバイス5に割当てたアドレスとメモリ領域とI/O領域の情報が登録されている。アドレス参照部442は、これらの登録情報を参照し、ヘッダアドレス変換部441により、TLPの宛先アドレスを、設定されているI/Oデバイス5のアドレスとメモリ領域とI/O領域を元に変換する。アドレス変換部404は、宛先アドレスが変換された設定TLPを、I/Oパケット転送部402を経由して、I/Oデバイス5に送信する。また、アドレス変換部404は、I/Oデバイス5がホスト1−1〜1−Nに対して発行した通知を含むTLPを受信する。アドレス参照部442は、仮想CFGレジスタ405−1〜405−Nに登録された情報を参照し、ヘッダアドレス変換部441は、TLPの宛先アドレスを変換する。アドレス変換部404は、I/Oパケット転送部402を経由して、変換したTLPを、ホスト1−1〜1−Nのうち、TLPの宛先に指定されているホストに送信する。
I/Oデバイス5は、仮想関数502−1〜502−Nを、それぞれホスト1−1〜1−Nに割当てる。これにより、ホスト1−1〜1−Nは、I/Oデバイス5の機能を共有する。
次に、図4、図9及び図10を参照して、本発明を実施するための第2の実施形態において、ホスト1−1からI/Oデバイス5へTLPを発行する動作を詳細に説明する。なお、この他のホスト1−2〜1−Nの何れか1つからI/Oデバイス5へTLPを発行する場合の動作も同様である。
ホスト1−1は、I/Oデバイス5宛のTLPを発行する(図9のステップS201)。ホストブリッジ2−1は、ホスト1−1が発行したTLPをI/O仮想化ブリッジ4のネットワークアドレスを宛先としてカプセル化し(ステップS202)、カプセル化したTLPを含むネットワークパケットをネットワーク3に送信する(ステップS203)。
ネットワーク処理部401は、TLPがカプセル化されたネットワークパケットを受信し、TLPをデカプセル化し(ステップS204)、TLPをI/Oパケット転送部402に転送する。I/Oパケット転送部402は、TLPがI/O仮想化部403が仲裁する設定TLPかどうかを判定し(ステップS205)、そのTLPがI/O仮想化部403が仲裁する設定TLPであれば、I/O仮想化部403へTLPを転送する。I/Oパケット転送部402は、TLPがI/O仮想化部403が仲裁する設定TLPでなければ、TLPをアドレス変換部404に転送する。
仮想CFGレジスタ405−1には、登録されているホスト1−1がI/Oデバイス5に割当てたアドレスとメモリ領域とI/O領域の情報が登録されている。アドレス変換部404は、この仮想CFGレジスタ405−1に登録されている情報を参照し、TLPのヘッダのアドレスを、I/Oデバイス5の仮想関数502−1に割当てられたアドレスに変換する(ステップS205)。アドレス変換部404は、このTLPを、I/Oデバイス5へ送信する(ステップS207)。
一方、ステップS205において、TLPがI/O仮想化部403が仲裁する設定TLPであった場合のI/O仮想化部403の処理を、図10を参照して詳しく説明する。
I/O仮想化部403は、ホスト1−1〜1−NからのTLPがライト(WRITE)、すなわち設定要求であれば(図10のステップS211)、次の3つのうちの少なくとも一つの処理をする。
(1)I/Oデバイス5を設定するかどうか判定し(ステップS213)、設定しない場合は、仮想CFGレジスタ405−1に設定情報をライトし、I/Oデバイス5に対して設定処理を行わないが、ホスト1−1に対してI/Oデバイス5が設定された状態にする(ステップS214)。
(2)I/Oデバイス5を設定する場合は、ホスト1−1〜1−Nが仮想CFGレジスタ405−1〜405−Nに登録した設定情報に対し、これらの設定情報が要求する全ての条件を満たす設定値を求める。I/Oデバイス5にインタフェースが実装されるかどうかを判定し(ステップS215)、インタフェースが具備されない場合は、得られた設定値に基づいてI/Oデバイス5のPF CFGレジスタ5011に設定指示を送り、直接設定する(ステップS216)。
(3)I/Oデバイス5の物理関数501が仮想関数502−1〜502−Nを制御するインタフェースを実装している場合には、(2)で求めた設定値を、PF CFGレジスタ5011を設定する設定TLPに変換し、変換した設定TLPを設定指示としてI/Oデバイス5に発行する(ステップS217)。
一方、ホスト1−1〜1−NからのTLPがリード(参照要求)であれば、I/O仮想化部403は、仮想CFGレジスタ405−1の所定の位置から設定情報をリードし、リードされた設定情報を元に、ホスト1−1に応答を返す(ステップS212)。
次に、図4、図11及び図12を参照して、本発明を実施するための第2の実施形態において、I/Oデバイス5からホスト1−1へTLPを発行する動作を詳細に説明する。I/Oデバイス5からこの他のホスト1−2〜1−Nの何れか1つへTLPを発行する場合の動作も同様である。
ホスト1−1に対する処理は、I/Oデバイス5では仮想関数502−1に割当てられている。この仮想関数502−1は、ホスト1−1宛のTLPを発行する(図11のステップS301)。I/O仮想化ブリッジ4のI/Oパケット転送部402は、このTLPを受信し、このTLPがI/O仮想化部403が仲裁する設定TLPかどうかを判定する(ステップS302)。このTLPがI/O仮想化部403が仲裁する設定TLPであれば、I/Oパケット転送部402は、I/O仮想化部403へTLPを転送する。このTLPがI/O仮想化部403が仲裁する設定TLPでなければ、パケット転送部402は、アドレス変換部404にTLPを転送する。
ホスト1−1がI/Oデバイス5に割当てたアドレスとメモリ領域とI/O領域の情報は、仮想CFGレジスタ405−1に登録されている。アドレス変換部404は、この登録された情報を参照し、転送されたTLPのヘッダのアドレスを、この登録情報に基いて変換する(ステップS303)。
続いて、ネットワーク処理部401は、ホストブリッジ2−1のネットワークアドレスを宛先としてTLPをカプセル化し(ステップS304)、カプセル化したTLPを含むネットワークパケットをネットワーク3に送信する(ステップS305)。
ホストブリッジ2−1は、TLPがカプセル化されたネットワークパケットを受信し、TLPをデカプセル化する(ステップS306)。ホストブリッジ2−1はさらに、デカプセル化されたTLPをホスト1−1に転送する(ステップS307)。
一方、ステップS302において、受信したTLPが、I/O仮想化部403が仲裁する設定TLPであった場合のI/O仮想化部403の処理を、図12を参照して説明する。I/O仮想化部403は、次の3つのうちの少なくとも一つの処理を行う。
(1')I/Oデバイス5を再設定するかどうかを判定し(図12のステップS311)、再設定しない場合は受信したTLPを破棄して放置する(ステップS312)。
(2')I/Oデバイス5を再設定する場合、設定処理をホスト1−1〜1−Nが担当するかI/O仮想化部4が担当するかを判断する(ステップS313)。ホストが再設定の処理を担当する場合、全てのホスト1−1〜1−N宛の通知TLPを作成し、この作成されたTLPを、I/Oパケット転送部402を経由して、ホスト1−1〜1−Nに送信する(ステップS314)。ホスト1−1〜1−Nは、これらの通知TLPを受信して、I/Oデバイス5で発生している問題に対応して、I/Oデバイス5への設定を調整する。
(3')I/Oデバイス5の再設定をI/O仮想化部が担当する場合、受信した設定TLPを元にしてI/Oデバイス5を制御する設定TLP(設定指示)を独自に作成し、作成したTLPを基に、PF CFGレジスタ5011を再設定する(ステップS315)。なお、この再設定は、I/Oデバイス5を、ホスト1−1〜1−Nが設定要求を含む設定TLPを発行する前の状態に戻しても良い。
次に、本発明を実施するための第2の実施形態の効果を説明する。
第2の実施形態では、I/Oデバイスを共有する複数ホストからのI/Oデバイスに対する設定を、(1)I/Oデバイスへの設定処理を行わずに、ホストに対しては設定した状態にする、(2)全てのホストからの設定要求を満たす設定値を、実際にI/Oデバイスを設定する設定値として採用する、或は、(3)I/Oデバイスが実装する管理インタフェースに対する設定指示に変換する、などの処理により、複数ホストからのI/Oデバイスに対する設定の競合を仲裁する。また、I/Oデバイスからホストに宛てた通知に対しては、(1')I/Oデバイスからホストへの通知を破棄する、(2')通知をコピーして全てのホストに通知する、或は、(3)I/Oデバイスの設定を変更する、などの処理を行う。これらの処理により、I/Oデバイスとホストのそれぞれのソフトウェアを変更せずに、複数のホストがI/Oデバイスを共有する。
これにより、単一ホスト内で管理され、単一ホスト内の複数の仮想マシンの間で共有されることを想定して設計されているI/Oデバイスを、複数のホストで共有するI/Oシステムにおいて、ホスト1−1〜1−Nに不要な処理を実行させること無く、I/Oデバイスの状態に応じた最適な設定ができる。また、通信回線への不要な負荷を抑制することができ、システムの稼働率や処理効率を高く維持することができる。
(第3の実施形態)
次に、本発明を実施するための第3の実施形態について図面を参照して詳細に説明する。
図13に示す本発明を実施するための第3の実施形態によるI/O仮想化ブリッジ6は、第2の実施形態におけるI/O仮想化部403に換えて、I/O仮想化部601を備える。さらに、I/O仮想化ブリッジ6は、第2の実施形態における仮想CFGレジスタ405−1〜405−Nに換えて、仮想CFGレジスタ605−1〜605−Nを備える。このI/O仮想化部601における処理は、I/Oデバイス5のデバイスIDと制限値に関する処理の仲裁を含む。
仮想CFGレジスタ605−1〜605−Nは、デバイスID保持部6051−1〜6051−Nと、制限値保持部6052−1〜6052−Nとを含む。デバイスID保持部6051−1〜6051−Nは、I/Oデバイス5の製造者や種別を示すデバイスIDの値を保持する。制限値保持部6052−1〜6052−Nは、I/Oデバイス5が用いるTLPのパケットサイズやタイムアウト値等の上限値や下限値に対する制限値を保持する。この制限値は、ホスト1−1〜1−Nが設定する。
図14を参照して、I/O仮想化部601の各部の構成を説明する。なお、第2の実施形態における構成と同じ部分については、説明を省略する。
I/O仮想化部601は、第2の実施形態におけるデバイス情報登録部433に換えて、デバイス情報登録・仲裁部633を備える。
図13乃至15を参照して、第3の実施形態におけるI/O仮想化ブリッジ6の動作を説明する。なお、第2の実施形態における動作と重複する部分については、説明を省略する。
I/O仮想化部601は、I/Oデバイス5がホスト1−1〜1−Nに対するサービスを開始する前に、I/Oデバイス5のPF CFGレジスタ5011からデバイスID保持部6051−1〜6051−Nに表示する値を読み込み、デバイスID保持部6051−1〜6051−Nに反映させる(図15のステップS401)。ホスト1−1〜1−Nが設定TLPを発行し、デバイスIDをリードする(ステップS402)場合、I/O仮想化部601はデバイスID保持部6051−1〜6051−Nに登録した値をホスト1−1〜1−Nに返す(ステップS403)。
I/O仮想化部601はまた、ホスト1−1〜1−NがI/Oデバイス5に設定するTLPのパケットサイズやタイムアウト値等の上限値や下限値を、制限値保持部6052−1〜6052−Nに登録する(ステップS404)。ホスト1−1〜1−Nからのリード要求に対しては、制限値保持部6052−1〜6052−Nに登録された値が返される。I/O仮想化部601のデバイス情報登録・仲裁部633は、ここに登録された値の中で、全てのホストからの設定要求が満たされる値(制限値が下限値であれば全ての制限値の最大値、制限値が上限値であれば全ての制限値の最小値)を実際の設定値として、これら制限値の最大値と最小値を仮想CFGレジスタ605−1〜605−Nに保持する(ステップS405)。これらの設定値は、I/Oデバイス設定値生成・変換部432とI/Oパケット転送部402を介してI/Oデバイス5に設定される(ステップS406)。ホスト1−1〜1−NからのTLPが仲裁を必要とする場合に、パケット仲裁部431は、仮想CFGレジスタ605−1〜605−Nからこれらの制限値を読み込んで、TLPの仲裁の制約条件とする。
ホスト1−1〜1−Nのそれぞれは、その処理能力に応じてI/Oデバイス5を設定しようとして、設定要求をI/O仮想化ブリッジ4に送信する。例えば、最大パケットサイズを256Bと設定するホストと、最大パケットサイズを512Bと設定するホストが、それぞれ設定要求を送信するとする。この場合、I/Oデバイス5には最大パケットサイズが256Bに設定される。256Bより大きな値に設定されると、最大パケットサイズを256Bと設定しようとしたホストに不具合が生じる。一方、ホストからのリード要求に対しては、設定要求により保持された値を応答として返すので、最大パケットサイズを512Bと設定したホストは、実際にI/Oから受信するパケットが256B以下である動作であっても、最大パケットサイズが512Bと設定されているとの応答を受ける。
第3の実施形態では、I/Oデバイスにおいてホスト1−1〜1−Nにそれぞれ割当てられたデバイスのデバイスIDをI/O仮想化ブリッジ6が保持しており、ホストからのリード要求に対して、デバイスIDを付して返却値をホストに返す。これにより、I/Oデバイスの個々の属性を考慮した設定処理が可能になる。また、ホスト1−1〜1−NがI/Oデバイス5に対して設定した制限値の要求をすべて満足するような値を、最大値と最小値として求めて、I/O仮想化ブリッジ6が保持し、I/Oデバイス5に設定する。この最大値と最小値を制約条件とすることにより、TLPの仲裁を高速に処理することができる。
(第4の実施形態)
次に、本発明を実施するための第4の実施形態について図面を参照して詳細に説明する。
図16に示す本発明を実施するための第4の実施形態によるI/O仮想化ブリッジ7は、第2の実施形態におけるI/O仮想化部403に換えて、I/O仮想化部701を備える。さらに、I/O仮想化ブリッジ7は、第2の実施形態における仮想CFGレジスタ405−1〜405−Nに換えて、仮想CFGレジスタ705−1〜705−Nを備える。このI/O仮想化部7における処理は、I/Oデバイス5に対する電力制御(パワーマネジメント)に関する処理の仲裁を含む。
仮想CFGレジスタ405−1〜405−Nは、ホスト1−1〜1−NからI/Oデバイス5に対する電力制御の要求を受け付けるとともに、I/Oデバイス5の電力制御の状態をホスト1−1〜1−Nに示す電力制御値保持部7053−1〜7053−Nを含む。
図17を参照して、I/O仮想化部701の各部の構成を説明する。なお、第2の実施形態における構成と同じ部分については、説明を省略する。
I/O仮想化部701は、第2の実施形態におけるパケット仲裁部431に換えて、パケット仲裁・電力制御値調整部731を備える。
図16乃至18を参照して、第4の実施形態におけるI/O仮想化ブリッジ7の動作を説明する。なお、第2の実施形態における動作と重複する部分については、説明を省略する。
I/O仮想化部701のデバイス情報登録433は、ホスト1−1〜1−NがI/Oデバイス5に対して発行するTLPを受け、TLPに含まれるI/Oデバイス5の電力制御に関する設定情報を電力制御値保持部7053−1〜7053−Nに登録する(図18のステップS501)。
I/O仮想化部701において、パケット仲裁・電力制御値調整部731は、ホストから受信したTLPを仲裁し、さらに、仲裁した結果を元に、仮想CFGレジスタ701−1〜701−Nの電力制御値保持部7053−1〜7053−Nに保持された電力制御値を調整する。すなわち、第2の実施例と同様にして、
(1)I/Oデバイス5に電力制御を設定するかどうか判定し(ステップS502)、電力制御の設定をしない場合は、仮想CFGレジスタ705−1に保持されている電力制御値を調整する。I/O仮想化部701は、I/Oデバイス5に対して電力制御の設定を行わないが、ホスト1−1に対してI/Oデバイス5が電力制御されている状態にする(ステップS503)。すなわち、ホスト1−1〜1−Nの何れかからリード要求があったときは、I/Oデバイスが電力制御されているような電力制御値を返却値としてホストに返す。
(2)I/Oデバイス5に電力制御を設定する場合は、ホスト1−1〜1−Nが仮想CFGレジスタ705−1〜705−Nに登録した設定情報とTLPの仲裁の結果を元にして、ホスト1−1〜1−Nの要求するI/Oデバイスの動作に支障が生じないようにI/Oデバイス5の電力制御の設定を調整する。I/Oデバイス5にインタフェースが実装されるかどうかを判定し(ステップS504)、インタフェースが具備されない場合は、得られた電力制御値に基づいて設定指示を発行し、I/Oデバイス5のPF CFGレジスタ5011を直接設定する(ステップS505)。
(3)I/Oデバイス5の物理関数501が仮想関数502−1〜502−Nを制御するインタフェースを実装している場合には、(2)で求めた電力制御値を、PF CFGレジスタ5011を設定する設定TLPに変換し、変換した設定TLPを設定指示として、I/Oデバイス5に発行する(ステップS506)。
第4の実施形態では、I/Oデバイスにおいて、ホスト1−1〜1−NからI/Oでデバイス5に対して発行された電力制御(パワーマネジメント)要求を受けて、I/Oデバイスに電力制御を設定しない、或は、ホストから要求されるI/Oデバイスの動作に支障が生じないようI/Oデバイス5に電力制御を設定する。これにより、複数のホストからの電力制御に起因した不用意な電力制御によるI/Oデバイスの動作の不具合を防止することができる。すなわち、一つのホストからの電力制御要求により、他のホストから要求された動作に支障が生じるといった不具合を回避し、要求されたI/Oデバイスの動作の稼働率を高く維持することができる。
(第5の実施形態)
次に、本発明を実施するための第5の実施形態について図面を参照して詳細に説明する。
図19に示す本発明を実施するための第5の実施形態によるI/O仮想化ブリッジ8は、第2の実施形態において、I/O仮想化部403に換えてI/O仮想化部801を備える。このI/O仮想化ブリッジ8における処理は、I/Oデバイス5に対するデバイスリセット処理の仲裁を含む。
図20を参照して、I/O仮想化部801の各部の構成を説明する。なお、第2の実施形態における構成と同じ部分については、説明を省略する。
I/O仮想化部801は、第2の実施形態におけるパケット仲裁部431に換えて、パケット仲裁・リセット要求検出部831を備える。
図19乃至21を参照して、第5の実施形態におけるI/O仮想化ブリッジ8の動作を説明する。なお、第2の実施形態における動作と重複する部分については、説明を省略する。
I/O仮想化部801のパケット仲裁・リセット要求検出部831は、ホスト1−1〜1−NがI/Oデバイス5に対して発行するTLPを受け、TLPを仲裁するとともに、TLPに含まれるI/Oデバイス5に対するリセットを要求する信号を検出する(ステップS601)。パケット仲裁・リセット要求検出部831は、リセット要求を含むTLPとそれ以外のTLPとを仲裁し、仮想関数502−1〜502−Nのうち、リセットTLPを発行したホストに割当てられた仮想関数をリセットしても、ホストから要求されたI/Oデバイスの処理に、強制終了を受けて障害が生じないようなリセットのタイミングを求める(ステップS602)。
パケット仲裁・リセット要求検出部831は、求めたリセットのタイミングを元に、リセットTLPをI/Oデバイス設定値生成・変換部432に転送する。I/Oデバイス設定値生成・変換部432は、I/Oデバイス5をリセットする要求を含むリセットTLPを、I/Oデバイス5のうちでTLPを発行したホストに割当てられた仮想関数のみをリセットするファンクションレベルリセットに変換する。I/O仮想化ブリッジ8は、変換されたファンクションレベルリセットをI/Oデバイス5に送信する(ステップS603)。ファンクションレベルリセットを受けた仮想関数はリセットする(ステップS604)。
第5の実施形態では、I/Oデバイスへのリセット要求を含むTLPについて、リセット要求をI/Oデバイスの仮想関数のリセットに部分的に限定する。そしてこのリセット要求を含むTLPを、その他のTLPと仲裁することによって、I/Oデバイスの仮想関数のリセットが他の仮想関数での動作に影響しないようにする。これにより、複数のホストからのI/Oデバイスに対する制御は、リセット要求を含むことができ、リセットによるシステムへの負担を抑制した、自由度の高いI/Oデバイス制御が可能になる。
本発明によれば、コンピュータ装置やネットワーク装置、産業用機器やコンシューマ機器において、I/Oを複数のホスト、あるいはCPUやCPUに類する演算装置を含む情報処理装置の間で共有するといった用途に適用できる。
1−1〜1−N ホスト
2−1〜2−N ホストブリッジ
3 ネットワーク
4 I/O仮想化ブリッジ
5 I/Oデバイス
6 I/O仮想化ブリッジ
7 I/O仮想化ブリッジ
8 I/O仮想化ブリッジ
9 ホスト
100 I/Oシステム
101−1〜101−N CPU
102−1〜102−N ブリッジ
103−1〜103−N メモリ
401 ネットワーク処理部
402 I/Oパケット転送部
403 I/O仮想化部
404 アドレス変換部
405−1〜405−N 仮想CFGレジスタ
411 デカプセル化部
412 カプセル化部
413 ネットワークパケット送受信部
414 アドレス保持部
421 パケット選択部
422 第1転送部
423 第2転送部
431 パケット仲裁部
432 I/Oデバイス設定値生成・変換部
433 デバイス情報登録部
434 ホスト通知生成部
441 ヘッダアドレス変換部
442 アドレス参照部
501 物理関数(PF)
502−1〜502−N 仮想関数(VF)
503 インタフェース
601 I/O仮想化部
605−1〜605−N 仮想CFGレジスタ
633 デバイス情報登録・仲裁部
701 I/O仮想化部
705−1〜705−N 仮想CFGレジスタ
731 パケット仲裁・電力制御値調整部
801 I/O仮想化部
831 パケット仲裁・リセット要求検出部
900 I/Oシステム
901 管理仮想マシン(管理VM)
902−1〜902−N 仮想マシン(VM)
903 CPU
904 ブリッジ
905 メモリ
5011 PF CFGレジスタ
5021−1〜5021−N VF CFGレジスタ
6051−1〜6051−N デバイスID保持部
6052−1〜6052−N 制限値保持部
7053−1〜7053−N 電力制御値保持部
1001 設定手段
1002 デバイス
1003 中継手段
1004 制御手段
1005 記憶手段

Claims (34)

  1. デバイスと、
    前記デバイスを共有し、それぞれが前記デバイスに対して設定要求を発行する複数の設定手段と、
    前記複数の設定手段と前記デバイスとを接続し、前記複数の設定手段の前記デバイスに対する前記設定要求に含まれる設定情報に関する制限値の範囲に基づき、前記設定要求をすべて満たす制限値を算出し、算出した値を前記デバイスに関する設定値として保存手段に格納するとともに、前記設定要求に基づいて設定したことを表す応答を前記複数の設定手段に送信する中継手段と
    を含む、中継システム。
  2. 前記中継手段は、前記設定手段からの参照要求に対して、前記保存手段に保持した前記設定情報を元に、前記設定手段に応答することを特徴とする、請求項1記載の中継システム。
  3. 前記中継手段は、前記保存手段に保持した前記設定情報を元に、前記デバイスの入力仕様に従ったフォーマットの設定指示を生成し、前記デバイスに対して発行することを特徴とする、請求項1に記載の中継システム。
  4. 前記中継手段は、前記デバイスが発行した通知を受信して前記保存手段に保持し、
    (1)前記デバイス及び前記設定手段の状態を維持する、
    (2)前記通知を元に通知情報を生成し、前記設定手段に発行する、
    (3)前記通知を元に前記デバイスを設定する、
    の何れか1つの処理を実行することを特徴とする、請求項1乃至の何れか1項に記載の中継システム。
  5. 前記複数の設定手段がネットワーク接続手段を介して接続され、前記設定要求がカプセル化されたネットワークパケットを指定されたアドレスに配送するネットワーク手段と、をさらに備え、
    前記中継手段は、前記デバイスを前記ネットワーク手段に接続し、前記複数の設定手段による前記デバイスに対する設定情報を仲裁することを特徴とする請求項1乃至の何れか1項に記載の中継システム。
  6. 前記中継手段は、
    前記設定要求をネットワークパケットにカプセル化し、ネットワークパケットから前記設定要求をデカプセル化する手段と、
    前記複数の設定手段から前記デバイスに対して発行された前記設定要求に含まれる設定情報を、前記保存手段に保持し、前記デバイスに対して前記設定情報を仲裁する手段と、
    前記設定要求のアドレスと前記デバイスが発行した通知のアドレスと前記設定手段からの参照要求に対する応答のアドレスの少なくとも1つを変換する手段とを備えたことを特徴とする請求項に記載の中継システム。
  7. 前記中継手段は、前記デバイスが前記複数の設定手段に対してサービスを開始する前に、前記デバイスの識別情報を取得し、前記識別情報を前記保存手段に保持することを特徴とする、請求項又はに記載の中継システム。
  8. 前記中継手段は、前記制限値が下限値である場合には前記下限値の最大値を、前記設定値として算出し、前記制限値が上限値である場合には前記上限値の最小値を、前記設定値として算出することを特徴とする、請求項又はに記載の中継システム。
  9. 前記中継手段は、前記複数の設定手段の電力制御の電力制限値を前記保存手段に保持し、前記設定手段からの参照要求に対して、前記デバイスが電力制御されているような返却値を前記設定手段に返すことを特徴とする、請求項又はに記載の中継システム。
  10. 前記中継手段は、前記設定手段が発行する前記デバイスをリセットするリセット要求に応じて記設定手段割当てられた機能のみをリセットることを特徴とする、請求項又はに記載の中継システム。
  11. 前記デバイスは、PCIエクスプレス(PCIe)が定めるシングルルート入出力仮想化及び共有化仕様(Single−Root I/O Virtualization and Sharing Specification:SR−IOV)に準拠し、仮想関数(Virtual Function)を単位として前記複数の設定手段のそれぞれに入出力(I/O:input and output)資源を割当てることによって、前記複数の設定手段から前記デバイスを共有することを特徴とする、請求項1乃至の何れか1項に記載の中継システム。
  12. デバイスと、前記デバイスを共有しそれぞれが前記デバイスに対して設定要求を発行する複数の設定手段とを接続する中継手段であって、
    前記複数の設定手段の前記デバイスに対する前記設定要求に含まれる設定情報に関する制限値の範囲に基づき、前記設定要求をすべて満たす制限値を算出し、算出した値を前記デバイスに関する設定値として保存手段に格納するとともに、前記設定要求に基づいて設定したことを表す応答を前記複数の設定手段に送信する制御手段
    を含む、中継手段。
  13. 前記制御手段は、前記設定手段からの参照要求に対して、前記保存手段に保持した前記設定情報を元に、前記設定手段に応答することを特徴とする、請求項12に記載の中継手段。
  14. 前記制御手段は、前記保存手段に保持した前記設定情報を元に、前記デバイスの入力仕様に従ったフォーマットの設定指示を生成し、前記デバイスに対して発行することを特徴とする、請求項1に記載の中継手段。
  15. 前記制御手段は、前記デバイスが発行した通知を受信して前記保存手段に保持し、
    (1)前記デバイス及び前記設定手段の状態を維持する、
    (2)前記通知を元に通知情報を生成し、前記設定手段に発行する、
    (3)前記通知を元に前記デバイスを設定する、
    の何れか1つの処理を実行することを特徴とする、請求項1乃至1の何れか1項に記載の中継手段。
  16. 前記制御手段は、前記デバイスを、前記複数の設定手段がネットワーク接続手段を介して接続され前記設定要求がカプセル化されたネットワークパケットを指定されたアドレスに配送するネットワーク手段に接続することを特徴とする請求項1乃至1の何れか1項に記載の中継手段。
  17. 前記設定要求をネットワークパケットにカプセル化し、ネットワークパケットから前記
    設定要求をデカプセル化する手段と、
    前記複数の設定手段から前記デバイスに対して発行された設定要求に含まれる設定情報を前記保存手段に保持し、前記デバイスに対して前記設定情報を仲裁する手段と、
    前記設定要求のアドレスと前記デバイスが発行した通知のアドレスと前記設定手段からの参照要求に対する応答のアドレスの少なくとも1つを変換する手段とをさらに備えたことを特徴とする請求項1に記載の中継手段。
  18. 前記デバイスが前記複数の設定手段に対してサービスを開始する前に、前記デバイスの識別情報を取得し、前記識別情報を前記保存手段に保持することを特徴とする、請求項1又は1に記載の中継手段。
  19. 前記制限値が下限値である場合には前記下限値の最大値を、前記設定値として算出し、前記制限値が上限値である場合には前記上限値の最小値を、前記設定値として算出することを特徴とする、請求項1又は1に記載の中継手段。
  20. 前記複数の設定手段の電力制御の電力制限値を前記保存手段に保持し、前記設定手段からの参照要求に対して、前記デバイスが電力制御されているような返却値を前記設定手段に返すことを特徴とする、請求項1又は1に記載の中継手段。
  21. 前記設定手段が発行するデバイスをリセットするリセット要求に応じて記設定手段割当てられた機能のみをリセットることを特徴とする、請求項1又は1に記載の中継手段。
  22. 前記デバイスは、PCIエクスプレス(PCIe)が定めるシングルルート入出力仮想化及び共有化仕様(Single−Root I/O Virtualization and Sharing Specification:SR−IOV)に準拠し、仮想関数(Virtual Function)を単位として前記複数の設定手段のそれぞれに入出力(I/O:input and output)資源を割当てることによって、前記複数の設定手段から前記デバイスを共有することを特徴とする、請求項1乃至1の何れか1項に記載の中継手段。
  23. デバイスと、前記デバイスを共有し、それぞれが前記デバイスに対して設定要求を発行する複数の設定手段とを中継する中継方法であって、
    前記複数の設定手段の前記デバイスに対する前記設定要求に含まれる設定情報を保持し、前記保持した前記設定情報に関する制限値の範囲に基づき、前記設定要求をすべて満たす制限値を算出し、算出した値を前記デバイスに関する設定値として保存手段に格納するとともに、前記設定要求に基づいて設定したことを表す応答を前記複数の設定手段に送信することを特徴とする中継方法。
  24. 前記設定手段からの参照要求に対して、前記保持した前記設定情報を元に、前記設定手段に応答することを特徴とする、請求項2に記載の中継方法。
  25. 前記保持した前記設定情報を元に、前記デバイスの入力仕様に従ったフォーマットの設定指示を生成し、前記デバイスに対して発行することを特徴とする、請求項23に記載の中継方法。
  26. 前記デバイスが発行した通知を受信して保持し、
    (1)前記デバイス及び前記設定手段の状態を維持する
    (2)前記通知を元に通知情報を生成し、前記設定手段に発行する、
    (3)前記通知を元に前記デバイスを設定する、
    の何れか1つの処理を実行することを特徴とする、請求項2乃至2の何れか1項に記載の中継方法。
  27. 前記デバイスを、前記複数の設定手段がネットワーク接続手段を介して接続され前記設定要求がカプセル化されたネットワークパケットを指定されたアドレスに配送するネットワーク手段に接続することを特徴とする請求項2乃至2の何れか1項に記載の中継方法。
  28. 前記設定要求をネットワークパケットにカプセル化し、ネットワークパケットから前記設定要求をデカプセル化するステップと、
    前記複数の設定手段から前記デバイスに対して発行された設定情報を保持し、前記デバイスに対して前記設定情報を仲裁するステップと、
    前記設定要求のアドレスと前記デバイスが発行した通知のアドレスと前記設定手段からの参照要求に対する応答のアドレスの少なくとも1つを変換するステップとをさらに備えたことを特徴とする請求項27に記載の中継方法。
  29. 前記デバイスが前記複数の設定手段に対してサービスを開始する前に、前記デバイスの識別情報を取得し、前記識別情報を保持することを特徴とする、請求項27又は28に記載の中継方法。
  30. 前記制限値が下限値である場合には前記下限値の最大値を、前記設定値として算出し、前記制限値が上限値である場合には前記上限値の最小値を、前記設定値として算出する
    ことを特徴とする、請求項27又は28に記載の中継方法。
  31. 前記複数の設定手段の電力制御の電力制限値を保持し、前記設定手段からの参照要求に対して、前記デバイスが電力制御されているような返却値を前記設定手段に返すことを特徴とする、請求項27又は28に記載の中継方法。
  32. 前記設定手段が発行するデバイスをリセットするリセット要求に応じて記設定手段割当てられた機能のみをリセットることを特徴とする、請求項27又は28に記載の中継方法。
  33. 前記デバイスは、PCIエクスプレス(PCIe)が定めるシングルルート入出力仮想化及び共有化仕様(Single−Root I/O Virtualization and Sharing Specification:SR−IOV)に準拠し、仮想関数(Virtual Function)を単位として前記複数の設定手段のそれぞれに入出力(I/O:input and output)資源を割当てることによって、前記複数の設定手段から前記デバイスを共有することを特徴とする、請求項23乃至28の何れか1項に記載の中継方法。
  34. デバイスと、前記デバイスを共有し、それぞれが前記デバイスに対して設定要求を発行する複数の設定手段とを中継する中継プログラムであって、
    前記複数の設定手段の前記デバイスに対する前記設定要求に含まれる設定情報に関する制限値の範囲に基づき、前記設定要求を全て満たす制限値を算出し、算出した値を前記デバイスに関する設定値として保存手段に格納するとともに、前記設定要求に基づいて設定したことを表す応答を前記複数の設定手段に送信する機能
    をコンピュータに行わせることを特徴とする中継プログラム。
JP2009158812A 2009-07-03 2009-07-03 中継手段、中継システム、中継方法およびプログラム Active JP5731108B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009158812A JP5731108B2 (ja) 2009-07-03 2009-07-03 中継手段、中継システム、中継方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009158812A JP5731108B2 (ja) 2009-07-03 2009-07-03 中継手段、中継システム、中継方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2011014023A JP2011014023A (ja) 2011-01-20
JP5731108B2 true JP5731108B2 (ja) 2015-06-10

Family

ID=43592820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009158812A Active JP5731108B2 (ja) 2009-07-03 2009-07-03 中継手段、中継システム、中継方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5731108B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5660053B2 (ja) * 2010-01-20 2015-01-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体
US9396000B2 (en) 2010-06-25 2016-07-19 Intel Corporation Methods and systems to permit multiple virtual machines to separately configure and access a physical device
US8966477B2 (en) * 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device
WO2013150792A1 (ja) * 2012-04-06 2013-10-10 日本電気株式会社 I/oデバイス共有システムおよびi/oデバイス共有方法
EP3095041A4 (en) * 2014-01-16 2018-04-25 Intel Corporation An apparatus, method, and system for a fast configuration mechanism

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167837A (ja) * 2001-11-30 2003-06-13 Kawasaki Microelectronics Kk 通信仲介装置
US8615623B2 (en) * 2006-08-09 2013-12-24 Nec Corporation Internet connection switch and internet connection system
JP4555926B2 (ja) * 2007-02-01 2010-10-06 サイレックス・テクノロジー株式会社 スキャナ自動接続プログラム
JP5477707B2 (ja) * 2007-08-23 2014-04-23 日本電気株式会社 I/oシステムおよびi/o制御方法
WO2009054525A1 (ja) * 2007-10-26 2009-04-30 Nec Corporation I/o接続システムおよびi/o接続方法

Also Published As

Publication number Publication date
JP2011014023A (ja) 2011-01-20

Similar Documents

Publication Publication Date Title
CA2657827C (en) Method and apparatus for distributing usb hub functions across a network
CN108268412B (zh) 用于扩展外围组件互连高速结构的系统和方法
EP3133499B1 (en) Controller integration
EP3252613B1 (en) Resource management for peripheral component interconnect-express domains
JP5917474B2 (ja) 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法
US6487619B1 (en) Multiprocessor system that communicates through an internal bus using a network protocol
US7165131B2 (en) Separating transactions into different virtual channels
US7240141B2 (en) Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
US20050066333A1 (en) Method and apparatus for providing notification
US20070050520A1 (en) Systems and methods for multi-host extension of a hierarchical interconnect network
US20140040527A1 (en) Optimized multi-root input output virtualization aware switch
EP1779609B1 (en) Integrated circuit and method for packet switching control
JPWO2009025381A1 (ja) I/oシステムおよびi/o制御方法
WO2001018988A1 (en) Bridge between parallel buses over a packet-switched network
JP5731108B2 (ja) 中継手段、中継システム、中継方法およびプログラム
JP2002149592A (ja) ネットワーク上でのpciブリッジ
US9515963B2 (en) Universal network interface controller
CN104461979A (zh) 基于环形总线的多核片上通信网络实现方法
US20220300448A1 (en) Peripheral component interconnect express device and method of operating the same
JP5687959B2 (ja) I/oデバイス共有方法、および装置
US8799519B2 (en) Network-to-network bridge
US11157431B2 (en) System, apparatus and method for multi-die distributed memory mapped input/output support
US10228968B2 (en) Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed
WO2019124259A1 (ja) 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム
US20150222513A1 (en) Network interface device that alerts a monitoring processor if configuration of a virtual nid is changed

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140414

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140421

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150409

R150 Certificate of patent or registration of utility model

Ref document number: 5731108

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150