← Back to Patent Explorer
US5581782A Expired / Lapsed US ⏱️ 0.0 years remaining

Computer system with distributed bus arbitration scheme for symmetric and priority agents

Assignee: Intel Corp
•
Filing: 1995-10-03
•
Granted: 1996-12-03
•
Expires: 2015-10-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Nitin V. Sarangdhar
  • 👤 Konrad K. Lai
  • 👤 Gurbir Singh
  • 👤 Michael W. Rhodehamel
  • 👤 Matthew A. Fisch

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 10:23
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/36; G06F13/362; G06F13/364; H; H04; H04L; H04L12/00; H04L12/28; H04L12/40; H04L12/403; H04L12/40143; H04L12/4015

Claims Analysis

Total Claims: 56
Claim 1
Independent Claim 245 words
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.
Claim 2
Dependent Claim 245 words
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.
Claim 3
Dependent Claim 30 words
The computer system of claim 1 wherein said first state indicates none of said symmetric agents is a symmetric owner and said second state indicates said symmetric owner is selected.
Claim 4
Dependent Claim 25 words
The computer system of claim 2, wherein each symmetric arbitration means further comprises: an agent identifier means for uniquely identifying each of said symmetric agents.
Claim 5
Dependent Claim 63 words
The computer system of claim 3, wherein each symmetric arbitration means further comprises: symmetric agent request detecting means for detecting bus ownership requests from said other symmetric agents, wherein when one symmetric agent is said symmetric owner its symmetric arbitration means releases ownership of said bus means when its symmetric agent request detecting means detects a request unless said bus transaction is atomic.
Claim 6
Dependent Claim 44 words
The computer system of claim 4 wherein when said one symmetric agent is said symmetric owner its symmetric arbitration means releases ownership of said bus means when its symmetric agent request detecting means detects a request unless said bus transaction is a burst access.
Claim 7
Independent Claim 157 words
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.
Claim 8
Independent Claim 157 words
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.
Claim 9
Dependent Claim 67 words
The method of claim 6 further comprising the step of: in each said symmetric agent(s), reading a symmetric ownership state indicator stored therein to determine whether said symmetric bus ownership state is idle or busy, wherein said symmetric bus ownership state is idle if no symmetric owner is assigned to said bus, and wherein said symmetric bus ownership state is busy if said symmetric owner is assigned.
Claim 10
Dependent Claim 35 words
The method of claim 7 further comprising the step of: parking on the bus by said symmetric owner if said symmetric bus ownership state is idle and said symmetric owner has not deasserted its request.
Claim 11
Dependent Claim 39 words
The method of claim 8 further comprising the initial step of: in each said symmetric agent, initializing said symmetric bus ownership state to idle and said rotating ID value to point to a predetermined one of said symmetric agent(s).
Claim 12
Dependent Claim 37 words
The method of claim 6 further comprising the additional step of: relinquishing ownership of said bus by said symmetric owner to said priority agent in response to assertion of a priority request signal from said priority agent.
Claim 13
Dependent Claim 23 words
The method of claim 10 further comprising the step, prior to said relinquishing step, of: performing a bus transaction by said symmetric owner.
Claim 14
Dependent Claim 107 words
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.
Claim 15
Dependent Claim 107 words
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.
Claim 16
Dependent Claim 167 words
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.
Claim 17
Dependent Claim 167 words
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.
Claim 18
Dependent Claim 18 words
The MP computer system of claim 13 wherein the determined number of clock cycles is equal to four.
Claim 19
Dependent Claim 62 words
The MP computer system of claim 13 further comprising: a second bus; a plurality of input/output (I/O) devices coupled to the second bus; and wherein the priority agent comprises a bridge circuit providing an interface between the first and second buses, the bridge circuit including the arbiter unit which arbitrates for ownership of the first bus on behalf of the I/O devices.
Claim 20
Dependent Claim 16 words
The MP computer system of claim 15 wherein the determined number of clock cycles equals four.
Claim 21
Dependent Claim 51 words
The MP computer system of claim 15 wherein the symmetric arbitration unit of each processor includes: a unique age identification (ID); a rotating identification (ID) which reflects an agent ID of a lowest priority processor; and a bus ownership state bit which indicates whether the first bus is busy or idle.
Claim 22
Dependent Claim 30 words
The MP computer system of claim 17 wherein the lowest priority processor is equal to the agent ID of the processor having current ownership if the first bus is busy.
Claim 23
Dependent Claim 28 words
The MP computer system of claim 17 wherein the lowest priority processor is equal to the agent ID of a previous owner if the first bus is idle.
Claim 24
Dependent Claim 19 words
The MP computer system of claim 17 wherein the agent ID and the rotating ID each comprise two bits.
Claim 25
Dependent Claim 22 words
The MP computer system of claim 20 wherein the rotating ID of the processors changes in accordance with a round-robin arbitration scheme.
Claim 26
Dependent Claim 136 words
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.
Claim 27
Dependent Claim 136 words
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.
Claim 28
Dependent Claim 25 words
The method of claim 22 further comprising the step of: deasserting the priority request signal to relinquish ownership of the bus by the priority agent.
Claim 29
Dependent Claim 47 words
The method of claim 22 further comprising the steps of: asserting a bus request signal by another symmetric processor; waiting until a rotating identification points to the another symmetric processor in accordance with a round-robin arbitration scheme; performing a new bus transaction by the another symmetric processor.
Claim 30
Dependent Claim 26 words
The method of claim 24 further comprising the initial step of: asserting a lock signal to prevent other symmetric processors from gaining ownership of the bus.
Claim 31
Dependent Claim 27 words
The method of claim 24 wherein the bus request signal remains asserted until the new bus transaction completes when the new bus transaction is a burst access.
Claim 32
Dependent Claim 23 words
The method claim 24 further comprising the step of: parking on the bus by the symmetric processor to perform an additional bus transaction.
Claim 33
Dependent Claim 196 words
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.
Claim 34
Dependent Claim 196 words
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.
Claim 35
Dependent Claim 17 words
The computer system of claim 28 wherein the determined number of clock cycles is equal to four.
Claim 36
Dependent Claim 61 words
The computer system of claim 28 further comprising: a second bus; a plurality of input/output (I/O) devices coupled to the second bus; and wherein the priority agent comprises a bridge circuit providing an interface between the first and second buses, the bridge circuit including the arbiter unit which arbitrates for ownership of the first bus on behalf of the I/O devices.
Claim 37
Dependent Claim 15 words
The computer system of claim 30 wherein the determined number of clock cycles equals four.
Claim 38
Dependent Claim 53 words
The computer system of claim 28 wherein the arbitration unit of each of the symmetric agents includes: a unique age identification (ID); a rotating identification (ID) which reflects an agent ID of a lowest priority symmetric agent; and a bus ownership state bit which indicates whether the first bus is busy or idle.
Claim 39
Dependent Claim 31 words
The computer system of claim 32 wherein the lowest priority symmetric agent is equal to the agent ID of the symmetric agent having current ownership if the first bus is busy.
Claim 40
Dependent Claim 27 words
The computer system of claim 32 wherein the lowest priority processor is equal to the agent ID of a previous owner if the first bus is idle.
Claim 41
Dependent Claim 18 words
The computer system of claim 32 wherein the agent ID and the rotating ID each comprise two bits.
Claim 42
Dependent Claim 22 words
The computer system of claim 35 wherein the rotating ID of the symmetric agents changes in accordance with a round-robin arbitration scheme.
Claim 43
Dependent Claim 150 words
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.
Claim 44
Dependent Claim 150 words
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.
Claim 45
Dependent Claim 25 words
The method of claim 37 further comprising the step of: deasserting the priority request signal to relinquish ownership of the bus by the priority agent.
Claim 46
Dependent Claim 47 words
The method of claim 37 further comprising the steps of: asserting a bus request signal by another symmetric agent; waiting until a rotating identification points to the another symmetric agent in accordance with a round-robin arbitration scheme; performing a new bus transaction by the another symmetric agent.
Claim 47
Dependent Claim 26 words
The method of claim 39 further comprising the initial step of: asserting a lock signal to prevent other symmetric agents from gaining ownership of the bus.
Claim 48
Dependent Claim 27 words
The method of claim 39 wherein the bus request signal remains asserted until the new bus transaction completes when the new bus transaction is a burst access.
Claim 49
Dependent Claim 24 words
The method claim 39 further comprising the step of: parking on the bus by the another symmetric agent to perform an additional bus transaction.
Claim 50
Dependent Claim 115 words
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.
Claim 51
Dependent Claim 115 words
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.
Claim 52
Dependent Claim 23 words
The computer system of claim 43 wherein said logic circuitry of said symmetric owner asserts a lock signal during an atomic bus transaction.
Claim 53
Dependent Claim 31 words
The computer system of claim 44 wherein said logic circuitry of said symmetric owner releases ownership of said bus when said priority request signal only after said atomic transaction has completed.
Claim 54
Dependent Claim 23 words
The computer system of claim 43 wherein said algorithm comprises a round-robin algorithm that arranges said symmetric agents in a circular priority order.
Claim 55
Dependent Claim 17 words
The computer system of claim 43 wherein at least one of said symmetric agents comprises a microprocessor.
Claim 56
Dependent Claim 30 words
The computer system of claim 47 wherein said priority agent comprises a bus arbiter that arbitrates for ownership of said bus on behalf of a plurality of input/output (I/O) devices.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-12-03 2000-06-03 2000-12-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-12-03 2004-06-03 2004-12-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-12-03 2008-06-03 2008-12-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag