IP Library › Granted Patent US 11,561,870
Granted Patent B2
US 11,561,870 · App. 16/834,350 · Granted Jan 24, 2023

SSD with compressed superblock mapping table

Inventor: Amit Jain (Cupertino, CA)
Assignee: Kioxia Corporation
G06F11/2094G06F3/064G06F3/068G06F3/0619G06F2201/82
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,561,870
App. No.
16/834,350
Granted
Jan 24, 2023
Kind
B2
Abstract

An improved solid state drive (SSD). The SSD comprising a plurality of non-volatile memory dies, each configured to store at least one block of data associated with one of a plurality of superblocks each containing a plurality of blocks; a volatile memory; and a memory controller. The memory controller configured to store a bit map associated with a first superblock of the plurality of superblocks in the volatile memory, wherein the bit map is configured to indicate whether each of the plurality of blocks is a replacement block, store a block address list in the volatile memory, the block address list is configured to store an address of one or more replacement blocks, and store a replacement block index in the volatile memory associated with the first superblock of the plurality of superblocks, the replacement block index corresponding to the location of an address of a first replacement block of the first superblock in the block address list.

Claims (45)

1. A solid state drive (SSD) comprising:

a plurality of non-volatile memory dies, each configured to store at least one block of data associated with one of a plurality of superblocks each containing a plurality of blocks;

a volatile memory; and

a memory controller configured to:

store a bit map associated with a first superblock of the plurality of superblocks in the volatile memory, wherein the bit map is configured to indicate whether each of the plurality of blocks is a replacement block,

store a block address list in the volatile memory, the block address list is configured to store an address of one or more replacement blocks, and

store a replacement block index in the volatile memory associated with the first superblock of the plurality of superblocks, the replacement block index corresponding to a location of an address of a first replacement block of the first superblock in the block address list.

2. The SSD of claim 1 , wherein the memory controller is further configured to:

determine if a block of the plurality of blocks in the first superblock is a defective block.

3. The SSD of claim 2 , wherein the memory controller is further configured, upon determining that the block is a defective block, to:

set a bit of the bit map to indicate the block is a replacement block.

4. The SSD of claim 3 , wherein the controller is further configured to, at a first predetermined time period:

associate a block of a spare superblock with the first superblock; and

store an address of the block of the spare superblock in the block address list.

5. The SSD of claim 4 , wherein the first predetermined time period is part of an initial boot-up sequence of the SSD.

6. The SSD of claim 1 , for a given replacement block, the memory controller is further configured to:

determine, using the bit map, a replacement block index offset for the given replacement block; and

determine a physical address of the given replacement block using the index offset, the replacement block index, and the block address list.

7. The SSD of claim 1 , for a non-defective block of the first superblock, the controller is further configured to:

determine a physical address of the non-defective block using a fixed address algorithm based on a logical address of the non-defective block.

8. The SSD of claim 7 , wherein the fixed algorithm is based on plane and die information derived from the logical address of the non-defective block.

9. The SSD of claim 8 , wherein the plurality of non-volatile memory dies are organized into a plurality of channels and the fixed algorithm is further based on a channel of the non-defective block.

10. The SSD of claim 1 , wherein the volatile memory is static random access memory.

11. A method of maintaining mapping information in a solid state drive (SSD), the method comprising:

assigning a plurality of blocks to either one of a plurality of superblocks or a spare superblock;

storing a bit map associated with the one superblock in a volatile memory of the SSD, wherein the bit map indicates whether each of the plurality of blocks in the one superblock is a replacement block;

storing a block address list in the volatile memory of the SSD, the block address list storing an address of one or more replacement blocks;

storing a replacement block index associated with the one superblock in the volatile memory of the SSD, the replacement block index indicating a location of an address of a first replacement block of the one superblock in the block address list.

12. The method of claim 11 , the method further comprising:

determining if a block of a plurality of blocks in the one superblock is a defective block.

13. The method of claim 12 , the method further comprising, upon determining that the block is a defective block:

setting a bit of the bit map to indicate the block is a replacement block.

14. The method of claim 13 , the method further comprising, at a first predetermined time period:

associating a block of the spare superblock with the one superblock; and

storing an address of the one block of the spare superblock list in the block address list.

15. The method of claim 14 , wherein the first predetermined time period is part of an initial boot-up sequence of the SSD.

16. The method of claim 11 , method further comprising, for a given replacement block:

determining, using the bit map, a replacement block index offset for the given replacement block; and

determining a physical address of the given replacement block using the replacement block index offset, the replacement block index, and the replacement block list.

17. The method of claim 11 , method further comprising, for a non-defective block:

determining a physical address of the non-defective block using a fixed address algorithm based on a logical address of the non-defective block.

18. The method of claim 17 , wherein the fixed algorithm is based on plane and die information derived from the logical address of the non-defective block.

19. The method of claim 18 , the method further comprising:

assigning each of the plurality of blocks to one or more channels, wherein the fixed algorithm is further based on a channel of the non-defective block.

20. The method of claim 11 , wherein the volatile memory is static random access memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2020
From: JAIN, AMIT
To: KIOXIA AMERICA, INC.
Reel/Frame 052633/0551 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2020
From: KIOXIA AMERICA, INC.
To: KIOXIA CORPORATION
Reel/Frame 052633/0620 →
Continuity (1)
Related Publication 20210303424A1 · Sep 30, 2021
Cited By (1)
US 12,481,552