IP Library Granted Patent US 12,204,756
Granted Patent B2
US 12,204,756 · App. 17/931,447 · Granted Jan 21, 2025

SSD use of host memory buffer for improved performance

Inventors: Dhanunjaya Rao Gorrle (Milpitas, CA); Aajna Karki (San Jose, CA); Hongmei Xie (Sunnyvale, CA)
Assignee: SANDISK TECHNOLOGIES, INC.
G06F3/0611G06F3/061G06F3/0629G06F3/0673
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,204,756
App. No.
17/931,447
Granted
Jan 21, 2025
Kind
B2
Abstract

Aspects of a storage device are provided that requests L2P address translation data from an HMB for execution of an associated host command using a dynamically determined HMB transfer size. The storage device includes a volatile memory and a controller. The controller allocates, in the volatile memory, multiple memory locations for L2P address translation data from an HMB. The controller receives a command indicating a host data length, and transmits a request for a portion of the L2P address translation data stored in the HMB for the command. The HMB transfer size associated with the request may be based on the host data length of the associated host command, a quantity of free and contiguous memory locations available in the HMB read buffer, or a minimum between a size of the portion and a total size of the free and contiguous memory locations. Thus, HMB transfer latency may be reduced.

Claims (60)

1. A storage device, comprising:

a volatile memory; and

a controller configured to:

allocate, in the volatile memory, a plurality of memory locations for logical-to-physical (L2P) address translation data from a host memory buffer (HMB);

receive a command indicating a host data length;

transmit a request for a portion of the L2P address translation data stored in the HMB, the portion of the L2P address translation data being for the command, and a size of the L2P address translation data associated with the request being based on the host data length indicated in the command;

receive the portion of the L2P address translation data in response to the request;

store, in one of the memory locations, the portion of the L2P address translation data; and

free the one of the memory locations after the portion of the L2P address translation data is passed to a physical sequencer for execution of the command.

2. The storage device of claim 1 ,

wherein the size of the L2P address translation data associated with the request is further based on a quantity of the memory locations which are free and contiguous at a time of the request.

3. The storage device of claim 2 , wherein the controller is further configured to:

search, in the volatile memory, for multiple contiguous ones of the memory locations to store the portion of the L2P address translation data; and

transmit the request in response to locating the multiple contiguous ones of the memory locations.

4. The storage device of claim 3 , wherein the controller is further configured to:

receive the portion of the L2P address translation data in response to the request; and

store, in the multiple contiguous ones of the memory locations, the portion of the L2P address translation data.

5. The storage device of claim 2 , wherein the controller is further configured to:

search, in the volatile memory, for multiple contiguous ones of the memory locations to store the portion of the L2P address translation data; and

in response to failing to locate the multiple contiguous ones of the memory locations, transmit another request for another portion of the L2P address translation data.

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

receive the portion of the L2P address translation data in response to the request; and

receive the another portion of the L2P address translation data in response to the another request.

7. The storage device of claim 2 , wherein the size of the L2P address translation data associated with the request is further based on a minimum of:

a size of the portion of the L2P address translation data for the command, and

a total size of the quantity of the memory locations which are free and contiguous at the time of the request.

8. The storage device of claim 1 , wherein the controller is further configured to receive a second command indicating a second host data length, the portion of the L2P address translation data indicated in the request is for the command and the second command, and the size of the L2P address translation data associated with the request is further based on the second host data length.

9. A storage device, comprising:

a volatile memory; and

a controller configured to:

allocate, in the volatile memory, a plurality of memory locations for storing logical-to-physical (L2P) address translation data from a host memory buffer (HMB); and

transmit a request for a portion of the L2P address translation data stored in the HMB, the portion of the L2P address translation data being for a host command, and a size of the L2P address translation data associated with the request being based on a quantity of the memory locations which are free and contiguous at a time of the request.

10. The storage device of claim 9 ,

wherein the host command indicates a host data length, and the size of the L2P address translation data associated with the request is further based on the host data length indicated in the host command.

11. The storage device of claim 9 , wherein the controller is further configured to:

search, in the volatile memory, for multiple contiguous ones of the memory locations to store the portion of the L2P address translation data;

transmit the request in response to locating the multiple contiguous ones of the memory locations; and

receive the portion of the L2P address translation data in response to the request.

12. The storage device of claim 9 , wherein the controller is further configured to:

search, in the volatile memory, for multiple contiguous ones of the memory locations to store the portion of the L2P address translation data; and

in response to failing to locate the multiple contiguous ones of the memory locations:

transmit another request for another portion of the L2P address translation data; and

receive the another portion of the L2P address translation data in response to the another request.

13. The storage device of claim 9 , wherein the host command indicates a host data length, and a size of the L2P address translation data associated with the request is further based on a minimum of:

a size of the portion of the L2P address translation data for the host command, and

a total size of the quantity of the memory locations which are free and contiguous at the time of the request.

14. The storage device of claim 9 , wherein the controller is further configured to receive a second host command indicating a second host data length, the portion of the L2P address translation data indicated in the request is for the host command and the second host command, and the size of the L2P address translation data associated with the request is further based on the second host data length.

15. A storage device, comprising:

a volatile memory; and

a controller configured to:

allocate, in the volatile memory, a plurality of memory locations for storing logical-to-physical (L2P) address translation data from a host memory buffer (HMB);

receive a command; and

transmit a request for a portion of the L2P address translation data stored in the HMB, the portion of the L2P address translation data being for the command, and a size of the L2P address translation data associated with the request being based on a minimum of:

a size of the portion of the L2P address translation data for the command, and

a total size of a quantity of the memory locations which are free and contiguous at a time of the request.

16. The storage device of claim 15 ,

wherein the volatile memory is internal to the controller.

17. The storage device of claim 15 ,

wherein the volatile memory is external to the controller.

18. The storage device of claim 15 , wherein the controller is configured to transmit the request based on the size of the portion of the L2P address translation data for the command being larger than a size of a respective one of the memory locations.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2023
From: GORRLE, DHANUNJAYA RAO; KARKI, AAJNA; XIE, HONGMEI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 062331/0030 →
Continuity (1)
Related Publication 20240086071A1 · Mar 14, 2024
References Cited (13)
US 9563382B2 · Hahn et al. · 2017 [cited by applicant]
US 10069597B2 · Benisty et al. · 2018 [cited by applicant]
US 10732878B1 · Muthiah · 2020 [cited by examiner]
US 10824568B2 · Benisty et al. · 2020 [cited by applicant]
US 11403011B1 · Gunda · 2022 [cited by examiner]
US 20150074328A1 · Baryudin et al. · 2015 [cited by applicant]
US 20170351452A1 · Boyd · 2017 [cited by examiner]
US 20180293174A1 · Song et al. · 2018 [cited by applicant]
US 20190146712A1 · Lee · 2019 [cited by applicant]
US 20200142630A1 · Lee et al. · 2020 [cited by applicant]
US 20210334200A1 · Xu · 2021 [cited by applicant]
US 20220058134A1 · Minopoli et al. · 2022 [cited by applicant]
WO 2019083775A1 · 2019 [cited by applicant]