-
BEREICH DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf eine integrierte Schaltung
mit einer Anzahl Verarbeitungsmodule und mit einem Netzwerk, vorgesehen zum
Schaffen wenigstens einer Verbindung zwischen einem ersten und wenigstens
einem zweiten Modul und auf ein Verfahren zum Austauschen von Nachrichten
in einer derartigen integrierten Schaltung.
-
HINTERGRUND DER ERFINDUNG
-
Systeme
auf Silizium zeigen eine immer wachsende Komplexität, und zwar
wegen des immer wachsenden Bedürfnisses
nach Implementierung neuer Merkmale und Verbesserungen bestehender Funktionen.
Dies wird durch die zunehmende Dichte ermöglicht, mit der Elemente auf
einer integrierten Schaltung integriert werden können. Gleichzeitig neigt die
Taktgeschwindigkeit, mit der Schaltungsanordnungen arbeiten, dazu,
auch zuzunehmen. Die höhere
Taktgeschwindigkeit in Kombination mit der gesteigerten Dichte der
Elemente hat das Gebiet, das synchron mit derselben Taktdomäne arbeiten kann,
reduziert. Dies hat die Notwendigkeit einer modularen Annäherung geschaffen.
Nach einer derartigen Annäherung
umfasst das Verarbeitungssystem eine Anzahl relativ unabhängiger,
komplexer Module. Bei herkömmlichen
Verarbeitungssystemen kommunizieren die Systemmodule meistens über einen
Bus miteinander. Wenn aber die Anzahl Module zunimmt, ist diese
Art von Kommunikation nicht langer praktisch, und zwar aus den nachfolgenden
Gründen.
Einerseits bildet die Vielzahl von Modulen eine zu große Busbelastung.
Andererseits bildet der Bus ein Kommunikationsproblem, da er es
ermöglicht,
dass nur eine Anordnung dem Bus Daten zusendet. Ein Kommunikationsnetzwerk
bildet eine effektive Art und Weise diese Nachteile zu überwinden.
-
Netzwerke
auf Chip (NoC) sind in letzter Zeit sehr interessant geworden als
Lösung
des Verbindungsproblems bei hochkomplexen Chips. Der Grund ist zweifach.
Erstens helfen NoCs die elektrischen Probleme in neuen Tiefsubmikrontechnologien zu
lösen,
da sie globale Verdrahtung strukturieren und verwalten. Gleichzeitig
teilen sie sich Verdrahtung, verringern ihre Anzahl und steigern
ihre Nutzbarkeit. NoCs können
auch energieeffizient und zuverlässig
sein und sind im Vergleich zu Bussen skalierbar. Zweitens entkoppeln
NoCs auch Rechnen und Kommunizieren, was beim Verwalten des Entwurfs
von Chips mit unzähligen
Transistoren. NoCs erreichen diese Entkopplung weil sie auf herkömmliche
Weise unter Anwendung von Protokollstapelung entworfen sind, die
gut definierte Schnittstellen schaffen, die Kommunikationsdienst
von Dienstimplementierung trennen.
-
Die
Verwendung von Netzwerken für On-Chip-Kommunikation,
beim Entwerfen von Systemen auf Chip (SoC) bringt aber eine Anzahl
neuer Elemente mit sich, die berücksichtigt
werden sollen. Das ist weil im Gegensatz zu bestehenden On-Chip-Verbindungen (beispielsweise
Busse, Schalter oder Punkt-zu-Punktverdrahtungen), wobei die Kommunikationsmodule
direkt verbunden werden, in einem NoC die Module fernkommunizieren, und
zwar über
Netzwerkknoten. Dadurch ändert
Verbindungsentscheidung von zentralisiert in verteilt, und Elemente,
wie Außer-Ordnung-Transaktionen, höhere Latenz
und Ende-zu-Ende-Flusssteuerung müssen entweder von dem IP-Block
oder von dem Netzwerk erledigt werden.
-
Die
meisten dieser Punkte sind bereits Gegenstand der Forschung auf
dem Gebiet der örtlichen und
Großbereichnetzwerke
(Computernetzwerke) gewesen und als Verbindung für parallele Maschinenverbindungsnetzwerke.
Beide beziehen sich sehr auf On-Chip-Netzwerke, und viele der Ergebnisse
in diesem Bereich sind auch auf Chip anwendbar. NoC Voraussetzungen
sind anders als Off-Chip Netzwerke, und deswegen müssen die
meisten Netzwerkentwurfswahlen neu bewertet werden. On-Chip-Netzwerke
haben andere Eigenschaften (beispielsweise eine festere Kopplungssynchronisation)
und Beschränkungen
(beispielsweise höhere
Speicherkosten) was zu anderen Entwurfswahlen führt, die letzten Endes die
Netzwerkdienste beeinträchtigen.
-
NoCs
sind anders als Off-Chip-Netzwerke, und zwar vorwiegend in ihren
Beschränkungen
und in der Synchronisation. Typischerweise sind Mittelbeschränkungen
On Chip fester als Off-Chip. Speicher- und Rechenmittel sind relativ
aufwendiger, während die
Anzahl Punkt-zu-Punkt-Kopplungen On-Chip größer ist als Off-Chip. Speicherung
ist aufwendiger, weil Allzweck-On-Chip-Speicher, wie RAM, ein größeres Gebiet
belegen. Wenn der Speicher in den Netzwerkelementen verteilt ist,
ist dies noch schlimmer, da das gesamte Gebiet in dem Speicher dann
dominant wird.
-
Für On-Chip-Netzwerke
werden auch relativ teuer im Vergleich zu Off-Chip-Netzwerke. Eine Off-Chip Netzwerkschnittstelle
enthält
meistens einen speziellen Prozessor zum Implementieren des Protokollstapels
zu Netzwerkschicht oder sogar höher,
um den Gastgeberprozessor von Kommunikationsverarbeitung zu befreien.
Das Einschließen
eines speziellen Prozessors in eine Netzwerkschnittstelle ist On
Chip nicht denkbar, da die Größe der Netzwerkschnittstelle
vergleichbar mit der IP, die mit dem Netzwerk verbunden werden soll,
oder größer wird als
dieselbe. Weiterhin ist das Anwenden des Protokollstapels auf die
IP selber auch nicht durchführbar, weil
oft diese IPs nur eine einzige spezielle Funktion haben, und nicht
die Fähigkeit
haben, einen Netzwerkprotokollstapel durchzuführen.
-
Die
Anzahl Drähte
und Stifte zum Verbinden von Netzwerkelementen ist um eine Größenordnung größer On Chip
als Off Chip. Wenn sie nicht massiv für andere Zwecke als NoC Kommunikation
verwendet werden, ermöglichen
sie große
Punkt-zu-Punktverbindungen
(beispielsweise 300 Bit Kopplungen). Dies ist Off-Chip nicht möglich, wobei
Kopplungen relativ schmäler
sind: 8–16
Bits.
-
On-Chip
Drähte
sind auch relativ kürzer
als Off-Chip, was eine viel festere Synchronisation als Off Chip
ermöglicht.
Dies ermöglicht
eine Reduktion des Pufferraums in den Routern, weil die Kommunikation
mit einer kleineren Granularität
erfolgen kann. Bei den heutigen Halbleitertechnologien sind Drähte auch
schnell und zuverlässig,
was einfachere Koppelschichtprotokolle (beispielsweise keine Notwendigkeit
einer Fehlerkorrektur, oder Neuübertragung) ermöglicht.
Dies kompensiert auch den Mangel an Speicherraum und Rechenmitteln.
-
Zuverlässige Kommunikation:
eine Folge der strengen On-Chip Mittelbeschränkungen ist, dass die Netzwerkelemente
(d. h., Router und Netzwerkschnittstellen) ziemlich einfach sein
müssen
um Rechen- und Speicheranforderungen zu minimieren. Zum Glück schaffen
On-Chip Drähte
ein zuverlässiges
Kommunikationsmedium, das dabei behilflich sein kann, die wesentlichen
Gesamtkosten, verursacht durch Off-Chip Netzwerke zum Schaffen zuverlässiger Kommunikation,
zu vermeiden. Datenintegrität
kann zu geringen Kosten an der Datenkoppelschicht geschaffen werden.
Datenverlust ist aber auch von de3r Netzwerkarchitektur abhängig, da
bei den meisten Computernetzwerken Daten einfach fallen gelassen
werden, wenn in dem Netzwerk Verstopfung auftritt.
-
Festlaufen:
Computernetzwerktopologien haben im Allgemeinen eine unregelmäßige (möglicherweise
dynamische) Struktur, die Pufferzyklen einführen kann. Festlauifen kann
auch vermieden werden, beispielsweise durch Einführung von Beschränkungen,
entweder in der Topologie oder im Routing. Fat-Tree-Topologien wurden
bereits für
NoC erwogen, wobei Festlaufen durch Rücksendung von Paketen in dem
Netzwerk vermieden wird, wenn ein Puffer überläuft. Stapelbasierte Annäherungen
für Systementwurf
benutzen Masche- oder Torusnetzwerktopologien, wobei Festlaufen
vermieden werden kann, und zwar unter Anwendung beispielsweise eines
Umkehrmodell-Routingalgorithmus.
Festlaufen wird vorwiegend verursacht durch Zyklen in den Puffern.
Um Festlaufen zu vermeiden, muss Routing zyklusfrei sein, und zwar
wegen der niedrigeren Kosten beim Erreichen einer zuverlässigen Kommunikation. Ein
zweiter Grund des Festlaufens sind Atomketten der Transaktionen.
Der Grund ist, dass während
ein Modul verriegelt wird, die Schlangen, die Transaktionen speichern,
mit Transaktionen außerhalb
der nicht mehr teilbaren Transaktionskette gefüllt werden, die den Zugriff
der Transaktionen in der Kette zum Erreichen des verriegelten Moduls
sperren. Wenn kleine Transaktionsketten implementiert werden müssen (vergleichbar
mit Prozessoren, die dies ermöglichen, wie
MIPS) sollen die Netzwerkknoten imstande sein, die Transaktionen
in der atomischen Kette zu filtern.
-
Datenordnung:
In einem Netzwerk können Daten,
die von einer Quelle zu einem Ziel ausgesendet werden, außer Ordnung
geraten, und zwar durch Neuordnung in den Netzwerkknoten, wobei
verschiedenen Routen befolgt werden, oder durch Neuübertragung
nach Ausfall. Für
Off-Chip-Netzwerke ist eine Außer-Ordnung-Datenlieferung typisch.
Für NoCs, wobei
keine Daten fallen gelassen werden, können Daten gezwungen werden,
zwischen einer Quelle und einem Ziel (deterministisches Routing)
ohne Aufzeichnung derselben Strecke zu folgen. Dieser In-Ordnung-Datentransport erfordert
weniger Pufferraum, und es sind nicht länger Aufzeichnungsmodule erforderlich.
-
Netzwerkflusssteuerung
und Pufferungsstrategie: Netzwerkflusssteuerung und Pufferungsstrategie
haben einen direkten Einfluss auf den Speichergebrauch in dem Netzwerk.
Wurmlochrouting erfordert nur einen Flitzpuffer (je Schlange) in
dem Router, während
Speicher-und-Sende- und virtuelle Durchschneidungsrouting wenigstens
den Pufferraum brauchen um ein Paket unterzubringen. Folglich kann,
On-Chip, Wurmlochrouting gegenüber
virtuelle Durchschneidungsrouting oder Speicher-und-Sende-Routing bevorzugt.
Auf gleiche Weise kann Eingangsschlangenbildung eine Alternative
mit weniger Speicherkosten gegenüber
virtueller Ausgangsschlangenbildung oder Ausgangsschlangenbildungspufferstrategien,
weil es weniger Schlangen gibt. Spezielle FIFO-Speicherstrukturen
(geringere Kosten) ermöglichen
auch On-Chip-Anwendung von virtueller Durchschneidungsrouting- oder
virtueller Ausgangsschlangenbildung für eine bessere Leistung. Gleichzeitige
Anwendung aber von virtuellem Durchschneidungsrouting und virtueller
Ausgangsschlangenbildung ist zu kostspielig.
-
Zeitrelatierte
Garantien: Off-Chip-Netzwerke benutzen typischerweise Paketumschaltung
und das Anbieten von Bestleistungsdiensten. Streitigkeiten können bei
jedem Netzwerkknoten auftreten, wodurch es sehr schwer ist, Latenzgewährleistungen anzubieten.
Durchführungsgarantien
können
dennoch angeboten werden, und zwar unter Anwendung von Schemen,
wie ratenbasiertes Umschalten oder deadlinebasierte Paketumschaltung,
aber zu hohen Pufferkosten. Eine Alternative zum Schaffen derartiger
zeitrelatierter Gewährleistungen
ist, Zeitmultiplexzugriffschaltungen (TDMA) zu verwenden, wobei jede
Schaltungsanordnung einer Netzwerkverbindung zugeordnet ist. Schaltungsanordnungen
schaffen Garantien bei relativ niedrigen Speicher- und Rechenkosten.
Netzwerkmittelbenutzung wird größer, wenn
die Netzwerkarchitektur es gestattet, dass übrig gebliebene gewährleistete
Bandbreite für
Bestleistungskommunikation angewandt wird.
-
Das
Einführen
von Netzwerken als On-Chip-Verbindungen ändert die Kommunikation völlig, wenn
dies mit direkten Verbindungen, wie Bussen oder Schaltern, verglichen
wird. Dies ist wegen der Mehrfachsprungart eines Netzwerkes, wobei Kommunikationsmodule
nicht direkt verbunden sind, sondern einzeln durch ein oder mehrere
Netzwerkknoten. Dies ist im Gegensatz zu den herrschenden bestehenden
Verbindungen (d. h. Bussen), wobei Module direkt verbunden sind.
Die Effekte dieser Änderung
liegen in der Entscheidung (die von zentralisiert in verteilt geändert werden
muss) und in den Kommunikationseigenschaften (beispielsweise Ordnung
oder Flusssteuerung).
-
Eine
Darstellung der Unterschiede von NoCs und Bussen wird nachstehend
gegeben. Wir beziehen und vorwiegend auf Busse als direkte Verbindungen,
weil diese zur Zeit die am meisten verwendeten On-Chip-Verbindungen
sind. Die meisten Bus-Charakter istiken gelten auch für andere
direkte Verbindungen (beispielsweise Schalter). Mehrpegelbusse sind
eine Mischform zwischen Bussen und NoCs. Für unseren Zweck verhalten sich
je nach der Funktionalität
der Brücken
Mehrpegelbusse entweder wie einfache Busse oder wie NoCs. Das Programmierungsmodell
eines Busses besteht typischerweise aus Lade- und Speichervorgängen, die
als eine Folge primitiver Bustransaktionen implementiert werden.
Busschnittstellen haben typischerweise spezielle Gruppen von Drähten für Befehls-,
Adressen-, Schreibdaten und Lesedaten. Ein Bus ist ein Mittel, das
mit vielen IPs gemeinsam verwendet wird. Deswegen müssen IPs,
bevor sie verwendet werden, durch eine Entscheidungsphase gehen,
in der sie Zugriff auf den Bus beantragen, und werden gesperrt,
bis der Bus Ihnen Zugriff gewährt.
-
Eine
Bustransaktion erfordert einen Antrag und möglicherweise eine Antwort.
Module die Anträge
stellen werden als Master bezeichnet und diejenigen, die Anträgen dienen,
werden als Sklave bezeichnet. Wenn es nur eine einzige Entscheidung gibt
für ein
Antrag-Antwort-Paar, wird der Bus als nicht aufgeteilt bezeichnet.
In diesem Fall ist der Bus nach wie vor dem Master der Transaktion
zugeordnet bis die Antwort geliefert wird, sogar wenn dies lange dauert.
Auf alternative Weise wird in einem geteilten Bus der Bus nach dem
Antrag freigegeben um es zu ermöglichen,
dass Transaktionen von verschiedenen Mastern ausgelöst werden.
Für die
Antwort muss aber eine neue Entscheidung getroffen werden, so dass
der Sklave auf den Bus zugreifen kann.
-
Für geteilte
und nicht geteilte Busse haben die beiden Kommunikationsparteien
direkten und indirekten Zugriff auf den Zustand der Transaktion.
Im Gegensatz dazu sind Netzwerktransaktionen Einwegübertragungen
von einem Ausgangspuffer in der Quelle zu einem Eingangspuffer am
Ziel, die eine gewisse Aktion am Ziel verursachen, wobei der Auftritt derselben
bei der Quelle nicht sichtbar ist. Die Effekte einer Netzwerktransaktion
sind nur durch zusätzliche Transaktionen
wahrnehmbar. Ein Antrag-Antwort-Typ ist dennoch möglich, erfordert
aber wenigstens zwei einzelne Netzwerktransaktionen. Auf diese Weise
wird eine busartige Transaktion in einem NoC im Wesentlichen eine
geteilte Transaktion sein.
-
Transaktionsauftragserteilung:
Herkömmlicherweise
werden bei einem Bus alle Transaktionen erteilt (vergleiche: Peripheral
VCI, AMBA, oder CoreConnect PLB und OPB). Dies ist zu geringen Kosten möglich, weil
das Internet, das eine direkte Kopplung zwischen den kommunizierenden
Parteien ist, keine Daten neu bestellt. Bei einem geteilten Bus
aber kann eine totale Auftragserteilung von Transaktionen bei einem
einzigen Master dennoch Leistungsnachteile verursachen, wenn Sklaven
mit verschiedenen Geschwindigkeiten antworten. Um dieses Problem zu
lösen ermöglichen
jüngste
Erweiterungen zu Busprotokollen, dass Transaktionen bei Verbindungen durchgeführt werden.
Auftragserteilung von Transaktionen innerhalb einer Verbindung wird
dennoch erhalten, aber zwischen Verbindungen gibt es keine Auftragsbeschränkungen
(beispielsweise OCP, oder Basis-VCI). Einige der Busprotokolle ermöglichen eine
Außer-Ordnung-Antwort je
Verbindung in den modernen Moden (beispielsweise Advanced VCI), aber
Anträge
und Antworten treffen in derselben Reihenfolge am Ziel ein, in der
sie gesendet wurden.
-
In
einem NoC wird Auftragserteilung schwächer. Globale Auftragserteilung
kann nur zu sehr hohen Kosten durchgeführt werden, und zwar wegen der
Streitigkeit zwischen der verteilten Art der Netzwerke und der Anforderung
einer zentralisierten Entscheidung, erforderlich für eine globale
Auftragserteilung. Sogar eine örtliche
Auftragserteilung zwischen einem Quelle-Ziel-Paar kann kostspielig
sein. Daten können
außer
Ordnung geraten, wenn sie über
viele Routen transportiert werden. In derartigen Fällen müssen, um
dennoch eine einwandfreie Lieferung zu erhalten, Daten mit Folgenummern
etikettiert und am Ziel vor Lieferung neu geordnet werden. Das Kommunikationsnetzwerk
umfasst eine Anzahl teilweise verbundener Knoten. Nachrichten von
einem Modul werden von den Knoten zu einem oder mehreren anderen
Knoten neu gerichtet. Dazu umfasst die Nachricht erste Information,
indikativ für
die Stelle des adressierten Moduls (der adressierten Module) innerhalb
des Netzwerkes. Die Nachricht kann weiterhin zweite Information
enthalten, indikativ für
eine spezielle Stelle innerhalb des Moduls, wie einer Speicheradresse,
oder einer Registeradresse. Die zweite Information kann eine bestimmte
Antwort des adressierten Moduls hervorrufen.
-
Kleine
Transaktionsketten: Eine kleine Transaktionskette ist eine Folge
von Transaktionen, ausgelöst
durch einen einzigen Master, der ausschließlich auf einen einzigen Sklaven
gerichtet ist. Das heißt,
anderen Master wird Zugriff auf diesen Sklaven untersagt, wenn die
erste Transaktion in der Kette diesen Zugriff beansprucht hat. Dieser
Mechanismus wird allgemein angewandt um Synchronisationsmechanismen
zwischen Mastermodulen (beispielsweise Semaphoren) zu implementieren.
Bei einem Bus können
kleine Vorgänge
auf einfache Art und Weise implementiert werden, da der zentrale Schiedsrichter
(a) den Bus für
den exklusiven Gebrauch durch den Master verriegelt, der die kleine Kette
beantragt hat, oder (b) nicht weiß, einem verriegelten Sklaven
Zugriff zu gewähren.
Im ersten Fall ist die Zeit, dass die Mittel verriegelt sind, kürzer, weil wenn
ein Master einmal Zugriff auf einen Bus gewährt hat, er schnell alle Transaktionen
in der Kette durchführen
kann (es ist keine Entscheidungsverzögerung für die nachfolgenden Transaktionen
in der Kette erforderlich). Folglich können der verriegelte Sklave
und der Bus in kürzester
Zeit geöffnet
werden. Diese Annäherung
wird in AMBA und CoreConnect angewandt. In dem letzteren Fall wird
der Bus nicht verriegelt und kann dennoch von anderen Modulen verwendet
werden, aber dies alles auf Kosten eine längeren Verriegelungszeit des
Sklaven. Diese Annäherung
wird in VCI und OCP angewandt.
-
In
einem Noc, wobei die Entscheidung verteilt ist, wissen Master nicht,
dass ein Sklave verriegelt ist. Deswegen können Transaktionen mit einem verriegelten
Sklaven dennoch ausgelöst
werden, sogar wenn der verriegelte Sklave sie nicht akzeptieren kann.
Folglich müssen
zur Vermeidung von Festlaufen diese anderen Transaktionen in der
kleinen Kette imstande sein, sie zum Helfen umzuleiten. Weiterhin ist
die Zeit, dass ein Modul verriegelt ist, viel langer in dem Fall
von NoCs, und zwar wegen der höheren
Latenz je Transaktion.
-
Medienentscheidung:
Ein großer
Unterschied zwischen Bussen und NoCs ist in dem Medienentscheidungsschema.
In einem Bus beantragen Mastermodule Zugriff auf die gegenseitige
Verbindung, und der Entscheider gewährt den Zugriss für die ganze
gegenseitige Verbindung sofort. Entscheidung wird zentralisiert,
da es nur eine Entscheidungskomponente gibt, und global, da alle
Anträge sowie
der Zustand der Verbindung für
den Entscheider sichtbar sind. Weiterhin wird, wenn eine Bewilligung
gegeben wird, wird die komplette Strecke von der Quelle zu dem Ziel
exklusiv reserviert. In einem nicht geteilten Bus erfolgt Entscheidung,
wenn die Transaktion ausgelöst
wird. Dadurch wird dem Bus Antrag und Antwort gewährt. In
einem geteilten Bus werden Anträge
und Antworten einzeln beurteilt.
-
In
einem NoC ist Entscheidung auch notwendig, da es eine geteilte Verbindung
ist. Im Gegensatz aber zu Bussen ist die Entscheidung verteilt,
weil diese in jedem Router durchgeführt wird, und nur auf örtlicher
Information basiert ist. Entscheidung der Kommunikationsmittel (Kopplungen,
Puffer) erfolgt schrittweise, je nachdem der Antrag oder die Antwort fortschreitet.
-
Zielname
und Routing: Für
einen Bus werden der Befehl, die Adresse und die Daten über die Verbindung
ausgesendet. Sie treffen bei jedem Ziel ein, von denen eins auf
Basis der gesendeten Adresse den beantragten Befehl aktiviert und
durchführt. Dies
ist möglich,
weil alle Module direkt mit demselben Bus verbunden sind. In einem
NoC ist es nicht denkbar, Information zu allen Zielen zu senden,
weil diese zu allen Routern und Netzwerkschnittstellen kopiert werden
muss. Die Adresse wird besser bei der Quelle decodiert um eine Route
zu dem Zielmodul zu finden. Eine Transaktionsadresse wird deswegen
zwei Teile haben: (a) einen Zielidentifizierer, und (b) eine interne
Adresse am Ziel.
-
Latenz:
Transaktionslatenz wird durch zwei Faktoren verursacht: (a) die
Zugriffszeit auf den Bus, welche die Zeit ist, bis der Bus bewilligt
wird, und (b) die durch die Verbindung eingeführte Latenz zum Übertragen
der Daten. Für
einen Bus, wobei die Entscheidung zentralisiert ist, ist die Zugriffszeit
der Anzahl mit dem Bus verbundener Master proportional. Die Übertragungslatenz
selber ist typischerweise konstant und relativ schnell, weil die
Module direkt gekoppelt sind. Die Geschwindigkeit der Übertragung
wird durch die relativ niedrige Busgeschwindigkeit begrenzt.
-
In
einem NoC erfolgt die Entscheidung bei jedem Router für die nachfolgende
Kopplung. Die Zugriffszeit je Router ist gering. Die Ende-zu-Ende-Zugriffszeit und
die Transportzeit steigen proportional zu der Anzahl Sprünge zwischen
dem Master und dem Sklaven. Netzwerkkopplungen sind aber unidirektional
und Punkt zu Punkt, und können
folglich mit höheren
Frequenzen als Busse laufen, wodurch folglich die Latenz verringert
wird. Aus dem Gesichtspunkt der Latenz, ist die Verwendung eines
Busses oder eines Netzwerkes ein Kompromiss zwischen der Anzahl
Module, die mit der Verbindung verbunden sind (was die Zugriffszeit
beeinträchtigt),
der Geschwindigkeit der Verbindung und der Netzwerktopologie.
-
Datenformat:
In den meisten modernen Busschnittstellen wird das Datenformat durch
separate Drahtgruppen für
den Transaktionstyp, die Adresse, die Schreibdaten, die Lesedaten
und die Antwortbestätigungen/Fehler
(beispielsweise VCI, OCP, AMBA oder CodeConnect) definiert. Dies
wird angewandt um Transaktionen über
eine Leitung zu leiten. So können
beispielsweise gleichzeitig mit der Versendung der Adresse einer
Lesetransaktion die Daten einer vorhergehenden Schreibtransaktion
gesendet werden, und die Daten von einer noch früheren Lesetransaktion können empfangen
werden.
-
Weiterhin
vereinfachen spezielle Drahtgruppen die Transaktionsdecodierung;
es gib kein Bedürfnis
nach einem Mechanismus zum Selektieren zwischen verschiedenen Arten
von Daten, die über
einen gemeinsamen Satz von Drähten
gesendet werden. Innerhalb eines Netzwerkes gibt es typischerweise
keinen Unterschied zwischen verschiedenen Arten von Daten. Daten
werden einheitlich behandelt und von dem einen Router zu einem anderen
geleitet. Dies geschieht zum Minimieren der Steuerungskosten und
der Pufferung in Routern. Wenn einzelne Drähte für jede der oben genannten Gruppen
verwendet werden würden,
wäre ein
einzelnes Routing, eine einzelne Planung und Schlangenbildung erforderlich,
was die Kostesn von Routern steigert.
-
Außerdem muss
in einem Netzwerk bei jeder Schicht in dem Protokollstapel Steuerinformation
geliefert werden, und zwar zusammen mit den Daten (beispielsweise
Pakettyp, Netzwerkadresse, oder Paketgröße). Diese Steuerinformation
wird als eine Umhüllende
um die Daten herum organisiert. Das heißt, zunächst wird ein Header gesendet,
danach folgen die wirklichen Daten (Nutzlast), dann folgt möglicherweise
ein Nachsatz. Viele derartige Umhüllenden können für dieselben Daten geschaffen
werden, die je die entsprechende Steuerinformation für jede Schicht
in dem Netzwerkprotokollstapel tragen.
-
Pufferung
und Flusssteuerung: Pufferung von Daten eines Masters (Ausgangspufferung)
wird für
Busse und NoCs angewandt um das Rechnen von der Kommunikation zu
trennen. Für
NoC ist Ausgangspufferung auch erforderlich um Daten zu ordnen,
was besteht aus: (a) (fakultativem) Spalten de ausgehenden Daten
in kleineren Paketen, die von dem Netzwerk transportiert werden,
und (b) Hinzufügung
von Steuerinformation für
das Netzwerk um die Daten herum (Paketheader). Um einen Überfluss
des Ausgangspuffers zu vermeiden, muss der Master keine Transaktionen
auslösen,
die mehr Daten erzeugen als der zur Zeit verfügbare Raum. Auf gleiche Weise
wie Ausgangspufferung wird Eingangspufferung auch zum Entkoppeln
von Rechenaktivitäten von
Kommunikation angewandt. In einem NoC ist Eingangspufferung auch
erforderlich um Daten zu unordnen.
-
Außerdem ist
Flusssteuerung für
Eingangspuffer anders für
Busse als für
NoCs. Für
Busse sind die Quelle und das Ziel direkt miteinander gekoppelt, und
das Ziel kann deswegen unmittelbar einer Quelle mitteilen, dass
es keine Daten akzeptieren kann.
-
Diese
Information kann sogar für
den Schiedsrichter verfügbar
sein, so dass der Bus keine Transaktion durchführen kann bei dem Versuch,
einen vollen Puffer zu beschreiben.
-
In
einem NoC aber kann das Ziel eines Transaktion nicht unmittelbar
einer Quelle mitteilen, dass der Eingangspuffer voll ist. Folglich
können Transaktionen
zu einem Ziel gestartet werden, möglicherweise von mehreren Quellen
aus, nachdem der Eingangspuffer des Ziels gefüllt worden ist. Wenn ein Eingangspuffer
voll ist, werden zusätzliche
eintreffende Transaktionen nicht akzeptiert, und in dem Netzwerk
gespeichert. Diese Annäherung
kann aber auf einfache Art und Weise zu Netzwerkverstopfung führen, da
die Daten, die letztendlich die ganze Strecke in den Quellen gespeichert
sind, die zwischen liegenden Kopplungen sperren.
-
Um Überfluss
von Eingangspuffern zu vermeiden können Verbindungen verwendet
werden, zusammen mit einer Ende-zu-Ende-Flussregelung. Bei einem
Verbindungsaufbau zwischen einem Master und einem oder mehreren
Sklaven wird den Netzwerkschnittstellen der Sklaven Pufferraum zugeordnet,
und der Netzwerkschnittstelle des Masters wird Kredite zugeordnet,
die den Betrag an Pufferraum bei den Sklaven reflektieren. Der Master
kann nur Daten senden, wenn er genug Kredite für den (die) Zielsklaven hat.
Die Sklaven gewähren
dem Master Kredite, wenn sie Daten verbrauchen.
-
Es
sei bemerkt, dass Kumar S. u. a.: "A Network an Chip Architecture and Design
Methodology", VLSI
an annual Symposium, IEEE Computer Society ISVLSI 2002" Pittsburg, Pixelabtastwert,
USA 25–26 April
2002, Los Aalmitos, CA, USA, Ieee Comput. Soc. US, 25 April 2002", Seiten 117–124, XP002263346
ISBN: 0-7695-1486-3 ein Netzwerk auf Chip Architektur beschreibt,
die ein m × n
Gitter von Schaltern aufweist. Jeder Schalter ist mit einem Mittel
verbunden, und jedes Mittel ist mit einem Schalter verbunden. Die
NOC Architektur ist im Wesentlichen die On-Chip-Kommunikationsinfrastruktur.
-
Weiterhin
sei bemerkt, dass
USP 5.546.582 eine
Erweiterung des Zweiphasen-Verpflichtungsprotokolls beschreibt.
Dies ermöglicht
eine verteilte Partizipation unter physikalisch in einem Abstand
voneinander liegenden Agenten, unabhängig von dem Kommunikationsmechanismus,
der in einem Datenverarbeitungssystem verwendet wird.
-
ZUSAMMENGASSUNG DER ERFINDUNG
-
Es
ist nun u. a. eine Aufgabe der vorliegenden Erfindung, eine integrierte
Schaltung zu schaffen sowie ein Verfahren zum Austauschen von Nachrichten
in einer integrierten Schaltung mit einer mehr effektiven Verwendung
der Eigenschaften des Netzwerkes.
-
Diese
Aufgabe wird erreicht durch eine integrierte Schaltung nach Anspruch
1 und ein Verfahren zum Austauschen von Nachrichten nach Anspruch
5.
-
Dazu
wird eine integrierte Schaltung mit einer Anzahl Verarbeitungsmodule
M; I; S; T; und ein Netzwerk N; RN, vorgesehen zum Schaffen wenigstens
eine Verbindung zwischen einem ersten und wenigstens einem zweiten
Modul, geschaffen. Die genannten Verbindungen umfassen einen Satz
Kommunikationskanäle,
die je einen Satz mit Verbindungseigenschaften haben. Die genannte
Verbindung unterstützt
Transaktionen mit ausgehenden Nachrichten von dem ersten Modul zu
dem zweiten Modul und Antwortnachrichten von dem zweiten Modul zu
dem ersten Modul. Die Verbindungseigenschaften der verschiedenen
Kommunikationskanäle der
genannten Verbindung können
unabhängig
voneinander eingestellt werden.
-
Dazu
wird die Benutzung der Mittel eines Netzwerkes an Chip effizienter,
da die Verbindung zwischen Modulen auf effiziente Art und Weise
an die wirkliche Anforderung angepasst werden kann, so dass die
Verbindung nicht überbemessen
wird und nicht verwendetet Netzwerkmittel anderen Verbindungen zugeordnet
werden können.
-
Die
genannte integrierte Schaltung umfasst wenigstens ein Kommunikationsverwaltungsmittel CM
zur Verwaltung der Kommunikation zwischen verschiedenen Modulen;
und wenigstens ein Mittelverwaltungsmittel RM zur Verwaltung der
Mittel des Netzwerkes N.
-
Das
genannte erste Modul M; I stellt einen Antrag für eine Verbindung mit wenigstens
einem der genannten zweiten Module an die genannten Kommunikationsverwaltungsmittel
CM. Die Kommunikationsverwaltungsmittel CM transportieren den Antrag für eine Verbindung
mit Kommunikationskanälen,
die je einen spezifischen Satz Verbindungseigenschaften haben, zu
den Mittelverwaltungsmitteln (RM). Die genannten Mittelverwaltungsmittel
RM bestimmen, ob die beantragte Verbindung auf Basis der genannten
Kommunikationskanäle
mit den genannten spezifischen Verbindungseigenschaften verfügbar sind, und
beantwortet die Verfügbarkeit
der beantragten Verbindung an die genannten Kommunikationsverwaltungsmittel
CM. Eine Verbindung zwischen dem ersten und dem zweiten Modul wird
auf Basis der verfügbaren
Eigenschaften oder der verfügbaren
Netzwerkmittel, erforderlich zum Implementieren der Eigenschaften
der genannten Kommunikationskanäle der
genannten Verbindung hergestellt.
-
Nach
noch einem weiteren Aspekt der vorliegenden Erfindung verweigern
die genannten Kommunikationsverwaltungsmittel CM die Herstellung
einer Verbindung auf Basis der verfügbaren Verbindungseigenschaften,
wenn die verfügbaren
Verbindungseigenschaften nicht ausreichen um die beantragte Verbindung
zwischen dem ersten und dem zweiten Modul durchzuführen. Die
Verbindungseigenschaften erfordern, dass einige Netzwerkmittel implementiert
werden, beispielsweise eine Durchführung erfordert Schlitzreservierung
und Flusssteuerung erfordert Pufferung. Deswegen wird eine Verbindung,
die einige Eigenschaften erfordert, ggf. geöffnet, und zwar abhängig von
der Verfügbarkeit
dieser Mittel. Auf entsprechende Weise hat der Kommunikationsverwalter
CM eine gewisse Kontrolle über
die minimale Anforderungen für
eine Verbindung.
-
Nach
einem weiteren Aspekt der vorliegenden Erfindung stellen die genannten
Kommunikationsverwaltungsmittel CM einen Antrag für Rückstellung
der Verbindung zwischen dem genannten ersten und zweiten Modul,
wenn die genannten Module nacheinander ihre Transaktionen durchgeführt haben,
so dass die Netzwerkmittel wieder für andere Verbindungen verwendet
werden können.
-
Nach
noch einem anderen Aspekt der vorliegenden Erfindung umfasst die
genannte integrierte Schaltung wenigstens ein Netzwerkschnittstellenmittel
NI, assoziiert mit jedem der genannten Module, zur Verwaltung der
Kommunikation zwischen den genannten Modulen und dem genannten Netzwerk
N. Folglich können
die Module unabhängig
von dem Netzwerk entworfen und dadurch neu verwendet werden.
-
Die
vorliegende Erfindung bezieht sich auch auf ein Verfahren zum Austauschen
von Nachrichten in einer integrierten Schaltung mit einer Anzahl
Module, wie oben beschrieben. Die Nachrichten zwischen den Modulen
werden über
Verbindungen mittels eines Netzwerkes ausgetauscht. Die genannten Verbindungen
umfassen einen Satz Kommunikationskanäle, die je einen Satz Verbindungseigenschaften
haben. Die genannte Verbindung durch das Netzwerk unterstützt Transaktionen
mit ausgehenden Nachrichten von dem ersten Modul zu dem zweiten Modul
und Antwortnachrichten von dem zweiten Modul zu dem ersten Modul.
Das Netzwerk verwaltet die ausgehenden Nachrichten auf eine Art
und Weise, die anders ist als die Antwortnachrichten, d. h. die Verbindungskanäle können unabhängig voneinander konfiguriert
werden.
-
Weitere
Aspekte der vorliegenden Erfindung werden in den Unteransprüchen beschrieben.
-
Diese
und andere Aspekte der vorliegenden Erfindung dürften aus den nachstehend beschriebenen
Ausführungsformen
hervorgehen.
-
KURZE BESCHREIBUNG DER ZEICHNUNG
-
Ausführungsbeispiele
der vorliegenden Erfindung sind in der Zeichnung dargestellt und
werden im Folgenden näher
beschrieben. Es zeigen:
-
1 ein
System an Chip nach einer ersten Ausführungsform,
-
2 ein
System an Chip nach einer zweiten Ausführungsform, und
-
3 ein
System an Chip nach einer dritten Ausführungsform.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
nachfolgenden Ausführungsformen
beziehen sich auf Systeme an Chip, d. h. eine Anzahl Module auf
demselben Chip kommunizieren miteinander über eine Art von gegenseitiger
Verbindung. Diese Verbindung wird als Netzwerk an Chip NOC ausgebildet.
Das Netzwerk an Chip kann Drähte,
einen Bus, Zeitmultiplex, Schalter, und/oder Router innerhalb eines
Netzwerkes enthalten. In der Transportschicht des genannten Netzwerkes
wird die Kommunikation zwischen den Modulen über Verbindungen durchgeführt. Eine
Verbindung wird als ein Satz von Kanälen betrachtet, die je einen
Satz Verbindungseigenschaften haben, zwischen einem ersten Modul
und wenigstens einem zweiten Modul. Für eine Verbindung zwischen
einem ersten Modul und einem einzigen zweiten Modul umfasst die
Verbindung zwei Kanäle,
und zwar einen von dem ersten Modul zu dem zweiten Kanal, d. h.
den Antragskanal, und einen zweiten von dem zweiten zu dem ersten Modul,
d. h. den Antwortkanal. Der Antragskanal ist für Daten und Nachrichten von
dem ersten zu dem zweiten reserviert, während der Antwortkanal für Daten
und Nachrichten von dem zweiten zu dem ersten Modul reserviert ist.
Wenn aber die Verbindung ein erstes Modul und N zweite Module betrifft,
werden 2·N
Kanäle
vorgesehen. Die Verbindungseigenschaften können Ordnung enthalten (Datentransport
in einer bestimmten Reihenfolge), Flusssteuerung (ein Fernpuffer
ist für
eine Verbindung reserviert und ein Datenproduzent darf nur dann
Daten senden, wenn gewährleistet
ist, dass Raum für
die erzeugten Daten verfügbar
ist), Durchfluss (eine untere Begrenzung an dem Durchfluss ist gewährleistet),
Latenz (eine obere Begrenzung für
Latenz ist gewährleistet),
Verlierbarkeit (das Fallenlassen von Daten), Übertragungsbeendigung, Transaktionsbeendigung,
Datenrichtigkeit, Priorität,
oder Datenlieferung.
-
1 zeigt
ein System an Chip nach einer ersten Ausführungsform. Das System umfasst
ein Mastermodul M, zwei Sklavenmodule S1, S2. Jedes Modul ist über eine
jeweilige Netzwerkschnittstelle NI mit einem Netzwerk N verbunden.
Die Netzwerkschnittstellen NI werden als Schnittstellen zwischen den
Master- und den Sklavenmodulen M, S1, S2 und dem Netzwerk N verwendet.
Die Netzwerkschnittstellen NI sind vorgesehen zum Verwalten der
Kommunikation der betreffenden Module und des Netzwerkes N, so dass
die Module ihren speziellen Vorgang durchführen können, ohne dass die Kommunikation mit
dem Netzwerk oder anderen Modulen berücksichtigt werden muss. Die
Netzwerkschnittstellen NI können über das
Netzwerk einander Anträge
zusenden, wie lese rd und schreibe wr.
-
2 zeigt
ein System an Chip nach einer zweiten Ausführungsform. Das System umfasst
zwei Module, und zwar einen Auslöser
I und ein Ziel T, ein Routernetzwerk RN und zwei Netzwerkschnittstellen ANIP,
PNIP zwischen den Modulen und dem Routernetzwerk RN. Die Netzwerkschnittstellen
schaffen zwei Netzwerkschnittstellenporte NIP (einen Antrags- und
einen Antwortport), über
welche die Module mit dem Routernetzwerk RN oder anderen Modulen über das
Routernetzwerk RN kommunizieren. Die Netzwerkschnittstelle hat einen
oder mehrere Porte, mit denen Module verbunden werden können. Zwei verschiedene
Porttypen sind verfügbar,
und zwar der aktive Netzwerkschnittstellenport ANIP, der mit Master
verbunden ist, und der passive Netzwerkschnittstellenport PNIP,
der mit dem Sklaven verbundne ist. Die Kommunikation zwischen dem
Auslösermodul
I und dem Zielmodul T basiert auf Antrag-Antwort-Transaktionen, wobei der Master, d.
h. das Auslösermodul
I, eine Transaktion dadurch auslöst,
dass ein Antrag gestellt wird, möglicherweise
mit einigen Daten oder erforderlichen Verbindungseigenschaften.
Der Antrag REQ wird dem Sklaven geliefert, d. h. dem Zielmodul T,
und zwar über
den aktiven Netzwerkschnittstellenport ANIP, das Netzwerk RN und den
passiven Netzwerkschnittstellenport PNIP. Der Antrag wird von dem
Zielmodul T erfüllt
und Daten werden als Antwort RESP zurückgesendet, falls erforderlich
oder notwendig. Diese Antwort RESP kann Daten und/oder eine Bestätigung für den Master
oder das Auslösermodul
I enthalten.
-
Die
Module, wie in 1 und 2 beschrieben,
können
sog. Geistiges Eigentumsblöcke IPs
sein (Rechenelemente, Speicher oder ein Subsystem, das intern miteinander
verbundene Module enthalten kann), die mit dem Netzwerk bei den
benannten Netzwerkschnittstellen NI miteinander zusammenarbeiten.
NIs schaffen NI-Porte NIP, über welche
auf die Kommunikationsdienste zugegriffen werden kann. Eine NI kann
verschiedene NIPs haben, mit denen ein oder mehrere IPs verbunden
werden können.
Auf gleiche Weise kann ein IP mit mehr als nur einer NI und nur
einem NIP verbunden werden.
-
Die
Kommunikation über
das Netzwerk erfolgt über
die Netzwerkschnittstellen an Verbindungen. Verbindungen werden
eingeführt
zum Beschreiben und zum Identifizieren von Kommunikation mit verschiedenen
Eigenschaften, wie garantiertem Durchfluss, begrenzter Latenz und
Jitter, geordneter Lieferung oder Flusssteuerung. Um Kommunikation von
1 Mbs und 25 Mbs unterscheiden und unabhängig gewährleisten zu können, können zwei
Verbindungen verwendet werden. Zwei NIPs können durch mehrere Verbindungen,
möglicherweise
mit verschiedenen Eigenschaften, verbunden werden. Verbindungen,
wie hier definiert, entsprechen dem Konzept und Verbindungen von
OCP und VCI. Dort, wo in OCP und VCI Verbindungen nur zum Entspannen der
Transaktionsordnung verwendet werden, verallgemeinern wir nur von
der Ordnungseigenschaft um unter anderem Konfiguration von Pufferung
und Flusssteuerung, gewährleistetem
Durchfluss und begrenzter Latenz je Verbindung zu enthalten.
-
3 zeigt
ein System an Chip nach einer dritten Ausführungsform. Das System der
dritten Ausführungsform
basiert auf dem System nach der zweiten Ausführungsform und umfasst zusätzlich einen
Kommunikationsverwalter CM und einen Mittelverwalter RM. In diesem
Fall sind der Kommunikationsverwalter CM und der Mittelverwalter
RM in dem Routernetzwerk RN vorgesehen, sie können aber auch in einer oder
in einigen Netzwerkschnittstellen NI vorgesehen sein.
-
Wenn
das Auslösermodul
I Daten aus dem/in das Zielmodul T auslesen bzw. einschreiben muss, wird
ein Antrag REQ für
eine Verbindung mit dem Zielmodul T ausgegeben. Dieser Antrag REQ
wird einem Antragsport der aktiven Netzwerkschnittstellenporte ANIP
der Netzwerkschnittstelle zugesendet, die mit dem genannten Auslöser assoziiert
ist. Dieser Antrag kann Information über eine Identifikation wenigstens
eines Zielmoduls, d. h. eines Ziels ID, sowie in Bezug auf die Eigenschaften
der Verbindung zwischen dem Auslösermodul
I und dem Zielmodul T enthalten. Die Eigenschaften der Verbindung
zwischen den zwei Modulen kann von der Richtung abhängig sein,
d. h. die Eigenschaften des Antragskanals können anders sein als die Eigenschaften
des Antwortkanals.
-
Der
Kommunikationsverwalter CM beantragt eine Verbindung mit einem Satz
Eigenschaften zwischen zwei Modulen von dem Mittelverwalter RM, nach
Empfang des Antrags REQ von den aktiven Netzwerkschnittstellenporten
ANIP, d. h. die Eigenschaften einer Verbindung, beispielsweise Durchfluss,
Flusssteuerung, werden beantragt, wenn ein Verbindungsaufbau beantragt
wird. Der Mittelverwalter RM ordnet die erforderlichen Mittel zu
und untersucht, ob eine Verbindung auf Basis dieser Mittel möglich ist.
Die Eigenschaften erfordern, dass Mittel implementiert werden (beispielsweise
Durchfluss erfordert Schlitzreservierungen, Flusssteuerung erfordert
Pufferung). Deswegen wird eine Verbindung, die einige Eigenschaften
erfordert, ggf. je nach der Verfügbarkeit
dieser Mittel geöffnet.
Die Verfügbarkeit der
Verbindungseigenschaften entspricht der Fähigkeit des Netzwerkes zum
Erfüllen
oder Schaffen der Mittel für
die Verbindungseigenschaften, identifiziert in dem Verbindungsaufbauantrag.
Die Zuordnung der Mittel kann auf zweierlei Weisen durchgeführt werden.
Erstens kann der Mittelverwalter RM eine Eigenschaftstabelle enthalten
mit Eingaben für
alle verschiedenen Eigenschaften der Kanäle und Verbindungen. Auf alternative
Weise kann eine zentrale Eigenschaftstabelle geschaffen erden, die
alle verschiedenen Eigenschaften des Netzwerkes enthält, d. h.
die Tabelle kann entweder zentral sein oder verteilt.
-
Nach
Untersuchung der verfügbaren
Verbindungseigenschaften reserviert der Mittelverwalter RM die verfügbare Verbindung,
d. h. die erforderlichen Mittel, und antwortet an den Kommunikationsverwalter
CM, welche Verbindung verfügbar
ist, d. h. welche Verbindungseigenschaften oder die erforderlichen
Mittel dazu, für
die gewünschten
Kanäle
verfügbar
sind. Gegebenenfalls kann der Kommunikationsverwalter CM die Verbindung
mit den verfügbaren Eigenschaften
akzeptieren, aber andererseits kann der Kommunikationsverwalter
CM auch die angebotene Verbindung ablehnen, wenn die verfügbaren Eigenschaften
oder die Mittel dazu nicht akzeptabel sind. Wenn der Kommunikationsverwalter
CM die angebotene Verbindung ablehnt, sendet er eine Fehlernachricht
zu dem Auslösermodul
I (d. h. über
den ANIP) und beantragt dass das Mittelmodul RM die Reservierung
der genannten Verbindungen frei lässt. Andererseits stellt der
Mittelverwalter RM die Verbindungseigenschaften ein und bildet eine
Verbindung mit akzeptierbaren Eigenschaften zwischen dem genannten
Auslösermodul
und dem Zielmodul. Nachdem die genannten zwei Module I, T die Transaktionen,
wie diese von dem Auslösermodul
beantragt wurden, durchgeführt
haben liefert der Kommunikationsverwalter CM einen Antrag zu dem
Mittelverwalter RM um die Verbindung oder die Verbindungseigenschaften
zurück
zu setzen.
-
Die
Verbindungen nach den Ausführungsformen
der vorliegenden Erfindung müssen
zunächst mit
den gewünschten
Eigenschaften geschaffen oder aufgebaut werden, bevor sie verwendet
werden. Dies kann zu Mittelreservierungen innerhalb des Netzwerkes
führen
(beispielsweise Pufferraum, oder einen Prozentsatz der Kopplungsverwendung
je Zeiteinheit). Wenn die beantragten Mittel nicht verfügbar sind,
wird das Netzwerk RN den Antrag verweigern. Nach Verwendung werden
Verbindungen geschlossen, was dazu führt, dass die Mittel, die durch
diese Verbindung besetzt waren, wieder frei sind.
-
Um
mehr Flexibilität
bei der Konfiguration von Verbindungen zu ermöglichen und folglich eine bessere
Mittelzuordnung je Verbindung zu schaffen, können die ausgehenden und zurückkehrenden
Teile von Verbindungen unabhängig
voneinander konfiguriert werden. So kann beispielsweise in den NIPs dem
Master und Sklaven ein anderer Betrag an Pufferraum zugeordnet werden,
oder es können
verschiedene Bandbreiten reserviert werden für Anträge und Antworten.
-
Ein
Beispiel für
die Verwendung verschiedener Eigenschaften für ausgehende und zurückkehrende
Teile wird wie folgt beschrieben. Verbindungen mit einen gewährleisteten
Durchfluss können
in einigen Fällen
Mittel überbuchen.
Wenn beispielsweise ein ANIP eine Leseverbindung mit einem garantierten
Durchfluss öffnet,
muss er Schlitze für
die Lesebefehlnachrichten und für
die Lesedatennachrichten reservieren. Das Verhältnis zwischen den zwei kann sehr
groß sein
(beispielsweise 1:100), was entweder zu einer großen Anzahl
Schlitze führt
oder dazu, dass Bandbreite für
die Lesebefehlnachrichten verschwendet wird.
-
Um
dieses Problem zu lösen
können
die Verbindungseigenschaften der Antrags- und der Antwortteile einer
Verbindung unabhängig
für Durchfluss,
Latenz und Jitter konfiguriert werden. Folglich können die
Verbindungseigenschaften des Antragsteils einer Verbindung beste
Mühe sein,
während
die Verbindungseigenschaften der Antwort einen gewährleisteten
Durchfluss haben kann (oder umgekehrt). Für das oben genannte Beispiel
können
wir die Lesenachrichten bester Mühe
und die Lesedatennachrichten mit garantiertem Durchfluss verwenden. In
diesem Fall können
keine globale Verbindungsgarantien angeboten werden, aber der gesamte
Durchfluss kann höher
und stabiler sein als in dem Fall der Anwendung von Verkehr bester
Mühe.
-
Eine
Verbindung, über
die nur Lesebefehle für
große
Blöcke
mit Daten durchgeführt
werden, kann als ein weiteres Beispiel betrachtet werden. In einem
derartigen Fall würde,
wenn Flusssteuerung implementiert wird, eine Netzwerkschnittstelle
PNIP, assoziiert mit einem Sklaven S, T einen kleinen Puffer erfordern,
während
die Netzwerkschnittstelle ANIP, die mit einem Master M, I assoziiert
ist, einen großen
Puffer erfordern würde.
In einem alternativen Beispiel ist ein garantierter Durchfluss erforderlich. Typischerweise
wird ein garantierter Durchfluss durch Reservierung von Schlitzen
fester Größe aus einer
Schlitztabelle geschaffen, wobei ein Bandbreitenwert mit jedem Schlitz
assoziiert ist, so dass die Bandbreitenwerte summiert werden, wenn
mehr Schlitze zugeordnet werden. In einem derartigen Schema wird
es eine minimale Bandbreite geben, die zugeordnet werden kann. Deswegen
wäre die
Zuordnung von Bandbreite nur für
Lesebefehle ein ineffizienter Gebrauch der Bandbreite, da Lesebefehle
nur einen geringen Bruchteil verwenden würden. Die zurückkehrenden
Datenantworten würden
wahrscheinlich genügend
Bandbreite verwenden um die langsame Reservierung einzustellen.
Um eine derartige ineffiziente Bandbreitenbenutzung zu vermeiden,
kann der Antragsteil der Verbindung als beste Mühe aufgestellt werden (d. h.
keine Durchflussgarantien) und der garantierte Durchfluss nur für den Antwortteil.
Auf entsprechende Weise werden keine Gesamtgarantien angeboten,
aber für
ein akzeptabel belastetes Netzwerk wird eine derartige Verbindung
gut funktionieren. Für
ein Netzwerk mit einer geringen Belastung kann diese Lösung sogar
noch schneller sein, da Daten nach bestem Können schneller übertragen werden
können
(so gibt es beispielsweise keine Notwendigkeit, auf den zugeordneten
Bandbreitenschlitz zu warten).
-
Je
nach den beantragten Diensten kann die Zeit, eine Verbindung zu
erledigen (d. h. das Schaffen, das Schließen, das Modifizieren von Diensten) kurz
sein (beispielsweise das Schaffen/Schließen einer nicht befohlenen
verlustbehafteten bestmöglichen
Verbindung) oder signifikant (beispielsweise das Schaffen/Schließen einer
Mehrfachsendungsverbindung mit garantiertem Durchfluss). Folglich wird
vorausgesetzt, dass Verbindungen selten geschaffen, geschlossen
oder modifiziert werden, zusammenfallend beispielsweise mit Rekonfigurationspunkten,
wenn die Applikationsanforderungen sich ändern.
-
Kommunikation
findet bei Verbindungen statt, wobei Transaktionen verwendet werden,
bestehend aus einem Antrag und möglicherweise
aus einer Antwort. Der Antrag codiert eine Operation (beispielsweise
Lesen, Schreiben, Leeren, Testen und Einstellen, Nulloperation)
und trägt
möglicherweise ausgehende
Daten (beispielsweise für
Schreibbefehle). Die Antwort sendet Daten zurück, und zwar als Ergebnis eines
Befehls (beispielsweise Lesen) und/oder einer Bestätigung.
Verbindungen betreffenden wenigstens zwei NIPs. Transaktionen bei
einer Verbindung werden immer bei einem und nur einem der NIPs gestartet,
der als der aktive NIP (ANIP) der Verbindung bezeichnet wird. Alle
anderen NIPs der Verbindung werden als passive NIPs (PNIP) bezeichnet.
-
Es
können
viele Transaktionen gleichzeitig bei einer Verbindung aktiv sein,
aber mehr im Allgemeinen als für
geteilte Busse. Das heißt,
Transaktionen können
bei dem ANIP einer Verbindung gestartet werden, während Antworten
für frühere Transaktionen
noch laufen. Wenn eine Verbindung mehrere Sklaven hat, können mehrere
Transaktionen zu verschiedenen Sklaven hin ausgelöst werden.
Transaktionen werden auch über
Leitungen zwischen einem einzigen Master-Sklavenpaar für Anträge und Antworten
geleitet. Im Grunde können
Transaktionen auch innerhalb eines Sklaven über Leitung geleitet werden,
wenn der Sklave dies erlaubt.
-
Eine
Transaktion kann aus den nachfolgenden Nachrichten zusammengesetzt
werden:
- – einer
Befehlsnachricht (CMD) wird von dem ANIP gesendet und beschreibt
die bei dem mit dem PNIP verbundenen Sklaven durchzuführende Aktion.
Beispiele von Befehlen sind Lesen, Schreiben, Testen und Einstellen
sowie Leeren. Befehle sind die einzigen Nachrichten, die in der Transaktion
obligatorisch sind. Für
NIPs, die nur einen einzigen Befehl ohne Parameter erlauben (beispielsweise
adressloses Schreiben fester Größe), wird
vorausgesetzt, dass die Befehlsnachricht dennoch besteht, sogar
wenn diese implizit ist (d. h. nicht explizit von dem IP gesendet).
- – eine
Außerdatennachricht
(OUTDATA) wird von dem ANIP gesendet, und zwar nach einem Befehl,
der erfordert, dass Daten durchgeführt werden (beispielsweise
Schreiben, Multicast, und Testen und Einstellen).
- – eine
Datenzurücksendenachricht
(RETDATA) wird von einem PNIP als eine Folge einer Transaktionsdurchführung gesendet,
die Daten erzeugt (beispielsweise Lesen und Testen und Einstellen).
- – eine
Vollendungsbestätigungsnachricht
(RETSTAT) ist eine fakultative Nachricht, die von PNIP zurückgesendet
wird, wenn ein Befehl durchgeführt
worden ist. Diese kann entweder eine erfolgreiche Beendigung oder
einen Fehler signalisieren. Für
Transaktionen mit RETDATA und RETSTAT können der Effizienz wegen die
zwei Nachrichten zu einer einzigen Nachricht kombiniert werden.
In Konzept aber bestehen sie beide: RETSTAT zum Signalisieren des
Vorhandenseins von Daten oder eines Fehlers, und RETDATA zum Tragen
von Daten. In busrelatierten Schnittstellen bestehen RETDATA und
RETSTAT als zwei einzelne Signale.
-
Nachrichten,
die eine Transaktion zusammensetzen, werden in ausgehende Nachrichten,
und zwar CMD und OUTDATA, und Antwortnachrichten, und zwar RETDATA,
RETSTAT aufgeteilt. Innerhalb einer Transaktion geht CMD vor allen
anderen nachrichten, und RETDATA geht vor RETSTAT, falls vorhanden.
Diese Regeln gelten beide zwischen Master und ANIP, und PNIP und
Sklave.
-
Verbindungen
lassen sich wie folgt klassifizieren:
- – Eine einfache
Verbindung ist eine Verbindung zwischen einem einzigen ANIP und
einem einzigen PNIP.
- – Eine
Narrowcast-Verbindung ist eine Verbindung zwischen einem einzigen
ANIP und einem oder mehreren PNIPs, wobei jede Transaktion, die
der ANIP auslöst,
von genau einem einzigen PNIP durchgeführt wird. Ein Beispiel einer
Narrowcast-Verbindung ist eine Verbindung, wobei der ANIP Transaktionen
an einem Adressenraum durchführt,
der auf zwei Speichermodulen abgebildet ist. Je nach der Transaktionsadresse
wird eine Transaktion an nur einem dieser zwei Speicher durchgeführt.
- – eine
Multicast-Verbindung ist eine Verbindung zwischen einem einzigen
ANIP und einem oder mehreren PNIPs, wobei die gesendeten Nachrichten
dupliziert werden und jeder PNIP eine Kopie dieser Nachrichten empfängt. In
einer Multicast-Verbindung sind zur Zeit keine Antwortnachrichten
erlaubt, und zwar wegen des großen
Verkehrsangebot derselben (d. h. eine einzige Antwort je Ziel).
Es könnte
auch die Komplexität
in dem ANIP steigern, weil einzelne Antworten von PNIPs zu einer
einzigen Antwort für
den ANIP zusammengefügt werden
müssen.
Dies erfordert Pufferraum und/oder zusätzlichen Rechenaufwand für das Zusammenfügen an sich.
-
Verbindungseigenschaften,
die für
eine Verbindung konfiguriert werden können, sind wie folgt:
garantierte
Nachrichtenintegrität,
garantierte Transaktionsvollendung, mehrere Transaktionsaufträge, garantierter
Durchfluss, begrenzte Latenz und begrenzter Jitter, und Verbindungsflusssteuerung.
-
Datenintegrität bedeutet,
dass der Inhalt von Nachrichten während des Transportes nicht
geändert wird
(aus Versehen oder nicht). Es wird vorausgesetzt, dass Datenintegrität bereits
in einer niedrigeren Schicht in unserem Netzwerk gelöst wird,
und zwar in der Kopplungsschicht, weil in den heutigen On-Chip-Technologien
Daten ungestört über Kopplungen
transportiert werden können.
Folglich garantiert unsere Netzwerkschnittstelle immer, das Nachrichten
ungestört
am Ziel abgeliefert werden.
-
Eine
Transaktion ohne Antwort (beispielsweise ein gesandtes Schreiben)
wird als komplett betrachtet, wenn sie von dem Sklaven durchgeführt worden
ist. Da es keine Antwortnachricht zu dem Master gibt, kann keine
Garantie in Bezug auf Transaktionsvollendung gegeben werden.
-
Eine
Transaktion mit einer Antwort (beispielsweise ein Bestätigungsschreiben)
wird als komplett betrachtet, wenn eine RETSTAT Nachricht von dem
ANIP empfangen wird. Man soll sich in Erinnerung rufen, dass wenn
Daten als eine Antwort (RETDATA) empfangen werden, auch ein RETSTAT (möglicherweise
implizit) empfangen wird um die Daten zu bewerten. Die Transaktion
kann entweder erfolgreich durchgeführt werden, wobei in diesem
Fall ein Erfolgs RETSTAT zurückgesendet
wird, missglücken
in der Durchführung
bei dem Sklaven, und dann wird ein Durchführungsfehler RETSTAT zurückgesendet,
oder missglücken,
wegen Pufferüberfluss
in einer Verbindung ohne Flusssteuerung, und dann wird ein Überflussfehler
mitgeteilt. Wir setzen voraus, dass wenn ein Sklave einen CMD akzeptiert,
worin eine Antwort beantragt wird, der Sklave immer die Antwort
erzeugt.
-
In
dem Netzwerk lassen Router keine Daten fallen, deswegen werden Nachrichten
immer garantiert bei dem NI geliefert. Für Verbindungen mit Flusssteuerung
lassen auch NIs keine Daten fallen. Auf diese Weise wird Nachrichtenlieferung
und folglich Transaktionsvollendung zu den IPs in diesem Fall automatisch
gewährleistet.
-
Wenn
es aber keine Flusssteuerung gibt, können im falle von Pufferüberfluss
Nachrichten bei der Netzwerkschnittstelle fallen gelassen werden. Alle
CMD, OUTDATA und RETDATA können
bei dem NI fallen gelassen werden. Um eine Transaktionsvollendung
zu gewährleisten
darf RETSTAT nicht fallen gelassen werden. Folglich soll in den
ANIPs genügend
Pufferraum vorgesehen sein um RETSTAT Nachrichten für alle ausfallenden
Transaktionen unterzubringen. Dies wird durch Begrenzung der Anzahl
ausfallender Transaktionen erzwungen.
-
Nun
werden die Auftragsanforderungen zwischen verschiedenen Transaktionen
innerhalb einer einzigen Verbindung beschrieben. Über verschiedene
Verbindungen ist keine Auftragserteilung in der Transportschicht
definiert.
-
Es
gibt verschiedene Punkte in einer Verbindung, an denen der Auftrag
von Transaktionen beobachtet werden kann:
- (a)
der Auftrag, wobei das Mastermodul M, I dem ANIP CMD Nachrichten
präsentiert,
- (b) der Auftrag, wobei die CMDs von dem PNIP dem Sklavenmodul
T, S geliefert werden,
- (c) der Auftrag, wobei das Sklavenmodul T, S dem PNIP die Antworten
präsentiert,
und
- (d) der Auftrag, wobei die Antworten von dem ANIP dem Master
geliefert werden.
-
Es
sei bemerkt, dass nicht alle von (b), (c) und (d) immer vorhanden
sind. Weiterhin gibt es keine Voraussetzungen über die Reihenfolge, in der
die Sklaven Transaktionen durchführen;
nur die Reihenfolge der Antworten kann beobachtet werden. Die Reihenfolge
der Transaktionsdurchführung
durch die Sklaven wird als eine Systementscheidung betrachtet, und
wird nicht als Teil des Verbindungsprotokoll betrachtet.
-
Bei
ANIP und PNIP dürfen
ausgehende Nachrichten, die zu verschiedenen Transaktionen bei derselben
Verbindung gehören,
verschachtelt werden. So können
beispielsweise zwei Schreibbefehle ausgegeben werden, und nur nachher
ihre Daten. Wenn die Reihenfolge von AUTDATA Nachrichten von der
Reihenfolge von CMD Nachrichten abweicht, müssen Transaktionsidentifizierer
eingeführt
werden um OUTDATA mit ihren entsprechenden CMD zu assoziieren.
-
Ausgehende
Nachrichten können
von PNIPs zu den Sklaven geliefert werden (siehe b), und zwar wie
folgt:
- – ungeordnet,
was voraussetzt, dass es keine Reihenfolge bei der Lieferung der
ausgehenden Nachrichten verschiedener Transaktionen bei den PNIPs
gibt.
- – örtlich geordnet,
wobei Transaktionen zu jedem PNIP in der Reihenfolge geliefert werden müssen, in
der sie gesendet wurden (a), aber es wird keine Reihenfolge über PNIPs
auferlegt. Eine örtlich
geordnete Lieferung der ausgehenden Nachrichten kann entweder durch
einen geordneten Datentransport oder durch Neuordnung ausgehender Nachrichten
bei dem PNP geschaffen erden.
- – global
geordnet, wobei Transaktionen in der Reihenfolge geliefert werden
müssen,
in der sie gesendet wurden, über
alle PNIPs der Verbindung. Eine global geordnete Lieferung des ausgehenden
Teils der Transaktionen erfordert einen kostspieligen Synchronisationsmechanismus.
-
Transaktionsantwortnachrichten
können
als geordnet von den Sklaven zu den PNIPs (c) geliefert werden,
wenn RETDATA und RETSTAT Nachrichten in derselben Reihenfolge zurückgesendet
werden. Wie die CMDs zu den Sklaven (b) geliefert wurden, oder sonst
als ungeordnet. Wenn Antworten ungeordnet sind soll es einen Mechanismus
geben um die Transaktion zu identifizieren, zu der eine Antwort
gehört.
Dies geschieht meistens unter Verwendung von Etiketten, angehängt an Nachrichten
zur Transaktionsidentifikation (entsprechend Etiketten in VCI).
-
Antwortnachrichten
können
von dem ANIP zu dem Master geliefert werden (siehe d), und zwar wie
folgt:
- – ungeordnet,
wobei der Lieferung von Antworten keine Reihenfolge auferlegt wird.
Hier müssen auch
Etikette verwendet werden um Antworten mit ihren entsprechenden
CMDs zu assoziieren.
- – örtlich geordnet,
wobei RETDATA und RETSTAT Transaktionsnachrichten für einen
einzigen Sklaven in der Reihenfolge geliefert werden, in der die
ursprünglichen
CMDs von dem Master dem ANIP präsentiert
wurden. Es sei bemerkt, dass für
Transaktionen verschiedener Sklaven innerhalb derselben Verbindung
keine Reihenfolge auferlegt wird.
- – global
geordnet, wobei alle Antworten in einer Verbindung in derselben
Reihenfolge wie die ursprünglichen
CMDs dem Master geliefert werden. Wenn Transaktionen über Leitung
in einer Verbindung geleitet werden, erfordert eine global geordnete
Lieferung von Antworten eine Neuordnung bei dem ANIP.
-
Alle
3 × 2 × 3 = 18
Kombinationen zwischen den oben genannten Ordnungen sind möglich. Außerhalb
derselben definieren und bieten wir Folgendes. Eine nicht geordnete
Verbindung ist eine Verbindung, wobei keine Ordnung in einem Teil
der Transaktionen vorausgesetzt wird. Dadurch müssen die Antworten mit einem
Etikett versehen werden, damit man imstande ist, zu identifizieren,
zu welcher Transaktion sie gehören.
Das Implementieren ungeordneter Verbindungen ist preisgünstig, aber
sie können schwerer
zu verwenden sein und die Kosten der Etikettierung mit sich bringen.
-
Eine
geordnete Verbindung wird definiert als eine Verbindung mit örtlicher
Ordnung für
die ausgehenden Nachrichten von PNIPs zu Sklaven, mit geordneten
Antworten bei den PNIPS, und mit globaler Ordnung für Antworten
bei dem ANIP. Wir wählen eine örtliche
Ordnung für
den ausgehenden Teil, weil die globale Ordnung zu teuer ist und
wenig benutzt wird. Die Ordnung der Antworten wird derart selektiert,
dass ein einfaches Programmierungsmodell ohne Etikettierung möglich ist.
Globale Ordnung bei dem ANIP ist zu mäßigen Kosten möglich, weil
die gesamte Neuordnung örtlich
in dem ANIP erfolgt. Ein Benutzer kann Verbindungen mit globaler
Ordnung ausgehender und Antwortnachrichten bei den PNIPs nachahmen,
und zwar unter Anwendung nicht über Leitung
geleiteter Bestätigungstransaktionen,
auf Kosten hoher Latenz.
-
In
dem Netzwerk kann Durchfluss für
Verbindungen in Zeitmultiplexzugriffsweise (TDMA) reserviert werden,
wobei Bandbreite in Schlitze fester Größe in einem festen Zeitrahmen
aufgeteilt wird. Bandbreite sowie Begrenzungen der Latenz und Jitter
können
garantiert werden, wenn Schlitze reserviert werden. Sie werden alle
in Vielfachen der Schlitze definiert.
-
Wie
oben bereits erwähnt,
gewährleistet
das Netzwerk, dass Nachrichten dem NI geliefert werden. Nachrichten,
die von einem der NIPs gesendet werden, sind bei dem anderen NIP
nicht unmittelbar sichtbar, und zwar wegen der Vielsprungart von
Netzwerken. Folglich würden
Handshakes über
ein Netzwerk ermöglichen,
dass jeweils nur eine einzige Nachricht übertragen wird. Dies begrenzt
den Durchfluss bei einer Verbindung und fügt Transaktionen Latenz zu.
Um dieses Problem zu lösen
und um eine bessere Netzwerkbenutzung zu erreichen, muss die Nachricht über Leitung
geleitet werden. In diesem Fall muss, wenn die Daten bei dem PNIP
nicht mit derselben Rate, mit der sie eintreffen, verbraucht werden,
entweder Flusssteuerung eingeführt
werden um den Erzeugen zu verlangsamen, oder Daten können verloren
gehen, und zwar wegen eines begrenzten Pufferraums bei dem Konsumenten
NI.
-
Ende-zu-Ende-Flusssteuerung
kann auf dem Pegel von Verbindungen eingeführt werden, was erfordert,
dass Pufferraum mit Verbindungen assoziiert wird. Ende-zu-Ende-Flusssteuerung
gewährleistet,
dass Nachrichten über
das Netzwerk nur dann gesendet werden, wenn es genügend Raum
in dem Zielpuffer des NIPs gibt um sie unterzubringen.
-
Ende-zu-Ende-Fluss
ist fakultativ (d. h. beantragt, wenn Verbindungen geöffnet werden)
und kann unabhängig
für die
ausgehenden und Rückkehrstrecken
konfiguriert werden. Wenn keine Flusssteuerung vorgesehen wird,
werden Nachrichten fallen gelassen, wenn Puffer überfließen. Es gibt viele Möglichkeiten,
Nachrichten fallen zu lassen, wie bei Off-Chip Netzwerken. Mögliche Szenarien
umfassen:
- (a) die älteste Nachricht wird fallen
gelassen (Milch-Methode), oder
- (b) die jüngste
Nachricht wird fallen gelassen (Wein-Methode).
-
Ein
Beispiel für
Flusssteuerung ist eine Kreditbasierte Flusssteuerung. Kredite werden
mit dem leeren Pufferraum beim Empfänger NI assoziiert. Das Kredit
des Absenders wird verringert, je nachdem Daten gesendet werden.
Wenn der PNIP dem Sklaven Daten liefert, werden dem Absender Kredite gewährt. Wenn
das Kredit des Absenders nicht ausreicht um einige Daten zu senden,
verzögert
der NI beim Absender die Sendung.
-
Um
das Bedürfnis
nach differenzierten Diensten bei Verbindungen zu illustrieren,
werden nachstehend einige Verkehrsbeispiele beschrieben. Videoverarbeitungsströme erfordern
typischerweise einen verlustfreien intakten Videostrom mit garantiertem
Durchfluss, sie erlauben aber gestörte Abtastwerte. Eine Verbindung
für einen
derartigen Strom würde
den notwendigen Durchfluss, geordnete Transaktionen und eine Flusssteuerung
erfordern. Wenn der Videostrom von dem Master erzeugt wird, sind
nur Schreibtransaktionen notwendig. In einem derartigen Fall gibt
es bei einer flussgesteuerten Verbindung kein Bedürfnis danach,
auch eine Transaktionsbeendigung zu erfordern, weil Nachrichten
niemals fallen gelassen werden, und der Schreibbefehl und die Daten
werden immer am Ziel geliefert. Datenintegrität wird von unserem Netzwerk
immer geschaffen, selbst wenn es in diesem Fall nicht notwendig
ist.
-
Ein
anderes Beispiel ist das von Cacheaktualisierungen, die eine nicht
gestörte,
verlustfreie Datenübertragung
mit geringer Latenz erfordern, aber Ordnung und garantierter Durchfluss
sind weniger wichtig. In einem derartigen Fall würde eine Verbindung keine zeitrelatierten
Garantien erfordern, weil eine geringe Latenz, sogar wenn bevorzugt,
nicht kritisch ist. Eine geringe Latenz kann erhalten werden, sogar
mit einer bestmöglichen
Verbindung. Die Verbindung würde
ebenfalls eine Flusssteuerung und eine garantierte Transaktionsbeendigung
erfordern um verlustfreie Transaktionen zu gewährleisten. Es ist aber keine
Ordnung notwendig, weil dies für
Cacheaktualisierungen nicht wichtig ist und das Erlauben einer außer Ordnung
Transaktion kann die Reaktionszeit reduzieren.
-
Ein
Satz von NoC Diensten wird definiert, die Einzelheiten aus dem Netzwerk
abstrahieren. Die Anwendung dieser Dienste in IP Entwurf entkoppelt Rechnen
von Kommunikation. Es wird ein Antrag-Antworttransaktionsmodell
verwendet um nahe bei bestehenden On-Chip-Verbindungsprotokollen zu
sein. Dies erleichtert die Migration von aktuellen IPs zu NoCs.
Um die NoC Fähigkeiten,
wie hohe Bandbreite und Transaktionsgleichzeitigkeit, völlig zu benutzen
wird verbindungsorientierte Kommunikation geschaffen. Verbindungen
können
unabhängig mit
verschiedenen Eigenschaften konfiguriert werden. Diese Eigenschaften
umfassen Transaktionsbeendigung, mehrere Transaktionsordnungen,
untere Bandbreitenbegrenzungen, obere Latenz- und Jitterbegrenzungen,
und Flusssteuerung.
-
Das
Schaffen derartiger Netzwerk On Chip NoC Dienste ist ein Erfordernis
für einen
dienstbasierten Systementwurf, der Applikationen unabhängig von
NoC Implementierungen macht, Entwürfe robuster macht und architekturunabhängige Dienstqualitätsstrategien
ermöglicht.
-
In
anderen Situationen können
verschiedene Typen Flusssteuerung sein (beispielsweise man will niemals
Schreibbefehle verlieren, aber das Verlieren von Lesedaten ist nicht
schlimm). Wenn ein Modul Lese- und Schreibbefehle durchführen kann,
kann es wichtig sein, dass Schreibtransaktionen einander immer folgen
(beispielsweise wenn ein Unterbrechungscontroller angeschrieben
wird), aber diese Lesetransaktionen sind nicht kritisch, weil sie
neu versucht werden können
(folglich wird der CMD der Lesetransaktion fallen gelassen und das
Lesen niemals durchgeführt,
oder die RETDATA werden fallen gelassen nachdem das Lesen durchgeführt worden
ist oder die RETDATA werden fallen gelassen, nachdem das Lesen durchgeführt worden
ist. Ein anderes Beispiel ist, dass wenn man weiß, dass Schreibvorgänge einander
immer folgen, wenn sie geliefert werden, wird eine flussgesteuerte
Verbindung beantragt. Bestätigungen
sind in diesem Fall nicht notwendig. Ohne Flusssteuerung sind Bestätigungen
obligatorisch, was den Master kompliziert macht und zusätzlichen
Verkehr verursacht.
-
In
der integrierten Schaltung nach der vorliegenden Erfindung wird
die Entscheidung, Nachrichten ggf. fallen zu lassen, nicht je Transaktion
sondern für
den ausgehenden und zurückkehrenden
Teil der Verbindung als Ganzes entschieden. So können beispielsweise alle ausgehenden
Nachrichten mit dem Format Lesen + Adresse oder Schreiben + Adresse +
Daten) garantiert verlustfrei sein, während für alle Rückkehrnachrichten (on Lesedaten,
Schreibbestätigungen)
Pakete fallen gelassen werden können.
-
Eine
Verbindung könnte
wie folgt geöffnet werden:
connid
= open (
nofc/fc,
outgoing unordered/local/global,
outgoing
buffer size,
return unordered/local/global,
return buffer
size);
d. h. alle ausgehenden Nachrichten haben bestimmte Eigenschaften,
und alle zurückkehrenden
Nachrichten haben bestimmte Eigenschaften, wobei fc Flusssteuerung
und nofc keine Flusssteuerung darstellt.
-
Eine
alternative Lösung
für Festfahren
in NoCs, was berücksichtigt,
dass Module, die das Netzwerk verbinden, entweder Master sind (die
Anträge
stellen und Antworten empfangen), oder Sklaven sind (die Anträge empfangen
und Antworten zurücksenden),
ist, separate virtuelle Netzwerke beizubehalten (mit einzelnen Puffern)
für Anträge und Antworten.
-
Nach
einer Ausführungsform
der vorliegenden Erfindung beantragt ein Verfahren zum Austauschen
von Nachrichten in einer integrierten Schaltung, die eine Anzahl
Module aufweist, eine Verbindung mit bestimmten Eigenschaften zwischen
zwei Modulen, entscheidet, ob die genannte beantragte Verbindung
mit den genannten Eigenschaften zwischen den genannten zwei Modulen
möglich
ist, antwortet auf die Verbindung mit verfügbaren Eigenschaften, bildet
eine Verbindung mit den genannten Eigenschaften zwischen den genannten
zwei Modulen, und erledigt Transaktionen zwischen den genannten
zwei Modulen. Außerdem
kann die verfügbare
Verbindung akzeptiert werden und die Eigenschaften der genannten
Verbindung kann rückgestellt
werden.
-
Nach
einer weiteren Ausführungsform
der vorliegenden Erfindung hat das Netzwerk eine erste Mode, in
der eine Nachricht übertragen
wird, innerhalb eines garantierten Zeitintervalls, und eine zweite Mode,
in der eine Nachricht so schnell wie möglich mit den verfügbaren Mitteln übertragen
wird, wobei die ausgehende Transaktion eine Lesenachricht ist, die
beantragt, dass das zweite Modul Daten zu dem ersten Modul sendet,
wobei die Rücksendetransaktion
die Daten sind, die anlässlich
dieses Antrags von dem zweiten Modul erzeugt wurden, und wobei die ausgehende
Transaktion entsprechend der zweiten Mode übertragen wird, und die Rücksendetransaktion
entsprechend der ersten Mode übertragen
wird. Für
eine bestätigte
Schreibtransaktion benutzen der Schreibbefehl und die ausgehenden
Daten für
den Master einen garantierten Durchfluss und eine Bestätigung von
den Sklaven benutzt den besten Versuch. Ausgenommen für zeitrelatierte
Garantien gibt es auch ein Unterschied bei der Pufferung in den oben
genannten Beispielen. Für
Datennachrichten wird möglicherweise
mehr Pufferraum zugeordnet als für
Befehle und Bestätigungen.
Folglich wären
Lesetransaktionspuffer für
den Rückführungsteil
größer als
die für
den ausgehenden Teil. Für
bestätigte Schreibpuffer
sind der ausgehende Teil größer und die
für Bestätigungen
sind kleiner.
-
Nach
einer weiteren Ausführungsform
ist es möglich,
verschiedene Bandbreiten für
verschiedene Kanäle
zuzuordnen. Es gibt aber auch Begrenzungen. Es wird eine Schlitztabelle
verwendet, die eine Anzahl Schlitze in einem Zeitfenster enthält. Es wird Bandbreite
reserviert, wobei diese Schlitze Verbindungen zugeordnet werden.
Wenn beispielsweise eine Tabelle mit 100 Schlitzen für einen
Zeitrahmen von 1 μs
verwendet wird, wird jedem Schlitz 1/100 von einer μs = 10 Nebenstation
zugeordnet. Wenn das Netzwerk 1 Gb/s je Kopplung schafft, wird die Bandbreite
je Schlitz 1/100 von 1 Gbs = 10 Mb/s sein. Deswegen können nur
Vielfache von 10 Mb/s für
garantierten Durchflussverkehr zugeordnet werden. Für einen
Lesebefehl, der lange Bursts erzeugt, würde die Zuordnung der minimalen
Bandbreite von 10 Mb/s wahrscheinlich zu viel sein, da dieser nur
einen kleinen Bruchteil davon verwenden wird. Die Bandbreite kann
tatsächlich
von Verkehr mit bestem Versuch verwendet werden, aber nicht von
anderem garantiertem Durchflussverkehr. Dadurch kann nicht der ganze
Verkehr, für
den Garantien erforderlich sind, in die Schlitztabelle passen. Eine
Alternative ist, mehr Schlitze zu verwenden, aber dies steigert
die Kosten des Routers. Auf entsprechende Art und Weise kann ein
bestmöglicher
Befehl eine bessere Lösung
sein.
-
Nach
wieder einer anderen Ausführungsform der
vorliegenden Erfindung wird eine Verbindung zwischen einem Master
und zwei Sklaven geschaffen, wobei verschiedene Eigenschaften verschiedenen
Kanälen
von dem Master zu den Sklaven zugeordnet werden. Einer dieser Sklaven
ist ein schneller Speicher und der andere ist ein langsamer Speicher. Ein
größerer Durchfluss
dem Kanal zugeordnet, der den Master und den schnellen Speicher
verbindet.
-
Wie
oben beschrieben, NoCs haben verschiedene Eigenschaften von bestehenden
Off-Chip Netzwerken und bestehenden On-Chip-Verbindungen. Dadurch
können
bestehende Protokolle und Dienstschnittstellen nicht direkt für NoCs angewandt werden,
sondern müssen
die Charakteristiken von NoCs berücksichtigen. So setzt beispielsweise
ein Protokoll, wie TCP/IP voraus, dass das Netzwerk verlustbehaftet
ist, und schließt
eine signifikante Komplexität
ein um eine zuverlässige
Kommunikation zu schaffen. Deswegen ist es nicht in einem NoC nicht geeignet,
wobei vorausgesetzt wird, dass Datenübertragungszuverlässigkeit
bereits auf einem niedrigeren Pegel gelöst wird. Andererseits sind
bestehende On-Chip Protokolle, wie VCI, OCP, AMBA, oder CoreConnect
auch nicht unmittelbar anwendbar. So wird beispielsweise ein geordneter
Transport von Daten vorausgesetzt: wenn zwei Anträge von demselben
Master ausgelöst
werden, werden sie in derselben Reihenfolge am Ziel eintreffen.
Dies gilt nicht automatisch für
NoCs. Ketten von Transaktionen und Ende-zu-Ende-Flusssteuerung erfordern
auch spezielle Aufmerksamkeit in der NoC Schnittstelle.
-
Die
Ziele beim Definieren von Netzwerkdiensten sind wie folgt. Erstens
sollen die Dienste möglichst
aus den Netzwerkeinbauten abstrahiert werden. Dies ist ein Schlüsselbestandteil
beim Ausführen
der Herausforderung der Entkopplung von Rechnen und Kommunikation,
was ermöglicht,
dass IPs (der Rechenteil) und die Verbindung (der Kommunikationsteil)
unabhängig
von einander entworfen werden. Dadurch befinden sich die Dienste
in der Transportschicht in dem OSI Bezugsmodell, welche die erste
Schicht ist, die unabhängig
von der Implementierung des Netzwerkes ist. Zweitens soll eine NoC
Schnittstelle möglichst
nahe bei einer Busschnittstelle liegen. NoCs können dann nicht zerstörend eingeführt werden
mit kleinen Änderungen,
bestehenden IPs, Methodologien und Werkzeugen können verwendet werden. Dadurch
wird eine Antrag-Antwort Schnittstelle verwendet, entsprechend Schnittstellen
für geteilte
Busse. Drittens verlängert die
Schnittstelle herkömmliche
Busschnittstellen um die Leistung von NoCs völlig zu benutzen. Beispielsweise
verbindungsbasierte Kommunikation, die nicht nur Ordnungsbegrenzungen
lockert (wie für
Busse), sondern auch neue Kommunikationseigenschaften ermöglicht,
wie Ende-zu-Ende Flusssteuerung auf Basis von Krediten, oder eines
garantierten Durchflusses. All diese Eigenschaften können für jede Verbindung
einzeln eingestellt werden.