IP Library Granted Patent US 10,635,343
Granted Patent B2
US 10,635,343 · App. 15/829,870 · Granted Apr 28, 2020

Streamed program commands with periodic garbage collection

Inventors: Ramanathan Muthiah (Bangalore, IN); Balaji Thraksha Venkataramanan (Bangalore, IN); Ramkumar Ramamurthy (Bangalore, IN); Ravi Gaja (Bangalore, IN)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0652G06F3/0608G06F3/0679
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,635,343
App. No.
15/829,870
Granted
Apr 28, 2020
Kind
B2
Abstract

Apparatuses, systems, methods, and computer program products for streamed program commands with periodic garbage collection are disclosed. A controller is configured to set up a data path between the controller and a memory device to initialize an open mode. A controller is configured to perform a plurality of program operations on a memory device in an open mode using a same set up data path. A controller is configured to, in response to exiting an open mode, perform a garbage collection operation on a memory device.

Claims (78)

1. An apparatus comprising:

a controller for a memory device, the controller configured to:

set up a data path between the controller and the memory device to initialize an open mode;

perform a plurality of program operations on the memory device in the open mode using the set up data path; and

in response to exiting the open mode, perform a garbage collection operation on the memory device,

wherein:

the controller exits the open mode in response to a counter being incremented to a predetermined value, and

the counter is incremented in response to the controller performing each program operation of the plurality of program operations.

2. The apparatus of claim 1 , wherein the controller is configured to perform the plurality of program operations without interruption for a garbage collection operation.

3. The apparatus of claim 1 , wherein the controller is configured to exit the open mode in response to a trigger event, the trigger event comprising one or more of:

an amount of data stored by a single level cell (SLC) block satisfying a threshold;

an amount of data being accumulated for the garbage collection operation satisfying a threshold; and

a failure of one or more of the plurality of program operations.

4. The apparatus of claim 3 , wherein the SLC block comprises one or more of a host write block and a fold destination block.

5. The apparatus of claim 3 , wherein, in response to the trigger event comprising the amount of data stored by the SLC block satisfying the threshold, the controller is configured to one of:

perform an erase operation on the SLC block and write new program data to the SLC block; and

perform an exchange operation to transfer valid program data stored in the SLC block to a different SLC block and write new program data to the SLC block.

6. The apparatus of claim 3 , wherein the failure comprises a program failure for a folding operation.

7. The apparatus of claim 1 , wherein, during the open mode, the controller is configured to:

receive program commands from a host computing device in communication with the controller; and

accumulate, in a command queue, a plurality of program commands received from the host computing device.

8. The apparatus of claim 7 , further comprising a set of memory latches for the memory device, wherein:

the program commands include program data; and

during the open mode, the controller is configured to, in response to the command queue accumulating at least a predetermined quantity of program commands, transmit the program data for the accumulated plurality of program commands to one or more memory latches of the set of memory latches.

9. The apparatus of claim 8 , wherein, during the open mode, the controller is configured to accumulate the transferred program data in the one or more memory latches until a memory latch of the one or more memory latches is one of full and includes at least a latch threshold amount of program data.

10. The apparatus of claim 9 , wherein:

the controller further comprises a flash translation layer (FTL) configured to track program data stored in the one or more memory latches; and

during the open mode, the controller is configured to:

write the program data to the memory device in response to the memory latch being the one of full and including greater than or equal to the latch threshold amount of program data, and

update the FTL in response to writing the program data to the memory device.

11. The apparatus of claim 8 , wherein the program data is continuously transmitted to the one or more memory latches.

12. The apparatus of claim 1 , wherein the controller is further configured to:

set up a new data path between the controller and the memory device to reinitialize the open mode; and

perform an additional plurality of program operations on the memory device in the reinitialized open mode using the new data path.

13. A system comprising:

a memory device, comprising:

a memory array of memory elements; and

a set of memory latches for the memory array; and

a controller including a controller memory, the controller in communication with a host computing device and configured to:

receive memory commands including program data from the host computing device;

transmit the program data to one or more memory latches of the set of memory latches in a streaming write mode; and

in response to detecting a program failure for a folding operation:

exit the streaming write mode; and

in response to exiting the streaming write mode, perform a garbage collection operation on the memory array.

14. The system of claim 13 , wherein:

the controller is further configured to:

in response to exiting the streaming write mode, pause transmitting the program data to the one or more memory latches in the streaming write mode, and

in response to completing the garbage collection operation:

set up a data path between the controller and the set of memory latches, and

resume transmitting the program data to the one or more memory latches in the streaming write mode.

15. The system of claim 14 , wherein:

the program data is continuously transmitted to the one or more memory latches; and

in response to a memory latch in the one or more memory latches being one of full and including at least a predetermined latch amount of the program data, the controller is further configured to write the program data in the memory latch to the memory array.

16. The system of claim 13 , wherein:

the controller is configured to exit the streaming write mode in response to a counter being incremented to a predetermined value; and

the counter is incremented in response to the controller transmitting the program data to the one or more memory latches of the set of memory latches.

17. An apparatus comprising:

means for transmitting program data to one or more memory latches of a set of memory latches for a memory array in an open mode;

means for exiting the open mode in response to detecting one or more trigger events; and

means for performing a garbage collection operation on the memory array in response to exiting the open mode,

wherein:

the open mode is exited in response to a counter being incremented to a predetermined value, and

the counter is incremented in response to each program operation of the plurality of program operations being performed.

18. The apparatus of claim 17 , further comprising means for detecting the one or more trigger events, wherein the one or more trigger events comprise one or more of:

a single level cell (SLC) host write block being one of full and including at least a host write threshold amount of program data;

an SLC fold destination block being one of full and including at least a fold destination threshold amount of program data;

program data subject to the garbage collection operation being accumulated to at least a garbage collection threshold amount; and

a program operation failure.

19. The apparatus of claim 17 , wherein the one or more trigger events comprises at least a predetermined quantity of program data writes being performed on the memory array, the apparatus further comprising:

means for pausing transmission of the program data to the one or more memory latches in response to exiting the open mode;

means for setting up a data path between the means for transmitting and the set of memory latches in response to completing the garbage collection operation; and

means for resuming transmission of the program data to the one or more memory latches in response to setting up the data path.

20. The apparatus of claim 17 , further comprising means for detecting a trigger event, wherein:

the trigger event comprises one or more of:

an amount of data stored by a single level cell block satisfying a threshold,

an amount of data being accumulated for the garbage collection operation satisfying a threshold, and

a failure of one or more program operations; and

the failure comprises a program failure for a folding operation.

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 Apr 14, 2018
From: MUTHIAH, RAMANATHAN; VENKATARAMANAN, BALAJI THRAKSHA; RAMAMURTHY, RAMKUMAR; GAJA, RAVI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045967/0317 →
Continuity (1)
Related Publication 20190171389A1 · Jun 6, 2019