# US 10,320,429 B2 · Memory controller, memory system and memory control method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,429 B2
- Document ID: US10320429B2
- Status: Granted
- Kind: B2
- Application number: 14/790,331
- Filed: 2015-07-02
- Published: 2016-09-08
- Granted: 2019-06-11
- Earliest claimed: 2015-03-04
- Assignees: Toshiba Memory Corporation
- Applicants: Toshiba Memory Corporation
- Inventors: Kenji Sakurada
- Web page: https://patentgrep.com/patent/US10320429B2

## CPC

- H03M 13/45: Soft decoding, i.e. using symbol reliability information (H03M13/41 takes precedence)
- G06F 11/1012: {using codes or arrangements adapted for a specific type of error (G06F11/1048 takes precedence)}
- G11C 11/5642: {Sensing or reading circuits; Data output circuits}
- G11C 29/021: {in voltage or current generators}
- G11C 29/028: {with adaption or trimming of parameters}
- H03M 13/3723: {using means or methods for the initialisation of the decoder}
- H03M 13/6325: {Error control coding in combination with demodulation}
- G11C 7/14: Dummy cell management; Sense reference voltage generators
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

According to the embodiment, a memory controller includes a memory interface which performs a first reading using a read voltage including a hard decision voltage and a second reading using a plurality of read voltages within a predetermined voltage range, a shift value calculation unit which calculates an update value of the hard decision voltage based on the reading result by the second reading, a storage unit which stores the update value, a decoding unit which performs decoding based on likelihood information according to the reading result, and a controller which makes the memory controller perform the first reading, makes the decoding unit perform the decoding by using the likelihood information using a reading result by the second reading when the decoding has been failed, and makes the memory controller perform the first reading by using the update value when the corresponding update value is stored in the storage unit.

## Claims

### Claim 1

A memory system comprising:
a non-volatile memory that includes a plurality of memory cells, each of the memory cells having a storage capacity of m bits in accordance with 2 to the power of m threshold voltage distributions, the 2 to the power of m threshold voltage distributions including a first threshold voltage distribution and at least one other threshold voltage distribution, the first threshold voltage distribution indicating an erase state, the at least one other threshold voltage distribution being higher than the first threshold voltage distribution and indicating a write state, where m is a natural number that is equal to or greater than 2; and
processing circuitry configured to
perform a first reading, the first reading being reading data from the non-volatile memory, the first reading including a reading performed by using a hard decision voltage, a reading performed by using a first read voltage lower than the hard decision voltage, and a reading performed by using a second read voltage higher than the hard decision voltage, the hard decision voltage being a voltage for a hard decision of the data stored in the non-volatile memory,
convert first data read by the first reading into first likelihood information,
decode data read from the non-volatile memory based on the first likelihood information,
perform, in a case where the decoding based on the first likelihood information has failed, a second reading, the second reading being reading a plurality of data sets from the non-volatile memory with a plurality of steps, the plurality of steps being performed serially, each of the plurality of steps corresponding to each of a plurality of read voltages at predetermined intervals within a certain voltage range, each of the plurality of data sets corresponding to each of the plurality of read voltages,
calculate the hard decision voltage using the plurality of data sets,
update the hard decision voltage with the calculated hard decision voltage,
convert the plurality of data sets into second likelihood information, and
decode data read from the non-volatile memory based on the second likelihood information, wherein
the 2 to the power of m threshold voltage distributions are the first threshold voltage distribution and a second to a k-th threshold voltage distribution, where k is 2 to the power of m,
a voltage corresponding to the (n+1)-th threshold voltage distribution is higher than a voltage corresponding to the n-th threshold voltage distribution, where n is natural number equal to or greater than 1 and smaller than k,
in the first reading using the hard decision voltage between a center of the n-th threshold voltage distribution and a center of the (n+1)-th threshold voltage distribution, the first read voltage and the second read voltage are higher than the center voltage of the n-th threshold voltage distribution and lower than the center voltage of the (n+1)-th threshold voltage distribution,
a voltage range between the first read voltage and the second read voltage is narrower than a range from the n-th threshold voltage distribution to the (n+1)-th threshold voltage distribution,
the certain voltage range is a range over the second to the k-th threshold voltage distributions,
each of the plurality of data sets includes a plurality of bits, each of the plurality of bits indicating whether current flows in each of the plurality of memory cells,
the processing circuitry calculates the number of memory cells in the plurality of memory cells, and a threshold voltage of which being corresponding to one of the plurality of read voltages, based on the plurality of bits, with respect to each of the plurality of read voltages, and
the processing circuitry calculates the hard decision voltage based on the calculated number of memory cells.

### Claim 2 (depends on 1)

The memory system according to claim 1, wherein the processing circuitry
stores the updated hard decision voltage, and
uses the updated hard decision voltage in the first reading.

### Claim 3 (depends on 2)

The memory system according to claim 2, wherein the processing circuitry calculates the update value for each block which is a data erasing unit in the non-volatile memory.

### Claim 4 (depends on 1)

The memory system according to claim 1, wherein the plurality of data sets used in the calculating of the hard decision voltage are the same as the plurality of data sets converted into the second likelihood information.

### Claim 5 (depends on 1)

The memory system according to claim 1, wherein
the processing circuitry selects from among the plurality of read voltages, the read voltage corresponding to data, of which values of the plurality of read data items change, in the plurality of read data items respectively corresponding to the plurality of read voltages, and
obtains the second likelihood information based on the selected read voltage.

### Claim 6 (depends on 5)

