IP Library Granted Patent US 11,416,365
Granted Patent B2
US 11,416,365 · App. 17/138,007 · Granted Aug 16, 2022

Method and system for open NAND block detection and correction in an open-channel SSD

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F11/3034G06F3/064G06F3/0619G06F3/0631G06F3/0688G06F7/582G06F11/0757G06F11/1004G06F11/1076
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 11,416,365
App. No.
17/138,007
Granted
Aug 16, 2022
Kind
B2
Abstract

One embodiment provides a system which facilitates data management. The system allocates a superblock of a storage device, wherein the superblock is in an open state. The system writes data to the superblock. The system monitors, by a controller of the storage device, an amount of time that the superblock remains in the open state. Responsive to detecting a failure associated with a flash translation layer (FTL) module, the system determines that the monitored amount of time exceeds a predetermined threshold, and seals, by the controller, the superblock by writing directly to a respective free page in the superblock while bypassing one or more data-processing modules.

Claims (105)

1. A computer-implemented method, comprising:

allocating a superblock of a storage device, wherein the superblock is in an open state;

writing data to the superblock;

monitoring, by a controller of the storage device, an amount of time that the superblock remains in the open state; and

responsive to detecting a failure associated with a flash translation layer (FTL) module:

determining that the monitored amount of time exceeds a predetermined threshold; and

sealing, by the controller, the superblock by writing directly to a respective free page in the superblock while bypassing one or more data-processing modules.

2. The method of claim 1 , wherein sealing, by the controller, the superblock further comprises:

generating, for the respective free page, a pseudo-random number sequence and a first logical block address (LBA);

writing the pseudo-random number sequence to the respective free page in the superblock;

writing the first LBA to an end of the respective free page, wherein the first LBA indicates that the respective free page includes the pseudo-random number sequence;

writing the first LBA in a log of the superblock, wherein the log comprises LBAs associated with the superblock; and

setting the superblock to a sealed state,

wherein the pseudo-random number sequence and the first LBA are written directly to the respective free page while bypassing the one or more data-processing modules.

3. The method of claim 1 , wherein the data-processing modules include one or more of:

a cyclic redundancy check (CRC) module;

a data-protecting module;

a redundant array of independent disks (RAID)-encoding module;

an error correction code (ECC)-encoding module; and

a data-modulating module.

4. The method of claim 1 ,

wherein the controller comprises a firmware component, which includes an operator component, a number generator, a watcher component, and a command component,

wherein monitoring the amount of time that the superblock remains in the open state is performed by the watcher component, and

wherein determining that the monitored amount of time exceeds the predetermined threshold is performed by the command component.

5. The method of claim 4 , wherein responsive to the command component determining that the monitored amount of time exceeds the predetermined threshold, the method further comprises:

sending, by the command component to the operator component, a first command to seal the superblock;

sending, by the operator component in response to the first command, a second command for the number generator component; and

generating, by the number generator in response to the second command, the pseudo-random number sequence for the respective free page in the superblock.

6. The method of claim 1 , wherein responsive to detecting no failure associated with the FTL module, the method further comprises:

determining, by the FTL module, a condition which triggers sealing the superblock;

generating, for the respective free page in the superblock, dummy data and a first LBA;

writing the dummy data to the respective free page;

writing the first LBA to an end of the respective free page, wherein the first LBA indicates that the respective free page includes the dummy data;

writing the first LBA in a log of the superblock, wherein the log comprises LBAs associated with the superblock; and

setting the superblock to a sealed state,

wherein the dummy data and the first LBA are written directly to the respective free page while bypassing the one or more data-processing modules.

7. The method of claim 1 ,

wherein allocating the superblock is performed by the FTL module, and

wherein the FTL module is associated with a host or an entity which is distinct from the storage device.

8. The method of claim 7 ,

wherein the superblock is allocated in response to a first incoming write request, and

wherein the data written to the superblock is associated with the first incoming write request.

9. The method of claim 8 , further comprising:

responsive to processing a second incoming write request and determining that the superblock is full, allocating, by the FTL module, another superblock of the storage device to which to write data associated with the second incoming write request.

10. A computer 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, the method comprising:

allocating a superblock of a storage device, wherein the superblock is in an open state;

writing data to the superblock;

monitoring, by a controller of the storage device, an amount of time that the superblock remains in the open state; and

responsive to detecting a failure associated with a flash translation layer (FTL) module:

determining that the monitored amount of time exceeds a predetermined threshold; and

sealing, by the controller, the superblock by writing directly to a respective free page in the superblock while bypassing one or more data-processing modules.

11. The computer system of claim 10 , wherein sealing, by the controller, the superblock further comprises:

generating, for the respective free page, a pseudo-random number sequence and a first logical block address (LBA);

writing the pseudo-random number sequence to the respective free page in the superblock;

writing the first LBA to an end of the respective free page, wherein the first LBA indicates that the respective free page includes the pseudo-random number sequence;

writing the first LBA in a log of the superblock, wherein the log comprises LBAs associated with the superblock; and

setting the superblock to a sealed state,

wherein the pseudo-random number sequence and the first LBA are written directly to the respective free page while bypassing the one or more data-processing modules.

12. The computer system of claim 10 , wherein the data-processing modules include one or more of:

a cyclic redundancy check (CRC) module;

a data-protecting module;

a redundant array of independent disks (RAID)-encoding module;

an error correction code (ECC)-encoding module; and

a data-modulating module.

13. The computer system of claim 10 ,

wherein the controller comprises a firmware component, which includes an operator component, a number generator, a watcher component, and a command component,

wherein monitoring the amount of time that the superblock remains in the open state is performed by the watcher component, and

wherein determining that the monitored amount of time exceeds the predetermined threshold is performed by the command component.

14. The computer system of claim 13 , wherein responsive to the command component determining that the monitored amount of time exceeds the predetermined threshold, the method further comprises:

sending, by the command component to the operator component, a first command to seal the superblock;

sending, by the operator component in response to the first command, a second command for the number generator component; and

generating, by the number generator in response to the second command, the pseudo-random number sequence for the respective free page in the superblock.

15. The computer system of claim 10 , wherein responsive to detecting no failure associated with the FTL module, the method further comprises:

determining, by the FTL module, a condition which triggers sealing the superblock;

generating, for the respective free page in the superblock, dummy data and a first LBA;

writing the dummy data to the respective free page;

writing the first LBA to an end of the respective free page, wherein the first LBA indicates that the respective free page includes the dummy data;

writing the first LBA in a log of the superblock, wherein the log comprises LBAs associated with the superblock; and

setting the superblock to a sealed state,

wherein the dummy data and the first LBA are written directly to the respective free page while bypassing the one or more data-processing modules.

16. The computer system of claim 10 ,

wherein allocating the superblock is performed by the FTL module, and

wherein the FTL module is associated with a host or an entity which is distinct from the storage device.

17. The computer system of claim 16 ,

wherein the superblock is allocated in response to a first incoming write request, and

wherein the data written to the superblock is associated with the first incoming write request.

18. The computer system of claim 17 , wherein the method further comprises:

responsive to processing a second incoming write request and determining that the superblock is full, allocating, by the FTL module, another superblock of the storage device to which to write data associated with the second incoming write request.

19. An apparatus, comprising:

a block-allocating module configured to allocate a superblock of a storage device, wherein the superblock is in an open state;

a data-writing module configured to write data to the superblock;

a block-monitoring module configured to monitor an amount of time that the superblock remains in the open state;

an FTL failure-detecting module configured to detect a failure associated with a flash translation layer (FTL) module,

wherein responsive to the FTL failure-detecting module detecting a failure associated with a flash translation layer (FTL) module, the block-monitoring module is configured to determine that the monitored amount of time exceeds a predetermined threshold; and

a block-sealing module configured to seal the superblock by writing directly to a respective free page in the superblock while bypassing one or more data-processing modules.

20. The apparatus of claim 19 , further comprising:

a pseudo-random number sequence-generating module configured to generate, for the respective free page, a pseudo-random number sequence;

an LBA-managing module configured to generate, for the respective page, a first logical block address (LBA),

wherein the data-writing module is further configured to write the pseudo-random number sequence to the respective free page in the superblock and to write the first LBA to an end of the respective free page, and

wherein the first LBA indicates that the respective free page includes the pseudo-random number sequence; and

an LBA-managing module configured to write the first LBA in a log of the superblock, wherein the log comprises LBAs associated with the superblock,

wherein the block-monitoring module is further configured to set the superblock to a sealed state,

wherein the pseudo-random number sequence and the first LBA are written directly to the respective free page while bypassing the one or more data-processing modules.

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 Dec 30, 2020
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 054780/0759 →
Continuity (1)
Related Publication 20220206915A1 · Jun 30, 2022