IP Library › Granted Patent US 12,008,251
Granted Patent B2
US 12,008,251 · App. 17/846,316 · Granted Jun 11, 2024

Rate levelling among peer data storage devices

Inventors: Ramanathan Muthiah (Bangalore, IN); Judah Gamliel Hahn (Ofra, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/064G06F3/0604G06F3/0688G06F11/1076
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,008,251
App. No.
17/846,316
Granted
Jun 11, 2024
Kind
B2
Abstract

Example storage systems, data storage devices, and methods provide rate levelling among peer storage devices. A master storage device among peer storage devices receives host commands, determines the workload states of the peer storage devices, divides the data units in the host commands into data blocks for data striping, allocates the data blocks among the peer storage devices, and sends the data blocks to the peer storage devices using a peer communication channel.

Claims (74)

1. A storage device comprising:

a non-volatile storage medium;

an interface configured to communicate with a plurality of peer storage devices over a peer communication channel; and

at least one processor configured to, alone or in combination:

receive a host storage command for a data unit from a host system;

determine workload states for the plurality of peer storage devices;

divide the data unit into a plurality of data blocks;

allocate, based on the workload states, the plurality of data blocks to target peer storage devices among the plurality of peer storage devices; and

send, through the peer communication channel, the plurality of data blocks to the target peer storage devices.

2. The storage device of claim 1 , wherein:

the at least one processor is further configured to, alone or in combination, determine thermal states for the plurality of peer storage devices; and

allocating the plurality of data blocks to the target peer storage devices is further based on the thermal states.

3. The storage device of claim 1 , wherein:

the at least one processor is further configured to, alone or in combination, determine endurance values for the plurality of peer storage devices; and

allocating the plurality of data blocks to the target peer storage devices is further based on the endurance values.

4. The storage device of claim 1 , wherein the at least one processor is further configured to, alone or in combination:

query each peer storage device of the plurality of peer storage devices for peer state data;

receive, from each peer storage device of the plurality of peer storage devices, the peer state data for that peer storage device;

store the peer state data for each peer storage device of the plurality of peer storage devices; and

use the peer state data to select the target peer storage devices from among the plurality of peer storage devices.

5. The storage device of claim 1 , further comprising:

a host logical block address mapping table configured to map host logical block addresses to storage locations among the plurality of peer storage devices, wherein the at least one processor is further configured to, alone or in combination:

determine a peer storage location for each data block of the plurality of data blocks; and

store, for each data block of the plurality of data blocks, the peer storage location in the host logical block address mapping table.

6. The storage device of claim 1 , further comprising:

a remotely addressable memory configured to include a controller memory buffer, wherein the at least one processor is further configured to, alone or in combination, receive the host storage command in at least one command queue in the controller memory buffer.

7. The storage device of claim 6 , wherein:

each peer storage device of the plurality of peer storage devices comprises a peer controller memory buffer configured to receive peer storage commands in at least one peer command queue; and

the at least one processor is further configured to, alone or in combination, send the plurality of data blocks to the target peer storage devices by writing each data block in at least one peer storage command in the at least one peer command queue of a corresponding target peer storage device.

8. The storage device of claim 7 , wherein the at least one processor is further configured to send each data block from the controller memory buffer to the peer controller memory buffer of the target peer storage device through the peer communication channel using direct memory access.

9. The storage device of claim 1 , wherein the at least one processor is further configured to, alone or in combination:

manage storage operations to the non-volatile storage medium;

determine a local workload state for the storage operations to the non-volatile storage medium, and

allocate, based on the local workload state, at least one data block of the plurality of data blocks to the non-volatile storage medium.

10. The storage device of claim 1 , wherein the at least one processor is further configured to, alone or in combination:

determine a next master storage device from the plurality of peer storage devices; and

transfer functions for allocating data blocks to target peer storage devices to the next master storage device.

11. A computer-implemented method comprising:

establishing, among a plurality of peer storage devices, a peer communication channel;

receiving, by a first peer storage device of the plurality of peer storage devices, a host storage command for a data unit from a host system;

determining, by the first peer storage device, workload states for the plurality of peer storage devices;

dividing, by the first peer storage device, the data unit into a plurality of data blocks;

allocating, by the first peer storage device and based on the workload states, the plurality of data blocks to target peer storage devices among the plurality of peer storage devices; and

sending, by the first peer storage device and through the peer communication channel, the plurality of data blocks to the target peer storage devices.

12. The computer-implemented method of claim 11 , further comprising:

determining, by the first peer storage device, thermal states for the plurality of peer storage devices, wherein allocating the plurality of data blocks to the target peer storage devices is further based on the thermal states.

13. The computer-implemented method of claim 11 , further comprising:

determining, by the first peer storage device, endurance values for the plurality of peer storage devices, wherein allocating the plurality of data blocks to the target peer storage devices is further based on the endurance values.

14. The computer-implemented method of claim 11 , further comprising:

querying, by the first peer storage device, each peer storage device of the plurality of peer storage devices for peer state data;

receiving, by the first peer storage device and from each peer storage device of the plurality of peer storage devices, the peer state data for that peer storage device;

storing, by the first peer storage device, the peer state data for each peer storage device of the plurality of peer storage devices; and

using, by the first peer storage device, the peer state data to select the target peer storage devices from among the plurality of peer storage devices.

15. The computer-implemented method of claim 11 , further comprising:

determining, by the first peer storage device, a peer storage location for each data block of the plurality of data blocks; and

storing, by the first peer storage device and for each data block of the plurality of data blocks, the peer storage location in a host logical block address mapping table, wherein the host logical block address mapping table is configured to map host logical block addresses to storage locations among the plurality of peer storage devices.

16. The computer-implemented method of claim 11 , further comprising:

receiving, by the first peer storage device, the host storage command in at least one command queue in a controller memory buffer configured in a remotely addressable memory of the first peer storage device.

17. The computer-implemented method of claim 16 , further comprising:

sending, by the first peer storage device, the plurality of data blocks to the target peer storage devices by writing each data block in at least one peer storage command to at least one peer command queue of a corresponding target peer storage device, wherein each peer storage device of the plurality of peer storage devices comprises a controller memory buffer configured in a remotely addressable memory to receive peer storage commands in at least one peer command queue.

18. The computer-implemented method of claim 17 , further comprising:

sending each data block from the controller memory buffer of the first peer storage device to the controller memory buffer of the target peer storage device through the peer communication channel using direct memory access.

19. The computer-implemented method of claim 11 , further comprising:

determining a next master storage device from the plurality of peer storage devices; and

transferring functions for allocating data blocks to target peer storage devices from the first peer storage device to the next master storage device.

20. A storage system comprising:

a plurality of peer storage devices, wherein a first peer storage device of the plurality of peer storage devices comprises:

a non-volatile storage medium;

means for establishing, among a plurality of peer storage devices, a peer communication channel;

means for receiving, by the first peer storage device, a host storage command for a data unit from a host system;

means for determining, by the first peer storage device, workload states for the plurality of peer storage devices;

means for dividing, by the first peer storage device, the data unit into a plurality of data blocks;

means for allocating, by the first peer storage device and based on the workload states, the plurality of data blocks to target peer storage devices from among the plurality of peer storage devices; and

means for sending, by the first peer storage device and through the peer communication channel, the plurality of data blocks to the target peer storage devices.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2022
From: MUTHIAH, RAMANATHAN; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060275/0632 →
Continuity (1)
Related Publication 20230418490A1 · Dec 28, 2023
Cited By (1)
US 12,748,549