JP4282733B1 - ディスク記憶装置及びデータ書き込み方法 - Google Patents
ディスク記憶装置及びデータ書き込み方法 Download PDFInfo
- Publication number
- JP4282733B1 JP4282733B1 JP2007322416A JP2007322416A JP4282733B1 JP 4282733 B1 JP4282733 B1 JP 4282733B1 JP 2007322416 A JP2007322416 A JP 2007322416A JP 2007322416 A JP2007322416 A JP 2007322416A JP 4282733 B1 JP4282733 B1 JP 4282733B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- track
- flash memory
- disk medium
- address
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
Abstract
【課題】特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することにある。
【解決手段】フラッシュメモリ22を有するディスクドライブ1おいて、ディスク媒体10に記録すべき要求データが連続的データの場合に、要求データの先頭アドレスを含む1トラック分の最初のデータをフラッシュメモリ22に格納し、最初のデータの次から最終アドレスまでのデータをディスク媒体10上に連続して書き込む構成である。
【選択図】 図1
【解決手段】フラッシュメモリ22を有するディスクドライブ1おいて、ディスク媒体10に記録すべき要求データが連続的データの場合に、要求データの先頭アドレスを含む1トラック分の最初のデータをフラッシュメモリ22に格納し、最初のデータの次から最終アドレスまでのデータをディスク媒体10上に連続して書き込む構成である。
【選択図】 図1
Description
本発明は、ハードディスクドライブなどのディスク記憶装置に関し、特にシーケンシャルアクセスを要するデータ書き込み技術に関する。
近年、ハードディスクドライブを代表とするディスク記憶装置(ディスクドライブと表記する場合がある)は、コンピュータデータを保存するファイル装置だけでなく、ディジタル映像データなどのストリームデータ(連続的データと表記する場合がある)を保存する録画装置などに使用されている。
ディスクドライブでは、記録媒体であるディスク媒体上には、同心円状に多数のトラック(シリンダ)が構成されており、各トラックはそれぞれ複数のデータセクタに分割されている。ディスクドライブでは、ディスク媒体に対してデータを書き込み、または読出す場合、セクタ単位のリード/ライトアクセスが実行される。
近年のディスクドライブは、記録容量の増大化を推進するために、ディスク媒体上のトラック密度は高密度化されており、隣接するトラック間隔、即ちトラック間の距離(トラックピッチ)が狭くなっている。このため、隣接する各トラックにおいて、一方のトラックに記録されたデータに対して、他方のトラックにデータを書き込む場合、一方のトラックに記録されたデータの中で、隣接トラックとの境界近傍の部分には、他方のトラックに書き込まれるデータがオーバーライトされてしまう。
このようなオーバーライトが繰り返し行なわれると、一方のトラックに記録されたデータの記録信号が弱くなり、最悪の場合には、そのデータガ消去されて読出し動作ができなくなる。このような問題を解消するために、トラック上にデータをライトした回数を記録し、規定回数に達したトラックの隣接トラックをリードして再ライトする方法が提案されている(例えば、特許文献1を参照)。
特開2004−273060号公報
前述の先行技術の方法は、隣接トラックへのライト回数に制限を設けることにより、隣接トラックの記録データの消去を防止するものである。
ところで、ディジタル映像データなどのストリームデータは、連続的データで、1トラック分の容量を超える場合も多いため、ディスク媒体上の隣接する複数のトラックに対してシーケンシャルにリード/ライトアクセス(シーケンシャルアクセス)される場合が多い。このようなシーケンシャルアクセスでは、隣接トラックの両側に対するオーバーライトの回数を例えば1回までに制限することにより、トラックピッチを狭く設計することが可能となるため、ディスク媒体の記憶容量の増大化を図ることが可能となる。
しかしながら、前述の先行技術の方法では、隣接トラックの両側へのオーバーライト回数を、例えば1回までに制限するような制御を実現することはできない。
そこで、本発明の目的は、特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することにある。
本発明の観点に従ったディスク記憶装置は、データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、データを格納するフラッシュメモリと、前記ディスク媒体に対するデータの読出し、書き込み、及び前記フラッシュメモリに対するデータの書き込みを制御する制御手段とを有し、前記制御手段は、前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、1トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手段と、前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む1トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納し、前記最初のデータの次から前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手段とを備えた構成である。
本発明によれば、特にシーケンシャルアクセスでのデータ書き込み時に、隣接トラックの両側に対するオーバーライトの回数を制限することにより、相対的にトラックピッチを狭く設計することを可能とし、結果としてディスク媒体の記憶容量の増大化を図ることができるディスク記憶装置を提供することができる。
以下図面を参照して、本発明の実施形態を説明する。
(ディスクドライブの構成)
図1は、本実施形態に関するディスクドライブの構成を示すブロック図である。
図1は、本実施形態に関するディスクドライブの構成を示すブロック図である。
ディスクドライブ1は、ハイブリッド型ディスクドライブとも呼ばれるドライブであり、ユーザデータのデータ記録媒体として、磁気記録媒体であるディスク媒体10と、フラッシュメモリ22とを有する。フラッシュメモリ22は、不揮発性の半導体メモリであり、ブロック単位での書換え可能なフラッシュEEPROMである。なお、ディスクドライブ1は、ユーザデータを記憶するためのフラッシュメモリ22以外に、マイクロプロセッサ(CPU)19によりアクセスされて、各種の制御情報などを記憶するフラッシュメモリ(便宜的にフラッシュROMと表記する)21を有する。
ここで、ディスク媒体10は、同心円状の多数のトラックが構成されており、各トラックがそれぞれ複数のデータセクタに分割されている。ディスクドライブ1では、ディスク媒体10に対してデータを書き込み、または読出す場合、セクタ単位のリード/ライトアクセスが実行される。
さらに、ディスクドライブ1は、ディスク媒体10を回転させるスピンドルモータ(SPM)11、ヘッド12、アクチュエータ13、及びボイスコイルモータ(VCM)14を有する。ヘッド12は、ディスク媒体10に対してデータを書き込むライトヘッドと、ディスク媒体10からデータを読出すリードヘッドとを有する。アクチュエータ13は、ヘッド12を搭載し、ボイスコイルモータ14の駆動によりヘッド12をディスク媒体10上の半径方向(矢印)に移動させる。
さらに、ディスクドライブ1は、ヘッドアンプ15、リード/ライト(R/W)チャネル16、バッファメモリ17、モータドライバ18、CPU19、及びディスクコントローラ(HDC)20を有する。
ヘッドアンプ15は、通常では、リードアンプとライトアンプを含む。リードアンプは、ヘッド12のリードヘッドから読出されたリード信号を増幅する。ライトアンプは、リード/ライトチャネル16から出力されるライトデータをライト電流に変換して、ライトヘッドに出力する。リード/ライトチャネル16は、信号処理回路であり、リードヘッドからのリード信号を処理して元のデータに復号化するリードチャネル、及びホストシステム2から送られるライトデータを符号化するライトチャネルを有する。
バッファメモリ17は、通常ではDRAM(ダイナミックRAM)であり、ディスクコントローラ20により制御されて、リード/ライトデータを一時的に格納するメモリである。モータドライバ18は、ボイスコイルモータ14の駆動を制御するVCMドライバ、及びSPM11の駆動を制御するSPMドライバを含む。
CPU19は、ドライブ1のメインコントローラであり、主として、ディスク媒体10に対するリード/ライトアクセスの制御を行なう。即ち、CPU19は、リード/ライトアクセスするディスク媒体10上の目標位置を決定し、モータドライバ18のVCMドライバを介してアクチュエータ13を移動制御することにより、ヘッド12を目標位置に位置決めする位置決め動作を実行する。通常では、位置決め動作には、ヘッド12を目標位置まで移動させるシーク動作と、目標位置である目標シリンダにヘッド12を位置決めする追従動作が含まれる。
ディスクコントローラ20は、ドライブ1とホストシステム2との間で、リード/ライトデータの転送を制御するインターフェースである。ディスクコントローラ20は、ホストシステム2からのライトコマンドに基づいて、ホストシステム2から転送されたライトデータを、ディスク媒体10またはフラッシュメモリ22に書き込むライト動作を実行する。この場合、ディスクコントローラ20は、ライトコマンドに基づいて、ディスク媒体10に書き込むためのライトデータをバッファメモリ17に一時的に格納し、このバッファメモリ17からリード/ライトチャネル16に転送する。また、ディスクコントローラ20は、本実施形態に関するシーケンシャルアクセスを伴うデータ書き込み動作を実行する。
一方、ディスクコントローラ20は、ホストシステム2からのリードコマンドに基づいて、バッファメモリ17に格納されたデータまたはフラッシュメモリ22から読出したデータをホストシステム2に転送するリード動作を実行する。また、ディスクコントローラ20は、ホストシステム2からのリードコマンドに基づいて、ディスク媒体10に対するリードアクセスを実行する。具体的には、ディスクコントローラ20は、ディスク媒体10から読出されて、リード/ライトチャネル16により復号化されたデータを、バッファメモリ17に格納する。
(本実施形態の作用効果)
まず、図4から図8を参照して、本実施形態のディスクドライブ1におけるデータ書き込み動作の原理を説明する。
まず、図4から図8を参照して、本実施形態のディスクドライブ1におけるデータ書き込み動作の原理を説明する。
図4は、ディスク媒体10上の隣接トラックに、データをライトした場合に、記録データが弱まる様子を説明するための図である。即ち、ディスク媒体10上のトラックN+1にデータAを書き込みした後に、隣のトラックN+2にデータBを書き込む場合には、図4に示すように、記録データAにおいて、トラックN+2側のデータ部分がオーバーライト(上書き)されてしまう。このようなオーバーライトが繰り返し行なわれると、トラックN+1の記録データAの記録信号は弱められて、最悪の場合には読出し動作が不可能になる。通常のディスクドライブでは、隣接トラックに対して、例えば10万回以下のオーバーライトでは、記録データが消去しないようにトラックピッチなどの設計がなされている。
次に、図5は、ディスク媒体10上のトラックN+1から順番に、シーケンシャルアクセスによりデータを書き込むライト動作(以下、シーケンシャルライトと表記する場合がある)をした場合の様子を説明するための図である。
この場合、データN+4が書き込まれた時点で、データN+1〜N+3はそれぞれ、片側の隣接トラックに1回だけオーバーライトされている。シーケンシャルライトのみの場合には、図5に示すように、片側の隣接トラックに対して、最大でも1回だけオーバーライトされるだけなので、トラックピッチが狭くなった場合も記録データの信号が消去する危険性は極めて低い。
さらに、図6は、ディスク媒体10上のトラックN+1から順番に、データN+1〜N+4がシーケンシャルライトされた領域(トラックN+1〜N+4)の前で、トラックNに新しいデータXを書き込みした場合の様子を説明するための図である。
この場合、トラックN+1に書き込まれた記録データN+1は、両側の隣接トラックから1回ずつオーバーライトされたことになる。このため、図5に示す状態よりも、記録データの信号が消去される割合が多くなる。この場合でも、両側に1回ずつのオーバーライトのみであれば、トラックピッチを狭くしても、記録データの信号が消去する危険性はまだ低い。
そこで、本実施形態は、シーケンシャルライトを行なう場合に、隣接トラックの両側に対するオーバーライトの回数を、最大でも1回ずつに制限するためのデータ書き込み方法を提供する。以下、図2、図3、図7から図17を参照して、本実施形態のデータ書き込み方法を具体的に説明する。
まず、本実施形態では、例えばTV番組のディジタル映像データのように、ディスク媒体10上において、連続したアドレス領域で1トラック以上の領域に、シーケンシャルライトする連続的データをストリームデータと呼ぶことにする。
ストリームデータは、相対的に大きなサイズの連続的データとして保存される。また、番組の属性管理データやホストシステム2のシステムデータなどは、ストリームデータと比較して相対的に小さなサイズのデータであり、非ストリームデータと呼ぶ場合もある。また、ディスク媒体10に対するリード/ライトアクセスにおいて、ホストシステム2からの論理アドレス(LBA)は、連続するトラック内に含まれるセクタに順番に割り当てられる。即ち、ディスク媒体10の1つのデータ面に対して、ユーザデータ領域の全てのトラックに対して連続したアドレスが割り当てられる。途中で、論理アドレスが非連続になる状態は想定していない。但し、途中で論理アドレスが非連続になる設計の場合には、その区切りごとに1トラック分の未使用領域を設けることで本実施形態を適用することが可能である。
(データ書き込み方法の基本的動作)
次に、図7及び図8を参照して、本実施形態のデータ書き込み方法の基本的動作を説明する。
次に、図7及び図8を参照して、本実施形態のデータ書き込み方法の基本的動作を説明する。
図7は、本実施形態のディスクドライブ1において、ディスク媒体10上に、2本のストリームデータA,B、及び非ストリームデータP-1,P-2が記録されている状態を示す図である。図8は、フラッシュメモリ22でのデータの保存状態を示す図である。
ストリームデータA,Bは、連続する複数のトラック範囲に、シーケンシャルライトにより書き込まれている。ここで、トラックデータA-Hは、ストリームデータAの先頭アドレスを含む1トラック分のデータ(トラックデータ)である。また、トラックデータA-Nは、ストリームデータA以外のデータであり、ストリームデータAの最終アドレスを含むトラックに隣接するトラックデータである。同様に、トラックデータB-Hは、ストリームデータBの先頭アドレスを含む1トラック分のデータである。また、トラックデータB-Nは、ストリームデータB以外のデータであり、ストリームデータBの最終アドレスを含むトラック(最終トラック)に隣接するトラックデータである。
前述したように、ストリームデータA,Bは、シーケンシャルにライトされるため、隣接トラックの片側に1回だけオーバーライトがなされるだけである。また、同一の領域に、ストリームデータA,Bが何度も繰り返して書き込まれる場合、ストリームデータ自身は毎回書き直されるので、記録信号の強度が劣化するようなことは起こらない。
しかし、ストリームデータA,Bの記録領域の前後の隣接トラックのデータ、即ちトラックデータA-H,B-Hのそれぞれに隣接するトラックの記録データや、トラックデータA-N,B-Nについては、ストリームデータの書き込み前に比べて、オーバーライトの回数が1回増えた状態となる。しかも、これらのデータについては、書き直されることがない場合、消去される可能性が高くなる。
そこで、本実施形態のディスクドライブ1では、図8に示すように、各ストリームデータA,Bの先頭アドレスを含むトラックデータA-H,B-Hを、ディスク媒体10上には書き込みを実行せずに、代替記録領域として、フラッシュメモリ22に格納する。さらに、ストリームデータA,Bの最終トラックに隣接する次のトラックデータA-N,B-Nについても、フラッシュメモリ22に格納する。これにより、シーケンシャルライトされるストリームデータA,Bに隣接する前後のトラックに対するオーバーライトの回数を抑制できるため、それらのトラックに記録されるデータが消去してしまう事態を防止することができる。
ここで、ディスク媒体10からフラッシュメモリ22に代替して配置されるトラックデータは、図2に示すような代替トラック管理テーブルにより管理する。この代替トラック管理テーブルはディスク媒体10上のシステムエリアに保存されており、代替されたトラック番号、トラックデータのサイズ、フラッシュメモリ22の開始アドレス、及びリンク情報(1〜X)が登録される。
リンク情報は、代替トラックとフラッシュメモリ22のブロックとの対応関係(保存先のブロックと順番)を示す属性情報であり、格納先のフラッシュメモリ22のアドレスが連続しない場合に、どのアドレスからどのアドレスへ格納先が飛んだかが分かるような情報も含む。
なお、ディスクコントローラ20は、フラッシュメモリ22にデータを保存する場合には、イレース単位であるブロックの使用状況を管理したテーブルを参照し、空いているブロックを探し出してデータを格納する。ディスクコントローラ20は、ディスク媒体10上の最大で1トラック分のデータサイズ(例えば600kB)に相当する複数のブロック(例えば128kB)分をフラッシュメモリ22に確保して、代替トラックデータを保存する。
また、図7に示すように、ディスク媒体10上には、1トラック分以下の非ストリームデータP-1,P-2が、同一トラックにランダムに書き込まれる場合もある。これらのデータP-1,P-2は、ストリームデータに比べて書き込み回数が多くなる可能性がある。このような書き込み回数が多くなるデータP-1,P-2のトラックに隣接するトラックのデータが、消去される可能性が高くなる。そこで、本実施形態では、これら書き込み回数が多くなる非ストリームデータP-1,P-2に関しても、フラッシュメモリ22に格納する。
但し、このような場合には、図3に示すような代替トラック管理テーブルにより管理する。即ち、これらのデータP-1,P-2は、トラック単位ではなく、セクタ単位でデータを格納するため、データの論理アドレス(LBA)とサイズに対して、フラッシュメモリのアドレスを対応付けて登録する必要がある。従って、図3に示す代替トラック管理テーブルは、代替された論理アドレス(LBA)、データのサイズ、フラッシュメモリ22の開始アドレス、及びリンク情報(1〜X)が登録される。なお、図3に示す代替トラック管理テーブルにおいて、論理アドレス(LBA)の代わりに、ディスク媒体10上の物理アドレスを使用してもよい。
(データ書き込み方法の具体例)
図9から図11は、ディスク媒体10上に記録されているストリームデータに対して、連続的または重なるように新しいストリームデータを書き込む場合の様子を説明した図である。
図9から図11は、ディスク媒体10上に記録されているストリームデータに対して、連続的または重なるように新しいストリームデータを書き込む場合の様子を説明した図である。
まず、図9(A)は、ディスク媒体10上にストリームデータA(先頭トラックデータA-H)が既に記録されている状態を示す。この場合、前述したように、先頭トラックデータA-H、及び最終トラックに隣接する次のトラックデータA-Nは、実際にはディスク媒体10ではなく、フラッシュメモリ22に保存されている。
ここで、図9(B)に示すように、既存のストリームデータAの途中から、新しいストリームデータ(Cとする)が追加して書き込まれる場合を想定する。この場合、フラッシュメモリ22には、代替された先頭トラックデータA-Hに加えて、新たにストリームデータCの先頭トラックデータC-Hが保存される。従って、実際には、図9(B)に示すディスク媒体10上の先頭トラックC-Hの位置には、当該データは書き込まれない。また、フラッシュメモリ22に格納されていたトラックデータA-Nは不要となり、代わりにストリームデータCの最終トラックに隣接するトラックデータC-Nが保存される。
次に、図10(A)に示すように、ディスク媒体10上の既存のストリームデータAに対して、当該ストリームデータAの途中まで、新しいストリームデータCが書き込まれる場合を想定する。即ち、図10(B)に示すように、先頭トラックデータC-Hを含む新たにストリームデータCが、ストリームデータAの途中までオーバーライトされる。
ここで、実際には、先頭トラックデータC-Hは、ディスク媒体10上には書き込まれず、フラッシュメモリ22に格納される。フラッシュメモリ22に格納されていたトラックデータA-Hは不要となる。また、フラッシュメモリ22に保存されているトラックデータA-Nはそのまま維持されて、新たにトラックデータC-Nが保存される。
さらに、図11(A)に示すように、ディスク媒体10上で既存のストリームデータAに対して、その全領域がオーバーライトされる場合を想定する。即ち、図11(B)に示すように、先頭トラックデータC-Hを含む新たにストリームデータCが、ストリームデータAの全領域にオーバーライトされる。
ここで、実際には、先頭トラックデータC-Hは、ディスク媒体10上には書き込まれず、フラッシュメモリ22に格納される。フラッシュメモリ22に格納されていたトラックデータA-H及びA-Nは不要となる。また、フラッシュメモリ22には、先頭トラックデータC-Hと共に、トラックデータC-Nが保存される。
(ストリームデータの書き込み手順)
以下、主として図12、及び図16,17のフローチャートを参照して、ストリームデータの書き込み処理の手順を説明する。
以下、主として図12、及び図16,17のフローチャートを参照して、ストリームデータの書き込み処理の手順を説明する。
まず、図12(A)に示すように、ディスク媒体10上において、ホストシステム2がストリームデータを保存するための書き込み要求範囲(ライトアクセス範囲)WRを想定する。ここでは、書き込み要求範囲WRは、あるトラック(先頭トラック)T-Hの途中セクタから始まり、あるトラック(最終トラック)T-Eの途中セクタまでの範囲である。
図16に示すように、ディスクドライブ1は、ホストシステム2からの書き込み要求の論理アドレスを、ディスク媒体10上の書き込み要求範囲WRを特定するための物理アドレスに変換する(ブロック100)。ディスクドライブ1は、最初からストリームデータを保存する場合には、図12(B)に示すように、最初の1トラック分のデータT1をフラッシュメモリ22に格納する(ブロック101のNO,ブロック104)。
なお、ディスクドライブ1では、ディスク媒体10及びフラッシュメモリ22へのデータの書き込み動作は、CPU19及びディスクコントローラ20の各制御動作の連携により実行される。本実施形態では、特に、両者の制御動作の内容を区別することなく、ディスクドライブ1の動作として説明する。
ここで、ディスクドライブ1は、ホストシステム2からの書き込みデータ(ライトデータ)が連続アドレスで1トラック分以上あると分かった時点で、このライトデータはストリームデータであると判定し、図13に示すように、ストリームデータの管理テーブルに登録する(ブロック105のYES,106)。即ち、新たにストリームデータとして登録する場合には、ライトデータを格納するためのフラッシュメモリ22の領域を確保し、最初の1トラック分のデータT1を格納する。
次に、ディスクドライブ1は、図12(C)に示すように、先頭トラックT-Hのライト対象以外のデータT-Hb(データT1以外の太枠の部分)をディスク媒体10から読出して、フラッシュメモリ22に格納する(ブロック107)。このとき、図2に示す代替トラック管理テーブルに、フラッシュメモリ22の格納先アドレス等を記録する(ブロック108)。
なお、ディスクドライブ1は、当該トラックデータ(先頭トラックT-Hのデータ)が既にフラッシュメモリ22に存在する場合には、そのデータは不要であるため、フラッシュメモリ22の格納領域(格納ブロック)を開放する(ブロック109)。また、ストリームデータであると判定した時点で、ストリームデータの2トラック目のトラックデータT2に関しては、フラッシュメモリ22への格納は不要になるので、フラッシュメモリ22への格納を中止する。
さらに、ディスクドライブ1は、代替トラックである先頭トラックT-Hの次からの2トラック目のトラックデータT2以降については、ディスク媒体10上の連続した領域にシーケンシャルライトする(ブロック110)。ここで、先頭トラックT-Hのデータは、代替トラックデータT1としてフラッシュメモリ22に保存されている。
ディスクドライブ1は、例えばホストシステム2からのライト要求が一定時間経過しても来なくなった時点で、ストリームデータの書き込みが終了したと判定する。この後、ディスクドライブ1は、図12(E)に示すように、最終トラックT-Eのライト範囲外のデータ部分T-Ebをディスク媒体10から読出し、同じ場所に書き込む。
次に、図12(F)に示すように、ディスクドライブ1は、最終トラックT-Eの次のトラックT-Nからデータを読出して、フラッシュメモリ22に格納する。この処理が終了すると、ディスクドライブ1は、一旦、ストリームデータの書き込み処理を終了する(後述するステータスのクローズに相当)。
ここで、ディスクドライブ1は、図12(D)に示すように、代替トラックである先頭トラックT-Hの次からの2トラック目のトラックデータT2以降について、データの書き込み要求が来た場合には、ディスク媒体10上の連続した領域にシーケンシャルライトを実行する(ブロック101のYES,ブロック102)。このとき、ディスクドライブ1は、上書きされる代替トラックが存在する場合には、フラッシュメモリ22に格納された代替トラックデータが不要になるため、その格納領域(格納ブロック)を開放する(ブロック111のYES,ブロック103)。
ここで、図13に示すように、ストリームデータの管理テーブルは、ストリームデータとして登録した場合に割り当てるストリーム番号、ステータス、書き込み済み論理アドレス(物理アドレスでも可)、及び隣接トラックの退避の属性を示す情報などを格納する。ステータスのオープンは、そのストリームデータが書き込み途中であることを示す属性情報である。ライト要求が発生した場合に、書き込み済み論理アドレスの値を参照して、いずれかのストリームデータに属するライトであるか否かを判定し、現在オープンしているストリームデータの場合には、継続して続きのアドレスへの書き込みを行う。ステータスのクローズは、そのストリームデータの書き込みが終了したことを示す属性情報である。
図13に示す管理テーブルにおいて、ディスクドライブ1は、ホストシステムからの要求が一定時間なく、アイドル状態に移行するタイミングなどで、それぞれのストリームデータのステータスをクローズに設定する。または、それぞれのストリームデータ毎にタイムスタンプをとり、最終アクセスからの経過時間が一定値以上となった時点で、ステータスをクローズに設定してもよい。クローズしたストリームデータについては、図12(E),(F)に示すような処理を実行する。このトラックデータの退避処理が完了したら、テーブルの隣接トラックの退避の属性を「済」に設定する。
図17は、ディスクドライブ1がアイドル状態に移行する際に、各ストリームデータをクローズするための処理手順を示すフローチャートである。
ディスクドライブ1は、オープンしているストリームデータ、即ち書き込み中のストリームデータがある場合で、最終トラックに書き込みされていないセクタ領域がある場合は、ディスク媒体10から、その最終トラックからデータを読出して同じ場所に書き込む(ブロック200〜202)。そして、図12(F)に示すように、最終トラックT-Eの次のトラックT-Nからデータを読出して、フラッシュメモリ22に格納する(ブロック203)。
(フラッシュメモリの管理)
図14は、フラッシュメモリに格納した代替トラックデータを、ディスク媒体10に書き戻すためのフラッシュ処理を説明するための図である。
図14は、フラッシュメモリに格納した代替トラックデータを、ディスク媒体10に書き戻すためのフラッシュ処理を説明するための図である。
本実施形態では、前述のように、シーケンシャルライトされるストリームデータをディスク媒体10上に記録する場合に、一部のトラックデータを代替トラックデータとしてフラッシュメモリ22に格納する。これにより、ストリームデータに隣接する前後のトラックに対するオーバーライトの回数を抑制できる。
しかしながら、相対的に小容量で多数本のストリームデータがそれぞれ、ディスク媒体10に書き込まれる状況を想定すると、フラッシュメモリ22に格納される代替トラックデータが増大化し、フラッシュメモリ22の空き容量が不足する事態になる可能性が高くなる。このような状況では、新たにストリームデータの書き込み要求に対して対処できなくなる。
そこで、本実施形態のディスクドライブ1は、フラッシュメモリ22に格納されたデータをディスク媒体10に書き戻す処理を実行する。但し、図14(B)に示すように、ディスク媒体10に書き込む場合には、必ずシーケンシャルライトの状態にならなければならない。即ち、フラッシュメモリ22に格納された代替トラックデータを、そのままディスク媒体10に書き戻すことはできない。
具体的には、ディスクドライブ1は、図14(B)に示すように、あるストリームデータの隣接した代替トラックA-Nの位置から連続した任意の領域にシーケンシャルライトを実行する。このとき、ディスクドライブ1は、フラッシュメモリ22に代替されているトラックデータをフラッシュメモリ22から読出して、指定の位置に書き込む。また、図14(A)に示すように、それ以外のデータをディスク媒体10から読出して、順番に指定の位置に書き込む(141〜143)。さらに、図14(B)に示すように、書き込みが終了したトラックの次のトラックのデータについて、ディスク媒体10から読出して、フラッシュメモリ22に格納する。
以上のような処理により、シーケンシャルライトの領域に含まれている代替トラックデータについては、フラッシュメモリ22での格納が不要となるため、フラッシュメモリ22の該当格納領域を開放できるため、使用可能容量を増大化できる。特に、シーケンシャルライト範囲が大きいほど、フラッシュメモリ22の開放領域を増大できる。但し、この処理は、ディスクドライブ1としては負担となるため、ホストシステム2からのコマンドがない時に、フラッシュメモリ22の使用容量に応じて実行することが望ましい。
図15は、フラッシュメモリ22に空き領域がない場合に、ストリームデータの書き込み処理を説明するための図である。なお、この処理は、本実施形態では、必ずしも必須の処理ではない。フラッシュメモリ22に空き領域がない場合には、前述の図14を参照して説明した処理でよい。
ディスクドライブ1は、図15に示すように、ディスク媒体10上に、通常のユーザデータ領域10A以外に、予備のバッファ領域10Bを確保する。このバッファ領域10Bは、半径方向のある連続トラック範囲で、シーケンシャルライト領域として使用されるバッファ専用領域である。ディスクドライブ1は、フラッシュメモリ22に空き領域がなくなると、先頭アドレスを含むストリームデータを、当該バッファ領域10Bに一時的に格納する(シーケンシャルライト)。
ディスクドライブ1は、フラッシュメモリ22に空き領域が確保されると、当該バッファ領域10Bに格納されたストリームデータを読出して、ディスク媒体10上の本来のアドレス位置にシーケンシャルライトする。このとき、ディスクドライブ1は、フラッシュメモリ22の空き領域に、ストリームデータの先頭アドレスを含む1トラック分のデータを格納する。
以上の処理により、フラッシュメモリ22に空き領域を確保できない場合でも、予備のバッファ領域10Bを利用して、ストリームデータのシーケンシャルライトを実現することができる。そして、フラッシュメモリ22に空き領域を確保できた時点で、ストリームデータの先頭アドレスを含む1トラック分のデータを、フラッシュメモリ22に格納することができる。
(他の実施形態)
図18及び図19は、他の実施形態を説明するための図である。なお、ディスクドライブ1の構成は、図1に示す前述の実施形態の場合と同様のため、図示及び説明を省略する。
図18及び図19は、他の実施形態を説明するための図である。なお、ディスクドライブ1の構成は、図1に示す前述の実施形態の場合と同様のため、図示及び説明を省略する。
前述の実施形態に関するディスクドライブ1は、ストリームデータの先頭アドレスを含む1トラック分のデータ、及び最終アドレスを含むトラックに隣接するトラックのデータ(1トラック分のデータ)を、フラッシュメモリ22に格納する書き込み動作を実行している。
これに対して、本実施形態では、ディスクドライブ1は、図18(A)に示すディスク媒体10上の書き込み要求範囲に対して、図18(B)に示すように、当該要求範囲のストリームデータの先頭アドレスを含む1トラック分のデータT1と、最終アドレスを含む1トラック分のデータTeを、フラッシュメモリ22に格納する。
このような書き込み動作において、ディスクドライブ1は、図19に示すような代替トラック管理テーブルにより管理する。この代替トラック管理テーブルは、前述した図2または図3に示す代替トラック管理テーブルとは異なり、代替開始トラック番号、そのセクタ番号、代替終了トラック番号、及びそのセクタ番号を記録する。
但し、本実施形態は、トラック毎に論理アドレスの最も若い番号を割り当てる位置が周方向に一致していることを前提とする。周方向にずれている場合には、ディスク媒体10上のライト時に代替していないトラックデータに対する隣接トラックデータのライトとなる可能性があり、適用できない。
以上要するに、ディスク媒体10上にシーケンシャルライトするストリームデータにおいて、隣接トラックの両側に対するライト回数を、例えば1回までという制限を設けることが可能となる。これにより、トラックピッチを狭く設計することが可能となるため、ディスク媒体10の容量を増大化させることが可能となる。また、ストリームデータの先頭アドレスの1トラック分の先頭データを、フラッシュメモリ22に格納する。このため、例えばTV番組を先頭から再生する場合に、ディスク媒体10上でのヘッドシーク(リードアクセス)が完了する前に、フラッシュメモリ22から先頭データをアクセスすることができるため、再生時のレスポンスタイムの高速化を図ることができる。
更に、属性データなど非ストリームデータで、1トラック以下のサイズのデータ(P-1,P-2)をフラッシュメモリ22に格納する。従って、ディスク媒体10に対するランダムアクセス回数を大幅に削減できる効果もある。
ここで、各実施形態の効果を具体例を参照して説明する。
例えば320GB容量のディスク媒体10を有するディスクドライブ1において、隣接トラックセの両側に対するライト回数に制限した場合には、ディスク媒体10の容量を約16%程度向上させることが可能である。即ち、ディスク媒体10の320GBの容量を16%増大した371GB容量のドライブ1において、例えば5分間番組(3MB/s×300s=900MB)で全容量を使い切った場合、412本のストリームデータがドライブ1に保存される。1トラック分の容量は最大600KB程度なので、各ストリームデータに対して2トラック分のデータをフラッシュメモリ22に保存すると、最大で494MBの容量が必要になる。
なお、近年では、フラッシュメモリ22の容量が1GB程度以上であるため、トラックの代替データ格納領域として約半分を割り当て、残りを非ストリームデータなどに割り当てることができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1…ディスクドライブ、2…ホストシステム、10…ディスク媒体、
11…スピンドルモータ(SPM)、12…ヘッド、13…アクチュエータ、
14…ボイスコイルモータ(VCM)、15…ヘッドアンプ、
16…リード/ライト(R/W)チャネル、17…バッファメモリ、
18…モータドライバ、19…マイクロプロセッサ(CPU)、
20…ディスクコントローラ(HDC)、21…フラッシュROM、
22…フラッシュメモリ。
11…スピンドルモータ(SPM)、12…ヘッド、13…アクチュエータ、
14…ボイスコイルモータ(VCM)、15…ヘッドアンプ、
16…リード/ライト(R/W)チャネル、17…バッファメモリ、
18…モータドライバ、19…マイクロプロセッサ(CPU)、
20…ディスクコントローラ(HDC)、21…フラッシュROM、
22…フラッシュメモリ。
Claims (9)
- データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、
前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、
データを格納するフラッシュメモリと、
前記ディスク媒体に対するデータの読出し、書き込み、及び前記フラッシュメモリに対するデータの書き込みを制御する制御手段とを有し、
前記制御手段は、
前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、1トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手段と、
前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む1トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納し、前記最初のデータの次から前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手段と
を含むことを特徴とするディスク記憶装置。 - 前記制御手段は、
前記最初のデータおよび前記最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納した後に、前記要求データの先頭アドレスを含むトラックに隣接するトラックに記録すべきデータから前記最終アドレスまでのデータを前記ディスク媒体に連続して書き込むことを特徴とする請求項1に記載のディスク記憶装置。 - 前記制御手段は、
前記最終アドレスを含むデータを最終トラックに書き込むときに、当該最終トラックの途中で前記要求データが終了する場合には、当該最終トラックから前記要求データに含まれない残りのデータを前記ディスク媒体から読出し、その同一場所に再度書き込む手段を含むことを特徴とする請求項1又は請求項2のいずれか1項に記載のディスク記憶装置。 - 前記制御手段は、
前記要求データである前記連続的データを前記フラッシュメモリおよび前記ディスク媒体上に書き込みした後に、前記ホストシステムから一定時間経過しても前記連続的データの続きのデータを受信しない場合には、前記連続的データの書き込みが終了したと判定する手段を含むことを特徴とする請求項1から請求項3のいずれか1項に記載のディスク記憶装置。 - 前記制御手段は、
前記要求データである前記連続的データを前記フラッシュメモリおよび前記ディスク媒体上に書き込みした後に、前記ホストシステムから一定時間経過しても前記連続的データの続きのデータを受信しない場合には、前記連続的データの書き込みが終了したと判定し、
前記連続的データの最終アドレスを含む最終トラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納する手段を含むことを特徴とする請求項1から請求項3のいずれか1項に記載のディスク記憶装置。 - 前記制御手段は、
前記フラッシュメモリに格納したデータを読出して、前記ディスク媒体に連続して書き込まれた領域の指定の位置に書き戻し、当該指定の位置から連続的データを前記ディスク媒体から読出して連続的に書き込み、
書き込みが終了した最終トラックの次のトラックのデータについて、前記ディスク媒体から読出して、前記フラッシュメモリに格納する手段を含むことを特徴とする請求項1から請求項5のいずれか1項に記載のディスク記憶装置。 - 前記制御手段は、
前記ディスク媒体上に前記連続的データを連続的に書き込むための予備のバッファ領域を確保し、
前記フラッシュメモリに空き領域を確保できない場合に、前記連続的データを前記予備のバッファ領域に一時的に格納し、前記フラッシュメモリの空き領域を確保したときに、前記予備のバッファ領域に格納された連続的データを読出して、前記ディスク媒体上の本来のアドレス位置に書き直し、
書き直した前記連続的データの先頭アドレスを含む1トラック分の最初のデータを前記フラッシュメモリの空き領域に格納する手段を含むことを特徴とする請求項1から請求項6のいずれか1項に記載のディスク記憶装置。 - 前記制御手段は、
トラック毎に論理アドレスの最も若い番号を割り当てる位置が周方向に一致している場合であって、前記要求データの先頭アドレスを含む1トラック分の最初のデータと共に、前記要求データの最終アドレスを含む1トラック分のデータを前記フラッシュメモリに格納する手段を含むことを特徴とする請求項1に記載のディスク記憶装置。 - データを記録する領域として同心円状の複数のトラックが設けられたディスク媒体と、
前記ディスク媒体に対してデータの読出し、書き込みを行なうためのヘッドと、データを格納するフラッシュメモリとを有するディスク記憶装置に適用するデータ書き込み方法であって、
前記ディスク媒体に記録すべき要求データで、ホストシステムから受信した前記要求データが、1トラック分以上で隣接する複数のトラックに対応する連続アドレス範囲に書き込まれる連続的データであるか否かを判定する手順と、
前記判定結果により前記要求データが前記連続的データの場合に、前記要求データの先頭アドレスを含む1トラック分の最初のデータおよび前記連続的データの最終アドレスを含むトラックに隣接するトラックに記録されるデータを前記フラッシュメモリに格納する手順と、
前記最初のデータの次から最終アドレスまでのデータを前記ディスク媒体に連続して書き込む手順と
を実行することを特徴とするデータ書き込み方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007322416A JP4282733B1 (ja) | 2007-12-13 | 2007-12-13 | ディスク記憶装置及びデータ書き込み方法 |
US12/245,494 US20090154000A1 (en) | 2007-12-13 | 2008-10-03 | Method and apparatus for writing data with sequential access in a disk drive |
CNA2008101697101A CN101458932A (zh) | 2007-12-13 | 2008-10-20 | 用于以顺序访问的方式将数据写入盘驱动器的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007322416A JP4282733B1 (ja) | 2007-12-13 | 2007-12-13 | ディスク記憶装置及びデータ書き込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4282733B1 true JP4282733B1 (ja) | 2009-06-24 |
JP2009146500A JP2009146500A (ja) | 2009-07-02 |
Family
ID=40752861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007322416A Expired - Fee Related JP4282733B1 (ja) | 2007-12-13 | 2007-12-13 | ディスク記憶装置及びデータ書き込み方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090154000A1 (ja) |
JP (1) | JP4282733B1 (ja) |
CN (1) | CN101458932A (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571287B2 (en) | 2003-03-13 | 2009-08-04 | Marvell World Trade Ltd. | Multiport memory architecture, devices and systems including the same, and methods of using the same |
US8688947B1 (en) | 2007-11-21 | 2014-04-01 | Marvell International Ltd. | Aligned data access |
US8131915B1 (en) | 2008-04-11 | 2012-03-06 | Marvell Intentional Ltd. | Modifying or overwriting data stored in flash memory |
US8683085B1 (en) | 2008-05-06 | 2014-03-25 | Marvell International Ltd. | USB interface configurable for host or device mode |
US8423710B1 (en) * | 2009-03-23 | 2013-04-16 | Marvell International Ltd. | Sequential writes to flash memory |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
JP2014022021A (ja) | 2012-07-20 | 2014-02-03 | Toshiba Corp | ディスク記憶装置及び書き込み制御方法 |
JP6012460B2 (ja) * | 2012-12-28 | 2016-10-25 | 株式会社メガチップス | 映像記録装置及び監視カメラシステム |
US9293153B2 (en) | 2013-10-18 | 2016-03-22 | Seagate Technology Llc | Method and system for preserving data of a storage device |
US9286947B1 (en) | 2014-10-07 | 2016-03-15 | Seagate Technology Llc | Method and system for preserving data of a storage device |
CN106250322B (zh) * | 2016-08-12 | 2019-11-19 | 华为技术有限公司 | 一种写数据的方法和装置 |
CN110018897B (zh) | 2018-01-09 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及计算设备 |
CN110968253B (zh) * | 2018-09-29 | 2023-06-06 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328752A (ja) * | 1994-06-10 | 1996-12-13 | Canon Inc | 情報記録装置及び方法 |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
US7057838B2 (en) * | 2000-08-07 | 2006-06-06 | Hitachi, Ltd. | Magnetic disk device having a write head to write by shifting in a radial direction |
JP4063694B2 (ja) * | 2003-03-11 | 2008-03-19 | 株式会社日立グローバルストレージテクノロジーズ | 磁気ディスク装置 |
WO2005041044A1 (en) * | 2003-09-24 | 2005-05-06 | Seagate Technology Llc | Multi-level caching in data storage devices |
-
2007
- 2007-12-13 JP JP2007322416A patent/JP4282733B1/ja not_active Expired - Fee Related
-
2008
- 2008-10-03 US US12/245,494 patent/US20090154000A1/en not_active Abandoned
- 2008-10-20 CN CNA2008101697101A patent/CN101458932A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20090154000A1 (en) | 2009-06-18 |
CN101458932A (zh) | 2009-06-17 |
JP2009146500A (ja) | 2009-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4282733B1 (ja) | ディスク記憶装置及びデータ書き込み方法 | |
US8896953B2 (en) | Disk storage apparatus and method for shingled magnetic recording | |
JP3629216B2 (ja) | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 | |
US8429343B1 (en) | Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk | |
JP4886877B2 (ja) | 記録媒体制御装置、及びその方法 | |
US8667248B1 (en) | Data storage device using metadata and mapping table to identify valid user data on non-volatile media | |
JP4675881B2 (ja) | 磁気ディスク装置およびその制御方法 | |
TW201103016A (en) | Systems and methods for tiered non-volatile storage | |
JP2009020986A (ja) | ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法 | |
US20160378357A1 (en) | Hybrid storage device and method for operating the same | |
US8862856B2 (en) | Implementing remapping command with indirection update for indirected storage | |
US9727265B2 (en) | Disk device and control method that controls amount of data stored in buffer | |
JP5787839B2 (ja) | ディスク記憶装置及びデータ保護方法 | |
JP2016157498A (ja) | 磁気ディスク装置、及び書き直し処理方法 | |
JP2013157068A (ja) | データ記憶制御装置、データ記憶装置、及びデータ記憶方法 | |
JP5694210B2 (ja) | 磁気ディスク装置、リードライト制御方法、及びコントローラ | |
US20110022774A1 (en) | Cache memory control method, and information storage device comprising cache memory | |
JP4919983B2 (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
JP5713926B2 (ja) | 磁気ディスク装置及び同磁気ディスク装置におけるデータバッファリング方法 | |
JP2010152988A (ja) | ディスク記憶装置及びエリア管理方法 | |
JP6077703B2 (ja) | ディスク記憶装置及び方法 | |
US20160170891A1 (en) | Disk apparatus and control method | |
JP2011086324A (ja) | ストレージ装置 | |
JP2006179147A (ja) | 磁気ディスク装置及び記録制御方法 | |
JP2010044820A (ja) | 記録装置及び記録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090224 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090317 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120327 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |