JP2014116659A - 誤り検出訂正回路、及び半導体記憶装置 - Google Patents

誤り検出訂正回路、及び半導体記憶装置 Download PDF

Info

Publication number
JP2014116659A
JP2014116659A JP2012267082A JP2012267082A JP2014116659A JP 2014116659 A JP2014116659 A JP 2014116659A JP 2012267082 A JP2012267082 A JP 2012267082A JP 2012267082 A JP2012267082 A JP 2012267082A JP 2014116659 A JP2014116659 A JP 2014116659A
Authority
JP
Japan
Prior art keywords
data
circuit
code
code data
encoding
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.)
Pending
Application number
JP2012267082A
Other languages
English (en)
Inventor
Daisuke Fujiwara
大輔 藤原
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.)
Samsung R&D Institute Japan Co Ltd
Original Assignee
Samsung R&D Institute Japan Co Ltd
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 Samsung R&D Institute Japan Co Ltd filed Critical Samsung R&D Institute Japan Co Ltd
Priority to JP2012267082A priority Critical patent/JP2014116659A/ja
Publication of JP2014116659A publication Critical patent/JP2014116659A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

【課題】システムの回路規模を増大させずに、符号化処理の時間を短縮することが可能となる、誤り検出訂正回路、及び誤り検出訂正回路を備えた半導体記憶装置を提供する。
【解決手段】誤り検出訂正回路13における偶数パリティ生成回路102は、生成した加工データQ(x)が0または1のうち一方の場合、ガロア体GF(2)上において、第1の符号データR(x)の各ビットを用いて表される{(2^−1)−(2^(m−1)+第1の符号データR(x)のビット数×m+加工データのビット数)}個のデータのうちから、0または1のうち他方のデータを選択して第1の符号データR(x)に加算して第2の符号データR’(x)を生成する。一方、偶数パリティ生成回路102は、生成した加工データQ(x)が0または1のうちの他方の場合、第1の符号データR(x)を第2の符号データR’(x)とする。
【選択図】図2

Description

