JP3295537B2 - 多数バイトのエラー検出訂正装置 - Google Patents

多数バイトのエラー検出訂正装置

Info

Publication number
JP3295537B2
JP3295537B2 JP17736794A JP17736794A JP3295537B2 JP 3295537 B2 JP3295537 B2 JP 3295537B2 JP 17736794 A JP17736794 A JP 17736794A JP 17736794 A JP17736794 A JP 17736794A JP 3295537 B2 JP3295537 B2 JP 3295537B2
Authority
JP
Japan
Prior art keywords
error
block
byte
length
sub
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
Application number
JP17736794A
Other languages
English (en)
Other versions
JPH0846522A (ja
Inventor
一久 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP17736794A priority Critical patent/JP3295537B2/ja
Priority to US08/356,159 priority patent/US5610929A/en
Publication of JPH0846522A publication Critical patent/JPH0846522A/ja
Application granted granted Critical
Publication of JP3295537B2 publication Critical patent/JP3295537B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスク装置などの記
憶装置に記録した符号語を読み取る際に生じる読み取り
エラーを訂正するエラー検出訂正装置に関し、特に、リ
ード・ソロモン符号を用いて一度に複数バイトのエラー
訂正ができる多数バイトエラーの訂正装置に関する。
【0002】
【従来の技術】従来、計算機システムの外部記憶装置を
構成するサブシステムにあっては、入出力制御装置(inp
ut/output control unit) との配下に入出力装置として
のディスクユニットを接続している。このような外部記
憶装置で用いられるエラー訂正システムは、下位のディ
スクユニットにおいて記憶媒体から読出したデータやシ
ンドロームを上位の入出力制御装置に送って一旦メモリ
へ保持し、ディスクユニットからエラー検出の通知を受
けた場合に、訂正動作を行うようにしている。このよう
なエラー訂正システムは、据え置き型として知られてい
る。
【0003】これに対し下位のディスクユニットで記憶
媒体から読出したデータやシンドロームを上位の入出力
制御装置に送ってメモリへ保持しておくことはせず、デ
ータ転送中、即ち、磁気ディスクユニットの場合には、
データの存在するトラック上をヘッドが飛行中(On-the
-fly)に、データを上位の入出力制御装置に向けて転送
しながら訂正動作を行うオン・ザ・フライ態様のエラー
訂正システムがある。
【0004】このようなオン・ザ・フライ態様のエラー
訂正システムは、入出力制御装置でのメモリ格納を必要
とせず、データ転送を行いながらエラー訂正を行うた
め、入出力装置の専有時間が短く、ディスク同期を崩さ
なくて済むため、すぐに次の動作に移れる。また訂正可
能エラーが下位のディスクユニットで訂正された後に上
位の入出力制御装置に送られるため、エラーなしの場合
と同じ扱いになる等の多くのメリットがある。
【0005】
【発明が解決しようとする課題】ところで、従来のオン
・ザ・フライ態様としてのエラー訂正システムは、固定
長のサブブロックのみを対象としている。しかし、エラ
ー訂正システムが適用される磁気ディスク装置は、CK
Dフォーマットに従った可変長データを扱っており、可
変長サブブロックに対するオン・ザ・フライ態様でのエ
ラー訂正をどのようにするかが未解決の課題として残さ
れている。
【0006】即ち、可変長制御されるCDKフォーマッ
トの各レコードは、エラー訂正を行うために固定長のサ
ブブロックに分割され、サブブロックの数を変化させる
ことで可変長になる。更に、最後のサブブロックは、ユ
ーザデータに合わせるために、長さが変化する。オン・
ザ・フライ態様のエラー訂正システムの場合、エラー訂
正の際に1サブブロック分の遅延が生ずる。このため、
長さが変化する最後のサブブロックについては、他の固
定長のサブブロックとは異なったエラー訂正のためのチ
ェンサーチが必要になる。そこで、固定長サブブロック
と可変長サブブロックのエラー訂正に別々のチェンサー
チの演算回路を設けることも考えられるが、可変長サブ
ブロックについては、変化する長さ毎に別回路を設けな
ければならず、回路規模が大きくなりすぎる問題があ
る。
【0007】本発明の目的は、固定長サブブロックと可
変長サブブロックのエラー訂正の処理を少い回路量で効
率良くできるようにしたオン・ザ・フライ態様のエラー
訂正システムを提供する。一方、CKDフォーマットの
レコードにあっては、レコードの先頭に短い固定長のヘ
ッダ及びカウント部を備えており、その後にデータ部と
して複数の固定長サブブロックが続くことになる。上位
のコントローラ(FCU)は、ヘッダ及びカウント部を
リードすると、後続するサブブロックまでの間に設けた
ギャップ中に、リード、ライト等に必要な処理を行う。
【0008】しかし、オン・ザ・フライ態様のエラー訂
正システムは、エラー訂正のためにデータ部のサブブロ
ック固定長に一致する遅延量に決めている。このためデ
ータ長の短いヘッダ及びカウント部についても、データ
部のサブブロックと同じ遅延を受けなければエラー訂正
結果が得られず、その分、上位のコントローラの処理が
遅れる。またエラー訂正の遅延時間を考慮してギャップ
の長さを決めなければならないため、据置き型のエラー
訂正システムに比べギャップが長くなり、ディスクの記
録容量が少なくなる問題があった。
【0009】本発明の他の目的は、ヘッダ及びカウント
部のエラー訂正のための遅延をなるべく少なくし、ギャ
ップの拡大による記憶容量の低減を防止するようにした
オン・ザ・フライ態様の多数バイトのエラー検出訂正装
置を提供する。
【0010】
【課題を解決するための手段】図1は本発明の原理説明
図である。尚、括弧内は実施例図面中の符号である。本
発明の多数バイトのエラー検出訂正装置は、リード・ソ
ロモン符号を用いてエラー訂正を行う。この符号語は、
任意の自然数mで定義されるガロア体GF(2m )の元
で構成される。ディスク媒体などの記憶装置からリード
された符号語は、αa ,αa+1,・・・αa+2n-1(αは前
記ガロア体の原始元、aは任意の自然数でa+2n−1
≦2m −1、nは最大訂正可能なエラーバイト数を示す
定数)を解にもつ生成多項式によってシンドロームを生
成し、符号語中のn個までのバイトエラーを、2n個の
シンドロームバイトを処理することにより訂正する。
【0011】磁気ディスク装置などの入出力装置におけ
るリードエラーの訂正では、例えばn=3個までのバイ
トエラーを訂正する場合が取扱われている。符号語がガ
ロア体GF(28 )の元で構成される場合は、28 =2
56個のキャラクタポジションを有し、各キャラクタの
各々がm=8個の2元ビットのバイトで現わされる。勿
論、本発明はn=3個を越えるバイトエラーの訂正も対
象とする。
【0012】すなわち、本発明は、ディスクユニット等
の入出力装置の記憶媒体から読出された符号語を受信
し、データ訂正符号デコーダ30でデータ転送を行いな
がらエラー訂正を行う。n=3個のバイトエラーを訂正
するリード・ソロモン符号によるエラー訂正を例にとる
と、エラー検出訂正デコーダ30は、次の演算処理を行
う。
【0013】符号語(リードブロック)からシンドロ
ームS0 〜S5 を計算する。 シンドロームS0 〜S5 に基づいてエラーロケーショ
ン多項式の係数γ0 〜γ3 を決定する。 チェンサーチにより、エラーロケーション多項式から
エラーロケーション及びエラーバリューを決定する。
【0014】同時に、エラー訂正の準備に必要な時間
(のシンドロームの計算に必要な時間)だけ遅延させ
たリードデータと、エラーロケーションのタイミングで
出力されたエラー訂正用バリューとの排他論理和(EX
−OR)をとってデータ転送をしながらエラーを訂正す
る。 このようなオン・ザ・フライ態様のエラー訂正を行う図
1(A)のエラー検出訂正デコーダ30につき、本発明
は、CKDフォーマットに従った可変長レコードのエラ
ー訂正を実現する。即ち、可変長レコードは、固定長サ
ブブロックの数を変えており、更に、最後のサブブロッ
クはユーザデータに合わせるために長さが変化する。こ
のように固定長サブブロックの最後に可変長サブブロッ
クが続いても、少ない演算回路の規模で効率良くエラー
ロケーションの演算を行うエラー訂正エンコーダ30の
エラーロケーション演算回路部(316)が提供され
る。
【0015】エラーロケーション演算回路部(316)
は、固定長サブブロック300に続いて可変長サブブロ
ック302を受信した場合、可変長サブブロック302
について固定長サブブロックを想定し(ダミー304の
付加に相当)、先行する固定長サブブロック300のエ
ラーロケーションの演算(エラーサーチ)の実行中に、
想定した固定長サブブロックの開始位置に達したら、演
算結果を出力させない状態で可変長サブブロック302
のエラーロケーションの演算を並行して開始する(ダミ
ーサーチ314)。そして可変長サブブロック302の
開始位置に達したら、演算結果を出力させる状態(エラ
ーサーチ310)に切替える。
【0016】このエラーロケーション演算回路部(31
6)は、受信した固定長サブブロックのエラーロケーシ
ョンを演算する第1エラーロケーション演算回路(31
8)と、受信した可変長サブブロックのエラーロケーシ
ョンを演算する第2エラーロケーション演算回路(32
0)と、先行する固定長サブブロックのシンドローム生
成時に、第1エラーロケーション演算回路(318)の
演算動作を開始してエラーロケーション信号を出力さ
せ、演算動作中に次の可変長サブブロックのシンドロー
ムが生成された時点で、第2エラーロケーション演算回
路(320)にエラーロケーション信号を出力させない
ダミー演算を開始させ、更に、先行する固定ブロックの
演算が終了した時点で、第2エラーロケーション演算回
路(320)から演算結果を出力する演算状態に切替え
る制御回路部(324)とで構成される。この制御回路
部(324)は、連続するサブブロックが固定長サブブ
ロックか最後の可変長サブブロックかを示すモード信号
(E30)に基づいて、第1及び第2エラーロケーション
演算回路部(318,320)を制御する。
【0017】ここで、エラーロケーションを修正された
エラーロケーション多項式を
【0018】
【数2】
【0019】とした場合、第1及び第2エラーロケーシ
ョン演算回路部(318,320)の各々は、次の回路
構成をもつ。まずシンドロームS0 〜S2n-1の生成に基
づき多項式の係数γ0 〜γn が得られた時点で、高次の
データからサーチできるように、予め係数γ0 〜γn
各々にα0 〜αn(N-1)を乗算して、乗算結果を各レジス
タに格納させる第1乗算器を多項式の各項毎に設ける。
また転送と同期してチェンサーチを行うための値α0
α-nを各レジスタの値と繰り返し乗算して各レジスタに
再度格納する第2乗算器を多項式の各項毎に設ける。更
に、エラーロケーション多項式の各項に対応したレジス
タ格納値を加算してエラーロケーション信号として出力
する加算回路が設けられる。
【0020】訂正可能なエラー数をn=3とした場合、
修正されたエラーロケーション多項式は
【0021】
【数3】
【0022】となる。この場合、多項式の各項毎に設け
た第1乗算器は、シンドロームS0 〜S5 の生成に基づ
き多項式の係数γ0 〜γ3 が得られた時点で、α0 〜α
3(N-1)をそれぞれ乗算して結果を各レジスタに格納させ
る。また多項式の各項毎に設けた第2乗算器は、α0
α-3を各レジスタの値と繰り返し乗算して各レジスタに
再度格納する。そして加算回路は、各バイト位置毎に第
1及び第2乗算器で求めたエラーロケーション多項式の
各項に対応したレジスタ格納値を加算して、各バイト位
置でのエラーロケーション信号として出力する。
【0023】エラーロケーションと同時に演算されるエ
ラーバリューについても、同様である。一方、本発明
は、CKDフォーマットのレコードの先頭に設けたヘッ
ダ及びカウント部となる短い固定長の制御用サブブロッ
クのエラー訂正による遅延を、できるだけ少なくする遅
延回路をエラー検出訂正デコーダ30に対し設ける。こ
の遅延回路は、記憶媒体から固定バイト長の短い先頭の
制御用サブブロックと、制御用サブブロックより長い固
定バイト長の1又は複数のデータ用サブブロックを受信
した際に、各受信サブブロックのバイト長に応じた遅延
量に切替えてエラー訂正を行わせる。
【0024】遅延回路は、例えば、制御用サブブロック
の固定バイト長をもつ第1FIFOバッファメモリと、
第1FIFOバッファメモリに縦接続されたデータ用サ
ブブロックの固定バイト長から制御用サブブロックの固
定バイト長を引いたバイト長をもつ第2FIFOバッフ
ァメモリを有する。そして切替回路によって、制御用サ
ブブロックの受信時に第1FIFOバッファメモリの出
力を選択し、データ用サブブロックの受信時に前記第2
FIFOバッファメモリの出力を選択する。
【0025】遅延回路はRAM等の読み書き自在なメモ
リによっても実現できる。この場合、メモリのアドレス
を発生するアドレスカウンタと、アドレスカウンタの発
生アドレスから制御用サブブロックの固定バイト長分だ
けアドレス指定を行ったことを判別する第1デコーダ
と、アドレスカウンタの発生アドレスからデータ用サブ
ブロックの固定バイト長分のアドレス指定を行ったこと
を判別する第2デコーダを設ける。
【0026】アドレスカウンタは、バイトクロックに同
期して、バイト単位の書込みと読出しを行う。即ち、バ
イトクロック周期の前半で入力バイトの書込アドレスを
発生してメモリに書込み、バイトクロック周期の後半
で、1サブブロック分前に書込こんだバイトデータの読
出アドレスを発生してメモリから読出す。そして選択回
路によって制御用サブブロックの受信で第1デコーダの
出力を選択し、またデータ用サブブロックの受信で第2
デコーダの出力を選択し、第1デコーダ又は第2デコー
ダの判別出力が得られた時、アドレスカウンタをリセッ
トして先頭アドレスからの書込みと読出しを繰り返す。
【0027】
【作用】このような本発明の多数バイトのエラー検出訂
正装置によれば次の作用が得られる。まずCKDフォー
マットに従った可変長レコードとして、記憶媒体から読
出された受信データが、任意の数の固定長サブブロック
と最後の可変長サブブロックで構成されていても、固定
長サブブロックのエラーロケーションの演算中に、最後
の可変長ブロックのシンドロームの生成でエラーロケー
ション多項式の係数が得られた時に、可変長サブブロッ
クについて想定した固定長サブブロックの開始位置と判
断し、演算結果を出力させないダミーサーチを並行して
開始する。そして、可変長ブロックの開始位置に達した
ら、演算結果を出力させる本来のチェンサーチの演算に
切替えて可変長ブロックのエラーロケーションを演算す
る。
【0028】このため、ユーザデータに合せるために最
後の可変長ブロックの長さが変化しても、エラーロケー
ションの演算回路は、変化したブロック長に応じてダミ
ーサーチの演算から通常のチェンサーチの演算に切替え
るタイミングを変えるだけでよく、1つの演算回路で可
変サブブロックの全ての長さにつきエラーロケーション
を演算できる。
【0029】またCKDフォーマットの先頭のヘッダ及
びカウント部の制御用サブブロックは、データ用サブブ
ロックに比べ短くなっており、データ用サブブロックの
訂正に必要な遅延を行った場合には、上位のコントロー
ラへの伝送が遅れ、ヘッダ及びカウント部と次のデータ
用サブブロックとの間のギャップを大きくしなければな
らない。
【0030】これに対し本発明は、レコード先頭のヘッ
ダ及びカウント部の制御用サブブロックを識別すると、
エラー訂正のための遅延量を短い制御用サブブロック長
に応じた遅延量に切替えることで、データ用サブブロッ
クに設定した長い遅延時間を待つことなく、直ちにエラ
ー訂正されたヘッダ及びカウント部が得られ、上位コン
トローラに対する遅延を少くし、ギャップを増加させる
必要がない。
【0031】
【実施例】
<目 次> 1.ハードウェア構成 2.エラー検出訂正符号デコード回路 3.可変長サブブロックのエラー訂正の演算 4.ヘッダ及びカウント部のエラー訂正 1.ハードウェア構成 図2はオン・ザ・フライ態様でデータ転送を行いながら
エラー訂正を行う本発明のエラー訂正装置の基本的な構
成である。
【0032】図2において、ディスクユニットは下位の
入出力装置であり、ディスクエンクロージャ14,エラ
ー訂正部16およびフォーマッタ制御プロセッサ18で
構成される。ディスクユニット10は入出力制御装置で
あるディスクコントローラ12の配下に接続されてい
る。ディスクコントローラ12はホストコンピュータの
チャネル装置に接続される。ホストコンピュータからの
入出力要求に基づきディスクコントローラ12にライト
またはリードのアクセス要求が行われると、ディスクコ
ントローラ12はまずディスクユニット10にシークコ
マンドを発行して切離す。フォーマッタ制御プロセッサ
18はディスクエンクロージャ14に設けているヘッド
機構のシーク動作を行って、目的とするトラックにヘッ
ドを位置付ける。
【0033】ディスクユニット10よりシーク完了報告
を受けるとディスクコントローラ12との再結合が行わ
れ、ライトデータの転送による書込みまたはディスク媒
体からのデータ読出しによるリード動作が行われる。エ
ラー訂正部16はライト動作の際には、リード・ソロモ
ン符号を生成するエンコード動作を行う。またリード動
作時には、リードデータを転送しながらのオン・ザ・フ
ライ態様のエラー訂正(デコード動作)が行われる。
【0034】図3は図2のディスクユニット10に設け
られたエラー訂正部16の実施例である。まずライト系
統を説明する。フォーマッタ制御プロセッサ18からの
ライトデータは、ゲート20を通ってエラー検出訂正エ
ンコーダ(ECCエンコーダ)22に入力される。この
実施例にあっては、訂正能力n=3バイトのエラーを訂
正するリードソロモン符号を使用する場合を例にとって
いる。ここでライトデータは、8ビット幅のバイトデー
タのストリームとして供給される。
【0035】エラー検出訂正エンコーダ22は、ガロア
体GF(28 )で構成されるエラー検出訂正符号のチェ
ックバイト(以下「ECCチェックバイト」という)を
生成する。この場合の生成多項式は、例えばガロア体の
元α0 ,α1 ,α2 ,α3 ,α4 ,α5 を解にもつもの
が挙げられる。具体的に生成多項式は、
【0036】
【数4】
【0037】となる。エラー検出訂正エンコーダ22に
よりデータ部から生成されたECCチェックバイトは、
データの後に付加され、マルチプレクサ24,36を介
してディスクエンクロージャ14にライトデータとして
出力され、ディスク媒体に書き込まれる。
【0038】この実施例において、エラー検出訂正エン
コーダ22は、入力するユーザデータを偶数バイトと奇
数バイトごとに、ECCチャックバイトを生成するため
のインターリーブを行い、各サブブロック毎に生成した
ECCチャックバイトを付加して出力する。図4はエラ
ー検出訂正エンコーダ22におけるインタリーブの概念
を示す。ユーザデータはバイト分けした番号で示されて
いる。このユーザデータは偶数バイト42−1と奇数バ
イト42−2にインターリーブされる。インタリーブ当
りの符号長は、最大で例えば255バイトとなり、その
範囲内で適宜に定めることが出来る。尚、偶数バイト4
2−1と奇数バイト42−2は、説明の都合上、分けて
示しているが、実際の処理でバイト単位に分けられるこ
とはなく、1つのバイトストレームとして扱われる
【0039】インタリーブされた偶数バイト42−1及
び奇数バイト42−2の後には、エラー検出訂正エンコ
ーダ22によってチャックバイトECCが6バイト付加
される。このためエラー検出訂正エンコーダ22から出
力されるサブブロック42は、見掛け上、データと12
バイトのECCチャックバイトを合せた最大500バイ
トになる。
【0040】更に、ディスクドライブ10は、CKDレ
コードフォーマットを採用していることから、レコード
長は可変であり、1レコード長はユーザデータの長さで
決まる。したがって、ユーザデータのサブブロック数
も、ユーザデータの長さによって変わる。更に、最後の
サブブロックは、ユーザデータに合わせるために、固定
サブブロック長の範囲で長さが変化する可変長サブブロ
ックとなる場合がある
【0041】次に図3のリード系統を説明する。ディス
クエンクロージャ14側から読み出された生のリードデ
ータ、即ちサブブロック単位の符号語は、ゲート28を
介してエラー検出訂正デコーダ(ECCデコーダ)30
に入力される。同時に、ゲート28からのリードデータ
は分岐されてFIFOバッファメモリ32に格納され
る。FIFOバッファメモリ32はエラー検出訂正デコ
ーダ30における訂正動作に必要な1サブブロック分以
内の遅延を行う。
【0042】エラー検出訂正デコーダ30はリードデー
タのサブブロックに含まれる2つの符号語を対象に、n
=3バイトまでのエラーを検出訂正する強力なエラー訂
正を行う。エラー検出訂正デコーダ30からは排他論理
和回路34に対し、サブブロック内のエラー・ロケーシ
ョンのバイトタイミングでエラーバリューが出力され、
同じタイミングでFIFOバッファメモリ32により出
力される訂正前のバイトデータとの排他論理和をとるこ
とで、エラーを起こしているバイトのエラービットを反
転してエラー訂正を行う。
【0043】排他論理和回路34でエラーが訂正が行わ
れたクリアデータは、マルチプレクサ36を介して訂正
済みユーザデータとしてフォーマッタ制御プロセッサ1
8を経由して上位のディスクコントローラ12に転送さ
れる。このようなリードデータのオン・ザ・フライ態様
によるエラー訂正にあっては、ディスクエンクロージャ
14側からのリードデータのバイトストリームが途切れ
ることがなく、フォーマッタ制御プロセッサ18側に転
送しながらn=3バイトまでの同時訂正を可能としてい
る。
【0044】更に図3にあっては、エラー検出訂正デコ
ーダ30における未検出および誤訂正をエラー検出符号
(EDC)を用いて監視するため、ライト系統にエラー
検出エンコーダ38を設け、またリード系統にはエラー
検出デコーダ40を設けている。図5は本発明における
エラー検出用のチェックバイトを付加したユーザデータ
を示す。ユーザデータは可変長デーダであり、データ長
に応じたn個のサブブロック42−1〜42−nで構成
されている。
【0045】このようなエラー検出訂正エンコーダ22
から出力されるユーザデータの後には、エラー検出エン
コーダ38で生成したエラー検出用チェックバイト部
(以下「EDCチェックバイト部」という)44が付加
される。 2.エラー検出訂正符号デコード回路 図6は図3に示したエラー検出訂正デコーダ30の詳細
を示す。
【0046】図6において、エラー検出訂正エンコーダ
30は、シンドローム生成回路84,係数演算回路8
6,88,エラー位置およびエラーバリュー演算回路9
0で構成される。シンドローム生成回路84は、最大3
バイトエラー訂正の場合、リードデータから6つのシン
ドロームS0 〜S5 を計算して出力する。このシンドロ
ームS0 〜S5 の計算方法は周知であり、例えば排他論
理和(EX−OR回路)、OR回路およびシフトレジス
タを用いることで実現される。係数演算回路86はシン
ドロームS0 〜S5 を入力し、次のエラーロケーション
多項式の係数γ0〜γ2 を算出する。
【0047】
【数5】
【0048】次の係数演算回路88は、係数演算回路8
6からのエラーロケーション多項式の係数をn元連立方
程式の解β0 ,β1 ,β2 として求める過程で得られた
値γ 0 〜γ3 とシンドロームS0 , S1 ,S2 を入力
し、エラーバリューを求めるための係数Φ0 ,Φ1 ,Φ
2 を次式により算出する。
【0049】
【数6】
【0050】最終段に設けたエラーロケーションおよび
エラーバリュー演算回路90は、エラーロケーション係
数γ0 〜γ2 およびエラーバリュー係数Φ0 〜Φ2 が得
られた状態で、実際のエラーロケーションおよびエラー
バリューかどうかの試行錯誤的なチェン・サーチを行
い、算出したエラーロケーションのタイミングでエラー
ロケーション検出信号E4 をアンド回路94に出力して
許容状態とし、同時に得られているエラーバリューに基
づくエラーパターンベクトルEi (但し、i=i 1 ,i
2 ,i3 )を訂正動作のために出力する。
【0051】エラーパターンベクトルEi は次式で与え
られる。
【0052】
【数7】
【0053】エラーパターンベクトルEi はマルチプレ
クサ94を介して排他論理和回路34に与えられ、同じ
タイミングでFIFOバッファメモリ32より出力され
たエラーロケーションのバイトデータとの排他論理和を
とることで、エラービットを反転する訂正を行う。エラ
ーロケーションの決定は、周知のチェン・サーチの手順
を通じて決定される。通常、のエラーロケーションの決
定には、修正された次のエラーロケーション多項式が使
用される。
【0054】
【数8】
【0055】これを訂正可能なエラー数t=3について
表わすと次のようになる。
【0056】
【数9】
【0057】この場合のエラーバリューとしてのエラー
パターンベクトルEiは、
【0058】
【数10】
【0059】である。 3.可変長サブブロックのエラー訂正の演算 図6のエラー検出訂正デコーダ30に設けたエラーロケ
ーションおよびエラーバリュー演算回路90にあって
は、記憶媒体よりCKDフォーマットにより可変長制御
されたデコーダデータを受信した際に、可変長レコード
が複数の固定長サブブロックと最後の可変長サブブロッ
クをもっていることから、固定長サブブロックについて
は通常のチェン・サーチに従ったエラーロケーションの
演算を行う。これに対し、最後に受信される可変長サブ
ブロックについては、ダミーサーチを含む特別なエラー
ロケーションの演算を行う。このエラーロケーションの
演算に用いるエラーロケーション多項式(ELP)は、
n=3バイト訂正の場合、次のように表わせる。
【0060】
【数11】
【0061】(8)式の係数γ3 〜γ0 は、受信したサ
ブブロックから生成したシンドロームS0 〜S5 に基づ
いて決定される。このエラーロケーション多項式のXに
バイトデータの位置を表わす有限体の元αn を代入し、
エラーロケーション多項式の値が0となったところがエ
ラーロケーションを表わす。ここで、nはサブブロック
のバイト位置を示す値であり、n=0〜N−1となる。
また、Nは固定長サブブロックのインタリーブ当りのバ
イト数である。
【0062】記録媒体から読み出されるデータは、高次
から低次の順に読み出される。そこで、チェン・サーチ
の際にシンドロームの生成に基づいて得られた係数γに
バイト位置(N−1)における有限体の元α3(N-1),α
2(N-1),α(N-1) およびα0をそれぞれ乗算しておき、
その後のバイト位置N−2〜0のタイミングにおいて、
α-3,α-2,α-1, α0 をバイトデータに同期して繰り
返し演算することで、高次のバイト位置(N−1)の方
からチェン・サーチによるエラーロケーションの演算が
できる。
【0063】サブブロックが固定長の場合には、これだ
けの動作でエラーロケーションを求めることができる。
しかしながら可変長サブブロックの場合には、固定長サ
ブブロックのバイト数Nに対し(N−2)〜1の範囲で
データ長が変化するため、各データ長に対応した乗算器
をもつ必要がある。しかしながら、このように可変長サ
ブブロックのデータ長に対応した乗算器を設けた場合に
は、固定長サブブロックのバイト数N分の乗算器を必要
とし、回路規模が大きくなりすぎる。
【0064】そこで本発明にあっては、可変長サブブロ
ックについて固定長サブブロックの開始位置を想定した
ダミーサーチを行い、実際の可変長サブブロックの開始
位置で回路を切り替えて、可変長サブブロックに対し通
常のエラーサーチによる訂正を行う。この点はエラーバ
リューの演算についても同様である。図7は、可変長サ
ブブロックのエラーサーチの手順である。まず図7
(A)は、エラー検出訂正デコーダ30に対するデータ
入力であり、時刻t0で固定長サブブロック300の受
信が開始される。固定長サブブロック300は、固定バ
イト長C0をもつ。固定長サブブロック300の受信が
済むと、時刻t1から可変長サブブロック302の受信
が開始される。可変長サブブロック302は、バイト長
Cnを有する(Cn<C0)。
【0065】時刻t0で固定長サブブロック300を受
信してから、そのシンドロームS0〜S5 が生成される
までに固定バイト長C0分の遅延時間が必要となる。こ
のため、図8(B)のように、時刻t1で固定長サブブ
ロック300のシンドロームS0 〜S5 が生成され、こ
れに基づきエラーロケーション多項式の係数γが得ら
れ、時刻t1より固定長サブブロック300のエラーサ
ーチ306が開始される。
【0066】一方、可変長サブブロック302について
は、図7(C)のように、ダミーブロック304を付加
した固定長サブブロックを想定する。ダミーブロック3
04のバイト長は、この場合、(C0−Cn)となり、
ダミーブロック304の開始位置、即ち可変長サブブロ
ック302について想定した固定長サブブロックの開始
位置を認識することができる。
【0067】このダミーブロック304の開始位置は、
図7(A)の入力データに示すように、可変長サブブロ
ック302の入力が終了した時刻t2のタイミングに一
致する。固定長サブブロック306のエラーサーチ中
に、可変長サブブロック302について想定したダミー
ブロック304の開始位置、即ち時刻t2を認識する
と、この時点で可変長サブブロック302のシンドロー
ムS5 〜S0 が生成されて、エラーロケーション多項式
の係数γが得られていることから、ダミーブロック30
4の開始位置からエラーサーチを開始する。
【0068】このダミーブロック304のエラーサーチ
は、演算したエラーロケーションの結果をエラー訂正の
ために出力しない内部的な演算ループの繰返しであるこ
とからダミーサーチ308となる。したがって、時刻t
2からは固定長サブブロックのエラーサーチ306と、
可変長サブブロック302について想定したダミーブロ
ック304についてのダミーサーチ308が並行して行
われる。
【0069】時刻t3で固定長サブブロックのエラーサ
ーチ306が終了して、本来の可変長サブブロック30
2の先頭バイト位置の時刻t3になると、それまでのダ
ミーサーチ308から可変長サブブロックのエラーサー
チ310に演算回路を切り替える。具体的には、ダミー
サーチ308では演算結果を出力していなかったもの
を、エラーサーチ310にあっては演算結果を出力して
エラー訂正を実行させる。図8は、図7の可変長サブブ
ロックのエラーロケーションおよびエラーバリュウの演
算を行うエラー検出訂正デコーダ30と、そのための制
御回路部となるフォーマッタ制御プロセッサ18の機能
である。フォーマッタ制御プロセッサ18には、ファー
ムウエア312として受信データが固定長サブブロック
か可変長サブブロックかを示すモード信号E30を生成
するための機能が設けられる。ファームウエア312で
生成されたモード情報はレジスタ314に格納され、モ
ード信号E30としてECCデコーダ30に対するデー
タに同期して出力される。
【0070】図9は、図8のエラー検出訂正デコーダ3
0に設けられるエラーロケーションおよびエラーバリュ
ー演算回路90の実施例である。図9において、エラー
ロケーションの演算はエラーロケーション演算回路31
6で行われ、一方、エラーバリューの演算はエラーバリ
ュー演算回路322で行われる。エラーロケーション演
算回路316およびエラー位置演算回路322の制御
は、モード信号E30およびクロックCLKに基づき、
制御回路部324が行う。
【0071】エラーロケーション演算回路316を例に
とると、固定長サブブロックのエラーサーチを行う第1
エラーロケーション演算回路318と可変長サブブロッ
クのエラーサーチを行う第2エラーロケーション演算回
路320が設けられている。モード信号E30から固定
長サブブロックを判別した場合には第1エラーロケーシ
ョン演算回路318が動作し、固定長サブブロックから
生成したシンドロームに基づいて図6の係数演算回路8
6より入力するエラーロケーション多項式の係数γ0
γ3 に基づき、前記(8)式に従ったチェン・サーチの
演算をデータに同期して実行する。
【0072】可変長サブブロックの受信が判別される
と、制御回路部324は先行する固定長サブブロックの
エラーサーチ中に可変長サブブロックの固定長サブブロ
ックとしての開始位置を想定したタイミングで第2エラ
ーロケーション演算回路320を動作し、結果を出力さ
せない所謂ダミーサーチを行わせる。可変長サブブロッ
ク開始位置のタイミングを検出すると、制御回路部32
4はダミーサーチを行っている第2エラーロケーション
演算回路320の演算結果を出力信号ELPとして外部
に出力し、同時にエラーバリュー演算回路322より出
力されるエラーパターンベクトルEiに基づき可変長サ
ブブロックの各バイト位置でのエラー訂正を行わせる。
【0073】エラーバリュー演算回路322についても
同様に、固定長サブブロックのエラーパターンベクトル
を演算する第1エラーバリュー演算回路323と可変長
サブブロックのエラーバリューを演算する第2エラーバ
リュー演算回路325が設けられ、それぞれ図6の係数
演算回路88より得られるΦ0 〜Φ2 とシンドロームS
0 〜S2 に基づき、各バイト位置でのエラーパターンベ
クトルを演算する。
【0074】この内、可変長サブブロックのエラーロケ
ーションの演算を行う第2エラーバリュー演算回路32
5にあっては、ダミーサーチのタイミングでは演算結果
を出力せず、可変長サブブロックの開始位置で演算結果
を有効に出力する状態に切り替わって、エラー訂正を実
質的に可能とする。図10は、図9のエラーロケーショ
ン演算回路316の実施例である。
【0075】この実施例は(8)式のエラー訂正多項式
の各項ごとに演算回路部340,360,380,40
0の4つを設けており、加算器418,420,422
の3つで各項の演算結果を加算してエラーロケーション
情報ELPを出力する。演算回路部340は、エラーロ
ケーション多項式の係数γ3 の項の演算を行う。この演
算回路部340は、第1乗算器342、マルチプレクサ
344、マルチプレクサ346、レジスタ348、第2
乗算器350で、固定長サブブロックについてのエラー
サーチを行うための第1エラーロケーション演算回路3
18の一部を構成している。
【0076】一方、マルチプレクサ352、レジスタ3
54および第2乗算器356によって、可変長サブブロ
ックのダミーサーチおよびエラーサーチを行う第2エラ
ーロケーション演算回路部320の一部を構成してい
る。このエラーロケーション演算回路部側の実際の動作
にあっては、固定長サブブロック側の第1乗算器342
およびレジスタ348を共用した回路動作を行う。
【0077】演算回路部360は係数γ1 の項のエラー
サーチを行い、演算回路部380は係数γ0 の項の演算
を行い、更に演算回路部400は係数γ2 の項の演算を
行い、それぞれ演算回路部340と同じ回路構成をもっ
ている。図11(A)〜(C)は、図10の係数γ3
項の演算回路部340を例にとって、固定長サブブロッ
クのエラーサーチおよび可変長サブブロックのダミーサ
ーチとエラーサーチのそれぞれの演算動作を表わす。
【0078】図11(A)は、固定長サブブロックの演
算の様子である。まず、固定長サブブロックの受信が終
了したタイミングでシンドロームが生成されることか
ら、生成されたシンドロームに基づいて係数γ3 が第1
乗算器342に入力し、有限体の元α3Cと掛け合わさ
れ、マルチプレクサ344,346を介してレジスタ3
48に格納される。
【0079】ここで、乗算器342で掛け合わせるα3C
は固定長サブブロックであることから、C=N−1であ
る。そして、レジスタ348に格納された値は固定長サ
ブブロックの先頭バイトの係数γ3 の項の値として図1
0に示すように加算器418に出力され、他の回路部3
60,380,340の結果と共に加算されて、加算器
422より先頭バイト位置でのELP信号として出力さ
れる。
【0080】固定長サブブロックの2バイト目以降につ
いては、各バイトごとにレジスタ348の値を乗算器3
50に出力してα-3と掛け合わせた後に再びレジスタ3
48に格納するエラーサーチの演算を繰り返す。図11
(B)は、図11(A)に示す固定長サブブロックのダ
ミーサーチの演算中に、次の可変長サブブロックについ
て想定した固定長サブブロックの開始位置に到達してダ
ミーサーチに入ったときの演算の様子である。
【0081】ダミーサーチの開始タイミングにあって
は、固定長サブブロックに続く可変長サブブロックにつ
いてシンドロームが生成されてエラー訂正多項式の係数
γ3 が乗算器342に入力され、固定長サブブロックの
場合と同様、α3Cを掛け合わせた値をマルチプレクサ3
52を介してレジスタ354に格納する。このとき、マ
ルチプレクサ346は固定長サブブロックのダミーサー
チを行っている演算器350側に切り替わっており、レ
ジスタ354側を切り離している。このためレジスタ3
54に格納された値は出力されない。
【0082】レジスタ354に対する乗算結果の格納が
済むと、次のバイト位置ではレジスタ354の値を乗算
器356に入力してα-3と掛け合わせ再びレジスタ35
4に格納するダミーサーチを行う。このとき上側の乗算
器350にあってもレジスタ348の値との乗算を行っ
てレジスタ358に格納し、その格納結果は外部に出力
されて有効なエラーサーチとなっている。
【0083】図11(C)は、可変長サブブロックの開
始位置に達して、可変長サブブロックについて通常のエ
ラーサーチの演算に切り替わった状態である。即ち、マ
ルチプレクサ346がダミーサーチを行っていたレジス
タ354、乗算器356およびマルチプレクサ352側
の演算結果をレジスタ348に格納するように切り替わ
る。このため、レジスタ354の値を乗算器356に入
力して乗算した結果は、マルチプレクサ352,346
を介してレジスタ348に格納され、外部に出力され
る。同時に、レジスタ354に演算結果が格納される。
【0084】図12は、図10のエラーロケーション演
算回路部316を制御する制御回路部324の一実施例
である。まず、デコーダ326,327にはモード信号
E30が入力される。モード信号E30は、図13
(A)に示すように、入力データにおける各サブブロッ
クのデータ部とECC部を識別する信号である。このモ
ード信号E30を入力したデコーダ326は、図13
(D)に示すように、データモードでビット1となるデ
コーダ出力E32を生ずる。一方、デコーダ327は、
図13(E)に示すように、固定長サブブロック300
のECC部と可変長サブブロック302のECC部との
相違を識別して、可変長サブブロック302のデータ部
のタイミングでビット1となるデコーダ出力E34を生
ずる。
【0085】デコーダ326の出力E32は次のクロッ
クタイミングでラッチ329にラッチされ、図13
(F)に示すラッチ出力E36を生ずる。ラッチ329
のラッチ出力E36はカウンタ330に対するイネーブ
ル信号となり、ラッチ出力E36がビット1に立ち上が
ったタイミングからクロックCLKの計数が開始され
る。カウンタ330は、ラッチ出力E36によりイネー
ブル状態となるため、図13(F)(G)に示すよう
に、図13(B)の固定長サブブロック300について
はラッチ出力E36がビット1となるイネーブル区間に
亘り、カウントを繰り返している。これに対し可変長サ
ブブロック302の入力時には、ラッチ出力E36のイ
ネーブル状態が固定長サブブロックの固定長C0の期間
に亘り維持されることから、カウンタ330は0〜C0
のカウントを行う。
【0086】デコーダ331は、カウンタ330のカウ
ント値E38が可変長サブブロックのダミーサーチから
通常のエラーサーチに切り替えるタイミングt3に達す
ると、即ちデコーダ331でカウンタ値C0が判別され
ると、デコーダ出力E40がビット1となり、ラッチ3
32にラッチされ、ダミーサーチから通常のエラーサー
チに切り替えるための切替信号E42が出力される。
【0087】ラッチ332の出力は、更にラッチ(D−
FF)333,334を介してリセット信号として帰還
されることから、2クロック後にラッチ332のリセッ
トが行われ、切替信号E42はビット0に戻る。また、
このタイミングでORゲート328を介してラッチ32
9のリセットとカウンタ330のクリアが行われる。図
14は可変長サブブロックのエラー訂正を行う他の実施
例であり、この実施例は図9のように制御回路部をエラ
ー検出訂正デコーダ30側に設けず、フォーマッタ制御
プロセッサ18側に設けたことを特徴とする。即ちフォ
ーマッタ制御プロセッサ18には、ファームウエア50
0としてモード信号E30の作成機能と、図12に示し
たような制御回路部の機能が組み込まれている。
【0088】ファームウエア500からのモード情報は
レジスタ502に格納され、エラー訂正デコーダ30に
モード信号E30として出力される。また、レジスタ5
04にはファームウエア500によるデータの伝送に同
期して作成された制御情報が格納され、制御信号E50
としてエラー訂正デコーダ30に出力される。図15
は、制御回路部にROMを使用した実施例である。この
実施例にあっては、エラー訂正デコーダ30に対する各
種の制御信号E50をデータとしてROM512に格納
しており、フォーマッタ制御プロセッサ18に設けたフ
ァームウエア506で受信データのモードと状態に応じ
て予め定めた制御信号のビットパターンを選択するため
のアドレス情報を生成して、レジスタ510よりROM
512をアドレス指定して、対応するビットパターンの
制御信号E50を出力させている。
【0089】更に、図14,図15のフォーマッタ制御
プロセッサ18に設けたファームウエア500,506
にあっては、リード時のエラー訂正のみならず、ライト
時の図3に示したエラー訂正エンコーダ22およびエラ
ー検出エンコーダ38に対する制御信号も、そのときの
モード信号に基づいて生成し出力する。図16は、図1
4,15のフォーマッタ制御プロセッサ18によるライ
トデータの転送に同期してECCチェックバイト及びE
DCチェックバイトを付加するエンコード動作のタイム
チャートである。
【0090】図16(A)はクロックCLKであり、図
16(B)のモード信号E30に従ってデータ転送され
る。図3のエラー訂正エンコーダ22およびエラー検出
エンコーダ38の入力段に設けたレジスタには、図16
(C)に示すサブブロックデータのレジスタ入力が行わ
れる。このレジスタ入力は、2つの固定長サブブロック
424,426に続いて可変長サブブロック428を入
力した場合を例にとっている。
【0091】このようなレジスタ入力を受けたエラー訂
正エンコーダ22およびエラー検出エンコーダ38は、
図16(D)に示すレジスタ出力によってディスク媒体
などへの書込みを行う。レジスタ入力に対し、エラー訂
正エンコーダ22は1クロックの遅れをもって、図16
(D)のように固定長サブブロック424,426およ
び可変長サブブロック428の後ろにECCチェックバ
イト430,432,434を付加して出力する。更
に、一番最後にエラー検出エンコーダ38で作成された
EDCチェックバイト436(D1,D2,D3,D
4)が付加される。
【0092】図16(E)はECCゲートであり、レジ
スタ入力した各サブブロック424,426,428の
後ろのECCチェックバイトのタイミングを表わす。図
16(F)はデータとECCの切替信号であり、ECC
ゲートに同期した信号となる。図16(G)は、一番最
後に付加するEDCチェックバイト346を付加するた
めのゲートである。
【0093】図16(H)〜(K)のD1〜D4ゲート
は、図3のエラー検出エンコーダ38内において各ED
CチェックバイトD1〜D4を演算するためサブブロッ
ク424,426,428を取り込むためのゲートであ
る。図16(L)は、エラー検出エンコーダ38におい
てEDCチェックバイトD2,D4についてECCチェ
ックバイトのタイミングでバイトデータの取込みを禁止
するためのゲートである。
【0094】更に図16(M)は、図3のマルチプレク
サ24のモード切替えの信号であり、このモード信号が
立ち上がっている間、エラー検出エンコーダ38の出力
が選択され、ECCチェックバイトの付加が済んだ一連
のデータの一番最後に4バイトのEDCチェックバイト
436を付加する。図17は、図14および図15に示
したフォーマッタ制御プロセッサ18によるデータ伝送
に同期したエラー検出訂正の様子である。
【0095】図17(A)のクロックCLKに同期して
図17(B)のモード信号E30が得られる。また、エ
ラー訂正エンコーダ22に対するレジスタ入力として図
17(C)に示す2つの固定長サブブロックと1つの可
変長サブブロックの入力が得られる。これは図16
(D)のデータ書込みが行われたレジスタ出力に対応し
ていることから、同じ番号で表わす。
【0096】図17(C)のレジスタ入力は、1クロッ
ク遅れて、図17(D)のFIFOバッファメモリ32
に対する入力となる。このFIFO入力に同期して、エ
ラー訂正エンコーダ22において、図18(E)(F)
に示すシンドロームレジスタ入力1,2としてのシンド
ロームの生成がクロックに同期したバイト入力ごとに行
われ、図17(H)の固定長シンドローム生成ゲートの
タイミングで示すように、固定長サブブロック424,
426についてそれぞれシンドロームが生成される。
【0097】生成されたシンドロームは、図17(G)
のシンドロームレジスタゲートのタイミングで読み出さ
れ、シンドロームに基づいて、図9に示したエラーロケ
ーション演算回路部316に対するエラーロケーション
多項式の係数γ0 〜γ3 が求められて供給されることに
なる。したがって、図17(K)のエラーサーチゲート
に示すように、シンドロームレジスタゲートのタイミン
グで固定長サブブロック424,426についてのエラ
ーサーチが行われる。
【0098】一方、可変長サブブロック428について
は、図17(J)の可変長シンドローム生成のタイミン
グで、図17(E)のシンドロームレジスタ入力1のよ
うに可変長サブブロックのシンドロームが生成され、図
17(G)のシンドロームレジスタゲートのタイミング
で、図17(F)のシンドロームレジスタ入力2とな
り、同様にシンドロームから求めたエラーロケーション
多項式の係数γ0 〜γ3が図9のエラーロケーション演
算回路部316にセットされ、この時点から固定長サブ
ブロック426のエラーサーチに並行して可変長サブブ
ロック426のダミーサーチが行われる。
【0099】図17(L)に示すFIFO出力から明ら
かなように、先行する固定長サブブロック426のエラ
ーサーチが終了するタイミングで、図17(I)に示す
エラーサーチ切替信号が有効となり、可変長サブブロッ
ク428のダミーサーチから通常のエラーサーチへの切
替えが行われる。ここでエラー検出訂正は、エンコード
時のインタリーブに対応し、受信サブブロックの偶数バ
イトと奇数バイトに分けてシンドロームの生成が行われ
ている。
【0100】図17(M)〜(S)は、図3のエラー検
出デコーダ40の処理である。エラー訂正デコーダ30
からのエラーロケーション信号およびエラーバリューに
基づいてEX−OR回路34でエラー訂正が行われたク
リアデータは、上位コントローラに伝送されると同時
に、図17(M)に示すように、1クロック遅れたタイ
ミングでエラー検出デコーダ40のレジスタ入力とな
る。
【0101】このレジスタ入力に対し、図17(N)〜
(R)のD1〜D4ゲート、およびD2,D4禁止ゲー
トの設定によって、EDCチェックバイト436を用い
たエラー訂正デコーダ30における誤訂正または未検出
を検出する。図17(S)は、EDCチェックバイト4
36のデコード切替えのタイミングである。ここで、デ
ータの最後に付加したEDCチェックバイト436によ
るエラー訂正デコーダ30における誤訂正または未検出
を簡単に説明すると、次のようになる。まず、データ書
込時には、図16(G)〜(M)に示したように、1ま
たは複数のサブブロックで構成されるデータから複数の
EDCチェックバイトD1,D2,D3,D4を生成
し、ECCチェックバイトを生成した後のデータの最後
に付けてディスク媒体に書き込ませる。
【0102】リード動作の際には、訂正済みのサブブロ
ックとEDCチェックバイトを入力してシンドロームを
生成し、シンドロームに基づいてエラー訂正における誤
訂正または未検出を検出して上位のコントローラに通知
する。このようなEDCチェックバイトによるエラー検
出で、エラー訂正デコーダ30でエラー訂正能力を越え
る誤りが発生した場合の誤訂正や見逃し(未検出)が起
きたことを認識して上位コントローラに通知することが
できる。 4.ヘッダ及びカウント部のエラー訂正 可変長制御を行うCKDフォーマットにあっては、レコ
ードの先頭にヘッダおよびカウント部となる固定長の制
御用サブブロックを設けており、この制御用サブブロッ
クは、ユーザデータとなるレコードを構成している固定
長サブブロックに比べ、データ長が短い。オン・ザ・フ
ライ態様のエラー訂正にあっては、先頭のヘッダ及びカ
ウント部に続く固定長サブブロックを1単位としてエラ
ー訂正を行うことを前提にしているため、エラー訂正の
ためのFIFOバッファメモリなどによる遅延量は固定
長サブブロックのデータ長に設定している。
【0103】図18(A)は、固定長サブブロック51
4のエラー訂正の際の遅延の様子である。時刻t0で固
定長サブブロック514を入力すると、シンドロームの
生成に固定長サブブロック514の最終バイトまでの入
力を必要とすることから、時刻t0〜t2に亘る固定長
サブブロック514のバイト長に応じた遅延時間τd1
が必要となる。したがって、エラー訂正されたデータは
遅延時間τd1後の時刻t2より上位コントローラに対
し送出されることになる。
【0104】図18(B)は、ヘッダ及びカウント部の
固定長サブブロック518である。ヘッダ及びカウント
部の固定長サブブロック518は、データ部分の固定長
サブブロック514に対し短いバイト長となる。このヘ
ッダ及びカウント部となる制御用サブブロック518
は、上位のコントローラに転送されて、続くデータ部の
リード/ライト処理の制御判断に使用されることから、
上位のコントローラに対する遅延時間は可能な限り短く
することが望まれる。
【0105】しかしながら、オン・ザ・フライ態様のエ
ラー訂正にあっては、固定長サブブロック514の遅延
時間τd1の遅延がエラー訂正の際に行われるため、ヘ
ッダ及びカウント部の制御用固定長サブブロック518
についても同様に、τd1の遅延時間後に、上位装置に
エラー訂正済みの制御用固定長サブブロック520とし
て送出され、時間遅れがかなり大きくなる。
【0106】このように時間遅れが大きいと、訂正済み
の制御用固定長サブブロック520を上位コントローラ
で受信解読して必要な制御をドライブ側に対し行うま
で、データ部の固定長サブブロックを受信させてはなら
ない。そこで、ディスク媒体の記録状態でレコード先頭
の制御用固定長サブブロックとこれに続くデータ部との
間のギャップを、遅延量に応じて長くしなければならな
い。このようにギャップが長くなると、ディスク媒体の
記録容量が減少する問題を招く。
【0107】そこで本発明にあっては、図18(C)に
示すように、受信データがヘッダ及びカウント部の制御
用サブブロック518であることを判別したときには、
制御用固定長サブブロック518のバイト長に応じた遅
延時間τd2だけ遅らせて、エラー訂正済みの制御用サ
ブブロック522を送出できるようにする。図19は、
制御用サブブロックに適合した遅延量の切換えを行う実
施例である。この実施例にあっては、エラー訂正デコー
ダ30に対し受信データをエラー訂正に必要な時間だけ
遅延させるために設けているFIFOバッファメモリを
工夫したことを特徴とする。
【0108】まずFIFOバッファメモリは、第1FI
FOバッファメモリ524と第2FIFOバッファメモ
リ526に分けられる。第1FIFOバッファメモリ5
24は、ヘッダ及びカウント部の制御用サブブロックの
バイト長に応じた遅延時間τd2の遅延量を受信データ
に与える。第2FIFOバッファメモリ526は、デー
タ用サブブロックの遅延時間τd1から制御用サブブロ
ックの遅延時間τd2を差し引いた(τd1−τd2)
の遅延量をFIFOバッファメモリ524からの受信デ
ータに与える容量をもつ。
【0109】FIFOバッファメモリ524の出力とF
IFOバッファメモリ526の出力は、マルチプレクサ
528に与えられている。マルチプレクサ528は、制
御用サブブロックとデータ用サブブロックの識別に基づ
く切替信号E60により切り替えられる。即ち、制御用
サブブロックを検出したときには、FIFOバッファメ
モリ524の出力を選択して排他論理和回路34に出力
する。
【0110】一方、データ用サブブロックを検出した場
合には、FIFOバッファメモリ526の出力を選択し
て排他論理和回路34に出力する。即ち、データ用サブ
ブロックの場合には、FIFOバッファメモリ524に
よる遅延時間τd2後にエラー訂正結果がFIFOバッ
ファメモリ524の出力選択で得られ、短い遅延時間後
にエラー訂正されたヘッダ及びカウント部のサブブロッ
クを上位コントローラに伝送することができる。
【0111】エラー訂正デコーダ30におけるチェン・
サーチ演算は、データ用の固定長サブブロックについて
は前述した通りであるが、ヘッダ及びカウント部の制御
用サブブロックについては別途専用のエラーロケーショ
ン多項式に基づいた演算回路を設けることになる。図2
0は、ヘッダ及びカウント部の制御用サブブロックのエ
ラー訂正について読み書き自在なRAMを用いた実施例
である。RAM530にはデータバス532を介して受
信したバイトデータがバイトクロックに同期して書込ま
れ、同時にバイトクロックに同期して1サブブロック分
だけ前に書込んだバイトデータを読出して排他論理和回
路34に出力する。具体的には、バイトクロック周期の
前半がバイトデータのRAM530への書込みサイクル
となり、バイトクロック周期の後半がバイトデータのR
AM530からの読出しサイクルとなる。
【0112】アドレスカウンタ536は、バイトクロッ
クに同期して、サブブロックのバイト数分の範囲で変化
する書込アドレスと、書込アドレスに対しサブブロック
長分だけずれた読出しアドレス、即ち、1サブブロック
分だけ前に書込んだバイトデータの読出アドレスを発生
する。また発生アドレスの最大値は、外部からのリセッ
ト信号により決まる。
【0113】アドレスカウント536のアドレスは、第
1デコーダ538および第2デコーダ540で解読され
る。第1デコーダ538は、アドレスカウンタ536に
よるRAM530のアドレス指定がヘッダ及びカウント
部のバイト長に対応したバイト数分だけ行われたことを
判別して、デコード出力を生じ、アドレスカウンタ53
6をリセットする。第2デコーダ540は、データ用の
固定長サブブロックのバイト数分だけアドレスカウンタ
536によるアドレス指定が行われたことを判別してデ
コード出力を生じ、アドレスカウンタ536をリセット
する。
【0114】マルチプレクサ542は、デコーダ53
8,540の出力を、制御用とデータ用のサブブロック
の検出に基づく切替制御信号E60に応じて選択する。
即ち、ヘッダ及びカウント部の制御用サブブロックの検
出時には、切替制御信号E60によりマルチプレクサ5
42は第1デコーダ538のデコード出力を選択出力す
る。一方、データ用の固定長サブブロックの検出時に
は、切替制御信号E60により第2デコーダ540のデ
コード出力を選択する。
【0115】このためヘッダ及びカウント部の制御用サ
ブブロックについては、そのバイト数分のアドレス指定
を第1デコーダ538で判別していることから、RAM
530に対する制御用固定長サブブロックのバイト数分
の書込後に、その読出動作が行われ、そのバイト長に応
じた遅延量でエラー訂正が行われる。また、データ用の
固定長サブブロックについては、第2デコーダ540で
そのバイト数分のアドレス指定を判別していることか
ら、同様に、RAM530に対するデータ用の固定長サ
ブブロックのバイト数分の書込み後に、その読出動作が
行われ、そのバイト長に応じた遅延量でエラー訂正が行
われる。
【0116】尚、上記の実施例は訂正可能なエラー数を
n=3とした場合を例にとっているが、n=3を越える
多数バイトのエラー訂正についても同様に適用できる。
また、ユーザデータをバイト単位にインタリーブしたサ
ブブロックからECCチェックバイトを生成して付加す
る場合を例にとっているが、インタリーブせずにECC
チェックバイトをサブブロックごとに生成して付加する
ようにしてもよい。更に本発明は、実施例に示した数値
による限定は受けない。
【0117】
【発明の効果】以上説明してきたように本発明によれ
ば、CKDフォーマットに従った可変長制御において、
最後の可変長サブブロックのエラー訂正について、固定
長サブブロックを想定したダミーサーチを行った後に固
定長サブブロックの開始時に通常のエラーサーチに切り
替えることで、変化する可変長サブブロックの長さごと
に個別にエラーサーチの演算回路を設ける必要がなく、
簡単な演算回路の構成で可変長サブブロックのエラー訂
正を効率よく行うことができる。
【0118】また、CKDフォーマットのレコード先頭
のヘッダ及びカウント部の制御用固定長サブブロックの
エラー訂正について、このサブブロックのデータ長に適
合した遅延量によるエラー訂正とすることで、ヘッダ及
びカウント部のエラー訂正データの上位のコントローラ
に対する遅れを必要最小限に抑えることができ、ディス
ク媒体上における先頭のヘッダ及びカウント部とデータ
部との間のギャップを大きくする必要がないため、ディ
スク媒体の容量低下を招くことなく、適切なオン・ザ・
フライ態様のエラー訂正が実現できる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】本発明が適用されるディスクユニットのブロッ
ク図
【図3】図2のエラー訂正部の構成を示したブロック図
【図4】本発明におけるインタリーブの概念説明図
【図5】複数のサブブロックに分割したユーザデータの
後にEDCチェックバイトを付加した1レコード分のデ
ータ構造の説明図
【図6】エラー訂正デコーダのブロック図
【図7】可変長サブブロックのエラーサーチの説明図
【図8】可変長サブブロックのエラー訂正を行う実施例
のブロック図
【図9】エラー訂正エンコーダのエラーロケーション及
びエラーバリュー演算部の概略ブロック図
【図10】エラーロケーション演算回路部の回路ブロッ
ク図
【図11】エラーロケーション演算回路部の演算の様子
の説明図
【図12】エラーロケーション演算の制御回路部の回路
ブロック図
【図13】図12の制御回路部のタイミングチャート
【図14】エラーロケーション演算制御の第2実施例の
ブロック図
【図15】エラーロケーション演算制御の第3実施例の
ブロック図
【図16】データ転送に同期してECCチェックバイト
を生成するエンコーダのタイミングチャート
【図17】データ転送に同期してエラー訂正するデコー
ドのタイミングチャート
【図18】データ用サブブロックとヘッダ及びカウント
部のエラー訂正に伴う遅延の説明図
【図19】FIFOメモリを用いた遅延回路のブロック
【図20】RAMを用いた遅延回路のブロック図
【符号の説明】
10:ディスクユニット 12:ディスクコントローラ 14:ディスクエンクロージャ 16:エラー訂正部 18:制御プロセッサ 20,26,28,36:ゲート回路 22:エラー検出訂正エンコーダ(ECCエンコーダ) 24:マルチプレクサ 30:エラー検出訂正デコーダ(ECCデコーダ) 32:FIFOバッファメモリ 34,70:排他論理和回路 38:エラー検出エンコーダ(EDCエンコーダ) 40:エラー検出デコーダ(EDCデコーダ) 42:サブブロック 44:エラー検出用チェックバイト(EDCチェックバ
イト) 300:固定長サブブロック 302:可変長サブブロック 312,500,506:ファームウェア 314,502,504,508,510:レジスタ 316:エラーロケーション演算回路部 318:第1エラーロケーション演算回路 320:第2エラーロケーション演算回路 322:エラーバリュー演算回路部 323:第1エラーバリュー演算回路 324:制御回路部 325:第2エラーバリュー演算回路 340,360,380,400:演算回路部 342,350,356:乗算器 344,352,354:マルチプレクサ 348,354:レジスタ 326,327,331:デコーダ 328:ORゲート 329,332,333,334:ラッチ 330:カウンタ 524:第1FIFOバッファメモリ 526:第2FIFOバッファメモリ 528,542:マルチプレクサ 530:RAM 532:データバス 534:アドレスバス 536:アドレスカウンタ 538:第1デコーダ 540:第2デコーダ 544:メモリ制御回路
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G11B 20/18 574 G11B 20/18 574M 574N H03M 7/14 H03M 7/14 A 7/40 7/40 (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 G06F 11/10 330 G11B 20/00 H03M 7/00

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】エラー訂正用符号語が、任意の自然数mで
    定義されるガロア体GF(2m )の元で構成され、
    αa ,αa+1 ,αa+2 ,…,αa+2n-1(αは前記ガロア
    体の原始元、aは任意の自然数でa+2n+1≦2m
    1を満たす。nは最大訂正可能なエラーバイト数を示す
    定数)を解に持つ生成多項式によってチェックバイトお
    よびシンドロームを生成し、前記符号語中のn個のバイ
    トエラーを、2n個のシンドロームバイトを処理するこ
    とにより訂正する多数バイトのエラー検出訂正装置に於
    いて、 記憶媒体に対するデータ書込時に、固定長又は可変長の
    1サブブロック分の書込データから前記生成多項式を用
    いてエラー訂正用チェックバイトを生成し、該エラー訂
    正用チェックバイトを前記書込データの後に設けて固定
    長又は可変長の符号語を構成するエラー検出訂正エンコ
    ーダ(22)と、 前記記憶媒体から読出した前記符号語を受信するごと
    に、前記シンドロームバイトからエラーロケーション多
    項式の係数γ0 〜γn (但し、t≦n、tは発生したエ
    ラーバイト数を示す変数)を決定した後に、データ転送
    と同期してエラーバイト位置およびエラーバイト訂正値
    が決定されることにより、前記符号語のバイトストリー
    ムを連続的に転送しながらエラーを訂正するエラー検出
    訂正デコーダ(30)とを有し、 更に、前記エラー検出訂正デコーダ(30)は、固定長
    サブブロックに続いて可変長サブブロックを受信した場
    合、前記可変長ブロックについて固定長サブブロックの
    開始位置を想定して、演算結果を出力させない状態でエ
    ラーロケーションの演算を実行中の固定長ブロックの演
    算に並行して開始し、前記可変長サブブロックの開始位
    置で、演算結果の出力状態に切替えるエラーロケーショ
    ン演算回路部を備えたことを特徴とする多数バイトのエ
    ラー検出訂正装置。
  2. 【請求項2】請求項1記載の多数バイトのエラー検出訂
    正装置に於いて、前記エラーロケーション演算回路部
    は、 受信した固定長サブブロックのエラーロケーションを演
    算する第1エラーロケーション演算回路と、 受信した可変長サブブロックのエラーロケーションを演
    算する第2エラーロケーション演算回路と、 先行する固定長サブブロックのシンドローム生成時に、
    前記第1エラーロケーション演算回路の演算動作を開始
    してエラーロケーション信号を出力させ、該演算動作中
    に次の可変長サブブロックのシンドロームが生成された
    時点で、前記第2エラーロケーション演算回路にエラー
    ロケーション信号を出力させないダミー演算を開始さ
    せ、更に、可変長サブブロックの開始位置で、前記第2
    エラーロケーション演算回路の演算結果を出力させる制
    御回路部と、を備えたことを特徴とする多数バイトエラ
    ー検出訂正装置。
  3. 【請求項3】請求項2記載の多数バイトのエラー検出訂
    正装置に於いて、前記第1及び第2エラーロケーション
    演算回路部の各々は、修正されたエラーロケーション多
    項式を 【数1】 とした場合、 前記シンドロームS0 〜S2n-1に基づき前記多項式の係
    数γ0 〜γn が得られた時点で、先頭バイト位置(N-1)
    (但しN は符号語長)を表す値αn(N-1)〜α0の各々を
    前記係数γ0 〜γn に予め前記乗算して結果を各レジス
    タに格納させる前記多項式の各項毎に設けた第1乗算器
    と、 高次のデータから順にチェンサーチを行うための値α-n
    〜α0 を、前記各レジスタの値と繰り返し乗算して前記
    各レジスタに再度格納する前記多項式の各項毎に設けた
    第2乗算器と、 前記多項式の各項に対応したレジスタ格納値を加算して
    エラーロケーション信号として出力する加算回路と、を
    備えたことを特徴とする多数バイトのエラー検出訂正装
    置。
  4. 【請求項4】請求項3記載の多数バイトのエラー検出訂
    正装置に於いて、前記制御回路部は、連続するサブブロ
    ックが固定長サブブロックか最後の可変長サブブロック
    かを示すモード信号に基づいて、前記第1及び第2エラ
    ーロケーション演算回路部を制御することを特徴とする
    多数バイトのエラー検出訂正装置。
  5. 【請求項5】エラー訂正用符号語が、任意の自然数mで
    定義されるガロア体GF(2m )の元で構成され、
    αa ,αa+1 ,αa+2 ,…,αa+2n-1(αは前記ガロア
    体の原始元、aは任意の自然数でa+2n+1≦2m
    1を満たす。nは最大訂正可能なエラーバイト数を示す
    定数)を解に持つ生成多項式によってチェックバイトお
    よびシンドロームを生成し、前記符号語中のn個のバイ
    トエラーを、2n個のシンドロームバイトを処理するこ
    とにより訂正する多数バイトのエラー検出訂正装置に於
    いて、 記憶媒体に対するデータ書込時に、固定長又は可変長の
    1サブブロック分の書込データから前記生成多項式を用
    いてエラー訂正用チェックバイトを生成し、該エラー訂
    正用チェックバイトを前記書込データの後に設けて固定
    長又は可変長の符号語を構成するエラー検出訂正エンコ
    ーダ(22)と、 前記記憶媒体から読出した前記符号語を受信するごと
    に、前記シンドロームバイトからエラーロケーション多
    項式の係数γ0 〜γn (但し、t≦n、tは発生したエ
    ラーバイト数を示す変数)を決定した後に、データ転送
    と同期してエラーバイト位置およびエラーバイト訂正値
    が決定されることにより、前記符号語のバイトストリー
    ムを連続的に転送しながらエラーを訂正するエラー検出
    訂正デコーダ(30)と、を有し、 更に、前記エラー検出訂正デコーダ(30)は、前記記
    憶媒体からバイト長の短い先頭の制御用サブブロックと
    該制御用ブロックより長いバイト長のデータ用サブブロ
    ックを受信した際に、各受信サブブロックのバイト長に
    応じた遅延量に切替えてエラー訂正を行わせる遅延回路
    を備えたことを特徴とする多数バイトのエラー検出訂正
    装置。
  6. 【請求項6】請求項記載の多数バイトのエラー検出訂
    正装置に於いて、前記遅延回路は、 前記制御用サブブロックの固定バイト長をもつ第1FI
    FOバッファメモリと、 該第1FIFOバッファメモリに縦接続され、前記デー
    タ用サブブロックの固定バイト長から前記制御用サブブ
    ロックの固定バイト長を引いたバイト長をもつ第2FI
    FOバッファメモリと、 前記制御用サブブロックの受信時に前記第1FIFOバ
    ッファメモリの出力を選択し、前記データ用サブブロッ
    クの受信時に前記第2FIFOバッファメモリの出力を
    選択する切替回路と、 を備えたことを特徴とする多数バイトのエラー検出訂正
    装置。
  7. 【請求項7】請求項記載の多数バイトのエラー検出訂
    正装置に於いて、前記遅延回路は、 前記読み書き自在なメモリと、 バイトクロックに同期して、バイトクロック同期の前半
    で入力したバイトデータの書込アドレスを発生して前記
    メモリに書込むと共に、該バイトクロック周期の後半で
    1サブブロック前に前記メモリに書込んだバイトデータ
    の読出アドレスを発生して読出すアドレスカウンタと、 前記アドレスカウンタの発生アドレスから前記制御用サ
    ブブロックのデータ長分だけアドレス指定を行ったこと
    を判別する第1デコーダと、 前記アドレスカウンタの発生アドレスから前記データ用
    サブブロックのデータ長分のアドレス指定を行ったこと
    を判別する第2デコーダと、 前記制御用サブブロックの受信で前記第1デコーダの出
    力を選択し、データ用サブブロックの受信で前記第2デ
    コーダの出力を選択して前記アドレスカウンタをリセッ
    トする選択回路と、を備えたことを特徴とする多数バイ
    トのエラー検出訂正装置。
JP17736794A 1994-03-11 1994-07-29 多数バイトのエラー検出訂正装置 Expired - Fee Related JP3295537B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17736794A JP3295537B2 (ja) 1994-07-29 1994-07-29 多数バイトのエラー検出訂正装置
US08/356,159 US5610929A (en) 1994-03-11 1994-12-15 Multibyte error correcting system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17736794A JP3295537B2 (ja) 1994-07-29 1994-07-29 多数バイトのエラー検出訂正装置

Publications (2)

Publication Number Publication Date
JPH0846522A JPH0846522A (ja) 1996-02-16
JP3295537B2 true JP3295537B2 (ja) 2002-06-24

Family

ID=16029722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17736794A Expired - Fee Related JP3295537B2 (ja) 1994-03-11 1994-07-29 多数バイトのエラー検出訂正装置

Country Status (1)

Country Link
JP (1) JP3295537B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3679553B2 (ja) * 1997-06-26 2005-08-03 キヤノン株式会社 インクジェット記録装置及びインクジェット記録方法

Also Published As

Publication number Publication date
JPH0846522A (ja) 1996-02-16

Similar Documents

Publication Publication Date Title
EP0567148B1 (en) Operating circuit for galois field
US5610929A (en) Multibyte error correcting system
US5875200A (en) Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
KR930001071B1 (ko) 에러 정정회로
US4777635A (en) Reed-Solomon code encoder and syndrome generator circuit
US6141786A (en) Method and apparatus for performing arithmetic operations on Galois fields and their extensions
US4567594A (en) Reed-Solomon error detecting and correcting system employing pipelined processors
JPH02211723A (ja) セクタ内の訂正不可能な誤りの発生の信号を送るための装置および方法
EP0753942A2 (en) Word-wise processing for reed-solomon codes
JP3345385B2 (ja) チェンサーチ装置
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
JP2532917B2 (ja) デ―タ誤り検出回路
JPH04315332A (ja) 誤り訂正装置
JP2004206798A (ja) 光ディスク装置のエンコードデータ符号回路
US6453441B1 (en) Error correcting device and optical disk reader comprising same
JP3295537B2 (ja) 多数バイトのエラー検出訂正装置
EP0262944A2 (en) Error correction apparatus
US5243604A (en) On-the-fly error correction
JP2008146828A (ja) 光ディスク装置のエンコードデータ符号回路
JP2003078421A (ja) 符号系列の先頭位置検出方法とその装置、それを用いた復号方法とその装置
US6564352B1 (en) Error detection circuit applicable to a disk reproduction apparatus
JP3310186B2 (ja) リード・ソロモン符号の復号回路
JP2726902B2 (ja) 広帯域巾のリード‐ソロモンエンコード、デコード及びエラー修正回路
JPH0834439B2 (ja) ガロア体演算装置
JP3135552B2 (ja) リードソロモン符号の誤り検出及び訂正装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020305

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080405

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090405

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090405

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100405

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100405

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100405

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100405

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110405

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees