JP2009282923A - Semiconductor storage device and nonvolatile memory - Google Patents
Semiconductor storage device and nonvolatile memory Download PDFInfo
- Publication number
- JP2009282923A JP2009282923A JP2008137059A JP2008137059A JP2009282923A JP 2009282923 A JP2009282923 A JP 2009282923A JP 2008137059 A JP2008137059 A JP 2008137059A JP 2008137059 A JP2008137059 A JP 2008137059A JP 2009282923 A JP2009282923 A JP 2009282923A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- parity
- pages
- memory
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Description
本発明は、半導体記憶装置に係り、特に不揮発性メモリとメモリコントローラとを備えた半導体記憶装置及び不揮発性メモリに関する。 The present invention relates to a semiconductor memory device, and more particularly to a semiconductor memory device and a nonvolatile memory including a nonvolatile memory and a memory controller.
メモリカード等への利用により、NAND型フラッシュメモリの需要が年々高まっている。用途が拡大するにつれ、より大容量かつ高速に動作するメモリカードが求められている。その要求に応えるため、より微細なプロセスを使用したNAND型フラッシュメモリが開発されている。 The demand for NAND flash memories is increasing year by year due to the use of memory cards and the like. As the application expands, a memory card that operates at a higher capacity and at a higher speed is required. In order to meet the demand, a NAND flash memory using a finer process has been developed.
NAND型フラッシュメモリはメモリコントローラによりデータの書込み及び読出し時の動作が制御される。ECC回路を有するメモリコントローラは、データの書込み時は、ホスト機器から入力したデータにパリティを付加してNAND型フラッシュメモリに記憶させ、データの読出し時は、NAND型フラッシュメモリからデータをそのパリティと共に読み出し、誤り箇所(アドレス等)を検出し、データの誤り訂正を行う。 In the NAND flash memory, operations at the time of data writing and reading are controlled by a memory controller. A memory controller having an ECC circuit adds parity to data input from the host device when data is written and stores it in the NAND flash memory, and stores data from the NAND flash memory together with the parity when data is read. Read, detect error location (address, etc.) and correct data error.
NAND型フラッシュメモリの記憶領域に記憶されるデータは、複数のブロック(消去単位)で構成され、各ブロックのデータは所定数(例えば128)のページで構成される。NAND型フラッシュメモリに対するデータの書込み/読出しの単位は、1ページ分のデータ(ページデータ)または1ページ分のデータを幾つかに同等に分割したデータに対してパリティを付加したデータとされる。 The data stored in the storage area of the NAND flash memory is composed of a plurality of blocks (erase units), and the data in each block is composed of a predetermined number (for example, 128) pages. The unit for writing / reading data to / from the NAND flash memory is data for one page (page data) or data obtained by adding parity to data obtained by equally dividing data for one page into several.
ECC回路に入力するデータ長とパリティのビット数はNAND型フラッシュメモリの1ページのビット数に依存する。1ページのビット数はNAND型フラッシュメモリに設定可能な、データ長とそれに付加されるパリティ長との和で規定される。NAND型フラッシュメモリにおいて、従来は一定のデータ長を有するデータに対して付加されるパリティビット数は一定(固定)であるために、どのページデータ(またはその分割データ)に対してもパリティとして1ページの記憶領域に収まる最大のパリティビット数を付加すると、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする。つまり、ページによって、パリティビット数が多過ぎたり、少なかったりする。特に、単体のNAND型フラッシュメモリにページごとに評価試験を行い、エラー発生率の最も悪い(高い)評価値に合わせてパリティ数を決めていると、エラーが起きにくいページには過剰にパリティが付れられることになる。 The data length and the number of parity bits input to the ECC circuit depend on the number of bits in one page of the NAND flash memory. The number of bits per page is defined by the sum of the data length and the parity length added to the data length that can be set in the NAND flash memory. In the NAND flash memory, conventionally, the number of parity bits added to data having a constant data length is constant (fixed), so that any page data (or its divided data) has a parity of 1 If the maximum number of parity bits that can be stored in the page storage area is added, if the bit error occurrence rate varies from page to page, the error correction capability may be excessive or insufficient depending on the page. That is, depending on the page, the number of parity bits may be too much or too little. In particular, if an evaluation test is performed for each page in a single NAND flash memory and the number of parities is determined according to the evaluation value with the worst (high) error rate, excessive parity will be generated on pages where errors are unlikely to occur. It will be attached.
先行技術としては、多値セルメモリに対する読み出しデータのエラーをECCコードを利用して訂正するメモリコントローラがある(例えば、特許文献1参照)。
本発明は上記の問題に鑑み、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる半導体記憶装置及び不揮発性メモリを提供することを目的とするものである。 In view of the above problems, the present invention effectively allocates the number of bits used for parity among a plurality of pages in a non-volatile memory having a different bit error occurrence rate for each page, thereby enabling a page having a high bit error occurrence rate. An object of the present invention is to provide a semiconductor memory device and a nonvolatile memory that can perform error correction with higher correction capability.
本願発明の一態様によれば、複数のページで構成され、データとそのパリティを記憶する不揮発性メモリと、前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページに割り振ることを特徴とする半導体記憶装置が提供される。 According to one aspect of the present invention, the nonvolatile memory is composed of a plurality of pages and stores data and the parity thereof, and when writing data to the nonvolatile memory, the parity is added to the page data and the nonvolatile memory is added. A memory controller having a function of reading page data and its parity from the nonvolatile memory, detecting an error location, and correcting the error of the data, The memory controller allocates, to each page, the number of all parity bits that can be used in a predetermined number of pages that can be stored in the nonvolatile memory according to the error occurrence rate of each page. A semiconductor memory device is provided.
本願発明の他の態様によれば、メモリ領域が、同一長のページデータそれぞれを記憶可能な複数のデータ領域と、この複数のデータ領域それぞれに連接して設けられる、互いに同一長の複数のパリティ領域とを備えて構成される不揮発性メモリであって、データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリが提供される。 According to another aspect of the present invention, a memory area includes a plurality of data areas that can store page data of the same length, and a plurality of parities that are connected to each of the plurality of data areas and have the same length. And a predetermined number of parity areas in the plurality of parity areas corresponding to the predetermined number of data areas in the plurality of data areas capable of storing data. There is provided a non-volatile memory characterized in that all usable parity areas are allocated for each page according to the error occurrence rate of each page.
本発明によれば、ページ毎にビットエラー発生率が異なる不揮発性メモリにおいて、複数のページ間でパリティに使用するビット数を有効に割り当てることにより、ビットエラー発生率が高いページに対して、より訂正能力の高い誤り訂正を行うことができる不揮発性半導体記憶装置及び不揮発性メモリを提供することが可能となる。 According to the present invention, in a non-volatile memory having a different bit error rate for each page, by effectively allocating the number of bits used for parity among a plurality of pages, a page with a higher bit error rate is more It is possible to provide a nonvolatile semiconductor memory device and a nonvolatile memory that can perform error correction with high correction capability.
発明の実施の形態について図面を参照して説明する。
図11は、本発明の関連技術の半導体記憶装置におけるNAND型フラッシュメモリの記憶領域にページ単位に記憶されたデータの構成を示している。NAND型フラッシュメモリは例えばページ番号0〜127の128ページ分のデータを記憶する領域を備えている。1ページ分のデータは、例えば2つのECCの訂正単位(この単位は書込み時及び読出し時の単位でもある)で構成され、各訂正単位はデータとそのパリティ(斜線にて示す)で構成されている。
Embodiments of the invention will be described with reference to the drawings.
FIG. 11 shows the configuration of data stored in units of pages in the storage area of the NAND flash memory in the semiconductor memory device according to the related art of the present invention. The NAND flash memory has an area for storing data for 128 pages of page numbers 0 to 127, for example. One page of data is composed of, for example, two ECC correction units (this unit is also a unit for writing and reading), and each correction unit is composed of data and its parity (shown by diagonal lines). Yes.
NAND型フラッシュメモリからデータを読み出す際には、メモリコントローラの制御によってNAND型フラッシュメモリからECCの訂正単位の一組のデータ及びパリティが読み出されてECC回路に入力され、誤り検出及び訂正が行われる。 When data is read from the NAND flash memory, a set of data and parity of the ECC correction unit is read from the NAND flash memory and input to the ECC circuit under the control of the memory controller, and error detection and correction are performed. Is called.
ところで、この例ではNAND型フラッシュメモリからECC回路に入力するデータ長とパリティビット数(データ長とパリティ長でECCの訂正単位を構成する)が、全てのページにおいて同じである。従って、1ページにECC訂正単位が2つ(2フレームという)あるとして、1ページで使用できるパリティのビット数がnビットだとすると、全てのページでECC回路に入力するパリティのビット数はn/2ビットとなる。 In this example, the data length and the number of parity bits (the ECC correction unit is constituted by the data length and the parity length) input from the NAND flash memory to the ECC circuit are the same for all pages. Therefore, assuming that there are two ECC correction units (referred to as two frames) in one page and the number of parity bits that can be used in one page is n bits, the number of parity bits input to the ECC circuit in all pages is n / 2. A bit.
データ長に対するパリティビット数は一定(固定)であるために、1ページに収まる最大のパリティビット数を設定したとき、ページ毎にビットエラー発生率が異なる場合は、ページによってエラー訂正能力が過剰になったり、足りなかったりする問題が生ずる。 Since the number of parity bits with respect to the data length is constant (fixed), when the maximum number of parity bits that can fit on one page is set, if the bit error occurrence rate varies from page to page, the error correction capability is excessive depending on the page. The problem of becoming missing or missing arises.
そこで、本発明の実施形態においては、ページ毎にビットエラー発生率が異なるNAND型フラッシュメモリにおいて、複数のページ間でパリティのビット数を割り振るようにし、各ページに使用するパリティビット数を、ビットエラー発生率が高いページに対してより多く割り当て、ビットエラー発生率が低いページに対してより少なく割り当てることにより、限られたパリティビット数をより有効に使用し、ビットエラー発生率が高いページに対してはより訂正能力の高い誤り訂正を行えるようにしたものである。 Therefore, in the embodiment of the present invention, in the NAND flash memory in which the bit error occurrence rate is different for each page, the number of parity bits is allocated among a plurality of pages, and the number of parity bits used for each page is set to the bit number. By assigning more to pages with a high error rate and assigning less to pages with a low bit error rate, the limited number of parity bits can be used more effectively and pages with a high bit error rate On the other hand, error correction with higher correction capability can be performed.
[第1の実施形態]
図1は本発明の第1の実施形態の半導体記憶装置のブロック図を示している。
図1において、半導体記憶装置300は、メモリコントローラ100と、不揮発性メモリであるNAND型フラッシュメモリ200とを備えている。
[First Embodiment]
FIG. 1 is a block diagram of a semiconductor memory device according to the first embodiment of the present invention.
In FIG. 1, a
NAND型フラッシュメモリ200は、複数のページで構成され、データとそのパリティを一組とする訂正単位で記憶する。訂正単位は、書込み単位又は読出し単位と同じであって、1ページ分であってもよいし、1/2ページ分、又は1/4ページ分であってもよい。
The
メモリコントローラ100は、SRAMバッファ101と、ECC回路102を備えている。
SRAMバッファ101は、ホスト機器400からのデータを一時保持し、所定長(例えば訂正単位)のデータとなったらNAND型フラッシュメモリ200に書き込むためと、NAND型フラッシュメモリ200から読み出したデータを一時保持し、所定長(例えば訂正単位)のデータにつき誤り訂正を行った後にホスト機器400へ出力するためにある。
The
The
ECC回路102は、NAND型フラッシュメモリ200に書き込む前に、SRAMバッファ101に保持した所定長のデータにつきこのECC回路102を通して該データの訂正に必要なパリティを付けてからNAND型フラッシュメモリ200に書き込む。NAND型フラッシュメモリ200からデータを読み出すときは、SRAMバッファ101に一時保持し同時にこのデータをECC回路102へも入力し、ECC回路102は取り込んだデータのパリティを用いて該データの誤り箇所を検出し、SRAMバッファ101内のデータ(ECC回路102に取り込んだデータと同じもの)を訂正しにいく。
Before writing to the
なお、データ書き込み時にSRAMバッファ101へのデータが所定長に満たない時はNAND型フラッシュメモリ200が足らない分のデータをSRAMバッファ101に書き込んで所定長のデータとした上でECC回路102へ送り、ECC回路102でパリティを付加してNAND型フラッシュメモリ200へ書き込むようにしている。
When the data to the
従って、メモリコントローラ100内のSRAMバッファ101及びECC回路102は、NAND型フラッシュメモリ200へのデータの書込み時は、ホスト機器400から入力したデータにパリティを付加してNAND型フラッシュメモリ200に記憶させ、NAND型フラッシュメモリ200からのデータの読出し時は、NAND型フラッシュメモリ200からデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を有する。
Therefore, the
尚、ここでは、ホスト機器400と半導体記憶装置300が別構成の例を示しているが、半導体記憶装置300はホスト機器400内に組み込まれた態様であってもよい。
Here, an example in which the
メモリコントローラ100内のECC回路102は、データの書き込み時に、NAND型フラッシュメモリ200に記憶可能な複数のページのうちの連続する所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ(このときのページは1つの訂正単位に相当する)に割り当てる。或いは、メモリコントローラ100内のECC回路102は、NAND型フラッシュメモリ200に記憶する複数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り当ててもよい。これらについては後で述べる。
The
図2は図1における読み出し時の動作を説明する図である。NAND型フラッシュメモリ200から読み出されたデータはSRAMバッファ101及びECC回路102へ時間t1で同時に入力され、取り込まれる。ECC回路102では、データの取り込みが終わった後に時間t2にて取り込んだデータの誤り(エラー)訂正の計算を開始する。この計算では、訂正単位のデータに付加されているパリティを用いてデータの何処が壊れているかを解析する。そして、ECC回路102は、エラーの解析の計算が終了した時点t3でその解析結果に基づいてSRAMバッファ101内のデータ(このデータはECC回路102に取り込んだデータと同じものであるのでエラー箇所も同様である)を訂正しにいき、時間t4にてエラー訂正を完了する。
FIG. 2 is a diagram for explaining the operation at the time of reading in FIG. Data read from the
図3はNAND型フラッシュメモリ200における、消去単位であるブロック領域(以下、単にブロック)と、訂正単位(書込み単位又は読出し単位に同じ)であるページ領域(以下、単にページ)を説明する図である。
NAND型フラッシュメモリ200のメモリ領域は、図3(A)に示すように複数のブロックで構成されている。そして、各ブロックは、図3(B)に示すように複数のページで構成されている。NAND型フラッシュメモリ200は、消去単位のブロックでデータを消去可能であるが、ブロックを構成する訂正単位のページでは消去することができない。
FIG. 3 is a diagram for explaining a block area (hereinafter simply referred to as a block) that is an erase unit and a page area (hereinafter simply referred to as a page) that is a correction unit (same as a write unit or a read unit) in the
The memory area of the
1ブロックは、所定数の複数のページ、例えば1ページ分2kbyteのページが128ページ(=256kbyte)分のデータ領域で構成されるが、実際にはこのデータ領域に+αして、余りの領域を設けている。この余り領域は、データ領域を構成する全てのページのそれぞれのページの一定長のデータに対して誤り訂正を行うためにパリティデータを記憶したり、メモリ制御するために制御データを記憶したりするのに用いることが可能である。この実施形態では、この余り領域を図3(C)に示すようにパリティ領域と呼び、パリティビット(パリティ長Zbyte)を記憶するためのみに使用する場合について説明する。 One block is composed of a data area of 128 pages (= 256 kbytes) of a predetermined number of pages, for example, a page of 2 kbytes for one page. Provided. This extra area stores parity data for performing error correction on data of a certain length of each page of all pages constituting the data area, and stores control data for memory control. Can be used. In this embodiment, the remainder area is called a parity area as shown in FIG. 3C, and a case where it is used only for storing a parity bit (parity length Zbyte) will be described.
図4は訂正単位の構成を示している。訂正単位は、データとそのパリティで構成されている。データは例えば2kbyte,1kbyte(=1024byte),又は512byteなどである。図3(C)に示したように1ページのデータ部分が2kbyteであれば、訂正単位のデータ部分が2kbyte,1kbyte,512byteはそれぞれ、ページデータ部分を分割無し、2分割、4分割したものに相当している。なお、現在では、1ページのデータ部分が8kbyteのものも出現している。 FIG. 4 shows the configuration of the correction unit. The correction unit is composed of data and its parity. The data is, for example, 2 kbytes, 1 kbyte (= 1024 bytes), or 512 bytes. As shown in FIG. 3 (C), if the data portion of one page is 2 kbytes, the data portion of the correction unit is 2 kbytes, 1 kbyte, and 512 bytes, respectively. It corresponds. At present, a data portion of one page is 8 kbytes.
図5はデータに付加するパリティのサイズによって訂正可能なデータのビット数を示している。例えば、8bit訂正するのに10byteのパリティが必要である。
図6は第1の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における、2つのページ間で使用するパリティのビット数を割り振った状態の一例を説明する図である。
FIG. 5 shows the number of bits of data that can be corrected by the size of the parity added to the data. For example, 10-byte parity is required to correct 8 bits.
FIG. 6 is a diagram illustrating an example of a state in which the number of parity bits used between two pages is allocated in the storage area of the nonvolatile memory in the semiconductor storage device of the first embodiment.
従来は全てのページでパリティに使用するビット数は均等であった。つまり、1ページで使用できるパリティのビット数がnビットだとすると、1ページに訂正単位が2フレームある場合は、全てのページでECC回路102に入力するパリティの訂正単位のビット数はn/2ビットとなる。
Conventionally, the number of bits used for parity in all pages is uniform. In other words, assuming that the number of parity bits that can be used in one page is n bits, when there are two correction units in one page, the number of parity correction units input to the
2つの連続するページ間でパリティに使用するビット数を割り振る場合、2つの連続する奇偶ページのうちの偶数ページのパリティビット数n/2からsビットを奇数ページのパリティとして使用すると、奇数ページのパリティ数はn/2+sとなり、従来のn/2ビット使用したエラー訂正より訂正能力を大きくできる。その分、偶数ページのパリティビット数はn/2−sと少なくなる。しかも、2つの連続する奇偶ページ間のパリティビット数は、1ページで使用できるパリティのビット数nビットで変わらず一定であることは勿論である。従って、図6の例は、奇数ページのエラー発生率が高い場合に有用となる。 When allocating the number of bits to be used for parity between two consecutive pages, if the parity bit number n / 2 to s of the even page of the two consecutive odd / even pages is used as the parity of the odd page, the odd page The number of parity is n / 2 + s, and the correction capability can be increased compared to the conventional error correction using n / 2 bits. Accordingly, the number of parity bits of the even page is reduced to n / 2−s. Moreover, of course, the number of parity bits between two consecutive odd / even pages is constant without changing with the number of parity bits n bits that can be used in one page. Therefore, the example of FIG. 6 is useful when the error rate of odd pages is high.
なお、図6の例では、偶数ページと奇数ページとで奇数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成しているが、偶数ページをエラーが起きやすいページとしてパリティビット数を増やすように構成してもよい。 In the example of FIG. 6, the odd-numbered page is configured to increase the parity bit number as an error-prone page between the even-numbered page and the odd-numbered page. You may comprise so that it may increase.
図7は書き込み時に図6の2つの連続する奇偶ページ間でパリティに使用するビット数を割り振る場合のECC回路での動作を説明する図である。
図1のECC回路102において偶数ページ内の訂正単位のデータa又はbについては、図7(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、奇数ページ内の訂正単位のデータc又はdについては、図7(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+sのパリティを付加して出力する。
FIG. 7 is a diagram for explaining the operation in the ECC circuit when the number of bits used for parity is allocated between two consecutive odd / even pages in FIG. 6 at the time of writing.
With respect to the correction unit data a or b in the even page in the
次に、2つの連続する奇偶ページとして、ページ0とページ1についてNAND型フラッシュメモリ200に対する書き込み及び読み出しの動作例を説明する。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2+sを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図6のページ0及び1のようにページ0の領域の一部にページ1のパリティビット数の一部(斜線にて示す部分)が組み込まれるような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
Next, description will be given of an example of writing and reading operations with respect to the
At the time of writing, for example, 1 kbytes of raw data (data before parity is added) a and b are sequentially held in the
読み出し時は、NAND型フラッシュメモリ200からECC回路102に図6と同様なページ0についてはページ長の半分ずつ順次読み込み、次にページ1についてもページ長の半分ずつを順次読み込んだ後に、ページ0及びページ1間でパリティビット数の組み替えを行って、図6右側に示したページ0及びページ1のECCの訂正単位を得、これらの訂正単位のデータをSRAMバッファ101にも書き込み、図2で示したようにECC回路102内で訂正単位毎にデータの誤り(エラー)を検出して、SRAMバッファ101に保持しているデータの同じエラー箇所を訂正することになる。
At the time of reading, the
図8はNAND型フラッシュメモリの記憶領域において、2つの連続する奇偶ページ間において、(A)各ページのページ長を4分割して訂正単位とした場合、(B)各ページのページ長を2分割して訂正単位とした場合、(C)各ページのページ長を分割せずにそのページ長ままで訂正単位とした場合、の各場合について2ページ間の上下の訂正単位間でパリティビット数を奇数ページ2m+1に多く割り当て、偶数ページ2mに少なく割り当てた3つの例を示している。図8(A)〜(C)において、mは0以上の整数である。勿論、パリティビット数を偶数ページ2mに多く割り当て、奇数ページ2m+1に少なく割り当てて用いる構成も可能である。 FIG. 8 shows a storage area of a NAND flash memory, in which (A) the page length of each page is divided into four correction units between two consecutive odd / even pages, and (B) the page length of each page is 2 When divided into correction units, (C) When the page length of each page is not divided and is used as the correction unit, the number of parity bits between the upper and lower correction units between the two pages in each case Three examples are shown in which a large number is assigned to odd pages 2m + 1 and a small number is assigned to even pages 2m. 8A to 8C, m is an integer of 0 or more. Of course, a configuration in which a larger number of parity bits are allocated to the even page 2m and a smaller number is allocated to the odd page 2m + 1 is also possible.
図8(A)でページ長をX、データ長をy1、パリティ長をz1と文字変数で表すと、X=(y1+z1)×4 の関係となる。1ページ内のデータ長を例えば2kbyteとすると、データ長y1は512byteである。図8(B)でページ長をX、データ長をy2、パリティ長をz2と文字変数で表すと、X=(y2+z2)×2 の関係となる。1ページ内のデータ長を2kbyteとすると、データ長y2は1kbyteである。図8(C)でページ長をX、データ長をy3、パリティ長をz3と文字変数で表すと、X=y3+z3 の関係となる。1ページ内のデータ長を2kbyteとすると、データ長y3は2kbyteである。 In FIG. 8A, when the page length is represented by X, the data length is represented by y1, the parity length is represented by z1, and a character variable, X = (y1 + z1) × 4. If the data length in one page is 2 kbytes, for example, the data length y1 is 512 bytes. In FIG. 8B, when the page length is represented by X, the data length is represented by y2, the parity length is represented by z2 and a character variable, the relationship is X = (y2 + z2) × 2. If the data length in one page is 2 kbytes, the data length y2 is 1 kbyte. In FIG. 8C, when the page length is represented by X, the data length is represented by y3, the parity length is represented by z3, and a character variable, the relationship is X = y3 + z3. If the data length in one page is 2 kbytes, the data length y3 is 2 kbytes.
第1の実施形態によれば、不揮発性メモリであるNAND型フラッシュメモリの複数のページの内の2ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。 According to the first embodiment, a bit error occurrence rate is obtained by allocating a parity area of a storage area composed of two of a plurality of pages of a NAND flash memory which is a nonvolatile memory in accordance with a bit error occurrence rate. It is possible to allocate a larger number of bits to parity for a page with a high bit rate and to allocate a smaller number to a page with a low bit error occurrence rate, and to more effectively use a limited number of parity bits.
[第2の実施形態]
本発明の第2の実施形態の半導体記憶装置の構成は図1と同様である。
図9は第2の実施形態の半導体記憶装置における不揮発性メモリの記憶領域における3ページ間でパリティに使用するビット数を割り振った状態の一例を説明する図である。1ページで使用できるパリティのビット数がnビットとして説明する。
[Second Embodiment]
The configuration of the semiconductor memory device according to the second embodiment of the present invention is the same as that shown in FIG.
FIG. 9 is a diagram illustrating an example of a state in which the number of bits used for parity is allocated among three pages in the storage area of the nonvolatile memory in the semiconductor storage device of the second embodiment. In the following description, the number of parity bits that can be used in one page is n bits.
3つの連続するページ間でパリティに使用するビット数を割り振る場合、3つの連続するページのうちのページ3m(mは0以上の整数)のパリティビット数n/2からsビット、ページ3m+1からtビットをページ3m+2のパリティとして使用すると、ページ3m+2のパリティはn/2+s+tビットとなり、従来のn/2ビット使用したエラー訂正より訂正能力を大きくできる。その分、ページ3mのパリティビット数はn/2−sとなり、ページ3m+1のパリティビット数はn/2−tとなる。しかも、3つの連続するページ間で使用できるパリティビット数は、1ページで使用できるパリティのビット数nビットの3倍であり総パリティビット数が変わらず一定であることは勿論である。従って、図9の例は、ページ3m+2のエラー発生率が高い場合に有用となる。 When allocating the number of bits to be used for parity between three consecutive pages, the number of parity bits n / 2 to s bits of page 3m (m is an integer of 0 or more) of the three consecutive pages, pages 3m + 1 to t When bits are used as the parity of page 3m + 2, the parity of page 3m + 2 is n / 2 + s + t bits, and the correction capability can be increased compared to the conventional error correction using n / 2 bits. Accordingly, the number of parity bits of page 3m is n / 2−s, and the number of parity bits of page 3m + 1 is n / 2−t. In addition, the number of parity bits that can be used between three consecutive pages is three times the number of parity bits n that can be used in one page, and the total number of parity bits remains unchanged. Therefore, the example of FIG. 9 is useful when the error occurrence rate of the page 3m + 2 is high.
なお、図9の例では、3つのページ0,1,2のうちの3番目のページ2をエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成しているが、ページ0又は1の1番目又は2番目のページをエラーが最も起きやすいページとしてパリティビット数を最も増やすように構成することも可能である。
In the example of FIG. 9, the
図10は書き込み時に図9の3つの連続するページ間でパリティに使用するビット数を割り振る場合のECC回路での動作を説明する図である。
図1のECC回路102においてページ3m内の訂正単位のデータa又はbについては、図10(A)に示すようにデータa又はbがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−sのパリティを付加して出力する。また、ページ3m+1内の訂正単位のデータc又はdについては、図10(B)に示すようにデータc又はdがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2−tのパリティを付加して出力する。さらに、ページ3m+2内の訂正単位のデータe又はfについては、図10(C)に示すようにデータe又はfがECC回路102に入力されると、ECC回路102はそのデータに対してビット数n/2+s+tのパリティを付加して出力する。
FIG. 10 is a diagram for explaining the operation in the ECC circuit when the number of bits used for parity is allocated between three consecutive pages in FIG. 9 at the time of writing.
With respect to the correction unit data a or b in the page 3m in the
次に、3つの連続するページとして、ページ0とページ1とページ2についてNAND型フラッシュメモリ200に対する書き込み及び読み出しの動作例を説明する。
書き込み時は、ホスト機器400からのページ0に対応する訂正単位のデータとして例えば1kbyteの生データ(パリティが付く前のデータ)a,bをSRAMバッファ101に順次に保持した後、これらのデータa,bをECC回路102に順次に取り込み、ECC回路102にてデータa,bにそれぞれパリティ数n/2−sを順次に付加した状態で保持する。次に、ページ1に対応する訂正単位のデータc,dについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータc,dをECC回路102に順次に取り込み、ECC回路102にてデータc,dにそれぞれパリティ数n/2−tを順次に付加した状態で保持する。更に、ページ2に対応する訂正単位のデータe,fについても同様にしてSRAMバッファ101に順次に保持した後、これらのデータe,fをECC回路102に順次に取り込み、ECC回路102にてデータe,fにそれぞれパリティ数n/2+s+tを順次に付加した状態で保持する。これらのECC回路102で保持したデータを、ECC回路102で図9のページ0,1及び2のようにページ0の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれ、かつページ1の領域の一部にページ2のパリティビット数の一部(斜線にて示す部分)が組み込まれような形に組み替えを行った後、NAND型フラッシュメモリ200の記憶領域にページ0についてはページ長の半分ずつを順次書き込み、次にページ1についてもページ長の半分ずつを順次書き込み、更にページ2についてもページ長の半分ずつを順次書き込む。なお、組み替えの動作はSRAMバッファ101において行うことも可能である。
Next, an operation example of writing and reading with respect to the
At the time of writing, for example, 1 kbytes of raw data (data before parity is added) a and b are sequentially held in the
読み出し時は、NAND型フラッシュメモリ200からECC回路102に図9と同様なページ0についてはページ長の半分ずつ順次読み込み、次にページ1についてもページ長の半分ずつを順次読み込み、更にページ2についてもページ長の半分ずつを順次読み込んだ後に、ページ0,1及び2間でパリティビット数の組み替えを行って、図9右側に示したページ0,1及び2のECCの訂正単位を得、これらの訂正単位のデータをSRAMバッファ101にも書き込み、図2で示したようにECC回路102内で訂正単位毎にデータの誤り(エラー)を検出して、SRAMバッファ101に保持しているデータの同じエラー箇所を訂正することになる。
At the time of reading, the
第2の実施形態によれば、不揮発性メモリであるNAND型フラッシュメモリの複数のページの内の3ページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振ることにより、ビットエラー発生率が高いページに対してより多くのビット数をパリティに割り当て、ビットエラー発生率が低いページに対してより少なく割り当て、限られた所定のパリティビット数をより有効に利用することが可能となる。 According to the second embodiment, a bit error rate is obtained by allocating a parity area of a storage area composed of three pages among a plurality of pages of a NAND flash memory which is a nonvolatile memory according to the bit error rate. It is possible to allocate a larger number of bits to parity for a page with a high bit rate and to allocate a smaller number to a page with a low bit error occurrence rate, and to more effectively use a limited number of parity bits.
尚、以上述べた実施形態では、図6や図9に示されるように連続する複数のページ(例えば2ページ、3ページ)からなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振るものであったが、本発明はこれに限定されることなく、連続することなく飛び飛びに存在する複数のページからなる記憶領域のパリティ領域をビットエラー発生率に応じて割り振る場合に対しても応用することができる。 In the embodiment described above, as shown in FIGS. 6 and 9, the parity area of the storage area consisting of a plurality of continuous pages (for example, 2 pages and 3 pages) is allocated according to the bit error occurrence rate. However, the present invention is not limited to this, and can be applied to the case of allocating the parity area of the storage area composed of a plurality of pages that exist without being consecutively arranged according to the bit error occurrence rate. Can do.
100…メモリコントローラ
101…SRAMバッファ
102…ECC回路(誤り訂正回路)
200…NAND型フラッシュメモリ(不揮発性メモリ)
300…半導体記憶装置
400…ホスト機器
DESCRIPTION OF
200 ... NAND flash memory (nonvolatile memory)
300 ...
Claims (4)
前記不揮発性メモリへのデータの書込み時は、ページデータにパリティを付加して前記不揮発性メモリに記憶させ、データの読出し時は、前記不揮発性メモリからページデータとそのパリティを読み出し、誤り箇所を検出し、データの誤り訂正を行う機能を備えたメモリコントローラと、を具備し、
前記メモリコントローラは、前記不揮発性メモリに記憶可能な複数のページのうちの所定数のページで使用可能な全てのパリティのビット数を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする半導体記憶装置。 A non-volatile memory composed of a plurality of pages and storing data and its parity;
When writing data to the non-volatile memory, parity is added to page data and stored in the non-volatile memory, and when reading data, page data and its parity are read from the non-volatile memory, and the error location is A memory controller having a function of detecting and correcting data errors;
The memory controller sets the number of bits of all parity that can be used in a predetermined number of pages out of a plurality of pages that can be stored in the nonvolatile memory for each page according to the error occurrence rate of each page. A semiconductor memory device characterized by being allocated to
前記メモリコントローラは、前記不揮発性メモリに記憶する前記所定数のページの各ページを構成する複数の訂正単位ごとに付加される各パリティを、各ページのエラー発生率に応じて各ページの訂正単位に割り振ることを特徴とする請求項1に記載の半導体記憶装置。 The page data is composed of a plurality of correction unit data,
The memory controller is configured to calculate each parity added to each of a plurality of correction units constituting each page of the predetermined number of pages stored in the nonvolatile memory according to an error occurrence rate of each page. The semiconductor memory device according to claim 1, wherein the semiconductor memory device is assigned to each other.
データ記憶可能な前記複数のデータ領域のうちの所定数のデータ領域に対応して前記複数のパリティ領域のうちの所定数のパリティ領域で使用可能な全てのパリティ領域を、各ページのエラー発生率の大きさに応じて各ページ毎に割り振ることを特徴とする不揮発性メモリ。 A non-volatile configuration in which a memory area includes a plurality of data areas that can store page data of the same length and a plurality of parity areas that are connected to each of the plurality of data areas and have the same length. Memory,
Corresponding to a predetermined number of data areas of the plurality of data areas that can store data, all parity areas that can be used in the predetermined number of parity areas of the plurality of parity areas are set to error occurrence rates of each page. A non-volatile memory characterized by being allocated to each page according to the size of the memory.
前記複数のデータ領域のうちの所定数のデータ領域に対応した各ページを構成する複数の訂正単位ごとに付加される各パリティ領域が、各ページのエラー発生率に応じて各ページの訂正単位に割り振られることを特徴とする請求項3に記載の不揮発性メモリ。 The page data is composed of a plurality of correction unit data,
Each parity area added to each of a plurality of correction units constituting each page corresponding to a predetermined number of data areas among the plurality of data areas is used as a correction unit for each page according to the error occurrence rate of each page. The nonvolatile memory according to claim 3, wherein the nonvolatile memory is allocated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008137059A JP2009282923A (en) | 2008-05-26 | 2008-05-26 | Semiconductor storage device and nonvolatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008137059A JP2009282923A (en) | 2008-05-26 | 2008-05-26 | Semiconductor storage device and nonvolatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009282923A true JP2009282923A (en) | 2009-12-03 |
Family
ID=41453279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008137059A Pending JP2009282923A (en) | 2008-05-26 | 2008-05-26 | Semiconductor storage device and nonvolatile memory |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009282923A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012094132A (en) * | 2010-10-01 | 2012-05-17 | Siglead Inc | Non-volatile semiconductor memory device and data error correction method |
WO2012098897A1 (en) | 2011-01-20 | 2012-07-26 | パナソニック株式会社 | Nonvolatile latch circuit and nonvolatile flip-flop circuit |
JP2012146129A (en) * | 2011-01-12 | 2012-08-02 | Mega Chips Corp | Memory access control apparatus |
CN103827833A (en) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | Systems and methods of storing data |
GB2511202A (en) * | 2013-02-11 | 2014-08-27 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
JP2014522075A (en) * | 2011-08-12 | 2014-08-28 | マイクロン テクノロジー, インク. | Memory device and configuration method for memory device |
KR20140133593A (en) * | 2012-03-06 | 2014-11-19 | 마이크론 테크놀로지, 인크. | Apparatuses and methods including error correction code organization |
US8898545B2 (en) | 2012-05-18 | 2014-11-25 | Hitachi, Ltd. | Semiconductor storage device and control method of nonvolatile memory |
US12056007B2 (en) | 2021-08-17 | 2024-08-06 | Samsung Electronics Co., Ltd. | Storage devices and methods of operating storage devices |
-
2008
- 2008-05-26 JP JP2008137059A patent/JP2009282923A/en active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012094132A (en) * | 2010-10-01 | 2012-05-17 | Siglead Inc | Non-volatile semiconductor memory device and data error correction method |
JP2012146129A (en) * | 2011-01-12 | 2012-08-02 | Mega Chips Corp | Memory access control apparatus |
WO2012098897A1 (en) | 2011-01-20 | 2012-07-26 | パナソニック株式会社 | Nonvolatile latch circuit and nonvolatile flip-flop circuit |
JP2014523595A (en) * | 2011-07-22 | 2014-09-11 | サンディスク テクノロジィース インコーポレイテッド | System and method for accumulating data |
CN103827833A (en) * | 2011-07-22 | 2014-05-28 | 桑迪士克科技股份有限公司 | Systems and methods of storing data |
CN103827833B (en) * | 2011-07-22 | 2017-08-08 | 桑迪士克科技有限责任公司 | The system and method for data storage |
US10891187B2 (en) | 2011-08-12 | 2021-01-12 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
US9594676B2 (en) | 2011-08-12 | 2017-03-14 | Micron Technology, Inc. | Configuring and reconfiguring blocks of memory cells to store user data and ECC data |
US10891188B2 (en) | 2011-08-12 | 2021-01-12 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
US10409673B2 (en) | 2011-08-12 | 2019-09-10 | Micron Technology, Inc. | Memory devices having differently configured blocks of memory cells |
JP2014522075A (en) * | 2011-08-12 | 2014-08-28 | マイクロン テクノロジー, インク. | Memory device and configuration method for memory device |
KR101574033B1 (en) | 2011-08-12 | 2015-12-02 | 마이크론 테크놀로지, 인크. | Memory devices and configuration methods for a memory device |
US9983928B2 (en) | 2012-03-06 | 2018-05-29 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
JP2016219092A (en) * | 2012-03-06 | 2016-12-22 | マイクロン テクノロジー, インク. | Device and method for formation of error correction code |
JP2015509640A (en) * | 2012-03-06 | 2015-03-30 | マイクロン テクノロジー, インク. | Apparatus and method including organization of error correction codes |
KR20140133593A (en) * | 2012-03-06 | 2014-11-19 | 마이크론 테크놀로지, 인크. | Apparatuses and methods including error correction code organization |
KR102230584B1 (en) * | 2012-03-06 | 2021-03-23 | 마이크론 테크놀로지, 인크. | Apparatuses and methods including error correction code organization |
KR20210033062A (en) * | 2012-03-06 | 2021-03-25 | 마이크론 테크놀로지, 인크. | Apparatuses and methods including error correction code organization |
KR102403171B1 (en) * | 2012-03-06 | 2022-05-30 | 마이크론 테크놀로지, 인크. | Apparatuses and methods including error correction code organization |
US8898545B2 (en) | 2012-05-18 | 2014-11-25 | Hitachi, Ltd. | Semiconductor storage device and control method of nonvolatile memory |
US8918700B2 (en) | 2013-02-11 | 2014-12-23 | Arm Limited | Apparatus and method for controlling access to a memory device |
GB2511202A (en) * | 2013-02-11 | 2014-08-27 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
GB2511202B (en) * | 2013-02-11 | 2021-03-24 | Advanced Risc Mach Ltd | An apparatus and method for controlling access to a memory device |
US12056007B2 (en) | 2021-08-17 | 2024-08-06 | Samsung Electronics Co., Ltd. | Storage devices and methods of operating storage devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009282923A (en) | Semiconductor storage device and nonvolatile memory | |
KR100546348B1 (en) | Flash memory system and data writing method there-of | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
JP4734033B2 (en) | Storage device | |
US20080052446A1 (en) | Logical super block mapping for NAND flash memory | |
KR101371516B1 (en) | The operation method of flash memory device and memory system including the same | |
US20150019933A1 (en) | Memory controller, storage device, and memory control method | |
JP4171749B2 (en) | Memory controller and flash memory system | |
JPWO2007000862A1 (en) | MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND DATA WRITE METHOD | |
JP2008108297A (en) | Nonvolatile semiconductor memory device | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
US7310262B2 (en) | Ferroelectric memory capable of continuously fast transferring data words in a pipeline | |
JP5592478B2 (en) | Nonvolatile storage device and memory controller | |
JP2007305105A (en) | Memory controller | |
JP2008123241A (en) | Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory | |
JP4641338B2 (en) | Nonvolatile semiconductor memory device and system | |
JP4710918B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4582078B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4235646B2 (en) | Memory controller and flash memory system | |
JP4636046B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2005292925A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP6260395B2 (en) | Memory controller, memory system, and memory control method | |
JP2011060415A (en) | Nonvolatile semiconductor storage device and data storage system | |
JP2014134843A (en) | Memory system |