本発明は、誤り検出訂正回路、及び誤り検出訂正回路を備えた半導体記憶装置に関する。
データ転送の際、データ転送の信頼性を向上させるため、送信側で情報データに検査データ(パリティデータ)を付加して送り、受信側で検査データをもとに誤りビットを訂正する方式が採られている。このような誤り訂正の方式のうち、BCH符号にパリティデータが付加された誤り訂正符号を用いる誤り訂正方式が、例えば下記特許文献1に開示されている。
BCH符号を用いた誤り訂正では、訂正可能ビット数以上の誤りビットが発生する場合、ビット訂正が正しく行なわれず誤った訂正をしてしまうことがある。この誤った訂正を少なくするため、送信側では、BCH符号に、更に例えば1ビットのパリティを付加し、受信側では、訂正後のデータとパリティビットとのパリティチェックを行い、正しく訂正できたか否かを判定している。このようにして、パリティビットを用いない誤り訂正に比べ、誤った訂正を少なくできる。
特開平3−88431号公報
しかしながら、送信側では、情報データ(以下、情報データP(x)とする)に検査データ(以下、第1の符号データR(x)とする)を付加した符号語(情報データP(x)+第1の符号データR(x))をもとに加工したデータ(上記説明ではパリティビット;以下加工データQ(x)とする)を再度訂正対象とする。そのため、送信側では、加工データQ(x)を算出後に、再度、(情報データP(x)+第1の符号データR(x)+加工データQ(x))の符号化の計算処理を行う必要が生じてしまう。
図6は、符号化後の加工データを再度訂正対象とする場合のBCH符号を利用したシステムの従来例を示す図である。
図6(a)に示すシステムは、符号化回路(Encoder)91e(以下、符号化回路91eとする)と、Even(Odd) Parity生成回路92(以下偶数パリティ生成回路92とする)から構成される。
符号化回路91eは、情報データP(x)に対して符号化計算を行い、第1の符号データR(x)を生成する。
偶数パリティ生成回路92は、情報データP(x)に第1の符号データR(x)を付加した符号語P(x)+R(x)から、偶数パリティである加工データQ(x)を生成する。なお、Q(x)は奇数パリティであってもよいので、偶数パリティ生成回路92をEven(Odd) Parity生成回路92としているが、以下では、符号語P(x)+R(x)から生成するパリティは偶数パリティであるものとする。
図6(a)に示すシステムでは、この偶数パリティである加工データQ(x)を、更に訂正の対象とするため、符号化回路91eに、情報データP(x)+第1の符号データR(x)+加工データQ(x)が入力され、符号化計算が行われる。符号化回路91eは、符号化計算を再度行ない、情報データP(x)+第1の符号データR(x)+加工データQ(x)+第2の符号データR’(x)を生成する。
このように、図6(a)に示すシステムでは、回路規模はそれほど増大しないが、符号化処理のための処理時間がほぼ2倍となり、システムが複雑となる。
この符号化処理時間の増大を抑制するため、図6(b)に示すシステムでは、符号化回路91eを2個備えている。図6(b)に示すシステムでは、偶数パリティ生成回路92の後段に符号化回路91eが設けられる。
この符号化回路91eは、図6(a)に示すシステムと同様に、情報データP(x)+第1の符号データR(x)+加工データQ(x)が入力され、符号化計算を行ない、情報データP(x)+第1の符号データR(x)+加工データQ(x)+第2の符号データR’(x)を生成する。
このように、図6(b)に示すシステムでは、符号化処理のための処理時間の増大を抑制できるものの、符号化処理のための符号化回路を2個用意する必要が生じ、システムを構成する回路の規模が増大するという問題がある。
そこで本発明が解決しようとする課題は、システムの回路規模を増大させずに、符号化処理の時間を短縮することが可能となる、誤り検出訂正回路、及び誤り検出訂正回路を備えた半導体記憶装置を提供することにある。
本発明の誤り検出訂正回路は、符号化時に、情報長が2^(m−1)ビットの情報データを生成多項式により除算し、複数ビットの第1の符号データを算出する符号化回路と、前記情報データと前記第1の符号データとから加工データを生成し、生成した前記加工データが0または1のうち一方の場合、ガロア体GF(2)上において、前記第1の符号データの各ビットを用いて表される{(2^−1)−(2^(m−1)+前記第1の符号データのビット数×m+加工データのビット数)}個のデータのうちから、0または1のうち他方のデータを選択して前記第1の符号データに加算して第2の符号データを生成し、一方、生成した前記加工データが0または1のうちの他方の場合、前記第1の符号データを前記第2の符号データとするデータ加工回路と、を備えることを特徴とする。
また、本発明の誤り検出訂正回路において、前記加工データは偶数パリティであって、前記第1の符号データに加算されるデータは、1の個数が偶数個のデータである、ことを特徴とする。
また、本発明の誤り検出訂正回路において、前記符号化回路は、復号化時に、前記情報データと、前記第2の符号データと、前記加工データとを前記生成多項式により除算し、第3の符号データを算出し、前記第3の符号データを最小多項式により除算し、シンドロームを算出するシンドローム生成回路と、前記シンドロームからエラー位置探索方程式の係数を算出する係数計算回路と、前記エラー位置探索方程式に、前記情報データ、前記第2の符号データ、及び前記加工データの各ビットの位置を示すアドレス値を代入して、各ビットに誤りがあるか否かを検出する誤り位置探索回路と、を更に有する、ことを特徴とする。
また、本発明の半導体記憶装置は、上記に記載の誤り検出訂正回路を備え、外部から書き込まれる前記情報データ、前記符号化回路が生成する前記第2の符号データ、及び前記データ加工回路が加工する前記加工データがそれぞれセクタデータとして1ページに書き込まれる不揮発性半導体記憶装置であって、復号化時における前記情報データを前記誤り検出訂正回路の検出結果に基づいて誤り訂正して出力する、ことを特徴とする。
本発明の誤り検出訂正回路では、データ加工回路において、情報データと第1の符号データとから生成した加工データの論理(0または1のうち一方の場合)に応じて、第1の符号データを第2の符号データへと変換している。そのため、情報データ、第2の符号データ、及び加工データを、再度符号化回路に入力する必要がなくなり、加工データを再度符号化することなく、情報データ、第2の符号データ、及び加工データを復号化する際の訂正対象とすることができる。これにより、本発明によれば、システムの回路規模を増大させずに、符号化処理の時間を短縮することが可能となる、誤り検出訂正回路、及び誤り検出訂正回路を備えた半導体記憶装置を提供することができる。
不揮発性半導体記憶装置10であるNAND型フラッシュメモリの構成例を示す概略ブロック図である。 本実施形態における誤り訂正回路13のブロック構成を示す図である。 符号化後の加工データを再度訂正対象とする場合のBCH符号を利用したシステムの実施例を示す図である。 符号化回路101の回路構成を説明するための図である。 偶数パリティ生成回路102の回路構成を説明するための図である。 符号化後の加工データを再度訂正対象とする場合のBCH符号を利用したシステムの従来例を示す図である。
以下、図面を参照して、本発明の実施の形態について説明する。まず、本発明の誤り検出訂正回路を備える半導体記憶装置の概略構成について説明し、それから、誤り検出訂正回路の構成について説明する。
[メモリ装置の構成]
図1は、不揮発性半導体記憶装置10であるNAND型フラッシュメモリの構成例を示す概略ブロック図である。
不揮発性半導体記憶装置10は、メモリセルアレイ11、ページバッファ12、誤り検出訂正回路13、バッファ14、I/Oパッド15、制御回路16、アドレスデコーダ17、及びロウ及びブロックデコーダ18を含んで構成される。
メモリセルアレイ11は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル(記憶素子)をカラム方向(列方向)に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向(ビット線の配列方向)に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、不揮発性メモリセル(以下、メモリセルと呼ぶ)のデータの消去単位で設けられている。各ブロックにおいては、同一行に配置されたメモリセル各々のゲートには、ビット線に直行したワード線が接続される。
1本のワード線により選択されるメモリセルの範囲がプログラム及び読み出しの単位となる1ページである。
ページバッファ12は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファ回路から構成されている。このページバッファ12におけるページバッファ回路各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。
ページバッファ12(データ格納部)は、不揮発性半導体記憶装置10のデータ読み出し動作において、メモリセルアレイ11の1ページ分のメモリセルが記憶するデータ(データ列)からなるセルデータCell Dataが入力され、このデータを増幅して誤り検出訂正回路13に対して出力する。一方、ページバッファ12は、不揮発性半導体記憶装置10のデータ書込み(プログラム)動作において、誤り検出訂正回路13から供給されるデータを内部のラッチ回路に格納し、ベリファイ動作を行いつつ、全てのデータを符号データCode Dataとして1ページ内のメモリセルに書き込む。
この符号データCode Dataには、誤り検出訂正回路13が生成するパリティデータParity、及び偶数パリティが含まれる。なお、本実施形態において、例えば情報長32Byte (バイト)に対しBCH符号を用いて4Bit(ビット)訂正を行う誤り訂正システムを例に取るとき、1ページは、2K(=2048)バイト、すなわち、16k(=16384)ビットの通常データを各々記憶するメモリセルと、2304ビットのパリティデータを各々記憶するメモリセルと、後述する偶数パリティを各々記憶するメモリセルを含んで構成される。すなわち、セルデータCell Data、及び符号データCode Dataは、(16k+2304+64)ビットから構成される。
また、1ページは、誤り検出訂正回路13の訂正の単位として、例えば64個のセクタに分割されている。つまり、1セクタに対応するデータは、32バイト(=256ビット)の通常データ、36ビットのパリティデータ、及び1ビットの偶数パリティを含んで構成される。
また、本実施形態において、メモリ外部よりのアクセスは、通常メモリに対して対応するカラムアドレスY[13:0]を入力することにより行われる。パリティデータ、偶数パリティは、不揮発性半導体記憶装置10の内部において通常データの訂正用に付加される内部データであり、外部からは直接アクセスされることはない。
誤り検出訂正回路13は、詳細については後述するが、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、エラー位置探索方程式の係数を算出し、内部のラッチに保持する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビットのデータの誤りを訂正し、バッファ14に書き込む。このバッファ14に書き込まれた訂正後のデータは、書き込み後において再びバッファ14をアクセスすることにより、I/Oパッド15を介して訂正済データCorrected Dataとして外部へ出力される。なお、I/Oパッド15と誤り検出訂正回路13との間に入出力回路を設けて、この入出力回路を介して外部へデータを出力してもよい。
また、誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ書き込み動作において、I/Oパッド15から入力される情報データInformation Dataを、バッファ14を介して受け取る。誤り検出訂正回路13は、受け取った情報データInformation DataからパリティデータParityを生成するとともに、受け取った情報データInformation Data、パリティデータParity、及び偶数パリティをページバッファ12に対して出力する。ページバッファ12は、これらのデータを符号データCode Dataとして、選択されているページに接続されるメモリセルに書き込む。
なお、詳細は後述するが、誤り検出訂正回路13からページバッファ12を介してメモリセルアレイ11に書き込まれるセクタデータ(1セクタに対応するデータ)は、誤り検出訂正回路13では、下記のデータに対応する。不揮発性半導体記憶装置10のデータ書き込み動作においては、セクタデータは、以下のデータを含んで構成される。すなわち、セクタデータは、メモリセルへの書き込みデータである情報データP(x)を含んで構成される。また、セクタデータは、加工データQ(x)を含んで構成される。ここで、加工データQ(x)とは、情報データP(x)と誤り検出訂正回路13において情報データP(x)に基づいて符号化(Encode)されたパリティデータである第1の符号データR(x)とから加工された偶数パリティである。また、セクタデータは、誤り検出訂正回路13が、加工データQ(x)の0または1に応じて、第1の符号データR(x)から生成する第2の符号データR’(x)を含んで構成される。
一方、不揮発性半導体記憶装置10のデータ読み出し動作においては、セクタデータは、メモリセルからの読み出されたデータである、情報データP(x)、第2の符号データR’(x)、加工データQ(x)を含んで構成される。そして、誤り検出訂正回路13においては、このセクタデータから、このセクタデータのうちに誤りビットがあるか否かを示す第3の符号データR’’(x)が生成される。
制御回路16は、各種制御信号が入力され、メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。
例えば、制御信号は、外部クロック信号、チップイネーブル信号/CE、読み出しイネーブル信号/RE、プログラムイネーブル信号/WE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号/WPなどである。制御回路16は、これらの制御信号と、I/Oパッド15から入力されるコマンドデータとが示す動作モードに応じて、各回路に対して内部制御信号を出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にコマンドラッチイネーブル信号CLEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からコマンドデータを取り込み、内部のレジスタに保持する。
アドレスデコーダ17は、I/Oパッド15から入力されるアドレス(ロウアドレス、ブロックアドレス、カラムアドレス)を制御回路16からの内部制御信号に基づいて保持する。また、アドレスデコーダ17は、保持したアドレスを、制御回路16からの内部制御信号に基づいて、ロウ及びブロックデコーダ18、ページバッファ12、及び誤り検出訂正回路13へ出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にアドレスラッチイネーブル信号ALEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からアドレスを取り込み、アドレスデコーダ17の内部レジスタに保持する。
ロウ及びブロックデコーダ18は、アドレスデコーダ17が保持し、出力するロウアドレス、及びブロックアドレスに応じて、メモリセルアレイ11のブロック、及びワード線の選択を行い、1ページ上のメモリセルを選択する。
また、アドレスデコーダ17は、内部に保持するカラムアドレスに応じて、メモリセルアレイ11のビット線及びページバッファ12の選択を行う。
本実施形態において、データ読み出し動作においては、ページバッファ12内のセルデータCell Dataが誤り検出訂正回路13に読み出され、エラー位置探索方程式の係数がセクタ毎に計算される。そして、セクタ毎に計算された係数とカラムアドレスとに応じて、カラムアドレスにより位置が示されるビットのデータ、すなわちメモリセルのデータ(16kビット)に誤りがあるか否かが検出され、誤りがある場合は訂正されて、バッファ14に書き込まれる。このバッファ14に書き込まれた訂正後のデータは、書き込み後において再びバッファ14をアクセスすることにより、訂正済データCorrected DataとしてI/Oパッド15から出力される。
また、データ書き込み動作においては、バッファ14にいったんページバッファ12内に格納されたセルデータCell Dataが読み出される。バッファ14は、例えばSRAM(Static Random Access Memory)により構成される。
バッファ14では、セルデータCell Dataのうち、入力されるカラムアドレスに対応する部分のデータが、I/Oパッド15からのデータInformation Dataに書き換えられる。また、誤り検出訂正回路13では、バッファ14の書き換え後のデータを含む1セクタ分のデータに対応したパリティデータが算出される。そして、これらのパリティデータを含む64セクタ分のデータが、符号データCode Dataとして、ページバッファ12を介して選択されているページに書き込まれる。
次に、図2は、本実施形態における誤り検出訂正回路13のブロック構成を示す図である。本実施形態では、GF(2)のガロア体(m=9)を利用し、4ビットの誤りが訂正可能なBCH符号を用いた誤り検出、及び誤りの訂正が可能な誤り検出訂正回路を例にとって説明する。また、本実施形態では、この誤り検出訂正回路を不揮発性半導体記憶装置10に応用した場合を想定しており、この場合、セクタサイズ(セクタデータのサイズ)は293ビット(内訳はデータ長が256ビット、BCHパリティが36ビット、偶数または奇数パリティが1ビット)である。
図2に示す誤り検出訂正回路13は、符号化回路Divide by G(x)101(以下、符号化回路101とする)、Even(Odd) Parity生成回路102、シンドローム生成回路103、係数計算回路104、及び誤り位置探索回路(Chien Search)105(以下、誤り位置探索回路105とする)から構成される。
符号化回路101は、情報データP(x)の符号化、(情報データP(x)+第2の符号データR’(x)+加工データQ(x))の復号化を行なう。符号化回路101は、符号化、及び復号化を共通に行なう回路であり、排他的論理和(Exclusive−Or)回路(以下、EXOR回路という)の組合せにより、生成多項式G(x)の除算を実現する回路である(詳細後述)。なお、生成多項式G(x)は、最小多項式M1(x)、M3(x)、M5(x)、M7(x)を用いて、積算を「*」で表わすものとすると、G(x)=M1(x)*M3(x)*M5(x)*M7(x)と表される。
図2に示す符号化回路101は、符号化時において、256ビットの情報データP(x)の符号化を行い、第1の符号データR(x)を生成し、(情報データP(x)+第1の符号データR(x))をEven(Odd) Parity生成回路102に対して出力する。また、符号化回路101は、復号化時において、293ビットのセクタデータ(情報データP(x)+第2の符号データR’(x)+加工データQ(x))の復号化を行ない、第3の符号データR’’(x)をシンドローム生成回路103に対して出力する回路である。
Even(Odd) Parity生成回路102は、情報データP(x)と符号化回路101が生成した第1の符号データR(x)とから、本実施形態では、偶数パリティである加工データQ(x)を生成する。なお、Even(Odd) Parity生成回路102が生成する加工データQ(x)は、例えば奇数パリティであってもよい。また、加工データQ(x)は、1ビットである必要はなく、2ビット以上であってもよい。また、本実施形態では、加工データQ(x)は偶数パリティとし、Even(Odd) Parity生成回路102を、以下、偶数パリティ生成回路102と呼ぶものとする。
また、偶数パリティ生成回路102は、加工データQ(x)が0であるか1であるかに応じて、を生成する(詳細後述)。
そして、偶数パリティ生成回路102が生成した加工データQ(x)、及び第2の符号データR’(x)は、符号化回路101に入力された情報データP(x)と併せて、293ビットのセクタデータ(情報データP(x)+第2の符号データR’(x)+加工データQ(x))となる。このセクタデータは、上述の様に、不揮発性半導体記憶装置10のデータ書き込み動作において、ページバッファ12を介して、ワード線により選択されている複数のメモリセルへ書き込まれる。なお、ページバッファ12とは、上述の様に、ビット線に接続され、ビット線を介してメモリセルからのデータをラッチして増幅し、或いはメモリセルへの書き込みデータをラッチし、ビット線を介してメモリセルへデータを書き込む回路である。
また、このデータ書き込み動作においてメモリセルに書き込まれたセクタデータは、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12を介して、符号化回路101に入力される。符号化回路101は、このセクタデータから第3の符号データR’’(x)を算出し、シンドローム生成回路103に対して出力する。
シンドローム生成回路103は、復号化時において符号化回路101が生成した第3の符号データR’’(x)を、最小多項式で除算することにより、シンドロームを生成する。シンドローム生成回路103は、s1 Divide by M1(x)103a(以下、シンドローム生成回路103a)、s3 Divide by M3(x)103b(以下、シンドローム生成回路103b)、s5 Divide by M5(x)103c(以下、シンドローム生成回路103c)、及びs7 Divide by M7(x)103d(以下、シンドローム生成回路103d)の4個のシンドローム生成回路103a〜103dを有する。
シンドローム生成回路103aは、生成多項式G(x)を最小多項式M1(x)で除算してシンドロームs1を生成する。シンドローム生成回路103bは、生成多項式G(x)を最小多項式M3(x)で除算してシンドロームs3を生成する。シンドローム生成回路103cは、生成多項式G(x)を最小多項式M5(x)で除算してシンドロームs5を生成する。シンドローム生成回路103dは、生成多項式G(x)を最小多項式M7(x)で除算してシンドロームs7を生成する。
係数計算回路104は、シンドローム生成回路103が生成したシンドロームs1、s3、s5、s7からエラー位置探索方程式の係数e0(x)、e1(x)、e2(x)、e4(x)を算出し、算出したエラー位置探索方程式の係数を後段の誤り位置探索回路105に対して出力する。
誤り位置探索回路105は、エラー位置探索方程式に上記293ビットのセクタデータを構成する各ビットの位置を示す値(アドレス値)が入力されると、各ビットに誤りが有るか否かを判定し、つまり誤り位置の特定を行ない、検出信号Zを生成する。この検出信号が、図2に示す293ビットの検出信号Z[292:0]である。なお、検出信号Z[292:0]は、図2において不図示の訂正回路に入力され、情報データP(x)のうち誤りのあるビットのデータが、この検出信号に基づいて反転され、バッファ14に書き込まれる。
次に、本願の特徴的部分である加工データを再度符号化することなく訂正対象とするシステム構成について説明する。ここで、再度符号化することなく訂正対象とするとは、誤り検出訂正回路において、情報データP(x)、第1の符号データR(x)、及び加工データQ(x)を符号化回路101の符号化に係る部分に再度入力することなく、符号化回路101の復号化に係る部分に代入できる、すなわち誤り検出及び訂正の対象とできることを意味している。
図3は、符号化後の加工データを再度訂正対象とする場合のBCH符号を利用したシステムの実施例を示す図である。
ここでは、情報データP(x)の符号化に係る部分について説明するので、図3においては、図2に示す符号化回路101を符号化回路(Encoder)101e(以下、符号化回路101eとする)で示している。
図3において、情報データP(x)の符号化に係る部分は、符号化回路101eと、図2に示す偶数パリティ生成回路102と、から構成される。
符号化回路101eは、256ビットの情報データP(x)が入力され、36ビットの第1の符号データR(x)を生成する。36(=4m=4×9)ビットの第1の符号データR(x)は、BCH符号におけるパリティデータである。
偶数パリティ生成回路102は、292(=256+36)ビットの情報データP(x)、及び第1の符号データR(x)から、1ビットの偶数パリティである加工データQ(x)(以下、偶数パリティQ(x)と言うこともある)を生成する。
また、偶数パリティ生成回路102は、加工データQ(x)が0か1のいずれかに応じて、第1の符号データR(x)から第2の符号データR’(x)を生成する。
偶数パリティ生成回路102は、加工データQ(x)が1のとき、第1の符号データR(x)に未使用データEz(x)を加算して、第2の符号データR’(x)を生成する。一方、偶数パリティ生成回路102は、加工データQ(x)が0のとき、第1の符号データR(x)を、そのまま第2の符号データR’(x)とする。
ここで、未使用データEz(x)は、符号化回路101eにおいて、生成多項式G(x)での除算をEXOR回路の組み合わせで実現した回路が出力するデータE(x)={E0(x),E1(x),…,E2^−2(x),E2^−1(x)}のうち、未使用の回路が生成するデータ(未使用項)である。
GF(2)のガロア体(m=9)を利用した本実施形態において、符号化回路101eにおける符号化時において訂正対象となるビットは293ビットであるので、E(x)={E0(x),E1(x),…,E509(x),E510(x)}のうち、使用されるEXOR回路が生成するデータは、E(x)={E0(x),E1(x),…,E291(x),E292(x)}となる。つまり、E(x)は、使用されるEXOR回路が生成する、各項36ビットで表記される{E0(x),E1(x),…,E291(x),E292(x)}のデータの集合体である。ここで、Ez(x)としては、未使用のEXOR回路が出力するデータ{E293(x),…,E510(x)}のうちから、EO Parity(ここでは偶数パリティ)が0の項、すなわち1の数が偶数個のEz(x)を選択する。
次に、パリティ生成回路102が行うEz(x)の選択動作について、図4、及び図5を用いて詳細に説明する。
図4は、符号化回路101の回路構成を説明するための図である。また、図5は、偶数パリティ生成回路102の回路構成を説明するための図である。
図4は、生成多項式G(x)での除算を、EXOR回路の組み合わせで実現した符号化回路101をイメージした図であり、符号化(Encode)と復号化(Decode)の計算回路を共用する時の符号化回路101の特徴を示している。
図4では、縦方向にBCH符号におけるパリティデータである、符号化時の第1の符号データR(x)または復号化時の第3の符号データR’’(x)(以下、ここでは単に符号データR(x)とする)の36ビットを表しており、横方向に、情報データP(x)を表している。実際には、情報データP(x)を含むセクタデータ(復号化時に符号化回路101に入力されるデータ)は、293ビット目まで存在することになるが、ここでは省略して57ビット目までを示している。
図4において値が「1」の部分が、排他的論理和(EXOR)の計算に寄与する箇所である。例えば、図4によりイメージした図に従って、符号化回路101での符号データR(x)を生成するEXOR回路の組合せ回路各々は、RTL(Register Transfer Level)記述を用いて、以下の様に情報データP(x)が割り当てられて構成される。なお、演算記号「^」は排他的論理和演算を示す。
assign R(35)=P(35)^P(36)^P(37)^P(39)^P(43)^P(46)^P(48)^P(49)^P(51)^P(54)^…、
assign R(34)=P(34)^P(36)^P(37)^P(39)^P(41)^P(42)^P(46)^P(52)^P(54)^P(56)^…、
…、
…、
…、
assign R(0)=P(0)^P(37)^P(38)^P(39)^P(41)^P(48)^P(54)^P(55)^…、
である。
また、図4に示すイメージ図では、符号化回路101の復号化時の入力データである復号化時の293ビット(セクタデータ)は、図4に示す”1”のビット位置に相当するパターンをEXOR回路により排他的論理和(EXOR)で足し合わせていくものである。
例えば、図4の36ビット目に相当するデータE36(x)は、36ビットのバイナリ表示で、E36(x)=36‘b111110110000011001100101110110100010である。また、37ビット目のデータE37(x)は、36ビットのバイナリ表示で、E37(x)=36’b110000101100000011101000001010101011である。このように、符号化回路101では、図5に示すイメージに従い、E0(x),E1(x),…,E509(x),E510(x)のデータが生成される。これらのデータそれぞれは、ビット位置特有のデータを成しており、このデータとビット位置とを紐づけることで、図2に示す誤り位置探索回路105において、各ビットの誤りを特定することができる。本実施形態の誤り訂正回路、及び半導体メモリに使用する場合、E(x)は各項36ビットで表記される{E0(x),E1(x),…,E291(x),E292(x)}のデータの集合体は、セクタデータを演算するEXOR回路が生成するデータの集合体である。一方、{E293(x),…,E510(x)}は、セクタデータの演算に係らない、つまり未使用のEXOR回路が生成するデータの集合体となる。
本実施形態では、符号化回路101eでの符号化後に、偶数パリティ生成回路102において加工した加工データQ(x)、すなわち偶数パリティを未使用のデータの集合体{E293(x),…,E510(x)}と紐づけることにより訂正対象とする。
そのため、偶数パリティ生成回路102に、図5において論理演算を示す回路を組み込む。図5において、R[35:0]は第1の符号データ(x)を、R_Pre[35:0]は第2の符号データR’(x)を、EOParityは加工データQ(x)をそれぞれ示す。図5に示す様に、偶数パリティが1の場合、未使用項であるE293(x)をBCH符号のパリティデータ(第1の符号データR(x))に付加して、第2の符号データR’(x)を生成する。一方、偶数パリティが0の場合、第1の符号データR(x)をそのまま、第2の符号データR’(x)とする。
ここで、本実施形態の様に、符号化後の加工データQ(x)が偶数パリティの場合、偶数パリティが0(1の個数が偶数個)のパターンを選ぶ必要がある。なお、奇数パリティの場合、奇数パリティが1(1の個数が奇数個)のパターンを選べばよい。本実施形態では、E293(x)は、偶数パリティが0のパターンであるが、もし異なる場合(1である場合)、{E293(x),・・・,E510(x)}の集合体の中から、1の個数が偶数個である、すなわち0であるという条件に当てはまるデータを選択する必要がある。
これにより、符号化回路101eの符号化後のデータ(入力データである情報データP(x)+BCH符号のパリティデータである第1の符号データR(x))を加工した加工データQ(x)(本実施形態では偶数パリティ)を再度符号化することなく、情報データP(x)、第2の符号データR’(x)、及び加工データQ(x)を誤り訂正対象とすることが出来る。すなわち、加工データをQ(x)と情報データP(x)、第1の符号データR(x)とを、符号化(Encode)時に、再度符号化回路101eに入力する必要がない。これにより、符号化時間を半分にすることが出来る。
例えば、GF(2)のガロア体を利用し、4ビットの誤りが訂正可能なBCH符号を用いた誤り検出訂正回路を搭載したページサイズ2kバイトの半導体メモリについて考察を行う。この半導体メモリでのセクタサイズが256ビットであるとすると、2kバイトでは64回の繰り返し処理が符号化処理において必要とある。例えば、クロック周波数40nsec(ナノ秒)で動作させる場合、再度符号化を行うと、2.56μsec(マイクロ秒)の時間だけ符号化処理の時間が延びてしまう。これに対して、本発明の誤り訂正回路では2.56μsecが短縮できる。また、処理時間の短縮に際して、上述したように、従来技術の様に符号化回路を2個にする必要はないため、回路規模の増大を抑制できる。
このように、本発明の誤り検出訂正回路13は、符号化時に、情報長が2^(m−1)ビット(本実施形態ではm=9)の情報データを生成多項式G(x)により除算し、複数ビット(=m×4ビット)の第1の符号データR(x)を算出する符号化回路101を有する。また、誤り検出訂正回路13は、情報データP(x)と第1の符号データR(x)とから加工データQ(x)を生成する偶数パリティ生成回路102(データ加工回路)を備える。偶数パリティ生成回路102は、生成した加工データQ(x)が0または1のうち一方の場合(本実施形態では偶数パリティが1の場合)、ガロア体GF(2)上において、第1の符号データR(x)の各ビットを用いて表される{(2^−1)−(2^(m−1)+第1の符号データのビット数×m+加工データのビット数)}個のデータ(511−(256+4×9+1)=511−293個のデータ{E293(x)、…、E510(x)})のうちから、0または1のうち他方のデータ(本実施形態では0、すなわち1が偶数個データEz(x)=E293)を選択して第1の符号データR(x)に加算して第2の符号データR’(x)を生成する。一方、偶数パリティ生成回路102は、生成した加工データQ(x)が0または1のうちの他方の場合(本実施形態では0の場合)、第1の符号データR(x)を第2の符号データR’(x)とする。
また、上記説明において、誤り検出訂正回路13において、加工データQ(x)は偶数パリティであって、第1の符号データR(x)に加算されるデータは、1の個数が偶数個のデータである。
また、符号化回路101は、復号化時に、情報データP(x)と、第2の符号データR’(x)と、加工データQ(x)とを生成多項式G(x)により除算し、第3の符号データR’’(x)を算出し、第3の符号データR’’(x)を最小多項式M1(x)、M3(x)、M5(x)、M7(x)により除算し、それぞれシンドロームs1、s3、s5、s7を算出するシンドローム生成回路103と、シンドロームs1、s3、s5、s7からエラー位置探索方程式の係数を算出する係数計算回路104と、エラー位置探索方程式に、情報データP(x)、第2の符号データR’(x)、及び加工データQ(x)の各ビットの位置を示すアドレス値を代入して、各ビットに誤りがあるか否かを検出する誤り位置探索回路105と、を更に有する。
また、本発明の半導体記憶装置は、誤り検出訂正回路13を備え、セクタデータ(外部から書き込まれる情報データP(x)、符号化回路が生成する第1の符号データR(x)、及び偶数パリティ生成回路102(データ加工回路)が加工する加工データQ(x))が1ページに書き込まれる不揮発性半導体記憶装置であって、復号化時における情報データP(x)を誤り検出訂正回路13の検出結果に基づいて誤り訂正して出力する。
本発明によれば、システムの回路規模を増大させずに、符号化処理の時間を短縮することが可能となる、誤り検出訂正回路、及び誤り検出訂正回路を備えた半導体記憶装置を提供することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、本実施形態の説明では、GF(2)のガロア体を利用し、4ビットの誤りが訂正可能なBCH符号を例にとって説明したが、本発明は、ガロア体の種類、及び訂正すべきエラーのビット数に依存しない。また、実施形態の説明では、情報データと第1の符号データとから偶数パリティを加工する例について説明したが、これは一例であって、加工データは特に偶数パリティに限られるものではなく、その他の検出用のデータであってもよい。
10…不揮発性半導体記憶装置、11…メモリセルアレイ、12…ページバッファ、13…誤り検出訂正回路、14…バッファ、15…I/Oパッド、16…制御回路、17…アドレスデコーダ、18…ロウ及びブロックデコーダ、101,101e,91e…符号化回路、102,92…偶数パリティ生成回路、103,103a,103b,103c,103d…シンドローム生成回路、104…係数計算回路、105…誤り位置探索回路

