Method and apparatus for multi-port memory controller
First Claim
1. A method for arbitrating across multiple ports, comprising:
- assigning a bandwidth limit over a time period to a port associated with a multi-port controller;
receiving data over the port from a requestor;
determining an amount of bandwidth a requester has previously used;
comparing the amount of bandwidth to the bandwidth limit;
if the amount of bandwidth is greater than the bandwidth limit, then the method includes, denying access to the port for the period.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory controller is provided. The memory controller includes an initiator block configured to arbitrate requests corresponding to data from multiple ports. The initiator block includes an arbitration module configured to consider a latency factor and a bandwidth factor associated with the data from a port to be selected for processing. A state machine is in communication with the arbitration module. The state machine is configured to generate a signal to the arbitration module that is configured to select the data associated with the port based upon the latency factor and the bandwidth factor. Task status and completion circuitry configured to calculate the bandwidth factor based upon previous data selected from the port is included in the initiator block. The task status and completion circuitry is further configured to transmit the calculated bandwidth factor to the state machine. A method for arbitrating across multiple ports is also provided.
166 Citations
21 Claims
-
1. A method for arbitrating across multiple ports, comprising:
-
assigning a bandwidth limit over a time period to a port associated with a multi-port controller;
receiving data over the port from a requestor;
determining an amount of bandwidth a requester has previously used;
comparing the amount of bandwidth to the bandwidth limit;
if the amount of bandwidth is greater than the bandwidth limit, then the method includes, denying access to the port for the period. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A memory controller, comprising:
an initiator block configured to arbitrate requests corresponding to data from multiple ports, the initiator block including, an arbitration module configured to consider both a latency factor and a bandwidth factor associated with the data from a port to be selected for processing;
a state machine in communication with the arbitration module, the state machine configured to generate a signal to the arbitration module, the signal configured to select the data associated with the port based upon both the latency factor and the bandwidth factor; and
task status and completion circuitry configured to calculate the bandwidth factor based upon previous data selected from the port, the task status and completion circuitry further configured to transmit the calculated bandwidth factor to the state machine. - View Dependent Claims (10, 11, 12, 13, 14)
-
15. A system, comprising:
-
a memory controller configured to accommodate a multi-port design, the memory controller including, an initiator block configured to arbitrate multiple requests for access to the system, the initiator block including, circuitry configured to define a statistics window; and
circuitry configured to define a reporting window, the reporting window being a segment of the statistics window, wherein the circuitry configured to define a statistics window and the circuitry configured to define a reporting window are further configured to determine a number of cycles that commands for a port are active in the memory controller over a specified number of cycles. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification