# US 8,751,904 B2 · Controlling methods and controllers utilized in flash memory device for referring to data compression result to adjust ECC protection capability

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

- Number: US 8,751,904 B2
- Document ID: US8751904B2
- Status: Granted
- Kind: B2
- Application number: 13/187,499
- Filed: 2011-07-20
- Published: 2012-01-26
- Granted: 2014-06-10
- Earliest claimed: 2010-07-22
- Assignees: Silicon Motion, Inc.
- Applicants: Wen-Long Wang; Tsung-Chieh Yang
- Inventors: Wen-Long Wang; Tsung-Chieh Yang
- Web page: https://patentgrep.com/patent/US8751904B2

## CPC

- H03M 13/2906: {using block codes (H03M13/2957 takes precedence)}
- G06F 11/1048: {using arrangements adapted for a specific error detection or correction feature}
- H03M 13/2918: {with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube}
- H03M 13/27: using interleaving techniques
- 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)

## Abstract

A controlling method utilized in a flash memory device includes: compressing first data received from a host to generate second data; generating record data according to the first data and the second data where the record data records error correct coding (ECC) control information at least; executing ECC protection upon specific data selected from the first and second data to generate third data; and writing the third data into the flash memory device.

## Claims

### Claim 1

A controlling method utilized in a flash memory device, comprising:
compressing a first data received from a host to generate a second data;
generating a record data according to the first data and the second data, wherein the record data records at least error correct coding (ECC) control information;
generating a third data by executing an ECC protection and data shaping of a randomizer upon the record data and at least a specific data selected from the first data and the second data according to the record data; and
writing the third data into the flash memory device;
wherein the record data records compressing indication information and the at least ECC control information; the compressing indication information records that the at least a specific data is a compressed data and a compression ratio; and, the at least ECC control information records a bit number of an ECC code utilized in the ECC protection.

### Claim 2 (depends on 1)

The controlling method of claim 1, wherein the step of generating the record data according to the first data and the second data comprises:
comparing the first data and the second data, for determining which one of the first data and the second data is selected as the specific data; and
referring the determined specific data to generate the record data accordingly.

### Claim 3 (depends on 1)

The controlling method of claim 1, wherein the first data and the second data respectively have a first data amount and a second data amount; the ECC protection is a dynamic ECC protection; when a difference value between the first data amount and the second data amount is smaller than a specific difference value, the bit number of the ECC code utilized in the dynamic ECC protection is smaller than a specific bit number; and when the difference value between the first data amount and the second data amount is larger than the specific difference value, the bit number of the ECC code utilized in the dynamic ECC protection is larger than the specific bit number.

### Claim 4 (depends on 3)

The controlling method of claim 3, wherein the third data has a third data amount which is equal to a data amount generated by executing a basic ECC protection upon the first data.

### Claim 5 (depends on 1)

The controlling method of claim 1, wherein the step of generating the record data according to the first data and the second data comprises:
determining the ECC control information according to a comparing result of the first data and the second data and importance of the first data and the second data.

### Claim 6 (depends on 1)

The controlling method of claim 1, wherein the step of generating the third data comprises:
executing the ECC protection upon the specific data and the record data to generate the third data according to importance of the specific data and the ECC control information.

### Claim 7

A controlling method utilized in a flash memory device, comprising:
reading a third data from the flash memory device, the third data including a record data, the record data recording compressing indication information and ECC control information;
generating a second data by executing ECC decoding and reverse data shaping of a de-randomizer according to the recorded ECC control information and the third data; and
decompressing the second data to generate a first data to a host or outputting the second data to the host according to the recorded compressing indication information;
wherein the compressing indication information records that the first data is a compressed data and a compression ratio, and the ECC control information records a bit number of an ECC code utilized in the ECC decoding.

### Claim 8 (depends on 7)

The controlling method of claim 7, further comprising:
reading a fourth data from the flash memory device, a record data included in the fourth data recording ECC control information, wherein the ECC control information of the fourth data and the ECC control information of the third data respectively indicate different ECC bit numbers.

### Claim 9

A controller utilized in a flash memory device, comprising:
a first processing circuit, for compressing a first data received from a host to generate a second data, and generating a record data according the first data and the second data, wherein the record data records at least ECC control information and compressing indication information; and
a second processing circuit, coupled to the first processing circuit, for generating a third data by executing an ECC protection and a data shaping of a randomizer upon the record data and a specific data selected form the first data and the second data according to the record data, and writing the third data into the flash memory device;
wherein the compressing indication information records that the at least a specific data is a compressed data and a compression ratio; and the at least ECC control information records a bit number of an ECC code utilized in the ECC protection.

### Claim 10 (depends on 9)

The controller of claim 9, wherein the first processing circuit compares the first data and the second data for determining which one of the first data and the second data is selected as the specific data, and refers to the determined specific data to generate the record data accordingly.

### Claim 11 (depends on 9)

The controller of claim 9, wherein the first data and the second data respectively have a first data amount and a second data amount; the ECC protection is a dynamic ECC protection; when a difference value between the first data amount and the second data amount is smaller than a specific difference value, the bit number of the ECC code utilized in the dynamic ECC protection is smaller than the specific bit number; and when the difference value between the first data amount and the second data amount is larger than the specific difference value, the bit number of the ECC code utilized in the dynamic ECC protection is larger than the specific bit number.

### Claim 12 (depends on 11)

The controller of claim 11, wherein the third data has a third data amount equal to a data amount generated by executing a basic ECC protection upon the first data.

### Claim 13 (depends on 9)

The controller of claim 9, wherein the first processing circuit determines the ECC control information according to a comparing result of the first data and the second data and importance of the first data and the second data.

### Claim 14 (depends on 9)

The controller of claim 9, wherein the second processing circuit generates the third information by executing the ECC protection and the data shaping of the randomizer upon the record data and the specific data selected from the first data and the second data according to importance of the specific data and the ECC control information.

### Claim 15

A controller utilized in a flash memory device, comprising:
a second processing circuit, for reading a third data from the flash memory device, wherein the third data includes a record data, and the record data records compressing indication information and ECC control information, and for generating a second data by executing ECC decoding and reverse data shaping of a de-randomizer according to the recorded ECC control information and the third data; and
a first processing circuit, coupled to the second processing circuit, for decompressing the second data to generate a first data to a host or outputting the second data to the host according to the recorded compressing indication information;
wherein the compressing indication information records that the first data is a compressed data and a compression ratio; and, the ECC control information records a bit number of an ECC code utilized in the ECC decoding.

### Claim 16 (depends on 15)

The controller of claim 15, wherein the second processing circuit reads a fourth data from the flash memory device, the fourth data includes a record data which records ECC control information, the ECC control information of the fourth data and the ECC control information of the third data respectively indicate different ECC bit numbers.

### Claim 17

An access method utilized in a memory device, comprising:
receiving a first data;
compressing the first data to generate a second data;
selectively utilizing the first data or the second data as a specific data according to a compression ratio of the second data; and
generating a third data by executing an ECC protection and data shaping of a randomizer upon the specific data and a record data according to the compression ratio, wherein the third data is for being recorded into the memory device;
wherein the record data records compressing indication information and ECC control information; the compressing indication information records that the specific data is a compressed data and the compression ratio; and, the ECC control information records a bit number of an ECC code utilized in the ECC protection.

### Claim 18 (depends on 17)

The method of claim 17, wherein the step of generating the third data by executing the ECC protection and the data shaping of the randomizer upon the specific data and the record data according to the compression ratio comprises:
determining a degree of the ECC protection according to the compression ratio.
