JPH11177440A - Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment - Google Patents

Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment

Info

Publication number
JPH11177440A
JPH11177440A JP33720997A JP33720997A JPH11177440A JP H11177440 A JPH11177440 A JP H11177440A JP 33720997 A JP33720997 A JP 33720997A JP 33720997 A JP33720997 A JP 33720997A JP H11177440 A JPH11177440 A JP H11177440A
Authority
JP
Japan
Prior art keywords
error
correction
remainder
value
code
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.)
Pending
Application number
JP33720997A
Other languages
Japanese (ja)
Inventor
Kosuke Nakai
康介 中井
Takuji Nishitani
卓史 西谷
Hitoshi Ogawa
仁 小川
Katsumi Yamamoto
克己 山本
Masatoshi Nishina
昌俊 仁科
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33720997A priority Critical patent/JPH11177440A/en
Publication of JPH11177440A publication Critical patent/JPH11177440A/en
Pending legal-status Critical Current

Links

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

PROBLEM TO BE SOLVED: To evaluate at high speed whether or not a wrong-correction has taken in the error correction by an ECC. SOLUTION: A CRC residue latch 330 latches a CRC residue with respect to a code word before error correction. Through the use of an error position and an error value calculated in the error correction arithmetic operation by an ECC at any time, the value of a CRC working register 342 is updated by exclusive OR between the residue of the error value and each error position. Evaluation arithmetic operation is progressed at high speed, in parallel with error correction. A value of a CRC working register 342 when all the error positions and the error value are specified and the value latched in the CRC residue latch 330 are compared, and when those values are identical, it is verified that the error correction has been properly conducted.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】 本発明は、誤訂正検証方法
および装置、エラー訂正装置、再生装置、記録再生装
置、通信装置に係り、特に、エラー訂正をオンザフライ
に実行することに好適な誤訂正検証方法および装置、エ
ラー訂正装置、再生装置、記録再生装置、通信装置に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an error correction verification method and apparatus, an error correction apparatus, a reproduction apparatus, a recording / reproduction apparatus, and a communication apparatus, and more particularly to an error correction verification suitable for executing error correction on the fly. The present invention relates to a method and a device, an error correction device, a reproducing device, a recording / reproducing device, and a communication device.

【0002】[0002]

【従来の技術】 記憶装置の記録媒体に記録されている
ユーザデータを再生する際、再生されるユーザデータに
様々な要因によりエラーが発生する場合がある。発生し
たエラーを訂正するため、記録媒体に記録するに際し、
ユーザデータにエラー訂正符号(Error Correction cod
es、以下、ECCと云う)を付加して記録する手法が採
られている。また、この手法は、データ転送における信
頼性を向上するためにも用いられている。
2. Description of the Related Art When reproducing user data recorded on a recording medium of a storage device, an error may occur in the reproduced user data due to various factors. When recording on a recording medium to correct the error that occurred,
Error correction code (Error Correction cod)
es (hereinafter referred to as ECC) for recording. This technique is also used to improve reliability in data transfer.

【0003】ところが、ECCによって訂正可能なエラ
ーの個数には、ECCのバイト長に依存する限界があ
り、この限界を越える個数のエラーが発生した場合、あ
る確率で誤訂正を引き起こす。ここで、誤訂正とは、E
CCの訂正能力を超えたエラーが発生した際、本来、エ
ラー検出にとどまり、訂正不能エラー発生と判定すべき
ところを、正常なデータ(期待値)以外の誤ったデータ
に誤って訂正してしまう現象を云う。
However, the number of errors that can be corrected by the ECC has a limit depending on the byte length of the ECC, and if errors exceeding the limit occur, erroneous correction occurs with a certain probability. Here, the erroneous correction is E
When an error that exceeds the correction capability of the CC occurs, the error detection is originally performed, and what should be determined to be an uncorrectable error is erroneously corrected to incorrect data other than normal data (expected value). A phenomenon.

【0004】このような誤訂正が発生することにより、
ECCによるエラー検出、訂正だけでは、記憶装置のデ
ータ記録再生に関する信頼性が維持できない場合があ
る。このため、さらに他のエラー検出、エラー訂正のた
めの手法をECCと併用することが一般的になってきて
いる。例えば、ECCとしてリードソロモン符号を用
い、さらに、誤訂正を検出するために巡回冗長検査符号
(Cyclic redundancy check codes;CRCC)を用い
る手法が特開平4−259968号公報に記載されてい
る。ここで、リードソロモン符号とは、非2元のBCH
(Bose-Chaudhuri-Hocquenghem)符号の一種である。
[0004] When such erroneous correction occurs,
There is a case where reliability of data recording / reproduction of the storage device cannot be maintained only by error detection and correction by ECC. For this reason, it is becoming common to use other techniques for error detection and error correction together with ECC. For example, Japanese Patent Application Laid-Open No. 4-259968 discloses a method using a Reed-Solomon code as the ECC and using a cyclic redundancy check code (CRCC) to detect an erroneous correction. Here, the Reed-Solomon code is a non-binary BCH
(Bose-Chaudhuri-Hocquenghem) is a kind of code.

【0005】図2を参照して、このエラー訂正が正常に
行なわれたかどうかの検証における演算処理の手順につ
いて説明する。図2において、{ユーザデータ+CRC
パリティ部+ECCパリティ部}が読み出されてくる
と、ステップ201において、演算処理がスタートされ
る。ECCシンドローム算出のステップ202およびC
RC剰余算出のステップ204は、互いに並行して処理
することが可能である。このような並列処理は、例え
ば、それぞれの処理を行う独立した回路を設けること、
並列処理プロセッサを用いることなどによって実行する
ことができる。
Referring to FIG. 2, a description will be given of a procedure of an arithmetic processing in verifying whether or not the error correction has been normally performed. In FIG. 2, $ user data + CRC
When the parity unit + ECC parity unit} is read, in step 201, the arithmetic processing is started. Step 202 and C of ECC syndrome calculation
Steps 204 of RC remainder calculation can be performed in parallel with each other. Such parallel processing includes, for example, providing an independent circuit for performing each processing,
It can be executed by using a parallel processing processor.

【0006】ステップ203では、上記ステップ202
において算出されたシンドロームが非ゼロか否かを判定
し、シンドロームが全てゼロの場合は、エラーなしとす
る(ステップ205)。この場合は、訂正演算しない。
すなわち正常なデータが読み出されたと判定する。
In step 203, the above-mentioned step 202
It is determined whether the syndrome calculated in is non-zero or not, and if the syndromes are all zero, it is determined that there is no error (step 205). In this case, no correction operation is performed.
That is, it is determined that normal data has been read.

【0007】一方、ステップ203の判定において、少
なくとも1つのシンドロームが非ゼロの場合は、読み出
された{ユーザデータ+CRCパリティ部+ECCパリ
ティ部}のどこかに、1個以上のエラーが発生したと判
定して、以下に手順を説明するエラー訂正演算を開始す
る。
On the other hand, if it is determined in step 203 that at least one syndrome is non-zero, it is determined that one or more errors have occurred somewhere in the read {user data + CRC parity section + ECC parity section}. Judgment is made, and an error correction operation whose procedure will be described below is started.

【0008】エラー訂正演算では、先ず、ステップ20
2で算出されたシンドロームから、エラー位置多項式お
よびエラー評価多項式を導出する(ステップ206)。
そして、導出されたエラー位置多項式を解いてエラー位
置を算出し、算出したエラー位置と、ステップ206に
より導出されたエラー評価多項式とによりエラー値を算
出する(ステップ207)。但し、図2に示すフローチ
ャートは、エラー訂正演算アルゴリズムの一例について
描かれており、エラー位置多項式およびエラー評価多項
式導出を導出するステップ206と、エラー位置および
エラー値を算出するステップ207とが1つのステップ
において実行され、エラー評価多項式を陽に求めること
なく、エラー位置およびエラー値が算出されるエラー訂
正演算アルゴリズムを採用してもよい。
In the error correction operation, first, at step 20
An error position polynomial and an error evaluation polynomial are derived from the syndrome calculated in step 2 (step 206).
Then, an error position is calculated by solving the derived error position polynomial, and an error value is calculated based on the calculated error position and the error evaluation polynomial derived in step 206 (step 207). However, the flowchart shown in FIG. 2 illustrates an example of the error correction operation algorithm, and includes a step 206 for deriving an error position polynomial and an error evaluation polynomial derivation, and a step 207 for calculating an error position and an error value. An error correction operation algorithm executed in the step and calculating the error position and the error value without explicitly calculating the error evaluation polynomial may be adopted.

【0009】また、ここでは図示していないが、導出さ
れたエラー位置多項式の次数と、見つけられたエラー位
置の個数とが相等しくない場合は、ECCによるエラー
訂正が失敗したと判断する。すなわち、訂正不能のエラ
ーが発生したと判断する。
Although not shown here, when the degree of the derived error position polynomial is not equal to the number of found error positions, it is determined that error correction by ECC has failed. That is, it is determined that an uncorrectable error has occurred.

【0010】算出されたエラー位置が、ユーザデータ部
およびCRCパリティ部のいずれかである場合、エラー
位置およびエラー値とを用いて、バッファに格納されて
いるデータのうちの対応する誤りデータを訂正する(ス
テップ208)。これと並行して、算出されたエラー位
置およびエラー値を用いて、CRC剰余を再算出する
(ステップ209)。このCRC剰余を再算出する方法
については後述する。
When the calculated error position is one of the user data portion and the CRC parity portion, the corresponding error data among the data stored in the buffer is corrected using the error position and the error value. (Step 208). In parallel with this, the CRC remainder is recalculated using the calculated error position and error value (step 209). The method of recalculating the CRC remainder will be described later.

【0011】ステップ210において、ステップ209
で再算出されたCRC剰余と、ステップ204で算出さ
れたCRC剰余結果とを比較する。この比較結果によっ
て、ECCによる訂正が成功したか否かを判定する(ス
テップ211)。すなわち、比較した結果、両者が一致
した場合には訂正が成功したと判定し、一致しなかった
場合、ECCによる誤訂正が発生したと判定する。
In step 210, step 209
Is compared with the CRC remainder result calculated in step 204. Based on the comparison result, it is determined whether the correction by the ECC has been successful (step 211). That is, as a result of the comparison, if they match, it is determined that the correction has succeeded, and if they do not match, it is determined that erroneous correction by ECC has occurred.

【0012】また、記憶装置には、上述したデータ転送
の信頼性に加え、近年、記憶データの大容量化、および
記録、再生の高速化が要求されている。記憶データの大
容量化ために、記憶データの高密度化が進められてお
り、この高密度化実現をサポートするものの1つとして
ECCのエラー訂正機能の高性能化が挙げられる。すな
わち、高密度化により発生率が増大したエラーを高性能
なECCにより補正しようというものである。但し、エ
ラー訂正機能が高性能化された(訂正可能なエラー個数
が増加された)ECCを実装した場合、訂正に要する時
間は、一般的に増大する傾向にある。
In recent years, in addition to the above-described reliability of data transfer, a storage device is required to have a large storage data capacity and a high speed of recording and reproduction. In order to increase the capacity of the storage data, the density of the storage data has been increased. One of the measures to support the increase in the density is to improve the performance of an ECC error correction function. That is, the error whose occurrence rate is increased by the high density is to be corrected by the high performance ECC. However, when an ECC having an improved error correction function (in which the number of correctable errors is increased) is mounted, the time required for correction generally tends to increase.

【0013】他方、データ記録再生の高速化が進むと、
1セクタあたりの転送時間も相対的に短くなる。このた
め、エラー訂正演算に許容される時間は少なくなる。す
なわち、ECCによる訂正演算と、訂正結果をエラー検
出手段によって評価するための評価演算とが、エラーが
発生したブロック(セクタ)の次ブロック(セクタ)の
転送が終了するまでに完了され、オンザフライ訂正とし
て実行されることが要求される。さもないと、連続した
ブロックにエラーが発生した場合に、それぞれのブロッ
クに対する上記演算が間に合わず、その結果、データ再
生時の媒体からデータ読み出しのリトライ(すなわち、
回転待ち時間)を引き起こし、データ転送が滞ってしま
い、データ転送にエラー訂正演算によるオーバヘッドを
与えてしまうからである。
On the other hand, as data recording / reproducing speeds up,
The transfer time per sector is also relatively short. Therefore, the time allowed for the error correction operation is reduced. That is, the correction operation by the ECC and the evaluation operation for evaluating the correction result by the error detection means are completed by the time the transfer of the block (sector) next to the block (sector) in which the error has occurred is completed. It is required to be executed as Otherwise, when an error occurs in a continuous block, the above operation for each block cannot be performed in time, and as a result, a retry of reading data from the medium at the time of data reproduction (ie,
This causes rotation delay time), delays data transfer, and gives data transfer an overhead due to error correction calculations.

【0014】ECCによる訂正演算および訂正結果に対
する評価演算を高速化し、オンザフライ訂正を実現する
ためには、これら2つの演算を並行して行い、演算時間
を見かけ上短くすることが考えられる。
In order to speed up the correction operation by the ECC and the evaluation operation for the correction result and realize the on-the-fly correction, it is conceivable that these two operations are performed in parallel and the operation time is apparently shortened.

【0015】ところで、ECCによる訂正の訂正結果に
対する評価演算、例えば、CRCCを用いてエラー検出
を行う演算を実行するためには、少なくともECCによ
るエラー訂正で算出されたエラー位置およびエラー値
と、符号語{訂正前の受信データ+CRCCパリティ
部}から演算されたCRC剰余結果とが必要とされる。
すなわち、エラー位置およびエラー値からCRC剰余を
再算出するためには、この演算過程に必要であるエラー
位置およびエラー値が確定している必要がある。従っ
て、エラー位置およびエラー値の算出演算とCRC剰余
の再算出とを並行して行うためには、これらの演算で、
エラー位置およびエラー値の確定順序の整合がとれてい
なければならない。
By the way, in order to execute an evaluation operation on the correction result of the correction by the ECC, for example, an operation of performing error detection using the CRCC, at least the error position and error value calculated by the error correction by the ECC and the code The word {received data before correction + CRCC parity part} and the CRC remainder result are required.
That is, in order to recalculate the CRC remainder from the error position and the error value, it is necessary that the error position and the error value necessary for this calculation process have been determined. Therefore, in order to perform the calculation of the error position and the error value and the recalculation of the CRC remainder in parallel,
The error position and the order of determining the error values must be consistent.

【0016】しかし、エラー位置およびエラー値を算出
するためのアルゴリズムとしてよく用いられているチェ
ンサーチアルゴリズムでは、一般的には、読み出された
符号語{ユーザデータ+CRCCパリティ部+ECCパ
リティ部}の末尾の方から順に、エラー位置およびエラ
ー値が確定する。
However, in a Chien search algorithm often used as an algorithm for calculating an error position and an error value, generally, a read code word {user data + CRCC parity section + ECC parity section} end is generally used. The error position and error value are determined in order from.

【0017】一方、一般的なCRC剰余の再算出では、
符号語の先頭から順に(すなわち昇順に)演算してい
き、演算される位置がエラー位置でない場合は‘0’
を、その位置がエラー位置であれば、そのエラー位置に
対応するエラー値を使用してCRC演算する必要があ
る。
On the other hand, in general recalculation of the CRC remainder,
The calculation is performed in order from the beginning of the codeword (that is, in ascending order). If the calculated position is not an error position, '0'
If the position is an error position, a CRC operation needs to be performed using an error value corresponding to the error position.

【0018】従って、チェンサーチによるエラー位置お
よびエラー値の算出が全て確定してからでないとCRC
再算出を開始できない。よって、チェンサーチによる演
算とCRC再算出とは、並行して実行することが困難で
あるという問題がある。
Therefore, it is necessary to determine the error position and the error value by the chain search before the CRC.
Cannot start recalculation. Therefore, there is a problem that it is difficult to execute the calculation by the Chien search and the CRC recalculation in parallel.

【0019】このような問題を解決するために考案され
た手法のいくつかについて、以下に説明する。
Some of the techniques devised to solve such a problem will be described below.

【0020】例えば、CRC演算アルゴリズムを変更し
て、読み出された符号語の末尾の方から順に(すなわち
降順に)演算していく手法が、米国特許第5,157,
669号において提案されている。この手法を適用すれ
ば、エラー位置およびエラー値を算出する演算(チェン
サーチ)とCRC剰余の再算出との両者でエラー位置、
値の確定順序を整合することができ、これらの演算を並
行して実行することができる。
For example, US Pat. No. 5,157,157 discloses a technique in which the CRC calculation algorithm is changed and the calculation is performed sequentially from the end of the read codeword (that is, in descending order).
No. 669. If this method is applied, the error position, the error position, and the error value are both calculated (Cheng search) and the CRC residue is recalculated.
The order of determining values can be matched, and these operations can be performed in parallel.

【0021】また、チェンサーチでエラー位置が特定さ
れる順序を逆にする手法が、例えば、特開平5−268
101号公報において提案されている。この手法を適用
することによっても、エラー位置およびエラー値を算出
する演算とCRC剰余の再算出との両者でエラー位置、
値の確定順序を整合することができ、これらの演算を並
行して実行することができる。
A method of reversing the order in which error positions are specified in the chain search is disclosed in, for example, Japanese Patent Laid-Open No. 5-268.
No. 101 proposes this. By applying this method, the error position and the error value can be calculated by both the calculation for calculating the error position and the error value and the recalculation of the CRC remainder.
The order of determining values can be matched, and these operations can be performed in parallel.

【0022】[0022]

【発明が解決しようとする課題】しかし、上述した手法
では、エラー位置およびエラー値が、昇順(符号語の先
頭から末尾に向かう順序、すなわち、位置を示す数が単
調増加する順序。)、もしくは、降順(符号後の末尾か
ら先頭に向かう順序、すなわち、位置を示す数が単調減
少する順序。)で確定していくような手法(例えば、チ
ェンサーチなどの手法)にしか適用することはできな
い。昇順でも降順でもない順番でエラー位置、値が確定
するようなアルゴリズムをエラー位置、値算出手法に採
用した場合は、エラー位置、値が全て求められてからで
ないと、CRC演算を行うことはできないという課題が
ある。エラー位置およびエラー値が確定する順序が、昇
順でも降順でもない順序、すなわち、単調な順序(位置
を示す数が単調変化する順序)でないようなアルゴリズ
ムとしては、例えば、エラー位置多項式をそのまま方程
式として解くようなアルゴリズムなどが考えられる。
However, in the above-mentioned method, the error position and the error value are in ascending order (the order from the beginning to the end of the code word, that is, the order in which the number indicating the position monotonically increases) or Can be applied only to a method (for example, a method such as Chien search) that is determined in descending order (an order from the tail after the code toward the head, that is, an order in which the number indicating the position is monotonically decreasing). . If an algorithm that determines error positions and values in an order that is neither ascending order nor descending order is adopted in the error position and value calculation method, the CRC calculation cannot be performed until all error positions and values are obtained. There is a problem that. As an algorithm in which the order in which the error position and the error value are determined is neither an ascending order nor a descending order, that is, an algorithm that is not a monotonous order (an order in which the number indicating the position monotonically changes), for example, the error position polynomial is used as an equation An algorithm that can be solved is conceivable.

【0023】また、エラー訂正の検証においては、エラ
ー多項式をエラー検出符号生成多項式で除した剰余を求
める演算が頻出することが予想される。このため、剰余
演算を高速に実行することができる剰余演算装置が要求
されると考えられる。
In the verification of error correction, it is expected that a calculation for obtaining a remainder obtained by dividing an error polynomial by an error detection code generation polynomial frequently occurs. For this reason, it is considered that there is a need for a modular arithmetic device that can execute modular arithmetic at high speed.

【0024】さらに、オンザフライ訂正は、記憶媒体か
らの読み出しに限らず、例えば、通信装置における受信
動作においても要求されると考えられる。
Further, it is considered that the on-the-fly correction is required not only for reading from a storage medium but also for a receiving operation in a communication device, for example.

【0025】本発明は、エラー位置およびエラー値が確
定する順序によらず、エラー訂正結果の評価演算を実行
することができる、誤訂正検証方法および装置、エラー
訂正装置を提供することを第1の目的とする。
It is a first object of the present invention to provide an error correction verification method and apparatus and an error correction apparatus capable of executing an error correction result evaluation operation irrespective of the order in which error positions and error values are determined. The purpose of.

【0026】また、このようなエラー訂正の検証におい
て、エラー多項式をエラー検出符号生成多項式による剰
余演算のために行われる剰余演算を高速に実行すること
ができる剰余演算装置を提供することを第2の目的とす
る。
In addition, in such error correction verification, a second aspect of the present invention is to provide a remainder operation device capable of executing a remainder operation performed for an error polynomial for the remainder operation by an error detection code generation polynomial at a high speed. The purpose of.

【0027】さらに、このような、エラー訂正の評価演
算を実行する機能を備えた、再生装置、記録再生装置、
通信装置を提供することを第3の目的とする。
Further, a reproducing apparatus, a recording / reproducing apparatus, and the like having a function of performing such an error correction evaluation operation.
A third object is to provide a communication device.

【0028】[0028]

【課題を解決するための手段】上記第1の目的を達成す
るために、本発明の第1の態様によれば、目的とする情
報を表すユーザデータにエラー検出符号が付加された系
列に、さらにエラー訂正符号が付加された符号語に含ま
れるエラーを、上記エラー訂正符号を用いて訂正する際
に、誤訂正が発生したか否かを検証するための誤訂正検
証装置において、上記エラー検出符号を生成するエラー
検出符号生成多項式で上記符号語を割った剰余、ならび
に、上記符号系列に含まれる各エラーのエラー位置およ
びエラー値を受け付けるためのインタフェーシング手段
と、上記受け付けられた、各エラーのエラー位置および
エラー値から各々生成されるエラー多項式を、上記エラ
ー検出符号を生成するエラー検出符号生成多項式で割っ
た各々の剰余を求めるための剰余演算手段と、全ての剰
余の排他的論理和を求めるための加算手段と、上記加算
手段によって求められた総和と、上記受け付けた剰余と
を比較し、これらが一致しないとき、誤訂正が発生した
と判定し、一致するとき、誤訂正が発生しなかったと判
定するための判定手段とを有することを特徴とする誤訂
正検証装置が提供される。
According to a first aspect of the present invention, there is provided a sequence in which an error detection code is added to user data representing target information. When the error included in the code word to which the error correction code is added is corrected using the error correction code, the error correction verification device for verifying whether an error correction has occurred. A remainder obtained by dividing the code word by an error detection code generation polynomial that generates a code, and an interfacing unit for receiving an error position and an error value of each error included in the code sequence; and Each error obtained by dividing the error polynomial generated from the error position and the error value of the error polynomial by the error detection code generation polynomial for generating the error detection code is calculated. A sum calculating means for calculating an exclusive OR of all the remainders, and comparing the sum obtained by the adding means with the received remainder. There is provided an erroneous correction verification device characterized by having a determination means for determining that a correction has occurred and determining, when they match, that no erroneous correction has occurred.

【0029】本発明の第2の態様によれば、目的とする
情報を表すユーザデータと、上記ユーザデータからエラ
ー検出符号生成多項式により生成されるエラー検出符号
と、上記情報符号およびエラー検出符号を含む系列から
エラー訂正符号生成多項式により生成されるエラー訂正
符号とを含む符号語に含まれるエラーを訂正するための
エラー訂正装置において、上記エラー検出符号を用いて
エラーが含まれるか否かを検出するためのエラー検出部
と、上記エラー検出手段によりエラーが含まれることが
検知されたとき、上記エラー訂正符号を用いてエラー訂
正を行うためのエラー訂正部と、上記エラー訂正部にお
けるエラー訂正に際し、誤訂正が発生したか否かを検証
するための誤訂正検証部とを有し、上記エラー検出部
は、上記符号語を上記エラー検出符号生成多項式で割っ
た剰余を求めるための剰余演算手段と、上記剰余演算手
段により演算された剰余が非ゼロであるとき、エラーが
含まれていることを、上記エラー訂正部に通知するため
の通知手段とを備え、上記エラー訂正部は、上記ユーザ
データおよびエラー検出符号を含む系列に含まれる各エ
ラーのエラー位置およびエラー値を求めるためのエラー
訂正演算手段と、上記系列における、上記求められたエ
ラー位置におけるバイトデータを、当該バイトデータお
よび上記求められたエラー値の排他的論理和をとったバ
イトデータとするための訂正手段とを備え、上記誤訂正
検証部は、第1の態様における誤訂正検証装置を用いて
構成されることを特徴とするエラー訂正装置が提供され
る。
According to the second aspect of the present invention, user data representing target information, an error detection code generated from the user data by an error detection code generation polynomial, the information code and the error detection code are used. An error correction apparatus for correcting an error included in a code word including an error correction code generated by an error correction code generation polynomial from a sequence including the error detection code, and detecting whether the error is included using the error detection code. An error detection unit for performing error correction by using the error correction code when the error detection unit detects that an error is included, and an error correction unit that performs error correction by using the error correction code. An error correction verifying unit for verifying whether or not an error correction has occurred. A remainder calculating means for obtaining a remainder divided by the error detection code generation polynomial; and a notifying means that the error is included in the error correcting unit when the remainder calculated by the remainder calculating means is non-zero. Notification means, and the error correction unit, the error correction operation means for obtaining the error position and error value of each error included in the series including the user data and the error detection code, and, in the series, Correcting means for converting the byte data at the obtained error position into byte data obtained by performing an exclusive OR operation on the byte data and the obtained error value; An error correction device characterized by being configured using the error correction verification device according to the aspect is provided.

【0030】本発明の第3の態様によれば、目的とする
情報を表すユーザデータにエラー検出符号が付加された
系列に、さらにエラー訂正符号が付加された符号語に含
まれるエラーを訂正するためのエラー訂正装置におい
て、上記符号語にエラーが含まれているか否かを検出す
るための検出部と、上記検出部において符号語にエラー
が含まれていることが検出された場合、エラー訂正符号
を用いて符号語のエラーを訂正する訂正演算を行うため
の訂正部と、上記訂正部におけるエラー訂正の訂正結果
を評価するための訂正結果評価部とを有し、上記訂正部
は、符号語に含まれるエラーのエラー位置およびエラー
値を求め、求めたエラー位置およびエラー値を用いて符
号語のエラー訂正を行う訂正演算を行うための演算回路
と、上記訂正演算の過程において、1または複数のエラ
ーのエラー位置およびエラー値を、エラーが算出される
ごとに上記訂正結果評価部に報告するための報告回路と
を備え、上記訂正結果評価部は、受け取ったエラー位置
およびエラー値を用いて訂正結果の評価を進める評価回
路を備え、上記訂正部および上記訂正結果評価部とは、
上記訂正部における訂正演算と、上記訂正結果評価部に
おける訂正結果の評価とを並行して実行することを特徴
とするエラー訂正装置が提供される。
According to the third aspect of the present invention, an error contained in a code word obtained by further adding an error correction code to a sequence obtained by adding an error detection code to user data representing target information is corrected. An error correcting device for detecting whether or not the code word contains an error, and detecting an error in the code word when the detecting unit detects that the code word contains an error. A correction unit for performing a correction operation for correcting a codeword error using a code, and a correction result evaluation unit for evaluating a correction result of the error correction in the correction unit, wherein the correction unit includes a code An arithmetic circuit for determining an error position and an error value of an error included in the word, performing a correction operation for correcting an error of the code word using the determined error position and the error value, and A reporting circuit for reporting an error position and an error value of one or a plurality of errors to the correction result evaluation unit each time an error is calculated, wherein the correction result evaluation unit receives the received error position. And an evaluation circuit for advancing the evaluation of the correction result using the error value and the correction unit and the correction result evaluation unit,
An error correction device is provided, wherein the correction operation in the correction unit and the evaluation of the correction result in the correction result evaluation unit are performed in parallel.

【0031】本発明の第4の態様によれば、情報を表す
情報符号と、上記情報符号から巡回冗長符号生成多項式
により生成されるエラー検出符号と、上記情報符号およ
びエラー検出符号を含む系列からエラー訂正符号生成多
項式により生成されるエラー訂正符号とを含む符号語に
対する上記エラー訂正符号を用いたエラー訂正につい
て、エラー訂正に際し誤訂正が発生したか否かを検証す
るための誤訂正検証方法において、上記符号語に対する
上記巡回冗長符号生成多項式の剰余、および、上記ユー
ザデータおよびエラー検出符号を含む系列に含まれる各
エラーのエラー位置およびエラー値を受け付け、上記各
エラーについて、受け付けたエラー位置およびエラー値
を含む項をそれぞれ最高次項とする多項式に対する上記
巡回冗長符号生成多項式の剰余を求め、上記求めた剰余
の、排他的論理和による総和を求め、上記求めた総和
と、上記受け付けた剰余とを比較し、これらが一致しな
いとき、誤訂正が発生したと判定し、かつ、そうでない
とき、誤訂正が発生しなかったと判定して、エラー訂正
を検証することを特徴とする誤訂正検証方法が提供され
る。
According to the fourth aspect of the present invention, an information code representing information, an error detection code generated from the information code by a cyclic redundancy code generation polynomial, and a sequence including the information code and the error detection code are used. For error correction using the above error correction code for a code word including an error correction code generated by an error correction code generation polynomial, an error correction verification method for verifying whether error correction has occurred during error correction. The remainder of the cyclic redundancy code generation polynomial for the codeword, and accepts the error position and error value of each error included in the sequence including the user data and the error detection code. The above cyclic redundancy code generation polynomial for a polynomial in which terms including error values are the highest-order terms. The remainder of the expression is calculated, the sum of the obtained remainder is calculated by exclusive OR, and the obtained sum is compared with the received remainder.If they do not match, it is determined that an erroneous correction has occurred. Otherwise, there is provided an erroneous correction verification method characterized by determining that erroneous correction has not occurred and verifying the error correction.

【0032】本発明の第5の態様によれば、プログラム
を格納した記録媒体において、上記プログラムは、第1
および第2のプロセッサを並列動作させることができる
プログラムであって、目的とする情報を表すユーザデー
タにエラー検出符号が付加された系列に、さらにエラー
訂正符号が付加された符号語にエラーが含まれているか
否かを検出し、当該符号語にエラーが含まれている場
合、エラー訂正符号を用いて当該符号語のエラーを訂正
する訂正演算を上記第1のプロセッサを用いて実行する
ための訂正部と、上記訂正部におけるエラー訂正の訂正
結果を上記第2のプロセッサ評価するための訂正結果評
価部とを有し、上記訂正部は、符号語に含まれるエラー
のエラー位置およびエラー値を求め、求めたエラー位置
およびエラー値を用いて符号語のエラー訂正を行う訂正
演算を行うためのステップと、上記訂正演算の過程にお
いて、1または複数のエラーのエラー位置およびエラー
値を、エラーが算出されるごとに上記訂正結果評価部に
報告するためのステップとを含み、上記訂正結果評価部
は、エラー位置およびエラー値が1または複数のエラー
について与えられるごとに訂正結果の評価のための演算
を行うためのステップを含むことを特徴とするプログラ
ムを格納した記録媒体が提供される。
According to a fifth aspect of the present invention, in a recording medium storing a program, the program is the first program
And a program capable of causing the second processor to operate in parallel, wherein a sequence in which an error detection code is added to user data representing target information and a codeword in which an error correction code is further added include an error. Detecting whether or not the code word includes an error, and executing a correction operation for correcting the error of the code word using the error correction code using the first processor when the code word includes an error. A correction unit, and a correction result evaluation unit for evaluating a correction result of the error correction in the correction unit by the second processor, wherein the correction unit determines an error position and an error value of an error included in the codeword. A step of performing a correction operation for performing error correction of a codeword using the obtained error position and the obtained error value; Reporting the error position and error value of the error to the correction result evaluator each time the error is calculated, wherein the correction result evaluator has an error position and an error value of one or more errors. A recording medium storing a program, characterized by including a step of performing an operation for evaluating a correction result each time a program is given.

【0033】上記第2の目的を達成するために、本発明
の第6の態様によれば、与えられた多項式を、予め定め
られた多項式で割った剰余を求めるための剰余演算装置
において、予め定められた次数の多項式を上記予め定め
られた多項式で割った剰余を求めるための剰余デコーダ
を、1次の多項式について少なくとも備えることを特徴
とする剰余演算装置が提供される。
To achieve the second object, according to a sixth aspect of the present invention, in a residue calculating device for calculating a remainder obtained by dividing a given polynomial by a predetermined polynomial, A residue arithmetic device is provided, which includes at least a residue decoder for obtaining a residue obtained by dividing a polynomial of a predetermined order by the predetermined polynomial, for a first-order polynomial.

【0034】上記第3の目的を達成するために、本発明
の第7の態様によれば、目的とする情報データ(ユーザ
データと呼ぶ)にエラー検出符号を付加したものを1つ
のデータとみなし、当該データにエラー訂正符号を付加
したデータが記録された記録媒体の再生装置において、
ホストからの命令に従って、上記記録媒体からのデータ
の再生を行う読み出し手段と、上記記録媒体から再生さ
れたデータを一時格納するバッファ手段と、上記記録媒
体から再生されたデータに生じているエラーを検出する
検出手段と、上記検出手段によってエラーが検出された
場合には、当該データに含まれているエラー訂正符号を
用いて、当該再生データのエラーを訂正する訂正手段
と、上記訂正手段による訂正結果を評価する訂正結果評
価手段と、上記訂正手段によって訂正された後の情報デ
ータを、外部に出力する出力手段と、を備え、上記訂正
符号は、当該データの複数ヶ所にエラー(誤り)が含ま
れる場合、その訂正演算過程において全てのエラーのう
ちの一部のエラー位置および、対応するエラー値を算出
し次第、当該エラー位置、およびエラー値を上記訂正結
果評価手段へ随時報告する手段を備え、上記訂正結果評
価手段は、受け取った上記エラー位置およびエラー値を
利用して、すぐさま上記訂正手段の訂正結果評価を進め
る手段を備えることにより、上記訂正手段と上記訂正結
果評価手段を並行して実行する手段とを備えることを特
徴とする再生装置が提供される。
In order to achieve the third object, according to the seventh aspect of the present invention, information obtained by adding an error detection code to target information data (called user data) is regarded as one data. In a reproducing apparatus for a recording medium in which data obtained by adding an error correction code to the data is recorded,
Reading means for reproducing data from the recording medium in accordance with a command from the host, buffer means for temporarily storing data reproduced from the recording medium, and an error occurring in the data reproduced from the recording medium. Detecting means for detecting, when an error is detected by the detecting means, correcting means for correcting an error of the reproduced data by using an error correction code included in the data, and correcting by the correcting means A correction result evaluation unit for evaluating the result; and an output unit for outputting the information data corrected by the correction unit to the outside, wherein the correction code has an error (error) at a plurality of locations of the data. If it is included, as soon as a part of all errors and the corresponding error value are calculated in the correction operation process, the error And a means for reporting an error value to the correction result evaluation means as needed, wherein the correction result evaluation means uses the received error position and error value to immediately advance the correction result evaluation of the correction means. And a means for executing the correction means and the correction result evaluation means in parallel is provided.

【0035】特に、上記訂正結果評価手段は、受け取る
エラー位置の順番と、上記エラー訂正符号上の位置の順
番との関係に依らずに上記訂正結果評価を進める手段を
備える。
In particular, the correction result evaluation means includes means for advancing the correction result evaluation irrespective of the relationship between the order of error positions to be received and the order of positions on the error correction code.

【0036】上記訂正結果評価手段は、例えば、受け取
ったエラー位置、エラー値から、エラー多項式を作成
し、当該エラー多項式を利用して検出符号の生成多項式
による剰余演算を行う手段を備え、その結果を一時格納
する手段を備え、さらに複数のエラー位置、エラー値を
受け取った場合、同様の演算を行ない、当該格納された
値との排他的論理和をとることにより当該格納された値
を更新する手段を備え、全てのエラー位置、エラー値に
対して当該演算を適用し、最終的に算出された結果と、
当該エラーを含んだ受信語を利用した当該検出符号生成
多項式による剰余演算結果とを比較する手段を備え、そ
の結果により上記エラー訂正手段により正当にエラーが
訂正されたかどうか判断する手段を備えるような装置で
実現される。
The correction result evaluation means includes, for example, a means for generating an error polynomial from the received error position and error value, and performing a remainder operation using a detection code generation polynomial using the error polynomial. Means for temporarily storing the data, and when a plurality of error positions and error values are received, the same operation is performed, and the stored value is updated by performing an exclusive OR operation with the stored value. Means, applying the operation to all error positions and error values, and finally calculated results,
Means for comparing the result of the remainder calculation by the detection code generation polynomial using the received word including the error, and means for determining whether the error has been properly corrected by the error correction means based on the result. Implemented in the device.

【0037】また、当該エラー多項式を利用して検出符
号の生成多項式による剰余演算を行う上記手段を複数備
え、一方が稼働中のときに、上記訂正手段からエラー位
置、エラー値の出力要求が来たときに、もう一方で該剰
余演算を行うことによって該訂正結果評価演算を高速に
行なえるようにしてもよい。
Further, a plurality of the above means for performing a remainder operation using a detection code generation polynomial using the error polynomial are provided, and when one of the means is in operation, an error position and error value output request is received from the correction means. Then, the other operation may be performed to perform the correction result evaluation operation at a high speed.

【0038】また、上記エラー検出符号として2つ以上
の独立したエラー検出符号を備え、当該検出符号を利用
して上記訂正手段の訂正結果を評価する2つ以上の独立
した訂正結果評価手段を備えることもできる。
Also, two or more independent error detection codes are provided as the error detection code, and two or more independent correction result evaluation means for evaluating the correction result of the correction means using the detection code are provided. You can also.

【0039】また、上記エラー訂正符号がインタリーブ
構成になっており、上記訂正手段はインタリーブ毎に訂
正演算を進めていく手段を備え、上記訂正結果評価手段
はインタリーブごとに算出されるエラー位置、エラー値
を受け取り、当該エラー位置から上記エラー検出符号で
みたエラー位置に算出し直す手段を備えるような構成を
とることもできる。
The error correction code has an interleave structure, the correction means includes means for performing a correction operation for each interleave, and the correction result evaluation means includes an error position, an error position, and an error calculated for each interleave. It is also possible to adopt a configuration including means for receiving the value and recalculating the error position from the error position to the error position as seen by the error detection code.

【0040】本発明の第8の態様によれば、第7の態様
における再生装置を備える記録再生装置が提供される。
According to an eighth aspect of the present invention, there is provided a recording / reproducing apparatus including the reproducing apparatus according to the seventh aspect.

【0041】本発明の第9の態様によれば、通信によっ
て受け付けたデータに含まれるエラーの訂正を、上記第
2および第3のいずれかの態様におけるエラー訂正装置
を用いて行う通信装置が提供される。
According to a ninth aspect of the present invention, there is provided a communication apparatus for correcting an error contained in data received by communication using the error correction apparatus according to any one of the second and third aspects. Is done.

【0042】[0042]

【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態について説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0043】先ず、本発明の第1の実施の形態について
説明する。本実施の形態においては、記録媒体である磁
気ディスクからのデータ再生に際し、本発明を適用した
エラー訂正方法を実行することができる磁気ディスク装
置について説明する。以下に、磁気ディスク装置の構
成、ユーザデータの記録動作、および、再生動作につい
て順次説明する。
First, a first embodiment of the present invention will be described. In the present embodiment, a magnetic disk device capable of executing an error correction method to which the present invention is applied when reproducing data from a magnetic disk as a recording medium will be described. Hereinafter, the configuration of the magnetic disk device, the recording operation of the user data, and the reproducing operation will be sequentially described.

【0044】先ず、磁気ディスク装置の構成について説
明する。磁気ディスク装置は、記録媒体となる磁気ディ
スク円盤を用いて、信号を記録再生するための機構部
と、機構部により記録再生される信号を処理するための
電子回路部とを有する。
First, the configuration of the magnetic disk drive will be described. The magnetic disk device has a mechanism for recording and reproducing signals using a magnetic disk as a recording medium, and an electronic circuit for processing signals recorded and reproduced by the mechanism.

【0045】図11を参照して、磁気ディスク装置の機
構部について説明する。図11において、磁気ディスク
装置1680は、データを記述する信号を記録するため
の記録媒体である磁気ディスク円盤810と、上記磁気
ディスク円盤810を回転させるためのスピンドルモー
タ1682と、上記磁気ディスク円盤810に対する信
号の読み出し/書き込みを行うためのヘッド811と、
上記ヘッド811を支持するためのアーム1683と、
上記アーム1683を駆動してヘッド811を移動させ
るためのボイスコイルモータ1653と、上記ヘッド8
11から読み出される信号を増幅し、また、ヘッド81
1を駆動して信号を記録するためのリード/ライト制御
回路812とを有して構成される。
Referring to FIG. 11, the mechanism of the magnetic disk drive will be described. 11, a magnetic disk device 1680 includes a magnetic disk 810 as a recording medium for recording a signal describing data, a spindle motor 1682 for rotating the magnetic disk 810, and a magnetic disk 810. A head 811 for reading / writing a signal to / from the
An arm 1683 for supporting the head 811;
A voice coil motor 1653 for driving the arm 1683 to move the head 811;
Amplifying the signal read from the
1 for driving and recording a signal.

【0046】次に、図3を参照して、磁気ディスク装置
の電子回路部について説明する。図3において、磁気デ
ィスク装置1681は、ホストコンピュータなどの情報
処理装置に接続するためのホストインタフェース826
と、データ受け渡しおよびフォーマットなどの制御をす
るためのハードディスクコントローラ817と、上記ヘ
ッド811(図11参照)および磁気ディスク円盤81
0(図11参照)の相対位置関係を制御するためのサー
ボ制御回路部814と、リード/ライト制御回路812
(図11参照)からの信号を処理するための信号処理回
路813と、データを一時記憶するためのデータバッフ
ァ816と、これらを制御するためのCPU(中央処理
装置)815とを有して構成される。
Next, an electronic circuit section of the magnetic disk drive will be described with reference to FIG. In FIG. 3, a magnetic disk device 1681 is provided with a host interface 826 for connecting to an information processing device such as a host computer.
, A hard disk controller 817 for controlling data transfer and format, etc., the head 811 (see FIG. 11) and a magnetic disk 81.
0 (see FIG. 11), a servo control circuit 814 for controlling the relative positional relationship, and a read / write control circuit 812.
It has a signal processing circuit 813 for processing signals from (see FIG. 11), a data buffer 816 for temporarily storing data, and a CPU (central processing unit) 815 for controlling these. Is done.

【0047】上記CPU815は、主に、HDC817
の制御と、サーボ制御回路814を介した磁気ディスク
810のサーボ制御とを行う。
The CPU 815 is mainly composed of the HDC 817
And the servo control of the magnetic disk 810 via the servo control circuit 814 is performed.

【0048】上記サーボ制御回路部814は、スピンド
ルモータ1682(図11参照)を制御するためのスピ
ンドル制御回路1685と、ボイスコイルモータ165
3(図11参照)を制御するためのボイスコイルモータ
制御回路1654とを備える。サーボ制御回路部814
は、CPU815との間で双方向の信号の送受を行い、
スピンドル制御回路1685を用いた磁気ディスク円盤
810の回転制御と、ボイスコイルモータ制御回路16
54を用いたヘッド811の位置制御をCPU815の
命令に従って実行する。
The servo control circuit section 814 includes a spindle control circuit 1685 for controlling the spindle motor 1682 (see FIG. 11) and a voice coil motor 165.
3 (see FIG. 11). Servo control circuit section 814
Performs bidirectional transmission and reception of signals with the CPU 815,
The rotation control of the magnetic disk 810 using the spindle control circuit 1685 and the voice coil motor control circuit 16
The position of the head 811 using the position control 54 is executed in accordance with a command from the CPU 815.

【0049】次に、図4を参照して、磁気ディスク装置
における、ユーザデータの記録動作および再生動作の概
略について、HDC(ハードディスクコントローラ)を
中心に説明する。
Next, with reference to FIG. 4, an outline of a recording operation and a reproducing operation of user data in the magnetic disk device will be described focusing on an HDC (hard disk controller).

【0050】先ず、HDC817の構成について説明す
る。上記HDC817は、磁気ディスク810へのユー
ザデータの記録および再生を全般的に制御するための部
分である。HDC817は、例えば、図4に示すよう
に、1つの集積回路(IC)で構成することができる。
このHDC817はバッファ制御部818と、CPU入
出力制御部819と、ドライブ制御部290およびホス
トインタフェース制御部825とを有して構成される。
First, the configuration of the HDC 817 will be described. The HDC 817 is a part for generally controlling recording and reproduction of user data on the magnetic disk 810. The HDC 817 can be formed of, for example, one integrated circuit (IC) as shown in FIG.
The HDC 817 includes a buffer control unit 818, a CPU input / output control unit 819, a drive control unit 290, and a host interface control unit 825.

【0051】上記CPU入出力制御部819は、CPU
815とHDC817とのインタフェーシングを行うた
めのものであり、信号線836を介してCPU815
に、信号線832を介してホストインタフェース制御部
825に、信号線831を介してバッファ制御部818
に、信号線864を介してドライブ制御部290に、そ
れぞれ接続されている。
The CPU input / output control unit 819 includes a CPU
815 and the HDC 817 for interfacing with the CPU 815 via a signal line 836.
To the host interface control unit 825 via the signal line 832 and the buffer control unit 818 via the signal line 831.
And a drive control unit 290 via a signal line 864.

【0052】またバッファ制御部833は、データバス
833を介してホストインタフェース制御部825に、
データバス827を介してデータバッファ816に、デ
ータバス828を介してドライブ制御部290に、それ
ぞれ接続されている。また、ドライブ制御部290は、
データ線829を介して信号処理回路813に接続され
ている。
The buffer controller 833 sends the data to the host interface controller 825 via the data bus 833.
It is connected to a data buffer 816 via a data bus 827 and to a drive control unit 290 via a data bus 828, respectively. In addition, the drive control unit 290
It is connected to a signal processing circuit 813 via a data line 829.

【0053】上記ドライブ制御回路290は、CRCC
を生成するための演算およびCRC演算を行うためのC
RC回路260と、ECCを生成するための演算および
ECCを用いてエラーを訂正する演算を行うためのEC
C回路262と、エラー訂正を検証するための検証回路
261とを有して構成される。
The drive control circuit 290 has a CRCC
For performing the CRC operation and the operation for generating the
An RC circuit 260 and an EC for performing an operation for generating an ECC and an operation for correcting an error using the ECC.
It comprises a C circuit 262 and a verification circuit 261 for verifying error correction.

【0054】上記データバッファ828によるドライブ
制御回路290およびバッファ制御回路818の接続に
加えて、ECC回路262は、信号線828を介してバ
ッファ制御部818に接続されている。
In addition to the connection of the drive control circuit 290 and the buffer control circuit 818 by the data buffer 828, the ECC circuit 262 is connected to the buffer control unit 818 via a signal line 828.

【0055】次に、同じく図4を参照して、ホストから
与えられるユーザデータを記録するための記録動作につ
いて説明する。
Next, a recording operation for recording user data given from the host will be described with reference to FIG.

【0056】ホストインタフェース826を介して送ら
れるユーザデータは、ホストインタフェース制御部82
5、データバス833、バッファ制御部818、データ
バス827を介してデータバッファ816に送信され
る。データバッファ816に送信されたユーザデータ
は、さらに、データバス827、バッファ制御部81
8、データバス828を介してドライブ制御部290に
送信される。
The user data sent via the host interface 826 is sent to the host interface controller 82
5, transmitted to the data buffer 816 via the data bus 833, the buffer control unit 818, and the data bus 827. The user data transmitted to the data buffer 816 is further transmitted to the data bus 827 and the buffer control unit 81.
8, transmitted to the drive control unit 290 via the data bus 828.

【0057】ドライブ制御部290は、ユーザデータに
対して、CRC回路2610よりCRCパリティ部を付
加してエラー検出符号化し、このエラー検出符号に、E
CC回路830によりにさらにECCパリティ部を付加
して、符号語{ユーザデータ+CRCパリティ部+EC
Cパリティ部}を生成する。この符号語{ユーザデータ
+CRCパリティ部+ECCパリティ部}は、データバ
ス829を介して信号処理回路813に送信され、エン
コードされる。そして、エンコードされた記録信号が、
ドライブ制御部290の制御に従って、リード/ライト
制御回路812により磁気ディスク円盤810に記録さ
れる。このようにして、ユーザデータを磁気ディスク円
盤810に記録する記録動作が行なわれる。
The drive control section 290 adds an CRC parity section to the user data from the CRC circuit 2610 and performs error detection encoding.
The ECC parity part is further added by the CC circuit 830, and the code word {user data + CRC parity part + EC
A C parity part} is generated. This code word {user data + CRC parity section + ECC parity section} is transmitted to the signal processing circuit 813 via the data bus 829 and encoded. Then, the encoded recording signal is
The data is recorded on the magnetic disk 810 by the read / write control circuit 812 under the control of the drive control unit 290. In this way, the recording operation for recording the user data on the magnetic disk 810 is performed.

【0058】さらに、同じく図4を参照して、磁気ディ
スクに記録されているデータを再生するための再生動作
について説明する。
Further, referring to FIG. 4, a reproducing operation for reproducing data recorded on the magnetic disk will be described.

【0059】ドライブ制御部820の制御に従って、磁
気ディスク円盤810に記録されている記録信号が、磁
気ヘッド811、リード/ライト制御回路812を介し
て信号制御回路813に送信され、符号語{ユーザデー
タ+CRCパリティ部+ECCパリティ部}にデコード
される。そして、デコードされた符号語{ユーザデータ
+CRCパリティ部+ECCパリティ部}は、データバ
ス829を介してドライブ制御部290に送信される。
ドライブ制御部290は、ECCパリティ部ECCパリ
ティ部を除いた符号語{ユーザデータ+CRCパリティ
部}をデータバス828、バッファ制御部818、およ
びデータバス827を介してデータバッファ816に送
信するとともに、ECC回路262を制御して、符号語
{ユーザデータ+CRCパリティ部+ECCパリティ
部}に含まれるエラーを検出する。同時に、CRC回路
260を制御して、符号語{ユーザデータ+CRCパリ
ティ部}のCRC剰余を演算する。このCRC剰余は、
ECCの誤訂正を検出するために後で使用される。
Under the control of the drive control unit 820, a recording signal recorded on the magnetic disk 810 is transmitted to the signal control circuit 813 via the magnetic head 811 and the read / write control circuit 812, and the code word {user data + CRC parity part + ECC parity part}. The decoded codeword {user data + CRC parity unit + ECC parity unit} is transmitted to the drive control unit 290 via the data bus 829.
The drive control unit 290 transmits the codeword {user data + CRC parity unit} excluding the ECC parity unit ECC parity unit to the data buffer 816 via the data bus 828, the buffer control unit 818, and the data bus 827, and The circuit 262 is controlled to detect an error included in the code word {user data + CRC parity section + ECC parity section}. At the same time, it controls the CRC circuit 260 to calculate the CRC remainder of the codeword {user data + CRC parity part}. This CRC remainder is
Used later to detect ECC miscorrections.

【0060】ECC回路262によりエラーが検出され
た場合、引き続きエラー訂正処理を行い、算出されたエ
ラー位置、エラー値に基づいて、データバッファ816
に格納されている{ユーザデータ+CRCパリティ部}
のうち対応するエラーデータを訂正する。
When an error is detected by the ECC circuit 262, error correction processing is continuously performed, and the data buffer 816 is determined based on the calculated error position and error value.
{User data + CRC parity part}
Of the corresponding error data.

【0061】また、ECC回路262によりエラー訂正
処理が終了されると、上記算出されたCRC剰余(エラ
ー訂正前)、エラー位置およびエラー値をもとに、検証
回路261によりエラー訂正結果が検証される。この検
証によりECC回路262が誤訂正したかどうかが判定
される。ECC回路262における訂正が成功し、か
つ、検証回路262においてECC回路262の誤訂正
が検出されなければ、訂正は成功したと判定する。
When the error correction processing is completed by the ECC circuit 262, the error correction result is verified by the verification circuit 261 based on the calculated CRC remainder (before error correction), the error position and the error value. You. This verification determines whether the ECC circuit 262 has made an erroneous correction. If the correction in the ECC circuit 262 is successful and the erroneous correction of the ECC circuit 262 is not detected in the verification circuit 262, it is determined that the correction is successful.

【0062】ECC回路262およびCRC回路260
によりユーザデータが補償されると、データバッファ8
16に一時格納してある{ユーザデータ+CRCパリテ
ィ部}のうちユーザデータのみがデータバス827、バ
ッファ制御部818、およびデータバス833を介して
ホストインタフェース制御部825に送られる。ホスト
はホストインタフェース制御部825からホストインタ
フェース826を介してユーザデータを受信する。この
ようにして、磁気ディスク円盤810からユーザデータ
を再生する再生動作が行なわれる。
ECC circuit 262 and CRC circuit 260
When the user data is compensated for by the
Only the user data out of the {user data + CRC parity unit} temporarily stored in 16 is sent to the host interface control unit 825 via the data bus 827, the buffer control unit 818, and the data bus 833. The host receives user data from the host interface control unit 825 via the host interface 826. Thus, the reproducing operation for reproducing the user data from the magnetic disk 810 is performed.

【0063】次に、上記ドライブ制御部290の詳細に
ついて説明する。先ず、CRCの性質、エラー訂正結果
の評価演算の一般的な理論、本発明を適用した評価演算
の演算理論について順次し、さらに、この演算理論を適
用した、本実施形態におけるドライブ制御部290の構
成および動作の詳細について説明する。
Next, the details of the drive control section 290 will be described. First, the nature of the CRC, the general theory of the evaluation operation of the error correction result, and the operation theory of the evaluation operation to which the present invention is applied are sequentially described. Further, the drive control unit 290 of the present embodiment to which this operation theory is applied is described. Details of the configuration and operation will be described.

【0064】先ず、CRCによるエラー検出について説
明する。
First, error detection by CRC will be described.

【0065】ユーザデータ(例えば、データを記録する
際に、ホスト側から送られるデータを多項式形式で表現
すると、(式1)のように表される。
User data (for example, when data is recorded, data sent from the host side is expressed in a polynomial form as shown in (Equation 1).

【0066】[0066]

【数1】 (Equation 1)

【0067】(式1)において、dxは、ユーザデータの
バイト毎に数えたx番めの8ビットパターン(すなわち
シンボル値)を示す。
In (Equation 1), d x indicates the x-th 8-bit pattern (ie, symbol value) counted for each byte of the user data.

【0068】ここで、CRCの生成多項式をGCRC(x)と
すると、D(x)から生成される符号W(x)は、(式2)のよ
うに示される。
Here, assuming that the CRC generating polynomial is G CRC (x), the code W (x) generated from D (x) is shown as (Equation 2).

【0069】[0069]

【数2】 (Equation 2)

【0070】ここで、Rは、CRCの冗長数であり、例
えば、4バイトCRCならばR=32である。
Here, R is a CRC redundancy number. For example, R = 32 for a 4-byte CRC.

【0071】この符号W(x)は、GCRC(x)で必ず割り切れ
る。この符号W(x)にECCバイトを付加して媒体に記録
するための記録符号として用いる。さて、符号W(x)(こ
こでは、{ユーザデータ+CRCパリティ部}を特に指
す)とそれに対応するECCパリティ部とを媒体から読
み出す際にエラーが発生し、本来の符号W(x)とは異なる
符号M(x)が再生されたとすると、これらは(式3)の関
係にある。
This code W (x) is always divisible by G CRC (x). An ECC byte is added to this code W (x) and used as a recording code for recording on a medium. Now, an error occurs when reading out the code W (x) (in this case, {user data + CRC parity part in particular}) and the corresponding ECC parity part from the medium, and the original code W (x) is If different codes M (x) are reproduced, they have the relationship of (Equation 3).

【0072】[0072]

【数3】 (Equation 3)

【0073】(式3)においてE(x)はエラー多項式であ
り、このエラー多項式E(x)は、(式4)のように表せ
る。
In (Equation 3), E (x) is an error polynomial, and this error polynomial E (x) can be expressed as (Equation 4).

【0074】[0074]

【数4】 (Equation 4)

【0075】ここで、exはエラー値を示し、また、jx
対応するエラー位置を示す。lは、ユーザデータおよび
CRCバイト部に発生したエラーバイト数である。
[0075] Here, e x indicates an error value, also, j x shows the corresponding error location. l is the number of error bytes generated in the user data and CRC byte portions.

【0076】さて、(式4)で示される符号M(x)(再生
された受信語)に対するデータ読出し時のCRCによる
エラー検出は、(式5)に従って実行することができ
る。但し、ここでの検出とは、ECCの誤訂正チェック
ではなく、ECC訂正前のデータに対するエラー検出で
ある。
The error detection by CRC at the time of reading data from the code M (x) (reproduced received word) represented by (Equation 4) can be executed according to (Equation 5). However, the detection here is not an error correction check of ECC but an error detection of data before ECC correction.

【0077】[0077]

【数5】 (Equation 5)

【0078】(式5)から、符号M(x)に対する剰余算の
結果は、エラー多項式E(x)にのみ依存することが示され
る。このエラー多項式E(x)は、エラー位置およびエラー
値から決定される。Sがゼロと等しくない時にエラー検
出と判断されるから、xRE(x)がGCRC(x)で割り切れない
限りCRCによるエラー検出が実現できる。なぜなら、
符号M(x)にエラーが発生していなければ、すなわち、E
(x)=0であるならば、M(x)=W(x)が成立し、GCRC(x)で必
ず割り切れるはずだからである。
(Equation 5) shows that the result of the remainder operation on the code M (x) depends only on the error polynomial E (x). The error polynomial E (x) is determined from an error position and an error value. Since it is determined that an error detected when S is not equal to zero, CRC errors detected can be achieved by long as x R E (x) is not divisible by G CRC (x). Because
If there is no error in the code M (x), that is, E
This is because if (x) = 0, then M (x) = W (x) holds and must be divisible by G CRC (x).

【0079】従って、この性質を利用してECC訂正後
の誤訂正検証を実現できる。以下、この誤訂正検証につ
いて説明する。
Therefore, erroneous correction verification after ECC correction can be realized by utilizing this property. Hereinafter, the erroneous correction verification will be described.

【0080】データ部またはCRCパリティ部に発生し
たエラー位置と、それに対応するエラー値とは、ECC
訂正することにより算出することができる。誤訂正をし
ていなければ、これらのエラー位置およびエラー値は、
それぞれ(式4)におけるexおよびjxに対応する。勿
論、ECC訂正で算出された、ユーザデータ部、CRC
部に発生したエラー個数は、(式4)におけるlと等し
くなるはずである。
The error position occurring in the data part or CRC parity part and the corresponding error value are determined by ECC
It can be calculated by correcting. Unless incorrectly corrected, these error locations and values are
Respectively corresponding to the e x and j x in Equation (4). Of course, the user data part and CRC calculated by ECC correction
The number of errors that occurred in the part should be equal to l in (Equation 4).

【0081】多項式表現されるE'(x)を、ECC訂正に
より求められたエラー位置、エラー値を用いて生成す
る。E'(x)は、(式6)のように示せる。
E ′ (x) expressed as a polynomial is generated using an error position and an error value obtained by ECC correction. E ′ (x) can be expressed as (Equation 6).

【0082】[0082]

【数6】 (Equation 6)

【0083】ここで、ex'およびjx'は、それぞれECC
演算で算出されたエラー値およびエラー位置を示す。ま
た、l'は、ECC演算で算出されたユーザデータ部およ
びCRCパリティ部に発生したエラーの個数を示す。
Here, e x ′ and j x ′ are ECC
The error value and the error position calculated by the calculation are shown. Also, l ′ indicates the number of errors generated in the user data part and the CRC parity part calculated by the ECC operation.

【0084】このE'(x)を用いて、剰余算を(式5)と
同様にして実行し、その結果が(式5)の結果と等しけ
れば、ECC訂正は正常に行なわれたとCRCは判断す
る。すなわち、(式7)で表せるS'で、S=S'ならば、E
CCの誤訂正をCRCでは検出しなかったことを示す。
Using this E ′ (x), the remainder calculation is executed in the same manner as in (Equation 5), and if the result is equal to the result of (Equation 5), the ECC correction is performed normally and the CRC to decide. That is, if S ′ can be expressed by (Equation 7) and S = S ′, then E
Indicates that the erroneous correction of CC was not detected by CRC.

【0085】[0085]

【数7】 (Equation 7)

【0086】このように、CRCによるECC誤訂正の
検出は、ECC演算で算出されたエラー位置およびエラ
ー値と、読み込んだ{ユーザデータ+CRCパリティ
部}からのCRC剰余算結果(ECC訂正前)とさえあ
れば実行可能である。
As described above, the detection of the ECC error correction by the CRC is performed by detecting the error position and error value calculated by the ECC operation, the CRC remainder calculation result from the read {user data + CRC parity part} (before ECC correction). It is feasible if there is one.

【0087】次に、本発明を適用した評価演算について
説明する。
Next, an evaluation operation to which the present invention is applied will be described.

【0088】上述のようにして導かれた(式7)は、多
項式表現することに着目すると、(式8)に示すように
変形することができる。
The expression (7) derived as described above can be modified as shown in the expression (8) when attention is paid to the polynomial expression.

【0089】[0089]

【数8】 (Equation 8)

【0090】(式8)において、演算子「+」は排他的
論理和を示す。(式7)、(式8)から、次の理論が導
かれる。すなわち、ECC回路により算出されたエラー
位置およびエラー値よりなるエラー多項式E'(x)のそれ
ぞれの項について、それぞれ独立して(式7)の演算を
適用する。そして、それぞれの項における演算結果を相
互に排他的論理和をとることにより結果値S'を求めるこ
とができる。
In (Equation 8), the operator “+” indicates exclusive OR. The following theory is derived from (Equation 7) and (Equation 8). That is, for each term of the error polynomial E ′ (x) including the error position and the error value calculated by the ECC circuit, the calculation of (Equation 7) is applied independently. Then, a result value S ′ can be obtained by performing an exclusive OR operation on the operation results in the respective terms.

【0091】本実施の形態の検証回路261は、この理
論を利用したものである。すなわち、検証回路261に
おいては、エラー位置およびエラー値がECC回路26
2によって求められると、(式8)の各項の演算を随
時、項ごとに独立して実行することが可能であり、項ご
とに得られる結果に従って最終的に求めるべき値S'を更
新していく。従って、検証演算を項ごとに並列して実行
することが可能となり、検証の高速化をはかり、エラー
訂正の検証に要する時間を短縮することが可能となる。
The verification circuit 261 of this embodiment utilizes this theory. That is, in the verification circuit 261, the error position and the error value are stored in the ECC circuit 26.
2, the calculation of each term in (Equation 8) can be executed independently for each term at any time, and the value S ′ to be finally obtained is updated according to the result obtained for each term. To go. Therefore, the verification operation can be executed in parallel for each term, and the speed of the verification can be increased, and the time required for the error correction verification can be reduced.

【0092】次に、図5を参照して、上記演算理論を適
用した、本実施の形態におけるドライブ制御部290の
動作の詳細について説明する。
Next, with reference to FIG. 5, the operation of the drive control unit 290 in the present embodiment, to which the above-described arithmetic theory is applied, will be described in detail.

【0093】図5において、ドライブ制御部290は、
CRC回路260と、検証回路261と、ECC回路2
62とを有して構成されている。各ブロックのそれぞれ
の構成および動作については後述する。ここでは、ブロ
ック相互のデータの送受を中心に、これら3つのブロッ
クの動作概要について、記憶媒体(図4における磁気デ
ィスク円盤810)に対する、ユーザデータの書き込み
と読み出しとの場合に分けて説明する。
In FIG. 5, the drive control unit 290
CRC circuit 260, verification circuit 261, ECC circuit 2
62. The configuration and operation of each block will be described later. Here, an outline of the operation of these three blocks will be described focusing on the transmission and reception of data between the blocks, separately for the case of writing and reading of user data to and from a storage medium (the magnetic disk 810 in FIG. 4).

【0094】先ず、磁気ディスク円盤810へのユーザ
データの書き込みについて説明する。この書き込み動作
は、基本的に従来から用いられている動作と同様にして
行なわれる。
First, writing of user data to the magnetic disk 810 will be described. This writing operation is basically performed in the same manner as the operation conventionally used.

【0095】先ず、ドライブ制御部290のデータバス
258に書き込むべきユーザデータが、データバッファ
816(図4参照)、バッファ制御部818(図4参
照)を介して、8ビット単位で送られてくる。ドライブ
制御部290では、ユーザデータをCRC回路260、
およびECC回路262に入力していく。よって、この
時点では、セレクタ264は、データバス258を選択
し、そこからのデータをバス253に出力する。
First, user data to be written to the data bus 258 of the drive control unit 290 is sent in 8-bit units via the data buffer 816 (see FIG. 4) and the buffer control unit 818 (see FIG. 4). . The drive control unit 290 transmits the user data to the CRC circuit 260,
And to the ECC circuit 262. Therefore, at this time, the selector 264 selects the data bus 258 and outputs data from the data bus 258 to the bus 253.

【0096】全てのユーザデータが上記の2つのブロッ
ク(CRC回路260、ECC回路262)に転送され
るまで、それぞれのブロックは、次のように動作する。
すなわち、CRC回路260は、転送されるユーザデー
タを多項式として認識し、CRC生成多項式による剰余
演算を行ない((式2)参照)、また、ECC回路26
2は、転送されるユーザデータを多項式として認識し、
ECC生成多項式で剰余演算を行う。また、ECC回路
262は、並行して転送されてくるユーザデータを8ビ
ット単位で符号語出力バス255より出力する。
Until all user data is transferred to the above two blocks (CRC circuit 260 and ECC circuit 262), each block operates as follows.
That is, the CRC circuit 260 recognizes the transferred user data as a polynomial, performs a remainder operation using a CRC generation polynomial (see (Equation 2)), and
2 recognizes the transferred user data as a polynomial,
A remainder operation is performed using an ECC generating polynomial. The ECC circuit 262 outputs the user data transferred in parallel from the codeword output bus 255 in 8-bit units.

【0097】全てのユーザデータが上記の2ブロック
(CRC回路260、ECC回路262)に転送される
と、それぞれのブロックは、次のように動作する。すな
わち、CRC回路260においてCRCパリティ部(本
実施の形態では4バイト)が生成されるから、データバ
ス257を介して、ECC回路262にCRCパリティ
部を8ビット単位で転送する。すなわち、この期間にお
いては、セレクタ264は、データバス257を選択
し、そこからのデータをデータバス253に出力する。
When all the user data has been transferred to the two blocks (CRC circuit 260 and ECC circuit 262), each block operates as follows. That is, since a CRC parity section (4 bytes in the present embodiment) is generated in the CRC circuit 260, the CRC parity section is transferred to the ECC circuit 262 via the data bus 257 in 8-bit units. That is, during this period, the selector 264 selects the data bus 257 and outputs data from the data bus 257 to the data bus 253.

【0098】ECC回路262は、全てのユーザデータ
バイトに引き続き、前述したデータバス257を介して
転送されるCRCパリティ部を使用して、ECC生成多
項式による剰余演算を引き続いて行う。また、ECC回
路262は並行して、転送されてくるCRCパリティ部
を8ビット単位で符号語出力バス255より出力する。
The ECC circuit 262 continuously performs the remainder operation by the ECC generating polynomial using the CRC parity part transferred via the data bus 257 following all the user data bytes. In addition, the ECC circuit 262 outputs the transferred CRC parity unit from the codeword output bus 255 in 8-bit units in parallel.

【0099】CRCパリティ部(本実施の形態では4バ
イト)の全てがECC回路262に転送されると、EC
C回路262の内部においてECCパリティ部が生成さ
れるので、その後、符号語出力バス255を介して、8
ビットずつECCパリティ部を出力する。
When all of the CRC parity section (4 bytes in this embodiment) is transferred to the ECC circuit 262,
Since the ECC parity part is generated inside the C circuit 262, the 8
The ECC parity unit is output bit by bit.

【0100】このようにして、本実施の形態を適用した
ドライブ制御部290において、データバス258を介
してユーザデータを入力していくことによって、符号語
{ユーザデータ部+CRCパリティ部+ECCパリティ
部}が符号語出力バス255から順次出力する動作が実
現される。このような動作により、本発明を適用したド
ライブ制御部290は、符号語{ユーザデータ部+CR
Cパリティ部+ECCパリティ部}を、データバス82
9(図4参照)を介して磁気ディスク円盤810(図4
参照)に記録する。
As described above, in the drive control unit 290 to which the present embodiment is applied, by inputting user data via the data bus 258, the code word {user data portion + CRC parity portion + ECC parity portion} Are sequentially output from the codeword output bus 255. With such an operation, the drive control unit 290 to which the present invention is applied can determine the code word {user data unit + CR
C parity unit + ECC parity unit}
9 (see FIG. 4) through the magnetic disk 810 (FIG. 4).
Record).

【0101】次に、同じく図5を参照して、本実施の形
態におけるドライブ制御部290における記憶媒体(磁
気ディスク円盤810(図4参照))からのユーザデー
タの読み込み動作について説明する。記憶媒体からの記
録信号の取得、取得された記録信号の復号処理などは、
従来行なわれている処理と、同様であるが、本実施の形
態における処理は、ECCによるエラー訂正、およびE
CC誤訂正のCRCにおいて相違する。以下に相違点を
中心に説明する。
Next, an operation of reading user data from a storage medium (magnetic disk 810 (see FIG. 4)) in drive control section 290 in the present embodiment will be described with reference to FIG. Acquisition of the recording signal from the storage medium, decoding processing of the acquired recording signal, etc.
Although the processing is the same as the processing performed conventionally, the processing in the present embodiment is based on error correction by ECC and
It differs in the CRC of CC error correction. The following description focuses on the differences.

【0102】先ず、記憶媒体である磁気ディスク円盤8
10(図4参照)から読み込まれた符号語{ユーザデー
タ部+CRCパリティ部+ECCパリティ部}はデータ
バス258を介して、CRC回路260およびECC回
路262に入力される。すなわち、この期間は、この期
間においては、セレクタ264は、データバス258を
選択し、そこからのデータをデータバス253に出力す
る。
First, a magnetic disk 8 as a storage medium
The codeword {user data section + CRC parity section + ECC parity section} read from 10 (see FIG. 4) is input to CRC circuit 260 and ECC circuit 262 via data bus 258. That is, during this period, the selector 264 selects the data bus 258 and outputs data from the data bus 253 to the data bus 253 during this period.

【0103】CRC回路260では、符号語{ユーザデ
ータ部+CRCパリティ部}をCRC生成多項式によっ
て剰余演算して4バイトのCRC剰余を算出する。そし
て、算出したCRC剰余を、データバス256を介して
検証回路261に4バイト一度に出力する。検証回路2
61では、受け取った4バイトのCRC剰余を内部に格
納しておく。
The CRC circuit 260 modulates the code word {user data section + CRC parity section} by using a CRC generating polynomial to calculate a 4-byte CRC remainder. Then, the calculated CRC remainder is output to the verification circuit 261 via the data bus 256 every four bytes. Verification circuit 2
At 61, the received 4-byte CRC remainder is stored internally.

【0104】ECC回路262では、{ユーザデータ部
+CRCパリティ部+ECCパリティ部}よりシンドロ
ームを算出する。算出されたシンドロームのうち少なく
とも1つ以上が非ゼロであれば、ECC回路262は、
読み込んだ{ユーザデータ部+CRCパリティ部+EC
Cパリティ部}にエラーが含まれていると判定し、訂正
動作を開始する。算出されたシンドロームが全てゼロで
あれば読み込んだ{ユーザデータ部+CRCパリティ部
+ECCパリティ部}にエラーが含まれていないと判定
し、ドライブ制御部290に対して正常なデータ転送が
行なわれたことを報告する。
The ECC circuit 262 calculates a syndrome from {user data section + CRC parity section + ECC parity section}. If at least one of the calculated syndromes is non-zero, the ECC circuit 262 determines
Read {user data part + CRC parity part + EC}
It is determined that an error is included in the C parity section}, and a correction operation is started. If the calculated syndromes are all zero, it is determined that no error has been included in the read {user data section + CRC parity section + ECC parity section}, and normal data transfer to the drive control section 290 has been performed. Report.

【0105】次に、訂正動作について説明する。Next, the correction operation will be described.

【0106】ECC回路262でシンドロームを用いて
訂正演算したとき、発生したエラー個数がECCの訂正
能力範囲内であれば、エラー位置とエラー値のペアを1
組以上(実際に発生したエラー個数分だけ)算出する。
When the ECC circuit 262 performs a correction operation using the syndrome, if the number of generated errors is within the correction capability range of the ECC, the pair of the error position and the error value is set to one.
Calculate more than pairs (for the number of errors actually occurred).

【0107】この時、エラー位置およびエラー値のペア
(但し、エラー位置がユーザデータ部もしくはCRCパ
リティ部だった場合)が1つ見つかるごとに、それぞ
れ、データバス251、データバス252を介して検証
回路261に、エラー位置およびエラー値のペアを出力
する。
At this time, every time a pair of an error position and an error value (where the error position is a user data portion or a CRC parity portion) is found, verification is performed via a data bus 251 and a data bus 252, respectively. An error position and an error value pair are output to the circuit 261.

【0108】検証回路261では、受け取ったエラー位
置およびエラー値を用いて誤訂正検証演算を行ってい
く。検証回路261では、エラー位置およびエラー値を
受け取るごとに、誤訂正検証用のCRC再剰余を演算
し、更新していく。本実施の形態では、1ペアのエラー
位置およびエラー値を用いたCRC再剰余の更新演算に
要するクロックサイクルを、数クロックサイクルから1
0数クロックサイクルに低減している。このため、更新
演算の高速化が図られる。検証回路261の詳細な動作
については後述する。
The verification circuit 261 performs an erroneous correction verification operation using the received error position and error value. The verification circuit 261 calculates and updates a CRC re-residue for erroneous correction verification every time it receives an error position and an error value. In the present embodiment, the number of clock cycles required for the CRC re-residue update operation using one pair of error positions and error values is reduced from several clock cycles to one.
The number has been reduced to zero clock cycles. Therefore, the speed of the update operation is increased. The detailed operation of the verification circuit 261 will be described later.

【0109】ECC回路262は、エラー位置およびエ
ラー値のペアが見つかるごとに検証回路261にエラー
位置およびエラー値を出力しようとする。ここで、も
し、検証回路261において、既に渡してあるエラー位
置およびエラー値を使用したCRC再剰余の更新が完了
してなければ、検証回路261は、制御線253を介し
て未完了であることを報告しているので、それが完了す
るまでECC回路262はエラー位置およびエラー値の
出力をウェイトする。
The ECC circuit 262 tries to output the error position and the error value to the verification circuit 261 every time a pair of the error position and the error value is found. Here, if the verification circuit 261 has not completed updating of the CRC re-residue using the error position and error value that have already been passed, the verification circuit 261 determines that the update has not been completed via the control line 253. , The ECC circuit 262 waits for the output of the error position and the error value until it is completed.

【0110】そして、CRC再剰余の更新が完了する
と、エラー位置およびエラー値を検証回路261に出力
し、引き続き、次のエラー位置およびエラー値を算出し
始める。
When the update of the CRC remainder is completed, the error position and error value are output to the verification circuit 261, and the calculation of the next error position and error value is started.

【0111】ECC回路262において、期待される全
てのエラー位置およびエラー値のペアが算出され、検証
回路261において、算出された全てのエラー位置およ
びエラー値のペアを使用してCRC再剰余の更新が終了
すると、検証回路261の内部に格納されているCRC
再剰余値は、ECCによる誤訂正がない場合、既に検証
回路261内に格納されている前述のCRC剰余と一致
するはずである。
The ECC circuit 262 calculates all pairs of expected error positions and error values, and the verification circuit 261 updates the CRC re-residue using all the calculated error position and error value pairs. Is completed, the CRC stored in the verification circuit 261 is
The re-residue value should match the CRC remainder already stored in the verification circuit 261 if there is no error correction by ECC.

【0112】従って、検証回路261は、CRC再剰余
値とCRC剰余値とが等しければ、ECCによる訂正が
正常に行なわれたと解釈する。さもなければ(CRC再
剰余値とCRC剰余値とが等しくなければ)、ECCに
よる誤訂正が行なわれたと判定し、誤訂正発生を、バス
250を介してECC回路262に報告する。
Therefore, the verification circuit 261 interprets that the correction by the ECC has been performed normally if the CRC remainder value is equal to the CRC remainder value. Otherwise (if the CRC re-residue value is not equal to the CRC remainder value), it is determined that erroneous correction by ECC has been performed, and the occurrence of erroneous correction is reported to the ECC circuit 262 via the bus 250.

【0113】ECC回路262では、算出されたエラー
位置およびエラー値のペアを使用して、データバス83
4、バッファ制御部818(図4参照)を介して、デー
タバッファ816(図4参照)内に格納されている対応
する誤りバイトデータを正常なデータへと訂正する。具
体的には、データバッファメモリ816内に格納されて
いる誤りバイトデータをエラー位置から特定し、ECC
回路262に読み込み、誤りバイトデータと、エラー値
との排他的論理和をとったバイトデータを、また、デー
タバッファメモリ816内の同位置(エラー位置から特
定される)に再格納する。
The ECC circuit 262 uses the pair of the calculated error position and error value to generate the data bus 83.
4. The corresponding error byte data stored in the data buffer 816 (see FIG. 4) is corrected to normal data via the buffer control unit 818 (see FIG. 4). Specifically, the error byte data stored in the data buffer memory 816 is specified from the error position, and the ECC
The data is read into the circuit 262 and the exclusive OR of the error byte data and the error value is re-stored at the same position (specified from the error position) in the data buffer memory 816.

【0114】一方、ECC回路262において訂正不能
と判定するか、検証回路261から誤訂正発生の報告を
受けた場合は、ECC回路262は、受け付けたデータ
についての訂正ができなかったことを、上位の制御を行
う制御回路に報告する。すなわち、ECC回路262で
訂正演算を行ったが訂正不成功(訂正不能)であること
が、、ECC回路262における演算結果から判断され
るか、または、ECCの誤訂正発生が検証回路261に
おいて検出され、この旨がバス250を介してECC回
路262に報告された場合には、ECC回路262は、
訂正不能リポート信号254を介して、より上位の制御
を行う制御回路(例えば、CPU815など)に、現
在、訂正を試みた{ユーザデータ+CRCパリティ部+
ECCパリティ部}が訂正不能であったことを報告す
る。このとき、上位の制御回路は、読み出したユーザデ
ータにエラーが含まれ、かつ、ECC回路262でも訂
正できないと認識し、ユーザデータの再読み出し(リト
ライ)処理などを行う。
On the other hand, when the ECC circuit 262 determines that the data cannot be corrected or receives a report of the occurrence of an erroneous correction from the verification circuit 261, the ECC circuit 262 determines that the received data could not be corrected. To the control circuit that controls That is, whether the correction operation was performed by the ECC circuit 262 but the correction was unsuccessful (uncorrectable) is determined from the operation result in the ECC circuit 262, or the error correction of the ECC is detected in the verification circuit 261. When this is reported to the ECC circuit 262 via the bus 250, the ECC circuit 262
Via a non-correctable report signal 254, a control circuit (for example, CPU 815 or the like) that performs higher-level control sends a {user data + CRC parity unit +
Reports that ECC parity unit # could not be corrected. At this time, the higher-level control circuit recognizes that the read user data contains an error and cannot be corrected by the ECC circuit 262, and performs a re-read (retry) process of the user data.

【0115】以上説明したように、本実施の形態によれ
ば、ECC回路262でエラー位置、エラー値のペアで
算出すると、それをすぐに検証回路261に出力し、次
のエラー位置、エラー値を算出し始める。そして検証回
路261では、ECC回路262のエラー位置、エラー
値算出と並行して、ECCの誤訂正検証演算であるCR
C再剰余の更新演算を進める。よって、見かけ上、EC
C回路262によるエラー位置、エラー値算出と、検証
回路261によるECCの誤訂正検証演算が同時に実行
できる。
As described above, according to the present embodiment, when the ECC circuit 262 calculates a pair of an error position and an error value, the value is immediately output to the verification circuit 261 and the next error position and error value are calculated. Start to calculate. The verification circuit 261 calculates the error position and error value of the ECC circuit 262 in parallel with the error correction verification operation of the ECC.
The update operation of C-remainder proceeds. So, apparently, EC
The calculation of the error position and the error value by the C circuit 262 and the ECC erroneous correction verification operation by the verification circuit 261 can be executed simultaneously.

【0116】次に、本実施の形態におけるCRC回路2
60、ECC回路262、検証回路261のそれぞれの
構成、動作について詳細に説明する。
Next, the CRC circuit 2 in the present embodiment
60, the ECC circuit 262, and the verification circuit 261 will be described in detail.

【0117】先ず、図7を参照して、CRC回路260
の構成、動作について詳細に説明する。
First, referring to FIG. 7, CRC circuit 260
Will be described in detail.

【0118】図7において、CRC回路260は、4つ
の8ビット遅延レジスタ(401,402,403,4
04)と、エラー検出ブロック410と、8ビット演算
フィードバック回路405と、これらを制御するための
コントロールロジック(図示せず)とを有して構成され
る。
In FIG. 7, the CRC circuit 260 has four 8-bit delay registers (401, 402, 403, 4).
04), an error detection block 410, an 8-bit operation feedback circuit 405, and control logic (not shown) for controlling these.

【0119】以下に、記憶媒体へのデータの書き込み動
作と、読み出し動作時とに分けて、CRC回路260の
動作について説明する。
Hereinafter, the operation of the CRC circuit 260 will be described separately for the operation of writing data to the storage medium and the operation of reading data.

【0120】先ず、同じく図7を参照して、記憶媒体へ
のデータの書き込み動作時におけるCRC回路260の
動作について説明する。
First, the operation of the CRC circuit 260 during the operation of writing data to the storage medium will be described with reference to FIG.

【0121】はじめに、4つの8ビット遅延レジスタ
(401,402,403,404)が、コントロール
ロジックにより全てゼロにリセットされる。そして、ユ
ーザデータがデータバス258から8ビット単位で入力
されると、8ビット演算フィードバック回路405は、
データバス256を介して8ビット演算フィードバック
回路405に入力される8ビット遅延レジスタ(40
1,402,403,404)の値と、8ビット単位の
ユーザデータとからフィードバック値を算出して、デー
タバス400を介して8ビット遅延レジスタ(401,
402,403,404)値を更新する。この動作を、
データバス258を介して入力される8ビットユーザデ
ータそれぞれについて、クロックに同期して随時行う。
First, the four 8-bit delay registers (401, 402, 403, 404) are all reset to zero by the control logic. When the user data is input from the data bus 258 in 8-bit units, the 8-bit operation feedback circuit 405
An 8-bit delay register (40) input to the 8-bit operation feedback circuit 405 via the data bus 256
, 402, 403, 404) and the user data in units of 8 bits, and calculates a feedback value via the data bus 400.
402, 403, 404) update the value. This behavior
For each of the 8-bit user data input via the data bus 258, this is performed as needed in synchronization with the clock.

【0122】ここで、8ビット演算フィードバック回路
405は、データバス256を介して特定される剰余初
期値と、CRC生成多項式とを使用して8次分の剰余演
算((式2)参照)を行ったときの32ビットの結果を
1クロックで算出するように構成したランダムロジック
である。
Here, the 8-bit operation feedback circuit 405 uses the remainder initial value specified via the data bus 256 and the CRC generation polynomial to perform the 8th-order remainder operation (see (Expression 2)). This is a random logic configured to calculate a 32-bit result when performed in one clock.

【0123】このようにして全てのユーザデータをCR
C回路260がデータバス258を介して受け取り上記
の演算を繰り返すと、最終的に、8ビット遅延レジスタ
(401,402,403,404)に4バイトのCR
C剰余値(この場合、生成動作なのでCRCパリティバ
イト)が算出できる。そして、CRC回路260はデー
タバス257を介して、算出した4バイトCRCパリテ
ィバイトを1バイトずつ出力する。この時、8ビット演
算フィードバック回路は、順次異なる動作を行う。すな
わち、次クロックで8ビット遅延レジスタ402の値が
8ビット遅延レジスタ401に入力されるように、ま
た、8ビット遅延レジスタ403の値が8ビット遅延レ
ジスタ402に入力されるように、また、8ビット遅延
レジスタ404の値が8ビット遅延レジスタ403に入
力されるように、動作する。この動作を4クロックサイ
クル繰り返しながらデータバス257を介して8ビット
遅延レジスタ401の値を出力することで、前述の4バ
イトCRCパリティバイトが1バイト単位で出力でき
る。
In this manner, all the user data are stored in the CR
When the C circuit 260 receives the data via the data bus 258 and repeats the above operation, finally, a 4-byte CR is stored in an 8-bit delay register (401, 402, 403, 404).
The C remainder value (in this case, a CRC parity byte because of the generation operation) can be calculated. Then, the CRC circuit 260 outputs the calculated 4-byte CRC parity byte via the data bus 257 one by one. At this time, the 8-bit operation feedback circuit sequentially performs different operations. That is, the value of the 8-bit delay register 402 is input to the 8-bit delay register 401 at the next clock, the value of the 8-bit delay register 403 is input to the 8-bit delay register 402, and The operation is performed so that the value of the bit delay register 404 is input to the 8-bit delay register 403. By outputting the value of the 8-bit delay register 401 via the data bus 257 while repeating this operation for 4 clock cycles, the aforementioned 4-byte CRC parity byte can be output in 1-byte units.

【0124】次に、同じく図7を参照して、記憶媒体か
らのデータの読み出し動作時における、CRC回路26
0の動作について説明する。
Next, referring to FIG. 7, the CRC circuit 26 operates at the time of reading data from the storage medium.
The operation of 0 will be described.

【0125】先ず、4つの8ビット遅延レジスタ(40
1,402,403,404)が、コントロールロジッ
クにより全てゼロにリセットされる。そして、データバ
ス258より{ユーザデータ+CRCパリティ部}が8
ビット単位で入力されると、データバス256を介して
8ビット演算フィードバック回路に入力される8ビット
遅延レジスタ(401,402,403,404)の値
と、8ビット単位のユーザデータからフィードバック値
を、8ビット演算フィードバック回路405は算出し
て、データバス400を介して8ビット遅延レジスタ
(401,402,403,404)値を更新する。こ
の動作をクロックに同期して、データバス258を介し
て入力される、8ビット単位の{ユーザデータ+CRC
パリティ部}のそれぞれについて、随時行う(前述の媒
体への書き込み動作時と同様の処理)。
First, four 8-bit delay registers (40
1, 402, 403, 404) are all reset to zero by the control logic. Then, from the data bus 258, {user data + CRC parity section} is set to 8
When input in bit units, the feedback value is calculated from the values of the 8-bit delay registers (401, 402, 403, 404) input to the 8-bit operation feedback circuit via the data bus 256 and the user data in 8-bit units. , 8-bit operation feedback circuit 405 calculates and updates the values of the 8-bit delay registers (401, 402, 403, 404) via the data bus 400. Synchronizing this operation with the clock, 8-bit unit {user data + CRC input through data bus 258
This is performed as needed for each of the parity units (the same processing as in the above-described writing operation to the medium).

【0126】このようにして、全てのユーザデータがデ
ータバス258を介して受け取られ上記の演算が繰り返
えされると、最終的に、8ビット遅延レジスタ(40
1,402,403,404)において4バイトのCR
C剰余値が算出される。そして、CRC回路260は、
算出された剰余値に非ゼロの値があるか否かをエラー検
出410において検出する。1つでも非ゼロの値があれ
ば、読み込んだ{ユーザデータ+CRCパリティ部}に
はエラーが発生していたと判断して、算出された剰余値
を、データバス256を介して検証回路261に1クロ
ックで出力する。
In this way, when all the user data is received via data bus 258 and the above operation is repeated, finally, an 8-bit delay register (40
1,402,403,404) 4 byte CR
A C remainder value is calculated. Then, the CRC circuit 260
The error detection 410 detects whether the calculated remainder value has a non-zero value. If there is at least one non-zero value, it is determined that an error has occurred in the read {user data + CRC parity part}, and the calculated remainder value is sent to the verification circuit 261 via the data bus 256. Output with clock.

【0127】次に、図6を参照して、本実施の形態にお
けるECC回路の構成および動作の詳細について説明す
る。ECC回路262の動作の詳細については、記録媒
体へのデータの書き込み動作、および読み出し動作時に
分けて説明する。
Next, the configuration and operation of the ECC circuit according to the present embodiment will be described in detail with reference to FIG. The details of the operation of the ECC circuit 262 will be described separately for the operation of writing data to a recording medium and the operation of reading data.

【0128】図6において、ECC回路262は、EC
Cパリティバイトを生成する演算およびシンドロームを
算出する演算を行うための符号生成/シンドローム算出
回路301と、発生したエラーのエラー位置およびエラ
ー値を求めるためのエラー位置、値算出器302と、バ
ッファインタフェース回路305と、訂正不能判定回路
307と、これらを制御するためのコントロールロジッ
ク(図示せず)とを有して構成される。
In FIG. 6, the ECC circuit 262
A code generation / syndrome calculation circuit 301 for performing a calculation for generating a C parity byte and a calculation for calculating a syndrome; an error position and a value calculator 302 for obtaining an error position and an error value of an error that has occurred; The circuit includes a circuit 305, an uncorrectable determination circuit 307, and control logic (not shown) for controlling these circuits.

【0129】先ず、同じく図6を参照して、記憶媒体へ
のデータの書き込み動作時におけるECC回路262の
動作について説明する。
First, the operation of the ECC circuit 262 during the operation of writing data to the storage medium will be described with reference to FIG.

【0130】{ユーザデータ+CRCパリティ部}がデ
ータバス253を介して、8ビット単位で入力される
と、符号生成/シンドローム算出回路301は、符号生
成回路として機能する。すなわち、符号生成/シンドロ
ーム算出回路301は、入力される{ユーザデータ+C
RCパリティ部}に対してECC生成多項式による剰余
演算を行う。さらに、この剰余演算と並行して、データ
バス255を介して、入力された{ユーザデータ+CR
Cパリティ部}を8ビット単位で出力する。その結果、
符号生成/シンドローム算出回路の内部レジスタにはE
CC生成多項式の次数と同一のバイト数分の剰余が格納
される。これが{ユーザデータ+CRCパリティ部}に
対して算出されたECCパリティバイト(ECCパリテ
ィ部)となる。そして、算出されたECCパリティバイ
トを、{ユーザデータ+CRCパリティ部}に続いて、
データバス255を介して8ビット単位で出力する。
When {user data + CRC parity section} is input in 8-bit units via data bus 253, code generation / syndrome calculation circuit 301 functions as a code generation circuit. That is, the code generation / syndrome calculation circuit 301 receives the input {user data + C
Residue operation by ECC generation polynomial is performed on RC parity section}. Further, in parallel with the remainder operation, the input {user data + CR
C parity part} is output in 8-bit units. as a result,
E is stored in the internal register of the code generation / syndrome calculation circuit.
The remainder for the same number of bytes as the degree of the CC generator polynomial is stored. This is the ECC parity byte (ECC parity part) calculated for {user data + CRC parity part}. Then, the calculated ECC parity byte is added to {user data + CRC parity part},
The data is output in 8-bit units via the data bus 255.

【0131】このようにして、入力された{ユーザデー
タ+CRCパリティ部}から、それに対応するECCパ
リティ部を演算し、データバス255を介して{ユーザ
データ+CRCパリティ部+ECCパリティ部}を出力
することができる。
In this way, from the input {user data + CRC parity section}, the corresponding ECC parity section is calculated and {user data + CRC parity section + ECC parity section} is output via data bus 255. Can be.

【0132】次に、同じく図6を参照して、記憶媒体か
らのデータの読み出し動作時におけるECC回路262
の動作について説明する。
Next, referring to FIG. 6, ECC circuit 262 at the time of reading data from the storage medium is performed.
Will be described.

【0133】データバス253を介して、{ユーザデー
タ+CRCパリティ部+ECCパリティ部}が8ビット
単位で入力されると、符号生成/シンドローム算出回路
301は、シンドローム算出回路として機能する。すな
わち、符号生成/シンドローム算出回路301は、入力
される{ユーザデータ+CRCパリティ部+ECCパリ
ティ部}に対してシンドローム算出演算を行い、算出さ
れたシンドロームを、データバス303を介してエラー
位置、値算出器302に出力する。エラー位置、値算出
器302ではユークリッドアルゴリズムによりエラー位
置多項式、エラー評価多項式を、受信したシンドローム
に基づいて導出する。さらに、エラー位置多項式、エラ
ー評価多項式を解くことによりエラー位置、およびそれ
に対応するエラー値を算出する。複数エラーが発生して
おり、かつ、そのエラー個数が訂正可能個数以内におさ
まっていれば、エラー位置およびエラー値のペアが、そ
のエラー個数分だけ算出されるはずである。
When {user data + CRC parity section + ECC parity section} is input in 8-bit units via the data bus 253, the code generation / syndrome calculation circuit 301 functions as a syndrome calculation circuit. That is, the code generation / syndrome calculation circuit 301 performs a syndrome calculation operation on the input {user data + CRC parity unit + ECC parity unit}, and calculates the calculated syndrome via the data bus 303 as an error position and value calculation. Output to the container 302. The error position / value calculator 302 derives an error position polynomial and an error evaluation polynomial based on the received syndrome using the Euclidean algorithm. Further, an error position and an error value corresponding thereto are calculated by solving an error position polynomial and an error evaluation polynomial. If a plurality of errors have occurred and the number of errors is within the number that can be corrected, pairs of error positions and error values should be calculated for the number of errors.

【0134】ここで、エラー位置多項式を解く手法とし
ては、例えば、チェンサーチアルゴリズムを用いること
ができるが、本発明は、エラー位置多項式を解く手法に
は依存せず、特に、エラー位置およびエラー値が算出さ
れる順序がどのようなものであってもよい。
Here, as a method of solving the error position polynomial, for example, a Chien search algorithm can be used. However, the present invention does not depend on the method of solving the error position polynomial. May be calculated in any order.

【0135】上記のようにエラー位置、およびそれに対
応するエラー値のペアが算出されるごとに、エラー位
置、値算出器302は、エラー位置がユーザデータ部も
しくはCRCパリティ部であれば、データバス251を
介してエラー位置を、データバス252を介してエラー
値をバッファインタフェース回路305に出力するとと
もに、検証回路261(図5参照)に対しても出力す
る。但し、このとき制御線253の値を調査して、検証
回路261がビジー状態を示している場合、制御線25
3がアイドル状態を示すまで、出力をせず待機する。但
し、検証回路261(図5参照)は、それぞれのエラー
位置およびエラー値に対する演算を高速に実行するた
め、上記のようなウェイト動作によるオーバヘッドは小
さい。
Each time an error position and a corresponding error value pair are calculated as described above, the error position / value calculator 302 checks the data bus if the error position is a user data portion or a CRC parity portion. The error position is output to the buffer interface circuit 305 via the data bus 252 and the error position via the data bus 252, and is also output to the verification circuit 261 (see FIG. 5). However, at this time, the value of the control line 253 is checked, and if the verification circuit 261 indicates a busy state,
Until 3 indicates an idle state, it waits without outputting. However, since the verification circuit 261 (see FIG. 5) executes the calculation for each error position and error value at high speed, the overhead due to the above-described wait operation is small.

【0136】エラー位置、値算出器302は、バッファ
インタフェース回路305および検証回路261に対す
る、エラー位置およびエラー値の出力を完了すると、引
き続き、次のエラー位置、エラー値の算出を進める。以
下同様にして、全てのエラー位置、エラー値が算出され
るまで処理を繰り返す。
When the output of the error position and the error value to the buffer interface circuit 305 and the verification circuit 261 is completed, the error position and the value calculator 302 continues to calculate the next error position and the error value. The same process is repeated until all error positions and error values are calculated.

【0137】バッファインタフェース回路305は、エ
ラー位置、エラー値を受信すると、データバス834を
介して、バッファ制御部818(図4参照)を利用し
て、データバッファ816(図4参照)内の誤りバイト
データを正常なデータに訂正する。具体的には、データ
バッファメモリ816内に格納されている誤りバイトデ
ータをエラー位置から特定しバッファインタフェース回
路305に読み込み、誤りバイトデータと、エラー値と
の排他的論理和をとったバイトデータを、また、データ
バッファメモリ816内の同位置(エラー位置から特定
される)に再格納する。
When receiving the error position and error value, the buffer interface circuit 305 utilizes the buffer control unit 818 (see FIG. 4) via the data bus 834 to store the error in the data buffer 816 (see FIG. 4). Correct the byte data to normal data. Specifically, the error byte data stored in the data buffer memory 816 is identified from the error position, read into the buffer interface circuit 305, and the byte data obtained by taking the exclusive OR of the error byte data and the error value is obtained. Also, the data is re-stored at the same position (specified from the error position) in the data buffer memory 816.

【0138】一方、エラー位置、値算出器302におい
て、期待される個数のエラー位置、エラー値が特定でき
ない場合、エラー位置、値算出器302は、訂正可能範
囲を超えたエラーが発生したと判断して、制御線310
を介して訂正不能エラーが発生したことを、訂正不能判
定回路307に報告する。また、検証回路261(図5
参照)においてECCの誤訂正が検出されると制御線2
50を介して、誤訂正が発生したことが訂正不能判定回
路307に報告される。
On the other hand, when the expected number of error positions and error values cannot be specified in the error position / value calculator 302, the error position / value calculator 302 determines that an error exceeding the correctable range has occurred. And control line 310
The occurrence of an uncorrectable error is reported to the uncorrectable determination circuit 307 via the. The verification circuit 261 (FIG. 5)
If an error correction of ECC is detected in
The fact that erroneous correction has occurred is reported to the uncorrectable determination circuit 307 via 50.

【0139】訂正不能判定回路307では、ECC回路
262による{ユーザデータ+CRCパリティ部+EC
Cパリティ部}に対する訂正演算が終了すると、エラー
位置、値算出器302から訂正不能の報告がなかったか
どうか、また、検証回路261からの誤訂正発生の報告
がなかったかどうかを調査する。どちらか1つでもあれ
ば、訂正不能判定回路307は、{ユーザデータ+CR
Cパリティ部+ECCパリティ部}はエラーが発生し、
かつ、エラーは訂正不能だったと判断し、制御線254
を介して上位のドライブ制御部261に訂正不能エラー
発生を報告する。
In the uncorrectable determination circuit 307, the ECC circuit 262 outputs {user data + CRC parity part + EC
When the correction operation for the C parity unit} is completed, it is checked whether an error position has been reported from the value calculator 302 as to whether correction has not been possible, and whether there has been a report from the verification circuit 261 that an erroneous correction has occurred. If there is any one of them, the uncorrectable determination circuit 307 calculates {user data + CR
An error occurs in the C parity section + ECC parity section},
Further, it is determined that the error was uncorrectable, and the control line 254
The occurrence of an uncorrectable error is reported to the upper-level drive control unit 261 via the.

【0140】次に、図1を参照して、本実施の形態にお
ける検証回路の構成および動作の詳細について説明す
る。
Next, the configuration and operation of the verification circuit according to the present embodiment will be described in detail with reference to FIG.

【0141】図1において、検証回路261は、CRC
剰余ラッチ330と、剰余格納レジスタ334と、比較
器331と、エラー値剰余エンコーダ341と、CRC
ワーキングレジスタ342と、[16]サイクル剰余デコー
ダ343と、[1]サイクル剰余デコーダ344と、剰余
デコーダセレクタ348と、セレクタ335、セレクタ
340、セレクタ345と、コントロールロジック(図
示せず)とを有して構成される。
In FIG. 1, the verification circuit 261 has a CRC
A remainder latch 330, a remainder storage register 334, a comparator 331, an error value remainder encoder 341;
It has a working register 342, a [16] cycle remainder decoder 343, a [1] cycle remainder decoder 344, a remainder decoder selector 348, a selector 335, a selector 340, a selector 345, and control logic (not shown). It is composed.

【0142】例えば、CRCC生成多項式を、x^32+x^2
6+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^
2+x+1と設定した場合、[16]サイクル剰余デコーダ34
3は、以下の演算を実行するハードウェアにて簡単に実
現できる。
For example, the CRCC generator polynomial is expressed as x ^ 32 + x ^ 2
6 + x ^ 23 + x ^ 22 + x ^ 16 + x ^ 12 + x ^ 11 + x ^ 10 + x ^ 8 + x ^ 7 + x ^ 5 + x ^ 4 + x ^
When 2 + x + 1 is set, [16] cycle remainder decoder 34
3 can be easily realized by hardware that executes the following calculation.

【0143】ここで,[16]サイクル剰余デコーダ343
への32ビット入力データバスの値をd1[31:0]とし、ま
た、[16]サイクル剰余デコーダ343の32ビット出力
データバスの値をout1[31:0]としている。また、下式の
中で「∪」はビットの排他的論理和を表し、ハードウェ
アとしてはXOR回路を使用する組み合わせ回路により簡
単に演算可能である。
Here, [16] cycle remainder decoder 343
And the value of the 32-bit output data bus of the [16] cycle remainder decoder 343 is out1 [31: 0]. In the following expression, “∪” represents an exclusive OR of bits, and can be easily calculated by a combination circuit using an XOR circuit as hardware.

【0144】 out1[31] = d1[31]∪d1[30]∪d1[29]∪d1[28]∪d1[26] ∪d1[22]∪d1[21]∪d1[20]∪d1[19]∪d1[17] ∪d1[16]∪d1[14]∪d1[13]∪d1[ 9]∪d1[ 7] ∪d1[ 6]∪d1[ 4]∪d1[ 2]∪d1[ 1]∪d1[ 0]∪1 out1[30] = d1[30]∪d1[29]∪d1[28]∪d1[27]∪d1[25] ∪d1[21]∪d1[20]∪d1[19]∪d1[18]∪d1[16] ∪d1[15]∪d1[13]∪d1[12]∪d1[ 8]∪d1[ 6] ∪d1[ 5]∪d1[ 3]∪d1[ 1]∪d1[ 0]∪1 out1[29] = d1[29]∪d1[28]∪d1[27]∪d1[26]∪d1[24] ∪d1[20]∪d1[19]∪d1[18]∪d1[17]∪d1[15] ∪d1[14]∪d1[12]∪d1[11]∪d1[ 7]∪d1[ 5] ∪d1[ 4]∪d1[ 2]∪d1[ 0]∪1 out1[28] = d1[28]∪d1[27]∪d1[26]∪d1[25]∪d1[23] ∪d1[19]∪d1[18]∪d1[17]∪d1[16]∪d1[14] ∪d1[13]∪d1[11]∪d1[10]∪d1[ 6]∪d1[ 4] ∪d1[ 3]∪d1[ 1]∪1 out1[27] = d1[31]∪d1[27]∪d1[26]∪d1[25]∪d1[24] ∪d1[22]∪d1[18]∪d1[17]∪d1[16]∪d1[15] ∪d1[13]∪d1[12]∪d1[10]∪d1[ 9]∪d1[ 5] ∪d1[ 3]∪d1[ 2]∪d1[ 0]∪1 out1[26] = d1[30]∪d1[26]∪d1[25]∪d1[24]∪d1[23] ∪d1[21]∪d1[17]∪d1[16]∪d1[15]∪d1[14] ∪d1[12]∪d1[11]∪d1[ 9]∪d1[ 8]∪d1[ 4] ∪d1[ 2]∪d1[ 1]∪1 out1[25] = d1[30]∪d1[28]∪d1[26]∪d1[25]∪d1[24] ∪d1[23]∪d1[21]∪d1[19]∪d1[17]∪d1[15] ∪d1[11]∪d1[10]∪d1[ 9]∪d1[ 8]∪d1[ 6] ∪d1[ 4]∪d1[ 3]∪d1[ 2]∪1 out1[24] = d1[31]∪d1[29]∪d1[27]∪d1[25]∪d1[24] ∪d1[23]∪d1[22]∪d1[20]∪d1[18]∪d1[16] ∪d1[14]∪d1[10]∪d1[ 9]∪d1[ 8]∪d1[ 7] ∪d1[ 5]∪d1[ 3]∪d1[ 2]∪d1[ 1]∪1 out1[23] = d1[31]∪d1[30]∪d1[28]∪d1[26]∪d1[24] ∪d1[23]∪d1[22]∪d1[21]∪d1[19]∪d1[17] ∪d1[15]∪d1[13]∪d1[ 9]∪d1[ 8]∪d1[ 7] ∪d1[ 6]∪d1[ 4]∪d1[ 2]∪d1[ 1]∪d1[ 0]∪1 out1[22] = d1[28]∪d1[27]∪d1[26]∪d1[25]∪d1[23] ∪d1[19]∪d1[18]∪d1[17]∪d1[13]∪d1[12] ∪d1[ 9]∪d1[ 8]∪d1[ 5]∪d1[ 4]∪d1[ 3] ∪d1[ 2]∪1 out1[21] = d1[30]∪d1[29]∪d1[28]∪d1[27]∪d1[25] ∪d1[24]∪d1[21]∪d1[20]∪d1[19]∪d1[18] ∪d1[14]∪d1[13]∪d1[12]∪d1[11]∪d1[ 9] ∪d1[ 8]∪d1[ 6]∪d1[ 3]∪d1[ 0]∪1 out1[20] = d1[29]∪d1[28]∪d1[27]∪d1[26]∪d1[24] ∪d1[23]∪d1[20]∪d1[19]∪d1[18]∪d1[17] ∪d1[13]∪d1[12]∪d1[11]∪d1[10]∪d1[ 8] ∪d1[ 7]∪d1[ 5]∪d1[ 2]∪1 out1[19] = d1[31]∪d1[28]∪d1[27]∪d1[26]∪d1[25] ∪d1[23]∪d1[22]∪d1[19]∪d1[18]∪d1[17] ∪d1[16]∪d1[12]∪d1[11]∪d1[10]∪d1[ 9] ∪d1[ 7]∪d1[ 6]∪d1[ 4]∪d1[ 1]∪1 out1[18] = d1[30]∪d1[27]∪d1[26]∪d1[25]∪d1[24] ∪d1[22]∪d1[21]∪d1[18]∪d1[17]∪d1[16] ∪d1[15]∪d1[11]∪d1[10]∪d1[ 9]∪d1[ 8] ∪d1[ 6]∪d1[ 5]∪d1[ 3]∪d1[ 0]∪1 out1[17] = d1[29]∪d1[26]∪d1[25]∪d1[24]∪d1[23] ∪d1[21]∪d1[20]∪d1[17]∪d1[16]∪d1[15] ∪d1[14]∪d1[10]∪d1[ 9]∪d1[ 8]∪d1[ 7] ∪d1[ 5]∪d1[ 4]∪d1[ 2]∪1 out1[16] = d1[31]∪d1[28]∪d1[25]∪d1[24]∪d1[23] ∪d1[22]∪d1[20]∪d1[19]∪d1[16]∪d1[15] ∪d1[14]∪d1[13]∪d1[ 9]∪d1[ 8]∪d1[ 7] ∪d1[ 6]∪d1[ 4]∪d1[ 3]∪d1[ 1]∪1 out1[15] = d1[29]∪d1[28]∪d1[27]∪d1[26]∪d1[24] ∪d1[23]∪d1[20]∪d1[18]∪d1[17]∪d1[16] ∪d1[15]∪d1[12]∪d1[ 9]∪d1[ 8]∪d1[ 5] ∪d1[ 4]∪d1[ 3]∪d1[ 1]∪1 out1[14] = d1[28]∪d1[27]∪d1[26]∪d1[25]∪d1[23] ∪d1[22]∪d1[19]∪d1[17]∪d1[16]∪d1[15] ∪d1[14]∪d1[11]∪d1[ 8]∪d1[ 7]∪d1[ 4] ∪d1[ 3]∪d1[ 2]∪d1[ 0]∪1 out1[13] = d1[27]∪d1[26]∪d1[25]∪d1[24]∪d1[22] ∪d1[21]∪d1[18]∪d1[16]∪d1[15]∪d1[14] ∪d1[13]∪d1[10]∪d1[ 7]∪d1[ 6]∪d1[ 3] ∪d1[ 2]∪d1[ 1]∪1 out1[12] = d1[31]∪d1[26]∪d1[25]∪d1[24]∪d1[23] ∪d1[21]∪d1[20]∪d1[17]∪d1[15]∪d1[14] ∪d1[13]∪d1[12]∪d1[ 9]∪d1[ 6]∪d1[ 5] ∪d1[ 2]∪d1[ 1]∪d1[ 0]∪1 out1[11] = d1[29]∪d1[28]∪d1[26]∪d1[25]∪d1[24] ∪d1[23]∪d1[21]∪d1[17]∪d1[12]∪d1[11] ∪d1[ 9]∪d1[ 8]∪d1[ 7]∪d1[ 6]∪d1[ 5] ∪d1[ 2]∪1 out1[10] = d1[31]∪d1[30]∪d1[29]∪d1[27]∪d1[26] ∪d1[25]∪d1[24]∪d1[23]∪d1[21]∪d1[19] ∪d1[17]∪d1[14]∪d1[13]∪d1[11]∪d1[10] ∪d1[ 9]∪d1[ 8]∪d1[ 5]∪d1[ 2]∪d1[ 0]∪1 out1[ 9] = d1[31]∪d1[25]∪d1[24]∪d1[23]∪d1[21] ∪d1[19]∪d1[18]∪d1[17]∪d1[14]∪d1[12] ∪d1[10]∪d1[ 8]∪d1[ 6]∪d1[ 2]∪d1[ 0]∪1 out1[ 8] = d1[30]∪d1[24]∪d1[23]∪d1[22]∪d1[20] ∪d1[18]∪d1[17]∪d1[16]∪d1[13]∪d1[11] ∪d1[ 9]∪d1[ 7]∪d1[ 5]∪d1[ 1]∪1 out1[ 7] = d1[30]∪d1[28]∪d1[26]∪d1[23]∪d1[20] ∪d1[15]∪d1[14]∪d1[13]∪d1[12]∪d1[10] ∪d1[ 9]∪d1[ 8]∪d1[ 7]∪d1[ 2]∪d1[ 1]∪1 out1[ 6] = d1[31]∪d1[30]∪d1[28]∪d1[27]∪d1[26] ∪d1[25]∪d1[21]∪d1[20]∪d1[17]∪d1[16] ∪d1[12]∪d1[11]∪d1[ 8]∪d1[ 4]∪d1[ 2]∪1 out1[ 5] = d1[31]∪d1[30]∪d1[29]∪d1[27]∪d1[26] ∪d1[25]∪d1[24]∪d1[20]∪d1[19]∪d1[16] ∪d1[15]∪d1[11]∪d1[10]∪d1[ 7]∪d1[ 3] ∪d1[ 1]∪1 out1[ 4] = d1[31]∪d1[25]∪d1[24]∪d1[23]∪d1[22] ∪d1[21]∪d1[20]∪d1[18]∪d1[17]∪d1[16] ∪d1[15]∪d1[13]∪d1[10]∪d1[ 7]∪d1[ 4] ∪d1[ 1]∪1 out1[ 3] = d1[29]∪d1[28]∪d1[26]∪d1[24]∪d1[23] ∪d1[15]∪d1[13]∪d1[12]∪d1[ 7]∪d1[ 4] ∪d1[ 3]∪d1[ 2]∪d1[ 1]∪1 out1[ 2] = d1[31]∪d1[28]∪d1[27]∪d1[25]∪d1[23] ∪d1[22]∪d1[14]∪d1[12]∪d1[11]∪d1[ 6] ∪d1[ 3]∪d1[ 2]∪d1[ 1]∪d1[ 0]∪1 out1[ 1] = d1[29]∪d1[28]∪d1[27]∪d1[24]∪d1[20] ∪d1[19]∪d1[17]∪d1[16]∪d1[14]∪d1[11] ∪d1[10]∪d1[ 9]∪d1[ 7]∪d1[ 6]∪d1[ 5] ∪d1[ 4]∪1 out1[ 0] = d1[31]∪d1[30]∪d1[29]∪d1[27]∪d1[23] ∪d1[22]∪d1[21]∪d1[20]∪d1[18]∪d1[17] ∪d1[15]∪d1[14]∪d1[10]∪d1[ 8]∪d1[ 7] ∪d1[ 5]∪d1[ 3]∪d1[ 2]∪d1[ 1]∪d1[ 0]∪1 また、同様に、[1]サイクル剰余デコーダ344は、以
下の以下の演算を実行するハードウェアにて簡単に実現
できる。ここで、[1]サイクル剰余デコーダ344への
32ビット入力データバスの値をd2[31:0]とし、また、
[1]サイクル剰余デコーダ344の32ビット出力デー
タバスの値をout2[31:0]としている。また,以下の式に
おける「∪」はビットの排他的論理和を表し、ハードウ
ェアとしてはXOR回路を使用する組み合わせ回路により
簡単に演算可能である。
Out1 [31] = d1 [31] ∪d1 [30] ∪d1 [29] ∪d1 [28] ∪d1 [26] ∪d1 [22] ∪d1 [21] ∪d1 [20] ∪d1 [ 19] ∪d1 [17] ∪d1 [16] ∪d1 [14] ∪d1 [13] ∪d1 [9] ∪d1 [7] ∪d1 [6] ∪d1 [4] ∪d1 [2] ∪d1 [ 1] ∪d1 [0] ∪1 out1 [30] = d1 [30] ∪d1 [29] ∪d1 [28] ∪d1 [27] ∪d1 [25] ∪d1 [21] ∪d1 [20] ∪d1 [19] ∪d1 [18] ∪d1 [16] ∪d1 [15] ∪d1 [13] ∪d1 [12] ∪d1 [8] ∪d1 [6] ∪d1 [5] ∪d1 [3] ∪d1 [1] ∪d1 [0] ∪1 out1 [29] = d1 [29] ∪d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [24] ∪d1 [20] ∪d1 [19] ∪ d1 [18] ∪d1 [17] ∪d1 [15] ∪d1 [14] ∪d1 [12] ∪d1 [11] ∪d1 [7] ∪d1 [5] ∪d1 [4] ∪d1 [2] ∪ d1 [0] ∪1 out1 [28] = d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [23] ∪d1 [19] ∪d1 [18] ∪d1 [17] ∪d1 [16] ∪d1 [14] ∪d1 [13] ∪d1 [11] ∪d1 [10] ∪d1 [6] ∪d1 [4] ∪d1 [3] ∪d1 [1] ∪1 out1 [27 ] = d1 [31] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [22] ∪d1 [18] ∪d1 [17] ∪d1 [16] ∪d1 [15 ] ∪d1 [13] ∪d1 [12] ∪d1 [10] ∪d1 [9] ∪d1 [5] ∪d1 [3] ∪d1 [2] ∪d1 [0] ∪1 out1 [26] = d1 [ 30] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [17] d1 [16] ∪d1 [15] ∪d1 [14] ∪d1 [12] ∪d1 [11] ∪d1 [9] ∪d1 [8] ∪d1 [4] ∪d1 [2] ∪d1 [1] ∪ 1 out1 [25] = d1 [30] ∪d1 [28] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [19] ∪d1 [17] ∪d1 [15] ∪d1 [11] ∪d1 [10] ∪d1 [9] 9d1 [8] ∪d1 [6] ∪d1 [4] ∪d1 [3] ∪d1 [2] ∪1 out1 [24 ] = d1 [31] ∪d1 [29] ∪d1 [27] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [22] ∪d1 [20] ∪d1 [18] ∪d1 [16 ] ∪d1 [14] ∪d1 [10] ∪d1 [9] 9d1 [8] ∪d1 [7] ∪d1 [5] ∪d1 [3] ∪d1 [2] ∪d1 [1] ∪1 out1 [ 23] = d1 [31] ∪d1 [30] ∪d1 [28] ∪d1 [26] ∪d1 [24] ∪d1 [23] ∪d1 [22] ∪d1 [21] ∪d1 [19] ∪d1 [ 17] ∪d1 [15] ∪d1 [13] ∪d1 [9] 9d1 [8] ∪d1 [7] ∪d1 [6] ∪d1 [4] ∪d1 [2] ∪d1 [1] ∪d1 [ 0] ∪1 out1 [22] = d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [23] ∪d1 [19] ∪d1 [18] ∪d1 [17] ∪d1 [13] ∪d1 [12] ∪d1 [9] ∪d1 [8] ∪d1 [5] ∪d1 [4] ∪d1 [3] ∪d1 [2] ∪1 out1 [21] = d1 [30] ∪ d1 [29] ∪d1 [28] ∪d1 [27] ∪d1 [25] ∪d1 [24] ∪d1 [21] ∪d1 [20] ∪d1 [19] ∪d1 [18] ∪d1 [14] ∪ d1 [13] ∪d1 [12] ∪d1 [11] ∪d1 [9] ∪d1 [8] ∪d1 [6] ∪d1 [3] ∪d1 [0] 1 out1 [20] = d1 [29] ∪d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [24] ∪d1 [23] ∪d1 [20] ∪d1 [19] ∪d1 [18] ∪d1 [17] ∪d1 [13] ∪d1 [12] ∪d1 [11] ∪d1 [10] ∪d1 [8] ∪d1 [7] ∪d1 [5] ∪d1 [2] ∪1 out1 [19 ] = d1 [31] ∪d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [23] ∪d1 [22] ∪d1 [19] ∪d1 [18] ∪d1 [17 ] ∪d1 [16] ∪d1 [12] ∪d1 [11] ∪d1 [10] ∪d1 [9] ∪d1 [7] ∪d1 [6] ∪d1 [4] ∪d1 [1] ∪1 out1 [ 18] = d1 [30] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [22] ∪d1 [21] ∪d1 [18] ∪d1 [17] ∪d1 [ 16] ∪d1 [15] ∪d1 [11] ∪d1 [10] ∪d1 [9] ∪d1 [8] ∪d1 [6] ∪d1 [5] ∪d1 [3] ∪d1 [0] ∪1 out1 [17] = d1 [29] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [20] ∪d1 [17] ∪d1 [16] ∪d1 [15] ∪d1 [14] ∪d1 [10] ∪d1 [9] ∪d1 [8] ∪d1 [7] ∪d1 [5] 1d1 [4] ∪d1 [2] ∪1 out1 [16] = d1 [31] ∪d1 [28] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [22] ∪d1 [20] ∪d1 [19] ∪d1 [16] ∪d1 [15] ∪ d1 [14] ∪d1 [13] ∪d1 [9] ∪d1 [8] ∪d1 [7] ∪d1 [6] ∪d1 [4] ∪d1 [3] ∪d1 [1] ∪1 out1 [15] = d1 [29] ∪d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [24] ∪d1 [23] ∪d1 [20] ∪d1 [1 8] ∪d1 [17] ∪d1 [16] ∪d1 [15] ∪d1 [12] ∪d1 [9] ∪d1 [8] ∪d1 [5] ∪d1 [4] ∪d1 [3] ∪d1 [ 1] ∪1 out1 [14] = d1 [28] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [23] ∪d1 [22] ∪d1 [19] ∪d1 [17] ∪d1 [16] ∪d1 [15] ∪d1 [14] ∪d1 [11] ∪d1 [8] ∪d1 [7] ∪d1 [4] ∪d1 [3] ∪d1 [2] ∪d1 [0] ∪1 out1 [13] = d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [22] ∪d1 [21] ∪d1 [18] ∪d1 [16] ∪d1 [15] ∪ d1 [14] ∪d1 [13] ∪d1 [10] ∪d1 [7] ∪d1 [6] ∪d1 [3] ∪d1 [2] ∪d1 [1] [1 out1 [12] = d1 [31] ∪d1 [26] ∪d1 [25] ∪d1 [24] 24d1 [23] 23d1 [21] [d1 [20] 1d1 [17] ∪d1 [15] ∪d1 [14] ∪d1 [13] ∪d1 [12] ∪d1 [9] ∪d1 [6] ∪d1 [5] ∪d1 [2] ∪d1 [1] ∪d1 [0] ∪1 out1 [11] = d1 [29] ∪d1 [28 ] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [17] ∪d1 [12] ∪d1 [11] ∪d1 [9] ∪d1 [8 ] ∪d1 [7] ∪d1 [6] ∪d1 [5] ∪d1 [2] ∪1 out1 [10] = d1 [31] ∪d1 [30] ∪d1 [29] ∪d1 [27] ∪d1 [ 26] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [19] ∪d1 [17] ∪d1 [14] ∪d1 [13] ∪d1 [11] ∪d1 [ 10] ∪d1 [9] ∪d1 [8] ∪d1 [5] ∪d1 [2] ∪d1 [0] ∪1 out1 [9] = d1 [31] ∪ d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [21] ∪d1 [19] ∪d1 [18] ∪d1 [17] ∪d1 [14] ∪d1 [12] ∪d1 [10] ∪ d1 [8] ∪d1 [6] ∪d1 [2] ∪d1 [0] ∪1 out1 [8] = d1 [30] ∪d1 [24] ∪d1 [23] ∪d1 [22] ∪d1 [20] ∪d1 [18] ∪d1 [17] ∪d1 [16] 16d1 [13] ∪d1 [11] ∪d1 [9] ∪d1 [7] ∪d1 [5] ∪d1 [1] ∪1 out1 [7 ] = d1 [30] ∪d1 [28] ∪d1 [26] ∪d1 [23] ∪d1 [20] ∪d1 [15] ∪d1 [14] ∪d1 [13] ∪d1 [12] ∪d1 [10 ] ∪d1 [9] ∪d1 [8] ∪d1 [7] ∪d1 [2] ∪d1 [1] ∪1 out1 [6] = d1 [31] ∪d1 [30] ∪d1 [28] ∪d1 [ 27] ∪d1 [26] ∪d1 [25] ∪d1 [21] ∪d1 [20] ∪d1 [17] ∪d1 [16] ∪d1 [12] ∪d1 [11] ∪d1 [8] ∪d1 [ 4] ∪d1 [2] ∪1 out1 [5] = d1 [31] ∪d1 [30] ∪d1 [29] ∪d1 [27] ∪d1 [26] ∪d1 [25] ∪d1 [24] ∪d1 [20] ∪d1 [19] ∪d1 [16] ∪d1 [15] ∪d1 [11] ∪d1 [10] ∪d1 [7] ∪d1 [3] ∪d1 [1] ∪1 out1 [4] = d1 [31] ∪d1 [25] ∪d1 [24] ∪d1 [23] ∪d1 [22] ∪d1 [21] ∪d1 [20] ∪d1 [18] ∪d1 [17] ∪d1 [16] ∪ d1 [15] ∪d1 [13] ∪d1 [10] ∪d1 [7] ∪d1 [4] ∪d1 [1] ∪1 out1 [3] = d1 [29] ∪d1 [28] ∪d1 [26] ∪d1 [24] ∪d1 [23] ∪d1 [15] ∪d1 [13] ∪d1 [12] ∪d1 [7] ∪d1 [4] ∪d1 [3] ∪d1 [2] ∪d1 [1] ∪1 out1 [2] = d1 [31] ∪d1 [28] ∪d1 [27] ∪d1 [25] ∪d1 [23] ∪d1 [22] ∪d1 [14 ] ∪d1 [12] ∪d1 [11] ∪d1 [6] ∪d1 [3] ∪d1 [2] ∪d1 [1] ∪d1 [0] ∪1 out1 [1] = d1 [29] ∪d1 [ 28] ∪d1 [27] ∪d1 [24] ∪d1 [20] ∪d1 [19] ∪d1 [17] ∪d1 [16] ∪d1 [14] ∪d1 [11] ∪d1 [10] ∪d1 [ 9] ∪d1 [7] ∪d1 [6] ∪d1 [5] ∪d1 [4] ∪1 out1 [0] = d1 [31] ∪d1 [30] ∪d1 [29] ∪d1 [27] ∪d1 [23] ∪d1 [22] ∪d1 [21] ∪d1 [20] ∪d1 [18] ∪d1 [17] ∪d1 [15] ∪d1 [14] ∪d1 [10] ∪d1 [8] ∪d1 [7] ∪d1 [5] ∪d1 [3] ∪d1 [2] ∪d1 [1] ∪d1 [0] ∪1 Similarly, the [1] cycle remainder decoder 344 performs the following operation It can be easily realized by executing hardware. Here, the value of the 32-bit input data bus to the [1] cycle remainder decoder 344 is d2 [31: 0].
[1] The value of the 32-bit output data bus of the cycle remainder decoder 344 is set to out2 [31: 0]. Further, “式” in the following expression represents an exclusive OR of bits, and can be easily calculated by a combination circuit using an XOR circuit as hardware.

【0145】 out2[31] = d2[29]∪d2[23]∪1 out2[30] = d2[31]∪d2[28]∪d2[22]∪1 out2[29] = d2[31]∪d2[30]∪d2[27]∪d2[21]∪1 out2[28] = d2[30]∪d2[29]∪d2[26]∪d2[20]∪1 out2[27] = d2[31]∪d2[29]∪d2[28]∪d2[25]∪d2[19]∪1 out2[26] = d2[30]∪d2[28]∪d2[27]∪d2[24]∪d2[18]∪1 out2[25] = d2[27]∪d2[26]∪d2[17]∪1 out2[24] = d2[31]∪d2[26]∪d2[25]∪d2[16]∪1 out2[23] = d2[30]∪d2[25]∪d2[24]∪d2[15]∪1 out2[22] = d2[24]∪d2[14]∪1 out2[21] = d2[29]∪d2[13]∪1 out2[20] = d2[28]∪d2[12]∪1 out2[19] = d2[31]∪d2[27]∪d2[11]∪1 out2[18] = d2[31]∪d2[30]∪d2[26]∪d2[10]∪1 out2[17] = d2[30]∪d2[29]∪d2[25]∪d2[ 9]∪1 out2[16] = d2[29]∪d2[28]∪d2[24]∪d2[ 8]∪1 out2[15] = d2[31]∪d2[29]∪d2[28]∪d2[27]∪d2[ 7]∪1 out2[14] = d2[31]∪d2[30]∪d2[28]∪d2[27]∪d2[26] ∪d2[ 6]∪1 out2[13] = d2[31]∪d2[30]∪d2[29]∪d2[27]∪d2[26] ∪d2[25]∪d2[ 5]∪1 out2[12] = d2[30]∪d2[29]∪d2[28]∪d2[26]∪d2[25] ∪d2[24]∪d2[ 4]∪1 out2[11] = d2[28]∪d2[27]∪d2[25]∪d2[24]∪d2[ 3]∪1 out2[10] = d2[29]∪d2[27]∪d2[26]∪d2[24]∪d2[ 2]∪1 out2[ 9] = d2[29]∪d2[28]∪d2[26]∪d2[25]∪d2[ 1]∪1 out2[ 8] = d2[28]∪d2[27]∪d2[25]∪d2[24]∪d2[ 0]∪1 out2[ 7] = d2[31]∪d2[29]∪d2[27]∪d2[26]∪d2[24]∪1 out2[ 6] = d2[31]∪d2[30]∪d2[29]∪d2[28]∪d2[26] ∪d2[25]∪1 out2[ 5] = d2[31]∪d2[30]∪d2[29]∪d2[28]∪d2[27] ∪d2[25]∪d2[24]∪1 out2[ 4] = d2[30]∪d2[28]∪d2[27]∪d2[26]∪d2[24]∪1 out2[ 3] = d2[31]∪d2[27]∪d2[26]∪d2[25]∪1 out2[ 2] = d2[31]∪d2[30]∪d2[26]∪d2[25]∪d2[24]∪1 out2[ 1] = d2[31]∪d2[30]∪d2[25]∪d2[24]∪1 out2[ 0] = d2[30]∪d2[24]∪1 次に、同じく図1を参照して、本実施の形態における検
証回路の動作の詳細について説明する。検証回路261
は、記憶媒体からデータの読み出し動作時にしか使用さ
れないので、この場合の動作について説明する。ここで
は、特に、読み込んだ{ユーザデータ+CRCパリティ
部+ECCパリティ部}にエラーが発生しており、EC
C回路262で訂正演算する場合の検証回路261の動
作について説明する。
Out2 [31] = d2 [29] ∪d2 [23] ∪1 out2 [30] = d2 [31] ∪d2 [28] ∪d2 [22] ∪1 out2 [29] = d2 [31] ∪ d2 [30] ∪d2 [27] ∪d2 [21] ∪1 out2 [28] = d2 [30] ∪d2 [29] ∪d2 [26] ∪d2 [20] ∪1 out2 [27] = d2 [31 ] ∪d2 [29] ∪d2 [28] ∪d2 [25] ∪d2 [19] ∪1 out2 [26] = d2 [30] ∪d2 [28] ∪d2 [27] ∪d2 [24] ∪d2 [ 18] ∪1 out2 [25] = d2 [27] ∪d2 [26] ∪d2 [17] ∪1 out2 [24] = d2 [31] ∪d2 [26] ∪d2 [25] ∪d2 [16] ∪ 1 out2 [23] = d2 [30] ∪d2 [25] ∪d2 [24] ∪d2 [15] ∪1 out2 [22] = d2 [24] ∪d2 [14] ∪1 out2 [21] = d2 [ 29] ∪d2 [13] ∪1 out2 [20] = d2 [28] ∪d2 [12] ∪1 out2 [19] = d2 [31] ∪d2 [27] ∪d2 [11] ∪1 out2 [18] = d2 [31] ∪d2 [30] ∪d2 [26] ∪d2 [10] ∪1 out2 [17] = d2 [30] ∪d2 [29] ∪d2 [25] ∪d2 [9] ∪1 out2 [ 16] = d2 [29] ∪d2 [28] ∪d2 [24] ∪d2 [8] ∪1 out2 [15] = d2 [31] ∪d2 [29] ∪d2 [28] ∪d2 [27] ∪d2 [7] ∪1 out2 [14] = d2 [31] ∪d2 [30] ∪d2 [28] ∪d2 [27] ∪d2 [26] ∪d2 [6] ∪1 out2 [13] = d2 [31] ∪d2 [30] ∪d2 [29] ∪d2 [27] ∪d2 [26] ∪d2 [25] ∪d2 [5] ∪1 out2 [12] = d2 [30] ∪d2 [29] ∪d2 [28 ] ∪d2 [26] ∪d2 [25] ∪d2 [24] ∪d2 [4] ∪ 1 out2 [11] = d2 [28] ∪d2 [27] ∪d2 [25] ∪d2 [24] ∪d2 [3] ∪1 out2 [10] = d2 [29] ∪d2 [27] ∪d2 [26 ] ∪d2 [24] ∪d2 [2] ∪1 out2 [9] = d2 [29] ∪d2 [28] ∪d2 [26] ∪d2 [25] ∪d2 [1] ∪1 out2 [8] = d2 [28] ∪d2 [27] ∪d2 [25] ∪d2 [24] ∪d2 [0] ∪1 out2 [7] = d2 [31] ∪d2 [29] ∪d2 [27] ∪d2 [26] ∪ d2 [24] ∪1 out2 [6] = d2 [31] ∪d2 [30] ∪d2 [29] ∪d2 [28] ∪d2 [26] ∪d2 [25] ∪1 out2 [5] = d2 [31 ] ∪d2 [30] ∪d2 [29] ∪d2 [28] ∪d2 [27] ∪d2 [25] ∪d2 [24] ∪1 out2 [4] = d2 [30] ∪d2 [28] ∪d2 [ 27] ∪d2 [26] ∪d2 [24] ∪1 out2 [3] = d2 [31] ∪d2 [27] ∪d2 [26] ∪d2 [25] ∪1 out2 [2] = d2 [31] ∪ d2 [30] ∪d2 [26] ∪d2 [25] ∪d2 [24] ∪1 out2 [1] = d2 [31] ∪d2 [30] ∪d2 [25] ∪d2 [24] ∪1 out2 [0 ] = d2 [30] ∪d2 [24] ∪1 Next, details of the operation of the verification circuit according to the present embodiment will be described with reference to FIG. Verification circuit 261
Is used only during the operation of reading data from the storage medium, so the operation in this case will be described. Here, in particular, an error has occurred in the read {user data + CRC parity part + ECC parity part}, and the EC
The operation of the verification circuit 261 when performing a correction operation in the C circuit 262 will be described.

【0146】先ず、データバス256を介して、CRC
回路260(図5参照)から{ユーザデータ+CRCパ
リティ部(エラー訂正前)}に対するCRC剰余値(3
2ビット値)を受信し、CRC剰余ラッチ330に格納
する。
First, the CRC via the data bus 256
From the circuit 260 (see FIG. 5), the CRC remainder value (3) for {user data + CRC parity part (before error correction)}
2) and stores it in the CRC remainder latch 330.

【0147】エラーが複数発生している場合は、{ユー
ザデータ+CRCパリティ部}におけるエラー位置およ
びエラー値がECC回路262(図5参照)において特
定されるたびに、またエラーが1個のみである場合は、
一回だけ、データバス251およびデータバス252か
ら、エラー位置およびエラー値がそれぞれ出力される。
When a plurality of errors occur, each time an error position and an error value in {user data + CRC parity section} are specified in ECC circuit 262 (see FIG. 5), only one error occurs. If
Only once, the error position and the error value are output from the data bus 251 and the data bus 252, respectively.

【0148】検証回路261は、データバス252から
エラー値を受信すると、エラー値剰余デコーダ341に
より、エラー値(8ビットデータ)をデコードして32
ビットデータを作成し、32ビットデータをCRCワー
キングレジスタ342へデータバス338、セレクタ3
40を介して格納する。
Upon receiving the error value from the data bus 252, the verification circuit 261 decodes the error value (8-bit data) by the error value
Bit data is created, and the 32-bit data is transferred to the CRC working register 342 by the data bus 338 and the selector 3.
Store via 40.

【0149】ここで、エラー値剰余デコーダ341は、
受信したエラー値(8ビットデータ)を多項式展開して
CRC生成多項式で剰余演算((式2)参照)を行った
結果の32ビットデータをデコードするためのランダム
ロジックである。すなわち、このエラー値剰余デコーダ
341の動作により受信したエラー値(8ビットデー
タ)をCRC生成多項式でCRC剰余演算した結果がC
RCワーキングレジスタ342に格納されるのである。
Here, the error value remainder decoder 341
This is a random logic for decoding 32-bit data as a result of expanding the received error value (8-bit data) into a polynomial and performing a remainder operation (see (Equation 2)) with a CRC generation polynomial. That is, the result of the CRC remainder operation of the error value (8-bit data) received by the operation of the error value remainder decoder 341 using the CRC generation polynomial is C
It is stored in the RC working register 342.

【0150】さて、データバス251を介してエラー位
置を剰余デコーダセレクタ348が受信するが、剰余デ
コーダセレクタ348は、受信したエラー位置の値に依
存して、セレクタ345の動作をシーケンス制御し、[1
6]サイクル剰余デコーダ343、[1]サイクル剰余デコ
ーダ344を使用してCRCワーキングレジスタ342
の値を更新する。
The remainder decoder selector 348 receives the error position via the data bus 251. The remainder decoder selector 348 performs sequence control on the operation of the selector 345 depending on the value of the received error position. 1
6] CRC working register 342 using cycle remainder decoder 343 and [1] cycle remainder decoder 344.
Update the value of.

【0151】ここで、図8を参照して、剰余デコーダセ
レクタ348(図1参照)におけるシーケンス制御の手
順について説明する。
Here, the sequence of the sequence control in the remainder decoder selector 348 (see FIG. 1) will be described with reference to FIG.

【0152】図8において、シーケンス制御がスタート
する(ステップ450)と、まず、受け付けたエラー位
置の値をカウンタ(counter)に格納する(ステップ4
51)。そして、カウンタに格納されているエラー位置
の値が16以上であるか否かを判定する(ステップ45
2)。この判定の結果、エラー位置の値が16以上あれ
ば、カウンタに格納されているエラー位置の値から16
減じ(ステップ453)、[16]サイクル剰余デコーダ3
43を選択し、CRCワーキングレジスタ342の値を
更新する(ステップ453)。その後、ステップ452
に戻り、同様の判定を行う。また、ステップ452にお
ける判定の結果、エラー位置の値が16より小さけれ
ば、エラー位置の値が1以上か否か調査する(ステップ
455)。この調査の結果、エラー位置の値が1以上で
あれば、エラー位置の値から1減じ(ステップ45
7)、[1]サイクル剰余デコーダ344を使用してCR
Cワーキングレジスタ342の値を更新する(ステップ
457)。そして、ステップ455に戻り、同様の判定
を行う。
In FIG. 8, when the sequence control is started (step 450), first, the value of the received error position is stored in a counter (step 4).
51). Then, it is determined whether the value of the error position stored in the counter is 16 or more (step 45).
2). As a result of this determination, if the value of the error position is 16 or more, the value of the error position stored in the counter is 16
Subtraction (step 453), [16] cycle remainder decoder 3
43, and updates the value of the CRC working register 342 (step 453). Then, step 452
And the same determination is made. If the result of determination in step 452 is that the value of the error position is smaller than 16, it is checked whether the value of the error position is 1 or more (step 455). As a result of this investigation, if the value of the error position is 1 or more, 1 is subtracted from the value of the error position (step 45).
7), [1] CR using cycle remainder decoder 344
The value of the C working register 342 is updated (step 457). Then, the process returns to step 455 to make the same determination.

【0153】以下、同様にして、このような動作をエラ
ー位置が0になるまで繰り返す。
Thereafter, the above operation is repeated until the error position becomes zero.

【0154】次に、図1を参照して、CRCワーキング
レジスタ342の値の更新動作について、さらに詳しく
説明する。
Next, the operation of updating the value of the CRC working register 342 will be described in more detail with reference to FIG.

【0155】図1において、CRCワーキングレジスタ
342の値は、データバス347を介して[16]サイクル
剰余デコーダ343に入力される。[16]サイクル剰余デ
コーダ343は、入力された32ビットデータをランダ
ムゲートによりデコードして得た32ビットデータをセ
レクタ345へ出力する。ここで、[16]サイクル剰余デ
コーダ343は、入力された32ビットデータをCRC
剰余算の初期値として採用し、続けて16バイト分の値
0のデータが入力されたCRC剰余算をした結果の32
ビットデータを出力するものである。
In FIG. 1, the value of the CRC working register 342 is input to the [16] cycle remainder decoder 343 via the data bus 347. [16] The cycle remainder decoder 343 outputs to the selector 345 32-bit data obtained by decoding the input 32-bit data using a random gate. Here, the [16] cycle remainder decoder 343 converts the input 32-bit data into a CRC.
Adopted as the initial value of the remainder calculation, followed by CRC remainder calculation in which 16-byte data of value 0 is input.
It outputs bit data.

【0156】また、CRCワーキングレジスタ342の
値はデータバス347を介して、[1]サイクル剰余デコ
ーダ344に入力される。[1]サイクル剰余デコーダ3
44は、入力された32ビットデータをランダムゲート
によりデコードして得た32ビットデータをセレクタ3
45へ出力する。この[1]サイクル剰余デコーダ344
は入力された32ビットデータをCRC剰余算の初期値
として採用し、続けて1バイト分の値0のデータが入力
されたCRC剰余算をした結果の32ビットデータを出
力するものである。
The value of the CRC working register 342 is input to the [1] cycle remainder decoder 344 via the data bus 347. [1] Cycle remainder decoder 3
Reference numeral 44 denotes a selector 3 which outputs 32-bit data obtained by decoding the input 32-bit data by a random gate.
45. This [1] cycle remainder decoder 344
Uses the input 32-bit data as an initial value of the CRC remainder calculation, and outputs 32-bit data resulting from the CRC remainder calculation in which the data of one byte value 0 is input.

【0157】剰余デコーダセレクタ348によって、セ
レクタ345が制御されて、デコーダとして[16]サイク
ル剰余デコーダ343のパスもしくは、[1]サイクル剰
余デコーダのパスのどちらかが選択され、セレクタ34
0を介してCRCワーキングレジスタ342の値を32
ビットデータで更新する。
The selector 345 is controlled by the remainder decoder selector 348 to select either the path of the [16] cycle remainder decoder 343 or the [1] cycle remainder decoder as a decoder.
The value of the CRC working register 342 is set to 32
Update with bit data.

【0158】このように動作することで受信したエラー
位置およびエラー値から(式8)の各項に対応するよう
な演算が検証回路261において実現される。
By performing the above operation, the verification circuit 261 realizes an operation corresponding to each term of (Equation 8) from the received error position and error value.

【0159】図8を参照して説明したシーケンス制御動
作が終了すると、CRCワーキングレジスタ342に格
納された32ビットデータを用いて、剰余格納レジスタ
334の値との排他的論理和をとり、剰余格納レジスタ
334の値を更新する。すなわち、CRCワーキングレ
ジスタ342の32ビットデータは、データバス347
を介して32ビット排他的論理和回路337で、データバ
ス333を介して送られてくる剰余格納レジスタ334
の値(但し初期値は0である)との排他的論理和をとら
れ、その演算結果はデータバス336、セレクタ335
を介して剰余格納レジスタ334を更新する。但し剰余
格納レジスタ334は、この時以外はクロックに同期し
て自分自身の値で更新を行っている(すなわち、CRC
ワーキングれじすた342からデータが送られてこない
ときは、レジスタの値は変化しない)。つまり、上述の
更新プロセス以外では、剰余格納レジスタ334は、デ
ータバス333、セレクタ335を介して自分の値で更
新を行うのである。
When the sequence control operation described with reference to FIG. 8 is completed, exclusive OR with the value of the remainder storage register 334 is performed using the 32-bit data stored in the CRC working register 342, and the remainder storage operation is performed. The value of the register 334 is updated. That is, the 32-bit data of the CRC working register 342 is stored in the data bus 347.
And the remainder storage register 334 sent via the data bus 333 by the 32-bit exclusive OR circuit 337
(However, the initial value is 0) is exclusive-ORed, and the operation result is obtained by the data bus 336 and the selector 335.
The remainder storage register 334 is updated via However, the remainder storage register 334 updates with its own value in synchronization with the clock except at this time (that is, the CRC is updated).
When data is not sent from the working register 342, the register value does not change.) That is, the remainder storage register 334 updates with its own value via the data bus 333 and the selector 335 except for the update process described above.

【0160】以上、1つのエラー位置およびエラー値が
受信された時の動作について説明した。エラーが複数発
生しているときにはデータバス251、データバス25
2を介してさらにエラー位置およびエラー値のペアがE
CC回路262(図5参照)より出力されてくるので同
様の動作を行う。但し、各エラー位置およびエラー値の
ペアについて、CRCワーキングレジスタ342もしく
は剰余格納レジスタ334の更新が行なわれている最中
は制御線253を介してビジー中であることをECC回
路262へ知らせ、次のエラー位置およびエラー値の出
力をウェイトさせる。
The operation when one error position and one error value are received has been described above. When a plurality of errors occur, the data bus 251, the data bus 25
Further, the error position and error value pair via E
The same operation is performed because it is output from the CC circuit 262 (see FIG. 5). However, while the CRC working register 342 or the remainder storage register 334 is being updated for each error position and error value pair, the ECC circuit 262 is notified via the control line 253 that it is busy. Output of error position and error value of

【0161】全てのエラー位置およびエラー値につい
て、上述の動作を完了すると、剰余格納レジスタ334
には、ECC回路262で算出されたエラー位置および
エラー値によって特定されるエラー多項式からCRC生
成多項式によりCRC剰余を求めた値が格納されてい
る。換言すれば、このとき、剰余格納レジスタ334に
は、(式8)で求められる値S'に対応する値が格納され
る。
When the above operation is completed for all error positions and error values, the remainder storage register 334
Stores a value obtained by calculating a CRC remainder by a CRC generation polynomial from an error polynomial specified by an error position and an error value calculated by the ECC circuit 262. In other words, at this time, the value corresponding to the value S ′ obtained by (Equation 8) is stored in the remainder storage register 334.

【0162】比較器331は、剰余格納レジスタ334
の値と、CRC剰余ラッチ330に格納されている、エ
ラー含みの{ユーザデータ+CRCパリティ部}から演
算されたCRC剰余値とを比較する。比較の結果、これ
らの2つの値が一致していれば、ECC回路262でエ
ラー訂正演算が正常に行なわれたと判断する。一致しな
かった場合、ECC回路262でエラー訂正演算の際に
誤訂正が発生したと判断し、ECC回路の誤訂正を検出
したことを、制御線250を介してECC回路262へ
報告する。
The comparator 331 includes a remainder storage register 334.
Is compared with the CRC remainder value stored in the CRC remainder latch 330 and calculated from the {user data + CRC parity part} including the error. As a result of the comparison, if these two values match, it is determined that the ECC circuit 262 has performed the error correction operation normally. If they do not match, the ECC circuit 262 determines that erroneous correction has occurred during the error correction operation, and reports to the ECC circuit 262 via the control line 250 that the erroneous correction of the ECC circuit has been detected.

【0163】本実施の形態を適用すれば、エラー訂正ア
ルゴリズムに依存せず、エラー訂正回路でエラー位置、
エラー値が求めながら、エラー訂正回路のエラー訂正演
算で誤訂正が行なわれたかどうかを評価する値を、並行
して求めていくことができる。これによって、誤訂正の
評価を高速に実行することができる。
When the present embodiment is applied, the error correction circuit does not depend on the error correction algorithm,
While determining the error value, a value for evaluating whether or not the error correction has been performed by the error correction operation of the error correction circuit can be determined in parallel. This makes it possible to evaluate erroneous corrections at high speed.

【0164】すなわち、図9のフローチャートに示すよ
うに、エラー位置およびエラー値を算出するためのステ
ップ507と、エラー位置およびエラー値からCRC剰
余再を算出するためのステップ509とを並行して実行
できる。従って、ECC訂正演算およびCRCによるE
CC訂正演算の検証演算の実行を高速化することが可能
となる。
That is, as shown in the flowchart of FIG. 9, step 507 for calculating an error position and an error value and step 509 for calculating a CRC remainder from the error position and the error value are executed in parallel. it can. Therefore, ECC correction operation and E
It is possible to speed up the execution of the verification operation of the CC correction operation.

【0165】また、図1に示す、エラー値剰余デコーダ
341、CRCワーキングレジスタ342、セレクタ3
40、[16]サイクル剰余デコーダ343、[1]サイクル
剰余デコーダ344、剰余デコーダセレクタ348を備
える演算ブロックを複数備え、ECC回路262からエ
ラー位置およびエラー値の送信要求が来たときに、1つ
の演算ブロックが稼働中の場合でも、他の開いている演
算ブロックで、そのエラー位置およびエラー値を受信
し、同様の演算を行うこともできる。これによって、さ
らに高速にECC訂正結果評価演算を実行することが可
能となる。
The error value remainder decoder 341, CRC working register 342, selector 3 shown in FIG.
40, a plurality of operation blocks each including a [16] cycle remainder decoder 343, a [1] cycle remainder decoder 344, and a remainder decoder selector 348. When an error position and an error value transmission request come from the ECC circuit 262, one Even when the operation block is in operation, another open operation block can receive the error position and the error value and perform the same operation. This makes it possible to execute the ECC correction result evaluation operation at a higher speed.

【0166】さらに、上述の説明では、ECC訂正演算
に使用する符号においてインタリーブ構成をとっていな
かったが、本発明は、インタリーブ構成をとる符号をE
CC訂正に使用した場合に適用可能であることは勿論で
ある。
Further, in the above description, the code used for the ECC correction operation does not have an interleave structure, but the present invention uses the code having the interleave structure as E
It is needless to say that the present invention is applicable when used for CC correction.

【0167】次に、図10を参照して、本発明の第2の
実施の形態について説明する。本実施の形態における磁
気ディスク装置は、ドライブ制御回路において、CRC
回路と検証回路とのペアを複数備えることにおいて、第
1の実施の形態と相違する。ドライブ制御回路以外のブ
ロックについては、基本的に同様に構成することができ
るので、ここで繰り返し説明することは省略し、相違点
を中心に説明する。本実施の形態では、ドライブ制御回
路をこのような構成とすることにより、大きなCRCパ
リティ部に対応する場合であっても、剰余演算のための
回路規模が肥大化することを避けることができる。
Next, a second embodiment of the present invention will be described with reference to FIG. In the magnetic disk device of the present embodiment, the drive control circuit includes a CRC.
This embodiment differs from the first embodiment in that a plurality of pairs of circuits and verification circuits are provided. Blocks other than the drive control circuit can be basically configured in the same manner, so that the description thereof will not be repeated here, and differences will be mainly described. In the present embodiment, by adopting such a configuration of the drive control circuit, it is possible to avoid an increase in the circuit scale for the remainder operation even in the case of supporting a large CRC parity unit.

【0168】上述した第1の実施の形態においては、C
RCパリティ部として4バイトを想定しているが、例え
ば、ECC誤訂正に対する検証能力を高めるためにCR
Cパリティ部を大きくすると、本実施の形態で図1にお
ける[16]サイクル剰余デコーダや[1]サイクルデコーダ
部分の回路規模は肥大してしまう。本実施の形態は、こ
の回路規模の肥大化を避けるための手法の一例である。
すなわち、第1の実施の形態ではECC訂正演算の誤訂
正を検出する手段として1つのCRC符号を使用した
が、本実施の形態では、複数のCRCC(もしくはこれ
に類する検出手段)を用い、これに本発明を適用する。
以下の説明では、使用するCRCCの個数として2つを
設定した場合について述べるが、3つ以上のCRCCの
組み合わせに適用することができることは勿論である。
In the first embodiment described above, C
The RC parity part is assumed to be 4 bytes. For example, in order to increase the verification capability against ECC error correction, CR bytes are used.
If the C parity part is increased, the circuit scale of the [16] cycle remainder decoder and [1] cycle decoder in FIG. This embodiment is an example of a technique for avoiding the enlargement of the circuit scale.
That is, in the first embodiment, one CRC code is used as a means for detecting an erroneous correction of an ECC correction operation. In the present embodiment, however, a plurality of CRCCs (or similar detection means) are used. The present invention is applied to:
In the following description, a case where two are set as the number of CRCCs to be used will be described. However, it is needless to say that the present invention can be applied to a combination of three or more CRCCs.

