(57)【要約】  【課題】  メモリに対して読み書きするデータの誤り訂正時の計算機負担を軽減する。  【解決手段】  メモリセルに対して４ビットのデータを読み書きする際の誤り訂正をビットグループ毎に行う。上位２ビットの各ビットグループについてはビタビ符号を用いて誤り訂正を行い、下位２ビットの各ビットグループについてはターボ符号又はＬＤＰＣ符号を用いて誤り訂正を行う。【選択図】  図１
2005078721.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルに対して読み書きするｎ（ｎ≧２）ビットのデータの誤り訂正をビットグループ毎に行うメモリ回路における誤り訂正方法であって、
前記各ビットのビット誤り確率に対応し且つ前記メモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する符号を使用して前記各ビットグループ毎に誤り訂正処理を行うことを特徴とする誤り訂正方法。
【請求項２】
請求項１に記載の誤り訂正方法において、
前記ｎビットの内の下位ビット側のビットグループに使用する符号は上位ビット側のビットグループに使用する符号よりも誤り訂正能力が高いことを特徴とする誤り訂正方法。
【請求項３】
請求項２に記載の誤り訂正方法において、
前記下位ビット側のビットグループの誤り訂正処理にターボ符号又はＬＤＰＣ符号を使用し、前記上位ビット側のビットグループの誤り訂正処理にビタビ符号を使用することを特徴とする誤り訂正方法。
【請求項４】
メモリセルに対して読み書きするｎ（ｎ≧２）ビットのデータの誤り訂正をビットグループ毎に行うメモリ回路における誤り訂正方法であって、
前記各ビットのビット誤り確率に対応し且つ前記メモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する冗長ビットの割合を前記各ビットグループに持たせて前記各ビットグループ毎に誤り訂正処理を行うことを特徴とする誤り訂正方法。
【請求項５】
請求項４に記載の誤り訂正方法において、
前記ｎビットの内の下位ビット側のビットグループの冗長ビットの割合は上位ビット側のビットグループの冗長ビットの割合よりも大きいことを特徴とする誤り訂正方法。
【請求項６】
ｎ（ｎ≧２）ビットのメモリセルを有するメモリ手段と、前記メモリセルに対して読み書きするデータの誤り訂正をビットグループ毎に行う符号化手段および復号化手段とを有するメモリ回路において、
前記ビットグループ毎の前記符号化手段および復号化手段に用いる符号は、当該ビットのビット誤り確率に対応し且つ前記メモリ手段が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する符号であることを特徴とするメモリ回路。
【請求項７】
請求項６に記載のメモリ回路において、
前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段に用いる符号は、上位ビット側のビットグループの符号化手段および復号化手段よりも誤り訂正能力が高い符号であることを特徴とするメモリ回路。
【請求項８】
請求項７に記載のメモリ回路において、
前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段にターボ符号又はＬＤＰＣ符号を用い、上位ビット側の符号化手段および復号化手段にビタビ符号を用いることを特徴とするメモリ回路。
【請求項９】
ｎ（ｎ≧２）ビットのメモリセルを有するメモリ手段と、前記メモリセルに対して読み書きするデータの誤り訂正をビットグループ毎に行う符号化手段および復号化手段とを有するメモリ回路において、
前記ビットグループ毎の前記符号化手段および復号化手段で扱う冗長ビットは、当該ビットのビット誤り確率に対応し且つ前記メモリ手段が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する割合であることを特徴とするメモリ回路。
【請求項１０】
請求項９に記載のメモリ回路において、
前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段で扱う冗長ビットの割合は、上位ビット側のビットグループの符号化手段および復号化手段に用いる冗長ビットの割合より大きいことを特徴とするメモリ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリセルに対して読み書きするデータの誤り訂正方法、並びに誤り訂正のための符号化手段および復号化手段を有するメモリ回路に関すものである。
【背景技術】
【０００２】
メモリ回路のメモリセルとして使用されるフラッシュメモリは、コントロールゲートとフローティングゲートを有し電気的に一括消去可能な不揮発性記憶素子であり、フローティングゲートへの電荷注入にはトンネル電流やホットエレクトロンが用いられる。そして、「書き込み」ではフローティングゲートに電子を注入してしきい値電圧を高い値に設定し、「消去」ではフローティングゲートから電子を放出させてしきい値電圧を低い値に設定することが行われる。
【０００３】
図１０はフラッシュメモリをメモリセルとしたＮＡＮＤ型のメモリ回路を示している。このＮＡＮＤ型においては、４０００本程度のビット線ＢＬ１〜ＢＬ４０００に接続されたメモリセルに対してデータが同時に読み書きされる。メモリセルブロック１は４０００本のストリングからなり、各ストリングの選択トランジスタＴ１，Ｔ２のゲートには選択信号線ＳＧ１，ＳＧ２が接続され、各ストリングのメモリセルＭ１〜Ｍ４のゲート（コントロールゲート）にはワード線ＷＬ１〜ＷＬ４が接続されている。なお、「ストリング」とは選択トランジスタＴ１，Ｔ２、とメモリセルＭ１〜Ｍ４の直列接続回路を指す。
【０００４】
図１１(a)は通常の２値のメモリセルに設定されたしきい値の電圧分布を示している。ワード線の電圧が０Ｖの時に、しきい値が“１”であればメモリセルに電流が流れ、“０”であれば電流が流れない。このように電流が流れるか流れないかによって、メモリセルの“１”と“０”のしきい値を判別している。したがって、この場合の１個のメモリセルは１ビットのデータを記憶している。図１１(b)は１個のメモリセルに２ビットのデータを記憶した４値しきい値の電圧分布を示す。ここでは“１１”、“１０”、“０１”、“００”の４つのしきい値（データ）に対応した電圧分布をもつ。図１１(c)は１個のメモリセルに４ビットのデータを記憶した１６値しきい値の電圧分布を示す。ここでは“１１１１”，“１１１０”，・・・・，“０００１”，“００００”の１６個のしきい値（データ）に対応した電圧分布をもつ。
【０００５】
図１２は１個のメモリセルに４ビットのデータを記憶する場合において、４０００本のビット線が存在する場合（図１０）の通常のデータ配列を示したものである。ここでは、４ビットをＸ４，Ｘ３，Ｘ２，Ｘ１と表しており、Ｘ４は最上位ビット（ＭＳＢ）、Ｘ１は最下位ビット（ＬＳＢ）である。従来では４０００本の各ビット線に対して４ビットの分解能のデータを送受信するとき、４０００×４＝１６０００ビットに対して、全て誤り確率が同等であるとして誤り訂正を行ってきた。
【０００６】
すなわち、最上位ビットであるＸ４は誤り確率が非常に小さく、最下位ビットであるＸ１は誤り確率が大きいにも拘わらず、その情報が全く考慮されておらず、各ビットＸ４，Ｘ３，Ｘ２，Ｘ１のデータが全て同等の誤り確率であるとして、１つの誤り訂正符号を使用して誤り訂正を行ってきた（特許文献１）。
【非特許文献１】特開２０００−２５１４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１は１セル２ビット以上の多値メモリに関するフラッシュメモリについてのものであり、誤り訂正機能をもつ回路に関する記載があるが、多値の各ビットに関して区別を行って誤りを訂正する記載はない。
【０００８】
このように、従来では、多値のメモリ回路において、上位ビットと下位ビットの誤り確率の違いを考慮せずに誤り訂正を行うため、例えば、最上位ビットは強力な誤り訂正をする必要がないような場合でも、全てのビットを共通に扱ってしまうために、計算機資源の効率的な利用が損なわれるという問題があった。
【０００９】
本発明の目的は、ビット毎に異なる誤り確率を考慮して誤り訂正が行われるようにして、計算機資源の効率的な利用を可能ならしめることである。
【課題を解決するための手段】
【００１０】
請求項１にかかる発明は、メモリセルに対して読み書きするｎ（ｎ≧２）ビットのデータの誤り訂正をビットグループ毎に行うメモリ回路における誤り訂正方法であって、前記各ビットのビット誤り確率に対応し且つ前記メモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する符号を使用して前記各ビットグループ毎に誤り訂正処理を行うことを特徴とする。
請求項２にかかる発明は、請求項１に記載の誤り訂正方法において、前記ｎビットの内の下位ビット側のビットグループに使用する符号は上位ビット側のビットグループに使用する符号よりも誤り訂正能力が高いことを特徴とする。
請求項３にかかる発明は、請求項２に記載の誤り訂正方法において、前記下位ビット側のビットグループの誤り訂正処理にターボ符号又はＬＤＰＣ符号を使用し、前記上位ビット側のビットグループの誤り訂正処理にビタビ符号を使用することを特徴とする。
請求項４にかかる発明は、メモリセルに対して読み書きするｎ（ｎ≧２）ビットのデータの誤り訂正をビットグループ毎に行うメモリ回路における誤り訂正方法であって、前記各ビットのビット誤り確率に対応し且つ前記メモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する冗長ビットの割合を前記各ビットグループに持たせて前記各ビットグループ毎に誤り訂正処理を行うことを特徴とする。
請求項５にかかる発明は、請求項４に記載の誤り訂正方法において、前記ｎビットの内の下位ビット側のビットグループの冗長ビットの割合は上位ビット側のビットグループの冗長ビットの割合よりも大きいことを特徴とする。
請求項６にかかる発明は、ｎ（ｎ≧２）ビットのメモリセルを有するメモリ手段と、前記メモリセルに対して読み書きするデータの誤り訂正をビットグループ毎に行う符号化手段および復号化手段とを有するメモリ回路において、前記ビットグループ毎の前記符号化手段および復号化手段に用いる符号は、当該ビットのビット誤り確率に対応し且つ前記メモリ手段が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する符号であることを特徴とする。
請求項７にかかる発明は、請求項６に記載のメモリ回路において、前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段に用いる符号は、上位ビット側のビットグループの符号化手段および復号化手段よりも誤り訂正能力が高い符号であることを特徴とする。
請求項８にかかる発明は、請求項７に記載のメモリ回路において、前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段にターボ符号又はＬＤＰＣ符号を用い、上位ビット側の符号化手段および復号化手段にビタビ符号を用いることを特徴とする。
請求項９にかかる発明は、ｎ（ｎ≧２）ビットのメモリセルを有するメモリ手段と、前記メモリセルに対して読み書きするデータの誤り訂正をビットグループ毎に行う符号化手段および復号化手段とを有するメモリ回路において、前記ビットグループ毎の前記符号化手段および復号化手段で扱う冗長ビットは、当該ビットのビット誤り確率に対応し且つ前記メモリ手段が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する割合であることを特徴とする。
請求項１０にかかる発明は、請求項９に記載のメモリ回路において、前記ｎビットの内の下位ビット側のビットグループの符号化手段および復号化手段で扱う冗長ビットの割合は、上位ビット側のビットグループの符号化手段および復号化手段に用いる冗長ビットの割合より大きいことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ビットグループ毎に当該ビットのビット誤り確率に対応し且つメモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する符号を使用して誤り訂正処理を行い、あるいはビットのビット誤り確率に対応し且つ前記メモリ回路が組み込まれたシステムが要求する誤り確率を満足するために必要十分な誤り訂正能力を有する冗長ビットの割合を前記各ビットグループに持たせて前記各ビットグループ毎に誤り訂正処理を行うで、計算機資源を有効に利用することが可能となる。また、
【発明を実施するための最良の形態】
【００１２】
本発明では、誤り確率が異なるビットに対して誤り訂正を行う場合に、誤り確率に依存した符号化を行う。すなわち、誤り確率の小さい上位ビットに対しては計算機負担の少ない符号（ビタビ符号等）を用い、誤り確率の大きい下位ビットに対しては計算機負担は大きいが訂正能力の高い符号（ターボ符号、ＬＤＰＣ符号等）を用い、それぞれ符号化を行う。このようにすることにより、全ビットに対して誤り訂正能力の高い符号を用いる従来の場合と同等の誤り訂正能力を発揮させると同時に、計算機能力を効率的に使用可能にする。以下、詳しく説明する。
【実施例１】
【００１３】
図１は本発明の実施例１のメモリ回路の構成図である。メモリセルブロック１は４０００本のストリングからなり、各ストリングの選択トランジスタＴ１，Ｔ２のゲートには選択信号線ＳＧ１，ＳＧ２が接続され、各ストリングの４値のメモリセルＭ１〜Ｍ４のゲートにはワード線ＷＬ１〜ＷＬ４が接続されている。また、１本のビット線につき、メモリセルＭ１，Ｍ２，Ｍ３，あるいはＭ４から４ビットのデータ（１６値）を読み出す為に、４つのレジスタ２〜５を有している。なお、レジスタ２〜５とビット線との間には、メモリセルのしきい値電圧に対応するワード線の電圧値を４ビットデータに変換するためのエンコーダが接続されるが、図１では省略している。各レジスタ２〜５には、Ｘ４，Ｘ３，Ｘ２，Ｘ１のビットのデータが記憶される。そして、Ｘ４のビットについては、４０００個の値が束ねて記憶され、Ｘ４に関する１つのビットグループ６が構成される。残りのＸ３，Ｘ２，Ｘ１のビットについてもそれぞれ同様のビットグループ７〜９が構成される。Ｘ１を例にとると、この４０００個の値の内の例えば８割が元のデータ、２割が誤り訂正のための冗長データである。なお、この図１ではデータ読み出しの構成についてのみ示したが、書き込みも同様な構成となる。
【００１４】
図２(a)は、模式的に各ビットに関するビットグループ化を示したものである。本実施例では、上位のＸ４，Ｘ３のビットのビットグループ６，７についてはビタビ符号（Viterbi）を用い、下位のＸ２，Ｘ１のビットのビットグループ８，９に関してはターボ（Turbo）符号又はＬＤＣＰ（Low Density Parity Check：低密度パリティ検査）符号を用いて符号化を行って、そのＸ４，Ｘ３，Ｘ２，Ｘ１のビットの各ビットグループ６〜９毎に冗長データを付加してメモリ回路に書き込み、さらにそこから読み出したデータに対してＸ４，Ｘ３，Ｘ２，Ｘ１のビットのビットグループ毎に復号化を行う。
【００１５】
図２(b)は、別の誤り訂正の例である。上位のＸ４，Ｘ３のビットのビットグループ６，７についてはビタビ符号を用い、Ｘ２のビットのビットグループ８に関してはインタリーバ２５６×２５６のターボ符号、Ｘ１のビットのビットグループ９に関してはより強力なインタリーバ１０２４×１０２４のターボ符号を用いている。インタリーバはターボ符号を使用するときに必ず用いられるもので、メモリ回路によりデータ書き込み順と読み出し順を異ならせてデータを並び替えることである。このインタリーバのサイズが大くなると、バーストエラー等に対する誤り訂正能力が大きくなる。
【００１６】
図３にターボ符号化の際の基本となる再帰的符号器１１の例を示す。１２，１３は１ビットレジスタ、１４，１５はＥＸＯＲ回路である。図３では、１ビットの入力データｘkに対して同じデータｘk＝ｙkoと冗長ビットのデータｙk1が生じて２ビットが出力する。図４に図３の再帰的符号器１１を用いたターボ符号器１６を示す。１１Ａ，１１Ｂは図３の再帰的符号器、１７はインタリーバである（文献：八嶋弘幸著、「畳み込み符号とViterbi符号」、トリケップス社、１３１頁、２０００年）。この図４では、１ビットの入力データｘkに対して同じデータｘk＝ｙkoと冗長ビットのデータｙk1，ｙk2が生じて合計３ビットが出力する。
【００１７】
図５にターボ復号器１８を示す。１９，２０は第１，第２復号器、２１はインタリーバ、２２はデインタリーバ、２３はスイッチである。このターボ復号器１８では、スイッチ２３の切り替えにより繰り返し反復を行って復号し軟判定処理を行うために、処理が非常に重くなる。
【００１８】
なお、上記のようにターボ符号を用いて符号化を行う場合は２ビットの冗長データが付加されるが、間引き処理等を行うことで、ビットグループの８割程度を元のデータ、２割程度を誤り訂正のための冗長データとすることができる。また、上記ではターボ符号を使用した符号器１６と復号器１８についてのみ説明したが、ビタビ符号を使用した符号器と復号器については周知の技術であり、説明は省略した。
【００１９】
ここで、各ビットの誤り確率について考察する。図６は、Ｘ４，Ｘ３，Ｘ２，Ｘ１の４ビットのデータを記憶するメモリセルについて、各しきい値分布に対応するビット情報を詳しく記したものである。これから、分かるように、最上位のビットＸ４は“０”から“１”、或いは、“１”から“０”に変化する境界が１個しか存在しない。また、ビットＸ３は“０”から“１”、或いは、“１”から“０”に変化する境界が３個しか存在しない。一方、ビットＸ２，Ｘ１は同様の境界が、７個および１０個である。この結果、低位のビットＸ２，Ｘ１は、“１”から“０”、或いは、“０”から“１”に変化するビット誤りが高位のビットＸ３，Ｘ４に比較してよく発生することが分かる。図７は、Ｘ４，Ｘ３，Ｘ２，Ｘ１の各ビットの誤りの確率を示した一例である。Ｘ１のビットの誤り確率は１５ＰｂとＸ４のビットの１５倍にもなっている。
【００２０】
ここで、Ｘ４，Ｘ３，Ｘ２，Ｘ１の各ビットの全てに対して同一の誤り訂正をかける場合と、下位２ビットに対しては強力な誤り訂正をかける場合の復号に必要な計算量を比較してみる。図８は通常の宇宙通信で用いられるビタビ符号Ａ、そのビタビ符号よりも強力な誤り訂正能力をもつターボ符号Ｂ、および符号化無しＣの場合のそれぞれについて、誤り確率を示したものである（文献：江藤他監修、「誤り訂正符号とその応用」、オーム社、２４９頁、１９９６年、又はC Berrou et al.,“Near Shannon Limit Error-Correctin Coding and Decoding,” ICC'93,pp.1064-1070,1993）。
【００２１】
図８において、横軸Ｅb／Noは信号のＳ／Ｎに対応し、縦軸Ｐbは誤り確率である。Ｅb／Noが大きくなると、信号のＳ／Ｎが大きくなり、誤り確率が小さくなることがわかる。そして、Ｅb／N0＝３dBにおいて、符号化無しＣの場合よりも、ビタビ符号Ａの場合の方が誤り確率は小さいことがわかる。さらに、ターボ符号Ｂの内の反復繰り返し回数が２回（Ｒ＝２）の場合がより誤り確率が小さいことがわかる。
【００２２】
図８では、Ｐ＝２×１０-3としたときのＸ４，Ｘ３，Ｘ２，Ｘ１のビットの誤り確率Ｐ，３Ｐ，７Ｐ，１５Ｐを符号化無しＣの曲線上に示した。本メモリ回路を使用するシステムにおける許される誤り確率を１０-5とすると、４ビット共通に誤り訂正を行う場合では、４ビット平均の誤り確率は６．５Ｐ（＝２６Ｐ／４）であり、この場合にビタビ符号Ａでは誤り確率を１０-5以下にすることができない。したがって、反復繰り返し回数を２回（Ｒ＝２）とするターボ符号Ｂを行う必要がある。つまり、４ビット全てに対してＲ＝２のターボ符号Ｂを用いる必要がある。
【００２３】
一方、各ビット毎に個々に誤り訂正を行う場合では、最上位ビットＸ４に対しては誤り確率はＰであり、ビタビ符号Ａにより誤り確率を１０-5以下にすることができる。また、Ｘ３に対しては誤り確率は３Ｐであり、これもビタビ符号Ａにより同様に誤り確率を１０-5以下にすることができる。しかし、Ｘ２に対しては、誤り確率は７Ｐであり、ビタビ符号Ａにより誤り確率を１０-5以下にすることができないので、反復繰り返し回数が２回のターボ符号Ｂを行う必要がある。最下位ビットＸ１も同様に、ターボ符号化Ｂを行う必要がある。結局、下位２ビットＸ２，Ｘ１に対してはターボ符号を用いて符号化を行う必要がある。
【００２４】
ビタビ符号を用いた符号化／復号化はターボ符号を用いた符号化／復号化に対して処理量が無視できる程度に小さいことが知られており（文献：江藤他監修、「誤り訂正符号とその応用」、オーム社、１６２頁、１９９６年）、４ビット全てをターボ符号を用いて誤り訂正するのに対し、上位２ビットにビタビ符号を用い、下位２ビットにターボ符号を用いて誤り訂正する方が、処理量を１／２に低減でき、計算機負担が軽くなる。
【００２５】
図９に、従来方法と本実施例のターボ符号を用いるときの処理量の比較結果を示す。本実施例はＸ４，Ｘ３，Ｘ２，Ｘ１の全てのビットにターボ符号を用いるのではなく、Ｘ２，Ｘ１のみにターボ符号を用いるので、処理量が１／２で済むことが分かる。
【００２６】
なお、以上では、誤り確率の異なるビット位置のビットグループに応じて誤り訂正の符号を使い分ける場合について説明したが、各ビットグループに同じ符号を使用し、下位ビットのビットグループほど冗長ビットの割合を多くすることによって誤り訂正能力を高めてもよい。具体的には各ビットグループ毎の符号化手段および復号化手段で扱う冗長ビットの割合を異ならせる。例えば、前記実施例の場合、全てのビットに対してターボ符号を使用し、Ｘ４，Ｘ３，Ｘ２，Ｘ１の各ビットグループ６〜９において、冗長ビットの割合をそれぞれ３％、５％、１０％、２０％とすることもできる。なお、ターボ符号の他にビタビ符号やリードソロモン符号を使用することもできる。
【図面の簡単な説明】
【００２７】
【図１】実施例１の多値メモリ回路の構成図である。
【図２】(a)、(b)は各ビットのグループ化および誤り訂正に使用する符号の説明図である。
【図３】再帰的符号器の構成図である。
【図４】ターボ符号器の構成図である。
【図５】ターボ復号器の構成図である。
【図６】４ビットのデータの説明図である。
【図７】４ビットのビット位置によるビット誤りの確率の説明図である。
【図８】ビタビ符号による場合、ターボ符号による場合、誤り訂正無しの場合の誤り確率の説明図である。
【図９】本発明と従来方法の処理量の比較図である。
【図１０】従来の多値メモリ回路の構成図である。
【図１１】(a)〜(c)はメモリセルのしきい値の電圧分布の特性図である。
【図１２】従来の各ビットを等しく取り扱うことによる多値メモリの符号化方式の説明図である。
【符号の説明】
【００２８】
１：メモリブロック
２〜５：レジスタ
６〜９：ビットグループ
１１，１１Ａ，１１Ｂ：再帰的符号化器
１２，１３：レジスタ
１４，１５：ＥＸＯＲ回路
１６：ターボ符号器
１７：インタリーバ
１８：ターボ復号器
１９，２０：復号器
２１：インタリーバ
２２：デインタリーバ
２３：スイッチ
【図１】
2005078721.tif 000003
【図２】
2005078721.tif 000004
【図３】
2005078721.tif 000005
【図４】
2005078721.tif 000006
【図５】
2005078721.tif 000007
【図６】
2005078721.tif 000008
【図７】
2005078721.tif 000009
【図８】
2005078721.tif 000010
【図９】
2005078721.tif 000011
【図１０】
2005078721.tif 000012
【図１１】
2005078721.tif 000013
【図１２】
2005078721.tif 000014