JP2014033364A - Error detection and correction circuit and memory device - Google Patents
Error detection and correction circuit and memory device Download PDFInfo
- Publication number
- JP2014033364A JP2014033364A JP2012173182A JP2012173182A JP2014033364A JP 2014033364 A JP2014033364 A JP 2014033364A JP 2012173182 A JP2012173182 A JP 2012173182A JP 2012173182 A JP2012173182 A JP 2012173182A JP 2014033364 A JP2014033364 A JP 2014033364A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error
- circuit
- unit
- error detection
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
Abstract
Description
本発明は、誤り検出訂正回路、及びメモリ装置に関する。 The present invention relates to an error detection / correction circuit and a memory device.
電気的書き換え可能な不揮発性半導体記憶装置(EEPROM;Electrically Erasable and Programmable Read Only Memory)の一つとして、NAND型フラッシュメモリが知られている。NAND型フラッシュメモリは、複数のメモリセルを直列接続したNANDセルユニット(NANDストリング)を用いることにより、小さいチップ面積での大容量記憶を可能としている。 A NAND flash memory is known as one of electrically rewritable nonvolatile semiconductor memory devices (EEPROM) that are electrically erasable and programmable read only memory (EEPROM). The NAND flash memory uses a NAND cell unit (NAND string) in which a plurality of memory cells are connected in series, thereby enabling large-capacity storage with a small chip area.
NAND型フラッシュメモリでは、多数回の書き換えに伴うトンネル酸化膜の劣化等に起因して、データ保持中に記憶素子(メモリセル)の保持特性が失われ、エラービットの発生率(エラー率)が大きくなる傾向がある。特に、NAND型フラッシュメモリでは、メモリセルの大容量化、すなわち製造プロセスにおける微細化が進むとエラー率は上昇してしまう傾向にある。そのため、記憶すべきデータに誤り訂正符号(Error Correcting Code)の冗長データを付加してデータ列としてフラッシュメモリに書込むと共に、読出し時には誤り訂正符号の冗長データを基にしてデータの訂正を行うことで、エラービットが発生したときのデータの補償を行っている。 In the NAND flash memory, the retention characteristics of the memory element (memory cell) are lost during data retention due to deterioration of the tunnel oxide film caused by many rewrites, and the error bit rate (error rate) is increased. There is a tendency to grow. In particular, in the NAND flash memory, the error rate tends to increase as the capacity of the memory cell increases, that is, the miniaturization in the manufacturing process proceeds. Therefore, error correction code (Error Correcting Code) redundant data is added to the data to be stored and written to the flash memory as a data string, and at the time of reading, the data is corrected based on the error correction code redundant data. Thus, data compensation is performed when an error bit occurs.
例えば、特許文献1には、誤り検出訂正回路(ECC回路)を備えたNAND型フラッシュメモリが開示されている。特許文献1記載の誤り検出訂正回路では、チェン探索部において、受信情報(データ列)のうちのビットの位置をエラー位置探索方程式に代入し、当該ビットに誤りがあるか否かを検出する。データ列の出力時には、チェン探索部にアドレスを最下位から最上位まで全て代入する。そして、誤り訂正回路(誤り訂正部)では、各ビットに誤りがある場合はビットのデータを訂正して訂正後のデータを出力し、誤りがない場合は訂正しないでビットのデータをそのまま出力する。
For example,
しかしながら、上述した特許文献1に記載された構成では、データ列のうち任意のアドレスのビットを読み出そうとする場合、誤り訂正回路の出力するビットを一端バッファメモリ等に記憶させ、その後、読み出すべきビットのアドレスをバッファメモリに対して供給しなければならない。つまり、従来においては、誤り検出訂正回路において、読み出すべきビットが含まれるデータ列の全てのビットに対するエラービットのデータの訂正処理が終了するまで、任意のアドレスのビットのデータの誤り訂正を行って誤り訂正後のデータを高速に読み出すことができないという問題があった。
However, in the configuration described in
そこで本発明が解決しようとする課題は、データ列のうち任意のアドレスのビットのデータの誤り訂正を行って、誤り訂正後のデータを外部に高速に出力することができる誤り検出訂正回路、及びメモリ装置を提供することにある。 Therefore, the problem to be solved by the present invention is an error detection and correction circuit capable of performing error correction of data of a bit at an arbitrary address in a data string and outputting the error-corrected data to the outside at high speed, and It is to provide a memory device.
本発明の誤り検出訂正回路は、データ列を格納するデータ格納部と、前記データ列からシンドロームを計算するシンドローム計算部と、前記シンドロームからエラー位置探索方程式の係数を算出する誤り係数計算部と、前記係数を記憶するラッチ部と、前記データ列の位置を示すアドレスと、前記ラッチ部が記憶する係数とを用いて前記エラー位置探索方程式に代入する代入値を算出する代入値計算部と、前記データ列の出力時に、前記代入値の前記エラー位置探索方程式への代入結果に応じて、前記データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部と、前記エラー検出信号により前記データ列におけるビットのデータの誤りを訂正して出力する誤り訂正部と、を備えることを特徴とする。 The error detection and correction circuit of the present invention includes a data storage unit that stores a data string, a syndrome calculation unit that calculates a syndrome from the data string, an error coefficient calculation unit that calculates a coefficient of an error position search equation from the syndrome, A latch unit that stores the coefficient; an address that indicates a position of the data string; and a substitution value calculation unit that calculates a substitution value to be substituted into the error position search equation using the coefficient stored in the latch unit; A chain search unit that outputs an error detection signal indicating whether or not there is an error for each bit of the data string, according to a result of substitution of the substitution value into the error position search equation when the data string is output, And an error correction unit that corrects and outputs an error of bit data in the data string by an error detection signal.
また、本発明の誤り検出訂正回路において、前記データ列が複数のデータ列から構成され、前記ラッチ部が、前記複数のデータ列の各々に対応して設けられることを特徴とする。 In the error detection / correction circuit of the present invention, the data string is composed of a plurality of data strings, and the latch unit is provided corresponding to each of the plurality of data strings.
また、本発明のメモリ装置は、上記誤り検出訂正回路を備えたメモリ装置であって、前記データ格納部は記憶素子から読み出したデータ列を格納する回路であり、前記アドレスは前記記憶素子のメモリにおける列の位置を示すカラムアドレスであることを特徴とする。 According to another aspect of the present invention, there is provided a memory device including the error detection and correction circuit, wherein the data storage unit stores a data string read from a storage element, and the address is a memory of the storage element. It is a column address indicating the position of the column in.
本発明の誤り検出訂正回路は、エラー位置探索方程式の係数を記憶するラッチ部と、この係数とビットの位置とからエラー位置探索方程式への代入値を計算する代入値計算部とを設けた。そのため、データの読み出し時に、代入値計算部に読み出すべきビットのアドレスを入力すれば、チェン探索部が当該ビットのデータに誤りが有るか否かを検出する。誤り訂正部は、当該ビットのデータに誤りがあればビットのデータを訂正して訂正後のビットのデータを出力し、誤りがない場合はビットのデータをそのまま出力する。よって、データ列のうち任意のアドレスのビットのデータについて、誤り訂正を行って訂正後のデータを高速に読み出すことができる誤り検出訂正回路、及びメモリ装置を提供することができる。 The error detection and correction circuit according to the present invention includes a latch unit that stores a coefficient of an error position search equation, and a substitution value calculation unit that calculates a substitution value to the error position search equation from the coefficient and the bit position. Therefore, when an address of a bit to be read is input to the substitution value calculation unit at the time of reading data, the chain search unit detects whether or not there is an error in the data of the bit. The error correction unit corrects the bit data if there is an error in the bit data and outputs the corrected bit data, and outputs the bit data as it is if there is no error. Therefore, it is possible to provide an error detection and correction circuit and a memory device that can perform error correction on data of a bit at an arbitrary address in a data string and read the corrected data at high speed.
以下、図面を参照して、本発明の実施の形態について説明する。図1は、不揮発性半導体記憶装置10であるNAND型フラッシュメモリの構成例を示す概略ブロック図である。
不揮発性半導体記憶装置10は、メモリセルアレイ11、ページバッファ12、誤り検出訂正回路13、バッファ14、I/Oパッド15、制御回路16、アドレスデコーダ17、及びロウ及びブロックデコーダ18を含んで構成される。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a schematic block diagram showing a configuration example of a NAND flash memory that is a nonvolatile
The nonvolatile
メモリセルアレイ11は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル(記憶素子)をカラム方向(列方向)に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向(ビット線の配列方向)に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリ各々のゲートには、ビット線に直行したワード線が接続される。
1本のワード線により選択される不揮発性メモリセルの範囲がプログラム及び読み出しの単位となる1ページである。
The
A range of nonvolatile memory cells selected by one word line is one page as a unit for programming and reading.
ページバッファ12は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファ回路から構成されている。このページバッファ12におけるページバッファ回路各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。
ページバッファ12(データ格納部)は、不揮発性半導体記憶装置10のデータ読み出し動作において、メモリセルアレイ11の1ページ分のメモリセルが記憶するデータ(データ列)からなるセルデータCell Dataが入力され、このデータを増幅して誤り検出訂正回路13に対して出力する。一方、ページバッファ12は、不揮発性半導体記憶装置10のデータ書込み(プログラム)動作において、誤り検出訂正回路13から供給されるデータを内部のラッチ回路に格納し、ベリファイ動作を行いつつ、全てのデータを符号データCode Dataとして1ページ内のメモリセルに書き込む。
この符号データCode Dataには、誤り検出訂正回路13が生成するパリティデータParityが含まれる。なお、本実施形態において、例えば情報長512Byte (バイト)に対しBCH符号を用いて4Bit(ビット)訂正を行う誤り訂正システムを例に取るとき、1ページは、2K(=2048)バイト、すなわち、16k(=176384)ビットの通常データを各々記憶するメモリセルと、208ビットのパリティデータを各々記憶するメモリセルから構成される。すなわち、セルデータCell Data、及び符号データCode Dataは、(16k+208)ビットから構成される。また、1ページは、誤り検出訂正回路13の訂正の単位として、例えば4つのセクタに分割されている。つまり、1セクタに対応するデータは、512バイト(=4096ビット)の通常データ、52ビットのパリティデータから構成される。
また、本実施形態において、メモリ外部よりのアクセスは、通常メモリに対して対応するカラムアドレスY[13:0]を入力することにより行われる。パリティデータは、通常データの訂正用に付加される内部データであり、外部からは直接アクセスされることはない。
The
The page buffer 12 (data storage unit) receives cell data Cell Data composed of data (data string) stored in one page of memory cells in the
The code data Code Data includes parity data Parity generated by the error detection and
In this embodiment, access from the outside of the memory is performed by inputting the corresponding column address Y [13: 0] to the normal memory. Parity data is internal data added for correction of normal data and is not directly accessed from the outside.
誤り検出訂正回路13は、詳細については後述するが、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、エラー位置探索方程式の係数を算出し、内部のラッチに保持する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビットのデータの誤りを訂正し、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として、選択されているページに接続されるメモリセルに書き込む。
Although the details will be described later, the error detection /
Further, the error detection and
制御回路16は、各種制御信号が入力され、不揮発性メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。
例えば、制御信号は、外部クロック信号、チップイネーブル信号/CE、読み出しイネーブル信号/RE、プログラムイネーブル信号/WE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号/WPなどである。制御回路16は、これらの制御信号と、I/Oパッド15から入力されるコマンドデータとが示す動作モードに応じて、各回路に対して内部制御信号を出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にコマンドラッチイネーブル信号CLEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からコマンドデータを取り込み、内部のレジスタに保持する。
The
For example, the control signals are an external clock signal, a chip enable signal / CE, a read enable signal / RE, a program enable signal / WE, a command latch enable signal CLE, an address latch enable signal ALE, a write protect signal / WP, and the like. The
For example, when the command latch enable signal CLE changes from the low (L) level to the high (H) level when the program enable signal / WE rises, the
アドレスデコーダ17は、I/Oパッド15から入力されるアドレス(ロウアドレス、ブロックアドレス、カラムアドレス)を制御回路16からの内部制御信号に基づいて保持する。また、アドレスデコーダ17は、保持したアドレスを、制御回路16からの内部制御信号に基づいて、ロウ及びブロックデコーダ18、ページバッファ12、及び誤り検出訂正回路13へ出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にアドレスラッチイネーブル信号ALEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からアドレスを取り込み、アドレスデコーダ17の内部レジスタに保持する。
The
For example, the
ロウ及びブロックデコーダ18は、アドレスデコーダ17が保持し、出力するロウアドレス、及びブロックアドレスに応じて、メモリセルアレイ11のブロック、及びワード線の選択を行い、1ページ上のメモリセルを選択する。
また、アドレスデコーダ17は、内部に保持するカラムアドレスに応じて、メモリセルアレイ11のビット線及びページバッファ12の選択を行う。
The row and
The
本実施形態において、データ読み出し動作においては、ページバッファ12内のセルデータCell Dataが誤り検出訂正回路13に読み出され、エラー位置探索方程式の係数がセクタ毎に計算される。そして、セクタ毎に計算された係数とカラムアドレスとに応じて、カラムアドレスにより位置が示されるビットのデータ、すなわちメモリセルのデータ(16ビット)に誤りがあるか否かが検出され、誤りがある場合は訂正されて、訂正済データCorrected DataとしてI/Oパッド15から出力される(詳細後述)。
In the present embodiment, in the data read operation, the cell data Cell Data in the
また、データ書き込み動作においては、バッファ14にいったんページバッファ12内に格納されたセルデータCell Dataが読み出される。バッファ14は、例えばSRAM(Static Random Access Memory)により構成される。
バッファ14では、セルデータCell Dataのうち、入力されるカラムアドレスに対応する部分のデータが、I/Oパッド15からのデータInformation Dataに書き換えられる。また、誤り検出訂正回路13では、バッファ14の書き換え後のデータを含む1セクタ分のデータに対応したパリティデータが算出される。そして、これらのパリティデータを含む4セクタ分のデータが、符号データCode Dataとして、ページバッファ12を介して選択されているページに書き込まれる。
Further, in the data write operation, the cell data Cell Data once stored in the
In the
次に、図2は、誤り検出訂正回路13の詳細な構成例を示す図である。
本実施形態においては、誤り検出訂正回路(以下、ECC回路とも称する)13として、BCH符号(Bose−Chaudhuri Hocquenghem code)を用いたECC回路を例にとって説明する。ECC回路は、BCH符号で代表されるガロア体演算を利用したブロック符号である。なお、BCH符号の替りに、例えばHamming符号(Hamming code)、リードソロモン符号(Reed−Solomon code)を用いることも可能である。なお、以下の説明では、情報データ長512バイト(=4096ビット)を訂正単位、すなわち1ページの1/4のセルのデータを訂正の単位とし、それぞれの訂正単位のうちの4ビットのデータの訂正が可能なBCH符号を用いたECC回路について説明する。
Next, FIG. 2 is a diagram illustrating a detailed configuration example of the error detection and
In this embodiment, an error detection correction circuit (hereinafter also referred to as an ECC circuit) 13 will be described as an example of an ECC circuit using a BCH code (Bose-Chudhuri Hocquenhem code). The ECC circuit is a block code using a Galois field operation represented by a BCH code. Instead of the BCH code, for example, a Hamming code (Hamming code) or a Reed-Solomon code (Reed-Solomon code) can be used. In the following description, an information data length of 512 bytes (= 4096 bits) is used as a correction unit, that is, data of a quarter cell of one page is used as a correction unit, and data of 4 bits of each correction unit. An ECC circuit using a BCH code that can be corrected will be described.
誤り検出訂正回路13は、データの復号を司るデコーダ部30と、訂正用パリティデータParityを生成し、訂正用パリティデータParityをセルへの書き込みデータに付加するエンコーダ部40とを含んで構成される。
このうち、エンコーダ部40は、パリティ生成回路41を有する。パリティ生成回路41は、バッファ14に書き込まれた情報データInformation Dataを生成多項式で除算して得られるパリティデータParityを生成する。また、パリティ生成回路41は、情報データInformation Dataに、生成したパリティデータParityを付加して、ページバッファ12に対して出力する。これらのデータは、不揮発性半導体記憶装置10のデータ書き込み時において、選択された1ページに書き込まれる符号データCode Dataとなる。なお、本実施形態では、不揮発性半導体記憶装置10からのデータ読み出し時において、誤り検出訂正回路13が高速にデータ訂正処理を行うことに特徴を有するものであり、以下ではデコーダ部30について詳細に説明する。
The error detection and
Among these, the
デコーダ部30は、シンドローム計算部31、誤り係数計算部32、チェン探索部33、誤り訂正部34、ラッチ部35、及び代入値計算部36を含んで構成される。
シンドローム計算部31は、不揮発性半導体記憶装置10のデータ読み出し時に、ページバッファ12に読み出されたセルデータCell Dataが、符号データとしてセクタ毎に入力され、この符号データを独立な最小多項式で除算することによりシンドロームを計算する。4ビットのデータの誤り訂正が可能なBCH符号で使用される独立な最小多項式は、4つである。シンドローム計算部31は、これら4つの最小多項式に対応して、4つのシンドローム算出回路31_1〜31_4を備えている。これらのシンドローム算出回路31_1〜31_4は、それぞれシンドロームS1、S3、S5、S7を計算する。
The
The
誤り係数計算部32は、これらのシンドロームS1、S3、S5、S7を使用して、セクタ毎のエラー位置探索方程式の係数e4、e3、e2、e1、及びe0を計算する。係数e4、e3、e2、e1、及びe0は、チェン探索部33が、エラー位置探索方程式Λ(x)=e4x4+e3x3+e2x2+e1x1+e0の係数である。エラー位置探索方程式Λ(x)は、ページバッファ12からセクタ毎に読み出されたビットに誤りがあるか否かを探索する際にチェン探索部33において用いられる。
The error
ここで、エラー位置探索方程式について説明するため、チェン探索部33の構成、及び動作について説明する。
図3は、チェン探索部33の詳細な構成の一例を示す図である。
チェン探索部33は、4台のセレクタ、5台のフリップフロップ、64台の定数乗算回路、16台の排他的論理和演算回路、及び16台の論理反転回路を含んで構成される。
図3に示すように、4台のセレクタはセレクタ301、302、303、304であり、5台のフリップフロップはフリップフロップ310、311、312、313、314、である。また、64台の定数乗算回路は、定数乗算回路321_1、321_2、・・・、321_16、定数乗算回路322_1、322_2、・・・、322_16、定数乗算回路323_1、323_2、・・・、323_16、定数乗算回路324_1、324_2、・・・、324_16である。また、16台の排他的論理和演算回路は、排他的論理和演算回路330_1、330_2、・・・、330_15、330_16であり、16台の論理反転回路は、論理反転回路340_1、340_2、・・・、340_15、340_16である。
Here, in order to explain the error position search equation, the configuration and operation of the
FIG. 3 is a diagram illustrating an example of a detailed configuration of the
The
As shown in FIG. 3, the four selectors are
セレクタ301〜セレクタ304にそれぞれ入力されるe1x、e1x2、e1x3、e1x4におけるxは、符号データ、つまりページバッファに格納されたセルデータCell Dataの位置を示す値が入力される。このセルデータCell Detaには、パリティビット(52ビット)がカラム最下位に付加されている。具体的には、xとして次の値が入力される。すなわち、1ページに16kビットのデータ(パリティデータを除く)が含まれるので、ビット線の位置を示すカラムアドレスは14ビットのカラムアドレスY[13:0]である。このうち、上位10ビットのカラムアドレスY[13:4]を、Y=a13×213+a12×212+・・・+a5×25+a4×24と十進数で表わすと、本実施形態では16ビット単位でビットのデータの誤り訂正を行うので、xとして、パリティビット(52ビット)分ずらしたa13×213+a12×212+・・・+a5×25+a4×24+52(=αjとする)が入力される。
X in e 1 x, e 1 x 2 , e 1 x 3 , and e 1 x 4 respectively input to the
ここで、i=0〜15(整数)として、αi+jは、ガロア有限体GF(2m)の元であり、カラムアドレスY[13:0]の最小値、すなわちカラムアドレスのビットがオール0の場合から数えて何番目のカラムアドレスに位置するかを示す値、すなわち(j×16+i+1)番目のビット線の位置を示す値である。
αi+j=αi×αjであるから、エラー位置探索方程式Λ(x)=e4x4+e3x3+e2x2+e1x1+e0にx=αi+jを代入すると、Λ(x)は、
Λ(αi+j)
=e4(αi+j)4+e3(αi+j)3+e2(αi+j)2+e1(αi+j)1+e0
=e4(α4)i・(α4)j+e3(α3)i・(α3)j+e2(α2)i・(α2)j+e1(α1)i・(α1)j+e0(α0)i・(α0)j
となる。
Here, when i = 0 to 15 (integer), α i + j is an element of the Galois finite field GF (2 m ), and the minimum value of the column address Y [13: 0], that is, the column address bits are all 0. This is a value indicating the position of the column address counting from the case of (i.e., the value of (j × 16 + i + 1) th bit line).
Since α i + j = α i × α j , the error location search equation Λ (x) = e 4 x 4 + e 3 x 3 + e 2 x 2 + e 1 x 1 + e 0 is substituted by x = α i + j x)
Λ (α i + j )
= E 4 (α i + j ) 4 + e 3 (α i + j ) 3 + e 2 (α i + j ) 2 + e 1 (α i + j ) 1 + e 0
= E 4 (α 4 ) i · (α 4 ) j + e 3 (α 3 ) i · (α 3 ) j + e 2 (α 2 ) i · (α 2 ) j + e 1 (α 1 ) i · (α 1 ) j + e 0 (α 0 ) i · (α 0 ) j
It becomes.
そこで、セレクタ301では、e1(αj)を取り込み、これらをi=0〜15の範囲で、(α1)i倍だけ定数倍すれば、エラー位置探索方程式Λ(x)のx1に代入するx=αi+j、すなわち(j×16+i)番目のビット線の位置を示すxが得られる。同様に、セレクタ302では、e2(αj)を取り込み、これらをi=0〜15の範囲で、(α2)i倍だけ定数倍すれば、エラー位置探索方程式Λ(x)のx2に代入するx=αi+j、すなわち(j×16+i)番目のビット線の位置を示すxが得られる。また、同様に、セレクタ303では、e3(αj)を取り込み、これらをi=0〜15の範囲で、(α3)i倍だけ定数倍すれば、エラー位置探索方程式Λ(x)のx3に代入するx=αi+j、すなわち(j×16+i)番目のビット線の位置を示すxが得られる。また、同様に、セレクタ304では、e4(αj)を取り込み、これらをi=0〜15の範囲で、(α4)i倍だけ定数倍すれば、エラー位置探索方程式Λ(x)のx4に代入するx=αi+j、すなわち(j×16+i)番目のビット線の位置を示すxが得られる。
Therefore, the
そのため、セレクタ301〜セレクタ304各々には、セレクタの入力を切り替える制御信号SELが制御回路16から入力される。この制御信号SELは、不揮発性半導体記憶装置10からのデータ読み出し時に、アドレスデコーダ17がカラムアドレスをラッチした後、制御回路16が、例えばLレベルからHレベルに変化させる制御信号である。セレクタ301〜セレクタ304において、制御信号SELがHレベルとなると、それぞれのセレクタにおいてe1x、e1x2、e1x3、e1x4が取り込まれ、取り込まれた値はそれぞれの後段に接続されたフリップフロップ311〜314に記憶される。なお、係数e0は、フリップフロップ310に記憶される。
Therefore, a control signal SEL for switching the selector input is input from the
また、フリップフロップ311〜314の後段には、それぞれ定数乗算回路が16台ずつ直列に接続される。フリップフロップ311の後段には、入力される値に定数αを乗じて出力する定数乗算回路321_1〜321_16が直列接続される。また、フリップフロップ312の後段には、入力される値に定数α2を乗じて出力する定数乗算回路322_1〜322_16が直列接続される。また、フリップフロップ313の後段には、入力される値に定数α3を乗じて出力する定数乗算回路323_1〜323_16が直列接続される。また、フリップフロップ314の後段には、入力される値に定数α4を乗じて出力する定数乗算回路324_1〜324_16が直列接続される。
In addition, 16 constant multiplication circuits are connected in series in the subsequent stages of the flip-
排他的論理和回路330_1は、フリップフロップ310〜314の出力の排他的論理和を演算し、後段の論理反転回路340_1に対して出力する。論理反転回路340_1は、排他的論理和回路330_1の演算結果を論理反転して、エラー検出信号Error<0>を、誤り訂正部34に対して出力する。すなわち、排他的論理和回路330_1において、エラー位置探索方程式Λ(x)=e4x4+e3x3+e2x2+e1x1+e0にx=αi+j(i=0)を代入したときに、Λ(x)の値が0である場合、エラー検出信号Error<0>はHレベルとなる。一方、Λ(x)の値が0でない場合、エラー検出信号Error<0>はLレベルとなる。
誤り訂正部34は、本実施形態において、16台の排他的論理和演算回路34_i(図2参照、i=0〜15)により構成される。排他的論理和演算回路34_iのうち、排他的論理和演算回路34_0は、エラー検出信号Error<0>と、ページバッファ12に読み出し動作において格納されたセルデータCell Dataのうち、(j×16+0)番目のビット線の位置のビットとが入力される。つまり、排他的論理和演算回路34_0は、エラー検出信号Error<0>がHレベルであれば、(j×16+0)番目のビット線の位置のビットのデータの論理(0または1)を反転して、訂正済データCorrected Dataの1ビットとして出力する。一方、排他的論理和演算回路34_0は、エラー検出信号Error<0>がLレベルであれば、(j×16+0)番目のビット線の位置のビットのデータの論理をそのまま、つまり訂正しないで訂正済データCorrected Dataの1ビットとして出力する。
The exclusive OR circuit 330_1 calculates an exclusive OR of the outputs of the flip-
In this embodiment, the
同様に、i=1〜15として、排他的論理和回路330_iは、定数乗算回路321_i、定数乗算回路322_i、定数乗算回路323_i、定数乗算回路323_iそれぞれの出力の排他的論理和を演算し、後段の論理反転回路340_iに対して出力する。論理反転回路340_iは、排他的論理和回路330_iの演算結果を論理反転して、エラー検出信号Error<i>を、誤り訂正部34に対して出力する。すなわち、排他的論理和回路330_iにおいて、エラー位置探索方程式Λ(x)=e4x4+e3x3+e2x2+e1x1+e0にx=αi+j(i=1〜15)をそれぞれ代入したときに、Λ(x)の値が0である場合、エラー検出信号Error<i>はHレベルとなる。一方、Λ(x)の値が0でない場合、エラー検出信号Error<i>はLレベルとなる。
誤り訂正部34における排他的論理和演算回路34_iは、エラー検出信号Error<i>と、ページバッファ12に読み出し動作において格納されたセルデータCell Dataのうち、(j×16+i)番目のビット線の位置のビットとが入力される。つまり、排他的論理和演算回路34_i(i=1〜15)各々は、エラー検出信号Error<i>がHレベルであれば、(j×16+i)番目のビット線の位置のビットのデータの論理を反転して、訂正済データCorrected Dataの1ビットとして出力する。一方、排他的論理和演算回路34_0は、エラー検出信号Error<i>がLレベルであれば、(j×16+i)番目のビット線の位置のビットのデータの論理をそのまま、訂正しないで訂正済データCorrected Dataの1ビットとして出力する。
Similarly, assuming that i = 1 to 15, the exclusive OR circuit 330_i calculates the exclusive OR of the outputs of the constant multiplication circuit 321_i, the constant multiplication circuit 322_i, the constant multiplication circuit 323_i, and the constant multiplication circuit 323_i, and To the logic inversion circuit 340_i. The logic inversion circuit 340_i logically inverts the operation result of the exclusive OR circuit 330_i and outputs an error detection signal Error <i> to the
The exclusive OR operation circuit 34_i in the
ところで、ECC回路を内蔵しないNAND型フラッシュメモリでは、1回の読み出し命令、すなわちデータ読み出しを指示するコマンドが入力されれば、1ページに相当するデータがメモリセルからページバッファ12に読みだされる。そして、最初のカラムアドレスに続いて、読み出しイネーブル信号/REと同期してページバッファ12に格納されたデータを連続読み出しすることが可能となっている。
By the way, in a NAND flash memory that does not include an ECC circuit, data corresponding to one page is read from the memory cell to the
ECC回路を内蔵した不揮発性半導体記憶装置10においても、同様な読み出しを可能にしようとすると、以下のような処理が必要となる。すなわち、メモリセルから読み出されたデータ(ページバッファ12に格納されたデータ)より、シンドローム計算部31においてシンドロームを計算し、係数計算部32において誤り係数を求める。そして、上述したようにチェン探索部33におけるセレクタの入力のカラムアドレスを、例えば最下位から変化させて、エラー位置探索方程式Λ(X)が0になるか否かをチェックする。このチェック結果によって、ページバッファ12から読み出されたデータに誤りが有れば誤りを訂正し、訂正後のデータを出力すれば良い。
Even in the nonvolatile
しかしながら、ECC回路を内蔵しないNAND型メモリでは、任意のカラムアドレスを入力し、アクセスするモードも存在する。そのため、不揮発性半導体記憶装置10が、この任意のカラムアドレスを入力することによりアクセスするモードを備える場合、メモリセルからページバッファへのデータ読み出しに続いて、1ページ分のデータの誤り訂正処理を完了させておき、更に処理後の訂正データを記憶する処理が必要となる。
不揮発性半導体記憶装置10では、ページバッファ12とは別にバッファ14(例えばSRAM;Static Random Access Memory)を備えているので、このバッファ14に訂正後のデータを全て書きこみ、書込み後に任意のカラムアドレスを与えて、訂正後のデータをI/Oパッド15から出力することもできる。或いは、回路的な工夫により、訂正後のデータをバッファ14ではなく、ページバッファ12に書き戻した後に、ページバッファ12からデータを読み出す方式も考えられる。
However, in a NAND memory that does not incorporate an ECC circuit, there is a mode in which an arbitrary column address is input and accessed. Therefore, in the case where the nonvolatile
Since the nonvolatile
このように、ECC回路を内蔵する不揮発性半導体記憶装置10において、任意のカラムアドレスを入力することによりアクセスするモードを備えようとする場合、1ページ分のデータの誤り訂正処理を完了させる必要があり、この任意のカラムアドレスを入力して、その位置のメモリセルのデータを読み出すまでの時間(以下、1st Access Overheadと称する)が長くなってしまう。
As described above, in the nonvolatile
そこで、不揮発性半導体記憶装置10では、この1st Access Overheadを短縮し、ECC回路を内蔵しないNAND型フラッシュメモリと同等のランダムアクアクセスを可能とするため、ラッチ部35と、代入値計算部36とを備えている。
ラッチ部35は、1ページ分のECC処理の単位となるセクタごとに、エラー位置探索方程式の係数e4、e3、e2、e1、及びe0をラッチする。係数ラッチ35_0は、セクタ<0>のデータ(512バイトのデータ)と、このセクタ<0>に対応するパリティデータから算出されるエラー位置探索方程式の係数e4、e3、e2、e1、及びe0をラッチする。なお、セクタ<0>のデータを保持するメモリセルの位置を示すカラムアドレスY[13:0]のうち上位の2ビットのカラムアドレスY[13:12]は、カラムアドレスY[13:12]=(0、0)で表わされる。
Therefore, in the nonvolatile
The
また、係数ラッチ35_1は、セクタ<1>のデータ(同じく512バイトのデータ)と、このセクタ<1>に対応するパリティデータから算出されるエラー位置探索方程式の係数e4、e3、e2、e1、及びe0をラッチする。なお、セクタ<1>のデータを保持するメモリセルの位置を示すカラムアドレスY[13:0]のうち上位2ビットのカラムアドレスY[13:12]は、カラムアドレスY[13:12]=(0、1)で表わされる。また、係数ラッチ35_2は、セクタ<2>のデータ(同じく512バイトのデータ)と、このセクタ<1>に対応するパリティデータから算出されるエラー位置探索方程式の係数e4、e3、e2、e1、及びe0をラッチする。なお、セクタ<2>のデータを保持するメモリセルの位置を示すカラムアドレスY[13:0]のうち上位2ビットのカラムアドレスY[13:12]は、カラムアドレスY[13:12]=(1、0)で表わされる。また、係数ラッチ35_3は、セクタ<3>のデータ(同じく512バイトのデータ)と、このセクタ<3>に対応するパリティデータから算出されるエラー位置探索方程式の係数e4、e3、e2、e1、及びe0をラッチする。なお、セクタ<3>のデータを保持するメモリセルの位置を示すカラムアドレスY[13:0]のうち上位2ビットのカラムアドレスY[13:12]は、カラムアドレスY[13:12]=(1、1)で表わされる。 The coefficient latch 35_1 also uses coefficients e 4 , e 3 , e 2 of the error position search equation calculated from the data of sector <1> (also 512-byte data) and the parity data corresponding to this sector <1>. , E 1 , and e 0 are latched. Of the column address Y [13: 0] indicating the position of the memory cell holding the data of sector <1>, the upper 2 bits of column address Y [13:12] are equal to column address Y [13:12] = (0, 1). In addition, the coefficient latch 35_2 has coefficients e 4 , e 3 , e 2 of the error position search equation calculated from the data of sector <2> (also 512-byte data) and the parity data corresponding to this sector <1>. , E 1 , and e 0 are latched. Of the column address Y [13: 0] indicating the position of the memory cell holding the data of sector <2>, the upper 2-bit column address Y [13:12] is equal to the column address Y [13:12] = It is represented by (1, 0). Further, the coefficient latch 35_3 has coefficients e 4 , e 3 , e 2 of the error position search equation calculated from the data of sector <3> (also 512-byte data) and the parity data corresponding to this sector <3>. , E 1 , and e 0 are latched. Of the column address Y [13: 0] indicating the position of the memory cell holding the data of sector <3>, the upper 2-bit column address Y [13:12] is equal to the column address Y [13:12] = (1, 1).
図4は、代入値計算部36の詳細な構成の一例を示す図である。
代入値計算部36は、8台のセレクタ、13台の乗算回路、及び2台の自乗演算回路を含んで構成される。
図4に示すように、8台のセレクタは、セレクタ401、402、403、404,405、406、407、408である。13台の乗算回路は、乗算回路411、412、413、414、421、422、431、441、442、461、462、463、464である。また、2台の自乗演算回路は、自乗演算回路451、452である。
FIG. 4 is a diagram illustrating an example of a detailed configuration of the substitution
The substitution
As shown in FIG. 4, the eight selectors are
各セレクタは、j=4〜12として、αの2j乗の値と1とが入力され、カラムアドレス信号Yjによりこれらのうちの一方の値が選択され、選択した値を後段の乗算回路に対して出力する。
このαの2j乗の値は、上述したエラー位置探索方程式Λ(x)に代入する、符号データの(2j+52)番目の位置を表わす。符号データの(2j+52)番目の値とは、パリティビットに対応するビット線を含んだビット線のうち、(2j+52)番目のビット線の位置を表わす。また、カラムアドレス信号Yjとは、カラムアドレスY[13:0]のうち1ビットのY[j]である。
各セレクタは、入力されるカラムアドレス信号YjがHレベルのとき、つまりY[j]=1のとき、αの2j乗の値を選択する。一方、各セレクタは、入力されるカラムアドレス信号YjがLレベルのとき、つまりY[j]=0のとき、1を選択する。
例えば、上位10ビットのカラムアドレス[13:4]のうち、1ビットのY[4]が1で、残りの9ビットのY[13:5]が全て0のとき、セレクタ401はα16を選択し、他のセレクタ402〜408は1を選択する。以下、代入値計算部36における他の回路の接続、動作について説明しつつ、符号データの(24+52)番目の位置を表わすx=α(16+52)をチェン探索部33に入力する例について説明する。
Each selector, as j = 4 to 12, is input value and 1 2 j-th power of α is selected is one of the values of these by the column address signal Yj, to the subsequent multiplier circuit selected value Output.
2 j-th power value of this α is substituted into the above-described error location search equation lambda (x), representing the (2 j +52) th position of the code data. The (2 j +52) -th value of the code data represents the position of the (2 j +52) -th bit line among the bit lines including the bit line corresponding to the parity bit. The column address signal Yj is 1 bit Y [j] of the column address Y [13: 0].
Each selector selects the value of α to the 2jth power when the input column address signal Yj is at the H level, that is, when Y [j] = 1. On the other hand, each selector selects 1 when the input column address signal Yj is at L level, that is, when Y [j] = 0.
For example, the upper 10 bits of the column address: Of [13 4], in 1-bit Y [4] is 1, the remaining 9 bits of Y: when [13 5] are all 0, the
乗算回路411は、セレクタ401の出力端子とセレクタ402の出力端子とに接続され、各セレクタの出力値を乗算し、乗算結果を後段の乗算回路421の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、α16であり、乗算回路421の第1の入力端子にはα16が入力される。
乗算回路412は、セレクタ403の出力端子とセレクタ404の出力端子とに接続され、各セレクタの出力値を乗算し、乗算結果を後段の乗算回路421の第2の入力端子に対して出力する。上述の例であれば、乗算結果は、1であり、乗算回路421の第2の入力端子には1が入力される。
乗算回路413は、セレクタ405の出力端子とセレクタ406の出力端子とに接続され、各セレクタの出力値を乗算し、乗算結果を後段の乗算回路422の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、1であり、乗算回路422の第1の入力端子には1が入力される。
乗算回路414は、セレクタ407の出力端子とセレクタ408の出力端子とに接続され、各セレクタの出力値を乗算し、乗算結果を後段の乗算回路422の第2の入力端子に対して出力する。上述の例であれば、乗算結果は、1であり、乗算回路422の第2の入力端子には1が入力される。
The
The
The
The
乗算回路421は、乗算回路411の出力端子と乗算回路412の出力端子とに接続され、各乗算回路の出力値を乗算し、乗算結果を後段の乗算回路431の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、α16であり、乗算回路431の第1の入力端子にはα16が入力される。
乗算回路422は、乗算回路413の出力端子と乗算回路414の出力端子とに接続され、各乗算回路の出力値を乗算し、乗算結果を後段の乗算回路431の第2の入力端子に対して出力する。上述の例であれば、乗算結果は、1であり、乗算回路431の第2の入力端子には1が入力される。
乗算回路431は、乗算回路421の出力端子と乗算回路422の出力端子とに接続され、各乗算回路の出力値を乗算し、乗算結果を後段の乗算回路441の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、α16であり、乗算回路441の第1の入力端子にはα16が入力される。
The
The
The
乗算回路441は、第1の入力端子が乗算回路431の出力端子に接続されて乗算回路431の出力値が入力され、第2の入力端子には固定値であるα52が入力される。このα52は、符号データ、つまりページバッファに格納されたセルデータCell Dataのうち、パリティビット52ビットの次に位置する通常データが読み出されるビット線の位置を、すなわちカラムアドレスY[13:0]=0により通常データが読み出されるビット線の位置を示す値である。
乗算回路441は、乗算回路431の出力値、及びα52を乗算し、乗算結果を後段の自乗演算回路451の入力端子、乗算回路442の第1の入力端子、及び乗算回路461の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、α(16+52)であり、自乗演算回路451の入力端子、乗算回路442の第1の入力端子、及び乗算回路461の第1の入力端子にはα(16+52)が入力される。
自乗演算回路451は、乗算回路441の出力端子に接続され、乗算回路441の出力値を自乗し、自乗結果を後段の自乗演算回路452の入力端子、乗算回路442の第2の入力端子、及び乗算回路462の第1の入力端子に対して出力する。上述の例であれば、自乗結果は、α(16+52)×2であり、自乗演算回路452の入力端子、乗算回路442の第2の入力端子、及び乗算回路462の第1の入力端子にはα(16+52)×2が入力される。
In the
The
The
乗算回路442は、乗算回路441の出力端子と自乗演算回路451の出力端子とに接続され、乗算回路441、及び自乗演算回路451の各出力値を乗算し、乗算結果を後段の乗算回路463の第1の入力端子に対して出力する。上述の例であれば、乗算結果は、α(16+52)×3であり、乗算回路463の第1の入力端子にはα(16+52)×3が入力される。
自乗演算回路452は、自乗演算回路451の出力端子に接続され、自乗演算回路451の出力値を自乗し、自乗結果を後段の乗算回路464の第1の入力端子に対して出力する。上述の例であれば、自乗結果は、α(16+52)×4であり、乗算回路464の第1の入力端子にはα(16+52)×4が入力される。
The
The
乗算回路461は、ラッチ部35における係数ラッチの出力端子と乗算回路441の出力端子とに接続され、係数ラッチ、及び乗算回路441の各出力値を乗算し、乗算結果をe1xとしてチェン探索部33に対して出力する。上述の例であれば、係数ラッチは係数ラッチ35_0であり、乗算回路461の第2の入力端子には誤り係数e1が入力され、乗算回路461の乗算結果は、e1(α(16+52))である。これにより、チェン探索部33のセレクタ301にはe1(α(16+52))が、すなわちxとして(α(16+52))が入力される。
The
乗算回路462は、ラッチ部35における係数ラッチの出力端子と自乗演算回路451の出力端子とに接続され、係数ラッチ、及び自乗演算回路451の各出力値を乗算し、乗算結果をe2xとしてチェン探索部33に対して出力する。上述の例であれば、係数ラッチは係数ラッチ35_0であり、乗算回路462の第2の入力端子には誤り係数e2が入力され、乗算回路462の乗算結果は、e2(α(16+52)×2)である。これにより、チェン探索部33のセレクタ302にはe2(α(16+52))2が、すなわちxとして(α(16+52))が入力される。
The
乗算回路463は、ラッチ部35における係数ラッチの出力端子と乗算回路442の出力端子とに接続され、係数ラッチ、及び乗算回路442の各出力値を乗算し、乗算結果をe3xとしてチェン探索部33に対して出力する。上述の例であれば、係数ラッチは係数ラッチ35_0であり、乗算回路463の第2の入力端子には誤り係数e3が入力され、乗算回路463の乗算結果は、e3(α(16+52)×3)である。これにより、チェン探索部33のセレクタ303にはe3(α(16+52))3が、すなわちxとして(α(16+52))が入力される。
The
乗算回路464は、ラッチ部35における係数ラッチの出力端子と自乗演算回路452の出力端子とに接続され、係数ラッチ、及び自乗演算回路452の各出力値を乗算し、乗算結果をe4xとしてチェン探索部33に対して出力する。上述の例であれば、係数ラッチは係数ラッチ35_0であり、乗算回路463の第2の入力端子には誤り係数e4が入力され、乗算回路464の乗算結果は、e4(α(16+52)×4)である。これにより、チェン探索部33のセレクタ304にはe4(α(16+52))4が、すなわちxとして(α(16+52))が入力される。
The
以上説明したように、代入値計算部36では、データ列の位置を示すアドレス(カラムアドレスY)と、ラッチ部35が記憶する係数(エラー位置探索方程式の係数e1〜e4)とを用いてエラー位置探索方程式Λ(x)に代入する代入値x(上記例ではx=α(16+52))を算出する。
これによって、メモリセルからのデータ読み出し時にページバッファ12に格納される1ページ分のデータと、パリティデータを基に、セクタ毎の誤り係数をラッチ部35にラッチしておけば、この係数とカラムアドレスY[13:4]とに基づいてエラー位置探索方程式Λ(x)に代入する代入値xを求めることができる。
チェン探索部33では、代入値xが入力されると、上述した様に、この代入値を初期値とする16ビット分(上記例ではx=α(16+52)、α(17+52)、α(18+52)、・・・、α(30+52)、α(31+52)の16ビット)に対して、エラー位置探索方程式Λ(x)が0になるか否かがチェックされる。また、チェン探索部33は、このチェック結果に応じてエラー検出信号ERR<0>〜ERR(15>を出力する。誤り訂正部34には、アドレスデコーダ17がページバッファ12にカラムアドレスを入力することにより、このカラムアドレスが示す位置のメモリセルのデータが入力される。誤り訂正部は、この入力されたデータを、チェン探索部33が出力するエラー検出信号に応じて、エラーデータである場合は誤り訂正され、訂正されたデータを、エラーデータでない場合はそのままのデータを出力する。
As described above, the substitution
Accordingly, if the error coefficient for each sector is latched in the
When the substitution value x is input to the
次に、上述したラッチ部35と、代入値計算部36とを有する誤り検出訂正回路13を備えた不揮発性半導体記憶装置10について、ECC処理における遅延時間(1st Access Overhead)の短縮に関する効果について、図面を参照しつつ説明する。図5は、誤り検出訂正回路13aの詳細な構成例を示す図である。また、図6は、誤り検出訂正回路13と誤り検出訂正回路13aとの比較を説明するための図である。
図5において、図2と同一の部分には同一の符号を付しており、その説明は省略する。図5に示す誤り検出訂正回路13aは、図2に示す誤り検出訂正回路13と相違し、ラッチ部35、及び代入値計算部36を備えていない。また、誤り検出訂正回路13aでは、誤り訂正部34の出力結果がバッファ14を介して、訂正済データCorrected DataとしてI/Oパッド15に出力される構成となっている点が誤り検出訂正回路13とは相違する。
Next, regarding the nonvolatile
In FIG. 5, the same parts as those in FIG. 2 are denoted by the same reference numerals, and the description thereof is omitted. Unlike the error detection and
以下、図6を参照しつつ、誤り検出訂正回路13、及び誤り検出訂正回路13a各々での1st Access Overheadについて説明する。
誤り検出訂正回路13aでは、1セクタにおける復号データのビット数は、4096ビット(=512kバイト)とパリディビット52ビット(=カラムアドレス 13ビット×4)の合計ビットである。これらのデータを一括で計算することは回路規模が大きくなるという点から現実的ではないので、シンドローム計算部31では、64ビット単位で計算を実行する。
演算のために基準となるクロック信号の周期を40nsとすると、シンドローム計算部31のシンドローム算出回路各々における計算時間は、クロック数clkが(4096+52)/64≒65clk必要となり、40ns×65clk=2.6μs(μ秒)となる。また、シンドローム計算部31におけるシンドローム算出回路各々においては、4次方程式の解(エラー位置探索方程式の係数e4、e3、e2、e1、及びe0)を求めるため、40ns×20clk=0.8μsとなる。さらに、チェン探索部33においては、上述の様に16ビットを一括して誤りの有無を判定する。この判定に要する計算時間は、クロック数clkが(4096+52)/16≒260clk必要となり、40ns×260clk=10.4μsとなる。誤り訂正部34では、入力されるデータの訂正を、チェン探索部33での判定と同時に、すなわちエラー検出信号を用いて行うので、計算時間を要しない。
Hereinafter, the 1st Access Overhead in each of the error detection and
In the error detection and
If the period of the clock signal used as a reference for calculation is 40 ns, the calculation time in each syndrome calculation circuit of the
つまり、ECC処理に要する時間は、以上の計算時間を合計して、1セクタの512バイトあたりについて、2.6μs+0.8μs+10.4μs=13.8μsとなる。
図6(a)は、時刻t0からセクタ0(Sector<0>)、セクタ1(Sector<1>)、セクタ2(Sector<2>)、セクタ3(Sector<3>)の順番に、ECC処理が進むことを示している。シンドローム計算部31におけるシンドローム算出回路31_1では、シンドロームS1(Partial Syndorome)の計算に2.6μsを要する。そして、次段の誤り係数計算部32では、エラー位置探索方程式の係数e4、e3、e2、e1、及びe0の計算に0.8μsを要する。次段のチェン探索部33では、入力されるデータの訂正に10.4μsを要する、なお、バッファ14の書き込みに要する時間(SRAMへのData Out)の時間は、短いものとし、この10.4μsに含まれるものとする。
以上のECC処理が、セクタ2、セクタ3、及びセクタ4についても実行され、ECC処理開始から55.2μsの時間を要して、時刻t1において終了する。つまり、任意のカラムアドレスを入力して、そのカラムアドレスが位置を示すビットのデータの外部への読み出しは、バッファ14に1ページ全てのセルの訂正後のデータが書き込まれるまでの時間待たなければ可能とならない。このバッファ14に1ページ全てのセルの訂正後のデータが書き込まれるまでの時間が、1st Access Overheadの55.2μsであり、この時間はECC回路を搭載しないNAND型フラッシュメモリのほぼ2倍に達してしまう。
That is, the time required for the ECC processing is 2.6 μs + 0.8 μs + 10.4 μs = 13.8 μs per 512 bytes of one sector by adding the above calculation times.
FIG. 6A shows the ECC in order of sector 0 (Sector <0>), sector 1 (Sector <1>), sector 2 (Sector <2>), and sector 3 (Sector <3>) from time t0. It shows that the process proceeds. The syndrome calculation circuit 31_1 in the
The above ECC processing is also executed for
これに対して、誤り検出訂正回路13では、メモリセルからページバッファ12へのセルデータCell Dataの読み出しに引き続いて、1ページ分のデータに基づいて、シンドローム計算部31のシンドローム算出回路各々において、セクタ毎に順次行う。また、誤り係数計算部32では、4次方程式の解(エラー位置探索方程式の係数e4、e3、e2、e1、及びe0)を求める計算を、セクタ毎に順次行う。図6(b)は、時刻t0からセクタ0(Sector<0>)、セクタ1(Sector<1>)、セクタ2(Sector<2>)、セクタ3(Sector<3>)について、順次、シンドローム(Partial Syndorome)、エラー位置探索方程式の係数e4、e3、e2、e1、及びe0の計算処理が進むことを示している。これらの計算処理は、ECC処理開始から13.6μsの時間を要して、時刻t2において終了する。なお、各計算の処理時間は、誤り検出訂正回路13aと同じ時間としている。
On the other hand, in the error detection and
この時刻t2において、ラッチ部35の係数ラッチ各々には、セクタ1〜セクタ4におけるエラー位置探索方程式の係数e4、e3、e2、e1、及びe0がラッチされる。つまり、時刻t2以降において、代入値計算部36に任意のカラムアドレスを入力すれば、そのカラムアドレスが位置を示すビットのデータの誤り判定をチェン探索部33において行うことができる。また、誤り訂正部34では、カラムアドレスにより位置が示されるセルのデータの誤りを検出し、訂正してI/Oパッド15から外部へ出力することができる。つまり、誤り検出訂正回路13aと比較して、バッファ14に1ページ全てのセルの訂正後のデータを書き込む処理を不要とし、1st Access Overheadを13.6μsまで短縮することができる。なお、図6(b)において、データの外部への読み出しを、ページバッファ12内のビットのデータの配置順(カラムアドレス順)、すなわちセクタの順番に示している。しかしながら、時刻t2以降は、ランダムアクセスが可能であり、どのセクタにおける任意の位置のビットを誤り訂正して直ちに出力することができる。つまり、データ出力前に必要な計算時間として、訂正用係数の計算時間(代入値計算部36とチェン探索部33による計算時間であり、40ns程度)要するだけであり、誤り検出訂正回路13aと比較して、1st Access Overheadの大幅な短縮を実現できる。
At time t2, the coefficients e 4 , e 3 , e 2 , e 1 , and e 0 of the error position search equation in
このように、本発明の誤り検出訂正回路13は、データ列を格納するデータ格納部(ページバッファ12)と、データ列からシンドロームを計算するシンドローム計算部31と、シンドロームからエラー位置探索方程式の係数を算出する誤り係数計算部32と、係数を記憶するラッチ部35と、データ列の位置を示すアドレス(カラムアドレス)と、ラッチ部35が記憶する係数とを用いてエラー位置探索方程式Λ(x)に代入する代入値xを算出する代入値計算部36と、データ列の出力時に、代入値xのエラー位置探索方程式Λ(x)への代入結果に応じて、データ列のビット毎に誤りが有るか否かを示すエラー検出信号ERR<i>を出力するチェン探索部33と、エラー検出信号ERR<i>によりデータ列におけるビットのデータの誤りを訂正して出力する誤り訂正部34と、を備える。
As described above, the error detection and
本発明の誤り検出訂正回路13は、エラー位置探索方程式の係数を記憶するラッチ部35と、この係数とビットの位置とからエラー位置探索方程式への代入値を計算する代入値計算部36とを設けた。そのため、データの読み出し時に、代入値計算部36に読み出すべきビットのアドレス(カラムアドレス)を入力すれば、チェン探索部33が当該ビットのデータに誤りが有るか否かを検出する。誤り訂正部34は、当該ビットのデータに誤りがあればビットのデータを訂正して訂正後のビットのデータを出力し、誤りがない場合はビットのデータをそのまま出力する。よって、データ列(セルデータCell Data)のうち任意のアドレスのビットのデータについて、誤り訂正を行って訂正後のデータを高速に読み出すことができる誤り検出訂正回路、及びメモリ装置を提供することができる。
The error detection and
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes a design and the like within the scope not departing from the gist of the present invention.
10…不揮発性半導体記憶装置、11…メモリセルアレイ、12…ページバッファ、13,13a…誤り検出訂正回路、14…バッファ、15…I/Oパッド、16…制御回路、17…アドレスデコーダ、18…ロウ及びブロックデコーダ、30…デコーダ部、31…シンドローム計算部、31_1,31_2,31_3,31_4…シンドローム算出回路、32…誤り係数計算部、33…チェン探索部、34…誤り訂正部、34_i,330_1,330_2,330_15,330_16…排他的論理和演算回路、35…ラッチ部、35_1,35_2,35_3,35_4…係数ラッチ、36…代入値計算部、40…エンコーダ部、41…パリティ生成回路、301,302,303,304,401,402,403,404,405,406,407,408…セレクタ、321_1,321_2,321_16,322_1,322_2,322_16,323_1,323_2,323_16,324_1,324_2,324_16…定数乗算回路、310,311,312,313,314…フリップフロップ、340_1,340_2,340_15,340_16…論理反転回路、411,412,413,414,421,422,431,441,442,461,462,463,464…乗算回路、451,452…自乗演算回路
DESCRIPTION OF
Claims (3)
前記データ列からシンドロームを計算するシンドローム計算部と、
前記シンドロームからエラー位置探索方程式の係数を算出する誤り係数計算部と、
前記係数を記憶するラッチ部と、
前記データ列の位置を示すアドレスと、前記ラッチ部が記憶する係数とを用いて前記エラー位置探索方程式に代入する代入値を算出する代入値計算部と、
前記データ列の出力時に、前記代入値の前記エラー位置探索方程式への代入結果に応じて、前記データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部と、
前記エラー検出信号により前記データ列におけるビットのデータの誤りを訂正して出力する誤り訂正部と、を備えることを特徴とする誤り検出訂正回路。 A data storage unit for storing data strings;
A syndrome calculation unit for calculating a syndrome from the data string;
An error coefficient calculation unit for calculating a coefficient of an error position search equation from the syndrome;
A latch unit for storing the coefficient;
An substitution value calculation unit that calculates an substitution value to be substituted into the error position search equation using an address indicating the position of the data string and a coefficient stored in the latch unit;
A chain search unit for outputting an error detection signal indicating whether or not there is an error for each bit of the data string, according to a result of substitution of the substitution value into the error position search equation when the data string is output;
An error correction unit comprising: an error correction unit that corrects and outputs an error of bit data in the data string by the error detection signal.
前記ラッチ部が、前記複数のデータ列の各々に対応して設けられることを特徴とする請求項1に記載の誤り検出訂正回路。 The data string is composed of a plurality of data strings,
The error detection and correction circuit according to claim 1, wherein the latch unit is provided corresponding to each of the plurality of data strings.
前記データ格納部は記憶素子から読み出したデータ列を格納する回路であり、
前記アドレスは前記記憶素子のメモリにおける列の位置を示すカラムアドレスであることを特徴とするメモリ装置。 A memory device comprising the error detection and correction circuit according to claim 1,
The data storage unit is a circuit for storing a data string read from a storage element,
The memory device, wherein the address is a column address indicating a column position in the memory of the storage element.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012173182A JP2014033364A (en) | 2012-08-03 | 2012-08-03 | Error detection and correction circuit and memory device |
KR1020130039901A KR20140018095A (en) | 2012-08-03 | 2013-04-11 | Error check and correction circuit and memory device |
US13/958,074 US8990667B2 (en) | 2012-08-03 | 2013-08-02 | Error check and correction circuit, method, and memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012173182A JP2014033364A (en) | 2012-08-03 | 2012-08-03 | Error detection and correction circuit and memory device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014033364A true JP2014033364A (en) | 2014-02-20 |
Family
ID=50266407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012173182A Pending JP2014033364A (en) | 2012-08-03 | 2012-08-03 | Error detection and correction circuit and memory device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2014033364A (en) |
KR (1) | KR20140018095A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021163352A (en) * | 2020-04-02 | 2021-10-11 | ウィンボンド エレクトロニクス コーポレーション | Semiconductor storing apparatus and readout method |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529672B2 (en) * | 2014-09-25 | 2016-12-27 | Everspin Technologies Inc. | ECC word configuration for system-level ECC compatibility |
TWI566091B (en) | 2015-09-10 | 2017-01-11 | 慧榮科技股份有限公司 | Method for decoding an error correction code, and associated decoding circuit |
KR102558044B1 (en) | 2016-06-14 | 2023-07-20 | 에스케이하이닉스 주식회사 | Comparison circuit and semiconductor device |
-
2012
- 2012-08-03 JP JP2012173182A patent/JP2014033364A/en active Pending
-
2013
- 2013-04-11 KR KR1020130039901A patent/KR20140018095A/en not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021163352A (en) * | 2020-04-02 | 2021-10-11 | ウィンボンド エレクトロニクス コーポレーション | Semiconductor storing apparatus and readout method |
JP7018089B2 (en) | 2020-04-02 | 2022-02-09 | ウィンボンド エレクトロニクス コーポレーション | Semiconductor storage device and readout method |
US11487614B2 (en) | 2020-04-02 | 2022-11-01 | Winbond Electronics Corp. | Semiconductor storing apparatus and readout method |
Also Published As
Publication number | Publication date |
---|---|
KR20140018095A (en) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4538034B2 (en) | Semiconductor memory device and control method thereof | |
US9690650B2 (en) | Storage scheme for built-in ECC operations | |
US8990667B2 (en) | Error check and correction circuit, method, and memory device | |
US20070198902A1 (en) | Semiconductor memory device | |
US20090319863A1 (en) | Error-correcting system of semiconductor memory, error-correcting method, and memory system with error-correcting system | |
JP2006190425A (en) | Semiconductor memory device | |
JP2003157697A (en) | Semiconductor memory | |
JP2012137994A (en) | Memory system and controlling method thereof | |
JP2005346758A (en) | Semiconductor storage apparatus and signal processing system | |
JP5657079B1 (en) | Semiconductor memory device | |
US9384083B2 (en) | Error location search circuit, and error check and correction circuit and memory device including the same | |
JP2010512601A (en) | Error detection and correction method and apparatus using cache in memory | |
KR102064508B1 (en) | Ecc circuit and memory device including the same | |
JP2014033364A (en) | Error detection and correction circuit and memory device | |
JP6018508B2 (en) | Nonvolatile semiconductor memory device and test method thereof | |
US9152493B2 (en) | Error check and correction circuit and semiconductor memory | |
US20210384919A1 (en) | Error correction device and method for generating syndromes and partial coefficient information in a parallel | |
JP6479638B2 (en) | Video server apparatus and data writing / reading method | |
KR102021560B1 (en) | Error bit search circuit, error check and correction circuit therewith, and memory device therewith | |
JP7178465B1 (en) | semiconductor storage device | |
JP2014116659A (en) | Error detection and correction circuit and semiconductor storage device | |
US11689216B1 (en) | Low gate-count generalized concatenated code (GCC) by online calculation of syndromes instead of buffer | |
US20240022261A1 (en) | Error correction code circuit and semiconductor apparatus including the error correction code circuit | |
TWI753814B (en) | Semiconductor storage apparatus and ecc related information reading method | |
KR102027949B1 (en) | Error check and correction circuit and semiconductor memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141226 |