IP Library Granted Patent US 10,108,350
Granted Patent B2
US 10,108,350 · App. 14/850,741 · Granted Oct 23, 2018

Method for providing nonvolatile storage write bandwidth using a caching namespace

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,108,350
App. No.
14/850,741
Granted
Oct 23, 2018
Kind
B2
Abstract

An apparatus for implementing an enhanced-write-bandwidth caching stream includes a memory that stores machine instructions and a processor that executes the machine instructions. The apparatus apportions a first address space and a second address space that comprises a logical namespace. The apparatus also subjects the first address space to host-write throttling, and exempts the second address space from host-write throttling. The apparatus further requires that valid data in memory cells corresponding to the second address space be invalidated at an interval not to exceed a number of host writes equaling the capacity of the second address space.

Claims (48)

1. An apparatus for implementing an enhanced-write-bandwidth caching stream, the apparatus comprising:

a processor; and

a memory storing machine instructions thereon that, when executed by the processor, configure the processor to:

apportion a first address space and a second address space comprising a logical namespace;

separate host write requests into a first host write stream and a different second host write stream based on respective types of the host write requests, requests of the first host write stream being of a first type and designated for storage in the first address space, and requests of the second host write stream being of a second type and designated for storage in the second address space, the first type of request being a general host write request, and the second type of request being a latency-sensitive host write request that is more sensitive to write latency than the general host write request;

subject the first host write stream to host-write throttling of storage in the first address space; and

exempt the second host write stream from host-write throttling of storage in the second address space when a second available space of memory cells currently available for programming associated with the second address space is greater than zero.

2. The apparatus of claim 1 , wherein the machine instructions, when executed, further configure the processor to require data in memory cells corresponding to the second address space be invalidated at an interval not to exceed a number of host writes equaling the capacity of the second address space.

3. The apparatus of claim 1 , wherein the machine instructions, when executed, further configure the processor to require logical blocks corresponding to the second address space be invalidated in an order corresponding to a previous order in which the respective logical blocks were previously programmed.

4. The apparatus of claim 1 , wherein the machine instructions, when executed, further configure the processor to store the first host write stream in the first address space, and store the second host write stream in the second address space.

5. The apparatus of claim 4 , wherein to subject the first address space to host-write throttling the machine instructions, when executed, further configure the processor to determine a first available space of memory cells currently available for programming associated with the first address space, compare the first available space to a predetermined threshold, and reduce a first throughput of the first host write stream based on the first available space not exceeding the threshold, while permitting an unthrottled throughput of the second host write stream.

6. The apparatus of claim 5 , wherein to determine the first available space of memory cells currently available for programming the machine instructions, when executed, further configure the processor to determine a total available space of memory cells currently available for programming associated with the first address space and the second address space, determine a second available space of memory cells currently available for programming associated with the second address space, and subtract the second available space from the total available space.

7. The apparatus of claim 4 , wherein to exempt the second address space from host-write throttling the machine instructions, when executed, further configure the processor to determine a second available space of memory cells currently available for programming associated with the second address space, and permit an unthrottled throughput of the second host write stream while the second available space is greater than zero.

8. The apparatus of claim 4 , wherein to store the first host write stream in the first address space the machine instructions, when executed, further configure the processor to combine the first host write stream with a reclamation write stream to form an aggregate write stream, and store the aggregate write stream in the first address space.

9. An apparatus for implementing an enhanced-write-bandwidth caching stream, the apparatus comprising:

a processor; and

a memory storing machine instructions thereon that, when executed by the processor, configure the processor to:

divide a stream of host write requests into a first host write stream and a second host write stream based on whether respective requests of the stream are latency-sensitive host write requests, the first host write stream comprising general host write requests in a first address space and the second host write stream comprising latency-sensitive host write requests in a second address space different from the first address space; and

perform host-write throttling, wherein the second address space is exempted from host-write throttling when a second available space of memory cells currently available for programming associated with the second address space is greater than zero.

10. The apparatus of claim 9 , wherein the machine instructions, when executed, further configure the processor to require data in memory cells corresponding to the second address space be invalidated at an interval not to exceed a number of host writes equaling the capacity of the second address space.

11. The apparatus of claim 9 , wherein the machine instructions, when executed, further configure the processor to define the first address space and the second address space comprising a logical namespace, wherein the first address space corresponds to the first host write stream, the second address space corresponds to the second host write stream.

12. The apparatus of claim 9 , wherein the machine instructions, when executed, further configure the processor to invalidate previously-programmed logical blocks associated with the second host write stream in an order corresponding to a previous order in which the respective logical blocks were previously programmed.

13. A computer-implemented method for implementing an enhanced-write-bandwidth caching stream, the method comprising:

apportioning a first address space and a second address space associated with a storage device, the second address space comprising a logical namespace;

separate host write requests into a first host write stream and a different second host write stream based on respective types of the host write requests, requests of the first host write stream being of a first type and designated for storage in the first address space, and requests of the second host write stream being of a second type and designated for storage in the second address space, the first type of request being a general host write request, and the second type of request being a latency-sensitive host write request that is more sensitive to write latency than the general host write request;

subjecting the first host write stream to host-write throttling of storage in the first address space; and

exempting the second host write stream from host-write throttling of storage in the second address space when a second available space of memory cells currently available for programming associated with the second address space is greater than zero.

14. The method of claim 13 , further comprising requiring data in memory cells corresponding to the second address space be invalidated at an interval not to exceed a number of host writes equaling the capacity of the second address space.

15. The method of claim 13 , further comprising requiring logical blocks corresponding to the second address space be invalidated in an order corresponding to a previous order in which the respective logical blocks were previously programmed.

16. The method of claim 13 , the method further comprising:

receiving the first host write stream and the second host write stream;

storing the first host write stream in the first address space; and

storing the second host write stream in the second address space.

17. The method of claim 16 , further comprising:

determining a first available space of memory cells currently available for programming associated with the first address space;

comparing the first available space to a predetermined threshold;

reducing a first throughput of the first host write stream based on the first available space not exceeding the threshold, while permitting an unthrottled throughput of the second host write stream.

18. The method of claim 17 , wherein determining the first available space of memory cells currently available for programming further comprises:

determining a total available space of memory cells currently available for programming associated with the first address space and the second address space;

determining a second available space of memory cells currently available for programming associated with the second address space; and

subtracting the second available space from the total available space.

19. The method of claim 18 , wherein determining the first available space of memory cells currently available for programming further comprises:

ascertaining a first number of blocksets currently available for programming associated with the first address space;

determining the total available space of memory cells currently available for programming further comprises ascertaining a second number of blocksets currently available for programming associated with the first address space and the second address space; and

determining the second available space of memory cells currently available for programming further comprises ascertaining a third number of blocksets currently available for programming associated with the second address space.

20. The method of claim 16 , wherein exempting the second address space from host-write throttling further comprising:

determining a second available space of memory cells currently available for programming associated with the second address space; and

permitting an unthrottled throughput of the second host write stream while the second available space is greater than zero.

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →