(57)【要約】【課題】パフォーマンスが高いディスク装置を提供すること。【解決手段】一つの実施形態によれば、ディスク装置のコントローラは、外部電源からの電力が供給されている間、ホスト装置から受信したデータをキャッシュエリアを介してディスクに書き込む。コントローラは、外部電源からの電力の供給が遮断された場合、ディスクを回転させるモータに発生する回生エネルギーを用いてキャッシュエリアの内容を不揮発性メモリに退避する。コントローラは、外部電源からの電力が供給されている間、キャッシュエリアのサイズを温度センサによる温度検出値と不揮発性メモリの書き込み速度とに基づいて増減させる。【選択図】図４
2019164522.tif 000002
【特許請求の範囲】
【請求項１】
１以上のディスクと、
前記１以上のディスクを回転させるモータと、
外部電源から供給される第１の電力から第２の電力を生成し、前記第１の電力の供給が遮断された場合、前記モータの停止時に発生する回生エネルギーに基づいて第３の電力を生成する電源回路と、
不揮発性の第１メモリと、
キャッシュエリアを備える揮発性の第２メモリと、
前記第１の電力が供給されている間、前記電源回路によって生成された前記第２の電力を用いて、ホスト装置から受信したデータを前記キャッシュエリアを介して前記ディスクに書き込み、前記第１の電力の供給が遮断された場合、前記電源回路によって生成された前記第３の電力を用いて前記キャッシュエリアの内容を前記第１メモリに退避するコントローラと、
を備え、
前記コントローラは、前記第１の電力が供給されている間、前記キャッシュエリアのサイズを温度センサによる温度検出値と前記第１メモリの書き込み速度とに基づいて増減させる、
ディスク装置。
【請求項２】
前記コントローラは、前記１以上のディスクに含まれるディスクの数と、前記温度検出値と、前記書き込み速度と、に基づいて前記キャッシュエリアのサイズの設定値を演算し、前記キャッシュエリアのサイズを前記設定値で更新する、
請求項１に記載のディスク装置。
【請求項３】
前記コントローラは、前記ディスクの数と前記温度検出値とに基づいて退避の実行が可能な第１の時間を推定し、前記推定された第１の時間に前記書き込み速度を乗算することによって前記設定値を取得する、
請求項２に記載のディスク装置。
【請求項４】
前記コントローラは、前記キャッシュエリアの内容を前記第１メモリに退避する際に書き込み量と書き込みの時間とに関連する第１の情報を前記第１メモリに書き込み、次に前記第１の電力の供給が再開した場合、前記第１の情報に基づいて前記書き込み速度を演算する、
請求項１に記載のディスク装置。
【請求項５】
前記コントローラは、所定量のデータを前記第１メモリに退避する毎に前記第１の情報としてタイムスタンプを生成し、当該タイムスタンプを前記第１メモリに書き込む、
請求項４に記載のディスク装置。
【請求項６】
前記コントローラは、前記ディスク装置が最初に起動された場合には、前記第１メモリの仕様によって規定されたワースト値を前記書き込み速度として取得する、
請求項４に記載のディスク装置。
【請求項７】
前記コントローラは、所定の時間間隔で前記温度センサから前記温度検出値を取得し、前記温度センサから前記温度検出値を取得する毎に前記キャッシュエリアのサイズを設定する、
請求項２に記載のディスク装置。
【請求項８】
前記ディスクの数と温度と前記第１の時間との関係を示す第１情報を格納する第３メモリをさらに備え、
前記コントローラは、前記第１情報に基づいて前記第１の時間を取得する、
請求項３に記載のディスク装置。
【請求項９】
前記電源回路は、前記第１の電力の供給が遮断された場合、前記第３の電力の電圧値に基づき、退避の実行が可能な第２の時間を前記コントローラに通知し、
前記コントローラは、前記第１の電力の供給が遮断された場合、前記第２の時間内に前記キャッシュエリアの内容を前記第１メモリに退避し、前記第２の時間を前記第１メモリに書き込み、次に前記第１の電力の供給が再開した場合、前記第２の時間を用いて前記第１情報を更新する、
請求項８に記載のディスク装置。
【請求項１０】
前記ディスク装置は、ヘリウムが充填されている、請求項９に記載のディスク装置。
【請求項１１】
キャッシュエリアと不揮発性メモリと１以上のディスクと前記１以上のディスクを回転させるモータとを備えたディスク装置を制御する方法であって、
外部電源から供給される第１の電力から第２の電力を生成するステップと、
前記キャッシュエリアのサイズを前記ディスク装置の温度と前記不揮発性メモリの書き込み速度とに基づいて増減させるステップと、
前記第２の電力を用いて、ホスト装置から受信したデータを前記キャッシュエリアを介して前記１以上のディスクに書き込むステップと、
前記第１の電力の供給が遮断された場合、前記モータの停止時に発生する回生エネルギーに基づいて第３の電力を生成するステップと、
前記第１の電力の供給が遮断された場合、前記第３の電力を用いて前記キャッシュエリアの内容を前記不揮発性メモリに退避するステップと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、ディスク装置に関する。
【背景技術】
【０００２】
ディスク装置は、ＰＬＰ（Power  Loss  Protection）機能を有する。ＰＬＰ機能は、外部電源からの電力の供給が遮断された場合に、キャッシュメモリに記憶されるディスクに書き込み中のデータを、不揮発性の記憶領域に退避させる機能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９４３６６１２号明細書
【特許文献２】米国特許第９０７０４１７号明細書
【特許文献３】米国特許第７７２５６５３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、パフォーマンスが高いディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、ディスク装置は、１以上のディスクと、前記１以上のディスクを回転させるモータと、電源回路と、不揮発性の第１メモリと、キャッシュエリアを備える揮発性の第２メモリと、コントローラと、を備える。前記電源回路は、外部電源から供給される第１の電力から第２の電力を生成し、前記第１の電力の供給が遮断された場合、前記モータの停止時に発生する回生エネルギーに基づいて第３の電力を生成する。前記コントローラは、前記第１の電力が供給されている間、前記電源回路によって生成された前記第２の電力を用いて、ホスト装置から受信したデータを前記キャッシュエリアを介して前記ディスクに書き込む。前記コントローラは、前記第１の電力の供給が遮断された場合、前記電源回路によって生成された前記第３の電力を用いて前記キャッシュエリアの内容を前記第１メモリに退避する。前記コントローラは、前記第１の電力が供給されている間、前記キャッシュエリアのサイズを温度センサによる温度検出値と前記第１メモリの書き込み速度とに基づいて増減させる。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態にかかるディスク装置の構成の一例を示すブロック図である。
【図２】図２は、実施形態にかかるバックアップ時間情報のデータ構成の一例を示す図である。
【図３】図３は、実施形態にかかるフラッシュＲＯＭに格納される各種情報を説明する図である。
【図４】図４は、実施形態にかかるディスク装置の動作を説明するフローチャートである。
【図５】図５は、実施形態にかかる、バックアップイネーブル信号とバックアップの実行時間との関係を示すタイミングチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるディスク装置を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
（実施形態）
図１は、実施形態にかかるディスク装置の構成の一例を示すブロック図である。ディスク装置１は、ホスト装置ＨＳの外部記憶装置として機能する。ディスク装置１は、例えば、ハードディスクドライブである。具体的には、ディスク装置１は、ディスク２、スピンドルモータ（ＳＰＭ）３、磁気ヘッドＭＨ、アクチュエータアームＡ、ボイスコイルモータ（ＶＣＭ）４、ディスク制御回路５、ヘッド制御回路６、駆動回路７、リードライトチャネル８、ＲＡＭ（Random  Access  Memory）９、フラッシュＲＯＭ（Read  Only  Memory）１１、および温度センサ１２を有する。
【０００９】
ディスク２は、各種情報を記録可能な円盤状の記録媒体（例えば、磁気ディスク）である。ディスク２は、プラッタとも称され得る。ディスク２は、ＳＰＭ３により回転駆動される。ＳＰＭ３は、ディスク２を回転させるモータの一例である。
【００１０】
本図は１つのディスク２を具備するディスク装置１を示しているが、ディスク装置１に具備されるディスク２の数は１に限定されない。複数のディスク２が１つのディスク装置１に具備されてもよい。複数のディスク２が１つのディスク装置１に具備される場合には、当該複数のディスク２は一体として回転駆動される。
【００１１】
磁気ヘッドＭＨは、アクチュエータアームＡの一方の端に設けられ、ディスク２に対するデータの書き込みおよび読み出しを実行する。磁気ヘッドＭＨは、ディスク２に対してデータを書き込む書込みヘッドＷＨ、およびディスク２からデータを読み出す読出しヘッドＲＨを有する。磁気ヘッドＭＨは、スライダＳＬ上に支持され、ディスク２の回転によって生じる揚力によって、ディスク２の表面からわずかに浮いた状態を維持しながら、ディスク２の表面上においてダウントラック方向に移動する。
【００１２】
ＶＣＭ４は、アクチュエータアームＡにおいて、磁気ヘッドＭＨが設けられた端とは反対側の端に設けられている。ＶＣＭ４は、軸４ａを中心として、アクチュエータアームＡを回転駆動させる。これによりＶＣＭ４は、磁気ヘッドＭＨをクロストラック方向に移動させ、ディスク２上において、データの書き込みまたは読み出しを行うトラックを変更する。
【００１３】
ＲＡＭ９は、揮発性の第２メモリの一例である。ＲＡＭ９は、ＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ（Static  Random  Access  Memory）、またはその組み合わせ等で構成される。ＲＡＭ９には、キャッシュエリア１０がアロケートされている。即ち、ＲＡＭ９は、キャッシュメモリとして機能する。キャッシュエリア１０は、ホスト装置ＨＳから受信したデータのうちのまだディスク２に書き込まれていないデータを一時的に記憶する記憶領域である。
【００１４】
ヘッド制御回路６は、リードライトチャネル８から入力されるデータに応じたライト信号（電流）を書込みヘッドＷＨに流すことによって、ディスク２に対してデータの書き込みを実行する。また、ヘッド制御回路６は、読出しヘッドＲＨから出力されたリード信号（読出しヘッドＲＨによりディスク２から読み出されたデータ）を増幅して、リードライトチャネル８に供給する。
【００１５】
リードライトチャネル８は、キャッシュエリア１０に格納されたデータをコード変調して、コード変調されたデータをヘッド制御回路６に出力する。また、リードライトチャネル８は、ヘッド制御回路６から伝送されてきたデータをコード復調して、コード復調されたデータをディスク制御回路５に出力する。
【００１６】
駆動回路７は、ディスク装置１に対する電力の供給を制御する。また、駆動回路７は、ＶＣＭ４の駆動を制御する。駆動回路７は、電源制御回路７ａおよびスピンドルモータ制御回路７ｂを有する。スピンドルモータ制御回路７ｂは、ＳＰＭ３の回転を制御する。
【００１７】
電源制御回路７ａは、電源回路の一例である。電源制御回路７ａは、ホスト装置ＨＳ（外部電源の一例）から電力の供給を受けて、当該供給された電力に基づいて、ディスク装置１の各部を駆動する電力を生成する。電力を生成するとは、例えば、整流、昇圧、または降圧、などの処理を含む。電源制御回路７ａは、生成した電力をディスク装置１の各部に供給する。電源制御回路７ａは、供給された電力をそのまま各部に供給してもよい。
【００１８】
また、ホスト装置ＨＳからの電力の供給が遮断された場合、電源制御回路７ａは、ホスト装置ＨＳからの電力の供給が遮断されたことを検出することができる。電源制御回路７ａは、ホスト装置ＨＳからの電力の供給が遮断されたことを検出した場合、ＳＰＭ３において発生する回生エネルギーを、スピンドルモータ制御回路７ｂを介して受ける。そして、電源制御回路７ａは、ＳＰＭ３から受けた回生エネルギーに基づいて電力を生成し、生成した電力をディスク装置１の各部へ供給する。
【００１９】
ディスク２の回転中にＳＰＭ３への供給電流が停止する。ＳＰＭ３の逆起電力に起因するエネルギーは、回生エネルギーとしてスピンドルモータ制御回路７ｂによって回収される。また、回転していたディスク２の運動エネルギーがＳＰＭ３によって電気エネルギーに変換され、その電気エネルギーは、回生エネルギーとしてスピンドルモータ制御回路７ｂによって回収される。
【００２０】
このように、電源制御回路７ａは、ＳＰＭ３の停止時に発生する回生エネルギーに基づいて、各部に供給する電力を生成する。よって、ディスク装置１は、ホスト装置ＨＳからの電力の供給が遮断された後のしばらくの期間、回生エネルギーを利用して動作することができる。この期間に、ディスク装置１では、ＰＬＰ機能の処理が実行される。
【００２１】
ＰＬＰ機能は、ディスク２に対してデータの書き込みを行っている間にホスト装置ＨＳからの電力の供給の遮断が検出された場合、キャッシュメモリ内のデータを不揮発性メモリに退避することによって、当該データのディスク装置１からの喪失を防止する機能である。実施形態の場合、ＰＬＰ機能の処理として、キャッシュエリア１０内のデータがフラッシュＲＯＭ１１に退避せしめられる。退避は、転送であってもよいし、コピーであってもよい。退避は、圧縮、符号化、フォーマット変換、など、データを加工するプロセスを含んでいてもよい。以降、キャッシュエリア１０内のデータをフラッシュＲＯＭ１１に退避する処理を、バックアップと表記することがある。
【００２２】
電源制御回路７ａは、ホスト装置ＨＳからの電力の供給が遮断されたことを検出した場合、バックアップイネーブル（Backup  Enable）信号をアサートする。バックアップイネーブル信号は、バックアップが実行可能である旨を示す信号であり、ディスク制御回路５に供給される。電源制御回路７ａは、バックアップイネーブル信号をアサートした後、各部への供給電圧が所定のしきい値を下回ると、バックアップイネーブル信号をネゲートする。
【００２３】
上記のしきい値は、ディスク制御回路５がバックアップを実行するために要する電圧値よりも大きい限り、任意に設定され得る。例えば、ディスク制御回路５がバックアップを実行するために要する電圧値が、上記しきい値として設定されてもよい。ディスク制御回路５がバックアップを実行するために要する電圧値に所定のマージンを加算した値が上記しきい値として設定されてもよい。ディスク制御回路５がバックアップを実行するために要する電圧値よりも大きく、ディスク２へのアクセス（書き込み、読み出し）に要する電圧値よりも小さい値が上記しきい値として設定されてもよい。
【００２４】
以降、ホスト装置ＨＳからの電力の供給が遮断されることを、パワーロスと表記することがある。
【００２５】
温度センサ１２は、温度を検出するセンサである。ディスク装置１は、ＳＰＭ３、ディスク制御回路５、駆動回路７など、熱を発する部品を含む。これらの部品の発熱の程度やディスク装置１の周囲の温度によって、ディスク装置１内の温度が増減する。ディスク装置１内の温度は、ディスク装置１の消費電力、特に退避処理時の消費電力に影響する。例えば、ディスク制御回路５では、自身の温度の上昇に応じてリーク電流が増加し、それによって消費電力が増加する。温度センサ１２は、ディスク装置１の消費電力に影響する部品の近傍に配置される。以降、ディスク装置１の温度とは、温度センサ１２によって測定される温度をいう。
【００２６】
なお、ディスク装置１に設けられる温度センサ１２の数は１に限定されない。複数の温度センサ１２がディスク装置１内に配置され、複数の温度センサ１２によって得られた複数の温度検出値に基づいて、ディスク装置１の温度を示す１つの値が演算されてもよい。
【００２７】
ディスク制御回路５は、コントローラの一例である。ディスク制御回路５は、ＣＰＵ（Central  Processing  Unit）、論理回路、またはその両方によって構成され得る。ディスク制御回路５は、ホスト装置ＨＳから受けるコマンドに応じてディスク装置１全体を制御する。
【００２８】
ディスク制御回路５は、ホスト装置ＨＳから電力の供給を受けている間に、電源制御回路７ａから供給された電力を用いて通常動作を実行する。通常動作は、ホスト装置ＨＳとの間のコマンドおよびデータの送受信、および、ディスク２に対するアクセス（書き込み、読み出し）を含む。
【００２９】
例えば、通常動作では、ディスク制御回路５は、ライトコマンドによって書き込みが要求されたデータをホスト装置ＨＳから受信すると、受信したデータをキャッシュエリア１０に格納する。ディスク制御回路５は、リードライトチャネル８に、キャッシュエリア１０内のデータをディスク２に書き込ませる。換言すると、ディスク制御回路５は、ホスト装置ＨＳから受信したデータをキャッシュエリア１０を介してディスク２に書き込む。また、ディスク制御回路５は、リードライトチャネル８から出力されたデータをホスト装置ＨＳに送信する。
【００３０】
ディスク制御回路５は、パワーロスが発生した場合、通常動作を終了して、ＰＬＰ機能にかかるバックアップを実行する。パワーロスの発生は、電源制御回路７ａから通知される。ディスク制御回路５は、パワーロスの発生の通知を受けた後、バックアップイネーブル信号がアサートされている期間に、バックアップを実行できる。ディスク制御回路５は、電源制御回路７ａから供給される電力、即ちＳＰＭ３の停止時に発生する回生エネルギーから生成された電力、を使用することによって、バックアップを実行する。
【００３１】
ここで、通常動作においては、ディスク制御回路５は、キャッシュエリア１０内の全データのディスク２への書き込みが完了する前に、次のコマンドの処理を開始することができる。よって、キャッシュエリア１０の容量が大きいほど、ディスク装置１のパフォーマンスが向上する。しかしながら、キャッシュエリア１０の容量が、バックアップの際に退避可能なデータの量より大きいと、パワーロスが発生した際にキャッシュエリア１０内の全データを退避することが不可能となる場合がある。
【００３２】
そこで、実施形態では、キャッシュエリア１０のサイズが可変に構成される。そして、ディスク制御回路５は、バックアップの際に退避可能なデータの量を推定し、推定によって得られた量をキャッシュエリア１０のサイズとして設定する。
【００３３】
前述したように、ＳＰＭ３の停止時に発生する回生エネルギーに基づいてバックアップが実行される。回生エネルギーの量は、ディスク２の質量および回転数に依存する。データの書き込み時におけるディスク２の回転数はディスク装置１毎に決まっている。ディスク２の質量はディスク装置１に具備されるディスク２の数に応じて決まる。よって、回生エネルギーから生成できる各部へ供給する電力量はディスク装置１毎に決まる。
【００３４】
これに対し、単位電力量あたりに退避可能なデータの量は、ディスク装置１の温度およびフラッシュＲＯＭ１１への書き込み速度によって増減する。例えば、ディスク装置１の温度が高くなるほど、消費電力が増加する。消費電力が増加すると、単位電力量あたりにバックアップを実行可能な時間が短くなり、それによって退避可能なデータの量が減少する。さらに、フラッシュＲＯＭ１１への書き込み速度が速いほど、単位時間当たりに退避できるデータの量が増加するため、単位電力量あたりに退避可能なデータの量が増加する。
【００３５】
ディスク制御回路５は、バックアップを実行可能な時間を、少なくともディスク装置１の温度に基づいて推定する。そして、ディスク制御回路５は、推定された時間内に退避可能なデータの量をフラッシュＲＯＭ１１への書き込み速度に基づいて推定する。そして、ディスク制御回路５は、推定された時間内に退避可能なデータの量を、キャッシュエリア１０のサイズの設定値として演算する。
【００３６】
ディスク制御回路５は、さらに、ＳＲＡＭ１３を備えている。ＳＲＡＭ１３は、第３のメモリの一例である。ＳＲＡＭ１３には、ディスク制御回路５が各種処理に使用する情報が格納される。特に、ＳＲＡＭ１３には、バックアップ時間情報１４が格納される。
【００３７】
バックアップ時間情報１４は、ディスク装置１の温度と、ディスク装置１に具備されるディスク２の数と、バックアップを実行可能な時間の推定値と、の関係を示す情報である。バックアップ時間情報１４は、例えば、フラッシュＲＯＭ１１またはディスク２などの不揮発性の記憶領域に格納されている。ディスク制御回路５は、起動時に当該記憶領域からＳＲＡＭ１３にバックアップ時間情報１４をロードする。ディスク制御回路５は、ＳＲＡＭ１３にロードされたバックアップ時間情報１４を使用することによって、バックアップを実行可能な時間を推定する。
【００３８】
図２は、実施形態にかかるバックアップ時間情報１４のデータ構成の一例を示す図である。この例によれば、バックアップ時間情報１４は、各セルにバックアップを実行可能な時間の推定値が記録されたテーブルである。このテーブルの行は、ディスク装置１の温度によって選択される。このテーブルの列は、ディスク装置１に具備されるディスク２の数によって選択される。ディスク制御回路５は、ディスク装置１の温度およびディスク装置１に具備されるディスク２の数を検索キーとしてバックアップ時間情報１４を検索することによって、バックアップを実行可能な時間の推定値を取得する。
【００３９】
なお、バックアップ時間情報１４のデータ構成は、これに限定されない。バックアップ時間情報１４は、関数によって構成されてもよい。
【００４０】
ディスク装置１が具備するディスク２の数は、例えば、ディスク装置１の製造時に、フラッシュＲＯＭ１１またはディスク２などの不揮発性の記憶領域に記録される。ディスク制御回路５は、当該記憶領域からディスク２の数を取得し、取得したディスク２の数をバックアップ時間情報１４の検索の際に使用する。
【００４１】
さらに、ディスク制御回路５は、フラッシュＲＯＭ１１の書き込み速度を、２通りの方法で取得することができる。
【００４２】
１つ目の方法によれば、ディスク制御回路５は、フラッシュＲＯＭ１１のスペックワースト値を取得して、取得したスペックワースト値を書き込み速度とみなす。フラッシュＲＯＭ１１のスペックワースト値とは、フラッシュＲＯＭ１１の仕様によって規定された、書き込み速度のワースト値である。スペックワースト値は、例えば、フラッシュＲＯＭ１１またはディスク２などの不揮発性の記憶領域に予め記録されており、ディスク制御回路５は、当該記憶領域からスペックワースト値を取得する。ディスク制御回路５は、１回目の起動時に、この方法を用いてフラッシュＲＯＭ１１の書き込み速度を取得する。１回目の起動とは、一度もバックアップが実行されていない状態での起動をいう。
【００４３】
２つ目の方法によれば、ディスク制御回路５は、フラッシュＲＯＭ１１にデータを退避する際に、所定サイズのデータをフラッシュＲＯＭ１１に書き込む毎にタイムスタンプ（タイムスタンプ１７）を生成し、当該タイムスタンプをフラッシュＲＯＭ１１に記録する。タイムスタンプは、例えば、バックアップを開始してからの経過時間である。次にディスク装置１が起動したとき、即ち次にホスト装置ＨＳからの電力が供給されたとき、ディスク制御回路５は、前記した所定サイズを２つの連続するタイムスタンプが示す時間間隔で除算することによって、フラッシュＲＯＭ１１の書き込み速度を演算する。この方法によれば、フラッシュＲＯＭ１１の書き込み速度の実力値を取得できる。ディスク制御回路５は、２回目以降の起動時に、この方法を用いてフラッシュＲＯＭ１１の書き込み速度を取得する。２回目以降の起動とは、前回の動作においてバックアップが実行された状態での起動をいう。
【００４４】
フラッシュＲＯＭ１１は、不揮発性の第１のメモリの一例である。フラッシュＲＯＭ１１は、例えば、ＮＡＮＤ型のフラッシュメモリ、ＮＯＲ型のフラッシュメモリ、等によって構成される。フラッシュＲＯＭ１１には、バックアップによって、キャッシュエリア１０内のデータが退避される。フラッシュＲＯＭ１１には、キャッシュエリア１０内のデータが退避されるほか、任意のデータが格納され得る。
【００４５】
図３は、実施形態にかかるフラッシュＲＯＭ１１に格納される各種情報を説明する図である。本図に示されるように、フラッシュＲＯＭ１１には、キャッシュエリア１０から退避されたデータ（退避データ１５）と、ログ情報１６とが格納される。ログ情報１６は、上述したタイムスタンプ（タイムスタンプ１７）、アサート時間１８、および温度情報１９を含む。
【００４６】
アサート時間１８は、バックアップイネーブル信号がアサートされてからネゲートされるまでの時間を示す。温度情報１９は、バックアップの実行時のディスク装置１の温度である。ディスク制御回路５は、バックアップの実行の際にアサート時間１８および温度情報１９を記録する。そして、ディスク制御回路５は、次にディスク装置１が起動した際に、アサート時間１８および温度情報１９を用いてバックアップ時間情報１４を更新する。
【００４７】
次に、実施形態にかかるディスク装置１の動作を説明する。
【００４８】
図４は、実施形態にかかるディスク装置１の動作を説明するフローチャートである。まず、ディスク装置１が起動される（Ｓ１０１）。すると、電源制御回路７ａは、ホスト装置ＨＳから供給される電力に基づいて、各部に供給する電力を生成する（Ｓ１０２）。
【００４９】
ディスク制御回路５は、バックアップ時間情報１４をＳＲＡＭ１３に取得する（Ｓ１０３）。ディスク制御回路５は、ディスク装置１が具備するディスク２の数を取得する（Ｓ１０４）。
【００５０】
続いて、ディスク制御回路５は、今回の起動が１回目の起動であるか否かを判定する（Ｓ１０５）。
【００５１】
ディスク制御回路５は、任意の方法でＳ１０５の判定を実行し得る。例えば、ディスク制御回路５は、起動の回数をログ情報１６に記録してフラッシュＲＯＭ１１に格納し、当該フラッシュＲＯＭ１１に格納されたログ情報１６に基づいてＳ１０５の判定を実行してもよい。
【００５２】
今回の起動が１回目の起動でない場合（Ｓ１０５、Ｎｏ）、ディスク制御回路５は、復元処理を実行する（Ｓ１０６）。復元処理では、フラッシュＲＯＭ１１に格納されている退避データ１５がキャッシュエリア１０に復元される。キャッシュエリア１０に復元されたデータは、逐次、ディスク２に書き込まれる。
【００５３】
続いて、ディスク制御回路５は、ログ情報１６をフラッシュＲＯＭ１１から取得し（Ｓ１０７）、当該ログ情報１６に記録されたアサート時間１８および温度情報１９に基づいてバックアップ時間情報１４の更新を実行する（Ｓ１０８）。
【００５４】
例えば、Ｓ１０８では、ディスク制御回路５は、バックアップ時間情報１４に含まれるセルのうちの、Ｓ１０４の処理によって取得されたディスク２の数によって選択される列と温度情報１９によって選択される行との交点に位置するセルに記録されている値（以降、検索値）と、アサート時間１８とを比較する。両者が異なっている場合、ディスク制御回路５は、当該セルの内容をアサート時間１８で上書きする。両者が一致する場合、ディスク制御回路５は、当該セルの内容を変更しない。
【００５５】
別の例では、ディスク制御回路５は、アサート時間１８からマージンを減算して得られる値と検索値とを比較する。アサート時間１８からマージンを減算して得られる値が検索値よりも大きい場合、ディスク制御回路５は、当該検索値が記録されていたセルの内容を、アサート時間１８からマージンを減算して得られる値で上書きする。アサート時間１８からマージンを減算して得られる値が検索値以下である場合には、ディスク制御回路５は、上書きを実行しない。
【００５６】
さらに別の例では、ディスク制御回路５は、検索値がアサート時間１８と異なっている場合、アサート時間１８を検索値で除算した値を、検索値が記録されたセルと同一の列に属する全てのセルの値に乗算する。
【００５７】
このように、バックアップ時間情報１４の更新は、種々の方法で実現され得る。
【００５８】
続いて、ディスク制御回路５は、ログ情報１６に記録されたタイムスタンプ１７に基づいてフラッシュＲＯＭ１１の書き込み速度を演算する（Ｓ１０９）。
【００５９】
今回の起動が１回目の起動である場合（Ｓ１０５、Ｙｅｓ）、ログ情報１６が存在しない。よって、ディスク制御回路５は、フラッシュＲＯＭ１１のスペックワースト値をフラッシュＲＯＭ１１の書き込み速度として取得する（Ｓ１１０）。
【００６０】
Ｓ１０９またはＳ１１０の処理の後、ディスク制御回路５は、温度センサ１２から温度検出値を取得する（Ｓ１１１）。そして、ディスク制御回路５は、Ｓ１０４の処理によって取得されたディスク２の数と、Ｓ１１１の処理によって取得された温度検出値と、を検索キーとして用いてバックアップ時間情報１４を検索することによって、バックアップを実行可能な時間の推定値を取得する（Ｓ１１２）。そして、ディスク制御回路５は、バックアップを実行可能な時間の推定値をＳ１０９またはＳ１１０の処理によって取得した書き込み速度で除算することによって、退避可能なデータの量の推定値を取得する（Ｓ１１３）。
【００６１】
Ｓ１１３の処理の後、ディスク制御回路５は、退避可能なデータの量の推定値をキャッシュエリア１０のサイズとして設定する（Ｓ１１４）。そして、ディスク制御回路５は、Ｓ１１３の処理の後からの経過時間のカウントを開始し（Ｓ１１５）、通常動作を実行する（Ｓ１１６）。
【００６２】
ここで、キャッシュエリア１０のサイズは、Ｓ１１４の処理によって設定されている。通常動作において、キャッシュエリア１０がいっぱいになった場合、即ち、ホスト装置ＨＳから受信し、まだディスク２に書き込まれていないデータの量が、Ｓ１１４の処理によって設定された値に至った場合、ディスク制御回路５は、キャッシュエリア１０に空き領域ができるまで、ホスト装置ＨＳから新たなデータの受け付けを停止する。
【００６３】
通常動作の実行時に、パワーロスが発生した場合（Ｓ１１７、Ｙｅｓ）、電源制御回路７ａは、回生エネルギーに基づいて電力を生成し、生成した電力を各部に供給する（Ｓ１１８）。また、電源制御回路７ａは、バックアップを実行可能な期間、バックアップイネーブル信号を、アサートされた状態に維持する。
【００６４】
ディスク制御回路５は、バックアップイネーブル信号がアサートされた状態に維持されている間に、バックアップを実行する（Ｓ１１９）。即ち、ディスク制御回路５は、キャッシュエリア１０内のデータを、フラッシュＲＯＭ１１に退避する。また、ディスク制御回路５は、タイムスタンプ１７、アサート時間１８、温度情報１９を含むログ情報１６を、フラッシュＲＯＭ１１に書き込む（Ｓ１２０）。そして、ディスク装置１は、動作を停止する。
【００６５】
パワーロスが発生せずに（Ｓ１１７、Ｎｏ）、経過時間のカウント値が所定値（例えば６０秒）に至った場合（Ｓ１２１、Ｙｅｓ）、制御がＳ１１１に移行する。パワーロスが発生せず（Ｓ１１７、Ｎｏ）、かつ経過時間のカウント値が所定値（例えば６０秒）に至っていない場合（Ｓ１２１、Ｎｏ）、制御がＳ１１６に移行する。
【００６６】
このように、実施形態によれば、電源制御回路７ａは、各部に供給する電力を外部電源からの電力から生成し、パワーロスが発生した場合には、各部に供給する電力を、ＳＰＭ３の停止時に発生する回生エネルギーに基づいて生成する。ディスク制御回路５は、外部電源から電力が供給されている間に、キャッシュエリア１０のサイズを、温度センサ１２による温度検出値とフラッシュＲＯＭ１１の書き込み速度とに基づいて増減させる。
【００６７】
前述したように、バックアップの際に退避可能なデータの量は、ディスク装置１の温度およびフラッシュＲＯＭ１１の書き込み速度に応じて変化する。例えば、キャッシュエリア１０のサイズを製造時に決定する場合、バックアップの際に退避可能なデータの量が変化することを考慮して、当該データの量の変化の範囲の最小値が、キャッシュエリア１０のサイズとして設定され得る。これに対し、本実施形態では、上記の構成により、キャッシュエリア１０のサイズを、バックアップの際に退避可能なデータの量に近づけることが可能である。したがって、本実施形態によれば、キャッシュエリア１０のサイズが製造時に固定される場合に比べて、キャッシュエリア１０のサイズを大きくすることが可能である。よって、ディスク装置１のパフォーマンスが向上する。
【００６８】
また、ディスク制御回路５は、ディスク装置１に具備されるディスク２の数と、温度センサ１２によって検出されたディスク装置１の温度と、フラッシュＲＯＭ１１の書き込み速度と、に基づいてキャッシュエリア１０のサイズの設定値を演算する。
【００６９】
この構成により、搭載されるディスク２の数が異なる複数のディスク装置１を製造する場合、搭載されるディスク２の数毎にディスク制御回路５の機能を変更することが不要になる。
【００７０】
なお、ディスク制御回路５は、ディスク装置１に具備されるディスク２の数と、温度センサ１２によって検出されたディスク装置１の温度と、に基づいて、バックアップの実行が可能な時間を推定し、推定された時間にフラッシュＲＯＭ１１の書き込み速度を乗算することによって、キャッシュエリア１０のサイズの設定値を取得する。
【００７１】
キャッシュエリア１０のサイズの設定値を取得する方法は、これに限定されない。例えば、ディスク制御回路５は、ディスク装置１に具備されるディスク２の数と、温度センサ１２によって検出されたディスク装置１の温度と、フラッシュＲＯＭ１１の書き込み速度と、キャッシュエリア１０のサイズと、の関係を示す情報（例えばテーブル）に基づいて、キャッシュエリア１０のサイズの設定値を取得してもよい。
【００７２】
また、ディスク制御回路５は、キャッシュエリア１０内のデータをフラッシュＲＯＭ１１に退避する際に、所定量のデータを退避する毎にタイムスタンプを生成し、そのタイムスタンプをフラッシュＲＯＭ１１に記録する。そして、ディスク制御回路５は、次にディスク装置１が起動された場合に、フラッシュＲＯＭ１１に記録されたタイムスタンプに基づいてフラッシュＲＯＭ１１の書き込み速度を演算する。
【００７３】
この構成により、フラッシュＲＯＭ１１の書き込み速度に個体差や経時的な変化がある場合であっても、ディスク装置１に具備されたフラッシュＲＯＭ１１の書き込み速度の実力値に応じてキャッシュエリア１０にサイズを大きくすることが可能である。
【００７４】
なお、所定量のデータを退避する毎にタイムスタンプを記録する方法は、フラッシュＲＯＭ１１の書き込み速度の実力値を測定する方法の一例である。ディスク制御回路５は、任意の方法でフラッシュＲＯＭ１１の書き込み速度の実力値を測定し得る。例えば、ディスク制御回路５は、バックアップの実行の際に、フラッシュＲＯＭ１１に送る書き込み指示の間隔などの、フラッシュＲＯＭ１１の書き込み速度に関連した任意の情報をフラッシュＲＯＭ１１に記録しておき、次に起動された際、当該情報を用いてフラッシュＲＯＭ１１の書き込み速度を演算してもよい。
【００７５】
ログ情報１６が記録されていない場合、フラッシュＲＯＭ１１の書き込み速度の実力値が得られない。よって、ディスク制御回路５は、ディスク装置１が最初に起動された場合には、フラッシュＲＯＭ１１のスペックワースト値をフラッシュＲＯＭ１１の書き込み速度として使用する。よって、ディスク装置１が最初に起動された場合には、フラッシュＲＯＭ１１の書き込み速度のばらつきに関係なく確実にキャッシュエリア１０内のデータを退避できるように、キャッシュエリア１０のサイズを設定することが可能である。
【００７６】
また、ディスク制御回路５は、所定の時間間隔で温度センサ１２から温度検出値を取得し、温度検出値を用いてキャッシュエリア１０のサイズの設定値を更新する。
【００７７】
よって、ディスク装置１が動作中に温度が変化する場合においても、キャッシュエリア１０のサイズをその状況下で使用できる最大のサイズに適宜調整することが可能となる。
【００７８】
また、バックアップの実行時に、ディスク制御回路５は、電源制御回路７ａが発行するバックアップイネーブル信号のアサート時間１８を記録する。そして、次にディスク装置１が起動された場合に、バックアップ時間情報１４に記録された対応する値を、アサート時間１８を用いて更新する。
【００７９】
図５は、実施形態にかかる、バックアップイネーブル信号とバックアップの実行時間との関係を示すタイミングチャートである。本タイミングチャートには、ホスト装置ＨＳから供給される電力および電源制御回路７ａによって各部に供給される電力のそれぞれについて、電圧値の遷移がさらに描画されている。
【００８０】
時刻ｔ０においてパワーロスが発生すると、電源制御回路７ａは、各部に供給される電力を、回生エネルギーに基づいて生成する。よって、電源制御回路７ａは、パワーロスの発生の前後で電圧の変動なく電力を供給できる。電源制御回路７ａは、パワーロスを検知した後、バックアップイネーブル信号をアサートする（時刻ｔ１）。電源制御回路７ａは、生成する電力の電圧値が所定値を下回ると、バックアップイネーブル信号をネゲートする（時刻ｔ４）。ディスク制御回路５は、バックアップイネーブル信号がアサートされると、バックアップを開始し（時刻ｔ２）、バックアップイネーブル信号がネゲートされる時刻ｔ４の前にバックアップを終了する（時刻ｔ３）。
【００８１】
ディスク制御回路５は、時刻ｔ１から時刻ｔ４までの期間を、アサート時間１８として記録し、アサート時間１８を用いてバックアップ時間情報１４を更新する。これにより、例えば、次回のバックアップの際には、時刻ｔ４の直前の例えば時刻ｔ５までバックアップの処理を継続することが可能となる。即ち、予め用意されたバックアップ時間情報１４が正確でない場合であっても、キャッシュエリア１０のサイズが可能なかぎり大きくすることができるように、バックアップ時間情報１４を校正することが可能である。
【００８２】
バックアップ時間情報１４は、例えば、フラッシュＲＯＭ１１またはディスク２などの不揮発性の記憶領域に格納され、当該記憶領域からＳＲＡＭ１３にロードされる、として説明した。ディスク制御回路５は、ＳＲＡＭ１３にロードされたバックアップ時間情報１４を更新した場合には、不揮発性の記憶領域内のバックアップ時間情報１４を、更新されたバックアップ時間情報１４によって上書きしてもよい。これにより、次の起動時には、更新されたバックアップ時間情報１４を利用することが可能となる。
【００８３】
なお、ディスク装置は、エンクロージャが密閉され、内部にヘリウムが充填される場合がある。ディスク装置にヘリウムが充填されることによって、ＳＰＭの摩擦抵抗が減少し、ＳＰＭでの発熱量が減少する。また、ＳＰＭの停止時に発生する回生エネルギーが増加する。即ち、ディスク装置は、内部にヘリウムが充填された場合、内部に空気が充填された場合に比べて、バックアップの際により多くのデータを退避することが可能である。
【００８４】
ディスク装置１が、ディスク装置１の温度やアサート時間１８に応じてキャッシュエリア１０のサイズを調整するので、ディスク装置１に充填される気体が空気であるかヘリウムであるかに関わらずキャッシュエリア１０のサイズを可能なかぎり大きくすることができる。即ち、製造者が、ディスク装置１に充填される気体が空気であるかヘリウムであるかに応じてディスク制御回路５の機能を変更することが不要となる。
【００８５】
また、ディスク装置１に充填されたヘリウムがアクシデントによりリークした場合、ディスク装置１は、ディスク装置１の温度やアサート時間１８に応じてキャッシュエリア１０のサイズを自動で調整する。よってその様な場合であっても、バックアップの際にディスク装置１からデータが喪失することを防止することが可能である。
【００８６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８７】
１  ディスク装置、２  ディスク、３  ＳＰＭ、４  ＶＣＭ、４ａ  軸、５  ディスク制御回路、６  ヘッド制御回路、７  駆動回路、７ａ  電源制御回路、７ｂ  スピンドルモータ制御回路、８  リードライトチャネル、９  ＲＡＭ、１０  キャッシュエリア、１１  フラッシュＲＯＭ、１２  温度センサ、１３  ＳＲＡＭ、１４  バックアップ時間情報、１５  退避データ、１６  ログ情報、１７  タイムスタンプ、１８  アサート時間、１９  温度情報。
【図１】
2019164522.tif 000003
【図２】
2019164522.tif 000004
【図３】
2019164522.tif 000005
【図４】
2019164522.tif 000006
【図５】
2019164522.tif 000007