Method and apparatus for speculative arbitration
AssigneeSun Microsystems, Inc.
InventorsHans Eberle, Nils Gura, Nicolas Fugier, Bernard Tourancheau
Life of this patent
Estimating the term…
Abstract
An arbiter is used so multiple users can use shared resources. The arbiter allocates at least one of the resources speculatively to one of the users for use during a particular access interval in the absence of a request for the resource from the user. The arbiter can also allocate one or more of the resources for use during the particular access interval in response to requests received by the arbiter for the resource(s). That is, a particular access interval may include both speculative and non-speculative allocation of resources by the arbiter.
Claims41
A method for sharing multiple resources among users using an arbiter comprising:
- receiving by the arbiter an indication from a first user as to whether the first user wishes to be speculatively allocated a first resource,
- allocating the first resource speculatively to the first user for use during an access interval, absent a request for the first resource from the first user, when the first user wishes to be speculatively allocated the first resource according to the indication,
- wherein speculatively allocating the first resource comprises allocating the first resource according to one of a fixed priority scheme and a scheme allocating the resource to a user with the fewest request.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first user,
- wherein the arbiter speculatively allocates the first resource to the first user according to the first user having requested the first resource during a previous arbitration cycle.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first user,
- wherein speculatively allocating the first resource comprises allocating the first resource according to which of the users had the most requests for all resources combined, for a predetermined number of previous arbitration cycle.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first user,
- wherein speculatively allocating the first resource comprises allocating the first resource according to which of the users had the most grants for a predetermined number of previous arbitration cycles.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first user,
- wherein speculatively allocating the first resource comprises allocating the first resource according to a fill level of at least one of a send queue and a receive queue associated respectively with a user and resource for an arbitrated data transfer.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first user,
- wherein a maximum number of resources unallocated by the arbiter for a particular access cycle are speculatively allocated for use during the particular access cycle.
An apparatus comprising:
- a plurality of users;
- and
- an arbiter coupled to receive request for use of resource by respective users and to receive an indication from a first use of the plurality of users as to whether the first user wishes to be speculatively allocated a resource,
- wherein the arbiter is responsive to speculatively allocate the resource to the first user for use during an access interval, absent a request from the first user the resource, when the first user wishes to be speculatively allocated the resource according to the indication.
An apparatus comprising:
- a plurality of users;
- and
- an arbiter coupled to receive requests for use of resources by respective users, the arbiter responsive to speculatively allocate a resource to a first user of the plurality of users for use during an access interval, absent a request from the first user for the resource,
- wherein speculatively allocating the resource comprises allocating the resource according to which of the users received the most grants for the resource or made the most requests for the resource, during a predetermined number of previous arbitration cycles.
An apparatus comprising:
- a plurality of users;
- and
- an arbiter coupled to receive requests for use of resources by respective users, the arbiter responsive to speculatively allocate a first resource to a first user of the plurality of users for use during an access interval, absent a request from the first user for the first resource,
- wherein the arbiter speculatively allocates more than one resource, including the first resource, to the first user for use during the access interval.
A method of allocating resources in a system comprising:
- arbitrating during a first arbitration cycle, requests received prior to a beginning of the first arbitration cycle, the requests for utilization of a first of the resources during a particular usage interval;
- and
- allocating a second of the resources unallocated during the first arbitration cycle, prior to a start of the particular usage interval,
- wherein the second resource is allocated utilizing a second arbitration cycle, subsequent to the first arbitration cycle, the second arbitration cycle arbitrating those requests received after the start of the first arbitration cycle.
An apparatus comprising:
- an arbiter coupled to supply control information for use of resources,
- the arbiter coupled to receive requests from users for use of the resources during a particular access interval, the arbiter responsive to a first group of requests received prior to the start of a first arbitration cycle to determine allocation of the resources during the first arbitration cycle according to the first group of requests and to receive at least a second group of requests after the start of the first arbitration cycle, and to determine additional allocation of the resources according to the second group of requests during a second arbitration cycle, the second arbitration cycle being shorter than the first arbitration cycle, the first and second arbitration cycles allocating resources for use during the particular access interval.
A method for sharing multiple resources among users using an arbiter comprising:
- allocating a first of the resources speculatively to a first of the users for use during an access interval, absent a request for the first resource from the first of the users,
- wherein speculatively allocating the first resource comprises using a scheme allocating the first resource to a user with the fewest requests.
Dependencies are inferred from the claim text.