図1は、本発明になる記憶装置の第1実施例の基本構成を示す図である。記憶装置の第1実施例は、本発明になるデータリード方法の第1実施例を採用する。本実施例では、本発明が光ディスク装置に適用されている。
図1に示す光ディスク装置は、大略MPU1、DRAM2、不揮発性メモリ3、ディジタルシグナルプロセッサ(DSP)4、光ディスクコントローラ(ODC)5、バス6、ドライバ7、ポジショナ8、レンズアクチュエータ9、光ディスク11を回転するスピンドルモータ10、レーザダイオード(LD)ユニット12、ライトLSI回路13、リードLSI回路14、バス15及び温度センサ16からなる。MPU1、DRAM2、不揮発性メモリ3、DSP4及びODC5は、バス6により接続されている。又、ODC5は、上位装置(図示せず)との間でコマンド及びデータのやり取りを行う上位インタフェース(I/F、図示せず)に接続されている。他方、ODC5、バス6、ライトLSI回路13及びリードLSI回路14は、バス15により接続されている。
MPU1は、光ディスク装置の全体的な制御を行う。DRAM2は、MPU1とODC5とで共用され、ワークアリアを提供するバッファメモリを構成する。不揮発性メモリ3は、例えばROMからなり、MPU1が実行するプログラム等を格納する。DSP4は、アナログ・ディジタル変換及びディジタルアナログ変換を含む各種ディジタル処理を行う。MPU1は、DSP4を経由して、ドライバ7によりスピンドルモータ10を制御する。光ディスク11の記録フォーマットが例えばゾーンCAVの場合、スピンドルモータ10は一定速度で回転される。ODC5は、データリード及びデータライトに必要な処理を行う。
LDユニット12は、レーザダイオード(LD)とモニタ用ディテクタからなる周知の構成を有する。LDユニット12により検出されたトラッキングエラー信号(TES)及びフォーカスエラー信号(FES)は、DSP4に供給される。DSP4は、TESに基いてトラッキング制御信号をドライバ7を介してポジショナ8に供給し、トラッキングサーボを行う。又、DSP4は、FESに基いてフォーカス制御信号をドライバ7を介してレンズアクチュエータ9に供給し、フォーカスサーボを行う。
ODC5に対するライト系に設けられたライトLSI回路13は、ライト変調部及びLD制御部からなる周知の構成を有し、データライト時には、ODC5及びバス15を介して得られるライトクロック及びライトデータに基いてLDユニット12内のLDにLD駆動信号を供給する。ライト変調部は、ライトデータをピットポジションモジュレーション(PPM)記録又はパルスウィドスモジュレーション(PWM)記録のデータ形式に変換する。他方、ODC5に対するリード系に設けられたリードLSI回路14は、リード復調部及び周波数シンセサイザからなる周知の構成を有し、データリード時にはLDユニット12内のモニタ用ディテクタからの検出信号が供給される。ライトLSI回路14は、検出信号からリードクロック及びリードデータを生成してバス15を介してODC5に供給する。この際、リードLSI回路14内のリード復調部では、リードされたPPMデータ又はPWMデータが、元のNRZデータに復調される。
後述するように、リードLSI回路14からのリードデータは、ODC5内で復号化処理及び誤り検出及び訂正処理を施され、バス6及びDRAM2を経由して上位I/Fから上位装置に転送される。他方、ライトデータは、ODC5内で符号化処理を施され、バス15を介してライトLSI回路13に供給される。
尚、MPU1に対しては、DSP4を経由して温度センサ16からの検出信号が供給されている。従って、MPU12は、温度センサ16で検出された光ディスク装置内の環境温度に基いて、LDユニット12内のLDの発光パワーを周知の方法で、リード、ライト及びイレーズについて夫々最適値に制御することができる。
本実施例では、ODC5の動作に特徴がある。従って、光ディスク装置の基本構成は、図1に示すものに限定されず、各種周知の基本構成を用いることができることは言うまでもない。
図2は、図1に示すODC5の構成を示すブロック図である。同図に示すODC5は、大略MPUインタフェースユニット51、内部プロセッサ52、フォーマッタエンコーダ・デコーダ53、ECC処理部54、誤り訂正ユニット55、ATAコントローラ56、バス57及びDRAMユニット58からなる。ECC処理部54は、ECCシンドロームジェネレータ54−1とECCシンドロームバッファ54−2とからなる。又、DRAMユニット58は、DRAMコントローラ48−1とバッファマネージャ58−2とからなる。MPUインタフェースユニット51、内部プロセッサ52、フォーマッタエンコーダ・デコーダ53、ATAコントローラ56及びDRAMユニット58は、バス57により接続されている。
MPUインタフェースユニット51は、MPUインタフェース及びバス6を介してMPU1に接続されている。内部プロセッサ52は、ODC5内の各部を制御する。フォーマッタエンコーダ・デコーダ53は、ライトデータの符号化及びリードデータの復号化を行う。フォーマッタエンコーダ・デコーダ53は、ライトクロック及びライトデータをバス15を介してライトLSI回路13に供給すると共に、リードLSI回路14からのリードクロック及びリードデータをバス15を介して供給される。
データライト時には、フォーマッタエンコーダ・デコーダ53は、上位装置からのNRZライトデータを光ディスク11のセクタ単位に分割して記録フォーマットを生成する。又、ECC処理部54は、セクタライトデータ単位にECCを生成してNRZライトデータに付加すると共に、必要に応じて巡回冗長検査(CRC)符号を生成して付加する。ECCはECCシンドロームジェネレータ54−1により生成され、ECCシンドロームバッファ54−2に格納される。更に、ECC処理部54は、ECCの符号化が済んだセクタデータを例えば1−7ランレングスリミテッド(RLL)符号に変換する。
データリード時には、ECC処理部54は、リードLSI回路14からのリードデータ(セクタデータ)に対して1−7RLLの逆変換を行い、ECC処理部54でCRCを行った後に、誤り訂正ユニット55においてECCを用いた誤り検出及び誤り訂正を行う。更に、フォーマッタエンコーダ・デコーダ53では、セクタ単位のNRZデータを連結してNRZリードデータのストリームとしてリードデータを上位装置へ転送する。
ATAコントローラ56は、上位I/Fを介した上位装置とのコマンド及びデータのやり取りを制御する。DRAMユニット58は、DRAMインタフェース及びバス6を介してDRAM2に接続されている。DRAMコントローラ56−1は、DRAM2へのアクセスを制御し、バッファマネージャ58−2は、DRAM2内に格納されたデータの管理を行う。
図3は、多数決処理を説明するための第1実施例の要部を示すブロック図である。同図中、図1と同一部分には同一符号を付し、その説明は省略する。
データリード時に、MPU1は、例えば光ディスク11上の同じセクタ領域から同じデータを複数回リードするような制御を行う。例えばn回リードを行ってリードLSI回路14を介して得られたリードデータRD0〜RDn-1は、バッファマネージャ58−2の管理下及びDRAMコントローラの制御下で、図3に示すようにDRAM2内のバッファ番号0〜n-1の領域に格納される。MPU1内の多数決計算部1−1は、DRAM2に格納されたリードデータRD0〜RDn-1を1又は複数ビットの単位で比較して、比較結果に基き各単位について最も頻度の高いデータ値からなるリードデータを生成する多数決の計算(以下、多数決処理と言う)を行う。多数決処理後のリードデータMRDは、バッファマネージャ58−2の管理下及びDRAMコントローラの制御下で、DRAM2内のバッファ番号nの領域に格納される。ODC5内では、多数決処理後のリードデータにMRD対してECC処理部54及び誤り訂正ユニット55による誤り検出及び訂正処理を行い、誤り訂正されたリードデータが上位I/Fを介して上位装置へ転送される。
図4は、比較の単位が1ビットの場合の多数決リード処理を説明する図である。同図では、リードデータRD0〜RDn-1の各々は、バイトByte0〜ByteXからなり、各バイトByte0〜ByteXは、ビットbit0〜bit7からなるものとする。リードデータRD0〜RDn-1は、上記の如く、DRAM2内のバッファ番号0〜n-1の領域に格納される。従って、比較の単位が1ビットの場合、同図に示すように、各バッファ番号0〜n-1の先頭ビットbit0から順に最終ビットbit7まで多数を占める方の論理値「0」又は「1」を採用する多数決処理を先頭バイトByte0について行い、各多数決ビットをバッファ番号nに格納する。このような多数決処理は、次のバイトByte1から最終バイトByteXまで、各リードデータRD0〜RDn-1に対して同様に行われる。
図5は、多数決リード処理を説明するフローチャートである。多数決リード処理が開始されると、ステップS1は、リード回数nを設定すると共に、DRAM2内のバッファ番号buffをbuff=0に設定する。ステップS2は、バッファ番号buffで示されるDRAM2内の領域にリードデータを書き込む。ステップS3は、バッファ番号buffを1だけインクリメントし、ステップS4は、buff≧nであるか否かを判定することで、データリードがリード回数nだけ終了したか否かを判定する。ステップS4の判定結果がNOであると、処理はステップS2へ戻る。他方、ステップS4の判定結果がYESであると、比較の単位が1ビットの場合であれば図4と共に説明した多数決処理が行われる。ステップS5の後、ステップS6は、多数決処理後のリードデータに対して誤り訂正ユニット55において誤り検出及び訂正処理を行い、多数決リード処理は終了する。
図6は、比較の単位が1ビットの場合の多数決処理、即ち、ステップS5の処理を説明するフローチャートである。同図中、多数決処理が開始されると、ステップS11は、光ディスク11上の1セクタのバイト数lenを設定すると共に、リード回数nを設定する。ステップS12は、MPU1内の比較位置カウンタ(バイト)cbyteをcbyte=0に設定し、ステップS13は、MPU1内の比較位置カウンタ(ビット)cbitをcbit=0に設定する。又、ステップS14は、バッファ番号buffをbuff=0に設定すると共に、ビット内容が「1」の個数b1をb1=0に設定する。
ステップS15は、adr+buff×len+cbyteで示されるDRAM2のアドレスのリードデータをワーク変数に読み込む。ステップS16は、比較位置カウンタcbitで示されるビット内容が「1」であるか否かを判定し、判定結果がNOであると、処理は後述するステップS18−1又はS18−2へ進む。他方、ステップS16の判定結果がYESであると、ステップS17は、ビット内容が「1」の個数b1を「1」だけインクリメントし、処理はステップS18−1又はS18−2へ進む。
ステップS18−1は、過半数以上の比較結果が同一であり、それ以降の処理をスキップする場合に行われる。つまり、ステップS18−1は、b1≧n/2又は(buff-b1)≧n/2であるか否かを判定する。他方、ステップS18−2は、2回以上同一の比較結果が得られると、それ以降の処理をスキップする場合に行われる。従って、求められる処理速度に応じて、ステップS18−1又はS18−2の一方を選択すれば良い。ステップS18−1又はS18−2の判定結果がYESであると、処理は後述するステップS21へ進む。又、ステップS18−1又はS18−2の判定結果がNOであると、ステップS19は、バッファ番号buffを「1」だけインクリメントし、ステップS20は、buff≧nであるか否かを判定することで、データリードがリード回数nだけ終了したか否かを判定する。ステップS20の判定結果がNOであると、処理はステップS15へ戻る。他方、ステップS20の判定結果がYESであると、処理はステップS21へ進む。
ステップS21は、多数決処理後のリードデータの格納領域(バッファ番号buff=n)の比較位置カウンタ(ビット)cbitで示される位置のビットを比較結果の多数を占めた方の論理値「0」又は「1」に設定する。又、ステップS22は、比較位置カウンタ(ビット)cbitを「1」だけインクリメントし、ステップS23は、cbit≧8であるか否かを判定することで、8ビット分の処理が終了したか否かを判定する。ステップS23の判定結果がNOであると、処理はステップS14へ戻る。
ステップS24は、比較位置カウンタ(バイト)cbyteを「1」だけインクリメントし、ステップS25は、cbyte≧lenであるか否かを判定することで、1セクタ分の処理が終了したか否かを判定する。ステップS25の判定結果がNOであると、処理はステップS13へ戻る。他方、ステップS25の判定結果がYESであると、多数決処理は終了する。
図7は、比較の単位が4ビットの場合の多数決リード処理を説明する図である。同図では、図4の場合と同様に、リードデータRD0〜RDn-1の各々は、バイトByte0〜ByteXからなり、各バイトByte0〜ByteXは、ビットbit0〜bit7からなるものとする。リードデータRD0〜RDn-1は、上記の如く、DRAM2内のバッファ番号0〜n-1の領域に格納される。従って、比較の単位が4ビットの場合、同図に示すように、各バッファ番号0〜n-1の先頭4ビットbit0〜bit3から順に最終4ビットbit4〜bit7まで多数を占める値「0」〜「F」を採用する多数決処理を先頭バイトByte0について行い、各多数決ビットをバッファ番号nに格納する。このような多数決処理は、次のバイトByte1から最終バイトByteXまで、各リードデータRD0〜RDn-1に対して同様に行われる。
図8は、比較の単位が4ビットの場合の多数決処理、即ち、ステップS5の処理を説明するフローチャートである。同図中、図6と同一ステップには同一符号を付し、その説明は省略する。
図8において、ステップS13−1は、比較位置カウンタ(4ビット)cbitをcbit=0に設定する。ステップS14−1は、バッファ番号buffをbuff=0に設定すると共に、4ビットの内容(0〜F)の個数を表す配列b[0〜F]をb[0〜F]=0に設定する。ステップS16−1は、比較位置カウンタ(4ビット)cbitがcbit=0の場合は下位バイトの値、cbit=1の場合は上位バイトの値を引数とする配列b[0〜F]の値を「1」だけインクリメントする。例えば、比較位置カウンタcbitがcbit=0、ワーク変数値=DBの場合、b[B]=b[B]+1とする。又、ステップS18−1aは、過半数以上の比較結果が同一であり、それ以降の処理をスキップする場合に行われる。この場合、ステップS18−1aは、b[0〜F]≧n/2であるか否かを判定する。
ステップS21−1は、多数決処理後のリードデータの格納領域(バッファ番号buff=n)の比較位置カウンタ(4ビット)cbitで示される位置の4ビットの内容、即ち、上位バイト又は下位バイトを、b[0]〜b[F]の各値の中で最も多い配列の引数とする。例えば、b[0]=1,b[1]=0,b[5]=10,...,b[F]=0の場合、多数決の結果は「5」となる。又、ステップS22−1は、比較位置カウンタ(4ビット)cbitを「1」だけインクリメントし、ステップS23−1は、cbit≧2であるか否かを判定することで、8ビット分の処理が終了したか否かを判定する。その他の処理は、図6の場合と同じである。
図9は、比較の単位が1バイトの場合の多数決リード処理を説明する図である。同図では、リードデータRD0〜RDn-1の各々は、バイトByte0〜ByteXからなるものとする。リードデータRD0〜RDn-1は、上記の如く、DRAM2内のバッファ番号0〜n-1の領域に格納される。従って、比較の単位が1バイトの場合、同図に示すように、各バッファ番号0〜n-1の先頭1バイトByte0から順に多数を占める値「0」〜「FF」を採用する多数決処理を行い、各多数決ビットをバッファ番号nに格納する。このような多数決処理は、次のバイトByte1から最終バイトByteXまで、各リードデータRD0〜RDn-1に対して同様に行われる。
図10は、比較の単位が1バイトの場合の多数決処理、即ち、ステップS5の処理を説明するフローチャートである。同図中、図8と同一ステップには同一符号を付し、その説明は省略する。
図10において、ステップS14−2は、バッファ番号buffをbuff=0に設定すると共に、1バイトの内容(0〜FF)の個数を表す配列b[0〜FF]をb[0〜FF]=0に設定する。ステップS16−2は、ワーク変数の値を引数とする配列b[0〜FF]の値を「1」だけインクリメントする。例えば、ワーク変数値=DBの場合、b[DB]=b[DB]+1とする。又、ステップS18−1bは、過半数以上の比較結果が同一であり、それ以降の処理をスキップする場合に行われる。この場合、ステップS18−1bは、b[0〜FF]≧n/2であるか否かを判定する。
ステップS21−2は、多数決処理後のリードデータの格納領域(バッファ番号buff=n)の比較位置カウンタ(1バイト)cbyteで示される位置の1バイトの内容を、b[0]〜b[FF]の各値の中で最も多い配列の引数とする。例えば、b[0]=1,b[1]=0,b[5]=10,...,b[FF]=0の場合、多数決の結果は「5」となる。又、ステップS22−2は、比較位置カウンタ(1バイト)cbyteを「1」だけインクリメントし、処理はステップS25へ進む。その他の処理は、図8の場合と同じである。
次に、本発明になるデータリード方法の第2実施例を説明する。データリード方法の第2実施例は、本発明になる記憶装置の第2実施例で採用される。記憶装置の第2実施例の基本構成は、上記記憶装置の第1実施例と同じで良いため、その図示及び説明は省略する。又、後述する本発明になるデータリード方法の第3実施例以降の実施例においても、記憶装置の第1実施例と同じ基本構成が使用可能であるため、記憶装置の説明は省略する。
データリード方法の第2実施例では、多数決処理において連続して比較結果が同一であると次回の比較の単位(比較ビット数)を増加させ、連続して比較結果が異なると次回の比較ビット数を減少させる。多数決処理における比較ビット数は、大きい程処理回数が少なくなるので、本実施例によれば処理速度を向上させることができる。
図11は、データリード方法の第2実施例における多数決処理を説明するフローチャートである。同図中、図6と同一部分には同一符号を付し、その説明は省略する。本実施例では、比較ビット数は、説明の便宜上、8ビット(1バイト)単位で増減させるものとする。
図11において、ステップS12−3は、MPU1内の比較位置カウンタ(バイト)cbyteをcbyte=0に設定すると共に、比較バイト数cmpbyteをcmpbyte=1に設定する。ステップS14−3は、バッファ番号buffをbuff=0に設定すると共に、比較バイト数cmpbyte分の内容(0〜cmpbyte×0x100-1)の個数を表す配列b[0〜cmpbyte×0x100-1]を「0」に設定する。
ステップS15−3は、多数決処理後のリードデータの格納領域(バッファ番号buff=n)の比較位置カウンタ(1バイト)cbyteで示される位置の比較ビットバイト数cmpbyte分の内容を、b[0]〜b[cmpbyte×0x100-1]の各値の中で最も多い配列の引数とする。例えば、b[0]=1,b[1]=0,b[7D3B]=10,...,b[cmpbyte×0x100-1]=0の場合、多数決の結果は「7D3B」となる。又、ステップS22−3は、比較位置カウンタ(1バイト)cbyteを比較バイト数cmpbyteだけ増加させ、処理はステップS31へ進む。
ステップS31は、今回の比較結果が前回と同一比較結果であるか否かを判定し、判定結果がYESであると、ステップS32は、比較バイト数cmpbyteを「1」だけインクリメントし、処理はステップS25へ進む。他方、ステップS31の判定結果がNOであると、ステップS33は、比較バイト数cmpbyteを「1」だけデクリメントし、処理はステップS25へ進む。ステップS25は、cbyte≧lenであるか否かを判定することで、1セクタ分の処理が終了したか否かを判定し、判定結果がYESであると、多数決処理は終了する。
次に、本発明になるデータリード方法の第3実施例を説明する。データリード方法の第3実施例では、リトライパラメータを変更してもリトライ処理が不成功の場合に多数決リード処理を行う。このため、本実施例によれば、リトライ処理では救済できないリードエラーも救済することができる。
図12は、データリード方法の第3実施例における処理を説明するフローチャートである。同図において、リード処理が開始されると、ステップS41は、データリード処理を実行し、ステップS42は、リードエラーが発生したか否かを判定する。ステップS42の判定結果がNOであると、リード処理は正常終了する。他方、ステップS42の判定結果がYESであると、ステップS43はリードリトライ処理を開始する。
ステップS44は、フォーカスオフセット量FOを設定値αだけ増加させ、ステップS45は、データリード処理を実行する。ステップS46は、リードエラーが発生したか否かを判定する。ステップS46の判定結果がNOであると、リード処理は正常終了する。他方、ステップS46の判定結果がYESであると、ステップS47は、フォーカスオフセット量FOを設定値αだけ減少させ、ステップS48は、データリード処理を実行する。ステップS49は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。
ステップS49の判定結果がYESであると、ステップS50は、上記第1実施例で説明した多数決リード処理のいずれかを実行する。又、ステップS51は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。ステップS51の判定結果がYESであると、リード処理は異常終了する。
尚、本実施例では、リトライパラメータとしてフォーカスオフセット量FOを変更しているが、リトライパラメータはフォーカスオフセット量FOに限定されるものではなく、又、変更するリトライパラメータは複数であっても良いことは言うまでもない。
次に、本発明になるデータリード方法の第4実施例を説明する。データリード方法の第4実施例では、リトライ処理が不成功の場合に多数決リード処理を行うと共に、多数決リード処理における比較ビット数をリードエラーの発生に応じて順次増加させる。このため、本実施例によれば、リトライ処理では救済できないリードエラーもより確実に救済することができる。
図13は、データリード方法の第4実施例における処理を説明するフローチャートである。同図中、図12と同一ステップには同一符号を付し、その説明は省略する。
図13において、ステップS49の判定結果がYESであると、ステップS55は、図6と共に説明した比較ビット数が1の場合の多数決リード処理を実行する。ステップS51−1は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。他方、ステップS51−1の判定結果がYESであると、ステップS56は、図8と共に説明した比較ビット数が4の場合の多数決リード処理を実行する。ステップS51−2は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。他方、ステップS51−2の判定結果がYESであると、ステップS57は、図10と共に説明した比較ビット数が8、即ち、1バイトの場合多数決リード処理を実行する。ステップS51−3は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。他方、ステップS51−3の判定結果がYESであると、リード処理は異常終了する。
次に、本発明になるデータリード方法の第5実施例を説明する。データリード方法の第5実施例では、リトライ処理が不成功の場合に多数決リード処理を行うと共に、多数決リード処理後にもリードエラーが発生するとリトライパラメータを変更する。このため、本実施例によれば、リトライ処理では救済できないリードエラーもより確実に救済することができる。
図14は、データリード方法の第5実施例における処理を説明するフローチャートである。同図中、図12と同一ステップには同一符号を付し、その説明は省略する。
図14において、ステップS44の後、ステップS50−1は、上記第1実施例におけるいずれかの多数決リード処理を行う。又、ステップS51−4は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。他方、ステップS51−4の判定結果がYESであると、ステップS47においてフォーカスオフセット量FOを設定値αだけ減少させた後に、ステップS50−2において上記第1実施例におけるいずれかの多数決リード処理を行う。そして、ステップS51−5は、リードエラーが発生したか否かを判定し、判定結果がNOであると、リード処理は正常終了する。他方、ステップS51−5の判定結果がYESであると、リード処理は異常終了する。
次に、本発明になるデータリード方法の第6実施例を説明する。データリード方法の第6実施例では、成功率の高いリトライ処理と多数決リード処理の組み合わせを優先して行う。このため、本実施例によれば、リトライ処理のみでは救済できないリードエラーもより確実に救済することができる。
図15は、データリード方法の第6実施例における処理を説明するフローチャートである。同図中、図12及び図14と同一ステップには同一符号を付し、その説明は省略する。
図15において、ステップS42の判定結果がYESであると、ステップS61は、成功回数の多い方のリードリトライを選択する。フォーカスオフセット量FOを増加させて行うリードリトライ処理と多数決リード処理との組み合わせを行うリードリトライRR1の成功回数SN1の方が、フォーカスオフセット量FOを減少させて行うリードリトライ処理と多数決リード処理との組み合わせを行うリードリトライRR2の成功回数SN2より多い場合には、処理はステップS43へ進む。他方、成功回数SN2が成功回数SN1以上の場合には、処理はステップS47へ進む。
ステップS46の判定結果がNOであると、ステップS62は、成功回数SN1を「1」だけインクリメントし、リード処理は正常終了する。又、ステップS51の判定結果がNOであると、ステップS63は、成功回数SN2を「1」だけインクリメントし、リード処理は正常終了する。
次に、本発明になるデータリード方法の第7実施例を説明する。データリード方法の第7実施例では、ECCによるエラー訂正が失敗するリトライ処理と多数決リード処理の組み合わせを行う。例えば、データリード中にオフトラックが発生する場合、多数決リード処理中にもオフトラックが発生する可能性が高い。このように、オフトラックが発生している場合に多数決リードを行ってもあまり意味がないので、本実施例では、エラー訂正が失敗するようなリードデータの品質が悪い場合にのみ多数決リード処理を行う。このため、本実施例によれば、エラー訂正が失敗するリトライ処理では救済できないリードエラーもより確実に救済することができる。
図16は、データリード方法の第7実施例における処理を説明するフローチャートである。同図中、図12と同一ステップには同一符号を付し、その説明は省略する。
図16において、ステップS44の後、ステップS65は、前回のリード処理でエラー訂正が失敗したか否かを、後述する訂正エラーフラグFLGに基いて判定する。ステップS65の判定結果がNOであると、ステップS45でデータリード処理を行ってから処理がステップS46へ進む。他方、ステップS65の判定結果がYESであると、ステップS50で多数決リード処理を実行してから処理がステップS46へ進む。
又、ステップS46の判定結果がYESであると、ステップS67は、訂正エラーが発生したか否かを判定する。ステップS46又はステップS67の判定結果がNOであると、ステップS68は、フォーカスオフセット量FOを増加させて行うリードリトライ処理に対する訂正エラーフラグFLGをオフに(クリア)して、リード処理は正常終了する。他方、ステップS67の判定結果がYESであると、ステップS69は、フォーカスオフセット量FOを増加させて行うリードリトライ処理に対する訂正エラーフラグFLGをオンに(セット)して、リード処理は異常終了する。
尚、説明の便宜上、図16ではフォーカスオフセット量FOを増加させて行うリードリトライ処理に対する訂正エラーフラグFLGについてのみ示したが、同様の処理をフォーカスオフセット量FOを減少させて行うリードリトライ処理に対する訂正エラーフラグを用いて行っても良いことは、言うまでもない。
次に、本発明になるデータリード方法の第8実施例を説明する。データリード方法の第8実施例では、リードリトライ処理を行う直前のECCによるエラー訂正が失敗した場合に、直ちに多数決リード処理を行う。つまり、エラー訂正が失敗するようなリードデータの品質が悪い場合には、リトライ処理より多数決リード処理の方がリードエラーを救済できる確率が高いと判断して多数決リード処理を行う。このため、本実施例によれば、エラー訂正が失敗するリトライ処理では救済できないリードエラーを、より速く救済することができる。
図17は、データリード方法の第8実施例における処理を説明するフローチャートである。同図中、図12と同一ステップには同一符号を付し、その説明は省略する。
図17において、ステップS42の判定結果がYESであると、ステップS67は、訂正エラーが発生したか否かを判定し、判定結果がNOであると、処理はステップS43へ進む。他方、ステップS67の判定結果がYESであると、処理はステップS50へ進み、直ちに多数決リード処理が行われる。
次に、本発明になるデータリード方法の第9実施例を説明する。データリード方法の第9実施例では、リードリトライ処理を行う直前のECCによるエラー訂正が成功した場合には、多数決リード処理をリードリトライ処理と組み合わせて行わないようにしている。つまり、データリード中にオフトラックが発生する場合、多数決リード処理中にもオフトラックが発生する可能性が高い。このように、オフトラックが発生している場合に多数決リードを行ってもあまり意味がないので、本実施例では、リードリトライ処理を行う直前のエラー訂正が失敗するようなリードデータの品質が悪い場合にのみ多数決リード処理を行う。このため、本実施例によれば、無駄な多数決リード処理をスキップして、処理速度を向上させている。
図18は、データリード方法の第9実施例における処理を説明するフローチャートである。同図中、図12及び図15と同一ステップには同一符号を付し、その説明は省略する。
図18において、ステップS42の判定結果がYESであると、ステップS71は、エラー内容を記憶し、処理はステップS43へ進む。ステップS44の後、ステップS72は、記憶されたエラー内容から、前回訂正エラーが発生したか否かを判定する。ステップS72の判定結果がNOであると、ステップS45で通常のデータリード処理を実行して、処理はステップS46へ進む。他方、ステップS72の判定結果がYESであると、ステップS50−1で多数決リード処理を実行して、処理はステップS46へ進む。
又、ステップS47の後、ステップS73は、記憶されたエラー内容から、前回訂正エラーが発生したか否かを判定する。ステップS73の判定結果がNOであると、ステップS48で通常のデータリード処理を実行して、処理はステップS51へ進む。他方、ステップS73の判定結果がYESであると、ステップS50−2で多数決リード処理を実行して、処理はステップS51へ進む。
次に、本発明になるデータリード方法の第10実施例を説明する。データリード方法の第10実施例では、多数決リード処理で用いる比較ビット数を、エラー訂正を行った際のエラー救済性能が最も高い値となるビット数に設定する。これにより、エラー救済性能を最適化することができる。
図19は、データリード方法の第10実施例における処理を説明するフローチャートであり、比較ビット数選択処理を示す。同図において、比較ビット数選択処理が開始されると、ステップS81〜S83が、並行して行われる。ステップS81は、規定のテスト用データをライトするデータライト処理を行う。ステップS82は、LDユニット12内のLDのライトLDパワーを増加した状態でテスト用データをライトするデータライト処理を行う。又、ステップS83は、光ディスク11上の中心トラックと隣接トラックにテスト用データをライトするデータライト処理を行う。ステップS82は、データライト時にストレスをかけた状態を発生するために行われ、ステップS83は、隣接トラックにもデータをライトして隣接トラックからのクロストークを発生するために行われる。このようにストレス又はクロストークの発生を促すことで、比較ビット数の違いによるエラー救済性能の差がでやすくしている。
ステップS81〜S83の後、ステップS84及びステップS85が並行して行われる。ステップS84は、比較ビット数を1ビットとして、多数決リード処理を行う。又、ステップS85は、LDユニット12内のLDのリードLDパワーを増加した状態で、ステップS84と同様に比較ビット数を1ビットとして多数決リード処理を行う。ステップS85は、データリード時にストレスをかけた状態を発生するために行われる。
ステップS84及びS85の後、ステップS86は、ビット誤り率(BER)を計算して記憶する。
ステップS86の後、ステップS87及びステップS88が並行して行われる。ステップS87は、比較ビット数を4ビットとして、多数決リード処理を行う。又、ステップS88は、LDユニット12内のLDのリードLDパワーを増加した状態で、ステップS87と同様に比較ビット数を4ビットとして多数決リード処理を行う。ステップS88は、データリード時にストレスをかけた状態を発生するために行われる。
ステップS87及びS88の後、ステップS89は、BERを計算して記憶する。
ステップS89の後、ステップS90及びステップS91が並行して行われる。ステップS90は、比較ビット数を8ビット(1バイト)として、多数決リード処理を行う。又、ステップS91は、LDユニット12内のLDのリードLDパワーを増加した状態で、ステップS90と同様に比較ビット数を8ビット(1バイト)として多数決リード処理を行う。ステップS91は、データリード時にストレスをかけた状態を発生するために行われる。
ステップS90及びS91の後、ステップS92は、BERを計算して記憶する。
その後、比較ビット数を更に増加させる処理を行っても良く、最終的には、ステップS98が記憶されているBERの中で、最も良いBERが得られる最適比較ビット数を選択して記憶する。この最適比較ビット数は、次回行われる多数決リード処理で用いられる。
次に、本発明になるデータリード方法の第11実施例を説明する。データリード方法の第11実施例では、上記の如き比較ビット数選択処理を、メディア挿入時、即ち、光ディスク11が光ディスク装置に挿入された際に行う。
図20は、データリード方法の第11実施例における処理を説明するフローチャートであり、比較ビット数選択処理を行うタイミングを示す。同図において、光ディスク装置の電源がオンになると、ステップS101は、メディア、即ち、光ディスク11が光ディスク装置に挿入されたか否かを判定する。ステップS101の判定結果がYESになると、ステップS102〜S105が行われる。ステップS102はスピンドルモータ10の回転を開始し、ステップS103はLDユニット12内のLDをオンにし、ステップS104はフォーカスサーボをオンにし、ステップS105はトラッキングサーボをオンにする。ステップS106は、図19と共に説明した如き多数決ビット選択処理を行う。ステップS106の後、光ディスク装置の電源がオンにされた時と同様の処理が行われ、最終的には、ステップS109で光ディスク装置がライト/リード(W/R)処理を行うことが可能なレディー状態に制御される。
次に、本発明になるデータリード方法の第12実施例を説明する。データリード方法の第12実施例では、上記の如き比較ビット数選択処理を、光ディスク装置の動作が開始されてから規定時間経過後に行う。これにより、光ディスク装置の使用環境に応じた最適な比較ビット数を選択することができる。
図21は、データリード方法の第12実施例における処理を説明するフローチャートであり、比較ビット数選択処理を行うタイミングを示す。同図において、ステップS111は、リードコマンドが受信されたか否かを判定し、判定結果がYESであると、ステップS112は光ディスク装置の動作開始から規定時間が経過したか否かを判定する。ステップS112の判定結果がYESであると、ステップS113は、図19と共に説明した如き多数決ビット選択処理を行う。ステップS112の判定結果がNO、或いは、ステップS113の後、ステップS114は、リードコマンドを実行する。
次に、本発明になるデータリード方法の第13実施例を説明する。データリード方法の第13実施例では、上記の如き比較ビット数選択処理を、光ディスク装置へのアクセスが規定時間以上ない場合に行う。これにより、光ディスク装置の使用環境に応じた最適な比較ビット数を選択することができる。
図22は、データリード方法の第13実施例における処理を説明するフローチャートであり、比較ビット数選択処理を行うタイミングを示す。同図において、ステップS121は、コマンドが受信されたか否かを判定し、判定結果がYESであると、ステップS122は、受信したコマンドを実行する。他方、ステップS121の判定結果がNOであると、ステップS123は、最後に受信した最終コマンドから規定時間が経過したか否かを判定する。ステップS123の判定結果がYESであると、ステップS124は、図19と共に説明した如き多数決ビット選択処理を行う。
次に、本発明になるデータリード方法の第14実施例を説明する。データリード方法の第14実施例では、上記の如き比較ビット数選択処理を、規定回数以上リードリトライ処理が発生した場合に行う。これにより、光ディスク装置の使用環境に応じた最適な比較ビット数を選択することができる。
図23は、データリード方法の第14実施例における処理を説明するフローチャートであり、比較ビット数選択処理を行うタイミングを示す。同図中、図21と同一ステップには同一符号を付し、その説明は省略する。図23において、ステップS111の判定結果がYESであると、ステップS132は、光ディスク装置の動作開始から規定回数以上リードリトライ処理が発生したか否かを判定する。ステップS132の判定結果がYESであると、処理はステップS113へ進み、判定結果がNOであると、処理はステップS114へ進む。
次に、本発明になるデータリード方法の第15実施例を説明する。データリード方法の第15実施例では、上記の如き比較ビット数選択処理を、光ディスク装置の製造工程で行う。
図24は、データリード方法の第15実施例における処理を説明するフローチャートであり、比較ビット数選択処理を行うタイミングを示す。同図中、図20と同一ステップには同一符号を付し、その説明は省略する。図24において、ステップS105の後、ステップS141〜S145が行われる。ステップS141はサーボゲインを調整し、ステップS142は調整されたサーボゲインを不揮発性メモリ3に格納する。ステップS143は、図19と共に説明した如き多数決ビット数選択処理を行う。ステップS144は選択された比較ビット数を不揮発メモリ3に格納し、ステップS145は光ディスク11を光ディスク装置から排出する。
次に、本発明になるデータリード方法の第16実施例を説明する。データリード方法の第16実施例では、図24と共に説明した如く選択されて記憶された比較ビット数を用いて多数決リード処理を行う。
図25は、データリード方法の第16実施例における処理を説明するフローチャートであり、記憶されている比較ビット数を用いる処理示す。同図中、図21と同一ステップには同一符号を付し、その説明は省略する。図25において、ステップS111の判定結果がYESであると、ステップS151は、多数決リード処理であるか否かを判定する。ステップS141の判定結果がYESであると、ステップS152は、不揮発性メモリ3に多数決ビット数が記憶されているか否かを判定する。ステップS152の判定結果がYESであると、ステップS153は、記憶されている多数決ビット数を用いて多数決リード処理を実行する。ステップS152の判定結果がNOであると、ステップS154は、多数決ビットを指定せずに、多数決リード処理を実行する。又、ステップS151の判定結果がNOであると、ステップS155は、多数決リード処理を伴わない通常のリード処理を行う。
光ディスク装置の通常動作中に比較ビット数選択処理を行うと、上位装置から見た光ディスク装置の処理速度が遅くなる場合がある。しかし、本実施例のように、予め記憶されている多数決ビット数を用いて多数決リード処理を行うと、処理速度の低下を確実に防止することができる。
尚、比較ビット数選択処理を行うタイミングは任意のタイミングに設定可能であり、例えば、温度センサ16の出力検出信号に基いたタイミングに設定しても良い。この場合、前回の多数決リード処理を行った際の温度と、今回の多数決リード処理の際の温度との差、即ち、温度変化が規定値以上となった場合に、上記比較ビット数選択処理を行うようにしてもよい。
又、上記実施例では、本発明が光ディスク装置に適用されているが、これに限定されるものではない。本発明は、ハードディスクやフロッピィディスク等の磁気ディスクを取り扱う磁気ディスク装置や、テープ状やカード状等の各種光記録媒体や各種磁気記録媒体を取り扱う記憶装置に同様に適用可能である。
本発明は、以下に付記する発明をも包含するものである。
(付記1)
記録媒体上の同じ領域から同じデータを複数回リードするリードステップと、
複数回リードされたデータを1又は複数ビットの単位で比較して、比較結果に基き各単位について最も頻度の高いデータ値からなるリードデータを生成する生成ステップと、
前記リードデータに対して誤り検出及び訂正処理を行う訂正ステップとを含むことを特徴とする、データリード方法。
(付記2)
前記生成ステップは、前記単位を構成するビット数を変化させることを特徴とする、(付記1)記載のデータリード方法。
(付記3)
前記生成ステップは、前記単位を、比較結果が最も高い頻度で同じになるビット数に設定することを特徴とする、(付記2)記載のデータリード方法。
(付記4)
前記生成ステップは、任意のタイミングで前記単位を前記ビット数に設定することを特徴とする、(付記3)記載のデータリード方法。
(付記5)
データリードのリトライを行うリトライステップを更に含み、
前記生成ステップは、前記リトライが所定回数行われると、前記単位を前記ビット数に設定することを特徴とする、(付記3)記載のデータリード方法。
(付記6)
前記生成ステップは、比較結果が所定回数以上同じであると、その時点で各単位について最も頻度の高いデータ値からなるリードデータを生成することを特徴とする、(付記1)〜(付記5)のいずれか1項記載のデータリード方法。
(付記7)
前記生成ステップは、比較結果が所定回数以上同じであると、前記単位を構成するビット数を増加させることを特徴とする、(付記1)〜(付記5)のいずれか1項記載のデータリード方法。
(付記8)
前記生成ステップは、比較結果が所定回数以上異なると、前記単位を構成するビット数を減少させることを特徴とする、(付記1)〜(付記5)のいずれか1項記載のデータリード方法。
(付記9)
データリードのリトライを行うリトライステップを更に含み、
前記生成ステップは、前記リトライが規定回数不成功であると行われることを特徴とする、(付記1)〜(付記8)のいずれか1項記載のデータリード方法。
(付記10)
記録媒体上の同じ領域から同じデータを複数回リードするリード手段と、
複数回リードされたデータを1又は複数ビットの単位で比較して、比較結果に基き各単位について最も頻度の高いデータ値からなるリードデータを生成する生成手段と、
前記リードデータに対して誤り検出及び訂正処理を行う訂正手段とを備えたことを特徴とする、記憶装置。
(付記11)
前記生成手段は、前記単位を構成するビット数を変化させることを特徴とする、(付記10)記載の記憶装置。
(付記12)
前記生成手段は、前記単位を、比較結果が最も高い頻度で同じになるビット数に設定することを特徴とする、(付記11)記載の記憶装置。
(付記13)
前記生成手段は、任意のタイミングで前記単位を前記ビット数に設定することを特徴とする、(付記12)記載の記憶装置。
(付記14)
データリードのリトライを行うリトライ手段を更に備え、
前記生成手段は、前記リトライが所定回数行われると、前記単位を前記ビット数に設定することを特徴とする、(付記12)記載の記憶装置。
(付記15)
前記生成手段は、比較結果が所定回数以上同じであると、その時点で各単位について最も頻度の高いデータ値からなるリードデータを生成することを特徴とする、(付記10)〜(付記14)のいずれか1項記載の記憶装置。
(付記16)
前記生成手段は、比較結果が所定回数以上同じであると、前記単位を構成するビット数を増加させることを特徴とする、(付記10)〜(付記14)のいずれか1項記載の記憶装置。
(付記17)
前記生成手段は、比較結果が所定回数以上異なると、前記単位を構成するビット数を減少させることを特徴とする、(付記10)〜(付記14)のいずれか1項記載の記憶装置。
(付記18)
データリードのリトライを行うリトライ手段を更に備え、
前記生成手段は、前記リトライが規定回数不成功であると行われることを特徴とする、(付記10)〜(付記17)のいずれか1項記載の記憶装置。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは、言うまでもない。