(57)【要約】【課題】低消費電力化とアクセスに対する速い応答性を両立させると共に、起動動作や停止動作の際の消費電流の上昇を抑えることができるディスクアレイ制御装置を提供する。【解決手段】ディスクアレイ制御装置１は、ディスクアレイに備えられた複数のハードディスクドライブ３のディスク状態を各々に制御することができる。回転制御時刻決定部１２は、ハードディスクドライブ３について予め設定された各々の利用時刻およびその利用時刻の相互関係に基づいて、ハードディスクドライブ３のディスク状態を制御する時刻を決定する。ハードディスクドライブ制御部１４は、回転制御時刻決定部１２により決定された時刻にハードディスクドライブ３のディスク状態を制御する。【選択図】図１
2008015662.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイに備えられた複数のハードディスクドライブのディスク状態を各々に制御するディスクアレイ制御装置であって、
利用の開始および停止に関する予め設定された時刻情報に基づいて前記複数のハードディスクドライブの各々のディスク状態を制御する制御時刻を求め、求めた該制御時刻を該制御時刻同士の相互関係に基づいて調整する回転制御時刻決定部と、
前記回転制御時刻決定部により決定された前記制御時刻にハードディスクドライブのディスク状態を制御するハードディスクドライブ制御部と、を有するディスクアレイ制御装置。
【請求項２】
前記複数のハードディスクドライブによる記憶領域上に任意の論理ユニットが設定されており、
前記予め設定された時刻情報は前記論理ユニットに対応付けて設定された利用時刻であり、
前記回転制御時刻決定部は、前記ハードディスクドライブと前記論理ユニットの対応付けと、前記論理ユニットに対して設定された利用時刻および該利用時刻の相互関係とから、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項１に記載のディスクアレイ制御装置。
【請求項３】
前記利用時刻には利用開始時刻と利用終了時刻が含まれ、
前記回転制御時刻決定部は、設定された前記利用開始時刻から前記利用終了時刻の間は対応するハードディスクドライブを回転状態にし、かつ同時にディスク状態を変化させるハードディスクドライブの数を制限するように、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項１または２に記載のディスクアレイ制御装置。
【請求項４】
前記ハードディスクドライブ制御部による制御で前記ハードディスクドライブのディスク状態の変化が開始されてから終了するまでに要した状態変化時間を測定する状態変化時間学習部を更に有し、
前記回転制御時刻決定部は、前記ハードディスクドライブの各々の前記制御時刻を決定するとき、前記状態変化時間学習部で測定された前記状態変化時間を利用する、請求項１から３のいずれか１項に記載のディスクアレイ制御装置。
【請求項５】
ディスクアレイに備えられた複数のハードディスクドライブのディスク状態を各々に制御するためのディスクアレイ制御方法であって、
利用の開始および停止に関する予め設定された時刻情報に基づいて前記複数のハードディスクドライブの各々のディスク状態を制御する制御時刻を求め、求めた該制御時刻を該制御時刻同士の相互関係に基づいて調整し、
決定された前記制御時刻にハードディスクドライブのディスク状態を制御する、ディスクアレイ制御方法。
【請求項６】
前記複数のハードディスクドライブによる記憶領域上に任意の論理ユニットが設定されており、前記予め設定された時刻情報は前記論理ユニットに対応付けて設定された利用時刻であり、
前記ハードディスクドライブと前記論理ユニットの対応付けと、前記論理ユニットに対して設定された利用時刻および該利用時刻の相互関係とから、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項５に記載のディスクアレイ制御方法。
【請求項７】
前記利用時刻として利用開始時刻と利用終了時刻が設定され、
設定された前記利用開始時刻から前記利用終了時刻の間は対応するハードディスクドライブを回転状態にし、かつ同時にディスク状態を変化させるハードディスクドライブの数を制限するように、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項５または６に記載のディスクアレイ制御方法。
【請求項８】
前記ハードディスクドライブのディスク状態の変化が開始されてから終了するまでに要した状態変化時間を測定し、
測定された前記状態変化時間を、前記ハードディスクドライブの各々の前記制御時刻を決定するときに利用する、請求項５から７のいずれか１項に記載のディスクアレイ制御方法。
【請求項９】
コンピュータを、ディスクアレイに備えられた複数のハードディスクドライブのディスク状態を各々に制御するディスクアレイ制御装置として動作させるためのプログラムであって、
利用の開始および停止に関する予め設定された時刻情報に基づいて前記複数のハードディスクドライブの各々のディスク状態を制御する制御時刻を求め、求めた該制御時刻を該制御時刻同士の相互関係に基づいて調整する手順と、
決定された前記制御時刻にハードディスクドライブのディスク状態を制御する手順と、をコンピュータに実行させるためのプログラム。
【請求項１０】
前記複数のハードディスクドライブによる記憶領域上に任意の論理ユニットが設定されており、前記予め設定された時刻情報は前記論理ユニットに対応付けて設定された利用時刻であり、
前記ハードディスクドライブと前記論理ユニットの対応付けと、前記論理ユニットに対して設定された利用時刻および該利用時刻の相互関係とから、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項９に記載のプログラム。
【請求項１１】
前記利用時刻として利用開始時刻と利用終了時刻が設定され、
設定された前記利用開始時刻から前記利用終了時刻の間は対応するハードディスクドライブを回転状態にし、かつ同時にディスク状態を変化させるハードディスクドライブの数を制限するように、前記ハードディスクドライブの各々の前記制御時刻を決定する、請求項９または１０に記載のプログラム。
【請求項１２】
前記ハードディスクドライブのディスク状態の変化が開始されてから終了するまでに要した状態変化時間を測定し、
測定された前記状態変化時間を、前記ハードディスクドライブの各々の前記制御時刻を決定するときに利用する、請求項９から１１のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のハードディスクドライブを備えたディスクアレイ装置を制御するディスクアレイ制御装置に関する。
【背景技術】
【０００２】
従来、ディスクアレイ装置の消費電力を低減するために様々な制御が行われている。例えば、一定時間アクセスの無いハードディスクドライブ（以下、ＨＤＤと表記する）の電源をオフしたり、一定時間アクセスの無いＨＤＤのディスクの回転を停止したりしてディスクアレイ装置の消費電力を低減させる技術が知られている。その場合、アクセスがあると、ＨＤＤの電源をオンしたりディスクの回転を開始したりして、ＨＤＤへのアクセスを可能な状態にする。
【０００３】
例えば、特許文献１に記載されているディスクアレイ装置では、あるＨＤＤ群に対する上位装置からのアクセスが所定時間無かったら、そのＨＤＤ群を節電モードにする。このような技術は、近年ではＭＡＩＤ（Ｍａｓｓｉｖｅ  Ａｒｒａｙ  ｏｆ  Ｉｄｌｅ  Ｄｉｓｋ）として知られている（非特許文献１参照）。
【０００４】
このＭＡＩＤは、主に、大容量のディスクバックアップやディスクアーカイブ向け用途の技術として注目されている。ただし、アクセスの無い時間帯にＨＤＤの電源をオフしたりディスクの回転を停止したりするのは、ディスクバックアップやディスクアーカイブだけでなく、ＨＤＤへのアクセスが無い状態が比較的長いシステムの消費電力を低減するのに広く有効である。
【０００５】
また、特許文献２には、ビデオ信号およびオーディオ信号をＨＤＤに記録し、再生するディスク録再装置が開示されている。この特許文献２はディスクアレイ装置に関するものではないが、その段落００３７には、録画や再生の予約が設定されると、その録画や再生によりＨＤＤへのアクセスが開始される時刻に合わせてＨＤＤを起動してウォームアップしておくという技術が開示されている。
【特許文献１】特開２０００−２９３３１４号公報
【特許文献２】特開２００２−２５１８１６号公報
【非特許文献１】Ｄｅｎｎｉｓ  Ｃｏｌａｒｅｌｌｉ，  Ｄｉｒｋ  Ｇｒｕｎｗａｌｄ  ａｎｄ  Ｍｉｃｈａｅｌ  Ｎｅｕｆｅｌｄ．  “Ｔｈｅ  Ｃａｓｅ  ｆｏｒ  Ｍａｓｓｉｖｅ  Ａｒｒａｙｓ  ｏｆ  Ｉｄｌｅ  Ｄｉｓｋｓ  （ＭＡＩＤ）”，Ｊａｎｕａｒｙ  ７，２００２
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ディスクアレイ装置内に１日中アクセスされるＨＤＤ群と夜間にはアクセスの無いＨＤＤ群とが混在していることがある。その場合、非特許文献１や特許文献１にあるようなＭＡＩＤを用いれば、夜間にアクセスの無いＨＤＤ群のディスクを停止させておくことができ、消費電力を低減することができる。
【０００７】
しかし、ディスクが停止している状態から回転させてアクセスが可能な状態にするには一般的に数十秒間程度はかかる。そのため、ディスクが停止しているＨＤＤへのアクセスに対する応答は、通常動作しているＨＤＤへのアクセスに対する応答と比べて非常に遅かった。
【０００８】
また、停止しているディスクを回転させる動作（起動動作）および回転しているディスクを停止させる動作（停止動作）には通常時の動作と比べて大きな電流が必要である。
【０００９】
それまでディスクが停止していた複数のＨＤＤにほぼ同時にアクセスが発生すれば、複数のＨＤＤについて同時に起動動作が生じる。また、ほぼ同時にアクセスされたＨＤＤがその後一定時間アクセスされなければ、それら複数のＨＤＤについてほぼ同時に停止動作が生じる。複数のＨＤＤについて起動動作あるいは停止動作が短時間に集中すると、一時的に消費電流が非常に高い状態になってしまうことがあった。また、集中の程度によっては、それが原因で消費電流が装置の許容値を超えてしまう可能性もあった。
【００１０】
これに対して、特許文献２にあるような技術を用いて、夜間にアクセスの無いＨＤＤ群については昼間のみディスクを回転させ、夜間は回転させないように予約をしておけば、実際のアクセスがある前に予めディスクを回転させておくことになるので、アクセスに対する速い応答性を確保することができる。しかし、それでも、起動や停止の予約がされた時刻が重複すれば、起動動作または停止動作が同時に発生することになる。つまり、起動動作または停止動作が同時に発生することにより消費電力が上昇してしまうという問題は解決されない。
【００１１】
本発明の目的は、低消費電力化とアクセスに対する速い応答性を両立させると共に、起動動作や停止動作の際の消費電流の上昇を抑えることができるディスクアレイ制御装置を提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のディスクアレイ制御装置は、
ディスクアレイに備えられた複数のハードディスクドライブのディスク状態を各々に制御するディスクアレイ制御装置であって、
利用の開始および停止に関する予め設定された時刻情報に基づいて前記複数のハードディスクドライブの各々のディスク状態を制御する制御時刻を求め、求めた該制御時刻を該制御時刻同士の相互関係に基づいて調整する回転制御時刻決定部と、
前記回転制御時刻決定部により決定された前記制御時刻にハードディスクドライブのディスク状態を制御するハードディスクドライブ制御部と、を有している。
【００１３】
本発明によれば、予め設定された利用時刻に基づいてハードディスクドライブのディスク状態を制御するので、アクセスされない時間帯にディスクを停止状態にすることで低消費電力化を実現し、アクセスされる時間帯にディスクを回転状態にすることでアクセスに対する速い応答性を実現する。また、予め設定された利用時刻の相互関係に基づいてハードディスクドライブのディスク状態を制御するので、ディスク状態を変化させるハードディスクドライブの相互の関係によって状態変化時に生じる消費電流の上昇を抑制することができる。
【００１４】
また、前記複数のハードディスクドライブによる記憶領域上に任意の論理ユニットが設定されており、前記予め設定された時刻情報は前記論理ユニットに対応付けて設定された利用時刻であり、
前記回転制御時刻決定部は、前記ハードディスクドライブと前記論理ユニットの対応付けと、前記論理ユニットに対して設定された利用時刻および該利用時刻の相互関係とから、前記ハードディスクドライブの各々の前記制御時刻を決定することにしてもよい。
【００１５】
これによれば、複数のハードディスクドライブによる記憶領域上に任意に設定した論理ユニットに対して設定された利用時刻から、各ハードディスクドライブのディスク状態を制御する制御時刻を決めるので、ユーザがハードディスクドライブの構成を意識せずに論理ユニットの利用開始時刻および利用終了時刻を設定しても低消費電力化とアクセスに対する速い応答性とを両立させることができ、かつディスク状態を変化させるハードディスクドライブの相互の関係によって生じる消費電流の上昇を抑制することができる。
【００１６】
また、前記利用時刻には利用開始時刻と利用終了時刻が含まれ、
前記回転制御時刻決定部は、設定された前記利用開始時刻から前記利用終了時刻の間は対応するハードディスクドライブを回転状態にし、かつ同時にディスク状態を変化させるハードディスクドライブの数を制限するように、前記ハードディスクドライブの各々の前記制御時刻を決定することにしてもよい。
【００１７】
これによれば、各ハードディスクドライブの制御時刻を調整して同時に状態変化するハードディスクドライブの数を制限するので、ディスクアレイの消費電力が許容値を超えないようにすることができる。また、各ハードディスクドライブの利用時刻の相互関係から各ハードディスクドライブの制御時刻を調整するので、利用時刻を入力するときにユーザは他の利用時刻を考慮する必要が無い。
【００１８】
また、前記ハードディスクドライブ制御部による制御で前記ハードディスクドライブのディスク状態の変化が開始されてから終了するまでに要した状態変化時間を測定する状態変化時間学習部を更に有し、
前記回転制御時刻決定部は、前記ハードディスクドライブの各々の前記制御時刻を決定するとき、前記状態変化時間学習部で測定された前記状態変化時間を利用することにしてもよい。
【００１９】
これによれば、各ハードディスクドライブの状態変化に要する時間を実測し、実測された時間に基づいて制御時刻を決定するので、各ハードディスクドライブでディスク状態の変化に要する時間が異なっていても、各ハードディスクドライブの状態変化を適切に制御することができる。
【発明の効果】
【００２０】
本発明によれば、低消費電力化とアクセスに対する速い応答性を両立すると共に、ディスク状態を変化させるハードディスクドライブの相互の関係によって状態変化時に生じる消費電流の上昇を抑制することができる。
【発明を実施するための最良の形態】
【００２１】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００２２】
（第１の実施形態）
図１は、第１の実施形態によるシステムの構成を示すブロック図である。図１を参照すると、第１の実施形態によるシステムは、処理装置１、記憶装置２、複数のＨＤＤ３、ホスト４、入力装置５、および時計６で構成されている。
【００２３】
処理装置１は、利用時刻設定部１１、回転制御時刻決定部１２、時刻判断部１３、およびＨＤＤ制御部１４を有している。
【００２４】
利用時刻設定部１１は、入力装置５から与えられたＨＤＤ３毎の利用開始時刻と利用終了時刻を利用時刻記憶部２１に記憶させる。利用開始時刻は、それ以降、対象となるＨＤＤ３へのアクセスがされる可能性がある時刻である。利用停止時刻は、それ以降、対象となるＨＤＤ３へのアクセスがされない時刻である。したがって、ホスト４は対象となるＨＤＤ３へ利用開始時刻から利用終了時刻までの間だけアクセスする。利用開始時刻および利用終了時刻は、ユーザによって入力装置５から設定される設定値である。
【００２５】
回転制御時刻決定部１２は、利用時刻記憶部２１に記憶された利用開始時刻と利用終了時刻からのＨＤＤ３の各々の回転開始時刻と回転停止時刻を決定し、回転制御時刻記憶部２２に記録する。回転開始時刻は、対象となるＨＤＤ３の回転を開始させるための回転開始命令を発行する時刻である。回転停止時刻は、対象となるＨＤＤ３の回転を停止させるための回転停止命令を発行する時刻である。回転開始時刻と回転停止時刻を合わせて回転制御時刻と呼ぶことにする。回転開始時刻は利用開始時刻から所定のマージンをとった時刻とすればよい。また、回転終了時刻は利用終了時刻から所定のマージンをとった時刻とすればよい。
【００２６】
時刻判断部１３は、時計６から現在の時刻を取得し、回転制御時刻記憶部２２に記憶されたＨＤＤ３の回転開始時刻もしくは回転停止時刻がくることを判断する。そして、時刻判断部１３は、回転開始時刻になったＨＤＤ３の回転を開始するように回転開始命令をＨＤＤ制御部１４に伝える。また、回転停止時刻になったＨＤＤ３の回転を停止するように時刻判断部１３は回転停止命令をＨＤＤ制御部１４に伝える。
【００２７】
ＨＤＤ制御部１４は、時刻判断部１３から受けた回転開始命令と回転停止命令を該当するＨＤＤ３に発行する。また、ＨＤＤ制御部１４はホスト４とＨＤＤ３間のコマンドとデータを転送する処理を行う。
【００２８】
記憶装置２は、利用時刻記憶部２１と、回転制御時刻記憶部２２とを備えている。
【００２９】
利用時刻記憶部２１は、利用開始時刻と利用停止時刻をＨＤＤ３毎に記憶する。
【００３０】
回転制御時刻記憶部２２は、回転開始時刻と回転停止時刻をＨＤＤ３毎に記憶する。
【００３１】
ＨＤＤ３は、ＨＤＤ制御部１４を介してホスト４とコマンドおよびデータを送受信し、ディスクへのデータの書き込みおよびその読み出しを行う。ディスクへアクセスするにはディスクを回転させておく必要があり、ＨＤＤ３はその回転の制御も行う。ＨＤＤ制御部１４から回転開始命令を受けると、ＨＤＤ３はディスクの回転を開始させる。また、ＨＤＤ制御部１４から回転停止命令を受けると、ＨＤＤ３はディスクの回転を停止させる。
【００３２】
ホスト４は、ＨＤＤ制御部１４を介してＨＤＤ３とコマンドおよびデータを送受信する。
【００３３】
入力装置５は、利用者の入力したＨＤＤ３の各々の利用開始時刻と利用終了時刻を利用時刻設定部１１に通知する。
【００３４】
時計６は、現在の時刻を時刻判断部１３に提供する。
【００３５】
以降の説明では、複数のＨＤＤ３に対して、ＨＤＤ３を識別するための数字ｘを用いて、個々のＨＤＤ３をＨＤＤ［ｘ］と記す。また、ＨＤＤ３の全台数をＭａｘで表す。すなわち個々のＨＤＤ３をＨＤＤ［１］からＨＤＤ［Ｍａｘ］で表す。また、ＨＤＤ［ｘ］の利用開始時刻を利用開始時刻［ｘ］、ＨＤＤ［ｘ］の利用終了時刻を利用終了時刻［ｘ］、ＨＤＤ［ｘ］の回転開始時刻を回転開始時刻［ｘ］、ＨＤＤ［ｘ］の回転停止時刻を回転停止時刻［ｘ］と表す。
【００３６】
図２は、第１の実施形態において利用時刻記憶部２１に記録された情報を示すテーブルである。図２を参照すると、利用時刻記憶部２１にはＨＤＤ毎に利用開始時刻と利用終了時刻が記録されている。図３は、第１の実施形態において回転制御時刻記憶部２２に記録された情報を示すテーブルである。図３を参照すると、回転制御時刻記憶部２２にはＨＤＤ毎に回転開始時刻と回転終了時刻が記録されており、さらにその情報に更新があったことを示す更新フラグが記録されている。
【００３７】
次に、本実施形態のシステムの全体動作について説明する。システムの全体動作は主に回転制御時刻決定処理とＨＤＤ制御処理よりなる。回転制御時刻決定処理とＨＤＤ制御処理は並行的もしくは擬似並行的に行われる。
【００３８】
図４は、第１の実施形態における回転制御時刻決定処理を示すフローチャートである。図５は、第１の実施形態におけるＨＤＤ制御処理を示すフローチャートである。
【００３９】
図４を参照すると、回転制御時刻決定処理において、まず、利用時刻設定部１１は、入力装置５からの入力を待ち受け（ステップＡ１）、入力の有無を判定する（ステップＡ２）。利用開始時刻もしくは利用終了時刻の入力が無ければ、利用時刻設定部１１はステップＡ１に戻る。
【００４０】
入力装置５から利用開始時刻もしくは利用終了時刻の入力があれば、利用時刻設定部１１は、入力された利用開始時刻もしくは利用終了時刻を利用時刻記憶部２１の対応する領域に記録する（ステップＡ３）。このとき、例えばＨＤＤ［１］の利用開始時刻が入力されたのであれば、入力された値は、図２に示した利用時刻記憶部２１のテーブルの利用開始時刻［１］として記憶させる。また、ＨＤＤ［２］の利用終了時刻が入力されたのであれば、入力された値は利用時刻記憶部２１のテーブルの利用終了時刻［２］として記憶させる。
【００４１】
次に、回転制御時刻決定部１２は、回転制御時刻設定処理を行う（ステップＡ４）。回転制御時刻設定処理は、利用時刻記憶部２１に記憶された利用開始時刻と利用終了時刻から全てのＨＤＤの回転開始時刻と回転停止時刻を決定し、回転制御時刻記憶部２２に記録する処理である。回転制御時刻設定処理の詳細については後述する。
【００４２】
続いて、回転制御時刻決定部１２は、回転制御時刻記憶部２２の更新フラグを立てて（ステップＡ５）、ステップＡ１に戻る。
【００４３】
図５を参照すると、ＨＤＤ制御処理において、まず、時刻判断部１３は時計６から現在時刻を取得し、回転制御時刻記憶部２２に記憶された回転開始時刻と回転停止時刻の中から、現在時刻よりも遅く、現在時刻に最も近い時刻を探し（ステップＢ１）、該当する時刻を回転制御時刻［Ｎｅｘｔ］とする。
【００４４】
次に、時刻判断部１３は、回転制御時刻記憶部２２の更新フラグが立っているかどうかを調べる（ステップＢ２）。更新フラグが立っていれば、時刻判断部１３は、その更新フラグをクリアして（ステップＢ３）、ステップＢ１に戻る。
【００４５】
ステップＢ２にて更新フラグが立っていなければ、時刻判断部１３は、回転制御時刻［Ｎｅｘｔ］になるのを待ち受け（ステップＢ４）、回転制御時刻［Ｎｅｘｔ］になったか否か判定する（ステップＢ５）。現在時刻が回転制御時刻［Ｎｅｘｔ］になっていなければ、時刻判断部１３はステップＢ２に戻る。
【００４６】
回転制御時刻［Ｎｅｘｔ］になると、時刻判定部１３は、その回転制御時刻［Ｎｅｘｔ］が回転開始時刻［Ｎｅｘｔ］であるか否か判定する（ステップＢ６）。
【００４７】
回転制御時刻［Ｎｅｘｔ］が回転開始時刻であれば、時刻判断部１３は、ＨＤＤ制御部１４を通して該当するＨＤＤ３に回転開始命令を発行する（ステップＢ７）。ステップＢ６において、回転制御時刻［Ｎｅｘｔ］が回転停止時刻であれば、時刻判断部１３は、ＨＤＤ制御部１４を通して該当するＨＤＤ３に回転停止命令を発行する（ステップＢ８）。
【００４８】
次に、時刻判断部１３は、回転制御時刻［Ｎｅｘｔ］になった全てのＨＤＤ３について処理（命令発行）をしたか否か判定する（ステップＢ９）。回転制御時刻［Ｎｅｘｔ］になった全てのＨＤＤ３について処理が済んでいなければ、時刻判断部１３はステップＢ６に戻って残りのＨＤＤ３についての処理を行う。一方、回転制御時刻［Ｎｅｘｔ］になった全てのＨＤＤ３について処理が済んでいれば、時刻判断部１３はステップＢ１に戻る。
【００４９】
図６Ａ〜Ｄは、図４のステップＡ４に示した回転制御時刻設定処理の詳細を示すフローチャートである。回転制御時刻設定処理は、開始固定マージン時間設定処理（図６Ａ）、開始調整マージン時間設定処理（図６Ｂ）、停止固定マージン時間設定処理（図６Ｃ）、および停止調整マージン時間設定処理（図６Ｄ）よりなる。
【００５０】
図６Ａにおいては開始固定マージン時間設定処理の対象であるＨＤＤの識別子をｎと記す。
【００５１】
また、図６Ｂにおいては開始調整マージン時間設定処理の対象であるＨＤＤの識別子をｎと記し、設定のために回転開始時刻の比較対象とするＨＤＤの識別子をｍと記す。さらに図６Ｂにおいては処理中にＨＤＤ数をカウントするための数をｉと記す。
【００５２】
また、図６Ｃにおいては停止固定マージン時間設定処理の対象であるＨＤＤの識別子をｎで記す。
【００５３】
また、図６Ｄにおいては停止調整マージン時間設定処理の対象であるＨＤＤの識別子をｎと記し、設定のために回転開始時刻および回転停止時刻の比較対象とするＨＤＤの識別子をｍと記す。さらに図６Ｄにおいては処理中にＨＤＤ数をカウントするための数をｉと記す。
【００５４】
まず、図６Ａを用いて開始固定マージン時間設定処理について説明する。図６Ａを参照すると、初めに、回転制御時刻決定部１２は、開始固定マージン時間設定処理の対象の識別子ｎに１を設定することにより（ステップＣ１）、回転開始時刻［１］を設定対象とする。
【００５５】
次に、回転制御時刻決定部１２は、利用時刻記憶部２１に利用開始時刻［ｎ］が記憶されているかを調べる（ステップＣ２）。利用開始時刻［ｎ］が記憶されていれば、回転制御時刻決定部１２は、利用開始時刻［ｎ］から開始固定マージン時間を引いた時刻を回転開始時刻［ｎ］として回転制御時刻記憶部２２に記録する（ステップＣ３）。ここで、開始固定マージン時間は、ディスクの起動に要する時間を見込んだマージンであり、予めディスクの起動に要する時間より長く設定されている。開始固定マージン時間は全てのＨＤＤ３に対して同じ値でよい。
【００５６】
次に、回転制御時刻決定部１２は、ｎがＭａｘに等しいか否か調べる（ステップＣ４）。ｎがＭａｘに等しくなければ、回転制御時刻決定部１２は、次の開始固定マージン時間設定処理対象を回転開始時刻［ｎ＋１］として（ステップＣ５）、ステップＣ２以降の処理を行う。
【００５７】
ステップＣ２において、利用開始時刻［ｎ］が利用時刻記憶部２１に記憶されていなければ、回転制御時刻決定部１２はステップＣ４へ移行する。
【００５８】
回転制御時刻決定部１２は、ステップＣ２〜Ｃ５の処理を繰り返すことにより、利用時刻記憶部２１に利用開始時刻が記憶されている全てのＨＤＤ３に対して回転開始時刻を算出して回転制御時刻記憶部２２に記録する。
【００５９】
ステップＣ４においてｎがＭａｘに等しければ、回転制御時刻決定部１２は開始固定マージン時間設定処理を終了し、開始調整マージン時間設定処理に移行する。
【００６０】
次に、図６Ｂを用いて開始調整マージン時間設定処理について説明する。図６Ｂを参照すると、回転制御時刻決定部１２は、初めに、開始調整マージン時間設定処理の対象の識別子ｎに１を設定し（ステップＣ６）、回転開始時刻［１］を設定対象とする。
【００６１】
次に、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｎ］が記憶されているか否かを調べる（ステップＣ７）。回転開始時刻［ｎ］が記憶されていれば、回転制御時刻決定部１２は、比較対象ＨＤＤの識別子ｍに１を設定し、回転開始時刻［１］を比較対象とすると共に、ＨＤＤのカウント値ｉを１とする（ステップＣ８）。
【００６２】
続いて、回転制御時刻決定部１２は、ｍとｎを比較することにより、開始調整マージン時間設定処理の対象ＨＤＤと比較対象ＨＤＤが異なるか否かを調べる（ステップＣ９）。ｍとｎが異なれば、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されているか否かを調べる（ステップＣ１０）。
【００６３】
回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されていれば、回転制御時刻決定部１２は、回転開始時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間よりも小さいか否かを調べる（ステップＣ１１）。許容時間は、予め定められた時間長であり、ディスクの起動にかかる時間と停止にかかる時間のどちらよりも大きい値に設定される。許容時間は全てのＨＤＤの組み合わせに対して同じ時間を設定してよい。
【００６４】
回転開始時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ１２）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ１３）。最大許容数は、最大許容数のＨＤＤ３が同時にディスクの起動もしくは停止を開始し、かつ、他のＨＤＤ３が全てディスクを回転させていても、消費電流が装置に許容されている値を超えないように設定されている。
【００６５】
ｉが最大許容数よりも大きければ、回転制御時刻決定部１２は、回転制御時刻記憶部２２に記憶されている回転開始時刻［ｎ］から開始調整マージン時間を引いた時刻を回転開始時刻［ｎ］として回転制御時刻記憶部２２に記録し（ステップＣ１４）、ｉ＝１、ｍ＝１を設定してステップＣ９に戻りそれ以降の処理を行う。開始調整マージン時間は、ディスクの起動に要する時間を見込んだマージンであり、予めディスクの起動に要する時間より長く設定されている。
【００６６】
ステップＣ９においてｍとｎが同じであった場合、ステップＣ１０において回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されていなかった場合、ステップＣ１１において回転開始時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間以上であった場合、およびステップＣ１３においてｉが最大許容数よりも大きくなかった場合には、回転制御時刻決定部１２は、ｍがＭａｘと等しいか否かを調べる（ステップＣ１６）。
【００６７】
ｍがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｍに１を加算して（ステップＣ１７）、ステップＣ９に戻り、それ以降の処理を行う。
【００６８】
ステップＣ７において、回転制御時刻記憶部２２に回転開始時刻［ｎ］が記憶されていなかった場合、およびステップＣ１６においてｍがＭａｘと等しければ、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ１８）。ｎがＭａｘに等しくなければ、回転制御時刻決定部１２は、ｎに１を加算して（ステップＣ１９）ステップＣ７に戻り、それ以降の処理を行う。ｎがＭａｘと等しければ、回転制御時刻決定部１２は開始調整マージン時間設定処理を終了し、停止調整マージン時間設定処理に移行する。
【００６９】
次に、図６Ｃを用いて停止固定マージン時間設定処理について説明する。図６Ｃを参照すると、回転制御時刻決定部１２は、初めに、停止固定マージン時間設定処理の対象の識別子ｎに１を設定し（ステップＣ２０）、回転停止時刻［１］を設定対象とする。次に、回転制御時刻決定部１２は、利用時刻記憶部２１に利用終了時刻［ｎ］が記憶されているか否かを調べる（ステップＣ２１）。利用終了時刻［ｎ］が記憶されていれば、回転制御時刻決定部１２は、利用終了時刻［ｎ］に停止固定マージン時間を加算した時刻を回転停止時刻［ｎ］として回転制御時刻記憶部２２に記録する（ステップＣ２２）。停止固定マージン時間は、予め定められた時間長であり、０よりも大きい値に設定されている。停止固定マージン時間は全てのＨＤＤに対して同じ時間としてよい。
【００７０】
次に、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ２３）。ｎがＭａｘと等しくなければ、回転制御時刻決定部１２は、次の停止固定マージン時間設定処理対象を回転停止時刻［ｎ＋１］として（ステップＣ２４）、ステップＣ２１に戻り、それ以降の処理を行う。
【００７１】
ステップＣ２１において、利用停止時刻［ｎ］が利用時刻記憶部２１に記憶されていなければ、回転制御時刻決定部１２は、ステップＣ２３へ移行する。
【００７２】
回転制御時刻決定部１２は、ステップＣ２１〜Ｃ２４の処理を繰り返すことにより、利用時刻記憶部２１に利用終了時刻が記憶されている全てのＨＤＤ３に対して回転停止時刻を算出して回転制御時刻記憶部２２に記録する。
【００７３】
ステップＣ２３においてｎがＭａｘと等しければ、回転制御時刻決定部１２は停止固定マージン時間設定処理を終了し、停止調整マージン時間設定処理に移行する。
【００７４】
次に、図６Ｄを用いて停止調整マージン時間設定処理について説明する。図６Ｄを参照すると、回転制御時刻決定部１２は、初めに、停止調整マージン時間設定処理の対象の識別子ｎに１を設定し（ステップＣ２５）、回転停止時刻［１］を設定対象とする。
【００７５】
次に、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転停止時刻［ｎ］が記憶されているか否かを調べる（ステップＣ２６）。回転停止時刻［ｎ］が記憶されていれば、回転制御時刻決定部１２は、比較対象ＨＤＤの識別子ｍに１を設定することで回転開始時刻［１］を比較対象とすると共に、ＨＤＤのカウント値ｉに１を設定する（ステップＣ２７）。
【００７６】
次に、回転制御時刻決定部１２は、ｍとｎを比較することによって停止調整マージン時間設定処理の対象ＨＤＤと比較対象ＨＤＤが異なるか否か調べる（ステップＣ２８）。ｍとｎが異なれば、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されているか否かを調べる（ステップＣ２９）。回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されていれば、回転制御時刻決定部１２は、回転停止時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間よりも小さいか否かを調べる（ステップＣ３０）。許容時間は、ステップＣ１１で用いた許容時間と同じ値を用いる。
【００７７】
回転停止時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ３１）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ３２）。最大許容数は、ステップＣ１３で用いた最大許容数と同じ値を用いる。
【００７８】
ｉが最大許容数よりも大きければ、回転制御時刻決定部１２は、回転制御時刻記憶部２２に記憶されている回転停止時刻［ｎ］に停止調整マージン時間を加算した時刻を回転停止時刻［ｎ］とし、回転制御時刻記憶部２２に記録する（ステップＣ３３）。
続いて、回転制御時刻決定部１２は、ｉ＝１、ｍ＝１を設定してステップＣ２８に戻り、それ以降の処理を行う。停止調整マージン時間は、ディスクの停止に要する時間を見込んだマージンであり、予めディスクの停止に要する時間より長く設定されている。
【００７９】
ステップＣ２９において回転制御時刻記憶部２２に回転開始時刻［ｍ］が記憶されていなかった場合、ステップＣ３０において回転停止時刻［ｎ］と回転開始時刻［ｍ］の差が許容時間以上であった場合、およびステップＣ３２においてｉが最大許容数以下であった場合には、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転停止時刻［ｍ］が記憶されているか否かを調べる（ステップＣ３５）。
【００８０】
回転制御時刻記憶部２２に回転停止時刻［ｍ］が記憶されていれば、回転制御時刻決定部１２は、回転停止時刻［ｎ］と回転停止時刻［ｍ］の差が許容時間よりも小さいか否かを調べる（ステップＣ３６）。ステップＣ３６における許容時間の値は、ステップＣ３０における許容時間と同じである。
【００８１】
回転停止時刻［ｎ］と回転停止時刻［ｍ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ３７）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ３８）。ステップＣ３８における最大許容数は、ステップＣ３２における最大許容数と同じである。ｉが最大許容数よりも大きければ、回転制御時刻決定部１２は、ステップＣ３３に移行する。
【００８２】
ステップＣ３５において回転制御時刻記憶部２２に回転停止時刻［ｍ］が記憶されていなかった場合、ステップＣ３６において回転停止時刻［ｎ］と回転停止時刻［ｍ］の差が許容時間以上であった場合、およびステップＣ３８においてｉが最大許容数以下であった場合には、回転制御時刻決定部１２は、ｍがＭａｘと等しいか否かを調べる（ステップＣ３９）。ｍがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｍに１を加算して（ステップＣ４０）、ステップＣ２８に戻り、それ以降の処理を行う。
【００８３】
ステップＣ２６において回転制御時刻記憶部２２に回転停止時刻［ｎ］が記憶されていなかった場合、およびステップＣ３９においてｍがＭａｘであった場合には、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ４１）。ｎがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｎに１を加算して（ステップＣ４２）、ステップＣ２６に戻り、それ以降の処理を行う。ｎがＭａｘと等しければ、回転制御時刻決定部１２は回転制御時刻設定処理を終了する。
【００８４】
上述した開始固定マージン時間設定処理（図６Ａ）および開始調整マージン時間設定処理（図６Ｂ）により、利用時刻記憶部２１に利用開始時刻が記憶された全てのＨＤＤ３について回転開始時刻が決定され、回転制御時刻記憶部２２に記録される。また同様に、上述した停止固定マージン時間設定処理（図６Ｃ）および停止調整マージン時間設定処理（図６Ｄ）により、利用時刻記憶部２１に利用終了時刻が記憶された全てのＨＤＤ３について回転停止時刻が決定され、回転制御時刻記憶部２２に記録される。
【００８５】
次に、回転制御時刻決定部１２が回転開始時刻と回転停止時刻を決定する動作の具体例について説明する。
【００８６】
本例では、ＨＤＤ３の数は６とする。すなわちＭａｘ＝６である。また、開始固定マージン時間を２分、開始調整マージン時間を２分、停止固定マージン時間を３分、停止調整マージン時間を２分、許容時間を１分、最大許容数を２とする。図７は、利用時刻記憶部２１に記憶された利用開始時刻および利用終了時刻の一例を示すテーブルである。利用時刻記憶部２１には図７に示した利用開始時刻が記憶されているものとする。
【００８７】
まず、開始固定マージン時間設定処理（ステップＣ１〜Ｃ５）により、ＨＤＤ［１］からＨＤＤ［６］の回転開始時刻には、それぞれの利用開始時刻より開始固定マージン時間の２分だけ早い時刻が設定される。図８Ａは、第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第１の例を示すテーブルである。図８Ａを参照すると、ＨＤＤ［１］からＨＤＤ［６］の回転開始時刻には、図７に示した利用開始時刻より２分だけ早い時刻が設定されている。
【００８８】
次に、回転制御時刻決定部１２がｎ＝１として（ステップＣ６）、ステップＣ７〜Ｃ１７の処理を実行することにより、回転開始時刻［１］は開始調整マージン時間の２分だけ早い時刻となる。図８Ｂは、第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第２の例を示すテーブルである。図８Ｂを参照すると、回転開始時刻［１］は、図８Ａより開始調整マージン時間の２分だけ早いＡＭ８：２６となっている。
【００８９】
次に、回転制御時刻決定部１２がｎ＝２として（ステップＣ１８〜ステップＣ１９）、ステップＣ７〜Ｃ１７の処理を実行することにより、回転開始時刻［２］は開始調整マージン時間の２分だけ早い時刻となる。図８Ｃは、第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第３の例を示すテーブルである。図８Ｃを参照すると、回転開始時刻［２］は、図８Ｂより開始調整マージン時間の２分だけ早いＡＭ８：２６となっている。
【００９０】
次に、回転制御時刻決定部１２は、ｎ＝３として（ステップＣ１８〜Ｃ１９）、ステップＣ７〜Ｃ１７の処理を実行する。ここでは、回転開始時刻［３］は変化せず、ＡＭ１０：５８のままである。その後、回転制御時刻決定部１２は、ｎ＝４，５，６としてステップＣ１８〜Ｃ１９の処理を実行するが、回転開始時刻［４］、回転開始時刻［５］、回転開始時刻［６］は変化しない。
【００９１】
本例では、この時点でｎがＭａｘと等しくなるので（ステップＣ１８）、回転制御時刻決定部１２は回転開始時刻を決定する処理を終了する。この結果、回転制御時刻記憶部２２には図８Ｃに示した値が記憶された状態となる。
【００９２】
次に、停止固定マージン時間設定処理（ステップＣ２０〜Ｃ２４）により、ＨＤＤ［１］からＨＤＤ［６］の回転停止時刻には、図７に示した利用終了時刻より停止固定マージン時間の３分だけ遅い時刻が設定される。図８Ｄは、第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第４の例を示すテーブルである。図８Ｄを参照すると、ＨＤＤ［１］からＨＤＤ［６］の回転停止時刻には、図７に示した利用開始時刻より３分だけ遅い時刻が設定されている。
【００９３】
次に、回転制御時刻決定部１２がｎ＝１として（ステップＣ２５）、ステップＣ２６〜Ｃ４０の処理を実行すると、回転停止時刻［１］の値は変化せず、ＰＭ５：１８と決定される。続いて、回転制御時刻決定部１２がｎ＝２，３，４として（ステップＣ４１〜Ｃ４２）、ステップＣ２６〜Ｃ４０を実行すると、回転停止時刻［２］，回転停止時刻［３］，回転停止時刻［４］の値は変化せず、図８Ｄに示した状態のままとなる。
【００９４】
次に、回転制御時刻決定部１２がｎ＝５として（ステップＣ４１〜Ｃ４２）、ステップＣ２６〜Ｃ４０を実行すると、回転停止時刻［５］は停止調整マージン時間の２分だけ遅い時刻となる。図８Ｅは、回転制御時刻記憶部２２に設定された回転制御時刻の第５の例を示すテーブルである。図８Ｅを参照すると、回転停止時刻［５］には、図８Ｄに示した利用開始時刻より２分だけ遅いＰＭ１１：００が設定されている。
【００９５】
次に、回転制御時刻決定部１２がｎ＝６として（ステップＣ４１〜Ｃ４２）、ステップＣ２６〜Ｃ４０の処理を実行すると、回転停止時刻［６］は停止調整マージン時間の２分だけ遅い時刻となる。図８Ｆは、回転制御時刻記憶部２２に設定された回転制御時刻の第６の例を示すテーブルである。図８Ｆを参照すると、回転停止時刻［６］には、図８Ｅに示した利用開始時刻より２分だけ遅いＰＭ１１：００が設定されている。
【００９６】
最終的に決定した図８Ｆの回転開始時刻および回転停止時刻に応じてＨＤＤ３の回転を開始および停止することにより、最大許容数である２個を超える数のＨＤＤ３が同時に起動中あるいは停止中になることが無い。起動動作や停止動作の集中を抑え、消費電流が許容されている電流値を超えないようにディスクの回転状態を制御することができる。
【００９７】
なお、ここでは時刻の処理を分単位で行う例を示したが、本発明はこれに限定されるものではない。他の例として、秒単位などのより細かい単位で時刻処理を行ってもよい。
【００９８】
また、本実施形態では、１台のＨＤＤに対して利用開始時刻および利用終了時刻をそれぞれ１つずつ設定し、回転開始時刻および回転停止時刻をそれぞれ１つずつ算出する例を示したが、本発明はこれに限定されるものではない。他の例として複数の利用開始時刻および利用終了時刻を設定し、複数の回転開始時刻および回転停止時刻を算出するように拡張してもよい。
【００９９】
以上説明したように、本実施形態によれば、予めＨＤＤ３毎に設定された利用開始時刻から利用終了時刻までの間はディスクを回転させてアクセスが可能な状態にし、他の時間帯にはディスクを停止させるので、低消費電力化とアクセスに対する速い応答性とを両立させることができる。それに加えて、本実施形態では、各ＨＤＤ３の回転開始時刻および回転停止時刻を調整して同時に起動動作あるいは停止動作をするＨＤＤ３の数を制限するので、消費電力が装置の許容値を超えないようにすることができる。
【０１００】
また、本実施形態では、各ＨＤＤ３の利用開始時刻および利用終了時刻の相互関係から、ＨＤＤの各々の回転開始時刻および回転停止時刻を調整するので、ＨＤＤ３の利用開始時刻および利用終了時刻を入力するときにユーザは他のＨＤＤ３の利用開始時刻および利用終了時刻を考慮する必要が無い。
【０１０１】
（第２の実施形態）
図９は、第２の実施形態によるシステムの構成を示すブロック図である。図９に示した第２の実施形態のシステムは、図１に示した第１の実施形態の構成に加え、記憶装置２が論理ユニット情報記憶部２３を有している。
【０１０２】
論理ユニットは、ホスト４によるアクセス対象の単位である。また、この論理ユニットはホスト４に対してＨＤＤ３の構成を隠蔽する概念であり、複数のＨＤＤ３をまたいで１つの論理ユニットを構成してもよい。この場合、論理ユニットはＨＤＤ３のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）で構成されていてもよい。また、１台のＨＤＤ３のアドレス空間を分割して複数の論理ユニットを構成してもよい。
【０１０３】
論理ユニット情報記憶部２３は、この論理ユニットとＨＤＤ３とを対応づける情報（論理ユニット情報）を記憶する。
【０１０４】
本実施形態では、ユーザは入力装置５から、この論理ユニット毎に利用開始時刻および利用終了時刻を設定することができる。利用開始時刻は、それ以降にホストから該当する論理ユニットへのアクセスとしてＨＤＤ３にアクセスされる可能がある時刻であり、利用終了時刻は、それ以降にホストから該当する論理ユニットへのアクセスとしてＨＤＤ３がアクセスされない時刻である。
【０１０５】
利用時刻設定部１１は、ＨＤＤ３毎に、論理ユニット毎の利用開始時刻および利用終了時刻を記録する。利用時刻設定部１１は、入力装置５からある論理ユニット（以下「設定対象論理ユニット」という）の利用開始時刻と利用終了時刻を与えられると、論理ユニット情報記憶部２３に記憶された論理ユニット情報をもとに、設定対象論理ユニットに対応するＨＤＤ３（以下「設定対象ＨＤＤ」という）を調べる。そして、利用時刻設定部１１は、入力装置５から与えられた利用開始時刻と利用終了時刻を、得られた設定対象ＨＤＤにおける設定対象論理ユニットの利用開始時刻と利用終了時刻として利用時刻記憶部２１に記録する。
【０１０６】
利用時刻記憶部２１は、利用開始時刻と利用終了時刻を、ＨＤＤ３毎に、ＨＤＤ３と対応関係にある全ての論理ユニットについて論理ユニット毎に記憶する。
【０１０７】
回転制御時刻決定部１２は、利用時刻記憶部２１に記憶された利用開始時刻と利用終了時刻から、各ＨＤＤ３の各論理ユニットの回転開始時刻と回転停止時刻を決定し、回転制御時刻記憶部２２に記録する。
【０１０８】
回転制御時刻記憶部２２は、ＨＤＤ３毎に、そのＨＤＤ３が含む全ての論理ユニットについて論理ユニット毎の回転開始時刻および回転停止時刻を記録する。回転開始時刻は、ＨＤＤ３の回転を開始させるための回転開始命令を発行する時刻である。回転停止時刻は、ＨＤＤ３の回転を停止させるための回転停止命令を発行する時刻である。
【０１０９】
また、回転制御時刻記憶部２２は、ＨＤＤ３と回転制御時刻が記録されている論理ユニットとの関係を示す論理ユニット情報を有効フラグとして記憶する。有効フラグは、ＨＤＤ３毎に、各ＨＤＤ３に含まれる論理ユニット毎のフラグであり、ＨＤＤ３が論理ユニットの少なくとも一部を含んでおり、その論理ユニットに回転制御時刻が設定されていることを示している。あるＨＤＤ３の中のある論理ユニットの有効フラグが立っていれば、そのＨＤＤ３にはその論理ユニットの少なくとも一部が含まれており、その論理ユニットに回転制御時刻が設定されていることを示している。
【０１１０】
さらに、回転制御時刻記憶部２２は、論理ユニット毎に、その論理ユニットがアクセス可能であるか否かを示すユニット使用フラグを記憶する。ユニット使用フラグが立っていれば、その論理ユニットがアクセス可能な状態であることを示している。論理ユニットがアクセス可能な状態は、その論理ユニットを含むＨＤＤ３のディスクが回転している状態をいう。
【０１１１】
時刻判断部１３は、時計６から現在の時刻を取得し、回転開始時刻になったＨＤＤ３の回転を開始するための回転開始命令をＨＤＤ制御部１４に伝える。また、時刻判断部１３は、それとともに、回転制御時刻記憶部２２の、該当する論理ユニットのユニット使用フラグを立てる。
【０１１２】
また、時刻判断部１３は、回転停止時刻になったＨＤＤ３の回転を停止するための回転停止命令をＨＤＤ制御部１４に伝える。また、時刻判断部１３は、それとともに、回転制御時刻記憶部２２の、該当する論理ユニットのユニット使用フラグをクリアする。その際、時刻判断部１３は、ある論理ユニット（以下「停止対象論理ユニット」という）が回転停止時刻になると、回転制御時刻記憶部２２に記憶されている有効フラグとユニット使用フラグを参照することにより、停止対象論理ユニットを含むＨＤＤ３（停止対象ＨＤＤ）に含まれている他の論理ユニットの中にアクセス可能な状態の論理ユニットがあるか否かを調べる。アクセス可能な状態の他の論理ユニットがあればそのＨＤＤ３を停止させることはできないので、時刻判断部１３は、回転停止命令をＨＤＤ制御部１４に伝えることなく、停止対象論理ユニットのユニット使用フラグをクリアする。アクセス可能な状態の他の論理ユニットがなければ、時刻判断部１３は、停止対象ＨＤＤの回転停止命令をＨＤＤ制御部１４に伝える。
【０１１３】
ＨＤＤ制御部１４は、時刻判断部１３から受けた回転開始命令と回転停止命令を該当するＨＤＤ３に発行する。また、ホスト４からのアクセスに対して、ＨＤＤ制御部１４は、論理ユニット情報記憶部２３に記憶された論理ユニット情報をもとに、論理ユニットとＨＤＤ３のアドレスを変換しながら、ホスト４とＨＤＤ３間でコマンドとデータの転送処理を行う。
【０１１４】
以降の説明では、複数のＨＤＤ３に対して、ＨＤＤ３を識別するための数字ｘを用いて、個々のＨＤＤ３をＨＤＤ［ｘ］と記す。また、ＨＤＤ３の全台数をＭａｘで表す。すなわち個々のＨＤＤ３をＨＤＤ［１］からＨＤＤ［Ｍａｘ］で表す。また、設定されうる論理ユニットの最大数から１を引いた数をＬｍａｘで表す。なお、論理ユニットの番号は０から表記するものとする。
【０１１５】
このため、論理ユニットの最大数はＬｍａｘ＋１である。さらに、ＨＤＤ［ｘ］における論理ユニットｙに対応する利用開始時刻を利用開始時刻［ｘ，ｙ］、ＨＤＤ［ｘ］における論理ユニットｙに対応する利用終了時刻を利用終了時刻［ｘ，ｙ］、ＨＤＤ［ｘ］の論理ユニットｙに対応する回転開始時刻を回転開始時刻［ｘ，ｙ］、ＨＤＤ［ｘ］の論理ユニットｙに対応する回転停止時刻を回転停止時刻［ｘ，ｙ］と表す。また、ＨＤＤ［ｘ］の論理ユニットｙに対応する有効フラグを有効フラグ［ｘ，ｙ］と表す。有効フラグ［ｘ，ｙ］は、ＨＤＤ［ｘ］と論理ユニットｙが対応付けられている場合にはフラグが立った状態で、ＨＤＤ［ｘ］と論理ユニットｙが対応付けられていない場合はフラグがクリアされた状態である。また、論理ユニットｙのユニット使用フラグをユニット使用フラグ［ｙ］と表す。ユニット使用フラグ［ｙ］は、ＨＤＤ３を論理ユニットｙにアクセス可能な状態にするタイミングでフラグが立てられ、論理ユニットｙにアクセス不可能にするタイミングでクリアされる。有効フラグとアクセスフラグは、例えば、同じＨＤＤ３上に２つ以上の論理ユニットが割り当てられている場合、１つの論理ユニットに対してはアクセスが不要となった場合でも、別の論理ユニットにアクセスするためにＨＤＤ３を回転しておかなければいけないことを判断するために使用される。
【０１１６】
図１０は、第２の実施形態において利用時刻記憶部２１に記録された情報を示すテーブルである。図１０を参照すると、利用時刻記憶部２１には、ＨＤＤ毎、論理ユニット毎に利用開始時刻と利用終了時刻が記録されている。図１１は、第２の実施形態において回転制御時刻記憶部２２に記録された情報を示すテーブルである。図１１を参照すると、回転制御時刻記憶部２２には、ＨＤＤ毎、論理ユニット毎に回転開始時刻と回転終了時刻と有効フラグが記録されており、さらにその情報に更新があったことを示す更新フラグが記録されており、さらに論理ユニット毎にユニット使用フラグが記録されている。
【０１１７】
以上に説明した以外の構成については、第２の実施形態のシステムは第１の実施形態と同様である。
【０１１８】
次に、本実施形態のシステムの全体動作について、主に第１の実施形態との相違点を説明する。図１２は、第２の実施形態における回転制御時刻決定処理を示すフローチャートである。
【０１１９】
図１２のフローチャートを参照すると、図４に示した第１の実施形態における回転制御時刻決定処理のフローチャートと異なる点は、入力装置５から利用開始時刻もしくは利用終了時刻の入力があったとき（ステップＡ２）、利用時刻設定部１１は、論理ユニット情報記憶部２３に記憶された論理ユニット情報をもとに、対応するＨＤＤ３を判別し（ステップＡ１０）、対応する全てのＨＤＤ３の対応する論理ユニットの利用開始時刻もしくは利用終了時刻を利用時刻記憶部２１に記録する点である。
【０１２０】
また、第２の実施形態における回転制御時刻決定部１２が回転開始時刻を決定する回転開始時刻決定処理（ステップＡ１１）の内容は、第１の実施形態における回転制御時刻設定処理（図４のステップＡ４）と異なる。第２の実施形態における回転制御時刻設定処理の詳細については後述する。
【０１２１】
図１３は、第２の実施形態におけるＨＤＤ制御処理を示すフローチャートである。図１３を参照し、図５に示した第１の実施形態におけるＨＤＤ制御処理のフローチャートと異なる点について説明する。
【０１２２】
第２の実施形態では、ステップＢ６において、回転制御時刻［Ｎｅｘｔ］が回転開始時刻であれば、時刻判断部１３は、該当する論理ユニットのユニット使用フラグを立て（ステップＢ１０）、回転開始命令を発行する（ステップＢ７）。ステップＢ１０においては、例えば、回転制御時刻［Ｎｅｘｔ］に該当する時刻が回転開始時刻［ｘ，ｙ］であれば、時刻判断部１３は有効フラグ［ｙ］を立てる。有効フラグ［ｙ］が既に立っていれば、フラグを立てた状態を維持する。
【０１２３】
また、ステップＢ６において、回転制御時刻［Ｎｅｘｔ］が回転停止時刻であれば、時刻判断部１３はユニット使用フラグをクリアし（ステップＢ１１）、該当するＨＤＤ３の有効フラグとユニット使用フラグを比較する（ステップＢ１２）。例えば回転制御時刻［Ｎｅｘｔ］が回転停止時刻［ｘ，ｙ］であれば、ステップＢ１１ではユニット使用フラグ［ｙ］をクリアし、ステップＢ１２においては、有効フラグ［ｘ，０］とユニット使用フラグ［０］、有効フラグ［ｘ，１］とユニット使用フラグ［１］、・・・有効フラグ［ｘ，Ｌｍａｘ］とユニット使用フラグ［Ｌｍａｘ］を全て比較する。そして、両方のフラグが立っているものが無ければ、そのＨＤＤ３のディスクの回転を停止すると判断する。回転を停止すると判断した場合（ステップＢ１３）、時刻判断部１３はＨＤＤ制御部１４を通して該当するＨＤＤに回転停止命令を発行し（ステップＢ８）、ステップＢ９に移行する。ステップＢ１３において回転を停止しないと判断した場合も時刻判断部１３はステップＢ９に移行する。
【０１２４】
図１４Ａ〜Ｄは、図１２のステップＡ１１に示した回転制御時刻設定処理の詳細を示すフローチャートである。回転制御時刻設定処理は、開始固定マージン時間設定処理（図１４Ａ）、開始調整マージン時間設定処理（図１４Ｂ）、停止固定マージン時間設定処理（図１４Ｃ）、停止調整マージン時間設定処理（図１４Ｄ）よりなる。
【０１２５】
図１４Ａにおいては開始固定マージン時間設定処理の対象であるＨＤＤの識別子をｎ、開始固定マージン時間設定処理の対象である論理ユニットの番号をＬと記す。
【０１２６】
また、図１４Ｂにおいては開始調整マージン時間設定処理の対象であるＨＤＤの識別子をｎ、開始調整マージン時間設定処理の対象である論理ユニットの番号をＬと記し、設定のために回転開始時刻の比較対象とするＨＤＤの識別子をｍ、設定のために回転開始時刻の比較対象とする論理ユニット番号をＫと記す。さらに、図１４Ｂにおいては処理中にＨＤＤ数をカウントするための数をｉと記す。
【０１２７】
また、図１４Ｃにおいては停止固定マージン時間設定処理の対象であるＨＤＤの識別子をｎ、停止固定マージン時間設定処理の対象である論理ユニットの番号をＬで記す。
【０１２８】
また、図１４Ｄにおいては停止調整マージン時間設定処理の対象であるＨＤＤの識別子をｎ、停止調整マージン時間設定処理の対象である論理ユニットの番号をＬと記し、設定のために回転開始時刻および回転停止時刻の比較対象とするＨＤＤの識別子をｍ、設定のために回転開始時刻および回転停止時刻の比較対象とする論理ユニット番号をＫと記す。さらに図１４Ｄにおいては処理中にＨＤＤ数をカウントするための数をｉと記す。
【０１２９】
まず、図１４Ａを用いて開始固定マージン時間設定処理について説明する。図１４Ａを参照すると、初めに、回転制御時刻決定部１２は、開始固定マージン時間設定処理の対象の識別子ｎに１、対象論理ユニット番号Ｌに０を設定し（ステップＣ１０１）、回転開始時刻［１，０］を設定対象とする。
【０１３０】
次に、回転制御時刻決定部１２は、利用時刻記憶部２１に利用開始時刻［ｎ，Ｌ］が記憶されているか否かを調べる（ステップＣ１０２）。利用開始時刻［ｎ，Ｌ］が記憶されていれば、回転制御時刻決定部１２は、利用開始時刻［ｎ，Ｌ］から開始固定マージン時間を引いた時刻を回転開始時刻［ｎ，Ｌ］として回転制御時刻記憶部２２に記録する（ステップＣ１０３）。ここで、開始固定マージン時間は、ディスクの起動に要する時間を見込んだマージンであり、予めディスクの起動に要する時間より長く設定されている。開始固定マージン時間は全てのＨＤＤに対して同じ値でよい。
【０１３１】
次に、回転制御時刻決定部１２は、回転制御時刻記憶部２２の有効フラグ［ｎ，Ｌ］を立て（ステップＣ１０４）、Ｌが最大の論理ユニット番号Ｌｍａｘと等しいか否かを調べる（ステップＣ１０５）。ＬがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｌに１を加算し（ステップＣ１０６）、ステップＣ１０２に戻り、それ以降の処理を行う。
【０１３２】
ステップＣ１０５において、ＬがＬｍａｘと等しければ、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ１０７）。ｎがＭａｘと等しければ、回転制御時刻決定部１２は、ｎに１を加算し（ステップＣ１０８）、ステップＣ１０２に戻り、それ以降の処理を行う。
【０１３３】
ステップＣ１０２において、利用開始時刻［ｎ，Ｌ］が利用時刻記憶部２１に記憶されていなければ、回転制御時刻決定部１２はステップＣ１０５へ移行する。
【０１３４】
回転制御時刻決定部１２は、ステップＣ１０２〜Ｃ１０８の処理を繰り返すことにより、利用時刻記憶部２１に利用開始時刻が記憶されている全てのＨＤＤ３の全ての対応する論理ユニットに対して回転開始時刻を算出して回転制御時刻記憶部２２に記録する。ステップＣ１０７において、ｎがＭａｘと等しければ、回転制御時刻決定部１２は開始固定マージン時間設定処理を終了し、開始調整マージン時間設定処理に移行する。
【０１３５】
次に、図１４Ｂを用いて開始調整マージン時間設定処理について説明する。図１４Ｂを参照すると、回転制御時刻決定部１２は、初めに、開始調整マージン時間設定処理の対象ＨＤＤの識別子ｎに１を設定し、対象論理ユニット番号Ｌに０を設定して（ステップＣ１０９）、回転開始時刻［１，０］を設定対象とする。
【０１３６】
続いて、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｎ，Ｌ］が記憶されているか否かを調べる（ステップＣ１１０）。回転開始時刻［ｎ，Ｌ］が記憶されていれば、回転制御時刻決定部１２は、比較対象ＨＤＤの識別子ｍに１を設定し、比較対象とする論理ユニット番号Ｋに０を設定して、回転開始時刻［１，０］を比較対象とする。また、回転制御時刻決定部１２は、ＨＤＤのカウント値ｉに１を設定する（ステップＣ１１１）。
【０１３７】
そして、回転制御時刻決定部１２は、ｍとｎを比較することにより、開始調整マージン時間設定処理の対象ＨＤＤと比較対象ＨＤＤが異なるか否かを調べる（ステップＣ１１２）。ｍとｎが異なれば、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されているか否かを調べる（ステップＣ１１３）。
【０１３８】
回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されていれば、回転制御時刻決定部１２は、回転開始時刻［ｎ，Ｌ］と回転開始時刻［ｍ，Ｋ］の差が許容時間よりも小さいかどうかを調べる（ステップＣ１１４）。許容時間は、予め定められた時間長であり、ディスクの起動にかかる時間と停止にかかる時間のどちらよりも大きい値に設定される。許容時間は全てのＨＤＤの組み合わせに対して同じ時間を設定してよい。
【０１３９】
回転開始時刻［ｎ，Ｌ］の回転開始時刻［ｍ，Ｋ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ１１５）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ１１６）。最大許容数は、最大許容数のＨＤＤ３が同時にディスクの起動もしくは停止を開始し、かつ、他のＨＤＤ３が全てディスク回転していても、消費電流が装置に許容されている値を超えないように設定されている。
【０１４０】
ｉが最大許容数よりも大きければ、回転制御時刻決定部１２は、回転制御時刻記憶部２２に記憶されている回転開始時刻［ｎ，Ｌ］から開始調整マージン時間を引いた時刻を回転開始時刻［ｎ，Ｌ］として回転制御時刻記憶部２２に記録し（ステップＣ１１７）、ｉ＝１、ｍ＝１、Ｋ＝０として（ステップＣ１１８）ステップＣ１１２に戻り、それ以降の処理を行う。開始調整マージン時間は、ディスクの起動に要する時間を見込んだマージンであり、予めディスクの起動に要する時間より長く設定されている。
【０１４１】
ステップＣ１１３において回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されていなかった場合、ステップＣ１１４において回転開始時刻［ｎ，Ｌ］と回転開始時刻［ｍ，Ｋ］の差が許容時間以上であった場合、ステップＣ１１６において、ｉが最大許容数よりも大きくなかった場合、回転制御時刻決定部１２は、ＫがＬｍａｘと等しいか否かを調べる（Ｃ１１９）。ＫがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｋの値に１を加算して（ステップＣ１２０）、ステップＣ１１２に戻り、それ以降の処理を行う。
【０１４２】
ステップＣ１１２においてｍとｎが等しかった場合、ステップＣ１１９においてＫがＬｍａｘと等しかった場合、回転制御時刻決定部１２は、ｍがＭａｘと等しいか否かを調べる（ステップＣ１２１）。ｍがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｍに１を加算し、Ｋ＝０を設定して（ステップＣ１２２）、ステップＣ１１２に戻り、それ以降の処理を行う。
【０１４３】
ステップＣ１１０において、回転制御時刻記憶部２２に回転開始時刻［ｎ，Ｌ］が記憶されていなかった場合、ステップＣ１２１においてｍがＭａｘと等しかった場合、回転制御時刻決定部１２は、ＬがＬｍａｘと等しいか否かを調べる（ステップＣ１２３）。ＬがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｌに１を加算して（ステップＣ１２４）、ステップＣ１１０に戻り、それ以降の処理を行う。
【０１４４】
ステップＣ１２３において、ＬがＬｍａｘと等しければ、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ１２５）。ｎがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｎに１を加算し、Ｌ＝０を設定して（ステップＣ１２６）、ステップＣ１１０に戻り、それ以降の処理を行う。
【０１４５】
ステップＣ１２５においてｎがＭａｘと等しければ、回転制御時刻決定部１２は停止固定マージン時間設定処理に移行する。
【０１４６】
次に、図１４Ｃを用いて停止固定マージン時間設定処理について説明する。図１４Ｃを参照すると、回転制御時刻決定部１２は、初めに、停止固定マージン時間設定処理の対象ＨＤＤの識別子ｎに１を設定し、対象論理ユニット番号Ｌに０を設定し（ステップＣ１２７）、回転停止時刻［１，０］を設定対象とする。
【０１４７】
次に、回転制御時刻決定部１２は、利用時刻記憶部２１に利用終了時刻［ｎ，Ｌ］が記憶されているか否かを調べる（ステップＣ１２８）。利用終了時刻［ｎ，Ｌ］が記憶されていれば、回転制御時刻決定部１２は、利用終了時刻［ｎ，Ｌ］に停止固定マージン時間を足した時刻を回転停止時刻［ｎ，Ｌ］として回転制御時刻記憶部２２に記録する（ステップＣ１２９）。停止固定マージン時間は、予め定められた時間長であり、０よりも大きい値に設定されている。停止固定マージン時間は全てのＨＤＤに対して同じ時間としてよい。
【０１４８】
次に、回転制御時刻決定部１２は、回転制御時刻記憶部２２の有効フラグ［ｎ，Ｌ］を立てる（ステップＣ１３０）。
【０１４９】
次に、回転制御時刻決定部１２は、ＬがＬｍａｘと等しいか否かを調べる（ステップＣ１３１）。ＬがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｌに１を加算して（ステップＣ１３２）、ステップ１２８に戻り、それ以降の処理を行う。
【０１５０】
ステップＣ１３１において、ＬがＬｍａｘと等しければ、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ１３３）。ｎがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｎに１を加算して（ステップＣ１３４）、ステップ１２８に戻り、それ以降の処理を行う。
【０１５１】
ステップ１２８において、利用終了時刻［ｎ，Ｌ］が利用時刻記憶部２１に記憶されていなければ、回転制御時刻決定部１２はステップＣ１３１へ移行する。
【０１５２】
回転制御時刻決定部１２は、ステップＣ１２８〜Ｃ１３４の処理を繰り返すことにより、利用時刻記憶部２１に利用終了時刻が記憶されている全てのＨＤＤ３の全ての対応する論理ユニットに対して回転停止時刻を算出して回転制御時刻記憶部２２に記録する。
【０１５３】
ステップＣ１３３においてｎがＭａｘと等しければ、回転制御時刻決定部１２は停止固定マージン時間設定処理を終了し、停止調整マージン時間設定処理に移行する。
【０１５４】
次に、図１４Ｄを用いて停止調整マージン時間設定処理について説明する。図１４Ｄを参照すると、回転制御時刻決定部１２は、初めに、停止調整マージン時間設定処理の対象ＨＤＤの識別子ｎに１を設定し、対象論理ユニット番号Ｌに０を設定し（ステップＣ１３５）、回転停止時刻［１，０］を設定対象とする。
【０１５５】
次に、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転停止時刻［ｎ，Ｌ］が記憶されているか否かを調べる（ステップＣ１３６）。回転停止時刻［ｎ，Ｌ］が記憶されていれば、回転制御時刻決定部１２は、比較対象ＨＤＤの識別子ｍに１を設定し、比較対象論理ユニット番号Ｋに０を設定し、回転開始時刻［１，０］および回転停止時刻［１，０］を比較対象とする。また、回転制御時刻決定部１２は、ＨＤＤのカウント値ｉに１を設定する（ステップＣ１３７）。
【０１５６】
次に、回転制御時刻決定部１２は、ｍとｎを比較することによって停止調整マージン時間設定処理の対象ＨＤＤと比較対象ＨＤＤが異なるか否かを調べる（ステップＣ１３８）。ｍとｎが異なれば、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されているか否かを調べる（ステップＣ１３９）。回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されていれば、回転制御時刻決定部１２は、回転停止時刻［ｎ，Ｌ］と回転開始時刻［ｍ，Ｋ］の差が許容時間よりも小さいかどうかを調べる（ステップＣ１４０）。許容時間は、ステップＣ１１４で用いた許容時間と同じ値を用いる。
【０１５７】
回転停止時刻［ｎ，Ｌ］と回転開始時刻［ｍ，Ｋ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ１４１）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ１４２）。最大許容数は、ステップＣ１１６で用いた最大許容数と同じ値を用いる。
【０１５８】
ｉが最大許容数よりも大きければ、回転制御時刻決定部１２は、回転制御時刻記憶部２２に記憶されている回転停止時刻［ｎ，Ｌ］に停止調整マージン時間を足した時刻を回転停止時刻［ｎ，Ｌ］として回転制御時刻記憶部２２に記録し（ステップＣ１４３）、ｉ＝１、ｍ＝１、Ｋ＝０としてステップＣ１３８に戻り、それ以降の処理を行う。停止調整マージン時間は、ディスクの停止に要する時間を見込んだマージンであり、予めディスクの停止に要する時間より長く設定されている。
【０１５９】
ステップＣ１３９において回転制御時刻記憶部２２に回転開始時刻［ｍ，Ｋ］が記憶されていなかった場合、ステップＣ１４０において回転停止時刻［ｎ，Ｌ］と回転開始時刻［ｍ，Ｋ］の差が許容時間以上であった場合、ステップＣ１４２においてｉが最大許容数以下であった場合には、回転制御時刻決定部１２は、回転制御時刻記憶部２２に回転停止時刻［ｍ，Ｋ］が記憶されているか否かを調べる（ステップＣ１４５）。
【０１６０】
回転制御時刻記憶部２２に回転停止時刻［ｍ，Ｋ］が記憶されていれば、回転制御時刻決定部１２は、回転停止時刻［ｎ，Ｌ］と回転停止時刻［ｍ，Ｋ］の差が許容時間よりも小さいかどうかを調べる（ステップＣ１４６）。ステップＣ１４６における許容時間の値は、ステップＣ１４０における許容時間と同じである。
【０１６１】
回転停止時刻［ｎ，Ｌ］と回転停止時刻［ｍ，Ｋ］の差が許容時間よりも小さければ、回転制御時刻決定部１２は、カウント値ｉに１を加算し（ステップＣ１４７）、ｉが最大許容数よりも大きいか否かを調べる（ステップＣ１４８）。ステップＣ１４８における最大許容数は、ステップＣ１４２における最大許容数と同じである。
【０１６２】
ｉが最大許容数よりも大きければ、回転制御時刻決定部１２はステップＣ１４３に移行する。
【０１６３】
ステップＣ１４５において回転制御時刻記憶部２２に回転停止時刻［ｍ，Ｋ］が記憶されていなかった場合、ステップＣ１４６において回転停止時刻［ｎ，Ｌ］と回転停止時刻［ｍ，Ｋ］の差が許容時間以上であった場合、ステップＣ１４８においてｉが最大許容数以下であった場合、回転制御時刻決定部１２は、ＫがＬｍａｘと等しいか否かを調べる（ステップＣ１４９）。ＫがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｋに１を加算して（ステップＣ１５０）、ステップＣ１３８に戻り、それ以降の処理を行う。
【０１６４】
ステップＣ１３８においてｍとｎが等しかった場合、ステップＣ１４９においてＫがＬｍａｘであった場合、回転制御時刻決定部１２は、ｍがＭａｘと等しいか否かを調べる（ステップＣ１５１）。
【０１６５】
ｍがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｍに１を加算し、Ｋ＝０を設定して（ステップＣ１５２）、ステップＣ１３８に戻り、それ以降の処理を行う。
【０１６６】
ステップＣ１３６において、回転制御時刻記憶部２２に回転停止時刻［ｎ，Ｌ］が記憶されていなかった場合、ステップＣ１５１においてｍがＭａｘであった場合、回転制御時刻決定部１２は、ＬがＬｍａｘと等しいか否かを調べる（ステップＣ１５３）。
【０１６７】
ＬがＬｍａｘと等しくなければ、回転制御時刻決定部１２は、Ｌに１を加算して（ステップＣ１５４）、ステップＣ１３６に戻り、それ以降の処理を行う。ステップＣ１５３において、ＬがＬｍａｘと等しければ、回転制御時刻決定部１２は、ｎがＭａｘと等しいか否かを調べる（ステップＣ１５５）。ｎがＭａｘと等しくなければ、回転制御時刻決定部１２は、ｎに１を加算し、Ｌ＝０を設定して（ステップＣ１５６）、ステップＣ１３６に戻り、それ以降の処理を行う。ステップＣ１５５においてｎがＭａｘと等しければ、回転制御時刻決定部１２は回転制御時刻設定処理を終了する。
【０１６８】
上述した開始固定マージン時間設定処理（図１４Ａ）および開始調整マージン時間設定処理（図１４Ｂ）により、利用時刻記憶部２１に利用開始時刻が記憶された全てのＨＤＤについて、対応付けられた論理ユニットに対する回転開始時刻が決定されて回転制御時刻記憶部２２に記憶され、有効フラグが立った状態となる。また同様に、上述した停止固定マージン時間設定処理（図１４Ｃ）および停止調整マージン時間設定処理（図１４Ｄ）により、利用時刻記憶部２１に利用終了時刻が記憶された全てのＨＤＤについて、対応付けられた論理ユニットに対する回転停止時刻が決定されて回転制御時刻記憶部２２に記憶され、有効フラグが立った状態となる。
【０１６９】
次に、回転制御時刻決定部１２が回転開始時刻と回転停止時刻を決定する動作の具体例について説明する。
【０１７０】
本例では、ＨＤＤ３の数は４とする。すなわちＭａｘ＝４である。また、開始固定マージン時間を２分、開始調整マージン時間を２分、停止固定マージン時間を３分、停止調整マージン時間を２分、許容時間を１分、最大許容数を２とする。また、論理ユニットの数を３とする。すなわちＬｍａｘ＝２である。図１５は、論理ユニット情報記憶部２３に記録された論理ユニット情報の一例を示すテーブルである。図１６は、利用時刻記憶部２１に記憶された利用開始時刻および利用終了時刻の一例を示すテーブルである。
【０１７１】
ここでは論理ユニット情報記憶部２３に、図１５に示した論理ユニット情報が設定され、論理ユニットとＨＤＤ３のアドレスが対応づけられているものとする。図１５の設定においては、論理ユニット０はＨＤＤ［１］とＨＤＤ［２］から構成され、論理ユニット１はＨＤＤ［３］とＨＤＤ［４］から構成されている。論理ユニット２はＨＤＤ［１］とＨＤＤ［２］から構成される。また、ここでは利用時刻記憶部２１に、図１６に示した利用開始時刻が記憶されているものとする。
【０１７２】
まず、開始固定マージン時間設定処理（ステップＣ１０１〜Ｃ１０８）により、ＨＤＤ［１］からＨＤＤ［４］に対応する各論理ユニットの回転開始時刻は、それぞれの利用開始時刻より開始固定マージン時間の２分だけ早い時刻が設定される。また、回転開始時刻が設定された論理ユニットの有効フラグが立つ。図１７Ａは、第２の実施形態において回転制御時刻記憶部２２に設定された情報の第１の例を示すテーブルである。図１７Ａを参照すると、図１６に示した利用開始時刻より２分だけ早い回転開始時刻が設定されている。なお、図中ではフラグが立った状態を”１”、フラグがクリアされた状態を”０”で表す。また、図１７Ａ〜１７Ｄでは回転制御時刻記憶部２２のユニット使用フラグおよび更新フラグの表記は省略する。
【０１７３】
次に、回転制御時刻決定部１２がｎ＝１，Ｌ＝０として（ステップＣ１０９）、ステップＣ１１０〜Ｃ１２２を実行することにより、回転開始時刻［１，０］は開始調整マージン時間の２分だけ早い時刻となる。
【０１７４】
次に、回転制御時刻決定部１２は、Ｌ＝１として（ステップＣ１２３〜Ｃ１２４）、ステップＣ１１０を実行するが、ここでは回転開始時刻［１，１］は記憶されていないため、Ｌ＝２に進む（ステップＣ１２３〜ステップＣ１２４）。
【０１７５】
回転開始時刻［１，２］について、回転制御時刻決定部１２がステップＣ１１０〜Ｃ１２２をｍ＝４となるまで実行すると、回転開始時刻［１，２］はＰＭ１０：５８のまま変化しない。この後、ステップＣ１２３においてＬ＝Ｌｍａｘであるので、回転制御時刻決定部１２はｎ＝２、Ｌ＝０として（ステップＣ１２５〜Ｃ１２６）、ステップＣ１１０〜Ｃ１２４を繰り返す。これにより、回転開始時刻［２，０］はＡＭ８：２６、回転開始時刻［２，２］はＰＭ１０：５８と決定される。
【０１７６】
さらに、回転制御時刻決定部１２が、ｎ＝３および４についてステップＣ１１０〜Ｃ１２６を繰り返し実行すると、回転開始時刻［３，１］および回転開始時刻［４，１］の値はＡＭ８：２８のまま変わらない。この時点でｎがＭａｘと等しくなるので（ステップＣ１２４）、回転制御時刻決定部１２は回転開始時刻の決定処理を終了する。この結果、回転制御時刻記憶部２２には図１７Ｂに示した値が記憶された状態となる。
【０１７７】
次に、停止固定マージン時間処理（ステップＣ１２７〜Ｃ１３４）により、ＨＤＤ［１］からＨＤＤ［４］の各論理ユニットに対応する回転停止時刻には、それぞれの利用開始時刻（図１６）より停止固定マージン時間の３分だけ遅い時刻が設定される。図１７Ｃは、第２の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第３の例を示すテーブルである。図１７Ｃを参照すると、回転制御時刻記憶部２２には図１６に示した利用開始時刻より３分だけ遅い回転停止時刻が記録される。なお、対応する有効フラグは開始固定マージン時間設定処理によって全て立っているので、ここでは有効フラグの状態は変化しない。
【０１７８】
次に、回転制御時刻決定部１２が停止調整マージン時間処理（ステップＣ１３５〜Ｃ１５６）を実行することにより、回転停止時刻はいずれも停止調整マージン時間処理前とおなじ値に決定され、回転開始時刻および回転停止時刻は図１７Ｃの値に決定される。
【０１７９】
最終的に決定した図１７Ｃの回転開始時刻および回転停止時刻に応じてＨＤＤ３の回転を開始および停止することにより、最大許容数である２個を超える数のＨＤＤ３が同時に起動中および停止中になることが無い。起動動作や停止動作の集中を抑え、消費電流が許容されている電流値を超えないようにディスクの回転状態を制御することができる。
【０１８０】
なお、本実施形態では１台のＨＤＤ３に対して対応する論理ユニットの数だけ回転開始時刻が設定されるが、回転開始命令を受けたＨＤＤ３のディスクが既に回転していればディスクを回転した状態を維持するので、ある論理ユニットに対する回転開始命令が他の論理ユニットの領域へのアクセスに影響を及ぼすことは無い。
【０１８１】
また、本実施形態では、１台のＨＤＤ３に対して対応する論理ユニットの数だけ回転停止時刻が設定されるが、他の論理ユニットの使用のためにＨＤＤ３を回転させておく必要があれば回転停止命令を発行しないので、ある論理ユニットに対する回転停止命令が他の論理ユニットの領域へのアクセスに影響を及ぼすことは無い。
【０１８２】
また、本実施形態では時刻の処理を分単位で行う例を示したが、本発明はこれに限定されるものではない。他の例として、秒単位などのより細かい単位で時刻処理をおこなってもよい。
【０１８３】
以上説明したように、本実施形態によれば、複数のＨＤＤ３による記憶領域上に任意に設定した論理ユニットに対して設定された利用開始時刻と利用終了時刻から、アクセス可能にしておく必要のある論理ユニットを含むＨＤＤ３のディスクを回転させており、アクセス可能にしておく必要のある論理ユニットを含まないＨＤＤ３のディスクを停止させる。そのため、ユーザがＨＤＤ３の構成を意識せずに論理ユニットの利用開始時刻および利用終了時刻を設定しても低消費電力化とアクセスに対する速い応答性とを両立させることができる。それに加えて、本実施形態では、各ＨＤＤ３の回転開始時刻および回転停止時刻を調整して同時に起動動作あるいは停止動作をするＨＤＤ３の数を制限するので、消費電力が装置の許容値を超えないようにすることができる。
【０１８４】
また、本実施形態では、各論理ユニットの利用開始時刻および利用終了時刻の相互関係から各ＨＤＤ３の回転開始時刻および回転停止時刻を調整するので、利用開始時刻および利用終了時刻を入力するときにユーザは他の論理ユニットの利用開始時刻および利用終了時刻やＨＤＤ３と論理ユニットの関係を考慮する必要が無い。
【０１８５】
（第３の実施形態）
図１８は、第３の実施形態によるシステムの構成を示すブロック図である。図１８に示した第３の実施形態のシステムは、図１に示した第１の実施形態の構成に加え、
処理装置１が状態変化時間学習部１５を有し、記憶装置２がマージン時間記憶部２４を有している。
【０１８６】
起動学習部１５は、ＨＤＤ制御部１４がＨＤＤ３に回転開始命令を発行するとき、ＨＤＤ制御部１４から命令通知を受けて、時計６から時刻を取得し、命令時刻としてマージン時間記憶部２４に記録する。なお、時刻６から取得される時刻は、その時点の現在時刻である。
【０１８７】
また、ＨＤＤ制御部１４がＨＤＤ３から回転開始命令に対する応答を受けたとき、起動学習部１５は、ＨＤＤ制御部１４から応答通知を受けて、時計６から時刻を取得し、応答時刻としてマージン時間記憶部２４に記録する。
【０１８８】
また、起動学習部１５は、命令時刻と応答時刻から、起動時間、開始固定マージン時間、および開始調整マージン時間を算出し、開始マージン時間記憶部２４に記録する。
【０１８９】
マージン時間記憶部２４は、それぞれのＨＤＤ３に対する命令時刻、応答時刻、起動時間、開始固定マージン時間、および開始調整マージン時間を記憶する。
【０１９０】
ＨＤＤ制御部１４は、ＨＤＤ３に回転開始命令を発行するとき、その旨の命令通知を起動学習部１５に伝える。また、ＨＤＤ制御部１４は、ＨＤＤ３から回転開始命令に対する応答を受けると、その旨の応答通知を起動学習部１５に伝える。
【０１９１】
また、本実施形態のＨＤＤ３は、ＨＤＤ制御部１４から回転開始命令を受けてディスクの回転を開始し、アクセス可能な状態になると、ＨＤＤ制御部１４に応答を返すものとする。
【０１９２】
以降の説明では、複数のＨＤＤ３に対して、ＨＤＤ３を識別するための数字ｘを用いて、個々のＨＤＤ３をＨＤＤ［ｘ］と記す。また、ＨＤＤ３の全台数をＭａｘで表す。すなわち個々のＨＤＤ３をＨＤＤ［１］からＨＤＤ［Ｍａｘ］で表す。また、ＨＤＤ［ｘ」の命令時刻を命令時刻［ｘ］、ＨＤＤ［ｘ」の応答時刻を応答時刻［ｘ］、ＨＤＤ［ｘ」の起動時間を起動時間［ｘ］、ＨＤＤ［ｘ」の開始固定マージン時間を開始固定マージン時間［ｘ］、ＨＤＤ［ｘ］の開始調整マージン時間を開始調整マージン時間［ｘ］と表す。図１９は、第３の実施形態においてマージン時間記憶部２４に記憶される情報を示すテーブルである。上述した用語を用いると、マージン時間記憶部２４に記憶される情報は図１９に示したようになる。
【０１９３】
以上に説明した以外の構成については、第３の実施形態のシステムは第１の実施形態と同様である。
【０１９４】
次に、本実施形態のシステムの全体動作について、主に第１の実施形態との相違点を説明する。図２０は、第３の実施形態におけるＨＤＤ制御処理を示すフローチャートである。
【０１９５】
図２０のフローチャートを参照すると、図５に示した第１の実施形態におけるＨＤＤ制御処理のフローチャートとステップＢ６以降の処理が異なる。ステップＢ６において回転制御時刻［Ｎｅｘｔ］が回転開始時刻であれば、時刻判断部１３はＨＤＤ制御部１４を通して該当するＨＤＤに回転開始命令を発行する（ステップＢ７）。回転開始命令を受けたＨＤＤ制御部１４は起動学習部１５に命令通知を送る（ステップＢ２０）。ＨＤＤ制御部１４が起動学習部１５に送る命令通知には、どのＨＤＤに回転開始命令を発行したかを示す情報が含まれている。
【０１９６】
起動学習部１５は、命令通知を受けると、時計６から時刻を取得し、マージン時間記憶部２４の該当するＨＤＤの命令時刻領域に記憶する（ステップＢ２１）。
【０１９７】
ステップＢ６において、回転制御時刻［Ｎｅｘｔ］が回転停止時刻であれば、時刻判断部１３はＨＤＤ制御部１４を通して該当するＨＤＤに回転停止命令を発行する（ステップＢ８）。
【０１９８】
回転制御時刻［Ｎｅｘｔ］に対応するＨＤＤ３が複数あれば、時刻判断部１３は、ステップＢ６に戻って、該当する全てのＨＤＤ３についてステップＢ７、Ｂ２０、Ｂ２１、およびＢ８の処理を繰り返す（ステップＢ２２）。
【０１９９】
全ての回転制御時刻［Ｎｅｘｔ］に対して回転開始命令もしくは回転停止命令を発行すると、時刻判断部１３は、回転開始命令を１つでも発行していれば（ステップＢ２３）、ＨＤＤ３からの応答を待つ（ステップＢ２４）。そして、ＨＤＤ制御部１４は、ＨＤＤ３から応答を受けると（ステップＢ２５）、起動学習部１５に応答通知を送る。ＨＤＤ制御部１４が起動学習部１５に送る応答通知には、どのＨＤＤから応答が有ったかを示す情報が含まれている。起動学習部１５は応答通知を受けると、時計６から時刻を取得し、マージン時間記憶部２４の該当するＨＤＤの応答時刻領域に記憶する（ステップＢ２６）。
【０２００】
次に、起動学習部１５は、マージン時間記憶部２４に記憶された応答時刻から命令時刻を引いて起動時間を算出し、マージン時間記憶部２４の該当するＨＤＤの起動時間領域に記憶する（ステップＢ２７）。
【０２０１】
次に、起動学習部１５は、マージン時間記憶部２４に記憶された起動時間に開始固定マージン補正時間を足して開始固定マージン時間を算出し、マージン時間記憶部２４の該当するＨＤＤ３の開始固定マージン時間領域に記憶する（ステップＢ２８）。開始固定マージン補正時間は、予め設定された時間であり、全てのＨＤＤ３に対して同じ時間でよい。
【０２０２】
次に、起動学習部１５は、マージン時間記憶部２４に記憶された起動時間に、開始調整マージン補正時間を足して開始調整マージン時間を算出し、マージン時間記憶部２４の該当するＨＤＤ３の開始調整マージン時間領域に記憶する（ステップＢ２９）。開始調整マージン補正時間は、予め設定された時間であり、全てのＨＤＤ３に対して同じ時間でよい。
【０２０３】
次に、発行した全ての回転開始命令に対する応答があった状態であれば（ステップＢ３０）、ステップＢ１に移行する。ステップ２５で応答が無い場合と、ステップＢ３０でまだ応答を受けていない回転開始命令が残っている場合はステップＢ２４に移行する。
【０２０４】
図２０に示したＨＤＤ制御処理により、一度でも回転開始命令が発行されたＨＤＤ３に対して、実測に基づく開始固定マージン時間と開始調整マージン時間が設定される。
【０２０５】
なお、本実施形態における回転制御時刻決定処理のフローチャートは、図４に示した第１の実施形態のものと同じである。
【０２０６】
また、本実施形態において、回転制御時刻決定部１２が回転開始時刻と回転停止時刻を決定する回転制御時刻設定処理のフローチャートは、図６Ａ〜６Ｄに示した第１の実施形態におけるものと同じである。
【０２０７】
ただし、図６ＡのステップＣ３において使用される開始固定マージン時間と、図６ＢのステップＣ１４において使用される開始調整マージン時間とについては開始マージン時間記憶部２４に記憶されたＨＤＤ３毎の値を用いる。
【０２０８】
なお、マージン時間記憶部２４に開始固定マージン時間もしくは開始調整マージン時間が記憶されていなければ、予め設定された値を用いる。予め設定しておく開始固定マージン時間および開始調整マージン時間は、各ＨＤＤ３のディスクの起動にかかる最大の時間よりも大きな値としておけばよい。
【０２０９】
図２１は、第３の実施形態においてマージン時間記憶部２４に記憶される情報の具体例を示すテーブルである。本例では、ＨＤＤ３の数は４とする。すなわちＭａｘ＝４である。また、開始固定マージン補正時間を１分、開始調整マージン補正時間を１分とする。
【０２１０】
図２１は、ＨＤＤ［１］とＨＤＤ［２］のそれぞれに対して１度以上の回転開始命令が発行され、図２０のステップＢ５〜Ｂ３０が実行された例を示している。
【０２１１】
本例では、ＨＤＤ［１］とＨＤＤ［２］はいずれも命令時刻がＡＭ８：２５と同じであるが、応答時刻についてはＨＤＤ［１］がＡＭ８：２６で、ＨＤＤ［２］がＡＭ８：２８と異なっている。これより、ＨＤＤ［１］は起動時間が１分で、ＨＤＤ［２］は起動時間が３分である。すなわち、ＨＤＤ［２］はＨＤＤ［１］よりもディスクの起動に要する時間が長いことを意味する。図２０に示した本実施形態の回転制御時刻決定処理により、ＨＤＤ［２］の開始固定マージン時間および開始調整マージン時間は、ＨＤＤ［１］の開始固定マージン時間および開始調整マージン時間よりも２分ずつ長く設定される。
【０２１２】
なお、本実施形態では実測に基づいて開始固定マージン時間と開始調整マージン時間を学習する例を示したが、同様の方法で停止固定マージン時間と停止調整マージン時間を学習することもできる。その場合、回転停止命令に対する応答をＨＤＤ制御部１４で受けると、状態変化時間学習部１５が回転停止に要する時間（停止時間）を計算し、それに補正値（停止固定マージン補正時間および停止調整マージン補正時間）を加算することで停止固定マージン時間および停止調整マージン時間を算出することができる。
【０２１３】
また、本実施形態では時刻の処理を分単位で行う例を示したが、本発明はこれに限定されるものではない。他の例として、秒単位などのより細かい単位で時刻処理を行ってもよい。
【０２１４】
以上説明したように、本実施形態によれば、状態変化時間学習部１５が各ＨＤＤ３の起動時間（停止時間）を実測して、ＨＤＤ３毎にマージン時間を算出し、回転制御時刻決定部１２がそのマージン時間を用いて回転制御時刻を決定するので、ＨＤＤ３によってディスクの起動時間が異なっていても、各ＨＤＤ３のディスク状態を適切な時刻に制御することができる。その結果、低消費電力化とアクセスに対する速い応答性を両立すると共に、ＨＤＤ３が同時に起動動作をすることにより消費電力が装置の許容値を超えるのを防止できる。
【図面の簡単な説明】
【０２１５】
【図１】第１の実施形態によるシステムの構成を示すブロック図である。
【図２】第１の実施形態において利用時刻記憶部２１に記録された情報を示すテーブルである。
【図３】第１の実施形態において回転制御時刻記憶部２２に記録された情報を示すテーブルである。
【図４】第１の実施形態における回転制御時刻決定処理を示すフローチャートである。
【図５】第１の実施形態におけるＨＤＤ制御処理を示すフローチャートである。
【図６Ａ】図４のステップＡ４に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図６Ｂ】図４のステップＡ４に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図６Ｃ】図４のステップＡ４に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図６Ｄ】図４のステップＡ４に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図７】第１の実施形態において利用時刻記憶部２１に設定された利用時刻の一例を示すテーブルである。
【図８Ａ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第１の例を示すテーブルである。
【図８Ｂ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第２の例を示すテーブルである。
【図８Ｃ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第３の例を示すテーブルである。
【図８Ｄ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第４の例を示すテーブルである。
【図８Ｅ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第５の例を示すテーブルである。
【図８Ｆ】第１の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第６の例を示すテーブルである。
【図９】第２の実施形態によるシステムの構成を示すブロック図である。
【図１０】第２の実施形態において利用時刻記憶部２１に記録された情報を示すテーブルである。
【図１１】第２の実施形態において回転制御時刻記憶部２２に記録された情報を示すテーブルである。
【図１２】第２の実施形態における回転制御時刻決定処理を示すフローチャートである。
【図１３】第２の実施形態におけるＨＤＤ制御処理を示すフローチャートである。
【図１４Ａ】図１２のステップＡ１１に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図１４Ｂ】図１２のステップＡ１１に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図１４Ｃ】図１２のステップＡ１１に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図１４Ｄ】図１２のステップＡ１１に示した回転制御時刻設定処理の詳細を示すフローチャートである。
【図１５】論理ユニット情報記憶部２３に記録された論理ユニット情報の一例を示すテーブルである。
【図１６】第２の実施形態において利用時刻記憶部２１に設定された利用時刻の一例を示すテーブルである。
【図１７Ａ】第２の実施形態において回転制御時刻記憶部２２に設定された情報の第１の例を示すテーブルである。
【図１７Ｂ】第２の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第２の例を示すテーブルである。
【図１７Ｃ】第２の実施形態において回転制御時刻記憶部２２に設定された回転制御時刻の第３の例を示すテーブルである。
【図１８】第３の実施形態によるシステムの構成を示すブロック図である。
【図１９】第３の実施形態においてマージン時間記憶部２４に記憶される情報を示すテーブルである。
【図２０】第３の実施形態におけるＨＤＤ制御処理を示すフローチャートである。
【図２１】第３の実施形態においてマージン時間記憶部２４に記憶される情報の具体例を示すテーブルである。
【符号の説明】
【０２１６】
１    処理装置
２    記憶装置
３    ＨＤＤ
４    ホスト
５    入力装置
６    時計
１１    利用時刻設定部
１２    回転制御時刻決定部
１３    時刻判断部
１４    ＨＤＤ制御部
１５    状態変化時間学習部
２１    利用時刻記憶部
２２    回転制御時刻記憶部
２３    論理ユニット情報記憶部
２４    マージン時間記憶部
Ａ１〜Ａ５、Ａ１０、Ａ１１、Ｂ１〜Ｂ１３、Ｃ１〜Ｃ４２、Ｃ１０１〜Ｃ１５６    ステップ
【図１】
2008015662.tif 000003
【図２】
2008015662.tif 000004
【図３】
2008015662.tif 000005
【図４】
2008015662.tif 000006
【図５】
2008015662.tif 000007
【図６Ａ】
2008015662.tif 000008
【図６Ｂ】
2008015662.tif 000009
【図６Ｃ】
2008015662.tif 000010
【図６Ｄ】
2008015662.tif 000011
【図７】
2008015662.tif 000012
【図８Ａ】
2008015662.tif 000013
【図８Ｂ】
2008015662.tif 000014
【図８Ｃ】
2008015662.tif 000015
【図８Ｄ】
2008015662.tif 000016
【図８Ｅ】
2008015662.tif 000017
【図８Ｆ】
2008015662.tif 000018
【図９】
2008015662.tif 000019
【図１０】
2008015662.tif 000020
【図１１】
2008015662.tif 000021
【図１２】
2008015662.tif 000022
【図１３】
2008015662.tif 000023
【図１４Ａ】
2008015662.tif 000024
【図１４Ｂ】
2008015662.tif 000025
【図１４Ｃ】
2008015662.tif 000026
【図１４Ｄ】
2008015662.tif 000027
【図１５】
2008015662.tif 000028
【図１６】
2008015662.tif 000029
【図１７Ａ】
2008015662.tif 000030
【図１７Ｂ】
2008015662.tif 000031
【図１７Ｃ】
2008015662.tif 000032
【図１８】
2008015662.tif 000033
【図１９】
2008015662.tif 000034
【図２０】
2008015662.tif 000035
【図２１】
2008015662.tif 000036