+

JP2024046239A - Memory system and control method - Google Patents

Memory system and control method Download PDF

Info

Publication number
JP2024046239A
JP2024046239A JP2022151503A JP2022151503A JP2024046239A JP 2024046239 A JP2024046239 A JP 2024046239A JP 2022151503 A JP2022151503 A JP 2022151503A JP 2022151503 A JP2022151503 A JP 2022151503A JP 2024046239 A JP2024046239 A JP 2024046239A
Authority
JP
Japan
Prior art keywords
page
pages
data
code
storage unit
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
JP2022151503A
Other languages
Japanese (ja)
Inventor
三徳 田所
Mitsunori Tadokoro
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.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2022151503A priority Critical patent/JP2024046239A/en
Priority to US18/459,365 priority patent/US20240103968A1/en
Publication of JP2024046239A publication Critical patent/JP2024046239A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding 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 multilevel memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

To provide a memory system capable of maintaining data such as a previously written low-order page even when an instantaneous interruption occurs in the middle of a program during writing of high-order pages of a multi-value memory and the like, and a control method.SOLUTION: A memory system comprises: a non-volatile storage unit configured by arranging a plurality of memory cells which include a plurality of pages and which can store multi-value data; a correction processing unit which can error-correct the data stored in the storage unit in units of pages; and a controller which writes multi-value data in the storage unit and reads the written multi-value data from the storage unit. The controller manages the storage positions of the multi-value data stored in the storage unit, detects only the lowest-order pages in which data is stored among the plurality of pages, causes the correction processing unit to generate an error correction code which treats all the detected pages as one frame, and writes an error correction code in a page which can be written following a page constituting one page among the lowest-order pages.SELECTED DRAWING: Figure 5B

Description

本実施形態は、メモリシステムおよび制御方法に関する。 This embodiment relates to a memory system and a control method.

ソリッドステートドライブ(SSD)等のメモリシステムにおいてデータ記憶のために不揮発性メモリが用いられている。例えば、不揮発性メモリとして知られるNAND型フラッシュメモリは、1つのメモリセルに2ビット以上の複数のデータを記憶(多値記憶)することが可能である。ところで、多値記憶を実現するためには、複数の多値データ(4値の場合、2ビットデータ“00”、“01”、“10”、“11”)に対応して複数の閾値分布(4値の場合、4つの閾値分布)のそれぞれを所定範囲内に収まるように制御する必要がある。このため、記憶するビット数が増えると、1つのデータに対応する閾値分布をより狭い範囲で制御する必要がある。 Non-volatile memory is used for data storage in memory systems such as solid state drives (SSDs). For example, NAND-type flash memory, known as a non-volatile memory, is capable of storing two or more bits of data (multi-value storage) in one memory cell. However, in order to achieve multi-value storage, it is necessary to control each of multiple threshold distributions (four threshold distributions in the case of four values) corresponding to multiple multi-value data (two-bit data "00", "01", "10", and "11" in the case of four values) so that they fall within a predetermined range. For this reason, as the number of bits to be stored increases, it is necessary to control the threshold distribution corresponding to one piece of data within a narrower range.

ここで、例えば、4値記憶のメモリセルへの書き込みを行う場合、下位ページへの書き込み後に上位ページに対する書き込みを行い、2ビット(4値)のデータを記憶させる。この下位ページから上位ページへの一連のプログラム動作において、例えば、上位ページの書き込み中に電源の異常遮断など(以下、瞬断ともいう)により書き込み中断が生じた場合、先に書込まれた下位ページのデータも巻き添えで破壊されてしまう可能性がある。このように瞬断に伴うデータ破壊は、8値記憶や16値記憶など他の多値記憶の場合でも生じ得る。 For example, when writing to a memory cell that stores four values, writing is performed to the lower page and then to the upper page, storing two bits (four values) of data. In this series of program operations from the lower page to the upper page, if writing is interrupted during writing to the upper page due to an abnormal power interruption (hereinafter also referred to as a momentary power outage), the data in the lower page that was written earlier may also be destroyed as a result. Data destruction due to a momentary power outage like this can also occur in other multi-value storage methods such as 8-value storage and 16-value storage.

米国特許第10,110,255号明細書U.S. Pat. No. 10,110,255

本発明の一実施形態では、多値メモリの上位ページ書き込み中等プログラムの途中で瞬電が発生した場合でも、先に書き込まれた下位ページ等のデータを維持することのできるメモリシステム及び制御方法を提供する。 An embodiment of the present invention provides a memory system and a control method that can maintain the data of the lower page written earlier even if an instantaneous power failure occurs in the middle of a program such as writing an upper page of a multilevel memory. provide.

本発明の実施形態によれば、複数のページを有し多値データを記憶可能な複数のメモリセルが複数配列して構成される不揮発性の記憶部と、記憶部に記憶されたデータをページ単位で誤り訂正可能な訂正処理部と、記憶部への多値データの書き込み、及び、記憶部から書き込んだ多値データの読み出しを行うコントローラと、を有する。そして、コントローラは、記憶部に記憶された多値データの格納位置を管理し、複数のページのうち最も下位のページのみにデータが記憶されているページを検出し、検出されたページすべてを1つのフレームとした誤り訂正符号を訂正処理部に生成させ、最も下位のページのうち1つのフレームを構成するページに続いて書き込み可能であるページに誤り訂正符号を書き込む。 According to an embodiment of the present invention, a non-volatile memory unit having multiple pages and configured with multiple memory cells capable of storing multi-value data is provided, a correction processing unit capable of error correcting data stored in the memory unit on a page-by-page basis, and a controller that writes multi-value data to the memory unit and reads the multi-value data written from the memory unit. The controller manages the storage location of the multi-value data stored in the memory unit, detects a page in which data is stored only in the lowest page of the multiple pages, causes the correction processing unit to generate an error correction code with all the detected pages as one frame, and writes the error correction code to a page that can be written to following the page that constitutes one frame of the lowest page.

実施形態に係るメモリシステムの構成を示すブロック図。FIG. 1 is a block diagram showing a configuration of a memory system according to an embodiment. 実施形態に係るメモリシステムのエンコーダ/デコーダ部の構成を示すブロック図。FIG. 2 is a block diagram showing a configuration of an encoder/decoder unit of a memory system according to an embodiment. 実施形態に係るメモリシステムのNANDフラッシュメモリチップのメモリブロックの構成を示す等価回路図。FIG. 3 is an equivalent circuit diagram showing the configuration of a memory block of a NAND flash memory chip of the memory system according to the embodiment. 実施形態のメモリシステムの動作を説明するためのフローチャート。7 is a flowchart for explaining the operation of the memory system according to the embodiment. 実施形態のメモリシステムにおけるページ単位の書き込み動作を説明するための図。FIG. 3 is a diagram for explaining a page-by-page write operation in the memory system according to the embodiment. 実施形態のメモリシステムにおけるページ単位の書き込み動作を説明するための図。FIG. 3 is a diagram for explaining a page-by-page write operation in the memory system according to the embodiment. 比較例のメモリシステムの動作を示すフローチャート。7 is a flowchart showing the operation of a memory system of a comparative example. 比較例のメモリシステムにおけるページ単位の書き込み動作を説明するための図。11 is a diagram for explaining a page-by-page write operation in a memory system of a comparative example. 比較例のメモリシステムにおけるページ単位の書き込み動作を説明するための図。11 is a diagram for explaining a page-by-page write operation in a memory system of a comparative example.

(実施形態の構成)
以下、図面を参照して本発明の実施形態に係るメモリシステムの一例を詳細に説明する。本実施形態では、上位ブロックの書き込み中(書き込み直前又は書き込み途中を含む)にデータ破壊の巻き添えを受けやすい書き込み済みの下位ブロックに対して誤り訂正を行う。これにより、書き込み中に電源の異常遮断など瞬電が発生し、下位ブロックが巻き添えを受けてデータ破壊されたとしてもデータを復元することを可能とする。
(Configuration of embodiment)
Hereinafter, an example of a memory system according to an embodiment of the present invention will be described in detail with reference to the drawings. In this embodiment, error correction is performed on a written lower block that is susceptible to data destruction during writing of an upper block (including immediately before or during writing). This makes it possible to restore data even if an instantaneous power failure occurs during writing, such as an abnormal power cutoff, and the data is destroyed as a result of the lower block being affected.

図1は、本発明の一実施形態に適用可能なメモリシステム1の一例の構成を示す。図1の例では、メモリシステム1は、ホストインターフェース(I/F)10、バッファメモリ11、メモリコントローラ12、および、フラッシュメモリ部13を含む。 FIG. 1 shows the configuration of an example of a memory system 1 applicable to an embodiment of the present invention. In the example of FIG. 1, the memory system 1 includes a host interface (I/F) 10, a buffer memory 11, a memory controller 12, and a flash memory unit 13.

ホストインターフェース10は、メモリシステム1とメモリシステム1と接続されるホスト14とのインターフェースである。ホスト14は、例えば、パーソナルコンピュータ(PC)のような情報処理装置である。ホストインターフェース10としては、例えば、SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)、Ethernet(登録商標)、Fibre channel、NVM Express(NVMe)(登録商標)等が使用され得る。 The host interface 10 is an interface between the memory system 1 and a host 14 connected to the memory system 1. The host 14 is, for example, an information processing device such as a personal computer (PC). Examples of the host interface 10 include SCSI, Serial Attached SCSI (SAS), ATA, Serial ATA (SATA), PCI Express (PCIe) (registered trademark), Ethernet (registered trademark), Fiber channel, NVM Express (N VMe)( (registered trademark) etc. may be used.

バッファメモリ11は、ホスト14からホストインターフェース10を介して入力される書き込みデータを一時的に保持するライトバッファ11Aと、フラッシュメモリ部13から読み出された読み出しデータをホスト14に転送する前に一時的に保持するリードバッファ11Bとを有する。メモリコントローラ12は、例えば、CPU(Central Processing Unit)(図示せず)を含み、ホストインターフェース10およびバッファメモリ11を制御して、フラッシュメモリ部13へのデータ書き込みや、フラッシュメモリ部13からのデータ読み出しを行う。 The buffer memory 11 includes a write buffer 11A that temporarily holds write data input from the host 14 via the host interface 10, and a write buffer 11A that temporarily holds write data input from the host 14 via the host interface 10, and a write buffer 11A that temporarily holds write data input from the host 14 via the host interface 10, and a write buffer 11A that temporarily holds write data input from the host 14 via the host interface 10. It has a read buffer 11B that holds data. The memory controller 12 includes, for example, a CPU (Central Processing Unit) (not shown), controls the host interface 10 and the buffer memory 11, writes data to the flash memory section 13, and writes data from the flash memory section 13. Perform reading.

メモリコントローラ12は、ホスト14からフラッシュ(Flush)処理を要求するコマンド(以下「フラッシュコマンド」と称する。)を受けることがある。フラッシュ処理とは、ホスト14がメモリシステム1に対してデータの不揮発化を要求する処理であり、ホスト14からのフラッシュコマンドにより実行される。メモリシステム1は、ホスト14からフラッシュコマンドを受けると、ライトバッファ11Aに格納されている未書き込みデータをNANDフラッシュメモリチップ23に書き込む処理(不揮発化処理とも呼ぶ)を実行する。フラッシュコマンド発行時にライトバッファ11Aに格納されている未書き込みデータの終端位置までが、このフラッシュコマンドに対応する不揮発化処理の対象データとなる。 The memory controller 12 may receive a command requesting flush processing (hereinafter referred to as a "flash command") from the host 14. The flash process is a process in which the host 14 requests the memory system 1 to make data nonvolatile, and is executed by a flash command from the host 14. When the memory system 1 receives a flash command from the host 14, it executes a process (also called non-volatile process) of writing unwritten data stored in the write buffer 11A to the NAND flash memory chip 23. The data up to the end of the unwritten data stored in the write buffer 11A when the flash command is issued becomes the target data of the non-volatile process corresponding to this flash command.

フラッシュメモリ部13は、NANDフラッシュコントローラ(コントローラ)20と複数のNANDフラッシュメモリチップ(記憶部)23を有すると共に、各NANDフラッシュメモリチップ23にそれぞれ対応する複数のエンコーダ(Encoder)及びデコーダ(Decoder)22(以下、E/D部22と呼ぶ)を有する。フラッシュメモリ部13は、さらに、リード・ソロモン符号のエンコーダ及びデコーダ(以下、RS-E/D部と呼ぶ)21を有する。NANDフラッシュメモリチップ23は、チップ内に3次元状に配列された多数のメモリセルにビットデータを書き込み、又は、書込まれたデータを読み出し、又は、書込まれたデータをブロック単位で消去したりできるように構成される。 The flash memory section 13 includes a NAND flash controller (controller) 20 and a plurality of NAND flash memory chips (storage section) 23, and a plurality of encoders and decoders corresponding to each NAND flash memory chip 23. 22 (hereinafter referred to as the E/D section 22). The flash memory section 13 further includes a Reed-Solomon code encoder and decoder (hereinafter referred to as an RS-E/D section) 21. The NAND flash memory chip 23 writes bit data to a large number of memory cells arranged three-dimensionally within the chip, reads written data, or erases written data in blocks. It is configured so that it can be used.

NANDフラッシュコントローラ20は、各NANDフラッシュメモリチップ23に対する前記データの書き込み、読み出し、及び消去を制御する。また、NANDフラッシュコントローラ20は、各E/D部22、RS-E/D部21の動作を制御する。NANDフラッシュコントローラ20は、データの記憶位置や、データが有効または無効なページを検出し、管理することができる。 The NAND flash controller 20 controls writing, reading, and erasing of the data in each NAND flash memory chip 23. Further, the NAND flash controller 20 controls the operation of each E/D section 22 and RS-E/D section 21. The NAND flash controller 20 can detect and manage data storage locations and pages where data is valid or invalid.

例えば、NANDフラッシュコントローラ20は、ライトバッファ11Aに所定量のデータ(原データ)が保持されると、ライトバッファ11Aから、NANDフラッシュメモリチップ23の記憶単位分のデータをE/D部22に供給する。書き込みデータは、そこでエラー訂正符号化され、NANDフラッシュコントローラ20の制御によりNANDフラッシュメモリチップ23に記憶される。また、NANDフラッシュコントローラ20は、メモリコントローラ12がホスト14からフラッシュコマンドを受けると、NANDフラッシュメモリチップ23への書き込みを実行する。 For example, when a predetermined amount of data (original data) is held in the write buffer 11A, the NAND flash controller 20 supplies data for a storage unit of the NAND flash memory chip 23 from the write buffer 11A to the E/D section 22. The write data is error-correction coded there, and stored in the NAND flash memory chip 23 under the control of the NAND flash controller 20. In addition, the NAND flash controller 20 executes writing to the NAND flash memory chip 23 when the memory controller 12 receives a flash command from the host 14.

RS-E/D部(訂正処理部)21は、データ書き込み時、ライトバッファ11Aから入力された入力データ(原データ)に対してリード・ソロモン符号(以下、RS符号と略称する)を用いた誤り訂正符号化を行う。また、データ読み出し時、NANDフラッシュメモリチップ23に記憶されたデータに付随するRS符号をデコードし、当該データに対して誤り訂正を行う。このように、RS-E/D部21は、エンコードおよびデコード対象となるデータを用いて誤り訂正符号化および誤り訂正などを行う。なお、この実施形態では、リード・ソロモン符号を生成し、誤り訂正を実現しているが、これには限定されない。誤り訂正符号は消失訂正できればよいので、例えばXORなどを用いてもよい。RS-E/D部21で生成されたRS符号は、NANDフラッシュコントローラ20の制御に応じてE/D部22に供給される。 When writing data, the RS-E/D unit (correction processing unit) 21 uses a Reed-Solomon code (hereinafter abbreviated as RS code) for input data (original data) input from the write buffer 11A. Perform error correction encoding. Further, when reading data, the RS code accompanying the data stored in the NAND flash memory chip 23 is decoded, and error correction is performed on the data. In this way, the RS-E/D unit 21 performs error correction encoding, error correction, etc. using data to be encoded and decoded. Note that in this embodiment, a Reed-Solomon code is generated to implement error correction, but the present invention is not limited to this. Since the error correction code only needs to be capable of erasure correction, XOR or the like may be used, for example. The RS code generated by the RS-E/D section 21 is supplied to the E/D section 22 under the control of the NAND flash controller 20.

E/D部22は、データ書き込み時、ライトバッファ11Aから読み出された入力データ(原データ)に対してCRC(Cyclic Redundancy Check)符号を生成すると共に、原データおよび生成されたCRC符号に対してBCH(Bose-Chaudhuri-Hocquenghem)符号などの組織符号を用いた誤り訂正符号化を行う。また、データ読み出し時、NANDフラッシュメモリチップ23に記憶されたデータに付随するBCH符号をデコードして誤り訂正を行うと共に、CRC符号をデコードして誤り位置を求める。このようにE/D部22は、それぞれエンコードおよびデコード対象となるデータを用いて誤り訂正符号化および誤り訂正などを行う。 When writing data, the E/D unit 22 generates a CRC (Cyclic Redundancy Check) code for the input data (original data) read from the write buffer 11A, and also generates a CRC (Cyclic Redundancy Check) code for the original data and the generated CRC code. Then, error correction encoding is performed using a systematic code such as a BCH (Bose-Chaudhuri-Hocquenghem) code. Further, when reading data, the BCH code accompanying the data stored in the NAND flash memory chip 23 is decoded to perform error correction, and the CRC code is decoded to find the error position. In this manner, the E/D unit 22 performs error correction encoding, error correction, etc. using data to be encoded and decoded, respectively.

また、E/D部22は、RS-E/D部21が生成したRS符号に対してCRC符号を生成すると共に、RS符号およびCRC符号に対してBCH符号を生成し、誤り訂正符号化する。 Further, the E/D unit 22 generates a CRC code for the RS code generated by the RS-E/D unit 21, generates a BCH code for the RS code and the CRC code, and performs error correction encoding. .

なお、E/D部22で行う誤り訂正符号化に用いる符号は、組織符号であれば、BCH符号に限らず他の符号を用いてもよい。例えば、RS符号やLDPC(Low-Density Parity-Check)符号などを用いてもよい。また、CRC符号も、これに限らず、チェックサムなど十分な誤り検出能力があれば、他の符号を用いてもよい。 Note that the code used for error correction encoding performed by the E/D unit 22 is not limited to the BCH code, but may be any other code as long as it is a systematic code. For example, an RS code or an LDPC (Low-Density Parity-Check) code may be used. Further, the CRC code is not limited to this, and other codes such as checksums may be used as long as they have sufficient error detection ability.

NANDフラッシュメモリチップ23は、メモリセルアレイを有する。メモリセルアレイは、マトリクス状に配列された複数のメモリセルを有する。NANDフラッシュメモリチップ23のメモリセルアレイは、複数のブロック(物理ブロック)を含む。このブロックは、データを消去する単位である。複数のブロックそれぞれは、複数のページを含む。各ページは、データの書き込み及び読み出しの単位である。 NAND flash memory chip 23 has a memory cell array. The memory cell array has a plurality of memory cells arranged in a matrix. The memory cell array of the NAND flash memory chip 23 includes a plurality of blocks (physical blocks). This block is a unit for erasing data. Each of the multiple blocks includes multiple pages. Each page is a unit for writing and reading data.

図2は、フラッシュメモリ部13内の1つのE/D部22についての詳細な構成の一例を示す。E/D部22は、CRCエンコーダ26およびBCHエンコーダ27と、BCHデコーダ28およびCRCデコーダ29とを有する。 FIG. 2 shows an example of a detailed configuration of one E/D section 22 in the flash memory section 13. E/D section 22 includes a CRC encoder 26 and a BCH encoder 27, and a BCH decoder 28 and a CRC decoder 29.

データ書き込み時、エンコードのためにE/D部22に入力された入力データ(原データ)は、CRCエンコーダ26およびBCHエンコーダ27にそれぞれ供給される。 When writing data, input data (original data) input to the E/D unit 22 for encoding is supplied to a CRC encoder 26 and a BCH encoder 27, respectively.

CRCエンコーダ26は、供給された原データのCRCを計算し、計算結果から誤り検査符号であるCRC符号を生成する。CRC符号は、BCHエンコーダ27に供給される。BCHエンコーダ27は、原データと、CRCエンコーダ26から供給されたCRC符号とに対して誤り訂正符号であるBCH符号を生成して、原データおよびCRC符号に対する誤り訂正符号化を行う。BCH符号、原データおよびCRC符号がE/D部22から出力され、NANDフラッシュメモリチップ23の所定の領域にデータとして記憶される。 The CRC encoder 26 calculates the CRC of the supplied original data, and generates a CRC code, which is an error checking code, from the calculation result. The CRC code is supplied to the BCH encoder 27. The BCH encoder 27 generates a BCH code, which is an error correction code, from the original data and the CRC code supplied from the CRC encoder 26, and performs error correction encoding on the original data and the CRC code. The BCH code, original data, and CRC code are output from the E/D unit 22 and stored as data in a specified area of the NAND flash memory chip 23.

一方、データ読み出し時、BCH符号により誤り訂正符号化されたデータは、NANDフラッシュメモリチップ23から読み出されると、E/D部22のBCHデコーダ28に入力される。BCHデコーダ28は、入力されたデータのBCH符号をデコードし、BCH符号の符号訂正能力で訂正可能な誤りを訂正する。CRCデコーダ29は、BCHデコーダ28の出力に含まれるCRC符号をデコードしてエラー検査を行う。BCHデコーダ28の出力と、エラー検査結果とがE/D部22からNANDフラッシュコントローラ20に出力される。 On the other hand, when reading data, the data that has been error correction coded using the BCH code is read from the NAND flash memory chip 23 and input to the BCH decoder 28 of the E/D unit 22. The BCH decoder 28 decodes the BCH code of the input data and corrects errors that can be corrected using the code correction capability of the BCH code. The CRC decoder 29 decodes the CRC code included in the output of the BCH decoder 28 to perform error checking. The output of the BCH decoder 28 and the error check result are output from the E/D unit 22 to the NAND flash controller 20.

NANDフラッシュメモリチップ23からのデータの読み出し時の動作は、概略的には、次のようになる。各NANDフラッシュメモリチップ23から読み出されたデータが各E/D部22に供給される。E/D部22では、供給されたデータに対してBCHデコーダ28がBCH符号のデコードを行い、原データおよびCRC符号に対する誤り訂正を行うと共に、CRCデコーダ29がBCHデコーダ28の出力に含まれるCRC符号をデコードして誤り検査を行う。誤り訂正を施された原データと、誤り検査結果とがNANDフラッシュコントローラ20およびRS-E/D部21にそれぞれ供給される。 The operation when reading data from the NAND flash memory chip 23 is roughly as follows. Data read from each NAND flash memory chip 23 is supplied to each E/D section 22. In the E/D unit 22, a BCH decoder 28 decodes the BCH code for the supplied data, performs error correction on the original data and the CRC code, and a CRC decoder 29 decodes the CRC code included in the output of the BCH decoder 28. Decode the code and perform error checking. The error-corrected original data and the error check results are supplied to the NAND flash controller 20 and the RS-E/D unit 21, respectively.

RS-E/D部21はRS符号をデコードし、E/D部22から出力されたBCH符号による誤り訂正を施された原データと、RS符号自身とに対して、RS符号による誤り訂正が施される。このとき、詳細を後述する誤り数に関する条件に応じて、通常の誤り訂正を行うか、消失訂正を行うかが選択される。消失訂正を行うように選択された場合は、誤り訂正された原データが出力データとしてNANDフラッシュコントローラ20に供給される。 The RS-E/D unit 21 decodes the RS code, and performs error correction using the RS code on the original data that has been error-corrected using the BCH code output from the E/D unit 22 and on the RS code itself. administered. At this time, it is selected whether to perform normal error correction or erasure correction, depending on conditions regarding the number of errors, which will be described in detail later. If erasure correction is selected, the error-corrected original data is supplied to the NAND flash controller 20 as output data.

一方、通常の誤り訂正を行うように選択された場合は、RS-E/D部21によりRS符号による誤り訂正が施された原データに対して、さらに、各E/D部22でBCH符号による誤り訂正が施される。この誤り訂正で誤りが全て訂正されたら、誤り訂正された原データが出力データとしてNANDフラッシュコントローラ20に供給される。誤りが全て訂正されていなければ、再びRS-E/D部21および各E/D部22での誤り訂正が行われる。 On the other hand, when it is selected to perform normal error correction, each E/D section 22 further applies a BCH code to the original data that has been subjected to error correction using an RS code by the RS-E/D section 21. Error correction will be performed. When all errors are corrected by this error correction, the error-corrected original data is supplied to the NAND flash controller 20 as output data. If all errors have not been corrected, error correction is performed again in the RS-E/D section 21 and each E/D section 22.

NANDフラッシュコントローラ20は、詳細を後述する一連の誤り訂正を終了し、最終的に各E/D部22およびRS-E/D部21から供給されたデータを、リードバッファ11Bに書き込む。 The NAND flash controller 20 completes a series of error corrections, details of which will be described later, and finally writes the data supplied from each E/D unit 22 and RS-E/D unit 21 to the read buffer 11B.

(メモリチップの構成)
次に、NANDフラッシュメモリチップの構成について、概略的に説明する。NANDフラッシュメモリチップは、データ消去の単位である複数のメモリブロックBLKから構成されている。メモリブロックBLKの構成について、図3を用いて説明する。
(Memory chip configuration)
Next, the configuration of a NAND flash memory chip will be briefly described. A NAND flash memory chip is composed of a plurality of memory blocks BLK, which are units for erasing data. The configuration of a memory block BLK will be described with reference to FIG.

図3は、本発明の実施形態に係るNANDフラッシュメモリチップ23の構成例を示す図である。一つのブロックBLK(ここではBLK0)は、ストリングユニットSt0~St3を含んでもよい。これらストリングユニットSt0~St3は同一の構成を有するので、ここでは、ストリングユニットSt0の構成を説明する。 Figure 3 is a diagram showing an example of the configuration of a NAND flash memory chip 23 according to an embodiment of the present invention. One block BLK (here, BLK0) may include string units St0 to St3. These string units St0 to St3 have the same configuration, so here, the configuration of string unit St0 will be described.

ストリングユニットSt0は、複数のワード線WL0~WL7、および複数のビット線BL0~BL(L-1)に接続されている。ストリングユニットSt0は、複数のNANDストリングSTRを含む。各NANDストリングSTRは、1つの選択ゲートトランジスタST0と、複数(例えば8つ)のメモリセルトランジスタMT0~MT7と、1つの選択ゲートトランジスタDT0とを含む。選択ゲートトランジスタST0、メモリセルトランジスタMT0~MT7、選択ゲートトランジスタDT0は、この順で、ソース線CELSRCと1つのビット線BLとの間に直列に接続されている。 String unit St0 is connected to multiple word lines WL0 to WL7 and multiple bit lines BL0 to BL(L-1). String unit St0 includes multiple NAND strings STR. Each NAND string STR includes one selection gate transistor ST0, a plurality (for example, eight) of memory cell transistors MT0 to MT7, and one selection gate transistor DT0. The selection gate transistor ST0, memory cell transistors MT0 to MT7, and selection gate transistor DT0 are connected in series between the source line CELSRC and one bit line BL in this order.

各メモリセルトランジスタMTは、メモリセルとして機能する。各メモリセルトランジスタMTは、制御ゲート、および電荷蓄積層を含む。メモリセルトランジスタMT0~MT7の制御ゲートは、ワード線WL0~WL7にそれぞれ接続されている。選択ゲートトランジスタST0のゲートは、選択ゲート線SGSL0に接続されている。選択ゲートトランジスタDT0のゲートは、選択ゲート線SGDL0に接続されている。 Each memory cell transistor MT functions as a memory cell. Each memory cell transistor MT includes a control gate and a charge storage layer. Control gates of memory cell transistors MT0 to MT7 are connected to word lines WL0 to WL7, respectively. The gate of the selection gate transistor ST0 is connected to the selection gate line SGSL0. The gate of selection gate transistor DT0 is connected to selection gate line SGDL0.

例えばストリングユニットSt0において、同一ワード線WL(例えばWL7)に接続されるメモリセルトランジスタMT(例えばMT7)の組はページと称される。NANDフラッシュメモリチップ23がTLC-NANDフラッシュNAND(TLC)である場合は、同一ワード線WLに接続されるメモリセルトランジスタMTの組は3つのページ(下位ページ(Lower Page)、中位ページ(Middle Page)、上位ページ(Upper Page))として機能する。 For example, in string unit St0, a set of memory cell transistors MT (e.g., MT7) connected to the same word line WL (e.g., WL7) is called a page. When the NAND flash memory chip 23 is a TLC-NAND flash NAND (TLC), the sets of memory cell transistors MT connected to the same word line WL function as three pages (Lower Page, Middle Page, and Upper Page).

また、複数のワード線WLは、ストリングユニットSt0~St3に共通接続されている。したがって、ある一つのワード線に関しては、このワード線に接続されるメモリセルトランジスタMTの集合は4つのグループ(つまり、ストリングユニットSt0に属するメモリセルトランジスタMT群、ストリングユニットSt1に属するメモリセルトランジスタMT群、ストリングユニットSt2に属するメモリセルトランジスタMT群、ストリングユニットSt3に属するメモリセルトランジスタMT群)を分割される。一つのグループが一つの書き込み単位として使用される。 Further, the plurality of word lines WL are commonly connected to string units St0 to St3. Therefore, for one word line, the set of memory cell transistors MT connected to this word line is divided into four groups (that is, a group of memory cell transistors MT belonging to string unit St0, a group of memory cell transistors MT belonging to string unit St1). a group of memory cell transistors MT belonging to string unit St2, a group of memory cell transistors MT belonging to string unit St3). One group is used as one writing unit.

NANDフラッシュメモリチップ内の、それぞれ図示されないセンスアンプおよび電位発生回路などを含む制御回路は、NANDフラッシュメモリチップに供給されたデータをメモリセルトランジスタMTに書き込み、メモリセルトランジスタMTに記憶されているデータをNANDフラッシュメモリチップの外部に出力することが可能な構成を有している。 The control circuit in the NAND flash memory chip, which includes a sense amplifier and a voltage generating circuit (not shown), is configured to write data supplied to the NAND flash memory chip to the memory cell transistor MT and to output data stored in the memory cell transistor MT to the outside of the NAND flash memory chip.

上述したように、NANDフラッシュメモリチップでは、1のメモリブロックBLKに複数のページが含まれる。また、複数のメモリブロックBLKでプレーンが構成される。1のNANDフラッシュメモリチップ内の異なるプレーンは、並列的にアクセス可能とされている。一方、1のプレーン内の異なるブロックは、並列アクセス不可とされている。 As described above, in the NAND flash memory chip, one memory block BLK includes a plurality of pages. Further, a plane is configured by a plurality of memory blocks BLK. Different planes within one NAND flash memory chip can be accessed in parallel. On the other hand, different blocks within one plane cannot be accessed in parallel.

図4、図5A、図5Bを用いて、本実施形態によるデータ書き込み時の誤り訂正符号化について説明する。図4は、誤り訂正符号化のフローチャートの一例である。図5A及び図5Bは、メモリコントローラ12がフラッシュコマンドを受け、NANDフラッシュコントローラ20がNANDフラッシュメモリチップ23のあるメモリブロックBLKの複数のページにデータを書き込む様子を説明するための図である。 Using Figures 4, 5A, and 5B, the error correction coding during data writing according to this embodiment will be described. Figure 4 is an example of a flowchart of the error correction coding. Figures 5A and 5B are diagrams for explaining how the memory controller 12 receives a flash command and the NAND flash controller 20 writes data to multiple pages of a memory block BLK in the NAND flash memory chip 23.