Claims (4)

  1. 符号化時に、情報長が2^(m−1)ビットの情報データを生成多項式により除算し、複数ビットの第1の符号データを算出する符号化回路と、
    前記情報データと前記第1の符号データとから加工データを生成し、
    生成した前記加工データが0または1のうち一方の場合、ガロア体GF(2)上において、前記第1の符号データの各ビットを用いて表される{(2^−1)−(2^(m−1)+前記第1の符号データのビット数×m+加工データのビット数)}個のデータのうちから、0または1のうち他方のデータを選択して前記第1の符号データに加算して第2の符号データを生成し、
    一方、生成した前記加工データが0または1のうちの他方の場合、前記第1の符号データを前記第2の符号データとするデータ加工回路と、
    を備えることを特徴とする誤り検出訂正回路。
  2. 前記加工データは偶数パリティであって、
    前記第1の符号データに加算されるデータは、1の個数が偶数個のデータである、
    ことを特徴とする請求項1に記載の誤り検出訂正回路。
  3. 前記符号化回路は、復号化時に、前記情報データと、前記第2の符号データと、前記加工データとを前記生成多項式により除算し、第3の符号データを算出し、
    前記第3の符号データを最小多項式により除算し、シンドロームを算出するシンドローム生成回路と、
    前記シンドロームからエラー位置探索方程式の係数を算出する係数計算回路と、
    前記エラー位置探索方程式に、前記情報データ、前記第2の符号データ、及び前記加工データの各ビットの位置を示すアドレス値を代入して、各ビットに誤りがあるか否かを検出する誤り位置探索回路と、を更に有する、
    ことを特徴とする請求項1または請求項2いずれか1項に記載の誤り検出訂正回路。
  4. 請求項3に記載の誤り検出訂正回路を備え、
    外部から書き込まれる前記情報データ、前記符号化回路が生成する前記第2の符号データ、及び前記データ加工回路が加工する前記加工データがそれぞれセクタデータとして1ページに書き込まれる不揮発性半導体記憶装置であって、
    復号化時における前記情報データを前記誤り検出訂正回路の検出結果に基づいて誤り訂正して出力する、
    ことを特徴とする半導体記憶装置。
