Claims
- 1. In a system having a shared resource shared by multiple channels, an apparatus comprising:
an index value generator associated with each channel of said multiple channels for determining an index value from input signals associated with said system; a lookup table associated with said each channel and coupled to said index value generator for generating an arbitration priority value associated with said index value; and an arbiter coupled to each said lookup table associated with said each channel to arbitrate for control of said shared resource among said multiple channels in accordance with the arbitration priority values generated by each said lookup table.
- 2. The apparatus of claim 1 wherein said index value generator comprises:
a predicate selector for selecting predicates to be applied to said input signals; and a predicate evaluator for evaluating selected predicates by applying said input signals to the selected predicates.
- 3. The apparatus of claim 2 wherein said predicate evaluator generates a binary value.
- 4. The apparatus of claim 3 wherein said predicate evaluator generates a single bit binary value.
- 5. The apparatus of claim 3 wherein said predicate evaluator generates a multiple bit binary value.
- 6. The apparatus of claim 2 further comprising:
a second signal source for generating a second signal value, wherein said predicate evaluator generates said binary value as a function of said input signal and said second signal value.
- 7. The apparatus of claim 6 wherein said second signal source comprises:
a memory for storing said second signal value.
- 8. The apparatus of claim 1 wherein said lookup table comprises a register array and wherein said index value selects a corresponding register of said register array.
- 9. The apparatus of claim 1 wherein said lookup table comprises a latch array and wherein said index value selects a corresponding latch of said latch array.
- 10. The apparatus of claim 1 wherein said lookup table comprises a memory and wherein said index value accesses a corresponding location of said memory.
- 11. A system comprising:
a shared resource; a plurality of channels; an arbiter coupled to each of said plurality of channels and coupled to said shared resource to coordinate access by said plurality of channels to said shared resource wherein said arbiter includes:
a predicate computation element associated with each channel of said plurality of channels for determining an index value for said each channel based on attributes of said system; and a channel selection element coupled to each said predicate computation element to select a next channel to be granted access to said shared resource based on said index value for said each channel.
- 12. The system of claim 11 wherein said arbiter further includes:
a lookup table coupled between each said predicate computation element and said channel selection element to translate the index value determined by each said predicate computation element to a priority value, wherein said channel selection element selects said next channel based on said priority value of each said channel.
- 13. The system of claim 12 wherein said lookup table comprises a register array and wherein said index value selects a corresponding register of said register array.
- 14. The system of claim 12 wherein said lookup table comprises a latch array and wherein said index value selects a corresponding latch of said latch array.
- 15. The system of claim 12 wherein said lookup table comprises a memory and wherein said index value accesses a corresponding location of said memory.
- 16. In a system having an arbiter coupling a plurality of channels to a shared resource to coordinate access to said shared resource by said plurality of channels, a method for improved flexibility in arbitration comprising the steps of:
evaluating at least one attribute of said system; determining an index value for each channel of said plurality of channels according to a predicate function of said at least one attribute; and selecting a next channel of said plurality of channels to receive access to said shared resource in accordance with each said index value.
- 17. The method of claim 16 wherein the step of evaluating includes the step of:
detecting signal values within said system.
- 18. The method of claim 16 wherein a predicate function is associated with each channel of said plurality of channels and wherein the step of determining comprises the step of:
determining an index value for said each channel according to a predicate function corresponding to said each channel.
- 19. The method of claim 16 further comprising the step of:
using said index value with a lookup table to determine a priority value corresponding to said index value, wherein the step of selecting comprises the step of:
selecting said next channel in accordance with each said priority value.
- 20. The method of claim 16 wherein the system includes a plurality of predicate functions and wherein the method further comprises:
selecting a predicate function for said each channel, wherein the step of determining comprises the step of:
determining said index value according to the selected predicate function.
RELATED PATENTS
[0001] This patent is related to co-pending, commonly owned U.S. patent application Ser. No. 01-876 , filed (concurrently herewith), entitled METHODS AND STRUCTURE FOR IMPROVED FAIRNESS BUS ARBITRATION and is related to co-pending, commonly owned U.S. patent application Ser. No. 01-829 , filed (concurrently herewith), entitled METHODS AND STRUCTURE FOR STATE PRESERVATION TO IMPROVE FAIRNESS IN BUS ARBITRATION, both of which are hereby incorporated herein by reference.