US 12,112,786 B2
Command scheduling component for memory
Patrick A. La Fratta, McKinney, TX (US); Jeffrey L. Scott, Apex, NC (US); Laurent Isenegger, Morgan Hill, CA (US); and Robert M. Walker, Raleigh, NC (US)
Assigned to Micron Technology, Inc., Boise, ID (US)
Filed by Micron Technology, Inc., Boise, ID (US)
Filed on Sep. 1, 2021, as Appl. No. 17/464,516.
Prior Publication US 2023/0060826 A1, Mar. 2, 2023
Int. Cl. G11C 11/406 (2006.01); G06F 13/16 (2006.01)
CPC G11C 11/40603 (2013.01) [G06F 13/1673 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A system, comprising:
a memory component having a plurality of memory banks; and
a processing device, operatively coupled with the memory component, to:
make a first determination of whether at least one memory bank of the plurality of memory banks is active, wherein an activate command for a row of the at least one memory bank accessed by an oldest command for the at least one memory bank is added to a command scheduler in response to determining the at least one memory bank is not active;
in response to the activate command being added to the command scheduler, make a second determination of whether the at least one memory bank is active, wherein the second determination is made immediately after the activate command is added to the command scheduler with no scheduling actions occurring between the activate command being added to the command scheduler and the second determination being made;
in response to the second determination of whether the at least one memory bank is active coming to a determination that the at least one memory bank is active, determine whether the row of the at least one memory bank has a corresponding row command, wherein the oldest row command corresponding to the row of the at least one memory bank is added to the command scheduler in response to determining the at least one memory bank is active and determining there is a row command corresponding to the row of the at least one memory bank;
in response to the oldest row command corresponding to the row of the at least one memory bank being added to the command scheduler, make a third determination of whether the at least one memory bank is active, wherein:
the third determination is made immediately after the oldest row command corresponding to the row of the at least one memory bank is added to the command scheduler with no scheduling actions occurring between the oldest row command corresponding to the row of the at least one memory bank being added to the command scheduler and the third determination being made; and
a precharge command is added to the command scheduler in response to determining the at least one memory bank is active, determining the at least one memory bank does not have a row command corresponding to the row of the at least one memory bank, and determining either a close page mode is enabled or an open row timer has expired on the row of the at least one memory bank;
in response to the precharge command being added to the command scheduler, determine whether any commands in the command scheduler are executable; and
execute a command in the command scheduler based on a priority of commands included in the command scheduler in response to determining the at least one memory bank is active, the row of the at least one memory bank does not have a corresponding row command, either the close page mode is enabled or the open row timer has expired, and the command is executable.