(57)【要約】【課題】  システム構成の柔軟性を維持しつつ、低コストでI/O装置７０を増設できるようにする。【解決手段】  入出力制御装置は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力スイッチに送信する変換手段と、を備える。【選択図】      図２
2016139256.tif 000002
【特許請求の範囲】
【請求項１】
受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、
プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、前記入出力スイッチに送信する変換手段と、を備える入出力制御装置。
【請求項２】
プロセッサがブリッジ装置を介して接続されたネットワークに接続され、
前記変換手段は、前記ネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項１の入出力制御装置。
【請求項３】
配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する変換表作成手段を、さらに備える請求項１乃至２の何れか１項の入出力制御装置。
【請求項４】
前記変換手段は、受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項１乃至３の何れか１項の入出力制御装置。
【請求項５】
請求項１乃至４の何れか１項の入出力制御装置と、
前記入出力スイッチと、
前記ネットワークを実現するレイヤ２スイッチと、
前記レイヤ２スイッチに接続されたブリッジ装置とプロセッサを包含する、入出力制御システム。
【請求項６】
プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶し、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチに送信する、入出力制御方法。
【請求項７】
プロセッサがブリッジ装置を介して接続されたネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項６の入出力制御方法。
【請求項８】
配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する請求項６乃至７の何れか１項の入出力制御方法。
【請求項９】
受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項６乃至８の何れか１項の入出力制御方法。
【請求項１０】
コンピュータに、請求項６乃至９の何れか１項の入出力制御方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力制御装置、入出力制御システム、入出力制御方法およびプログラム、特に、システム構成の柔軟性を維持しつつ、低コストで入出力装置を増設可能な入出力制御装置、入出力制御システム、入出力制御方法、および、プログラムに関する。
【背景技術】
【０００２】
特許文献１は、PCI Express（Peripheral Component Interconnect Express）規格を用いた入出力機器の共有システム、情報処理装置の共有システムを開示する。このシステムは、プロセッサ側に設けられたブリッジと入出力装置（以降、I/O(Input/Output)装置）側に設けられたブリッジを、イーサネット（登録商標）で接続して構成される。このシステムにおいて、プロセッサからI/O装置に向けて発行された入出力要求は、プロセッサ側のブリッジでイーサネットのフレームにカプセル化されて、I/O装置側のブリッジに送信される。
【０００３】
特許文献２は、デバイスの組合せごとに必要な同期調整を行うことができる通信制御システムを開示する。この通信制御システムは、プロセッサ側に設けられたブリッジとI/O装置側に設けられたブリッジを、ネットワークで接続して構成される。
【０００４】
特許文献３は、マルチルートＰＣＩスイッチにおける管理用仮想スイッチの一点障害を排除する、計算機システムを開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７８８８７号公報
【特許文献２】特開２０１２−１４６０８８号公報
【特許文献３】特開２０１０−２８２３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１１の左図は、特許文献１が示す技術を用いているシステムの構成を示す。このシステムは、サーバ側に接続されたブリッジ（ExpEther(登録商標)Serverカード：以降、EESV）とI/O装置側に接続されたブリッジ（ExpEther I/Oカード：以降、EEIO）がレイヤ２スイッチを介して接続されて構成される。
【０００７】
このシステムは、CPU（Central Processing Unit）とI/O装置のグループ化が出来る。例えば、EESV0、EEIO0、EEIO2、EEIO3をグループ０とし、EESV1、EEIO1をグループ１とすると、各ブリッジに接続されたCPUとI/O装置がグループ化される。
【０００８】
すなわち、CPU0、I/O装置0、2、3がグループ０、CPU1、I/O装置1がグループ1となり、図１１の右図が示すように、グループごとに別々の構成が存在することと等価となる。ExpEther技術を用いたシステムは、このように柔軟な構成が可能である。
【０００９】
図１１のシステムでは、EEIOごとにグループが決定される。ユーザは、各EEIOにI/O装置を直接接続することでI/Oデバイスごとのグルーピングが可能である。このような構成の場合、I/O装置の増設に伴いEEIOの増設が必要となり、コスト高となる。
【００１０】
一方、図１２が示すように、EEIOにPCI Expressスイッチ（以降、PCIeスイッチ）を接続することで、ユーザは１台のEEIO配下に多数のI/O装置を接続することが出来る。つまり、ユーザは、低コストでI/O装置の増設が可能である。ただしこの場合、システムはI/O装置ごとに別々のグルーピングができない。
【００１１】
すなわち、特許文献１の技術を用いたシステムは、システム構成の柔軟性を維持しつつ、低コストでI/O装置を増設することが出来ないのである。
【００１２】
本発明は、上述の課題を解決するための入出力制御装置、入出力制御システム、入出力制御方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の１実施の形態の入出力制御装置は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、前記入出力スイッチに送信する変換手段と、を備える。
【００１４】
本発明の１実施の形態の入出力制御方法は、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶し、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチに送信する。
【発明の効果】
【００１５】
本発明にかかる入出力制御装置は、システム構成の柔軟性を維持しつつ、低コストでI/O装置を増設できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、システムの構成図例である。
【図２】図２は、第１の実施の形態にかかる入出力制御システム８０の構成を示す。
【図３】図３は、変換テーブルの構成を示す。
【図４】図４は、グループ構成フェーズの動作を説明する為の図（その１）である。
【図５】図５は、グループ構成フェーズの動作を説明する為の図（その２）である。
【図６】図６は、グループ構成フェーズの動作を説明する為の図（その３）である。
【図７】図７は、グループ構成フェーズの動作を説明する為の図（その４）である。
【図８】図８は、グループ構成フェーズの動作を説明する為の図（その５）である。
【図９】図９は、入出力実行フェーズにおける入出力制御システム８０の動作フローチャートである。
【図１０】図１０は、第２の実施の形態にかかる入出力制御装置５０の構成を示す。
【図１１】図１１は、解決課題を説明する図（その１）である。
【図１２】図１２は、解決課題を説明する図（その２）である。
【発明を実施するための形態】
【００１７】
＜概要＞
図１は、本発明を用いたシステムの構成例を示すブロック図である。本発明の実施の形態は、１台のEEIO54に接続された複数のＩ／Ｏ装置７０を、複数のCPU10と組み合わせて、複数のグループに分けることを可能とする。そして、CPU10は、同じグループに分けられたＩ／Ｏ装置７０に入出力可能である。
【００１８】
具体的に、このシステムに例おいて、複数のＩ／Ｏ装置７０（I/O装置0からI/O装置NまでのN＋１台）が、１台のEEIO54に接続されている。そして、EEIO54には、レイヤ２スイッチ（以降、Ｌ２スイッチ４０）等を介して複数のCPU10（CPU0とCPU1）が接続されている。
【００１９】
ここで、CPU1及びI/O装置3がグループ１を構成し、CPU0、及び、その他のＩ／Ｏ装置７０がグループ０を構成している。このグループ分けの結果、CPU1はI/O装置3に入出力可能で、CPU0は他のI/O装置に入出力可能である。
【００２０】
＜第１の実施の形態＞
＜構成＞
図２は、本実施の形態にかかる入出力制御システム８０の構成を示す。入出力制御システム８０において、複数のCPU10は、各々のEESV20を経由してＬ２スイッチ４０に接続されている。図２の例では、CPU0がEESV0を、CPU1がEESV1を経由して、Ｌ２スイッチ４０に接続されている。
【００２１】
入出力制御システム８０において、複数のＩ／Ｏ装置７０が、EEIO54及びＰＣＩｅ（PCI Express）スイッチ６０を経由してＬ２スイッチ４０に接続されている。
【００２２】
なお、Ｌ２スイッチ４０に接続される、CPU10とEESV20の組、EEIO54とＰＣＩｅスイッチ60の組の数は、図２に示す台数に限られない。さらに、ＰＣＩｅスイッチ60に接続されるＩ／Ｏ装置７０の数も、図２に示す台数に限られない。
【００２３】
本実施の形態において、EEIO54は本発明特有の機能を追加されており入出力制御装置５０とも呼ばれる。主たる追加機能は、以下のとおりである。
【００２４】
１）EEIO54は、複数CPU10からのアクセスを処理する。このため、EEIO54は、コンフィグレーション情報を複数のグループのおのおのに関連付けて保持する。具体的には、変換テーブル（変換表ともいう）が、グループに関連付けてコンフィグレーション情報を保持する。
【００２５】
２）ＰＣＩｅスイッチ６０は、複数CPU10からのアクセスを処理する。この為、EEIO54が変換テーブルを用いて複数CPU10からの入出力命令内のアドレスを変換する。
【００２６】
３）EEIO54は、変換テーブルを作成する際、配下のＩ／Ｏ装置７０のレジスタを設定する。このため、EEIO54が配下のＩ／Ｏ装置７０にコンフィグレーションアクセスする。
【００２７】
４）EEIO54は、各Ｉ／Ｏ装置７０及びCPU10にグループID（IDentification）を割り当てる。
【００２８】
なお、出力制御システム８０において、CPU10が発行したPCI Express規格準拠の入出力命令は、EESV20においてイーサネットのフレーム内にカプセル化されて、Ｌ２スイッチ４０を経由して、適切なEEIO54に転送される。EEIO54は、イーサネットのフレームから入出力命令を取り出し、適切なアドレス変換をしたうえで、ＰＣＩｅスイッチ６０に出力する。
【００２９】
EEIO54は、変換表作成部５１、変換表記憶部５２、および、変換部５３を包含する。変換表作成部５１は、後述する変換テーブルを作成して変換表記憶部５２に格納する。変換部５３は、変換テーブルを参照して、入出力命令が包含するＩ／Ｏ装置７０のアドレスを変換してＰＣＩｅスイッチ６０に出力する。
【００３０】
変換表作成部５１、および、変換部５３は、論理回路で構成される。変換表作成部５１、または、変換部５３は、コンピュータでもあるEEIO54の図示されないプロセッサで実行されるプログラムで実現されても良い。変換表作成部５１は、半導体メモリなどの記憶媒体である。
【００３１】
ＰＣＩｅスイッチ６０は、複数のブリッジ６１を包含しており、入出力命令が包含するＩ／Ｏ装置７０のアドレスに基づいてＩ／Ｏ装置７０を選択して、当該入出力命令を渡す。図２の例において、ＰＣＩｅスイッチ６０は、３つのブリッジ６１（ブリッジ1乃至ブリッジ3）を包含している。EEIO54は、ブリッジ0とブリッジ１を経由してI/O装置0に接続している。さらにEEIO54は、ブリッジ0とブリッジ2を経由してI/O装置1に接続している。
【００３２】
Ｉ／Ｏ装置７０は、PCI Express規格準拠の入出力装置である。
【００３３】
入出力制御システム８０において、管理サーバ装置３０が、Ｌ２スイッチ４０に接続されている。管理サーバ装置３０は、入出力制御システム８０の接続構成を管理し、管理者からCPU10、Ｉ／Ｏ装置７０のグループ分け情報を取得して、CPU10、Ｉ／Ｏ装置７０、更には、各ブリッジ６１のグループへの帰属を決定し、EEIO54に出力する。
【００３４】
図３は、変換テーブルの構成を示す。変換テーブルは、第１テーブル（図３のａ））、第２テーブル（図３のｂ））、及び、第３テーブル（図３のｃ））を包含する。
【００３５】
第１テーブルは、ブリッジ６１及びＩ／Ｏ装置７０（以降、両者をまとめてデバイスと称する）の各々のＩＤに関連付けて、ローカルアドレスとグループＩＤを保持する。ここで、ローカルアドレスは、EEIO54が割り当てるＩ／Ｏ装置７０のメモリアドレスやI/Oアドレスやプリフェッチャブルアドレスである。
【００３６】
なお、デバイスを識別するためのＩＤは、ローカルバス番号とデバイス番号の組み合わせとする。
ローカルバス番号は、EEIO54が割り当てるデバイスのバス番号である。デバイス番号は、デバイスを区別して扱うための番号である。
【００３７】
第２テーブルは、デバイスのＩＤに関連付けて、グループＩＤ、バス番号、及び、論理アドレスを保持する。バス番号は、CPU10が割り当てるデバイスのバス番号である。論理アドレスは、CPU10が割り当てるデバイスのメモリアドレスやI/Oアドレスやプリフェッチャブルアドレスである。
【００３８】
第３テーブルは、ＭＡＣアドレスに関連付けてグループＩＤを格納する。ＭＡＣアドレスは、EESV20のＭＡＣアドレスである。EEIO54の変換表作成部５１および変換部５３は、EESV20からイーサネットフレームを受信すると、送信元ＭＡＣアドレスを取り出して、本表を検索してグループＩＤを得る。すなわち、変換表作成部５１および変換部５３は、EESV20のＭＡＣアドレスから、入出力命令を発行したCPU10が属するグループを認識する。
【００３９】
＜動作＞
入力制御システム８０の動作は、大きく、グループ構成フェーズと、入出力実行フェーズに分けられる。
【００４０】
＜グループ構成フェーズの動作＞
グループ構成フェーズにおいて、EEIO54の変換表作成部５１は、１）変換テーブルの作成、および、２）グループ定義（Ｉ／Ｏ装置７０及びCPU10へのグループＩＤ設定）を行う。両者の実行順序は問わない。
【００４１】
図４乃至図８は、グループ構成フェーズの動作を説明する為の図である。各図（図５を除く）は、グループ構成フェーズの動作過程の変換テーブルの第１テーブル及び第２テーブル（各図のａ）、ｂ））の状態、及び、当該過程で重要な入出力システム８０の構成情報（各図のｃ））を示している。図５は、グループ構成フェーズの動作過程の変換テーブルの第１テーブル（ａ））、第２テーブル（ｂ））、第３テーブル（ｃ））の状態を示している。
【００４２】
１）変換テーブルの作成
システム電源投入後、EEIO54の変換表作成部５１は、PCI Express管理ソフトウェアが行う初期化と同様の方法で下位のデバイスの構成を把握し、デバイスのレジスタにローカルアドレスとローカルバス番号を設定する。その際に、変換表作成部５１は、ＩＤ（ローカルバス番号、デバイス番号）を第１テーブルと第２テーブルに、ローカルアドレスを第１テーブルに格納する（図４）。
【００４３】
ここで、ブリッジ0、ブリッジ1、ブリッジ2、I/O装置0、I/O装置1のローカルバス番号が、各々、０、１、１、２、３（図４（ｃ）の()内の＃マーク付きの数字）であったとする。また、I/O装置0のローカルアドレスはA’からB’迄（以降A’B’と表記する。他のアドレスの表記も同様）、I/O装置1のローカルアドレスはB’C’であったとする。この時、変換表作成部５１は、デバイスのＩＤとして、ブリッジ0(0,0)、ブリッジ1(1,0)、ブリッジ2(1,1)、I/O装置0(2,0)、I/O装置1(3,0)）を格納する。
【００４４】
さらに、変換表作成部５１は、ブリッジ0、ブリッジ1、ブリッジ2、I/O装置0、I/O装置1の各々のローカルアドレスとして、A’C’、A’B’、B’C’、A’B’、B’C’を格納する。ここで、配下のブリッジ1、ブリッジ2のローカルアドレスがA’B’とB’C’であるため、ブリッジ0のローカルアドレスは、両領域を連結した領域であるA’C’となる。この値は、変換表作成部５１が計算して変換テーブルに書き込む。
【００４５】
２）グループ定義
変換表作成部５１は、EEIO54配下のデバイス構成を管理サーバ装置３０に伝える。管理サーバ装置３０は、すべてのデバイスを認識して、デバイスのグループ構成を定義できる。
【００４６】
システムの管理者は、CPU10とＩ／Ｏ装置７０のグループ構成情報を管理サーバ装置３０に入力する。例えば、管理者は、グループ０はCPU0とI/O装置0を包含し、グループ１はCPU1とI/O装置1を包含するとのグループ構成情報を管理サーバ装置３０に入力する。
【００４７】
管理サーバ装置３０は、入出力制御システム８０の構成情報とグループ構成情報の両者が入力された時点で、両者を照らし合わせて以下のグループ構成を認定し、変換表作成部５１に通知する。
・I/O装置0はグループ０、I/O装置1はグループ１に属す。
・ブリッジ0、ブリッジ1、ブリッジ2は、グループ０と１で共用される。
・グループ０のＭＡＣアドレスは、EESV0のＭＡＣアドレスであり、グループ１のＭＡＣアドレスは、EESV1のＭＡＣアドレスである。
【００４８】
変換表作成部５１は、この情報を管理サーバ装置３０から受信し、第１テーブルと第２テーブルに各デバイスが帰属するグループのＩＤを格納する（図５のａ）、ｂ））。変換表作成部５１は、複数グループで共用されるデバイスについては、グループごとに第２テーブルの行を設ける。
【００４９】
さらに、変換表作成部５１は、第３テーブルにＭＡＣアドレスとグループＩＤを格納する（図５のｃ））。
【００５０】
図５ａ）及びｂ）は、第１テーブルおよび第２テーブルに、I/O装置0のグループＩＤが０、I/O装置1のグループＩＤが１、ブリッジ0、ブリッジ1、および、ブリッジ2のグループＩＤが０及び１であることを示す情報が格納されていることを示している。ここで、グループＩＤが０及び１であることは、当該デバイスが、グループＩＤが０と１の２つのグループで共用されていることを表している。
【００５１】
図５ｃ）は、第３テーブルに、EESV0のＭＡＣアドレスがグループＩＤの０、EESV1のＭＡＣアドレスがグループＩＤの１に関連付けられていることを示す情報が格納されていることを示している。
【００５２】
なお、入出力制御システム８０が、１台のEEIO54しか備えていない場合、管理サーバ装置３０は存在しなくても良い。変換表作成部５１が、管理サーバ装置３０を兼ねていても良い。
【００５３】
ＯＳ（Operating System）起動時などに、CPU10、例えばCPU0がバスサーチを行う（図６）。ここで、CPU0とEESV0間のバス番号は１、CPU1とEESV1間のバス番号は１１であるとする。
【００５４】
CPU0がバスサーチを行う際、変換表作成部５１は、同じグループＩＤのデバイスに対し、暫定的なバス番号を変換テーブル第２テーブル（図６ｂ））に格納する。なお、変換表作成部５１は、CPU0のバスサーチ要求をカプセル化していたイーサネットのフレームの発信元ＭＡＣアドレスで第３テーブルを検索することにより、処理対象がグループ０であることを認識する。
【００５５】
暫定的なバス番号は、EEIO54のバス番号にローカルバス番号＋１を加算した値である。EESV0のバス番号が１のため、EEIO54のバス番号が２となる。したがって、ブリッジ0、ブリッジ1、I/O装置0のバス番号は、それぞれ３、４、４、５となる（図６のｃ））。I/O装置1はグループＩＤが異なるため、暫定的なバス番号は格納されない。
【００５６】
その後、CPU0がブリッジ0のバス番号割当を行う。ブリッジ0はグループＩＤが０であるため、CPU0はブリッジ0のバス番号３を第２テーブルに格納する。CPU0は、ブリッジ1のバス番号４、ブリッジ2のバス番号４、I/O装置0のバス番号５も第２テーブルに格納する。
【００５７】
I/O装置1のグループＩＤは1であるため、I/O装置1のバス番号は格納されない。処理がタイムアウトするため、CPU0は、ブリッジ2配下のデバイスは不在と認識する。
【００５８】
次に、CPU0からI/O装置0のコンフィグレーションライト命令を受信すると、変換表作成部５１はI/O装置0のアドレス割当を行う（図７）。EEIO54は受信したコンフィグレーションライト命令を解析して得られたアドレス、例えばアドレスAB、を第２テーブルに論理アドレスとして書き込む。変換表作成部５１は、ブリッジ1、ブリッジ2、ブリッジ0のアドレス割当も同様に行う（図７のｂ））。ただし、変換表作成部５１は、ブリッジ2のアドレスは０とする。ブリッジ2配下のデバイスは不在と認識されるためである。
【００５９】
CPU１からのアクセスに基づいて、バス番号割り当て、アドレス割り当てを行うときも、変換表作成部５１は、同じように動作する（図８）。但し、CPU１からアクセスされた場合は、アクセス要求をカプセル化しているイーサネットのフレームの発信元のＭＡＣアドレスで第３テーブルを検索することにより、処理対象がグループ１であることを認識する。
【００６０】
CPU1においては、EESV0のバス番号が１１のため、EEIO54のバス番号が１２となる。したがって、ブリッジ0、ブリッジ1、I/O装置１のバス番号は、それぞれ１３、１４、１４、１５となる（図８のｃ））。また、CPU1からI/O装置0のコンフィグレーションライト命令を受信すると、変換表作成部５１はI/O装置1のアドレス割当を行う。EEIO54は受信したコンフィグレーションライト命令を解析して得られたアドレス、例えばアドレスXY、を第２テーブルに書き込む（図８のｂ））。
【００６１】
＜入出力実行フェーズの動作＞
図９は、入出力実行フェーズにおける入出力制御システム８０の動作フローチャートである。
【００６２】
まず、CPU10、例えば、CPU0はI/O装置0にアクセスするため、ＴＬＰ (Transaction Layer Packet)を発行する（Ｓ１）。ＴＬＰは、入出力命令を包含する。
【００６３】
当該CPU10に接続されたEESV20がＴＬＰを受信する。CPU0がＴＬＰを発行した場合、EESV0がＴＬＰを受信する。当該EESV20は、受信したＴＬＰをイーサネットフレームにカプセル化し、Ｌ２スイッチ４０に送信する（Ｓ２）。Ｌ２スイッチ４０は、イーサネットフレームをＭＡＣアドレスでルーティングし、EEIO54に送信する（Ｓ３）。
【００６４】
EEIO54の変換部５３は、受信したイーサネットフレームから送信元ＭＡＣアドレスを読み出す（Ｓ４）。読み出されるのは、EESV0のＭＡＣアドレスである。
【００６５】
EEIO54の変換部５３は、読み出したＭＡＣアドレスで変換テーブルの第３テーブルを検索してグループＩＤを取得する。EESV0のＭＡＣアドレスで第３テーブルを検索した場合、EEIO54の変換部５３は、グループＩＤの０を取得する（Ｓ５）。続けて、変換部５３は、ＴＬＰに含まれている入出力命令から入出力の対象となるＩ／Ｏ装置７０のアドレスを取得する。変換部５３は、当該アドレスとグループＩＤで変換テーブルの第２テーブルと第１テーブルを順次検索して、Ｉ／Ｏ装置７０のローカルアドレスを取得する。
さらに、変換部５３は、ＴＬＰに含まれている入出力命令内のＩ／Ｏ装置７０のアドレスをローカルアドレスに置換したうえで、ＴＬＰをＰＣＩｅスイッチ６０に出力する（Ｓ５）。
【００６６】
ＰＣＩｅスイッチ６０は、受信したＴＬＰのローカルアドレスでルーティングし、Ｉ／Ｏ装置７０に送信する（Ｓ６）。最後に、Ｉ／Ｏ装置７０は受信したＴＬＰを実行する（Ｓ７）。
【００６７】
＜その他の動作＞
CPU10が発行する入出力命令の種類によっては、EEIO54は配下のデバイスにパケットを通過させず、自分で応答する場合がある。
【００６８】
例えば、Ｉ／Ｏ装置７０が保持しているアドレスやバス番号をCPU10がリードする場合、パケットを通過させてしまうと、CPU10はローカルなアドレスやパスの値をリードしてしまう。これを防ぐため、EEIO54の変換部５３が応答して変換テーブル（第２テーブル）に格納されている論理アドレス等を読み出して返す。
【００６９】
また、CPU10がＩ／Ｏ装置７０にアドレスやバス番号をライトする場合、パケットを通過させてしまうと、Ｉ／Ｏ装置７０が保持しているローカルなアドレスやバスの値を上書きされてしまう。これを防ぐため、EEIO54の変換部５３が応答し、ライト命令で指定されたアドレスを変換テーブル（第２テーブル）に論理アドレスとして書き込む。
【００７０】
また、アドレスルーティングやＩＤルーティングなど、アドレスやバス番号を使用するパケットに含まれるアドレスやバス番号は、変換部５３が変換テーブルで変換し、それ以外のパケットに対しては変換しない。
【００７１】
＜効果＞
入出力制御装置５０は、入出力制御システム８０の構成の柔軟性を維持しつつ、低コストでＩ／Ｏ装置７０を増設できる。
【００７２】
その理由は、１台の入出力制御装置５０が、接続されているＩ／Ｏ装置７０とCPU10を複数のグループに分割して、グループごとに、CPU10が独自のアドレスでＩ／Ｏ装置７０にアクセスすることを可能とするからである。したがって、１台の入出力制御装置５０にＩ／Ｏ装置７０を接続することで、複数グループのどれに対してもＩ／Ｏ装置７０を増設することが出来る。入出力制御装置５０の増設は必ずしも必要ではない。これを実現するため、入出力制御装置５０の変換部５３はグループごとのアドレスを、Ｉ／Ｏ装置７０に一意のローカルアドレスに変換して、ＰＣＩｅスイッチ６０に転送する。
【００７３】
入出力制御装置５０は、入出力制御システム８０の構成の柔軟性を維持しつつ、CPU10が発行する入出力要求の制限を課さない。CPU10は、グループ内のＩ／Ｏ装置７０に対しても、アドレス変更などが可能である。
【００７４】
その理由は、変換部５３が、アクセスの種類に応じて、アクセスを下位のデバイスに転送したり、自分で応答したりするからである。
【００７５】
＜変形例＞
EESV20とEEIO54を結ぶイーサネットは、Ｌ２スイッチ４０以外の他の形態であっても良い。さらに、通信プロトコルは、他のプロトコルであっても良い。
【００７６】
また、入出力インタフェースは、PCI Express以外のインタフェース、例えば、PCIで有っても良い。この場合、PCIeスイッチも他のインタフェースの入出力スイッチになる。
【００７７】
＜第２の実施形態＞
図１０は、第２の実施の形態にかかる入出力制御装置５０の構成を示す。入出力制御装置５０は、受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続される。
【００７８】
また、入出力制御装置５０は、変換表記憶部５２と、変換部５３を備える。変換表記憶部５２は、プロセッサと入出力装置を包含する装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する。変換部５３は、入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力スイッチに送信する。
【００７９】
入出力制御装置５０は、入出力制御システム８０の構成の柔軟性を維持しつつ、低コストでＩ／Ｏ装置７０を増設できる。
【００８０】
その理由は、１台の入出力制御装置５０が、接続されているＩ／Ｏ装置７０とCPU10を複数のグループに分割して、グループごとに、CPU10が独自のアドレスでＩ／Ｏ装置７０にアクセスすることを可能とするからである。したがって、１台の入出力制御装置５０にＩ／Ｏ装置７０を接続することで、複数グループのどれに対してもＩ／Ｏ装置７０を増設することが出来る。入出力制御装置５０の増設は必ずしも必要ではない。これを実現するため、入出力制御装置５０の変換部５３はグループごとのアドレスを、Ｉ／Ｏ装置７０に一意のローカルアドレスに変換して、入出力スイッチに転送する。
【００８１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８２】
１０    ＣＰＵ
２０    ＥＥＳＶ
３０    管理サーバ装置
４０    Ｌ２スイッチ
５０    入出力制御装置
５１    変換表作成部
５２    変換表記憶部
５３    変換部
５４    ＥＥＩＯ
６０    ＰＣＩｅスイッチ
６１    ブリッジ
７０    Ｉ／Ｏ装置
【図１】
2016139256.tif 000003
【図２】
2016139256.tif 000004
【図３】
2016139256.tif 000005
【図４】
2016139256.tif 000006
【図５】
2016139256.tif 000007
【図６】
2016139256.tif 000008
【図７】
2016139256.tif 000009
【図８】
2016139256.tif 000010
【図９】
2016139256.tif 000011
【図１０】
2016139256.tif 000012
【図１１】
2016139256.tif 000013
【図１２】
2016139256.tif 000014
【手続補正書】
【提出日】平成28年6月6日(2016.6.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
受信した入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチと接続され、
プロセッサと入出力装置が複数接続されており、該接続されたプロセッサと入出力装置を複数のグループに分けた結果である装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶する変換表記憶手段と、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、前記入出力スイッチに送信する変換手段と、を備える入出力制御装置。
【請求項２】
プロセッサがブリッジ装置を介して接続されたネットワークに接続され、
前記変換手段は、前記ネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項１の入出力制御装置。
【請求項３】
配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する変換表作成手段を、さらに備える請求項１乃至２の何れか１項の入出力制御装置。
【請求項４】
前記変換手段は、受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項１乃至３の何れか１項の入出力制御装置。
【請求項５】
請求項１乃至４の何れか１項の入出力制御装置と、
前記入出力スイッチと、
前記プロセッサがブリッジ装置を介して接続されたネットワークを実現するレイヤ２スイッチと、
前記レイヤ２スイッチに接続されたブリッジ装置とプロセッサを包含する、入出力制御システム。
【請求項６】
プロセッサと入出力装置が複数接続されており、該接続されたプロセッサと入出力装置を複数のグループに分けた結果である装置グループに関連付けて、プロセッサの特定情報と、入出力装置の論理アドレスからローカルアドレスへの変換表と、を記憶し、
入出力命令受信時に得られる送信元プロセッサの特定情報から装置グループを特定し、前記入出力命令に含まれる論理アドレスを、特定した装置グループの変換表から得られるローカルアドレスに変換して、入出力命令を、入出力命令が指定するローカルアドレスの入出力装置に転送する入出力スイッチに送信する、入出力制御方法。
【請求項７】
プロセッサがブリッジ装置を介して接続されたネットワークから入出力命令を包含するフレームを受信し、受信したフレームの送信元ブリッジ装置アドレスから、入出力命令の送信元プロセッサを特定する、請求項６の入出力制御方法。
【請求項８】
配下に接続されている入出力装置にローカルアドレスを割り当てて前記変換表に格納し、プロセッサから入出力装置へのアドレスを割り当てる命令を受信して、当該命令が包含するアドレスを、前記変換表の論理アドレスとして格納する請求項６乃至７の何れか１項の入出力制御方法。
【請求項９】
受信した入出力命令が入出力装置のアドレスを変更するものである場合、受信した入出力命令を前記入出力スイッチに転送せず、前記変換表の書き換えを行う、請求項６乃至８の何れか１項の入出力制御方法。
【請求項１０】
コンピュータに、請求項６乃至９の何れか１項の入出力制御方法を実行させるプログラム。