Memory system

The memory system addresses read latency issues by employing a configuration with multiple sub-memory areas and adaptive voltage management, ensuring accurate data retrieval by updating read voltages to compensate for threshold voltage fluctuations.

JP7834615B2Active Publication Date: 2026-03-24KIOXIA CORP
View PDF 7 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-09-08
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing memory systems experience increased latency in read processing due to fluctuations in the threshold voltage of memory cell transistors over time, which affect the accuracy of data retrieval.

Method used

The memory system employs a configuration with multiple sub-memory areas and a controller that calculates and applies specific voltages (first, second, third, fourth, and fifth voltages) to optimize read operations by using common and individual read voltages based on the threshold voltage distribution of memory cells, updating these voltages as needed to maintain data accuracy.

Benefits of technology

This approach reduces read latency by ensuring accurate data retrieval through the use of optimized read voltages, adapting to fluctuations in threshold voltages, thereby enhancing the performance and reliability of the memory system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007834615000001
    Figure 0007834615000001
  • Figure 0007834615000002
    Figure 0007834615000002
  • Figure 0007834615000003
    Figure 0007834615000003
Patent Text Reader

Abstract

To suppress an increase in the latency of reading processing.SOLUTION: Included in a memory system are first to fifth sub-memory regions and a controller, and the controller is configured to calculate a first voltage corresponding to the first sub-memory region in first processing, calculate a second voltage corresponding to the fourth sub-memory region in second processing, use a third voltage upon data reading from each of the first, second, fourth, and fifth sub-memory regions before the first processing, use a fourth voltage corresponding to the third sub-memory region upon data reading from the third sub-memory region, use the first voltage upon data reading from the first sub-memory region after the first processing and before the second processing, use a fifth voltage calculated by use of the first voltage upon data reading from each of the second, fourth, and fifth sub-memory regions, and use a sixth voltage calculated by use of the second voltage upon data reading from each of the second and fifth sub-memory regions after the second processing.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments relate to a memory system.

Background Art

[0002] A memory system including a non-volatile memory capable of storing data non-volatily and a controller for controlling the non-volatile memory is known.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Patent Document 3

Summary of the Invention

Problems to be Solved by the Invention

[0004] Suppress an increase in the latency of read processing.

Means for Solving the Problems

[0005] The memory system according to the embodiment comprises a non-volatile memory including a first sub-memory area, a second sub-memory area, a third sub-memory area, a fourth sub-memory area, and a fifth sub-memory area, and a controller, wherein each of the first sub-memory area, the second sub-memory area, the third sub-memory area, the fourth sub-memory area, and the fifth sub-memory area includes a plurality of memory cells, the controller calculates a first voltage associated with the first sub-memory area in a first process, calculates a second voltage associated with the fourth sub-memory area in a second process after the first process, uses a third voltage as a common voltage when reading data from each of the first sub-memory area, the second sub-memory area, the fourth sub-memory area, and the fifth sub-memory area before the first process, and when reading data from the third sub-memory area, The fourth voltage associated with the third sub-memory area is used, and after the first process and before the second process, when reading data from the first sub-memory area, the first voltage is used, and when reading data from the second sub-memory area, the fourth sub-memory area, and the fifth sub-memory area, the fifth voltage calculated using the first voltage is used as the common voltage, when reading data from the third sub-memory area, the fourth voltage is used, and after the second process, when reading data from the first sub-memory area, the first voltage is used, and when reading data from the second sub-memory area and the fifth sub-memory area, the sixth voltage calculated using the second voltage is used as the common voltage, when reading data from the third sub-memory area, the fourth voltage is used, and when reading data from the fourth sub-memory area, the second voltage is used. [Brief explanation of the drawing]

[0006] [Figure 1] A block diagram showing an example of the configuration of a memory system including a memory system and host equipment according to the first embodiment. [Figure 2] A block diagram illustrating an example of the configuration of a non-volatile memory according to the first embodiment. [Figure 3]A circuit diagram showing an example of the circuit configuration of a memory cell array in a non-volatile memory according to the first embodiment. [Figure 4] A schematic diagram showing an example of the threshold voltage distribution of memory cell transistors in a memory system according to the first embodiment. [Figure 5] This figure shows an example of read voltage information for each block stored in the volatile memory of the memory system according to the first embodiment. [Figure 6] This figure shows an example of common read voltage information stored in the volatile memory of the memory system according to the first embodiment. [Figure 7] A flowchart illustrating the first process relating to the first example of operation of the first embodiment. [Figure 8] A flowchart illustrating the second process relating to the first example of operation of the first embodiment. [Figure 9] A diagram illustrating an example of updating read voltage information in the overall operation, including the write process, according to the first example of operation of the first embodiment. [Figure 10] A diagram illustrating an example of updating read voltage information in the overall operation, including the write process, according to the first example of operation of the first embodiment. [Figure 11] A diagram illustrating an example of updating read voltage information in the overall operation, including the write process, according to the first example of operation of the first embodiment. [Figure 12] A schematic diagram illustrating an example of tracking lead processing related to the first operational example of the first embodiment. [Figure 13] A schematic diagram illustrating an example of the correction amount calculation process related to the first operation example of the first embodiment. [Figure 14] A flowchart illustrating the second process relating to the second operation example of the first embodiment. [Figure 15] A diagram illustrating an example of updating read voltage information in the overall operation, including the write process, according to the second operation example of the first embodiment. [Figure 16] A flowchart illustrating the read process related to the third operation example of the first embodiment. [Figure 17]A diagram showing an example of read voltage information for each block stored in the volatile memory of the memory system according to the first modification of the first embodiment. [Figure 18] A flowchart for explaining the overall operation including the write process according to the first operation example of the first modification of the first embodiment. [Figure 19] A diagram for explaining an example of updating read voltage information in the overall operation including the write process according to the first operation example of the first modification of the first embodiment. [Figure 20] A flowchart for explaining the overall operation including the write process according to the second operation example of the first modification of the first embodiment. [Figure 21] A diagram for explaining an example of updating read voltage information in the overall operation including the write process according to the second operation example of the first modification of the first embodiment. [Figure 22] A diagram showing an example of read voltage information for each block stored in the volatile memory of the memory system according to the second modification of the first embodiment. [Figure 23] A flowchart for explaining the operation of assigning an identifier of a common read voltage corresponding to a block among the identifiers of a plurality of common read voltages in the memory system according to the first operation example of the second modification of the first embodiment. [Figure 24] A diagram for explaining an example of updating read voltage information in the first operation example of the second modification of the first embodiment. [Figure 25] A flowchart for explaining the first process according to the second operation example of the second modification of the first embodiment. [Figure 26] A flowchart for explaining the second process according to the second operation example of the second modification of the first embodiment. [Figure 27] A diagram for explaining an example of updating read voltage information in the second operation example of the second modification of the first embodiment. [Figure 28] A block diagram for explaining an example of the configuration of the non-volatile memory according to the second embodiment. [Figure 29] A flowchart for explaining the patrol process in the memory system according to the operation example of the second embodiment. [Figure 30] A flowchart illustrating the read voltage update process according to the second embodiment. [Figure 31] A flowchart illustrating the patrol process in a memory system according to the first modified example of the second embodiment. [Figure 32] A flowchart illustrating a series of operations, including the process of updating the read voltage of a memory system according to a first modified example of the second embodiment. [Figure 33] A flowchart showing the process of adding to the list of read voltage update processes in patrol processing using a memory system according to a second modification of the second embodiment. [Figure 34] A flowchart illustrating a series of operations, including the process of updating the read voltage of a memory system, according to a second modified example of the second embodiment. [Figure 35] A flowchart illustrating a host read operation using a memory system according to a third modified example of the second embodiment. [Figure 36] A flowchart illustrating a host read operation using a memory system according to a fourth modified example of the second embodiment. [Figure 37] A flowchart showing the process of adding to the list of read voltage update processes in patrol processing using a memory system according to a fifth modification of the second embodiment. [Modes for carrying out the invention]

[0007] Embodiments will be described below with reference to the drawings. In the following description, components having the same function and configuration will be denoted by the same reference numerals.

[0008] In the following explanation, components having substantially the same function and structure will be assigned the same reference numeral. When elements with similar structures need to be specifically distinguished, different letters or numbers may be added to the end of the same reference numeral.

[0009] 1. First Embodiment 1.1 Configuration The following section describes memory systems that include non-volatile memory.

[0010] 1.1.1 Memory System First, the configuration including the memory system will be explained using Figure 1. Figure 1 is a block diagram showing an example of the configuration of the memory system including the memory system and host equipment according to the first embodiment.

[0011] Memory system 1 comprises a non-volatile memory 10, a volatile memory 20, and a controller 30. The non-volatile memory 10, the volatile memory 20, and the controller 30 may, for example, be combined to form a single semiconductor device. Memory system 1 is, for example, an SSD (solid state drive) or an SD TM It is a card. Memory system 1 is connected to an external host device 2. Memory system 1 stores data from host device 2. Memory system 1 also reads data to host device 2.

[0012] The non-volatile memory 10 is, for example, a semiconductor memory. The semiconductor memory is, for example, a NAND flash memory. The non-volatile memory 10 includes chips Chip0 to ChipN. Each of chips Chip0 to ChipN contains multiple memory cells. The non-volatile memory 10 non-volatilely stores data that the host device 2 instructs to write. The non-volatile memory 10 also outputs data read by a read process (host read process) based on instructions from the host device 2 to the host device 2 via the controller 30. In the following description, when chips Chip0 to ChipN are not distinguished, each chip Chip0 to ChipN will simply be referred to as a chip.

[0013] The volatile memory 20 is, for example, DRAM (Dynamic Random Access Memory). The volatile memory 20 stores firmware for managing the non-volatile memory 10 and various management information. The volatile memory 20 stores, for example, read voltage information 21. The read voltage information 21 is information for executing a read operation. The read voltage information 21 includes a read voltage identifier indicating the type of read voltage used when executing a read operation, and information regarding the read voltage corresponding to the read voltage identifier. Details of the read voltage information 21 will be described later.

[0014] The controller 30 is composed of an integrated circuit, such as a SoC (system-on-a-chip). The controller 30 receives instructions from the host device 2. Based on the received instructions, the controller 30 controls the non-volatile memory 10. Specifically, based on the write instructions received from the host device 2, the controller 30 writes the data it is instructed to write to the non-volatile memory 10. In addition, during host read processing, based on the read instructions received from the host device 2, the controller 30 reads the data it is instructed to read from the non-volatile memory 10 and transmits it to the host device 2.

[0015] 1.1.2 Controller The controller 30 includes a processor (CPU) 31, a buffer memory 32, a host interface circuit (host I / F) 33, an ECC circuit 34, a NAND interface circuit (NAND I / F) 35, a DRAM interface circuit (DRAM I / F) 36, a read voltage selection unit 37, and a read voltage calculation unit 38. The functions of each part within the controller 30 can be realized by dedicated hardware, a processor that executes a program (firmware), or a combination thereof.

[0016] The processor 31 uses a program stored in the ROM (Read-only memory) within the controller 30 to execute the overall operation of the controller 30. For example, the processor 31 issues commands to instruct the execution of various processes, including write operations, read operations, and erase operations, to the non-volatile memory 10.

[0017] The buffer memory 32 is, for example, SRAM (Static Random Access Memory). The buffer memory 32 temporarily stores data read by the controller 30 from the non-volatile memory 10, and written data received from the host device 2, etc.

[0018] The host interface circuit 33 is connected to the host device 2 via the host bus. The host interface circuit 33 is responsible for communication between the controller 30 and the host device 2. The host bus is, for example, SD TM The interface is a bus compliant with standards such as SAS (Serial attached SCSI (small computer system interface)), SATA (Serial ATA (advanced technology attachment)), or PCIe (Peripheral component integral express).

[0019] The ECC circuit 34 performs error detection and error correction processing for data stored in the non-volatile memory 10. More specifically, when writing data, the ECC circuit 34 generates an error correction code and adds the error correction code to the written data. The error correction code is a hard-decision decoded code such as a BCH (Bose-Chaudhuri-Hocquenghem) code or an RS (Reed-Solomon) code, or a soft-decision decoded code such as an LDPC (Low-Density Parity-Check) code. When reading data, the ECC circuit 34 decodes the error correction code and detects the presence or absence of error bits. When an error bit is detected, the ECC circuit 34 identifies the location of the error bit and corrects the error.

[0020] The NAND interface circuit 35 is connected to the non-volatile memory 10 by a NAND bus. The NAND interface circuit 35 communicates according to the NAND interface standard. The NAND interface circuit 35 communicates independently with each of the chips Chip0 to ChipN in the non-volatile memory 10. The NAND interface circuit 35 is responsible for communication with the non-volatile memory 10. The NAND interface circuit 35 transmits data, commands, and addresses to the non-volatile memory 10 according to instructions from the processor 31. Commands are signals for controlling the entire non-volatile memory 10. Data includes read data and written data.

[0021] The DRAM interface circuit 36 ​​is connected to the volatile memory 20. The DRAM interface circuit 36 ​​manages communication between the controller 30 and the volatile memory 20. The DRAM interface circuit 36 ​​performs communication based on the DRAM interface standard.

[0022] The read voltage selection unit 37 extracts a read voltage identifier based on the read voltage information 21. The read voltage selection unit 37 then applies a read voltage corresponding to the extracted read voltage identifier as the read voltage.

[0023] The read voltage calculation unit 38 assigns an identifier to the read voltage in the read voltage information 21. The read voltage calculation unit 38 updates the read voltage corresponding to the read voltage identifier. When updating the read voltage, the read voltage calculation unit 38 calculates the read voltage.

[0024] 1.1.3 Tips Next, the configuration of the chips within the non-volatile memory 10 will be explained using Figure 2. Figure 2 is a block diagram illustrating an example of the configuration of the non-volatile memory according to the first embodiment. Figure 2 shows an example of the configuration of chip 0. Note that chips 1 to 9 have the same configuration as chip 0.

[0025] The chip comprises, for example, memory cell arrays 11A and 11B, a command register 12, an address register 13, a sequencer 14, a driver module 15, row decoder modules 16A and 16B, and sense amplifier modules 17A and 17B. In the following description, when memory cell arrays 11A and 11B are not distinguished, they are simply referred to as memory cell array 11. Similarly, when row decoder modules 16A and 16B are not distinguished, they are simply referred to as row decoder module 16. Furthermore, when sense amplifier modules 17A and 17B are not distinguished, they are simply referred to as sense amplifier module 17.

[0026] In the following description, the set of memory cell array 11A, row decoder module 16A, and sense amplifier module 17A is referred to as plane PLN1. The set of memory cell array 11B, row decoder module 16B, and sense amplifier module 17B is referred to as plane PLN2. Note that while Figure 2 shows an example where the chip contains two planes PLN1 and PLN2, it is not limited to this. Each chip may have one plane PLN or three or more plane PLNs.

[0027] Memory cell arrays 11A and 11B each store data non-volatilely. Each of memory cell arrays 11A and 11B is provided with multiple bit lines and multiple word lines. Each of memory cell arrays 11A and 11B includes blocks BLK0 to BLKn. Each of blocks BLK0 to BLKn is a collection of multiple memory cells. Each of blocks BLK0 to BLKn is used, for example, as a data erasure unit. Each memory cell is associated with one bit line and one word line. Details of the memory cell array 11 will be described later. In the following description, when blocks BLK0 to BLKn are not distinguished, each of blocks BLK0 to BLKn will simply be referred to as block BLK.

[0028] The command register 12 stores the command CMD received by the chip from the controller 30. The command CMD includes instructions that cause the sequencer 14 to perform read, write, and erase operations, for example.

[0029] The address register 13 stores the address ADD received by the chip from the controller 30. The address ADD includes, for example, a block address and a column address. The address register 13 transfers the stored address ADD to the driver module 15, the row decoder module 16, and the sense amplifier module 17.

[0030] The PLC 14 controls the operation of the entire chip. The PLC 14 controls plane PLN1 and plane PLN2 independently. For example, the PLC 14 performs read, write, and erase operations on planes PLN1 and PLN2 based on the command CMD stored in the command register 12.

[0031] The driver module 15 generates the voltages necessary for read, write, and erase operations based on instructions from the sequencer 14. The driver module 15 supplies the generated voltages to the memory cell arrays 11A and 11B, the low decoder modules 16A and 16B, and the sense amplifier modules 17A and 17B.

[0032] Row decoder modules 16A and 16B are provided corresponding to memory cell arrays 11A and 11B, respectively. Each row decoder module 16 selects one block BLK in the corresponding memory cell array 11 based on the block address stored in the address register 13. The selected block BLK is supplied with a voltage generated by the driver module 15 via each row decoder module 16.

[0033] Sense amplifier modules 17A and 17B are provided corresponding to memory cell arrays 11A and 11B, respectively. Each sense amplifier module 17 senses the read data read from the memory cell onto the bit line during the read operation. Each sense amplifier module 17 transfers the sensed read data to the controller 30. Each sense amplifier module 17 transfers the write data to be written via the bit line to the memory cell during the write operation. Each sense amplifier module 17 also receives a column address from the address register 13. Each sense amplifier module 17 outputs the column data based on the received column address.

[0034] Communication between the non-volatile memory 10 and the controller 30 is performed, for example, based on the NAND interface standard. Various signals based on the NAND interface standard include, for example, signal I / O, CEn, CLE, ALE, WEn, REn, WPn, and RBn.

[0035] The signal I / O is, for example, an 8-bit wide signal. The signal I / O is transmitted and received between the controller 30 and the non-volatile memory 10. The signal I / O includes the address ADD, the command CMD, and the data DAT.

[0036] Signal CEn is the Chip Enable signal. Signal CEn is a signal to enable the non-volatile memory 10. Signal CLE is the Command Latch Enable signal. Signal CLE notifies the non-volatile memory 10 that the signal I / O sent to the non-volatile memory 10 while signal CLE is at the "H (High)" level is a command. Signal ALE is the Address Latch Enable signal. Signal ALE notifies the non-volatile memory 10 that the signal I / O sent to the non-volatile memory 10 while signal ALE is at the "H" level is an address. Signal WEn is the Write Enable signal. Signal WEn instructs the non-volatile memory 10 to capture the signal I / O. Signal REn is the Read Enable signal. Signal REn instructs the non-volatile memory 10 to output the signal I / O. Signal RBn is the Ready Busy signal. The signal RBn indicates whether the non-volatile memory 10 is in a ready state or a busy state. The ready state is when it is ready to accept commands from the outside. The busy state is when it is not ready to accept commands from the outside.

[0037] 1.1.4 Memory cell array Next, the configuration of the memory cell array 11 provided in the non-volatile memory 10 according to the first embodiment will be described with reference to Figure 3. Figure 3 is a circuit diagram showing an example of the circuit configuration of the memory cell array provided in the non-volatile memory according to the first embodiment. In Figure 3, an example of the circuit diagram of one block BLK of the memory cell array 11 is shown.

[0038] Block BLK includes, for example, four string units SU0 to SU3. Note that in Figure 3, the configurations of string units SU2 and SU3 are shown in a simplified manner. In the following description, when string units SU0 to SU3 are not distinguished, each string unit SU0 to SU3 will simply be referred to as string unit SU.

[0039] Each string unit SU contains multiple NAND strings NS.

[0040] Each NAND string NS comprises, for example, 16 memory cell transistors MT (MT0 to MT15) and selection transistors ST1 and ST2. The number of memory cell transistors MT per NAND string NS is not limited. Each memory cell transistor MT comprises a stacked gate including a control gate and a charge storage layer. In each NAND string NS, each memory cell transistor MT is connected in series between selection transistors ST1 and ST2.

[0041] Within each block BLK, the gates of the selection transistor ST1 of string units SU0 to SU3 are connected to selection gate lines SGD0 to SGD3, respectively. In the following explanation, when selection gate lines SGD0 to SGD3 are not distinguished, they are simply referred to as selection gate line SGD. The gates of the selection transistor ST2 of all string units SU within each block BLK are commonly connected to selection gate line SGS. The control gates of memory cell transistors MT0 to MT15 within the same block BLK are connected to word lines WL0 to WL15, respectively. That is, word lines WL with the same address are commonly connected to all string units SU within the same block BLK, and selection gate line SGS is commonly connected to all string units SU within the same block BLK. On the other hand, selection gate line SGD is connected to only one string unit SU within the same block BLK.

[0042] Furthermore, among the NAND strings NS arranged in a matrix within the memory cell array 11, the other end of the selection transistor ST1 of a NAND string NS in the same row is connected to one of the M bit lines BL (BL0 to BL(M-1)), where M is a natural number greater than or equal to 2. In addition, the bit lines BL are commonly connected to NAND strings NS in the same column across multiple blocks BLK.

[0043] Furthermore, the other end of the selection transistor ST2 is connected to the source line SL. The source line SL is commonly connected to multiple NAND strings NS across multiple blocks BLK.

[0044] As described above, data erasure is performed collectively, for example, on memory cell transistors MT within the same block BLK. In contrast, data read and write operations can be performed collectively on multiple memory cell transistors MT that are commonly connected to a word line WL in any string unit SU of any block BLK. Such a set of multiple memory cell transistors MT that share a word line WL in a single string unit SU is called, for example, a cell unit CU. In other words, a cell unit CU is a set of multiple memory cell transistors MT on which write or read operations are performed collectively. For example, the storage capacity of a cell unit CU containing multiple memory cell transistors MT, each storing 1 bit of data, is defined as "1 page of data". 1 page of data is used, for example, as a unit of data read. A cell unit CU may have a storage capacity of 2 pages of data or more, depending on the number of bits of data stored by the memory cell transistors MT.

[0045] 1.1.5 Data Allocation The data allocation in the memory system 1 according to the first embodiment will be explained using Figure 4. Figure 4 is a schematic diagram showing an example of the threshold voltage distribution of memory cell transistors in the memory system according to the first embodiment. In the threshold voltage distribution shown in Figure 4, the vertical axis corresponds to the number of memory cell transistors MT, and the horizontal axis corresponds to the threshold voltage of the memory cell transistors MT. In Figure 4 and subsequent drawings, the number of memory cell transistors MT and the threshold voltage of the memory cell transistors MT may be indicated by NMTs and Vth, respectively.

[0046] As shown in Figure 4, in the memory system 1 according to the first embodiment, the threshold voltage distribution includes eight states, depending on the threshold voltages of multiple memory cell transistors MT contained in, for example, one cell unit CU.

[0047] In the following, these eight states will be referred to as state "S0", state "S1", state "S2", state "S3", state "S4", state "S5", state "S6", and state "S7", in order from the lowest threshold voltage.

[0048] Seven read voltages V1, V2, V3, V4, V5, V6, and V7 are used to distinguish between the eight states "S0" to "S7". Additionally, the voltage VREAD is used to turn on all memory cell transistors MT regardless of the data being stored. Read voltages V1-V7 and voltage VREAD are applied to the gates of the memory cell transistors MT. The relationship between read voltages V1-V7 and voltage VREAD is as follows: V1 <V2<V3<V4<V5<V6<V7<VREADである。

[0049] The threshold voltage of the memory cell transistor MT in state "S0" is less than the read voltage V1. The threshold voltage of the memory cell transistor MT in state "S1" is greater than or equal to the read voltage V1 and less than the read voltage V2. The threshold voltage of the memory cell transistor MT in state "S2" is greater than or equal to the read voltage V2 and less than the read voltage V3. The threshold voltage of the memory cell transistor MT in state "S3" is greater than or equal to the read voltage V3 and less than the read voltage V4. The threshold voltage of the memory cell transistor MT in state "S4" is greater than or equal to the read voltage V4 and less than the read voltage V5. The threshold voltage of the memory cell transistor MT in state "S5" is greater than or equal to the read voltage V5 and less than the read voltage V6. The threshold voltage of the memory cell transistor MT in state "S6" is greater than or equal to the read voltage V6 and less than the read voltage V7. The threshold voltage of the memory cell transistor MT in state "S7" is greater than or equal to the read voltage V7 and less than the read voltage VREAD.

[0050] When a read voltage V1 is applied to the gate, the memory cell transistor MT belonging to state "S0" turns ON, and the memory cell transistors MT belonging to states "S1" to "S7" turn OFF. When a read voltage V2 is applied to the gate, the memory cell transistors MT belonging to states "S0" and "S1" turn ON, and the memory cell transistors MT belonging to states "S2" to "S7" turn OFF. When a read voltage V3 is applied to the gate, the memory cell transistors MT belonging to states "S0" to "S2" turn ON, and the memory cell transistors MT belonging to states "S3" to "S7" turn OFF. When a read voltage V4 is applied to the gate, the memory cell transistors MT belonging to states "S0" to "S3" turn ON, and the memory cell transistors MT belonging to states "S4" to "S7" turn OFF. Furthermore, when a read voltage V5 is applied to the gate, the memory cell transistors MT belonging to states "S0" to "S4" turn ON, and the memory cell transistors MT belonging to states "S5" to "S7" turn OFF. Furthermore, when a read voltage V6 is applied to the gate, the memory cell transistors MT belonging to states "S0" to "S5" turn ON, and the memory cell transistors MT belonging to states "S6" and "S7" turn OFF. Furthermore, when a read voltage V7 is applied to the gate, the memory cell transistors MT belonging to states "S0" to "S6" turn ON, and the memory cell transistors MT belonging to state "S7" turn OFF. Furthermore, when a read voltage VREAD is applied to the gate, all memory cell transistors MT belonging to states "S0" to "S7" turn ON.

[0051] A different 3-bit data is assigned to each of the eight states described above. Below is an example of data assignment for the eight states.

[0052] State "S0": "1, 1, 1 (highest bit, middle bit, lowest bit)" data State "S1": "1, 1, 0" data State “S2”: “1, 0, 0” data Status "S3": "0, 0, 0" data Status "S4": "0, 1, 0" data Status "S5": "0, 1, 1" data Status "S6": "0, 0, 1" data Status "S7": "1, 0, 1" data.

[0053] When data is allocated in this manner, the lower page data, consisting of the lower bits, is determined by read operations using read voltages V1 and V5. The middle page data, consisting of the middle bits, is determined by read operations using read voltages V2, V4, and V6. The upper page data, consisting of the upper bits, is determined by read operations using read voltages V3 and V7, respectively. In other words, the lower page data, middle page data, and upper page data are determined by read operations using two, three, and two types of read voltages, respectively.

[0054] 1.1.6 Read Voltage Information Next, the read voltage information 21 stored in the volatile memory 20 according to the first embodiment will be described.

[0055] Immediately after the write operation, as shown in Figure 4, for example, states "S0" to "S7" are separated from each other in the threshold voltage distribution. Therefore, the controller 30 can read the correct data by applying the default read voltage. Here, the default read voltage is the default value for each of the read voltages V1 to V7 immediately after writing.

[0056] However, factors such as disturbance can cause the threshold voltage of the memory cell transistor MT to fluctuate. As a result, the optimal read voltage may deviate from the default read voltage as time elapses after the write operation.

[0057] The trend of fluctuations in the threshold voltage of the memory cell transistor MT may differ depending, for example, on its physical location within the non-volatile memory 10. For example, the magnitude of the deviation of the optimal read voltage from the default read voltage may differ for each chip. Therefore, the memory system 1 is configured to apply a common read voltage of the chip as a read voltage that can read the correct data from each block BLK within the chip, based on the above deviation trend common to multiple block BLKs within each chip.

[0058] Furthermore, the trend of fluctuations in the threshold voltage of the memory cell transistor MT may differ even within the same chip depending on the physical location of the block BLK and the number of times the write and erase cycles have been repeated. As a result, there may be block BLKs within the same chip whose trend of deviation from the default read voltage to the optimal read voltage differs from that of other block BLKs. Therefore, the memory system 1 is configured to allow the application of individual read voltages as the optimal read voltage calculated individually for each block BLK within each chip. Individual read voltages are applied, for example, to block BLKs whose trend of deviation from the default read voltage to the optimal read voltage differs from that of other block BLKs.

[0059] During the read operation, it is desirable to appropriately select and apply either the common read voltage or the individual read voltage as described above. The memory system 1 manages information regarding the read voltage applied to each block BLK as read voltage information 21.

[0060] The read voltage information 21 includes, for example, a read voltage identifier in addition to the common read voltage and individual read voltage. The read voltage identifier is information used to identify which block BLK is to which the common read voltage or the individual read voltage applies. The read voltage identifier includes the common read voltage identifier and the individual read voltage identifier corresponding to each chip.

[0061] As mentioned above, the optimal read voltage may vary from the common read voltage and individual read voltage over time. Therefore, the memory system 1 is configured to allow updating of the common read voltage and individual read voltage. When updating the common read voltage, the memory system 1 uses a specific block BLK, for example, one or more of which are included in each chip. In the following description, this specific block BLK will be referred to as the common read voltage update block.

[0062] The read voltage information 21 further includes information on whether or not it is a block for updating the common read voltage. Of the information included in the read voltage information 21, the read voltage identifier, the individual read voltage, and the information on whether or not it is a block for updating the common read voltage are managed as "read voltage information for each block". Of the information included in the read voltage information 21, the information showing the correspondence between the common read voltage identifier and the common read voltage is managed as "common read voltage information".

[0063] In the following, specific examples of the read voltage information 21 will be explained using Figures 5 and 6. Figure 5 is a diagram showing an example of read voltage information for each block stored in the volatile memory of the memory system according to the first embodiment. Figure 6 is a diagram showing an example of common read voltage information stored in the volatile memory of the memory system according to the first embodiment.

[0064] As shown in Figure 5, the read voltage information for each block includes the read voltage identifier, the individual read voltage, and information indicating whether or not it is a block for updating the common read voltage.

[0065] The read voltage identifier includes the common read voltage identifiers Icom0 to IcomN and the individual read voltage identifier Ii. For each block BLK that has been written to, one of the read voltage identifiers from the common read voltage identifiers Icom0 to IcomN and the individual read voltage identifier Ii is assigned. Note that no read voltage identifier is assigned to a block BLK that has not been written to. In Figure 5, "-" is shown for block BLKs that have not been assigned a read voltage identifier.

[0066] The common read voltage identifiers Icom0 to IcomN are associated with chips Chip0 to ChipN, respectively. For example, the common read voltage identifier Icom0 is assigned to the block blocks BLK included in Chip0 to which the common read voltage applies. In the example in Figure 5, the common read voltage identifier Icom0 is assigned to block BLK0, BLK1, and BLKn, etc. of Chip0. Similarly, the common read voltage identifier Icom1 is assigned to the block blocks included in Chip1 to which the common read voltage applies. In the example in Figure 5, the common read voltage identifier Icom1 is assigned to block BLK0 to BLK2, and BLKn, etc. of Chip1. Although not shown in the diagram, the identifiers Icom2 to IcomN for each common read voltage are assigned to the block BLK to which the common read voltage applies, among the block BLKs included in each chip Chip2 to ChipN, in the same way as the common read voltage identifiers Icom0 and Icom1.

[0067] The individual read voltage identifier Ii is assigned to the block BLK to which the individual read voltage is applied, regardless of the chip. In the example in Figure 5, the individual read voltage identifier Ii is assigned to block BLK2 of chip0, block BLK3 of chip1, and so on.

[0068] The read voltage information for each block stores the individual read voltage as the unique read voltage of each block BLK to which the individual read voltage identifier Ii is assigned. For example, in the example in Figure 5, the read voltage information for each block stores the individual read voltages Vi0-2 as the read voltage V1 of block BLK2 of chip Chip0 to which the individual read voltage identifier Ii is assigned. Similarly, the read voltage information for each block stores the individual read voltages Vi1-3 as the read voltage V1 of block BLK3 of chip Chip1 to which the individual read voltage identifier Ii is assigned. Although not shown in the figure, the read voltage information for each block stores the individual read voltages V2-V7 of each block BLK to which the individual read voltage identifier Ii is assigned, in the same way as read voltage V1. Blocks BLKs for which individual read voltages have not been calculated are considered to be in an unset state. In Figure 5, "-" is shown for blocks BLKs for which individual read voltages have not been calculated.

[0069] Furthermore, in the read voltage information for each block, information is stored indicating whether each block BLK is a block for updating the common read voltage. In Figure 5, a "○" is shown for block BLKs that are for updating the common read voltage. A "×" is shown for block BLKs that are not for updating the common read voltage. For example, in the example in Figure 5, the blocks for updating the common read voltage are block BLK0 and BLK3 of chip Chip0, and block BLK0 and BLK3 of chip Chip1, etc. Memory system 1 updates the common read voltage corresponding to chip Chip0 based on, for example, the threshold voltage distribution of block BLK0 of chip Chip0, or the threshold voltage distribution of block BLK3 of chip Chip0. Memory system 1 also updates the common read voltage corresponding to chip Chip1 based on, for example, the threshold voltage distribution of block BLK0 of chip Chip1, or the threshold voltage distribution of block BLK3 of chip Chip1. The updating of the common read voltage will be described later.

[0070] Note that while Figure 5 shows only two common read voltage update blocks for each chip, this is not the only option. The read voltage information for each block may store, for example, that a predetermined number of blocks BLK are common read voltage update blocks for each chip. More specifically, the read voltage information for each block may store that, for example, blocks BLK0, BLK100, BLK200, ... are common read voltage update blocks for each chip.

[0071] Furthermore, the common read voltage update block does not have to be fixed. For example, the common read voltage update block may be changed based on the number of write operations performed on the corresponding chip. More specifically, the read voltage information for each block may store that, for example, the block where the 100th, 200th, ... write operations are performed is the common read voltage update block. Also, for example, the common read voltage update block may be changed based on the elapsed time since the common read voltage update on the corresponding chip. More specifically, the read voltage information for each block may store that, for example, for each period such as one day or one month, the block BLK that is the target of the first write operation during that period is the common read voltage update block.

