Memory bus arbitration using memory bank readiness
DCFirst Claim
Patent Images
1. An apparatus comprising:
- a memory bus configured to transmit N memory transaction items at a time;
a queue configured to store more than N memory transaction items;
a memory circuit coupled to the memory bus, wherein the memory circuit comprises more than N memory banks, and wherein each memory transaction item is addressed to a memory bank;
a multiplexer comprising at least N multiplexer inputs and a multiplexer output, wherein each multiplexer input is coupled to one of the memory transaction items, and wherein the multiplexer output is coupled to the memory bus;
a state machine coupled to the multiplexer output, wherein the state machine is configured to generate a bank readiness signal that identifies the readiness of a memory bank to accept a memory transaction item that is addressed to the memory bank; and
an arbiter controller coupled to the state machine and a selection input of the multiplexer, wherein the arbiter controller is configured to activate the selection input of the multiplexer to select a memory transaction item to transmit from the queue to the addressed memory bank that is identified by the bank readiness signal.
6 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A method, apparatus, and computer program product includes identifying a plurality of memory transactions to be sent over a memory bus to a memory having a plurality of memory banks, each memory transaction addressed to one of the memory banks, the memory bus incapable of transmitting the plurality of memory transactions simultaneously; identifying a plurality of bank readiness signals, each bank readiness signal indicating the readiness of one of the memory banks to accept a memory transaction; and selecting one of the memory transactions for transmission over the memory bus based on the bank readiness signals.
-
Citations
25 Claims
-
1. An apparatus comprising:
-
a memory bus configured to transmit N memory transaction items at a time; a queue configured to store more than N memory transaction items; a memory circuit coupled to the memory bus, wherein the memory circuit comprises more than N memory banks, and wherein each memory transaction item is addressed to a memory bank; a multiplexer comprising at least N multiplexer inputs and a multiplexer output, wherein each multiplexer input is coupled to one of the memory transaction items, and wherein the multiplexer output is coupled to the memory bus; a state machine coupled to the multiplexer output, wherein the state machine is configured to generate a bank readiness signal that identifies the readiness of a memory bank to accept a memory transaction item that is addressed to the memory bank; and an arbiter controller coupled to the state machine and a selection input of the multiplexer, wherein the arbiter controller is configured to activate the selection input of the multiplexer to select a memory transaction item to transmit from the queue to the addressed memory bank that is identified by the bank readiness signal. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus comprising:
-
a queue circuit comprising a plurality of request stations arranged to store memory transactions, wherein each request station is coupled to a memory transaction request line; a memory transaction multiplexer circuit comprising a plurality of multiplexer inputs, a multiplexer output, and a multiplexer selection input, wherein each multiplexer input is coupled to one of the memory transaction request lines; and a memory circuit coupled to the multiplexer output, wherein the memory circuit comprises a plurality of memory banks, wherein each memory bank is configured to store a memory transaction transmitted from the queue circuit and addressed to the memory bank; and a state machine circuit comprising a state machine input coupled to the multiplexer output and a state machine output coupled to the multiplexer selection input, wherein the state machine is configured to generate a bank readiness signal that identifies the readiness of a memory bank to accept a memory transaction that is addressed to the memory bank. - View Dependent Claims (7)
-
-
8. An apparatus comprising:
-
a queue circuit comprising a plurality of request stations arranged to store memory transactions, wherein each request station is coupled to a memory transaction request line; a memory transaction multiplexer circuit comprising a plurality of multiplexer inputs, a multiplexer output, and a multiplexer selection input, wherein each multiplexer input is coupled to one of the memory transaction request lines; a memory circuit coupled to the multiplexer output, wherein the memory circuit comprises a plurality of memory banks, wherein each memory bank is configured to store a memory transaction transmitted from the queue circuit and addressed to the memory bank; a state machine comprising a state machine input coupled to the multiplexer output and a plurality of state machine outputs, wherein the state machine is configured to generate a bank readiness signal that identifies the readiness of a memory bank to accept a memory transaction that is addressed to the memory bank; and an arbiter controller comprising a plurality of arbiter inputs coupled to the plurality of state machine outputs and an arbiter output coupled to the multiplexer selection input, wherein the arbiter controller is configured to activate the multiplexer selection input to select a memory transaction to transmit from the queue circuit to the addressed memory bank that is identified by the bank readiness signal. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method of using a multiplexer to manage the transmission of a plurality of memory transactions to a memory having a plurality of memory banks, the multiplexer comprising a plurality of multiplexer inputs for receiving the plurality of memory transactions and a multiplexer output for sending each of the plurality of memory transactions to the memory, the method comprising:
-
receiving a plurality of memory transactions at the multiplexer inputs, wherein each memory transaction is addressed to a corresponding memory bank; associating a priority with each received memory transaction; generating a plurality of bank readiness signals indicating the readiness of each memory bank available to accept a memory transaction, wherein the plurality of bank readiness signals are based on the plurality of memory transactions at the multiplexer inputs and the multiplexer output; and sending each of the plurality of memory transactions to its corresponding one of the plurality of memory banks via the multiplexer output based on the associated priorities and the bank readiness signals. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A machine-readable storage device with instructions to cause a microprocessor to perform the steps of:
-
receiving a plurality of memory transactions at a multiplexer, wherein the multiplexer manages the transmission of the plurality of memory transactions to a memory having a plurality of memory banks, the multiplexer comprising a plurality of multiplexer inputs and a multiplexer output, wherein the plurality of memory transactions is received at the multiplexer inputs, and wherein each memory transaction is addressed to a corresponding memory bank; associating a priority with each received memory transaction; generating a plurality of bank readiness signals indicating the readiness of each memory bank available to accept a memory transaction, wherein the plurality of bank readiness signals are based on the plurality of memory transactions at the multiplexer inputs and the multiplexer output; and sending each of the plurality of memory transactions to its corresponding one of the plurality of memory banks via the multiplexer output based on the associated priorities and the bank readiness signals. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification