Memory sub-system for increasing bandwidth for command scheduling
AssigneeMicron Technology, Inc.
InventorsPatrick A. La Fratta, Robert Walker
Life of this patent
Estimating the term…
Abstract
Initialization is performed based on the commands received at the command queue. To perform initialization, a bank touch count list that includes a list of banks being accessed by the commands and a bank touch count for each of the banks in the list is updated. The bank touch count identifies the number of commands accessing each of the banks. The bank touch count list is updated by assigning a bank priority rank to each of the banks based on their bank touch count, respectively. Once initialized, the commands in the command queue are scheduled by inserting each of the commands into priority queues based on the bank touch count list.
Claims20
A system comprising:
- a memory component and
- a processing device, operatively coupled with the memory component, to perform operations comprising:
- receiving a plurality of commands in a command queue;
- performing initialization based on the commands, wherein performing initialization comprises:
- updating a bank touch count list, wherein the bank touch count list comprises a list of plurality of banks being accessed by the commands and a plurality of bank touch counts associated with the banks in the list of banks, the plurality of bank touch counts each identify a number of commands accessing each of the banks,
- wherein updating the bank touch count list comprises:
- in response to determining that a target bank associated with one of the commands is not in the bank touch count list, inserting the target bank in the list of plurality of banks and increasing a target bank touch count associated with the target bank by one, the plurality of bank touch counts comprising the target bank touch count, and
- assigning a bank priority rank to each of the banks based on the bank touch count for each of the banks;
- and
- scheduling the commands in the command queue, wherein scheduling the commands comprises:
- inserting each of the commands in the command queue into a plurality of priority queues based on the bank touch count list,
- wherein the plurality of priority queues comprise:
- a first highest priority queue and second highest priority queue for read commands and elevated commands,
- a first plurality of bank priority queues being dedicated for read commands associated with read-modify-write (RMW) commands, and
- a second plurality of bank priority queues for write commands and write commands associated with RMW commands,
- wherein the first plurality of bank priority queues are higher priority than the second plurality of bank priority queues,
- wherein the first highest priority queue and second highest priority queue being of a higher priority than the first plurality of bank priority queues.
A method comprising:
- receiving a plurality of commands in a command queue;
- performing initialization based on the commands, wherein performing initialization comprises:
- updating a bank touch count list, wherein the bank touch count list comprises a list of plurality of banks being accessed by the commands and a plurality of bank touch counts associated with the banks in the list of banks, the plurality of bank touch counts each identify a number of commands accessing each of the banks,
- wherein updating the bank touch count list comprises:
- in response to determining that a target bank associated with one of the commands is not in the bank touch count list, inserting the target bank in the list of plurality of banks and increasing a target bank touch count associated with the target bank by one, the plurality of bank touch counts comprising the target bank touch count, and
- assigning a bank priority rank to each of the banks based on the bank touch count for each of the banks, wherein a higher bank priority rank is assigned to banks having a higher bank touch count;
- and
- scheduling the commands in the command queue, wherein scheduling the commands comprises:
- inserting each of the commands in the command queue into a plurality of priority queues based on the bank touch count list,
- wherein the plurality of priority queues comprise:
- a first highest priority queue and second highest priority queue for read commands and elevated commands,
- a first plurality of bank priority queues being dedicated for read commands associated with read-modify-write (RMW) commands, and
- a second plurality of bank priority queues for write commands and write commands associated with RMW commands,
- wherein the first highest priority queue and second highest priority queue are higher priority than the first plurality of bank priority queues, and
- wherein the first plurality of bank priority queues are higher priority than the second plurality of bank priority queues.
A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, causes the processing device to perform operations comprising:
- receiving a plurality of commands in a command queue;
- performing initialization based on the commands, wherein performing initialization comprises:
- updating a bank touch count list, wherein the bank touch count list comprises a list of plurality of banks being accessed by the commands and a plurality of bank touch counts associated with the banks in the list of banks, the plurality of bank touch counts each identify a number of commands accessing each of the banks,
- wherein updating the bank touch count list comprises:
- in response to determining that a target bank associated with one of the commands is not in the bank touch count list, inserting the target bank in the list of plurality of banks and increasing a target bank touch count associated with the target bank by one, the plurality of bank touch counts comprising the target bank touch count, and
- assigning a bank priority rank to each of the banks based on the bank touch count for each of the banks;
- and
- scheduling the commands in the command queue, wherein scheduling the commands comprises:
- inserting each of the commands in the command queue into a plurality of priority queues based on the bank touch count list, wherein the plurality of priority queues comprise:
- a first highest priority queue and second highest priority queue for read commands and elevated commands,
- a first plurality of bank priority queues being dedicated for read commands associated with read-modify-write (RMW) commands, and
- a second plurality of bank priority queues for write commands and write commands associated with RMW commands,
- wherein the first highest priority queue and second highest priority queue are higher priority than the first plurality of bank priority queues, and
- wherein the first plurality of bank priority queues are higher priority than the second plurality of bank priority queues.
Dependencies are inferred from the claim text.