[0072] Furthermore, while the example shown in Figure 5 describes a case where some of the blocks BLK within each chip are common read voltage update blocks, this is not the only case. For example, all of the blocks BLK within each chip may be common read voltage update blocks. In this case, the read voltage information 21 does not need to store information indicating whether each block is a common read voltage update block in each chip.

[0073] Next, we will explain the common read voltage information.

[0074] The read voltages of blocks BLK assigned the same common read voltage identifier are the same for each read voltage V1 to V7. For example, in chip Chip0, the common read voltage Vc0 is applied as the read voltage V1 for blocks BLK0, BLK1, and BLKn, ... which are assigned the common read voltage identifier Icom0. Also, in chip Chip1, the common read voltage Vc1 is applied as the read voltage V1 for blocks BLK0 to BLK2, and BLKn, ... which are assigned the common read voltage identifier Icom1.

[0075] Although not shown in the diagram, the same common read voltage applies to the other read voltages V2 to V7 as well.

[0076] Furthermore, while Figures 5 and 6, and the above description show examples in which the volatile memory 20 stores a common read voltage and individual read voltages, respectively, it is not limited to this. The volatile memory 20 may be configured to store, for example, the difference between the common read voltage and a default read voltage, and the difference between the individual read voltage and a default read voltage.

[0077] 1.2 Operation The operation of the memory system 1 according to the first embodiment will be described.

[0078] 1.2.1 First Operation Example In the first operational example, an example is described in which, when a write operation is performed on a common read voltage update block, the common read voltage is updated while the individual read voltages are stored as the read voltages for the said common read voltage update block.

[0079] 1.2.1.1 Overall Operation The overall operation, including the writing process in the first example, will be explained.

[0080] The overall operation in the first example of operation, including the write process, includes a first process and a second process. The first process includes a write process to the block BLK to be written to, and a process to apply a common read voltage as the read voltage of the block BLK. The second process is executed, for example, when the block BLK to be written to is a common read voltage update block and the start condition for the second process is met. The start condition for the second process includes, for example, the elapsed of a predetermined time since the write process (hereinafter referred to as the time condition). The second process includes a process to calculate the individual read voltage for the block BLK to be written to, and a process to update the common read voltage based on the result of the calculation process. The second process may also be executed when a predetermined time has elapsed since the process to update the common read voltage. Here, the predetermined time is, for example, 30 minutes or more and 36 hours or less. In this case, the second process may be executed multiple times periodically for the common read voltage update block that was targeted for writing.

[0081] Furthermore, the conditions for starting the second process may include, for example, the controller 30 detecting that the temperature of the non-volatile memory 10 satisfies a predetermined temperature condition (hereinafter referred to as the temperature condition). Here, the temperature condition is, for example, that the temperature of the non-volatile memory 10 is above a predetermined temperature. Another temperature condition is, for example, that the temperature of the non-volatile memory 10 is below a predetermined temperature. Yet another temperature condition is, for example, that the temperature of the non-volatile memory 10 is higher than the temperature of the non-volatile memory 10 when the write operation to the common read voltage update block was performed in the first process by a predetermined temperature difference or more.

[0082] Furthermore, the conditions for starting the second process may include, for example, the controller 30 detecting that the number of fail bits when reading a block BLK that was written in the first process is greater than or equal to a predetermined value (hereinafter referred to as the condition regarding the number of fail bits). This predetermined value is, for example, 40% or more of the maximum number of fail bits for which error correction processing can be performed for each block BLK.

[0083] Furthermore, the start condition for the second process may include, for example, at least one of the conditions related to time, temperature, and the number of fail bits.

[0084] In the following, the overall operation, including the writing process in the first operation example, will be explained using Figures 7 and 8. Figure 7 is a flowchart illustrating the first process related to the first operation example of the first embodiment. Figure 8 is a flowchart illustrating the second process related to the first operation example of the first embodiment.

[0085] First, the operation in the first process will be explained using Figure 7.

[0086] Upon receiving a write command from the host device 2 (start of first processing), the controller 30 causes the non-volatile memory 10 to execute a write operation on the block BLK to be written (St0).

[0087] Once the write process is complete, the read voltage calculation unit 38 assigns the identifier of the common read voltage corresponding to the block BLK to the read voltage of the block BLK on which the write process was performed (St1). In other words, the read voltage of the block BLK is designated as the common read voltage.

[0088] The read voltage calculation unit 38 sets the individual read voltage corresponding to the block BLK on which the write process was performed in the read voltage information 21 to an unset state (St2). If the individual read voltage corresponding to the block BLK is unset when the St2 process is executed, the controller 30 maintains the individual read voltage corresponding to the block BLK in an unset state.

[0089] Then, the first process is completed (end of first process).

[0090] Next, we will explain the operation in the second process using Figure 8.

[0091] If the block BLK on which the write operation has been performed is a block for updating the common read voltage (start of the second process), the read voltage calculation unit 38 calculates the individual read voltage for the block BLK after a predetermined time has elapsed, for example, after the write operation for the block BLK has been performed (St3). In the process of calculating the individual read voltage, for the block BLK on which the write operation has been performed, the individual read voltages V1 to V7 for each of the read voltages between adjacent states from states "S1" to "S7" are calculated. The calculation of the individual read voltage will be described later. The volatile memory 20 stores, for example, a sequence of individual read voltage data for each identifier of the common read voltage for the number of times the St3 process has been performed, according to instructions from the controller 30. If the block BLK on which the write operation has been performed is not a block for updating the common read voltage, the second process is not performed.

[0092] After processing in St3, the read voltage calculation unit 38 stores the individual read voltage calculated in processing in St3 in the area of ​​the read voltage information 21 where the individual read voltage of the corresponding block BLK is stored (St4). Then, the process proceeds to St5.

[0093] The read voltage calculation unit 38 updates the common read voltage corresponding to the identifier of the common read voltage assigned to the block BLK to which the write process has been performed, using the individual read voltages of the block BLK (St5). As a result, the updated common read voltage is applied as the read voltage for all block BLKs to which the identifier of the common read voltage is assigned. The updated common read voltage is, for example, the average or median of the individual read voltages calculated using all the individual read voltages in the series data. Alternatively, the updated common read voltage may be, for example, the average or median of the individual read voltages calculated using a predetermined number of the most recent individual read voltages in the series data, instead of the average or median of the individual read voltages calculated using all the individual read voltages in the series data. Then the process proceeds to St6.

[0094] The read voltage calculation unit 38 assigns the individual read voltage identifier Ii as the identifier for the read voltage of the block BLK on which the write process has been performed (St6).

[0095] The above process completes the operation of the second process (end of second process).

[0096] As described above, in the first operation example, if the block BLK on which the write process is performed is a block for updating the common read voltage, in the second process, the read voltage calculation unit 38 stores the individual read voltage calculated in the St3 process as the individual read voltage of the block BLK targeted for writing. The read voltage calculation unit 38 also assigns an identifier for the individual read voltage as an identifier for the read voltage of the block BLK targeted for writing. The read voltage calculation unit 38 then updates the common read voltage using the individual read voltage of the block BLK targeted for writing.

[0097] In the first example of operation, the order of the processes in the first and second processes may be swapped. For example, in the first process, the processes of St1 and St2 may be swapped. Also, in the second process, the processes of St5 and St6 may be swapped.

[0098] 1.2.1.2 Updating Read Voltage Information The update of the read voltage information 21 in the overall operation, including the write process in the first operation example, will be further explained using Figures 9 to 11. Figures 9 to 11 are diagrams illustrating an example of the update of read voltage information in the overall operation, including the write process, according to the first operation example of the first embodiment. Figures 9 to 11 show the read voltage identifier, individual read voltage, and information on whether or not it is a block for updating the common read voltage for blocks BLK0 to BLK4 of the chip Chip0, as well as the common read voltage corresponding to the common read voltage identifier Icom0. In the following operation example, blocks BLK0 to BLK4 of the chip Chip0 will each be simply referred to as blocks BLK0 to BLK4.

[0099] The following example shows how the read voltage information 21 is updated when the second overall operation, which includes a write operation to block BLK3, is executed after the first overall operation, which includes a write operation to block BLK0, has been executed. In the first operation example, blocks BLK0 and BLK3 are common read voltage update blocks. As a result, the second process is executed along with the first process for block BLK0. Similarly, the second process is executed along with the first process for block BLK3.

[0100] Figure 9 shows the read voltage information 21 before the first process is executed in the first overall operation. Figure 10 shows the read voltage information 21 after the second process is executed following the first overall operation, and before the second overall operation. Figure 11 shows the read voltage information 21 after the second overall operation is executed.

[0101] As shown in Figure 9, before the first overall operation is performed, the identifiers for the read voltages of blocks BLK0, BLK1, BLK3, and BLK4 are the common read voltage identifier Icom0. The identifier for the read voltage of block BLK2 is the individual read voltage identifier Ii. The common read voltage corresponding to the common read voltage identifier Icom0 is voltage Vc0(0). In the first operation example, voltage Vc0(0) is, for example, a specified read voltage. Also, the individual read voltages Vi0-2 are stored as the individual read voltages for block BLK2.

[0102] After the first overall operation, which includes a write operation to block BLK0, the voltage Vi0-0 is stored as the individual read voltage of block BLK0, as shown in Figure 10. The common read voltage is then updated from voltage Vc0(0) to voltage Vc0(1) using voltage Vi0-0. Additionally, the identifier Ii for the individual read voltage is assigned as the identifier for the read voltage of block BLK0. More specifically, for example, when the controller 30 detects that a predetermined time has elapsed after the write operation to block BLK0 is performed in the first process of the first overall operation, the second process of the first overall operation is executed. This results in the calculation of the individual read voltage of block BLK0, the storage of the individual read voltage, the update of the common read voltage, and the assignment of the identifier Ii for the individual read voltage to block BLK0, respectively, during processes St3, St4, St5, and St6.

[0103] After the second overall operation, which includes a write operation to block BLK3, the voltage Vi0-3 is stored as the individual read voltage for block BLK3, as shown in Figure 11. The common read voltage is also updated from voltage Vc0(1) to voltage Vc0(2) using voltage Vi0-3. Furthermore, the identifier Ii for the individual read voltage is assigned as the identifier for the read voltage of block BLK3. The second overall operation is similar to the first overall operation, except that the processing is performed on block BLK3 instead of block BLK0.

[0104] In the above example of operation, an example was shown in which a common read voltage identifier is assigned as the identifier of the read voltage of the block BLK on which the first process is performed, before the first process is executed. However, this is not limited to this example. Before the first process is executed, an identifier for the read voltage of the block BLK on which the first process is performed does not have to be assigned. Alternatively, an individual read voltage identifier Ii may be assigned as the identifier for the read voltage, and the individual read voltage may be stored as the read voltage of the block BLK. Even in these cases, the read voltage information 21 after each overall operation is executed can be equivalent to the read voltage information shown in Figures 11 and 12.

[0105] 1.2.1.3 Calculation of Individual Readout Voltages This section explains how to calculate individual readout voltages during the St3 process.

[0106] Individual read voltages are calculated using methods such as tracking read processing and correction amount calculation processing. Examples of calculating individual read voltages using tracking read processing and correction amount calculation processing are described below.

[0107] (Tracking lead processing) An example of calculating individual read voltages using tracking read processing will be explained with reference to Figure 12. Figure 12 is a schematic diagram illustrating an example of tracking read processing related to the first operation example of the first embodiment.

[0108] As shown in Figure 12(A), in the threshold voltage distribution immediately after the write operation, states "S(m-1)" and "Sm" are separated from each other. However, due to fluctuations in the threshold voltage of the memory cell transistor MT as described above, the distribution width, such as the full width at half maximum, of the threshold voltage distribution for each state "S0" to "S7" may change. As a result, as shown in Figure 12(B), the respective threshold voltage distributions of states "S(m-1)" and "Sm" may overlap. Also, as mentioned above, the optimal read voltage may deviate from the default read voltage. For these reasons, the number of fail bits may increase when using the default read voltage for read operations, making error correction difficult.

[0109] Therefore, the memory system 1 according to the first embodiment performs a tracking read operation as shown in Figure 12(B). In the tracking read operation, a read operation using multiple tracking voltages is performed, and individual read voltages that reduce the number of fail bits are searched for.

[0110] For example, in the tracking read corresponding to the read voltage Vm, read processes using tracking voltages Vmt0, Vmt1, Vmt2, Vmt3, and Vmt4 are continuously executed.

[0111] The tracking voltages Vmt0 to Vmt4 are each set to arbitrary values, and the difference between adjacent tracking voltages is set to be, for example, approximately the same. The tracking voltages Vmt0, Vmt1, Vmt2, Vmt3, and Vmt4 are in ascending order (Vmt0 < Vmt1 < Vmt2 < Vmt3 < Vmt4). Also, a predetermined read voltage Vmdef is higher than the tracking voltage Vmt0 and lower than the tracking voltage Vmt4 (Vmt0 < Vmdef < Vmt4).

[0112] Note that the number of tracking voltages is not limited to five and can be set to any number. Also, the difference between adjacent tracking voltages may be different for each read voltage.

[0113] In the tracking read process corresponding to the read voltage Vm, the sequencer 14 estimates an individual read voltage for separating the state “S(m - 1)” and the state “Sm” based on, for example, the number of on-cells of the memory cell transistor MT in the read process using the tracking voltage Vmt0, the number of on-cells of the memory cell transistor MT in the read process using the tracking voltage Vmt1, …, and the number of on-cells of the memory cell transistor MT in the read process using the tracking voltage Vmt4. The sequencer 14 estimates, for example, the voltage at which the number of on-cells of the memory cell transistor MT is the minimum. The sequencer 14 uses, for example, the estimated voltage as the individual read voltage.

[0114] (Correction amount calculation process) An example of calculating an individual read voltage using the correction amount calculation process will be described with reference to FIG. 13. FIG. 13 is a schematic diagram for explaining an example of the correction amount calculation process according to the first operation example of the first embodiment. In the example of FIG. 13, the case of calculating the correction amount of the read voltage Vm is shown.

[0115] The ECC circuit 34 compares, for example, the state at the time of writing and the state at the time of reading for each column address of the data being read. More specifically, for example, the ECC circuit 34 calculates the number of memory cells E(a) in which data written in state "Sm" was mistakenly read in state "S(m-1)". The ECC circuit 34 also calculates the number of memory cells E(b) in which data written in state "S(m-1)" was mistakenly read in state "Sm".

[0116] In Figure 13, the number of memory cells E(a) in which data written as state "Sm" was mistakenly read as state "S(m-1)" corresponds to the area of ​​region (a) in Figures 13(A) to 13(C). Similarly, the number of memory cells E(b) in which data written as state "S(m-1)" was mistakenly read as state "Sm" corresponds to the area of ​​region (b) in Figures 13(A) to 13(C).

[0117] Figure 13(A) shows the case where the read voltage Vm is equal to the voltage Vmopt at the intersection of two threshold voltage distributions corresponding to states "S(m-1)" and "Sm". In Figure 13(A), the number of memory cells E(a) and the number of memory cells E(b) are equal. In this case, the number of fail bits E occurring between states "S(m-1)" and "Sm" is expected to be minimized. The number of fail bits E is the sum of the number of memory cells E(a) and E(b) (E = E(a) + E(b)). Therefore, the read voltage calculation unit 38 determines that the read voltage Vm does not need to be updated. In other words, the read voltage calculation unit 38 sets the correction amount ΔVm of the read voltage Vm to "0" (ΔVm = 0).

[0118] Figure 13(B) shows the case where the read voltage Vm is located on the higher voltage side than the voltage Vmopt. In Figure 13(B), the number of memory cells E(a) is greater than the number of memory cells E(b). In this case, the number of fail bits E becomes greater than the number of fail bits E in Figure 13(A). Therefore, the read voltage calculation unit 38 shifts the read voltage Vm to the lower voltage side so that it is closer to the voltage Vmopt. In other words, the read voltage calculation unit 38 calculates a negative correction amount ΔVm (ΔVm < 0).

[0119] Figure 13(C) shows the case where the read voltage Vm is lower than the voltage Vmopt. In Figure 13(C), the number of memory cells E(a) is less than the number of memory cells E(b). In this case, the number of fail bits E becomes greater than the number of fail bits E in Figure 13(A). Therefore, the read voltage calculation unit 38 shifts the read voltage VA towards the higher voltage side so that it is closer to the voltage VAopt. In other words, the read voltage calculation unit 38 calculates a positive correction amount ΔVm (ΔVm>0).

[0120] Furthermore, the difference between the number of memory cells E(a) and E(b) is expected to increase as the read voltage Vm deviates from the voltage Vmopt. Therefore, the read voltage calculation unit 38 determines the correction amount ΔVm according to the magnitude of the ratio of the number of memory cells E(a) and E(b). This allows for the determination of an appropriate correction amount according to the degree of overlap in the threshold voltage distribution, and the correction amount ΔVm is calculated to approach the voltage Vmopt.

[0121] The read voltage calculation unit 38, for example, adds the correction amount ΔVm calculated as described above to the specified read voltage Vmdef to obtain the individual read voltage.

[0122] 1.2.2 Second Operation Example The second operational example describes an operation in which, after a write operation is performed on a common read voltage update block, the common read voltage is updated, and the common read voltage is applied as the read voltage for the said common read voltage update block. In the following example, an example is shown in which the common read voltage is updated after a predetermined time has elapsed after the write operation is performed.

[0123] 1.2.2.1 Overall Operation The overall operation, including the writing process in the second operation example, will be explained using Figure 14. Figure 14 is a flowchart illustrating the second process related to the second operation example of the first embodiment. Below, the overall operation in the second operation example will be explained, mainly focusing on the differences from the overall operation in the first operation example.

[0124] The overall operation in the second example of operation, including the writing process, includes the first process and the second process.

[0125] The first process in the second example of operation is equivalent to the first process in the first example of operation. Furthermore, the second process in the second example of operation includes processes St10 and St11. Processes St10 and St11 are equivalent to processes St3 and St5 in the second process of the first example of operation.

[0126] Furthermore, the second process in the second operation example is executed, similar to the second process in the first operation example, when, for example, the block BLK to be written is a common read voltage update block and the start conditions for the second process described above are met. Also, if the block BLK to be written is not a common read voltage update block, the second process is not executed, similar to the first operation example in the first embodiment.

[0127] As described above, in the second process of the second operation example, the identifier of the common read voltage is assigned as the identifier of the read voltage of the block BLK to be written. In addition, the read voltage calculation unit 38 updates the common read voltage using the individual read voltages of the block BLK to be written, in the same manner as in the first operation example.

[0128] Furthermore, the memory system 1 may be configured to execute the second process multiple times periodically, for example, if the block BLK on which the first process write operation was performed is a block for updating the common read voltage, similar to the first example of operation.

[0129] 1.2.2.2 Updating Read Voltage Information The update of the read voltage information 21 in the overall operation, including the write process, of the second operation example will be further explained with reference to Figure 15. Figure 15 is a diagram illustrating an example of the update of read voltage information in the overall operation, including the write process, according to the second operation example of the first embodiment. In Figure 15, for the sake of simplicity, the read voltage identifier, individual read voltage, and information on whether or not it is a block for updating the common read voltage for block BLK0 of the chip Chip0, as well as the common read voltage corresponding to identifier Icom0, are shown.

[0130] The following shows an example of updating the read voltage information 21 when the entire operation, including the write operation to block BLK0, is performed. In the second operation example, block BLK0 is a block for updating the common read voltage. As a result, the second process is executed together with the first process for block BLK0.

[0131] Figure 15(A) shows the read voltage information 21 before the first process is executed. Figure 15(B) shows the read voltage information 21 after the first process is executed but before the second process is executed. Figure 15(C) shows the read voltage information 21 after the second process is executed.

[0132] Before the first processing is performed on block BLK0, no write operations have been performed on block BLK0. That is, as shown in Figure 15(A), the read voltage identifier and the individual read voltage for block BLK0 are unset. Also, the common read voltage corresponding to the common read voltage identifier Icom0 is voltage Vc0(0). In the second operation example, voltage Vc0(0) is, for example, a specified read voltage.

[0133] In the first process, St1, a write operation is performed on block BLK0. Then, as shown in Figure 15(B), the first process on block BLK0 is performed, and the common read voltage identifier Icom0 is assigned as the read voltage identifier for block BLK0.

[0134] In the second process, St11, the read voltage calculation unit 38 updates the common read voltage corresponding to the common read voltage identifier Icom0. As a result, as shown in Figure 15(C), after the second process is executed, the common read voltage corresponding to the common read voltage identifier Icom0 is updated from voltage Vc0(0) to voltage Vc0(1). Therefore, although not shown in the figure, the read voltage of all block BLKs to which the common read voltage identifier Icom0 is assigned becomes voltage Vc0(1).

[0135] 1.2.3 Third Operation Example The third example describes a case where a read operation is performed on each block BLK.

[0136] The overall operation in the third operation example will be explained using Figure 16. Figure 16 is a flowchart for explaining the read process related to the third operation example of the first embodiment.

[0137] For example, when a read operation is instructed from the host device 2 (start), the read voltage selection unit 37 extracts the identifier of the read voltage of the block BLK targeted for read operation based on the read voltage information 21 (St20). The block BLK targeted for read operation is a block BLK that stores valid data.

[0138] The controller 30 determines whether the identifier of the read voltage extracted in the St20 process is an identifier of an individual read voltage (St21). If it is determined that the identifier of the read voltage extracted in the St20 process is an identifier of an individual read voltage (St21; YES), the process proceeds to St23. If the identifier of the read voltage extracted in the St20 process is not an identifier of an individual read voltage (St21; NO), the process proceeds to St22. That is, if the identifier of the read voltage extracted in the St20 process is an identifier of a common read voltage, the process proceeds to St22.

[0139] If the identifier of the read voltage extracted in the processing of St20 is the identifier of a common read voltage (St21; NO), the read voltage selection unit 37 applies the common read voltage corresponding to the identifier of that common read voltage as the read voltage (St22). Then the process proceeds to St24.

[0140] If the identifier of the read voltage extracted in the processing of St20 is determined to be the identifier of an individual read voltage (St21; YES), the read voltage selection unit 37 applies the individual read voltage corresponding to the block BLK targeted for read processing as the read voltage based on the read voltage identifier (St23). Then the process proceeds to St24.

[0141] The controller 30 performs a read operation using the read voltage applied in the St22 process or the read voltage applied in the St23 process (St24).

[0142] With the above actions, the entire operation in the third example is completed (end).

[0143] 1.3 Effects of the First Embodiment According to the memory system 1 of the first embodiment, it is possible to suppress the increase in read operation latency. Here, read latency is the delay time of the read operation.

[0144] The memory system 1 according to the first embodiment comprises a non-volatile memory 10 including a plurality of chips and a controller 30. In the first operation example of the first embodiment, before the first overall operation, the controller 30 uses voltage Vc0(0) as a common read voltage when reading data from each of blocks BLK0, BLK1, BLK3, and BLK4 of chip 0. The controller 30 also uses voltage Vi0-2 associated with block BLK2 when reading data from block BLK2. In the first overall operation, when the voltage Vi0-0 associated with block BLK0 is calculated, the controller 30 updates the common read voltage from Vc0(0) to Vc0(1) based on voltage Vi0-0. After the first overall operation, the controller 30 uses voltage Vi0-0 when reading data from block BLK0. Furthermore, when the controller 30 reads data from blocks BLK1, BLK3, and BLK4, it uses voltage Vc0(1) as a common read voltage. The controller 30 also uses voltage Vi0-2 when reading data from block BLK2. During the second overall operation, when the voltage Vi0-3 associated with block BLK3 is calculated, the controller 30 updates the common read voltage from Vc0(1) to Vc0(2) based on voltage Vi0-3. After the second overall operation, the controller 30 uses voltage Vi0-0 when reading data from block BLK0. The controller 30 also uses voltage Vc0(2) as a common read voltage when reading data from blocks BLK1 and BLK4, and uses voltage Vi0-2 when reading data from block BLK2. Finally, the controller 30 uses voltage Vi0-3 when reading data from block BLK3. In this way, by configuring a chip to update the common read voltage multiple times, it is possible to suppress the increase in the number of fail bits when reading data from each block BLK without using a read voltage calculated independently for that block BLK. In other words, it is possible to suppress the increase in the number of fail bits while reducing the frequency of the process of calculating the optimal read voltage for each block BLK.Therefore, by suppressing the increase in additional processing such as updating the read voltage and rereading for blocks with an increased number of fail bits, the increase in read latency can be suppressed.

[0145] To elaborate, as mentioned above, after the write operation, the threshold voltage of the memory cell transistor MT fluctuates, causing the optimal read voltage to change. Furthermore, multiple block BLKs contained in each chip may have similar tendencies for fluctuation in their optimal read voltage. According to the memory system 1 of the first embodiment, by reflecting the tendency of fluctuation in the optimal read voltage of each chip in the common read voltage, it is possible to suppress the increase in the difference between the common read voltage and the optimal read voltage of each block BLK. In other words, it is possible to suppress the influence of fluctuations in the read voltage due to fluctuations in the threshold voltage of the memory cell transistor MT without having to calculate the optimal read voltage for all block BLKs.

[0146] Furthermore, when the controller 30 reads data from each of the multiple block BLKs contained in each chip, it uses a common read voltage associated with that chip. The multiple common read voltages associated with multiple chips are each independent of each other. With this configuration, the increase in read latency can be suppressed in each of the multiple chips.

[0147] 1.4 First Modification of the First Embodiment The first and second operation examples of the first embodiment show examples in which the common read voltage is updated regardless of the write process conditions, but the controller 30 may perform a process to determine whether or not to update the common read voltage based on the write process conditions.

[0148] In the following, the configuration and operation of the memory system 1 according to the first modified example of the first embodiment will be described, mainly focusing on the differences from the configuration and operation of the memory system according to the first embodiment.

[0149] 1.4.1 Configuration The configuration of the non-volatile memory 10 and controller 30 according to the first modified example of the first embodiment is equivalent to the configuration of the non-volatile memory and controller according to the first embodiment. Furthermore, the volatile memory 20 according to the first modified example of the first embodiment stores read voltage information 21 in the same way as the volatile memory according to the first embodiment. In the following, the differences between the read voltage information 21 stored in the volatile memory 20 according to the first modified example of the first embodiment and the read voltage information stored in the volatile memory 20 according to the first embodiment will be mainly explained.

[0150] The read voltage information 21 in the first modified example of the first embodiment will be explained with reference to Figure 17. Figure 17 is a diagram showing an example of read voltage information for each block stored in the volatile memory of the memory system according to the first modified example of the first embodiment. In the first modified example of the first embodiment, the table showing the relationship between the common read voltage identifier and the common read voltage is substantially the same as the table in Figure 6 of the first embodiment, so its explanation and illustration are omitted. The read voltage information for chips Chip1 to ChipN is the same as the read voltage information for chip Chip0.

[0151] The volatile memory 20 according to the first modified example of the first embodiment stores, in addition to the read voltage identifier, individual read voltage, and information on whether it is a common read voltage update block, the temperature at the time the latest write operation was performed on each block BLK in the read voltage information 21. In Figure 17 and the following description, the temperature of the non-volatile memory 10 at the time the last write operation was performed on each block BLK is simply referred to as the write temperature. The read voltage identifier, individual read voltage, and information on whether it is a common read voltage update block in the first modified example of the first embodiment are substantially equivalent to the read voltage identifier, individual read voltage, and information on whether it is a common read voltage update block in the first embodiment, so their explanation is omitted.

[0152] 1.4.2 Operation The operation of the memory system 1 according to the first modified example of the first embodiment will be described.

[0153] 1.4.2.1 First Operation Example of the First Modified Example of the First Embodiment In the first operational example of the first modification of the first embodiment, an operational example is described in which, after a write operation is performed on the common read voltage update block, if the block BLK satisfies the conditions for updating the common read voltage, the common read voltage is updated and the common read voltage is applied as the read voltage to the common read voltage update block.

[0154] 1.4.2.1.1 Overall Operation The overall operation, including the writing process, in the first operation example of the first modification of the first embodiment will be explained using Figure 18. Figure 18 is a flowchart for explaining the overall operation, including the writing process, related to the first operation example of the first modification of the first embodiment. The differences from the first and second operation examples of the first embodiment will be mainly explained below.

[0155] A first operational example of the first modification of the first embodiment includes a first process and a second process.

[0156] In the first process, the controller 30 executes processes equivalent to those of St0 to St2 in the first operation example of the first embodiment. The controller 30 also stores the write temperature associated with the block BLK to be written in the volatile memory 20.

[0157] The second process in the first operational example of the first modification of the first embodiment is executed, similar to the second process in the first operational example of the first embodiment and the second operational example of the first embodiment, for example, when the block BLK to be written is a common read voltage update block and the above-described start conditions for the second process are met. If the block BLK to be written is not a common read voltage update block, the second process is not executed, similar to the first operational example of the first embodiment and the second operational example of the first embodiment.

[0158] In the second process, the process of St30 is equivalent to the process of St3 in the first operation example of the first embodiment, and the process of St10 in the second operation example of the first embodiment. Also, the process of St32 is equivalent to the process of St5 in the first operation example of the first embodiment, and the process of St11 in the second operation example of the first embodiment.

[0159] After processing in St30, the controller 30 determines whether the block BLK to be written to satisfies the conditions for updating the common read voltage (St31). The conditions for updating the common read voltage include, for example, that the writing temperature corresponding to the block BLK to be written to is less than 70°C. If the block BLK to be written to satisfies the conditions for updating the common read voltage (St31; YES), the process proceeds to St32. If the block BLK to be written to does not satisfy the conditions for updating the common read voltage (St31; NO), the operation of the second process ends (end of second process).

[0160] Furthermore, once the processing of St32 is executed, the operation of the second process ends (end of second process).

[0161] Furthermore, the order of processing in St31 may be changed to the extent possible in the overall operation. For example, in Figure 18, the processing of St31 and the processing of St30 may be swapped.

[0162] Furthermore, the fifth modification shows, but is not limited to, a case where the condition for updating the common read voltage is based on the write temperature. The condition for updating the common read voltage may also be based on, for example, the number of fail bits E of each block BLK. That is, the condition for updating the common read voltage may be, for example, that the block BLK on which the write operation was performed is a block BLK whose number of fail bits E is less than a predetermined number. In this case, the volatile memory 20 stores, for example, the read voltage identifier, the individual read voltage, and information on whether or not it is a block for updating the common read voltage, as well as the number of fail bits E of each block BLK in the read voltage information 21.

[0163] Furthermore, the conditions for updating the common read voltage may be based on, for example, the difference between the individual read voltage calculated for a block BLK and the common read voltage corresponding to that block BLK, or the difference between that individual read voltage and a common read voltage different from the common read voltage, or an individual read voltage corresponding to a block BLK different from the one in question. More specifically, the conditions for updating the common read voltage may be, for example, that the block BLK has a difference less than a predetermined value.

[0164] Furthermore, a condition for updating the common read voltage is, for example, that the block BLK on which the write operation was performed is within a predetermined range of block BLKs. The predetermined range of block BLKs includes, for example, a plurality of block BLKs that are predetermined to be usable for updating the common read voltage. These plurality of block BLKs may be determined, for example, by their physical or logical location within the memory cell array 11.

[0165] Furthermore, the conditions for updating the common read voltage may be based on, for example, the number of program loops executed during the write process. More specifically, the conditions for updating the common read voltage may be, for example, that the number of program loops is less than a preset number. If the conditions for updating the common read voltage are not met, the controller 30 determines, for example, that the block BLK to be written to is a block BLK that is more difficult to write to than other block BLKs, or a block BLK that has different characteristics from other block BLKs. In this case, the common read voltage update is not performed.

[0166] Furthermore, in the first operational example of the first modification of the first embodiment, the condition for updating the common read voltage was based on the write temperature, but it is not limited to this. Instead of the write temperature, the condition for updating the common read voltage may be based on the temperature of the non-volatile memory 10 when calculating the individual read voltage in the St30 process.

[0167] 1.4.2.1.2 Updating Read Voltage Information The update of the read voltage information 21 in the overall operation including the write process of the first operational example of the first modification of the first embodiment will be further explained with reference to Figure 19. Figure 19 is a diagram illustrating an example of the update of read voltage information in the overall operation including the write process related to the first operational example of the first modification of the first embodiment. In Figure 19, for the sake of simplicity, the read voltage identifier, individual read voltage, information on whether or not it is a block for updating the common read voltage for block BLK0, the write temperature, and the common read voltage corresponding to the common read voltage identifier Icom0 are shown.

[0168] The following shows an example of updating the read voltage information 21 when the entire operation, including the write operation, is performed, when the write operation to block BLK0 is performed at a write temperature of 90°C. In the first operation example of the first modification of the first embodiment, block BLK0 of chip Chip0 is a block for updating the common read voltage. As a result, the second process is performed together with the first process on block BLK0.

[0169] Figure 19(A) shows the read voltage information 21 before the first process is executed. Figure 19(B) shows the read voltage information 21 after the first process is executed but before the second process is executed. Figure 19(C) shows the read voltage information 21 after the second process is executed.

[0170] As shown in Figures 19(A) and (B), the read voltage information 21 before the first process is executed, and the read voltage information 21 after the first process is executed but before the second process is executed, are the same as those in Figures 15(A) and 15(B) in the first embodiment, except for the write temperature. As shown in Figure 19(A), before the first process is executed, the write temperature is unset (indicated by "-" in Figure 19). Also, the write temperature in the first operation example of the first modification of the first embodiment is 90°C. As a result, as shown in Figure 19(B), the temperature of the non-volatile memory 10 during the write process to block BLK0 is stored in the first process.