The memory system according to claim 5, wherein the processing circuitry
obtains the first likelihood information based on a first likelihood information table corresponding to a first bit among m bits and including values respectively corresponding to the plurality of read voltages when the read data corresponds to the first bit, and
obtains the second likelihood information based on a second likelihood information table corresponding to a second bit among m bits and including values respectively corresponding to the plurality of read voltages when the read data corresponds to the second bit, the second bit being different from the first bit.

### Claim 7 (depends on 1)

The memory system according to claim 1, wherein the data which is stored in the non-volatile memory is a code word based on a LDPC.

### Claim 8

A method for controlling a non-volatile memory, the non-volatile memory including a plurality of memory cells, each of the memory cells having a storage capacity of m bits in accordance with 2 to the power of m threshold voltage distributions, the 2 to the power of m threshold voltage distributions including a first threshold voltage distribution and at least one other threshold voltage distribution, the first threshold voltage distribution indicating an erase state, the at least one other threshold voltage distribution being higher than the first threshold voltage distribution and indicating a write state, where m is a natural number that is equal to or greater than 2, the method comprising:
performing, via processing circuitry, a first reading to read data from the non-volatile memory, the first reading including a reading performed by using a hard decision voltage, a reading performed by using a first read voltage lower than the hard decision voltage, and a reading performed by using a second read voltage higher than the hard decision voltage, the hard decision voltage being a voltage for a hard decision of the data stored in the non-volatile memory;
converting first data read by the first reading into first likelihood information;
decoding data read from the non-volatile memory based on the first likelihood information;
performing, in a case where the decoding based on the first likelihood information has failed, a second reading, the second reading being reading a plurality of data sets from the non-volatile memory with a plurality of steps, the plurality of steps being performed serially, each of the plurality of steps corresponding to each of a plurality of read voltages at predetermined intervals within a certain voltage range, each of the plurality of data sets corresponding to each of the plurality of read voltages;
calculating the hard decision voltage using the plurality of data sets;
updating the hard decision voltage with the calculated hard decision voltage;
converting the plurality of data sets into second likelihood information; and
decoding data read from the non-volatile memory based on the second likelihood information, wherein
the 2 to the power of m threshold voltage distributions are the first threshold voltage distribution and a second to a k-th threshold voltage distribution, where k is 2 to the power of m,
a voltage corresponding to the (n+1)-th threshold voltage distribution is higher than a voltage corresponding to the n-th threshold voltage distribution, where n is natural number equal to or greater than 1 and smaller than k,
the certain voltage range is a range over the second to the k-th threshold voltage distributions,
in the first reading using the hard decision voltage between a center of the n-th threshold voltage distribution and a center of the (n+1)-th threshold voltage distribution, the first read voltage and the second read voltage are higher than the center voltage of the n-th threshold voltage distribution and lower than the center voltage of the (n+1)-th threshold voltage distribution,
a voltage range between the first read voltage and the second read voltage is narrower than a range from the n-th threshold voltage distribution to the (n+1)-th threshold voltage distribution,
each of the plurality of data sets includes a plurality of bits, each of the plurality of bits indicating whether current flows each of the plurality of memory cells,
the processing circuitry calculates the number of memory cells in the plurality of memory cells, and a threshold voltage of which being corresponding to one of the plurality of read voltages, based on the plurality of bits, with respect to each of the plurality of read voltages, and
the processing circuitry calculates the hard decision voltage based on the calculated number of memory cells.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
calculating an update value of the hard decision voltage based on the data read from the plurality of memory cells by the second reading; and
using the updated hard decision voltage in the first reading.

### Claim 10 (depends on 9)

The method according to claim 9, further comprising:
calculating the update value for each block which is a data erasing unit in the non-volatile memory.

### Claim 11 (depends on 8)

The method according to claim 8, wherein the plurality of data sets used in the calculating of the hard decision voltage are the same as the plurality of data sets converted into the second likelihood information.

### Claim 12 (depends on 8)

The method according to claim 8, wherein the converting into the second likelihood information includes
selecting from among the plurality of read voltages, the read voltage corresponding to data, of which values of the plurality of read data items change, in the plurality of read data items respectively corresponding to the plurality of read voltages, and
obtaining the second likelihood information based on the selected read voltage.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the method further comprises:
obtaining the first likelihood information based on a first likelihood information table corresponding to a first bit among m bits and including values respectively corresponding to the plurality of read voltages when the read data corresponds to the first bit of two or more bits; and
obtaining the second likelihood information based on a second likelihood information table corresponding to a second bit among m bits and including values respectively corresponding to the plurality of read voltages when the read data corresponds to the second bit, the second bit being different from the first bit.

### Claim 14 (depends on 8)

The method according to claim 8, wherein the data which is stored in the non-volatile memory is a code word based on a LDPC.

### Claim 15 (depends on 1)

The memory system according to claim 1, wherein the predetermined intervals of the plurality of read voltages are equal.

### Claim 16 (depends on 1)

The memory system according to claim 1, wherein the predetermined intervals of the plurality of read voltages are not equal.

### Claim 17 (depends on 8)

The method according to claim 8, wherein the predetermined intervals of the plurality of read voltages are equal.

### Claim 18 (depends on 8)

The method according to claim 8, wherein the predetermined intervals of the plurality of read voltages are not equal.

### Claim 19 (depends on 1)

The memory system according to claim 1, wherein
the hard decision voltage is determined based on a bottom of a curve indicating the number of memory cells as a function for read voltage, and
the curve is calculated by curve fitting using the calculated number of memory cells with respect to each of the plurality of read voltages.
