説明

エラー訂正方法

【課題】訂正前データと訂正後データを記憶するメモリの規模を小さくでき、オーバーフローの発生を未然に防止することができるエラー訂正方法を提供することにある。
【解決手段】所定時間においてエラー訂正処理を行い、そのエラー訂正処理の間に、エラー訂正処理にかかる負荷を検出し、検出した負荷が大きい場合に、所定時間に対するエラー訂正処理の割合を大きくする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光ディスク等の記録媒体から読み出されたデータのエラー訂正を行うエラー訂正方法に関するものである。
近年、光ディスク等の記録媒体の大容量化に伴い、その読み取ったデータの処理速度はより高速化が求められている。特に、処理時間の長いエラー訂正処理回路においては、処理時間の短縮化が重要となる。エラー訂正処理回路の処理時間の短縮化を図るためには、メモリに一時記憶する訂正前データと訂正後データの処理を効率よく行うことが特に重要となる。
【背景技術】
【0002】
従来、光ディスク等のデータストレージ制御装置では、デコーダにおいて光ディスクから取り出した同期信号のタイミングでデータ領域のアナログ信号波形をサンプリングして「1」か「0」のいずれかの値(2値化した)データを作成する。この2値化されたデータは、エラー訂正処理装置にて同データの中のエラー訂正コード(ECC)に基づいてエラーの有無が確認されデータ上のエラー位置及び値が演算されてデータのエラー訂正が行われる。そして、エラー訂正処理装置にて訂正処理された訂正後のデータは、外部インターフェースを介して外部装置に出力される。
【0003】
ところで、エラー訂正処理装置の処理時間は光ディスクから読み出されたデータの品質によって大きく左右される。つまり、エラー量の多いデータの場合には、エラー訂正処理装置の処理時間は長くなり、デコーダにて2値化された訂正前のデータが未処理のまま滞留することになる。反対に、エラー量の少ないデータの場合には、エラー訂正処理装置の処理時間は短くなり、外部インターフェースから外部装置に出力される訂正後のデータが未出力まま滞留することになる。
【0004】
そこで、データストレージ制御装置では、第1及び第2のデータ領域を有したバッファメモリを設けている。そして、デコーダは、2値化した訂正前のデータを一時的にバッファメモリの所定の領域(訂正前データ領域)に記憶する。エラー訂正処理装置は、訂正前データ領域に記憶された2値化された訂正前のデータを読み出しエラー訂正処理を行う。エラー訂正処理装置は、訂正処理後のデータをバッファメモリの第2のデータ領域に記憶する。この所定の領域(訂正後データ領域)に記憶された訂正後のデータは、外部インターフェースにて読み出され外部装置に出力される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、バッファメモリの容量は、最悪の状況を考慮して決定される。つまり、訂正前データ領域の容量は、2値化データのエラー量が最大であって訂正処理時間が最も長い場合を想定した時のメモリ容量が決定される。又、訂正後データ領域の容量は、2値化データのエラー量が最小であって訂正処理時間が最も短い場合を想定した時のメモリ容量が決定される。従って、メモリ容量を上記のように最悪の状況に対処できる容量で実現すると、バッファメモリの規模が大きくなるばかりか、最悪時以外は無駄なものとなる。
【0006】
そこで、逆にバッファメモリの規模を縮小することが考えられる。しかしながら、規模を縮小すると、その縮小量に応じてオーバーフローの発生する確率が高くなる。つまり、バッファメモリの訂正前及び訂正後データ領域においてオーバーフローを起こすと、記憶したデータが消失する。その結果、光ディスクからデータの再度読み出しを行う必要が生じる。この時、再度データ読み出しを行うためには、データ処理だけでは対処できない光ディスク駆動系の制御が必要となり、全体の処理時間がさらに長くなるといった問題が生ずる。
【0007】
本発明の目的は、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができるエラー訂正方法を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一観点によれば、所定時間においてエラー訂正処理を行い、前記エラー訂正処理の間に、エラー訂正処理にかかる負荷を検出し、検出した前記負荷が大きい場合に、所定期間に対するエラー訂正処理の割合を大きくする。
【発明の効果】
【0009】
開示のエラー訂正方法によれば、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【図面の簡単な説明】
【0010】
【図1】光ディスク制御装置の全体構成を説明するためのブロック図
【図2】光ディスクコントローラ内に設けられたエラー訂正処理のための回路構成を示すブロック図
【図3】エラー訂正処理回路部の回路構成を説明するためのブロック図
【図4】訂正処理能力制御回路部の回路構成を説明するためのブロック図
【図5】メモリバッファとポインタとの関係を説明する説明図
【図6】1セクタ分のデータ配列を説明するための図
【図7】訂正処理能力制御回路部の別例を説明するためのブロック図
【発明を実施するための形態】
【0011】
以下、本発明を光ディスク制御装置に具体化した一実施形態を図面に従って説明する。
図1は、光ディスク制御装置の全体構成を説明するためのブロック図を示す。
光ディスク制御装置1は、コンピュータ2に接続されているとともに、光ディスク駆動装置3に接続されている。光ディスク駆動装置3は、記録媒体としての光ディスク4を所定の回転速度で回転駆動させる。又、光ディスク駆動装置3は、光ディスク4に記録されたデータを図示しない光学系読み取り装置にて読み出し、その読み出したデータを光ディスク制御装置1に出力する。
【0012】
光ディスク制御装置1は、マイクロプロセッサ11、光ディスクコントローラ12、メモリとしてのバッファメモリ13、外部インターフェース回路14及び入出力駆動回路15を有している。そして、光ディスク制御装置1は外部インターフェース回路14を介してコンピュータ2に接続されている。又、光ディスク制御装置1は入出力駆動回路15を介して光ディスク駆動装置3に接続されている。
【0013】
マイクロプロセッサ11は、光ディスク4に記録されたデータを読み出しコンピュータ2に出力するために、光ディスクコントローラ12、バッファメモリ13、外部インターフェース回路14及び入出力駆動回路15を統括制御する。
【0014】
光ディスクコントローラ12は、マイクロプロセッサ11の命令により、入出力駆動回路15を介して光ディスク駆動装置3への命令送信とステータス受信等を行って光ディスク駆動装置3に対してデータ読み出しための駆動系の制御を行う。光ディスクコントローラ12は、光ディスク駆動装置3が光ディスク4の所定のセクタに記録したデータを読み出すと、その読み出されたデータ(アナログ信号)を入出力駆動回路15を介して入力する。光ディスクコントローラ12は、入力したデータに対してフォーマットデコード処理を行う。
【0015】
詳述すると、光ディスク駆動装置3から出力される光ディスク4の所定のセクタから読み出されたリード情報としてのリードデータ(アナログ信号)は、入出力駆動回路15において2値化(デジタル変換)されて光ディスクコントローラ12に出力される。尚、入出力駆動回路15は、光ディスク4が高速モードで回転駆動されることに起因して、又は、光ディスク4がぶれながら回転することに起因して光ディスク駆動装置3から出力されるリードデータ(アナログ信号)が正常なアナログ信号でなく2値化できない場合には、入出力駆動回路15は、その旨のリード情報としての信号を光ディスクコントローラ12に出力するようになっている。さらに、光ディスクコントローラ12は、光ディスク駆動装置3からデータ読み出しのためシーク動作を行っている旨のリード情報としての信号を入力する。
【0016】
光ディスクコントローラ12は、1セクタ分の2値化したリードデータのパターンを解読してセクタアドレス、同期パターン等を除去しデータのみ抽出し、その抽出したデータを所定のフォーマットに復調する。光ディスクコントローラ12は復調したユーザデータをバッファメモリ13の所定のメモリ領域に一時格納する。
【0017】
本実施形態の光ディスク4では、リード・ソロモン符号で多量に符号化する方式にインターリーブ(交錯法)を組み合わせた方式が採用されている。
光ディスクの1セクタ分のデータを配列で表すと、図6のように表すことができる。図6において、配列の一行(1つの符号語)を1インターリーブといい、各本実施形態では、インターリーブの数はn個で構成され、各インターリーブ1〜nはエラー訂正検査記号(ECC部分)と情報記号(データ部分)とから構成されている。そして、エラー訂正は、各インターリーブ1〜n毎に行われる。
【0018】
各インターリーブ1〜nは、符号長が120バイトの符号語で構成され、図中、下位16バイト、即ち、位置0〜位置15がECC部分となる。又、各インターリーブにおいて情報記号数(データ部分の長さ)は、ECC部分を除いた上位104バイト(位置16〜位置119)となる。
【0019】
又、配列において、インターリーブ(i+1)〜nは、他のインターリーブ1〜iの各位置0〜119の訂正検査記号(ECC部分)を構成している。つまり、たとえば、各インターリーブ1〜iの位置119の各バイトを情報記号(データ部分)とし、インターリーブ(i+1)〜nの位置119の各バイトをその情報記号(データ部分)に対する訂正検査記号(ECC部分)としている。
【0020】
光ディスクコントローラ12は、バッファメモリ13に一時格納したデータを1セクタ分のデータを読み出し、1インターリーブの単位でエラー訂正処理を行う。このエラー訂正処理は、前記エラー訂正検査記号ECC(Error Correction Code)を元にして行う。そして、光ディスクコントローラ12は、1セクタ分のデータからシンドロームを生成し、そのシンドロームを元に、ユークリッド互除法により誤り位置・数値多項式を生成する。次に、光ディスクコントローラ12は、誤り位置・数値多項式の解をチェーンサーチにより求め、欠陥部分がどの位置かそしてどのように誤っているかを求める。そして、その訂正処理によって得られた各インターリーブの欠陥部分の数及びその各欠陥部分の正しい値を記憶する。
【0021】
光ディスクコントローラ12は、1つのインターリーブについてのエラー訂正処理が終了すると、次のインターリーブについてエラー訂正を同様に行う。尚、誤り数が多くて訂正不能の場合にはそのインターリーブのエラー訂正処理を終了して次のインターリーブについてエラー訂正を同様に行う。
【0022】
そして、1セクタの全てのインターリーブ1〜nがそれぞれの位置0〜位置15の訂正検査記号(ECC部分)に基づいてエラー訂正が一通り完了すると、インターリーブ1〜nの少なくとも1つのインターリーブについて誤り数(欠陥部分)が多くて訂正不能のインターリーブがあったかどうかを判定する。
【0023】
訂正不能のインターリーブが存在する場合には、インターリーブ1〜iの各位置0〜119の値をそれぞれインターリーブ(i+1)〜nの各位置0〜119の値を訂正検査記号(ECC部分)としてエラー訂正を行う。つまり、インターリーブ1〜nの位置119の各数値から順番に位置0の各数値に対してエラー訂正を行い、先の訂正不能となったインターリーブの欠陥部分を訂正する。この時、その訂正処理によって得られた各インターリーブの欠陥部分の数及びその各欠陥部分の正しい値を記憶する。
【0024】
インターリーブ1〜nの各位置0〜119毎のエラー訂正が行われると、再び当該セクタの各インターリーブ1〜nのエラー訂正を行うかどうか判断する。本実施形態では、訂正不能のインターリーブが存在しなくなったときには直ちに訂正処理を終了し、次の新たなセクタのデータを読み出し、その新たなセクタのデータについてのエラー訂正処理を実行する。
【0025】
又、訂正不能のインターリーブがいまだに存在する場合には、再び同じ訂正処理を行う。つまり、インターリーブ1〜nの各位置0〜119毎のエラー訂正が行われた各インターリーブについて再びエラー訂正が行われる。つまり、訂正不能であったインターリーブの欠陥部分の数が減少するため、再度の訂正処理を行うことによって完全にエラー訂正が行えることになる。そして、1つのセクタのデータについて訂正処理を複数回(実施形態では3回)行っても訂正不能のインターリーブが存在する場合には、当該セクタのエラー訂正処理を終了し、次の新たなセクタのデータを前記バッファメモリ13から読み出し、その新たなセクタのデータについてのエラー訂正処理を実行する。
【0026】
1つのセクタのデータについてのエラー訂正処理が終了し、その処理によって得られた各インターリーブの欠陥部分の数及びその各欠陥部分の正しい値に基づいて、前記バッファメモリ13に記憶されているエラー訂正処理の対象となっているセクタのデータを正しい値に書き換える。
【0027】
そして、光ディスクコントローラ12は、エラー訂正処理が済むとその訂正後のデータを前記バッファメモリ13の所定のメモリ領域に一時格納する。
光ディスクコントローラ12は、マイクロプロセッサ11の命令により、バッファメモリ13の所定のメモリ領域に一時格納した訂正後のデータを読み出し外部インターフェース回路14を介してコンピュータ2に出力するようになっている。
【0028】
次に、光ディスクコントローラ12内に設けられたエラー訂正処理のための構成について説明する。
図2は、光ディスクコントローラ12内に設けられたエラー訂正処理のための回路構成を示すブロック回路である。
【0029】
図2において、光ディスクコントローラ12は、内部プロセッサ21、デコーダ22、エラー訂正処理回路部24、訂正処理能力制御回路部25を有するとともに、前記外部インターフェース回路14も本実施形態ではその一部としている。
【0030】
内部プロセッサ21は、マイクロプロセッサ11との間で命令の授受が行われ、エラー訂正処理のために、デコーダ22、エラー訂正処理回路部24、訂正処理能力制御回路部25及び外部インターフェース回路14を統括制御する。又、内部プロセッサ21は、マイクロプロセッサ11の命令により、入出力駆動回路15を介して光ディスク駆動装置3に対してデータ読み出しための駆動系の制御を行う。さらに、内部プロセッサ21は、マイクロプロセッサ11の命令により、バッファメモリ13に一時格納した訂正後のデータを読み出し外部インターフェース回路14を介してコンピュータ2に出力するようになっている。
【0031】
デコーダ22は入出力駆動回路15からの1セクタ分の2値化したリードデータを入力する。デコーダ22はその入力したリードデータのパターンを解読してセクタアドレス、同期パターン等のいわゆるID部のデータと、データ部の同期パターンを除去しデータ部のデータのみ抽出し、その抽出したデータを所定のフォーマットに復調する。デコーダ22はそのデータをバッファメモリ13の所定のメモリ領域に一時格納する。
【0032】
外部インターフェース回路14は、バッファメモリ13に格納されたデータをエラー訂正処理回路部24にて訂正処理した訂正処理後のデータを読み出し、前記コンピュータ2に出力する。
【0033】
エラー訂正処理回路部24は、図3に示すように、シンドローム生成回路31、ユークリッド互除法による誤り位置多項式及び誤り数値多項式生成回路32、誤り位置・誤り数値検出回路33、書き換え処理回路34、訂正結果レジスタ35、ポインタ36を有している。
【0034】
シンドローム生成回路31は、バッファメモリ13に一時格納したデータをセクタ分のデータを読み出し、1インターリーブの単位(120バイトのデータ)でシンドロームを求める公知の回路である。つまり、各係数が1インターリーブ(120バイト)の各バイトの値となるシンドローム多項式であって、クロック信号に基づいて各バイトの値が下位位置から又は上位位置からクロック信号CLKに同期してそのシンドローム多項式の各項に付加されるとともに、同じくクロック信号に基づいて該インターリーブのエラー訂正検査記号(ECC部分であって、位置0〜位置15にある下位16バイト)の生成多項式の解がそのシンドローム多項式の各項の変数に代入されて、シンドロームが求められる。尚、誤りが無い場合にはシンドロームはゼロとなる。
【0035】
シンドローム生成回路31は、一般に複数のフリップフロップ回路と乗算回路から構成され、動作クロック信号としてのクロック信号CLKを入力する毎に、1インターリーブの各バイトの値(データ)が下位位置から又は上位位置から順番に各フリップフロップに同時に入力される。この時、各フリップフロップに入力されるバイトは、その各フリップフロップ毎に特定されたエラー訂正検査記号の生成多項式と乗算回路にて乗算されて入力される。そして、各フリップフロップでラッチした値をシンドロームとして次段の誤り位置多項式及び数値多項式生成回路32に出力する。従って、クロック信号CLKの周期が短いと速く各シンドロームが求められ誤り位置多項式及び誤り数値多項式生成回路32に出力されることになる。
【0036】
誤り位置多項式及び誤り数値多項式生成回路32は、シンドローム生成回路31にて生成したシンドロームから誤り位置・誤り数値多項式の解を求めるためにユークリッド互除法により該誤り位置多項式の係数と誤り数値多項式の係数を求める公知の回路である。誤り位置多項式は、該インターリーブの何番目のバイト(位置)が誤っているか求める多項式である。又、誤り数値多項式は、誤り位置多項式によって得られた誤ったバイト(位置)がどのように誤っているのか求める多項式である。
【0037】
この多項式生成回路32は、シンドローム生成回路31と同様にクロック信号CLKに同期して各係数が求められ次段の誤り位置・数値検出回路33に出力されるようになっている。従って、クロック信号CLKの周期が短いと速く各係数が求められ誤り位置・誤り数値検出回路33に出力されることになる。
【0038】
誤り位置・誤り数値検出回路33は、前記多項式生成回路32にて生成した誤り位置多項式の係数と誤り数値多項式の係数から誤り位置多項式及び誤り数値多項式の解を求める公知の回路である。誤り位置・誤り数値検出回路33は、一般的なチェンサーチ法にて解を求めるようになっていて、前記クロック信号CLKを入力するごとに該インターリーブの1のバイト(位置)が検査され、エラーがあった時には正しい値に訂正される。従って、誤り位置・誤り数値検出回路33は、クロック信号CLKの周期が短いとインターリーブの各バイト(位置)が検査が速く処理されることになる。
【0039】
誤り位置・誤り数値検出回路33は、その求めた誤り位置(バイト)とその正しい値を書き換え処理回路34に出力する。書き換え処理回路34は、誤り位置・誤り数値検出回路33が求めた誤り位置(バイト)とその正しい値を訂正結果レジスタ35に一時保持する。
【0040】
書き換え処理回路34は、訂正結果レジスタ35に一時保持した誤り位置(バイト)とその正しい値を読み出し、バッファメモリ13におけるエラー訂正処理対象にあるセクタの訂正バイトに対して正しい値に書き換える。書き換え処理回路34の訂正結果レジスタ35に対する読み出し及び書き換え処理と、バッファメモリ13に対する書き換え処理は、クロック信号CLKに同期して行われる。従って、書き換え処理回路34は、クロック信号CLKの周期が短いとインターリーブの各バイト(位置)の検査が速く処理されることになる。
【0041】
又、書き換え処理回路34は、訂正処理を行った結果、訂正不能のインターリーブがいまだに存在する場合には、訂正処理を3回行ったかどうかを判定し、3回行っていない場合には再びシンドローム生成回路31から先の訂正処理後のデータを使って訂正処理を実行させるようになっている。
【0042】
尚、訂正処理回数の3回は予め設定されていて、内部プロセッサ21によって設定されている。又、3回行っていても訂正不能のインターリーブがいまだに存在する場合には、書き換え処理回路34は、内部プロセッサ21に対して当該セクタのデータは訂正できないとしてその旨の演算情報としての信号を出力し、光ディスク4から再度の読み出しを指示するようになっている。
【0043】
ポインタ36は、バッファメモリ13に記憶されているデータであって、図5に示すようにデコーダ22から入力された訂正処理前のデータ(訂正前データ)が記憶されている訂正前データ領域Aの先頭アドレスの次のアドレス(書き込み開始アドレスMP)と、シンドローム生成回路31に読み出されて訂正処理対象になっているデータ(訂正処理中データ)が記憶されている訂正中データ領域Bの最終アドレス(検査開始アドレスECP)と、書き換え処理回路34にて訂正処理が完了されたデータ(訂正後データ)が記憶された訂正後データ領域Cの最終アドレス(出力開始アドレスOP)を保持する。
【0044】
詳述すると、バッファメモリ13は、先頭アドレスASから最終アドレスAEの間で、データが書き込まれる。そして、バッファメモリ13は、デコーダ22から新たな訂正前データが入力されると、それまでに書き込まれた訂正データのうち最新に書き込まれた訂正前データが書き込まれたアドレスの次のアドレス(書き込み開始アドレスMP)から最終アドレスAEに向かって書き込まれるようになっている。又、最終アドレスAEに到達したら、先頭アドレスASから最終アドレスAEに向かって書き始めるようにしている。従って、書き込み開始アドレスMPは、訂正前データが書き込まれるその度に最新の書き込みアドレスに更新される。
【0045】
又、バッファメモリ13は、書き込まれた訂正前データについて訂正処理が行われる場合、最も先に書き込まれた訂正前データが書き込まれたアドレス(検査開始アドレスECP)から1セクタ分のデータが読み出される。従って、その訂正処理のために読み出された1セクタ分のデータが訂正処理中データとなる。そして、訂正処理中データが書き換え処理されて訂正後データになると、検査開始アドレスECPは1セクタ分のアドレスだけインクリメントされる。
【0046】
従って、検査開始アドレスECPから書き込み開始アドレスMPの間の記憶領域が訂正前データ領域Aとなる。又、訂正前データ領域Aにおける検査開始アドレスECPから1セクタ分のデータが記憶されているアドレスまでの間の記憶領域を訂正中データ領域Bという。
【0047】
さらに、バッファメモリ13は、外部インターフェース回路14に出力するために訂正後データが読み出される場合、最も先に訂正処理された訂正後データが書き込まれたアドレス(出力開始アドレスOP)の訂正後データから読み出される。
【0048】
そして、訂正後データが読み出されると、その読み出された内容は消去され空データ領域Dとなり、出力開始アドレスOPは最後に読み出されたデータのアドレスの次のアドレスにインクリメントされる。従って、出力開始アドレスOPから検査開始アドレスECPまでの間の記憶領域を訂正後データ領域Cという。又、前記書き込み開始アドレスMPから出力開始アドレスOPまでの間の記憶領域を空データ領域Dという。
【0049】
そして、デコーダ22は、ポインタ36の書き込み開始アドレスMPに従って訂正前データをバッファメモリ13に書き込む。又、シンドローム生成回路31は、検査開始アドレスECPに基づいて訂正処理をする1セクタ分のデータをバッファメモリ13から読み出す。さらに、外部インターフェース回路14は、出力開始アドレスOPに基づいて訂正後データをバッファメモリ13から読み出しコンピュータ2に出力する。
【0050】
次に、エラー訂正処理回路部24の各回路31〜34に出力され動作処理速度を決定するクロック信号CLKを生成する訂正処理能力制御回路部25について説明する。
図4は、訂正処理能力制御回路部25の構成を説明するためのブロック図である。訂正処理能力制御回路部25は、負荷検出回路37と能力制御回路38を有している。負荷検出回路37は、前記エラー訂正処理回路部24にかかる負荷を検出する回路である。
【0051】
負荷検出回路37は、内部プロセッサ21から前記光ディスク駆動装置3の光ディスク4の回転速度(データ読み取り速度)が高速か低速かを示すリード情報としての回転速度信号VSGを外部負荷要因信号として入力する。又、負荷検出回路37は、内部プロセッサ21から前記入出力駆動回路15が何らかの原因でデータ読み取り不能な状態になったことを示すリード情報としての読み取り不能信号HSGを外部負荷要因信号として入力する。負荷検出回路37は、ポインタ36から書き込み開始アドレスMP、検査開始アドレスECP及び出力開始アドレスOPを入力する。そして、これらの各信号及びデータから負荷を検出して前記クロック信号CLKの周期を決定する調整信号を生成する。
【0052】
詳述すると、負荷検出回路37は、高速を示す回転速度信号VSGを入力した時、前記クロック信号CLKの周期を予め設定した最も高い周期、即ち第1基本周期Taとするための信号を能力制御回路38に出力する。又、負荷検出回路37は、低速を示す回転速度信号を入力した時、最も高い周期のクロック信号CLKより長い予め定めた周期、即ち第2基本周期Tbとするための信号を能力制御回路38に出力する。
【0053】
又、負荷検出回路37は、読み取り不能信号HSGを入力した時、クロック信号CLKを停止させる旨の停止信号STPを能力制御回路38に出力する。
さらに、負荷検出回路37は、各アドレスMP,ECP,OPに基づいてその時々のバッファメモリ13の訂正前データ領域Aの大きさL1(=MP−ECP)と訂正後データ領域Cの大きさL2(=ECP−OP)を求める。そして、本実施形態では、負荷検出回路37は、この大きさL1,L2と、予め定めた基準値L1k,L2kとで以下のような演算処理を行う。
【0054】
尚、L1kは訂正前データ領域Aの大きさL1に対して予め定めた基準値であって、これ以上訂正前データが増大すると支障が生じるおそれのある値としている。又、L2kは訂正後データ領域Cの大きさL2に対して予め定めた基準値であって、これ以上訂正後データが増加すると支障が生じるおそれのある値としている。
【0055】
(1)L1>L1kであって、L2<L2kの時、
負荷検出回路37は、エラー訂正処理回路部24の負荷が大きくて訂正処理に時間を要し訂正前データが増大し訂正後データが減少していると判断する。そして、負荷検出回路37は、その時のクロック信号CLKの周期を短くするための予め設定した調整量ΔTd(=−ΔT1)を調整信号として能力制御回路38に出力する。
【0056】
(2)L1<L1kであって、L2>L2kの時、
負荷検出回路37は、エラー訂正処理回路部24の負荷が小さくて訂正処理に時間を要しておらず訂正前データが減少し訂正後データが増大していると判断する。そして、負荷検出回路37は、その時のクロック信号CLKの周期を長くするための予め設定した調整量ΔTu(=ΔT1)を調整信号として能力制御回路38に出力するようになっている。
【0057】
(3)L1≦L1kであって、L2≦L2kの時、
負荷検出回路37は、エラー訂正処理回路部24の負荷が適正で訂正前データと訂正後データが適正に増減していると判断する。そして、負荷検出回路37は、その時のクロック信号CLKの周期を現状維持するための予め設定した調整量ΔT0(=0)を調整信号として能力制御回路38に出力するようになっている。
【0058】
(4)L1>L1kであって、L2>L2kの時、
負荷検出回路37は、エラー訂正処理回路部24の負荷が異常であって訂正前データと訂正後データが異常に増大していると判断する。そして、負荷検出回路37は、クロック信号CLKを停止させる旨の停止信号STPを能力制御回路38に出力する。
【0059】
能力制御回路38は、分周比制御回路41及びクロック制御・分周回路42を有している。
分周比制御回路41は、負荷検出回路37から第1基本周期Ta、第2基本周期Tb、停止信号STP、調整量ΔTd,ΔTu,ΔT0を入力する。分周比制御回路41は、第1基本周期Taを入力したとき、同第1基本周期Taと調整量ΔTd(又はΔTu,ΔT0)とで分周比を演算する。又、分周比制御回路41は、第2基本周期Tbを入力したとき、同第2基本周期Tbと調整量ΔTd(又はΔTu,ΔT0)とで分周比を演算する。
【0060】
即ち、第1基本周期Taが入力された時には、分周比制御回路41はクロック信号CLKの周期Tを最初は最も周期の短い第1基本周期Taに設定する。そして、この状態から、その時々の調整量ΔTd(又はΔTu,ΔT0)によってクロック信号CLKの周期T(=T+(ΔTd(又はΔTu,ΔT0)))を調整する。つまり、調整量ΔTd(又はΔTu,ΔT0:但し、最初はクロック信号CLKの周期Tは最も周期の短い第1基本周期Taであるので、調整量ΔTdは出力されない)が入力される毎に、分周比制御回路41はクロック信号CLKの周期Tを調整量ΔTd(又はΔTu)を使って新たな周期Tを演算する。そして、分周比制御回路41はその演算した周期Tに対して次に出力される調整量ΔTd(又はΔTu,ΔT0)をクロック信号CLKの周期Tを更新する。
【0061】
又、第2基本周期Tbが入力された時には、分周比制御回路41はクロック信号CLKの周期Tを最初は第2基本周期Tbに設定する。そして、この状態から、その時々の調整量ΔTd(又はΔTu,ΔT0)によってクロック信号CLKの周期T(=T+(ΔTd(又はΔTu,ΔT0)))を調整する。つまり、調整量ΔTd(又はΔTu,ΔT0)が入力される毎に、分周比制御回路41はクロック信号CLKの周期Tを調整量ΔTd(又はΔTu,ΔT0)を使って新たな周期Tを演算する。そして、分周比制御回路41はその演算した周期Tに対して次に出力される調整量ΔTd(又はΔTu,ΔT0)をクロック信号CLKの周期Tを更新する。
【0062】
分周比制御回路41は、新たなクロック信号CLKの周期Tを演算すると、該周期Tのクロック信号CLKを生成するための該周期Tに対する分周比Kを演算し分周比Kのデータとしてクロック制御・分周回路42に出力する。
【0063】
又、分周比制御回路41は、停止信号STPを入力すると、クロック制御・分周回路42に起動停止信号STを出力する。
クロック制御・分周回路42は、分周比制御回路41から分周比Kのデータを入力すると、その分周比Kに対する周期Tのクロック信号CLKを生成し出力する。この生成されたクロック信号CLKは、エラー訂正処理回路部24の回路31〜34に出力される。従って、エラー訂正処理回路部24は、クロック信号CLKの周期Tによってエラー訂正処理速度が調整される。つまり、周期Tが短いとエラー処理速度が速くなり、周期Tが長くなると処理速度が遅くなる。
【0064】
又、クロック制御・分周回路42は、起動停止信号STを入力すると、分周比Kのデータに関係なくクロック信号CLKの生成を停止する。従って、エラー訂正処理回路部24の回路31〜34へのクロック信号CLKの供給は停止する。その結果、エラー訂正処理回路部24はエラー訂正処理動作を停止する。
【0065】
次に上記のように構成した光ディスク制御装置1に設けた光ディスクコントローラ12の作用について説明する。
今、光ディスク駆動装置3から光ディスク4に記録されたデータが順次読み出され、光ディスクコントローラ12のデコーダ22にて、訂正前データがバッファメモリ13に書き込まれている。又、エラー訂正処理回路部24は、バッファメモリ13から訂正前データを読み出しエラー訂正処理を行い、バッファメモリ13の訂正前データをエラー訂正した順次訂正後データに書き換えられている。さらに、外部インターフェース回路14は、バッファメモリ13の訂正後データを読み出しコンピュータ2に出力している。
【0066】
さらに、訂正処理能力制御回路部25は、最も短い周期T(第1基本周期Ta)のクロック信号CLKをエラー訂正処理回路部24に出力している。従って、訂正処理能力制御回路部25は最高速でエラー訂正処理を行っている。
【0067】
この最高速でエラー訂正処理を行っている状態で、高速処理又はエラー数が少ないことに起因して、訂正前データが減少し訂正後データが増加し、即ち、L1<L1k、L2>L2kとなる。
【0068】
負荷検出回路37は、エラー訂正処理回路部24が訂正処理に時間を要しておらず訂正前データが減少し訂正後データが増大し、即ち、エラー訂正処理回路部24の負荷が軽く訂正処理速度を遅くしてもよいと判断して、その時のクロック信号CLKの周期より長くすべく調整量ΔTuを能力制御回路38の分周比制御回路41に出力する。分周比制御回路41は、この調整量ΔTuと先の周期Tとで新たな周期T(=T+ΔTu)を求める。続いて、分周比制御回路41はこの新たな周期T(=T+ΔTu)に対する分周比Kを求め、その分周比Kをクロック制御・分周回路42に出力する。
【0069】
クロック制御・分周回路42は、この分周比Kに基づいて前記周期Tとなるクロック信号CLKを生成してエラー訂正処理回路部24に出力する。従って、クロック信号CLKが先の周期より長くなっため、エラー訂正処理回路部24の訂正処理速度が遅くなる。
【0070】
クロック信号CLKの周期より長くしたにもかかわらず、L1<L1k、L2>L2kの状態の場合には、いまだ、負荷検出回路37はエラー訂正処理回路部24の負荷が軽く訂正処理速度を遅くしてもよいと判断する。負荷検出回路37は、先に更新したクロック信号CLKの周期よりさらに長くすべく調整量ΔTuを能力制御回路38に出力する。能力制御回路38は、前記と同様にさらに周期の長いクロック信号CLKを生成してエラー訂正処理回路部24の訂正処理速度をさらに遅くする。以後、L1≦L1k、L2≦L2kになるまで、上記のような動作を繰り返してエラー訂正処理回路部24の訂正処理速度をさらに遅くする。従って、例えば、訂正処理速度が速すぎて訂正後データがバッファメモリ13に滞留し過ぎてしまうことはない。
【0071】
そして、所定の周期のクロック信号CLKでエラー訂正処理回路部24の訂正処理速度を行っているときにおいて、例えば訂正前のデータに誤り数が多くなり訂正処理に時間を要するようになった時、訂正前データ領域Aの大きさL1は次第に増大するとともに、訂正後データ領域Cの大きさL2は次第に減少する。
【0072】
そして、L1>L1k、L2<L2kとなった時、負荷検出回路37は、エラー訂正処理回路部24が訂正処理に時間を要するようになって、訂正前データが増大し訂正後データが増加、即ち、エラー訂正処理回路部24の負荷が重くなり訂正処理速度を速くする必要があると判断して、クロック信号CLKの周期を短くすべく調整量ΔTdを能力制御回路38の分周比制御回路41に出力する。分周比制御回路41は、この調整量ΔTdと先の周期Tとで新たな周期T(=T+ΔTd)を求める。続いて、分周比制御回路41はこの新たな周期T(=T+ΔTd)に対する分周比Kを求め、その分周比Kをクロック制御・分周回路42に出力する。
【0073】
従って、クロック制御・分周回路42が生成するクロック信号CLKは先の周期より短くなるため、エラー訂正処理回路部24の訂正処理速度が速くなる。
以後、L1≦L1k、L2≦L2kになるまで、上記のような動作が繰り返されてエラー訂正処理回路部24の訂正処理速度はさらに上がることになる。従って、エラー数が多くて時間を要したり、その他、例えば訂正処理速度が遅すぎる等の内部負荷が重くなり過ぎて訂正前データがバッファメモリ13に滞留し過ぎてしまうことはない。
【0074】
尚、訂正処理動作中に、内部プロセッサ21から負荷検出回路37に低速を示す回転速度信号VSGが入力されると、つまり、外部負荷が軽くなると、負荷検出回路37は、第2基本周期Tbを能力制御回路38に出力する。能力制御回路38は、直ちに第2基本周期Tbに対する分周比Kを求め、同分周比Kに対する周期T(この時点では第2基本周期Tb)のクロック信号CLKを生成して出力する。
【0075】
従って、クロック制御・分周回路42が生成するクロック信号CLKは、前記光ディスク駆動装置3の低速回転速度に対応してより長い周期なるため、エラー訂正処理回路部24の訂正処理速度は遅くなる。つまり、エラー訂正処理回路部24の訂正処理速度は、前記光ディスク駆動装置3の低速データ読み取り速度に対応した処理速度となる。
【0076】
そして、以後、大きさL1,L2と基準値L1k,L2kとに基づいて調整量ΔTd(又はΔTu,ΔT0)が負荷検出回路37から求められ、能力制御回路38にて上記と同様に新たな周期Tが求められ、その周期Tのクロック信号CLKが生成されエラー訂正処理回路部24に出力される。従って、光ディスク駆動装置3が低速回転速度になった場合においても、内部負荷に応じてエラー訂正処理回路部24の訂正処理速度を変更することができる。
【0077】
又、訂正処理動作中に、内部プロセッサ21から負荷検出回路37に読み取り不能信号HSGが入力されたり、L1>L1k及びL2>L2kとなると、負荷検出回路37は、停止信号STPを能力制御回路38に出力する。能力制御回路38は、停止信号STPに基づいてクロック信号CLKの出力を停止する。従って、クロック信号CLKの出力が停止されることにより、エラー訂正処理回路部24はその訂正処理動作を停止する。
【0078】
以上詳述したように、本実施形態の光ディスク制御装置によれば、以下に記載する特徴を有する。
(1)本実施形態によれば、負荷検出回路37と能力制御回路38とからなる訂正処理能力制御回路部25を設けた。そして、負荷検出回路37にて、ポインタ36が示すバッファメモリ13の内容からエラー訂正処理回路部24にかかる負荷を判断する。そして、負荷が大きい場合には、エラー訂正処理回路部24の処理速度を上げるための調整量ΔTdを、負荷が小さい場合には、エラー訂正処理回路部24の処理速度を下げるの調整量ΔTuを能力制御回路38に出力するようにした。能力制御回路38は、負荷が大きい場合には調整量ΔTdに基づいてクロック信号CLKの周期Tを短くし(即ち周波数を上げ)、負荷が小さい場合には調整量ΔTuに基づいてクロック信号CLKの周期Tを長くする(周波数を下げる)ようにした。
【0079】
従って、エラー訂正処理回路部24は負荷に応じて処理速度が調整される。その結果、バッファメモリ13の訂正前データ領域Aを一定の大きさに制御できるとともに、訂正後データ領域Cも一定の大きさに制御できる。つまり、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができることになる。
【0080】
(2)本実施形態では、訂正処理能力制御回路部25は、内部プロセッサ21から光ディスク駆動装置3の読み出し速度を示す回転速度信号VSGを入力してその回転速度信号VSGに基づいてクロック信号CLKの周期T(周波数)を制御した。つまり、光ディスク駆動装置3の読み出し速度による外部負荷によってもクロック信号CLKの周期T(周波数)を制御するようにした。
【0081】
従って、エラー訂正処理回路部24は外部負荷に応じて処理速度が調整される。その結果、この場合においてもバッファメモリ13の訂正前データ領域Aを一定の大きさに制御できるとともに、訂正後データ領域Cも一定の大きさに制御できる。つまり、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができることになる。
【0082】
(3)本実施形態では、訂正処理能力制御回路部25は、内部プロセッサ21から読み取り不能信号HSGを入力すると、クロック信号CLKの出力を停止するようにした。
従って、入出力駆動回路15において、光ディスク4が高速モードで回転駆動されることに起因して、又は、光ディスク4がぶれながら回転することに起因して光ディスク駆動装置3から出力されるリードデータ(アナログ信号)が正常なアナログ信号でなく2値化できない場合には、エラー訂正処理回路部24は処理動作が停止される。その結果、その無用なクロック信号CLKの生成がなくなるため、消費電力の低減を図ることができる。
【0083】
(4)本実施形態では、訂正処理能力制御回路部25は、訂正処理動作中に、L1>L1k及びL2>L2kとなると、クロック信号CLKの出力を停止するようにした。
それ以上の訂正処理動作を続けることによって、オーバーフローして先に記憶されている訂正前及び訂正後データを書き換えてしまうことを未然に防止することができる。
【0084】
尚、実施の形態は上記実施形態に限定されるものではなく、以下のように実施してもよい。
・前記実施形態では、負荷の大きさの検出は、各データ領域A,Cの大きさL1,L2と予め定めた基準値L1k,L2kとの大小に基づいて行っている。これを、大きさL1,L2のその時々の増加率や減少率を求め、その率と予め定めた基準値(基準増加率及び基準減少率)とを比較して負荷の大きさを検出するようにして実施してもよい。従って、この場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0085】
・又、負荷の大きさの検出を、その検出する時々で、その訂正前データ領域Aの大きさL1,L2の増大が又は減少が何回連続して生じているかをカウントし、予め定めた回数連続した場合に負荷が大きくなった又は小さくなったと検出するようにしてもよい。従って、この場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0086】
・前記実施形態では、負荷の大きさの検出を、大きさL1,L2を使用して行っている。訂正前データ領域Aの大きさL1のみを使用して、又は、訂正後データ領域Cの大きさL2のみを使用して行ってもよい。
【0087】
そして、訂正後データ領域Aの大きさL1のみを使用した場合には、訂正後データ領域Aの大きさL1が予め定めた基準値L1kより小さいとき、負荷が小さくエラー訂正処理回路部24の訂正処理が速やかに行われているとして、クロック信号CLKの周期Tを長く(周波数を下げる)ようにする。反対に、訂正後データ領域Aの大きさL1が予め定めた基準値L1kより大きい場合には、負荷が大きくエラー訂正処理回路部24の訂正処理が遅いとして、クロック信号CLKの周期Tを短く(周波数を上げる)ようにする。
【0088】
一方、訂正後データ領域Cの大きさL2のみを使用した場合には、訂正後データ領域Cの大きさL2が予め定めた基準値L2kより大きい場合には、負荷が小さくエラー訂正処理回路部24の訂正処理が速やかに行われているとして、クロック信号CLKの周期Tを長く(周波数を下げる)ようにする。反対に、訂正後データ領域Cの大きさL2が予め定めた基準値より小さい場合には、負荷が大きくエラー訂正処理回路部24の訂正処理が遅いとして、クロック信号CLKの周期Tを短く(周波数を上げる)ようにする。
【0089】
従って、これらの各場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
勿論、大きさL1,L2を使用した場合においても、前記したように、増加率及び減少率や、連続回数を求めて負荷の大小を検出するようにして実施してもよい。この場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0090】
・又、負荷の検出を、空データ領域Dの大きさに基づいて行ってもよい。この場合、例えば、空データ領域Dの大きさが基準値を超える場合には、負荷が小さく訂正処理が速やかに行われていると判断し、クロック信号CLKの周期Tを長くする。又、空データ領域Dの大きさが基準値以下の場合には、負荷が大きく訂正処理が遅れていると判断し、クロック信号CLKの周期Tを短くする。
【0091】
勿論、空データ領域Dの大きさを使用した場合においても、前記したように、増加率及び減少率や、連続回数を求めて負荷の大小を検出するようにして実施してもよい。従って、この各場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0092】
・又、負荷の検出をバッファメモリ13のデータ領域の大きさ以外で、即ちポインタ36の内容以外で行ってもよい。例えば、新たにタイマ等の計時手段を追加し、エラー訂正処理回路部24が1セクタ分のエラー訂正処理に要する演算情報としての時間を計時手段にて計時し、その時間に基づいて負荷の大小の検出をする。この場合、計時手段が計時した時間が予め定めた基準時間より長い場合には、負荷が大きく訂正処理が遅れていると判断し、クロック信号CLKの周期Tを短くする。又、計時手段が計時した時間が予め定めた基準時間より短い場合には、負荷が小さく訂正処理が速やかに行われていると判断し、クロック信号CLKの周期Tを長くする。
【0093】
従って、この場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・さらに又、負荷の検出を以下のように行ってもよい。即ち、エラー訂正処理回路部24に構成されているシンドローム生成回路31において、誤りがない場合には求めるシンドロームの数はゼロとなり、誤りがありその誤りの数が多いほど求められるシンドロームの数は多くなる。このシンドロームの数が多いほど、エラー訂正処理回路部24が行うエラー訂正処理に要する時間が長くなり負荷が大きいことを意味する。
【0094】
そして、このことに着目して、シンドローム生成回路31が求めたシンドロームの数を、例えば、シンドローム生成回路31内に図3に破線で示すように誤り数カウンタ31aを設け、そのカウンタ31aにてカウントさせる。そして、図4に破線で示すように、その誤り数カウンタ31aがカウントしたシンドロームの数を演算情報として訂正処理能力制御回路25に出力する。訂正処理能力制御回路25は、そのシンドロームの数に基づいて負荷の大小の検出をする。この場合、シンドロームの数が予め定めた数より大きい場合には、負荷が大きく訂正処理が遅れると判断し、クロック信号CLKの周期Tを短くする。又、シンドロームの数が予め定めた数より小さい場合には、負荷が小さく訂正処理が速やかに行われると判断し、クロック信号CLKの周期Tを長くする。
【0095】
勿論、前記したポインタ36の内容と誤り数カウンタ31aの内容の2つの内容に基づいて、負荷の大小を検出してもよい。
従って、この各場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0096】
・又、シンドローム生成回路31の訂正結果レジスタ35に記録した誤り位置(バイト)とその正しい値の数を演算情報として、図4に破線で示すように、訂正処理能力制御回路25に出力する。訂正処理能力制御回路25は、その数に基づいて負荷の大小の検出をする。この場合、数が予め定めた数より大きい場合には、負荷が大きく訂正処理が遅れると判断し、クロック信号CLKの周期Tを短くする。又、数が予め定めた数より小さい場合には、負荷が小さく訂正処理が速やかに行われると判断し、クロック信号CLKの周期Tを長くする。
【0097】
勿論、前記したポインタ36の内容と訂正結果レジスタ35の内容の2つの内容に基づいて負荷の大小を検出したり、前記した誤り数カウンタ31aの内容と訂正結果レジスタ35の内容の2つの内容に基づいて負荷の大小を検出したり、さらに、ポインタ36の内容、誤り数カウンタ31aの内容及び訂正結果レジスタ35の内容の3つの内容に基づいて負荷の大小を検出してもよい。
【0098】
従って、この各場合においもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・前記実施形態では、訂正処理能力制御回路25から出力されるクロック信号CLKはエラー訂正処理回路部24の各回路31〜34に一様に出力している。これを、それぞれ各回路31〜34に対してそれぞれ異なる周期Tのクロック信号CLKを生成して出力するようにしてもよい。この場合、各回路31〜34に出力されるクロック信号CLKの制御のための負荷に対する調整量ΔTd,ΔTuの値は全て同じであったり、相違させて実施してもよい。
【0099】
又、各回路31〜34をそれぞれグループに分け、その分けたグループ毎にそれぞれ異なる周期Tのクロック信号CLKを生成して出力するようにしてもよい。この場合にも、各グループに出力されるクロック信号CLKの制御のための負荷に対する調整量ΔTd,ΔTuの値は全て同じであったり、相違させて実施してもよい。
【0100】
又、演算処理時間を要する回路(例えば、誤り位置多項式及び数値多項式生成回路32や誤り位置・数値検出回路33)のみ、クロック信号CLKを負荷に応じて変更し、他の回路31,33,34については負荷の大小に関係なく常に一定の周期のクロック信号CLKを生成し出力するようにして実施してもよい。
【0101】
従って、この各場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・さらに、エラー訂正処理を3回行っても訂正不能のインターリーブが存在する場合には、この結果を演算情報として負荷が大きく訂正処理が遅れると判断し、クロック信号CLKの周期Tを短くするようにしてもよい。従って、この各場合においてもバッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0102】
つまり、前記実施形態では、インターリーブ1〜nの各位置0〜119毎のエラー訂正が行われ、訂正不能のインターリーブが存在した場合には、再度の訂正処理を行うことによって完全にエラー訂正できる場合があるため、再び同じ訂正処理を行うようになっている。そして、本実施形態では、1つのセクタのデータについて訂正処理を3回行っても訂正不能のインターリーブが存在する場合には、当該セクタのエラー訂正処理を終了するようになっている。この場合、再び光ディスク駆動装置3を駆動させて光ディスク4から当該データを読み出さなければならず、エラー訂正処理回路部24の訂正処理が遅れるからである。
【0103】
・又、前記1つのセクタのデータについて訂正処理の回数は予め3回と設定したが、この回数は0回、1回、2回又は4回以上と適宜変更して実施してもよい。さらに、この回数を演算情報とし、その時々で同様に変更するように内部プロセッサ21からの制御で変更してもよい。そして、これらの場合、回数の多いほど、エラー訂正処理回路部24の訂正処理に要する時間が多くなることから、設定した回数に応じて、前記基本周期Ta,Tbを変更して実施してもよい。つまり、回数の多いほど、基本周期Ta,Tbを短くする。
【0104】
この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・又、負荷の検出に行うとき、リードデータから再生クロックを抽出しその再生クロックをリード情報として入力して負荷の検出をしてもよい。つまり、再生クロックの周期が短いほど、訂正前データが増大することから負荷が大きくなる。反対に、再生クロックの周期が長いほど、訂正前データが減少することから負荷が小さくなる。そして、これら周期を検出することによって、クロック信号CLKの周期Tを制御することができる。又、再生クロックが発生していない時には、リードデータが何らかの原因で読み出されていないので、読み取り不能信号HSGと同様にクロック信号CLKの出力を停止させる。
【0105】
この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・又、負荷の検出に行うとき、内部プロセッサ21から光ディスク駆動装置3がサーボエラーの信号を入力した時、サーボエラーの信号をリード情報として入力して負荷の検出をしてもよい。この場合、訂正前データが減少するとして負荷が小さくなる。この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0106】
・前記実施形態では、負荷の大小でエラー訂正処理回路部24の処理速度を制御した。これを図7に示すように、負荷の大小に基づいてバッファメモリ13に記憶した訂正後データを読み出しコンピュータ2に出力する外部インターフェース回路14の読み出し速度を制御してもよい。
【0107】
図7において、訂正処理能力制御回路部25の負荷検出回路37の負荷検出に基づいて能力制御回路38は、外部インターフェース回路14の読み出し速度を決定するクロック信号を同インターフェース回路14に出力する。つまり、前記実施形態と同様に、能力制御回路38は負荷の大小によってクロック信号の周期を変更して出力する。
【0108】
因みに、エラー訂正処理回路部24にかかる負荷が大きい場合には、訂正処理が遅く訂正後データの量は少ないと判断し、読み出し速度もそれに対応して遅くてもよいことからクロック信号の周期を長くする。反対に、エラー訂正処理回路部24にかかる負荷が小さい場合には、訂正処理が速やかに行われ訂正後データの量は多くなると判断し、読み出し速度を速くする必要があることからクロック信号の周期を短くする。この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0109】
さらに、この場合、外部インターフェース回路14とともに前記エラー訂正処理回路部24の処理速度もあわせて制御するようにしてもよい。この場合にも、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0110】
・前記実施形態では、クロック信号CLKの周期Tをその時の周期T(第1及び第2基本周期Ta,Tbを含む)と調整量ΔTd,ΔTu,ΔT0を使って求めた。これを、その時々の負荷に対するクロック信号CLKの周期Tが一義的に決めたデータを予め用意して該データに基づいて実施してもよい。この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0111】
・前記実施形態では、訂正前データと訂正後データは、共に1つのバッファメモリ13を共有しそれぞれ同バッファメモリ13に記憶されるようになっていた。これを、訂正前データと訂正後データをそれぞれ個別のメモリを設け、その個別のメモリに記憶するようにして実施してもよい。又、1つのメモリであっても、その記憶領域をそれぞれ訂正前データを記憶領域と訂正後データを記憶する領域を予め個々独立に決めて、その決められた領域にそれぞれ独立に記憶するように実施してもよい。
【0112】
この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
・前記実施形態では、光ディスク4に記録されたリードデータから抽出された訂正前データをエラー訂正処理を行うものに具体化したが、光ディスク4に記録されたデータに限定されるものではなく、訂正前データをエラー訂正処理を行うものであるなら、磁気ディスクやその他記録媒体に記録されたデータをエラー訂正処理する処理装置に応用してもよい。この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0113】
・前記実施形態のエラー訂正処理回路部24は、シンドロームを求めユークリッド互助法により誤り位置及び数値多項式を求めてエラー訂正処理を行うものであったが、その他の方法でエラー訂正する訂正処理装置に応用してもよい。この場合においても、バッファメモリ13の規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生も未然に防止することができる。
【0114】
上記各実施の形態から把握できる請求項以外の技術的思想について、以下にその効果とともに記載する。
(イ)請求項7に記載のエラー訂正処理装置の制御方法において、前記エラー訂正処理回路部の演算情報は、そのエラー訂正処理回路部のエラー訂正に要する時間であることを特徴とするエラー訂正処理装置の制御方法。
【0115】
(ロ)請求項7に記載のエラー訂正処理装置の制御方法において、前記エラー訂正処理回路部の演算情報は、前記エラー訂正処理回路部が求めたエラー訂正の数であることを特徴とするエラー訂正処理装置の制御方法。
【0116】
(ハ)請求項7に記載のエラー訂正処理装置の制御方法において、前記エラー訂正処理回路部の演算情報は、前記エラー訂正処理回路部が1つのセクタについて行うエラー訂正処理回数であることを特徴とするエラー訂正処理装置の制御方法。
【0117】
上記(イ)〜(ハ)によれば、負荷は前記エラー訂正処理回路部の演算情報(エラー訂正に要する時間、エラー訂正の数又はエラー訂正処理回数)に基づいて検出される。そして、エラー訂正処理回路部の訂正処理速度又は訂正後データの読み出し速度は負荷に応じて訂正処理速度が変更される。従って、メモリに記憶する訂正前データのデータ量と処理後データのデータ量を調整することができる。その結果、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【0118】
(ニ)請求項8に記載のエラー訂正処理装置の制御方法において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置の読み出し速度に基づいて検出されることを特徴とするエラー訂正処理装置の制御方法。
【0119】
(ホ)請求項8に記載のエラー訂正処理装置の制御方法において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置のシーク情報に基づいて検出されることを特徴とするエラー訂正処理装置の制御方法。
【0120】
(へ)請求項8に記載のエラー訂正処理装置の制御方法において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置が読み出したリードデータに基づいて検出されることを特徴とするエラー訂正処理装置の制御方法。
【0121】
上記(ニ)〜(ヘ)によれば、負荷はディスク駆動装置からのリード情報(読み出し速度、シーク情報又はリードデータ)に基づいて検出される。そして、エラー訂正処理回路部の訂正処理速度又は訂正後データの読み出し速度は負荷に応じて訂正処理速度が変更される。従って、メモリに記憶する訂正前データのデータ量と処理後データのデータ量を調整することができる。その結果、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【0122】
(ト)請求項11に記載のエラー訂正処理装置において、前記能力制御回路は、前記負荷が大きいとき動作クロック信号の周期を短くし、負荷が小さいとき動作クロック信号の周期を長くすることを特徴とするエラー訂正処理装置。
【0123】
上記(ト)によれば、エラー訂正処理回路部は訂正処理能力制御回路部からの制御信号(動作クロック信号)に基づいて負荷に応じた訂正処理速度に制御される。従って、メモリに記憶する訂正前データのデータ量と処理後データのデータ量を調整することができる。その結果、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【0124】
(チ)請求項13に記載のエラー訂正処理装置において、前記能力制御回路は、前記負荷が大きいとき動作クロック信号の周期を短くし、負荷が小さいとき動作クロック信号の周期を長くすることを特徴とするエラー訂正処理装置。
【0125】
上記(チ)によれば、訂正後データの読み出し速度は訂正処理能力制御回路部からの制御信号(動作クロック信号)に基づいて負荷に応じた速度に制御される。従って、メモリに記憶する訂正前データのデータ量と処理後データのデータ量を調整することができる。その結果、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【0126】
(リ)請求項16に記載のエラー訂正処理装置において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置の読み出し速度信号であることを特徴とするエラー訂正処理装置。
【0127】
(ヌ)請求項16に記載のエラー訂正処理装置において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置のシーク情報であることを特徴とするエラー訂正処理装置。
【0128】
(ル)請求項16に記載のエラー訂正処理装置において、前記ディスク駆動装置のリード情報は、そのディスク駆動装置が読み出したリードデータであることを特徴とするエラー訂正処理装置。
【0129】
上記(リ)〜(ル)によれば、負荷はディスク駆動装置のリード情報(読み出し速度信号、シーク情報又はリードデータ)を入力して検出される。そして、エラー訂正処理回路部の訂正処理速度又は訂正後データの読み出し速度は負荷に応じて訂正処理速度が変更される。従って、メモリに記憶する訂正前データのデータ量と処理後データのデータ量を調整することができる。その結果、訂正前データと訂正後データを記憶するメモリの規模を小さくできるとともに、規模の縮小に伴うオーバーフローの発生を未然に防止することができる。
【符号の説明】
【0130】
1 光ディスク制御装置
2 コンピュータ
3 光ディスク駆動装置
4 光ディスク
12 光ディスクコントローラ
13 バッファメモリ
14 外部インターフェース回路
15 入出力駆動回路
21 内部プロセッサ
22 デコーダ
24 エラー訂正処理回路部
25 訂正処理能力制御回路部
31 シンドローム生成回路
32 誤り位置多項式及び誤り数値多項式生成回路
33 誤り位置・数値検出回路
34 書き換え処理回路
35 訂正結果レジスタ
36 ポインタ
37 負荷検出回路
38 能力制御回路
41 分周比制御回路
42 クロック制御・分周回路
CLK クロック信号
T 周期