[0171] Because the write temperature of block BLK0 during the second process, St31, is 70°C or higher, the controller 30 determines that the write temperature of block BLK0, where the write process was performed, does not meet the conditions for updating the common read voltage. As a result, as shown in Figure 19(C), the common read voltage is not updated by the controller 30 after the second process is performed.

[0172] Furthermore, when the block BLK0 to be written to satisfies the conditions for updating the common read voltage, the update of the read voltage information 21 is equivalent to the update of the read voltage information shown in Figure 15 in the second operation example of the first embodiment, except that the write temperature is stored.

[0173] 1.4.2.2 Second Operation Example of the First Modified Example of the First Embodiment In the second operational example of the first modification of the first embodiment, an operational example is described in which, after a write operation is performed on the common read voltage update block, if the block BLK satisfies the conditions for updating the common read voltage, the common read voltage is updated while the individual read voltage is stored as the read voltage for the common read voltage update block.

[0174] 1.4.2.2.1 Overall Operation The overall operation, including the writing process, in the second operation example of the first modification of the first embodiment will be explained using Figure 20. Figure 20 is a flowchart for explaining the overall operation, including the writing process, related to the second operation example of the first modification of the first embodiment. The following will mainly explain the differences between the second operation example of the first embodiment and the first operation example of the first modification of the first embodiment.

[0175] The overall operation in the second operational example of the first modification of the first embodiment includes a first process and a second process.

[0176] The first process in the second operation example of the first modification of the first embodiment is equivalent to the first process in the first operation example of the first modification of the first embodiment.

[0177] The second process in the second operation example of the first modification of the first embodiment is executed, similar to the second process in the first operation example of the first embodiment, the second operation example of the first embodiment, and the first operation example of the first modification of the first embodiment, when, for example, the block BLK to be written is a common read voltage update block and the start conditions for the second process described above are met. If the block BLK to be written is not a common read voltage update block, the second process is not executed, similar to the first operation example of the first embodiment, the second operation example of the first embodiment, and the first operation example of the first modification of the first embodiment.

[0178] In the second process, the process of St40 is equivalent to the process of St3 in the first operation example of the first embodiment, the process of St10 in the second operation example of the first embodiment, and the process of St30 in the first operation example of the first modified example of the first embodiment. The process of St41 is equivalent to the process of St4 in the first operation example of the first embodiment. The process of St43 is equivalent to the process of St5 in the first operation example of the first embodiment, the process of St11 in the second operation example of the first embodiment, and the process of St32 in the first operation example of the first modified example of the first embodiment. The process of St44 is equivalent to the process of St6 in the first operation example of the first embodiment.

[0179] After processing in St41, the controller 30 determines whether the block BLK to be written satisfies the conditions for updating the common read voltage, in the same manner as the processing in St31 in the first operation example of the first modification of the first embodiment (St42). If the block BLK to be written satisfies the conditions for updating the common read voltage (St42; YES), the process proceeds to St43. If the block BLK to be written does not satisfy the conditions for updating the common read voltage (St42; NO), the process proceeds to St44.

[0180] Furthermore, the order of the processes that determine whether the conditions for updating the common read voltage are met in the overall operation may be changed to the extent possible. For example, in Figure 20, the process of St42 may be executed before the process of St40.

[0181] 1.4.2.2.2 Updating Read Voltage Information The update of read voltage information 21 in the overall operation including the write process, relating to the second operation example of the first modification of the first embodiment, will be further explained with reference to Figure 21. Figure 21 is a diagram illustrating an example of the update of read voltage information in the overall operation including the write process, relating to the second operation example of the first modification of the first embodiment. In Figure 21, for the sake of simplicity, the read voltage identifier, individual read voltage, information on whether or not it is a block for updating the common read voltage, the write temperature, and the common read voltage corresponding to the common read voltage identifier Icom0 for block BLK0 of the chip Chip0 are shown.

[0182] The following shows an example of updating read voltage information when the entire operation, including the write operation, is performed, when the write operation to block BLK0 is performed at a write temperature of 90°C. In the second operation example of the first modification of the first embodiment, block BLK0 of chip Chip0 is a block for updating the common read voltage. As a result, the second process is performed together with the first process.

[0183] Figure 21(A) shows the read voltage information 21 before the first process is executed. Figure 21(B) shows the read voltage information 21 after the first process is executed and before the second process is executed. Figure 21(C) shows the read voltage information 21 after the second process is executed. The read voltage information 21 shown in Figure 21(A) and the read voltage information 21 shown in Figure 21(B) are equivalent to the read voltage information shown in Figure 19(A) and the read voltage information shown in Figure 19(B) in the first operation example of the first modification of the first embodiment, respectively, so their explanation is omitted.

[0184] If the block BLK0 to be written to does not satisfy the conditions for updating the common read voltage, the update of the read voltage information 21 in the second operation example is equivalent to the update of the read voltage information in the first operation example of the first modification of the first embodiment, except that in the read voltage information 21 after the second process shown in Figure 21(C) is executed, the voltage Vi0-0 is stored as an individual read voltage, and the identifier Ii of the individual read voltage is assigned as the identifier of the read voltage. That is, in the second operation example of the first modification of the first embodiment, the individual read voltage for block BLK0 is stored by the process of St41. Also, the identifier Ii of the individual read voltage is assigned as the identifier of the read voltage of block BLK0 by the process of St44. Furthermore, the common read voltage is not updated.

[0185] Furthermore, when the block BLK0 to be written to satisfies the conditions for updating the common read voltage, the update of the read voltage information 21 is equivalent to the update of the read voltage information in the second operation example of the first embodiment shown in Figure 15, except that the write temperature is stored.

[0186] The same effects as those of the first embodiment can be achieved by the first modification of the first embodiment.

[0187] 1.5 Second Modification of the First Embodiment The first embodiment and the first modification of the first embodiment described above show a case where one common read voltage is set for each chip, but the invention is not limited to this. Multiple common read voltages may be set for each chip.

[0188] In the following, the configuration and operation of the memory system 1 according to the second modification of the first embodiment will be described, mainly focusing on the differences from the configuration and operation of the memory system according to the first embodiment.

[0189] 1.5.1 Configuration The configuration of the non-volatile memory 10 and controller 30 in the second modified example of the first embodiment is equivalent to the configuration of the non-volatile memory and controller in the first embodiment. Furthermore, the volatile memory 20 in the second modified example of the first embodiment stores read voltage information 21, similar to the volatile memory in the first embodiment. The following will mainly describe the differences between the read voltage information 21 in the second modified example of the first embodiment and the read voltage information in the first embodiment.

[0190] The read voltage information 21 in the second modified example of the first embodiment will be explained with reference to Figure 22. Figure 22 is a diagram showing an example of read voltage information for each block stored in the volatile memory of the memory system according to the second modified example of the first embodiment. In the second modified example of the first embodiment, the table showing the relationship between the common read voltage identifier and the common read voltage is substantially the same as the table in Figure 6 of the first embodiment, except that the number of common read voltage identifiers corresponding to chip0 has increased, so its explanation will be omitted.

[0191] In a second modification of the first embodiment, the read voltage calculation unit 38 can set two common read voltage identifiers, Icom0-0 and Icom0-1, in the chip Chip0. More specifically, the read voltage calculation unit 38 assigns the common read voltage identifier Icom0-0 to a block BLK whose write temperature is less than 70°C, for example. The read voltage calculation unit 38 also assigns the common read voltage identifier Icom0-1 to a block BLK whose write temperature is 70°C or higher, for example. For example, in the example shown in Figure 22, the common read voltage identifier Icom0-0 is assigned to blocks BLK0, BLK1, and BLKn… whose write temperatures are less than 70°C. Furthermore, for blocks BLK2, BLK3, etc., whose write temperature is 70°C or higher, the common read voltage identifier Icom0-1 is assigned as the read voltage identifier.

[0192] 1.5.2 Operation The operation of the memory system 1 according to a second modified example of the first embodiment will be described.

[0193] The following describes an example of operation when a write operation is performed on the common read voltage update block.

[0194] 1.5.2.1 First Operation Example of a Second Modified Example of the First Embodiment In the first operational example of the second modification of the first embodiment, an operational example is described in which different common read voltage identifiers are assigned depending on whether the block BLK on which the write operation has been performed satisfies certain conditions.

[0195] 1.5.2.1.1 Overall Operation The first operational example relating to the second modified version of the first embodiment can be equivalent to the overall operation of the first operational example of the first embodiment described using, for example, Figures 7 and 8, or the overall operation of the second operational example of the first embodiment described using Figure 14, except for the process of assigning an identifier to the common read voltage.

[0196] The process of assigning a common read voltage identifier will be explained below using Figure 23. Figure 23 is a flowchart illustrating the operation of assigning a common read voltage identifier corresponding to a block from among a plurality of common read voltage identifiers in a memory system according to a second modified example of the first embodiment. This process corresponds to the process of St1 in the first operation example of the first embodiment.

[0197] When a write operation is performed on the block BLK to be written (start), the controller 30 determines whether the block BLK on which the write operation was performed is a block BLK included in Chip0 (St50). If it is determined that the block BLK on which the write operation was performed is a block BLK included in Chip0 (St50; YES), the process proceeds to St51. If it is determined that the block BLK on which the write operation was performed is not a block BLK included in Chip0 (St50; NO), the process proceeds to St54.

[0198] If it is determined that the block BLK on which the write operation was performed is a block BLK included in chip Chip0 (St50; YES), the controller 30 determines whether the first condition is met (St51). Here, the first condition is based on, for example, the write temperature of the block BLK. More specifically, the first condition is that the write temperature of the block is 70°C or higher. If it is determined that the first condition is met (St51; YES), the process proceeds to St52. If it is determined that the first condition is not met (St51; NO), the process proceeds to St53.

[0199] If the first condition is met (St51; YES), the common read voltage identifier Icom0-1 is assigned as the common read voltage identifier.

[0200] If the first condition is not met (St51; NO), the common read voltage identifier Icom0-0 is assigned as the common read voltage identifier.

[0201] If the block BLK on which the write operation was performed is not a block BLK included in chip Chip0 (St50; NO), an identifier for the common read voltage corresponding to the chip Chip containing that block BLK is assigned (St54). If multiple common read voltages are applied to that chip Chip, the controller 30 may assign an identifier for the read voltage in the process of St54, similar to the processes of St51 to St53.

[0202] The above steps complete the process of assigning an identifier to the common read voltage (end).

[0203] Thus, in the first process of the overall operation, a common read voltage is selected for the block BLK on which the write operation has been performed.

[0204] Furthermore, a process similar to the one shown in Figure 23 may be performed, for example, in the second process of the first operation example of the first embodiment. More specifically, a process similar to the one shown in Figure 23 may be performed, for example, in the second process of the first operation example of the first embodiment, before the process of St3. In this case, for example, for the block BLK on which the write process has been performed, the common read voltage is updated based on the common read voltage identifier selected in the second process.

[0205] Alternatively, instead of the process shown in Figure 23, a similar process to the process shown in Figure 23 may be performed, for example, in the second process of the first operation example of the first embodiment. In this case, the selection of the common read voltage identifier is performed only for the common read voltage update block.

[0206] Furthermore, the first operation example relating to the second modification of the first embodiment can also be implemented in the first and second operation examples relating to the first modification of the first embodiment. That is, when updating the common read voltage using read voltage update blocks to which the common read voltage identifiers Icom0-0 and Icom0-1 are respectively assigned in the first processing of the first operation example relating to the second modification of the first embodiment, it is possible to determine whether the conditions for updating the common read voltage are met, in the same manner as in the first and second operation examples relating to the first modification of the first embodiment.

[0207] Furthermore, a similar process to the process shown in Figure 23 may be performed in, for example, the first and second operation examples relating to the first modified example of the first embodiment. More specifically, a similar process to the process shown in Figure 23 may be performed between processes St31 and St32 in the second process of the first operation example relating to the first modified example of the first embodiment. Also, a similar process to the process shown in Figure 23 may be performed between processes St42 and St43 in the second process of the second operation example relating to the first modified example of the first embodiment. Alternatively, instead of the process shown in Figure 23, a similar process to the process shown in Figure 23 may be performed in, for example, the second processes of the first and second operation examples relating to the first modified example of the first embodiment.

[0208] 1.5.2.1.2 Updating Read Voltage Information The updating of the read voltage information 21 in the first operation example of the second modification of the first embodiment will be further explained with reference to Figure 24. Figure 24 is a diagram illustrating an example of updating the read voltage information in the first operation example of the second modification of the first embodiment.

[0209] The following shows an example of updating the read voltage information 21 when an overall operation including a write process at a write temperature of 40°C and an overall operation including a write process at a write temperature of 90°C are performed consecutively on block BLK0 of chip Chip0. In Figure 24, for the sake of simplicity, the read voltage identifier, information on whether it is a block for common read voltage updates, and the write temperature for block BLK0 are shown.

[0210] In the example shown in Figure 24, block BLK0 is not a block for updating the common read voltage. As a result, in the overall operation, including each write operation, the second process is not executed, and only the first process for block BLK0 is executed.

[0211] Figure 24(A) shows the read voltage information 21 before the entire operation, including the first write operation, is performed. Figure 24(B) shows the read voltage information 21 after the entire operation, including the first write operation, has been performed, but before the entire operation, including the second write operation, is performed. Figure 24(C) shows the read voltage information 21 after the entire operation, including the second write operation, has been performed.

[0212] Before the first process, which includes the first write operation in the example shown in Figure 24, is executed, no write operation has been performed on block BLK0. As a result, as shown in Figure 24(A), the read voltage identifier and the write temperature are not set.

[0213] The writing temperature for the first write operation is 40°C. As a result, the writing temperature for the first write operation does not satisfy the first condition. Therefore, as shown in Figure 24(B), after the write operation for block BLK0 is performed in the first operation, the read voltage calculation unit 38 assigns the common read voltage identifier Icom0-0 as the identifier for the read voltage of block BLK0 through the process of St53.

[0214] The writing temperature for the second write operation is 90°C. That is, the writing temperature for the second write operation satisfies the first condition. As a result, as shown in Figure 24(C), after the write operation for block BLK0 is performed in the second first operation, the read voltage calculation unit 38 assigns the common read voltage identifier Icom0-1 as the identifier for the read voltage of block BLK0 through the process of St52.

[0215] In the second modification of the first embodiment described above, a case was shown in which a common read voltage identifier is assigned based on the write temperature of the block BLK, but the invention is not limited to this. For example, the read voltage calculation unit 38 may assign a common read voltage based on the fatigue state of each block BLK. In this case, the read voltage information 21 stores, for example, a read voltage identifier, individual read voltages, and information on whether or not it is a block for updating the common read voltage, as well as the number of times the write process has been performed for each block BLK. In the following description, the number of times the write process has been performed for each block BLK will also be referred to as the fatigue level.

[0216] When the read voltage calculation unit 38 assigns a common read voltage based on the fatigue state of each block BLK, the identifiers Icom0-0 and Icom0-1 for the two common read voltages in the chip 0 may be assigned according to the degree of fatigue. More specifically, for example, the common read voltage identifier Icom0-0 is assigned to blocks BLK1, BLK3, and BLKn... whose fatigue level is less than 1000. Also, for example, the common read voltage identifier Icom0-1 is assigned to blocks BLK0, BLK2,... whose fatigue level is 1000 or more.

[0217] Furthermore, the controller 30 may apply a common read voltage to a block BLK from among several common read voltages, based on the status information obtained during the latest write operation of each block BLK. Here, the status information is, for example, the number of program loops executed in the write operation.

[0218] Furthermore, the controller 30 may assign a common read voltage identifier to a block BLK from among several common read voltage identifiers, based on a value calculated using, for example, a sequence of individual read voltage data for each block BLK. The value calculated using the sequence of individual read voltage data is, for example, the average or median of the individual read voltages. More specifically, if the difference between the value calculated using the sequence of individual read voltage data and the default read voltage is less than a predetermined value, the controller 30 estimates that the block BLK has not deteriorated in terms of write and read characteristics. If the difference is greater than or equal to the predetermined value, the controller 30 estimates that the block BLK has deteriorated in terms of write and read characteristics. For block BLKs where the difference is less than the predetermined value, the controller 30 assigns the common read voltage identifier Icom0-0 as the read voltage identifier. Furthermore, the controller 30 assigns the common read voltage identifier Icom0-1 as a read voltage identifier to block BLKs whose difference is greater than or equal to a predetermined value. In this way, the controller 30 can differentiate between block BLKs with degraded characteristics and block BLKs with undegraded characteristics and assign a common read voltage identifier to each.

[0219] Furthermore, the controller 30 may assign a common read voltage identifier to a block BLK from among a plurality of common read voltage identifiers, based on, for example, the physical or logical position of each block BLK. That is, the memory system 1 may be configured, for example, to assign the common read voltage identifier Icom0-0 to block BLKs in a predetermined first range and to assign the common read voltage identifier Icom0-1 to block BLKs in a second range different from the first range in each chip.

