Computer system with distributed bus arbitration scheme for symmetric and priority agents
First Claim
1. A computer system with distributed bus arbitration, said computer system comprising:
- bus means for providing a communication interface;
a plurality of stand-alone agents coupled to said bus means, said stand-alone agents including at least one priority agent and a plurality of symmetric agents;
memory means coupled to said bus means for storing instructions and data;
at least one of said symmetric agents being a processor means for executing said instructions and processing said data and for performing transactions on said bus means, each of said symmetric agents having symmetric arbitration means for arbitrating ownership of said bus means, wherein each said symmetric arbitration means generates requests for bus ownership and receives requests for bus ownership from other symmetric agents, each said symmetric arbitration means also for arranging said symmetric agents in a circular order of priority and selecting a symmetric owner from the symmetric agents requesting ownership of said bus means during an arbitration event, said symmetric owner performing a bus transaction on said bus means;
each of said symmetric arbitration means including rotating identifier means for indicating a lowest priority symmetric agent upon said arbitration event, ownership state means for indicating first and second ownership states, and priority agent request detecting means for detecting bus ownership requests from said at least one priority agent, wherein said symmetric arbitration means of said symmetric owner releases ownership of said bus means when a priority agent request is detected, unless said bus transaction is a locked transaction.
0 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A system and method for providing a high performance symmetric arbitration protocol that includes support for priority agents. The bus arbitration protocol supports two classes of bus agents: symmetric agents and priority agents. The symmetric agents support fair, distributed arbitration using a round-robin algorithm. Each symmetric agent has a unique Agent ID assigned at reset. The algorithm arranges the symmetric agents in a circular order of priority. Each symmetric agent also maintains a bus ownership state of busy or idle and a Rotating ID that reflects the symmetric agent with the lowest priority in the next arbitration event. On an arbitration event, the symmetric agent with the highest priority becomes the symmetric owner. However, the symmetric owner is not necessarily the overall bus owner (i.e., a priority agent may be the overall bus owner). The symmetric owner is allowed to take ownership of the bus and issue a transaction on the bus provided no other action of higher priority is preventing the use of the bus. A symmetric owner can maintain ownership without re-arbitrating if the transaction is either a bus-locked or a burst access transaction. The priority agent(s) has higher priority than the symmetric owner. Once the priority agent arbitrates for the bus, it prevents the symmetric owner from issuing any new transactions on the bus unless the new transaction is part of an ongoing bus-locked operation.
-
Citations
48 Claims
-
1. A computer system with distributed bus arbitration, said computer system comprising:
-
bus means for providing a communication interface; a plurality of stand-alone agents coupled to said bus means, said stand-alone agents including at least one priority agent and a plurality of symmetric agents; memory means coupled to said bus means for storing instructions and data; at least one of said symmetric agents being a processor means for executing said instructions and processing said data and for performing transactions on said bus means, each of said symmetric agents having symmetric arbitration means for arbitrating ownership of said bus means, wherein each said symmetric arbitration means generates requests for bus ownership and receives requests for bus ownership from other symmetric agents, each said symmetric arbitration means also for arranging said symmetric agents in a circular order of priority and selecting a symmetric owner from the symmetric agents requesting ownership of said bus means during an arbitration event, said symmetric owner performing a bus transaction on said bus means; each of said symmetric arbitration means including rotating identifier means for indicating a lowest priority symmetric agent upon said arbitration event, ownership state means for indicating first and second ownership states, and priority agent request detecting means for detecting bus ownership requests from said at least one priority agent, wherein said symmetric arbitration means of said symmetric owner releases ownership of said bus means when a priority agent request is detected, unless said bus transaction is a locked transaction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of arbitrating for ownership of a bus among a plurality of stand-alone agents which include one or more symmetric agent(s) and at least one priority agent in a computer system, said symmetric agent(s) having a predetermined circular ordering, the method comprising the steps of:
-
issuing an arbitration event by said symmetric agent(s); responsive to said arbitration event, determining in each symmetric agent, a symmetric owner from among said symmetric agent(s), each of said symmetric agent(s) performing the steps of; reading a rotating ID value stored in each of said symmetric agents to determine a lowest priority symmetric agent in said circular ordering; detecting which of said symmetric agents are requesting ownership of said bus; from among said symmetric agent(s) requesting ownership of said bus, selecting a highest priority symmetric agent to be said symmetric owner; updating said rotating ID value to indicate said symmetric owner; and granting ownership of said bus to said symmetric owner. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. In a computer system having a plurality of stand-alone agents which include a symmetric processor and a priority agent, said symmetric processor including an arbitration unit controlling access to a bus, a method for transferring ownership of said bus from said symmetric processor to said priority agent comprising the steps of:
-
asserting a priority request signal to request ownership of the bus by said priority agent; determining that a lock signal has not been asserted by said arbitration unit of said symmetric processor; granting ownership of said bus to said priority agent within a determined number of clocks after said priority agent asserts said priority request signal.
-
-
13. A multiprocessor (MP) computer system comprising:
-
a main memory; a plurality of processors; a first bus coupled to the plurality of processors and to the main memory providing information transfer therebetween; a priority agent coupled to the first bus, the priority agent including an arbiter unit that arbitrates for ownership of the first bus; wherein each processor includes a symmetric arbitration unit controlling processor access to the first bus, each processor asserting an address strobe signal when performing a transaction on the first bus, and asserting a lock signal to block other processors or the priority agent from acquiring the first bus; the arbiter unit asserting a priority signal to request ownership from a processor having current ownership of the first bus, the processor relinquishing ownership within a determined number of clock cycles after the assertion of the priority signal unless the lock signal has been asserted by the processor, the arbiter unit releasing ownership of the first bus to the processors by deasserting the priority signal. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. In a multiprocessor (MP) computer system comprising a plurality of symmetric processors each including an arbitration unit for controlling access to a bus, and a priority agent coupled to the bus, a method of arbitrating for ownership of the bus from a symmetric processor having current ownership of the bus, the method comprising the steps of:
-
(a) asserting by the priority agent a priority request signal during a first clock cycle; (b) determining that a lock signal has not been asserted by the arbitration unit of the symmetric processor; (c) determining within a certain time period of the first clock cycle whether a transaction is occurring on the bus;
if so(d) waiting until the transaction completes;
else,(e) waiting a predetermined number of clock cycles; (f) obtaining ownership of the bus by the priority agent. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A computer system comprising:
-
a main memory; a plurality of stand-alone agents which includes symmetric agents and a priority agent, at least one of the symmetric agents being a processor; a first bus coupled to the symmetric agents and to the main memory providing information transfer therebetween; a priority agent coupled to the first bus, the priority agent including an arbiter unit that arbitrates for ownership of the first bus; wherein each of the symmetric agents includes an arbitration unit controlling agent access to the first bus, a symmetric agent asserting an address strobe signal when performing a transaction on the first bus, and asserting a lock signal to block other symmetric agents or the priority agent from acquiring the first bus; the arbiter unit asserting a priority signal to request ownership of the first bus from a symmetric agent having current ownership of the first bus, the symmetric agent relinquishing ownership within a determined number of clock cycles after the assertion of the priority signal unless the lock signal has been asserted by the symmetric agent, the arbiter unit releasing ownership of the first bus back to the symmetric agents by deasserting the priority signal. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. In a computer system comprising a plurality of stand-alone agents coupled to a bus, the stand-alone agents including symmetric agents and a priority agent, each of the symmetric agents including an arbitration unit for controlling access to the bus, wherein at least one of the symmetric agents is a processor, a method for arbitrating ownership of the bus from a symmetric agent having current ownership of the bus comprising the steps of:
-
(a) asserting by the priority agent a priority request signal during a first clock cycle; (b) determining that the arbitration unit of the symmetric agent has not asserted a lock signal; (c) determining within a certain time period of the first clock cycle whether a transaction is occurring on the bus;
if so(d) waiting until the transaction completes;
else,(e) waiting a predetermined number of clock cycles; (f) obtaining ownership of the bus by the priority agent. - View Dependent Claims (38, 39, 40, 41, 42)
-
-
43. A computer system with distributed bus arbitration comprising:
-
a bus; a plurality of stand-alone agents coupled to said bus, said stand-alone agents including symmetric agents and a priority agent; each of said symmetric agents having logic circuitry that sends a symmetric request signal on said bus to request ownership of said bus and which receives symmetric request signals from other symmetric agents and which also receives a priority request signal from said priority agent, said symmetric owner of said bus being determined by said logic circuitry as among said symmetric agents according to an algorithm; wherein said logic circuitry of said symmetric owner releases ownership of said bus when said priority request signal is received. - View Dependent Claims (44, 45, 46, 47, 48)
-
Specification