IP Library Granted Patent US 9,323,304
Granted Patent B2
US 9,323,304 · App. 14/133,159 · Granted Apr 26, 2016

Dynamic self-correcting power management for solid state drive

Inventors: Nader Salessi (Laguna Niguel, CA); Joao Alcantara (Irvine, CA)
Assignee: NXGN Data, Inc.
G06F1/266
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 9,323,304
App. No.
14/133,159
Granted
Apr 26, 2016
Kind
B2
Abstract

A system and method for operating a solid state drive (SSD) within power limitations while maintaining SSD performance. In one embodiment a power management integrated circuit (PMIC) is used to measure power consumption, and a built-in self-test (BIST) procedure is used to exercise the storage device, and to calibrate the power consumed by various SSD operations. The results are stored in a power consumption cost table. In one embodiment, a procedure to dynamically adjust the power consumption cost table is employed. A power credit allocation scheme is used, along with the power consumption cost table, to track and limit the power consumed by the SSD in operation.

Claims (39)

1. A system for power management in a solid state drive (SSD) comprising a flash memory, the system comprising:

a controller; and

a power management integrated circuit (PMIC),

the controller configured to receive commands, each command corresponding to a requested read operation, a requested write operation, or a requested erase operation to be dispatched to the flash memory,

the controller configured to place each command in a command queue, and to dispatch each command from the command queue to the flash memory, according to an algorithm, so as to maintain a power consumption of the solid state drive below a maximum acceptable power consumption value, the algorithm employing a power consumption cost table,

the controller configured to dynamically adjust the power consumption cost table based on information received from the PMIC,

wherein the algorithm comprises:

forming a pool containing a quantity of credits proportional to the maximum acceptable power consumption value;

removing a first quantity of credits from the pool for each write operation conducted, at the beginning of the write operation, and replacing the first quantity of credits at the completion of the write operation, the first quantity of credits being proportional to a mean power consumption of a write operation;

removing a second quantity of credits from the pool for each read operation conducted, at the beginning of the read operation, and replacing the second quantity of credits at the completion of the read operation, the second quantity of credits being proportional to a mean power consumption of a read operation;

removing a third quantity of credits from the pool for each erase operation conducted, at the beginning of the erase operation, and replacing the third quantity of credits at the completion of the erase operation, the third quantity of credits being proportional to a mean power consumption of an erase operation, the mean power consumption of the write operation, the mean power consumption of the read operation, and the mean power consumption of the erase operation being determined from the power consumption cost table; and

delaying a command in the command queue when there are insufficient credits in the pool for the command.

2. The system of claim 1 , wherein the controller is configured to dynamically adjust the power consumption cost table by:

performing a built-in-self-test (BIST) procedure comprising:

a plurality of test read operations;

a plurality of test write operations; and

a plurality of test erase operations; and

measuring the power consumed by the performing of the plurality of test read operations, the plurality of test write operations, and the plurality of test erase operations.

3. The system of claim 1 , wherein the controller is configured to dynamically adjust the power consumption cost table prior to initial operation of the SSD.

4. The system of claim 1 , wherein the controller is configured to dynamically adjust the power consumption cost table by correlating, during operation of the solid state drive, power consumption data from the PMIC with a frequency to simultaneously perform read operations, write operations, and erase operations.

5. The system of claim 4 , wherein the controller is configured to dynamically adjust the power consumption cost table only when the power consumption of the solid state drive exceeds a threshold fraction of the maximum acceptable power consumption value.

6. The system of claim 5 , wherein the threshold fraction is 50%.

7. The system of claim 1 , wherein the controller comprises a flash manager.

8. The system of claim 1 , wherein the controller comprises a central processing unit (CPU).

9. A method for operating a solid state drive comprising a controller, a flash memory, and a power management integrated circuit (PMIC), the method comprising:

receiving commands, each command corresponding to a requested read operation, a requested write operation, or a requested erase operation to be executed in the flash memory;

placing each command in a command queue;

dispatching each command from the command queue to the flash memory, according to an algorithm, so as to maintain a power consumption of the solid state drive below a maximum acceptable power consumption value, the algorithm employing a power consumption cost table;

dynamically adjusting, by the controller, the power consumption cost table based on information received from the PMIC;

forming a pool containing a quantity of credits proportional to the maximum acceptable power consumption value;

removing a first quantity of credits from the pool for each write operation conducted, at the beginning of the write operation, and replacing the first quantity of credits at the completion of the write operation, the first quantity of credits being proportional to a mean power consumption of a write operation;

removing a second quantity of credits from the pool for each read operation conducted, at the beginning of the read operation, and replacing the second quantity of credits at the completion of the read operation, the second quantity of credits being proportional to a mean power consumption of a read operation;

removing a third quantity of credits from the pool for each erase operation conducted, at the beginning of the erase operation, and replacing the third quantity of credits at the completion of the erase operation, the third quantity of credits being proportional to a mean power consumption of an erase operation, the mean power consumption of the write operation, the mean power consumption of the read operation, and the mean power consumption of the erase operation being determined from the power consumption cost table; and

delaying a command in the command queue when there are insufficient credits in the pool for the command.

10. The method of claim 9 , comprising dynamically adjusting, by the controller, the power consumption cost table prior to initial operation of the solid state drive.

11. The method of claim 9 , wherein the dynamically adjusting, by the controller, of the power consumption cost table comprises:

performing, under the control of the controller executing a built-in-self-test (BIST) procedure, a plurality of test read operations, a plurality of test write operations, and a plurality of test erase operations; and

measuring the power consumed by the performing of the plurality of test read operations, the plurality of test write operations, and the plurality of test erase operations.

12. The method of claim 11 , wherein the measuring of the power consumed by the performing of the plurality of test read operations, the plurality of test write operations, and the plurality of test erase operations comprises measuring, by a power management integrated circuit (PMIC), the power consumed by the performing of the plurality of test read operations, the plurality of test write operations, and the plurality of test erase operations.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF CONVEYING PARTY PREVIOUSLY RECORDED AT REEL: 69518 FRAME: 243. ASSIGNOR(S) HEREBY CONFIRMS THE ASSET PURCHASE AGREEMENT. Recorded Jan 29, 2025
From: NGD SYSTEMS, INC.
To: NETLIST, INC.
Reel/Frame 070163/0719 →
ASSET PURCHASE AGREEMENT Recorded Dec 5, 2024
From: CMBG-FBC NGD SYSTEMS, LLC
To: NETLIST, INC.
Reel/Frame 069518/0243 →
SECURITY INTEREST Recorded Nov 3, 2021
From: NGD SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 058012/0289 →
MERGER AND CHANGE OF NAME Recorded Oct 20, 2016
From: NXGN DATA, INC.; NGD SYSTEMS, INC.
To: NGD SYSTEMS, INC.
Reel/Frame 040448/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2013
From: SALESSI, NADER; ALCANTARA, JOAO
To: NXGN DATA, INC.
Reel/Frame 031819/0171 →
Continuity (1)
Related Publication 20150169021A1 · Jun 18, 2015