DE102014003435B4 - System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung - Google Patents

System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung Download PDF

Info

Publication number
DE102014003435B4
DE102014003435B4 DE102014003435.6A DE102014003435A DE102014003435B4 DE 102014003435 B4 DE102014003435 B4 DE 102014003435B4 DE 102014003435 A DE102014003435 A DE 102014003435A DE 102014003435 B4 DE102014003435 B4 DE 102014003435B4
Authority
DE
Germany
Prior art keywords
arbitration
request
selection unit
interconnection
arbitration packet
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.)
Active
Application number
DE102014003435.6A
Other languages
English (en)
Other versions
DE102014003435A1 (de
Inventor
Jason Rupert Redgrave
Steven John Clohset
Joseph M. Richards
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.)
Imagination Technologies Ltd
Original Assignee
Imagination Technologies Ltd
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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of DE102014003435A1 publication Critical patent/DE102014003435A1/de
Application granted granted Critical
Publication of DE102014003435B4 publication Critical patent/DE102014003435B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports

Abstract

Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung, umfassend:Empfangen von einer oder mehreren Datenübertragungsanfragen über die Zeit, wobei jede einen Eingabeanschluss von n Eingabeanschlüssen und einen Ausgabeanschluss von m Ausgabeanschlüssen in einer Zwischenverbindung anzeigt, durch die die Anfrage durchgeführt wird;Puffern jeder der Anfragen;Zuteilen jeweils eines leeren Arbitrierungspakets für eine entsprechende Auswahleinheit, die jedem der Eingabeanschlüsse zugeteilt ist, wobei jedes Arbitrierungspaket einen Standort für jeden der m Ausgabeanschlüsse aufweist;in jeder der Auswahleinheiten Auswählen von wenigstens einer gepufferten Anfrage und Platzieren jeder ausgewählten Anfrage im Arbitrierungspaket in dieser Auswahleinheit am Standort für den Ausgabeanschluss, der von der ausgewählten Anfrage angezeigt wird;Weiterleiten der Arbitrierungspakete zwischen den Auswahleinheiten, bis jede Auswahleinheit jedes Arbitrierungspaket empfangen hat, und während jede Auswahleinheit jedes Arbitrierungspaket hat, Versuchen, wenigstens eine Anfrage in einem bleibenden Standort in diesem Arbitrierungspaket zu platzieren; undPlanen der Erfüllung der Anfragen unter Verwendung der Zwischenverbindung gemäß der Platzierung der Anfragen in den Arbitrierungspaketen.

Description

  • HINTERGRUND
  • Gebiet:
  • Das Nachstehende betrifft das Arbitrieren beim Einsatz einer Daten-Zwischenverbindung und in einem bestimmten Aspekt ein Arbitrieren des Zugangs zu Speichern bei verteilter Berechnung.
  • Stand der Technik:
  • Eine Datenvermittlungsstelle (Datenswitch) kann mehrere Eingabeanschlüsse und mehrere Ausgabeanschlüsse aufweisen. Beispiele bekannter Datenvermittlungsstellen sind in den Schriften US 7,796,629 B1 , EP 0 981 878 B1 , US 2004/0062238 A1 , US 8,289,989 B1 sowie US 2002/0150056 A1 dargelegt. Die Vermittlungsstelle dient dazu, Eingaben an den Eingabeanschlüssen zu empfangen und einen dazugehörigen Ausgabeanschluss zu bestimmen, an den jede Eingabe zu senden ist. In einigen Fällen kann jeder Eingabeanschluss Eingaben empfangen, die an einen der Ausgabeanschlüsse zu senden sein können. Eingaben können asynchron an die Eingabeanschlüsse gesendet werden, sodass es mehrere Eingaben geben kann, die an denselben Ausgabeanschluss geleitet werden müssen; Systemeinschränkungen verhindern, dass all diese Eingaben gleichzeitig an denselben Ausgabeanschluss gesendet werden, was zu einem Konflikt führt. Das Arbitrieren von diesen miteinander konkurrierenden Einträgen dient dazu, eine relative Reihung zu bestimmen, gemäß derer miteinander konkurrierende Datenübertragungen bereitgestellt werden.
  • Die Aufgabe der Erfindung besteht darin, ein Verfahren zum Arbitrieren von mehreren Eingaben, die an denselben Ausgabeanschluss geleitet werden müssen, einen entsprechenden Arbiter und ein Berechnungssystem mit einem solchen Arbiter bereitzustellen. Diese Aufgabe wird gelöst durch ein Verfahren zum Arbitrieren mit den Merkmalen des Anspruchs 1 einen Arbiter gemäß Anspruch 13 und ein Berechnungssystem gemäß Anspruch 19.
  • In einem Aspekt umfasst ein Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung ein Empfangen von einer oder mehreren Datenübertragungsanfragen über die Zeit, an irgendeinem von n Eingabeanschlüssen und wobei jede einen dazugehörigen Ausgabeanschluss von m Ausgabeanschlüssen angibt, über die die Anfrage bereitgestellt wird. Jede der Anfragen kann gepuffert werden. Das Verfahren weist einer Auswahleinheit (engl. picker), die je einem der Eingabeanschlüsse zugewiesen ist, ein dazugehöriges leeres Arbitrierungspaket zu. Jedes Arbitrierungspaket weist einen Standort für jeden der m Ausgabeanschlüsse auf. In jeder der Auswahleinheiten wird wenigstens eine gepufferte Anfrage ausgewählt und in dem Arbitrierungspaket jener Auswahleinheit am Standort für den Ausgabeanschluss platziert, für den jede ausgewählte Anfrage bestimmt ist. Die Arbitrierungspakete werden unter den Auswahleinheiten weitergeleitet, bis jede Auswahleinheit jedes Arbitrierungspaket empfangen hat, und während jede Auswahleinheit jedes Arbitrierungspaket empfängt, versucht die Auswahleinheit, wenigstens eine Anfrage in einem bleibenden Standort in diesem Arbitrierungspaket zu platzieren. Die abgeschlossenen Arbitrierungspakete werden angewandt, um die Erfüllung der Anfragen unter Verwendung der Zwischenverbindung zu planen.
  • Ein weiterer Aspekt betrifft einen Arbiter für den Zugang zu einer Zwischenverbindung von n Eingabeanschlüssen und m Ausgabeanschlüssen, die einen Puffer aufweist, der ansteuerbar ist, um Datenelemente zu speichern, die an einem der n Eingabeanschlüsse empfangen wurden. Der Arbiter weist ferner eine Mehrzahl von Auswahleinheiten auf. Jede der Auswahleinheiten ist angeschlossen, um ein Arbitrierungspaket von einer anderen Auswahleinheit zu empfangen. Das Arbitrierungspaket umfasst einen Standort für jeden der m Ausgabeanschlüsse. Jede Auswahleinheit versucht, wenigstens einen leeren Standort im empfangenen Arbitrierungspaket zu füllen, wobei irgendeine der Auswahleinheiten einen leeren Standort im empfangenen Arbitrierungspaket füllen kann, und das Arbitrierungspaket an eine andere Auswahleinheit weiterzuleiten. Die Vielzahl an Auswahleinheiten stellt die n Arbitrierungspakete zeitgleich fertig. In einem Ansatz weist jeder der m Ausgabeanschlüsse einen dazugehörigen Umordnungspuffer für jeden der m Ausgabeanschlüsse auf, die ansteuerbar sind, um die Einträge in die n Arbitrierungspakete für diesen Ausgabeanschluss zu empfangen und eine First-In-First-Out-Reihenfolge für Einträge durchzusetzen, die von demselben Eingabeanschluss stammen.
  • Ein weiterer Aspekt betrifft ein Berechnungssystem mit einer Zwischenverbindung, die eine Gruppe von Anschlüssen aufweist, und einer Steuereinheit, die ansteuerbar ist, um die Zwischenverbindung zu konfigurieren, sodass Datenübertragungen zwischen angegebenen Kombinationen der Anschlüsse erfolgen können. Die Steuereinheit ist ansteuerbar, um eine Sequenz von Gruppen von Zwischenverbindungskonfigurationsdaten zu empfangen und die Zwischenverbindung für eine Sequenz von Datenübertragungszyklen gemäß den Gruppen von Zwischenverbindungskonfigurationsdaten zu konfigurieren. Jede Gruppe von Zwischenverbindungskonfigurationsdaten weist Angaben über Kombinationen von Anschlüssen auf, die zur Datenübertragung während eines Datenübertragungszyklus anzuschließen sind, wenn diese Gruppe von Zwischenverbindungskonfigurationsdaten zu verwenden ist. Der Arbiter weist Eingabeanschlüsse auf, an denen Anfragen nach Datenübertragungen auf der Zwischenverbindung empfangen werden. Der Arbiter weist außerdem eine Mehrzahl von Auswahleinheiten auf. Jede Auswahleinheit ist mit einem dazugehörigen Eingabeanschluss verbunden und kommuniziert mit einer vorhergehenden Auswahleinheit und einer darauffolgenden Auswahleinheit. Jede Auswahleinheit dient dazu, ein Arbitrierungspaket während eines Arbitrierungszyklus zu erhalten. Jedes Arbitrierungspaket umfasst eine vorbestimmte Anzahl von Schlitzen, die von Zwischenverbindungskonfigurationsdaten zu belegen sind. Jede Auswahleinheit belegt einen oder mehrere der Schlitze im Arbitrierungspaket mit Zwischenverbindungskonfigurationsdaten für eine oder mehrere der am Eingabeanschluss empfangenen Anfragen. Das Belegen umfasst das Identifizieren aller Schlitze, die bereits mit Zwischenverbindungskonfigurationsdaten belegt sind und jegliche Anfragen, die eine Kombination von Zwischenverbindungsanschlüssen, die mit von den belegten Schlitzen spezifizierten Kombinationen von Zwischenverbindungsanschlüssen konkurrieren, erfordern, auszuschließen. Jede Auswahleinheit überträgt das Arbitrierungspaket an die darauffolgende Auswahleinheit, bis jede Auswahleinheit jedes Arbitrierungspaket wenigstens einmal empfangen hat. Auf diese Weise empfängt jede Auswahleinheit ein Arbitrierungspaket von der vorhergehenden Auswahleinheit und wiederholt das Belegen mit dem empfangenen Arbitrierungspaket.
  • Figurenliste
    • 1 zeigt einen beispielhaften Systemkontext, in dem ein Arbiter arbeiten kann, um ein Zwischenverbindungselement zu planen;
    • 2 zeigt Aspekte eines beispielhaften Arbiters;
    • 3 zeigt Aspekte eines beispielhaften Eingabeanschlusses;
    • 4 zeigt ein Beispiel für Arbitrierung zur Verwendung des Zwischenverbindungselements;
    • 5 zeigt eine Pro-Ausgabewarteschlangen-Reihung der Arbitrierung im Beispiel von 4;
    • 6 zeigt ein Umordnen von Einträgen von Ausgabewarteschlangen, um dieselbe relative Reihenfolge von Datenübertragungsanfragen durch einen Eingabeanschluss beizubehalten;
    • 7 zeigt ein Verschieben von Blasen aus führenden Positionen in Ausgabewarteschlangen;
    • 8 zeigt ein Flussdiagram eines beispielhaften Arbitrierungsprozesses;
    • 9 zeigt einen weiteren beispielhaften Arbitrierungsprozess;
    • 10 und 11 zeigen Aspekte in Verbindung mit einer weiteren beispielhaften Umsetzung der Eingabeanschlüsse;
    • 12 zeigt einen beispielhaften Arbitrierungsprozess, der mit Eingabeanschlüssen gemäß 10 und 11 verwendet werden kann; und
    • 13 und 14 zeigen beispielhafte Ansätze zur Auswahl von Zwischenverbindungsanfragen zum Platzieren, von Zwischenverbindungsanfragen, die im in 10 und 11 gezeigten Eingabeanschlusspuffer verfügbar sind.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt ein beispielhaftes System 2 , in dem ein Arbiter 5 den Zugang zu einer Zwischenverbindung 6 arbitriert, die verschiedene Eingabeanschlüsse 3 mit verschiedenen Ausgabeanschlüsse 4 selektiv verbindet. In dem Beispiel kann das Zwischenverbindungselement 6 für jeden Übertragungszyklus jeden einzelnen Eingabeanschluss mit jedem einzelnen Ausgabeanschluss verbinden. Benötigen zwei Eingabeanschlüsse denselben Ausgabeanschluss, entsteht ein Konflikt, der Arbitrierung erfordert.
  • Verschiedene Arten von Bauteilen können mit Eingabeanschlüssen 3 und mit Ausgabeanschlüssen 4 verbunden sein, und in einem beispielhaften System 2 sind Berechnungseinheiten 7 und 8 , ein Datenmaster 9 und eine Verbindung 10 mit den Eingabeanschlüssen 3 verbunden, und Speicher 11a - 11d sind mit den Ausgabeanschlüssen 4 verbunden. Ein Datenmaster 9 stellt eine Situation dar, in der ein Datenmaster Speicher einrichten kann, sodass Berechnungseinheiten unter Verwendung der Daten, die in Speichern 11a - 11d durch den Datenmaster 9 angeordnet worden sind, Berechnungen anstellen können. Eine Verbindung 10 kann verwendet werden, um mit einem weiteren eingerichteten Arbiter/Zwischenverbindungselement zu verbinden, um eine längere Zwischenverbindung zu erzeugen. Einige Anwendungen der Offenbarungen können Berechnungseinheiten aufweisen, die nur an die Eingabeanschlüsse 3 angeschlossen sind. In manchen Situationen kann der Datenmaster 9 durch eine Berechnungseinheit, die ein Programm ausführt, oder durch eine Schaltung umgesetzt sein. Jeder gezeigte Eingabe- und Ausgabeanschluss kann durch eine oder mehrere Bahnen oder Zwischenverbindungspunkte umgesetzt sein. Auch Eingabeanschlüsse 3 und Ausgabeanschlüsse 4 können als separate Steuerung und Datenpfad umgesetzt sein, wobei die Steuerung primär auf den Arbiter 5 ausgerichtet und der Datenpfad auf das Zwischenverbindungselement 6 ausgerichtet ist. Der Steuerpfad selbst überträgt Daten, die Anfragen zur Verwendung oder Reservierung eines Zwischenverbindungselements 6 für eine bestimmte Gruppe von Anschlüssen darstellen, während der Datenpfad verwendet wird, um die Daten weiterzuleiten, die über die Zwischenverbindung bewegt werden. In einigen Beispielen kann ein einzelner kombinierter Datenpfad sowohl eine Steuerung als auch Datenelemente umfassen.
  • Ein Zwischenverbindungselement 6 kann eine Speichersteuereinheit umfasst, die dazu dient, spezifizierte Informationen zu empfangen, um verschiedene Speicheranfragen einzurichten. Die von der Speichersteuereinheit benötigten Informationen werden von den Programmen oder von dem Schaltkreis bereitgestellt, die/der Anfragen zur Verwendung des Zwischenverbindungselements 6 für die Datenübertragung erzeugt/erzeugen. Verschiedene Speichersteuereinheiten können verschiedene Informationen verwenden und unterstützen verschiedene Fähigkeiten. Daher würden die Informationen, die an den Eingabeanschlüssen eingehen, in diesen unterschiedlichen Umsetzungen voneinander abweichen.
  • Die Kennzeichnung bestimmter Anschlüsse als Eingaben und anderer Anschlüsse als Ausgaben bedeutet nicht zwangsläufig eine Begrenzung auf eine Richtung des Datenverkehrs durch die Zwischenverbindung 6 . Zum Beispiel können Daten von Speichern 11a - 11d an jeden der Eingabeanschlüsse 3 übertragen werden und umgekehrt, je nach Datenübertragungsanfrage. Die Arbitrierung bestimmt somit, welche Datenanschlüsse zur Datenübertragung bei jeder Datenübertragungsgelegenheit anzuschließen sind. Eine weitere Beschreibung sowie Beispiele für den Betrieb eines Arbiters 5 sind nachstehend bereitgestellt.
  • 2 zeigt einen Arbiter 5 mit mehreren Eingabebahnen für jeden Eingabeanschluss von Eingabeanschlüssen 3 (14ab, 15ab, und 16ab sind speziell identifiziert). Jede Eingabebahn 14ab - 16ab ist mit einem dazugehörigen FIFO-Puffer 20ab - 22ab verbunden. Eine dazugehörige Auswahleinheit 30 - 32 ist mit den Eingabebahnen für einen der Eingabeanschlüsse verbunden. Zum Beispiel ist die Auswahleinheit 30 mit FIFOs 20ab für Eingabebahnen 14ab verbunden. Ein Datenpfad 35 ist mit Auswahleinheiten 30 - 32 , Zwischenverbindungsauswahleinheiten 30 - 32 verbunden, sodass Auswahleinheiten 30 - 32 zwischenverbunden sind. In einem Ansatz sind beispielsweise Auswahleinheiten 30 - 32 in einem Ring miteinander verbunden, wobei eine Auswahleinheit 32 mit einer vorhergehenden Auswahleinheit und mit einer Auswahleinheit 30 verbunden sind.
  • Jede Auswahleinheit ist ansteuerbar, um ein Arbitrierungspaket von einer Auswahleinheit zu empfangen und ein Arbitrierungspaket an eine darauffolgende Auswahleinheit zu senden. In einem Beispiel arbeiten Auswahleinheiten 30 - 32 , um Arbitrierungspakete gleichzeitig untereinander weiterzuleiten. Jede Auswahleinheit kann ein Register umfassen, das das Arbitrierungspaket für einen Arbitrierungsschritt speichert, wobei ein Datenpfad 35 Register verschiedener Auswahleinheiten miteinander verbindet. Wenn die Register getaktet sind, wird das Arbitrierungspaket im Register für jede Auswahleinheit an die nächste Auswahleinheit gesendet.
  • Ein Datenpfad 35 kann auch eine Zwischenverbindung verwenden, die Teile der Arbitrierungspakete selektiv an den Ausgabepuffer überträgt, zu dem jeder Teil gehört. Insbesondere können Arbitrierungspakete Daten umfassen, die die Übertragung betreffen, die von jeder in diesem Arbitrierungspaket vertretenen Anfrage spezifiziert ist, beispielsweise die spezifische Quellen- und/oder Empfängeradresse zum Ablesen/Überschreiben von Speichern. In einem Beispiel empfängt somit der Ausgabepuffer eine Speicheradresse oder einen Zeiger, die/der einen Standort angibt, von dem Daten abzulesen sind oder in dem Daten zu speichern sind.
  • In einem weiteren Beispiel umfasst das Arbitrierungspaket ein Einzelbit für jeden Ausgabeanschluss. Jede Auswahleinheit legt ein Bit für jeden Ausgabeanschluss fest, den es in jedem Arbitrierungspaket (zwei im Beispiel von 4) reserviert. Beim Platzieren jeder Anfrage in einem Paket werden die Besonderheiten dieser Anfrage an den FIFO übertragen, der für die an dieser Anfrage beteiligte Ausgangswarteschleife gefüllt wird. In diesem Ansatz werden somit Besonderheiten der Datenübertragung nicht im Arbitrierungspaket dargestellt, sondern vielmehr direkt an geeignete FIFOs der Ausgangswarteschleifen übertragen.
  • Der Datenpfad 35 arbeitet weiters, um Inhalte von Arbitrierungspaketen für Ausgabepuffer 50ab - 53ab bereitzustellen. In einem Ansatz werden jedem Ausgabeanschluss 45 - 48 zwei Ausgabepuffern zugeordnet. Ein Ausgabepuffer wird ausgelesen, während der andere Ausgabepuffer gefüllt wird, wie nachstehend beschrieben wird. Die Anzahl an Eingabe- und Ausgabeanschlüssen, die Anzahl von Bahnen pro Eingabeanschluss, und die Anzahl von Auswahleinheiten, die die Eingabeanschlüsse versorgen, können in Umsetzungen gemäß der Offenbarung variieren.
  • 2 zeigt, dass ein Arbiter 5 auch einen Seitenlader 37 und einen Überlaufpuffer 38 umfassen kann, die im Datenpfad 35 gezeigt sind. In einigen Umsetzungen können, wie im Arbitrierungsbeispiel von 4 beschrieben wird, die Auswahleinheiten 30 - 32 nicht in der Lage sein, alle Arbitrierungspakete zu jedem Zeitpunkt zu füllen, was hin und wieder Null-Einträge („Blasen“) zur Folge hat. In einem Ansatz kann ein Seitenlader 37 detektieren, wenn ein Arbitrierungspaket vollständig ist, aber noch einen leeren Standort aufweist, und dann versuchen, diesen leeren Standort mit einem Eintrag vom Puffer 38 zu füllen. Ein Puffer 38 kann Datenverkehrsanfragen mit niedrigerer Priorität speichern, oder in Situationen, in denen jeder FIFO 20ab - 22ab eine begrenzte Anzahl an Positionen aufweist, den Überlauf von einem der FIFOs 20ab - 22ab empfangen. Ein Seitenlader 37 kann ähnlich wie eine Auswahleinheit vorgehen, indem er versucht, einen Standort im Arbitrierungspaket zu ermitteln, der gefüllt werden kann, nimmt jedoch nicht als Partner an den Arbitrierungszyklen teil.
  • 2 zeigt, dass jeder Eingabeanschluss zwei Eingabebahnen umfasst, die von einer einzigen Auswahleinheit versorgt werden, wobei die Auswahleinheit in einem Arbitrierungsschritt einen Eintrag von jeder Bahn auswählen kann. Dieses Beispiel zeigt eine Designwahl, die ein Ausmaß der in einem bestimmten Schritt durchzuführenden Arbeit mit einem Ausmaß des in einer Umsetzung zu verwendenden Schaltkreises und Speichers ausgleicht.
  • 3 zeigt ferner Einzelheiten in Bezug auf eine Anordnung 19 für einen Eingabeanschluss, in dem mehrere Eingabebahnen Daten empfangen und diese empfangenen Daten in einem dazugehörigen Eingabe-FIFO speichern, der von einer Auswahleinheit versorgt wird. Insbesondere speichern Eingabebahnen 14a- 14b Daten jeweils in FIFOs 20a - 20b , die von der Auswahleinheit 30 versorgt werden. 3 zeigt ferner, dass jeder FIFO 20a - 20b Daten speichert, die Transaktionen darstellen, die die Verwendung eines Zwischenverbindungselements 6 erfordern. Transaktionen, die dieselben Kombinationen von Anschlüssen (oder einander überlappende Anschlüsse) erfordern, benötigen Arbitrierung.
  • 4 zeigt ein Beispiel dafür, wie die gezeigten Bauteile eines Arbiters 5 funktionieren. 4 wird auch verwendet, um ein spezifisches Beispiel des in 8 gezeigten Verfahrens zu veranschaulichen. Das Beispiel von 4 zeigt ein Beispiel, in dem 4 Eingabeanschlüsse mit jeweils 2 Eingabebahnen für den Zugang zu irgendeinem von acht Ausgabeanschlüssen arbitrieren (in 4, wird jeder Ausgabeanschluss als eine Bank, abgekürzt mit ,B' wie z. B. B0 für Bank 0, bezeichnet). Wie oben erwähnt werden die Eingabebahnen jedes Eingabeanschlusses von einer dazugehörigen Auswahleinheit versorgt. Ein Arbitrierungszyklus zwischen den 4 Eingabeanschlüssen umfasst 4 Schritte (T0-T4); jeder Schritt kann eine geeignete Zuteilung von Verarbeitungszeit sein, um die in diesem Schritt erforderlichen Aufgaben auszuführen, und bedeutet keine besondere Anforderung in Bezug auf eine absolute Zeitsteigerung. In dieser Offenbarung bezieht sich ein Arbitrierungszyklus auf die Erzeugung einer Gruppe von Arbitrierungspaketen, die verwendet werden können, um eine Zwischenverbindung in einer Anzahl an darauffolgenden Datenübertragungsschritten zu steuern. Im besonderen Beispiel von 4 ist ein Arbitrierungszyklus dann abgeschlossen, wenn jedes der vier Arbitrierungspakete für jede Auswahleinheit bei einer Gelegenheit, einen Eintrag in diesem Arbitrierungspaket zu platzieren, bereitgestellt wurde. Jedes Mal, dass die Arbitrierungspakete von einer Auswahleinheit an eine andere übertragen werden, kann als „Arbitrierungsschritt“ bezeichnet werden.
  • Um das Arbitrieren einzuleiten, wird pro Auswahleinheit bei T0 (202 in 8) ein dazugehöriges leeres, Arbitrierungspaket gestartet. In einer beispielhaften Umsetzung kann jede Auswahleinheit bis zu 2 Anfragen von seinen dazugehörigen FIFOs und in einem bestimmten Beispiel eine Anfrage von jedem FIFO platzieren. In einem Ansatz wird einem FIFO aus den FIFOs des Eingabeanschlusses oberste Priorität zugewiesen. Diese Priorität kann einer Rotation zwischen FIFOs unterliegen, sodass für einen darauffolgenden Arbitrierungszyklus der prioritäre FIFO ein anderer ist. In einem Beispiel versucht jede Auswahleinheit immer, den ersten Eintrag in jedem FIFO zu platzieren, der verfügbar ist, beginnend mit dem prioritären FIFO. Somit wird für leere Arbitrierungspakete bei T0 gewährleistet, dass jede Auswahleinheit aus der gegenwärtigen Prioritätswartschlange seinen Eintrag mit der höchsten Priorität platzieren kann und auch einen Eintrag von den anderen FIFOs zu platzieren (wenn welche verfügbar sind). In 8 werden diese Platzierungsentscheidungsvorgänge kollektiv als 204 bezeichnet. 4 zeigt, dass die Arbitrierungspakete 81 - 84 sind. Zur besseren Veranschaulichung ist jedes Arbitrierungspaket 81 - 84 in 8 Standorte unterteilt, von denen jeder einer Ausgabebank entspricht, wobei ,N' bedeutet, dass ein bestimmter Standort im Arbitrierungspaket leer ist und ,F' bedeutet, dass ein solcher Standort voll ist. 4 setzt nicht voraus, dass ein Arbitrierungspaket eine bestimmte Reihenfolge aufweisen muss (z. B. dass jede Ausgabebank eine vorbestimmte relative Position im Arbitrierungspaket einnehmen muss, da Bankidentifikatoren enthalten sein können, um Ausgabebanken zu identifizieren, die gefüllt worden sind). Bei 205 platziert jede Auswahleinheit die eine oder mehreren in 204 identifizierten Anfragen. Die Mechanismen, die an einer solchen Platzierung beteiligt sind, können in den verschiedenen Umsetzungen variieren, und zwei Beispiele sind hierin offenbart.
  • In 4 weisen die FIFOs für jede der Eingabewarteschlangen Anfragen auf, die für speziellee Ausgabebanken bestimmt sind (z. B. FIFO 0 von Anschluss 0 weist Anfragen B4, B6, B4, B4, B0 und B7 auf). 4 zeigt, welche Anfragen (204 Auswahl und 205 Platzieren, in 8) von jeder Auswahleinheit in jedem Zeitschritt direkt über dem Arbitrierungspaket in einem Zustand vor den Vorgängen der gegenwärtigen Auswahleinheit gefüllt werden. Betrachtet man zum Beispiel das Arbitrierungspaket 81 bei T0, ist das Arbitrierungspaket 81 bei der Ankunft leer. B4 und B3, die die ersten Einträge in jedem FIFO von Anschluss 0 sind, sind gefüllt. Somit ist der vierte und der fünfte Standort des Arbitrierungspaket 81 gefüllt. Auf ähnliche Weise ist das Arbitrierungspaket 82 für B0 und B1 gefüllt, sodass die Standorte 0 und 1 nach dem Vorgang von der Auswahleinheit für den Anschluss 1 gefüllt sind. Jede Auswahleinheit führt ihre Vorgänge im für sie bereitgestellten Arbitrierungspaket aus, die bei T0 alle leer sind. Solange jeder FIFO für jeden Eingabeanschluss einen Eintrag aufweist, platziert jede Auswahleinheit Einträge in zwei Standorte im leeren Arbitrierungspaket. Bei 206 in 8 wird das Arbitrierungspaket jeder Auswahleinheit an eine darauffolgende Auswahleinheit weitergeleitet, sodass das Arbitrierungspaket 81 sich nun beispielsweise an der Auswahleinheit für den Anschluss 1 befindet. Das Arbitrierungspaket am Anschluss 3 springt auf Anschluss 1. In 8 kann bei 208 überprüft werden, ob jede Auswahleinheit von einem bestimmten Arbitrierungspaket besucht wurde. Da dies hier nicht der Fall ist, kehrt das gezeigte Verfahren zu 204 zurück.
  • In 4 hat die Auswahleinheit für den Anschluss 0 nun das Arbitrierungspaket 84 , in dem die Standorte B7 und B6 (von der Auswahleinheit für Anschluss 3 im vorherigen Schritt) gefüllt worden sind. In einer Situation, in der die FIFO-Priorität in jedem Schritt umschaltet, hat nun der zweite FIFO für Anschluss 0 die Priorität beim Platzieren, und der erste Eintrag in diesen FIFO, der platziert werden kann, ist B1. Versucht FIFOO ihn zu platzieren, wird sich herausstellen, dass B6 gefüllt ist. In einer Ausführungsform wird nun rückwirkend FIFOO durchsucht, um den ersten Eintrag in FIFOO zu ermitteln, der platziert werden kann, nämlich den zweiten Eintrag, B4. Jede Auswahleinheit platziert zwei Einträge von ihren FIFOs während T1 (204 und 205 in 8) und leitet (206 in 8) wieder die Arbitrierungspakete 81 - 84 weiter. In T2 sind die ersten FIFOs (FIFOO) prioritär, und wie gezeigt platziert jede Auswahleinheit einen oder mehrere Einträge.
  • In 8 kann das Platzieren der Daten, die die Auswahleinheit darstellen, zwei Vorgänge umfassen (bei 205 in 8). Ein Vorgang besteht darin, ein Bit im Arbitrierungspaket, das dem ausgewählten Ausgabeanschluss zugeordnet ist, zu setzen, und der andere Vorgang besteht (in einem Beispiel) darin, an den FIFO zu senden, der für den ausgewählten Ausgabeanschluss gefüllt wird. Dieser Ansatz stellt eine Umsetzung dar, in der jedes Arbitrierungspaket pro Ausgabeanschluss ein Bit umfasst. Wird dieser Ausgabeanschluss in einem bestimmten Arbitrierungsschritt von einer Auswahleinheit ausgewählt, wird dieses Bit gesetzt. Das Arbitrierungspaket enthält jedoch keine Informationen in Bezug auf Einzelheiten der Transaktion. Vielmehr werden diese Informationen separat an einen dem Ausgabeanschluss zugeordneten Puffer gesendet. In einem Beispiel umfassen diese Informationen eine Speicheradresse, von der Informationen abzulesen oder zu schreiben sind, für die/von der aus der Ausgabeanschluss bestimmt ist oder versorgt wird. In dieser Umsetzung werden die Einzelheiten der Transaktionen nicht in Arbitrierungspaketen weitergeleitet, weshalb eine erforderliche Menge an Zwischenverbindungen und die Größe der die Arbitrierungspakete aufnehmenden Register verringert ist. Auch das Schaltsystem oder die Logik, den/die jede Auswahleinheit verlangt, wird verringert, da das Arbitrierungspaket mit einer Bitmaske maskiert werden kann, um jegliche ungefüllte Ausgabeanschlüsse bei minimaler Komplexität zu ermitteln.
  • Das Arbitrierungspaket 84 in Anschluss 1 zeigt, dass B0 vom FIFOO platziert werden kann, dass allerdings kein nicht konkurrierender Eintrag von FIFO1 platziert werden kann. Diese Situation deutet auf eine Einschränkung einer einfacheren Hardware-Umsetzung hin, in der zwei Einträge nicht von demselben FIFO platziert werden, in einer Situation, in der ein FIFO einen Eintrag nicht platzieren kann. Eine komplexere Umsetzung kann einer Auswahleinheit ermöglichen, eine vollständige Zuteilung von Einträgen von einem oder mehreren der FIFOs auszuwählen. Eine weitere Umsetzung kann bestimmen, ob einer der FIFOs einen Eintrag nicht platzieren kann, wenn der andere FIFO zuerst an der Reihe ist (d. h. es gibt nur einen nicht konkurrierenden Eintrag in einem der FIFOs, der mit dem Eintrag oberster Priorität im prioritären FIFO konkurriert), und das Platzieren entsprechend anpassen. In der oben genannten Situation könnte, wenn FIFO1 B0 im Arbitrierungspaket 84 in T2 platzieren dürfte, FIFOO B2 platzieren. Hier wird eine einfachere HW-Umsetzung gezeigt, sodass FIFO1 von Anschluss 1 nicht zwei Einträge im Arbitrierungspaket 84 in T2 platziert. Arbitrierungspakete 81 - 84 werden weiterhin gemäß diesen Beispielen gefüllt, wie in 4 gezeigt.
  • Finale Arbitrierungspakete sind in 4 unter 86 gezeigt. Alle Arbitrierungspakete enden in demselben Arbitrierungsschritt. in diesem Beispiel erfordert somit das Arbitrieren einen Schritt für jeden Eingabeanschluss (in dem jeder Eingabeanschluss einen Schritt erhält, um Einträge in jedem Arbitrierungspaket zu platzieren), und alle Auswahleinheiten arbeiten gleichzeitig. Die Größe jedes Arbitrierungspakets entspricht der Anzahl an Ausgaben. Somit zeigt das Beispiel von 4 eine Arbitrierung von 4 Eingaben (wobei jede Eingabe 2 FIFOs oder Bahnen aufweist) mal 8 Ausgaben.
  • Falls die Arbitrierungspakete Informationen über die platzierten Übertragungen umfassen, können die Arbitrierungspakete bei 210 zur Aufteilung zwischen den Pro-Bank-Ausgabe-FIFOs (ein solcher FIFO, wobei mehrere FIFOs pro Bank erhalten werden) weitergeleitet werden.
  • 5 zeigt die Arbitrierungspakete, die jeweils in einer Reihenfolge gemäß der Ausgabebank (Bank 0-7) ausgerichtet sind. In 5 weist die Schreibweise die Form „L#-#-T#“ auf. Diese Schreibweise steht für einen Eingabeanschluss, gefolgt von dem FIFO (entweder 0 oder 1), gefolgt von dem Zeitpunkt, in dem dieser Eintrag in diesem Arbitrierungspaket platziert worden ist. Zum Beispiel stammt im Arbitrierungspaket 81 der Bank-0-Eintrag von Bahn 2, FIFOO, in T2. Diese Schreibweise bedeutet nicht, dass solche Daten im FIFO selbst enthalten sind, sondern dient vielmehr dazu, verfolgen zu können, wie der Arbiter Anfragen im Beispiel von 4 platziert hat.
  • Diese Reihung zeigt, dass ein Nebeneffekt der Arbitrierung gemäß der obigen Offenbarung der ist, dass Einträge derselben Eingabe, die für denselben Ausgabeanschluss bestimmt sind, relativ zur Ordnung in den Eingabe-FIFOs umgeordnet werden können. Unter Berücksichtigung von Bank 0 zum Beispiel, wurde des Eintrag vom Arbitrierungspaket 83 in T3 platziert, doch der Eintrag vom Arbitrierungspaket 84 , das hinter dem Arbitrierungspaket 83 liegt, wurde in T2 platziert. In einem Ansatz kann daher ein Umordnen pro Ausgabeanschluss durchgeführt werden (212 in 8). Dieses Umordnen kann ohne Informationen von den benachbarten Ausgabeanschlüssen erfolgen und es muss dabei nur der interne Status jedes Ausgabeanschluss-FIFOs berücksichtigt werden. 6 zeigt umgeordnete Einträge 92 in Bank 0 und in Bank 1 in Reaktion auf das Ermitteln von ungeordneten Einträgen von demselben FIFO. Das Umordnen der Ausgabe-FIFOs kann auch streng basierend auf einem Auswahlzeitpunkt erfolgen anstatt eines Pro-Eingabeanschluss-Umordnens. Bei einem solchen Ansatz werden die Einträge im Ausgangs-FIFO ausschließlich gemäß der Auswahlzeit geordnet. 6 zeigt auch, dass ein NULL-Eintrag der erste Eintrag in Bank 1 ist. 7 zeigt, dass ein NULL-Eintrag an ein Ende des FIFO als Blase gestellt 93 werden kann; NULL-Einträge können auch einfach entfernt werden. Abhängig von der Umsetzung der FIFOs können die bleibenden Einträge für eine solche Entfernung einem neuen Standort zugeteilt werden oder nicht.
  • 9 zeigt einen weiteren Prozess, durch den ein Arbiter 5 ein Arbitrieren des Zugangs zu einem Zwischenverbindungselement 6 durchführen kann. Bei 280 ermittelt die Auswahleinheit leere Standorte in einem empfangenen Arbitrierungspaket (gefüllte Standorte ausgenommen). In einem Beispiel bedeutet dass, dass jedes Arbitrierungspaket einen Eintrag für jeden Ausgang unterstützt, obwohl Umsetzungen für eine andersartige Durchführung gebaut werden können. Zum Beispiel können verschiedene Ausgaben mit verschiedenen Geschwindigkeiten laufen und daher kann ein bestimmtes Arbitrierungspaket mehr Standorte für eine Ausgabe aufweisen als ein anderes. Eine Ausgabenkapazität kann dynamisch sein, und für solche Situationen verwendete Arbitrierungspakete können bei Bedarf auch dynamische Anpassungen umsetzen.
  • Bei 282 wird der erste Eintrag von einem FIFO oberster Priorität, der platziert werden kann, ermittelt (falls vorhanden). Bei 286 wird bestimmt, ob ein Eintrag von dem FIFO zweiter Priorität platziert werden kann. Falls ja, werden die Einträge vom FIFO oberster und dem zweiter Priorität in 288 platziert. Andernfalls wird bei 290 bestimmt, ob ein Konflikt zwischen einem alleinigen Eintrag des FIFO zweiter Priorität, der platziert werden kann, und dem ermittelten Eintrag des FIFOs oberster Priorität besteht. Falls ein solcher Konflikt besteht, so wird bei 294 ein weiterer Eintrag vom FIFO oberster Priorität, der platziert werden kann, gemeinsam mit dem Eintrag des FIFOs zweiter Priorität ermittelt. Bei 296 werden diese Einträge platziert. Bei 298 wird bestimmt, ob jede Auswahleinheit besucht wurde. Falls nicht, wird das Arbitrierungspaket an eine nächste Auswahleinheit weitergeleitet. Andernfalls kann bei 302 ein Umordnen der Einträge für jeden Ausgabe-FIFO erfolgen, wie oben beschrieben. Das Beispiel von 9 zeigt einen Ansatz, bei dem mehr beteiligte Intra-Anschluss-Konfliktlösung durchgeführt werden kann. Dieser Ansatz kann jedoch dazu führen, dass Einträge Eingabeanschlüsse aufgrund einer Ordnung verlassen, die allein durch Altern bestimmt wird, was für einige Anwendungen möglicherweise nicht wünschenswert ist. Außerdem kann die Hardware zur Umsetzung eines solchen Prozesses komplizierter sein.
  • Eine weitere Variation in Bezug auf das Verhalten der Auswahleinheit kann sein, dass die Auswahleinheit, die ein bestimmtes Arbitrierungspaket als letzte empfangen soll, versuchen kann, jegliche verbleibende Standorte im Arbitrierungspaket zu füllen. Dieser Ansatz kann auch eine erhöhte Komplexität der Hardware zur Folge haben, weil die Hardware in der Lage sein müsste, mehr Einträge im Segment des letzten Males platzieren müsste als in vorhergehenden Segmenten. Das Segment des letzten Males kann verlängert werden, um bis zu drei Auswahleinheiten zu ermöglichen, oder es kann mehr Auswahleinheits-Hardware bereitgestellt werden. Die Wahrscheinlichkeit vermehrter NULL-Einträge in einem bestimmten Arbitrierungspaket sinkt, weshalb es eine geringere Rückkehr zum Zulassen einer Zufallszahl an Platzierungen durch die letzte Auswahleinheit geben würde, wenn erhöhte Arbitrierungszeit oder zusätzliche Hardware erforderlich ist. Der Seitenlader 37 stellt ein Beispiel für einen alternativen Ansatz in Bezug auf diese Situation bereit.
  • 10 und 11 zeigen eine weitere Umsetzung für Eingabeanschlüsse gemäß der Offenbarung. 2 zeigt, dass jede Bahn jedes Eingabeanschlusses ein entsprechendes FIFO umfasste, das eine geordnete Gruppe von Anfragen für alle Ausgabeanschlüsse speicherte. 10 zeigt, dass jeder Eingabeanschluss stattdessen eine Speicherressource 375 aufweisen kann, die gesonderte Listen von Anfragen auf einer Pro-Ausgabeanschluss-Basis puffern kann. Insbesondere empfängt jede Eingabebahn 14a und 14b weiterhin eine Gruppe von Anfragen, die (in einem allgemeinen Fall) jeden Ausgabeanschluss identifizieren können; und Einträge 351 - 356 sind Beispiele dieser Situation, indem sie verschiedene Ausgabeanschlüsse ermitteln. Anstatt dass eine Auswahleinheit 30 die FIFOs rückwärts durchsuchen muss, um Einträge zu ermitteln, die platziert werden können, können die Einträge vorab geordnet werden. 11 zeigt, dass ein Speicherstandort im Speicher 375 Anfragen 351 - 354 speichert, von denen alle für den Ausgabeanschluss 45 stehen, während andere Anfragen andere Ausgabeanschlüsse benennen und daher in anderen Abschnitten des Speichers 375 gespeichert werden. Falls gewünscht, kann ein Mechanismus bereitgestellt werden, um eine bestimmte Reihenfolge des Platzierens von Einträgen im Speicher 375 durchzusetzen, wobei mehrere Einträge von verschiedenen Eingabebahnen für denselben Ausgabeanschluss (z. B. Eintrag 354 und 351) stehen. Eine beispielhafte Vorgangsweise bei der Umsetzung von 10 und 11 wird in Bezug auf 12 beschrieben.
  • 12 zeigt einen beispielhaften Prozess des Arbitrierens gemäß der Offenbarung, in dem jeder Eingabeanschluss Einträge gemäß einem Ausgabeanschluss vorab ordnet, der von der dazugehörigen Auswahleinheit für diesen Eingabeanschluss zu verwenden ist. Bei 402 wird eine Anfrage in einer Eingabebahn empfangen, die für einen Ausgabeanschluss steht. Bei 404 wird diese Anfrage in ein Vorratselement eingeordnet, das diesem Ausgabeanschluss zugeordnet ist. Während dieses Umordnens kann jede der Eingabebahnen weiterhin weitere Anfragen empfangen. Bei 406 kann eine Markierung, die anzeigt, dass eine Anfrage auf Arbitrierung wartet, für das Vorratselement eingestellt werden, in das die Anfrage eingeordnet wurde. Diese Handlung kann nur beim ersten Mal, dass eine Anfrage in ein bestimmtes Vorratselement eingeordnet wird oder nachdem das Vorratselement geleert wird, nachdem Anfragen in diesem Vorratselement arbitriert wurden, beeinträchtig werden oder eine sichtbare Veränderung erleben.
  • Bei 408 empfängt jede Auswahleinheit ein Arbitrierungspaket, in dem eine oder mehrere Anfragen zu platzieren sind, von den Vorratselementen. Bei 410 ermittelt jede Auswahleinheit offene Standorte in ihrem Arbitrierungspaket. Bei 412 wird beschlossen, ob mehr als zwei Anfragen für eine Platzierung verfügbar sind, und, falls ja, wird bei 416 ein Prozess des Auswählens von zwei Anfragen aus den verfügbaren Anfragen durchgeführt. Bei 418 werden diese ausgewählten Anfragen platziert. Andernfalls können bei 414 die zwei oder weniger Anfragen platziert werden. Das obige Beispiel basiert darauf, dass jede Auswahleinheit, falls möglich, bis zu zwei zu platzierende Anfragen auswählen kann. Umsetzungen können mehr oder weniger Anfragen an jede Auswahleinheit gestatten, und diese Anzahl würde entsprechend angepasst werden.
  • Es können verschiedene Prozesse oder sonstige Techniken verwendet werden, um die zu platzierenden Anfragen auszuwählen, wenn mehr Anfragen als Standorte (oder mehr als eine zugelassene Platzierungsgrenze) verfügbar sind. 13 und 14 stellen Beispiele für zwei solche Prozesse bereit. In 13 kann bei 420 auf Alterungszähler, die Anfragen in jedem Vorratselement zugeordnet sind, zugegriffen werden, und bei 422 können die zwei ältesten Einträge zum Platzieren ausgewählt werden. Alterungszähler können in einer Situation bereitgestellt werden, in der Puffern nicht auf eine Weise umgesetzt wird, bei der Einträge nach Alter sortiert bleiben. Bei 424 kann der Alterungszähler, der den bleibenden Einträgen zugeordnet ist, aktualisiert werden. Dieser Ansatz stellt eine Pro-Anfragen-Alterung bereit, was zu übermäßigem Aufwand für manche Umsetzungen führen kann. 14 zeigt ein Beispiel, in dem es Pro-Vorratselement-Zähler gibt. Bei 426 , wird auf Alterungszähler, die jedem Vorratselement zugeordnet sind, zugegriffen, und es werden die zwei Vorratselemente mit den ältesten Zählern ausgewählt. Nach der Auswahl werden bei 430 die Zähler in den ausgewählten Vorratselementen zurückgesetzt und die Zähler in den bleibenden Vorratselementen erhöht. Bei diesem Ansatz existiert ein Mechanismus zum Bewahren der „Fairness“ bei der Auswahl der Vorratselemente. Da jedes Vorratselement mehrere Einträge speichern kann, wären weniger Zähler erforderlich. Weitere Umsetzungen von Pro-Vorratselement-Alterung können eine Rundlauf-Auswahltechnik sein, bei der nur Vorratselemente, die eine zu arbitrierende Anfrage aufweisen, am Rundlauf teilnehmen. Es können Veränderungen der Rundlaufauswahl umgesetzt werden, um Situationen zu bewältigen, in denen manche Eingabeanschlüsse aktiver als andere sind, und so weiter.
  • Arbiters and von ihnen geplante Zwischenverbindungen können in einer Vielzahl von Situationen verwendet werden. Zum Beispiel können sie verwendet werden, um verteilte Speicher mit Datenelementen, bei denen vom Arbiter verwendete Steuerinformationen die Übertragung von Daten aus Quellen (z. B. einem Prozessor, siehe 1) planen, auf einen geeigneten Speicher zu laden. Eine Anwendung erfolgt beispielsweise im Bereich des verteilten Rechnens, wie etwa der verteilten Grafikbearbeitung. Verteilte Grafikbearbeitung kann Strahlverfolgung umfassen. Zum Beispiel können Strahlen verarbeitet werdend (z. B. können Strahlen zur Überschneidung mit Basiseinheiten einer 3-D-Szene verfolgt werden, von der ein Rendering erstellt wird). Der Arbiter kann Definitionsdaten für Strahlen empfangen, die unter den verteilten Speichern zu verteilen sind, wobei gegebenenfalls während des Strahlenüberschneidungstestens wiederholt auf sie zugegriffen werden kann. Weitere Anwendungen umfassen das Ablesen von Daten von verteilten Speichern. Die Anfragen in Bezug auf den Zugang zur Zwischenverbindung können daher Abgelesenes, Geschriebenes oder Kombinationen davon sein. Somit können die Anschlüsse der Zwischenverbindung als Eingaben oder Ausgaben verwendet werden.
  • Die Offenbarung betrifft ein Arbitrieren, wobei jedem Eingabeanschluss von einer Mehrzahl von Eingabeanschlüssen die Möglichkeit garantiert wird, einen Ausgabeanschluss zumindest einmal in einem Arbitrierungszyklus zu reservieren. Ein Ansatz in Bezug auf diese Garantie ist das Starten eines leeren Arbitrierungspakets bei jedem Arbitrierungsteilnehmer (z. B. den Auswahleinheiten von 2) zumindest einmal in einem Arbitrierungszyklus. Darüber hinaus beschreibt die Offenbarung, wie jeder Arbitrierungsteilnehmer eine Gruppe Auswahlgelegenheiten mit abnehmender Priorität für alle nach dem prioritäreren Auswählen verbleibenden Ausgabeanschlüsse erhalten kann. Im Beispiel von 2 und 4 entspricht dies einer Rotation von Arbitrierungspaketen durch jede der Auswahleinheiten, sodass jede Auswahleinheit jedes Arbitrierungspaket erhält. Verschiedene Arbitrierungspakete erreichen bestimmte Auswahleinheit jedoch, wenn verschieden Auswahlen getroffen wurden. Diese Ansätze stehen insofern im Gegensatz zur Wellenfront-Arbitrierung, als diese vorsieht, dass eine bestimmte Kombination von Eingabe- und Ausgabeanschlüssen in einem bestimmten Datenübertragungszyklus aktiv sind. Zum Beispiel wird in jedem Datenübertragungszyklus Eingabe 1 an demselben Punkt mit Ausgabe 2 verbunden.
  • Anhand der Beispiele hier wurden Paare von Anschlüssen beschrieben, die in Reaktion auf Anfragen zugeordnet werden. In einigen Anwendungen können Anfragen jedoch komplexere Kombinationen von Anschlüssen definieren, wie das Schreiben eines Datenelements an verschiedenen Standorten, das Schreiben einer Gruppe von Datenelementen an spezifizierte Ausgaben und das Lesen von Datenelementen aus verschiedenen Standorten an einen einzelnen Leseanschluss.
  • Verschiedene Umsetzungen können Festfunktionshardware verwenden, die eine maximale Geschwindigkeit und Effizienz in Situationen ermöglichen kann, in denen eine gut definierte Gruppe wiederholter Zwischenverbindungsaufgaben erforderlich sind. Weitere Umsetzungen können konfigurierbare Hardware oder eine Kombination von Festfunktions- und konfigurierbarer Hardware verwenden.
  • In manchen Umsetzungen kann das Zwischenverbindungselement 6 ein Kreuzvermittlungsschalter sein, indem eine Verbindung von allem zu allem hergestellt werden kann (z. B. können jegliche Anschlüsse für einen Übertragungszyklus gepaart werden). Ein Kreuzvermittlungsschalter kann durch zweckgerichtete Hardware umgesetzt werden. In einigen Umsetzungen kann jedoch die Art des Zwischenverbindungselements 6 abstrahiert werden, indem sie durch einen Bus umgesetzt wird, obwohl der Arbiter 5 das Zwischenverbindungselement 6 als Kreuzvermittlungsschalter behandelt. Zum Beispiel kann ein Kreuzvermittlungsschalter von n × n Anschlüssen ein Maximum an n Datenübertragungen in einem Schritt unterstützen. Ein Bus, der n Datenübertragungen in einem Arbitrierungsschritt unterstützen kann, kann die physische Zwischenverbindung umsetzen, und es kann eine Abstraktionsschicht, die dem Arbiter 5 eine Anschluss-basierte Ansicht des Busses vorlegt, bereitgestellt werden.
  • Einige Umsetzungen können programmierbare Elemente verwenden, um Aspekte der offenbarten Arbitrierung umzusetzen, obwohl solche Umsetzungen für einige Anwendungen unpraktisch sein können. Falls sie in Firmware und/oder Software umgesetzt werden, können Funktionen als eine oder mehrere Anweisungen oder Codes auf einem computerlesbaren Medium dargestellt sein, in einem Beispiel ist das Medium nicht-vorübergehend. Beispiele umfassen ein computerlesbares Medium, das mit einer Datenstruktur kodiert ist, und ein computerlesbares Medium, das mit einem Computerprogramm codiert ist. Ein maschinenlesbares Medium umfasst nicht-vorübergehende maschinenlesbare Medien. Andere Arten von Medien umfassen Übertragungsmedien. Ein nicht-vorübergehendes Medium kann ein materielles Medium sein, auf das über eine Maschine zugegriffen werden kann. Auf beispielhafte und nicht einschränkende Weise kann ein solches computerlesbares Medium RAM, ROM, EEPROM, CD-ROM oder sonstige optische Plattenspeicher, Magnetplattenspeicher oder sonstige Magnetspeichervorrichtungen, oder jedes weitere Medium umfassen, das verwendet werden kann, um einen gewünschten Programmcode in Form von Anweisungen oder Datenstrukturen zu speichern, und auf das über eine Maschine zugegriffen werden kann.
  • Die Beschreibung der Aspekte und Merkmale wird bereitgestellt, damit Fachleute die Systeme und Vorrichtungen herstellen und verwenden und die offenbarten Verfahren durchführen können. Verschiedene Modifikationen werden für Fachleute leicht ersichtlich sein, und die in diesem Dokument beschriebenen Grundsätze können auf andere Aspekte angewandt werden, ohne vom Gedanken oder vom Schutzumfang der Offenbarung abzuweichen. Die Beschreibung soll also keine Einschränkung der Ansprüche darstellen. Vielmehr sollen die Ansprüche einen Schutzumfang darstellen, der zu den hier offenbarten Grundsätzen und neuen Funktionen kohärent ist.
  • Die Zeichnungen umfassen relative Anordnungen von Struktur und Ordnung von Prozessbestandteilen, jedoch ausschließlich um das Verständnis der Beschreibung zu erleichtern. Diese relativen Anordnungen und Nummerierungen sind keine implizite Offenbarung etwaiger spezieller Einschränkungen zu Ordnung oder Anordnung von Elementen und Schritten in den Ansprüchen. Prozesseinschränkungen können sequenziell miteinander vertauscht werden, ohne vom Schutzumfang der Offenbarung abzuweichen, und Mittel-Plus-Funktions-Klauseln in den Ansprüchen sollen die Strukturen abdecken, die als die aufgeführte Funktion durchführend beschrieben werden, die nicht nur strukturelle Äquivalente, sondern auch äquivalente Strukturen umfassen können.
  • Zwar wurde eine Vielzahl von Beispielen und sonstigen Informationen verwendet, um Aspekte im Schutzumfang der beigefügten Ansprüche zu erklären, doch ist keine Einschränkung der Ansprüche basierend auf bestimmten Merkmalen oder Anordnungen in solchen Beispielen beabsichtigt, da Fachleute diese Beispiele verwenden könnten, um eine große Vielfalt an Umsetzungen abzuleiten. Ferner und obwohl der Gegenstand in einigen Fällen mit einer Sprache beschrieben wurde, die für Beispiele struktureller Merkmale und/oder Verfahrensschritte spezifisch ist, ist darauf hinzuweisen, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht zwangsläufig auf diese beschriebenen Merkmale oder Handlungen beschränkt ist. Zum Beispiel kann eine solche Funktionalität anders verteilt oder in anderen Bauteilen als den, zusätzlich zu den oder ohne die hierin ermittelte(n) durchgeführt werden. Die beschriebenen Merkmale und Schritte werden vielmehr als Beispiele von Komponenten von Systemen und Verfahren im Rahmen des Schutzumfangs der beigefügten Ansprüche offenbart.

Claims (19)

  1. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung, umfassend: Empfangen von einer oder mehreren Datenübertragungsanfragen über die Zeit, wobei jede einen Eingabeanschluss von n Eingabeanschlüssen und einen Ausgabeanschluss von m Ausgabeanschlüssen in einer Zwischenverbindung anzeigt, durch die die Anfrage durchgeführt wird; Puffern jeder der Anfragen; Zuteilen jeweils eines leeren Arbitrierungspakets für eine entsprechende Auswahleinheit, die jedem der Eingabeanschlüsse zugeteilt ist, wobei jedes Arbitrierungspaket einen Standort für jeden der m Ausgabeanschlüsse aufweist; in jeder der Auswahleinheiten Auswählen von wenigstens einer gepufferten Anfrage und Platzieren jeder ausgewählten Anfrage im Arbitrierungspaket in dieser Auswahleinheit am Standort für den Ausgabeanschluss, der von der ausgewählten Anfrage angezeigt wird; Weiterleiten der Arbitrierungspakete zwischen den Auswahleinheiten, bis jede Auswahleinheit jedes Arbitrierungspaket empfangen hat, und während jede Auswahleinheit jedes Arbitrierungspaket hat, Versuchen, wenigstens eine Anfrage in einem bleibenden Standort in diesem Arbitrierungspaket zu platzieren; und Planen der Erfüllung der Anfragen unter Verwendung der Zwischenverbindung gemäß der Platzierung der Anfragen in den Arbitrierungspaketen.
  2. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach Anspruch 1, wobei das Platzieren jeder ausgewählten Anfrage das Festlegen eines Maskenbits im Arbitrierungspaket, das dem Ausgabeanschluss zugeordnet ist, der von der Anfrage angezeigt wird und ein Bereitstellen von Eingabeanschlussinformationen von der ausgewählten Anfrage an einen diesem Ausgabeanschluss zugeordneten Puffer, umfasst.
  3. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der Ansprüche 1 und 2, wobei jeder der Eingabeanschlüsse zwei oder mehrere Bahnen umfasst und wobei das Puffern das Puffern von Anfragen umfasst, die zu jeder der Bahnen in einem separaten FIFO-Puffer gelangen.
  4. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der Ansprüche 1 bis 3, wobei der Eingabeanschluss für jede Anfrage angezeigt wird, durch den ein Eingabeanschluss eines Arbiters diese Anfrage empfangen hat.
  5. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der vorhergehenden Ansprüche, wobei das Weiterleiten ein Aktivieren einer Schaltung umfasst, um jedes Arbitrierungspaket von einem Register in einer Auswahleinheit an ein Register in einer darauffolgenden Auswahleinheit zu übertragen.
  6. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der vorhergehenden Ansprüche, wobei das Puffern für den Zugang durch die jeweilige Auswahleinheit für diesen Eingabeanschluss ein Speichern jeder der Anfragen gemäß einem in der Anfrage identifizierten Ausgabeanschluss und ein Einstellen einer Markierung umfasst, die die Verfügbarkeit einer Anfrage für diesen Ausgabeanschluss anzeigt.
  7. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der vorhergehenden Ansprüche, wobei die Zwischenverbindung einen Kreuzvermittlungsschalter von n Eingaben mal m Ausgaben umfasst und wobei das Verfahren ferner ein selektives Verbinden jede der n Eingaben des Kreuzvermittlungsschalters mit einer der m Ausgaben des Kreuzvermittlungsschalters in aufeinander folgenden Datenübertragungszeiträumen gemäß der Platzierung der Anfragen in den Arbitrierungspaketen umfasst.
  8. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der Ansprüche 1 bis 7, wobei die Ausgabeanschlüsse jeweils Speicheradressen zugeordnet sind und wobei jede Anfrage eine Speicheradresse umfasst, von der gemäß den Speicheradressen, die jedem der Ausgabenanschlüsse zugeordnet sind, ein Ausgabeanschluss abgeleitet werden kann.
  9. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach Anspruch 8, wobei Speicheradressen durch die Ausgabeanschlüsse gestreift werden.
  10. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der vorhergehenden Ansprüche, wobei das Platzieren jeder Anfrage ein Festlegen eines Maskenbits, das dem platzierten Standort entspricht, und ein Senden von Datenübertragungsinformationen an einen Umordnungspuffer umfasst, der dem angezeigten Ausgabeanschluss dieser Anfrage zugeordnet ist.
  11. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der vorhergehenden Ansprüche, wobei das Puffern ein Puffern jeder Anfrage wenigstens solange umfasst, bis sie von der Auswahleinheit für den Eingabeanschluss, über den die Anfrage eingetroffen ist, bereitgestellt wurde.
  12. Verfahren zum Arbitrieren für den Zugang zu einer Zwischenverbindung nach einem der Ansprüche 1 bis 11, wobei jeder Ausgabeanschluss einen jeweiligen vorbestimmten relativen Standort in jedem Arbitrierungspaket aufweist, und das Platzieren einer Anfrage im Arbitrierungspaket ein Füllen dieses Standorts mit diese Anfrage betreffenden Daten umfasst.
  13. Arbiter für den Zugang zu einer Zwischenverbindung zwischen einem n Eingabeanschluss und einem m Ausgabeanschluss, umfassend: einen Puffer, der ausgelegt ist, Anfragen zu speichern, die an einem der n Eingabeanschlüsse empfangen wurden, eine Vielzahl an Auswahleinheiten, wobei jede der Auswahleinheiten angeschlossen ist, um ein Arbitrierungspaket von einer weiteren Auswahleinheit zu empfangen und wobei das Arbitrierungspaket einen Standort für jeden der m Ausgabeanschlüsse umfasst, um zu versuchen, eine Anfrage in wenigstens einem leeren Standort im empfangenen Arbitrierungspaket zu platzieren, wobei eine der Auswahleinheiten einen leeren Standort im empfangenen Arbitrierungspaket füllen kann, und um das Arbitrierungspaket an eine weitere Auswahleinheit weiterzuleiten, wobei die Vielzahl an Auswahleinheiten die n Arbitrierungspakete gleichzeitig abschließt; und einen jeweiligen Umordnungspuffer für jeden der m Ausgabeanschlüsse, die ausgelegt sind, die Übertragungsinformationen für diesen Ausgabeanschluss zu empfangen und eine First-In-First-Out-Reihenfolge für Einträge durchzusetzen, die von demselben Eingabeanschluss stammen.
  14. Arbiter nach Anspruch 13, wobei die Vielzahl von Auswahleinheiten eine Auswahleinheit für jeden der n Eingabeanschlüsse umfasst.
  15. Arbiter nach Anspruch 13 oder 14, wobei jedes Arbitrierungspaket ein Einzelbit für jeden der m Ausgabeanschlüsse umfasst, das von der Auswahleinheit eingestellt wird, wenn der Standort für diesen Ausgabeanschluss gefüllt wird, und wobei jede Auswahleinheit ansteuerbar ist, um die in die Arbitrierungspakete gefüllten Einträge in die jeweiligen Umordnungspuffer für jeden der m Ausgabeanschlüsse einzuspeisen.
  16. Arbiter nach einem der Ansprüche 13 bis 15, wobei die Umordnungspuffer für jeden der m Ausgabeanschlüsse eine Vielzahl an Umordnungspuffern umfassen, wobei wenigstens einer der Vielzahl ansteuerbar ist, um Einträge von den Auswahleinheiten zu empfangen, während die Einträge von einem weiteren der Puffer verwendet werden, um die Zwischenverbindung zu steuern.
  17. Arbiter nach einem der Ansprüche 13 bis 16, wobei jeder der m Ausgabeanschlüsse eine Vielzahl an Umordnungspuffern umfasst, wobei einer der Umordnungspuffer zum Steuern einer Zwischenverbindung verwendet werden kann, während ein weiterer vom Arbiter mit Übertragungsinformation für darauffolgende Anfragen gefüllt wird.
  18. Arbiter nach einem der Ansprüche 13 bis 17, wobei jeder der n Eingabeanschlüsse eine Vielzahl an Eingabebahnen umfasst und wobei eine einzelne Auswahleinheit angeschlossen ist, um leere Standorte im empfangenen Arbitrierungspaket von jeder der Eingabebahnen zu füllen.
  19. Berechnungssystem, umfassend den Arbiter nach einem der Ansprüche 13 bis 18, ferner umfassend eine Zwischenverbindung mit einer Gruppe von Anschlüssen und eine Steuereinheit, die ansteuerbar ist, um die Zwischenverbindung zu konfigurieren, sodass Datenübertragungen zwischen spezifizierten Kombinationen der Anschlüsse erfolgen können, wobei die Steuereinheit ansteuerbar ist, um eine Sequenz von Gruppen von Zwischenverbindungskonfigurationsdaten zu empfangen und die Zwischenverbindung für eine Sequenz von Datenübertragungen gemäß den Gruppen von Zwischenverbindungskonfigurationsdaten zu konfigurieren, wobei jede Gruppe von Zwischenverbindungskonfigurationsdaten Angaben von Kombinationen von Anschlüssen umfasst, die während eines Datenübertragungszyklus anzuschließen sind, wenn diese Gruppe von Zwischenverbindungkonfigurationsdaten zu verwenden sind.
DE102014003435.6A 2013-03-12 2014-03-11 System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung Active DE102014003435B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/794,806 2013-03-12
US13/794,806 US9407578B2 (en) 2013-03-12 2013-03-12 System and method of arbitrating access to interconnect

Publications (2)

Publication Number Publication Date
DE102014003435A1 DE102014003435A1 (de) 2014-09-18
DE102014003435B4 true DE102014003435B4 (de) 2021-04-29

Family

ID=50482720

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014003435.6A Active DE102014003435B4 (de) 2013-03-12 2014-03-11 System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung

Country Status (4)

Country Link
US (1) US9407578B2 (de)
CN (1) CN104052686B (de)
DE (1) DE102014003435B4 (de)
GB (1) GB2512996B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468546B (zh) * 2015-11-17 2017-04-12 中国科学院计算技术研究所 互连电路的数据处理装置和方法
US11327908B2 (en) 2020-07-14 2022-05-10 Nxp Usa, Inc. Method and system for facilitating communication between interconnect and system memory on system-on-chip
CN114968861B (zh) * 2022-05-25 2024-03-08 中国科学院计算技术研究所 一种两写两读的数据传输结构以及片上多通道交互网络

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020150056A1 (en) * 1998-05-15 2002-10-17 Martin Abadi Method for avoiding broadcast deadlocks in a mesh-connected network
US20040062238A1 (en) * 2001-02-14 2004-04-01 Hiroshi Yoshizawa Network switching device
US7796629B1 (en) * 2007-12-12 2010-09-14 Integrated Device Technology, Inc. Packet switch with configurable bandwidth allocation precision
EP0981878B1 (de) * 1998-03-10 2011-10-19 Riverstone Networks, Inc. Faire und effiziente ablaufsteuerung von paketen variabler längen in einer eingangsgepufferten mehrpunktvermittlung
US8289989B1 (en) * 2006-05-22 2012-10-16 Integrated Device Technology Inc. System and method for arbitration using availability signals

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882649B1 (en) * 2000-03-31 2005-04-19 Sun Microsystems, Inc. Least choice first arbiter
US7174403B2 (en) * 2005-02-24 2007-02-06 Qualcomm Incorporated Plural bus arbitrations per cycle via higher-frequency arbiter
CN1819523A (zh) * 2006-02-20 2006-08-16 中国人民解放军国防科学技术大学 并行交换开关设计方法
US7925816B2 (en) 2006-11-06 2011-04-12 Oracle America, Inc. Architecture for an output buffered switch with input groups
US20080288689A1 (en) * 2007-05-14 2008-11-20 Brian Hoang Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter
CN101631070A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 三级交换系统及其调度方法
US9514074B2 (en) * 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
CN101582854A (zh) * 2009-06-12 2009-11-18 华为技术有限公司 一种数据交换方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981878B1 (de) * 1998-03-10 2011-10-19 Riverstone Networks, Inc. Faire und effiziente ablaufsteuerung von paketen variabler längen in einer eingangsgepufferten mehrpunktvermittlung
US20020150056A1 (en) * 1998-05-15 2002-10-17 Martin Abadi Method for avoiding broadcast deadlocks in a mesh-connected network
US20040062238A1 (en) * 2001-02-14 2004-04-01 Hiroshi Yoshizawa Network switching device
US8289989B1 (en) * 2006-05-22 2012-10-16 Integrated Device Technology Inc. System and method for arbitration using availability signals
US7796629B1 (en) * 2007-12-12 2010-09-14 Integrated Device Technology, Inc. Packet switch with configurable bandwidth allocation precision

Also Published As

Publication number Publication date
GB201403241D0 (en) 2014-04-09
US9407578B2 (en) 2016-08-02
CN104052686A (zh) 2014-09-17
GB2512996A (en) 2014-10-15
CN104052686B (zh) 2018-11-06
GB2512996B (en) 2015-05-27
US20140269760A1 (en) 2014-09-18
DE102014003435A1 (de) 2014-09-18

Similar Documents

Publication Publication Date Title
DE60203469T2 (de) System mit Schnittstellen und einem Schalter für die Trennung von kohärentem und nichtkohärentem Datenpaketverkehr
DE60006842T2 (de) Multiprozessor-Node-Controller-Schaltung und Verfahren
DE69534758T2 (de) Verfahren und System für Mehrfachübertragung
DE69917835T2 (de) Datenpfadstrukturen mit Rotatorumschalter
DE60037174T2 (de) Puffersystem für externen speicherzugriff
DE3300260C2 (de)
DE102014225253B4 (de) Reallokation für eine Systembustransaktionswarteschlange
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE2809602C3 (de) Kanalbus-Steuereinrichtung
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE102005055000A1 (de) Modulares Avioniksystem eines Flugzeuges
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE102014003435B4 (de) System und Verfahren zum Arbitrieren des Zugangs zu einer Zwischenverbindung
DE102020113949A1 (de) Interconnect von Fabric-Die zu Fabric-Die für modularisierte integrierte Schaltungsvorrichtungen
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
DE10255937A1 (de) Ordnungsregelgesteuerte Befehlsspeicherung
DE60222233T2 (de) Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen
DE60204794T2 (de) Mechanismus zur kennzeichnung und arbitrierung in einem eingabe/ausgabe knoten eines rechnersystems
DE112013001211B4 (de) Multithread-Paketverarbeitung
DE102009001898A1 (de) Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung
DE10052132A1 (de) Graphikprozessor mit mehrfachen geometrischen Arbeitseinheiten und Verfahren zum Datenverarbeiten
DE102006025133A1 (de) Speicher- und Speicherkommunikationssystem
DE60203785T2 (de) Netzschnittstelle
DE102020210335A1 (de) System und Verfahren zum Einreihen von Arbeit innerhalb eines virtualisierten Planers basierend auf einem Abrechnen innerhalb einer Einheit von Einträgen innerhalb der Einheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: WESTPHAL, MUSSGNUG & PARTNER PATENTANWAELTE MI, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012937000

Ipc: H04L0049112000

R020 Patent grant now final