Credit based memory scheduler
AssigneeAmazon Technologies, Inc.
InventorsItai Avron, Anat Arbely
Life of this patent
Estimating the term…
Abstract
A memory controller can receive transactions from an interconnect to access the memory. The memory controller can use a credit-based scheme to request the interconnect to send specific memory transactions that can be scheduled in a desirable order using a credit type associated with each transaction. In some embodiments, the memory controller can keep track of the number of transactions directed to each bank of the memory based on a credit type, so that specific transactions directed towards the underutilized banks can be requested and scheduled in a manner to utilize all the banks more uniformly to improve the system performance.
Claims20
A system comprising:
- an interconnect configured to store a plurality of transactions;
- and
- a memory controller configured to:
- receive a first packet from the interconnect for a transaction from the plurality of transactions to access a memory, the memory configured to be accessed as individual memory banks;
- determine that the transaction is directed to a first memory bank of the memory;
- determine whether there are resources available to schedule the transaction to access the first memory bank;
- upon determining that there are insufficient resources available to schedule the transaction, send a rejection packet to the interconnect indicating that the transaction is not accepted, the rejection packet comprising a first credit type indicating that the interconnect was granted a credit for the transaction with the first credit type, the first credit type corresponding to the first memory bank;
- increment a first counter associated with the first credit type to track that the transaction with the first credit type was rejected;
- determine that the resources have become available to schedule the transaction to access the first memory bank;
- send a retry request packet to the interconnect to resend the transaction based on the first counter, the retry request packet comprising the first credit type identifying the retry request for the transaction;
- decrement the first counter associated with the first credit type indicating that the retry request packet to resend the transaction has been sent;
- receive a second packet for the transaction from the interconnect, the second packet comprising the first credit type indicating allocation of the credit;
- and
- schedule the transaction to access the first memory bank.
A computer-implemented method, comprising, by a memory controller:
- receiving a transaction from a requester to access a first memory bank from a plurality of memory banks in a memory;
- transmitting a rejection message to the requester to reject the transaction, the transaction being associated with a credit type corresponding to the first memory bank;
- transmitting a resend message to the requester to resend the transaction when the credit type is being scheduled;
- receiving the transaction again from the requester when the credit type is currently being scheduled;
- and
- scheduling the transaction to access the first memory bank.
An integrated circuit device comprising:
- an interconnect interface configured to communicate with a requester for transactions to access a memory, the memory comprising a plurality of memory banks;
- a memory interface configured to communicate with the memory;
- a scheduler configured to:
- receive, via the interconnect interface, a transaction from the requester to access a first memory bank in the memory;
- transmit, via the interconnect interface, a rejection message to the requester to reject the transaction, the transaction being associated with a credit type corresponding to the first memory bank;
- transmit, via the interconnect interface, a resend message to the requester to resend the transaction when the credit type is being scheduled;
- receive, via the interconnect interface, the transaction again from the requester when the credit type is currently being scheduled;
- and
- schedule the transaction to access the first memory bank via the memory interface;
- and
- a credit counter configured to count the rejected transaction corresponding to the credit type.
Dependencies are inferred from the claim text.