JP3571388B2 - 誤り訂正装置 - Google Patents
誤り訂正装置 Download PDFInfo
- Publication number
- JP3571388B2 JP3571388B2 JP28946894A JP28946894A JP3571388B2 JP 3571388 B2 JP3571388 B2 JP 3571388B2 JP 28946894 A JP28946894 A JP 28946894A JP 28946894 A JP28946894 A JP 28946894A JP 3571388 B2 JP3571388 B2 JP 3571388B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- unit
- memory
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【産業上の利用分野】
本発明は、読出器によりデータ記憶体から読み出したデータの誤りを検出して訂正する誤り訂正装置に関する。
【0002】
【従来の技術】
従来、この種の誤り訂正装置としては、例えば次のハミングコードがある。まず誤り訂正符号の作成方法から説明する。
いまハミングコードの検査行列(最終行列)をH、読み出した情報点と検査点で構成される符号データをwとする。この時、シンドロームSは
S=H×wT =0 (1)
但し、0は空ベクトル
となる。例えば検査行列Hと符号データwが次のような場合である。
【0003】
【数1】
【0004】
次に、通信中に符号データのiビット目に誤りが生じた場合、受信データが
w’=w+ei
となったと仮定する。この時、検査行列Hとの掛け合わせでは、
H×w’T =H×(w+ei )T =H×ei T =Hi (3)
但し、Hi はi列目の列ベクトル
となる。従って、検査行列Hの各列ベクトルが全て独立であれば、1ビット誤りが検出できる。
【0005】
しかし、2ビット誤った場合、例えば1ビット目と2ビット目を誤った場合、4ビット目を1ビットだけ誤ったことと区別できない。なぜなら、
【0006】
【数2】
【0007】
そこで、検査行列Hを次のように拡張する。
【0008】
【数3】
【0009】
これを拡張ハミング符号という。この時、どこかで1ビット誤れば、それに該当する列ベクトルが検査行列との掛け合わせで出てくる。従って、列ベクトルが全て独立であるため、1ビット誤り訂正符号となる。また、(5)式から2ビット誤った場合、それに該当する2つの列ベクトルの和となるが、1行目のビットは必ず0になり、2行目以降の列ベクトルの和は零ベクトルとならないことから、どの列ベクトルとも一致しない。
【0010】
しかし、どの2ビットが誤ったか分からないため、2ビット誤り検出しかできない。これは次式で示される。
【0011】
【数4】
【0012】
このように、連続して読み出せるデータビットに対し訂正符号を付けることで誤りの検出及び訂正ができる。
ここで、1ビット誤り訂正を行うためには、
【0013】
【数5】
【0014】
となる。このことから、Nビットの誤り訂正符号とするためには、どの2N個の列ベクトルの和も0にならないことが必要である。
また、2ビット誤り検出を行うためには、
【0015】
【数6】
【0016】
となる。このことから、Nビット誤り検出符号とするためには、どのN個の列ベクトルの和も0にならないことが必要である。
更に、1ビット誤りは訂正し、同時に2ビット誤りを検出するためには
【0017】
【数7】
【0018】
ところで本願発明者にあっては、データ記憶体からの読出データの伝送効率を上げるため、例えば2個のシリアルメモリから同時に読み出したパラレル2ビットデータを、22 =4種類の信号の1つに割り当て、一度の通信で2ビット同時に送るようにしている。
図15は従来装置の一例であり、読出器100は、制御部140、読出部160、送受信部180、デコード部200、検査部220を備える。またデータ記憶体120は、制御部260、送受信部280、シリアルメモリ300a,300b、エンコード部380を備える。
【0019】
シリアルメモリ300a,300bには、図16のビット長Mのデータ102,104が同一アドレスにペアデータとして記憶されており、データ102,104を読み出して交互に並べたデータ106が、ビット長2Mのデータwとなり、情報点108と検査点110をもっている。
【0020】
【発明が解決しようとする課題】
しかしながら、このような従来の誤り訂正装置にあっては、次のような問題点が出てきた。まず、1ビットの誤りが生じた場合、列ベクトルのどこと同じか検査する。また、2ビット誤った場合は、どの列ベクトルとも等しくなく、かつシンドロームSが0でないことを確かめる。
【0021】
このため図15の一度に2ビット同時に送ることができる通信方式の場合、誤り訂正を行うためには、1通信誤り訂正・2通信誤り検出符号、つまり2ビット誤り訂正・4ビット誤り検出符号としなくてはいけない。
このためには、
2ビット誤り訂正→ 4つの列ベクトルが線形独立
4ビット誤り検出→ 4つの列ベクトルが線形独立
【0022】
【数8】
【0023】
とする必要がある。これを検査するためには、シンドロームSが0とならないことで誤りの存在を検出した場合、
▲1▼ いずれかの列ベクトルと同じ → 1ビット誤り
▲2▼ ある列ベクトルと他の列ベクトルとの和 → 2ビット誤り
▲3▼ ▲1▼及び▲2▼に該当しない → 3ビット以上4ビット以下の誤り検出
になる検査の処理を行わなければならない。
【0024】
これを数式で示すと、次のようになる。
【0025】
【数9】
【0026】
しかし、2ビット誤り▲2▼を検査するため、シンドロームSが、ある列ベクトルと他の列ベクトルとの和に一致することを判断する処理には時間がかかる問題がある。例えば図11のデータwのように2Mビット長の場合、1ビット誤り▲1▼の検査は2M回の処理で済むが、2ビット誤り▲2▼を検査は2MC2 の処理が必要になり、検査に処理時間がかかる問題があった。
【0027】
本発明は、このような従来の問題点に着目してなされたもので、メモリからパラレル読出しで一度にtビットずつ同時に送られたN個の受信データを対象に、効率良く誤り訂正の検査処理ができる誤り訂正装置を提供する。
【0028】
【課題を解決するための手段】
この目的を達成するため本発明は次のように構成する。尚、実施例図面中の符号を併せて示す。
まず本発明は、読出器10によりデータ記憶体12から読み出したデータの誤りを検出して訂正する誤り訂正装置を対象とする。データ記憶体12には、メモリ30と、応答部が設けられる。メモリ30は、読出器10から所定のコマンドを受信した際に、tビットのパラレル読出しを行う。応答部は、メモリ30から読み出したtビットのパラレルデータに対して、予め定めた2t 種類の擬似ランダム信号の内の1つを出力する。
【0029】
読出器10には、相関演算部56−1〜4、データ復号部70、検査部22、検査データ格納メモリ74が設けられる。相関演算部56−1〜4は、データ記憶体12の2t 種類の擬似ランダム信号と同一の信号を基準信号として保持し、受信信号との自己相関を求める。データ復号部70は、相関演算部で求めた2t 種類の擬似ランダム信号毎の自己相関の内、絶対値が最大のもの又は2乗した値が最大のものを求めて対応するtビットデータを復元する。
【0030】
検査データ格納メモリ74には、1要素がtビットで、M行N列にM×N個の検査要素Hij(但しi=1〜M,j=1〜N)を検査データとして格納する。ここで列方向のM検査要素の集りを検査列データH1 〜HN という
検査部20は、データ復号部70から得られたN要素分のtビットデータと、検査データ格納メモリ74の検査データHijとの演算によりシンドロームを求め、少なくとも誤りを検出する。
【0031】
この検査部22は、1要素がtビットでM要素からなるシンドロームの演算結果を格納するシンドローム格納メモリ80、N要素のtビット受信データを記憶する受信データ格納メモリ72、tビット乗算器をm要素分備えた乗算部76、tビット加算器をm要素分備えた加算部78から構成される。
tビット乗算器の各々は、検査データ格納メモリ74に格納された行方向のN要素分の検査列データ(H1 〜HN )の各々と、行方向のN要素の各位置j=1〜Nに対応する受信データ格納メモリ72のtビット受信データとのtビット乗算を行う。また加算器の各々は、シンドローム格納メモリ80のM要素分の格納位置80−1〜80−Mのtビットデータと、tビット乗算器の各々の演算結果とのtビット加算を行い、この演算結果を同じ格納位置に格納してシンドロームを求める。
【0035】
【作用】
このような本発明の誤り訂正装置によれば、データ記憶体から1符号でtビットのデータが通信されることから、これをtビットで1符号となるガロア体GF(2t )の上の符号でデータを構成し、1符号誤り訂正・2符号誤り検出符号を作成する。この場合の誤り訂正は、基本的には、1ビット誤り訂正・2ビット誤り検出符号と同じになり、tビットを1符号としてガロア体上の演算(乗算、加算)を行うだけでよい。
【0038】
【実施例】
図1は、本発明の誤り訂正装置が適用される読出器とデータ記憶体を用いたデータ処理システムの実施例である。
図1において、読出器10には、制御部14、読出制御部16、伝送部18、デコード部20および検査部22が設けられる。一方、データ記憶体12には、制御部24、伝送部28、メモリ30、エンコード部32が設けられる。エンコード部32は、擬似ランダム系列発生部34と擬似ランダム信号発生部36で構成される。
【0039】
データ記憶体12のメモリ30は、例えば図2のように、t個のシリアルメモリ40−1〜40−tを有する。シリアルメモリ40−1〜40−tには、例えば図5(A)に示すような単一誤り訂正・2重誤り検出符号である例えば拡張ハミング符号が、tビットのパラレルデータに分解されて系列的に格納されている。
【0040】
例えばt=2ビットを例にとると、図5(B)に示すように、図5(A)のビット1〜2Nの符号は、シリアルメモリ40−1,40−2に、ビット1,2,・・・2Nの順番に交互に格納される。結果として、シリアルメモリ40−1には奇数ビット1,3,・・・2N−1が格納され、シリアルメモリ40−2には偶数ビット2,4,・・・2Nが格納される。
【0041】
図5(A)の拡張ハミング符号は、ハミングコードの検査ビット数M=3ビットを例にとると、符号ビット長は2M =23 =8ビットであり、情報ビット数は検査ビット数となる4ビットを符号ビット長から引いた、2M −M−1=23 −3−1=4ビットとなる。メモリ30に例えば図5(B)のように格納されたデータは、読出器10からのコマンドによるデータ記憶体12の制御部24からの読出アクセスにより、tビット単位にパラレルに読み出される。例えば図5(B)のシリアルメモリ40−1,40−2の場合、読出器10の読出制御部16を起動して、読出コマンドを伝送部18を介してデータ記憶体12に送出する。
【0042】
この読出コマンドを、データ記憶体12の制御部24は伝送部28を介して受け、メモリ30の読出状態を作り出す。続いて読出器10の読出制御部16は、tビットのパラレルデータを返送させるためのデータ返送命令を送出する。データ記憶体12の制御部24は、読出器10よりデータ返送命令を受信するごとに、tビットパラレルデータをメモリ30から読み出す。
【0043】
データ記憶体12に設けたデータ返送命令を受けるごとにtビットパラレルデータを出力するメモリ30としては、図12のt個のシリアルメモリを用いた以外に、図3に示すように、tビットパラレル読出メモリ42を使用してもよい。このtビットパラレル読出メモリ42には、例えばt=2ビットを例にとると、図5(C)に示すように、同一アドレスにつき2ビット単位に、図5(A)のデータが記憶されている。このため、データ返送命令の受信に基づく読出動作で2ビットずつ、パラレルデータを読み出すことができる。
【0044】
図4はデータ記憶体12のメモリ30の他の実施例であり、この実施例はシリアルメモリ40とtビットシフトレジスタ45を使用したことを特徴とする。シリアルメモリ40は、読出器10よりデータ返送命令を1つ受けるごとにt回のシリアル出力を行って、tビット分のデータをtビットシフトレジスタ45に出力する。
【0045】
tビットシフトレジスタ45は、シリアルメモリ40に対するt回のシリアル出力に同期して読出ビットをシフトし、最終的に、tビットのパラレルデータを出力する。図5(D)は、t=2ビットとした場合の図4のメモリ30であり、シリアルメモリ40の出力段に2ビットシフトレジスタ45を設け、1回のデータ返送命令に対し、シリアルメモリ40を2回読出動作を行って2ビットシフトレジスタ45に読出2ビットをシフトし、2ビットパラレルデータを出力する。
【0046】
図6はデータ記憶体12のメモリ30の他の実施例であり、この実施例にあっては、メモリ制御部44、stビットパラレル読出メモリ46およびシフトレジスタ48を設けている。ここで、stビットパラレル読出メモリ46は、ビット幅がtでs回読出可能なパラレルデータを1回のアクセスで読み出すメモリを意味する。このため、メモリ制御部44にはカウンタおよびアドレスレジスタが設けられる。
【0047】
図1のデータ記憶体12の制御部24で、読出命令によってリードアドレスが受信されると、メモリ制御部44のアドレスレジスタに受信アドレスがセットされる。続いて、最初のデータ返送命令が受信されると、メモリ制御部44はアドレスレジスタによるアドレス指定でstビットパラレル読出メモリ46をリードアクセスし、s×tビット分のパラレルデータをシフトレジスタ48に読み出し、このときシフトレジスタ48は最初のtビット分パラレルデータを出力する。また、メモリ制御部44はカウンタを1つインクリメントする。
【0048】
次に2番目のデータ返送命令を受信すると、メモリ制御部44はシフトレジスタ48にシフト信号を出力し、次のtビット分のパラレルデータの出力を行わせ、メモリ制御部44のカウンタを1つインクリメントする。このようなデータ返送命令の受信ごとに、シフトレジスタ48のシフト動作をメモリ制御部44のカウンタの計数値がsに達するまで繰り返す。
【0049】
カウンタがsに達すると、s×tビット分のデータ出力が完了する。そこで、カウンタを0にクリアすると共にアドレスレジスタを1つインクリメントし、次のデータ返送命令に基づき、インクリメントしたアドレスからs×tビット分の読出しをstビットパラレル読出メモリ46から行って、シフトレジスタ48に転送するようになる。
【0050】
再び図1を参照するに、読出器10からのデータ返送命令を受けるごとに、メモリ30から読み出されたtビットパラレルデータは、エンコード部32の擬似ランダム系列発生部34に与えられる。擬似ランダム系列発生部34には、2t 種類の擬似ランダム系列が予め準備されている。
図7はデータ記憶体12の擬似ランダム系列発生部34の実施例であり、t=2ビットのパラレルデータを対象としており、2t =22 =4種類の擬似ランダム系列M00,M01,M10,M11を準備している。このような4種類の擬似ランダム系列M00〜M11に対応して、M11系列発生器50−1、M10系列発生器50−2、M01系列発生器50−3およびM00系列発生器50−4が設けられている。
【0051】
各系列発生器50−1〜50−4は、クロックCLKに同期して所定符号長の擬似ランダム信号を出力する。図1のメモリ30として図5(B)のシリアルメモリ40−1,40−2を例にとると、シリアルメモリ40−1,40−2からの出力はAND回路52−1〜52−4に並列的に入力され、AND回路52−1〜52−4には更に、各系列発生器50−1〜50−4の出力が個別に入力されている。
【0052】
AND回路52−1は、シリアルメモリ40−1,40−2からの2ビット出力11で許容状態となって、M11系列発生器50−1からの出力をOR回路54より出力する。即ち、2ビットパラレル出力11を擬似ランダム信号M11に変調する。AND回路52−2はメモリ40−1,40−2からの2ビットパラレル出力10で許容状態となり、M10系列発生器50−2の出力をOR回路54を介して出力する。即ち、2ビットパラレル出力10を擬似ランダム信号M10に変調する。
【0053】
AND回路52−3はシリアルメモリ40−1,40−2からの2ビットパラレル出力01で許容状態となり、M01系列発生器50−3の出力をOR回路54から出力する。即ち、2ビットパラレル出力01を擬似ランダム信号M01に変調する。更に、AND回路52−4はシリアルメモリ40−1,40−2からの2ビットパラレル出力00で許容状態となり、M00系列発生器50−4からの擬似ランダム信号M00をOR回路54を介して出力する。即ち、2ビットパラレル出力00を擬似ランダム信号M00に変調する。
【0054】
図7の擬似ランダム系列発生器で2ビットパラレルデータに対応して発生した擬似ランダム系列信号は、擬似ランダム信号発生部36で伝送部28に対する駆動信号に変換され、読出器10に送出される。
図8は、図1の読出器10に設けたデコード部20の実施例である。図8において、デコード部20には、A/D変換器58、M11相関演算器56−1,M10相関演算器56−2,M01相関演算器56−3,M00相関演算器56−4およびデータ復号器70が設けられる。M11〜M00相関演算器56−1〜56−4は、M11相関演算器56−1に代表して示す構成をもつ。即ち、M11相関演算器56−1は、シフトレジスタ60、積和演算器62、基準系列レジスタ64、比較器66、ピーク値格納メモリ68で構成される。
【0055】
受信信号はA/D変換器58でデジタルデータとされ、シフトレジスタ60に入力され、基準系列レジスタ64の基準系列M11との積和計算が積和演算器62で行われる。このとき返送されてくる擬似ランダム信号のタイミングははっきりしないため、最も相関値が高くなるところを探しながら最大相関値を比較器66で求めて、ピーク値格納メモリ68に格納する。
【0056】
具体的には、データ読出器10からのデータ返送命令の送出時にピーク値格納メモリ68をクリアし、一定時間ごとに連続的に積和演算器62で積和演算を行い、そのときの絶対値又は2乗した値の相関値とピーク値格納メモリ68の格納値とを比較部66で比較し、大きい方の相関値をピーク値格納メモリ68にセーブしていくことで、最大相関値を得ることができる。以上の動作は、M10〜M00相関演算器56−2〜56−4においても並列的に行われる。
【0057】
データ復号器70は、4つの最大相関値の中の最大値の相関値を与えた2ビットデータを復元する。
ここで、図7の擬似ランダム系列発生部34で発生する擬似ランダム系列M11〜M00としては、異なる4種類の擬似ランダム系列を準備してもよいが、1つの擬似ランダム系列を分割して位相シフトすることで4種類の擬似ランダム系列を作るようにしてもよい。
【0058】
例えば1つの擬似ランダム系列を4分割し、各分割系列ごとに位相シフトした4種類の擬似ランダム系列を作る。このように1つの擬似ランダム系列を分割して位相シフトすることにより得られた4種類の擬似ランダム系列を使用すると、異なる4種類の擬似ランダム系列を使用した場合に比べ、相互相関の小さいS/N比の大きい復号ができる。
【0059】
これは、符号長をm、擬似ランダム系列をf1,f2,gとし、擬似ランダム系列f1とf2は位相のみが異なる同じ系列データであるとする。このとき
|f×f|=m
|f×g|>1
||f1×f2|=1
となり、同一系列を用いて、位相シフトから得た擬似ランダム系列f1,f2を用いた方が、S/Nが大きくなることが判る。
【0060】
図9は、図1の検査部22の実施例である。検査部22には、データ格納メモリ72、検査データ格納メモリ74、乗算部76、加算部78、シンドローム格納メモリ80、1ケ所誤りデータ格納メモリ82、比較部84、判断部86、訂正部88が設けられる。データ格納メモリ72には、デコード部20で復元されたtビットデータが格納される。データ格納メモリ72は、tビット幅の受信データをN要素分格納して、これを1つのデータブロックとして誤り検出と訂正を行う。
【0061】
次に、図9の検査部22における誤り検出と訂正の原理を説明する。まず本発明は、2ビットで1符号になるガロア体GF(22 )の上の符号でデータを構成し、その上で誤り訂正符号を構成する。つまり、1符号誤り訂正・2符号誤り検出符号を作成する。この作成方法は、1ビット誤り訂正・2ビット誤り検出符号と基本的には同じである。
【0062】
いま検査行列Hを、
【0063】
【数10】
【0064】
とすると、次の条件が必要である。
【0065】
【数11】
【0066】
ここで、Hij,a,b,cは2ビットデータで、ビット定数0,1,α,α2 のいずれかである。2ビットデータでは、0=00、1=01、α=10、α2 =11とする。
2Nビット長のデータは、1符号2ビットで考えるとN符号データとなる。これをWとする。
W=(d1 ,d2 ,・・・,dN )
(但し、di は0,1,α,α2 のいずれか)
いまWを正しいデータとし、誤りデータwを
w=W+aei
とする。ここで、ei はi符号目が1で、他は全て0のN符号データとする。
【0067】
このとき、
【0068】
【数12】
【0069】
となる。従って、1符号誤り訂正符号とするためには、次式が成立する必要がある。
【0070】
【数13】
【0071】
更に、2符号誤り検出符号とするためには、任意の2つの列ベクトルの和が零でないことも必要であるが、2符号誤りが1符号誤りと区別できなければならないため、次のようになる。
【0072】
【数14】
【0073】
このことから、前記(10)から(11)の条件を満たせば、1符号誤り訂正・2符号誤り検出符号となる。
次に、本発明によるGF(22 )の上の誤り検出及び訂正を説明する。まず、受信データwと検査行列の掛け合わせを行う。
【0074】
【数15】
【0075】
ここで検査行列Hは次式で与えられる。
【0076】
【数16】
【0077】
またd i H i =d i (H 1i ,H 2i ,・・・,H Mi ) T である。更に、di ×H ji は2ビット×2ビットの乗算となる。従って、シンドロームSを生成する図9の乗算部76、加算部80は、図11のようになる。図11において、シンドローム計算の前に、シンドローム格納メモリ80の格納エリア(2ビット格納エリア)80−1〜80−Mを零にクリアする。次に、データ格納メモリ72からの2ビットデータの読出しと共に、検査データ格納メモリ74から検査行列Hをシフトして列単位に読み出す。この列単位に読み出す検査データを検査列データと呼ぶ。乗算部76の2ビット乗算器76−1〜76−Mの各々は、受信データと検査列データの2ビットデータを掛け合わせる。
【0078】
この2ビット乗算器76−1〜76−Mの乗算結果は、加算部78の2ビット加算器78−1〜78−Mに与えられ、現在のシンドローム格納メモリ80の格納エリア80−1〜80−Mの値と加算し、加算結果を格納エリア80−1〜80−Mに格納する。この2ビットの乗算及び加算処理をN回繰り返した時点でシンドロームの計算が終わる。
【0079】
次に、図9の1ケ所データ格納メモリ82と比較部84による誤りの検査処理を説明する。図11で求めたシンドロームSが零の場合は、誤りなしと判断するので、Sが零とならない誤りありの場合を説明する。
1ケ所誤りデータ格納メモリ82には、図12の1ケ所誤りデータが格納されている。1ケ所誤りデータ82−1は検査列データH1 〜HN であり、ビット定数は1であるから、検査列データHそのものである。1ケ所誤りデータ82−2は、検査列データH1 〜HN にビット定数αを掛けたものである。更に1ケ所誤りデータ82−3は、検査列データH1 〜HN にビット定数α2 を掛けたものである。
【0080】
比較部84は1ケ所誤りデータ格納メモリ82の検索により、シンドローム格納メモリ80に格納されたシンドロームSに一致する1ケ所誤りデータを探し出す。この場合の検査されなければならない最大回数は、(2t −1)×N回となり、t=2ビットの場合は3N回で済む。
これに対し、2ビットで1要素とせずに、1ビットデータをそのまま2Nビット分伝送する従来の1ビット訂正・2ビットエラー検出符号の場合は、1ケ所誤りの検査回数は、1ケ所誤り検査が2N回数となり、、2重誤り検査が2NC2 回であるから、合計(2N+2NC2 )回となっている。このため本発明の2ビットを1要素とした本発明の誤り検出訂正の方が短時間で処理できる。
【0081】
図13は図9の訂正部88による1ケ所データ誤りを検出した場合の訂正処理の実施例である。訂正部88には、シフトレジスタ90、N個の2ビット乗算器を備えた乗算部92及びN個の2ビット加算器を備えた加算部94で構成される。シフトレジスタ90は、図9の比較部84による検査処理で1ケ所誤りデータの列ベクトルとシンドロームSを比較する毎に、入力した要素1をシフトする。実際には要素1は2ビットデータ01であり、2ビットシフトを行う。
【0082】
比較部84でシンドロームSに一致する列ベクトルが見つかると、乗算部92に一致信号が出力され、その一致する列ベクトルをつくった1、α、α2 の内のいずれかのビット定数とシフトレジスタ90の値を掛け合わせて、最終的に加算部94でデータ格納メモリ72から読出した受信データに加算することで、正しいデータに訂正することができる。
【0083】
これは、Wを正しいデータとし、実際に受信した誤りデータw=W+aeiとすると、シンドロームSは次式で求められる。
S=H×w T =H(W+aei ) T =aH×ei T =aHi
この式のaとして、ビット定数1、α、α2 のいずれかの値が求まり、また、eiがシフトレジスタ90の値であることから、乗算部92と加算部94で
W=w+aei
の演算を行うことで、正しいデータWを求めることができる。
このような本発明の誤り検出と訂正の具体例を示す。
。
【0084】
いま検査行列を
【0085】
【数17】
【0086】
とし、入力データをW=(1a1a1a)とする。受信データは、図9のデータ格納メモリ72に2ビット単位に、
01 10 01 10 01 10
と入る。但し、01=1,10=a,11=bである。検査データ格納メモリ74には、図11でM=3であるから、検査行列Hが3行になって入っている。
【0087】
データW=(1a1a1a)が入ってくると、最終的にシンドロームSは次のようにして求められる。
【0088】
【数18】
【0089】
ここで、1ケ所誤りデータW´=(1aba1a)と受信したとする。このときのシンドロームSとして、
が求められ、シンドローム格納メモリ80に格納される。比較部84は、シンドロームSと、図12の1ケ所誤りデータ格納メモリ82の列ベクトルH1 ,aH1 ,bH1 ,H2 ,aH2 ,bH2 ,・・・H6 ,aH6 ,bH6 と比較する。この比較による検査回数は、(22 −1)・6=18回となる。
【0090】
シンドロームSは列ベクトルaH3 に一致することから、図13の訂正部88によって正してデータWとして、
W=W´+ae3
を求める。即ち、
となり、正しく復号できる。
【0091】
図14はシンドロームと1ケ所誤りデータの比較による検査処理の他の実施例である。
図14の実施例は、1ケ所誤りデータ格納メモリ82に、検査データに一致する列ベクトルH1 〜HN のみを格納している。1ケ所誤りデータ格納メモリ82と比較部84の間には、α及びα2 を各々乗算するM個の2ビット乗算器を備えた乗算部96,98が設けられる。
【0092】
検査時にシンドロームSが零でなかった場合には、1ケ所誤りデータとしての列ベクトルH1 〜HN を1つずつシフトしながら、1倍、α倍、α2 倍した列ベクトルを並列的に作り出し、シンドロームSと比較する。このためN回の比較で誤り位置を検出できる。例えばt=2ビットの具体例の場合、図9で最大18回であったものが、最大6回に低減できる。
【0093】
尚、上記の実施例は、検査部22で誤り訂正を行って正しいデータを制御部14に引き渡しているが、他の実施例として、誤り訂正は行わずに検査部22から制御部14に受信データと誤り位置データを引き渡し、制御部14で訂正処理を行うようにしてもよい。
【0094】
【発明の効果】
以上説明してきたように本発明によれば、誤りを検査する回数が大幅に減らせるため処理速度が向上できる。また、誤りの検査の並列処理により更に処理速度を向上することができる。更に、1ケ所箇所の誤り検出の際の誤り訂正処理が簡単にできる。
【図面の簡単な説明】
【図1】本発明の実施例を示したブロック図
【図2】データ記憶体のメモリの実施例を示したブロック図
【図3】データ記憶体のメモリの他の実施例を示したブロック図
【図4】データ記憶体のメモリの他の実施例を示したブロック図
【図5】図2〜4のメモリ格納データとパラレル読出しの説明図
【図6】データ記憶体のメモリの他の実施例を示したブロック図
【図7】データ記憶体の擬似ランダム系列発生部の実施例ブロック図
【図8】読出器のデコード部の実施例ブロック図
【図9】読出器の検査部の実施例ブロック図
【図10】2ビット要素の加算マトリックスの説明図
【図11】図9の検査部におけるシンドロームの演算の詳細ブロック図
【図12】図9の1ケ所誤りデータ格納メモリの格納内容の説明図
【図13】図9の訂正部の詳細ブロック図
【図14】図9の検査部による並列検査処理の実施例ブロック図
【図15】従来装置のブロック図
【図16】従来の1ビット誤り検出訂正・2ビット誤り検出符号の説明図
【符号の説明】
10:読出器
12:データ記憶体
14,24:制御部
16:読出制御部
18,28:伝送部
20:デコード部
22:検査部
30:メモリ
32:エンコード部
34:擬似ランダム系列発生部
36:擬似ランダム信号発生部
40,40−1〜40−t:シリアルメモリ
42:tビットパラレル読出メモリ
44:メモリ制御部
45,48:シフトレジスタ
46:stビットパラレル読出メモリ
50−1〜50−4:M11,M10,M01,M00系列発生器
52−1〜52−4:AND回路
54:OR回路
56−1〜56−4:M11,M10,M01,M00相関演算器
58:A/D変換器
60:シフトレジスタ
62:積和演算器
64:基準系列レジスタ
66:比較器
68:ピーク値格納メモリ
70:データ復号器
72:受信データ格納メモリ
74:検査データ格納メモリ
76:乗算部
76−1〜76−M:tビット乗算器
78:加算部
78−1〜78−M:tビット加算器
80:シンドローム格納メモリ
82:1ケ所誤りデータ格納メモリ
82−1〜82−3:1ケ所誤りデータ
84:比較部
86:判断部
88:訂正部
90:誤り位置検出用シフトレジスタ
92,96,98:乗算部
94:加算部
Claims (2)
- 読出器によりデータ記憶体からデータを読み出す際の誤り訂正装置において、
前記データ記憶体に、
データを保持するメモリと、前記読出器から所定のコマンドを受信した際に、前記メモリから読み出したtビットのパラレルデータに対して予め定めた2t 種類の擬似ランダム信号の内の1つを出力する応答部と、
を設け、
前記読出器には、
前記データ記憶体の2t 種類の擬似ランダム信号と同一の信号を基準信号として保持し、受信信号との自己相関を求める相関演算部と、
該相関演算部で求めた2t 種類の擬似ランダム信号毎の自己相関により対応するtビットデータを出力する復号部と、
1要素がtビットで、M行N列にM×N個の検査要素Hij(但しi=1〜M,j=1〜N)を検査データとして格納した検査データ格納メモリと、
前記復号部から得られたN要素分のtビットデータと前記検査データ格納メモリの検査データHijとの演算によりシンドロームを求めて少なくとも誤りを検出する検査部と、
を備えたことを特徴とする誤り訂正装置。 - 請求項1記載の誤り訂正装置において、
前記読出器の検査部は、1要素がtビットでM要素からなるシンドロームの演算結果を格納するシンドローム格納メモリ、N要素のtビット受信データを記憶する受信データ格納メモリ、tビット乗算器、およびtビット加算器とから構成され、
前記tビット乗算器は、前記検査データ格納メモリに格納された列方向のM検査要素分の検査列データ(H1 〜HN )の各々と、前記行方向のN要素の各位置(1〜N)に対応する前記受信データ格納メモリのtビット受信データとのtビット乗算を行い、
前記加算器は、シンドローム格納メモリのM要素分の格納位置のtビットデータと前記乗算器の演算結果とのtビット加算を行い、該演算結果を同じ格納位置に格納することを特徴とする誤り訂正装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28946894A JP3571388B2 (ja) | 1994-11-24 | 1994-11-24 | 誤り訂正装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28946894A JP3571388B2 (ja) | 1994-11-24 | 1994-11-24 | 誤り訂正装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08147223A JPH08147223A (ja) | 1996-06-07 |
JP3571388B2 true JP3571388B2 (ja) | 2004-09-29 |
Family
ID=17743672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28946894A Expired - Fee Related JP3571388B2 (ja) | 1994-11-24 | 1994-11-24 | 誤り訂正装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3571388B2 (ja) |
-
1994
- 1994-11-24 JP JP28946894A patent/JP3571388B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08147223A (ja) | 1996-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0155038B1 (en) | Fast decoder for reed-solomon codes which can also be used as an encoder, and recording/playback apparatus comprising such an encoder/decoder | |
EP0158510B1 (en) | Error detection and correction in digital communication systems | |
US6453440B1 (en) | System and method for detecting double-bit errors and for correcting errors due to component failures | |
US5027357A (en) | ECC/CRC error detection and correction system | |
US5068855A (en) | Error correcting method and apparatus | |
US4358848A (en) | Dual function ECC system with block check byte | |
NL7909178A (nl) | Rekenmachine met verspreide redundantie welke is verdeeld over verschillende isolatiegebieden voor fouten. | |
US6219817B1 (en) | Error correction and detection for faults on time multiplexed data lines | |
US3831144A (en) | Multi-level error detection code | |
US5694330A (en) | Error correction method including erasure correction, and apparatus therefor | |
CN1559033A (zh) | 双重误差校验码系统 | |
JP2024029084A (ja) | グループ誤りを用いる誤り検出 | |
JPS6349245B2 (ja) | ||
US6393597B1 (en) | Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures | |
JPH0728227B2 (ja) | Bch符号の復号装置 | |
Karpovsky et al. | Design of self-diagnostic boards by multiple signature analysis | |
US7093183B2 (en) | Symbol level error correction codes which protect against memory chip and bus line failures | |
Wang et al. | Reliable and secure memories based on algebraic manipulation correction codes | |
US20140013181A1 (en) | Error Correction Coding Using Large Fields | |
US9191029B2 (en) | Additional error correction apparatus and method | |
JP3571388B2 (ja) | 誤り訂正装置 | |
US7546516B2 (en) | System and method for forward error correction | |
US7225386B2 (en) | High-efficiency error detection and/or correction code | |
JP3515616B2 (ja) | 誤り訂正装置 | |
US5459741A (en) | Error correction method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040506 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040624 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |