DE60024421T2 - Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System - Google Patents

Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System Download PDF

Info

Publication number
DE60024421T2
DE60024421T2 DE60024421T DE60024421T DE60024421T2 DE 60024421 T2 DE60024421 T2 DE 60024421T2 DE 60024421 T DE60024421 T DE 60024421T DE 60024421 T DE60024421 T DE 60024421T DE 60024421 T2 DE60024421 T2 DE 60024421T2
Authority
DE
Germany
Prior art keywords
req
units
selxnoty
unit
resource
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.)
Expired - Lifetime
Application number
DE60024421T
Other languages
English (en)
Other versions
DE60024421D1 (de
Inventor
Pasquale Butta
Pierre Marty
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.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
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 STMicroelectronics SRL filed Critical STMicroelectronics SRL
Application granted granted Critical
Publication of DE60024421D1 publication Critical patent/DE60024421D1/de
Publication of DE60024421T2 publication Critical patent/DE60024421T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

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

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Arbitrierungsverfahren, die im Rahmen von Informationsverarbeitungssystemen implementiert werden.
  • Beschreibung des Standes der Technik
  • Die zunehmende Komplexität hinsichtlich der Architektur von Informationsverarbeitungssystemen und insbesondere der so genannten "eingebetteten" Systeme macht die Optimierung der Zyklen der Übertragung (Transfer) des Datenstroms von den so genannten "Initiatoren" zu den so genannten "Zielen" (Targets) eines Systems immer wichtiger.
  • Allgemein ist definitionsgemäß ein Initiator eine beliebige Einheit, die autonom eine Transaktion einleiten kann, mit der sie die Benutzung einer Ressource (zum Beispiel eines dedizierten oder gemeinsam genutzten Busses) beansprucht, um Daten zu lesen oder zu schreiben.
  • Definitionsgemäß ist ein Ziel eine beliebige Einheit, von der ausgehend oder mit der ein Initiator Daten lesen oder schreiben kann.
  • Ein System, wie zum Beispiel ein eingebettetes System, kann eine große Anzahl von Initiatoreinheiten und auch eine große Anzahl von Zieleinheiten aufweisen.
  • Zu dem Zeitpunkt, in dem zwei oder mehr Initiatoren gleichzeitig versuchen, eine Transaktion zu starten, die auf ein identisches Ziel gerichtet ist, ist es notwendig, den Konflikt mittels einer Arbitrierungsfunktion zu lösen. Die Implementierung einer derartigen Funktion kann, insbesondere hinsichtlich der Ausführungsgeschwindigkeit, oft sehr aufwendig sein.
  • In 2 der beiliegenden Zeichnungen ist ein Arbitrierungsvorgang gezeigt, der gemäß einer Lösung des Standes der Technik im Rahmen eines gattungsgemäßen Systems (zum Beispiel des eingebetteten Typs) durchgeführt wird, das in 1 dargestellt ist, wobei sich diese Figur selbst sowohl auf den Stand der Technik als auch auf die vorliegende Erfindung bezieht.
  • Zum Zeitpunkt des Beginns der entsprechenden Transaktion legt jeder Initiator I1, I2, I3 usw. dem so genannten Systemarbitrator A eine Priorität vor, der den Konflikt dadurch löst, dass er den Beginn der Transaktionen denjenigen Initiatoren ermöglicht, welche die höchste Priorität haben, und einen nach dem anderen zu denjenigen mit der niedrigsten Priorität fortschreitet. Datentransaktionen zu einem beliebigen Ziel T werden daher durch den Arbitrator A geregelt, der die möglichen Konflikte mittels der Prioritätsinformation löst, die von den Initiatoren selbst geliefert wird. Eine Transaktion besteht aus dem Transfer eines Datenpakets vom beteiligten Initiator zum Ziel T oder umgekehrt.
  • Zum Zeitpunkt des Beginns der Transaktion legt jeder Initiator I1, I2, I3 usw. dem Arbitrator A ein Anfragesignal vor. Der Arbitrator gibt mittels eines Bewilligungssignals, das dem Initiator mit der höchsten Priorität, unter denjenigen, welche gleichzeitig die Transaktion beginnen möchten, zugesendet wird, zu erkennen, dass die Transaktion angenommen wurde. Dann signalisiert er in den nachfolgenden Zyklen die Annahme der Transaktionen an diejenigen Initiatoren, welche niedrigere Prioritäten haben, wenn die Transaktionen mit den höheren Prioritäten abgeschlossen sind.
  • Dieser Vorgang ist in 2 anhand eines Systems schematisch gezeigt, das drei Initiatoren I1, I2, I3 und ein Ziel T aufweist. Der Arbitrator A, der gemäß dem im Diagramm in 2 oben gezeigten Taktsignal betrieben wird, löst jegliche Konflikte auf der Grundlage der Prioritäten, die zu den in der Figur gezeigten Zeiten empfangen wurden. All dies erfolgt, indem im Grunde genommen ein Mechanismus zum Vergleich der Ungleichheiten der Reihenfolge angewendet wird, wie er in 2 dargestellt ist. Hierbei wird angenommen, dass der Initiator I1 eine höhere Priorität als der Initiator I2 hat, der seinerseits eine höhere Priorität als der Initiator I3 hat, so dass Bewilligungen in der Reihenfolge zuerst dem Initiator I1, dann dem Initiator I2 und schließlich dem Initiator I3 gegeben werden.
  • Auch wenn der oben beschriebene Mechanismus funktioniert, so hat er doch intrinsische Grenzen hinsichtlich der Ausführungsgeschwindigkeit des Arbitrierungsalgorithmus, der Empfindlichkeit der Ausführungsgeschwindigkeit der Arbitrierung gegenüber der Codierung der Priorität (typischerweise eine generische Anzahl n von Bits) und hinsichtlich einer merklichen Erhöhung der Ausführungsverzögerung mit der Erhöhung der Anzahl von Initiatoren. Aus der EP 552 507 A geht ein Arbitrierungssystem hervor, bei dem relative Prioritätssignale aus Teilmengen von Eingabesignalen abgeleitet werden. Nach der Konfliktlösung wird ein absolutes Prioritätssignal erzeugt.
  • Aufgaben und Zusammenfassung der Erfindung
  • Aufgabe der vorliegenden Erfindung ist es, eine Lösung vorzusehen, welche die oben erwähnten Nachteile überwinden kann.
  • Erfindungsgemäß wird diese Aufgabe anhand eines Arbitrierungsverfahrens gelöst, das die spezifisch in den beiliegenden Ansprüchen geforderten Merkmale hat. Die Erfindung bezieht sich auch auf das entsprechende System.
  • Das erfindungsgemäße Arbitrierungsverfahren ist im Wesentlichen ein Arbitrierungsmechanismus mit variabler Priorität, der vorteilhafterweise in Hochgeschwindigkeitsanwendungen, wie zum Beispiel in Decodern für HDTV-Signale, verwendet werden kann. Das entsprechende Verbindungsuntersystem, das drei Initiatoren bzw. anfordernde Einheiten (LMI, Aufwärtsschnittstelle und GPx-Schnittstelleneinheiten) und ein Ziel T (die SDRAM-Speicherschnittstelle) umfasst, kann mit einem Taktsignal, zum Beispiel mit 100 MHz, betrieben werden. Die erfindungsgemäße Lösung ermöglicht es, zwischen Prozessen zu unterscheiden, die unterschiedliche Prioritäten haben, die über denselben Initiator auf den externen SDRAM zugreifen können.
  • Allgemein kann die erfindungsgemäße Lösung jedoch auch in N × M-Systemen (d.h. mit N Initiatoren und M Zielen) eingesetzt werden, indem für jede Zieladresse ein Arbitrator eingeführt wird. Die Ausführungszeit des Vorgangs verlängert sich nur auf Grund der Decodierung der Zieladresse; das heißt – unter Bezugnahme auf aktuelle Technologien (wie zum Beispiel die 0,25-Mikrometer-Technologie) – mit Werten von wenigen Zehnteln von Nanosekunden für jede Zieladresse.
  • Kurze Beschreibung der Zeichnungen
  • Es folgt eine Beschreibung der vorliegenden Erfindung lediglich als ein nicht einschränkendes Beispiel anhand der beiliegenden Zeichnungen.
  • Die 1 und 2, wobei sich die letztere spezifisch auf den Stand der Technik bezieht, wurden schon im Voraus beschrieben; und
  • 3 zeigt in der Form eines Blockdiagramms, die mögliche Architektur eines Arbitrierungssystems, das erfindungsgemäß betrieben wird.
  • Detaillierte Beschreibung einer bevorzugten Ausführungsform der Erfindung
  • Die erfindungsgemäße Lösung ist dazu konstruiert, dass sie in einer Situation betrieben wird, die hinsichtlich der Aspekte allgemeinerer Art der in 1 dargestellten Lösung entspricht.
  • Insbesondere stellt das Blockdiagramm von 3 die Architektur des Arbitrators A dar, der zum Implementieren der erfindungsgemäßen Lösung in einem eingebetteten System eingesetzt werden kann, bei dem drei Initiatoren I1, I2 und I3, die konstruktionsgemäß auf ein einziges Ziel T zugreifen, vorhanden sind.
  • In der Praxis umfasst die Architektur des in 3 dargestellten Arbitrators drei Stufen, die mit A1, A2 und A3 bezeichnet und dazu konstruiert sind, in einer abgestuften Anordnung drei aufeinanderfolgende Schritte des Arbitrierungsvorgangs durchzuführen.
  • Die oben erwähnten Schritte (und folglich die entsprechenden Stufen A1, A2 und A3) können allgemein wie folgt identifiziert werden:
    • – Vergleich von Prioritäten (Stufe A1);
    • – Überkreuz-Erzeugung von Anfragen (Stufe A2); und
    • – Überkreuz-Erzeugung von Bewilligungen (Stufe A3).
  • Jede der Stufen A1, A2 und A3 weist ihrerseits drei Module oder Blöcke auf, die im Wesentlichen miteinander identisch sind.
  • Die drei Blöcke der Stufe A1, die mit A11, A12 und A13 bezeichnet sind, empfangen als ihre Eingaben die Prioritätssignale oder Daten, die einem entsprechenden Paar von Initiatoren entsprechen; diese sind (in der gezeigten Ausführungsform) in dieser Reihenfolge das Paar I1, I2, das Paar I1, I3 und das Paar I2, I3.
  • Die entsprechenden Ausgabesignale werden in dieser Reihenfolge an die Module der Stufe A2, die mit A21, A22 und A23 bezeichnet sind, gesendet. Die letzteren empfangen in der entsprechenden Reihenfolge ebenfalls die von den Initiatoren des Paares I1, I2, des Paares I1, I3 bzw. des Paares I2, I3 erzeugten Anfragesignale.
  • Jedes der Module A21, A22 und A23 erzeugt als seine Ausgabe zwei Überkreuz-Anfrage-Signale, die ihrer Bestimmung gemäß an die drei Module der Stufe A3, die in ihrer Reihenfolge mit A31, A32 und A33 bezeichnet sind, zu senden sind.
  • Insbesondere wird von den beiden Ausgaben der Module A21, eine an das Modul A31 und die andere an das Modul A32 gesendet. Von den beiden Ausgaben der Module A22 wird eine an das Modul A31 und die andere an das Modul A33 gesendet. Schließlich wird von den beiden Ausgaben des Moduls A23 eine an das Modul A32 und die andere an das Modul A33 gesendet.
  • Die Ausgabesignale der Module A31, A32 und A33 stellen die Bewilligungssignale dar, welche die Ergebnisse des Arbitrierungsvorgangs repräsentieren, und werden ihrer Bestimmung gemäß dem Initiator I1, dem Initiator I2 bzw. dem Initiator I3 zugewiesen.
  • Im Folgenden wird in der vorliegenden Beschreibung der erfindungsgemäße Arbitrierungsvorgang jedoch unter allgemeiner Bezugnahme auf das generische Vorhandensein von N Initiatoren bzw. anfragenden Einheiten beschrieben.
  • Stufe Nr. 1: Vergleich
  • Angenommen, es gibt N anfordernde Einheiten und der i-ten anfordernden Einheit ist die Priorität Pi zugeordnet (zum Beispiel ist P1 die Priorität für die anfordernde Einheit 1), werden die folgenden Operationen parallel durchgeführt.
    P1 >= P2 (erzeugt das Signal sel1not2, hoch, wenn das Ergebnis der Operation wahr ist)
    P1 >= P3 (erzeugt das Signal sel1not3)
    ...
    P1 >= Pn (erzeugt das Signal sel1notn)
    P2 >= P3 (erzeugt das Signal sel2not3)
    P2 >= P4 (erzeugt das Signal sel2not4)
    ...
    P2 >= P3 (erzeugt das Signal sel2notn)
    ...
    Pn-1 >= Pn (erzeugt das Signal sel1n-1notn)
  • Daher erzeugt allgemein ausgedrückt für jedes Paar anfordernder Einheiten, die allgemein als x und y bezeichnet sind, die Stufe A1 das Signal selxnoty mit einem hohen Pegel, wenn Px >= Py zutrifft.
  • Zum Beispiel:
    • 1. bei 2 anfordernden Einheiten: P1 >= P2 (1 Komparator)
    • 2. bei 3 anfordernden Einheiten: P1 >= P2, P1 >= P3, P2 >= P3 (2 Komparatoren)
    • 3. bei 4 anfordernden Einheiten: P1 >= P2, P1 >= P3, P1 >= P4, P2 >= P3, P2 >= P4, P3 >= P4 (6 Komparatoren)
    • 4. bei 6 anfordernden Einheiten: P1 >= P2, P1 >= P3, P1 >= P4, P1 >= P5, P1 >= P6, P2 >= P3, P2 >= P4, P2 >= P5, P2 >= P6, P3 >= P4, P3 >= P5, P3 >= P6, P4 >= P5, P4 >= P6, P5 >= P6 (insgesamt 15 Komparatoren)
    • 5. bei n anfordernden Einheiten: (insgesamt = 1 + 2 + 3 + 4 + ... n – 2 + n – 1, was mit y = n – 1 insgesamt bedeutet, dass es (y/2*(y + 1)) Komparatoren gibt.
  • Vorzugsweise werden alle Vergleiche gleichzeitig durchgeführt und hängt ihre Komplexität von der Prioritätsauswahl ab. Zum Beispiel kann bei einem HDTV-Decoder die Prioritätsauswahl von 0 bis 15 reichen.
  • Stufe Nr. 2: Überkreuz-Erzeugung von Anfragen
  • Diese Stufe verwendet die von den Initiatoren kommenden Anfragen und die von den Komparatoren der übergeordneten Stufe kommenden Ergebnisse, um so Zwischenparameter zu berechnen, die für die Erzeugung der Bewilligungen nützlich sind.
  • Insbesondere wird die folgende Funktion implementiert: req_arb (selxnoty, req_x, req_y, req_x_y, req_y_x), wobei req_x (bzw. req_y) die Anfrage ist, die vom Initiator x (bzw. y) kommt, während req_x_y und req_y_x die entsprechenden Ausgaben der folgenden Funktionen sind:
    req_x_y = req_y AND (selxnoty OR NOT req_y), and
    req_y_x = req_y AND (NOT selxnoty) OR (NOT req_x)).
  • In der Praxis entspricht req_arb einem Modul mit drei Eingaben (INPUTS) und zwei Ausgaben (OUTPUTS):
    req_arb (INPUTS: selxnoty, reqx, reqy
    OUTPUTS: reqx_y, reqy_x)
  • Hierdurch wird eine Arbitrierungsfunktion zwischen den Anfragenpaaren reqx, reqy durchgeführt (in dem in 3 gezeigten Beispiel: req1, req2 oder req1, req3 oder aber req2, req3), wobei das Ergebnis in einem One-Hot-Coding-Verfahren codiert wird, d.h. es gibt n Ergebnisse, die unter der Verwendung von n binären Zahlen darstellbar sind, im vorliegenden Fall 01 bzw. 10.
  • Das Ergebnis einer solchen Operation hängt von den folgenden Faktoren ab:
    • i) Priorität von reqx bezüglich reqy: reqx hat dabei eine höhere Priorität als reqy, wenn selxnoty auf einem hohen logischen Pegel ist, und umgekehrt, wenn es bei einem niedrigen logischen Pegel ist;
    • ii) Anwesenheit der Anfragen: Die Entscheidung wird beeinflusst durch die tatsächliche Anwesenheit von Anfragen; es könnte nämlich in der Situation, in der selxnoty auf einem hohen logischen Pegel ist, reqy bedient werden (wobei das nur ein Zwischenergebnis wäre), wenn kein reqx vorliegt.
  • Daraus folgt:
    • – Die Ausgabe reqx_y ist dann auf einem hohen logischen Pegel (reqx wird mit Sicherheit gegenüber reqy bevorzugt), wenn das Signal reqx auf einem hohen logischen Pegel ist (Anwesenheit der Anfrage) und wenn gleichzeitig reqx eine höhere Priorität als reqy hat (selxnoty auf einem hohen logischen Pegel ist) oder wenn reqy auf einem niedrigen logischen Pegel ist (Abwesenheit einer Anfrage);
    • – Die Ausgabe reqy_x ist dann auf einem hohen logischen Pegel (reqy wird mit Sicherheit gegenüber reqx bevorzugt), wenn das Signal reqy auf einem hohen logischen Pegel ist (Anwesenheit der Anfrage) und gleichzeitig, wenn reqy die höhere Priorität als reqx hat (selxnoty auf einem niedrigen logischen Pegel ist) oder wenn reqx auf einem niedrigen logischen Pegel ist (Abwesenheit einer Anfrage).
  • Insgesamt werden y/2*(y + 1) req_arb-Module benötigt.
  • Stufe Nr. 3: Überkreuz-Erzeugung von Bewilligungen
  • Nachdem die Anfragen umgeordnet wurden, besteht die abschließende Operation aus der Erzeugung der Bewilligungen (Grants).
  • Für jede i-te anfordernde Einheit wird die Bewilligung grant_i einfach dadurch erhalten, dass unter allen Signalen req_i_x die logische UND-Operation (AND) durchgeführt wird, mit x von 1 bis N, wobei der Fall von x = i ausgeschlossen ist.
  • Beispiele:
  • a) 3 anfordernde Einheiten
  • Stufe 1:
  • Parallele Berechnung von
    P1 >= P2, P1 >= P3, P2 >= P3
  • Stufe 2:
  • Parallele Berechnung von
    req_arb (P1 >= P2, req1, req2, req1_2, req2_1)
    req_arb (P1 >= P3, req1, req3, req1_3, req3_1)
    req_arb (P2 >= P3, req2, req3, req2_3, req3_2)
  • Stufe 3:
    • grant1 = req1_2 AND req1_3
    • grant2 = req2_1 AND req2_3
    • grant3 = req3_1 AND req3_2
  • b) 4 anfordernde Einheiten
  • Stufe 1:
  • Parallele Berechnung von
    P1 >= P2, P1 >= P3, P1 >= P4, P2 >= P3, P2 >= P4, P3 >= P4
  • Stufe 2:
  • Parallele Berechnung von
    req_arb (P1 >= P2, req1, req2, req1_2, req2_1)
    req_arb (P1 >= P3, req1, req3, req1_3, req3_1)
    req_arb (P1 >= P4, req1, req4, req1_4, req4_1)
    req_arb (P2 >= P3, req2, req3, req2_3, req3_2)
    req_arb (P2 >= P4, req2, req4, req2_4, req4_2)
    req_arb (P3 >= P4, req3, req4, req3_4, req4_3)
  • Stufe 3:
    • grant1 = req1_2 AND req1_3 AND req1_4
    • grant2 = req2_1 AND req2_3 AND req2_4
    • grant3 = req3_1 AND req3_2 AND req3_4
    • grant4 = req4_1 AND req4_2 AND req4_3
  • Zusammengefasst ermöglicht die erfindungsgemäße Lösung eine schnellere Ausführung des Arbitrierungsalgorithmus mit variabler Priorität. All dies in einer Situation, in der die Ausführungszeit gegenüber der Codierung der Priorität nicht sehr empfindlich ist. Außerdem wird die Ausführungszeit der Arbitrierung von der Anzahl von Initiatoren nicht stark beeinflusst. Die Implementierung ist modular, wobei die sie auszeichnenden Elemente (siehe Darstellung von 3) zum Implementieren von Arbitratoren mit einer generischen Anzahl n von Wahlmöglichkeiten repliziert werden können.
  • Zum Beispiel hat sich bei vom vorliegenden Anmelder durchgeführten Experimenten herausgestellt, dass im Falle eines eingebetteten Systems mit 9 Initiatoren in 0,25-Mikrometer-Technik die Erzeugungszeit der Bewilligungen gegenüber den Anfragen 3 Nanosekunden betrug.
  • Selbstverständlich können ohne Beeinträchtigung des Prinzips der vorliegenden Erfindung die Konstruktionseinzelheiten und die Ausführungsformen gegenüber dem hier Beschriebenen und Veranschaulichten weit abweichen, ohne dass dadurch vom Umfang der vorliegenden Erfindung abgewichen wird, wie er in den beiliegenden Ansprüchen definiert ist.

Claims (9)

  1. Verfahren zur Arbitrierung zwischen einer Anzahl von n Einheiten (I1, I2, ..., In), welche Zugriff auf mindestens eine Resource (T) durch Ausdrücken jeweiliger Anfragen (req_x) und jeweiliger Prioritäten (P1, P2, ..., Pn) ersuchen, wobei der Zugriff der Einheiten zu der mindestens einen Resource (T) gemäß Bewilligungen (grant1, grant2, ...) reguliert wird, welche mittels des Arbitrierungsverfahrens identifiziert werden, dadurch gekennzeichnet, daß es die folgenden Operationen aufweist: – Vergleichen der jeweiligen Prioritäten (P1, ..., Pn) miteinander, wobei für jedes Paar der Einheiten, welches im allgemeinen eine Einheit x und eine Einheit y mit zugehörigen Prioritäten Px und Py aufweist, ein Auswahlsignal (selxnoty) mit einem hohen Niveau, wenn das Ergebnis der Operation Px >= Py wahr ist; – Erzeugen zugehöriger Überkreuz-Anfrage-Signale für die Paare der Einheiten (I1, I2, ..., In) req_arb(selxnoty, req_x, req_y, req_x_y; req_y_x) wobei selxnoty das obengenannte Auswahlsignal ist; req_x das von der Einheit x kommende Anfragesignal ist; req_y das von der Einheit y kommende Anfragesignal ist; und req_x_y und req_y_x jeweils die Ausgabe der Funktion req_x UND (selxnoty ODER NICHT req_y) und der Funktion req_y UND ((NOT selxnoty) ODER (NICHT req_x)) ist; und – Erzeugen der Bewilligung für die i-te Einheit als ein logisches Produkt (UND) aller der vorgenannten Überkreuz-Anfrage-Signale req_i_x, mit x von 1 bis n, ausgenommen den Fall x = i.
  2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, daß die Operation des Vergleichs zwischen den jeweiligen Prioritäten für alle Paare der Einheiten parallel ausgeführt wird.
  3. Verfahren gemäß Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Überkreuz-Anfrage-Signale für alle Paare der Einheiten parallel erzeugt werden.
  4. System, aufweisend eine Anzahl von n Einheiten (I1, I2, ..., In), welche dazu ausgelegt sind, Zugriff auf mindestens eine Resource (T) durch Ausdrücken jeweiliger Anfragen (req_x) und jeweiliger Prioritäten (P1, P2, ..., Pn) zu ersuchen, wobei der Zugriff der Einheiten zu der mindestens einen Resource (T) gemäß Bewilligungen (grant1, grant2, ...) reguliert wird, welche von einem Arbitrierer (A) erzeugt werden, dadurch gekennzeichnet, daß der Arbitrierer (A) folgendes aufweist: – eine erste, Vergleich-Stufe (A1) zum Vergleichen der jeweiligen Prioritäten (P1, ..., Pn) miteinander, wobei für jedes Paar der Einheiten, welches im allgemeinen eine Einheit x und eine Einheit y mit zugehörigen Prioritäten Px und Py aufweist, ein Auswahlsignal (selxnoty) mit einem hohen Niveau erzeugt wird, wenn das Ergebnis der Operation Px >= Py wahr ist; – eine zweite, Überkreuz-Anfrage-Erzeugungs-Stufe (A2) zum Erzeugen zugehöriger Überkreuz-Anfrage-Signale für die Paare der Einheiten (I1, I2, ..., In) req_arb(selxnoty, req_x, req_y, req_x_y, req_y_x) wobei selxnoty das obengenannte Auswahlsignal ist; req_x das von der Einheit x kommende Anfragesignal ist; req_y das von der Einheit y kommende Anfragesignal ist; und req_x_y und req_y_x jeweils die Ausgabe der Funktion req_x UND (selxnoty ODER NICHT req_y) und der Funktion req_y UND ((NOT selxnoty) ODER (NICHT req_x)) ist; und – eine dritte, Bewilligung-Erzeugungs-Stufe (A3) zum Erzeugen der Bewilligung für die i-te Einheit als ein logisches Produkt (UND) aller der vorgenannten Überkreuz-Anfrage-Signale req_i_x, mit x von 1 bis n, ausgenommen den Fall x = i.
  5. System gemäß Anspruch 4, dadurch gekennzeichnet, daß die erste Stufe (A1) dafür konfiguriert ist, die Operation des Vergleichs zwischen den jeweiligen Prioritäten für alle Paare der Einheiten parallel durchzuführen.
  6. System gemäß Anspruch 4 oder Anspruch 5, dadurch gekennzeichnet, daß die zweite Stufe (A2) dafür konfiguriert ist, die Überkreuz-Anfrage-Signale für alle Paare der Einheiten parallel zu erzeugen.
  7. System gemäß einem der Ansprüche 4–6, dadurch gekennzeichnet, daß die mindestens eine Resource (T) aus einem Bus besteht.
  8. System gemäß einem der Ansprüche 4–7, dadurch gekennzeichnet, daß die Einheiten der Anzahl (I1, I2, ..., In) dafür konfiguriert sind, einen Datenaustausch mit der Resource selbst als Transaktion zu der mindestens einen Resource (T) auszuführen.
  9. System gemäß einem der Ansprüche 4–8, dadurch gekennzeichnet, daß das System ein System vom Typ eingebettetes System (Embedded System) ist.
DE60024421T 2000-06-16 2000-06-16 Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System Expired - Lifetime DE60024421T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP00830424A EP1164493B1 (de) 2000-06-16 2000-06-16 Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbussen, und entsprechendes System

Publications (2)

Publication Number Publication Date
DE60024421D1 DE60024421D1 (de) 2006-01-05
DE60024421T2 true DE60024421T2 (de) 2006-08-03

Family

ID=8175369

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60024421T Expired - Lifetime DE60024421T2 (de) 2000-06-16 2000-06-16 Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System

Country Status (3)

Country Link
US (1) US6633939B2 (de)
EP (1) EP1164493B1 (de)
DE (1) DE60024421T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
TWI296084B (en) * 2004-11-30 2008-04-21 Realtek Semiconductor Corp Bus arbiter, bus device, and bus arbitrating method
US20060123003A1 (en) * 2004-12-08 2006-06-08 International Business Machines Corporation Method, system and program for enabling non-self actuated database transactions to lock onto a database component
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7752627B2 (en) 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7681014B2 (en) 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7657883B2 (en) * 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7506140B2 (en) * 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7490230B2 (en) 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
JP4839155B2 (ja) * 2006-08-31 2011-12-21 富士通セミコンダクター株式会社 アクセス調停装置およびアクセス調停方法
US7773621B2 (en) 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7990989B2 (en) * 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US7961745B2 (en) 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
WO2012145416A1 (en) * 2011-04-20 2012-10-26 Marvell World Trade Ltd. Variable length arbitration

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68924876T2 (de) * 1988-07-12 1996-04-25 Sony Corp Integrierte Halbleiterschaltungen.
DE69224427T2 (de) * 1991-12-04 1998-08-13 Koninkl Philips Electronics Nv Arbiter mit einem unter Prioritätskonfliktskontrolle veränderlichen direkten Signal
US5535395A (en) * 1992-10-02 1996-07-09 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems
US5862353A (en) * 1997-03-25 1999-01-19 International Business Machines Corporation Systems and methods for dynamically controlling a bus
US6519666B1 (en) * 1999-10-05 2003-02-11 International Business Machines Corporation Arbitration scheme for optimal performance

Also Published As

Publication number Publication date
EP1164493A1 (de) 2001-12-19
US6633939B2 (en) 2003-10-14
EP1164493B1 (de) 2005-11-30
US20020032819A1 (en) 2002-03-14
DE60024421D1 (de) 2006-01-05

Similar Documents

Publication Publication Date Title
DE60024421T2 (de) Arbitrierungsverfahren mit variablen Prioritäten, zum Beispiel für Verbindungsbusse, und entsprechendes System
DE3224034C2 (de)
DE102008034500B4 (de) Arbitrierung
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE3883192T2 (de) Neuronale Netzwerkschaltung und -struktur.
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE3300263C2 (de)
DE69028017T2 (de) Arbitrierungssystem mit Beschränkung der aufeinanderfolgenden Zugriffsberechtigungen von Hochprioritätsanforderungen
DE3882772T2 (de) Vektorprozessor angepasst zum Sortieren von Vektordaten.
DE3535436C2 (de)
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE3852261T2 (de) Prioritätszugriffssteuerungssystem zum Hauptspeicher für Rechner.
DE4210109C2 (de) Sortiervorrichtung zum Sortieren von Daten und Sortierverfahren
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE4328909A1 (de) Informationsverarbeitungssystem mit einer Mehrzahl von Prozessoren
DE3789914T2 (de) Vorrichtung zur Bestimmung der Prioritätsordnung.
DE60209761T2 (de) Anschluss mehrerer prozessoren auf externen speicher mit burst mode
DE3105115A1 (de) Datenverarbeitungssystem mit bezueglich einer schluesselspeicherung ringfoermig angeschlossenen mulitprozessoren
DE68926382T2 (de) Steuerungssystem für Übertragungsbefehle zwischen zentralen Verarbeitungseinheiten
DE69029792T2 (de) Verteiltes, unparteiisches Arbitrierungsschema für Zugriff auf einen Datenübertragungsbus
DE69127782T2 (de) Speicherzugriffssteuerung mit gemeinsam genutzter Pipelinestruktur
DE4206112C2 (de) Mustererkennungsvorrichtung zum Erkennen eines Eingangsmusters anhand mehrerer Referenzmuster
EP0506988B1 (de) Verfahren zur Busarbitration eines Multimastersystems
DE60109699T2 (de) Gerät und Verfahren zum Signalgruppenaustausch zwischen mehreren Teilen in einer Einrichtung zur digitalen Signalverarbeitung der eine Direktspeicherzugriffssteuerung enthält

Legal Events

Date Code Title Description
8364 No opposition during term of opposition