DE102008034500A1 - arbitration - Google Patents

arbitration Download PDF

Info

Publication number
DE102008034500A1
DE102008034500A1 DE102008034500A DE102008034500A DE102008034500A1 DE 102008034500 A1 DE102008034500 A1 DE 102008034500A1 DE 102008034500 A DE102008034500 A DE 102008034500A DE 102008034500 A DE102008034500 A DE 102008034500A DE 102008034500 A1 DE102008034500 A1 DE 102008034500A1
Authority
DE
Germany
Prior art keywords
arbitration
signal
arbiter
arbitrators
arbitrator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102008034500A
Other languages
German (de)
Other versions
DE102008034500B4 (en
Inventor
Helmut Dr. Reinig
Soeren Sonntag
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102008034500A1 publication Critical patent/DE102008034500A1/en
Application granted granted Critical
Publication of DE102008034500B4 publication Critical patent/DE102008034500B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Ein hierarchisches Arbitrierungssystem weist eine Mehrzahl von Arbitrierern auf, wobei die Mehrzahl von Arbitrierern in einem Pipeline-Betrieb betrieben werden können und zumindest ein Teil der Mehrzahl von Arbitrierern ausgebildet ist, um selektiv in einem Nicht-Pipeline-Betrieb betrieben zu werden.A hierarchical arbitration system includes a plurality of arbitrators, wherein the plurality of arbitrators may be pipelined and at least a portion of the plurality of arbitrators are configured to be selectively operated in a non-pipelined operation.

Description

In vielen technischen Gebieten werden Ressourcen durch mehr als eine Einheit oder Vorrichtung geteilt. Beispielsweise kann in einer Master-Slave-Configuration eine Mehrzahl von Mastern einen gemeinsamen Slave teilen, eine Mehrzahl von Einheiten kann einen gemeinsamen Bus teilen, eine Mehrzahl von Prozessoren kann einen gemeinsamen Speicher teilen oder Teile von Informationen, wie beispielsweise Datenpakete können über einen gemeinsamen Datenkanal übertragen werden. Wenn mehr als eine Einheit einen Zugriff auf eine geteilte Ressource zur gleichen Zeit verlangt, liegt ein Konflikt zwischen den Einheiten, die hinsichtlich eines Zugriffs anfragen, vor, da bei einem gegebenen Zeitpunkt lediglich eine der Einheiten einen Zugriff erhalten kann, während für die anderen ein Zugreifen verhindert werden muss.In Many technical areas become resources through more than one Unit or device shared. For example, in a master-slave configuration a plurality of masters share a common slave, a plurality of units may share a common bus, a plurality of Processors can share a shared memory or parts of it Information, such as data packets, can be transmitted over a common data channel become. If more than one unit has access to a shared resource at the same time, there is a conflict between the units, which in terms of access, before, because of a given When only one of the units can gain access, while for the other access must be prevented.

Um dieses Problem anzugehen, wird Arbitrierung verwendet. Arbitrierung ist ein Prozess, bei dem einer Einheit eine Priorität über eine anderen Einheit (oder einer Mehrzahl von anderen Einheiten) gegeben wird. Viele Arbitrierungstechniken mit unterschiedlichen Graden von Fairness für die Anfrager (requester) und unterschiedlichen Graden der Komplexität sind bekannt. Arbitrierung kann beispielsweise die Anzahl von vorhergehenden Anfragen einer bestimmten Einheit oder der Identität der Einheit (das heißt der Identität des Anschlusses) in Betracht ziehen. Ferner können faire Arbitrierungstechniken in Betracht ziehen, dass Anfrager fair gehandhabt werden und ein Anfrager beispielsweise nicht durch einen anderen Anfrager geblockt wird. Faire Arbitrierungstechniken umfassen beispielsweise eine round-robin-Arbitrierung (RR-Arbitrierung), eine weighted-round-robin-Arbitrierung (WRR-Arbitrierung) oder eine deficit-round-robin-Arbitrierung (DRR-Arbitrierung).Around To address this problem, arbitration is used. arbitration is a process in which a unit is given a priority over a given to another unit (or a plurality of other units) becomes. Many arbitration techniques with different degrees of fairness for the requester and different degrees of complexity are known. For example, arbitration can be the number of previous requests a particular unit or the identity of the unit (that is the identity of the terminal) consider. Furthermore, can consider fair arbitration techniques that make inquirers fair For example, a requestor can not be handled by a requestor other requestor is blocked. Include fair arbitration techniques for example, round robin arbitration (RR arbitration), a weighted-round robin arbitration (WRR arbitration) or a deficit-round-robin arbitration (DRR arbitration).

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Konzept für eine verbesserte Arbitrierung zu schaffen.The Object of the present invention is to provide a concept for an improved To create arbitration.

Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1, ein Arbitrierungsknoten gemäß Anspruch 12, ein Arbitrierersystem gemäß Anspruch 16 und ein Arbitrierersystem gemäß Anspruch 20 gelöst.These The object is achieved by a method according to claim 1, an arbitration node according to claim 12, an arbiter system according to claim 16 and an arbitrator system according to claim 20 solved.

Die vorliegende Erfindung schafft ein Verfahren bei dem eine Mehrzahl von Arbitrierern in einem Pipeline-Modus betrieben wird und zumindest eines Teils der Mehrzahl von Arbitrierern in einem Nicht-Pipeline-Betrieb erfolgen kann.The The present invention provides a method in which a plurality operated by arbitrators in a pipeline mode and at least a portion of the plurality of arbitrators in a non-pipelined operation can be done.

Bei einem Ausführungsbeispile umfasst der Pipeline-Modus ein Liefern eines ersten Signals von einem ersten Arbitrierer zu einem zweiten Arbitrierer basierend auf einer Arbitrierung bei dem ersten Arbitrierer und der Nicht-Pipeline-Betrieb ein Liefern eines zweiten Signals zu dem zweiten Arbitrierer unabhängig von einer Arbitrierung bei dem ersten Arbitrierer. Ein Arbitrieren bei dem zweiten Arbitrierer erfolgt basierend auf dem zweiten Signal.at a Ausführungsbeispile Pipeline mode includes providing a first signal from one first arbitrator to a second arbitrator based on a Arbitration in the first arbiter and non-pipelined operation providing a second signal to the second arbitrator independent of an arbitration in the first arbitrator. An arbitration at the second arbiter is based on the second signal.

Bei einem Ausführungsbeispiel ist wird das zweite Signal in dem Pipeline-Modus und dem Nicht-Pipeline-Betrieb geliefert, wobei in dem Pipeline-Modus eine Arbitrierung bei dem zweiten Arbitrierer basierend auf dem ersten Signal über eine Arbitrierung basierend auf dem zweiten Signal priorisiert wird.at an embodiment is the second signal in the pipeline mode and the non-pipeline operation supplied, wherein in the pipeline mode, an arbitration in the second arbitrator based on the first signal via a Arbitration is prioritized based on the second signal.

Die Mehrzahl von Arbitrierern kann eine Mehrzahl von Arbitrierern eines hierarchischen Arbitrierungssystem sein, wobei das erste Signal ein Pipelineanfragesignal ist und das zweite Signal ein Vorausschausignal ist. Das Betreiben in dem Pipeline-Modus kann ein Liefern des Pipelineanfragesignals von dem ersten Arbitrierer zu einem ersten Eingangstor des zweiten Arbitrierers basierend auf der Arbitrierung zwischen der Mehrzahl von Eingangsports an dem ersten Arbitrierer umfassen, und der zweite Arbitrierer kann auf einer dem ersten Arbitriere übergeordneten Ebene implementiert sein. Der Nicht-Pipeline-Betrieb kann ein Liefern des Vorausschausignals zu einem ersten Eingangsport des zweiten Arbitrierers auf einer übergeordneten Ebene umfassen, wobei das Vorausschausignal unabhängig von einem Arbitrieren bei dem ersten Arbitrierer ist. Ferner wird ein drittes Signal basierend auf dem Vorausschausignal geliefert, das eine Gewährung für den ersten Eingangsport anzeigt.The A plurality of arbitrators may include a plurality of arbitrators of one hierarchical arbitration system, the first signal a pipeline request signal is and the second signal is a look-ahead signal is. Operating in the pipeline mode may be providing the pipeline request signal from the first arbitrator to a first input port of the second one Arbiter based on the arbitration between the plurality of input ports on the first arbiter, and the second Arbitrator may be parent on a first arbitration Be implemented level. The non-pipeline operation may be a delivery the look-ahead signal to a first input port of the second Arbitrator on a parent Level, wherein the look-ahead signal regardless of is an arbitration in the first arbitrator. Furthermore, a third signal supplied based on the look-ahead signal, the a grant for the first input port displays.

Der zumindest eine Teil der Mehrzahl von Arbitrierer kann in einem Nicht-Pipeline-Betrieb betrieben werden, wenn der zumindest eine Teil der Mehrzahl von Arbitrierer in dem vorhergehenden Zyklus in einem Leerlaufzustand ist oder in dem vorhergehenden Zyklus keine aktive Pipelineanfrage aufweist.Of the at least a portion of the plurality of arbitrators may be in a non-pipelined operation operated when the at least a part of the plurality of Arbiter in the previous cycle in an idle state or no active pipeline request in the previous cycle having.

Der Nicht-Pipeline-Betrieb kann hierbei ein paralleles Durchführen einer Arbitrierung einer Anfrage von zumindest einem Anfrager einer Mehrzahl von Anfragern umfassen.Of the Non-pipeline operation can in this case be carried out in parallel Arbitration of a request from at least one requester of a plurality of requestors.

Bei einem Ausführungsbeispiel wird für jeden der Mehrzahl von Arbitrierern Informationen gespeichert, die Tore anzeigen, denen durch einen jeweiligen der Mehrzahl von Arbitrierern Gewährung erteilt wurde. Ein weiteres Ausführungsbeispiel umfasst ein Liefern eines Datenpfads von einem Anfrager zu einer geteilten Ressource basierend auf den Informationen, die für einen jeweiligen Arbitrierer der Mehrzahl von Arbitrierern gespeichert sind. Ferner schreitet bei einem Ausführungsbeispiel in dem Pipeline-Modus eine Anfrage pro Taktzyklus eine Ebene vorwärts, während in dem Nicht-Pipeline-Betrieb eine Anfrage in der Lage ist zumindest zwei Ebenen der Pipeline pro Taktzyklus vorzuschreiten. Bei einem Ausführungsbeispiel kann die Anfrage in dem Nicht-Pipeline-Betrieb alle Ebenen der Pipeline innerhalb eines Taktzyklus vorschreiten. Bei einem Ausführungsbeispiel wird einem Anfrager durch die Mehrzahl von Arbitrierern Gewährung für einen Datentransfer zu einer geteilten Ressource innerhalb eines Taktzyklus nachdem der Anfrager eine Anfrage zum Gewähren zu der Mehrzahl von Arbitrierern ausgegeben hat, erteilt, wenn die Mehrzahl von Arbitrierern in einem Leerlaufzustand ist.In one embodiment, information is stored for each of the plurality of arbitrators indicating the gates granted grant by a respective one of the plurality of arbitrators. Another embodiment includes providing a data path from a requester to a shared resource based on the information stored for a respective arbiter of the plurality of arbitrators. Further, in one embodiment, in pipelined mode, one request advances one level per clock cycle, while in non-pipelined mode a request is capable of at least two levels of Advance pipeline per clock cycle. In one embodiment, in non-pipelined operation, the request may advance all levels of the pipeline within one clock cycle. In one embodiment, a grantor is granted grant by the plurality of arbitrators for data transfer to a shared resource within one clock cycle after the requestor has issued a request to grant to the plurality of arbitrators when the plurality of arbitrators are in an idle state.

Die Erfindung schafft ferner einen Arbitrierungsknoten in einem hierarchischen Arbitrierungssystem, wobei der Arbitrierungsknoten einen ersten Knoten aufweist, der eine Mehrzahl von ersten Eingängen aufweist, um erste Signale von einem untergeordneten Arbitrierungsknoten zu empfangen. Der Knoten weist ferner einen ersten Ausgang auf, um ein Signal zu einem Arbitrierungsknoten einer höheren Ebene zu übertragen. Der Arbitrierungsknoten weist ferner einen zweiten Knoten auf, wobei der zweite Knoten eine Mehrzahl von zweiten Eingängen aufweist, um zweite Signale von zweiten Knoten von untergeordneten Arbitrierungsknoten zu empfangen. Der zweite Knoten weist ferner einen zweiten Ausgang auf, um ein Signal zu einem übergeordneten Arbitrierungsknoten zu übertragen. Der zweite Knoten kann hierbei eine kombinatorische Logik aufweisen, wobei die kombinatorische Logik implementiert sein kann, um eine Mehrzahl von Eingangssignalen, die an den zweiten Eingängen empfangen werden, zu kombinieren, und an dem Ausgang ein Ausgangssignal entsprechend einer Oder-Kombination der Eingangssignale zu liefern.The The invention further provides an arbitration node in a hierarchical Arbitration system, wherein the arbitration node is a first node having a plurality of first inputs to first signals from a child arbitration node. The knot further comprises a first output for sending a signal to an arbitration node a higher one Plane to transfer. The arbitration node further comprises a second node, wherein the second node has a plurality of second inputs to receive second signals receive from second node of subordinate arbitration nodes. Of the second node further has a second output to receive a signal to a parent Arbitrierungsknoten to transfer. The second node may in this case have a combinatorial logic, wherein the combinatorial logic may be implemented to be a plurality of input signals received at the second inputs, and at the output an output signal corresponding to an OR combination to deliver the input signals.

Bei einem Ausführungsbeispiel kann der Arbitrierer mit einem Register gekoppelt sein, das dem Arbitrierungsknoten zugeordnet ist, um Informationen zu speichern, die sich auf den durch den Arbitrierern gewährten Eingang beziehen.at an embodiment For example, the arbitrator may be coupled to a register that is the arbitration node is assigned to store information that relates to the granted by the arbitrators Receive input.

Ferner schafft die Erfindung ein Arbitrierersystem, das einen ersten Arbitrierer, einen zweiten Arbitrierer und einen dritten Arbitrierer umfasst. Das Arbitrierersystem weist eine erste Verbindung, um ein erstes Signal von einem ersten Anfrager einer Mehrzahl von Anfragern zu dem zweiten Arbitrierer zu übertragen, und eine zweite Verbindung auf, um ein zweites Signal von einem zweiten Anfrager der Mehrzahl von Anfragern zu dem ersten Arbitrierer zu übertragen. Eine dritte Verbindung ist vorgesehen, um ein drittes Signal basierend auf dem ersten und zweiten Signal zu dem dritten Arbitrierer zu übertragen. Ferner ist eine vierte Verbindung vorgesehen, um ein viertes Signal von dem ersten Arbitrierer zu dem dritten Arbitrierer zu übertragen. Eine fünfte Verbindung ist in dem Arbitrierersystem vorgesehen, um ein fünftes Signal von dem zweiten Arbitrierer zu dem dritten Arbitrierer zu übertragen. Das Arbitrierersystem kann ein hierarchisches Arbitrierersystem sein, Arbitrierungsknoten, wobei die ersten und zweiten Arbitrierer einer hierarchischen Ebene zugeordnet sind, während der dritte Arbitrierer einer der ersten hierarchischen Ebene übergeordneten Ebene zugeordnet ist.Further the invention provides an arbiter system comprising a first arbitrator, a second arbiter and a third arbiter. The arbitrator system has a first connection to a first one Signal from a first requester to a plurality of requestors to transmit to the second arbitrator, and a second connection to receive a second signal from one second requester of the plurality of requesters to the first arbitrator transferred to. A third connection is provided based on a third signal on the first and second signals to the third arbiter. Further, a fourth connection is provided to a fourth signal from the first arbiter to the third arbiter. A fifth Connection is provided in the arbiter system to a fifth signal from the second arbiter to the third arbiter. The arbitrator system may be a hierarchical arbitrator system be, arbitration nodes, wherein the first and second arbitrators are assigned to a hierarchical level, while the third arbiter assigned to one of the first hierarchical level parent level is.

Die dritte Verbindung kann eine kombinatorische Logik aufweisen, wobei die kombinatorische Logik einen ersten und zweiten Eingang und einen Ausgang zum Ausgeben des dritten Signals aufweist, und wobei die vierte und fünfte Verbindung jeweils ein Register aufweisen, um das vierte und fünfte Signal zu speichern, wobei das Register mit einem Steuereingang eines Multiplexers gekoppelt ist.The third connection may have a combinational logic, wherein the combinatorial logic has a first and second input and a Having output for outputting the third signal, and wherein the fourth and fifth Connection each have a register to the fourth and fifth signal store, with the register having a control input of a multiplexer is coupled.

Ferner kann ein Datenpfad vorgesehen sein, der den ersten Anfrager und den zweiten Anfrager mit einer geteilten Ressource koppelt, wobei der Datenpfad mit dem Multiplexer gekoppelt ist, um selektiv Daten basierend auf den in dem Register gespeicherten Signalen zu übertragen.Further For example, a data path may be provided that includes the first requester and couples the second requester to a shared resource, where the data path is coupled to the multiplexer to selectively store data based on the signals stored in the register.

Die vorliegende Erfindung schafft ferner ein Arbitrierersystem mit einer Mehrzahl von Arbitrierern, wobei die Mehrzahl von Arbitrierern ausgebildet ist, um in einem Pipeline-Betrieb betrieben zu werden, und wobei zumindest ein Teil der Mehrzahl von Arbitrierern ausgebildet ist, um selektiv in einem Nicht-Pipeline-Betrieb betrieben zu werden.The The present invention further provides an arbitrator system having a A plurality of arbitrators, wherein the plurality of arbitrators are formed is to be operated in a pipeline operation, and wherein at least a part of the plurality of arbitrators is formed, to be operated selectively in a non-pipelined operation.

Der zumindest eine Teil der Mehrzahl von Arbitrierern ist in einem Nicht-Pipeline-Betrieb betreibbar, wenn sich der zumindest eine Teil der Mehrzahl von Arbitrierern in einem Leerlaufzustand befindet.Of the at least a portion of the plurality of arbitrators are in a non-pipelined operation operable when the at least a portion of the plurality of arbitrators is in an idle state.

Bei einem Ausführungsbeispiel kann die Mehrzahl von Arbitrierern konfiguriert sein, um, wenn sich die Mehrzahl von Arbitrierern ursprünglich in einem Leerlaufzustand befindt, eine Datenübertragung für einen Anfrager einen Taktzyklus nachdem der Anfrager bezüglich eines Zugriffs eine Anfrage gestellt hat, auszulösen. Die Mehrzahl von Arbitrierern kann ferner ein hierarchisches Arbitrierungssystem bilden.at an embodiment For example, the plurality of arbitrators may be configured to, when the plurality of arbitrators originally in an idle state is a data transfer for one Inquirer one clock cycle after the requester with respect to one Access has made a request to trigger. The majority of arbitrators may further form a hierarchical arbitration system.

Bei einem Ausführungsbeispiel kann jeder der Mehrzahl von Arbitrierern mit einem entsprechenden Register gekoppelt sein, um Informationen zu speichern, die Tore anzeigen, denen durch die Mehrzahl von Arbitrierern Gewährung erteilt wurde. Das entsprechende Register kann mit einem entsprechenden Multiplexer gekoppelt sein, um einen Datenpfad von einem Anfrager zu einer geteilten Ressource basierend auf Informationen zu liefern, die in jedem der entsprechenden Register gespeichert sind. Ferner kann die Mehrzahl von Arbitrierern konfiguriert sein, um in dem Pipeline-Betrieb ein erstes Signal von einem ersten Arbitrierer zu einem zweiten Arbitrierer auf einer nächst höheren Ebene basierend auf einer Arbitrierung bei dem ersten Arbitrierer zu liefern, wobei in dem Nicht-Pipeline-Betrieb ein zweites Signal zu dem zweiten Arbitrierer unabhängig von der Arbitrierung in dem ersten Arbitrierer geliefert wird. Das zweite Signal kann ferner bei dem Pipeline-Betrieb geliefert werden, wobei eine Arbitrierung basierend auf dem ersten Signal priorisiert wird über eine Arbitrierung basierend auf dem zweiten Signal.In one embodiment, each of the plurality of arbiters may be coupled to a corresponding register for storing information indicative of goals granted by the plurality of arbitrators. The corresponding register may be coupled to a corresponding multiplexer for providing a data path from a requester to a shared resource based on information stored in each of the respective registers. Further, the plurality of arbiters may be configured to, in the pipeline operation, assert a first signal from a first arbitrator to a second arbiter at a next higher level based on arbitration at the first arbi in the non-pipelined operation, a second signal is provided to the second arbiter independently of the arbitration in the first arbiter. The second signal may be further provided in pipelined operation, wherein arbitration based on the first signal is prioritized via arbitration based on the second signal.

Bevorzugte Ausführungsbeispiele werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:preferred embodiments will be described below with reference to the accompanying drawings explained in more detail. It demonstrate:

1 ein Blockdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, 1 a block diagram according to an embodiment of the present invention,

2 ein Blockdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, 2 a block diagram according to an embodiment of the present invention,

3 ein Blockdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, 3 a block diagram according to an embodiment of the present invention,

4a und 4b Blockdiagramme gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, 4a and 4b Block diagrams according to an embodiment of the present invention,

5a bis 5f beispielhafter Blockdiagramme, um einen Betrieb gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zu erläutern, 5a to 5f exemplary block diagrams to illustrate an operation according to an embodiment of the present invention,

6a bis 6f beispielhafter Blockdiagramme, um einen Betrieb gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zu erläutern, 6a to 6f exemplary block diagrams to illustrate an operation according to an embodiment of the present invention,

7 ein Blockdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, 7 a block diagram according to an embodiment of the present invention,

8a bis 8f beispielhafter Blockdiagramme, um einen Betrieb gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zu erläutern, 8a to 8f exemplary block diagrams to illustrate an operation according to an embodiment of the present invention,

9a bis 9f beispielhafter Blockdiagramme, um einen Betrieb gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zu erläutern, und 9a to 9f exemplary block diagrams to explain an operation according to an embodiment of the present invention, and

10 ein Blockdiagramm gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. 10 a block diagram according to an embodiment of the present invention.

Im Folgenden werden exemplarische Ausführungsbeispiele der vorliegenden Erfindung erklärt. In den verschiedenen Figuren können identische oder gleichartige Einheiten, Module, Vorrichtungen etc. ein gleiches Bezugszeichen aufweisen.in the Following are exemplary embodiments of the present invention Invention explained. In the different characters can identical or similar units, modules, devices etc. have the same reference number.

Wie es nachfolgend ausführlicher erklärt wird, können Ausführungsbeispiele der vorliegenden Erfindung eine Arbitrierung bereitstellen, bei der eine Mehrzahl von Arbitrierern oder Sub-Arbitrierern verwendet wird. Die Mehrzahl von Sub-Arbitrierern kann in einer hierarchischen Architektur angeordnet sein und kann in einem Pipeline-Betrieb oder einem Nicht-Pipeline-Betrieb betrieben werden, wie es nachfolgend unter Bezugnahme auf die beigefügten Figuren näher beschrieben wird.As it is more detailed below it is explained can embodiments to provide arbitration for the present invention using a plurality of arbitrators or sub-arbitrators becomes. The plurality of sub-arbitrators may be in a hierarchical Architecture can be arranged and in a pipeline operation or operate a non-pipeline operation, as described below Reference to the attached figures described in more detail becomes.

Unter Bezugnahme auf 1 umfasst ein grundlegendes Blockdiagramm eines Ausführungsbeispiels der vorliegenden Erfindung eine Mehrzahl von Anfragern 100, die mit einer Mehrzahl von Eingängen 102a eines Arbitrierungssystems 102 gekoppelt sind, um Anfragen zu dem Arbitrierungssystem 102 zu übertragen. Ein Ausgang 102b des Arbitrierungssystems 102 ist mit einer geteilten Ressource 104 gekoppelt, um einen Datentransfer von dem Anfrager, dem der Zugriff auf die geteilte Ressource gewährt wurde, zu ermöglichen.With reference to 1 For example, a basic block diagram of one embodiment of the present invention includes a plurality of requesters 100 that come with a plurality of inputs 102 an arbitration system 102 are coupled to requests to the arbitration system 102 transferred to. An exit 102b of the arbitration system 102 is with a shared resource 104 coupled to allow data transfer from the requester who has been granted access to the shared resource.

Wie es nachfolgend genauer erklärt wird, kann das Arbitrierungssystem 102 gemäß Ausführungsbeispielen eine Mehrzahl von Arbitrierern oder Sub-Arbitrierern umfassen, die sowohl in einem Pipeline-Betrieb als auch in einem Nicht-Pipeline-Betrieb betrieben werden können. Die Mehrzahl von Arbitrierern kann in einer hierarchischen Architektur implementiert sein.As will be explained in more detail below, the arbitration system 102 According to embodiments, a plurality of arbiters or sub-arbiters may be operable in both pipelined and non-pipelined operation. The plurality of arbitrators may be implemented in a hierarchical architecture.

Die Mehrzahl von Anfragern 100 kann jede Vorrichtung, Einheit, Schaltung etc. umfassen, die die Ressource 104 mit einer oder mehreren Vorrichtungen, Einheiten, Schaltungen etc. teilt. Die Mehrzahl von Anfragern 100 kann beispielsweise, Speicher-Steuerungseinheiten, Prozessoren und Prozessressourcen einschließlich dedizierter Prozessoren, Bus-Steuerungseinheiten, Netzwerksteuerungseinheiten einschließlich drahtgebundene-Netzwerk-Steuerungseinheiten, drahtlos-Netzwerk-Steuerungseinheiten, Ethernet-Netzwerk-Steuerungseinheiten etc., geteilte Busse, geteilte Speicherressourcen einschließlich Cache-Speicher, DRAM-Speicher, Anwendungsbeschleunigungseinheiten, Datenerfassungsvorrichtungen etc. umfassen.The majority of requesters 100 can include any device, unit, circuit, etc., which is the resource 104 with one or more devices, units, circuits, etc. shares. The majority of requesters 100 For example, memory controllers, processors and process resources including dedicated processors, bus controllers, network controllers including wired network controllers, wireless network controllers, Ethernet network controllers, etc., shared buses, shared memory resources including cache memory, DRAM memory, application acceleration units, data acquisition devices, etc.

Die Mehrzahl von Anfragern kann lediglich einen Typ von Anfragern umfassen, beispielsweise lediglich eine Mehrzahl von Prozessoren eines gleichen Typs, oder kann unterschiedliche Typen von Anfragern umfassen, beispielsweise Prozessoren und dedizierte Prozessoren.The Plurality of requesters may comprise only one type of requestor, For example, only a plurality of processors of the same Type, or may include different types of requestors, for example Processors and dedicated processors.

Die geteilte Ressource 104 kann jede Vorrichtungseinheit, Schaltung etc. sein, die mit mehr als einer Vorrichtung, Einheit oder Schaltung etc. geteilt werden kann. Die geteilte Ressource kann beispielsweise ein Speicher, ein Bus, ein Datenport, ein Datenkanal etc. sein. Gemäß Ausführungsbeispielen kann die Mehrzahl von Anfragern und die geteilte Ressource ein Master-Slave-System bilden, bei dem die Mehrzahl von Anfragern Master eines gleichen oder unterschiedlichen Typs und die geteilte Ressource ein Slave ist.The shared resource 104 may be any device unit, circuit, etc. that may be shared with more than one device, unit or circuit, etc. The shared resource may be, for example, a memory, a bus, a data port, a data channel, etc. According to embodiments, the plurality of requesters and the shared Resource form a master-slave system in which the plurality of requestors master of a same or different type and the shared resource is a slave.

Unter Bezugnahme auf 2 wird nachfolgend ein Ausführungsbeispiel eines Arbitrierungssystems genauer erläutert.With reference to 2 An embodiment of an arbitration system will be explained in more detail below.

2 zeigt eine exemplarische Implementierung des Arbitrierungssystems 102 in einer hierarchischen Arbitrierungsarchitektur gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die hierarchische Arbitrierungsarchitektur umfasst eine Mehrzahl von Arbitrierungsknoten 200. Die Mehrzahl von Arbitrierungsknoten 200 ist in unterschiedlichen hierarchischen Ebenen angeordnet, derart, dass jeder der Arbitrierungsknoten 200 einer Ebene der hierarchischen Arbitrierungsarchitektur zugeordnet ist. Ein Arbitrierungsknoten, der einer Ebene zugeordnet ist, ist hierarchisch abwärts mit den Ausgängen eines oder mehreren Arbitrierungsknoten einer untergeordneten Ebene und hierarchisch aufwärts mit einem Arbitrierungsknoten einer übergeordneten Ebene verbunden. Die Arbitrierungsknoten der untersten Ebene sind mit den Anfragern verbunden. 2 shows an exemplary implementation of the arbitration system 102 in a hierarchical arbitration architecture according to an embodiment of the present invention. The hierarchical arbitration architecture includes a plurality of arbitration nodes 200. , The majority of arbitration nodes 200. is arranged in different hierarchical levels, such that each of the arbitration nodes 200. is associated with a level of the hierarchical arbitration architecture. An arbitration node associated with a level is hierarchically downlinked to the outputs of one or more arbitration nodes of a subordinate level and hierarchically uplinked to a higher level arbitration node. The lowest level arbitration nodes are connected to the requestors.

Wie es in 2 zu sehen ist, bilden die Arbitrierungsknoten eine baum-artige Struktur, bei der jeder Knoten mit einem Knoten einer höheren Ebene gekoppelt ist mit Ausnahme der Arbitrierungsknoten der höchsten Ebene, das heißt die Arbitrierungsknoten am oberen Ende der hierarchischen Architektur sind mit dem Ausgang 102b des Arbitrierungssystems 102 gekoppelt. Ferner sind die Ar bitrierungsknoten 200 auf der untersten Ebene (Ebene 1) mit den Eingängen 102a des Arbitrierungssystems 102 gekoppelt. Jeder Arbitrierungsknoten 200 auf der untersten Ebene kann mit einem oder mehreren der Anfrager 100 gekoppelt werden, um Anfragesignal von jedem der Anfrager 100 zu empfangen.As it is in 2 As can be seen, the arbitration nodes form a tree-like structure in which each node is coupled to a higher-level node except for the highest-level arbitration nodes, that is, the arbitration nodes at the top of the hierarchical architecture are at the output 102b of the arbitration system 102 coupled. Furthermore, the Ar bitrierungsknoten 200. at the lowest level (level 1) with the entrances 102 of the arbitration system 102 coupled. Each arbitration node 200. At the lowest level may be with one or more of the requester 100 be coupled to request signal from each of the requester 100 to recieve.

Während 2 eine exemplarische Implementierung mit drei Ebenen zeigt, bei der die erste Ebene fünf Arbitrierungsknoten und die zweite Ebene zwei Arbitrierungsknoten aufweist, ist an dieser Stelle zu bemerken, dass die Anzahl von Ebenen und die Anzahl von Arbitrierungsknoten innerhalb einer Ebene in anderen Ausführungsbeispielen unterschiedlich sein kann. Ferner kann die Anzahl von Arbitrierungsknoten, die einem Arbitrierungsknoten einer übergeordneten Ebene zugeordnet oder mit derselben gekoppelt ist, in anderen Ausführungsbeispielen unterschiedlich sein. Ferner kann die Anzahl von Arbitrierungsknoten, die einem Arbitrierungsknoten auf einer höheren Ebene zugeordnet sind, für eine bestimmte Ebene gleich sein oder für Arbitrierungsknoten einer bestimmten Ebene unterschiedlich sein. Unter Bezugnahme auf 2 ist beispielsweise einer der Arbitrierungsknoten auf der Ebene 2 drei Arbitrierungsknoten der Ebene 1 zugeordnet, während dem anderen Arbitrierungsknoten lediglich zwei Arbitrierungsknoten der Ebene 1 zugeordnet sind.While 2 It should be noted at this point that the number of levels and the number of arbitration nodes within a level may be different in other embodiments, an exemplary three level implementation in which the first level has five arbitration nodes and the second level has two arbitration nodes. Furthermore, the number of arbitration nodes associated with or coupled to a higher level arbitration node may be different in other embodiments. Further, the number of arbitration nodes associated with an arbitration node at a higher level may be the same for a particular level or different for arbitration nodes of a particular level. With reference to 2 For example, one of the level 2 arbitration nodes is assigned three level 1 arbitration nodes, while the other arbitration node has only two level 1 arbitration nodes associated with it.

Gemäß Ausführungsbeispielen, die nachfolgend detaillierter erklärt werden, kann das hierarchische Arbitrierungssystem 102 eine hierarchische Arbitrierungsanfragearchitektur und eine hierarchische Datenpfadarchitektur umfassen. Um die hierarchische Anfragearchitektur und die hierarchische Datenpfadarchitektur zu implementieren, weist jeder der Arbitrierungsknoten 200 gemäß einem Ausführungsbeispiel einen Arbitrierungsanfrageknoten auf, der durch einen Arbitrierer (oder Arbitriererschaltung) 300 implementiert ist, und weist einen Datenpfadanfrageknoten auf, der gemäß einem Ausführungsbeispiel durch einen Multiplexer 302, der in 3 gezeigt ist, implementiert ist. Der Arbitrierer 300 umfasst eine Mehrzahl von Eingängen 300a gemäß der Anzahl von Arbitrierungsknoten auf der nächst untergeordneten Ebene, die den jeweiligen Arbitrierungsknoten zugeordnet sind, so dass jeder Eingang 300a mit einem entsprechenden Ausgang des Arbitrierers 300 auf der nächst untergeordneten Ebene verbunden ist. Ferner ist ein Ausgang 300b des Arbitrierers 300 mit einem Eingang eines Arbitrierers 300 verbunden, der einem Arbitrierungsknoten einer übergeordneten Ebene entspricht.According to embodiments which will be explained in more detail below, the hierarchical arbitration system 102 a hierarchical arbitration request architecture and a hierarchical data path architecture include. In order to implement the hierarchical request architecture and the hierarchical data path architecture, each of the arbitration nodes points 200. According to one embodiment, an arbitration request node provided by an arbiter (or arbiter circuit) 300 is implemented, and comprises a data path request node, which according to an embodiment by a multiplexer 302 who in 3 shown is implemented. The arbitrator 300 includes a plurality of inputs 300a according to the number of arbitration nodes at the next subordinate level associated with the respective arbitration nodes, such that each input 300a with a corresponding output of the arbitrator 300 connected at the next lower level. There is also an exit 300b of the arbitrator 300 with an input of an arbitrator 300 connected, which corresponds to an arbitration node of a higher level.

Der Multiplexer 302 umfasst eine Mehrzahl von Datenpfadeingängen 302a, die mit Ausgängen von Multiplexern auf untergeordneten Ebenen gekoppelt sind, und einen Ausgang 302b, der mit einem Eingang eines Multiplexers auf einer übergeordneten Ebene gekoppelt ist.The multiplexer 302 includes a plurality of data path inputs 302a which are coupled to outputs of multiplexers at subordinate levels, and an output 302b which is coupled to an input of a multiplexer on a higher level.

Der Arbitrierer 300 ist mit einem Register 304 gekoppelt, um Informationen zu speichern, die identifizieren, welchem der Eingangsports oder Eingangstore, die in einem Arbitrierungsprozess des Arbitrierers 300 miteinander konkurrieren, Gewährung erteilt wurde. Das Register 304 ist ferner mit einem Steuereingang des Multiplexers 302 gekoppelt, um den Datenpfad entsprechend zu den Informationen, die in dem Register gespeichert sind, zu schalten. Gemäß Ausführungsbeispielen werden die Multiplexer gemäß den Informationen, die in dem Register 304 gespeichert sind, geschaltet.The arbitrator 300 is with a register 304 coupled to store information identifying which of the input ports or input ports used in an arbitration process of the arbitrator 300 compete with each other, grant was granted. The registry 304 is also connected to a control input of the multiplexer 302 coupled to switch the data path according to the information stored in the register. According to embodiments, the multiplexers according to the information contained in the register 304 are stored, switched.

Durch das Implementieren der oben beschriebenen Arbitrierungsknoten 200 in einer hierarchischen Arbitrierungsarchitektur wie es in 2 gezeigt ist, wird eine hierarchische Arbitrierungsanfragearchitektur zum Durchführen von Gewährungsentscheidungen in Arbitrierungsprozessen und eine hierarchische Datenpfadarchitektur zum Übertragen der Daten von den Anfragern, die Gewährung erhielten, zu der geteilten Ressource erhalten.By implementing the arbitration nodes described above 200. in a hierarchical arbitration architecture as in 2 3, a hierarchical arbitration requesting architecture for performing grant decisions in arbitration processes and a hierarchical data path architecture for transferring the data from the requestors receiving grant to the shared resource is obtained.

4a und 4b zeigen exemplarische Ausführungsbeispiele einer hierarchischen Arbitrierungsanfragearchitektur und einer hierarchischen Datenpfadarchitektur. 4a und 4b ent sprechen einem System mit drei Arbitrierungsknoten auf einer Ebene 1 und zwei Arbitrierungsknoten auf einer Ebene 2. Jeder der Arbitrierungsknoten auf der Ebene 1 weist vier Eingänge entsprechend zu der Anzahl von Anfragern M1...M12 auf, die einem jeweiligen Arbitrierungsknoten zugeordnet sind. 4a and 4b show exemplary Embodiments of a hierarchical arbitration request architecture and a hierarchical data path architecture. 4a and 4b Each of the level 1 arbitration nodes has four inputs corresponding to the number of requestors M1 ... M12 associated with a respective arbitration node.

Die Mehrzahl von Arbitrierern, die Mehrzahl von Anfragern und die Mehrzahl von Multiplexern des Arbitrierungssystems können gemäß Ausführungsbeispielen auf einen einzigen Chip bereitgestellt sein. Ferner kann gemäß Ausführungsbeispielen das Arbitrierungssystem synchron getaktet sein.The Plurality of arbitrators, the plurality of requesters, and the plurality of multiplexers of the arbitration system can according to embodiments of a be provided single chip. Furthermore, according to embodiments the arbitration system clocked synchronously.

Das Arbitrierungssystem 300 kann vollständig in Hardware (Hardwareschaltungen auf einem Chip) oder teilweise in Hardware und Software/Firmware bereitgestellt sein. Ferner kann jede bekannte Arbitrierungstechnik durch den Arbitrierer 300 implementiert sein, um eine Arbitrierung zwischen den Eingängen zu liefern. Beispielsweise können faire Arbitrierungstechniken, wie beispielsweise eine round-robin-Arbitrierung (RR-Arbitrierung), eine weighted-round-robin-Arbitrierung (WRR-Arbitrierung) oder eine deficit-round-robin-Arbitrierung (DRR-Arbitrierung) durch den Arbitrierer 300 implementiert sein. Gemäß Ausführungsbeispielen kann der Arbitrierer 300 ein Gedächtnis aufweisen, um ältere aktive Anfragen, die noch nicht durch den Arbitrierer 300 gewährt sind, in Betracht zu ziehen.The arbitration system 300 can be completely provided in hardware (hardware circuits on a chip) or partially in hardware and software / firmware. Furthermore, any known arbitration technique may be used by the arbitrator 300 implemented to provide arbitration between the inputs. For example, fair arbitration techniques such as round robin arbitration (RR arbitration), weighted round robin arbitration (WRR arbitration) or deficit round robin arbitration (DRR arbitration) may be performed by the arbitrator 300 be implemented. According to embodiments, the arbitrator 300 have a memory to older active requests that are not yet through the arbitrator 300 are allowed to take into account.

Ein erster exemplarischer Betrieb des Arbitrierungssystems der 4a und 4b, der einem Pipeline-Betrieb entspricht, wird nachfolgend unter Bezugnahme auf die 5a bis 5f und die 6a bis 6f näher erläutert.A first exemplary operation of the arbitration system of the 4a and 4b which corresponds to a pipeline operation will be described below with reference to FIGS 5a to 5f and the 6a to 6f explained in more detail.

Der Pipeline-Betriebsmodus entspricht einem Betrieb, bei dem der Prozess, um einem bestimmten Anfrager eine Gewährung zu liefern, in eine Mehrzahl von Unter-Prozessen geteilt ist, die jeweils bei einem der Arbitrierer in dem Arbitrierungssystem durchgeführt werden.Of the Pipeline mode of operation corresponds to an operation in which the process, to provide a grant to a particular requester, in a plurality shared by sub-processes, each at one of the arbitrators be performed in the arbitration system.

Jeder Unter-Prozess empfängt als Eingangssignal das Ergebnis einer vorhergehenden Ebene und führt den zugeordneten Unter-Prozess durch. Mit anderen Worten gesagt, wird der Prozess in der Pipeline von einer Ebene zu einer anderen Ebene weitergereicht, so dass durch den letzten Unter-Prozess der gesamte Prozess, das heißt die Gesamtarbitrierung für die Anfrage, die die höchste Ebene erreicht, beendet wird.Everyone Sub-process receives as an input signal, the result of a previous level and leads the associated sub-process. In other words, it will the process in the pipeline from one level to another level passed on, so that through the last sub-process the entire Process, that is the total arbitration for the request that the highest Level reached, finished.

Der Pipeline-Betrieb wird in einem hierarchischen Arbitrierungssystem durchgeführt, indem bei einem gegebenen Zyklus auf jeder Ebene des hierarchischen Arbitrierungssystems eine Arbitrierung zwischen den Eingängen der Arbitrierer durchgeführt wird.Of the Pipeline operation is in a hierarchical arbitration system carried out, at a given cycle at each level of the hierarchical Arbitration system an arbitration between the inputs of the Arbitrator is performed.

Basierend auf einer Gewährung, die durch einen Arbitrierer einem der Eingangssignale gegeben wird, wird ein Signal, das heißt eine Pipeline-Anfrage, als Eingangssignal zu einem Arbitrierer der nächst höheren Ebene übertragen, auf der es mit anderen Eingangssignalen von anderen Arbitrierern konkurriert. In einem nächsten Zyklus arbitriert der Arbitrierer auf der nächst höheren Stufe daraufhin auf der Basis der Anfragen, die für diesen Arbitrierer aktiv sind, das heißt auf der Basis der Anfragen, die empfangen wurden und/oder durch den Arbitrierer gespeichert sind. Der Zweig, der durch den Arbitrierer gewährt wird, wird in dem entsprechenden Register gespeichert. Da sich die Rechenzeit für einen Arbitrierer mit der Anzahl von Eingängen signifikant erhöht, werden die Anforderungen für eine Rechenzeit eines jeden Arbitrierer zum Beenden der Arbitrierung innerhalb eines Taktzyklus in dem hierarchischen Arbitrierungssystem mit Pipeline-Betrieb reduziert, verglichen mit dem Bereitstellen eines einzigen Arbitrierers für alle Anfrager. Dies ermöglicht beispielsweise einen Betrieb, bei dem viele Anfrager und kurze Taktperioden vorliegen. Der Pipeline-Betrieb wird nachfolgend unter Bezugnahme auf die 5a bis 5f und 6a bis 6f, die einen exemplarischen Pipeline-Betrieb zeigen, näher erklärt.Based on a grant given by one arbitrator to one of the input signals, a signal, i.e. a pipeline request, is transmitted as an input to a next higher level arbiter where it competes with other input signals from other arbitrators. In a next cycle, the arbiter at the next higher level then arbitrates on the basis of the requests that are active for that arbiter, that is, based on the requests that were received and / or stored by the arbiter. The branch granted by the arbiter is stored in the corresponding register. As the arithmetic time for an arbiter increases significantly with the number of inputs, the arithmetic computation time requirements of each arbiter to terminate arbitration are reduced within one clock cycle in the pipelined hierarchical arbitration system, compared to providing a single arbitrator for all requesters. This allows, for example, an operation in which there are many requesters and short clock periods. The pipeline operation will be described below with reference to FIGS 5a to 5f and 6a to 6f , which show an exemplary pipeline operation, explained in more detail.

5a zeigt die Arbitrierungsanfragearchitektur bei einem Zyklus 0, bei dem alle der Mehrzahl von Arbitrierern im Leerlauf sind, beispielsweise nach einem in Betrieb nehmen. Es ist zu bemerken, dass in den folgenden Figuren die Eingänge der Arbitrierer A11, A12 und A13 auf der ersten Ebene entsprechend der Anzahl von Anfragern, die mit dem Eingang gekoppelt sind, gekennzeichnet sind, das heißt der Arbitrierer A11 hat die Eingänge 1 bis 4, der Arbitrierer A12 hat die Eingänge 5 bis 8 und der Arbitrierer A13 hat die Eingänge 9 bis 12. Für die Arbitrierer A21, A22 und A31, die alle in den beschriebenen Ausführungsbeispielen zwei Eingänge aufweisen, wird der erste Eingang mit 1 gekennzeichnet und der zweite mit 2 gekennzeichnet, wie es in 5a zusehen ist. 5a Figure 4 shows the arbitration request architecture on a cycle 0 in which all of the plurality of arbitrators are idle, for example, after a commissioning. It should be noted that in the following figures, the inputs of the arbiters A11, A12 and A13 are labeled on the first level corresponding to the number of requestors coupled to the input, that is, the arbiter A11 has the inputs 1 to 4 The arbiter A12 has inputs 5 through 8 and the arbiter A13 has inputs 9 through 12. For arbiters A21, A22 and A31, all of which have two inputs in the described embodiments, the first input is labeled 1 and the second one marked with 2 as it is in 5a you can see.

Bei einem Zyklus 1 geben der Anfrager M2 und der Anfrager M7 beide ein Anfragesignal an die entsprechenden Eingänge der Arbitrierer A11 und A12 der Ebene 1 des Arbitrierungssystems aus. Während des Zyklus 1 führt der Arbitrierer A11 einen Arbitrierungsprozess durch und erteilt der Anfrage des zweiten Eingangs, der M2 entspricht, eine Gewährung, da keine weitere Anfrage für den Arbitrierer A11 in dem Zyklus 1 aktiv ist. In entsprechender Weise führt während des Zyklus 1 der Arbitrierer A12 einen Arbitrierungsprozess durch und erteilt der Anfrage an dem zweiten Eingang, der M7 entspricht, eine Gewährung, da für den Arbitrierer A12 in dem Zyklus 1 keine weitere Anfrage aktiv ist. Nach der Arbitrierung, beispielsweise an dem Ende des Zyklus 1, wird das Ergebnis, das anzeigt, welchem Eingang eine Gewährung erteilt wurde, das heißt 2 für den Arbitrierer A11 und 7 für den Arbitrierer A12 in die Register geschrieben, die den Arbitrierern A11 und A12 entsprechen, wie es in 5b durch Pfeile angezeigt ist. Es ist hierbei zu bemerken, dass die Informationen, die in den 5a bis 5f für einen jeweiligen Zyklus gezeigt sind, die Informationen sind, die an dem Ende des Zyklus aktuell gültig sind. Diese Informationen werden dann an den entsprechenden Multiplexer beim Beginn des nächsten Zyklus vorliegen, um einen Datentransfer entsprechend zu den Informationen in dem nächsten Zyklus zu ermöglichen.At cycle 1, the requestor M2 and the requestor M7 both issue a request signal to the respective inputs of the arbitration system level 1 arbitrators A11 and A12. During cycle 1, arbiter A11 performs an arbitration process and grants grant to the request of the second input corresponding to M2, since no further request for arbiter A11 is active in cycle 1. Similarly, during cycle 1, arbitrator A12 performs an arbitration process and issues a request to the second input corresponding to M7 Grant, since there is no further request active for arbiter A12 in cycle 1. After arbitration, for example at the end of cycle 1, the result indicating which input has been granted a grant, i.e. 2 for the arbiter A11 and 7 for the arbiter A12, is written to the registers which are the arbiters A11 and A12 correspond to how it is in 5b indicated by arrows. It should be noted that the information contained in the 5a to 5f are shown for a respective cycle which is information currently valid at the end of the cycle. This information will then be present at the appropriate multiplexer at the beginning of the next cycle to allow for data transfer commensurate with the information in the next cycle.

Zusätzlich gibt jeder der Arbitrierer A11 und A12 ein Anfragesignal zu einem Arbitrierer A21 der nächst höheren Stufe aus, welches in dem nächsten Zyklus arbitriert wird. Die gewährte Anfrage fällt dabei in dem hierarchischen System eine Stufe weiter.In addition there each of the arbitrators A11 and A12 sends a request signal to an arbitrator A21 the next higher Stage off, which in the next cycle is arbitrated. The granted Request drops doing one step further in the hierarchical system.

Unter Bezugnahme auf 5c weist bei dem Zyklus 2 der Arbitrierer A21 zwei aktive Anfragen entsprechend den Eingängen auf, die mit den Arbitrierern A11 und A12 gekoppelt sind. Die Übertragung der Anfragen von den Arbitrierern wird in den Figuren jeweils durch Pfeile angezeigt. Wie es in 5a und 5b zu erkennen ist, ist aufgrund des Pipeline-Betriebs ein Inter-Zyklus-Pfeil gezeigt, der die Übertragung von dem Arbitrierer A11 zu dem Arbitrierer A21 anzeigt.With reference to 5c At cycle 2, arbiter A21 has two active requests corresponding to the inputs coupled to arbiters A11 and A12. The transmission of the requests from the arbitrators is indicated by arrows in the figures. As it is in 5a and 5b 1, an inter-cycle arrow indicating the transmission from the arbiter A11 to the arbiter A21 is shown due to the pipeline operation.

In dem Arbitrierungsprozess des Zyklus 2 erteilt der Arbitrierer A21 der Anfrage eine Gewährung, die von dem Arbitrierer A11 kommt und die Information, die den gewährten Eingangssignal entspricht, das heißt 1, wird in dem Register A21 gespeichert, nachdem die Arbitrierung beendet ist, beispielsweise am Ende des Zyklus. Ein Anfragesignal wird daraufhin durch den Arbitrierer A21 zu dem Arbitrierer A31 auf der nächst höheren Ebene ausgegeben. Ferner werden in dem Zyklus 2 neue Anfragen durch die Anfrager M1, M6 und M9 zu den Arbitrierern A11, A12, A13 jeweils ausgegeben und in dem Arbitrierungsprozess der jeweiligen Arbitrierer gewährt. Am Ende des Zyklus 2 werden Informationen bezüglich der gewährten Anfragen zu den entsprechenden Registern übertragen.In the arithmetic process of cycle 2 is given by the arbiter A21 the request a grant that comes from the arbiter A11 and the information that the granted input signal corresponds, that is 1, is stored in the register A21 after the arbitration is finished, for example at the end of the cycle. A request signal is then applied to arbiter A31 by arbiter A21 the next higher Level output. Furthermore, in the cycle 2, new requests are made the requestors M1, M6 and M9 to the arbiters A11, A12, A13, respectively and in the arbitration process of the respective arbitrators granted. At the end of cycle 2 will be information regarding the granted requests transferred to the corresponding registers.

In dem nächsten Zyklus 3, der in 5 gezeigt ist, wurde die Anfrage, die von dem Arbitrierer A21 ausgegeben ist, zu dem Arbitrierer A31 auf der obersten Ebene übertragen und ist daher eine aktive Anfrage an dem Eingang des Arbitrierers A31, der mit dem Arbitrierer A21 gekoppelt ist. Der Arbitrierer A31 gewährt diese Anfrage, da keine weiteren Anfragen für diesen Zyklus aktiv sind. Ferner werden neue Anfragen von den Anfragern M4 und M8 bei den Arbitrierer A11 und A12 empfangen und in einem jeweiligen Arbitrierungsprozess gewährt.In the next cycle 3, the in 5 3, the request issued by arbiter A21 has been transmitted to arbitrator A31 at the top level and is therefore an active request at the input of arbiter A31 coupled to arbiter A21. Arbiter A31 grants this request because there are no more requests for this cycle active. Further, new requests from requestors M4 and M8 are received at arbiters A11 and A12 and granted in a respective arbitration process.

Bei dem Arbitrierer A21 weisen beide Eingänge, die A11 und A12 entsprechen, aktive Anfragen auf. Es ist hierbei zu bemerken, dass die aktive Anfrage an dem Eingang, der A12 entspricht, eine alte Anfrage ist, die bereits bei dem Zyklus 2 aktiv war, wobei die Anfrage in dem Arbitrierungsprozess des Zyklus 2 bei dem Arbitrierer A21 nicht gewährt wurde, während die Anfrage an dem Eingang, der A11 entspricht, eine neue Anfrage ist, die von A11 übertragen wurde. Der Arbitrierer A21 führt eine Arbitrierung zwischen den Anfragen durch und erteilt die Gewährung dem Eingang der A12 entspricht, wodurch die aktive Anfrage, die von A12 initiiert ist, entfernt wird. Ferner führt der Arbitrierer A22 in Zyklus 3 eine Arbitrierung durch und gewährt die einzige aktive Anfrage von A13. Wie es oben bereits beschrieben wurde gibt jeder der Arbitrierer nach dem Gewähren ein Anfragesignal zu der nächst höheren Ebene, sofern nicht eine ältere Anfrage die Ausgabe der Anfrage zu der nächsten Ebene blockiert, wie es nachfolgend beschrieben wird.at Arbitrator A21 has both inputs which correspond to A11 and A12, active inquiries. It should be noted here that the active request at the entrance, which corresponds to A12, is an old request that already was active at cycle 2, the request being in the arbitration process of the Cycle 2 was not granted to the arbiter A21, while the Request at the entrance, which corresponds to A11, is a new request, those transmitted by A11 has been. The arbiter A21 performs Arbitration between requests and grants the grant Input corresponds to the A12, reducing the active request from A12 initiated is removed. Furthermore, the arbiter A22 leads in Cycle 3 arbitrates and grants the only active request from A13. As already described above, each of the arbitrators after granting a request signal to the next higher level, unless an older one Request blocking the output of the request to the next level, like it will be described below.

Ferner werden in Zyklus 3 neue Anfragen durch die Anfrager M1 und M6 zu den Arbitrierern A11 und A12 ausgegeben. Es ist hierbei zu bemerken, dass der Arbitrierer A11 in Zyklus 3 eine Arbitrierung durchführt, während der Arbitrierer A12 in diesem Zyklus für die Arbitrierung geblockt ist, was durch eine graue Farbe des Arbitrierers 12 angezeigt ist. Der Arbitrierer A12 ist geblockt, da lediglich eine Anfrage zu einem gegebenen Zeitpunkt an einem Eingang aktiv sein kann. Die Anfrage, die durch den Arbitrierer A12 in dem vorhergehenden Zyklus 2 gewährt wurde kann daher nicht zu dem Arbitrierer A21 übertragen werden, da der Arbitrierer A12 die aktive Anfrage an dem Eingang, der dem Arbitrierer A12 entspricht, in dem vorhergehenden Zyklus nicht gewährt hat und diese alte Anfrage daher an dem Arbitrierer A12 noch aktiv ist. Anstelle eines Ausgebens der Anfrage zu der nächsten Ebene wird die Anfrage an dem Ausgang des Arbitrierers A12 in Zyklus 3 aufrechterhalten, wie es in 5d angezeigt ist. Weiterhin Bezug nehmend auf 5d werden die Informationen, die in dem Register von A12 gespeichert sind, nicht verändert, da keine Arbitrierung in dem Arbitrierer A12 durchgeführt wurde. In den Registern, die den Arbitrierern A11, A21 und A31 entsprechen, werden die in den jeweiligen Registern gespeicherten Informationen am Ende des Zyklus aktualisiert gemäß den Eingangssignalen, die von den jeweiligen Arbitrierern gewährt wurden.Furthermore, in cycle 3, new requests are issued by the requestors M1 and M6 to the arbitrators A11 and A12. It is to be noted that the arbiter A11 performs arbitration in cycle 3, while the arbiter A12 is blocked for arbitration in this cycle, indicated by a gray color of the arbiter 12. Arbiter A12 is blocked because only one request at a given time can be active on an input. The request granted by the arbiter A12 in the previous cycle 2 therefore can not be transferred to the arbiter A21 since the arbiter A12 has not granted the active request at the input corresponding to the arbiter A12 in the previous cycle and This old request is therefore still active on the arbiter A12. Instead of outputting the request to the next level, the request is maintained at the output of the arbiter A12 in cycle 3, as shown in FIG 5d is displayed. Still referring to 5d For example, the information stored in the register of A12 is not changed since no arbitration was performed in the arbiter A12. In the registers corresponding to the arbiters A11, A21 and A31, the information stored in the respective registers is updated at the end of the cycle according to the input signals granted by the respective arbiters.

Bezug nehmend nun auf Zyklus 4, der in 5e gezeigt ist, werden neue Anfragen von den Anfragern M2, M7 und M10 an den Arbitrierern A11, A12 und A13 empfangen. Ferner ist die Anfrage an dem Arbitrierer A12, die von M8 in dem Zyklus 3 ausgegeben wurde, noch aktiv, da keine Arbitrierung durch den Arbitrierer A12 in dem Zyklus 3 durchgeführt wurde. Der Arbitrierer A12 führt die Arbitrierung daher zwischen den Anfragen von M7 und M8 durch und erteilt der Anfrage M8 eine Gewährung, wie es in 5e dargestellt ist.Referring now to Cycle 4, which is in FIG 5e is shown, new requests are received from the requestors M2, M7 and M10 at the arbiters A11, A12 and A13. Further, the request to the arbiter A12 is out of M8 in the cycle 3 was still active because no arbitration was performed by arbiter A12 in cycle 3. The arbitrator A12, therefore, arbitrates between the requests of M7 and M8 and grants the request M8 a grant, as shown in FIG 5e is shown.

Ferner wurde die Anfrage von dem Arbitrierer A12, die in dem Zyklus 3 an dem Ausgang des Arbitrierers A12 aufrechterhalten wurde, nun zu dem entsprechenden Eingang des Arbitrierers A21 übertragen, während die die in dem Zyklus 3 nicht gewährte alte Anfrage an dem Eingang, der A11 entspricht, noch aktiv ist.Further the request from the arbiter A12 which was in cycle 3 the output of the arbiter A12 was now closed transferred to the corresponding input of the arbiter A21, while the those not granted in cycle 3 old request at the input, which corresponds to A11, is still active.

Infolge des Obigen konnte der Arbitrierer A11 die Anfrage nicht von A11 zu A21 übertragen und daher wird die Anfrage an dem Ausgang des Arbitrierers A11 aufrechterhalten, wie es in 5e dargestellt ist, wobei der Arbitrierer A11 in diesem Zyklus geblockt ist.As a result of the above, the arbiter A11 could not transmit the request from A11 to A21 and therefore the request is maintained at the output of the arbiter A11, as shown in FIG 5e with the arbiter A11 blocked in this cycle.

Der Arbitrierer A13, der lediglich eine aktive Anfrage von M10 aufweist gewährt diese Anfrage. Der Arbitrierer A31, der in dem Zyklus 4 an allen Eingängen Anfragen aufweist, gewährt die Anfrage an dem Eingang, der zu A21 gehört.Of the Arbiter A13 having only one active request from M10 granted this request. The arbiter A31, which in cycle 4 at all inputs Requests the request at the entrance belonging to A21.

In Zyklus 5, der in 5f gezeigt ist, werden neue Anfragen von den Anfragern M1, M6 und M9 empfangen. Der Arbitrierer A12, der nunmehr aktive Anfragen von allen Ports aufweist, arbitriert und gibt die Gewährung dem Eingang, der mit A11 gekoppelt ist. Der Arbitrierer A21, der eine aktive Anfrage von dem Arbitrierer A13 aufweist, erteilt dem Eingang Gewährung, der zu dem Arbitrierer A11 gehört, und der Arbitrierer A31, der zwei aktive Anfragen von A21 und A22 aufweist, gibt dem Eingang die Gewährung, der mit A22 gekoppelt ist.In cycle 5, the in 5f is shown, new requests are received from requestors M1, M6 and M9. Arbiter A12, which now has active requests from all ports, arbitrates and grants the grant to the input coupled to A11. The arbiter A21, which has an active request from the arbiter A13, grants the input grant associated with the arbiter A11, and the arbiter A31, which has two active requests A21 and A22, grants the input, which is A22 is coupled.

Es ist zu bemerken, dass in dem Pipeline-Betrieb für ein Arbitrierungssystem mit n hierarchischen Ebenen zumindest n-Zyklen erforderlich sind, damit eine Anfrage die Pipeline durchschreiten kann, da jeder der Arbitrierer auf einer Ebene auf das Eingangssignal des Arbitrierers der untergeordneten Ebenen zu warten hat. Daher beginnt in dem obigen Beispiel der erste Datentransfer von einem Anfrager, das heißt dem Anfrager M2, zu der geteilten Ressource bei einem Zyklus n + 1, das heißt in dem obigen Beispiel bei dem Zyklus 4. Es ist ferner zu bemerken, dass der in den 5a bis 5f gezeigte Betrieb lediglich einen exemplarischen Pipeline-Betrieb zeigt, wobei es andere Möglichkeiten gibt, den Pipeline-Betrieb der Arbitrierer zu implementieren.It should be noted that in pipelining for an n hierarchical level arbitration system, at least n cycles are required for a request to pass through the pipeline, as each of the arbitrators at one level wait for the lower level arbiter input Has. Therefore, in the above example, the first data transfer from a requester, that is, the requester M2, to the shared resource starts at a cycle n + 1, that is, at the cycle 4 in the above example. It is further noted that the in the 5a to 5f only shows exemplary pipelined operation, with other ways to implement the pipelined operation of the arbitrators.

Der Datentransfer in dem hierarchischen Datenpfadsystem, das in 4b gezeigt ist, von den Anfragern, denen durch das System Gewährung erteilt wurde, zu der geteilten Ressource wird nun unter Bezugnahme auf die 6a bis 6f beschrieben.The data transfer in the hierarchical data path system, which in 4b is shown by the requestors, which was granted by the system grant, to the shared resource is now referring to the 6a to 6f described.

6a zeigt ein Datenpfadsystem bei dem Zyklus 1. Es ist zu bemerken, dass 6a bei dem Zyklus 1 startet, während 5a das Arbitrierungsanfragesystem bei einem Zyklus 0 zeigt, wobei hier in Betracht gezogen wird, dass Daten lediglich nach einer Gewährung durch das gesamte System lediglich einen Zyklus später verarbeitet werden können. Bei dem Zyklus 1 sind alle Multiplexer in einem Leerlauf oder einem unbestimmten Zustand, da bei dem Beginn des Zyklus 1 keine Informationen in den Registern gespeichert sind, die es ermöglichen würden, dass die Multiplexer ein entsprechendes Schalten durchführen können. Bezug nehmend auf Zyklus 2, der in 6b gezeigt ist, enthält das Register, das A11 zugeordnet ist, an dem Beginn des Zyklus 2 die Informationen, die den Eingang 2 als den Eingang identifizieren, der eine Gewährung erhalten hat, wie es durch Vergleich mit den Informationen, die in den in 5b gezeigten Registern gespeichert sind, zu erkennen ist. Der Multiplexer D11 versetzt daher seinen zweiten Eingang in einen aktiven Zustand. Ferner weist das Register, das zu A12 gehört, an dem Beginn des Zyklus 2 die Informationen auf, die den Eingang 7 als den gewährten Eingang identifizieren, wobei der Multiplexer D12 den Eingang, der mit M7 korrespondiert, in einen aktiven Zustand versetzt. Das Setzen der Multiplexer D11 ermöglicht, dass Daten von M2 eine Ebene weiter in dem System übertragen werden, das heißt zu dem Eingang des Multiplexers D21, wie es in 6b gezeigt ist. Zusätzlich ermöglicht das Setzen des Multiplexers D12, dass Daten von M7 zu dem entsprechenden Eingang des Multiplexers D21 übertragen werden. 6a shows a data path system at cycle 1. It should be noted that 6a at cycle 1 starts while 5a shows the arbitration request system at cycle 0, taking into account here that data can only be processed after being granted by the entire system only one cycle later. At cycle 1, all multiplexers are in an idle or indefinite state because at the beginning of cycle 1 no information is stored in the registers that would allow the multiplexers to perform a corresponding switch. Referring to cycle 2, which is in 6b is shown, the register associated with A11 contains, at the beginning of cycle 2, the information identifying the input 2 as the input which has received a grant, as determined by comparison with the information contained in the in 5b stored registers are shown, can be seen. The multiplexer D11 therefore places its second input in an active state. Further, at the beginning of cycle 2, the register associated with A12 has the information identifying the input 7 as the granted input, and the multiplexer D12 places the input corresponding to M7 in an active state. The setting of the multiplexers D11 allows data from M2 to be transmitted one level further in the system, that is, to the input of the multiplexer D21 as shown in FIG 6b is shown. In addition, setting the multiplexer D12 allows data to be transferred from M7 to the corresponding input of the multiplexer D21.

In dem Zyklus 3, der in 6c gezeigt ist, wird der Eingang, der M1 entspricht, in dem Multiplexer D11 in einen aktiven Zustand versetzt, der Eingang, der M6 entspricht, wird in dem Multiplexer D12 in einen aktiven Zustand versetzt, und der Eingang, der mit D11 gekoppelt ist, wird in dem Multiplexer D21 in einen aktiven Zustand versetzt, wobei dies in Übereinstimmung mit den Informationen erfolgt, die in den Registern gespeichert sind, vergleiche 5c. Zusätzlich wird in dem Multiplexer D13 der Eingang, der M9 entspricht, in einen aktiven Zustand versetzt. Die Daten von M2 werden in Übereinstimmung mit der Einstellung des Multiplexers D21 eine Ebene weiter in dem hierarchischen Datensystem übertragen, das heißt von dem Eingang des Multiplexers D21 zu dem Eingang Multiplexers D31, wie es in 6c dargestellt ist. Die Daten von M1 werden zu dem Eingang des Multiplexers D21 übertragen gemäß der Einstellung des Multiplexers D11. Es sei gemerkt, dass von D12 zu D21 keine Daten übertragen werden, da die alten Daten M7 an dem Eingang des Multiplexers D21 noch aktiv sind.In the cycle 3, the in 6c is shown, the input corresponding to M1 is put in an active state in the multiplexer D11, the input corresponding to M6 is set in an active state in the multiplexer D12, and the input coupled to D11 becomes in the multiplexer D21 in an active state, this being in accordance with the information stored in the registers, cf. 5c , In addition, in the multiplexer D13, the input corresponding to M9 is set in an active state. The data of M2 are transmitted one level further in the hierarchical data system, in accordance with the setting of the multiplexer D21, that is, from the input of the multiplexer D21 to the input multiplexer D31 as shown in FIG 6c is shown. The data from M1 is transferred to the input of the multiplexer D21 according to the setting of the multiplexer D11. It should be noted that data is not transferred from D12 to D21 since the old data M7 is still active at the input of the multiplexer D21.

Indem Zyklus 4, der in 6d gezeigt ist, werden die Multiplexer in Übereinstimmung mit den Informationen, die in den jeweiligen Registern gespeichert sind, eingestellt (siehe 5c). Es ist in 6d zu erkennen, dass mit der Einstellung des Multiplexers auf der höchsten Ebene ein Datenpfad entsprechend zu einem Zweig durch das hierarchische Datenpfadsystem, das heißt ein Datenpfad von dem Anfrager M2 zu der geteilten Ressource, vollendet ist. Daten von dem Anfrager M2 werden daher in diesem Zyklus zu der geteilten Ressource übertragen.In cycle 4, the in 6d is shown For example, the multiplexers are set in accordance with the information stored in the respective registers (see 5c ). It is in 6d to recognize that with the setting of the multiplexer at the highest level, a data path corresponding to a branch through the hierarchical data path system, that is, a data path from the requester M2 to the shared resource, is completed. Data from the requester M2 is therefore transferred to the shared resource in this cycle.

Daten von M7 werden ferner von dem Multiplexer D21 zu dem Multiplexer D31 in Übereinstimmung mit der Einstellung des Multiplexers D21 übertragen, während Daten von M6 zu dem Eingang des Multiplexers D21 und Daten von M9 zu dem Eingang des Multiplexers D22 übertragen werden.dates of M7 are further from the multiplexer D21 to the multiplexer D31 in accordance transmitted with the setting of the multiplexer D21 while data from M6 to the input of the multiplexer D21 and data from M9 to the Input of the multiplexer D22 transmitted become.

In dem Zyklus 5, der in 6e gezeigt ist, werden schließlich Daten von M7 zu der geteilten Ressource übertragen, während die Daten von M1, M4, M9 und M10 jeweils eine Ebene weiter in dem Datenpfad vorschreiten.In cycle 5, which is in 6e Finally, data from M7 is transferred to the shared resource while the data from M1, M4, M9 and M10 each advance one level further in the data path.

In dem Zyklus 6, der in 6f gezeigt ist, werden Daten von M9 zu der geteilten Ressource übertragen, während Daten von M10 und M9 eine Ebene weiter in der Pipeline übertragen werden, das heißt von dem Multiplexer D22 zu dem Eingang des Multiplexers D31 und von dem Multiplexer D13 zu dem Eingang des Multiplexers M22.In the cycle 6, the in 6f is shown, data is transferred from M9 to the shared resource, while data from M10 and M9 are transferred one level further in the pipeline, i.e., from multiplexer D22 to the input of multiplexer D31 and from multiplexer D13 to the input of the multiplexer M22.

Wie es bereits oben beschrieben wurde, erfordert es in dem Pipeline-Betrieb zumindest n-Zyklen, damit eine Anfrage die Pipeline durchschreitet. In Ausführungsbeispielen der vorliegenden Erfindung, die nachfolgend beschrieben werden, können das Arbitrierungssystem nicht nur dazu fähig sein, einen Pipeline-Betrieb zu liefern, sondern sind auch fähig eine schnelle Arbitrierung zu liefern, wenn diese benötigt wird.As it has already been described above, it is required in the pipeline operation at least n cycles for a request to cross the pipeline. In embodiments of the present invention which will be described below can that Arbitration system not only capable of a pipeline operation to deliver, but are also capable to provide a fast arbitration when needed.

In Ausführungsbeispielen, die nachfolgend beschrieben werden, kann das Arbitrierungssystem eine selektive Nicht-Pipeline-Arbitrierung einer Anfrage in zumindest einem Teil der Arbitrierer liefern, wenn diese benötigt wird. Die Nicht-Pipeline-Arbitrierung kann eine parallele Arbitrierung sein und kann gewählt werden, wenn Arbitrierer in einem Leerlauf sind, wie es nachfolgend beschrieben wird. In einer parallelen Arbitrierung, ist eine bestimmte Anfrage eines Anfragers oder eine bestimmte Anfrage eines Arbitrierers einer niedrigeren Ebene gleichzeitig an mehr als einer Ebene anliegend, das heißt mehr als ein Arbitrierer des Pfads, der der Anfrage entspricht (des Pfads, den die Anfrage zu nehmen hat) entscheiden innerhalb eines Taktzyklus (parallel), ob diese Anfrage gewährt wird oder ob eine andere Anfrage gewährt wird. Es ist zu bemerken, dass in dem Pipeline-Betrieb die Gewährung für eine Anfrage zu einem bestimmten Zeitpunkt oder Zyklus immer lediglich auf einer Ebene des Systems erfolgt, und, wenn der Anfrage eine Gewährung erteilt wird, die Anfrage eine Ebene weiter fortschreitet, wo eine Entscheidung in dem nächsten Zyklus durchgeführt wird. Gemäß Ausführungsbeispielen wird das Arbitrierungssystem in einen parallelen Modus betrieben, wenn ein oder mehrere Arbitrierer in dem Zyklus zuvor in einem Leerlaufzustand waren, das heißt keine Arbitrierung von Anfragen in dem Pipeline-Betrieb durchgeführt hatten.In Embodiments, described below, the arbitration system may have a selective non-pipeline arbitration of a request in at least provide some of the arbitrators when needed. The non-pipelined arbitration may be a parallel arbitration be and can be chosen when arbitrators are in an idle state, as follows is described. In a parallel arbitration, one is specific Request from a requester or a specific request from an arbitrator a lower level concurrent with more than one level, this means more than one arbitrator of the path corresponding to the request (the Paths the request has to take) decide within one Clock cycle (parallel), whether this request is granted or whether another Request granted becomes. It should be noted that in the pipeline operation the grant for a request at a given time or cycle, only one at a time Level of the system, and if the request grants a grant will, the request progresses one level further, where a decision in the next Cycle performed becomes. According to embodiments the arbitration system is operated in a parallel mode when one or more arbitrators in the cycle previously in an idle state were, that is did not arbitrate requests in the pipeline operation.

Um selektiv das Arbitrierungssystem in einem Parallel-Betriebs-Modus zu betreiben sind die Arbitrierungsknoten 200, die in 3 gezeigt sind, modifiziert, um eine Schaltungsanordnung aufzuweisen, die es ermöglicht, ein paralleles oder fast-paralleles Zuführen der Anfragen auf die unterschiedlichen Ebenen zu ermöglichen. Parallel soll hierbei breit ausgelegt werden, so dass das Zuführen der Anfragen zu den unterschiedlichen Ebenen nicht exakt zu der gleichen Zeit erfolgen braucht sondern innerhalb eines Zeitintervalls, das kurz ist verglichen mit der Zykluszeitdauer oder zumindest geringer als die Zykluszeitdauer ist. Gemäß Ausführungsbeispielen kann die Schaltungsanordnung durch kombinatorische Schaltungsanordnungen, wie beispielsweise Oder-Logik-Komponenten, Und-Logik-Komponenten usw. gebildet werden, was ermöglicht, dass die Anfragesignale in kurzer Zeit vorwärts geleitet werden können.To selectively operate the arbitration system in a parallel mode of operation are the arbitration nodes 200. , in the 3 are modified in order to have a circuit arrangement which makes it possible to provide parallel or almost parallel feeding of the requests to the different levels. At the same time, it should be interpreted broadly so that the delivery of the requests to the different levels need not take place exactly at the same time but within a time interval that is short compared to the cycle time duration or at least less than the cycle time duration. According to embodiments, the circuitry may be formed by combinatorial circuitry, such as OR logic components, AND logic components, etc., which allows the request signals to be forwarded in a short time.

7 zeigt eine exemplarische Implementierung zum Bereitstellen einer parallelen Zuführung von Anfragen zu den verschiedenen Ebenen. Im Unterschied zu 3 weist der Arbitrierungsknoten 200 in 7 eine Oder-Logik-Komponente 306 auf. Die Oder-Logik-Komponente 306 weist eine Mehrzahl von Eingängen auf, wobei jeder Eingang einem der Arbitrierungsknoten der nächst unteren Ebene zugeordnet ist, die dem Arbitrierungsknoten 200 zugewiesen sind. Wie es aus 7 ersichtlich ist, weist der Arbitrierungsknoten 200 zusätzlich zu den Eingängen 300a, die mit den Ausgängen der Arbitrierer der untergeordneten Ebenen verbunden sind, zweite Eingänge 300c auf. Die Eingänge 300c sind mit Knoten verbunden, die mit den Eingängen der Oder-Logik-Komponente 306 und mit zweiten Eingängen des Arbitrierers verbunden sind. Signale, die an die zweiten Eingänge 300c angelegt werden, werden parallel zu den zweiten Eingängen des Arbitrierers 300 und zu den Eingängen der Oder-Logik-Komponente 306 geliefert. 7 FIG. 12 shows an exemplary implementation for providing parallel delivery of requests to the various levels. In contrast to 3 has the arbitration node 200. in 7 an OR logic component 306 on. The OR logic component 306 has a plurality of inputs, each input associated with one of the next lower level arbitration nodes associated with the arbitration node 200. are assigned. Like it out 7 the arbitration node points 200. in addition to the entrances 300a connected to the outputs of the lower level arbitrators, second inputs 300c on. The inputs 300c are connected to nodes that are connected to the inputs of the OR logic component 306 and are connected to second inputs of the arbiter. Signals coming to the second inputs 300c be applied, are parallel to the second inputs of the arbiter 300 and to the inputs of the OR logic component 306 delivered.

Durch den Arbitrierungsknoten, der in 7 gezeigt ist, werden daher zwei Signale in dem hierarchischen Arbitrierungsanfragesystem übertragen. Das erste Signal, das von einer Ebene zu der direkt nächst höheren Ebene übertragen wird, basiert auf einem Arbitrierungsprozess auf der untergeordneten Ebene, wie es bereits unter Bezugnahme auf die 3, 4, 5a bis 5f und 6a bis 6f beschrieben wurde. Das erste Signal entspricht daher einem Pipeline-Betrieb und wird im Folgenden als Pipelinesignal oder Pipelineanfrage bezeichnet. Das zweite Signal ist ein Signal, das ebenso dem Arbitrierer 300 zugeführt wird, wobei dasselbe jedoch durch die kombinatorische Schaltungsanordnung parallel, das heißt innerhalb einer kurzen Zeitspanne, zu zumindest einer weiteren Ebene übertragen wird. Das zweite Signal kann daher als ein Vorausschausignal oder eine Vorausschauanfrage angesehen werden und wird im Folgenden derart bezeichnet. Das zweite Signal, welches eine Oder-Funktion aller Eingänge darstellt, wird daher geliefert, wenn ein oder mehrere Signale an dem Eingang empfangen werden, kann als ein Signal angesehen werden, das auf eine schnelle Weise einer höheren Ebene anzeigt, dass es auf diesem Zweig eine Aktivität geben wird, wodurch es der höheren Ebene ermöglicht wird, bereits mit einer Arbitrierung vor dem Erhalten der Pipelineanfrage zu beginnen.By the arbitration node, which in 7 2, two signals are therefore transmitted in the hierarchical arbitration request system. The first signal transmitted from one level to the next higher level is based on an arbitration process at the subordinate level, as already described with reference to the 3 . 4 . 5a to 5f and 6a to 6f has been described. The first signal therefore corresponds to a pipeline operation and is referred to below as a pipeline signal or pipeline request. The second signal is a signal as well as the arbiter 300 however, the same is transmitted by the combinational circuit arrangement in parallel, that is within a short period of time, to at least one further level. The second signal may therefore be regarded as a look-ahead signal or a look-ahead request and will be referred to hereafter. The second signal, which represents an OR function of all inputs, is therefore supplied when one or more signals are received at the input, may be considered as a signal indicating in a fast, higher level fashion that it is on that branch will give an activity that will allow the higher level to already begin arbitrating before getting the pipeline request.

Der Arbitrierungsknoten 200 gemäß 7 weist daher zwei Knoten in dem Arbitrierungsanfrageabschnitt auf. Ein erster Knoten wird durch die Mehrzahl von ersten Eingängen 300a des Arbitrierers 300 implementiert, um die ersten Signale von untergeordneten Arbitrierungsknoten zu empfangen, wobei der erste Knoten ferner durch den Ausgang 300b des Arbitrierers 300 implementiert ist, um ein Signal zu einem Arbitrierungsknoten auf einer höheren Ebene zu übertragen. Ein zweiter Knoten ist durch die Mehrzahl von Eingängen 300c implementiert, die die zweiten Signale von zweiten Knoten von untergeordneten Arbitrierungsknoten empfangen, wobei der zweite Knoten ferner durch den Ausgang 300d implementiert ist, der bereitgestellt ist, um die Vorausschauanfrage zu einem übergeordneten Arbitrierungsknoten zu übertragen.The arbitration node 200. according to 7 therefore has two nodes in the arbitration request section. A first node is through the plurality of first inputs 300a of the arbitrator 300 implemented to receive the first signals from subordinate arbitration nodes, wherein the first node is further represented by the output 300b of the arbitrator 300 is implemented to transmit a signal to an arbitration node at a higher level. A second node is through the plurality of inputs 300c implementing the second signals from second nodes of subordinate arbitration nodes, the second node further being through the output 300d implemented to transmit the look-ahead request to a higher-level arbitration node.

Da der Arbitrierer 300 gemäß 7 für jeden untergeordneten Arbitrierungsknoten, der dem Arbitrierungsknoten zugeordnet ist, zwei Signale empfängt, das heißt die Pipelineanfrage und die Vorausschauanfrage, führt der Arbitrierer im Betrieb eine Entscheidung durch, welche der Anfragen gültige Anfragen sind, beziehungsweise welche der Anfragen für eine Arbitrierung in Betracht gezogen werden.As the arbitrator 300 according to 7 for each slave arbitration node associated with the arbitration node, receiving two signals, that is, the pipeline request and the lookahead request, the arbitrator in operation makes a decision as to which of the requests are valid requests, or which of the requests are considered for arbitration ,

Gemäß einem Ausführungsbeispiel werden die Pipelineanfragen absolut gegenüber den Vorausschauanfragen priorisiert. Mit anderen Worten gesagt, wenn eine Pipelineanfrage von einem der Eingänge 300a empfangen wird, oder wenn eine Pipelineanfrage aktiv ist aufgrund einer nicht gewährten älteren Pipelineanfrage, werden alle Vorausschauanfragen verworfen beziehungsweise in der Arbitrierung an diesem Arbitrierungsknoten nicht in Betracht gezogen. Da jedoch die Vorausschausignale zu mehreren weiteren Ebenen entlang des Zweigs des hierarchischen Systems übertragen werden, kann das Vorausschausignal auf anderen Ebenen in Betracht gezogen werden, bei denen keine Pipelineanfrage aktiv ist.According to one embodiment, the pipeline requests are prioritized absolutely against the lookahead requests. In other words, if a pipeline request from one of the inputs 300a is received, or if a pipeline request is active due to an un-granted legacy pipeline request, all look-ahead requests are discarded or disregarded in the arbitration at that arbitration node. However, because the look ahead signals are transmitted to several other levels along the branch of the hierarchical system, the lookahead signal may be considered at other levels where no pipeline request is active.

Folglich ist Arbitrierung der Pipelineanfragen absolut priorisiert über eine Arbitrierung der Vorausschauanfragen, derart, dass lediglich zwischen anderen Pipelineanfragen arbitriert werden kann jedoch nicht zwischen Pipelineanfragen und Vorausschauanfragen, und wobei Vorausschauanfragen lediglich unter einander arbitriert werden können, sofern diese für eine Arbitrierung zugelassen sind. Mit anderen Worten gesagt, werden Vorausschauanfragen verworfen, wenn eine Pipelineanfrage an einen der Eingänge eines jeweiligen Arbitrierers angelegt ist. Dies sichert zu, dass das hierarchische System in einem Pipeline-Betriebsmodus arbeitet, wenn die Pipeline mit Pipelineanfragen gefüllt ist, wobei das hierarchische System in einem Parallel-Betriebsmodus arbeitet, wenn einige oder alle der Arbitrierer in einem Leerlauf sind oder keine aktive Pipelineanfrage aufweisen.consequently is arbitration of pipeline requests absolutely prioritized over one Arbitration of the preview requests, such that only between However, other pipeline requests can not be arbitrated Pipeline requests and look-ahead requests, and where look-ahead requests can only be arbitrated with each other, if this for an arbitration allowed are. In other words, look ahead inquiries discarded when a pipeline request to one of the inputs of a each Arbiter is created. This assures that that hierarchical system works in a pipeline mode of operation when the pipeline is filled with pipeline queries, where the hierarchical System works in a parallel mode of operation, if some or all of the arbitrators are idle or no active pipeline request exhibit.

Es ist hierbei zu bemerken, dass neben der oben beschriebenen strikten Trennung von Vorausschauanfragen und Pipelineanfragen in dem Arbitrierer 300, andere Wege eines Betriebs in anderen Ausführungsbeispielen geliefert werden können, wobei Vorausschauanfragen und Pipelineanfragen bei einer Arbitrierung gemischt werden können, beispielsweise indem den Vorausschauanfragen eine schwächere Priorität gegeben werden.It should be noted that in addition to the strict separation of look-ahead requests and pipeline requests described above in the arbitrator 300 , other ways of operation may be provided in other embodiments, wherein look-ahead requests and pipeline requests may be mixed in an arbitration, for example by giving the look-ahead requests a lower priority.

Es ist ferner zu bemerken, dass Pipelineanfragen immer an dem Ausgang 300b des Arbitrierers 300 erzeugt werden, wenn eine Arbitrierung in dem Arbitrierer durchgeführt wurde, wobei die Pipelineanfrage daraufhin zu dem Arbitrierer der nächst höheren Ebene übertragen wird, wie es vorgehend beschrieben wurde. Hat jedoch der Arbitrierer der nächst höheren Stufe eine Vorausschauanfrage in dem vorhergehenden Zyklus für diesen Eingang gewährt, so wird die Pipelineanfrage in den nächsten Zyklus verworfen, um eine Arbitrierung von verdoppelten Anfragen zu vermeiden.It should also be noted that pipeline requests are always at the output 300b of the arbitrator 300 when arbitration has been performed in the arbitrator, whereupon the pipeline request is transferred to the next higher level arbiter as previously described. However, if the next higher level arbitrator has granted a lookahead request in the previous cycle for that input, the pipeline request is discarded in the next cycle to avoid arbitration of duplicate requests.

Arbitrierer der untergeordneten Ebene empfangen direkt Anfragen von den Anfragern. Anstelle einer Kopplung der Ausgänge 300a mit den Anfragern, ist für die Arbitrierer der untersten Ebene der Eingang 300b mit den Anfragern gekoppelt, um die Anfragen zu empfangen und Vorausschausignale zu erzeugen, und um diese parallel zu dem Arbitrierer zum Arbitrieren der Anfrage zu liefern. Daher kann für die unterste-Ebene-Arbitrierer der Eingang 300a nicht vorgesehen sein oder abgeklemmt sein.Subordinate arbitrators directly receive requests from the requesters. Instead of a coupling of the outputs 300a with the requestors, for the lowest-level arbitrators, the input is 300b coupled to the requestors to receive the requests and generate look-ahead signals and to deliver them in parallel with the arbitrator for arbitrating the request. Therefore, for the low-level arbitrators, the input 300a not be provided or disconnected.

Um ein besseres Verständnis der oben beschriebenen Vorausschau-Implementation zu geben, wird im Folgenden das Beispiel, das in den 5a bis 5f und 6a bis 6f gegeben wurde, in den 8a bis 8f und 9a bis 9f auf die oben beschriebene Vorausschau-Implementation angewendet.In order to give a better understanding of the above-described lookahead implementation, the example given in the following is given below 5a to 5f and 6a to 6f was given in the 8a to 8f and 9a to 9f applied to the lookahead implementation described above.

8a beginnt bei Zyklus 0, wobei das System in einem Leerlaufzustand ist. In 8b werden bei den Arbitrierern A11 und A12 in dem Zyklus 1 Anfragen von den Anfragen M2 und M7 empfangen. Aufgrund des Vorausschaumechanismus werden die Vorausschausignale werden von den Arbitrierern A11 und A12 zu A21 und von den Arbitrierern A21 zu dem Arbitrierer A31 übertragen. Mit anderen Worten gesagt, werden in dem Zyklus 1 die Vorausschausignale zu allen Ebenen des hierarchischen Systems übertragen. Es sei bemerkt, dass die Vorausschausignale (Vorausschauanfragen) in den Figuren durch Kreise angezeigt sind, während die Pipelineanfragen durch eine Raute angezeigt sind. 8a begins at cycle 0 with the system in an idle state. In 8b In the arbiters A11 and A12, in the cycle 1, requests from the requests M2 and M7 are received. Due to the lookahead mechanism, the lookahead signals are transferred from Arbiters A11 and A12 to A21 and from Arbiters A21 to Arbiter A31. In other words, in the cycle 1, the preview signals are transmitted to all levels of the hierarchical system. It should be noted that the look-ahead signals (look-ahead requests) in the figures are indicated by circles, while the pipeline requests are indicated by a diamond.

Die Anfragen von den Anfragern M2 und M7 sind bei den Arbitrierern A11 und A12 jeweils die einzigen aktiven Anfragen und werden daher gewährt. Bei dem Arbitrierer A21 sind zwei Vorausschauanfragen von A11 und A12 aktiv. Da keine Pipelineanfrage aktiv ist, wird bezüglich der zwei Vorausschauanfragen eine Arbitrierung durchgeführt und dem Eingang 1, der mit A11 korrespondiert, eine Gewährung erteilt. Bei dem Arbitrierer A31 ist die Voraus schauanfrage von A21 die einzig aktive Anfrage und daher wird dem ersten Eingang, der mit A21 korrespondiert, eine Gewährung erteilt.The Requests from requestors M2 and M7 are at the arbiters A11 and A12 are the only active requests and are therefore granted. at Arbiter A21 has two look-ahead requests from A11 and A12 active. Since no pipeline request is active, the two look-ahead requests performed an arbitration and receipt 1, which corresponds to A11, granted a grant. at Arbitrator A31 is the only one ahead of A21 active request and therefore the first input corresponding to A21 is a grant granted.

In dem Zyklus 2, der in 8c gezeigt ist, werden Anfragen von den Anfragern M1, M6 und M9 bei den Arbitrierern A11, A12 und A13 empfangen und eine Gewährung für die selben erteilt, da keine weiteren Anfragen bei den jeweiligen Arbitrierern aktiv sind. Vorausschauanfragen werden für jeden Anfrager M1, M6 und M9 erzeugt und durch die jeweiligen Zweige geliefert, das heißt zu den Arbitrierern A21 und A31 für M1 und M6 und zu den Arbitrierern A22 und A31 für M9. Hinsichtlich des Arbitrierers A21 sind in Zyklus 2 drei Anfragen noch aktiv. Zwei Vorausschauanfragen und eine Pipelineanfrage. Die Pipelineanfrage bei dem Arbitrierer A21 ist eine Anfrage, die zu der Anfrage des Anfragers M7 in den vorhergehenden Zyklus korrespondiert. Es ist zu bemerken, dass keine Pipelineanfrage für die Arbitrierung in dem vorhergehenden Zyklus bei dem Arbitrierer A11 gültig war, da der Anfrage von A11, das heißt der Vorausschauanfrage von A11, die zur der Anfrage von M2 korrespondiert, bereits in dem vorhergehenden Zyklus Gewährung erteilt wurde. Da der Arbitrierer A21 nun eine aktive Pipelineanfrage enthält, wird die Pipelineanfrage über die Vorausschauanfragen priorisiert und dem Eingang 2 Gewährung erteilt. Der Vorausschauanfrage von M9 wird bei den Arbitrierern A13 und A22 Gewährung erteilt, wie es in 8c gezeigt ist. Ferner wird bei dem Arbitrierer A31, bei dem zwei Vorausschauanfragen von A21 und A22 aktiv sind, dem Eingang 1, der A21 entspricht, bei der Arbitrierung Gewährung erteilt.In the cycle 2, the in 8c is shown, requests from the requestors M1, M6 and M9 are received at the arbitrators A11, A12 and A13 and granted a grant for the same, since no further requests to the respective arbitrators are active. Look-ahead requests are generated for each requester M1, M6 and M9 and provided by the respective branches, that is, to the arbitrators A21 and A31 for M1 and M6 and to the arbitrators A22 and A31 for M9. With regard to the arbiter A21, three requests are still active in cycle 2. Two look-ahead requests and one pipeline request. The pipeline request at the arbiter A21 is a request corresponding to the request of the requester M7 in the previous cycle. It should be noted that no pipeline request was valid for arbitration in the previous cycle at arbiter A11, since the request from A11, that is, the lookup request from A11 corresponding to the request from M2, already grants in the previous cycle has been. Since the arbiter A21 now contains an active pipeline request, the pipeline request is prioritized over the look-ahead requests and given grant 2 to the input. The look-ahead request of M9 is granted grant in the arbitrators A13 and A22, as in 8c is shown. Further, in the arbiter A31 in which two look-ahead requests of A21 and A22 are active, the input 1 corresponding to A21 is granted arbitration in the arbitration.

In dem Zyklus 3, der in 8d gezeigt ist, werden Anfragen von den Anfragern M4 und M8 bei den Arbitrierern A11 und A12 jeweils empfangen. Vorausschauanfragen werden zu den Arbitrierern A21 und A31 übertragen. Der Arbitrierer A21 weist in dem Zyklus 3 vier Anfragen auf, zwei Vorausschauanfragen und zwei Pipelineanfragen jeweils von A11 und A21. In Übereinstimmung mit dem oben Beschriebenen werden die Pipelineanfragen priorisiert, weshalb eine Arbitrierung zwischen den zwei Pipelineanfragen durchgeführt wird, wobei dem ersten Eingang Gewährung erteilt wird.In the cycle 3, the in 8d is shown, requests from the requestors M4 and M8 are received at the arbiters A11 and A12, respectively. Look-ahead requests are transferred to arbiters A21 and A31. The arbiter A21 has four requests in the cycle 3, two look-ahead requests and two pipeline requests each from A11 and A21. In accordance with what has been described above, the pipeline requests are prioritized, and therefore an arbitration is performed between the two pipeline requests, granting the first input.

Der Arbitrierer A31 weist in Zyklus 3 zwei Pipelineanfragen von den Arbitrierern A21 und A22 und eine Vorausschauanfrage auf. Eine Arbitrierung wird zwischen den Pipelineanfragen durchgeführt, wobei dem zweiten Eingang Gewährung erteilt wird. Es ist hierbei zu bemerken, dass in dem Zyklus 3 ein Lediglich-Pipeline-Betrieb erfolgt, da jeder der Arbitrierer, die in dem Zyklus 3 eine Arbitrierung durchführen, zwischen Pipelineanfragen arbitriert.Of the Arbitrator A31 has two pipeline requests from Cycle 3 in cycle 3 Arbiter A21 and A22 and a preview request on. An arbitration will performed between the pipeline requests, the second input granting is granted. It should be noted that in cycle 3, a mere pipeline operation is done, since each of the arbitrators, in the cycle 3, an arbitration carry out, arbitrated between pipeline requests.

In Zyklus 4 werden neue Anfragen bei den Arbitrierern A11, A12 und A13 von den Anfragern M2, M7 und M10 jeweils empfangen. Vorausschauanfragen werden zu den Arbitrierern A21 und A31 für Anfragen von M2 und M7 übertragen und Vorausschauanfragen werden zu den Arbitrierern A22 und A31 für die Anfrage von M10 übertragen. In diesem Zyklus haben alle Arbitrierer A21 und A31 aktive Pipelineanfragen, wodurch die Vorausschauanfragen von M2 und M7 nicht in Betracht gezogen werden. Für den Zweig, der zu M10 korrespondiert, wird für die Anfrage von M10 durch die Vorausschauanfragen, die auf dieser Anfrage basieren, Gewährung durch die Arbitrierer A13 und A22 in einem Zyklus ermöglicht, da die Arbitrierer A13 und A22 in dem Zyklus 3 in einem Leerlaufzustand waren. Es ist zu bemerken, dass die Vorausschauanfrage von M10 bei dem Arbitrierer A31 verworfen wird, da an dem Eingang 1 eine aktive Pipelineanfrage vorliegt. Da den Vorausschauanfragen von M10 durch die Arbitrierer A13 und A22 Gewährung erteilt werden, schreitet die Anfrage in einem Zyklus zwei Ebenen durch die Pipeline hinunter. Die Arbitrierer A13 und A22 führen einen parallelen Betrieb bezüglich der Anfrage von M10 aus. Verglichen mit einem reinen Pipeline-Betrieb, bei dem Gewährung lediglich dem Arbitrierer A13 für diese Anfrage innerhalb des Zyklus erteilt werden würde, hat die Anfrage eine Stufe in der Pipeline gewonnen.In Cycle 4 will be new requests to the arbitrators A11, A12 and A13 received by the requestors M2, M7 and M10, respectively. Forward-looking requests are transmitted to arbitrators A21 and A31 for requests from M2 and M7 and look-ahead requests become the arbitrators A22 and A31 for the request transmitted by M10. In this cycle, all arbitrators A21 and A31 have active pipeline requests, thus, the foresight requests of M2 and M7 are out of the question to be pulled. For the branch corresponding to M10 is accepted for the request of M10 the look-ahead requests based on this request are granted by grant allows the arbiters A13 and A22 in one cycle, since the arbitrators A13 and A22 were in an idle state in the cycle 3. It is Note that the look-ahead request from M10 is at arbitrator A31 is discarded because at the input 1 an active pipeline request is present. As the look-ahead requests from M10 by the arbitrators A13 and A22 grant are issued, the request proceeds in two stages in one cycle down the pipeline. Arbiters A13 and A22 carry one parallel operation with respect to the request from M10. Compared to a pure pipeline operation, at the grant only the arbiter A13 for This request would be issued within the cycle, the Request gained a stage in the pipeline.

Bezüglich des Arbitrierers A21 ist zu bemerken, dass die Pipelineanfrage, die aus der Arbitrierung in dem vorhergehenden Zyklus resultiert (Zyklus 3) nicht zu dem entsprechenden Eingang des Arbitrierers A31 übertragen werden konnte, weil die Anfrage bei dem Arbitrierer A31 noch aktiv ist, da diesem Eingang in dem vorhergehenden Zyklus keine Gewährung erteilt wurde.With regard to the arbiter A21 is to be noted Note that the pipeline request resulting from the arbitration in the previous cycle (cycle 3) could not be transferred to the corresponding input of the arbiter A31 because the request is still active at the arbiter A31, since there is no such input in the previous cycle Granted.

Die Ausgabeanfrage von dem Zyklus 3 wird daher an dem Ausgang des Arbitrierers A21 aufrechterhalten, und der Arbitrierer A21 wird in diesem Zyklus für die Arbitrierung geblockt, wie es durch die graue Farbe angezeigt ist. Zusätzlich ist der Arbitrierer A12 für eine Arbitrierung in diesem Zyklus geblockt, da dem Eingang des Arbitrierers A21, der zu A12 korrespondiert, in dem vorhergehenden Zyklus keine Gewährung erteilt wurde.The Output request from cycle 3 will therefore be at the output of the arbiter A21 is maintained, and the arbiter A21 becomes this cycle for the Arbitration blocked, as indicated by the gray color. additionally is the arbiter A12 for an arbitration is blocked in this cycle because the input of the Arbiter A21 corresponding to A12 in the preceding one Cycle no grant was granted.

Der Arbitrierer A11, der eine neue Anfrage von dem Anfrager M2 empfangen hat, führt eine normale Arbitrierung durch, wobei dieser Anfrage Gewährung erteilt wird, wie in 8e gezeigt.The arbiter A11, which has received a new request from the requester M2, performs a normal arbitration granting this request, as in 8e shown.

In dem Zyklus 5, der in 8f gezeigt ist, werden Anfragen von M1, M6 und M9 empfangen und entsprechende Vorausschauanfragen erzeugt. Da die Arbitrierer A21 und A31 aktive Pipelineanfragen aufweisen, werden die Vorausschausignale von M1 und M6 bei der Arbitrierung nicht in Betracht gezogen. Bezüglich der Anfrage von M9 wird der Vorausschauanfrage von M9 durch beide Arbitrierer A13 und A22 Gewährung erteilt, da der Arbitrierer A22 keine aktive Pipelineanfrage aufweist.In cycle 5, which is in 8f is shown, requests from M1, M6 and M9 are received and corresponding look-ahead requests are generated. Since the arbitrators A21 and A31 have active pipeline requests, the look ahead signals of M1 and M6 are not taken into account in the arbitration. Regarding the request from M9, the look-ahead request from M9 is granted by both arbiters A13 and A22 because arbitrator A22 has no active pipeline request.

Es ist ferner zu bemerken, dass in dem Zyklus 5 die Arbitrierer A11 und A12 geblockt sind, da der Arbitrierer A21 in dem vorhergehenden Zyklus geblockt war, wodurch aktive Pipelineanfragen an dem Eingang des Arbitrierers A21 in dem vorhergehenden Zyklus nicht entfernt werden konnten, um zu ermöglichen, dass neue Anfragen vorwärts schreiten. Daher ist es für die Pipelineanfrage, die bei dem Zyklus 4 an dem Ausgang des Arbitrierers A21 aufrechterhalten ist, noch nicht erlaubt, zu dem Arbitrierer A21 übertragen zu werden. Ferner konnte die Anfrage von M2 der in dem Zyklus Gewährung erteilt wurde, am Ende des Zyklus 4 nicht zu dem Arbitrierer A21 übertragen werden, da die alte Anfrage an dem Eingang 1 des Arbitrierers A21 aufgrund des Blockierens des Arbitrierers A21 in dem vorhergehenden Zyklus noch anhängig ist.It It should also be noted that in cycle 5 the arbiters A11 and A12 are blocked because the arbiter A21 in the previous one Cycle was blocked, causing active pipeline requests to the input of the arbiter A21 is not removed in the previous cycle could be to enable that new requests forward stride. Therefore it is for the pipeline request that is at cycle 4 at the output of the arbiter A21 is not yet allowed to the arbitrator Transfer A21 to become. Furthermore, the request from M2 was granted in the cycle grant, at the end of cycle 4 is not transferred to arbiter A21 since the old request is at the input 1 of the arbiter A21 due to the blocking of the arbiter A21 in the previous one Cycle still pending is.

Der Arbitrierer A21 führt während des Zyklus 5 normale Arbitrierung zwischen den anhängigen Pipelineanfragen durch, wobei dem Eingang 2, der A12 entspricht, in dem Arbitrierungsprozess Gewährung erteilt wird.Of the Arbitrator A21 performs while Cycle 5 normal arbitration between pending pipeline requests by, corresponding to the input 2 corresponding to A12 in the arbitration process granting is granted.

9a bis 9f zeigen nun das Datenpfadsystem für die oben beschriebene Operation. Wie es zu erkennen ist, sind in den Zyklus 1 die Multiplexer in einem Leerlaufzustand oder einem undefinierten Zustand, da keine Informationen von gewährten Eingängen in den Registern gespeichert sind. Bei dem Zyklus 2, werden die Multiplexer gemäß den gespeicherten Informationen in den jeweiligen Registern eingestellt (Vergleiche mit den Informationen, die in dem Register an dem Ende des vorhergehenden Zyklus, das heißt in dem Zyklus 1, der in 8b gezeigt ist, gespeichert sind), wobei ein Datentransfer für den Anfrager M2 durch alle Ebenen zu der geteilten Ressource innerhalb eines Zyklus ermöglicht wird. Ferner werden gemäß der Einstellung des Multiplexers D12 Daten von M7 von dem Anfrager M7 zu dem Eingang des Multiplexers D21 während des Zyklus 2 übertragen. 9a to 9f now show the data path system for the operation described above. As can be seen, in cycle 1, the multiplexers are in an idle state or an undefined state since no information from granted inputs is stored in the registers. In the cycle 2, the multiplexers are set in accordance with the stored information in the respective registers (compare with the information stored in the register at the end of the previous cycle, that is, in the cycle 1 shown in FIG 8b is shown), allowing data transfer for the requester M2 through all levels to the shared resource within one cycle. Further, according to the setting of the multiplexer D12, data of M7 is transmitted from the requester M7 to the input of the multiplexer D21 during the cycle 2.

In dem Zyklus 3 werden die Multiplexer gemäß der aktuellen Informationen in jedem der Register (siehe 8c) geschaltet. Wie es in 9c zu erkennen ist, werden Daten von M7 von dem Eingang des Multiplexers D21 zu der geteilten Ressource während dieses Zyklus übertragen. Ferner wird ermöglicht, dass Daten von M1 und Daten M6 die Pipeline bis zu den jeweiligen Eingängen des Multiplexers D21 während dieses Zyklus durchschreiten. Zusätzlich werden Daten von M9 während des Zyklus 3 von dem Anfrager M9 zu dem Eingang des Multiplexers D31 übertragen.In cycle 3, the multiplexers are updated according to the current information in each of the registers (see 8c ). As it is in 9c As can be seen, data from M7 is transferred from the input of the multiplexer D21 to the shared resource during this cycle. Further, data from M1 and data M6 is allowed to pass through the pipeline to the respective inputs of the multiplexer D21 during this cycle. In addition, data from M9 is transferred from the requestor M9 to the input of the multiplexer D31 during cycle 3.

In dem Zyklus 4, der in 9d gezeigt ist, wird der Multiplexer D31 auf den Eingang 2 geschaltet, wodurch ermöglicht wird, dass Daten von M9 an diesem Eingang verfügbar sind, um zu der geteilten Ressource übertragen zu werden. Ferner schreiten Daten von M1 durch die Pipeline durch von dem Eingang des Multiplexers D21 zu dem Eingang des Multiplexers D31 und Daten von M4 schreiten von dem Anfrager M4 zu dem Eingang des Multiplexers D21. Die Daten von M6 werden in diesem Zyklus nicht übertragen und sind noch an dem Eingang 2 des Multiplexers D21 verfügbar.In cycle 4, which is in 9d 3, the multiplexer D31 is switched to input 2, thereby allowing data from M9 to be available at that input to be transmitted to the shared resource. Further, data from M1 passes through the pipeline from the input of the multiplexer D21 to the input of the multiplexer D31, and data from M4 proceeds from the requester M4 to the input of the multiplexer D21. The data from M6 are not transmitted in this cycle and are still available at the input 2 of the multiplexer D21.

In dem Zyklus 5, der in 9e gezeigt ist, werden Daten von M1 von dem Eingang von D31 zu der geteilten Ressource übertragen, wobei Daten von M4 von dem Eingang des Multiplexers D21 zu dem Eingang des Multiplexers D31 übertragen werden. Ferner werden Daten von M2 von dem Anfrager M2 zu dem Eingang des Multiplexers D21 übertragen. Die Daten von M6 werden weiterhin nicht übertragen. Zusätzlich werden Daten von M10 von dem Anfrager M10 zu dem Eingang des Multiplexers D31 übertragen. Es sei wiederum darauf hingewiesen, dass Daten von M10 über mehr als eine Ebene in dem hierarchischen System übertragen werden.In cycle 5, which is in 9e 3, data from M1 is transferred from the input of D31 to the shared resource, data from M4 being transferred from the input of multiplexer D21 to the input of multiplexer D31. Further, data from M2 is transmitted from the requester M2 to the input of the multiplexer D21. The data from M6 will still not be transferred. In addition, data from M10 is transmitted from the requester M10 to the input of the multiplexer D31. It should again be noted that data from M10 is transmitted over more than one level in the hierarchical system.

In dem Zyklus 6, der in 9f gezeigt ist, werden Daten von M4 von dem Eingang von D31 zu der geteilten Ressource übertragen und die Daten von M6 werden von dem Eingang des Multiplexers D21 zu dem Eingang des Multiplexers D31 übertragen. Ferner werden Daten von M9 von dem Anfrager M9 zu dem Eingang des Multiplexers D22 übertragen.In the cycle 6, the in 9f is shown, data from M4 is transferred from the input of D31 to the shared resource and the data of M6 are transferred from the input of the multiplexer D21 to the input of the multiplexer D31. Further, data from M9 is transmitted from the requester M9 to the input of the multiplexer D22.

Vergleicht man den Datentransferbetrieb, der unter Bezugnahme auf die 9a bis 9f beschrieben ist, mit dem Datentransferbetrieb, der unter Bezugnahme auf die 6a bis 6f beschrieben ist, so kann bemerkt werden, dass in dem Betrieb gemäß den 9a bis 9f der Datentransfer bereits bei dem Zyklus 2 beginnt, während bei dem reinen Pipeline-Betrieb das System n – 1 Zyklen, das heißt zwei Zyklen mehr, nach dem Leerlaufzustand des Systems benötigte. Es ist ein allgemeines Merkmal des oben beschriebenen Ausführungsbeispiels, dass nach einem Leer laufzustand des Systems unabhängig von der Anzahl von Ebenen der hierarchischen Architektur die erste Gewährungsentscheidung aufgrund des parallelen Betriebs innerhalb eines Zyklus gemacht werden kann, wobei Daten bereits in den nächsten Zyklus übertragen werden können.Comparing the data transfer operation described with reference to FIGS 9a to 9f is described with the data transfer operation, with reference to the 6a to 6f is described, it can be noted that in the operation according to the 9a to 9f the data transfer already begins at cycle 2, whereas in pure pipeline operation the system requires n-1 cycles, ie two more cycles, after the system idles. It is a general feature of the embodiment described above that, after an idle state of the system, regardless of the number of levels of the hierarchical architecture, the first grant decision can be made due to the parallel operation within one cycle, whereby data can already be transferred to the next cycle ,

Das oben beschriebene Ausführungsbeispiel überwindet daher Totzeiten der Pipeline aufgrund von Arbitrierern in einem Leerlaufzustand durch ein Erzeugen von Vorausschauanfragen entlang eines jeweiligen Zweigs des hierarchischen Systems für jede Anfrage, die von einem Anfrager empfangen wird. Eine weitere Modifikation kann gemäß einem Ausführungsbeispiel erhalten werden, indem die Vorausschauanfragen für jede Anfrage von einem Anfrager und für jede Pipelineanfrage erzeugt wird. Dies ermöglicht, Lücken (Leerlaufzustände) der Pipeline in der Mitte der Pipeline zu überbrücken. Der obige Betrieb kann gemäß einem Ausführungsbeispiel durch das Bereitstellen eines weiteren Eingangs für die Oder-Komponente zusätzlich zu der Mehrzahl von Eingängen 300c geliefert werden, wobei der weitere Eingang mit dem Ausgang 300b verbunden ist, wie in 10 gezeigt.The embodiment described above therefore overcomes idle times of the pipeline due to arbitrators in an idle state by generating look-ahead requests along a respective branch of the hierarchical system for each request received from a requester. Another modification may be obtained according to one embodiment by generating the lookup requests for each request from a requester and for each pipeline request. This allows to bridge gaps (idle states) of the pipeline in the middle of the pipeline. The above operation may, in one embodiment, provide a further input to the OR component in addition to the plurality of inputs 300c be delivered, with the further input to the output 300b is connected, as in 10 shown.

Claims (27)

Verfahren mit folgenden Schritten: Betreiben einer Mehrzahl von Arbitrierern in einem Pipeline-Modus; und Betreiben zumindest eines Teils der Mehrzahl von Arbitrierern in einem Nicht-Pipeline-Betrieb.Method with the following steps: Operate a plurality of arbitrators in a pipeline mode; and Operate at least a portion of the plurality of arbitrators in a non-pipelined operation. Verfahren gemäß Anspruch 1, wobei der Pipeline-Modus folgende Schritte umfasst: Liefern eines ersten Signals von einem ersten Arbitrierer zu einem zweiten Arbitrierer basierend auf einer Arbitrierung bei dem ersten Arbitrierer; und wobei der Nicht-Pipeline-Betrieb folgende Schritte umfasst: Liefern eines zweiten Signals zu dem zweiten Arbitrierer unabhängig von einer Arbitrierung bei dem ersten Arbitrierer; und Arbitrieren bei dem zweiten Arbitrierer basierend auf dem zweiten Signal.Method according to claim 1, wherein the pipeline mode comprises the following steps: Deliver a first signal from a first arbiter to a second one Arbitrator based on an arbitration at the first arbitrator; and wherein the non-pipeline operation comprises the steps of: Deliver a second signal to the second arbiter independent of an arbitration at the first arbiter; and arbitration at the second arbiter based on the second signal. Verfahren gemäß Anspruch 2, bei dem das zweite Signal in dem Pipeline-Modus und dem Nicht-Pipeline-Betrieb geliefert wird, wobei in dem Pipeline-Modus eine Arbitrierung bei dem zweiten Arbitrierer basierend auf dem ersten Signal priorisiert wird über eine Arbitrierung basierend auf dem zweiten Signal.Method according to claim 2, in which the second signal in the pipeline mode and the non-pipeline operation in which an arbitration is provided in the pipeline mode is prioritized to the second arbiter based on the first signal via a Arbitration based on the second signal. Verfahren gemäß Anspruch 2 oder 3, wobei die Mehrzahl von Arbitrierern eine Mehrzahl von Arbitrierern eines hie rarchischen Arbitrierungssystem sind, wobei das erste Signal ein Pipelineanfragesignal ist und das zweite Signal ein Vorausschausignal ist und wobei das Betreiben in dem Pipeline-Modus ein Liefern des Pipelineanfragesignals von dem ersten Arbitrierer zu einem ersten Eingangstor des zweiten Arbitrierers basierend auf der Arbitrierung zwischen der Mehrzahl von Eingangsports an dem ersten Arbitrierer aufweist, wobei der zweite Arbitrierer auf einer übergeordneten Ebene verglichen mit dem ersten Arbitrierer implementiert ist; und wobei der Nicht-Pipeline-Betrieb folgende Schritte umfasst: Liefern des Vorausschausignals zu einem ersten Eingangsport des zweiten Arbitrierers auf einer übergeordneten Ebene, wobei das Vorausschausignal unabhängig von einem Arbitrieren bei dem ersten Arbitrierer ist; und Liefern eines dritten Signals, das eine Gewährung für den ersten Eingangsport anzeigt, basierend auf dem Vorausschausignal.Method according to claim 2 or 3, wherein the plurality of arbiters comprises a plurality of Arbitrators of a hierarchical Arbitrierungssystem are, where the first signal is a pipeline request signal and the second signal a look-ahead signal, and wherein the operation is in the pipeline mode Deliver the pipeline request signal from the first arbitrator a first input port of the second arbiter based on the arbitration between the plurality of input ports on the first arbitrator, wherein the second arbiter on a parent Level is implemented compared to the first arbitrator; and in which the non-pipeline operation includes the following steps: Deliver the look-ahead signal to a first input port of the second Arbitrator on a parent Level, wherein the look-ahead signal is independent of an arbitration at the first arbiter; and delivering a third signal, the one grant for the indicates the first input port based on the look-ahead signal. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei der zumindest eine Teil der Mehrzahl von Arbitrierer in einem Nicht-Pipeline-Betrieb betrieben wird, wenn der zumindest eine Teil der Mehrzahl von Arbitrierer in dem vorhergehenden Zyklus in einem Leerlaufzustand ist oder in dem vorhergehenden Zyklus keine aktive Pipelineanfrage aufweist.Method according to one the claims 1-4, wherein the at least a portion of the plurality of arbitrators operated in a non-pipeline operation, if the at least a part of the plurality of arbitrators in the previous cycle is in an idle state or none in the previous cycle has active pipeline request. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei der Nicht-Pipeline-Betrieb ein paralleles Durchführen einer Arbitrierung einer Anfrage von zumindest einem Anfrager einer Mehrzahl von Anfragern umfasst.Method according to one the claims 1 to 5, wherein the non-pipelined operation performing a parallel Arbitration of a request from at least one requester of a plurality of requestors. Verfahren gemäß einem der Ansprüche 1 bis 6, das ferner folgenden Schritt aufweist: Speichern von Informationen für jeden der Mehrzahl von Arbitrierern, wobei die Informationen diejenigen Tore anzeigen, denen durch einen jeweiligen der Mehrzahl von Arbitrierern Gewährung erteilt wurde.Method according to one the claims 1 to 6, further comprising the step of: Save from information for each of the plurality of arbitrators, the information being those gates indicated by a respective one of the plurality of arbitrators granting was granted. Verfahren gemäß Anspruch einem der Ansprüche 1 bis 7, das ferner den folgenden Schritt aufweist: Liefern eines Datenpfads von einem Anfrager zu einer geteilten Ressource basierend auf den Informationen, die für einen jeweiligen Arbitrierer der Mehrzahl von Arbitrierern gespeichert sind.A method according to any one of claims 1 to 7, further comprising the step of: Providing a data path from a requester to a shared resource based on the information stored for a respective arbiter of the plurality of arbitrators. Verfahren gemäß einem der Ansprüche 1 bis 8, wobei in dem Pipeline-Modus eine Anfrage pro Taktzyklus eine Ebene vorschreitet, und wobei in dem Nicht-Pipeline-Betrieb eine Anfrage zumindest zwei Ebenen der Pipeline pro Taktzyklus vorschreitet.Method according to one the claims 1-8, wherein in the pipeline mode one request per clock cycle advances one level, and wherein in the non-pipelined operation a request advances at least two levels of the pipeline per clock cycle. Verfahren gemäß Anspruch 9, wobei die Anfrage in dem Nicht-Pipeline-Betrieb alle Ebenen der Pipeline innerhalb eines Taktzyklus vorschreitet.Method according to claim 9, where the request in the non-pipelined operation all levels of the pipeline advances within one clock cycle. Verfahren gemäß einem der Ansprüche 1 bis 10, wobei einem Anfrager durch die Mehrzahl von Arbitrierern Gewährung für einen Datentransfer zu einer geteilten Ressource innerhalb eines Taktzyklus nachdem der Anfrager eine Anfrage zum Gewähren zu der Mehrzahl von Arbitrierern ausgegeben hat, erteilt wird, wenn die Mehrzahl von Arbitrierern in einem Leerlaufzustand ist.Method according to one the claims 1-10, wherein a requestor is through the plurality of arbitrators granting for one Data transfer to a shared resource within one clock cycle after the requestor to grant a request to the plurality of arbitrators issued when the plurality of arbitrators is in an idle state. Arbitrierungsknoten in einem hierarchischen Arbitrierungssystem, wobei der Arbitrierungsknoten folgende Merkmale umfasst: einen ersten Knoten, wobei der erste Knoten eine Mehrzahl von ersten Eingängen aufweist, um erste Signale von einem untergeordneten Arbitrierungsknoten zu empfangen und einen ersten Ausgang aufweist, um ein Signal zu einem Arbitrierungsknoten einer höheren Ebene zu übertragen; und einen zweiten Knoten, wobei der zweite Knoten eine Mehrzahl von zweiten Eingängen aufweist, um zweite Signale von zweiten Knoten von untergeordneten Arbitrierungsknoten zu empfangen, und einen zweiten Ausgang auweist, um ein Signal zu einem übergeordneten Arbitrierungsknoten zu übertragen.Arbitration nodes in a hierarchical arbitration system, wherein the arbitration node comprises the following features: one first node, the first node having a plurality of first inputs, to receive first signals from a subordinate arbitration node received and having a first output to a signal to a Arbitration node of a higher Transfer level; and a second node, the second node having a plurality from second inputs to second signals from second nodes of subordinate arbitration nodes and a second output to signal a parent Arbitrierungsknoten to transfer. Arbitrierungsknoten gemäß Anspruch 12, wobei der zweite Knoten kombinatorische Hardware-Logik aufweist.The arbitration node of claim 12, wherein the second Node combinational hardware logic has. Arbitrierungsknoten gemäß Anspruch 13, wobei die kombinatorische Hardware-Logik implementiert ist, um eine Mehrzahl von Eingangssignalen, die an den zweiten Eingängen empfangen werden, zu kombinieren, und an dem Ausgang ein Ausgangssignal entsprechend einer Oder-Kombination der Eingangssignale zu liefern.The arbitration node of claim 13, wherein the combinational Hardware logic is implemented to provide a plurality of input signals, at the second entrances are received, combine, and at the output an output signal according to an OR combination of the input signals. Arbitrierungsknoten gemäß einem der Ansprüche 12 bis 14, wobei der Arbitrierer mit einem Register gekoppelt ist, das dem Arbitrierungsknoten zugeordnet ist, um Informationen zu speichern, die sich auf den durch den Arbitrierern gewährten Eingang beziehen.Arbitration node according to one of claims 12 to 14, wherein the arbiter is coupled to a register, the associated with the arbitration node to store information, referring to the input granted by the arbitrators. Arbitrierersystem mit folgenden Merkmalen: einem ersten Arbitrierer; einem zweiten Arbitrierer; einem dritten Arbitrierer; einer ersten Verbindung, um ein erstes Signal von einem ersten Anfrager einer Mehrzahl von Anfragern zu dem zweiten Arbitrierer zu übertragen; einer zweiten Verbindung, um ein zweites Signal von einem zweiten Anfrager der Mehrzahl von Anfragern zu dem ersten Arbitrierer zu übertragen; einer dritten Verbindung, um ein drittes Signal basierend auf dem ersten und zweiten Signal zu dem dritten Arbitrierer zu übertragen; einer vierten Verbindung, um ein viertes Signal von dem ersten Arbitrierer zu dem dritten Arbitrierer zu übertragen; und einer fünften Verbindung, um ein fünftes Signal von dem zweiten Arbitrierer zu dem dritten Arbitrierer zu übertragen.Arbitrator system with the following features: one first arbitrator; a second arbitrator; a third arbiter; a first connection to a first signal from a first requester of a plurality of requestors to the second one To transfer arbitrators; one second connection to a second signal from a second requester the plurality of requestors to transmit to the first arbitrator; one third connection to a third signal based on the first and transmit second signal to the third arbiter; one fourth connection to a fourth signal from the first arbiter to transmit to the third arbiter; and a fifth Connection to a fifth Signal from the second arbiter to the third arbiter. Arbitrierersystem gemäß Anspruch 16, wobei das Arbitrierersystem ein hierarchisches Arbitrierersystem ist, wobei die ersten und zweiten Arbitrierer einer hierarchischen Ebene zugeordnet sind, und wobei der dritte Arbitrierer einer unterschiedlichen hierarchischen Ebene, die der einen hierarchischen Ebene übergeordnet ist, zugeordnet ist.The arbitrator system of claim 16, wherein the arbitrator system is a hierarchical arbitrator system, the first and second Arbitrators are assigned to a hierarchical level, and where the third arbitrator of a different hierarchical level, assigned to a hierarchical level is. Arbitrierersystem gemäß Anspruch 16 oder 17, wobei die dritte Verbindung eine kombinatorische Hardware-Logik aufweist, wobei die kombinatorische Hardware-Logik einen ersten und zweiten Eingang und einen Ausgang zum Ausgeben des dritten Signals aufweist, und wobei die vierte und fünfte Verbindung jeweils ein Register aufweisen, um das vierte und fünfte Signal zu speichern, wobei das Register mit einem Steuereingang eines Multiplexers gekoppelt ist.An arbitration system according to claim 16 or 17, wherein the third connection has combinatorial hardware logic, wherein the combinational hardware logic comprises first and second Having an input and an output for outputting the third signal, and being the fourth and fifth Connection each have a register to the fourth and fifth signal store, with the register having a control input of a multiplexer is coupled. Arbitrierersystem gemäß einem der Ansprüche 16 bis 18, wobei das System ferner folgendes Merkmal aufweist: einen Datenpfad, der den ersten Anfrager und den zweiten Anfrager mit einer geteilten Ressource koppelt, wobei der Datenpfad mit dem Multiplexer gekoppelt ist, um selektiv Daten basierend auf den in dem Register gespeicherten Signalen zu übertragen.Arbitrator system according to one of claims 16 to 18, the system further comprising: one Data path containing the first requester and the second requester a shared resource, the data path to the multiplexer is coupled to selectively data based on those in the register to transmit stored signals. Arbitrierersystem mit folgenden Merkmalen: einer Mehrzahl von Arbitrierern, wobei die Mehrzahl von Arbitrierern ausgebildet ist, um in einem Pipeline-Betrieb betrieben zu werden, und wobei zumindest ein Teil der Mehrzahl von Arbitrierern ausgebildet ist, um in einem Nicht-Pipeline-Betrieb betrieben zu werden.Arbitrator system with the following features: one A plurality of arbitrators, wherein the plurality of arbitrators are formed is to be operated in a pipeline operation, and wherein at least a part of the plurality of arbitrators is formed, to operate in a non-pipelined operation. Arbitrierersystem gemäß Anspruch 20, wobei der zumindest eine Teil der Mehrzahl von Arbitrierern in einem Nicht-Pipeline-Betrieb betrieben wird, wenn sich der zumindest eine Teil der Mehrzahl von Arbitrierern in einem Leerlaufzustand befindet.The arbitrator system of claim 20, wherein the at least one of a portion of the plurality of arbitrators in a non-pipelined operation is operated when the at least a part of the plurality of Arbitrators is in an idle state. Arbitrierersystem gemäß Anspruch 20 oder 21, wobei die Mehrzahl von Arbitrierern konfiguriert ist, um, wenn sich die Mehrzahl von Arbitrierern ursprünglich in einem Leerlaufzustand befindet, eine Datenübertragung für einen Anfrager einen Taktzyklus nachdem der Anfrager bezüglich eines Zugriffs eine Anfrage gestellt hat, auszulösen.An arbitration system according to claim 20 or 21, wherein the plurality of arbiters is configured to, when the Plurality of arbitrators originally is in an idle state, a data transfer for one Inquirer one clock cycle after the requester with respect to one Access has made a request to trigger. Arbitrierersystem gemäß einem der Ansprüche 20 bis 22, wobei die Mehrzahl von Arbitrierern ein hierarchisches Arbitrierungssystem bildet.Arbitrator system according to one of claims 20 to 22, wherein the plurality of arbitrators is a hierarchical arbitration system forms. Arbitrierersystem gemäß einem der Ansprüche 20 bis 23, wobei jeder der Mehrzahl von Arbitrierern mit einem entsprechenden Register gekoppelt ist, um Informationen zu speichern, die Tore anzeigen, denen durch die Mehrzahl von Arbitrierern Gewährung erteilt wurde.Arbitrator system according to one of claims 20 to 23, wherein each of the plurality of arbitrators with a corresponding Register is coupled to store information, the gates which are granted by the majority of arbitrators has been. Arbitrierersystem gemäß Anspruch 24, wobei das entsprechende Register mit einem entsprechenden Multiplexer gekoppelt ist, um einen Datenpfad von einem Anfrager zu einer geteilten Ressource basierend auf Informationen zu liefern, die in jedem der entsprechenden Register gespeichert sind.The arbitrator system of claim 24, wherein the corresponding one Register is coupled to a corresponding multiplexer to a data path from a requester to a shared resource based on providing information in each of the corresponding Register are stored. Arbitrierersystem gemäß Anspruch 25, wobei die Mehrzahl von Arbitrierern konfiguriert ist, um in dem Pipeline-Betrieb ein erstes Signal von einem ersten Arbitrierer zu einem zweiten Arbitrierer auf einer nächst höheren Ebene basierend auf einer Arbitrierung bei dem ersten Arbitrierer zu liefern, und wobei in dem Nicht-Pipeline-Betrieb ein zweites Signal zu dem zweiten Arbitrierer unabhängig von der Arbitrierung in dem ersten Arbitrierer geliefert wird.The arbitrator system of claim 25, wherein the plurality is configured by arbitrators to enter in pipeline operation first signal from a first arbiter to a second arbiter on a next higher Level based on arbitration in the first arbitrator and wherein in the non-pipelined operation a second Signal to the second arbitrator regardless of the arbitration in the first arbiter is delivered. Arbitrierersystem gemäß Anspruch 26, wobei das zweite Signal ferner bei dem Pipeline-Betrieb geliefert wird, und wobei eine Arbitrierung basierend auf dem ersten Signal priorisiert wird über eine Arbitrierung basierend auf dem zweiten Signal.The arbitrator system of claim 26, wherein the second Signal is further supplied in the pipeline operation, and wherein an arbitration based on the first signal is prioritized via a Arbitration based on the second signal.
DE102008034500.8A 2007-08-22 2008-07-24 arbitration Active DE102008034500B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/842,965 2007-08-22
US11/842,965 US7734856B2 (en) 2007-08-22 2007-08-22 Method for operating a plurality of arbiters and arbiter system

Publications (2)

Publication Number Publication Date
DE102008034500A1 true DE102008034500A1 (en) 2009-02-26
DE102008034500B4 DE102008034500B4 (en) 2014-10-02

Family

ID=40280371

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008034500.8A Active DE102008034500B4 (en) 2007-08-22 2008-07-24 arbitration

Country Status (2)

Country Link
US (1) US7734856B2 (en)
DE (1) DE102008034500B4 (en)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386648B1 (en) 2003-06-26 2013-02-26 Nvidia Corporation Hardware support system for accelerated disk I/O
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US8270335B1 (en) * 2008-02-28 2012-09-18 Xilinx, Inc. Arbitration for time division multiple access using delta sigma modulation
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
EP2192496B1 (en) * 2008-11-28 2013-01-23 Telefonaktiebolaget LM Ericsson (publ) Arbitration in multiprocessor device
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8930602B2 (en) 2011-08-31 2015-01-06 Intel Corporation Providing adaptive bandwidth allocation for a fixed priority arbiter
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8713234B2 (en) 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
GB2528071B (en) * 2014-07-08 2021-04-07 Advanced Risc Mach Ltd Arbitrating and multiplexing circuitry
JP6481427B2 (en) * 2015-03-10 2019-03-13 富士通株式会社 Arithmetic processing device, information processing device, and control method for information processing device
US10684969B2 (en) * 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
EP3270294B1 (en) * 2016-07-15 2018-09-26 Advanced Micro Devices, Inc. Command arbitration for high-speed memory interfaces
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
CN110729006B (en) 2018-07-16 2022-07-05 超威半导体(上海)有限公司 Refresh scheme in a memory controller
JP7401050B2 (en) * 2018-09-18 2023-12-19 キヤノン株式会社 bus control circuit
KR20210103836A (en) * 2020-02-14 2021-08-24 에스케이하이닉스 주식회사 Data Processing Apparatus and Operation Method Thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301333A (en) 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
US5280591A (en) 1991-07-22 1994-01-18 International Business Machines, Corporation Centralized backplane bus arbiter for multiprocessor systems
US5883894A (en) 1996-12-30 1999-03-16 3Com Corporation Shared auto-negotiation logic for multiple port network devices
KR100223897B1 (en) * 1997-03-12 1999-10-15 구본준 Bus arbitration devices
US6487213B1 (en) 1998-01-05 2002-11-26 Polytechnic University Methods and apparatus for fairly arbitrating contention for an output port
US6032218A (en) 1998-05-28 2000-02-29 3Com Corporation Configurable weighted round robin arbiter
US6338121B1 (en) * 1999-05-20 2002-01-08 International Business Machines Corporation Data source arbitration in a multiprocessor system
US6763418B1 (en) 2001-09-07 2004-07-13 Agilent Technologies, Inc. Request bus arbitration
JP2003256358A (en) 2002-02-28 2003-09-12 Sony Corp Arbiter apparatus and method therefor as well as resource sharing system
US6954812B2 (en) * 2002-03-05 2005-10-11 Hewlett-Packard Development Company, L.P. Two-stage round robin arbitration system
US7149227B2 (en) 2002-05-31 2006-12-12 Mellanox Technologies Ltd. Round-robin arbiter with low jitter
US7051135B2 (en) * 2002-11-22 2006-05-23 Ess Technology, Inc. Hierarchical bus arbitration
KR100480637B1 (en) 2002-11-27 2005-03-31 삼성전자주식회사 Programmable fixed priority and round robin arbiter for providing the high-speed arbitration and bus control method thereof
US7143219B1 (en) * 2002-12-31 2006-11-28 Intel Corporation Multilevel fair priority round robin arbiter
US20040210696A1 (en) * 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
US7120714B2 (en) * 2003-05-27 2006-10-10 Intel Corporation High-speed starvation-free arbiter system, rotating-priority arbiter, and two stage arbitration method
US6826640B1 (en) 2003-06-04 2004-11-30 Digi International Inc. Bus bandwidth control system
US7685345B2 (en) * 2007-06-27 2010-03-23 International Business Machines Corporation Apparatus and method for fairness arbitration for a shared pipeline in a large SMP computer system

Also Published As

Publication number Publication date
DE102008034500B4 (en) 2014-10-02
US20090055566A1 (en) 2009-02-26
US7734856B2 (en) 2010-06-08

Similar Documents

Publication Publication Date Title
DE102008034500B4 (en) arbitration
DE3300261C2 (en)
DE69834519T2 (en) Bus control system and method
DE3300260C2 (en)
DE3224034C2 (en)
DE60314347T2 (en) Resource management device
DE2847216C2 (en) Data processing system with multi-program operation
DE3914265C2 (en)
DE2714805C2 (en)
DE3606211A1 (en) MULTIPROCESSOR COMPUTER SYSTEM
DE3035718C2 (en) Signal processor arrangement with condition interruption unit
DE10296959T5 (en) System and method for controlling bus allocation during cache burst cycles
DE3535436C2 (en)
DE102005055000A1 (en) Modular avionics system of an aircraft
DE3114816A1 (en) CIRCUIT ARRANGEMENT FOR A DATA PROCESSING SYSTEM WITH SEVERAL DIFFERENT UNITS AND PRIORITY CONTROL
DE3400464C2 (en)
EP0050305B1 (en) Unit to control the access of processors to a data bus
DE1549474B2 (en) Arrangement in an electronic digital data processing system for executing a first command and simultaneous decoding of a following command
DE60132961T2 (en) Independent initialization of arbiters and agents to allow for delayed agent initialization
EP2485153A1 (en) Switch assemblies and method for controlling data exchange in a switch assembly
DE1524181B2 (en) SELECTION DEVICE FOR INPUT AND OUTPUT DEVICES OF A DATA PROCESSING SYSTEM
DE102006009034B3 (en) Bus system method for operating a bus system has transmission channels for linking masters and slaves to each other and linking each master to an arbiter
DE102011011682B4 (en) Programmable controller for parallel execution of a plurality of independent execution programs
DE10145219A1 (en) Method and device for generating program interruptions for participants in a bus system and bus system
DE10056152B4 (en) Method for performing bus arbitration between control chips of a chipset with preemptive capability

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
8127 New person/name/address of the applicant

Owner name: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R081 Change of applicant/patentee

Owner name: LANTIQ DEUTSCHLAND GMBH, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20110325

Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

Effective date: 20110325

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: INTEL CORP., SANTA CLARA, US

Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

Owner name: LANTIQ BETEILIGUNGS-GMBH & CO. KG, DE

Free format text: FORMER OWNER: LANTIQ DEUTSCHLAND GMBH, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: PUSCHMANN BORCHERT KAISER KLETTNER PATENTANWAE, DE

Representative=s name: PUSCHMANN BORCHERT BARDEHLE PATENTANWAELTE PAR, DE

R081 Change of applicant/patentee

Owner name: INTEL CORP., SANTA CLARA, US

Free format text: FORMER OWNER: LANTIQ BETEILIGUNGS-GMBH & CO. KG, 85579 NEUBIBERG, DE

R082 Change of representative