【0169】読み出されるデータの構成としては、例え
ば、{ユーザデータ+CRCパリティ部1+CRCパリ
ティ部2+ECCパリティ部}が考えられる。このデー
タブロックは、次のようにして生成することができる。
すなわち、先ず、ユーザデータに対して第1のCRCC
によりCRCパリティ部1を算出する。そして、{ユー
ザデータ+CRCパリティ部1}のデータブロックに対
して第2のCRCCによりCRCパリティ部2を算出す
る。その後、{ユーザデータ+CRCパリティ部1+C
RCパリティ部2}に対してECCによりECCパリテ
ィ部を算出する。本実施の形態では、CRCパリティ部
1、CRCパリティ部2のそれぞれの大きさを4バイト
と設定する例について説明する。このような構成の符号
に対し、本実施の形態における磁気ディスク装置では、
CRC回路と検証回路とのペアを複数備えるドライブ制
御回路を用いて対応する。
As a configuration of data to be read, for example, {user data + CRC parity unit 1 + CRC parity unit 2 + ECC parity unit} can be considered. This data block can be generated as follows.
That is, first, the first CRCC
The CRC parity unit 1 is calculated by Then, the CRC parity unit 2 is calculated by the second CRCC for the data block of {user data + CRC parity unit 1}. Then, {user data + CRC parity part 1 + C
An ECC parity part is calculated by the ECC for RC parity part 2 #. In the present embodiment, an example will be described in which the size of each of the CRC parity unit 1 and the CRC parity unit 2 is set to 4 bytes. In contrast to the code having such a configuration, in the magnetic disk device of the present embodiment,
This is handled by using a drive control circuit including a plurality of pairs of a CRC circuit and a verification circuit.

【0170】図10において、本実施の形態におけるC
RC回路B660およびCRC回路C601のそれぞれ
は、第1の実施の形態におけるCRC回路260(図7
参照)と基本的な構成は同様である。また、本実施の形
態における検証回路B661および検証回路C603の
それぞれは、第1の実施の形態における検証回路261
(図1参照)と基本的な構成は同様である。これらの回
路が第1の実施の形態と相違する点は、CRC回路B6
60、検証回路B661のペアと、CRC回路C60
1、検証回路C603のペアとで、それぞれ独立のCR
C生成多項式を使用していることである。
In FIG. 10, C in the present embodiment is shown.
Each of the RC circuit B660 and the CRC circuit C601 is a CRC circuit 260 (FIG. 7) according to the first embodiment.
And the basic configuration is the same. Further, each of the verification circuit B661 and the verification circuit C603 in the present embodiment is the same as the verification circuit 261 in the first embodiment.
The basic configuration is the same as that shown in FIG. These circuits are different from the first embodiment in that a CRC circuit B6
60, a pair of a verification circuit B661 and a CRC circuit C60
1. Independent CR for each pair of the verification circuit C603
That is, a C-generating polynomial is used.

【0171】以下、図10を用いて、本実施の形態にお
けるドライブ制御部B690の構成、および動作を、記
憶媒体である磁気ディスク円盤810(図4参照)に対
する、ユーザデータの書き込みと読み出しとにわけて、
それぞれ説明する。先ず、磁気ディスク円盤810(図
4参照)へのユーザデータの書き込みについて、説明す
る。
Hereinafter, referring to FIG. 10, the configuration and operation of drive control section B 690 in the present embodiment will be described in terms of writing and reading of user data to and from magnetic disk 810 (see FIG. 4) as a storage medium. So,
Each will be described. First, writing of user data to the magnetic disk 810 (see FIG. 4) will be described.

【0172】ドライブ制御部B690のデータバス25
8に書き込むべきユーザデータが、データバッファ81
6(図4参照)、バッファ制御部818(図4参照)を
介して、8ビット単位で送られてくる。ドライブ制御部
B690では、ユーザデータをCRC回路B660、C
RC回路C601およびECC回路662に入力してい
く。よって、この時点では、セレクタ664は、データ
バス258を選択し、そこから与えられるデータを、出
力バス653に出力する。
Data bus 25 of drive control unit B690
User data to be written to the data buffer 8
6 (see FIG. 4), and is transmitted in 8-bit units via the buffer control unit 818 (see FIG. 4). The drive control unit B690 stores the user data in the CRC circuits B660 and C660.
The signals are input to the RC circuit C601 and the ECC circuit 662. Therefore, at this time, the selector 664 selects the data bus 258 and outputs the data supplied from the data bus 258 to the output bus 653.

【0173】全てのユーザデータが上記の3ブロック
(CRC回路B660、CRC回路C601、ECC回
路662)に転送されるまで、それぞれのブロックは次
のように動作する。すなわち、CRC回路B660、C
RC回路C601はそれぞれ、転送されるユーザデータ
を多項式としてとらえ、それぞれのCRC生成多項式に
よる剰余演算を行ない((式2)参照)、また、ECC
回路662は転送されるユーザデータを多項式としてと
らえ、ECC生成多項式で剰余演算を行う。また、EC
C回路662は、この剰余演算と並行して、転送されて
くるユーザデータを8ビット単位で符号語出力バス65
5より出力する。
Until all the user data is transferred to the three blocks (CRC circuit B660, CRC circuit C601, and ECC circuit 662), each block operates as follows. That is, the CRC circuits B660, C660
Each of the RC circuits C601 regards the transferred user data as a polynomial, performs a remainder operation using the respective CRC generating polynomials (see (Equation 2)), and
The circuit 662 regards the transferred user data as a polynomial and performs a remainder operation on the ECC generation polynomial. Also, EC
In parallel with this remainder operation, the C circuit 662 converts the transferred user data into codeword output buses 65 in 8-bit units.
5 is output.

【0174】全てのユーザデータが上記の3ブロック
(CRC回路B660、CRC回路C601、ECC回
路662)に転送されると、それぞれのブロックは次の
ように動作する。すなわち、CRC回路B660ではC
RCパリティ部1(本実施の形態では4バイト)が生成
されるので、データバス657を介して、CRC回路C
601およびECC回路662にCRCパリティ部1を
8ビット単位で転送する。すなわち、この期間では、セ
レクタ664は、データバス657を選択し、そこから
のデータをデータバス653に出力する。また、セレク
タ621は、データバス657を選択し、そこからのデ
ータをCRC回路C601に出力にする。
When all the user data has been transferred to the above three blocks (CRC circuit B660, CRC circuit C601, and ECC circuit 662), each block operates as follows. That is, in the CRC circuit B660, C
Since the RC parity unit 1 (4 bytes in the present embodiment) is generated, the CRC circuit C is transmitted via the data bus 657.
The CRC parity unit 1 is transferred to the ECC circuit 601 and the ECC circuit 662 in 8-bit units. That is, during this period, the selector 664 selects the data bus 657, and outputs data from the data bus 657 to the data bus 653. The selector 621 selects the data bus 657, and outputs data from the data bus 657 to the CRC circuit C601.

【0175】CRC回路C601およびECC回路66
2は、全てのユーザデータバイトに引き続き、前述し
た、データバス657を介して転送されるCRCパリテ
ィ部1を使用して、それぞれの生成多項式による剰余演
算を続けて行う。また、この剰余演算と並行して、EC
C回路662は、転送されてくるCRCパリティ部1を
8ビット単位で符号語出力バス655より出力する。
CRC circuit C601 and ECC circuit 66
2 continuously performs the remainder operation by the respective generator polynomials using the CRC parity unit 1 transferred via the data bus 657 described above, following all the user data bytes. In parallel with this remainder operation, EC
The C circuit 662 outputs the transferred CRC parity unit 1 from the codeword output bus 655 in 8-bit units.

【0176】全てのCRCパリティ部1(本実施の形態
では4バイト)がCRC回路C601およびECC回路
662に転送されると、CRC回路601においてCR
Cパリティ部2が生成されるので、その後、生成された
CRCパリティ部2を、データバス608を介して8ビ
ットずつ出力する。
When all the CRC parity units 1 (4 bytes in this embodiment) are transferred to the CRC circuit C 601 and the ECC circuit 662, the CRC
Since the C parity unit 2 is generated, thereafter, the generated CRC parity unit 2 is output via the data bus 608 in units of 8 bits.

【0177】ECC回路662は、全ての{ユーザデー
タバイト+CRCパリティ部1}に引き続き、前述し
た、データバス657を介して転送されるCRCパリテ
ィ部2を使用して、ECC生成多項式による剰余演算を
続けて行う。また、この剰余演算と並行して、ECC回
路662は、転送されてくるCRCパリティ部2を8ビ
ット単位で符号語出力バス655より出力する。
The ECC circuit 662 uses the above-described CRC parity unit 2 transferred via the data bus 657 to perform the remainder operation using the ECC generation polynomial following all the {user data bytes + CRC parity unit 1}. Continue. In parallel with the remainder operation, the ECC circuit 662 outputs the transferred CRC parity unit 2 from the codeword output bus 655 in 8-bit units.

【0178】全てのCRCパリティ部2(本実施の形態
では4バイト)がECC回路662に転送されると、E
CC回路662の内部においてECCパリティ部が生成
されるので、その後、データバス655を介して、8ビ
ットずつ該ECCパリティ部を出力する。
When all the CRC parity units 2 (4 bytes in this embodiment) are transferred to the ECC circuit 662, E
Since the ECC parity section is generated inside the CC circuit 662, the ECC parity section is thereafter output via the data bus 655 in units of 8 bits.

【0179】このようにして、ドライブ制御部690で
データバス258を介してユーザデータを入力していく
ことで、符号語出力バス255から、{ユーザデータ部
+CRCパリティ部1+CRCパリティ部2+ECCパ
リティ部}が順次出力される。
By inputting user data via data bus 258 by drive control section 690 in this manner, {user data section + CRC parity section 1 + CRC parity section 2 + ECC parity section} from codeword output bus 255. Are sequentially output.

【0180】ドライブ制御部690は、{ユーザデータ
部+CRCパリティ部1+CRCパリティ部2+ECC
パリティ部}を、データバス829(図4参照)を介し
て磁気ディスク円盤810(図4参照)に記録する。
The drive control section 690 is composed of {user data section + CRC parity section 1 + CRC parity section 2 + ECC
Parity section} is recorded on magnetic disk 810 (see FIG. 4) via data bus 829 (see FIG. 4).

【0181】上述のようにして、本実施の形態における
ドライブ制御部690は、記録媒体へのユーザデータの
書き込み動作を行う。
As described above, drive control section 690 in the present embodiment performs an operation of writing user data to a recording medium.

【0182】次に、同じく図10を参照して、磁気ディ
スク円盤810(図4参照)からのユーザデータの読み
込み動作におけるECCによるエラー訂正、およびEC
C誤訂正のCRCによる検出動作について説明する。
Next, referring to FIG. 10, error correction by ECC in the operation of reading user data from magnetic disk 810 (see FIG. 4) and EC
A description will be given of a detection operation of C erroneous correction by CRC.

【0183】磁気ディスク円盤810(図4参照)から
読み込まれた{ユーザデータ部+CRCパリティ部1+
CRCパリティ部2+ECCパリティ部}は、データバ
ス258を介して、CRC回路B660、CRC回路C
601、およびECC回路662に入力されていく。よ
って、この期間は、セレクタ664は、データバス25
8を選択し、そこからのデータを出力バス653に出力
する。
{User data portion + CRC parity portion 1+ read from magnetic disk 810 (see FIG. 4)}
The CRC parity unit 2 and the ECC parity unit} are connected to the CRC circuit B 660 and the CRC circuit C via the data bus 258.
601 and the ECC circuit 662. Therefore, during this period, the selector 664 sets the data bus 25
8 and outputs the data therefrom to the output bus 653.

【0184】CRC回路B660では、{ユーザデータ
部+CRCパリティ部1}をそのCRC生成多項式によ
って剰余演算して4バイトのCRC剰余1を算出する。
そして、算出したCRC剰余1を、データバス656を
介して検証回路B661に4バイト一度に出力する。検
証回路B661では、受け取った4バイトのCRC剰余
を格納しておく。
In CRC circuit B660, {user data part + CRC parity part 1} is subjected to remainder operation by the CRC generating polynomial to calculate CRC remainder 1 of 4 bytes.
Then, the calculated CRC remainder 1 is output to the verification circuit B 661 via the data bus 656 every four bytes at a time. The verification circuit B661 stores the received 4-byte CRC remainder.

【0185】同様にCRC回路C601では、{ユーザ
データ部+CRCパリティ部1+CRCパリティ部2}
をそのCRC生成多項式によって剰余演算して4バイト
のCRC剰余2を算出する。そして、CRC剰余2を、
データバス602を介して検証回路C603に4バイト
一度に出力する。検証回路C603では受け取った4バ
イトのCRC剰余を内部に格納しておく。
Similarly, in CRC circuit C601, {user data section + CRC parity section 1 + CRC parity section 2}
Is subjected to a remainder operation using the CRC generation polynomial to calculate a 4-byte CRC remainder 2. And CRC remainder 2 is
The data is output to the verification circuit C603 via the data bus 602 at a time of 4 bytes. The verification circuit C603 stores the received 4-byte CRC remainder internally.

【0186】ECC回路662では、{ユーザデータ部
+CRCパリティ部1+CRCパリティ部2+ECCパ
リティ部}よりシンドロームを算出する。算出されたシ
ンドロームのうち少なくとも1つ以上が非ゼロであれば
ECC回路662は、読み込んだ{ユーザデータ部+C
RCパリティ部1+CRCパリティ部2+ECCパリテ
ィ部}にエラーが含まれていると判定し、訂正動作を開
始する。また、算出されたシンドロームが全てゼロであ
れば読み込んだ{ユーザデータ部+CRCパリティ部1
+CRCパリティ部2+ECCパリティ部}にエラーが
含まれていないと判定し、ドライブ制御部B690に対
して正常なデータ転送が行なわれたことを報告する。
The ECC circuit 662 calculates a syndrome from {user data section + CRC parity section 1 + CRC parity section 2 + ECC parity section}. If at least one of the calculated syndromes is non-zero, the ECC circuit 662 reads the {user data part + C
It is determined that an error is included in RC parity section 1 + CRC parity section 2 + ECC parity section}, and a correction operation is started. Also, if the calculated syndromes are all zero, it is read {user data part + CRC parity part 1
+ CRC parity section 2 + ECC parity section} determines that no error is included, and reports to drive control section B690 that normal data transfer has been performed.

【0187】次に、訂正動作について説明する。Next, the correction operation will be described.

【0188】ECC回路662でシンドロームを用いて
訂正演算したとき、発生したエラー個数が本ECCの訂
正能力範囲内であれば、エラー位置およびエラー値のペ
アを1組以上(実際に発生したエラー個数分だけ)算出
する。
When the correction operation using the syndrome is performed by the ECC circuit 662, if the number of generated errors is within the correction capability range of the ECC, one or more pairs of error positions and error values are set (the number of actually generated errors). Minutes only).

【0189】この時、エラー位置およびエラー値のペア
(但し、エラー位置がユーザデータ部もしくはCRCパ
リティ部1だった場合)が1つ見つかるごとに、それぞ
れ、データバス651、データバス652を介して検証
回路B661に、エラー位置およびエラー値のペアを出
力する。
At this time, every time a pair of an error position and an error value is found (provided that the error position is the user data portion or the CRC parity portion 1), the error signal is transferred via the data bus 651 and the data bus 652, respectively. An error position and an error value pair are output to the verification circuit B661.

【0190】検証回路B661では、受け取ったエラー
位置およびエラー値を用いて誤訂正検証演算を行ってい
く。検証回路B661では、エラー位置およびエラー値
を受け取るごとに、誤訂正検証用のCRC再剰余を演
算、更新していく。本実施の形態では、一組のエラー位
置およびエラー値を用いたCRC再剰余の更新演算に要
するクロックサイクルを、数〜10数クロックサイクル
に低減することが可能であり、更新演算を高速に実行す
ることが可能である。
The verification circuit B661 performs an erroneous correction verification operation using the received error position and error value. The verification circuit B661 calculates and updates the CRC re-residue for erroneous correction verification every time it receives an error position and an error value. In this embodiment, it is possible to reduce the number of clock cycles required for the update operation of the CRC remainder using a set of error positions and error values to several to several tens clock cycles, and to execute the update operation at high speed. It is possible to

【0191】同様に、エラー位置およびエラー値のペア
(但し、エラー位置がユーザデータ部もしくはCRCパ
リティ部1またはCRCパリティ部2だった場合)が1
つ見つかるごとに、それぞれ、データバス604、デー
タバス605を介して検証回路C603にエラー位置お
よびエラー値のペアを出力する。
Similarly, a pair of an error position and an error value (when the error position is the user data portion, CRC parity portion 1 or CRC parity portion 2) is 1
Each time it is found, it outputs a pair of an error position and an error value to the verification circuit C603 via the data bus 604 and the data bus 605, respectively.

【0192】検証回路C603では、受け取ったエラー
位置およびエラー値を用いて誤訂正検証演算を行ってい
く。検証回路C603では、エラー位置およびエラー値
を受け取るごとに、誤訂正検証用のCRC再剰余を演
算、更新していく。本実施の形態では、一組のエラー位
置およびエラー値を用いたCRC再剰余の更新演算に要
するクロックサイクルを、数〜10数クロックサイクル
に低減することが可能であり、更新演算を高速に実行す
ることが可能である。
The verification circuit C603 performs an erroneous correction verification operation using the received error position and error value. The verification circuit C603 calculates and updates the CRC re-residue for erroneous correction verification every time an error position and an error value are received. In this embodiment, it is possible to reduce the number of clock cycles required for the update operation of the CRC remainder using a set of error positions and error values to several to several tens clock cycles, and to execute the update operation at high speed. It is possible to

【0193】ECC回路662は、エラー位置およびエ
ラー値のペアが見つかるごとに(エラー位置が上記で説
明した位置を満足すれば)検証回路B661、検証回路
C603に、見つけられたエラー位置およびエラー値を
出力しようとするが、もし、検証回路B661、検証回
路C603のそれぞれにおいて、既に渡してあるエラー
位置、エラー値を使用したCRC再剰余の更新が完了し
てなければ、検証回路B661、検証回路C603は、
それぞれ制御線653、607を介して未完了であるこ
とを報告しているため、それが完了するまでECC回路
662は、見つけられたエラー位置およびエラー値の出
力をウェイトする。そして、CRC再剰余の更新が完了
すると、エラー位置およびエラー値を、検証回路B66
1、検証回路C603のそれぞれに出力し、引き続き、
次のエラー位置およびエラー値を算出し始める。
Each time a pair of an error position and an error value is found (if the error position satisfies the position described above), the ECC circuit 662 sends the detected error position and error value to the verification circuit B 661 and the verification circuit C 603. However, if the verification circuit B661 and the verification circuit C603 have not completed updating the CRC re-residue using the error position and the error value that have already been passed, the verification circuit B661 and the verification circuit C603, respectively. C603 is
ECC circuit 662 waits for the output of the found error location and error value until it is completed, since it reports that it is incomplete via control lines 653 and 607, respectively. Then, when the update of the CRC remainder is completed, the error position and the error value are determined by the verification circuit B66.
1. Output to each of the verification circuits C603,
Start calculating the next error position and error value.

【0194】ECC回路662で、期待される全てのエ
ラー位置およびエラー値のペアが算出され、検証回路B
661、検証回路C603のそれぞれにおいて、受信し
た全てのエラー位置、エラー値のペアを使用して、CR
C再剰余の更新がそれぞれ終了すると、検証回路B66
1、検証回路C603の内部に格納されているそれぞれ
のCRC再剰余値は、ECCによる誤訂正がなければ、
既に検証回路B661、検証回路C603にそれぞれ格
納されているCRC剰余と、CRC回路B660、CR
C回路C601から既に受信しそれぞれ格納しているC
RC剰余とは、それぞれ一致するはずである。
The ECC circuit 662 calculates all expected error positions and error value pairs, and the verification circuit B
661, in each of the verification circuits C603, using the pair of all the received error positions and error values,
When the updating of the C remainder is completed, the verification circuit B66
1. Each CRC residual value stored inside the verification circuit C603 is, if there is no error correction by ECC,
The CRC remainder already stored in each of the verification circuits B661 and C603 and the CRC circuits B660 and CR
C already received from the C circuit C601 and stored respectively.
The RC remainders should match each other.

【0195】CRC再剰余値とCRC剰余値とが等しけ
れば、検証回路B661、検証回路C603は、ECC
による訂正が正常に行なわれたと、それぞれ解釈する。
さもなければ(これらCRC再剰余値とCRC剰余値と
が等しくなければ)、ECCによる誤訂正が行なわれた
と判定し、バス650、606を介して誤訂正発生をE
CC回路662に報告する。この時誤訂正の発生パター
ンによって、検証回路B661、検証回路C603のど
ちらか、もしくは両方でECCの誤訂正が検出されるか
決定する。すなわち、{ユーザデータ部+CRCパリテ
ィ部1}に少なくとも1つ以上の位置で誤訂正されれ
ば、検証回路B661、検証回路C603は両方とも多
くの場合、誤訂正を検出できる(CRCの検出能力の制
限上、ある一定の確率で誤訂正を見逃す場合もある)。
また、CRCパリティ部2にのみ、少なくとも1つ以上
の位置で誤訂正されれば、検証回路C603でのみ誤訂
正を検証可能である(同様にCRCの検出能力の制限
上、ある一定の確率で誤訂正を見逃す場合もある)。
If the CRC remainder value and the CRC residue value are equal, the verification circuit B 661 and the verification circuit C 603
Are interpreted as having been corrected normally.
Otherwise (if these CRC re-surplus values are not equal to the CRC remainder values), it is determined that an erroneous correction by ECC has been performed, and an erroneous correction is generated via buses 650 and 606 as E.
Report to CC circuit 662. At this time, it is determined whether an erroneous correction of the ECC is detected in one or both of the verifying circuit B 661 and the verifying circuit C 603 according to the erroneous correction occurrence pattern. That is, if an error is corrected in at least one or more positions in the {user data section + CRC parity section 1}, both the verification circuit B661 and the verification circuit C603 can detect the error correction in many cases (the CRC detection capability is low). Due to limitations, there is a certain probability that you may miss an error correction.)
In addition, if the error correction is made in at least one or more positions only in the CRC parity unit 2, the error correction can be verified only in the verification circuit C603 (similarly, due to the limitation of the CRC detection capability, the error correction is performed at a certain probability. You may miss a mistake.)

【0196】ECC回路662では、算出されたエラー
位置、エラー値のペアを使用して、データバス634、
バッファ制御部818(図4参照)を介して、データバ
ッファ816(図4参照)内に格納されている対応する
誤りバイトデータを正常なデータへと訂正する。
The ECC circuit 662 uses the pair of the calculated error position and error value to generate the data bus 634,
The corresponding error byte data stored in the data buffer 816 (see FIG. 4) is corrected to normal data via the buffer control unit 818 (see FIG. 4).

