IP Library Granted Patent US 10,838,859
Granted Patent B2
US 10,838,859 · App. 16/141,899 · Granted Nov 17, 2020

Recency based victim block selection for garbage collection in a solid state device (SSD)

Inventors: Vishwas Saxena (Bangalore, IN); Abhijit K. Rao (Bangalore, IN)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0269G06F2212/1044G06F2212/7205
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,838,859
App. No.
16/141,899
Granted
Nov 17, 2020
Kind
B2
Abstract

Methods and apparatus for controlling garbage collection in solid state devices (SSDs) are provided. Once such apparatus includes a non-volatile memory (NVM), and a controller communicatively coupled to a host device and the NVM, and configured to calculate an invalidation factor for each of a plurality of blocks in the NVM, wherein the invalidation factor is determined based on a percentage of invalid pages in a respective block of the plurality of blocks and a most recent time of invalidation of one or more pages in the respective block; classify each block of the plurality of blocks into one of three categories based on the calculated invalidation factor; and perform a garbage collection operation for the NVM, wherein the garbage collection operation includes selecting a source block for the garbage collection operation based on the classifications of the plurality of blocks.

Claims (36)

1. A method comprising:

determining an invalidation factor for each block in a plurality of blocks in a non-volatile memory (NVM), wherein the invalidation factor is determined based on a number of invalid pages in a respective block and a most recent time of invalidation of one or more pages in the block, wherein the most recent time of invalidation is based on a difference between a current system time of the NVM and a time of invalidation of at least one page in the respective block, wherein the invalidation factor for the respective block is a product of a percentage of the invalid pages in the respective block and the most recent time of invalidation of the respective block;

sorting the plurality of blocks into two or more categories indicating a respective degree of desirability of the block to be used as a source block for a garbage collection operation, where the sorting is based on the invalidation factor for each block; and

performing a garbage collection operation on the NVM including selecting a block as the source block for garbage collection from the plurality of blocks from the two or more categories of blocks in an order from a most desirable category to a least desirable category.

2. The method of claim 1 , wherein the two or more categories of the blocks include cold blocks having a first degree of access, warm blocks having a second degree of access having greater frequency of access than the first degree, and hot blocks having a third degree of access having greater frequency of access than the second degree, wherein the blocks are chosen for garbage collection in order of most desirable to least desirable in an order of cold, warm, and hot categories.

3. The method of claim 1 , wherein each of the plurality of blocks comprises a closed block.

4. The method of claim 1 , wherein the invalidation factor is further based on a percentage of invalid pages that comprises a ratio of a number of invalid pages in a block to the total number of pages in the block.

5. The method of claim 1 , wherein each of the plurality of blocks is a metablock linking two or more individual blocks that are identified by a common logical block address.

6. A data storage apparatus comprising:

a non-volatile memory (NVM); and

a controller communicatively coupled to a host device and the NVM, and configured to:

calculate an invalidation factor for each of a plurality of blocks in the NVM, wherein the invalidation factor is determined based on a percentage of invalid pages in a respective block of the plurality of blocks and a most recent time of invalidation of one or more pages in the respective block, wherein the most recent time of invalidation is based on a difference between a current system time of the NVM and a time of invalidation of a page in the respective block, wherein the invalidation factor for the respective block is a product of the percentage of invalid pages in the respective block and the most recent time of invalidation of the respective block;

classify each block of the plurality of blocks into one of three categories based on the calculated invalidation factor; and

perform a garbage collection operation for the NVM, wherein the garbage collection operation includes selecting a source block for the garbage collection operation based on the classifications of the plurality of blocks.

7. The data storage apparatus of claim 6 :

wherein the three categories comprise a cold block having a first degree of access by the host device, a warm block having a second degree of access by the host device that has a greater frequency of access than the first degree, and a hot block having a third degree of access by the host device that has a greater frequency of access than the second degree; and

