Arbitration techniques for managed memory
AssigneeMicron Technology, Inc.
InventorDavid Aaron Palmer
Life of this patent
Estimating the term…
Abstract
Devices and techniques for arbitrating operation of memory devices in a managed NAND memory system to conform the operation to a power budget. In an example, a method can include initiating a first plurality of host-requested NAND memory operations of a first type at a first channel of a memory device for a first interval, and, at the completion of the first interval, performing a second plurality of homogeneous, host-requested NAND memory operations of a second type at the first multiple plane memory die for a second interval.
Claims10
A method comprising:
- receiving and buffering in a queue multiple memory requests for memory commands of first and second types at a memory system;
- initiating memory commands of the first type at a first channel of the memory system over a first interval;
- after the first interval, initiating memory commands of the second type at the first channel over a second interval;
- not initiating memory commands of either the first type or the second type on a second channel of the memory system;
- initiating memory commands of the first type at a third channel of the memory system over the first interval;
- staggering at least a portion of a first memory command of the first type on the first channel to offset a command power peak portion of the first memory command and a command power peak portion of a second memory command of the first type on the third channel;
- determining a current power usage estimate based upon a number of active channels and a scheduling of intervals for each active command type on each active channel;
- while a portion of the first memory command is executing, summing a status register indicative of a current power usage and an amount of power associated with a component of a third memory command, the third memory command and a fourth memory command in the queue;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with a component of the third memory command is more than a power budget and in response:
- summing the status register and an amount of power associated with a component of the fourth memory command;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with the component of the third memory command is less than or equal to the power budget and in response, executing the component of the third memory command;
- calculating a power budget error based upon the current power usage and the power budget, the power budget error describing the extent to which the current power usage exceeds the power budget;
- determining that the power budget error exceeds a threshold;
- and
- responsive to determining that the power budget error exceeds the threshold:
- causing the first channel to enter a sleep mode;
- and
- adjusting, at the second and third channel, a scheduling of a first future interval that initiates memory commands of the first type and a scheduling of a second future interval that initiates memory commands of the second type to reduce a future power budget error.
A memory system comprising:
- multiple memory die;
- a memory controller coupled to each memory die of the multiple memory die with one or more channels, the memory controller configured to perform operations comprising:
- receiving and buffering in a queue multiple memory requests for memory commands of first and second types at a memory system;
- initiating memory commands of the first type at a first channel of the memory system over a first interval;
- after the first interval, initiating memory commands of the second type at the first channel over a second interval;
- not initiating memory commands of either the first type or the second type on a second channel of the memory system;
- initiating memory commands of the first type at a third channel of the memory system over the first interval;
- staggering at least a portion of a first memory command of the first type on the first channel to offset a command power peak portion of the first memory command and a command power peak portion of a second memory command of the first type on the third channel;
- determining a current power usage estimate based upon a number of active channels and a scheduling of intervals for each active command type on each active channel;
- while a portion of the first memory command is executing, summing a status register indicative of a current power usage and an amount of power associated with a component of a third memory command, the third memory command and a fourth memory command in the queue;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with a component of the third memory command is more than a power budget and in response:
- summing the status register and an amount of power associated with a component of the fourth memory command;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with the component of the third memory command is less than or equal to the power budget and in response, executing the component of the third memory command;
- calculating a power budget error based upon the current power usage and the power budget, the power budget error describing the extent to which the current power usage exceeds the power budget;
- determining that the power budget error exceeds a threshold;
- and
- responsive to determining that the power budget error exceeds the threshold:
- causing the first channel to enter a sleep mode;
- and
- adjusting, at the second and third channel, a scheduling of a first future interval that initiates memory commands of the first type and a scheduling of a second future interval that initiates memory commands of the second type to reduce a future power budget error.
A non-transitory machine-readable medium including instructions for power management of a NAND memory system, the instructions, when executed by processing circuitry, cause the processing circuitry to perform operations comprising:
- receiving and buffering in a queue multiple memory requests for memory commands of first and second types at the NAND memory system;
- initiating memory commands of the first type at a first channel of the NAND memory system over a first interval;
- after the first interval, initiating memory commands of the second type at the first channel over a second interval;
- and
- not initiating memory commands of either the first type or the second type on a second channel of the NAND memory system;
- wherein the memory commands of the first type are read operations, and wherein read operations have a first power profile with a command peak portion at a first power level followed by a data transfer portion at a second power level different than the first power level;
- and
- wherein the initiating memory commands of the first type in the first channel includes performing only read operations via the first channel during the first interval;
- wherein the operations include:
- initiating memory commands of the first type at a third channel of the NAND memory system over the first interval;
- staggering at least a portion of the read operations in the first channel to offset the command power peak portions of a first read operation on the first channel and a second read operation on the third channel;
- determining a current power usage estimate based upon a number of active channels and a scheduling of intervals for each active command type on each active channel;
- while a portion of the first memory command is executing, summing a status register indicative of a current power usage and an amount of power associated with a component of a third memory command, the third memory command and a fourth memory command in the queue;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with a component of the third memory command is more than a power budget and in response:
- summing the status register and an amount of power associated with a component of the fourth memory command;
- determining that the sum of the status register indicative of the current power usage and the amount of power associated with the component of the third memory command is less than or equal to the power budget and in response, executing the component of the third memory command;
- calculating a power budget error based upon the current power usage and the power budget, the power budget error describing the extent to which the current power usage exceeds the power budget;
- determining that the power budget error exceeds a threshold:
- causing the first channel to enter a sleep mode;
- and
- adjusting, at the second and third channel, a scheduling of a first future interval that initiates memory commands of the first type and a scheduling of a second future interval that initiates memory commands of the second type to reduce a future power budget error.
Dependencies are inferred from the claim text.