IP Library Granted Patent US 11,561,717
Granted Patent B2
US 11,561,717 · App. 16/883,918 · Granted Jan 24, 2023

Data integrity protection of SSDs utilizing streams

Inventors: Daniel L. Helmick (Broomfield, CO); Peter Grayson (Grand Rapids, MI)
Assignee: Western Digital Technologies, Inc.
G06F3/065G06F1/30G06F3/0604G06F3/068G06F12/0804G06F12/10G06F2212/1032G06F2212/657
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,717
App. No.
16/883,918
Granted
Jan 24, 2023
Kind
B2
Abstract

The present disclosure generally relates to methods of operating storage devices. The storage device comprises a controller comprising first random access memory (RAM1), second random access memory (RAM2), and a storage unit divided into a plurality of streams. When a write command is received to write data to a stream, change log data is generated and stored in the RAM1, the previous delta data for the stream is copied from the RAM 2 to the RAM1 to be updated with the change log data, and the updated delta data is copied to the RAM2. The delta data stored in the RAM2 is copied to the storage unit periodically. The controller tracks which delta data has been copied to the RAM2 and to the storage unit. During a power failure, the delta data and the change log data are copied from the RAM1 or the RAM2 to the storage unit.

Claims (55)

1. A storage device, comprising:

a non-volatile storage unit, wherein a capacity of the non-volatile storage unit is divided into a plurality of streams, and wherein the non-volatile storage unit comprises a plurality of dies, each die of the plurality of dies comprising a plurality of erase blocks;

a first volatile memory unit comprising a plurality of ranks, wherein the plurality of ranks is divided into one or more sections; and

a controller coupled to the non-volatile storage unit and the first volatile memory unit, the controller comprising a second volatile memory unit, wherein the controller is configured to:

receive one or more write commands to write data to one or more streams of the plurality of streams;

update delta data associated with at least one stream of the one or more streams for each write command of the one or more write commands received in the second volatile memory unit, wherein delta data is updated for a particular stream each time a command is received to write data to the particular stream;

copy the updated delta data associated with the at least one stream from the second volatile memory unit to the plurality of ranks of the first volatile memory unit; and

copy the one or more sections of the plurality of ranks of the first volatile memory unit to the non-volatile storage unit, wherein one section of the one or more sections is copied to the non-volatile storage unit at a time responsive to a predetermined amount of time expiring.

2. The storage device of claim 1 , wherein the controller is further configured to copy the updated delta data from the first volatile memory unit to a parking section in the non-volatile storage unit.

3. The storage device of claim 1 , wherein the predetermined amount of time is 20 seconds.

4. The storage device of claim 1 , wherein each section of the one or more sections is copied to the non-volatile storage once per minute.

5. The storage device of claim 1 , further comprising one or more energy storage devices configured to provide power to the controller, wherein the controller is further configured to use the power provided by the one or more energy storage devices to copy the one or more sections of the plurality of ranks of the first volatile memory unit to the non-volatile storage unit responsive to experiencing a power failure event.

6. The storage device of claim 1 , wherein the controller is further configured to:

copy previous delta data associated with the at least one stream from the first volatile memory unit to the second volatile memory unit responsive to receiving the one or more commands; and

generate change log data associated with the at least one stream for each write command of the one or more write commands received in the second volatile memory unit, wherein updating the delta data associated with the at least one stream comprises updating the previous delta data with the change log data.

7. The storage device of claim 1 , wherein the first volatile memory unit is dynamic random-access memory (DRAM) or magnetoresistive random-access memory (MRAM).

8. A storage device, comprising:

a non-volatile storage unit, wherein a capacity of the non-volatile storage unit is divided into a plurality of streams;

a first volatile memory unit comprising a plurality of ranks, wherein the plurality of ranks is divided into one or more sections; and

a controller coupled to the non-volatile storage unit and the first volatile memory unit, the controller comprising a second volatile memory unit, wherein the controller is configured to:

receive one or more commands to write data to a first stream of the plurality of streams;

copy previous delta data associated with the first stream from the first volatile memory unit to the second volatile memory unit responsive to receiving the one or more commands;

