# US 10,120,752 B2 · Data storage device and data access-method

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

- Number: US 10,120,752 B2
- Document ID: US10120752B2
- Status: Granted
- Kind: B2
- Application number: 15/675,817
- Filed: 2017-08-14
- Published: 2017-11-30
- Granted: 2018-11-06
- Earliest claimed: 2013-12-04
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Li-Shuo Hsiao; Chang-Kai Cheng
- Web page: https://patentgrep.com/patent/US10120752B2

## 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/064: {Management of blocks}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/1016: {Error in accessing a memory location, i.e. addressing error}
- G06F 12/00: Accessing, addressing or allocating within memory systems or architectures (digital input from, or digital output to record carriers, e.g. to disk storage units, G06F3/06)
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/1016: Performance improvement
- G06F 2212/1044: Space efficiency improvement
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7202: Allocation control and policies
- G06F 2212/7207: management of metadata or control data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present invention provides a data-storage device including a flash memory and a controller. The flash memory includes a plurality of blocks, and each of the blocks has a plurality of pages, wherein each of the pages has a plurality of sub-pages and a plurality of spare areas, each of the spare areas is arranged to store a spare data sector, and the spare data sector respectively corresponds to the sub-pages. The controller is arranged to access the sub-pages according to the spare data sector.

## Claims

### Claim 1

A data-storage device, comprising:
a flash memory, comprising a plurality of blocks, and each of the blocks has a plurality of pages, wherein each of the pages has a plurality of sub-pages and a plurality of spare areas, each of the spare areas is arranged to store a spare data sector, and each of the spare data sectors corresponds to one of the sub-pages; and
a controller, arranged to access the sub-pages according to the spare data sectors,
wherein the minimum access unit of the flash memory is the sub-page, each of the spare data sectors comprises a metadata arranged to record the information of the corresponding sub-page and an ECC parity of the metadata, and each of the sub-pages comprises a data area and an ECC parity of the data area, wherein the metadata includes properties of data in the blocks, wherein the properties include a mapping relationship of the physical sub-pages and the logical sub-pages,
wherein when the controller receives an access command from a host to write a first sector of a first page of the plurality of pages and the first sector constitutes a sub-page, the controller write sector data indicated by the access command directly into the sub-page indicated by the access command.

### Claim 2 (depends on 1)

The data-storage device as claimed in claim 1, wherein the flash memory further comprises at least one predetermined page, the predetermined page is arranged to store a page-size parameter, and the page-size parameter is arranged to represent the size of the corresponding page.

### Claim 3 (depends on 1)

The data-storage device as claimed in claim 1, wherein the spare areas and the sub-pages are arranged in a staggered arrangement in the page.

### Claim 4 (depends on 1)

The data-storage device as claimed in claim 1, wherein all of the spare areas of one of the pages are arranged on the front of the page or in the back of the page.

### Claim 5

A data-accessing method, applied to a data-storage device, wherein the data-storage device comprises a flash memory, the flash memory comprises a plurality of blocks, each of the blocks comprises a plurality of pages, each of the pages comprises a plurality of sub-pages, and the data-accessing method comprises:
receiving an access command arranged to access a first sub-page of the sub-pages, wherein each of the pages further comprises a plurality of spare areas, each of the spare areas is arranged to store a spare data sector, and each of the spare data sectors corresponds to one of the sub-pages; and
accessing the first sub-page according to the spare data sector corresponding to the first sub-page, wherein the minimum access unit of the flash memory is the sub-page, each of the spare data sectors comprises a metadata arranged to record the information of the corresponding sub-page and an ECC parity of the metadata, and each of the sub-pages comprises a data area and an ECC parity of the data area, wherein the metadata includes properties of data in the blocks, wherein the properties include a mapping relationship of the physical sub-pages and the logical sub-pages; and
when an access command is received from a host to write a first sector of a first page of the plurality of pages and the first sector constitutes a sub-page, writing sector data indicated by the access command directly into the sub-page indicated by the access command.

### Claim 6 (depends on 5)

The data-accessing method as claimed in claim 5, wherein the step of accessing the first sub-page further comprises correcting at least one of error bit of the metadata according to the ECC parity.

### Claim 7 (depends on 5)

The data-accessing method as claimed in claim 5, wherein the step of accessing the first sub-page further comprises correcting at least one error bit of the sub-pages according to the ECC parity.

### Claim 8 (depends on 5)

The data-accessing method as claimed in claim 5, wherein the flash memory further comprises at least one predetermined page, the predetermined page is arranged to store a page-size parameter, and the page-size parameter is arranged to represent the size of the corresponding page.

### Claim 9 (depends on 5)

The data-accessing method as claimed in claim 5, wherein the spare areas and the sub-pages are arranged in a staggered arrangement in the page.

### Claim 10 (depends on 5)

The data-accessing method as claimed in claim 5, wherein all of the spare areas of one of the pages are arranged on the front of the page or in the back of the page.
