IP Library Granted Patent US 11,294,827
Granted Patent B2
US 11,294,827 · App. 16/703,643 · Granted Apr 5, 2022

Non-sequential zoned namespaces

Inventors: Alan D. Bennett (Edinburgh, GB); Matias Bjorling (Copenhagen, DK); Daniel L. Helmick (Broomfield, CO)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/1081G06F3/0604G06F3/064G06F3/0659G06F3/0673G06F12/0246
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,294,827
App. No.
16/703,643
Granted
Apr 5, 2022
Kind
B2
Abstract

The present disclosure generally relates to methods of operating storage devices. A controller of the storage device is configured to retrieve a first command to write data to one or more first logical blocks of a first zone, and direct memory access (DMA) read and write the data associated with the first command to the first logical blocks. The first logical blocks are between a zone starting point of the first zone and a zone capacity of the first zone. The controller is configured to retrieve a second command to write data to one or more second logical blocks of the first zone, and DMA read and write the data associated with the second command to the second logical blocks. The second logical blocks are between the zone starting and the zone capacity of the first zone, and the first logical blocks are non-sequential to the second logical blocks.

Claims (65)

1. A storage device, comprising:

a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks; and

a controller coupled to the media unit, the controller configured to:

retrieve a first command to write data to a first zone and direct memory access (DMA) read data associated with the first command;

identify one or more first logical blocks of the first zone to write the data associated with the first command to, wherein the one or more first logical blocks are between a zone starting logical block address of the first zone and a zone capacity of the first zone;

write the data associated with the first command to the one or more first logical blocks of the first zone;

retrieve a second command to write data to the first zone and DMA read data associated with the second command;

identify one or more second logical blocks of the first zone to write the data associated with the second command to, wherein the one or more second logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more second logical blocks are spaced from the one or more first logical blocks by one or more empty logical blocks;

write the data associated with the second command to the one or more second logical blocks of the first zone while the one or more empty logical blocks remain empty after DMA reading the data associated with the second command; and

retrieve one or more additional commands to write data to the first zone and write the data associated with the one or more additional commands to one or more available logical blocks within the first zone, sequentially or non-sequentially, until the first zone reaches the zone capacity, wherein upon the first zone reaching the zone capacity, erasure of all data stored within the first zone is scheduled.

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

write the data associated with the first command prior to retrieving the second command to write data.

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

return a first completion entry to a completion queue of a host device after writing the data associated with the first command; and

return a second completion entry to the completion queue of the host device after writing the data associated with the second command.

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

update one or more tracking tables after writing the data associated with the first command to indicate that the one or more first logical blocks are unavailable to write data associated with subsequent commands to after returning the first completion entry; and

update the one or more tracking tables after writing the data associated with the second command to indicate that the one or more second logical blocks are unavailable to write data associated with subsequent commands to after returning the second completion entry.

5. The storage device of claim 4 , wherein the one or more tracking tables comprise a first tracking table stored in the storage device and a second tracking table stored in the host device.

6. The storage device of claim 5 , wherein the host device selects the one or more second blocks for storing the data associated with the second command using the second tracking table.

7. The storage device of claim 1 , wherein a host device selects the one or more first blocks for storing the data associated with the first command.

8. A storage device, comprising:

a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks; and

a controller coupled to the media unit, the controller configured to:

retrieve and read a first command to write data to one or more first logical blocks in a first zone, wherein the one or more first logical blocks are between a zone starting logical block address of the first zone and a zone capacity of the first zone;

write the data associated with the first command to the one or more first logical blocks of the first zone and to a first location in the media unit directly after reading the first command;

retrieve and read a second command to write data to one or more second logical blocks in the first zone, wherein the one or more second logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more second logical blocks are non-sequential to the first one or more logical blocks;

write the data associated with the second command to the one or more second logical blocks of the first zone and to a second location in the media unit while one or more empty logical blocks remain empty between the one or more first logical blocks and the one or more second logical blocks after reading the second command, the second location being located sequential to the first location; and

retrieve one or more additional commands to write data to the first zone and write the data associated with the one or more additional commands to one or more available logical blocks within the first zone, sequentially or non-sequentially, until the first zone reaches the zone capacity, wherein upon the first zone reaching the zone capacity, erasure of all data stored within the first zone is scheduled.

9. The storage device of claim 8 , wherein prior to retrieving the one or more additional commands, the controller is further configured to:

retrieve a third command to write data to one or more third logical blocks in the first zone, wherein the one or more third logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more third logical blocks are non-sequential to the one or more second logical blocks; and

write the data associated with the third command to the one or more third logical blocks of the first zone and to a third location in the media unit, the third location being located sequential to the second location.

10. The storage device of claim 8 , wherein the data associated with the second command is written to two or more second logical blocks, and wherein the two or more second logical blocks are non-sequential to one another.

