# US 10,120,611 B2 · Storage device and data control method for storage error control

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

- Number: US 10,120,611 B2
- Document ID: US10120611B2
- Status: Granted
- Kind: B2
- Application number: 15/396,784
- Filed: 2017-01-02
- Published: 2017-09-14
- Granted: 2018-11-06
- Earliest claimed: 2016-03-14
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Chih-Ming Lin
- Web page: https://patentgrep.com/patent/US10120611B2

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- 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}
- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G11C 29/52: Protection of memory contents; Detection of errors in memory contents
- G11C 29/74: {using duplex memories, i.e. using dual copies}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

A storage device includes a data storage medium and a control unit. The data storage medium includes a spare block pool including a plurality of spare blocks. Each spare block includes a plurality of data pages. The control unit is electrically coupled to the data storage medium. The control unit is configured to receive data from a host and to determine whether the data is sequential data according to a default policy. The data is written into at least two of the plurality of data pages in one of the plurality of spare blocks respectively. The control unit and a data storing method for the storage device are also provided.

## Claims

### Claim 1

A storage device, comprising:
a data storage medium, comprising a spare block pool, wherein the spare block pool comprises a plurality of spare blocks, and each one of the plurality of spare blocks comprises a plurality of data pages; and
a control unit, electrically coupled to the data storage medium, wherein the control unit is configured to receive data from a host and to determine whether the data is sequential data according to a default policy, and if the determination is false, the data is written into at least two of the plurality of data pages in one of the plurality of spare blocks respectively.

### Claim 2 (depends on 1)

The storage device according to claim 1, wherein if the data is determined as sequential data, the control unit is configured to write the data into at least two of the plurality of spare blocks respectively.

### Claim 3 (depends on 1)

The storage device according to claim 1, wherein a plurality of logic block addresses corresponding to the sequential data are sequentially continuous.

### Claim 4 (depends on 1)

The storage device according to claim 1, wherein when the at least two spare blocks are written and filled with the data, the control unit is configured to perform a data verification process on the at least two spare blocks.

### Claim 5 (depends on 4)

The storage device according to claim 4, wherein when the data verification process is performed, one of the at least two spare blocks not having an error correcting code invalid issue is re-defined as an in-use block.

### Claim 6 (depends on 4)

The storage device according to claim 4, wherein when the data verification process is performed and the at least two spare blocks are determined to have an error correcting code invalid issue, the control unit is configured to store the data in the data pages in the at least two spare blocks not having the error correcting code invalid issue into a third spare block.

### Claim 7 (depends on 1)

The storage device according to claim 1, wherein the default policy is to check whether the data has a number of sequentially-continuous logic block addresses.

### Claim 8 (depends on 1)

The storage device according to claim 1, wherein the at least two of the plurality of data pages in one of the plurality of spare blocks are not physically adjacent.

### Claim 9

A control unit, comprising:
a control logic, the control logic being electrically coupled to a data storage medium, wherein the data storage medium comprises a spare block pool, the spare block pool is for storing a plurality of spare blocks, and each one of the plurality of spare blocks comprises a plurality of data pages; and
a microprocessor, electrically coupled to the control logic, wherein the microprocessor is configured to receive data from a host and determine whether the data is sequential data, wherein if the determination is true, the microprocessor is configured to write the data into at least two of the plurality of spare blocks via the control logic respectively, wherein if the determination is false, the microprocessor is configured to write the data into at least two of the plurality of data pages in one of the plurality of spare blocks via the control logic respectively.

### Claim 10 (depends on 9)

The control unit according to claim 9, wherein a plurality of logic block addresses corresponding to the sequential data are sequentially continuous.

### Claim 11 (depends on 9)

The control unit according to claim 9, wherein when the at least two spare blocks are written and filled with the data, the microprocessor is configured to perform a data verification process on the at least two spare blocks.

### Claim 12 (depends on 11)

The control unit according to claim 11, wherein when the data verification process is performed by the microprocessor, one of the at least two spare blocks not having an error correcting code invalid issue is re-defined as an in-use block.

### Claim 13 (depends on 11)

The control unit according to claim 11, wherein when the at least two spare blocks are determined to have an error correcting code invalid issue, the microprocessor is configured to store the data in the data pages in the at least two spare blocks not having the error correcting code invalid issue into a third spare block.

### Claim 14

A data storing method for a storage device, comprising steps of:
receiving data from a host;
determining whether the data is sequential data;
if the determination is true, writing the data into at least two spare blocks respectively, wherein the at least two spare blocks are selected from a plurality of spare blocks of a spare block pool, and each one of the plurality of spare blocks comprises a plurality of data pages; or
if the determination is false, writing the data into at least two of the plurality of data pages in one of the plurality of spare blocks in the spare block pool respectively.

### Claim 15 (depends on 14)

The data storing method for a storage device according to claim 14, wherein a plurality of logic block addresses corresponding to the sequential data are sequentially continuous.

### Claim 16 (depends on 14)

The data storing method for a storage device according to claim 14, further comprising a step of:
when the at least two spare blocks are written and filled with the data, performing a data verification process on the at least two spare blocks.

### Claim 17 (depends on 16)

The data storing method for a storage device according to claim 16, further comprising a step of:
when the data verification process is performed, defining one of the at least two spare blocks not having an error correcting code invalid issue as an in-use block.

### Claim 18 (depends on 16)

The data storing method for a storage device according to claim 16, further comprising a step of:
when the data verification process is performed and the at least two spare blocks are determined to have an error correcting code invalid issue, storing the data in the data pages in the at least two spare blocks not having the error correcting code invalid issue into a third spare block.
