(57)【要約】【課題】トラックの書き込みマージンの一方を削除したり、隣接トラックを部分的に重ね書きしてトラック密度を上げた場合、トラックの書き換え中に停電やホストの暴走などの障碍が発生して書き込み処理が中断しても、複数トラックのデータが破壊されないようにする。【解決手段】書き込み済みの論理ブロックアドレスのデータを更新する場合であっても、ステップ８０５で新規領域を選択してデータを書き込み、データの書き込みに成功した場合にはステップ８２１で旧領域を無効にして、ステップ８２２で新領域を有効にし、書き込みに失敗した場合にはステップ８１１で新領域を無効にする。【選択図】図８
2006338731.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体と、上位装置との間でコマンドやデータの送受信を行い前記記憶媒体に対して書き込みまたは読み出し制御を行う制御部と、を備えるディスク装置において、
連続する論理ブロックアドレスの範囲に対してデータを書き込む際に、
前記制御部が、
前記上位装置の指定する論理ブロックアドレスの値と無関係に前記記憶媒体上にデータ保存用領域を確保するステップ、
前記上位装置が論理ブロックアドレスで指定する順番で前記データ保存用の領域の各セクタに対してデータを書き込むステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項２】
請求項１に記載のデータ書き込み方法において、
前記制御部が、
前記記憶媒体上の前記データ保存用領域の配置と前記上位装置が指定する前記連続する論理ブロックアドレスの範囲との対応を対応表に保存するステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項３】
請求項２に記載のデータ書き込み方法において、
前記ディスク装置が一時記憶用バッファを備え、前記対応表を前記一時記憶用バッファに保存することを特徴とするデータ書き込み方法。
【請求項４】
請求項２に記載のデータ書き込み方法において、前記対応表を前記記憶媒体上に保存することを特徴とするデータ書き込み方法。
【請求項５】
請求項２に記載のデータ書き込み方法において、
書き込み済みの論理ブロックアドレスの範囲に対して上書きする際に、
前記制御部が、
前記記憶媒体上の既存のデータ保存済みの領域とは異なる新しいデータ保存用領域を前記記憶媒体上に確保するステップ、  
前記上位装置が論理ブロックアドレスで指定する順番で前記新しいデータ保存用領域の各セクタに対してデータを書き込むステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項６】
請求項５に記載のデータ書き込み方法において、
前記制御部が、
前記新しいデータ保存用領域に対するデータの書き込みが完了したかを検査するステップ、
前記データ書き込みが完了している場合に、
前記データ保存用領域の配置と前記連続する論理ブロックアドレスの範囲との対応を前記対応表から削除するステップ、
前記新しいデータ保存用領域と前記連続する論理ブロックアドレスの範囲との対応を前記対応表に保存するステップ、
前記データ保存用領域を開放するステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項７】
請求項５に記載のデータ書き込み方法において、
前記データ書き込みが完了せずに前記データ書き込みが終了している場合に、
前記制御部が、
前記新しいデータ保存用領域を開放するステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項８】
請求項１に記載のデータ書き込み方法において、前記記憶媒体上の連続トラックの各隣接トラック部分が部分的に重ね書きされていることを特徴とするデータ書き込み方法。
【請求項９】
請求項１に記載のデータ書き込み方法において、
前記制御部が、
前記記憶媒体を複数の領域に分割するステップ、
前記複数に分割した記憶媒体上の領域の一つを選択するステップ、
を実行し、
前記データ保存用領域を確保するステップにおいて、前記選択した領域の中から前記データ保存用領域を確保すること、
を特徴とするデータ書き込み方法。
【請求項１０】
請求項９に記載のデータ書き込み方法において、
前記記憶媒体を複数の領域に分割するステップにおいて、前記記憶媒体上で取り得る物理ブロックアドレスの範囲をある等しい大きさで分割し、物理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、
前記記憶媒体上の領域の一つを選択するステップにおいて、前記ディスク装置において取り得る論理ブロックアドレスの範囲を前記物理ブロックアドレスの範囲を分割した数と同数に分割し、論理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、前記連続する論理ブロックアドレスの範囲が所属する前記分割した論理ブロックアドレスの範囲のアドレスと等しい前記物理ブロックアドレスの範囲のアドレスを持つ前記記憶媒体上の領域を選択すること、
を特徴とするデータ書き込み方法。
【請求項１１】
請求項２に記載のデータ書き込み方法において、
前記制御部が、
前記上位装置からの前記対応表の読み出しコマンドを受信するステップ、
前記読み出しコマンドの応答として前記対応表を前記上位装置に送信するステップ、
を実行することを特徴とするデータ書き込み方法。
【請求項１２】
請求項１に記載のデータ書き込み方法において、各セクタにフラグ領域を設け、前記フラグ領域に管理情報を保存することを特徴とするデータ書き込み方法。
【請求項１３】
請求項１２に記載のデータ書き込み方法において、前記管理情報はセクタの論理ブロックアドレスとセクタ書き込みの際のトランザクション情報の一方または両方であることを特徴とするデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク装置へのデータ書き込み方法に関する。
【背景技術】
【０００２】
ディスク装置の記録密度向上のための一つの方策として、トラック幅の短縮とトラック密度の向上がある。これらを達成するための一つの手段がディスク装置の書き込みヘッドと読み出しヘッドの微細化である。ヘッドの微細化により、トラックをより細い幅で書き込み可能になり、トラック幅の短縮によりトラック密度が向上する。書き込みヘッドと読み出しヘッドはアームに固定され、アームはボイスコイルモータにより駆動される。ボイスコイルモータを用いてアームを動かす構造によりアームの移動には誤差が伴うため、トラックの書き込み時に書き込み対象トラックの両側にあるトラックに書き込みヘッドがはみ出してデータを破壊する可能性がある。このようなデータ破壊を防止するため、トラック同士の間隔をトラック幅よりも大きくして書き込みマージンを確保している。書き込みマージンは各トラックの両側に一割程度確保してあり、トラック密度の向上を阻害している。ディスク装置ではランダムにセクタに書き込むため各トラックの両側に書き込みマージンが必要になるが、シーケンシャルに書き込むようにすると、書き込みマージンの一方を削除可能になるためその分だけトラック密度を向上可能になる。つまり同一の書き込みヘッド、読み出しヘッド、記憶媒体を使っていても、一割程度ディスク装置の容量を向上することが可能になる。
【０００３】
Rosenblum らが “The Design and Implementation of a Log-Structured File System,” ACM Transaction on Computer Systems, Vol.10, No.1, Feb. 1992, pp26-52 で提案したLog-Structured File System (LFS) では、ファイルの管理情報であるメタ情報とファイルの中身であるコンテンツを全てログのような構造に連続的に記録する。例えば、同一ファイルを上書きする場合には、新しいファイルのデータがログに追加されるだけで古いファイルのデータはそのままログ上に残る。消去されたファイルのデータや上書きされたファイルのデータがそのままログ上に残り、これらの不要になったデータがディスク装置の空き容量を圧迫する。このためLFSでは定期的にクリーナープロセスを実行し、不要な領域を回収して再び使用可能にする。このような領域回収のことをゴミ集め（ガーベージコレクション）とも言う。セクタ単位での領域回収は効率が悪いため、クリーナープロセスではある程度まとまった容量単位で領域回収を行う。ディスク装置にデータを書き込むのにLFSのみを使う場合には、セクタをランダムに書き換えないため、トラックの片側の書き込みマージンを削除してディスク装置の容量を向上できる。
【０００４】
ディスク装置の通常の書き込みでは、トラック同士の間隔を書き込みヘッドの幅よりも狭くできないため、書き込みヘッド幅により最短のトラック間隔が決まる。WO99/45534に記載の「磁気ディスク装置」では、隣接トラックを部分的に重ね書きすることで、トラック幅を短縮するとともにトラック間隔も短縮する。これにより、トラック密度が向上しディスク装置の容量を向上する。
【０００５】
【特許文献１】WO99/45534
【非特許文献１】ACM Transaction on Computer Systems, Vol. 10, No. 1, Feb. 1992, pp26-52
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしLFSは実装が非常に困難であり、特にゴミ集めの実装が困難であるため、まともに動いているLFSの実装がほとんど存在しない。さらにLFSはホスト側で実装する必要があるため、ディスク装置側で書き込み時のトラックの書き込みマージンの一方を削除してディスク装置の容量を向上しても、ホスト側がLFSに対応していなければそのディスク装置を使用できないという問題がある。しかしLFSのような追記型の書き込み方法を使わずにトラックの書き込みマージンを削除すると、以下に述べるようなデータロストの可能性がある。
【０００７】
トラックの書き込みマージンの一方を削除するということは、トラックを書き込める方向が一方向に限られることを意味する。これはまた、記憶媒体上の領域を複数に分割しておき、それらの領域を一括で書き換える必要があることを意味する。つまりトラックの書き換え中に停電やホストの暴走などの障碍が発生して書き込み処理が中断すると、書き込みマージンが存在しないため次に書き込み予定のトラックのデータを破壊する可能性がある。特にWO99/445534に記載の「磁気ディスク装置」では隣接トラックを部分的に重ね書きする構造上、確実に次に書き込み予定のトラックのデータを破壊する。
【０００８】
WO99/445534に記載の「磁気ディスク装置」では、このようなデータ破壊を防止するため、トラックやセクタ単位で追記することにして論理ブロックアドレス(Logical Block Address, LBA)と物理ブロックアドレス(Physical Block Address, PBA)との対応をアドレス変換表により管理することを提案している。しかし、この方法ではアドレス変換表が巨大になるという問題がある。例えば容量が100GBのディスク装置でセクタ単位にアドレス変換を管理する場合には、セクタ数が200Mあるため、LBAは28bit幅が必要になり、アドレス変換表の一つのエントリは56bitになり、アドレス変換表のサイズが1.4GBになる。このような巨大なアドレス変換表はディスク装置の記憶媒体上に保存することになるため、ディスク装置の容量が低下するばかりでなく、アドレス変換表の検索にも時間がかかるため、ディスク装置の性能も低下するという問題がある。
【０００９】
本発明の第一の目的は、ホストがLFSのような追記型の書き込み方法を用いない場合にトラックの書き込みマージンの削除や隣接トラックの部分的な重ね書きを行っても、障害発生時にデータロストしないデータ書き込み方法を提供することである。
【００１０】
本発明の第二の目的は、巨大なアドレス変換表を必要とせずにトラックの書き込みマージンの削除や隣接トラックの部分的な重ね書きを行っても、障害発生時にデータロストしないデータ書き込み方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明では、ある連続する論理ブロックアドレスの範囲に書き込む場合に、論理ブロックアドレスの値に関係なく記憶媒体上の領域を追記式に割り当て、既存のデータを消さずに新しいデータを割り当てられた領域内に論理ブロックアドレス順に書き込み、同一論理ブロックアドレスの範囲を上書きする場合には、正常に書き込めたのを確認した後に旧データを無効化する。
【００１２】
本発明のデータ書き込み方法では、記憶媒体と、上位装置との間でコマンドやデータの送受信を行い記憶媒体に対して書き込みまたは読み出し制御を行う制御部とを備えるディスク装置において、連続する論理ブロックアドレスの範囲に対してデータを書き込む際に、制御部は、上位装置の指定する論理ブロックアドレスの値と無関係に記憶媒体上にデータ保存用領域を確保するステップ、上位装置が論理ブロックアドレスで指定する順番でデータ保存用の領域の各セクタに対してデータを書き込むステップ、を実行する。
【００１３】
制御部は、また、記憶媒体上のデータ保存用領域の配置と上位装置が指定する連続する論理ブロックアドレスの範囲との対応を対応表に保存するステップを実行する。対応表は、ディスク装置の一時記憶用バッファ及び／又は記憶媒体上に保存する。
【００１４】
また、書き込み済みの論理ブロックアドレスの範囲に対して上書きする際に、制御部は、記憶媒体上の既存のデータ保存済みの領域とは異なる新しいデータ保存用領域を記憶媒体上に確保するステップ、上位装置が論理ブロックアドレスで指定する順番で前記新しいデータ保存用領域の各セクタに対してデータを書き込むステップを実行する。
【００１５】
その後、制御部は、新しいデータ保存用領域に対するデータの書き込みが完了したかを検査するステップ、データ書き込みが完了している場合に、古いデータ保存用領域の配置と連続する論理ブロックアドレスの範囲との対応を対応表から削除するステップ、新しいデータ保存用領域と連続する論理ブロックアドレスの範囲との対応を対応表に保存するステップ、古いデータ保存用領域を開放するステップを実行する。検査の結果、データ書き込みが完了せずにデータ書き込みが終了している場合には、制御部は、新しいデータ保存用領域を開放するステップを実行する。
【００１６】
データ書き込みは、記憶媒体上の連続トラックの各隣接トラック部分が部分的に重ね書きされているような態様で行ってもよい。
【００１７】
制御部は、記憶媒体を複数の領域に分割するステップ、複数に分割した記憶媒体上の領域の一つを選択するステップを実行し、データ保存用領域を確保するステップにおいて、前記選択した領域の中からデータ保存用領域を確保するようにしてもよい。
【００１８】
記憶媒体を複数の領域に分割するステップにおいて、記憶媒体上で取り得る物理ブロックアドレスの範囲をある等しい大きさで分割し、物理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、記憶媒体上の領域の一つを選択するステップにおいて、ディスク装置において取り得る論理ブロックアドレスの範囲を前記物理ブロックアドレスの範囲を分割した数と同数に分割し、論理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、前記連続する論理ブロックアドレスの範囲が所属する前記分割した論理ブロックアドレスの範囲のアドレスと等しい前記物理ブロックアドレスの範囲のアドレスを持つ前記記憶媒体上の領域を選択するようにしてもよい。
【００１９】
制御部は、また、上位装置からの対応表の読み出しコマンドを受信するステップ、読み出しコマンドの応答として対応表を上位装置に送信するステップを実行する。
【００２０】
また、各セクタにフラグ領域を設け、フラグ領域に管理情報を保存するようにすることができる。管理情報は、セクタの論理ブロックアドレスとセクタ書き込みの際のトランザクション情報の一方または両方とすることができる。
【発明の効果】
【００２１】
本発明によると、旧データを上書きせずに新データを書き込み、新データの書き込みを確認した後に旧データを無効化することで、障害発生時であってもデータロストすることがない。また、データ書き込みの際にある単位ごとにデータを追記式に書き込むが、その単位内ではセクタを論理ブロックアドレス順に書き込むことで、アドレス変換表のサイズを縮小し、検索に要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照して説明する。なお、同一の参照番号は同一の構成要素を示す。
【００２３】
本発明では、隣接トラックを部分的に重ね書きした複数の連続するトラックからなるバンドにデータを書き込むのに、書き込み済みのLBAへの上書きであっても新規領域にデータを書き込み、データの正常な書き込みを確認した後に既存のデータを無効にするところに特徴がある。
【００２４】
図１は、隣接トラックを部分的に重ね書きする場合のトラック配置の概念図である。
【００２５】
トラック１０１から１０５では、書き込みヘッド１２１で書き込んだトラックを部分的に重ね書きし、書き込みヘッド１２１よりも幅の狭い読み出しヘッド１２２で読み出すことで、書き込みヘッド１２１の幅よりもトラック幅１１１を狭くしている。図１ではトラック１０３の書き込み後に、トラック１０４を書き込んでいる。トラック１０４の書き込みにより、トラック１０５が消去される。このため隣接トラックを部分的に重ね書きする場合には、あるトラックに書き込みを開始すると、ある一定範囲のトラックを全て更新する必要がある。このようなトラック群をバンドと呼ぶ。
【００２６】
図２は、複数の連続するトラックからなるバンド構造の概念図である。図２において、２０１はバンド、２０２は二つのバンド間でデータ破壊を防止するためのバンドギャップ、である。図２のように、バンドの末尾のトラックのみ幅広にして、バンドギャップ２０２の領域を作ることで隣のバンドのデータ破壊を防止する。
【００２７】
図３により、本発明による一実施例によるディスク装置上のデータ配置について説明する。
【００２８】
記憶媒体上のデータ構造３００は、ディスク装置の記憶媒体は複数の領域に分割されており、各領域にバンドのデータ構造３１０を書き込む構造になっている。バンドのデータ構造３１０は、LBA順ではなくバンドの書き込み順などにより書き込まれる。このためLBAからPBAに変換するには、バンドが記憶媒体上のどこに配置したかの情報が必要になる。バンドのデータ構造３１０は、セクタのデータ構造３２０をLBA順に書き込んだ構造になっている。バンド内のセクタの配置がLBA順になっていることで、バンドの記憶媒体上の配置の情報だけあればLBAからPBAに変換できるため、対応表で管理する必要のあるデータを削減できる。セクタのデータ構造３２０はユーザデータ領域３２１、フラグ領域３２２、CRC領域３２３、LBA領域３２４、ECC領域３２５とからなる。フラグ領域３２２には、バンドを記憶媒体上に書き込んだ順番を書き込む。フラグ領域３２２の書き込み順番とLBA領域３２４の情報とにより、バンドを記憶媒体上のどこに配置したかの情報を失った場合でもバンドの配置情報を再構築できる。
【００２９】
図４により、本発明による一実施例によるデータ書き込み方法の手順を説明する。図４において、４００は初期状態、４０１は第一のバンド、４０２は第二のバンド、４０３は第三のバンド、４０４は第四のバンド、４０５は未使用状態のバンド、４１０はバンド更新中の状態、４１１は更新中のバンド、４２０はバンド更新が正常終了した状態、４２１は無効化したバンド、４２２は新しい第二のバンド、４３０はバンド更新が失敗した状態、を表している。
【００３０】
初期状態４００では、バンド４０１から４０４が書かれている。本発明では、セクタはバンド内でLBA順で書かれるが、バンドは書き込み順で書き込まれるため、バンドの配置は必ずしもLBAの順番で書かれていない。初期状態４００ではLBAの10k--14kのセクタを記録したバンド４０１が記憶媒体の先頭に書かれ、それ以降はLBAの25k--29kのセクタを記録したバンド４０２、LBAの0k--4kのセクタを記録したバンド４０３、LBAの55k--59kのセクタを記録したバンド４０４と続く。４１０はバンド４０２を更新する状態である。バンド４０２を更新する際には、バンド４０２を記録した領域に直接上書きするのではなく、未使用の領域４１１に対して書き込む。４２０はバンドの更新が正常に終了した状態である。バンドの書き込みが終了すると、最初にLBAの25k--29kのセクタを記録したバンド４０２を４２１のように無効にし、新たにLBAの25k--29kのセクタを記録したバンド４２２を有効にする。つまりバンドの配置情報を更新する。４３０はバンドの更新に失敗した状態である。この場合には新たに書き込みを行っていたバンドを４２１のように無効にする。この時にはバンドの配置情報を更新しないので、ホストは更新前のバンドにこれまで通りアクセスできる。
【００３１】
図７は、ディスク装置のブロック図である。フラッシュロム７０１には、ディスク装置の起動に必要なプログラムが格納される。主記憶７０２は、メモリコントローラ及びマイクロプロセッサ７０４の制御用プログラムと制御に必要な各種データの格納に使用する。キャッシュメモリ７０３は、ディスクインタフェース７０６経由で上位装置のディスクコントローラとの間で送受信するデータのキャッシュに使用する。上位装置との通信に用いる通信プロトコルは、ハードディスクコントローラ及びSCSIプロトコルコントローラ７０５のSCSIプロトコルコントローラ部分で処理される。SCSIプロトコルコントローラに送られたコマンドは、メモリコントローラ及びマイクロプロセッサ７０４のマイクロプロセッサ部分により書き込みヘッド及び読み出しヘッドの駆動命令に変換されて、ハードディスクコントローラ及びSCSIプロトコルコントローラ７０５のハードディスクコントローラ部分に送られる。ハードディスクコントローラは、受信した命令を元にサーボコントローラ７０７とリードライトチャネル７０８とを制御し、記憶媒体へのデータの書き込みまたは読み出しを実行する。この時、書き込みであればキャッシュメモリ７０３に保存されたデータを記憶媒体に書き込み、読み出しであれば記憶媒体に保存されたデータをキャッシュメモリ７０３に書き込む。
【００３２】
ディスク装置の電源が投入されるとメモリコントローラ及びマイクロプロセッサ７０４がフラッシュロム７０１から起動用のプログラムを読み出し、メモリコントローラ部分が主記憶７０２、キャッシュメモリ７０３を初期化し、ハードディスクコントローラ及びSCSIプロトコルコントローラ７０５経由でサーボコントローラ７０７とリードライトチャネル７０８を制御して、残りの制御プログラムと制御に必要な各種データをディスク装置の記憶媒体から読み出す。読み出した制御プログラムと各種データを主記憶７０２上に格納する。図８、図９で説明する処理のフロー図と、図５、図６で説明するデータ構造が、これらの制御プログラムと各種データに含まれる。
【００３３】
次に、本発明による一実施例によるデータ書き込み方法で用いる各種データ構造について説明する。
【００３４】
図５はバンド管理表である。バンド管理表では、バンド番号５０１ごとにバンドの開始LBA５０２、バンドの終了LBA５０３、記憶媒体の領域番号５０４を管理する。バンド管理表の中で開始LBA５０２と終了LBA５０３はディスク装置のパラメータによって決まる固定値であり、各LBAごとにどのバンドに所属するかが一意に定まる。バンドが記憶媒体のどの領域に配置されるかは、バンドの書き込み時に決まる。バンドが記憶媒体上のどの領域に配置されたかを管理する変数が、領域番号５０４である。記憶媒体に書き込まれる前のバンドの場合には、配置番号５０４にはバンド上に存在しないことを示す−１を書き込む。バンド管理表は、不揮発媒体である記憶媒体上と揮発媒体である主記憶７０２の両方に保存する。ディスク装置の起動時に、記憶媒体に保存してあるバンド管理表を主記憶７０２上にコピーする。バンド管理表を参照する場合には、アクセス速度が高速な主記憶７０２上のバンド管理表を参照する。バンド管理表を更新する場合には、ディスク装置の電源遮断に備え記憶媒体上と主記憶７０２上の両方のバンド管理表を更新する。
【００３５】
図６は記憶媒体の領域管理表である。記憶媒体の領域番号５０４ごとに、領域の使用状態６０１、領域の使用回数６０２、領域の開始PBA６０３、領域の終了PBA６０４を管理する。領域管理表の中で開始PBA６０３と終了PBA６０４は、ディスク装置のパラメータによって決まる固定値である。これに対して、領域の使用状態６０１と使用回数６０２は、変数である。使用状態６０１は領域を使用中の時には１を、未使用の時には０を、書き込み中の領域には２を書き込み、使用回数６０２は領域に対して書き込んだ回数を書き込む。記憶媒体の領域管理表は、不揮発媒体である記憶媒体上と揮発媒体である主記憶７０２の両方に保存する。ディスク装置の起動時に、記憶媒体に保存してある領域管理表を主記憶７０２上にコピーする。領域管理表を参照する場合には、アクセス速度が高速な主記憶７０２上の領域管理表を参照する。領域管理表を更新する場合には、ディスク装置の電源遮断に備え記憶媒体上と主記憶７０２上の両方の領域管理表を更新する。
【００３６】
図８のフロー図により、データ書き込み手順について説明する。ここではバンド単位でデータを書き込む。
【００３７】
処理を開始すると、まずステップ８０１に進む。ステップ８０１ではホストの発行した書き込みコマンドに含まれるLBAを取得する。ステップ８０１の終了後ステップ８０２に進む。ステップ８０２ではステップ８０１で取得したLBAの値から図５のバンド管理表を参照してバンド番号を取得する。ステップ８０２の終了後ステップ８０３に進む。ステップ８０３では図５のバンド管理表からバンドを保存している記憶媒体の領域番号５０４を読み出す。ステップ８０３の終了後、ステップ８０４に進む。ステップ８０４では主記憶７０２上の領域管理表を読み出し、未使用の領域を調べる。ステップ８０４の終了後、ステップ８０５に進む。ステップ８０５では、今回のデータ書き込みに用いる領域を選択する。領域の選択では、現在のヘッドの位置に最も近い未使用領域を選択する。複数の領域の候補がある場合には、領域の使用回数６０２の最も小さな領域を選択する。ステップ８０５の終了後、ステップ８０６に進む。ステップ８０６では、記憶媒体上と主記憶７０２上の領域管理表の選択した領域の使用状態６０１を、未使用である０から書き込み中の２に書き換える。ステップ８０６の終了後、ステップ８０７に進む。ステップ８０７では、領域管理表の選択した領域の開始PBAを読み出す。ステップ８０７の終了後、ステップ８０８に進む。ステップ８０８では、ステップ８０７で取得したPBAに書き込みヘッドをシークしてデータの書き込みを実行する。ステップ８０８の終了後、ステップ８１０に進む。
【００３８】
ステップ８１０では、データ書き込みが正常に終了したかを判定する。正常に終了した場合にはステップ８２０に進み、異常終了した場合にはステップ８１１に進む。ステップ８１１では、領域管理表の選択した領域の使用状態６０１を、書き込み中の２から未使用の０に書き換える。これにより、中途半端な書き込みの状態が無効になり、データ書き込み前の状態に戻る。
【００３９】
ステップ８２０では、実行したデータ書き込みが既存のバンドの上書きかどうかを検査する。上書きの場合にはステップ８２１に進み、そうでない場合にはステップ８２２に進む。ステップ８２１では、記憶媒体上と主記憶７０２上の領域管理表のデータ書き換え対象のバンドを保存していた領域の使用状態６０１を、使用中である１から未使用の０に書き換える。これにより、上書き対象のバンドを記録した領域が将来の使用のために回収される。ステップ８２１の終了後、ステップ８２２に進む。ステップ８２２では記憶媒体上と主記憶７０２上の領域管理表の新たにデータを書き込んだ領域の使用状態６０１を、書き込み中の２から使用中の１に書き換える。これにより、新たにデータを書き込んだ領域が有効になる。ステップ８２２の終了後、ステップ８２３に進む。ステップ８２３では、記憶媒体上と主記憶７０２上のバンド管理表の記憶媒体の領域番号５０４を、新たにデータを書き込んだ領域の番号に書き換える。ステップ８２３の終了後、ステップ８２４に進む。ステップ８２４では、データ書き込みの応答をホストに返す。
【００４０】
電源遮断やホストの暴走によりデータ書き込みが異常終了した場合にも、ステップ８１０から実行を開始することで、データ書き込みに使用した領域を未使用にして将来の書き込みに再利用できる。
【００４１】
図９のフロー図により、データ読み出し手順について説明する。ここではセクタ単位でデータを読み出す。処理を開始すると、まずステップ８０１に進む。ステップ８０１からステップ８０３までの処理は、データ書き込みの場合と同じである。ステップ８０３の終了後、ステップ９１０に進む。本発明によるデータ書き込み方法では、データ書き込みを実行するまでバンドは記憶媒体上に存在しない。そこでステップ９１０では、主記憶７０２上のバンド管理表の記憶媒体の領域番号５０４を参照し、その値が−１以外でありバンドが記憶媒体上に存在する場合にはステップ８０７に進み、その値が−１である場合にはステップ９１４に進む。記憶媒体上にまだ書き込まれていないバンドを読み出そうとした場合には、ステップ９１４でダミーデータを生成する。
【００４２】
ステップ８０７では、記憶媒体上に存在する領域管理表から、ステップ８０３で読み出した領域番号の領域の開始PBA６０３を読み出す。ステップ８０７の終了後、ステップ９１１に進む。ステップ９１１では、読み出しを開始するPBAを算出する。ステップ８０１で読み出したLBAとステップ８０３で読み出したバンド管理表のバンドの開始LBAとから、読み出し対象のセクタのバンドの先頭からのオフセットを計算し、このオフセットをステップ９１１で読み出した領域の開始PBA６０３に加えることで、読み出しを開始するPBAを計算できる。ステップ９１１の終了後、ステップ９１２に進む。ステップ９１２では、ステップ９１１で算出したPBAに読み出しヘッドをシークして、データの読み出しを実行する。ステップ９１３では、ステップ９１２でセクタから読み出したデータもしくはステップ９１４で生成したダミーデータを、データ読み出しの応答としてホストに送信する。
【００４３】
図５のバンド管理表や図６の記憶媒体の領域管理表に登録した情報を、S.M.A.R.T.などのディスク装置の管理コマンドで読み出せるように構成すると、ディスク装置を接続したホストからバンドの配置状況や記憶媒体上の領域の使用状況を知ることができる。
【００４４】
セクタのフラグ領域３２２に保存する情報は、バンドを記憶媒体上に書き込んだ順番に限らない。ディスク装置の障碍などにより記憶媒体上に保存したバンド管理表や記憶媒体の領域管理表をロストした場合に復旧できる任意の情報を記録しても良い。
【００４５】
本実施例では記憶媒体上の任意の領域からバンドを保存する領域を選択するが、ホストのアプリケーションによっては、アクセス速度の高速な記憶媒体の外周部に特定のデータを保存したい場合がある。そのような場合には、図１０のように、バンドの上位データ構造としてバンドグループを導入することで解決できる。
【００４６】
図１０は、バンドグループを導入する場合のディスク装置のデータ構造である。図１０において、１０００は記憶媒体のデータ構造、１０１０はバンドグループのデータ構造、である。ディスク装置のサポートするLBAの範囲を複数に分割し、分割した各範囲に所属するバンドを決める。LBAの範囲の分割に対応して記憶媒体のPBAの範囲も分割する。それぞれのLBAの範囲の分割と対応するPBAの範囲の分割を対応付け、各LBAの範囲の分割に所属するバンドが対応するPBAの範囲の分割内に記録されるように、記憶媒体上の領域を選択する。つまり、記憶媒体のデータ構造１０００ではあるLBAの範囲ごとの順番でバンドグループが配置され、バンドグループ内ではバンドの書き込み順番によりバンドが配置される。
【００４７】
本発明は、AV用途やバックアップ用途など大規模なデータを一括して書き込むとともに大容量が必要な用途に対して、ディスク装置の大容量化とデータロスト防止のために、利用することができる。
【００４８】
本発明の別の実施形態であるディスク装置を以下に列挙する。
１．連続する論理ブロックアドレスの範囲に対するデータ書き込みのために、前記論理ブロックアドレスの値と無関係に記憶媒体上のデータ保存用領域を確保する、データ保存領域確保手段と、
前記論理ブロックアドレスの順番で前記データ保存用領域の各セクタに対してデータを書き込む、データ書き込み手段と、
を備えることを特徴としたディスク装置。
【００４９】
２．前項１のディスク装置において、
前記データ保存領域確保手段が確保した記憶媒体上の領域の配置と前記連続する論理ブロックアドレスの範囲との対応を保存した対応表を管理する、アドレス対応管理手段、
を備えることを特徴としたディスク装置。
【００５０】
３．前項２のディスク装置において、前記アドレス対応管理手段が前記対応表をディスク装置の一時記憶用バッファに保存することを特徴とするディスク装置。
【００５１】
４．前項２のディスク装置において、前記アドレス対応管理手段が前記対応表を前記記憶媒体上に保存することを特徴とするディスク装置。
【００５２】
５．前項２のディスク装置において、
書き込み済みのある論理ブロックアドレスの範囲に対して上書きするために、
前記記憶媒体上の既存のデータ保存用領域とは異なる新しいデータ保存用領域を前記記憶媒体上に確保する、第二のデータ保存領域確保手段と、
前記論理ブロックアドレスの順番で前記新しいデータ保存用領域の各セクタに対してデータを書き込む、第二のデータ書き込み手段と、
を備えることを特徴としたディスク装置。
【００５３】
６．前項５のディスク装置において、
前記新しいデータ保存用領域に対するデータ書き込みが完了したかを検査する検査手段と、
前記データ書き込みが完了している場合に、前記データ保存用領域の配置と前記連続する論理ブロックアドレスの範囲との対応を前記対応表から削除する、アドレス対応削除手段と、
前記新しいデータ保存用領域と前記連続する論理ブロックアドレスの範囲との対応を前記対応表に保存する、アドレス対応保存手段と、
前記データ保存用領域を開放する、データ保存用領域解放手段と、
を備えることを特徴としたディスク装置。
【００５４】
７．前項５のディスク装置において、
前記データ書き込みが完了せずに前記データ書き込みが終了している場合に、前記新しいデータ保存用領域を開放する、第二のデータ保存用領域解放手段を備えることを特徴としたディスク装置。
【００５５】
８．前項１のディスク装置において、記憶媒体上の連続トラックの各隣接トラック部分が部分的に重ね書きされていることを特徴とするディスク装置。
【００５６】
９．前項１のディスク装置において、
前記記憶媒体を複数の領域に分割する、記憶媒体の領域分割手段と、
前記複数に分割した記憶媒体の領域の一つの選択する、記憶媒体の領域選択手段と、
を備え、
前記データ保存用領域確保手段において、前記記憶媒体の領域選択手段が選択した領域の中から前記データ保存用領域を確保することを特徴とするディスク装置。
【００５７】
１０．前項９のディスク装置において、
前記記憶媒体の領域分割手段において、前記記憶媒体上で取り得る物理ブロックアドレスの範囲をある等しい大きさで分割し、物理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、
前記記憶媒体の領域選択手段において、前記ディスク装置において取り得る論理ブロックアドレスの範囲を前記物理ブロックアドレスの範囲を分割した数と同数に分割し、論理ブロックアドレスの小さな領域から大きな領域へとアドレスを割り当ててあり、前記連続する論理ブロックアドレスの範囲が所属する前記分割した論理ブロックアドレスの範囲のアドレスと等しい前記物理ブロックアドレスの範囲のアドレスを持つ前記記憶媒体上の領域を選択すること、
を特徴とするディスク装置。
【００５８】
１１．前項２のディスク装置において、上位装置に対して前記対応表を通知する、対応表通知手段を備えることを特徴とするディスク装置。
【００５９】
１２．前項１のディスク装置において、各セクタにフラグ領域を設け、前記フラグ領域に管理情報を保存することを特徴とするディスク装置。
【００６０】
１３．前項１２のディスク装置において、前記管理情報はセクタの論理ブロックアドレスとセクタ書き込みの際のトランザクション情報の一方または両方であることを特徴とするディスク装置。
【図面の簡単な説明】
【００６１】
【図１】隣接トラックを部分的に重ね書きする場合のトラック配置の概念図。
【図２】複数の連続するトラックからなるバンド構造の概念図 。
【図３】本発明の一実施例による、ディスク装置のデータ構造を示す図。
【図４】本発明の一実施例による、バンド書き換え手順を示す図。
【図５】本発明の一実施例による、バンド管理表を示す図。
【図６】本発明の一実施例による、記憶媒体の領域管理表を示す図。
【図７】ディスク装置のブロック図。
【図８】本発明の一実施例による、データ書き込みのフロー図。
【図９】本発明の一実施例による、データ読み出しのフロー図。
【図１０】バンドグループを導入する場合のディスク装置のデータ構造を示す図。
【符号の説明】
【００６２】
１０１ トラック
１０２ トラック
１０３ トラック
１０４ トラック
１０５ トラック
１１１ トラック幅
１２１ 書き込みヘッド
１２２ 読み出しヘッド
２０１ バンド
２０２ バンドギャップ
３００ 記憶媒体のデータ構造
３１０ バンドのデータ構造
３２０ セクタのデータ構造
３２１ ユーザデータ領域
３２２ フラグ領域
３２３ CRC領域
３２４ LBA領域
３２５ ECC領域
４００ 初期状態
４０１ 第一のバンド
４０２ 第二のバンド
４０３ 第三のバンド
４０４ 第四のバンド
４０５ 未使用状態のバンド
４１０ バンド更新中の状態
４１１ 更新中のバンド
４２０ バンド更新が正常終了した状態
４２１ 無効化したバンド
４２２ 新しい第二のバンド
４３０ バンド更新が失敗した状態
５０１ バンド番号
５０２ バンドの開始LBA
５０３ バンドの終了LBA
５０４ 記憶媒体の領域番号
６０１ 領域の使用状態
６０２ 領域の使用回数
６０３ 領域の開始PBA
６０４ 領域の終了PBA
７０１ フラッシュメモリ
７０２ 主記憶
７０３ キャッシュメモリ
７０４ メモリコントローラ及びマイクロプロセッサ
７０５ ハードディスクコントローラ及びSCSIプロトコルコントローラ
７０６ ディスクインタフェース
７０７ サーボコントローラ
７０８ リードライトチャネル
１０００ 記憶媒体のデータ構造
１０１０ バンドグループのデータ構造
【図１】
2006338731.tif 000003
【図２】
2006338731.tif 000004
【図３】
2006338731.tif 000005
【図４】
2006338731.tif 000006
【図５】
2006338731.tif 000007
【図６】
2006338731.tif 000008
【図７】
2006338731.tif 000009
【図８】
2006338731.tif 000010
【図９】
2006338731.tif 000011
【図１０】
2006338731.tif 000012