(57)【特許請求の範囲】
【請求項１】
複数の演算処理装置と、複数の入出力装置と、前記複数の演算処理装置の何れかと前記複数の入出力装置の何れかとを含む複数の分割処理装置と、前記複数の分割処理装置の何れかに属する演算処理装置と入出力装置との間を複数の経路を介して接続するとともに、前記複数の演算処理装置の何れかが発行した入出力命令を前記複数の経路の何れかから受けた場合、前記複数の入出力装置のうち前記入出力命令を受けた経路に接続する入出力装置に前記発行された入出力命令を転送する複数のシステム制御装置と、を有する情報処理装置において、
前記複数のシステム制御装置の何れかは、
前記演算処理装置を識別する演算処理装置情報と、前記分割処理装置を識別する分割処理装置情報との組を含むパーティション情報を記憶するパーティション情報記憶部と、
前記入出力装置を識別する入出力装置情報と、前記複数の経路のうち前記入出力装置が接続する経路を識別する経路情報との組を含む構成情報を前記分割処理装置情報に対応して記憶する構成情報記憶部と、
前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された経路情報を、前記経路問合せ要求を発行した演算処理装置に応答する経路選択部と
を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置において、
前記システム制御装置は、さらに、
前記複数の経路の何れかが利用不可能の場合、前記利用不可能の経路の経路情報を前記利用不可能の経路以外の経路の経路情報に、前記構成情報を更新する経路情報更新部を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置において、
前記構成情報が含む前記入出力装置情報は、前記分割処理装置において割り当てられる仮想アドレス情報と、前記仮想アドレス情報に対応し前記入出力装置を識別する物理アドレス情報との組を有し、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報が有する仮想アドレス情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された物理アドレス情報に対応する経路情報を、前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記情報処理装置において、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索した結果、前記経路問合せ要求に含まれる入出力装置情報に基づいて、前記構成情報から経路情報が複数検索された場合、前記検索された複数の経路情報のうち、最も長い期間選択されていない経路情報を選択して前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項１〜３の何れか１項に記載の情報処理装置。
【請求項５】
複数の演算処理装置と、複数の入出力装置と、前記複数の演算処理装置の何れかと前記複数の入出力装置の何れかとを含む複数の分割処理装置とを有する情報処理装置に含まれ、前記複数の分割処理装置の何れかに属する演算処理装置と入出力装置との間を複数の経路を介して接続するとともに、前記複数の演算処理装置の何れかが発行した入出力命令を前記複数の経路の何れかから受けた場合、前記複数の入出力装置のうち前記入出力命令を受けた経路に接続する入出力装置に前記発行された入出力命令を転送するシステム制御装置において、
前記演算処理装置を識別する演算処理装置情報と、前記分割処理装置を識別する分割処理装置情報との組を含むパーティション情報を記憶するパーティション情報記憶部と、
前記入出力装置を識別する入出力装置情報と、前記複数の経路のうち前記入出力装置が接続する経路を識別する経路情報との組を含む構成情報を前記分割処理装置情報に対応して記憶する構成情報記憶部と、
前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された経路情報を、前記経路問合せ要求を発行した演算処理装置に応答する経路選択部と
を有することを特徴とするシステム制御装置。
【請求項６】
前記システム制御装置は、さらに、
前記複数の経路の何れかが利用不可能の場合、前記利用不可能の経路の経路情報を前記利用不可能の経路以外の経路の経路情報に、前記構成情報を更新する経路情報更新部を有することを特徴とする請求項５記載のシステム制御装置。
【請求項７】
前記システム制御装置において、
前記構成情報が含む前記入出力装置情報は、前記分割処理装置において割り当てられる仮想アドレス情報と、前記仮想アドレス情報に対応し前記入出力装置を識別する物理アドレス情報との組を有し、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報が有する仮想アドレス情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された物理アドレス情報に対応する経路情報を、前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項５又は６記載のシステム制御装置。
【請求項８】
前記システム制御装置において、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索した結果、前記経路問合せ要求に含まれる入出力装置情報に基づいて、前記構成情報から経路情報が複数検索された場合、前記検索された複数の経路情報のうち、最も長い期間選択されていない経路情報を選択して前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項５〜７の何れか１項に記載のシステム制御装置。
【請求項９】
複数の演算処理装置と、複数の入出力装置と、前記複数の演算処理装置の何れかと前記複数の入出力装置の何れかとを含む複数の分割処理装置と、前記複数の分割処理装置の何れかに属する演算処理装置と入出力装置との間を複数の経路を介して接続する複数のシステム制御装置を有する情報処理装置の制御方法において、
前記複数の演算処理装置の何れかが、前記複数のシステム制御装置のうち所定のシステム制御装置に、経路問合せ要求を発行するステップと、
前記所定のシステム制御装置が、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記複数の演算処理装置を識別する演算処理装置情報と前記複数の分割処理装置を識別する分割処理装置情報との組を含むパーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するステップと、
前記所定のシステム制御装置が有する経路選択部が、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報とに基づいて、前記入出力装置を識別する入出力装置情報と前記入出力装置が接続する経路を識別する経路情報との組を含む構成情報から検索された経路情報を、前記経路問合せ要求を発行した演算処理装置に応答するステップと、
前記所定のシステム制御装置が応答した経路情報を受けた演算処理装置が、前記複数の経路のうち前記応答された経路情報に対応する経路に対して入出力命令を発行するステップと、
前記応答された経路情報に対応する経路に接続するシステム制御装置が、前記経路情報に対応する経路に接続する入出力装置に、前記入出力命令を転送するステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項１０】
前記情報処理装置の制御方法において、
前記システム制御装置は、さらに、
前記複数の経路の何れかが利用不可能の場合、前記利用不可能の経路の経路情報を前記利用不可能の経路以外の経路の経路情報に、前記構成情報を更新するステップを有することを特徴とする請求項９記載の情報処理装置の制御方法。
【請求項１１】
前記情報処理装置の制御方法において、
前記構成情報が含む前記入出力装置情報は、前記分割処理装置において割り当てられる仮想アドレス情報と、前記仮想アドレス情報に対応し前記入出力装置を識別する物理アドレス情報との組を有し、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報が有する仮想アドレス情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された物理アドレス情報に対応する経路情報を、前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項９又は１０記載の情報処理装置の制御方法。
【請求項１２】
前記情報処理装置の制御方法において、
前記経路選択部は、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索した結果、前記経路問合せ要求に含まれる入出力装置情報に基づいて、前記構成情報から経路情報が複数検索された場合、前記検索された複数の経路情報のうち、最も長い期間選択されていない経路情報を選択して前記経路問合せ要求を発行した演算処理装置に応答することを特徴とする請求項９〜１１の何れか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵと入出力装置の間を接続する経路が冗長化された情報処理装置と同装置において用いられるシステム制御装置および入出力リクエスト方法に関し、特に、高い信頼性と可用性を簡易な構成によって低コストで実現することができる情報処理装置、システム制御装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、サーバ装置等の大型の情報処理装置においては、可用性と信頼性の向上を図るため、複数のＣＰＵを搭載し、入出力装置や各種伝送経路を冗長構成としたものが多くなっている。
【０００３】
例えば、特許文献１において示されているブレードサーバと呼ばれる情報処理装置は、独立して動作可能なサーバボードを筐体内に複数搭載することができ、バックボードを介してこれらのサーバボードをネットワークインターフェース装置等の入出力装置へ接続する。サーバボードと入出力装置との接続は、監視モジュールと呼ばれる装置によって監視され、障害が発生すると、監視モジュールがサーバボードを他の入出力装置へ動的に接続し直して処理を継続させる。
【０００４】
【特許文献１】特開２００５−２２８３０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このように監視モジュールのような特別な装置を用いて障害の監視と対応をおこなう方式は、情報処理装置のコストを上昇させてしまうという問題がある。近年の情報処理化の進展に伴って、比較的小規模な企業等においてもサーバ装置の導入が進んでおり、かかる小規模な企業等からは、高い信頼性と可用性を備えたサーバ装置を低コストで提供することが強く要望されている。
【０００６】
本発明は、上記に鑑みてなされたものであって、高い信頼性と可用性を簡易な構成によって低コストで実現することができる情報処理装置、システム制御装置および情報処理装置の制御方法を提供することを目標とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本願の開示する情報処理装置は、一つの態様において、複数の演算処理装置と、複数の入出力装置と、前記複数の演算処理装置の何れかと前記複数の入出力装置の何れかとを含む複数の分割処理装置と、前記複数の分割処理装置の何れかに属する演算処理装置と入出力装置との間を複数の経路を介して接続するとともに、前記複数の演算処理装置の何れかが発行した入出力命令を前記複数の経路の何れかから受けた場合、前記複数の入出力装置のうち前記入出力命令を受けた経路に接続する入出力装置に前記発行された入出力命令を転送する複数のシステム制御装置と、を有する情報処理装置において、前記複数のシステム制御装置の何れかは、前記演算処理装置を識別する演算処理装置情報と、前記分割処理装置を識別する分割処理装置との組を含むパーティション情報を記憶するパーティション情報記憶部と、前記入出力装置を識別する入出力装置情報と、前記複数の経路のうち前記入出力装置が接続する経路を識別する経路情報との組を含む構成情報を前記分割処理装置情報に対応して記憶する構成情報記憶部と、前記複数の演算処理装置の何れかが発行した前記複数の入出力装置の何れかへの経路問合せ要求を受けた場合、前記経路問合せ要求に含まれる演算処理装置情報に基づいて、前記パーティション情報から前記経路問合せ要求を発行した演算処理装置が含まれる分割処理装置情報を検索するとともに、前記検索された分割処理装置情報と、前記経路問合せ要求に含まれる入出力装置情報とに基づいて、前記検索された分割処理装置情報に対応する構成情報から検索された経路情報を、前記経路問合せ要求を発行した演算処理装置に応答する経路選択部とを有することを特徴とする。
【発明の効果】
【００２２】
本願の開示する情報処理装置の一態様によれば、高い信頼性と可用性を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２７】
以下に、本発明にかかる情報処理装置、システム制御装置および入出力リクエスト方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２８】
まず、従来の情報処理装置における入出力リクエスト方式について説明する。メモリマップ式入出力を採用する情報処理装置では、図１２に示すように、アドレス空間の一部に各入出力装置用のアドレス領域が割り当てられる。そして、これらの入出力装置用のアドレス領域に対してアクセスをおこなうことによって、入出力装置に対する入出力処理が実行される。
【００２９】
具体的には、リクエストの発行元が入出力装置用のアドレス領域へのアクセスをおこなうと、ＣＰＵ（Central  Processing  Unit）によってアドレスが解釈され、どの経路に対して入出力命令を発行するかが決定される。アドレス領域と、経路と、入力装置との対応は、機器構成に応じて予め定められる。
【００３０】
図１３は、入出力命令の発行先の選択をデコーダによって実装した例を示す図である。同図の例では、リクエストの発行元が指定したアドレスの３６ビット目〜３８ビット目をデコードすることにより入出力命令の発行先を選択する例を示している。図１２の例に従って入出力装置Ｂに対して読み書きをおこなう場合、アドレスの３６ビット目〜３８ビット目に「１０１」を指定することになるが、この場合、図１３のデコーダにおいてはＡＮＤ回路４０２が１を出力し、経路Ｂが入出力命令の発行先として選択されることになる。
【００３１】
図１４は、入出力命令の発行先の選択をテーブル検索によって実装した例を示す図である。同図の例では、リクエストの発行元が指定したアドレスの３６ビット目〜３８ビット目の値と経路の組合せを記憶したテーブル（構成情報４１０）を検索することにより入出力命令の発行先を選択する例を示している。図１２の例に従って入出力装置Ｂに対して読み書きをおこなう場合、アドレスの３６ビット目〜３８ビット目に「１０１」を指定することになるが、この場合、図１４のテーブルにおいて「１０１」のビットパターンを有する５番目のエントリが検索され、このエントリに登録されている経路Ｂが入出力命令の発行先として選択されることになる。
【００３２】
いずれの場合においても、アドレス領域と、経路と、入力装置との対応は、予め定められており、リクエストの発行元は、処理対象の入出力装置に応じてどのアドレス領域にアクセスするかを判断する必要があった。また、ＣＰＵと入出力装置との間の経路が冗長化され、複数の経路を選択することができる場合は、リクエストの発行元が、どの経路を使用するかを判断する必要があった。
【００３３】
このため、情報処理装置において入出力装置や経路を冗長化し、障害に対応するための仕組みを設けても、障害の発生している入出力装置や経路を回避して入出力処理をおこなうには、リクエストの発行元が状況に応じてアクセスするアドレス領域を変更できるようにする必要があった。そして、情報処理装置を一旦停止することなく、アドレス領域と、経路と、入力装置との対応の変化をリクエストの発行元に認識させるには、障害の発生を監視し通知するための特別な仕組み（例えば、特許文献１における監視モジュール）が必要であった。
【００３４】
なお、上記の説明におけるリクエストの発行元は、一般的にはＯＳ（Operating  System）の一部として動作するドライバソフトに相当するが、ＯＳそのものやアプリケーションプログラムがリクエストの発行元となる場合もある。
【００３５】
次に、本実施例に係る入出力リクエスト方式について説明する。図１は、本実施例に係る入出力リクエスト方式を実行する情報処理装置の一例を示す図である。なお、同図においては、後述するメモリアクセス制御装置等、本実施例に係る入出力リクエスト方式と直接関連しない部位の図示は便宜上省略している。
【００３６】
図１に示すように、情報処理装置１００は、ＣＰＵ１１０ａ〜１１０ｄと、システム制御装置１２０ａ〜１２０ｄと、入出力制御装置１３０ａ〜１３０ｄと、入出力装置１４１〜１４４とを有する。
【００３７】
ＣＰＵ１１０ａ〜１１０ｄは、ＯＳやアプリケーションプログラムを動作させるための各種処理を実行する演算装置である。システム制御装置１２０ａ〜１２０ｄは、主記憶および入出力装置への入出力を制御する制御装置である。各ＣＰＵは、ＷＡＹ０〜３の４つの経路によってシステム制御装置１２０ａ〜１２０ｄと接続されている。具体的には、ＷＡＹ０によってシステム制御装置１２０ａと接続され、ＷＡＹ１によってシステム制御装置１２０ｂと接続され、ＷＡＹ２によってシステム制御装置１２０ｃと接続され、ＷＡＹ３によってシステム制御装置１２０ｄと接続されている。
【００３８】
入出力制御装置１３０ａ〜１３０ｄは、入出力装置への入出力を制御する制御装置であり、それぞれ、２つの経路によって２つのシステム制御装置と接続されている。例えば、入出力制御装置１３０ｂは、ＰＡＴＨ０によってシステム制御装置１２０ｂと接続され、ＰＡＴＨ１によってシステム制御装置１２０ｄと接続されている。
【００３９】
入出力装置１４１〜１４４は、ネットワークインターフェース装置や記憶装置用の入出力装置であり、それぞれ、入出力制御装置１３０ａ〜１３０ｄと１対１で接続されている。
【００４０】
この例においては、システム制御装置と入出力制御装置の間の接続が二重化された構成をとっているため、ＣＰＵと入出力装置の間は、２つの経路が存在する。例えば、ＣＰＵ１１０ａと入出力装置１４２の間は、ＣＰＵ１１０ａ→システム制御装置１２０ｂ→入出力制御装置１３０ｂ→入出力装置１４２という経路と、ＣＰＵ１１０ａ→システム制御装置１２０ｄ→入出力制御装置１３０ｂ→入出力装置１４２という２つの経路によって接続されている。前者の経路を利用する場合、ＣＰＵ１１０ａは、ＷＡＹ１に対して入出力命令を発行する必要があり、後者の経路を利用する場合は、ＷＡＹ３に対して入出力命令を発行する必要がある。
【００４１】
この冗長化された経路のいずれを用いて入出力処理をおこなうかは、システム制御装置の一つによって決定される。図１の例においてこの決定をおこなうのは、システム制御装置１２０ａである。そして、この決定をおこなうために、システム制御装置１２０ａは、構成情報１２１を記憶する。構成情報１２１は、入出力装置に割り当てられたアドレス領域と、命令の送出先の経路の対応を定義した情報である。
【００４２】
また、入出力装置や経路の障害をシステム制御装置１２０ａに通知するため、各入出力制御装置と各システム制御装置の間と、システム制御装置１２０ｂ〜１２０ｄとシステム制御装置１２０ａの間に配線が設けられている。これらの配線を通じて、経路等に障害が発生したことが通知されると、システム制御装置１２０ａは、冗長化されている他の経路を使用するように構成情報１２１を設定し直す。
【００４３】
なお、システム制御装置１２０ａが代替の経路を取得する方式は、予め全ての経路をシステム制御装置１２０ａ内に登録しておきシステム制御装置１２０ａがその中から選択する方式をとってもよいし、障害発生時にシステム制御装置１２０ａが他のシステム制御装置に対して代替の経路を問合せる方式をとることもできる。
【００４４】
ここで、本実施例に係る入出力リクエスト方式の処理の流れを図２および図３を用いて説明する。リクエストの発行元から入出力装置１４２に対するデータの読み出し要求（オペコード：３４）がＣＰＵ１１０ａに対してなされたものとする（ステップＳ１０１）。要求を受けたＣＰＵ１１０ａは、経路問合せ要求（オペコード：１８）をシステム制御装置１２０ａに対して発行する（ステップＳ１０２）。このとき、要求を識別するためのリクエストＩＤ（ＲＱＩＤ）と入出力装置を識別するためのアドレス（ＡＤＤＲ）は、リクエストの発行元から渡された値をそのまま設定する。
【００４５】
経路問合せ要求を受信したシステム制御装置１２０ａは、アドレスの３６ビット目〜３８ビット目の値をキーとして構成情報１２１を検索し、得られた経路を経路指示（オペコード：０９）の引数に含めてＣＰＵ１１０ａに応答する（ステップＳ１０３）。このとき、ＲＱＩＤには経路問合せ要求にて指定された値をそのまま設定する。図３の例では、アドレスの３６ビット目〜３８ビット目の値は「１０１」であり、この値をキーにして構成情報１２１を検索した結果、ＷＡＹ１が送出先として決定されている。
【００４６】
経路指示の応答を受信したＣＰＵ１１０ａは、ＷＡＹ１へ向けてデータの読取り命令を発行する（ステップＳ１０４）。このときも、ＲＱＩＤとアドレスは、リクエストの発行元から渡された値をそのまま設定する。
【００４７】
データの読取り命令は、アドレスに従ってシステム制御装置１２０ｂ→入出力制御装置１３０ｂ→入出力装置１４２という経路で送信される（ステップＳ１０５、ステップＳ１０６）。そして、入出力装置１４２は、指定されたデータを読み出して応答し、この応答は、経路を逆に辿っていき、ＣＰＵ１１０ａに返される（ステップＳ１０７〜１０９）。
【００４８】
続いて、システム制御装置１２０ｂと入出力制御装置１３０ｂの間の経路に障害が発生した場合の処理の流れを図４および図５を用いて説明する。システム制御装置１２０ｂと入出力制御装置１３０ｂの間の経路に障害が発生すると、その旨がシステム制御装置１２０ｂからシステム制御装置１２０ａに通知され、入出力装置１４２に対するエントリがＷＡＹ３を送信先とするように更新される。
【００４９】
この状態において、リクエストの発行元が図３の場合と同じデータの読み出し要求（オペコード：３４）をＣＰＵ１１０ａに対しておこなったものとする（ステップＳ２０１）。この読み出し要求は、別のリクエストであるためＲＱＩＤの値は異なるが、他の項目の値は図３に示したものと同じ内容となる。
【００５０】
要求を受けたＣＰＵ１１０ａは、経路問合せ要求（オペコード：１８）をシステム制御装置１２０ａに対して発行する（ステップＳ２０２）。このとき、要求を識別するためのリクエストＩＤ（ＲＱＩＤ）と入出力装置を識別するためのアドレス（ＡＤＤＲ）は、リクエストの発行元から渡された値をそのまま設定する。
【００５１】
経路問合せ要求を受信したシステム制御装置１２０ａは、アドレスの３６ビット目〜３８ビット目の値をキーとして構成情報１２１を検索し、得られた経路を経路指示（オペコード：０９）の引数に含めてＣＰＵ１１０ａに応答する（ステップＳ２０３）。このとき、ＲＱＩＤには経路問合せ要求にて指定された値をそのまま設定する。図５の例では、アドレスの３６ビット目〜３８ビット目の値は「１０１」であり、この値をキーにして構成情報１２１を検索した結果、ＷＡＹ３が送出先として決定されている。
【００５２】
経路指示の応答を受信したＣＰＵ１１０ａは、ＷＡＹ３へ向けてデータの読取り命令を発行する（ステップＳ２０４）。このときも、ＲＱＩＤとアドレスは、リクエストの発行元から渡された値をそのまま設定する。
【００５３】
データの読取り命令は、アドレスに従ってシステム制御装置１２０ｄ→入出力制御装置１３０ｂ→入出力装置１４２という経路で送信される（ステップＳ２０５、ステップＳ２０６）。そして、入出力装置１４２は、指定されたデータを読み出して応答し、この応答は、経路を逆に辿っていき、ＣＰＵ１１０ａに返される（ステップＳ２０７〜２０９）。
【００５４】
上記の処理の流れにおいては、リクエストの発行元は図３の場合と同様の内容の読み出し要求をおこなっているだけであるが、経路の問合せの結果、システム制御装置１２０ａが正常な経路を応答しているため、障害の発生している経路を回避して入出力処理をおこなうことができている。
【００５５】
このように、経路等の障害をシステム制御装置の一つに通知する仕組みを設け、このシステム制御装置において各入出力装置への正常な経路を把握しておき、ＣＰＵが入出力装置に対して入出力命令を発行する際にこのシステム制御装置に対して経路の問合せをおこなうように構成することにより、冗長化された経路等の一部に障害が発生しても他の経路を用いて処理を継続させることができる。
【００５６】
この方式では、監視モジュールのような特別な装置を追加することなく、既存の装置に簡易な仕組みを追加することにより、情報処理装置の信頼性の向上を低コストで実現することができる。また、経路等の障害が発生しても、リクエストの発行元は障害を意識する必要がないので、既存のＯＳ等をそのまま利用することができる。
【００５７】
なお、構成情報１２１を保持し、ＣＰＵから入出力装置への経路の問合せを受け、応答する機能は、必ずしもシステム制御装置において実現するはなく、他の装置にて実現してもよい。ただし、かかる機能を低コストで実現するためには、ＣＰＵとの高速な接続を有する既存の装置に機能を追加することが好ましい。
【００５８】
次に、システム制御装置１２０ａの構成について説明する。図６は、システム制御装置１２０ａの構成を示すブロック図である。同図に示すように、システム制御装置１２０ａは、リクエストポート１０と、タグパイプ２０と、タグ２１ａ〜２１ｄと、キュー３０ａ〜３０ｈと、クロスバー４０と、リクエスト振分部５０と、リクエストポート６０と、経路選択部７０と、キュー８０ａ〜８０ｄと、構成情報更新部９０と、構成情報１２１とを有する。
【００５９】
これらの部位のうち、リクエストポート１０、タグパイプ２０、タグ２１ａ〜２１ｄ、キュー３０ａ〜３０ｈおよびクロスバー４０は、システム制御装置１２０ｂ〜１２０ｄ等の従来のシステム制御装置が一般的に備えているものであり、リクエスト振分部５０、リクエストポート６０、経路選択部７０、キュー８０ａ〜８０ｄ、構成情報更新部９０および構成情報１２１は、システム制御装置１２０ａに特有なものである。
【００６０】
リクエストポート１０は、ＣＰＵ１１０ａ〜１１０ｄ、入出力制御装置（ＩＯＣ：Input/Output  Controller）１３０ａおよび１３０ｃから受信した入出力要求を一時的に保持し、優先順位に従ってタグパイプ２０へ投入する処理部である。タグパイプ２０は、タグ２１ａ〜２１ｄを検索し、主にコヒーレンシの観点から入出力要求の処理先を決定し、処理先へ要求を発行する処理部である。
【００６１】
タグ２１ａ〜２１ｄは、それぞれ、ＣＰＵ１１０ａ〜１１０ｄに１対１で対応し、対応するＣＰＵがキャッシュしているデータのタグ情報のコピーを記憶し、主にデータのコヒーレンシを保つために利用される。タグパイプ２０がタグ２１ａ〜２１ｄを利用して処理先を決定する方式については、既に公知であるので説明を省略する。
【００６２】
キュー３０ａ〜３０ｈは、それぞれ、ＣＰＵ１１０ａ〜１１０ｄ、入出力制御装置１３０ａおよび１３０ｃ、メモリアクセス制御装置（ＭＡＣ：Memory  Access  Controller）１５０ａおよび１５０ｂに１対１で対応し、対応する装置に対してタグパイプ２０が発行した要求をオーダー順に保持し、処理可能になったタイミングで要求を送信する処理部である。
【００６３】
クロスバー４０は、要求に対する応答のルーティングをおこない、応答を適切な宛先へ送信する処理部である。
【００６４】
リクエスト振分部５０は、ＣＰＵ１１０ａ〜１１０ｄ、入出力制御装置１３０ａおよび１３０ｃから受信した要求が入出力要求であるのか、経路問合せ要求であるのかを判定し、入出力要求であればリクエストポート１０へ、経路問合せ要求であればリクエストポート６０へ要求を転送する処理部である。
【００６５】
リクエストポート６０は、ＣＰＵ１１０ａ〜１１０ｄから受信した経路問合せ要求を一時的に保持し、優先順位に従って経路選択部７０へ投入する処理部である。経路選択部７０は、構成情報１２１を検索し、経路問合せ要求において指定されたアドレスに対応する正常な経路を選択して経路指示を生成する処理部である。
【００６６】
キュー８０ａ〜８０ｄは、それぞれ、ＣＰＵ１１０ａ〜１１０ｄに１対１で対応し、対応するＣＰＵに対して経路選択部７０が生成した経路指示を生成順に保持し、送信可能になったタイミングで対応するＣＰＵに送信する処理部である。
【００６７】
構成情報更新部９０は、システム制御装置（ＳＣ：System  Controller）１２０ｂ〜１２０ｄおよび入出力制御装置１３０ａから経路等の障害の通知を受け付け、障害の通知があった経路等を使用しないように構成情報１２１を更新する処理部である。構成情報１２１は、入出力装置に割り当てられたアドレス空間と、その入出力装置とＣＰＵの間の経路の対応を保持する情報であり、一つの入出力装置に対して一つもしくは複数の経路を保持する。
【００６８】
このように、システム制御装置１２０ａは、既存の構成に対して、本実施例に係る入出力リクエスト方式を実現するための装置を追加した構成となっている。
【００６９】
上述してきたように、本実施例では、システム制御装置１２０ａ内の構成情報１２１に入出力装置とＣＰＵの間の正常な経路の対応を保持し、ＣＰＵが入出力処理をおこなう場合にシステム制御装置１２０ａに経路を問合せるように構成したので、高い信頼性と可用性を備えた情報処理装置を簡易な構成によって低コストに実現することができる。
【００７０】
なお、本実施例では、入出力装置とＣＰＵの間の経路を冗長化した情報処理装置の場合を例にして説明したが、同種の入出力装置を複数設けて冗長化した情報処理装置の場合にも本発明は有効である。具体的には、一つの入出力装置に障害が発生した旨の通知を受けた場合、システム制御装置１２０ａは、冗長化されている他の入出力装置への経路が有効になるように構成情報１２１を更新し、処理を継続させる。
【００７１】
また、本実施例では、メモリマップ式入出力を採用する情報処理装置の場合を例にして説明したが、Ｉ／Ｏポート式入出力を採用する情報処理装置においても本発明は有効である。また、構成情報１２１のデータ構成は、図３等に示した通りである必要はなく、入出力装置と経路の対応と、各経路上における障害の有無が分かるようになっていればよい。
【実施例２】
【００７２】
近年、情報処理装置を仮想化してパーティションに分割し、１台の情報処理装置上で複数のＯＳを同時に稼動させる技術が一般化してきている。この技術を用いた場合、各パーティション毎に独立したアドレス空間が割り当てられる。このため、あるパーティションにおいて入出力装置に割り当てられているアドレス領域が、他のパーティションにおいては別の入出力装置に割り当てられている場合がある。
【００７３】
このように、情報処理装置を仮想化してパーティションに分割した場合、システム制御装置は、リクエストの要求元から指示されたアドレスをそのまま利用して経路を判断することができない。本実施例では、情報処理装置を仮想化してパーティションに分割した場合における入出力リクエスト方式について説明する。
【００７４】
本実施例に係る入出力リクエスト方式の処理の流れを図７および図８を用いて説明する。なお、説明のために例として用いる情報処理装置の基本的な構成は、システム制御装置１２０ａがシステム制御装置２２０ａに置き換わった以外は、図１と同様であるものとする。
【００７５】
また、この情報処理装置においては、ＣＰＵ１１０ａと、入出力制御装置１３０ａと、入出力制御装置１３０ｂとにより「２」というＩＤをもつパーティションが構成され、ＣＰＵ１１０ｂと、入出力制御装置１３０ｃとにより「１」というＩＤをもつパーティションが構成され、ＣＰＵ１１０ｃと、ＣＰＵ１１０ｄと、入出力制御装置１３０ｄとにより「０」というＩＤをもつパーティションが構成されているものとする。また、各システム制御装置は、全てのパーティションによって共有されているものとする。
【００７６】
「１」というＩＤをもつパーティションにおいて、リクエストの発行元から入出力装置１４３に対するデータの読み出し要求（オペコード：３４）がＣＰＵ１１０ｂに対してなされたものとする（ステップＳ３０１）。要求を受けたＣＰＵ１１０ｂは、経路問合せ要求（オペコード：１８）をシステム制御装置２２０ａに対して発行する（ステップＳ３０２）。このとき、要求を識別するためのリクエストＩＤ（ＲＱＩＤ）と入出力装置を識別するためのアドレス（ＡＤＤＲ）は、リクエストの発行元から渡された値をそのまま設定する。
【００７７】
経路問合せ要求を受信したシステム制御装置２２０ａは、要求元のＣＰＵのＩＤを自身が記憶するパーティション表２２２と照合して、要求元のＣＰＵが属するパーティションを判別する。パーティション表２２２は、ＣＰＵのＩＤとパーティションのＩＤの対応を保持するテーブルである。図８の例では、要求元のＣＰＵのＩＤである「１」をキーにしてパーティション表２２２を検索し、「１」というパーティションのＩＤを得ている。
【００７８】
パーティションを判別したシステム制御装置２２０ａは、構成情報２２１を参照して経路の判定をおこなう。構成情報２２１は、入出力装置に割り当てられたアドレス領域と、ＣＰＵと入出力装置の間の経路との対応をパーティションごとに保持する。このため、同じアドレス領域が、パーティションごとに異なる入力装置に割り当てられていても経路を正しく選択することができる。
【００７９】
また、構成情報２２１の各エントリは、ＣＰＵと入出力装置の間の経路の情報に加えて、各パーティションにおいて入力装置に割り当てられている仮想的なアドレスを実アドレスに変換するための情報も保持する。図８の例では、アドレスの３６ビット目から３８ビット目を使用してどの入力装置に割り当てられているアドレス領域であるかを判別するようになっており、アドレスのこの部分を実アドレスに変換するための情報が各エントリに保持されている。
【００８０】
システム制御装置２２０ａは、パーティションのＩＤとアドレスの３６ビット目〜３８ビット目の値をキーとして構成情報２２１を検索し、得られた経路を経路指示（オペコード：０９）の引数に含めてＣＰＵ１１０ｂに応答する（ステップＳ３０３）。このとき、ＲＱＩＤには経路問合せ要求にて指定された値をそのまま設定する。図８の例では、アドレスの３６ビット目〜３８ビット目の値は「１００」であり、この値とパーティションのＩＤである「１」をキーにして構成情報２２１を検索した結果、ＷＡＹ２が送出先として選択され、アドレスを実アドレスに変換するための情報として「１１０」が取得され、これらの情報が経路指示のオペコードの引数に含められている。
【００８１】
経路指示を受信したＣＰＵ１１０ｂは、ＷＡＹ２へ向けてデータの読取り命令を発行する（ステップＳ３０４）。このとき、アドレスの３６ビット目から３８ビット目を経路指示に含まれていた値に置き換える。図８の例では、アドレスの３６ビット目から３８ビット目が「１００」から「１１０」に置き換えられている。ＲＱＩＤとアドレスについては、リクエストの発行元から渡された値をそのまま設定する。
【００８２】
データの読取り命令は、アドレスに従ってシステム制御装置１２０ｃ→入出力制御装置１３０ｃ→入出力装置１４３という経路で送信される（ステップＳ３０５、ステップＳ３０６）。そして、入出力装置１４３は、指定されたデータを読み出して応答し、この応答は、経路を逆に辿っていき、ＣＰＵ１１０ｂに返される（ステップＳ３０７〜３０９）。
【００８３】
次に、システム制御装置２２０ａの構成について説明する。図９は、システム制御装置２２０ａの構成を示すブロック図である。ここでは、図６に示したシステム制御装置１２０ａとの相違点についてのみ説明する。
【００８４】
リクエストポート６０は、ＣＰＵ１１０ａ〜１１０ｄから受信した経路問合せ要求を経路選択部７０へ投入する代わりにパーティション判別部７１へ投入する。パーティション判別部７１は、経路問合せ要求の送信元のＣＰＵの属するパーティションの識別情報をパーティション表２２２から取得し、この情報を経路問合せ要求に付加して経路選択部７２へ転送する処理部である。
【００８５】
経路選択部７２は、構成情報２２１を検索し、経路問合せ要求において指定されたアドレスとパーティション判別部７１により判別されたパーティションに対応する正常な経路を選択して経路指示を生成する処理部である。経路選択部７２は、経路問合せ要求において指定されたアドレスを実アドレスに置き換えるための情報も構成情報２２１から取得し、この情報を経路指示に含める。
【００８６】
上述してきたように、本実施例では、ＣＰＵが属するパーティションを判別する仕組みを追加し、この判別結果を使用して経路を選択するように構成したので、仮想的にパーティションに分割された情報処理装置においても、高い信頼性と可用性を低コストで実現することができる。
【００８７】
また、ＣＰＵとシステム制御装置２２０ａのやりとりの中で入出力装置に対応する仮想的なアドレスが実アドレスに変換されるように構成したので、情報処理装置が仮想的に分割させることをＯＳに意識させる必要がなく、ソフトウェアを柔軟に構成することができる。
【実施例３】
【００８８】
上記の各実施例で説明した技術を応用することにより、負荷分散を実現することもできる。本実施例では、実施例１において説明した入出力リクエスト方式を応用して負荷分散を実現する場合について説明する。
【００８９】
本実施例に係る入出力リクエスト方式の処理の流れを図１０および図１１を用いて説明する。なお、説明のために例として用いる情報処理装置の基本的な構成は、システム制御装置１２０ａがシステム制御装置３２０ａに置き換わった以外は、図１と同様であるものとする。
【００９０】
リクエストの発行元から入出力装置１４２に対するデータの読み出し要求（オペコード：３４）がＣＰＵ１１０ａに対してなされたものとする（ステップＳ４０１）。要求を受けたＣＰＵ１１０ａは、経路問合せ要求（オペコード：１８）をシステム制御装置３２０ａに対して発行する（ステップＳ４０２）。このとき、要求を識別するためのリクエストＩＤ（ＲＱＩＤ）と入出力装置を識別するためのアドレス（ＡＤＤＲ）は、リクエストの発行元から渡された値をそのまま設定する。
【００９１】
経路問合せ要求を受信したシステム制御装置３２０ａは、アドレスの３６ビット目〜３８ビット目の値をキーとして構成情報３２１を検索し、得られた経路を経路指示（オペコード：０９）の引数に含めてＣＰＵ１１０ａに応答する（ステップＳ４０３）。このとき、ＲＱＩＤには経路問合せ要求にて指定された値をそのまま設定する。
【００９２】
構成情報３２１は、アドレスの３６ビット目〜３８ビット目の値と、このアドレス領域に対応する入出力装置への各経路の有効性とを対応付けて保持する。
【００９３】
図１１の例では、アドレスの３６ビット目〜３８ビット目の値である「１０１」に対応付けて「０」、「１」、「０」、「１」という４つの値を保持している。これらの値は、「１０１」というアドレス領域に対応する入出力装置への経路として、それぞれ、ＷＡＹ０、ＷＡＹ１、ＷＡＹ２、ＷＡＹ３が有効な経路であるか否かを示している。「１」は、有効な経路であることを示し、「０」は、経路が当初から接続されていないか、障害により利用できない状態にあることを示す。
【００９４】
システム制御装置３２０ａは、アドレスの３６ビット目〜３８ビット目の値をキーとして構成情報３２１を検索し、複数の経路が利用可能であると分かった場合は、使用履歴（ＬＲＵ：Least  Recently  Used）を参照して、最も以前に使用された経路を選択する。これにより、冗長化された各経路が周回的に使用されることとなり、負荷分散が実現される。使用履歴を最新に保つため、システム制御装置２２０ａは、経路を選択した後、使用履歴の更新をおこなう。
【００９５】
なお、複数の経路が利用可能である場合にどの経路を選択するかを決定する方式は、必ずしも使用履歴を利用する方式を用いる必要はなく、例えば、カウンタ、乱数もしくはキュー等を利用して各経路が周回的に使用されるように構成してもよい。
【００９６】
図１１の例では、アドレスの３６ビット目〜３８ビット目の値は「１０１」であり、この値をキーにして構成情報３２１を検索した結果、ＷＡＹ１およびＷＡＹ３が経路として利用可能であることが分かる。
【００９７】
使用履歴を参照した結果、ＷＡＹ１が経路として選択された場合、経路指示を受信したＣＰＵ１１０ａは、ＷＡＹ１へ向けてデータの読取り命令を発行する（ステップＳ４０４）。このときも、ＲＱＩＤとアドレスは、リクエストの発行元から渡された値をそのまま設定する。
【００９８】
データの読取り命令は、アドレスに従ってシステム制御装置１２０ｂ→入出力制御装置１３０ｂ→入出力装置１４２という経路で送信される（ステップＳ４０５、ステップＳ４０６）。そして、入出力装置１４２は、指定されたデータを読み出して応答し、この応答は、経路を逆に辿っていき、ＣＰＵ１１０ａに返される（ステップＳ４０７〜４０９）。
【００９９】
また、使用履歴を参照した結果、ＷＡＹ３が経路として選択された場合、経路指示を受信したＣＰＵ１１０ａは、ＷＡＹ３へ向けてデータの読取り命令を発行する（ステップＳ４１０）。このときも、ＲＱＩＤとアドレスは、リクエストの発行元から渡された値をそのまま設定する。
【０１００】
データの読取り命令は、アドレスに従ってシステム制御装置１２０ｄ→入出力制御装置１３０ｂ→入出力装置１４２という経路で送信される（ステップＳ４１１、ステップＳ４０６）。そして、入出力装置１４２は、指定されたデータを読み出して応答し、この応答は、経路を逆に辿っていき、ＣＰＵ１１０ａに返される（ステップＳ４０７、ステップＳ４１２、ステップＳ４１３）。
【０１０１】
なお、システム制御装置３２０ａは、上記のように経路選択のための処理ロジックは変更されているが、構成は図６に示したシステム制御装置１２０ａと同様であるので、ここでは構成の説明は省略する。
【０１０２】
上述してきたように、本実施例では、使用履歴を利用して冗長化された経路が周回的に使用されるように構成したので、負荷分散を実現することができる。
【産業上の利用可能性】
【０１０３】
以上のように、本発明にかかる情報処理装置、システム制御装置および入出力リクエスト方法は、ＣＰＵと入出力装置の間を接続する経路が冗長化された構成において有用であり、特に、高い信頼性と可用性を簡易な構成によって低コストで実現することが必要な場合に適している。
【図面の簡単な説明】
【０１０４】
【図１】図１は、本実施例に係る入出力リクエスト方式を実行する情報処理装置の一例を示す図である。
【図２】図２は、本実施例に係る入出力リクエスト方式の処理手順を示すシーケンス図である。
【図３】図３は、本実施例に係る入出力リクエスト方式の処理例を示す図である。
【図４】図４は、障害発生後の処理手順を示すシーケンス図である。
【図５】図５は、障害発生後の処理例を示す図である。
【図６】図６は、システム制御装置の構成を示すブロック図である。
【図７】図７は、本実施例に係る入出力リクエスト方式の処理手順を示すシーケンス図である。
【図８】図８は、本実施例に係る入出力リクエスト方式の処理例を示す図である。
【図９】図９は、システム制御装置の構成を示すブロック図である。
【図１０】図１０は、本実施例に係る入出力リクエスト方式の処理手順を示すシーケンス図である。
【図１１】図１１は、本実施例に係る入出力リクエスト方式の処理例を示す図である。
【図１２】図１２は、アドレス空間の一部に入出力装置用のアドレス領域を割り当てた例を示す図である。
【図１３】図１３は、入出力命令の発行先の選択をデコーダによって実装した例を示す図である。
【図１４】図１４は、入出力命令の発行先の選択をテーブル検索によって実装した例を示す図である。
【符号の説明】
【０１０５】
１０    リクエストポート
２０    タグパイプ
２１ａ〜２１ｄ  タグ
３０ａ〜３０ｈ  キュー
４０    クロスバー
５０    リクエスト振分部
６０    リクエストポート
７０    経路選択部
７１    パーティション判別部
７２    経路選択部
８０ａ〜８０ｄ  キュー
９０    構成情報更新部
１００    情報処理装置
１１０ａ〜１１０ｄ  ＣＰＵ
１２０ａ〜１２０ｄ  システム制御装置
１２１    構成情報
１３０ａ〜１３０ｄ  入出力制御装置
１４１〜１４４  入出力装置
１５０ａ、１５０ｂ  メモリアクセス制御装置
２２０ａ  システム制御装置
２２１    構成情報
２２２    パーティション表
３２０ａ  システム制御装置
３２１    構成情報
４０１〜４０２  ＡＮＤ回路
４１０    構成情報
【図１】
0004712089.tif 000002
【図２】
0004712089.tif 000003
【図３】
0004712089.tif 000004
【図４】
0004712089.tif 000005
【図５】
0004712089.tif 000006
【図６】
0004712089.tif 000007
【図７】
0004712089.tif 000008
【図８】
0004712089.tif 000009
【図９】
0004712089.tif 000010
【図１０】
0004712089.tif 000011
【図１１】
0004712089.tif 000012
【図１２】
0004712089.tif 000013
【図１３】
0004712089.tif 000014
【図１４】
0004712089.tif 000015