(57)【要約】  本発明は、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができるスイッチ、情報処理装置およびアドレス変換方法を提供することを目的とする。この目的を達成するため、入出力制御装置４０と入出力デバイス８０ａおよび７０ｂの間を接続するスイッチ９０ａは、入出力デバイス８０ａおよび７０ｂがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するためのアドレス変換表９１ａを記憶する記憶部９２０と、入出力デバイス８０ａおよび７０ｂが発行したＤＭＡ要求に含まれるアドレスを、アドレス変換表９１ａを参照して実計算機上の物理アドレスへ変換するアドレス変換部９１４とを備える。
2008120325.tif 000002
【特許請求の範囲】
【請求項１】
入出力制御装置と入出力デバイスの間を接続するスイッチであって、
前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段と
を備えたことを特徴とするスイッチ。
【請求項２】
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項３】
前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする請求項２に記載のスイッチ。
【請求項４】
前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする請求項２に記載のスイッチ。
【請求項５】
前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする請求項２に記載のスイッチ。
【請求項６】
前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項７】
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項８】
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項９】
前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項１０】
入出力制御装置と入出力デバイスの間を接続するスイッチを有する情報処理装置であって、
前記スイッチは、
前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段と
を備えたことを特徴とする情報処理装置。
【請求項１１】
前記スイッチは、
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段を
さらに備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
前記スイッチは、
前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段を
さらに備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１６】
前記スイッチは、
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段を
さらに備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１７】
前記スイッチは、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段を
さらに備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１８】
前記スイッチは、
前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段を
さらに備えたことを特徴とする請求項１０に記載の情報処理装置。
【請求項１９】
入出力制御装置と入出力デバイスの間を接続するスイッチが行うアドレス変換方法であって、
前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶手段に記憶させる記憶工程と、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換工程と
を含んだことを特徴とするアドレス変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入出力制御装置と入出力デバイスの間を接続するスイッチと、そのスイッチを有する情報処理装置と、そのスイッチが実行するアドレス変換方法とに関し、特に、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができるスイッチ、情報処理装置およびアドレス変換方法に関する。
【背景技術】
【０００２】
従来、仮想化技術を用いてホストＯＳ上に仮想計算機を実現し、仮想計算機上でゲストＯＳを稼動させた場合、ゲストＯＳ上で動作するアプリケーションは、ホストＯＳ上で動作する同種のアプリケーションよりも、かなり低い処理性能しか得ることができなかった。この問題を解決するため、近年、ゲストＯＳ上で動作するアプリケーションの処理性能の低下を解消するための仕組みが実現されつつある。【０００３】
ゲストＯＳ上で動作するアプリケーションの処理性能が低化する要因の一つに、ＤＭＡ（Direct  Memory  Access）におけるアドレス変換がある。ゲストＯＳ上で動作するアプリケーションにおいて入出力デバイスへの入出力処理が発生した場合、ゲストＯＳは、その入出力処理を実現するためのＤＭＡの実行を対象の入出力デバイスへ依頼する。ところが、ＤＭＡにおいて入出力デバイスがアクセスすべきメモリ領域は、実在の情報処理装置の物理アドレス（以下、「ＨＰＡ（Host  Physical  Address）」という）で指定しなければならないところ、ゲストＯＳは、実在の情報処理装置の物理アドレスを意識しないため、仮想計算機の物理アドレス（以下、「ＧＰＡ（Guest  Physical  Address）」という）で指定してしまう。【０００４】
そのため、従来は、仮想計算機を実現するハイパーバイザと呼ばれるプログラムが、ＧＰＡをＨＰＡへ変換する処理をソフトウェアによって実行していたが、このアドレス変換がオーバヘッドとなって、アプリケーションの性能低化が生じていた。このオーバヘッドを解消するため、ＤＭＡリマッピングやＡＴＳ（Address  Translation  Service）といった技術が導入されつつある。ＤＭＡリマッピングは、入出力処理を制御する入出力制御装置において、ＧＰＡをＨＰＡへ高速に変換する処理をハードウェアによって実現する技術である。また、ＡＴＳは、入出力デバイスにおいて、ＧＰＡをＨＰＡへ変換する処理を実現する技術である（非特許文献１参照）。【０００５】
【非特許文献１】“Intel  Virtualization  Technology”、［online］、［平成１９年３月２２日検索］、インターネット＜URL：http://www.intel.com/technology/itj/2006/v10i3/2-io/5-platform-hardware-support.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＤＭＡリマッピングには、多数の入出力処理が発生した場合に、アドレス変換処理によって入出力制御装置の負荷が上昇してしまうという問題がある。この問題は、ＡＴＳを用いることにより緩和できるものの、ＡＴＳの機能を実現するには、入出力デバイスのハードウェアやファームウェアの対応が必要であり、従来の入出力デバイスをそのまま使用することはできないという問題がある。【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができるスイッチ、情報処理装置およびアドレス変換方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、入出力制御装置と入出力デバイスの間を接続するスイッチであって、前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。【０００９】
また、本発明の他の態様では、入出力制御装置と入出力デバイスの間を接続するスイッチを有する情報処理装置であって、前記スイッチは、前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。【００１０】
これらの発明の態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができる。【００１１】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段をさらに備えたことを特徴とする。【００１２】
この発明の態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができる。【００１３】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする。【００１４】
この発明の態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができる。【００１５】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする。【００１６】
この発明の態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。【００１７】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする。【００１８】
この発明の態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。【００１９】
また、本発明の他の態様では、上記の発明の態様において、前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段をさらに備えたことを特徴とする。【００２０】
この発明の態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができる。【００２１】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段をさらに備えたことを特徴とする。【００２２】
この発明の態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができる。【００２３】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。【００２４】
この発明の態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができる。【００２５】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。【００２６】
この発明の態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができる。
【発明の効果】
【００２７】
本発明の一つの態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができるという効果を奏する。【００２８】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができるという効果を奏する。【００２９】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができるという効果を奏する。【００３０】
また、本発明の一つの態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。【００３１】
また、本発明の一つの態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。【００３２】
また、本発明の一つの態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができるという効果を奏する。【００３３】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができるという効果を奏する。【００３４】
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができるという効果を奏する。【００３５】
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができるという効果を奏する。
【図面の簡単な説明】
【００３６】
【図１】図１は、本実施例に係る情報処理装置の構成を示す図である。
【図２】図２は、スイッチの構成を示すブロック図である。
【図３】図３は、入出力デバイスがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。
【図４】図４は、入出力デバイスがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。
【図５】図５は、入出力デバイスが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。
【図６】図６は、入出力デバイスが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。
【図７】図７は、入出力制御装置が、入出力デバイスに対してｉｎｖａｌｉｄａｔｉｏｎを発行した場合の処理手順を示すシーケンス図である。
【図８】図８は、ＤＭＡリマッピング技術が適用された情報処理装置の構成の一例を示す図である。
【図９】図９は、ＡＴＳ技術が適用された情報処理装置の構成の一例を示す図である。
【符号の説明】
【００３７】
１〜３  情報処理装置
１０    ＣＰＵ
１１    ホストＯＳ
１２    ハイパーバイザ
１３ａ〜１３ｃ  ゲストＯＳ
２０    メモリ制御装置
３０    メモリ
４０    入出力制御装置
４１    アドレス変換表
５０、６０ａ、６０ｂ  スイッチ
７０ａ〜７０ｄ  入出力デバイス
８０ａ  入出力デバイス
８１ａ  アドレス変換表
９０ａ、９０ｂ  スイッチ
９１ａ  アドレス変換表
９１０    アドレス変換支援部
９１１    アドレス変換表編集部
９１２    アドレス変換表管理部
９１３    アドレス変換表応答部
９１４    アドレス変換部
９１５    アドレス検証部
９２０    記憶部
９３０    スイッチ部
【発明を実施するための最良の形態】
【００３８】
以下に、本発明に係るスイッチ、情報処理装置およびアドレス変換方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００３９】
まず、従来の情報処理装置の構成について説明する。図８は、ＤＭＡリマッピング技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置１は、ＣＰＵ（Central  Processing  Unit）１０と、メモリ制御装置２０と、メモリ３０と、入出力制御装置４０と、スイッチ５０、６０ａおよび６０ｂと、入出力デバイス７０ａ〜７０ｄとを有する。【００４０】
ＣＰＵ１０は、各種演算処理を実行する演算装置である。図８に示した例では、ＣＰＵ１０は、ホストＯＳ１１上でハイパーバイザ１２を動作させ、さらに、ハイパーバイザ１２上でゲストＯＳ１３ａ〜１３ｃを動作させている。ホストＯＳ１１上は、情報処理装置１を制御する基本ソフトであり、ハイパーバイザ１２は、仮想計算機を実現するプログラムである。そして、ゲストＯＳ１３ａ〜１３ｃは、仮想計算機上で動作する基本ソフトである。【００４１】
メモリ制御装置２０は、メモリ３０へのアクセスを制御する制御装置であり、メモリ３０は、情報処理装置１の主記憶である。入出力制御装置４０は、入出力デバイス７０ａ〜７０ｄへのアクセスを制御する制御装置である。スイッチ５０、６０ａおよび６０ｂは、入出力制御装置４０と入出力デバイス７０ａ〜７０ｄの接続状態を切り替える切替装置であり、ＣＰＵ１０に近い側を上位、入出力デバイス７０ａ〜７０ｄに近い側を下位と呼ぶこととして、スイッチ５０の下位にスイッチ６０ａおよび６０ｂが接続された構成となっている。【００４２】
入出力デバイス７０ａ〜７０ｄは、ディスク装置やネットワークインターフェース装置等の各種デバイスである。入出力デバイス７０ａおよび７０ｂは、スイッチ６０ａの下位に接続され、入出力デバイス７０ｃおよび７０ｄは、スイッチ６０ｂの下位に接続されている。【００４３】
現在広く利用されている入出力バスの仕様であるＰＣＩ  Ｅｘｐｒｅｓｓの用語に従えば、入出力制御装置４０は、Ｒｏｏｔ  Ｃｏｍｐｌｅｘに相当し、スイッチ５０、６０ａおよび６０ｂは、ＰＣＩｅ  Ｓｗｉｔｃｈに相当し、入出力デバイス７０ａ〜７０ｄは、ＰＣＩｅ  Ｅｎｄｐｏｉｎｔに相当する。【００４４】
そして、入出力制御装置４０は、アドレス変換表４１を備える。アドレス変換表４１は、ゲストＯＳ１３ａ〜１３ｃが入出力デバイス７０ａ〜７０ｄに対してＤＭＡの実行を依頼する際に指定したアドレスをＧＰＡからＨＰＡへ変換するための変換表であり、ハイパーバイザ１２によって編集される。【００４５】
入出力制御装置４０は、入出力デバイス７０ａ〜７０ｄがゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにメモリ３０へアクセスしようとした場合に、アドレス変換表４１を参照して、アクセス先のアドレスをＧＰＡからＨＰＡへ変換する。このように、ハードウェアによってアドレス変換処理を行うことにより、入出力処理実行時にハイパーバイザ１２がアドレス変換を行う必要がなくなり、ゲストＯＳ１３ａ〜１３ｃの動作が高速化される。【００４６】
しかしながら、この構成では、ゲストＯＳ１３ａ〜１３ｃにおいて多数の入出力処理が発生した場合に、入出力制御装置４０の負荷が高くなり、処理の遅延による性能低化が発生するという問題があった。【００４７】
図９は、ＡＴＳ技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置２は、入出力デバイス７０ａに代えて、入出力デバイス８０ａを有している点において情報処理装置１と異なる。入出力デバイス８０ａは、アドレス変換表８１ａを有する。【００４８】
アドレス変換表８１ａは、ゲストＯＳ１３ａ〜１３ｃが入出力デバイス８０ａに対してＤＭＡの実行を依頼する際に指定したアドレスをＧＰＡからＨＰＡへ変換するための変換表である。入出力デバイス８０ａは、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表をアドレス変換表４１から抽出して転送するように求めるリクエストを入出力制御装置４０へ送信し、応答された変換表をアドレス変換表８１ａとしてキャッシュする。【００４９】
そして、入出力デバイス８０ａは、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにメモリ３０へアクセスする場合に、アドレス変換表８１ａを参照して、アクセス先のアドレスをＧＰＡからＨＰＡへ変換する。このように、アドレス変換表８１ａが自身の分のアドレス変換表をキャッシュしてＤＭＡ実行時にアドレス変換処理を行うことにより、入出力制御装置４０がアドレス変換に要する負荷を軽減することができる。【００５０】
しかしながら、ＡＴＳ技術を用いて入出力デバイスにおいてアドレス変換を実行するには、入出力デバイスのハードウェアやファームウェアの対応が必要となる。このため、入出力デバイス７０ｂ〜７０ｄのようにＡＴＳに対応していない旧来の入出力デバイスが多数接続されている場合には、アドレス変換に要する入出力制御装置４０の負荷は十分には軽減されない。【００５１】
次に、本実施例に係る情報処理装置の構成について説明する。図１は、本実施例に係る情報処理装置３の構成を示す図である。同図に示すように、情報処理装置３は、スイッチ６０ａおよび６０ｂに代えて、スイッチ９０ａおよび９０ｂを有している点において情報処理装置２と異なる。スイッチ９０ａおよび９０ｂは、それぞれ、アドレス変換表９１ａおよび９１ｂを有する。【００５２】
スイッチ９０ａおよび９０ｂは、同様の装置であるので、ここではスイッチ９０ａについて説明する。スイッチ９０ａは、自身を介して行われる情報のやりとりを監視し、入出力デバイス８０ａが、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表の転送を求めるリクエストを入出力制御装置４０へ送信した場合に、応答された変換表をアドレス変換表９１ａとしてキャッシュする。【００５３】
そして、スイッチ９０ａは、入出力デバイス８０ａから同様のリクエストが入出力制御装置４０へ再度送信された場合には、そのリクエストをトラップして、アドレス変換表９１ａから入出力デバイス８０ａに対応する変換表を抽出し、入出力制御装置４０に代わって、これを応答する。このように、スイッチ９０ａが入出力制御装置４０に代わって入出力デバイスに対応する変換表を応答することにより、入出力制御装置４０の負荷が軽減される。【００５４】
また、スイッチ９０ａは、ＡＴＳに対応していない入出力デバイス７０ｂに代わって、入出力デバイス７０ｂに対応するアドレスの変換表を入出力制御装置４０へ要求し、応答された変換表をアドレス変換表９１ａに保持する。【００５５】
そして、スイッチ９０ａは、入出力デバイス８０ａもしくは７０ｂが、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにＧＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａを参照してＧＰＡをＨＰＡへ変換する処理を実行する。このように、スイッチ９０ａが入出力制御装置４０に代わってアドレス変換を実行することにより、アドレス変換に要する入出力制御装置４０の負荷が大きく軽減される。【００５６】
スイッチ９０ａ等のスイッチは、図１の例のように多段で構成され、下位のスイッチほど対応する入出力デバイスの数が少なくなるため、下位のスイッチでアドレス変換を行うことにより、アドレス変換に要する負荷が分散され、負荷が特定のスイッチに集中することを防止することができる。【００５７】
また、スイッチ９０ａは、入出力デバイス８０ａが、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにＨＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａの変換後のアドレスを参照してＨＰＡが正当な値であるかどうかの検証を行う。このようにＨＰＡの正当性の検証を行うことにより、入出力デバイス８０ａが障害により不正な値をＨＰＡとして指定した場合であっても、メモリの内容が破壊されることを防止することができる。【００５８】
また、スイッチ９０ａは、所定の設定プログラムを介してシステム管理者等により入力されたアドレス変換情報もアドレス変換表９１ａに保持する。これにより、入出力制御装置４０がＤＭＡリマッピングに対応しない場合であっても、スイッチ９０ａが、入出力制御装置４０に代わって、入出力デバイス８０ａや７０ｂに対してアドレス変換機能を提供することができる。【００５９】
次に、図１に示したスイッチ９０ａの構成について説明する。図２は、スイッチ９０ａの構成を示すブロック図である。同図に示すように、スイッチ９０ａは、アドレス変換支援部９１０と、アドレス変換表９１ａを記憶する記憶部９２０と、入出力制御装置４０と入出力デバイス８０ａおよび７０ｂの接続を切り替えるスイッチ部９３０とを有する。【００６０】
アドレス変換支援部９１０は、入出力制御装置４０等の入力制御装置や、入出力デバイス８０ａおよび７０ｂ等の各種入出力デバイスにおけるアドレス変換処理を支援するための各種処理を実行する処理部であり、アドレス変換表編集部９１１と、アドレス変換表管理部９１２と、アドレス変換表応答部９１３と、アドレス変換部９１４と、アドレス検証部９１５とを有する。【００６１】
アドレス変換表編集部９１１は、所定の設定プログラムを介してシステム管理者等により入力された指示に基づいてアドレス変換表９１ａを編集する処理部である。システム管理者等によるアドレス変換表９１ａの編集は、例えば、入出力制御装置４０がＤＭＡリマッピングに対応しない場合に、アドレス変換表編集部９１１が、入出力制御装置４０に代わって、入出力デバイス８０ａや７０ｂに対してアドレス変換機能を提供できるようにするために行われる。【００６２】
なお、アドレス変換表９１ａは、ＧＰＡからＨＰＡへのアドレス変換を高速に行うことができるように、例えば、ハッシュテーブルや多段テーブルとして構成されていることが望ましい。【００６３】
アドレス変換表管理部９１２は、アドレス変換表９１ａの内容を自動的に更新する処理部である。具体的には、アドレス変換表管理部９１２は、入出力デバイス８０ａ等が、入出力制御装置４０へ送信するＴＣ（Translation  Cash）リクエストと、その応答であるＴＣレスポンスを監視し、ＴＣレスポンスに含まれる変換表をアドレス変換表９１ａに登録する。なお、ＴＣリクエストは、当該の入出力デバイスに対応する変換表をアドレス変換表４１から抽出して転送するように入出力制御装置４０に求めるリクエストである。【００６４】
また、アドレス変換表管理部９１２は、入出力デバイス７０ｂのようにＡＴＳに対応していない入出力デバイスに代わって、入出力制御装置４０にＴＣリクエストを送信し、応答されたＴＣレスポンスに含まれる変換表をアドレス変換表９１ａに登録する処理も行う。【００６５】
なお、記憶部９２０の容量は有限であるため、アドレス変換表９１ａが、所定のサイズよりも大きくなると、記憶部９２０に記憶しておくことができなくなる。この場合、アドレス変換表管理部９１２は、ＬＲＵ（Least  Recently  Used）論理等に基づいて重要度の低い情報をアドレス変換表９１ａから破棄する。【００６６】
このようにアドレス変換表９１ａの一部を破棄した場合、そのままでは、後述するアドレス検証部９１５によるアドレスの検証処理において、検証対象のアドレスがアドレス変換表９１ａに存在しない場合に、アドレスが不正なものであるのか、あるいは、アドレスが削除されたためにアドレス変換表９１ａに存在していないのかを区別することができなくなる。そこで、アドレス変換表管理部９１２は、容量不足によりアドレス変換表９１ａの一部を破棄する場合、破棄対象の変換表を保持している可能性のある入出力デバイスに対してｉｎｖａｌｉｄａｔｉｏｎを送信して、その部分の変換表を無効化させる。【００６７】
ｉｎｖａｌｉｄａｔｉｏｎは、入出力制御装置４０が何らかの理由でアドレス変換表４１の一部を破棄する場合に、一貫性を保持するために、その破棄する部分を保持している可能性がある入出力デバイスに該当部分の無効化を求めるリクエストである。上記のように、アドレス変換表９１ａの一部を破棄する場合にアドレス変換表管理部９１２がｉｎｖａｌｉｄａｔｉｏｎを送信することにより、アドレス変換表９１ａと、入出力デバイスが保持する変換表との一貫性が確保され、アドレス検証部９１５によるアドレスの検証が適正に行われる。【００６８】
なお、ｉｎｖａｌｉｄａｔｉｏｎが入出力制御装置４０によって発行された場合、アドレス変換表管理部９１２は、破棄を求められている部分をアドレス変換表９１ａから削除する処理を行う。【００６９】
アドレス変換表応答部９１３は、ＴＣリクエストによって要求された変換表がアドレス変換表９１ａに存在する場合に、そのＴＣリクエストをトラップして、入出力制御装置４０に代わって、要求された変換表を格納したＴＣレスポンスを応答する処理部である。【００７０】
アドレス変換部９１４は、入出力デバイス８０ａ等が、ゲストＯＳから依頼されたＤＭＡを実行するためにＧＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａを参照してＧＰＡをＨＰＡへ変換する処理を実行する。【００７１】
なお、ＰＣＩ  Ｅｘｐｒｅｓｓの場合、ＤＭＡの要求元がどのＯＳであるかは、入出力デバイス８０ａ等がＤＭＡを実行するために発行するトランザクションリクエストのヘッダ部分のリクエスタＩＤを参照することにより判別することができる。また、入出力デバイス８０ａ等がＤＭＡを実行するために指定したアドレスがＧＰＡであるかＨＰＡであるかは、トランザクションリクエストのヘッダ部分のアドレスタイプを参照することにより判別することができる。具体的には、アドレスタイプの値が変換済みであることを示すコードである場合は、指定されたアドレスはＨＰＡであり、アドレスタイプの値が未変換であることを示すコードである場合は、指定されたアドレスはＧＰＡである。【００７２】
アドレス検証部９１５は、入出力デバイス８０ａ等が、ゲストＯＳから依頼されたＤＭＡを実行するためにＨＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａの変換後のアドレスを参照してＨＰＡが適正な値であるかどうかの検証を行う。【００７３】
なお、アドレス検証部９１５がアドレスの検証を行うために参照するテーブルをアドレス変換表９１ａと別に設けることとしてもよい。この場合、検証用のテーブルには下位の入出力デバイスがキャッシュしている可能性のある変換後のアドレスの全てを記憶しておく必要があるが、アドレス変換表９１ａにはそれよりも少ない件数の情報を記憶することとしてもよい。アドレスの検証は、変換後のアドレスさえあればよいため、このように検証用のテーブルを独立して設けることにより、比較的少ない記憶容量で多くのアドレスを検証することが可能になる。また、変化後のアドレスを検索するために最適なデータ構造をとることにより、アドレスの検証を高速化することもできる。【００７４】
次に、情報処理装置３の処理手順について説明する。図３および４は、入出力デバイス８０ａがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。同図に示すように、入出力デバイス８０ａがＴＣリクエストを発行すると（ステップＳ１０１）、スイッチ９０ａは、入出力デバイス８０ａに対応する変換表をアドレス変換表９１ａに保持していなければ、そのＴＣリクエストを上位へ中継する（ステップＳ１０２）。【００７５】
ＴＣリクエストを受信した入出力制御装置４０は、入出力デバイス８０ａに対応する変換表をアドレス変換表４１から抽出して、ＴＣリプライとして応答する（ステップＳ１０３）。そして、スイッチ９０ａは、ＴＣリプライを入出力デバイス８０ａへ転送し（ステップＳ１０４）、そのＴＣリプライに含まれる変換表をアドレス変換表９１ａに登録する（ステップＳ１０５）。そして、そのＴＣリプライを受信した入出力デバイス８０ａは、そのＴＣリプライに含まれる変換表をアドレス変換表８１ａとして記憶する（ステップＳ１０６）。【００７６】
ここで、スイッチ９０ａが変換表をアドレス変換表９１ａに登録する際に記憶部９２０があふれ、入出力デバイス７０ｂに対応する変換表の一部を記憶部９２０から削除したとすると（ステップＳ１０７肯定）、スイッチ９０ａは、入出力デバイス７０ｂに対してｉｎｖａｌｉｄａｔｉｏｎを発行し、該当部分の破棄を求める（ステップＳ１０８）。【００７７】
その後、入出力デバイス８０ａが再びＴＣリクエストを発行した場合（ステップＳ２０１）、図４に示すように、スイッチ９０ａは、入出力デバイス８０ａに対応する変換表をアドレス変換表９１ａから抽出して、ＴＣリプライとして応答し（ステップＳ２０２）、ＴＣリプライを受信した入出力デバイス８０ａは、そのＴＣリプライに含まれる変換表をアドレス変換表８１ａとして記憶する（ステップＳ２０３）。【００７８】
図５は、入出力デバイス８０ａが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス８０ａが変換済みのアドレス、すなわち、ＨＰＡを指定して、ＤＭＡを実行するためのトランザクションリクエストを発行すると（ステップＳ３０１）、スイッチ９０ａは、アドレス変換表９１ａの変換後のアドレスを参照して、指定されたアドレスが正当であるかどうかを検証する（ステップＳ３０２）。【００７９】
そして、指定されたアドレスが正当であれば（ステップＳ３０３肯定）、スイッチ９０ａは、そのトランザクションリクエストを上位へ中継し（ステップＳ３０４）、トランザクションリクエストを受信した入出力制御装置４０が、そのトランザクションリクエストの内容に応じた処理を実行する（ステップＳ３０５）。一方、指定されたアドレスが正当でなければ（ステップＳ３０３否定）、スイッチ９０ａは、エラー処理を実行する（ステップＳ３０６）。【００８０】
図６は、入出力デバイス８０ａが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス８０ａが未変換のアドレス、すなわち、ＧＰＡを指定して、ＤＭＡを実行するためのトランザクションリクエストを発行すると（ステップＳ４０１）、スイッチ９０ａは、アドレス変換表９１ａを参照して、指定されたアドレスをＨＰＡ変換し（ステップＳ４０２）、アドレスが変換されたトランザクションリクエストを上位へ中継する（ステップＳ４０３）。そして、トランザクションリクエストを受信した入出力制御装置４０が、そのトランザクションリクエストの内容に応じた処理を実行する（ステップＳ４０４）。【００８１】
図７は、入出力制御装置４０が、入出力デバイス８０ａに対してｉｎｖａｌｉｄａｔｉｏｎを発行した場合の処理手順を示すシーケンス図である。入出力制御装置４０が、入出力デバイス８０ａに対してｉｎｖａｌｉｄａｔｉｏｎを発行すると（ステップＳ５０１）、スイッチ９０ａがそれを入出力デバイス８０ａへ中継し（ステップＳ５０２）、アドレス変換表９１ａの該当部分を破棄する（ステップＳ５０３）。そして、ｉｎｖａｌｉｄａｔｉｏｎを受信した入出力デバイス８０ａは、アドレス変換表８１ａの該当部分を破棄する（ステップＳ５０４）。【００８２】
上述してきたように、本実施例では、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができる。
【産業上の利用可能性】
【００８３】
以上のように、本発明に係るスイッチ、情報処理装置およびアドレス変換方法は、ゲストＯＳを動作させる場合に有用であり、特に、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることが必要な場合に適している。
【図１】
2008120325.tif 000003
【図２】
2008120325.tif 000004
【図３】
2008120325.tif 000005
【図４】
2008120325.tif 000006
【図５】
2008120325.tif 000007
【図６】
2008120325.tif 000008
【図７】
2008120325.tif 000009
【図８】
2008120325.tif 000010
【図９】
2008120325.tif 000011
【手続補正書】
【提出日】平成21年6月18日(2009.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入出力制御装置と入出力デバイスの間を接続するスイッチであって、
前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段と
を備えたことを特徴とするスイッチ。
【請求項２】
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項３】
前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする請求項２に記載のスイッチ。
【請求項４】
前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする請求項２に記載のスイッチ。
【請求項５】
前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする請求項２に記載のスイッチ。
【請求項６】
前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項７】
前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項８】
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項９】
前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする請求項１に記載のスイッチ。
【請求項１０】
入出力制御装置と入出力デバイスの間を接続するスイッチを有する情報処理装置であって、
前記スイッチは、
前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、
前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段と
を備えたことを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入出力制御装置と入出力デバイスの間を接続するスイッチと、そのスイッチを有する情報処理装置とに関し、特に、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができるスイッチおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、仮想化技術を用いてホストＯＳ上に仮想計算機を実現し、仮想計算機上でゲストＯＳを稼動させた場合、ゲストＯＳ上で動作するアプリケーションは、ホストＯＳ上で動作する同種のアプリケーションよりも、かなり低い処理性能しか得ることができなかった。この問題を解決するため、近年、ゲストＯＳ上で動作するアプリケーションの処理性能の低下を解消するための仕組みが実現されつつある。
【０００３】
ゲストＯＳ上で動作するアプリケーションの処理性能が低化する要因の一つに、ＤＭＡ（Direct Memory Access）におけるアドレス変換がある。ゲストＯＳ上で動作するアプリケーションにおいて入出力デバイスへの入出力処理が発生した場合、ゲストＯＳは、その入出力処理を実現するためのＤＭＡの実行を対象の入出力デバイスへ依頼する。ところが、ＤＭＡにおいて入出力デバイスがアクセスすべきメモリ領域は、実在の情報処理装置の物理アドレス（以下、「ＨＰＡ（Host Physical Address）」という）で指定しなければならないところ、ゲストＯＳは、実在の情報処理装置の物理アドレスを意識しないため、仮想計算機の物理アドレス（以下、「ＧＰＡ（Guest Physical Address）」という）で指定してしまう。
【０００４】
そのため、従来は、仮想計算機を実現するハイパーバイザと呼ばれるプログラムが、ＧＰＡをＨＰＡへ変換する処理をソフトウェアによって実行していたが、このアドレス変換がオーバヘッドとなって、アプリケーションの性能低化が生じていた。このオーバヘッドを解消するため、ＤＭＡリマッピングやＡＴＳ（Address Translation Service）といった技術が導入されつつある。ＤＭＡリマッピングは、入出力処理を制御する入出力制御装置において、ＧＰＡをＨＰＡへ高速に変換する処理をハードウェアによって実現する技術である。また、ＡＴＳは、入出力デバイスにおいて、ＧＰＡをＨＰＡへ変換する処理を実現する技術である（非特許文献１参照）。
【０００５】
【非特許文献１】“Intel Virtualization Technology”、［online］、［平成１９年３月２２日検索］、インターネット＜URL：http://www.intel.com/technology/itj/2006/v10i3/2-io/5-platform-hardware-support.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＤＭＡリマッピングには、多数の入出力処理が発生した場合に、アドレス変換処理によって入出力制御装置の負荷が上昇してしまうという問題がある。この問題は、ＡＴＳを用いることにより緩和できるものの、ＡＴＳの機能を実現するには、入出力デバイスのハードウェアやファームウェアの対応が必要であり、従来の入出力デバイスをそのまま使用することはできないという問題がある。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができるスイッチおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、入出力制御装置と入出力デバイスの間を接続するスイッチであって、前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。
【０００９】
また、本発明の他の態様では、入出力制御装置と入出力デバイスの間を接続するスイッチを有する情報処理装置であって、前記スイッチは、前記入出力デバイスがゲストＯＳによってＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶する記憶手段と、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスを、前記変換表を参照して実計算機上の物理アドレスへ変換するアドレス変換手段とを備えたことを特徴とする。
【００１０】
これらの発明の態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができる。
【００１１】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表を前記記憶手段に記憶させるアドレス変換表管理手段をさらに備えたことを特徴とする。
【００１２】
この発明の態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができる。
【００１３】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置に前記変換表の転送を要求し、転送された前記変換表を前記記憶手段に記憶させることを特徴とする。
【００１４】
この発明の態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができる。
【００１５】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記記憶手段から前記変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することを特徴とする。
【００１６】
この発明の態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。
【００１７】
また、本発明の他の態様では、上記の発明の態様において、前記アドレス変換表管理手段は、前記入出力制御装置が前記入出力デバイスへ前記変換表を無効化すべき指示を送信した場合に、前記記憶手段に記憶している変換表の該当部分を無効化することを特徴とする。
【００１８】
この発明の態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができる。
【００１９】
また、本発明の他の態様では、上記の発明の態様において、前記記憶手段に記憶されている前記変換表を編集するアドレス変換表編集手段をさらに備えたことを特徴とする。
【００２０】
この発明の態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができる。
【００２１】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが前記入出力制御装置に転送を要求した前記変換表が前記記憶手段に記憶されている場合に、前記入出力制御装置に代わって、前記記憶手段に記憶されている前記変換表を前記入出力デバイスへ応答するアドレス変換表応答手段をさらに備えたことを特徴とする。
【００２２】
この発明の態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができる。
【００２３】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記変換表を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。
【００２４】
この発明の態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができる。
【００２５】
また、本発明の他の態様では、上記の発明の態様において、前記入出力デバイスが記憶する前記変換表における変換後のアドレスの一覧を前記記憶手段に記憶し、前記入出力デバイスが発行したＤＭＡ要求に含まれるアドレスが、前記入出力デバイスによって実計算機上の物理アドレスへ変換したものである場合に、前記一覧を参照して該アドレスの正当性を検証するアドレス検証手段をさらに備えたことを特徴とする。
【００２６】
この発明の態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができる。
【発明の効果】
【００２７】
本発明の一つの態様によれば、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減することができるという効果を奏する。
【００２８】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置と入出力デバイスの間のやりとりを監視して変換表を取得することとしたので、スイッチへの変換表の登録を自動化することができるという効果を奏する。
【００２９】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に対して能動的に変換表の転送を要求することとしたので、入出力制御装置へ変換表の転送を要求しない入出力デバイスについても、スイッチへの変換表の登録を自動化することができるという効果を奏する。
【００３０】
また、本発明の一つの態様によれば、スイッチが、変換表を削除する場合に、削除対象の部分を記憶している入出力デバイスに該当部分の削除を依頼することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。
【００３１】
また、本発明の一つの態様によれば、下位の入出力デバイスが変換表を削除する場合に、スイッチが、削除対象の部分を自身が記憶する変換表から削除することとしたので、スイッチが保持する変換表と入出力デバイスが保持する変換表の一貫性を保つことができるという効果を奏する。
【００３２】
また、本発明の一つの態様によれば、変換表の内容を外部から編集できるようにしたので、入出力制御装置がアドレス変換表をもたない場合でも、スイッチが入出力制御装置に代わってアドレス変換に関する処理を行うことができるという効果を奏する。
【００３３】
また、本発明の一つの態様によれば、スイッチが、入出力制御装置に代わって、入出力デバイスへの変換表の転送を行うこととしたので、入出力制御装置の負荷を軽減することができるという効果を奏する。
【００３４】
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを、スイッチが変換表を参照して検証することとしたので、信頼性を向上させることができるという効果を奏する。
【００３５】
また、本発明の一つの態様によれば、入出力デバイスが変換したアドレスを検証するための情報を変換表とは別に設けることとしたので、少ない記憶容量で多くのアドレスの検証を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
以下に、本発明に係るスイッチおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００３７】
まず、従来の情報処理装置の構成について説明する。図８は、ＤＭＡリマッピング技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置１は、ＣＰＵ（Central Processing Unit）１０と、メモリ制御装置２０と、メモリ３０と、入出力制御装置４０と、スイッチ５０、６０ａおよび６０ｂと、入出力デバイス７０ａ〜７０ｄとを有する。
【００３８】
ＣＰＵ１０は、各種演算処理を実行する演算装置である。図８に示した例では、ＣＰＵ１０は、ホストＯＳ１１上でハイパーバイザ１２を動作させ、さらに、ハイパーバイザ１２上でゲストＯＳ１３ａ〜１３ｃを動作させている。ホストＯＳ１１上は、情報処理装置１を制御する基本ソフトであり、ハイパーバイザ１２は、仮想計算機を実現するプログラムである。そして、ゲストＯＳ１３ａ〜１３ｃは、仮想計算機上で動作する基本ソフトである。
【００３９】
メモリ制御装置２０は、メモリ３０へのアクセスを制御する制御装置であり、メモリ３０は、情報処理装置１の主記憶である。入出力制御装置４０は、入出力デバイス７０ａ〜７０ｄへのアクセスを制御する制御装置である。スイッチ５０、６０ａおよび６０ｂは、入出力制御装置４０と入出力デバイス７０ａ〜７０ｄの接続状態を切り替える切替装置であり、ＣＰＵ１０に近い側を上位、入出力デバイス７０ａ〜７０ｄに近い側を下位と呼ぶこととして、スイッチ５０の下位にスイッチ６０ａおよび６０ｂが接続された構成となっている。
【００４０】
入出力デバイス７０ａ〜７０ｄは、ディスク装置やネットワークインターフェース装置等の各種デバイスである。入出力デバイス７０ａおよび７０ｂは、スイッチ６０ａの下位に接続され、入出力デバイス７０ｃおよび７０ｄは、スイッチ６０ｂの下位に接続されている。
【００４１】
現在広く利用されている入出力バスの仕様であるＰＣＩ  Ｅｘｐｒｅｓｓの用語に従えば、入出力制御装置４０は、Ｒｏｏｔ  Ｃｏｍｐｌｅｘに相当し、スイッチ５０、６０ａおよび６０ｂは、ＰＣＩｅ  Ｓｗｉｔｃｈに相当し、入出力デバイス７０ａ〜７０ｄは、ＰＣＩｅ  Ｅｎｄｐｏｉｎｔに相当する。
【００４２】
そして、入出力制御装置４０は、アドレス変換表４１を備える。アドレス変換表４１は、ゲストＯＳ１３ａ〜１３ｃが入出力デバイス７０ａ〜７０ｄに対してＤＭＡの実行を依頼する際に指定したアドレスをＧＰＡからＨＰＡへ変換するための変換表であり、ハイパーバイザ１２によって編集される。
【００４３】
入出力制御装置４０は、入出力デバイス７０ａ〜７０ｄがゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにメモリ３０へアクセスしようとした場合に、アドレス変換表４１を参照して、アクセス先のアドレスをＧＰＡからＨＰＡへ変換する。このように、ハードウェアによってアドレス変換処理を行うことにより、入出力処理実行時にハイパーバイザ１２がアドレス変換を行う必要がなくなり、ゲストＯＳ１３ａ〜１３ｃの動作が高速化される。
【００４４】
しかしながら、この構成では、ゲストＯＳ１３ａ〜１３ｃにおいて多数の入出力処理が発生した場合に、入出力制御装置４０の負荷が高くなり、処理の遅延による性能低化が発生するという問題があった。
【００４５】
図９は、ＡＴＳ技術が適用された情報処理装置の構成の一例を示す図である。同図に示すように、情報処理装置２は、入出力デバイス７０ａに代えて、入出力デバイス８０ａを有している点において情報処理装置１と異なる。入出力デバイス８０ａは、アドレス変換表８１ａを有する。
【００４６】
アドレス変換表８１ａは、ゲストＯＳ１３ａ〜１３ｃが入出力デバイス８０ａに対してＤＭＡの実行を依頼する際に指定したアドレスをＧＰＡからＨＰＡへ変換するための変換表である。入出力デバイス８０ａは、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表をアドレス変換表４１から抽出して転送するように求めるリクエストを入出力制御装置４０へ送信し、応答された変換表をアドレス変換表８１ａとしてキャッシュする。
【００４７】
そして、入出力デバイス８０ａは、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにメモリ３０へアクセスする場合に、アドレス変換表８１ａを参照して、アクセス先のアドレスをＧＰＡからＨＰＡへ変換する。このように、アドレス変換表８１ａが自身の分のアドレス変換表をキャッシュしてＤＭＡ実行時にアドレス変換処理を行うことにより、入出力制御装置４０がアドレス変換に要する負荷を軽減することができる。
【００４８】
しかしながら、ＡＴＳ技術を用いて入出力デバイスにおいてアドレス変換を実行するには、入出力デバイスのハードウェアやファームウェアの対応が必要となる。このため、入出力デバイス７０ｂ〜７０ｄのようにＡＴＳに対応していない旧来の入出力デバイスが多数接続されている場合には、アドレス変換に要する入出力制御装置４０の負荷は十分には軽減されない。
【００４９】
次に、本実施例に係る情報処理装置の構成について説明する。図１は、本実施例に係る情報処理装置３の構成を示す図である。同図に示すように、情報処理装置３は、スイッチ６０ａおよび６０ｂに代えて、スイッチ９０ａおよび９０ｂを有している点において情報処理装置２と異なる。スイッチ９０ａおよび９０ｂは、それぞれ、アドレス変換表９１ａおよび９１ｂを有する。
【００５０】
スイッチ９０ａおよび９０ｂは、同様の装置であるので、ここではスイッチ９０ａについて説明する。スイッチ９０ａは、自身を介して行われる情報のやりとりを監視し、入出力デバイス８０ａが、所定のプロトコルに従って、当該の入出力デバイスに対応する変換表の転送を求めるリクエストを入出力制御装置４０へ送信した場合に、応答された変換表をアドレス変換表９１ａとしてキャッシュする。
【００５１】
そして、スイッチ９０ａは、入出力デバイス８０ａから同様のリクエストが入出力制御装置４０へ再度送信された場合には、そのリクエストをトラップして、アドレス変換表９１ａから入出力デバイス８０ａに対応する変換表を抽出し、入出力制御装置４０に代わって、これを応答する。このように、スイッチ９０ａが入出力制御装置４０に代わって入出力デバイスに対応する変換表を応答することにより、入出力制御装置４０の負荷が軽減される。
【００５２】
また、スイッチ９０ａは、ＡＴＳに対応していない入出力デバイス７０ｂに代わって、入出力デバイス７０ｂに対応するアドレスの変換表を入出力制御装置４０へ要求し、応答された変換表をアドレス変換表９１ａに保持する。
【００５３】
そして、スイッチ９０ａは、入出力デバイス８０ａもしくは７０ｂが、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにＧＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａを参照してＧＰＡをＨＰＡへ変換する処理を実行する。このように、スイッチ９０ａが入出力制御装置４０に代わってアドレス変換を実行することにより、アドレス変換に要する入出力制御装置４０の負荷が大きく軽減される。
【００５４】
スイッチ９０ａ等のスイッチは、図１の例のように多段で構成され、下位のスイッチほど対応する入出力デバイスの数が少なくなるため、下位のスイッチでアドレス変換を行うことにより、アドレス変換に要する負荷が分散され、負荷が特定のスイッチに集中することを防止することができる。
【００５５】
また、スイッチ９０ａは、入出力デバイス８０ａが、ゲストＯＳ１３ａ〜１３ｃから依頼されたＤＭＡを実行するためにＨＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａの変換後のアドレスを参照してＨＰＡが正当な値であるかどうかの検証を行う。このようにＨＰＡの正当性の検証を行うことにより、入出力デバイス８０ａが障害により不正な値をＨＰＡとして指定した場合であっても、メモリの内容が破壊されることを防止することができる。
【００５６】
また、スイッチ９０ａは、所定の設定プログラムを介してシステム管理者等により入力されたアドレス変換情報もアドレス変換表９１ａに保持する。これにより、入出力制御装置４０がＤＭＡリマッピングに対応しない場合であっても、スイッチ９０ａが、入出力制御装置４０に代わって、入出力デバイス８０ａや７０ｂに対してアドレス変換機能を提供することができる。
【００５７】
次に、図１に示したスイッチ９０ａの構成について説明する。図２は、スイッチ９０ａの構成を示すブロック図である。同図に示すように、スイッチ９０ａは、アドレス変換支援部９１０と、アドレス変換表９１ａを記憶する記憶部９２０と、入出力制御装置４０と入出力デバイス８０ａおよび７０ｂの接続を切り替えるスイッチ部９３０とを有する。
【００５８】
アドレス変換支援部９１０は、入出力制御装置４０等の入力制御装置や、入出力デバイス８０ａおよび７０ｂ等の各種入出力デバイスにおけるアドレス変換処理を支援するための各種処理を実行する処理部であり、アドレス変換表編集部９１１と、アドレス変換表管理部９１２と、アドレス変換表応答部９１３と、アドレス変換部９１４と、アドレス検証部９１５とを有する。
【００５９】
アドレス変換表編集部９１１は、所定の設定プログラムを介してシステム管理者等により入力された指示に基づいてアドレス変換表９１ａを編集する処理部である。システム管理者等によるアドレス変換表９１ａの編集は、例えば、入出力制御装置４０がＤＭＡリマッピングに対応しない場合に、アドレス変換表編集部９１１が、入出力制御装置４０に代わって、入出力デバイス８０ａや７０ｂに対してアドレス変換機能を提供できるようにするために行われる。
【００６０】
なお、アドレス変換表９１ａは、ＧＰＡからＨＰＡへのアドレス変換を高速に行うことができるように、例えば、ハッシュテーブルや多段テーブルとして構成されていることが望ましい。
【００６１】
アドレス変換表管理部９１２は、アドレス変換表９１ａの内容を自動的に更新する処理部である。具体的には、アドレス変換表管理部９１２は、入出力デバイス８０ａ等が、入出力制御装置４０へ送信するＴＣ（Translation Cash）リクエストと、その応答であるＴＣレスポンスを監視し、ＴＣレスポンスに含まれる変換表をアドレス変換表９１ａに登録する。なお、ＴＣリクエストは、当該の入出力デバイスに対応する変換表をアドレス変換表４１から抽出して転送するように入出力制御装置４０に求めるリクエストである。
【００６２】
また、アドレス変換表管理部９１２は、入出力デバイス７０ｂのようにＡＴＳに対応していない入出力デバイスに代わって、入出力制御装置４０にＴＣリクエストを送信し、応答されたＴＣレスポンスに含まれる変換表をアドレス変換表９１ａに登録する処理も行う。
【００６３】
なお、記憶部９２０の容量は有限であるため、アドレス変換表９１ａが、所定のサイズよりも大きくなると、記憶部９２０に記憶しておくことができなくなる。この場合、アドレス変換表管理部９１２は、ＬＲＵ（Least Recently Used）論理等に基づいて重要度の低い情報をアドレス変換表９１ａから破棄する。
【００６４】
このようにアドレス変換表９１ａの一部を破棄した場合、そのままでは、後述するアドレス検証部９１５によるアドレスの検証処理において、検証対象のアドレスがアドレス変換表９１ａに存在しない場合に、アドレスが不正なものであるのか、あるいは、アドレスが削除されたためにアドレス変換表９１ａに存在していないのかを区別することができなくなる。そこで、アドレス変換表管理部９１２は、容量不足によりアドレス変換表９１ａの一部を破棄する場合、破棄対象の変換表を保持している可能性のある入出力デバイスに対してｉｎｖａｌｉｄａｔｉｏｎを送信して、その部分の変換表を無効化させる。
【００６５】
ｉｎｖａｌｉｄａｔｉｏｎは、入出力制御装置４０が何らかの理由でアドレス変換表４１の一部を破棄する場合に、一貫性を保持するために、その破棄する部分を保持している可能性がある入出力デバイスに該当部分の無効化を求めるリクエストである。上記のように、アドレス変換表９１ａの一部を破棄する場合にアドレス変換表管理部９１２がｉｎｖａｌｉｄａｔｉｏｎを送信することにより、アドレス変換表９１ａと、入出力デバイスが保持する変換表との一貫性が確保され、アドレス検証部９１５によるアドレスの検証が適正に行われる。
【００６６】
なお、ｉｎｖａｌｉｄａｔｉｏｎが入出力制御装置４０によって発行された場合、アドレス変換表管理部９１２は、破棄を求められている部分をアドレス変換表９１ａから削除する処理を行う。
【００６７】
アドレス変換表応答部９１３は、ＴＣリクエストによって要求された変換表がアドレス変換表９１ａに存在する場合に、そのＴＣリクエストをトラップして、入出力制御装置４０に代わって、要求された変換表を格納したＴＣレスポンスを応答する処理部である。
【００６８】
アドレス変換部９１４は、入出力デバイス８０ａ等が、ゲストＯＳから依頼されたＤＭＡを実行するためにＧＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａを参照してＧＰＡをＨＰＡへ変換する処理を実行する。
【００６９】
なお、ＰＣＩ  Ｅｘｐｒｅｓｓの場合、ＤＭＡの要求元がどのＯＳであるかは、入出力デバイス８０ａ等がＤＭＡを実行するために発行するトランザクションリクエストのヘッダ部分のリクエスタＩＤを参照することにより判別することができる。また、入出力デバイス８０ａ等がＤＭＡを実行するために指定したアドレスがＧＰＡであるかＨＰＡであるかは、トランザクションリクエストのヘッダ部分のアドレスタイプを参照することにより判別することができる。具体的には、アドレスタイプの値が変換済みであることを示すコードである場合は、指定されたアドレスはＨＰＡであり、アドレスタイプの値が未変換であることを示すコードである場合は、指定されたアドレスはＧＰＡである。
【００７０】
アドレス検証部９１５は、入出力デバイス８０ａ等が、ゲストＯＳから依頼されたＤＭＡを実行するためにＨＰＡを指定してメモリ３０へアクセスしようとした場合に、アドレス変換表９１ａの変換後のアドレスを参照してＨＰＡが適正な値であるかどうかの検証を行う。
【００７１】
なお、アドレス検証部９１５がアドレスの検証を行うために参照するテーブルをアドレス変換表９１ａと別に設けることとしてもよい。この場合、検証用のテーブルには下位の入出力デバイスがキャッシュしている可能性のある変換後のアドレスの全てを記憶しておく必要があるが、アドレス変換表９１ａにはそれよりも少ない件数の情報を記憶することとしてもよい。アドレスの検証は、変換後のアドレスさえあればよいため、このように検証用のテーブルを独立して設けることにより、比較的少ない記憶容量で多くのアドレスを検証することが可能になる。また、変化後のアドレスを検索するために最適なデータ構造をとることにより、アドレスの検証を高速化することもできる。
【００７２】
次に、情報処理装置３の処理手順について説明する。図３および４は、入出力デバイス８０ａがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。同図に示すように、入出力デバイス８０ａがＴＣリクエストを発行すると（ステップＳ１０１）、スイッチ９０ａは、入出力デバイス８０ａに対応する変換表をアドレス変換表９１ａに保持していなければ、そのＴＣリクエストを上位へ中継する（ステップＳ１０２）。
【００７３】
ＴＣリクエストを受信した入出力制御装置４０は、入出力デバイス８０ａに対応する変換表をアドレス変換表４１から抽出して、ＴＣリプライとして応答する（ステップＳ１０３）。そして、スイッチ９０ａは、ＴＣリプライを入出力デバイス８０ａへ転送し（ステップＳ１０４）、そのＴＣリプライに含まれる変換表をアドレス変換表９１ａに登録する（ステップＳ１０５）。そして、そのＴＣリプライを受信した入出力デバイス８０ａは、そのＴＣリプライに含まれる変換表をアドレス変換表８１ａとして記憶する（ステップＳ１０６）。
【００７４】
ここで、スイッチ９０ａが変換表をアドレス変換表９１ａに登録する際に記憶部９２０があふれ、入出力デバイス７０ｂに対応する変換表の一部を記憶部９２０から削除したとすると（ステップＳ１０７肯定）、スイッチ９０ａは、入出力デバイス７０ｂに対してｉｎｖａｌｉｄａｔｉｏｎを発行し、該当部分の破棄を求める（ステップＳ１０８）。
【００７５】
その後、入出力デバイス８０ａが再びＴＣリクエストを発行した場合（ステップＳ２０１）、図４に示すように、スイッチ９０ａは、入出力デバイス８０ａに対応する変換表をアドレス変換表９１ａから抽出して、ＴＣリプライとして応答し（ステップＳ２０２）、ＴＣリプライを受信した入出力デバイス８０ａは、そのＴＣリプライに含まれる変換表をアドレス変換表８１ａとして記憶する（ステップＳ２０３）。
【００７６】
図５は、入出力デバイス８０ａが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス８０ａが変換済みのアドレス、すなわち、ＨＰＡを指定して、ＤＭＡを実行するためのトランザクションリクエストを発行すると（ステップＳ３０１）、スイッチ９０ａは、アドレス変換表９１ａの変換後のアドレスを参照して、指定されたアドレスが正当であるかどうかを検証する（ステップＳ３０２）。
【００７７】
そして、指定されたアドレスが正当であれば（ステップＳ３０３肯定）、スイッチ９０ａは、そのトランザクションリクエストを上位へ中継し（ステップＳ３０４）、トランザクションリクエストを受信した入出力制御装置４０が、そのトランザクションリクエストの内容に応じた処理を実行する（ステップＳ３０５）。一方、指定されたアドレスが正当でなければ（ステップＳ３０３否定）、スイッチ９０ａは、エラー処理を実行する（ステップＳ３０６）。
【００７８】
図６は、入出力デバイス８０ａが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。入出力デバイス８０ａが未変換のアドレス、すなわち、ＧＰＡを指定して、ＤＭＡを実行するためのトランザクションリクエストを発行すると（ステップＳ４０１）、スイッチ９０ａは、アドレス変換表９１ａを参照して、指定されたアドレスをＨＰＡ変換し（ステップＳ４０２）、アドレスが変換されたトランザクションリクエストを上位へ中継する（ステップＳ４０３）。そして、トランザクションリクエストを受信した入出力制御装置４０が、そのトランザクションリクエストの内容に応じた処理を実行する（ステップＳ４０４）。
【００７９】
図７は、入出力制御装置４０が、入出力デバイス８０ａに対してｉｎｖａｌｉｄａｔｉｏｎを発行した場合の処理手順を示すシーケンス図である。入出力制御装置４０が、入出力デバイス８０ａに対してｉｎｖａｌｉｄａｔｉｏｎを発行すると（ステップＳ５０１）、スイッチ９０ａがそれを入出力デバイス８０ａへ中継し（ステップＳ５０２）、アドレス変換表９１ａの該当部分を破棄する（ステップＳ５０３）。そして、ｉｎｖａｌｉｄａｔｉｏｎを受信した入出力デバイス８０ａは、アドレス変換表８１ａの該当部分を破棄する（ステップＳ５０４）。
【００８０】
上述してきたように、本実施例では、入出力制御装置と入出力デバイスの間を接続するスイッチが、ＤＭＡの転送先として指定された仮想計算機上の物理アドレスを実計算機上の物理アドレスへ変換するための変換表を記憶し、アドレス変換を行うこととしたので、アドレス変換に要する入出力制御装置の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることができる。
【産業上の利用可能性】
【００８１】
以上のように、本発明に係るスイッチおよび情報処理装置は、ゲストＯＳを動作させる場合に有用であり、特に、ゲストＯＳでの入出力処理における入出力制御の負荷を軽減し、もって、ゲストＯＳ上でアプリケーションの処理性能を向上させることが必要な場合に適している。
【図面の簡単な説明】
【００８２】
【図１】図１は、本実施例に係る情報処理装置の構成を示す図である。
【図２】図２は、スイッチの構成を示すブロック図である。
【図３】図３は、入出力デバイスがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。
【図４】図４は、入出力デバイスがＴＣリクエストを発行したときの処理手順を示すシーケンス図である。
【図５】図５は、入出力デバイスが変換済みのアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。
【図６】図６は、入出力デバイスが未変換のアドレスを指定してトランザクションリクエストを発行した場合の処理手順を示すシーケンス図である。
【図７】図７は、入出力制御装置が、入出力デバイスに対してｉｎｖａｌｉｄａｔｉｏｎを発行した場合の処理手順を示すシーケンス図である。
【図８】図８は、ＤＭＡリマッピング技術が適用された情報処理装置の構成の一例を示す図である。
【図９】図９は、ＡＴＳ技術が適用された情報処理装置の構成の一例を示す図である。
【符号の説明】
【００８３】
１〜３  情報処理装置
１０    ＣＰＵ
１１    ホストＯＳ
１２    ハイパーバイザ
１３ａ〜１３ｃ  ゲストＯＳ
２０    メモリ制御装置
３０    メモリ
４０    入出力制御装置
４１    アドレス変換表
５０、６０ａ、６０ｂ  スイッチ
７０ａ〜７０ｄ  入出力デバイス
８０ａ  入出力デバイス
８１ａ  アドレス変換表
９０ａ、９０ｂ  スイッチ
９１ａ  アドレス変換表
９１０    アドレス変換支援部
９１１    アドレス変換表編集部
９１２    アドレス変換表管理部
９１３    アドレス変換表応答部
９１４    アドレス変換部
９１５    アドレス検証部
９２０    記憶部
９３０    スイッチ部
【国際調査報告】
2008120325.tif 000012
2008120325.tif 000013
2008120325.tif 000014
2008120325.tif 000015