IP Library Granted Patent US 11,494,125
Granted Patent B2
US 11,494,125 · App. 17/179,987 · Granted Nov 8, 2022

Storage system and method for dual fast release and slow release responses

Inventors: Yoav Markus (Tel Aviv, IL); Nir Perry (Hod Hasharon, IL); Meytal Soffer (Maale' Hagalil, IL); Alex Lemberg (Kfar Saba, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0659G06F3/0611G06F3/0619G06F3/0656G06F3/0683
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,494,125
App. No.
17/179,987
Granted
Nov 8, 2022
Kind
B2
Abstract

A storage system and method for dual fast release and slow release responses are provided. In one embodiment, a storage system is provided comprising a volatile memory, a non-volatile memory, and a controller. The controller is configured to receive, from a host, a write command and data to be written in the non-volatile memory. The host comprises a command queue storing an identifier for the write command and a buffer storing a copy of the data. In response to storing the data in the volatile memory, the controller is configured to instruct the host to remove the identifier for the write command from the host's command queue. In response to successfully writing the data in the non-volatile memory, the controller is configured to instruct the host to remove the copy of the data from the host's buffer. Other embodiments are provided.

Claims (43)

1. A storage system comprising:

a volatile memory;

a non-volatile memory; and

a controller configured to:

receive, from a host, a write command, data to be written in the non-volatile memory, and a buffer identifier identifying a buffer location in the host that stores a copy of the data;

in response to receiving the write command and the data, store the data in the volatile memory;

in response to storing the data in the volatile memory but prior to successfully writing the data in the non-volatile memory, instruct the host to remove an identifier for the write command from a command queue in the host, which enables the host to store an identifier for another write command in the command queue, wherein the copy of the data is still stored in the buffer location after the identifier for the write command has been removed from the command queue;

attempt to write the data in the non-volatile memory;

in response to successfully writing the data in the non-volatile memory, send a success message with the buffer identifier to instruct the host to remove the copy of the data from the host's buffer; and

in response to not successfully writing the data in the non-volatile memory, send a failure message with the buffer identifier to instruct the host to re-issue the write command.

2. The storage system of claim 1 , wherein the data is not successfully written to the non-volatile memory due to a power interruption to the non-volatile memory.

3. The storage system of claim 1 , wherein the data is not successfully written to the non-volatile memory due to a write error.

4. The storage system of claim 1 , wherein the storage system is configured to be embedded in the host.

5. The storage system of claim 1 , wherein the storage system is configured to be removably connected to the host.

6. The storage system of claim 1 , wherein the volatile memory is in the controller.

7. The storage system of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory.

8. A method comprising:

performing the following in a host in communication with a storage system comprising volatile and non-volatile memory, wherein the host comprises a command queue and a buffer:

storing an identifier for a write command in the command queue;

storing data for the write command in the buffer, wherein a buffer identifier identifies a location in the buffer that stores the data;

sending the write command, the buffer identifier, and the data to the storage system;

receiving an instruction from the storage system to remove the identifier for the write command from the command queue in response to the data being stored in the volatile memory but not yet stored in the non-volatile memory;

removing the identifier for the write command from the command queue, wherein the data is still stored in the buffer after the identifier for the write command has been removed from the command queue;

storing an identifier for another write command in the command queue; and

receiving an instruction with the buffer identifier from the storage system to either remove the data from the buffer or reissue the write command.

9. The method of claim 8 , wherein the instruction is received in response to an unsuccessful attempt to write the data in the storage system.

10. The method of claim 9 , wherein the unsuccessful attempt is caused by a power interruption in the storage system.

11. The method of claim 9 , wherein the unsuccessful attempt is caused by a write error.

12. The method of claim 8 , further comprising using a kernel in the host to remove the identifier from the host's command queue.

13. The method of claim 8 , further comprising using a kernel in the host to remove the data from the host's buffer.

14. The method of claim 8 , wherein the storage system is embedded in the host.

15. The method of claim 8 , wherein the storage system is removably connected to the host.

16. The method of claim 8 , wherein the storage system comprises a three-dimensional memory.

17. The method of claim 8 , wherein the host comprises a mobile device.

18. A storage system comprising:

a volatile memory;

a non-volatile memory;

means for receiving, from a host, a write command, data to be written in the non-volatile memory, and a buffer identifier identifying a buffer location in the host that stores a copy of the data;

means for storing the data in the volatile memory in response to receiving the write command and the data;

means for instructing the host, in response to storing the data in the volatile memory but prior to successfully writing the data in the non-volatile memory, to remove an identifier for the write command from a command queue in the host, which enables the host to store an identifier for another write command in the command queue, wherein the copy of the data is still stored in the buffer location after the identifier for the write command has been removed from the command queue;

means for attempting to write the data in the non-volatile memory;

means for sending a success message with the buffer identifier to instruct the host to remove the copy of the data from the host's buffer in response to successfully writing the data in the non-volatile memory; and

means for sending a failure message with the buffer identifier to instruct the host to re-issue the write command in response to not successfully writing the data in the non-volatile memory.

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 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: MARKUS, YOAV; PERRY, NIR; SOFFER, MEYTAL; LEMBERG, ALEX
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055340/0336 →
Continuity (2)
Provisional Application 63126867 · Dec 17, 2020
Related Publication 20220197557A1 · Jun 23, 2022