図5A及び図5Bは、あるメモリブロックAにおけるワードラインWL0及びWL1のページの状態を表している。図中、St0~St3は、ワードラインそれぞれのストリング(String)を表し、「L」「M」「U」は、それぞれ下位ページ、中位ページ、上位ページを表している。多値メモリの場合、下位ページ、中位ページ、及び、上位ページへの一連のデータ書き込みが行われる。一方、ホスト14からメモリシステム1に対して前述した瞬断に対応すべくフラッシュ処理が要求される場合もある。 5A and 5B represent the page states of word lines WL0 and WL1 in a certain memory block A. In the figure, St0 to St3 represent strings of word lines, and "L", "M", and "U" represent lower pages, middle pages, and upper pages, respectively. In the case of a multilevel memory, a series of data writes are performed to a lower page, a middle page, and an upper page. On the other hand, the host 14 may request the memory system 1 to perform a flush process in order to cope with the above-mentioned momentary power outage.

例えば、メモリシステム1が下位ページへの書き込みが終了し、中位ページから上位ページへデータ書き込みが完了する前に、ホストからフラッシュ要求を受けることがある。この場合、未書き込みの中位ページや上位ページの無効データをメモリチップ23に書込む必要があるため、書き込み効率が悪化する。また、無効データによる書き込み量が多い場合は、フラッシュ処理完了までの応答時間が長くなり、ホスト14を含むシステム全体の性能悪化を招いてしまう。本実施形態では、瞬断に対応するフラッシュ処理を行う際に、以下に説明するような書き込み制御を行う。図5Aはフラッシュ実行前のページの状態を示し、図5Bはフラッシュ実行後の状態を示している。 For example, the memory system 1 may receive a flush request from the host after writing to a lower page has finished and before writing data from the middle page to the upper page has finished. In this case, invalid data from the unwritten middle page and upper page must be written to the memory chip 23, which reduces write efficiency. Furthermore, if a large amount of invalid data is written, the response time until the flush process is completed increases, resulting in a deterioration in the performance of the entire system including the host 14. In this embodiment, when performing flush processing to deal with a momentary interruption, write control is performed as described below. Figure 5A shows the state of the page before flushing is performed, and Figure 5B shows the state after flushing is performed.

