JP2008052866A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2008052866A
JP2008052866A JP2006230375A JP2006230375A JP2008052866A JP 2008052866 A JP2008052866 A JP 2008052866A JP 2006230375 A JP2006230375 A JP 2006230375A JP 2006230375 A JP2006230375 A JP 2006230375A JP 2008052866 A JP2008052866 A JP 2008052866A
Authority
JP
Japan
Prior art keywords
index
circuit
expression
error
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006230375A
Other languages
English (en)
Other versions
JP4891704B2 (ja
Inventor
Haruki Toda
春希 戸田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006230375A priority Critical patent/JP4891704B2/ja
Priority to US11/845,999 priority patent/US8001448B2/en
Publication of JP2008052866A publication Critical patent/JP2008052866A/ja
Application granted granted Critical
Publication of JP4891704B2 publication Critical patent/JP4891704B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】3ビットエラー訂正可能なECCシステムを搭載した半導体記憶装置を提供する。
【解決手段】BCHコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、前記エラー検出訂正システムは、3ビットエラーを検出訂正可能な3ECシステムを有し、前記3ECシステムは、3次のエラー位置探索方程式を2以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める。
【選択図】図1

Description

この発明は、半導体記憶装置に係り、特にそのエラー検出訂正システムに関する。
電気的書き換え可能な不揮発性半導体メモリであるフラッシュメモリは、書き換え回数の増加と共にエラー率が大きくなる。特に、大容量化と製造プロセスの微細化が進むと、エラー率は上昇する。このためフラッシュメモリにECC(Error Correcting Code)システムを搭載することは重要な技術となる。
フラッシュメモリチップ内に、或いはこれを制御するメモリコントローラ内にECC回路を搭載することは、従来より提案されている(例えば、特許文献1参照)。
有限体GF(2)を利用するBCH−ECCシステムで2ビット以上のエラー訂正を行う場合、エラー位置探索方程式の解を求めるのに有限体の要素を逐次代入して方程式を満足させる要素を解として選択してエラー位置探索を行うと、演算時間は膨大になり、オンチップとした場合にもメモリの読み出しや書き込み性能を大幅に低下させる。
そこで、その様な逐次検索を行わず、従ってフラッシュメモリの性能を犠牲にしないような高速のECCシステムが望まれる。
特開2000−173289号公報
この発明は、3ビットエラー訂正可能なECCシステムを搭載した半導体記憶装置を提供することを目的とする。
この発明の一態様による半導体記憶装置は、BCHコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、
前記エラー検出訂正システムは、3ビットエラーを検出訂正可能な3ECシステムを有し、
前記3ECシステムは、3次のエラー位置探索方程式を2以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める。
この発明によると、3ビットエラー訂正可能なECCシステムを搭載した半導体記憶装置を提供することができる。
本発明者は、従来のような有限体要素の逐次代入によりエラー位置探索方程式を満たす要素を求める方法に代わって、2ビットエラー訂正を高速演算で実現する手法を先に提案している。
即ち、GF(256)のBCHコードを利用して高速にエラー位置検索を行なうために、予め解の候補のテーブルを作成しておき、これとメモリの読み出しデータから計算されたシンドロームのインデックスを比較して解を求める。具体的には、読み出しデータから計算されたシンドロームを含むエラー位置検索方程式を解くことになるが、そのエラー位置検索方程式を、変数変換によって未知数のみの部分(以下、変数部分という)とシンドロームにより計算される部分(以下、シンドローム部分という)に分けてそれらのインデックス関係だけでエラー位置を求められるようにする。即ち、シンドローム部分と変数部分のインデックスとを比較して、一致する変数がエラー位置対応インデックスであることから、エラー位置を求める。
更に、エラー位置検索に必要な計算は、インデックス間の合同式からインデックスを確定することである。その際、255を法とする合同式を、17と15を法とする二つの合同式に分離し、これらの合同式を満たす数は元の合同式を満たすという性質を利用する。これにより、回路規模と演算時間を縮小したエラー位置検索ができる。
この発明は、上述の2ビットエラー検出訂正システム(2ECシステム)の手法を拡張して、オンチップメモリ用の高速3ビットエラー検出訂正システム(3ECシステム)を提案するものである。
3EC−BCHでは未知数とシンドロームが混在した3次の多項式が解を求める方程式となるが、これは2パラメータを導入した線形変換で変数部分とシンドローム部分の分離が行なえること、更に解とテーブルの比較をBCHコードの有限体の要素を“表現インデックス”というindexを導入することで短い計算の並列演算として高速に行なうことが出来ることが、本発明者の検討により明らかになった。
その様な、BCHコードを用いて3ビットまでのエラー訂正(Error Correction)と4ビット以上のエラーに対する警告(Error Warning)とを行うことができる“3EC−EW”システムを、フラッシュメモリにオンチップで搭載することによって、メモリ外部からはメモリの性能を落とさずにデータ保持の信頼性を向上させたフラッシュメモリを得ることができる。
[3EC−EWシステムの概要]
GF(2)のBCHコードを利用して3ビットエラー訂正を行なうために、エラービット位置を示す未知数変数とエラーを含むデータから計算されたシンドロームを含むエラー位置検索方程式は、2つ以上のパラメータを導入して変数変換を行い、変数部分とシンドローム部分とに変換する。
3EC−EWシステムは具体的には、2ビット以下のエラー訂正可能な2ECシステムと3ビットエラー訂正可能な3ECシステムとを含む。2ECシステムのエラー位置検索方程式は1パラメータを含む変数変換によって、3ECシステムのエラー位置検索方程式は2パラメータを含む変数変換によって、それぞれ変数部分とシンドローム部分に分離されて、エラー数の状況に応じてエラー位置検索方程式の解の結果を切り替えるようにする。
有限体GF(2)の要素を利用するECCシステムにおいて、各要素を基本既約多項式の根の指数(インデックス)によって指定するとき、このインデックスを互いに素である2−1の2因数に分解し、各々の数をインデックスにかけた数の互いに因数を法とする剰余系の組を“表現インデックス”として用い、要素間の演算をこの表現インデックス間の対応関係として行なう。
上記要素間の演算は、要素の積に対しては各表現インデックスの要素間の和を対応する法の剰余系として表したものが対応し、要素の和は表現インデックスから基本既約多項式の剰余多項式の係数を求め係数間のパリティチェックを用いて行なう。
(データのエンコーディング)
ガロア体GF(2)上の3EC−EWについてまず、データのエンコーディングを説明する。GF(2)上の基本既約多項式をm(x)としてこの根をαとする。有限体としてGF(2)を考えるので、これは数1に示すような8次の多項式となる。3ビットエラー訂正のためには、数1に示すように、更に二つのα及びαを根とする既約多項式m(x)及びm(x)を選択する。
Figure 2008052866
これらの3つの既約多項式をもとに、3ビットエラー訂正可能なECCが構成される。書き込むべきデータに検査ビット(チェックビット)を付加してエンコードするには、コード生成多項式として、数2のようなm(x),m(x)及びm(x)の積である24次のコード生成多項式g(x)を作る。
Figure 2008052866
3ビットエラー訂正が可能な情報ビットとして利用できる最大ビット数は、2−1=255からチェックビット数24を引いた231ビットである。これらを、ビット位置24から254の係数をa24〜a254として、数3のような情報多項式f(x)を作る。
Figure 2008052866
データビットのうちの情報ビットを係数a24〜a254に割り当てて24次から始まる情報多項式f(x)をコード生成多項式g(x)で割って剰余を求め、数4の剰余多項式r(x)を求める。
Figure 2008052866
この剰余多項式r(x)の係数b23〜bの24ビットを“チェックビット”とし、これを情報多項式f(x)のビット位置24からの係数a254〜a24からなる“情報ビット”と共にメモリに記憶させる。即ちメモリに記憶させるデータビットは、数5のようになる。
Figure 2008052866
(データのデコーディング)
254次の多項式の係数を情報ビットとしてメモリに記憶させてエラーが生じたとすれば、そのエラーも254次の多項式で表される。このエラー多項式をe(x)とすれば、メモリから読み出したデータは、数6のような構造の多項式ν(x)となる。
Figure 2008052866
この数6のエラー多項式e(x)の係数が1の項がエラーとなる。
読み出しデータのデコードのための第1段階として、ν(x)を原始多項式m(x),m(x),m(x)で割って各々の剰余S(x),S(x),S(x)を求める。
数7に示すように、これはe(x)をm(x),m(x),m(x)で割った剰余ともなっている。
Figure 2008052866
これら数7の剰余S(x),S(x),S(x)をシンドローム(syndrome)多項式という。
3ビットエラーがi,j,k次にあれば、エラー多項式は、e(x)=x+x+xとなるので、これらの指数i,j,kを求めれば、エラー位置が確定する。そこで、m(x)=0の根αの指数(インデックス)に関するGF(256)内の計算で、i,j及びkを求める。
≡pn(x)mod m(x)なる剰余多項式pn(x)を導入すると、GF(256)内では、α=pn(α)である。下記数8に示すように、エラーの次数に対応する根α,α,αをそれぞれ、X,X,Xとし、シンドロームS(x),S(x),S(x)に対してS(α),S(α),S(α)に対応する指数をそれぞれ、σ,σ,σとして、S(α),S(α),S(α)をそれぞれ、S,S,Sとする。ちなみに、剰余多項式による表現では、S,S,Sは、S(x),S(x),S(x)と同等である。
Figure 2008052866
(α)=m(α)=0であるから、数8から次の数9の関係が得られる。
Figure 2008052866
第二段階として、未知数X,X,Xを根とするエラー位置探索多項式Λ(x)=0を考えると、Λ(x)は数10のように、X,X,Xの基本対称式S,D,Tを用いて表すことができる。
Figure 2008052866
エラー位置検索は、Λ(x)=0を満たす根αのインデックスnを探すことである。そこでまず、Λ(x)=0の係数をシンドロームS,S,Sで表現する。S,D,Tは基本対称式であり、S,Sは対称式なので基本対称式で表すことができ、逆にD,TをS,S,Sで表現することができる。即ち、S D+ST=S +S,SD+S T=S +Sの関係から、A=S/S ,B=S/S とおいて、数11が求まる。
Figure 2008052866
第三段階として、Λ(x)のGF(256)での根αを見つければX,X,X=αから、i,j,kがαのnとして求まる。即ち、Λ(x)=0をn=0〜254で探索してヒットしたnがエラービットということになる。
なお、Λ(x)=0の根が常に求まるわけではなく、この多項式が3次でないこともあり、それぞれの場合にエラー数が異なる。詳細は後に説明するがエラー数とその場合の条件をまとめると、数12のようになる。
Figure 2008052866
なお、1エラー又は2エラーの場合は、2ECシステムへ分岐して解を探索することになる。
3つのエラーがある場合に、原理的にはxに逐次有限体の要素を代入して解を求めることができるが、これは膨大な計算量となる。そこでこの実施の形態では、解の候補を予めテーブルとして求めておき、Λ(x)を変形して、未知数のみにより決まる部分(以下、変数部分という)とシンドロームのみにより計算される部分(以下、シンドローム部分という)を完全に分離して解の候補のインデックスとシンドロームのインデックスの関係だけで解のインデックスnを求めることが出来るようにする。
具体的に説明する。3ECの場合は、3次のエラー位置探索方程式Λ(x)=x+S+Dx+T=0の根αのインデックスnを計算する。このときは、x=az+bなる変数変換を行い、エラー位置検索方程式を下記数13のように、変数部分とシンドローム部分に分離する。
Figure 2008052866
変換の仕方はこの他にも項zが残るような変換法もあるが、ここでは変換が最も簡単になる方法を選んでいる。変数変換された方程式を解く際にシンドローム計算から必要となる基本的なインデックスは、Sのσ、Sのσ、Sのσ、Aのσ、Bのσ、Tのσ、aのσである。
変数部分zにαを代入して、下記数14のインデックスzを求めて、テーブルとする。
Figure 2008052866
方程式のシンドローム部分T/aのインデックスは、σ−3σであるから、下記数15を満たすjが、エラー位置対応変数zでのインデックスである。
Figure 2008052866
実際のエラー位置は、下記数16のビット位置nとして求まる。
Figure 2008052866
2EC又は1ECの場合は、エラー位置検索方程式(即ち解探索多項式)は、Λ(x)=(x−X)(x−X)=x+Sx+X=0となる2次式の根のαのインデックスnを探索する。ここで、X=S +S/Sである。
この場合も、Λ(x)を変形して変数部分とシンドローム部分に分離してインデックス関係だけでnを求めることが出来るようにする。即ち、x=Syなる変換により、次の数17を得る。
Figure 2008052866
数17の変数部分のyにαを代入した結果のα2i+α+1のインデックスをyとすると、下記数18のiがエラー位置のyのインデックスとなる。
Figure 2008052866
シンドロームから決まる右辺のインデックスに対応するyを満たすiが存在しない場合は、解が求まらないので3ビット以上のエラーの場合である。実際のエラー位置は、下記数19のビット位置nとして求まる。
Figure 2008052866
3EC,2ECの場合を通してエラー位置検索で必要な計算は、インデックス 間の合同式からインデックスを確定することである。システム構成上必要なこれらの計算法を次に示す。
合同式はいずれも、255を法とするGF(256)である。この合同式計算はまともに行なうと、255×255の規模の比較を行うことに相当し、回路規模が大きくなる。そこでこの実施の形態では、この合同式計算を並列化する。すなわち、255を互いに素である二つの因子に分けてこれらを法とする二つの合同式に分離して、これらの合同式を同時に満たす数はもともとの合同式も満たすことを利用する。
以下に示すように、いずれの合同式を解く場合も255=17×15によって17と15をそれぞれ法とする合同式に分けてこれを同時に解く。
1:A=S/S のインデックスσの計算は、σ≡σ−3σ(mod255)を求めるもので、次の数20の二つの合同式に分ける。
Figure 2008052866
2:B=S/S のインデックスσの計算は、σ≡σ−3σ(mod255)を求めるもので、次の数21の二つの合同式に分ける。
Figure 2008052866
3:E=S/S のインデックスσの計算は、σ≡σ−2σ(mod255)を求めるもので、次の数22の二つの合同式に分ける。
Figure 2008052866
4:F=S /S のインデックスσの計算は、σ≡2σ−3σ(mod255)を求めるもので、次の数23の二つの合同式に分ける。
Figure 2008052866
5:yからyのインデックスiを選択して、ασ1y=αのインデックスnを求めるには、y=σからiをテーブルによるデコードで選択して、n≡σ+i(mod255)を求める。この合同式は次の数24の二つに分ける。
Figure 2008052866
6:C=(S +B)/(A+1)のインデックスσの計算は、σ≡σ(S1 2+B)−σ(A+1)(mod255)を求めるもので、次の数25の二つの合同式に分ける。
Figure 2008052866
7:T=t/(A+1)のインデックスσの計算は、σ≡σ−σ(A+1)(mod255)を求めるもので、次の数26の二つの合同式に分ける。
Figure 2008052866
8:αzj=ασT−3σaからのインデックスzの計算は、z≡σ−3σ(mod255)を求めるもので、次の数27の二つの合同式に分ける。
Figure 2008052866
9:zからzのインデックスjを選択して、ασaz=ασXのインデックスσを求めるには、zからjをテーブルによるデコードで選択し、σ≡σ+j(mod255)を求める。この合同式は次の数28の二つの合同式に分ける。
Figure 2008052866
以上の数20から数23で計算しようとする合同式は、シンドロームS,S,Sのインデックスの倍数間の差のインデックスを求めるものであるが、15倍や17倍のインデックスとその他の倍数のインデックス間の17や15を法としたインデックス間の対応関係は、後に示すように予め求めておけるので、この関係を使ってインデックスの倍数間の和を、加算回路(アダー)により求める。
数20から数23の合同式では、A,B,E,Fの根αのインデックスについて、mod17とmod15による剰余類インデックスのペアにより定義される“表現インデックス”を求めている。
数24では、シンドロームから得られたインデックスσから、インデックスiとyの対応関係を用いて、y=σとなるiを求めるが、計算はmod17とmod15による剰余類インデックスによって行なわれ、2値による表現インデックスとしてインデックスnが得られる。このときσがiが存在しないyに対応することもある。
数25は、シンドローム間の計算から得られた(S +B) のインデックスと(A+1)のインデックスからCのインデックスσを表現インデックスとして求めている。
数26は、シンドローム間の計算から得られたtのインデックスと(A+1)のインデックスからTのインデックスσを表現インデックスとして求めている。
数27は、シンドロームから得られたインデックスの演算によってインデックスzを求めるもので、インデックスσと−3σの和をmod17とmod15 による表現インデックスとして求める。この計算で対応するjがないzがインデックスとして得られることもある。
数28は、インデックスjとzの対応関係からjを選択してこのjとインデックスσの和のインデックスσを表現インデックスとして求めている。
[3EC−EWシステムの構成]
図1は、フラッシュメモリに搭載される3EC−EWシステムの構成をメモリコア10との関係で示している。
NAND型フラッシュメモリの場合のメモリコア10は、図2に示すように、セルアレイ1、センスアンプ回路2及びロウデコーダ3を有する。セルアレイ1は、直列接続されたメモリセルM0−M31を有するNANDセルユニット(NANDストリング)を配列して構成されている。NANDセルユニットNUの一端は選択ゲートトランジスタS1を介してビット線BLe(BLo)に、他端は選択ゲートトランジスタS2を介して共通ソース線CELSRCに接続されている。
メモリセルの制御ゲートは、ワード線WL0−WL31に接続され、選択ゲートトランジスタS1,S2のゲートは選択ゲート線SGD,SGSに接続されている。ワード線WL0−WL31と選択ゲート線SGD,SGSを選択駆動するのがロウデコーダ3である。
センスアンプ回路2は、同時書き込み及び読み出しを行う1ページ分のセンスユニットSAを有する。各センスユニットSAには、ビット線選択回路4により、隣接するビット線BLe,BLoのいずれかが選択されて接続される。これにより、一つのワード線WLiと複数の偶数番ビット線BLe(或いは複数の奇数番ビット線BLo)により同時に選択されるメモリセルの集合が、同時に書き込み/読み出しが行われる1ページ(1セクタ)となる。非選択側のビット線は所定電位を与えたシールド線として利用することにより、選択ビット線間の干渉を防止することができる。
ワード線WL0−WL31を共有するNANDセルユニットの集合は、データ消去の単位とするブロックを構成し、図のようにビット線の方向に複数のブロックBLK0−BLKnが配置される。
図1において、エンコード部21は、231ビットの情報をa24〜a254としてこれらを係数とする230次の多項式f(x)が入力となる。情報ビットはデータビットの構成によって適宜必要な次数を選んでその係数のみを用い、使用しない係数は固定した0または1データとして扱うことによって固定ビットをメモリに記憶させずにメモリ容量に合ったシステムを構成することが可能である。
f(x)x24をg(x)で割った剰余をr(x)として多項式f(x)x24+r(x)の係数をデータビットとしてメモリコア10に書き込む。メモリコア10から読み出した255ビットのデータは254次の多項式ν(x)の係数として扱われる。
読み出したデータ多項式ν(x)からシンドロームS,S,Sを求めるのが、シンドローム演算部22である。先に説明したように、ν(x)を既約多項式m(x),m(x),m(x)でそれぞれ割ることにより、その剰余としてシンドロームS,S,Sが得られる。
シンドロームS,S,Sが全てゼロであれば、エラーがない。このとき、ゲート回路36により、信号“no error”が出力される。
シンドロームS,S,Sのインデックスは、mod17,mod15で区別し、以後の加算回路を用いた計算ではそのインデックスで表されるバイナリの数としての足し算が行なわれる。即ち加算回路23〜26は、シンドロームS,S,S間の積や商で表されるA,B,E,Fのインデックスをmod17とmod15の合同式として計算し、その結果の剰余類ペアで表される表現インデックスとして以降の演算を行う。
パリティチェッカ27,28,29は、入力インデックスを多項式に直した同じ次数間のmod2による和をとるものであり、具体的には、Aと1の和、BとS の和、S とSとEとFの和をそれぞれ求めている。これらのパリティチェッカでは、7次の多項式の各次数の係数のパリティチェックの結果として和の有限体要素の多項式の係数が得られる。
加算回路30は、2ECシステムに対応するy+y+1=Aによってyを求め、変換式x=Syによってエラー位置nの表現インデックスを計算する部分である。この加算回路30の入力は、AとSとS=0を示す信号である。この入力部でy+y+1=A を満たすyのインデックスiをデコードする。
=0ではA=0となり、y+y+1=0を満たすyが2つあるにも拘わらず、Aのインデックスσが前段の加算回路から出力されないので、S=0の場合の信号はシンドローム演算部22から直接受け取り、y+y+1=0となるyのインデックスをデコードする。
デコード結果のiとSのインデックスσから2つのエラー分のnのインデックスの表現インデックスを計算結果として出力する。入力部でのデコードの結果、yのインデックスiを求めることができない場合は、2ECシステムでは対応できないので、信号“no index 2EC”を発生する。
加算回路31は、入力としてB+S の表現インデックスとA+1の表現インデックスを用い、C=(B+S )/(A+1)のインデックスσの表現インデックスを出力する。
加算回路32は、入力としてS +S+E+F=tの表現インデックスとA+1の表現インデックスを受け取り、T=t/(A+1)のインデックスσの表現インデックスとして出力する。
これらの加算回路30〜32の次に、CとTのインデックスを入力としてインデックスzを計算する加算回路33がある。a=C3/2であるから、ここではCのインデックスσの表現インデックスからインデックスの変換表によって入力の切り替えのみによってaの表現インデックスを得る。これとTのインデックスσからT/aの表現インデックスを計算して出力する。
加算回路34は、3ECシステムに対応するz+z=T/aによってzを求め、変換azによってインデックスσの表現インデックスを計算する部分である。その入力部分は前段までの結果zとCのインデックスσの表現インデックスを示す信号である。この入力部でz+z=T/aを満たすzのインデックスjをデコードする。
デコード結果のjとa=C1/2の関係により、インデックスσの表現インデックスからインデックスの変換表によって入力の切り替えのみによってaの表現インデックスを得た結果を用いて、3つのエラー分のazのインデックスの表現インデックスを計算結果として出力する。
また、入力部でのデコードの結果zのインデックスjが求められない場合は、3ECでは対応できない。この場合は、信号“no index 3EC”を発生する。
パリティチェッカ35は、X=az+Sの和からXのインデックスとしてエラーの位置nの表現インデックスを計算している。4ビット以上のエラーがあり訂正が出来ない場合は、警告信号発生回路37により訂正不能であることを示す信号“non correctable”が出力される。
この警告信号発生回路37は、シンドロームがオール“0”ではなくかつ、2ECシステムでも3ECシステムでも解が得られない場合にその旨の警告信号を出す。具体的には、S=0でS≠0又はS≠0か、或いは3ECシステムで解がない場合即ち“no index 3EC”が出力された場合に、“non correcrable”が出力されるように、ロジックが組まれている。
メモリコア10から読み出したデータを最終的に訂正して出力する部分がエラー訂正回路38である。2ECシステム部分からのエラー位置情報が使われるのは、t=0でかつ、“no index 2EC”が出力されない場合(ゲートG1出力=“1”)であり、この場合はゲートG2が活性になり、ゲートG3が非活性になって3ECシステムからのエラー位置情報は使われない。
2ECの条件を満たさない場合に、ゲートG3が活性となり、3ECシステムからの位置情報が使われる。エラー位置nのデータ多項式ν(x)の係数は位置情報とのXOR論理により反転されて、データdとして出力される。
図3A及び図3Bは、エンコード部21で用いられる、チェックビットを計算するためのデータビット位置の選択表である。この表の意味は以下の通りである。
単項xを生成多項式g(x)で割った23次多項式となる剰余rn(x)を求めておく。255個のデータは254次の多項式の各次数の係数となるので、データが1である場合はそのデータ位置の次数のxの項があり、生成多項式g(x)の剰余の寄与はrn(x)である。
よってデータ1であるnのrn(x)を選択してrn(x)の各次数の係数の和をmod2で求めればデータ多項式のg(x)での割り算による剰余となる。
但しrn(x)の各次数で係数が0であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。rn(x)の各次数mについてその係数が1であるnをまとめたのが、図3A及び図3Bの表ということになる。チェックビットを作る際にはn=23までの次数はデータとして使わないので、n=24以降のnの表となる。
表の使い方は、次の通りである。例えばx15の係数が1であるrn(x)のnは表のm=15の列の“係数1の数”の欄の値が1から130に書かれている24,25,27,…,250,253,254のn次の項であり、x15の係数に相当するチェックビットb15は情報データの多項式f(x)x24の中のこの選択されたn次の項の中のデータが1であるビット位置nの1のパリティチェックの結果、すなわち表の中のデータが1に対応するnの数のmod2の剰余として得られる。
チェックビットの計算表を回路として実現するのが、図4である。これは、情報データ多項式f(x)x24からチェックビットをg(x)の剰余として計算する、m個の4ビットパリティチェッカラダー40と、図3A及び図3Bに示す生成多項式によるxの剰余のテーブルに従って各次数の入力を選択する入力回路41とを有する。すなわちこの回路は、各mについて表からnを選択しaを用いてパリティチェックを行なう。
パリティチェッカラダー40は、後に示すように、チェックビットを表す多項式の各次数の係数の値を計算するためのXOR回路の集合であり、生成多項式によるxの剰余のテーブルに従って各次数で入力を選択してそのパリティを計算する。
入力回路41は、CLK=“L”により駆動されるPMOSトランジスタP0によりプリチャージされる複数のノード42と、入力信号である情報データ多項式の231個の係数a24〜a254即ち入力データ信号を反転するインバータ群43と、その反転信号をゲート入力としてドレインが入力ノード42に接続されたNMOSトランジスタN2と、これらNMOSトランジスタN2のソースが共通に接続される、CLK=“H”でオンする放電用NMOSトランジスタN1とを有する。
NMOSトランジスタN2の配置が、図3A及び図3Bに従って定められる。予めプリチャージされたノード42がそれぞれ放電されるか否かが、NMOSトランジスタN2の配置と入力信号とにより決まり、その結果がパリティチェッカラダー40の入力となる。
m個のパリティチェッカラダー40の出力がそれぞれチェックビットbとなる。なお231個の係数を全て情報として使用しない時はシステムの構成によって適宜選択された係数のみを用いればよい。
図5は、4ビットパリティチェッカラダー40の構成例である。入力数が4の剰余系のいずれに属するかによって用いるパリティチェッカ(PC)を組合せる。すなわち4で割り切れれば4ビットPCのみで、1が余れば2ビットPCの一方の入力端子をVddにしたものすなわちインバータを加え、2が余れば2ビットPCを加え、3が余れば4ビットPCのひとつの入力端子をVddにしたものを加える。
図3A及び図3Bから、xのm=6,5はパリティチェックするビット数が最大の131個であるので、図5はその場合を例として示す。この場合131入力であるので、最初の段は4ビットPCを33個(そのうち一つは、一つの入力端子がVdd)、2段目は33入力となるので、4ビットPCを8個とインバータを1個、3段目は9入力となるので4ビットPCを2個とインバータを1個、4段目は3入力なので一つの入力端子をVddとした一つの4ビットPCで構成される。
他のmについても同様に構成していく。
図6(a),(b)は、2ビットPCの回路記号と具体回路例である。2ビットPCは、2ビット入力aとbの間のXOR演算部とXNOR演算部とから、偶数パリティのチェックを行うように、即ち入力中の“1”の数が偶数のときEP=“1”を出力する回路として構成されている。
図7(a),(b)は、4ビットPCの回路記号と具体回路例である。4ビットa,b,c,dを入力として、構成要素である二つの2ビットPCの出力のロジックを取り、偶数個の“1”が入力にあるときEP=“1”を出力する回路として構成されている。
図8は、シンドローム演算部22において、シンドロームS=S(x)の計算で使用する、xのm(x)での剰余pn(x)の各次数の係数が1であるnの表である。表の意味は以下の通りである。
単項xを多項式m(x)で割った7次多項式となる剰余pn(x)を求めておく。255個のデータは254次の多項式の各次数の係数となるので、データが1である場合はそのデータ位置の次数のxの項があり、多項式m(x)の剰余の寄与はpn(x)である。よってデータ1であるnのpn(x)を選択してpn(x)の各次数の係数の和をmod2で求めれば、データ多項式のm(x)での割り算による剰余となる。
但しpn(x)の各次数で係数が0であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。pn(x)の各次数mについてその係数が1であるnをまとめると、図8の表になる。
例えばxの係数が1であるpn(x)のnは、表のm=7の列の“係数1の数”の欄の数が1から128の行に書かれている7,11,12,…,251,252,254のnであり、シンドロームS(x)のxの係数(s1)はデータの多項式ν(x)の中のこれらのn次の項の係数のパリティチェックの結果として得られる。
図9は、データ多項式ν(x)からシンドロームSをm(x)の剰余として計算する計算回路を示している。データ多項式f(x)x24からシンドロームSをm(x)の 剰余として計算する、m個の4ビットパリティチェッカラダー50と、図8に示すxの剰余テーブルに従って各次数の入力を選択する入力回路51とを有する。すなわちこの回路は、各mについて表からnを選択しdを用いてパリティチェックを行なうものである。
パリティチェッカラダー50は、シンドロームSを表す多項式の各次数の係数の値を計算するためのXOR回路の集合であり、xの剰余のテーブルに従って各次数で入力を選択してそのパリティを計算する。
入力回路51は、CLK=“L”により駆動されるPMOSトランジスタP0によりプリチャージされる複数のノード52と、入力信号である情報データ多項式の255個の係数d〜d254即ち入力データ信号を反転するインバータ群53と、その反転信号をゲート入力としてドレインがノード52に接続されたNMOSトランジスタN2と、これらNMOSトランジスタN2のソースが共通に接続される、CLK=“H”でオンする放電用NMOSトランジスタN1とを有する。
NMOSトランジスタN2の配置が、図8に従って定められる。予めプリチャージされたノード52がそれぞれ放電されるか否かが、NMOSトランジスタN2の配置と入力信号とにより決まり、その結果がパリティチェッカラダー50の入力となる。
m個のパリティチェッカラダー50の出力がそれぞれシンドローム係数(s1)となる。なお255個の係数を全て情報として使用しない時はシステムの構成によって適宜選択された係数のみを用いればよい。
シンドロームS,Sの係数(s3),(s5)を求める計算回路も4ビットパリティチェッカラダーの構成が異なるのみで、同様の回路となる。
図10は、シンドロームSの計算回路での4ビットパリティチェッカラダー50の構成例である。この場合も、入力の数が4の剰余系のいずれに属するかによって用いるパリティチェッカPCを組合せる。すなわち、4で割り切れれば4ビットPCのみで、1が余れば2ビットPCの一方の入力端子をVddにしたもの即ちインバータを加え、2が余れば2ビットPCを加え、3が余れば4ビットPCのひとつの入力端子をVddにしたものを加える。
の全てのmは、図8からパリティチェックするビット数が128個である。従って、最初の段は128入力であり、4ビットPCを32個、2段目は32入力となり4ビットPCを8個、3段目は8入力となるので4ビットPCを2個、4段目は2入力なので2ビットPC1個で構成される。
図11は、シンドロームS=S(x)の計算で使用する、x3nのm(x)での剰余p3n(x)の各次数の係数が1であるnの表である。表の意味は以下の通りである。
単項xを多項式m(x)で割った7次多項式となる剰余をtn(x)とする。シンドロームS(x)へはtn(x)が寄与するが、S=S(x)であるからSへはtn(x)が寄与する。
≡tn(x)mod m(x)から、tn(x)≡x3nmod m(x)とm(x)≡0 mod m(x)なので、tn(x)≡x3n≡p3n(x)mod m(x)である。
GF(256)の要素はmod m(x)の既約剰余なので、ν(x)のxの項からはSにp3n(x)の寄与と等しくなる。そこでp3n(x)を求めておく。255個のデータは254次の多項式の各次数の係数となるので、データが1である場合はそのデータ位置の次数のxの項があり、この項の多項式m(x)の剰余tn(x)のS=S(x)への寄与はp3n(x)である。
よってデータ1であるnのp3n(x)を選択してp3n(x)の各次数の係数の和をmod2で求めれば、データ多項式のm(x)での割り算による剰余S(x)を求めなくてもS(x)が直接得られる。但しp3n(x)の各次数で係数が0であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。
p3n(x)の各次数mについてその係数が1であるnをまとめると、図11のの表になる。例えば、xの係数が1であるp3n(x)のnは表のm=7の列の“係数1の数”の欄の数が1から128の行に書かれている、4,8,14,…,249,252,254のnであり、シンドロームS(x)のxの係数(s3)は、データの多項式ν(x)の中のこれらのn次の項の係数のパリティチェックの結果として得られる。他のmについても同様にして係数が得られる。
図12は、シンドロームS=S(x)の計算での4ビットパリティチェッカラダーの構成例を示す。各mについて図11の表からnを選択してパリティチェックを行なう。
入力の数が4の剰余系のいずれに属するかによって用いるパリティチェッカ(PC)を組合せる。すなわち4で割り切れれば4ビットPCのみで、1が余れば2ビットPCの一方の入力端子をVddにしたものすなわちインバータを加え、2が余れば2ビットPCを加え、3が余れば4ビットPCのひとつの入力端子をVdd にしたものを加える。
のm=5,2,0は、図11の表からパリティチェックするビット数が最大の144個であるのでこの場合を例として示す。144入力であるので初段は4ビットPCを36個、2段目は36入力となるから、4ビットPCを9個、3段目は9入力となるので4ビットPC2個とインバータ1個、4段目は3入力なので一つの入力にVddが与えられた4ビットPC一つで構成される。
他のmについても同様に構成していく。
図13は、シンドロームS=S(x)の計算で使用する、x5nのm(x)での剰余p5n(x)の各次数の係数が1であるnの表である。表の意味は以下の通りである。
単項xを多項式m(x)で割った7次多項式となる剰余をqn(x)とする。S(x)へはq(x)が寄与するが、S=S(x)であるからSへはqn(x)が寄与する。x≡qn(x)mod m(x)からqn(x)≡x5nmod m(x)とm(x)≡0mod m(x)なので、qn(x)≡x5n≡p5n(x)mod m(x)である。
GF(256)の要素はmod m(x)の既約剰余なのでν(x)のxの項からはSにp5n(x)の寄与と等しくなる。そこでp5n(x)を求めておく。255個のデータは254次の多項式の各次数の係数となるので、データが1である場合はそのデータ位置の次数のxの項があり、この項の多項式m(x)の剰余qn(x)のS=S(x)への寄与はp5n(x)である。
よってデータ1であるnのp5n(x)を選択してp5n(x)の各次数の係数の和をmod2で求めれば、データ多項式のm(x)での割り算による剰余S(x)を求めなくてもS(x)が直接得られる。但しp5n(x)の各次数で係数が0であるものはどのようなデータ多項式でもこの計算に寄与しないので予め除いておける。p5n(x)の各次数mについてその係数が1であるnをまとめると図13の表になる。
例えばxの係数が1であるp5n(x)のnは表のm=7の列の“係数1の数”の欄の数が1から120の行に書かれている4,7,9,…,250,251,253のnであり、シンドロームS(x)のxの係数(s5)はデータの多項式ν(x)の中のこれらのn次の項の係数のパリティチェックの結果として得られる。
他のmについても同様にして係数が得られる。
図14は、シンドロームS=S(x)の計算での4ビットパリティチェッカラダーの構成例を示す。各mについて表から図13のnを選択してパリティチェックを行なう。
入力の数が4の剰余系のいずれに属するかによって用いるパリティチェッカ(PC)を組合せる。すなわち4で割り切れれば4ビットPCのみで、1が余れば2ビットPCの一方の入力端子をVddにしたものすなわちインバータを加え、2が余れば2ビットPCを加え、3が余れば4ビットPCのひとつの入力端子をVdd にしたものを加える。
のm=5,2は、表からパリティチェックするビット数が最大の160個であるのでこの場合を例として示す。160入力であるので最初の段は4ビットPCを40個、2段目は40入力となるので4ビットPCを10個、3段目は10入力となるので4ビットPCを2個と2ビットPCを1個、4段目は3入力なのでVddが与えられた4ビットPC1個で構成される。
他のmについても同様に構成していく。
シンドロームS,S,Sは、は7次の多項式として得られ、GF(256)の要素であるpn(x)のいずれかに一致している。そこでこれらのシンドローム多項式を、m(x)の根αのインデックスであって、mod17,mod15によって表した表現インデックスに変換して以後の計算で利用する。この変換を行なうデコード回路を図15A〜図15Cに示す。
図15Aは、プリデコード部Pre−DECであり、8ビットのpn(x)の係数の表す256のバイナリ信号状態を信号A,B,C,D(i=0〜3)の組合せとして表す変換を行う部分であって、NAND回路で構成される。8ビットのバイナリ信号を2ビットずつ下位から区切り、4進数としてそれぞれ表し、これらをA,B,C,Dとしている。
これにより、シンドロームS,S,Sの次数m=0,1がA、m=2,3がB、m=4,5がC、m=6,7がDに変換される。このプリデコード部を用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を8から4に削減できる。
図15Bは、メインのインデックスデコード部(DEC)即ち、17σDEC、15σDEC、17σDEC、15σDEC、17σDEC、15σDECの構成である。回路構成は同じで入力信号が異なるのみである。プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力するようになっている。 即ち、プリデコーダPre−DECの出力A,B,C,Dを選択的にゲート信号とするトランジスタを直列接続したNAND回路を、各剰余類に属する既約多項式の数だけ並列接続して構成される。
クロックCLKにより制御されるプリチャージトランジスタにより共通ノードをプリチャージし、その放電の有無で剰余類のインデックス信号“index i”とする。信号配線とその反転信号線とがペアをなして配設され、これがNAND回路を構成するトランジスタのゲートにデコードのコードに従って接続される。
mod17,mod15に対してこれらのインデックスをつくり、これらのペアとして表現インデックスとする。
pn(x)=0の場合はαの指数で表現できずインデックスが求まらないので、後でこの状態が必要になる場合のためにこの状態を示す信号を発生する。これが図15Cの補助デコード部即ち、A=B=C=D=“1”でそれぞれ(s5=0),(s3=0),(s1=0)を出力するs5=0 DEC,s3=0 DEC,s1=0 DECである。
図16及び図17は、プリデコーダ等により表現インデックスを求める際の対応表である。これらのうち図16は、既約剰余pn(x)のインデックスnを17倍して法15の剰余類17n(15)として分類したものである。0から14のインデックスで分類され、各々の類には17個のnが含まれ、これらに対応するpn(x)の各次数の係数に従ってプリデコードされた信号A,B,C,Dの各i(=0〜3)を示した。
これらのA,B,C,Dで図15Bのインデックスデコーダのトランジスタゲートへの信号の接続が決まる。例えばインデックス1においては並列にNOR接続されるNANDのノードはnが173,233,203,23,83,158,188,68,38,128,143,98,53,218,8,113,248に相当し、NANDゲートのトランジスタゲートへは対応するA,B,C,Dを接続する。
図17は、既約剰余pn(x)のインデックスnを15倍して法17の剰余類15n(17)として分類したものである。0から16のインデックスで分類され、各々の類には15個のnが含まれ、これらに対応するpn(x)の各次数の係数に従ってプリデコードされた信号A,B,C,Dのiを示した。
例えばインデックス1においては並列にNOR接続されるNANDのノードはnが161,59,246,127,42,93,178,144,212,229,110,195,8,76,25に相当し、NANDゲートのトランジスタゲートへは対応するA,B,C,Dを接続する。
αのインデックスnに対応する表現インデックスをmod17とmod15のペアとして{15n(17),17n(15)}で表す。このとき、nの倍数についてその表現インデックスと剰余類がどの様に変換するかを見る。本システムでは次の3つの場合がある。なお15n(17)=σ17(mod17),17n(15)=σ15(mod15)として説明する。
1)nの表現インデックスσ17,σ15から法15と互いに素である数mの倍数mnの表現インデックスを求める。17は素数なのでどんなmとも互いに素である。
nをm倍してもmが法と互いに素であるので合同式の両辺を、法を変えずにmで割ることが出来る。従って剰余類自体は変わらず含まれる要素の構成に変わりはない。表現インデックスはm倍され{σ17(mod17),σ15(mod15)}から、{mσ17(mod17),mσ15(mod15)}となる。
2) 法17は素数であるので因数を持たないが、法15は3や5を因数として持つ。このときnの表現インデックスから法15の因数である数mの倍数mnの表現インデックスを求める。
mnとmn’が同じ剰余類に属するなら、17m(n−n’)≡0(mod15)である。mが15の因数であるのでこの合同式の両辺をmで割るときには法もその絶対値で割られて、n≡n’(mod15/|m|)であるから、15/|m|だけ差がある剰余類の要素は同じ剰余類の要素と見なされるので今まで分離していた剰余類が結合して新たな大きな剰余類となる。
表現インデックスはこれらの結合によって同一の表現インデックス を持つように変換される。例えばm=−3の場合はn≡n’(mod5)となり法15での剰余類3つが結合して15個の剰余類が5つの剰余類にまとまる。表現インデックスの変換自体は、1)の場合と同じである。
3)nの表現インデックスσ17,σ15から法15と互いに素である数mのm分の1のn/mの表現インデックスを求める。17は素数なのでどんなmとも互いに素である。
17n/mと17n’/mの剰余類について、17(n−n’)/m(mod15)でmが15と互いに素であるので、17(n−n’)/m≡(σ15−σ15’)/m(mod15)であるから、剰余類自体は変わらない。
表現インデックスは、17n/m≡σ(mod15)とすると、mσ≡σ15(mod15)である。mと15が互いに素であるので、σ15+15a15=mb15となる整数a15,b15が必ずあり、σ≡b15(mod15)となる。mod17についても同様であり、ペアの表現インデックスは、{b17(mod17),b15(mod15)}となる。
例えばm=2のときは、σ17が偶数なら、b17=σ17/2、奇数なら、b17=(σ17+17)/2となる。σ15が偶数なら、b15=σ15/2、奇数なら、b15=(σ15+15)/2となる。
図18は、nの表現インデックス{15n(17),17n(15)}の成分インデックスについて、nのm倍の変換後の値を欄xmの表にしたものである。この変換を組みあわて本システムで必要な表現インデックスは全て得られる。
例えば、−3/2倍に表現インデックス{3,8}を変換する。最初の成分インデックスは15n(17)=3であるので、×(−3)の欄から8になり、これを新たに15n(17)と見なして×1/2の欄から4となる。2番目の成分インデックスは17n(15)=8であるので、×(−3)の欄から6になり、これを新たに17n(15)と見なして×1/2の欄から3になる。
即ち{3,8}は、×(−3/2)により{4,3}に変換される。この変換過程は最初に×1/2を求め、次に×(−3)を求めても結果は同じである。
図19は、シンドローム多項式からシンドロームS,S,Sの表現インデックスに変換し、これらの2乗、3乗、−2乗、−3乗の表現インデックスを変換×2,×3,×(−2),×(−3)で求める回路を示す。
デコード回路DEC1,DEC2は、それぞれ15,17を法とした各シンドロームS,S,Sの各表現インデックス{15σ(17),17σ(15)}, {15σ(17),17σ(15)}、 {15σ(17),17σ(15)}を発生させる。これは先に示したプリデコーダとメインのインデックスデコーダを用いて構成される。
これらの表現インデックスの成分インデックスを、図18の変換テーブルに従ってマルチプレクサMUX1,MUX2で変換して、このあとの加算回路での計算で利用する。マルチプレクサMUX1,MUX2はインデックス間の対応関係に従って信号を配信するだけの分岐回路である。
図20は、図1の加算回路23の中の一つである、有限体要素A=S/S の17を法とする表現インデックスを計算する加算回路即ち、A−Adder(mod17)であり、数20の合同式15σ≡15σ−45σ(mod17)の右辺を計算する回路である。
入力101と102は表現インデックス成分15σ(17)から変換された−45σ(17)と15σ(17)である。これらを5ビットの加算器105で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路103,104が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路106を介することにより、出力107に表現インデックスの成分15σ(17)が得られる。
図21は、図1の加算回路23の中で有限体要素A=S/S の15を法とする表現インデックスを計算する加算回路即ち、A−Adder(mod15)であり、数20の合同式17σ≡17σ−51σ(mod15)の右辺を計算する回路である。
入力201と202は表現インデックス成分17σ(15)から変換された−51σ(15)と17σ(15)である。これらを4ビットの加算器205で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路203,204が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路206を介することにより、出力207に表現インデックスの成分17σ(15)が得られる。
図22は、インデックス/バイナリ変換回路103,104,203,204の構成例である。これは、剰余類を表すインデックスiを2進数表示に変換するもの(index to 5 binary,index to 4 binary)で、変換されたバイナリ情報を保持するためにクロックCLKでリセットされるラッチ回路108を有する。インデックスが入力されない場合は5binary回路なら2進数の31、4binary回路なら2進数の15である全ての信号が“H”状態を維持する。
図23は、バイナリ/インデックス変換回路106,206の構成例である。これは、2進数表示の計算結果を、次の段の計算で表現インデックス間の計算として利用できるようにインデックス信号へと再変換する必要があるため用意される。図15Bのデコード回路と同様の構成を用いることができる。
図24は、数AmとBmを2進数で表した各桁の和をハーフアダー、フルアダーで求めて、17を法としてその剰余としての和を求める5ビット加算器105の構成例を示している。図示のように、この加算器105は、5ビットの第1段加算器1051と、その和が17以上であることを検出して桁上げする桁上げ補正回路1052と、この桁上げ補正回路1052と共に、和が17以上の場合に32に対する17の補数15(=32−17)を加えるための第2段加算器1053とを有する。
桁上げ補正回路1052は、第1段加算器1051の出力状態に応じて、信号PF0を発生するものである。具体的にいえば、第1段加算器1051の最上位ビット出力S4’が“1”でありかつ、それ以外のビット出力S0,S1’〜S3’の少なくとも一つが“1”であること、即ち和が17以上であることを検出して、信号PF0(=“H”)を発生するように構成されている。
第2段加算器1053は、第1段加算器1051の出力が17以上の場合に、17の補数(01111)を加えるというロジックが組まれている。
図25は同様に、15を法としてその剰余としての和を求める4ビット加算器205の構成例を示している。図示のように、この加算器205は、4ビットの第1段加算器2051と、その和が15以上であることを検出して桁上げする桁上げ補正回路2052と、この桁上げ補正回路2052と共に、和が15以上の場合に15の補数を加えるための第2段加算器2053とを有する。
桁上げ補正回路2052は、第1段加算器2051の出力状態に応じて、信号PF0を発生するものである。
第2段加算器2053は、第1段加算器2051の出力が15以上の場合に、15の補数1=(0001)を加えるというロジックが組まれている。
これらの加算器105,205は、クロックなどの同期が必要でなく、入力が確定すれば出力も確定するようにして、システムのタイミング制御の負担を減らす構成となっている。
図26(a)(b)及び図27(a)(b)は、以上の加算器105,205で用いられる、2進数の足し算を行なう基本的な単位であるフルアダー及びハーフアダーの回路記号と具体回路を示している。フルアダーは、加えるビットAとBをXOR回路とXNOR回路でロジック演算を行い、桁上げ信号Cinとのロジックを更に取って、出力としてA,B,Cinの和Soutと桁上げ信号Coutを出力する。ハーフアダーは一般的なロジックゲートで構成できる。
図28は、図1の加算回路24の中の一つである、有限体要素B=S/S の17を法とする表現インデックスを計算する加算回路即ち、B−Adder(mod17)であり、数21の合同式15σ≡15σ−45σ(mod17)の右辺を計算する回路である。
入力301と302は表現インデックス成分15σ(17)から変換された−45σ(17)と15σ(17)である。これらを5ビットの加算器305で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路303,304が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路306を介することにより、出力307に表現インデックス成分15σ(17)として得られる。
図29は、図1の加算回路24の中で有限体要素B=S/S の15を法とする表現インデックスを計算する加算回路即ち、B−Adder(mod15)であり、数21の合同式17σ≡17σ−51σ(mod15)の右辺を計算する回路である。
入力401と402は表現インデックス成分17σ(15)から変換された−51σ(15)と17σ(15)である。これらを4ビットの加算器405で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路403,404が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路406を介することにより、出力407に表現インデックス成分17σ(15)が得られる。
図30は、図1の加算回路25の中の一つである、有限体要素E=S/S の17を法とする表現インデックスを計算する加算回路即ち、E−Adder(mod17)であり、数22の合同式15σ≡15σ−30σ(mod17)の右辺を計算する回路である。
入力501と502は表現インデックス成分15σ(17)から変換された−30σ(17)と15σ(17)である。これらを5ビットの加算器505で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路503,504が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路506を介することにより、出力507に表現インデックスの成分15σ(17)が得られる。
図31は、図1の加算回路25の中の有限体要素E=S/S の15を法とする表現インデックスを計算する加算回路即ち、E−Adder(mod15)であり、数22の合同式17σ≡17σ−34σ(mod15)の右辺を計算する回路である。
入力601と602は表現インデックス成分17σ(15)から変換された−34σ(15)と17σ(15)である。これらを4ビットの加算器605で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路603,604が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路606を介することにより、出力607に表現インデックス成分17σ(15)が得られる。
図32は、図1の加算回路26の中の一つである、有限体要素F=S /S の17を法とする表現インデックスを計算する加算回路即ち、F−Adder(mod17)であり、数23の合同式15σ≡30σ−45σ(mod17)の右辺を計算する回路である。
入力701と702は表現インデックス成分15σ(17)から変換された−45σ(17)と15σ(17)から変換された30σ(17)である。これらを5ビットの加算器705で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路703,704が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路706を介することにより、出力707に表現インデックスの成分15σ(17)が得られる。
図33は、図1の加算回路26の中の有限体要素F=S /S の15を法とする表現インデックスを計算する加算回路即ち、F−Adder(mod15)であり、数23の合同式17σ≡34σ−51σ(mod15)の右辺を計算する回路である。
入力801と802は表現インデックス成分17σ(15)から変換された−51σ(15)と17σ(15)から変換された34σ(15)である。これらを4ビットの加算器805で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路803,804が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路806を介することにより、出力807に表現インデックスの成分17σ(15)が得られる。
加算回路23−26の出力は、パリティチェッカ27−29での計算、例えばt=S +S+E+F等を計算するために供される。ここでの計算は有限体の要素を既約多項式と見てその係数の2を法としての和を求めるものである。そこで表現インデックスによって表された有限体の要素多項式pn(x)を加えるその係数を求める方法を説明する。
図34A及び図34Bの表は、pn(x)の次数mの係数と根αのインデックスnと表現インデックス{15n(17),17n(15)}の関係を表現インデックス成分17n(15)の値0〜14ごとのグループにまとめて示した。各グループ内で表現インデックス成分15n(17)は0から16までが昇順に並べられている。
また、input 15n(17)の部分には、pn(x)の係数の和を、係数が0であるところは和に寄与しないので係数が1であるときの15n(17)の値を表示している。pn(x)と表現インデックス {15n(17),17n(15)}は一対一に対応しているので、ある表現インデックスが与えられたとき多項式のpn(x)の次数mの係数の和への寄与をこの表からデコードできる。
すなわち各次数mについて、 ひとつの17n(15)をゲート入力とするひとつのトランジスタの下にこの17n(15)に属するpn(x)の次数mの係数が1である15n(17)をゲート入力とするトランジスタが並列接続されたNOR接続を作る。すなわち表現インデックスがこのグループにヒットすれば電流パスが出来るようにする。
このような接続を各17n(15)について図34A及び図34Bの表から作り、共通ノードを放電するようにする。この共通ノードがひとつの表現インデックスに対してpn(x)の次数mの係数の反転を表している。
例えば次数m=7では表から、次の(1)〜(15)のNOR接続を作る。
(1)17n(15)=0の下の15n(17)=2,7,10,12,14,16のNOR接続、
(2)17n(15)=1の下の15n(17)=0,2,4,4,7,9,10,11,15,16のNOR接続、
(3)17n(15)=2の下の15n(17)=3,4,5,6,10,16のNOR接続、
(4)17n(15)=3の下の15n(17)=0,1,3,6,8,9のNOR接続、
(5)17n(15)=4の下の15n(17)=0,4,5,9,11,12,14,15のNOR接続、
(6)17n(15)=5の下の15n(17)=0,2,3,6,7,9,11,15のNOR接続、
(7)17n(15)=6の下の15n(17)=0,1,4,5,8,9,10,16のNOR接続、
(8)17n(15)=7の下の15n(17)=1,3,4,5,6,8,11,12,14,15のNOR接続、
(9)17n(15)=8の下の15n(17)=2,3,4,5,6,7,12,14のNOR接続、
(10)17n(15)=9の下の15n(17)=1,2,3,4,5,6,7,8,10,11,15,16のNOR接続、
(11)17n(15)=10の下の15n(17)=0,3,6,9,10,11,12,14,15,16のNOR接続、
(12)17n(15)=11の下の15n(17)=1,2,7,8,11,15のNOR接続、
(13)17n(15)=12の下の15n(17)=1,8,10,11,12,14,15,16のNOR接続、
(14)17n(15)=13の下の15n(17)=0,1,2,4,5,7,8,9,12,14のNOR接続、
(15)17n(15)=14の下の15n(17)=0,1,2,3,6,7,8,9,10,12,14,16のNOR接続。
これらのNOR接続により共通ノードが放電されるか否かにより、係数1がデコードされる。例えば{15n(17),17n(15)}={11,4}は、17n(15)=4の下の15n(17)=0,4,5,9,11,12,14,15のNOR接続を介してノードが放電され、m=7次の係数が1であることがデコードされる。
図35は、上述の図34A及び図34Bのテーブルを利用して、2ビットエラーであるか否かの判定信号となるt=S +S+E+Fを計算する4ビットパリティチェッカ29の入力デコード部の構成を示している。
入力信号は、要素S ,S,E,Fそれぞれの表現インデックスであり、これらの要素毎にm次の係数に相当する共通ノード3501を有する。この共通ノード3501は、信号CLKで駆動されるPMOSトランジスタによりVddにプリチャージされる。
各要素の共通ノード3501に対して、表現インデックス成分17n(15)によりゲートが駆動されるNMOSトランジスタN11と、表現インデックス成分15n(17)によりゲートが駆動されるNMOSトランジスタN12とによりNOR回路NOR1,NOR2,NOR3,NOR4が構成される。NMOSトランジスタN11,N12の配置が図34A及び図34Bのテーブルにより決まる。
4つずつの共通ノード3501のパリティチェックを4ビットパリティチェッカ29で行うことにより、tのm次の係数(t)が得られる。ちなみに、パリティチェッカの入力は全入力が反転されていても出力は変わらないので、ノードの放電を利用したロジックが作りやすい反転入力としている。
図36は、同様に図34A及び図34Bのテーブルを利用して、数13に関係するC=(S +B)/(A+1)の要素であるS +Bを計算するパリティチェッカ28の入力デコード部の構成を示している。
入力信号は、要素S 及びBの表現インデックスであり、これらの要素毎にm次の係数に相当する共通ノード3601を有する。この共通ノード3601は、信号CLKで駆動されるPMOSトランジスタによりVddにプリチャージされる。
各要素の共通ノード3601に対して、表現インデックス成分17n(15)によりゲートが駆動されるNMOSトランジスタN11と、表現インデックス成分15n(17)によりゲートが駆動されるNMOSトランジスタN12とによりNOR回路NOR5,NOR6が構成される。
2つずつの共通ノード3601のパリティチェックを2ビットパリティチェッカ28で行うことにより、S +Bのm次の係数(S +B)が得られる。
図37は、同様に図34A及び図34Bのテーブルを利用して、数13に関係するC=(S +B)/(A+1)のA+1を計算するパリティチェッカ27の入力デコード部の構成を示している。
入力信号は、要素Aの表現インデックスであり、この要素のm次の係数に相当する共通ノード3701を有する。この共通ノード3701は、信号CLKで駆動されるPMOSトランジスタによりVddにプリチャージされる。
各共通ノード3701に対して、表現インデックス成分17n(15)によりゲートが駆動されるNMOSトランジスタN11と、表現インデックス成分15n(17)によりゲートが駆動されるNMOSトランジスタN12とによりNOR回路NOR7が構成される。
パリティチェッカ27は、Aに1を加えるのみであるので、出力m=0は、共通ノード3701の信号を反転するインバータ2段により、他のmはインバータ1段により構成される。これにより、A+1のm次の係数(A+1)が得られる。
以上のように、要素の和から多項式のm次の係数を求めた後、これを表現インデックスに変換する。即ち、要素t,S +B,A+1は7次の多項式として得られ、GF(256)の要素であるpn(x)のいずれかに一致している。そこで多項式をm(x)の根αのインデックスをmod17,mod15によって表した表現インデックスに変換して以後の計算で利用する。
図38A〜図38Cは、そのような表現インデックスへの変換を行なうデコード回路の構成を示す。デコード回路は、図38AのプリデコーダPre−DEC、図38Bに示すメインのデコーダ即ち、15σDEC,17σDEC,15σ(S12+B)DEC,17σ(S12+B)DEC,15σ(A+1)DEC,17σ(A+1)DECと、図38Cに示す補助的デコーダ,t=0DECとを有する。
図38AのプリデコーダPre−DECは、8ビットのpn(x)の係数の表す256のバイナリ信号状態を信号A,B,C,D(i=0〜3)の組合せとして表す変換を行うものであり、NAND回路で構成される。8ビットのバイナリを2ビットずつ下位から区切り4進数としてそれぞれ表し、これらをA,B,C,Dとしている。
このプリデコーダにより、t,S +B,A+1の次数m=0,1がA、m=2,3がB、m=4,5がC、m=6,7がDに変換される。このプリデコーダを用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を8から4に削減できる。
図38Bのメインデコーダは、6種あるが各回路構成は同じで入力信号が異なるのみであるので、一つを示している。ここでは、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力する。即ち信号A,B,C,Dを剰余類の各要素を表すデコードのNAND接続とこれら要素の集合を表すこれらのNOR接続で結合して、クロックCLKでプリチャージされるノードを放電させ、さらに反転して剰余類のインデックス信号iを出力する。剰余類の数だけこの回路は必要である。mod17,mod15に対して先に計算した表からこれらのインデックスをつくりこれらのペアとして表現インデックスとする。
pn(x)=0の場合はαのインデックスが求まらないので、後でこの状態が必要になる場合のために、図38Cに示す補助的デコーダでこの状態を示す信号を発生する。即ち、A=B=C=D=“1”のとき、t=0を示す信号を発生する。
図39は、図1の加算回路32の中の一つである、有限体要素T=t/(A+1)の17を法とする表現インデックスを計算する加算回路即ち、T−Adder(mod17)であり、数26の合同式15σ≡15σ−15σ(A+1)(mod17)の右辺を計算する回路である。
入力901と902はA+1の表現インデックス成分15σ(A+1)(17)から変換された−15σ(A+1)(17)とtの表現インデックス成分15σ(17)である。これらを5ビットの加算器905で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路903,904が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路906を介することにより、出力907に表現インデックスの成分15σ(17)が得られる。
図40は、図1の加算回路32の中の有限体要素T=t/(A+1)の15を法とする表現インデックスを計算する加算回路即ち、T−Adder(mod15)であり、数26の合同式17σ≡17σ−17σ(A+1)(mod15)の右辺を計算する回路である。
入力1001と1002はA+1の表現インデックス成分15σ(A+1)(15)から変換された−17σ(A+1)(15)とtの表現インデックス成分17σ(15)である。これらを4ビットの加算器1005で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路1003,1004が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路1006を介することにより、出力1007に表現インデックスの成分17σ(15)が得られる。
図41は、図1の加算回路31の中の一つである、有限体要素C=(S +B)/(A+1)の17を法とする表現インデックスを計算する加算回路即ち、C−Adder(mod17)であり、数25の合同式15σ≡15σ(S12+B)−15σ(A+1)(mod17)の右辺を計算する回路である。
入力1101と1102はA+1の表現インデックス成分15σ(A+1)(17)から変換された−15σ(A+1)(17)とS +Bの表現インデックス成分17σ(S12+B)(17)である。これらを5ビットの加算器1105で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路1103,1104が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路1106を介することにより、出力1107に表現インデックス成分17σ(17)が得られる。
図42は、図1の加算回路31の中の有限体要素C=(S +B)/(A+1)の15を法とする表現インデックスを計算する加算回路即ち、C−Adder(mod15)であり、数25の合同式17σ≡17σ(S12+B)−17σ(A+1)(mod15)の右辺を計算する回路である。
入力1201と1202はA+1の表現インデックス成分15σ(A+1)(15)から変換された−17σ(A+1)(15)とS +Bの表現インデックス成分17σ(S12+B)(15)である。これらを4ビットの加算器1205で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路1203,1204が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路1206を介することにより、出力1207に表現インデックス成分17σ(15)が得られる。
図43は、図1の加算回路33の中の一つである、有限体要素αzj=T/aの17を法とする表現インデックスを計算する加算回路即ち、z−Adder(mod17)であり、数27の合同式15z≡15σ−45σ(mod17)の右辺を計算する回路である。
入力1301は、σ=σ(1/2)の対応関係から信号つなぎ替えで変換された要素a=C1/2の表現インデックス成分15σ(17)を更に変換した−45σ(17)であり、入力1302は、Tの表現インデックス成分15σ(17)である。これらを5ビットの加算器1305で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路1303,1304が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路1306を介することにより、出力1307に表現インデックス成分17z(17)が得られる。
図44は、図1の加算回路33の中の有限体要素αzj=T/aの15を法とする表現インデックスを計算する加算回路即ち、z−Adder(mod15)であり、数27の合同式17z≡17σ−51σ(mod15)の右辺を計算する回路である。
入力1401は、σ=σ(1/2)の対応関係から信号つなぎ替えで変換された要素a=C1/2の表現インデックス成分17σ(15)を更に変換した−51σ(15)であり、入力1402は、Tの表現インデックス成分17σ(15)である。これらを4ビットの加算器1405で加えるために、インデックスをバイナリ表示に変換するインデックス/バイナリ変換回路1403,1404が設けられている。
加算結果は、バイナリをインデックスに戻すバイナリ/インデックス変換回路1406を介することにより、出力1407に表現インデックス成分15z(15)が得られる。
図45は、3つのエラー位置をz+z=αzjからz=αのインデックスjとして求めるための、インデックスjとこれがz+z変換されたインデックスzの対応関係をまとめたものである。jの順にzを並べたものと、zの順にjを並べたものを併せて示した。
後者は同一のzに三つのjが対応する場合があることを示している。三つのjが対応しないzは、ぴったり3つのエラーがない場合であって解が存在しない状態であり、これらは解の探索からは最初から省いてよい。
図46は、3つのエラーがある場合に、zの表現インデックス{15z(17),17z(15)}とjの表現インデックス成分15j(17)の間の関係を示している。またデコードの際のバス構成との関係も併せて示している。
表は15j(17)の値ごとにまとめてグループとしている。計算で得られたzの表現インデックスに対して、この表からデコーダを作るとjの表現インデックス成分が求まる。但し同じzが3つのjに対応するので、デコードの出力を3つに分けてjごとにデータ出力データがバスでぶつからないように3つのバスbs1,bs2,bs3を設けている。
例えばz=17にはj=51,58,163が対応するのでj=51はバスbs1に、j=58はbs2に、j=163はbs2になるように、出力バスを分ける。
実際のデコードで利用されるのは表現インデックスであり、z各表現インデックスに対して各バスbs1,bs2,bs3に出力されるjの表現インデックス成分15j(17)の値を対応させる。表現インデックス間に対応がない場合は3エラーではない。
図47は、同様に3つのエラーがある場合に、zの表現インデックス{15z(17),17z(15)}とjの表現インデックス成分17j(15)の間の関係を示している。またデコードの際のバス構成との関係も併せて示している。
表は15j(15)の値ごとにまとめてグループとしている。計算で得られたzの表現インデックスに対して、この表からデコーダを作るとjの表現インデックス成分が求まる。但し同じzが3つのjに対応するので、デコードの出力を3つに分けてjごとにデータ出力データがバスでぶつからないように3つのバスbs1,bs2,bs3を設けている。
例えばz=17にはj=51,58,163が対応するので、j=51はbs1に、j=58はbs2に、j=163はbs3になるようにバスを分けているのは15j(17)の表と同じである。
実際のデコードで利用されるのは表現インデックスであり、z各表現インデックスに対して各バスbs1,bs2,bs3に出力されるjの表現インデックス成分17j(15)の値を対応させる。表現インデックス間に対応がない場合は3エラーではない。
図48は、図1における加算回路34の中の一つである、有限体要素azの17を法とする表現インデックス成分15σ(17)を計算する回路部分即ち、az−Adder(mod17)であり、数28の合同式15σ≡15σ+15j(mod17)の右辺を計算する回路である。
一方の入力1501はσ=σ(1/2)の対応関係から信号つなぎ替えで変換されて得られた要素a=C1/2の表現インデックス成分15σ(17)である。他方の入力1502は、zの表現インデックス17z(15),15z(17)を先の図46及び図47のテーブルによって構成されたデコーダ1507で対応付けした表現インデックス成分15j(17)である。
入力1501の15σ(17)はバイナリ信号に変換するインデックス/バイナリ変換回路1503を通す。同様に入力1502の15j(17)は、3つのエラーのそれぞれに対応した3つの5ビット加算器1505a,1505b,1505cで加えるために、インデックスを2進表示に変換するインデックス/バイナリ変換回路1504によって変換して、3つのバスbs1,bs2,bs3にそれぞれ出力する。
これらのバスbs1,bs2,bs3の出力と、入力1501側のバイナリ出力とを、各加算器1505a,1505b,1505cで17を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ/インデックス変換回路1506a,1506b,1506cを通して、表現インデックス成分15σ(17)に戻して3つのバスbus1,bus2,bus3にそれぞれ出力する。
図49は、図1における加算回路34の中の有限体要素azの15を法とする表現インデックス成分17σ(15)を計算する回路部分、az−Adder(mod15)であり、数28の合同式17σ≡17σ+17j(mod15)の右辺を計算する回路である。
一方の入力1601はσ=σ(1/2)の対応関係から信号つなぎ替えで変換されて得られた要素a=C1/2の表現インデックス成分17σ(15)である。他方の入力1602は、zの表現インデックス17z(15),15z(17)を先の図46及び図47のテーブルによって構成されたデコーダ1607で対応付けした表現インデックス成分17j(15)である。
入力1601の17σ(15)については、インデックス を2進表示に変換するインデックス/バイナリ変換回路1603によって変換し、入力1602の17j(15)は、3つのエラーのそれぞれに対応した3つの5ビット加算器1605a,1605b,1605cで加えるために、インデックスを2進表示に変換するインデックス/バイナリ変換回路1604によって変換して、3つのバスbs1,bs2,bs3にそれぞれ出力する。
これらのバスbs1,bs2,bs3の出力と、入力1601側のバイナリ出力とを、各加算器1605a,1605b,1605cで15を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ/インデックス変換回路1606a,1606b,1606cを通して、表現インデックス成分17σ(15)に戻して3つのバスbus1,bus2,bus3にそれぞれ出力する。
図50は、デコード回路1507,1607の構成である。zの表現インデックスから対応するjの表現インデックスに変換するのがこれらのデコーダzj(17)DEC,zj(15)DECである。ひとつのzに3つのjが対応してあるのでバスbs1,bs2,bs3にそれぞれjの表現インデックスを出力する。
の表現インデックス成分15zj(17),17zj(15)をゲート入力とするNAND接続によってこれらの表現インデックスを区別し、先の表に従って同じjの表現インデックス成分に対応するグループごとにNOR接続で結合している。クロックCLKでプリチャージされたノードが放電され、インバータで反転されて、jの表現インデックス成分15j(17),17j(15)がバス毎に発生される。
図51は、表現インデックスの和を加算器で計算できるように2進表示にする変換するインデックス/バイナリ変換回路1503,1504,1603,1604の回路構成である。これは先に図22で説明した回路と同じである。
図52は、zに対応するjが存在しない場合即ち、3つのエラーが解として求まらない場合を示す信号“no index 3EC(17)”,“no index 3EC(15)”を発生する回路である。インデックスが出なければインデックス/バイナリ変換回路の出力が全ビット“1”となるので、この状態を検出するNAND回路G1,G2を用いてこれらの信号発生回路が構成される。バスbs1,bs2,bs3には同じ信号が発生するので、一つのバスbs1のみの状態のみをモニタすれば十分である。
図53は、3つのバスbus1,bus2,bus3上の要素azの表現インデックスによってエラーが発生した実際のビット位置をX=az+Sと計算する回路、即ち図1のパリティチェッカ35とその入力デコード回路部の構成である。この回路は各バス毎に設けられ、バスbus1,bus2,bus3に対してそれぞれ、X,X,Xが得られる。
入力デコード回路構成は、図35〜図37と同様の原理による。即ち入力信号は要素azとSそれぞれの表現インデックスであり、これらの要素ごとにm次の係数に相当するノードを持ちこのノードを信号CLKでプリチャージしておく。各要素のm次のノードの表現インデックス信号のトランジスタゲートへの接続は表から決まる。各mについて各要素からの2つのノードのパリティチェック2ビットパリティチェッカ35で行い、az+Sのm次の係数である(Xが得られる。
実際のエラー位置を表す多項式Xのm次の係数を求めた後でこれを表現インデックスに変換する。Xは7次の多項式として得られ、GF(256)の要素であるpn(x)のいずれかに一致している。そこで多項式をm(x)の根αのインデックスのmod17,mod15によって表した表現インデックスに変換して以後の計算で利用する。
図54A及び図54Bは、そのような表現インデックスへの変換を行なうデコード回路の構成を示す。即ちデコード回路は、図54AのプリデコーダPre−DECと、図54Bに示すメインのデコーダ即ち、15n(bus1)DEC,17n(bus1)DEC,15n(bus2)DEC,17n(bus2)DEC,15n(bus3)DEC,17n(bus3)DECにより構成される。
図54AのプリデコーダPre−DECは、8ビットのpn(x)の係数の表す256のバイナリ信号状態を信号A,B,C,D(i=0〜3)の組合せとして表す変換であり、NAND回路で構成される。8ビットのバイナリを2ビットずつ下位から区切り4進数としてそれぞれ表し、これらをA,B,C,Dとしている。
このプリデコーダにより、次数m=0,1がA、m=2,3がB、m=4,5がC、m=6,7がDに変換される。このブリデコーダを用いることによって、次段のメインデコード回路の構成ユニットのトランジスタ数を削減できる。
図54Bのメインデコーダは、6種あるが各回路構成は同じで入力信号が異なるのみであるので、一つを示している。ここでは、プリデコードされた信号を剰余類のグループに分けてそのインデックスを出力する。即ち信号A,B,C,Dを剰余類の各要素を表すデコードのNAND接続とこれら要素の集合を表すこれらのNOR接続で結合して、クロックCLKでプリチャージされるノードを放電させ、さらに反転して剰余類のインデックス信号nを出力する。剰余類の数だけこの回路は必要である。mod17,mod15に対して先に計算した表からこれらのインデックスをつくりこれらのペアとして各バスbus1,bus2,bus3毎の表現インデックスnを出力する。
図55は、各バスbus1,bus2,bus3ごとに得られたエラー位置nの表現インデックスを用いてエラー位置にエラー信号を発生するエラー位置デコード回路である。各バスbus1,bus2,bus3のnの表現インデックス成分のNAND接続をつくりこれらの表現インデックスを選択できるようにする。
ビット位置nでエラーが発生した場合のエラー位置信号n(3EC)(情報データビットとして利用するのはn=24〜254である)を発生するために、バスbus1,bus2,bus3の表現インデックスをNOR接続で結合し、CLKでプリチャージされたノードを放電し、さらにインバータで反転して信号とする。
エラーが2つ以下の場合は2ECシステムを用いてエラー位置の検索を行なう。このときy+y+1=Aを解くが、y+y+1のインデックスをyとし、yのインデックスをiとすればiとyの関係が決まる。
図56は、そのインデックスiとyの対応関係をまとめたものである。iの順にyを並べたものと、yの順にiを並べたものを併せて示した。後者はy=0の場合を除いて同一のyに二つのiが対応することを示している。y=0は1ビットエラーに対応する。
なお、iが85と170では対応するyはない(有限体の要素0に対応)のでインデックスとは別の系統で解を求める。またyの値が全ての255の剰余にわたっていないことが分かる。対応するyがない場合にはエラー位置検索方程式Λ(x)=0に解が存在しない。
図57は、2つ以下のエラーがある場合に、yの表現インデックス{15y(17),17y(15)}とiの表現インデックス成分15i(17)の間の関係を示している。またデコードの際のバス構成との関係も合わせて示している。
表は15i(17)の値ごとにまとめてグループとしている。計算で得られたyの表現インデックスに対して、この表からデコーダを作るとiの表現インデックス成分が求まる。但し同じyが2つのiに対応するので、デコード出力を2つに分けてiごとにデータ出力データがバスでぶつからないように2つのバスbs1,bs2を設けている。
例えば、y=17にはi=102,221が対応するので、i=102はbs1に、i=221はbs2になるようにバスを分ける。
また、yの表現インデックスが得られない要素0の場合は、S=0がその場合を示し、i=85,170はそれぞれバスbs1,bs2になる。
実際のデコードで利用されるのは表現インデックスであり、y各表現インデックスに対して各バスbs1,bs2に出力されるiの表現インデックス成分15i(17)の値を対応させる。表現インデックス間に対応がない場合は1又は2エラーではない。
図58は、2つ以下のエラーがある場合に、yの表現インデックス{15y(17),17y(15)}とiの表現インデックス成分17i(15)の間の関係を示している。またデコードの際のバス構成との関係も合わせて示している。
表は17i(15)の値ごとにまとめてグループとしている。計算で得られたyの表現インデックスに対して、この表からデコーダを作るとiの表現インデックス成分が求まる。但し同じyが2つのiに対応するので、デコード出力を2つに分けてiごとにデータ出力データがバスでぶつからないように2つのバスbs1,bs2を設けている。
例えば、y=17にはi=102,221が対応するので、i=102はbs1に、i=221はbs2になるようにバスを分ける。
また、yの表現インデックスが得られない要素0の場合は、S=0がその場合を示し、i=85,170はそれぞれバスbs1,bs2になる。
実際のデコードで利用されるのは表現インデックスであり、y各表現インデックスに対して各バスbs1,bs2に出力されるiの表現インデックス成分17i(15)の値を対応させる。表現インデックス間に対応がない場合は1又は2エラーではない。
図59は、図1における加算回路30の中の一つである、有限体要素X=ay=Syの17を法とする表現インデックス成分15n(17)を計算する回路部分即ち、ay−Adder(mod17)であり、数24の合同式15n≡15σ+15i(mod17)の右辺を計算する回路である。
一方の入力1701はシンドロームSの表現インデックス成分15σ(17)である。他方の入力1702は、yの表現インデックス17yi(15),17yi(17)を先の図57及び図58のテーブルによって構成されたデコーダ1707で対応付けした表現インデックス成分15i(17)である。
入力1701の15σ(17)については、インデックスを2進表示に変換するインデックス/バイナリ変換回路1703によって変換し、入力1702の15i(17)は、2つのエラーに対応した2つの5ビット加算器1705a,1705bで加えるために、インデックスを2進表示に変換するインデックス/バイナリ変換回路1704によって変換して、2つのバスbs1,bs2にそれぞれ出力する。
これらのバスbs1,bs2の出力と、入力1701側のバイナリ出力とを、各加算器1705a,1705bで17を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ/インデックス変換回路1706a,1706bを通して、表現インデックス成分15n(17)に戻して2つのバスbus1,bus2にそれぞれ出力する。
図60は、図1における加算回路30の中の有限体要素X=ay=Syの15を法とする表現インデックス成分17n(15)を計算する回路部分、ay−Adder(mod15)であり、数24の合同式17n≡17σ+17i(mod15)の右辺を計算する回路である。
一方の入力1801はシンドロームSの表現インデックス成分17σ(15)である。他方の入力1802は、yの表現インデックス17yi(15),17yi(17)を先の図57及び図58のテーブルによって構成されたデコーダ1807で対応付けした表現インデックス成分17i(15)である。
入力1801の15σ(17)については、インデックスを2進表示に変換するインデックス/バイナリ変換回路1803によって変換し、入力1802の15i(17)は、2つのエラーのそれぞれに対応した2つの4ビット加算器1805a,1805bで加えるために、インデックスを2進表示に変換するインデックス/バイナリ変換回路1804によって変換して、2つのバスbs1,bs2にそれぞれ出力する。
これらのバスbs1,bs2の出力と、入力1801側のバイナリ出力とを、各加算器1805a,1805bで15を法とした剰余として計算する。それらの加算出力は、バイナリ信号を表現インデックスに変換するバイナリ/インデックス変換回路1806a,1806bを通して、表現インデックス成分17n(15)に戻して2つのバスbus1,bus2にそれぞれ出力する。
図61は、デコード回路1707,1807の構成である。yの表現インデックスから対応するiの表現インデックスに変換するのがこれらのデコーダyi(17)DEC,yi(15)DECである。ひとつのyに2つのiが対応してあるのでバスbs1,bs2にそれぞれiの表現インデックスを出力する。
の表現インデックス成分15yi(17),17yi(15)をゲート入力とするNAND接続によってこれらの表現インデックスを区別し、先の表に従って同じiの表現インデックス成分に対応するグループごとにNOR接続で結合している。クロックCLKでプリチャージされたノードが放電され、インバータで反転されて、iの表現インデックス成分15i(17),17i(15)がバス毎に発生される。
図62は、表現インデックスの和を加算器で計算できるように2進表示にする変換するインデックス/バイナリ変換回路1703,1704,1803,1804の回路構成である。これは先に図22で説明した回路と同じである。
図63は、yに対応するiが存在しない場合即ち、2つのエラーが解として求まらない場合を示す信号“no index 2EC(17)”,“no index 2EC(15)”を発生する回路である。インデックスが出なければインデックス/バイナリ変換回路の出力が全ビット“1”となるので、この状態を検出するNAND回路G11,G12を用いてこれらの信号発生回路が構成される。バスbs1,bs2には必ず同じ信号が発生するので、一つのバスbs1のみの状態のみをモニタすれば十分である。
図64は、各バスbus1,bus2ごとに得られたエラー位置nの表現インデックスを用いてエラー位置にエラー信号を発生するエラー位置デコード回路である。各バスbus1,bus2のnの表現インデックス成分のNAND接続をつくりこれらの表現インデックスを選択できるようにする。
ビット位置nでエラーが発生した場合のエラー位置信号n(2EC)(情報データビットとして利用するのはn=24〜254である)を発生するために、bus1,bus2の表現インデックスをNOR接続で結合し、CLKでプリチャージされたノードを放電し、さらにインバータで反転して信号とする。
図65は、2ECシステムと3ECシステムがあるこの実施の形態において、3ビットまでのエラー検索と訂正がどのような手順で進行するかをまとめて示している。基本的にはエラーのないことがまず検出され、エラーがある場合にはその探索すべきエラーの数を拡大する方向で手順が進行する。
即ちシンドローム演算の結果得られたシンドロームS,S,Sについて、S=S=S=0であれば、エラーなしを示す信号“no error”が出力され、いずれかが0でなければエラーが存在することになる。
エラーが1乃至2に対しては、2ECシステムで対応可能である。2ビットエラーの場合シンドロームS,S,Sと解X,Xとの間に、S =S+X,S =S+Xなる関係があり、t=S +S+E+F(E=S/S ,F=S /S )とおいて、x=Syなる変数変換を行い、y+y+1=A(A=S/S )を解く。
1ビット乃至2ビットエラーのとき、S=0なら、S=S=0となるので、S=0でS又はSが0でなければ、2ECシステムでは解けない。またS≠0なら、t=0であり、2ECシステムで解を求める。
2ECシステムでは1ビットエラーも解けるが、そのときの条件を見るとS =S,S =Sであり、A=1,t=0となり、2ECシステムの特別の場合に相当する。
エラーが3以上のとき、3ECシステムに移る。t≠0又は2ECシステムで解が求まらない場合、シンドロームS,S,Sと解X,X,Xとの間に、
D+ST=S +S,SD+S T=S +S(D=X+X+X,T=X)なる関係があり、x=az+Sなる変数変換を行って、z+z=T/aを解く(但し、a={(S +B)/(A+1)}1/2)。
=0ならS=S=0であるから、S≠0又はS≠0ではエラーは4つ以上あるので3ECシステムでは解けない。S≠0なら解探索を3ECシステムで行い、解が求まらない場合は4ビット以上のエラーがあることになる。
図66は、図65で説明した階層的エラー探索の分岐判定条件をまとめて示している。エラーなしでは、シンドロームS,S,Sが全て“0”であるから、各次数mのシンドローム係数(s1)(m=0〜7),(s3)(m=0〜7),(s5)(m=0〜7)が全て0であることにより、エラーなしと判定される。この判定条件を、図では、(s1=0)=1&(s3=0)=1&(s5=0)=1で示している。
2ECシステムへの移行条件は、S≠0のときt=0即ち、全次数mで(t)=1である。この判定条件は、上と同様の表記法で、(s1=0)=0&(t=0)=1である。
3ECシステムへの分岐条件は、S≠0のときt≠0又は2ECシステムで解けない場合である。従ってこの条件は、(s1=0)=0&(t=0)=0又は、no index 2EC=1である。
4エラー以上でNon−Correctableと判定されるのは、S=0でS又はS≠0、又は3ECシステムで解けない場合である。従ってその判定条件は、(s1=0)=1&(s3=0)=0/(s5=0)=0又は、no index 3EC=1である。
2ECシステムと3ECシステムによって、それぞれエラー数に応じてエラー位置が検索される。
図67は、図55に示す3ECシステムの場合のエラー位置デコード回路と、図64に示す2ECシステムの場合のエラー位置デコード回路とを統合した、各バス毎に得られるエラー位置nの表現インデックスを用いてエラー位置信号を発生するエラー位置デコード回路を示している。
2ECシステムと3ECシステムの分岐条件を判定する論理回路660を用いて、3ECシステムの場合に判定信号3EC=“1”を発生する。この判定信号3ECに基づいて、3ECシステムの放電パス(図55のデコード回路)と2ECシステムの放電パス(図64のデコード回路)とを選択している。
ビット位置nでエラーが発生した信号n(EC)(情報データビットとして利用するのはn=24〜254)を発生するために選択されたデコーダをNOR接続で結合し、CLKでプリチャージされたノードを放電し、さらに反転して出力信号とする。
図68は、エラービット位置でのデータ訂正回路を示している。先の分岐判定条件に従って、4ビット以上のエラーがある場合即ち、(s1=0)=1&(s3=0)=0/(s5=0)=0又は、no index 3EC=1の場合、NANDゲート681により、訂正不能を示すnon correctable=1が出力される。このときメモリから読み出されたデータdnはそのまま出力される。
0エラーではエラー訂正部からの信号は遮断してデータdnをそのまま出力する。1乃至3ビットのエラーの場合、各I/O部でエラーが発生していればエラーを示す信号n(EC)が1となり、2ビットパリティチェッカ683でデータdnは反転されて、データdataとなる。2ビットパリティチェッカ683は、XNOR回路と等価であり、NANDゲート682の出力が“1”のときインバータとして働く。
以上のようにこの実施の形態によると、3ビットまでのエラー訂正を数十nsの演算時間で完了することが出来、NAND型フラッシュメモリ等の性能を落とすことなく信頼性の向上が実現できる。
この発明の実施の形態による3EC−EWシステムのブロック構成を示す図である。 同実施の形態のメモリコアの構成例を示す図である。 同3EC−EWシステムのチェックビット計算に用いられるデータの多項式次数の選択表(その1)である。 同3EC−EWシステムのチェックビット計算に用いられるデータの多項式次数の選択表(その2)である。 チェックビット用パリティチェッカラダーの入力デコード回路の構成を示す図である。 同パリティチェッカラダーの構成を示す図である。 同パリティチェッカラダーに用いられる2ビットパリティチェッカの回路記号と回路構成を示す図である。 同パリティチェッカラダーに用いられる4ビットパリティチェッカの回路記号と回路構成を示す図である。 シンドロームS計算に使用されるデータビットの各次数の選択表を示す図であ。 シンドロームS用パリティチェッカラダーの入力デコード回路の構成を示す図である。 同パリティチェッカラダーの構成例を示す図である。 シンドロームS計算に使用されるデータビットの各次数の選択表を示す図であ。 シンドロームS用パリティチェッカラダーの入力デコード回路の構成を示す図である。 シンドロームS計算に使用されるデータビットの各次数の選択表を示す図であ。 シンドロームS用パリティチェッカラダーの入力デコード回路の構成を示す図である。 シンドローム多項式から表現インデックスへの変換デコード回路の中のプリデコーダを示す図である。 同じくメインデコーダを示す図である。 同じく補助的デコーダを示す図である。 GF(256)の要素多項式と表現インデックス成分の関係表(その1)を示す図である。 GF(256)の要素多項式と表現インデックス成分の関係表(その2)を示す図である。 GF(256)の要素多項式の倍数間の表現インデックスの関係を示す表である。 シンドロームの表現インデックスへのデコード部及び表現インデックスのマルチプレクサ部の構成を示す図である。 合同式計算のための加算回路A−Adder(mod17)の構成を示す図である。 同じく加算回路A−Adder(mod15)の構成を示す図である。 これらの加算回路におけるインデックスをバイナリに変換するインデックス/バイナリ変換回路の構成を示す図である。 同じくバイナリをインデックスに変換するバイナリ/インデックス変換回路の構成を示す図である。 A−Adder(mod17)における5ビット加算器の構成を示す図である。 A−Adder(mod)における4ビット加算器の構成を示す図である。 加算器に用いられるフルアダーの回路記号と回路構成を示す図である。 加算器に用いられるハーフアダーの回路記号と回路構成を示す図である。 他の合同式計算のための加算回路B−Adder(mod17)の構成を示す図である。 同じく加算回路B−Adder(mod15)の構成を示す図である。 他の合同式計算のための加算回路E−Adder(mod17)の構成を示す図である。 同じく加算回路E−Adder(mod15)の構成を示す図である。 他の合同式計算のための加算回路F−Adder(mod17)の構成を示す図である。 同じく加算回路F−Adder(mod15)の構成を示す図である。 GF(256)要素の表現インデックスと多項式係数の対応で使用される各次数での選択表(その1)を示す図である。 GF(256)要素の表現インデックスと多項式係数の対応で使用される各次数での選択表(その2)を示す図である。 要素tを係数の和として求めるパリティチェック回路の構成を示す図である。 要素BとS を係数の和として求めるパリティチェック回路の構成を示す図である。 要素Aと1を係数の和として求めるパリティチェック回路の構成を示す図である。 要素多項式の係数から表現インデックスを発生するデコード回路の中のプリデコーダを示す図である。 同じくメインデコーダを示す図である。 同じく補助的デコーダを示す図である。 他の合同式計算のための加算回路T−Adder(mod17)の構成を示す図である。 同じく加算回路T−Adder(mod15)の構成を示す図である。 他の合同式計算のための加算回路C−Adder(mod17)の構成を示す図である。 同じく加算回路C−Adder(mod15)の構成を示す図である。 他の合同式計算のための加算回路zj−Adder(mod17)の構成を示す図である。 同じく加算回路zj−Adder(mod15)の構成を示す図である。 +zの指数zとzの指数jの対応表である。 の表現インデックスとjの表現インデックス成分とデータバスの対応関係表(その1)である。 の表現インデックスとjの表現インデックス成分とデータバスの対応関係表(その2)である。 他の合同式計算のための加算回路az−Adder(mod17)の構成を示す図である。 同じく加算回路az−Adder(mod15)の構成を示す図である。 これらの加算回路におけるデコード回路の構成を示す図である。 同じくインデックスをバイナリに変換するインデックス/バイナリ変換回路の構成を示す図である。 同じくno index信号の発生回路である。 az+Sを多項式の係数の和として計算するパリティチェック回路を示す図である。 要素の多項式係数から表現インデックスを生成するデコード回路のプリデコーダ構成を示す図である。 同じくメインデコーダ構成を示す図である。 3ECシステムでエラー位置の表現インデックスからエラー位置信号を発生するデコーダの構成を示す図である。 +y+1の指数yとyの指数iの対応表である。 の表現インデックスとiの表現インデックス成分とデータバスの対応関係表(その1)である。 の表現インデックスとiの表現インデックス成分とデータバスの対応関係表(その2)である。 他の合同式計算のための加算回路ay−Adder(mod17)の構成を示す図である。 同じく加算回路ay−Adder(mod15)の構成を示す図である。 これらの加算回路におけるデコード回路の構成を示す図である。 同じくインデックスをバイナリに変換するインデックス/バイナリ変換回路の構成を示す図である。 同じくno index信号の発生回路である。 2ECシステムでエラー位置の表現インデックスからエラー位置信号を発生するデコーダの構成を示す図である。 その実施の形態のエラー探索の階層を説明するための図である。 エラー数の分岐判定条件を示す図である。 2ECシステムと3ECシステムとで統合した、エラー位置信号を発生するデコーダの構成を示す図である。 各ビットのデータエラー訂正回路を示す図である。
符号の説明
10…メモリコア、21…エンコード部、22…シンドローム演算部、23〜26…加算回路、27,28,29…パリティチェッカ、30〜34…加算回路、35…パリティチェッカ、36…No Error信号発生回路、37…Non Correctable信号発生回路、38…エラー訂正回路、40,50…パリティチェッカラダー、41,51…入力回路、42,52…共通ノード、43,53…インバータ、(101,102,201,202,…,1801,1802)…入力、(103,104,203,204,…,1803,1804)…インデックス/バイナリ変換回路、(105,205,…,1805a,1805b)…加算器、(106,206,…,1806)…バイナリ/インデックス変換回路、(107,207,…,1807)…出力。

Claims (7)

  1. BCHコードを利用して読み出しデータのエラー位置を検出し訂正するエラー検出訂正システムが搭載された半導体記憶装置であって、
    前記エラー検出訂正システムは、3ビットエラーを検出訂正可能な3ECシステムを有し、
    前記3ECシステムは、3次のエラー位置探索方程式を2以上のパラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求める
    ことを特徴とする半導体記憶装置。
  2. 前記エラー検出訂正システムは、2ビットエラーを検出訂正可能な2ECシステムを含み、
    前記2ECシステムは、2次のエラー位置探索方程式を1パラメータを導入して変数変換して、未知数のみの部分とシンドロームにより計算される部分とに分離し、予めテーブルとして求められた解の候補のインデックスとシンドロームのインデックスとの比較でエラー位置を求めるものであり、かつ、
    エラー数状況に応じて前記3ECシステムと2ECシステムの解の結果が切り換えられる
    ことを特徴とする請求項1記載の半導体記憶装置。
  3. 前記3ECシステムと2ECシステムを通して、解の候補のインデックスとシンドロームのインデックスとの間の合同式計算によりエラー位置対応インデックスを求める際に、2−1を法とする合同式を、互いに素である2−1の2因数をそれぞれ法とする二つの合同式に分けて、これら二つの合同式を並列に計算する
    ことを特徴とする請求項2記載の半導体記憶装置。
  4. −1=255を法とする合同式を、互いに素である17と15をそれぞれ法とする二つの合同式に分けて、これら二つの合同式を並列に計算する
    ことを特徴とする請求項3記載の半導体記憶装置。
  5. 前記3次のエラー位置探索方程式を、Λ(x)=(x−X)(x−X)(x−X)=x+S+Dx+T=0(但し、Sは読み出しデータ多項式を基本既約多項式で割って得られるシンドロームであり、D=X+X+X、T=X)として、これをx=az+bなる変数変換により、未知数のみの部分z+zとシンドロームにより計算される部分T/aとに分離されたz+z=T/aに変換してインデックス計算に供する
    ことを特徴とする請求項1記載の半導体記憶装置。
  6. 前記2次のエラー位置探索方程式を、Λ(x)=(x−X)(x−X)=x+Sx+X=0(但し、X=S +S/Sであり,SとSは読み出しデータ多項式を二つの基本既約多項式で割って得られるシンドローム)として、これをx=Syなる変数変換により、未知数のみの部分y+y+1とシンドロームにより計算される部分A(=S/S )とに分離されたy+y+1=Aに変換してインデックス計算に供する
    ことを特徴とする請求項2記載の半導体記憶装置。
  7. シンドロームがオール“0”ではなくかつ、2ECシステム、3ECシステムいずれでもエラー位置が求まらない場合に、エラーが4以上であることを示す警告信号を発生する警告信号発生回路を有する
    ことを特徴とする請求項2記載の半導体記憶装置。
JP2006230375A 2006-08-28 2006-08-28 半導体記憶装置 Expired - Fee Related JP4891704B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006230375A JP4891704B2 (ja) 2006-08-28 2006-08-28 半導体記憶装置
US11/845,999 US8001448B2 (en) 2006-08-28 2007-08-28 Semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006230375A JP4891704B2 (ja) 2006-08-28 2006-08-28 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2008052866A true JP2008052866A (ja) 2008-03-06
JP4891704B2 JP4891704B2 (ja) 2012-03-07

Family

ID=39236760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006230375A Expired - Fee Related JP4891704B2 (ja) 2006-08-28 2006-08-28 半導体記憶装置

Country Status (2)

Country Link
US (1) US8001448B2 (ja)
JP (1) JP4891704B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108569A (ja) * 2008-10-31 2010-05-13 Toshiba Corp メモリ装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4846384B2 (ja) * 2006-02-20 2011-12-28 株式会社東芝 半導体記憶装置
JP4836608B2 (ja) 2006-02-27 2011-12-14 株式会社東芝 半導体記憶装置
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
JP4621715B2 (ja) 2007-08-13 2011-01-26 株式会社東芝 メモリ装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007220260A (ja) * 2006-02-20 2007-08-30 Toshiba Corp 半導体記憶装置
JP2007234086A (ja) * 2006-02-27 2007-09-13 Toshiba Corp 半導体記憶装置
JP2009043385A (ja) * 2007-08-13 2009-02-26 Toshiba Corp メモリ装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3418629A (en) * 1964-04-10 1968-12-24 Ibm Decoders for cyclic error-correcting codes
US4099160A (en) * 1976-07-15 1978-07-04 International Business Machines Corporation Error location apparatus and methods
US4058851A (en) * 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
US4142174A (en) * 1977-08-15 1979-02-27 International Business Machines Corporation High speed decoding of Reed-Solomon codes
EP0096165B1 (en) * 1982-06-15 1988-06-08 Kabushiki Kaisha Toshiba Apparatus for dividing the elements of a galois field
EP0096163B1 (en) * 1982-06-15 1988-06-01 Kabushiki Kaisha Toshiba Apparatus for dividing the elements of a galois field
JPS58219852A (ja) * 1982-06-15 1983-12-21 Toshiba Corp エラ−訂正回路
US4509172A (en) * 1982-09-28 1985-04-02 International Business Machines Corporation Double error correction - triple error detection code
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4677622A (en) * 1983-06-22 1987-06-30 Hitachi, Ltd. Error correction method and system
EP0136587B1 (en) * 1983-09-06 1991-04-17 Kabushiki Kaisha Toshiba Error correction circuit
US4841300A (en) * 1986-06-18 1989-06-20 Mitsubishi Denki K.K. Error correction encoder/decoder
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
US4958349A (en) * 1988-11-01 1990-09-18 Ford Aerospace Corporation High data rate BCH decoder
JP2810397B2 (ja) * 1989-02-16 1998-10-15 キヤノン株式会社 誤り訂正装置
US5040179A (en) * 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
JP2824474B2 (ja) * 1992-02-17 1998-11-11 三菱電機株式会社 誤り訂正方式及びこの誤り訂正方式を用いた復号器
EP0563491A1 (en) * 1992-03-31 1993-10-06 International Business Machines Corporation Method and apparatus for implementing a triple error detection and double error correction code
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main memory
US5745508A (en) * 1995-11-13 1998-04-28 Tricord Systems, Inc. Error-detection code
US5710782A (en) * 1995-12-28 1998-01-20 Quantum Corporation System for correction of three and four errors
US5761102A (en) * 1995-12-28 1998-06-02 Quantum Corporation System and method for determining the cube root of an element of a galois field GF(2)
KR100213254B1 (ko) * 1996-10-18 1999-08-02 윤종용 에러 정정 방법 및 장치
US5970075A (en) * 1997-06-18 1999-10-19 Uniden San Diego Research And Development Center Inc. Method and apparatus for generating an error location polynomial table
US6199188B1 (en) * 1997-10-07 2001-03-06 Quantum Corporation System for finding roots of degree three and degree four error locator polynomials over GF(2M)
US5978956A (en) * 1997-12-03 1999-11-02 Quantum Corporation Five-error correction system
US6343367B1 (en) * 1999-03-29 2002-01-29 Maxtor Corporation Error correction system for five or more errors
US6584594B1 (en) * 1999-05-18 2003-06-24 Advanced Micro Devices, Inc. Data pre-reading and error correction circuit for a memory device
US6360348B1 (en) * 1999-08-27 2002-03-19 Motorola, Inc. Method and apparatus for coding and decoding data
US6343305B1 (en) * 1999-09-14 2002-01-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Methods and apparatus for multiplication in a galois field GF (2m), encoders and decoders using same
JP4112849B2 (ja) * 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
US7228467B2 (en) * 2003-10-10 2007-06-05 Quantum Corporation Correcting data having more data blocks with errors than redundancy blocks
JP4791831B2 (ja) * 2006-01-20 2011-10-12 株式会社東芝 半導体記憶装置
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007220260A (ja) * 2006-02-20 2007-08-30 Toshiba Corp 半導体記憶装置
JP2007234086A (ja) * 2006-02-27 2007-09-13 Toshiba Corp 半導体記憶装置
JP2009043385A (ja) * 2007-08-13 2009-02-26 Toshiba Corp メモリ装置
JP4621715B2 (ja) * 2007-08-13 2011-01-26 株式会社東芝 メモリ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010108569A (ja) * 2008-10-31 2010-05-13 Toshiba Corp メモリ装置

Also Published As

Publication number Publication date
US20080082901A1 (en) 2008-04-03
JP4891704B2 (ja) 2012-03-07
US8001448B2 (en) 2011-08-16

Similar Documents

Publication Publication Date Title
JP2007305267A (ja) 半導体記憶装置
JP4791831B2 (ja) 半導体記憶装置
JP4621715B2 (ja) メモリ装置
JP4836608B2 (ja) 半導体記憶装置
JP5259343B2 (ja) メモリ装置
JP4846384B2 (ja) 半導体記憶装置
US8069389B2 (en) Error correction circuit and method, and semiconductor memory device including the circuit
JP2010518464A (ja) 半導体記憶装置
JP4891704B2 (ja) 半導体記憶装置
TWI479317B (zh) Memory system
JP5284069B2 (ja) メモリシステム及びメモリアクセス方法
JP2014082574A (ja) 誤り検出訂正回路、及びメモリ装置
TWI459398B (zh) Memory system
US20160364293A1 (en) Apparatuses and methods for encoding using error protection codes
JP2012123600A (ja) メモリシステム及びメモリコントローラ
KR101566088B1 (ko) 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법
KR102021560B1 (ko) 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치
JP2014057203A (ja) ガロア体演算回路、及びメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees