# US 10,310,941 B2 · Data encoding method, memory control circuit unit and memory storage device

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

- Number: US 10,310,941 B2
- Document ID: US10310941B2
- Status: Granted
- Kind: B2
- Application number: 15/820,461
- Filed: 2017-11-22
- Published: 2019-04-18
- Granted: 2019-06-04
- Earliest claimed: 2017-10-17
- Assignees: Phison Electronics Corp.
- Applicants: Phison Electronics Corp.
- Inventors: Wei Lin; Chih-Kang Yeh; Yu-Cheng Hsu; Szu-Wei Chen
- Web page: https://patentgrep.com/patent/US10310941B2

## CPC

- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- H03M 13/2909: {Product codes}
- H03M 13/1102: {Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes}
- H03M 13/1515: {Reed-Solomon codes}
- H03M 13/152: {Bose-Chaudhuri-Hocquenghem [BCH] codes}
- H03M 13/2957: {Turbo codes and decoding}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)
- 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)

## Abstract

A data encoding method, a memory control circuit unit and a memory storage device are provided. The method includes: writing a first data into a first physical programming units; writing a second data into a second physical programming units; encoding by using the first data without using the second data to generate a first encoded data; encoding by using the second data and a first sub-data of the first data to generate a second encoded data; and writing the first encoded data and the second encoded data into a third physical programming unit and a fourth physical programming unit.

## Claims

### Claim 1

A data encoding method for a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical programming units, and the data encoding method comprises:
writing a first data into a first physical programming unit among the physical programming units;
writing a second data into a second physical programming unit among the physical programming units;
encoding by using the first data without using the second data to generate a first encoded data;
encoding by using the second data and at least one first sub-data of the first data to generate a second encoded data; and
writing the first encoded data and the second encoded data into a third physical programming unit and a fourth physical programming unit among the physical programming units respectively.

### Claim 2 (depends on 1)

The data encoding method according to claim 1, wherein
the first encoded data is configured to correct an error of a data stored in the first physical programming unit,
the second encoded data is configured to correct the error of the data stored in the first physical programming unit or correct an error of a data stored in the second physical programming unit.

### Claim 3 (depends on 2)

The data encoding method according to claim 2, further comprising:
decoding the data stored in the first physical programming unit by using the first encoded data so as to correct the error of the data stored in the first physical programming unit;
when the error of the data stored in the first physical programming unit is uncorrectable by using the first encoded data, decoding the data stored in the first physical programming unit by using the second encoded data so as to correct the error of the data stored in the first physical programming unit.

### Claim 4 (depends on 2)

The data encoding method according to claim 2, further comprising:
encoding by using the first data to generate a third encoded data;
encoding by using the second data to generate a fourth encoded data; and
writing the third encoded data into the first physical programming unit and writing the fourth encoded data into the second physical programming unit,
wherein the third encoded data is configured to correct the error of the data stored in the first physical programming unit, and the fourth encoded data is configured to correct the error of the data stored in the second physical programming unit,
wherein the first encoded data and the second encoded data are generated according to a first algorithm, the third encoded data and the fourth encoded data are generated according to a second algorithm, and the first algorithm is different from the second algorithm.

### Claim 5 (depends on 4)

The data encoding method according to claim 4, wherein the first algorithm is a multi-frame encoding algorithm, and the second algorithm is a single-frame encoding algorithm.

### Claim 6 (depends on 5)

The data encoding method according to claim 5, wherein
the multi-frame encoding algorithm is configured to encode data stored in a plurality of fifth physical programming units among the physical programming units to generate a fifth encoded data, and the fifth encoded data is configured to correct an error of the data stored in the fifth physical programming units,
the single-frame encoding algorithm is configured to correct one single sixth physical programming unit among the physical programming units to generate a sixth encoded data, and the sixth encoded data is configured to correct an error of data stored in the sixth physical programming unit.

### Claim 7 (depends on 1)

The data encoding method according to claim 1, wherein the rewritable non-volatile memory module at least comprises a first area and a second area, each of the physical programming units belongs to at least one of the first area and the second area, an error rate of data stored in the physical programming units of the first area is greater than an error rate of data stored in the physical programming units of the second area, the physical programming units of the first area comprise the first physical programming unit, and the physical programming units of the second area comprise the second physical programming unit.

### Claim 8 (depends on 7)

The data encoding method according to claim 7, wherein the rewritable non-volatile memory module comprises a plurality of word lines, a plurality of memory cells are disposed on the word lines, the physical programming units of the first area are formed by a plurality of first memory cells on a plurality of first word lines among the word lines, the physical programming units of the second area are formed by a plurality of second memory cells on a plurality of second word lines among the word lines, and the data encoding method further comprises:
determining a third word line among the word lines so as to identify the first word lines and the second word lines among the word lines according to the third word line,
wherein the first word lines comprise at least one fourth word line among the word lines arranged in a first direction corresponding to the third word line, and the second word lines comprise at least one fifth word line among the word lines arranged in a second direction corresponding to the third word line.

### Claim 9 (depends on 8)

The data encoding method according to claim 8, wherein the step of determining the third word line among the word lines comprises:
pre-determining or dynamically determining the third word line among the word lines.

### Claim 10 (depends on 1)

The data encoding method according to claim 1, wherein the first encoded data is generated by encoding in accordance with a first number of at least one second sub-data in the first data,
the second encoded data is generated by encoding in accordance with a second number of at least one third sub-data in the second data and a third number of the first sub-data in the first data,
sizes of each first sub-data among the first sub-data, each second sub-data among the second sub-data and each third sub-data among the third sub-data are identical, and the first number is less than a sum of the second number and the third number.

### Claim 11

A memory control circuit unit, for controlling a rewritable non-volatile memory module, wherein the rewritable non-volatile memory module comprises a plurality of physical programming units, and the memory control circuit unit comprises:
a host interface, configured to couple to a host system,
a memory interface, configured to couple to a rewritable non-volatile memory module;
a memory management circuit, coupled to the host interface and the memory interface,
wherein the memory management circuit is configured to write a first data into a first physical programming unit among the physical programming units,
wherein the memory management circuit is further configured to write a second data into a second physical programming unit among the physical programming units,
wherein the memory management circuit is further configured to encode by using the first data without using the second data to generate a first encoded data,
wherein the memory management circuit is further configured to encode by using the second data and at least one first sub-data of the first data to generate a second encoded data,
wherein the memory management circuit is further configured to write the first encoded data and the second encoded data into a third physical programming unit and a fourth physical programming unit among the physical programming units respectively.

### Claim 12 (depends on 11)

The memory control circuit unit according to claim 11, wherein
the first encoded data is configured to correct an error of a data stored in the first physical programming unit,
the second encoded data is configured to correct the error of the data stored in the first physical programming unit or correct an error of a data stored in the second physical programming unit.

### Claim 13 (depends on 12)

The memory control circuit unit according to claim 12, wherein
the memory management circuit decodes the data stored in the first physical programming unit by using the first encoded data so as to correct the error of the data stored in the first physical programming unit,
when the error of the data stored in the first physical programming unit is uncorrectable by using the first encoded data, the memory management circuit decodes the data stored in the first physical programming unit by using the second encoded data so as to correct the error of the data stored in the first physical programming unit.

### Claim 14 (depends on 12)

The memory control circuit unit according to claim 12, wherein
the memory management circuit encodes by using the first data to generate a third encoded data,
the memory management circuit encodes by using the second data to generate a fourth encoded data, and
the memory management circuit writes the third encoded data into the first physical programming unit and writes the fourth encoded data into the second physical programming unit,
wherein the third encoded data is configured to correct the error of the data stored in the first physical programming unit, and the fourth encoded data is configured to correct the error of the data stored in the second physical programming unit,
wherein the first encoded data and the second encoded data are generated according to a first algorithm, the third encoded data and the fourth encoded data are generated according to a second algorithm, and the first algorithm is different from the second algorithm.

### Claim 15 (depends on 14)

The memory control circuit unit according to claim 14, wherein the first algorithm is a multi-frame encoding algorithm, and the second algorithm is a single-frame encoding algorithm.

### Claim 16 (depends on 15)

The memory control circuit unit according to claim 15, wherein
the multi-frame encoding algorithm is configured to encode data stored in a plurality of fifth physical programming units among the physical programming units to generate a fifth encoded data, and the fifth encoded data is configured to correct an error of the data stored in the fifth physical programming units,
the single-frame encoding algorithm is configured to correct one single sixth physical programming unit among the physical programming units to generate a sixth encoded data, and the sixth encoded data is configured to correct an error of data stored in the sixth physical programming unit.

### Claim 17 (depends on 11)

The memory control circuit unit according to claim 11, wherein the rewritable non-volatile memory module at least comprises a first area and a second area, each of the physical programming units belongs to at least one of the first area and the second area, an error rate of data stored in the physical programming units of the first area is greater than an error rate of data stored in the physical programming units of the second area, the physical programming units of the first area comprise the first physical programming unit, and the physical programming units of the second area comprise the second physical programming unit.

### Claim 18 (depends on 17)

The memory control circuit unit according to claim 17, wherein the rewritable non-volatile memory module comprises a plurality of word lines, a plurality of memory cells are disposed on the word lines, the physical programming units of the first area are formed by a plurality of first memory cells on a plurality of first word lines among the word lines, the physical programming units of the second area are formed by a plurality of second memory cells on a plurality of second word lines among the word lines, wherein
the memory management circuit determines a third word line among the word lines so as to identify the first word lines and the second word lines among the word lines according to the third word line,
wherein the first word lines comprise at least one fourth word line among the word lines arranged in a first direction corresponding to the third word line, and the second word lines comprise at least one fifth word line among the word lines arranged in a second direction corresponding to the third word line.

### Claim 19 (depends on 18)

The memory control circuit unit according to claim 18, wherein in the operation of determining the third word line among the word lines,
the memory management circuit pre-determines or dynamically determines the third word line among the word lines.

### Claim 20 (depends on 11)

