Device and Method for Scheduling Commands in a Solid State Drive to Reduce Peak Power Consumption Levels
First Claim
1. A solid-state storage device comprising:
- a processor;
an I/O interface configured to allow communication between the processor and a host computer system, wherein the processor is configured to receive an instruction from the host computer system via the I/O interface;
a controller unit connected to the processor, the controller unit further connected to one or more memory bus channels, wherein each memory bus channel is connected to one or more flash memory devices, the controller unit configured to initiate a processing of a command issued by the processor to a flash memory device in response to the processor receiving the instruction from the host device, the controller unit further configured to assign a timestamp to the command; and
a non-transitory storage memory connected to the controller unit, the storage memory storing a look-up table having one or more rows containing time regions when the command can be processed, each time region have a type identifier and a start time and an end time,wherein the controller unit is further configured to evaluate a time difference between a timestamp of a command to be initiated and processed and a timestamp of a command previously initiated and being processed, and to retrieve the row of the look-up table indexed by the time difference, and if the time difference is found within any time region of a row of the look-up table having a type identifier of a first type, immediately initiating the processing of the command, and if the time difference is found within any time region of a row of the look-up table having a type identifier of a second type, initiating processing of the command at the end time of the time region with the second type identifier.
6 Assignments
0 Petitions
Accused Products
Abstract
The current consumed by flash memory devices on the channels of a solid-state drive (SSD) device will be in the form of a time varying waveform, characterized mainly by the types of commands being processed, and are often in the form of periods of constant levels interspersed with very short high current peaks or spikes. When multiple commands are being processed, significant high current peak demands and current surges can occur. The invention described herein is a device and method for scheduling commands to be processed in order to reduce the size of peak current demands and current surges. According to one embodiment of the invention, the device and method for scheduling a command uses look-up tables to determine the time to initiate the processing of the command by the flash memory devices.
-
Citations
19 Claims
-
1. A solid-state storage device comprising:
-
a processor; an I/O interface configured to allow communication between the processor and a host computer system, wherein the processor is configured to receive an instruction from the host computer system via the I/O interface; a controller unit connected to the processor, the controller unit further connected to one or more memory bus channels, wherein each memory bus channel is connected to one or more flash memory devices, the controller unit configured to initiate a processing of a command issued by the processor to a flash memory device in response to the processor receiving the instruction from the host device, the controller unit further configured to assign a timestamp to the command; and a non-transitory storage memory connected to the controller unit, the storage memory storing a look-up table having one or more rows containing time regions when the command can be processed, each time region have a type identifier and a start time and an end time, wherein the controller unit is further configured to evaluate a time difference between a timestamp of a command to be initiated and processed and a timestamp of a command previously initiated and being processed, and to retrieve the row of the look-up table indexed by the time difference, and if the time difference is found within any time region of a row of the look-up table having a type identifier of a first type, immediately initiating the processing of the command, and if the time difference is found within any time region of a row of the look-up table having a type identifier of a second type, initiating processing of the command at the end time of the time region with the second type identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for scheduling the processing of commands on a solid-state drive comprising:
-
assigning a timestamp to a command to be processed on the solid state drive, calculating a time difference between the timestamp of the command to be processed and a timestamp of a command previously processed; indexing a look-up table using the time difference where the look-up table contains one or more rows containing time regions when the command to be processed can be processed, each time region having a type identifier and a start time and an end time; initiating processing of the command to be processed immediately if the time difference is found to be within a time region having a type identifier of a first type; and initiating processing of the command to be processed at the end time of a time region if the time difference is found to be within the time region having a type identifier of the second type. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification