IP Library Granted Patent US 11,048,624
Granted Patent B2
US 11,048,624 · App. 15/821,708 · Granted Jun 29, 2021

Methods for multi-stream garbage collection

Inventors: Stephen G. Fischer (Mountain View, CA); Changho Choi (San Jose, CA); Jason Martineau (Milpitas, CA); Rajinikanth Pandurangan (Fremont, CA)
G06F12/0253G06F3/0608G06F3/0643G06F3/0652G06F3/0659G06F3/0679G06F12/0246G06F2212/7201G06F2212/7205G06F2212/7211
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,048,624
App. No.
15/821,708
Granted
Jun 29, 2021
Kind
B2
Abstract

A Solid State Drive (SSD) is disclosed. The SSD may include storage for data and a host interface logic to receive requests from a host machine. The SSD may also include an SSD controller to manage reading data from and writing data to the storage responsive to the requests. The SSD controller may include a flash translation layer to translate logical addresses to physical addresses, a garbage collection logic to perform garbage collection on an erase block that includes a valid page, a stream logic to manage stream characteristics for the data in the valid page, and a restreamer logic to assign the valid page to a new block based on the stream characteristics.

Claims (41)

1. A Solid State Drive (SSD), comprising:

storage for data;

a host interface logic to receive Input/Output (I/O) requests from a host machine, the I/O requests including a first I/O request associated with a first stream identifier (ID) assigned by the host machine and a second I/O request associated with a second stream ID assigned by the host machine; and

an SSD controller to manage reading data from and writing data to the storage responsive to the I/O requests, the SSD controller including:

a flash translation layer to translate logical addresses in the I/O requests to physical addresses in the storage;

a garbage collection logic to perform garbage collection on an erase block, the erase block including a valid page containing valid data associated with the first stream ID;

a stream logic to manage stream characteristics for the valid data written in the I/O requests to the storage; and

a restreamer logic to assign the valid page to a new block responsive to the stream characteristics for the valid data, the restreamer logic capable of assigning the valid page to the second stream ID, the second stream ID different from the first stream ID.

2. An SSD according to claim 1 , wherein:

the stream logic includes a logical block address to stream ID table to map a logical address associated with the valid data to the first stream ID; and

the restreamer logic is operative to assign the valid page to the new block responsive to the first stream ID.

3. An SSD according to claim 2 , wherein the logical block address to stream ID table includes a chunk to stream ID table to map a chunk associated with the logical address associated with the valid data to the first stream ID.

4. An SSD according to claim 1 , wherein the restreamer logic is operative to read the stream characteristics in a stream page in the erase block.

5. An SSD according to claim 1 , wherein the stream logic includes a buffer to store the stream characteristics associated with the first stream ID until the erase block is full, wherein the buffer is not part of the erase block.

6. An SSD according to claim 5 , wherein the buffer is operative to store at least two stream characteristics associated with at least two stream IDs for pages in the erase block.

7. An SSD according to claim 6 , wherein a stream page maps the pages in the erase block to at least one of the at least two stream IDs.

8. An SSD according to claim 1 , wherein:

the restreamer logic includes a wear level determiner to determine at least two wear levels for at least two new blocks, the wear level determiner including at least a processor; and

the restreamer logic is operative to assign the valid page to the new block responsive to the stream characteristics for the valid data and the at least two wear levels for the at least two new blocks.

9. A method, comprising:

identifying an erase block in a Solid State Drive (SSD) for garbage collection;

identifying a valid page in the erase block containing valid data;

reading stream characteristics for the valid page from the SSD;

selecting a first stream ID for the valid page responsive to the stream characteristics, the first stream ID being different from a second stream ID assigned to the valid page when the valid page was previously written to the SSD, the first stream ID associated with a second valid page previously written to the SSD by a host machine; and

using the first stream ID to program the valid page to a new block in the SSD,

wherein the stream characteristics are determined, at least in part, at a time when the valid page was written to the erase block responsive to an Input/Output (I/O) request from the host machine.

10. A method according to claim 9 , wherein reading stream characteristics for the valid page from the SSD includes:

mapping a physical address of the valid page to a logical address; and

mapping the logical address to a stream identifier (ID).

11. A method according to claim 10 , wherein:

mapping a physical address of the valid page to a logical address includes mapping the physical address of the valid page to the logical address using a flash translation table; and

mapping the logical address to a stream ID includes:

mapping the logical address to a chunk; and

mapping the chunk to the stream ID using a chunk to stream ID table.

12. A method according to claim 10 , wherein using the stream ID to program the valid page to the new block in the SSD includes providing the stream ID with the valid page to a restreamer logic to select the new block in the SSD.

13. A method according to claim 9 , wherein reading stream characteristics for the valid page from the SSD includes reading the stream characteristics from a stream page in the erase block.

14. A method according to claim 13 , wherein using the first stream ID to program the valid page to a new block in the SSD includes providing the first stream ID with the valid page to a restreamer logic to select the new block in the SSD.

15. A method according to claim 9 , wherein selecting a first stream ID for the valid page responsive to the stream characteristics includes:

determining at least two wear levels for at least two blocks; and

selecting the first stream ID responsive to the at least two wear levels for the at least two blocks and the stream characteristics.

16. A method according to claim 9 , wherein the valid page was previously written to the erase block, before identifying the erase block in SSD for garbage collection, responsive to a stream ID assigned by the host machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2017
From: FISCHER, STEPHEN G.; CHOI, CHANGHO; MARTINEAU, JASON; PANDURANGAN, RAJINIKANTH
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 044315/0312 →
Continuity (4)
Continuation In Part 15620814 · Jun 12, 2017
Provisional Application 62561674 · Sep 21, 2017
Provisional Application 62490027 · Apr 25, 2017
Related Publication 20180307598A1 · Oct 25, 2018
Cited By (1)
US 12,483,270