# US 10,120,817 B2 · Device and method for scheduling commands in a solid state drive to reduce peak power consumption levels

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,817 B2
- Document ID: US10120817B2
- Status: Granted
- Kind: B2
- Application number: 14/871,124
- Filed: 2015-09-30
- Published: 2017-03-30
- Granted: 2018-11-06
- Earliest claimed: 2015-09-30
- Assignees: Toshiba Memory Corporation
- Applicants: Toshiba Memory Corporation
- Inventors: Julien Margetts; Gary James Calder
- Web page: https://patentgrep.com/patent/US10120817B2

## CPC

- G06F 13/1689: {Synchronisation and timing concerns (synchronisation on a memory bus G06F13/4234)}
- G06F 1/3275: {Power saving in memory, e.g. RAM, cache}
- G06F 3/0625: {Power saving in storage systems}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## 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.

## Claims

### 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.

### Claim 2 (depends on 1)

The solid-state storage device of claim 1, wherein the storage memory stores a plurality of look-up tables.

### Claim 3 (depends on 2)

The solid-state storage device of claim 2, wherein the controller is configured to select a look-up table from the plurality of look-up tables based upon a type of the command to be initiated for processing and a type of the command previously initiated and being processed, or a maximum allowed peak current value.

### Claim 4 (depends on 2)

The solid-state storage device of claim 2, wherein the controller is configured to index at least two look-up tables using the evaluated time difference.

### Claim 5 (depends on 4)

The solid-state storage device of claim 4, wherein the controller is configured to use a time the first look-up table permits initiation of the processing as the time to be used to index the second look-up table.

### Claim 6 (depends on 1)

The solid-state storage device of claim 1, wherein the look-up table is constructed such that the type identifier of the time regions are of the first type if a peak current consumed by the one or more flash memory devices by processing the command to be initiated and the command previously initiated is below a maximum allowed peak current value, and of the second type if the peak current consumed by the one or more flash memory devices by processing the command to be initiated and the command previously initiated will be above the maximum allowed peak current value.

### Claim 7 (depends on 1)

The solid-state storage device of claim 1, wherein the look-up table is updated in real-time with adjustment values based on real time measurements of a current consumed by the one or more flash memory devices according to a type of command issued to the flash memory devices.

### Claim 8 (depends on 1)

The solid-state storage device of claim 1, wherein the look-up table is updated in real-time with adjustment values based on an ambient temperature.

### Claim 9 (depends on 1)

The solid-state storage device of claim 1, wherein the look-up table is updated in real-time with adjustment values based on an age of the flash memory devices.

### Claim 10 (depends on 1)

The solid-state storage device of claim 1, wherein the look-up table is updated in real-time with adjustment values based on a number of program and erase cycles performed by the flash memory devices.

### Claim 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.

### Claim 12 (depends on 11)

The method in claim 11, further comprising indexing a plurality of look-up tables.

### Claim 13 (depends on 12)

The method in claim 12, further comprising selecting a look-up table from the plurality of look-up tables, the selection based upon a type of command to be processed and a type of command previously processed, or a maximum allowed peak current value.

### Claim 14 (depends on 12)

The method in claim 12, further comprising indexing a second look-up table using a time a first look-up table permits initiating processing of the command.

### Claim 15 (depends on 11)

The method in claim 11, wherein the time regions of the look-up table have the type identifier of the first type if a peak current consumed by one or more flash memory devices processing the command to be processed and the command previously processed is below a maximum allowed peak current value, and having the second type if the peak current consumed by the flash memory devices by processing the command to be processed and the command previously processed is above the maximum allowed peak current value.

### Claim 16 (depends on 15)

The method in claim 15, further comprising updating the look-up table in real-time with adjustment values based on real-time measurements of the current consumed by the flash memory devices according to a type of command issued to the flash memory devices.

### Claim 17 (depends on 15)

The method in claim 15, further comprising updating the look-up table in real-time with adjustment values based on an ambient temperature.

### Claim 18 (depends on 15)

The method in claim 15, further comprising updating the look-up table in real-time with adjustment values based on an age of the flash memory devices.

### Claim 19 (depends on 15)

The method in claim 15, further comprising updating the look-up table in real-time with adjustment values based on a number of program and erase cycles performed by the flash memory devices.

### Claim 20 (depends on 1)

The solid-state storage device of claim 1, wherein the command to be initiated and processed and the command previously initiated and being processed are of different command types.

### Claim 21 (depends on 11)

The method of claim 11, wherein the command to be processed and the command previously processed are of different command types.
