(57)【要約】  エラー検出訂正システムを有する半導体記憶装置は、メモリセルアレイと、前記メモリセルアレイに書き込むデータを所定ビット数のまとまりであるシンボル毎にシンボル化し、解を表現するデコーダについての方程式を解いて前記メモリセルアレイから読み出されたデータのエラーを検出し、検出エラーに基づきデータを訂正し、訂正されたデータを他のデータの他の処理とは並列して出力するエラー検出訂正システムとを供えたエラー検出訂正システムを有する。
2010518464.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと、
前記メモリセルアレイに書き込むデータを所定ビット数のまとまりであり、ガロア体の有限体要素に対応するシンボル毎にシンボル化し、特定のインデックスで表現された解要素を表現するデコーダについての有限体要素の方程式を解いて前記メモリセルアレイから読み出されたデータのエラーを検出し、検出エラーに基づきデータを訂正し、訂正されたデータを次のデータの他のエラー検出訂正と並列に出力するエラー検出訂正システムと
を備えたエラー検出訂正システムを有する半導体記憶装置。
【請求項２】
メモリセルアレイと、
前記メモリセルアレイに書き込むデータを所定ビット数のまとまりであり、ガロア体の有限体要素に対応するシンボル毎にシンボル化し、特定のインデックスで表現された解要素を表現するデコーダについての有限体要素の方程式を解いて前記メモリセルアレイから読み出されたデータのエラーを検出し、検出エラーに基づきデータを訂正し、訂正されたデータを出力するエラー検出訂正システムと
を備えたエラー検出訂正システムを有する半導体記憶装置。
【請求項３】
前記エラー検出訂正システムは、エラー位置探索方程式について解の候補のテーブルを予め作成しておき、このテーブルを用いて根のインデックスを求めて、シンボルエラーを検出訂正するものであって、
前記エラー位置探索方程式に対して変数部分とシンドローム部分とを分離する変数変換を行い、その変数部分に代入する有限体要素とシンドローム部分に代入する有限体要素のインデックスの対応関係を利用して、シンボルエラー位置を検出する
ことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項４】
前記エラー検出訂正システムは、シンボルエラー位置検出と訂正のインデックス計算において、ゼロ元を除く有限体ＦＧ（２ｍ）の要素数をほぼ同じ大きさの互いに素な整数因子に分けて、有限体要素の原始根のインデックスをそれぞれの整数因子を法とする剰余で表す表現インデックスを用いる
ことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項５】
前記エラー検出訂正システムは、前記メモリセルアレイに書き込むべきデータを所定ビット数ずつ原始多項式の既約剰余多項式の係数に対応させる
ことを特徴とする請求項１または２記載の半導体記憶装置。
【請求項６】
前記エラー検出訂正システムは、有限体ＧＦ（２ｍ）の要素数をほぼ同じ大きさの互いに素な整数因子に分けて、有限体要素の原始根のインデックスをそれぞれの整数因子を法とする剰余として表される表現インデックスを用い、前記メモリセルアレイに書き込むべきコードデータを表現インデックスの２進数表示として、またはその２進数表示から更に変換して得られるコードとして構成する
ことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項７】
前記エラー検出訂正システムは、
前記メモリセルアレイの読み出しデータを交互に取り込む第１及び第２のデータレジスタと、
前記第１及び第２のデータレジスタの読み出しデータのエラー検出と訂正を行うエラー検出訂正部とを備えて、
第１及び第２のデータレジスタの一方において読み出しデータについて前記エラー検出訂正部でエラー検出と訂正を行い、訂正されたデータを上書き保存する動作を行っている間、他方において上書き保存されたデータの出力動作を行う
ことを特徴とする請求項１又は２記載の半導体記憶装置。
【請求項８】
前記エラー検出訂正システムは、前記メモリセルアレイに書き込むデータをバイト毎に有限体ＧＦ（２５６）の要素に対応させて有限体要素としてシンボル化し、前記メモリセルアレイの読み出しデータからエラーが発生したシンボルを検出してデータ訂正を行い、
前記エラー検出訂正システムは、有限体の要素数２５５を互いに素な因子１７と１５に分けて、有限体要素の原始根のインデックスを、１７を法とする剰余としての表現インデックスａ（１７）及び１５を法とする剰余としての表現インデックスｂ（１５）により表し、
シンボル化すべきバイトデータを４ビットずつ上位部分と下位部分に分けて、ａ（１７）が０〜１５のとき、上位部分をａ（１７）の２進数表示、下位部分をｂ（１５）の２進数表示とみなし、ａ（１７）が１６のとき、上位部分をｂ（１５）の２進数表示、下位部分をａ（１７）の２進数表示とみなし、全ビットが１のとき有限体要素のゼロ元とみなす
ことを特徴とする請求項１または２記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体記憶装置に係り、特にそのエラー検出訂正システムに関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリであるフラッシュメモリは、書き換え回数の増加と共にエラー率が大きくなる。特に、大容量化と製造プロセスの微細化が進むと、エラー率は上昇する。大容量化のためにデータを多値化すれば、更にエラー率は上昇する。このためフラッシュメモリにＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）システムを搭載することは重要な技術となる。
【０００３】
フラッシュメモリチップ内に、或いはこれを制御するメモリコントローラ内にＥＣＣ回路を搭載することは、従来より提案されている（例えば、特許文献１参照）。
【０００４】
有限ガロア体ＧＦ（２ｎ）を利用するＥＣＣシステムで２ビット以上のエラー訂正を行う場合、エラー位置探索方程式の解を求めるのに有限体の要素を逐次代入して方程式を満足させる要素を解として選択してエラー位置探索を行うと、演算時間は膨大になり、オンチップとした場合にメモリの読み出しや書き込み性能を大幅に低下させる。
【０００５】
そこで、その様な逐次検索を行わず、従ってフラッシュメモリの性能を犠牲にしないような高速のＥＣＣシステムが望まれる。
【特許文献１】特開２０００−１７３２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、シンボルデータエラー訂正システムを含む半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一態様においては、メモリセルアレイと、前記メモリセルアレイに書き込むデータを所定ビット数のまとまりであるシンボル毎にシンボル化し、解を表現するデコーダについての方程式を解いて前記メモリセルアレイから読み出されたデータのエラーを検出し、検出エラーに基づきデータを訂正し、訂正されたデータを他のデータの他の処理とは並列して出力するエラー検出訂正システムとを供えたエラー検出訂正システムを有する半導体記憶装置が提供される。
【発明の効果】
【０００８】
この発明によると、オンチップ・シンボルデータエラー訂正システムを含む半導体記憶装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】２５５を法とする表現インデックスの成分間の関係を示す表である。
【図２】αｎ のインデックスｎと図１に示した２つの表現インデックスによる表現の対応を示す表である。
【図３】実施の形態のＥＣＣシステムの構成を示す図である。
【図４】同ＥＣＣシステムが適用されるメモリコアの構成例である。
【図５】同ＥＣＣシステムのエンコード／デコード法の３ケースを示す図である。
【図６】同ＥＣＣシステムのコード多項式の生成法を説明するための図である。
【図７】同じくコード計算システムを示す図である。
【図８】図７で用いられるシフトレジスタＳＲやクロック回路の構成を示す。
【図９】ＧＦ（２５６）の要素の係数プリデコードと、表現インデックスの１７を法とした成分との対応表である。
【図１０】ＧＦ（２５６）の要素の係数プリデコードと、表現インデックスの１５を法とした成分との対応表である。
【図１１】入力データの取り込みとデータをコード計算システムに渡す際のクロックの関係について説明するための図である。
【図１２】図７のプリ／インデックスデコード回路７００のプリデコード回路７００ａを示す図である。
【図１３】図７のプリ／インデックスデコード回路７００のインデックスデコード回路７００ｂを示す図である。
【図１４】図７のプリ／インデックスデコード回路７００のインデックス／バイナリ変換回路７００ｃを示す図である。
【図１５】図７の各加算部におけるゼロ判定回路７１１の構成を示す図である。
【図１６】図７の各加算部におけるバイナリ／インデックス変換回路７１２の構成を示す図である。
【図１７】コード計算システムのアダー（ａｇｉアダー）のなかの１７を法として成分計算する回路構成である。
【図１８】コード計算システムのアダー（ａｇｉアダー）のなかの１５を法として成分計算する回路構成である。
【図１９Ａ】図１７のアダー１７３の具体回路構成を示す図である。
【図１９Ｂ】同アダーの回路記号を示す図である。
【図２０Ａ】図１８のアダー１８３の具体回路構成を示す図である。
【図２０Ｂ】同アダーの回路記号を示す図である。
【図２１】フルアダーの回路記号と具体回路構成を示す図である。
【図２２】ハーフアダーの回路記号と具体回路構成を示す図である。
【図２３Ａ】ＧＦ（２５６）の要素の係数と表現インデックスの対応関係を示す表（その１）である。
【図２３Ｂ】ＧＦ（２５６）の要素の係数と表現インデックスの対応関係を示す表（その２）である。
【図２４】４ビットパリティチェッカ・ラダー７０７の入力デコード部７０６の構成を示す図である。
【図２５】４ビットパリティチェッカ・ラダー７０７の構成例を示す図である。
【図２６】２ビットパリティチェッカの回路記号と具体回路構成を示す図である。
【図２７】４ビットパリティチェッカの回路記号と具体回路構成を示す図である。
【図２８】２系統のデータラッチを用いたデータ読み出し動作のタイミング同期を説明するための図である。
【図２９】シンドローム計算システムの構成を示す図である。
【図３０】同シンドローム計算システムにおけるプリデコーダの構成を示す図である。
【図３１】同シンドローム計算システムにおけるインデックスデコーダの構成を示す図である。
【図３２】同シンドローム計算システムにおけるインデックス／バイナリ変換回路の構成を示す図である。
【図３３】同シンドローム計算システムにおけるゼロ判定回路の構成を示す図である。
【図３４】同シンドローム計算システムにおけるアダー回路のなかのαｉｄｉ（１７）アダーの構成を示す図である。
【図３５】同シンドローム計算システムにおけるアダー回路のなかのαｉｄｉ（１５）アダーの構成を示す図である。
【図３６】同アダー回路出力部のバイナリ／インデックス変換回路の構成を示す図である。
【図３７】αｉｄｊアダーのαのインデックス入力部の構成を示す。
【図３８】ｎの表現インデックス{１５ｎ（１７）,１７ｎ（１５）}の成分インデックスの変換関係テーブルを示す。
【図３９】αｉｄｊアダーで用いられるαｎ の表現インデックスの成分の関係を示すテーブルである。
【図４０】シンドローム計算のアダー出力の和を求める４ビットパリティチェッカの入力部インデックスデコーダの構成例である。
【図４１】同じくシンドローム計算のアダー出力の和を求める４ビットパリティチェッカの入力部インデックスデコーダの他の構成例である。
【図４２】エラー検索の第１段階アダー回路の入力部のプリデコード回路を示す図である。
【図４３】同プリデコード回路出力をデコードするインデックスデコード回路を示す図である。
【図４４】Ｓ０＝０状態を検出するゼロデコード回路を示す図である。
【図４５】エラー検索の第１段階アダー回路の入力部構成を示す図である。
【図４６】同じくＳｍＳｎアダー（１７）の構成を示す図である。
【図４７】同じくＳｍＳｎアダー（１５）の構成を示す図である。
【図４８】同じくＳ１／Ｓ０アダー（１７）の構成を示す図である。
【図４９】同じくＳ１／Ｓ０アダー（１５）の構成を示す図である。
【図５０】エラー検索の第１段階パリティチェッカの構成を示す図である。
【図５１】エラー検索の第１段階パリティチェッカの他の構成を示す図である。
【図５２】エラー検索の第２段階アダー回路の入力部のプリデコード回路を示す図である。
【図５３】同プリデコード回路出力をデコードするインデックスデコード回路を示す図である。
【図５４】Ａ０＝０，Ｂ０＝０状態を検出するゼロデコード回路を示す図である。
【図５５】エラー検索の第２段階アダー回路の一つＡＣアダー（１７）の構成を示す図である。
【図５６】エラー検索の第２段階アダー回路の一つＡＣアダー（１５）の構成を示す図である。
【図５７】エラー検索の第２段階アダー回路の一つａアダー（１７）の構成を示す図である。
【図５８】エラー検索の第２段階アダー回路の一つａアダー（１５）の構成を示す図である。
【図５９】エラー検索の第３段階アダー回路の一つＤアダー（１７）の構成を示す図である。
【図６０】エラー検索の第３段階アダー回路の一つＤアダー（１５）の構成を示す図である。
【図６１】エラー検索の第３段階アダー回路の一つＳ１／ａアダー（１７）の構成を示す図である。
【図６２】エラー検索の第３段階アダー回路の一つＳ１／ａアダー（１５）の構成を示す図である。
【図６３】エラー検索の最終段階アダー回路の入力部のデコーダを構成するためのインデックスｋとｙｋの対応関係をまとめたテーブルである。
【図６４】同じく２エラーの場合の表現インデックス｛１５ｙｋ（１７），１７ｙｋ（１５）｝と表現インデックス成分１５ｋ（１７）の関係を示すテーブルである。
【図６５】同じく２エラーの場合の表現インデックス｛１５ｙｋ（１７），１７ｙｋ（１５）｝と表現インデックス成分１７ｋ（１５）の関係を示すテーブルである。
【図６６】エラー検索の最終段アダー回路の一つａｙアダー（１７）の構成を示す図である。
【図６７】エラー検索の最終段アダー回路の一つａｙアダー（１５）の構成を示す図である。
【図６８】図６６，６７のアダー回路入力部のデコード回路構成を示す図である。
【図６９】同じくインデックス／バイナリ変換回路の構成を示す図である。
【図７０】ｎｏ ｉｎｄｅｘ信号を発生するためのデコーダを示す図である。
【図７１】アダー回路出力部のバイナリ／インデックス変換回路の構成を示す図である。
【図７２】エラー検索の最終段アダー回路の一つＳ０ｙアダー（１７）の構成を示す図である。
【図７３】エラー検索の最終段アダー回路の一つＳ０ｙアダー（１５）の構成を示す図である。
【図７４】シンボルエラーＥｎを計算するための２ビットパリティチェッカとその入力デコーダ部の回路構成である。
【図７５】２エラーの場合のエラー位置デコーダ構成を示す図である。
【図７６】１エラーの場合のエラー位置デコーダ構成を示す図である。
【図７７】図７５及び図７６のエラー位置デコーダを統合したエラー位置デコーダを示す図である。
【図７８】シンボル訂正に用いられる各種ゲート回路を示す図である。
【図７９】エラー訂正回路の構成を示す図である。
【図８０】訂正されたコード多項式から情報多項式を再構成する計算法を示す図である。
【図８１】同じく情報多項式の計算システム構成を示す図である。
【図８２】同計算システムに用いられるタイミング制御回路を示す図である。
【図８３】同計算システムの入出力部プリ／インデックスデコード回路におけるプリデコード回路の構成を示す図である。
【図８４】同じくプリ／インデックスデコード回路におけるインデックスデコード回路の構成を示す図である。
【図８５】同インデックスデコード回路出力部のインデックス／バイナリ変換回路の構成を示す図である。
【図８６】同計算システムの各アダー系に用いられるゼロ判定回路の構成を示す図である。
【図８７】同計算システムの各アダー系出力部に用いられるバイナリ／インデックス変換回路の構成を示す図である。
【図８８】同計算システムの４ビットパリティチェッカ・ラダーの入力デコード部の構成を示す図である。
【図８９】同４ビットパリティチェッカ・ラダーの構成を示す図である。
【図９０】インデックスデコーダを減らすケースＣ．２でのコード生成法を説明するための図である。
【図９１】同じくケースＣ．２でのコード計算システムを示す図である。
【図９２Ａ】同じくケースＣ．２でのＧＦ（２５６）の要素とバイトデータの対応を示すテーブル（その１）である。
【図９２Ｂ】同じくケースＣ．２でのＧＦ（２５６）の要素とバイトデータの対応を示すテーブル（その２）である。
【図９３】図９１のコード計算システムにおけるシンボルＭＵＸ回路を示す図である。
【図９４】同コード計算システムにおけるゼロ判定回路を示す図である。
【図９５】ケースＣ．２でメモリに有限体要素を表現インデックスのシンボルデータとして記憶させるための概要を示す図である。
【図９６】図９５のプリ／インデックスデコード部のプリデコード回路を示す図である。
【図９７】同プリ／インデックスデコード部のインデックスデコード回路を示す図である。
【図９８】同インデックスデコード回路の出力部のインデックス／バイナリ変換回路を示す図である。
【図９９】図９５のｄｅＭＵＸ回路を示す図である。
【図１００】２系統のデータラッチを用いたデータ読み出し動作のタイミング同期を説明するための図である。
【図１０１】同じく２系統のデータラッチを用いたデータ読み出し動作のデータフローを示す図である。
【図１０２】同データラッチの具体構成を示す図である。
【図１０３】シンボル訂正部の具体構成を示す図である。
【図１０４】シンドローム計算システムの回路構成を示す図である。
【図１０５】シンボルＭＵＸ回路の構成を示す図である。
【図１０６】ゼロ判定回路の構成を示す図である。
【図１０７】バイナリ／インデックス変換回路の構成を示す図である。
【図１０８】ｂｂｉデコーダ回路の構成を示す図である。
【図１０９】ｆ（ｘ）計算システムの構成を示す図である。
【図１１０】同計算システムに用いられるクロック回路を示す図である。
【図１１１】同計算システムの出力部のｄｅＭＵＸ回路の構成を示す図である。
【図１１２】ケースＣ．３でのｃ（ｘ）計算システムの構成を示す図である。
【図１１３】同ｃ（ｘ）計算システムに用いられるクロック及びシフトレジスタを示す図である。
【図１１４】ケースＣ．３でのｆ（ｘ）再構成法を説明するための図である。
【図１１５】そのｆ（ｘ）計算システムの具体構成例（１）を示す図である。
【図１１６】同じくｆ（ｘ）計算システムの具体構成例（２）を示す図である。
【図１１７】同ｆ（ｘ）計算システムの具体構成例（２）で用いられるクロック及びシフトレジスタを示す図である。
【図１１８】同じくｆ（ｘ）計算システムの具体構成例（３）を示す図である。
【発明を実施するための最良の形態】
【００１０】
この発明の一態様においては、前記エラー検出訂正システムは、前記メモリセルアレイに書き込むデータを所定ビット数のまとまりであり、ガロア体の有限体要素に対応するシンボル毎にシンボル化し、特定のインデックスで表現された解要素を表現するデコーダについての有限体要素の方程式を解いて前記メモリセルアレイから読み出されたデータのエラーを検出し、検出エラーに基づきデータを訂正し、訂正されたデータを他のデータの他の処理と並列に出力するように構成される。
【００１１】
この発明の他の態様においては、前記エラー検出訂正システムは、エラー位置探索方程式について解の候補のテーブルを予め作成しておき、このテーブルを用いて根のインデックスを求めて、シンボルエラーを検出訂正する。前記エラー検出訂正システムは、前記エラー位置探索方程式に対して変数部分とシンドローム部分とを分離する変数変換を行い、その変数部分に代入する有限体要素とシンドローム部分に代入する有限体要素のインデックスの対応関係を利用して、シンボルエラー位置を検出する。
この発明の他の態様においては、前記エラー検出訂正システムは、シンボルエラー位置検出と訂正のインデックス計算において、ゼロ元を除く有限体ＧＦ（２ｍ）の要素数をほぼ同じ大きさの互いに素な整数因子に分けて、有限体要素の原始根のインデックスをそれぞれの整数因子を法とする剰余で表す表現インデックスを用いる。
この発明の他の態様においては、前記エラー検出訂正システムは、前記メモリセルアレイに書き込むべきデータを所定ビット数ずつ原始多項式の既約剰余多項式の係数に対応させ、その既約剰余多項式とコード生成多項式とのかけ算により、前記所定ビット数ずつシンボル化されたコードデータを生成する。
【００１２】
この発明の他の態様においては、前記エラー検出訂正システムは、有限体ＧＦ（２ｍ）の要素数をほぼ同じ大きさの互いに素な整数因子に分けて、有限体要素の原始根のインデックスをそれぞれの整数因子を法とする剰余として表される表現インデックスを用い、前記メモリセルアレイに書き込むべきコードデータを表現インデックスの２進数表示として、またはその２進数表示から更に変換して得られるコードとして構成する。
この発明の他の態様においては、前記エラー検出訂正システムは、前記メモリセルアレイの読み出しデータを交互に取り込む第１及び第２のデータレジスタと、前記第１及び第２のデータレジスタの読み出しデータのエラー検出と訂正を行うエラー検出訂正部とを備えて、第１及び第２のデータレジスタの一方において読み出しデータについて前記エラー検出訂正部でエラー検出と訂正を行い、訂正されたデータを上書き保存する動作を行っている間、他方において上書き保存されたデータの出力動作を行う。
【００１３】
この発明の他の態様においては、エラー検出訂正システムは、前記メモリセルアレイに書き込むデータをバイト毎に有限体ＧＦ（２５６）の要素に対応させて有限体要素としてシンボル化し、前記メモリセルアレイの読み出しデータからエラーが発生したシンボルを検出してデータ訂正する。前記エラー検出訂正システムは、有限体の要素数２５５を互いに素な因子１７と１５に分けて、有限体要素の原始根のインデックスを、１７を法とする剰余としての表現インデックスａ（１７）及び１５を法とする剰余としての表現インデックスｂ（１５）により表し、
シンボル化すべきバイトデータを４ビットずつ上位部分と下位部分に分けて、ａ（１７）が０〜１５のとき、上位部分をａ（１７）の２進数表示、下位部分をｂ（１５）の２進数表示とみなし、ａ（１７）が１６のとき、上位部分をｂ（１５）の２進数表示、下位部分をａ（１７）の２進数表示とみなし、全ビットが１のとき有限体要素のゼロ元とみなす。
【００１４】
メモリにＥＣＣシステムを搭載する際には、リアルタイムでデータ訂正を行なう必要があるために高速の計算処理が要求される。また、ランダムなエラー発生に対してはＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）コードやＲＳ（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）コードを用いたＥＣＣが有効であることは知られている。ここでは、ＲＳコードを用いた高速のオンチップ・シンボルエラー検出訂正システムを提案する。
【００１５】
ＲＳコードを用いたＥＣＣシステムでは、一定のデータビットのまとまりを有限体要素に対応させて有限体要素としてシンボル化し、エラーが発生したシンボルを検出してそのエラー訂正を行う。この場合シンボル内のエラーであればシンボルとしてコード化したビット数までのエラーを訂正できるので、エラー訂正率は、ＢＣＨコードを用いた場合より向上する。
【００１６】
高速にエラー検出演算を行なうには、予め作成しておいた解のテーブルとメモリからの読み出しデータから計算されたシンドロームを比較して、エラー位置探索方程式の解を求める。このシンドローム比較を行うには、エラー位置探索方程式で未知数を含む変数部分とシンドローム部分とが分離した方程式を、変数変換を利用して作ることが鍵となる。
【００１７】
以下の実施の形態では、２シンボルエラー訂正の場合に、その変数変換の方法としてパラメータをうまく設定するとこの変数部分とシンドローム部分の分離が行なえることを示す。また解のテーブルとシンドロームとの比較は、有限体要素のインデックス間の比較により行うが、その際に“表現インデックス”という概念を導入することで、短い計算の並列演算として高速に行なうことが出来ることを示す。
【００１８】
このようなＲＳコードを用いたＥＣＣシステムをフラッシュメモリにオンチップで搭載することによって、メモリ外部からはメモリの性能を落とさずにデータ保持の信頼性を向上させることができる。
【００１９】
ＲＳコードを用いたこの実施の形態のＥＣＣシステムの特長をまとめると、次の通りである。
【００２０】
（ａ）エラー位置探索多項式をシンドロームから得られた有限体要素をパラメータとする変数変換を行い、変数部分とシンドローム部分とに分離する。そして、変数に代入する有限体要素とシンドローム部分の有限体要素のインデックス比較により、エラー位置探索多項式を満足させる有限体要素を求め、エラーの発生したシンボルを見つけ、シンボルのエラーを修正する。
【００２１】
（ｂ）ゼロ元を除く有限体の要素数を表す数値をほぼ同じ大きさの互いに素な整数の因子に分けて、それぞれの因子の整数を法とする剰余で有限体要素の原始根によるインデックスを表す“表現インデックス”表示を用いて、エラー位置探索と修正の計算を並列化する。
【００２２】
（ｃ）システムで利用するコードデータをメモリに記憶する際には、システムは、コードデータが表す有限体要素としての原始多項式の既約剰余多項式の係数を用いる。
【００２３】
（ｄ）コードデータが表す有限体要素をメモリに記憶する際には、システムは、コードデータが表す有限体要素としての原始根の指数の表現インデックスの２進数表示または表現インデックスの２進数表示から変換して得られるコードを用いる。
【００２４】
（ｅ）エラー位置探索とエラー訂正を高速で行うために、メモリから読み出したシンボルデータを保持する第１及び第２のデータレジスタを併設する。エラー位置探索計算のためにメモリから読み出したシンボルデータは、第１のデータレジスタに保持し、エラー修正後のコードデータをこれに上書き保存する。保存したコードデータを情報データに変換しながら出力する動作と並行して、メモリから読み出した次のシンボルデータを第２のデータレジスタに保持して、エラー位置探索計算を続ける。
【００２５】
（ｆ）有限ガロア体ＧＦ（２５６）を用いてシンボルエラー検出訂正を行うシステムの場合、シンボル化すべきバイトデータを４ビットずつ上位部分と下位部分に分ける。そして、１７と１５をそれぞれ法とする剰余で表される表現インデックス１５ｎ（１７）またはｎ（１７）と１７ｎ（１５）またはｎ（１５）を用いて、１５ｎ（１７）またはｎ（１７）が０〜１５のときは下位部分を１７ｎ（１５）またはｎ（１５）の２進数表示、上位部分を１５ｎ（１７）またはｎ（１７）の２進数表示とみなし、１５ｎ（１７）またはｎ（１７）が１６のときは上位部分を１７ｎ（１５）またはｎ（１５）の２進数表示、下位部分を１５ｎ（１７）またはｎ（１７）の２進数表示とみなし、いずれもの全ビットが１である場合は有限体要素のゼロ元とみなして、シンボル化を行う。
【００２６】
以下、図面を参照して実施の形態のＥＣＣシステムの詳細を説明する。以下で説明するのは、ＲＳコードを用いて２シンボルエラーまでの訂正を行うものであり、これを２ＥＣ−ＲＳ−ＥＣＣシステムと称する。
【００２７】
［２ＥＣ−ＲＳ−ＥＣＣシステムのデータ・エンコーディング］
まず、データのエンコーディングを説明する。２ＥＣシステムでは、ガロア体（有限体）ＧＦ（２８）を用いる。ガロア体ＧＦ（２８）の原始既約多項式をｍ１（ｘ）としてこの根をαとする。α はガロア体の原始根である。原始既約多項式ｍ１（ｘ）は、次のような８次多項式となる。
【００２８】
【数１】
2010518464.tif 000003
【００２９】
２シンボルのエラー訂正をする場合は、α０  ，α１，α２およびα３を根とする既約多項式ｇ（ｘ）をコード生成多項式として、数２に示すように、ｘの次数４，３，２，１，０の項のＧＦ（２８）上の係数をｇ４，ｇ３，ｇ２，ｇ１，ｇ０とする。    
【００３０】
【数２】
2010518464.tif 000004
【００３１】
各係数を具体的に計算すると、下記数３の通りである。
【００３２】
【数３】
2010518464.tif 000005
【００３３】
ＲＳコードの方法では所定数のデータビット範囲を一つのシンボルとして扱うので、ＧＦ（２８）では２５６個の有限体要素のそれぞれがシンボルとなり、おのおのの要素はｍ１（ｘ）の既約剰余としてのＧＦ（２）上の７次多項式（既約剰余多項式）の係数で表せる。従って、８ビットデータ（＝１バイトデータ）を１シンボルとすると、２５６×８＝２０４８ビット（＝２５６バイト）が訂正可能な最大データビット長となる。
【００３４】
しかし、オンチップでのＥＣＣシステムの回路規模をある程度小さく抑えるためには、エラー検出訂正の単位として同時に扱う情報データ量を最大データビット長より小さい値を選択することが好ましい。以下の実施の形態では、これを１２８ビット（＝１６バイト）に制限した場合を説明するが、情報データ量を１６バイトに限る必然性は方式上からはない。
【００３５】
ＥＣＣシステムのコードを作る要素は有限体のゼロ因子を含む２５６個であり、１６バイトの情報データを有限体要素に対応させる。ビット位置３２から１５９を８ビット毎のゼロ元を含むシンボル化係数を、ａ０，ａ１，…，ａ１５として、数４に示すようにこれらを係数とするＧＦ（２８）上の１５次情報多項式ｆ（ｘ）を用いる。
【００３６】
【数４】
2010518464.tif 000006
【００３７】
データをエンコードするために、この１５次情報多項式ｆ（ｘ）に先の４次コード生成多項式ｇ（ｘ）をかけて、下記数５に示すチェックビットを含む１９次コード多項式ｃ（ｘ）を作る。
【００３８】
【数５】
2010518464.tif 000007
【００３９】
数５のコード多項式ｃ（ｘ）の２０個の係数ｃ０，ｃ１，…，ｃ１９がコード化されたデータとなる。即ち、数６に示すようにシンボルｃｉのコード情報がメモリに記憶するデータビットとなる。各コードデータはバイトデータであり、有限体要素に対応している。
【００４０】
【数６】
2010518464.tif 000008
【００４１】
［２ＥＣ−ＲＳ−ＥＣＣシステムのデータ・デコーディング］
次にメモリから読み出されたデータについて、エラー検出訂正を行うためのデコーディング法を説明する。データシンボルに生じたエラーは１９次のエラー多項式ｅ（ｘ）で表され、メモリから読み出したデータは、下記数７のような多項式ν(x)となる。
【００４２】
【数７】
2010518464.tif 000009
【００４３】
数７のエラー多項式ｅ（ｘ）の係数を求めることがデコードであり、その係数が求まればエラーの訂正が出来る。
【００４４】
デコードの第１段階として、ν（ｘ）にｇ（ｘ）の根α０，α１，α２およびα３を代入する。このときの値は、ｃ（ｘ）の作り方からして、ｅ（ｘ）に代入したものに等しく、下記数８に示すようにそれぞれ、Ｓ０，Ｓ１，Ｓ２及びＳ３とする。これをシンドロームと呼ぶ。
【００４５】
【数８】
2010518464.tif 000010
【００４６】
シンボルエラーがｉ，ｊ次にあれば、ｅ（ｘ）＝ｅｉｘｉ＋ｅｊｘｊとなるので、このｉ，ｊを求めればエラー位置が確定し、ｅｉ，ｅｊを求めればエラー訂正が可能となる。
【００４７】
これらのエラー位置を、ｍ１（ｘ）＝０の根αのインデックスを主に用いたＧＦ（２５６）内の計算で求める。ｘｎ≡ｐｎ（ｘ）ｍｏｄ ｍ１（ｘ）なる剰余ｐｎ（ｘ）を用いると、αｎ＝ｐｎ（α）となる。
【００４８】
エラーが生じた次数ｉとｊに対してＸ１＝ｐｉ（α）＝αｉ 、Ｘ２＝ｐｊ（α）＝αｊとし、シンドロームＳ０，Ｓ１，Ｓ２，Ｓ３のαのインデックスをそれぞれσ０，σ１ ，σ２ ，σ３ とする。また、エラーシンボルｅｉとｅｊをそれぞれＥ１とＥ２とする。
【００４９】
このように定義したＧＦ（２５６）の要素間の関係は、シンドローム計算から明らかなように下記数９の関係式（１）〜（４）になる。
【００５０】
【数９】
2010518464.tif 000011
【００５１】
第２段階として、数９の関係式（１）〜（４）を用いて、Ｘ１，Ｘ２，Ｅ１，Ｅ２をシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３で表現する。まず関係式（１）と（２）から、次の数１０が得られる。
【００５２】
【数１０】
2010518464.tif 000012
【００５３】
この数１０を関係式（３），（４）に代入すれば、次の数１１が得られる。
【００５４】
【数１１】
2010518464.tif 000013
【００５５】
これに基づいて、Ｘ１とＸ２とを求めるエラー位置探索方程式ΛＲ（ｘ）を、シンドロームを用いて次の数１２のように表すことが出来る。
【００５６】
【数１２】
2010518464.tif 000014
【００５７】
第３段階として、ΛＲ（ｘ）＝０の根をＧＦ（２５６）内で求める。即ち、ΛＲ（αｎ）をｎ＝０〜２５４の範囲で探索すれば、ヒットしたｎがエラーシンボル位置Ｘ１，Ｘ２となり、これからシンボルエラーＥ１，Ｅ２が求められる。
【００５８】
なお、ΛＲ（ｘ）＝０の根が常に求まるわけではなく、この方程式が１次となることもあり、それぞれの場合にエラー数が異なる。詳細は後に説明するがエラー数とその場合の条件をまとめと、次の数１３となる。
【００５９】
【数１３】
2010518464.tif 000015
【００６０】
数１３に示す０，１，２エラーの場合のシンドローム条件は、必要かつ十分条件である。具体的に説明すれば、次のとおりである。
【００６１】
０エラーのとき、Ｓ０＝Ｓ１＝Ｓ２＝Ｓ３＝０となるのは明らかであるので、逆も成り立つことを説明すると、ΣＥｉ＝０，ΣＥｉＸｉ＝０，ΣＥｉＸｉ２＝０，ΣＥｉＸｉ３＝０から、有限体上ではＥｉ＝０になることを云えばよい。
【００６２】
ガロア体の生成元をαとして、Ｘｉ＝αａ＋δ（ｉ）（δ（１）＝０）とすると、ΣＥｉα０δ（ｉ）＝０，ΣＥｉα１δ（ｉ）＝０，ΣＥｉα２δ（ｉ）＝０，ΣＥｉα３δ（ｉ）＝０である。
【００６３】
有限体要素間の関係はユニークであるので、これらの関係が同時に満たされるためには、Ｅｉ＝０又は、α０δ（ｉ）＝α１δ（ｉ）＝α２δ（ｉ）＝α３δ（ｉ）から、δ（ｉ）＝０即ちＸｉ＝αａとなることが必要である。後者は１エラーであるから、Ｅ１＝Ｓ０＝０で０エラーとなる。
【００６４】
次に１エラーについて説明する。Ｓ０＝Ｅ１，Ｓ１＝Ｅ１Ｘ１，Ｓ２＝Ｅ１Ｘ１２，Ｓ３＝Ｅ１Ｘ１３より、Ｓ１２＝Ｅ１Ｓ２＝Ｓ０Ｓ２，Ｓ１Ｓ２＝Ｅ１Ｓ３＝Ｓ０Ｓ３（Ｓ１Ｓ３＝Ｅ１２Ｘ１４＝Ｓ２２）。Ｅ１≠０，Ｘ１≠０であるので、Ｓ０Ｓ１Ｓ２Ｓ３≠０で、Ｅ１＝Ｓ０，Ｘ１＝Ｓ１／Ｓ０。
【００６５】
逆に、Ｓ１２＝Ｓ０Ｓ２より（ΣＥｉＸｉ）２＝（ΣＥｉ）（ΣＥｉＸｉ２）、従ってΣＥｉＥｊ（δｉｊ−１）Ｘｉ２＝０である。また、Ｓ１Ｓ３＝Ｓ２２より（ΣＥｉＸｉ２）２＝（ΣＥｉＸｉ）（ΣＥｉＸｉ３）、従ってΣＥｉＥｊ（δｉｊ−１）Ｘｉ４＝０である。
【００６６】
Ｘｉ＝αａ＋δ（ｉ）（δ（１）＝０）とすると、ΣＥｉＥｊ（δｉｊ−１）α２δ（ｉ）＝０，ΣＥｉＥｊ（δｉｊ−１）α４δ（ｉ）＝０であり、要素間の関係がユニークであることから、α２δ（ｉ）＝α４δ（ｉ）により、δ（ｉ）＝０となり、Ｘｉ＝αａである。Ｓ０Ｓ１Ｓ２Ｓ３≠０よりＥｉ≠０即ち１エラーである。
【００６７】
次に２エラーについて説明する。２エラーであるので、Ｘ１＋Ｘ２≠０，Ｘ１Ｘ２≠０であり、Ｅ１＋Ｅ２＝Ｓ０，Ｅ１Ｘ１＋Ｅ２Ｘ２＝Ｓ１，Ｅ１Ｘ１２＋Ｅ２Ｘ２２＝Ｓ２，Ｅ１Ｘ１３＋Ｅ２Ｘ２３＝Ｓ３から、Ｅ１＝（Ｓ０Ｘ２＋Ｓ１）／（Ｘ１＋Ｘ２），Ｅ２＝（Ｓ０Ｘ１＋Ｓ１）／（Ｘ１＋Ｘ２）である。
【００６８】
ＧＦ（２）上の計算で連立方程式を変形して、Ｓ１（Ｘ１＋Ｘ２）＋Ｓ０Ｘ１Ｘ２＝Ｓ２，Ｓ２（Ｘ１＋Ｘ２）＋Ｓ１Ｘ１Ｘ２＝Ｓ３から、（Ｓ１２＋Ｓ０Ｓ２）（Ｘ１＋Ｘ２）＝Ｓ０Ｓ３＋Ｓ１Ｓ２，（Ｓ１２＋Ｓ０Ｓ２）Ｘ１Ｘ２＝Ｓ２２＋Ｓ１Ｓ３が得られる。
【００６９】
逆に、Ｓ０Ｓ２≠ Ｓ１２なら、Ｓ０Ｓ３≠Ｓ１Ｓ２で、２根Ｘ１，Ｘ２を求める方程
式を、ｘ＝ａｙと変換できて、解を求めることが出来る。２エラーの場合のみ方程式が満たされるので、その解が２エラーとなる。有限体内でエラーが見つからなければ、２エラー以外である。
【００７０】
［エラー位置探索の計算手法］
次に、エラー位置探索方程式ΛＲ（ｘ）＝０の計算法を説明する。この実施の形態では、ｘに逐次有限体要素を代入して方程式の解を求めるのではなく、解の候補を予めテーブルとして求めておき、ΛＲ（ｘ）＝０となる根ｘ＝αｎのインデックスｎを求める計算法を用いる。オンチップで搭載するＥＣＣシステムを高速化するには、この計算法がキーとなる。
【００７１】
そのためにはまず、ΛＲ（ｘ）を変形してこれを変数部分とシンドローム部分に完全に分離し、解の候補のインデックスとシンドロームのインデックスとの関係だけで解のインデックスｎを求めることが出来るようにする。具体的に、Ａ＝Ｓ０Ｓ２＋Ｓ１２，Ｂ＝Ｓ０Ｓ３＋Ｓ１Ｓ２，Ｃ＝Ｓ１Ｓ３＋Ｓ２２を導入して、次の数１４のような変数変換を行う。
【００７２】
【数１４】
2010518464.tif 000016
【００７３】
そうすると、エラー位置探索方程式ΛＲ（ｘ）＝０は、下記数１５のように書き換えることが出来、変数部分ｙ２＋ｙとシンドローム部分ＡＣ／Ｂ２に分けることが出来る。
【００７４】
【数１５】
2010518464.tif 000017
【００７５】
この様に変数変換された方程式を解く際にシンドローム計算から必要となる基本的なインデックスは、Ｓ０のσ０，Ｓ１のσ１，Ｓ２のσ２，Ｓ３のσ３，ＡのσＡ，ＢのσＢ，ＣのσＣ，ＤのσＤ及び、ａのσａである。
【００７６】
変数ｙにαｋを代入して、α２ｋ＋αｋ＝αｙｋなるインデックスｙｋを予め求めておき、テーブルとする。方程式のシンドローム部分ＤのインデックスはσＤであるから、σＤ≡ｙｋｍｏｄ２５５を満たすｋがエラー位置に対応するｙでのインデックスである。実際のエラー位置ｉとｊは、ｘ＝ａｙ＝ασａ＋ｋ＝αｎから、αｎのｎとして求まる。
【００７７】
エラー位置Ｘ１とＸ２に対応する変換前のｙ１とｙ２からシンボルエラーＥ１＝ｅｉとＥ２＝ｅｊは、数１０の式に基づいて、次の数１６のように求めることが出来る。
【００７８】
【数１６】
2010518464.tif 000018
【００７９】
シンボルエラーＥ１，Ｅ２が求まれば、これとメモリから読み出されたデータｄｉ，ｄｊとに基づいて、次の数１７のように正しいコードｃｉ，ｃｊが得られる。    
【００８０】
【数１７】
2010518464.tif 000019
【００８１】
最終的な情報データａｉはもともとコードデータを情報データからエンコードした数１８の関係式（前述の数６と同じ）を用いて変換して求める。
【００８２】
【数１８】
2010518464.tif 000020
【００８３】
［エラー位置探索のインデックス合同式計算法］
次に、エラー位置探索で必要な計算はインデックス間の合同式からインデックスを確定することであり、システム構成上必要なこれらの計算法を以下に説明する。
【００８４】
インデックス合同式はいずれもＧＦ（２５６）の要素のインデックスであるので、２５５を法としたものである。この計算はまともに行なうと２５５×２５５の規模の比較を行うことに相当し、回路規模が大きくなる。 
【００８５】
そこで回路規模を小さくするために、インデックス合同式を、２５５を互いに素である二つの整数因子に分けてこれらを法とする二つの合同式に分離して並列化する。即ちこれらの二つの合同式を同時に満たす数はもともとの合同式も満たすことを利用する。具体的にこの実施の形態では、２５５＝１７×１５に従って、各合同式（法２５５）を解く場合も１７と１５をそれぞれ法とする二つの合同式を同時に解くようにする。
【００８６】
以下では、１５倍したインデックスの法１７での剰余及び、１７倍したインデックスの法１５の剰余で表わされる有限体要素の原始根のインデックスのことを、“表現インデックス”と呼ぶことにする。 
【００８７】
もちろん法１７に対して１５倍、法１５に対して１７倍するのは、便宜的なもので、法と互いに素である数なら１も含めて何でも乗数としてよく、一度定めてシステムの構築において変更しなければよい。乗数が変われば後に説明する表現インデックスとＧＦ（２５６）の要素との関係表の対応が変化する。この変換の例は、後に示す。
【００８８】
下記数１９は、シンドロームの積Ｓ０Ｓ２のインデックスσ０２の計算合同式を二つに分離した合同式を示す。
【００８９】
【数１９】
2010518464.tif 000021
【００９０】
下記数２０は、シンドロームの積Ｓ０Ｓ３のインデックスσ０３の計算合同式を二つに分離した合同式を示す。
【００９１】
【数２０】
2010518464.tif 000022
【００９２】
下記数２１は、シンドロームの積Ｓ１Ｓ２のインデックスσ１２の計算合同式を二つに分離した合同式を示す。
【００９３】
【数２１】
2010518464.tif 000023
【００９４】
下記数２２は、シンドロームの積Ｓ１Ｓ３のインデックスσ１３の計算合同式を二つに分離した合同式を示す。
【００９５】
【数２２】
2010518464.tif 000024
【００９６】
シンドロームから得られたＡとＢのインデックスσＡとσＢとから、ａ＝Ｂ／Ａの表現インデックスσａを求める二つの合同式は、下記数２３のようになる。
【００９７】
【数２３】
2010518464.tif 000025
【００９８】
シンドローム間の計算から得られたＡ，Ｃから、ＡＣの表現インデックスσＡＣを求める二つの合同式は、下記数２４のようになる。
【００９９】
【数２４】
2010518464.tif 000026
【０１００】
シンドローム間の計算から得られたＡ，Ｂ，Ｃから、Ｄ＝ＡＣ／Ｂ２の表現インデックスσＤを求める二つの合同式は、下記数２５のようになる。
【０１０１】
【数２５】
2010518464.tif 000027
【０１０２】
シンドロームから得られたインデックスσＤからインデックスｋとｙｋの対応関係テーブルを用いて、ｙｋ＝σＤとなるインデックスｋが求められる。このインデックスｋとインデックスσａとの和を求める合同計算式は、次の数２６のようになる。
【０１０３】
【数２６】
2010518464.tif 000028
【０１０４】
以上のようにインデックス合同式の計算は、ｍｏｄ１７とｍｏｄ１５による剰余類インデックス、すなわち表現インデックスによって行なわれ、２つの成分による表現インデックスとしてのｎが得られる。しかし、このときσＤが対応するｋが存在しないｙｋに対応することもある。
【０１０５】
シンドロームから得られたインデックスσＡからＳ１／ａのインデックスσＳ１／ａを表現インデックスとして求める合同計算式は、次の数２７のようになる。
【０１０６】
【数２７】
2010518464.tif 000029
【０１０７】
インデックスｋとｙｋの対応関係テーブルを用いて、シンドロームから得られたインデックスσＤからｙｋ＝σＤに対応するｋを求め、このｋとＳ０のインデックスσ０との和である積Ｓ０ｙのインデックスを求める合同計算式は、次の数２８にようになる。
【０１０８】
【数２８】
2010518464.tif 000030
【０１０９】
この様な計算は、ｍｏｄ１７とｍｏｄ１５による剰余類インデックスすなわち表現インデックスによって行なわれ、２つの成分による表現インデックスとしてσＳ０ｙが得られる。しかし、このときσＤが対応するｋが存在しないｙｋに対応することもある。このインデックスσＳ０ｙを使用してシンボルエラーを計算する。
【０１１０】
シンドローム間の計算から得られたＳ０のインデックスとＳ１のインデックスから Ｘ１＝Ｓ１／Ｓ０のインデックスσＸを表現インデックスとして求める合同計算式は、次の数２９のようになる。このインデックスは、１エラーの場合のエラー位置の計算である。
【０１１１】
【数２９】
2010518464.tif 000031
【０１１２】
以上のように、大きな数の法に対して剰余類間の関係を求めるとき、法の互いに素な因子で大きさがほぼ同じ数の因子を法とした表現インデックスの成分で並列処理をすることで計算の量を減らすことができる。
【０１１３】
具体的にこの実施の形態では、計算を並列化するために２５５を互いに素である二つの因子１５と１７に分けてこれらを法とする二つの合同式に分離して、１５倍したインデックスの法１７での剰余と１７倍したインデックスの法１５の剰余のことを表現インデックスとした。
【０１１４】
２５５を法とする剰余類ｎの表現インデックスは、一般的に｛ａｎ（１７），ｂｎ（１５）｝であり、（ａ，１７）＝１，（ｂ，１５）＝１となる整数ａ，ｂが選ばれる。実施の形態では、ａ＝１５，ｂ＝１７を選んでいるが、この選択に必然性はなく、例えばａ＝ｂ＝１の表現インデックスも可能である。
【０１１５】
図１は、実施の形態で用いた表現インデックス｛１５ｎ（１７），１７ｎ（１５）｝に対して、別の表現インデックス｛ｎ（１７），ｎ（１５）｝を用いた場合の成分間の対応表を一例として示している。
【０１１６】
また、実施の形態では２５５を１５と１７というほぼ同等な大きさの互い素な２ 整数の積に分解したが、有限体の大きさによっては３つ以上の互いに素なほぼ同等な整数の積に分け、これらの整数を法とする３つ以上の成分を持つ表現インデックスで計算をして並列演算を行うことが可能なことは容易に類推できる。
【０１１７】
図２は、αｎ のインデックスｎと図１に示した２つの表現インデックスによる表現の対応を示した。
【０１１８】
［２ＥＣ−ＲＳ−ＥＣＣシステム構成］
図３は、２シンボルまでのエラー訂正が可能で、３シンボル以上のエラーがあることの警告を出すことができる２ＥＣ−ＲＳ−ＥＣＣシステムの構成図である。
【０１１９】
メモリコア１０への入力データを生成する部分がエンコード部２０である。１６バイトのデータをａ０〜ａ１５としてこれらを係数とする１５次の情報多項式ｆ（ｘ）が訂正単位の入力データとなる。
【０１２０】
なお、ＧＦ（２５６）を用いる場合、情報多項式ｆ（ｘ）はデータビットの構成によって適宜必要なバイト数を２５６バイトまでで選んだ数に応じた次数の多項式と出来るが、本実施の形態ではオンチップシステムとして容易に構成できる１６バイトの情報としている。
【０１２１】
情報多項式ｆ（ｘ）にコード生成多項式ｇ（ｘ）をかけたＧＦ（２５６）上の１９ 次の多項式ｃ（ｘ）の係数がコードデータであり、これをメモリにシンボルデータとして書き込む。
【０１２２】
図４は、メモリコア１０の一例として、ＮＡＮＤ型フラッシュメモリの具体例を示している。セルアレイ１は、ＮＡＮＤセルユニットＮＵを配列して構成される。ＮＡＮＤセルユニットＮＵは、直列接続された複数個（図の例では３２個）の電気的書き換え可能な不揮発性メモリセルＭ０−Ｍ３１を有する。
【０１２３】
ＮＡＮＤセルユニットＮＵの一端は選択ゲートトランジスタＳ１を介してビット線ＢＬｅ（ＢＬｏ）に接続され、他端は選択ゲートトランジスタＳ２を介して共通ソース線ＣＥＬＳＲＣに接続されている。
【０１２４】
メモリセルＭ０−Ｍ３１のコントロールゲートはそれぞれワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１，Ｓ２のゲートは選択ゲート線ＳＧＤ，ＳＧＳに接続されている。ワード線ＷＬ０−ＷＬ３１及び選択ゲート線ＳＧＤ，ＳＧＳを選択駆動するのがロウデコーダ３である。
【０１２５】
ワード線を共有するＮＡＮＤセルユニットの集合は、データ消去の単位となるブロックを構成し、図示のようにビット線方向に複数のブロックＢＬＫ０〜ＢＬＫｎが配置される。
【０１２６】
ビット線に接続されるセンスアンプ回路２は、同時書き込み及び読み出しが行われる１ページ分のセンスアンプＳＡを備える。ここでは、隣接する偶数番ビット線ＢＬｅと奇数番ビット線ＢＬｏとが一つのセンスアンプＳＡを共有する例を示している。
【０１２７】
メモリコア１０から読み出された２０バイトのデータは１９次の多項式ν（ｘ）の係数として扱われる。この多項式ν（ｘ）からシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３を生成するのが、シンドローム演算部２１である。ν（ｘ）にｇ（ｘ）の根α０,α１,α２,α３ を代入してそれぞれシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３を得る。
【０１２８】
求められたシンドロームに基づいて、エラー位置検索を行う。なおシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３が全てゼロであれば、ゲート４１により“ｎｏ  ｅｒｒｏｒ”が出力される。
【０１２９】
エラー位置探索の計算では、シンドロームに関する積は、インデックスで表されるバイナリの数としてのアダーを用いた加算として行なわれる。具体的に各加算部は、ｍｏｄ１７とｍｏｄ１５の二つの合同式を同時並列的に解く二つのアダーにより構成されて、表現インデックスにより演算を行なう。和については、パリティチェッカで有限体の要素として７次の多項式の係数で表された各次数の係数間のｍｏｄ２による和演算として行う。
【０１３０】
まず、シンドローム間の積や商であるＳ０Ｓ２，Ｓ０Ｓ３，Ｓ１Ｓ２，Ｓ１Ｓ３及びＳ１／Ｓ０を計算する部分がそれぞれ加算部２２，２３，２４，２５及び２９である。これらの加算部出力を受けて、パリティチェッカ２６は、Ａ＝Ｓ０Ｓ２＋Ｓ１２なる和演算を行い、パリティチェッカ２７は、Ｂ＝Ｓ０Ｓ３＋Ｓ１Ｓ２なる和演算を行い、パリティチェッカ２８は、Ｃ＝Ｓ１Ｓ３＋Ｓ２２なる和演算を行う。
【０１３１】
Ｓ０Ｓ１Ｓ２Ｓ３≠０であり、Ａ＝０かつＢ＝０の場合は、ゲート回路４２により、１エラーであることを示す信号１ＥＣ＝“Ｈ”が得られる。また、Ａ≠０でＢ≠０の場合は、ゲート回路４３により、２エラーであることを示す信号２ＥＣ＝“Ｈ”が得られる。
【０１３２】
加算部３０は、２ＥＣに対応するｙ２＋ｙ＝Ｄによってｙを求める際のＤの因子ＡＣを求める部分であり、入力部分はＡとＣである。加算部３１は、変数変換ｘ＝ａｙを行うためのａ＝Ｂ／Ａを計算する部分で、入力部はＢとＡ−１である。
【０１３３】
加算部３２は、ＡＣとＢ−２を入力として、Ｄを求める部分である。加算部３３は、シンボルエラーＥｎ＝Ｓ０ｙｋ＋Ｓ１／ａのＳ１／ａを計算する部分で、入力はＳ１とａ−１である。
【０１３４】
加算部３４は、エラー位置ｎの表現インデックスを計算する部分である。この入力部ではｙ２＋ｙ＝Ｄを満たすｙのインデックスｋをデコードする。対応するデコード出力が無い場合は信号“ｎｏ  ｉｎｄｅｘ”を出力する。入力はＤであり、デコード結果のｋは、その下の加算部３５の入力部に渡すとともに、他の入力ａのインデックスとｋの和を求めて変数変換ｘ＝ａｙを行っている。
【０１３５】
信号“ｎｏ  ｉｎｄｅｘ”が出力された場合は２エラーではないので、ゲート回路４５は、この場合を判別する信号２Ｃを、信号２ＥＣと“ｎｏ  ｉｎｄｅｘ”の反転のＡＮＤで発生する。
【０１３６】
加算部３５は、シンボルエラーＥｎ＝Ｓ０ｙｋ＋Ｓ１／ａのＳ０ｙｋを計算する部分である。入力はその上の加算部３４の入力部でのデコード結果ｋとＳ０である。右端のパリティチェッカ３６は、入力のインデックスを多項式に直した同じ次数の係数間のｍｏｄ２による和を行なう部分であり、シンボルエラーＳ０ｙｋ＋Ｓ１／ａの計算を行う。
【０１３７】
メモリコア１０から読み出したデータを最終的に訂正する部分が点線で囲った訂正回路５０である。１エラーの場合は信号１ＥＣ＝“Ｈ”が出力され、これとエラー位置ｘとシンドロームＳ０とによりＡＮＤゲートＧ１の出力が“Ｈ”になる。これにより、メモリから読み出したシンボルの各ビットをＸＯＲゲートＧ３で訂正する。
【０１３８】
２エラーの場合は信号２Ｃ＝“Ｈ”が出力され、これとエラー位置ｎとシンボルエラーＥｎとでＡＮＤゲートＧ２の出力が“Ｈ”になる。これにより、メモリから読み出したシンボルの各ビットをＸＯＲゲートＧ３で訂正する。
【０１３９】
“ｎｏ  ｅｒｒｏｒ”，１ＥＣ，２ＥＣのいずれの信号も発生されないときはエラーが３以上の場合であり、このときゲート回路４４により訂正不可能を示す信号“ｎｏｎ  ｃｏｒｒｅｃｔａｂｌｅ”を発生する。
【０１４０】
訂正回路５０の出力を入力とする部分が出力デコード部５１である。２０バイトのコード情報をｃ０〜ｃ１９としてこれらを係数とする１９次の多項式ｃ（ｘ）をｇ（ｘ）により逆演算することで、情報多項式ｆ（ｘ）の１６個の係数ａ０〜ａ１５の１６バイトデータに変換して出力する。
【０１４１】
以下、ＥＣＣシステムの各部の詳細を説明する。
【０１４２】
なお以下の説明は、３つの異なる方法について行うために、これらの方法について概要を説明する。これらは外部データをシンンボルとしてどう見るか、メモリに記憶させるシンボルは何かという点及び入出力インタフェースの高速化に関する。
【０１４３】
図５にはその３つのケースＣ．１〜Ｃ．３を示している。
【０１４４】
ケースＣ．１…外部データをバイト単位でＧＦ（２５６）の要素である７次の既約剰余多項式ｐｎ（ｘ）の係数と見なして、これを対象としてコードの演算を行なう。メモリに記憶させるデータのシンボル化も剰余多項式ｐｎ（ｘ）の係数としてのバイト単位で行なう。このケースＣ．１の説明において、基本的なエンコードやデコードの方法を説明する。 
【０１４５】
ケースＣ．２…ケースＣ．１で回路規模が最も大きくなる部分であるｐｎ（ｘ）の係数表示とインデックス表示間のデコード回路の数を少なくする方法である。外部データをＧＦ（２５６）の要素の表現インデックスのバイナリ表示と見なしてデコードなしで演算できる部分を増やす。
【０１４６】
メモリに記憶させるシンボルも表現インデックスのバイナリ表示としてのバイト単位で行なう。このケースＣ．２については、ケースＣ．１から変更のある部分についてのみ説明する。
【０１４７】
ケースＣ．３…ケースＣ．１，Ｃ．２ではＥＣＣシステムと外部とのデータのやり取りはバイト単位であり、ＥＣＣが同時に扱うデータブロックを１６サイクルでメモリに読み込むことを想定した。しかし２バイト以上を同時に扱いデータ転送のバンド幅を上げることが必要な場合もある。従って、多バイト同時転送の例である４バイト単位でデータをやり取りする方法をケースＣ．３として、ケースＣ．２の方式の変形として、インターフェース構成を説明する。 
【０１４８】
［ケースＣ．１の説明］
まず、ケースＣ．１の詳細説明を行なう。
【０１４９】
（データエンコード部）
外部データからメモリに記憶するコードデータを係数として持つコード多項式ｃ（ｘ）を生成する方法について説明する。
【０１５０】
外部データは、８ビット（＝１バイト）ずつシンボル化する。情報データ多項式ｆ（ｘ）の係数ａｉをシンボルとしての有限体要素と対応させるために、８ビットデータをＧＦ（２５６）の７次の既約剰余多項式ｐｎ（ｘ）の係数に対応させる。その場合、要素間の積演算をインデックスの加減算として行ない、しかもその計算規模を小さくするために、剰余多項式ｐｎ（ｘ）の係数を表現インデックスに変換する。更にその際、図６に示すように、ｐｎ（ｘ）の係数をプリデコードして、表現インデックスの回路規模を小さくし、表現インデックスはバイナリ表示されるように変換する。
【０１５１】
この表示を用いてｃ（ｘ）を生成するために要素ｇｉの積演算を行なう。即ち、コード多項式はｃ（ｘ）＝ｆ（ｘ）ｇ（ｘ）であるから、次数が同じ係数を比較することによって、ｃ（ｘ）の係数ｃｉを、ｃｉ＝ｇ４ａｉ−４＋ｇ３ａｉ−３＋ｇ２ａｉ−２＋ｇ１ａｉ−１＋ｇ０ａ１を用いて計算する。
【０１５２】
ｇｉは表現インデックスで表され、ｇ４＝１＝｛０，０｝，ｇ３＝α７５＝｛３，０｝，ｇ２＝α２４９＝｛１２，３｝，ｇ１＝α７８＝｛１４，６｝，ｇ０＝α６＝｛５，１２｝であるから、全て表現インデックスの計算として処理できる。
【０１５３】
αｍαｎ＝αｍ＋ｎを表現インデックスで表すと、｛１５ｍ（１７），１７ｍ（１５）｝｛１５ｎ（１７），１７ｎ（１５）｝＝｛１５（ｍ＋ｎ）（１７），１７（ｍ＋ｎ）（１５）｝＝｛１５ｍ＋１７ｎ（１７），１７ｍ＋１７ｎ（１５）｝となる。即ち積は表現インデックス成分間の和として計算できる。
【０１５４】
有限体要素間の和は表現インデックスを用いたパリティチェックにより行う。和としてのコードｃｉは、有限体要素の剰余多項式ｐｎ（ｘ）の係数表現として得られる。これをシンボルデータとしてメモリに直接記憶する。
【０１５５】
なお表現インデックスへの変換の際に、ＧＦ（２５６）のゼロ元に対応するインデックスは根αの指数としては得られないので、その他の元では絶対使用されず、ゼロ元として事実上表現される表現インデックスである｛３２，１５｝、即ちバイナリ表示でバイトがオール“１”のＦＦに対応させて、ゼロ元の判定（ゼロ判定）“ｚｅｒｏ  ｊｕｄｇｅ”を行なう。
【０１５６】
図７は、コード計算の具体的なシステムである。
【０１５７】
外部からのデータｆ（ｘ）は、クロックＣＬで取り込む。このクロックＣＬの例えば２倍の速さでサイクル数が２倍のクロックＣＬＫ＊＊でプリ／インデックスデコード回路７００を動作させて、表現インデックスのバイナリ表示にする。
【０１５８】
これは外部データの取り込み１６サイクルに対して計算システムの処理は２０サイクル必要であるためである。即ち、ｆ（ｘ）が１５次多項式、ｃ（ｘ）が１９次の多項式であることに対応する。
【０１５９】
計算システムに入力されるデータは、時間順に、ａ１５，ａ１４，…，ａ３，ａ２，ａ１，ａ０，ＦＦ，ＦＦ，ＦＦ，ＦＦ，ａ’１５，ａ’１４，…である。ＦＦは、全てのビットが“１”のデータでＧＦ（２５６）のゼロ元を表す。
【０１６０】
これらのインデックスバイナリデータは同時に、ａｇ０，ａｇ１，ａｇ２，ａｇ３及びａｇ４のアダー系７０１，７０２，７０３，７０４及び７０５に入力される。
【０１６１】
各アダー系への同時データ入力のために、ａｇ０アダー系７０１は、４段のシフトレジスタＳＲを経たデータを受け取り、ａｇ１アダー系７０２は３段のシフトレジスタＳＲを経たデータを受け取る。ａｇ２アダー系７０３は２段のシフトレジスタＳＲを経たデータを受け取り、ａｇ３アダー系７０４は１段のシフトレジスタＳＲを経たデータを受け取る。
【０１６２】
ａｇ４アダー系７０５は、ｇ４＝１であるので、実際にはアダーは存在せず、デコーダのみの構成で、シフトレジスタを介さずデータを直接受け取る。
【０１６３】
図８は、図７で用いられるシフトレジスタＳＲやクロック回路を示している。シフトレジスタＳＲは、クロックＣＬＫの立ち上がりでデータ取り込み確定し、今まで保持していたデータを出力する。クロックＣＬＫは、クロックＣＬＫ＊から一定遅延をもって発生される。クロックＣＬＫ＊はトリガ信号である“ｓｔａｒｔ”によって２０サイクル発生される。
【０１６４】
クロックＣＬＫ＊＊はクロックＣＬＫ＊のはじめの１６サイクルに相当する。信号“ｓｔａｒｔ”は外部データ取り込みのクロックＣＬの１６サイクルごとに発生される信号である。
【０１６５】
各アダー系７０１〜７０５には、ゼロ元の判定を行なうゼロ判定回路７１１が付属している。このゼロ判定回路７１１により、ゼロ元の場合にはアダーの計算結果によらずアダー出力デコード部のバイナリ値をインデックスに変換するバイナリ／インデックス変換出力が“０”となるようにする。
【０１６６】
５つのアダー出力は、バイナリ／インデックス変換回路７１２で再度インデックスに変換される。そして、和を求めるためにインデックスデコーダ７０６を経て４ビットバイナリチェッカ・ラダー７０７にて計算され、コードデータｃ１９，ｃ１８，…，ｃ２，ｃ１，ｃ０として、即ちＧＦ（２５６）の要素のｐｎ（ｘ）の係数として出力される。
【０１６７】
図９は、ＧＦ（２５６）の要素の係数プリデコードと、表現インデックスの１７を法とした成分との対応表である。即ちこの表は、既約剰余ｐｎ（ｘ）のインデックスｎを１５倍して法１７の剰余類１５ｎ（１７）として分類したものである。
【０１６８】
０から１６のインデックスで分類されて、各々の類には１５個のｎが含まれ、これらに対応するｐｎ（ｘ）の各次数の係数に従ってプリデコーダされた信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉの各ｉ（＝０〜３）を示した。Ａは、ｍ＝０，１に、Ｂは、ｍ＝２，３に、Ｃは、ｍ＝４，５に、Ｄは、ｍ＝６，７にそれぞれ対応する。
【０１６９】
これらのＡｉ，Ｂｉ，Ｃｉ，Ｄｉでインデックス発生のデコーダのトランジスタゲートへの信号の接続が決まる。例えばインデックス１においては並列にＮＯＲ接続されるＮＡＮＤのノードはｎが１６１，５９，２４６，１２７，４２，９３，１７８，１４４，２１２，２２９，１１０，１９５，８，７６，２５に相当し、ＮＡＮＤのトランジスタゲートへは対応するＡｉ，Ｂｉ，Ｃｉ，Ｄｉを接続する。回路の具体的構成は後ほど示す。
【０１７０】
図１０は、ＧＦ（２５６）の要素の係数プリデコードと、表現インデックスの１５を法とした成分との対応表である。即ちこの表は、既約剰余ｐｎ（ｘ）のインデックスｎを１７倍して法１５の剰余類１７ｎ（１５）として分類したものである。
【０１７１】
０から１４のインデックスで分類され、各々の類には１７個のｎが含まれ、これらに対応するｐｎ（ｘ）の各次数の係数に従ってプリデコーダされた信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉの各ｉ（＝０〜３）を示した。Ａは、ｍ＝０，１に、Ｂは、ｍ＝２，３に、Ｃは、ｍ＝４，５に、Ｄは、ｍ＝６，７にそれぞれ対応する。
【０１７２】
これらのＡｉ，Ｂｉ，Ｃｉ，Ｄｉでインデックス発生のデコーダのトランジスタゲートへの信号の接続が決まる。例えばインデックス１においては並列にＮＯＲ接続されるＮＡＮＤのノードはｎが１７３，２３３，２０３，２３，８３，１５８，１８８，６８，３８，１２８，１４３，９８，５３，２１８，８，１１３，２４８に相当し、ＮＡＮＤのトランジスタゲートへは対応するＡｉ，Ｂｉ，Ｃｉ，Ｄｉを接続する。回路の具体的構成は後ほど示す。
【０１７３】
ここで、図１１を参照して、入力データの取り込みとデータをコード計算システムに渡す際のクロックなどの関係について説明する。ｆ（ｘ）のバイトごとのデータはクロックＣＬで取り込まれる。このクロックＣＬの１６サイクルが１６バイト＝１２８ビットの情報データであり、ＥＣＣの対象となる単位データブロックである。
【０１７４】
ＥＣＣシステムを働かせるにはこの情報データをコード化して２０バイト＝１６０ビットのコードデータを構成する必要がある。データ取り込みにギャップを生じさせないためにこの実施の形態では、内部のデータはクロックＣＬの倍の速さのクロックＣＬＫ＊およびＣＬＫ＊＊で動かして、蓄積された取り込みデータに対して演算処理を行なうようにする。 
【０１７５】
即ち、１６ＣＬサイクルごとにトリガ信号“ｓｔａｒｔ”を発生させ、これによりクロックＣＬＫ＊＊を１６サイクル、クロックＣＬＫ＊を２０サイクル発生させて、８ＣＬサイクル前のデータからプリ／インデックスデコード回路７００で内部データとしての表現インデックスに変換していく。
【０１７６】
１６ＣＬＫ＊＊サイクルでプリ／インデックスデコード回路７００により変換した後に、４ＣＬＫ＊サイクルはプリ／インデックスデコード回路７００は働かないので、ＦＦが計算システムに渡される。計算システムはクロックＣＬＫ＊に遅延をかけたクロックＣＬＫで駆動する。
【０１７７】
図１２から図１４は、プリ／インデックスデコード回路７００の各構成要素を示している。即ち図１２はプリデコード回路７００ａを示し、図１３はインデックスデコード回路７００ｂを示し、図１４は、インデックスをバイナリに変換するインデックス／バイナリ変換回路７００ｃを示している。
【０１７８】
プリデコード回路７００ａは、既約剰余ｐｎ（ｘ）の係数とＡｉ，Ｂｉ，Ｃｉ，Ｄｉの対応テーブルに従って各信号を発生させる。
【０１７９】
インデックスデコード回路７００ｂは、信号Ａｋ，Ｂｋ，Ｃｋ，Ｄｋをテーブルに従ってＮＡＮＤ接続したものを、グループ化してＮＯＲ接続して表現インデックスの各成分をクロックＣＬＫ＊＊に同期して発生している。
【０１８０】
インデックス／バイナリ変換回路７００ｃは、インデックスデコード回路７００ｂの出力を、クロックＣＬＫ＊＊に同期してバイナリ表示に変換する。１７を法とする成分は５ビットのバイナリ、１５を法とする成分は４ビットのバイナリデータとして、変換する。クロックＣＬＫ＊＊が発生されないときはバイナリ表示のビットは全て“１”でゼロ元の表現ＦＦになる。 
【０１８１】
図１５は、図７に示す各アダー系７０１〜７０５の入力部のゼロ判定回路７１１の構成を示す。これは、バイナリ表示がＦＦである場合にゼロ元と判定して、信号ＺＥＲＯｉを出力する。
【０１８２】
図１６は、図７に示す各アダー系７０１〜７０５の出力部のバイナリ／インデックス変換回路７１２の構成である。アダーの計算結果は、バイナリ表示でのインデックスであるから、これを次段の計算で表現インデックス間の計算として利用できるように、本来のインデックスに戻すのがこの回路である。入力部のゼロ判定回路７１１の出力ＺＥＲＯｉが“１”であればこの回路はクロックＣＫが立たずに不活性のままで、アダーの計算結果によらず全ての表現インデックス成分を“０”とする。
【０１８３】
図１５及び図１６において、ｉ＝０〜４でａｇ０，ａｇ１，ａｇ２，ａｇ３，ａｇ４のアダー系７０１〜７０５にそれぞれ対応する。 
【０１８４】
図１７は、コード計算システムのアダー（ａｇｉアダー）のなかの１７を法として成分計算する部分ａｇｉアダー（１７）の回路構成である。入力１７１，１７２はそれぞれ、インデックス／バイナリ変換出力（５バイナリ出力）１５ｎ（１７）ｂ０〜１５ｎ（１７）ｂ４とｇｉの表現インデックスの１７を法とする成分の２進表示ｇｉ（１７）ｂ０〜ｇｉ（１７）ｂ４である。ｇｉ入力は固定した入力となり、ｇｉそれぞれの図に示した第１成分である。
【０１８５】
これらの入力１７１，１７２を５ビットアダー（１７）１７３で和演算する。出力１７４はバイナリ／インデックス変換回路１７５でデコードされて、表現インデックス成分１５σａｇｉ（１７）となる。
【０１８６】
図１８は、コード計算システムのアダー（ａｇｉアダー）のなかの１５を法として成分計算する部分ａｇｉアダー（１５）の回路構成である。入力１８１，１８２はそれぞれ、インデックス／バイナリ変換出力（４バイナリ出力）１７ｎ（１５）ｂ０〜１７ｎ（１５）ｂ３とｇｉの表現インデックスの１５を法とする成分の２進表示ｇｉ（１５）ｂ０〜ｇｉ（１５）ｂ３である。ｇｉ入力は固定した入力となり、ｇｉそれぞれの図に示した第２成分である。
【０１８７】
これらの入力１８１，１８２を４ビットアダー（１５）１８３で和演算する。出力１８４はバイナリ／インデックス変換回路１８５でデコードされて、表現インデックス成分１７σａｇｉ（１５）となる。
【０１８８】
図１９Ａ及び図１９Ｂは、図１７に示す５ビットアダー（１７）１７３の具体回路例及びその回路記号を示している。これは、ＡｍとＢｍを２進数で表した各桁の和をハーフアダー、フルアダーで求めて、１７を法としてその剰余としての和を求める加算回路である。
【０１８９】
図示のように、５ビットの第１段加算器１７３１と、その和が１７以上であることを検出して桁上げする桁上げ補正回路１７３２と、この桁上げ補正回路１７３２と共に、和が１７以上の場合に３２に対する１７の補数１５（＝３２−１７）を加えるための第２段加算器１７３３とを有する。
【０１９０】
桁上げ補正回路１７３２は、第１段加算器１７３１の出力状態に応じて、信号ＰＦ０を発生するものである。具体的にいえば、第１段加算器１７３１の最上位ビット出力Ｓ４’が“１”でありかつ、それ以外のビット出力Ｓ０，Ｓ１’〜Ｓ３’の少なくとも一つが“１”であること、即ち和が１７以上であることを検出して、信号ＰＦ０（＝“Ｈ”）を発生するように構成されている。
【０１９１】
第２段加算器１７３３は、第１段加算器１７３１の出力が１７以上の場合に、１７の補数（０１１１１）を加えるというロジックが組まれている。
【０１９２】
図２０Ａ及び図２０Ｂは、図１８に示す４ビットアダー（１５）１８３の具体回路例及びその回路記号を示している。これは、１５を法としてその剰余としての和を求める４ビット加算回路であり、図示のように、４ビットの第１段加算器１８３１と、その和が１５以上であることを検出して桁上げする桁上げ補正回路１８３２と、この桁上げ補正回路１８３２と共に、和が１５以上の場合に１５の補数を加えるための第２段加算器１８３３とを有する。
【０１９３】
桁上げ補正回路１８３２は、第１段加算器１８３１の出力状態に応じて、信号ＰＦ０を発生するものである。
【０１９４】
第２段加算器１８３３は、第１段加算器１８３１の出力が１５以上の場合に、１５の補数１＝（０００１）を加えるというロジックが組まれている。
【０１９５】
これらのアダー１７３，１８３は、クロックなどの同期が必要でなく、入力が確定すれば出力も確定するようにして、システムのタイミング制御の負担を減らす構成となっている。
【０１９６】
図２１（ａ）（ｂ）及び図２２（ａ）（ｂ）は、以上のアダー１７３，１８３で用いられる、２進数の足し算を行なう基本的な単位であるフルアダー及びハーフアダーの回路記号と具体回路を示している。フルアダーは、加えるビットＡとＢをＸＯＲ回路とＸＮＯＲ回路でロジック演算を行い、桁上げ信号Ｃｉｎとのロジックを更に取って、出力としてＡ，Ｂ，Ｃｉｎの和Ｓｏｕｔと桁上げ信号Ｃｏｕｔを出力する。ハーフアダーは一般的なロジックゲートで構成できる。
【０１９７】
以上のデータエンコードシステム内のアダー出力は、コードデータｃｉ＝ｇ４ａｉ−４＋ｇ３ａｉ−３＋ｇ２ａｉ−２＋ｇ１ａｉ−１＋ｇ０ａｉを計算するために使われる。ここでの計算は有限体の要素を剰余多項式ｐｎ（ｘ）と見てその係数の２を法としての和を求めるものである。そこで表現インデックスによって表された剰余多項式ｐｎ（ｘ）を加えてその係数を求める方法を説明する。 
【０１９８】
図２３Ａ及び図２３Ｂは、剰余多項式ｐｎ（ｘ）の次数ｍの係数と、要素αｎ のインデックスｎと、表現インデックス｛１５ｎ（１７），１７ｎ（１５）｝の関係を、表現インデックス成分１７ｎ（１５）の値０〜１４ごとのグループにまとめて示したテーブルである。各グループ内で表現インデックス成分１５ｎ（１７）は０から１６までが昇順に並べられている。
【０１９９】
また、“ｉｎｐｕｔ １５ｎ（１７）”の部分には、ｐｎ（ｘ）の係数の和では係数が０であるところは和に寄与しないので係数が１であるときの１５ｎ（１７）の値を表示している。ｐｎ（ｘ）と表現インデックス {１５ｎ（１７）,１７ｎ（１５）} は一対一に対応しているので、ある表現インデックスが与えられたとき多項式のｐｎ（ｘ）の次数ｍの係数の和への寄与をこの表からデコードできる。
【０２００】
すなわち各次数ｍについて、ひとつの表現インデックス成分１７ｎ（１５）をゲート入力とするひとつのトランジスタの下にこの１７ｎ（１５）に属するｐｎ（ｘ）の次数ｍの係数が１である１５ｎ（１７）をゲート入力とするトランジスタのＮＯＲ接続を作る。そして表現インデックスがこのグループにヒットすれば電流パスが出来るようにする。このような接続を各成分１７ｎ（１５）について図のテーブルから作り、共通ノードを放電するようにする。
【０２０１】
この共通ノードがひとつの表現インデックスに対してｐｎ（ｘ）の次数ｍの係数の反転を表している。例えば、ｍ＝７は、表から、次のＮＯＲ接続を作る。
（１）１７ｎ（１５）＝０の下の１５ｎ（１７）＝２，７，１０，１２，１４，１６のＮＯＲ接続、
（２）１７ｎ（１５）＝１の下の１５ｎ（１７）＝０，２，４，５，７，９，１０，１１，１５，１６のＮＯＲ接続、
（３）１７ｎ（１５）＝２の下の１５ｎ（１７）＝３，４，５，６，１０，１６のＮＯＲ接続、
（４）１７ｎ（１５）＝３の下の１５ｎ（１７）＝０，１，３，６，８，９のＮＯＲ接続、
（５）１７ｎ（１５）＝４の下の１５ｎ（１７）＝０，４，５，９，１１，１２，１４，１５のＮＯＲ接続、
（６）１７ｎ（１５）＝５の下の１５ｎ（１７）＝０，２，３，６，７，９，１１，１５のＮＯＲ接続、
（７）１７ｎ（１５）＝６の下の１５ｎ（１７）＝０，１，４，５，８，９，１０，１６のＮＯＲ接続、
（８）１７ｎ（１５）＝７の下の１５ｎ（１７）＝１，３，４，５，６，８，１１，１２，１４，１５のＮＯＲ接続、
（９）１７ｎ（１５）＝８の下の１５ｎ（１７）＝２，３，４，５，６，７，１２，１４のＮＯＲ接続、
（１０）１７ｎ（１５）＝９の下の１５ｎ（１７）＝１，２，３，４，５，６，７，８，１０，１１，１５，１６のＮＯＲ接続、
（１１）１７ｎ（１５）＝１０の下の１５ｎ（１７）＝０，３，６，９，１０，１１，１２，１４，１５，１６のＮＯＲ接続、
（１２）１７ｎ（１５）＝１１の下の１５ｎ（１７）＝１，２，７，８，１１，１５のＮＯＲ接続、
（１３）１７ｎ（１５）＝１２の下の１５ｎ（１７）＝１，８，１０，１１，１２，１４，１５，１６のＮＯＲ接続、
（１４）１７ｎ（１５）＝１３の下の１５ｎ（１７）＝０，１，２，４，５，７，８，９，１２，１４のＮＯＲ接続、及び
（１５）１７ｎ（１５）＝１４の下の１５ｎ（１７）＝０，１，２，３，６，７，８，９，１０，１２，１４，１６のＮＯＲ接続。
【０２０２】
これらのＮＯＲ接続により共通ノードが放電されるか否かにより、係数１がデコードされる。例えば、｛１５ｎ（１７）,１７ｎ（１５）｝＝｛１１，４｝は１７ｎ（１５）＝４の下の１５ｎ（１７）＝０，４，５，９，１１，１２，１４，１５のＮＯＲ接続を介してノードが放電され、ｍ＝７次の係数が１であることがデコードされる。
【０２０３】
なお、ｐｎ（ｘ）のゼロ元“００００００００”には１５ｎ（１７）＝１６，１７ｎ（１５）＝１５を対応させる。ｐｎ（ｘ）の係数が全て“０”であることと、そのデコードがこれらの表にないこととが対応している。
【０２０４】
図２４は、上述の図２３Ａ及び図２３Ｂのテーブルを利用して、図７に示す、ｃｉ＝ｇ４ａｉ−４＋ｇ３ａｉ−３＋ｇ２ａｉ−２＋ｇ１ａｉ−１＋ｇ０ａｉを計算する４ビットパリティチェッカ・ラダー７０７の入力インデックスデコーダ部７０６の構成を示している。
【０２０５】
入力信号は、アダーａｇ４，ａｇ３，ａｇ２，ａｇ１，ａｇ０のそれぞれの出力要素の表現インデックスであり、これらの要素毎にｍ次の係数に相当する共通ノードＮ（ａｇ４），Ｎ（ａｇ３），Ｎ（ａｇ２），Ｎ（ａｇ１），Ｎ（ａｇ０）を有する。これらの共通ノードは、信号ＣＬＫで駆動されるＰＭＯＳトランジスタＰ０によりＶｄｄにプリチャージされる。
【０２０６】
各要素の共通ノードに対して、表現インデックス成分１７ｎ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５ｎ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ１，ＮＯＲ２，ＮＯＲ３，ＮＯＲ４，ＮＯＲ５が構成される。ＮＭＯＳトランジスタＮ１１，Ｎ１２の配置が図２３Ａ及び図２３Ｂのテーブルにより決まる。
【０２０７】
５つの共通ノードのパリティチェックを４ビットパリティチェッカ・ラダー７０７で行うことにより、ｃｉのｍ次の係数（ｃｉ）ｍが得られる。
【０２０８】
図２５は、５入力４ビットパリティチェッカ・ラダー７０７の構成例を示す。Ｎ（ａｇ０）からＮ（ａｇ３）の４入力は４ビットパリティチェッカＰＣ１に入り、その出力とＮ（ａｇ４）の反転入力が２ビットパリティチェッカＰＣ２に入力される。
【０２０９】
図２６（ａ）（ｂ）は、２ビットパリティチェッカＰＣ２の回路記号と具体的な回路例である。２ビットａとｂをＸＯＲ部とＸＮＯＲ部でロジック演算して偶数パリティすなわち入力端子中の“１”の数が偶数のときＥＰ＝“１”を出力する。
【０２１０】
図２７（ａ）（ｂ）は、４ビットパリティチェッカＰＣ１の回路記号と具体的な回路例を示している。４ビットａ，ｂ，ｃ，ｄを入力として構成要素である２ビットパリティチェッカの出力のロジックを取り、偶数個の“１”が入力にあるときＥＰ＝“１”を出力する。
【０２１１】
（データ読み出しとエラー訂正のタイミング制御）
次に、メモリからのデータ読み出し動作のタイミング同期の関係について、図２８を参照して説明する。なお、クロック名などにはメモリへのシンボルデータの書き込みまでに用いたのと同じ名称を用いることもあるが、同一の信号ではないことに注意を要する。
【０２１２】
メモリコアから読み出したデータの格納場所として２０バイトのデータレジスタ（データラッチ）を２系統準備する。これら第１及び第２のデータラッチ系をインタリーブして使用することによりデータを切れ目なく出力する。
【０２１３】
クロックは２種ある。一つは、データの転送を行うもので、データを出力するためのクロックＣＬとこれと周期は同じであるがメモリからデータを読み出すために５サイクルごとにまとまって間欠的に発生されるクロックＣＰである。もう一つは、ＥＣＣシステムを駆動するためのクロックＣＬＫで、これは１ＣＬＫサイクル＝１６ＣＬサイクルとする。
【０２１４】
メモリからは２０バイトのデータｄｉ（ｉ＝１９〜０）が４バイトずつ５ＣＰサイクルで読み出されて、第１のデータラッチに保持されるとともに、シンドロームの計算が行われる。このシンドロームからエラー検索とシンボルエラーが計算され、コードデータがｄｉを修正したｃｉ（ｉ＝１９〜４）としてラッチの出力を訂正する。ｃ３〜ｃ０は情報データの訂正には使われない。これでＥＣＣの１ＣＬＫサイクルが終了する。
【０２１５】
次にラッチ出力に得られたコードｃｉを用いて情報データａｉ（ｉ＝１５〜０）をクロックＣＬに同期して順次計算して出力するとともに、次の２０バイトのデータを第２のデータラッチに読み出す。即ち、第１及び第２のラッチ系で、一方が訂正された情報データａｉを出力する動作を行っている間に、同時に他方では次の読み出しデータをラッチして、シンドローム計算、エラー検出及び訂正を行うというインタリーブ動作が行われる。
【０２１６】
次に、メモリから読み出したデータに対してエラー位置探索とエラー訂正を行うシステムについて、以下具体的に説明する。
【０２１７】
（シンドローム演算部）
まず図２９は、シンドロームの計算システム（図３のシンドローム演算部２１）の概要である。メモリから読み出す１９次の多項式の係数であるシンボルデータをｄ１９，ｄ１８，…，ｄ２，ｄ１，ｄ０とする。これらにαの適当な冪を乗じて加えることでシンドロームｓ０，ｓ１，ｓ２，ｓ３を得るのがこのシステムである。このシンドローム計算システムはエラー検索訂正のためのメインクロックＣＬＫをトリガとして、クロック発生器２９０８により短い周期のクロックＣＰを５サイクル発生して、このクロックＣＰに同期して計算を行う。
【０２１８】
入力部は、ＧＦ（２５６）の要素をｐｎ（ｘ）の係数として表す各４バイトのデータｄ１９〜ｄ１６，ｄ１５〜ｄ１２，ｄ１１〜ｄ８，ｄ７〜ｄ４，ｄ３〜ｄ０を５サイクルで受け取る。入力部は、プリデコーダ２９０１，インデックスデコーダ２９０２及びインデックス／バイナリ変換回路２９０３から構成される。これらの入力回路部によってデータは表現インデックスに変換されてバイナリ表示となる。またゼロ元判定も行われる。
【０２１９】
バイナリ表示の表現インデックスに基づいて、５サイクルで４つのシンドロームを同時に計算する。即ち４バイトのデータを同時に１２個の表現インデックスのアダー回路２９０４に入力している。勿論回路規模を小さくしたければ、１バイトずつ２０サイクルで計算するアダー３つとすることができる。
【０２２０】
４つのシンドロームに対応して４つの４ビットパリティチェッカ２９０５があり、各同時に扱う４つのＧＦ（２５６）の和を求めている。これにより、空間ドメインでの並列パリティチェックを行っている。このパリティチェッカ２９０５の５サイクル分の出力のパリティチェツクを行うのが“１”の計数回路２９０７の部分であり、こここで４ビットパリティチェッカが“１”を出力すると“１”と“０”を交互にシフトする。これは、時間ドメインでのシリアルパリティチェックを行っていることになる。なお、１バイトずつ２０サイクルで計算する場合は、空間ドメインの並列パリティチェックは不要である。
【０２２１】
一番上のシンドロームｓ０の計算はαの０乗すなわち１との掛け算であるので実質的にアダー回路は必要なく、表現インデックスが直接４ビットパリティチェッカ２９０５に入力される。
【０２２２】
シンドロームｓ１の計算以降はアダー回路２９０４が必要となる。シンドロームｓｉ(ｉ＝１〜３）の計算のアダー回路２９０４へはデータの表現インデックスをバイナリ表示したものを入力し、また計算に必要なαの累乗の指数の表現インデックスのバイナリ表示を入力して和を求める。その結果が表現インデックスとして４ビットパリティチェッカ２９０５へ入力される。入力データがゼロ元のときはアダーの計算結果によらずに出力の表現インデックスをすべて“０”とする。
【０２２３】
４ビットパリティチェッカ２９０５の出力はクロックＣＰに同期して次段の計数回路２９０７を駆動する信号となる。計数回路２９０７はクロックＣＬＫの立ち上がりで発生されるリセットパルスＲＳでリセットされて新たな“１”の計数を始める。
【０２２４】
各々の４ビットパリティチェッカ２９０５と計数回路２９０７はｐｎ（ｘ）の計数で要素を表すから、それぞれのシンドロームに対してｍ＝０〜７の８つ設けられる。これにより各シンドロームがＧＦ（２５６）の要素としてｐｎ（ｘ）となって出力される。
【０２２５】
図３０は、図２９の計算システムの入力部プリデコーダ２９０１の構成例である。ここでは、先のｐｎ（ｘ）の係数とＡｉ，Ｂｉ，Ｃｉ，Ｄｉの対応テーブル従って各信号を発生させる。
【０２２６】
図３１は、同じく入力部のインデックスデコーダ２９０２の構成例である。ここでは、Ａｋ，Ｂｋ，Ｃｋ，Ｄｋをテーブルに従ってＮＡＮＤ接続したものをグループ化し、ＮＯＲ接続して表現インデックスの各成分をクロックＣＰに同期して発生している。
【０２２７】
図３２は、同じく入力部のインデックス／バイナリ変換回路２９０３の構成例である。ここでは、クロックＣＰに同期して、インデックスを５バイナリ或いは４バイナリ表示に直す。即ち１７を法とするインデックス成分は５ビット、１５を法とするインデックス成分は４ビットのバイナリデータとする。
【０２２８】
図３３は、インデックス／バイナリ変換回路２９０３に付属するゼロ判定回路の構成を示している。データがゼロ元のときはＡ０，Ｂ０，Ｃ０，Ｄ０が“Ｈ”であるので、それらのＮＡＮＤによりｚｅｒｏｄｉ＝“Ｈ”を発生する。またゼロ元の場合はインデックスデコーダ回路も対応するデコードが無いためインデックスはすべて“０”となる。
【０２２９】
図３４及び図３５は、シンドローム計算システムにおけるアダー回路２９０４の構成例を示している。
【０２３０】
図３４は、メモリから読み出したデータν（ｘ）のｋ次の係数ｄｋについてｋ≡ｊ ｍｏｄ４となるデータが入力して、ν(αi) を計算する際に用いられる、１７を法とした表現インデックスについてのアダー回路部、αｉｄｊアダー（１７）である。ｊは０から３の４つ、ｉは１から３の３つでこの種類のアダーは１２個ある。
【０２３１】
一方のデータ入力３４１は５サイクルのクロックＣＰの各サイクルＣＰ０〜ＣＰ４に同期して入力される１５σｄ（ｊ＋４×４）（１７）のバイナリ表示、１５σｄ（ｊ＋４×３）（１７）のバイナリ表示、１５σｄ（ｊ＋４×２）（１７）のバイナリ表示、１５σｄ（ｊ＋４×１）（１７）のバイナリ表示及び１５σｄ（ｊ＋４×０）（１７）のバイナリ表示である。
【０２３２】
もう一方の入力３４２は、クロックＣＰ０〜ＣＰ４で順次切り替えられて入力される、１５ｉ（ｊ＋４×４）（１７）のバイナリ表示、１５ｉ（ｊ＋４×３）（１７）のバイナリ表示、１５ｉ（ｊ＋４×２）（１７）のバイナリ表示、１５ｉ（ｊ＋４×１）（１７）のバイナリ表示及び１５ｉ（ｊ＋４×０）（１７）のバイナリ表示である。この入力部の回路の詳細は後ほど説明する。
【０２３３】
これらの入力データについて５ビットアダー（１７）３４３で和を求める。出力３４４は、出力部にあるバイナリ／インデックス変換回路３４５（即ち２９０９）で表現インデックス成分１５σαｉｄｊ（１７）に変換される。
【０２３４】
図３５は、メモリから読み出したデータν（ｘ）のｋ次の係数ｄｋについてｋ≡ｊ ｍｏｄ ４となるデータが入力し、ν(αi) を計算する際に用いられる、１５を法とした表現インデックス成分に対するアダー回路部、αｉｄｊアダー（１５）である。ｊは０から３の４つ、ｉは１から３の３つであり、この種のアダーも１２個ある。
【０２３５】
一方のデータ入力３５１は５サイクルのクロックＣＰの各サイクルＣＰ０〜ＣＰ４に同期して入力される１７σｄ（ｊ＋４×４）（１５）のバイナリ表示、１７σｄ（ｊ＋４×３）（１５）のバイナリ表示、１７σｄ（ｊ＋４×２）（１５）のバイナリ表示、１７σｄ（ｊ＋４×１）（１５）のバイナリ表示及び１７σｄ（ｊ＋４×０）（１５）のバイナリ表示である。
【０２３６】
もう一方の入力３５２は、クロックＣＰ０〜ＣＰ４で順次切り替えられて入力される、１７ｉ（ｊ＋４×４）（１５）のバイナリ表示、１７ｉ（ｊ＋４×３）（１５）のバイナリ表示、１７ｉ（ｊ＋４×２）（１５）のバイナリ表示、１７ｉ（ｊ＋４×１）（１５）のバイナリ表示及び１７ｉ（ｊ＋４×０）（１５）のバイナリ表示である。この入力部の回路の詳細は後ほど説明する。
【０２３７】
これらの入力データについて４ビットアダー（１５）３５３で和を求める。出力３５４は、出力部にあるバイナリ／インデックス変換回路３５５（即ち２９０９）で表現インデックス成分１７σαｉｄｊ（１５）に変換される。
【０２３８】
図３６は、図３４或いは図３５のアダー出力部に用いられるバイナリ／インデックス変換回路３４５，３５５（即ち図２９の変換回路２９０９）としてのデコーダ回路を示す。アダーの計算結果は２進表示でのインデックスであるからこれを次の段の計算で表現インデックス間の計算として利用できるようにインデックス信号へと変換する必要がある。
【０２３９】
ここでは、クロックＣＰに同期したクロックＣＫでプリチャージされたノードを、バイナリ表示をデコードしたＮＡＮＤロジックで放電して、インデックスとする。アダーへのデータ入力がゼロ元である場合は、信号ｚｅｒｏｄｉによりクロックＣＫは“Ｌ”のままでインデックスもすべて“０”となる。
【０２４０】
図３７は、上述したαｉｄｊアダーのαのインデックス入力部の構成を示す。α の指数で表したＧＦ（２５６）の要素は、後に説明するように、その冪の要素が表現インデックスの成分の変換から得られることを利用して、クロックＣＰのサイクルごとにインデックスの接続換えを行うことで、ν（ｘ）にαi を代入した際の項ｘｍの代入結果としてのインデックスを得ている。
【０２４１】
具体的には、αｉｄｊアダーではクロックＣＰの最初のサイクルＣＰ０ではインデックスｉ（ｊ＋１６）の表現インデックス成分、ＣＰ１ではインデックスｉ（ｊ＋１２）の表現インデックス成分、ＣＰ２ではインデックスｉ（ｊ＋８）の表現インデックス成分、ＣＰ３ではインデックスｉ（ｊ＋４）の表現インデックス成分、ＣＰ４ではインデックスｉｊの表現インデックス成分が必要である。これらの配線の接続換えをクロックＣＰに同期して行うのがインデックスＭＵＸ３７１，３７２である。
【０２４２】
これらのインデックスＭＵＸから出てきた表現インデックス成分１５ｉ（ｊ＋４ｐ）（１７）と１７ｉ（ｊ＋４ｐ）（１５）（但し、ｐ＝４〜０）はインデックス／バイナリ変換回路３７３でインデックス成分の２進数表示に変換されてアダーに供給される。
【０２４３】
次に、ｎの倍数についてその表現インデックスと剰余類がどの様に変換するかを説明する。αｎのインデックスｎに対応する表現インデックスは、ｍｏｄ １７とｍｏｄ １５のペアとして｛１５ｎ（１７），１７ｎ（１５）｝で表す。本システムは次の３つの場合（ａ），（ｂ），（ｃ）がある。なお、１５ｎ（１７）＝σ１７、１７ｎ（１５）＝σ１５とする。
【０２４４】
（ａ）ｎの表現インデックスσ１７，σ１５から法１５と互いに素である数ｍの倍数ｍｎの表現インデックスを求める。１７は素数なので、どのようなｍとも互いに素である。
【０２４５】
ｎをｍ倍してもｍが法と互いに素であるので、合同式の両辺を法を変えずにｍで割ることが出来る。従って剰余類自体は変わらず含まれる要素の構成に変わりはない。表現インデックスはｍ倍され、｛σ１７（ｍｏｄ １７），σ１５（ｍｏｄ １５）｝から｛ｍσ１７（ｍｏｄ １７），ｍσ１５(ｍｏｄ １５）｝となる。
【０２４６】
（ｂ）法１７は素数であるので因数を持たないが、法１５は３や５を因数として持つ。このときσ１５から法１５の因数である数ｍの倍数ｍｎの表現インデックスを求める。
【０２４７】
ｍｎとｍｎ’が同じ剰余類に属するなら、１７ｍ（ｎ−ｎ’）≡０(ｍｏｄ １５）である。ｍが１５の因数であるので合同式の両辺を割るときには法もその絶対値で割られてｎ≡ｎ' （ｍｏｄ １５／|ｍ|)であるから、１５／|ｍ|だけ差がある剰余類の要素は同じ剰余類の要素と見なされ、今まで分離していた剰余類が結合して新たな大きな剰余類となる。表現インデックスはこれらの結合によって同一の表現インデックスを持つように変換される。
【０２４８】
例えばｍ＝−３の場合はｎ≡ｎ' （ｍｏｄ ５）となり、法１５での剰余類３つが結合して１５個の剰余類が５つの剰余類にまとまる。
【０２４９】
表現インデックスの変換計算自体は（ａ）の場合と同じである。
【０２５０】
（ｃ）ｎの表現インデックスから法１５と互いに素である数ｍのｍ分の１のｎ／ｍの表現インデックスを求める。
【０２５１】
ｎをｍ分の１倍してもｍが法と互いに素であるので合同式の両辺にｍを掛けることが出来る。従って剰余類自体は変わらず含まれる要素の構成に変わりはない。表現インデックスは変換される表現インデックスに法の適当な倍数を加えてｍを因数としてもつ数に変換し（法とｍが互いに素なので可能)、これをｍで割って法の剰余として得られる。
【０２５２】
例えばｍ＝２のとき、σ１７が偶数なら、ｂ１７＝σ１７／２なる整数ｂ１７があり、奇数ならｂ１７＝（σ１７＋１７）／２なる整数ｂ１７がある。同様に、σ１５が偶数なら、ｂ１５＝σ１５／２なる整数ｂ１５があり、奇数ならｂ１５＝（σ１５＋１５）／２なる整数ｂ１７がある。従って、｛ｂ１７（ｍｏｄ １７），ｂ１５（ｍｏｄ １５）｝なる表現インデックスが得られる。
【０２５３】
図３８は、表現インデックス間の関係の例として、ｎの表現インデックス{１５ｎ（１７）,１７ｎ（１５）}の成分インデックスがｎのｍ倍の変換後にとる値を欄×ｍ（ｍ＝−１，２，−２，３，−３，１／２）の表にした。この変換を組みあわて本システムで必要な表現インデックスは全て得られる。
【０２５４】
例えば表現インデックス｛３、８｝の−３／２倍の変換をする。最初の表現インデックス成分は１５ｎ（１７）＝３であるので、×（−３）の欄から８になり、これを新たに１５ｎ（１７）と見なして×１／２の欄から４となる。
【０２５５】
２番目の表現インデックス成分は１７ｎ（１５）＝８であるので、×（−３）の欄から６になり、これを新たに１７ｎ（１５）と見なして×１／２の欄から３になる。これにより、｛３，８｝は、×（−３／２）で｛４，３｝に変換される。
【０２５６】
この変換過程は、最初に×１／２を求め、次に×（−３）を求めても、結果は同じである。
【０２５７】
次に、図３９は、αｉｄｊアダーで用いられるαｎ の表現インデックスの成分の関係としてν（ｘ）に代入されるα１，α２ ，α３ に対してｊ＝０，１，２，３のアダーで使用される×（ｊ＋４ｐ）（但し、ｐ＝４，３，２，１，０）の表現インデックスの値をテーブルにした。このテーブルに従って先のインデックスＭＵＸでのクロックＣＰに同期したインデックス信号の切り替えを行う。
【０２５８】
図４０は、ν（α０）についてのシンドローム計算のアダー出力の和を求める４ビットパリティチェッカ２９０５の入力部のインデックスデコーダ２９０６の構成例である。ν(α０) ではアダーはなくデータ入力部のデコーダから直接データの表現インデックスを
受け取る。
【０２５９】
入力信号はデータ要素ｄ（３＋４ｋ），ｄ（２＋４ｋ），ｄ（１＋４ｋ），ｄ（０＋４ｋ）であり、ｋ＝４，３，２，１，０がクロックＣＰの５サイクルに同期して表現インデックスとしてインデックスデコード部２９０６に入力される。入力のデータ要素ごとに和のｐｎ（ｘ）のｍ次の係数に相当するノードＮＤ０〜ＮＤ３を持ち、このノードを信号ＣＰで駆動されるＰＭＯＳトランジスタＰ０により予めプリチャージしておく。
【０２６０】
各要素の共通ノードに対して、表現インデックス成分１７σｄｎ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５σｄｎ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ１，ＮＯＲ２，ＮＯＲ３，ＮＯＲ４が構成される。ＮＭＯＳトランジスタＮ１１，Ｎ１２の配置がＧＦ（２５６）の要素の係数と表現インデックスの対応表から決まる。各ｍについて各要素からの４つのノードＮＤ０〜ＮＤ３のパリティチェックを４ビットパリティチェッカ２９０５で行うことにより、ν(α０) の５分の１の多項式の部分和のｍ次の係数ＣＫ０
が得られる。
【０２６１】
ちなみに、偶数個の入力を持つパリティチェッカの入力は全入力が反転されていても出力は変わらないので、入力デコードがノードの放電であるロジックが作りやすい反転入力としている。４ビットパリティチェッカ２９０５の出力はクロックＣＰに同期して反転され出力される。
【０２６２】
図４１は、ν（αｉ）（ｉ＝１，２，３）についてのシンドローム計算のアダー出力の和を求める４ビットパリティチェッカ２９０５の入力部のインデックスデコーダ２９０６の構成例である。この場合、アダーからの出力の表現インデックスを入力信号として受け取る。
【０２６３】
入力信号は要素αｉｄ３，αｉｄ２，αｉｄ１，αｉｄ０で、クロックＣＰの５サイクルに同期して表現インデックスとしてデコーダ部２９０６に入力される。入力のデータ要素ごとに和のｐｎ（ｘ）のｍ次の係数に相当するノードＮＤ０〜ＮＤ３を持ち、このノードを信号ＣＰで駆動されるＰＭＯＳトランジスタＰ０により予めプリチャージしておく。
【０２６４】
各要素の共通ノードに対して、表現インデックス成分１７σαｉｄｉ（１５）によりゲートが駆動されるＮＭＯＳトランジスタＮ１１と、表現インデックス成分１５σαｉｄｉ（１７）によりゲートが駆動されるＮＭＯＳトランジスタＮ１２とによりＮＯＲ回路ＮＯＲ１，ＮＯＲ２，ＮＯＲ３，ＮＯＲ４が構成される。このトランジスタゲートへの接続はＧＦ（２５６）の要素の係数と表現インデックスの対応表から決まる。
【０２６５】
各ｍについて各要素からの４つのノードのパリティチェックを４ビットパリティチェッカ２９０５で行い、ν(αｉ) の５分の１の多項式の部分和のｍ次の係数ＣＫｉｍが得られる。
【０２６６】
（エラー検索の第１段階アダー回路部）
次に、シンドローム計算後のエラー検索の最初の段階である、シンドロームの積や商を計算する部分、即ち図３のアダー回路２２，２３，２４，２５及び２９の部分の説明をする。まず、Ｓ０Ｓ２，Ｓ０Ｓ３，Ｓ１Ｓ２及びＳ１Ｓ３の積計算を行う最初の４つのアダー２２，２３，２４及び２５の部分を、まとめて、“ＳｍＳｎアダー”として説明する。
【０２６７】
シンドローム計算システムのシリアルパリティチェッカからの出力Ｓ０，Ｓ１，Ｓ２，Ｓ３は７次の多項式として得られ、ＧＦ（２５６）の要素であるｐｎ（ｘ）のいずれかに一致している。そこで多項式をｍ１（ｘ）の根αのインデックスをｍｏｄ１７，ｍｏｄ１５によって表した表現インデックスに変換して、以後の計算で利用する。
【０２６８】
即ち、ＳｍＳｎアダーの入力部に、この変換を行なうために設けられるデコード回路が、図４２に示すプリデコード回路及び図４３に示すインデックスデコード回路である。
【０２６９】
図４２のプリデコード回路は、８ビットのｐｎ（ｘ）の係数の表す２５６のバイナリ信号状態を信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉ（ｉ＝０〜３）の組合せとして表す変換回路であり、ＮＡＮＤ回路で構成される。８ビットのバイナリ信号を２ビットずつ下位から区切り、４進数としてそれぞれ表して、これらをＡｉ，Ｂｉ，Ｃｉ，Ｄｉとしている。
【０２７０】
Ｓ０，Ｓ１，Ｓ２，Ｓ３を表す多項式の項の係数の次数ｍ＝０，１がＡｉ、ｍ＝２，３がＢｉ、ｍ＝４，５がＣｉ、ｍ＝６，７がＤｉに変換される。このプリデコードにり、次段のインデックスデコード回路の構成ユニットのトランジスタ数を８から４に削減できる。
【０２７１】
図４３のインデックスデコード回路は、１７σ３ ｄｅｃｏｄｅ，１５σ３ ｄｅｃｏｄｅ，１７σ２ｄｅｃｏｄｅ，１５σ２ ｄｅｃｏｄｅ，１７σ１ ｄｅｃｏｄｅ，１５σ1  ｄｅｃｏｄ，１７σ０ｄｅｃｏｄｅ及び１５σ０ ｄｅｃｏｄｅの８回路あり、構成は同じで入力信号が異なるのみである。
【０２７２】
これらのデコード回路では、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力する。信号Ａｋ，Ｂｋ，Ｃｋ，Ｄｋを剰余類の各要素を表すデコードのＮＡＮＤ接続とこれら要素の集合を表すこれらのＮＯＲ接続で結合して、クロックＣＬＫ＊でプリチャージされたノードを放電し、さらに反転して剰余類のインデックス信号を出力している。剰余類の数だけこの回路は必要である。
【０２７３】
ｍｏｄ１７及びｍｏｄ１５に対してこれらのインデックスをつくり、これらのペアとして表現インデックスとする。なおクロックＣＬＫ＊はクロックＣＬＫからシンドローム計算が終了したころに遅延して発生されるクロックである。
【０２７４】
ｐｎ（ｘ）＝０の場合はαの指数で表現できず、表現インデックスは求まらない。後にこの状態を示す信号が必要になる場合のために、図４４に示すゼロデコード回路が状態信号発生回路としてが設けられる。
【０２７５】
具体的には、Ｓ３=0 ｄｅｃｏｄｅ，Ｓ２=0 ｄｅｃｏｄｅ，Ｓ１=0 ｄｅｃｏｄｅ，Ｓ０=0 ｄｅｃｏｄｅのように、Ａ０＝Ｂ０＝Ｃ０＝Ｄ０＝“１”で信号(S3=0)，(S2=0)，(S1=0)，(S0=0)をそれぞれ発生する。
【０２７６】
図４５は、シンドローム多項式からシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３の表現インデックスに変換し、これらの−１乗，２乗の表現インデックスを×（−１），×２の変換で求める回路ブロックを示す。これらの要素は後のアダーでの計算で必要になる。
【０２７７】
図４５のデコード部４５１，４５２は、それぞれ先に示したプリデコード回路とインデックスデコード回路によって、各シンドロームＳ０，Ｓ１，Ｓ２，Ｓ３の表現インデックス｛１５σ０（１７）,１７σ０（１５）｝，｛１５σ１（１７）,１７σ１（１５）｝，１５σ２（１７）,１７σ２（１５）｝，｛１５σ３（１７）,１７σ３（１５）｝のインデックス成分を発生させる。
【０２７８】
これらの表現インデックスのインデックス成分を、先の表現インデックス間の関係例の変換テーブルに従ってマルチプレクサ回路４５３，４５４で変換して、このあとのアダー回路での計算に利用する。マルチプレクサ回路４５３，４５４はインデックス間の対応関係に従って信号を配信するだけの分岐回路である。
【０２７９】
図４６は、ＳｍＳｎの１７を法とする表現インデックスを計算するＳｍＳｎアダー（１７）の構成である。即ち数１９〜数２２に示した、二つの分離した合同式の一方、ｍｏｄ１７の右辺の演算を行うアダーである。実際にアダーがあるのは、（ｍ，ｎ）＝（０，１），（０，３），（１，２），（１，３）である。
【０２８０】
入力４６１，４６２はそれぞれ表現インデックス成分１５σｍ(１７) と１５σｎ(１７) である。これらを５ビットアダー（１７）４６５で加えるために、インデックスをインデックス／バイナリ変換回路４６３，４６４により２進数表示に変換する。そして加算結果を、バイナリ／インデックス変換回路４６６によりインデックスに戻して、出力４６７として、表現インデックス成分１５σｍｎ(１７)を出力する。
【０２８１】
図４７は、数１９〜数２２におけるもう一つの合同式であるｍｏｄ１５の合同式の右辺の演算を行う、ＳｍＳｎアダー（１５）である。実際にアダーがあるのは、（ｍ，ｎ）＝（０，１），（０，３），（１，２），（１，３）である。
【０２８２】
入力４７１，４７２はそれぞれ表現インデックス成分１７σｍ(１５) と１７σｎ(１５) である。これらを４ビットアダー（１５）４７５で加えるために、インデックスをインデックス／バイナリ変換回路４７３，４７４により２進数表示に変換する。そして加算結果を、バイナリ／インデックス変換回路４７６によりインデックスに戻して、出力４７７として、表現インデックス成分１７σｍｎ(１５)を出力する。
【０２８３】
図４８は、図３のアダー回路２９のなかの有限体要素Ｓ１／Ｓ０の１７を法とする表現インデックスを計算するＳ１／Ｓ０アダー（１７）、即ち１５σｘ≡１５σ１−１５σ０（ｍｏｄ １７）の右辺の演算を行うアダーである。入力４８１，４８２は表現インデックス成分１５σ０(１７) に×（−１）変換を行った、−１５σ１(１７)と−１５σ０(１７)である。
【０２８４】
これらを５ビットアダー（１７）４８５で加えるために、インデックス／バイナリ変換回路４８３，４８４でバイナリ値に変換する。そして、１７を法とした剰余として計算した後、その出力をバイナリ／インデックス変換回路４８６により再度インデックスに変換して、出力４８７として、表現インデックス成分１５σｘ(１７) を得る。
【０２８５】
図４９は、図３のアダー回路２９のなかの有限体要素Ｓ１／Ｓ０の１５を法とする表現インデックスを計算するＳ１／Ｓ０アダー（１５）、即ち１７σｘ≡１７σ１−１７σ０（ｍｏｄ １５）の右辺の演算を行うアダーである。入力４９１，４９２は表現インデックス成分１７σ０(１５) に×（−１）変換を行った、−１７σ１(１５)と−１７σ０(１５)である。
【０２８６】
これらを４ビットアダー（１５）４９５で加えるために、インデックス／バイナリ変換回路４９３，４９４でバイナリ値に変換する。そして、１５を法とした剰余として計算した後、その出力をバイナリ／インデックス変換回路４９６により再度インデックスに変換して、出力４９７として、表現インデックス成分１７σｘ(１５) を得る。
【０２８７】
（エラー検索の第１段階パリティチェック部）
次に、エラー検索で使用する第１段階パリティチェック部、即ち図３のパリティチェッカ２６，２７及び２８の部分を説明する。これらはそれぞれ、Ａ＝Ｓ０Ｓ２＋Ｓ１２，Ｂ＝Ｓ０Ｓ３＋Ｓ１Ｓ２及びＣ＝Ｓ１Ｓ３＋Ｓ２２を計算する部分である。
【０２８８】
図５０は、図３のパリティチェッカ２６，２８の構成であり、Ａ＝Ｓ０Ｓ２＋Ｓ１２及びＣ＝Ｓ１Ｓ３＋Ｓ２２を計算するパリティチェッカ５０１とその入力デコード部５０２の構成である。
【０２８９】
入力信号はＡに関しては要素Ｓ０Ｓ２とＳ１２、 Ｃに関しては要素Ｓ１Ｓ３とＳ２２のそれぞれの表現インデックスであり、これらの要素ごとにｍ次の係数に相当するノードＮＤ１，ＮＤ２を持ちこのノードを信号ＣＬＫ＊でプリチャージしておく。各要素のｍ次のノードの表現インデックス信号のトランジスタゲートへの接続は先のＧＦ（２５６）の要素の係数と表現インデックスの対応表から決まる。
【０２９０】
各ｍについて各要素からの２つのノードＮＤ１，ＮＤ２のパリティチェックを２ビットパリティチェッカ５０１で行うことにより、ＡとＣのｍ次の係数（Ａ）ｍと（Ｃ）ｍが得られる。ちなみにパリティチェッカ５０１の入力は全入力が反転されていても出力は変わらないので入力デコードがノードの放電であるのでロジックが作りやすい反転入力とした。
【０２９１】
図５１は、図３のパリティチェッカ２７の構成であり、Ｂ＝Ｓ０Ｓ３＋Ｓ１Ｓ２を計算するパリティチェッカ５１１とその入力デコード部５１２である。
【０２９２】
入力信号は要素Ｓ０Ｓ３とＳ１Ｓ２のそれぞれの表現インデックスであり、これらの要素ごとにｍ次の係数に相当するノードＮＤ１，ＮＤ２を持ちこのノードを信号ＣＬＫ＊でプリチャージしておく。各要素のｍ次のノードの表現インデックス信号のトランジスタゲートへの接続は先のＧＦ（２５６）の要素の係数と表現インデックスの対応表から決まる。
【０２９３】
各ｍについて各要素からの２つのノードＮＤ１，ＮＤ２のパリティチェックを２ビットパリティチェッカ５１１で行うことにより、Ｂのｍ次の係数（Ｂ）ｍが得られる。
【０２９４】
Ａ，Ｂ，Ｃは７次の多項式として得られ、ＧＦ（２５６）の要素であるｐｎ（ｘ）のいずれかに一致している。そこで多項式をｍ１（ｘ）の根αのインデックスｍｏｄ１７，ｍｏｄ１５によって表した表現インデックスに変換して以後の計算で利用する。この変換を行なうデコード回路部を、図５２〜図５４に示す。 
【０２９５】
図５２のプリデコード回路は、８ビットのｐｎ（ｘ）の係数の表す２５６のバイナリ信号状態を信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉ(ｉ＝０〜３) の組合せとして表す変換回路でありＮＡＮＤ回路で構成される。８ビットのバイナリ信号を２ビットずつ下位から区切り４進数としてそれぞれ表して、これらをＡｉ，Ｂｉ，Ｃｉ，Ｄｉとしている。
【０２９６】
Ａ，Ｂ，Ｃの次数ｍ＝０，１がＡｉ、ｍ＝２，３がＢｉ、ｍ＝４，５がＣｉ、ｍ＝６，７がＤｉに変換される。このプリデコードにより、図５３に示す次段のインデックスデコード回路の構成ユニットのトランジスタ数を８から４に削減できる。
【０２９７】
図５３のインデックスデコード回路は、１７σＡ decode、１５σＡ decode、１７σＢdecode、１５σＢ decode、 １７σＣ decode、１５σＣ decodeの６種あり、入力信号が異なるのみである。これにより、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力するようになっている。
【０２９８】
即ち信号Ａｉ，Ｂｉ，Ｃｉ，Ｄｉを剰余類の各要素を表すデコードのＮＡＮＤ接続とこれら要素の集合を表すＮＯＲ接続で結合し、クロックＣＬＫ＊でプリチャージされたノードを放電してさらに反転して剰余類のインデックス信号を出力する。剰余類の数だけこの回路は必要である。ｍｏｄ１７，ｍｏｄ１５に対してこれらのインデックスをつくりこれらのペアとして表現インデックスとする。
【０２９９】
ｐｎ（ｘ）＝０の場合はαの指数で表現できず、表現インデックスが求まらないので、後でこの状態が必要になる場合のためにこの状態を示す信号を発生する。そのために、図５４のゼロデコード回路が用意されている。具体的にはA=0 decode、B=0 decodeとして、Ａ０＝Ｂ０＝Ｃ０＝Ｄ０＝“１”で信号（A=0），(B=0)をそれぞれ発生する。
【０３００】
（エラー検索の第２段階アダー回路部）
図３のエラー検索の第２段階アダー回路３０，３１の部分の構成を説明する。これらでは、パリティチェッカ２６〜２８により得られたＡ，Ｂ，Ｃを用いて、積ＡＣとａ＝Ｂ／Ａの計算を行なう。
【０３０１】
図５５は、図３のアダー回路３０の一つ、有限体要素ＡＣの１７を法とする表現インデックスを計算するＡＣアダー（１７）である。入力５５１，５５２は表現インデックス成分１５σＡ(１７) と１５σＣ(１７) である。これらを５ビットアダー（１７）５５５で加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路５５３，５５４を通す。
【０３０２】
これにより、アダー５５５で１７を法とした剰余とした計算を行い、その出力をバイナリ／インデックス変換回路５５６で再度インデックスに変換して、出力５５７として、表現インデックス成分１５σＡＣ(１７) を得る。
【０３０３】
図５６は、図３のアダー回路３０のもう一つ、有限体要素ＡＣの１５を法とする表現インデックスを計算するＡＣアダー（１５）である。入力５６１，５６２は表現インデックス成分１７σＡ(１５) と１７σＣ(１５) である。これらを４ビットアダー（１５）５６５で加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路５６３，５６４を通す。
【０３０４】
これにより、アダー５６５で１５を法とした剰余とした計算を行い、その出力をバイナリ／インデックス変換回路５６６で再度インデックスに変換して、出力５６７として、表現インデックス成分１７σＡＣ(１５) を得る。
【０３０５】
図５７は、図３のアダー回路３１の一つ、有限体要素ａ＝Ｂ／Ａの１７を法とする表現インデックスを計算するａアダー（１７）である。一方の入力５７１は表現インデックス成分１５σＢ(１７)であり、 他方の入力５７２は１５σＡ(１７)からマルチプレクサ５７３により×（−１）変換された−１５σＡ(１７) である。
【０３０６】
これらを５ビットアダー（１７）５７６で加えるために、インデックスを２進数表示に変換するインデックス／バイナリ変換回路５７４，５７５を通す。これにより、アダー５７６で１７を法とした剰余とした計算を行い、その出力をバイナリ／インデックス変換回路５７７で再度インデックスに変換して、出力５７８として、表現インデックス成分１５σａ(１７) を得る。
【０３０７】
図５８は、図３のアダー回路３１のもう一つ、有限体要素ａ＝Ｂ／Ａの１５を法とする表現インデックスを計算するａアダー（１５）である。一方の入力５８１は表現インデックス成分１７σＢ(１５)であり、 他方の入力５８２は１７σＡ(１５)からマルチプレクサ５８３により×（−１）変換された−１７σＡ(１５) である。
【０３０８】
これらを４ビットアダー（１５）５８６で加えるために、インデックスを２進表示に変換するインデックス／バイナリ変換回路５８４，５８５を通す。これにより、アダー５８６で１５を法とした剰余とした計算を行い、その出力をバイナリ／インデックス変換回路５８７で再度インデックスに変換して、出力５８８として、表現インデックス成分１７σａ(１５) を得る。
【０３０９】
（エラー検索の第３段階アダー回路部）
次に、図３のエラー検索の第２段階アダー回路３２，３３の部分の構成を説明する。これらでは、Ｄ＝ＡＣ／Ｂ２とＳ１／ａの計算を行なう。
【０３１０】
図５９は、アダー回路３２の一つ、有限体要素Ｄ＝ＡＣ／Ｂ２の１７を法とする表現インデックスを計算するＤアダー（１７）である。一方の入力５９１は表現インデックス成分１５σＡＣ(１７)であり、もう一方の入力５９２は、１５σＢ(１７)をマルチプレクサ５９３によって×（−２）変換した−３０σＢ(１７) である。
【０３１１】
これらを５ビットアダー（１７）５９６で加えるために、インデックス／バイナリ変換回路５９４，５９５によりインデックスを２進表示に変換する。アダー５９６の計算結果を、バイナリ／インデックス変換回路５９７で再度インデックスに変換して、出力５９８として、表現インデックスの成分１５σＤ(１７)を得る。
【０３１２】
図６０は、アダー回路３２のもう一つである、有限体要素Ｄ＝ＡＣ／Ｂ２の１５を法とする表現インデックスを計算するＤアダー（１５）である。一方の入力６０１は表現インデックス成分１７σＡＣ(１５)であり、もう一方の入力６０２は、１７σＢ(１５)をマルチプレクサ６０３によって×（−２）変換した−３４σＢ(１５) である。
【０３１３】
これらを４ビットアダー（１５）６０６で加えるために、インデックス／バイナリ変換回路６０４，６０５によりインデックスを２進表示に変換する。アダー６０６の計算結果を、バイナリ／インデックス変換回路６０７で再度インデックスに変換して、出力６０８として、表現インデックスの成分１７σＤ(１５)を得る。
【０３１４】
図６１は、アダー回路３３の一つ、有限体要素Ｓ１／ａの１７を法とする表現インデックスを計算するＳ１／ａアダー（１７）である。一方の入力６１１は表現インデックス成分１５σ１(１７)であり、もう一方の入力６１２は、１５σａ(１７)をマルチプレクサ６１３によって×（−１）変換した−１５σａ(１７) である。
【０３１５】
これらを５ビットアダー（１７）６１６で加えるために、インデックス／バイナリ変換回路６１４，６１５によりインデックスを２進表示に変換する。アダー６１６の計算結果を、バイナリ／インデックス変換回路６１７で再度インデックスに変換して、出力６１７として、表現インデックスの成分１５σＳ１／ａ(１７)を得る。
【０３１６】
図６２は、アダー回路３３のもう一つである、有限体要素Ｓ１／ａの１５を法とする表現インデックスを計算するＳ１／ａアダー（１５）である。一方の入力６２１は表現インデックス成分１７σ１(１５)であり、もう一方の入力６２２は、１７σａ(１５)をマルチプレクサ６２３によって×（−１）変換した−１７σａ(１５) である。
【０３１７】
これらを４ビットアダー（１５）６２６で加えるために、インデックス／バイナリ変換回路６２４，６２５によりインデックスを２進表示に変換する。アダー６２６の計算結果を、バイナリ／インデックス変換回路６２７で再度インデックスに変換して、出力６２８として、表現インデックスの成分１７σＳ１／ａ(１５)を得る。
【０３１８】
（エラー検索の最終段階アダー回路部）
次に、エラー探索の最終段階アダー回路３４，３５の説明を行う。アダー回路３４は、二つのシンボルエラーの位置ｎを求めるものであり、アダー回路３５はシンボルエラーを訂正するための演算に必要なＳ０ｙを計算する部分である。
【０３１９】
２エラーについてエラー位置の検索を行なうには、ｙ２＋ｙ＝Ｄを解くが、ｙ２＋ｙのインデックスをｙｋとし、ｙのインデックスをｋとすれば、ｋとｙｋの関係α２ｋ＋αｋ＝αｙｋが決まる。
【０３２０】
図６３は、アダー回路入力部のデコーダを構成するための、インデックスｋとｙｋの対応関係をまとめたテーブルである。ｋの順にｙｋを並べたものと、ｙｋの順にｋを並べたものを併せて示した。ｋ＝０の場合を除いて同一のｙｋに二つのｋが対応することを示している。ｋ＝０はｙｋがゼロ元対応していて１ビットエラーに対応する。またｙｋの値が全ての２５５の剰余にわたっていないことが分かる。対応するｙｋがない場合には２エラーではない。
【０３２１】
図６４は、２つのエラーがある場合に、ｙｋの表現インデックス｛１５ｙｋ（１７），１７ｙｋ（１５）｝とｋの表現インデックス成分１５ｋ（１７）の間の関係を示したテーブルである。デコードの際のバス構成との関係も併せて示している。
【０３２２】
テーブルは、１５ｋ（１７）の値ごとにまとめてグループとしている。Ｄ＝ｙ２＋ｙからαＤ≡ｙｋ(２５５)の計算で得られたｙｋの表現インデックスに対して、このテーブルからデコーダを作ると、ｋの表現インデックス成分１５ｋ(１７)が求まる。但し同じｙｋが２つのｋに対応するので、デコードの出力を２つに分けてｋごとにデータ出力データがバスでぶつからないように、２つのバスｂｓ１，ｂｓ２を設けている。
【０３２３】
例えば、ｙｋ＝１７にはｋ＝１１９，１５３が対応するので、ｋ＝１１９はバスｂｓ１に、ｋ＝１５３はバスｂｓ２に、というようにバスを分ける。
【０３２４】
実際のデコードで利用されるのは表現インデックスであり、ｙｋの各表現インデックスに対して各バスｂｓ１，ｂｓ２に出力されるｋの表現インデックス成分１５ｋ（１７）の値を対応させる。表現インデックス間に対応がない場合は２エラーではない。
【０３２５】
図６５は、２つのエラーがある場合に、ｙｋの表現インデックス｛１５ｙｋ（１７），１７ｙｋ（１５）｝とｋの表現インデックス成分１７ｋ（１５）の間の関係を示したテーブルである。デコードの際のバス構成との関係も併せて示している。
【０３２６】
テーブルは、１７ｋ（１５）の値ごとにまとめてグループとしている。Ｄ＝ｙ２＋ｙからαＤ≡ｙｋ(２５５)の計算で得られたｙｋの表現インデックスに対して、このテーブルからデコーダを作ると、ｋの表現インデックス成分１７ｋ(１５)が求まる。但し同じｙｋが２つのｋに対応するので、デコードの出力を２つに分けてｋごとにデータ出力データがバスでぶつからないように、２つのバスｂｓ１，ｂｓ２を設けている。
【０３２７】
例えば、ｙｋ＝１７にはｋ＝１１９，１５３が対応するので、ｋ＝１１９はバスｂｓ１に、ｋ＝１５３はバスｂｓ２に、というようにバスを分ける。
【０３２８】
実際のデコードで利用されるのは表現インデックスであり、ｙｋの各表現インデックスに対して各バスｂｓ１，ｂｓ２に出力されるｋの表現インデックス成分１７ｋ（１５）の値を対応させる。表現インデックス間に対応がない場合は２エラーではない。
【０３２９】
図６６は、アダー回路３４の一つ、即ち２つのエラー位置ｙを上述のインデックスの対応表によるデコードで求めて、実際のエラー位置の有限体要素ｘ＝ａｙを求めるために１７を法とする表現インデックス成分である１５ｎ（１７）を計算するａｙアダー（１７）である。
【０３３０】
一方の入力６６１は表現インデックス成分１５σａ(１７)である。もう一方の入力６６０は、ｙｋの表現インデックスを先のテーブルによって構成されたデコーダ６６２で対応付けした表現インデックス成分１５ｋ（１７）である。
【０３３１】
１５σa(１７)についてはインデックス／バイナリ変換回路６６３により２進表示に変換し、１５ｋ（１７）は２つのエラーのそれぞれに対応した２つの５ビットアダー（１７）６６５ａ，６６５ｂで加えるために、インデックス／バイナリ変換回路６６４によりを２進数表示に変換してバス（ｂｓ１，ｂｓ２）６６６に出力する。
【０３３２】
バイナリ値に変換された入力を各アダー６６５ａ，６６５ｂで１７を法とした剰余として計算し、その出力をバイナリ／インデックス変換回路６６７ａ，６６７ｂで再度インデックスに戻して、それぞれ出力バス（ｂｕｓ１，ｂｕｓ２）６６９に、表現インデックス成分１５ｎ（１７）として出力する。
【０３３３】
図６７は、アダー回路３４のもう一つ、即ち２つのエラーｙを上述のインデックスの対応表によるデコードで求めて、実際のエラー位置の有限体要素ｘ＝ａｙを求めるために１５を法とする表現インデックス成分である１７ｎ（１５）を計算するａｙアダー（１５）である。
【０３３４】
一方の入力６７１は表現インデックス成分１７σａ(１５)である。もう一方の入力６７０は、ｙｋの表現インデックスを先の表によって構成されたデコーダ６７２で対応付けした表現インデックス成分１７ｋ（１５）である。１７σa(１５)についてはインデックス／バイナリ変換回路６７３により２進表示に変換し、１７ｋ（１５）は２つのエラーのそれぞれに対応した２つの５ビットアダー（１７）６７５ａ，６７５ｂで加えるために、インデックス／バイナリ変換回路６７４によりを２進表示に変換してバス（ｂｓ１，ｂｓ２）６７６にそれぞれ出力する。
【０３３５】
バイナリ値に変換された入力を各アダー６７５ａ，６７５ｂで１５を法とした剰余として計算し、その出力をバイナリ／インデックス変換回路６７７ａ，６７７ｂで再度インデックスに戻して、出力バス（ｂｕｓ１，ｂｕｓ２）６７９に表現インデックス成分１７ｎ（１５）として出力する。
【０３３６】
図６８は、図６６及び図６７で用いるデコーダ６６２，６７２の構成である。これらは、ｙｋの表現インデックスから対応するｋの表現インデックスに変換するもので、ｙｋ（１７）デコード回路，ｙｋ（１５）デコード回路である。ひとつのｙｋに２つのｋが対応しているので、バスｂｓ１，ｂｓ２にそれぞれｋの表現インデックスを出力する。
【０３３７】
ｙｋの表現インデックス成分１５ｙｋ(１７),１７ｙｋ(１５)をゲート入力とするＮＡＮＤ接続によってこれらの表現インデックスを区別する。先の対応表テーブルに従って同じｋの表現インデックス成分に対応するグループごとにＮＯＲ接続で結合して、ＣＬＫ＊でプリチャージされたノードを放電し、さらに反転してｋの表現インデックス成分１５ｋ（１７），１７ｋ（１５）をバスごとに発生する。
【０３３８】
図６９は、表現インデックスの和をアダーで計算できるように２進数表示にする変換回路であり、これは以前に説明したものと同じである。
【０３３９】
図７０は、ｙｋに対応するｋが存在しないか、或いは１つ乃至２つのエラーとして解が求まらない場合に、“ｎｏ ｉｎｄｅｘ”信号を発生するためのデコーダである。インデックス間の対応がなければインデックス／バイナリ変換回路の出力が全ビット“１”となるので、この状態を検出するＮＡＮＤ回路で構成される。
【０３４０】
バスｂｓ１，ｂｓ２には必ず同時に信号が発生するので、このデコーダは一方のバスｂｓ１のみの状態のみをモニターしていれば十分である。
【０３４１】
図７１は、アダー６６５ａ，６６５ｂ，６７５ａ，６７５ｂの出力部に用いられるバイナリ／インデックス変換回路６６７ａ，６６７ｂ，６７７ａ，６７７ｂの構成を示す。アダーの計算結果は２進表示でのインデックスであるからこれを次の段の計算で表現インデックス間の計算として利用できるようにインデックス信号へと再変換するのが、これらの回路である。
【０３４２】
入力で“ｎｏ ｉｎｄｅｘ”信号が発生されたときはこの変換回路はアクティブにならず、アダーの結果によらず全てのインデックスを“０”として出力する。
【０３４３】
図７２は、図３のアダー回路３５の一つ、即ちエラーシンボルの修正で必要となる有限体要素Ｓ０ｙの１７を法とする表現インデックスを計算するＳ０ｙアダー（１７）である。 
【０３４４】
一方の入力７２１はエラー位置探索のアダー計算で用いた入力部デコーダ６６２の出力である表現インデックス成分１５ｋ（１７）の２進数表示であり、もう一方の入力７２２は、表現インデックス成分１５σ０(１７) である。後者については、インデックス／バイナリ変換回路７２３によりインデックスを２進表示に変換する。１５ｋ（１７）は２つのエラーのそれぞれに対応した２つの５ビットアダー（１７）７２４，７２５で加えるために、バス（ｂｓ１，ｂｓ２）７２１にそれぞれ出ている。
【０３４５】
これらのアダー７２４，７２５で１７を法とした剰余として計算し、その出力をバイナリ／インデックス変換回路７２６，７２７でインデックスに戻して、出力バス（ｂｕｓ１，ｂｕｓ２）７２８に表現インデックス成分１５σS0y(１７)を求めてそれぞれ出力する。
【０３４６】
図７３は、図３のアダー回路３５のもう一つ、即ちエラーシンボルの修正で必要となる有限体要素Ｓ０ｙの１５を法とする表現インデックスを計算するＳ０ｙアダー（１５）である。 
【０３４７】
一方の入力７３１はエラー位置探索のアダー計算で用いた入力部デコーダ６７２の出力である表現インデックス成分１７ｋ（１５）の２進表示であり、もう一方の入力７３２は、表現インデックス成分１７σ０(１５) である。後者については、インデックス／バイナリ変換回路７３３によりインデックスを２進表示に変換する。１７ｋ（１５）は２つのエラーのそれぞれに対応した２つの４ビットアダー（１５）７３４，７３５で加えるために、バス（ｂｓ１，ｂｓ２）７３１にそれぞれ出ている。
【０３４８】
これらのアダー７３４，７３５で１５を法とした剰余として計算し、その出力をバイナリ／インデックス変換回路７３６，７３７でインデックスに戻して、出力バス（ｂｕｓ１，ｂｕｓ２）７３８に表現インデックス成分１７σS0y(１５)を求めてそれぞれ出力する。
【０３４９】
（シンボルエラー計算のパリティチェック部）
図７４は、図３におけるパリティチェッカ３６即ち、エラー位置のシンボルを修正するためのシンボルエラーＥｎを計算するための２ビットパリティチェッカ７４１とその入力デコーダ部７４２の回路構成である。シンボルエラーはＥｎ＝Ｓｏｙ＋Ｓ１／ａと表されるので、アダーによって得られている要素ＳｏｙとＳ１／ａとの和を２ビットパリティチェッカ７４１で計算する。この計算はバスｂｕｓ１，ｂｕｓ２でそれぞれ行なう。
【０３５０】
パリティチェッカの入力信号は要素Ｓ０ｙとＳ１／ａのそれぞれの表現インデックスであり、これらの要素ごとにｍ次の係数に相当するノードＮＤ１，ＮＤ２を持ち、このノードを信号ＣＬＫ＊でプリチャージしておく。各要素のｍ次のノードの表現インデックス信号のトランジスタゲートへの接続は先のＧＦ（２５６）の要素の係数と表現インデックスの対応テーブル表から決まる。
【０３５１】
各ｍについて各要素からの２つのノードＮＤ１，ＮＤ２のパリティチェックを２ ビットパリティチェッカ７４１で行うことにより、ｍ次の係数（Ｅｎ）ｍが得られる。
【０３５２】
（エラー信号発生回路）
図７５は、２エラーの場合の、各出力バスｂｕｓ１，ｂｕｓ２ごとに得られたエラー位置ｎの表現インデックス１５ｎ（１７），１７ｎ（１５）を用いてエラー位置にエラー信号を発生する回路（エラー位置デコーダ）である。各バスのｎの表現インデックス成分のＮＡＮＤ接続をつくりこれらの表現インデックスを選択できるようにする。
【０３５３】
ビット位置ｉでエラーが発生したことを示す信号ｎ＝ｉ（ｉ＝０〜１９）を発生するためにバスｂｕｓ１，ｂｕｓ２の表現インデックスをＮＯＲ接続で結合し、クロックＣＬＫ＊でプリチャージされたノードＮ０，…，Ｎｉ，…，Ｎ１９を選択的に放電させる。更にそのノードの状態を反転して出力信号とする。
【０３５４】
図７６は、１エラーの場合のエラー位置デコーダである。この場合エラー位置は、要素Ｓ１／Ｓ０でありインデックスは、σｘで表される。その表現インデックス１５σｘ（１７），１７σｘ（１５）を用いてエラー位置に信号を発生する。
【０３５５】
ビット位置ｉでエラーが発生したことを示す信号σｘ＝ｉ（ｉ＝０〜１９）を発生するために、表現インデックス１５σｘ（１７），１７σｘ（１５）のＮＡＮＤ接続をつくり、クロックＣＬＫ＊でプリチャージされたノードＮ０’，…，Ｎｉ’，…，Ｎ１９’を選択的に放電させる。更にそのノード状態を反転して出力信号とする。
【０３５６】
図７７は、図７５の２エラーの場合のエラー位置デコーダと、図７６の１エラーの場合のエラー位置デコーダとを結合したエラー位置デコーダである。エラー位置計算システムでは、２エラーであることを示す信号２Ｃ、１エラーであることを示す信号１ＥＣが発生されるので、これらにより切り換えられるように二つのエラー位置デコーダが結合されている。
【０３５７】
なおここで、ｉ＝０〜１９の全てのエラー位置は必要ではなく、後に説明するように情報データを計算するには、ｉ＝４から１９までが用いられるので、エラー位置デコーダの数も１６個でよい。
【０３５８】
（エラー状態検出回路）
図７８（ａ）〜（ｄ）は、エラー状態検出用ゲート回路をまとめて示している。
【０３５９】
図７８（ａ）は、信号(Ｓ０=0), (Ｓ１=0), (Ｓ２=0), (Ｓ３=0)の全てが“１”の場合にｎｏ ｅｒｒｏｒ信号を発生するゲート回路４１である。
【０３６０】
図７８（ｂ）は、ノーエラーではなく（ｎｏ ｅｒｒｏｒ＝“０”）、１エラーでもなく（１ＥＣ＝“０”）、２エラーでもない（２Ｃ＝“０”）場合に、エラーが３以上であって訂正不可能であることを示すｎｏｎ−ｃｏｒｒｅｃｔａｂｌｅ信号を発生するゲート回路４４である。
【０３６１】
図７８（ｃ）は、(Ｓ0=0), (Ｓ1=0), (Ｓ2=0), (Ｓ3=0)の全てが“０”で、(Ａ=0)または(Ｂ=0)のいずれかが“１”の場合に、１エラーであることを示す信号１ＥＣを発生するゲート回路４２である。
【０３６２】
図７８（ｄ）は、(Ａ=0)と(Ｂ=0)が“１”でかつｎｏインデックスが“０”の場合に２エラーであることを示す信号２Ｃを発生するゲート回路４５である。
【０３６３】
（エラーコード訂正回路）
図７９は、シンボル位置ｎのコードを修正するエラーコード訂正回路である。この訂正回路は、図３の訂正回路５０におけるＸＯＲゲートＧ３に対応して、各エラー位置ｉに対して１バイト分（ｍ＝０〜７）の２ビットパリティチェッカ７９１を持つ。
【０３６４】
エラー位置は信号ｎ＝ｉ（ｉ＝４〜１９）で選択されて、１エラーの場合はシンボルエラーはＳ０であるのでバイトの各ビットは（ｓ０）ｍでエラーが判断される。２エラーの場合はシンボルエラーはエラー位置ｉのシンボルエラーＥｉで決まり各ビットは(Ｅｉ)ｍでエラーが判断される。
【０３６５】
メモリから読み出したν（ｘ）の係数シンボルのバイトを構成する各ビット（ｄｉ）ｍは、シンドロームを計算する際のクロックＣＰの５サイクルでラッチ７９２に保持される。そのラッチしたデータ（ｂｉ）ｍと、(ｓ０)ｍまたは(Ｅｉ)ｍの反転データとの排他的論理和の反転として、パリティチェッカ７９１で修正されて正しいコードのビット（ｃｉ）ｍとなる。
【０３６６】
（情報データ多項式ｆ（ｘ）の再構成法）
訂正されたコード多項式ｃ（ｘ）から情報データ多項式ｆ（ｘ）を復元し再構成するための計算法を説明する。この計算はデータ入力の際の逆演算に相当し、多項式の係数間の数６（数１８）の関係を利用する。
【０３６７】
ｇ４＝１＝｛０，０｝，ｇ３＝α７５＝｛３，０｝，ｇ２＝α２４９＝｛１２，３｝，ｇ１＝α７８＝｛１４，６｝，ｇ０＝α６＝｛５，１２｝であり、ｇ４は定数ｇ４＝１であるので、下記数３０が得られる。
【０３６８】
【数３０】
2010518464.tif 000032
【０３６９】
ｃｉは同時に一斉に得られるから、図８０に示す計算方法手順によって、ａｉを求める。即ち、ｃ１９のａ１５からはじめてｉの降順に順次ａｉを求めて、全てのａｉを求める。ａ０はｃ４から求まるので、ｃ３〜ｃ０は計算には不要である。
【０３７０】
図８１は、具体的な情報多項式ｆ（ｘ）の係数の計算システムである。訂正されたコードはｐｎ（ｘ）の係数として表現されているので外部にデータを出力するクロックＣＬに同期してコードデータｃｉをプリ／インデックスデコーダ回路８１０１で表現インデックスの２進数表示に変換する。
【０３７１】
この変換の順序はｃｉのｉの降順でありｃｇ４アダー系８１０３に入力される。ただしこの系統にはｇ４＝１であるのでアダーは存在しない。
【０３７２】
ａｇ３，ａｇ２，ａｇ１，ａｇ０の各アダー系８１０４，８１０５，８１０６，８１０７へはそれぞれ１サイクル、２サイクル、３サイクル、４サイクル遅れた計算システムの出力結果を表現インデックスに変換したものを入力するように、シフトレジスタＳＲを必要な段数設けている。
【０３７３】
ラッチと計算システムは、図８２に示すように、クロックＣＬに必要な遅延回路を入れて発生するクロックＣＬＬで駆動される。またこれらの入力段を構成するラッチは、リセット信号パルスＲＳＴでリセットされ“０”をクロックＣＬＬの１６サイクルごとに保持するように、１６サイクルカウンタが用意されている。この１６サイクルの計数はｃ１９の入力サイクルでトリガ信号ＳＴＡＲＴから開始される。
【０３７４】
各ａｇｉアダー系ではまず入力要素がゼロ元であるか否かの判断をゼロ判定回路８１０８で行なう。ゼロ元ならアダーの結果によらず出力インデックスを“０”にする。アダーでは、入力の表現インデックスと定数ｇｉの表現インデックス成分の２進表示間の和の計算を行なう。
【０３７５】
アダー出力は２進数表示であるから、これをバイナリ／インデックス変換回路８１０９により表現インデックスに変換して、インデックスデコーダ８１１０を介し、４ビットパリティチェッカ・ラダー８１１１にて要素の和を求める。これにより、ａｉをｉの降順に計算する。
【０３７６】
計算されたａｉは計算システムを駆動するクロックＣＬＬをさらに適当に遅延させたクロックＣＰＰによって駆動されるプリ／インデックスデコーダ回路８１０２にて表現インデックスの２進数表示として計算システムの入力へフィードバックされる。
【０３７７】
図８３は、図８１の入出力部のプリ／インデックスデコード回路８１０１，８１０２におけるプリデコード回路、図８４は同じくインデックスデコード回路、図８５は同じくインデックスをバイナリに変換するインデックス／バイナリ変換回路であり、図８６は、各アダー系のゼロ判定回路８１０４の具体構成例である。
【０３７８】
図８３のプリデコード回路は、先のｐｎ（ｘ）の係数とＡｉ，Ｂｉ，Ｃｉ，Ｄｉの対応テーブルに従って各ｃｉ，ａｉのプリデコード信号を発生させる。
【０３７９】
図８４のインデックスデコード回路は、Ａｋ，Ｂｋ，Ｃｋ，Ｄｋをテーブルに従ってＮＡＮＤ接続したものをグループ化しＮＯＲ接続して表現インデックスの各成分をクロックＣＬＬまたはＣＰＰに同期して発生している。
【０３８０】
図８５のインデックス／バイナリ変換回路は、インデックスデコード回路出力をクロックＣＬＬまたはＣＰＰに同期して、４バイナリまたは５バイナリ表示に直す。即ち、１７を法とする成分は５ビット、１５を法とする成分は４ビットのバイナリデータとする。
【０３８１】
図８６のゼロ判定回路はデータがゼロ元のとき、Ａ０，Ｂ０，Ｃ０，Ｄ０が“Ｈ”により、信号ＺＥＲＯｉを発生する。ここでのｉはｇｉのそれに対応して０〜４である。またゼロ元の場合はインデックスデコード回路も対応するデコードがないためインデックスはすべて“０”となる。
【０３８２】
図８７は、各アダー系出力のバイナリ値を表現インデックスに再度変換するバイナリ／インデックス変換回路８１０９の構成である。クロックＣＬＬに同期して、アダー入力がゼロ元である場合は内部ノードをプリチャージ状態のままとしてインデックスを“０”とする。
【０３８３】
図８８は、先のＧＦ（２５６）の要素の係数と表現インデックスの対応テーブル表を利用して、ａｉ＝ｃｉ＋４＋ｇ３ａｉ＋１＋ｇ２ａｉ＋２＋ｇ１ａｉ＋３＋ｇ０ａｉ＋４を計算する４ビットパリティチェッカ・ラダー８１１１の入力部インデックスデコーダ８１１０の構成である。
【０３８４】
入力信号は要素ｃｇ４，ａｇ３，ａｇ２，ａｇ１，ａｇ０のそれぞれの表現インデックスであり、これらの要素ごとにｍ次の係数に相当するノードＮ(cg4),Ｎ(ag3),Ｎ(ag2),Ｎ(ag1),Ｎ(ag0)を持ち、このノードを信号ＣＬＬでプリチャージしておく。各要素のｍ次のノードの表現インデックス信号のトランジスタゲートへの接続は表から決まる。
【０３８５】
各ｍについて各要素からの５つのノードのパリティチェックを４ビットパリティチェッカ・ラダー８１１１で行うことにより、ａｉのｍ次の係数（ａｉ）ｍが得られる。
【０３８６】
図８９は、５入力の４ビットパリティチェッカ・ラダー８１１１の構成例を示す。ノードＮ(ag0)からＮ(ag3)の４入力は４ビットパリティチェッカ８１１１ａに入り、この出力とノードＮ(cg4)の反転入力が２ビットパリティチェッカ８１１１ｂに入力される。
【０３８７】
［ケースＣ．２の説明］
次に、ここまで説明したケースＣ．１で回路規模が最も大きくなる部分であるｐｎ（ｘ）の係数表示とインデックス表示間のデコード回路の数を少なくする、ケースＣ．２の方法を説明する。ケースＣ．２では、外部データを、ＧＦ（２５６）の要素の表現インデックスのバイナリ表示と見なして、デコードなしで演算できる部分を増やす。メモリに記憶させるコードも表現インデックスのバイナリ表示としてのバイト単位で行なう。
【０３８８】
以下では、ケースＣ．１から変更のある部分についてのみ具体的に説明する。 
【０３８９】
演算処理としては単純であるが、回路の規模が大きくなるのはＧＦ（２５６）の要素のｐｎ（ｘ）の係数としての表現から、αの指数から得られる表現インデックスへの変換の回路である。ここには、２５６個の８ビットデータと１７の剰余と１５の剰余との変換のために、入力部は５１２個以上のインデックスデコーダ回路が必要になる。
【０３９０】
このインデックスデコーダの数を減らすために、情報データを有限体要素の表現インデックスそのものと見なすことを考える。表現インデックスを成分ごとの２進表示で表すと５＋４＝９ビットが必要となるが、１７も１６も２進表示では全てのビットをフルに使わないのでバイトデータを表現インデックスの２進表示と関連つけることが出来る。その対応付けの方法を、図９０に示した。
【０３９１】
図９０（ａ）に示すように、表現インデックス成分１５ｎ（１７）が０〜１５ではバイトデータを４ビットずつに分けて、下位部分４ビットを成分１７ｎ（１５）、上位部分４ビットを成分１５ｎ（１７）の２進数表示と見る。
【０３９２】
図９０（ｂ）に示すように、表現インデックス要素が１５ｎ（１７）＝１６の時は成分１７ｎ（１５）が１１１１となることはないので、上位部分と下位部分の役割を入れ替えて、下位部分が１１１１のときは上位部分を成分１７ｎ（１５）の２進数表示、下位部分を１５（１７）の２進数表示と見なす。
【０３９３】
表現インデックスはゼロ元を表す２進表示を持たないので、図９０（ｃ）に示すように、表現インデックスの２進表示に対応しないバイトＦＦをゼロ元とする。
【０３９４】
以上のように情報データと表現インデックスとの対応付けを行うと、インデックスデコーダを入力部に設ける代わりに、簡単なバイト処理のマルチプレクサを設ければよく回路規模を大幅に削減できる。
【０３９５】
コードの生成の計算はケースＣ．１と変わらない。即ち、ｃ（ｘ）の係数ｃｉを、ｃｉ＝ｇ４ａｉ−４＋ｇ３ａｉ−３＋ｇ２ａｉ−２＋ｇ１ａｉ−１＋ｇ０ａｉを用いて計算する。ａｉは、上述のように表現インデックスで表され、ｇ４＝｛０，０｝，ｇ３＝α７５＝｛３，０｝，ｇ２＝α２４９＝｛１２，３｝，ｇ１＝α７８＝｛１４，６｝，ｇ０＝α６＝｛５，１２｝であるから、全て表現インデックス間の計算として処理出来る。
【０３９６】
αｍαｎ＝αｍ＋ｎを表現インデックスで表すと、｛１５ｍ（１７），１７ｍ（１５）｝｛１５ｎ（１７），１７ｎ（１５）｝＝｛１５（ｍ＋ｎ）（１７），１７（ｍ＋ｎ）（１５）｝＝｛１５ｍ＋１５ｎ（１７），１７ｍ＋１７ｎ（１５）｝となり、積は表現インデックス間の和で計算できる。有限体要素間の和は表現インデックスを用いたパリティチェッカで行う。和としてのｃｉは、有限体要素を剰余多項式ｐｎ（ｘ）の係数表現として得られる。
【０３９７】
図９１は、コード計算の具体的なシステムである。
【０３９８】
外部からのデータｆ（ｘ）をクロックＣＬで取り込む。このクロックＣＬの例えば２倍の速さでサイクル数が２倍のクロックＣＬＫ＊でマルチプレクサ（ＭＵＸ）回路７００ａを動作させて、表現インデックスのバイナリ表示にする。これは外部データの取り込み１６サイクルに対して計算システムの処理は２０サイクル必要であるためである。即ち、ｆ（ｘ）が１５次多項式、ｃ（ｘ）が１９次の多項式であることに対応する。
【０３９９】
図９１のコード計算システムの、図７に示したケースＣ．１でのコード計算システムとの相違は、図７でのプリ／インデックスデコーダ７００に代わってこのＭＵＸ回路７００ａが用いられる点であり、その他は図７と変わらない。従って、図７と対応する部分には同一符号を付して詳細な説明は省く。図９１におけるシフトレジスタＳＲやクロック回路も図８と同様である。
【０４００】
図９２Ａ及び図９２Ｂは、上述のｃ（ｘ）計算システムで使用するＭＵＸ回路７００ａで使用する外部からのバイトデータとそのシンボル化に対応した表現インデックスと有限体要素の関係をまとめたテーブルである。２５６個の有限体要素の全てに対して対応を示したが、マルチプレクサとしてはビットデータごとの変化がほとんど無いため簡単な構成となり回路規模は小さい。
【０４０１】
図９３及び図９４は、データシンボル化回路としてのシンボルＭＵＸ回路及びゼロ判定回路を示している。
【０４０２】
バイトデータをクロックＣＬＫ＊＊に同期してラッチして計算システム内部のビットｂｍとして、 シンボルＭＵＸ回路は、下位部がＦである場合には信号ＳＷＡＰ＝“１”を発生させる。信号ＳＷＡＰ＝“１”が発生されると、バイトデータの上位部４ビットｂ４−ｂ７と下位部４ビットｂ０−ｂ３を入れ替えて表現インデックスの２進表示とする。表現インデックス成分１５ｎ（１７）の２進表示のビットは１５ｎ（１７）ｂ４以外は全て“０”とする。
【０４０３】
ゼロ判定回路はマルチプレクスして得られた表現インデックス成分１７ｎ（１５）の２進表示がＦの場合には入力データがゼロ元シンボルとなっているので、信号ＺＥＲＯｉを発生する。図９４において、ｉはｇｉのｉに対応する。ＣＬＫ＊はＣＬＫ＊＊の１６サイクル分に相当し、ＣＬＫ＊＊の１７サイクル目から発生される信号ＲＳがない場合のクロックＣＬＫ＊である。またラッチはＲＳでリセットされて“１”になるのでビットｂｍはＣＬＫ＊＊の１７〜２０サイクルでは入力がＦＦに相当することになる。
【０４０４】
ケースＣ．２ではメモリに記憶させるデータは表現インデックスの２進表示をバイトデータに対応付けしたシンボルデータとすることで、シンドロームの並列計算で必要となるインデックスデコーダの数を減らすことができる。データ読み出しの際はスピードが要求されるのでシンドローム計算はできるだけ並列に行なうが、並列計算の分だけインデックスデコーダが多く必要となり、この部分で必要な回路規模は膨大となる。そこでケースＣ．２では、この部分のインデックスデコーダをなくすためにメモリから読み出したデータが表現インデックスとなるように記憶させるデータはシンボルデータとする。
【０４０５】
図９５は、メモリに有限体要素を表現インデックスのシンボルデータとして記憶させるための概要を示している。入力では、エンコード結果のコードデータはｐｎ（ｘ）の係数として（ｃｉ）ｍ（ｍ＝０〜７）として表現されるので、これを表現インデックスの２進表示に変換するプリ／インデックスデコーダ回路９５０１と、その９ビットとなる出力データを、バイトシンボルデータに直すためのデマルチプレクサ（ｄｅＭＵＸ）回路９５０２が必要である。
【０４０６】
この変換の系統は毎サイクルバイト単位で行なうので、１系統のインデックスデコーダがあればよい。ｄｅＭＵＸ回路９５０２の出力はバイトシンボルデータ(ｉｎｄｉ)ｍである。このデータがメモリ９５０３内でエラーを生じ読み出す際のバイトシンボルデータは（ｄｉ）ｍとなる。
【０４０７】
メモリの読み出しデータは、シンドローム演算部９５０５に入力する前に、（ｄｉ）ｍを表現インデックスの２進表示にするため、シンボルＭＵＸとゼロ判定を行う回路９５０４を通す。
【０４０８】
図９６及び図９７は、プリ／インデックスデコード回路９５０１内のプリデコード回路及びインデックスデコード回路であり、図９８はインデックスデコード回路の出力部のインデックス／バイナリ変換回路である。
【０４０９】
図９６のプリデコード回路は、先の剰余多項式ｐｎ（ｘ）の係数Ａｉ，Ｂｉ，Ｃｉ，Ｄｉの対応テーブル従って、各コードｃｉのプリデコード信号を発生させる。図９７のインデックスデコード回路は、Ａｋ，Ｂｋ，Ｃｋ，Ｄｋをテーブルに従ってＮＡＮＤ接続したものをグループ化し、ＮＯＲ接続して表現インデックスの各成分をクロックＣＬＫに同期して発生する。
【０４１０】
図９８のインデックス／バイナリ変換回路は、インデックスデコード回路出力をクロックＣＬＫに同期してバイナリ表示に直すために、１７を法とする成分は５ビット、１５を法とする成分は４ビットのバイナリデータとする。データがゼロ元のときはＡ０，Ｂ０，Ｃ０，Ｄ０が“Ｈ”なので、インデックスデコード回路は対応するデコードがないためインデックスはすべて“０”となる。従って表現インデックスのバイナリ表示は、ＦＦとなる。 
【０４１１】
図９９は、メモリにバイトシンボルデータとして表現インデックスの２進表示を書き込むための変換回路、即ちｄｅＭＵＸ回路９５０２の構成である。表現インデックス成分１５σcn(１７)＝１６のときに信号ＳＷＡＰ＝“１”，／ＳＷＡＰ＝“０”を発生させて、切り換え回路９９１，９９２により、バイトデータの４ビット下位部から４ビット上位部へと表現インデックス成分１７σcn(１５)の２進表示の対応を切り替える。下位部の（ｉｎｄｉ）ｍ（ｍ＝０〜３）はＶｄｄに接続して、全て“１”とする。ゼロ元であるｃｉは表現インデックスの２進表示はＦＦなのでバイトシンボルデータもＦＦとなる。
【０４１２】
次に、メモリからのデータ読み出しの動作のタイミング同期の関係について、図１００を参照して説明する。これは、ケースＣ．１の場合の図２８と基本的に同様である。メモリから読み出したデータの格納場所として、２０バイトのデータレジスタ を２系統準備する。一方を偶数クロック（even clock）データラッチ系、他方を奇数クロック（odd clock）データラッチ系と呼ぶ。この２系統のレジスタをインタリーブして使用しデータを切れ目なく出力する。以下では、even clock系、odd clock系をそれぞれ、ＥＣＬ系、ＯＣＬ系と称する。
【０４１３】
クロックの種類は主に２つである。ひとつはデータの転送を行うもので、データを出力するためのクロックＣＬ、これと周期は同じであるがメモリからデータを読み出すために５サイクルごとにまとまって間欠的に発生されるクロックＣＰ、及びエラー位置検索とエラー訂正の計算後４サイクルごとにまとまって間欠的に発生されるクロックＣＰＫであり、もう一つは、ＥＣＣシステムを駆動するためのクロックＣＬＫであり、これはクロックＣＬの１６サイクル分を１サイクルとする。
【０４１４】
ＥＣＬ系またはＯＣＬ系の一方をまず用いる。
【０４１５】
メモリからは２０バイトのデータｄｉ（ｉ＝１９〜０）が４バイトずつ５ＣＰサイクルで読み出され、例えばＥＣＬ系データレジスタの各ラッチに保持されると共に、シンドローム計算が行われる。このシンドロームからエラー位置検索とシンボルエラーが計算されこれと各ラッチ内のデータのとの演算により、コードデータｃｉ（ｉ＝１９〜４）が新たにラッチに４ＣＰＫサイクルで上書きされる。
【０４１６】
コードデータｃ３〜ｃ０は情報データの訂正には使われない。これで、ＥＣＣの１ＣＬＫサイクルが終了する。次にラッチに上書きされて保持されたコードｃｉを用いて情報データａｉ（ｉ＝１５〜０）をクロックＣＬに同期して順次計算して出力する。
【０４１７】
このＥＣＬ系で情報データを出力している間、次の２０バイトのデータを他方のＯＣＬ系に読み出し、同様の動作を行う。このようにして２系統のデータレジスタにより、一方がシンドローム計算及びエラー検出訂正を行っている間、同時に他方が訂正された情報データを出力するというインタリーブが行われる。
【０４１８】
図１０１を用いて、データ，クロックとラッチの動作との関係をデータフローとして説明する。図示のように２系統のデータラッチ即ち、ＥＣＬ系データラッチ１０１０ａとＯＣＬ系のデータラッチ１０１０ｂとが併設される。
【０４１９】
メモリに記憶されたデータｄｉは、４バイトごとにクロックＣＬに同期して読み出される。このときＥＣＬ系またはＯＣＬ系の一方のラッチ系でのみクロックがアクティブになるが、これを区別するためにクロックの名称に上付きの“ｅ”，“ｏ”を付して区別する。クロックのサイクルで信号を分ける必要がある場合は数字を下付きで示す。まずＥＣＬ系のラッチにデータを格納する場合を考える。
【０４２０】
ＥＣＬ系のデータラッチ１０１０ａでは４バイト毎に、クロックＣＰe0，ＣＰe1,ＣＰe2,ＣＰe3,ＣＰe4に同期してデータを格納すると同時に、４バイトごとのデータｂｉをシンボルＭＵＸ回路１０１６に送り出す。この間、ＯＣＬ系データラッチ１０１０ｂではクロックＣＬｏに同期して各データをｑｉとしてｆ（ｘ）計算システム１０１５へ送りデータ出力を行なう。
【０４２１】
ケースＣ．２では、表現インデックスの２進表示で表したものを更に本来の情報データとしてのバイトシンボルデータにする必要がある。このために、ｆ（ｘ）計算システム１０１５の出力部にはｄｅＭＵＸ回路１０１７が設けられている。
【０４２２】
シンボルＭＵＸ回路１０１６は、ゼロ判定回路及びバイナリ／インデックス変換回路を含むが、クロックＣＰに同期してデータｂｉを表現インデックスの２進表示に変換してシンドローム計算システム１０１２へと送る。
【０４２３】
シンドローム計算システム１０１２はクロックＣＰに同期してシンドロームを５ＣＰサイクルで計算してエラー探索・シンボルエラー計算部１０１３へと送る。エラー探索・シンボルエラー計算部１０１３では、１６ＣＬを１サイクルとするクロックＣＬＫに同期してシンドロームから２０バイト中のエラー位置とシンボルエラーを計算する。
【０４２４】
その計算結果は４バイト毎のデータ位置のエラーの有無とエラー訂正情報としてクロックＣＰＫ１,ＣＰＫ２,ＣＰＫ３,ＣＰＫ４を用いて順番に４バイト分のシンボル訂正部１０１４に送られる。
【０４２５】
一方、ＥＣＬ系データラッチ１０１０ａからはクロックＣＰＫ０,ＣＰＫ１,ＣＰＫ２,ＣＰＫ３によって再びデータｂｉがシンボルＭＵＸ回路１０１６に送られる。このときシンボルＭＵＸ回路１０１６は、クロックＣＰＫに同期してデータｂｉを表現インデックスの２進表示に変換してｂｂｉデコーダ回路１０１１へと送る。
【０４２６】
ｂｂｉデコーダ回路１０１１は、表現インデックスで表されたデータｂｉを４バイトずつ剰余ｐｎ（ｘ）の係数表示に変換する回路であり、その出力はクロックＣＰＫに同期してシンボル訂正部１０１４に送られる。
【０４２７】
シンボル訂正部１０１４は、ｂｂｉデコーダ回路１０１１のデータとエラー探索・シンボルエラー計算部１０１３のデータを用いて、４サイクルのクロックＣＰＫに同期してデータのビット毎のＸＯＲ演算でエラー修正を行う。これにより、コードデータｃｉを４バイトずつ再生して、ｐｎ（ｘ）の係数のバイトデータとしてＥＣＬ系データラッチ１０１０ａにクロックＣＰＫの４サイクルで送る。
【０４２８】
即ち、ＥＣＬ系データラッチ１０１０ａは、クロックＣＰＫｅ１,ＣＰＫｅ２,ＣＰＫｅ３,ＣＰＫｅ４を用いて順番に４バイト分のデータｃｉを各ラッチに上書きして保持する。以上で、ＥＣＬ系データラッチ１０１０ａの出力準備のＣＬＫサイクルが終了する。その保持データをクロックＣＬｅに同期してデータｑｉとしてｆ（ｘ）計算システム１０１５へと送ると共に、ＯＣＬ系データラッチ１０１０ｂで同様の動作が行われる。
【０４２９】
なお、先に説明したケースＣ．１では、ラッチへのコードデータの上書きなどのデータフローまで説明しなかったが、デコーダなどを修正すれば同様の構成をとることができる。
【０４３０】
図１０２は、データラッチ１０１０ａ，１０１０ｂの１ビット分のラッチ構成を示す。図の斜線部がｍ＝０〜７の１バイト分であり、４バイトずつｊまたはｋで区別されるレジスタで単位レジスタを構成する。
【０４３１】
データｄｉはＥＣＬ系，ＯＣＬ系のいずれを構成するかに従ってクロックＣＰｅj,ＣＰｏjでラッチされ、同時にデータｂｉとして出力される。また保持されたデータは、クロックＣＰＫｅk,ＣＰＫｏkに同期してデータｂｉとして出力される。
【０４３２】
コードデータｃｉは、クロックＣＰＫｅk+1,ＣＰＫｏk+1に同期して上書きされる。１サイクルずれて上書きされるのは、出力したデータをもとに計算されたデータを上書きするためである。保持されたコードデータｃｉはクロックＣＬｅ,ＣＬｏに同期して出力される。
【０４３３】
図１０３は、シンボル訂正部１０１４の１ビット分の回路構成を示す。シンボル訂正部１０１４も４バイト分の回路要素を持ち、斜線部がその１バイト分であるが、具体回路構成は１ビット分についてのみ示している。その構成は、図７９と同様であり、エラー検索・シンボルエラー計算回路の結果とデータｂｂｉの各ビットデータとの間のＸＯＲ演算を２ビットパリティチェッカでとることにより、コードシンボルのビットを出力する。
【０４３４】
図１０４は、ケースＣ．２でのシンドロームの計算システムの概要である。メモリから読み出す１９次多項式の係数をｄ１９，ｄ１８，ｄ１７，…，ｄ２，ｄ１，ｄ０とする。これらにαの適当な冪を乗じて加えることでシンドローム係数ｓ０，ｓ１，ｓ２，ｓ３が得られる。
【０４３５】
この計算システムでは５サイクルで４つのシンドロームを同時に計算する。従って４バイトのデータを同時に１２個の表現インデックスのアダー回路１０４２に入力している。４つのシンドロームに対応して４つの４ビットパリティチェッカ１０４３が設けられ、同時に扱う４つのＧＦ（２５６）の和を求めている。
【０４３６】
このパリティチェッカ１０４３では、空間ドメインでのパラレル・パリティチェックを行っている。このパリティチェッカ１０４３の５サイクル分の出力のパリティチェックを行うのは、“１”の計数回路１０４５の部分である。ここでは、４ビットパリティチェッカ１０４３が“１”を出力すると、“１”と“０”を交互にシフトすることで、時間ドメインでのシリアル・パリティチェックを行っている。
【０４３７】
このシンドローム計算システムは、エラー検索訂正のためのメインクロックＣＬＫをトリガとして、クロック発生器１０４６によりより短い周期のクロックＣＰを５サイクル発生して、このクロックＣＰに同期して計算を行う。クロックＣＰの周期はデータ出力のクロックＣＬと同じとしても良い。
【０４３８】
まず入力部は、ＧＦ（２５６）の要素を表現インデックスの２進表示のバイトシンボルデータとして表す４バイトのデータｄ19 〜ｄ16 ，ｄ15 〜ｄ12 ，ｄ11 〜ｄ8 ，ｄ7 〜ｄ4 ，ｄ3 〜ｄ0  の５サイクルでデータを受け取るシンボルＭＵＸ回路１０４０である。ここには、ゼロ判定回路１０４１も付属する。
【０４３９】
これらの入力回路部によってデータは表現インデックスのバイナリ表示となる。またゼロ元の判定も行われる。図で点線で囲った入力回路部分は先のデータフローで説明したｂｂｉ回路にも共通のデコーダである。
【０４４０】
４つのシンドローム計算系のなかのシンドロームｓ０の計算系では、αの０乗すなわち１との掛け算を行うので、実質的にアダー回路は必要ない。従ってバイナリ変換された表現インデックスが直接パリティチェッカ１０４３に入力される。
【０４４１】
シンドロームｓ１の計算以降はアダー回路１０４２が必要をなる。これらのシンドロームｓｉ（ｉ＝１〜３）の計算のためのアダー回路１０４２には、データｄｉの表現インデックスをバイナリ表示したもの及び、計算に必要なαの累乗の指数の表現インデックスのバイナリ表示が入力され、その和演算の結果が表現インデックスとして４ビットパリティチェッカ１０４３に入力される。
【０４４２】
入力データがゼロ元のときはアダー回路の計算結果によらずに出力の表現インデックスをすべて“０”とする。
【０４４３】
４ビットパリティチェッカ１０４３の出力はクロックＣＰに同期して次段の計数回路１０４５を駆動する信号となる。計数回路１０４５はクロックＣＬＫの立ち上がりで発生されるリセットパルスＲＳでリセットされて新たな“１”の計数を始める。
【０４４４】
各々のパリティチェッカ１０４３と計数回路１０４５は、既約剰余ｐｎ（ｘ）の係数で要素を表すから、それぞれのシンドロームに対してｍ＝０〜７の８つが併設される。これにより、各シンドロームがＧＦ（２５６）の要素としてｐｎ（ｘ）となって出力される。
【０４４５】
図１０５は、シンボルＭＵＸ回路１０４０の構成例である。この回路にはバイトデータがクロックＣＰまたはＣＰＫに同期して入力される。このシンボルＭＵＸ回路は、バイトデータの下位部４ビットがＦである場合には、ゲート１０５０により、信号ＳＷＡＰ＝“Ｈ”，／ＳＷＡＰ＝“Ｌ”を発生させる。
【０４４６】
ＳＷＡＰ＝“Ｈ”を受けて、切り換え回路１０５１，１０５２では４ビット上位部と４ビット下位部を入れ替えて、表現インデックスの２進表示とする。表現インデックス成分１６σbi(１７)の２進表示のビットは１５σbi(１７)ｂ4以外は全て“０”とする。
【０４４７】
図１０６は、ゼロ判定回路１０４１である。シンボルＭＵＸ回路１０４０により得られた表現インデックス成分１７σbi(１５)の２進表示がＦの場合には入力データがゼロ元シンボルとなっている。図１０６では、回路が信号ＺＥＲＯｉを発生する。この信号は、４バイトごとのデータにしたがってｉ＝０〜３の４つで区別される。
【０４４８】
図１０７は、シンボルＭＵＸ回路やアダー回路出力部で用いるデコード回路（バイナリ／インデックス変換回路）である。シンボルＭＵＸ及びアダーの計算結果は２進表示でのインデックスであるので、これを次の段階で表現インデックス間の計算に利用できるように、インデックス信号に変換する。
【０４４９】
クロックＣＰまたはＣＰＫに同期したクロックＣＫでプリチャージされたノードを、バイナリ表示をデコードしたＮＡＮＤロジックで放電して、インデックスとする。シンボルＭＵＸ回路の入力がゼロ元の場合は、ゼロ判定回路の出力ＺＥＲＯｉによりクロックＣＫは“Ｌ”のままでインデックスもすべて“０”となる。
【０４５０】
ν(α０)及びｂｂｉデコーダ回路１０１１に対してのインデックスは、１５bj(１７)／１７bj(１５)（ｊ＝０〜３）で、ν(αｉ)（ｉ＝１〜３）に対するインデックスは１５σαidj(１７)／１７σαidj(１５)とした。
【０４５１】
図１０８は、ｂｂｉデコーダ回路１０１１の構成であり、先のＧＦ（２５６）の要素の係数と表現インデックスの対応の表を利用して、バイトデータｂｉを表現インデックスに直したものからｐｎ（ｘ）の係数(ｂｂｉ)ｍ を計算する回路である。この回路は、クロックＣＬＫから遅延してシンドローム計算が終了するころに発生されるクロックＣＬＫ＊＊からさらに遅延して、シンボルエラーの計算が終了したころに発生されるクロックＣＬＫ＊をトリガとして５サイクル作られるクロックＣＰＫに同期して動作する。
【０４５２】
クロックＣＰＫは５サイクルであるが、このデコーダとしては最初の４サイクル動作すれば最後の１サイクルの動作は不要なデータｃ3,ｃ2,ｃ1,ｃ0に対応するので、４サイクルでのみ動作するようにしても良い。
【０４５３】
入力信号は要素ｂｉの表現インデックス１５ｂj(１７)，１７ｂj(１５)であり、ｍ次の係数に相当するノードをクロックＣＰＫでプリチャージしておく。各ノードの表現インデックス信号のトランジスタゲートへの接続は先のＧＦ（２５６）の要素の係数と表現インデックスの対応表から決まる。
【０４５４】
各ｍについて、ノードのレベルの反転としての多項式係数(ｂｂｉ)ｍが得られる。これは入力デコードがノードの放電でロジックが作りやすくしたためである。
【０４５５】
図１０９は、ｆ（ｘ）計算システム１０１５の回路構成である。これは、ケースＣ．１でのそれ（図８１）と同じである。ＥＣＬ系またはＯＣＬ系のデータレジスタからのデータを出力する際には、まずこのｆ（ｘ）計算システムにクロックＣＬに同期してデータを送る。
【０４５６】
訂正されたシンボルはｐｎ（ｘ）の係数として表現されているので外部にデータを出力するクロックＣＬに同期してコードｃｉをプリ／インデックスデコーダ回路１０９１で表現インデックスの２進表示に変換する。この変換の順序はｃｉのｉの降順であり、ｃｇ４アダー回路１０９２に入力される。ただしこの系統には、ｇ４＝１であるので、実際にはアダーは存在しない。
【０４５７】
ａｇ３，ａｇ２，ａｇ１，ａｇ０の各アダー回路１０９３，１０９４，１０９５，１０９６へはそれぞれ１サイクル，２サイクル，３サイクル，４サイクル遅れた計算システム出力結果を表現インデックスに変換したものを入力するように、それらの入力段にシフトレジスタＳＲを必要段数設けている。
【０４５８】
シフトレジスタＳＲは、図１１０に示すように、クロックＣＬに必要な遅延を入れて発生するクロックＣＬＬで駆動される。これらの入力段を構成するラッチはリセット信号パルスＲＳＴでリセットされ、“０”をクロックＣＬＬの１６サイクル毎に保持するようになっている。この１６サイクルの計数は、ｃ１９の入力サイクルで、図１１０に示すようにトリガ信号ＳＴＡＲＴから開始される。
【０４５９】
各アダー回路では、入力要素がゼロ元であるか否かの判断がゼロ判定回路により行われる。ゼロ元ならアダーの結果によらず出力インデックスを“０”にする。アダー回路では入力の表現インデックスと定数ｇｉの表現インデックス成分の２進表示間の和の計算を行なう。
【０４６０】
アダー出力は２進表示であるからこれを表現インデックスに変換した後、４ビットパリティチェッカラダー１０９７で要素の和を求め、ａｉをｉの降順に計算する。計算されたａｉは計算システムを駆動するクロックＣＬＬをさらに適当に遅延させたクロックＣＰＰによって駆動されるプリ／インデックスデコーダ回路１０９８にて表現インデックスの２進表示として計算システムの入力へフィードバックされる。
【０４６１】
ケースＣ．１の場合とは異なり、クロックＣＰＰによって駆動されるフィードバック用のプリ／インデックスデコーダ回路１０９８は、メモリへのシンボルデータ書き込みで使用したものを利用することができる。これはデータの入力と出力は異なるタイミングで行なわれるためである。
【０４６２】
図１１１は、ｆ（ｘ）計算システム１０１５の出力部に設けられるｄｅＭＵＸ回路１０１７の構成である。有限体要素のａｉの表現インデックスの２進表示を、これにより本来の情報データとしてのバイトシンボルデータに変換する。このｄｅＭＵＸ回路は、入力信号が異なるのみで回路構成はメモリにコードデータｃｉを書き込む際の図９９に示したｄｅＭＵＸ回路と同じである。
【０４６３】
［ケースＣ．３の説明］
ケースＣ．１，Ｃ．２では、ＥＣＣシステムと外部とのデータのやり取りはバイト単位で行い、ＥＣＣが同時に扱うデータブロックを１６サイクルでメモリに読み込むことを想定した。しかし、２バイト以上を同時に扱ってデータ転送のバンド幅を上げることが必要な場合もある。
【０４６４】
以下では、多バイト同時転送を行うケースＣ．３の例として、４バイト単位でデータをやり取りする方法をケースＣ．２の方式の変形として、そのインタフェース構成を説明する。４バイト毎にデータ入出力を行い、クロック４サイクルでデータ転送が完了するようにすれば、データ転送速度が向上するが、そのためにはエンコード回路とデコード回路の並列化が必要となる。
【０４６５】
８ビットデータのシンボル化は、ケースＣ．２として図９０で説明したように、８ビットデータａｉを直接表現インデックス要素とみなして有限体要素と対応させる。この様なケースＣ．２で、コード生成の多重化を行うことを考えると、情報シンボルとコードシンボルの関係ｃi=ｇ4ａi-4＋ｇ3ａi-3＋ｇ2ａi-2＋ｇ1ａi-1＋ｇ0ａiを、次の数３１に示す計算式を４つ連続して用いれば、１サイクルで４バイトデータから４コードを発生することができる。
【０４６６】
【数３１】
2010518464.tif 000033
【０４６７】
すなわち、コードｃ１９，ｃ１８，ｃ１７，ｃ１６を計算するには、データａ１５，ａ１４，ａ１３，ａ１２までが必要であり、ｃ１５，ｃ１４，ｃ１３，ｃ１２を計算するにはさらにａ１１，ａ１０，ａ９，ａ８が必要である、というように４シンボル毎にデータを読み込めば、４コード毎に５クロックサイクルでコードを計算できる。
【０４６８】
ケースＣ．３でのコード生成のための具体的な回路、ｃ（ｘ）計算システムを図１１２に示す。
【０４６９】
データｆ（ｘ）はＭＵＸ回路１１３１により、クロックＣＬ＊に同期して有限体の４つの要素ごとに表現インデックスの２進数表示に変換される。これが順番に（ａ１５，ａ１４，ａ１３，ａ１２），（ａ１１，ａ１０，ａ９，ａ８），（ａ７，ａ６，ａ５，ａ４），（ａ３，ａ２，ａ１，ａ０）とし、５サイクル目にゼロ元に相当するデータ（FF,FF,FF,FF)を挿入して、４つの計算行１１３２ａ，１１３２ｂ，１１３２ｃ，１１３２ｄを持つアダー行列に入力する。
【０４７０】
計算システムはクロックＣＬ＊から遅延したクロックＣＬＫに同期して駆動される。クロックＣＬ＊はデータ転送のクロックＣＬの４サイクル中に５サイクル動作するクロックである。
【０４７１】
一番上の計算行１１３２ａはコードデータｃ１９，ｃ１５，ｃ１１，ｃ７，ｃ３を計算する。２番目の計算行１１３２ｂは、ｃ１８，ｃ１４，ｃ１０，ｃ６，ｃ２を計算する。３行目１１３２ｃはｃ１７，ｃ１３，ｃ９，ｃ５，ｃ１を計算する。４行目１１３２ｄは、ｃ１６，ｃ１２，ｃ８，ｃ４，ｃ０を計算する。
【０４７２】
各計算行に、インデックスデコーダ回路１１３３とそのデコード出力に対する４ビットパリティチェッカ・ラダー１１３４が設けられる。
【０４７３】
このコード計算は、上述の計算式（１）〜（４）でのｉ＝１９，１５，１１，７，３の計算に対応していて、計算式を素直に表現している。一行目の計算では１サイクル前の入力データを使用するので１サイクルデータを保持するシフトレジスタＳＲを２段目以降のアダーの入力に挿入している。シフトレジスタＳＲは、図１１３に示すように、クロックＣＬ＊を遅延させたクロックＣＬＬにより動作する。
【０４７４】
なお各行１段目はｇ４＝１であるので実際にはアダーは存在しない。
【０４７５】
コードデータ生成以降、エラー位置の検索訂正はケースＣ．１やＣ．２と同様の演算を行なえばよい。
【０４７６】
コードデータｃｉが再構成できた後の情報データの再構成においても、計算を並列化して高速化を図る。即ち、ｇ４＝１＝｛１，１｝，ｇ３＝α７５＝｛３，０｝，ｇ２＝α２４９＝｛１２，３｝，ｇ１＝α７８＝｛１４，６｝，ｇ０＝α６＝｛５，１２｝を考慮して、先の数３１の関係式を書き換えると、数３２の関係式が得られる。
【０４７７】
【数３２】
2010518464.tif 000034
【０４７８】
これらの４つの関係式に従って、４シンボル同時に４サイクルで計算することにより、各情報データａｉは、コードデータｃｉと前サイクルまでに得られた情報データとに基づいて得られる。
【０４７９】
数３２の各係数は、下記数３３及び数３４に示すように、表現インデックスとして固定される。
【０４８０】
【数３３】
2010518464.tif 000035
【０４８１】
【数３４】
2010518464.tif 000036
【０４８２】
図１１４は、コードデータｃｉと既に計算された情報データａｉによって以下の情報データａｉを順次まとめて計算する手順の説明図である。
【０４８３】
情報データ（ａ１５，ａ１４，ａ１３，ａ１２）は、コードデータ（ｃ１９，ｃ１８，ｃ１７，ｃ１６）から直接計算で得られる。情報データ（ａ１１，ａ１０，ａ９，ａ８）は、コードデータ（ｃ１５，ｃ１４，ｃ１３，ｃ１２）と前サイクルで得られた情報データ（ａ１５，ａ１４，ａ１３，ａ１２）から計算で得られる。
【０４８４】
情報データ（ａ７，ａ６，ａ５，ａ４）は、コードデータ（ｃ１１，ｃ１０，ｃ９，ｃ８）と前サイクルで得られた情報データ（ａ１１，ａ１０，ａ９，ａ８）から計算で得られる。情報データ（ａ３，ａ２，ａ１，ａ０）は、コードデータ（ｃ７，ｃ６，ｃ５，ｃ４）と前サイクルで得られた情報データ（ａ７，ａ６，ａ５，ａ４）から計算で得られる。
【０４８５】
図１１５は、ｆ（ｘ）計算システムの具体構成例（１）であり、コードデータｃｉの入力部である。入力は、係数表示のコードデータｃｉをクロックＣＬに同期してプリ／インデックスデコード回路１１７１で表現インデックスの２進表示に変換したもので、４サイクルで（ｃ１９，ｃ１８，ｃ１７，ｃ１６），（ｃ１５，ｃ１４，ｃ１３，ｃ１２），（ｃ１１，ｃ１０，ｃ９，ｃ８），（ｃ７，ｃ６，ｃ５，ｃ４）が、アダー行列の４つの計算行１１７２ａ，１１７２ｂ，１１７２ｃ，１１７２ｃに並列に入力される。
【０４８６】
最初の計算行１１７２ａは、ａｉのｃｉ＋４部分、２番目の計算行１１７２ｂは、ａｉ−１のｃｉ＋３＋ｈ３ｃｉ＋４部分、３番目の計算行１１７２ｃは、ａｉ−２のｃｉ＋２＋ｈ３ｃｉ＋３＋ｈ２ｃｉ＋４部分、４番目の計算行１１７２ｄは、ａｉ−３のｃｉ＋１＋ｈ３ｃｉ＋２＋ｈ２ｃｉ＋３＋ｈ１ｃｉ＋４部分を計算する。
【０４８７】
計算結果は、インデックスデコード回路１１７３を介し、２ビットパリティチェッカ１１７４（但し第１行はインバータ１１７４ａ）を介することにより、それぞれ有限体要素の係数表示(H0)ｍ,(H1)ｍ,(H2)ｍ,(H3)ｍとして求められる。
【０４８８】
図１１６は、ｆ（ｘ）計算システムの具体構成例（２）であり、前サイクルで得られた結果の４バイトのデータａｉの計算部分である。入力は係数表示の計算結果のデータａｉをクロックＣＬに同期してプリ／インデックスデコード回路１１８１で表現インデックスの２進表示に変換したものであり、（ａ１５，ａ１４，ａ１３，ａ１２），（ａ１１，ａ１０，ａ９，ａ８），（ａ７，ａ６，ａ５，ａ４），（ａ３，ａ２，ａ１，ａ０）がアダー行列の４つの計算行１１８３ａ，１１８３ｂ，１１８３ｃ，１１８３ｄに４サイクルで並列に入力される。
【０４８９】
なお２進表示に変換されたデータはｄｅＭＵＸ回路１１８２によってバイトデータとして情報データの係数に変換され、次サイクルのアダーで利用される。
【０４９０】
一行目１１８３ａはａｉのｇ０３ａｉ＋１＋ｇ０２ａｉ＋２＋ｇ０１ａｉ＋３＋ｇ００ａｉ＋４部分、二行目１１８３ｂはａｉ−１のｇ１３ａｉ＋１＋ｇ１２ａｉ＋２＋ｇ１１ａｉ＋３＋ｇ１０ａｉ＋４部分、三行目１１８３ｃはａｉ−２のｇ２３ａｉ＋１＋ｇ２２ａｉ＋２＋ｇ２１ａｉ＋３＋ｇ２０ａｉ＋４部分、四行目１１８３ｄはａｉ−３のｇ３ａｉ＋１＋ｇ３２ａｉ＋２＋ｇ３１ａｉ＋３＋ｇ３０ａｉ＋４部分をそれぞれ計算する。
【０４９１】
計算結果は、インデックスデコーダ回路１１８４を介し、４ビットパリティチェッカ・ラダー１１８５を介することにより、有限体要素の係数表示(G0)ｍ,(G1)ｍ,(G2)ｍ,(G3)ｍとして求められる。
【０４９２】
次サイクルまでデータを保持するために、クロックＣＬに同期するシフトレジスタＳＲが設けられている。シフトレジスタＳＲには、図１１７に示すように、クロックＣＬから遅延されたクロックＣＬＬでデータが取り込まれる。シフトレジスタＳＲは、クロックＣＬの４サイクルごとにカウンタ１１８６が発生するリセット信号ＲＳＴによってデータ出力がリセットされゼロ元を出力する。これは計算では（ａ３，ａ２，ａ１，ａ０）を利用しないことに相当する。
【０４９３】
図１１８は、ｆ（ｘ）計算システムの具体構成例（３）であり、コードデータを用いた計算部分（図１１５）の計算結果(H0)ｍ,(H1)ｍ,(H2)ｍ,(H3)ｍ と、前サイクルで計算して得られた結果の４バイトのデータａｉからの計算部分（図１１６）の計算結果(G0)ｍ,(G1)ｍ,(G2)ｍ,(G3)ｍとの和を計算する２ビットパリティチェッカである。
【０４９４】
このパリティチェッカ出力が、情報データがシンボルとして表した有限体要素のｐｎ（ｘ）の係数表示でのバイトデータである。このデータを表現インデックスの２ 進表示に変換してｄｅＭＵＸ回路でシンボル化すれば情報データとなり、４バイトの情報データが毎サイクル得られる。
【図１】
2010518464.tif 000037
【図２−１】
2010518464.tif 000038
【図２−２】
2010518464.tif 000039
【図３】
2010518464.tif 000040
【図４】
2010518464.tif 000041
【図５】
2010518464.tif 000042
【図６】
2010518464.tif 000043
【図７】
2010518464.tif 000044
【図８】
2010518464.tif 000045
【図９−１】
2010518464.tif 000046
【図９−２】
2010518464.tif 000047
【図９−３】
2010518464.tif 000048
【図１０−１】
2010518464.tif 000049
【図１０−２】
2010518464.tif 000050
【図１０−３】
2010518464.tif 000051
【図１１】
2010518464.tif 000052
【図１２】
2010518464.tif 000053
【図１３】
2010518464.tif 000054
【図１４】
2010518464.tif 000055
【図１５】
2010518464.tif 000056
【図１６】
2010518464.tif 000057
【図１７】
2010518464.tif 000058
【図１８】
2010518464.tif 000059
【図１９Ａ】
2010518464.tif 000060
【図１９Ｂ】
2010518464.tif 000061
【図２０Ａ】
2010518464.tif 000062
【図２０Ｂ】
2010518464.tif 000063
【図２１（ａ）】
2010518464.tif 000064
【図２１（ｂ）】
2010518464.tif 000065
【図２２（ａ）】
2010518464.tif 000066
【図２２（ｂ）】
2010518464.tif 000067
【図２３Ａ−１】
2010518464.tif 000068
【図２３Ａ−２】
2010518464.tif 000069
【図２３Ａ−３】
2010518464.tif 000070
【図２３Ｂ−１】
2010518464.tif 000071
【図２３Ｂ−２】
2010518464.tif 000072
【図２４】
2010518464.tif 000073
【図２５】
2010518464.tif 000074
【図２６（ａ）】
2010518464.tif 000075
【図２６（ｂ）】
2010518464.tif 000076
【図２７（ａ）】
2010518464.tif 000077
【図２７（ｂ）】
2010518464.tif 000078
【図２８】
2010518464.tif 000079
【図２９】
2010518464.tif 000080
【図３０】
2010518464.tif 000081
【図３１】
2010518464.tif 000082
【図３２】
2010518464.tif 000083
【図３３】
2010518464.tif 000084
【図３４】
2010518464.tif 000085
【図３５】
2010518464.tif 000086
【図３６】
2010518464.tif 000087
【図３７】
2010518464.tif 000088
【図３８】
2010518464.tif 000089
【図３９】
2010518464.tif 000090
【図４０】
2010518464.tif 000091
【図４１】
2010518464.tif 000092
【図４２】
2010518464.tif 000093
【図４３】
2010518464.tif 000094
【図４４】
2010518464.tif 000095
【図４５】
2010518464.tif 000096
【図４６】
2010518464.tif 000097
【図４７】
2010518464.tif 000098
【図４８】
2010518464.tif 000099
【図４９】
2010518464.tif 000100
【図５０】
2010518464.tif 000101
【図５１】
2010518464.tif 000102
【図５２】
2010518464.tif 000103
【図５３】
2010518464.tif 000104
【図５４】
2010518464.tif 000105
【図５５】
2010518464.tif 000106
【図５６】
2010518464.tif 000107
【図５７】
2010518464.tif 000108
【図５８】
2010518464.tif 000109
【図５９】
2010518464.tif 000110
【図６０】
2010518464.tif 000111
【図６１】
2010518464.tif 000112
【図６２】
2010518464.tif 000113
【図６３−１】
2010518464.tif 000114
【図６３−２】
2010518464.tif 000115
【図６３−３】
2010518464.tif 000116
【図６４−１】
2010518464.tif 000117
【図６４−２】
2010518464.tif 000118
【図６４−３】
2010518464.tif 000119
【図６５−１】
2010518464.tif 000120
【図６５−２】
2010518464.tif 000121
【図６５−３】
2010518464.tif 000122
【図６６】
2010518464.tif 000123
【図６７】
2010518464.tif 000124
【図６８】
2010518464.tif 000125
【図６９】
2010518464.tif 000126
【図７０】
2010518464.tif 000127
【図７１】
2010518464.tif 000128
【図７２】
2010518464.tif 000129
【図７３】
2010518464.tif 000130
【図７４】
2010518464.tif 000131
【図７５】
2010518464.tif 000132
【図７６】
2010518464.tif 000133
【図７７】
2010518464.tif 000134
【図７８（ａ）】
2010518464.tif 000135
【図７８（ｂ）】
2010518464.tif 000136
【図７８（ｃ）】
2010518464.tif 000137
【図７８（ｄ）】
2010518464.tif 000138
【図７９】
2010518464.tif 000139
【図８０】
2010518464.tif 000140
【図８１】
2010518464.tif 000141
【図８２】
2010518464.tif 000142
【図８３】
2010518464.tif 000143
【図８４】
2010518464.tif 000144
【図８５】
2010518464.tif 000145
【図８６】
2010518464.tif 000146
【図８７】
2010518464.tif 000147
【図８８】
2010518464.tif 000148
【図８９】
2010518464.tif 000149
【図９０（ａ）】
2010518464.tif 000150
【図９０（ｂ）】
2010518464.tif 000151
【図９０（ｃ）】
2010518464.tif 000152
【図９１】
2010518464.tif 000153
【図９２Ａ−１】
2010518464.tif 000154
【図９２Ａ−２】
2010518464.tif 000155
【図９２Ａ−３】
2010518464.tif 000156
【図９２Ｂ−１】
2010518464.tif 000157
【図９２Ｂ−２】
2010518464.tif 000158
【図９２Ｂ−３】
2010518464.tif 000159
【図９３】
2010518464.tif 000160
【図９４】
2010518464.tif 000161
【図９５】
2010518464.tif 000162
【図９６】
2010518464.tif 000163
【図９７】
2010518464.tif 000164
【図９８】
2010518464.tif 000165
【図９９】
2010518464.tif 000166
【図１００】
2010518464.tif 000167
【図１０１】
2010518464.tif 000168
【図１０２】
2010518464.tif 000169
【図１０３】
2010518464.tif 000170
【図１０４】
2010518464.tif 000171
【図１０５】
2010518464.tif 000172
【図１０６】
2010518464.tif 000173
【図１０７】
2010518464.tif 000174
【図１０８】
2010518464.tif 000175
【図１０９】
2010518464.tif 000176
【図１１０】
2010518464.tif 000177
【図１１１】
2010518464.tif 000178
【図１１２】
2010518464.tif 000179
【図１１３】
2010518464.tif 000180
【図１１４】
2010518464.tif 000181
【図１１５】
2010518464.tif 000182
【図１１６】
2010518464.tif 000183
【図１１７】
2010518464.tif 000184
【図１１８】
2010518464.tif 000185
【国際調査報告】
2010518464.tif 000186
2010518464.tif 000187
2010518464.tif 000188