DE60316587T2 - Integrierter schaltkreis und verfahren zum erstellen von transaktionen - Google Patents

Integrierter schaltkreis und verfahren zum erstellen von transaktionen Download PDF

Info

Publication number
DE60316587T2
DE60316587T2 DE60316587T DE60316587T DE60316587T2 DE 60316587 T2 DE60316587 T2 DE 60316587T2 DE 60316587 T DE60316587 T DE 60316587T DE 60316587 T DE60316587 T DE 60316587T DE 60316587 T2 DE60316587 T2 DE 60316587T2
Authority
DE
Germany
Prior art keywords
connection
network
module
communication
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60316587T
Other languages
English (en)
Other versions
DE60316587D1 (de
Inventor
Andrei Radulescu
Kees G. Goossens
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32088020&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60316587(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE60316587D1 publication Critical patent/DE60316587D1/de
Publication of DE60316587T2 publication Critical patent/DE60316587T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Computer And Data Communications (AREA)
  • Microcomputers (AREA)

Description

  • 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.

Claims (5)

  1. Integrierte Schaltung mit einer Anzahl Verarbeitungsmodule (M; I; S; T) und mit einem Netzwerk (N; RN) vorgesehen zum Schaffen wenigstens einer Verbindung zwischen einem ersten (M, I) und wenigstens einem zweiten Modul (S; T) wobei die wenigstens eine Verbindung einen Satz von Kommunikationskanälen aufweist, die je einen Satz Verbindungseigenschaften haben, wobei die Verbindungseigenschaften der jeweiligen Kommunikationskanäle der genannten Verbindung unabhängig voneinander einstellbar sind, wobei die genannte Verbindung Transaktionen unterstützt, die ausgehende Nachrichten von dem ersten Modul (M, I) zu dem zweiten Modul (S; T) umfassen oder Reaktionsnachrichten von dem zweiten Modul (S; T) zu dem ersten Modul (M; I) umfassen, wobei die integrierte Schaltung weiterhin Folgendes umfasst: – wenigstens ein Kommunikationsverwaltungsmittel (CM) zum Verwalten der Kommunikation zwischen verschiedenen Modulen (M; I; S; T); und – wenigstens ein Mittelverwaltungsmittel (RM) zum Verwalten der Mittel des Netzwerkes (N), dadurch gekennzeichnet, dass – das genannte erste Modul (M; I) dazu vorgesehen ist, einen Antrag (REQ) für eine Verbindung mit wenigstens einem der genannten Module (S; T) an die genannten Kommunikationsverwaltungsmittel (CM) zu stellen, – die genannten Kommunikationsverwaltungsmittel (CM) dazu vorgesehen sind, den genannten Antrag (REQ) für eine Verbindung mit Kommunikationskanälen, die je einen spezifischen Satz Verbindungseigenschaften haben, an die genannten Mittelverwaltungsmittel (RM) weiter zu leiten, – die genannten Mittelverwaltungsmittel (RMO dazu vorgesehen sind, zu Bestimmen, ob die beantragte Verbindung auf Basis der genannten Kommunikationskanäle mit den genannten spezifischen Verbindungseigenschaften verfügbar ist und die Verfügbarkeit der beantragten Verbindung mit den genannten Kommunikationsverwaltungsmitteln (CM) zurück zu melden, wobei eine Verbindung zwischen dem ersten (M; I) und dem zweiten Modul (S; T) auf Basis der verfügbaren Eigenschaften der genannten Kommunikationskanäle der genannten Verbindung hergestellt wird.
  2. Integrierte Schaltung nach Anspruch 1 oder 2, wobei die genannten Kommunikationsverwaltungsmittel (CM) dazu vorgesehen sind, eine Verbindung auf Basis der verfügbaren Verbindungseigenschaften herzustellen, wenn die verfügbaren Verbindungseigenschaften nicht ausreichen, die beantragte Verbindung zwischen dem genannten ersten und zweiten Modul (M, I, S. T) herzustellen.
  3. Integrierte Schaltung nach Anspruch 1 oder 2, wobei die genannten Kommunikationsverwaltungsmittel (CM) dazu vorgesehen sind, eine Rückstellung der Verbindung zwischen dem ersten und dem zweiten Modul (M, I, S, T) zu beantragen, wenn die genannten Module ihre Transaktionen erfolgreich durchgeführt haben.
  4. Integrierte Schaltung nach Anspruch 1, 2 oder 3, die weiterhin Folgendes umfasst: wenigstens ein Netzwerkschnittstellenmittel (NI) assoziiert mit jedem der genannten Module, zum Verwalten der Kommunikation zwischen den genannten Modulen und dem genannten Netzwerk (N).
  5. Verfahren zum Austauschen von Nachrichten in einer integrierten Schaltung mit einer Anzahl Module (M; I; S; T), wobei die Nachrichten zwischen den Modulen (M; I; S; T) über Verbindungen mittels eines Netzwerkes (N) ausgetauscht werden, wobei die integrierte Schaltung weiterhin Folgendes umfasst: – wenigstens ein Kommunikationsverwaltungsmittel (CM) zum Verwalten der Kommunikation zwischen verschiedenen Modulen (M; I; S; T); und – wenigstens ein Mittelverwaltungsmittel (RM) zum Verwalten der Mittel des Netzwerkes (N), wobei die genannten Verbindungen einen Satz Kommunikationskanäle aufweisen, die je einen Satz Verbindungseigenschaften haben, wobei jeder Kommunikationskanal unabhängig konfiguriert werden kann. wobei die genannte Verbindung über das Netzwerk (N) Transaktionen unterstützt, die das Aussenden von Nachrichten von dem ersten Modul (M; I) zu dem zweiten Modul (S; T) und/oder das Zurücksenden von nachrichten von dem zweiten Modul (S; T) zu dem ersten Modul (M; I) umfassen dadurch gekennzeichnet, dass das genannte erste Modul (M; I) einen Antrag für eine Verbindung mit wenigstens einem der genannten zweiten Module (S; T) zu den Kommunikationsverwaltungsmitteln (CM) ausgehen lässt, dass die genannten Kommunikationsverwaltungsmittel (CM) den genannten Antrag für eine Verbindung mit Kommunikationskanälen, die je einen spezifischen Satz Verbindungseigenschaften haben, zu den genannten Mittelverwaltungsmitteln (RM) senden, dass die genannten Mittelverwaltungsmittel (RM) bestimmen, ob die beantragte Verbindung auf Basis der genannten Kommunikationskanäle mit den genannten spezifischen Verbindungseigenschaften verfügbar sind, und die Verfügbarkeit der beantragten Verbindung zu den genannten Kommunikationsverwaltungsmitteln (CM) zurück senden.
DE60316587T 2002-10-08 2003-10-07 Integrierter schaltkreis und verfahren zum erstellen von transaktionen Expired - Lifetime DE60316587T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02079196 2002-10-08
EP02079196 2002-10-08
PCT/IB2003/004414 WO2004034176A2 (en) 2002-10-08 2003-10-07 Integrated circuit and method for establishing transactions

Publications (2)

Publication Number Publication Date
DE60316587D1 DE60316587D1 (de) 2007-11-08
DE60316587T2 true DE60316587T2 (de) 2008-07-03

Family

ID=32088020

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60316458T Expired - Lifetime DE60316458T2 (de) 2002-10-08 2003-07-04 Integrierter schaltkreis und verfahren zum erstellen von transaktionen
DE60316587T Expired - Lifetime DE60316587T2 (de) 2002-10-08 2003-10-07 Integrierter schaltkreis und verfahren zum erstellen von transaktionen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60316458T Expired - Lifetime DE60316458T2 (de) 2002-10-08 2003-07-04 Integrierter schaltkreis und verfahren zum erstellen von transaktionen

Country Status (10)

Country Link
US (3) US7769893B2 (de)
EP (3) EP1552669B1 (de)
JP (3) JP2006502642A (de)
KR (1) KR101016987B1 (de)
CN (5) CN100342370C (de)
AT (2) ATE373922T1 (de)
AU (3) AU2003299454A1 (de)
DE (2) DE60316458T2 (de)
TW (1) TWI307840B (de)
WO (3) WO2004034173A2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005010768A1 (en) * 2003-07-30 2005-02-03 Koninklijke Philips Electronics N.V. Integrated circuit with dynamic communication service selection
EP1726132A2 (de) * 2004-03-03 2006-11-29 Koninklijke Philips Electronics N.V. Datenverarbeitungsschaltung, wobei datenverarbeitungseinheiten über ein netzwerk kommunizieren
WO2005103934A1 (en) * 2004-04-26 2005-11-03 Koninklijke Philips Electronics N.V. Integrated circuit and method for issuing transactions
EP1751667B1 (de) * 2004-05-18 2008-05-21 Koninklijke Philips Electronics N.V. Integrierte schaltung und verfahren zur pufferung zur optimierung der burst-länge in netzwerken auf chips
EP1605727A1 (de) * 2004-06-09 2005-12-14 Koninklijke Philips Electronics N.V. Integrierte Schaltungsanordnung und Verfahren zur Zuordnung von Zeitlagen
FR2875982B1 (fr) * 2004-09-28 2006-12-22 Commissariat Energie Atomique Architecture de communication semi-automatique noc pour applications "flots de donnees"
US7596653B2 (en) * 2004-11-08 2009-09-29 Intel Corporation Technique for broadcasting messages on a point-to-point interconnect
WO2006051471A1 (en) * 2004-11-09 2006-05-18 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation
EP1820356A1 (de) * 2004-12-01 2007-08-22 Koninklijke Philips Electronics N.V. Datenverarbeitungssystem und verfahren zur konvertierung und synchronisation von datenverkehr
US7711787B2 (en) * 2004-12-15 2010-05-04 Electronics And Telecommunications Research Institute On-chip network interfacing apparatus and method
JP2008535435A (ja) * 2005-04-06 2008-08-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワーク・オン・チップ環境及び遅延低減方法
EP1869845A1 (de) * 2005-04-07 2007-12-26 Koninklijke Philips Electronics N.V. Netzwerk-on-chip-umgebung und verfahren zur latenzreduktion
US20090122703A1 (en) * 2005-04-13 2009-05-14 Koninklijke Philips Electronics, N.V. Electronic Device and Method for Flow Control
WO2006129294A1 (en) * 2005-06-03 2006-12-07 Koninklijke Philips Electronics N.V. Electronic device and method of communication resource allocation.
EP1744497B1 (de) * 2005-07-14 2008-01-23 Interuniversitair Microelektronica Centrum Vzw Verfahren zum Verwalten einer Vielzahl von virtuellen Verbindungen zur gemeinsamen Nutzung auf einer Verbindungsleitung und Netzwerk zur Implementierung dieses Verfahrens
KR100653087B1 (ko) * 2005-10-17 2006-12-01 삼성전자주식회사 AXI가 적용된 NoC 시스템 및 그 인터리빙 방법
US7802040B2 (en) * 2005-12-22 2010-09-21 Arm Limited Arbitration method reordering transactions to ensure quality of service specified by each transaction
JP4611901B2 (ja) * 2006-01-16 2011-01-12 株式会社ソニー・コンピュータエンタテインメント 信号伝送方法、ブリッジユニット、および情報処理装置
JP4372110B2 (ja) * 2006-02-10 2009-11-25 エヌイーシーコンピュータテクノ株式会社 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
FR2898753B1 (fr) * 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2904445B1 (fr) * 2006-07-26 2008-10-10 Arteris Sa Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce
US7961605B2 (en) * 2006-07-31 2011-06-14 International Business Machines Corporation System and method for enabling management of a plurality of messages in a communication network
US8045573B2 (en) 2006-08-16 2011-10-25 Arm Limited Bit ordering for packetised serial data transmission on an integrated circuit
KR100737943B1 (ko) * 2006-09-13 2007-07-13 삼성전자주식회사 네트워크-온-칩 응답 신호 제어 장치 및 그 방법
US8689244B2 (en) * 2007-01-26 2014-04-01 Objective Interface Systems, Inc. Hardware communications infrastructure supporting location transparency and dynamic partial reconfiguration
WO2008126471A1 (ja) * 2007-04-06 2008-10-23 Nec Corporation 半導体集積回路およびその試験方法
US7860085B2 (en) * 2007-05-14 2010-12-28 Alcatel Lucent Dual OSS management of an Ethernet access network
CN101075961B (zh) * 2007-06-22 2011-05-11 清华大学 片上网络设计用的一种自适应打包方法
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US8526422B2 (en) * 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
US8276034B2 (en) 2007-12-27 2012-09-25 Ricoh Company, Limited Information processing apparatus, information processing method, and computer program product
JP4554703B2 (ja) * 2007-12-27 2010-09-29 株式会社リコー 情報処理装置、情報処理方法及び情報処理プログラム
US8473667B2 (en) * 2008-01-11 2013-06-25 International Business Machines Corporation Network on chip that maintains cache coherency with invalidation messages
US8490110B2 (en) * 2008-02-15 2013-07-16 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US20110029706A1 (en) * 2008-04-09 2011-02-03 Nxp B.V. Electronic device and method for controlling an electronic device
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US20090271172A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Emulating A Computer Run Time Environment
US8423715B2 (en) * 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8214845B2 (en) * 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
US20090282211A1 (en) * 2008-05-09 2009-11-12 International Business Machines Network On Chip With Partitions
US8392664B2 (en) * 2008-05-09 2013-03-05 International Business Machines Corporation Network on chip
US20090282419A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip
US8230179B2 (en) * 2008-05-15 2012-07-24 International Business Machines Corporation Administering non-cacheable memory load instructions
US8438578B2 (en) * 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8195884B2 (en) * 2008-09-18 2012-06-05 International Business Machines Corporation Network on chip with caching restrictions for pages of computer memory
FR2945396A1 (fr) * 2009-05-07 2010-11-12 St Microelectronics Grenoble 2 Procede et dispositif d'analyse de la propagation de transactions dans un reseau multi-protocoles d'un systeme sur puce
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
KR101563195B1 (ko) * 2009-08-18 2015-10-27 삼성전자주식회사 호스트 장치 및 슬레이브 장치 제어 방법
US8204731B2 (en) * 2010-03-01 2012-06-19 Himax Technologies Limited Signal analyzing method for electronic device having on-chip network and off-chip network
US8819116B1 (en) 2010-03-08 2014-08-26 Amazon Technologies, Inc. Providing services using a device capabilities service
US8861410B2 (en) 2011-10-31 2014-10-14 Qualcomm Incorporated Method and apparatus for scalable network transaction identifier for interconnects
US8640230B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security
US9417998B2 (en) * 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
JP2013196167A (ja) 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US8838861B2 (en) 2012-05-09 2014-09-16 Qualcomm Incorporated Methods and apparatuses for trace multicast across a bus structure, and related systems
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US9471538B2 (en) 2012-09-25 2016-10-18 Qualcomm Technologies, Inc. Network on a chip socket protocol
WO2014052261A1 (en) * 2012-09-25 2014-04-03 Arteris SAS Network on a chip socket protocol
EP2741452A1 (de) * 2012-12-10 2014-06-11 Robert Bosch Gmbh Verfahren zur Datenübertragung unter ECUs und/oder Messvorrichtungen
US9571402B2 (en) * 2013-05-03 2017-02-14 Netspeed Systems Congestion control and QoS in NoC by regulating the injection traffic
US9456071B2 (en) 2013-11-12 2016-09-27 At&T Intellectual Property I, L.P. Extensible kernel for adaptive application enhancement
US9270659B2 (en) 2013-11-12 2016-02-23 At&T Intellectual Property I, L.P. Open connection manager virtualization at system-on-chip
US9602587B2 (en) * 2014-06-26 2017-03-21 Altera Corporation Multiple plane network-on-chip with master/slave inter-relationships
US9747239B2 (en) 2014-08-25 2017-08-29 Apple Inc. Transaction filter for on-chip communications network
US10078356B2 (en) * 2015-08-20 2018-09-18 Intel Corporation Apparatus and method for saving and restoring data for power saving in a processor
US10243882B1 (en) * 2017-04-13 2019-03-26 Xilinx, Inc. Network on chip switch interconnect
CN107894963B (zh) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 用于系统单芯片的通信控制器与通信方法
CN109302296B (zh) * 2018-10-10 2020-12-29 上海保险交易所股份有限公司 用于在区块链网络中广播消息的方法、设备和存储介质
CN114077568A (zh) * 2020-08-18 2022-02-22 Oppo广东移动通信有限公司 核间通信方法、装置、电子组件以及电子设备
US20240211422A1 (en) * 2022-12-21 2024-06-27 Xilinx, Inc. Noc routing in a multi-chip device
CN116389357B (zh) * 2023-06-06 2023-09-29 太初(无锡)电子科技有限公司 基于片上网络的空洞地址处理方法、装置、设备及介质
US12088735B1 (en) 2023-09-13 2024-09-10 Zecurity, Llc Apparatus, systems, and methods relying on non-flashable circuitry for improving security on public or private networks
US12045350B1 (en) 2023-09-13 2024-07-23 Zecurity, Llc Apparatus, systems, and methods relying on non-flashable circuitry for improving security on public or private networks
US12015719B1 (en) 2023-09-13 2024-06-18 Zecurity, Llc Apparatus, systems, and methods relying on non-flashable circuitry for improving security on public or private networks

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570220A (en) * 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US4807118A (en) * 1987-01-14 1989-02-21 Hewlett-Packard Company Method for handling slot requests over a network
US4842740A (en) 1988-08-05 1989-06-27 Hoechst Celanese Corporation Membranes prepared from blend of polybenzimidazole with polyarylates
US5098985A (en) * 1988-10-11 1992-03-24 The Dow Chemical Company Copolymers containing polybenzoxazole, polybenzothiazole and polybenzimidazole moieties
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5317568A (en) * 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
US5341369A (en) * 1992-02-11 1994-08-23 Vitesse Semiconductor Corp. Multichannel self-routing packet switching network architecture
JP2675968B2 (ja) * 1992-08-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 加入者分散2相コミット・プロトコルの拡張機能
CN1174619A (zh) * 1995-02-17 1998-02-25 尢罗佩国际公司 由集成电路控制的事务管理系统
EP0753979A1 (de) * 1995-07-13 1997-01-15 International Business Machines Corporation Methode und System für Wegesuche in einem schnellen Paketvermittlungsnetzwerk
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6400715B1 (en) * 1996-09-18 2002-06-04 Texas Instruments Incorporated Network address matching circuit and method
US6018782A (en) * 1997-07-14 2000-01-25 Advanced Micro Devices, Inc. Flexible buffering scheme for inter-module on-chip communications
JP3815841B2 (ja) * 1997-03-28 2006-08-30 ローム株式会社 IrDA変復調IC
US6248469B1 (en) * 1997-08-29 2001-06-19 Foster-Miller, Inc. Composite solid polymer electrolyte membranes
US5940448A (en) * 1997-09-03 1999-08-17 National Semiconductor Corporation Universal serial bus receiver having input signal skew compensation
US6449273B1 (en) * 1997-09-04 2002-09-10 Hyundai Electronics America Multi-port packet processor
US6446173B1 (en) * 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
JPH11187031A (ja) * 1997-12-19 1999-07-09 Fujitsu Ltd Atm交換機
US6256740B1 (en) * 1998-02-06 2001-07-03 Ncr Corporation Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US6339788B1 (en) * 1998-06-12 2002-01-15 International Business Machines Corporation Method for encapsulating hardware to allow multi-tasking of microcode
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US6717910B1 (en) * 1998-09-30 2004-04-06 Stmicroelectronics, Inc. Method and apparatus for controlling network data congestion
DE19851498A1 (de) 1998-11-09 2000-07-06 Aventis Res & Tech Gmbh & Co Polymerzusammensetzung, Membran enthaltend diese, Verfahren zu deren Herstellung und deren Verwendung
US6539450B1 (en) * 1998-11-29 2003-03-25 Sony Corporation Method and system for adjusting isochronous bandwidths on a bus
US6381638B1 (en) * 1999-02-24 2002-04-30 3Com Corporation System and method for options based address reuse
EP1083768A1 (de) * 1999-09-08 2001-03-14 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren zur Erleichterung der Datenübertragung
US6768742B1 (en) * 1999-10-08 2004-07-27 Advanced Micro Devices, Inc. On-chip local area network
US6594704B1 (en) * 1999-12-15 2003-07-15 Quarry Technologies Method of managing and using multiple virtual private networks in a router with a single routing table
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
JP3623712B2 (ja) * 2000-03-16 2005-02-23 日本電気エンジニアリング株式会社 バッファ制御システム及びその方法並びにその制御プログラム記録媒体
US6813275B1 (en) 2000-04-21 2004-11-02 Hewlett-Packard Development Company, L.P. Method and apparatus for preventing underflow and overflow across an asynchronous channel
CN1439032A (zh) 2000-06-02 2003-08-27 Sri国际公司 聚合物组合物
GB2367406B (en) * 2000-06-13 2002-06-05 Siroyan Ltd Predicated execution of instructions in processors
US6629166B1 (en) * 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
DE10052242A1 (de) * 2000-10-21 2002-05-02 Celanese Ventures Gmbh Mit Säure dotierte, ein- oder mehrschichtige Kunststoffmembran mit Schichten aufweisend Polymerblends umfassend Polymere mit wiederkehrenden Azoleinheiten, Verfahren zur Herstellung solche Kunststoffmembranen sowie deren Verwendung
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20020144078A1 (en) * 2001-03-30 2002-10-03 Siroyan Limited Address translation
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
US7165128B2 (en) * 2001-05-23 2007-01-16 Sony Corporation Multifunctional I/O organizer unit for multiprocessor multimedia chips
US6910092B2 (en) * 2001-12-10 2005-06-21 International Business Machines Corporation Chip to chip interface for interconnecting chips
US7389319B2 (en) * 2002-03-22 2008-06-17 Sun Microsystems, Inc. Adaptive connection routing over multiple communication channels
US6885638B2 (en) * 2002-06-13 2005-04-26 Motorola, Inc. Method and apparatus for enhancing the quality of service of a wireless communication
US7099983B2 (en) * 2002-11-25 2006-08-29 Lsi Logic Corporation Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
US6825688B1 (en) * 2003-08-15 2004-11-30 Lsi Logic Corporation System for yield enhancement in programmable logic
US7219209B2 (en) * 2003-08-29 2007-05-15 Motorola, Inc. Bus filter for memory address translation

Also Published As

Publication number Publication date
EP1552399A2 (de) 2005-07-13
DE60316458T2 (de) 2008-06-26
WO2004034176A3 (en) 2004-08-19
CN1703682A (zh) 2005-11-30
EP1552399B1 (de) 2007-09-26
WO2004034176A2 (en) 2004-04-22
DE60316458D1 (de) 2007-10-31
AU2003267730A8 (en) 2004-05-04
WO2004034173A2 (en) 2004-04-22
US20060041889A1 (en) 2006-02-23
US7366818B2 (en) 2008-04-29
CN1703683A (zh) 2005-11-30
CN100370443C (zh) 2008-02-20
CN1689312B (zh) 2010-04-14
CN100367250C (zh) 2008-02-06
WO2004034173A3 (en) 2004-12-16
CN1703881A (zh) 2005-11-30
EP1552669B1 (de) 2007-09-19
JP2006502487A (ja) 2006-01-19
EP1552669A1 (de) 2005-07-13
TW200419358A (en) 2004-10-01
JP4560409B2 (ja) 2010-10-13
EP1552411A2 (de) 2005-07-13
AU2003299282A1 (en) 2004-05-04
AU2003267730A1 (en) 2004-05-04
CN1689312A (zh) 2005-10-26
WO2004034676A1 (en) 2004-04-22
JP2006502642A (ja) 2006-01-19
CN1688990A (zh) 2005-10-26
JP2006502650A (ja) 2006-01-19
ATE374399T1 (de) 2007-10-15
TWI307840B (en) 2009-03-21
DE60316587D1 (de) 2007-11-08
US20060041888A1 (en) 2006-02-23
CN100342370C (zh) 2007-10-10
KR101016987B1 (ko) 2011-02-25
US7373449B2 (en) 2008-05-13
KR20050083730A (ko) 2005-08-26
US7769893B2 (en) 2010-08-03
US20060095920A1 (en) 2006-05-04
AU2003299454A8 (en) 2004-05-04
AU2003299454A1 (en) 2004-05-04
ATE373922T1 (de) 2007-10-15

Similar Documents

Publication Publication Date Title
DE60316587T2 (de) Integrierter schaltkreis und verfahren zum erstellen von transaktionen
DE69522666T2 (de) Netzwerk mit sicherer, schneller paketvermittlung und garantierter servicequalität
DE60301717T2 (de) Verfahren und Vorrichtung zur inhaltsorientierten Weiterleitung von Paketen im Netz mit Datenspeichervorrichtungen
DE69612302T2 (de) Verfahren und anordnung zur verwaltung von netzwerkbetriebsmitteln
DE69033016T2 (de) Lokales Maschennetzwerk hoher Geschwindigkeit
DE69430945T2 (de) Schnelle Paketvermittlungsnetze
DE69124596T2 (de) Kollisionsfreies Einfügen und Entfernen von durchschaltevermittelten Kanälen in einer paketvermittelnden Übertragungsstruktur
DE69332558T2 (de) Multiport-Brücke für lokales Netz
DE602005003473T2 (de) Datenverarbeitungssystem und Verfahren zur Zuordnung von Zeitlagen
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE69735740T2 (de) Asynchrone paketvermittlung
DE602006000516T2 (de) Architektur eines Kommunikationsknoten in einem global asynchronen Netzwerk on-chip-System
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE69428107T2 (de) Atm-vermittlung mit kontrolliertem zugang
DE2603262C3 (de) Einrichtung zur Vermittlung von Daten
DE69731844T2 (de) Transportarchitekturen und netzwerkelemente
DE60303026T2 (de) System, verfahren und produkt zur verwaltung des datenverkehrs in einem netzwerk
DE68926651T2 (de) Zeitmultiplexkoppelnetz
DE69233588T2 (de) ATM-Vermittlungsanordnung
DE69032699T2 (de) Paketvermittlungssystem mit einer busmatrixartigen Vermittlungsanlage
DE19532422C1 (de) Lokales, nach dem asynchronen Transfermodus (ATM) arbeitendes Netzwerk mit wenigstens zwei Ringsystemen
DE60110934T2 (de) Modularer und skalierbarer switch und verfahren zum verteilen schneller ethernet-datenrahmen
DE60112680T2 (de) Netzwerkerweiterungsmodul
EP1370952B1 (de) Kommunikationsverfahren zur realisierung von ereigniskanälen in einem zeitgesteuerten kommunikationssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition