DE102008034500A1 - arbitration - Google Patents
arbitration Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling 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:
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
Wie
es nachfolgend genauer erklärt
wird, kann das Arbitrierungssystem
Die
Mehrzahl von Anfragern
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
Unter
Bezugnahme auf
Wie
es in
Während
Gemäß Ausführungsbeispielen,
die nachfolgend detaillierter erklärt werden, kann das hierarchische
Arbitrierungssystem
Der
Multiplexer
Der
Arbitrierer
Durch
das Implementieren der oben beschriebenen Arbitrierungsknoten
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
Ein
erster exemplarischer Betrieb des Arbitrierungssystems der
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
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
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
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
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
Bezug
nehmend nun auf Zyklus 4, der in
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
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
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
Der
Datentransfer in dem hierarchischen Datenpfadsystem, das in
In
dem Zyklus 3, der in
Indem
Zyklus 4, der in
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
In
dem Zyklus 6, der in
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
Durch
den Arbitrierungsknoten, der in
Der
Arbitrierungsknoten
Da
der Arbitrierer
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
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
Es
ist ferner zu bemerken, dass Pipelineanfragen immer an dem Ausgang
Arbitrierer
der untergeordneten Ebene empfangen direkt Anfragen von den Anfragern.
Anstelle einer Kopplung der Ausgänge
Um
ein besseres Verständnis
der oben beschriebenen Vorausschau-Implementation zu geben, wird
im Folgenden das Beispiel, das in den
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
In
dem Zyklus 3, der in
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
In
dem Zyklus 5, der in
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.
In
dem Zyklus 3 werden die Multiplexer gemäß der aktuellen Informationen
in jedem der Register (siehe
In
dem Zyklus 4, der in
In
dem Zyklus 5, der in
In
dem Zyklus 6, der in
Vergleicht
man den Datentransferbetrieb, der unter Bezugnahme auf die
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
Claims (27)
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)
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)
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 |
-
2007
- 2007-08-22 US US11/842,965 patent/US7734856B2/en active Active
-
2008
- 2008-07-24 DE DE102008034500.8A patent/DE102008034500B4/en active Active
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 |