【特許請求の範囲】
【請求項1】
所定時間においてエラー訂正処理を行い、
前記エラー訂正処理の間に、エラー訂正処理にかかる負荷を検出し、
検出した前記負荷が大きい場合に、所定期間に対するエラー訂正処理の割合を大きくする
ことを特徴とするエラー訂正方法。
【請求項2】
前記負荷は、前記所定期間に行う前記エラー訂正処理の後に行うエラー訂正処理にかかる負荷であることを特徴とする請求項1に記載のエラー訂正方法。
【請求項3】
第1の期間において第1のエラー訂正処理を行い、
前記第1の期間に、第2のエラー訂正処理にかかる負荷を検出し、
前記負荷が前記第1のエラー訂正処理にかかる負荷よりも大きい場合に、第2の期間に対する第2のエラー訂正処理の割合を大きくする
ことを特徴とするエラー訂正方法。
【請求項4】
前記負荷は、前記エラー訂正処理に要する時間、又はエラー訂正処理における誤りの数、又は前記エラー訂正処理の回数である
ことを特徴とする請求項1〜3のいずれか1項に記載のエラー訂正方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−217930(P2009−217930A)
【公開日】平成21年9月24日(2009.9.24)
【国際特許分類】
【出願番号】特願2009−153539(P2009−153539)
【出願日】平成21年6月29日(2009.6.29)
【分割の表示】特願2008−215556(P2008−215556)の分割
【原出願日】平成10年12月14日(1998.12.14)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】