IP Library Granted Patent US 10,296,452
Granted Patent B2
US 10,296,452 · App. 15/152,352 · Granted May 21, 2019

Data separation by delaying hot block garbage collection

Inventors: Frederick K. H. Lee (Mountain View, CA); Xiangyu Tang (San Jose, CA); Lingqi Zeng (San Jose, CA); Yunhsiang Hsueh (San Jose, CA)
Assignee: SK hynix Inc.
G06F12/0246G06F3/061G06F3/064G06F3/0605G06F3/0616G06F3/0652G06F3/0679G06F2212/214G06F2212/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,296,452
App. No.
15/152,352
Granted
May 21, 2019
Kind
B2
Abstract

Memory systems may include a memory including a plurality of blocks, and a controller suitable for determining a pool of blocks from the plurality of blocks as garbage collection (GC) victim block candidates based on a number of valid pages left in each of the plurality of blocks, and selecting a block from the pool of blocks having a minimum number of valid pages as a victim block for garbage collection.

Claims (36)

1. A method comprising:

determining, with a controller, a pool of blocks from a plurality of blocks of a memory as garbage collection (GC) victim block candidates, the pool of blocks representing a select number of the oldest closed blocks, based on a number of valid pages left in each of the plurality of blocks;

selecting, with the controller, from the pool of blocks, a block having a minimum number of valid pages as a pool victim block, which is a candidate for garbage collection;

selecting, from all closed blocks, a block having the minimum number of valid pages as an overall victim block, which is a candidate for garbage collection;

determining a ratio of a number of valid pages in the pool victim block and a number of valid pages in the overall victim block; and

selecting a final victim block from the pool victim block and the overall victim block according to at least the ratio.

2. The method of claim 1 , wherein the pool of blocks has a size based on traffic patterns of hot and cold data and an over-provisioning value of the memory.

3. The method of claim 1 , wherein the pool victim block is selected as the block from the pool of blocks with the least number of valid pages.

4. The method of claim 1 , wherein the pool of blocks has a size that is at least about 5% of the plurality of blocks.

5. The method of claim 1 , wherein the overall victim block is selected from all of the closed blocks as the block with the least number of valid pages.

6. The method of claim 5 , wherein the ratio represents a GC threshold.

7. The method of claim 6 , wherein the GC threshold is a function of traffic patterns of hot and cold data, an over-provisioning value, and a size of the pool of blocks.

8. A memory device, comprising:

a plurality of blocks;

a pool of blocks from the plurality of blocks determined as garbage collection (GC) victim block candidates, the pool of blocks representing a select number of the oldest closed blocks, based on a number of valid pages left in each of the plurality of blocks;

a pool victim block selected, from the pool of blocks, as a block having a minimum number of valid pages, and which is a candidate for GC;

an overall victim block selected, from all closed blocks, as a block having the minimum number of valid pages, and which is a candidate for GC;

a ratio determined as of a number of valid pages in the pool victim block and a number of valid pages in the overall victim block; and

a final victim block selected from the pool victim block and the overall victim block according to at least the ratio.

9. The memory device of claim 8 , wherein the pool of blocks has a size based on traffic patterns of hot and cold data and an over-provisioning value of the memory device.

10. The memory device of claim 8 , wherein the pool victim block is selected as the block from the pool of blocks with the least number of valid pages.

11. The memory device of claim 8 , wherein the pool of blocks has a size that is at least about 5% of the plurality of blocks.

12. The memory device of claim 8 , wherein the overall victim block is selected from all of the closed blocks as the block with the least number of valid pages.

13. A memory system, comprising:

a memory including a plurality of blocks; and

a controller suitable for:

determining a pool of blocks from the plurality of blocks as garbage collection (GC) victim block candidates, the pool of blocks representing a select number of the oldest closed blocks, based on a number of valid pages left in each of the plurality of blocks, and selecting, from the pool of blocks, a block having a minimum number of valid pages as a pool victim block, which is a candidate for garbage collection,

selecting, from all closed blocks, a block having the minimum number of valid pages as an overall victim block, which is a candidate for garbage collection,

determining a ratio of a number of valid pages in the pool victim block and to a number of valid pages in the overall victim block, and

selecting a final victim block from the pool victim block and the overall victim block according to at least the ratio.

14. The memory system of claim 13 , wherein the pool of blocks has a size based on traffic patterns of hot and cold data and an over-provisioning value of the memory system.

15. The memory system of claim 13 , wherein the pool victim block is selected as the block from the pool of blocks with the least number of valid pages.

16. The memory system of claim 13 , wherein the pool of blocks has a size that is at least about 5% of the plurality of blocks.

17. The memory system of claim 13 , wherein the overall victim block is selected from all of the closed blocks as the block with the least number of valid pages.

18. The memory system of claim 17 , wherein the ratio represents a GC threshold.

19. The memory system of claim 18 , wherein the GC threshold is a function of traffic patterns of hot and cold data, an over-provisioning value, and a size of the pool of blocks.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2019
From: LEE, FREDERICK K.H.; TANG, XIANGYU; ZENG, LINGQI; HSUEH, YUNHSIANG
To: SK HYNIX MEMORY SOLUTIONS INC.
Reel/Frame 048759/0753 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
Continuity (2)
Provisional Application 62159714 · May 11, 2015
Related Publication 20160335179A1 · Nov 17, 2016