Claims
- 1. In a system having multiple master devices coupled to a shared bus, a bus arbitration method comprising the steps of:
detecting multiple bus requests from multiple requesting devices of said multiple master devices wherein said multiple bus requests are detected substantially simultaneously; granting said bus to a first requesting device of said multiple requesting devices; remembering said multiple requesting devices; and granting, responsive to the step of remembering, said bus to other requesting devices of said multiple requesting devices before granting bus requests from other devices of said multiple master devices.
- 2. The method of claim 1wherein the step of granting said bus to said first requesting device includes the step of selecting said first requesting device from said multiple requesting devices using a round-robin method, and wherein the step of granting said bus to said other requesting devices includes the step of granting said bus to each of said other requesting devices using a round-robin method.
- 3. The method of claim 1 wherein each master device of said multiple master devices coupled to said bus has an associated priority value and
wherein the step of granting said bus to said first requesting device includes the step of selecting said first requesting device from said multiple requesting devices as the highest priority device of said multiple requesting devices, and wherein the step of granting said bus to said other requesting devices includes the step of granting said bus to each of said other requesting devices in order of highest to lowest priority value of each of said other requesting devices.
- 4. The method of claim 1 further comprising the step of:
detecting relinquishment of said bus by said first requesting device, wherein the step of remembering is responsive to the detection of said relinquishment.
- 5. The method of claim 1wherein the step of remembering includes the step of setting a mask value indicative said other requesting devices, and wherein the step of granting said bus to said other requesting devices includes the steps of:
a) granting said bus to a next requesting device of said other requesting devices indicated by said mask value; b) updating said mask value to eliminate said next requesting device; and c) repeating steps a) and b) until no further devices of said other requesting devices are indicated by said mask value.
- 6. The method of claim 5 further comprising the step of:
detecting relinquishment of said bus by said first requesting device, wherein the step of remembering is responsive to the detection of said relinquishment.
- 7. The method of claim 6 wherein the step of granting said bus to said other requesting devices includes the step of:
detecting relinquishment of said bus by said next requesting device, wherein the step of updating is responsive to the detection of said relinquishment by said next requesting device.
- 8. A system comprising:
a shared resource; a plurality of master devices coupled to said shared resource wherein each master device generates requests for temporary exclusive access to said shared resource; and an arbiter for controlling grants of requested temporary exclusive access to said shared resource by said plurality of master devices wherein said arbiter includes:
a memory element for remembering pending requests for temporary exclusive access by master devices of said plurality of master devices at the time of granting a request by one master device of said plurality of master devices; and a request grant element coupled to said memory element for granting a pending request for temporary exclusive access by a master device of said plurality of master devices in accordance with information in said memory element.
- 9. The system of claim 8 wherein said memory element further comprises:
a bit mask having a plurality of bits wherein each bit of said plurality of bits corresponds to a master device of said plurality of master devices.
- 10. The system of claim 8 wherein said request grant element is operable to grant remembered pending requests before new requests from other master devices.
- 11. The system of claim 10 wherein each master device of said plurality of master devices has a priority attribute associated therewith and wherein said request grant element is further operable to grant the highest priority remembered pending request before lower priority remembered pending requests.
- 12. In a system having multiple master devices coupled to a shared bus, a bus arbiter comprising:
means for detecting multiple bus requests from multiple requesting devices of said multiple master devices wherein said multiple bus requests are detected substantially simultaneously; means for granting said bus to a first requesting device of said multiple requesting devices; means for remembering said multiple requesting devices; and means for granting, responsive to the means for remembering, said bus to other requesting devices of said multiple requesting devices before granting bus requests from other devices of said multiple master devices.
- 13. The arbiter of claim 12wherein the means for granting said bus to said first requesting device includes means for selecting said first requesting device from said multiple requesting devices using a round-robin method, and wherein the means for granting said bus to said other requesting devices includes means for granting said bus to each of said other requesting devices using a round-robin method.
- 14. The arbiter of claim 12 wherein each master device of said multiple master devices coupled to said bus has an associated priority value and
wherein the means for granting said bus to said first requesting device includes means for selecting said first requesting device from said multiple requesting devices as the highest priority device of said multiple requesting devices, and wherein the means for granting said bus to said other requesting devices includes means for granting said bus to each of said other requesting devices in order of highest to lowest priority value of each of said other requesting devices.
- 15. The arbiter of claim 12 further comprising:
means for detecting relinquishment of said bus by said first requesting device, wherein the means for remembering is responsive to the detection of said relinquishment.
- 16. The arbiter of claim 12wherein the means for remembering includes means for setting a mask value indicative said other requesting devices, and wherein the means for granting said bus to said other requesting devices includes:
a) means for granting said bus to a next requesting device of said other requesting devices indicated by said mask value; b) means for updating said mask value to eliminate said next requesting device; and c) means for repeating operation of a) and b) until no further devices of said other requesting devices are indicated by said mask value.
- 17. The arbiter of claim 16 further comprising:
means for detecting relinquishment of said bus by said first requesting device, wherein the means for remembering is responsive to the detection of said relinquishment.
- 18. The arbiter of claim 17 wherein the means for granting said bus to said other requesting devices includes:
means for detecting relinquishment of said bus by said next requesting device, wherein the means for updating is responsive to the detection of said relinquishment by said next requesting device.
RELATED PATENTS
[0001] This patent 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 and is related to co-pending, commonly owned U.S. patent application Ser. No. 01-831, filed (concurrently herewith), entitled METHODS AND STRUCTURE FOR DYNAMIC MODIFICATIONS TO ARBITRATION FOR A SHARED RESOURCE, both of which are hereby incorporated herein by reference.