【0197】ところで、ECC回路662で訂正演算を
行ったが、ECC回路662内部で訂正不成功(訂正不
能)と演算結果から判断するか、もしくは前述の検証回
路B661、検証回路C603(の両方、もしくはどち
らか)によりECCの誤訂正が検出されバス650、6
06を介して誤訂正がECC回路662に報告された場
合には、ECC回路662は訂正不能リポート信号65
4を介して、上位のドライブ制御部B690に、現在、
訂正を試みた{ユーザデータ+CRCパリティ部1+C
RCパリティ部2+ECCパリティ部}が訂正不能であ
ったことを報告する。このときドライブ制御部B690
は読み出したユーザデータにエラーが含まれ、かつEC
C回路662でも訂正できないと認識し、ユーザデータ
の再読み出し(リトライ)処理をしたりする。
By the way, the correction operation was performed by the ECC circuit 662. However, the ECC circuit 662 determines that the correction was unsuccessful (uncorrectable) from the operation result, or the above-described verification circuit B 661 and verification circuit C 603 (both, Erroneous correction of ECC is detected by buses 650 and 6
If the erroneous correction is reported to the ECC circuit 662 via the ECC 06, the ECC circuit 662 outputs the uncorrectable report signal 65.
4 to the upper drive control unit B690,
Correction attempted {user data + CRC parity part 1 + C
It reports that RC parity unit 2 + ECC parity unit} was uncorrectable. At this time, the drive control unit B690
Indicates that the read user data contains an error and EC
It recognizes that the data cannot be corrected even by the C circuit 662, and performs rereading (retry) processing of the user data.

【0198】以上、説明したように本実施の形態では、
CRC符号を複数使用したシステムの場合であっても、
剰余演算のための回路規模が肥大化することを避けた状
態で、本発明を適用した誤訂正検出を実行することがで
きる。
As described above, in the present embodiment,
Even in the case of a system using a plurality of CRC codes,
The erroneous correction detection to which the present invention is applied can be executed in a state in which the circuit scale for the remainder operation is prevented from increasing.

【0199】[0199]

【発明の効果】本発明によれば、ECCによるエラー訂
正と、CRC等のエラー検出手段によるECC訂正結果
の誤訂正検証とを、効率的に並列演算化することが可能
となり、エラー訂正演算および、その訂正結果の検証演
算を合わせたトータル演算時間が短縮される。言い換え
れば見かけ上、検証演算時間は0に近づく。
According to the present invention, error correction by ECC and erroneous correction verification of the ECC correction result by error detection means such as CRC can be efficiently parallelized. The total operation time including the verification operation of the correction result is shortened. In other words, apparently, the verification operation time approaches zero.

【0200】これにより、複雑な(時間のかかる)訂正
演算アルゴリズムを採用した場合や、高速なデータ転送
下においてもエラー訂正演算および、その訂正結果の検
証演算をオンザフライにて実現できる。
As a result, even when a complicated (time-consuming) correction operation algorithm is employed or under high-speed data transfer, an error correction operation and a verification operation of the correction result can be realized on the fly.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 第1の実施の形態における検証回路を示すブ
ロック図である。
FIG. 1 is a block diagram illustrating a verification circuit according to a first embodiment.

【図2】 従来のECC演算、CRC演算を示すフロー
チャートである。
FIG. 2 is a flowchart showing a conventional ECC operation and CRC operation.

【図3】 本発明を適用した磁気ディスク装置の電子回
路部を示す説明図である。
FIG. 3 is an explanatory diagram showing an electronic circuit unit of the magnetic disk drive to which the present invention is applied.

【図4】 本発明を適用した磁気ディスク装置を示す構
成図である。
FIG. 4 is a configuration diagram showing a magnetic disk drive to which the present invention is applied.

【図5】 本発明の第1の実施の形態におけるドライブ
制御部を示すブロック図である。
FIG. 5 is a block diagram illustrating a drive control unit according to the first embodiment of the present invention.

【図6】 本発明を適用したECC回路を示すブロック
図である。
FIG. 6 is a block diagram showing an ECC circuit to which the present invention is applied.

【図7】 本発明を適用したCRC回路を示すブロック
図である。
FIG. 7 is a block diagram showing a CRC circuit to which the present invention is applied.

【図8】 本発明を適用した剰余デコーダセレクタのシ
ーケンス制御を示すフローチャートである。
FIG. 8 is a flowchart showing sequence control of a remainder decoder selector to which the present invention is applied.

【図9】 本発明を適用したECC演算およびCRC演
算を示すフローチャートである。
FIG. 9 is a flowchart showing an ECC operation and a CRC operation to which the present invention is applied.

【図10】 本発明の第2の実施の形態におけるドライ
ブ制御部を示すブロック図である。
FIG. 10 is a block diagram illustrating a drive control unit according to a second embodiment of the present invention.

【図11】 本発明を適用した磁気ディスク装置を示す
説明図である。
FIG. 11 is an explanatory diagram showing a magnetic disk drive to which the present invention is applied.

【符号の説明】[Explanation of symbols]

290…ドライブ制御部 260…CRC回路 261…検証回路 262…ECC回路 301…符号生成/シンドローム算出回路 302…エラー位置、値算出器 305…バッファインタフェース回路 307…訂正不能判定回路 330…CRC剰余ラッチ 331…比較器 334…剰余格納レジスタ 341…エラー値剰余デコーダ 342…CRCワーキングレジスタ 343…[16]サイクル剰余デコーダ 344…[1]サイクル剰余デコーダ 348…剰余デコーダセレクタ 405…8ビット演算フィードバック回路 815…CPU 819…CPU入出力制御部 825…ホストインタフェース制御部 818…バッファ制御部 816…データバッファ 290: Drive control unit 260: CRC circuit 261: Verification circuit 262: ECC circuit 301: Code generation / syndrome calculation circuit 302: Error position / value calculator 305: Buffer interface circuit 307: Uncorrectable determination circuit 330: CRC remainder latch 331 ... Comparator 334 ... Remainder storage register 341 ... Error value remainder decoder 342 ... CRC working register 343 ... [16] Cycle remainder decoder 344 ... [1] Cycle remainder decoder 348 ... Remainder decoder selector 405 ... 8-bit operation feedback circuit 815 ... CPU 819 CPU input / output control unit 825 host interface control unit 818 buffer control unit 816 data buffer

───────────────────────────────────────────────────── フロントページの続き (72)発明者 山本 克己 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業部内 (72)発明者 仁科 昌俊 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 ──────────────────────────────────────────────────続 き Continuing from the front page (72) Katsumi Yamamoto, Inventor 5-2-1, Josuihonmachi, Kodaira-shi, Tokyo Inside the Semiconductor Division, Hitachi, Ltd. Within Hitachi Storage Systems Division

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】 目的とする情報を表すユーザデータにエ
ラー検出符号が付加された系列に、さらにエラー訂正符
号が付加された符号語に含まれるエラーを、上記エラー
訂正符号を用いて訂正する際に、誤訂正が発生したか否
かを検証するための誤訂正検証装置において、 上記エラー検出符号を生成するエラー検出符号生成多項
式で上記符号語を割った剰余、ならびに、上記符号系列
に含まれる各エラーのエラー位置およびエラー値を受け
付けるためのインタフェーシング手段と、 上記受け付けられた、各エラーのエラー位置およびエラ
ー値から各々生成されるエラー多項式を、上記エラー検
出符号を生成するエラー検出符号生成多項式で割った各
々の剰余を求めるための剰余演算手段と、 全ての剰余の排他的論理和を求めるための加算手段と、 上記加算手段によって求められた総和と、上記受け付け
た剰余とを比較し、これらが一致しないとき、誤訂正が
発生したと判定し、一致するとき、誤訂正が発生しなか
ったと判定するための判定手段とを有することを特徴と
する誤訂正検証装置。
1. A method for correcting an error contained in a code word obtained by adding an error correction code to a sequence obtained by adding an error detection code to user data representing target information using the error correction code. In the erroneous correction verification device for verifying whether erroneous correction has occurred, the remainder obtained by dividing the codeword by an error detection code generation polynomial that generates the error detection code, and the remainder included in the code sequence An interfacing means for receiving an error position and an error value of each error; and an error detection code generation for generating the error detection code using the received error polynomials respectively generated from the error position and the error value of each error Remainder calculating means for calculating each remainder divided by a polynomial, and adding means for obtaining an exclusive OR of all the remainders; Comparing the sum calculated by the adding means with the received remainder, and determining that the erroneous correction has not occurred when they do not match, and that the erroneous correction has not occurred when they match. An erroneous correction verification device, comprising: a determination unit.
【請求項2】 請求項1記載の誤訂正検証装置におい
て、 上記剰余演算手段は、エラー位置およびエラー値から生
成されるエラー多項式を、上記エラー検出符号生成多項
式で割った剰余を、各エラーごとに独立して求め、 上記剰余を求めるための演算を、上記エラー位置および
エラー値を受け付ける時間的順序に従って実行すること
を特徴とする誤訂正検証装置。
2. The error correction verification device according to claim 1, wherein the remainder operation means calculates a remainder obtained by dividing an error polynomial generated from an error position and an error value by the error detection code generation polynomial for each error. An error correction verification device, wherein the calculation for obtaining the remainder is executed in accordance with a temporal order in which the error position and the error value are received.
【請求項3】 請求項1および2のいずれか一項記載の
誤訂正検証装置において、 上記加算手段は、上記剰余が求められる度に逐次加算し
て求めること上記全ての剰余の排他的論理和を、 を特徴とする誤訂正検証装置。
3. The erroneous correction verification device according to claim 1, wherein said adding means calculates an exclusive OR of all the residuals by sequentially adding the residuals each time the residuals are obtained. An error correction verification device characterized by the following.
【請求項4】 請求項1から3のいずれか一項記載の誤
訂正検証装置において、 上記剰余演算手段は、予め定められた次数の多項式を上
記エラー検出符号生成多項式で割った剰余を求めるため
の剰余デコーダを、1次の多項式について少なくとも備
えることを特徴とする誤訂正検証装置。
4. The erroneous correction verification device according to claim 1, wherein the remainder calculating means calculates a remainder obtained by dividing a polynomial of a predetermined order by the error detection code generation polynomial. An error correction verifying apparatus comprising at least a residue decoder for a first-order polynomial.
【請求項5】 目的とする情報を表すユーザデータと、
上記ユーザデータからエラー検出符号生成多項式により
生成されるエラー検出符号と、上記情報符号およびエラ
ー検出符号を含む系列からエラー訂正符号生成多項式に
より生成されるエラー訂正符号とを含む符号語に含まれ
るエラーを訂正するためのエラー訂正装置において、 上記エラー検出符号を用いてエラーが含まれるか否かを
検出するためのエラー検出部と、 上記エラー検出手段によりエラーが含まれることが検知
されたとき、上記エラー訂正符号を用いてエラー訂正を
行うためのエラー訂正部と、 上記エラー訂正部におけるエラー訂正に際し、誤訂正が
発生したか否かを検証するための誤訂正検証部とを有
し、 上記エラー検出部は、 上記符号語を上記エラー検出符号生成多項式で割った剰
余を求めるための剰余演算手段と、 上記剰余演算手段により演算された剰余が非ゼロである
とき、エラーが含まれていることを、上記エラー訂正部
に通知するための通知手段とを備え、 上記エラー訂正部は、 上記ユーザデータおよびエラー検出符号を含む系列に含
まれる各エラーのエラー位置およびエラー値を求めるた
めのエラー訂正演算手段と、 上記系列における、上記求められたエラー位置における
バイトデータを、当該バイトデータおよび上記求められ
たエラー値の排他的論理和をとったバイトデータとする
ための訂正手段とを備え、 上記誤訂正検証部は、請求項1から4のいずれか一項記
載の誤訂正検証装置を用いて構成されることを特徴とす
るエラー訂正装置。
5. User data representing target information;
An error included in a code word including an error detection code generated by the error detection code generation polynomial from the user data and an error correction code generated by an error correction code generation polynomial from a sequence including the information code and the error detection code. In the error correction device for correcting the error, an error detection unit for detecting whether an error is included using the error detection code, and when the error detection unit detects that the error is included, An error correction unit for performing error correction using the error correction code, and at the time of error correction in the error correction unit, an error correction verification unit for verifying whether or not erroneous correction has occurred; An error detection unit, which calculates a remainder obtained by dividing the codeword by the error detection code generation polynomial; Notifying means for notifying the error correction unit that the error is included when the remainder calculated by the remainder calculation means is non-zero, the error correction unit comprising: Error correction calculating means for calculating an error position and an error value of each error included in the series including the detection code; and, in the series, the byte data at the obtained error position, the byte data and the obtained error. Correction means for obtaining byte data obtained by taking an exclusive OR of values, wherein the erroneous correction verification unit is configured using the erroneous correction verification device according to any one of claims 1 to 4. An error correction device, characterized in that:
【請求項6】 目的とする情報を表すユーザデータにエ
ラー検出符号が付加された系列に、さらにエラー訂正符
号が付加された符号語に含まれるエラーを訂正するため
のエラー訂正装置において、 上記符号語にエラーが含まれているか否かを検出するた
めの検出部と、 上記検出部において符号語にエラーが含まれていること
が検出された場合、エラー訂正符号を用いて符号語のエ
ラーを訂正する訂正演算を行うための訂正部と、 上記訂正部におけるエラー訂正の訂正結果を評価するた
めの訂正結果評価部とを有し、 上記訂正部は、 符号語に含まれるエラーのエラー位置およびエラー値を
求め、求めたエラー位置およびエラー値を用いて符号語
のエラー訂正を行う訂正演算を行うための演算回路と、 上記訂正演算の過程において、1または複数のエラーの
エラー位置およびエラー値を、エラーが算出されるごと
に上記訂正結果評価部に報告するための報告回路とを備
え、 上記訂正結果評価部は、受け取ったエラー位置およびエ
ラー値を用いて訂正結果の評価を進める評価回路を備
え、 上記訂正部および上記訂正結果評価部とは、上記訂正部
における訂正演算と、上記訂正結果評価部における訂正
結果の評価とを並行して実行することを特徴とするエラ
ー訂正装置。
6. An error correction apparatus for correcting an error contained in a code word obtained by further adding an error correction code to a sequence in which an error detection code is added to user data representing target information, A detection unit for detecting whether or not the word includes an error; and when the detection unit detects that the codeword includes an error, the error of the codeword is detected using an error correction code. A correction unit for performing a correction operation for correcting, and a correction result evaluation unit for evaluating a correction result of the error correction in the correction unit, wherein the correction unit includes: An arithmetic circuit for determining an error value and performing a correction operation for correcting an error of a codeword using the determined error position and error value; A report circuit for reporting the error position and error value of the number of errors to the correction result evaluation unit each time an error is calculated, wherein the correction result evaluation unit uses the received error position and error value. The correction unit and the correction result evaluation unit execute the correction operation in the correction unit and the evaluation of the correction result in the correction result evaluation unit in parallel. An error correction device characterized by the above-mentioned.
【請求項7】 請求項6記載のエラー訂正装置におい
て、 上記訂正結果評価部は、受け取るエラー位置の順番と、
上記エラー訂正符号上の位置の順番との関係に依らず
に、訂正結果の評価を進めることを特徴とするエラー訂
正装置。
7. The error correction device according to claim 6, wherein the correction result evaluation unit determines the order of the received error positions,
An error correction device characterized in that evaluation of a correction result is advanced irrespective of the relationship with the position order on the error correction code.
【請求項8】 請求項6および7のいずれか一項記載の
エラー訂正装置において、 上記訂正結果評価部は、 受け取ったエラー位置およびエラー値からエラー多項式
を作成し、当該エラー多項式を用いて、エラー検出符号
の生成多項式による剰余演算を行うための剰余演算回路
と、 値を格納するためのレジスタと、 上記レジスタに格納されている値と、上記剰余演算回路
により演算された剰余の値との排他的論理和をとり、当
該排他的論理和を取った値で、上記格納手段に格納され
ている値を更新するための更新回路と、 符号語に含まれる全てのエラー位置およびエラー値に対
して上記剰余演算回路により剰余演算が行われ、それら
の剰余の排他的論理和の値で上記格納手段に格納されて
いる値が更新されたとき、上記レジスタに格納されてい
る値と、上記符号語を用いたエラー検出符号生成多項式
による剰余演算の結果とを比較し、これらが相等しいと
き上記エラー訂正手段により正当にエラーが訂正された
と判定するための判定回路を備えることを特徴とするエ
ラー訂正装置。
8. The error correction device according to claim 6, wherein the correction result evaluation unit creates an error polynomial from the received error position and error value, and uses the error polynomial to generate an error polynomial. A remainder operation circuit for performing a remainder operation using a generator polynomial of an error detection code, a register for storing a value, a value stored in the register, and a value of the remainder calculated by the remainder operation circuit. An exclusive OR, an updating circuit for updating the value stored in the storage means with the value obtained by taking the exclusive OR, and an update circuit for all error positions and error values included in the code word. When the remainder operation is performed by the remainder operation circuit and the value stored in the storage means is updated with the value of the exclusive OR of the remainder, the value is stored in the register. And a result of the remainder operation by the error detection code generation polynomial using the codeword, and when they are equal, a determination circuit is provided for determining that the error has been properly corrected by the error correction means. An error correction device, characterized in that:
【請求項9】 請求項8記載のエラー訂正装置におい
て、 上記訂正結果評価部は、 上記剰余演算回路を複数備え、 1つの剰余演算回路が稼働中のとき、さらに、他のエラ
ーについての上記訂正手段からエラー位置およびエラー
値がさらに与えられたとき、他の剰余演算回路を用い
て、当該与えられたエラー位置およびエラー値について
の演算を実行することを特徴とするエラー訂正装置。
9. The error correction device according to claim 8, wherein the correction result evaluation unit includes a plurality of the remainder operation circuits, and further includes: when one remainder operation circuit is operating, further correcting the other errors. An error correction device, wherein when an error position and an error value are further given from the means, an operation is performed on the given error position and the error value using another remainder operation circuit.
【請求項10】 請求項6から9のいずれか一項記載の
エラー訂正装置において、 上記符号語は、エラー検出符号として2つ以上の独立し
たエラー検出符号を含み、上記訂正結果評価部は、上記
2つ以上の独立したエラー検出符号のそれぞれ利用して
上記訂正手段の訂正結果を評価するための2つ以上の独
立した訂正結果評価手段を備えることを特徴とするエラ
ー訂正装置。
10. The error correction device according to claim 6, wherein the codeword includes two or more independent error detection codes as error detection codes, and the correction result evaluation unit includes: An error correction device comprising two or more independent correction result evaluation means for evaluating a correction result of the correction means using each of the two or more independent error detection codes.
【請求項11】 請求項6から10のいずれか一項記載
のエラー訂正装置において、 上記符号語は、上記エラー訂正符号がインタリーブ構成
になっており、 上記訂正手段は、インタリーブ毎に訂正演算を進めてい
く手段を備え、 上記訂正結果評価部は、インタリーブごとに算出される
エラー位置およびエラー値を受け取り、当該エラー位置
を、上記エラー検出符号におけるエラー位置に算出しな
おすための回路を備えることを特徴とするエラー訂正装
置。
11. The error correction device according to claim 6, wherein the codeword has an interleave configuration of the error correction code, and the correction means performs a correction operation for each interleave. The correction result evaluator includes a circuit for receiving an error position and an error value calculated for each interleave, and recalculating the error position to an error position in the error detection code. An error correction device characterized by the above-mentioned.
【請求項12】 請求項5から11のいずれか一項記載
のエラー訂正装置を備えることを特徴とする再生装置。
12. A reproduction device comprising the error correction device according to claim 5. Description:
【請求項13】 請求項12記載の再生装置を備えるこ
とを特徴とする記録再生装置。
13. A recording / reproducing apparatus comprising the reproducing apparatus according to claim 12.
【請求項14】 請求項5から11のいずれか一項記載
のエラー訂正装置を備えることを特徴とする通信装置。
14. A communication device comprising the error correction device according to claim 5. Description:
【請求項15】 情報を表す情報符号と、上記情報符号
から巡回冗長符号生成多項式により生成されるエラー検
出符号と、上記情報符号およびエラー検出符号を含む系
列からエラー訂正符号生成多項式により生成されるエラ
ー訂正符号とを含む符号語に対する上記エラー訂正符号
を用いたエラー訂正について、エラー訂正に際し誤訂正
が発生したか否かを検証するための誤訂正検証方法にお
いて、 上記符号語に対する上記巡回冗長符号生成多項式の剰
余、および、上記ユーザデータおよびエラー検出符号を
含む系列に含まれる各エラーのエラー位置およびエラー
値を受け付け、 上記各エラーについて、受け付けたエラー位置およびエ
ラー値を含む項をそれぞれ最高次項とする多項式に対す
る上記巡回冗長符号生成多項式の剰余を求め、上記求め
た剰余の、排他的論理和による総和を求め、 上記求めた総和と、上記受け付けた剰余とを比較し、こ
れらが一致しないとき、誤訂正が発生したと判定し、か
つ、そうでないとき、誤訂正が発生しなかったと判定し
て、エラー訂正を検証することを特徴とする誤訂正検証
方法。
15. An information code representing information, an error detection code generated from the information code by a cyclic redundancy code generation polynomial, and an error correction code generation polynomial generated from a sequence including the information code and the error detection code. For error correction using the error correction code for a code word including an error correction code, in the error correction verification method for verifying whether error correction has occurred during error correction, the cyclic redundancy code for the code word The remainder of the generator polynomial, and the error position and error value of each error included in the sequence including the user data and the error detection code are received. For each of the errors, the term including the received error position and error value is the highest order term, respectively. The remainder of the cyclic redundancy code generation polynomial for the polynomial The sum of the remainder obtained by exclusive OR is calculated, and the obtained sum is compared with the received remainder. If they do not match, it is determined that an erroneous correction has occurred. An erroneous correction verification method comprising determining that no correction has occurred and verifying the error correction.
【請求項16】 プログラムを格納した記録媒体におい
て、 上記プログラムは、第1および第2のプロセッサを並列
動作させることができるプログラムであって、 目的とする情報を表すユーザデータにエラー検出符号が
付加された系列に、さらにエラー訂正符号が付加された
符号語にエラーが含まれているか否かを検出し、当該符
号語にエラーが含まれている場合、エラー訂正符号を用
いて当該符号語のエラーを訂正する訂正演算を上記第1
のプロセッサを用いて実行するための訂正部と、 上記訂正部におけるエラー訂正の訂正結果を上記第2の
プロセッサ評価するための訂正結果評価部とを有し、 上記訂正部は、 符号語に含まれるエラーのエラー位置およびエラー値を
求め、求めたエラー位置およびエラー値を用いて符号語
のエラー訂正を行う訂正演算を行うためのステップと、 上記訂正演算の過程において、1または複数のエラーの
エラー位置およびエラー値を、エラーが算出されるごと
に上記訂正結果評価部に報告するためのステップとを含
み、 上記訂正結果評価部は、エラー位置およびエラー値が1
または複数のエラーについて与えられるごとに訂正結果
の評価のための演算を行うためのステップを含むことを
特徴とするプログラムを格納した記録媒体。
16. A recording medium storing a program, wherein the program is a program capable of operating the first and second processors in parallel, wherein an error detection code is added to user data representing target information. It is detected whether or not an error is included in the code word to which the error correction code is added in the sequence that has been added. If the code word includes an error, the error correction code is used to detect the error of the code word. Correction operation for correcting an error
And a correction result evaluation unit for evaluating a correction result of the error correction in the correction unit by the second processor, wherein the correction unit is included in a code word. Determining the error position and error value of the error to be corrected, and performing a correction operation for performing error correction of the codeword using the determined error position and error value; Reporting the error position and the error value to the correction result evaluator each time an error is calculated, wherein the correction result evaluator has an error position and an error value of 1
Alternatively, a recording medium storing a program, comprising a step of performing an operation for evaluating a correction result each time a plurality of errors are given.
【請求項17】 与えられた多項式を、予め定められた
多項式で割った剰余を求めるための剰余演算装置におい
て、 予め定められた次数の多項式を上記予め定められた多項
式で割った剰余を求めるための剰余デコーダを、1次の
多項式について少なくとも備えることを特徴とする剰余
演算装置。
17. A remainder calculating device for calculating a remainder obtained by dividing a given polynomial by a predetermined polynomial, wherein a remainder obtained by dividing a polynomial of a predetermined order by the predetermined polynomial is obtained. And a residue decoder for at least a first-order polynomial.
JP33720997A 1997-12-08 1997-12-08 Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment Pending JPH11177440A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33720997A JPH11177440A (en) 1997-12-08 1997-12-08 Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33720997A JPH11177440A (en) 1997-12-08 1997-12-08 Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment

Publications (1)

Publication Number Publication Date
JPH11177440A true JPH11177440A (en) 1999-07-02

Family

ID=18306471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33720997A Pending JPH11177440A (en) 1997-12-08 1997-12-08 Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment

Country Status (1)

Country Link
JP (1) JPH11177440A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218098A (en) * 2004-01-29 2005-08-11 Samsung Electronics Co Ltd Reed-solomon decoder circuit of a forward directional chain search system
JP2012190538A (en) * 2012-05-25 2012-10-04 Toshiba Corp Storage device, storage medium reproducing method, storage medium reproducing program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005218098A (en) * 2004-01-29 2005-08-11 Samsung Electronics Co Ltd Reed-solomon decoder circuit of a forward directional chain search system
JP2012190538A (en) * 2012-05-25 2012-10-04 Toshiba Corp Storage device, storage medium reproducing method, storage medium reproducing program

Similar Documents

Publication Publication Date Title
US8086941B2 (en) Computing an error detection code syndrome based on a correction pattern
US6041430A (en) Error detection and correction code for data and check code fields
US5428630A (en) System and method for verifying the integrity of data written to a memory
US6003151A (en) Error correction and detection system for mass storage controller
US7530009B2 (en) Data storage method and data storage device
US7653862B2 (en) Error detection and correction for encoded data
US5805799A (en) Data integrity and cross-check code with logical block address
JP5043562B2 (en) Error correction circuit, method thereof, and semiconductor memory device including the circuit
JP3745709B2 (en) Encoding device, decoding device, encoding method, decoding method, program, program recording medium, and data recording medium
JPH11508712A (en) Method and apparatus for protecting data in a disk drive buffer
JP2001175542A (en) Recording and reproducing device and semiconductor memory
JP2008165808A (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
US20050188292A1 (en) Method and apparatus for encoding special uncorrectable errors in an error correction code
JP4790790B2 (en) Error detection and correction circuit and semiconductor memory
US20050149834A1 (en) (18, 9) Error correction code for double error correction and triple error detection
JP2007141411A (en) Decoder, storage device, and decoding method
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
US20070198904A1 (en) Error correction processing apparatus and error correction processing method
JP4861509B1 (en) Encoding / decoding device, data storage device, and method
US20030192005A1 (en) Method and apparatus for error detection
JPH11177440A (en) Method and system for verifying error correction, error correction device, reproducing device, recording and reproducing device, and communication equipment
JPH05218883A (en) Decoder circuit
JPH117736A (en) Method and apparatus for detecting error, decoding apparatus, and, recording reproducing apparatus
JP3853615B2 (en) Address information detecting apparatus and address information detecting method
JP2005135572A (en) Method and system for correcting error in data retrieved from recording medium, and computer readable storage medium including computer executable command