ワードラインWL0は下位ページL、中位ページM、上位ページUを含む。さらに、ワードラインWL0の下位ページには、4つのストリングSt0~St3にそれぞれ対応する4つのページP00L~P03Lが含まれる。同様に、中位ページには、ストリングSt0~St3にそれぞれ対応するページP00M~P03M、上位ページには、ストリングSt0~St3にそれぞれ対応するページP00U~P03Uが含まれる。同様に、ワードラインWL1の下位ページ、中位ページ、及び、上位ページには、ストリングSt0~St3に対応してそれぞれ、ページP10L~P13L、ページP10M~P13M、及び、ページP10U~P13Uが含まれる。 The word line WL0 includes a lower page L, a middle page M, and an upper page U. Furthermore, the lower page of the word line WL0 includes four pages P00L to P03L corresponding to the four strings St0 to St3, respectively. Similarly, the middle page includes pages P00M to P03M corresponding to the strings St0 to St3, respectively, and the upper page includes pages P00U to P03U corresponding to the strings St0 to St3, respectively. Similarly, the lower page, middle page, and upper page of the word line WL1 include pages P10L to P13L, pages P10M to P13M , and pages P10U to P13U corresponding to the strings St0 to St3, respectively.

この図5A,5Bにおいて、1つの枠がページ単位を表し、枠内に記載された数字は書き込みが行われるべきページの順序を示している。左下がりの斜線で表された枠は書き込み済みで有効データが存在するページを示している。空白の枠は未書き込みのページである。 In Figures 5A and 5B, each box represents a page unit, and the numbers written within the box indicate the order in which the pages should be written. Boxes with diagonal lines slanting downwards to the left indicate pages that have been written and contain valid data. Blank boxes are pages that have not been written to.

E/D部22は、NANDフラッシュコントローラ20を介してライトバッファ11Aに保持されている所定量(例えば512バイト)の入力データ(原データ)を取得する(S100)。このとき、RS-E/D部21も原データを取得する。 The E/D unit 22 obtains a predetermined amount (for example, 512 bytes) of input data (original data) held in the write buffer 11A via the NAND flash controller 20 (S100). At this time, the RS-E/D section 21 also acquires the original data.

E/D部22は、CRCエンコーダ26が原データの8ビット毎にCRCを計算し、CRC符号を生成する(S110)。この例では、512バイトの原データから、4バイトのCRC符号が生成されている。CRC符号は、BCHエンコーダ27に供給される。 In the E/D unit 22, the CRC encoder 26 calculates the CRC for every 8 bits of the original data and generates a CRC code (S110). In this example, a 4-byte CRC code is generated from 512 bytes of original data. The CRC code is supplied to the BCH encoder 27.

次いで、BCHエンコーダ27は、原データの8ビット毎にBCH符号を生成すると共に、ステップS110で生成されたCRC符号の8ビット毎にBCH符号を生成する(S120)。この例では、512バイトの原データと、4バイトのCRC符号とから、26バイトのBCH符号が生成されている。 Next, the BCH encoder 27 generates a BCH code for every 8 bits of the original data, and also generates a BCH code for every 8 bits of the CRC code generated in step S110 (S120). In this example, a 26-byte BCH code is generated from 512-byte original data and a 4-byte CRC code.

そして、NANDフラッシュコントローラ20は、原データと、原データから生成したCRC符号と、原データおよびCRC符号から生成したBCH符号とを、NANDフラッシュメモリチップ23のプレーンの1ページに記憶する(S130)。 Then, the NAND flash controller 20 stores the original data, the CRC code generated from the original data, and the BCH code generated from the original data and the CRC code in one page of a plane of the NAND flash memory chip 23 (S130).

NANDフラッシュコントローラ20は、規定数のデータ処理を行ったか否かを判定する(S140)。未だ規定数のデータ処理が行われていないと判定されたら(S140のNo)、処理がステップS100に戻され、次の所定量の原データが取得される。ステップS100~S140の処理により、図5A中のページP00L、P01L・・の順に書き込みが行われる。NANDフラッシュコントローラ20は、ホスト14からフラッシュのプログラム指示がなされたことをもって既定数のデータ処理を行ったものと判定してもよい。 The NAND flash controller 20 determines whether a specified number of data processes have been performed (S140). If it is determined that the predetermined amount of data has not been processed yet (No in S140), the process returns to step S100, and the next predetermined amount of original data is acquired. Through the processing of steps S100 to S140, writing is performed in the order of pages P 00L , P 01L , . . . in FIG. 5A. The NAND flash controller 20 may determine that a predetermined number of data processes have been performed when the host 14 issues a flash programming instruction.

ここで、フラッシュ実行前に下位ページのみが書き込まれているページ(複数のページのうち上位側に書き込みがない最も下位のページ)P02L、P03L、P10L、P11Lは、第2ステージプログラムが未完了の状態である。したがって、ページP02L、P03L、P10L、P11Lは、より上位側の対応する中位ページや上位ページ(例えばページP02MやP03Mなど)の書き込み時において不正電源遮断等が発生すると、その巻き添えを受けてデータが破壊される恐れがある。そこで、実施形態のメモリシステムでは、さらにステップS150以下の処理を実行する。 Here, pages P 02L , P 03L , P 10L , and P 11L to which only the lower page is written before flash execution (the lowest page among multiple pages with no writing on the upper side) are the second stage programs. is in an incomplete state. Therefore, pages P 02L , P 03L , P 10L , and P 11L are affected by unauthorized power interruption when writing to the corresponding middle page or upper page (for example, pages P 02M and P 03M ) on the higher level side. There is a risk that the data will be destroyed as a result of this. Therefore, the memory system of the embodiment further executes the processing from step S150 onwards.

