IP Library Granted Patent US 10,489,082
Granted Patent B2
US 10,489,082 · App. 16/147,366 · Granted Nov 26, 2019

System and method for using host command data buffers as extended memory device volatile memory

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,489,082
App. No.
16/147,366
Granted
Nov 26, 2019
Kind
B2
Abstract

Systems and methods for using host command data buffers as extended memory device volatile memory are disclosed. NVM Express implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue. Commands may include an indication of a host buffer, resident on the host device, in which to store data for access by the host device. The memory device may use the host buffer as extended memory during execution of the command. As one example, the memory device may process the command in stages, with each stage retrieving data from the host buffer, manipulating the data, and writing the processed data to the same host buffer. As another example, the host buffer can be used for memory device internal relocation and garbage collection operations. Thus, the area/cost of the memory device controller is reduced since less volatile memory is required.

Claims (61)

1. A method comprising:

at a memory device:

executing a received command from a host device in at least two or more stages;

generating a first stage data by performing a first stage of the at least two or more stages;

causing the first stage data to be stored in a memory buffer on the host device;

causing the first stage data to be transferred to the memory device;

generating a second stage data by performing a second stage of the at least two or more stages; and

notifying the host device of a completion of the execution of the received command when all of the at least two or more stages are performed.

2. The method of claim 1 , wherein the memory buffer on the host device is associated with the received command.

3. The method of claim 1 , further comprising:

performing the second stage of the at least two or more stages based on the first stage data.

4. The method of claim 1 , further comprising:

determining whether the memory buffer on the host device can be used for an internal management operation of the memory device;

in response to determining that the memory buffer can be used for the internal management operation:

determining whether the internal management operation can be performed within a timeout period; and

in response to determining that the internal management operation can be performed within the timeout period:

performing the internal management operation using the memory buffer.

5. The method of claim 1 , further comprising:

causing the host device to read data in the memory buffer on the host device by notifying the host device of the completion of the execution of the received command at the memory device.

6. The method of claim 1 , further comprising:

causing the second stage data to be stored in the memory buffer on the host device.

7. A memory device comprising:

a controller; and

wherein the controller is configured to:

execute a received command from a host device in at least two or more stages;

generate a first stage data via a performance of a first stage of the at least two or more stages;

cause the first stage data to be stored in a memory buffer on the host device;

cause the first stage data to be transferred to the memory device;

generate a second stage data via a performance of a second stage of the at least two or more stages;

determine whether all of the at least two or more stages are performed; and

when performance of all of the at least two or more stages are completed, notify the host device of a completion of the execution of the received command.

8. The memory device of claim 7 , wherein the controller is configured to:

perform the second stage of the at least two or more stages based on the first stage data.

9. The memory device of claim 7 , wherein the memory buffer on the host device is associated with the received command.

10. The memory device of claim 7 , wherein the controller is configured to:

determine whether the memory buffer on the host device can be used for an internal management operation; and

when the memory buffer can be used for the internal management operation, perform the internal management operation using the memory buffer.

11. The memory device of claim 10 , wherein the controller is configured to:

when the memory buffer can be used for the internal management operation, determine whether the internal management operation can be performed within a timeout period; and

when the internal management operation can be performed within the timeout period, perform the internal management operation using the memory buffer.

12. The memory device of claim 10 , wherein the controller is configured to:

cause the second stage data to be stored in the memory buffer on the host device.

13. The memory device of claim 7 , wherein the controller is configured to:

cause the host device to read data in the memory buffer on the host device via a notification to the host device of the completion of the execution of the received command.

14. A memory device comprising:

means for executing a received command from a host device communicatively coupled to the memory device in at least two or more stages;

means for generating a first stage data by performing a first stage of the at least two or more stages;

means for causing the first stage data to be stored in a memory buffer on the host device;

means for causing the first stage data to be transferred to the memory device;

means for generating a second stage data by performing a second stage of the at least two or more stages using the first stage data; and

means for notifying the host device of a completion of the execution of the received command when all of the at least two or more stages are performed.

15. The memory device of claim 14 , further comprising:

means for determining whether the memory buffer on the host device can be used for an internal management operation of the memory device;

in response to determining that the memory buffer can be used for the internal management operation:

means for determining whether the internal management operation can be performed within a timeout period; and

in response to determining that the internal management operation can be performed within the timeout period:

means for performing the internal management operation using the memory buffer.

16. The memory device of claim 14 , further comprising:

means for causing the host device to read data in the memory buffer on the host device by notifying the host device of the completion of the execution of the received command.

17. The memory device of claim 14 , further comprising:

means for causing the second stage data to be stored in the memory buffer on the host device.

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 Dec 13, 2018
From: BENISTY, SHAY; WEINBERG, YOAV
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047772/0554 →