IP Library Granted Patent US 12,393,372
Granted Patent B2
US 12,393,372 · App. 18/760,409 · Granted Aug 19, 2025

Data storage device and method for device-initiated hibernation

Inventors: Judah Gamliel Hahn (Ofra, IL); Ariel Navon (Revava, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0607G06F3/0656G06F3/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 12,393,372
App. No.
18/760,409
Granted
Aug 19, 2025
Kind
B2
Abstract

A data storage device and method for device-initiated hibernation are provided. In one embodiment, the data storage device comprises a non-volatile memory and a controller. The controller is configured to: receive, from a host during a set-up phase of a hibernation process, a plurality of write commands with a current state of a volatile memory in the host; store the plurality of write commands in a queue, wherein the plurality of write commands are not executed during the set-up phase of the hibernation process; receive a trigger from the host to perform an execution phase of the hibernation process; and in response to receiving the trigger, execute the plurality of write commands to store the current state of the host's volatile memory in the non-volatile memory of the data storage device. Other embodiments are possible, and each of the embodiments can be used alone or together in combination.

Claims (37)

1. A method comprising:

performing the following in a host in communication with a data storage device, wherein the host comprises a volatile memory and the data storage device comprises a non-volatile memory:

mapping regions in the host's volatile memory to a plurality of sequential write commands;

sending, to the data storage device during a set-up phase of a hibernation process, the plurality of sequential write commands with a current state of the volatile memory in the host, wherein the plurality of sequential write commands are stored in a queue in the data storage device but are not executed during the set-up phase of the hibernation process, wherein data in the plurality of sequential write commands is compressed;

sending, to the data storage device, a trigger to perform an execution phase of the hibernation process to store the current state of the host's volatile memory in the non-volatile memory of the data storage device; and

instructing the data storage device to execute the plurality of sequential write commands stored in the queue.

2. The method of claim 1 , wherein a sequential range of the plurality of sequential write commands exceeds a maximum data transfer size of the data storage device.

3. The method of claim 1 , further comprising receiving an indication from the data storage device that the plurality of sequential write commands has been executed.

4. The method of claim 3 , wherein the indication is provided in a completion queue.

5. The method of claim 3 , wherein the indication is provided in a sideband signal.

6. The method of claim 1 , wherein the data storage device is instructed via a command.

7. The method of claim 1 , wherein the data storage device is instructed via a sideband signal.

8. The method of claim 1 , wherein the data storage device is instructed via a power loss notification (PLN) signal.

9. The method of claim 1 , wherein the data storage device is instructed via a doorbell.

10. The method of claim 1 , wherein the data storage device is instructed via a pre-determined sequence of commands.

11. A host comprising:

a volatile memory; and

a processor configured to:

map regions in the volatile memory to a plurality of sequential write commands;

send, to a data storage device during a set-up phase of a hibernation process, the plurality of sequential write commands with a current state of the volatile memory in the host, wherein the plurality of sequential write commands are stored in a queue in the data storage device but are not executed during the set-up phase of the hibernation process, wherein data in the plurality of sequential write commands is compressed;

send, to the data storage device, a trigger to perform an execution phase of the hibernation process to store the current state of the host's volatile memory in the non-volatile memory of the data storage device; and

instruct the data storage device to execute the plurality of sequential write commands stored in the queue.

12. The host of claim 11 , wherein a sequential range of the plurality of sequential write commands exceeds a maximum data transfer size of the data storage device.

13. The host of claim 11 , wherein the processor is further configured to receive an indication from the data storage device that the plurality of sequential write commands has been executed.

14. The host of claim 13 , wherein the indication is provided in a completion queue or a sideband signal.

15. The host of claim 11 , wherein the data storage device is instructed via a command.

16. The host of claim 11 , wherein the data storage device is instructed via a sideband signal.

17. The host of claim 11 , wherein the data storage device is instructed via a power loss notification (PLN) signal.

18. The host of claim 11 , wherein the data storage device is instructed via a doorbell.

19. The host of claim 11 , wherein the data storage device is instructed via a pre-determined sequence of commands.

20. A host comprising:

a volatile memory; and

means for:

mapping regions in the volatile memory to a plurality of sequential write commands;

sending, to the data storage device during a set-up phase of a hibernation process, the plurality of sequential write commands with a current state of the volatile memory in the host, wherein the plurality of sequential write commands are stored in a queue in the data storage device but are not executed during the set-up phase of the hibernation process, wherein data in the plurality of sequential write commands is compressed;

sending, to the data storage device, a trigger to perform an execution phase of the hibernation process to store the current state of the host's volatile memory in the non-volatile memory of the data storage device; and

instructing the data storage device to execute the plurality of sequential write commands stored in the queue.

Assignments (6)
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 →
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0486 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069169/0572 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: HAHN, JUDAH GAMLIEL; NAVON, ARIEL; BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 068293/0295 →
Continuity (2)
Division 17752305 · May 24, 2022
Related Publication 20240354033A1 · Oct 24, 2024
References Cited (17)
US 5974544A · Jeffries · 1999 [cited by examiner]
US 6327671B1 · Menon · 2001 [cited by examiner]
US 9495173B2 · Bar-Or · 2016 [cited by applicant]
US 11656798B1 · Benisty · 2023 [cited by examiner]
US 20080162918A1 · Muurinen · 2008 [cited by applicant]
US 20100106886A1 · Marcu · 2010 [cited by applicant]
US 20110231595A1 · Wakrat · 2011 [cited by applicant]
US 20120221875A1 · Bak · 2012 [cited by applicant]
US 20130031388A1 · Sakarda · 2013 [cited by applicant]
US 20160283116A1 · Ramalingam · 2016 [cited by examiner]
US 20170212793A1 · Choi · 2017 [cited by applicant]
US 20180018101A1 · Benisty · 2018 [cited by examiner]
US 20190227618A1 · Huang · 2019 [cited by applicant]
US 20190325919A1 · Bhargava · 2019 [cited by applicant]
US 20200117599A1 · Golov · 2020 [cited by applicant]
US 20220382475A1 · Lim · 2022 [cited by examiner]
US 20230205429A1 · Yang · 2023 [cited by examiner]