ステップS140で、規定数のデータ処理が行われた(あるいはフラッシュコマンドを受けた)と判定されたら、NANDフラッシュコントローラ20は、第2ステージプログラムが未完了であるページを検出する(S150)。図5Bに示す例では、書き込みがある最も下位のページP02L、P03L、P10L、P11Lよりも上位側のページに書き込みが完了したデータがないから、これらのページが検出される。 When it is determined in step S140 that a prescribed number of data processes have been performed (or a flash command has been received), the NAND flash controller 20 detects pages for which the second stage program is incomplete (S150). In the example shown in Fig. 5B, pages higher than the lowest written pages P02L , P03L , P10L , and P11L have no written data, so these pages are detected.

NANDフラッシュコントローラ20は、検出されたページP02L、P03L、P10L、P11LをRSフレームに設定する(S160)。図5Bにおいて、RSフレームは太線黒枠にて囲われて示されている。 The NAND flash controller 20 sets the detected pages P02L , P03L , P10L , and P11L in the RS frame (S160). In Fig. 5B, the RS frame is shown surrounded by a thick black frame.

RS-E/D部21は、設定されたRSフレームのデータについてRS符号を生成する(S170)。RS-E/D部21は、取得したデータから、データブロックを横断して、データブロック内の位置が対応する8ビット(1シンボル)ずつデータを取り出して、RS符号を生成する。 The RS-E/D unit 21 generates an RS code for the data of the set RS frame (S170). The RS-E/D unit 21 traverses the data block from the acquired data, extracts data in units of 8 bits (1 symbol) that correspond to positions within the data block, and generates an RS code.

NANDフラッシュコントローラ20は、NANDフラッシュメモリチップ23の次に書き込み可能なページ(図5AではページP12L)に、生成されたRS符号を書き込む(S180)。すなわち、図5BにおけるページP02L、P03L、P10L、P11LのRSパリティとしてRS符号等がページP12Lに書き込まれる。右下がりの斜線で表された枠は、書き込み済でRSパリティが存在するページを示している。 The NAND flash controller 20 writes the generated RS code to the next writable page (page P12L in FIG. 5A) of the NAND flash memory chip 23 (S180). That is, the RS code etc. is written to page P12L as the RS parity of pages P02L , P03L , P10L , and P11L in FIG. 5B. The boxes indicated by diagonal lines slanting downwards to the right indicate pages that have been written and for which RS parity exists.

以上述べたように、この実施形態のメモリシステムでは、フラッシュにおいて下位ページのみ書かれているページ(不正電源遮断で巻き添え破壊が発生する可能性のあるページ)のデータを読み出し、そのページ群で構成されるRSフレームを構成し、RSパリティを生成している。生成したRSパリティは、次の書き込み可能ページに追記される。かかる構成によれば、下位ページのみデータが書かれているページの上位側のページ(例えばページP02M、P03M、P10M、P11M)の書き込み時に不正に電源遮断が発生してページP02L、P03L、P10L、P11Lのどれか一つが破壊されたとしても、NANDフラッシュコントローラ20は、データの読み出し時に、RSパリティが記載されたページP12Lを利用して誤り訂正することが可能になる。 As described above, in the memory system of this embodiment, data is read from pages in which only lower pages are written in the flash (pages where collateral damage may occur due to unauthorized power shutoff), and the memory system is configured by a group of pages. RS frames are configured to be used, and RS parity is generated. The generated RS parity is added to the next writable page. According to such a configuration, an unauthorized power shutoff occurs when writing a page on the upper side of a page (for example, pages P 02M , P 03M , P 10M , P 11M ) in which data is written only in the lower page, and page P 02L is written. , P 03L , P 10L , or P 11L is destroyed, the NAND flash controller 20 can correct an error by using page P 12L in which RS parity is written when reading data. become.

ここで、図6、図7A、図7Bを用いて、比較例によるデータ書き込み時の誤り訂正符号化について説明する。図6は、比較例による誤り訂正符号化のフローチャートの一例である。図7A及び図7Bは、比較例においてメモリコントローラ12がフラッシュコマンドを受け、NANDフラッシュコントローラ20がNANDフラッシュメモリチップ23のあるメモリブロックBLKの複数のページにデータを書き込む様子を説明するための図である。 Here, using Figures 6, 7A, and 7B, we will explain the error correction encoding when writing data in the comparative example. Figure 6 is an example of a flowchart of the error correction encoding in the comparative example. Figures 7A and 7B are diagrams for explaining how the memory controller 12 receives a flash command in the comparative example, and the NAND flash controller 20 writes data to multiple pages of a memory block BLK in a NAND flash memory chip 23.

図7A及び図7Bにおいても、あるメモリブロックAにおけるワードラインWL0及びWL1のページの状態を表している。図中、St0~St3は、ワードラインそれぞれのストリング(String)を表し、「L」「M」「U」は、それぞれ下位ページ(Lower page)、中位ページ(Middle page)、上位ページ(Upper page)を表している。比較例においても、多値メモリの場合、下位ページ、中位ページ、及び、上位ページへの一連のデータ書き込みが行われる。一方、ホスト14からメモリシステム1に対して前述した瞬断に対応すべくフラッシュ処理が要求される場合もある。本比較例においては、瞬断に対応するフラッシュ処理を行う際に、以下に説明するような書き込み制御行う。図7Aはフラッシュ実行前のページの状態を示し、図7Bはフラッシュ実行後の状態を示している。 7A and 7B also show the page states of word lines WL0 and WL1 in a certain memory block A. In the figure, St0 to St3 represent strings for each word line, and "L", "M", and "U" represent lower page, middle page, and upper page, respectively. page). In the comparative example as well, in the case of a multilevel memory, a series of data writing is performed to the lower page, middle page, and upper page. On the other hand, the host 14 may request the memory system 1 to perform a flush process in order to cope with the above-mentioned momentary power outage. In this comparative example, when performing flash processing in response to a momentary power outage, write control as described below is performed. FIG. 7A shows the state of the page before flushing, and FIG. 7B shows the state after flushing.

ワードラインWL0は下位ページL、中位ページM、上位ページUを含む。さらに、ワードラインWL0の下位ページには、4つのストリングSt0~St3にそれぞれ対応する4つのページP00L~P03Lが含まれる。同様に、中位ページにはストリングSt0~St3にそれぞれ対応するページP00M~P03M、上位ページには、ストリングSt0~St3それぞれに対応するページP00U~P03Uが含まれている。同様に、ワードラインWL1の下位ページ、中位ページ、及び、上位ページには、ストリングSt0~St3に対応してそれぞれ、ページP10L~P13L、ページP10M~P13M、及び、ページP10U~P13Uが含まれる。 Word line WL0 includes a lower page L, a middle page M, and an upper page U. Further, the lower page of the word line WL0 includes four pages P 00L to P 03L corresponding to the four strings St0 to St3, respectively. Similarly, the middle page includes pages P 00M to P 03M corresponding to the strings St0 to St3, respectively, and the upper page includes pages P 00U to P 03U corresponding to the strings St0 to St3, respectively. Similarly, the lower page, middle page, and upper page of word line WL1 include pages P 10L to P 13L, pages P 10M to P 13M , and page P 10U corresponding to strings St0 to St3, respectively. ~P 13U is included.

この図7A,7Bにおいて、1つの枠がページ単位を表し、枠内に記載された数字は書き込みが行われるべきページの順序を示している。左下がりの斜線で表された枠は書き込み済みで有効データが存在するページを示している。空白の枠は未書き込みのページである。ドット柄の枠、すなわちページP12L、P13L、P03M、P03Uは、書き込み済で有効データが存在しないページである。 In FIGS. 7A and 7B, one frame represents a page unit, and the numbers written within the frame indicate the order of pages to be written. A frame indicated by a diagonal line downward to the left indicates a page that has been written and contains valid data. Blank frames are unwritten pages. The dot-patterned frames, that is, pages P 12L , P 13L , P 03M , and P 03U are pages that have been written and have no valid data.

E/D部22は、NANDフラッシュコントローラ20を介してライトバッファ11Aに保持されている所定量(例えば512バイト)の入力データ(原データ)を取得する(S100)。このとき、RS-E/D部21も原データを取得する。 The E/D unit 22 acquires a predetermined amount (for example, 512 bytes) of input data (original data) held in the write buffer 11A via the NAND flash controller 20 (S100). At this time, the RS-E/D section 21 also acquires the original data.

