IP Library Granted Patent US 10,712,949
Granted Patent B2
US 10,712,949 · App. 15/808,209 · Granted Jul 14, 2020

Adaptive device quality of service by host memory buffer range

Inventors: Judah Gamliel Hahn (Ofra, IL); Alon Marcu (Tel Mond, IL); Itshak Afriat (Sunnyvale, CA); Shay Benisty (Beer Sheva, IL); Ariel Navon (Revava, IL); Alex Bazarsky (Holon, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0611G06F3/0659G06F3/0688G06F12/0246G06F2212/7201
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,712,949
App. No.
15/808,209
Granted
Jul 14, 2020
Kind
B2
Abstract

A system and method for reducing performance penalties of a host that is supplying a host memory buffer (HMB) for use by a storage device. The method may include modeling desired HMB access timing by the storage device in an initial offline analysis for multiple classes of workloads, periodically updating the access timing data stored in the storage device based on actual use and using the current HMB access timing information to modify storage device access to the HMB on the host. The system may include a storage device controller that quantifies different HMB access timing for different host workloads based on individual HMB regions.

Claims (48)

1. A non-volatile memory system comprising:

an interface configured to place the non-volatile memory system in communication with a host comprising a host memory buffer and a command queue;

a non-volatile memory; and

a controller in communication with the non-volatile memory and the interface, wherein the controller is configured to:

determine a first delay period and a second delay period associated with a workload class of a set of commands in the command queue on the host;

add the first delay period to all accesses made by the controller to a first memory region of the host memory buffer to execute the set of commands;

add the second delay period to all accesses made by the controller to a second memory region of the host memory buffer to execute the set of commands; and

subsequent to executing the set of commands, dynamically modify one or both of the first delay period and second delay period to account for a variation between a time spent executing the set of commands and an expected time to execute the set of commands;

wherein:

the first delay period differs from the second delay period; and

the first memory region differs from the second memory region.

2. The non-volatile memory system of claim 1 , wherein:

the host memory buffer comprises a volatile memory; and

the first memory region contains a first type of data.

3. The non-volatile memory system of claim 2 , wherein:

the first type of data comprises logical-to-physical mapping table data; and

the second memory region comprises firmware overlay data for the non-volatile memory system.

4. The non-volatile memory system of claim 1 , wherein the controller is further configured to dynamically change the first delay period in response to receipt, from the host, of latency measurements for commands sent to the host memory buffer from the controller.

5. The non-volatile memory system of claim 1 , wherein the controller is further configured to periodically adjust delay periods for controller access to each of a plurality of memory regions of the host memory buffer in response to latency measurements received from the host.

6. The non-volatile memory system of claim 1 , wherein the set of commands comprises commands to read, write, or trim data in the non-volatile memory.

7. The non-volatile memory system of claim 6 , wherein a command in the set of commands comprises at least one operation including an access to the first or the second memory region of the host memory buffer by the controller.

8. The non-volatile memory system of claim 1 , wherein the controller is further configured to, subsequent to executing the set of commands:

compare the time spent executing the set of commands with the expected time to execute the set of commands.

9. The non-volatile memory system of claim 1 , wherein the non-volatile memory comprises a substrate formed with a three-dimensional memory structure.

10. A method of processing memory accesses, the method comprising:

performing the following in a non-volatile memory system comprising an interface configured to place the non-volatile memory system in communication with a host comprising a host memory buffer and a command queue:

determining, in an offline modeling process, a first delay period and a second delay period;

identifying a workload class fora set of commands in the command queue on the host to be executed by a controller of the non-volatile memory system, wherein the workload class is associated with the first delay period and the second delay period;

adding the first delay period to accesses made by the controller to a first memory region of the host memory buffer to execute the set of commands;

adding the second delay period to accesses made by the controller to a second memory region of the host memory buffer to execute the set of commands;

receiving host response latency data from the host in response to a variation between a time spent executing the set of commands and an expected time to execute the set of commands; and

in response to receiving the host response latency data, modifying one or both of the first delay period and second delay period to account for the variation.

11. The method of claim 10 , wherein the offline modeling process comprises the controller applying a regression algorithm to simulated host memory buffer access times for different workload classes to estimate a desired host memory buffer access timing.

12. The method of claim 11 , further comprising applying the regression algorithm to received host response latency data.

13. The method of claim 10 , wherein the non-volatile memory system comprises a three-dimensional memory array.

14. A non-volatile memory system comprising:

an interface configured to place the non-volatile memory system in communication with a host comprising a host memory buffer and a command queue:

a non-volatile memory; and means, in communication with the non-volatile memory and the interface, for:

determining, in an offline modeling process, a first delay period and a second delay period

identifying a workload class for a set of commands in the command queue on the host to be executed by a controller of the non-volatile memory system, second delay period;

adding the first delay period to accesses made by the controller to a first memory region of the host memory buffer to execute the set of commands;

adding the second delay period to accesses made by the controller to a second memory region of the host memory buffer to execute the set of commands;

receiving host response latency data from the host in response to a variation between a time spent executing the set of commands and an expected time to execute the set of commands; and

in response to receiving the host response latency data, modifying one or both of the first delay period and second delay period to account for the variation.

15. The non-volatile memory system of claim 14 , wherein the means for determining comprises a controller configured to apply a regression algorithm to simulated host memory buffer access times for different workload classes.

16. The non-volatile memory system of claim 14 , wherein the means for modifying comprises a controller configured to apply a regression algorithm to received host response latency data.

17. The non-volatile memory system of claim 16 , wherein the host memory buffer comprises a portion of a volatile memory on the host under control of the controller of the non -volatile memory system.

18. The non-volatile memory system of claim 14 , wherein the non-volatile memory comprises a three-dimensional memory array.

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 Nov 9, 2017
From: HAHN, JUDAH GAMLIEL; MARCU, ALON; AFRIAT, ITSHAK; BENISTY, SHAY; NAVON, ARIEL; BAZARSKY, ALEX
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 044085/0350 →
Continuity (1)
Related Publication 20190138220A1 · May 9, 2019
Cited By (4)
US 12,423,203 US 12,535,961 US 12,619,526 US 12,669,937