特許第6015887号(P6015887)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6015887I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム
<>
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000005
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000006
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000007
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000008
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000009
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000010
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000011
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000012
  • 特許6015887-I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6015887
(24)【登録日】2016年10月7日
(45)【発行日】2016年10月26日
(54)【発明の名称】I/Oデバイス共有システム、I/Oデバイス共有方法、及びプログラム
(51)【国際特許分類】
   G06F 13/10 20060101AFI20161013BHJP
【FI】
   G06F13/10 330C
【請求項の数】7
【全頁数】15
(21)【出願番号】特願2011-195466(P2011-195466)
(22)【出願日】2011年9月7日
(65)【公開番号】特開2013-58049(P2013-58049A)
(43)【公開日】2013年3月28日
【審査請求日】2014年8月13日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100102864
【弁理士】
【氏名又は名称】工藤 実
(72)【発明者】
【氏名】牧山 文博
【審査官】 坂東 博司
(56)【参考文献】
【文献】 特開2006−252019(JP,A)
【文献】 特開2004−030645(JP,A)
【文献】 特開平08−179976(JP,A)
【文献】 特開2000−353125(JP,A)
【文献】 特開2000−010740(JP,A)
【文献】 国際公開第2011/045931(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10
(57)【特許請求の範囲】
【請求項1】
複数のサーバ装置と、管理端末とを備え、
前記管理端末は、
前記複数のサーバ装置により共有される少なくとも一つのI/Oデバイスと、
1次キャッシュメモリと、
2次キャッシュメモリと、
前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記録されたI/Oアクセスリクエストのレスポンスデータを管理するI/Oアクセス高速化部であって、前記レスポンスデータが管理されていない場合に、前記I/OデバイスにアクセスするI/Oアクセス高速化部と
を備え、
前記I/Oアクセス高速化部は、
前記I/Oデバイスから取得した前記レスポンスデータを前記1次キャッシュメモリに記憶し、
前記1次キャッシュメモリの容量に空きがなくなった場合には、前記I/Oデバイスに対するI/Oアクセスリクエストの受信頻度の傾向を表す増加率をI/Oアクセスリクエストの種類毎に算出し、前記I/Oアクセスリクエストの種類毎に算出された複数の増加率の中から、最も増加率の小さいI/Oアクセスリクエストに対応する前記レスポンスデータを前記1次キャッシュメモリから前記2次キャッシュメモリに移動させ
前記2次キャッシュメモリの容量に空きがなくなった場合には、前記最も増加率の小さいI/Oアクセスリクエストに対応するレスポンスデータを前記2次キャッシュメモリから削除し、
更に前記I/Oアクセス高速化部は、前記I/Oデバイスが複数ある場合において、前記最も増加率の小さい前記I/Oアクセスリクエストが複数存在するときには、前記1次キャッシュメモリの容量に空きがなくなった場合でも、前記2次キャッシュメモリの容量に空きがなくなった場合でも、複数存在する前記最も増加率の小さいI/Oアクセスリクエストの中から、ランダムに1つを選択する
I/Oデバイス共有システム。
【請求項2】
前記I/Oアクセス高速化部は、
キャッシュ管理テーブルを更に備え、
前記キャッシュ管理テーブルのレコードは、前記I/Oアクセスリクエストの種類を設定するコマンド番号フィールド、前記I/Oアクセスリクエストに設定されているパラメータを設定するパラメータフィールド、前記1次キャッシュメモリ、又は前記2次キャッシュメモリのどちらかに記憶されているかを示す情報を設定するキャッシュフィールド、及びレスポンスデータが格納されているアドレス情報を設定するレスポンスデータアドレスフィールドを含む
請求項1に記載のI/Oデバイス共有システム。
【請求項3】
前記I/Oアクセス高速化部は、
所定の時間間隔T(n)→T(n+1)、及び前記I/Oアクセスリクエストの種類毎に、前記I/Oアクセスリクエストの受信回数を記録し、最新のN回(N>1)の前記時間間隔T(n)→T(n+1)について、前記I/Oアクセスリクエストの前記増加率を
により算出する
請求項1又は2に記載のI/Oデバイス共有システム。
【請求項4】
I/Oデバイス共有システムを用いるI/Oデバイス共有方法であって、
前記I/Oデバイス共有システムは、複数のサーバ装置と、管理端末とを備え、
前記管理端末は、
前記複数のサーバ装置により共有される少なくとも一つのI/Oデバイスと、
1次キャッシュメモリと、
2次キャッシュメモリと、
前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記録されたI/Oアクセスリクエストのレスポンスデータを管理するI/Oアクセス高速化部と
を備え、
前記I/Oデバイス共有方法は、
(A)前記レスポンスデータが管理されているかどうかを前記I/Oアクセス高速化部が確認するステップと、
(B)前記(A)のステップの結果、前記レスポンスデータが管理されていない場合に、前記I/Oアクセス高速化部が前記I/Oデバイスにアクセスするステップと、
(C)前記I/Oデバイスにアクセスすることにより前記I/Oデバイスから取得した前記レスポンスデータを前記I/Oアクセス高速化部が前記1次キャッシュメモリに記憶するステップと、
(D)前記1次キャッシュメモリの容量に空きがなくなった場合には、前記I/Oアクセス高速化部が、前記I/Oデバイスに対するI/Oアクセスリクエストの受信頻度の傾向を表す増加率をI/Oアクセスリクエストの種類毎に算出するステップと、
(E)前記1次キャッシュメモリの容量に空きがなくなった場合には、前記I/Oアクセスリクエストの種類毎に算出された複数の増加率の中から、最も増加率の小さいI/Oアクセスリクエストに対応するレスポンスデータを前記I/Oアクセス高速化部が前記1次キャッシュメモリから前記2次キャッシュメモリに移動させるステップと、
(F)前記2次キャッシュメモリの容量に空きがなくなった場合には、前記I/Oアクセス高速化部が、前記I/Oデバイスに対するI/Oアクセスリクエストの受信頻度の傾向を表す増加率をI/Oアクセスリクエストの種類毎に算出するステップと、
(G)前記2次キャッシュメモリの容量に空きがなくなった場合には、前記最も増加率の最も小さいI/Oアクセスリクエストに対応するレスポンスデータを前記2次キャッシュメモリから削除するステップと、
(H)前記I/Oデバイスが複数ある場合において、前記最も増加率の小さいI/Oアクセスリクエストが複数存在するときには、前記1次キャッシュメモリの容量に空きがなくなった場合でも、前記2次キャッシュメモリの容量に空きがなくなった場合でも、複数存在する前記最も増加率の小さいI/Oアクセスリクエストの中から、ランダムに1つを前記I/Oアクセス高速化部が選択するステップと
を含むI/Oデバイス共有方法。
【請求項5】
前記I/Oアクセス高速化部は、
キャッシュ管理テーブルを更に備え、
前記キャッシュ管理テーブルのレコードは、前記I/Oアクセスリクエストの種類を設定するコマンド番号フィールド、前記I/Oアクセスリクエストに設定されているパラメータを設定するパラメータフィールド、前記1次キャッシュメモリ、又は前記2次キャッシュメモリのどちらかに記憶されているかを示す情報を設定するキャッシュフィールド、及びレスポンスデータが格納されているアドレス情報を設定するレスポンスデータアドレスフィールドを含み、
前記(A)のステップは、前記キャッシュ管理テーブルに基づいて、前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記憶されているかどうかを前記I/Oアクセス高速化部が確認する
請求項4に記載のI/Oデバイス共有方法。
【請求項6】
前記(D)のステップおよび前記(F)のステップは、
前記I/Oアクセス高速化部が、所定の時間間隔T(n)→T(n+1)、及び前記I/Oアクセスリクエストの種類毎に、前記I/Oアクセスリクエストの受信回数を記録するステップと、
前記I/Oアクセス高速化部が、最新のN回(N>1)の前記時間間隔T(n)→T(n+1)について、前記I/Oアクセスリクエストの前記増加率を
により算出するステップと
を含む請求項4又は5に記載のI/Oデバイス共有方法。
【請求項7】
請求項4乃至6のいずれか1項に記載のI/Oデバイス共有方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、I/Oデバイス共有システムに関し、特に、I/Oアクセスリクエストのレスポンスを高速化する2段階キャッシュメモリを備えるI/Oデバイス共有システムに関する。
【背景技術】
【0002】
複数のサーバ装置と、サーバ装置を管理する管理端末を備えるコンピュータシステムにおいて、管理端末が備えるCDドライブやDVDドライブ等のI/Oデバイスを複数のサーバ間で共有するためのリモートメディア接続技術が知られている。このようなリモートメディア接続技術では、各サーバは、サーバの外部にネットワークを介して存在するI/Oデバイスに接続するリモートメディア制御部を備え、当該I/Oデバイスを、各サーバ上に仮想的に接続されたデバイスとして機能させる。
【0003】
特開2010−134911号公報(特許文献1)では、複数のブレードサーバと、ブレード管理モジュールと、記憶媒体を含むメディア・トレーを備えるブレード・センタを、リモート管理端末装置によって管理する発明が開示されている。この発明では、リモート管理端末装置が、ブレード管理モジュールを介して、メディア・トレーの記憶媒体に、データ・ファイルを格納している。各ブレードサーバは、ブレード管理モジュールを介して、メディア・トレーの記憶媒体に格納されたデータ・ファイルにアクセスしている。
【0004】
リモートメディア制御において、複数のサーバ装置でI/Oデバイスを共有すると、複数のサーバ装置からアクセスが集中することによって、様々な問題が発生することが知られている。
【0005】
例えば、複数のブレードサーバに対して、一斉にOS(Operating System)をインストールしたい場合を考えると、一台の管理端末のCD/DVDドライブにOSインストール用CD/DVD媒体をセットしておき、ブレードサーバ群のサービスプロセッサ(SP)と、管理PCのリモートメディア制御部が連携させる方法がある。この方法を実現させる例としては、次のような方法がある。まず、管理端末のCD/DVDドライブを、各ブレードサーバ上に、USBデバイスとしてリモートメディア接続しておく。次に、ブレードサーバ群の電源を同時にONにすると、BIOS POSTを経て、リモートメディア接続中のCD/DVDメディアから、インストーラをブートさせることができる。これにより、各ブレードサーバのOSを一斉にインストールすることができる。
【0006】
このとき、管理端末のOSでは、CD/DVDドライブに対して、複数のブレードサーバのサービスプロセッサからのSCSI(Small Computer System Interface)コマンドリクエストによるI/Oアクセスが頻繁に発生する。そのため、レスポンス処理全体の遅延が生じてしまい、OSのインストールがスムーズに進行しない。
【0007】
上述の例では、CD/DVDドライブへのI/Oアクセスは、メインメモリアクセスと比較して処理が遅くなるため、レスポンス処理全体の遅延が生じてしまい、複数のサーバ装置に対するOSのインストールがスムーズに進行しない問題が発生する。
【0008】
複数のサーバ装置でI/Oデバイスを共有することにより発生する問題についての2つ目の例としては、管理端末がストールしてしまう問題がある。その理由は、管理端末のリモートメディア制御部が保持している受信バッファ(キュー)容量よりも、多いI/Oアクセスリクエストが、各サーバのサービスプロセッサから、一度に集中して要求されるためである。結果的に、バッファオーバーフローにより、リモートメディア制御部の処理能力を超え、管理端末がストールしてしまう。
【0009】
逆に、管理端末のリモートメディア制御部が保持している送信バッファ(キュー)容量よりも、多いI/Oアクセスリクエストのレスポンスが、一度に集中する場合もある。この場合においても、結果的に、バッファオーバーフローにより、リモートメディア制御部の処理能力を超え、管理端末がストールしてしまう。
【0010】
複数のサーバ装置が同時にアクセスすることにより、I/Oデバイスに対するアクセスリクエストが集中しても、I/Oアクセスリクエストに対するレスポンスを遅延させないI/Oデバイス共有システムが必要とされている。
【0011】
また、複数のサーバ装置のサービスプロセッサから、管理端末のI/Oデバイスに、I/Oアクセスリクエストが集中しても、バッファオーバーフローにより、I/Oアクセスリクエスト処理、又はI/Oアクセスレスポンス処理がストールしないI/Oデバイス共有システムが必要とされている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2010−134911号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明の目的は、I/Oアクセスリクエストのレスポンス処理を高速化するI/Oデバイス共有システムを提供することにある。
【課題を解決するための手段】
【0014】
本発明のI/Oデバイス共有システムは、複数のサーバ装置と、管理端末とを備える。管理端末は、複数のサーバ装置により共有されるI/Oデバイスと、1次キャッシュメモリと、2次キャッシュメモリと、I/Oアクセス高速化部とを備える。I/Oアクセス高速化部は、1次キャッシュメモリ、又は2次キャッシュメモリに記録されたI/Oアクセスリクエストのレスポンスデータを管理し、レスポンスデータが管理されていない場合に、I/Oデバイスにアクセスする。また、I/Oアクセス高速化部は、I/Oデバイスから取得したレスポンスデータを1次キャッシュメモリに記憶し、1次キャッシュメモリの容量に空きがなくなった場合には、I/Oデバイスに対するI/Oアクセスリクエストの受信頻度の傾向を表す増加率を算出し、増加率が最小のI/Oアクセスリクエストのレスポンスデータを、2次キャッシュメモリに移動し、2次キャッシュメモリの容量に空きがなくなった場合には、増加率が最小のI/Oアクセスリクエストのレスポンスデータを2次キャッシュメモリから削除する。
【0015】
本発明のI/Oデバイス共有方法は、I/Oデバイス共有システムにより実施されるI/Oデバイス共有方法である。本発明のI/Oデバイス共有方法は、I/Oアクセス高速化部が、受信キューからI/Oアクセスリクエストを取得するステップと、I/Oアクセス高速化部が、前記I/Oアクセスリクエストに対応するレスポンスデータが、前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記憶されているかどうかを確認するステップと、前記確認するステップで、前記レスポンスデータが、前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記憶されている場合には、記憶されている前記レスポンスデータを、送信キューにエンキューするステップと、前記確認するステップで、前記レスポンスデータが、前記1次キャッシュメモリ、又は前記2次キャッシュメモリに記憶されていない場合には、I/Oアクセス高速化部が、I/Oデバイスにアクセスするステップと、I/Oアクセス高速化部が、前記アクセスするステップで取得した前記レスポンスデータを、送信キューにエンキューするステップと、I/Oアクセス高速化部が、前記アクセスするステップで取得した前記レスポンスデータを前記1次キャッシュメモリに記憶するステップと、1次キャッシュメモリの容量に空きがなくなった場合には、I/Oアクセス高速化部が、前記I/Oデバイスに対するI/Oアクセスリクエストの受信頻度の傾向を表す増加率を算出するステップと、I/Oアクセス高速化部が、前記増加率が最小の前記I/Oアクセスリクエストの前記レスポンスデータを、前記1次キャッシュメモリから、前記2次キャッシュメモリに移動するステップと、前記2次キャッシュメモリの容量に空きがなくなった場合には、I/Oアクセス高速化部が、前記増加率が最小の前記I/Oアクセスリクエストの前記レスポンスデータを前記2次キャッシュメモリから削除するステップとを含む。
【発明の効果】
【0016】
本発明によれば、I/Oアクセスリクエストのレスポンス処理を高速化するI/Oデバイス共有システムを提供することができる。
【図面の簡単な説明】
【0017】
図1図1は、本発明の実施形態におけるI/Oデバイス共有システムのネットワーク構成図である。
図2図2は、本発明の実施形態におけるI/Oデバイス共有システムに含まれる管理端末のブロック図である。
図3図3は、本発明の実施形態におけるキャッシュ管理テーブル17の例である。
図4図4は、本実施形態のI/Oデバイス共有システムにおけるレスポンスデータ返却方法のフローチャートである。
図5図5は、本実施形態のI/Oデバイス共有システムにおける1次キャッシュメモリ管理方法のフローチャートである。
図6図6は、本実施形態のI/Oデバイス共有システムにおいて、増加率の計算方法を説明するための図である。
図7図7は、本実施形態のI/Oデバイス共有システムにおいて、I/Oアクセスリクエストのコマンド番号00のコマンド受信回数の遷移を示す図である。
図8図8は、本実施形態のI/Oデバイス共有システムにおいて、I/Oアクセスリクエストのコマンド番号01のコマンド受信回数の遷移を示す図である。
図9図9は、本実施形態のI/Oデバイス共有システムにおける2次キャッシュメモリ管理方法のフローチャートである。
【発明を実施するための形態】
【0018】
添付図面を参照して、本発明の実施形態によるI/Oデバイス共有システムを以下に説明する。
【0019】
[構成の説明]
はじめに、本実施形態におけるI/Oデバイス共有システムの構成の説明を行う。図1は、本発明の実施形態におけるI/Oデバイス共有システムのネットワーク構成図である。本実施形態のI/Oデバイス共有システムは、管理端末1、及びN台のサーバ装置(サーバ装置2−1、サーバ装置2−2、・・・、サーバ装置2−N)で構成されるサーバ装置群2を備える。
【0020】
管理端末1は、サーバ装置群2の管理者が、サーバ装置2−1、サーバ装置2−2、・・・、サーバ装置2−Nを管理するために使用する端末である。サーバ装置群2に含まれる各サーバは、クライアント端末からの所定のサービス要求に応答して、所定の処理を実行する。なお、各サーバ装置は、別々の筐体として構成されていなくてもよく、ブレードサーバのように1つの筐体に、複数のサーバ装置が含まれる構成であってもよい。本実施形態のI/Oデバイス共有システムでは、各サーバ装置が、管理端末1のI/Oデバイスを共有する。管理端末1は、2段階キャッシュメモリを備えることにより、管理端末1にI/Oアクセスリクエストが集中しても、レスポンスを遅延させない機能を持つ。
【0021】
次に、管理端末1の構成について説明する。図2は、本発明の実施形態におけるI/Oデバイス共有システムに含まれる管理端末のブロック図である。管理端末1は、NIC11(Network Interface Card)、ドライバ層処理部12、バッファ15、I/Oアクセス高速化部16、1次キャッシュメモリ18、2次キャッシュメモリ19、及びI/Oデバイス20を備える。
【0022】
NIC11は、管理端末1と、サーバ装置群2が、ネットワークを介して通信するためのネットワークインターフェースである。
【0023】
ドライバ層処理部12は、ドライバ層に含まれる処理を行う処理部であり、管理端末1のOSが、NIC11、及びI/Oデバイス20を使用するために必要な処理が含まれる。
【0024】
バッファ15は、受信キュー13、及び送信キュー14を備える。受信キュー13には、I/Oデバイス20に対するI/Oアクセスリクエストデータがエンキューされる。送信キュー14には、I/Oアクセスリクエストデータに対するレスポンスデータがエンキューされる。受信キュー13、及び送信キュー14は、サーバ装置群2に含まれる各サーバ装置に対して、個別に用意してもよい。I/Oアクセスリクエストの例としては、SCSIコマンドリクエストがある。
【0025】
I/Oアクセス高速化部16は、キャッシュ管理テーブル17を備える。I/Oアクセス高速化部16は、キャッシュ管理テーブル17を使用して、1次キャッシュメモリ18、及び2次キャッシュメモリ19に記憶するレスポンスデータを管理する。
【0026】
図3は、本発明の実施形態におけるキャッシュ管理テーブル17の例である。キャッシュ管理テーブル17は、コマンド番号フィールド、パラメータフィールド、キャッシュフィールド、及びレスポンスデータアドレスフィールドを含む。
【0027】
コマンド番号フィールドには、I/Oアクセスリクエストの種類(コマンド)を識別する番号が設定される。パラメータフィールドには、コマンドに指定されたパラメータが設定される。キャッシュフィールドには、レスポンスデータの記憶先が設定され、“1”は、該当のレスポンスデータが、1次キャッシュメモリに記憶されていることを示し、“2”は、該当のレスポンスデータが、2次キャッシュメモリに記憶されていることを示す。レスポンスデータアドレスフィールドには、該当のレスポンスデータが、記憶されている箇所の開始アドレスと終了アドレスが設定される。
【0028】
I/Oアクセス高速化部16は、1次キャッシュメモリ18、及び2次キャッシュメモリ19を効果的に使用することにより、I/Oデバイス20に対するアクセスリクエストが集中しても、レスポンスを遅延させない機能を実現する。
【0029】
1次キャッシュメモリ18は、使用頻度の高いI/Oアクセスリクエストに対するレスポンスデータを記憶する。
【0030】
2次キャッシュメモリ19は、使用頻度の低いI/Oアクセスリクエストに対するレスポンスデータを記憶する。
【0031】
I/Oデバイス20は、CDドライブ、DVDドライブ等のドライブや、USB(Universal Serial Bus)接続の外部装置等である。
【0032】
[動作方法の説明]
次に、本実施形態のI/Oデバイス共有システムにおいて、I/Oデバイス共有方法の説明を行う。図4は、本実施形態のI/Oデバイス共有システムにおけるレスポンスデータ返却方法のフローチャートである。
【0033】
(ステップS1)
管理端末1のNIC11が、I/Oアクセスリクエストを受信する。I/Oアクセスリクエストは、ドライバ層処理部12を介して、バッファ15の受信キュー13にエンキューされる。I/Oアクセス高速化部16は、受信キュー13から、I/Oアクセスリクエストを取り出す。
【0034】
(ステップS2)
I/Oアクセス高速化部16は、キャッシュ管理テーブル17を参照して、I/Oアクセスリクエストに対応するレスポンスデータが、1次キャッシュメモリ、又は2次キャッシュメモリに存在するかどうかを確認する。I/Oアクセス高速化部16は、1次キャッシュメモリ、又は2次キャッシュメモリにレスポンスデータがある場合には、ステップS3の処理に進み、レスポンスデータがない場合には、ステップS4の処理に進む。
【0035】
(ステップS3)
I/Oアクセス高速化部16は、1次キャッシュメモリ、又は2次キャッシュメモリにキャッシュされているレスポンスデータを取得し、バッファ15の送信キュー14に、当該レスポンスデータをエンキューする。
【0036】
(ステップS4)
I/Oアクセス高速化部16は、ドライバ層処理部12を介して、I/Oデバイス20にアクセスする。I/Oアクセス高速化部16は、ドライバ層処理部12を介して、I/Oデバイス20からレスポンスデータを受信する。
【0037】
(ステップS5)
I/Oアクセス高速化部16は、レスポンスデータを、バッファ15の送信キュー14にエンキューする。
【0038】
(ステップS6)
I/Oアクセス高速化部16は、実際にI/Oデバイスにアクセスすることにより取得されたレスポンスデータを、1次キャッシュメモリに格納し、当該レスポンスデータに対応するキャッシュ管理テーブル17のレコードを登録する。
【0039】
次に、本実施形態のI/Oデバイス共有システムにおける1次キャッシュメモリ管理方法について説明する。図5は、本実施形態のI/Oデバイス共有システムにおける1次キャッシュメモリ管理方法のフローチャートである。
【0040】
(ステップS11)
I/Oアクセス高速化部16は、I/Oアクセスリクエストの種類(コマンド)毎に、時刻T(n)から時刻T(n+1)までの所定の間に受信した回数を記録する。ここで、nは整数であり、例えば、T(0)→T(1)、T(1)→T(2)、・・・と所定の時間間隔毎に、コマンド毎に、I/Oアクセスリクエストの受信回数を記録する。所定の時間間隔は、I/Oデバイスのアクセス頻度や、処理負荷等に基づいて、当業者によって適宜、変更することができる。
【0041】
(ステップS12)
I/Oアクセス高速化部16は、1次キャッシュメモリの記憶容量に空きがあるかどうかを確認し、記憶容量に空きがある場合には、ステップS11の処理に戻り、記憶容量に空きがない場合には、ステップS13の処理に進む。
【0042】
(ステップS13)
I/Oアクセス高速化部16は、キャッシュ管理テーブル17、及びステップS11において、所定の時間毎、かつコマンド毎に記録していた受信回数を使用して増加率を算出する。
【0043】
図6は、本実施形態のI/Oデバイス共有システムにおいて、増加率の計算方法を説明するための図である。
【0044】
I/Oアクセス高速化部16は、現在時刻から遡って、最新の4回の計測期間における各コマンドのリクエスト受信回数を使用して、受信頻度の傾向を表す増加率を計算する。本実施形態では、最新の4回の計測期間を使用しているが、増加率の計算に使用する計測期間の回数は、4回でなくてもよい。図6におけるコマンド番号00、及びコマンド番号01の場合を例にして、この増加率の計算方法について説明する。
【0045】
はじめに、I/Oアクセス高速化部16は、コマンド番号00のコマンドの受信回数の計測結果、T(0)→T(1)(400回)、T(1)→T(2)(395回)、T(2)→T(3)(390回)、及びT(3)→T(4)(380回)において、T(0)→T(1)における受信回数の値(400)を選択する。
【0046】
次に、I/Oアクセス高速化部16は、他計測間隔(T1→T2、T2→T3、T3→T4)でも同じ値だった場合を仮定した基準(つまり増加率1)として、(400+395+390+380)/(400×4)=1565/1600=0.97により増加率を算出する。図7は、本実施形態のI/Oデバイス共有システムにおいて、I/Oアクセスリクエストのコマンド番号00のコマンドの受信回数の遷移を示す図である。
【0047】
コマンド番号01のコマンドについても同様に、I/Oアクセス高速化部16は、(2+6+7+9)/(2×4)=24/8=3.00により増加率を算出する。図8は、本実施形態のI/Oデバイス共有システムにおいて、I/Oアクセスリクエストのコマンド番号01のコマンド受信回数の遷移を示す図である。
【0048】
I/Oアクセス高速化部16は、コマンドA、B、Cについても同様に、それぞれのリクエスト回数の最大値10回、20回、14回を基準にして増加率を計算し、それぞれ1.25、0.45、0.65を算出する。
【0049】
本実施形態では、4回の計測期間を使用して増加率を計算したが、N回(N>1)の計測期間を使用して増加率を計算する場合の計算式は、以下のようになる。
【数1】
【0050】
(ステップS14)
I/Oアクセス高速化部16は、最小の増加率を有するコマンドが1つであるかどうかを確認し、当該コマンドが1つである場合には、ステップS15の処理に進み、当該コマンドが2つ以上ある場合には、ステップS16の処理に進む。
【0051】
(ステップS15)
I/Oアクセス高速化部16は、最小の増加率を有するコマンドのレスポンスデータを、1次キャッシュメモリ18から、2次キャッシュメモリ19に移動する。
【0052】
(ステップS16)
I/Oアクセス高速化部16は、最小の増加率を有する複数のコマンドの中から、ランダムで1つのコマンドを選択し、当該コマンドのレスポンスデータを、1次キャッシュメモリ18から、2次キャッシュメモリ19に移動する。
【0053】
(ステップS17)
I/Oアクセス高速化部16は、計測サイクル(T(n)→T(n+1)の受信回数の記録)を再開する。
【0054】
次に、本実施形態のI/Oデバイス共有システムにおける2次キャッシュメモリ管理方法について説明する。図9は、本実施形態のI/Oデバイス共有システムにおける2次キャッシュメモリ管理方法のフローチャートである。
【0055】
(ステップS21)
I/Oアクセス高速化部16は、I/Oアクセスリクエストの種類(コマンド)毎に、時刻T(n)から時刻T(n+1)までの所定の間に受信した回数を記録する。ここで、nは整数であり、例えば、T(0)→T(1)、T(1)→T(2)、・・・と所定の時間毎に、コマンド毎に、I/Oアクセスリクエストの受信回数を記録する。所定の時間間隔は、I/Oデバイスのアクセス頻度や、処理負荷等に基づいて、当業者によって適宜、変更することができる。
【0056】
(ステップS22)
I/Oアクセス高速化部16は、2次キャッシュメモリの記憶容量に空きがあるかどうかを確認し、記憶容量に空きがある場合には、ステップS21の処理に戻り、記憶容量に空きがない場合には、ステップS23の処理に進む。
【0057】
(ステップS23)
I/Oアクセス高速化部16は、キャッシュ管理テーブル17、及びステップS21において、所定の時間毎、かつコマンド毎に記録していた受信回数を使用して、受信頻度の傾向を表す増加率を算出する。増加率の計算方法の説明は、図6を用いて説明した1次キャッシュメモリの場合と同様であるため省略する。
【0058】
(ステップS24)
I/Oアクセス高速化部16は、最小の増加率を有するコマンドが1つであるかどうかを確認し、当該コマンドが1つである場合には、ステップS25の処理に進み、当該コマンドが2つ以上ある場合には、ステップS26の処理に進む。
【0059】
(ステップS25)
I/Oアクセス高速化部16は、最小の増加率を有するコマンドのレスポンスデータを、2次キャッシュメモリ19から削除する。
【0060】
(ステップS26)
I/Oアクセス高速化部16は、最小の増加率を有する複数のコマンドの中から、ランダムで1つのコマンドを選択し、当該コマンドのレスポンスデータを、1次キャッシュメモリ19から削除する。
【0061】
(ステップS27)
I/Oアクセス高速化部16は、計測サイクル(T(n)→T(n+1)の受信回数の記録)を再開する。
【0062】
本発明の実施形態によれば、例えば、CD/DVDドライブに対するSCSIリクエストにおいて、複数のサーバ装置からSCSIリクエストが集中しても、キャッシュレスポンスデータがあれば、CD/DVDドライブにアクセスしないため、レスポンスの遅延を防ぐことができる。
【0063】
本発明の実施形態によれば、例えば、管理端末のI/Oデバイスを利用して、ネットワーク経由で、フロアのサーバ装置群の各サーバ装置に、OSを同時にリモートインストールする際に、I/Oアクセスリクエストの応答待ちによるインストールプロセスの遅延を防ぐことができる。
【0064】
本発明の実施形態によれば、I/Oアクセスリクエストの増加率に基づいて、1次キャッシュメモリ、及び2次キャッシュメモリに格納されているキャッシュレスポンスデータを管理しているため、キャッシュヒット率を上げることができる。
【0065】
本発明の実施形態によれば、2次キャッシュメモリよりも1次キャッシュメモリのヒット率の方が高い状態を維持できるため、1次キャッシュメモリには、高速なメモリを使用し、2次キャッシュメモリには、1次キャッシュメモリよりも性能の劣るメモリを使用する構成を考えることができる。このような構成にすることにより、合理的に、性能と実装費用についての折り合いをつけることができる。
【0066】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【0067】
1 管理端末
2 サーバ装置群(サーバ装置2−1、・・・、サーバ装置2−N)
11 NIC
12 ドライバ層処理部
13 受信キュー
14 送信キュー
15 バッファ
16 I/Oアクセス高速化部
17 キャッシュ管理テーブル
18 1次キャッシュメモリ
19 2次キャッシュメモリ
20 I/Oデバイス
図1
図2
図3
図4
図5
図6
図7
図8
図9