(57)【特許請求の範囲】
【請求項１】
複数のビット／バイトで構成される入力データに含まれるエラーの種別を判別する第１のエラー検出部と、
エラー種別が前記入力データに１ビット／バイトのエラーが含まれる１ビット／バイトエラーである場合に、その入力データの誤りを訂正する誤り訂正部と、
エラー種別が前記１ビット／バイトエラーか、又は入力データに２ビット／バイトのエラーが含まれる２ビット／バイトエラーである場合に、当該エラーが特定のビット／バイトに固定的に発生している固定エラーであるか否かを判定する固定エラー検出部と、
前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる場合に、前記固定エラーが発生しているビット／バイトの代わりとなる代替ビット／バイトを繰り返し発生するデータ発生部と、
前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる入力データについて、前記代替ビット／バイトで前記固定エラーが発生しているビット／バイトを置き換えて、前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返す第２のエラー検出部と、を有し、
前記誤り訂正部は、前記第２のエラー検出部で前記入力データが１ビット／バイトエラーとなったことを検出したら、当該入力データのエラー訂正を実行する、エラー訂正回路。
【請求項２】
前記入力データは、Ｎ（Ｎは自然数）ビット／バイトのエラー訂正能力と（Ｎ＋１）ビット／バイトのエラー検出能力を有するデータであり、前記エラー訂正回路は、前記固定エラーを含む（Ｎ＋１）ビット／バイトのエラーを訂正が可能である、請求項１記載のエラー訂正回路。
【請求項３】
前記入力データは、データ線からなる伝送路により伝送されるものであって、
前記固定エラー検出部は、ある特定のデータ線にエラーが発生していることを検出する、請求項１又は２のいずれか一項に記載のエラー訂正回路。
【請求項４】
前記入力データは、バイト単位のデータであって、パラレルデータがシリアル変換され伝送される、請求項１乃至３のいずれか１項記載のエラー訂正回路。
【請求項５】
前記固定エラー検出回路は、前記入力データに発生した誤りビット／バイトの履歴に基づき、前記固定エラーを検出する、請求項１乃至４のいずれか１項記載のエラー訂正回路。
【請求項６】
前記データ発生部及び第２のエラー検出部の組を複数有し、複数の前記第２のエラー検出部での前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返すデータ照合処理を並列に実行する、請求項１乃至５のいずれか１項記載のエラー訂正回路。
【請求項７】
複数のビット／バイトで構成される入力データに含まれるエラーの種別を判別する第１のエラー検出工程と、
エラー種別が前記入力データに１ビット／バイトのエラーが含まれる１ビット／バイトエラーか、又は入力データに２ビット／バイトのエラーが含まれる２ビット／バイトエラーである場合に、当該エラーが特定のビット／バイトに固定的に発生している固定エラーであるか否かを判定する固定エラー検出工程と、
前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる場合に、前記固定エラーが発生しているビット／バイトの代わりとなる代替ビット／バイトを繰り返し発生するデータ発生工程と、
前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる入力データについて、前記代替ビット／バイトで前記固定エラーが発生しているビット／バイトを置き換えて、前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返す第２のエラー検出工程と、
前記第２のエラー検出工程で前記入力データが１ビット／バイトエラーとなったことを検出したら、当該入力データのエラー訂正を実行する誤り訂正工程とを有する、エラー訂正方法。
【請求項８】
前記入力データは、Ｎ（Ｎは自然数）ビット／バイトのエラー訂正能力と（Ｎ＋１）ビット／バイトのエラー検出能力を有するデータであり、前記エラー訂正回路は、前記固定エラーを含む（Ｎ＋１）ビット／バイトのエラーを訂正が可能である、請求項７記載のエラー訂正方法。
【請求項９】
前記入力データは、データ線からなる伝送路により伝送されるものであって、
前記固定エラー検出工程では、ある特定のデータ線にエラーが発生していることを検出する、請求項７又は８のいずれか一項に記載のエラー訂正方法。
【請求項１０】
前記データ発生工程及び第２のエラー検出工程では、前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで、新たなデータを発生し誤り検出を繰り返すデータ照合処理を複数の回路で並列的に実行する、請求項７乃至９のいずれか１項記載のエラー訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送路等で発生したエラーを訂正するエラー訂正回路及びエラー訂正方法に関し、特に、固定的に発生するエラーを含むデータに対するエラー訂正回路及び方法に関する。
【背景技術】
【０００２】
データ伝送において、伝送中に発生したエラーを訂正するには、本来伝送するデータに加えて、エラー訂正に必要な情報として検査バイトを付加して伝送する。例えば、８ビットを１バイトとするデータ構成において、１バイトのエラーを訂正し、２バイトのエラーを検出するエラー訂正符号Ｓ８ＥＣ−Ｄ８ＥＤ（Single 8bit-byte Error Correcting - Double 8bit-byte Error Detecting）では、データ８バイトを伝送するために付加する検査バイトには３バイトが必要となり、結果、伝送する情報は、１１バイトとなる。２バイトエラーを訂正する場合、データ８バイトに対し、検査バイトは５バイトが必要となり、結果、伝送する情報は１３バイトになる。１バイトのエラー訂正の場合、データ伝送効率（伝送する情報の内、本来伝送すべきデータが占める割合）は７３％であるが、２バイトエラー訂正では６２％と悪化する。データの伝送効率が悪化すると、データ伝送のために必要となるＬＳＩのＩ／Ｏ部の面積、伝送媒体などのハードウエハ資源が多く必要となり、装置の原価を引き上げる方向に働く。エラー訂正能力をどこまで高めるかは、データ伝送品質と装置原価のトレードオフとなり、データ伝送品質を高め、かつ、原価を抑えるという課題がある。
【０００３】
特許文献１では、固定的に発生している１ビットエラーと間欠的に発生したほかのビットのエラーの合計２ビットエラーを訂正する回路について記載されている。すなわち、１ビット誤りを検出する１ビット誤り検出回路からの指示によりシンドロームを記憶する１ビット誤りシンドローム記憶回路を設け、２ビット誤り検出回路が２ビット誤りを検出したときに、ＸＯＲ回路によりソフトエラーによる１ビット誤りシンドロームを生成し、選択回路を介してそのシンドロームをデコード回路がソフトエラーによる誤りを訂正する信号を生成する。同時に、１ビット誤りシンドローム記憶回路が記憶しているシンドロームを、固定故障による１ビット誤り時のシンドロームと考えて、デコード回路が、固定故障による誤りを訂正する信号を生成し、訂正回路がデコード回路の指示により２ビット誤りを訂正する。
【０００４】
また、特許文献２には、ビット線の固着不良に起因する１ビットのビット誤りを含む２ビットの誤りを訂正する装置が記載されている。特許文献２においては、固着不良が生じているビットをインバータにより反転することで、誤り訂正している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５‐１９７５８０号公報
【特許文献２】特開２００９‐２９５２５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法は、固定的にエラーが発生しているビットを補間する方法は、シンドロームを計算しておこなっており、この方法では、バイトエラー訂正に応用することは困難である。すなわち、従来のエラー訂正回路では、例えば、１バイトエラー訂正／２バイトエラー検出回路とした場合、２バイトエラーの訂正は不可能であった。
【０００７】
また、特許文献２に記載の技術は、固着不良が生じているビット線を予め調査し、それを反転する。これをバイトデータに拡張した場合を考えると、１バイトデータの全ビット又は固定ビットを常に反転することになる。しがしながら、伝送路によっては、固定的にエラーは生じるものの、どのビットでエラーが生じているかわからない、といった状況があり、単に固定エラーが生じているデータ（全ビット又は固定ビット）を反転してもエラー訂正できないという問題点がある。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、固定的に生じているエラーを含む場合は、訂正能力を超えて訂正を行うことができるエラー訂正回路及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るエラー訂正回路は、複数のビット／バイトで構成される入力データに含まれるエラーの種別を判別する第１のエラー検出部と、エラー種別が前記入力データに１ビット／バイトのエラーが含まれる１ビット／バイトエラーである場合に、その入力データの誤りを訂正する誤り訂正部と、エラー種別が前記１ビット／バイトエラーか、又は入力データに２ビット／バイトのエラーが含まれる２ビット／バイトエラーである場合に、当該エラーが特定のビット／バイトに固定的に発生している固定エラーであるか否かを判定する固定エラー検出部と、前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる場合に、前記固定エラーが発生しているビット／バイトの代わりとなる代替ビット／バイトを繰り返し発生するデータ発生部と、前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる入力データについて、前記代替ビット／バイトで前記固定エラーが発生しているビット／バイトを置き換えて、前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返す第２のエラー検出部と、を有し、前記誤り訂正部は、前記第２のエラー検出部で前記入力データが１ビット／バイトエラーとなったことを検出したら、当該入力データのエラー訂正を実行するものである。
【００１０】
本発明に係るエラー訂正方法は、複数のビット／バイトで構成される入力データに含まれるエラーの種別を判別する第１のエラー検出工程と、エラー種別が前記入力データに１ビット／バイトのエラーが含まれる１ビット／バイトエラーか、又は入力データに２ビット／バイトのエラーが含まれる２ビット／バイトエラーである場合に、当該エラーが特定のビット／バイトに固定的に発生している固定エラーであるか否かを判定する固定エラー検出工程と、前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる場合に、前記固定エラーが発生しているビット／バイトの代わりとなる代替ビット／バイトを繰り返し発生するデータ発生工程と、前記２ビット／バイトエラーが発生し、かつ当該エラーに前記固定エラーが含まれる入力データについて、前記代替ビット／バイトで前記固定エラーが発生しているビット／バイトを置き換えて、前記２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返す第２のエラー検出工程と、前記第２のエラー検出部で前記入力データが１ビット／バイトエラーとなったことを検出したら、当該入力データのエラー訂正を実行する誤り訂正工程とを有するものである。
【発明の効果】
【００１１】
本発明によれば、固定的に生じているエラーを含む場合は、訂正能力を超えて訂正を行うことができるエラー訂正回路及び方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１にかかるエラー訂正回路１７を示す図である。
【図２】本発明の実施の形態１にかかる伝送モデルを示す図である。
【図３】本発明の実施の形態１にかかるエラー訂正方法を示すフローチャートである。
【図４】本発明の他の実施の形態にかかる誤り訂正回路を示す図である。
【図５】本発明の他の実施の形態にかかる光伝送モデルを示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、１バイトのエラー訂正能力を有する入力データについて、あるデータ線で固定的に発生しているエラーと、それとは別のデータ線で間欠的に発生しているエラーの合計２バイトのエラーを訂正することができる誤り訂正回路に適用したものである。
【００１４】
本発明の実施の形態１．
図１は、本発明の実施の形態にかかるエラー訂正回路１７を示す図である。本実施の形態にかかるエラー訂正回路１７は、第１のエラー検出回路１、固定エラー検出回路２、第２のエラー検出回路３、データ発生回路４、エラー訂正回路５を有する。
【００１５】
第１のエラー検出回路１は、複数のビット／バイトで構成される入力データに含まれるエラーの種別を判別する。エラー訂正回路５は、エラー種別が入力データに１ビット／バイトのエラーが含まれる１ビット／バイトエラーである場合に、その入力データの誤りを訂正する。固定エラー検出回路２は、エラー種別が１ビット／バイトエラーか、又は入力データに２ビット／バイトのエラーが含まれる２ビット／バイトエラーである場合に、当該エラーが特定のビット／バイトに固定的に発生している固定エラーであるか否かを判定する。データ発生回路４は、２ビット／バイトエラーが発生し、かつ当該エラーに固定エラーが含まれる場合に、固定エラーが発生しているビット／バイトの代わりとなる代替ビット／バイトを繰り返し発生する。第２のエラー検出回路３は、２ビット／バイトエラーが発生し、かつ当該エラーに固定エラーが含まれる入力データについて、代替ビット／バイトで固定エラーが発生しているビット／バイトを置き換えて、２ビット／バイトエラーが１ビット／バイトエラーとなるまで誤り検出を繰り返す。ここで、エラー訂正回路５は、第２のエラー検出回路３で入力データが１ビット／バイトエラーとなったことを検出したら、当該入力データのエラー訂正を実行する。なお、以下の説明では、入力データは、複数のバイトからなる伝送データとして説明する。
【００１６】
次に、本実施の形態において、前提となる伝送モデルについて説明する。図２は、本実施の形態にかかる伝送モデルを示す図である。伝送するデータの構成は、８ビットを１バイトとし、＃００から＃０７の８バイトとする。これら８バイトのデータは、エラー訂正符号発生回路（Error Correction code Generation circuit：ＥＣＧ）１１に入力され、エラー訂正符号を付加する。エラー訂正のために付加される検査バイトは３バイトとする。ＥＣＧ１１からは、データ＃００−＃０７に加え、検査バイト＃０８−＃１０が出力される。ＥＣＧ１１から出力された１１バイトのデータは、符号化回路１２にてシリアル伝送に適した符号化が施される。ここでは、８Ｂ１０Ｂ符号を付加し、８ビットのデータを１０ビットに拡張している。符号化回路１２の出力は、各バイト毎にシリアル化回路１３に入力されてシリアル化される。シリアル化されたデータは伝送路１４上を伝送され、パラレル化回路１５に入力される。パラレル化回路１５では、入力されたシリアルデータをシリアル化回路１３の入力と同一となる１０ビットのパラレルデータに変換する。パラレル化回路１５から出力された１０ビットのデータは、復号回路１６にて８ビットのデータに復号される。復号回路１６から出力された１１バイトのデータは、本実施の形態にかかるエラー訂正回路１７に入力され、エラー訂正がおこなわれ、データ８バイトを出力する。
【００１７】
ここで、本実施の形態にかかるエラー訂正回路１７は、１バイトのエラー訂正と、１バイトの固定エラーの訂正を行う。この固定エラーとは、例えば、図２においては、データ＃００から＃０７の伝送路１４のうち、いずれか特定の伝送路において、固定的に生じるエラーを示す。例えば、＃０２のデータを伝送する伝送路１４で固定エラーが生じる場合、＃０２の１バイトのデータは、固定的にエラーは生じるが、伝送路１４の伝送状態に応じていずれのビットにエラーが生じるかはわからない。そこで、データ発生回路４が、＃０２の正しいデータを発生するため、例えば０から順に、最高２５６通りのデータを生成するのである。
【００１８】
次に、本実施の形態のエラー訂正回路１７にかかる各ブロックについて詳細に説明する。伝送路１４を経た伝送データは、第１のエラー検出回路１、第２のエラー検出回路３、エラー訂正回路５に入力される。
【００１９】
第１のエラー検出回路１は、伝送されたデータに含まれるエラーの種別を判定し、後段の固定エラー検出回路２、データ発生回路４、エラー訂正回路５へ、その情報を伝達する。エラーの種別は、エラー無し、１バイトエラー、２バイトエラーの３種類である。なお、３バイト以上のエラーについては、どのエラー種類に区分されるかはエラー訂正方式に依存し、特に限定されない。
【００２０】
固定エラー検出回路２は、第１のエラー検出回路１からの１バイトエラーの発生情報を受け、エラーしたデータ線が固定的にエラーしているかどうかを判定する。第１のエラー検出回路１は、１バイトエラーは発生している場合、その１バイトエラーがどのデータ線で発生しているかも判断することができる。よって、固定的にエラーは発生しているか否かは、同一のデータ線で、一定以上の頻度でエラーが発生していた場合等に固定エラーと判定すればよい。固定エラーと判定された場合、そのデータ線のアドレスを記憶する。そして、固定エラーしているデータ線のアドレス情報をデータ発生回路４へ提供する。
【００２１】
２バイトエラーが発生した場合、第１のエラー検出回路１は、いずれのデータ線でエラーが発生しているかを判断することはできない。したがって、２バイトエラーが発生していることが判明した場合は、先ず、固定エラーのアドレスが記憶されているかチェックし、記憶されている場合は、２バイトエラーでかつ、固定エラーが含まれていると判定し、その旨、及び固定エラーしているデータ線のアドレス情報をデータ発生回路４へ提供する。一方、固定エラーのアドレスが記憶されていない場合、固定エラーが発生していない、任意の２バイトエラーが発生していると判定し、その旨エラー訂正回路５に通知する。任意の２バイトエラーは訂正することができない。
【００２２】
データ発生回路４は、第２のエラー検出回路３と共に、２バイトエラーでかつ、そのうち１バイトが固定エラーである場合にのみ動作する。第１のエラー検出回路１からの固定エラーの発生情報を受け、固定的にエラーが発生しているデータ線の１バイト分のデータを擬似的に発生する。発生したデータは、第２のエラー検出回路３へ提供される。このデータ発生回路４は、第２のエラー検出回路３からの要求により、異なるデータを順次発生し、第２のエラー検出回路３へ発生したデータを提供する。
【００２３】
第２のエラー検出回路３は、固定エラーを含む２バイトエラーを有する入力データ（本実施の形態においては、１１バイト）とデータ発生回路４で発生したデータ（１バイト）を入力情報とする。入力された１１バイトのデータのうち、固定的にエラーが発生しているデータ線のデータ（１バイト）は、データ発生回路４が発生した代替データ（１バイト）で置き換え、新たな１１バイトのデータを生成する。この生成した１１バイトのデータが１バイトエラーになるかどうかを、ここで判定する。生成したデータが１バイトエラーにならなければ、固定的にエラーが発生しているデータ線のデータを補間するための新たなデータを再度データ発生回路４へ要求する。２バイトエラーが１バイトエラーとなるまで、これを繰り返す。
【００２４】
エラー訂正回路５は、第１のエラー検出回路１で判定したエラーの種別で、入力するデータを切り替える。エラーなし、及び１バイトエラーの場合は、データ入力から入力された入力データを使用し、エラー訂正を実施する。２バイトエラーの場合であって、固定エラーが含まれる場合は、第２のエラー検出回路３からのデータを使用する。２バイトエラーではあるけれども、第２のエラー検出回路３から入力されるデータは、１バイトエラーに変更されたデータであるので、エラー訂正回路５は、通常通り１バイトエラー訂正を行いエラー訂正されたデータを出力する。そして、任意の２バイトエラーを含む入力データである旨の通知を第１のエラー検出回路１から受け取った場合は、データ入力からの入力データをそのまま出力し、同時にエラー訂正不能である旨も出力する。
【００２５】
次に、図１に示した本実施の形態にかかるエラー訂正回路１７の動作について説明する。図３は、本発明の実施の形態にかかるエラー訂正方法を示すフローチャートである。本実施の形態にかかるエラー訂正回路１７に入力されるデータは、データ８バイトと検査バイト３バイトの合計１１バイトである。この１１バイトのデータは、第１のエラー検出回路１に入力され、ここでエラーの種別を判定する（ステップＳ１）。エラーの種別は、エラーなし、１バイトエラー、２バイトエラーの３種類である。
【００２６】
エラーなしの場合、第１のエラー検出回路１からエラー訂正回路５へ信号を送り、第１のエラー訂正回路５は、これを受け取ると、入力データの内のデータの８バイトを出力する。入力されたデータにエラーはないので、エラー訂正回路５は、入力されたデータをそのまま出力する。
【００２７】
次に、第１のエラー検出回路１で１バイトエラーが検出された場合、該当のデータ線に対してエラーが固定的に発生しているかどうかを固定エラー検出回路２で判断する（ステップＳ２）。例えば、各データ線のエラー頻度を記憶し、頻度が設定した閾値より高ければ、固定エラーと判断する。固定エラーと判断した場合、固定エラー検出回路２は、そのデータ線のアドレスを記憶する（ステップＳ３）。なお、ステップＳ２で、すでに固定エラーを発生するアドレスが記憶されている場合は、固定エラーと判定し、ステップＳ３は、飛ばしてステップＳ４に進む。
【００２８】
第１のエラー検出回路１で１バイトエラーが検出された入力データは、固定エラーであろうがなかろうが、１バイトエラーが生じている旨の信号がエラー訂正回路５へ送られ、エラー訂正回路５は、入力されたデータに対して、１バイトのエラー訂正を行い、エラーを訂正した正しいデータを出力する（ステップＳ４）。
【００２９】
次に、第１のエラー検出回路１で２バイトエラーが検出された場合、固定エラーが発生しているか否かを、固定エラー検出回路２に固定エラーのアドレスが記憶されているか否かで判断する（ステップＳ５）。固定エラーのアドレスが記憶されてなければ、任意の２バイトでのエラーと判断し、エラー訂正回路５へそれを知らせる信号を送り、エラー訂正回路５は、入力されたデータをそのまま出力し、同時にエラー情報として２バイトエラー（訂正不可能エラー）が発生したことを後段の回路に知らせる。
【００３０】
一方、第１のエラー検出回路１で２バイトエラーが検出され、かつ、そのうち１バイトのエラーが固定エラーである場合（ステップＳ５：あり）、すなわち、固定エラー検出回路２に固定エラーのアドレスが記憶されている場合、固定エラーが発生しているアドレスのデータ線のデータを、データ発生回路４が発生した代替データで置き換える。置き換える代替データをデータ発生回路４で発生し、固定エラーが発生しているアドレスのデータを代替データで置き換え、新たな１１バイトのデータを生成する。
【００３１】
例えば、バイト＃０３のデータで固定的にエラーが発生しているのなら、バイト＃０３のデータをデータ発生回路４で発生した８ビットのデータと置き換え、新たな１１バイトのデータを生成する。この新しく生成された１１バイトのデータに対して、第２のエラー検出回路３においてエラー検出をおこなう。もし、データ発生回路４で発生したデータが、伝送すべき真の値であれば、入力したデータの２バイトエラーは、１バイトエラーに変化する。すなわち、２バイトエラーを１バイトエラーにすることができたことになる。
【００３２】
本実施の形態においては、誤り訂正対象のデータは、８バイトであるので、ｎ＝１〜２８（＝２５６）とし、ｎ＝１（回）から１ずつインクリメントしながら（ステップＳ６：ｎ＝１，２８，１）データがｎ＝２５６（回）（ステップＳ９：ｎ＝２８）になるまでデータ（データ＝０〜２５５）を発生すればよい。データ発生回路４で発生した代替データで固定エラーを置き換えた新しく生成された１１バイトのデータで、第２のエラー検出回路３で再び２バイトエラーが検出された場合、データ発生回路４で発生したデータは、伝送すべき真の値ではないことがわかる。この場合は、データ発生回路４に対して新たなデータの発生を要求する。データ発生回路４では、新たな８ビットのデータを発生し、第２のエラー検出回路３に入力する。第２のエラー検出回路２においては、この新たな代替データでエラーが発生しているデータ線のアドレスのデータを置き換え、再度新たな１１バイトのデータを生成する。そして、当該新たな１１バイトのデータが１バイトエラーになったかどうかを判定する。１バイト固定エラーが訂正され、２バイトエラーが１バイトエラーに変更されたら（ステップＳ８）、その新たに生成された入力データをデータ訂正回路５に送る。データ訂正回路５は、１バイトとなったエラーの訂正を実施し（ステップＳ４）、訂正した８バイトのデータを出力する。
【００３３】
このように、２バイトエラーに、特定のデータ線で固定的にエラーが発生している固定エラーが含まれる場合は、この固定エラーは、データ発生回路４に生成した代替データにより訂正することができる。つまり、データ発生回路４において、１バイトが取り得る全データを発生させれば、何れかの値が伝送すべき真のデータに合致する。本例の場合は、１バイト８ビットなので、０から順に２５５までの値を発生させればよい。真のデータを発生させれば、固定的にエラーが発生しているデータ線のアドレスのデータを当該真のデータと置き換えた新しく生成した１１バイトのデータは、当然ながら固定エラーが訂正されるので、２バイトエラーから１バイトエラーに変化する。
【００３４】
なお、データ発生回路４で取り得る全データ（２５６種類）を発生させても、第２のエラー検出回路３で１バイトエラーが検出できない場合がありえる。すなわち、固定エラーが発生しているデータ線のデータが、偶然伝送すべき真のデータであり、他の２本のデータ線でエラーが発生した２バイトエラーか、又は３バイト以上のエラーが発生している場合である。この場合は、エラー訂正能力を超えるエラーが発生したことになり、エラー訂正回路５から訂正が不可能なエラーが発生したことをエラー情報として出力する。
【００３５】
以上説明した本実施の形態においては、以下に記載する効果を奏する。先ず、固定的にエラーが発生しているデータ線を検出し、そのデータを、取り得る全てのデータ種と置き換えることでエラーを訂正する。したがって、あるデータ線が固定的にエラーしている時に、固定的にエラーが発生しているデータ線とは別のデータ線で間欠的にエラーが発生した場合の合計２バイトのエラーを、上記の方法で固定エラーの訂正をして、間欠的に発生したエラーのみの１バイトエラーにすることができる。これにより、１バイトエラー訂正回路５で、あるデータ線が固定的にエラーしている時に、固定的にエラーが発生しているデータ線とは別のデータ線で間欠的にエラーが発生した場合の合計２バイトのエラーを訂正することができる。
【００３６】
本実施の形態においては、１バイトエラー訂正回路５を用いているので、検査バイトを２バイトエラー訂正回路に必要な分だけ増やすことなく、すなわち、検査バイトの伝送のために必要となるＬＳＩのＩ／Ｏ部の面積、伝送媒体等のハードウエハ資源を増やすことなく、固定エラーと、通常のエラーの２バイトエラーを、１バイトエラー訂正回路５により訂正することができる。
【００３７】
その他の実施の形態．
次に、本発明の他の実施の形態について説明する。図４は、本発明の他の実施の形態にかかる誤り訂正回路を示す図である。上述の実施の形態においては、例えば、１バイトが８ビットの場合、データ発生回路４で発生するデータの種類は、最大２５６種類になる。２５６種類のデータを発生させ、１バイトエラーになるかどうかを照合するには、時間を要する。そこで、照合時間を短縮するために、図４のように、図１におけるデータ発生回路４及び第２のエラー検出回路３の組を複数組（第１のデータ発生回路４１及び第２のエラー検出回路３１乃至第１のデータ発生回路４ｎ及び第２のエラー検出回路３ｎ）用意し、データ発生及び照合を並列処理する。このことにより、処理時間を短縮することができる。
【００３８】
また、上述の実施の形態においては、８ビットを１バイトとした１バイトエラー訂正／２バイトエラー検出のエラー訂正回路１７の例について説明したが、１バイトの構成は８ビットに限らず、例えば２ビットでも４ビットでもよく、本発明は、１バイトのビット構成には依存しない。
【００３９】
また、エラー訂正方式も１バイトエラー訂正／２バイトエラー検出以外のエラー訂正方式においても有効であることは明らかである。例えば、２バイトエラー訂正／３バイトエラー検出であれば、２バイトのエラー訂正符号で、固定エラーを含む３バイトのエラーを訂正することができる。
【００４０】
さらに、上記実施の形態においては、バイトエラー訂正について説明したが、ビットエラー訂正のエラー訂正回路とすることもできる。この場合、固定的に発生している１ビットエラーを検出し、そのデータを０又は１で置き換えて、２ビットエラーを１ビットエラーになるようにすればよい。
【００４１】
さらにまた、上述の実施の形態においては、データ伝送について説明したが、本発明は、記憶装置のエラー訂正においても有効である。その場合、エラー訂正符号発生回路で、データ８バイトに対し、例えば１バイトエラー訂正／２バイトエラー検出符号を３バイトを付加した１１バイトデータを生成し、メモリに書き込む。そして、メモリからエラー訂正符号が付加された１１バイトデータを読み出したとき、この読み出した１１バイトデータにおいて、固定的に１バイトのエラーが発生していれば、他に間欠的に発生したエラーが１バイトあっても、すなわち、合計２バイトのエラーがあっても固定エラーが含まれていれば１バイトのエラー訂正符号で、２バイトエラーを訂正することができる。
【００４２】
また、伝送モデルの他の例として、光伝送がある。図５は、光伝送モデルを示す図である。図５に示すように、図２の伝送路の送端側に電気／光変換回路（Ｅ／Ｏ（Electric/Optical）変換回路）１９を付加し、伝送信号を光信号に変換する。光信号は、光ファイバを経由して受端側に伝送される。受端側では、光／電気変換回路（Ｏ／Ｅ変換回路）２０にて光信号を電気信号に変換する。電気／光変換回路１９及び光／電気変換回路２０は、一般にＤＣ信号を伝送することができないため、電気信号の入力部及び出力部には、ＡＣ結合用のコンデンサ１８が挿入される。
【００４３】
ここで、例えば、電気／光変換回路１９が故障し、発光しなくなった場合、光／電気変換回路２０は、データ出力をシャットダウンし、固定レベルの信号を出力するのが一般である。光／電気変換回路２０から出力された固定レベルのデータは、ＤＣ信号であるため、ＡＣ結合用コンデンサ１８を通ることができず、パラレル化回路１５へは不定値が入力される。このように、電気／光変換回路１９が故障し、発光しなくなった場合は、そのデータ線は固定エラーになるが、不定値となるため、上述のように、取り得るデータを全て発生させることにより、真のデータを生成することができる。なお、特定の伝送路１４で固定エラーが発生する場合、シリアル回路１３、ＡＣ結合コンデンサ１８、Ｏ／Ｅ変換回路２０、及びパラレル変換回路１５のうちいずれか１以上に故障が生じた場合も、固定エラーが生じうる。
【００４４】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００４５】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００４６】
１  第１のエラー検出回路
２  固定エラー検出回路
３  第２のエラー検出回路
４  データ発生回路
５  エラー訂正回路
１１  エラー訂正符号発生回路
１２  符号化回路
１３  シリアル化回路
１４  伝送路
１５  パラレル化回路
１６  復号回路
１７  エラー訂正回路
【図１】
0005621554.tif 000002
【図２】
0005621554.tif 000003
【図３】
0005621554.tif 000004
【図４】
0005621554.tif 000005
【図５】
0005621554.tif 000006