# US 10,503,411 B2 · Data storage device and method for operating non-volatile memory

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

- Number: US 10,503,411 B2
- Document ID: US10503411B2
- Status: Granted
- Kind: B2
- Application number: 15/954,223
- Filed: 2018-04-16
- Published: 2019-01-17
- Granted: 2019-12-10
- Earliest claimed: 2017-07-13
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Ying-Chun Hung
- Web page: https://patentgrep.com/patent/US10503411B2

## CPC

- G06F 3/0613: {in relation to throughput}
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/064: {Management of blocks}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

An optimized operating method for a non-volatile memory. A microcontroller allocates the non-volatile memory to store write data issued by a host. The microcontroller dynamically adjusts a first-writing-mode threshold. The first-writing-mode threshold value is provided for the microcontroller to determine whether to use a first writing mode to allocate the non-volatile memory to store the write data issued by the host. In comparison with the first writing mode, more bits of data are stored in one storage cell in a second writing mode.

## Claims

### Claim 1

A data storage device, comprising:
a non-volatile memory; and
a microcontroller, allocating blocks of the non-volatile memory to store write data issued by a host,
wherein:
the microcontroller dynamically adjusts a first-writing-mode threshold;
the first-writing-mode threshold value is provided for the microcontroller to determine whether to use a first writing mode or a second writing mode to allocate the blocks of the non-volatile memory to store the write data issued by the host;
in comparison with the first writing mode, more bits of data are stored in one storage cell in the second writing mode;
when available blocks of the non-volatile memory is greater than the first-writing-mode threshold, the microcontroller programs the write data issued by the host to the non-volatile memory in the first writing mode;
when available blocks of the non-volatile memory is not greater than the first-writing-mode threshold, the microcontroller programs the write data issued by the host to the non-volatile memory in the second writing mode;
when releasing a space of the non-volatile memory by background operations, the microcontroller decreases the first-writing-mode threshold; and
the microcontroller performs the background operations without being requested to by the host.

### Claim 2 (depends on 1)

The data storage device as claimed in claim 1, wherein:
when releasing a space of the non-volatile memory by foreground operations, the microcontroller increases the first-writing-mode threshold; and
the microcontroller responds to the host by the foreground operations.

### Claim 3 (depends on 1)

The data storage device as claimed in claim 1, wherein:
the non-volatile memory is a flash memory managed in blocks;
in the first-writing mode, data is stored in single-level cells with each storage cell storing one bit of data; and
in the second-writing mode, each storage cell stores more than one bit.

### Claim 4 (depends on 3)

The data storage device as claimed in claim 3, wherein:
when using the second-writing mode to copy data stored in the first-writing mode and thereby a block is released to store subsequent write data issued by the host, the microcontroller increases the first-writing-mode threshold.

### Claim 5 (depends on 3)

The data storage device as claimed in claim 3, wherein:
when updating data and thereby a block is released, the microcontroller increases the first-writing-mode threshold.

### Claim 6 (depends on 3)

The data storage device as claimed in claim 3, wherein:
when releasing a block by garbage collection performed by background operations, the microcontroller decreases the first-writing-mode threshold; and
the microcontroller performs the background operations without being requested to by the host.

### Claim 7

A method for operating a non-volatile memory, comprising:
allocating blocks of a non-volatile memory to store write data issued by a host;
dynamically adjusting a first-writing-mode threshold;
based on the first-writing-mode threshold value, determining whether to use a first writing mode or a second writing mode to allocate the blocks of the non-volatile memory to store the write data issued by the host,
wherein:
in comparison with the first writing mode, more bits of data are stored in one storage cell in the second writing mode;
when available blocks of the non-volatile memory is greater than the first-writing-mode threshold, t the write data issued by the host is programmed to the non-volatile memory in the first writing mode;
when available blocks of the non-volatile memory is not greater than the first-writing-mode threshold, the write data issued by the host is programmed to the non-volatile memory in the second writing mode;
when releasing a space of the non-volatile memory by background operations, the first-writing-mode threshold is decreased; and
the background operations are performed without being requested to by the host.

### Claim 8 (depends on 7)

The method as claimed in claim 7, further comprising:
increasing the first-writing-mode threshold when releasing a space of the non-volatile memory by foreground operations,
wherein the foreground operations are performed to respond to the host.

### Claim 9 (depends on 7)

The method as claimed in claim 7, wherein:
the non-volatile memory is a flash memory managed in blocks;
in the first-writing mode, data is stored in single-level cells with each storage cell storing one bit of data; and
in the second-writing mode, each storage cell stores more than one bit.

### Claim 10 (depends on 9)

The method as claimed in claim 9, wherein:
when using the second-writing mode to copy data stored in the first-writing mode and thereby a block is released to store subsequent write data issued by the host, the first-writing-mode threshold is increased.

### Claim 11 (depends on 9)

The method as claimed in claim 9, wherein:
when updating data and thereby a block is released, the first-writing-mode threshold is increased.

### Claim 12 (depends on 9)

The method as claimed in claim 9, further comprising:
decreasing the first-writing-mode threshold when releasing a block by garbage collection performed by background operations,
wherein the background operations are performed without being requested to by the host.