11. The storage device of claim 8 , wherein a host device selects the one or more first blocks for storing the data associated with the first command and the one or more second logical blocks for storing the data associated with the second command.

12. The storage device of claim 8 , wherein prior to retrieving the one or more additional commands, the controller is further configured to:

return a first completion entry to a completion queue of a host device after writing the data associated with the first command; and

update one or more tracking tables after writing the data associated with the first command to indicate that the one or more first logical blocks are unavailable to write data associated with subsequent commands to.

13. The storage device of claim 12 , wherein at least one of the one or more tracking tables is stored in the media unit of the storage device.

14. A storage system, comprising:

a host device, the host device comprising a first tracking table; and

a storage system, wherein the storage system comprises:

a media unit, wherein a capacity of the media unit is divided into a plurality of zones, each zone comprising a plurality of logical blocks, and wherein the media unit stores a second tracking table; and

a controller coupled to the media unit, the controller configured to:

retrieve a first command to write data to one or more first logical blocks in a first zone and DMA read data associated with the first command, wherein the one or more first logical blocks are between a zone starting logical block address of the first zone and a zone capacity of the first zone;

write the data associated with the first command to the one or more first logical blocks of the first zone directly after retrieving the first command and DMA reading the data associated with the first command;

update the first and second tracking tables to indicate that the one or more first logical blocks are unavailable to write data associated with subsequent commands to;

retrieve a second command to write data to one or more second logical blocks in the first zone and DMA read data associated with the second command, wherein the one or more second logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein at least one of the one or more second logical blocks are non-sequential to the one or more first logical blocks;

write the data associated with the second command to the one or more second logical blocks of the first zone while one or more empty logical blocks remain empty between the one or more first logical blocks and the at least one of the one or more second logical blocks after retrieving the second command and DMA reading the data associated with the second command;

update the first and second tracking tables to indicate that the one or more second logical blocks are unavailable to write data associated with subsequent commands to; and

retrieve one or more additional commands to write data to the first zone and write the data associated with the one or more additional commands to one or more available logical blocks within the first zone, sequentially or non-sequentially, until the first zone reaches the zone capacity, wherein upon the first zone reaching the zone capacity, erasure of all data stored within the first zone is scheduled.

15. The storage system of claim 14 , wherein prior to retrieving the one or more additional commands, the controller is further configured to:

retrieve a third command to write data to one or more third logical blocks in the first zone and DMA read data associated with the third command, wherein the one or more third logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein the one or more third logical blocks are non-sequential to at least the one or more second logical blocks;

write the data associated with the third command to the one or more third logical blocks of the first zone; and

update the first and second tracking tables to indicate that the one or more third logical blocks are unavailable to write data associated with subsequent commands to.

16. The storage system of claim 14 , wherein prior to retrieving the one or more additional commands, the controller is further configured to:

retrieve a third command to write data to two or more third logical blocks in the first zone and DMA read data associated with the third command, wherein the two or more third logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein at least one of the two or more third logical blocks is disposed between the one or more first logical blocks and the one or more second logical blocks;

write the data associated with the third command to the two or more third logical blocks of the first zone; and

update the first and second tracking tables to indicate that the two or more third logical blocks are unavailable to write data associated with subsequent commands to.

17. The storage system of claim 14 , wherein prior to retrieving the one or more additional commands, the controller is further configured to:

retrieve a third command to write data to two or more third logical blocks in the first zone and DMA read data associated with the third command, wherein the two or more third logical blocks are between the zone starting logical block address of the first zone and the zone capacity of the first zone, and wherein at least one of the two or more third logical blocks are sequentially located before the first one or more logical blocks or the one or more second logical blocks;

write the data associated with the third command to the two or more third logical blocks of the first zone; and

update the first and second tracking tables to indicate that the two or more third logical blocks are unavailable to write data associated with subsequent commands to.

18. The storage system of claim 14 , wherein the host device selects the one or more first blocks for storing the data associated with the first command and the one or more second logical blocks for storing the data associated with the second command based on the first tracking table.

19. The storage system of claim 18 , wherein the controller is further configured to return a first completion entry to a completion queue of the host device after writing the data associated with the first command, and wherein the host device updates the first tracking table after receiving the first completion entry.

20. The storage system of claim 14 , wherein the data associated with the second command is written to two or more second logical blocks, and wherein the two or more second logical blocks are spaced from one another by one or more empty logical blocks or at least one of the one or more first logical blocks.

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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2019
From: BENNETT, ALAN D.; BJORLING, MATIAS; HELMICK, DANIEL L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 051182/0247 →
Cited By (12)
US 12,292,827 US 12,298,902 US 12,298,907 US 12,360,892 US 12,499,040 US 12,504,899 US 12,541,451 US 12,572,468 US 12,619,380 US 12,645,397 US 12,657,138 US 12,711,057