COMMAND SELECTION POLICY WITH READ PRIORITY
First Claim
1. A method for command selection, comprising:
- receiving a read command to a memory controller, wherein the read command comprises an address for a bank and a channel of a memory device;
inserting the read command into a queue of the memory controller;
blocking a first number of write commands to the bank;
issuing, to the memory device, an activation command associated with the read command;
blocking a second number of write commands to the channel; and
issuing the read command to the memory device.
5 Assignments
0 Petitions
Accused Products
Abstract
Apparatuses and methods related to command selection policy for electronic memory or storage are described. Commands to a memory controller may be prioritized based on a type of command, a timing of when one command was received relative to another command, a timing of when one command is ready to be issued to a memory device, or some combination of such factors. For instance, a memory controller may employ a first-ready, first-come, first-served (FRFCFS) policy in which certain types of commands (e.g., read commands) are prioritized over other types of commands (e.g., write commands). The policy may employ exceptions to such an FRFCFS policy based on dependencies or relationships among or between commands. An example can include inserting a command into a priority queue based on a category corresponding to respective commands, and iterating through a plurality of priority queues in order of priority to select a command to issue.
-
Citations
30 Claims
-
1. A method for command selection, comprising:
-
receiving a read command to a memory controller, wherein the read command comprises an address for a bank and a channel of a memory device; inserting the read command into a queue of the memory controller; blocking a first number of write commands to the bank; issuing, to the memory device, an activation command associated with the read command; blocking a second number of write commands to the channel; and issuing the read command to the memory device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A controller, comprising:
-
a queue; and logic configured to; insert a read command, for a bank and a channel of a memory device, into the queue; block a first number of write commands to the bank; issue an activation command associated with the read command; block a second number of write commands to the channel; and select the read command for issuance based on a first-ready, first-come, first-served (FRFCFS) policy in which the read command is prioritized over the first number of write commands and the second number of write commands. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for command selection, comprising:
-
receiving, at a memory controller, a read command for a bank and a channel of a memory device; generating metadata associated with the read command; determining whether there is a write command with a read-after-write dependence to the read command based on the metadata; inserting the read command into a prioritized queue; blocking a first number of write commands to the bank; issuing an activation command associated with the read command; blocking a second number of write commands to the channel; and selecting the write command and the read command for issuance based on a first-ready, first-come, first-served (FRFCFS) policy in response to determining that the write command has the read-after-write dependence to the read command. - View Dependent Claims (19, 20, 21)
-
-
22. An apparatus, comprising:
-
a memory device; and a memory controller coupled to the memory device and configured to; iterate through a plurality of commands in a queue and at each iteration; responsive to determining that a command from the plurality of commands is not a read command, not an elevated write command, and that a first bank identifier (ID) associated with the command is in a list of banks with outstanding reads, execute a bank block and mark the command as not issuable; responsive to determining that the command is the read command and that the command has a read-after-write dependence, execute the bank block and mark the command as not issuable; responsive to determining that the command is the read command and that the command does not have the read-after-write dependence, execute a channel block and mark the plurality of commands, excepting the command, as not issuable; and responsive to determining that the command is an elevated write command, execute the channel block and mark the plurality of commands, excepting the command, as not issuable. - View Dependent Claims (23, 24, 25, 26, 27, 29)
-
-
28. A method for command selection, comprising:
-
receiving a read command to a memory controller, wherein the read command comprises an address of a partition and a channel of a memory device; inserting the read command into a queue of the memory controller; deprioritizing a first number of write commands to the partition; deprioritizing a second number of write commands to the channel; and selecting the read command to the memory device for issuance from the queue. - View Dependent Claims (30)
-
Specification