IP Library Granted Patent US 12,299,295
Granted Patent B2
US 12,299,295 · App. 17/691,470 · Granted May 13, 2025

Power management for solid state drives in a network

Inventor: Yaron Klein (Raanana, IL)
Assignee: Kioxia Corporation
G06F3/0625G06F1/3225G06F1/3268G06F3/0634G06F3/0688G06F1/3203
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,299,295
App. No.
17/691,470
Granted
May 13, 2025
Kind
B2
Abstract

In one embodiment, a network of SSDs includes a switch with a plurality of powered ports configured to be communicatively coupled to a controller and a host client and a plurality of SSDs configured to be communicatively coupled to the plurality of powered ports. The switch is configured to deliver up to a predefined power level to each of the plurality of SSDs via the plurality of powered port. Each of the plurality of SSDs consumes power. The controller is configured to manage the predefined power level for each of the plurality of SSDs by identifying the power consumed by each of the plurality of SSDs and allocating a new power level to each of the plurality of SSDs based on the power consumed by each of the plurality of SSD. In one embodiment, the switch and the plurality of SSDs are configured to occupy a server rack space.

Claims (51)

1. A network of solid state drives (SSDs) comprising:

a switch including a plurality of powered ports, the switch communicatively coupled to a controller external to the switch, the switch also being communicatively coupled to a host client; and

a plurality of SSDs each consuming power and communicatively coupled to the powered ports of the switch, wherein each of the plurality of SSDs includes a queue of pending memory commands to be performed by the SSD,

wherein the switch is configured to deliver up to a predefined power level to each of the plurality of SSDs via the plurality of powered ports;

wherein the controller is configured to, for each of the plurality of powered ports of the switch:

communicate with the switch to instruct the switch to allocate a power to be provided by each port,

monitor the queues of pending memory commands in the plurality of SSDs, and

modify the amount of power consumed by one or more of the plurality of SSDs based on the monitoring.

2. The network of SSDs of claim 1 , wherein the controller is further configured to:

manage the predefined power level for each of the plurality of SSDs by identifying the power consumed by each of the plurality of SSDs and allocating a new power level to deliver to each of the plurality of SSDs based on the power consumed by each of the plurality of SSD.

3. The network of SSDs of claim 1 , wherein a total power is shared between the plurality of SSDs using an average allocation for each of the plurality of SSDs, and the allocation of power level is reduced by an amount for one of the plurality of SSDs, while the allocation of power level is increased by that amount for at least another of the plurality of SSDs.

4. The network of SSDs of claim 1 , wherein the controller is also configured to manage the total power shared by the plurality of SSDs by either limiting the performance of write commands by the SSDs, or adjusting the frequency of issuing write commands to the SSDs.

5. The network of SSDs of claim 1 , wherein the plurality of powered ports are comprised of Ethernet ports.

6. The network of SSDs of claim 1 , wherein the plurality of SSDs are communicatively coupled to the plurality of powered ports via an adapter.

7. The network of SSDs of claim 1 , wherein the power consumed by each of the plurality of SSDs is identified by calculating the power consumed by each of the plurality of SSDs during one or more predetermined time periods in real-time.

8. The network of SSDs of claim 7 , wherein a root-mean-square power consumption is calculated for each of the plurality of SSDs based on the power consumed during one or more predetermined time periods in real-time.

9. The network of SSDs of claim 1 , wherein the power consumed by each of the plurality of SSDs is identified by estimating the power consumed by each of the plurality of SSDs during one or more predetermined time periods according to a number of commands pending in the queues of each of the plurality of SSDs.

10. The network of SSDs of claim 1 , further comprising a server rack space, wherein the switch and the plurality of SSDs are configured to occupy the server rack space.

11. The network of SSDs of claim 1 , wherein the controller uses a connectivity standard and a protocol to manage the predefined power level for each of the plurality of SSDs.

12. The network of solid state drives (SSDs) of claim 1 , wherein the controller is configured to allocate the power to be provided by each port via an LLDP protocol.

13. The network of solid state drives (SSDs) of claim 1 , wherein the controller is configured to allocate the power to be provided by each port of the switch by instructing the switch to modify the amount of power allocated to at least one of the plurality of ports.

14. A network of solid state drives (SSDs) comprising:

a switch including a plurality of powered ports, the switch being communicatively coupled to a host client;

a plurality of SSDs each consuming power and configured to be communicatively coupled to the powered ports of the switch, wherein each of the plurality of SSDs includes a queue of pending memory commands to be performed by the SSD, wherein the switch is configured to deliver up to a predefined power level to each of the plurality of SSDs via the plurality of powered ports;

a server rack space in which the switch and the plurality of SSDs are configured to occupy; and

a controller communicatively coupled to the switch and external to the switch, the controller configured to, for each of the plurality of powered ports of the switch:

communicate with the switch to instruct the switch to allocate a power to be provided by each port,

monitor the queues of pending memory commands in the plurality of SSDs, and

modify the amount of power consumed by one or more of the plurality of SSDs based on the monitoring.

15. The network of SSDs of claim 14 , wherein the controller is further configured to:

manage a maximum power level allocated to each of the plurality of SSDs by identifying a power consumed by each of the plurality of SSDs and adjusting the maximum power level to deliver to each of the plurality of SSDs based on the power consumed by each of the plurality of SSDs.

16. The network of SSDs of claim 14 , wherein a total power is shared between the plurality of SSDs using an average allocation for each of the plurality of SSDs, and the allocation of power level is reduced by an amount for one of the plurality of SSDs, while the allocation of power level is increased by that amount for at least another of the plurality of SSDs.

17. The network of SSDs of claim 14 , wherein the controller is also configured to manage the total power shared by the plurality of SSDs by either limiting the performance of write commands by the SSDs, or adjusting the frequency of issuing write commands to the SSDs.

18. The network of SSDs of claim 14 , wherein the plurality of powered ports are comprised of Ethernet ports.

19. The network of solid state drives (SSDs) of claim 14 , wherein the controller is configured to allocate the power to be provided by each port via an LLDP protocol.

20. The network of solid state drives (SSDs) of claim 14 , wherein the controller is configured to allocate the power to be provided by each port of the switch by instructing the switch to modify the amount of power allocated to at least one of the plurality of ports.

21. A method of implementing a plurality of SSDs over a network, the method comprising:

identifying a power consumed by each of a plurality of SSDs communicatively coupled to a plurality of powered ports of a switch, wherein each of the plurality of SSDs includes a queue of pending memory commands to be performed by the SSD, the switch being communicatively coupled to a host client;

determining an allocated power level to deliver to each of the plurality of SSDs based on the power consumed by each of the plurality of SSDs, wherein the total of the allocated power levels does not exceed a total system power;

communicating an instruction to the switch, by a controller communicatively coupled to the switch and external to the switch, the determined allocated power to be provided by each of the plurality of ports of the switch;

monitoring, by the controller, the queues of pending memory commands in the plurality of SSDs; and

modifying the amount of power consumed by one or more of the plurality of SSDs based on the monitoring.

22. The method of claim 21 , further comprising:

sharing a total power between the plurality of SSDs using an average allocation for each of the plurality of SSDs, wherein the allocation is reduced by an amount for one of the plurality of SSDs, while the allocation is increased by that amount for at least another of the plurality of SSDs.

23. The method of claim 21 , further comprising:

managing the total power shared by the plurality of SSDs by either limiting the performance of write commands by the SSDs, or adjusting the frequency of issuing write commands to the SSDs.

24. The method of claim 21 , wherein the power consumed by each of the plurality of SSDs is identified by calculating the power consumed by each of the plurality of SSDs during one or more predetermined time periods in real-time.

25. The method of claim 24 , wherein a root-mean-square power consumption is calculated for each of the plurality of SSDs.

26. The method of claim 21 , wherein the power consumed by each of the plurality of SSDs is identified by estimating the power consumed by each of the plurality of SSDs during one or more predetermined time periods according to a number of commands pending in the queues of each of the plurality of SSDs.

27. The method of claim 21 , wherein the controller is configured to allocate the power to be provided by each port via an LLDP protocol.

