DE69133569T2 - Netzschnittstelle - Google Patents

Netzschnittstelle Download PDF

Info

Publication number
DE69133569T2
DE69133569T2 DE69133569T DE69133569T DE69133569T2 DE 69133569 T2 DE69133569 T2 DE 69133569T2 DE 69133569 T DE69133569 T DE 69133569T DE 69133569 T DE69133569 T DE 69133569T DE 69133569 T2 DE69133569 T2 DE 69133569T2
Authority
DE
Germany
Prior art keywords
data
memory
block
receive
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
DE69133569T
Other languages
English (en)
Other versions
DE69133569D1 (de
Inventor
Farzin Cupertino Firoozmand
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.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE69133569D1 publication Critical patent/DE69133569D1/de
Application granted granted Critical
Publication of DE69133569T2 publication Critical patent/DE69133569T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/521Static queue service slot or fixed bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S370/00Multiplex communications
    • Y10S370/901Wide area network
    • Y10S370/902Packet switching
    • Y10S370/903Osi compliant network
    • Y10S370/906Fiber data distribution interface, FDDI

Description

  • Diese Erfindung betrifft im Allgemeinen Netzwerkadapter, die bei der Datenverarbeitung in Nahbereichsnetzwerken und Weitbereichsnetzwerken und zum Verwalten der Speicherung und des Abrufens von Datenblöcken in und aus mehreren Speichern, etwa von Knoten und Host-Prozessorspeichern, innerhalb eines Netzwerkes verwendet werden können. Eine Anwendung der Erfindung ist eine Glasfaserverteilungsdatenschnittstelle (FDDI).
  • Diese Anmeldung betrifft auch unsere folgenden anhängigen Anmeldungen, die am 29. Mai 1990 eingereicht wurden:
    • 1) US-Patentanmeldung Nr. 07/529,364 (europäische Patentanmeldung A-0459 753)
    • 2) US-Patentanmeldung Nr. 07/529,363 (europäische Patentanmeldung A-0459 758)
    • 3) US-Patentanmeldung Nr. 07/529,365 (europäische Patentanmeldung A-0459 756)
    • 4) US-Patentanmeldung Nr. 07/529,366 (europäische Patentanmeldung A-0459 757)
  • Die Rate des Datendurchsatzes eines Speicherverwaltungssystems ist durch die Anzahl der Schritte zum Kopieren von Daten in und aus einem Speichersystem begrenzt, das in einem Datenbus enthalten ist, der in einem Netzwerk aus Prozessoren vorgesehen sein kann. Ein Aspekt dieser Erfindung betrifft das Einrichten von Sende- und Empfangsdeskriptoren, die die Datenverarbeitungseffizienz eines Systemsspeichers mit mindestens zwei getrennten Speichern optimieren. Daten mit einem unterschiedlichen Grad an Priorität oder anderen Eigenschaften werden auf dem Bus empfangen, um diese in dem Speicher abzulegen, oder diese werden aus dem Speicher für das Weitersenden erhalten. Der Systemspeicher kann einen Knoten und Host- bzw. Leitrechner-Speicher eines Nahbereichsnetzwerkes oder eines Weitbereichsnetzwerkes aufweisen.
  • Beispielsweise wird die Erfindung unter Bezugnahme auf eine verteilte Faserdatenschnittstelle (FDDI) dargestellt, die in den zuvor angegebenen anhängigen Anmeldungen beschrieben ist. Da die hierin gelehrten Prinzipien jedoch in breiter Weise auf Speicherverwaltungssysteme anwendbar sind, ist die Erfindung nicht auf die hierin beschriebene Betriebsumgebung eingeschränkt.
  • In Datenverarbeitungssystemen, in denen Pakete aus Daten gehandhabt werden, die in Blöcken bzw. Datenrahmen angeordnet sind (ein Paket oder eine Sequenz aus Daten mit gewissen einrahmenden oder die interne Verwaltung betreffenden" Bits ist definiert als ein „Rahmen" bzw. „Block"; Daten, die in Form von Rahmen- bzw. Blöcken gesendet werden, werden als „Rahmendaten bzw. Blockdaten" bezeichnet), gibt es häufig das Erfordernis, Datenblöcke zwischen einem System an einer Stelle und einem System an einer anderen Stelle in einem Netzwerk zu übertragen. Die Datenblöcke können in Reihen angeordnet werden, die den gleichen oder einen unterschiedlichen Grad an Priorität repräsentieren. Eine Schnittstellenschaltung, die zwischen einem lokalen System und einem Netzwerk angeordnet ist, und die als eine „Netzwerksteuerung" bezeichnet wird, verwaltet den Datenfluss zwischen dem System und dem Netzwerk. Dies beinhaltet das Zwischenspeichern der Daten, um Laufzeitunterschiede zwischen dem System und dem Netzwerk zu kompensieren, das Bereitstellen einer notwendigen Protokollumwandlung und das Ausführen der „internen Verwaltung" durch Hinzufügen von Bits zu oder durch das Wegnehmen von Bits aus den Daten, die die Steuerung durchlaufen. Es sind diverse Arten von Netzwerksteuerungsarchitekturen auf der Grundlage des verwendeten Netzwerkbetriebssystems und auf Grundlage anderer Kriterien eingerichtet.
  • Beispielsweise gibt es in einem Netzwerk, wie es in der anhängigen EP-A-0459 753 beschrieben ist, eine Netzwerksteuerung mit einer Busleitarchitektur bzw. Busmasterarchitektur, wobei Warteschlangen aus Blockdaten von Puffern, die in einem Systemspeicher eingerichtet sind, zu entsprechenden Bereichen übertragen werden, die durch logische FIFO's in einem Ausgabepuffer zum Übertragen an ein Netzwerk gebildet sind. Zwischen dem Systemspeicher und dem Ausgabepuffer liegt ein physikalischer FIFO mit einer bestimmten Speicherkapazität, beispielsweise 32 Bytes, um die Blockdaten temporär auf dem Weg zum Ausgabepuffer zu speichern. Ein Zweck des physikalischen FIFO's besteht darin, eine Zwischenspeicherung der Daten bereitzustellen, wie sie entsprechend den Unterschieden in den Taktraten des Systemtaktgebers und des Netzwerktaktgebers erforderlich sind. In der anhängigen EP-A-0 454 758 werden in Reaktion auf eine Anforderung zum Übertragen an das Netzwerk beim Erhalt einer „Berechtigungsmarke bzw. eines Belegungsbits" in dem Netzwerk und unter der Annahme, dass Daten für das Übertragen verfügbar sind, Daten von dem Systemspeicher als Pakete nacheinander zu dem Sende-FIFO übertragen, und anschließend von dem Sende-FIFO zu dem Netzwerk, während noch Daten aus dem Netzwerk eintreffen. Dies ermöglicht es, dass der FIFO an das Netzwerk Daten überträgt, bevor ein vollständiger Block bzw. Rahmen empfangen wird. Die auf diese Weise übertragenen Datenblöcke werden in entsprechenden Warteschlangen gespeichert, die durch die in dem Ausgabepuffer gebildeten logischen FIFO's gebildet sind.
  • Es werden Daten in der Reihenfolge der Priorität beginnend mit der höchsten Priorität übertragen, bis keine weiteren Daten mit der gleichen Priorität für das Übertragen verfügbar sind, oder bis die noch nicht abgelaufene Aufbewahrzeit für die Berechtigungsmarke (THT) während des Empfangs der Berechtigungsmarke kleiner ist als ein Schwellwert für diese Priorität. Details über dieses Protokoll sind in der anhängigen EP-A-0459 756 angegeben.
  • Nach jeder Übertragung von Datenblöcken aus dem Systemspeicher über den physikalischen FIFO zu dem Ausgabepuffer muss eine Entscheidung getroffen werden, um weitere Daten mit der gleichen Priorität an den physikalischen FIFO zu übertragen, die nachfolgend zu der gleichen Warteschlange des Ausgabepuffers zu übertragen sind, oder um Daten mit einer anderen Priorität über den physikalischen FIFO zu einer weiteren Ausgabepufferwarteschlange zu übertragen, wenn weitere Daten verfügbar sind. Die anhängige EP-A-0459 757 beschreibt eine Einrichtung, um ein „Verriegeln" des FIFO's zu verhindern. Das Verriegeln tritt ein, wenn die Größe des verbleibenden Speicherbereichs, der in dem logischen FIFO verfügbar ist, der eine spezielle Warteschlange enthält, in die gerade geschrieben ist, kleiner ist als die Speicherkapazität des physikalischen FIFO's. Unter dieser Bedingung kann der physikalische FIFO Daten nicht an dem logischen FIFO in dem Puffer weitergeben.
  • Ein System in der Art, auf die ein Aspekt der Erfindung besonders vorteilhaft anwendbar ist, umfasst nicht nur einen Host- bzw. Leitprozessor, sondern auch einen Prozessorknoten, wobei dieses jeweils einen eigenen zugeordneten Speicher aufweisen. Diese Architektur ist vorteilhaft, da der Knotenprozessor den Host-Prozessor von Kommunikationsaufgaben, die bei der Protokollpaketübertragung auftreten, entbindet. Beispielsweise können Protokollkopfbereiche in dem Knotenprozessorspeicher verarbeitet werden, während Daten direkt an den Ausgabepuffer übertragen oder davon empfangen werden, und diese Kopfbereiche können später einem Paket für das Übertragen hinzugefügt werden. Die Rate des Datendurchsatzes wird erhöht, indem die Notwendigkeit aufgehoben wird, zwei Schritte für das Kopieren von Daten für jeden Speichertransfer auszuführen.
  • Die anhängigen Anmeldungen verwenden sogenannte Sende- und Empfangs-„Deskriptoren", die Bits für Information enthalten, die den Status, die Länge und den Adressenzeiger jedes der Pufferbereiche definiert, die in dem Systemspeicher ausgebildet sind. Für einen ersten „Zuerst-hinein-zuerst-heraus"-(FIFO)Speicher, wobei der Speicherplatz im Anschluss an die letzte Speicherposition des FIFO's zu der ersten Speicherstelle zurückführt, nehmen die Deskriptoren die Form eines Ringes an. Somit wird ein Deskriptor dieser Art als ein „Deskriptorring" bezeichnet. Es wird eine effiziente Pufferverwaltung innerhalb eines Systems mit mehreren Systemspeichern beschrieben, wobei Blöcke oder Pakete aus Daten in Pufferbereichen gespeichert werden, auf die durch mehrere Deskriptorringe gezeigt wird. Deskriptorringe verwalten Datenpakete oder Datenblöcke, die durch einen Kopfbereich sowie durch Datenbereiche gekennzeichnet sind. Für gewöhnlich können der Kopfbereich und die Datenbereiche des Blocks voneinander nicht in effizienter Weise getrennt werden, da die zwei Bereiche als nicht miteinander korreliert auftreten, oder da diese die zwischen den Pufferspeichern bestehende „Synchronität" verlieren.
  • Es wird ein System beschrieben, das den Speicherbereich von Blockdaten mit einem Kopfbereich und Datenbereichen optimiert, wobei gleichzeitig die Synchronität zwischen Datenblöcken und ihren entsprechenden Kopfbereichen bewahrt bleibt.
  • In einer Netzwerksteuerung der beschriebenen Art besitzt ein Empfangsdatenweg, der zu dem Systemspeicher über einen einzelnen physikalischen FIFO-Speicher führt, die Tendenz, unter gewissen Umständen blockiert zu werden. Wenn beispielsweise der Empfangs-Deskriptorring voll ist oder ein Paritätsfehler auftritt, werden nachfolgende Pakete, die für einen Deskriptorring in den Empfangsweg über den FIFO bestimmt sind, blockiert. Obwohl die nachfolgenden Pakete in Empfangswarteschlangen in dem Ausgabepuffer gespeichert werden, bis die Ursache der Blockade aufgehoben ist, wird der Ring erneut blockiert, wenn der Puffer seine begrenzte Speicherkapazität erreicht.
  • Computerkommunikationsreview, Band 18, Nr. 4, August 1988, New York, US-Seiten 175–187, H. Kanakia et al. „Das VMP-Netzwerkadapter-Board" (NAB), hochleistungsfähige Netzwerkkommunikation für Multiprozessoren" offenbart eine DMA-Steuerung mit einem Pufferspeicher unter Anwendung von RAM-Komponenten mit statischen Spalten mit Zweifachanschluss bzw. Dualport. Der Pufferspeicher stellt mehrerer Puffer bereit, um Pakete zu halten und zu verarbeiten, während ein Paket empfangen oder gesendet wird. Details im Hinblick auf eine Netzwerksteuerung sind nicht angegeben.
  • Dobinson, Konigsfeld und Szpak beschreiben eine Anordnung zur Anwendung in Ethernetz-Nahbereichsnetzwerken unter Anwendung von VLSI-Protokollchips. Es wird ein AMD-Lance-Chip beschrieben, in welchem ein chipinterner DMA eine autonome Übertragung von Daten zu und Empfang von externen Puffern ermöglicht. Seite 179 beschreibt die Pufferverwaltung der Block-Deskriptoren.
  • Computerdesign 23 (1984), Februar Nr. 2, Winchester, Massachusetts, USA, „Steuerung und Mikro-Verbundsystem für intelligente Ethernet-Knoten", von James A. Fontaine, beschreibt den AMD-Lance-Chip. Der Lance-Chip ist ferner in Elektronikdesign, 14. Oktober, 1992, Seite 193 bis 200 „Lokale Netzwerke" von Sunill P. Joshi beschrieben.
  • Gemäß einem ersten Aspekt stellt die Erfindung eine Netzwerksteuerung für einen Netzwerkadapter bereit, wobei vorgesehen sind: mehrere Prozessoren und mindestens ein erster und ein zweiter Speicher zum Speichern von Daten, die in Blöcken angeordnet sind, wobei die Datenblöcke eine eine Blockeigenschaft kennzeichnende Information enthalten, wobei die Netzwerksteuerung einen FIFO-Speicher, einen Empfangsweg mit einem FIFO-Speicher und den ersten und den zweiten Speicher aufweist und ferner Mittel aufweist, um Empfangsblöcke zu speichern, die über den Empfangsdatenweg bei einem Entschlüsselungsring entsprechend der Blockeigenschaft eintreffen,
    eine Einrichtung zum Bilden mehrerer Puffer an beliebigen Positionen in dem ersten und dem zweiten Speicher; und
    eine Einrichtung zum Bilden in willkürlicher Weise in dem ersten und dem zweiten Speicher von Deskriptoren an zusammenhängenden Bereichen, um mehrere Deskriptorringe, die auf die Puffer zeigen, zu bilden;
    wobei die Deskriptoren jedes Ringes auf den ersten oder den zweiten Speicher zeigen und
    eine Einrichtung zum Erkennen eines blockierten Empfangsringes und, in Reaktion darauf, zum Verwerfen nachfolgender Datenblöcke, die für den blockierten Deskriptorring eintreffen.
  • Vorzugsweise weisen die Deskriptoren jedes Ringes jeweils ein Kennzeichen auf, das auf den ersten oder den zweiten Speicher zeigt, und wobei jeder Datenblock ein Blocksteuerfeld mit Daten enthält, die eine Blocksteuercodierung repräsentieren, und wobei ein spezieller Ring aus den mehreren Deskriptorringen zum Speichern eines Empfangsblockes entsprechend dem Inhalt des Blocksteuerfeldes des Empfangsblockes ausgewählt wird.
  • Die Erfindung stellt auch eine derartige Netzwerksteuerung für ein Netzwerk mit verteilter Faserdigitalschnittstelle (FDDI) mit Host- und Knotenprozessoren bereit, die entsprechend einen ersten Speicher und einen zweiten Speicher zum Speichern von in Blöcken angeordneten Daten aufweisen, wobei jeder Block ein Blocksteuerfeld aufweist; des weiteren ist eine Einrichtung zum Auswählen eines Ringes zum Speichern eines Empfangsblockes entsprechend dem Inhalt des Blocksteuerfeldes des empfangenen Blockes vorgesehen. Vorzugsweise besitzen die Puffer in dem ersten und dem zweiten Speicher jeweils eine erste und eine zweite Länge;
    eine Einrichtung zum Speichern erster Deskriptoren an zusammenhängenden Speicherplätzen, die einen erste Deskriptorring in dem ersten Speicher bilden, und auf die Puffer zum Speichern eines ersten empfangenen Anteils jedes Blockes aus empfangenen Daten in jedem des ersten und des zweiten Speichers zeigen; und
    eine Einrichtung zum Speichern zweiter Datendeskriptoren an zusammenhängenden Speicherplätzen, die einen zweiten Deskriptorring in dem zweiten Speicher bilden, der auf die Puffer zeigt, die nachfolgend empfangene Bereiche jedes Empfangsblocks in dem entsprechenden ersten und zweiten Speicher enthalten.
  • Vorzugsweise ist jeder Deskriptorring mit den zugehörigen Puffern in dem gleichen Speicher angeordnet. Es können Mittel vorgesehen sein, um Daten eines gemeinsamen Blockes, der unterschiedlichen Deskriptorringen zugeführt wird, zu korrelieren.
  • Die Korreliereinrichtung kann ferner eine Blockzahl in jedem Block der empfangenen Daten enthalten.
  • Vorzugsweise besitzt jeder Block einen Kopfbereich und einen Datenbereich mit:
    einer Einrichtung zum Speichern von Kopfbereichdeskriptoren an zusammenhängenden Speicherplätzen, die einen Kopfbereichsdeskriptorring in dem ersten Speicher bilden, wobei auf Puffer gezeigt wird, die Kopfbereiche von Empfangdaten in dem ersten oder dem zweiten Speicher enthalten,
    einer Einrichtung zum Einrichten von Datendeskriptoren an zusammenhängenden Speicherplätzen, die einen Datendeskriptorring in dem zweiten Speicher bilden, der auf Puffer zeigt, die Empfangsdaten in dem ersten oder dem zweiten Speicher enthalten, wobei jeder Puffer mindestens einen Teil der Empfangsdaten innerhalb eines Blockes speichert.
  • Vorzugsweise enthalten die Blöcke Information zum Kennzeichnen einer Blockeigenschaft, wobei die Netzwerksteuerung aufweist:
    einen FIFO-Speicher;
    einen Empfangsdatenweg mit dem FIFO-Speicher und den Speichereinrichtungen;
    eine Einrichtung zum Speichern von Empfangsblöcken, die auf dem Empfangsdatenweg zu einem Deskriptorring gelangen, der der ersten Blockeigenschaft entspricht; und
    eine Einrichtung zum Erkennen eines blockierten Empfangsringes und in Reaktion darauf zum Verwerfen nachfolgender Blöcke, die zu dem blockierten Deskriptorring zugeführt werden.
  • Die Netzwerksteuerung kann ferner umfassen:
    eine Einrichtung zum Empfangen eintreffender Datenpakete, wobei jedes Paket Daten enthält, die einen Deskriptor kennzeichnen, der auf einen entsprechenden Puffer zeigt, und wobei die Einrichtung ferner zum Weiterleiten der Pakete durch einen Pufferspeicher zu dem Speicher ausgebildet ist;
    eine Einrichtung zum Speichern des eintreffenden Datenpaketes in dem Puffer, auf den von dem zugeordneten Deskriptor gezeigt wird;
    eine Einrichtung zum Erkennen eines blockierten Rings;
    eine erste Einrichtung, die auf einen erkannten blockierten Ring und auf einen normalen Steuerungsmodus der Netzwerksteuerung zum Speichern nachfolgender Pakete, die für den Pufferspeicher eintreffen, reagiert; und
    eine zweite Einrichtung, die auf den erkannten blockierten Ring und einen Steuerungsmodus zum Verwerfen in der Netzwerksteuerung reagiert, um nachfolgende eintreffende Pakete zu verwerfen.
  • Gemäß einem weiteren Aspekt stellt die Erfindung ein Verfahren bereit zum Steuern eines Empfangsdatenflusses für einen Netzwerkadapter mit mehreren Prozessoren und Speichereinrichtungen zum Speichern von Paketen von Empfangsdaten, die in Blöcken angeordnet sind, die Information zur Kennzeichnung einer Blockeigenschaft enthalten, einem FIFO-Speicher und einem Empfangsdatenflusspfad durch den FIFO-Speicher zu der Speichereinrichtung, einer Einrichtung zum Einrichten mehrerer Empfangspuffer an beliebigen Positionen in der Speichereinrichtung und zum Einrichten von Deskriptoren an zusammenhängenden Speicherplätzen der Speichereinrichtung, die Deskriptorringe bilden, die auf die Empfangspuffer zeigen, und eine Einrichtung zum Zuführen von Empfangsblöcken, die über den Empfangdatenweg eintreffen, zu einem Deskriptorring, der der Blockeigenschaft entspricht, wobei das Verfahren zum Steuern des Empfangsdatenflusses die Schritte umfasst:
    Erkennen eines blockierten Deskriptorringes in dem Empfangsdatenflussweg und in Reaktion darauf,
    Verwerfen nachfolgender Blöcke, die den blockierten Deskriptorring zugeführt werden.
  • Wenn der Netzwerkadapter wahlweise in einem Normalmodus und einem Modus zum Verwerfen betrieben wird, umfasst das Verfahren zum Steuern des Empfangsdatenflusses vorzugsweise die Schritte:
    in Reaktion auf einen erkannten blockierten Ring und auf die normale Betriebsweise des Adapters, Speichern nachfolgender Pakete, die dem Adapter zugeführt werden, in dem Pufferspeicher; und
    in Reaktion auf das Erkennen eines blockierten Ringes und auf den Betriebmodus zum Verwerfen des Adapters, Verwerfen nachfolgender Pakete, die dem Adapter zugeführt werden.
  • Gemäß einem weiteren Aspekt stellt die Erfindung ein Verfahren zum Verarbeiten von Empfangsblöcken für ein Netzwerk mit verteilter Faserdigitalschnittstelle (FDDI) mit Host- und Knotenprozessoren mit jeweils einem ersten und einem zweiten Speicher zum Speichern von Daten, die in Blöcken angeordnet sind, bereit, wobei die Blöcke jeweils ein Blocksteuerfeld enthalten, und wobei das Verfahren zum Verarbeiten der Empfangsblöcke die Schritte umfasst:
    Einrichten mehrerer Puffer an beliebigen Speicherplätzen in dem ersten und dem zweiten Speicher;
    Einrichten in beliebiger Weise von Deskriptoren in dem ersten und dem zweiten Speicher an zusammenhängenden Speicherplätzen, um Deskriptorringe zu bilden, die auf die Puffer zeigen; und
    Auswählen eines Rings zum Speichern eines Empfangsblockes gemäß dem Inhalt des Blocksteuerfeldes des Empfangsblocks.
  • Gemäß einem weiteren Aspekt stellt die Erfindung ein Verfahren zum Verarbeiten von Empfangsblöcken für einen Netzwerkadapter mit mehreren Prozessoren und mindestens einem ersten Speicher und einem zweiten Speicher zum Speichern von empfangenen Daten, die in Blöcken angeordnet sind, in Puffern bereit, wobei das Verfahren zum Verarbeiten von Empfangsblöcken die Schritte umfasst:
    Speichern mehrerer Puffer an beliebigen Speicherplätzen in dem ersten und dem zweiten Speicher;
    Einrichten erster Deskriptoren an zusammenhängenden Speicherplätzen, um einen ersten Deskriptorring in dem ersten Speicher zu bilden, der auf Puffer zum Speichern eines ersten empfangenen Bereichs jedes Blockes aus Empfangsdaten in dem ersten oder dem zweiten Speicher zeigt; und
    Einrichten von zweiten Datendeskriptoren an zusammenhängenden Speicherplätzen, um einen zweiten Deskriptorring in dem zweiten Speicher zu bilden, der Puffer mit nachfolgend empfangenen Bereichen jedes Empfangsblockes in dem ersten oder dem zweiten Speicher enthält.
  • Vorzugsweise besitzen der erste und der zweite Speicher entsprechend eine erste und eine zweite Länge, wobei die erste Länge kleiner als die zweite Länge ist.
  • Vorzugsweise sind die ersten Deskriptoren Kopfdeskriptoren und die zweiten Deskriptoren Datendeskriptoren.
  • Gemäß einem weiteren Aspekt stellt die Erfindung ein Verfahren zum Verarbeiten von Blöcken aus empfangenen Daten für einen Netzwerkadapter mit mehreren Prozessoren und einem ersten und einem zweiten Speicher zum Speichern von in Blöcken angeordneten Daten bereit, wobei das Verfahren zum Verarbeiten von Blöcken aus Empfangsdaten die Schritte umfasst:
    Einrichten mehrerer Puffer an beliebigen Speicherplätzen in dem ersten und dem zweiten Speicher; und
    Einrichten in beliebiger Weise von Deskriptoren in dem ersten Speicher und dem zweiten Speicher an zusammenhängenden Speicherplätzen zur Bildung mehrerer Deskriptorringe, die auf die Puffer zeigen;
    wobei die Deskriptoren jedes Ringes jeweils ein Erkennungsmerkmal aufweisen, das auf einen oder den anderen des ersten oder des zweiten Speichers verweist;
    Erkennen von Informationscodierungssignalen in eintreffenden Blöcken von Empfangsdaten;
    Korrelieren jedes Informationskodierungssignals mit einem speziellen Deskriptorring; und
    Speichern jedes eintreffenden Blocks aus Empfangsdaten in einem Puffer, auf den der spezielle Deskriptorring zeigt.
  • Das erfindungsgemäße Verfahren und die Vorrichtung werden vorteilhafterweise auf eine FDDI-Netzwerkschnittstelle angewendet, obwohl die hierin gelehrten Prinzipien auch den allgemeinerer Weise auf die Pufferspeicherverwaltung angewendet werden können.
  • Weitere Aufgaben und Vorteile der vorliegenden Erfindung werden für den Fachmann unter Zuhilfenahme der folgenden detaillierten Beschreibung offenkundig, wobei lediglich die bevorzugte Ausführungsform der Erfindung hierin gezeigt und beschriebenen ist, indem einfach die Art und Weise dargestellt wird, die gegenwärtig als die beste Art zum Ausführen der Erfindung erachtet wird. Man erkennt, dass die Erfindung in anderen und unterschiedlichen Ausführungsformen praktiziert werden kann und dass diverse Details in zahlreicher Hinsicht Modifizierungen unterliegen können, ohne damit von dem Schutzbereich der Erfindung abzuweichen. Daher sind die Beschreibung und die Zeichnungen anschaulich und nicht als einschränkend zu bewerten.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine Blockansicht einer typischen Implementierung eines FDDI-Netzwerkes, wie es im Stand der Technik her bekannt ist.
  • 2 ist eine Ansicht, die das Format eines FDDI-Pakets zeigt.
  • 3(a) und 3(b) sind Ansichten, die die Funktion der MAC-Unterschicht in FDDI-Spezifikationen zeigen.
  • 4 ist eine Blockansicht einer Implementierung der Netzwerkschnittstelle (separater Knotenrechner und Host- bzw. Leitrechner).
  • 5 ist eine detailliertere Ansicht der Mediumszugriffssteuerung, die in 4 gezeigt ist.
  • 6 ist eine Ansicht, die den Datenfluss darstellt, der zwischen den Elementen der Netzwerkschnittstelle auftritt.
  • 7 ist eine Ansicht, die die Organisation des Pufferspeichers in Warteschlangen zeigt, die in der Netzwerkschnittstelle eingerichtet sind.
  • 8 ist eine detailliertere Ansicht der Netzwerk-DMA-Steuerung in der Netzwerkschnittstellenarchitektur, die in 4 gezeigt ist.
  • 9 ist eine Ansicht, die eine Pufferspeichersendewarteschlange zeigt.
  • 10 ist ein verallgemeinertes Flussdiagramm, das zeigt, wie Daten, die über das Netzwerk zu senden sind, von dem Systemspeicher heraus geführt werden.
  • 11 ist eine Ansicht von Sendepaketen, die in dem Pufferspeicher als Warteschlange aufgereiht sind.
  • 12 ist ein verallgemeinertes Flussdiagramm, das zeigt, wie über das Netzwerk zu empfangende Daten zu dem Systemspeicher geführt werden.
  • 13 ist eine Ansicht, die den Aufbau einer Pufferspeicherempfangswarteschlange zeigt.
  • 14 zeigt das Format von Empfangspaketen, die in dem Pufferspeicher gespeichert sind.
  • 15 ist eine Ansicht, die den Ablauf von Signalen zwischen der Mediumszugriffssteuerung, der Netzwerk-DMA-Steuerung und dem Pufferspeicher zeigt;
  • 16(a) ist eine Blockansicht, in der Knoten- und Host-Prozessorspeicher auf separaten Knoten- und Host-Prozessorbussen gezeigt sind.
  • 16(b) ist eine Ansicht, die die Datenübergabe zwischen dem Knotenprozessorspeicher und dem Host-Prozessorspeicher und der Netzwerk-DMA-Steuerung zeigt, um eine Auftrennung zwischen Kopfbereich/Daten zu erreichen.
  • 17 ist ein Signalzeitablaufdiagramm, wobei das Herausladen von Empfangsblöcken durch den Pufferspeicher gezeigt ist.
  • 18 ist ein Signalablaufdiagramm, das das Einladen von Sendeblöcken in dem Pufferspeicher zeigt.
  • 19 ist ein Zeitablaufdiagramm, das einen „Rücken an Rücken"- bzw. „Back-to-Back"-Lese- und Schreibvorgang durch den Pufferspeicher zeigt.
  • 20 ist ein Diagramm, das den allgemeinen Aufbau von Empfangs- und Sendedeskriptoren zeigt.
  • 21 ist ein Diagramm eines Deskriptorrings.
  • 22 ist ein Diagramm, das die Verknüpfung von Sendeblöcken unter Anwendung von Deskriptoren zeigt.
  • 23 ist eine Ansicht, die mehrere Empfangsringe in einem Systemspeicher zeigt, der Pakete auf Grundlage einer Kopfbereiche/Daten-Auftrennung erhält.
  • 24 ist eine Ansicht von Empfangsblöcken, die zu unterschiedlichen physikalischen Speichern auf der Grundlage einer Kopfbereich-Aufteilung geführt werden.
  • 25 ist eine Ansicht, die mehrere Empfangsringe in dem Systemspeicher zeigt, der Pakete auf Grundlage von FC-Feldern empfängt.
  • 26 ist eine Ansicht von Empfangsblöcken, die zu unterschiedlichen Deskriptorringen auf der Grundlage von FC-Feldern geführt werden.
  • 27 ist eine Ansicht, die den „Verwerfungs- oder blockierten Empfangs"-Betriebsmodus der Netzwerk-DMA-Steuerung zeigt.
  • Detaillierte Beschreibung einer bevorzugten Ausführungsform
  • Obwohl eine spezielle Anwendung der Erfindung ein FDDI-Netzwerk betrifft, ist die Erfindung allgemein auf dem Gebiet der Blockdatenverarbeitung oder Paketdatenverarbeitung einsetzbar. Obwohl die Offenbarung dieser Erfindung im Zusammenhang mit FDDI-Schnittstellen dargelegt wird, sollte daher klar sein, dass die Aspekte der Erfindung nicht darauf eingeschränkt sind.
  • FDDI: Allgemein
  • Es wird nun eine gewisse Hintergrundinformation über FDDI angegeben, die zum Verständnis der Erfindung in diesem Zusammenhang hilfreich ist.
  • „Glasfaserdatenverteilungsschnittstelle" (FDDI) basierend auf optischen Glasfaserkomponenten und Systemen und entwickelt von amerikanischen Institut für nationale Standards (ANSI) X3T9.5 definiert ein Protokoll mit Zeitsteuerung und Berechtigungsmarke für 100 Megatbit pro Sekunde, wodurch gegenläufige physikalische Doppelringe eingerichtet werden.
  • 1 ist eine vereinfachte Blockansicht eines FDDI-Rings, der aus mehreren Stationsarten zusammengesetzt ist. Stationen der Klasse A, die manchmal auch als „Stationen mit dualer Verbindung" bezeichnet werden, sind mit primären und sekundären Ringen des Netzwerkes verbunden. Daten laufen in den beiden Ringen in der entgegensetzten Richtung, wie dies durch die Pfeile angegeben ist. Die Stationen der Klasse A können als Verdrahtungszentrale dienen, und mehrere Einzelverbindungsstationen oder Klasse B-Stationen mit dem Ring zu verbinden. In 1 ist die Station 2 eine Verdrahtungszentrale für die Station 3, 4 und 5. Die Konzentrations"- bzw. Zentralstationen ergeben für den Netzwerkverwalter einen einzelnen Wartungspunkt für eine große Anzahl von Stationen. Die zwischen den Stationen ausgetauschten Daten liegen in Form von „eingerahmten" Paketen bzw. Blockpaketen vor.
  • Das Format eines FDDI-Paketes ist in 2 gezeigt. Den Pakten eilen mindestens 16 Leerlaufsteuersymbole (Präambel) voraus. Pakete beginnen mit einem Startbegrenzungszeichen (ST), das aus dem J- und K-Steuersymbolen der 4B/5B-Kodierung zusammengesetzt ist, wie dies bekannt ist. Danach folgt ein 2-Daten-Symbol-Blocksteuer-(FC)Feld, das die Art des Paketes angibt. Die Zieladresse (DA) gibt den beabsichtigten Empfänger des Pakets an. Die Quellenadresse (SA) gibt den Sender des Paketes an. Adressen können 26 oder 48 Bits lang sein. Das DA-Feld kann auf eine einzelne Station, eine Gruppe aus Stationen oder alle Stationen auf dem Ring zeigen.
  • Auf die SA folgt das Informationsfeld mit variabler Länge. Ein Blockprüfsequenz-(FCS)Feld enthält 4 Bytes aus Daten. Diese Daten sind das Ergebnis eines 32-Bit-Autodin-II-Polynoms für zyklische Redundanzprüfung. Die FCS stellt die Datenintegrität der FC, DA, SA, INFO- und PCS-Felder sicher.
  • Im Anschluss an das FCS-Feld wird ein Endbegrenzungszeichen (ED), das mit dem T-Symbol gebildet ist, übertragen. Das Blockstatus-(FS)Feld wird für Symbole verwendet, die bestimmen, ob das Paket mit Fehler empfangen wurde, wenn die Adresse erkannt wurde, oder das Paket kopiert wurde.
  • Pakete werden aus der FDDI für die paketerzeugenden Station entfernt. In diesem Vorgang, der als „Abstreifen bzw. Stripping" bezeichnet wird und in den 3(a) und 3(b) gezeigt ist, wählt eine Mediumzugriffsteuerung (MAC) 20 eine Quelle von Leerlaufsteuersymbolen für das Übertragen auf dem Ring aus. Wenn ein Startbegrenzungszeichen eintrifft, schaltet die Steuerung auf einen Wiederholungspfad um. Das Paket wird überwacht, bei Bedarf kopiert und gleichzeitig wiederholt. Die Mediumzugriffssteuerung 20 kann auch umschalten, um die eigenen Pakete zu erzeugen oder kann ein Berechtigungszeichen ausgeben.
  • Bei der Übergabe mit Berechtigungszeichen bzw. "Token" verteilen Stationen das Recht zum Senden über das Medium durch Zirkulieren eines Berechtigungszeichens bzw. Tokens", das ein spezielles Bitmuster ist, das das Recht zum Senden der Station zuweist, die das Bit-Muster empfängt. Eine Station, die senden will, wartet, bis sie das Berechtigungszeichen von der vorhergehenden Station in der Reihenfolge der Weiterleitung der Berechti gungszeichen empfängt. Wenn die Station das Berechtigungszeichen erhält, sendet sie ihre Daten und gibt dann das Berechtigungszeichen an die nächste Station weiter.
  • Eine FDDI-Station, die auf das Senden wartet, muss zunächst das Berechtigungszeichen „einfangen bzw. erhalten", indem der Vorgang des Abstreifens bzw. Strippens ausgeführt wird. Es wird nur das Berechtigungszeichen-SD-Feld auf dem Ring wiederholt. Sobald das Berechtigungszeichen erhalten wird, kann die Station mit dem Senden der Station mit dem Senden von Paketen beginnen. Wenn das letzte Paket gesendet ist, gibt die Station unmittelbar danach ein neues Berechtigungszeichen aus.
  • Die Regeln für das Empfangen des Berechtigungszeichens und die Länge der Zeitdauer, die für die Datenübertragung verfügbar ist, werden durch das „zeitgesteuerte Berechtigungszeichenprotokoll" geregelt, das in dem FDDI-Spezifikationen definiert ist und in einer anhängigen Anmeldung (3) zusammengefasst und hierin durch Bezugnahme aufgenommen ist. Das Protokoll ist so gestaltet, dass eine maximale Rotationszeitdauer für Berechtigungszeichen (TRT) sichergestellt ist, wobei diese in einem Nachfrageprozess zwischen Stationen während eines Anbietens bei der Initialisierung festgelegt wird. Der Nachfrageprozess ermöglicht es der Station, die die geringste Zeitdauer zwischen eintreffenden Berechtigungszeichen fordert, eine angestrebte Berechtigungszeichenrotationszeitdauer (TTRT) für den Ring vorzugeben.
  • Ein zeitgesteuertes Berechtigungszeichenprotokoll bietet zwei Arten an Übertragungsdiensten, d. h. einen synchronen Dienst und einen asynchronen Dienst. Den Stationen wird eine vorbestimmte Größe der Übertragungsbandbreite bei jeder Berechtigungszeichenrotation mit synchroner Dienstleistung zugewiesen. Die verbleibende Ringbandbreite wird zwischen den Stationen unter Anwendung asynchroner Dienste aufgeteilt. Stationen können asynchrone Übertragungen tätigen, wenn das Berechtigungszeichen früher als erwartet eintrifft. Die Zeitdauer, die für eine asynchrone Übertragung zugewiesen ist, wird durch den Unterschied der tatsächlichen Zeit des Eintreffens des Berechtigungszeichens und der erwarteten Ankunftszeit für das Berechtigungszeichen begrenzt. Die Zuweisung einer Bandbreite für die asynchrone Übertragung ist dynamisch, wobei ungenutzte Bandbreite für eine synchrone Übertragung automatisch für asynchrone Übertragungen bei einer Rotation der Berechtigungszeichen neu zugewiesen wird.
  • FDDI; Schnittstellenschaltungsimplementierung
  • Gemäß 4 wird in einer FDDI-Schnittstelle gemäß der bevorzugten Ausführungsform der Erfindung eine Leitbusarchitektur bzw. Masterbusarchitektur, die allgemein als 116 bezeichnet ist, zwischen einem Systembus oder Anwenderbus und einem Netzwerk in Form eines optischen Glasfasermediums vorgesehen. Die wesentlichen Komponenten der Leitbusarchitektur 116 beinhalten eine Mediumzugriffssteuerung (MAC) 120 zum Zugreifen auf das Medium über einen Kodierer bzw. Dekodierer (ENDEC) 132, der Datenblöcke von der Steuerung 120 empfängt und eine geeignete Kodierung der Blöcke vor dem Umwandeln der Daten vom parallelen Format in das serielle Format ausführt und andere "interne Verwaltungsfunktionen" ausführt, um den FDDI-Erfordernissen zu dienen. Eine Netzwerk-DMA(direkter Speicherzugriffs-)Steuerung 124 steuert den Datenaustausch zwischen Host- und Knotenprozessorspeichern (nicht gezeigt) über den Systembus und einen Ausgabepuffer 126, der so gestaltet ist, dass er zumindest einen FIFO-(zuerst-hinein-zuerst-heraus)Speicher aufweist, der zwischen der DMA-Steuerung und der Mediumzugriffssteuerung angeschlossen ist. Die Mediumzugriffssteuerung 120 richtet ein geeignetes Netzwerkzugriffsprotokoll ein, empfängt und sendet Datenblöcke, während erforderliche interne Verwaltungsfunktionen, etwa das Entfernen von Datenblöcken, die Fehlerprüfung und die Buszuweisung ausgeführt werden. Die Netzwerk DMA-Steuerung 124 arbeitet als eine vordere Busleiteinrichtung bzw. Master, wobei mit dem Host-Prozessor und dem Knotenprozessor kommuniziert wird, um Daten zwischen dem Systemspeicher und dem Puffer zu verteilen und zusammenzuführen, wobei die Verschiebung von Daten in dem Speicher minimiert wird.
  • Die Mediumzugriffssteuerung 120 ist mit einem Pufferspeicher 126 über einen Datenbus 134 und einen Adressenbus 136 verbunden, und ist mit der Netzwerk DMA-Steuerung 124 über den Datenbus 134 verbunden. Es wird eine Übergabe zwischen den Steuerungen 124 und 120 auf einem Bus 140 ausgeführt, um die Verschiebung von Daten zu und aus dem Medium zu steuern. Die Steuerung 120, die in 5 gezeigt ist, wird nachfolgend detaillierter beschrieben.
  • Die Netzwerk-DMA-Steuerung 124 befindet sich in einem Host-Bus 142 mit einem gemeinsam genutzten Datenbus 144 und Adressen- und Steuerbussen 146, 148. Steuersignale zu der Netzwerk-DMA-Steuerung 124 werden über Schnittstellen an die Host- und Knoten busse 143a, b über Busanforderungs- und Bestätigungsleitungen 150a, b übermittelt. Die Mediumzugriffssteuerung und die Netzwerk-DMA-Steuerung 120 und 124 arbeiten mit dem Ausgabepufferspeicher 126 zusammen, um Netzwerkschnittstellenfunktionen auf den diversen gezeigten Bussen auszuführen, wie detaillierter in der anliegenden Anmeldung (1) beschrieben ist, die damit durch Bezugnahme mit eingeschlossen ist.
  • Gemäß der Blockansicht aus 6 ist der Ausgabepuffer 126 (7) mit einem Empfangs-FIFO 175 versehen, der eine Warteschlange aus Daten enthält, die über das Medium empfangen werden, und es ist mindestens einer aber vorzugsweise vier Sende-FIFO's 177 ebenfalls vorgesehen, die jeweils eine Warteschlange aus Daten enthalten, die dem Medium zuzuführen sind. Die vier in 7 gezeigten Warteschlangen repräsentieren eine synchrone Warteschlange und Warteschlangen mit Daten, die unterschiedliche zugeordnete Prioritäten entsprechend den FDDI-Spezifikationen aufweisen. Der Ausgabepuffer 126, der vorzugsweise ein statischer Speicher mit wahlfreiem Zugriff (SRAM) ist, ist durch Firmware so programmiert, dass dieser vier FIFO's aufweist, die jeweils eine Datenwarteschlange mit unterschiedlicher Priorität enthalten; insbesondere ist jeder FIFO als ein Pufferbereich in dem Systemspeicher unter Anwendung von „Deskriptoren" definiert, wie dies nachfolgend detaillierter beschrieben ist.
  • Daten, die über das Medium empfangen werden, werden von der Netzwerk-DMA-Steuerung 124 dem Systemspeicher über Verbindungslistenwarteschlangen 178 zugeführt, und in ähnlicher Weise werden Daten an das Medium aus dem Systemspeicher über Verbindungslistenwarteschlangen 180 übertragen, die der synchronen Priorität und den drei Ebenen aus asynchroner Priorität entsprechen.
  • Vor einer Operation mit Einbeziehung des Ausgabepuffers 126 muss der Knotenprozessor die Endadressen aller Warteschlangen in dem Puffer einladen. Warteschlangenzeiger sind in der in 7 gezeigten Reihenfolge angeordnet, d. h. Zeiger definieren zunächst das Ende eines speziellen Blockbereichs, dann folgen eine Empfangswarteschlange und nächste Sendewartschlangen in der Reihenfolge: synchronisierte Warteschlange gefolgt von asynchronen Warteschlangen mit drei Prioritätsebenen. Ferner werden von dem Knotenprozessor auch die Lese/Schreib-Zeiger verwendeter Warteschlangen programmiert, wie in der rechten Spalte aus 7 gezeigt ist; Endadressenzeigen sind in der linken Spalte der Figur dargestellt.
  • Insbesondere ist jede Warteschlange des in 7 gezeigten FIFO's durch einen „Ende der Adresse" Zeiger gekennzeichnet, der das Präfix „EA" besitzt. Beispielsweise definiert die EA den speziellen Blockbereich. Die SYNC-Warteschlange, die die synchronen Daten enthält, ist durch einen „Ende der Adresse"-Zeiger „EAS" gekennzeichnet. Die drei asynchronen Warteschlangen sind durch „Ende der Adresse"-Zeiger „EAA0–EAA2" gekennzeichnet. Jede Warteschlange ist ferner durch Lese- und Schreib-Zeiger definiert, die zu Speicherplätzen zeigen, aus denen Daten ausgelesen werden und in die Daten geschrieben werden, wie dies konventioneller Weise auch der Fall ist. Der Unterschied zwischen den Lese- und Schreib-Zeigern stellt die Menge der in der Warteschlange gespeicherten Daten dar. Beispielweise repräsentieren in 7 RPR und RPXA0–RPXA2 die Lese-Zeiger für die synchrone Datenwarteschlange und die drei Ebenen der asynchronen Warteschlangen gemäß den FDDI-Standards. Alle diese Lese-Zeiger sind am Anfang der entsprechenden Warteschlange. Die Zeiger WPXS und WPXA0–WPXA2 repräsentieren Schreib-Zeiger für die synchronen Daten und die drei Ebenen der asynchronen Daten am Ende der jeweiligen Warteschlange.
  • Ein „Schatten-Schreib"-Zeiger (SWP) zeigt auf das Ende des Blockes, der als letztes in einer Warteschlange gespeichert wurde. Die Funktion des Schatten-Schreib-Zeigers (SWP) und seine Beziehung zu den anderen Zeigern, die in 7 dargestellt sind, wird detaillierter in der anhängigen Anmeldung (2) beschrieben, die hiermit durch Bezugnahme mit eingeschlossen ist.
  • Wie die Netzwerkzugriffssteuerung und die Netzwerk-DMA-Steuerung 120, 124 zusammen mit dem Pufferspeichern 126 zusammenwirken, um die Netzwerkschnittstellenoperationen an den diversen gezeigten Bussen auszuführen, wird nachfolgend beschrieben. In unmittelbarem Anschluss wird eine detailliertere Beschreibung der wesentlichen Komponenten der Schnittstelle, d. h. der Netzwerk-DMA-Steuerung 124, der Mediumzugriffssteuerung 120 und des Ausgangspuffers 126 angegeben.
  • Netzwerk-DMA-Steuerung 124
  • Die Netzwerk-DMA-Steuerung 124, die detailliert in 8 gezeigt ist, umfasst eine Schnittstellenschaltung 150, die zwischen der Mediumzugriffssteuerung 120 und der Netzwerk- DMA-Steuerung 124 angeschlossen ist. Die Schnittstelle 150 kommuniziert mit einem Sendeabschnitt, der mindestens einen und vorzugsweise vier FIFO's 152, einen Empfangsabschnitt 154 mit einem FIFO und eine Paketpufferverwaltungsschaltung 156 enthält. Die Schnittstelle 150 überträgt Daten, die in dem Sendeabschnitt 152 gespeichert sind, zu dem Pufferspeicher 126 und überträgt auch Daten von dem Puffer 126 zu dem Empfangsabschnitt 154. Datenübertragungen von dem Puffer 126 zu dem Empfangsabschnitt 154 werden auf Befehl der Mediumzugriffssteuerung 120 veranlasst, wenn Daten auf dem Netzwerk für das System verfügbar sind und andere Bedingungen einschließlich des Empfangs mindestens einer vorbestimmten Menge an Empfangsdaten in dem Puffer erfüllt sind. Datenübertragungen von dem Sendeabschnitt 152 werden ausgeführt, wenn Daten aus dem Systemspeicher in dem Sendeabschnitt verfügbar sind, die Datenwarteschlange darin freigegeben ist und andere Bedingungen erfüllt sind, wozu zumindest ein voller Datenblock oder zumindest eine vorbestimmte Menge an Sendedaten, die in dem Puffer gespeichert sind, gehört, wie dies in der anhängigen Anmeldung (2) beschrieben ist.
  • Die Paketpufferverwaltungsschaltung 156 zeigt der Mediumzugriffssteuerung 120 an, welche Art von Daten in dem Sendeabschnitt vorhanden ist, so dass der Pufferspeicher mit geeigneten Warteschlangen in Abhängigkeit der Priorität der Daten entsprechend den FIFO-Spezifikationen geladen wird. Wenn eine Warteschlange voll wird, signalisiert die Schnittstelle 150 der Paketpufferverwaltungsschaltung 156, diese Warteschlange zu verriegeln, um das Leeren des aktuellen FIFO's zu beenden und diese Warteschlange in Wartezustand zu versetzen. Wenn ein Datentransfer unvollständig ist, setzt die Schaltung 156 andere anhängige Transferereignisse fort, bis die Schnittstelle 150 signalisiert, dass die Warteschlange freigegeben ist. Zu diesem Zeitpunkt wird ein anhängiger Datentransfer fortgesetzt. Wenn Sende- und Empfangsdaten von den FIFO's in den Abschnitten 152 und 154 gleichzeitig angefordert werden, gewichtet die Schnittstelle 150 diese Datenübertragungen nach einer Priorität auf der Grundlage der Sequenz aus Ereignissen in Übereinstimmung mit einer vorbestimmten Sende- und Empfangsprioritätsreihenfolge.
  • Die Paketpufferverwaltungsschaltung 156 dekodiert Befehlswörter, sendet, fordert Befehle zum Rücksetzen von Fehlern an und sendet geeignete Informationen zu der Systemspeicherschnittstelle 160 sowie zu dem Sendeabschnitt 152. Die Paketpufferverwaltungsschaltung 156 legt die Priorität von Befehlsanforderungen, Sendeanforderungen von dem FIFO 152 und Empfangsanforderungen von dem FIFO 154 fest. Die Verwaltungsschaltung 156 gibt dann Befehle an die Systemspeicherschnittstelle 160 aus, um Sendeoperationen oder Empfangsoperationen zu gewähren oder um einen der Befehle auszuführen, wobei eine Verbindung zu dem System über die CPU-Schnittstelle 161 vorliegt.
  • Der Sendeabschnitt 152 bewahrt alle Sendewarteschlangen und führt Operationen in einer vorbestimmten Prioritätsreihenfolge aus. Der FIFO 152 führt eine Byteordnung und Datensammlung aus und formatiert die Daten-geeigneten Paketen, die von der Mediumzugriffssteuerung 120 zu verarbeiten sind. Diverse Sendewarteschlangen in dem Sendeabschnitt 152 werden so gesteuert, dass, wenn der Pufferspeicher 126 eine Warteschlange auffüllt, ein Umschalten der Warteschlange ausgeführt wird. Alle für die verriegelte Warteschlange erforderlichen Informationen werden gespeichert, so dass der Betrieb fortgesetzt werden kann, wenn die Warteschlange freigegeben wird. Der in dem Sendeabschnitt 152 enthaltene FIFO wird auch für die Datenspeicherung und die Ratenanpassung zwischen der Systemspeicherschnittstelle 160 und der Netzwerkzugriffssteuerschnittstelle 150 verwendet. Ein Zwischenspeicher ist in der Netzwerk-DMA-Steuerung 138 erforderlich, da die Datenübertragungsraten über dem Systemspeicherbus und in dem Netzwerk unabhängig voneinander sind.
  • Der Empfangsabschnitt 154 empfängt die FIFO-geeigneten Blöcke von den Ausgabepufferspeicher 126 und verteilt diese in den Empfangspuffern in dem Systemspeicher. Die Empfangspuffer werden von den Diskriptorringen angezeigt. Der Abschnitt 154 enthält ferner einen FIFO, um eine Ratenanpassung zwischen dem Netzwerk und dem Systemspeicher in der gleichen Weise wie in dem Sende-FIFO 152 zu ermöglichen.
  • Die Systemspeicherschnittstelle (SMI) 160 umfasst eine programmierbare Hochgeschwindigkeitsbusschnittstelle, eine Adressenerzeugungsschaltung und Speicherplatz für den Systemspeicher. Die Schnittstelle 160 enthält ferner Schaltungen zum Erkennen des Endes eines Rings für die Pufferverwaltung in dem Systemspeicher, und enthält ferner eine primäre Steuerzustandsmaschine für die Systemspeicherschnittstelle.
  • Signale, die von der Systemspeicherschnittstelle 160 aus Leitungen 163 dem System zugeführt werden, sind synchron zu einem Systemtaktsignal SCLK (nicht gezeigt). Diese Signale fordern Zugriff für einen einzelnen Systemspeicher durch eine externe Zuweisungseinrichtung (nicht gezeigt). Ein weiteres Signal gewährt der Netzwerk-DMA-Steuerung 124 das Recht, auf den Systemspeicher zuzugreifen. Ein Adressbus am Ausgang der SMI 160 adressiert alle Systemspeicherzugriffe, und ein Systemspeicher-Lese-Schreib-Leitung gibt an, ob Daten von dem Systemspeicher zu der Steuerung 124 oder von der Steuerung zu dem Systemspeicher übertragen werden. Andere Signale am Ausgang der SMI 160 geben den Status des Systemspeichers an, geben Fehler an und aktivieren oder deaktivieren externe Datenpuffer, um eine Konkurrenz auf dem Bus zwischen Leseoperationen und Schreiboperationen für den Systemspeicher zu verhindern. Ein weiteres SMI-Signal aktiviert einen Signalspeicher in der SMI, um Daten für einen Schreibvorgang in den Systemspeicher zu speichern.
  • Signalleitungen in der CPU-Schnittstelle 161 enthalten ein Signal, das anzeigt, dass die Netzwerk-DMA-Steuerung 124 einen Befehl aus dem Speicher auslesen muss, und das angibt, dass die Steuerung den Speicherzugriff ausführen soll. Eine weitere Leitung zeigt der CPU an, dass die Netzwerk-DMA-Steuerung ein neues Statuswort in den Speicher geschrieben hat, und eine weitere Leitung setzt das Interruptereignis zurück.
  • Am Ausgang der Schnittstelle 150 liegt ein Host-Anforderungsbus an, der kodierte Anforderungen zum Zugreifen auf den Pufferspeicher 126 über die Mediumzugriffssteuerung 120 enthält. Abhängig von der auf dem Host-Anforderungsbus übermittelten Kodierung wird auf den Pufferspeicher 126 zugegriffen, um Daten auszulesen oder Daten in eine der vier Sendewarteschlangen zu schreiben. Die Leseanforderung ruft Empfangspakete aus dem Puffer 126 ab und speichert diese in dem Systemspeicher. Schreibanforderungen übertragen Pakete in den Pufferspeicher zur weiteren Übertragung. Auch ist an dem Ausgang der Schnittstelle 150 eine Host-Bestätigungsleitung angeordnet, die ein Signal übermittelt, das anzeigt, dass die aktuelle Schreib- oder Leseanforderung der Netzwerk-DMA-Steuerung 124 von der Mediumzugriffssteuerung 120 gewährt wird. Zusammen mit diesem Signal wird der Pufferspeicher 126 aktiviert und es sind Daten auf einem Datenbus, einem Datenparitätsbus und einem Datenmarkierungsbus vorhanden, wie sie nachfolgend beschrieben werden (15). Die Schnittstelle stellt ferner eine Leseaufgabe bereit, um Daten in der Netzwerk-DMA-Steuerung 124 zu speichern, wenn die Mediumzugriffssteuerung 120 Daten aus dem Pufferspeicher 126 in die DMA-Steuerung ausliest. Eine Empfangsdatenleitung gibt an, dass die Empfangsdaten in dem Puffer 126 vorhanden sind und für das Übertragen zu dem Systemspeicher bereit sind. Andere Leitungen, die nachfolgend beschrieben wer den, geben den Status der Sendewarteschlangen in dem Puffer 126 an, auf die aktuell zugegriffen wird.
  • Gemäß einem Aspekt der Erfindung umfasst der von der Netzwerk-DMA-Steuerung 124 gesteuerte Systemspeicher: einen ersten Speicher 125(a) und einen zweiten Speicher 125(b), die in der bevorzugten Ausführungsform Speicher für den Knotenprozessor und den Host-Rechner sind, und den Knotenprozessorbus und den Host-Bus 143(a), 143(b), wie in 4 gezeigt ist. Die Busse für den Knotenprozessor und den Host 143(a), 143(b) sind mit der Netzwerk-DMA-Steuerung 124 über einen Systembus 147 verbunden, der einen gemeinsamen Datenbus 144 und Steuerbusse 146, 148 enthält. Treiber 149(a), 149(b) werden von der Netzwerk-DMA-Steuerung 124 so angesteuert, dass der NP-Bus 143(a) oder der Host-Bus 143(b) mit dem Systembus 147 verbunden wird. Gemäß den 16(a) und 16(b) werden Daten aus dem NP-Speicher oder Host-Speicher 125(a), 143(b) auf den beiden Bussen 143(a), 143(b) ausgelesen oder in diese geschrieben, wobei ein Übergabeprotokoll zwischen der Steuerung 124 und den Speichern eingesetzt wird und wobei die Treiber 149(a), 149(b) verwendet werden.
  • Die Architekturen der 16(a) und 16(b) mit einem separaten Knotenprozessorspeicher und Host-Speicher 125(a), 125(b) ist vorteilhaft, da damit ermöglicht wird, dass Sendeblöcke von zwei physikalischen Speichern zur Übertragung in ein Netzwerk gesammelt werden können. Dies ermöglicht eine Datenmanipulation unter Anwendung von Deskriptoren in effizienter Weise, wobei der Knotenprozessor eine Protokollverarbeitung ausführt, während der Host-Prozessor die Daten liefert. In 16(b) wird beispielsweise gemäß einem Aspekt der Erfindung, wie dies nachfolgend detaillierter beschrieben ist, die Kopfbereichsinformation aus dem Speicher 125(a) des Knotenprozessors (NP) ausgelesen und die Daten werden aus dem Host-Speicher 125(b) ausgelesen, um ein zusätzliches Kopieren der Daten zu vermeiden. Die Netzwerk-DMA-Steuerung 124 führt diese Funktion durch Übergabe bzw. Handschlag" mit den beiden Speichern unter Anwendung zweier Gruppen aus Anforderungs/Gewährungssignalen aus.
  • In 16(b) wird ein Paar einer Kopfbereichsanforderung-Gewährung (HBREQ/HBGRT) verwendet, um auf den NP-Speicher 135(a) zuzugreifen, und ein Paar bestehend aus einem Datenanforderungs- und Gewährungsvorgang (DBREQ/DBGRT) greift auf den Host-Speicher 125(b) zu. In diesem Beispiel werden Kopfbereichsdaten zusammen mit einem Deskriptorring in dem Speicher 135(a) des Knotenprozessors gespeichert; Daten werden nur in dem Host-Speicher 135(b) gespeichert. Der Kopfbereich und die Daten in den beiden Speichern sind in Puffern angeordnet, die durch den Deskriptorring DR definiert sind, der in dem NP-Speicher 125(a) abgelegt ist.
  • In ähnlicher Weise kann die Netzwerk-DMA-Steuerung 124 Empfangsdatenblöcke in Puffern speichern, die durch zwei separate Deskriptorringe definiert sind. Dies ermöglicht einen direkten Transfer von empfangenen Daten in zwei physikalische Speicherstellen, ohne dass eine zusätzliche Kopie erforderlich ist. Z. B. können Kopfbereiche und Deskriptoren für Empfangsdaten in dem NP-Speicher 125(a) gespeichert werden; und Empfangsdaten können in dem Host-Speicher 125(b) gespeichert werden.
  • Um auf den NP-Speicher 125(a) zuzugreifen, legt die Netzwerk-DMA-Steuerung ein Anforderungssignal HBREQ auf den Systembus 147. Die Anforderung HBREQ wird über die Treiber 149(a) und 149(b) an jeweils die Speicher 125(a) und 125(b) des Knotenprozessors und des Host-Prozessors geleitet. Lediglich der NP-Speicher 125(a) reagiert auf das Gewährungssignal HBGNT, um einen Zugriff auf den Speicher über einen Weg zu ermöglichen, der aus dem NP-Bus 143(a), dem Treiber 143(a) und dem Systembus 147 besteht. Da der Speicher 125(b) nicht auf das Anforderungssignal HBREQ regiert, erzeugt der Speicher 125(b) kein Gewährungssignal und Zugriff auf den Host-Speicher ist nicht möglich.
  • Wenn andererseits ein Zugriff auf den Host-Speicher 125(b) erforderlich ist, legt die Netzwerk-DMA-Steuerung 124 ein Anforderungssignal DBREQ auf den Systembus 147. Das Anforderungssignal DBREQ wird über die Treiber 149(a), 149(b) dem Knotenprozessorspeicher 125(a) und dem Host-Prozessorspeicher 125(b) zugeleitet. Nur der Host-Prozessorspeicher 125(b) erzeugt ein Gewährungssignal DBGNT, das von der Steuerung 124 über einen Weg empfangen wird, der aus dem Host-Bus 143(b), dem Treiber 149(b) und dem Systembus 147 besteht. Es wird nun ein Zugriff auf den Host-Speicher 125(b) durch die Netzwerk-DMA-Steuerung 124 eingerichtet. Deskriptorringe der Art, wie sie als DR in 16(b) angegeben sind, sind eine Verwirklichung gut bekannter Techniken, um einen Puffer in einem zugewiesenen Gebiet bzw. Bereich eines Speichers zur Speicherung von Daten zu beschreiben. Ein Deskriptor, wie er in 20 gezeigt ist, umfasst zwei lange Wörter LW1 und LW2. Das Wort LW1 enthält den Status und die Länge des Puffers, der in dem Speicher zu definieren ist; das Wort LW2 ist ein Zeiger, der auf die Startadresse des Puffers verweist. Die Strukturen der Sende- und Empfangsdeskriptoren sind ähnlich zueinander.
  • Ein Statusbereich jedes Deskriptors repräsentiert den Status des Datenpuffers sowie den Status des Datenpakets, das in dem Puffer zu speichern ist. Wenn ein Empfangspaket mehr als einen Puffer erfordert, dann wird der Status des Pakets nur von dem letzten Pufferdeskriptor dieses Paketes beachtet.
  • Pufferstatusbits enthalten ein OWN-Bit, das von dem Host-Prozessor gesetzt wird, um anzugeben, dass dieser Eintrag ein zulässiger Eintrag zur Verwendung durch die DMA-Steuerung 124 ist, und dass die DMA-Steuerung den Deskriptor „besitzt". Wenn die Netzwerk-DMA-Steuerung 124 den Datentransfer zu dem entsprechenden Puffer beendet, setzt sie das OWN-Bit zurück und übergibt diesen Puffer, d. h. das Besitzrecht daran, dem Host-Prozessor. Dieses Bit ist gültig für jeden Deskriptor.
  • Ein „Ende des Pakets" (EOP) markiert, wenn es gesetzt ist, den letzten Puffer eines Pakets. Wenn das Paket lediglich in einem Puffer liegt, muss dieses Bit für den entsprechenden Deskriptor gesetzt werden. Wenn das Bit auf tiefen Wert ist, geht das Paket in den nächsten Puffer weiter.
  • Ein Abort-Bit zeigt an, wenn es gesetzt ist, dass ein aktuelles Paket kein vollständiges Paket ist. Das EOP-Bit eines Sendedeskriptors wird nur von dem Prozessor gesteuert und gilt für jeden Deskriptor. Das EOP-Bit eines empfangenen Deskriptors ist nur für den Puffer 126 zulässig, wenn das EOP-Bit auf eins gesetzt ist, und wird von der Netzwerk-DMA-Steuerung 124 gesteuert.
  • Andere Statusbits, die zum Beschreiben anderer Eigenschaften des Puffers eingerichtet werden können, sind der Kürze hier weggelassen.
  • Eine Reihe von Puffern wird durch den Deskriptorring DR aus 16 beschrieben, der detaillierter in 21 gezeigt ist. In diesem Beispiel beginnt der Puffer B bei der Adresse An in dem Systemspeicher und erstreckt sich bis zur Adresse An+m, so dass eine Länge Am erreicht wird. Der Puffer B kann, ohne dass dies erforderlich ist, in dem gleichen physikali schen Speicher wie der Deskriptor DR liegen. Beim Senden können Deskriptoren DR unabhängig in dem Host-Speicher und dem Knotenprozessorspeicher 125(a), 125(b) enthalten sein. Beim Empfangen liegen die Deskriptoren und die entsprechenden Puffer in dem gleichen Speicher.
  • Sendedaten werden aus den Puffern, die in den beiden physikalischen Speichern 125(a), 125(b) verteilt sind, in Puffern gesammelt, die durch einen Deskriptorring DR definiert sind, der in einem beliebigen Speicher liegt. Unter Bezug auf 2 sei angenommen, dass zwei aufeinanderfolgende Datenblöcke, die zu einem Netzwerk zu übertragen sind, der Block A und der Block B sind. Der Block A umfasst einen Kopfbereich in einem Puffer A und Daten, die in einem Puffer 1a und 2a verteilt sind; der Block B enthält einen Kopfbereich in einem Puffer 1b und Daten nur in dem Puffer 1b. Der Deskriptorring DR greift auf die Daten des Blocks A und des Blocks B nacheinander zu, um die Daten zu dem Netzwerk zu übertragen, wie dies gezeigt ist. Die in den beiden Blöcken enthaltenen Daten können auf beide physikalischen Speicher 125(a), 125(b) verteilt sein.
  • Zum Beispiel nehme man an, dass 10 000 Bytes an Daten an das Netzwerk zu übertragen sind. In einem FDDI-Netzwerk können lediglich 4500 Bytes pro Block gleichzeitig übertragen werden. Jeder Block aus 4500 Bytes erfordert den Kopfbereich. Man nehme an, dass synchrone Daten mit Priorität "0", d. h. mit höchster Priorität, an das Netzwerk zu übertragen sind. Der erste Deskriptor in dem Ring zeigt auf den Puffer 1a, der den Sendekopfbereich enthält, und der zweite Deskriptor zeigt auf den ersten Puffer 1a, der die Sendedaten speichert. Ein dritter Deskriptor zeigt auf einen dritten Puffer, der die Sendedaten 2a enthält. Die ersten drei Dreskriptoren beinhalten daher gemeinsam den ersten Block aus Daten, die an das Netzwerk zu übertragen sind. Der vierte Deskriptor zeigt auf einen vierten Puffer, der den Sendekopfbereich 1b des Blocks b enthält, und der fünfte Deskriptor zeigt auf einen weiteren Puffer, der die Sendedaten 1b enthält, wodurch der Block B vervollständig wird. Wenn der Block B die gleichen Kopfbereichsdaten wie der Block A enthält, zeigt der vierte Deskriptor auf den ersten Kopfbereich, der mit den Daten 1b zu kombinieren ist, um den zweiten Block zu vervollständigen.
  • Bei einer Sendeanforderung erstellt der Host-Prozessor einen Sendedeskriptor und setzt das OWN-Bit in dem Statusfeld des Deskriptors. Der Prozessor leitet der Netzwerk DMA-Steuerung 124 einen Befehl zum Senden zu. Die Steuerung 124 ruft den Deskriptor ab, ermittelt die entsprechenden Puffer, liest Daten in dem internen FIFO und überträgt die Daten an dem Pufferspeicher 126. Dieser Prozess geht weiter, bis die Steuerung 124 einen Deskriptor erreicht, der ein gesetztes EOP-Bit aufweist, wodurch angegeben wird, dass das Ende eines Paketes erreicht ist. Zu diesem Zeitpunkt setzt die Steuerung 124 ein Markierungsbit im letzten Wort des Pakets und in dem Statuswort, das auf das Paket in dem Pufferspeicher folgt, wie in 11 gezeigt ist.
  • Die Netzwerk-DMA-Steuerung 124 liest weiterhin Deskriptoren aus dem Ring aus, bis das OWN-Bit eines Deskriptors zurückgesetzt ist. In diesem Falle beendet die Steuerung 124 das Auslesen aus diesem Ring, bis ein neuer Befehl zum Senden von dem Host-Prozessor eintrifft. Wenn Daten aus den zwei physikalischen Speichern 125(a), 125(b) zum Übertragen eines Netzwerks gesammelt werden, wird durch Übergabe zwischen den Speichern und der Netzwerk-DMA-Steuerung 124 durch die Paare aus REQ/GNT-Signalen ein Zugriff auf den jeweils richtigen Speicher gewährleistet, wie dies zuvor beschrieben ist.
  • Es gibt einen separaten Deskriptorring für jede Priorität der Daten. In diesem Beispiel sind vier separate Deskriptorringe verwendet, d. h. einer für synchrone Daten und drei für asynchrone Prioritäten 0 bis 2. Jedoch ist die Anzahl der möglichen Deskriptorringe beliebig. Ferner sind die Positionen in den beiden physikalischen Speichern der Sendedatenpuffer beliebig, die unter Steuerung eines Deskriptorringes zusammenzuführen sind, der selbst in einem der beiden Speicher gespeichert sein kann. Dies ermöglicht ein beliebiges Zusammenfügen von Blöcken, ohne dass tatsächlich gespeicherte Daten kopiert und verschoben werden.
  • Die Position jedes Puffers in dem einen oder dem anderen der beiden Speicher wird als ein Status-Bit jedes Deskriptors kodiert. Folglich ist die Netzwerk-DMA-Steuerung 124 in der Lage festzustellen, welcher der beiden physikalischen Speicher, d. h. der Knoten-Prozessor-Speicher oder der Host-Speicher, den Puffer enthält.
  • Das Einrichten von Positionen für Empfangspuffer ist komplexer. Die Länge der Sendepakete ist gleich und bekannt und ihre Positionen in dem Speicher sind ebenfalls bekannt; demgegenüber können Empfangspakete in ihrer Länge variabel sein und Positionen müssen dynamisch beim Eintreffen von Paketen aus dem Netzwerk definiert werden. Die Netzwerk-DMA-Steuerung 134 erstellt unter Anwendung von Deskriptorringen eine Ansamm lung freier Puffer in dem Systemspeicher. Wenn Pakete empfangen werden, ermittelt die Steuerung drei Puffer und ordnet diese an, um die empfangenen Daten zu speichern und weist Pakete den Puffern entsprechend dem Deskriptor zu, der mit jedem Paket verknüpft ist.
  • Leere Puffer in dem Systemspeicher werden zunehmend mit empfangenen Daten beim Eintreffen der Daten aufgefüllt, wobei diese von der Medienzugriffssteuerung 120 akzeptiert werden. Wenn ein Puffer gefüllt ist, greift die Netzwerk-DMA-Steuerung 124 auf den Deskriptorring zu, um den nächsten Puffer zu positionieren, etc., bis das Ende des Pakets durch dessen EOP-Bit erkannt wird. Wenn ein neues Paket eintrifft, werden freie Puffer in der Ansammlung aus freien Puffern, die durch den entsprechenden Deskriptorring bezeichnet sind, gefüllt.
  • Unter gewissen Umständen ist es vorteilhaft, empfangene Pakete in unterschiedlichen Puffern unter Anwendung separater Deskriptorringe zu speichern. Z. B. können ein erster und ein zweiter Teil von empfangenen Daten erfindungsgemäß in zwei separate Deskriptorringe aufgeteilt werden. Der erste Deskriptorring empfängt den ersten Teil eines Blocks, der üblicherweise zumindest einen Teil des Kopfbereichs enthält, und der Rest des Blocks wird dem zweiten Deskriptor zugeteilt. Das Trennen des Kopfbereichs und der Datenanteile eines Blocks ermöglicht es, dass der Kopfbereich effizient für unterschiedliche Daten gemeinsam benutzt wird.
  • Vorzugsweise definiert jeder Deskriptor des ersten Deskriptorrings eine Pufferlänge, die deutlich kleiner ist als jene, die von den Dekriptoren des zweiten Rings definiert ist. In der bevorzugten Ausführungsform ist die Länge jedes Puffers, der durch den ersten Ring definiert ist, gleich oder geringfügig größer als die Länge des längsten Kopfbereichs, der beim Empfang erwartet wird.
  • Entsprechende Bereiche eines gemeinsamen Blocks werden zueinander "synchronisiert", indem jeden Puffer eine Anzahl an Bits als Kennung für Puffer, die Daten oder einen Kopfbereich enthalten, die zu dem gleichen Block gehören, zugewiesen wird.
  • Wenn der Prozessor programmiert ist, um eine Kopfbereich/Datenaufteilung auszuführen, arbeiten zwei Empfangsdeskriptorringe als ein Funktionspaar. Wenn gemäß 23 eintref fende Daten einem Deskriptorring 1 zuzuführen sind, und eine Kopfbereich/Daten-Auftrennung auszuführen ist, wird der erste Empfangspuffer, der durch den Deskriptorring 1 bezeichnet ist, mit dem Empfangspaket gefüllt. Wenn der Puffer voll wird, aber das Paket noch nicht beendet ist, schaltet die Steuerung 124 auf den zweiten Deskriptorring um und setzt das Speichern des Restes des Paketes in den Puffern fort, die durch diesen Ring definiert sind. Der erste Deskriptor definiert den ersten Puffer jedes Blocks, während der zweite Ring die Puffer definiert, die den Rest des Blockes speichern. Dies ist detailliert in 24 gezeigt. Mittlerweise wird ein Zugriff auf den Kopfbereich und die Daten in den zwei physikalischen Speichern 125(a), 125(b) unter Anwendung einer Übergabeprozedur mit der Steuerung 124 ausgeführt, wie in 16(b) gezeigt ist.
  • Der Kopfbereich und Datenbereiche des gleichen Blocks sind miteinander durch Erkennungsbits in dem Statusfeld des Empfangsdeskriptors korreliert. Die Blockanzahlbits repräsentieren vorzugsweise eine Modulo-8-Zahl für jedes empfangene Paket in dem ersten und dem zweiten Empfangsring. Aufeinanderfolgende Pakete mit aufeinanderfolgenden Nummern und alle Deskriptoren eines einzelnen Paketes besitzen die gleiche Nummer, d. h. ein Kopfbereichspuffer in dem ersten Empfangsring und Datenpuffer in dem zweiten Empfangsring besitzen alle die gleiche Blocknummer. Dies vereinfacht die Korrelation der Deskriptoren, die Kopfbereiche und Daten der gleichen Blöcke enthalten, in den beiden Empfangsringen.
  • Gemäß einem weiteren Aspekte der Erfindung werden Empfangspakete über spezielle Deskriptorringe hinweg in dem Systemspeicher auf der Grundlage einer Eigenschaft jedes Paketes verteilt. In der FDDI kann die Paketeigenschaft durch Daten in dem FC-Feld definiert werden, das in 2 gezeigt ist. Wenn gemäß 25 das FC-Feld eines eintreffenden Paketes mit einer Eigenschaft des ersten Deskriptorring übereinstimmt, wird das Paket in einem Puffer gespeichert, auf den durch die ersten Deskriptors dieses Ringes verwiesen wird. Wenn das Paket die Kapazität des ersten Puffers übersteigt, wird ein zweiter Puffer gefüllt, auf dem von dem zweiten Deskriptor des gleichen Ringes verwiesen wird.
  • Es sei angenommen, dass das nächste Paket (Paket 2) ein FC-Feld aufweist, das mit dem Deskriptorring 2 übereinstimmt, und dass die Größe des Pakets geringfügig kleiner ist als die Kapazität des ersten Puffers. Das Paket 2 füllt teilweise den ersten Puffer des Rings 2, wie in 25 gezeigt ist. Ein drittes Paket von Empfangsdaten besitzt ein FC-Feld, das dem Deskriptorring 1 entspricht, und wird in dem nächsten verfügbaren Puffer gespeichert, auf das von dem Deskriptor 3 in dem Deskriptorring 1 gezeigt wird. Ein viertes Empfangspaket enthält ein FC-Feld, das dem Deskriptorring 2 entspricht, und das Paket wird in den nächsten verfügbaren Puffer gespeichert, auf den der zweite Ring zeigt, wie dies dargestellt ist. Die Speicherung empfangener Pakete auf der Grundlage einer gleichen Blockart ist detaillierter in 26 gezeigt. Die Auswahl physikalischer Speicher zum Speichern von Deskriptoren und Empfangsdaten wird durch Übergabeverfahren bzw. „Handschütteln" mit der Steuerung 124 ausgeführt, wie dies zuvor beschrieben ist.
  • Unter gewissen Umständen kann ein Empfangsring, zu dem ein Paket geleitet wird, blockiert sein. Ein Beispiel besteht darin, wenn der Ring voll ist und dieser kann keine weiteren Daten zur Speicherung in den jeweiligen Puffern empfangen. Ein weiteres Beispiel ist, wenn ein Paritätsfehler für diesen Deskriptor auftritt. In jedem Falle werden im „normalen" Betriebsmodus der Netzwerk-DMA-Steuerung 124 alle nachfolgenden Pakete in dem Empfangsweg blockiert, bis die Ursache der Blockierung abgestellt ist. Dieser Betriebsmodus nimmt an, dass ein großer Pufferspeicher für das Empfangen von Paketen in Empfangswarteschlangen eingerichtet werden kann, bis der blockierte Ring wieder einsatzfähig ist. Gemäß einem weiteren Aspekt der Erfindung gibt es einen Modus zum „Verwerfen bei blockierten Empfang", wobei Pakete, die zu einem blockierten Empfangsring zu leiten sind, verworfen werden und nachfolgende Pakete zu ihren entsprechenden Empfangswarteschlangen geleitet werden können. Dieser Modus ist nützlich, wenn ein kleiner Pufferspeicher (FIFO) in der Netzwerk-DMA-Steuerung verwendet wird.
  • Der Modus „Verwerfen bei blockiertem Empfang" ist in 27 gezeigt. Der Empfangs-FIFO 154 (siehe auch 8) bildet einen einzelnen Signalweg für Empfangspakete, die den vier Deskriptorringen auf der Grundlage des FC-Pakets zuzuführen sind. Alternativ werden in dem Betriebsmodus zum Trennen von Kopfbereichen/Daten der Steuerung 124 Pakete lediglich auf die beiden ersten Deskriptorringen DR1 und DR2 aufgeteilt. Ein Schalter 133, der vorzugsweise durch Firmware in der Netzwerk-DMA-Steuerung 124 eingerichtet ist, reagiert auf ein Signal, das von der Steuerung 124 erzeugt wird und anzeigt, dass einer der Deskriptorringe, der gerade ein Paket empfängt, nun blockiert ist. In Reaktion darauf leitet der Schalter 133 eintreffende Pakete, die zu verwerfen sind, um, wie gezeigt ist, anstatt dass diese einem zugeordneten Deskriptorring DR1 bis DRA4 zugeführt werden.
  • In dem normalen Betriebsmodus der Netzwerk-DMA-Steuerung 124 werden, wenn die Steuerung einen blockierten Deskriptorring erkennt, eintreffende Pakete weiterhin in dem FIFO 124 angesammelt. Wie erwähnt ist, ist eine Ansammlung nur dann akzeptabel, wenn der FIFO 154 relativ groß ist. Der normale Betriebsmodus der Steuerung 124 ist vorteilhaft, wenn ein großer FIFO 154 verfügbar ist, da dann keine Empfangsdaten verloren gehen.
  • Andererseits ist der Betriebmodus mit "Verwerfen bei blockiertem Empfang", der in 24 gezeigt ist, vorteilhaft, wenn ein relativ kleiner FIFO in dem System eingerichtet ist, da der FIFO 154 dann nie blockiert wird. Dies ermöglicht es, dass eintreffende Pakete weiterhin zu nicht blockierten Deskriptorringen weitergeleitet werden.
  • Mediumzugriffssteuerung 120
  • Die detaillierte in 5 gezeigte Mediumzugriffssteuerung 120 umfasst eine Kernmediumzugriffssteuerung (MAC) 162 zum Handhaben des FDDI-MAC-Protokolls. Der Daten-I/O-(Eingabe/Ausgabe)Anschluss der MAC 162 ist mit Sende- und Empfangs-FIFO's 164 und 166 verbunden. Daten, die aus dem Netzwerk erhalten werden, werden durch den Empfangs-FIFO 166 dem externen Pufferspeicher 126 zugeführt; Daten aus dem externen Puffer, die dem Netzwerk zuzuführen sind, werden in dem Sende-FIFO 164 gespeichert. Eine FIFO-Steuerschaltung 168 koordiniert das Einladen und Ausladen des Sende-FIFO's 164 und des Empfangs-FIFO's 166 auf der Grundlage von Speicherverteilungsentscheidungen, die von einer Speicherverteilungseinrichtung 170 getroffen werden.
  • Ein Adressengenerator 172 liefert die erforderlichen Adressen für den externen Pufferspeicher auf dem Adressenbus 136 auf der Grundlage der Zugriffsentscheidung der Verteilungseinrichtung, die bestimmt, ob das Netzwerk oder der Knotenprozessor auf den Pufferspeicher zugreifen kann. Eine Knotenprozessorschnittstelle 174, dessen Dateneingang durch den Adressengenerator 172 über ein Gatter bzw. ein Tor 173 gesteuert wird, dekodiert Befehle von dem Knotenprozessor, sammelt Chipstatusinformation und verteilt Steuerinformation durch die Steuerung 124.
  • Die Sende- und Empfangs-FIFO's 164 und 166, die chipintern zusammen mit der Mediumzugriffssteuerung 130 ausgebildet sind, speichern eine Anzahl von Datenpaketen in Abhängigkeit von hauptsächlich der Verarbeitungszeit des Systembusses und der Sequenz länge in ähnlicher Weise wie die Sende- und Empfangsabschnitte 152 und 154 der Netzwerk-DMA-Steuerung 124.
  • Pufferspeicher 126
  • Der Ausgabepufferspeicher 126, der allgemein in 6 und detailliert in 7 gezeigt ist, ist so ausgebildet, dass dieser aufweist: einen Empfangs-FIFO 175, der eine Warteschlange aus Daten enthält, die aus dem Netzwerk empfangen wurden, und mindestens einen und besser vier Sende/FIFO's 177, die jeweils eine Warteschlange aus Daten enthalten, die dem Netzwerk zuzuführen sind. Es sind in 7 vier Warteschlangen gezeigt, wie sie zuvor beschrieben sind, um eine einzelne synchrone Warteschlange und Warteschlangen zu repräsentieren, die drei Ebenen aus asynchronen Prioritäten für Daten entsprechend den FDDI-Spezifikationen enthalten. Wie die Datenprioritäten zueinander in Beziehung stehen und wie diese dem Netzwerk zugeführt werden, ist detailliert in den anhängigen Anmeldungen (3) und (4) dargelegt, die hiermit durch Bezugnahme mit eingeschlossen sind.
  • Das Format der Sendeblöcke, die in 9 gezeigt sind, besteht aus Daten an den Bitpositionen 0 bis 31 und einem Markierungsbit, woran sich ein Deskriptorwort anschließt. Das letzte Wort jedes Blocks sowie ein Deskriptorwort haben das Markierungsbit auf „1" gesetzt, wodurch das Ende des Blockes angegeben wird. Zu sendende Pakete werden in dem Systemspeicher durch den Host-Prozessor oder Knotenprozessor erstellt. Zeiger für „Lesen bzw. READ, „Schattenschreiben" bzw. SHADOW WRITE, „Schreiben" bzw. WRITE und „Ende der Andresse" bzw. END OF ADDRESS sind so positioniert, wie dies gezeigt ist.
  • Einladen von Sendeblöcken in den Pufferspeicher
  • Der Sendevorgang ist im Überblick in 10 dargestellt. Nach dem Erstellen der Daten in dem Systemspeicher im Schritt 182 überträgt die Netzwerk-DMA-Steuerung 124 (Schritt 184) die Daten von dem Systemspeicher zu dessen internen Sende-FIFO 152, der in 8 gezeigt ist, wenn die aktuelle Sendewarteschlange in dem Ausgabepuffer 126 als nicht „nahezu voll" entsprechend der anhängigen Anmeldung (4) bestimmt wird. Die Daten werden als nächstes von dem Sende-FIFO 152 zu dem (externen) Ausgabepufferspeicher 126 übertragen (Schritt 186). Genauer gesagt, die in 9 gezeigten Sendeblöcke werden von dem Host- und der Netzwerk-DMA-Steuerung 124 in dem Pufferspeicher 126 unter Steue rung der Mediumzugriffssteuerung 120 eingeladen. Diese wird in Reaktion auf eine Anforderung durch die Netzwerk-DMA-Steuerung 124 veranlasst, Daten in den Puffer 126 zu schreiben, die auf der Grundlage der speziellen Warteschlange, die angefordert wird, kodiert sind. Pakete werden vorzugsweise in den Puffer 126 zur gleichen Zeit eingeladen, wenn der Puffer für das Senden zu dem Netzwerk ausgelesen wird, um die Busauslastungseffizienz zu maximieren und die Verarbeitungszeiten zu minimieren, und um Überlastungs- oder Unterlastungsbedingungen zu vermeiden, wie dies in Verbindung mit 10(b) nachfolgend beschrieben ist.
  • Ausladen bzw. Abrufen von Sendeblöcken aus dem Pufferspeicher
  • Nachdem ein Block in den Pufferspeicher 126 eingeladen ist, wenn durch die Mediumzugriffssteuerung 124 bestätigt ist, dass ein gesamter Block eingeladen ist oder dass die Anzahl an Wörtern des Blockes, die in den Speicher geschrieben sind, einen Sendeschwellwert übersteigt, ist der Block für das Senden an das Netzwerk bereit.
  • Wenn eine Übertragung an das Netzwerk für das System möglich ist, d. h. wenn ein Berechtigungszeichen auf dem FDDI-Netzwerk zum Senden einer Warteschlange erkannt wird und die Übertragungsbedingungen für diese Warteschlange erfüllt sind, beginnt die Übertragung und der Block wird von der Mediumzugriffssteuerung 124 ausgelesen, bis das Ende des Blockes, das durch eine logische „1" im Markierungsbit gekennzeichnet ist, erkannt wird. In dieser Phase werden Datenblöcke bereits in den Puffer für die nachfolgende Sendung eingelesen, bevor der Puffer geleert wird. D. h., während des Sendens und nach dem vollständigen Übertragen eines Blockes liest die Mediumzugriffssteuerung 124 mehr Daten aus der ausgewählten Warteschlange des FIFO's in ihren chipinternen Sende-FIFO's 164 zur Übertragung aus, wenn ein vollständiger Block in dem Puffer vorhanden ist oder wenn der Inhalt des Puffers den Sendeschwellwert übersteigt. Wenn keine der Bedingungen erfüllt ist, prüft die Mediumzugriffssteuerung 124 andere Warteschlangen in der Reihenfolge ihrer Priorität für das Übertragen.
  • Die Übertragung aus einer Warteschlange heraus ist abgeschlossen, wenn die Warteschlange leer ist. Wenn jedoch der Sende-FIFO 164 mitten in einem Block geleert wird, wird eine Unterlaufbedingung erzeugt und der aktuelle Block wird abgebrochen.
  • Wie die Übertragung von Daten von dem System zu dem Netzwerk ausgeführt wird, wenn zumindest ein voller Block oder zumindest eine vorbestimmte Menge an Sendedaten in dem Puffer 126 vorhanden ist, wird detaillierter in der anhängigen Anmeldung (2) beschrieben.
  • Warteschlangen mit Sendedaten, die in dem Pufferspeicher gespeichert sind, besitzen das in 11 gezeigte Format, wobei jeder Block lange Wörter, die durch ein Markierungsbit „0" und mindestens ein langes Wort, das durch ein Markierungsbit „1" gekennzeichnet ist, enthält. Nach dem letzten Wort des Pakets befindet sich ein Statuswort, das ebenfalls durch das Markierungsbit „1" gekennzeichnet ist. Das Statuswort gibt den Status des Datenpuffers sowie den Status des Pakets an, das eine Anzahl vorbestimmter Bits enthält, d. h., Bits, die angeben, an welcher Bytegrenze das letzte Wort der Daten endet, und Bits, die aus dem Status kopiert werden, den die Netzwerk-DMA-Steuerung aus dem Systemspeicher erhält, und ein Bit, das angibt, ob das Paket einen Fehler enthält und abgebrochen werden sollte.
  • Einladen von Empfangspaketen in dem Pufferspeicher
  • Der Empfang von Paketen im Blockformat, wie dies im Überblick in 12(a) gezeigt ist, erfordert das Empfangen von Datenpaketen durch die Mediumzugriffssteuerung 124 zur Speicherung in dem externen Pufferspeicher 126 (Schritt 190) und das Übertragen der Paketdaten von Puffer zu dem internen Empfangs-FIFO 154 der Netzwerk-DMA-Steuerung 124 (Schritt 192). Das Format der Empfangsblöcke, die in dem Pufferspeicher 126 gespeichert sind, ist in 13 gezeigt.
  • Pakete, die von dem Netzwerk empfangen und von der Mediumzugriffssteuerung 120 in dem Pufferspeicher 126 gespeichert werden, sind in dem Speicher in einer Weise angeordnet, wie dies in 14 gezeigt ist. Die Empfangspakete in dem Pufferspeicher werden zusammenhängend aufeinanderfolgend abgelegt, so dass bewirkt wird, dass der Pufferspeicherempfangsbereich die Konfiguration einer ringartigen Warteschlange aufweist. Am Ende jedes Pakets speichert die Mediumzugriffssteuerung 120 den Status des Pakets. Das Markierungsbit wird auf 0 für Daten und auf 1 zur Kennzeichnung des Statusworts gesetzt.
  • Ausladen bzw. Abrufen von Empfangsblöcken aus dem Pufferspeicher
  • Wenn die in dem Puffer 126 gespeicherte Datenmenge einen Empfangsschwellwert übersteigt, überträgt die Netzwerk-DMA-Steuerung 124 die Paketdaten von dem internen Empfangs-FIFO 154 zu dem Systemspeicher, der von dem Host- oder Knotenprozessor zu verarbeiten ist. Dies wird durch die Mediumzugriffssteuerung 120 gesteuert, die die Netzwerk-DMA-Steuerung 124 anweist, Daten von dem Pufferspeicher 126 in dem Systemspeicher zu übertragen. Dies findet statt, wenn die Anzahl an Wörtern in dem Pufferspeicher einen programmierten Empfangsschwellwert übersteigt. Eine Überlaufbedingung der Empfangspufferwarteschlange während des Empfangs von Blöcken wird durch das Statuswort angegeben, wodurch angezeigt wird, dass der Block geleert werden sollte.
  • Wie das Empfangen von Daten durch das System ausgeführt wird, wenn mindestens eine vorbestimmte Menge an Empfangsdaten in dem Empfangs-FIFO oder dem Puffer 126 enthalten ist, ist detaillierter in der anhängigen Anmeldung (2) beschrieben.
  • Schnittstelle zwischen Netzwerkzugriff und DMA-Steuerung
  • 15 zeigt Signallaufwege zwischen der Mediumzugriffssteuerung 120, der Netzwerk-DMA-Steuerung 124 und dem Pufferspeicher 126. Ein Pufferdatenbus BDATA, der zwischen der Mediumzugriffssteuerung 120 und der Netzwerk-DMA-Steuerung 124 angeschlossen ist und auch mit dem Puffer 126 verbunden ist, ist vorzugsweise ein 32-Bit-Bus, und eine zusätzliche Leitung BTAG transportiert das Markierungsbit, das definiert, ob der BD-Bus Blockdaten oder den Blockstatus des Blockes enthält. Der Bus BDP überträgt Pufferspeicherdatenparitätsbits für den BD-Bus und den BDATA-Bus. Diese drei Busse, d. h. BDATA, BTAG und BDP sind dem Pufferspeicher 126 zugeleitet. Ferner ist dem Pufferspeicher 126 auch ein Adressenbus BADDR zugeleitet, der eine Adresse führt, die von Mediumzugriffssteuerung 120 bereitgestellt wird, vorzugsweise eine 16-Bit-Adresse ist.
  • Signale, die zum Übermitteln an das Netzwerk erforderlich sind, werden in jeder geeigneten Anzahl unterschiedlicher Warteschlangen bereitgestellt, abhängig von der Priorität, wie dies in der anhängigen Anmeldung (3) zuvor beschrieben ist, wobei dies durch die Daten auf dem Steuerbus QCNTRL bestimmt ist. Der Steuerungsbus QCNTRL gibt auch der Netzwerk-DMA-Steuerung 124 bekannt, dass eine Warteschlange, die zuvor voll war, nunmehr bereit ist, weitere Daten aufzunehmen.
  • Der QCMTRL-Bus überträgt auch Daten, die Übertragungsbedingungen von Daten zu jeweils einer der Warteschlangen angeben, d. h., für die synchrone Warteschlange und die drei Ebenen der asynchronen Warteschlangen, um Daten zu dem Medium zu übertragen. Die Übertragungsbedingungen, die von der Mediumzugriffssteuerung 120 bereitgestellt werden, informieren die Netzwerk-DMA-Steuerung 124, dass die Steuerung 120 das Berechtigungszeichen besitzt und aktuell diese spezielle Warteschlange von dem Pufferspeicher 126 zu dem Medium überträgt.
  • Ein Bus HSACK (Host-Bestätigung) überträgt ein Signal, das angibt, dass eine aktuelle Schreib- oder Leseanforderung der Netzwerk-DMA-Steuerung von der Mediumzugriffssteuerung 120 gewährt bzw. akzeptiert ist. Zusammen mit diesem Signal wird der Pufferspeicher 126 aktiviert und Daten liegen auf dem BD-(Busdaten), BDP-(Busdatenpriorität) und BDTAG-Bus.
  • RDATA wird gesetzt, wenn die Mediumzugriffssteuerung 120 empfangene Daten aus dem Netzwerk in dem Pufferspeicher abgelegt hat, wobei diese Daten von der Netzwerk-DMA-Steuerung 124 zu dem Systemspeicher zu übertragen sind. In Reaktion darauf fordert die Netzwerk-DMA-Steuerung Zugriff zum Bus, was von der Mediumzugriffssteuerung 120 bestätigt wird. Die Mediumzugriffssteuerung 120 speichert Netzwerkdaten in dem Pufferspeicher 126 an der Adresse, die durch die Daten auf dem BADDR-Bus spezifiziert ist, und die in dem Puffer gespeicherten Daten werden anschließend zu der Netzwerk-DMA-Steuerung 124 übertragen in Reaktion auf ein Setzen des Lese-Anschlusses des Puffers durch die Mediumzugriffssteuerung 120.
  • Die Übergabeprozedur bzw. das "Handschütteln" zwischen der Netzwerk-DMA-Steuerung 124 und der Mediumzugriffssteuerung 120, das über dem Host-Anforderungsbus HSREQ ausgeführt wird, ist in 15 und in den Zeitablaufdiagrammen der 17 bis 19 gezeigt. Gemäß 15 und 17 wird die zeitliche Abfolge der Signale auf den Bussen, die eine Verbindung zwischen der Netzwerkzugriffssteuerung 120, der Netzwerk-DMA-Steuerung 124 und dem Puffer 126 herstellen, mit einem Pufferspeichertaktsignal BMCLK, das in der Figur gezeigt ist, synchronisiert, und RDATA wird gesetzt, um anzugeben, dass die Empfangsdaten in dem Pufferspeicher 126 bereit sind, von der Netzwerk-DMA-Steuerung 124 ausgelesen zu werden. In Reaktion auf RDATA führt die Netzwerk-DMA-Steuerung 124 eine Host-Anforderung auf dem Host-Anforderungsbus HSREQ aus, wobei eine geeignete Kodierung angewendet wird, um die Netzwerkzugriffssteuerung 120 anzuweisen, Datenblöcke aus dem Netzwerk auszulesen. Die Netzwerkzugriffssteuerung bzw. Mediumzugriffssteuerung 120 verwaltet die Verteilung am Bus des Pufferspeichers 126 und liefert eine Bestätigung über HSACK. Die Netzwerkzugriffssteuerung adressiert ferner den Pufferspeicher 126 durch Zeigen auf die Position, an der die Daten liegen, setzt einen Lesebefehl für den Puffer und speichert Daten aus dem Puffer über BDATA für die Speicher-DMA-Steuerung 124.
  • Somit speichert die Netzwerkzugriffssteuerung 120 Netzwerkdaten in Blöcken in dem Pufferspeicher 126 und wenn die Datenmenge darin den Empfangsschwellwert RTHR übersteigt, setzt die Steuerung 120 das Signal RDATA, um die Netzwerk-DMA-Steuerung 124 zu veranlassen, Deskriptoren aus dem Systemspeicher abzuholen, um zu bestimmen, wo die Netzwerkdaten in dem Systemspeicher zu speichern sind. Wenn der Puffer in dem Systemspeicher, auf den der Deskriptor zeigt, verfügbar wird, liefert die DMA-Steuerung 124 ein Host-Bestätigungssignal HSACK zu der Netzwerkzugriffssteuerung 120. Die Netzwerkzugriffssteuerung 120 führt in Reaktion darauf eine Aufgabenverteilungsfunktion durch, da diese bereits durch das Senden von Daten zum Netzwerk oder durch das Ausführen anderer Funktionen beschäftigt sein kann. Wenn die Netzwerkzugriffssteuerung 120 verfügbar ist, liefert diese eine Bestätigung (HSACK) an die DMA-Steuerung 124 zurück und gibt dann eine Speicheradresse mit einem anschließenden Lesebefehl an den Puffer 126 aus. Die in dem Puffer 126 adressierten Daten werden auf BDATA ausgegeben und in der Netzwerk-DMA-Steuerung 124 zwischengespeichert, um den zugewiesenen Puffer in dem Systemspeicher zugeführt zu werden, um damit die Übergabe zu vervollständigen, die zum Empfangen von Daten aus dem Netzwerk erforderlich ist.
  • Aus 18 wird durch die Abfolge der Signale auf den Bussen während des Sendens von Blöcken zu dem Netzwerk angenommen, dass die Netzwerk-DMA-Steuerung 124 bereits auf Puffer in dem Systemspeicher zugegriffen hat, auf die von den Deskriptoren gezeigt wird, wobei die Daten zu dem Netzwerk zu übertragen sind, da entweder ein voller Block von Sendedaten vorhanden ist oder die Datenmenge in dem Puffer den Sendeschwellwert XTH übersteigt. Die aktuell zu übertragenden Daten sind in dem chipinternen FIFO 152 in 8 abgelegt und sind bereit, zu dem logischen FIFO in dem Pufferspeicher 126 übertragen zu werden. In Reaktion auf eine Host-Anforderung zum Übertragen von Daten zum Netzwerk liefert die Netzwerk-DMA-Steuerung ein Host-Anforderungssignal HSREQ an die Netzwerkzugriffssteuerung 120, wodurch angegeben wird, dass der Host eine Schreiboperation in das Netzwerk anfordert. Die spezielle Warteschlange, in die der Host schreiben will, wird durch die Kodierung auf dem HSREQ-Bus bestimmt. In dem vorliegenden Beispiel wird angenommen, dass der Host anfordert, in die synchronisierte Warteschlange zu schreiben, so dass die synchronisierten Datenblöcke dem Netzwerk zugeführt werden. Daraufhin trifft die Netzwerkzugriffssteuerung 120 eine Entscheidung und wenn Zeit verfügbar ist, wird ein Bestätigungssignal zu dem Host (HSACK) gesendet. Die Netzwerkzugriffssteuerung 120 liefert die Adresse an den Pufferspeicher 126, wo darin Datenblöcke, die an das Netzwerk zu übertragen sind, zeitweilig abgelegt sind, und liefert einen Schreibpuls an den Puffer. Daten, die von der Netzwerk-DMA-Steuerung 124 auf dem BDATA-Bus entsprechend bereitgestellt werden, werden in den logischen FIFO geschrieben, der in dem Pufferspeicher 126 an der Position gebildet ist, die durch die Netzwerkzugriffssteuerung 120 auf dem BDADDR spezifiziert ist.
  • Wenn keine weiteren Daten mehr zum Netzwerk zu übertragen sind, liefert die Netzwerk-DMA-Steuerung 124 keine weiteren Anforderungen auf den HSREQ zu der Netzwerkzugriffssteuerung 120. Wenn zusätzliche Daten zum Netzwerk zu übertragen sind, bleibt andererseits der HSREQ-Bus aktiv, und wenn die Netzwerkzugriffssteuerung 120 entscheidet, dass Zeit verfügbar ist, liefert diese eine weitere Adresse und einen Schreibpuls zum Puffer 126, nachdem eine Bestätigung für die Steuerung 124 auf den Bus HSACK erfolgte.
  • 19 zeigt die zeitliche Abhängigkeit von Daten auf den Bussen während Lese- und Schreibopertionen mit „Rücken an Rücken" bzw. back-to-back. In dem gezeigten Beispiel ist die Netzwerkzugriffssteuerung 120 anfänglich mit einem Schreibvorgang beschäftigt und führt danach eine Leseoperation aus und kehrt dann zu einer Schreiboperation zurück. Die Signale, die den diversen beteiligten Bussen zugeführt werden, entsprechen aufeinanderfolgend jenen, die in den 17 und 18 gezeigt sind.
  • Es ist eine effiziente Verwaltung von Daten in einer Netzwerkschnittstelle in mehrfacher Hinsicht beschrieben. Daten können von einer DMA-Steuerung von einem beliebigen von zwei oder mehr physikalischen Speichern auf separaten Bussen zusammengestellt werden. Die beiden Speicher können ein Host-Speicher und ein Knotenprozessorspeicher in einer Systemarchitektur sein, in der ein Knotenprozessor die Protokollverarbeitung ausführt, wäh rend ein Host die Daten bereitstellt. Sendeblöcke werden aus zwei Speichern selektiv zusammengestellt, indem ein Übergabe- bzw. „Handschlag"-Protokoll mit zwei Gruppen aus Anforderungs/Gewährungssignalen eingerichtet wird. Ein Deskriptorring zusammen mit dem ersten Puffer, der jeden Block speichert, ist in einem der Speicher vorgesehen (beispielsweise dem Knotenprozessorspeicher). Verbleibende Puffer für den Block sind in dem anderen Speicher (beispielsweise dem Host) vorgesehen. Der erste Puffer ist dimensioniert, um lediglich den Kopfbereich des Blocks zu speichern.
  • Empfangsblöcke können in mehreren Deskriptorringen in den beiden Speichern gespeichert werden. Deskriptoren und Kopfbereiche von Empfangsblöcken können in einem einzelnen Speicher gespeichert werden, während Datenbereiche und Deskriptoren in dem anderen Speicher gespeichert werden können.
  • Das Übergabeprotokoll bzw. „Handschlag"-Protokoll ermöglicht Zugriff auf den einen Speicher oder den anderen, die auf separaten Bussen untergebracht sind, durch die DMA-Steuerung. Puffer, die den Kopfbereich und Datenbereichen jedes Blockes enthalten, werden miteinander „synchronisiert" durch eine gemeinsame Blocknummer, die von dem Kopfbereich und Datendeskriptoren übermittelt wird.
  • Jeder Empfangsblock enthält ein Erkennungsfeld, etwa ein FC-Feld in einem FDDI-Protokoll. Der Deskriptorring, in welchem der Block gespeichert wird, wird dadurch erkannt, dass der Inhalt des Erkennungsfeldes mit einer entsprechenden Kennung, die mit dem Ring verknüpft ist, übereinstimmt. Wenn es einen blockierten Deskriptorring gibt, was beim vollen Ring oder bei den Paritätsfehler auftreten kann, wird in einem weiteren Aspekt der Erfindung ein Blockieren des Empfangsweges verhindert, um damit zu ermöglichen, dass Blöcke mit Zielen, die keine markierten Ringe sind, weiterhin empfangen werden können. In einem Betriebsmodus „verwerfen" und in Reaktion auf einen blockierten Ring verwirft die DMA-Steuerung nachfolgende Blöcke, die für den blockierten Ring eintreffen. Während dem normalen Betriebsmodus der Steuerung werden für den blockierten Deskriptorring eintreffende Blöcke in einem FIFO-Speicher mit begrenzter Kapazität innerhalb des Empfangswegs gespeichert.
  • In dieser Beschreibung ist lediglich die bevorzugte Ausführungsform der Erfindung gezeigt und beschrieben, wobei zu beachten ist, wie zuvor dargelegt ist, dass die Erfindung in di versen anderen Verbindungen und Umgebungen eingesetzt werden kann und dass Änderungen oder Modifizierungen innerhalb des Schutzbereichs des erfindungsgemäßen Konzepts, wie es hierin dargestellt ist, durchführbar sind. Obwohl die Erfindung beispielsweise im Zusammenhang mit FDDI beschrieben ist, ist die Erfindung nicht darauf eingeschränkt.

Claims (18)

  1. Netzwerksteuerung für einen Netzwerkadapter mit mehreren Prozessoren und mindestens einem ersten Speicher (125a) und einem zweiten Speicher (125b) zum Speichern von Daten, die in Blöcken angeordnet sind, wobei die Blöcke Informationen zur Identifizierung einer Blockeigenschaft enthalten, wobei die Netzwerksteuerung umfasst: einen FIFO-Speicher; einen Empfangsweg durch den FIFO-Speicher zu dem ersten und dem zweiten Speicher; und eine Einrichtung zum Speichern von Empfangsblöcken, die auf dem Empfangsdatenweg zu einem Deskriptorring, der der Blockeigenschaft entspricht, eintreffen; eine Einrichtung (120, 124) zum Einrichten mehrerer Puffer an beliebigen Speicherplätzen in dem ersten und dem zweiten Speicher; eine Einrichtung (120, 124) zum freien Einrichten von Deskriptoren in dem ersten und dem zweiten Speicher in zusammenhängenden Speicherstellen, wobei die Deskriptoren mehrere Deskriptorringe bilden, die auf die Puffer zeigen, wobei die Deskriptoren jedes Ringes auf den ersten oder den zweiten Speicher zeigen; und eine Einrichtung (133) zum Erkennen eines blockierten Deskriptorringes und, in Reaktion darauf, zum Verwerfen nachfolgender Blöcke, die an dem blockierten Deskriptorring eintreffen.
  2. Netzwerksteuerung nach Anspruch 1, wobei die Deskriptoren jedes Ringes jeweils ein Kennzeichen aufweisen, das auf den ersten oder den zweiten Speicher zeigt, und wobei jeder Block ein Blocksteuerungsfeld (FC) mit Daten enthält, die eine Blocksteuerungscodierung repräsentieren, und wobei ein spezieller Ring unter den mehreren Deskriptorringen zum Speichern eines Empfangsblocks entsprechend dem Inhalt des Blocksteuerungsfeldes des Empfangsblocks ausgewählt wird.
  3. Netzwerksteuerung nach Anspruch 1 für ein fasergestütztes digitales Schnittstellen-(FDDI)Netzwerk mit Host-Prozessoren und Knotenprozessoren, die jeweils einen ersten (125a) und einen zweiten Speicher (125b) zum Speichern von Daten, die in Blöcken angeordnet sind, aufweisen, wobei jeder Block ein Blocksteuerungsfeld (FC) aufweist; und wobei eine Einrichtung vorgesehen ist, um einen Ring zum Speichern eines Empfangsblockes gemäß dem Inhalt des Blocksteuerungsfeldes des Empfangsblockes auszuwählen.
  4. Netzwerksteuerung nach Anspruch 1, wobei die Puffer in dem ersten und dem zweiten Speicher entsprechend eine erste und eine zweite Länge aufweisen; wobei eine Einrichtung zum Speichern erster Deskriptoren in zusammenhängenden Speicherplätzen vorgesehen ist, die einen ersten Deskriptorring in dem ersten Speicher (125a) bilden und die auf Puffer zum Speichern eines ersten empfangenen Bereichs jedes Blockes aus Empfangsdaten in dem ersten oder dem Speicher zeigen; und eine Einrichtung zum Speichern zweiter Datendeskriptoren an zusammenhängenden Speicherplätzen vorgesehen ist, die einen zweiten Deskriptorring in dem zweiten Speicher (125) bilden, die auf Puffer mit nachfolgend empfangenen Bereichen jedes Empfangsblockes in dem ersten oder dem zweiten Speicher zeigen.
  5. Netzwerksteuerung nach Anspruch 4, wobei jeder Deskriptorring und seine zugeordneten Puffer in dem gleichen Speicher enthalten sind.
  6. Netzwerksteuerung nach Anspruch 4, die eine Einrichtung zum Korrelieren von Daten eines gemeinsamen Blockes, der unterschiedlichen Deskriptorringe zugeordnet ist, aufweist.
  7. Netzwerksteuerung nach Anspruch 6, wobei die korrelierende Einrichtung eine Blocknummer in jedem Block der Empfangdaten aufweist.
  8. Netzwerksteuerung nach Anspruch 1, wobei die Blöcke jeweils einen Kopfbereich und einen Datenbereich aufweisen, mit: einer Einrichtung zum Speichern von Kopfbereichdeskriptoren in zusammenhängenden Speicherplätzen, die einen Kopfbereichdeskriptorring in dem ersten Speicher bilden, der auf Puffer, die Kopfbereiche von Empfangsdaten enthalten, in dem ersten oder dem zweiten Speicher zeigt, und einer Einrichtung zum Einrichten von Datendeskriptoren in zusammenhängenden Speicherplätzen, die einen Datendeskriptorring in dem zweiten Speicher bilden, der auf Puffer, die Empfangsdaten enthalten, in dem ersten oder dem zweiten Speicher zeigen, wobei jeder Puffer mindestens einen Teil der Empfangsdaten in einem Block speichert.
  9. Netzwerksteuerung nach Anspruch 8, die eine Einrichtung zum Korrelieren entsprechender Kopfbereich/Daten-Paare aufweist.
  10. Netzwerksteuerung nach Anspruch 8, wobei die korrelierende Einrichtung eine Blocknummer in jedem Block der Empfangsdaten aufweist.
  11. Netzwerksteuerung nach Anspruch 1, die umfasst: eine Einrichtung zum Empfangen eintreffender Datenpakete, wobei jedes Paket Daten enthält, die einen Deskriptor kennzeichnen, der auf einen entsprechenden Puffer zeigt, und zum Weiterleiten der Pakete durch einen Pufferspeicher (126) zu dem ersten und dem zweiten Speicher; eine Einrichtung zum Speichern des eintreffenden Datenpakets in dem Puffer, auf den von dem zugeordneten Deskriptor gezeigt wird; eine erste Einrichtung, die auf einen erkannten blockierten Ring und einen normalen Steuerungsmodus der Netzwerksteuerung reagiert, um nachfolgende eintreffende Pakete in dem Pufferspeicher (126) zu speichern; und eine zweite Einrichtung, die auf den erkannten blockierten Ring und einen Verwertungs-Steuerungsmodus der Netzwerksteuerung reagiert, um nachfolgende eintreffende Pakete zu verwerfen.
  12. Verfahren zum Verarbeiten von Empfangsblöcken für einen Netzwerkadapter mit mehreren Prozessoren, einem FIFO-Speicher mit mindestens einem ersten und einem zweiten Speicher, einem Empfangsdatenweg durch den FIFO-Speicher zu dem ersten und dem zweiten Speicher zum Speichern von in Blöcken angeordneten Empfangsdaten in Puffern, wobei die Blöcke Informationen enthalten, die eine Blockeigenschaft kennzeichnen, wobei das Verfahren des Verarbeitens von Empfangsblöcken die Schritte umfasst: Speichern von Empfangsblöcken, die auf dem Empfangsdatenweg bei einem Deskriptorring eintreffen, der der Blockeigenschaft entspricht, wobei das Verfahren ferner umfasst: Speichern mehrerer Puffer in beliebigen Plätzen in dem ersten und dem zweiten Speicher, Einrichten erster Deskriptoren in zusammenhängenden Plätzen, die einen ersten Deskriptorring in dem ersten Speicher bilden, der auf Puffer zum Speichern eines ersten empfangenen Bereichs jedes Blockes aus Empfangsdaten in dem ersten oder dem zweiten Speicher zeigt, und Einrichten zweiter Datendeskriptoren an zusammenhängenden Plätzen, die einen zweiten Deskriptorring in dem zweiten Speicher bilden, der auf Puffer, die nachfolgend empfangene Bereiche jedes Empfangsblockes enthalten, in dem ersten oder dem zweiten Speicher zeigt, wobei das Verfahren ferner die Schritte umfasst: Erkennen eines blockierten Deskriptorringes in dem Empfangsdatenweg und, in Reaktion darauf, Verwerfen nachfolgender Blöcke, die an dem blockierten Deskriptorring eintreffen.
  13. Verfahren nach Anspruch 12, wobei die Puffer in dem ersten und dem zweiten Speicher entsprechend eine erste und eine zweite Länge aufweisen, wobei die erste Länge kleiner ist als die zweite Länge.
  14. Verfahren nach Anspruch 12, wobei die ersten Deskriptoren Kopfbereichdeskriptoren und die zweiten Deskriptoren Datendeskriptoren sind.
  15. Verfahren nach Anspruch 14, das ferner den Schritt des Erzeugen korrelierter Kopfbereich/Daten-Paare umfasst.
  16. Verfahren nach Anspruch 15, wobei der Schritt des Erzeugen der Korrelation umfasst: Zuordnen einer gemeinsamen Blocknummer zu jedem Kopfbereich/Daten-Paar.
  17. Verfahren nach Anspruch 12, wobei der Netzwerkadapter selektiv in einem normalen und einem Verwerfmodus betrieben wird, wobei das Verfahren zum Steuern eines Empfangsdatenstromes die Schritte umfasst: in Reaktion auf einen erkannten blockierten Ring und bei normalem Betriebsmodus des Adapters, Speichern nachfolgender an dem Adapter eintreffender Pakete in dem Pufferspeicher; und in Reaktion auf das Erkennen eines blockierten Ringes und bei Verwerfbetriebsmodus des Adapters, Verwerfen nachfolgender Pakete, die an dem Adapter eintreffen.
  18. Verfahren nach Anspruch 13, wobei die Deskriptoren jedes Ringes eine Markierung aufweisen, die auf den ersten oder den zweiten Speicher zeigt; und wobei das Verfahren umfasst: Erkennen von Informationscodierungssignalen in eintreffenden Blöcken aus Empfangsdaten; Korrelieren jedes Informationscodierungssignals mit einem speziellen Deskriptorring; und Speichern jedes eintreffenden Blockes aus Empfangsdaten in einem Puffer, auf den von dem speziellen Deskriptorring gezeigt wird.