JP2012267082A 2012-12-06 2012-12-06 誤り検出訂正回路、及び半導体記憶装置 Pending JP2014116659A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012267082A JP2014116659A (ja) 2012-12-06 2012-12-06 誤り検出訂正回路、及び半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012267082A JP2014116659A (ja) 2012-12-06 2012-12-06 誤り検出訂正回路、及び半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2014116659A true JP2014116659A (ja) 2014-06-26

Family

ID=51172279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012267082A Pending JP2014116659A (ja) 2012-12-06 2012-12-06 誤り検出訂正回路、及び半導体記憶装置

Country Status (1)

Country Link
JP (1) JP2014116659A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9960788B2 (en) 2015-03-27 2018-05-01 Toshiba Memory Corporation Memory controller, semiconductor memory device, and control method for semiconductor memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9960788B2 (en) 2015-03-27 2018-05-01 Toshiba Memory Corporation Memory controller, semiconductor memory device, and control method for semiconductor memory device

Similar Documents

Publication Publication Date Title
US8990667B2 (en) Error check and correction circuit, method, and memory device
KR102108386B1 (ko) 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
US7836377B2 (en) Semiconductor memory device
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US20160164543A1 (en) Turbo product codes for nand flash
TWI512732B (zh) 解碼方法、記憶體儲存裝置與非揮發性記憶體模組
KR20160024966A (ko) 데이터 에러 교정용 회로, 장치, 및 방법
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US20190088349A1 (en) Device for supporting error correction code and test method thereof
CN110727540A (zh) 利用错误更正码进行数据位错误的检测与更正
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
KR20120063329A (ko) 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
US9130592B2 (en) Error correction code circuit and memory device including the same
US20160285478A1 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
JP2014033364A (ja) 誤り検出訂正回路、及びメモリ装置
US10348335B2 (en) Miscorrection avoidance for turbo product codes
US10133628B2 (en) Apparatuses and methods for encoding using error protection codes
US10970166B2 (en) Memory system and method of controlling non-volatile memory
JP2022047393A (ja) メモリシステム、半導体記憶装置及びデータ読み出し方法
KR20210015087A (ko) 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
JP2014116659A (ja) 誤り検出訂正回路、及び半導体記憶装置
TW202238607A (zh) 半導體儲存裝置及錯誤檢測校正方法
KR102021560B1 (ko) 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치
US20240022261A1 (en) Error correction code circuit and semiconductor apparatus including the error correction code circuit