JP2004310948A - 記録再生装置 - Google Patents
記録再生装置 Download PDFInfo
- Publication number
- JP2004310948A JP2004310948A JP2003105671A JP2003105671A JP2004310948A JP 2004310948 A JP2004310948 A JP 2004310948A JP 2003105671 A JP2003105671 A JP 2003105671A JP 2003105671 A JP2003105671 A JP 2003105671A JP 2004310948 A JP2004310948 A JP 2004310948A
- Authority
- JP
- Japan
- Prior art keywords
- data
- flag
- recording
- line
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】大量のデータを記録再生することができるハードディスク装置の如き記録再生装置において、簡単な構成で起動時における高速アクセスが行えるようにする。
【解決手段】ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部105と、不揮発性メモリによって構成された不揮発性バッファメモリ110を備える場合に、不揮発性バッファメモリ110を構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第1のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第2のフラグの記憶領域を有する構成とした。
【選択図】 図2
【解決手段】ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部105と、不揮発性メモリによって構成された不揮発性バッファメモリ110を備える場合に、不揮発性バッファメモリ110を構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第1のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第2のフラグの記憶領域を有する構成とした。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、例えばハードディスクを記録媒体として使用したディスク装置に適用して好適な記録再生装置に関し、特に記録媒体に記録し再生するデータを一時蓄積するバッファメモリを備えた記録再生装置に関する。
【0002】
【従来の技術】
従来、大量のデータを記録することを可能にするディスク装置は、映像、音声等のコンテンツを記録する大容量記録装置として、家庭用電化製品等にも用いられ、コンピュータシステムに限らず、様々な製品に幅広く利用されている。
【0003】
図10に従来の一般的なディスク装置の構成を示す。ディスク装置10は、ディスク形状を有する記録媒体であるディスク12を、スピンドルモータ11で回転駆動させる構成としてあり、アクチュエータ13により駆動されるヘッド14で、回転したディスク12にデータを記録し、その記録したデータを再生することができる。このヘッド14による記録や再生は、制御部15による制御で実行される。制御部15は、図示しない外部のホストからのコマンドに基づいて、記録や再生を実行させる。
【0004】
図11は、図10に示した如きディスク装置の起動手順を示すものである。まず、スピンドルモータ11に電源を投入し(ステップS1)し、ディスク12を回転起動する(ステップS2)。この回転起動後に、安定してディスク12が回転するようになったか否か判断し(ステップS3)、安定して回転するようになったら、ヘッド14を正しく情報の記録している位置まで動かすために、アクチュエータ13に加わる外力の測定を行う(ステップS4)。
【0005】
その後、アクチュエータ13によって情報の記録されている位置までヘッド14を移動し、ヘッド14よりディスク12に記録されている情報を読み取ることによりデータへのアクセスを行なう(ステップS5)。このため、電源を投入した直後は、ホストよりデータへアクセスするためのコマンドを制御部15が受信しても、ディスク装置は、ディスク回転の安定化、外力の測定に要する時間を必要とするため、ホストからのリクエストに直に応答することはできず、システムの起動時間を遅くする要因となっていた。
【0006】
この問題を解決するために、従来、例えば特許文献1では、ディスク装置に、ディスクから読み出したデータを一時蓄積させるバッファメモリの他に、ホストからのコマンド及びデータを保存する不揮発性メモリを有する構成としたものが提案されている。起動時にホストからコマンドを待つことなく予め不揮発性メモリに保存されたコマンドに従って動作することにより、ホストからのリクエストに対する応答の高速化を実現する。また、起動時に予め不揮発性メモリに格納されたデータをバッファメモリに読み込むことによって、高速起動を実現する。
【0007】
【特許文献1】
特開平9−54742号公報
【0008】
【発明が解決しようとする課題】
ところが、特許文献1に記載のように、バッファメモリと不揮発性メモリをディスク装置内に別々に用意すると、それだけディスク装置が必要とするメモリが増えることになり、ディスク装置の構成が複雑化する問題がある。従来、バッファメモリとしては、いわゆるDRAM(Dynamic Randam Access Memory)と称される揮発性のメモリが使用されていて、記録時や再生時の一時記憶用としてだけ使用されているため、バッファメモリに記憶されたデータを、ディスク装置の電源再投入時に活用することは不可能であったため、バッファメモリとは別に不揮発性メモリを用意する構成が考えられたが、構成の簡易化のために、例えこのバッファメモリを不揮発性メモリに置き換えたとしても、従来のメモリ制御処理では、バッファメモリに記憶されているデータを装置の起動時に有効活用するような構成にはなってなく、従来から提案されている処理では不十分であった。
【0009】
特に、ハードディスク装置の如き高速アクセスが可能なディスク装置で、その高速アクセス性が、装置の起動時(電源投入時など)にも保てるようにするためには、単純にメモリを増やしたり、不揮発性メモリに置き換えるだけでは不十分であり、効果的なメモリ制御が要求されていた。
【0010】
本発明の目的は、大量のデータを記憶媒体に記録し再生することができる記録再生装置において、簡単な構成で起動時における高速アクセスが行えるようにすることにある。
【0011】
【課題を解決するための手段】
本発明は、ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部と、不揮発性メモリによって構成された不揮発性バッファメモリを備える記録再生装置において、不揮発性バッファメモリを構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第1のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第2のフラグの記憶領域を有する構成としたものである。
【0012】
このようにしたことで、不揮発性メモリをバッファメモリとして使用した場合に、不揮発性メモリのタグ部に記憶される第1のフラグと第2のフラグを使用した処理を行うことで、装置の電源再投入時に使用できる有効かつ誤りのないデータであることが迅速に確認できるようになる。
【0013】
【発明の実施の形態】
以下、本発明の一実施の形態を、図1〜図9を参照して説明する。
【0014】
本例においては、ハードディスクと称されるディスク状の記録媒体に記録し再生するディスク装置に適用した例としてある。基本的にはハードディスクは、ディスク装置から取り外すことができない状態で装着されているが、ディスク装置に対して着脱自在なディスクを記録媒体として使用することも可能である。
【0015】
本例においては、例えば図1に示すように、ホスト90とディスク装置100とを所定の信号線により接続させてあり、ホスト90からのコマンド99を、ディスク装置100内で判別して、ディスクへの記録や、ディスクからの再生が行われれる。ホスト90としては、例えばパーソナルコンピュータ装置の制御部(演算処理部)が想定される。或いは、パーソナルコンピュータ装置のような汎用の記録装置ではなく、ビデオデータやオーディオデータの記録再生用のディスク装置として構成して、その記録再生装置の制御部をホスト90としても良い。
【0016】
図2は、本例のディスク装置100の内部の構成例を示す。ディスク装置100は、ディスク形状を有する記録媒体であるディスク102を、スピンドルモータ101で回転駆動させる構成としてあり、アクチュエータ103により駆動されるヘッド104で、回転したディスク102にデータを記録し、その記録したデータを再生することができる。このヘッド104による記録や再生は、制御部105による制御で実行される。制御部105は、図1に示したホスト90からのコマンドに基づいて、記録や再生を実行させる。ディスク102の回転起動についても制御部105が制御する。
【0017】
なお、起動時の処理の詳細については後述するが、ここでの起動とは、例えば、ディスク装置100の電源が投入され続けている限り、ディスク102をスピンドルモータ101で回転させて、ディスク102への記録や再生ができる状態に待機して、電源オフ操作があった場合だけ、ディスク102の回転を停止させて、電源オン操作があった場合に、ディスクの回転を再開させて起動させる処理が想定される。或いは、例えば、ある一定の時間、ディスクへの記録又は再生が行われない場合に、ディスク102のスピンドルモータ101による回転を停止させ、記録又は再生に関するコマンドを受信した場合に、ディスク102の回転を再開させて起動させるようにしても良い。後述する電源投入とは、ディスク装置全体の電源オン操作があった場合と、スピンドルモータが停止した状態から、スピンドルモータの電源を投入させる場合の、いずれであっても良い。
【0018】
図2の構成の説明に戻ると、制御部105には、不揮発性バッファメモリ110が接続してあり、この不揮発性バッファメモリ105を、ディスクへの記録時(書込み時)のバッファメモリとして使用すると共に、ディスクからの再生時(読み出し時)のバッファメモリとしても使用し、記録や再生時のキャッシュメモリとして機能するものである。本例の不揮発性バッファメモリ105は、電源を供給しない状態でも、記憶されたデータを保持し続ける書換え可能な不揮発性メモリが使用される。具体的には、MRAM(Magnetic Random Access Memory ),FeRAM(Ferroelectric Random Access Memory)等の不揮発性メモリが、不揮発性バッファメモリ105として使用される。MRAMは、TMR(Tunneling Magnetoresistive)素子と称されるトンネル型磁気抵抗効果素子を使用して、磁化状態の抵抗値などの違いを利用して情報を読み書きする記憶素子である。FeRAMは、強誘電体を利用した記憶素子である。これらのMRAM,FeRAM等の不揮発性メモリの場合には、DRAMやSRAM等のメモリと同様に、高速なアクセスが可能で比較的大容量のメモリであるが、DRAM等と異なり停電時にも記憶データが消失しない特徴を有する。後述するようにその他の不揮発性メモリであっても、同様な高速アクセスが可能な大容量の不揮発性メモリであれば使用可能である。
【0019】
制御部105は、ホスト90からのコマンドに従い、スピンドルモータ101やアクチュエータ103の制御を行なうと同時に不揮発性バッファメモリ110の管理も行なう。
【0020】
図3は、本例の不揮発性バッファメモリ110の内部構成の一例を示したものである。不揮発性バッファメモリ110は、複数のライン111により構成される。それぞれのライン111は、タグ部112とデータ部113とより構成される。タグ部112は、ライン111の状態を示す状態フラグ部とインデクス114より成る。状態フラグ部は、第1のフラグと第2のフラグの2種類のフラグが格納される。第1のフラグは、ラインのデータ部に格納されているデータが有効かどうかを示すValidフラグ116であり、第2のフラグは、ディスク装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するPersistentフラグ117である。以下の説明では、第1のフラグをValidフラグと称し、第2のフラグをPersistentフラグと称する。インデクス114には、そのラインのデータ部113に記憶されたデータのアドレスが記憶される。
【0021】
本例の場合には、キャッシュライン111上のデータ115とディスク102上のデータとの一貫性を制御するための手段として、書き込みヒット時の動作をライトスルー方式とする。制御部105は、ディスク装置100を制御するコマンドとして、リードコマンド(ディスクからの再生を行うコマンド)、ライトコマンド(ディスクへの記録を行うコマンド)等の一般的なコマンドに加えて、リード、ライトと同時に、ディスク装置の電源が切断され、再び電源が投入されるまで、不揮発性メモリバッファ110上のライン111に保持されているデータ115を保持するように、Persistentフラグ117をセットするコマンドを有する。
【0022】
図4は、Persistentフラグを操作するコマンドの一覧の例を示した図である。ここでは、Persistentフラグを操作するためのリードコマンド及びライトコマンドとして、図4に示すように、Persistentフラグを操作するリードコマンド(READ.Pコマンド)と、Persistentフラグを操作するライトコマンド(WRITE.Pコマンド)が用意されている。また、同様にPersistentフラブ117をセットするフィルコマンド(FILL.Pコマンド)を有する。
【0023】
このフィルコマンドは、ディスク上の特定のアドレスに格納されているデータを、不揮発性メモリバッファ110に予め格納させる動作を行うコマンドである。リードコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ110に格納されたデータは、ホスト側に転送されるのに対し、フィルコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ110に格納する処理だけが実行される。フィルコマンドを使って不揮発性メモリバッファ110に格納されたデータを使用することで、該当するデータのリード要求がホスト側からある場合に、データからそのデータを読み出すことなく、リード要求に答えることが可能になる。フィルコマンドを発行する際には、引数として、例えばアドレスとサイズを指定する。この指定により、「指定したアドレスより格納されているディスク上のデータを指定したサイズ分だけ、不揮発性バッファメモリに格納する」動作が実行されることになる。
【0024】
また、フラグクリアコマンド(CLEAR.Pコマンド)は、指定したアドレスに関連したラインのPersistentフラグをクリアするコマンドである。フラグクリアオールコマンド(CLEARALL.Pコマンド)は、不揮発性バッファメモリ110内に存在する全てのライン上のPersistentフラグ117をクリアするコマンドである。ホスト105はシステムの終了処理時、次回のシステム起動時にディスク装置からの読出しが必要となるデータをREAD.Pコマンド,WRITE.Pコマンド又はFILL.Pコマンドの発行によって、不揮発性メモリバッファ110上に書き出す。
【0025】
Persistentフラグ117をセットされたラインは、リード、ライトコマンドの発行によって発生したヒットミスの時においても、後述する制御処理(図6のフローチャート)によって、ライン置き換え候補の対象から外れるため、電源を切断しても、次回起動時までデータ部113の内容115が保持される。その後、起動時にホスト90からデータ読出しの要求があった際、ディスク装置100の制御部105は、予め不揮発性バッファメモリ110に保持されたデータをリクエストに対し利用することにより、ディスク回転の安定化及び、外力測定処理の終了を完了していない状態においても、ホスト90からのリクエストに応答することが可能となる。これにより、電源投入時において、ホスト90からのリクエストに高速に応答することが実現される。
【0026】
なお、Persistentフラグを操作するコマンドは、通常はシステムの終了処理時に送られるコマンドであり、通常の動作状態では、Persistentフラグの操作を伴わないリードコマンドやライトコマンドが使用される。但し、システム終了時以外であっても、意図的にPersistentフラグの操作を伴うコマンドを発行することによって、次回起動時に必要となるデータの読み込みを行う場合も想定される。
【0027】
例えば、フィルコマンド(FILL.Pコマンド)を使用して、ディスク上の特定アドレスに記録されているデータを不揮発性バッファメモリ110に記憶させて、次回起動時に必要となるデータを不揮発性バッファメモリ110に格納させることができる。このようにして不揮発性バッファメモリ110に次回起動時に必要となるデータを格納させておくことで、装置の起動時間の短縮を図ることが可能になる。
【0028】
図5は、ディスク装置100の起動時の処理手順の例を示したフローチャートである。まず、ディスク装置100の電源投入により、制御部105の初期化処理が行なわれる(ステップS11)。ステップS11の初期化処理が終了した後に、不揮発性バッファメモリ110上に存在する全てのライン111に対する初期化処理を行なう。まず、不揮発性バッファメモリ110上のラインを1つ選択する(ステップS12)。選択されたラインのPersistentフラグ117がセットされているか否か判断し(ステップS13)、セットされていれば、該当するラインのPersistentフラグ117のクリアを行なう(ステップS14)。もし、選択されたラインのPersistentフラグ117がセットされていなければ、Validフラグ116のクリアを行なう(ステップS15)。ステップS14,S15の処理を行った後に、全てのラインの初期化処理が終了したか否か判断し(ステップS16)、初期化処理が終了してない場合には、ステップS12に戻って別のラインの処理を行う。
【0029】
ステップS16で全てのラインの処理が終了すると、不揮発性バッファメモリ110の初期化処理が終了する。この初期化処理の終了をもって、不揮発性バッファメモリ上に存在するデータへのアクセス準備が完了し(ステップS17)、ホスト90からのリクエストに対して、応答可能な状態になる。
【0030】
次にスピンドルモータ101に電源を投入し(ステップS18)、ディスク102を起動する(ステップS19)。この起動で、安定してディスク102が回転するようになったか否か判断し(ステップS20)、安定するまで待機する。そして、安定するようになったら、ヘッド104を正しく情報の記録している位置まで動かすためにアクチュエータ103に加わる外力の測定を行なう(ステップS21)。外力測定の終了をもって、その後、アクチュエータ103によって情報の記録されている位置までヘッド104を移動し、不揮発性バッファメモリ110上に存在するデータへのアクセス準備が完了する(ステップS22)。
【0031】
図6は、Persistentフラグ操作付きリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)と、Persistentフラグ操作を伴わないリードコマンド、及び、ライトコマンド実行時におけるヒットミス時の処理手順の例を示したフローチャートである。なお、本明細書でのヒットミスとは、ディスク102にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ110に記憶されていないことを指し、ラインヒットとは、ディスク102にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ110に記憶されている場合を指す。
【0032】
以下、図6のフローチャートに従って説明すると、Persistentフラグ117の操作を伴わないリードコマンド、ライトコマンド実行時のヒットミス時においては、制御部105は、不揮発性バッファメモリ110上の、Persistentフラグ117がセットされていないラインを探す(ステップS31)。ここで、該当するラインが存在するか否か判断し(ステップS32)、該当するラインが存在する場合には、Persistentフラグ117がセットされていないラインの中から、ランダムに1つのラインを選択する(ステップS33)。その後、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS34)、ここではPersistentフラグの操作を伴わないコマンドであるので、ステップS35へ移り、該当する区間のデータのディスクからの読み出し(再生)、又はディスクへの書込み(記録)をした後、選択されたラインにデータをセットする。そして、選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0033】
また、ステップS32で、Persistentフラグ117のセットされていないラインが存在しない場合、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS39)、ここではPersistentフラグの操作を伴わないコマンドであるので、ステップS41に移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ステップS42に移り、ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0034】
そして、Persistentフラグ117の操作を伴うリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)実行時のヒットミス時においては、制御部105は、ステップS31において、Persistentフラグ117がセットされていないラインを探し、ステップS32でのラインが存在するか否か判断し、該当するラインが存在する場合には、ステップS33に移り、Persistentフラグ117がセットされていないラインの中から、ランダムに1つのラインを選択する(ステップS33)。その後、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS34)、ここではPersistentフラグの操作を伴うコマンドであるので、ステップS36へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのPersistentフラグ117をセットし(ステップS37)、さらに選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0035】
Persistentフラグ117の操作を伴うリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)実行時のヒットミス時で、ステップS32でPersistentフラグ117のセットされていないラインが存在しないと判断した場合には、ステップS33で、Persistentフラグ117の操作を伴う命令であると判断して、ステップS40に移り、Persistentフラグ117のセットされているラインの中からランダムに置き換えの対象となるラインを1つ選択する。その後、ステップS36へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのPersistentフラグ117をセットし(ステップS37)、さらに選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0036】
図7は、Persistentフラグ操作付きフィルコマンド(FILL.P)実行時におけるヒットミス時の処理手順の例を示したフローチャートである。Persistentフラグ操作付きフィルコマンドの実行時のヒットミス時においては、Persistentフラグ117のセットされていないラインを探す(ステップS51)。この処理で、該当するラインが存在するか否か判断し(ステップS52)、存在するとき、Persistentフラグ117のセットされていないラインの中から、ランダムにラインを1つ選択する(ステップS53)。その後、データをリード(読み出し)した後に、ステップS53で選択したラインにデータをセットし(ステップS55)、その後に、そのラインにPersistentフラグ117のセットを行なう(ステップS56)。さらに、そのラインにValidフラグ116をセットして終了する(ステップS57)。
【0037】
ステップS52でPersistentフラグ117のセットされていないラインが存在しない場合は、Persistentフラグのセットされているラインの中から、ランダムに置き換えの対象となるラインを1つ選択する(ステップS54)。その後は、ステップS55に移り、データをリード(読み出し)した後に、ステップS54で選択したラインにデータをセットし、その後に、そのラインにPersistentフラグ117のセットを行なう(ステップS56)。さらに、そのラインにValidフラグ116をセットして終了する(ステップS57)。
【0038】
図8は、Persistentフラグ操作付きコマンド、及び、Persistentフラグ操作なしコマンド実行時における、ラインヒット時の処理手順の例を示したフローチャートである。コマンド実行時、ラインにヒットした場合、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ヒットしたラインのデータ部113に新しいデータをセットする(ステップS61)。ここで、Persistentフラグ操作付きコマンドであるか否か判断し(ステップS62)、Persistentフラグ操作付きコマンドである場合、ヒットしたラインのPersistentフラグ117のセットを行なう(ステップS63)。その後、リードコマンドの場合は、ホストへデータを送信して終了する(ステップS64)。リードコマンドでない場合には、そのまま終了する。
【0039】
ステップS62で、Persistentフラグ操作付きコマンドでないと判断した場合には、ステップS64に移り、リードコマンドの場合は、ホストへデータを送信して終了する。リードコマンドでない場合には、そのまま終了する。
【0040】
図9は、ディスク装置100の起動処理時において、不揮発性バッファメモリ110上に存在するデータへのアクセス準備が完了した後に(ステップS71、図5のフローチャートのステップS17に相当)、ホスト90からリードコマンドを受信したとき(ステップS72)の手順の例を示したフローチャートである。
【0041】
ステップS72でリードコマンドを受信すると、不揮発性バッファメモリ110上に存在するデータに対するリードであるか否か判断し(ステップS73)、不揮発性バッファメモリ110上に存在するデータに対するリードのリクエストである場合に、制御部105は、不揮発性バッファメモリ110上のヒットしたラインのデータをバッファメモリ110から読み出して(ステップS74)、そのメモリから読み出したデータをホスト90へデータを送信する(ステップS75)。これにより、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が応答することが可能となる。
【0042】
ステップS73で、不揮発性バッファメモリ110上に存在しないデータに対するリードがリクエストされたと判断した場合には、ディスクへのアクセス準備が完了するまで待ち(ステップS75)、不揮発性バッファメモリ110上に存在しないディスク上のデータへのアクセス準備の完了を以って、ディスクよりデータを読み出し(ステップS76)、そのディスクから読み出したデータをホストへデータを送信する(ステップS77)。
【0043】
以上説明したように、本例のディスク装置によると、バッファメモリとしてMRAMの如き不揮発性メモリを使用したことで、電源オフ状態であっても、バッファメモリの記憶データが消失せず、用意された2つのフラグを使用することで、確実にバッファメモリに記憶されたデータが使用でき、バッファメモリに要求されたデータが記憶されている限りは、電源投入時に、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が迅速にホストからのコマンドに応答できるようになる。
【0044】
特に、MRAMのような不揮発性メモリは、記憶容量が比較的大容量で、かつ高速のデータ転送が可能であり、画像データなどの大容量データを扱う場合であっても、ラインヒット時には高速でホスト側に転送できる。さらに、MRAMのような不揮発性メモリは、データの書込み回数もほぼ無制限であり、電源の瞬時の停電にも強く、定消費電力であり待機電力をゼロにすることができ、本例のような処理を行ってディスク装置のバッファメモリとして使用できるようになったことで、簡単な構成でディスク装置の起動時における高速アクセス性が向上する。
【0045】
なお、上述した実施の形態では、不揮発性バッファメモリとして、MRAMとFeRAMを示したが、その他の不揮発性メモリであっても、大容量性と高速性を備えたメモリであれば、適用可能である。例えば、OUM(Ovonic Unified Memorey)、PMC(Programmable Metallization Cell )などを使用することも可能である。OUMは、相変化膜を用いた記憶素子である。
【0046】
なお、上述した実施の形態では、不揮発性バッファメモリ110のタグ部112には、2つのフラグをセットできる構成としたが、不揮発性バッファメモリ110のタグ部112にDirtyフラグを追加することにより、キャッシュライン111上のデータ117とディスク403上のデータとの一貫性を制御するための手段として、ライトバック方式を用いることが可能となる。
【0047】
ディスク装置100内の不揮発性バッファメモリ110へのデータ格納は、例えば、オペレーティングシステムが次回起動時に必要となるデータを、Persistentフラグ操作付きコマンドの発行によって行なうと良い。
【0048】
また、データ部に格納されているデータを保護するPersistentフラグを装備しない不揮発性バッファメモリの構成としても良い。この場合には、システム終了処理時において、起動時に必要となるデータを最後にディスクに書き出すことで対処できる。
【0049】
また、上述した実施の形態では、ハードディスク装置としてのディスク装置に適用した例について説明したが、スピンドルモータ等によりディスクの回転を伴って記録又は再生を行うディスク装置であれば、その他の装置にも適用可能である。例えば、CD−ROMドライブ装置、MDドライブ装置、DVDドライブ装置などの、光ディスクや光磁気ディスクを駆動するディスク記録再生装置においても有効である。これらの光ディスクや光磁気ディスクを使用した場合には、ハードディスクとは異なり、ディスクの着脱が自在である場合が一般的である。また、ディスクを有する装置に限らず、テープ状の記録媒体などのドライブ装置(記録再生装置)に、キャッシュメモリを備えた場合においても有効である。
【0050】
【発明の効果】
本発明によると、ディスク装置などの記録再生装置の起動時に、ホストからのリクエストがあった際に、予め不揮発性バッファメモリに格納されたデータの内の有効なデータだけを高速で読み出して、ディスクなどの記録媒体の起動が安定する前に高速で応答することができ、実質的に記録媒体の起動時間を短縮でき、システムの高速起動を実現できる効果を有する。
【0051】
この場合、制御部は、不揮発性バッファメモリ上のラインに対し、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをセットする動作を伴うコマンドの処理を行うことで、データ保護を行うフラグのセットが確実に行える効果を有する。
【0052】
また、制御部は、不揮発性バッファメモリ上のライン上にセットされた、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをリセットする動作を実行するコマンドの処理を行うことで、不揮発性バッファメモリの記憶領域を有効に活用することができるようになる。
【0053】
また、制御部は、記録媒体を起動させる場合に、不揮発性バッファメモリの初期化処理を行って、第2のフラグがセットされていないラインが記憶したデータを消去することで、記録媒体起動時に不要なデータの消去が行え、不揮発性バッファメモリの記憶領域が有効に活用できるようになる。
【0054】
また、制御部は、第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、ラインの置き換えを行なわないことで、不揮発性バッファメモリが保持したデータの保護が有効に行えるようになる。
【0055】
また、制御部は、第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第2のフラグの処理を伴わない記録媒体アクセス時に、全てのラインに第2のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【0056】
また、制御部は、第2のフラグをセットさせるコマンドの実行を行う際に、第2のフラグがセットされていないラインが存在する場合に、そのラインに該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第2のフラグをセットさせるコマンドの実行時に、全てのラインに第2のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【0057】
また、制御部は、第2のフラグをセットさせるコマンドの実行を行う際に、不揮発性バッファメモリに該当するデータが書き込まれたラインが存在し、そのラインに第2のフラグがセットされていない場合に、そのラインに第2のフラグをセットすることで、不揮発性バッファメモリに書き込まれたデータが有効に活用されることになる。
【0058】
さらに、制御部は、記録媒体へのアクセス準備が完了する前に、ホスト側よりデータを読み出しさせるコマンドを受信した場合に、不揮発性バッファメモリに記憶されたデータを送信することで、起動時における高速アクセス性が向上する。
【図面の簡単な説明】
【図1】本発明の一実施の形態によるシステム例を示す構成図である。
【図2】本発明の一実施の形態によるディスク装置の構成例を示すブロック図である。
【図3】本発明の一実施の形態によるバッファメモリの記憶領域の構成例を示した説明図である。
【図4】本発明の一実施の形態によるコマンドの例を示した説明図である。
【図5】本発明の一実施の形態によるディスク起動時の処理例を示したフローチャートである。
【図6】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図7】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図8】本発明の一実施の形態によるラインヒット時の処理例を示したフローチャートである。
【図9】本発明の一実施の形態によるデータリードコマンド受信時の処理例を示したフローチャートである。
【図10】従来のディスク装置の構成例を示したブロック図である。
【図11】従来のディスク起動時の処理例を示したフローチャートである。
【符号の説明】
10…ディスク装置、11…スピンドルモータ、12…ディスク、13…アクチュエータ、14…ヘッド、15…制御部、90…ホスト、99…コマンド、100…ディスク装置、101…スピンドルモータ、102…ディスク、103…アクチュエータ、104…ヘッド、105…制御部、110…不揮発性バッファメモリ、111…ライン、112…タグ部、113…データ部、114…インデクス、115…データ、116…Valid フラグ、117…Persistentフラグ
【発明の属する技術分野】
本発明は、例えばハードディスクを記録媒体として使用したディスク装置に適用して好適な記録再生装置に関し、特に記録媒体に記録し再生するデータを一時蓄積するバッファメモリを備えた記録再生装置に関する。
【0002】
【従来の技術】
従来、大量のデータを記録することを可能にするディスク装置は、映像、音声等のコンテンツを記録する大容量記録装置として、家庭用電化製品等にも用いられ、コンピュータシステムに限らず、様々な製品に幅広く利用されている。
【0003】
図10に従来の一般的なディスク装置の構成を示す。ディスク装置10は、ディスク形状を有する記録媒体であるディスク12を、スピンドルモータ11で回転駆動させる構成としてあり、アクチュエータ13により駆動されるヘッド14で、回転したディスク12にデータを記録し、その記録したデータを再生することができる。このヘッド14による記録や再生は、制御部15による制御で実行される。制御部15は、図示しない外部のホストからのコマンドに基づいて、記録や再生を実行させる。
【0004】
図11は、図10に示した如きディスク装置の起動手順を示すものである。まず、スピンドルモータ11に電源を投入し(ステップS1)し、ディスク12を回転起動する(ステップS2)。この回転起動後に、安定してディスク12が回転するようになったか否か判断し(ステップS3)、安定して回転するようになったら、ヘッド14を正しく情報の記録している位置まで動かすために、アクチュエータ13に加わる外力の測定を行う(ステップS4)。
【0005】
その後、アクチュエータ13によって情報の記録されている位置までヘッド14を移動し、ヘッド14よりディスク12に記録されている情報を読み取ることによりデータへのアクセスを行なう(ステップS5)。このため、電源を投入した直後は、ホストよりデータへアクセスするためのコマンドを制御部15が受信しても、ディスク装置は、ディスク回転の安定化、外力の測定に要する時間を必要とするため、ホストからのリクエストに直に応答することはできず、システムの起動時間を遅くする要因となっていた。
【0006】
この問題を解決するために、従来、例えば特許文献1では、ディスク装置に、ディスクから読み出したデータを一時蓄積させるバッファメモリの他に、ホストからのコマンド及びデータを保存する不揮発性メモリを有する構成としたものが提案されている。起動時にホストからコマンドを待つことなく予め不揮発性メモリに保存されたコマンドに従って動作することにより、ホストからのリクエストに対する応答の高速化を実現する。また、起動時に予め不揮発性メモリに格納されたデータをバッファメモリに読み込むことによって、高速起動を実現する。
【0007】
【特許文献1】
特開平9−54742号公報
【0008】
【発明が解決しようとする課題】
ところが、特許文献1に記載のように、バッファメモリと不揮発性メモリをディスク装置内に別々に用意すると、それだけディスク装置が必要とするメモリが増えることになり、ディスク装置の構成が複雑化する問題がある。従来、バッファメモリとしては、いわゆるDRAM(Dynamic Randam Access Memory)と称される揮発性のメモリが使用されていて、記録時や再生時の一時記憶用としてだけ使用されているため、バッファメモリに記憶されたデータを、ディスク装置の電源再投入時に活用することは不可能であったため、バッファメモリとは別に不揮発性メモリを用意する構成が考えられたが、構成の簡易化のために、例えこのバッファメモリを不揮発性メモリに置き換えたとしても、従来のメモリ制御処理では、バッファメモリに記憶されているデータを装置の起動時に有効活用するような構成にはなってなく、従来から提案されている処理では不十分であった。
【0009】
特に、ハードディスク装置の如き高速アクセスが可能なディスク装置で、その高速アクセス性が、装置の起動時(電源投入時など)にも保てるようにするためには、単純にメモリを増やしたり、不揮発性メモリに置き換えるだけでは不十分であり、効果的なメモリ制御が要求されていた。
【0010】
本発明の目的は、大量のデータを記憶媒体に記録し再生することができる記録再生装置において、簡単な構成で起動時における高速アクセスが行えるようにすることにある。
【0011】
【課題を解決するための手段】
本発明は、ホストからのコマンドを解釈して、データの記録媒体への書込み及び読み出しを制御する制御部と、不揮発性メモリによって構成された不揮発性バッファメモリを備える記録再生装置において、不揮発性バッファメモリを構成する各ラインは、タグ部及びデータ部より構成し、タグ部は、データの有効性を示す第1のフラグと、装置の電源が切断され再び電源が投入されるまでデータ部に格納されているデータを保護する第2のフラグの記憶領域を有する構成としたものである。
【0012】
このようにしたことで、不揮発性メモリをバッファメモリとして使用した場合に、不揮発性メモリのタグ部に記憶される第1のフラグと第2のフラグを使用した処理を行うことで、装置の電源再投入時に使用できる有効かつ誤りのないデータであることが迅速に確認できるようになる。
【0013】
【発明の実施の形態】
以下、本発明の一実施の形態を、図1〜図9を参照して説明する。
【0014】
本例においては、ハードディスクと称されるディスク状の記録媒体に記録し再生するディスク装置に適用した例としてある。基本的にはハードディスクは、ディスク装置から取り外すことができない状態で装着されているが、ディスク装置に対して着脱自在なディスクを記録媒体として使用することも可能である。
【0015】
本例においては、例えば図1に示すように、ホスト90とディスク装置100とを所定の信号線により接続させてあり、ホスト90からのコマンド99を、ディスク装置100内で判別して、ディスクへの記録や、ディスクからの再生が行われれる。ホスト90としては、例えばパーソナルコンピュータ装置の制御部(演算処理部)が想定される。或いは、パーソナルコンピュータ装置のような汎用の記録装置ではなく、ビデオデータやオーディオデータの記録再生用のディスク装置として構成して、その記録再生装置の制御部をホスト90としても良い。
【0016】
図2は、本例のディスク装置100の内部の構成例を示す。ディスク装置100は、ディスク形状を有する記録媒体であるディスク102を、スピンドルモータ101で回転駆動させる構成としてあり、アクチュエータ103により駆動されるヘッド104で、回転したディスク102にデータを記録し、その記録したデータを再生することができる。このヘッド104による記録や再生は、制御部105による制御で実行される。制御部105は、図1に示したホスト90からのコマンドに基づいて、記録や再生を実行させる。ディスク102の回転起動についても制御部105が制御する。
【0017】
なお、起動時の処理の詳細については後述するが、ここでの起動とは、例えば、ディスク装置100の電源が投入され続けている限り、ディスク102をスピンドルモータ101で回転させて、ディスク102への記録や再生ができる状態に待機して、電源オフ操作があった場合だけ、ディスク102の回転を停止させて、電源オン操作があった場合に、ディスクの回転を再開させて起動させる処理が想定される。或いは、例えば、ある一定の時間、ディスクへの記録又は再生が行われない場合に、ディスク102のスピンドルモータ101による回転を停止させ、記録又は再生に関するコマンドを受信した場合に、ディスク102の回転を再開させて起動させるようにしても良い。後述する電源投入とは、ディスク装置全体の電源オン操作があった場合と、スピンドルモータが停止した状態から、スピンドルモータの電源を投入させる場合の、いずれであっても良い。
【0018】
図2の構成の説明に戻ると、制御部105には、不揮発性バッファメモリ110が接続してあり、この不揮発性バッファメモリ105を、ディスクへの記録時(書込み時)のバッファメモリとして使用すると共に、ディスクからの再生時(読み出し時)のバッファメモリとしても使用し、記録や再生時のキャッシュメモリとして機能するものである。本例の不揮発性バッファメモリ105は、電源を供給しない状態でも、記憶されたデータを保持し続ける書換え可能な不揮発性メモリが使用される。具体的には、MRAM(Magnetic Random Access Memory ),FeRAM(Ferroelectric Random Access Memory)等の不揮発性メモリが、不揮発性バッファメモリ105として使用される。MRAMは、TMR(Tunneling Magnetoresistive)素子と称されるトンネル型磁気抵抗効果素子を使用して、磁化状態の抵抗値などの違いを利用して情報を読み書きする記憶素子である。FeRAMは、強誘電体を利用した記憶素子である。これらのMRAM,FeRAM等の不揮発性メモリの場合には、DRAMやSRAM等のメモリと同様に、高速なアクセスが可能で比較的大容量のメモリであるが、DRAM等と異なり停電時にも記憶データが消失しない特徴を有する。後述するようにその他の不揮発性メモリであっても、同様な高速アクセスが可能な大容量の不揮発性メモリであれば使用可能である。
【0019】
制御部105は、ホスト90からのコマンドに従い、スピンドルモータ101やアクチュエータ103の制御を行なうと同時に不揮発性バッファメモリ110の管理も行なう。
【0020】
図3は、本例の不揮発性バッファメモリ110の内部構成の一例を示したものである。不揮発性バッファメモリ110は、複数のライン111により構成される。それぞれのライン111は、タグ部112とデータ部113とより構成される。タグ部112は、ライン111の状態を示す状態フラグ部とインデクス114より成る。状態フラグ部は、第1のフラグと第2のフラグの2種類のフラグが格納される。第1のフラグは、ラインのデータ部に格納されているデータが有効かどうかを示すValidフラグ116であり、第2のフラグは、ディスク装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するPersistentフラグ117である。以下の説明では、第1のフラグをValidフラグと称し、第2のフラグをPersistentフラグと称する。インデクス114には、そのラインのデータ部113に記憶されたデータのアドレスが記憶される。
【0021】
本例の場合には、キャッシュライン111上のデータ115とディスク102上のデータとの一貫性を制御するための手段として、書き込みヒット時の動作をライトスルー方式とする。制御部105は、ディスク装置100を制御するコマンドとして、リードコマンド(ディスクからの再生を行うコマンド)、ライトコマンド(ディスクへの記録を行うコマンド)等の一般的なコマンドに加えて、リード、ライトと同時に、ディスク装置の電源が切断され、再び電源が投入されるまで、不揮発性メモリバッファ110上のライン111に保持されているデータ115を保持するように、Persistentフラグ117をセットするコマンドを有する。
【0022】
図4は、Persistentフラグを操作するコマンドの一覧の例を示した図である。ここでは、Persistentフラグを操作するためのリードコマンド及びライトコマンドとして、図4に示すように、Persistentフラグを操作するリードコマンド(READ.Pコマンド)と、Persistentフラグを操作するライトコマンド(WRITE.Pコマンド)が用意されている。また、同様にPersistentフラブ117をセットするフィルコマンド(FILL.Pコマンド)を有する。
【0023】
このフィルコマンドは、ディスク上の特定のアドレスに格納されているデータを、不揮発性メモリバッファ110に予め格納させる動作を行うコマンドである。リードコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ110に格納されたデータは、ホスト側に転送されるのに対し、フィルコマンドの場合には、ディスクから読み出して不揮発性メモリバッファ110に格納する処理だけが実行される。フィルコマンドを使って不揮発性メモリバッファ110に格納されたデータを使用することで、該当するデータのリード要求がホスト側からある場合に、データからそのデータを読み出すことなく、リード要求に答えることが可能になる。フィルコマンドを発行する際には、引数として、例えばアドレスとサイズを指定する。この指定により、「指定したアドレスより格納されているディスク上のデータを指定したサイズ分だけ、不揮発性バッファメモリに格納する」動作が実行されることになる。
【0024】
また、フラグクリアコマンド(CLEAR.Pコマンド)は、指定したアドレスに関連したラインのPersistentフラグをクリアするコマンドである。フラグクリアオールコマンド(CLEARALL.Pコマンド)は、不揮発性バッファメモリ110内に存在する全てのライン上のPersistentフラグ117をクリアするコマンドである。ホスト105はシステムの終了処理時、次回のシステム起動時にディスク装置からの読出しが必要となるデータをREAD.Pコマンド,WRITE.Pコマンド又はFILL.Pコマンドの発行によって、不揮発性メモリバッファ110上に書き出す。
【0025】
Persistentフラグ117をセットされたラインは、リード、ライトコマンドの発行によって発生したヒットミスの時においても、後述する制御処理(図6のフローチャート)によって、ライン置き換え候補の対象から外れるため、電源を切断しても、次回起動時までデータ部113の内容115が保持される。その後、起動時にホスト90からデータ読出しの要求があった際、ディスク装置100の制御部105は、予め不揮発性バッファメモリ110に保持されたデータをリクエストに対し利用することにより、ディスク回転の安定化及び、外力測定処理の終了を完了していない状態においても、ホスト90からのリクエストに応答することが可能となる。これにより、電源投入時において、ホスト90からのリクエストに高速に応答することが実現される。
【0026】
なお、Persistentフラグを操作するコマンドは、通常はシステムの終了処理時に送られるコマンドであり、通常の動作状態では、Persistentフラグの操作を伴わないリードコマンドやライトコマンドが使用される。但し、システム終了時以外であっても、意図的にPersistentフラグの操作を伴うコマンドを発行することによって、次回起動時に必要となるデータの読み込みを行う場合も想定される。
【0027】
例えば、フィルコマンド(FILL.Pコマンド)を使用して、ディスク上の特定アドレスに記録されているデータを不揮発性バッファメモリ110に記憶させて、次回起動時に必要となるデータを不揮発性バッファメモリ110に格納させることができる。このようにして不揮発性バッファメモリ110に次回起動時に必要となるデータを格納させておくことで、装置の起動時間の短縮を図ることが可能になる。
【0028】
図5は、ディスク装置100の起動時の処理手順の例を示したフローチャートである。まず、ディスク装置100の電源投入により、制御部105の初期化処理が行なわれる(ステップS11)。ステップS11の初期化処理が終了した後に、不揮発性バッファメモリ110上に存在する全てのライン111に対する初期化処理を行なう。まず、不揮発性バッファメモリ110上のラインを1つ選択する(ステップS12)。選択されたラインのPersistentフラグ117がセットされているか否か判断し(ステップS13)、セットされていれば、該当するラインのPersistentフラグ117のクリアを行なう(ステップS14)。もし、選択されたラインのPersistentフラグ117がセットされていなければ、Validフラグ116のクリアを行なう(ステップS15)。ステップS14,S15の処理を行った後に、全てのラインの初期化処理が終了したか否か判断し(ステップS16)、初期化処理が終了してない場合には、ステップS12に戻って別のラインの処理を行う。
【0029】
ステップS16で全てのラインの処理が終了すると、不揮発性バッファメモリ110の初期化処理が終了する。この初期化処理の終了をもって、不揮発性バッファメモリ上に存在するデータへのアクセス準備が完了し(ステップS17)、ホスト90からのリクエストに対して、応答可能な状態になる。
【0030】
次にスピンドルモータ101に電源を投入し(ステップS18)、ディスク102を起動する(ステップS19)。この起動で、安定してディスク102が回転するようになったか否か判断し(ステップS20)、安定するまで待機する。そして、安定するようになったら、ヘッド104を正しく情報の記録している位置まで動かすためにアクチュエータ103に加わる外力の測定を行なう(ステップS21)。外力測定の終了をもって、その後、アクチュエータ103によって情報の記録されている位置までヘッド104を移動し、不揮発性バッファメモリ110上に存在するデータへのアクセス準備が完了する(ステップS22)。
【0031】
図6は、Persistentフラグ操作付きリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)と、Persistentフラグ操作を伴わないリードコマンド、及び、ライトコマンド実行時におけるヒットミス時の処理手順の例を示したフローチャートである。なお、本明細書でのヒットミスとは、ディスク102にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ110に記憶されていないことを指し、ラインヒットとは、ディスク102にアクセスしようとした時に、それに対応するデータが不揮発性バッファメモリ110に記憶されている場合を指す。
【0032】
以下、図6のフローチャートに従って説明すると、Persistentフラグ117の操作を伴わないリードコマンド、ライトコマンド実行時のヒットミス時においては、制御部105は、不揮発性バッファメモリ110上の、Persistentフラグ117がセットされていないラインを探す(ステップS31)。ここで、該当するラインが存在するか否か判断し(ステップS32)、該当するラインが存在する場合には、Persistentフラグ117がセットされていないラインの中から、ランダムに1つのラインを選択する(ステップS33)。その後、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS34)、ここではPersistentフラグの操作を伴わないコマンドであるので、ステップS35へ移り、該当する区間のデータのディスクからの読み出し(再生)、又はディスクへの書込み(記録)をした後、選択されたラインにデータをセットする。そして、選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0033】
また、ステップS32で、Persistentフラグ117のセットされていないラインが存在しない場合、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS39)、ここではPersistentフラグの操作を伴わないコマンドであるので、ステップS41に移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ステップS42に移り、ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0034】
そして、Persistentフラグ117の操作を伴うリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)実行時のヒットミス時においては、制御部105は、ステップS31において、Persistentフラグ117がセットされていないラインを探し、ステップS32でのラインが存在するか否か判断し、該当するラインが存在する場合には、ステップS33に移り、Persistentフラグ117がセットされていないラインの中から、ランダムに1つのラインを選択する(ステップS33)。その後、Persistentフラグの操作を伴わないコマンドであるか否か判断し(ステップS34)、ここではPersistentフラグの操作を伴うコマンドであるので、ステップS36へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのPersistentフラグ117をセットし(ステップS37)、さらに選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0035】
Persistentフラグ117の操作を伴うリードコマンド(READ.Pコマンド)、及び、ライトコマンド(WRITE.Pコマンド)実行時のヒットミス時で、ステップS32でPersistentフラグ117のセットされていないラインが存在しないと判断した場合には、ステップS33で、Persistentフラグ117の操作を伴う命令であると判断して、ステップS40に移り、Persistentフラグ117のセットされているラインの中からランダムに置き換えの対象となるラインを1つ選択する。その後、ステップS36へ移り、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、選択されたラインにデータをセットする。その後、選択されたラインのPersistentフラグ117をセットし(ステップS37)、さらに選択されたラインのValidフラグ116をセットする(ステップS38)。ここでのコマンドがリードコマンドの場合には、ホストへデータを送信し(ステップS42)、処理を終了する。ライトコマンドである場合には、ステップS42の処理を行うことなく終了する。
【0036】
図7は、Persistentフラグ操作付きフィルコマンド(FILL.P)実行時におけるヒットミス時の処理手順の例を示したフローチャートである。Persistentフラグ操作付きフィルコマンドの実行時のヒットミス時においては、Persistentフラグ117のセットされていないラインを探す(ステップS51)。この処理で、該当するラインが存在するか否か判断し(ステップS52)、存在するとき、Persistentフラグ117のセットされていないラインの中から、ランダムにラインを1つ選択する(ステップS53)。その後、データをリード(読み出し)した後に、ステップS53で選択したラインにデータをセットし(ステップS55)、その後に、そのラインにPersistentフラグ117のセットを行なう(ステップS56)。さらに、そのラインにValidフラグ116をセットして終了する(ステップS57)。
【0037】
ステップS52でPersistentフラグ117のセットされていないラインが存在しない場合は、Persistentフラグのセットされているラインの中から、ランダムに置き換えの対象となるラインを1つ選択する(ステップS54)。その後は、ステップS55に移り、データをリード(読み出し)した後に、ステップS54で選択したラインにデータをセットし、その後に、そのラインにPersistentフラグ117のセットを行なう(ステップS56)。さらに、そのラインにValidフラグ116をセットして終了する(ステップS57)。
【0038】
図8は、Persistentフラグ操作付きコマンド、及び、Persistentフラグ操作なしコマンド実行時における、ラインヒット時の処理手順の例を示したフローチャートである。コマンド実行時、ラインにヒットした場合、該当する区間のデータのディスクからの読み出し、又はディスクへの書込みをした後、ヒットしたラインのデータ部113に新しいデータをセットする(ステップS61)。ここで、Persistentフラグ操作付きコマンドであるか否か判断し(ステップS62)、Persistentフラグ操作付きコマンドである場合、ヒットしたラインのPersistentフラグ117のセットを行なう(ステップS63)。その後、リードコマンドの場合は、ホストへデータを送信して終了する(ステップS64)。リードコマンドでない場合には、そのまま終了する。
【0039】
ステップS62で、Persistentフラグ操作付きコマンドでないと判断した場合には、ステップS64に移り、リードコマンドの場合は、ホストへデータを送信して終了する。リードコマンドでない場合には、そのまま終了する。
【0040】
図9は、ディスク装置100の起動処理時において、不揮発性バッファメモリ110上に存在するデータへのアクセス準備が完了した後に(ステップS71、図5のフローチャートのステップS17に相当)、ホスト90からリードコマンドを受信したとき(ステップS72)の手順の例を示したフローチャートである。
【0041】
ステップS72でリードコマンドを受信すると、不揮発性バッファメモリ110上に存在するデータに対するリードであるか否か判断し(ステップS73)、不揮発性バッファメモリ110上に存在するデータに対するリードのリクエストである場合に、制御部105は、不揮発性バッファメモリ110上のヒットしたラインのデータをバッファメモリ110から読み出して(ステップS74)、そのメモリから読み出したデータをホスト90へデータを送信する(ステップS75)。これにより、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が応答することが可能となる。
【0042】
ステップS73で、不揮発性バッファメモリ110上に存在しないデータに対するリードがリクエストされたと判断した場合には、ディスクへのアクセス準備が完了するまで待ち(ステップS75)、不揮発性バッファメモリ110上に存在しないディスク上のデータへのアクセス準備の完了を以って、ディスクよりデータを読み出し(ステップS76)、そのディスクから読み出したデータをホストへデータを送信する(ステップS77)。
【0043】
以上説明したように、本例のディスク装置によると、バッファメモリとしてMRAMの如き不揮発性メモリを使用したことで、電源オフ状態であっても、バッファメモリの記憶データが消失せず、用意された2つのフラグを使用することで、確実にバッファメモリに記憶されたデータが使用でき、バッファメモリに要求されたデータが記憶されている限りは、電源投入時に、ディスク回転の安定化及び、外力測定の終了を待たずにディスク装置が迅速にホストからのコマンドに応答できるようになる。
【0044】
特に、MRAMのような不揮発性メモリは、記憶容量が比較的大容量で、かつ高速のデータ転送が可能であり、画像データなどの大容量データを扱う場合であっても、ラインヒット時には高速でホスト側に転送できる。さらに、MRAMのような不揮発性メモリは、データの書込み回数もほぼ無制限であり、電源の瞬時の停電にも強く、定消費電力であり待機電力をゼロにすることができ、本例のような処理を行ってディスク装置のバッファメモリとして使用できるようになったことで、簡単な構成でディスク装置の起動時における高速アクセス性が向上する。
【0045】
なお、上述した実施の形態では、不揮発性バッファメモリとして、MRAMとFeRAMを示したが、その他の不揮発性メモリであっても、大容量性と高速性を備えたメモリであれば、適用可能である。例えば、OUM(Ovonic Unified Memorey)、PMC(Programmable Metallization Cell )などを使用することも可能である。OUMは、相変化膜を用いた記憶素子である。
【0046】
なお、上述した実施の形態では、不揮発性バッファメモリ110のタグ部112には、2つのフラグをセットできる構成としたが、不揮発性バッファメモリ110のタグ部112にDirtyフラグを追加することにより、キャッシュライン111上のデータ117とディスク403上のデータとの一貫性を制御するための手段として、ライトバック方式を用いることが可能となる。
【0047】
ディスク装置100内の不揮発性バッファメモリ110へのデータ格納は、例えば、オペレーティングシステムが次回起動時に必要となるデータを、Persistentフラグ操作付きコマンドの発行によって行なうと良い。
【0048】
また、データ部に格納されているデータを保護するPersistentフラグを装備しない不揮発性バッファメモリの構成としても良い。この場合には、システム終了処理時において、起動時に必要となるデータを最後にディスクに書き出すことで対処できる。
【0049】
また、上述した実施の形態では、ハードディスク装置としてのディスク装置に適用した例について説明したが、スピンドルモータ等によりディスクの回転を伴って記録又は再生を行うディスク装置であれば、その他の装置にも適用可能である。例えば、CD−ROMドライブ装置、MDドライブ装置、DVDドライブ装置などの、光ディスクや光磁気ディスクを駆動するディスク記録再生装置においても有効である。これらの光ディスクや光磁気ディスクを使用した場合には、ハードディスクとは異なり、ディスクの着脱が自在である場合が一般的である。また、ディスクを有する装置に限らず、テープ状の記録媒体などのドライブ装置(記録再生装置)に、キャッシュメモリを備えた場合においても有効である。
【0050】
【発明の効果】
本発明によると、ディスク装置などの記録再生装置の起動時に、ホストからのリクエストがあった際に、予め不揮発性バッファメモリに格納されたデータの内の有効なデータだけを高速で読み出して、ディスクなどの記録媒体の起動が安定する前に高速で応答することができ、実質的に記録媒体の起動時間を短縮でき、システムの高速起動を実現できる効果を有する。
【0051】
この場合、制御部は、不揮発性バッファメモリ上のラインに対し、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをセットする動作を伴うコマンドの処理を行うことで、データ保護を行うフラグのセットが確実に行える効果を有する。
【0052】
また、制御部は、不揮発性バッファメモリ上のライン上にセットされた、記録再生装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護するフラグをリセットする動作を実行するコマンドの処理を行うことで、不揮発性バッファメモリの記憶領域を有効に活用することができるようになる。
【0053】
また、制御部は、記録媒体を起動させる場合に、不揮発性バッファメモリの初期化処理を行って、第2のフラグがセットされていないラインが記憶したデータを消去することで、記録媒体起動時に不要なデータの消去が行え、不揮発性バッファメモリの記憶領域が有効に活用できるようになる。
【0054】
また、制御部は、第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、ラインの置き換えを行なわないことで、不揮発性バッファメモリが保持したデータの保護が有効に行えるようになる。
【0055】
また、制御部は、第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが不揮発性バッファメモリに記憶されていない場合において、第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第2のフラグの処理を伴わない記録媒体アクセス時に、全てのラインに第2のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【0056】
また、制御部は、第2のフラグをセットさせるコマンドの実行を行う際に、第2のフラグがセットされていないラインが存在する場合に、そのラインに該当する区間のデータを書き込ませ、第2のフラグがセットされていないラインが存在しなければ、第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることで、第2のフラグをセットさせるコマンドの実行時に、全てのラインに第2のフラグがセットされている場合であっても、新たにアクセスしたデータが不揮発性バッファメモリに書き込めるようになる。
【0057】
また、制御部は、第2のフラグをセットさせるコマンドの実行を行う際に、不揮発性バッファメモリに該当するデータが書き込まれたラインが存在し、そのラインに第2のフラグがセットされていない場合に、そのラインに第2のフラグをセットすることで、不揮発性バッファメモリに書き込まれたデータが有効に活用されることになる。
【0058】
さらに、制御部は、記録媒体へのアクセス準備が完了する前に、ホスト側よりデータを読み出しさせるコマンドを受信した場合に、不揮発性バッファメモリに記憶されたデータを送信することで、起動時における高速アクセス性が向上する。
【図面の簡単な説明】
【図1】本発明の一実施の形態によるシステム例を示す構成図である。
【図2】本発明の一実施の形態によるディスク装置の構成例を示すブロック図である。
【図3】本発明の一実施の形態によるバッファメモリの記憶領域の構成例を示した説明図である。
【図4】本発明の一実施の形態によるコマンドの例を示した説明図である。
【図5】本発明の一実施の形態によるディスク起動時の処理例を示したフローチャートである。
【図6】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図7】本発明の一実施の形態によるヒットミス時の処理例を示したフローチャートである。
【図8】本発明の一実施の形態によるラインヒット時の処理例を示したフローチャートである。
【図9】本発明の一実施の形態によるデータリードコマンド受信時の処理例を示したフローチャートである。
【図10】従来のディスク装置の構成例を示したブロック図である。
【図11】従来のディスク起動時の処理例を示したフローチャートである。
【符号の説明】
10…ディスク装置、11…スピンドルモータ、12…ディスク、13…アクチュエータ、14…ヘッド、15…制御部、90…ホスト、99…コマンド、100…ディスク装置、101…スピンドルモータ、102…ディスク、103…アクチュエータ、104…ヘッド、105…制御部、110…不揮発性バッファメモリ、111…ライン、112…タグ部、113…データ部、114…インデクス、115…データ、116…Valid フラグ、117…Persistentフラグ
Claims (9)
- データが記録される記録媒体と、
ホストからのコマンドを解釈して、データの前記記録媒体への書込み及び読み出しを制御する制御部と、
不揮発性メモリによって構成された不揮発性バッファメモリを備える記録再生装置において、
前記不揮発性バッファメモリを構成する各ラインは、タグ部及びデータ部より構成し、
前記タグ部は、データの有効性を示す第1のフラグと、装置の電源が切断され再び電源が投入されるまで前記データ部に格納されているデータを保護する第2のフラグの記憶領域を有することを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記不揮発性バッファメモリ上のラインに対し、装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護する前記第2のフラグをセットする動作を伴うコマンドの処理を行うことを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記不揮発性バッファメモリ上のライン上にセットされた、装置の電源が切断され、再び電源が投入されるまでデータ部に格納されているデータを保護する前記第2のフラグをリセットする動作を実行するコマンドの処理を行うことを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記記録媒体を起動させる場合に、前記不揮発性バッファメモリの初期化処理を行って、前記第2のフラグがセットされていないラインが記憶したデータを消去することを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが前記不揮発性バッファメモリに記憶されていない場合において、前記第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、前記第2のフラグがセットされていないラインが存在しなければ、ラインの置き換えを行なわないことを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記第2のフラグの処理を伴わない記録媒体への書込み又は読み出しのコマンドの実行を行う際に、該当する区間のデータが前記不揮発性バッファメモリに記憶されていない場合において、前記第2のフラグがセットされていないラインに、該当する区間のデータを書き込ませ、前記第2のフラグがセットされていないラインが存在しなければ、前記第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記第2のフラグをセットさせるコマンドの実行を行う際に、前記第2のフラグがセットされていないラインが存在する場合に、そのラインに該当する区間のデータを書き込ませ、前記第2のフラグがセットされていないラインが存在しなければ、前記第2のフラグのセットされているラインを選択して、該当する区間のデータを書き込ませることを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記第2のフラグをセットさせるコマンドの実行を行う際に、前記不揮発性バッファメモリに該当するデータが書き込まれたラインが存在し、そのラインに前記第2のフラグがセットされていない場合に、そのラインに前記第2のフラグをセットすることを特徴とする
記録再生装置。 - 請求項1記載の記録再生装置において、
前記制御部は、前記記録媒体へのアクセス準備が完了する前に、ホスト側よりデータを読み出しさせるコマンドを受信した場合に、前記不揮発性バッファメモリに記憶されたデータを送信することを特徴とする
記録再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003105671A JP2004310948A (ja) | 2003-04-09 | 2003-04-09 | 記録再生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003105671A JP2004310948A (ja) | 2003-04-09 | 2003-04-09 | 記録再生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004310948A true JP2004310948A (ja) | 2004-11-04 |
Family
ID=33468115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003105671A Pending JP2004310948A (ja) | 2003-04-09 | 2003-04-09 | 記録再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004310948A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007012139A (ja) * | 2005-06-29 | 2007-01-18 | Hitachi Global Storage Technologies Netherlands Bv | データ書き込み方法及びディスク装置 |
JP2010055702A (ja) * | 2008-08-29 | 2010-03-11 | Nippon Hoso Kyokai <Nhk> | ハードディスク装置 |
US8151064B2 (en) | 2006-08-30 | 2012-04-03 | Samsung Electronics Co., Ltd. | Hybrid hard disk drive and data storage method thereof |
CN112837706A (zh) * | 2019-11-25 | 2021-05-25 | 精工爱普生株式会社 | 媒介处理装置、媒介处理装置的控制方法及存储介质 |
-
2003
- 2003-04-09 JP JP2003105671A patent/JP2004310948A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007012139A (ja) * | 2005-06-29 | 2007-01-18 | Hitachi Global Storage Technologies Netherlands Bv | データ書き込み方法及びディスク装置 |
US8151064B2 (en) | 2006-08-30 | 2012-04-03 | Samsung Electronics Co., Ltd. | Hybrid hard disk drive and data storage method thereof |
JP2010055702A (ja) * | 2008-08-29 | 2010-03-11 | Nippon Hoso Kyokai <Nhk> | ハードディスク装置 |
CN112837706A (zh) * | 2019-11-25 | 2021-05-25 | 精工爱普生株式会社 | 媒介处理装置、媒介处理装置的控制方法及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7472219B2 (en) | Data-storage apparatus, data-storage method and recording/reproducing system | |
CN1774761B (zh) | 用于从记录载体读取或者向其写入的驱动设备和方法 | |
JP2006114206A5 (ja) | ||
US7742344B2 (en) | Method and apparatus for improving storage performance using a background erase | |
JP2012533112A (ja) | 階層不揮発性ストレージのためのシステムおよび方法 | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
JP5914148B2 (ja) | Ssd(ソリッドステートドライブ)装置 | |
JP2006085893A (ja) | 統合型dvd/hddシステムのための統一された制御および記憶 | |
US7913029B2 (en) | Information recording apparatus and control method thereof | |
JP3568110B2 (ja) | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 | |
US20180024742A1 (en) | Storage media performance management | |
US6523142B1 (en) | Apparatus and method of performing in a disk drive commands issued from a host system | |
JP2006085892A (ja) | 統合型dvd/hddシステムのための統一された制御および記憶 | |
JP4290678B2 (ja) | 光記録媒体のデータコピー/移動方法及び装置 | |
JP2006338345A5 (ja) | ||
JP2010211858A (ja) | 記録再生装置及び記録再生方法 | |
JP4272227B2 (ja) | メモリおよび制御装置 | |
JP2004310948A (ja) | 記録再生装置 | |
JP2004265534A (ja) | 情報処理装置、情報再生装置、情報処理方法及び情報再生方法 | |
US20080046604A1 (en) | Storage device and control chip for the storage device | |
JP4078155B2 (ja) | 磁気ディスク装置及びその制御方法 | |
JPH0744982A (ja) | データ記録再生装置及びデータ書込み制御方法 | |
JPH03290873A (ja) | ディスク型記憶装置、ディスク型記憶装置の制御装置、及びディスク型記憶装置の制御方法 | |
JPH0520196A (ja) | デイスク・キヤツシユ制御装置 | |
JP5352811B2 (ja) | 情報処理装置 |