[0220] 1.5.2.2 Second Operation Example of a Second Modified Example of the First Embodiment In the second operational example of the second modification of the first embodiment, when multiple common read voltages are set for each chip, an operational example is shown in which the common read voltage corresponding to one of the two common read voltage identifiers is updated depending on whether the common read voltage update block on which the write process has been executed satisfies the conditions.

[0221] 1.5.2.2.1 Overall Operation The overall operation in the second operation example relating to the second modification of the first embodiment includes a first process and a second process. The timing at which the second process is executed is the same as the timing at which the second process is executed in the first operation example of the first embodiment.

[0222] The overall operation of the second operation example relating to the second modification of the first embodiment will be explained using Figures 25 and 26. Figure 25 is a flowchart for explaining the first process relating to the second operation example relating to the second modification of the first embodiment. Figure 26 is a flowchart for explaining the second process relating to the second operation example relating to the second modification of the first embodiment.

[0223] First, the first process of the second operation example relating to the second modified example of the first embodiment will be described.

[0224] As shown in Figure 25, the processes of St60 and St62 are equivalent to the processes of St0 and St2 in the first operation of the first operation example of the first embodiment.

[0225] In the St61 process, the common read voltage identifier Icom0-0 is assigned as the identifier of the read voltage of the block BLK on which the write operation was performed. More generally, for example, if each chip is assigned two common read voltage identifiers, one of them is assigned.

[0226] The first process is completed as described above.

[0227] Next, the second process in the second operation example relating to the second modified example of the first embodiment will be described.

[0228] The second process in the second operation example of the second modification of the first embodiment is executed, similar to the second process in the first operation example of the first embodiment, the second operation example of the first embodiment, the first operation example of the first modification of the first embodiment, the second operation example of the first modification of the first embodiment, and the first operation example of the second modification of the first embodiment, for example, when the block BLK to be written is a common read voltage update block and the start conditions for the second process described above are met. Furthermore, if the block BLK to be written is not a common read voltage update block, the second process is not executed, similar to the first operation example of the first embodiment, the second operation example of the first embodiment, the first operation example of the first modification of the first embodiment, the second operation example of the first modification of the first embodiment, and the first operation example of the second modification of the first embodiment.

[0229] The process of St70 is equivalent to the process of St3 in the first operation example of the first embodiment, the process of St10 in the second operation example of the first embodiment, the process of St30 in the first operation example of the first modified example of the first embodiment, and the process of St40 in the second operation example of the first modified example of the first embodiment. The process of St71 is equivalent to the process of St4 in the first operation example of the first embodiment, and the process of St41 in the second operation example of the first modified example of the first embodiment. The process of St75 is equivalent to the process of St6 in the first operation example of the first embodiment, and the process of St44 in the second operation example of the first modified example of the first embodiment.

[0230] After processing in St71, the controller 30 determines whether the block BLK to be written satisfies the conditions for updating the common read voltage corresponding to the common read voltage identifier Icom0-0 (St72). If the block BLK to be written satisfies the conditions for updating the common read voltage corresponding to the common read voltage identifier Icom0-0 (St72; YES), the process proceeds to St73. If the block BLK to be written does not satisfy the conditions for updating the common read voltage corresponding to the common read voltage identifier Icom0-0 (St72; NO), the process proceeds to St74. Here, the conditions for updating the common read voltage corresponding to the common read voltage identifier Icom0-0 are, for example, conditions based on the individual read voltages calculated in processing in St70. In the following explanation, the conditions for updating the common read voltage corresponding to the common read voltage identifier Icom0-0 will also be simply referred to as conditions based on individual read voltages. More specifically, the condition based on individual read voltages is that, for example, the difference between the individual read voltage calculated for the block BLK to be written to and the common read voltage corresponding to that block BLK, or the difference between that individual read voltage and a common read voltage different from that common read voltage, or an individual read voltage corresponding to a block BLK different from that block BLK, is less than a predetermined value. The common read voltage corresponding to that block BLK is, for example, the common read voltage corresponding to the common read voltage identifier Icom0-0.

[0231] The processing of St73 is equivalent to the processing of St5 in the first example of operation of the first embodiment, the processing of St11 in the second example of operation of the first embodiment, the processing of St32 in the first example of operation of the first modification of the first embodiment, and the processing of St43 in the second example of operation of the first modification of the first embodiment, except that the common read voltage corresponding to the common read voltage identifier Icom0-0 is updated.

[0232] The processing of St74 is equivalent to the processing of St5 in the first example of operation of the first embodiment, the processing of St11 in the second example of operation of the first embodiment, the processing of St32 in the first example of operation of the first modification of the first embodiment, and the processing of St43 in the second example of operation of the first modification of the first embodiment, except that the common read voltage corresponding to the common read voltage identifier Icom0-1 is updated.

[0233] In the above example of operation, an example was described in which the individual read voltage of the block BLK on which the write process was performed is stored, but this is not the only example. For example, similar to the first example of operation in the first modification of the first embodiment, when the common read voltage is updated using the individual read voltage of the block BLK to be written to, the individual read voltage does not need to be stored. In this case, for example, after updating the common read voltage in the St74 process, the identifier Icom0-1 for the common read voltage may be assigned to the block BLK to be written to.

[0234] 1.5.2.2.2 Updating Read Voltage Information The updating of the read voltage information 21 in the second operation example of the second modification of the first embodiment will be further explained with reference to Figure 27. Figure 27 is a diagram illustrating an example of updating the read voltage information in the second operation example of the second modification of the first embodiment.

[0235] The following shows an example of updating the read voltage information 21 when two full operations are performed consecutively on block BLK0 of chip Chip0. For simplicity of explanation, Figure 27 shows the read voltage identifier, individual read voltage, information on whether it is a block for updating the common read voltage, information on whether the conditions based on the individual read voltage are met, and the common read voltages corresponding to the common read voltage identifiers Icom0-0 and Icom0-1, respectively, for block BLK0. In Figure 27, if the conditions based on the individual read voltage are met, a "○" is shown in the column corresponding to the conditions based on the individual read voltage. Also, in Figure 27, if the conditions based on the individual read voltage are not met, a "×" is shown in the column corresponding to the conditions based on the individual read voltage.

[0236] Furthermore, the following section explains an example where the condition based on individual read voltages is that the difference between the individual read voltage calculated for the block BLK to be written to and the common read voltage corresponding to the common read voltage identifier Icom0-0 is less than a predetermined value.

[0237] In the example shown in Figure 27, block BLK0 is a block for updating the common read voltage. This ensures that the first and second processes are executed in each overall operation.

[0238] Figure 27(A) shows the read voltage information 21 before the first overall operation is performed. Figure 27(B) shows the read voltage information 21 after the first overall operation is performed and before the second overall operation is performed. Figure 27(C) shows the read voltage information 21 after the second overall operation is performed.

[0239] Before the first process, which includes the first write operation in the example shown in Figure 27, is executed, the common read voltage identifier Icom0-0 is assigned as the identifier for the read voltage of block BLK0. Also, the voltage Vc0-0(0) is stored as the common read voltage corresponding to the common read voltage identifier Icom0-0. Furthermore, the voltage Vc0-1(0) is stored as the common read voltage corresponding to the common read voltage identifier Icom0-1.

[0240] In the first overall operation, during processing St71, the voltage Vi0-0(0) is stored as the individual read voltage for block BLK0. The difference between the voltage Vi0-0(0) as the individual read voltage for block BLK0 and the voltage Vc0-0(0) as the common read voltage corresponding to the common read voltage identifier Icom0-0 is less than, for example, a predetermined value. As a result, the condition based on the individual read voltage is satisfied in processing St72. Therefore, as shown in Figure 27(B), in processing St73, the common read voltage corresponding to the common read voltage identifier Icom0-0 is updated from voltage Vc0-0(0) to voltage Vc0-0(1). Also, in processing St75, the individual read voltage identifier Ii is assigned to block BLK0.

[0241] In the second overall operation, during processing St71, the voltage Vi0-0(1) is stored as the individual read voltage for block BLK0. The difference between the voltage Vi0-0(1) as the individual read voltage for block BLK0 and the voltage Vc0-0(1) as the common read voltage corresponding to the common read voltage identifier Icom0-0 is, for example, greater than or equal to a predetermined value. As a result, in processing St72, the condition based on the individual read voltage is not met. Therefore, as shown in Figure 27(C), in processing St74, the common read voltage corresponding to the common read voltage identifier Icom0-1 is updated from voltage Vc0-1(0) to voltage Vc0-1(1). Also, in processing St75, the individual read voltage identifier Ii is assigned to block BLK0.

[0242] The second modification of the first embodiment also produces the same effects as the first embodiment and the first modification of the first embodiment.

[0243] 2. Second Embodiment In the first embodiment, the first modification of the first embodiment, and the second modification of the first embodiment described above, examples were shown in which the read voltage is updated based on the elapsed time after the write operation is performed, but the invention is not limited to these examples. The controller 30 may update the read voltage at a timing in which it has determined to update the read voltage in the internal processing of the memory system 1, regardless of instructions such as a write operation from the host device 2, etc.

[0244] The configuration and operation of the memory system according to the second embodiment will be described below.

[0245] 2.1 Configuration The configuration of the memory system 1 according to the second embodiment will be explained with reference to Figure 28. Figure 28 is a block diagram illustrating an example of the configuration of a non-volatile memory according to the second embodiment.

[0246] The configuration of the non-volatile memory 10 and volatile memory 20 of the memory system 1 according to the second embodiment is substantially the same as the configuration of the non-volatile memory 10 and volatile memory 20 of the memory system 1 according to the first embodiment.

[0247] The controller 30 of the memory system 1 according to the second embodiment includes a CPU 31, a buffer memory 32, a host interface circuit 33, an ECC circuit 34, a NAND interface circuit 35, a DRAM interface circuit 36, a read voltage selection unit 37, a read voltage calculation unit 38, and a calculation target determination unit 39. In the controller 30 of the memory system 1 according to the second embodiment, the configurations of the CPU 31, buffer memory 32, host interface circuit 33, ECC circuit 34, NAND interface circuit 35, DRAM interface circuit 36, read voltage selection unit 37, and read voltage calculation unit 38 are equivalent to those in the memory system 1 according to the first embodiment.

[0248] During, for example, the patrol process, the calculation target determination unit 39 determines whether to update the read voltage of each block BLK based on the number of fail bits E. The patrol process is an internal process that is periodically executed for, for example, valid blocks. In the patrol process, the controller 30 determines whether error correction processing is possible by, for example, traversing a plurality of pages in the nonvolatile memory 10. Further, the controller 30 maintains the read voltage in an optimal state based on the result of the determination.

[0249] 2.2 Operations The operation of the memory system 1 according to the second embodiment will be described.

[0250] 2.2.1 Operation Example of the Second Embodiment In the operation example of the second embodiment, an operation example will be described in which the read voltage of a block BLK determined to have a large number of fail bits E is updated although the maximum number of fail bits Eth that can be error-corrected in the patrol operation is not exceeded.

[0251] 2.2.1.1 Patrol Process First, the patrol process in the memory system 1 according to the second embodiment will be described using FIG. 29. FIG. 29 is a flowchart for explaining the patrol process in the memory system according to the operation example of the second embodiment. Hereinafter, for simplicity of explanation, the case where each chip Chip includes one plane PLN will be described.

[0252] In St80, the controller 30 initializes the variables i0, j0, and k0 (i0 = j0 = k0 = 0).

[0253] The read voltage selection unit 37 applies, as the read voltage of the block BLK, the read voltage corresponding to the identifier of the read voltage based on the identifier of the read voltage applied to the block BLKj0 of the chip Chipi0 (St81). The process of applying the read voltage is substantially the same as the processes of St20 to St23 in the third operation example of the first embodiment.

[0254] The controller 30 performs a patrol read operation on the cell unit CUk0 of block BLKj0 of chip Chipi0 using the determined read voltage (St82). More specifically, the controller 30 issues a command set to execute the patrol read operation and sends it to the non-volatile memory 10. Upon receiving the command set, the non-volatile memory 10 reads data from the cell unit CUk0 using the determined read voltage. The read data is then sent to the controller 30.

[0255] In the following explanation, the patrol read process is described as reading data from all pages stored in cell unit CUK0 and outputting it to controller 30, but it is not limited to this. For example, the non-volatile memory 10 may read data from one or more specific pages stored in cell unit CUK0 and output it to controller 30.

[0256] The ECC circuit 34 in the controller 30 performs error detection and error correction processing using the data read out above. The controller 30 then determines whether the error correction was successful (St83). If it is determined that the error correction was successful (St83; YES), the process proceeds to St84. If it is determined that the error correction failed (St83; NO), the process proceeds to St86.

[0257] The calculation target determination unit 39 uses the result of the above error detection to determine whether the number of fail bits E of the cell unit CUk0 of block BLKj0 of chip Chipi0 is greater than a predetermined reference value Ec (St84). Here, the reference value Ec is, for example, a number less than the maximum number of fail bits Eth for which error correction processing can be performed for the cell unit CU. The reference value Ec is, for example, a value of 40% or more of the number of fail bits Eth. If it is determined that the number of fail bits E of the cell unit CUk0 is greater than the reference value Ec (St84; YES), the process proceeds to S65. If it is determined that the number of fail bits E of the cell unit CUk0 of block BLKj0 of chip Chipi0 is less than or equal to the reference value Ec (St84; NO), the process proceeds to St87.

[0258] If it is determined that the number of fail bits E of cell unit CUk0 is greater than the reference value Ec (St84; YES), the controller 30 performs a read voltage update process (St85). Details of the read voltage update process will be described later. Then the process proceeds to St89.

[0259] If error correction is determined to have failed (St83; NO), the controller 30 performs other retry processing (St86). Then, the process proceeds to St89.

[0260] If it is determined that the number of fail bits E of the cell unit CUk0 in block BLKj0 of chip Chipi0 is less than or equal to the reference value Ec (St84; NO), the controller 30 determines whether the patrol read process of the cell unit CU in block BLKj0 of chip Chipi0 has finished (St87). If it is determined that the patrol read process of the cell unit CU in block BLKj0 of chip Chipi0 has finished (St87; YES), the process proceeds to St89. If it is determined that there are still cell unit CUs in block BLKj0 of chip Chipi0 that should undergo patrol read processing (St87; NO), the process proceeds to St88.

[0261] If it is determined that there are still cell units CUs in block BLKj0 of chip Chipi0 that should undergo patrol read processing (St87; NO), the controller 30 increments the variable k0 (St88). Then, the process proceeds to St82. As a result, the processes from St82 to St88 are repeated until patrol read processing is completed for all cell units CUs in block BLKj0 of chip Chipi0.

[0262] If the process in St85 is executed, and if it is determined that the patrol read process has been performed on all cell units CU of block BLKj0 of chip Chipi0 (St87; YES), the controller 30 determines whether the patrol read process has been performed on all block BLKs in chip Chipi0 (St89). If it is determined that the patrol read process has been performed on all block BLKs in chip Chipi0 (St89; YES), the process proceeds to St91. If it is determined that there are still block BLKs in chip Chipi0 that should be subjected to the patrol read process (St89; NO), the process proceeds to St90.

[0263] If it is determined that there are still block BLKs in chip Chipi0 that require patrol read processing (St89; NO), the controller 30 increments the variable j0 (St90). The controller 30 also initializes the variable k0 (k0=0). Then, the process proceeds to St81. Thus, steps St81 to St90 are repeated until patrol read processing is completed for all block BLKs in chip Chipi0.

[0264] If it is determined that patrol read operations have been performed on all blocks BLK in chip Chipi0 (St89; YES), the controller 30 determines whether patrol read operations have been performed on all chips (St91). If it is determined that patrol read operations have been performed on all chips (St91; YES), the patrol operation ends. If it is determined that there are still chips that should undergo patrol read operations (St91; NO), the process proceeds to St92.

[0265] If it is determined that there are still chips that should undergo patrol read processing (St91; NO), the controller 30 increments the variable i0 (St91). The controller 30 also initializes the variables j0 and k0 (j0=k0=0). Then, the process proceeds to St81. Thus, steps St81 to St92 are repeated until patrol read processing is completed for all chips.

[0266] The patrol process is completed with the above actions.

[0267] Please note that the patrol process flow described above is merely an example and is not limited to this.

[0268] Furthermore, the patrol read process may be performed on a pre-selected subset of representative cell units (CUs) within each block BLK. The number of representative cell units (CUs) may also vary depending on the block BLK.

[0269] Furthermore, for example, the patrol read process may be performed on a pre-selected portion of representative block blocks (BLKs) within each chip. The number of representative block blocks (BLKs) may also vary depending on the chip.

[0270] Also, for example, the controller 30 may exclude a part of the storage area in the non-volatile memory 10 from the target of the patrol process. More specifically, the controller 30 may exclude, for example, an unused block BLK where no data is written, and an invalid block BLK where valid data is not written and is never referenced, from the target of the patrol read process.

