-
BEREICH DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf eine integrierte Schaltung
mit einer Anzahl Verarbeitungsmodule, vorgesehen zum Übertragen
von Nachrichten zwischen Verarbeitungsmodulen und auf ein Verfahren
zum Austauschen von Nachrichten in einer derartigen integrierten
Schaltung.
-
HINTERGRUND DER ERFINDUNG
-
Systeme
auf Silizium zeigen eine immer ansteigende Komplexität, und zwar
wegen des immer wachsenden Bedürfnisses
nach Implementierung neuer Merkmale und Verbesserungen bestehender Funktionen.
Dies wird durch die immer ansteigende Dichte ermöglicht, mit der Schaltungselemente
auf einer integrierten Schaltung integriert werden können. Gleichzeitig
neigt die Taktgeschwindigkeit, mit der Schaltungsanordnungen betrieben
werden, dazu, auch zuzunehmen. Die höhere Taktgeschwindigkeit in
Kombination mit der zugenommenen Elementdichte hat das Gebiet reduziert,
das innerhalb derselben Taktdomäne
synchron arbeiten. Dies hat den Bedarf nach 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. Da aber die Anzahl Module zunimmt, ist diese Art
von Kommunikation nicht länger
praktisch, und zwar aus den nachfolgenden Gründen. Einerseits bildet die
Vielzahl Module eine zu große
Busbelastung. Andererseits bildet der Bus einen Kommunikationsengpass,
da er nur die Möglichkeit
bietet, dass nur eine einzige Anordnung dem Bus Daten zusendet.
Ein Kommunikationsnetzwerk bildet eine effektive Möglichkeit
diese Nachteile zu überwinden.
-
Netzwerke
auf Chips (NoC) sind in letzter Zeit interessanter geworden, und
zwar als Lösung des
Verbindungsproblems in äußerst komplexen Chips.
Der Grund ist zweifach. Erstens helfen NoC die elektrischen Probleme
in neunen Tiefsubmikrontechnologien zu lösen, da sie globale Verdrahtungen strukturieren
und verwalten. Gleichzeitig teilen sie sich Verdrahtungen, verringern
deren Anzahl und steigern die Nutzbarkeit. NoC können auch energieeffizient
und zuverlässig
sein und sind im Vergleich zu Bissen skalierbar. Zweitens entkoppeln
NoC auch die Berechnung von der Kommunikation, was beim verwalten
des Entwurfs von Chips mit unzähligen Transistoren.
NoC erreichen diese Entkopplung, weil sie herkömmlicherweise unter Anwendung
von Protokollstapeln entworfen wurden, die gut definierte Schnittstellen
schaffen, die Gebrauch von Kommunikationsdienst von Dienstimplementierung
trennen.
-
Technische
Literatur über
Netzwerk auf Chiptechnologie gibt es in den Artikeln: "A Generic Architecture
for On Chip Packet-Switsched Interconnection" von P. Guersier (2000) und "A Network an Chip
Architecture and Design Methodology" von S. Kumar (2002).
-
Die
Verwendung von Netzwerken für On-Chip
Kommunikation beim Entwerfen von Systemen an Cip (SoC), bringt aber
eine Anzahl neuer Aspekte mit sich, die berücksichtigt werden sollen. Dies ist
weil im Gegensatz zu bestehenden On-Chip-Verbindungen (beispielsweise
Bussen, Schaltern, oder Punkt-zu-Punktverdrahtung), wobei die Kommunikationsmodule
unmittelbar verbunden sind, in einem NoC die Module über Netzwerkknoten
entfernt kommunizieren. Dadurch ändert
sich die Verbindungsentscheidung von zentralisiert in verteilt,
und Aspekte wie Außerbetriebtransaktionen,
höhere
Latenz und Ende-zu-Ende-Flusssteuerung müssen entweder von dem IP-Block
("intellectual property") oder von dem Netzwerk
abgewickelt werden.
-
Die
meisten dieser Elemente sind bereits Gegenstand der Forschung gewesen
in dem Bereich von örtlichen
und Großbereichnetzwerken
(Computernetzwerken) und als Verbindung für parallele Maschinenverbindungsnetzwerken.
Siehe dazu beispielsweise die Beschreibung von
EP 1 083 768 A , wobei ein
Verfahren beschrieben wird für
Datenübertragung
in einem Kommunikationssystem unter Anwendung von IP, eines Gateways,
eines Puffers und anderer spezialisierten Anordnungen. Beide beziehen
sich auf On-Chip-Netzwerke
und viele der Ergebnisse in diesen Bereichen sind auch auf Chip
anwendbar. NoC Konfigurationen sind anders als Off-Chip-Netzwerke,
und deswegen müssen
die meisten Netzwerkentwurfswahlen neu bewertet werden. On-Chip-Netzwerke
haben andere Eigenschaften (beispielsweise eine kräftigere
Koppelsynchronisation) und Beschränkungen (beispielsweise höhere Speicherkosten),
die zu anderen Entwurfswahlen führen,
welche die Netzwerkdienste schlussendlich beeinflussen. Speicher-
und Rechenmittel sind relativ teurer, während die Anzahl Punkt-zu-Punktkopplungen
bei On-Chip größer ist
als bei Off-Chip.
Speicherung ist teuer, weil Allzweck-On-Chip-Speicher, wie RAM,
eine große
Fläche
beanspruchen. Die Aufteilung des Speichers über die Netzwerkelemente in
relativ klei nen Einheiten ist noch schlimmer, da die Gesamtfläche in dem
Speicher dann überherrschend wird.
-
Für On-Chip-Netzwerke
wird die Berechnung auch relativ teuer, dies im vergleich mit Off-Chip-Netzwerken.
Eine Off-Chip-Netzwerkschnittstelle enthält meistens einen speziellen
Prozessor zum Implementieren des Protokollstapels bis zur Netzwerkschicht
oder noch höher,
damit der Gastgeberprozessor von der Kommunikationsverarbeitung
befreit wird. Das Einschließen
eines speziellen Prozessors in eine Netzwerkschnittstelle ist "on Chip" nicht durchführbar, da
die Größe der Netzwerkschnittstelle
mit dem mit dem Netzwerk zu verbindenden IP vergleichbar oder sogar
größer wird.
Weiterhin ist das Laufen des Protokollstapels in dem IP selber auch
nicht durchführbar,
weil oft diese IP nur eine einzige spezielle Funktion haben, und
nicht die Fähigkeiten
besitzen, einen Netzwerkprotokollstapel laufen zu lassen.
-
Die
Anzahl Drähte
und Stifte zum verbinden von Netzwerkelementen ist um eine Größenordnung größer an Chip
als off Chip. Wenn sie nicht massiv für andere Zwecke als NoC Kommunikation
verwendet werden, ermöglichen
sie breite Punkt-zu-Punkt Verbindungen (beispielsweise 300-Bit Kopplungen). Dies
ist off Chip nicht möglich,
wobei Kopplungen relativ enger sind: 8–16 Bits.
-
On
Chip Drähte
sind relativ kürzer
als off Chip, was eine viel festere Synchronisation ermöglicht als
off Chip. Dies ermöglicht
eine Reduktion in dem Pufferraum in den Routern, weil die Kommunikation
auf einer kleineren Granularität
erfolgen kann. In den heutigen Halbleitertechnologien sind Drähte auch
schnell und zuverlässig,
was einfachere Koppelschichtprotokolle ermöglicht (beispielsweise Fehlerkorrektur
oder Neuübertragung überflüssig). Dies kompensiert
auch den Mangel an Speicherraum und rechnerischen Mitteln.
-
Datenbestellung:
In einem Netzwerk können Daten,
die von einer Quelle zu einem Ziel gesendet werden gestört eintreffen,
und zwar wegen einer Neuordnung in Netzwerkknoten, wobei verschiedene Routen
befolgt werden, oder Neuübertragung
nach Auswerfung. Für
off Chip Netzwerke ist eine gestörte Datenlieferung
typisch. Für
NoC, wobei keine Daten ausfallen, können Daten forciert werden,
zwischen einer Quelle und einem Ziel (deterministisches Routing)
ohne Neuordnung derselben Strecke zu folgen. Dieser Datentransport
in Reihenfolge erfordert weniger Pufferraum, und Aufzeichnungsmodule
sind nicht länger
erforderlich.
-
Das
Einführen
von Netzwerken als an Chip Verbindungen ändert radikal die Kommunikation, wenn
dies mit direkten Verbindungen, wie Bussen oder Schaltern, verglichen
wird. Dies ist wegen der Mehrfach-Sprungart eines Netzwerkes, wobei
Kommunikationsmodule nicht direkt verbunden sind, sondern durch
einen oder mehrere Netzwerkknoten getrennt. Dies ist im Gegensatz
zu den vorherrschenden bestehenden Verbindungen (d. h. Bussen),
wobei Module direkt verbundne sind. Die Implikationen dieser Änderung
liegen in der Entscheidung (die von zentral in verteilt sich andern
muss) und in den Kommunikationseigenschaften (beispielsweise Reihenfolge,
oder Ablaufsteuerung).
-
Transaktionsreihenfolge:
herkömmlicherweise
werden bei einem Bus alle Transaktionen geordnet (Vergleiche: Peripheral
VCI, AMBA, oder CoreConnect PLB und OPB). Dies ist bei geringen
Kosten möglich,
weil das Internet, die eine direkte Verbindung zwischen den kommunizierenden
Partien ist, keine Daten aufzeichnet. Bei einem Spaltbus aber kann
eine totale Ordnung von Transaktionen bei einem einzigen Master
dennoch Leistungsstrafen verursachen, wenn Sklaven zu verschiedenen
Geschwindigkeiten reagieren. Um dieses Problem zu lösen ermöglichen
neue Erweiterungen zu Busprotokollen, dass Transaktionen bei Verbindungen
durchgeführt
werden. Ordnung von Transaktionen innerhalb einer Verbindung wird
dennoch beibehalten, zwischen Verbindungen aber gibt es keine Ordnungsbeschränkungen
(beispielsweise OCP, oder Basic VCI). Einige Busprotokolle ermöglichen
gestörte
Transaktionen je Verbindung in den modernen Moden (beispielsweise
Advanced VCI), aber Anträge und
Reaktionen treffen in derselben Reihenfolge, wie sie gesendet werden,
beim Ziel ein.
-
In
einem NoC wird die Reihenfolge schwächer. Eine allgemeinen Reihenfolge
kann nur zu sehr hohen Kosten geschaffen werden, und zwar wegen des
Konfliktes zwischen der verteilten Art der Netzwerke, und der Anforderung
einer zentralisierten Entscheidung, notwendig für eine globale Anordnung. Sogar
eine örtliche
Anordnung zwischen einem Quelle-Zielpaar, kann kostspielig sein.
Daten können
gestört
eintreffen, wenn diese über
viele Routen transportiert werden. In derartigen Fällen müssen Daten um
eine einwandfreie Lieferung zu erreichen, mit Folgenummern gekennzeichnet
werden und beim Ziel aufgezeichnet werden, und zwar vor der Lieferung. Das
Kommunikationsnetzwerk umfasst eine Anzahl teilweise verbundener
Knoten. Nachrichten von einem Modul werden durch die Knoten an einen
oder mehrere andere Knoten neu gerichtet. Dazu umfasst die Nachricht
erste Information für
die Stelle des adressierten Moduls innerhalb des Netzwer kes. Die Nachricht
kann weiterhin zweite Information enthalten, die indikativ ist für eine spezielle
Stelle innerhalb des Moduls, wie eine Speicher- oder Registeradresse.
Die zweite Information kann eine spezielle Reaktion des adressierten
Moduls hervorrufen.
-
Zielname
und Route: Für
einen Bus werden der Befehl, die Adresse und Daten über die
Verbindung gesendet. Sie treffen bei jedem Ziel ein, von denen eins
auf Basis der gesendeten Adresse aktiviert wird, und führt den
beantragten Befehl aus. Dies ist möglich, weil alle Module unmittelbar
mit demselben Bus verbunden sind. In einem NoC ist es nicht möglich, allen
Zielen Information zuzusenden, weil diese zu allen Routern und Netzwerkschnittstellen
kopiert werden muss. Dies überschwemmt
das Netzwerk mit Daten.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist nun u. a. eine Aufgabe der vorliegenden Erfindung, eine integrierte
Schaltung und ein Verfahren zum Austauschen von Nachrichten in der integrierten
Schaltung zu schaffen, ohne dass viele Daten in das Netzwerk eingeführt werden.
-
Diese
Aufgabe wird erfüllt
durch eine integrierte Schaltung nach Anspruch 1 und durch ein Verfahren
zum Austauschen von Nachrichten nach Anspruch 7.
-
Dazu
wird eine integrierte Schaltung mit einer Anzahl Module M, S, und
einem Netzwerk N, vorgesehen zum Übertragen von Nachrichten zwischen den
genannten Modulen M, S, geschaffen, wobei eine von einem ersten
Modul M ausgelieferte Nachricht erste Information enthält, die
für eine
Stelle eines adressierten Moduls innerhalb des Netzwerkes indikativ
ist, und zweite Information, die für eine Stelle innerhalb des
adressierten Moduls S indikativ ist. Die genannte integrierte Schaltung
umfasst wenigstens ein Adressenübersetzungsmittel
AT, zum Gliedern der ersten und der zweiten Information als eine
einzige Adresse. Das genannte Adressenübersetzungsmittel Aufzeichnungsträger ist
dazu vorgesehen, zu ermitteln, welches Modul auf Basis der genannten einzigen
Adresse adressiert ist, und die selektierte Stelle des adressierten
Moduls S wird auf Basis der genannten einzigen Adresse ermittelt.
-
Auf
entsprechende Weise kann der Entwurf der ersten Module, d. h. der
Mastermodule, unabhängig
von der Adressenabbildung auf den adressierten Modulen, d. h. den
Sklavenmodulen, implementiert werden. Weiterhin wird eine effizientere
Verwendung der Netzwerkmittel erreicht und dieses Schema ist rückwärts kompatibel
mit Bussen. Die Adressierung erfolgt durch die Adressenübersetzungsmittel.
-
Nach
einem Aspekt der vorliegenden Erfindung umfasst die genannte integrierte
Schaltung wenigstens ein Schnittstellenmittel ANIP, PNIP, assoziiert
mit einem der Module M, S zum Verwalten der Kommunikation zwischen
dem genannten assoziierten Modul M, S und dem Netzwerk N. Das genannte Adressenübersetzungsmittel
AT ist in einem der genannten Schnittstellenmittel ANIP, PNIP vorgesehen.
-
Nach
einem weiteren Aspekt der vorliegenden Erfindung ist das genannte
Adressenübersetzungsmittel
AT in dem genannten Schnittstellenmittel ANIP, PNIP vorgesehen,
das mit dem genannten ersten Modul M assoziiert ist.
-
Nach
wieder einem anderen Aspekt der vorliegenden Erfindung umfasst das
genannte Adressenübersetzungsmittel
AT eine Adressenabbildungstabelle, und zwar zum Speichern der Beziehung zwischen
der globalen und der örtlichen
Speicherabbildung.
-
Nach
einem anderen Aspekt der vorliegenden Erfindung ist die genannte
Adressenabbildungstabelle statisch, programmierbar oder dynamisch.
-
Nach
noch einem anderen Aspekt der vorliegenden Erfindung enthält die genannte
Adressenabbildungstabelle Felder für jeden Kanal einer Verbindung,
für Netzwerkschnittstellenporten
ANIP, PNIP einer Verbindung und für örtliche Adressen in adressierten
Modulen S.
-
Die
vorliegende Erfindung bezieht sich auch auf ein Verfahren zum Austauschen
von Nachrichten in einer integrierten Schaltung mit einer Anzahl
Module M, S, wobei die Nachrichten zwischen den Modulen M, S über ein
Netzwerk N, das sich in der integrierten Schaltung befindet, ausgetauscht
werden, wobei eine von einem Modul M ausgelieferte Nachricht erste
Information enthält,
die für
eine Stelle eines adressierten Moduls S innerhalb des Netzwerkes indikativ
ist, und zweite Information, die für eine Stelle innerhalb des
adressierten Moduls S indikativ ist. Adressenübersetzung AAT erfolgt durch
Anordnung der ersten Information und der zweiten Information als
eine einzige Adresse. Die genannte Adresse bestimmt, welches Modul
auf Basis der genannten einzigen Adresse adressiert wird, und die
selektierte Stelle des adressierten Moduls (S) wird auf Basis der genannten
einzigen Adresse bestimmt.
-
Der
vorliegenden Erfindung liegt der Gedankt zugrunde, die Adressierung
von Daten von einem Mastermodul zu verstecken.
-
Weitere
Aspekte der vorliegenden Erfindung sind in den Unteransprüchen beschrieben.
-
Diese
und andere Aspekte der vorliegenden Erfindung dürften aus den nachstehend beschriebenen
Ausführungsbeispielen
hervorgehen und werden anhand derselben näher erläutert.
-
KURZE BESCHREIBUNG DER ZEICHNUNG
-
1 zeigt
ein System an Chip nach einer ersten Ausführungsform der vorliegenden
Erfindung und
-
2 ein
System an Chip nach einer zweiten Ausführungsform der vorliegenden
Erfindung und
-
3 ein
System an Chip nach einer dritten Ausführungsform der vorliegenden
Erfindung.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Die
nachfolgenden Ausführungsformen
bezieht sich auf Systeme an Chip, d. h. eine Anzahl Module auf demselben
Chip kommunizieren mit einander über
eine Art von gegenseitiger Verbindung. Die Verbindung ist als Netzwerk
an Chip NOC ausgebildet. Das Netzwerk an Chip umfasst Verdrahtung, Bus,
Zeitmultiplex, Schalter und/oder Routen innerhalb eines Netzwerkes.
Auf der Transportschicht des genannten Netzwerkes erfolgt die Kommunikation zwischen
den Modulen über
Verbindungen. Eine Verbindung wird als einen Satz von Kanälen betrachtet, die
je einen Satz von Verbindungseigenschaften haben, zwischen einem
ersten Modul und wenigstens einem zweiten Modul. Für eine Verbindung
zwischen einem ersten Modul und einem einzigen zweiten Modul (d.
h. eine einfache Verbindung). Umfasst die Verbindung zwei Kanäle, und
zwar einen von dem ersten Modul zu dem zweiten Kanal, d. h. den
Beantragungskanal, und einen zweiten von dem zweiten zu dem ersten
Modul, d. h. den Antwortkanal. Der Beantragungskanal ist für Daten
und Nachrichten von dem ersten zu dem zweiten Modul reserviert,
während
der Antwortkanal für
Daten und Nachrichten von dem zweiten zu dem ersten Modul reserviert
ist. Wenn aber die Verbindung ein einziges erstes Modul und N zweite
Module betrifft, werden 2·N
Kanäle
geschaffen, damit beispielsweise eine Mehrfachverbindung geschaffen
wird. Hier liefert das erste Modul Anträge zu allen zweiten Modulen.
Die Verbindungseigenschaften können
eine Ordnung enthalten (Datentransport in Reihenfolge), Flusssteuerung
(ein Fernpuffer ist für
eine Verbindung reserviert, und ein Datenerzeuger darf Daten nur
dann senden, wenn gewährleistet
wird, dass Raum für
die erzeugten Daten verfügbar
ist), Durchfluss (eine untere Begrenzung des Durchflusses ist gewährleistet),
Latenz (eine obere Grenze für
Latenz ist gewährleistet),
Verlierbarkeit (das Fallenlassen von Daten), Übertragungsbeendigung, Transaktionsbeendigung,
Datenkorrektheit, Priorität,
oder Datenlieferung.
-
1 zeigt
ein System an Chip nach einer ersten Ausführungsform der vorliegenden
Erfindung. 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
dem Master und den Sklavenmodulen M, S, 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 ihre spezielle Operation durchführen können, ohne dass die Kommunikation
sich mit dem Netzwerk oder anderen Modulen zu beschäftigen braucht.
Die Netzwerkschnittstellen NI können
Lese-rd und Schreibanträge
wr und Vorgänge
zwischen einander über
das Netzwerk senden.
-
2 zeigt
ein System an Chip nach einer zweiten Ausführungsform. Das System umfasst
ein Mastermodul M und zwei Sklavenmodule S1, S2, ein Routernetzwerk
N und drei Netzwerkschnittstellen ANIP, PNIP zwischen den Modulen
und dem Router-Netzwerk
N. Die Netzwerkschnittstellen schaffen zwei Netzwerkschnittstellenporte
NIP (einen Antrags- und einen Antwortport) worüber die Module mit dem Routernetzwerk
N oder anderen Modulen über das
Routernetzwerk N kommunizieren. Die mit dem Mastermodul M assoziierten
Netzwerkschnittstellenporte werden als aktive Netzwerkschnittstellenporte ANIP
bezeichnet und die mit den Sklavenmodulen assoziierten Netzwerkschnittstellen
werden als passive Netzwerkschnittstellenporte PNIP bezeichnet. Die
Kommunikation zwischen dem Mastermodul M und den Sklavenmodulen
S1, S2 basiert auf Antrag-Antworttransaktionen,
wobei der Master M eine Transaktion dadurch auslöst, dass ein Antrag gestellt wird,
möglicherweise
mit einigen Daten oder erforderlichen Verbindungseigenschaften.
Der Antrag REQ wird dem Sklavenmodul S zugeführt, und zwar über den
aktiven Netzwerkschnittstellenport ANIP, das Netzwerk N und den
passiven Netzwerkschnittstellenport PNIP. Der Antrag wird von dem
Sklavenmodul T durchgeführt
und Daten werden, fasst erforderlich oder notwendig, als eine Antwort
RESP zurückgeführt. Diese
Antwort RESP kann Daten enthalten und/oder eine Bestätigung für den Master
M. Ein Prozess bei dem Master M kann eine Adressenabbildung von
0 – FF
sehen, die in den Spei chern der zwei Sklaven S1, S2 liegen, d. h.
0 7F in dem Speicher des ersten Sklaven S1 und 80 – FF in
dem Speicher des zweiten Sklaven S2. Eine Adresse kann an der Quelle
decodiert werden 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.
-
Verbindungen
zwischen den Modulen/Netzwerkschnittstellen können wie folgt klassifiziert
werden:
- – eine
einfache Verbindung ist eine Verbindung zwischen einem einzigen
ANIP und einem einzigen PNIP.
- – Eine
Multicastverbindung ist eine Verbindung zwischen einem einzigen
ANIP und einem oder mehreren PNIPen, wobei die gesendeten Nachrichten
dupliziert werden und jeder PNIP eine Kopie dieser Nachrichten empfangt.
In einer Mehrfachverbindung werden zur Zeit keine Rückmeldungen
erlaubt, und zwar wegen den riesigen Verkehr, den sie verursachen
(d. h. eine Antwort je Ziel). Es könnte auch die Komplexität in dem ANIP
steigern, weil einzelne Antworten von PNIPen zu einer einzigen Antwort
für den
ANIP zusammengefügt
werden sollen. Dies erfordert Pufferraum und/oder zusätzliche
Berechnung für
das Zusammenfügen
selber.
- – Eine
Narrowcastverbindung ist eine Verbindung zwischen einem einzigen
ANIP und einem oder mehreren PNOPen, wobei jede Transaktion, die der
ANIP auslöst,
durch genau einen PNIP durchgeführt
wird. Eine Beispiel einer Narrowcastverbindung, wo 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 durchgefrührt.
-
Eine
Narrowcastverbindung kann durch Decodierung jeder Transaktionsadresse
an den aktiven Netzwerkschnittstellenporten ANIP implementiert werden.
Nach der Decodierung wird der Zielsklave der Transaktion identifiziert
und der Transaktionsantrag wird nur dem betreffenden Sklaven zugeführt, d. h.
der Antrag wird nur für
den Zielsklaven sichtbar sein und nicht für alle Sklaven in dem Netzwerk.
-
3 zeigt
ein System an Chip nach einer dritten Ausführungsform der vorliegenden
Erfindung. Das System nach der dritten Ausführungsform basiert auf dem
System nach der zweiten Ausführungsform.
Außerdem
umfassen die Porte der aktiven Netzwerkschnittstelle einen Adressenübersetzungsverwalter
Aufzeichnungsträger
mit einer Ad ressenabbildungstabelle AMT, wobei der Adressenübersetzungsverwalter
Aufzeichnungsträger
die Decodierung der Adresse des Zielsklaven auf Basis der Information
durchführt,
die in einer Adressenabbildungstabelle AMT gespeichert ist. Die
genannte Adressenabbildungstabelle AMT kann auf einer statischen programmierbaren
oder dynamischen Basis implementiert werden und kann Felder für jeden
Kanal einer Verbindung, für
den Verbindungsidentifizierer, für Netzwerkschnittstellenporte
ANIP, PNIP einer Verbindung, und/oder für lokale Adressen in adressierten
Modulen S enthalten.
-
Jede
Adresse in einem Sklaven hat eine globale und eine örtliche
Adresse. Die globale Adresse bezieht sich auf eine Adresse, gesehen
von der Verarbeitung an dem Master M und die örtliche Adresse bezieht sich
auf die Adresse eines Sklaven. Der Adressenbereich der globalen
Adresse kann 0000-FFFF sein, während
ein Bereich innerhalb eines Sklaven 000-FFF sein kann.
-
Die
globale Adresse kann verschiedenartig gebildet werden. Erstens wird
sie durch eine Netzwerkadresse und eine örtliche Adresse gebildet. Die Netzwerkadresse
kann der Portidentifizierer des empfangenden Moduls sein, d. h.
die Port_ID der passiven Netzwerkschnittstellenporte PNIP. Ein derartiges
Schema würde
rückwärts kompatibel
sein.
-
Zweitens
wird die globale Adresse durch einen Verbindungsidentifizierer (Verbindungs-ID)
und eine örtliche
Adresse als minimale Information gebildet oder auf alternative Weise
durch den Verbindungsidentifizierer, die passiven Netzwerkschnittstellenporte
PNIP und die örtliche
Adresse. Die Anordnung der passiven Netzwerkschnittstellenporte
PNIP ist in einigen Fällen
redundant, steigert aber die Sicherheit des Schemas. Im Falle eines
Masters identifiziert eine Verbindungs-ID verschiedene Sklaven, und
es soll einige Mittel geben um einen davon zu selektieren. Die Netzwerkschnittstellenport
NIP-Adresse oder
die globale Adresse (von der eine passive Netzwerkschnittstellenport
PNIP-ID hergeleitet
wird), sind dennoch erforderlich. In beiden Fällen (d. h. Netzwerkschnittstellenadresse
und globale Adresse) sind Überprüfungen als
Mittel zur Selektion möglich, da
nur ein Subsatz der Netzwerkschnittstellenporte NIP auf der Verbindung
abgebildet werden:
- a) Die Adressenübersetzung
erfolgt auf Basis einer Verbindungs-ID + globale Adresse, d. h.
auf Basis der passiven Netzwerkschnittstellen PNIP ID und der örtlichen
Adresse, möglicherweise auch
mit Kommunikationseigenschaften der Verbindung und einer Überprüfung.
- b) Die Adressenüberwetzung
erfolgt auf Basis einer Verbindungs-ID, einer passiven Netz- Werkschnittstellen
PNIP ID + einer örtlichen
Adresse, möglicherweise
auch mit Kommunikationseigenschaften der Verbindung und einer Überprüfung.
-
Im
Falle eines Sklaven, reicht eine Verbindungs-ID um das Ziel von
Daten zu ermitteln. Dieses Ziel ist der einzigartige Master, verbunden
mit dem einzigartigen ANIP dieser Verbindung.
-
Wie
oben beschrieben, erfolgt die Adressenübersetzung durch den Adressenübersetzungsverwalter
Aufzeichnungsträger
in der aktiven Netzwerkschnittstelle, wobei der Adressenübersetzungsverwalter
Aufzeichnungsträger
seine eigene Adressenabbildungstabelle AMT aufweist, wo alle Information
gespeichert ist, die erforderlich ist zum Durchführen der Adressenübersetzung.
Der Adressenübersetzungsverwalter
Aufzeichnungsträger
und/oder die Adressenabbildungstabelle AMT können auch nicht in der Netzwerkschnittstelle
sondern zentral in dem Netzwerk N vorgesehen sein.
-
Nach
einer weiteren Ausführungsform
der vorliegenden Erfindung kann die Funktionalität einer Narrowcast-Verbindung
auch unter Verwendung einfacher oder Multicast-Verbindungen erreicht
werden, aber bei höheren
Kosten, mit weniger Flexibilität und/oder
die Neuverwendbarkeit der Module hindernd. Eine Narrowcast-Verbindung
kann unter Verwendung mehrerer einfacher Verbindungen zu jedem Sklavenmodul
S implementiert werden. Entsprechend der Adresse selektiert das
Mastermodul M oder der aktive Netzwerkschnittstellenport ANIP eine geeignete
einfache Verbindung. Differenzielle Eigenschaften der Verbindung,
d. h. verschiedene Verbindungseigenschaften für die betreffenden Kanäle einer
Verbindung, können
dennoch je Sklaven implementiert werden. Das Mastermodul M soll
aber die Zuordnung der Adressenmappe im voraus kennen, was die Neuverwendbarkeit
hindern wird. Die Verwendung einer einfachen Verbindung macht die
Programmierung des Mastermoduls schwieriger, da viele Verbindungsidentifizierer
verwaltet werden sollen. Viele Puffer, d. h. einen für jede einfache
Verbindung, sollen für
die betreffenden Antworten zugeordnet werden, wenn viele einfache
Verbindungen verwendet werden. Dies kann aber mehr Speicherraum
erfordern als die Zuordnung eines e4inzigen gröberen Puffers, wie bei Narrowcast-Verbindungen
verwendet. Für
den Fall, dass geordnete Narrowcast-Transaktionen erforderlich sind,
sollen diese auf einem höheren
Pegel implementiert werden, da keine Ordnungsgewährleistungen über Verbindungen
geschaffen werden.
-
Auf
alternative Weise kann eine Narrowcast-Verbindung auf Basis von
Multicast-Verbindungen implementiert werden. Eine Multicast-Verbindung
verbindet einen Master M mit einem oder mehreren Sklaven S1, S2.
Für eine
Transaktion mit einer Antwort werden alle Sklaven antworten, aber
vorwiegend wird eine einzige Antwort zu dem Master zurückgeführt. Diese
Filterung von Antwortnachrichten kann von einer aktiven Netzwerkschnittstelle
ANIP assoziiert mit dem Master, durchgeführt werden. Auf alternative
Weise kann eine Narrowcast-Verbindung durch Implementierung eines
Transaktionsfilters bei den Sklaven erreicht werden, d. h. die Filterung
wird durch eine passive Netzwerkschnittstelle PNIP assoziiert mit
dem Sklaven durchgeführt.
Die PNIP entscheidet eine Transaktion ggf. zu dem assoziierten Sklaven
weiter zu leiten, und zwar abhängig
von der Transaktionsadresse. Aber da eine Multicast-Verbindung von
jedem Sklaven eine Antwort erwartet, müssen die PNIP leere Antworten
enthalten, die dann von dem ANIP oder dem Modul gefiltert werden
können. Dieses
Schema ermöglicht
eine einfache Programmierung des Masters, da vorwiegend eine einzige Verbindung
betroffen ist. Die Neuverwendbarkeit der Entwürfe der Mastermodule M wird
auch gesteigert, da es keine Notwendigkeit gibt, auf die Adressenzuordnung
bei den betreffenden Sklaven zu achten. Es wird aber ein wesentlicher
Betrag an unnötigem Netzwerkverkehr,
d. h. dem Verkehr zu und von den nicht adressierten Sklaven, erzeugt,
für die
Pufferung auch erforderlich ist. Zum Schluss kann, da die Anträge jedem
Sklaven zugesendet werden, eine Feinabstimmung der differenziellen
Bandbreitenzuordnung je Sklave durchgeführt werden.
-
Eine
Transaktion ohne Antwort (beispielsweise ein verschicktes Schreiben)
gilt als komplett, wenn sie von dem Sklaven durchgeführt worden
ist. Wenn es keine Antwortnachricht zu dem Master gibt, kann keine
Garantie in Bezug auf die Vervollständigung der Transaktion gegeben
werden.
-
Eine
Transaktion mit einer Antwort (beispielsweise einem bestätigten Schreiben)
heißt
als komplett, wenn eine RETSTAT Nachricht von dem ANIP. Man soll
bedenken, dass wenn Daten als eine Antwort (RETDATA) empfangen werden,
auch eine RETSTAT (möglicherweise
implizit) empfangen wird, und zwar zur Bewertung der Daten. Die
Transaktion kann entweder erfolgreich durchgeführt werden, wobei in dem Fall
ein Erfolg RESTAT zurück
gesendet wird, mangelhaft in der Durchführung bei dem Sklaven, und
danach wird ein Durchführungsfehler
RESTAT zurückgesendet,
oder mangelhaft und zwar wegen Pufferüberfluss in einer Verbindung
mit dem Mangel an Flusssteuerung, und danach wird ein Überflussfehler
gemeldet. Es wird vorausgesetzt, dass wenn ein Sklave eine CMD akzeptiert,
wobei um eine Antwort gebeten wird, der Sklave immer die Antwort
erzeugt.
-
In
dem Netzwerk lassen Router keine Datenfallen, deswegen wird immer
garantiert, dass Nachrichten der NI geliefert werden. Für Verbindungen
mit Flusssteuerung lassen auch NIen keine Daten fallen, Auf diese
Weise wird Nachrichtenlieferung und folglich Transaktionsvervollständigung
zu den IP in diesem Fall automatisch gewährleistet.
-
Wenn
es aber keine Flusssteuerung gibt, können Nachrichten bei der Netzwerkschnittstelle
fallen gelassen werden, und zwar in dem Fall von Pufferüberfluss.
Alle CMD, OUTDATA und RETDATA können
bei der NI fallen gelassen werden. Um eine Transaktionsvervollständigung
zu gewährleisten
darf RETSTAT nicht fallen gelassen werden. Folglich muss in den
ANIPen genügend
Pufferraum vorgesehen werden um RETSTAT Nachrichten für alle noch nicht
erledigten Transaktionen unterzubringen. Dies wird dadurch erzwungen,
dass die Anzahl nicht erledigter Transaktionen begrenzt wird.
-
Nun
werden die Ordnungsanforderungen zwischen den verschiedenen Transaktionen
innerhalb einer einzigen Verbindung beschrieben. Über verschiedene
Verbindungen wird keine Ordnung von Transaktionen in der Transportschicht
definiert.
-
Es
gibt verschiedene Punkte in einer Verbindung, wo die Reihenfolge
von Transaktionen wahrgenommen werden kann: (a) die Reihenfolge,
in der das Mastermodul M, I CDM Nachrichten zu dem ANIP präsenti9ert,
(b) die Reihenfolge, in der die CMD dem Sklavenmodul T, S durch
den PNIP geliefert werden, (c) die Reihenfolge, in der das Sklavenmodul
T, S die Antworten zu dem PNIP präsentiert, und (d) die Reihenfolge,
in der die Antworten dem Master von dem ANIP geliefert werden. Es
sei bemerkt, dass nicht alle (b), (c) und (d) immer anwesend sind.
Weiterhin gibt es keine Voraussetzungen über die Reihenfolge, in der
die Sklaven Transaktionen durchführen;
nur die Reihenfolge der Antworten kann wahrgenommen werden. Die
Reihenfolge der Durchführung
der Transaktionen durch die Sklaven wird als Systementscheidung
betrachtet, und nicht als Teil des Verbindungsprotokolls.
-
Bei
ANIPen und PNIPen dürfen
ausgehende Nachrichten, die zu verschiedenen Transaktionen über dieselbe
Verbindung gehören,
verschachtelt werden. So können
beispielsweise zwei Schreibbefehle ausgegeben werden, und nur nachher
deren Daten. Wenn die Reihenfolge von AUTDATA Nachrichten von der
Reihenfolge von CMD Nach richten abweicht, müssen Transaktionsidentifizierer
eingeführt
werden um AUTODATA mit ihrer entsprechenden CMD zu assoziieren.
-
Ausgehende
Nachrichten können
von den PNIPen zu den Sklaven geliefert werden (siehe b), und zwar
wie folgt:
- – Ungeordnet, was voraussetzt:
keine Reihenfolge in der Lieferung der ausgehenden Nachrichten verschiedener
Transaktionen bei den PNIPen.
- – Örtlich geordnet,
wobei Transaktionen zu jedem PNIP geliefert werden müssen, und
zwar in der Reihenfolge, in der sie gesendet wurden (a), es wird
aber keine Reihenfolge über
PNIPen vorausgesetzt. Örtlich
geordnete Lieferung der ausgehenden Nachrichten kann entweder durch
einen geordneten Datentransport geschaffen werden, oder durch Neuordnung
ausgehender Nachrichten bei dem PNIP.
- – Global
geordnet, wobei Transaktionen in der Reihenfolge geliefert werden
müssen,
in der sie gesendet wurden, über
alle PNIPe der Verbindung. Global geordnete Lieferung des ausgehenden
Teils von Transaktionen erfordert einen teuren Synchronisationsmechanismus.
-
Transaktionsantwortnachrichten
können
von den Sklaven zu den PNIPen, als Geordnet, geliefert werden (c),
wenn REYDATA und RETSTAT Nachrichten in derselben Reihenfolge zurückgesendet werden
wie die CMD zu dem Sklaven geliefert wurden (b) oder sonst als Ungeordnet.
Wenn Antworten ungeordnet werden, soll es einen Mechanismus geben
zum Identifizieren der Transaktion, zu der eine Antwort gehört. Dies
erfolgt meistens unter Verwendung von Etiketten auf Nachrichten
für Transaktionsidentifikationen
(entsprechend Etikette in VCI).
-
Antwortnachrichten
können
von dem ANIP zu dem Master geliefert werden (siehe d), und zwar wie
folgt:
- – Ungeordnet,
was voraussetzt, dass es keine Ordnung gibt bei der Lieferung von
Antworten, Auch in diesem Fall müssen
Etikette verwendet werden um Antworten mit ihren entsprechenden CMDen
zu assoziieren.
- – Örtlich geordnet,
wobei RETDATA und RETSTAT Nachrichten von Transaktionen für einen
einzigen Sklaven in der Reihenfolge geliefert werden, in der die
ursprünglichen
CMD von dem Master zu dem ANIP geliefert wurden. Es sei bemerkt, dass
es keine Ordnung gibt, die Transaktionen zu verschiedenen Sklaven
innerhalb derselben Verbindung auferlegt wurden. Global geordnet,
wobei alle Antworten in einer Verbindung zu dem Master in derselben
Reihenfolge geliefert werden wie die ursprünglichen CMD. Wenn Transaktionen
in einer Pipeline zu einer Verbindung liegen, dann 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ßerdem definieren
und bieten wir die nachfolgenden zwei. Eine ungeordnete Verbindung
ist eine Verbindung, in der 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. Da
Implementieren ungeordneter Verbindungen ist preisgünstig, aber
es kann schwieriger sein sie zu verwenden, und sie führen das
Anbringen von Etiketten ein.
-
Eine
geordnete Verbindung wird als eine Verbindung identifiziert mit örtlicher
Ordnung für
die ausgehenden Nachrichten von PNIPen zu Sklaven, geordneten Antworten
bei den PNIPen, und globaler Ordnung für Antworten bei dem ANIP. Wir
wählen örtliche
Ordnung für
den ausgehenden Teil, weil die globale Ordnung zu hohen Kosten mit
sich bringt, und wenig Gebrauchsmöglichkeiten bietet. Die Ordnung der
Antworten wird selektiert um ein einfaches Programmierungsmodell
ohne Etikette zu ermöglichen. Eine
Globale Ordnung beim ANIP ist möglich
zu mäßigen Kosten,
weil die ganze Ordnung örtlich
in dem ANIP erfolgt. Ein Benutzer kann Verbindungen mit globaler
Ordnung von ausgehenden und Rückkehrnachrichten
bei den PNIPen unter Verwendung von nicht in der Pipeline liegenden
bestätigten
Transaktionen auf Kosten hoher Latenz emulieren.
-
In
dem Netzwerk kann Durchsatz für
Verbindungen in einer TDMA-Weise reserviert werden, wobei Bandbreite
in Schlitze fester Größe in einem
festen Zeitplan aufgeteilt werden. Bandbreite, sowie Begrenzungen
von Latenz und Jitter können
gewährleistet
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 NL geliefert werden. Nachrichten
von einem der NIPe sind bei dem anderen NIP nicht unmittelbar sichtbar,
und zwar wegen der Mehrfachsprungart von Netzwerken. Folglich würden Handshakes über ein
Netzwerk erlauben, dass jeweils nur eine einzige Nachricht übertragen wird.
Dies begrenzt den Durchsatz bei einer Verbindung und fügt Latenz
zu den Transaktionen hinzu. Um dieses Problem zu lösen und
eine bessere Netzwerkbenutzung zu erzielen müssen die Nachrichten über eine
Leitung geleitet werden. In diesem Fall muss, wenn die Daten bei
dem PNIP nicht mit derselben Rate verbraucht werden wie sie eintreffen,
entweder eine Flusssteuerung eingeführt werden um den Erzeuger
zu bremsen, oder es können
Daten verloren gehen, und zwar wegen begrenzten Pufferraums bei
dem Verbraucher NI.
-
Ein
Satz mit NoC Diensten wird definiert, der Einzelheiten von dem Netzwerk
absondert. Die Verwendung dieser Dienste in dem IP Entwurf entkoppelt
Berechnung und Kommunikation. Es wird ein Antragsantworttransaktionsmodell
verwendet um nahe bei bestehenden On Chip Verbindungsprotokollen
zu sein. Dies vereinfacht die Migration aktueller IPs zu NoCs. Um
die NoC Fähigkeiten
völlig
zu benutzen, wie große
Bandbreite und gleichzeitig laufende Transaktionen, wird eine Verbindungsorientierte Kommunikation
geschaffen. Verbindungen können unabhängig mit
verschiedenen Eigenschaften konfiguriert werden. Diese Eigenschaften
umfassen Transaktionsvervollständigung,
mehrere Transaktionsordnungen, Bandbreitenuntergrenzen, Latenz und
Jitterobergrenzen und Flusssteuerung.
-
Wie
oben beschrieben haben NoCs verschiedene Eigenschaften von beiden
bestehenden Off Chip Netzwerken und bestehenden On Chip Verbindungen.
Dadurch können
bestehende Protokolle und Dienstschnittstellen nicht unmittelbar
an NoCs angepasst werden, sondern müssen die Kennzeichen von NoCs
berücksichtigen.
So setzt beispielsweise ein Protokoll, wie TCP/IP voraus, dass das Netzwerk
verlustbehaftet ist und enthält
eine wesentliche Komplexität
zum eine zuverlässige
Kommunikation zu schaffen. Deswegen ist es nicht geeignet in einem
NoC, wo wir voraussetzen, dass Datenübertragungszuverlässigkeit
bereits auf einem niedrigeren Pegel gelöst worden ist. Andererseits
sind bestehende On Chip Protokolle, wie VCI, OCP, AMBA oder CoreConnect
auch nicht direkt anwendbar. Sie setzen beispielsweise einen geordneten
Transport von Daten voraus: wenn zwei Anträge von demselben Master ausgelöst werden,
werden diese in derselben Ordnung am Ziel eintreffen. Dies gilt
nicht automatisch für
NoCs. Atomketten von Transaktionen und Ende-zu-Ende-Flusssteuerung
brauchen auch spezielle Aufmerksamkeit in einer NoC Schnittstelle.
-
Die
Module, wie diese in 1 und 2 beschrieben
worden sind, können
sog. IP Blöcke
sein (Rechenelemente, Speicher, oder Subsysteme mit Verbindungsmodulen),
die mit dem Netzwerk bei den genannten Schnittstellen NI 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 einem
NIP verbunden werden.
-
Die
Kommunikation über
das Netzwerk erfolgt durch die Netzwerkschnittstellen bei Verbindungen,
d. h. das Auslöser-
und das Zielmodul sind unsichtbar für das Netzwerk. Es werden Verbindungen eingeführt um Kommunikation
mit verschiedenen Eigenschaften zu beschreiben, wie garantierten
Durchsatz, begrenzte Latenz und begrenzten Jitter, geordneten Lieferung,
oder Flusssteuerung. Um beispielsweise Kommunikation von 1 Mbs und
25 Mbs zu unterscheiden und unabhängig zu gewährleisten, können zwei
Verbindungen verwendet werden. Zwei NIPe können durch mehrere Verbindungen
verbunden werden, möglicherweise
mit verschiedenen Eigenschaften. Verbindungen, wie hier definiert,
entsprechen dem Konzept von Drähten
und Verbindungen von OCP und VCI. Dort, wo OCP und VCI Verbindungen
nur zum Entspannen der Transaktionsordnung verwendet werden, verallgemeinern
wir von nur der Ordnungseigenschaft um die Konfiguration der Pufferung
und der Flusssteuerung, den garantierten Durchsatz und die begrenzte
Latenz je Verbindung einzuschließen.
-
Die
Verbindungen nach den Ausführungsformen
der vorliegenden Erfindung müssen
zunächst geschaffen
oder mit den gewünschten
Eigenschaften gebaut werden, bevor sie verwendet werden können. Dies
kann zu Mittelreservierungen innerhalb des Netzwerkes führen (beispielsweise
Pufferraum oder einen Prozentsatz der Verwendung der Verbindung je
Zeiteinheit). Wenn die beantragten Mittel nicht verfügbar sind,
wird das Netzwerk RN den Antrag verweigern. Nach Gebrauch werden
die Verbindungen geschlossen, was zu einer Freigabe der Mittel führt, die
durch die Verbindung besetzt waren.
-
Um
mehr Flexibilität
in der Gestaltung von Verbindungen zu ermöglichen und folglich eine bessere
Mittelzuordnung je Verbindung zu schaffen können die ausgehenden und zurückkehrenden
Teile der Verbindungen unabhängig
voneinander konfiguriert werden. So kann beispielsweise ein anderer
Betrag an Pufferraum in den NIPen bei dem Master und den Sklaven
zugeordnet werden, oder es können
andere Bandbreiten für
Antrage und Antworten reserviert werden.
-
Kommunikation
erfolgt bei Verbindungen unter Verwendung von Transaktionen, bestehend
aus einem Antrag und möglicherweise
einer Antwort. Der Antrag codiert einen Vorgang (beispielsweise
Lesen, Schreiben, Entleeren, Testen und Einstellen, Null-Operation) und trägt möglicherweise
ausgehende Daten (beispielsweise für Schreibbefehle). Die Antwort
bringt Daten zurück
als Ergebnis eines Befehls (beispielsweise Lesen) und/oder einer
Bestätigung.
Verbindungen betreffen wenigstens zwei NIPe. Transaktionen an einer
Verbindung werden immer an einem und nur an einem der NIPe, der
als aktiver NIP (ANIP) der Verbindung bezeichnet wird. Alle anderen NIPe
der Verbindung werden als passive NIPe (PNIP) bezeichnet.
-
Es
können
viele Transaktionen gleichzeitig aktiv sein bei einer Verbindung,
aber allgemeiner als für
aufgeteilte Busse. Das heißt,
Es können
Transaktionen bei dem ANIP einer Verbindung gestartet werden, während Antworten
für frühere Transaktionen noch
ausstehen. Wenn eine Verbindung viele Sklaven hat, können viele
Transaktionen nach verschiedenen Sklaven ausgelöst werden. Transaktionen werden
auch zwischen einem einzigen Master-Sklavenpaar über Leitung erledigt, und zwar
für Anträge sowie
für Antworten.
Im Grunde können
Transaktionen auch innerhalb eines Sklaven über Leitung erledigt werden,
wenn der Sklave dies erlaubt.
-
Eine
Transaktion kann aus den nachfolgenden Nachrichten zusammengestellt
werden:
- – Es
wird eine Befehlsnachricht (CMD) von dem ANIP gesendet und diese
Nachricht beschreibt die bei dem mit dem PNIP verbundenen Sklaven durchzuführende Aktion.
Beispiele von Befehlen sind Lesen, Schreiben, Testen und Einstellen,
sowie Abführen.
Befehle sind die einzigen Nachrichten, die in einer Transaktion
obligatorisch sind. Für
NIPe, die nur einen einzigen Befehl ohne Parameter (beispielsweise
adresslose Schreiben fester Größe) erlauben,
setzen wir voraus, dass es die Befehlsnachricht noch immer gibt,
sogar wenn sie implizit ist (d. h. nicht explizit von dem IP gesendet
wurde).
- – Eine
OUTDATA-Nachricht wird von dem ANIP gesendet, einem Befehl folgend,
der erfordert, dass Daten durchgeführt werden (beispielsweise Schreiben,
Multicast, und Testen-und-Einstellen).
- – Eine
Rücksendedatennachricht
(RETDATA) wird von einem PNIP gesendet als eine Folge einer Transaktionsdurchführung, die
Daten erzeugt (beispielsweise Lesen, und Testen-und-Einstellen).
- – Eine
Vervollständigungsbestätigungsnachricht (RETSTAT)
ist eine fakultative Nachricht, die von PNIP zurück gesendet wird, wenn ein
Befehl erledigt worden ist. Sie kann entweder eine erfolgreiche
Beendigung einer einen Fehler signalisieren. Für Transaktionen mit RETDATA
und RETSTAT können
die zwei Nachrichten der Effizienz wegen zu einer einzigen Nachricht
kombiniert werden. Aber selbstverständlich bestehen sie beide:
RETSTAT zum Signalisieren des Vorhandenseins von Daten oder eines
Fehlers, und RETDATA zum Tragen der Daten. In busbasierten Schnittstellen bestehen
RETDATA und RETSTAT typischerweise als zwei einzelne Signale.
-
Nachrichten,
die eine Transaktion bilden, werden in ausgehende Nachrichten, und
zwar CMD und OUTDATA, und Antwortnachrichten, und zwar RETDATA,
RETSTAT aufgeteilt. Innerhalb einer Transaktion geht allen anderen
Nachrichten CMD vorher, und RETDATA geht RETSTAT vorher, wenn vorhanden.
Diese Regeln gelten zwischen Master und ANIP, und PNIP und Sklave.
-
Es
sei bemerkt, dass die oben genannten Ausführungsformen die vorliegende
Erfindung illustrieren und dass der Fachmann imstande sein wird, viele
alternative Ausführungsformen
zu entwerfen. In den Ansprüchen
sollen eingeklammerte Bezugszeichen nicht als den Anspruch begrenzend
betrachtet werden. Das Wort "enthalten" schließt das Vorhandensein
von Elementen und Verfahrensschritten anders als die in einem Anspruch
genannten nicht aus.