update delta data associated with the first stream for each write command of the one or more write commands received in the second volatile memory unit;

copy the updated delta data associated with the first stream from the second volatile memory unit to the plurality of ranks of the first volatile memory unit; and

copy the one or more sections of the plurality of ranks of the first volatile memory unit to the non-volatile storage unit, wherein one section of the one or more sections is copied to the non-volatile storage unit at a time responsive to a predetermined amount of time expiring.

9. The storage device of claim 8 , wherein the controller is further configured to update delta data for a particular stream each time a command is received to write data to the particular stream.

10. The storage device of claim 8 , wherein the controller is further configured to:

generate change log data associated with the first stream for each write command of the one or more write commands received in the second volatile memory unit, wherein updating the delta data associated with the first stream comprises updating the previous delta data with the change log data;

track whether the previous delta data has been updated with the change log data; and

copy the change log data to the non-volatile storage unit responsive to the previous delta data having not yet been updated with the change log data.

11. The storage device of claim 8 , wherein the controller is further configured to copy the updated delta data from the first volatile memory unit to a parking section in the non-volatile storage unit.

12. The storage device of claim 8 , wherein:

the predetermined amount of time is 20 seconds; and

the controller is further configured to copy each of the one or more sections to the non-volatile storage once per minute.

13. The storage device of claim 8 , further comprising one or more energy storage devices configured to provide power to the controller, wherein the controller is further configured to use the power provided by the one or more energy storage devices to copy the one or more sections of the plurality of ranks of the first volatile memory unit to the non-volatile storage unit responsive to experiencing a power failure event.

14. The storage device of claim 8 , wherein:

the first volatile memory unit is dynamic random-access memory (DRAM) or magnetoresistive random-access memory (MRAM); and

the non-volatile storage unit comprises a plurality of dies, each die of the plurality of dies comprising a plurality of erase blocks.

15. A storage device, comprising:

a non-volatile storage unit, wherein a capacity of the non-volatile storage unit is divided into a plurality of streams, and wherein the non-volatile storage unit comprises a plurality of dies, each die of the plurality of dies comprising a plurality of erase blocks;

a first volatile memory means comprising a plurality of ranks, wherein the plurality of ranks is divided into one or more sections; and

a controller coupled to the non-volatile storage unit and the first volatile memory means, the controller comprising a second volatile memory unit, wherein the controller is configured to:

receive one or more write commands to write data to one or more streams of the plurality of streams;

update delta data associated with at least one stream of the one or more streams for each write command of the one or more write commands received in the second volatile memory unit, wherein delta data is updated for a particular stream each time a command is received to write data to the particular stream;

copy the updated delta data associated with the at least one stream from the second volatile memory unit to the plurality of ranks of the first volatile memory means;

determine whether a majority of the ranks within each section of the one or more sections has been updated or written to; and

copy the one or more sections of the plurality of ranks of the first volatile memory means to the non-volatile storage unit, wherein one section of the one or more sections is copied to the non-volatile storage unit at a time responsive to a predetermined amount of time expiring.

16. The storage device of claim 15 , wherein the controller is further configured to:

copy at least one section of the one or more sections to the non-volatile storage unit responsive to the determination that the majority of the ranks within the at least one section has been updated or written.

17. The storage device of claim 15 , wherein each section of the one or more sections is configured to store data for 1 stream to 5 streams.

18. The storage device of claim 15 , wherein each section of the one or more sections is configured to comprise 1 rank to 10 ranks.

19. The storage device of claim 15 , further comprising one or more energy storage devices configured to provide power to the controller, wherein the controller is further configured to use the power provided by the one or more energy storage devices to copy the one or more sections of the plurality of ranks of the first volatile memory means to the non-volatile storage unit responsive to experiencing a power failure event.

20. The storage device of claim 15 , wherein:

the second volatile memory unit is static random-access memory (SRAM); and

the non-volatile storage unit is NAND memory.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2020
From: HELMICK, DANIEL L.; GRAYSON, PETER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052754/0276 →
Continuity (1)
Related Publication 20210373769A1 · Dec 2, 2021