E/D部22は、CRCエンコーダ26が原データの8ビット毎にCRCを計算し、CRC符号を生成する(S110)。この例では、512バイトの原データから、4バイトのCRC符号が生成されている。CRC符号は、BCHエンコーダ27に供給される。 In the E/D unit 22, the CRC encoder 26 calculates a CRC for each 8 bits of the original data, and generates a CRC code (S110). In this example, a 4-byte CRC code is generated from 512-byte original data. The CRC code is supplied to the BCH encoder 27.

次いで、BCHエンコーダ27は、原データの8ビット毎にBCH符号を生成すると共に、ステップS110で生成されたCRC符号の8ビット毎にBCH符号を生成する(S120)。この例では、512バイトの原データと、4バイトのCRC符号とから、26バイトのBCH符号が生成されている。 Next, the BCH encoder 27 generates a BCH code for every 8 bits of the original data, and also generates a BCH code for every 8 bits of the CRC code generated in step S110 (S120). In this example, a 26-byte BCH code is generated from 512-byte original data and a 4-byte CRC code.

そして、NANDフラッシュコントローラ20は、原データと、原データから生成したCRC符号と、原データおよびCRC符号から生成したBCH符号とが、NANDフラッシュメモリチップ23のプレーンの1ページに記憶する(S130)。 Then, the NAND flash controller 20 stores the original data, the CRC code generated from the original data, and the BCH code generated from the original data and the CRC code in one page of the plane of the NAND flash memory chip 23 (S130). .

NANDフラッシュコントローラ20は、規定数のデータ処理を行ったか否かが判別する(S140)。未だ規定数のデータ処理が行われていないと判定されたら(S140のNo)、処理がステップS100に戻され、次の所定量の原データが取得される。 The NAND flash controller 20 determines whether a specified number of data processes have been performed (S140). If it is determined that the predetermined amount of data has not been processed yet (No in S140), the process returns to step S100, and the next predetermined amount of original data is acquired.

ここで、フラッシュ実行前に下位ページのみが書き込まれているページ(複数のページのうち上位側に書き込みがない最も下位のページ)P02L、P03L、P10L、P11Lは、第2ステージプログラムが未完了の状態である。したがって、ページP02L、P03L、P10L、P11Lは、より上位側の対応する中位ページや上位ページの書き込み時において不正電源遮断等が発生すると、その巻き添えを受けてデータが破壊される恐れがある。そこで、比較例のメモリシステムでは、さらにステップS145以下の処理を実行する。 Here, the pages P02L , P03L , P10L , and P11L , in which only the lower page is written before the flush is executed (the lowest page among the multiple pages with no writing on the upper side), are in a state where the second stage program is incomplete. Therefore, if an illegal power interruption or the like occurs when writing to the corresponding middle page or upper page on the upper side, there is a risk that the data of the pages P02L , P03L , P10L , and P11L will be involved and destroyed. Therefore, in the memory system of the comparative example, the process from step S145 onwards is further executed.

ステップS140で、規定数のデータ処理が行われた(あるいはフラッシュコマンドを受けた)と判定されたら、NANDフラッシュコントローラ20は、第2ステージプログラムが未完了であるページP02L、P03L、P10L、P11Lの一部の有効データを、より上位側に当たる中位ページや上位ページに書き込み、また、必要に応じて中位ページや上位ページに無効なデータ(ダミーデータ)を書き込むことで、上位のページが未書き込みな下位ページに有効なデータが存在する状態をなくす(S145)。 If it is determined in step S140 that a prescribed number of data processes have been performed (or a flash command has been received), the NAND flash controller 20 writes some of the valid data from pages P02L , P03L , P10L , and P11L , for which the second stage program is incomplete, to the middle and upper pages, which are on the higher side, and also writes invalid data (dummy data) to the middle and upper pages as necessary, thereby eliminating the state in which valid data exists in lower pages where the upper pages are not written (S145).

具体的には、NANDフラッシュコントローラ20は、第2ステージプログラムが未完了であるページを検出する。図7Aに示す例では、書き込みがある最も下位のページP02L、P03L、P10L、P11Lよりも上位側のページに書き込みが完了したデータがないから、これらのページが検出される。続いて、検出されたページP02L、P03L、P10L、P11Lのうち、ページP10L、P11LのデータをページP02M、P02Uに書き込み、元のページP10L、P11Lのデータを無効化(図7B)する。これによりページP10L、P11LのデータをページP02M、P02Uに移動する。さらに、ページP03Lの上位に当たるページP03M、P03Uにダミーデータを書き込む。その際、書き込み順に従い、下位ページのP12L、P13Lにもダミーデータを書き込む。ドット柄の枠で示されるP03M、P03U、P12L、P13Lは、書き込み済で有効データが存在しない(無効データ)ページを示している。 Specifically, the NAND flash controller 20 detects pages for which the second stage program is incomplete. In the example shown in FIG. 7A, since there is no data that has been written to pages higher than the lowest pages P02L , P03L , P10L , and P11L, these pages are detected. Next, among the detected pages P02L , P03L , P10L , and P11L , data of pages P10L and P11L is written to pages P02M and P02U , and data of the original pages P10L and P11L is invalidated (FIG. 7B). As a result, data of pages P10L and P11L is moved to pages P02M and P02U . Furthermore, dummy data is written to pages P03M and P03U , which are higher than page P03L . At this time, dummy data is also written to the lower pages P12L and P13L according to the write order. P03M , P03U , P12L , and P13L indicated by dotted frames indicate pages that have been written but do not contain valid data (invalid data).

かかる処理により、下位ページのみが書き込まれたページ内の有効データが全て移動され、有効データはすべて上位ページまで書き込み完了済みのページに存在する状態になる。これにより、中位ページや上位ページの書き込み中に電源遮断が発生しても、それによって破壊される下位ページに有効データが存在しなくなる。 Through this process, all the valid data in the page to which only the lower page has been written is moved, and all the valid data exists in the page to which writing has been completed up to the upper page. As a result, even if power is cut off during writing to a middle page or an upper page, valid data will not exist in the lower pages that are destroyed thereby.

図5A及び図5Bに示す動作の本実施形態のメモリシステムでは、一つのブロック内の異なるストリングに属する(同時にProgramできない)ページ群でRSフレームを組み、そのRSパリティを当該ページ群に続くページに追記している。かかる構成により、RSフレーム内の複数の下位ページが同時に巻き添え破壊されない状態を作ることで、最小限のページの追記によりフラッシュコマンド以前に書き込みプログラムされたデータが不正電源遮断で巻き添え破壊されたとしても、当該データを復元することを可能にする。 In the memory system of this embodiment, whose operation is shown in Figures 5A and 5B, an RS frame is made up of a group of pages (which cannot be programmed simultaneously) belonging to different strings in one block, and the RS parity is added to the page following the group of pages. This configuration creates a state in which multiple lower pages in the RS frame are not simultaneously destroyed, making it possible to restore data that was written and programmed before the flash command by adding a minimum number of pages, even if the data is destroyed by an unauthorized power interruption.

一方、図7A及び図7Bに示す動作の比較例のメモリシステムでは、フラッシュコマンドが実行されるたびに巻き添え破壊の可能性があるページの移動(書き込み+無効化)が発生し、さらにダミーページの書き込みが発生する可能性もある。 On the other hand, in the memory system of the comparative example of the operation shown in Figures 7A and 7B, every time a flash command is executed, a page movement (write + invalidation) occurs that may cause collateral damage, and there is also a possibility that a dummy page may be written.

