(57)【要約】【課題】３ビットエラー訂正可能なＥＣＣシステムを搭載した半導体記憶装置を提供する。【解決手段】ＢＣＨコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、前記エラー検出訂正システムは、３ビットエラーを検出訂正可能な３ＥＣシステムを有し、前記３ＥＣシステムは、３次のエラー位置探索方程式を２以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める。【選択図】図１
2008052866.tif 000002
【特許請求の範囲】
【請求項１】
ＢＣＨコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、
前記エラー検出訂正システムは、３ビットエラーを検出訂正可能な３ＥＣシステムを有し、
前記３ＥＣシステムは、３次のエラー位置探索方程式を２以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める
ことを特徴とする半導体記憶装置。
【請求項２】
前記エラー検出訂正システムは、２ビットエラーを検出訂正可能な２ＥＣシステムを含み、
前記２ＥＣシステムは、２次のエラー位置探索方程式を１パラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求めるものであり、かつ、
エラー数状況に応じて前記３ＥＣシステムと２ＥＣシステムの解の結果が切り換えられる
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記３ＥＣシステムと２ＥＣシステムを通して、解の候補のインデックスとシンドロームのインデックスとの間の合同式計算によりエラー位置対応インデックスを求める際に、２ｎ−１を法とする合同式を、互いに素である２ｎ−１の２因数をそれぞれ法とする二つの合同式に分けて、これら二つの合同式を並列に計算する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
２ｎ−１＝２５５を法とする合同式を、互いに素である１７と１５をそれぞれ法とする二つの合同式に分けて、これら二つの合同式を並列に計算する
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
前記３次のエラー位置探索方程式を、ΛＲ（ｘ）＝（ｘ−Ｘ１）（ｘ−Ｘ２）（ｘ−Ｘ３）＝ｘ３＋Ｓ１ｘ２＋Ｄｘ＋Ｔ＝０（但し、Ｓ１は読み出しデータ多項式を基本既約多項式で割って得られるシンドロームであり、Ｄ＝Ｘ１Ｘ２＋Ｘ２Ｘ３＋Ｘ３Ｘ１、Ｔ＝Ｘ１Ｘ２Ｘ３）として、これをｘ＝ａｚ＋ｂなる変数変換により、未知数のみの部分ｚ３＋ｚとシンドロームにより計算される部分Ｔ／ａ３とに分離されたｚ３＋ｚ＝Ｔ／ａ３に変換してインデックス計算に供する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項６】
前記２次のエラー位置探索方程式を、ΛＲ（ｘ）＝（ｘ−Ｘ１）（ｘ−Ｘ２）＝ｘ２＋Ｓ１ｘ＋Ｘ１Ｘ２＝０（但し、Ｘ１Ｘ２＝Ｓ１２＋Ｓ３／Ｓ１であり，Ｓ１とＳ３は読み出しデータ多項式を二つの基本既約多項式で割って得られるシンドローム）として、これをｘ＝Ｓ１ｙなる変数変換により、未知数のみの部分ｙ２＋ｙ＋１とシンドロームにより計算される部分Ａ（＝Ｓ３／Ｓ１３）とに分離されたｙ２＋ｙ＋１＝Ａに変換してインデックス計算に供する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項７】
シンドロームがオール“０”ではなくかつ、２ＥＣシステム、３ＥＣシステムいずれでもエラー位置が求まらない場合に、エラーが４以上であることを示す警告信号を発生する警告信号発生回路を有する
ことを特徴とする請求項２記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体記憶装置に係り、特にそのエラー検出訂正システムに関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリであるフラッシュメモリは、書き換え回数の増加と共にエラー率が大きくなる。特に、大容量化と製造プロセスの微細化が進むと、エラー率は上昇する。このためフラッシュメモリにＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）システムを搭載することは重要な技術となる。
【０００３】
フラッシュメモリチップ内に、或いはこれを制御するメモリコントローラ内にＥＣＣ回路を搭載することは、従来より提案されている（例えば、特許文献１参照）。
【０００４】
有限体ＧＦ（２ｎ）を利用するＢＣＨ−ＥＣＣシステムで２ビット以上のエラー訂正を行う場合、エラー位置探索方程式の解を求めるのに有限体の要素を逐次代入して方程式を満足させる要素を解として選択してエラー位置探索を行うと、演算時間は膨大になり、オンチップとした場合にもメモリの読み出しや書き込み性能を大幅に低下させる。
【０００５】
そこで、その様な逐次検索を行わず、従ってフラッシュメモリの性能を犠牲にしないような高速のＥＣＣシステムが望まれる。
【特許文献１】特開２０００−１７３２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、３ビットエラー訂正可能なＥＣＣシステムを搭載した半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一態様による半導体記憶装置は、ＢＣＨコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、
前記エラー検出訂正システムは、３ビットエラーを検出訂正可能な３ＥＣシステムを有し、
前記３ＥＣシステムは、３次のエラー位置探索方程式を２以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める。
【発明の効果】
【０００８】
この発明によると、３ビットエラー訂正可能なＥＣＣシステムを搭載した半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【０００９】
本発明者は、従来のような有限体要素の逐次代入によりエラー位置探索方程式を満たす要素を求める方法に代わって、２ビットエラー訂正を高速演算で実現する手法を先に提案している。
【００１０】
即ち、ＧＦ（２５６）のＢＣＨコードを利用して高速にエラー位置検索を行なうために、予め解の候補のテーブルを作成しておき、これとメモリの読み出しデータから計算されたシンドロームのインデックスを比較して解を求める。具体的には、読み出しデータから計算されたシンドロームを含むエラー位置検索方程式を解くことになるが、そのエラー位置検索方程式を、変数変換によって未知数のみの部分（以下、変数部分という）とシンドロームにより計算される部分（以下、シンドローム部分という）に分けてそれらのインデックス関係だけでエラー位置を求められるようにする。即ち、シンドローム部分と変数部分のインデックスとを比較して、一致する変数がエラー位置対応インデックスであることから、エラー位置を求める。
【００１１】
更に、エラー位置検索に必要な計算は、インデックス間の合同式からインデックスを確定することである。その際、２５５を法とする合同式を、１７と１５を法とする二つの合同式に分離し、これらの合同式を満たす数は元の合同式を満たすという性質を利用する。これにより、回路規模と演算時間を縮小したエラー位置検索ができる。
【００１２】
この発明は、上述の２ビットエラー検出訂正システム（２ＥＣシステム）の手法を拡張して、オンチップメモリ用の高速３ビットエラー検出訂正システム（３ＥＣシステム）を提案するものである。
【００１３】
３ＥＣ−ＢＣＨでは未知数とシンドロームが混在した３次の多項式が解を求める方程式となるが、これは２パラメータを導入した線形変換で変数部分とシンドローム部分の分離が行なえること、更に解とテーブルの比較をＢＣＨコードの有限体の要素を“表現インデックス”というindexを導入することで短い計算の並列演算として高速に行なうことが出来ることが、本発明者の検討により明らかになった。
【００１４】
その様な、ＢＣＨコードを用いて３ビットまでのエラー訂正（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）と４ビット以上のエラーに対する警告（Ｅｒｒｏｒ  Ｗａｒｎｉｎｇ）とを行うことができる“３ＥＣ−ＥＷ”システムを、フラッシュメモリにオンチップで搭載することによって、メモリ外部からはメモリの性能を落とさずにデータ保持の信頼性を向上させたフラッシュメモリを得ることができる。
【００１５】
［３ＥＣ−ＥＷシステムの概要］
ＧＦ（２ｎ）のＢＣＨコードを利用して３ビットエラー訂正を行なうために、エラービット位置を示す未知数変数とエラーを含むデータから計算されたシンドロームを含むエラー位置検索方程式は、２つ以上のパラメータを導入して変数変換を行い、変数部分とシンドローム部分とに変換する。
【００１６】
３ＥＣ−ＥＷシステムは具体的には、２ビット以下のエラー訂正可能な２ＥＣシステムと３ビットエラー訂正可能な３ＥＣシステムとを含む。２ＥＣシステムのエラー位置検索方程式は１パラメータを含む変数変換によって、３ＥＣシステムのエラー位置検索方程式は２パラメータを含む変数変換によって、それぞれ変数部分とシンドローム部分に分離されて、エラー数の状況に応じてエラー位置検索方程式の解の結果を切り替えるようにする。
【００１７】
有限体ＧＦ（２ｎ）の要素を利用するＥＣＣシステムにおいて、各要素を基本既約多項式の根の指数（インデックス）によって指定するとき、このインデックスを互いに素である２ｎ−１の２因数に分解し、各々の数をインデックスにかけた数の互いに因数を法とする剰余系の組を“表現インデックス”として用い、要素間の演算をこの表現インデックス間の対応関係として行なう。
【００１８】
上記要素間の演算は、要素の積に対しては各表現インデックスの要素間の和を対応する法の剰余系として表したものが対応し、要素の和は表現インデックスから基本既約多項式の剰余多項式の係数を求め係数間のパリティチェックを用いて行なう。
【００１９】
（データのエンコーディング）
ガロア体ＧＦ（２８）上の３ＥＣ−ＥＷについてまず、データのエンコーディングを説明する。ＧＦ（２）上の基本既約多項式をｍ１（ｘ）としてこの根をαとする。有限体としてＧＦ（２８）を考えるので、これは数１に示すような８次の多項式となる。３ビットエラー訂正のためには、数１に示すように、更に二つのα３及びα５を根とする既約多項式ｍ３（ｘ）及びｍ５（ｘ）を選択する。
【００２０】
【数１】
2008052866.tif 000003
【００２１】
これらの３つの既約多項式をもとに、３ビットエラー訂正可能なＥＣＣが構成される。書き込むべきデータに検査ビット（チェックビット）を付加してエンコードするには、コード生成多項式として、数２のようなｍ１（ｘ），ｍ３（ｘ）及びｍ５（ｘ）の積である２４次のコード生成多項式ｇ（ｘ）を作る。
【００２２】
【数２】
2008052866.tif 000004
【００２３】
３ビットエラー訂正が可能な情報ビットとして利用できる最大ビット数は、２８−１＝２５５からチェックビット数２４を引いた２３１ビットである。これらを、ビット位置２４から２５４の係数をａ２４〜ａ２５４として、数３のような情報多項式ｆ（ｘ）を作る。
【００２４】
【数３】
2008052866.tif 000005
【００２５】
データビットのうちの情報ビットを係数ａ２４〜ａ２５４に割り当てて２４次から始まる情報多項式ｆ（ｘ）をコード生成多項式ｇ（ｘ）で割って剰余を求め、数４の剰余多項式ｒ（ｘ）を求める。
【００２６】
【数４】
2008052866.tif 000006
【００２７】
この剰余多項式ｒ（ｘ）の係数ｂ２３〜ｂ０の２４ビットを“チェックビット”とし、これを情報多項式ｆ（ｘ）のビット位置２４からの係数ａ２５４〜ａ２４からなる“情報ビット”と共にメモリに記憶させる。即ちメモリに記憶させるデータビットは、数５のようになる。
【００２８】
【数５】
2008052866.tif 000007
【００２９】
（データのデコーディング）
２５４次の多項式の係数を情報ビットとしてメモリに記憶させてエラーが生じたとすれば、そのエラーも２５４次の多項式で表される。このエラー多項式をｅ（ｘ）とすれば、メモリから読み出したデータは、数６のような構造の多項式ν（ｘ）となる。
【００３０】
【数６】
2008052866.tif 000008
【００３１】
この数６のエラー多項式ｅ（ｘ）の係数が１の項がエラーとなる。
【００３２】
読み出しデータのデコードのための第１段階として、ν（ｘ）を原始多項式ｍ１（ｘ），ｍ３（ｘ），ｍ５（ｘ）で割って各々の剰余Ｓ１（ｘ），Ｓ３（ｘ），Ｓ５（ｘ）を求める。
【００３３】
数７に示すように、これはｅ（ｘ）をｍ１（ｘ），ｍ３（ｘ），ｍ５（ｘ）で割った剰余ともなっている。
【００３４】
【数７】
2008052866.tif 000009
【００３５】
これら数７の剰余Ｓ１（ｘ），Ｓ３（ｘ），Ｓ５（ｘ）をシンドローム（syndrome）多項式という。
【００３６】
３ビットエラーがｉ，ｊ，ｋ次にあれば、エラー多項式は、ｅ（ｘ）＝ｘｉ＋ｘｊ＋ｘｋとなるので、これらの指数ｉ，ｊ，ｋを求めれば、エラー位置が確定する。そこで、ｍ１（ｘ）＝０の根αの指数（インデックス）に関するＧＦ（２５６）内の計算で、ｉ，ｊ及びｋを求める。
【００３７】
ｘｎ≡ｐｎ（ｘ）ｍｏｄ ｍ１（ｘ）なる剰余多項式ｐｎ（ｘ）を導入すると、ＧＦ（２５６）内では、αｎ＝ｐｎ（α）である。下記数８に示すように、エラーの次数に対応する根αｉ，αｊ，αｋをそれぞれ、Ｘ１，Ｘ２，Ｘ３とし、シンドロームＳ１（ｘ），Ｓ３（ｘ），Ｓ５（ｘ）に対してＳ１（α），Ｓ３（α３），Ｓ５（α５）に対応する指数をそれぞれ、σ１，σ３，σ５として、Ｓ１（α），Ｓ３（α３），Ｓ５（α５）をそれぞれ、Ｓ１，Ｓ３，Ｓ５とする。ちなみに、剰余多項式による表現では、Ｓ１，Ｓ３，Ｓ５は、Ｓ１（ｘ），Ｓ３（ｘ３），Ｓ５（ｘ５）と同等である。
【００３８】
【数８】
2008052866.tif 000010
【００３９】
ｍ３（α３）＝ｍ５（α５）＝０であるから、数８から次の数９の関係が得られる。
【００４０】
【数９】
2008052866.tif 000011
【００４１】
第二段階として、未知数Ｘ１，Ｘ２，Ｘ３を根とするエラー位置探索多項式ΛＲ（ｘ）＝０を考えると、ΛＲ（ｘ）は数１０のように、Ｘ１，Ｘ２，Ｘ３の基本対称式Ｓ１，Ｄ，Ｔを用いて表すことができる。
【００４２】
【数１０】
2008052866.tif 000012
【００４３】
エラー位置検索は、ΛＲ（ｘ）＝０を満たす根αｎのインデックスｎを探すことである。そこでまず、ΛＲ（ｘ）＝０の係数をシンドロームＳ１，Ｓ３，Ｓ５で表現する。Ｓ１，Ｄ，Ｔは基本対称式であり、Ｓ３，Ｓ５は対称式なので基本対称式で表すことができ、逆にＤ，ＴをＳ１，Ｓ３，Ｓ５で表現することができる。即ち、Ｓ１２Ｄ＋Ｓ１Ｔ＝Ｓ１３＋Ｓ３，Ｓ３Ｄ＋Ｓ１２Ｔ＝Ｓ１５＋Ｓ５の関係から、Ａ＝Ｓ３／Ｓ１３，Ｂ＝Ｓ５／Ｓ１３とおいて、数１１が求まる。
【００４４】
【数１１】
2008052866.tif 000013
【００４５】
第三段階として、ΛＲ（ｘ）のＧＦ（２５６）での根αｎを見つければＸ１，Ｘ２，Ｘ３＝αｎから、ｉ，ｊ，ｋがαｎのｎとして求まる。即ち、ΛＲ（ｘ）＝０をｎ＝０〜２５４で探索してヒットしたｎがエラービットということになる。
【００４６】
なお、ΛＲ（ｘ）＝０の根が常に求まるわけではなく、この多項式が３次でないこともあり、それぞれの場合にエラー数が異なる。詳細は後に説明するがエラー数とその場合の条件をまとめると、数１２のようになる。
【００４７】
【数１２】
2008052866.tif 000014
【００４８】
なお、１エラー又は２エラーの場合は、２ＥＣシステムへ分岐して解を探索することになる。
【００４９】
３つのエラーがある場合に、原理的にはｘに逐次有限体の要素を代入して解を求めることができるが、これは膨大な計算量となる。そこでこの実施の形態では、解の候補を予めテーブルとして求めておき、ΛＲ（ｘ）を変形して、未知数のみにより決まる部分（以下、変数部分という）とシンドロームのみにより計算される部分（以下、シンドローム部分という）を完全に分離して解の候補のインデックスとシンドロームのインデックスの関係だけで解のインデックスｎを求めることが出来るようにする。
【００５０】
具体的に説明する。３ＥＣの場合は、３次のエラー位置探索方程式ΛＲ（ｘ）＝ｘ３＋Ｓ１ｘ２＋Ｄｘ＋Ｔ＝０の根αｎのインデックスｎを計算する。このときは、ｘ＝ａｚ＋ｂなる変数変換を行い、エラー位置検索方程式を下記数１３のように、変数部分とシンドローム部分に分離する。
【００５１】
【数１３】
2008052866.tif 000015
【００５２】
変換の仕方はこの他にも項ｚ２が残るような変換法もあるが、ここでは変換が最も簡単になる方法を選んでいる。変数変換された方程式を解く際にシンドローム計算から必要となる基本的なインデックスは、Ｓ１のσ１、Ｓ３のσ３、Ｓ５のσ５、ＡのσＡ、ＢのσＢ、ＴのσＴ、ａのσａである。
【００５３】
変数部分ｚにαｊを代入して、下記数１４のインデックスｚｊを求めて、テーブルとする。
【００５４】
【数１４】
2008052866.tif 000016
【００５５】
方程式のシンドローム部分Ｔ／ａ３のインデックスは、σＴ−３σａであるから、下記数１５を満たすｊが、エラー位置対応変数ｚでのインデックスである。
【００５６】
【数１５】
2008052866.tif 000017
【００５７】
実際のエラー位置は、下記数１６のビット位置ｎとして求まる。
【００５８】
【数１６】
2008052866.tif 000018
【００５９】
２ＥＣ又は１ＥＣの場合は、エラー位置検索方程式（即ち解探索多項式）は、ΛＲ（ｘ）＝（ｘ−Ｘ１）（ｘ−Ｘ２）＝ｘ２＋Ｓ１ｘ＋Ｘ１Ｘ２＝０となる２次式の根のαｎのインデックスｎを探索する。ここで、Ｘ１Ｘ２＝Ｓ１２＋Ｓ３／Ｓ１である。
【００６０】
この場合も、ΛＲ（ｘ）を変形して変数部分とシンドローム部分に分離してインデックス関係だけでｎを求めることが出来るようにする。即ち、ｘ＝Ｓ１ｙなる変換により、次の数１７を得る。
【００６１】
【数１７】
2008052866.tif 000019
【００６２】
数１７の変数部分のｙにαｉを代入した結果のα２ｉ＋αｉ＋１のインデックスをｙｉとすると、下記数１８のｉがエラー位置のｙのインデックスとなる。
【００６３】
【数１８】
2008052866.tif 000020
【００６４】
シンドロームから決まる右辺のインデックスに対応するｙｉを満たすｉが存在しない場合は、解が求まらないので３ビット以上のエラーの場合である。実際のエラー位置は、下記数１９のビット位置ｎとして求まる。
【００６５】
【数１９】
2008052866.tif 000021
【００６６】
３ＥＣ，２ＥＣの場合を通してエラー位置検索で必要な計算は、インデックス 間の合同式からインデックスを確定することである。システム構成上必要なこれらの計算法を次に示す。
【００６７】
合同式はいずれも、２５５を法とするＧＦ（２５６）である。この合同式計算はまともに行なうと、２５５×２５５の規模の比較を行うことに相当し、回路規模が大きくなる。そこでこの実施の形態では、この合同式計算を並列化する。すなわち、２５５を互いに素である二つの因子に分けてこれらを法とする二つの合同式に分離して、これらの合同式を同時に満たす数はもともとの合同式も満たすことを利用する。
【００６８】
以下に示すように、いずれの合同式を解く場合も２５５＝１７×１５によって１７と１５をそれぞれ法とする合同式に分けてこれを同時に解く。
【００６９】
１：Ａ＝Ｓ３／Ｓ１３のインデックスσＡの計算は、σＡ≡σ３−３σ１（ｍｏｄ２５５）を求めるもので、次の数２０の二つの合同式に分ける。
【００７０】
【数２０】
2008052866.tif 000022
【００７１】
２：Ｂ＝Ｓ５／Ｓ１３のインデックスσＢの計算は、σＢ≡σ５−３σ１（ｍｏｄ２５５）を求めるもので、次の数２１の二つの合同式に分ける。
【００７２】
【数２１】
2008052866.tif 000023
【００７３】
３：Ｅ＝Ｓ５／Ｓ１２のインデックスσＥの計算は、σＥ≡σ５−２σ１（ｍｏｄ２５５）を求めるもので、次の数２２の二つの合同式に分ける。
【００７４】
【数２２】
2008052866.tif 000024
【００７５】
４：Ｆ＝Ｓ３２／Ｓ１３のインデックスσＦの計算は、σＦ≡２σ３−３σ１（ｍｏｄ２５５）を求めるもので、次の数２３の二つの合同式に分ける。
【００７６】
【数２３】
2008052866.tif 000025
【００７７】
５：ｙｉからｙのインデックスｉを選択して、ασ１ｙ＝αｎのインデックスｎを求めるには、ｙｉ＝σＡからｉをテーブルによるデコードで選択して、ｎ≡σ１＋ｉ（ｍｏｄ２５５）を求める。この合同式は次の数２４の二つに分ける。
【００７８】
【数２４】
2008052866.tif 000026
【００７９】
６：Ｃ＝（Ｓ１２＋Ｂ）／（Ａ＋１）のインデックスσＣの計算は、σＣ≡σ(S12+B)−σ(A+1)（ｍｏｄ２５５）を求めるもので、次の数２５の二つの合同式に分ける。
【００８０】
【数２５】
2008052866.tif 000027
【００８１】
７：Ｔ＝ｔ／（Ａ＋１）のインデックスσＴの計算は、σＴ≡σｔ−σ（Ａ＋１）（ｍｏｄ２５５）を求めるもので、次の数２６の二つの合同式に分ける。
【００８２】
【数２６】
2008052866.tif 000028
【００８３】
８：αｚｊ＝ασＴ−３σａからのインデックスｚｊの計算は、ｚｊ≡σＴ−３σａ（ｍｏｄ２５５）を求めるもので、次の数２７の二つの合同式に分ける。
【００８４】
【数２７】
2008052866.tif 000029
【００８５】
９：ｚｊからｚのインデックスｊを選択して、ασａｚ＝ασＸのインデックスσＸを求めるには、ｚｊからｊをテーブルによるデコードで選択し、σＸ≡σａ＋ｊ（ｍｏｄ２５５）を求める。この合同式は次の数２８の二つの合同式に分ける。
【００８６】
【数２８】
2008052866.tif 000030
【００８７】
以上の数２０から数２３で計算しようとする合同式は、シンドロームＳ１，Ｓ３，Ｓ５のインデックスの倍数間の差のインデックスを求めるものであるが、１５倍や１７倍のインデックスとその他の倍数のインデックス間の１７や１５を法としたインデックス間の対応関係は、後に示すように予め求めておけるので、この関係を使ってインデックスの倍数間の和を、加算回路（アダー）により求める。
【００８８】
数２０から数２３の合同式では、Ａ，Ｂ，Ｅ，Ｆの根αのインデックスについて、ｍｏｄ１７とｍｏｄ１５による剰余類インデックスのペアにより定義される“表現インデックス”を求めている。
【００８９】
数２４では、シンドロームから得られたインデックスσＡから、インデックスｉとｙｉの対応関係を用いて、ｙｉ＝σＡとなるｉを求めるが、計算はｍｏｄ１７とｍｏｄ１５による剰余類インデックスによって行なわれ、２値による表現インデックスとしてインデックスｎが得られる。このときσＡがｉが存在しないｙｉに対応することもある。
【００９０】
数２５は、シンドローム間の計算から得られた（Ｓ１２＋Ｂ） のインデックスと（Ａ＋１）のインデックスからＣのインデックスσＣを表現インデックスとして求めている。
【００９１】
数２６は、シンドローム間の計算から得られたｔのインデックスと（Ａ＋１）のインデックスからＴのインデックスσＴを表現インデックスとして求めている。
【００９２】
数２７は、シンドロームから得られたインデックスの演算によってインデックスｚｊを求めるもので、インデックスσＴと−３σａの和をｍｏｄ１７とｍｏｄ１５ による表現インデックスとして求める。この計算で対応するｊがないｚｊがインデックスとして得られることもある。
【００９３】
数２８は、インデックスｊとｚｊの対応関係からｊを選択してこのｊとインデックスσａの和のインデックスσＸを表現インデックスとして求めている。
【００９４】
［３ＥＣ−ＥＷシステムの構成］
図１は、フラッシュメモリに搭載される３ＥＣ−ＥＷシステムの構成をメモリコア１０との関係で示している。
【００９５】
ＮＡＮＤ型フラッシュメモリの場合のメモリコア１０は、図２に示すように、セルアレイ１、センスアンプ回路２及びロウデコーダ３を有する。セルアレイ１は、直列接続されたメモリセルＭ０−Ｍ３１を有するＮＡＮＤセルユニット（ＮＡＮＤストリング）を配列して構成されている。ＮＡＮＤセルユニットＮＵの一端は選択ゲートトランジスタＳ１を介してビット線ＢＬｅ（ＢＬｏ）に、他端は選択ゲートトランジスタＳ２を介して共通ソース線ＣＥＬＳＲＣに接続されている。
【００９６】
メモリセルの制御ゲートは、ワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１，Ｓ２のゲートは選択ゲート線ＳＧＤ，ＳＧＳに接続されている。ワード線ＷＬ０−ＷＬ３１と選択ゲート線ＳＧＤ，ＳＧＳを選択駆動するのがロウデコーダ３である。
【００９７】
センスアンプ回路２は、同時書き込み及び読み出しを行う１ページ分のセンスユニットＳＡを有する。各センスユニットＳＡには、ビット線選択回路４により、隣接するビット線ＢＬｅ，ＢＬｏのいずれかが選択されて接続される。これにより、一つのワード線ＷＬｉと複数の偶数番ビット線ＢＬｅ（或いは複数の奇数番ビット線ＢＬｏ）により同時に選択されるメモリセルの集合が、同時に書き込み／読み出しが行われる１ページ（１セクタ）となる。非選択側のビット線は所定電位を与えたシールド線として利用することにより、選択ビット線間の干渉を防止することができる。
【００９８】
ワード線ＷＬ０−ＷＬ３１を共有するＮＡＮＤセルユニットの集合は、データ消去の単位とするブロックを構成し、図のようにビット線の方向に複数のブロックＢＬＫ０−ＢＬＫｎが配置される。
【００９９】
図１において、エンコード部２１は、２３１ビットの情報をａ２４〜ａ２５４としてこれらを係数とする２３０次の多項式ｆ（ｘ）が入力となる。情報ビットはデータビットの構成によって適宜必要な次数を選んでその係数のみを用い、使用しない係数は固定した０または１データとして扱うことによって固定ビットをメモリに記憶させずにメモリ容量に合ったシステムを構成することが可能である。
【０１００】
ｆ（ｘ）ｘ２４をｇ（ｘ）で割った剰余をｒ（ｘ）として多項式ｆ（ｘ）ｘ２４＋ｒ（ｘ）の係数をデータビットとしてメモリコア１０に書き込む。メモリコア１０から読み出した２５５ビットのデータは２５４次の多項式ν（ｘ）の係数として扱われる。
【０１０１】
読み出したデータ多項式ν（ｘ）からシンドロームＳ１，Ｓ３，Ｓ５を求めるのが、シンドローム演算部２２である。先に説明したように、ν（ｘ）を既約多項式ｍ１（ｘ），ｍ３（ｘ），ｍ５（ｘ）でそれぞれ割ることにより、その剰余としてシンドロームＳ１，Ｓ３，Ｓ５が得られる。
【０１０２】
シンドロームＳ１，Ｓ３，Ｓ５が全てゼロであれば、エラーがない。このとき、ゲート回路３６により、信号“ｎｏ ｅｒｒｏｒ”が出力される。
【０１０３】
シンドロームＳ１，Ｓ３，Ｓ５のインデックスは、ｍｏｄ１７，ｍｏｄ１５で区別し、以後の加算回路を用いた計算ではそのインデックスで表されるバイナリの数としての足し算が行なわれる。即ち加算回路２３〜２６は、シンドロームＳ１，Ｓ３，Ｓ５間の積や商で表されるＡ，Ｂ，Ｅ，Ｆのインデックスをｍｏｄ１７とｍｏｄ１５の合同式として計算し、その結果の剰余類ペアで表される表現インデックスとして以降の演算を行う。
【０１０４】
パリティチェッカ２７，２８，２９は、入力インデックスを多項式に直した同じ次数間のｍｏｄ２による和をとるものであり、具体的には、Ａと１の和、ＢとＳ１２の和、Ｓ１３とＳ３とＥとＦの和をそれぞれ求めている。これらのパリティチェッカでは、７次の多項式の各次数の係数のパリティチェックの結果として和の有限体要素の多項式の係数が得られる。
【０１０５】
加算回路３０は、２ＥＣシステムに対応するｙ２＋ｙ＋１＝Ａによってｙを求め、変換式ｘ＝Ｓ１ｙによってエラー位置ｎの表現インデックスを計算する部分である。この加算回路３０の入力は、ＡとＳ１とＳ３＝０を示す信号である。この入力部でｙ２＋ｙ＋１＝Ａ を満たすｙのインデックスｉをデコードする。
【０１０６】
Ｓ３＝０ではＡ＝０となり、ｙ２＋ｙ＋１＝０を満たすｙが２つあるにも拘わらず、ＡのインデックスσＡが前段の加算回路から出力されないので、Ｓ３＝０の場合の信号はシンドローム演算部２２から直接受け取り、ｙ２＋ｙ＋１＝０となるｙのインデックスをデコードする。
【０１０７】
デコード結果のｉとＳ１のインデックスσ１から２つのエラー分のｎのインデックスの表現インデックスを計算結果として出力する。入力部でのデコードの結果、ｙのインデックスｉを求めることができない場合は、２ＥＣシステムでは対応できないので、信号“ｎｏ ｉｎｄｅｘ ２ＥＣ”を発生する。
【０１０８】
加算回路３１は、入力としてＢ＋Ｓ１２の表現インデックスとＡ＋１の表現インデックスを用い、Ｃ＝（Ｂ＋Ｓ１２）／（Ａ＋１）のインデックスσＣの表現インデックスを出力する。
【０１０９】
加算回路３２は、入力としてＳ１２＋Ｓ３＋Ｅ＋Ｆ＝ｔの表現インデックスとＡ＋１の表現インデックスを受け取り、Ｔ＝ｔ／（Ａ＋１）のインデックスσＴの表現インデックスとして出力する。
【０１１０】
これらの加算回路３０〜３２の次に、ＣとＴのインデックスを入力としてインデックスｚｊを計算する加算回路３３がある。ａ３＝Ｃ３／２であるから、ここではＣのインデックスσＣの表現インデックスからインデックスの変換表によって入力の切り替えのみによってａ３の表現インデックスを得る。これとＴのインデックスσＴからＴ／ａ３の表現インデックスを計算して出力する。
【０１１１】
加算回路３４は、３ＥＣシステムに対応するｚ３＋ｚ＝Ｔ／ａ３によってｚを求め、変換ａｚによってインデックスσＸの表現インデックスを計算する部分である。その入力部分は前段までの結果ｚｊとＣのインデックスσＣの表現インデックスを示す信号である。この入力部でｚ３＋ｚ＝Ｔ／ａ３を満たすｚのインデックスｊをデコードする。
【０１１２】
デコード結果のｊとａ＝Ｃ１／２の関係により、インデックスσＣの表現インデックスからインデックスの変換表によって入力の切り替えのみによってａの表現インデックスを得た結果を用いて、３つのエラー分のａｚのインデックスの表現インデックスを計算結果として出力する。
【０１１３】
また、入力部でのデコードの結果ｚのインデックスｊが求められない場合は、３ＥＣでは対応できない。この場合は、信号“ｎｏ ｉｎｄｅｘ ３ＥＣ”を発生する。
【０１１４】
パリティチェッカ３５は、Ｘ＝ａｚ＋Ｓ１の和からＸのインデックスとしてエラーの位置ｎの表現インデックスを計算している。４ビット以上のエラーがあり訂正が出来ない場合は、警告信号発生回路３７により訂正不能であることを示す信号“ｎｏｎ ｃｏｒｒｅｃｔａｂｌｅ”が出力される。
【０１１５】
この警告信号発生回路３７は、シンドロームがオール“０”ではなくかつ、２ＥＣシステムでも３ＥＣシステムでも解が得られない場合にその旨の警告信号を出す。具体的には、Ｓ１＝０でＳ３≠０又はＳ５≠０か、或いは３ＥＣシステムで解がない場合即ち“ｎｏ ｉｎｄｅｘ ３ＥＣ”が出力された場合に、“ｎｏｎ ｃｏｒｒｅｃｒａｂｌｅ”が出力されるように、ロジックが組まれている。
【０１１６】
メモリコア１０から読み出したデータを最終的に訂正して出力する部分がエラー訂正回路３８である。２ＥＣシステム部分からのエラー位置情報が使われるのは、ｔ＝０でかつ、“ｎｏ ｉｎｄｅｘ ２ＥＣ”が出力されない場合（ゲートＧ１出力＝“１”）であり、この場合はゲートＧ２が活性になり、ゲートＧ３が非活性になって３ＥＣシステムからのエラー位置情報は使われない。
【０１１７】
２ＥＣの条件を満たさない場合に、ゲートＧ３が活性となり、３ＥＣシステムからの位置情報が使われる。エラー位置ｎのデータ多項式ν（ｘ）の係数は位置情報とのＸＯＲ論理により反転されて、データｄｎとして出力される。
【０１１８】
図３Ａ及び図３Ｂは、エンコード部２１で用いられる、チェックビットを計算するためのデータビット位置の選択表である。この表の意味は以下の通りである。
【０１１９】
単項xｎを生成多項式ｇ（ｘ）で割った２３次多項式となる剰余ｒｎ（ｘ）を求めておく。２５５個のデータは２５４次の多項式の各次数の係数となるので、データが１である場合はそのデータ位置の次数のｘｎの項があり、生成多項式ｇ（ｘ）の剰余の寄与はｒｎ（ｘ）である。
【０１２０】
よってデータ１であるｎのｒｎ（ｘ）を選択してｒｎ（ｘ）の各次数の係数の和をｍｏｄ２で求めればデータ多項式のｇ（ｘ）での割り算による剰余となる。
【０１２１】
但しｒｎ（ｘ）の各次数で係数が０であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。ｒｎ（ｘ）の各次数ｍについてその係数が１であるｎをまとめたのが、図３Ａ及び図３Ｂの表ということになる。チェックビットを作る際にはｎ＝２３までの次数はデータとして使わないので、ｎ＝２４以降のｎの表となる。
【０１２２】
表の使い方は、次の通りである。例えばｘ１５の係数が１であるｒｎ（ｘ）のｎは表のｍ＝１５の列の“係数１の数”の欄の値が１から１３０に書かれている２４，２５，２７，…，２５０，２５３，２５４のｎ次の項であり、ｘ１５の係数に相当するチェックビットｂ１５は情報データの多項式ｆ（ｘ）ｘ２４の中のこの選択されたｎ次の項の中のデータが１であるビット位置ｎの１のパリティチェックの結果、すなわち表の中のデータが１に対応するｎの数のｍｏｄ２の剰余として得られる。
【０１２３】
チェックビットの計算表を回路として実現するのが、図４である。これは、情報データ多項式ｆ（ｘ）ｘ２４からチェックビットをｇ（ｘ）の剰余として計算する、ｍ個の４ビットパリティチェッカラダー４０と、図３Ａ及び図３Ｂに示す生成多項式によるｘｎの剰余のテーブルに従って各次数の入力を選択する入力回路４１とを有する。すなわちこの回路は、各ｍについて表からｎを選択しａｎを用いてパリティチェックを行なう。
【０１２４】
パリティチェッカラダー４０は、後に示すように、チェックビットを表す多項式の各次数の係数の値を計算するためのＸＯＲ回路の集合であり、生成多項式によるｘｎの剰余のテーブルに従って各次数で入力を選択してそのパリティを計算する。
【０１２５】
入力回路４１は、ＣＬＫ＝“Ｌ”により駆動されるＰＭＯＳトランジスタＰ０によりプリチャージされる複数のノード４２と、入力信号である情報データ多項式の２３１個の係数ａ２４〜ａ２５４即ち入力データ信号を反転するインバータ群４３と、その反転信号をゲート入力としてドレインが入力ノード４２に接続されたＮＭＯＳトランジスタＮ２と、これらＮＭＯＳトランジスタＮ２のソースが共通に接続される、ＣＬＫ＝“Ｈ”でオンする放電用ＮＭＯＳトランジスタＮ１とを有する。
【０１２６】
ＮＭＯＳトランジスタＮ２の配置が、図３Ａ及び図３Ｂに従って定められる。予めプリチャージされたノード４２がそれぞれ放電されるか否かが、ＮＭＯＳトランジスタＮ２の配置と入力信号とにより決まり、その結果がパリティチェッカラダー４０の入力となる。
【０１２７】
ｍ個のパリティチェッカラダー４０の出力がそれぞれチェックビットｂｍとなる。なお２３１個の係数を全て情報として使用しない時はシステムの構成によって適宜選択された係数のみを用いればよい。
【０１２８】
図５は、４ビットパリティチェッカラダー４０の構成例である。入力数が４の剰余系のいずれに属するかによって用いるパリティチェッカ（ＰＣ）を組合せる。すなわち４で割り切れれば４ビットＰＣのみで、１が余れば２ビットＰＣの一方の入力端子をＶｄｄにしたものすなわちインバータを加え、２が余れば２ビットＰＣを加え、３が余れば４ビットＰＣのひとつの入力端子をＶｄｄにしたものを加える。
【０１２９】
図３Ａ及び図３Ｂから、ｘｍのｍ＝６，５はパリティチェックするビット数が最大の１３１個であるので、図５はその場合を例として示す。この場合１３１入力であるので、最初の段は４ビットＰＣを３３個（そのうち一つは、一つの入力端子がＶｄｄ）、２段目は３３入力となるので、４ビットＰＣを8個とインバータを1個、３段目は９入力となるので４ビットＰＣを２個とインバータを１個、４段目は３入力なので一つの入力端子をＶｄｄとした一つの４ビットＰＣで構成される。
【０１３０】
他のｍについても同様に構成していく。
【０１３１】
図６（ａ），（ｂ）は、２ビットＰＣの回路記号と具体回路例である。２ビットＰＣは、２ビット入力ａとｂの間のＸＯＲ演算部とＸＮＯＲ演算部とから、偶数パリティのチェックを行うように、即ち入力中の“１”の数が偶数のときＥＰ＝“１”を出力する回路として構成されている。
【０１３２】
図７（ａ），（ｂ）は、４ビットＰＣの回路記号と具体回路例である。４ビットａ，ｂ，ｃ，ｄを入力として、構成要素である二つの２ビットＰＣの出力のロジックを取り、偶数個の“１”が入力にあるときＥＰ＝“１”を出力する回路として構成されている。
【０１３３】
図８は、シンドローム演算部２２において、シンドロームＳ１＝Ｓ１（ｘ）の計算で使用する、ｘｎのｍ１（ｘ）での剰余ｐｎ（ｘ）の各次数の係数が１であるｎの表である。表の意味は以下の通りである。
【０１３４】
単項ｘｎを多項式ｍ１（ｘ）で割った７次多項式となる剰余ｐｎ（ｘ）を求めておく。２５５個のデータは２５４次の多項式の各次数の係数となるので、データが１である場合はそのデータ位置の次数のｘｎの項があり、多項式ｍ１（ｘ）の剰余の寄与はｐｎ（ｘ）である。よってデータ１であるｎのｐｎ（ｘ）を選択してｐｎ（ｘ）の各次数の係数の和をｍｏｄ２で求めれば、データ多項式のｍ１（ｘ）での割り算による剰余となる。
【０１３５】
但しｐｎ（ｘ）の各次数で係数が０であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。ｐｎ（ｘ）の各次数ｍについてその係数が１であるｎをまとめると、図８の表になる。
【０１３６】
例えばｘ７の係数が１であるｐｎ（ｘ）のｎは、表のｍ＝７の列の“係数１の数”の欄の数が１から１２８の行に書かれている７，１１，１２，…，２５１，２５２，２５４のｎであり、シンドロームＳ１（ｘ）のｘ７の係数（ｓ１）７はデータの多項式ν（ｘ）の中のこれらのｎ次の項の係数のパリティチェックの結果として得られる。
【０１３７】
図９は、データ多項式ν（ｘ）からシンドロームＳ１をｍ１（ｘ）の剰余として計算する計算回路を示している。データ多項式ｆ（ｘ）ｘ２４からシンドロームＳ１をｍ１（ｘ）の 剰余として計算する、ｍ個の４ビットパリティチェッカラダー５０と、図８に示すｘｎの剰余テーブルに従って各次数の入力を選択する入力回路５１とを有する。すなわちこの回路は、各ｍについて表からｎを選択しｄｎを用いてパリティチェックを行なうものである。
【０１３８】
パリティチェッカラダー５０は、シンドロームＳ１を表す多項式の各次数の係数の値を計算するためのＸＯＲ回路の集合であり、ｘｎの剰余のテーブルに従って各次数で入力を選択してそのパリティを計算する。
【０１３９】
入力回路５１は、ＣＬＫ＝“Ｌ”により駆動されるＰＭＯＳトランジスタＰ０によりプリチャージされる複数のノード５２と、入力信号である情報データ多項式の２５５個の係数ｄ０〜ｄ２５４即ち入力データ信号を反転するインバータ群５３と、その反転信号をゲート入力としてドレインがノード５２に接続されたＮＭＯＳトランジスタＮ２と、これらＮＭＯＳトランジスタＮ２のソースが共通に接続される、ＣＬＫ＝“Ｈ”でオンする放電用ＮＭＯＳトランジスタＮ１とを有する。
【０１４０】
ＮＭＯＳトランジスタＮ２の配置が、図８に従って定められる。予めプリチャージされたノード５２がそれぞれ放電されるか否かが、ＮＭＯＳトランジスタＮ２の配置と入力信号とにより決まり、その結果がパリティチェッカラダー５０の入力となる。
【０１４１】
ｍ個のパリティチェッカラダー５０の出力がそれぞれシンドローム係数（ｓ１）ｍとなる。なお２５５個の係数を全て情報として使用しない時はシステムの構成によって適宜選択された係数のみを用いればよい。
【０１４２】
シンドロームＳ３，Ｓ５の係数（ｓ３）ｍ，（ｓ５）ｍを求める計算回路も４ビットパリティチェッカラダーの構成が異なるのみで、同様の回路となる。
【０１４３】
図１０は、シンドロームＳ１の計算回路での４ビットパリティチェッカラダー５０の構成例である。この場合も、入力の数が４の剰余系のいずれに属するかによって用いるパリティチェッカＰＣを組合せる。すなわち、４で割り切れれば４ビットＰＣのみで、１が余れば２ビットＰＣの一方の入力端子をＶｄｄにしたもの即ちインバータを加え、２が余れば２ビットＰＣを加え、３が余れば４ビットＰＣのひとつの入力端子をＶｄｄにしたものを加える。
【０１４４】
ｘｍの全てのｍは、図８からパリティチェックするビット数が１２８個である。従って、最初の段は１２８入力であり、４ビットＰＣを３２個、２段目は３２入力となり４ビットＰＣを８個、３段目は８入力となるので４ビットＰＣを２個、4段目は２入力なので２ビットＰＣ１個で構成される。
【０１４５】
図１１は、シンドロームＳ３＝Ｓ３（ｘ３）の計算で使用する、ｘ３ｎのｍ３（ｘ）での剰余ｐ３ｎ（ｘ）の各次数の係数が１であるｎの表である。表の意味は以下の通りである。
【０１４６】
単項ｘｎを多項式ｍ３（ｘ）で割った７次多項式となる剰余をｔｎ（ｘ）とする。シンドロームＳ３（ｘ）へはｔｎ（ｘ）が寄与するが、Ｓ３＝Ｓ３（ｘ３）であるからＳ３へはｔｎ（ｘ３）が寄与する。
【０１４７】
ｘｎ≡ｔｎ（ｘ）ｍｏｄ ｍ３（ｘ）から、ｔｎ（ｘ３）≡ｘ３ｎｍｏｄ ｍ３（ｘ３）とｍ３（ｘ３）≡０ ｍｏｄ ｍ１（ｘ）なので、ｔｎ（ｘ３）≡ｘ３ｎ≡ｐ３ｎ（ｘ）ｍｏｄ ｍ１（ｘ）である。
【０１４８】
ＧＦ（２５６）の要素はｍｏｄ ｍ１（ｘ）の既約剰余なので、ν（ｘ）のｘｎの項からはＳ３にｐ３ｎ（ｘ）の寄与と等しくなる。そこでｐ３ｎ（ｘ）を求めておく。２５５個のデータは２５４次の多項式の各次数の係数となるので、データが１である場合はそのデータ位置の次数のｘｎの項があり、この項の多項式ｍ３（ｘ）の剰余ｔｎ（ｘ）のＳ３＝Ｓ３（ｘ３）への寄与はｐ３ｎ（ｘ）である。
【０１４９】
よってデータ１であるｎのｐ３ｎ（ｘ）を選択してｐ３ｎ（ｘ）の各次数の係数の和をｍｏｄ２で求めれば、データ多項式のｍ３（ｘ）での割り算による剰余Ｓ３（ｘ）を求めなくてもＳ３（ｘ３）が直接得られる。但しｐ３ｎ（ｘ）の各次数で係数が０であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。
【０１５０】
ｐ３ｎ（ｘ）の各次数ｍについてその係数が１であるｎをまとめると、図１１のの表になる。例えば、ｘ７の係数が１であるｐ３ｎ（ｘ）のｎは表のｍ＝７の列の“係数１の数”の欄の数が１から１２８の行に書かれている、４，８，１４，…，２４９，２５２，２５４のｎであり、シンドロームＳ３（ｘ３）のｘ７の係数（ｓ３）７は、データの多項式ν（ｘ）の中のこれらのｎ次の項の係数のパリティチェックの結果として得られる。他のｍについても同様にして係数が得られる。
【０１５１】
図１２は、シンドロームＳ３＝Ｓ３（ｘ３）の計算での４ビットパリティチェッカラダーの構成例を示す。各ｍについて図１１の表からｎを選択してパリティチェックを行なう。
【０１５２】
入力の数が４の剰余系のいずれに属するかによって用いるパリティチェッカ（ＰＣ）を組合せる。すなわち４で割り切れれば４ビットＰＣのみで、１が余れば２ビットＰＣの一方の入力端子をＶｄｄにしたものすなわちインバータを加え、２が余れば２ビットＰＣを加え、３が余れば４ビットＰＣのひとつの入力端子をＶｄｄ にしたものを加える。
【０１５３】
ｘｍのｍ＝５，２，０は、図１１の表からパリティチェックするビット数が最大の１４４個であるのでこの場合を例として示す。１４４入力であるので初段は４ビットＰＣを３６個、２段目は３６入力となるから、４ビットＰＣを９個、３段目は９入力となるので４ビットＰＣ２個とインバータ１個、４段目は３入力なので一つの入力にＶｄｄが与えられた４ビットＰＣ一つで構成される。
【０１５４】
他のｍについても同様に構成していく。
【０１５５】
図１３は、シンドロームＳ５＝Ｓ５（ｘ５）の計算で使用する、ｘ５ｎのｍ１（ｘ）での剰余ｐ５ｎ（ｘ）の各次数の係数が１であるｎの表である。表の意味は以下の通りである。
【０１５６】
単項ｘｎを多項式ｍ５（ｘ）で割った７次多項式となる剰余をｑｎ（ｘ）とする。Ｓ５（ｘ）へはｑ（ｘ）が寄与するが、Ｓ５＝Ｓ５（ｘ５）であるからＳ５へはｑｎ（ｘ５）が寄与する。ｘｎ≡ｑｎ（ｘ）ｍｏｄ ｍ５（ｘ）からｑｎ（ｘ５）≡ｘ５ｎｍｏｄ ｍ５（ｘ５）とｍ５（ｘ５）≡０ｍｏｄ ｍ１（ｘ）なので、ｑｎ（ｘ５）≡ｘ５ｎ≡ｐ５ｎ（ｘ）ｍｏｄ ｍ１（ｘ）である。
【０１５７】
ＧＦ（２５６）の要素はｍｏｄ ｍ１（ｘ）の既約剰余なのでν（ｘ）のｘｎの項からはＳ５にｐ５ｎ（ｘ）の寄与と等しくなる。そこでｐ５ｎ（ｘ）を求めておく。２５５個のデータは２５４次の多項式の各次数の係数となるので、データが１である場合はそのデータ位置の次数のｘｎの項があり、この項の多項式ｍ５（ｘ）の剰余ｑｎ（ｘ）のＳ５＝Ｓ５（ｘ５）への寄与はｐ５ｎ（ｘ）である。
【０１５８】
よってデータ１であるｎのｐ５ｎ（ｘ）を選択してｐ５ｎ（ｘ）の各次数の係数の和をｍｏｄ２で求めれば、データ多項式のｍ５（ｘ）での割り算による剰余Ｓ５（ｘ）を求めなくてもＳ５（ｘ５）が直接得られる。但しｐ５ｎ（ｘ）の各次数で係数が０であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。ｐ５ｎ（ｘ）の各次数ｍについてその係数が１であるｎをまとめると図１３の表になる。
【０１５９】
例えばｘ７の係数が１であるｐ５ｎ（ｘ）のｎは表のｍ＝７の列の“係数１の数”の欄の数が１から１２０の行に書かれている４，７，９，…，２５０，２５１，２５３のｎであり、シンドロームＳ５（ｘ５）のｘ７の係数（ｓ５）７はデータの多項式ν（ｘ）の中のこれらのｎ次の項の係数のパリティチェックの結果として得られる。
【０１６０】
他のｍについても同様にして係数が得られる。
【０１６１】
図１４は、シンドロームＳ５＝Ｓ５（ｘ５）の計算での４ビットパリティチェッカラダーの構成例を示す。各ｍについて表から図１３のｎを選択してパリティチェックを行なう。
【０１６２】
入力の数が４の剰余系のいずれに属するかによって用いるパリティチェッカ（ＰＣ）を組合せる。すなわち４で割り切れれば４ビットＰＣのみで、１が余れば２ビットＰＣの一方の入力端子をＶｄｄにしたものすなわちインバータを加え、２が余れば２ビットＰＣを加え、３が余れば４ビットＰＣのひとつの入力端子をＶｄｄ にしたものを加える。
【０１６３】
ｘｍのｍ＝５，２は、表からパリティチェックするビット数が最大の１６０個であるのでこの場合を例として示す。１６０入力であるので最初の段は４ビットＰＣを４０個、２段目は４０入力となるので４ビットＰＣを１０個、３段目は１０入力となるので４ビットＰＣを２個と２ビットＰＣを１個、４段目は３入力なのでＶｄｄが与えられた４ビットＰＣ１個で構成される。
【０１６４】
他のｍについても同様に構成していく。
【０１６５】
シンドロームＳ１，Ｓ３，Ｓ５は、は７次の多項式として得られ、ＧＦ（２５６）の要素であるｐｎ（ｘ）のいずれかに一致している。そこでこれらのシンドローム多項式を、ｍ１（ｘ）の根αのインデックスであって、ｍｏｄ１７，ｍｏｄ１５によって表した表現インデックスに変換して以後の計算で利用する。この変換を行なうデコード回路を図１５Ａ〜図１５Ｃに示す。
【０１６６】
図１５Ａは、プリデコード部Ｐｒｅ−ＤＥＣであり、８ビットのｐｎ（ｘ）の係数の表す２５６のバイナリ信号状態を信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉ（ｉ＝０〜３）の組合せとして表す変換を行う部分であって、ＮＡＮＤ回路で構成される。８ビットのバイナリ信号を２ビットずつ下位から区切り、４進数としてそれぞれ表し、これらをＡｉ，Ｂｉ，Ｃｉ，Ｄｉとしている。
【０１６７】
これにより、シンドロームＳ１，Ｓ３，Ｓ５の次数ｍ＝０，１がＡｉ、ｍ＝２，３がＢｉ、ｍ＝４，５がＣｉ、ｍ＝６，７がＤｉに変換される。このプリデコード部を用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を８から４に削減できる。
【０１６８】
図１５Ｂは、メインのインデックスデコード部（ＤＥＣ）即ち、１７σ５ＤＥＣ、１５σ５ＤＥＣ、１７σ３ＤＥＣ、１５σ３ＤＥＣ、１７σ１ＤＥＣ、１５σ１ＤＥＣの構成である。回路構成は同じで入力信号が異なるのみである。プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力するようになっている。  即ち、プリデコーダＰｒｅ−ＤＥＣの出力Ａｉ，Ｂｉ，Ｃｉ，Ｄｉを選択的にゲート信号とするトランジスタを直列接続したＮＡＮＤ回路を、各剰余類に属する既約多項式の数だけ並列接続して構成される。
【０１６９】
クロックＣＬＫにより制御されるプリチャージトランジスタにより共通ノードをプリチャージし、その放電の有無で剰余類のインデックス信号“ｉｎｄｅｘ ｉ”とする。信号配線とその反転信号線とがペアをなして配設され、これがＮＡＮＤ回路を構成するトランジスタのゲートにデコードのコードに従って接続される。
【０１７０】
ｍｏｄ１７，ｍｏｄ１５に対してこれらのインデックスをつくり、これらのペアとして表現インデックスとする。
【０１７１】
ｐｎ（ｘ）＝０の場合はαの指数で表現できずインデックスが求まらないので、後でこの状態が必要になる場合のためにこの状態を示す信号を発生する。これが図１５Ｃの補助デコード部即ち、Ａ０＝Ｂ０＝Ｃ０＝Ｄ０＝“１”でそれぞれ（ｓ５＝０），（ｓ３＝０），（ｓ１＝０）を出力するｓ5=0 ＤＥＣ，ｓ3=0 ＤＥＣ，ｓ1=0 ＤＥＣである。
【０１７２】
図１６及び図１７は、プリデコーダ等により表現インデックスを求める際の対応表である。これらのうち図１６は、既約剰余ｐｎ（ｘ）のインデックスｎを１７倍して法１５の剰余類１７ｎ（１５）として分類したものである。０から１４のインデックスで分類され、各々の類には１７個のｎが含まれ、これらに対応するｐｎ（ｘ）の各次数の係数に従ってプリデコードされた信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉの各ｉ（＝０〜３）を示した。
【０１７３】
これらのＡｉ，Ｂｉ，Ｃｉ，Ｄｉで図１５Ｂのインデックスデコーダのトランジスタゲートへの信号の接続が決まる。例えばインデックス１においては並列にＮＯＲ接続されるＮＡＮＤのノードはｎが１７３，２３３，２０３，２３，８３，１５８，１８８，６８，３８，１２８，１４３，９８，５３，２１８，８，１１３，２４８に相当し、ＮＡＮＤゲートのトランジスタゲートへは対応するＡｉ，Ｂｉ，Ｃｉ，Ｄｉを接続する。
【０１７４】
図１７は、既約剰余ｐｎ（ｘ）のインデックスｎを１５倍して法１７の剰余類１５ｎ（１７）として分類したものである。０から１６のインデックスで分類され、各々の類には１５個のｎが含まれ、これらに対応するｐｎ（ｘ）の各次数の係数に従ってプリデコードされた信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉのｉを示した。
【０１７５】
例えばインデックス１においては並列にＮＯＲ接続されるＮＡＮＤのノードはｎが１６１，５９，２４６，１２７，４２，９３，１７８，１４４，２１２，２２９，１１０，１９５，８，７６，２５に相当し、ＮＡＮＤゲートのトランジスタゲートへは対応するＡｉ，Ｂｉ，Ｃｉ，Ｄｉを接続する。
【０１７６】
αｎのインデックスｎに対応する表現インデックスをｍｏｄ１７とｍｏｄ１５のペアとして｛１５ｎ（１７），１７ｎ（１５）｝で表す。このとき、ｎの倍数についてその表現インデックスと剰余類がどの様に変換するかを見る。本システムでは次の３つの場合がある。なお１５ｎ（１７）＝σ１７（ｍｏｄ１７），１７ｎ（１５）＝σ１５（ｍｏｄ１５）として説明する。
【０１７７】
１）ｎの表現インデックスσ１７，σ１５から法１５と互いに素である数ｍの倍数ｍｎの表現インデックスを求める。１７は素数なのでどんなｍとも互いに素である。
【０１７８】
ｎをｍ倍してもｍが法と互いに素であるので合同式の両辺を、法を変えずにｍで割ることが出来る。従って剰余類自体は変わらず含まれる要素の構成に変わりはない。表現インデックスはｍ倍され｛σ１７（ｍｏｄ１７），σ１５（ｍｏｄ１５）｝から、｛ｍσ１７（ｍｏｄ１７），ｍσ１５（ｍｏｄ１５）｝となる。
【０１７９】
２） 法１７は素数であるので因数を持たないが、法１５は３や５を因数として持つ。このときｎの表現インデックスから法１５の因数である数ｍの倍数ｍｎの表現インデックスを求める。
【０１８０】
ｍｎとｍｎ’が同じ剰余類に属するなら、１７ｍ（ｎ−ｎ’）≡０（ｍｏｄ１５）である。ｍが１５の因数であるのでこの合同式の両辺をｍで割るときには法もその絶対値で割られて、ｎ≡ｎ’（ｍｏｄ１５／|ｍ|)であるから、１５／|ｍ|だけ差がある剰余類の要素は同じ剰余類の要素と見なされるので今まで分離していた剰余類が結合して新たな大きな剰余類となる。
【０１８１】
表現インデックスはこれらの結合によって同一の表現インデックス を持つように変換される。例えばｍ＝−３の場合はｎ≡ｎ’（ｍｏｄ５）となり法１５での剰余類３つが結合して１５個の剰余類が５つの剰余類にまとまる。表現インデックスの変換自体は、１）の場合と同じである。
【０１８２】
３）ｎの表現インデックスσ１７，σ１５から法１５と互いに素である数ｍのｍ分の１のｎ／ｍの表現インデックスを求める。１７は素数なのでどんなｍとも互いに素である。
【０１８３】
１７ｎ／ｍと１７ｎ’／ｍの剰余類について、１７（ｎ−ｎ’）／ｍ（ｍｏｄ１５）でｍが１５と互いに素であるので、１７（ｎ−ｎ’）／ｍ≡（σ１５−σ１５’）／ｍ（ｍｏｄ１５）であるから、剰余類自体は変わらない。
【０１８４】
表現インデックスは、１７ｎ／ｍ≡σｍ（ｍｏｄ１５）とすると、ｍσｍ≡σ１５（ｍｏｄ１５）である。ｍと１５が互いに素であるので、σ１５＋１５ａ１５＝ｍｂ１５となる整数ａ１５，ｂ１５が必ずあり、σｍ≡ｂ１５（ｍｏｄ１５）となる。ｍｏｄ１７についても同様であり、ペアの表現インデックスは、｛ｂ１７（ｍｏｄ１７），ｂ１５（ｍｏｄ１５）｝となる。
【０１８５】
例えばｍ＝２のときは、σ１７が偶数なら、ｂ１７＝σ１７／２、奇数なら、ｂ１７＝（σ１７＋１７）／２となる。σ１５が偶数なら、ｂ１５＝σ１５／２、奇数なら、ｂ１５＝（σ１５＋１５）／２となる。
【０１８６】
図１８は、ｎの表現インデックス｛１５ｎ（１７），１７ｎ（１５）｝の成分インデックスについて、ｎのｍ倍の変換後の値を欄ｘｍの表にしたものである。この変換を組みあわて本システムで必要な表現インデックスは全て得られる。
【０１８７】
例えば、−３／２倍に表現インデックス｛３，８｝を変換する。最初の成分インデックスは１５ｎ（１７）＝３であるので、×（−３）の欄から８になり、これを新たに１５ｎ（１７）と見なして×１／２の欄から４となる。２番目の成分インデックスは１７ｎ（１５）＝８であるので、×（−３）の欄から６になり、これを新たに１７ｎ（１５）と見なして×１／２の欄から３になる。
【０１８８】
即ち｛３，８｝は、×（−３／２）により｛４，３｝に変換される。この変換過程は最初に×１／２を求め、次に×（−３）を求めても結果は同じである。
【０１８９】
図１９は、シンドローム多項式からシンドロームＳ１，Ｓ３，Ｓ５の表現インデックスに変換し、これらの２乗、３乗、−２乗、−３乗の表現インデックスを変換×２，×３，×（−２），×（−３）で求める回路を示す。
【０１９０】
デコード回路ＤＥＣ１，ＤＥＣ２は、それぞれ１５，１７を法とした各シンドロームＳ１，Ｓ３，Ｓ５の各表現インデックス｛１５σ１（１７），１７σ１（１５）｝， ｛１５σ３（１７），１７σ３（１５）｝、 ｛１５σ５（１７），１７σ５（１５）｝を発生させる。これは先に示したプリデコーダとメインのインデックスデコーダを用いて構成される。
【０１９１】
これらの表現インデックスの成分インデックスを、図１８の変換テーブルに従ってマルチプレクサＭＵＸ１，ＭＵＸ２で変換して、このあとの加算回路での計算で利用する。マルチプレクサＭＵＸ１，ＭＵＸ２はインデックス間の対応関係に従って信号を配信するだけの分岐回路である。
【０１９２】
図２０は、図１の加算回路２３の中の一つである、有限体要素Ａ＝Ｓ３／Ｓ１３の１７を法とする表現インデックスを計算する加算回路即ち、Ａ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２０の合同式１５σＡ≡１５σ３−４５σ１（ｍｏｄ１７）の右辺を計算する回路である。
【０１９３】
入力１０１と１０２は表現インデックス成分１５σ１（１７）から変換された−４５σ１（１７）と１５σ３（１７）である。これらを５ビットの加算器１０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１０３，１０４が設けられている。
【０１９４】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１０６を介することにより、出力１０７に表現インデックスの成分１５σＡ（１７）が得られる。
【０１９５】
図２１は、図１の加算回路２３の中で有限体要素Ａ＝Ｓ３／Ｓ１３の１５を法とする表現インデックスを計算する加算回路即ち、Ａ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２０の合同式１７σＡ≡１７σ３−５１σ１（ｍｏｄ１５）の右辺を計算する回路である。
【０１９６】
入力２０１と２０２は表現インデックス成分１７σ１（１５）から変換された−５１σ１（１５）と１７σ３（１５）である。これらを４ビットの加算器２０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路２０３，２０４が設けられている。
【０１９７】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路２０６を介することにより、出力２０７に表現インデックスの成分１７σＡ（１５）が得られる。
【０１９８】
図２２は、インデックス／バイナリ変換回路１０３，１０４，２０３，２０４の構成例である。これは、剰余類を表すインデックスｉを２進数表示に変換するもの（ｉｎｄｅｘ ｔｏ ５ ｂｉｎａｒｙ，ｉｎｄｅｘ ｔｏ ４ ｂｉｎａｒｙ）で、変換されたバイナリ情報を保持するためにクロックＣＬＫでリセットされるラッチ回路１０８を有する。インデックスが入力されない場合は５ｂｉｎａｒｙ回路なら２進数の３１、４ｂｉｎａｒｙ回路なら２進数の１５である全ての信号が“Ｈ”状態を維持する。
【０１９９】
図２３は、バイナリ／インデックス変換回路１０６，２０６の構成例である。これは、２進数表示の計算結果を、次の段の計算で表現インデックス間の計算として利用できるようにインデックス信号へと再変換する必要があるため用意される。図１５Ｂのデコード回路と同様の構成を用いることができる。
【０２００】
図２４は、数ＡｍとＢｍを２進数で表した各桁の和をハーフアダー、フルアダーで求めて、１７を法としてその剰余としての和を求める５ビット加算器１０５の構成例を示している。図示のように、この加算器１０５は、５ビットの第１段加算器１０５１と、その和が１７以上であることを検出して桁上げする桁上げ補正回路１０５２と、この桁上げ補正回路１０５２と共に、和が１７以上の場合に３２に対する１７の補数１５（＝３２−１７）を加えるための第２段加算器１０５３とを有する。
【０２０１】
桁上げ補正回路１０５２は、第１段加算器１０５１の出力状態に応じて、信号ＰＦ０を発生するものである。具体的にいえば、第１段加算器１０５１の最上位ビット出力Ｓ４’が“１”でありかつ、それ以外のビット出力Ｓ０，Ｓ１’〜Ｓ３’の少なくとも一つが“１”であること、即ち和が１７以上であることを検出して、信号ＰＦ０（＝“Ｈ”）を発生するように構成されている。
【０２０２】
第２段加算器１０５３は、第１段加算器１０５１の出力が１７以上の場合に、１７の補数（０１１１１）を加えるというロジックが組まれている。
【０２０３】
図２５は同様に、１５を法としてその剰余としての和を求める４ビット加算器２０５の構成例を示している。図示のように、この加算器２０５は、４ビットの第１段加算器２０５１と、その和が１５以上であることを検出して桁上げする桁上げ補正回路２０５２と、この桁上げ補正回路２０５２と共に、和が１５以上の場合に１５の補数を加えるための第２段加算器２０５３とを有する。
【０２０４】
桁上げ補正回路２０５２は、第１段加算器２０５１の出力状態に応じて、信号ＰＦ０を発生するものである。
【０２０５】
第２段加算器２０５３は、第１段加算器２０５１の出力が１５以上の場合に、１５の補数１＝（０００１）を加えるというロジックが組まれている。
【０２０６】
これらの加算器１０５，２０５は、クロックなどの同期が必要でなく、入力が確定すれば出力も確定するようにして、システムのタイミング制御の負担を減らす構成となっている。
【０２０７】
図２６（ａ）（ｂ）及び図２７（ａ）（ｂ）は、以上の加算器１０５，２０５で用いられる、２進数の足し算を行なう基本的な単位であるフルアダー及びハーフアダーの回路記号と具体回路を示している。フルアダーは、加えるビットＡとＢをＸＯＲ回路とＸＮＯＲ回路でロジック演算を行い、桁上げ信号Ｃｉｎとのロジックを更に取って、出力としてＡ，Ｂ，Ｃｉｎの和Ｓｏｕｔと桁上げ信号Ｃｏｕｔを出力する。ハーフアダーは一般的なロジックゲートで構成できる。
【０２０８】
図２８は、図１の加算回路２４の中の一つである、有限体要素Ｂ＝Ｓ５／Ｓ１３の１７を法とする表現インデックスを計算する加算回路即ち、Ｂ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２１の合同式１５σＢ≡１５σ３−４５σ１（ｍｏｄ１７）の右辺を計算する回路である。
【０２０９】
入力３０１と３０２は表現インデックス成分１５σ１（１７）から変換された−４５σ１（１７）と１５σ５（１７）である。これらを５ビットの加算器３０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路３０３，３０４が設けられている。
【０２１０】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路３０６を介することにより、出力３０７に表現インデックス成分１５σＢ（１７）として得られる。
【０２１１】
図２９は、図１の加算回路２４の中で有限体要素Ｂ＝Ｓ５／Ｓ１３の１５を法とする表現インデックスを計算する加算回路即ち、Ｂ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２１の合同式１７σＢ≡１７σ３−５１σ１（ｍｏｄ１５）の右辺を計算する回路である。
【０２１２】
入力４０１と４０２は表現インデックス成分１７σ１（１５）から変換された−５１σ１（１５）と１７σ５（１５）である。これらを４ビットの加算器４０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路４０３，４０４が設けられている。
【０２１３】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路４０６を介することにより、出力４０７に表現インデックス成分１７σＢ（１５）が得られる。
【０２１４】
図３０は、図１の加算回路２５の中の一つである、有限体要素Ｅ＝Ｓ５／Ｓ１２の１７を法とする表現インデックスを計算する加算回路即ち、Ｅ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２２の合同式１５σＥ≡１５σ５−３０σ１（ｍｏｄ１７）の右辺を計算する回路である。
【０２１５】
入力５０１と５０２は表現インデックス成分１５σ１（１７）から変換された−３０σ１（１７）と１５σ５（１７）である。これらを５ビットの加算器５０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路５０３，５０４が設けられている。
【０２１６】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路５０６を介することにより、出力５０７に表現インデックスの成分１５σＥ（１７）が得られる。
【０２１７】
図３１は、図１の加算回路２５の中の有限体要素Ｅ＝Ｓ５／Ｓ１２の１５を法とする表現インデックスを計算する加算回路即ち、Ｅ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２２の合同式１７σＥ≡１７σ５−３４σ１（ｍｏｄ１５）の右辺を計算する回路である。
【０２１８】
入力６０１と６０２は表現インデックス成分１７σ１（１５）から変換された−３４σ１（１５）と１７σ５（１５）である。これらを４ビットの加算器６０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路６０３，６０４が設けられている。
【０２１９】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路６０６を介することにより、出力６０７に表現インデックス成分１７σＥ（１５）が得られる。
【０２２０】
図３２は、図１の加算回路２６の中の一つである、有限体要素Ｆ＝Ｓ３２／Ｓ１３の１７を法とする表現インデックスを計算する加算回路即ち、Ｆ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２３の合同式１５σＦ≡３０σ３−４５σ１（ｍｏｄ１７）の右辺を計算する回路である。
【０２２１】
入力７０１と７０２は表現インデックス成分１５σ１（１７）から変換された−４５σ１（１７）と１５σ３（１７）から変換された３０σ３（１７）である。これらを５ビットの加算器７０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路７０３，７０４が設けられている。
【０２２２】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路７０６を介することにより、出力７０７に表現インデックスの成分１５σＦ（１７）が得られる。
【０２２３】
図３３は、図１の加算回路２６の中の有限体要素Ｆ＝Ｓ３２／Ｓ１３の１５を法とする表現インデックスを計算する加算回路即ち、Ｆ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２３の合同式１７σＦ≡３４σ３−５１σ１（ｍｏｄ１５）の右辺を計算する回路である。
【０２２４】
入力８０１と８０２は表現インデックス成分１７σ１（１５）から変換された−５１σ１（１５）と１７σ３（１５）から変換された３４σ３（１５）である。これらを４ビットの加算器８０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路８０３，８０４が設けられている。
【０２２５】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路８０６を介することにより、出力８０７に表現インデックスの成分１７σＦ（１５）が得られる。
【０２２６】
加算回路２３−２６の出力は、パリティチェッカ２７−２９での計算、例えばｔ＝Ｓ１３＋Ｓ３＋Ｅ＋Ｆ等を計算するために供される。ここでの計算は有限体の要素を既約多項式と見てその係数の２を法としての和を求めるものである。そこで表現インデックスによって表された有限体の要素多項式ｐｎ（ｘ）を加えるその係数を求める方法を説明する。
【０２２７】
図３４Ａ及び図３４Ｂの表は、ｐｎ（ｘ）の次数ｍの係数と根αｎのインデックスｎと表現インデックス｛１５ｎ（１７），１７ｎ（１５）｝の関係を表現インデックス成分１７ｎ（１５）の値０〜１４ごとのグループにまとめて示した。各グループ内で表現インデックス成分１５ｎ（１７）は０から１６までが昇順に並べられている。
【０２２８】
また、ｉｎｐｕｔ １５ｎ（１７）の部分には、ｐｎ（ｘ）の係数の和を、係数が０であるところは和に寄与しないので係数が１であるときの１５ｎ（１７）の値を表示している。ｐｎ（ｘ）と表現インデックス ｛１５ｎ（１７），１７ｎ（１５）｝は一対一に対応しているので、ある表現インデックスが与えられたとき多項式のｐｎ（ｘ）の次数ｍの係数の和への寄与をこの表からデコードできる。
【０２２９】
すなわち各次数ｍについて、 ひとつの１７ｎ（１５）をゲート入力とするひとつのトランジスタの下にこの１７ｎ（１５）に属するｐｎ（ｘ）の次数ｍの係数が１である１５ｎ（１７）をゲート入力とするトランジスタが並列接続されたＮＯＲ接続を作る。すなわち表現インデックスがこのグループにヒットすれば電流パスが出来るようにする。
【０２３０】
このような接続を各１７ｎ（１５）について図３４Ａ及び図３４Ｂの表から作り、共通ノードを放電するようにする。この共通ノードがひとつの表現インデックスに対してｐｎ（ｘ）の次数ｍの係数の反転を表している。
【０２３１】
例えば次数ｍ＝７では表から、次の（１）〜（１５）のＮＯＲ接続を作る。
（１）17n(15)=0の下の15n(17)=2,7,10,12,14,16のNOR接続、
（２）17n(15)=1の下の15n(17)=0,2,4,4,7,9,10,11,15,16のNOR接続、
（３）17n(15)=2の下の15n(17)=3,4,5,6,10,16のNOR接続、
（４）17n(15)=3の下の15n(17)=0,1,3,6,8,9のNOR接続、
（５）17n(15)=4の下の15n(17)=0,4,5,9,11,12,14,15のNOR接続、
（６）17n(15)=5の下の15n(17)=0,2,3,6,7,9,11,15のNOR接続、
（７）17n(15)=6の下の15n(17)=0,1,4,5,8,9,10,16のNOR接続、
（８）17n(15)=7の下の15n(17)=1,3,4,5,6,8,11,12,14,15のNOR接続、
（９）17n(15)=8の下の15n(17)=2,3,4,5,6,7,12,14のNOR接続、
（１０）17n(15)=9の下の15n(17)=1,2,3,4,5,6,7,8,10,11,15,16のNOR接続、
（１１）17n(15)=10の下の15n(17)=0,3,6,9,10,11,12,14,15,16のNOR接続、
（１２）17n(15)=11の下の15n(17)=1,2,7,8,11,15のNOR接続、
（１３）17n(15)=12の下の15n(17)=1,8,10,11,12,14,15,16のNOR接続、
（１４）17n(15)=13の下の15n(17)=0,1,2,4,5,7,8,9,12,14のNOR接続、
（１５）17n(15)=14の下の15n(17)=0,1,2,3,6,7,8,9,10,12,14,16のNOR接続。
【０２３２】
これらのＮＯＲ接続により共通ノードが放電されるか否かにより、係数１がデコードされる。例えば｛１５ｎ（１７），１７ｎ（１５）｝＝｛１１，４｝は、１７ｎ（１５）＝４の下の１５ｎ（１７）＝０，４，５，９，１１，１２，１４，１５のＮＯＲ接続を介してノードが放電され、ｍ＝７次の係数が１であることがデコードされる。
【０２３３】
図３５は、上述の図３４Ａ及び図３４Ｂのテーブルを利用して、２ビットエラーであるか否かの判定信号となるｔ＝Ｓ１３＋Ｓ３＋Ｅ＋Ｆを計算する４ビットパリティチェッカ２９の入力デコード部の構成を示している。
【０２３４】
入力信号は、要素Ｓ１３，Ｓ３，Ｅ，Ｆそれぞれの表現インデックスであり、これらの要素毎にｍ次の係数に相当する共通ノード３５０１を有する。この共通ノード３５０１は、信号ＣＬＫで駆動されるＰＭＯＳトランジスタによりＶｄｄにプリチャージされる。
【０２３５】
各要素の共通ノード３５０１に対して、表現インデックス成分１７ｎ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５ｎ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ１，ＮＯＲ２，ＮＯＲ３，ＮＯＲ４が構成される。ＮＭＯＳトランジスタＮ１１，Ｎ１２の配置が図３４Ａ及び図３４Ｂのテーブルにより決まる。
【０２３６】
４つずつの共通ノード３５０１のパリティチェックを４ビットパリティチェッカ２９で行うことにより、ｔのｍ次の係数（ｔ）ｍが得られる。ちなみに、パリティチェッカの入力は全入力が反転されていても出力は変わらないので、ノードの放電を利用したロジックが作りやすい反転入力としている。
【０２３７】
図３６は、同様に図３４Ａ及び図３４Ｂのテーブルを利用して、数１３に関係するＣ＝（Ｓ１２＋Ｂ）／（Ａ＋１）の要素であるＳ１２＋Ｂを計算するパリティチェッカ２８の入力デコード部の構成を示している。
【０２３８】
入力信号は、要素Ｓ１２及びＢの表現インデックスであり、これらの要素毎にｍ次の係数に相当する共通ノード３６０１を有する。この共通ノード３６０１は、信号ＣＬＫで駆動されるＰＭＯＳトランジスタによりＶｄｄにプリチャージされる。
【０２３９】
各要素の共通ノード３６０１に対して、表現インデックス成分１７ｎ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５ｎ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ５，ＮＯＲ６が構成される。
【０２４０】
２つずつの共通ノード３６０１のパリティチェックを２ビットパリティチェッカ２８で行うことにより、Ｓ１２＋Ｂのｍ次の係数（Ｓ１２＋Ｂ）ｍが得られる。
【０２４１】
図３７は、同様に図３４Ａ及び図３４Ｂのテーブルを利用して、数１３に関係するＣ＝（Ｓ１２＋Ｂ）／（Ａ＋１）のＡ＋１を計算するパリティチェッカ２７の入力デコード部の構成を示している。
【０２４２】
入力信号は、要素Ａの表現インデックスであり、この要素のｍ次の係数に相当する共通ノード３７０１を有する。この共通ノード３７０１は、信号ＣＬＫで駆動されるＰＭＯＳトランジスタによりＶｄｄにプリチャージされる。
【０２４３】
各共通ノード３７０１に対して、表現インデックス成分１７ｎ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５ｎ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ７が構成される。
【０２４４】
パリティチェッカ２７は、Ａに１を加えるのみであるので、出力ｍ＝０は、共通ノード３７０１の信号を反転するインバータ２段により、他のｍはインバータ１段により構成される。これにより、Ａ＋１のｍ次の係数（Ａ＋１）ｍが得られる。
【０２４５】
以上のように、要素の和から多項式のｍ次の係数を求めた後、これを表現インデックスに変換する。即ち、要素ｔ，Ｓ１２＋Ｂ，Ａ＋１は７次の多項式として得られ、ＧＦ（２５６）の要素であるｐｎ（ｘ）のいずれかに一致している。そこで多項式をｍ１（ｘ）の根αのインデックスをｍｏｄ１７，ｍｏｄ１５によって表した表現インデックスに変換して以後の計算で利用する。
【０２４６】
図３８Ａ〜図３８Ｃは、そのような表現インデックスへの変換を行なうデコード回路の構成を示す。デコード回路は、図３８ＡのプリデコーダＰｒｅ−ＤＥＣ、図３８Ｂに示すメインのデコーダ即ち、１５σｔＤＥＣ，１７σｔＤＥＣ，１５σ(S12+B)ＤＥＣ，１７σ(S12+B)ＤＥＣ，１５σ（Ａ＋１）ＤＥＣ，１７σ（Ａ＋１）ＤＥＣと、図３８Ｃに示す補助的デコーダ，t=0ＤＥＣとを有する。
【０２４７】
図３８ＡのプリデコーダＰｒｅ−ＤＥＣは、８ビットのｐｎ（ｘ）の係数の表す２５６のバイナリ信号状態を信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉ（ｉ＝０〜３）の組合せとして表す変換を行うものであり、ＮＡＮＤ回路で構成される。８ビットのバイナリを２ビットずつ下位から区切り４進数としてそれぞれ表し、これらをＡｉ，Ｂｉ，Ｃｉ，Ｄｉとしている。
【０２４８】
このプリデコーダにより、ｔ，Ｓ１２＋Ｂ，Ａ＋１の次数ｍ＝０，１がＡｉ、ｍ＝２，３がＢｉ、ｍ＝４，５がＣｉ、ｍ＝６，７がＤｉに変換される。このプリデコーダを用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を８から４に削減できる。
【０２４９】
図３８Ｂのメインデコーダは、６種あるが各回路構成は同じで入力信号が異なるのみであるので、一つを示している。ここでは、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力する。即ち信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉを剰余類の各要素を表すデコードのＮＡＮＤ接続とこれら要素の集合を表すこれらのＮＯＲ接続で結合して、クロックＣＬＫでプリチャージされるノードを放電させ、さらに反転して剰余類のインデックス信号ｉを出力する。剰余類の数だけこの回路は必要である。ｍｏｄ１７，ｍｏｄ１５に対して先に計算した表からこれらのインデックスをつくりこれらのペアとして表現インデックスとする。
【０２５０】
ｐｎ（ｘ）＝０の場合はαのインデックスが求まらないので、後でこの状態が必要になる場合のために、図３８Ｃに示す補助的デコーダでこの状態を示す信号を発生する。即ち、Ａ０＝Ｂ０＝Ｃ０＝Ｄ０＝“１”のとき、ｔ＝０を示す信号を発生する。
【０２５１】
図３９は、図１の加算回路３２の中の一つである、有限体要素Ｔ＝ｔ／（Ａ＋１）の１７を法とする表現インデックスを計算する加算回路即ち、Ｔ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２６の合同式１５σＴ≡１５σｔ−１５σ（Ａ＋１）（ｍｏｄ１７）の右辺を計算する回路である。
【０２５２】
入力９０１と９０２はＡ＋１の表現インデックス成分１５σ（Ａ＋１）（１７）から変換された−１５σ（Ａ＋１）（１７）とｔの表現インデックス成分１５σｔ（１７）である。これらを５ビットの加算器９０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路９０３，９０４が設けられている。
【０２５３】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路９０６を介することにより、出力９０７に表現インデックスの成分１５σＴ（１７）が得られる。
【０２５４】
図４０は、図１の加算回路３２の中の有限体要素Ｔ＝ｔ／（Ａ＋１）の１５を法とする表現インデックスを計算する加算回路即ち、Ｔ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２６の合同式１７σＴ≡１７σｔ−１７σ（Ａ＋１）（ｍｏｄ１５）の右辺を計算する回路である。
【０２５５】
入力１００１と１００２はＡ＋１の表現インデックス成分１５σ（Ａ＋１）（１５）から変換された−１７σ（Ａ＋１）（１５）とｔの表現インデックス成分１７σｔ（１５）である。これらを４ビットの加算器１００５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１００３，１００４が設けられている。
【０２５６】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１００６を介することにより、出力１００７に表現インデックスの成分１７σＴ（１５）が得られる。
【０２５７】
図４１は、図１の加算回路３１の中の一つである、有限体要素Ｃ＝（Ｓ１２＋Ｂ）／（Ａ＋１）の１７を法とする表現インデックスを計算する加算回路即ち、Ｃ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２５の合同式１５σＣ≡１５σ（Ｓ１２＋Ｂ）−１５σ（Ａ＋１）（ｍｏｄ１７）の右辺を計算する回路である。
【０２５８】
入力１１０１と１１０２はＡ＋１の表現インデックス成分１５σ（Ａ＋１）（１７）から変換された−１５σ（Ａ＋１）（１７）とＳ１２＋Ｂの表現インデックス成分１７σ（Ｓ１２＋Ｂ）（１７）である。これらを５ビットの加算器１１０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１１０３，１１０４が設けられている。
【０２５９】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１１０６を介することにより、出力１１０７に表現インデックス成分１７σＣ（１７）が得られる。
【０２６０】
図４２は、図１の加算回路３１の中の有限体要素Ｃ＝（Ｓ１２＋Ｂ）／（Ａ＋１）の１５を法とする表現インデックスを計算する加算回路即ち、Ｃ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２５の合同式１７σＣ≡１７σ（Ｓ１２＋Ｂ）−１７σ（Ａ＋１）（ｍｏｄ１５）の右辺を計算する回路である。
【０２６１】
入力１２０１と１２０２はＡ＋１の表現インデックス成分１５σ（Ａ＋１）（１５）から変換された−１７σ（Ａ＋１）（１５）とＳ１２＋Ｂの表現インデックス成分１７σ（Ｓ１２＋Ｂ）（１５）である。これらを４ビットの加算器１２０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１２０３，１２０４が設けられている。
【０２６２】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１２０６を介することにより、出力１２０７に表現インデックス成分１７σＣ（１５）が得られる。
【０２６３】
図４３は、図１の加算回路３３の中の一つである、有限体要素αｚｊ＝Ｔ／ａ３の１７を法とする表現インデックスを計算する加算回路即ち、ｚｊ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２７の合同式１５ｚｊ≡１５σＴ−４５σａ（ｍｏｄ１７）の右辺を計算する回路である。
【０２６４】
入力１３０１は、σａ＝σＣ(1/2)の対応関係から信号つなぎ替えで変換された要素ａ＝Ｃ１／２の表現インデックス成分１５σａ（１７）を更に変換した−４５σａ（１７）であり、入力１３０２は、Ｔの表現インデックス成分１５σＴ（１７）である。これらを５ビットの加算器１３０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１３０３，１３０４が設けられている。
【０２６５】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１３０６を介することにより、出力１３０７に表現インデックス成分１７ｚｊ（１７）が得られる。
【０２６６】
図４４は、図１の加算回路３３の中の有限体要素αｚｊ＝Ｔ／ａ３の１５を法とする表現インデックスを計算する加算回路即ち、ｚｊ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２７の合同式１７ｚｊ≡１７σＴ−５１σａ（ｍｏｄ１５）の右辺を計算する回路である。
【０２６７】
入力１４０１は、σａ＝σＣ(1/2)の対応関係から信号つなぎ替えで変換された要素ａ＝Ｃ１／２の表現インデックス成分１７σａ（１５）を更に変換した−５１σａ（１５）であり、入力１４０２は、Ｔの表現インデックス成分１７σＴ（１５）である。これらを４ビットの加算器１４０５で加えるために、インデックスをバイナリ表示に変換するインデックス／バイナリ変換回路１４０３，１４０４が設けられている。
【０２６８】
加算結果は、バイナリをインデックスに戻すバイナリ／インデックス変換回路１４０６を介することにより、出力１４０７に表現インデックス成分１５ｚｊ（１５）が得られる。
【０２６９】
図４５は、３つのエラー位置をｚ３＋ｚ＝αｚｊからｚ＝αｊのインデックスｊとして求めるための、インデックスｊとこれがｚ３＋ｚ変換されたインデックスｚｊの対応関係をまとめたものである。ｊの順にｚｊを並べたものと、ｚｊの順にｊを並べたものを併せて示した。
【０２７０】
後者は同一のｚｊに三つのｊが対応する場合があることを示している。三つのｊが対応しないｚｊは、ぴったり３つのエラーがない場合であって解が存在しない状態であり、これらは解の探索からは最初から省いてよい。
【０２７１】
図４６は、３つのエラーがある場合に、ｚｊの表現インデックス｛１５ｚｊ（１７），１７ｚｊ（１５）｝とｊの表現インデックス成分１５ｊ（１７）の間の関係を示している。またデコードの際のバス構成との関係も併せて示している。
【０２７２】
表は１５ｊ（１７）の値ごとにまとめてグループとしている。計算で得られたｚｊの表現インデックスに対して、この表からデコーダを作るとｊの表現インデックス成分が求まる。但し同じｚｊが３つのｊに対応するので、デコードの出力を３つに分けてｊごとにデータ出力データがバスでぶつからないように３つのバスｂｓ１，ｂｓ２，ｂｓ３を設けている。
【０２７３】
例えばｚｊ＝１７にはｊ＝５１，５８，１６３が対応するのでｊ＝５１はバスｂｓ１に、ｊ＝５８はｂｓ２に、ｊ＝１６３はｂｓ２になるように、出力バスを分ける。
【０２７４】
実際のデコードで利用されるのは表現インデックスであり、ｚｊ各表現インデックスに対して各バスｂｓ１，ｂｓ２，ｂｓ３に出力されるｊの表現インデックス成分１５ｊ（１７）の値を対応させる。表現インデックス間に対応がない場合は３エラーではない。
【０２７５】
図４７は、同様に３つのエラーがある場合に、ｚｊの表現インデックス｛１５ｚｊ（１７），１７ｚｊ（１５）｝とｊの表現インデックス成分１７ｊ（１５）の間の関係を示している。またデコードの際のバス構成との関係も併せて示している。
【０２７６】
表は１５ｊ（１５）の値ごとにまとめてグループとしている。計算で得られたｚｊの表現インデックスに対して、この表からデコーダを作るとｊの表現インデックス成分が求まる。但し同じｚｊが３つのｊに対応するので、デコードの出力を３つに分けてｊごとにデータ出力データがバスでぶつからないように３つのバスｂｓ１，ｂｓ２，ｂｓ３を設けている。
【０２７７】
例えばｚｊ＝１７にはｊ＝５１，５８，１６３が対応するので、ｊ＝５１はｂｓ１に、ｊ＝５８はｂｓ２に、ｊ＝１６３はｂｓ３になるようにバスを分けているのは１５ｊ（１７）の表と同じである。
【０２７８】
実際のデコードで利用されるのは表現インデックスであり、ｚｊ各表現インデックスに対して各バスｂｓ１，ｂｓ２，ｂｓ３に出力されるｊの表現インデックス成分１７ｊ（１５）の値を対応させる。表現インデックス間に対応がない場合は３エラーではない。
【０２７９】
図４８は、図１における加算回路３４の中の一つである、有限体要素ａｚの１７を法とする表現インデックス成分１５σＸ（１７）を計算する回路部分即ち、ａｚ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２８の合同式１５σＸ≡１５σａ＋１５ｊ（ｍｏｄ１７）の右辺を計算する回路である。
【０２８０】
一方の入力１５０１はσａ＝σＣ(1/2)の対応関係から信号つなぎ替えで変換されて得られた要素ａ＝Ｃ１／２の表現インデックス成分１５σａ（１７）である。他方の入力１５０２は、ｚｊの表現インデックス１７ｚｊ（１５），１５ｚｊ（１７）を先の図４６及び図４７のテーブルによって構成されたデコーダ１５０７で対応付けした表現インデックス成分１５ｊ（１７）である。
【０２８１】
入力１５０１の１５σａ（１７）はバイナリ信号に変換するインデックス／バイナリ変換回路１５０３を通す。同様に入力１５０２の１５ｊ（１７）は、３つのエラーのそれぞれに対応した３つの５ビット加算器１５０５ａ，１５０５ｂ，１５０５ｃで加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路１５０４によって変換して、３つのバスｂｓ１，ｂｓ２，ｂｓ３にそれぞれ出力する。
【０２８２】
これらのバスｂｓ１，ｂｓ２，ｂｓ３の出力と、入力１５０１側のバイナリ出力とを、各加算器１５０５ａ，１５０５ｂ，１５０５ｃで１７を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ／インデックス変換回路１５０６ａ，１５０６ｂ，１５０６ｃを通して、表現インデックス成分１５σＸ（１７）に戻して３つのバスｂｕｓ１，ｂｕｓ２，ｂｕｓ３にそれぞれ出力する。
【０２８３】
図４９は、図１における加算回路３４の中の有限体要素ａｚの１５を法とする表現インデックス成分１７σＸ（１５）を計算する回路部分、ａｚ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２８の合同式１７σＸ≡１７σａ＋１７ｊ（ｍｏｄ１５）の右辺を計算する回路である。
【０２８４】
一方の入力１６０１はσａ＝σＣ(1/2)の対応関係から信号つなぎ替えで変換されて得られた要素ａ＝Ｃ１／２の表現インデックス成分１７σａ（１５）である。他方の入力１６０２は、ｚｊの表現インデックス１７ｚｊ（１５），１５ｚｊ（１７）を先の図４６及び図４７のテーブルによって構成されたデコーダ１６０７で対応付けした表現インデックス成分１７ｊ（１５）である。
【０２８５】
入力１６０１の１７σａ（１５）については、インデックス を２進表示に変換するインデックス／バイナリ変換回路１６０３によって変換し、入力１６０２の１７ｊ（１５）は、３つのエラーのそれぞれに対応した３つの５ビット加算器１６０５ａ，１６０５ｂ，１６０５ｃで加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路１６０４によって変換して、３つのバスｂｓ１，ｂｓ２，ｂｓ３にそれぞれ出力する。
【０２８６】
これらのバスｂｓ１，ｂｓ２，ｂｓ３の出力と、入力１６０１側のバイナリ出力とを、各加算器１６０５ａ，１６０５ｂ，１６０５ｃで１５を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ／インデックス変換回路１６０６ａ，１６０６ｂ，１６０６ｃを通して、表現インデックス成分１７σＸ（１５）に戻して３つのバスｂｕｓ１，ｂｕｓ２，ｂｕｓ３にそれぞれ出力する。
【０２８７】
図５０は、デコード回路１５０７，１６０７の構成である。ｚｊの表現インデックスから対応するｊの表現インデックスに変換するのがこれらのデコーダｚｊ（１７）ＤＥＣ，ｚｊ（１５）ＤＥＣである。ひとつのｚｊに３つのｊが対応してあるのでバスｂｓ１，ｂｓ２，ｂｓ３にそれぞれｊの表現インデックスを出力する。
【０２８８】
ｚｊの表現インデックス成分１５ｚｊ（１７），１７ｚｊ（１５）をゲート入力とするＮＡＮＤ接続によってこれらの表現インデックスを区別し、先の表に従って同じｊの表現インデックス成分に対応するグループごとにＮＯＲ接続で結合している。クロックＣＬＫでプリチャージされたノードが放電され、インバータで反転されて、ｊの表現インデックス成分１５ｊ（１７），１７ｊ（１５）がバス毎に発生される。
【０２８９】
図５１は、表現インデックスの和を加算器で計算できるように２進表示にする変換するインデックス／バイナリ変換回路１５０３，１５０４，１６０３，１６０４の回路構成である。これは先に図２２で説明した回路と同じである。
【０２９０】
図５２は、ｚｊに対応するｊが存在しない場合即ち、３つのエラーが解として求まらない場合を示す信号“ｎｏ ｉｎｄｅｘ ３ＥＣ(17)”，“ｎｏ ｉｎｄｅｘ ３ＥＣ(15)”を発生する回路である。インデックスが出なければインデックス／バイナリ変換回路の出力が全ビット“１”となるので、この状態を検出するＮＡＮＤ回路Ｇ１，Ｇ２を用いてこれらの信号発生回路が構成される。バスｂｓ１，ｂｓ２，ｂｓ３には同じ信号が発生するので、一つのバスｂｓ１のみの状態のみをモニタすれば十分である。
【０２９１】
図５３は、３つのバスｂｕｓ１，ｂｕｓ２，ｂｕｓ３上の要素ａｚの表現インデックスによってエラーが発生した実際のビット位置をＸ＝ａｚ＋Ｓ１と計算する回路、即ち図１のパリティチェッカ３５とその入力デコード回路部の構成である。この回路は各バス毎に設けられ、バスｂｕｓ１，ｂｕｓ２，ｂｕｓ３に対してそれぞれ、Ｘ１，Ｘ２，Ｘ３が得られる。
【０２９２】
入力デコード回路構成は、図３５〜図３７と同様の原理による。即ち入力信号は要素ａｚとＳ１それぞれの表現インデックスであり、これらの要素ごとにｍ次の係数に相当するノードを持ちこのノードを信号ＣＬＫでプリチャージしておく。各要素のｍ次のノードの表現インデックス信号のトランジスタゲートへの接続は表から決まる。各ｍについて各要素からの２つのノードのパリティチェック２ビットパリティチェッカ３５で行い、ａｚ＋Ｓ１のｍ次の係数である（Ｘｎ）ｍが得られる。
【０２９３】
実際のエラー位置を表す多項式Ｘｎのｍ次の係数を求めた後でこれを表現インデックスに変換する。Ｘｎは７次の多項式として得られ、ＧＦ（２５６）の要素であるｐｎ（ｘ）のいずれかに一致している。そこで多項式をｍ１（ｘ）の根αのインデックスのｍｏｄ１７，ｍｏｄ１５によって表した表現インデックスに変換して以後の計算で利用する。
【０２９４】
図５４Ａ及び図５４Ｂは、そのような表現インデックスへの変換を行なうデコード回路の構成を示す。即ちデコード回路は、図５４ＡのプリデコーダＰｒｅ−ＤＥＣと、図５４Ｂに示すメインのデコーダ即ち、１５ｎ（ｂｕｓ１）ＤＥＣ，１７ｎ（ｂｕｓ１）ＤＥＣ，１５ｎ（ｂｕｓ２）ＤＥＣ，１７ｎ（ｂｕｓ２）ＤＥＣ，１５ｎ（ｂｕｓ３）ＤＥＣ，１７ｎ（ｂｕｓ３）ＤＥＣにより構成される。
【０２９５】
図５４ＡのプリデコーダＰｒｅ−ＤＥＣは、８ビットのｐｎ（ｘ）の係数の表す２５６のバイナリ信号状態を信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉ（ｉ＝０〜３）の組合せとして表す変換であり、ＮＡＮＤ回路で構成される。８ビットのバイナリを２ビットずつ下位から区切り４進数としてそれぞれ表し、これらをＡｉ，Ｂｉ，Ｃｉ，Ｄｉとしている。
【０２９６】
このプリデコーダにより、次数ｍ＝０，１がＡｉ、ｍ＝２，３がＢｉ、ｍ＝４，５がＣｉ、ｍ＝６，７がＤｉに変換される。このブリデコーダを用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を削減できる。
【０２９７】
図５４Ｂのメインデコーダは、６種あるが各回路構成は同じで入力信号が異なるのみであるので、一つを示している。ここでは、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力する。即ち信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉを剰余類の各要素を表すデコードのＮＡＮＤ接続とこれら要素の集合を表すこれらのＮＯＲ接続で結合して、クロックＣＬＫでプリチャージされるノードを放電させ、さらに反転して剰余類のインデックス信号ｎを出力する。剰余類の数だけこの回路は必要である。ｍｏｄ１７，ｍｏｄ１５に対して先に計算した表からこれらのインデックスをつくりこれらのペアとして各バスｂｕｓ１，ｂｕｓ２，ｂｕｓ３毎の表現インデックスｎを出力する。
【０２９８】
図５５は、各バスｂｕｓ１，ｂｕｓ２，ｂｕｓ３ごとに得られたエラー位置ｎの表現インデックスを用いてエラー位置にエラー信号を発生するエラー位置デコード回路である。各バスｂｕｓ１，ｂｕｓ２，ｂｕｓ３のｎの表現インデックス成分のＮＡＮＤ接続をつくりこれらの表現インデックスを選択できるようにする。
【０２９９】
ビット位置ｎでエラーが発生した場合のエラー位置信号ｎ（３ＥＣ）（情報データビットとして利用するのはｎ＝２４〜２５４である）を発生するために、バスｂｕｓ１，ｂｕｓ２，ｂｕｓ３の表現インデックスをＮＯＲ接続で結合し、ＣＬＫでプリチャージされたノードを放電し、さらにインバータで反転して信号とする。
【０３００】
エラーが２つ以下の場合は２ＥＣシステムを用いてエラー位置の検索を行なう。このときｙ２＋ｙ＋１＝Ａを解くが、ｙ２＋ｙ＋１のインデックスをｙｉとし、ｙのインデックスをｉとすればｉとｙｉの関係が決まる。
【０３０１】
図５６は、そのインデックスｉとｙｉの対応関係をまとめたものである。ｉの順にｙｉを並べたものと、ｙｉの順にｉを並べたものを併せて示した。後者はｙｉ＝０の場合を除いて同一のｙｉに二つのｉが対応することを示している。ｙｉ＝０は１ビットエラーに対応する。
【０３０２】
なお、ｉが８５と１７０では対応するｙｉはない（有限体の要素０に対応）のでインデックスとは別の系統で解を求める。またｙｉの値が全ての２５５の剰余にわたっていないことが分かる。対応するｙｉがない場合にはエラー位置検索方程式ΛＲ（ｘ）＝０に解が存在しない。
【０３０３】
図５７は、２つ以下のエラーがある場合に、ｙｉの表現インデックス｛１５ｙｉ（１７），１７ｙｉ（１５）｝とｉの表現インデックス成分１５ｉ（１７）の間の関係を示している。またデコードの際のバス構成との関係も合わせて示している。
【０３０４】
表は１５ｉ（１７）の値ごとにまとめてグループとしている。計算で得られたｙｉの表現インデックスに対して、この表からデコーダを作るとｉの表現インデックス成分が求まる。但し同じｙｉが２つのｉに対応するので、デコード出力を２つに分けてｉごとにデータ出力データがバスでぶつからないように２つのバスｂｓ１，ｂｓ２を設けている。
【０３０５】
例えば、ｙｉ＝１７にはｉ＝１０２，２２１が対応するので、ｉ＝１０２はｂｓ１に、ｉ＝２２１はｂｓ２になるようにバスを分ける。
【０３０６】
また、ｙｉの表現インデックスが得られない要素０の場合は、Ｓ３＝０がその場合を示し、ｉ＝８５，１７０はそれぞれバスｂｓ１，ｂｓ２になる。
【０３０７】
実際のデコードで利用されるのは表現インデックスであり、ｙｉ各表現インデックスに対して各バスｂｓ１，ｂｓ２に出力されるｉの表現インデックス成分１５ｉ（１７）の値を対応させる。表現インデックス間に対応がない場合は１又は２エラーではない。
【０３０８】
図５８は、２つ以下のエラーがある場合に、ｙｉの表現インデックス｛１５ｙｉ（１７），１７ｙｉ（１５）｝とｉの表現インデックス成分１７ｉ（１５）の間の関係を示している。またデコードの際のバス構成との関係も合わせて示している。
【０３０９】
表は１７ｉ（１５）の値ごとにまとめてグループとしている。計算で得られたｙｉの表現インデックスに対して、この表からデコーダを作るとｉの表現インデックス成分が求まる。但し同じｙｉが２つのｉに対応するので、デコード出力を２つに分けてｉごとにデータ出力データがバスでぶつからないように２つのバスｂｓ１，ｂｓ２を設けている。
【０３１０】
例えば、ｙｉ＝１７にはｉ＝１０２，２２１が対応するので、ｉ＝１０２はｂｓ１に、ｉ＝２２１はｂｓ２になるようにバスを分ける。
【０３１１】
また、ｙｉの表現インデックスが得られない要素０の場合は、Ｓ３＝０がその場合を示し、ｉ＝８５，１７０はそれぞれバスｂｓ１，ｂｓ２になる。
【０３１２】
実際のデコードで利用されるのは表現インデックスであり、ｙｉ各表現インデックスに対して各バスｂｓ１，ｂｓ２に出力されるｉの表現インデックス成分１７ｉ（１５）の値を対応させる。表現インデックス間に対応がない場合は１又は２エラーではない。
【０３１３】
図５９は、図１における加算回路３０の中の一つである、有限体要素Ｘ＝ａｙ＝Ｓ１ｙの１７を法とする表現インデックス成分１５ｎ（１７）を計算する回路部分即ち、ａｙ−Ａｄｄｅｒ（ｍｏｄ１７）であり、数２４の合同式１５ｎ≡１５σ１＋１５ｉ（ｍｏｄ１７）の右辺を計算する回路である。
【０３１４】
一方の入力１７０１はシンドロームＳ１の表現インデックス成分１５σ１（１７）である。他方の入力１７０２は、ｙｉの表現インデックス１７ｙｉ（１５），１７ｙｉ（１７）を先の図５７及び図５８のテーブルによって構成されたデコーダ１７０７で対応付けした表現インデックス成分１５ｉ（１７）である。
【０３１５】
入力１７０１の１５σ１（１７）については、インデックスを２進表示に変換するインデックス／バイナリ変換回路１７０３によって変換し、入力１７０２の１５ｉ（１７）は、２つのエラーに対応した２つの５ビット加算器１７０５ａ，１７０５ｂで加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路１７０４によって変換して、２つのバスｂｓ１，ｂｓ２にそれぞれ出力する。
【０３１６】
これらのバスｂｓ１，ｂｓ２の出力と、入力１７０１側のバイナリ出力とを、各加算器１７０５ａ，１７０５ｂで１７を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ／インデックス変換回路１７０６ａ，１７０６ｂを通して、表現インデックス成分１５ｎ（１７）に戻して２つのバスｂｕｓ１，ｂｕｓ２にそれぞれ出力する。
【０３１７】
図６０は、図１における加算回路３０の中の有限体要素Ｘ＝ａｙ＝Ｓ１ｙの１５を法とする表現インデックス成分１７ｎ（１５）を計算する回路部分、ａｙ−Ａｄｄｅｒ（ｍｏｄ１５）であり、数２４の合同式１７ｎ≡１７σ１＋１７ｉ（ｍｏｄ１５）の右辺を計算する回路である。
【０３１８】
一方の入力１８０１はシンドロームＳ１の表現インデックス成分１７σ１（１５）である。他方の入力１８０２は、ｙｉの表現インデックス１７ｙｉ（１５），１７ｙｉ（１７）を先の図５７及び図５８のテーブルによって構成されたデコーダ１８０７で対応付けした表現インデックス成分１７ｉ（１５）である。
【０３１９】
入力１８０１の１５σ１（１７）については、インデックスを２進表示に変換するインデックス／バイナリ変換回路１８０３によって変換し、入力１８０２の１５ｉ（１７）は、２つのエラーのそれぞれに対応した２つの４ビット加算器１８０５ａ，１８０５ｂで加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路１８０４によって変換して、２つのバスｂｓ１，ｂｓ２にそれぞれ出力する。
【０３２０】
これらのバスｂｓ１，ｂｓ２の出力と、入力１８０１側のバイナリ出力とを、各加算器１８０５ａ，１８０５ｂで１５を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ／インデックス変換回路１８０６ａ，１８０６ｂを通して、表現インデックス成分１７ｎ（１５）に戻して２つのバスｂｕｓ１，ｂｕｓ２にそれぞれ出力する。
【０３２１】
図６１は、デコード回路１７０７，１８０７の構成である。ｙｉの表現インデックスから対応するｉの表現インデックスに変換するのがこれらのデコーダｙｉ（１７）ＤＥＣ，ｙｉ（１５）ＤＥＣである。ひとつのｙｉに２つのｉが対応してあるのでバスｂｓ１，ｂｓ２にそれぞれｉの表現インデックスを出力する。
【０３２２】
ｙｉの表現インデックス成分１５ｙｉ（１７），１７ｙｉ（１５）をゲート入力とするＮＡＮＤ接続によってこれらの表現インデックスを区別し、先の表に従って同じｉの表現インデックス成分に対応するグループごとにＮＯＲ接続で結合している。クロックＣＬＫでプリチャージされたノードが放電され、インバータで反転されて、ｉの表現インデックス成分１５ｉ（１７），１７ｉ（１５）がバス毎に発生される。
【０３２３】
図６２は、表現インデックスの和を加算器で計算できるように２進表示にする変換するインデックス／バイナリ変換回路１７０３，１７０４，１８０３，１８０４の回路構成である。これは先に図２２で説明した回路と同じである。
【０３２４】
図６３は、ｙｉに対応するｉが存在しない場合即ち、２つのエラーが解として求まらない場合を示す信号“ｎｏ ｉｎｄｅｘ ２ＥＣ(17)”，“ｎｏ ｉｎｄｅｘ ２ＥＣ(15)”を発生する回路である。インデックスが出なければインデックス／バイナリ変換回路の出力が全ビット“１”となるので、この状態を検出するＮＡＮＤ回路Ｇ１1，Ｇ1２を用いてこれらの信号発生回路が構成される。バスｂｓ１，ｂｓ２には必ず同じ信号が発生するので、一つのバスｂｓ１のみの状態のみをモニタすれば十分である。
【０３２５】
図６４は、各バスｂｕｓ１，ｂｕｓ２ごとに得られたエラー位置ｎの表現インデックスを用いてエラー位置にエラー信号を発生するエラー位置デコード回路である。各バスｂｕｓ１，ｂｕｓ２のｎの表現インデックス成分のＮＡＮＤ接続をつくりこれらの表現インデックスを選択できるようにする。
【０３２６】
ビット位置ｎでエラーが発生した場合のエラー位置信号ｎ（２ＥＣ）（情報データビットとして利用するのはｎ＝２４〜２５４である）を発生するために、ｂｕｓ１，ｂｕｓ２の表現インデックスをＮＯＲ接続で結合し、ＣＬＫでプリチャージされたノードを放電し、さらにインバータで反転して信号とする。
【０３２７】
図６５は、２ＥＣシステムと３ＥＣシステムがあるこの実施の形態において、３ビットまでのエラー検索と訂正がどのような手順で進行するかをまとめて示している。基本的にはエラーのないことがまず検出され、エラーがある場合にはその探索すべきエラーの数を拡大する方向で手順が進行する。
【０３２８】
即ちシンドローム演算の結果得られたシンドロームＳ１，Ｓ３，Ｓ５について、Ｓ１＝Ｓ３＝Ｓ５＝０であれば、エラーなしを示す信号“ｎｏ  ｅｒｒｏｒ”が出力され、いずれかが０でなければエラーが存在することになる。
【０３２９】
エラーが１乃至２に対しては、２ＥＣシステムで対応可能である。２ビットエラーの場合シンドロームＳ１，Ｓ３，Ｓ５と解Ｘ１，Ｘ２との間に、Ｓ１３＝Ｓ３＋Ｘ１Ｘ２Ｓ１，Ｓ１５＝Ｓ５＋Ｘ１Ｘ２Ｓ３なる関係があり、ｔ＝Ｓ１３＋Ｓ３＋Ｅ＋Ｆ（Ｅ＝Ｓ５／Ｓ１２，Ｆ＝Ｓ３２／Ｓ１３）とおいて、ｘ＝Ｓ１ｙなる変数変換を行い、ｙ２＋ｙ＋１＝Ａ（Ａ＝Ｓ３／Ｓ１３）を解く。
【０３３０】
１ビット乃至２ビットエラーのとき、Ｓ１＝０なら、Ｓ３＝Ｓ５＝０となるので、Ｓ１＝０でＳ３又はＳ５が０でなければ、２ＥＣシステムでは解けない。またＳ１≠０なら、ｔ＝０であり、２ＥＣシステムで解を求める。
【０３３１】
２ＥＣシステムでは１ビットエラーも解けるが、そのときの条件を見るとＳ１３＝Ｓ３，Ｓ１５＝Ｓ５であり、Ａ＝１，ｔ＝０となり、２ＥＣシステムの特別の場合に相当する。
【０３３２】
エラーが３以上のとき、３ＥＣシステムに移る。ｔ≠０又は２ＥＣシステムで解が求まらない場合、シンドロームＳ１，Ｓ３，Ｓ５と解Ｘ１，Ｘ２，Ｘ３との間に、
Ｓ１２Ｄ＋Ｓ１Ｔ＝Ｓ１３＋Ｓ３，Ｓ３Ｄ＋Ｓ１２Ｔ＝Ｓ１５＋Ｓ５（Ｄ＝Ｘ１Ｘ２＋Ｘ２Ｘ３＋Ｘ３Ｘ１，Ｔ＝Ｘ１Ｘ２Ｘ３）なる関係があり、ｘ＝ａｚ＋Ｓ１なる変数変換を行って、ｚ３＋ｚ＝Ｔ／ａ３を解く（但し、ａ＝｛（Ｓ１２＋Ｂ）／（Ａ＋１）｝１／２）。
【０３３３】
Ｓ１＝０ならＳ３＝Ｓ５＝０であるから、Ｓ３≠０又はＳ５≠０ではエラーは４つ以上あるので３ＥＣシステムでは解けない。Ｓ１≠０なら解探索を３ＥＣシステムで行い、解が求まらない場合は４ビット以上のエラーがあることになる。
【０３３４】
図６６は、図６５で説明した階層的エラー探索の分岐判定条件をまとめて示している。エラーなしでは、シンドロームＳ１，Ｓ３，Ｓ５が全て“０”であるから、各次数ｍのシンドローム係数（ｓ１）ｍ（ｍ＝０〜７），（ｓ３）ｍ（ｍ＝０〜７），（ｓ５）ｍ（ｍ＝０〜７）が全て０であることにより、エラーなしと判定される。この判定条件を、図では、（ｓ１＝０）＝１＆（ｓ３＝０）＝１＆（ｓ５＝０）＝１で示している。
【０３３５】
２ＥＣシステムへの移行条件は、Ｓ１≠０のときｔ＝０即ち、全次数ｍで（ｔ）ｍ＝１である。この判定条件は、上と同様の表記法で、（ｓ１＝０）＝０＆（ｔ＝０）＝１である。
【０３３６】
３ＥＣシステムへの分岐条件は、Ｓ１≠０のときｔ≠０又は２ＥＣシステムで解けない場合である。従ってこの条件は、（ｓ１＝０）＝０＆（ｔ＝０）＝０又は、ｎｏ ｉｎｄｅｘ ２ＥＣ＝１である。
【０３３７】
４エラー以上でＮｏｎ−Ｃｏｒｒｅｃｔａｂｌｅと判定されるのは、Ｓ１＝０でＳ３又はＳ５≠０、又は３ＥＣシステムで解けない場合である。従ってその判定条件は、（ｓ１＝０）＝１＆（ｓ３＝０）＝０／（ｓ５＝０）＝０又は、ｎｏ ｉｎｄｅｘ ３ＥＣ＝１である。
【０３３８】
２ＥＣシステムと３ＥＣシステムによって、それぞれエラー数に応じてエラー位置が検索される。
【０３３９】
図６７は、図５５に示す３ＥＣシステムの場合のエラー位置デコード回路と、図６４に示す２ＥＣシステムの場合のエラー位置デコード回路とを統合した、各バス毎に得られるエラー位置ｎの表現インデックスを用いてエラー位置信号を発生するエラー位置デコード回路を示している。
【０３４０】
２ＥＣシステムと３ＥＣシステムの分岐条件を判定する論理回路６６０を用いて、３ＥＣシステムの場合に判定信号３ＥＣ＝“１”を発生する。この判定信号３ＥＣに基づいて、３ＥＣシステムの放電パス（図５５のデコード回路）と２ＥＣシステムの放電パス（図６４のデコード回路）とを選択している。
【０３４１】
ビット位置ｎでエラーが発生した信号ｎ（ＥＣ）（情報データビットとして利用するのはｎ＝２４〜２５４）を発生するために選択されたデコーダをＮＯＲ接続で結合し、ＣＬＫでプリチャージされたノードを放電し、さらに反転して出力信号とする。
【０３４２】
図６８は、エラービット位置でのデータ訂正回路を示している。先の分岐判定条件に従って、４ビット以上のエラーがある場合即ち、（ｓ１＝０）＝１＆（ｓ３＝０）＝０／（ｓ５＝０）＝０又は、ｎｏ ｉｎｄｅｘ ３ＥＣ＝１の場合、ＮＡＮＤゲート６８１により、訂正不能を示すｎｏｎ  ｃｏｒｒｅｃｔａｂｌｅ＝１が出力される。このときメモリから読み出されたデータｄｎはそのまま出力される。
【０３４３】
０エラーではエラー訂正部からの信号は遮断してデータｄｎをそのまま出力する。1乃至３ビットのエラーの場合、各Ｉ／Ｏ部でエラーが発生していればエラーを示す信号ｎ（ＥＣ）が１となり、２ビットパリティチェッカ６８３でデータｄｎは反転されて、データｄａｔａｎとなる。２ビットパリティチェッカ６８３は、ＸＮＯＲ回路と等価であり、ＮＡＮＤゲート６８２の出力が“１”のときインバータとして働く。
【０３４４】
以上のようにこの実施の形態によると、３ビットまでのエラー訂正を数十ｎｓの演算時間で完了することが出来、ＮＡＮＤ型フラッシュメモリ等の性能を落とすことなく信頼性の向上が実現できる。
【図面の簡単な説明】
【０３４５】
【図１】この発明の実施の形態による３ＥＣ−ＥＷシステムのブロック構成を示す図である。
【図２】同実施の形態のメモリコアの構成例を示す図である。
【図３Ａ】同３ＥＣ−ＥＷシステムのチェックビット計算に用いられるデータの多項式次数の選択表（その１）である。
【図３Ｂ】同３ＥＣ−ＥＷシステムのチェックビット計算に用いられるデータの多項式次数の選択表（その２）である。
【図４】チェックビット用パリティチェッカラダーの入力デコード回路の構成を示す図である。
【図５】同パリティチェッカラダーの構成を示す図である。
【図６】同パリティチェッカラダーに用いられる２ビットパリティチェッカの回路記号と回路構成を示す図である。
【図７】同パリティチェッカラダーに用いられる４ビットパリティチェッカの回路記号と回路構成を示す図である。
【図８】シンドロームＳ１計算に使用されるデータビットの各次数の選択表を示す図であ。
【図９】シンドロームＳ１用パリティチェッカラダーの入力デコード回路の構成を示す図である。
【図１０】同パリティチェッカラダーの構成例を示す図である。
【図１１】シンドロームＳ３計算に使用されるデータビットの各次数の選択表を示す図であ。
【図１２】シンドロームＳ３用パリティチェッカラダーの入力デコード回路の構成を示す図である。
【図１３】シンドロームＳ５計算に使用されるデータビットの各次数の選択表を示す図であ。
【図１４】シンドロームＳ５用パリティチェッカラダーの入力デコード回路の構成を示す図である。
【図１５Ａ】シンドローム多項式から表現インデックスへの変換デコード回路の中のプリデコーダを示す図である。
【図１５Ｂ】同じくメインデコーダを示す図である。
【図１５Ｃ】同じく補助的デコーダを示す図である。
【図１６】ＧＦ（２５６）の要素多項式と表現インデックス成分の関係表（その１）を示す図である。
【図１７】ＧＦ（２５６）の要素多項式と表現インデックス成分の関係表（その２）を示す図である。
【図１８】ＧＦ（２５６）の要素多項式の倍数間の表現インデックスの関係を示す表である。
【図１９】シンドロームの表現インデックスへのデコード部及び表現インデックスのマルチプレクサ部の構成を示す図である。
【図２０】合同式計算のための加算回路Ａ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図２１】同じく加算回路Ａ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図２２】これらの加算回路におけるインデックスをバイナリに変換するインデックス／バイナリ変換回路の構成を示す図である。
【図２３】同じくバイナリをインデックスに変換するバイナリ／インデックス変換回路の構成を示す図である。
【図２４】Ａ−Ａｄｄｅｒ（ｍｏｄ１７）における５ビット加算器の構成を示す図である。
【図２５】Ａ−Ａｄｄｅｒ（ｍｏｄ）における４ビット加算器の構成を示す図である。
【図２６】加算器に用いられるフルアダーの回路記号と回路構成を示す図である。
【図２７】加算器に用いられるハーフアダーの回路記号と回路構成を示す図である。
【図２８】他の合同式計算のための加算回路Ｂ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図２９】同じく加算回路Ｂ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図３０】他の合同式計算のための加算回路Ｅ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図３１】同じく加算回路Ｅ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図３２】他の合同式計算のための加算回路Ｆ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図３３】同じく加算回路Ｆ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図３４Ａ】ＧＦ（２５６）要素の表現インデックスと多項式係数の対応で使用される各次数での選択表（その１）を示す図である。
【図３４Ｂ】ＧＦ（２５６）要素の表現インデックスと多項式係数の対応で使用される各次数での選択表（その２）を示す図である。
【図３５】要素ｔを係数の和として求めるパリティチェック回路の構成を示す図である。
【図３６】要素ＢとＳ１２を係数の和として求めるパリティチェック回路の構成を示す図である。
【図３７】要素Ａと１を係数の和として求めるパリティチェック回路の構成を示す図である。
【図３８Ａ】要素多項式の係数から表現インデックスを発生するデコード回路の中のプリデコーダを示す図である。
【図３８Ｂ】同じくメインデコーダを示す図である。
【図３８Ｃ】同じく補助的デコーダを示す図である。
【図３９】他の合同式計算のための加算回路Ｔ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図４０】同じく加算回路Ｔ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図４１】他の合同式計算のための加算回路Ｃ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図４２】同じく加算回路Ｃ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図４３】他の合同式計算のための加算回路ｚｊ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図４４】同じく加算回路ｚｊ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図４５】ｚ３＋ｚの指数ｚｊとｚの指数ｊの対応表である。
【図４６】ｚｊの表現インデックスとｊの表現インデックス成分とデータバスの対応関係表（その１）である。
【図４７】ｚｊの表現インデックスとｊの表現インデックス成分とデータバスの対応関係表（その２）である。
【図４８】他の合同式計算のための加算回路ａｚ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図４９】同じく加算回路ａｚ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図５０】これらの加算回路におけるデコード回路の構成を示す図である。
【図５１】同じくインデックスをバイナリに変換するインデックス／バイナリ変換回路の構成を示す図である。
【図５２】同じくｎｏ ｉｎｄｅｘ信号の発生回路である。
【図５３】ａｚ＋Ｓ１を多項式の係数の和として計算するパリティチェック回路を示す図である。
【図５４Ａ】要素の多項式係数から表現インデックスを生成するデコード回路のプリデコーダ構成を示す図である。
【図５４Ｂ】同じくメインデコーダ構成を示す図である。
【図５５】３ＥＣシステムでエラー位置の表現インデックスからエラー位置信号を発生するデコーダの構成を示す図である。
【図５６】ｙ２＋ｙ＋１の指数ｙｉとｙの指数ｉの対応表である。
【図５７】ｙｉの表現インデックスとｉの表現インデックス成分とデータバスの対応関係表（その１）である。
【図５８】ｙｉの表現インデックスとｉの表現インデックス成分とデータバスの対応関係表（その２）である。
【図５９】他の合同式計算のための加算回路ａｙ−Ａｄｄｅｒ（ｍｏｄ１７）の構成を示す図である。
【図６０】同じく加算回路ａｙ−Ａｄｄｅｒ（ｍｏｄ１５）の構成を示す図である。
【図６１】これらの加算回路におけるデコード回路の構成を示す図である。
【図６２】同じくインデックスをバイナリに変換するインデックス／バイナリ変換回路の構成を示す図である。
【図６３】同じくｎｏ ｉｎｄｅｘ信号の発生回路である。
【図６４】２ＥＣシステムでエラー位置の表現インデックスからエラー位置信号を発生するデコーダの構成を示す図である。
【図６５】その実施の形態のエラー探索の階層を説明するための図である。
【図６６】エラー数の分岐判定条件を示す図である。
【図６７】２ＥＣシステムと３ＥＣシステムとで統合した、エラー位置信号を発生するデコーダの構成を示す図である。
【図６８】各ビットのデータエラー訂正回路を示す図である。
【符号の説明】
【０３４６】
１０…メモリコア、２１…エンコード部、２２…シンドローム演算部、２３〜２６…加算回路、２７，２８，２９…パリティチェッカ、３０〜３４…加算回路、３５…パリティチェッカ、３６…Ｎｏ Ｅｒｒｏｒ信号発生回路、３７…Ｎｏｎ Ｃｏｒｒｅｃｔａｂｌｅ信号発生回路、３８…エラー訂正回路、４０，５０…パリティチェッカラダー、４１，５１…入力回路、４２，５２…共通ノード、４３，５３…インバータ、（１０１，１０２，２０１，２０２，…，１８０１，１８０２）…入力、（１０３，１０４，２０３，２０４，…，１８０３，１８０４）…インデックス／バイナリ変換回路、（１０５，２０５，…，１８０５ａ，１８０５ｂ）…加算器、（１０６，２０６，…，１８０６）…バイナリ／インデックス変換回路、（１０７，２０７，…，１８０７）…出力。
【図１】
2008052866.tif 000031
【図２】
2008052866.tif 000032
【図３Ａ】
2008052866.tif 000033
【図３Ｂ】
2008052866.tif 000034
【図４】
2008052866.tif 000035
【図５】
2008052866.tif 000036
【図６】
2008052866.tif 000037
【図７】
2008052866.tif 000038
【図８】
2008052866.tif 000039
【図９】
2008052866.tif 000040
【図１０】
2008052866.tif 000041
【図１１】
2008052866.tif 000042
【図１２】
2008052866.tif 000043
【図１３】
2008052866.tif 000044
【図１４】
2008052866.tif 000045
【図１５Ａ】
2008052866.tif 000046
【図１５Ｂ】
2008052866.tif 000047
【図１５Ｃ】
2008052866.tif 000048
【図１６】
2008052866.tif 000049
【図１７】
2008052866.tif 000050
【図１８】
2008052866.tif 000051
【図１９】
2008052866.tif 000052
【図２０】
2008052866.tif 000053
【図２１】
2008052866.tif 000054
【図２２】
2008052866.tif 000055
【図２３】
2008052866.tif 000056
【図２４】
2008052866.tif 000057
【図２５】
2008052866.tif 000058
【図２６】
2008052866.tif 000059
【図２７】
2008052866.tif 000060
【図２８】
2008052866.tif 000061
【図２９】
2008052866.tif 000062
【図３０】
2008052866.tif 000063
【図３１】
2008052866.tif 000064
【図３２】
2008052866.tif 000065
【図３３】
2008052866.tif 000066
【図３４Ａ】
2008052866.tif 000067
【図３４Ｂ】
2008052866.tif 000068
【図３５】
2008052866.tif 000069
【図３６】
2008052866.tif 000070
【図３７】
2008052866.tif 000071
【図３８Ａ】
2008052866.tif 000072
【図３８Ｂ】
2008052866.tif 000073
【図３８Ｃ】
2008052866.tif 000074
【図３９】
2008052866.tif 000075
【図４０】
2008052866.tif 000076
【図４１】
2008052866.tif 000077
【図４２】
2008052866.tif 000078
【図４３】
2008052866.tif 000079
【図４４】
2008052866.tif 000080
【図４５】
2008052866.tif 000081
【図４６】
2008052866.tif 000082
【図４７】
2008052866.tif 000083
【図４８】
2008052866.tif 000084
【図４９】
2008052866.tif 000085
【図５０】
2008052866.tif 000086
【図５１】
2008052866.tif 000087
【図５２】
2008052866.tif 000088
【図５３】
2008052866.tif 000089
【図５４Ａ】
2008052866.tif 000090
【図５４Ｂ】
2008052866.tif 000091
【図５５】
2008052866.tif 000092
【図５６】
2008052866.tif 000093
【図５７】
2008052866.tif 000094
【図５８】
2008052866.tif 000095
【図５９】
2008052866.tif 000096
【図６０】
2008052866.tif 000097
【図６１】
2008052866.tif 000098
【図６２】
2008052866.tif 000099
【図６３】
2008052866.tif 000100
【図６４】
2008052866.tif 000101
【図６５】
2008052866.tif 000102
【図６６】
2008052866.tif 000103
【図６７】
2008052866.tif 000104
【図６８】
2008052866.tif 000105