DE69133569T 1990-05-29 1991-05-28 Netzschnittstelle Expired - Lifetime DE69133569T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/529,362 US5136582A (en) 1990-05-29 1990-05-29 Memory management system and method for network controller
US529362 1990-05-29

Publications (2)

Publication Number Publication Date
DE69133569D1 DE69133569D1 (de) 2007-05-31
DE69133569T2 true DE69133569T2 (de) 2007-12-27

Family

ID=24109604

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69131971T Expired - Lifetime DE69131971T2 (de) 1990-05-29 1991-05-28 Netzwerkanpassungseinrichtung mit Puffer und Mehrbeschreibungskreis
DE69133569T Expired - Lifetime DE69133569T2 (de) 1990-05-29 1991-05-28 Netzschnittstelle

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69131971T Expired - Lifetime DE69131971T2 (de) 1990-05-29 1991-05-28 Netzwerkanpassungseinrichtung mit Puffer und Mehrbeschreibungskreis

Country Status (5)

Country Link
US (2) US5136582A (de)
EP (2) EP0797335B1 (de)
JP (1) JP3448067B2 (de)
AT (2) ATE189753T1 (de)
DE (2) DE69131971T2 (de)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
US5249271A (en) * 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
DE69131272T2 (de) * 1990-11-13 1999-12-09 Ibm Paralleles Assoziativprozessor-System
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5752067A (en) * 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
US5440690A (en) * 1991-12-27 1995-08-08 Digital Equipment Corporation Network adapter for interrupting host computer system in the event the host device driver is in both transmit and receive sleep states
US5293487A (en) * 1991-12-27 1994-03-08 Digital Equipment Corporation Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting
EP0551191B1 (de) * 1992-01-09 2000-04-12 Cabletron Systems, Inc. Vorrichtung und Verfahren zur Datenübertragung zu und von einem Wirtrechnersystem
US5305321A (en) * 1992-02-24 1994-04-19 Advanced Micro Devices Ethernet media access controller with external address detection interface and associated method
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5434872A (en) * 1992-07-28 1995-07-18 3Com Corporation Apparatus for automatic initiation of data transmission
US6487626B2 (en) * 1992-09-29 2002-11-26 Intel Corporaiton Method and apparatus of bus interface for a processor
US5363485A (en) * 1992-10-01 1994-11-08 Xerox Corporation Bus interface having single and multiple channel FIFO devices using pending channel information stored in a circular queue for transfer of information therein
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
CA2125607A1 (en) * 1993-06-30 1994-12-31 David Thielen Method and system for buffering transient data
US5664223A (en) * 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5448558A (en) * 1994-04-05 1995-09-05 International Business Machines Corporation Method and apparatus for managing packet FIFOS
US5606665A (en) * 1994-07-01 1997-02-25 Digital Equipment Corporation Buffer descriptor prefetch in network and I/O design
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US5502719A (en) * 1994-10-27 1996-03-26 Hewlett-Packard Company Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US5805924A (en) * 1994-11-08 1998-09-08 Stoevhase; Bent Method and apparatus for configuring fabrics within a fibre channel system
US6351780B1 (en) * 1994-11-21 2002-02-26 Cirrus Logic, Inc. Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated
JP3531074B2 (ja) * 1994-11-28 2004-05-24 富士通株式会社 記憶装置制御システム
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5519701A (en) * 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means
US5774745A (en) * 1995-03-31 1998-06-30 Cirrus Logic, Inc. Method and apparatus for writing and reading entries in an event status queue of a host memory
ATE224620T1 (de) * 1995-05-08 2002-10-15 Koninkl Kpn Nv Anordnung und methode für protokollumsetzung
US5961614A (en) 1995-05-08 1999-10-05 Apple Computer, Inc. System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal
US5608341A (en) * 1995-05-09 1997-03-04 Level One Communications, Inc. Electrical circuit for setting internal chip functions without dedicated configuration pins
US5838915A (en) * 1995-06-21 1998-11-17 Cisco Technology, Inc. System for buffering data in the network having a linked list for each of said plurality of queues
US5793953A (en) * 1995-07-07 1998-08-11 Sun Microsystems, Inc. Method and apparatus for allowing packet data to be separated over multiple bus targets
EP0752664A3 (de) * 1995-07-07 2006-04-05 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Meldung der Datenübertragung zwischen Hardware und Software
US5740448A (en) * 1995-07-07 1998-04-14 Sun Microsystems, Inc. Method and apparatus for exclusive access to shared data structures through index referenced buffers
US5675829A (en) * 1995-07-07 1997-10-07 Sun Microsystems, Inc. Method and apparatus for coordinating data transfer between hardware and software by comparing entry number of data to be transferred data to entry number of transferred data
US5748612A (en) * 1995-08-10 1998-05-05 Mcdata Corporation Method and apparatus for implementing virtual circuits in a fibre channel system
DE69525531T2 (de) * 1995-09-04 2002-07-04 Hewlett Packard Co Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
US5748634A (en) * 1995-09-14 1998-05-05 Level One Communications, Inc. Method and apparatus for implementing a two-port ethernet bridge using a semaphoring technique
US5764638A (en) * 1995-09-14 1998-06-09 Level One Communications, Inc. Method and apparatus for filtering and forwarding messages in a computer network using a last source address
US5742603A (en) * 1995-09-14 1998-04-21 Level One Communications, Inc. Method and apparatus for integrating repeater management, media access control, and bridging functions
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US5592160A (en) * 1995-10-26 1997-01-07 Hewlett-Packard Company Method and apparatus for transmission code decoding and encoding
US5870627A (en) * 1995-12-20 1999-02-09 Cirrus Logic, Inc. System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5768530A (en) * 1995-12-28 1998-06-16 Emc Corporation High speed integrated circuit interface for fibre channel communications
US5797039A (en) * 1995-12-29 1998-08-18 Intel Corporation Method of efficiently sending packets onto a network by eliminating an interrupt
US5859980A (en) * 1996-02-08 1999-01-12 Advanced Micro Devices, Inc. Network interface having adaptive transmit start point for each packet to avoid transmit underflow
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US5854900A (en) * 1996-05-31 1998-12-29 Advanced Micro Devices, Inc. Method and apparatus avoiding capture effect by adding a slot time to an interpacket gap interval in a station accessing an ethernet network
US5878028A (en) * 1996-06-06 1999-03-02 Advanced Micro Devices, Inc. Data structure to support multiple transmit packets for high performance
US5933654A (en) * 1996-09-24 1999-08-03 Allen-Bradley Company, Llc Dynamic buffer fracturing by a DMA controller
FR2755811B1 (fr) * 1996-11-08 1999-07-23 Bartha Rudolf Reseau local securise de transmission multiprotocole
US5873121A (en) * 1996-11-19 1999-02-16 Advanced Micro Devices, Inc. Efficient memory management system for minimizing overhead in storage of data transmitted in a network
US5933413A (en) * 1997-01-13 1999-08-03 Advanced Micro Devices, Inc. Adaptive priority determination for servicing transmit and receive in network controllers
US6487212B1 (en) * 1997-02-14 2002-11-26 Advanced Micro Devices, Inc. Queuing structure and method for prioritization of frames in a network switch
US5892772A (en) * 1997-04-15 1999-04-06 Lockheed Martin Corporation Spatial reuse by means of dual homing on a ring network
US6049842A (en) * 1997-05-01 2000-04-11 International Business Machines Corporation Efficient data transfer mechanism for input/output devices
US6073181A (en) * 1997-06-03 2000-06-06 International Business Machines Corporation Multi-buffer error detection for an open data-link interface LAN adapter
US6487202B1 (en) 1997-06-30 2002-11-26 Cisco Technology, Inc. Method and apparatus for maximizing memory throughput
US6035348A (en) * 1997-06-30 2000-03-07 Sun Microsystems, Inc. Method for managing multiple ordered sets by dequeuing selected data packet from single memory structure
FR2767003B1 (fr) * 1997-07-31 1999-11-19 Sqware T Controleur de protocole de transmission de donnees numeriques hdlc
US6016511A (en) * 1997-09-12 2000-01-18 Motorola Inc. Apparatus and method for interfacing protocol application data frame operation requests with a data frame input/output device
US6526060B1 (en) 1997-12-05 2003-02-25 Cisco Technology, Inc. Dynamic rate-based, weighted fair scheduler with explicit rate feedback option
US5963499A (en) * 1998-02-05 1999-10-05 Cypress Semiconductor Corp. Cascadable multi-channel network memory with dynamic allocation
US6295608B1 (en) * 1998-02-17 2001-09-25 Microsoft Corporation Optimized allocation of data elements among cache lines
US6189069B1 (en) 1998-02-17 2001-02-13 Microsoft Corporation Optimized logging of data elements to a data storage device
US6631484B1 (en) 1998-03-31 2003-10-07 Lsi Logic Corporation System for packet communication where received packet is stored either in a FIFO or in buffer storage based on size of received packet
US6115771A (en) * 1998-03-31 2000-09-05 Lsi Logic Corporation Method and system for converting computer peripheral equipment to SCSI-compliant devices
US6105086A (en) * 1998-06-04 2000-08-15 Lsi Logic Corporation Data communication circuit and method for buffering data between a shared resource and multiple interfaces
US6526451B2 (en) * 1998-09-30 2003-02-25 Stmicroelectronics, Inc. Method and network device for creating circular queue structures in shared memory
US6717910B1 (en) 1998-09-30 2004-04-06 Stmicroelectronics, Inc. Method and apparatus for controlling network data congestion
US7046625B1 (en) 1998-09-30 2006-05-16 Stmicroelectronics, Inc. Method and system for routing network-based data using frame address notification
US6327615B1 (en) * 1998-09-30 2001-12-04 Stmicroelectronics, Inc. Method and system of controlling transfer of data by updating descriptors in descriptor rings
US6356962B1 (en) 1998-09-30 2002-03-12 Stmicroelectronics, Inc. Network device and method of controlling flow of data arranged in frames in a data-based network
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
US6304936B1 (en) * 1998-10-30 2001-10-16 Hewlett-Packard Company One-to-many bus bridge using independently and simultaneously selectable logical FIFOS
US6430628B1 (en) * 1998-12-08 2002-08-06 Intel Corporation Method and apparatus for reducing direct memory access transfers using smart coalescing
US6747984B1 (en) 1998-12-18 2004-06-08 Lsi Logic Corporation Method and apparatus for transmitting Data
US6665728B1 (en) * 1998-12-30 2003-12-16 Intel Corporation Establishing optimal latency in streaming data applications that use data packets
US20060034275A1 (en) * 2000-05-03 2006-02-16 At&T Laboratories-Cambridge Ltd. Data transfer, synchronising applications, and low latency networks
US6347347B1 (en) * 1999-07-15 2002-02-12 3Com Corporation Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor
US6791989B1 (en) * 1999-12-30 2004-09-14 Agilent Technologies, Inc. Fibre channel interface controller that performs non-blocking output and input of fibre channel data frames and acknowledgement frames to and from a fibre channel
TW453069B (en) * 2000-01-05 2001-09-01 Via Tech Inc Packet accessing method with parallel multiplexing feature
US6691178B1 (en) 2000-02-22 2004-02-10 Stmicroelectronics, Inc. Fencepost descriptor caching mechanism and method therefor
US6668290B1 (en) * 2000-05-08 2003-12-23 Crossroads Systems, Inc. System and method for controlling readout of frame data from buffer
US7089289B1 (en) * 2000-07-18 2006-08-08 International Business Machines Corporation Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices
US7143185B1 (en) * 2000-08-29 2006-11-28 Advanced Micro Devices, Inc. Method and apparatus for accessing external memories
US6799229B1 (en) * 2000-09-05 2004-09-28 Lsi Logic Corporation Data-burst-count-base receive FIFO control design and early packet discard for DMA optimization
US6647441B1 (en) * 2000-09-15 2003-11-11 Hewlett-Packard Development Company, L.P. Method of maximizing servicing capability of large numbers of I/O descriptors
US6647438B1 (en) * 2000-09-19 2003-11-11 Intel Corporation Direct memory access transfer reduction method and apparatus to overlay data on to scatter gather descriptors for bus-mastering I/O controllers
JP4087072B2 (ja) * 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
US6988160B2 (en) * 2001-02-12 2006-01-17 P-Cube Ltd. Method and apparatus for efficient messaging between memories across a PCI bus
US7130916B2 (en) 2001-02-23 2006-10-31 International Business Machines Corporation Linking frame data by inserting qualifiers in control blocks
US7072347B2 (en) * 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor
US20030086485A1 (en) * 2001-11-08 2003-05-08 John Lin Master to multi-slave asynchronous transmit fifo
ATE555443T1 (de) * 2002-02-26 2012-05-15 Nxp Bv Zugriff zu einem verteilten betriebsmittel
US20040024904A1 (en) * 2002-07-31 2004-02-05 Dimambro Francesco R. Load balancing packet transmission among multiple transmit rings
DE10234990B4 (de) * 2002-07-31 2007-03-29 Advanced Micro Devices, Inc., Sunnyvale Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
US7113985B2 (en) * 2002-10-15 2006-09-26 Intel Corporation Allocating singles and bursts from a freelist
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
JP4749657B2 (ja) * 2003-03-20 2011-08-17 パナソニック株式会社 Dma制御装置
JP4020815B2 (ja) * 2003-03-28 2007-12-12 三菱電機株式会社 通信モジュール
KR100544188B1 (ko) * 2003-06-19 2006-01-23 삼성전자주식회사 네트워크 전자기기의 데이터 인터페이스 장치 및 방법
US20040257856A1 (en) * 2003-06-23 2004-12-23 Texas Instruments Incorporated Dual-port functionality for a single-port cell memory device
JP4340519B2 (ja) * 2003-11-04 2009-10-07 富士通株式会社 情報処理端末
US20070274214A1 (en) * 2003-11-18 2007-11-29 Oleg Logvinov System and method for combining synchronous and asynchronous communications on a communications network
US7412726B1 (en) 2003-12-08 2008-08-12 Advanced Micro Devices, Inc. Method and apparatus for out of order writing of status fields for receive IPsec processing
US7336675B2 (en) * 2003-12-22 2008-02-26 Intel Corporation Optimized back-to-back enqueue/dequeue via physical queue parallelism
US7433364B2 (en) * 2003-12-24 2008-10-07 Intel Corporation Method for optimizing queuing performance
US7522623B2 (en) * 2004-09-01 2009-04-21 Qlogic, Corporation Method and system for efficiently using buffer space
US7454491B2 (en) * 2004-10-14 2008-11-18 International Business Machines Corporation Method and system for efficiently transferring a self-defined non-contiguous message in a one-sided communication model
JP5008270B2 (ja) * 2005-04-13 2012-08-22 ソニー株式会社 情報処理装置、および情報処理方法
US20060259657A1 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Direct memory access (DMA) method and apparatus and DMA for video processing
WO2006121443A2 (en) * 2005-05-10 2006-11-16 Telairity Semiconductor, Inc. Direct memory access (dma) method and apparatus and dma for video processing
US8213294B2 (en) * 2006-06-27 2012-07-03 International Business Machines Corporation Mechanism for detecting and clearing I/O fabric lockup conditions for error recovery
US20080091838A1 (en) * 2006-10-12 2008-04-17 Sean Miceli Multi-level congestion control for large scale video conferences
US7827331B2 (en) * 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
JP2008252748A (ja) * 2007-03-30 2008-10-16 Toshiba Corp 受信フレーム処理装置および受信フレーム処理システム
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7948999B2 (en) * 2007-05-04 2011-05-24 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7889657B2 (en) * 2007-05-04 2011-02-15 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7890670B2 (en) * 2007-05-09 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US7779173B2 (en) * 2007-05-29 2010-08-17 International Business Machines Corporation Direct memory access transfer completion notification
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7765337B2 (en) * 2007-06-05 2010-07-27 International Business Machines Corporation Direct memory access transfer completion notification
US8090789B1 (en) * 2007-06-28 2012-01-03 Emc Corporation Method of operating a data storage system having plural data pipes
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US7890597B2 (en) * 2007-07-27 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
TWI379554B (en) * 2008-05-21 2012-12-11 Realtek Semiconductor Corp Data access device and method for communication system
US8145786B2 (en) * 2008-10-06 2012-03-27 International Business Machines Corporation Efficient buffer utilization in a computer network-based messaging system
US20110153875A1 (en) * 2009-12-18 2011-06-23 Plx Technology, Inc. Opportunistic dma header insertion
US7970927B1 (en) 2009-12-31 2011-06-28 Qlogic, Corporation Concurrent transmit processing
US8544026B2 (en) 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
US9075730B2 (en) 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
KR20160099828A (ko) * 2015-02-13 2016-08-23 한국전자통신연구원 패킷 전송을 위한 이중 클럭 선입선출 장치
US10990318B2 (en) 2015-10-01 2021-04-27 PacByte Solutions Pty Ltd Method and system for receiving a data file
US10524278B2 (en) 2015-11-20 2019-12-31 Qualcomm Incorporated Scheduling and token bucket for communication co-existence
US10009912B2 (en) 2015-11-20 2018-06-26 Qualcomm Incorporated Scheduling and token bucket for communication co-existence
US10534343B2 (en) * 2016-03-31 2020-01-14 Mitsubishi Electric Corporation Unit and control system
KR20180018886A (ko) * 2016-08-09 2018-02-22 삼성전자주식회사 스토리지 시스템의 동작 방법 및 호스트의 동작 방법
CN110419245B (zh) 2017-03-24 2022-01-04 联发科技股份有限公司 通过随机存取过程请求应需系统信息的装置及方法
BR112019019932A2 (pt) * 2017-03-24 2020-04-22 Mediatek Inc aparelhos e métodos para identificação de feixe através do canal de acesso aleatório físico (prach) e utilização eficiente de recursos de prach
KR20210031266A (ko) * 2019-09-11 2021-03-19 삼성전자주식회사 인터페이스 회로, 메모리 장치, 저장 장치 및 메모리 장치의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481578A (en) * 1982-05-21 1984-11-06 Pitney Bowes Inc. Direct memory access data transfer system for use with plural processors
US4491915A (en) * 1982-11-30 1985-01-01 Rca Corporation Multiprocessor-memory data transfer network
JPS6019269A (ja) * 1983-07-13 1985-01-31 Nec Corp 高速デ−タ転送方式
US4760521A (en) * 1985-11-18 1988-07-26 White Consolidated Industries, Inc. Arbitration system using centralized and decentralized arbitrators to access local memories in a multi-processor controlled machine tool
US4782439A (en) * 1987-02-17 1988-11-01 Intel Corporation Direct memory access system for microcontroller
US4945473A (en) * 1987-05-15 1990-07-31 Bull Hn Information Systems Inc. Communications controller interface
US5007051A (en) * 1987-09-30 1991-04-09 Hewlett-Packard Company Link layer protocol and apparatus for data communication
US5043981A (en) * 1990-05-29 1991-08-27 Advanced Micro Devices, Inc. Method of and system for transferring multiple priority queues into multiple logical FIFOs using a single physical FIFO

Also Published As

Publication number Publication date
ATE360316T1 (de) 2007-05-15
EP0459752A2 (de) 1991-12-04
US5488724A (en) 1996-01-30
DE69133569D1 (de) 2007-05-31
EP0459752B1 (de) 2000-02-09
US5136582A (en) 1992-08-04
ATE189753T1 (de) 2000-02-15
EP0459752A3 (de) 1994-01-19
EP0797335A2 (de) 1997-09-24
DE69131971T2 (de) 2000-10-05
JP3448067B2 (ja) 2003-09-16
EP0797335A3 (de) 2003-06-04
EP0797335B1 (de) 2007-04-18
DE69131971D1 (de) 2000-03-16
JPH04261245A (ja) 1992-09-17

Similar Documents

Publication Publication Date Title
DE69133569T2 (de) Netzschnittstelle
DE69817328T2 (de) Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE69823483T2 (de) Mehrfachkopiewarteschlangestruktur mit einem suchbaren cachespeicherbereich
DE69819303T2 (de) Verfahren und vorrichtung zur übertragung von mehrfachkopien durch vervielfältigung von datenidentifikatoren
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE60113058T2 (de) Empfänger korrigiert
DE69827349T2 (de) Gigabit-Ethernet Schnittstelle für ein synchrones Netz (SONET)
DE69034133T2 (de) Kommunikationsgerät
DE69823337T2 (de) Vorrichtung und verfahren zur rückgewinnung von puffern
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE60203057T2 (de) Effizienter Optimierungsalgorithmus für Speichergebrauch in Netzwerkanwendungen
DE60119224T2 (de) Speicherverwaltungseinheit für eine Vermittlungsstelle
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
DE60119068T2 (de) Warteschlangen-resynchronisation: synchrone aktualisierung eines verteilten vermittlungssystems in echtzeit
DE60125678T2 (de) Vermittlungstelle mit Flusssteurungverwaltung
DE69832149T2 (de) ATM-Zellenübermittlungssystem
JPH04233356A (ja) 複数個のプロセッサとシステムメモリ手段とを含むネットワークアダプタのための装置、ネットワーク制御装置、制御方法
DE69729190T2 (de) Datenstruktur zur unterstützung von mehreren datenübertragungspaketen für hohe leistung
DE10104209A1 (de) Verfahren und System zum Erhöhen der Leistung durch Ersetzen einer Steuerung einer Maschine mit finiten Zuständen durch eine hardware-implementierte Datenstrukturmanipulation
DE60222233T2 (de) Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen
DE60305560T2 (de) Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk
DE60014178T2 (de) Vorrichtung und verfahren zur speicherteilung in einer konfiguration mit einzelring-datenbusverbindung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

8328 Change in the person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,