本実施形態と比較例とを対比すると、図5Bに示す動作の本実施形態では、フラッシュコマンド実行後、ページP02L、P03L、P10L、P11Lの読み込みと、RS符号が書き込まれるページP12Lの書き込みと、第1ステージプログラムとが必要である。一方、図7Bに示す動作の比較例では、ページP10L、P11Lの読み込み及びページP02M、P02Uの書き込みと、ページP03M、P03Uの書き込みと、第1ステージプログラム及び第2ステージプログラムとが必要である。したがって、本実施形態のメモリシステムは、最小限のページ読み書きとプログラムにより、より短い応答時間で巻き添えデータ破壊からの復元を実現することができる。 Comparing this embodiment with the comparative example, in the embodiment of the operation shown in Fig. 5B, after the flash command is executed, it is necessary to read pages P02L , P03L , P10L , and P11L , write page P12L to which the RS code is written, and perform the first stage program. On the other hand, in the comparative example of the operation shown in Fig. 7B, it is necessary to read pages P10L and P11L , write pages P02M and P02U , write pages P03M and P03U , and perform the first stage program and the second stage program. Therefore, the memory system of this embodiment can realize recovery from collateral data destruction with a shorter response time by minimizing page reads, writes, and programs.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are included in the scope of the invention and its equivalents described in the claims.

1…メモリシステム、10…ホストインターフェース、11…バッファメモリ、12…メモリコントローラ、13…フラッシュメモリ部、20…NANDフラッシュコントローラ、21…RS-E/D部、22…E/D部、23…NANDフラッシュメモリチップ。 1... memory system, 10... host interface, 11... buffer memory, 12... memory controller, 13... flash memory section, 20... NAND flash controller, 21... RS-E/D section, 22... E/D section, 23... NAND flash memory chip.

Claims (6)

複数のページを有し多値データを記憶可能な複数のメモリセルが複数配列して構成される不揮発性の記憶部と、
前記記憶部に記憶されたデータを前記ページ単位で誤り訂正可能な訂正処理部と、
前記記憶部への前記多値データの書き込み、及び、前記記憶部から書き込んだ前記多値データの読み出しを行うコントローラとを含み、
前記コントローラは、
前記記憶部に記憶された前記多値データの格納位置を管理し、
前記複数のページのうち最も下位のページのみにデータが記憶されているページを検出し、
前記検出されたページすべてを1つのフレームとした誤り訂正符号を前記訂正処理部に生成させ、
前記最も下位のページのうち前記1つのフレームを構成するページに続いて書き込み可能であるページに前記誤り訂正符号を書き込む
メモリシステム。
a non-volatile storage unit configured by arranging a plurality of memory cells each having a plurality of pages and capable of storing multi-level data;
a correction processing unit capable of error correcting data stored in the storage unit in units of pages;
A controller that writes the multi-value data to the storage unit and reads the multi-value data written from the storage unit,
The controller includes:
managing a storage location of the multivalued data stored in the storage unit;
detecting a page in which data is stored only in the lowest page among the plurality of pages;
causing the correction processing unit to generate an error correction code that includes all of the detected pages as one frame;
A memory system in which the error correction code is written to a writable page following the page constituting the one frame among the lowest pages.
前記コントローラは、前記1つのフレームを構成するページが破壊された場合、前記誤り訂正符号を用いて前記1つのフレームを構成するページを復元する、請求項1記載のメモリシステム。 The memory system of claim 1, wherein the controller restores a page constituting one of the frames using the error correction code when the page constituting one of the frames is destroyed. 前記訂正処理部は、リード・ソロモン符号の冗長符号を生成する、請求項1記載のメモリシステム。 The memory system according to claim 1, wherein the correction processing unit generates a redundant code of a Reed-Solomon code. 複数のページを有し多値データを記憶可能な複数のメモリセルが複数配列して構成される不揮発性の記憶部と、
前記記憶部に記憶されたデータを前記ページ単位で誤り訂正可能な訂正処理部と、
前記記憶部への前記多値データの書き込み、及び、前記記憶部から書き込んだ前記多値データの読み出しを行うコントローラと、を有するメモリシステムの制御方法であって、
前記記憶部に記憶された前記多値データの格納位置を管理し、
前記複数のページのうち最も下位のページのみにデータが記憶されているページを検出し、
前記検出されたページすべてを1つのフレームとした誤り訂正符号を前記訂正処理部に生成させ、
前記最も下位のページのうち前記1つのフレームを構成するページに続いて書き込み可能であるページに前記誤り訂正符号を書き込む
制御方法。
a non-volatile storage unit including a plurality of memory cells arranged in a plurality of rows and each of which has a plurality of pages and is capable of storing multi-value data;
a correction processing unit capable of correcting errors in the data stored in the storage unit on a page-by-page basis;
A control method for a memory system having a controller that writes the multi-value data to the storage unit and reads the written multi-value data from the storage unit, comprising:
managing a storage location of the multi-valued data stored in the storage unit;
detecting a page having data stored only in a lowest page among the plurality of pages;
generating an error correction code in which all of the detected pages are one frame in the correction processing unit;
A control method for writing the error correction code into a page that can be written into subsequent to a page that constitutes one of the frames among the lowest pages.
前記コントローラが、前記1つのフレームを構成するページが破壊された場合、前記誤り訂正符号を用いて前記1つのフレームを構成するページを復元する、請求項4記載の制御方法。 The control method according to claim 4, wherein the controller restores a page constituting one of the frames using the error correction code when the page constituting one of the frames is destroyed. 前記訂正処理部が、リード・ソロモン符号の冗長符号を生成する、請求項4記載の制御方法。 The control method according to claim 4, wherein the correction processing unit generates a redundant code of a Reed-Solomon code.
JP2022151503A 2022-09-22 2022-09-22 Memory system and control method Pending JP2024046239A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022151503A JP2024046239A (en) 2022-09-22 2022-09-22 Memory system and control method
US18/459,365 US20240103968A1 (en) 2022-09-22 2023-08-31 Memory system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022151503A JP2024046239A (en) 2022-09-22 2022-09-22 Memory system and control method

Publications (1)

Publication Number Publication Date
JP2024046239A true JP2024046239A (en) 2024-04-03

Family

ID=90359229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022151503A Pending JP2024046239A (en) 2022-09-22 2022-09-22 Memory system and control method

Country Status (2)

Country Link
US (1) US20240103968A1 (en)
JP (1) JP2024046239A (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567134B (en) * 2012-01-06 2015-01-07 威盛电子股份有限公司 Error checking and correcting system and method for memory module
US9032271B2 (en) * 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US10229000B2 (en) * 2016-08-09 2019-03-12 Seagate Llc Erasure codes to prevent lower page corruption in flash memory
TWI680375B (en) * 2018-08-23 2019-12-21 慧榮科技股份有限公司 Multi-processor system having distributed mailbox architecture and processor error checking method thereof
US11436083B2 (en) * 2020-09-04 2022-09-06 Western Digital Technologies, Inc. Data address management in non-volatile memory

Also Published As

Publication number Publication date
US20240103968A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
KR101633048B1 (en) Memory system and data processing method thereof
KR101736792B1 (en) Flash memory and self interleaving method thereof
CN110444246B (en) Adjacent auxiliary correction error recovery for memory system and method thereof
US7751238B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
TWI594254B (en) Method for reading data from block of flash memory and associated memory device
US9639419B2 (en) Read voltage level estimating method, memory storage device and memory control circuit unit
CN109285582B (en) Memory systems, non-transitory computer-readable media, and methods of error checking and correction
KR102714845B1 (en) Error correction decoder and memory system having the error correction decoder
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
KR20180010448A (en) Ldpc decoder, semiconductor memory system and operating method thereof
US20090265598A1 (en) Using programming-time information to support error correction
KR102617832B1 (en) Memory controller, semiconductor memory system and operating method thereof
KR20180027803A (en) Memory controller, semiconductor memory system and operating method thereof
US11095316B2 (en) Controller and operating method for performing read operation to read data in memory device
US11966589B2 (en) Controller and operating method thereof
KR102706981B1 (en) Controller, semiconductor memory system and operating method thereof
KR20160113001A (en) Ldpc decoder, semiconductor memory system and operating method thereof
CN106297883A (en) Decoding method, memory storage device and memory control circuit unit
KR20210115961A (en) Ldpc decoder and operating method thereof
CN111538621B (en) Soft chip hunting recovery for bit line faults
US20160077913A1 (en) Method of controlling nonvolatile memory
KR20180123393A (en) Siso decoding method, decoder and semiconductor memory system using the same
US11770133B1 (en) Exact ber reporting in the presence of CRC termination
US20240103968A1 (en) Memory system and control method
US20230039982A1 (en) Memory system and operating method of memory system
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载