IP Library Granted Patent US 10,891,065
Granted Patent B2
US 10,891,065 · App. 16/371,537 · Granted Jan 12, 2021

Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F3/064G06F3/061G06F3/0616G06F3/0679G06F12/0246G06F12/1009
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,891,065
App. No.
16/371,537
Granted
Jan 12, 2021
Kind
B2
Abstract

One embodiment facilitates data placement. During operation, the system monitors a condition of a plurality of blocks of a non-volatile memory. The system determines that a condition of a first block falls below a first predetermined threshold, wherein the first block has a first capacity. The system formats the first block to obtain a second block which has a second capacity, wherein the second capacity is less than the first capacity.

Claims (74)

1. A computer-implemented method for facilitating data placement, the method comprising:

monitoring a condition of a plurality of blocks of a non-volatile memory;

determining that a condition of a first block falls below a first predetermined threshold, wherein the first block has a first capacity;

formatting the first block to obtain a second block which has a second capacity, wherein the second capacity is less than the first capacity;

determining that a condition of the second block falls below a second predetermined threshold;

formatting the second block to obtain a third block which has a third capacity, wherein the third capacity is less than the second capacity; and

responsive to determining that a condition of the third block falls below a third predetermined threshold, formatting the third block to obtain a fourth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

2. The method of claim 1 , further comprising:

determining that the condition of the second block falls below the third predetermined threshold; and

formatting the second block to obtain a fifth block which has a third capacity, wherein the third capacity is less than the second capacity.

3. The method of claim 2 , further comprising:

determining that the condition of the first block falls below the third predetermined threshold; and

formatting the first block to obtain a sixth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

4. The method of claim 3 , further comprising:

flushing data stored in the non-volatile cache directly to an available block of the non-volatile memory without the controller decoding or encoding the data.

5. The method of claim 3 , further comprising:

prior to formatting the first, second, or third block, reading out data stored in the first, second, or third block to be stored in a data buffer.

6. The method of claim 3 , wherein the non-volatile memory comprises:

a first type of storage with blocks which have the first capacity and store a first number of bits per cell, wherein the first number is four;

a second type of storage with blocks which have the second capacity and store a second number of bits per cell, wherein the second number is two;

a third type of storage with blocks which have the third capacity and store a third number of bits per cell, wherein the third number is one; and

the non-volatile cache, which has the third capacity and further stores data of an inconsistent or irregular size.

7. The method of claim 6 , further comprising:

managing, by a flash translation layer module, a mapping table of logical addresses to physical addresses across the first, second, and third types of storage of the non-volatile memory.

8. The method of claim 1 , wherein monitoring the condition of the plurality of blocks of the non-volatile memory further comprises:

generating a score for each block by dynamically assessing the condition of each block.

9. A computer system for facilitating data placement, the system comprising:

a processor; and

a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method, wherein the computer system is a storage device, the method comprising:

monitoring a condition of a plurality of blocks of a non-volatile memory;

determining that a condition of a first block falls below a first predetermined threshold, wherein the first block has a first capacity;

formatting the first block to obtain a second block which has a second capacity, wherein the second capacity is less than the first capacity;

determining that a condition of the second block falls below a second predetermined threshold;

formatting the second block to obtain a third block which has a third capacity, wherein the third capacity is less than the second capacity; and

responsive to determining that a condition of the third block falls below a third predetermined threshold, formatting the third block to obtain a fourth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

10. The computer system of claim 9 , wherein the method further comprises:

determining that the condition of the second block falls below the third predetermined threshold; and

formatting the second block to obtain a fifth block which has a third capacity, wherein the third capacity is less than the second capacity.

11. The computer system of claim 10 , wherein the method further comprises:

determining that the condition of the first block falls below the third predetermined threshold; and

formatting the first block to obtain a sixth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

12. The computer system of claim 11 , wherein the method further comprises:

flushing data stored in the non-volatile cache directly to an available block of the non-volatile memory without the controller decoding or encoding the data.

13. The computer system of claim 11 , wherein the method further comprises:

prior to formatting the first, second, or third block, reading out data stored in the first, second, or third block to be stored in a data buffer.

14. The computer system of claim 11 , wherein the non-volatile memory comprises:

a first type of storage with blocks which have the first capacity and store a first number of bits per cell, wherein the first number is four;

a second type of storage with blocks which have the second capacity and store a second number of bits per cell, wherein the second number is two;

a third type of storage with blocks which have the third capacity and store a third number of bits per cell, wherein the third number is one; and

the non-volatile cache, which has the third capacity and further stores data of an inconsistent or irregular size.

15. The computer system of claim 14 , wherein the method further comprises:

managing, by a flash translation layer module, a mapping table of logical addresses to physical addresses across the first, second, and third types of storage of the non-volatile memory.

16. The computer system of claim 9 , wherein monitoring the condition of the plurality of blocks of the non-volatile memory further comprises:

generating a score for each block by dynamically assessing the condition of each block.

17. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

monitoring a condition of a plurality of blocks of a non-volatile memory;

determining that a condition of a first block falls below a first predetermined threshold, wherein the first block has a first capacity;

formatting the first block to obtain a second block which has a second capacity, wherein the second capacity is less than the first capacity;

determining that a condition of the second block falls below a second predetermined threshold;

formatting the second block to obtain a third block which has a third capacity, wherein the third capacity is less than the second capacity; and

responsive to determining that a condition of the third block falls below a third predetermined threshold, formatting the third block to obtain a fourth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

18. The storage medium of claim 17 , wherein the method further comprises:

determining that the condition of the second block falls below the third predetermined threshold;

formatting the second block to obtain a fifth block which has a third capacity, wherein the third capacity is less than the second capacity;

determining that the condition of the first block falls below the third predetermined threshold; and

formatting the first block to obtain a sixth block which has the third capacity and comprises a non-volatile cache of the non-volatile memory.

19. The storage medium of claim 18 , further comprising:

flushing data stored in the non-volatile cache directly to an available block of the non-volatile memory without the controller decoding or encoding the data; and

prior to formatting the first, second, or third block, reading out data stored in the first, second, or third block to be stored in a data buffer.

20. The storage medium of claim 18 , wherein the non-volatile memory comprises:

a first type of storage with blocks which have the first capacity and store a first number of bits per cell, wherein the first number is four;

a second type of storage with blocks have the second capacity and which store a second number of bits per cell, wherein the second number is two;

a third type of storage with blocks which have the third capacity and store a third number of bits per cell, wherein the third number is one; and

the non-volatile cache, which has the third capacity and further stores data of an inconsistent or irregular size.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 048772/0724 →
Continuity (1)
Related Publication 20200310645A1 · Oct 1, 2020