(57)【要約】【課題】大量のデータを記録再生することができるハードディスク装置の如き記録再生装置において、簡単な構成で起動時における高速アクセスが行えるようにする。【解決手段】ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部１０５と、不揮発性メモリによって構成された不揮発性バッファメモリ１１０を備える場合に、不揮発性バッファメモリ１１０を構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第１のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第２のフラグの記憶領域を有する構成とした。【選択図】        図２
2004310948.tif 000002
【特許請求の範囲】
【請求項１】
データが記録される記録媒体と、
ホストからのコマンドを解釈して、データの前記記録媒体への書込み及び読み出しを制御する制御部と、
不揮発性メモリによって構成された不揮発性バッファメモリを備える記録再生装置において、
前記不揮発性バッファメモリを構成する各ラインは、タグ部及びデータ部より構成し、
前記タグ部は、データの有効性を示す第１のフラグと、装置の電源が切断され再び電源が投入されるまで前記データ部に格納されているデータを保護する第２のフラグの記憶領域を有することを特徴とする
記録再生装置。
【請求項２】
請求項１記載の記録再生装置において、
前記制御部は、前記不揮発性バッファメモリ上のラインに対し、装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護する前記第２のフラグをセットする動作を伴うコマンドの処理を行うことを特徴とする
記録再生装置。
【請求項３】
請求項１記載の記録再生装置において、
前記制御部は、前記不揮発性バッファメモリ上のライン上にセットされた、装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護する前記第２のフラグをリセットする動作を実行するコマンドの処理を行うことを特徴とする
記録再生装置。
【請求項４】
請求項１記載の記録再生装置において、
前記制御部は、前記記録媒体を起動させる場合に、前記不揮発性バッファメモリの初期化処理を行って、前記第２のフラグがセットされていないラインが記憶したデータを消去することを特徴とする
記録再生装置。
【請求項５】
請求項１記載の記録再生装置において、
前記制御部は、前記第２のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが前記不揮発性バッファメモリに記憶されていない場合において、前記第２のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、前記第２のフラグがセットされていないラインが存在しなければ、ラインの置き換えを行なわないことを特徴とする
記録再生装置。
【請求項６】
請求項１記載の記録再生装置において、
前記制御部は、前記第２のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが前記不揮発性バッファメモリに記憶されていない場合において、前記第２のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、前記第２のフラグがセットされていないラインが存在しなければ、前記第２のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることを特徴とする
記録再生装置。
【請求項７】
請求項１記載の記録再生装置において、
前記制御部は、前記第２のフラグをセットさせるコマンドの実行を行う際に、前記第２のフラグがセットされていないラインが存在する場合に、そのラインに該当する区間のデータを書き込ませ、前記第２のフラグがセットされていないラインが存在しなければ、前記第２のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることを特徴とする
記録再生装置。
【請求項８】
請求項１記載の記録再生装置において、
前記制御部は、前記第２のフラグをセットさせるコマンドの実行を行う際に、前記不揮発性バッファメモリに該当するデータが書き込まれたラインが存在し、そのラインに前記第２のフラグがセットされていない場合に、そのラインに前記第２のフラグをセットすることを特徴とする
記録再生装置。
【請求項９】
請求項１記載の記録再生装置において、
前記制御部は、前記記録媒体へのアクセス準備が完了する前に、ホスト側よりデータを読み出しさせるコマンドを受信した場合に、前記不揮発性バッファメモリに記憶されたデータを送信することを特徴とする
記録再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばハードディスクを記録媒体として使用したディスク装置に適用して好適な記録再生装置に関し、特に記録媒体に記録し再生するデータを一時蓄積するバッファメモリを備えた記録再生装置に関する。
【０００２】
【従来の技術】
従来、大量のデータを記録することを可能にするディスク装置は、映像、音声等のコンテンツを記録する大容量記録装置として、家庭用電化製品等にも用いられ、コンピュータシステムに限らず、様々な製品に幅広く利用されている。
【０００３】
図１０に従来の一般的なディスク装置の構成を示す。ディスク装置１０は、ディスク形状を有する記録媒体であるディスク１２を、スピンドルモータ１１で回転駆動させる構成としてあり、アクチュエータ１３により駆動されるヘッド１４で、回転したディスク１２にデータを記録し、その記録したデータを再生することができる。このヘッド１４による記録や再生は、制御部１５による制御で実行される。制御部１５は、図示しない外部のホストからのコマンドに基づいて、記録や再生を実行させる。
【０００４】
図１１は、図１０に示した如きディスク装置の起動手順を示すものである。まず、スピンドルモータ１１に電源を投入し（ステップＳ１）し、ディスク１２を回転起動する（ステップＳ２）。この回転起動後に、安定してディスク１２が回転するようになったか否か判断し（ステップＳ３）、安定して回転するようになったら、ヘッド１４を正しく情報の記録している位置まで動かすために、アクチュエータ１３に加わる外力の測定を行う（ステップＳ４）。
【０００５】
その後、アクチュエータ１３によって情報の記録されている位置までヘッド１４を移動し、ヘッド１４よりディスク１２に記録されている情報を読み取ることによりデータへのアクセスを行なう（ステップＳ５）。このため、電源を投入した直後は、ホストよりデータへアクセスするためのコマンドを制御部１５が受信しても、ディスク装置は、ディスク回転の安定化、外力の測定に要する時間を必要とするため、ホストからのリクエストに直に応答することはできず、システムの起動時間を遅くする要因となっていた。
【０００６】
この問題を解決するために、従来、例えば特許文献１では、ディスク装置に、ディスクから読み出したデータを一時蓄積させるバッファメモリの他に、ホストからのコマンド及びデータを保存する不揮発性メモリを有する構成としたものが提案されている。起動時にホストからコマンドを待つことなく予め不揮発性メモリに保存されたコマンドに従って動作することにより、ホストからのリクエストに対する応答の高速化を実現する。また、起動時に予め不揮発性メモリに格納されたデータをバッファメモリに読み込むことによって、高速起動を実現する。
【０００７】
【特許文献１】
特開平９−５４７４２号公報
【０００８】
【発明が解決しようとする課題】
ところが、特許文献１に記載のように、バッファメモリと不揮発性メモリをディスク装置内に別々に用意すると、それだけディスク装置が必要とするメモリが増えることになり、ディスク装置の構成が複雑化する問題がある。従来、バッファメモリとしては、いわゆるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と称される揮発性のメモリが使用されていて、記録時や再生時の一時記憶用としてだけ使用されているため、バッファメモリに記憶されたデータを、ディスク装置の電源再投入時に活用することは不可能であったため、バッファメモリとは別に不揮発性メモリを用意する構成が考えられたが、構成の簡易化のために、例えこのバッファメモリを不揮発性メモリに置き換えたとしても、従来のメモリ制御処理では、バッファメモリに記憶されているデータを装置の起動時に有効活用するような構成にはなってなく、従来から提案されている処理では不十分であった。
【０００９】
特に、ハードディスク装置の如き高速アクセスが可能なディスク装置で、その高速アクセス性が、装置の起動時（電源投入時など）にも保てるようにするためには、単純にメモリを増やしたり、不揮発性メモリに置き換えるだけでは不十分であり、効果的なメモリ制御が要求されていた。
【００１０】
本発明の目的は、大量のデータを記憶媒体に記録し再生することができる記録再生装置において、簡単な構成で起動時における高速アクセスが行えるようにすることにある。
【００１１】
【課題を解決するための手段】
本発明は、ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部と、不揮発性メモリによって構成された不揮発性バッファメモリを備える記録再生装置において、不揮発性バッファメモリを構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第１のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第２のフラグの記憶領域を有する構成としたものである。
【００１２】
このようにしたことで、不揮発性メモリをバッファメモリとして使用した場合に、不揮発性メモリのタグ部に記憶される第１のフラグと第２のフラグを使用した処理を行うことで、装置の電源再投入時に使用できる有効かつ誤りのないデータであることが迅速に確認できるようになる。
【００１３】
【発明の実施の形態】
以下、本発明の一実施の形態を、図１〜図９を参照して説明する。
【００１４】
本例においては、ハードディスクと称されるディスク状の記録媒体に記録し再生するディスク装置に適用した例としてある。基本的にはハードディスクは、ディスク装置から取り外すことができない状態で装着されているが、ディスク装置に対して着脱自在なディスクを記録媒体として使用することも可能である。
【００１５】
本例においては、例えば図１に示すように、ホスト９０とディスク装置１００とを所定の信号線により接続させてあり、ホスト９０からのコマンド９９を、ディスク装置１００内で判別して、ディスクへの記録や、ディスクからの再生が行われれる。ホスト９０としては、例えばパーソナルコンピュータ装置の制御部（演算処理部）が想定される。或いは、パーソナルコンピュータ装置のような汎用の記録装置ではなく、ビデオデータやオーディオデータの記録再生用のディスク装置として構成して、その記録再生装置の制御部をホスト９０としても良い。
【００１６】
図２は、本例のディスク装置１００の内部の構成例を示す。ディスク装置１００は、ディスク形状を有する記録媒体であるディスク１０２を、スピンドルモータ１０１で回転駆動させる構成としてあり、アクチュエータ１０３により駆動されるヘッド１０４で、回転したディスク１０２にデータを記録し、その記録したデータを再生することができる。このヘッド１０４による記録や再生は、制御部１０５による制御で実行される。制御部１０５は、図１に示したホスト９０からのコマンドに基づいて、記録や再生を実行させる。ディスク１０２の回転起動についても制御部１０５が制御する。
【００１７】
なお、起動時の処理の詳細については後述するが、ここでの起動とは、例えば、ディスク装置１００の電源が投入され続けている限り、ディスク１０２をスピンドルモータ１０１で回転させて、ディスク１０２への記録や再生ができる状態に待機して、電源オフ操作があった場合だけ、ディスク１０２の回転を停止させて、電源オン操作があった場合に、ディスクの回転を再開させて起動させる処理が想定される。或いは、例えば、ある一定の時間、ディスクへの記録又は再生が行われない場合に、ディスク１０２のスピンドルモータ１０１による回転を停止させ、記録又は再生に関するコマンドを受信した場合に、ディスク１０２の回転を再開させて起動させるようにしても良い。後述する電源投入とは、ディスク装置全体の電源オン操作があった場合と、スピンドルモータが停止した状態から、スピンドルモータの電源を投入させる場合の、いずれであっても良い。
【００１８】
図２の構成の説明に戻ると、制御部１０５には、不揮発性バッファメモリ１１０が接続してあり、この不揮発性バッファメモリ１０５を、ディスクへの記録時（書込み時）のバッファメモリとして使用すると共に、ディスクからの再生時（読み出し時）のバッファメモリとしても使用し、記録や再生時のキャッシュメモリとして機能するものである。本例の不揮発性バッファメモリ１０５は、電源を供給しない状態でも、記憶されたデータを保持し続ける書換え可能な不揮発性メモリが使用される。具体的には、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  ），ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の不揮発性メモリが、不揮発性バッファメモリ１０５として使用される。ＭＲＡＭは、ＴＭＲ（Ｔｕｎｎｅｌｉｎｇ  Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ）素子と称されるトンネル型磁気抵抗効果素子を使用して、磁化状態の抵抗値などの違いを利用して情報を読み書きする記憶素子である。ＦｅＲＡＭは、強誘電体を利用した記憶素子である。これらのＭＲＡＭ，ＦｅＲＡＭ等の不揮発性メモリの場合には、ＤＲＡＭやＳＲＡＭ等のメモリと同様に、高速なアクセスが可能で比較的大容量のメモリであるが、ＤＲＡＭ等と異なり停電時にも記憶データが消失しない特徴を有する。後述するようにその他の不揮発性メモリであっても、同様な高速アクセスが可能な大容量の不揮発性メモリであれば使用可能である。
【００１９】
制御部１０５は、ホスト９０からのコマンドに従い、スピンドルモータ１０１やアクチュエータ１０３の制御を行なうと同時に不揮発性バッファメモリ１１０の管理も行なう。
【００２０】
図３は、本例の不揮発性バッファメモリ１１０の内部構成の一例を示したものである。不揮発性バッファメモリ１１０は、複数のライン１１１により構成される。それぞれのライン１１１は、タグ部１１２とデータ部１１３とより構成される。タグ部１１２は、ライン１１１の状態を示す状態フラグ部とインデクス１１４より成る。状態フラグ部は、第１のフラグと第２のフラグの２種類のフラグが格納される。第１のフラグは、ラインのデータ部に格納されているデータが有効かどうかを示すＶａｌｉｄフラグ１１６であり、第２のフラグは、ディスク装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するＰｅｒｓｉｓｔｅｎｔフラグ１１７である。以下の説明では、第１のフラグをＶａｌｉｄフラグと称し、第２のフラグをＰｅｒｓｉｓｔｅｎｔフラグと称する。インデクス１１４には、そのラインのデータ部１１３に記憶されたデータのアドレスが記憶される。
【００２１】
本例の場合には、キャッシュライン１１１上のデータ１１５とディスク１０２上のデータとの一貫性を制御するための手段として、書き込みヒット時の動作をライトスルー方式とする。制御部１０５は、ディスク装置１００を制御するコマンドとして、リードコマンド（ディスクからの再生を行うコマンド）、ライトコマンド（ディスクへの記録を行うコマンド）等の一般的なコマンドに加えて、リード、ライトと同時に、ディスク装置の電源が切断され、再び電源が投入されるまで、不揮発性メモリバッファ１１０上のライン１１１に保持されているデータ１１５を保持するように、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７をセットするコマンドを有する。
【００２２】
図４は、Ｐｅｒｓｉｓｔｅｎｔフラグを操作するコマンドの一覧の例を示した図である。ここでは、Ｐｅｒｓｉｓｔｅｎｔフラグを操作するためのリードコマンド及びライトコマンドとして、図４に示すように、Ｐｅｒｓｉｓｔｅｎｔフラグを操作するリードコマンド（ＲＥＡＤ．Ｐコマンド）と、Ｐｅｒｓｉｓｔｅｎｔフラグを操作するライトコマンド（ＷＲＩＴＥ．Ｐコマンド）が用意されている。また、同様にＰｅｒｓｉｓｔｅｎｔフラブ１１７をセットするフィルコマンド（ＦＩＬＬ．Ｐコマンド）を有する。
【００２３】
このフィルコマンドは、ディスク上の特定のアドレスに格納されているデータを、不揮発性メモリバッファ１１０に予め格納させる動作を行うコマンドである。リードコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ１１０に格納されたデータは、ホスト側に転送されるのに対し、フィルコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ１１０に格納する処理だけが実行される。フィルコマンドを使って不揮発性メモリバッファ１１０に格納されたデータを使用することで、該当するデータのリード要求がホスト側からある場合に、データからそのデータを読み出すことなく、リード要求に答えることが可能になる。フィルコマンドを発行する際には、引数として、例えばアドレスとサイズを指定する。この指定により、「指定したアドレスより格納されているディスク上のデータを指定したサイズ分だけ、不揮発性バッファメモリに格納する」動作が実行されることになる。
【００２４】
また、フラグクリアコマンド（ＣＬＥＡＲ．Ｐコマンド）は、指定したアドレスに関連したラインのＰｅｒｓｉｓｔｅｎｔフラグをクリアするコマンドである。フラグクリアオールコマンド（ＣＬＥＡＲＡＬＬ．Ｐコマンド）は、不揮発性バッファメモリ１１０内に存在する全てのライン上のＰｅｒｓｉｓｔｅｎｔフラグ１１７をクリアするコマンドである。ホスト１０５はシステムの終了処理時、次回のシステム起動時にディスク装置からの読出しが必要となるデータをＲＥＡＤ．Ｐコマンド，ＷＲＩＴＥ．Ｐコマンド又はＦＩＬＬ．Ｐコマンドの発行によって、不揮発性メモリバッファ１１０上に書き出す。
【００２５】
Ｐｅｒｓｉｓｔｅｎｔフラグ１１７をセットされたラインは、リード、ライトコマンドの発行によって発生したヒットミスの時においても、後述する制御処理（図６のフローチャート）によって、ライン置き換え候補の対象から外れるため、電源を切断しても、次回起動時までデータ部１１３の内容１１５が保持される。その後、起動時にホスト９０からデータ読出しの要求があった際、ディスク装置１００の制御部１０５は、予め不揮発性バッファメモリ１１０に保持されたデータをリクエストに対し利用することにより、ディスク回転の安定化及び、外力測定処理の終了を完了していない状態においても、ホスト９０からのリクエストに応答することが可能となる。これにより、電源投入時において、ホスト９０からのリクエストに高速に応答することが実現される。
【００２６】
なお、Ｐｅｒｓｉｓｔｅｎｔフラグを操作するコマンドは、通常はシステムの終了処理時に送られるコマンドであり、通常の動作状態では、Ｐｅｒｓｉｓｔｅｎｔフラグの操作を伴わないリードコマンドやライトコマンドが使用される。但し、システム終了時以外であっても、意図的にＰｅｒｓｉｓｔｅｎｔフラグの操作を伴うコマンドを発行することによって、次回起動時に必要となるデータの読み込みを行う場合も想定される。
【００２７】
例えば、フィルコマンド（ＦＩＬＬ．Ｐコマンド）を使用して、ディスク上の特定アドレスに記録されているデータを不揮発性バッファメモリ１１０に記憶させて、次回起動時に必要となるデータを不揮発性バッファメモリ１１０に格納させることができる。このようにして不揮発性バッファメモリ１１０に次回起動時に必要となるデータを格納させておくことで、装置の起動時間の短縮を図ることが可能になる。
【００２８】
図５は、ディスク装置１００の起動時の処理手順の例を示したフローチャートである。まず、ディスク装置１００の電源投入により、制御部１０５の初期化処理が行なわれる（ステップＳ１１）。ステップＳ１１の初期化処理が終了した後に、不揮発性バッファメモリ１１０上に存在する全てのライン１１１に対する初期化処理を行なう。まず、不揮発性バッファメモリ１１０上のラインを１つ選択する（ステップＳ１２）。選択されたラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７がセットされているか否か判断し（ステップＳ１３）、セットされていれば、該当するラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７のクリアを行なう（ステップＳ１４）。もし、選択されたラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７がセットされていなければ、Ｖａｌｉｄフラグ１１６のクリアを行なう（ステップＳ１５）。ステップＳ１４，Ｓ１５の処理を行った後に、全てのラインの初期化処理が終了したか否か判断し（ステップＳ１６）、初期化処理が終了してない場合には、ステップＳ１２に戻って別のラインの処理を行う。
【００２９】
ステップＳ１６で全てのラインの処理が終了すると、不揮発性バッファメモリ１１０の初期化処理が終了する。この初期化処理の終了をもって、不揮発性バッファメモリ上に存在するデータへのアクセス準備が完了し（ステップＳ１７）、ホスト９０からのリクエストに対して、応答可能な状態になる。
【００３０】
次にスピンドルモータ１０１に電源を投入し（ステップＳ１８）、ディスク１０２を起動する（ステップＳ１９）。この起動で、安定してディスク１０２が回転するようになったか否か判断し（ステップＳ２０）、安定するまで待機する。そして、安定するようになったら、ヘッド１０４を正しく情報の記録している位置まで動かすためにアクチュエータ１０３に加わる外力の測定を行なう（ステップＳ２１）。外力測定の終了をもって、その後、アクチュエータ１０３によって情報の記録されている位置までヘッド１０４を移動し、不揮発性バッファメモリ１１０上に存在するデータへのアクセス準備が完了する（ステップＳ２２）。
【００３１】
図６は、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きリードコマンド（ＲＥＡＤ．Ｐコマンド）、及び、ライトコマンド（ＷＲＩＴＥ．Ｐコマンド）と、Ｐｅｒｓｉｓｔｅｎｔフラグ操作を伴わないリードコマンド、及び、ライトコマンド実行時におけるヒットミス時の処理手順の例を示したフローチャートである。なお、本明細書でのヒットミスとは、ディスク１０２にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ１１０に記憶されていないことを指し、ラインヒットとは、ディスク１０２にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ１１０に記憶されている場合を指す。
【００３２】
以下、図６のフローチャートに従って説明すると、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７の操作を伴わないリードコマンド、ライトコマンド実行時のヒットミス時においては、制御部１０５は、不揮発性バッファメモリ１１０上の、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７がセットされていないラインを探す（ステップＳ３１）。ここで、該当するラインが存在するか否か判断し（ステップＳ３２）、該当するラインが存在する場合には、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７がセットされていないラインの中から、ランダムに１つのラインを選択する（ステップＳ３３）。その後、Ｐｅｒｓｉｓｔｅｎｔフラグの操作を伴わないコマンドであるか否か判断し（ステップＳ３４）、ここではＰｅｒｓｉｓｔｅｎｔフラグの操作を伴わないコマンドであるので、ステップＳ３５へ移り、該当する区間のデータのディスクからの読み出し（再生）、又はディスクへの書込み（記録）をした後、選択されたラインにデータをセットする。そして、選択されたラインのＶａｌｉｄフラグ１１６をセットする（ステップＳ３８）。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し（ステップＳ４２）、処理を終了する。ライトコマンドである場合には、ステップＳ４２の処理を行うことなく終了する。
【００３３】
また、ステップＳ３２で、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７のセットされていないラインが存在しない場合、Ｐｅｒｓｉｓｔｅｎｔフラグの操作を伴わないコマンドであるか否か判断し（ステップＳ３９）、ここではＰｅｒｓｉｓｔｅｎｔフラグの操作を伴わないコマンドであるので、ステップＳ４１に移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ステップＳ４２に移り、ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し、処理を終了する。ライトコマンドである場合には、ステップＳ４２の処理を行うことなく終了する。
【００３４】
そして、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７の操作を伴うリードコマンド（ＲＥＡＤ．Ｐコマンド）、及び、ライトコマンド（ＷＲＩＴＥ．Ｐコマンド）実行時のヒットミス時においては、制御部１０５は、ステップＳ３１において、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７がセットされていないラインを探し、ステップＳ３２でのラインが存在するか否か判断し、該当するラインが存在する場合には、ステップＳ３３に移り、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７がセットされていないラインの中から、ランダムに１つのラインを選択する（ステップＳ３３）。その後、Ｐｅｒｓｉｓｔｅｎｔフラグの操作を伴わないコマンドであるか否か判断し（ステップＳ３４）、ここではＰｅｒｓｉｓｔｅｎｔフラグの操作を伴うコマンドであるので、ステップＳ３６へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７をセットし（ステップＳ３７）、さらに選択されたラインのＶａｌｉｄフラグ１１６をセットする（ステップＳ３８）。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し（ステップＳ４２）、処理を終了する。ライトコマンドである場合には、ステップＳ４２の処理を行うことなく終了する。
【００３５】
Ｐｅｒｓｉｓｔｅｎｔフラグ１１７の操作を伴うリードコマンド（ＲＥＡＤ．Ｐコマンド）、及び、ライトコマンド（ＷＲＩＴＥ．Ｐコマンド）実行時のヒットミス時で、ステップＳ３２でＰｅｒｓｉｓｔｅｎｔフラグ１１７のセットされていないラインが存在しないと判断した場合には、ステップＳ３３で、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７の操作を伴う命令であると判断して、ステップＳ４０に移り、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７のセットされているラインの中からランダムに置き換えの対象となるラインを１つ選択する。その後、ステップＳ３６へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７をセットし（ステップＳ３７）、さらに選択されたラインのＶａｌｉｄフラグ１１６をセットする（ステップＳ３８）。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し（ステップＳ４２）、処理を終了する。ライトコマンドである場合には、ステップＳ４２の処理を行うことなく終了する。
【００３６】
図７は、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きフィルコマンド（ＦＩＬＬ．Ｐ）実行時におけるヒットミス時の処理手順の例を示したフローチャートである。Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きフィルコマンドの実行時のヒットミス時においては、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７のセットされていないラインを探す（ステップＳ５１）。この処理で、該当するラインが存在するか否か判断し（ステップＳ５２）、存在するとき、Ｐｅｒｓｉｓｔｅｎｔフラグ１１７のセットされていないラインの中から、ランダムにラインを１つ選択する（ステップＳ５３）。その後、データをリード（読み出し）した後に、ステップＳ５３で選択したラインにデータをセットし（ステップＳ５５）、その後に、そのラインにＰｅｒｓｉｓｔｅｎｔフラグ１１７のセットを行なう（ステップＳ５６）。さらに、そのラインにＶａｌｉｄフラグ１１６をセットして終了する（ステップＳ５７）。
【００３７】
ステップＳ５２でＰｅｒｓｉｓｔｅｎｔフラグ１１７のセットされていないラインが存在しない場合は、Ｐｅｒｓｉｓｔｅｎｔフラグのセットされているラインの中から、ランダムに置き換えの対象となるラインを１つ選択する（ステップＳ５４）。その後は、ステップＳ５５に移り、データをリード（読み出し）した後に、ステップＳ５４で選択したラインにデータをセットし、その後に、そのラインにＰｅｒｓｉｓｔｅｎｔフラグ１１７のセットを行なう（ステップＳ５６）。さらに、そのラインにＶａｌｉｄフラグ１１６をセットして終了する（ステップＳ５７）。
【００３８】
図８は、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きコマンド、及び、Ｐｅｒｓｉｓｔｅｎｔフラグ操作なしコマンド実行時における、ラインヒット時の処理手順の例を示したフローチャートである。コマンド実行時、ラインにヒットした場合、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ヒットしたラインのデータ部１１３に新しいデータをセットする（ステップＳ６１）。ここで、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きコマンドであるか否か判断し（ステップＳ６２）、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きコマンドである場合、ヒットしたラインのＰｅｒｓｉｓｔｅｎｔフラグ１１７のセットを行なう（ステップＳ６３）。その後、リードコマンドの場合は、ホストへデータを送信して終了する（ステップＳ６４）。リードコマンドでない場合には、そのまま終了する。
【００３９】
ステップＳ６２で、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きコマンドでないと判断した場合には、ステップＳ６４に移り、リードコマンドの場合は、ホストへデータを送信して終了する。リードコマンドでない場合には、そのまま終了する。
【００４０】
図９は、ディスク装置１００の起動処理時において、不揮発性バッファメモリ１１０上に存在するデータへのアクセス準備が完了した後に（ステップＳ７１、図５のフローチャートのステップＳ１７に相当）、ホスト９０からリードコマンドを受信したとき（ステップＳ７２）の手順の例を示したフローチャートである。
【００４１】
ステップＳ７２でリードコマンドを受信すると、不揮発性バッファメモリ１１０上に存在するデータに対するリードであるか否か判断し（ステップＳ７３）、不揮発性バッファメモリ１１０上に存在するデータに対するリードのリクエストである場合に、制御部１０５は、不揮発性バッファメモリ１１０上のヒットしたラインのデータをバッファメモリ１１０から読み出して（ステップＳ７４）、そのメモリから読み出したデータをホスト９０へデータを送信する（ステップＳ７５）。これにより、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が応答することが可能となる。
【００４２】
ステップＳ７３で、不揮発性バッファメモリ１１０上に存在しないデータに対するリードがリクエストされたと判断した場合には、ディスクへのアクセス準備が完了するまで待ち（ステップＳ７５）、不揮発性バッファメモリ１１０上に存在しないディスク上のデータへのアクセス準備の完了を以って、ディスクよりデータを読み出し（ステップＳ７６）、そのディスクから読み出したデータをホストへデータを送信する（ステップＳ７７）。
【００４３】
以上説明したように、本例のディスク装置によると、バッファメモリとしてＭＲＡＭの如き不揮発性メモリを使用したことで、電源オフ状態であっても、バッファメモリの記憶データが消失せず、用意された２つのフラグを使用することで、確実にバッファメモリに記憶されたデータが使用でき、バッファメモリに要求されたデータが記憶されている限りは、電源投入時に、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が迅速にホストからのコマンドに応答できるようになる。
【００４４】
特に、ＭＲＡＭのような不揮発性メモリは、記憶容量が比較的大容量で、かつ高速のデータ転送が可能であり、画像データなどの大容量データを扱う場合であっても、ラインヒット時には高速でホスト側に転送できる。さらに、ＭＲＡＭのような不揮発性メモリは、データの書込み回数もほぼ無制限であり、電源の瞬時の停電にも強く、定消費電力であり待機電力をゼロにすることができ、本例のような処理を行ってディスク装置のバッファメモリとして使用できるようになったことで、簡単な構成でディスク装置の起動時における高速アクセス性が向上する。
【００４５】
なお、上述した実施の形態では、不揮発性バッファメモリとして、ＭＲＡＭとＦｅＲＡＭを示したが、その他の不揮発性メモリであっても、大容量性と高速性を備えたメモリであれば、適用可能である。例えば、ＯＵＭ（Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｅｙ）、ＰＭＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｍｅｔａｌｌｉｚａｔｉｏｎ  Ｃｅｌｌ  ）などを使用することも可能である。ＯＵＭは、相変化膜を用いた記憶素子である。
【００４６】
なお、上述した実施の形態では、不揮発性バッファメモリ１１０のタグ部１１２には、２つのフラグをセットできる構成としたが、不揮発性バッファメモリ１１０のタグ部１１２にＤｉｒｔｙフラグを追加することにより、キャッシュライン１１１上のデータ１１７とディスク４０３上のデータとの一貫性を制御するための手段として、ライトバック方式を用いることが可能となる。
【００４７】
ディスク装置１００内の不揮発性バッファメモリ１１０へのデータ格納は、例えば、オペレーティングシステムが次回起動時に必要となるデータを、Ｐｅｒｓｉｓｔｅｎｔフラグ操作付きコマンドの発行によって行なうと良い。
【００４８】
また、データ部に格納されているデータを保護するＰｅｒｓｉｓｔｅｎｔフラグを装備しない不揮発性バッファメモリの構成としても良い。この場合には、システム終了処理時において、起動時に必要となるデータを最後にディスクに書き出すことで対処できる。
【００４９】
また、上述した実施の形態では、ハードディスク装置としてのディスク装置に適用した例について説明したが、スピンドルモータ等によりディスクの回転を伴って記録又は再生を行うディスク装置であれば、その他の装置にも適用可能である。例えば、ＣＤ−ＲＯＭドライブ装置、ＭＤドライブ装置、ＤＶＤドライブ装置などの、光ディスクや光磁気ディスクを駆動するディスク記録再生装置においても有効である。これらの光ディスクや光磁気ディスクを使用した場合には、ハードディスクとは異なり、ディスクの着脱が自在である場合が一般的である。また、ディスクを有する装置に限らず、テープ状の記録媒体などのドライブ装置（記録再生装置）に、キャッシュメモリを備えた場合においても有効である。
【００５０】
【発明の効果】
本発明によると、ディスク装置などの記録再生装置の起動時に、ホストからのリクエストがあった際に、予め不揮発性バッファメモリに格納されたデータの内の有効なデータだけを高速で読み出して、ディスクなどの記録媒体の起動が安定する前に高速で応答することができ、実質的に記録媒体の起動時間を短縮でき、システムの高速起動を実現できる効果を有する。
【００５１】
この場合、制御部は、不揮発性バッファメモリ上のラインに対し、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをセットする動作を伴うコマンドの処理を行うことで、データ保護を行うフラグのセットが確実に行える効果を有する。
【００５２】
また、制御部は、不揮発性バッファメモリ上のライン上にセットされた、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをリセットする動作を実行するコマンドの処理を行うことで、不揮発性バッファメモリの記憶領域を有効に活用することができるようになる。
【００５３】
また、制御部は、記録媒体を起動させる場合に、不揮発性バッファメモリの初期化処理を行って、第２のフラグがセットされていないラインが記憶したデータを消去することで、記録媒体起動時に不要なデータの消去が行え、不揮発性バッファメモリの記憶領域が有効に活用できるようになる。
【００５４】
また、制御部は、第２のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第２のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第２のフラグがセットされていないラインが存在しなければ、ラインの置き換えを行なわないことで、不揮発性バッファメモリが保持したデータの保護が有効に行えるようになる。
【００５５】
また、制御部は、第２のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第２のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第２のフラグがセットされていないラインが存在しなければ、第２のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第２のフラグの処理を伴わない記録媒体アクセス時に、全てのラインに第２のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【００５６】
また、制御部は、第２のフラグをセットさせるコマンドの実行を行う際に、第２のフラグがセットされていないラインが存在する場合に、そのラインに該当する区間のデータを書き込ませ、第２のフラグがセットされていないラインが存在しなければ、第２のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第２のフラグをセットさせるコマンドの実行時に、全てのラインに第２のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【００５７】
また、制御部は、第２のフラグをセットさせるコマンドの実行を行う際に、不揮発性バッファメモリに該当するデータが書き込まれたラインが存在し、そのラインに第２のフラグがセットされていない場合に、そのラインに第２のフラグをセットすることで、不揮発性バッファメモリに書き込まれたデータが有効に活用されることになる。
【００５８】
さらに、制御部は、記録媒体へのアクセス準備が完了する前に、ホスト側よりデータを読み出しさせるコマンドを受信した場合に、不揮発性バッファメモリに記憶されたデータを送信することで、起動時における高速アクセス性が向上する。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるシステム例を示す構成図である。
【図２】本発明の一実施の形態によるディスク装置の構成例を示すブロック図である。
【図３】本発明の一実施の形態によるバッファメモリの記憶領域の構成例を示した説明図である。
【図４】本発明の一実施の形態によるコマンドの例を示した説明図である。
【図５】本発明の一実施の形態によるディスク起動時の処理例を示したフローチャートである。
【図６】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図７】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図８】本発明の一実施の形態によるラインヒット時の処理例を示したフローチャートである。
【図９】本発明の一実施の形態によるデータリードコマンド受信時の処理例を示したフローチャートである。
【図１０】従来のディスク装置の構成例を示したブロック図である。
【図１１】従来のディスク起動時の処理例を示したフローチャートである。
【符号の説明】
１０…ディスク装置、１１…スピンドルモータ、１２…ディスク、１３…アクチュエータ、１４…ヘッド、１５…制御部、９０…ホスト、９９…コマンド、１００…ディスク装置、１０１…スピンドルモータ、１０２…ディスク、１０３…アクチュエータ、１０４…ヘッド、１０５…制御部、１１０…不揮発性バッファメモリ、１１１…ライン、１１２…タグ部、１１３…データ部、１１４…インデクス、１１５…データ、１１６…Ｖａｌｉｄ  フラグ、１１７…Ｐｅｒｓｉｓｔｅｎｔフラグ
【図１】
2004310948.tif 000003
【図２】
2004310948.tif 000004
【図３】
2004310948.tif 000005
【図４】
2004310948.tif 000006
【図５】
2004310948.tif 000007
【図６】
2004310948.tif 000008
【図７】
2004310948.tif 000009
【図８】
2004310948.tif 000010
【図９】
2004310948.tif 000011
【図１０】
2004310948.tif 000012
【図１１】
2004310948.tif 000013