# US 10,310,930 B2 · Solid state disk using method and apparatus

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

- Number: US 10,310,930 B2
- Document ID: US10310930B2
- Status: Granted
- Kind: B2
- Application number: 15/189,857
- Filed: 2016-06-22
- Published: 2016-10-13
- Granted: 2019-06-04
- Earliest claimed: 2013-12-23
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Jianhua Zhou
- Web page: https://patentgrep.com/patent/US10310930B2

## CPC

- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- G06F 3/0611: {in relation to response time}
- 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/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units 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 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 11/3419: {by assessing time}
- G06F 2212/1036: Life time enhancement
- G06F 2212/214: Solid state disk
- G06F 2212/7204: Capacity control, e.g. partitioning, end-of-life degradation
- G06F 2212/7206: Reconfiguration of flash memory system
- G06F 2212/7211: Wear leveling
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A solid state disk using method includes: determining a latency of the data block to-be-operated according to a load balancing table of the solid state disk; determining whether the latency of the data block is greater than a warning value, where the warning value is less than a typical latency, which is a preset latency indicating an operation on a data block in the solid state disk fails; and not performing the operation on the data block if the latency of the data block is greater than the warning value. By using this method, real load balancing from the perspective of physical property is achieved, bad blocks are reduced, use of reserved blocks is reduced, thereby prolonging the service life of the SSD.

## Claims

### Claim 1

A method of using a solid state disk, wherein a load balancing table for recording latencies of data blocks of the solid state disk is preset for the solid state disk, and the method comprises:
randomly selecting a data block in the solid state disk;
determining a latency of the randomly selected data block according to the load balancing table, wherein the latency is a time duration for performing an operation, and the operation comprises an erase operation or a write operation; and
determining a data block to-be-operated in the solid state disk for performing the operation according to the latency of the randomly selected data block and multiple latency thresholds, wherein the multiple latency thresholds represent an ascending series of thresholds,
wherein the determining the data block to-be-operated in the solid state disk for performing the operation comprises:
determining whether a latency of the randomly selected data block reaches a current level of threshold of the multiple latency thresholds;
selecting the randomly selected data block as the data block to-be-operated when the latency of the selected data block is less than the current level of threshold;
randomly selecting another data block as the randomly selected data block when the latency of the selected data block is equal to or greater than the current level of threshold; and
continuing to determine the data block to-be-operated in the solid state disk for performing the operation.

### Claim 2 (depends on 1)

The method according to claim 1, wherein after the step of determining the latency of the randomly selected data block, the method further comprises updating the latency of the operated data block in the load balancing table according to the obtained latency.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the determining the data block to-be-operated in the solid state disk for performing the operation further comprises:
when a latency of substantially all data blocks of the solid state disk reaches the current level of threshold, assigning a next level of threshold larger than the current level of threshold as a new current level of threshold.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining whether the latency of the randomly selected data block is greater than a warning value, wherein the warning value succeeds the multiple latency thresholds; and
prohibiting performing the operation on the randomly selected data block when the latency of the selected data block is greater than the warning value.

### Claim 5 (depends on 4)

The method according to claim 4, wherein after the step of prohibiting performing the operation on the randomly selected data block, the method further comprises:
recording the data block to-be-operated in a preset potential bad block table, wherein the potential bad block table is used to record a data block on which operations need to be reduced.

### Claim 6

A solid state disk using method, comprising:
selecting a data block to perform an operation according to latencies of data blocks of the solid state disk in a load balancing table of a solid state disk;
performing the operation on the data block, wherein the operation comprises an erase operation or a write operation;
recording, in the load balancing table, a latency of the operated data block after the operation is performed, wherein the latency is a time duration for performing the operation on the data block;
determining whether the latency of the operated data block is greater than a warning value, wherein the warning value is less than a typical latency, and the typical latency is a preset latency indicating a data block in the solid state disk fails to be operated; and
recording the operated data block in a preset potential bad block table if the latency of the operated data block is greater than the warning value,
wherein multiple latency thresholds precede the warning value, and the multiple latency thresholds represent an ascending series of thresholds that, when the latency of the operated data block exceeds an individual latency threshold, represents a degradation in the latency of the operated data block,
wherein selection of the data block to perform the operation is done according to the multiple latency thresholds and the load balancing table of a solid state disk,
wherein the selection of the data block to perform the operation according to the multiple latency thresholds and the load balancing table of a solid state disk comprises:
determining a data block to-be-operated in the solid state disk for performing the operation according to the latency of the data block to-be-operated and multiple latency thresholds, and
wherein the determining the data block to-be-operated in the solid state disk for performing the operation comprises:
randomly selecting a test data block in the solid state disk;
determining whether a latency of the test data block reaches a current level of threshold of the multiple latency thresholds;
selecting the test data block as the data block to perform the operation when the latency of the test data block is less than the current level of threshold; and
randomly selecting another data block as the test data block when the latency of the test data block is equal to or greater than the current level of threshold; and
continuing to determine the data block to perform the operation in the solid state disk.

### Claim 7 (depends on 6)

The method of claim 6, wherein the determining the data block to-be-operated in the solid state disk for performing the operation further comprises:
when a latency of substantially all data blocks of the solid state disk reaches the current level of threshold, assigning a next level of threshold larger than the current level of threshold as a new current level of threshold.

### Claim 8

A solid state disk presets a load balancing table for recording latencies of data blocks of the solid state disk, the solid state disk comprising:
a processor; and
a non-transitory computer-readable storage medium coupled to the processor and storing programming instructions for execution by the processor, the programming instructions instruct the processor for:
randomly selecting a data block in the solid state disk;
determining a latency of the randomly selected data block according to the load balancing table, wherein the latency is a time duration for performing an operation, and the operation comprises an erase operation or a write operation; and
determining a data block to-be-operated in the solid state disk for performing the operation according to the latency of the random selected data block and multiple latency thresholds, wherein the multiple latency thresholds represent an ascending series of thresholds,
wherein the determining the data block to-be-operated in the solid state disk for performing the operation comprises:
determining whether a latency of the randomly selected data block reaches a current level of threshold of the multiple latency thresholds;
selecting the randomly selected data block as the data block to-be-operated when the latency of the selected data block is less than the current level of threshold;
randomly selecting another data block as the randomly selected data block when the latency of the selected data block is equal to or greater than the current level of threshold; and
continuing to determine the data block to-be-operated in the solid state disk for performing the operation.

### Claim 9 (depends on 8)

The solid state disk according to claim 8, wherein after performing the operation on the data block, the processor is further instructed to:
obtain a latency of the operated data block; and
update the latency of the operated data block in the load balancing table according to the obtained latency.

### Claim 10 (depends on 8)

The solid state disk of claim 8, wherein the determination of the data block to-be-operated in the solid state disk for performing the operation further comprises:
when a latency of substantially all data blocks of the solid state disk reaches the current level of threshold, assigning a next level of threshold larger than the current level of threshold as a new current level of threshold.

### Claim 11 (depends on 8)

The solid state disk of claim 8, wherein the non-transitory computer readable storage medium contains further instructions that when executed by the processor, configured the processor for:
determining whether the latency of the randomly selected data block is greater than a warning value, wherein the warning value succeeds the multiple latency thresholds; and
prohibiting performing the operation on the randomly selected data block when the latency of the selected data block is greater than the warning value.

### Claim 12 (depends on 11)

The solid state disk according to claim 11, wherein after prohibiting performing the operation on the data block, the processor is configured for:
recording the data block in a preset potential bad block table, wherein the potential bad block table is used to record a data block on which operations need to be reduced.
