(57)【特許請求の範囲】
【請求項１】
複数のサーバ装置と、管理端末とを備え、
前記管理端末は、
前記複数のサーバ装置により共有される少なくとも一つのＩ／Ｏデバイスと、
１次キャッシュメモリと、
２次キャッシュメモリと、
前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記録されたＩ／Ｏアクセスリクエストのレスポンスデータを管理するＩ／Ｏアクセス高速化部であって、前記レスポンスデータが管理されていない場合に、前記Ｉ／ＯデバイスにアクセスするＩ／Ｏアクセス高速化部と
を備え、
前記Ｉ／Ｏアクセス高速化部は、
前記Ｉ／Ｏデバイスから取得した前記レスポンスデータを前記１次キャッシュメモリに記憶し、
前記１次キャッシュメモリの容量に空きがなくなった場合には、前記Ｉ／Ｏデバイスに対するＩ／Ｏアクセスリクエストの受信頻度の傾向を表す増加率をＩ／Ｏアクセスリクエストの種類毎に算出し、前記Ｉ／Ｏアクセスリクエストの種類毎に算出された複数の増加率の中から、最も増加率の小さいＩ／Ｏアクセスリクエストに対応する前記レスポンスデータを前記１次キャッシュメモリから前記２次キャッシュメモリに移動させ、
前記２次キャッシュメモリの容量に空きがなくなった場合には、前記最も増加率の小さいＩ／Ｏアクセスリクエストに対応するレスポンスデータを前記２次キャッシュメモリから削除し、
更に前記Ｉ／Ｏアクセス高速化部は、前記Ｉ／Ｏデバイスが複数ある場合において、前記最も増加率の小さい前記Ｉ／Ｏアクセスリクエストが複数存在するときには、前記１次キャッシュメモリの容量に空きがなくなった場合でも、前記２次キャッシュメモリの容量に空きがなくなった場合でも、複数存在する前記最も増加率の小さいＩ／Ｏアクセスリクエストの中から、ランダムに１つを選択する
Ｉ／Ｏデバイス共有システム。
【請求項２】
前記Ｉ／Ｏアクセス高速化部は、
キャッシュ管理テーブルを更に備え、
前記キャッシュ管理テーブルのレコードは、前記Ｉ／Ｏアクセスリクエストの種類を設定するコマンド番号フィールド、前記Ｉ／Ｏアクセスリクエストに設定されているパラメータを設定するパラメータフィールド、前記１次キャッシュメモリ、又は前記２次キャッシュメモリのどちらかに記憶されているかを示す情報を設定するキャッシュフィールド、及びレスポンスデータが格納されているアドレス情報を設定するレスポンスデータアドレスフィールドを含む
請求項１に記載のＩ／Ｏデバイス共有システム。
【請求項３】
前記Ｉ／Ｏアクセス高速化部は、
所定の時間間隔Ｔ（ｎ）→Ｔ（ｎ＋１）、及び前記Ｉ／Ｏアクセスリクエストの種類毎に、前記Ｉ／Ｏアクセスリクエストの受信回数を記録し、最新のＮ回（Ｎ＞１）の前記時間間隔Ｔ（ｎ）→Ｔ（ｎ＋１）について、前記Ｉ／Ｏアクセスリクエストの前記増加率を
0006015887.tif 000003
により算出する
請求項１又は２に記載のＩ／Ｏデバイス共有システム。
【請求項４】
Ｉ／Ｏデバイス共有システムを用いるＩ／Ｏデバイス共有方法であって、
前記Ｉ／Ｏデバイス共有システムは、複数のサーバ装置と、管理端末とを備え、
前記管理端末は、
前記複数のサーバ装置により共有される少なくとも一つのＩ／Ｏデバイスと、
１次キャッシュメモリと、
２次キャッシュメモリと、
前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記録されたＩ／Ｏアクセスリクエストのレスポンスデータを管理するＩ／Ｏアクセス高速化部と
を備え、
前記Ｉ／Ｏデバイス共有方法は、
（Ａ）前記レスポンスデータが管理されているかどうかを前記Ｉ／Ｏアクセス高速化部が確認するステップと、
（Ｂ）前記（Ａ）のステップの結果、前記レスポンスデータが管理されていない場合に、前記Ｉ／Ｏアクセス高速化部が前記Ｉ／Ｏデバイスにアクセスするステップと、
（Ｃ）前記Ｉ／Ｏデバイスにアクセスすることにより前記Ｉ／Ｏデバイスから取得した前記レスポンスデータを前記Ｉ／Ｏアクセス高速化部が前記１次キャッシュメモリに記憶するステップと、
（Ｄ）前記１次キャッシュメモリの容量に空きがなくなった場合には、前記Ｉ／Ｏアクセス高速化部が、前記Ｉ／Ｏデバイスに対するＩ／Ｏアクセスリクエストの受信頻度の傾向を表す増加率をＩ／Ｏアクセスリクエストの種類毎に算出するステップと、
（Ｅ）前記１次キャッシュメモリの容量に空きがなくなった場合には、前記Ｉ／Ｏアクセスリクエストの種類毎に算出された複数の増加率の中から、最も増加率の小さいＩ／Ｏアクセスリクエストに対応するレスポンスデータを前記Ｉ／Ｏアクセス高速化部が前記１次キャッシュメモリから前記２次キャッシュメモリに移動させるステップと、
（Ｆ）前記２次キャッシュメモリの容量に空きがなくなった場合には、前記Ｉ／Ｏアクセス高速化部が、前記Ｉ／Ｏデバイスに対するＩ／Ｏアクセスリクエストの受信頻度の傾向を表す増加率をＩ／Ｏアクセスリクエストの種類毎に算出するステップと、
（Ｇ）前記２次キャッシュメモリの容量に空きがなくなった場合には、前記最も増加率の最も小さいＩ／Ｏアクセスリクエストに対応するレスポンスデータを前記２次キャッシュメモリから削除するステップと、
（Ｈ）前記Ｉ／Ｏデバイスが複数ある場合において、前記最も増加率の小さいＩ／Ｏアクセスリクエストが複数存在するときには、前記１次キャッシュメモリの容量に空きがなくなった場合でも、前記２次キャッシュメモリの容量に空きがなくなった場合でも、複数存在する前記最も増加率の小さいＩ／Ｏアクセスリクエストの中から、ランダムに１つを前記Ｉ／Ｏアクセス高速化部が選択するステップと
を含むＩ／Ｏデバイス共有方法。
【請求項５】
前記Ｉ／Ｏアクセス高速化部は、
キャッシュ管理テーブルを更に備え、
前記キャッシュ管理テーブルのレコードは、前記Ｉ／Ｏアクセスリクエストの種類を設定するコマンド番号フィールド、前記Ｉ／Ｏアクセスリクエストに設定されているパラメータを設定するパラメータフィールド、前記１次キャッシュメモリ、又は前記２次キャッシュメモリのどちらかに記憶されているかを示す情報を設定するキャッシュフィールド、及びレスポンスデータが格納されているアドレス情報を設定するレスポンスデータアドレスフィールドを含み、
前記（Ａ）のステップでは、前記キャッシュ管理テーブルに基づいて、前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記憶されているかどうかを前記Ｉ／Ｏアクセス高速化部が確認する
請求項４に記載のＩ／Ｏデバイス共有方法。
【請求項６】
前記（Ｄ）のステップおよび前記（Ｆ）のステップは、
前記Ｉ／Ｏアクセス高速化部が、所定の時間間隔Ｔ（ｎ）→Ｔ（ｎ＋１）、及び前記Ｉ／Ｏアクセスリクエストの種類毎に、前記Ｉ／Ｏアクセスリクエストの受信回数を記録するステップと、
前記Ｉ／Ｏアクセス高速化部が、最新のＮ回（Ｎ＞１）の前記時間間隔Ｔ（ｎ）→Ｔ（ｎ＋１）について、前記Ｉ／Ｏアクセスリクエストの前記増加率を
0006015887.tif 000004
により算出するステップと
を含む請求項４又は５に記載のＩ／Ｏデバイス共有方法。
【請求項７】
請求項４乃至６のいずれか１項に記載のＩ／Ｏデバイス共有方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｉ／Ｏデバイス共有システムに関し、特に、Ｉ／Ｏアクセスリクエストのレスポンスを高速化する２段階キャッシュメモリを備えるＩ／Ｏデバイス共有システムに関する。
【背景技術】
【０００２】
複数のサーバ装置と、サーバ装置を管理する管理端末を備えるコンピュータシステムにおいて、管理端末が備えるＣＤドライブやＤＶＤドライブ等のＩ／Ｏデバイスを複数のサーバ間で共有するためのリモートメディア接続技術が知られている。このようなリモートメディア接続技術では、各サーバは、サーバの外部にネットワークを介して存在するＩ／Ｏデバイスに接続するリモートメディア制御部を備え、当該Ｉ／Ｏデバイスを、各サーバ上に仮想的に接続されたデバイスとして機能させる。
【０００３】
特開２０１０−１３４９１１号公報（特許文献１）では、複数のブレードサーバと、ブレード管理モジュールと、記憶媒体を含むメディア・トレーを備えるブレード・センタを、リモート管理端末装置によって管理する発明が開示されている。この発明では、リモート管理端末装置が、ブレード管理モジュールを介して、メディア・トレーの記憶媒体に、データ・ファイルを格納している。各ブレードサーバは、ブレード管理モジュールを介して、メディア・トレーの記憶媒体に格納されたデータ・ファイルにアクセスしている。
【０００４】
リモートメディア制御において、複数のサーバ装置でＩ／Ｏデバイスを共有すると、複数のサーバ装置からアクセスが集中することによって、様々な問題が発生することが知られている。
【０００５】
例えば、複数のブレードサーバに対して、一斉にＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をインストールしたい場合を考えると、一台の管理端末のＣＤ／ＤＶＤドライブにＯＳインストール用ＣＤ／ＤＶＤ媒体をセットしておき、ブレードサーバ群のサービスプロセッサ（ＳＰ）と、管理ＰＣのリモートメディア制御部が連携させる方法がある。この方法を実現させる例としては、次のような方法がある。まず、管理端末のＣＤ／ＤＶＤドライブを、各ブレードサーバ上に、ＵＳＢデバイスとしてリモートメディア接続しておく。次に、ブレードサーバ群の電源を同時にＯＮにすると、ＢＩＯＳ  ＰＯＳＴを経て、リモートメディア接続中のＣＤ／ＤＶＤメディアから、インストーラをブートさせることができる。これにより、各ブレードサーバのＯＳを一斉にインストールすることができる。
【０００６】
このとき、管理端末のＯＳでは、ＣＤ／ＤＶＤドライブに対して、複数のブレードサーバのサービスプロセッサからのＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドリクエストによるＩ／Ｏアクセスが頻繁に発生する。そのため、レスポンス処理全体の遅延が生じてしまい、ＯＳのインストールがスムーズに進行しない。
【０００７】
上述の例では、ＣＤ／ＤＶＤドライブへのＩ／Ｏアクセスは、メインメモリアクセスと比較して処理が遅くなるため、レスポンス処理全体の遅延が生じてしまい、複数のサーバ装置に対するＯＳのインストールがスムーズに進行しない問題が発生する。
【０００８】
複数のサーバ装置でＩ／Ｏデバイスを共有することにより発生する問題についての２つ目の例としては、管理端末がストールしてしまう問題がある。その理由は、管理端末のリモートメディア制御部が保持している受信バッファ（キュー）容量よりも、多いＩ／Ｏアクセスリクエストが、各サーバのサービスプロセッサから、一度に集中して要求されるためである。結果的に、バッファオーバーフローにより、リモートメディア制御部の処理能力を超え、管理端末がストールしてしまう。
【０００９】
逆に、管理端末のリモートメディア制御部が保持している送信バッファ（キュー）容量よりも、多いＩ／Ｏアクセスリクエストのレスポンスが、一度に集中する場合もある。この場合においても、結果的に、バッファオーバーフローにより、リモートメディア制御部の処理能力を超え、管理端末がストールしてしまう。
【００１０】
複数のサーバ装置が同時にアクセスすることにより、Ｉ／Ｏデバイスに対するアクセスリクエストが集中しても、Ｉ／Ｏアクセスリクエストに対するレスポンスを遅延させないＩ／Ｏデバイス共有システムが必要とされている。
【００１１】
また、複数のサーバ装置のサービスプロセッサから、管理端末のＩ／Ｏデバイスに、Ｉ／Ｏアクセスリクエストが集中しても、バッファオーバーフローにより、Ｉ／Ｏアクセスリクエスト処理、又はＩ／Ｏアクセスレスポンス処理がストールしないＩ／Ｏデバイス共有システムが必要とされている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−１３４９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、Ｉ／Ｏアクセスリクエストのレスポンス処理を高速化するＩ／Ｏデバイス共有システムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明のＩ／Ｏデバイス共有システムは、複数のサーバ装置と、管理端末とを備える。管理端末は、複数のサーバ装置により共有されるＩ／Ｏデバイスと、１次キャッシュメモリと、２次キャッシュメモリと、Ｉ／Ｏアクセス高速化部とを備える。Ｉ／Ｏアクセス高速化部は、１次キャッシュメモリ、又は２次キャッシュメモリに記録されたＩ／Ｏアクセスリクエストのレスポンスデータを管理し、レスポンスデータが管理されていない場合に、Ｉ／Ｏデバイスにアクセスする。また、Ｉ／Ｏアクセス高速化部は、Ｉ／Ｏデバイスから取得したレスポンスデータを１次キャッシュメモリに記憶し、１次キャッシュメモリの容量に空きがなくなった場合には、Ｉ／Ｏデバイスに対するＩ／Ｏアクセスリクエストの受信頻度の傾向を表す増加率を算出し、増加率が最小のＩ／Ｏアクセスリクエストのレスポンスデータを、２次キャッシュメモリに移動し、２次キャッシュメモリの容量に空きがなくなった場合には、増加率が最小のＩ／Ｏアクセスリクエストのレスポンスデータを２次キャッシュメモリから削除する。
【００１５】
本発明のＩ／Ｏデバイス共有方法は、Ｉ／Ｏデバイス共有システムにより実施されるＩ／Ｏデバイス共有方法である。本発明のＩ／Ｏデバイス共有方法は、Ｉ／Ｏアクセス高速化部が、受信キューからＩ／Ｏアクセスリクエストを取得するステップと、Ｉ／Ｏアクセス高速化部が、前記Ｉ／Ｏアクセスリクエストに対応するレスポンスデータが、前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記憶されているかどうかを確認するステップと、前記確認するステップで、前記レスポンスデータが、前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記憶されている場合には、記憶されている前記レスポンスデータを、送信キューにエンキューするステップと、前記確認するステップで、前記レスポンスデータが、前記１次キャッシュメモリ、又は前記２次キャッシュメモリに記憶されていない場合には、Ｉ／Ｏアクセス高速化部が、Ｉ／Ｏデバイスにアクセスするステップと、Ｉ／Ｏアクセス高速化部が、前記アクセスするステップで取得した前記レスポンスデータを、送信キューにエンキューするステップと、Ｉ／Ｏアクセス高速化部が、前記アクセスするステップで取得した前記レスポンスデータを前記１次キャッシュメモリに記憶するステップと、１次キャッシュメモリの容量に空きがなくなった場合には、Ｉ／Ｏアクセス高速化部が、前記Ｉ／Ｏデバイスに対するＩ／Ｏアクセスリクエストの受信頻度の傾向を表す増加率を算出するステップと、Ｉ／Ｏアクセス高速化部が、前記増加率が最小の前記Ｉ／Ｏアクセスリクエストの前記レスポンスデータを、前記１次キャッシュメモリから、前記２次キャッシュメモリに移動するステップと、前記２次キャッシュメモリの容量に空きがなくなった場合には、Ｉ／Ｏアクセス高速化部が、前記増加率が最小の前記Ｉ／Ｏアクセスリクエストの前記レスポンスデータを前記２次キャッシュメモリから削除するステップとを含む。
【発明の効果】
【００１６】
本発明によれば、Ｉ／Ｏアクセスリクエストのレスポンス処理を高速化するＩ／Ｏデバイス共有システムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施形態におけるＩ／Ｏデバイス共有システムのネットワーク構成図である。
【図２】図２は、本発明の実施形態におけるＩ／Ｏデバイス共有システムに含まれる管理端末のブロック図である。
【図３】図３は、本発明の実施形態におけるキャッシュ管理テーブル１７の例である。
【図４】図４は、本実施形態のＩ／Ｏデバイス共有システムにおけるレスポンスデータ返却方法のフローチャートである。
【図５】図５は、本実施形態のＩ／Ｏデバイス共有システムにおける１次キャッシュメモリ管理方法のフローチャートである。
【図６】図６は、本実施形態のＩ／Ｏデバイス共有システムにおいて、増加率の計算方法を説明するための図である。
【図７】図７は、本実施形態のＩ／Ｏデバイス共有システムにおいて、Ｉ／Ｏアクセスリクエストのコマンド番号００のコマンド受信回数の遷移を示す図である。
【図８】図８は、本実施形態のＩ／Ｏデバイス共有システムにおいて、Ｉ／Ｏアクセスリクエストのコマンド番号０１のコマンド受信回数の遷移を示す図である。
【図９】図９は、本実施形態のＩ／Ｏデバイス共有システムにおける２次キャッシュメモリ管理方法のフローチャートである。
【発明を実施するための形態】
【００１８】
添付図面を参照して、本発明の実施形態によるＩ／Ｏデバイス共有システムを以下に説明する。
【００１９】
［構成の説明］
はじめに、本実施形態におけるＩ／Ｏデバイス共有システムの構成の説明を行う。図１は、本発明の実施形態におけるＩ／Ｏデバイス共有システムのネットワーク構成図である。本実施形態のＩ／Ｏデバイス共有システムは、管理端末１、及びＮ台のサーバ装置（サーバ装置２−１、サーバ装置２−２、・・・、サーバ装置２−Ｎ）で構成されるサーバ装置群２を備える。
【００２０】
管理端末１は、サーバ装置群２の管理者が、サーバ装置２−１、サーバ装置２−２、・・・、サーバ装置２−Ｎを管理するために使用する端末である。サーバ装置群２に含まれる各サーバは、クライアント端末からの所定のサービス要求に応答して、所定の処理を実行する。なお、各サーバ装置は、別々の筐体として構成されていなくてもよく、ブレードサーバのように１つの筐体に、複数のサーバ装置が含まれる構成であってもよい。本実施形態のＩ／Ｏデバイス共有システムでは、各サーバ装置が、管理端末１のＩ／Ｏデバイスを共有する。管理端末１は、２段階キャッシュメモリを備えることにより、管理端末１にＩ／Ｏアクセスリクエストが集中しても、レスポンスを遅延させない機能を持つ。
【００２１】
次に、管理端末１の構成について説明する。図２は、本発明の実施形態におけるＩ／Ｏデバイス共有システムに含まれる管理端末のブロック図である。管理端末１は、ＮＩＣ１１（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）、ドライバ層処理部１２、バッファ１５、Ｉ／Ｏアクセス高速化部１６、１次キャッシュメモリ１８、２次キャッシュメモリ１９、及びＩ／Ｏデバイス２０を備える。
【００２２】
ＮＩＣ１１は、管理端末１と、サーバ装置群２が、ネットワークを介して通信するためのネットワークインターフェースである。
【００２３】
ドライバ層処理部１２は、ドライバ層に含まれる処理を行う処理部であり、管理端末１のＯＳが、ＮＩＣ１１、及びＩ／Ｏデバイス２０を使用するために必要な処理が含まれる。
【００２４】
バッファ１５は、受信キュー１３、及び送信キュー１４を備える。受信キュー１３には、Ｉ／Ｏデバイス２０に対するＩ／Ｏアクセスリクエストデータがエンキューされる。送信キュー１４には、Ｉ／Ｏアクセスリクエストデータに対するレスポンスデータがエンキューされる。受信キュー１３、及び送信キュー１４は、サーバ装置群２に含まれる各サーバ装置に対して、個別に用意してもよい。Ｉ／Ｏアクセスリクエストの例としては、ＳＣＳＩコマンドリクエストがある。
【００２５】
Ｉ／Ｏアクセス高速化部１６は、キャッシュ管理テーブル１７を備える。Ｉ／Ｏアクセス高速化部１６は、キャッシュ管理テーブル１７を使用して、１次キャッシュメモリ１８、及び２次キャッシュメモリ１９に記憶するレスポンスデータを管理する。
【００２６】
図３は、本発明の実施形態におけるキャッシュ管理テーブル１７の例である。キャッシュ管理テーブル１７は、コマンド番号フィールド、パラメータフィールド、キャッシュフィールド、及びレスポンスデータアドレスフィールドを含む。
【００２７】
コマンド番号フィールドには、Ｉ／Ｏアクセスリクエストの種類（コマンド）を識別する番号が設定される。パラメータフィールドには、コマンドに指定されたパラメータが設定される。キャッシュフィールドには、レスポンスデータの記憶先が設定され、“１”は、該当のレスポンスデータが、１次キャッシュメモリに記憶されていることを示し、“２”は、該当のレスポンスデータが、２次キャッシュメモリに記憶されていることを示す。レスポンスデータアドレスフィールドには、該当のレスポンスデータが、記憶されている箇所の開始アドレスと終了アドレスが設定される。
【００２８】
Ｉ／Ｏアクセス高速化部１６は、１次キャッシュメモリ１８、及び２次キャッシュメモリ１９を効果的に使用することにより、Ｉ／Ｏデバイス２０に対するアクセスリクエストが集中しても、レスポンスを遅延させない機能を実現する。
【００２９】
１次キャッシュメモリ１８は、使用頻度の高いＩ／Ｏアクセスリクエストに対するレスポンスデータを記憶する。
【００３０】
２次キャッシュメモリ１９は、使用頻度の低いＩ／Ｏアクセスリクエストに対するレスポンスデータを記憶する。
【００３１】
Ｉ／Ｏデバイス２０は、ＣＤドライブ、ＤＶＤドライブ等のドライブや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続の外部装置等である。
【００３２】
［動作方法の説明］
次に、本実施形態のＩ／Ｏデバイス共有システムにおいて、Ｉ／Ｏデバイス共有方法の説明を行う。図４は、本実施形態のＩ／Ｏデバイス共有システムにおけるレスポンスデータ返却方法のフローチャートである。
【００３３】
（ステップＳ１）
管理端末１のＮＩＣ１１が、Ｉ／Ｏアクセスリクエストを受信する。Ｉ／Ｏアクセスリクエストは、ドライバ層処理部１２を介して、バッファ１５の受信キュー１３にエンキューされる。Ｉ／Ｏアクセス高速化部１６は、受信キュー１３から、Ｉ／Ｏアクセスリクエストを取り出す。
【００３４】
（ステップＳ２）
Ｉ／Ｏアクセス高速化部１６は、キャッシュ管理テーブル１７を参照して、Ｉ／Ｏアクセスリクエストに対応するレスポンスデータが、１次キャッシュメモリ、又は２次キャッシュメモリに存在するかどうかを確認する。Ｉ／Ｏアクセス高速化部１６は、１次キャッシュメモリ、又は２次キャッシュメモリにレスポンスデータがある場合には、ステップＳ３の処理に進み、レスポンスデータがない場合には、ステップＳ４の処理に進む。
【００３５】
（ステップＳ３）
Ｉ／Ｏアクセス高速化部１６は、１次キャッシュメモリ、又は２次キャッシュメモリにキャッシュされているレスポンスデータを取得し、バッファ１５の送信キュー１４に、当該レスポンスデータをエンキューする。
【００３６】
（ステップＳ４）
Ｉ／Ｏアクセス高速化部１６は、ドライバ層処理部１２を介して、Ｉ／Ｏデバイス２０にアクセスする。Ｉ／Ｏアクセス高速化部１６は、ドライバ層処理部１２を介して、Ｉ／Ｏデバイス２０からレスポンスデータを受信する。
【００３７】
（ステップＳ５）
Ｉ／Ｏアクセス高速化部１６は、レスポンスデータを、バッファ１５の送信キュー１４にエンキューする。
【００３８】
（ステップＳ６）
Ｉ／Ｏアクセス高速化部１６は、実際にＩ／Ｏデバイスにアクセスすることにより取得されたレスポンスデータを、１次キャッシュメモリに格納し、当該レスポンスデータに対応するキャッシュ管理テーブル１７のレコードを登録する。
【００３９】
次に、本実施形態のＩ／Ｏデバイス共有システムにおける１次キャッシュメモリ管理方法について説明する。図５は、本実施形態のＩ／Ｏデバイス共有システムにおける１次キャッシュメモリ管理方法のフローチャートである。
【００４０】
（ステップＳ１１）
Ｉ／Ｏアクセス高速化部１６は、Ｉ／Ｏアクセスリクエストの種類（コマンド）毎に、時刻Ｔ（ｎ）から時刻Ｔ（ｎ＋１）までの所定の間に受信した回数を記録する。ここで、ｎは整数であり、例えば、Ｔ（０）→Ｔ（１）、Ｔ（１）→Ｔ（２）、・・・と所定の時間間隔毎に、コマンド毎に、Ｉ／Ｏアクセスリクエストの受信回数を記録する。所定の時間間隔は、Ｉ／Ｏデバイスのアクセス頻度や、処理負荷等に基づいて、当業者によって適宜、変更することができる。
【００４１】
（ステップＳ１２）
Ｉ／Ｏアクセス高速化部１６は、１次キャッシュメモリの記憶容量に空きがあるかどうかを確認し、記憶容量に空きがある場合には、ステップＳ１１の処理に戻り、記憶容量に空きがない場合には、ステップＳ１３の処理に進む。
【００４２】
（ステップＳ１３）
Ｉ／Ｏアクセス高速化部１６は、キャッシュ管理テーブル１７、及びステップＳ１１において、所定の時間毎、かつコマンド毎に記録していた受信回数を使用して増加率を算出する。
【００４３】
図６は、本実施形態のＩ／Ｏデバイス共有システムにおいて、増加率の計算方法を説明するための図である。
【００４４】
Ｉ／Ｏアクセス高速化部１６は、現在時刻から遡って、最新の４回の計測期間における各コマンドのリクエスト受信回数を使用して、受信頻度の傾向を表す増加率を計算する。本実施形態では、最新の４回の計測期間を使用しているが、増加率の計算に使用する計測期間の回数は、４回でなくてもよい。図６におけるコマンド番号００、及びコマンド番号０１の場合を例にして、この増加率の計算方法について説明する。
【００４５】
はじめに、Ｉ／Ｏアクセス高速化部１６は、コマンド番号００のコマンドの受信回数の計測結果、Ｔ（０）→Ｔ（１）（４００回）、Ｔ（１）→Ｔ（２）（３９５回）、Ｔ（２）→Ｔ（３）（３９０回）、及びＴ（３）→Ｔ（４）（３８０回）において、Ｔ（０）→Ｔ（１）における受信回数の値（４００）を選択する。
【００４６】
次に、Ｉ／Ｏアクセス高速化部１６は、他計測間隔（Ｔ１→Ｔ２、Ｔ２→Ｔ３、Ｔ３→Ｔ４）でも同じ値だった場合を仮定した基準（つまり増加率１）として、（４００＋３９５＋３９０＋３８０）／（４００×４）＝１５６５／１６００＝０．９７により増加率を算出する。図７は、本実施形態のＩ／Ｏデバイス共有システムにおいて、Ｉ／Ｏアクセスリクエストのコマンド番号００のコマンドの受信回数の遷移を示す図である。
【００４７】
コマンド番号０１のコマンドについても同様に、Ｉ／Ｏアクセス高速化部１６は、（２＋６＋７＋９）／（２×４）＝２４／８＝３．００により増加率を算出する。図８は、本実施形態のＩ／Ｏデバイス共有システムにおいて、Ｉ／Ｏアクセスリクエストのコマンド番号０１のコマンド受信回数の遷移を示す図である。
【００４８】
Ｉ／Ｏアクセス高速化部１６は、コマンドＡ、Ｂ、Ｃについても同様に、それぞれのリクエスト回数の最大値１０回、２０回、１４回を基準にして増加率を計算し、それぞれ１．２５、０．４５、０．６５を算出する。
【００４９】
本実施形態では、４回の計測期間を使用して増加率を計算したが、Ｎ回（Ｎ＞１）の計測期間を使用して増加率を計算する場合の計算式は、以下のようになる。
【数１】
0006015887.tif 000002
【００５０】
（ステップＳ１４）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有するコマンドが１つであるかどうかを確認し、当該コマンドが１つである場合には、ステップＳ１５の処理に進み、当該コマンドが２つ以上ある場合には、ステップＳ１６の処理に進む。
【００５１】
（ステップＳ１５）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有するコマンドのレスポンスデータを、１次キャッシュメモリ１８から、２次キャッシュメモリ１９に移動する。
【００５２】
（ステップＳ１６）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有する複数のコマンドの中から、ランダムで１つのコマンドを選択し、当該コマンドのレスポンスデータを、１次キャッシュメモリ１８から、２次キャッシュメモリ１９に移動する。
【００５３】
（ステップＳ１７）
Ｉ／Ｏアクセス高速化部１６は、計測サイクル（Ｔ（ｎ）→Ｔ（ｎ＋１）の受信回数の記録）を再開する。
【００５４】
次に、本実施形態のＩ／Ｏデバイス共有システムにおける２次キャッシュメモリ管理方法について説明する。図９は、本実施形態のＩ／Ｏデバイス共有システムにおける２次キャッシュメモリ管理方法のフローチャートである。
【００５５】
（ステップＳ２１）
Ｉ／Ｏアクセス高速化部１６は、Ｉ／Ｏアクセスリクエストの種類（コマンド）毎に、時刻Ｔ（ｎ）から時刻Ｔ（ｎ＋１）までの所定の間に受信した回数を記録する。ここで、ｎは整数であり、例えば、Ｔ（０）→Ｔ（１）、Ｔ（１）→Ｔ（２）、・・・と所定の時間毎に、コマンド毎に、Ｉ／Ｏアクセスリクエストの受信回数を記録する。所定の時間間隔は、Ｉ／Ｏデバイスのアクセス頻度や、処理負荷等に基づいて、当業者によって適宜、変更することができる。
【００５６】
（ステップＳ２２）
Ｉ／Ｏアクセス高速化部１６は、２次キャッシュメモリの記憶容量に空きがあるかどうかを確認し、記憶容量に空きがある場合には、ステップＳ２１の処理に戻り、記憶容量に空きがない場合には、ステップＳ２３の処理に進む。
【００５７】
（ステップＳ２３）
Ｉ／Ｏアクセス高速化部１６は、キャッシュ管理テーブル１７、及びステップＳ２１において、所定の時間毎、かつコマンド毎に記録していた受信回数を使用して、受信頻度の傾向を表す増加率を算出する。増加率の計算方法の説明は、図６を用いて説明した１次キャッシュメモリの場合と同様であるため省略する。
【００５８】
（ステップＳ２４）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有するコマンドが１つであるかどうかを確認し、当該コマンドが１つである場合には、ステップＳ２５の処理に進み、当該コマンドが２つ以上ある場合には、ステップＳ２６の処理に進む。
【００５９】
（ステップＳ２５）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有するコマンドのレスポンスデータを、２次キャッシュメモリ１９から削除する。
【００６０】
（ステップＳ２６）
Ｉ／Ｏアクセス高速化部１６は、最小の増加率を有する複数のコマンドの中から、ランダムで１つのコマンドを選択し、当該コマンドのレスポンスデータを、１次キャッシュメモリ１９から削除する。
【００６１】
（ステップＳ２７）
Ｉ／Ｏアクセス高速化部１６は、計測サイクル（Ｔ（ｎ）→Ｔ（ｎ＋１）の受信回数の記録）を再開する。
【００６２】
本発明の実施形態によれば、例えば、ＣＤ／ＤＶＤドライブに対するＳＣＳＩリクエストにおいて、複数のサーバ装置からＳＣＳＩリクエストが集中しても、キャッシュレスポンスデータがあれば、ＣＤ／ＤＶＤドライブにアクセスしないため、レスポンスの遅延を防ぐことができる。
【００６３】
本発明の実施形態によれば、例えば、管理端末のＩ／Ｏデバイスを利用して、ネットワーク経由で、フロアのサーバ装置群の各サーバ装置に、ＯＳを同時にリモートインストールする際に、Ｉ／Ｏアクセスリクエストの応答待ちによるインストールプロセスの遅延を防ぐことができる。
【００６４】
本発明の実施形態によれば、Ｉ／Ｏアクセスリクエストの増加率に基づいて、１次キャッシュメモリ、及び２次キャッシュメモリに格納されているキャッシュレスポンスデータを管理しているため、キャッシュヒット率を上げることができる。
【００６５】
本発明の実施形態によれば、２次キャッシュメモリよりも１次キャッシュメモリのヒット率の方が高い状態を維持できるため、１次キャッシュメモリには、高速なメモリを使用し、２次キャッシュメモリには、１次キャッシュメモリよりも性能の劣るメモリを使用する構成を考えることができる。このような構成にすることにより、合理的に、性能と実装費用についての折り合いをつけることができる。
【００６６】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【００６７】
１  管理端末
２  サーバ装置群（サーバ装置２−１、・・・、サーバ装置２−Ｎ）
１１  ＮＩＣ
１２  ドライバ層処理部
１３  受信キュー
１４  送信キュー
１５  バッファ
１６  Ｉ／Ｏアクセス高速化部
１７  キャッシュ管理テーブル
１８  １次キャッシュメモリ
１９  ２次キャッシュメモリ
２０  Ｉ／Ｏデバイス
【図１】
0006015887.tif 000005
【図２】
0006015887.tif 000006
【図３】
0006015887.tif 000007
【図４】
0006015887.tif 000008
【図５】
0006015887.tif 000009
【図６】
0006015887.tif 000010
【図７】
0006015887.tif 000011
【図８】
0006015887.tif 000012
【図９】
0006015887.tif 000013