# US 2017/0286012 A1 · Method for recording duration of use of data block, method for managing data block using the same and related device

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

- Number: US 2017/0286012 A1
- Document ID: US20170286012A1
- Status: Published application
- Kind: A1
- Application number: 15/219,227
- Filed: 2016-07-25
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: Silicon Motion, Inc.
- Applicants: Silicon Motion, Inc.
- Inventors: Po-Sheng Chou; Tsung-Yao Chiang
- Web page: https://patentgrep.com/patent/US20170286012A1

## CPC

- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0616: {in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 11/34: Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation {; Recording or statistical evaluation of user activity, e.g. usability assessment}
- G06F 2201/81: Threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for recording a duration of use of a data block is disclosed, as well as a data storage device implementing that method. The data block is either an in-use data block or an empty data block. The method includes steps of: receiving and writing data into one of the in-use data blocks and writing a program time and a time interval of the data into the in-use data block. Wherein the time interval is a difference between the program time and an initial program time of the in-use data block, and the initial program time was recorded when the in-use data block wrote a first piece of data.

## Claims

### Claim 1

A method for recording a duration of use of a data block of a non-volatile memory, wherein the non-volatile memory comprises a plurality of in-use data blocks and empty data blocks, the data block is either the in-use data blocks or the empty data blocks, the method comprises steps of:
receiving and writing data into one of the in-use data blocks; and
writing a program time of the data and a time interval into the in-use data block,
wherein the time interval is a difference between the program time of the data and an initial program time of the in-use data block, and the initial program time is recorded when a first piece of data is written into the in-use data block.

### Claim 2 (depends on 1)

The method for recording a duration of use of a data block of a non-volatile memory according to claim 1, wherein the step of receiving and writing data into one of the in-use data blocks comprises steps of:
determining whether the data is written into one of the empty data blocks; and
if yes, changing the empty data block into a second in-use data block, writing the data into the second in-use data block, and resetting the time interval and updating the program time to a current time, wherein the current time is the initial program time.

### Claim 3 (depends on 1)

The method for recording a duration of use of a data block of a non-volatile memory according to claim 1, wherein the step of receiving and writing data into one of the in-use data block comprises steps of:
determining whether the data is written into one of the empty data blocks; and
if no, writing the data into the in-use data block, calculating a difference between a current time and a prior program time to obtain a time gap, updating the time interval according to the time gap and a prior time interval, and updating the program time to the current time.

### Claim 4 (depends on 1)

The method for recording a duration of use of a data block of a non-volatile memory according to claim 1, wherein the step of receiving and writing data into one of the in-use data block further comprises steps of:
determining whether the data is written into one of the empty data blocks; and
if no, writing the data into the in-use data block, referring a latest data page in the in-use data block as a prior data page, reading the prior program time and the prior time interval of the prior data page, obtaining the time gap according to a difference between the current time and the prior program time, updating the time interval according to the time gap and the prior time interval, and updating the program time to the current time.

### Claim 5

A method for managing a data block of a non-volatile memory, wherein the non-volatile memory comprises a plurality of in-use data blocks and empty data blocks, the data block is either the in-use data blocks or the empty data blocks, the method comprises steps of:
generating a duration of use of the in-use data block according to a method for recording the duration of use of the data block of the non-volatile memory; and
changing an empty data block into a second in-use data block and writing data saved in the in-use data block into the second in-use data block when the duration of use is greater than a threshold,
wherein the duration of use is a difference between a current time and an initial program time of the in-use data block.

### Claim 6 (depends on 5)

The method for managing a data block of a non-volatile memory according to claim 5, wherein the step of generating a duration of use of the in-use data block according to a method for recording the duration of use of the data block of the non-volatile memory comprises steps of:
obtaining a program time and a time interval of a latest data page in the data block; and
calculating a difference between the current time and the program time to obtain a time gap and obtaining the duration of use according to the time gap and the time interval.

### Claim 7

A data storage device, comprising:
a non-volatile memory, comprising a plurality of data blocks, wherein the data blocks are either in-use data blocks or empty data blocks; and
a memory controller, electrically coupled to the non-volatile memory and configured to write data, program times and time intervals of the data into the in-use data blocks, wherein the time interval is a difference between the program time and an initial program time of one of the in-use data blocks.

### Claim 8 (depends on 7)

The data storage device according to claim 7, wherein when a duration of use of one of the in-use data blocks is greater than a threshold, the memory controller is configured to write the data saved in the in-use data block into a second in-use data block selected from one of the empty data blocks, wherein the duration of use is a difference between a current time and the initial program time.

### Claim 9 (depends on 7)

The data storage device according to claim 7, wherein when the data is written into a second in-use data block, the memory controller is configured to reset the time interval and update the program time to a current time, wherein the current time is the initial program time.

### Claim 10 (depends on 7)

The data storage device according to claim 7, wherein when the data is written into the in-use data block, the memory controller is configured to calculate a difference between the current time and a prior program time to obtain a time gap, update the time interval according to the time gap and a prior time interval, and update the program time to a current time.

### Claim 11 (depends on 10)

The data storage device according to claim 10, wherein when the data is written into the in-use data block, a latest data page in the in-use data block is referred to as a prior data page, read a prior program time and a prior time interval of the prior data page, obtain the time gap according to a difference between the current time and the prior program time, update the time interval according to the time gap and the prior time interval, and update the program time to the current time.

### Claim 12 (depends on 7)

The data storage device according to claim 7, wherein each of the plurality of data blocks comprises a plurality of word lines, each of the plurality of word lines comprises a plurality of data pages and a spare area, the word line is configured for storing the data, and the spare area is configured for storing the program time and the time interval of the data.

### Claim 13 (depends on 7)

The data storage device according to claim 7, wherein the memory controller is configured to read the program time and the time interval of a latest data page in each of the data blocks, obtain a time gap according to a current time and the program time, and obtain a duration of use according to the time gap and the time interval.

### Claim 14 (depends on 7)

The data storage device according to claim 7, wherein the data storage device further comprises:
a first communication interface configured for receiving the data from a host and the controller is configured to write the data into the in-use data blocks.
