DE60022186T2 - Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports - Google Patents

Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports Download PDF

Info

Publication number
DE60022186T2
DE60022186T2 DE60022186T DE60022186T DE60022186T2 DE 60022186 T2 DE60022186 T2 DE 60022186T2 DE 60022186 T DE60022186 T DE 60022186T DE 60022186 T DE60022186 T DE 60022186T DE 60022186 T2 DE60022186 T2 DE 60022186T2
Authority
DE
Germany
Prior art keywords
data
count
master
remote
out buffer
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
DE60022186T
Other languages
English (en)
Other versions
DE60022186D1 (de
Inventor
Iain Robertson
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE60022186D1 publication Critical patent/DE60022186D1/de
Publication of DE60022186T2 publication Critical patent/DE60022186T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Selective Calling Equipment (AREA)
  • Image Input (AREA)

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf die Datenübertragung in Datenprozessorsystemen.
  • HINTERGRUND DER ERFINDUNG
  • Die digitale Signalverarbeitung (DSP) unterscheidet sich signifikant von der durch Mikrocontroller und Mikroprozessoren ausgeführten universellen Verarbeitung. Ein Schlüsselunterschied ist die strenge Forderung nach einer Echtzeit-Datenverarbeitung. In einer Modemanwendung ist es z. B. unbedingt erforderlich, dass jeder Abtastwert verarbeitet wird. Selbst das Verlieren eines einzelnen Datenpunktes könnte verursachen, dass eine Anwendung des digitalen Signalprozessors scheitert. Während die Verarbeitung der Datenabtastwerte immer noch das Modell der Aufgabenzuweisung und Blockverarbeitung übernehmen kann, das in der universellen Verarbeitung üblich ist, muss die tatsächliche Datenbewegung innerhalb des digitalen Signalprozessorsystems die strengen Echtzeitanforderungen des Systems einhalten.
  • Als eine Folge sind digitale Signalprozessorsysteme im hohen Grade auf eine integrierte und effiziente Speicherdirektzugriffsmaschine (DMA-Maschine) angewiesen. Der Speicherdirektzugriff-Controller ist für die Verarbeitung der Übertragungsanforderungen von den Peripherievorrichtungen und dem digitalen Signalprozessor selbst in Echtzeit verantwortlich. Die gesamte Datenbewegung durch den Speicherdirektzugriff muss sich ohne Eingriff der Zentraleinheit (CPU) ereignen können, um die Echtzeitanforderungen des Systems zu erfüllen. Das heißt, weil die CPU in einem Software-Aufgabenzuweisungs-Modell arbeiten kann, in dem die Zeitplanung einer Aufgabe nicht so eng gesteuert wird, wie es die Datenströme, auf die die Aufgaben einwirken, erfordern, muss die Speicherdirekt zugriffsmaschine die Last, alle Echtzeit-Datenstromanforderungen im System zu erfüllen, tragen.
  • Der frühe Speicherdirektzugriff hat sich in mehrere aufeinanderfolgende Versionen zentralisierter Übertragungs-Controller und vor kurzem in den Übertragungs-Controller mit der Hub- und Port-Architektur entwickelt.
  • Ein erstes Übertragungs-Controller-Modul wurde für den digitalen Signalprozessor TMS320C80 von Texas Instruments entwickelt. Der Übertragungs-Controller verstärkte die Speicherdirektzugriffsfunktion eines herkömmlichen Controllers zusammen mit der zur Bedienung eines Cache erforderlichen Adressenerzeugungslogik und der Ferndatenübertragung, die außerdem als der direkte externe Zugriff bezeichnet wird, von vier digitalen Signalprozessoren und einem einzelnen RISC-Prozessor (Computer mit eingeschränkten Befehlsvorrat).
  • Die Übertragungs-Controller-Architektur des TMS320C80 ist von einem Speicherdirektzugriff fundamental verschieden, weil nur ein einzelner Satz von Adressenerzeugungs- und Parameterregistern erforderlich ist. Frühere Speicherdirektzugriffseinheiten erforderten mehrere Sätze für mehrere Kanäle. Der einzelne Satz von Registern kann jedoch durch alle Speicherdirektzugriff-Anforderungseinrichtungen verwendet werden. Die Speicherdirektzugriffsanforderungen werden über einen Satz codierter Eingaben an der Peripherie der Vorrichtung an den Übertragungs-Controller verschickt. Außerdem kann jeder digitale Signalprozessor Anforderungen an den Übertragungs-Controller senden. Die externen codierten Eingaben werden als "extern eingeleitete Paketübertragungen" (XPTs) bezeichnet. Die vom digitalen Signalprozessor eingeleiteten Übertragungen werden als "Paketübertragungen" (PTs) bezeichnet. Der RISC-Prozessor könnte außerdem Paketübertragungsanforderungen an den Übertragungs-Controller senden.
  • Der Übertragungs-Controller mit Hub und Ports führte mehrere neue Ideen von Konzepten ein. Das Erste war der gleichmäßige Pipeline-Betrieb. Neue digitale Signalprozessorvorrichtungen, die einen Übertragungs-Controller mit der Hub- und Port-Architektur enthalten, besitzen mehrere externe Ports, die alle für den Hub völlig gleich aussehen. Folglich können die Peripherievorrichtungen und der Speicher frei ausgetauscht werden, ohne den Hub zu beeinflussen. Die zweite neue Idee ist das Konzept der gleichzeitigen Ausführung von Übertragungen. Das heißt, an den mehreren Ports der Vorrichtung können bis zu N Übertragungen parallel vorkommen, wobei N die Anzahl der Kanäle im Übertragungs-Controller mit dem Hub- und Ports-Kern ist. Jeder Kanal im Übertragungs-Controller mit dem Hub- und Ports-Kern ist funktional nur ein Satz von Registern. Dieser Satz von Registern verfolgt die aktuellen Quell- und Zieladressen, die Wort-Zählstände und andere Parameter für die Übertragung. Jeder Kanal ist völlig gleich, wobei folglich die Anzahl der durch den Übertragungs-Controller mit Hub und Ports unterstützten Kanäle im hohen Grade skalierbar ist.
  • Schließlich enthält der Übertragungs-Controller mit Hub und Ports einen Mechanismus, um die Übertragungen in einem dedizierten Warteschlangenspeicher in eine Warteschlange einzureihen. Der Übertragungs-Controller TMS320C80 erlaubte nur, dass eine Übertragung pro Prozessor auf einmal ansteht. Durch den durch den Übertragungs-Controller mit Hub und Ports geschaffenen Warteschlangenspeicher können die Prozessoren zahlreiche Übertragungsanforderungen bis zur Größe des Warteschlangenspeichers ausgeben, bevor der digitale Signalprozessor blockiert.
  • Die vorliegende Erfindung befasst sich mit der Datenübertragung, die verschiedene Speicher-Port-Knoten verbindet, wie sie auf den Übertragungs-Controller mit Hub und Ports angewendet wird. Der Übertragungs-Controller mit Hub und Ports ist eine signifikante grundlegende Verbesserung in den Datenübertragungstechniken in komplexen digitalen Systemen, wobei er viele nützliche Merkmale schafft, von denen eines der interne Speicher-Port ist, der die Verbindung einer praktisch unbegrenzten Anzahl von Prozessor/Speicher-Knoten mit einem zentralisierten Übertragungs-Controller erlaubt. Der zentralisierte Übertragungs-Controller muss die Daten von Knoten zu Knoten mit einer Leistung übertragen können, die relativ unabhängig davon ist, wie nah oder fern sich ein Knoten am bzw. vom Übertragungs-Controller selbst befinden könnte. Um das durch die vorliegende Erfindung gelöste Problem zu erklären, ist es hilfreich, die Eigenschaften, die Architektur und die funktionalen Systembausteine des Übertagungs-Controllers mit Hub und Ports zu überblicken.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Anmeldung offenbart ein effizientes Mittel, um einen Zähler zu verwenden, um den Wert des Warteschlangen-Zählstandes an einem entfernten Ort am Ausgangsende einer mehrstufigen Pipeline aufrechtzuerhalten. Die Erfindung betrifft eine Vorrichtung und ein Verfahren zum Übertragen von Daten, wie sie in den unabhängigen Ansprüchen 1 bzw. 6 definiert sind. Weitere Ausführungsformen der Erfindung sind in den jeweiligen abhängigen Ansprüchen spezifiziert. Die bevorzugte Ausführungsform dieser Anmeldung ist eine Übertragungs-Controller-Vorrichtung mit einer Hub- und Port-Architektur. Der Master-Zähler steht in der Anfangsstufe einer Pipeline aus sechs oder mehr Stufen. Der Fern-Warteschlangenzähler befindet sich am Ausgangsende der Pipeline.
  • Wenn Signale von der C-Pipeline-Endstufe im Hub zum Ort der Ports gesendet werden, ist ein ganzer Taktzyklus erlaubt. Ähnlich ist ein ganzer Taktzyklus erlaubt, wenn Signale vom Port zur anfänglichen Q-Pipelinestufe des Hubs gesendet werden. Typischerweise besitzt eine derartige Pipeline eine Tiefe von etwa sechs Stufen.
  • Für jede Pipeline (entweder Quelle oder Ziel) besteht die Fähigkeit, eine Transaktion pro Zyklus einzuleiten. Um von den verfügbaren Zyklen maximalen Gebrauch zu machen, ist es erwünscht, Transaktionen mit demselben Port in mehreren aufeinanderfolgenden Zyklen einleiten zu können.
  • Um eine Transaktion mit einem speziellen Port einzuleiten, muss in der Befehlswarteschlange dieses Ports Raum verfügbar sein. Es wird betrachtet, was geschehen würde, falls es nur einen Zähler geben würde, der den Zustand dieser Warteschlange aufzeichnet, und der in dem Port steht (wo sich die Warteschlange befindet). In der einfachsten Form würde Folgendes geschehen:
    Die Entscheidung würde in der P-Stufe getroffen, um einen Befehl an den fraglichen Port zu senden. Drei Zyklen später würde der Befehl zur C-Stufe gesendet (unter der Voraussetzung, dass es keine Annullierung gibt). Im nächsten Zyklus würde der Port den Wert des Warteschlangenzählers einstellen. Dann würde im nächsten Zyklus der Zustand des Warteschlangenzählers zurück zum Hub gesendet werden.
  • Wenn der Port einen Eintrag aus seiner Warteschlange verarbeitet hat, sendet er ein Signal zurück zum Hub in der Q-Stufe. Diese verursacht dann, dass der Zähler zwei Zyklen später in der P-Pipelinestufe inkrementiert wird. Die M-Stufe wird verwendet, um den Port-Zustand auf die zugeordneten Kanäle als ihre eigenen Kanäle abzubilden, die der Hub in der P-Pipelinestufe priorisiert.
  • Folglich besitzt der Zähler zwei Inkrementierungseingänge (einen von der Q-Pipelinestufe und einen von der P-Pipelinestufe). Er besitzt außerdem einen Dekrementierungseingang von der P-Pipelinestufe, wobei er zu folgenden inkrementalen Änderungen fähig sein muss: –1, +1 und +2. Am Port-Ende ist der Zähler selbst einfacher. Dieser Zähler wird inkrementiert, wenn er einen Befehl empfängt, der angibt, dass sich die Anzahl der verwendeten Einträge vergrößert hat (d. h. ein von null verschiedener Wert bedeutet, dass es für den Port irgendetwas zum Verarbeiten gibt), und dekrementiert, wenn der Port einen Eintrag verarbeitet, was angibt, dass sich die Anzahl der verwendeten Einträge verringert hat. Er wird nur um +1 oder –1 geändert. Wenn er dekrementiert wird, wird ein Signal an den Hub gesendet, das in der Q-Pipelinestufe ankommt.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Die vorliegende Erfindung wird nun beispielhaft unter Bezugnahme auf beispielhafte Ausführungsformen weiter beschrieben, die in der beigefügten Zeichnung veranschaulicht sind, worin:
  • 1 in einem funktionalen Blockschaltplan die grundlegenden Hauptmerkmale des Übertragungs-Controllers mit einer Hub- und Port-Architektur und die in Beziehung stehenden Funktionen veranschaulicht;
  • 2 die Kanalregister, die die Pipelines des Übertragungs-Controller-Hubs anschließen, und die Schnittstelle der Hub-Pipelines zu den externen Ports veranschaulicht;
  • 3 eine beispielhafte graphische Darstellung der Transaktions-Pipeline veranschaulicht; und
  • 4 in Form eines Blockschaltplans die Verwendung von zwei Zählern veranschaulicht, um eine gültige Warteschlange an einem entfernten Ort aufrechtzuerhalten.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Funktion des Anforderungswarteschlangen-Managers ist ein entscheidender Teil des zentralisierten Übertragungs-Controllers mit einer Hub- und Port-Architektur. Um seine verschiedenen Leistungsaspekte zu verstehen, ist es hilfreich, zuerst den Übertragungs-Controller als Ganzes zu betrachten.
  • Der Übertragungs-Controller mit einer Hub- und Port-Architektur ist für den effizienten Durchgang von Daten durch den digitalen Signalprozessorchip optimiert. 1 veranschaulicht einen Blockschaltplan der Hauptmerkmale des Übertragungs-Controllers mit Hub und Ports. Er umfasst ein System aus einem einzelnen Hub 100 und mehreren Ports 111 bis 115. Das Wesentliche des Hubs ist der Anforderungswarteschlangen-Controller 101 des Übertragungs-Controllers mit Hub und Ports, der auf die Anforderungs- und Zustandsinformationen wirkt, um die Gesamthandlungen des Übertragungs-Controllers zu leiten.
  • Der Übertragungs-Controller mit dem Hub und den Ports arbeitet im Zusammenhang mit einem Übertragungsanforderungsbus, der einen Satz von Knoten 117 besitzt, die am Eingang 103 die Übertragungsanforderungspakete hereinbringen. Diese Knoten des Anforderungsübertragungsbusses empfangen einzeln die Übertragungsanforderungspakete von den Übertragungs-Anforderungseinrichtun gen 116, die Knoten des Prozessorspeichers oder andere Funktionen auf dem Chip sind, die Daten senden und empfangen.
  • Zweitens verwendet der Übertragungs-Controller einen zusätzlichen Bus, den Datenübertragungsbus, der einen Satz von Knoten 118 besitzt, um die tatsächlichen Daten an den Anforderungseinrichtungs-Knoten 116 zu lesen oder zu schreiben. Der Datenübertragungsbus überträgt Befehle, Schreibdaten und Lesedaten von einem speziellen internen Speicher-Port 115 und schickt die Lesedaten an den Eingängen 104 über den Daten-Router 150 zum Übertragungs-Controller-Hub zurück.
  • Der Übertragungs-Controller besitzt an seinem Vorfeld-Abschnitt einen Anforderungswarteschlangen-Manager 101, der die Übertragungsanforderungen in der Form von Übertragungsanforderungspaketen an seinem Eingang 103 empfängt. Der Anforderungswarteschlangen-Manager 101 priorisiert und speichert diese und fertigt sie ab, wie es erforderlich ist.
  • Der Anforderungswarteschlangen-Manager 101 stellt innerhalb der Übertragungs-Controller-Hub-Einheit 100 eine Verbindung mit den Kanalanforderungsregistern 120 her, die die Datenübertragungs-Anforderungspakete empfangen und sie verarbeiten. In diesem Prozess priorisiert der Anforderungswarteschlangen-Manager 101 zuerst die Übertragungsanforderungspakete und ordnet sie einem der N Kanalanforderungsregister 120 zu. Jedes der N Kanalanforderungsregister 120 stellt ein Prioritätsniveau dar.
  • Falls für die direkte Verarbeitung des Übertragungsanforderungspakets kein Kanal verfügbar ist, wird es im Speicher 102 des Warteschlangen-Managers gespeichert. Der Speicher 102 des Warteschlangen-Managers ist vorzugsweise ein Schreib-Lese-Speicher (RAM). Das Übertragungsanforderungspaket wird dann zu einem späteren Zeitpunkt zugeordnet, wenn ein Kanal verfügbar wird. Die Kanalregister stellen mit der Quellen-Steuer-Pipeline 130 und der Ziel-Steuer-Pipeline 140 eine Verbindung her, die effektiv Adressenberechnungseinheiten für die Operationen der Quelle (Leseoperationen) und des Ziels (Schreiboperationen) sind.
  • Die Ausgaben aus diesen Pipelines werden durch das E/A-Untersystem 110 der Übertragungs-Controller-Ports an die M Ports gesendet. Das E/A-Untersystem 110 enthält einen Satz von Hub-Schnittstellen-Einheiten, die die M möglichen externen Port-Einheiten ansteuern. In 1 sind vier derartige externe Ports als die externen Ports 111 bis 114 gezeigt. Die externen Port-Einheiten (die außerdem als Anwendungseinheiten bezeichnet werden) werden entweder mit der Taktfrequenz des Hauptprozessors oder mit einer anderen Taktfrequenz der externen Vorrichtungen getaktet. Die Taktfrequenz der externen Vorrichtungen kann niedriger oder höher als die Taktfrequenz des Hauptprozessors sein. Falls ein Port mit seiner eigenen Frequenz arbeitet, ist die Synchronisation mit dem Kerntakt erforderlich.
  • Als ein Beispiel der Schreib/Lese-Operationen an den Ports wird ein Lesevorgang vom externen Port-Knoten 112, gefolgt von einem Schreibvorgang an den externen Port-Knoten 114 betrachtet. Zuerst adressiert die Quellpipeline den Port 112 für einen Lesevorgang. Die Daten werden durch die Daten-Router-Einheit 150 an den Übertragungs-Controller-Hub zurückgeschickt. In einem späteren Zyklus adressiert die Ziel-Steuer-Pipeline den Port 114 und schreibt die Daten in den Port 114. Die externen Ports, wie sie hier beschrieben sind, leiten keine Übertragungsanforderungen ein, sondern sie nehmen lediglich an den anderswo auf dem Chip angeforderten Lesevorgängen und Schreibvorgängen teil. Die Lese- und Schreiboperationen, die die Knoten 116 des Prozessorspeichers (die Übertragungs-Anforderungseinrichtungen) umfassen, werden als Übertragungsanforderungspakete auf dem Übertragungsanforderungsbus 117 eingeleitet. Der Warteschlangen-Manager 101 verarbeitet diese, wie oben beschrieben worden ist. In einem späteren Zyklus wird eine Ausgabe der Quellpipeline (Lesebefehl/-adresse) erzeugt, die am internen Speicher-Port in der Form eines Lesevorgangs zum Datenübertragungsbus 118 weitergeleitet wird. Dieser Befehl geht auf dem Datenübertragungsbus in einer Pipelineweise von einem Knoten zum nächsten weiter. Wenn der adressierte Prozessorknoten erreicht wird, veranlasst die Leseanforderung den Knoten des Prozessorspeichers, die Lesedaten für die Rückkehr zum Daten-Router 150 auf den Bus zu setzen. In einem späteren Zyklus leitet ein Ziel- Pipeline-Ausgang den entsprechenden Schreibbefehl und die Daten zum internen Speicher-Port und weiter zum Datenübertragungsbus für das Schreiben in den adressierten Prozessorknoten weiter.
  • Die Kanalparameterregister 105 und die Port-Parameterregister 106 halten sowohl alle notwendigen parametrischen Daten als auch die Zustandinformationen für die Pipelines des Übertragungs-Controller-Hubs, um die gegebene Übertragung zu verarbeiten. Beide Pipelines benutzen einige der gespeicherten Informationen gemeinsam. Andere Abschnitte beziehen sich spezifisch auf die eine Pipeline oder die andere.
  • Die vorliegende Anmeldung offenbart in ihrem umfassendsten Sinn ein Verfahren zum Verfolgen des Zustands eines First-in/First-out-Speichers (FIFO-Speichers), der sich entfernt oder in einem anderen Taktbereich befindet oder beides. Im Stand der Technik ist dies wie folgt ausgeführt worden. Ein FIFO besitzt ein Ausgangssignal, das angibt, wenn er irgendeine Schwelle hinsichtlich der Fülle überschritten hat, wobei dies verwendet wird, um den Überlauf des FIFO zu verhindern. Je länger es dauert, dass die Hardware, die dieses Schwellensignal verwendet, auf dieses reagiert, desto weiter entfernt vom voll gefüllten Zustand muss dieses Schwellensignal aktiviert werden. Wenn es z. B. von der Aktivierung des Schwellensignals zehn Zyklen dauert, bis keine neuen Einträge für den FIFO ankommen, dann muss das Schwellensignal aktiviert werden, wenn es wenigstens zehn unbenutzte Einträge im FIFO gibt. Sind es weniger als diese, dann gibt es ein Risiko, dass der FIFO überläuft.
  • Im Kontext des Übertragungs-Controllers würde dies wie folgt funktionieren. Es wird vorausgesetzt, dass es im Hub keinen lokalen Warteschlangenzähler gibt, sondern dass ein Voll-Merker vom Port verwendet wird, um anzugeben, ob es in Ordnung ist, weitere Befehle an diesen Port zu senden oder nicht. Die Befehlswarteschlange im Port gibt einen Voll-Merker aus, wenn sie N oder weniger unbenutzte Einträge besitzt. Infolge der Latenzzeit zwischen den Pipelinestufen (die im Folgenden beschrieben ist) können neue Befehle für die Befehlswarteschlange bis zu fünf Zyklen nach dem Voll-Merker ankommen. Deshalb würde N wenigs tens fünf betragen müssen. Dies bedeutet, dass die Befehlswarteschlange im Port wenigstens sechs Einträge tief sein müsste. Andernfalls könnten niemals Daten in sie gelegt werden.
  • Es gibt bei diesem Lösungsweg zwei Nachteile. Zuerst erfordert er, dass die Befehlswarteschlange wenigstens sechs Einträge tief ist. In der Tat sollten viele Ports, die mit dem Übertragungs-Controller verbunden sind, Befehlswarteschlangen mit weniger Einträgen als diese besitzen. Dies gilt insbesondere für Ports mit niedriger Bandbreite. Deshalb ist es ein großer Organisationsaufwand, ein Minimum von sechs Einträgen zu erfordern. Im Allgemeinen ist dies kein solches Problem, falls der FIFO in Bezug auf N groß ist, weil der Organisationsaufwand als ein Prozentsatz der Gesamtgröße des FIFO klein ist. Wenn aber die bevorzugte FIFO-Tiefe im Vergleich zu N klein ist, ist dies ein Problem. Für den Übertragungs-Controller erfordern langsame Ports, wie z. B. serielle Ports, wahrscheinlich nur einen Warteschlangeneintrag. Sogar viele Hochgeschwindigkeits-Ports erfordern nur fünf oder sechs Einträge, um den Durchsatz mit voller Bandbreite aufrechtzuerhalten. Diese würden mit dem Schema des Standes der Technik zehn oder elf Einträge umfassen müssen. Zweitens ist es eine Frage des Wirkungsgrades. Falls der FIFO einen Voll-Merker N Einträge vom voll gefüllten Zustand ausgibt, würde der FIFO nur gefüllt werden, wenn in jedem einzelnen Zyklus Daten zum FIFO gesendet werden, ganz gleich wer Daten an den FIFO sendet. Im Fall des Übertragungs-Controllers kann der Hub wählen, welche Ports zu bedienen sind. Folglich kann der Hub nicht mehrere zusammenhängende Befehle an denselben Port senden. Dies bedeutet, dass N zusätzliche Einträge der Befehlswarteschlange, die durch den Stand der Technik erforderlich sind, nicht immer verbraucht werden würden.
  • Zusammengefasst ersetzt dieses Schema die N Organisationsaufwand-Einträge im FIFO durch einen lokalen FIFO-Zustandszähler an der Quelle der FIFO-Daten. Für größere FIFOs kann der Organisationsaufwand kein Problem sein, wobei die Technik des Standes der Technik infolge ihrer Einfachheit bevorzugt sein kann.
  • Für kleine FIFO-Schemata führt diese Erfindung jedoch zu einer effizienteren Implementierung hinsichtlich der Anzahl der Gatter.
  • Die vorliegende Erfindung schafft ein effizientes Mittel, um einen Zähler zu verwenden, um einen Wert des Warteschlangen-Zählstandes an einem entfernten Ort am Ausgangsende einer mehrstufigen Pipeline aufrechtzuerhalten. Die bevorzugte Ausführungsform in dieser Anmeldung ist eine Übertragungs-Controller-Vorrichtung mit einer Hub- und Port-Architektur.
  • 2 veranschaulicht die Schnittstelle zur Grenze der Übertragungs-Controller-Hub-Einheit und insbesondere die Kanalanforderungsregister 200 bis 205, die Kanalparameterregister 105 und die Port-Parameterregister 106. Die Kanalparameterregister 105 und die Port-Parameterregister 106 speichern entscheidende Daten, z. B. hinsichtlich der Typen der Übertragungen, der Betriebsartinformationen, des Zustands und vieler anderer Informationen, die für den Übertragungsprozess entscheidend sind.
  • Die Kanalanforderungsregister leiten die in der Quellpipeline 204 verwendeten Informationen für die Erzeugung der Lese/Vorschreib-Befehle 221 weiter. Ähnlich leiten die Kanalanforderungsregister die in der Zielpipeline 205 verwendeten Informationen für die Erzeugung der Schreibbefehl/Schreibdaten-Wörter 222 weiter. Die Leseantwortdaten 223 von den Ports werden über die Daten-Router-Einheit 206 zur Zielpipeline zurückgeschickt.
  • 2 veranschaulicht außerdem die möglichen Pipelines in einer Implementierung eines Übertragungs-Controllers. In den spezifischen Implementierungen können eine oder mehrere Stufen kombiniert sein, aber die Aufgaben, die innerhalb der einzelnen Pipelinestufen abgeschlossen werden müssen, sind im Wesentlichen wie folgt.
  • Figure 00120001
    Tabelle 1
  • Der Übertragungs-Controller-Hub 100 erfordert seinen eigenen Satz von Zählern, um die Warteschlangen vollständig zu verwenden, anstatt mehrere Zyklen zu warten, die durch den Unterschied zwischen der Bereitschaft des Ports und den Aktualisierungen der Adressen/Schreib-Zähler bestimmt sind. Der Master-Zähler 251 steht in der Anfangsstufe einer Pipeline aus sechs oder mehr Stufen. Der Fern-Warteschlangenzähler 252 befindet sich am Ausgangsende der Pipeline. Die M-Stufe der Pipelines verwendet die momentanen Werte der Warteschlangenzähler und erzeugt einen neuen anhand dessen, welcher Port und welcher Typ der Operation in der P-Stufe ausgewählt worden ist. Sowohl das Warteschlangenzähler-Inkrementierungssignal von der Q-Stufe (das dort vom Port registriert wird) als auch die Inkremente von den A-Stufen, falls sie zu einer annullierten Operation führten, werden berücksichtigt. Diese Zähler werden in jedem Zyklus aktualisiert und in einer problemlosen Weise in jedem Zyklus innerhalb der Port-Parameterregister registriert.
  • Wenn die Signale von der letzten C-Pipelinestufe im Hub an den Ort der Ports gesendet werden, ist ein ganzer Taktzyklus erlaubt. Ähnlich ist ein ganzer Taktzyklus erlaubt, wenn die Signale vom Port zur anfänglichen Q-Pipelinenstufe des Hubs gesendet werden. Typischerweise besitzt eine derartige Pipeline eine Tiefe von etwa sechs Stufen.
  • Eine graphische Darstellung der Transaktionspipeline in 3 veranschaulicht das Verhalten. In 3 ist jeder Zyklus durch eine Spalte und jede Transaktion durch eine Zeile dargestellt. Die erste Transaktion sendet im Zyklus 6 einen Befehl 301, wobei die resultierende Änderung des Wertes des Warteschlangenzustands 303 im Zyklus 7 auftritt, wobei sie im Zyklus 8 zurück zum Hub 304 übertragen wird. Folglich würden die Transaktionen 2 bis einschließlich 7, die als 305 bezeichnet sind, annehmen müssen, dass der Wert des Warteschlangenzustandszählers ungültig war, wobei sie nicht in der Lage sein würden, Transaktionen zu diesem Port einzuleiten. Es würde eine Verbesserung sein, einen 'Vorbefehl' an den Port in der A0-Pipelinestufe zu senden, der angibt, dass das Senden einer Transaktion bevorsteht. Dies würde die Dinge um zwei Zyklen verbessern. Dies würde aber außerdem die Ergänzung eines Annullierungssignals in der C-Pipelinestufe erfordern, um den Vorbefehl zu stornieren, falls er annulliert wird.
  • Die bevorzugte Lösung dafür ist der Gegenstand dieser Patentanmeldung. Der Zustand der Befehlswarteschlange wird unabhängig sowohl durch den Hub als auch den Port aufrechterhalten.
  • 4 veranschaulicht die Verwendung von zwei Zählern, um eine gültige Warteschlange an einem entfernten Ort aufrechtzuerhalten. Der Hub erhält seinen Zähler in der P-Pipelinestufe als Master-Warteschlangenzähler 251 aufrecht. Der Master-Warteschlangenzähler 251 gibt die Anzahl der verfügbaren Einträge in der Warteschlange des untergebenen Ports an. Der Master-Warteschlangenzähler 251 wird auf die Anzahl der Stufen im FIFO-Puffer 410 initialisiert. Ein von null verschiedener Wert gibt an, dass der Port einen weiteren Befehl annehmen kann. Er kann in mehreren Arten eingestellt werden:
    Ist entschieden worden, eine Transaktion an den Port, auf den in der P-Pipelinestufe Bezug genommen wird, zu senden, sendet der Übertragungs-Controller-Hub 100 ein Dekrementierungssignal 401 an den Zähler 251 für den Zustand der Master-Warteschlange, der sich für den nächsten Zyklus bereitmacht. Dies verringert die gespeicherte Anzahl der verfügbaren Einträge im FIFO Puffer 410 bei einer Zuweisung neuer Daten zu dem Port. In diesem Beispiel wird die P-Pipelinestufe der nächsten Transaktion durch die P-Pipelinelogik 405 dargestellt. Dies erlaubt, dass in aufeinfolgenden Zyklen mehrere Transaktionen an denselben Port gesendet werden.
  • Der Prozess muss eine Einstellung vornehmen, falls die Transaktion annulliert wird. Eine Annullierung bewirkt, dass der Übertragungs-Controller-Hub 100 ein Inkrementierungssignal 402 an den Master-Warteschlangenzähler 251 sendet, weil der für diese Transaktion vorgesehene Eintrag nicht verwendet worden ist. Falls z. B. die erste Transaktion annulliert wird, erzeugt dies folglich ein Signal, das bewirkt, dass der Master-Warteschlangenzähler 251 in der P-Stufe der Transaktion 4 oder während des Taktes 6 (siehe 303 nach 3) inkrementiert wird. Die Annullierung der Transaktion bedeutet, dass der Eintrag innerhalb des FIFO-Puffers 410 nicht länger zugewiesen ist und erneut verwendet werden kann.
  • Wenn der Port einen Eintrag von seinem Warteschlangen-FIFO-Puffer 410 verarbeitet hat, sendet er ein Dekrementierungssignal 414 an den Fern-Warteschlangenzähler 252 innerhalb der Port-Logik. Die Port-Logik sendet außerdem ein Bestätigungsdekrementierungssignal 408 an den Übertragungs-Controller-Hub 100 in der Q-Pipelinestufe 407 zurück. Dieser sendet dann zwei Zyklen später in der P-Pipelinestufe ein Inkrementierungssignal 409 an den Master-Warteschlangenzähler 251. Die M-Pipelinestufe 411 wird verwendet, um den Port-Zustand auf die zugeordneten Kanäle als ihre eigenen Kanäle abzubilden, die der Übertragungs-Controller-Hub 100 in der P-Pipelinestufe 405 priorisiert. Folglich bedeutet die Leerung eines Eintrags vom FIFO-Puffer 410, dass ein weiterer Eintrag für die Verwendung verfügbar ist.
  • Folglich besitzt der Master-Warteschlangenzähler 251 zwei Inkrementierungseingangssignale, ein Inkrementierungssignal 409 von der Q-Pipelinestufe 407 und ein Inkrementierungssignal 402 von der C-Pipelinestufe 404. Der Master-Warteschlangenzähler 251 kann außerdem ein Dekrementierungssignal 401 von der P-Pipelinestufe 405 empfangen. Folglich muss der Master-Warteschlangenzähler 251 die folgenden inkrementalen Änderungen ausführen können: –1, +1 und +2.
  • Am Port-Ende ist der Fern-Warteschlangenzähler 252 einfacher. Der Zählstand im Fern-Warteschlangenzähler 251 ist die Anzahl der im FIFO-Puffer 410 gespeicherten Einträge. Ein von null verschiedener Wert bedeutet, dass der FIFO-Puffer 410 Daten für den Port für die Verarbeitung speichert. Der Fern-Warteschlangenzähler 252 wird auf null initialisiert. Der Fern-Warteschlangenzähler 252 empfängt ein Inkrementierungssignal 413 von den A0/A1-Pipelinestufen 412, wenn er einen Befehl empfängt, der angibt, dass sich die Anzahl der verwendeten Einträge vergrößert hat. Es wird angegeben, dass die eigentlichen Daten einen Zyklus später von der C-Pipelinestufe 404 ankommen. Der Fern-Warteschlangenzähler 252 empfängt ein Dekrementierungssignal 414, wenn der FIFO-Puffer 410 einen Eintrag an den Port ausgibt, das angibt, dass sich die Anzahl der Einträge innerhalb des FIFO-Puffers 410 verringert hat. Folglich muss sich der Fern-Warteschlangenzähler 252 nur um +1 oder –1 ändern. Wenn der Fern-Warteschlangenzähler 252 dekrementiert wird, sendet er ein Bestätigungsdekrementierungssignal 408 an den Hub in der Q-Pipelinestufe 407.
  • Unter Verwendung des durch die vorliegende Anmeldung offenbarten Systems konsultiert der Übertragungs-Controller-Hub 100 den Zähler 251 für den Zustand der Master-Warteschlange, um zu bestimmen, ob es Raum gibt, um weitere Daten an den Port zu senden. Der Master-Warteschlangenzähler 251 kann infolge der Latenzzeit beim Empfangen des Bestätigungsdekrementierungssignals 408 und des Inkrementierungssignals 409 angeben, dass weniger Raum verfügbar ist, als es tatsächlich der Fall ist. Der Master-Warteschlangenzähler 251 gibt jedoch niemals mehr Raum an, als tatsächlich verfügbar ist. Der Master-Warteschlangenzähler 251 wird bei einer Zuweisung von Daten zum Port dekrementiert, bevor sie den Port erreichen. Der Master-Warteschlangenzähler 251 wird bei Bestätigung einer Dekrementierung am Fern-Warteschlangenzähler 252 inkrementiert. Folglich kann sich der Übertragungs-Controller-Hub 100 auf dem Master-Warteschlangenzähler 251 stützen, um Entscheidungen zu treffen, ob zusätzliche Daten vom Hub-Übertragungs-Controller 100 zum Port zu senden sind. Im dynamischen Betrieb können der Master-Warteschlangenzähler 251 und der Fern-Warteschlangenzähler 252 sich unterscheidende Angaben besitzen. Der Master-Warteschlangenzähler 251 kann z. B. keinen Raum innerhalb des FIFO-Puffers 404 angeben, wenn in der Tat dieser letzte Eintrag gelesen worden ist, aber das Bestätigungsdekrementierungssignal 408, zurückzuführen auf die Latenzzeit der Übertragung, kein Inkrementierungssignal 409 verursacht hat. Es besteht jedoch die Tendenz, dass sich diese Zähler für jedes Intervall synchronisieren, wenn der Übertragungs-Controller-Hub 100 keine neuen Daten sendet. Im Ergebnis dieser Zwei-Zähler-Technik verursacht der Übertragungs-Controller-Hub 100 niemals einen Überlauf des FIFO-Puffers 410. Andererseits macht diese Zwei-Zähler-Technik besser als die Technik des Standes der Technik von der verfügbaren Bandbreite Gebrauch. Insbesondere erfordert diese Technik keine Tiefe des First-in/First-out-Puffers, die gleich der Latenzzeit der Datenübertragung ist. Diese Technik ist in Systemen mit Verzögerungen zwischen der Datenquelle und dem Datenziel und einer Fehlanpassung der maximalen Datenübertragungsraten besonders nützlich.

Claims (7)

  1. Datenübertragungsvorrichtung zum Übertragen von Daten von einer Datenquelle an ein Datenziel, mit: einem First-in/First-out-Pufferspeicher (410), der einen mit der Datenquelle verbundenen Eingang, einen mit dem Datenziel verbundenen Ausgang und eine vorgegebene Anzahl von Dateneinträgen besitzt, gekennzeichnet durch einen Master-Warteschlangenzähler (251) zum Speichern eines Master-Zählstandes, der eine Anzahl von Dateneinträgen angibt, die für die Datenablage in dem First-in/First-out-Pufferspeicher (410) verfügbar sind, wobei der Master-Warteschlangenzähler (251) mit der Datenquelle verbunden ist, um den Master-Zählstand bei einer Zuweisung von Daten in der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen, zu dekrementieren (401); einen Fern-Warteschlangenzähler (252) zum Speichern eines Fern-Zählstandes, der eine Anzahl von Dateneinträgen in dem First-in/First-out-Pufferspeicher, der momentan Daten speichert, angibt, wobei der Fern-Warteschlangenzähler (252) mit der Datenquelle verbunden ist, um den Fernzählstand bei einer Zuweisung von Daten in der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen, zu inkrementieren (413), und mit dem Datenziel verbunden ist, um den Fern-Zählstand zu dekrementieren und ein Dekrementierungsbestätigungssignal (408) zu erzeugen, wenn Daten aus dem First-in/First-out-Pufferspeicher an das Datenziel übertragen werden; und wobei der Master-Warteschlangenzähler (251) ferner mit dem Fern-Warteschlangenzähler (252) verbunden ist, um den Master-Zählstand bei Empfang des Dekrementierungsbestätigungssignals (408) zu inkrementieren.
  2. Datenübertragungsvorrichtung nach Anspruch 1, bei der: der Master-Warteschlangenzähler auf die vorgegebene Anzahl von Dateneinträgen des First-in/First-out-Pufferspeichers initialisiert wird; und der Fern-Warteschlangenzähler bei null initialisiert wird.
  3. Datenübertragungsvorrichtung nach Anspruch 1 oder 2, bei der: die Datenquelle Daten an den First-in/First-out-Pufferspeicher nur zuweisen kann, wenn der Master-Warteschlangenzähler eine von null verschiedene Anzahl von für die Datenablage in dem First-in/First-out-Pufferspeicher verfügbaren Einträgen angibt; und das Datenziel den First-in/First-out-Pufferspeicher nur liest, falls der Fern-Warteschlangenzähler von null verschieden ist.
  4. Datenübertragungsvorrichtung nach einem der Ansprüche 1 bis 3, bei der: die Datenquelle die Zuweisung von Daten der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen, wahlweise annullieren kann, wobei die Datenquelle bei Annullierung der Daten ein Annullierungsinkrementierungssignal erzeugt; und die Master-Warteschlange ferner mit der Datenquelle verbunden ist, um den Master-Zählstand bei Empfang des Annullierungsinkrementierungssignals zu inkrementieren.
  5. Verfahren zum Übertragen von Daten von einer Datenquelle an ein Datenziel, das die folgenden Schritte umfasst: Halten eines Master-Zählstandes (251), der eine Anzahl von Dateneinträgen angibt, die für die Datenablage in dem First-in/First-out-Pufferspeicher (410) verfügbar sind; Zuweisen von Daten von der Datenquelle an den First-in/First-out-Pufferspeicher nur dann, wenn der Master-Zählstand von null verschieden ist; Dekrementieren (401) des Master-Zählstandes bei Zuweisung von Daten der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen; Halten eines Fern-Zählstandes (252), der eine Anzahl von Dateneinträgen in dem First-in/First-out-Pufferspeicher, der momentan Daten speichert, angibt; Inkrementieren (413) des Fern-Zählstandes bei Zuweisung von Daten in der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen; Übertragen von Daten von dem First-in/First-out-Pufferspeicher an das Datenziel nur dann, wenn der Fern-Zählstand von null verschieden ist; Dekrementieren (414) des Fern-Zählstandes bei einer Übertragung von Daten von dem First-in/First-out-Pufferspeicher an das Datenziel; Inkrementieren des Master-Zählstandes bei einer Bestätigung der Dekrementierung (408) des Fern-Zählstandes.
  6. Verfahren zum Übertragen von Daten nach Anspruch 5, das ferner die folgenden Schritte umfasst: Initialisieren des Master-Zählstandes auf die Anzahl von Dateneinträgen des First-in/First-out-Pufferspeichers; und Initialisieren des Fern-Warteschlangenzählers auf null.
  7. Verfahren zum Übertragen von Daten nach Anspruch 5 oder nach Anspruch 6, bei dem: die Zuweisung von Daten der Datenquelle, die in dem First-in/First-out-Pufferspeicher gespeichert werden sollen, wahlweise annulliert wird; und der Master-Zählstand bei einer Annullierung der Zuweisung von Daten inkrementiert wird.
DE60022186T 2000-08-17 2000-08-17 Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports Expired - Lifetime DE60022186T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP00307033A EP1182543B1 (de) 2000-08-17 2000-08-17 Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports

Publications (2)

Publication Number Publication Date
DE60022186D1 DE60022186D1 (de) 2005-09-29
DE60022186T2 true DE60022186T2 (de) 2006-06-08

Family

ID=8173194

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60022186T Expired - Lifetime DE60022186T2 (de) 2000-08-17 2000-08-17 Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports

Country Status (4)

Country Link
US (1) US6892253B2 (de)
EP (1) EP1182543B1 (de)
AT (1) ATE302969T1 (de)
DE (1) DE60022186T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003232A2 (en) * 2001-06-29 2003-01-09 Koninklijke Philips Electronics N.V. Data processing apparatus and a method of synchronizing a first and a second processing means in a data processing apparatus
JP2005509943A (ja) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ セマフォを使用する効率的なfifo通信
CN100437466C (zh) * 2002-06-07 2008-11-26 Nxp股份有限公司 向/从fifo存储器读取/写入数据单元的设备和方法
US6970962B2 (en) * 2003-05-19 2005-11-29 International Business Machines Corporation Transfer request pipeline throttling
US7454538B2 (en) * 2005-05-11 2008-11-18 Qualcomm Incorporated Latency insensitive FIFO signaling protocol
US7673076B2 (en) * 2005-05-13 2010-03-02 Texas Instruments Incorporated Concurrent read response acknowledge enhanced direct memory access unit
US20090216960A1 (en) * 2008-02-27 2009-08-27 Brian David Allison Multi Port Memory Controller Queuing
US20090216959A1 (en) * 2008-02-27 2009-08-27 Brian David Allison Multi Port Memory Controller Queuing
EP2294767A2 (de) * 2008-04-09 2011-03-16 Nxp B.V. Elektronische vorrichtung und verfahren zum steuern einer elektronischen vorrichtung

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258418A (en) * 1978-12-28 1981-03-24 International Business Machines Corporation Variable capacity data buffer system
DE3374256D1 (en) * 1983-07-28 1987-12-03 Ibm Shift register arrangement and data transmission system comprising such an arrangement
US4833651A (en) * 1986-07-24 1989-05-23 National Semiconductor Corporation High-speed, asynchronous, No-Fall-Through, first-in-first out memory with high data integrity
EP0394599B1 (de) * 1989-04-28 1994-07-20 International Business Machines Corporation Synchronisierschaltung für Datenüberträge zwischen zwei mit unterschiedlicher Geschwindigkeit arbeitenden Geräten
GB9024084D0 (en) * 1990-11-06 1990-12-19 Int Computers Ltd First-in-first-out buffer
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5644787A (en) * 1993-08-03 1997-07-01 Seiko Epson Corporation Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
KR100251950B1 (ko) * 1997-06-26 2000-04-15 윤종용 데이타 저장장치의 버퍼 룸 로직과 그 제어방법
US6055285A (en) * 1997-11-17 2000-04-25 Qlogic Corporation Synchronization circuit for transferring pointer between two asynchronous circuits
US5884101A (en) * 1998-04-17 1999-03-16 I-Cube, Inc. Apparatus for detecting data buffer faults
JP2000031997A (ja) * 1998-07-15 2000-01-28 Fujitsu Ltd 帯域管理装置及びその方法
US6397273B2 (en) * 1998-12-18 2002-05-28 Emc Corporation System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US6349372B1 (en) * 1999-05-19 2002-02-19 International Business Machines Corporation Virtual uncompressed cache for compressed main memory

Also Published As

Publication number Publication date
US20020120796A1 (en) 2002-08-29
ATE302969T1 (de) 2005-09-15
EP1182543A1 (de) 2002-02-27
DE60022186D1 (de) 2005-09-29
US6892253B2 (en) 2005-05-10
EP1182543B1 (de) 2005-08-24

Similar Documents

Publication Publication Date Title
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE3850881T2 (de) Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE60217221T2 (de) Ein-Chip System zur Paketverarbeitung
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE60207210T2 (de) System mit Schnittstellen, einem Schalter und einer Speicherbrücke mit cc-numa (cache-coherent non-uniform memory access)
DE69025713T2 (de) Dynamische Fensterbestimmung in einem Datennetzwerk
DE60204213T2 (de) Level 2 Cache mit lokaler Beibehaltung von Kohärenzblöcken
DE60030767T2 (de) Datenzuweisung zu threads in einem multi-threaded netzwerkprozessor
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE69838387T2 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
DE60203469T2 (de) System mit Schnittstellen und einem Schalter für die Trennung von kohärentem und nichtkohärentem Datenpaketverkehr
DE60115795T2 (de) Adaptiver Wiederholungsmechanismus
DE19983026B4 (de) Brücke zwischen zwei Bussen mit einem Puffer mit einer einstellbaren Mindestspeicherraummenge für ein Akzeptieren einer Schreibanforderung und Verfahren hierzu
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE3586245T2 (de) Bildverarbeitungsgeraet und interkommunikationsbus dafuer.
DE60205231T2 (de) Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor
EP0893755B1 (de) Pufferspeicheranordnung
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE3853162T2 (de) Gemeinsamer intelligenter Speicher für die gegenseitige Verbindung von verteilten Mikroprozessoren.
DE112012004551T5 (de) Mehrkernverknüpfung in einem Netzprozessor
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition