DE112017006207T5 - Verbindungsnetz, das mehrere konsistenzmechanismen, mehrere protokolle und mehrere vermittlungsmechanismen unterstützt - Google Patents

Verbindungsnetz, das mehrere konsistenzmechanismen, mehrere protokolle und mehrere vermittlungsmechanismen unterstützt Download PDF

Info

Publication number
DE112017006207T5
DE112017006207T5 DE112017006207.1T DE112017006207T DE112017006207T5 DE 112017006207 T5 DE112017006207 T5 DE 112017006207T5 DE 112017006207 T DE112017006207 T DE 112017006207T DE 112017006207 T5 DE112017006207 T5 DE 112017006207T5
Authority
DE
Germany
Prior art keywords
command
bus connection
connection protocol
flow
network interface
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.)
Pending
Application number
DE112017006207.1T
Other languages
English (en)
Inventor
Helmut Reinig
Todor Mladenov
Simona Bernardi
Robert de Gruijl
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel IP Corp
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 Intel IP Corp filed Critical Intel IP Corp
Publication of DE112017006207T5 publication Critical patent/DE112017006207T5/de
Pending legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Bereitgestellt wird eine Netzschnittstelle, die Folgendes umfasst: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss einer ersten Art von Befehlen von einer ersten Einrichtung zu einer zweiten Einrichtung zwischenzuspeichern, wobei die erste Einrichtung gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und die zweite Einrichtung gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss einer zweiten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung zwischenzuspeichern, und einen Arbitrierer, der dafür konfiguriert ist, zwischen dem ersten Fluss und dem zweiten Fluss zu arbitrieren und selektiv einen oder mehrere Befehle der ersten Art und einen oder mehrere Befehle der zweiten Art auszugeben.

Description

  • BEANSPRUCHTE PRIORITÄT
  • Diese Anmeldung beansprucht die Priorität der am 8. Dezember 2016 unter der Bezeichnung „VERBINDUNGSNETZ, DAS MEHRERE KONSISTENZMECHANISMEN, MEHRERE PROTOKOLLE UND MEHRERE VERMITTLUNGSMECHANISMEN UNTERSTÜTZT“ eingereichte US-Patentanmeldung Nr. 15/373,033 , die hierin vollumfänglich in Bezug genommen wird.
  • HINTERGRUND
  • Ein Datenverarbeitungssystem weist grundsätzlich eine Vielzahl von Komponenten auf, die von verschiedenen Herstellern entworfen und hergestellt sind. Diese Komponenten können zur Kommunikation verschiedenen Verbindungsprotokollen folgen. Beispielsweise können einige dieser Komponenten ein oder mehrere Busprotokolle und Konsistenzmechanismen gemäß einem Industriestandard verwenden, während andere möglicherweise ein von einem bestimmten Anbieter entwickeltes proprietäres Busprotokoll verwenden. Ein Verbindungsnetz, das all diese Komponenten untereinander verbindet, muss verschiedene Arten von Busprotokollen und Konsistenzmechanismen unterstützen.
  • Figurenliste
  • Ein umfassenderes Verständnis der Ausführungsformen der Offenbarung wird durch die nachfolgende ausführliche Beschreibung sowie die beiliegenden Zeichnungen verschiedener Ausführungsformen der Offenbarung vermittelt, welche jedoch nicht als die Offenbarung auf die konkreten Ausführungsformen einschränkend zu verstehen sind, sondern lediglich der Erläuterung und dem Verständnis dienen.
    • 1 veranschaulicht ein System, das zwei Einrichtungen umfasst, die mittels eines geeigneten Aufforderung/Antwort- (RR-, request/response) basierten Verbindungsprotokolls kommunizieren.
    • 2 veranschaulicht ein System, das zwei Einrichtungen umfasst, die mittels eines geeigneten Posted- (P-) / Non-Posted-, (NP-) / Abschluss- (C-, Completion) basierten Verbindungsprotokolls (z.B. eines PNC-Verbindungsprotokolls) kommunizieren.
    • 3 veranschaulicht ein System, das zwei PNC-Einrichtungen umfasst, die über ein PNC-Protokoll über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen.
    • 4 veranschaulicht ein System, das eine RR-Einrichtung und eine PNC-Einrichtung umfasst, die über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen.
    • 5 veranschaulicht ein System, das zwei RR-Einrichtungen umfasst, die über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen.
    • 6 veranschaulicht ein Verbindungsnetz, das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, gemäß einigen Ausführungsformen.
    • 7 veranschaulicht die Übertragung von Schreibdaten von einer als Datenproduzent agierenden Prozessorkomponente an eine Speicherkomponente eines Netzes gemäß einigen Ausführungsformen.
    • 8 veranschaulicht eine Kommunikation zwischen einem Datenproduzenten und einem Datenkonsumenten gemäß einigen Ausführungsformen.
    • 9 veranschaulicht eine Kommunikation zwischen einem Datenkonsumenten und einem Speicher gemäß einigen Ausführungsformen.
    • 10 veranschaulicht ein weiteres Verbindungsnetz, das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, wobei sich eine Interrupt-Erzeugungseinheit innerhalb einer Netzschnittstelle befindet, gemäß einigen Ausführungsformen.
    • 11 veranschaulicht eine Kommunikation zwischen einer Netzschnittstelle und einem Datenkonsumenten gemäß einigen Ausführungsformen.
    • 12 veranschaulicht ein weiteres Verbindungsnetz, das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, wobei ein ungeposteter Befehl nach einer Reihe geposteter Schreibbefehle ausgeführt wird, gemäß einigen Ausführungsformen.
    • 13 veranschaulicht ein System, das zwei PNC-Einrichtungen umfasst, die über das PNC-Protokoll kommunizieren, wobei ein gemeinsamer Zwischenspeicher mehrere Befehlsflüsse speichert, gemäß einigen Ausführungsformen.
    • 14 veranschaulicht ein weiteres System, das zwei PNC-Einrichtungen umfasst, die über das PNC-Protokoll kommunizieren, wobei ein gemeinsamer Zwischenspeicher mehrere Befehlsflüsse speichert, gemäß einigen Ausführungsformen.
    • 15 veranschaulicht ein System zum Steuern einer Zwischenspeicherausgabe eines Zwischenspeichers gemäß einigen Ausführungsformen.
    • 16 veranschaulicht ein weiteres System zum Steuern einer Zwischenspeicherausgabe eines Zwischenspeichers gemäß einigen Ausführungsformen.
    • 17 veranschaulicht ein weiteres System zum Steuern eines Zwischenspeicherausgangs eines Zwischenspeichers gemäß einigen Ausführungsformen.
    • 18 veranschaulicht ein weiteres Verbindungsnetz, das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, gemäß einigen Ausführungsformen.
    • 19 veranschaulicht eine intelligente Einrichtung, eine Datenverarbeitungseinrichtung oder ein Computersystem oder ein SoC (Ein-Chip-System), wobei verschiedene Komponenten der Datenverarbeitungseinrichtung 2100 über ein Netz 2190 untereinander verbunden sind, gemäß einigen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In einigen Ausführungsformen umfasst ein Netz mehrere Router und Netzschnittstellen, wobei das Netz dafür konfiguriert ist, mehrere Einrichtungen, die gemäß zwei oder mehr Busverbindungsprotokollen arbeiten, untereinander zu verbinden. In einem Beispiel ist jede Einrichtung über eine entsprechende Netzschnittstelle mit einem entsprechenden Router verbunden. Das Netz arbeitet beispielsweise gemäß einem Busverbindungsprotokoll, das gepostete Befehle, ungepostete Befehle und Abschlussbefehle verwendet, um zu kommunizieren. Beispielsweise arbeitet das Netz gemäß dem Peripheral-Component-Interconnect-Express-(PCIe-) Protokoll (z.B. wie im 2003 herausgegebenen PCI-Express-1.0a-Standard oder späteren Überarbeitungen angegeben).
  • In einigen Ausführungsformen können einige der Einrichtungen gemäß einem Busverbindungsprotokoll arbeiten, das Aufforderungen und Antworten zum Kommunizieren verwendet. In einigen Ausführungsformen beinhaltet eine Netzschnittstelle einen Übersetzer, um zwischen dem Protokoll der entsprechenden Einrichtung und dem vom Netz verwendeten Protokoll zu übersetzen.
  • In einigen Ausführungsformen umfasst eine Netzschnittstelle des Netzes unterschiedliche Zwischenspeicher für unterschiedliche Arten von Flüssen, z.B. einen ersten Zwischenspeicher für einen Fluss geposteter Befehle, einen zweiten Zwischenspeicher für einen Fluss ungeposteter Befehle und einen dritten Zwischenspeicher für einen Fluss aus Abschlussbefehlen. In einigen Ausführungsformen kann ein Betriebsmodus der Zwischenspeicher ausgewählt werden, um zwischen Latenz und Durchsatz zu optimieren, z.B. auf Grundlage eines oder mehrerer Faktoren des Netzes. In einigen Ausführungsformen sind die Router des Netzes in einer Baumstruktur angeordnet, z.B. um sicherzustellen, dass ein Router mit einem anderen Router über einen eindeutigen und einzigen Verbindungsweg verbunden ist.
  • Die verschiedenen Ausführungsformen haben eine Vielzahl technischer Auswirkungen. Beispielsweise unterstützt das Netz verschiedene Einrichtungen, die unterschiedliche Busverbindungsprotokolle aufweisen. In einem Beispiel stellt die eindeutige Struktur des Netzes (z.B. die eindeutige Struktur der Zwischenspeicher in der Netzschnittstelle, die Baumstruktur der Router etc.) sicher, dass verschiedene Konsistenzanforderungen des Verbindungsprotokolls des Netzes erfüllt werden. Beispielsweise stellt das Vorhandensein unterschiedlicher Zwischenspeicher für unterschiedliche Arten von Flüssen sicher, dass eine bestimmte Art von Befehl eine andere bestimmte Art von Befehl überholen kann, wodurch die Erfüllung einiger der Anforderungen des Verbindungsprotokolls des Netzes erleichtert wird. In einigen besonderen Situationen kann die Anzahl der Zwischenspeicher in einer Netzschnittstelle verringert sein, wobei ohne Verletzung dieser Anforderungen ein geringeres Volumen der Netzschnittstelle erreicht wird.
  • In der nachfolgenden Beschreibung werden zahlreiche Einzelheiten behandelt, um Ausführungsformen der vorliegenden Offenbarung genauer zu erläutern. Ein Fachmann versteht jedoch, dass Ausführungsformen der vorliegenden Offenbarung auch ohne diese konkreten Einzelheiten umgesetzt werden können. In anderen Fällen werden allgemein bekannte Strukturen und Einrichtungen nicht im Einzelnen, sondern in Blockdiagrammform gezeigt, um Ausführungsformen der vorliegenden Offenbarung klarer darzustellen.
  • Es ist zu beachten, dass in den entsprechenden Zeichnungen der Ausführungsformen Signale mit Linien dargestellt sind. Einige Linien können dicker sein, um wesentlichere Signalwege anzuzeigen, und/oder an einem oder beiden Enden Pfeile aufweisen, um hauptsächliche Richtungen des Informationsflusses anzuzeigen. Solche Angaben sind jedoch nicht als einschränkend aufzufassen. Die Linien werden vielmehr in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet, um ein leichteres Verständnis einer Schaltung oder einer Logikeinheit zu ermöglichen. Jedes dargestellte Signal wie durch Ausgestaltungserfordernisse oder Präferenzen vorgeschrieben kann tatsächlich ein oder mehrere Signale umfassen, die sich in jeder Richtung bewegen und durch eine beliebige geeignete Art von Signalschema implementiert sein können.
  • In der gesamten Spezifikation und den Ansprüchen bedeutet die Bezeichnung „verbunden“ eine unmittelbare Verbindung, beispielsweise eine elektrische, mechanische oder magnetische Verbindung zwischen den verbundenen Dingen, ohne dazwischenliegende Einrichtungen. Die Bezeichnung „gekoppelt“ bedeutet eine unmittelbare oder mittelbare Verbindung, beispielsweise eine unmittelbare elektrische, mechanische oder magnetische Verbindung zwischen den verbundenen Dingen oder eine mittelbare Verbindung durch eine oder mehrere passive oder aktive dazwischenliegende Einrichtungen. Die Bezeichnung „Schaltung“ oder „Modul“ kann sich auf eine oder mehrere passive und/oder aktive Komponenten beziehen, die eingerichtet sind, um zusammenzuwirken, um eine gewünschte Funktion bereitzustellen. Die Bezeichnung „Signal“ kann sich auf mindestens ein Stromsignal, Spannungssignal, magnetisches Signal oder Daten-/Taktsignal beziehen. Die Bedeutung von „ein/e“ und „der/die/das“ beinhaltet Pluralformen. Die Bedeutung von „in“ beinhaltet „in“ und „auf“. Die Bezeichnungen „im Wesentlichen“, „nahezu“, „ungefähr“, „annähernd“ und „etwa“ beziehen sich grundsätzlich auf einen Bereich innerhalb von +/- 10 % eines Sollwerts.
  • Soweit nicht anders angegeben, zeigt die Verwendung der Ordnungsadjektive „erste/r/s“, „zweite/r/s“, „dritte/r/s“ etc. zur Beschreibung eines gleichen Objekts lediglich an, dass auf verschiedene Exemplare gleichartiger Objekte Bezug genommen wird, und soll nicht implizieren, dass die so beschriebenen Objekte in einer gegebenen Abfolge vorliegen müssen, sei es zeitlich, räumlich, in einer Rangordnung oder in sonstiger Weise.
  • Für die Zwecke der vorliegenden Offenbarung haben die Ausdrücke „A und/oder B“ und „A oder B“ die Bedeutungen (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung hat der Ausdruck „A, B und/oder C“ die Bedeutungen (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C). Die Bezeichnungen „links“ bzw. „linke/r/s“, „rechts“ bzw. „rechte/r/s“, „vorne“ bzw. „vordere/r/s“, „hinten“ bzw. „hinteres“, „oben“ bzw. „obere/r/s“, „unten“ bzw. „untere/r/s“, „über“, „unter“ und dergleichen, soweit in der Beschreibung und den Ansprüchen verwendet, dienen Beschreibungszwecken und nicht notwendigerweise zur Beschreibung unveränderlicher Relativpositionen.
  • 1 veranschaulicht ein System 100, das zwei Einrichtungen 104 und 108 umfasst, die mittels eines geeigneten Aufforderung/Antwort- (RR-) basierten Verbindungsprotokolls kommunizieren. Da die Einrichtungen 104 und 108 mittels eines RR-basierten Verbindungsprotokolls kommunizieren, werden die Einrichtungen 104 und 108 vorliegend jeweils auch als „mit einem RR-basierten Verbindungsprotokoll konforme Einrichtung“ und/oder als eine „RR-Einrichtung“ bezeichnet.
  • Verschiedene Verbindungsprotokolle setzen Aufforderungen und Antworten zur Kommunikation ein. Beispielsweise setzt das Advanced-Peripheral-Bus- (APB-) Protokoll (z.B. wie in der 1999 von ARM Limited herausgegebenen „Advanced Microcontroller Bus Architecture (AMBA) Specification 2.0“ oder in späteren Überarbeitungen angegeben) Aufforderungen und Antworten zur Kommunikation zwischen zwei Einrichtungen ein. In einem weiteren Beispiel setzt das AMBA-High-Performance-Bus- (AHB-) Protokoll (z.B. wie in der „AMBA Specification 2.0“ oder in späteren Überarbeitungen angegeben) ebenfalls Aufforderungen und Antworten zur Kommunikation zwischen zwei Einrichtungen ein. In einem weiteren Beispiel setzt das Advanced-eXtensible-Interface- (AXI-) Protokoll (z.B. wie in der „AMBA Specification 2.0“ oder in späteren Überarbeitungen angegeben) ebenfalls Aufforderungen und Antworten zur Kommunikation zwischen zwei Einrichtungen ein. In einem weiteren Beispiel setzt das Open-Core-Protocol- (OCP-) Protokoll (z.B. wie in der „OCP International Partnership (OCP-IP) Specification“ angegeben) ebenfalls Aufforderungen und Antworten zur Kommunikation zwischen zwei Einrichtungen ein. In einem weiteren Beispiel können verschiedene Arten von Speicherprodukten (z.B. ein statischer Wahlzugriffsspeicher (SRAM) ebenfalls Aufforderungen und Antworten zur Kommunikation zwischen zwei Einrichtungen einsetzen. Für die Zwecke dieser Offenbarung würde eine mit einem RR-basierten Verbindungsprotokoll konforme Einrichtung (oder einfach RR-Einrichtung, z.B. die Einrichtungen 104 und 108 der 1) eine Einrichtung beinhalten, die mit einem geeigneten Verbindungsprotokoll konform ist, das auf Aufforderungs- und Antwortbefehlen basiert, und würde ein RR-basiertes Verbindungsprotokoll (oder RR-Verbindungsprotokoll) ein geeignetes Verbindungsprotokoll beinhalten, das auf Aufforderungs- und Antwortbefehlen basiert. Auch wenn vorstehend einige Beispiele solcher Protokolle behandelt werden, sind diese Beispiele nicht erschöpfend, und ein RR-basiertes Verbindungsprotokoll kann auch Verbindungsprotokolle beinhalten, die nicht vorstehend angegeben sind.
  • Gemäß 1 kann jede der Einrichtungen 104 und 108 in einer Master-Konfiguration und/oder einer Slave-Konfiguration agieren. Wenn beispielsweise die Einrichtung 104 als Master und die Einrichtung 108 als Slave konfiguriert ist, dann agiert die Einrichtung 104 als Initiator 104a und die Einrichtung 108 als Ziel 108a. Der Initiator 104a überträgt eine Aufforderung 112a an das Ziel 108a, woraufhin das Ziel 108a eine Antwort 112b an den Initiator 104a überträgt.
  • In einigen Ausführungsformen können die Aufforderung 112a und die Antwort 112b von jeglicher geeigneter Art sein. Beispielsweise kann es sich bei der Aufforderung 112a um eine Leseaufforderung handeln, während die Antwort 112b die entsprechenden Lesedaten beinhalten kann. In einem weiteren Beispiel kann es sich bei der Aufforderung 112a um einen Schreibbefehl handeln und die Antwort 112b eine Schreibbestätigung umfassen. In einem weiteren Beispiel kann es sich bei der Aufforderung 112a um einen beliebigen geeigneten Befehl und bei der Antwort 112b um eine Bestätigung, über die Aufforderung 112a angeforderte Daten und/oder dergleichen handeln.
  • In einigen Ausführungsformen handelt es sich bei einer geposteten Aufforderung (z.B. einer geposteten Aufforderung 112a) um eine Aufforderung, die keine Antwort auslöst. Beispielsweise handelt es sich bei einer geposteten Schreibaufforderung um eine Schreibaufforderung, die keine Bestätigung erfordert (z.B. keine Antwort erfordert). Für eines oder mehrere der vorstehend behandelten RR-Protokolle kann es sich in einigen Ausführungsformen bei einer Aufforderung und/oder einer Antwort (z.B. der Aufforderung 112a und der Antwort 112b) um Befehle handeln, die beispielsweise Adressen, Daten und/oder Flusssteuersignale beinhalten (auch wenn in einigen Beispielen eine Aufforderung und/oder eine Antwort nicht notwendigerweise sowohl Adressen als auch Daten und Flusssteuersignale beinhalten muss).
  • Entsprechend agiert in einem Beispiel, in dem die Einrichtung 104 als Slave und die Einrichtung 108 als Master konfiguriert ist, die Einrichtung 104 als Ziel 104b und die Einrichtung 108 als Initiator 108b. Der Initiator 108b überträgt eine Aufforderung 116a an das Ziel 104b, woraufhin das Ziel 104b eine Antwort 116b an den Initiator 108b überträgt.
  • In einigen Ausführungsformen können sowohl die Einrichtung 104 als auch die Einrichtung 108 jeweils gleichzeitig als Master und Slave handeln. Lediglich beispielhaft kann es sich bei der Einrichtung 104 um eine Speicherdirektzugriffs- (DMA-) Steuerung mit einem Slave-Anschluss zur Konfiguration und einem Master-Anschluss für Speicherzugriff handeln, während es sich bei der Einrichtung 108 um einen Verarbeitungskern mit einem lokalen Speicher und/oder einem Cache handeln kann. In einem solchen Beispiel kann die Einrichtung 108 als der Master-Anschluss arbeiten und der Slave-Anschluss der Einrichtung 108 kann Zugriff auf den lokalen Speicher und/oder den Cachespeicher gewähren.
  • 2 veranschaulicht ein System 200, das zwei Einrichtungen 204 und 208 umfasst, die mittels eines geeigneten Posted- (P-) / Non-Posted-, (NP-) / Abschluss- (C-, Completion) basierten Verbindungsprotokolls (z.B. eines PNC-basierten Verbindungsprotokolls) kommunizieren. Da die Einrichtungen 204 und 208 mittels eines PNC-basierten Verbindungsprotokolls kommunizieren, werden die Einrichtungen 204 und 208 vorliegend jeweils auch als „mit einem PNC-basierten Verbindungsprotokoll konforme Einrichtung“ und/oder als eine „PNC-Einrichtung“ bezeichnet.
  • Verschiedene Verbindungsprotokolle setzen Posted- / Non-Posted- und Abschlusssignale zur Kommunikation ein. Beispielsweise setzen das Peripheral-Component-Interconnect- (PCI-), das Peripheral-Component-Interconnect-Express- (PCIe-) Protokoll (z.B. wie im 2003 herausgegebenen PCI-Express-1.0a-Standard oder späteren Überarbeitungen angegeben) etc. gepostete, ungepostete und Abschlussbefehle zur Kommunikation ein. Viele unterschiedliche Protokolle können beispielsweise aus dem PCI-Protokoll oder dem PCIe-Protokoll abgeleitet werden. Beispielsweise ist der von INTEL® entwickelte „Intel On-Chip System Fabric“- (IOSF-) Standard, der ebenfalls gepostete, ungepostete und Abschlussbefehle zur Kommunikation einsetzt, aus PCIe abgeleitet. Die Einrichtungen 204 und 208 sind somit konform mit dem PCI-Standard, dem PCIe-Standard, jedem aus diesen abgeleiteten Protokoll (z.B. dem IOSF-Standard) oder einem anderen geeigneten Verbindungsstandard, der gepostete, ungepostete und/oder Abschlussbefehle verwendet, um zu kommunizieren. Für die Zwecke dieser Offenbarung würde eine mit einem PNC-basierten Verbindungsprotokoll konforme Einrichtung (oder einfach PNC-Einrichtung, z.B. die Einrichtungen 204 und 208 der 2) eine Einrichtung beinhalten, die mit einem geeigneten Verbindungsprotokoll konform ist, das auf geposteten (P), ungeposteten (NP) und/oder Abschluss- (C-) Befehlen basiert, und würde ein PNC-basiertes Verbindungsprotokoll (auch bezeichnet als „PNC-Protokoll“) ein geeignetes Verbindungsprotokoll beinhalten, das auf den vorstehend behandelten PNC-Befehlen basiert. Auch wenn vorstehend einige Beispiele solcher Protokolle behandelt werden, sind diese Beispiele nicht erschöpfend, und ein PNC-basiertes Verbindungsprotokoll kann auch Verbindungsprotokolle beinhalten, die nicht vorstehend angegeben sind.
  • Unter erneuter Bezugnahme auf 2 kann jede der Einrichtungen 204 und 208 in einer Master-Konfiguration oder einer Slave-Konfiguration agieren. Wenn beispielsweise die Einrichtung 204 als Master und die Einrichtung 208 als Slave konfiguriert ist, dann agiert die Einrichtung 204 als Initiator 204a und die Einrichtung 208 als Target 208a. Der Initiator 204a kann einen geposteten Befehl 212a (im Weiteren auch als „geposteter 212a“ bezeichnet) und/oder einen ungeposteten Befehl 212b (im Weiteren auch als „ungeposteter 212b“ bezeichnet) an das Ziel 208a übertragen und einen Abschlussbefehl 212c (im Weiteren auch als „Abschluss 212c“ bezeichnet) vom Ziel 208a empfangen.
  • In einigen Ausführungsformen stellt ein geposteter Befehl (z.B. der gepostete 212a) grundsätzlich einen Befehl dar, der keine Bestätigung oder Antwort erfordert. Ein ungeposteter Befehl (z.B. der ungepostete 212b) andererseits stellt grundsätzlich einen Befehl dar, der eine Bestätigung oder Antwort erfordert. Ein Abschlussbefehl (z.B. der Abschluss 212c) stellt eine Antwort oder Bestätigung auf einen ungeposteten Befehl dar.
  • Beispielsweise kann es sich bei einem ungeposteten Befehl (z.B. dem ungeposteten 212b) um einen Lesebefehl handeln und der entsprechende Abschlussbefehl (z.B. der Abschluss 212c) die entsprechenden Lesedaten beinhalten. In einem weiteren Beispiel kann es sich bei einem ungeposteten Befehl um einen Schreibbefehl, der eine Schreibbestätigung erfordert, und beim entsprechenden Abschlussbefehl um die in Reaktion auf den Schreibbefehl ausgegebene Schreibbestätigung handeln. In einem Beispiel kann es sich bei einem geposteten Befehl (z.b. dem geposteten 212a) um einen Schreibbefehl handeln, der keine Bestätigung erfordert.
  • In einem Beispiel, in dem die Einrichtung 204 als Slave und die Einrichtung 208 als Master konfiguriert ist, agiert die Einrichtung 204 als Ziel 204b und die Einrichtung 208 als Initiator 208b. Der Initiator 208b kann einen geposteten Befehl 216a (im Weiteren auch als „geposteter 216a“ bezeichnet) und/oder einen ungeposteten Befehl 216b (im Weiteren auch als „ungeposteter 216b“ bezeichnet) an das Ziel 204b übertragen und einen Abschlussbefehl 216c (im Weiteren auch als „Abschluss 216c“ bezeichnet) vom Ziel 204b empfangen.
  • In einigen Ausführungsformen weist ein PNC-Verbindungsprotokoll grundsätzlich Regeln auf, die eine Ordnung betreffen, in welcher verschiedene gleichzeitige oder annähernd gleichzeitige Befehle arbitriert und kommuniziert werden. In einem Beispiel weist ein PNC-Verbindungsprotokoll drei primäre Befehlsflüsse auf: einen geposteten Fluss (z.B. P-Fluss, der einen Fluss geposteter Befehle betrifft), einen ungeposteten Fluss (z.B. NP-Fluss, der einen Fluss ungeposteter Befehle betrifft) und einen Abschluss (z.B. C-Fluss, der einen Fluss aus Abschlussbefehlen betrifft). Ein Fluss eines bestimmten Befehlstyps bezieht sich auf eine Übertragung eines Stroms oder einer Abfolge von Befehlen des bestimmten Typs. Beispielsweise bezieht sich ein P-Fluss auf eine Übertragung eines Stroms oder einer Abfolge geposteter Befehle.
  • 3 veranschaulicht ein System 300, das die PNC-Einrichtungen 204 und 208 der 2 umfasst, die über das PNC-Protokoll über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen. Wie mit Bezug auf 2 behandelt, kommunizieren die Einrichtungen 204 und 208, bei welchen es sich um PNC-Einrichtungen handelt, miteinander mittels geposteter, ungeposteter und Abschlussbefehle. Die Einrichtungen 204 und 208 sind somit mit P-Flüssen, NP-Flüssen und C-Flüssen verbunden.
  • In einigen Ausführungsformen kommunizieren die Einrichtungen 204 und 208 miteinander über eine Netzschnittstelle (NI) 330a und eine NI 330b. Beispielsweise ist die NI 330a an die Einrichtung 204 gekoppelt, ist die NI 330b an die Einrichtung 208 gekoppelt und sind die NIs 330a und 330b über einen Router 350 und Signalleitungen 352 und 354 gekoppelt. Auch wenn in 3 beispielhaft ein einziger Router 350 und zwei Signalleitungen 352, 354 dargestellt sind, können der Router 350 und die zwei Signalleitungen 352, 354 ein Netz repräsentieren, das mehrere Router, Vermittlungseinrichtungen, Busse, Mehrschichtbusse, Kreuzschienen, Zeitmultiplexleitungen für Befehls- und Dateninformationen (oder beispielsweise auch separate Leitungen für Befehls- und Dateninformationen), irgendwelche anderen geeigneten Netzkomponenten etc. umfasst.
  • In einigen Ausführungsformen umfasst die NI 330a einen Arbitrierer 334a und einen Arbitrierer 336a und umfasst die NI 330b einen Arbitrierer 334b und einen Arbitrierer 336b. Die NI 330a umfasst ferner Zwischenspeicher 338a, 340a, 342a, 344a, 346a und 348a. Die NI 330b umfasst ferner Zwischenspeicher 338b, 340b, 342b, 344b, 346b und 348b. Bei den Zwischenspeichern in den NIs 330a und 330b handelt es sich beispielsweise um First-In-First-Out- (FIFO-) Zwischenspeicher.
  • Wie mit Bezug auf 2 behandelt, kann die Einrichtung 204 als Initiator 204a und Ziel 204b agieren, während die Einrichtung 208 ebenso als Ziel 208a und als Initiator 208b agieren kann. Der Initiator 204a erzeugt einen P-Fluss 312a1 und einen NP-Fluss 312b1 für das Ziel 208a und empfängt einen C-Fluss 312c1 vom Ziel 208a. In einem Beispiel wird der P-Fluss 312a1 durch den Zwischenspeicher 338a empfangen und durch den Zwischenspeicher 338a an den Arbitrierer 334a übertragen. Ebenso wird der NP-Fluss 312b1 durch den Zwischenspeicher 340a empfangen und durch den Zwischenspeicher 340a an den Arbitrierer 334a übertragen. Zudem gibt der Arbitrierer 336a selektiv den C-Fluss 312c1 an den Zwischenspeicher 344a aus, welcher durch den Initiator 204a empfangen wird.
  • Der Initiator 208b erzeugt einen P-Fluss 316a1 und einen NP-Fluss 316b1 für das Ziel 204b und empfängt einen C-Fluss 312c1 vom Ziel 204b. In einem Beispiel wird der P-Fluss 316a1 durch den Zwischenspeicher 346b empfangen und durch den Zwischenspeicher 346b an den Arbitrierer 336b übertragen. Ebenso wird der NP-Fluss 316b1 durch den Zwischenspeicher 348b empfangen und durch den Zwischenspeicher 348b an den Arbitrierer 336b übertragen. Zudem gibt der Arbitrierer 334b selektiv den C-Fluss 316c1 an den Zwischenspeicher 342b aus, welcher durch den Initiator 208b empfangen wird.
  • Das Ziel 204b empfängt einen P-Fluss 316a2 bzw. einen NP-Fluss 316b2 über die Zwischenspeicher 346a bzw. 348b und den Arbitrierer 336a. Das Ziel 204b überträgt zudem den C-Fluss 316c2 über den Zwischenspeicher 342a an den Arbitrierer 334a.
  • Das Ziel 208a empfängt einen P-Fluss 312a2 bzw. einen NP-Fluss 312b2 über die Zwischenspeicher 338b bzw. 340b und den Arbitrierer 334b. Das Ziel 208a überträgt zudem den C-Fluss 312c2 über den Zwischenspeicher 344b an den Arbitrierer 336b.
  • In einigen Ausführungsformen ist ein Ausgang des Arbitrierers 334a über eine Signalleitung 352 an einen Eingang des Arbitrierers 334b gekoppelt. In einigen Ausführungsformen ist ein Ausgang des Arbitrierers 336b über eine Signalleitung 354 an einen Eingang des Arbitrierers 336a gekoppelt.
  • In einigen Ausführungsformen arbitriert der Arbitrierer 334a zwischen dem P-Fluss 312a1, dem NP-Fluss 312b1 und dem C-Fluss 316c1. Beispielsweise gibt der Arbitrierer 334a selektiv einen P-Befehl, einen NP-Befehl oder einen C-Befehl von seinem Eingang an die Signalleitung 352 so aus, dass die Befehle im P-Fluss 312a1, dem NP-Fluss 312b1 und dem C-Fluss 316c1 in einem Zeitmultiplexmodus an den Arbitrierer 334b übertragen werden. Zudem empfängt der Arbitrierer 334b die per Zeitmultiplex übertragenen P-, NP- und C-Befehle über die Signalleitung 352 und gibt diese Befehle selektiv jeweils als P-Fluss 312a2, NP-Fluss 312b2 und den C-Fluss 316c1 aus. Der Initiator 204a überträgt somit einen P-Befehl an das Ziel 208a über den P-Fluss 312a1, über die Signalleitung 352 und über den P-Fluss 312a2. Ebenso überträgt der Initiator 204a einen NP-Befehl an das Ziel 208a über den NP-Fluss 312b1, über die Signalleitung 352 und über den NP-Fluss 312b2.
  • In einigen Ausführungsformen arbitriert der Arbitrierer 336b zwischen dem P-Fluss 316a1, dem NP-Fluss 316b1 und dem C-Fluss 312c2. Beispielsweise gibt der Arbitrierer 336b selektiv einen P-Befehl, einen NP-Befehl oder einen C-Befehl von seinem Eingang an die Signalleitung 354 so aus, dass die Befehle im P-Fluss 316a1, dem NP-Fluss 316b1 und dem C-Fluss 312c2 in einem Zeitmultiplexmodus an den Arbitrierer 336a übertragen werden. Zudem empfängt der Arbitrierer 336a die per Zeitmultiplex übertragenen P-, NP- und C-Befehle über die Signalleitung 354 und gibt diese Befehle selektiv jeweils als P-Fluss 316a2, den NP-Fluss 316b2 und den C-Fluss 312c1 aus. Der Initiator 208b überträgt somit einen P-Befehl an das Ziel 204b über den P-Fluss 316a1, über die Signalleitung 354 und über den P-Fluss 316a2. Ebenso überträgt der Initiator 208b einen NP-Befehl an das Ziel 204b über den NP-Fluss 316b1, über die Signalleitung 354 und über den NP-Fluss 316b2.
  • Es ist zu beachten, dass im Unterschied zu den P- und den NP-Flüssen in 3 die C-Flüsse einander überkreuzen. Beispielsweise empfängt der Initiator 204a einen C-Befehl vom Ziel 208a über den Zwischenspeicher 344b, den Arbitrierer 336b, den Arbitrierer 336a und den Zwischenspeicher 344a. Ebenso empfängt der Initiator 208b einen C-Befehl vom Ziel 204b über den Zwischenspeicher 342a, den Arbitrierer 334a, den Arbitrierer 334b und den Zwischenspeicher 342b.
  • 4 veranschaulicht ein System 400, das die RR-Einrichtung 104 der 1 und die PNC-Einrichtung 208 der 2 umfasst, die über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen. Da es sich bei der Einrichtung 104 um eine RR-Einrichtung handelt, kann die Einrichtung 104 mittels des RR-Protokolls kommunizieren und kommuniziert nicht über das PNC-Protokoll. Die Einrichtung 208 andererseits kommuniziert über das PNC-Protokoll und nicht über das RR-Protokoll.
  • In einigen Ausführungsformen umfasst das System 400 eine NI 430a und eine NI 430b. Die NI 430a umfasst beispielsweise einen Übersetzer 402a, der dafür konfiguriert ist, Aufforderungen (d.h. einen Aufforderungsfluss 450a) vom Initiator 104a der Einrichtung 104 zu empfangen und Antworten (z.B. einen Antwortfluss 450b) an den Initiator 104a zu übertragen. Zudem ist ein Übersetzer 402b ebenso dafür konfiguriert, Aufforderungen (d.h. einen Aufforderungsfluss 452a) vom Ziel 104b der Einrichtung 104 zu empfangen und Antworten (z.B. einen Antwortfluss 452b) an das Target 104b zu übertragen. In einigen Ausführungsformen sind die Übersetzer 402a und 402b in einem einzigen Übersetzer kombiniert oder integriert.
  • In einigen Ausführungsformen wird eine einzelne Aufforderung im Aufforderungsfluss 450a durch den Übersetzer 402a in entweder einen P-Befehl eines P-Flusses 412a1 oder einen NP-Befehl eines NP-Flusses 412b1 übersetzt. Beispielsweise parst und analysiert der Übersetzer 402a jede Aufforderung im Aufforderungsfluss 450a und übersetzt jede Aufforderung in entweder einen P-Befehl oder einen NP-Befehl, z.B. zumindest teilweise auf Grundlage der Inhalte der Aufforderung.
  • Beispielsweise wird eine Leseaufforderung im Aufforderungsfluss 450a (die z.B. zum Lesen von Daten ist) in einen NP-Befehl übersetzt (z.B. weil eine Leseaufforderung üblicherweise eine Antwort erfordert, welche die angeforderten Daten beinhaltet, was gleichbedeutend mit einem Abschlussbefehl ist). In einem weiteren Beispiel wird eine Schreibaufforderung im Aufforderungsfluss 450a, die eine Bestätigung erfordert, ebenfalls in einen NP-Befehl übersetzt (z.B weil eine solche Schreibaufforderung üblicherweise eine Bestätigung erfordert, was ebenfalls gleichbedeutend mit einem Abschlussbefehl ist). In einem weiteren Beispiel wird eine Schreibaufforderung im Aufforderungsfluss 450a, die keine Bestätigung erfordert, in einen P-Befehl übersetzt (z.B. weil eine solche Schreibaufforderung keine Bestätigung bzw. keinen Abschlussbefehl erfordert).
  • In einigen Ausführungsformen empfängt der Übersetzer 402a einen C-Fluss 412c1, der in den Antwortfluss 450b übersetzt wird. Beispielsweise übersetzt der Übersetzer 402a die C-Befehle im C-Fluss 412c1 in entsprechende Antworten im Antwortfluss 450b.
  • Der Übersetzer 402b agiert ebenso. Beispielsweise empfängt der Übersetzer 402b von einem Arbitrierer 436a einen P-Fluss 416a2 und einen NP-Fluss 416b2, welche der Übersetzer 402b in den Antwortfluss 452b übersetzt. Ebenso empfängt der Übersetzer 402b einen Aufforderungsfluss 452a, welchen der Übersetzer 402b in einen C-Fluss 416c2 übersetzt.
  • Der Abschnitt zur Linken der Übersetzer 402a und 402b in 4 ähnelt dem entsprechenden Abschnitt der 3. Beispielsweise umfasst der Abschnitt zur Linken der Übersetzer 402a und 402b die Arbitrierer 434a, 434b, 436a, 436b, die Zwischenspeicher 438a, ..., 448a, 438b, ..., 448b, einen Router 450, Signalleitungen 452 und 454 etc, welche den entsprechenden Komponenten der 3 ähneln, so dass auf diese Komponenten an dieser Stelle nicht näher eingegangen wird.
  • Die Kommunikation zwischen der Einrichtung 104 und den Übersetzern 402a, 402b basiert auf dem RR-Protokoll, während die Kommunikation zwischen den Übersetzern 402a, 402b und der Einrichtung 208 auf dem PNC-Protokoll basiert. Die Übersetzer 402a und 402b agieren somit als Brücke zwischen diesen beiden Protokollen.
  • In einigen Ausführungsformen wird, da die NI 430a an eine RR-Einrichtung 104 gekoppelt ist, die NI 430a als eine RR-NI bezeichnet. Ebenso wird, da die NI 430b an eine PNC-Einrichtung 208 gekoppelt ist, die NI 430b als eine PNC-NI bezeichnet.
  • 5 veranschaulicht ein System 500, das die RR-Einrichtungen 104 und 108 der 1 umfasst, die über eine gemeinsame Verbindung kommunizieren, gemäß einigen Ausführungsformen. Das System 500 der 5 ähnelt zumindest teilweise dem System 400 der 4. Beispielsweise umfasst das System 500 ähnlich dem System 400 Übersetzer 502a und 502b in der NI 530a, die Befehle zwischen dem PNC-Protokoll und dem RR-Protokoll übersetzen. Zudem umfasst eine NI 530b ebenfalls Übersetzer 502c und 502d, die dafür konfiguriert sind, zwischen dem PNC-Protokoll und dem RR-Protokoll zu übersetzen. Die Übersetzer 502a und 502b sowie die Übersetzer 502c und 502d des Systems 500 sind ähnlich wie die Übersetzer 402a und 402b des Systems 400 konfiguriert, so dass auf diese hier nicht näher eingegangen wird.
  • In einigen Ausführungsformen basiert der Abschnitt zwischen den Übersetzern 502, 502b und den Übersetzern 502c, 502d auf dem PNC-Protokoll, während der Abschnitt zwischen den Übersetzern 502a, 502b und der Einrichtung 104 auf dem RR-Protokoll basiert. Ebenso basiert in einigen Ausführungsformen der Abschnitt zwischen den Übersetzern 502c, 502d und der Einrichtung 108 ebenfalls auf dem RR-Protokoll. In einigen Ausführungsformen werden, da die NIs 530a und 530b jeweils an eine entsprechende RR-Einrichtung gekoppelt sind, die NIs 530a und 530b als RR-NIs bezeichnet.
  • In einigen Ausführungsformen wird in einem PNC-Protokoll eine Gruppe von Ordnungsregeln verwendet, um verschiedene Arten von Befehlen zu arbitrieren und deren Fluss zu steuern. Die untenstehende Tabelle 1 veranschaulicht verschiedene beispielhafte Ordnungsregeln für ein PNC-Protokoll (vorliegend auch als „PNC-Ordnungsregeln“ bezeichnet) und gibt z.B. an, welche Flussklasse während einer Arbitrierung der Befehle mittels einer gemeinsamen Verbindung eine andere Flussklasse überholen kann. In einigen Ausführungsformen sind die Regeln in Tabelle 1 im PNC-Bereich anwendbar (und z.B. nicht notwendigerweise im RR-Bereich). Tabelle 1 (PNC-Ordnungsregel)
    Regel Nr. Regelbeschreibung
    1 Innerhalb der gleichen Flussklasse wird die Ordnung bewahrt
    2 Non-Posted darf nicht Posted überholen
    3 Abschluss darf nicht Posted überholen
    4 Posted darf alle anderen Flussklassen überholen
    5 Abschluss darf Non-Posted überholen
    6 Non-Posted darf unter Umständen Abschluss überholen
  • In einigen Ausführungsformen stellt Regel 1 der Tabelle 1 sicher, dass für eine gegebene Flussklasse eine Ordnung, in welcher die Befehle empfangen werden, bewahrt wird. Falls beispielsweise, gemäß 3, der P-Fluss 312a1 eine Abfolge von P-Befehlen vom Initiator 204a empfängt und die P-Befehle in den FIFO-Zwischenspeicher 338a geladen werden, gleicht eine Ordnung, in der die P-Befehle durch den Arbitrierer 334a ausgegeben werden, der Ordnung, in der die P-Befehle in der Abfolge vorliegen. Auch wenn der Arbitrierer 334a wahrscheinlich NP-Befehle und/oder C-Befehle innerhalb der durch den Arbitrierer 334a ausgegebenen P-Befehle verschränken wird, kann in der Ausgabe des Arbitrierers kein P-Befehl im Fluss 312a1 einen anderen P-Befehl überholen. Falls beispielsweise ein erster P-Befehl im P-Fluss 312a1 (und auch im Zwischenspeicher 338a) einem zweiten P-Befehl vorausgeht, wird der erste P-Befehl durch den Arbitrierer 334a immer vor dem zweiten P-Befehl ausgegeben (auch wenn sich zwischen dem ersten und dem zweiten durch den Arbitrierer 334a ausgegebenen P-Befehl dazwischenliegende NP- und/oder C-Befehle befinden können). Ebenso wird eine im NP-Fluss 312b1 (bzw. im C-Fluss 316c2) vorhandene Abfolge der NP-Befehle (bzw. der C-Befehle) in der Ausgabe des Arbitrierers 334a beibehalten. Regel 1 erhält somit die grundsätzliche Konsistenz des PNC-Protokolls aufrecht.
  • In einigen Ausführungsformen stellt Regel 2 der Tabelle 1 sicher, dass, falls ein NP-Befehl (z.B. aus dem NP-Fluss 312b1) und ein P-Befehl (z.B. aus dem P-Fluss 312a1) durch einen Arbitrierer (z.B. den Arbitrierer 334a) gleichzeitig oder annähernd gleichzeitig empfangen werden, der NP-Befehl nicht den P-Befehl überholen darf. Beispielsweise stellt der Arbitrierer 334a sicher, dass der P-Befehl dem NP-Befehl vorangeht. In einigen Ausführungsformen handelt es sich beim NP-Befehl grundsätzlich um einen Lesebefehl und beim P-Befehl grundsätzlich um einen Schreibbefehl ohne Bestätigung. Regel 2 der Tabelle 2 stellt somit sicher, dass ein Read-after-Write- (RAW-) Konflikt verhindert wird (z.B. indem sichergestellt wird, dass für eine gegebene Speicheradresse vorgesehene Daten zuerst in die Speicheradresse geschrieben und dann aus dieser gelesen werden).
  • In einigen Ausführungsformen stellt Regel 3 der Tabelle 1 sicher, dass ein C-Befehl keinen P-Befehl überholen kann, z.B. falls der C-Befehl (z.B. aus dem C-Fluss 316c2) und der P-Befehl (z.B. aus dem P-Fluss 312a1) durch einen Arbitrierer (z.B. den Arbitrierer 334a) gleichzeitig oder annähernd gleichzeitig empfangen werden. In einigen Ausführungsformen stellt eine solche Regel eine Grundordnung im PNC-Protokoll sicher, was erfordert, dass einem geposteten Befehl Priorität vor einem Abschlussbefehl eingeräumt wird.
  • In einigen Ausführungsformen stellt Regel 4 der Tabelle 1 sicher, dass ein P-Befehl Befehle aller anderen Klassen überholen kann, z.B. bei gleichzeitigem oder annähernd gleichzeitigem Empfang durch einen Arbitrierer der P-Befehl einen NP-Befehl und/oder einen C-Befehl überholen kann. Falls beispielsweise durch einen Arbitrierer (z.B. den Arbitrierer 334a) ein P-Befehl (z.B. aus der P-Flussklasse 312a1) gleichzeitig oder im Wesentlichen gleichzeitig mit einem C-Befehl (z.B. aus dem C-Fluss 316c2) und/oder einem NP-Befehl (z.B. aus dem NP-Fluss 312b1) empfangen wird, dann gestattet der Arbitrierer, dass der P-Befehl den NP-Befehl und/oder den C-Befehl überholt. In einigen Ausführungsformen stellt eine solche Regel sicher, dass Deadlocks (Verklemmungen) im PNC-Netz vermieden werden.
  • In einigen Ausführungsformen stellt Regel 5 der Tabelle 1 sicher, dass ein C-Befehl einen NP-Befehl überholen kann, z.B. falls der C- und der NP-Befehl durch einen Arbitrierer gleichzeitig oder annähernd gleichzeitig empfangen werden. In einigen Ausführungsformen stellt eine solche Regel zudem sicher, dass Deadlocks im PNC-Protokoll vermieden werden. Beispielsweise stellt eine solche Regel sicher, dass ein C-Befehl, der mit einem vorangegangenen NP-Befehl zusammenhängt (z.B. wenn der C-Befehl in Reaktion auf einen vorangegangenen NP-Befehl erfolgt), vor einem aktuellsten NP-Befehl passieren darf, wodurch z.B. eine Deadlock-Situation vermieden wird. In einigen Ausführungsformen stellt Regel 6 der Tabelle 1 sicher, dass ein NP-Befehl unter Umständen einen C-Befehl überholen darf.
  • In einigen Ausführungsformen wird in einem RR-Protokoll eine Ordnungsregel verwendet, um verschiedene Arten von Befehlen zu arbitrieren und deren Fluss zu steuern. Die untenstehende Tabelle 2 veranschaulicht verschiedene beispielhafte Ordnungsregeln für ein RR-Protokoll und gibt z.B. an, wie Flussklassen im RR-Bereich gehandhabt werden. In einigen Ausführungsformen verhindern diese Regeln eine Deadlock-Situation im RR-Netz. Tabelle 2 (RR-Regel)
    Regel Nr. Regelbeschreibung
    1 Aufforderungs- und Antwortnetz sind unabhängig.
    2 Ziele, die eine Aufforderung angenommen haben, sind in der Lage, die Antwort nach einer endlichen Zeitspanne zu erzeugen, ungeachtet dessen, was weiter über das Aufforderungsnetz eintrifft. Ziele können jedoch die Annahme weiterer Aufforderungen einstellen, solange ihr Limit an ausstehenden Antworten erreicht wird.
    3 Initiatoren, die eine Aufforderung abgesendet haben, die eine Antwort
    erzeugt, akzeptieren diese Antwort nach einer endlichen Zeitspanne, ungeachtet weiterer Aufforderungen, die sie eventuell erzeugen (wollen).
  • In einigen Ausführungsformen schreibt Regel 1 der Tabelle 2 vor, dass Aufforderungen unabhängig von Antworten gehandhabt werden und das Aufforderungsnetz vom Antwortnetz unabhängig ist. Diese Regel stellt beispielsweise sicher, dass ein Stillstand in einem Aufforderungsnetz nicht das Antwortnetz beeinträchtigt oder umgekehrt.
  • In einigen Ausführungsformen stellt Regel 2 der Tabelle 2 sicher, dass ein Ziel (z.B. das Ziel 104b der Einrichtung 104 der 4), das eine Aufforderung angenommen hat, in der Lage ist, nach einer endlichen Zeitspanne eine entsprechende Antwort zu erzeugen, ungeachtet weiterer Aufforderungen, die über das Aufforderungsnetz kommen. Dies stellt sicher, dass eine Antwort auf eine Aufforderung innerhalb einer endlichen Zeitspanne erzeugt wird, ungeachtet der Anzahl an Aufforderungen, die ein Ziel nachträglich noch empfängt. Diese Regel ermöglicht es einem Ziel beispielsweise auch, die Annahme von Aufforderungen einzustellen, falls beispielsweise das Limit des Ziels an ausstehenden Antworten erreicht wird (z.B. sobald die Anzahl ausstehender Antworten einen Grenzwert erreicht hat).
  • In einigen Ausführungsformen stellt Regel 3 der Tabelle 2 sicher, dass ein Initiator (z.B. der Initiator 104a der Einrichtung 104 der 4), der eine Aufforderung abgesendet hat, die eine Antwort erzeugt, diese Antwort nach einer endlichen Zeitspanne akzeptiert, ungeachtet weiterer Aufforderungen, die der Initiator eventuell erzeugen möchte. Beispielsweise sei angenommen, dass der Initiator 104a über den Aufforderungsfluss 450a eine erste Aufforderung überträgt, woraufhin der Initiator 104a nach einiger Zeit eine erste Antwort empfängt. Regel 3 schreibt vor, dass der Initiator 104a die erste Antwort innerhalb einer endlichen Zeitspanne des Empfangs der ersten Antwort akzeptiert, ungeachtet weiterer Aufforderungen, die der Initiator 104a eventuell erzeugen möchte.
  • In einigen Ausführungsformen können einige der Regeln der Tabelle 1 betreffend das PNC-Netz zu einigen der Regeln der Tabelle 2 betreffend das RR-Netz in Widerspruch stehen oder diese verletzen. Beispielsweise kann die Regel 3 der Tabelle 1 (die z.B. besagt, dass Abschluss nicht Posted überholen darf) in Widerspruch zur Regel 1 der Tabelle 2 (die z.B. besagt, dass Aufforderungs- und Antwortnetz unabhängig sind) stehen. Da beispielsweise Antworten von einem Ziel keine geposteten Schreibaufforderungen des Initiatorteils auf der gleichen gemeinsamen Netzschnittstelle überholen dürfen (wie z.B. durch die PNC-Regel 3 der Tabelle 1 vorgeschrieben), kommen die Antworten möglicherweise nicht mehr unabhängig von den Aufforderungen voran (was z.B. die RR-Regel 1 der Tabelle 1 verletzen kann). Falls also eine Netzschnittstelle so konstruiert wird, dass sie dafür sorgt, dass ein gemäß Standardbusprotokoll arbeitendes Initiator/Ziel-Paar den PNC-Ordnungsregeln folgt (z.B. damit dieses mit einer PNC-Komponente kommunizieren kann), so muss sichergestellt werden, dass für die Menge an ausstehenden ungeposteten Aufforderungen an ein Ziel deren Antworten in einem separaten Zwischenspeicher gespeichert werden können. Ein solcher separater Zwischenspeicher kann sich beispielsweise innerhalb eines Übersetzers einer Netzschnittstelle befinden (wobei auf den Übersetzer einer Netzschnittstelle an späterer Stelle noch eingegangen wird), wie z.B. in den Netzschnittstellen der 3 bis 5 veranschaulicht. Eine solche Anordnung kann beispielsweise sicherstellen, dass eine Antwort im Zwischenspeicher verweilt, bis beispielsweise die PNC-Ordnungsregeln (z.B. aus Tabelle 1) ein Voranschreiten der Antwort nach den geposteten Aufforderungen des Initiators gestattet. Eine solche Anordnung kann beispielsweise auch sicherstellen, dass das Aufforderungsnetz zu einem Ziel nicht angehalten wird, weil Antworten nicht voranschreiten können, wodurch die Verletzung der Regel 1 der Tabelle 2 behoben und eine Verletzung der Regel 3 der Tabelle 2 vermieden wird.
  • In einigen Ausführungsformen wird in einem PNC-Protokoll eine Gruppe von Regeln verwendet, um Deadlocks in einem PNC-Netz zu vermeiden. Die untenstehende Tabelle 3 veranschaulicht verschiedene beispielhafte Regeln zur Deadlock-Vermeidung für ein PNC-Protokoll (vorliegend auch als „PNC-Deadlock-Vermeidungsregeln“ oder alternativ als PNC-DL-Regeln bezeichnet). Tabelle 3 (PNC-Deadlock-Vermeidungsregel oder PNC-DL-Regel)
    Regel Nr. Regelbeschreibung
    1 Auch wenn Initiator- und Ziel-Anschluss miteinander verbunden sind, muss die zugrunde liegende Logik separat sein.
    2 Gepostete Aufforderungen können in einem Ziel immer akzeptiert werden, unabhängig von einer etwaigen Blockierung des Initiators beim Absenden von Transaktionen.
    3 Ungepostete Aufforderungen an das Ziel können unabhängig von ungeposteten Aufforderungen akzeptiert werden, die der Initiator eventuell absenden möchte.
    4 Abschlüsse können unabhängig von etwaigem Rückstau bei Aufforderungen akzeptiert werden.
    5 Abschlüsse müssen blockierte Leseaufforderungen überholen können.
    6 Gepostete Aufforderungen dürfen stets nach einer endlichen Zeitspanne voranschreiten.
  • In einigen Ausführungsformen schreibt Regel 1 der Tabelle 3 vor, dass auch dann, wenn ein Initiatoranschluss und ein Ziel-Anschluss in einer Einrichtung miteinander verbunden sein können, eine dem Initiatoranschluss zugrunde liegende Logik unabhängig von einer dem Ziel-Anschluss zugrunde liegenden Logik arbeiten kann. Eine solche Trennung der Logik hilft beispielsweise dabei, die Regel 1 der Tabelle 2 zu erfüllen (die z.B. vorschreibt, dass ein Aufforderungsnetz und ein Antwortnetz unabhängig sind).
  • In einigen Ausführungsformen schreibt Regel 2 der Tabelle 3 vor, dass gepostete Aufforderungen in einem Ziel einer Einrichtung stets akzeptiert werden können, z.B. unabhängig von einer etwaigen Blockierung des Initiators beim Absenden von Transaktionen (z.B. Absenden von Aufforderungen). Hierbei handelt es sich beispielsweise um einen weiteren Aspekt der mit Bezug auf die vorstehende Regel 1 behandelten Unabhängigkeit zwischen Initiator- und Ziel-Logik.
  • In einigen Ausführungsformen schreibt Regel 3 der Tabelle 3 vor, dass ungepostete Aufforderungen an ein Ziel unabhängig von ungeposteten Aufforderungen akzeptiert werden können, die ein entsprechender Initiator eventuell absenden möchte. Hierbei handelt es sich beispielsweise um einen weiteren Aspekt der mit Bezug auf die vorstehende Regel 1 behandelten Unabhängigkeit zwischen Initiator- und Ziel-Logik.
  • In einigen Ausführungsformen schreibt Regel 4 der Tabelle 3 vor, dass Abschlussbefehle unabhängig von etwaigem Rückstau bei Aufforderungen in einem Initiator akzeptiert werden können. In einigen Ausführungsformen schreibt Regel 5 der Tabelle 3 vor, dass Abschlussbefehle blockierte Leseaufforderungen überholen können müssen, z.B. um sicherzustellen, dass die Abschlussbefehle letztlich auch ankommen, um einen möglichen Stillstand zu durchbrechen, der durch das Limit an ausstehenden Antworten, welches jede Logik aufweist, verursacht ist. In einigen Ausführungsformen schreibt Regel 6 der Tabelle 3 vor, dass gepostete Aufforderungen stets nach einer endlichen Zeitspanne voranschreiten dürfen, damit z.B. ein Abschlussbefehl nach einem geposteten Befehl ebenfalls voranschreiten kann.
  • In einigen Ausführungsformen erfordern die Regeln 5 und 6 der Tabelle 3, dass eine Schreibaufforderung (bei der es sich beispielsweise um einen P-Befehl handelt) und/oder eine Leseantwort (bei der es sich beispielsweise um einen C-Befehl handelt), selektiv eine Leseaufforderung (bei der es sich beispielsweise um einen NP-Befehl handelt) überholen können. In einigen Ausführungsformen muss sich, um zu ermöglichen, dass eine Leseaufforderung überholt werden kann, die Leseaufforderung auf einem Zwischenspeicher einer anderen Flussklasse bewegen als die Schreibaufforderungen und die Leseantworten. Wie in 3 bis 5 zu sehen, stellen die Netzschnittstellen sicher, dass jede Flussklasse einen entsprechenden Zwischenspeicher aufweist, wodurch die Erfüllung der Regeln 5 und 6 der Tabelle 3 erleichtert wird.
  • In einigen Ausführungsformen müssen, um Regel 6 der Tabelle 3 erfüllen zu können, einzelne Komponenten, die eine Transaktion speichern (und somit halten oder verzögern) können, zumindest separate Speicher für P-Befehle und NP-Befehle erhalten (z.B. damit die P-Befehle jederzeit NP-Befehle überholen können. Wie in 3 bis 5 zu sehen, stellen die Netzschnittstellen sicher, dass jede Flussklasse entsprechende Zwischenspeicher aufweist, wodurch die Erfüllung der Regel 6 der Tabelle 3 erleichtert wird.
  • 6 veranschaulicht ein Verbindungsnetz 600 (im Weiteren als „Netz 600“ bezeichnet), das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, gemäß einigen Ausführungsformen. In einigen Ausführungsformen umfasst das Netz 600 eine Vielzahl von Leiteinrichtungen (im Weiteren als „Router“ bezeichnet) Ra, ..., Re, die grundsätzlich im Singular bzw. im Plural als ein bzw. mehrere Router R bezeichnet werden.
  • In einigen Ausführungsformen sind die Router R in einer Baumtopologie angeordnet. Beispielsweise bildet der Router Ra einen obersten Knoten des Baums und weist zwei Äste auf, die mit zwei nachgeschalteten Rb und Rc verbunden sind. Ebenso weist der Router Rb zwei Äste auf, die mit zwei nachgeschalteten Routern Rd und Re verbunden sind. Auch wenn 6 einen Binärbaum veranschaulicht, bei dem jeder der Router Ra und Rb genau zwei untergeordnete Router aufweist, kann ein Router auch einen, drei oder mehr untergeordnete Router aufweisen. Auch wenn in 6 eine konkrete Konfiguration des Baums und eine konkrete Anzahl an Routern R veranschaulicht ist, handelt es sich bei dieser Konfiguration und Anzahl lediglich um Beispiele, die den Umfang der Offenbarung nicht einschränken.
  • In solchen Ausführungsformen stellt die Baumstruktur des Netzes 600 sicher, dass ein Router mit einem anderen Router nur durch einen einzigen und eindeutigen Weg verbunden ist. Beispielsweise ist der Router Rc mit dem Router Re über, und nur über, die Router Ra und Rb verbunden. Die Router R umfassen jegliche geeignete Leiteinrichtungen, die Datenpakete empfangen und die empfangenen Datenpakete selektiv an geeignete Bestimmungsorte leiten können. Beispielsweise kann ein Router R ein Netz darstellen, das mehrere Router, Vermittlungseinrichtungen, Busse, Mehrschichtbusse, Kreuzschienen, Zeitmultiplexleitungen für Befehls- und Dateninformationen (oder beispielsweise separate Leitungen für Befehls- und Dateninformationen), beliebige weitere geeignete Netzkomponenten etc. umfasst.
  • Jeder der Router R ist über eine entsprechende Vielzahl von Netzschnittstellen mit einer Vielzahl von Komponenten verbunden, wobei die Komponenten grundsätzlich im Singular als eine Komponente M oder im Plural als Komponenten M bezeichnet werden und wobei die Netzschnittstellen grundsätzlich im Singular als eine NI oder im Plural als NIs bezeichnet werden (und mit Nx gekennzeichnet sind, wobei N eine Netzschnittstelle anzeigt und x die Netzschnittstelle identifiziert). Beispielsweise ist der Router Ra mit den Komponenten M1a, ..., M6a z.B. jeweils über die NIs N1a, ..., N6a verbunden. Ebenso ist der Router Ra mit den Komponenten M1b, ..., M6b z.B. jeweils über die NIs N1b, ..., N6b verbunden usw. Auch wenn 6 zeigt, dass jeder Router an eine konkrete Anzahl von Komponenten gekoppelt ist, handelt es sich bei der konkreten Anzahl an Komponenten lediglich um Beispiele, die den Umfang dieser Offenbarung nicht einschränken.
  • In einigen Ausführungsformen sind im System 600 zwei benachbarte Router untereinander mittels entsprechender Signalleitungen verbunden (die z.B. die Äste des vorstehend genannten Routerbaums bilden). Beispielsweise ist der Router Ra über die Signalleitungen Sac und Sca an den Rc gekoppelt, wobei Sac die Verbindung vom Router Ra zum Router Rc darstellt und wobei Sca die Verbindung vom Router Rc zum Router Ra darstellt. Ebenso ist beispielsweise der Router Rb über die Signalleitungen Sbe und Seb an den Re gekoppelt, wobei Sbe die Verbindung vom Router Rb zum Router Re darstellt und wobei Seb die Verbindung vom Router Re zum Router Rb darstellt. Die Signalleitungen Sab, Sba, Sac, Sca etc werden grundsätzlich im Singular als Signalleitung S und im Plural als Signalleitungen S bezeichnet.
  • In einigen Ausführungsformen kann die individuelle Komponente M von jeder geeigneten Art sein, z.B. ein Verarbeitungskern (z.B. Prozessor), ein Speicher, eine Peripherieeinrichtung, eine Speicherdirektzugriffs (DMA-) Einrichtung, eine PCIe-Einrichtung, eine Universal-Serial-Bus- (USB-) Einrichtung und/oder dergleichen. Lediglich beispielhaft ist jeder Router R an Komponenten M gekoppelt, die mindestens einen Prozessor, mindestens einen Speicher und eine oder mehrere weitere Arten von Komponenten umfassen. Ein Verarbeitungskern oder ein Prozessor bezieht sich grundsätzlich auf eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), einen Netzprozessor, einen digitalen Signalprozessor, einen Universalprozessor und/oder dergleichen.
  • In einigen Ausführungsformen kann es sich bei einigen der Komponenten M um RR-Einrichtungen handeln, während es sich bei einigen anderen Komponenten um RR-Einrichtungen handeln kann. Lediglich beispielhaft kann es sich bei der Komponente M6a um eine RR-Einrichtung, bei der Komponente M5a hingegen um eine PNC-Einrichtung handeln.
  • In einigen Ausführungsformen kann es sich bei einer NI im Netz 600 um eine von zwei Arten handeln, z.B. basierend auf einer Art von Komponente, mit der die NI verbunden ist. Falls beispielsweise eine NI mit einer RR-Komponente verbunden ist, ähnelt die NI der NI 430a der 4 (z.B. handelt es sich bei der NI um eine RR-NI). Falls andererseits eine NI mit einer PNC-Komponente verbunden ist, so ähnelt die NI der NI 430b der 4 (z.B. handelt es sich bei der NI um eine PNC-NI). Für das Beispiel, in dem es sich bei der Komponente M6a um eine RR-Einrichtung und bei der Komponente M5a um eine PNC-Einrichtung handelt, ist somit die N6a eine RR-NI und die N5a eine PNC-NI. Beispielsweise weist die N6a zwei Übersetzer auf (z.B. ähnlich den Übersetzern 402a und 402b der 4), welche die RR-Befehle von der Komponente M6a in PNC-Befehle übersetzen. In einigen Ausführungsformen entsprechen die Router R und die Signalleitungen S der 6 beispielsweise jeweils den Routern 350, 450 und 550 der 3 bis 5.
  • In einigen Ausführungsformen arbeiten die Router R und die Signalleitungen S gemäß dem PNC-Protokoll (z.B. bilden ein PNC-Netz). Somit verbindet das die Router R und die Signalleitungen S umfassende PNC-Netz eine oder mehrere PNC-Komponenten und/oder eine oder mehrere RR-Komponenten untereinander. Für individuelle Komponenten M, die gemäß dem PNC-Protokoll arbeiten, muss die entsprechende NI keinen Übersetzungsarbeitsschritt durchführen, während für die individuellen Komponenten M, die gemäß dem RR-Protokoll arbeiten, die entsprechende NI eine Übersetzung zwischen dem RR- und dem PNC-Protokoll durchführt, z.B. wie mit Bezug auf 4 behandelt.
  • In einigen Ausführungsformen weist jeder Router eine/n oder mehrere Zwischenspeicher, Arbitrierer, Vermittlungseinrichtungen etc. auf, auch wenn nicht alle diese Komponenten in 6 veranschaulicht sind. Beispielsweise sind in 6 zwei Zwischenspeicher Ba1 und Ba2 des Routers Ra veranschaulicht. In einem Beispiel ist der Zwischenspeicher Ba1 dafür konfiguriert, Daten zwischenzuspeichern, die zwischen dem Router Ra und der Netzschnittstelle N1a übertragen werden. In einigen Ausführungsformen kann der Zwischenspeicher Ba1 mit der Netzschnittstelle N1a integriert sein. In einem Beispiel ist der Zwischenspeicher Ba2 dafür konfiguriert, Daten zwischenzuspeichern, die zwischen dem Router Ra und den Signalleitungen Sab und Sba übertragen werden. Es ist zu beachten, dass, wie vorstehend behandelt, der Router Ra auch weitere Zwischenspeicher aufweisen kann, auch wenn diese in 6 nicht veranschaulicht sind.
  • In einigen nachstehend (z.B. mit Bezug auf 7 bis 9) behandelten Beispielen wird angenommen, dass es sich bei der Komponente M1a um einen ersten Prozessor, bei der Komponente M5d um einen Speicher und bei der Komponente M6c um einen zweiten Prozessor handelt. Ferner wird angenommen, dass der erste Prozessor M1a Daten in den Speicher M5d schreiben soll, welche dann durch den zweiten Prozessor M6c gelesen werden sollen. Es wird somit, lediglich beispielhaft, angenommen, dass es sich beim ersten Prozessor M1a um einen Produzenten der Daten, beim Speicher M5d um ein Ziel der Daten und beim zweiten Prozessor M6c um einen Konsumenten der Daten handelt.
  • Damit der Produzent M1a Daten in den Speicher M5d schreiben kann, muss der Produzent M1a eine Abfolge von Schreibbefehlen an den Speicher M5d übertragen. Für das PNC-Netz (das z.B. die Router R und die Signalleitungen S umfasst) kann es sich bei einem Schreibbefehl beispielsweise um einen geposteten Befehl handeln (wobei z.B. angenommen wird, dass der Schreibbefehl keine Bestätigung benötigt). Beim Produzenten M1a kann es sich entweder um eine RR-Einrichtung (wobei dann die RR-Einrichtung eine Schreibaufforderung ausgibt, welche die Netzschnittstelle N1a in einen geposteten Befehl übersetzt) oder um eine PNC-Einrichtung handeln (wobei dann die PNC-Einrichtung einen geposteten Befehl ausgibt).
  • 7 veranschaulicht die Übertragung von Schreibdaten vom Produzenten M1a an den Speicher M5d des Netzes 600 der 6 gemäß einigen Ausführungsformen. Beispielsweise werden die Schreibdaten in Form geposteter Befehle entlang der gestrichelten Linie z.B. vom Produzenten M1a zur Speicherkomponente M5d über die Netzschnittstelle N1a, den Router Ra (einschließlich z.B. des Zwischenspeichers Ba1 und des Zwischenspeichers Ba2), die Signalleitung Sab, den Router Rb, die Signalleitung Sbd, den Router Rd und die Netzschnittstelle N5d übertragen.
  • Wie behandelt, gibt der Produzent M1a eine Abfolge von Schreibbefehlen aus. Lediglich beispielhaft sei angenommen, dass der Produzent M1a eine Abfolge aus vier Schreibbefehlen ausgibt. In einigen Ausführungsformen werden aufgrund der Regel 1 der Tabelle 1 (z.B. Regel 1 der PNC-Ordnungsregeln), die besagt, dass die Ordnung innerhalb der gleichen Flussklasse bewahrt wird, die ersten drei Schreibbefehle vom Produzenten M1a an den Speicher M5d übertragen, bevor z.B. der vierte (z.B. der letzte) Schreibbefehl übertragen wird. Die Schreibdaten im vierten bzw. letzten Schreibbefehl werden auch als letzte Schreibdaten (LWD, Last Write Data) 704 bezeichnet, da es sich bei den LWD 704 um die letzten Schreibdaten in der vom Produzenten M1a an den Speicher M5d übertragenen Abfolge von Schreibdaten handelt (die LWD 704 sind in den Figuren mittels eines diagonal schraffierten Rechtecks veranschaulicht).
  • In einigen Ausführungsformen gibt im Anschluss an die Ausgabe der vier Schreibbefehle durch den Produzenten M1a zum Schreiben in den Speicher M5d der Produzent M1a einen Interrupt 708 an den Konsumenten M6c aus. Beim Interrupt 708 handelt es sich beispielsweise um einen Versuch, den Konsumenten M6c auf den Schreibvorgang in den Speicher M5d hinzuweisen, so dass der Konsument M6c die Daten aus dem Speicher M5d lesen kann. In einigen Ausführungsformen kann der Interrupt 708 unter Umgehung des Netzes 600 übertragen werden (z.B. unter Umgehung der Router R und der Signalleitungen S), wie in 7 veranschaulicht.
  • In einigen Ausführungsformen wird der Interrupt 708 erzeugt und übertragen, während beispielsweise der vierte (z.B. der letzte) Schreibbefehl noch innerhalb des Routers Ra verweilt (z.B. weil der Interrupt 704 durch den Produzenten M1a übertragen wird, sobald der Produzent M1a den letzten Schreibbefehl ausgibt, ohne darauf zu warten, dass die LWD 704 den Speicher M5d erreichen). Beispielsweise befinden sich die LWD 704 noch innerhalb des Routers Ra (oder können sich noch innerhalb der NI N1a befinden). Beispielsweise zeigt 7, dass sich die LWD 704 innerhalb des Zwischenspeichers Ba1 befinden, wobei sich die LWD 704 jedoch auch innerhalb der Netzschnittstelle N1a befinden können.
  • In einigen Ausführungsformen kommuniziert der Konsument M6c mit dem Produzenten M1a nach dem Empfangen des Interrupts 708 durch den Konsumenten M6c, z.B. wie in 8 veranschaulicht. Beispielsweise sendet, wie in 8 veranschaulicht, der Konsument M6c in Reaktion auf das Empfangen des Interrupts 708 der 7 eine Konsumenten-Lesestatusmitteilung, bei der es sich um einen NP-Befehl 810 handelt, an den Produzenten M1a. Beim Befehl 810 handelt es sich um einen NP-Befehl, da der Produzent M1a auf den Befehl 810 mit einem entsprechenden Abschlussbefehl antworten muss. In einem Beispiel informiert der Interrupt 708 den Konsumenten M6c lediglich über für den Konsumenten M6c verfügbare relevante Informationen, wobei die Informationen im Produzenten M1a gespeichert sind. Somit überträgt basierend auf dem Interrupt 780 der Konsument M6c den NP-Befehl 810, z.B. um die Einzelheiten in Zusammenhang mit dem Interrupt 708 zu erfahren.
  • In einigen Ausführungsformen überträgt der Produzent M1a in Reaktion auf das Empfangen des NP-Befehls 810 eine Konsumenten-Statusmitteilung, bei welcher es sich um einen C-Befehl 812 handelt, an den Konsumenten M6c. Der C-Befehl 812 gibt beispielsweise an, dass der Produzent M1a Daten in den Speicher M5d geschrieben hat und dass der Konsument M6c die Daten aus dem Speicher M5d lesen kann.
  • In einigen Ausführungsformen werden der NP-Befehl 810 und der C-Befehl 812 über den Zwischenspeicher Ba1 und/oder die Netzschnittstelle N1a übertragen. Zudem verweilten in 7 noch die LWD 704 im Zwischenspeicher Ba1 und/oder der Netzschnittstelle N1a. In einem Beispiel schiebt der C-Befehl 812 die LWD 704 aus dem Zwischenspeicher Ba1 und/oder der Netzschnittstelle N1a derart, dass die LWD 704 zumindest den Zwischenspeicher Ba2 erreichen. Der C-Befehl 812 kann die LWD 704 aus dem Zwischenspeicher Ba1 und/oder der Netzschnittstelle N1a schieben, weil die LWD 704 Teil eines P-Befehls sind und Regel 3 der PNC-Ordnungsregeln (z.B. Tabelle 1) vorschreibt, dass Abschluss nicht Posted überholen darf (was z.B. beinhaltet, dass ein C-Befehl einen P-Befehl durch einen Arbitrierer/Zwischenspeicher schiebt). Aufgrund dieser Regel werden die LWD 704 durch den C-Befehl 812 aus dem Zwischenspeicher Ba1 und/oder der Netzschnittstelle N1a geschoben, wie in 8 veranschaulicht.
  • Sobald der Konsument M6c den C-Befehl 812 empfangen hat, weiß der Konsument M6c, dass er Daten aus dem Speicher M5d lesen muss (z.B. auf Grundlage einer Analyse des C-Befehls 812). Entsprechend überträgt der Konsument M6c eine Konsumenten-Leseaufforderung, bei der es sich um einen NP-Befehl 910 handelt, an den Speicher, wie in 9 veranschaulicht. Der NP-Befehl 910 wird über den Zwischenspeicher Ba2 des Routers Ra und die Router Rb und Rd übertragen.
  • Zudem ist zu beachten, dass in 8 noch die LWD 704 im Zwischenspeicher Ba2 des Routers Ra verweilten. Des Weiteren schreibt Regel 2 der PNC-Ordnungsregeln (z.B. Tabelle 1) vor, dass Non-Posted nicht Posted überholen darf (was z.B. beinhaltet, dass ein NP-Befehl einen P-Befehl schiebt). Entsprechend schiebt der NP-Befehl 910 die LWD 704 (die z.B. Teil eines P-Befehls sind) bis zum Speicher M5d. Beispielsweise wird aufgrund der Regel 2 der PNC-Ordnungsregeln sichergestellt, dass die LWD 704 den Speicher M5d erreichen, bevor der NP-Befehl 910 (bei dem es sich z.B. um eine Leseaufforderung zum Lesen von Daten aus dem Speicher M5d handelt) den Speicher M5d erreicht.
  • Nach Ausführung des Lese-Arbeitsschritts im Speicher M5d werden die Lesedaten vom Speicher M5d als Abschlussbefehl 912 zurück an den Konsumenten M6c übertragen.
  • Das Netz 600 vermeidet somit einen Read-before-Write- (RAW-) Konflikt und erhält die Datenkonsistenz aufrecht. Selbst wenn beispielsweise der Produzent M1a den Interrupt 708 ausgibt, bevor die LWD 704 den Speicher M5d erreichen, stellt das Netz 600 sicher, dass der NP-Befehl 910 zum Lesen der Daten erst ausgeführt wird (d.h. der Lesevorgang erst ausgeführt wird), nachdem die LWD 704 den Speicher M5d tatsächlich erreichen.
  • 10 veranschaulicht ein Verbindungsnetz 1000 (im Weiteren als „Netz 1000“ bezeichnet), das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, wobei sich eine Interrupt-Erzeugungseinheit innerhalb einer Netzschnittstelle befindet, gemäß einigen Ausführungsformen. Das Netz 1000 ähnelt dem Netz 600 der 6 bis 9, so dass nicht näher auf dieses eingegangen wird. Es ist zu beachten, dass aus Gründen einer übersichtlichen Darstellung einige der Router (z.B. Router Rd) und/oder Komponenten in 10 nicht dargestellt sind. In einigen Ausführungsformen ist der Router Rd möglicherweise im Netz 1000 nicht vorhanden.
  • Ähnlich den 6 bis 9 wird in einigen nachstehenden Beispielen angenommen, dass es sich bei der Komponente M4a um einen ersten Prozessor, bei der Komponente M7e um einen Speicher und bei der Komponente M7c um einen zweiten Prozessor handelt. Ferner wird angenommen, dass der erste Prozessor M4a Daten in den Speicher M7e schreibt, welche dann durch den zweiten Prozessor M7c gelesen werden sollen. Es wird somit, lediglich beispielhaft, angenommen, dass es sich beim ersten Prozessor M4a um einen Produzenten der Daten, beim Speicher M7e um ein Ziel der Daten und beim zweiten Prozessor M7c um einen Konsumenten der Daten handelt.
  • Lediglich beispielhaft wird angenommen, dass die zu schreibenden Daten in drei Schreibbefehlen enthalten sein können. In einigen Ausführungsformen gibt der Produzent M4a eine Abfolge aus Schreibbefehlen aus, die beispielsweise eine Abfolge aus P-Befehlen P1012 umfasst. Die Schreibdaten sind beispielsweise in drei P-Befehlen P1, P2 und P3 enthalten. In einigen Ausführungsformen hängt der Produzent M4a den drei Schreibbefehlen ferner einen zusätzlichen P-Befehl P4 an. Die Abfolge aus P-Befehlen P1012 umfasst somit P-Befehle P1, ..., P4, wobei es sich bei P1, P2 und P3 um Schreibbefehle und beim Befehl P4 nicht um einen Schreibbefehl handelt. In einigen Beispielen kann der Befehl P4 als ein Dummy-Schreibbefehl betrachtet werden. Wie in 10 veranschaulicht, werden die P-Befehle P1012 vom Produzenten M4a an die dem Zielspeicher M7e zugeordnete Netzschnittstelle N7e übertragen (was z.B. mittels der gestrichelten Linien veranschaulicht ist).
  • In einigen Ausführungsformen umfasst die Netzschnittstelle N7e neben anderen Komponenten einen Adressendecodierer 1004 und eine Interrupt-Erzeugungseinheit 1008. Der Adressendecodierer 1004 decodiert die Adressen einzelner durch die Netzschnittstelle N7e empfangener Befehle und leitet den Befehl zu einem geeigneten Bestimmungsort. Beispielsweise handelt es sich bei den P-Befehlen P1, P2 und P3, die in der Abfolge aus P-Befehlen P1012 enthalten sind, um Schreibbefehle, die für den Speicher M7e bestimmt sind. Entsprechend leitet der Adressendecodierer 1004 die P-Befehle P1, P2 und P3 zum Speicher M7e. Es ist zu beachten, dass, falls es sich beispielsweise beim Speicher M7e um eine RR-Einrichtung handelt, die Netzschnittstelle N7e vor dem Übertragen an den Speicher M7e eine Übersetzung der P-Befehle in geeignete Schreibaufforderungen vornimmt.
  • In einigen Ausführungsformen handelt es sich beim letzten P-Befehl in der Abfolge der P-Befehle 1012 (z.B. beim P4-Befehl) nicht um einen Schreibbefehl. Beispielsweise handelt es sich bei einer dem Befehl P4 zugeordneten Bestimmungsadresse nicht um den Speicher M7e. Lediglich beispielhaft ist der der Netzschnittstelle N7e zugewiesene Adressraum in zwei Sektionen unterteilt: eine erste Sektion mit Adressen, die dem Speicher M7e zugewiesen sind, und eine zweite Sektion, die einer Interrupt-Erzeugungseinheit 1008 zugewiesen ist. Die zweite Sektion weist relativ gesehen weniger Adressen auf als die erste Sektion. Der Befehl P4, bei welchem es sich um den letzten Befehl in der Abfolge der P-Befehle 1012 handelt, wird somit an die Interrupt-Erzeugungseinheit 1008 übertragen.
  • Es ist zu beachten, dass Regel 1 der PNC-Ordnung (z.B. in Tabelle 1) vorschreibt, dass innerhalb der gleichen Flussklasse die Ordnung bewahrt wird. Da es sich bei sämtlichen Befehlen P1, ..., P4 um P-Befehle handelt, hat somit zu dem Zeitpunkt, da die Netzschnittstelle N7e den Befehl P4 empfängt, die Netzschnittstelle N7e auch die Befehle P1, ..., P3 empfangen.
  • In einigen Ausführungsformen erzeugt die Interrupt-Erzeugungseinheit 1008, sobald sie den Befehl P4 empfängt, einen Interrupt 1102 für den Konsumenten M7c, wie in 11 veranschaulicht. Beim Interrupt kann es sich beispielsweise um einen P-Befehl handeln. Auch wenn dies in den Figuren nicht veranschaulicht ist, führt der Konsument M7c nach dem Empfangen des Interrupts 1102 einen Lese-Arbeitsschritt durch, um die Daten (die z.B. soeben über die Befehle P1, P2, P3 geschrieben wurden) aus dem Speicher M7e zu lesen. Der Lesevorgang ähnelt dem mit Bezug auf 9 diskutierten, so dass hier nicht näher darauf eingegangen wird.
  • Somit stellt in einigen Ausführungsformen der letzte P-Befehl in der Abfolge der P-Befehle 1012 der 10, welcher an die Interrupt-Erzeugungseinheit 1008 adressiert ist, sicher, dass beispielsweise der durch den Prozessor M7c initiierte Lesevorgang erst erfolgt, nachdem die Daten aus den P-Befehlen P1, P2 und P3 tatsächlich in den Speicher M7e geschrieben wurden. Der Interrupt 1102 der 11 wird beispielsweise erst erzeugt, nachdem alle Schreibbefehle (z.B. die P-Befehle P1, P2 und P3) tatsächlich in der Netzschnittstelle N7e eingetroffen sind. Dies verhindert ein versehentliches Lesen von Daten, bevor diese in den Speicher geschrieben werden, und verhindert z.B. den vorstehend behandelten Read-after-Write- oder RAW-Konflikt und stellt die Datenkonsistenz im Netz 1000 sicher.
  • Auch wenn 11 eine Übertragung des Interrupts 1102 über das Netz 1000 (z.B. über die Router Re, Rb, Ra und Rc) zeigt, kann in einigen anderen Ausführungsformen (auch wenn dies in 11 nicht gezeigt ist) der Interrupt 1102 stattdessen unter Umgehung der Router Re, Rb, Ra und Rc von der Netzschnittstelle N7e an den Konsumenten M7c übertragen werden. Beispielsweise kann der Interrupt 1102 von der Netzschnittstelle N7e an den Konsumenten M7c über eine direkte Signalleitung übertragen werden, welche die Netzschnittstelle N7e und den Konsumenten M7c verbindet. Ein solches Kommunizieren eines Interrupts über eine direkte Signalleitung wird mit Bezug auf 7 behandelt (wo z.B. der Interrupt 708 über eine direkte Signalleitung übertragen wird). In einigen Ausführungsformen kann in 11 ein Adressfeld oder ein Datenfeld des Befehls P4 eine Identifikation der direkten Signalleitung codieren, welche die Netzschnittstelle N7e verwenden soll, um den Interrupt 1102 zu übertragen. In einigen Ausführungsformen wird auch dann, wenn der Interrupt 1102 über eine die Netzschnittstelle N7e und den Konsumenten M7c verbindende direkte Signalleitung übertragen wird, der vorstehend behandelte RAW-Konflikt verhindert, z.B. weil der Interrupt 1102 erst erzeugt wird, nachdem die vollständigen Schreibdaten zumindest in der NI N7e eingetroffen sind. Somit kann zur Übertragung des Interrupts 1102 von der Netzschnittstelle N7e an den Konsumenten M7c jeder Transportmechanismus gewählt werden (z.B. entweder (i) über das Netz 1000, umfassend die Router Re, Rb, Ra, Rc, oder (ii) über eine die Netzschnittstelle N7e und den Konsumenten M7c verbindende direkte Signalleitung), ohne die korrekte Schreib- und Leseordnung zu verlieren.
  • 12 veranschaulicht ein Verbindungsnetz 1200 (im Weiteren als „Netz 1200“ bezeichnet), das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, wobei ein ungeposteter Befehl nach einer Reihe geposteter Schreibbefehle ausgeführt wird, gemäß einigen Ausführungsformen. Das Netz 1200 ähnelt dem Netz 1000 der 10 bis 11, so dass nicht näher auf dieses eingegangen wird.
  • Ähnlich den 10 bis 11 wird in einigen nachstehend behandelten Beispielen angenommen, dass der erste Prozessor M4a Daten in den Speicher M7e schreibt, welche dann durch den zweiten Prozessor M7c gelesen werden sollen. Es wird somit, lediglich beispielhaft, angenommen, dass es sich beim ersten Prozessor M4a um einen Produzenten der Daten, beim Speicher M7e um ein Ziel der Daten und beim zweiten Prozessor M7c um einen Konsumenten der Daten handelt.
  • Ähnlich den 10 bis 11 wird beispielhaft angenommen, dass die zu schreibenden Daten in drei Schreibbefehlen P1, P2 und P3 enthalten sein können. In der Ausführungsform der 12 folgt auf die drei Schreibbefehle P1, P2 und P3 ein ungeposteter Dummy-Schreibbefehl NP1. Somit wird durch den Produzenten N4a eine Abfolge aus geposteten/ungeposteten (P-/NP-) Befehlen 1212 übertragen, welche die Befehle P1, P2, P3 und NP1 umfasst.
  • Zudem legt Regel 2 der Tabelle 1 fest, dass ein ungeposteter Befehl einen geposteten Befehl nicht überholen darf. Entsprechend müssen zu dem Zeitpunkt, da der Befehl NP1 die Netzschnittstelle N7e erreicht, die geposteten Befehle P1, P2 und P3 die Netzschnittstelle N7e bereits erreicht haben.
  • In einigen Ausführungsformen wird der Befehl NP1 durch den Adressendecodierer 1004 an ein Register 1202 in der Netzschnittstelle N7e übertragen. Zudem überträgt die Netzschnitstelle N7e in Reaktion auf den NP1-Befehl einen Abschlussbefehl C1220 an den Produzenten M4a. Erst nach dem Empfangen des C-Befehls 1220 erzeugt der Produzent M4a einen Interrupt (in 12 nicht gezeigt) an den Konsumenten M7c zum Lesen der Daten aus dem Speicher M7e. Der Interrupt wird somit erst erzeugt, nachdem die Befehle P1, P2 und P3 zumindest die Netzschnittstelle N7e erreicht haben, wodurch ein möglicher Read-after-Write- bzw. RAW-Konflikt im Netz 1200 verhindert wird.
  • 12 zeigt, wie das Register 1202 in der Netzschnittstelle N7e den ungeposteten Befehl NP1 handhabt. In einigen Ausführungsformen kann jedoch das Speicherziel M7e ungepostete Schreibbefehle unterstützen. In solchen Ausführungsformen kann der ungepostete Befehl NP1 an den Speicher M7e (z.B. anstatt des Registers 1202) übertragen werden. Beispielsweise kann in einer solchen Ausführungsform das Register 122 in der Netzschnittstelle N7e sogar fehlen.
  • In einigen Ausführungsformen kann, auch wenn dies in 12 nicht gezeigt ist, auf die letzten Schreibdaten P3 (wenn z.B. angenommen wird, dass gepostete Befehle P1, P2 und P3 Schreibdaten darstellen) ein ungeposteter Lesebefehl folgen (z.B. anstatt des ungeposteten Schreibbefehls NP1). Da der Speicher M7e grundsätzlich dafür ausgelegt ist, mit ungeposteten Lesebefehlen umzugehen, erfordert ein solches Beispiel potentiell nicht das Register 1202, um den letzten ungeposteten Lesebefehl zu handhaben (z.B. kann das Register 1202 in der NI N7e sogar fehlen). Ähnlich der 12 kann auf Grundlage des ungeposteten Lesebefehls (der nach Empfang der geposteten Schreibbefehle P1, P2, P3 empfangen wird) der Speicher M7e eine Antwort (die z.B. Dummy-Lesedaten, oder auch tatsächliche Lesedaten oder etwas anderes umfasst) an entweder den Produzenten M4a oder den Konsumenten M7c übertragen. Basierend auf einer solchen Antwort (bei der es sich beispielsweise um einen Abschlussbefehl handeln kann, z.B. ähnlich dem Befehl C 1220 der 12) kann der Konsument M7c mit der Ausführung des Lese-Arbeitsschritts zum Lesen von Daten aus dem Speicher M7e beginnen. Ähnlich der 12 würde ein solcher Arbeitsschritt ebenfalls den vorstehend behandelten RAW-Konflikt verhindern.
  • Gemäß 3 bis 5 weist jede der Netzschnittstellen in diesen Figuren sechs Zwischenspeicher für verschiedene Arten von Flüssen auf. In einigen Ausführungsformen kann es in manchen Situationen möglich sein, die Anzahl an Zwischenspeichern in einer Netzschnittstelle zu verringern.
  • 13 veranschaulicht ein System 1300, das die PNC-Einrichtungen 204 und 208 der 2 bis 3 umfasst, die über das PNC-Protokoll über eine gemeinsame Verbindung kommunizieren, wobei ein gemeinsamer Zwischenspeicher mehrere Befehlsflüsse speichert, gemäß einigen Ausführungsformen. Das System 1300 ähnelt im Wesentlichen dem System 300 der 3. Beispielsweise umfassen beide Systeme 300 und 1300 ähnliche Komponenten und ähnliche Flüsse, die in den 3 und 13 mit ähnlichen Kennzeichnungen versehen sind. Beispielsweise umfasst ähnlich der 3 das System 1300 der 13 verschiedene P-Flüsse, NP-Flüsse und C-Flüsse, verschiedene Arbitrierer und verschiedene Zwischenspeicher.
  • Im Unterschied zu 3 übernimmt jedoch in 13 ein einziger gemeinsamer Zwischenspeicher 338aa die Zwischenspeicherung des P-Flusses 312a1 und des C-Flusses 316c2. Das heißt, in 3 übernahmen noch zwei verschiedene Zwischenspeicher 338a und 342a die Zwischenspeicherung des P-Flusses 312a1 bzw. des C-Flusses 316c2. In 13 hingegen sind die Zwischenspeicher 338a und 342a in einem einzigen Zwischenspeicher 338aa kombiniert, der sich nun sowohl um den P-Fluss 312a1 als auch den C-Fluss 316c2 kümmert. Ebenso übernimmt in 13 ein einziger Zwischenspeicher 346aa die Zwischenspeicherung des P-Flusses 316a2 und des C-Flusses 312c1. Zudem übernimmt in 13 ein einziger Zwischenspeicher 338bb die Zwischenspeicherung des P-Flusses 312a2 und des C-Flusses 316c1 und übernimmt ein einziger Zwischenspeicher 346bb in 13 die Zwischenspeicherung des P-Flusses 316a1 und des C-Flusses 312c2.
  • In einigen Ausführungsformen werden die PNC-Ordnungsregeln der Tabelle 1 durch das System 1300 der 13 bewahrt. Beispielsweise besagt Regel 3 der PNC-Ordnungsregeln, dass ein Abschlussbefehl nicht einen geposteten Befehl überholen darf. Da im System 1300 die C-Befehle und die P-Befehle in FIFO-Zwischenspeichern (z.B. im FIFO-Zwischenspeicher 338aa) zwischengespeichert werden, kann ein C-Befehl einen P-Befehl ohnehin nicht überholen, solange diese Befehle im gleichen FIFO-Zwischenspeicher zwischengespeichert sind. Des Weiteren kann, da die C-Befehle separat von den NP-Befehlen zwischengespeichert werden, ein C-Befehl einen NP-Befehl überholen, wodurch Regel 5 der Tabelle 1 betreffend die Vermeidung von Deadlocks erfüllt wird. Zudem schieben die C-Befehle, während sie sich durch die kombinierten Zwischenspeicher und die Arbitrierer fortbewegen, etwaige P-Befehle, die diesen vorangehen.
  • In einigen Ausführungsformen bewegen sich zwar im System 1300 die P-Befehle und die C-Befehle mit der gleichen Geschwindigkeit fort und beeinträchtigen hierdurch z.B. potentiell geringfügig die Leistung des Systems 1300 gegenüber dem System 300 der 3, jedoch verringert eine Verringerung der Zwischenspeichergrößen erheblich die Größe der zugehörigen Netzschnittstelle.
  • In einigen Ausführungsformen weist jede der Netzschnittstellen NI 1330a und 1330b vier Zwischenspeicher auf. Die Anzahl der Zwischenspeicher kann weiter verringert werden, wie in 14 veranschaulicht. 14 veranschaulicht ein System 1400, das die PNC-Einrichtungen 204 und 208 der 2 bis 3 und 13 umfasst, die über das PNC-Protokoll über eine gemeinsame Verbindung kommunizieren, wobei ein gemeinsamer Zwischenspeicher mehrere Befehlsflüsse speichert, gemäß einigen Ausführungsformen. Das System 1400 ähnelt im Wesentlichen den Systemen 300 und 1300 der 3 und 13. Beispielsweise umfassen beide Systeme 1300 und 1400 ähnliche Flüsse, die in den 13 und 14 mit ähnlichen Kennzeichnungen versehen sind. Beispielsweise umfasst ähnlich der 13 das System 1400 der 14 verschiedene P-Flüsse, NP-Flüsse und C-Flüsse, verschiedene Arbitrierer und verschiedene Zwischenspeicher.
  • Jedoch sind in der Netzschnittstelle 1430a der 14 die Zwischenspeicher 340a und 338aa der 13 in einem einzigen Zwischenspeicher 338aaa kombiniert. Ebenso sind in der Netzschnittstelle 1430a der 14 die Zwischenspeicher 346aa und 348a der 13 in einem einzigen Zwischenspeicher 346aaa kombiniert, sind in der Netzschnittstelle 1430b der 14 die Zwischenspeicher 342b und 338bb der 13 in einem einzigen Zwischenspeicher 338bbb kombiniert, und sind in der Netzschnittstelle 1430b der 14 die Zwischenspeicher 348b und 346bb der 13 in einem einzigen Zwischenspeicher 346bbb kombiniert. Somit übernimmt in 14 ein einziger Zwischenspeicher in einer Netzschnittstelle die Zwischenspeicherung jedes eines entsprechenden P-Flusses, NP-Flusses und C-Flusses. Beispielsweise wird ein FIFO-Zwischenspeicher einer einzigen Flussklasse für Schreibaufforderungen, Leseaufforderungen und Leseantworten verwendet.
  • In einigen Ausführungsformen ist möglicherweise, da für alle drei Arten von Flüssen ein einziger Zwischenspeicher verwendet wird, keine Arbitrierung am Ausgang des Zwischenspeichers (oder am Eingang des Zwischenspeichers) notwendig. Entsprechend weisen in einigen Ausführungsformen die Netzschnittstellen NI 1430a und NI 1430b im System 1400 keine Arbitrierer auf, wie in 14 veranschaulicht.
  • In einigen Ausführungsformen verletzt das System 1400 der 14 zumindest einige der Regeln der Tabelle 1 und wird daher für Situationen verwendet, in denen die Regelverletzungssituation nicht auftritt. Beispielsweise kann das System 1400 auf Situationen angewendet werden, in denen keine Möglichkeit besteht, dass Leseaufforderungen (z.B. NP-Befehle) und Leseantworten (z.B. C-Befehle) in der gleichen Richtung übertragen werden. Falls somit beispielsweise der Zwischenspeicher 338aaa NP-Befehle zwischenspeichert, dann nimmt der Zwischenspeicher 338aaa möglicherweise keine Zwischenspeicherung von C-Befehlen vor. Nimmt der Zwischenspeicher 338aaa andererseits eine Zwischenspeicherung von C-Befehlen vor, dann nimmt der Zwischenspeicher 338aaa möglicherweise keine Zwischenspeicherung von NP-Befehlen vor (z.B. weil die NP-Befehle und die C-Befehle nicht in der gleichen Richtung laufen dürfen).
  • Dass Leseaufforderungen (z.B. NP-Befehle) und Leseantworten (z.B. C-Befehle) nicht in der gleichen Richtung übertragen werden, tritt in der Praxis häufig auf. Beispielsweise kann in einem beispielhaften Netz (z.B. einem Tracedatennetz) der Initiator 208b Schreibaufforderungen durchführen, während der Initiator 204a das Netz konfigurieren und dem Netz zugeordnete Konfigurationsregister abrufen kann. Dies stellt beispielsweise sicher, dass Leseaufforderungen und Leseantworten nicht in der gleichen Richtung übertragen werden.
  • Die 13 und 14 veranschaulichen jeweils Netzschnittstellen, die zwei PNC-Einrichtungen verbinden. Die Prinzipien dieser zwei Figuren (z.B. das Kombinieren von Zwischenspeichern verschiedener Flüsse) können jedoch beispielsweise auch auf eine Netzschnittstelle angewendet werden, die eine RR-Einrichtung und eine PNC-Einrichtung verbindet. Beispielsweise können gemäß 4 die Zwischenspeicher 438a, 440a und 442a der Netzschnittstelle NI 430a ebenfalls kombiniert werden (z.B. als ein einziger Zwischenspeicher oder zwei Zwischenspeicher), wie z.B. mit Bezug auf die 13 und 14 behandelt. Die Kombination verschiedener Zwischenspeicher in der Netzschnittstelle 430a der 4 (oder den Netzschnittstellen 530a und 530b der 5) wäre z.B. auf Grundlage der mit Bezug auf die 13 und 14 gemachten Ausführungen verständlich, so dass hierauf nicht näher eingegangen wird.
  • 15 veranschaulicht ein System 1500 zum Steuern eines Zwischenspeicherausgangs 1502 eines Zwischenspeichers gemäß einigen Ausführungsformen. Der Zwischenspeicher 1502 kann beispielsweise in einer Netzschnittstelle oder einem Router (z.B. wie mit Bezug auf die 3 bis 14 behandelt) enthalten sein.
  • Der Zwischenspeicher 1502 empfängt einen Datenpakete umfassenden Eingangsfluss 1504. In einigen Ausführungsformen werden die Datenpakete in kleinere Dateneinheiten geteilt, die als Flow Control Digits (Flit) bezeichnet werden. Bei einem Flit kann es sich beispielsweise um ein Paket oder eine Sektion eines Pakets handeln. Beispielsweise umfasst der Eingangsfluss 1504 einen Strom aus Flits. Im System 1500 gibt der Zwischenspeicher 1502, sobald er ein Flit aus dem Eingangsfluss 1504 empfängt, das Flit in Form eines Ausgangsflusses 1508 aus, woraus sich eine minimale Latenz im Zwischenspeicher 1502 ergibt.
  • 16 veranschaulicht ein System 1600 zum Steuern eines Zwischenspeicherausgangs eines Zwischenspeichers 1602 gemäß einigen Ausführungsformen. Der Zwischenspeicher 1602 kann beispielsweise in einer Netzschnittstelle oder einem Router (z.B. wie mit Bezug auf die 3 bis 14 behandelt) enthalten sein. Der Zwischenspeicher 1602 empfängt einen Eingangsfluss 1604, der einen Strom aus Flits umfasst. Das System 1600 umfasst ferner einen Vergleicher 1610, der dafür konfiguriert ist, ein einen Zwischenspeicherfüllstand 1612 des Zwischenspeichers 1602 anzeigendes Signal zu empfangen. Wenn, um lediglich ein Beispiel zu nennen, der Zwischenspeicher 1602 etwa zur Hälfte gefüllt ist, zeigt der Zwischenspeicherfüllstand 1612 diese Information dem Vergleicher 1610 an. Der Vergleicher 1610 empfängt zudem einen konfigurierbaren Grenzfüllstand 1614. Der Vergleicher 1610 vergleicht den Zwischenspeicherfüllstand 1612 mit dem Grenzfüllstand 1614. Falls der Zwischenspeicherfüllstand 1612 höher ist als der Grenzfüllstand 1614, signalisiert der Vergleicher 1610 einer Ausgangsflusssteuerschaltung 1618, die Flits aus dem Zwischenspeicher 1602 in Form eines Ausgangsflusses 1608 auszugeben. Der Zwischenspeicher 1602 wird somit im Wesentlichen auf oder etwa auf oder unterhalb des Grenzfüllstands 1614 gehalten. Im System 1600 speichert der Zwischenspeicher 1602 Flits und leitet die Flits dann beispielsweise an einen Arbitrierer erst weiter, wenn im Zwischenspeicher 1602 eine ausreichende Anzahl an Flits gespeichert ist.
  • 17 veranschaulicht ein System 1700 zum Steuern eines Zwischenspeicherausgangs eines Zwischenspeichers 1702 gemäß einigen Ausführungsformen. Der Zwischenspeicher 1702 kann beispielsweise in einer Netzschnittstelle oder einem Router (z.B. wie mit Bezug auf die 3 bis 14b behandelt) enthalten sein.
  • Der Zwischenspeicher 1702 empfängt einen Eingangsfluss 1704, der einen Strom aus Flits umfasst. Beispielsweise wird eine Nachricht oder ein Befehl, die/der in den Zwischenspeicher 1702 eingegeben wird (z.B. ein P-Befehl, eine Aufforderung, eine Antwort, ein NP-Befehl, ein C-Befehl oder dergleichen) in mehrere Flits geteilt. Ein am Ende der Nachricht befindliches Flit weist eine Anzeige auf, dass es sich um das letzte Flit der Nachricht handelt. Beispielsweise stellt das letzte Flit der Nachricht eine Nachrichtenende-Anzeige bereit.
  • In einigen Ausführungsformen umfasst das System 1700 einen Nachrichtenende-Zähler 1710 (im Weiteren auch als „Zähler 1710“ bezeichnet). Der Zähler 1710 zählt die Anzahl der Nachrichtenende-Flits im Zwischenspeicher 1702. Wenn somit der Zwischenspeicher 1702 aktuell zwei vollständige Nachrichten enthält, dann weist der Zähler 1710 den Wert Zwei auf.
  • In einigen Ausführungsformen weist das System 1700 ferner eine Ausgangsflusssteuerlogik 1718 auf, die den Nachrichtenende-Zählstand vom Zähler 1710 empfängt. Falls der Zählwert höher ist als ein Grenzwert, werden die Nachrichten im Zwischenspeicher 1702 als Ausgangsfluss 1708 ausgegeben. Im System 1700 speichert der Zwischenspeicher 1702 somit Nachrichten und leitet die Nachrichten dann beispielsweise an einen Arbitrierer erst weiter, wenn im Zwischenspeicher 1702 eine ausreichende Anzahl vollständiger Nachrichten gespeichert ist.
  • Im Vergleich der Systeme 1500 bis 1700 weist das System 1500 eine geringe Latenz auf, wohingegen die Systeme 1600 und 1700 eine relativ hohe Latenz aufweisen. Des Weiteren gibt das System Flits mit einer höheren Frequenz aus, wohingegen die Systeme 1600 und 1700 vollständige Nachrichten ausgeben. In einigen Ausführungsformen kann ein Zwischenspeicher dafür konfiguriert sein, auf eine der drei Arten betrieben zu werden, die jeweils mit Bezug auf die 15 bis 17 behandelt wurden. Beispielsweise kann ein kombiniertes System die Komponenten der Systeme 1500 bis 1700 aufweisen. Das kombinierte System kann dafür konfiguriert sein, als ein beliebiges der drei vorstehend behandelten Systeme zu arbeiten.
  • Wenn beispielsweise angenommen wird, dass es sich bei einem Betriebsmodus des Systems 1500 um einen ersten Modus, bei einem Betriebsmodus des Systems 1600 um einen zweiten Modus und bei einem Betriebsmodus des Systems 1700 um einen dritten Modus handelt, dann kann ein Zwischenspeicher im kombinierten System in einem beliebigen des ersten, zweiten oder dritten Modus arbeiten. In einigen Ausführungsformen kann das kombinierte System einen Betriebsmodus auch dynamisch oder adaptiv ändern. Wenn beispielsweise eine geringe Latenz gewünscht wird, kann das kombinierte System im ersten Modus arbeiten.
  • In einigen Beispielen kann der Zwischenspeicher im kombinierten System innerhalb einer Netzschnittstelle enthalten sein, die eine RR-Einrichtung und ein PNC-Netz verbindet. In einigen Ausführungsformen können die RR-Einrichtung und das PNC-Netz eine unterschiedliche Taktfrequenz und/oder eine unterschiedliche Breite der Signalleitungen aufweisen. In einigen Ausführungsformen kann eine Auswahl eines Betriebsmodus des kombinierten Systems beispielsweise auf Grundlage eines Unterschieds in der Taktfrequenz in den beiden Bereichen, eines Unterschieds in der Breite der Signalleitungen etc. erfolgen. Beispielsweise kann ein langsamer Bereich ein relativ langsames Taktsignal und/oder eine relativ geringe Breite der Signalleitungen gegenüber z.B. einem schnellen Bereich beinhalten.
  • In einigen Ausführungsformen werden, wenn der Zwischenspeicher im kombinierten System Flits von einem langsamen Bereich zu einem schnellen Bereich leitet, die Flits im Zwischenspeicher relativ langsam angesammelt (z.B. weil der langsame Bereich die Flits mit einer langsameren Rate überträgt). Daher kann in einem solchen System, um lediglich ein Beispiel zu nennen, bei hinreichender verfügbarer Bandbreite zum Verarbeiten der Flits der erste Modus (z.B. das System 1500) im kombinierten System eingesetzt werden. Wenn andererseits beispielsweise der Zwischenspeicher im kombinierten System Flits von einem schnellen Bereich zu einem langsamen Bereich leitet, dann werden die Flits im Zwischenspeicher relativ schnell angesammelt (z.B. weil der schnelle Bereich die Flits mit einer schnelleren Rate überträgt). In einer solchen Situation, um lediglich ein Beispiel zu nennen, können der zweite oder der dritte Modus betreffend das System 1600 oder 1700 genutzt werden.
  • 18 veranschaulicht ein Verbindungsnetz 1800 (im Weiteren als „Netz 1800“ bezeichnet), das eine oder mehrere PNC-Einrichtungen mit einer oder mehreren RR-Einrichtungen verbindet, gemäß einigen Ausführungsformen. Das Netz 1800 ähnelt dem Netz 1000 der 10 bis 11, so dass nicht näher auf dieses eingegangen wird.
  • Ähnlich den 10 bis 11 wird in einigen nachstehend behandelten Beispielen angenommen, dass der erste Prozessor M4a Daten in den Speicher M7e schreibt, welche dann durch den zweiten Prozessor M7c gelesen werden sollen. Es wird somit, lediglich beispielhaft, angenommen, dass es sich beim ersten Prozessor M4a um einen Produzenten der Daten, beim Speicher M7e um ein Ziel der Daten und beim zweiten Prozessor M7c um einen Konsumenten der Daten handelt.
  • In einigen Ausführungsformen umfasst die NI N7e (die z.B. an den Speicher M7e gekoppelt ist) einen Lesezeiger 1808 und einen Schreibzeiger 1804. Der Lesezeiger 1808 und der Schreibzeiger 1804 werden beispielsweise in geeigneter Weise durch einen Zeigermechanismus gesteuert und werden beispielsweise in jeweiligen Registern gespeichert. In einigen Ausführungsformen zeigen der Lesezeiger 1808 bzw. der Schreibzeiger 1804 auf eine Speicheradresse im Speicher M7e, aus der aktuell Daten gelesen werden bzw. in die aktuell Daten geschrieben werden. In einigen Ausführungsformen kann der Konsument der Daten, z.B. der Konsument M7c, die im Lesezeiger 1808 und im Schreibzeiger 1804 gespeicherten Werte lesen, um z.B. zu bestimmen, ob der Schreib-Arbeitsschritt abgeschlossen ist und/oder ob neue Daten zum Lesen verfügbar sind, so dass der Konsument M7c auf dieser Grundlage Daten aus dem Speicher M7e lesen kann. In einigen Ausführungsformen kann der Produzent der Daten, z.B. der Produzent M4a, ebenfalls den Lesezeiger 1808 und/oder den Schreibzeiger 1804 lesen, um zu bestimmen, ob die Daten in den Speicher M7e geschrieben sind, so dass z.B. auf dieser Grundlage der Produzent M4a weitere Daten zum Schreiben an den Speicher M7e senden kann. In einigen Ausführungsformen verhindern der Lesezeiger 1808 und der Schreibzeiger 1804 Read-after-Write- (RAW-) Konflikte und helfen dabei, die Konsistenz im Netz 1800 sicherzustellen.
  • 19 veranschaulicht eine Datenverarbeitungseinrichtung 2100 (z.B. eine intelligente Einrichtung, eine Datenverarbeitungseinrichtung oder ein Computersystem oder ein SoC (Ein-Chip-System)), wobei verschiedene Komponenten der Datenverarbeitungseinrichtung 2100 über ein Netz 2190 untereinander verbunden sind, gemäß einigen Ausführungsformen. Es wird darauf hingewiesen, dass solche Elemente der 19, die gleiche Bezugszeichen (oder Namen) wie die Elemente einer anderen Figur aufweisen, in ähnlicher Weise wie der beschriebenen arbeiten oder fungieren können, hierauf jedoch nicht eingeschränkt sind.
  • In einigen Ausführungsformen repräsentiert die Datenverarbeitungseinrichtung 2100 eine geeignete Datenverarbeitungseinrichtung wie beispielsweise ein Datenverarbeitungs-Tablet, ein Mobiltelefon oder Smartphone, einen Laptop, einen Desktop-Computer, eine IoT-(Internet-der-Dinge-) Einrichtung, einen Server, eine Set-Top-Box, einen e-Reader mit Drahtlosfunktion oder dergleichen. Es versteht sich, dass bestimmte Komponenten allgemein dargestellt sind und nicht alle Komponenten einer solchen Einrichtung in der Datenverarbeitungseinrichtung 2100 gezeigt sind.
  • In einigen Ausführungsformen beinhaltet die Datenverarbeitungseinrichtung 2100 einen ersten Prozessor 2110 und einen zweiten Prozessor 2210. Die verschiedenen Ausführungsformen der vorliegenden Offenbarung können auch eine interne Netzschnittstelle 2170 wie beispielsweise eine Funkschnittstelle beinhalten, so dass eine System-Ausführungsform in eine Funkeinrichtung, beispielsweise ein Mobiltelefon oder einen persönlichen digitalen Assistenten, integriert werden kann.
  • In einer Ausführungsform können die Prozessoren 2110 und/oder 2210 eine oder mehrere physische Einrichtungen beinhalten, beispielsweise Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikeinrichtungen oder andere Verarbeitungsmittel. Die vom Prozessor 2110 durchgeführten Verarbeitungsschritte beinhalten die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf denen Anwendungen und/oder Einrichtungsfunktionen ausgeführt werden. Zu den Verarbeitungsschritten zählen Arbeitsschritte, die E/A (Eingabe/Ausgabe) mit einem menschlichen Nutzer oder mit anderen Einrichtungen betreffen, Arbeitsschritte, die Energieverwaltung betreffen, und/oder Arbeitsschritte, welche die Verbindung der Datenverarbeitungseinrichtung 2100 mit einer anderen Einrichtung betreffen. Die Verarbeitungsschritte können auch Arbeitsschritte beinhalten, die Audio-E/A und/oder Anzeige-E/A betreffen.
  • In einer Ausführungsform beinhaltet die Datenverarbeitungseinrichtung 2100 ein Audioteilsystem 2120, das Hardware- (z.B. Audiohardware und Audioschaltungen) und Software- (z.B. Treiber, Codecs) Komponenten repräsentiert, welche die Bereitstellung von Audiofunktionen an die Datenverarbeitungseinrichtung betreffen. Zu Audiofunktionen können Lautsprecher- und/oder Kopfhörerausgabe sowie Mikrofoneingabe zählen. Einrichtungen für solche Funktionen können in die Datenverarbeitungseinrichtung 2100 integriert oder mit der Datenverarbeitungseinrichtung 2100 verbunden sein. In einer Ausführungsform interagiert ein Nutzer mit der Datenverarbeitungseinrichtung 2100 durch Bereitstellen von Audiobefehlen, die durch den Prozessor 2110 empfangen und verarbeitet werden.
  • Das Anzeigeteilsystem 2130 repräsentiert Hardware- (z.B. Anzeigeeinrichtungen) und Software- (z.B. Treiber) Komponenten, die eine visuelle und/oder taktile Anzeige für einen Nutzer bereitstellen, um mit der Datenverarbeitungseinrichtung 2100 zu interagieren. Das Anzeigeteilsystem 2130 beinhaltet eine Anzeigeschnittstelle 2132, welche die konkrete Bildschirm- oder Hardwareeinrichtung beinhaltet, die verwendet wird, um einem Nutzer eine Anzeige bereitzustellen. In einer Ausführungsform beinhaltet die Anzeigeschnittstelle 2132 Logik separat vom Prozessor 2110, um zumindest einige die Anzeige betreffende Verarbeitung vorzunehmen. In einer Ausführungsform beinhaltet das Anzeigeteilsystem 2130 einen berührungsempfindlichen Bildschirm (oder ein Touchpad), der Ausgabe und Eingabe für einen Nutzer bereitstellt.
  • Die E/A-Steuerung 2140 repräsentiert Hardwareeinrichtungen und Softwarekomponenten, welche die Interaktion mit einem Nutzer betreffen. Die E/A-Steuerung 2140 ist betriebsfähig, um Hardware zu verwalten, die Teil des Audioteilsystems 2120 und/oder des Anzeigeteilsystems 2130 ist. Zudem stellt die E/A-Steuerung 2140 einen Verbindungspunkt für zusätzliche Einrichtungen dar, die mit der Datenverarbeitungseinrichtung 2100 verbunden werden und über die ein Nutzer mit dem System interagieren kann. Zu Einrichtungen, die an die Datenverarbeitungseinrichtung 2100 angeschlossen werden können, zählen beispielsweise Mikrofoneinrichtungen, Lautsprecher- oder Stereoanlagen, Videosysteme oder andere Anzeigeeinrichtungen, Tastatur- oder Keypad-Einrichtungen oder andere E/A-Einrichtungen zur Verwendung mit bestimmten Anwendungen wie beispielsweise Kartenleser oder andere Einrichtungen.
  • Wie vorstehend erwähnt, kann die E/A-Steuerung 2140 mit dem Audioteilsystem 2120 und/oder dem Anzeigeteilsystem 2130 interagieren. Beispielsweise kann eine Eingabe durch ein Mikrofon oder eine andere Audioeinrichtung eine Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Datenverarbeitungseinrichtung 2100 bereitstellen. Zudem kann Audioausgabe anstelle von oder zusätzlich zu Anzeigeausgabe bereitgestellt werden. In einem weiteren Beispiel agiert, falls das Anzeigeteilsystem 2130 einen berührungsempfindlichen Bildschirm beinhaltet, die Anzeigeeinrichtung auch als Eingabeeinrichtung, die zumindest teilweise durch die E/A-Steuerung 2140 verwaltet werden kann. Es können auch zusätzliche Bedienflächen oder Schalter an der Datenverarbeitungseinrichtung 2100 vorhanden sein, um durch die E/A-Steuerung 2140 verwaltete E/A-Funktionen bereitzustellen.
  • In einer Ausführungsform verwaltet die E/A-Steuerung 2140 Einrichtungen wie beispielsweise Beschleunigungssensoren, Kameras, Lichtsensoren oder andere Umgebungssensoren oder andere Hardware, die in der Datenverarbeitungseinrichtung 2100 enthalten sein kann. Die Eingabe kann Teil einer unmittelbaren Nutzerinteraktion sein sowie in der Bereitstellung von Eingaben aus der Umgebung an das System bestehen, um dessen Arbeitsschritte zu beeinflussen (beispielsweise Geräuschfilterung, Anpassen von Anzeigen zur Helligkeitserfassung, Verwenden eines Blitzlichts für eine Kamera oder andere Funktionen).
  • In einer Ausführungsform beinhaltet die Datenverarbeitungseinrichtung 2100 eine Energieverwaltung 2150, welche die Nutzung einer Batterieleistung, ein Laden der Batterie sowie einen Energiesparbetrieb betreffende Funktionen verwaltet. Das Speicherteilsystem 2160 beinhaltet Speichereinrichtungen zum Speichern von Informationen in der Datenverarbeitungseinrichtung 2100. Der Speicher kann nichtflüchtige (der Zustand ändert sich nicht, wenn die Energiezufuhr zur Speichereinrichtung unterbrochen ist) und/oder flüchtige (der Zustand ist unbestimmt, wenn die Energiezufuhr zur Speichereinrichtung unterbrochen ist) Speichereinrichtungen beinhalten. Das Speicherteilsystem 2160 kann Anwendungsdaten, Nutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (dauerhaft oder vorübergehend) speichern, welche die Ausführung der Anwendungen und Funktionen der Datenverarbeitungseinrichtung 2100 betreffen.
  • Elemente von Ausführungsformen werden zudem bereitgestellt als maschinenlesbares Medium (z.B. Speicher 2160) zum Speichern der durch Computer ausführbaren Anweisungen (z.B. Anweisungen zum Implementieren beliebiger weiterer vorliegend behandelter Prozesse). Das maschinenlesbare Medium (z.B. Speicher 2160) kann, ohne jedoch hierauf eingeschränkt zu sein, Folgendes beinhalten: Flashspeicher, optische Platten, CD-ROMs, DVD-ROMs, RAMs, EPROMs, EEPROMs, Magnet- oder optische Karten, Phasenwechselspeicher (PCM) oder weitere Arten maschinenlesbarer Medien, die sich zum Speichern elektronischer oder durch Computer ausführbarer Anweisungen eignen. Beispielsweise können Ausführungsformen der Offenbarung als ein Computerprogramm (z.B. BIOS) heruntergeladen werden, das von einem entfernten Computer (z.B. einem Server) mittels Datensignalen über eine Kommunikationsverbindung (z.B. eine Modem- oder Netzverbindung) an einen anfragenden Computer (z.B. einen Client) übertragen werden können.
  • Die Konnektivität 2170 beinhaltet Hardwareeinrichtungen (z.B. drahtlose und/oder drahtgebundene Verbindungspunkte und Kommunikationshardware) und Softwarekomponenten (z.B. Treiber, Protokollstapel), um der Datenverarbeitungseinrichtung 2100 eine Kommunikation mit externen Einrichtungen zu ermöglichen. Bei der Datenverarbeitungseinrichtung 2100 könnte es sich um separate Einrichtungen handeln, beispielsweise weitere Datenverarbeitungseinrichtungen, Funkzugangspunkte oder - basisstationen sowie Peripheriegeräte wie Headsets, Drucker oder andere Einrichtungen.
  • Die Konnektivität 2170 kann mehrere verschiedene Arten von Konnektivität beinhalten. Verallgemeinernd ist die Datenverarbeitungseinrichtung 2100 mit einer Zellularkonnektivität 2172 und einer Drahtlos- bzw. Funkkonnektivität 2174 dargestellt. Zellularkonnektivität 2172 bezieht sich allgemein auf Zellennetzkonnektivität, wie sie durch Funkträger bereitgestellt wird, etwa über GSM (Global System for Mobile Communications) oder Variationen oder Ableitungen, CDMA (Codemultiplex-Mehrfachzugang) oder Variationen oder Ableitungen, TDM (Zeitmultiplex) oder Variationen oder Ableitungen, oder andere Zellen-Dienststandards. Drahtlos- bzw. Funkkonnektivität (oder Funkschnittstelle) 2174 bezieht sich auf Funkkonnektivität, die nicht zellular ist, und kann Netze für den persönlichen Bereich (beispielsweise Bluetooth, Nahfeld etc.), Lokalnetze (beispielsweise Wi-Fi) und/oder Fernnetze (beispielsweise WiMax) oder andere Funkkommunikation beinhalten.
  • Die Pheripherieverbindungen 2180 beinhalten Hardwareschnittstellen und - anschlüsse sowie Softwarekomponenten (z.B. Treiber, Protokollstapel), um Peripherieverbindungen herzustellen. Es versteht sich, dass die Datenverarbeitungseinrichtung 2100 sowohl eine Peripherieeinrichtung („zu“ 2182) für andere Datenverarbeitungseinrichtungen sein kann als auch mit dieser verbundene Peripherieeinrichtungen („von“ 2184) aufweisen kann. Die Datenverarbeitungseinrichtung 2100 weist gemeinhin einen „Docking-“Anschluss auf, um sich zu Zwecken beispielsweise der Verwaltung (z.B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf der Datenverarbeitungseinrichtung 2100 mit anderen Datenverarbeitungseinrichtungen zu verbinden. Zusätzlich kann ein Docking-Anschluss der Datenverarbeitungseinrichtung 2100 gestatten, sich mit bestimmten Peripheriegeräten zu verbinden, die der Datenverarbeitungseinrichtung 2100 gestatten, eine Ausgabe von Inhalten beispielsweise an audiovisuelle oder andere Systeme zu steuern.
  • Zusätzlich zu einem proprietären Docking-Anschluss oder einer anderen proprietären Verbindungshardware kann die Datenverarbeitungseinrichtung 2100 Peripherieverbindungen 2180 auch über gebräuchliche oder standardisierte Anschlüsse herstellen. Zu den gebräuchlichen Arten zählen ein Universal-Serial-Bus- (USB-) Anschluss (der eine beliebige aus einer Reihe verschiedener Hardwareschnittstellen beinhalten kann), DisplayPort einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire oder andere Arten.
  • In einigen Ausführungsformen umfassen einige der Komponenten der Datenverarbeitungseinrichtung 2100 RR-Einrichtungen, während einige andere Komponenten der Datenverarbeitungseinrichtung 2100 PNC-Einrichtungen umfassen. In einigen Ausführungsformen sind verschiedene Komponenten der Datenverarbeitungseinrichtung 2100 mittels eines Verbindungsnetzes 2190 untereinander verbunden. Auch wenn dies in 19 nicht veranschaulicht ist, umfasst in einigen Ausführungsformen das Netz 2190 eine/n oder mehrere Router, Netzschnittstellen etc., wie mit Bezug auf die 3 bis 17 behandelt.
  • Bezugnahmen in der Spezifikation auf „(irgend)eine Ausführungsform“, „(genau) eine Ausführungsform“, „einige Ausführungsformen“ oder „weitere Ausführungsformen“, bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit den Ausführungsformen beschrieben werden, in zumindest einigen Ausführungsformen, jedoch nicht notwendigerweise in allen Ausführungsformen enthalten sind. Die an verschiedener Stelle auftretenden Ausdrücke „(irgend)eine Ausführungsform“, „(genau) eine Ausführungsform“ oder „einige Ausführungsformen“ beziehen sich nicht notwendigerweise alle auf die gleichen Ausführungsformen. Wo die Spezifikation angibt, dass eine Komponente, ein Merkmal, eine Struktur oder eine Eigenschaft enthalten sein „kann“, „mag“ oder „könnte“, ist es nicht zwingend erforderlich, dass diese Komponente, dieses Merkmal, diese Struktur oder diese Eigenschaft enthalten ist. Wenn die Spezifikation Bezug auf „(irgend)ein“ Element nimmt, dann bedeutet dies nicht, dass nur eines der Elemente vorhanden ist. Wenn die Spezifikation oder die Ansprüche Bezug auf „(irgend)ein zusätzliches“ Element nehmen, dann schließt dies nicht aus, dass von dem zusätzlichen Element mehr als eines vorhanden ist.
  • Des Weiteren können in einer oder mehreren Ausführungsformen die jeweiligen Merkmale, Strukturen, Funktionen oder Eigenschaften in jeglicher geeigneten Weise kombiniert werden. Beispielsweise kann eine erste Ausführungsform mit einer zweiten Ausführungsform kombiniert werden, soweit sich die den beiden Ausführungsformen zugehörigen jeweiligen Merkmale, Strukturen, Funktionen oder Eigenschaften nicht gegenseitig ausschließen.
  • Während die Offenbarung in Verbindung mit konkreten Ausführungsformen beschrieben wurde, sind für einen Fachmann vor dem Hintergrund der vorstehenden Beschreibung vielerlei Alternativen, Modifikationen und Variationen dieser Ausführungsformen denkbar. Es ist vorgesehen, dass die Ausführungsformen der Offenbarung sämtliche dieser Alternativen, Modifikationen und Variationen als in den allgemeinen Umfang der beiliegenden Ansprüche fallend umfassen.
  • Zudem können allgemein bekannte Strom-/Masseanschlüsse zu Chips mit integrierten Schaltungen (ICs) und anderen Komponenten in den präsentierten Figuren gezeigt oder zu Zwecken einer vereinfachten Darstellung und Erläuterung auch weggelassen sein, um die Offenbarung klarer darzustellen. Ferner können Anordnungen in Blockdiagrammform gezeigt sein, um die Offenbarung klarer darzustellen, und vor dem Hintergrund, dass Einzelheiten bezüglich der Implementierung solcher Blockdiagrammanordnungen in hohem Maße von der Plattform abhängen, auf der die vorliegenden Offenbarung implementiert werden soll (d.h. solche Einzelheiten sind dem Fachmann wohlbekannt). Wo konkrete Einzelheiten (z.B. Schaltungen) dargelegt werden, um beispielhafte Ausführungsformen der Offenbarung zu beschreiben, versteht ein Fachmann, dass die Offenbarung auch ohne diese oder in Abwandlung dieser konkreten Einzelheiten in die Praxis umgesetzt werden kann. Die Beschreibung ist somit als lediglich veranschaulichend und nicht einschränkend aufzufassen.
  • Die nachfolgenden beispielhaften Bestimmungen betreffen weitere Ausführungsformen. In den beispielhaften Bestimmungen enthaltene Einzelheiten können überall in einer oder mehreren Ausführungsformen verwendet werden. Sämtliche optionalen Merkmale der vorliegend beschriebenen Vorrichtung können auch im Zusammenhang mit einem Verfahren oder Prozess implementiert werden.
  • Bestimmung 1: Netzschnittstelle, umfassend: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss einer ersten Art von Befehlen von einer ersten Einrichtung zu einer zweiten Einrichtung zwischenzuspeichern, wobei die erste Einrichtung gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und die zweite Einrichtung gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss einer zweiten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung zwischenzuspeichern, und einen Arbitrierer, der dafür konfiguriert ist, zwischen dem ersten Fluss und dem zweiten Fluss zu arbitrieren und selektiv einen oder mehrere Befehle der ersten Art und einen oder mehrere Befehle der zweiten Art auszugeben.
  • Bestimmung 2: Netzschnittstelle nach Bestimmung 1, ferner umfassend: einen Übersetzer, der dafür konfiguriert ist, einen ersten Befehl, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl zu übersetzen, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 3: Netzschnittstelle nach Bestimmung 2, wobei: es sich beim ersten Befehl um eine Aufforderung zum Lesen von Daten handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen ungeposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 4: Netzschnittstelle nach Bestimmung 2, wobei: es sich beim ersten Befehl um eine Aufforderung zum Schreiben von Daten ohne Bestätigung handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen geposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 5: Netzschnittstelle nach Bestimmung 2, wobei: es sich beim ersten Befehl um eine Lesedaten beinhaltende Antwort handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen Abschlussbefehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 6: Netzschnittstelle nach einer der Bestimmungen 1 bis 5, wobei der erste Zwischenspeicher ferner dafür konfiguriert ist: einen dritten Fluss einer dritten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung zwischenzuspeichern, wobei die erste Art von Befehlen gepostete Befehle umfasst und die dritte Art von Befehlen Abschlussbefehle umfasst.
  • Bestimmung 7: Netzschnittstelle nach einer der Bestimmungen 1 bis 6, wobei das zweite Busverbindungsprotokoll ein Busverbindungsprotokoll umfasst, das gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um zu kommunizieren.
  • Bestimmung 8: Netzschnittstelle nach einer der Bestimmungen 1 bis 7, wobei das zweite Busverbindungsprotokoll entweder das Peripheral-Component-Interconnect- (PCI-) Protokoll, das Peripheral-Component-Interconnect-Express- (PCIe-) Protokoll oder ein von diesen abgeleitetes Busverbindungsprotokoll umfasst.
  • Bestimmung 9: Netzschnittstelle nach einer der Bestimmungen 1 bis 8, wobei der Arbitrierer dafür konfiguriert ist, selektiv den einen oder die mehreren Befehle an ein Netz auszugeben, das einen oder mehrere Router und eine oder mehrere Netzschnittstellen umfasst, und wobei das Netz gemäß dem zweiten Busverbindungsprotokoll arbeitet.
  • Bestimmung 10: Verbindungsnetz, umfassend: eine Vielzahl von Leiteinrichtungen, wobei die Vielzahl von Leiteinrichtungen eine erste Leiteinrichtung und eine zweite Leiteinrichtung umfasst, wobei die Vielzahl von Leiteinrichtungen in einer Baumstruktur angeordnet ist, eine erste Netzschnittstelle, die dafür konfiguriert ist, eine erste Komponente und die erste Leiteinrichtung zu verbinden, und eine zweite Netzschnittstelle, die dafür konfiguriert ist, eine zweite Komponente und die zweite Leiteinrichtung zu verbinden, wobei die erste Komponente gemäß einem ersten Busverbindungsprotokoll konfiguriert ist, wobei die zweite Komponente gemäß einem zweiten Busverbindungsprotokoll derart konfiguriert ist, dass die zweite Komponente gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um mit der zweiten Netzschnittstelle zu kommunizieren.
  • Bestimmung 11: Verbindungsnetz nach Bestimmung 10, wobei: mindestens eine der Vielzahl von Leiteinrichtungen dafür konfiguriert ist, mit einer entsprechenden Vielzahl von Netzschnittstellen gemäß dem zweiten Busverbindungsprotokoll zu kommunizieren.
  • Bestimmung 12: Verbindungsnetz nach einer der Bestimmungen 10 bis 11, wobei die zweite Netzschnittstelle Folgendes umfasst: einen Übersetzer, der dafür konfiguriert ist, einen oder mehrere Befehle zwischen dem ersten Busverbindungsprotokoll und dem zweiten Busverbindungsprotokoll zu übersetzen.
  • Bestimmung 13: Verbindungsnetz nach einer der Bestimmungen 10 bis 12, wobei: die erste Komponente gemäß dem ersten Busverbindungsprotokoll derart konfiguriert ist, dass die erste Komponente Aufforderungen und Antworten verwendet, um mit der ersten Netzschnittstelle zu kommunizieren.
  • Bestimmung 14: Verbindungsnetz nach einer der Bestimmungen 10 bis 13, wobei die zweite Netzschnittstelle Folgendes umfasst: einen Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss geposteter Befehle, einen zweiten Fluss ungeposteter Befehle und einen dritten Fluss aus Abschlussbefehlen zwischenzuspeichern.
  • Bestimmung 15: Verbindungsnetz nach Bestimmung 10, wobei die zweite Netzschnittstelle Folgendes umfasst: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss geposteter Befehle zwischenzuspeichern, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss ungeposteter Befehle zwischenzuspeichern, und einen dritten Zwischenspeicher, der dafür konfiguriert ist, einen dritten Fluss aus Abschlussbefehlen zwischenzuspeichern.
  • Bestimmung 16: System, umfassend: einen Verarbeitungskern, einen Speicher, wobei der Verarbeitungskern gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und der Speicher gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, einen ersten Router und einen zweiten Router, die über Signalleitungen gekoppelt sind, wobei der erste Router und der zweite Router gemäß dem ersten Busverbindungsprotokoll konfiguriert sind, eine erste Netzschnittstelle, die dafür konfiguriert ist, den Verarbeitungskern und den ersten Router zu verbinden, und eine zweite Netzschnittstelle, die dafür konfiguriert ist, den Speicher und den zweiten Router zu verbinden, wobei die zweite Netzschnittstelle einen Übersetzer umfasst, der dafür konfiguriert ist, einen ersten Befehl, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl zu übersetzen, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 17: System nach Bestimmung 16, wobei die zweite Netzschnittstelle Folgendes umfasst: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss einer ersten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss einer zweiten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, und einen Arbitrierer, der dafür konfiguriert ist, zwischen dem ersten Fluss und dem zweiten Fluss zu arbitrieren und selektiv einen oder mehrere Befehle der ersten Art und einen oder mehrere Befehle der zweiten Art an den zweiten Router auszugeben.
  • Bestimmung 18: System nach Bestimmung 17, wobei der erste Zwischenspeicher ferner dafür konfiguriert ist: einen dritten Fluss einer dritten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, wobei die erste Art von Befehlen gepostete Befehle umfasst und die dritte Art von Befehlen Abschlussbefehle umfasst.
  • Bestimmung 19: System nach einer der Bestimmungen 16 bis 18, wobei das zweite Busverbindungsprotokoll ein Busverbindungsprotokoll umfasst, das gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um zu kommunizieren.
  • Bestimmung 20: System nach einer der Bestimmungen 16 bis 19, wobei das zweite Busverbindungsprotokoll entweder das Peripheral-Component-Interconnect- (PCI-) Protokoll, das Peripheral-Component-Interconnect-Express- (PCIe-) Protokoll oder ein von diesen abgeleitetes Busverbindungsprotokoll umfasst.
  • Bestimmung 21: Verfahren, umfassend: mittels eines ersten Zwischenspeichers erfolgendes Zwischenspeichern eines ersten Flusses einer ersten Art von Befehlen von einer ersten Einrichtung zu einer zweiten Einrichtung, wobei die erste Einrichtung gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und die zweite Einrichtung gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, durch einen zweiten Zwischenspeicher erfolgendes Zwischenspeichern eines zweiten Flusses einer zweiten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung, durch einen Arbitrierer erfolgendes Arbitrieren zwischen dem ersten Fluss und dem zweiten Fluss und durch den Arbitrierer erfolgendes selektives Ausgeben eines oder mehrerer Befehle der ersten Art und eines oder mehrerer Befehle der zweiten Art.
  • Bestimmung 22: Verfahren nach Bestimmung 21, ferner umfassend: durch einen Übersetzer erfolgendes Übersetzen eines ersten Befehls, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 23: Verfahren nach Bestimmung 22, wobei: es sich beim ersten Befehl um eine Aufforderung zum Lesen von Daten handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen ungeposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 24: Verfahren nach Bestimmung 22, wobei: es sich beim ersten Befehl um eine Aufforderung zum Schreiben von Daten ohne Bestätigung handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen geposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  • Bestimmung 25: Vorrichtung, die Mittel zum Durchführen eines Verfahrens nach einer der Bestimmungen 21 bis 24 umfasst.
  • Bestimmung 26: System, umfassend: Speicher, einen an den Speicher gekoppelten Prozessor, die Netzschnittstelle nach den Bestimmungen 1 bis 9, und ein Verbindungsnetz, wobei die Netzschnittstelle an das Verbindungsnetz gekoppelt oder in diesem enthalten ist.
  • Bestimmung 27: Maschinenlesbarer Speicher, der maschinenlesbare Anweisungen beinhaltet, um bei Ausführung ein Verfahren nach einer der vorhergehenden Bestimmungen zu implementieren bzw. eine Vorrichtung nach einer der vorhergehenden Bestimmungen zu realisieren.
  • Es wird eine Zusammenfassung bereitgestellt, die dem Leser ermöglicht, das Wesen und den Kerninhalt der technischen Offenbarung zu erkennen. Die Zusammenfassung wird in dem Verständnis vorgelegt, dass sie nicht zur Einschränkung des Umfangs oder der Bedeutung der Ansprüche herangezogen wird. Die nachfolgenden Ansprüche werden hierdurch für die ausführliche Beschreibung in Bezug genommen, wobei jeder Anspruch als separate Ausführungsform für sich steht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15373033 [0001]

Claims (26)

  1. Beansprucht wird:
  2. Netzschnittstelle, umfassend: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss einer ersten Art von Befehlen von einer ersten Einrichtung zu einer zweiten Einrichtung zwischenzuspeichern, wobei die erste Einrichtung gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und die zweite Einrichtung gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss einer zweiten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung zwischenzuspeichern, und einen Arbitrierer, der dafür konfiguriert ist, zwischen dem ersten Fluss und dem zweiten Fluss zu arbitrieren und selektiv einen oder mehrere Befehle der ersten Art und einen oder mehrere Befehle der zweiten Art auszugeben.
  3. Netzschnittstelle nach Anspruch 1, ferner umfassend: einen Übersetzer, der dafür konfiguriert ist, einen ersten Befehl, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl zu übersetzen, der dem zweiten Busverbindungsprotokoll entspricht.
  4. Netzschnittstelle nach Anspruch 2, wobei: es sich beim ersten Befehl um eine Aufforderung zum Lesen von Daten handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen ungeposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  5. Netzschnittstelle nach Anspruch 2, wobei: es sich beim ersten Befehl um eine Aufforderung zum Schreiben von Daten ohne Bestätigung handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen geposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  6. Netzschnittstelle nach Anspruch 2, wobei: es sich beim ersten Befehl um eine Lesedaten beinhaltende Antwort handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen Abschlussbefehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  7. Netzschnittstelle nach einem der Ansprüche 1 bis 5, wobei der erste Zwischenspeicher ferner dafür konfiguriert ist: einen dritten Fluss einer dritten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung zwischenzuspeichern, wobei die erste Art von Befehlen gepostete Befehle umfasst und die dritte Art von Befehlen Abschlussbefehle umfasst.
  8. Netzschnittstelle nach einem der Ansprüche 1 bis 6, wobei das zweite Busverbindungsprotokoll ein Busverbindungsprotokoll umfasst, das gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um zu kommunizieren.
  9. Netzschnittstelle nach einem der Ansprüche 1 bis 7, wobei das zweite Busverbindungsprotokoll entweder das Peripheral-Component-Interconnect- (PCI-) Protokoll, das Peripheral-Component-Interconnect-Express- (PCIe-) Protokoll oder ein von diesen abgeleitetes Busverbindungsprotokoll umfasst.
  10. Netzschnittstelle nach einem der Ansprüche 1 bis 8, wobei der Arbitrierer dafür konfiguriert ist, selektiv den einen oder die mehreren Befehle an ein Netz auszugeben, das einen oder mehrere Router und eine oder mehrere Netzschnittstellen umfasst, und wobei das Netz gemäß dem zweiten Busverbindungsprotokoll arbeitet.
  11. Verbindungsnetz, umfassend: eine Vielzahl von Leiteinrichtungen, wobei die Vielzahl von Leiteinrichtungen eine erste Leiteinrichtung und eine zweite Leiteinrichtung umfasst, wobei die Vielzahl von Leiteinrichtungen in einer Baumstruktur angeordnet ist, eine erste Netzschnittstelle, die dafür konfiguriert ist, eine erste Komponente und die erste Leiteinrichtung zu verbinden, und eine zweite Netzschnittstelle, die dafür konfiguriert ist, eine zweite Komponente und die zweite Leiteinrichtung zu verbinden, wobei die erste Komponente gemäß einem ersten Busverbindungsprotokoll konfiguriert ist, wobei die zweite Komponente gemäß einem zweiten Busverbindungsprotokoll derart konfiguriert ist, dass die zweite Komponente gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um mit der zweiten Netzschnittstelle zu kommunizieren.
  12. Verbindungsnetz nach Anspruch 10, wobei: mindestens eine der Vielzahl von Leiteinrichtungen dafür konfiguriert ist, mit einer entsprechenden Vielzahl von Netzschnittstellen gemäß dem zweiten Busverbindungsprotokoll zu kommunizieren.
  13. Verbindungsnetz nach einem der Ansprüche 10 bis 11, wobei die zweite Netzschnittstelle Folgendes umfasst: einen Übersetzer, der dafür konfiguriert ist, einen oder mehrere Befehle zwischen dem ersten Busverbindungsprotokoll und dem zweiten Busverbindungsprotokoll zu übersetzen.
  14. Verbindungsnetz nach einem der Ansprüche 10 bis 12, wobei: die erste Komponente gemäß dem ersten Busverbindungsprotokoll derart konfiguriert ist, dass die erste Komponente Aufforderungen und Antworten verwendet, um mit der ersten Netzschnittstelle zu kommunizieren.
  15. Verbindungsnetz nach einem der Ansprüche 10 bis 13, wobei die zweite Netzschnittstelle Folgendes umfasst: einen Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss geposteter Befehle, einen zweiten Fluss ungeposteter Befehle und einen dritten Fluss aus Abschlussbefehlen zwischenzuspeichern.
  16. Verbindungsnetz nach Anspruch 10, wobei die zweite Netzschnittstelle Folgendes umfasst: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss geposteter Befehle zwischenzuspeichern, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss ungeposteter Befehle zwischenzuspeichern, und einen dritten Zwischenspeicher, der dafür konfiguriert ist, einen dritten Fluss aus Abschlussbefehlen zwischenzuspeichern.
  17. System, umfassend: einen Verarbeitungskern, einen Speicher, wobei der Verarbeitungskern gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und der Speicher gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, einen ersten Router und einen zweiten Router, die über Signalleitungen gekoppelt sind, wobei der erste Router und der zweite Router gemäß dem ersten Busverbindungsprotokoll konfiguriert sind, eine erste Netzschnittstelle, die dafür konfiguriert ist, den Verarbeitungskern und den ersten Router zu verbinden, und eine zweite Netzschnittstelle, die dafür konfiguriert ist, den Speicher und den zweiten Router zu verbinden, wobei die zweite Netzschnittstelle einen Übersetzer umfasst, der dafür konfiguriert ist, einen ersten Befehl, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl zu übersetzen, der dem zweiten Busverbindungsprotokoll entspricht.
  18. System nach Anspruch 16, wobei die zweite Netzschnittstelle Folgendes umfasst: einen ersten Zwischenspeicher, der dafür konfiguriert ist, einen ersten Fluss einer ersten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, einen zweiten Zwischenspeicher, der dafür konfiguriert ist, einen zweiten Fluss einer zweiten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, und einen Arbitrierer, der dafür konfiguriert ist, zwischen dem ersten Fluss und dem zweiten Fluss zu arbitrieren und selektiv einen oder mehrere Befehle der ersten Art und einen oder mehrere Befehle der zweiten Art an den zweiten Router auszugeben.
  19. System nach Anspruch 17, wobei der erste Zwischenspeicher ferner dafür konfiguriert ist: einen dritten Fluss einer dritten Art von Befehlen vom Speicher zum Verarbeitungskern zwischenzuspeichern, wobei die erste Art von Befehlen gepostete Befehle umfasst und die dritte Art von Befehlen Abschlussbefehle umfasst.
  20. System nach einem der Ansprüche 16 bis 18, wobei das zweite Busverbindungsprotokoll ein Busverbindungsprotokoll umfasst, das gepostete Befehle, ungepostete Befehle und/oder Abschlussbefehle verwendet, um zu kommunizieren.
  21. System nach einem der Ansprüche 16 bis 19, wobei das zweite Busverbindungsprotokoll entweder das Peripheral-Component-Interconnect- (PCI-) Protokoll, das Peripheral-Component-Interconnect-Express- (PCIe-) Protokoll oder ein von diesen abgeleitetes Busverbindungsprotokoll umfasst.
  22. Verfahren, umfassend: mittels eines ersten Zwischenspeichers erfolgendes Zwischenspeichern eines ersten Flusses einer ersten Art von Befehlen von einer ersten Einrichtung zu einer zweiten Einrichtung, wobei die erste Einrichtung gemäß einem ersten Busverbindungsprotokoll konfiguriert ist und die zweite Einrichtung gemäß einem zweiten Busverbindungsprotokoll konfiguriert ist, durch einen zweiten Zwischenspeicher erfolgendes Zwischenspeichern eines zweiten Flusses einer zweiten Art von Befehlen von der ersten Einrichtung zur zweiten Einrichtung, durch einen Arbitrierer erfolgendes Arbitrieren zwischen dem ersten Fluss und dem zweiten Fluss und durch den Arbitrierer erfolgendes selektives Ausgeben eines oder mehrerer Befehle der ersten Art und eines oder mehrerer Befehle der zweiten Art.
  23. Verfahren nach Anspruch 21, ferner umfassend: durch einen Übersetzer erfolgendes Übersetzen eines ersten Befehls, der dem ersten Busverbindungsprotokoll entspricht, in einen zweiten Befehl, der dem zweiten Busverbindungsprotokoll entspricht.
  24. Verfahren nach Anspruch 22, wobei: es sich beim ersten Befehl um eine Aufforderung zum Lesen von Daten handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen ungeposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  25. Verfahren nach Anspruch 22, wobei: es sich beim ersten Befehl um eine Aufforderung zum Schreiben von Daten ohne Bestätigung handelt, die dem ersten Busverbindungsprotokoll entspricht, und es sich beim zweiten Befehl um einen geposteten Befehl handelt, der dem zweiten Busverbindungsprotokoll entspricht.
  26. System, umfassend: Speicher, einen an den Speicher gekoppelten Prozessor, die Netzschnittstelle nach den Ansprüchen 1 bis 9 und ein Verbindungsnetz, wobei die Netzschnittstelle an das Verbindungsnetz gekoppelt oder in diesem enthalten ist.
DE112017006207.1T 2016-12-08 2017-11-08 Verbindungsnetz, das mehrere konsistenzmechanismen, mehrere protokolle und mehrere vermittlungsmechanismen unterstützt Pending DE112017006207T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/373,033 2016-12-08
US15/373,033 US20180165240A1 (en) 2016-12-08 2016-12-08 Interconnect network supporting multiple consistency mechanisms, multiple protocols, and multiple switching mechanisms
PCT/US2017/060703 WO2018106393A1 (en) 2016-12-08 2017-11-08 Interconnect network supporting multiple consistency mechanisms, multiple protocols, and multiple switching mechanisms

Publications (1)

Publication Number Publication Date
DE112017006207T5 true DE112017006207T5 (de) 2019-09-05

Family

ID=62490242

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006207.1T Pending DE112017006207T5 (de) 2016-12-08 2017-11-08 Verbindungsnetz, das mehrere konsistenzmechanismen, mehrere protokolle und mehrere vermittlungsmechanismen unterstützt

Country Status (4)

Country Link
US (1) US20180165240A1 (de)
CN (1) CN109891834A (de)
DE (1) DE112017006207T5 (de)
WO (1) WO2018106393A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10931722B2 (en) * 2017-04-04 2021-02-23 Lattice Semiconductor Corporation Transmitting common mode control data over audio return channel
CN110688332B (zh) * 2019-09-12 2021-01-15 无锡江南计算技术研究所 一种面向高速消息传输的pcie数据传输系统及计算机

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751191B1 (en) * 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
JP4878185B2 (ja) * 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
CN101276318B (zh) * 2008-05-12 2010-06-09 北京航空航天大学 基于pci-e总线的直接存取数据传输控制装置
US8532098B2 (en) * 2009-11-30 2013-09-10 Nvidia Corporation System and method for virtual channel communication
US8788737B2 (en) * 2011-12-26 2014-07-22 Qualcomm Technologies, Inc. Transport of PCI-ordered traffic over independent networks
US8782321B2 (en) * 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US9767026B2 (en) * 2013-03-15 2017-09-19 Intel Corporation Providing snoop filtering associated with a data buffer
US9910816B2 (en) * 2013-07-22 2018-03-06 Futurewei Technologies, Inc. Scalable direct inter-node communication over peripheral component interconnect-express (PCIe)
US20160173398A1 (en) * 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network

Also Published As

Publication number Publication date
WO2018106393A1 (en) 2018-06-14
US20180165240A1 (en) 2018-06-14
CN109891834A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
DE60213601T2 (de) Programmierbare hardwarelogik, welche ein programmierbares interface und eine zentrale recheneinheit beinhaltet
DE112013003733B4 (de) Adaptive Paketumleitung, um angemessene, kostengünstige und/oder Energie-effiziente Dienstgüte im Netzwerk auf Chipvorrichtungen zu erreichen
DE112008001655B4 (de) Verfahren, System und Vorrichtung für einen Kernaktivitätsdetektor zum Erleichtern von Dynamischer Stromverwaltung in einem verteilten System
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE102019121523A1 (de) Skalierbares netz werk-auf-chip für hochbandbreitenspeicher
DE112010001824B4 (de) Paketierte Schnittstelle zur Kopplung von Agenten
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE102018006756A1 (de) Beschleuniger-Fabric
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE102018006546A1 (de) Plattformschnittstellenschicht und protokoll für beschleuniger
DE102018212479A1 (de) Technologien zum Verwalten einer flexiblen Host-Schnittstelle eines Netzwerkschnittstellen-Controllers
DE112008001957B4 (de) Systeme und Verfahren zum Verbessern der Leistungsfähigkeit eines routfähigen Netzwerks
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
DE102019108798A1 (de) Hochbandige verbindungsschicht für kohärente nachrichten
DE112012005700T5 (de) Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
EP1540507B1 (de) Vorrichtung zur datenverarbeitung mit einem feld rekonfigurierbarer elemente
DE112021001408T5 (de) Verwendung kohärent verbundener schnittstellen in einem netzwerkstapelrahmen
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
DE112017006207T5 (de) Verbindungsnetz, das mehrere konsistenzmechanismen, mehrere protokolle und mehrere vermittlungsmechanismen unterstützt
DE60217132T2 (de) Vorrichtung zur erhaltung der producer-consumer anordnung entlang einer ungeordneten schnittstelle

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: INTEL CORPORATION, SANTA CLARA, US

Free format text: FORMER OWNER: INTEL IP CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

Representative=s name: SAMSON & PARTNER PATENTANWAELTE MBB, DE