JP3590390B2 - ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 - Google Patents
ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 Download PDFInfo
- Publication number
- JP3590390B2 JP3590390B2 JP2002069144A JP2002069144A JP3590390B2 JP 3590390 B2 JP3590390 B2 JP 3590390B2 JP 2002069144 A JP2002069144 A JP 2002069144A JP 2002069144 A JP2002069144 A JP 2002069144A JP 3590390 B2 JP3590390 B2 JP 3590390B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- track
- reading
- retry
- disk
- 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
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Digital Magnetic Recording (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備えたディスク記憶装置に係り、特に1つのライトコマンドに対して同一データを目標トラック及び当該目標トラックとは異なるトラックに書き込むことにより自己ミラーリングを実現するのに好適な、ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置に関する。
【0002】
【従来の技術】
ディスク媒体を対象とするデータのリード/ライトがヘッドにより行われるディスク記憶装置として、磁気ディスク装置が知られている。この磁気ディスク装置では、1つのライトコマンドに対し、データは、ディスク媒体(磁気ディスク)上の当該コマンドで指定された箇所にだけに書かれるのが一般的であった。
【0003】
しかし、このような磁気ディスク装置では、ヘッドクラッシュ等で、ディスク媒体上の該当する箇所が損傷して、その箇所のデータが読み取り不能となった場合、そのデータを回復することは困難であった。
【0004】
そこで従来は、RAID(Redundant Array of Independent Disks)システムを構築してデータのミラーリングを行うことで、データが失われるのを防いでいた。しかし、RAIDシステムは磁気ディスク装置を複数台必要とするため、家庭での使用など、規模の小さいシステムでの使用には適していない。
【0005】
一方、特開平9−91855号公報には、ディスクの一方の面と他方の面とに、それぞれ異なるヘッドA,Bにより同一のデータを同時に書き込むことで、データの2重化を図った、つまり自己ミラーリングを図った磁気ディスク装置が記載されている。この公報記載の磁気ディスク装置においては、読み出し時に、一方のヘッドAによりデータを読み出し、このデータに異常があった場合に、他方のヘッドBによりバックアップデータを読み出すようにしている。このヘッドBにより読み出されたデータは、そのまま、復旧書き込みデータとなり、ヘッドAにより記録することで、自動復旧するようにしている。
【0006】
【発明が解決しようとする課題】
しかしながら、上記公報に記載の技術では、ヘッドクラッシュ等に起因する読み出しエラーについては考慮されていない。即ち、ヘッドクラッシュ等でディスク媒体上の該当する箇所が損傷した場合、その箇所にデータを正しく書き込むことは困難であり、また書き込めたとしても正しく読み出すことは困難である。このような場合、自動復旧されず、データの2重化を実現できなくなる。したがって、もう一方のデータが記録されている箇所が損傷した場合には、データは回復できない。また、上記公報には、データの2重化を、ランダムリード時の読み出し性能の向上を図ることに利用することは何も記載されていない。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、ディスク記憶装置においてデータの2重化を常に維持できる自己ミラーリング方法及び同方法を適用するディスク記憶装置を提供することにある。
【0008】
本発明の他の目的は、ランダムリード時の読み出し性能が向上できる自己ミラーリング方法及び同方法を適用するディスク記憶装置を提供することにある。
【0009】
【課題を解決するための手段】
本発明の第1の観点によれば、ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを当該ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備えたディスク記憶装置における自己ミラーリング方法が提供される。この方法は、1つのライトコマンドに対し、当該ライトコマンドで指定されるディスク媒体の目標トラックが存在するディスク面及びディスク媒体のもう一方のディスク面にそれぞれ対応して設けられた各ヘッドを用いて、上記目標トラック及び当該目標トラックとシリンダ位置が同一の別のトラックに、同一データを同時に書き込むステップと、1つのリードコマンドに対し、当該リードコマンドで指定されるディスク媒体の目標トラックが存在するディスク面に対応して設けられたヘッドを用いて当該目標トラックのデータを読み出すステップと、上記目標トラックのデータを読み出すステップでリードエラーが発生した場合、ディスク媒体の上記目標トラックが存在するディスク面とは異なるもう一方のディスク面に対応して設けられたヘッドを用いて、上記目標トラックとシリンダ位置が同一の別のトラックからデータを読み出すステップと、上記別のトラックからデータを読み出すステップの後に、目標トラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行するステップと、上記目標トラックのデータの読み出しのリトライに失敗し、且つ上記別のトラックからデータを読み出すステップでリードエラーが発生した場合、当該別トラックのデータの読み出しのリトライを、上記第1のリトライ回数を上限に実行するステップと、少なくとも、上記目標トラックのデータの読み出しのリトライまたは上記別トラックのデータの読み出しのリトライの結果に応じて、上記目標トラックまたは上記別トラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証するステップと、上記検証ステップでの検証結果に応じて、上記目標トラックまたは上記別トラックのデータのうち正しく読み出されたデータを、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理を実行するステップとを備えたことを特徴とする。
【0010】
このように、本発明の第1の観点に係る自己ミラーリング方法においては、ディスク媒体の各ディスク面の同一シリンダ位置に同一データが記録され、データの2重化、つまり自己ミラーリングが実現される。しかも、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合(例えば、一定の回数を超えるリトライで正しく読めた場合)、または2重化されたデータの一方が現在回復不能なデータ(例えばリトライを予め定められた上限回数繰り返しても正しく読めなかったデータ)であり、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理が行われるため、2重化されたデータが両方とも回復不能となるのを未然に防いで、データの2重化を常に維持できる。
【0011】
本発明の第2の観点に係る自己ミラーリング方法は、同一ディスク面上にシリンダ数が同一の第1及び第2のユーザ領域を確保し、この第1及び第2のユーザ領域内の相対シリンダ位置が同一のシリンダに同一データを書き込むことで、データの2重化、つまり自己ミラーリングを実現するようにしたことを特徴とする。
【0012】
本発明の第2の観点に係る自己ミラーリング方法においは、リードコマンドに対し、当該コマンドで指定された第1のユーザ領域内の目標トラック、または当該目標トラックが存在するディスク面上の第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックのデータを読むことにより、ランダムリード時の読み出し性能の向上が図れる。しかも、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータで、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、第1及び第2のユーザ領域に対してそれぞれ一定の位置関係を保って確保された第1及び第2の代替領域内の対応する代替トラックに記録する代替処理が行われるため、データの2重化を常に維持できる。
【0013】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
【0014】
図1は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
図1の磁気ディスク装置(以下、HDDと称する)において、磁気記録媒体としてのディスク(磁気ディスク)11は上側と下側の2つのディスク面11−0,11−1を有している。ディスク11の各ディスク面11−0,11−1は、データが磁気記録される記録面をなしている。各ディスク面11−0,11−1には、同心円状の多数のトラック(データトラック)が配置されたリング状のデータ領域が確保されている。
【0015】
ディスク11の各ディスク面11−0,11−1に対応してそれぞれヘッド(磁気ヘッド)ヘッドH0,H1が配置されている。ヘッドH0,H1は、ディスク11(のディスク面11−0,11−1)へのデータ書き込み(データ記録)及びディスク11(のディスク面11−0,11−1)からのデータ読み出し(データ再生)に用いられる。なお、図1の構成では、単一枚のディスク11を備えたHDDを想定しているが、ディスク11が複数枚積層配置されたHDDであっても構わない。
【0016】
ディスク11の各ディスク面11−0,11−1には、複数のサーボ領域(図示せず)がディスク11の半径方向に放射状に且つディスク11の円周方向に等間隔で離散的に配置されている。各サーボ領域には、ヘッドH0,H1を目標トラックに移動させて当該目標トラックの目標範囲内に位置付けるのに用いられるサーボデータが記録されている。このサーボデータは、当該サーボデータを識別するための固有のパターンであるサーボマーク、トラックコード(シリンダアドレス)及びバースト信号を含む。トラックコード及びバースト信号は、ヘッドH0,H1を目標トラックの目標範囲内に位置付けるための位置情報として用いられる、更に詳細に述べるならば、トラックコードは、対応するサーボ領域が位置するトラック(シリンダ)を示す。このトラックコードに基づき、ヘッドH0,H1を目標トラックに移動させるシーク制御が行われる。バースト信号は、対応するサーボ領域が位置するトラックにおけるヘッドの相対的な位置情報(位置誤差)を、再生波形の振幅で示す。シーク制御の完了後、このバースト信号に基づき、ヘッドH0,H1を目標トラックの目標範囲内に位置付けるためのトラックキング制御が行われる。隣接するサーボ領域の間は、ユーザデータ領域となっており、当該データ領域にはデータセクタが複数個配置されている。
【0017】
また、ディスク11のディスク面11−0,11−1には、図2に示すように、ユーザから利用可能なユーザ領域111−0,111−1と、欠陥セクタの代替先となる代替トラックが確保された代替領域112−0,112−1と、システム管理に必要な情報、つまりシステム管理情報を保存する管理領域113−0,113−1とが割り当てられている。システム管理情報は、欠陥セクタと当該セクタに割り当てられるセクタ(代替セクタ)との対応関係を示す欠陥セクタ管理情報を含む。欠陥セクタ管理情報は、欠陥セクタのアドレスと当該セクタに割り当てられるセクタのアドレスとの組を含む。なお、図1の例では、代替領域113−0,113−1はユーザ領域111−0,111−1の外周側にリング状に配置されているが、これに限るものではない。例えば、ユーザ領域111−0,111−1の内周側に、或いはユーザ領域111−0,111−1の外周側と内周側の両方に、代替領域が配置されるようにしても構わない。代替領域112−0,112−1と管理領域113−0,113−1とは、システムのみが使用する、つまりユーザからは見えない非ユーザ領域である。この代替領域112−0,112−1と管理領域113−0,113−1とを合わせた領域はシステム領域と呼ばれる。なお、管理領域113−0,113−1だけがシステム領域と呼ばれることもある。
【0018】
ディスク11はスピンドルモータ(以下、SPMと称する)13により高速に回転する。ヘッドH0,H1はヘッド移動機構としてのアクチュエータ(キャリッジ)14の先端に、ディスク11の半径方向に移動可能なように支持されている。アクチュエータ14は、当該アクチュエータ14の駆動源となるボイスコイルモータ(以下、VCMと称する)15を有しており、当該VCM15により駆動される。
【0019】
SPM13及びVCM15は、ドライバIC(Integrated Circuit)16からそれぞれ供給される駆動電流により駆動される。ドライバIC16は1チップ化されたモータドライバであり、SPMドライバ及びVCMドライバを構成する。ドライバIC16からSPM13及びVCM15にそれぞれ供給される駆動電流を決定するための値(制御量)は、CPU20により決定される。
【0020】
ヘッドH0,H1はフレキシブルプリント配線板(FPC)に実装されたヘッドIC17と接続されている。ヘッドIC17は、ヘッドH0,H1により読み取られた微弱な信号(リード信号)を増幅するリードアンプ、及びライトデータをヘッドH0,H1に例えば同時に供給するライト電流に変換するライトアンプを含む、1チップ化されたヘッドアンプ回路である。
【0021】
ヘッドIC17は、リード/ライトチャネル(以下、R/Wチャネルと称する)18と接続されている。R/Wチャネル18は、ヘッドIC17から出力される増幅されたリード信号に対するA/D(アナログ/デジタル)変換処理、ライトデータの符号化処理及びリードデータの復号化処理、A/D変換処理で2値化されたリード信号からゲートアレイ19により生成されるタイミング信号に従ってサーボデータを抽出するサーボデータ検出処理等の各種の信号処理を実行する。
【0022】
R/Wチャネル18は、ASIC(Application Specific Integrated Circuit)としての例えばゲートアレイ19及びHDC(ディスクコントローラ)23と接続されている。ゲートアレイ19は、R/Wチャネル18により検出されたサーボデータから位置情報を抽出して、CPU20から読み込み可能なように保持する。またゲートアレイ19は、HDDにおけるデータの読み出し/書き込み、R/Wチャネル18でのサーボデータの検出等に必要な各種のタイミング信号を生成する。ゲートアレイ19は、制御用のレジスタ群(図示せず)を有している。この制御用レジスタ群はCPU20のメモリ領域の一部に割り当てられており、CPU20がこの領域に対して読み出し及び書き込みを行うことでゲートアレイ19及びHDC23を制御する。
【0023】
CPU20は、制御プログラムが格納された不揮発性メモリ、例えばROM(Read Only Memory)21と、当該CPU20のワーク領域等を提供するRAM(Random Access Memory)22と接続されている。CPU20は、HDDの主コントローラであり、ROM21に格納されている制御プログラムに従ってHDD内各部を制御する。
【0024】
例えばCPU20は、ゲートアレイ19により抽出される位置情報に基づいてヘッド12を目標トラックの目標範囲内に位置付ける制御を行う。CPU20はまたディスク11におけるデータの2重化のために、ゲートアレイ19を介してヘッドIC17を制御することで、1つのライトコマンドに対して、ディスク11の一方のディスク面上に存在する目標トラックの目標セクタと、当該目標トラックとシリンダ位置が同一である他方のディスク面上の当該目標セクタに対応するセクタに同一データを書き込ませる制御を行う。本実施形態では、ホストからはディスク面11−0のユーザ領域111−0が割り当てられる論理アドレスのみが見えるようになっている。つまりディスク面11−1の領域は、ディスク面11−0に対するバックアップ領域として用いられる。
【0025】
またCPU20は、ディスク11のディスク面11−0,11−1上のそれぞれ対応するセクタの一方が異常(欠陥セクタ)の場合、もう一方のセクタのデータを用いて、ディスク面11−0,11−1上の代替領域112−0,112−1における同一シリンダ位置への代替処理を行う。
【0026】
HDC(ディスクコントローラ)23は、R/Wチャネル18によって復号化されたリードデータからホストに転送すべきデータを生成する。またHDC23は、ホストから転送されたライトデータを符号化してR/Wチャネル18に転送する。HDC23、R/Wチャネル18により復号されたリードデータのECC(エラー検出訂正)処理を実行するECC回路230を内蔵する。
【0027】
バッファメモリ24は例えばRAMである。バッファメモリ24には、ホストとHDD(内のHDC23)との間で転送されるデータを一時格納するバッファ領域が確保されている。バッファメモリ24にはまた、ディスク11のディスク面11−0,11−1上の管理領域113−0,113−1に保存されている欠陥セクタ管理情報の群の写しがHDDの立ち上げ時に格納される、欠陥セクタ管理情報領域が確保されている。CPU20は、バッファメモリ24上の欠陥セクタ管理情報の群を参照することで、目的セクタが欠陥セクタである場合に、その代替セクタを高速に認識することができる。
【0028】
次に、図1の構成の動作を説明する。
まず、ライト動作について図3のフローチャートを参照して説明する。
図1のHDDでは、ホストからのライトコマンドで指定されたデータの書き込みは、セクタ単位で順次行われる。
【0029】
今、目標トラックの目標セクタSCT0がディスク11のディスク面11−0上のシリンダCx内にあるものとする。この場合、CPU20は、ドライバIC16を介してVCM15を駆動することで、アクチュエータ14により支持されているヘッドH0を、ディスク面11−0上の目標トラックに移動させるシーク制御と、ヘッドH0を当該目標トラックの目標範囲内に位置付けるトラッキング制御とを行う。この制御により、ヘッドH1は、ディスク面11−0上の目標トラックとシリンダ番号が同一の、ディスク面11−1上のシリンダCxの位置に位置付けられる。
【0030】
この状態でCPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH0及びH1により、ディスク面11−0のシリンダCx内の目標セクタSCT0及びディスク面11−1のシリンダCx内の当該目標セクタSCT0と同一セクタ番号のセクタSCT1に同一データを同時に書き込ませる(ステップS1)。これにより、ディスク面11−0上のシリンダCx内の目標セクタSCT0に書き込まれたデータと同一のデータが、ディスク面11−1上のシリンダCx内の上記目標セクタSCT0と同一セクタ番号のセクタSCT1にも書き込まれる。この結果、1つのHDD内でのデータの2重化、つまり自己ミラーリングが図られる。
【0031】
次に、図1の構成におけるリード動作について、図4及び図5のフローチャートを参照して説明する。
図1のHDDでは、ホストからのリードコマンドで指定されたデータの読み込みも、セクタ単位で順次行われる。
【0032】
今、目標トラック内の目標セクタSCT0が、上記ライト動作の場合と同様に、ディスク11のディスク面11−0上のシリンダCx内にあるものとする。この場合、CPU20は、ヘッドH0をディスク面11−0上の目標トラック(シリンダCx)の目標範囲内に位置付ける。このとき、ヘッドH1は、ディスク面11−1上のシリンダCxの位置に位置付けられる。
【0033】
この状態でCPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH0によりディスク面11−0上のシリンダCx(目標トラック)からデータを読み出させ、HDC23によりそのデータから、シリンダCx内の目標セクタSCT0のデータを抽出させる(ステップS11)。このときHDC23では、ECC回路230によりエラー検出・訂正処理が行われる。
【0034】
CPU20は、HDC23により正しいデータが抽出できないリードエラーの発生の有無を判定する(ステップS12)。もし、リードエラーがないならば、目標セクタSCT0からデータを読み出すリード動作は終了する。
【0035】
これに対し、リードエラーが発生した場合、CPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH1によりディスク面11−1上のシリンダCxからデータを読み出させ、HDC23によりそのデータから、上記目標セクタSCT0と同一セクタ番号のセクタSCT1のデータを抽出させる(ステップS13)。ここで、リードエラーが発生しなかったならば(ステップS14)、つまりセクタSCT1のデータがHDC23により正しく抽出されたならば、そのデータが上記目標セクタSCT0からの正しい読み出しデータとして用いられる。このときCPU20は、図示せぬフラグをONし(ステップS15)、リードリトライのためにステップS16に進む。これに対し、リードエラーが発生したならば、CPU20はそのままリードリトライのためにステップS16に進む。
【0036】
CPU20はステップS16において、リトライ回数をカウントするカウンタ(リトライカウンタ)Rを初期値0に設定し、しかる後にヘッドH0によりディスク面11−0のシリンダCxのデータを読み出させ、そのデータからHDC23により目標セクタSCT0のデータを抽出させる(ステップS17)。ここで、リードエラーが発生したならば(ステップS18)、CPU20はリトライカウンタRを1だけインクリメントし(ステップS19)、そのインクリメント後のリトライカウンタRの値が、リトライ回数の上限値RMAX1を超えているか否かを判定する(ステップS20)。もし、RがRMAX1を超えていないならば、CPU20は再びヘッドH0によるリード動作のリトライを行う(ステップS17)。
【0037】
このように、CPU20はRMAX1を上限に、ヘッドH0によるリード動作で目標セクタSCT0のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS17〜S20)。
【0038】
もし、RがRMAX1を超える前に、目標セクタSCT0のデータが正しく読み出せたならば、CPU20はそのときのRの値が、当該セクタSCT0を正常セクタと認定するリトライ回数の上限値RMAX2(RMAX2<RMAX1)を超えているか否かを判定する(ステップS21)。もし、RがRMAX2を超えていないならば、CPU20は上記目標セクタSCT0は正常であるとして、目標セクタSCT0からデータを読み出すリード動作を終了する。
【0039】
これに対し、RがRMAX2を超えているならば、つまりRMAX2を超える回数のリトライにより初めて目標セクタSCT0のデータを正しく読み出せたならば、CPU20は当該目標セクタSCT0は欠陥セクタの可能性があり、近い将来、RMAX1で示される回数のリトライを行っても当該セクタから正しいデータが読み出せなくなる虞があると判定する。この場合、CPU20は、上記目標セクタSCT0を欠陥セクタと認定し、以下に述べる代替処理を行う。
【0040】
まずCPU20は、ディスク面11−0上のシリンダCx内の目標セクタSCT0に、当該ディスク面11−0の代替領域112−0内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタに上記目標セクタSCT0から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS22)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。このバッファメモリ24内の欠陥セクタ管理情報領域には、図1のHDDの立ち上げ時にディスク面11−0,11−1の管理領域113−0,113−1から読み出された欠陥セクタ管理情報群が格納されている。
【0041】
次にCPU20は、ディスク面11−1上のシリンダCx内の(上記目標セクタSCT0とセクタ番号が同一の)セクタSCT1に、当該セクタSCT1が正常であるか否かに無関係に、当該ディスク面11−1の代替領域112−1内の任意の空きセクタ(好ましくは上記目標セクタSCT0に対する代替セクタに対応する位置の空きセクタ)を代替セクタとして割り当てて、その割り当てた代替セクタに上記目標セクタSCT0から読み出されたデータをヘッドH1により書き込ませる代替処理を行う(ステップS23)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。
【0042】
これにより、ディスク面11−0のシリンダCx内の欠陥と認定されたセクタSCT0と、ディスク面11−1のシリンダCx内の当該セクタSCT0に対応するセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0043】
なお、ディスク面11−0,11−1の代替領域112−0,112−1内のセクタ群をそれぞれ管理するバッファメモリ24内の欠陥セクタ管理情報群は、HDDのアイドル状態における任意のタイミングと、HDDの停止時とに、ディスク面11−0,11−1の管理領域113−0,113−1に書き戻される。
【0044】
一方、ヘッドH0によるリード動作のリトライをRMAX1回繰り返しても、目標セクタSCT0のデータを正しく読み出せなかったならば(ステップS20)、つまりRMAX1回のリトライに失敗したならば、CPU20は当該目標セクタSCT0は回復不能な欠陥セクタであると認定する。
【0045】
この場合、上記フラグがONしているならば(ステップS24)、CPU20は、ディスク面11−1上のシリンダCx内の(上記目標セクタSCT0とセクタ番号が同一の)セクタSCT1のデータは正しく読み出されているものとして、当該データを用いて(先に目標セクタSCT0のデータを用いて行った場合と同様にして)上記ステップS22,S23の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、当該欠陥セクタSCT0に対応するセクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0046】
これに対し、上記フラグがONしていないならば(ステップS24)、CPU20は、上記ステップS16から始まるヘッドH0によるリード動作のリトライと同様にして、ヘッドH1によるリード動作のリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS25)、しかる後にRMAX1を上限に、ヘッドH1によるリード動作で、ディスク面11−1のシリンダCx内の、目標セクタSCT0に対応するセクタSCT1のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS26〜S29)。
【0047】
もし、RがRMAX1を超える前に、セクタSCT1のデータが正しく読み出せ場合(ステップS27)、そのデータが上記目標セクタSCT0からの正しい読み出しデータとして用いられる。この場合、、CPU20は、セクタSCT1のデータを用いて(先に目標セクタSCT0のデータを用いて行った場合と同様にして)上記ステップS22,S23の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、セクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0048】
これに対し、ヘッドH1によるリード動作のリトライをRMAX1回繰り返しても、セクタSCT1のデータを正しく読み出せなかったならば、つまりヘッドH0及びH1による、それぞれRMAX1回のリトライに失敗したならば、CPU20は目標セクタSCT0及び対応するセクタSCT1のいずれも回復不能な欠陥セクタであるとして、エラー処理に進む。
【0049】
[第1の変形例]
次に、上記実施形態の第1の変形例について説明する。
【0050】
この第1の変形例の特徴は、データの2重化を、ディスク11の同一ディスク面上で実現する点にある。そのため、ディスク11の各ディスク面11−0,11−1では、ユーザ領域が、図6に示すようにディスク11の半径方向に2つのユーザ領域211−0及び211−1に分割されている。ここで、ユーザ領域211−0及び211−1内のシリンダ(トラック)数は同一であり、nであるものとする。また、各シリンダ(トラック)内のセクタ(データセクタ)数は同一であるものとする。ユーザ領域(外周側のユーザ領域)211−0のシリンダアドレスは0〜n−1であり、ユーザ領域(内周側のユーザ領域)211−1のシリンダアドレスはn〜2n−1である。ホストからは、ユーザ領域211−0のシリンダのアドレス0〜n−1だけが見えるものとする。ユーザ領域211−0の外周側には、当該ユーザ領域211−0内の欠陥セクタの代替に用いられる代替領域212−0と、図2中の管理領域113−0,113−1に相当する管理領域213とが確保されている。また、ユーザ領域211−1の外周側(ユーザ領域211−0の内周側)には、当該ユーザ領域211−1内の欠陥セクタの代替に用いられる代替領域212−1が確保されている。ここでは、代替領域212−0,212−1のシリンダ数は同一であり、ユーザ領域211−0,211−1に対して一定の関係を保つ位置、例えばユーザ領域211−0,211−1の外周に接する位置に配置されている。
【0051】
次に、上記実施形態の第1の変形例の動作について、便宜的に図1の構成を援用して説明する。
【0052】
まず、目標トラックiがディスク11のディスク面11−0のユーザ領域211−0に含まれている場合のライト動作について図7のフローチャートを参照して説明する。
今、ヘッドH0がディスク面11−0のユーザ領域211−0内の目標トラックiにシーク・位置決めされているものとする。この状態でCPU20は、ディスク11のユーザ領域211−0内の目標トラックiの目標セクタSCT0にヘッドH0によりデータを書き込ませる(ステップS31)。次にCPU20は、ヘッドH0を、ディスク11のユーザ領域211−1内の、上記目標トラックiと相対位置(相対シリンダ位置)が同一のトラックjに移動して、そのトラックjの上記目標セクタSCT0と同一セクタ番号のセクタSCT1に、当該目標セクタSCT0に書き込んだのと同一のデータをヘッドH0により書き込ませる(ステップS32)。これにより、ディスク面11−0のユーザ領域211−0のトラックi内の目標セクタSCT0に書き込まれたデータと同一のデータが、同じディスク面11−0のユーザ領域211−1の当該目標セクタSCT0と相対位置が同一のトラックj内の対応するセクタSCT1にも書き込まれる。この結果、1つのHDD内でのデータの2重化、つまり自己ミラーリングが図られる。ここで、トラックiのシリンダアドレスをCxとすると、トラックjのシリンダアドレスはCx+nで表される。
【0053】
次に、上記第1の変形例におけるリード動作について、目標トラックがディスク11のディスク面11−0のユーザ領域211−0内にある場合について、図8乃至図11のフローチャートを参照して説明する。
まずCPU20は、ホストからのリードコマンドで指定されたデータの読み込みをセクタ単位で実行するに際し、ゲートアレイ19により検出される現在のヘッド位置(ここではヘッドH0のシリンダ位置)を、ユーザ領域211−0内の目標トラックiの位置(シリンダ位置Cx)、及びユーザ領域211−1内の、当該目標トラックiと相対位置が同一のトラックjの位置(シリンダ位置Cx+n)と比較する(ステップS41)。そしてCPU20は、現在のヘッド位置(ヘッドH0のシリンダ位置)が、目標トラックiまたは対応するトラックjのいずれの側に近いかを判定する(ステップS42)。
【0054】
もし、ヘッドH0がトラックi,jのうちのトラックiに近いならば、CPU20はヘッドH0を現在位置からトラックiの位置(シリンダCxの位置)に移動(シーク)させる(ステップS43)。次にCPU20は、ヘッドH0によりユーザ領域211−0内のトラックi(シリンダCx)からデータを読み出させ、HDC23によりそのデータから、トラックi内の目標セクタSCT0のデータを抽出させる(ステップS44)。
【0055】
CPU20は、HDC23により正しいデータが抽出できないリードエラーの発生の有無を判定する(ステップS45)。もし、リードエラーがないならば、目標セクタSCT0からデータを読み出すリード動作は終了する。この場合、2重化されたデータのうち、ヘッドH0の位置に近い方のデータが読み出されたことから、高速読み出しが実現できる。即ち第1の変形例によれば、ランダムリードアクセス時には、異なるシリンダ位置に格納された2重化データを利用して、その際のヘッド位置に近い方のデータを読み出すことにより、シーク時間を短縮して、より速い応答速度を実現できる。
【0056】
これに対し、リードエラーが発生した場合、CPU20はヘッドH0をトラックi(シリンダCx)からユーザ領域211−1内のトラックjの位置(シリンダCx+n)に移動(シーク)させる(ステップS46)。次にCPU20は、ヘッドH0によりユーザ領域211−1内のトラックj(シリンダCx+n)からデータを読み出させ、HDC23によりそのデータから、トラックj内のセクタSCT1のデータを抽出させる(ステップS47)。ここで、リードエラーが発生しなかったならば(ステップS48)、CPU20はトラックj内のセクタSCT1は正常であるとして図示せぬF1フラグをONし(ステップS49)、先にエラーとなったトラックi内のセクタSCT0を対象とするリードリトライのためにステップS68に進む。
【0057】
これに対し、リードエラーが発生したならば(ステップS48)、CPU20は上記実施形態と同様にして、当該リードエラーとなったトラックj内のセクタSCT1を対象とするリードリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS50)、しかる後にRMAX1を上限に、ヘッドH0によるリード動作で、ディスク面11−0のユーザ領域211−1のトラックj(シリンダCx+n)内の、目標セクタSCT0に対応するセクタSCT1のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS51〜S54)。
【0058】
もし、RがRMAX1を超える前に、トラックj内のセクタSCT1のデータが正しく読み出せ(ステップS52)、且つRがRMAX2をも超えていないならば(ステップS52a)、CPU20は当該セクタSCT1は正常であるとして上記F1フラグをONし(ステップS49)、上記ステップS68に進む。
【0059】
また、RがRMAX1を超える前に、セクタSCT1のデータが正しく読み出せても(ステップS52)、RがRMAX2を超えているならば(ステップS52a)、CPU20は当該セクタSCT1は近い将来回復不能な欠陥セクタとなる虞があるものと判断し、図示せぬF2フラグをONして(ステップS52b)、上記ステップS68に進む。
【0060】
また、リードリトライをRMAX1回繰り返しても、トラックj内のセクタSCT1のデータを正しく読み出せなかったならば、CPU20は当該セクタSCT1は回復不能な欠陥セクタであると認定する。この場合、CPU20はそのまま上記ステップS68に進む。
【0061】
CPU20は、ステップS68において、ヘッドH0をトラックj(シリンダCx+n)からユーザ領域211−0内のトラックiの位置(シリンダCx)に移動させる。そしてCPU20は、先にエラーとなったトラックi内のセクタSCT0を対象とするリードリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS69)、しかる後にRMAX1を上限に、ヘッドH0によるリード動作で、ディスク面11−0のユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS70〜S73)。
【0062】
もし、RがRMAX1を超える前に、セクタSCT0のデータが正しく読み出せた場合(ステップS71)、CPU20はF1フラグがONしているか否かを判定する(ステップS74)、CPU20は、F1フラグがONしている場合、ユーザ領域211−1のトラックj(シリンダCx+n)内のセクタSCT1は正常であると判断する。この場合、CPU20は、RがRMAX2を超えているか否かを判定する(ステップS75)。もし、RがRMAX2を超えていないならば、CPU20はユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0も正常であると判断し、当該目標セクタSCT0からデータを読み出すリード動作を終了する。これに対し、RがRMAX2を超えているならば、CPU20はユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0は欠陥セクタとなる可能性があるとして、セクタSCT0またはSCT1から読み出されたデータを用いて、以下に述べる代替処理を行う。
【0063】
まずCPU20は、現在ヘッドH0が位置しているディスク面11−0のトラックi(シリンダCx)内の目標セクタSCT0に、当該ディスク面11−0の代替領域212−0内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタにセクタSCT0またはSCT1から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS76)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。
【0064】
次にCPU20は、ヘッドH0をディスク面11−0のトラックj(シリンダCx+n)に移動させ、当該トラックj(シリンダCx+n)内のセクタSCT1に、当該ディスク面11−0の代替領域212−1内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタにセクタSCT0またはSCT1から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS77)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24に格納されている欠陥セクタ管理情報群に追加される。
【0065】
これにより、ディスク面11−0のトラックi(シリンダCx)内の欠陥セクタであると認定されたセクタSCT0と、同じディスク面11−0のトラックj(シリンダCx+n)内の当該セクタSCT0に対応するセクタSCT1とは共に、代替領域212−0,212−1内の空きセクタに代替され、データの2重化が維持される。
【0066】
一方、トラックi内のセクタSCT0を対象とするリードリトライをRMAX1回繰り返しても、当該セクタSCT0のデータを正しく読み出せなかったならば(ステップS73)、CPU20は当該セクタSCT0は回復不能な欠陥セクタであると認定する。
【0067】
この場合、上記F1またはF2フラグがONしているならば(ステップS78)、CPU20は、トラックj(シリンダCx+n)内のセクタSCT1からは正しいデータが読み出されていると判断し、当該セクタSCT1から読み出されたデータを用いて(先にセクタSCT0またはSCT1のデータを用いて行った場合と同様にして)上記ステップS76,S77の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、当該欠陥セクタSCT0に対応するセクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域212−0,212−1内の空きセクタに代替され、データの2重化が維持される。
【0068】
以上、ヘッドH0がトラックi,jのうちのトラックiに近い場合の動作について説明した。ヘッドH0がトラックi,jのうちのトラックjに近い場合の動作については、ヘッドH0がトラックiに近い場合と同様であるため、説明を省略する。必要があれば、上述の動作説明において、トラックiをトラックjに、トラックjをトラックiに、それぞれ読み替えられたい。
【0069】
また、ディスク面11−1を対象とするヘッドH1によるライト動作及びリード動作についても、上記したディスク面11−0を対象とするヘッドH0によるライト動作及びリード動作と同様である。
【0070】
[第2の変形例]
次に、上記実施形態の第2の変形例について説明する。
【0071】
上記第1の変形例では、ディスク11上の各シリンダ内のセクタ数は同一であるとしている。しかし、ディスク面がディスク半径方向に複数のリング状のゾーンに分割して管理されるCDR(Constant Density Recording)方式のHDDの場合、各シリンダ内のセクタ数は、ゾーン毎に異なり、ディスク11の外周側のゾーンほど、シリンダ内のセクタ数は多くなる。この場合、上記第1の変形例は適用できない。
【0072】
そこで、例えば図12に示すように、ディスク11の各ディスク面が、ゾーンZ0及びZ1に分割して管理されているものとすると、そのゾーンZ0及びZ1のユーザ領域を、ディスク11の半径方向に、それぞれ、シリンダ数が同一の2つのユーザ領域311−00,311−01及び311−10,311−11に分割して管理するとよい。そして、ユーザ領域311−00,311−01及び311−10,311−11毎に、代替領域312−00,312−01及び312−10,312−11を確保する。ここでは、ユーザ領域311−00,311−01及び代替領域312−00,312−01の組と、ユーザ領域311−10,311−11及び代替領域312−10,312−11の組が、それぞれ、上記第1の変形例におけるユーザ領域211−0,211−1及び代替領域212−0,212−1の組に対応する。
【0073】
上記実施形態では、本発明をHDD(磁気ディスク装置)に適用した場合について説明した。しかし本発明は、ディスク媒体を対象とするデータのリード/ライトがヘッドにより行われるディスク記憶装置であれば、光磁気ディスク装置などHDD以外のディスク記憶装置にも適用可能である。
【0074】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0075】
【発明の効果】
以上詳述したように本発明の第1の観点によれば、ディスク媒体の各ディスク面の同一シリンダ位置に同一データを記録することによりデータの2重化、つまり自己ミラーリングを実現できる。しかも本発明によれば、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータで、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理を行うようにしたので、データの2重化を常に維持できる。
【0076】
また本発明の第2の観点によれば、同一ディスク面上にシリンダ数が同一の第1及び第2のユーザ領域を確保し、この第1及び第2のユーザ領域内の相対シリンダ位置が同一のシリンダに同一データを書き込むようにしたので、データの2重化、つまり自己ミラーリングを実現できる。しかも、リードコマンドに対し、当該コマンドで指定された第1のユーザ領域内の目標トラック、または当該目標トラックが存在するディスク面上の第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックのデータを読むようにしたので、ランダムリード時の読み出し性能の向上が図れる。更に、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータであり、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、第1及び第2のユーザ領域に対して一定の位置関係を保って確保された第1及び第2の代替領域内の対応する代替トラックに記録する代替処理を行うようにしたので、データの2重化を常に維持できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図2】図1中のディスク11の各ディスク面11−0,11−1のフォーマットの概念を示す図。
【図3】同実施形態におけるライト動作を説明するためのフローチャート。
【図4】同実施形態におけるリード動作を説明するためのフローチャートの一部を示す図。
【図5】同実施形態におけるリード動作を説明するためのフローチャートの残りを示す図。
【図6】同実施形態の第1の変形例で適用されるディスク11のフォーマットの概念を示す図。
【図7】同実施形態の第1の変形例におけるライト動作を説明するためのフローチャート。
【図8】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの一部を示す図。
【図9】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの他の一部を示す図。
【図10】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの更に他の一部を示す図。
【図11】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの残りを示す図。
【図12】同実施形態の第2の変形例で適用されるディスク11のフォーマットの概念を示す図。
【符号の説明】
11…ディスク
11−0,11−1…ディスク面
20…CPU
23…HDC(ディスクコントローラ)
111−0,111−1,211−0,211−1,311−00,311−01,311−10,311−11…ユーザ領域
112−0,112−1,212−0,212−1,312−00,312−01,312−10,312−11…代替領域
113−0,113−1,213,313…管理領域
H0,H1…ヘッド
【発明の属する技術分野】
本発明は、ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備えたディスク記憶装置に係り、特に1つのライトコマンドに対して同一データを目標トラック及び当該目標トラックとは異なるトラックに書き込むことにより自己ミラーリングを実現するのに好適な、ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置に関する。
【0002】
【従来の技術】
ディスク媒体を対象とするデータのリード/ライトがヘッドにより行われるディスク記憶装置として、磁気ディスク装置が知られている。この磁気ディスク装置では、1つのライトコマンドに対し、データは、ディスク媒体(磁気ディスク)上の当該コマンドで指定された箇所にだけに書かれるのが一般的であった。
【0003】
しかし、このような磁気ディスク装置では、ヘッドクラッシュ等で、ディスク媒体上の該当する箇所が損傷して、その箇所のデータが読み取り不能となった場合、そのデータを回復することは困難であった。
【0004】
そこで従来は、RAID(Redundant Array of Independent Disks)システムを構築してデータのミラーリングを行うことで、データが失われるのを防いでいた。しかし、RAIDシステムは磁気ディスク装置を複数台必要とするため、家庭での使用など、規模の小さいシステムでの使用には適していない。
【0005】
一方、特開平9−91855号公報には、ディスクの一方の面と他方の面とに、それぞれ異なるヘッドA,Bにより同一のデータを同時に書き込むことで、データの2重化を図った、つまり自己ミラーリングを図った磁気ディスク装置が記載されている。この公報記載の磁気ディスク装置においては、読み出し時に、一方のヘッドAによりデータを読み出し、このデータに異常があった場合に、他方のヘッドBによりバックアップデータを読み出すようにしている。このヘッドBにより読み出されたデータは、そのまま、復旧書き込みデータとなり、ヘッドAにより記録することで、自動復旧するようにしている。
【0006】
【発明が解決しようとする課題】
しかしながら、上記公報に記載の技術では、ヘッドクラッシュ等に起因する読み出しエラーについては考慮されていない。即ち、ヘッドクラッシュ等でディスク媒体上の該当する箇所が損傷した場合、その箇所にデータを正しく書き込むことは困難であり、また書き込めたとしても正しく読み出すことは困難である。このような場合、自動復旧されず、データの2重化を実現できなくなる。したがって、もう一方のデータが記録されている箇所が損傷した場合には、データは回復できない。また、上記公報には、データの2重化を、ランダムリード時の読み出し性能の向上を図ることに利用することは何も記載されていない。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、ディスク記憶装置においてデータの2重化を常に維持できる自己ミラーリング方法及び同方法を適用するディスク記憶装置を提供することにある。
【0008】
本発明の他の目的は、ランダムリード時の読み出し性能が向上できる自己ミラーリング方法及び同方法を適用するディスク記憶装置を提供することにある。
【0009】
【課題を解決するための手段】
本発明の第1の観点によれば、ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを当該ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備えたディスク記憶装置における自己ミラーリング方法が提供される。この方法は、1つのライトコマンドに対し、当該ライトコマンドで指定されるディスク媒体の目標トラックが存在するディスク面及びディスク媒体のもう一方のディスク面にそれぞれ対応して設けられた各ヘッドを用いて、上記目標トラック及び当該目標トラックとシリンダ位置が同一の別のトラックに、同一データを同時に書き込むステップと、1つのリードコマンドに対し、当該リードコマンドで指定されるディスク媒体の目標トラックが存在するディスク面に対応して設けられたヘッドを用いて当該目標トラックのデータを読み出すステップと、上記目標トラックのデータを読み出すステップでリードエラーが発生した場合、ディスク媒体の上記目標トラックが存在するディスク面とは異なるもう一方のディスク面に対応して設けられたヘッドを用いて、上記目標トラックとシリンダ位置が同一の別のトラックからデータを読み出すステップと、上記別のトラックからデータを読み出すステップの後に、目標トラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行するステップと、上記目標トラックのデータの読み出しのリトライに失敗し、且つ上記別のトラックからデータを読み出すステップでリードエラーが発生した場合、当該別トラックのデータの読み出しのリトライを、上記第1のリトライ回数を上限に実行するステップと、少なくとも、上記目標トラックのデータの読み出しのリトライまたは上記別トラックのデータの読み出しのリトライの結果に応じて、上記目標トラックまたは上記別トラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証するステップと、上記検証ステップでの検証結果に応じて、上記目標トラックまたは上記別トラックのデータのうち正しく読み出されたデータを、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理を実行するステップとを備えたことを特徴とする。
【0010】
このように、本発明の第1の観点に係る自己ミラーリング方法においては、ディスク媒体の各ディスク面の同一シリンダ位置に同一データが記録され、データの2重化、つまり自己ミラーリングが実現される。しかも、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合(例えば、一定の回数を超えるリトライで正しく読めた場合)、または2重化されたデータの一方が現在回復不能なデータ(例えばリトライを予め定められた上限回数繰り返しても正しく読めなかったデータ)であり、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理が行われるため、2重化されたデータが両方とも回復不能となるのを未然に防いで、データの2重化を常に維持できる。
【0011】
本発明の第2の観点に係る自己ミラーリング方法は、同一ディスク面上にシリンダ数が同一の第1及び第2のユーザ領域を確保し、この第1及び第2のユーザ領域内の相対シリンダ位置が同一のシリンダに同一データを書き込むことで、データの2重化、つまり自己ミラーリングを実現するようにしたことを特徴とする。
【0012】
本発明の第2の観点に係る自己ミラーリング方法においは、リードコマンドに対し、当該コマンドで指定された第1のユーザ領域内の目標トラック、または当該目標トラックが存在するディスク面上の第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックのデータを読むことにより、ランダムリード時の読み出し性能の向上が図れる。しかも、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータで、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、第1及び第2のユーザ領域に対してそれぞれ一定の位置関係を保って確保された第1及び第2の代替領域内の対応する代替トラックに記録する代替処理が行われるため、データの2重化を常に維持できる。
【0013】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。
【0014】
図1は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。
図1の磁気ディスク装置(以下、HDDと称する)において、磁気記録媒体としてのディスク(磁気ディスク)11は上側と下側の2つのディスク面11−0,11−1を有している。ディスク11の各ディスク面11−0,11−1は、データが磁気記録される記録面をなしている。各ディスク面11−0,11−1には、同心円状の多数のトラック(データトラック)が配置されたリング状のデータ領域が確保されている。
【0015】
ディスク11の各ディスク面11−0,11−1に対応してそれぞれヘッド(磁気ヘッド)ヘッドH0,H1が配置されている。ヘッドH0,H1は、ディスク11(のディスク面11−0,11−1)へのデータ書き込み(データ記録)及びディスク11(のディスク面11−0,11−1)からのデータ読み出し(データ再生)に用いられる。なお、図1の構成では、単一枚のディスク11を備えたHDDを想定しているが、ディスク11が複数枚積層配置されたHDDであっても構わない。
【0016】
ディスク11の各ディスク面11−0,11−1には、複数のサーボ領域(図示せず)がディスク11の半径方向に放射状に且つディスク11の円周方向に等間隔で離散的に配置されている。各サーボ領域には、ヘッドH0,H1を目標トラックに移動させて当該目標トラックの目標範囲内に位置付けるのに用いられるサーボデータが記録されている。このサーボデータは、当該サーボデータを識別するための固有のパターンであるサーボマーク、トラックコード(シリンダアドレス)及びバースト信号を含む。トラックコード及びバースト信号は、ヘッドH0,H1を目標トラックの目標範囲内に位置付けるための位置情報として用いられる、更に詳細に述べるならば、トラックコードは、対応するサーボ領域が位置するトラック(シリンダ)を示す。このトラックコードに基づき、ヘッドH0,H1を目標トラックに移動させるシーク制御が行われる。バースト信号は、対応するサーボ領域が位置するトラックにおけるヘッドの相対的な位置情報(位置誤差)を、再生波形の振幅で示す。シーク制御の完了後、このバースト信号に基づき、ヘッドH0,H1を目標トラックの目標範囲内に位置付けるためのトラックキング制御が行われる。隣接するサーボ領域の間は、ユーザデータ領域となっており、当該データ領域にはデータセクタが複数個配置されている。
【0017】
また、ディスク11のディスク面11−0,11−1には、図2に示すように、ユーザから利用可能なユーザ領域111−0,111−1と、欠陥セクタの代替先となる代替トラックが確保された代替領域112−0,112−1と、システム管理に必要な情報、つまりシステム管理情報を保存する管理領域113−0,113−1とが割り当てられている。システム管理情報は、欠陥セクタと当該セクタに割り当てられるセクタ(代替セクタ)との対応関係を示す欠陥セクタ管理情報を含む。欠陥セクタ管理情報は、欠陥セクタのアドレスと当該セクタに割り当てられるセクタのアドレスとの組を含む。なお、図1の例では、代替領域113−0,113−1はユーザ領域111−0,111−1の外周側にリング状に配置されているが、これに限るものではない。例えば、ユーザ領域111−0,111−1の内周側に、或いはユーザ領域111−0,111−1の外周側と内周側の両方に、代替領域が配置されるようにしても構わない。代替領域112−0,112−1と管理領域113−0,113−1とは、システムのみが使用する、つまりユーザからは見えない非ユーザ領域である。この代替領域112−0,112−1と管理領域113−0,113−1とを合わせた領域はシステム領域と呼ばれる。なお、管理領域113−0,113−1だけがシステム領域と呼ばれることもある。
【0018】
ディスク11はスピンドルモータ(以下、SPMと称する)13により高速に回転する。ヘッドH0,H1はヘッド移動機構としてのアクチュエータ(キャリッジ)14の先端に、ディスク11の半径方向に移動可能なように支持されている。アクチュエータ14は、当該アクチュエータ14の駆動源となるボイスコイルモータ(以下、VCMと称する)15を有しており、当該VCM15により駆動される。
【0019】
SPM13及びVCM15は、ドライバIC(Integrated Circuit)16からそれぞれ供給される駆動電流により駆動される。ドライバIC16は1チップ化されたモータドライバであり、SPMドライバ及びVCMドライバを構成する。ドライバIC16からSPM13及びVCM15にそれぞれ供給される駆動電流を決定するための値(制御量)は、CPU20により決定される。
【0020】
ヘッドH0,H1はフレキシブルプリント配線板(FPC)に実装されたヘッドIC17と接続されている。ヘッドIC17は、ヘッドH0,H1により読み取られた微弱な信号(リード信号)を増幅するリードアンプ、及びライトデータをヘッドH0,H1に例えば同時に供給するライト電流に変換するライトアンプを含む、1チップ化されたヘッドアンプ回路である。
【0021】
ヘッドIC17は、リード/ライトチャネル(以下、R/Wチャネルと称する)18と接続されている。R/Wチャネル18は、ヘッドIC17から出力される増幅されたリード信号に対するA/D(アナログ/デジタル)変換処理、ライトデータの符号化処理及びリードデータの復号化処理、A/D変換処理で2値化されたリード信号からゲートアレイ19により生成されるタイミング信号に従ってサーボデータを抽出するサーボデータ検出処理等の各種の信号処理を実行する。
【0022】
R/Wチャネル18は、ASIC(Application Specific Integrated Circuit)としての例えばゲートアレイ19及びHDC(ディスクコントローラ)23と接続されている。ゲートアレイ19は、R/Wチャネル18により検出されたサーボデータから位置情報を抽出して、CPU20から読み込み可能なように保持する。またゲートアレイ19は、HDDにおけるデータの読み出し/書き込み、R/Wチャネル18でのサーボデータの検出等に必要な各種のタイミング信号を生成する。ゲートアレイ19は、制御用のレジスタ群(図示せず)を有している。この制御用レジスタ群はCPU20のメモリ領域の一部に割り当てられており、CPU20がこの領域に対して読み出し及び書き込みを行うことでゲートアレイ19及びHDC23を制御する。
【0023】
CPU20は、制御プログラムが格納された不揮発性メモリ、例えばROM(Read Only Memory)21と、当該CPU20のワーク領域等を提供するRAM(Random Access Memory)22と接続されている。CPU20は、HDDの主コントローラであり、ROM21に格納されている制御プログラムに従ってHDD内各部を制御する。
【0024】
例えばCPU20は、ゲートアレイ19により抽出される位置情報に基づいてヘッド12を目標トラックの目標範囲内に位置付ける制御を行う。CPU20はまたディスク11におけるデータの2重化のために、ゲートアレイ19を介してヘッドIC17を制御することで、1つのライトコマンドに対して、ディスク11の一方のディスク面上に存在する目標トラックの目標セクタと、当該目標トラックとシリンダ位置が同一である他方のディスク面上の当該目標セクタに対応するセクタに同一データを書き込ませる制御を行う。本実施形態では、ホストからはディスク面11−0のユーザ領域111−0が割り当てられる論理アドレスのみが見えるようになっている。つまりディスク面11−1の領域は、ディスク面11−0に対するバックアップ領域として用いられる。
【0025】
またCPU20は、ディスク11のディスク面11−0,11−1上のそれぞれ対応するセクタの一方が異常(欠陥セクタ)の場合、もう一方のセクタのデータを用いて、ディスク面11−0,11−1上の代替領域112−0,112−1における同一シリンダ位置への代替処理を行う。
【0026】
HDC(ディスクコントローラ)23は、R/Wチャネル18によって復号化されたリードデータからホストに転送すべきデータを生成する。またHDC23は、ホストから転送されたライトデータを符号化してR/Wチャネル18に転送する。HDC23、R/Wチャネル18により復号されたリードデータのECC(エラー検出訂正)処理を実行するECC回路230を内蔵する。
【0027】
バッファメモリ24は例えばRAMである。バッファメモリ24には、ホストとHDD(内のHDC23)との間で転送されるデータを一時格納するバッファ領域が確保されている。バッファメモリ24にはまた、ディスク11のディスク面11−0,11−1上の管理領域113−0,113−1に保存されている欠陥セクタ管理情報の群の写しがHDDの立ち上げ時に格納される、欠陥セクタ管理情報領域が確保されている。CPU20は、バッファメモリ24上の欠陥セクタ管理情報の群を参照することで、目的セクタが欠陥セクタである場合に、その代替セクタを高速に認識することができる。
【0028】
次に、図1の構成の動作を説明する。
まず、ライト動作について図3のフローチャートを参照して説明する。
図1のHDDでは、ホストからのライトコマンドで指定されたデータの書き込みは、セクタ単位で順次行われる。
【0029】
今、目標トラックの目標セクタSCT0がディスク11のディスク面11−0上のシリンダCx内にあるものとする。この場合、CPU20は、ドライバIC16を介してVCM15を駆動することで、アクチュエータ14により支持されているヘッドH0を、ディスク面11−0上の目標トラックに移動させるシーク制御と、ヘッドH0を当該目標トラックの目標範囲内に位置付けるトラッキング制御とを行う。この制御により、ヘッドH1は、ディスク面11−0上の目標トラックとシリンダ番号が同一の、ディスク面11−1上のシリンダCxの位置に位置付けられる。
【0030】
この状態でCPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH0及びH1により、ディスク面11−0のシリンダCx内の目標セクタSCT0及びディスク面11−1のシリンダCx内の当該目標セクタSCT0と同一セクタ番号のセクタSCT1に同一データを同時に書き込ませる(ステップS1)。これにより、ディスク面11−0上のシリンダCx内の目標セクタSCT0に書き込まれたデータと同一のデータが、ディスク面11−1上のシリンダCx内の上記目標セクタSCT0と同一セクタ番号のセクタSCT1にも書き込まれる。この結果、1つのHDD内でのデータの2重化、つまり自己ミラーリングが図られる。
【0031】
次に、図1の構成におけるリード動作について、図4及び図5のフローチャートを参照して説明する。
図1のHDDでは、ホストからのリードコマンドで指定されたデータの読み込みも、セクタ単位で順次行われる。
【0032】
今、目標トラック内の目標セクタSCT0が、上記ライト動作の場合と同様に、ディスク11のディスク面11−0上のシリンダCx内にあるものとする。この場合、CPU20は、ヘッドH0をディスク面11−0上の目標トラック(シリンダCx)の目標範囲内に位置付ける。このとき、ヘッドH1は、ディスク面11−1上のシリンダCxの位置に位置付けられる。
【0033】
この状態でCPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH0によりディスク面11−0上のシリンダCx(目標トラック)からデータを読み出させ、HDC23によりそのデータから、シリンダCx内の目標セクタSCT0のデータを抽出させる(ステップS11)。このときHDC23では、ECC回路230によりエラー検出・訂正処理が行われる。
【0034】
CPU20は、HDC23により正しいデータが抽出できないリードエラーの発生の有無を判定する(ステップS12)。もし、リードエラーがないならば、目標セクタSCT0からデータを読み出すリード動作は終了する。
【0035】
これに対し、リードエラーが発生した場合、CPU20は、ゲートアレイ19を介してヘッドIC17を制御することで、ヘッドH1によりディスク面11−1上のシリンダCxからデータを読み出させ、HDC23によりそのデータから、上記目標セクタSCT0と同一セクタ番号のセクタSCT1のデータを抽出させる(ステップS13)。ここで、リードエラーが発生しなかったならば(ステップS14)、つまりセクタSCT1のデータがHDC23により正しく抽出されたならば、そのデータが上記目標セクタSCT0からの正しい読み出しデータとして用いられる。このときCPU20は、図示せぬフラグをONし(ステップS15)、リードリトライのためにステップS16に進む。これに対し、リードエラーが発生したならば、CPU20はそのままリードリトライのためにステップS16に進む。
【0036】
CPU20はステップS16において、リトライ回数をカウントするカウンタ(リトライカウンタ)Rを初期値0に設定し、しかる後にヘッドH0によりディスク面11−0のシリンダCxのデータを読み出させ、そのデータからHDC23により目標セクタSCT0のデータを抽出させる(ステップS17)。ここで、リードエラーが発生したならば(ステップS18)、CPU20はリトライカウンタRを1だけインクリメントし(ステップS19)、そのインクリメント後のリトライカウンタRの値が、リトライ回数の上限値RMAX1を超えているか否かを判定する(ステップS20)。もし、RがRMAX1を超えていないならば、CPU20は再びヘッドH0によるリード動作のリトライを行う(ステップS17)。
【0037】
このように、CPU20はRMAX1を上限に、ヘッドH0によるリード動作で目標セクタSCT0のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS17〜S20)。
【0038】
もし、RがRMAX1を超える前に、目標セクタSCT0のデータが正しく読み出せたならば、CPU20はそのときのRの値が、当該セクタSCT0を正常セクタと認定するリトライ回数の上限値RMAX2(RMAX2<RMAX1)を超えているか否かを判定する(ステップS21)。もし、RがRMAX2を超えていないならば、CPU20は上記目標セクタSCT0は正常であるとして、目標セクタSCT0からデータを読み出すリード動作を終了する。
【0039】
これに対し、RがRMAX2を超えているならば、つまりRMAX2を超える回数のリトライにより初めて目標セクタSCT0のデータを正しく読み出せたならば、CPU20は当該目標セクタSCT0は欠陥セクタの可能性があり、近い将来、RMAX1で示される回数のリトライを行っても当該セクタから正しいデータが読み出せなくなる虞があると判定する。この場合、CPU20は、上記目標セクタSCT0を欠陥セクタと認定し、以下に述べる代替処理を行う。
【0040】
まずCPU20は、ディスク面11−0上のシリンダCx内の目標セクタSCT0に、当該ディスク面11−0の代替領域112−0内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタに上記目標セクタSCT0から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS22)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。このバッファメモリ24内の欠陥セクタ管理情報領域には、図1のHDDの立ち上げ時にディスク面11−0,11−1の管理領域113−0,113−1から読み出された欠陥セクタ管理情報群が格納されている。
【0041】
次にCPU20は、ディスク面11−1上のシリンダCx内の(上記目標セクタSCT0とセクタ番号が同一の)セクタSCT1に、当該セクタSCT1が正常であるか否かに無関係に、当該ディスク面11−1の代替領域112−1内の任意の空きセクタ(好ましくは上記目標セクタSCT0に対する代替セクタに対応する位置の空きセクタ)を代替セクタとして割り当てて、その割り当てた代替セクタに上記目標セクタSCT0から読み出されたデータをヘッドH1により書き込ませる代替処理を行う(ステップS23)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。
【0042】
これにより、ディスク面11−0のシリンダCx内の欠陥と認定されたセクタSCT0と、ディスク面11−1のシリンダCx内の当該セクタSCT0に対応するセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0043】
なお、ディスク面11−0,11−1の代替領域112−0,112−1内のセクタ群をそれぞれ管理するバッファメモリ24内の欠陥セクタ管理情報群は、HDDのアイドル状態における任意のタイミングと、HDDの停止時とに、ディスク面11−0,11−1の管理領域113−0,113−1に書き戻される。
【0044】
一方、ヘッドH0によるリード動作のリトライをRMAX1回繰り返しても、目標セクタSCT0のデータを正しく読み出せなかったならば(ステップS20)、つまりRMAX1回のリトライに失敗したならば、CPU20は当該目標セクタSCT0は回復不能な欠陥セクタであると認定する。
【0045】
この場合、上記フラグがONしているならば(ステップS24)、CPU20は、ディスク面11−1上のシリンダCx内の(上記目標セクタSCT0とセクタ番号が同一の)セクタSCT1のデータは正しく読み出されているものとして、当該データを用いて(先に目標セクタSCT0のデータを用いて行った場合と同様にして)上記ステップS22,S23の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、当該欠陥セクタSCT0に対応するセクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0046】
これに対し、上記フラグがONしていないならば(ステップS24)、CPU20は、上記ステップS16から始まるヘッドH0によるリード動作のリトライと同様にして、ヘッドH1によるリード動作のリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS25)、しかる後にRMAX1を上限に、ヘッドH1によるリード動作で、ディスク面11−1のシリンダCx内の、目標セクタSCT0に対応するセクタSCT1のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS26〜S29)。
【0047】
もし、RがRMAX1を超える前に、セクタSCT1のデータが正しく読み出せ場合(ステップS27)、そのデータが上記目標セクタSCT0からの正しい読み出しデータとして用いられる。この場合、、CPU20は、セクタSCT1のデータを用いて(先に目標セクタSCT0のデータを用いて行った場合と同様にして)上記ステップS22,S23の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、セクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域112−0,112−1内の空きセクタに代替され、データの2重化が維持される。
【0048】
これに対し、ヘッドH1によるリード動作のリトライをRMAX1回繰り返しても、セクタSCT1のデータを正しく読み出せなかったならば、つまりヘッドH0及びH1による、それぞれRMAX1回のリトライに失敗したならば、CPU20は目標セクタSCT0及び対応するセクタSCT1のいずれも回復不能な欠陥セクタであるとして、エラー処理に進む。
【0049】
[第1の変形例]
次に、上記実施形態の第1の変形例について説明する。
【0050】
この第1の変形例の特徴は、データの2重化を、ディスク11の同一ディスク面上で実現する点にある。そのため、ディスク11の各ディスク面11−0,11−1では、ユーザ領域が、図6に示すようにディスク11の半径方向に2つのユーザ領域211−0及び211−1に分割されている。ここで、ユーザ領域211−0及び211−1内のシリンダ(トラック)数は同一であり、nであるものとする。また、各シリンダ(トラック)内のセクタ(データセクタ)数は同一であるものとする。ユーザ領域(外周側のユーザ領域)211−0のシリンダアドレスは0〜n−1であり、ユーザ領域(内周側のユーザ領域)211−1のシリンダアドレスはn〜2n−1である。ホストからは、ユーザ領域211−0のシリンダのアドレス0〜n−1だけが見えるものとする。ユーザ領域211−0の外周側には、当該ユーザ領域211−0内の欠陥セクタの代替に用いられる代替領域212−0と、図2中の管理領域113−0,113−1に相当する管理領域213とが確保されている。また、ユーザ領域211−1の外周側(ユーザ領域211−0の内周側)には、当該ユーザ領域211−1内の欠陥セクタの代替に用いられる代替領域212−1が確保されている。ここでは、代替領域212−0,212−1のシリンダ数は同一であり、ユーザ領域211−0,211−1に対して一定の関係を保つ位置、例えばユーザ領域211−0,211−1の外周に接する位置に配置されている。
【0051】
次に、上記実施形態の第1の変形例の動作について、便宜的に図1の構成を援用して説明する。
【0052】
まず、目標トラックiがディスク11のディスク面11−0のユーザ領域211−0に含まれている場合のライト動作について図7のフローチャートを参照して説明する。
今、ヘッドH0がディスク面11−0のユーザ領域211−0内の目標トラックiにシーク・位置決めされているものとする。この状態でCPU20は、ディスク11のユーザ領域211−0内の目標トラックiの目標セクタSCT0にヘッドH0によりデータを書き込ませる(ステップS31)。次にCPU20は、ヘッドH0を、ディスク11のユーザ領域211−1内の、上記目標トラックiと相対位置(相対シリンダ位置)が同一のトラックjに移動して、そのトラックjの上記目標セクタSCT0と同一セクタ番号のセクタSCT1に、当該目標セクタSCT0に書き込んだのと同一のデータをヘッドH0により書き込ませる(ステップS32)。これにより、ディスク面11−0のユーザ領域211−0のトラックi内の目標セクタSCT0に書き込まれたデータと同一のデータが、同じディスク面11−0のユーザ領域211−1の当該目標セクタSCT0と相対位置が同一のトラックj内の対応するセクタSCT1にも書き込まれる。この結果、1つのHDD内でのデータの2重化、つまり自己ミラーリングが図られる。ここで、トラックiのシリンダアドレスをCxとすると、トラックjのシリンダアドレスはCx+nで表される。
【0053】
次に、上記第1の変形例におけるリード動作について、目標トラックがディスク11のディスク面11−0のユーザ領域211−0内にある場合について、図8乃至図11のフローチャートを参照して説明する。
まずCPU20は、ホストからのリードコマンドで指定されたデータの読み込みをセクタ単位で実行するに際し、ゲートアレイ19により検出される現在のヘッド位置(ここではヘッドH0のシリンダ位置)を、ユーザ領域211−0内の目標トラックiの位置(シリンダ位置Cx)、及びユーザ領域211−1内の、当該目標トラックiと相対位置が同一のトラックjの位置(シリンダ位置Cx+n)と比較する(ステップS41)。そしてCPU20は、現在のヘッド位置(ヘッドH0のシリンダ位置)が、目標トラックiまたは対応するトラックjのいずれの側に近いかを判定する(ステップS42)。
【0054】
もし、ヘッドH0がトラックi,jのうちのトラックiに近いならば、CPU20はヘッドH0を現在位置からトラックiの位置(シリンダCxの位置)に移動(シーク)させる(ステップS43)。次にCPU20は、ヘッドH0によりユーザ領域211−0内のトラックi(シリンダCx)からデータを読み出させ、HDC23によりそのデータから、トラックi内の目標セクタSCT0のデータを抽出させる(ステップS44)。
【0055】
CPU20は、HDC23により正しいデータが抽出できないリードエラーの発生の有無を判定する(ステップS45)。もし、リードエラーがないならば、目標セクタSCT0からデータを読み出すリード動作は終了する。この場合、2重化されたデータのうち、ヘッドH0の位置に近い方のデータが読み出されたことから、高速読み出しが実現できる。即ち第1の変形例によれば、ランダムリードアクセス時には、異なるシリンダ位置に格納された2重化データを利用して、その際のヘッド位置に近い方のデータを読み出すことにより、シーク時間を短縮して、より速い応答速度を実現できる。
【0056】
これに対し、リードエラーが発生した場合、CPU20はヘッドH0をトラックi(シリンダCx)からユーザ領域211−1内のトラックjの位置(シリンダCx+n)に移動(シーク)させる(ステップS46)。次にCPU20は、ヘッドH0によりユーザ領域211−1内のトラックj(シリンダCx+n)からデータを読み出させ、HDC23によりそのデータから、トラックj内のセクタSCT1のデータを抽出させる(ステップS47)。ここで、リードエラーが発生しなかったならば(ステップS48)、CPU20はトラックj内のセクタSCT1は正常であるとして図示せぬF1フラグをONし(ステップS49)、先にエラーとなったトラックi内のセクタSCT0を対象とするリードリトライのためにステップS68に進む。
【0057】
これに対し、リードエラーが発生したならば(ステップS48)、CPU20は上記実施形態と同様にして、当該リードエラーとなったトラックj内のセクタSCT1を対象とするリードリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS50)、しかる後にRMAX1を上限に、ヘッドH0によるリード動作で、ディスク面11−0のユーザ領域211−1のトラックj(シリンダCx+n)内の、目標セクタSCT0に対応するセクタSCT1のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS51〜S54)。
【0058】
もし、RがRMAX1を超える前に、トラックj内のセクタSCT1のデータが正しく読み出せ(ステップS52)、且つRがRMAX2をも超えていないならば(ステップS52a)、CPU20は当該セクタSCT1は正常であるとして上記F1フラグをONし(ステップS49)、上記ステップS68に進む。
【0059】
また、RがRMAX1を超える前に、セクタSCT1のデータが正しく読み出せても(ステップS52)、RがRMAX2を超えているならば(ステップS52a)、CPU20は当該セクタSCT1は近い将来回復不能な欠陥セクタとなる虞があるものと判断し、図示せぬF2フラグをONして(ステップS52b)、上記ステップS68に進む。
【0060】
また、リードリトライをRMAX1回繰り返しても、トラックj内のセクタSCT1のデータを正しく読み出せなかったならば、CPU20は当該セクタSCT1は回復不能な欠陥セクタであると認定する。この場合、CPU20はそのまま上記ステップS68に進む。
【0061】
CPU20は、ステップS68において、ヘッドH0をトラックj(シリンダCx+n)からユーザ領域211−0内のトラックiの位置(シリンダCx)に移動させる。そしてCPU20は、先にエラーとなったトラックi内のセクタSCT0を対象とするリードリトライを開始する。即ちCPU20は、リトライカウンタRを初期値0に設定し(ステップS69)、しかる後にRMAX1を上限に、ヘッドH0によるリード動作で、ディスク面11−0のユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0のデータが正しく読み出せるまで、リードリトライを繰り返す(ステップS70〜S73)。
【0062】
もし、RがRMAX1を超える前に、セクタSCT0のデータが正しく読み出せた場合(ステップS71)、CPU20はF1フラグがONしているか否かを判定する(ステップS74)、CPU20は、F1フラグがONしている場合、ユーザ領域211−1のトラックj(シリンダCx+n)内のセクタSCT1は正常であると判断する。この場合、CPU20は、RがRMAX2を超えているか否かを判定する(ステップS75)。もし、RがRMAX2を超えていないならば、CPU20はユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0も正常であると判断し、当該目標セクタSCT0からデータを読み出すリード動作を終了する。これに対し、RがRMAX2を超えているならば、CPU20はユーザ領域211−0のトラックi(シリンダCx)内の目標セクタSCT0は欠陥セクタとなる可能性があるとして、セクタSCT0またはSCT1から読み出されたデータを用いて、以下に述べる代替処理を行う。
【0063】
まずCPU20は、現在ヘッドH0が位置しているディスク面11−0のトラックi(シリンダCx)内の目標セクタSCT0に、当該ディスク面11−0の代替領域212−0内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタにセクタSCT0またはSCT1から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS76)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24内の欠陥セクタ管理情報領域に追加される。
【0064】
次にCPU20は、ヘッドH0をディスク面11−0のトラックj(シリンダCx+n)に移動させ、当該トラックj(シリンダCx+n)内のセクタSCT1に、当該ディスク面11−0の代替領域212−1内の任意の空きセクタを代替セクタとして割り当てて、当該代替セクタにセクタSCT0またはSCT1から読み出されたデータをヘッドH0により書き込ませる代替処理を行う(ステップS77)。ここでは、欠陥セクタのアドレスと代替セクタのアドレスとの対を含む欠陥セクタ管理情報が、バッファメモリ24に格納されている欠陥セクタ管理情報群に追加される。
【0065】
これにより、ディスク面11−0のトラックi(シリンダCx)内の欠陥セクタであると認定されたセクタSCT0と、同じディスク面11−0のトラックj(シリンダCx+n)内の当該セクタSCT0に対応するセクタSCT1とは共に、代替領域212−0,212−1内の空きセクタに代替され、データの2重化が維持される。
【0066】
一方、トラックi内のセクタSCT0を対象とするリードリトライをRMAX1回繰り返しても、当該セクタSCT0のデータを正しく読み出せなかったならば(ステップS73)、CPU20は当該セクタSCT0は回復不能な欠陥セクタであると認定する。
【0067】
この場合、上記F1またはF2フラグがONしているならば(ステップS78)、CPU20は、トラックj(シリンダCx+n)内のセクタSCT1からは正しいデータが読み出されていると判断し、当該セクタSCT1から読み出されたデータを用いて(先にセクタSCT0またはSCT1のデータを用いて行った場合と同様にして)上記ステップS76,S77の代替処理を行う。これにより、セクタSCT0が回復不能な欠陥セクタであっても、当該欠陥セクタSCT0に対応するセクタSCT1のデータを用いることで、欠陥セクタSCT0とセクタSCT1とは共に、代替領域212−0,212−1内の空きセクタに代替され、データの2重化が維持される。
【0068】
以上、ヘッドH0がトラックi,jのうちのトラックiに近い場合の動作について説明した。ヘッドH0がトラックi,jのうちのトラックjに近い場合の動作については、ヘッドH0がトラックiに近い場合と同様であるため、説明を省略する。必要があれば、上述の動作説明において、トラックiをトラックjに、トラックjをトラックiに、それぞれ読み替えられたい。
【0069】
また、ディスク面11−1を対象とするヘッドH1によるライト動作及びリード動作についても、上記したディスク面11−0を対象とするヘッドH0によるライト動作及びリード動作と同様である。
【0070】
[第2の変形例]
次に、上記実施形態の第2の変形例について説明する。
【0071】
上記第1の変形例では、ディスク11上の各シリンダ内のセクタ数は同一であるとしている。しかし、ディスク面がディスク半径方向に複数のリング状のゾーンに分割して管理されるCDR(Constant Density Recording)方式のHDDの場合、各シリンダ内のセクタ数は、ゾーン毎に異なり、ディスク11の外周側のゾーンほど、シリンダ内のセクタ数は多くなる。この場合、上記第1の変形例は適用できない。
【0072】
そこで、例えば図12に示すように、ディスク11の各ディスク面が、ゾーンZ0及びZ1に分割して管理されているものとすると、そのゾーンZ0及びZ1のユーザ領域を、ディスク11の半径方向に、それぞれ、シリンダ数が同一の2つのユーザ領域311−00,311−01及び311−10,311−11に分割して管理するとよい。そして、ユーザ領域311−00,311−01及び311−10,311−11毎に、代替領域312−00,312−01及び312−10,312−11を確保する。ここでは、ユーザ領域311−00,311−01及び代替領域312−00,312−01の組と、ユーザ領域311−10,311−11及び代替領域312−10,312−11の組が、それぞれ、上記第1の変形例におけるユーザ領域211−0,211−1及び代替領域212−0,212−1の組に対応する。
【0073】
上記実施形態では、本発明をHDD(磁気ディスク装置)に適用した場合について説明した。しかし本発明は、ディスク媒体を対象とするデータのリード/ライトがヘッドにより行われるディスク記憶装置であれば、光磁気ディスク装置などHDD以外のディスク記憶装置にも適用可能である。
【0074】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0075】
【発明の効果】
以上詳述したように本発明の第1の観点によれば、ディスク媒体の各ディスク面の同一シリンダ位置に同一データを記録することによりデータの2重化、つまり自己ミラーリングを実現できる。しかも本発明によれば、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータで、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理を行うようにしたので、データの2重化を常に維持できる。
【0076】
また本発明の第2の観点によれば、同一ディスク面上にシリンダ数が同一の第1及び第2のユーザ領域を確保し、この第1及び第2のユーザ領域内の相対シリンダ位置が同一のシリンダに同一データを書き込むようにしたので、データの2重化、つまり自己ミラーリングを実現できる。しかも、リードコマンドに対し、当該コマンドで指定された第1のユーザ領域内の目標トラック、または当該目標トラックが存在するディスク面上の第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックのデータを読むようにしたので、ランダムリード時の読み出し性能の向上が図れる。更に、2重化されたデータの少なくとも一方が正しく読めるものの、そのデータが回復不能となる可能性のあるデータである場合、または2重化されたデータの一方が現在回復不能なデータであり、且つもう一方のデータが正しく読める場合に、正しく読めたデータを用いて、第1及び第2のユーザ領域に対して一定の位置関係を保って確保された第1及び第2の代替領域内の対応する代替トラックに記録する代替処理を行うようにしたので、データの2重化を常に維持できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図2】図1中のディスク11の各ディスク面11−0,11−1のフォーマットの概念を示す図。
【図3】同実施形態におけるライト動作を説明するためのフローチャート。
【図4】同実施形態におけるリード動作を説明するためのフローチャートの一部を示す図。
【図5】同実施形態におけるリード動作を説明するためのフローチャートの残りを示す図。
【図6】同実施形態の第1の変形例で適用されるディスク11のフォーマットの概念を示す図。
【図7】同実施形態の第1の変形例におけるライト動作を説明するためのフローチャート。
【図8】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの一部を示す図。
【図9】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの他の一部を示す図。
【図10】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの更に他の一部を示す図。
【図11】同実施形態の第1の変形例におけるリード動作を説明するためのフローチャートの残りを示す図。
【図12】同実施形態の第2の変形例で適用されるディスク11のフォーマットの概念を示す図。
【符号の説明】
11…ディスク
11−0,11−1…ディスク面
20…CPU
23…HDC(ディスクコントローラ)
111−0,111−1,211−0,211−1,311−00,311−01,311−10,311−11…ユーザ領域
112−0,112−1,212−0,212−1,312−00,312−01,312−10,312−11…代替領域
113−0,113−1,213,313…管理領域
H0,H1…ヘッド
Claims (7)
- ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備えたディスク記憶装置における自己ミラーリング方法であって、
1つのライトコマンドに対し、当該ライトコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面及び前記ディスク媒体のもう一方のディスク面にそれぞれ対応して設けられた前記各ヘッドを用いて、前記目標トラック及び当該目標トラックとシリンダ位置が同一の別のトラックに、同一データを同時に書き込むステップと、
1つのリードコマンドに対し、当該リードコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面に対応して設けられた前記ヘッドを用いて当該目標トラックのデータを読み出すステップと、
前記目標トラックのデータを読み出すステップでリードエラーが発生した場合、前記ディスク媒体の前記目標トラックが存在するディスク面とは異なるもう一方のディスク面に対応して設けられた前記ヘッドを用いて、前記目標トラックとシリンダ位置が同一の別のトラックからデータを読み出すステップと、
前記別のトラックからデータを読み出すステップの後に、前記目標トラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行するステップと、
前記目標トラックのデータの読み出しのリトライに失敗し、且つ前記別のトラックからデータを読み出すステップでリードエラーが発生した場合、前記別トラックのデータの読み出しのリトライを、前記第1のリトライ回数を上限に実行するステップと、
少なくとも、前記目標トラックのデータの読み出しのリトライまたは前記別トラックのデータの読み出しのリトライの結果に応じて、前記目標トラックまたは前記別トラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証するステップと、
前記検証ステップでの検証結果に応じて、前記目標トラックまたは前記別トラックのデータのうち正しく読み出されたデータを、前記ディスク媒体の各データ面にそれぞれ確保された、それぞれシリンダアドレス範囲が同一の代替領域内の対応する代替トラックに記録する代替処理を実行するステップと
を具備することを特徴とするディスク記憶装置における自己ミラーリング方法。 - 前記代替処理実行ステップは、前記目標トラックのデータの読み出しのリトライに成功しても、その際のリトライ回数が前記第1のリトライ回数より少ない予め定められた第2のリトライ回数を超えている場合、または前記目標トラックのデータの読み出しのリトライに失敗し、且つ前記別のトラックからデータを読み出すステップで正しくデータが読み出せた場合、または前記別トラックのデータの読み出しのリトライに成功した場合に、対応する正しく読み出されたデータを用いて前記代替処理を実行することを特徴とする請求項1記載のディスク記憶装置における自己ミラーリング方法。
- ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータを備え、前記ディスク媒体の前記各ディスク面のユーザ領域が当該ディスク媒体の半径方向にシリンダ数が同一の第1及び第2のユーザ領域に分割されたディスク記憶装置における自己ミラーリング方法であって、
前記第1のユーザ領域内のトラックを目標トラックとして指定する1つのライトコマンドに対し、当該ライトコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面に対応して設けられた前記ヘッドを用いて、前記目標トラックにデータを書き込むステップと、
前記目標トラックが存在する前記ディスク面上の前記第2のユーザ領域内の、前記目標トラックと相対シリンダ位置が同一の別のトラックに、前記目標トラックに書き込んだのと同一のデータを書き込むステップと、
前記第1のユーザ領域内のトラックを目標トラックとして指定する1つのリードコマンドに対し、前記目標トラック、または当該目標トラックが存在する前記ディスク面上の前記第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックである第1のトラックのデータを読み出すステップと、
前記第1のトラックのデータを読み出すステップでリードエラーが発生した場合、前記目標トラックまたは前記別のトラックのうちの残りのトラックである第2のトラックのデータを読み出すステップと、
前記第2のトラックのデータを読み出すステップでリードエラーが発生した場合、当該第2のトラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行するステップと、
前記第2のトラックのデータを読み出すステップでリードエラーが発生した場合、前記第1のトラックのデータの読み出しのリトライを、前記第1のリトライ回数を上限に実行するステップと、
少なくとも、前記第1のトラックのデータの読み出しのリトライまたは前記第2のトラックのデータの読み出しのリトライの結果に応じて、前記第1または第2のトラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証するステップと、
前記検証ステップでの検証結果に応じて、前記目標トラックまたは前記別トラックのデータのうち正しく読み出されたデータを、前記目標トラックが存在する前記第1のユーザ領域に対して一定の位置関係を保って同一ディスク面上に確保された第1の代替領域内と、前記別のトラックが存在する前記第2のユーザ領域に対して、前記第1のユーザ領域に対する前記第1の代替領域の位置関係と同一の位置関係を保って同一ディスク面上に確保された第2の代替領域内の、それぞれ対応する代替トラックに記録する代替処理を実行するステップと
を具備することを特徴とするディスク記憶装置における自己ミラーリング方法。 - 前記代替処理実行ステップは、
前記第1のトラックのデータの読み出しのリトライに成功しても、その際のリトライ回数が前記第1のリトライ回数より少ない予め定められた第2のリトライ回数を超えているか、もしくは前記第2のトラックのデータの読み出しのリトライに成功しても、その際のリトライ回数が前記第2のリトライ回数を超えている場合、
または、前記第1のトラックのデータの読み出しのリトライに失敗した場合で、且つ第2のトラックのデータを読み出すステップで正しくデータが読み出せた場合、もしくは前記第2のトラックのデータの読み出しのリトライに成功した場合に、
対応する正しく読み出されたデータを用いて前記代替処理を実行することを特徴とする請求項3記載のディスク記憶装置における自己ミラーリング方法。 - 前記ディスク媒体の前記各ディスク面は当該ディスク媒体の半径方向に、それぞれシリンダ内のセクタ数が異なる複数のゾーンに分割されており、前記各ゾーンは、それぞれ前記第1及び第2のユーザ領域に分割されていることを特徴とする請求項3記載のディスク記憶装置における自己ミラーリング方法。
- 各ディスク面の第1のシリンダアドレス範囲にユーザ領域が、確保されると共に、第2のシリンダアドレス範囲に代替領域が確保されたディスク媒体と、
前記ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータと、
1つのライトコマンドに対し、当該ライトコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面及び前記ディスク媒体のもう一方のディスク面にそれぞれ対応して設けられた前記各ヘッドを用いて、前記目標トラック及び当該目標トラックとシリンダ位置が同一の別のトラックに、同一データを同時に書き込む手段と、
1つのリードコマンドに対し、当該リードコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面に対応して設けられた前記ヘッドを用いて当該目標トラックのデータを読み出す目標トラックデータ読み出し手段と、
前記目標トラックデータ読み出し手段によるデータ読み出しでリードエラーが発生した場合、前記ディスク媒体の前記目標トラックが存在するディスク面とは異なるもう一方のディスク面に対応して設けられた前記ヘッドを用いて、前記目標トラックとシリンダ位置が同一の別のトラックからデータを読み出す別トラックデータ読み出し手段と、
前記別トラックデータ読み出し手段によるデータ読み出し後に、前記目標トラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行する第1のリトライ手段と、
前記第1のリトライ手段によるリトライに失敗し、且つ前記別トラックデータ読み出し手段によるデータ読み出しでリードエラーが発生した場合、前記別トラックのデータの読み出しのリトライを、前記第1のリトライ回数を上限に実行する第2のリトライ手段と、
少なくとも、前記第1または第2のリトライ手段によるリトライの結果に応じて、前記目標トラックまたは前記別トラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証する検証手段と、
前記検証手段による検証結果に応じて、前記目標トラックまたは前記別トラックのデータのうち正しく読み出されたデータを、前記ディスク媒体の各データ面にそれぞれ確保された、前記代替領域内の対応する代替トラックに記録する代替処理を実行する代替処理手段と
を具備することを特徴とするディスク記憶装置。 - 各ディスク面にシリンダ数が同一の第1及び第2のユーザ領域が確保されると共に、前記第1及び第2のユーザ領域に対してそれぞれ一定の位置関係を保って第1及び第2の代替領域が確保されたディスク媒体と、
前記ディスク媒体の各ディスク面に対応してそれぞれ設けられるヘッドを前記ディスク媒体の半径方向に移動可能なように支持するアクチュエータと、
前記第1のユーザ領域内のトラックを目標トラックとして指定する1つのライトコマンドに対し、当該ライトコマンドで指定される前記ディスク媒体の目標トラックが存在するディスク面に対応して設けられた前記ヘッドを用いて、前記目標トラックにデータを書き込むと共に、前記目標トラックが存在する前記ディスク面上の前記第2のユーザ領域内の、前記目標トラックと相対シリンダ位置が同一の別のトラックに、前記目標トラックに書き込んだのと同一のデータを書き込む書き込む手段と、
前記第1のユーザ領域内のトラックを目標トラックとして指定する1つのリードコマンドに対し、前記目標トラック、または当該目標トラックが存在する前記ディスク面上の前記第2のユーザ領域内の、当該目標トラックと相対シリンダ位置が同一の別のトラックのうち、現在のヘッド位置に近いトラックである第1のトラックのデータを読み出す第1のトラックデータ読み出し手段と、
前記第1のトラックデータ読み出し手段によるデータ読み出しでリードエラーが発生した場合、前記目標トラックまたは前記別のトラックのうちの残りのトラックである第2のトラックのデータを読み出す第2のトラックデータ読み出し手段と、
前記第2のトラックデータ読み出し手段によるデータ読み出しでリードエラーが発生した場合、前記第2のトラックのデータの読み出しのリトライを、予め定められた第1のリトライ回数を上限に実行する第1のリトライ手段と、
前記第2のトラックデータ読み出し手段によるデータ読み出しでリードエラーが発生した場合、前記第1のトラックのデータの読み出しのリトライを、前記第1のリトライ回数を上限に実行する第2のリトライ手段と、
少なくとも、前記第1または第2のリトライ手段によるリトライの結果に応じて、前記第1または第2のトラックのデータが現在回復不能なデータまたは回復不能となる可能性のあるデータであるか否かを検証する検証手段と、
前記検証手段による検証結果に応じて、前記目標トラックまたは前記別トラックのデータのうち正しく読み出されたデータを、前記目標トラックが存在する前記第1のユーザ領域に対応する前記第1の代替領域内と、前記別のトラックが存在する前記第2のユーザ領域に対応する前記第2の代替領域内の、それぞれ対応する代替トラックに記録する代替処理を実行する代替処理手段と
を具備することを特徴とするディスク記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002069144A JP3590390B2 (ja) | 2002-03-13 | 2002-03-13 | ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002069144A JP3590390B2 (ja) | 2002-03-13 | 2002-03-13 | ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003271318A JP2003271318A (ja) | 2003-09-26 |
JP3590390B2 true JP3590390B2 (ja) | 2004-11-17 |
Family
ID=29200076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002069144A Expired - Fee Related JP3590390B2 (ja) | 2002-03-13 | 2002-03-13 | ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3590390B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405615B2 (en) | 2013-08-19 | 2016-08-02 | Samsung Electronics Co., Ltd. | Method of operating nonvolatile memory device comprising resistance material |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873782B2 (en) | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
CA2590875C (en) | 2004-11-05 | 2011-09-13 | Data Robotics Incorporated | Storage system condition indicator and method |
US7502908B2 (en) * | 2006-05-04 | 2009-03-10 | International Business Machines Corporation | Method for providing an address format compatible with different addressing formats used for addressing different sized address spaces |
JP2008305510A (ja) * | 2007-06-08 | 2008-12-18 | Sony Corp | 光ディスク記録装置及びデータ記録方法、光ディスク記録制御装置及びデータ記録制御方法、光ディスク再生装置及びデータ再生方法、光ディスク再生制御装置及びデータ再生制御方法並びに光ディスク |
JP7080843B2 (ja) * | 2019-03-19 | 2022-06-06 | 株式会社東芝 | 磁気ディスク装置 |
-
2002
- 2002-03-13 JP JP2002069144A patent/JP3590390B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405615B2 (en) | 2013-08-19 | 2016-08-02 | Samsung Electronics Co., Ltd. | Method of operating nonvolatile memory device comprising resistance material |
Also Published As
Publication number | Publication date |
---|---|
JP2003271318A (ja) | 2003-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003141822A (ja) | データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法 | |
US8131920B2 (en) | Method and system for dynamically allocating read and write sequence randomizer | |
JPH0773602A (ja) | 光ディスク装置 | |
JPH0423273A (ja) | 光ディスク記録再生装置 | |
CN1314046C (zh) | 存储控制器、存储设备和检验擦除校正功能的方法 | |
KR19980020110A (ko) | 하드 디스크 드라이브의 데이타 어드레스 마크구성 및 처리방법 | |
JP3865723B2 (ja) | ハードディスクドライブにデータを記録する方法及びその制御装置 | |
US5285436A (en) | Method of avoiding medium defects in record/reproduce apparatus | |
JP3645049B2 (ja) | 直接アクセス記憶装置における読取り動作、書込み動作およびシーク動作用のサーボ・アドレス装置および位置決め方法 | |
US6493160B1 (en) | Pseudo raid implementation within a single disk drive | |
JP3590390B2 (ja) | ディスク記憶装置における自己ミラーリング方法及び同方法を適用するディスク記憶装置 | |
JPH08255432A (ja) | 記録再生装置及び交代処理方法 | |
KR100268096B1 (ko) | 직접 액세스 저장 장치에서 에러 정정 코드와 함께 예정된 정보를 저장하기 위한 방법 및 에러 정정 코드 장치 | |
US7433149B1 (en) | Media surface with servo data in customer data region | |
US6941488B2 (en) | Retrieval of a single complete copy from multiple stored copies of information | |
US7911725B2 (en) | Hard disk, control unit for a disk device, and method for controlling a disk device | |
JP3910736B2 (ja) | ディスク記憶装置及び同装置におけるサーボセクタアドレスエラー検出方法 | |
US20020060874A1 (en) | Method and apparatus to reduce retry redundancy during read operations | |
JPH10275429A (ja) | ディスク装置及び同装置におけるライトリトライ制御方法 | |
JP3803209B2 (ja) | 回転形記憶装置の制御方法および回転形記憶装置 | |
JP3754199B2 (ja) | ディスク記録再生装置及び同装置に適用するエラー処理方法 | |
CN115048038A (zh) | 磁盘装置 | |
JP2616097B2 (ja) | 情報記録再生装置 | |
JPS61242371A (ja) | 情報記録再生装置 | |
JP2004095127A (ja) | ディスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040812 |
|
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: 20040817 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040819 |
|
LAPS | Cancellation because of no payment of annual fees |