28. The method of claim 21 , further comprising, if the power consumption by an SSD connected to the port deviates from the allocated power to be provided by each port, instructing the switch to modify the amount of power allocated to at least one of the plurality of ports.

Assignments (1)
CHANGE OF NAME AND ADDRESS Recorded Apr 9, 2025
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 070793/0778 →
Continuity (2)
Continuation 15916642 · Mar 9, 2018
Related Publication 20220197521A1 · Jun 23, 2022
References Cited (44)
US 9268383B2 · Hua et al. · 2016 [cited by applicant]
US 9367353B1 · Ellis · 2016 [cited by examiner]
US 9720598B2 · Malwankar · 2017 [cited by applicant]
US 9747039B1 · Coleman et al. · 2017 [cited by applicant]
US 20060053324A1 · Giat · 2006 [cited by examiner]
US 20070016726A1 · Zohar et al. · 2007 [cited by applicant]
US 20070110360A1 · Stanford · 2007 [cited by examiner]
US 20080184042A1 · Parks et al. · 2008 [cited by applicant]
US 20090164805A1 · Diab · 2009 [cited by examiner]
US 20100153750A1 · Shah · 2010 [cited by applicant]
US 20100332871A1 · Allalouf et al. · 2010 [cited by applicant]
US 20110167286A1 · Varadarajan · 2011 [cited by examiner]
US 20130339760A1 · Zimmerman · 2013 [cited by examiner]
US 20140215254A1 · Mandava et al. · 2014 [cited by applicant]
US 20140245031A1 · Hamdi · 2014 [cited by examiner]
US 20150046646A1 · Elzind · 2015 [cited by applicant]
US 20150169021A1 · Salessi · 2015 [cited by examiner]
US 20150185813A1 · Ping et al. · 2015 [cited by applicant]
US 20150261281A1 · Bickelman et al. · 2015 [cited by applicant]
US 20150331473A1 · Ureji et al. · 2015 [cited by applicant]
US 20150378605A1 · Huang · 2015 [cited by applicant]
US 20160041786A1 · Erez · 2016 [cited by applicant]
US 20160085290A1 · Skandakumaran et al. · 2016 [cited by applicant]
US 20160116968A1 · Thangaraj et al. · 2016 [cited by applicant]
US 20160210060A1 · Dreyer · 2016 [cited by applicant]
US 20160259597A1 · Worley et al. · 2016 [cited by applicant]
US 20160328347A1 · Worley et al. · 2016 [cited by applicant]
US 20170060208A1 · Sawai et al. · 2017 [cited by applicant]
US 20170075611A1 · Choi et al. · 2017 [cited by applicant]
US 20170185554A1 · Fricker · 2017 [cited by applicant]
US 20170286363A1 · Joshua et al. · 2017 [cited by applicant]
US 20180024964A1 · Mao et al. · 2018 [cited by applicant]
US 20180335958A1 · Wu et al. · 2018 [cited by applicant]
US 20190101974A1 · Guim · 2019 [cited by applicant]
US 20190235774A1 · Benisty et al. · 2019 [cited by applicant]
CN 101442548A · 2009 [cited by applicant]
WO 2012137372A1 · 2012 [cited by applicant]
WO 2017131751A1 · 2017 [cited by applicant]
WO 2017188981A1 · 2017 [cited by applicant]
Zvika Guz et al., “NVMe-over-Fabrics Performance Characterization and the Path to Low-Overhead Flash Disaggregation,” Samsung Semiconductor, Inc., May 2017, pp. 1-9. [cited by applicant]
“NVM Express Moves Into the Future,” NVM Express, Inc., Jul. 14, 2017, pp. 1-7. [cited by applicant]
Patrice Couvert, “High Speed I/O processor for NVMe over Fabric (NVMeoF),” Datacenter Product Marketing, KALRAY, 2016, pp. 1-18. [cited by applicant]
International Search Report mailed Jul. 11, 2019 in corresponding application No. PCT/IB2019/00258. [cited by applicant]
PCIe v5 Base specification PCI Express® Base Specification Revision 5.0 Version 1.0, pp. 1-1299, May 22, 2019. [cited by applicant]