IP Library Granted Patent US 11,922,036
Granted Patent B2
US 11,922,036 · App. 17/743,292 · Granted Mar 5, 2024

Host data stream assignment with space-leveling across storage block containers

Inventors: Oleg Kragel (San Jose, CA); Vijay Sivasankaran (Dublin, CA); Mikhail Palityka (Oakville, CA); Lawrence Vazhapully Jacob (Folsom, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/064G06F3/0604G06F3/0659G06F3/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 11,922,036
App. No.
17/743,292
Granted
Mar 5, 2024
Kind
B2
Abstract

Host data stream assignment with space-leveling across storage block containers. In one example, a data storage device including an electronic processor that, when executing a space-leveling scheme, is configured to receive a first host data stream, store the first host data stream in a block container assignment queue (BCAQ), detect a next storage block container switching event, responsive to detecting the next storage block container switching event, randomly select a location of the BCAQ, responsive to randomly selecting the location of the BCAQ, assign a second host data stream located at the location of the BCAQ that is selected to a storage block container of a memory, and control the memory to store the second host data stream in the storage block container that is assigned.

Claims (76)

1. A data storage device comprising:

a memory; and

a data storage controller including an electronic processor and a data storage controller memory that includes a space-leveling scheme and a block container assignment queue (BCAQ), the electronic processor, when executing the space-leveling scheme, is configured to:

receive a first host data stream,

store the first host data stream in the BCAQ,

detect a next storage block container switching event,

responsive to detecting the next storage block container switching event, randomly select a location of the BCAQ,

responsive to randomly selecting the location of the BCAQ, assign a second host data stream located at the location of the BCAQ that is selected to a storage block container of the memory, and

control the memory to store the second host data stream in the storage block container that is assigned.

2. The data storage device of claim 1 , wherein, to randomly select the location of the BCAQ, the electronic processor is further configured to:

randomly select one location of the BCAQ with a pseudo-random number generator,

determine whether the one location of the BCAQ that is randomly selected is occupied with a host data stream, and

responsive to determining that the one location of the BCAQ that is randomly selected is not occupied with the host data stream, randomly select one or more additional locations of the BCAQ with the pseudo-random number generator until one of the one or more additional locations of the BCAQ is occupied with the host data stream, and

wherein the host data stream is the second host data stream.

3. The data storage device of claim 1 , wherein, to randomly select the location of the BCAQ, the electronic processor is further configured to:

determine occupied locations of the BCAQ, and

randomly select one of the occupied locations of the BCAQ with a pseudo-random number generator.

4. The data storage device of claim 1 , wherein randomly select the location of the BCAQ and responsive to randomly selecting the location of the BCAQ, assign the second host data stream located at the location of the BCAQ that is selected to the storage block container is an introduction of a delay between a first time that the second host data stream is received and a second time that the second host data stream that is then assigned to the storage block container.

5. The data storage device of claim 1 , wherein when executing the space-leveling scheme, the electronic processor is configured to:

receive a plurality of host data streams including the first host data stream, and

store the plurality of host data streams in the BCAQ.

6. The data storage device of claim 1 , wherein the electronic processor is further configured to:

assign the first host data stream in a round-robin fashion to a first storage block container from among all storage block containers of the memory, and

control the memory to store the first host data stream in the first storage block container that is assigned.

7. The data storage device of claim 1 , wherein the electronic processor is further configured to:

assign the first host data stream in accordance with immediate availability of a first storage block container from among all storage block containers of the memory, and

control the memory to store the first host data stream in the first storage block container that is assigned.

8. A method comprising:

receiving, with a data storage controller, a first host data stream;

storing, with the data storage controller performing a space-leveling scheme, the first host data stream in a block container assignment queue (BCAQ);

detecting, with the data storage controller performing the space-leveling scheme, a next storage block container switching event;

randomly selecting, with the data storage controller performing the space-leveling scheme, a location of the BCAQ in response to detecting the next storage block container switching event;

assigning, with the data storage controller performing the space-leveling scheme, a second host data stream located at the location of the BCAQ that is selected to a storage block container of a memory in response to randomly selecting the location of the BCAQ; and

controlling, with the data storage controller performing the space-leveling scheme, the memory to store the second host data stream in the storage block container that is assigned.

9. The method of claim 8 , wherein randomly selecting the location of the BCAQ further includes

randomly selecting one location of the BCAQ with a pseudo-random number generator,

determining whether the one location of the BCAQ that is randomly selected is occupied with a host data stream, and

randomly selecting one or more additional locations of the BCAQ with the pseudo-random number generator until one of the one or more additional locations of the BCAQ is occupied with the host data stream in response to determining that the one location of the BCAQ that is randomly selected is not occupied with the host data stream, and

wherein the host data stream is the second host data stream.

10. The method of claim 8 , wherein randomly selecting the location of the BCAQ further includes

determining occupied locations of the BCAQ, and

randomly selecting one of the occupied locations of the BCAQ with a pseudo-random number generator.

11. The method of claim 8 , wherein randomly selecting the location of the BCAQ and assigning the second host data stream located at the location of the BCAQ that is selected to the storage block container is an introduction of a delay between a first time that the second host data stream is received and a second time that the second host data stream that is then assigned to the storage block container.

12. The method of claim 8 , further comprising:

receiving a plurality of host data streams including the first host data stream; and

storing the plurality of host data streams in the BCAQ.

13. The method of claim 8 , further comprising:

receiving a third host data stream;

assigning the third host data stream in a round-robin fashion to a first storage block container from among all storage block containers of the memory; and

controlling the memory to store the third host data stream in the first storage block container that is assigned.

14. The method of claim 8 , further comprising:

receiving a third host data stream;

assigning the third host data stream in accordance with immediate availability of a first storage block container from among all storage block containers of the memory; and

controlling the memory to store the third host data stream in the first storage block container that is assigned.

15. A apparatus comprising:

means for receiving a first host data stream;

means for storing the first host data stream in a block container assignment queue (BCAQ);

means for detecting a next storage block container switching event,

means for randomly selecting a location of the BCAQ in response to detecting the next storage block container switching event;

means for assigning a second host data stream located at the location of the BCAQ that is selected to a storage block container of a memory in response to randomly selecting the location of the BCAQ; and

means for controlling the memory to store the second host data stream in the storage block container that is assigned.

16. The apparatus of claim 15 , wherein means for randomly selecting the location of the BCAQ further includes means for randomly selecting one location of the BCAQ with a pseudo-random number generator,

means for determining whether the one location of the BCAQ that is randomly selected is occupied with a host data stream, and

means for randomly selecting one or more additional locations of the BCAQ with the pseudo-random number generator until one of the one or more additional locations of the BCAQ is occupied with the host data stream in response to determining that the one location of the BCAQ that is randomly selected is not occupied with the host data stream,

wherein the host data stream is the second host data stream.

17. The apparatus of claim 15 , wherein means for randomly selecting the location of the BCAQ further includes

means for determining occupied locations of the BCAQ, and

means for randomly selecting one of the occupied locations of the BCAQ with a pseudo-random number generator.

18. The apparatus of claim 15 , wherein means for randomly selecting the location of the BCAQ and means for assigning the second host data stream located at the location of the BCAQ that is selected to the storage block container is an introduction of a delay between a first time that the second host data stream is received and a second time that the second host data stream that is then assigned to the storage block container.

19. The apparatus of claim 15 , further comprising:

means for receiving a plurality of host data streams including the first host data stream; and

means for storing the plurality of host data streams in the BCAQ.

20. The apparatus of claim 15 , further comprising:

means for receiving a third host data stream;

means for assigning the third host data stream in a round-robin fashion to a first storage block container from among all storage block containers of the memory; and

means for controlling the memory to store the third host data stream in the first storage block container that is assigned.

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 May 12, 2022
From: KRAGEL, OLEG; SIVASANKARAN, VIJAY; PALITYKA, MIKHAIL; VAZHAPULLY JACOB, LAWRENCE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060050/0689 →
Continuity (1)
Related Publication 20230367499A1 · Nov 16, 2023