1. Field
The present disclosure pertains to the field of computer chip design. More particularly, the present disclosure pertains to a new method, system, and apparatus for an adaptive weighted arbiter.
2. Description of Related Art
Typically, electronic systems include an arbitration logic for arbitrating between requests received from the multiple requesting agents, and for granting access to a resource to a selected one of the requesting agents. For example, a requesting agent may be a modem, keyboard, video controller, serial port, or PCMCIA card, SONET interface, Ethernet Interface, content processor, encryption device, or compression device and a resource may be an interconnect bus, memory unit, or output buffer. In some situations, such as, peer-to-peer systems, the device may be either the requesting agent and/or the arbitrated resource.
Present arbitration schemes include round-robin arbiters that are based at least in part on a scheduling algorithm that creates a list of all possible requesting agents (“bidders”). Next, the arbiter assigns a window of time fixed bidding opportunities for each bidder into a table. The arbiter then traverses the table and determines whether the particular bidder is requesting access to the resource. If so, the arbiter grants access to that particular bidder. Otherwise, the arbiter proceeds to the next bidder in the list entry in the table. However, the present round-robin arbiter does not account for past arbitration events. Furthermore, a fixed scheduling algorithm may require bidders to wait for their particular window of time (“time slice”) fixed bidding opportunity in the table.
The present invention is illustrated by way of example and not limitation in the Figures of the accompanying drawings.
The following description provides method and apparatus for improved multi-core processor performance despite power constraints. In the following description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate logic circuits without undue experimentation.
As previously described, a problem exists for round robin arbiters. In contrast to the prior art, the claimed subject matter facilitates a novel adaptive weighted arbitration algorithm that is user configurable. Also, the claimed subject matter allows the arbiter to consider past arbitration history events and is dynamic to allow for losing bidders to increase their probability of being selected to access the resource. The arbitration algorithm, circuitry, and system will be discussed further in connection with
The schematic includes a plurality of accumulators 106 that receive a plurality of requests 102 from bidders. In one embodiment, a plurality of n bidders is requesting access to a resource. A comparator is coupled to the plurality of accumulators 106 and generates a grant to one of the bidders based at least in part on a plurality of accumulator values stored within each accumulator.
In one embodiment, each accumulator stores a single accumulator value and the accumulator value is based at least in part on a user configurable weight value 104. In this same embodiment, the user configurable weight value corresponds to a desired priority for each of the n bidders. For example, in one embodiment, a bidder with a weight value of one indicates a highest priority among the bidders, a bidder with a weight value of two indicates a second highest priority among bidders, etc. . . .
A more detailed explanation of the weighted values, accumulator values, and algorithm will be discussed in connection with
The flowchart depicts one arbitration cycle and may be repeated for subsequent arbitration cycles.
The claimed subject matter facilitates the adaptive weighted arbitration logic by setting n weight values for n bidders, as depicted in a block 202. For example, in one embodiment, the weight value is based on a priority of each of the n bidders. Also, the algorithm will set n accumulator values for n bidders to a predetermined value within a range of values, as depicted in a block 204. For example, in one embodiment, the predetermined value is at a midpoint of a particular accumulator's range. In one embodiment, all the accumulators will have the same range. Typically, the range will be a power of 2, such as, 8, 16, 32, 64, 128, etc. For example, an user may select a range based at least in part the desired granularity(accuracy).
For each arbitration cycle, the algorithm declares a winner for one of the n bidders and grants the winning bidder access to the resource based at least in part on the accumulator value, as depicted in a block 206. For example, in one embodiment, the winning bidder has the highest accumulator value as determined by the comparator described in connection with
In one embodiment, the remaining bidders that were contending for the resource during the particular arbitration cycle (“losing bidders”) have their respective accumulator values incremented after the winning bidder has been determined, as depicted in a block 208. For example, a losing bidder with an accumulator value between 0-25% quartile of their range will have their respective accumulator value increased by a value of four; a losing bidder with an accumulator value between 25-50% quartile of their range will have their respective accumulator value increased by a value of three; a losing bidder with an accumulator value between 50-75% quartile of their range will have their respective accumulator value increased by a value of two; and a losing bidder with an accumulator value between 75-99% quartile of their range will have their respective accumulator value increased by a value of one. Therefore, the claimed subject matter allows the arbiter to consider past arbitration history events and is dynamic to allow for losing bidders to increase their probability of being selected to access the resource.
However, the claimed subject matter is not limited to the preceding quartiles and increment and decrement values. For example, one skilled in the art appreciates utilizing different increment values and quartile values.
In some embodiments, an accumulator value is unchanged for a losing bidder with an accumulator value at 100% of its respective range.
In one embodiment that supports multiple request/grant interactions, the flowchart depicts a line from 208 back to 206.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art upon studying this disclosure.