The memory control circuit unit according to claim 11, wherein the first encoded data is generated by encoding in accordance with a first number of at least one second sub-data in the first data,
the second encoded data is generated by encoding in accordance with a second number of at least one third sub-data in the second data and a third number of the first sub-data in the first data,
sizes of each first sub-data among the first sub-data, each second sub-data among the second sub-data and each third sub-data among the third sub-data are identical, and the first number is less than a sum of the second number and the third number.

### Claim 21

A memory storage device, comprising:
a connection interface unit, configured to couple to a host system;
a rewritable non-volatile memory module comprising a plurality of physical programming units; and
a memory control circuit unit, coupled to the connection interface unit and the rewritable non-volatile memory module,
wherein the memory control circuit unit is configured to write a first data into a first physical programming unit among the physical programming units,
wherein the memory control circuit unit is further configured to write a second data into a second physical programming unit among the physical programming units,
wherein the memory control circuit unit is further configured to encode by using the first data without using the second data to generate a first encoded data,
wherein the memory control circuit unit is further configured to encode by using the second data and at least one first sub-data of the first data to generate a second encoded data,
wherein the memory control circuit unit is further configured to write the first encoded data and the second encoded data into a third physical programming unit and a fourth physical programming unit among the physical programming units respectively.

### Claim 22 (depends on 21)

The memory storage device according to claim 21, wherein
the first encoded data is configured to correct an error of a data stored in the first physical programming unit,
the second encoded data is configured to correct the error of the data stored in the first physical programming unit or correct an error of a data stored in the second physical programming unit.

### Claim 23 (depends on 22)

The memory storage device according to claim 22, wherein
the memory control circuit unit decodes the data stored in the first physical programming unit by using the first encoded data so as to correct the error of the data stored in the first physical programming unit,
when the error of the data stored in the first physical programming unit is uncorrectable by using the first encoded data, the memory control circuit unit decodes the data stored in the first physical programming unit by using the second encoded data so as to correct the error of the data stored in the first physical programming unit.

### Claim 24 (depends on 22)

The memory storage device according to claim 22, wherein
the memory control circuit unit encodes by using the first data to generate a third encoded data,
the memory control circuit unit encodes by using the second data to generate a fourth encoded data, and
the memory control circuit unit writes the third encoded data into the first physical programming unit and writes the fourth encoded data into the second physical programming unit,
wherein the third encoded data is configured to correct the error of the data stored in the first physical programming unit, and the fourth encoded data is configured to correct the error of the data stored in the second physical programming unit,
wherein the first encoded data and the second encoded data are generated according to a first algorithm, the third encoded data and the fourth encoded data are generated according to a second algorithm, and the first algorithm is different from the second algorithm.

### Claim 25 (depends on 24)

The memory storage device according to claim 24, wherein the first algorithm is a multi-frame encoding algorithm, and the second algorithm is a single-frame encoding algorithm.

### Claim 26 (depends on 25)

The memory storage device according to claim 25, wherein
the multi-frame encoding algorithm is configured to encode data stored in a plurality of fifth physical programming units among the physical programming units to generate a fifth encoded data, and the fifth encoded data is configured to correct an error of the data stored in the fifth physical programming units,
the single-frame encoding algorithm is configured to correct one single sixth physical programming unit among the physical programming units to generate a sixth encoded data, and the sixth encoded data is configured to correct an error of data stored in the sixth physical programming unit.

### Claim 27 (depends on 21)

The memory storage device according to claim 21, wherein the rewritable non-volatile memory module at least comprises a first area and a second area, each of the physical programming units belongs to at least one of the first area and the second area, an error rate of data stored in the physical programming units of the first area is greater than an error rate of data stored in the physical programming units of the second area, the physical programming units of the first area comprise the first physical programming unit, and the physical programming units of the second area comprise the second physical programming unit.

### Claim 28 (depends on 27)

The memory storage device according to claim 27, wherein the rewritable non-volatile memory module comprises a plurality of word lines, a plurality of memory cells are disposed on the word lines, the physical programming units of the first area are formed by a plurality of first memory cells on a plurality of first word lines among the word lines, the physical programming units of the second area are formed by a plurality of second memory cells on a plurality of second word lines among the word lines, wherein
the memory control circuit unit determines a third word line among the word lines so as to identify the first word lines and the second word lines among the word lines according to the third word line,
wherein the first word lines comprise at least one fourth word line among the word lines arranged in a first direction corresponding to the third word line, and the second word lines comprise at least one fifth word line among the word lines arranged in a second direction corresponding to the third word line.

### Claim 29 (depends on 28)

The memory storage device according to claim 28, wherein in the operation of determining the third word line among the word lines,
the memory control circuit unit pre-determines or dynamically determines the third word line among the word lines.

### Claim 30 (depends on 21)

The memory storage device according to claim 21, wherein the first encoded data is generated by encoding in accordance with a first number of at least one second sub-data in the first data,
the second encoded data is generated by encoding in accordance with a second number of at least one third sub-data in the second data and a third number of the first sub-data in the first data,
sizes of each first sub-data among the first sub-data, each second sub-data among the second sub-data and each third sub-data among the third sub-data are identical, and the first number is less than a sum of the second number and the third number.