[0271] Also, for example, the patrol process may be executed in parallel for a plurality of chips Chip.

[0272] Also, in the example of FIG. 29, the case where each chip Chip includes one plane PLN is shown, but it is not limited thereto. When each chip Chip includes a plurality of planes PLN, the patrol process may be executed for the plurality of planes PLN.

[0273] 2.2.1.2 Update Process of Read Voltage The update process of the read voltage of St85 will be described with reference to FIG. 30. FIG. 30 is a flowchart for explaining the update process of the read voltage according to the second embodiment.

[0274] If it is determined that the number of fail bits E of the cell unit CUk0 of block BLKj0 of chip Chipi0 is greater than the reference value Ec (St84; YES), the controller 30 determines whether block BLKj0 of chip Chipi0 satisfies the conditions for update processing (St100). The conditions for update processing are, for example, that the block BLK is a valid block BLK. Another condition for update processing is that the number of times the block BLK has been subjected to read voltage update processing is less than a predetermined number. Yet another condition for update processing is that, for example, the block BLK has not been added to the first target list even once within a predetermined period. This period is, for example, the period from when the write process to the block BLK was executed until the present, and the most recent predetermined period. If it is determined that the block BLK satisfies the conditions for update processing (St100; YES), the process proceeds to St101. If it is determined that the above block BLK does not meet the conditions for the update process (St100; NO), the read voltage update process will terminate.

[0275] The read voltage calculation unit 38 calculates the individual read voltage of block BLKj0 of chip Chipi0 (St101). The process for calculating the individual read voltage is the same as, for example, the process in St3 of the first operation example of the first embodiment and the process in St10 of the second operation example of the first embodiment, except that instead of executing the process for block BLK on which the write process was performed, the process for block BLK including cell unit CU whose number of fail bits E is determined to be greater than the reference value Ec is executed. The process then proceeds to St102.

[0276] Then, the read voltage calculation unit 38 stores the individual read voltages calculated in the processing of St101 as the individual read voltages of block BLKj0 of chip Chipi0 (St102). The process then proceeds to St103.

[0277] The read voltage calculation unit 38 assigns the individual read voltage identifier Ii as the identifier for the read voltage of block BLKj0 of chip Chipi0 (St103). Then, the read voltage update process is completed (end).

[0278] The above steps trigger the update process for the read voltage.

[0279] The memory system 1 according to the second embodiment also provides the same effects as the memory systems according to the first embodiment, the first modified example of the first embodiment, and the second modified example of the first embodiment.

[0280] Furthermore, according to the operation example of the second embodiment, in the patrol process, the read voltage update process for block BLK with a large number of fail bits E can be executed before the number of fail bits E reaches the maximum number of fail bits Eth for which error correction processing can be performed. This makes it possible to reduce the frequency of retry processing, for example. Therefore, it is possible to suppress the increase in read latency due to an increase in the number of fail bits E.

[0281] Furthermore, in St100, the condition for the update process is that the block BLK targeted for the read voltage update process is a valid block BLK. This makes it possible to avoid performing the process on invalid block BLKs when executing the read voltage update process. This also helps to suppress the increase in read latency.

[0282] Furthermore, in St100, a condition for the update process may be that the number of times a block BLK targeted for read voltage update processing has been selected as a block BLK targeted for read voltage update processing is less than a predetermined number. Blocks that have been selected more than or equal to the predetermined number may be blocks for which an appropriate read voltage cannot be calculated, for example, because the data within the block is corrupted. Therefore, by repeatedly updating the read voltage for such blocks, it is possible to suppress the increased processing load on the system.

[0283] 2.3 First Modified Example of the Second Embodiment In the second embodiment described above, the read voltage update process is shown to be performed within the patrol process, but it is not limited to this. The read voltage update process may be performed after the completion of the patrol process. Below, the configuration and operation of the memory system according to the first modification of the second embodiment will be described in terms of differences from the configuration and operation of the memory system according to the second embodiment.

[0284] 2.3.1 Configuration In the first modified example of the second embodiment, the volatile memory 20 stores a first target list (not shown) at the instruction of the controller 30. The first target list stores block BLKs that are to be subject to read voltage update processing in order to perform read voltage update processing. The read voltage calculation unit 38 performs read voltage update processing on the block BLKs stored in the first target list.

[0285] The configuration of the non-volatile memory 10, controller 30, and host device 2 according to the first modified example of the second embodiment is substantially equivalent to the configuration of the non-volatile memory 10, controller 30, and host device 2 according to the second embodiment. Furthermore, the configuration of the volatile memory 20 according to the first modified example of the second embodiment is equivalent to the configuration of the volatile memory 20 according to the second embodiment, except that it stores the first target list as described above.

[0286] 2.3.2 Operation The operation of the memory system 1 according to the first modified example of the second embodiment will be explained, mainly focusing on the differences from the operation of the memory system according to the example of operation of the second embodiment.

[0287] 2.3.2.1 Patrol Procedure The patrol process in the memory system 1 according to the first modified example of the second embodiment will be explained with reference to Figure 31. Figure 31 is a flowchart for explaining the patrol process in the memory system according to the first modified example of the second embodiment.

[0288] In the patrol process of the first modified example of the second embodiment, the processes St110~St114 and St116~St122 are substantially equivalent to the processes St80~St84 and St86~St92 in the patrol process of the operation example of the second embodiment, except that variables i1, j1, and k1 are used instead of variables i0, j0, and k0, respectively. Below, the differences between the patrol process of the first modified example of the second embodiment and the patrol process of the operation example of the second embodiment will be mainly explained.

[0289] If it is determined that the number of fail bits E of cell unit CUK1 of block BLKj1 of chip Chipi1 is greater than the reference value Ec (St114; YES), the controller 30 adds block BLKj1 to the first target list (St115). Then the process proceeds to St119. Note that in the first target list, blocks BLK are added in the order in which the number of fail bits E of cell unit CUK1 was determined to be greater than the reference value Ec in the process of St114.

[0290] As described above, the patrol process of the first modified example of the second embodiment is completed by repeatedly executing the processes of St111 to St122 until it is determined in the St121 process that all patrol read processes have been completed.

[0291] The controller 30, for example, after the patrol process described above and before the next patrol process, performs a read voltage update process based on the first target list.

[0292] The above explanation shows an example where all block blocks with a fail bit count E greater than the reference value Ec are added to the first target list, but this is not the only example. The number of block blocks added to the first target list may be one per chip, or a predetermined number. If one block block is added to the first target list per chip, that single block block may be the block block with the largest fail bit count E in each chip.

[0293] Furthermore, when performing patrol processing on multiple plane PLNs, the number of block BLKs added to the first target list may be one per plane PLN, or a predetermined number. If one block BLK is added to the first target list per plane PLN, that single block BLK may be the block BLK with the largest number of fail bits E in each plane PLN.

[0294] 2.3.2.2 Update process for read voltage Next, a series of operations including the update process of the read voltage of the memory system 1 according to the first modified example of the second embodiment will be explained using Figure 32. Figure 32 is a flowchart for explaining a series of operations including the update process of the read voltage of the memory system according to the first modified example of the second embodiment.

[0295] For example, when the host device 2 issues an instruction to update the read voltage (start), the controller 30 determines whether the first block BLK in the first target list created in the patrol process described above satisfies the conditions for the update process (St130). Note that the process in St130 is the same as the process in St100, except that in the process in St100, when it is determined that the number of fail bits E of the cell unit CUk0 of block BLKj0 of chip Chipi0 is greater than the reference value Ec, the process is executed on the first block BLK in the first target list instead of block BLKj0. If it is determined that the first block BLK satisfies the conditions for the update process (St130; YES), the process proceeds to St131. If it is determined that the first block BLK does not satisfy the conditions for the update process (St130; NO), the process proceeds to St132.

[0296] If it is determined that the first block BLK satisfies the conditions for the update process (St130; YES), the memory system 1 performs a read voltage update process for the first block BLK (St131). This read voltage update process is the same as the process in St85 of the operation example of the second embodiment, except that the process is performed on the first block BLK. Then the process proceeds to St132.

[0297] After performing the read voltage update process (St131), and if it is determined that the first block BLK does not meet the update process conditions (St130; NO), the controller 30 removes the first block BLK from the first target list (St132). Then, the process proceeds to St133.

[0298] The controller 30 determines whether all read voltage update processes have been completed (St133). That is, it determines whether there are no block BLKs included in the first target list. If it is determined that all read voltage update processes have been completed (St133; YES), the process ends. If a block BLK is included in the first target list (St133; NO), the process proceeds to St130.

[0299] As described above, the series of operations, including the read voltage update process, is completed (end).

[0300] The memory system 1 according to the first modified example of the second embodiment also provides the same effects as the memory system according to the first embodiment, the first modified example of the first embodiment, the second modified example of the first embodiment, and the memory system according to the second embodiment.

[0301] 2.4 Second Modification of the Second Embodiment In the first modification of the second embodiment described above, the read voltage update process is shown to be performed in the order of the first target list for block BLKs where the number of fail bits E is greater than the reference value Ec, in a series of operations including the read voltage update process. However, the invention is not limited to this. In a series of operations including the read voltage update process, the read voltage update process for some block BLKs where the number of fail bits E is greater than the reference value Ec may be performed preferentially.

[0302] The following describes the configuration and operation of the memory system according to the second modified example of the second embodiment, highlighting the differences between it and the configuration and operation of the memory system according to the first modified example of the second embodiment.

[0303] 2.4.1 Configuration In a second modification of the second embodiment, the volatile memory 20 stores a second target list and a third target list for performing a read voltage update process. The second target list and the third target list each store block BLKs that are subject to the read voltage update process. The number of fail bits E of the block BLKs included in the second target list is greater than the number of fail bits E of the block BLKs included in the third target list. The read voltage calculation unit 38 performs the read voltage update process based on the second target list and the third target list.

[0304] The configuration of the non-volatile memory 10, controller 30, and host device 2 in the second modified example of the second embodiment is substantially equivalent to the configuration of the non-volatile memory 10, controller 30, and host device 2 in the first modified example of the second embodiment. Furthermore, the configuration of the volatile memory 20 in the second modified example of the second embodiment is equivalent to the configuration of the volatile memory 20 in the first modified example of the second embodiment, except that it stores the second target list and the third target list as described above.

[0305] 2.4.2 Operation The operation of the memory system 1 according to the second modified example of the second embodiment will be explained, focusing on the differences from the operation of the memory system according to the first modified example of the second embodiment.

[0306] 2.4.2.1 Patrol Processing (Overall operation) The patrol process in the memory system 1 according to the second modified example of the second embodiment will be described in terms of how it differs from the patrol process in the memory system according to the first modified example of the second embodiment.

[0307] In the patrol process of the second modified example of the second embodiment, the controller 30 performs the same processes as St110 to St114 and St116 to St122 in the patrol process of the first modified example of the second embodiment. Below, the differences between the patrol process of the second modified example of the second embodiment and the patrol process of the first modified example of the second embodiment will be mainly described.

[0308] In a second modification of the second embodiment, the controller 30 adds block BLKj1 of chip Chipi1 to either the second target list or the third target list based on the number of fail bits E (St115). Details of this process will be described later.

[0309] After the patrol process of the second modification of the second embodiment, and before the next patrol process, the controller 30 performs a read voltage update process based on the second target list and the third target list. The read voltage update process of the second modification of the second embodiment will be described later.

[0310] (Generation of the second and third target lists) As described above, the controller 30 adds block BLKj1 to the second target list or the third target list based on the number of fail bits E. Below, the process of adding block BLKj1 to the second target list or the third target list will be explained with reference to Figure 33. Figure 33 is a flowchart showing the process of adding the read voltage to the list in the patrol process using the memory system according to the second modification of the second embodiment.

[0311] If it is determined that the number of fail bits E of cell unit CUk1 is greater than the reference value Ec (St114; YES), the calculation target determination unit 39 determines whether the number of fail bits E of cell unit CUk1 of block BLKj1 is greater than the value obtained by multiplying the maximum number of fail bits Eth that can be processed with error correction by a constant a (a × Eth) (St140). The constant a is a positive number less than 1. Also, the value (a × Eth) is greater than the reference value Ec. In the second modified example of the second embodiment, the reference value Ec is the value obtained by multiplying the maximum number of fail bits Eth that can be processed with error correction by a constant b (b × Eth). The constant b is a positive number less than the constant a. If it is determined that the number of fail bits E of cell unit CUk1 is greater than the value (a × Eth) (St140; YES), the process proceeds to St141. If it is determined that the number of fail bits E of cell unit CUK1 is less than or equal to the value (a × Eth) (St140; NO), the process proceeds to St142.

[0312] If it is determined that the number of fail bits E of cell unit CUK1 is greater than the value (a × Eth) (St140; YES), the calculation target determination unit 39 adds block BLKj1 to the second target list (St141). Then the process ends. Note that the blocks BLK are added to the second target list in the order in which the number of fail bits E of cell unit CUK1 was determined to be greater than the value (a × Eth) in the process of St140.

[0313] If it is determined that the number of fail bits E of cell unit CUK1 is less than or equal to the value (a × Eth) (St140; NO), the controller 30 adds block BLKj1 to the third target list (St142). Then, the process ends. Note that the blocks BLK are added to the third target list in the order in which the number of fail bits E of cell unit CUK1 was determined to be less than or equal to the value (a × Eth) in the process of St140.

[0314] Through the above operations, a second target list and a third target list related to the read voltage update process are generated.

[0315] 2.4.2.2 Update process for read voltage Next, a series of operations including the update process of the read voltage of the memory system 1 according to the second modified example of the second embodiment will be explained using Figure 34. Figure 34 is a flowchart for explaining a series of operations including the update process of the read voltage of the memory system according to the second modified example of the second embodiment.

[0316] For example, when the host device 2 issues an instruction to update the read voltage (start), the controller 30 initializes the variable p in St150 (p=0).

[0317] The controller 30 determines whether the block BLK is included in the second target list (St151). If the block BLK is included in the second target list (St151; YES), the process proceeds to St152. If the block BLK is not included in the second target list (St151; NO), the process proceeds to St154.

[0318] The controller 30 selects the first block BLK in the second target list as the block BLK to be read and the voltage update process (St152). Then the process proceeds to St153.

[0319] The controller 30 removes the first block BLK from the second target list (St153). Then, the process proceeds to St157.

[0320] The controller 30 determines whether the block BLK is included in the third target list (St154). If the block BLK is included in the third target list (St154; YES), the process proceeds to St155. If the block BLK is not included in the third target list (St154; NO), the process terminates.

[0321] The controller 30 selects the first block BLK in the third target list as the block BLK to be read and the voltage update process (St155). Then the process proceeds to St156.

[0322] The controller 30 removes the first block BLK from the third target list (St156). Then, the process proceeds to St157.

[0323] In the process of St152 or St155, the memory system 1 executes the read voltage update process for the block BLK selected as the target of the read voltage update process (St157). This read voltage update process is the same as the process of St85 in the operation example of the second embodiment and the process of St131 in the second modification of the second embodiment, except that in the process of St152 or St155, the process is executed on the block BLK selected as the target of the read voltage update process. Then the process proceeds to St158.

[0324] The controller 30 increments the variable p (St158). Then, the process proceeds to St159.

[0325] The controller 30 determines whether the variable p is greater than or equal to the allowable number of operations Nmax (St159). If it is determined that the variable p is greater than or equal to the allowable number of operations Nmax (St159; YES), the process ends. If it is determined that the variable p is less than the allowable number of operations Nmax (St159; NO), the process proceeds to St151. Thus, St151 to St159 are repeated until the read voltage update process for the allowable number of operations Nmax is executed.

[0326] As described above, the series of operations, including the read voltage update process, is completed (end).

[0327] The memory system 1 according to the second modified example of the second embodiment also provides the same effects as the memory systems according to the first embodiment, the first modified example of the first embodiment, the second modified example of the first embodiment, the second embodiment, and the first modified example of the second embodiment.

[0328] Furthermore, according to a second modification of the second embodiment, by performing the read voltage update process based on the second target list and the third target list, the read voltage update process for block blocks included in the second target list, which have more fail bits than the block blocks included in the third target list, can be given priority. This makes it possible to efficiently suppress the occurrence of block blocks that exceed the correction limit of the ECC circuit 34. In addition, even if there are no block blocks included in the second target list, the increase in the number of fail bits can be suppressed by performing the read voltage update process for block blocks included in the third target list.

[0329] 2.5 Third Modification of the Second Embodiment The second embodiment described above shows a case in which the read voltage update process is performed during the patrol process, but it is not limited to this. The read voltage update process may also be performed based on an external instruction.

[0330] The configuration of the memory system 1 according to the third modification of the second embodiment is substantially equivalent to the configuration of the memory system according to the second embodiment. Below, the operation of the memory system 1 according to the third modification of the second embodiment will be described in a manner that differs from the operation of the memory system 1 according to the second embodiment.

