IP Library Granted Patent US 11,625,189
Granted Patent B2
US 11,625,189 · App. 17/360,544 · Granted Apr 11, 2023

Systems and methods for fragmentation management in host buffers

Inventors: Dinesh Kumar Agarwal (Bangalore, IN); Amit Sharma (Bengaluru, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0656G06F3/0619G06F3/0638G06F3/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 11,625,189
App. No.
17/360,544
Granted
Apr 11, 2023
Kind
B2
Abstract

Storage devices can be configured to utilize one or more memory buffers located within a host-computing device. These host buffers may allow for faster access to some data, including control pages. However, host buffers are susceptible to fragmentation issues similarly to standard user memory arrays. As the data stored within the host buffers becomes more fragmented, performance can suffer. This performance loss in storage devices becomes more pronounced as the desired performance levels of these storage devices increase. Therefore, various methods and systems described herein manage fragmentation within host buffers by conducting one or more operations. These operations may include locating a continuous portion of allocated or unallocated memory within the host buffer and either swap or copy high-usage or high-priority data to those continuous portions. When continuous portions of host buffer memory are not available, relevant portions of data may be cashed within the storage device to increase performance.

Claims (66)

1. A device comprising:

a processor;

a memory array comprising a plurality of non-volatile memory devices; and

a host buffer management logic configured to:

establish a communication link with a host device;

obtain access to one or more host buffers;

utilize the one or more host buffers for processing a plurality of control pages of one or more of the plurality of non-volatile memory devices;

determine that one or more of the plurality of control pages require fragmentation management wherein the fragmentation management comprises one or more operations to minimize negative effects on the determined one or more of the plurality of control pages due to fragmentation;

analyze a state of the one or more host buffers; and

perform at least one fragmentation management operation process on the one or more host buffers based on the state of the one or more host buffers, wherein the analysis comprises monitoring the usage of the one or more host buffers.

2. The device of claim 1 , wherein the analysis comprises accessing mapping data associated with the one or more host buffers.

3. The device of claim 1 , wherein the at least one fragmentation management operation includes:

searching a host buffer analysis for continuous portions of memory;

determining that at least one continuous portion of host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

waiting until an available processing downtime occurs;

swapping, upon available processing downtime, any control page data stored within the continuous portions of host buffer memory with the one or more control pages requiring fragmentation management.

4. The device of claim 3 , wherein the processing downtime occurs in response to decreased PCIe bandwidth usage.

5. The device of claim 3 , wherein the processing downtime occurs in response to available processing cycles being made available.

6. The device of claim 1 , wherein the at least one fragmentation management operation includes:

searching a host buffer analysis for continuous portions of memory;

determining that no continuous portions of the allocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

sending a dummy request for a new portion of host buffer memory be allocated sufficient to store the one or more control pages requiring fragmentation management; and

copying the one or more control pages requiring fragmentation management to the newly allocated host buffer.

7. The device of claim 1 , wherein the at least one fragmentation management operation includes:

searching a host buffer analysis for continuous portions of memory;

determining that no continuous portions of the allocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

determining that no continuous portions of the unallocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

determining at least one set of data relevant to the one or more control pages requiring fragmentation management; and

caching the determined set of data to the device.

8. The device of claim 7 , wherein the determined set of data comprises mapping data associated with the one or more control pages requiring fragmentation management.

9. The device of claim 1 , wherein the determination comprises exceeding one or more thresholds.

10. The device of claim 9 , wherein the one or more thresholds comprise an overall usage of the plurality of control pages.

11. The device of claim 9 , wherein the one or more thresholds comprise a priority level of the plurality of control pages.

12. The device of claim 11 , wherein the priority level is assigned based on a desired performance level of the device.

13. The device of claim 12 , wherein the desired performance level is a reduced latency within one or more operations of the device.

14. The device of claim 1 , wherein the host buffer is a Host Memory Buffer (HMB) compatible with the NVMe specification.

15. A method of managing fragmentation within host buffers, comprising:

establishing a communication link between a storage device having a plurality of non-volatile memory devices and a host device;

providing the storage device access to one or more host device buffers;

utilizing the one or more host buffers for processing a plurality of control pages of one or more of the plurality of non-volatile memory devices;

determining that one or more of the plurality of control pages require fragmentation management wherein the fragmentation management comprises one or more operations to minimize negative effects on performance within the storage device due to fragmentation of one or more of the plurality of control pages;

analyzing a state of the one or more host buffers; and

performing at least one fragmentation management operation process on the one or more host buffers based on the state of the one or more host buffers, wherein the analyzing comprises monitoring the usage of the one or more host buffers.

16. The method of claim 15 , wherein the at least one fragmentation management operation may include:

searching a host buffer analysis for continuous portions of memory;

determining that at least one continuous portion of host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

waiting until an available processing downtime occurs;

swapping, upon available processing downtime, any control page data stored within the continuous portions of host buffer memory with the one or more control pages requiring fragmentation management.

17. The method of claim 16 , wherein, upon determining that no continuous portions of the allocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management, the method further:

determines that a continuous portion of unallocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management;

sends a dummy request for a new portion of host buffer memory be allocated sufficient to store the one or more control pages requiring fragmentation management; and

copies the one or more control pages requiring fragmentation management to the newly allocated host buffer.

18. The method of claim 17 , wherein, upon determining that no continuous portions of the allocated or unallocated host buffer memory is sufficient to store one or more control pages requiring fragmentation management, the method further:

determines at least one set of data relevant to the one or more control pages requiring fragmentation management; and

caches the determined set of data to the device.

19. A device comprising:

a processor;

a memory array comprising a plurality of non-volatile memory devices; and

a host buffer management logic configured to:

establish a communication link with a host device;

obtain access to one or more host buffers;

utilize the one or more host buffers for processing a plurality of buffer data of one or more of the plurality of non-volatile memory devices; monitor the usage of the one or more host buffers;

determine that a portion of the plurality of buffer data requires fragmentation management wherein the fragmentation management comprises one or more operations to minimize negative effects on the determined one or more portions of the plurality of buffer data due to fragmentation;

search the one or more host buffers for continuous portions of allocated or unallocated memory sufficient to store non-fragmented portions of the plurality of buffer data requiring fragmentation management;

perform a first series of fragmentation management operations on at least a portion of the plurality of buffer data in response to a portion of allocated memory being found; and

perform a second series of fragmentation management operations on at least a portion of the plurality of buffer data in response to no portions of allocated memory being found and a portion of unallocated memory being found.

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 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2021
From: AGARWAL, DINESH KUMAR; SHARMA, AMIT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056690/0124 →
Continuity (1)
Related Publication 20220413751A1 · Dec 29, 2022