(57)【特許請求の範囲】
【請求項１】
データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、
前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、
データを格納するフラッシュメモリと、
前記ディスク媒体に対するデータの読出し、書き込み、及び前記フラッシュメモリに対するデータの書き込みを制御する制御手段とを有し、
前記制御手段は、
前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、１トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手段と、
前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む１トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納し、前記最初のデータの次から前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手段と
を含むことを特徴とするディスク記憶装置。
【請求項２】
前記制御手段は、
前記最初のデータおよび前記最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納した後に、前記要求データの先頭アドレスを含むトラックに隣接するトラックに記録すべきデータから前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込むことを特徴とする請求項１に記載のディスク記憶装置。
【請求項３】
前記制御手段は、
前記最終アドレスを含むデータを最終トラックに書き込むときに、当該最終トラックの途中で前記要求データが終了する場合には、当該最終トラックから前記要求データに含まれない残りのデータを前記ディスク媒体から読出し、その同一場所に再度書き込む手段を含むことを特徴とする請求項１又は請求項２のいずれか１項に記載のディスク記憶装置。
【請求項４】
前記制御手段は、
前記要求データである前記連続的データを前記フラッシュメモリおよび前記ディスク媒体上に書き込みした後に、前記ホストシステムから一定時間経過しても前記連続的データの続きのデータを受信しない場合には、前記連続的データの書き込みが終了したと判定する手段を含むことを特徴とする請求項１から請求項３のいずれか１項に記載のディスク記憶装置。
【請求項５】
前記制御手段は、
前記要求データである前記連続的データを前記フラッシュメモリおよび前記ディスク媒体上に書き込みした後に、前記ホストシステムから一定時間経過しても前記連続的データの続きのデータを受信しない場合には、前記連続的データの書き込みが終了したと判定し、
前記連続的データの最終アドレスを含む最終トラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納する手段を含むことを特徴とする請求項１から請求項３のいずれか１項に記載のディスク記憶装置。
【請求項６】
前記制御手段は、
前記フラッシュメモリに格納したデータを読出して、前記ディスク媒体に連続して書き込まれた領域の指定の位置に書き戻し、当該指定の位置から連続的データを前記ディスク媒体から読出して連続的に書き込み、
書き込みが終了した最終トラックの次のトラックのデータについて、前記ディスク媒体から読出して、前記フラッシュメモリに格納する手段を含むことを特徴とする請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項７】
前記制御手段は、
前記ディスク媒体上に前記連続的データを連続的に書き込むための予備のバッファ領域を確保し、
前記フラッシュメモリに空き領域を確保できない場合に、前記連続的データを前記予備のバッファ領域に一時的に格納し、前記フラッシュメモリの空き領域を確保したときに、前記予備のバッファ領域に格納された連続的データを読出して、前記ディスク媒体上の本来のアドレス位置に書き直し、
書き直した前記連続的データの先頭アドレスを含む１トラック分の最初のデータを前記フラッシュメモリの空き領域に格納する手段を含むことを特徴とする請求項１から請求項６のいずれか１項に記載のディスク記憶装置。
【請求項８】
前記制御手段は、
トラック毎に論理アドレスの最も若い番号を割り当てる位置が周方向に一致している場合であって、前記要求データの先頭アドレスを含む１トラック分の最初のデータと共に、前記要求データの最終アドレスを含む１トラック分のデータを前記フラッシュメモリに格納する手段を含むことを特徴とする請求項１に記載のディスク記憶装置。
【請求項９】
データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、
前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、データを格納するフラッシュメモリとを有するディスク記憶装置に適用するデータ書き込み方法であって、
前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、１トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手順と、
前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む１トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納する手順と、
前記最初のデータの次から最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手順と
を実行することを特徴とするデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブなどのディスク記憶装置に関し、特にシーケンシャルアクセスを要するデータ書き込み技術に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブを代表とするディスク記憶装置（ディスクドライブと表記する場合がある）は、コンピュータデータを保存するファイル装置だけでなく、ディジタル映像データなどのストリームデータ（連続的データと表記する場合がある）を保存する録画装置などに使用されている。
【０００３】
ディスクドライブでは、記録媒体であるディスク媒体上には、同心円状に多数のトラック（シリンダ）が構成されており、各トラックはそれぞれ複数のデータセクタに分割されている。ディスクドライブでは、ディスク媒体に対してデータを書き込み、または読出す場合、セクタ単位のリード／ライトアクセスが実行される。
【０００４】
近年のディスクドライブは、記録容量の増大化を推進するために、ディスク媒体上のトラック密度は高密度化されており、隣接するトラック間隔、即ちトラック間の距離（トラックピッチ）が狭くなっている。このため、隣接する各トラックにおいて、一方のトラックに記録されたデータに対して、他方のトラックにデータを書き込む場合、一方のトラックに記録されたデータの中で、隣接トラックとの境界近傍の部分には、他方のトラックに書き込まれるデータがオーバーライトされてしまう。
【０００５】
このようなオーバーライトが繰り返し行なわれると、一方のトラックに記録されたデータの記録信号が弱くなり、最悪の場合には、そのデータガ消去されて読出し動作ができなくなる。このような問題を解消するために、トラック上にデータをライトした回数を記録し、規定回数に達したトラックの隣接トラックをリードして再ライトする方法が提案されている（例えば、特許文献１を参照）。
【特許文献１】特開２００４−２７３０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述の先行技術の方法は、隣接トラックへのライト回数に制限を設けることにより、隣接トラックの記録データの消去を防止するものである。
【０００７】
ところで、ディジタル映像データなどのストリームデータは、連続的データで、１トラック分の容量を超える場合も多いため、ディスク媒体上の隣接する複数のトラックに対してシーケンシャルにリード／ライトアクセス（シーケンシャルアクセス）される場合が多い。このようなシーケンシャルアクセスでは、隣接トラックの両側に対するオーバーライトの回数を例えば１回までに制限することにより、トラックピッチを狭く設計することが可能となるため、ディスク媒体の記憶容量の増大化を図ることが可能となる。
【０００８】
しかしながら、前述の先行技術の方法では、隣接トラックの両側へのオーバーライト回数を、例えば１回までに制限するような制御を実現することはできない。
【０００９】
そこで、本発明の目的は、特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の観点に従ったディスク記憶装置は、データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、データを格納するフラッシュメモリと、前記ディスク媒体に対するデータの読出し、書き込み、及び前記フラッシュメモリに対するデータの書き込みを制御する制御手段とを有し、前記制御手段は、前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、１トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手段と、前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む１トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納し、前記最初のデータの次から前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手段とを備えた構成である。
【発明の効果】
【００１１】
本発明によれば、特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下図面を参照して、本発明の実施形態を説明する。
【００１３】
（ディスクドライブの構成）
図１は、本実施形態に関するディスクドライブの構成を示すブロック図である。
【００１４】
ディスクドライブ１は、ハイブリッド型ディスクドライブとも呼ばれるドライブであり、ユーザデータのデータ記録媒体として、磁気記録媒体であるディスク媒体１０と、フラッシュメモリ２２とを有する。フラッシュメモリ２２は、不揮発性の半導体メモリであり、ブロック単位での書換え可能なフラッシュＥＥＰＲＯＭである。なお、ディスクドライブ１は、ユーザデータを記憶するためのフラッシュメモリ２２以外に、マイクロプロセッサ（ＣＰＵ）１９によりアクセスされて、各種の制御情報などを記憶するフラッシュメモリ（便宜的にフラッシュＲＯＭと表記する）２１を有する。
【００１５】
ここで、ディスク媒体１０は、同心円状の多数のトラックが構成されており、各トラックがそれぞれ複数のデータセクタに分割されている。ディスクドライブ１では、ディスク媒体１０に対してデータを書き込み、または読出す場合、セクタ単位のリード／ライトアクセスが実行される。
【００１６】
さらに、ディスクドライブ１は、ディスク媒体１０を回転させるスピンドルモータ（ＳＰＭ）１１、ヘッド１２、アクチュエータ１３、及びボイスコイルモータ（ＶＣＭ）１４を有する。ヘッド１２は、ディスク媒体１０に対してデータを書き込むライトヘッドと、ディスク媒体１０からデータを読出すリードヘッドとを有する。アクチュエータ１３は、ヘッド１２を搭載し、ボイスコイルモータ１４の駆動によりヘッド１２をディスク媒体１０上の半径方向（矢印）に移動させる。
【００１７】
さらに、ディスクドライブ１は、ヘッドアンプ１５、リード／ライト（Ｒ／Ｗ）チャネル１６、バッファメモリ１７、モータドライバ１８、ＣＰＵ１９、及びディスクコントローラ（ＨＤＣ）２０を有する。
【００１８】
ヘッドアンプ１５は、通常では、リードアンプとライトアンプを含む。リードアンプは、ヘッド１２のリードヘッドから読出されたリード信号を増幅する。ライトアンプは、リード／ライトチャネル１６から出力されるライトデータをライト電流に変換して、ライトヘッドに出力する。リード／ライトチャネル１６は、信号処理回路であり、リードヘッドからのリード信号を処理して元のデータに復号化するリードチャネル、及びホストシステム２から送られるライトデータを符号化するライトチャネルを有する。
【００１９】
バッファメモリ１７は、通常ではＤＲＡＭ（ダイナミックＲＡＭ）であり、ディスクコントローラ２０により制御されて、リード／ライトデータを一時的に格納するメモリである。モータドライバ１８は、ボイスコイルモータ１４の駆動を制御するＶＣＭドライバ、及びＳＰＭ１１の駆動を制御するＳＰＭドライバを含む。
【００２０】
ＣＰＵ１９は、ドライブ１のメインコントローラであり、主として、ディスク媒体１０に対するリード／ライトアクセスの制御を行なう。即ち、ＣＰＵ１９は、リード／ライトアクセスするディスク媒体１０上の目標位置を決定し、モータドライバ１８のＶＣＭドライバを介してアクチュエータ１３を移動制御することにより、ヘッド１２を目標位置に位置決めする位置決め動作を実行する。通常では、位置決め動作には、ヘッド１２を目標位置まで移動させるシーク動作と、目標位置である目標シリンダにヘッド１２を位置決めする追従動作が含まれる。
【００２１】
ディスクコントローラ２０は、ドライブ１とホストシステム２との間で、リード／ライトデータの転送を制御するインターフェースである。ディスクコントローラ２０は、ホストシステム２からのライトコマンドに基づいて、ホストシステム２から転送されたライトデータを、ディスク媒体１０またはフラッシュメモリ２２に書き込むライト動作を実行する。この場合、ディスクコントローラ２０は、ライトコマンドに基づいて、ディスク媒体１０に書き込むためのライトデータをバッファメモリ１７に一時的に格納し、このバッファメモリ１７からリード／ライトチャネル１６に転送する。また、ディスクコントローラ２０は、本実施形態に関するシーケンシャルアクセスを伴うデータ書き込み動作を実行する。
【００２２】
一方、ディスクコントローラ２０は、ホストシステム２からのリードコマンドに基づいて、バッファメモリ１７に格納されたデータまたはフラッシュメモリ２２から読出したデータをホストシステム２に転送するリード動作を実行する。また、ディスクコントローラ２０は、ホストシステム２からのリードコマンドに基づいて、ディスク媒体１０に対するリードアクセスを実行する。具体的には、ディスクコントローラ２０は、ディスク媒体１０から読出されて、リード／ライトチャネル１６により復号化されたデータを、バッファメモリ１７に格納する。
【００２３】
（本実施形態の作用効果）
まず、図４から図８を参照して、本実施形態のディスクドライブ１におけるデータ書き込み動作の原理を説明する。
【００２４】
図４は、ディスク媒体１０上の隣接トラックに、データをライトした場合に、記録データが弱まる様子を説明するための図である。即ち、ディスク媒体１０上のトラックN+1にデータＡを書き込みした後に、隣のトラックN+2にデータＢを書き込む場合には、図４に示すように、記録データＡにおいて、トラックN+2側のデータ部分がオーバーライト（上書き）されてしまう。このようなオーバーライトが繰り返し行なわれると、トラックN+1の記録データＡの記録信号は弱められて、最悪の場合には読出し動作が不可能になる。通常のディスクドライブでは、隣接トラックに対して、例えば１０万回以下のオーバーライトでは、記録データが消去しないようにトラックピッチなどの設計がなされている。
【００２５】
次に、図５は、ディスク媒体１０上のトラックN+1から順番に、シーケンシャルアクセスによりデータを書き込むライト動作（以下、シーケンシャルライトと表記する場合がある）をした場合の様子を説明するための図である。
【００２６】
この場合、データN+4が書き込まれた時点で、データN+1〜N+3はそれぞれ、片側の隣接トラックに１回だけオーバーライトされている。シーケンシャルライトのみの場合には、図５に示すように、片側の隣接トラックに対して、最大でも１回だけオーバーライトされるだけなので、トラックピッチが狭くなった場合も記録データの信号が消去する危険性は極めて低い。
【００２７】
さらに、図６は、ディスク媒体１０上のトラックN+1から順番に、データN+1〜N+4がシーケンシャルライトされた領域（トラックN+1〜N+4）の前で、トラックNに新しいデータXを書き込みした場合の様子を説明するための図である。
【００２８】
この場合、トラックN+1に書き込まれた記録データN+1は、両側の隣接トラックから１回ずつオーバーライトされたことになる。このため、図５に示す状態よりも、記録データの信号が消去される割合が多くなる。この場合でも、両側に１回ずつのオーバーライトのみであれば、トラックピッチを狭くしても、記録データの信号が消去する危険性はまだ低い。
【００２９】
そこで、本実施形態は、シーケンシャルライトを行なう場合に、隣接トラックの両側に対するオーバーライトの回数を、最大でも１回ずつに制限するためのデータ書き込み方法を提供する。以下、図２、図３、図７から図１７を参照して、本実施形態のデータ書き込み方法を具体的に説明する。
【００３０】
まず、本実施形態では、例えばＴＶ番組のディジタル映像データのように、ディスク媒体１０上において、連続したアドレス領域で１トラック以上の領域に、シーケンシャルライトする連続的データをストリームデータと呼ぶことにする。
【００３１】
ストリームデータは、相対的に大きなサイズの連続的データとして保存される。また、番組の属性管理データやホストシステム２のシステムデータなどは、ストリームデータと比較して相対的に小さなサイズのデータであり、非ストリームデータと呼ぶ場合もある。また、ディスク媒体１０に対するリード／ライトアクセスにおいて、ホストシステム２からの論理アドレス（ＬＢＡ）は、連続するトラック内に含まれるセクタに順番に割り当てられる。即ち、ディスク媒体１０の１つのデータ面に対して、ユーザデータ領域の全てのトラックに対して連続したアドレスが割り当てられる。途中で、論理アドレスが非連続になる状態は想定していない。但し、途中で論理アドレスが非連続になる設計の場合には、その区切りごとに1トラック分の未使用領域を設けることで本実施形態を適用することが可能である。
【００３２】
（データ書き込み方法の基本的動作）
次に、図７及び図８を参照して、本実施形態のデータ書き込み方法の基本的動作を説明する。
【００３３】
図７は、本実施形態のディスクドライブ１において、ディスク媒体１０上に、２本のストリームデータＡ，Ｂ、及び非ストリームデータP-1，P-2が記録されている状態を示す図である。図８は、フラッシュメモリ２２でのデータの保存状態を示す図である。
【００３４】
ストリームデータＡ，Ｂは、連続する複数のトラック範囲に、シーケンシャルライトにより書き込まれている。ここで、トラックデータA-Hは、ストリームデータＡの先頭アドレスを含む１トラック分のデータ（トラックデータ）である。また、トラックデータA-Nは、ストリームデータＡ以外のデータであり、ストリームデータＡの最終アドレスを含むトラックに隣接するトラックデータである。同様に、トラックデータB-Hは、ストリームデータＢの先頭アドレスを含む１トラック分のデータである。また、トラックデータB-Nは、ストリームデータＢ以外のデータであり、ストリームデータＢの最終アドレスを含むトラック（最終トラック）に隣接するトラックデータである。
【００３５】
前述したように、ストリームデータＡ，Ｂは、シーケンシャルにライトされるため、隣接トラックの片側に１回だけオーバーライトがなされるだけである。また、同一の領域に、ストリームデータＡ，Ｂが何度も繰り返して書き込まれる場合、ストリームデータ自身は毎回書き直されるので、記録信号の強度が劣化するようなことは起こらない。
【００３６】
しかし、ストリームデータＡ，Ｂの記録領域の前後の隣接トラックのデータ、即ちトラックデータA-H，B-Hのそれぞれに隣接するトラックの記録データや、トラックデータA-N，B-Nについては、ストリームデータの書き込み前に比べて、オーバーライトの回数が１回増えた状態となる。しかも、これらのデータについては、書き直されることがない場合、消去される可能性が高くなる。
【００３７】
そこで、本実施形態のディスクドライブ１では、図８に示すように、各ストリームデータＡ，Ｂの先頭アドレスを含むトラックデータA-H，B-Hを、ディスク媒体１０上には書き込みを実行せずに、代替記録領域として、フラッシュメモリ２２に格納する。さらに、ストリームデータＡ，Ｂの最終トラックに隣接する次のトラックデータA-N，B-Nについても、フラッシュメモリ２２に格納する。これにより、シーケンシャルライトされるストリームデータＡ，Ｂに隣接する前後のトラックに対するオーバーライトの回数を抑制できるため、それらのトラックに記録されるデータが消去してしまう事態を防止することができる。
【００３８】
ここで、ディスク媒体１０からフラッシュメモリ２２に代替して配置されるトラックデータは、図２に示すような代替トラック管理テーブルにより管理する。この代替トラック管理テーブルはディスク媒体１０上のシステムエリアに保存されており、代替されたトラック番号、トラックデータのサイズ、フラッシュメモリ２２の開始アドレス、及びリンク情報（１〜Ｘ）が登録される。
【００３９】
リンク情報は、代替トラックとフラッシュメモリ２２のブロックとの対応関係（保存先のブロックと順番）を示す属性情報であり、格納先のフラッシュメモリ２２のアドレスが連続しない場合に、どのアドレスからどのアドレスへ格納先が飛んだかが分かるような情報も含む。
【００４０】
なお、ディスクコントローラ２０は、フラッシュメモリ２２にデータを保存する場合には、イレース単位であるブロックの使用状況を管理したテーブルを参照し、空いているブロックを探し出してデータを格納する。ディスクコントローラ２０は、ディスク媒体１０上の最大で１トラック分のデータサイズ（例えば６００ｋＢ）に相当する複数のブロック（例えば１２８ｋＢ）分をフラッシュメモリ２２に確保して、代替トラックデータを保存する。
【００４１】
また、図７に示すように、ディスク媒体１０上には、１トラック分以下の非ストリームデータP-1，P-2が、同一トラックにランダムに書き込まれる場合もある。これらのデータP-1，P-2は、ストリームデータに比べて書き込み回数が多くなる可能性がある。このような書き込み回数が多くなるデータP-1，P-2のトラックに隣接するトラックのデータが、消去される可能性が高くなる。そこで、本実施形態では、これら書き込み回数が多くなる非ストリームデータP-1，P-2に関しても、フラッシュメモリ２２に格納する。
【００４２】
但し、このような場合には、図３に示すような代替トラック管理テーブルにより管理する。即ち、これらのデータP-1，P-2は、トラック単位ではなく、セクタ単位でデータを格納するため、データの論理アドレス(ＬＢＡ)とサイズに対して、フラッシュメモリのアドレスを対応付けて登録する必要がある。従って、図３に示す代替トラック管理テーブルは、代替された論理アドレス(ＬＢＡ)、データのサイズ、フラッシュメモリ２２の開始アドレス、及びリンク情報（１〜Ｘ）が登録される。なお、図３に示す代替トラック管理テーブルにおいて、論理アドレス(ＬＢＡ)の代わりに、ディスク媒体１０上の物理アドレスを使用してもよい。
【００４３】
（データ書き込み方法の具体例）
図９から図１１は、ディスク媒体１０上に記録されているストリームデータに対して、連続的または重なるように新しいストリームデータを書き込む場合の様子を説明した図である。
【００４４】
まず、図９（Ａ）は、ディスク媒体１０上にストリームデータＡ（先頭トラックデータA-H）が既に記録されている状態を示す。この場合、前述したように、先頭トラックデータA-H、及び最終トラックに隣接する次のトラックデータA-Nは、実際にはディスク媒体１０ではなく、フラッシュメモリ２２に保存されている。
【００４５】
ここで、図９（Ｂ）に示すように、既存のストリームデータＡの途中から、新しいストリームデータ（Ｃとする）が追加して書き込まれる場合を想定する。この場合、フラッシュメモリ２２には、代替された先頭トラックデータA-Hに加えて、新たにストリームデータＣの先頭トラックデータC-Hが保存される。従って、実際には、図９（Ｂ）に示すディスク媒体１０上の先頭トラックC-Hの位置には、当該データは書き込まれない。また、フラッシュメモリ２２に格納されていたトラックデータA-Nは不要となり、代わりにストリームデータＣの最終トラックに隣接するトラックデータC-Nが保存される。
【００４６】
次に、図１０（Ａ）に示すように、ディスク媒体１０上の既存のストリームデータＡに対して、当該ストリームデータＡの途中まで、新しいストリームデータＣが書き込まれる場合を想定する。即ち、図１０（Ｂ）に示すように、先頭トラックデータC-Hを含む新たにストリームデータＣが、ストリームデータＡの途中までオーバーライトされる。
【００４７】
ここで、実際には、先頭トラックデータC-Hは、ディスク媒体１０上には書き込まれず、フラッシュメモリ２２に格納される。フラッシュメモリ２２に格納されていたトラックデータA-Hは不要となる。また、フラッシュメモリ２２に保存されているトラックデータA-Nはそのまま維持されて、新たにトラックデータC-Nが保存される。
【００４８】
さらに、図１１（Ａ）に示すように、ディスク媒体１０上で既存のストリームデータＡに対して、その全領域がオーバーライトされる場合を想定する。即ち、図１１（Ｂ）に示すように、先頭トラックデータC-Hを含む新たにストリームデータＣが、ストリームデータＡの全領域にオーバーライトされる。
【００４９】
ここで、実際には、先頭トラックデータC-Hは、ディスク媒体１０上には書き込まれず、フラッシュメモリ２２に格納される。フラッシュメモリ２２に格納されていたトラックデータA-H及びA-Nは不要となる。また、フラッシュメモリ２２には、先頭トラックデータC-Hと共に、トラックデータC-Nが保存される。
【００５０】
（ストリームデータの書き込み手順）
以下、主として図１２、及び図１６，１７のフローチャートを参照して、ストリームデータの書き込み処理の手順を説明する。
【００５１】
まず、図１２（Ａ）に示すように、ディスク媒体１０上において、ホストシステム２がストリームデータを保存するための書き込み要求範囲（ライトアクセス範囲）ＷＲを想定する。ここでは、書き込み要求範囲ＷＲは、あるトラック（先頭トラック）T-Hの途中セクタから始まり、あるトラック（最終トラック）T-Eの途中セクタまでの範囲である。
【００５２】
図１６に示すように、ディスクドライブ１は、ホストシステム２からの書き込み要求の論理アドレスを、ディスク媒体１０上の書き込み要求範囲ＷＲを特定するための物理アドレスに変換する（ブロック１００）。ディスクドライブ１は、最初からストリームデータを保存する場合には、図１２（Ｂ）に示すように、最初の１トラック分のデータＴ１をフラッシュメモリ２２に格納する（ブロック１０１のＮＯ，ブロック１０４）。
【００５３】
なお、ディスクドライブ１では、ディスク媒体１０及びフラッシュメモリ２２へのデータの書き込み動作は、ＣＰＵ１９及びディスクコントローラ２０の各制御動作の連携により実行される。本実施形態では、特に、両者の制御動作の内容を区別することなく、ディスクドライブ１の動作として説明する。
【００５４】
ここで、ディスクドライブ１は、ホストシステム２からの書き込みデータ（ライトデータ）が連続アドレスで１トラック分以上あると分かった時点で、このライトデータはストリームデータであると判定し、図１３に示すように、ストリームデータの管理テーブルに登録する（ブロック１０５のＹＥＳ，１０６）。即ち、新たにストリームデータとして登録する場合には、ライトデータを格納するためのフラッシュメモリ２２の領域を確保し、最初の１トラック分のデータＴ１を格納する。
【００５５】
次に、ディスクドライブ１は、図１２（Ｃ）に示すように、先頭トラックT-Hのライト対象以外のデータT-Hb（データＴ１以外の太枠の部分）をディスク媒体１０から読出して、フラッシュメモリ２２に格納する（ブロック１０７）。このとき、図２に示す代替トラック管理テーブルに、フラッシュメモリ２２の格納先アドレス等を記録する（ブロック１０８）。
【００５６】
なお、ディスクドライブ１は、当該トラックデータ（先頭トラックT-Hのデータ）が既にフラッシュメモリ２２に存在する場合には、そのデータは不要であるため、フラッシュメモリ２２の格納領域（格納ブロック）を開放する（ブロック１０９）。また、ストリームデータであると判定した時点で、ストリームデータの２トラック目のトラックデータＴ２に関しては、フラッシュメモリ２２への格納は不要になるので、フラッシュメモリ２２への格納を中止する。
【００５７】
さらに、ディスクドライブ１は、代替トラックである先頭トラックT-Hの次からの２トラック目のトラックデータＴ２以降については、ディスク媒体１０上の連続した領域にシーケンシャルライトする（ブロック１１０）。ここで、先頭トラックT-Hのデータは、代替トラックデータＴ１としてフラッシュメモリ２２に保存されている。
【００５８】
ディスクドライブ１は、例えばホストシステム２からのライト要求が一定時間経過しても来なくなった時点で、ストリームデータの書き込みが終了したと判定する。この後、ディスクドライブ１は、図１２（Ｅ）に示すように、最終トラックT-Eのライト範囲外のデータ部分T-Ebをディスク媒体１０から読出し、同じ場所に書き込む。
【００５９】
次に、図１２（Ｆ）に示すように、ディスクドライブ１は、最終トラックT-Eの次のトラックT-Nからデータを読出して、フラッシュメモリ２２に格納する。この処理が終了すると、ディスクドライブ１は、一旦、ストリームデータの書き込み処理を終了する（後述するステータスのクローズに相当）。
【００６０】
ここで、ディスクドライブ１は、図１２（Ｄ）に示すように、代替トラックである先頭トラックT-Hの次からの２トラック目のトラックデータＴ２以降について、データの書き込み要求が来た場合には、ディスク媒体１０上の連続した領域にシーケンシャルライトを実行する（ブロック１０１のＹＥＳ，ブロック１０２）。このとき、ディスクドライブ１は、上書きされる代替トラックが存在する場合には、フラッシュメモリ２２に格納された代替トラックデータが不要になるため、その格納領域（格納ブロック）を開放する（ブロック１１１のＹＥＳ，ブロック１０３）。
【００６１】
ここで、図１３に示すように、ストリームデータの管理テーブルは、ストリームデータとして登録した場合に割り当てるストリーム番号、ステータス、書き込み済み論理アドレス（物理アドレスでも可）、及び隣接トラックの退避の属性を示す情報などを格納する。ステータスのオープンは、そのストリームデータが書き込み途中であることを示す属性情報である。ライト要求が発生した場合に、書き込み済み論理アドレスの値を参照して、いずれかのストリームデータに属するライトであるか否かを判定し、現在オープンしているストリームデータの場合には、継続して続きのアドレスへの書き込みを行う。ステータスのクローズは、そのストリームデータの書き込みが終了したことを示す属性情報である。
【００６２】
図１３に示す管理テーブルにおいて、ディスクドライブ１は、ホストシステムからの要求が一定時間なく、アイドル状態に移行するタイミングなどで、それぞれのストリームデータのステータスをクローズに設定する。または、それぞれのストリームデータ毎にタイムスタンプをとり、最終アクセスからの経過時間が一定値以上となった時点で、ステータスをクローズに設定してもよい。クローズしたストリームデータについては、図１２（Ｅ），（Ｆ）に示すような処理を実行する。このトラックデータの退避処理が完了したら、テーブルの隣接トラックの退避の属性を「済」に設定する。
【００６３】
図１７は、ディスクドライブ１がアイドル状態に移行する際に、各ストリームデータをクローズするための処理手順を示すフローチャートである。
【００６４】
ディスクドライブ１は、オープンしているストリームデータ、即ち書き込み中のストリームデータがある場合で、最終トラックに書き込みされていないセクタ領域がある場合は、ディスク媒体１０から、その最終トラックからデータを読出して同じ場所に書き込む（ブロック２００〜２０２）。そして、図１２（Ｆ）に示すように、最終トラックT-Eの次のトラックT-Nからデータを読出して、フラッシュメモリ２２に格納する（ブロック２０３）。
【００６５】
（フラッシュメモリの管理）
図１４は、フラッシュメモリに格納した代替トラックデータを、ディスク媒体１０に書き戻すためのフラッシュ処理を説明するための図である。
【００６６】
本実施形態では、前述のように、シーケンシャルライトされるストリームデータをディスク媒体１０上に記録する場合に、一部のトラックデータを代替トラックデータとしてフラッシュメモリ２２に格納する。これにより、ストリームデータに隣接する前後のトラックに対するオーバーライトの回数を抑制できる。
【００６７】
しかしながら、相対的に小容量で多数本のストリームデータがそれぞれ、ディスク媒体１０に書き込まれる状況を想定すると、フラッシュメモリ２２に格納される代替トラックデータが増大化し、フラッシュメモリ２２の空き容量が不足する事態になる可能性が高くなる。このような状況では、新たにストリームデータの書き込み要求に対して対処できなくなる。
【００６８】
そこで、本実施形態のディスクドライブ１は、フラッシュメモリ２２に格納されたデータをディスク媒体１０に書き戻す処理を実行する。但し、図１４（Ｂ）に示すように、ディスク媒体１０に書き込む場合には、必ずシーケンシャルライトの状態にならなければならない。即ち、フラッシュメモリ２２に格納された代替トラックデータを、そのままディスク媒体１０に書き戻すことはできない。
【００６９】
具体的には、ディスクドライブ１は、図１４（Ｂ）に示すように、あるストリームデータの隣接した代替トラックA-Nの位置から連続した任意の領域にシーケンシャルライトを実行する。このとき、ディスクドライブ１は、フラッシュメモリ２２に代替されているトラックデータをフラッシュメモリ２２から読出して、指定の位置に書き込む。また、図１４（Ａ）に示すように、それ以外のデータをディスク媒体１０から読出して、順番に指定の位置に書き込む（１４１〜１４３）。さらに、図１４（Ｂ）に示すように、書き込みが終了したトラックの次のトラックのデータについて、ディスク媒体１０から読出して、フラッシュメモリ２２に格納する。
【００７０】
以上のような処理により、シーケンシャルライトの領域に含まれている代替トラックデータについては、フラッシュメモリ２２での格納が不要となるため、フラッシュメモリ２２の該当格納領域を開放できるため、使用可能容量を増大化できる。特に、シーケンシャルライト範囲が大きいほど、フラッシュメモリ２２の開放領域を増大できる。但し、この処理は、ディスクドライブ１としては負担となるため、ホストシステム２からのコマンドがない時に、フラッシュメモリ２２の使用容量に応じて実行することが望ましい。
【００７１】
図１５は、フラッシュメモリ２２に空き領域がない場合に、ストリームデータの書き込み処理を説明するための図である。なお、この処理は、本実施形態では、必ずしも必須の処理ではない。フラッシュメモリ２２に空き領域がない場合には、前述の図１４を参照して説明した処理でよい。
【００７２】
ディスクドライブ１は、図１５に示すように、ディスク媒体１０上に、通常のユーザデータ領域１０Ａ以外に、予備のバッファ領域１０Ｂを確保する。このバッファ領域１０Ｂは、半径方向のある連続トラック範囲で、シーケンシャルライト領域として使用されるバッファ専用領域である。ディスクドライブ１は、フラッシュメモリ２２に空き領域がなくなると、先頭アドレスを含むストリームデータを、当該バッファ領域１０Ｂに一時的に格納する（シーケンシャルライト）。
【００７３】
ディスクドライブ１は、フラッシュメモリ２２に空き領域が確保されると、当該バッファ領域１０Ｂに格納されたストリームデータを読出して、ディスク媒体１０上の本来のアドレス位置にシーケンシャルライトする。このとき、ディスクドライブ１は、フラッシュメモリ２２の空き領域に、ストリームデータの先頭アドレスを含む１トラック分のデータを格納する。
【００７４】
以上の処理により、フラッシュメモリ２２に空き領域を確保できない場合でも、予備のバッファ領域１０Ｂを利用して、ストリームデータのシーケンシャルライトを実現することができる。そして、フラッシュメモリ２２に空き領域を確保できた時点で、ストリームデータの先頭アドレスを含む１トラック分のデータを、フラッシュメモリ２２に格納することができる。
【００７５】
（他の実施形態）
図１８及び図１９は、他の実施形態を説明するための図である。なお、ディスクドライブ１の構成は、図１に示す前述の実施形態の場合と同様のため、図示及び説明を省略する。
【００７６】
前述の実施形態に関するディスクドライブ１は、ストリームデータの先頭アドレスを含む１トラック分のデータ、及び最終アドレスを含むトラックに隣接するトラックのデータ（１トラック分のデータ）を、フラッシュメモリ２２に格納する書き込み動作を実行している。
【００７７】
これに対して、本実施形態では、ディスクドライブ１は、図１８（Ａ）に示すディスク媒体１０上の書き込み要求範囲に対して、図１８（Ｂ）に示すように、当該要求範囲のストリームデータの先頭アドレスを含む１トラック分のデータＴ１と、最終アドレスを含む１トラック分のデータＴｅを、フラッシュメモリ２２に格納する。
【００７８】
このような書き込み動作において、ディスクドライブ１は、図１９に示すような代替トラック管理テーブルにより管理する。この代替トラック管理テーブルは、前述した図２または図３に示す代替トラック管理テーブルとは異なり、代替開始トラック番号、そのセクタ番号、代替終了トラック番号、及びそのセクタ番号を記録する。
【００７９】
但し、本実施形態は、トラック毎に論理アドレスの最も若い番号を割り当てる位置が周方向に一致していることを前提とする。周方向にずれている場合には、ディスク媒体１０上のライト時に代替していないトラックデータに対する隣接トラックデータのライトとなる可能性があり、適用できない。
【００８０】
以上要するに、ディスク媒体１０上にシーケンシャルライトするストリームデータにおいて、隣接トラックの両側に対するライト回数を、例えば１回までという制限を設けることが可能となる。これにより、トラックピッチを狭く設計することが可能となるため、ディスク媒体１０の容量を増大化させることが可能となる。また、ストリームデータの先頭アドレスの１トラック分の先頭データを、フラッシュメモリ２２に格納する。このため、例えばＴＶ番組を先頭から再生する場合に、ディスク媒体１０上でのヘッドシーク（リードアクセス）が完了する前に、フラッシュメモリ２２から先頭データをアクセスすることができるため、再生時のレスポンスタイムの高速化を図ることができる。
【００８１】
更に、属性データなど非ストリームデータで、１トラック以下のサイズのデータ（P-1，P-2）をフラッシュメモリ２２に格納する。従って、ディスク媒体１０に対するランダムアクセス回数を大幅に削減できる効果もある。
【００８２】
ここで、各実施形態の効果を具体例を参照して説明する。
【００８３】
例えば３２０ＧＢ容量のディスク媒体１０を有するディスクドライブ１において、隣接トラックセの両側に対するライト回数に制限した場合には、ディスク媒体１０の容量を約１６％程度向上させることが可能である。即ち、ディスク媒体１０の３２０ＧＢの容量を１６％増大した３７１ＧＢ容量のドライブ１において、例えば５分間番組(3MB/s×300s=900MB)で全容量を使い切った場合、４１２本のストリームデータがドライブ１に保存される。１トラック分の容量は最大６００ＫＢ程度なので、各ストリームデータに対して２トラック分のデータをフラッシュメモリ２２に保存すると、最大で４９４ＭＢの容量が必要になる。
【００８４】
なお、近年では、フラッシュメモリ２２の容量が１ＧＢ程度以上であるため、トラックの代替データ格納領域として約半分を割り当て、残りを非ストリームデータなどに割り当てることができる。
【００８５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施形態に関するディスクドライブの構成を示すブロック図。
【図２】本実施形態に関する代替トラック管理テーブルの構成を説明するための図。
【図３】本実施形態に関する代替トラック管理テーブルの構成を説明するための図。
【図４】本実施形態に関するシーケンシャルアクセスでのデータ記録状態を説明するための図。
【図５】本実施形態に関するシーケンシャルアクセスでのデータ記録状態を説明するための図。
【図６】本実施形態に関するシーケンシャルアクセスでのデータ記録状態を説明するための図。
【図７】本実施形態に関する基本的動作の説明でディスク媒体上の記録状態を説明するための図。
【図８】本実施形態に関する基本的動作の説明でフラッシュメモリの保存状態を説明するための図。
【図９】本実施形態に関するデータ書き込み動作の具体例を説明するための図。
【図１０】本実施形態に関するデータ書き込み動作の具体例を説明するための図。
【図１１】本実施形態に関するデータ書き込み動作の具体例を説明するための図。
【図１２】本実施形態に関するストリームデータの書き込み処理の手順を説明するための概念図。
【図１３】本実施形態に関するストリームデータの管理テーブルの構成を説明するための図。
【図１４】本実施形態に関するフラッシュメモリの管理について説明するための概念図。
【図１５】本実施形態に関するフラッシュメモリの管理について説明するための概念図。
【図１６】本実施形態に関するストリームデータの書き込み処理の手順を説明するためのフローチャート。
【図１７】本実施形態に関するストリームデータの書き込み処理の手順を説明するためのフローチャート。
【図１８】他の実施形態に関するデータ書き込み動作を説明するための図。
【図１９】他の実施形態に関する代替トラック管理テーブルの構成を説明するための図。
【符号の説明】
【００８７】
１…ディスクドライブ、２…ホストシステム、１０…ディスク媒体、
１１…スピンドルモータ（ＳＰＭ）、１２…ヘッド、１３…アクチュエータ、
１４…ボイスコイルモータ（ＶＣＭ）、１５…ヘッドアンプ、
１６…リード／ライト（Ｒ／Ｗ）チャネル、１７…バッファメモリ、
１８…モータドライバ、１９…マイクロプロセッサ（ＣＰＵ）、
２０…ディスクコントローラ（ＨＤＣ）、２１…フラッシュＲＯＭ、
２２…フラッシュメモリ。
【要約】
【課題】特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することにある。
【解決手段】フラッシュメモリ２２を有するディスクドライブ１おいて、ディスク媒体１０に記録すべき要求データが連続的データの場合に、要求データの先頭アドレスを含む１トラック分の最初のデータをフラッシュメモリ２２に格納し、最初のデータの次から最終アドレスまでのデータをディスク媒体１０上に連続して書き込む構成である。
【選択図】      図１【図１】
0004282733.tif 000002
【図２】
0004282733.tif 000003
【図３】
0004282733.tif 000004
【図４】
0004282733.tif 000005
【図５】
0004282733.tif 000006
【図６】
0004282733.tif 000007
【図７】
0004282733.tif 000008
【図８】
0004282733.tif 000009
【図９】
0004282733.tif 000010
【図１０】
0004282733.tif 000011
【図１１】
0004282733.tif 000012
【図１２】
0004282733.tif 000013
【図１３】
0004282733.tif 000014
【図１４】
0004282733.tif 000015
【図１５】
0004282733.tif 000016
【図１６】
0004282733.tif 000017
【図１７】
0004282733.tif 000018
【図１８】
0004282733.tif 000019
【図１９】
0004282733.tif 000020