wherein the controller is further configured to choose blocks for garbage collection operation in order of most desirable to least desirable in an order of cold, warm, and hot categories.

8. The data storage apparatus of claim 6 , wherein the plurality of blocks comprises closed blocks.

9. The data storage apparatus of claim 6 , wherein the percentage of invalid pages comprises a ratio of a number of invalid pages in a block to the total number of pages in the block.

10. The data storage apparatus of claim 6 , wherein each of the plurality of blocks comprises a metablock linking two or more individual blocks that are identified by a common logical block address.

11. An apparatus comprising:

means for determining an invalidation factor for each block in a plurality of blocks in a non-volatile memory (NVM), wherein the invalidation factor is determined based on a percentage of invalid pages in a respective block and a latest time of invalidation of one or more pages in the respective block, wherein the latest time of invalidation is based on a difference between a current system time of the NVM and a time of invalidation of at least one page in the respective block, wherein the invalidation factor for the respective block is a product of the percentage of invalid pages in the respective block and the latest time of invalidation of the respective block;

means for classifying the plurality of blocks into two or more categories including cold and hot blocks that are used as a source block for a garbage collection operation, where classifying the plurality of blocks is based on the invalidation factor for each block; and

means for performing garbage collection that selects a block as the source block for garbage collection from the plurality of blocks from the two or more categories of blocks in an order from cold to hot blocks.

12. The apparatus of claim 11 , wherein the two or more categories of the blocks further include warm blocks, wherein cold blocks have a first degree of access, warm blocks have a second degree of access having greater frequency of access than the first degree, and hot blocks have a third degree of access having greater frequency of access than the second degree, wherein the blocks are chosen for garbage collection in order of cold, warm, and hot categories.

13. The apparatus of claim 11 , wherein the plurality of blocks comprises a closed list of blocks.

14. The apparatus of claim 11 , wherein the percentage of invalid pages comprises a ratio of a number of invalid pages in a block to the total number of pages in the block.

15. The apparatus of claim 11 , wherein each of the plurality of blocks comprises a metablock linking two or more individual blocks that are identified by a common logical block address.

16. An apparatus for controlling a non-volatile memory device, comprising:

a communications interface configured to provide an interface to the non-volatile memory device; and

a processor coupled to the communications interface and configured to:

calculate an invalidation factor for each block in a plurality of blocks in a non-volatile memory (NVM), wherein the invalidation factor is calculated based on a number of invalid pages in a respective block and a most recent time of invalidation of a page in the respective block, wherein the most recent time of invalidation is based on a difference between a current system time of the NVM and a time of invalidation of a page in the respective block, wherein the invalidation factor for the respective block is a product of a percentage of the invalid pages in the respective block and the most recent time of invalidation of the respective block; and

categorize the plurality of blocks into two or more categorizations indicating a respective degree of desirability of the block to be used as a source block for a garbage collection operation, where the two or more categorizations are based on the invalidation factor for each block.

17. The apparatus of claim 16 , wherein the processor is further configured to perform the garbage collection operation on the NVM including selecting a block as the source block for garbage collection from the plurality of blocks from the two or more categorizations of the blocks in an order from a most desirable category to a least desirable category.

18. The apparatus of claim 16 , wherein the two or more categorizations of the blocks include cold blocks having a first degree of access, warm blocks having a second degree of access having greater frequency of access than the first degree, and hot blocks having a third degree of access having greater frequency of access than the second degree, wherein the blocks are chosen for the garbage collection operation in order of most desirable to least desirable in an order of cold, warm, and hot categories.

19. The apparatus of claim 16 , wherein the invalidation factor is further based on a percentage of invalid pages that comprises a ratio of a number of invalid pages in a block to the total number of pages in the block.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2018
From: SAXENA, VISHWAS; RAO, ABHIJIT K.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046968/0810 →
Cited By (3)
US 12,235,754 US 12,346,562 US 12,353,327