[0331] The host read process of the memory system 1 according to the third modified example of the second embodiment will be explained with reference to Figure 35. Figure 35 is a flowchart for explaining the host read process using the memory system according to the third modified example of the second embodiment.

[0332] When a read operation is instructed from the host device 2 (start), the read voltage selection unit 37 applies the read voltage of the block BLK, which includes the cell unit CU that is the target of the read operation in the instruction, as the read voltage (St160).

[0333] The controller 30 performs a read operation on the cell unit CU, which is the target of the host read operation, using the applied read voltage (St161). Then the process proceeds to St162.

[0334] The process in St162 is substantially equivalent to the process in St83 of the operation example of the second embodiment and the process in St113 of the first modification of the second embodiment, except that the process is performed on the cell unit CU that is the target of the host read process, instead of the cell unit CUk0 of block BLKj0 of chip Chipi0 and the cell unit CUk1 of block BLKj1 of chip Chipi1. If it is determined that error correction was successful (St162; YES), the process proceeds to St163. If it is determined that error correction failed (St162; NO), the process proceeds to St165.

[0335] The calculation target determination unit 39 uses the error detection result of St162 to determine whether the number of fail bits E of the cell unit CU is greater than the reference value Ec (St163). If it is determined that the number of fail bits E of the cell unit CU is greater than the reference value Ec (St163; YES), the process proceeds to St164. If it is determined that the number of fail bits E of the cell unit CU is less than or equal to the reference value Ec (St163; NO), the host read process ends (end).

[0336] If it is determined that the number of fail bits E of the cell unit CU is greater than the reference value Ec (St163; YES), the controller 30 performs a read voltage update process (St164). The process of St164 is substantially the same as the process of St85 in the operation example of the second embodiment, the process of St131 in the first modification of the second embodiment, and the process of St157 in the second modification of the second embodiment, except that the process of St164 is performed on the block BLK containing the cell unit CU that is the target of the host read process. Then the host read process ends.

[0337] The processing of St165 is substantially equivalent to the processing of St86 in the operation example of the second embodiment and the processing of St116 in the first modification of the second embodiment, except that processing is performed on the cell unit CU that is the target of the host read processing, instead of the cell unit CUk0 of block BLKj0 of chip Chipi0 and the cell unit CUk1 of block BLKj1 of chip Chipi1.

[0338] The host read process is completed with the above steps.

[0339] The memory system 1 according to the third modified example of the second embodiment also provides the same effects as the memory system according to the first embodiment, the first modified example of the first embodiment, the second modified example of the first embodiment, and the memory system according to the second embodiment.

[0340] 2.6 Fourth Modification of the Second Embodiment In the third modification of the second embodiment described above, a case was shown in which the read voltage update process is performed within the host read process, but it is not limited to this. For block BLKs that are targeted for read voltage update within the host read process, the read voltage update process may be performed in a process different from the host read process.

[0341] The configuration of the memory system 1 according to the fourth modification of the second embodiment is substantially equivalent to the configuration of the memory system according to the first modification of the second embodiment. Below, the operation of the memory system 1 according to the fourth modification of the second embodiment will be described in a manner that differs from the operation of the memory system 1 according to the first modification of the second embodiment.

[0342] The host read process of the memory system 1 according to the fourth modification of the second embodiment will be explained with reference to Figure 36. Figure 36 is a flowchart for explaining the host read process using the memory system according to the fourth modification of the second embodiment.

[0343] The processes of St170 to St173 and St175 are substantially equivalent to the processes of St160 to St163 and St165 in the third modified example of the second embodiment.

[0344] If the number of fail bits E of the cell unit CU targeted for host read processing is determined to be greater than the reference value Ec (St173; YES), the controller 30 adds the block BLK containing the cell unit CU to the list of read voltage update processing (St174). The controller 30 may create one target list, as in the first modification of the second embodiment, or it may create two target lists based on the number of fail bits, as in the second modification of the second embodiment. Then the host read processing is terminated.

[0345] The read voltage update process using the first target list, and the read voltage update process using the second and third target lists, can be equivalent to the read voltage update process in the first modification of the second embodiment, and the read voltage update process in the second modification of the second embodiment, respectively.

[0346] The memory system 1 according to the fourth modification of the second embodiment also provides the same effects as the memory systems according to the first embodiment, the first modification of the first embodiment, the second modification of the first embodiment, the second embodiment, the first modification of the second embodiment, the second modification of the second embodiment, and the third modification of the second embodiment.

[0347] 2.7 Fifth Modification of the Second Embodiment In the example of operation of the second embodiment described above, an example was shown in which the read voltage of a block BLK that was determined to have a large number of fail bits E was updated, even though it did not exceed the maximum number of fail bits that can be corrected by error correction processing during patrol operation. However, the example is not limited to this. In patrol processing, the read voltage of a block BLK that was determined to have exceeded the maximum number of fail bits that can be corrected by error correction processing may also be updated.

[0348] The configuration of the fifth modified example of the second embodiment can be equivalent to the configuration of the second embodiment. Below, the differences between the operation of the fifth modified example of the second embodiment and the operation of the second embodiment will be mainly described.

[0349] 2.7.1 Example of Operation In the fifth modification of the second embodiment, an example of operation is described in which, during patrol processing, the read voltage of a block BLK that has been determined to have exceeded the maximum number of fail bits Eth that can be corrected by error correction processing is updated.

[0350] 2.7.1.1 Update process for read voltage The overall operation in the fifth modified example of the second embodiment will be explained using Figure 37. Figure 37 is a flowchart showing the process of adding to the list of read voltage update processes in the patrol process using the memory system according to the fifth modified example of the second embodiment.

[0351] In the patrol process of the fifth modified example of the second embodiment, the processes of St180 to St182 and St185 to St190 are substantially equivalent to the processes of St80 to St82 and St87 to St92 in the patrol process of the operation example of the second embodiment, except that variables i2, j2, and k2 are used instead of variables i0, j0, and k0, respectively. Below, the differences between the patrol process of the fifth modified example of the second embodiment and the patrol process of the operation example of the second embodiment will be mainly explained.

[0352] The controller 30 determines whether the error correction was successful (St183). If it is determined that the error correction was successful (St183; YES), the process proceeds to St185. If it is determined that the error correction failed (St183; NO), the process proceeds to St184.

[0353] If error correction is determined to have failed (St183; NO), the read voltage calculation unit 38 performs read voltage update processing in the same manner as the processing in St85 of the operation example of the second embodiment, the processing in St131 of the first modification of the second embodiment, the processing in St157 of the second modification of the second embodiment, and the processing in St164 of the third modification of the second embodiment (St184), except that it performs processing related to block BLKj2 of chip Chipi2 instead of block BLKj0 of chip Chipi0. As a result, the read voltage calculation unit 38 stores the calculated individual read voltage as the individual read voltage of block BLKj2 of chip Chipi2. The read voltage calculation unit 38 also assigns the individual read voltage identifier Ii as the identifier for the read voltage of block BLKj2 of chip Chipi2. Then the process proceeds to St187.

[0354] As described above, the operation of the fifth modified example of the second embodiment is performed.

[0355] The memory system 1 according to the fifth modification of the second embodiment also provides the same effects as the memory systems according to the first embodiment, the first modification of the first embodiment, and the second modification of the first embodiment.

[0356] 3. Others The above example describes a case where a common read voltage is applied to each chip, but this is not the only case. The common read voltage may be applied to each plane (PLN) or to each set of block blocks (BLK) within a plane (PLN). When a common read voltage is applied to each set of block blocks within a plane (PLN), the sets of block blocks within the plane (PLN) are separated, for example, based on the physical distance between the sense amplifier module and each block block within each plane (PLN).

[0357] Furthermore, while the above example described a case where a read voltage identifier is assigned to each block BLK, it is not limited to this. Read voltage identifiers may also be assigned to units smaller than block BLKs. A unit smaller than a block BLK is, for example, a word line group containing one or more cell units CU. In this case, the volatile memory 20 of the memory system 1 stores, for example, read voltage information for each word line group. That is, for example, the read voltage identifier, individual read voltage, and information on whether or not it is a word line group for common read voltage updates are stored. A word line group for common read voltage updates corresponds to a block for common read voltage updates. Also, in the overall operation including the first and second processes, the patrol process, and the host read process, instead of performing processing on each block BLK, processing targeting word line groups may be performed. Furthermore, each chip may be managed based on a different combination of constituent units, for example, containing one or more block BLKs and one or more word line groups. In this case, the read voltage information 21 may include an identifier for the read voltage, the individual read voltage, and information on whether each of the one or more block BLKs is a block for common read voltage updates, as well as an identifier for the read voltage, the individual read voltage, and information on whether each of the one or more word line groups is a word line group for common read voltage updates. Furthermore, in the overall operation including the first and second processes, the patrol process, and the host read process, processing targeting block BLKs and processing targeting word line groups may both be executed.

[0358] Furthermore, although the above embodiment shows a case where the read voltage information 21 is stored only in the volatile memory 20, the system is not limited to this. The memory system 1 may be configured such that at least a portion of the read voltage information 21 is stored in the non-volatile memory 10. In addition, the memory system 1 may be configured such that, for example, the non-volatile memory 10 periodically or irregularly stores the most recently updated information and added information from the read voltage information 21. This makes it possible to recover the read voltage information 21 based on the information about the read voltage information 21 stored in the non-volatile memory 10 in the event that the power supply to the memory system 1 is unexpectedly cut off.

[0359] Although several embodiments have been described above, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents. [Explanation of Symbols]

[0360] 1...Memory system, 2...Host device, 10...Non-volatile memory, 11A, 11B...Memory cell array, 12...Command register, 13...Address register, 14...Programmable logic controller, 15...Driver module, 16A, 16B...Raw decoder module, 17A, 17B...Sense amplifier module, 20...Volatile memory, 30...Controller, 21...Read voltage information, 22...Correction amount information, 31...Processor, 32...Buffer memory, 33...Host I / F, 34...ECC circuit, 35...NAND I / F, 36...DRAM I / F, 37...Read voltage selection unit, 38...Read voltage calculation unit, 39...Calculation target determination unit.

Claims

1. A non-volatile memory including a first sub-memory area, a second sub-memory area, a third sub-memory area, a fourth sub-memory area, and a fifth sub-memory area, Controller and Equipped with, Each of the first sub-memory area, the second sub-memory area, the third sub-memory area, the fourth sub-memory area, and the fifth sub-memory area includes a plurality of memory cells. The aforementioned controller, In the first process, a first voltage associated with the first sub-memory area is calculated, In the second process following the first process, a second voltage associated with the fourth sub-memory area is calculated, Before the first processing, when reading data from each of the first sub-memory area, the second sub-memory area, the fourth sub-memory area, and the fifth sub-memory area, the third voltage is used as a common voltage, and when reading data from the third sub-memory area, the fourth voltage associated with the third sub-memory area is used. After the first process and before the second process, when reading data from the first sub-memory area, the first voltage is used; when reading data from the second sub-memory area, the fourth sub-memory area, and the fifth sub-memory area, the fifth voltage calculated using the first voltage is used as the common voltage; and when reading data from the third sub-memory area, the fourth voltage is used. After the second processing, when reading data from the first sub-memory area, the first voltage is used; when reading data from the second sub-memory area and the fifth sub-memory area, the sixth voltage calculated using the second voltage is used as the common voltage; when reading data from the third sub-memory area, the fourth voltage is used; and when reading data from the fourth sub-memory area, the second voltage is used. A memory system configured in such a way.

2. The first process is executed when the first condition is met. The first condition is, The fact that data has been written to the first sub-memory area, At least one of the following conditions must be met after data has been written to the first sub-memory area: a first time must have elapsed, the temperature must be equal to or greater than a first temperature, and the number of fail bits when data is read from the first sub-memory area must be equal to or greater than a first value. including, The memory system according to claim 1.

3. In processing that is not based on external instructions, it is determined whether the first condition is met. The memory system according to claim 2.

4. Based on an instruction for an external read operation, it is determined whether the first condition is met. The memory system according to claim 2.

5. A non-volatile memory including a first sub-memory area, a second sub-memory area, a third sub-memory area, a fourth sub-memory area, a fifth sub-memory area, and a sixth sub-memory area, Controller and Equipped with, Each of the first sub-memory area, the second sub-memory area, the third sub-memory area, the fourth sub-memory area, the fifth sub-memory area, and the sixth sub-memory area includes a plurality of memory cells. The aforementioned controller, In the first process, a first voltage associated with the first sub-memory area is calculated, Before the first processing, when reading data from the first sub-memory area, the second sub-memory area, and the fourth sub-memory area, the second voltage is used as the first common voltage; when reading data from the third sub-memory area, the third voltage associated with the third sub-memory area is used; and when reading data from the fifth sub-memory area and the sixth sub-memory area, the fourth voltage is used as the second common voltage. If the first condition is met in the first process, after the first process, when reading data from the first sub-memory area, the first voltage is used; when reading data from the second sub-memory area and the fourth sub-memory area, the fifth voltage calculated using the first voltage is used as the first common voltage; when reading data from the third sub-memory area, the third voltage is used; and when reading data from the fifth sub-memory area and the sixth sub-memory area, the fourth voltage is used. If the first condition is not met in the first process, after the first process, when reading data from the first sub-memory area, the first voltage is used; when reading data from the second sub-memory area and the fourth sub-memory area, the second voltage is used as the first common voltage; when reading data from the third sub-memory area, the third voltage is used; and when reading data from the fifth sub-memory area and the sixth sub-memory area, the sixth voltage calculated using the first voltage is used as the second common voltage. A memory system configured in such a way.

6. The first process is executed when the second condition is met. The second condition is, The fact that data has been written to the first sub-memory area, At least one of the following conditions must be met after data has been written to the first sub-memory area: a first time must have elapsed, the temperature must be equal to or greater than a first temperature, and the number of fail bits when data is read from the first sub-memory area must be equal to or greater than a first value. including, The memory system according to claim 5.

7. The first condition is, Conditions relating to the location of the first sub-memory area, Conditions relating to temperature when data is written to the first sub-memory area, Conditions relating to the status when data is written to the first sub-memory area, and The fifth voltage or the sixth voltage is within the first voltage range. At least one of the following, including, The memory system according to claim 6.

8. In processes that are not based on external instructions, it is determined whether the second condition is met. The memory system according to claim 6 or claim 7.

9. Based on the instruction for an external read operation, it is determined whether the second condition is met. The memory system according to claim 6 or claim 7.

10. A non-volatile memory including a first memory area and a second memory area, Controller and Equipped with, Each of the first memory area and the second memory area includes a plurality of sub-memory areas, and each of the plurality of sub-memory areas includes a plurality of memory cells. The aforementioned controller, When reading data from each of the plurality of sub-memory areas included in the first memory area, a first common voltage associated with the first memory area is used. When reading data from each of the plurality of sub-memory areas included in the second memory area, a second common voltage, which is associated with the second memory area and independent of the first common voltage, is used. When the first sub-memory area within the first memory area satisfies the first condition, The first voltage associated with the first sub-memory area is calculated, A second voltage is calculated based on the first voltage. The second voltage is applied to the first common voltage. A memory system configured in such a way.

11. The controller applies the second voltage to the first common voltage, When reading data from each of the multiple sub-memory areas, excluding the first sub-memory area included in the first memory area, the first common voltage is used. When reading data from the first sub-memory area, the first voltage is used. The memory system according to claim 10, configured as follows.

12. The first condition includes that the temperature when data is written to the first sub-memory area is below a predetermined temperature. The memory system according to claim 10.

13. The first condition includes the fact that when data is written to the first sub-memory area, the number of times data has been written to the first sub-memory area up to that point is less than a predetermined number. The memory system according to claim 10.

14. When the second sub-memory area within the first memory area satisfies the second condition, the controller When reading data from the second sub-memory area, a third common voltage associated with the first memory area is used. The memory system according to claim 10, configured as follows.

15. When the third sub-memory area within the first memory area satisfies the second condition, the controller The third voltage associated with the third sub-memory area is calculated, Based on the third voltage, the fourth voltage is calculated, Apply the fourth voltage to the third common voltage. The memory system according to claim 14, configured as follows.

16. The controller, when the fourth sub-memory region among the plurality of sub-memory regions included in the first memory region satisfies the third condition, The fifth voltage associated with the fourth sub-memory area is calculated, When reading data from the fourth sub-memory area, the fifth voltage is used. When reading data from each of the multiple sub-memory areas, excluding the fourth sub-memory area included in the first memory area, the first common voltage is used. The memory system according to claim 10, configured as follows.

17. In internal processing not based on external instructions, it is determined whether the fourth sub-memory area satisfies the third condition. The memory system according to claim 16.

18. Based on an instruction for an external read operation, it is determined whether the fourth sub-memory area satisfies the third condition. The memory system according to claim 16.

Citation Information

Patent Citations

  • JP2021-0190150A

  • Memory system and control method of memory system

    JP2022050898A

  • JPP7079878B

  • Error recovery of data in non-volatile memory during read

    US11120882B2

  • Preemptive idle time read scans

    US11250918B2