Patent ID: 7698486

Claim:
An arbitration circuit for granting access to a shared resource among requestors, the arbitration circuit comprising: N request shapers, where N is an integer greater than one, each of the N request shapers comprising: an input unit to receive a request from a requestor; an age unit to assign an age to the request and to increase the age of the request when the requestor is not granted access to the shared resource; a priority unit to assign a priority level to each request and to selectively increase the priority level of the request based on the age of the request and a delta period of the request; and an arbiter core to receive the requests from the N request shapers and to selectively grant access to the shared resource to each of the requestors corresponding to the requests based on the priority level and age of the requests, wherein said delta period of one of said N request shapers is different than said delta period of another of said N request shapers; wherein the arbiter core comprises grant logic to grant access to the shared resource to one of the requestors according to the priority levels and the ages of the requests, the grant logic comprising: a priority encoder to select the one or more of the requests having the highest of the priority levels of the requests, and an arbitration unit to select the one, of the one or more of the requests selected by the priority encoder, having the greatest of the ages; wherein the requests are received during a first interval, wherein the arbiter core further comprises a mask circuit to grant access to the shared resource to all of the requestors corresponding to the requests having one of the priority levels before granting access to the shared resource to requestors corresponding to any further requests having the one of the priority levels and received during a subsequent second interval, wherein the mask circuit comprises: a plurality of mask registers each corresponding to a respective one of the priority levels, wherein each of the mask registers stores a plurality of mask bits each corresponding to a respective one of the requestors; and a mask logic to set each of the mask bits when no corresponding request has been received having a corresponding one of the priority levels and the corresponding requestor has not been granted access to the shared resource; wherein the mask logic clears each of the mask bits when a corresponding request is received having a corresponding one of the priority levels.