【背景技術】
【0002】
ディスクエンクロージャーなどの記憶装置は、例えば、複数の記憶デバイス(具体例として、HDD:Hard Disk Drive)等によって構成されている。また、常時稼働することを求められる記憶装置は、多くの電力を消費することが知られている。そのため、記憶装置によって消費される電力を削減する技術は、多岐に亘り存在する。例えば、当該技術には、HDDに対するアクセスが一定の時間に亘って無い場合に、HDDの動作状態を、通常に動作している状態(以下、本願では、「通常状態」と称する)からディスクの回転を停止する省電力状態に移行させる省電力機能が存在する。しかしながら、例えば、定期的に、ハードウェアの状態(例えば、死活状態)を監視することを目的とするコマンドが記憶装置に対して発行された場合に、当該技術では、以下に示す問題が発生する。即ち、そのコマンドに応答することを目的として、当該技術は、HDDの動作状態を、省電力状態から通常状態に移行させる必要がある。そのため、当該技術では、記憶装置が消費する電力を効率よく削減することができない可能性がある。
【0003】
この問題を解決する技術としては、例えば、特許文献1に開示された技術が存在する。特許文献1は、記録再生装置に関する技術を開示する。
【0004】
係る記録再生装置は、第1の記憶デバイス、第2の記憶デバイス、仮想コマンド応答部及びキャッシュ制御部を備える。記録再生装置は、第1の記憶デバイスの動作状態を通常状態からスリープ状態(つまり、省電力状態)に移行するに際して、第1の記憶デバイスに記憶された情報(データ)を、第2の記憶デバイスに記憶する。これにより、例えば、データの転送を伴うコマンドが第1の記憶デバイスに対して発行された場合に、キャッシュ制御部は、第2の記憶デバイスに記憶された情報を再生することができる。また、第1の記憶デバイスがスリープ状態において、データの転送を伴わないコマンドが第1の記憶デバイスに対して発行された場合には、仮想コマンド応答部は、第1の記憶デバイスに代わって当該コマンドに応答する。
【0005】
このように、ホスト装置などの上位装置からデータの転送を伴わないコマンドが発行された場合に、仮想コマンド応答部は、上位装置に対して応答する。これによって、特許文献1は、データの転送を伴うコマンドだけでなく、転送を伴わないコマンドが発行された場合であっても、スリープ状態を維持することができる。
【0006】
ここで、本願出願に先立って存在する他の関連技術としては、例えば、特許文献2乃至特許文献4がある。
【0007】
特許文献2は、情報処理装置及びその制御方法に関する技術を開示する。情報処理装置は、第1記憶手段と第2記憶手段とによってミラーリングを構成する。情報処理装置が有する履歴保持手段は、第2記憶手段が省電力状態おいて、以下に示す処理を実行する。即ち、履歴保持手段は、外部装置からデータを受信した場合に、その受信したデータを書き込むよう第1記憶手段を制御する。また、履歴保持手段は、第1記憶手段にデータが書き込まれたことを示す履歴情報を記憶する。
【0008】
これによって、情報処理装置は、第2記憶手段が省電力状態から通常状態に移行する際に、履歴情報に基づいて、第1記憶手段に書き込まれたデータを、第2記憶手段に書き込むことができる。その結果、情報処理装置は、外部装置からデータの転送を伴うコマンドが発行された場合であっても、第2記憶手段において省電力状態を維持することができる。また、第2記憶手段が省電力状態から通常状態に移行する場合に、情報処理装置は、第1記憶手段と第2記憶手段とにデータを記憶することができる。
【0009】
特許文献3は、障害解析方式に関する技術を開示する。障害解析方式は、履歴採取手段と履歴保存手段とを備える。即ち、履歴採取手段は、プログラムからオペレーティングシステム、またはファームウェアに対して発行されたコマンドの内容を示す情報と、コマンドに対するレスポンスの内容を示す情報とをコマンド履歴テーブルに格納する。履歴保存手段は、例えば、プログラムの実行中において障害が発生した際に、コマンド履歴テーブルに格納された情報を外部記憶装置に格納する。
【0010】
これにより、管理者は、外部記憶装置に格納された情報に基づいて、プログラムからオペレーティングシステム、またはファームウェアに対して発行されたコマンドに起因する障害を容易に解析することができる。
【0011】
特許文献4は、ストレージ制御装置及びその動作制御方法に関する技術を開示する。ストレージ制御装置は、アクセス監視手段と、アクセス制御手段とを備える。
【0012】
より具体的に、アクセス監視手段は、ストレージ装置に対するアクセスを要求するアクセス要求を受信してからアクセスを中断する指示(中断指示)を受信するまでの時間を計測する。また、アクセス監視手段は、計測した時間を、アクセス中断時間としてデータベースに格納する。アクセス制御手段は、新たにアクセス要求を受信するのに応じて、アクセスすべきストレージ装置の動作状態を確認する。その結果、ストレージ装置の動作状態が省電力状態であると判定した場合に、アクセス制御手段は、動作状態を省電力状態から通常状態に移行するようストレージ装置を制御する。アクセス要求を受信した時点からのアクセス中断時間に基づき求めた時間が経過した時点までに動作状態が通常状態に移行しない場合に、アクセス制御手段は、アクセス要求に対する応答として処理途中であることを通知する。
【0013】
これによって、係る通知を受信したホスト装置は、ストレージ装置において異常が発生したと判定することなく、そのストレージ装置から応答を受信するまで待機することができる。
【発明を実施するための形態】
【0026】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0027】
<第1の実施形態>
図1は、本発明の第1の実施形態における応答制御装置1の構成を示すブロック図である。
【0028】
図1において、応答制御装置1は、監視部2及び記憶部3を備える。
【0029】
応答制御装置1と記憶装置51とは、例えば、ディスクインタフェース50を介して通信可能に接続される。
【0030】
記憶装置51は、例えば、1つ以上の記憶デバイス(不図示)を備えた外部記憶装置である。より具体的に、例えば、記憶装置51は、ディスクエンクロージャーなどのディスクアレイである。
【0031】
但し、記憶デバイスを含む記憶装置51及びディスクインタフェース50については、現在では一般的な技術を採用することができる。そのため、本実施形態における詳細な説明は省略する。
【0032】
本実施形態において、要求101は、不図示の外部装置(例えば、
図4に示すアクセス監視部31及び省電力制御部32)から監視対象である記憶装置51に対して処理を実行することを要求するコマンド等の指示情報(指示データ)である。また、要求101は、複数種類の要求のうち、例えば、少なくとも所定の時間に亘って内容が変化しない情報(データ)の提供を要求するコマンドを含むこととする。
【0033】
係る情報の提供を要求するコマンドとしては、一例として、記憶装置51に情報の書き込む処理(以下、「転送」とも記す)を伴わないコマンド等を表すこととする。より具体的に、本実施形態において、係る情報の転送を伴わないコマンドとは、例えば、記憶装置51の死活状態を監視することを目的とするコマンドであることとする。但し、本実施形態を例に説明する本発明は、前述した例には限定されない。一例として、当該情報の転送を伴わないコマンドは、記憶装置51におけるリソースの使用状況を監視することを目的とするコマンドであってもよい。
【0034】
また、応答内容102は、要求101に対応する、少なくとも所定の時間に亘って内容が変化しない(つまり、内容が固定された)情報を含むこととする。
【0035】
より具体的に、応答内容102は、例えば、要求101に対する処理結果を示すレスポンスデータ及び要求101に対する処理が終了したことを示す終了ステータスのうち、少なくとも何れかを含むこととする。具体例として、終了ステータスとは、SCSIによって接続される記憶装置51から提供されたSCSI終了ステータスであることとする。ここで、SCSIは、Small Computer System Interfaceの略称である。即ち、応答内容102は、例えば、記憶装置51が省電力状態から通常状態に移行した際に、記憶装置51に記憶された情報と同期する必要の無い情報を含むこととする。
【0036】
以下の説明では、応答制御装置1を構成する各部の動作について説明する。
【0037】
監視部2は、外部装置から監視対象である記憶装置51に対して発行された要求101と、その要求101に対して記憶装置51から提供された応答内容102とを監視する。監視した結果、監視部2は、要求101に関する情報を、記憶部3に対して送信する。
【0038】
また、監視部2は、記憶装置51が動作状態を通常に動作している状態(通常状態)から省電力状態に移行することを要求されるのを検出した場合に、その移行の要求を検出したことを記憶部3に対して通知する。監視部2は、後述する記憶期間が経過した際に、記憶装置51の動作状態を通常状態から省電力状態に移行することを記憶装置51に対して要求する。
【0039】
より具体的に、例えば、監視部2は、要求101のうち、記憶装置51の動作状態を通常状態から省電力状態に移行することを要求する要求101としてコマンド(移行コマンド)を検出した場合には、その移行コマンドを検出したことを記憶部3に対して通知する。監視部2は、記憶期間が経過した際に、移行コマンドを記憶装置51に対して送信(本願では、「発行」とも記す)する。
【0040】
本実施形態において、要求101に関する情報は、少なくとも、記憶装置51を識別可能な識別情報、要求101を識別可能な識別情報及び要求101に対して記憶装置51から提供された応答内容102が関連付けられた情報を含むこととする。
【0041】
また、説明の便宜上、一例として、省電力状態とは、記憶装置51に含まれる記憶デバイスが備えるディスクの回転を停止する等の処理によって電力の消費を低減する状態を表すこととする。
【0042】
上述した本実施形態では、説明の便宜上、一例として、監視部2は、記憶装置51が動作状態を通常状態から省電力状態に移行することを要求されるのを検出する構成を例に説明する。しかしながら本発明に係る実施形態は、係る例に限定されない。係る要求は、監視部2と異なる他の装置によって検出される構成を採用してもよい。
【0043】
監視部2は、記憶装置51が省電力状態に移行した状態において、記憶装置51に対して発行された要求101を新たに検出した場合に、以下に示す応答内容を出力する処理(応答処理)を実行する。即ち、監視部2は、新たに検出した要求101が後述するレスポンス情報103に含まれるか否かを判別する。
【0044】
判別した結果、監視部2は、新たに検出した要求101がレスポンス情報103に含まれると判断した場合に、レスポンス情報103の中から新たに検出した要求101に関連付けられた応答内容102を抽出する。また、監視部2は、抽出した応答内容102を出力する。即ち、監視部2は、抽出した応答内容102を、新たに検出された要求101の発行元である外部装置に対して送信(応答)する。
【0045】
一方で、判別した結果、監視部2は、新たに検出した要求101がレスポンス情報103に含まれないと判断した場合には、その検出した要求101を記憶装置51に対して送信する。この場合に、記憶装置51は、監視部2から送信された要求101を受信するのに応じて、動作状態を省電力状態から通常状態に移行する制御部(不図示)を有することとする。その結果、記憶装置51は、要求101を受信するのに応じて、制御部によって省電力状態から通常状態に移行することができる。また、記憶装置51は、受信した要求101に対処することができる。或いは、記憶装置51が制御部を有していない場合には、監視部2は、当該新たに検出した要求101を記憶装置51に対して送信するに際して、動作状態を省電力状態から通常状態に移行することを記憶装置51に対して要求してもよい。これによって、記憶装置51は、当該要求に応じて、省電力状態から通常状態に移行することができる。その結果、記憶装置51が通常状態である場合において、監視部2は、新たに検出した要求101を記憶装置51に対して送信することができる。
【0046】
上述した本実施形態では、説明の便宜上、一例として、監視部2は、要求101を新たに検出した場合に、要求101に対して応答処理を実行する構成を例に説明する。しかしながら本発明に係る実施形態は、係る例に限定されない。監視部2は、発行された要求101のうち、記憶装置51に記憶された情報の転送を伴わないコマンドを新たに検出した場合に、応答処理を実行する構成を採用してもよい。これによって、監視部2は、応答処理に要する処理負荷を軽減することができる。
【0047】
以下の説明では、記憶部3の動作について説明する。
【0048】
記憶部3は、記憶装置51が動作状態を通常状態から省電力状態に移行することを要求された場合に、その移行の要求を検出した時点から特定の時点までの期間(記憶期間)に亘って、少なくとも、以下に示す情報をレスポンス情報103として記憶する。より具体的に、記憶部3は、監視部2によって、移行コマンドが検出された場合に、その移行コマンドが検出された時点から特定の時間経過後の時点までの期間に亘って、少なくとも、以下に示す情報を関連付けたレスポンス情報103を記憶する。即ち、記憶部3は、監視部2から移行コマンドを検出したことが通知されるのに応じて、記憶期間に亘って、少なくとも、以下に示す情報を関連付けた状態でレスポンス情報103として記憶する。
【0049】
・記憶装置51を識別可能な識別情報、
・記憶装置51に対して発行された要求101を識別可能な識別情報、及び、
・要求101に応じて記憶装置51から提供された応答内容102。
【0050】
但し、上述した本実施形態では、説明の便宜上、一例として、記憶部3は、係る記憶期間内に発行された要求101に関する情報をレスポンス情報103として記憶する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。記憶部3は、当該記憶期間内に発行された要求101のうち、記憶装置51に記憶されたデータの転送を伴わない要求101に関する情報をレスポンス情報103として記憶する構成を採用してもよい。その場合、記憶部3は、レスポンス情報103を記憶することによって容易に実現することができる。即ち、記憶部3は、記憶装置51の識別情報、データの転送を伴わない要求101の識別情報及びその要求101に応じて記憶装置51から提供された応答内容102を関連付けたレスポンス情報103を記憶する。これによって、記憶部3は、レスポンス情報103を記憶する処理に要する処理負荷を軽減することができる。
【0051】
本実施形態において、より具体的に、一例として、係る記憶期間は、外部装置から記憶装置51に対してデータの転送を伴わないコマンドが発行される時間間隔に基づいて、設定される構成を採用してもよい。より具体的に、例えば、当該記憶期間は、データの転送を伴わないコマンドが発行される時間間隔に応じて、移行コマンドが検出された時点から5分乃至1時間が経過した時点までの間に設定されることとする。
【0052】
上述した本実施形態において説明した監視部2及び記憶部3は、ソフトウェアプログラムの機能単位(処理単位、ソフトウェアモジュール)と捉えることができる。即ち、監視部2及び記憶部3は、例えば、ハードウェアドライバ(ディスクドライバ)に組み込まれ、且つ不図示のCPU(Central Processing Unit)により実行されることによって実現することもできる。
【0053】
このように本実施の形態に係る応答制御装置1によれば、少なくとも所定の時間に亘って内容が変化しない応答内容を要求に応じて提供する場合に、比較的に簡単な装置構成によって、記憶装置が省電力状態を効率よく維持することができる。その理由は、以下に述べる通りである。
【0054】
即ち、監視部2は、記憶装置51が省電力状態に移行した状態において、記憶装置51に対して発行された要求101を新たに検出した場合に、応答処理を実行するからである。即ち、監視部2は、新たに検出した要求101がレスポンス情報103に含まれる場合には、レスポンス情報103の中から、新たに検出した要求101に関連付けられた応答内容102を抽出する。監視部2は、記憶装置51が省電力状態に移行した状態であっても、抽出した応答内容102を出力することができるからである。即ち、監視部2は、新たに検出された要求101の発行元である外部装置に対して応答することができるからである。
【0055】
これによって、記憶装置51は、省電力状態を維持することができるので、電力の消費を極小化することができる。
【0056】
また、記憶部3は、記憶装置51が省電力状態に移行することを要求されるのを検出された場合に、その要求が検出された時点から特定の時点までの記憶期間に亘って、レスポンス情報103を記憶する。即ち、記憶部3は、少なくとも、要求101の識別情報と、そのコマンドに対応する、少なくとも所定の時間に亘って内容が変化しない応答内容102とを関連付けたレスポンス情報103を記憶する。そのため、記憶装置51の種別(例えば、製造メーカや機種)が異なる場合であっても、応答制御装置1は、レスポンス情報103に含まれる情報に基づいて、要求101に対して応答することができるからである。
【0057】
<第2の実施形態>
次に、上述した本発明の第1の実施形態に係る応答制御装置1を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【0058】
本発明の第2の実施形態における応答制御装置11について、
図2を参照して説明する。
【0059】
図2は、本発明の第2の実施形態における応答制御装置11の構成を示すブロック図である。
【0060】
図2において、応答制御装置11は、監視部12及び記憶部13を備える。
【0061】
より具体的に、監視部12は、記憶装置51が省電力状態である場合に、レスポンス情報103に含まれる要求(コマンドC)のうち、少なくとも何れかの要求(コマンドC)を記憶装置51に対して送信する。
【0062】
以下の説明では、説明の便宜上、レスポンス情報103に含まれる要求を、「コマンドC」と称することとする。また、以下の説明では、コマンドCに応じて記憶装置51から提供された応答内容を、「応答内容R」と称することとする。
【0063】
より具体的に、監視部12は、レスポンス情報103を参照する。監視部12は、レスポンス情報103に含まれるコマンドCの識別情報と記憶装置51の識別情報とを抽出する。監視部12は、抽出した情報に基づいて、記憶装置51に対してコマンドCを送信する。この場合に、記憶装置51の制御部(不図示)は、監視部12から送信されたコマンドCを受信するのに応じて、省電力状態から通常状態に移行することとする。或いは、記憶装置51が制御部を有していない場合には、監視部12は、コマンドCを記憶装置51に対して送信するに際して、動作状態を省電力状態から通常状態に移行することを記憶装置51に対して要求してもよい。これによって、記憶装置51は、当該要求に応じて、省電力状態から通常状態に移行することとする。その結果、記憶装置51が通常状態である場合において、監視部12は、コマンドCを記憶装置51に対して送信することができる。
【0064】
本実施形態において、例えば、監視部12は、レスポンス情報103に含まれる全てのコマンドCを、記憶装置51に対して送信してもよい。或いは、監視部12は、レスポンス情報103に含まれるコマンドCのうち、特定のコマンドCを記憶装置51に対して送信してもよい。即ち、監視部12は、レスポンス情報103に含まれる応答内容102が更新を必要とする情報である場合に、その応答内容102に関連付けられたコマンドCを、記憶装置51に対して送信することとする。
【0065】
これによって、記憶装置51は、監視部12からコマンドCを受信するのに応じて、受信したコマンドCに対して応答内容Rを提供することができる。
【0066】
監視部12は、送信したコマンドCに対して記憶装置51から提供された応答内容Rを受信する。監視部12は、コマンドCに関する情報を、記憶部13に対して送信する。監視部12は、送信した情報に基づいて、レスポンス情報103を更新するよう記憶部13に対して要求する。監視部12は、記憶装置51の動作状態を通常状態から省電力状態に移行することを記憶装置51に対して要求する。
【0067】
より具体的に、監視部12は、コマンドCに関する情報として、記憶装置51の識別情報、送信したコマンドCの識別情報及びコマンドCに対して記憶装置51から提供された応答内容Rが関連付けられた情報を、記憶部3に対して送信することとする。また、監視部12は、移行コマンドを、記憶装置51に対して送信することとする。
【0068】
監視部12から移行コマンドを受信することによって、記憶装置51は、動作状態を通常状態から省電力状態に移行することができる。
【0069】
以下の説明では、一例として、監視部12は、以下に示すタイミングを契機として、コマンドCを記憶装置51に対して送信することとする。即ち、監視部12は、例えば、所定の時間間隔(更新間隔)毎に、コマンドCを記憶装置51に対して送信してもよい。または、例えば、監視部12は、ある時間間隔毎に、データの転送を伴わないコマンドが記憶装置51に対して発行される場合には、その時間間隔より短い時間間隔を更新間隔として求めることとする。監視部12は、求めた更新間隔毎に、コマンドCを記憶装置51に対して送信してもよい。
【0070】
以下の説明では、記憶部13の動作について説明する。
【0071】
記憶部13は、監視部12からレスポンス情報103を更新するよう要求されるのに応じて、コマンドCに対して記憶装置51から提供された応答内容Rに基づいて、レスポンス情報103を更新する。即ち、記憶部13は、レスポンス情報103に含まれるコマンドCに関連付けられた応答内容102に関する情報を更新する。
【0072】
より具体的に、記憶部13は、監視部12からコマンドCに関する情報を受信する。また、記憶部13は、受信したコマンドCに関する情報に基づいて、レスポンス情報103に含まれるコマンドCに関連付けられた応答内容102に関する情報を更新する。
【0073】
このように本実施の形態に係る応答制御装置11によれば、第1の実施形態において説明した効果を享受できると共に、さらに、要求101に対する応答内容として更新された情報を要求される場合であっても、その要求に対処することができる。
【0074】
その理由は、監視部12は、記憶装置51が省電力状態に移行した状態において、レスポンス情報103に含まれるコマンドCのうち、少なくとも何れかのコマンドCを記憶装置51に対して送信する。記憶部13は、監視部12によって送信されたコマンドCに対して記憶装置51から提供された応答内容Rに基づいて、レスポンス情報103を更新することができるからである。即ち、記憶部13は、レスポンス情報103に含まれるコマンドCに関連付けられた応答内容102に関する情報を更新することができるからである。
【0075】
より具体的に、特許文献1に開示された仮想コマンド応答部は、例えば、データ転送を伴わないコマンドとしてHDDのスマート(S.M.A.R.T)情報を要求するコマンドが発行された場合に、その要求に対処することができない虞がある。その理由は、スマート情報は、HDDの稼働状況に応じて更新される情報である。しかしながら、仮想コマンド応答部は、スリープ状態に移行したHDDから最新のスマート情報を得ることができない。或いは、スリープ状態に移行する前のスマート情報を得られた場合であっても、そのスマート情報は、例えば、管理者が必要とする時点の情報でない可能性もあるからである。ここで、S.M.A.R.Tとは、Self−Monitoring Analysis and Reporting Technologyの略称である。
【0076】
これに対して、応答制御装置11は、更新間隔毎に、レスポンス情報103に含まれる情報を更新することができる。そのため、応答制御装置11は、その更新された情報に基づいて、要求101に対して応答することができる訳である。
【0077】
<第3の実施形態>
次に、上述した本発明の第2の実施形態に係る応答制御装置11を基本とする第3の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【0078】
本発明の第3の実施形態における応答制御装置11について、
図3乃至
図9を参照して説明する。
【0079】
図3は、本発明の第3の実施形態における応答制御装置11を含むサーバ装置30の構成を示すブロック図である。
【0080】
図3において、サーバ装置30は、アクセス監視部31、省電力制御部32及び応答制御装置11を有する。応答制御装置11は、監視部12及び記憶部13を備える。また、応答制御装置11とディスクロージャー61とは、ディスクインタフェース50を介して通信可能に接続される。
【0081】
ディスクロージャー61は、1つ以上の記憶デバイスを有する。即ち、ディスクロージャー61は、1つ以上のHDD62(HDD62−1乃至HDD62−n)を有する。但し、nは、自然数である。HDDは、Hard Disk Driveの略称である。
【0082】
ディスクロージャー61は、上述した各実施形態において説明した記憶装置51に相当する。HDD62は、コンピュータによるデータの読み書きが可能な不揮発性の記憶デバイスである。
【0083】
以下の説明では、説明の便宜上、HDD62−1乃至HDD62−nを、総称して、単に、HDD62と称することとする。また、個々のHDD62を区別して記述する必要がある場合には、以下の説明では、HDD62−1、HDD62−2、・・・、HDD62−nと称することとする。
【0084】
HDD62を有するディスクロージャー61の動作自体は、現在では一般的な技術を採用することができる。そのため、本実施形態における詳細な説明は省略する。
【0085】
アクセス監視部31は、ディスクロージャー61に含まれるHDD62を監視する。より具体的に、アクセス監視部31は、例えば、所定の時間間隔毎に、HDD62が正常に動作しているか否かを判定することを目的とする死活監視コマンドをHDD62に対して発行する。
【0086】
以下の説明では、説明の便宜上、ディスクロージャー61に含まれるHDD62を、単に、「HDD62」と称することとする。
【0087】
省電力制御部32は、HDD62に対して発行されたコマンドを監視する。また、省電力制御部32は、例えば、一定の時間に亘って、HDD62のうち、特定のHDD62に対してコマンドが発行されていないと判断した場合に、省電力状態に移行することを要求する移行コマンドを、特定のHDD62に対して発行する。
【0088】
以下の説明では、より具体的に、本実施形態における応答制御装置11の動作について説明する。
【0089】
図4は、本発明の第3の実施形態における応答制御装置11が行う動作を示すフローチャートである。係るフローチャートに沿って応答制御装置11の処理手順を説明する。
【0090】
以下の説明では、説明の便宜上、一例として、応答制御装置11は、所定の時間間隔毎に、
図4に示す処理を繰り返し実行することとする。
【0091】
但し、ステップS2、ステップS4、ステップS6及びステップS8に示す処理については、
図5乃至
図9を参照して詳細に後述する。
【0092】
また、以下の説明では、アクセス監視部31からHDD62に対してコマンド104(つまり、コマンド104は、上述した各実施形態において説明した要求101に相当する)が発行されることとする。以下の説明では、省電力制御部32からHDD62に対して移行コマンドが発行されることとする。
【0093】
監視部12は、アクセス監視部31からコマンド104を受信したか否かを判別する(ステップS1)。判別した結果、監視部12は、コマンド104を受信したと判断した場合に、処理をステップS2に進める(ステップS1において「YES」)。一方で、監視部12は、コマンド104を受信していないと判断した場合には、処理をステップS3に進める(ステップS1において「NO」)。
【0094】
コマンド104を受信したと判断した場合に、応答制御装置11は、応答処理及びコマンド送信処理を実行する(ステップS2)。
【0095】
コマンド104を受信していないと判断した場合には、コマンド104に応じてHDD62から提供された応答内容102を受信したか否かを判別する(ステップS3)。判別した結果、監視部12は、応答内容102を受信したと判断した場合に、処理をステップS4に進める(ステップS3において「YES」)。一方で、監視部12は、応答内容102を受信していないと判断した場合には、処理をステップS5に進める(ステップS3において「NO」)。
【0096】
応答内容102を受信したと判断した場合に、応答制御装置11は、応答受信処理を実行する(ステップS4)。
【0097】
応答内容102を受信していないと判断した場合に、監視部12は、記憶部13がコマンド104に関する情報を記憶する処理を実行中か否かを判別する。換言すると、監視部12は、記憶部13がレスポンス情報103を記憶中か否かを判別する(ステップS5)。
【0098】
判別した結果、監視部12は、記憶部13がコマンド104に関する情報の記憶処理を実行中であると判断した場合に、処理をステップS6に進める(ステップS5において「YES」)。一方で、監視部12は、記憶部13がコマンド104に関する情報の記憶処理を実行中でないと判断した場合には、処理をステップS7に進める(ステップS5において「NO」)。
【0099】
記憶処理を実行中であると判断した場合に、監視部12は、移行コマンドの送信処理を実行する(ステップS6)。
【0100】
記憶処理を実行中でないと判断した場合には、監視部12は、HDD62の動作状態が省電力状態か否かを判別する(ステップS7)。
【0101】
判別した結果、監視部12は、ステップS7において、HDD62が省電力状態であると判断した場合に、処理をステップS8に進める(ステップS7において「YES」)。一方で、監視部12は、ステップS7において、HDD62が省電力状態でないと判断した場合には、処理をステップS1に戻す。即ち、監視部12は、HDD62が通常状態であると判断した場合には、ステップS1乃至ステップS8に示す処理を繰り返す(ステップS7において「NO」)。
【0102】
より具体的に、監視部12は、HDD62の動作状態が省電力状態であることを示す情報(フラグ)に基づいて、HDD62の動作状態が省電力状態か否かを判別することとする。
【0103】
ここで、省電力状態であることを示す情報(フラグ)は、監視部12がHDD62に対して移行コマンドを送信することによって、HDD62が通常状態から省電力状態に移行したことを示す情報である。また、省電力状態であることを示す情報(フラグ)は、例えば、監視部12によって保持される構成を採用してもよい。
【0104】
省電力状態であると判断した場合に、応答制御装置11は、レスポンス情報103の更新処理を実行する(ステップS8)。
【0105】
(応答処理及びコマンド送信処理について)
以下の説明では、
図4のステップS2に示す応答処理及びコマンド送信処理について、
図5を参照して詳細に説明する。
【0106】
図5は、本発明の第3の実施形態における応答制御装置11が行う応答処理及びコマンド送信処理を示すフローチャートである。係るフローチャートに沿って応答制御装置11の動作手順を説明する。
【0107】
監視部12は、アクセス監視部31から発行されたコマンド104がHDD62に記憶されたデータの転送を伴うコマンドか否かを判別する(ステップS11)。
【0108】
ここで、データの転送を伴うコマンドとは、例えば、HDD62に記憶されたデータの書き込む処理を要求するコマンドである。
【0109】
判別した結果、監視部12は、データの転送を伴うコマンドであると判断した場合に、処理をステップS14に進める(ステップS11において「YES」)。一方で、監視部12は、データの転送を伴うコマンドでないと判断した場合には、処理をステップS12に進める(ステップS11において「NO」)。
【0110】
データの転送を伴うコマンドであると判断した場合に、監視部12は、HDD62が省電力状態であることを示す情報(フラグ)を解除する。また、監視部12は、後述するステップS13において設定される記憶期間を解除する。即ち、監視部12は、HDD62が省電力状態であることを示す情報(フラグ)と、コマンド記憶タイマとをリセットする。監視部12は、処理をステップS21に進める(ステップS14)。
【0111】
ここで、コマンド記憶タイマとは、監視部12によって移行コマンドが検出された時点から特定の時点までの記憶期間を計時する手段である。コマンド記憶タイマは、例えば、監視部12において動作する構成を採用してもよい。
【0112】
データの転送を伴うコマンドでないと判断した場合に、監視部12は、コマンド104がHDD62の動作状態を通常状態から省電力状態に移行することを要求するコマンド(移行コマンド)か否かを判別する(ステップS12)。
【0113】
判別した結果、監視部12は、移行コマンドであると判断した場合に、処理をステップS13に進める(ステップS12において「YES」)。一方で、監視部12は、移行コマンドでないと判断した場合には、処理をステップS15に進める(ステップS12において「NO」)。
【0114】
移行コマンドであると判断した場合に、監視部12は、係る移行コマンドを記憶する。また、監視部12は、移行コマンドを検出した時点から特定の時点までの記憶期間を設定する。即ち、監視部12は、記憶期間としてコマンド記憶タイマをセットする(ステップS13)。
【0115】
移行コマンドでないと判断した場合には、監視部12は、コマンド104に関する情報がレスポンス情報103に含まれているか否かを判別する。即ち、監視部12は、コマンド104に関する情報がレスポンス情報103に記憶されているか否かを判別する(ステップS15)。
【0116】
より具体的に、監視部12は、アクセス監視部31から発行されたコマンド104の識別情報に基づいて、レスポンス情報103を参照する。参照した結果、監視部12は、レスポンス情報103にコマンド104の識別情報と、そのコマンド104に対応する応答内容102と、HDD62の識別情報(識別ID:identifier)とが含まれているか否かを判別する。
【0117】
判別した結果、監視部12は、コマンド104に関する情報がレスポンス情報103に含まれていると判断した場合に、処理をステップS16に進める(ステップS15において「YES」)。一方で、監視部12は、コマンド104に関する情報がレスポンス情報103に含まれていないと判断した場合には、処理をステップS18に進める(ステップS15において「NO」)。
【0118】
レスポンス情報103に含まれていると判断した場合に、監視部12は、HDD62の動作状態が省電力状態か否かを判別する(ステップS16)。
【0119】
判別した結果、監視部12は、HDD62の動作状態が省電力状態であると判断した場合に、処理をステップS17に進める(ステップS16において「YES」)。一方で、監視部12は、HDD62の動作状態が省電力状態でないと判断した場合には、処理をステップS18に進める(ステップS16において「NO」)。
【0120】
省電力状態であると判断した場合に、監視部12は、コマンド104の識別情報に基づいて、レスポンス情報103を参照する。監視部12は、レスポンス情報103の中から、コマンド104の識別情報に関連付けられた応答内容102を抽出する。監視部12は、抽出した応答内容102を出力する。即ち、監視部12は、コマンド104の発行元であるアクセス監視部31に対して応答する(ステップS17)。
【0121】
ステップS18において、監視部12は、コマンド104の識別情報がレスポンス情報103に含まれているか否かを判別する。
【0122】
判別した結果、監視部12は、コマンド104の識別情報がレスポンス情報103に含まれていると判断した場合に、処理をステップS21に進める(ステップS18において「YES」)。一方で、監視部12は、コマンド104の識別情報がレスポンス情報103に含まれていないと判断した場合には、処理をステップS19に進める(ステップS18において「NO」)。
【0123】
コマンド104の識別情報がレスポンス情報103に含まれていないと判断した場合に、監視部12は、コマンド104に関する情報をレスポンス情報103に記憶する記憶期間内か否かを判別する(ステップS19)。
【0124】
より具体的に、監視部12は、ステップS13においてセットしたコマンド記憶タイマが値「0」より大きいか否かを判別する。
【0125】
判別した結果、監視部12は、記憶期間内であると判断した場合に、処理をステップS20に進める(ステップS19において「YES」)。一方で、監視部12は、記憶期間内でないと判断した場合には、処理をステップS21に進める(ステップS19において「NO」)。
【0126】
記憶期間内であると判断した場合に、記憶部13は、HDD62の識別IDと、コマンド104の識別情報とを関連付けてレスポンス情報103に記憶する(ステップS20)。
【0127】
監視部12は、コマンド104をHDD62に対して送信する(ステップS21)。
【0128】
これによって、HDD62は、監視部12からコマンド104を受信する。また、HDD62は、受信したコマンド104を実行することができる。HDD62は、その実行結果を示す応答内容102を、監視部12に対して送信する。
【0129】
(応答受信処理について)
以下の説明では、
図4のステップS4に示す応答受信処理について、
図6及び
図7を参照して詳細に説明する。
【0130】
図6は、本発明の第3の実施形態における応答制御装置11がHDD62から提供された応答内容102を受信した際の応答受信処理を示すフローチャートである。係るフローチャートに沿って応答制御装置11の動作手順を説明する。
【0131】
監視部12は、HDD62から提供された応答内容102を受信するのに応じて、その応答内容102に対応するコマンド104の識別情報がレスポンス情報103に含まれているか否かを判別する。即ち、監視部12は、コマンド104の識別情報がレスポンス情報103に記憶されているか否かを判別する(ステップS31)。
【0132】
判別した結果、監視部12は、コマンド104の識別情報がレスポンス情報103に含まれていると判断した場合に、処理をステップS32に進める(ステップS31において「YES」)。一方で、監視部12は、コマンド104の識別情報がレスポンス情報103に含まれていないと判断した場合には、処理を終了する(ステップS31において「NO」)。
【0133】
レスポンス情報103に含まれていると判断した場合に、監視部12は、係る応答内容102がレスポンス情報103に含まれているか否かを判別する。即ち、監視部12は、応答内容102がレスポンス情報103に記憶されているか否かを判別する(ステップS32)。
【0134】
判別した結果、監視部12は、応答内容102がレスポンス情報103に含まれていると判断した場合に、処理を終了する(ステップS32において「YES」)。一方で、監視部12は、応答内容102がレスポンス情報103に含まれていないと判断した場合には、応答内容102をレスポンス情報103に記憶するように記憶部13に対して要求する。監視部12は、処理をステップS33に進める(ステップS32において「NO」)。
【0135】
記憶部13は、監視部12からの要求に応じて、
図5のステップS20において記憶されたHDD62の識別ID及びコマンド104の識別情報と、応答内容102とを関連付けてレスポンス情報103に記憶する(ステップS33)。
【0136】
以下の説明では、より具体的に、記憶部13が記憶するレスポンス情報103について、
図7を参照して説明する。
【0137】
図7は、本発明の第3の実施形態における記憶部13によって記憶されたレスポンス情報103を具体的に例示する図である。
【0138】
図7に表(テーブル)形式で概念的に示すレスポンス情報103において、1列目は、コマンド104が発行されたHDD62を識別可能な識別IDを表す。2列目は、コマンド104の識別情報である。3列目は、コマンド104に対してHDD62から提供された応答内容(レスポンスデータ)102である。
【0139】
より具体的に、以下の説明では、
図7に示すデータセットの1行目に注目して説明する。当該データセットの1行目に示す情報は、ID「62−4」によって識別されるHDD62−4に対して「コマンド1」が発行されたことを表す。また、当該情報は、HDD62−4が「コマンド1」に対する応答内容102として「レスポンス1−1」を提供したことを表す。
【0140】
図7に示す具体例のように、記憶部13は、コマンド104毎に、HDD62のID、コマンド104の識別情報及び応答内容102を関連付けた状態でレスポンス情報103として記憶する。
【0141】
(移行コマンドの送信処理について)
以下の説明では、
図4のステップS6に示す移行コマンドの送信処理について、
図8を参照して詳細に説明する。
【0142】
図8は、本発明の第3の実施形態における応答制御装置11が行う移行コマンドの送信処理を示すフローチャートである。係るフローチャートに沿って応答制御装置11の動作手順を説明する。
【0143】
監視部12は、記憶期間内か否かを判別する(ステップS41)。より具体的に、監視部12は、
図5のステップS13においてセットしたコマンド記憶タイマが値「0」より大きいか否かを判別する。
【0144】
判別した結果、監視部12は、記憶期間内であると判断した場合に、処理をステップS42に進める(ステップS41において「YES」)。一方で、監視部12は、記憶期間内でないと判断した場合には、処理をステップS43に進める(ステップS41において「NO」)。
【0145】
記憶期間内であると判断した場合に、監視部12は、コマンド記憶タイマを減算する(ステップS42)。より具体的に、例えば、監視部12は、コマンド記憶タイマが示す値から値「1」を減算することとする。
【0146】
記憶期間内でないと判断した場合に、監視部12は、
図5のステップS13において設定した記憶期間を解除する。即ち、監視部12は、コマンド記憶タイマをリセットする(ステップS43)。
【0147】
監視部12は、HDD62の動作状態が省電力状態であることを示す情報(フラグ)を設定(セット)する(ステップS44)。監視部12は、HDD62に対して移行コマンドを送信する(ステップS45)。
【0148】
監視部12は、コマンド104をHDD62に対して送信する時間間隔(更新間隔)を設定する。即ち、監視部12は、コマンド104をHDD62に対して送信する更新間隔として監視タイマをセットする(ステップS46)。
【0149】
ここで、監視タイマとは、レスポンス情報103に含まれるコマンド104のうち、少なくとも何れかのコマンド104をHDD62に対して送信する更新間隔を計時する手段である。また、監視タイマは、例えば、監視部12において動作する構成を採用してもよい。
【0150】
(レスポンス情報103の更新処理について)
以下の説明では、
図4のステップS8に示すレスポンス情報103の更新処理について、
図9を参照して詳細に説明する。
【0151】
図9は、本発明の第3の実施形態における応答制御装置11が行うレスポンス情報103の更新処理を示すフローチャートである。係るフローチャートに沿って応答制御装置11の動作手順を説明する。
【0152】
監視部12は、HDD62の動作状態が省電力状態か否かを判別する(ステップS51)。
【0153】
判別した結果、監視部12は、HDD62の動作状態が省電力状態であると判断した場合に、処理をステップS52に進める(ステップS51において「YES」)。一方で、監視部12は、HDD62の動作状態が省電力状態でないと判断した場合には、処理を終了する(ステップS51において「NO」)。
【0154】
HDD62の動作状態が省電力状態であると判断した場合に、監視部12は、
図8のステップS46において設定した監視タイマを減算する(ステップS52)。より具体的に、例えば、監視部12は、監視タイマが示す値から値「1」を減算することとする。
【0155】
監視部12は、更新間隔達したか否かを判別する(ステップS53)。より具体的に、監視部12は、セットした監視タイマが示す値が値「0」に達したか否かを判別する。
【0156】
判別した結果、監視部12は、監視タイマが示す値が値「0」に達した(監視タイマ=0)と判断した場合に、処理をステップS54に進める(ステップS53において「YES」)。一方で、監視部12は、監視タイマが示す値が値「0」に達していないと判断した場合には、処理を終了する(ステップS53において「NO」)。
【0157】
監視部12は、コマンド104をHDD62に対して送信する更新間隔を、改めて設定する。即ち、監視部12は、コマンド104をHDD62に対して送信する更新間隔として監視タイマを再セットする(ステップS54)。
【0158】
監視部12は、レスポンス情報103に含まれるコマンド104のうち、少なくとも何れかのコマンド104をHDD62に対して送信する(ステップS55)。
【0159】
監視部12は、送信したコマンド104に応じてHDD62から提供された応答内容102を受信する。監視部12は、HDD62の識別ID、送信したコマンド104の識別情報及びコマンド104に応じてHDD62から提供された応答内容102が関連付けられた情報を、記憶部13に対して送信する。監視部12は、送信した情報に基づいて、レスポンス情報103を更新するよう記憶部13に対して要求する(ステップS56)。監視部12は、
図5のステップS13において記憶した移行コマンドを、HDD62に対して送信する(ステップS57)。
【0160】
記憶部13は、監視部12から受信した、HDD62の識別ID、コマンド104の識別情報及び応答内容102に基づいて、レスポンス情報103に含まれる情報を更新する。即ち、記憶部13は、レスポンス情報103に含まれるコマンド104に関連付けられた応答内容102に関する情報を更新する(ステップS58)。
【0161】
このように本実施の形態に係る応答制御装置11によれば、各実施形態において説明した効果を享受できる。
【0162】
監視部12は、新たに検出したコマンド104がレスポンス情報103に含まれる場合には、レスポンス情報103に含まれる応答内容102に基づいて、新たに検出されたコマンド104の発行元であるアクセス監視部31に対して応答することができるからである。また、監視部12は、更新間隔毎に、レスポンス情報103に含まれる情報を更新するよう記憶部13を制御することができるからである。
【0163】
これによって、記憶部13は、監視部12が移行コマンドを検出した場合に、記憶期間に亘って、少なくとも、コマンド104の識別情報及び応答内容102を関連付けたレスポンス情報103を記憶することができる。また、記憶部13は、監視部12が得た情報に基づいて、レスポンス情報103を更新することができるからである。
【0164】
(ハードウェア構成例)
上述した実施形態において図面(
図1乃至
図3)に示した各部のうち、少なくとも監視部、記憶部は、ソフトウェアプログラムの機能単位(処理単位、ソフトウェアモジュール)と捉えることができる。これらの各ソフトウェアモジュールは、専用のハードウェアによって実現してもよい。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、
図10を参照して説明する。
【0165】
図10は、本発明の模範的な実施形態に係る応答制御装置において、少なくとも監視部などの機能を実行可能な情報処理装置(コンピュータ)300の構成を例示的に説明する図である。即ち、
図10は、コンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。このコンピュータは、応答制御装置1(
図1)、或いは、応答制御装置11(
図2及び
図3)のうち、の全体または一部の機能を実現可能である。
【0166】
図10に示した情報処理装置300は、以下の構成がバス(通信線)306を介して接続された一般的なコンピュータである。
【0167】
・CPU(Central_Processing_Unit)301、
・ROM(Read_Only_Memory)302、
・RAM(Random_Access_Memory)303、
・ハードディスク(記憶装置)304、
・外部装置との通信インタフェース(
図10において通信I/F(Interface)と示す)305。
【0168】
そして、上述した実施形態を例に説明した本発明は、以下の手順によって達成される。即ち、
図10に示した情報処理装置300に対して、係る実施形態において参照したブロック構成図(
図1乃至
図3)或いはフローチャート(
図4乃至
図6、
図8及び
図9)の機能を実現可能なコンピュータ・プログラムが供給される。その後、そのコンピュータ・プログラムは、当該ハードウェアのCPU301に読み出されて実行されることによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ(RAM303)またはハードディスク304等の不揮発性の記憶デバイスに格納すれば良い。
【0169】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、現在では一般的な手順を採用することができる。例えば、供給方法は、CD−ROM等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等である。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いはそのコードが格納された記録媒体によって構成されると捉えることができる。
【0170】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。