DE69617547T2 - Verfahren und Vorrichtung zur Koordination der Datenübertragung zwischen Hardware und Software - Google Patents

Verfahren und Vorrichtung zur Koordination der Datenübertragung zwischen Hardware und Software

Info

Publication number
DE69617547T2
DE69617547T2 DE69617547T DE69617547T DE69617547T2 DE 69617547 T2 DE69617547 T2 DE 69617547T2 DE 69617547 T DE69617547 T DE 69617547T DE 69617547 T DE69617547 T DE 69617547T DE 69617547 T2 DE69617547 T2 DE 69617547T2
Authority
DE
Germany
Prior art keywords
entry
memory
data
circuit
field
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 - Fee Related
Application number
DE69617547T
Other languages
English (en)
Other versions
DE69617547D1 (de
Inventor
Gentry, Jr.
Rasoul M. Oskouy
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69617547D1 publication Critical patent/DE69617547D1/de
Publication of DE69617547T2 publication Critical patent/DE69617547T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen das Gebiet von Computersystemen und insbesondere ein Verfahren und eine Vorrichtung, um eine Datenübertragung zwischen Hardware und Software in Computersystemen zu koordinieren.
  • 2. Beschreibung verwandter Technik
  • Ordnungsgemäß funktionierte Computersysteme stellen im Allgemeinen einen Mechanismus bereit, der einen ordnungsgemäßen Zugriff auf einen gemeinsamen Speicher und andere gemeinsame Ressourcen gewährleistet. Dies ist notwendig, um Daten davor zu schützen, dass sie gleichzeitig von zwei oder mehreren Prozessoren verändert werden. Eine als Semaphor bezeichnete binäre Variable wird oftmals verwendet, um ein Eigentumsrecht zu kennzeichnen und den Prozessor anzugeben, der die gemeinsame Ressource zum Schreiben besitzt. Ein Semaphor ist ein softwaregesteuertes Kennzeichen (flag), das in einer Speicherstelle gespeichert ist, die typischer Weise zwischen zwei Prozessoren verwendet wird.
  • Wenn der Semaphor gleich 0 ist, bedeutet dies nach Vereinbarung, dass ein spezieller Prozessor die gemeinsame Ressource besitzt, um zu dieser zu schreiben, so dass der gemeinsame Speicher nicht für andere Prozessoren verfügbar ist, um zu diesem zu schreiben. Wenn der Semaphor gleich 1 ist, wird das Eigentumsrecht des gemeinsamen Speichers an einen anfragenden Prozessor übertragen. Die Prozessoren, die das gleiche Speichersegment teilen, benötigen keinen Semaphor-Handshake (Semaphor-Austausch), um ein Eigentumsrecht anzugeben, wenn sie aus dem gemeinsamen Speichersegment auslesen. Statt dessen wird Semaphor-Handshake nur dann benötigt, wenn die Prozessoren in das gemeinsame Speichersegment schreiben wollen. Sobald ein Prozessor ein Eigentumsrecht eines gemeinsamen Speichersegments erwirbt, führt er seine Datenverarbeitung aus und aktualisiert das gemeinsame Speichersegment, wonach er sein Eigentumsrecht abtritt, indem das Semaphor-Bit verändert wird (von 0 zu 1 oder 1 zu 0)
  • Beim Übertragen von Daten in einem Computersystem wird die Koordination zwischen Hardware und Software herkömmlicher Weise durch die Verwendung eines Semaphor-Mechanismus bewerkstelligt, der die Verwendung von OWN-Bits in Descriptor- Ringen umfasst, um ein aktuelles Eigentumsrecht jedes Descriptors auf dem Ring anzugeben. Ein Descriptor-Ring ist eine Datenstruktur mit einer Mehrzahl von Einträgen (z. B. 1 bis N), die in ringförmiger Weise angeordnet sind. Der Inhalt jedes Eintrags ist dem Descriptor-Ring ist als Descriptor bekannt. Ein typischer Descriptor enthält ein Basisadressfeld, das die Basis der Seitentabelleadresse bei einer Organisation mit segmentierten Seiten oder die Blockbasisadresse bei einer Organisation mit Segmentregistern bereitstellt. Jeder Descriptor umfasst ein Bit, das auf "1", wenn der Eintrag von Hardware besessen wird, oder auf "0" gesetzt wird, wenn der Eintrag von Software besessen wird. Dieses Bit ist als "OWN"- Bit bekannt. Der Eigentümer des Descriptors ist für ein Freigeben eines Eigentumsrechts verantwortlich, wenn er den Descriptor aktualisiert. Wenn Software das Aktualisieren von Übertragungspaketen abgeschlossen hat, setzt sie daher das OWN-Bit auf eine 1, und wenn Hardware eine Übertragung eines Pakets abgeschlossen hat, setzt sie das OWN-Bit zurück.
  • Die Verwendung des OWN-Bit-Semaphor-Mechanismus belastet jede Transaktion mit einem bedeutsamen-Gesamtaufwand, da tie Hardware zu dem Descriptor zurück schreiben muss, um das OWN-Bit jedes Mal zurückzusetzen, wenn sie eine Transaktion abgeschlossen hat. Bei einem typischen Übertragungssystem, das lediglich einen Kanal verwendet, wird ein derartiger Descriptor-Ring für den Kanal verwendet. Bei Systemen, die das Ansynchronübertragungsmodus-(ATM; engl.: asynchronous transfer mode)-Protokoll verwenden, wird ein derartiger Gesamtaufwand jedoch vervielfacht, da mehrere Kanäle verwendet werden und typische Lösungen für die durch einen Transaktionsgesamtaufwand aufgeworfenen Probleme nicht auf einfache Weise skalierbar sind.
  • Zusätzlich muss die Hardware bei diesen herkömmlichen Systemen periodisch Nachfragen, ob Software Pakete zur Übertragung aktualisiert hat. Dies wird herkömmlicher Weise mittels eines Abfragespeichers (polling memory) erreicht, um den Status des OWN-Bits zu bestimmen. Diese Speicherüberprüfungen können jedoch nutzlos sein, da die Software keine Einträge versandfertig gemacht haben kann, wodurch das OWN-Bit ungesetzt bleibt. Folglich muss die Hardware fortgesetzt den Speicher abfragen, bis die Software Pakete zu Übertragung aktualisiert hat und den Abschluss dieser Aufgabe durch ein Setzen des OWN-Bits angibt. Die Abfrageerfordernis verringert die Bandbreite für das Eingabe/Ausgabe-System, die ansonsten von anderen Vorrichtungen verwendet werden kann, die das gleiche System teilen.
  • Dem entsprechend besteht bei der Technologie ein Bedarf für ein Verfahren und eine Vorrichtung, um die Datenübertragung zwischen Hardware und Software in Computersystemen mittels der effizienten Verwendung von Descriptor-Ringen zu koordinieren, die das Erfordernis, einen Speicher abzufragen und das Erfordernis, OWN-Bits zurückzusetzen, beseitigt, wodurch der Übertragungsgesamtaufwand und die Verarbeitungszeit reduziert werden.
  • US-5,298,317 beschreibt eine Netzwerkschnittstelle mit einem von einem Hauptrechner unabhängigen Buffermanagment, um Datenübertragungen zwischen einem Hauptrechner-System und einem Netzwerk zu steuern. Zum Steuern von Datenübertragungen verwendet die Netzwerkschnittstelle darin vorliegende, sogenannte Übertragungs-Descriptor-Ringe. Der Hauptrechner versorgt die Netzwerkschnittstelle mit Daten, die zu übertragenden Daten identifizieren und/oder wiedergeben. Derartige Daten werden in einen Übertragungs-Descriptor-Ring der Netzwerkschnittstelle abgebildet und insbesondere in einen Speicher derselben. Der Speicherplatz des Hauptrechners wird nicht zur Steuerung von Datenübertragungen verwendet, sondern es wird lediglich seitens der Netzwerkschnittstelle darauf zugegriffen, um zu übertragende Daten herunterzuladen. Der Hauptrechner selbst stellt keine Descriptor-Ringe bereit. Für Datenübertragungen verwendet die Netzwerkschnittstelle die einzelnen Descriptoren des Übertragungs-Descriptor-Rings, um auf entsprechende Daten zuzugreifen, diese herunterzuladen und zu übertragen. Insbesondere wird die Behandlung der Descriptor- Ringe mittels eines auf Pointern basierenden Verfahrens durchgeführt. Pointer, die den Status der einzelnen Descriptoren angeben werden in Antwort auf Operationen sowohl von Komponenten der Netzwerkschnittstelle als auch des Hauptrechners verändert. Insbesondere wird der Pointer, der der Netzwerkschnittstelle erlaubt, einem einzelnen Descriptor zugeordnete Daten zu übertragen, wird dem entsprechend geändert, wenn der Hauptrechner auf den Pointer der Netzwerkschnittstelle zugegriffen hat, der eine abgeschlossene, mit den vorhergehenden Descriptor des Descriptor-Rings zugeordnete Datenübertragung angibt. Vergleichbar zu dem oben beschriebenen Semaphor-Mechanismus benötigt auch diese Lösung eine Operation des Hauptrechners, um die Netzwerkschnittstelle zu informieren, dass nachfolgende Datenübertragungen ausgeführt werden können. Dies führt zu einem zusätzlichen Gesamtaufwand für den Hauptrechner und zusätzlichen Übertragungen über den den Hauptrechner und die Netzwerkschnittstelle verbindenden Bus.
  • EP 0 459 752 A2 offenbart einen Netzwerkadapter für Datenübertragungen zwischen einem Hauptrechner und einem Netzwerk, der den oben beschrieben Semaphor-Mechanismus einschließlich von dem Hauptrechner bereitgestellten Descriptor-Ringen verwendet. Hier gibt der Hauptrechner wiederum einen Übertragungs-Descriptor in einem Descriptor-Ring vor und setzt das OWN-Bit in dem Statusfeld des Übertragungs-Descriptors, um Datenübertragungen über den Netzwerkadapter einzuleiten. Der Netzwerkadapter wird dem Hauptrechner-Übertragungs-Descriptor zugeordnete Daten fortgesetzt übertragen, bis das OWN-Bit zurückgesetzt ist.
  • KURZZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Verfahren und eine Vorrichtung, um eine Datenübertragung zwischen Hardware und Software in einem Computersystem durch die Verwendung eines Semaphor-Mechanismus zu koordinieren, ist offenbart. Wenn ein Datenpaket in eine Warteschlange eingereiht wird, indem ein Eintrag in einem Daten-Descriptor- Ring erzeugt wird, stellt die Software die Descriptor- Eintragsnummer einem ersten Speicherfeld in einer vorbestimmten Speicherstelle bereit, auf die von der Hardware zugegriffen werden kann. Die Hardware erstattet Bericht über Transaktionen, die sie abgeschlossen hat, indem die Descriptor- Eintragsnummer in ein zweites Speicherfeld in der Speicher geschrieben wird. Um zu bestimmten, ob dort weitere Daten zu verarbeiten sind, vergleicht die Hardware die Inhalte des ersten Speicherfeldes und die Inhalte des zweiten Speicherfeldes. Wenn die Inhalte der beiden Speicherfelder gleich sind, weist der entsprechende Ring oder Kanal keine Daten mehr auf und keine zusätzlichen Daten sind zu verarbeiten. Bei diesem Zustand geht der entsprechende Kanal in einen Ruhezustand über, bis er mittels eines Steuerbefehls aufgeweckt wird, der angibt, dass die Software eine andere. Descriptor- Eintragsnummer dem ersten Speicherfeld in der Speicherstelle bereitgestellt hat. Wenn die Inhalte der beiden Speicherfelder nicht gleich sind, arbeitet die Hardware weiter, um die von den bereitgestellten Descriptoren repräsentierten Daten zu verarbeiten. Die vorliegende Erfindung beseitigt die Erfordernis, einen Speicher abzufragen, um zu bestimmen, ob Daten zu verarbeiten sind. Sie beseitigt auch die Erfordernis, OWN-Bits zurückzusetzen, wodurch der Transaktionsgesamtaufwand und die Bearbeitungszeit reduziert werden.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 stellt ein exemplarisches Computersystemnetzwerk dar, das einen Netzwerkschnittstellenkreis für den asynchronen Übertragungsmodus umfasst, der das Verfahren und die Vorrichtung der Datenübertragungskoordination der vorliegenden Erfindung verwendet.
  • Fig. 2 ist eine schematische Darstellung eines Gesamtsystems, das die Architektur des Netzwerkschnittstellenschaltkreises für den asynchronen Übertragungsmodus darstellt, der das Verfahren und die Vorrichtung der Datenübertragungskoordination gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung verwendet.
  • Fig. 3 stellt ein vereinfachtes Blockdiagramm einer bevorzugten Datenstruktur des Hauptrechnerspeichers dar, die für eine Datenübertragung bei einem System verwendet wird, das die Vorrichtung und das Verfahren der vorliegenden Erfindung nutzt.
  • Fig. 4a und 4b sind Flussdiagramme, die den Prozess der Datenübertragungskoordination gemäß einer Ausführungsform der vorliegenden Erfindung darstellen.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Fig. 1 stellt ein exemplarisches Computernetzwerk dar, das den ATM-Netzwerkschnittstellenschaltkreis beinhaltet, der das Verfahren und die Vorrichtung der Datenübertragungskoordination der vorliegenden Erfindung verwendet. Das Computersystemnetzwerk 10 umfasst Hauptrechnercomputersysteme (nicht dargestellt), die einen oder mehrere der ATM-Netzwerkschnittstellenschaltkreise (NIC; engl.: network interface circuits) 12 umfassen. Die NICs 12 sind über einen lokalen ATM-Schalter 14 mit einem öffentlichen ATM-Schalter 16 verbunden, um eine asynchrone Übertragung von Daten zwischen den mit dem Netzwerk 10 verbundenen Hauptrechnercomputersystemen zu ermöglichen. Alternativ können die NICs 12 unmittelbar mit dem öffentlichen ATM-Schalter 16 verbunden sein. Wie in Fig. 1 gezeigt, kann das Computersystemnetzwerk 10 auch Computersysteme umfassen, die die Verwendung einer lokalen Netzwerkemulation ("LAN"; engl.: Local Area Network) 15 integrieren, die als Zugang zum Verbinden mit anderen Netzwerken dient, wie z. B. Ethernet-oder Token-Ring-Netzwerken 17, die das ATM- Netzwerk als unterstützendes Rahmensystem nutzen.
  • Fig. 2 ist eine vereinfachte graphische Darstellung des Systems, das die Architektur des ATM-NIC's 12 darstellt, der das Verfahren und die Vorrichtung der Datenübertragungskoordination gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung verwendet. Der ATM-NIC 12 kommuniziert mit einem Hauptrechnercomputersystem 48, das über einen Systembus 38 mit den Netzwerkmedien 40 verbunden ist, die gemäß den ATM- Protokoll arbeiten.
  • Der dargestellte ATM-NIC 12 umfasst eine Systembusschnittstelle 20, eine allgemeine Eingabe/Ausgabe-Schnittstelle 24 ("GIO"; engl.: Generic Input/Output) einen System- und ATM- Schichtkern (engl.: layer core) 22, eine lokale Slave- Schnittstelle, einen Übertragungs-(TX-) FIFO 28, einen Empfangs-(RX-) FIFO 30, eine Medienschnittstelle 32, eine externe Pufferspeicherschnittstelle 34 und einen Taktaufbauschaltkreis 36.
  • Die Elemente 20-36 des NIC's 12 arbeiten gemeinsam, um Daten zwischen dem Hauptrechnercomputer 48 und den anderen Computern in dem Netzwerk über mehrere dynamisch allokierte Kanäle in mehreren Bandbreitegruppen zu übertragen. Gemeinsam betrachtet arbeiten die Elemente des Netzwerkschnittstellenschaltkreises 12 als mehrkanaliger, intelligenter Kontroller für unmittelbaren Speicherzugriff (DMA; engl.: direct memory access), der mit dem Systembus 38 des Hauptrechnercomputersystems 48 verbunden ist. Bei einer bevorzugten Ausführungsform werden mehrere Übertragungs- und Empfangskanäle als virtuelle Verbindungen unterhalten, die eine physikalische Voll- Duplex-Verbindung mit 155/622 Mbps nutzen. Mehrere Datenpakete, die mittels der externen Pufferspeicherschnittstelle 34 über externe Puffer an Speicherschnittstelle 34 unterschiedlichen Kanälen über den Systembus 38 zu dem externen Speicher 42 zugeordnet sind, werden von dem System- und ATM- Schichtkern 22 in Sendezellen zur Übertragung zu den Medien 40 durch die Medienschnittstelle 32 segmentiert. Der Kern 22 umfasst auch eine Logik zum Wiederzusammensetzen, um das Wiederzusammensetzen der empfangenen Zellen zu Paketen zu erleichtern.
  • Der Kern 22 umfasst ferner einen Speicherblock 44, der eine Mehrzahl von Speicherstellen 50a-50m umfasst, von denen jede der Nummer der Kanäle entspricht, die von dem ATM-NIC 12 unterstützt werden. Die Speicherstellen 50a-50m umfassen jeweils ein erstes Speicherfeld 52 und ein zweites Speicherfeld 54. Ein Vergleichschaltkreis 56 ist mit jeder Speicherstelle 50a-50m verbunden und wird verwendet, um die Inhalte des ersten Speicherfeldes 52 und die Inhalte des zweiten Speicherfeldes 54 zu vergleichen. Ein Beispiel des Vergleichschaltkreises 56 ist ein exklusives ODER-Gatter. Insbesondere umfasst die Speicherstelle 50a ein erstes Speicherfeld 52a und ein zweites Speicherfeld 54a, während die Speicherstelle 50m ein erstes Speicherfeld 52 m und ein zweites Speicherfeld 54 m umfasst. Die Speicherstelle 50a ist mit einem Vergleichschaltkreis 56a verbunden, der verwendet wird, um die Inhalte des ersten Speicherfelds 52a und die Inhalte des zweiten Speicherfelds 54a zu vergleichen. In vergleichbarer Weise ist die Speicherstelle 50m mit einem Vergleichschaltkreis 56m verbunden, der verwendet wird, um die Inhalte des ersten Speicherfelds 52m und die Inhalte des zweiten Speicherfelds 54m zu vergleichen. Für die Diskussion werden die Speicherstellen 50a-50m, die ersten Speicherfelder 52a-52 m, die zweiten Speicherfelder 54a-54 m und die Vergleichschaltkreise 56a- 56 m im Allgemeinen als die Speicherstelle 50, das erste Speicherfeld 52, das zweite Speicherfeld 54 und der Vergleichsschaltkreis 56 bezeichnet. Die Speicherstellen 50 und die Vergleichschaltkreise 56 werden verwendet, um eine Datenübertragung gemäß den Lehren der vorliegenden Erfindung zu koordinieren, wie detailliert in den folgenden Abschnitten diskutiert wird.
  • Die TX-und RX-FIFOS 28, 30, die zwischen dem Kern 22 und der Medienschnittstelle 32 angeschlossen sind, werden verwendet, um die Übertragungs- und Empfangszellennutzlasten der Übertragungs- und Empfangspakete zwischenzuspeichern. Die Medienschnittstelle sendet und empfängt Zellen zu den Medien 40 des Netzwerks gesteuert durch Taktsignale, die von dem Takterzeugungschaltkreis 36 bereitgestellt werden. Vorzugsweise entsprechen die Medien und somit die Medienschnittstelle 32 dem "universal test and operations physical interface for ATM-("UTOPIA"; deut.: physikalische universelle Test- und Betriebsschnittstelle für ATM)-Standard, wie durch die ATM- Forum-Ad-Hoc-Spezifikation beschrieben. Um mit der UTOPIA- Spezifikation übereinzustimmen, stellt der Takterzeugungsschaltkreis 36 ein Taktsignal von entweder 20 MHz oder 40 MHz bereit, um die Medienschnittstelle 32 in die Lage zu versetzen, einen Bytestrom bei 20 MHz für 155 Mbps oder einen 16- Bit-Strom bei 40 MHz für einen 622 Mbps Datenstrom zu unterstützen.
  • Bei der vorliegenden Ausführungsform empfängt die Medienschnittstelle 32 52-Bit-Datenzellen, die jeweils einen 4-Bit- Zellenkopf und eine 48-Bit-Nutzlast aufweisen, von dem TX- FIFO 28. Die Medienschittstelle 32 fügt eine Prüfsumme als fünftes Byte in den Zellenkopf in jeder Zelle ein, bevor sie die 52-Bit-Datenzelle den Medien 40 bereitstellt. Umgekehrt, wenn die Medienschnittstelle 32 Zellen von den Medien 40 empfängt, überprüft sie die Prüfsumme in dem fünften Byte jeder Zelle, um zu überprüfen, ob die Prüfsumme korrekt ist. Ist dies der Fall, wird das die Prüfsumme wiedergegebene Byte von der Zelle entfernt und die Zelle wird zu dem RX-FIFO 30 weitergeleitet. Ansonsten wird die gesamte Zelle verworfen.
  • Die Systembusschnittstelle 20 und die GIO-Schnittstelle 24 isolieren das Hauptrechnercomputersystem 48 von den Charakteristika der Übertragung zu den Medien 40. Des Weiteren ist der Kern 22 von den Charakteristika des Systembusses 38 und den Hauptrechnercharakteristika isoliert. Bei der vorliegenden bevorzugten Ausführungsform ist der Systembus ein S-Bus, wie in der "Institut of Electronics and Electrical Engineers"-("IEEE"; deut.: Institut der Elektronik- und Elektroingenieure)-Standard-1496-Spezifikation angegeben. Die Systembusschnittstelle 20 ist konfiguriert, um gemäß den Spezifikationen des Systembusses zu kommunizieren, bei der vorliegenden Darstellung dem S-Bus. Es ist vorgesehen, dass die Systembusschnittstelle 20 so konfiguriert sein kann, dass sie anderen Hauptrechnercomputersystembussen entspricht. Die Systembusschnittstelle 20 ist auch konfiguriert, um Daten gemäß den von der GIO-Schnittstelle 24 definierten Protokollen zu übertragen und zu empfangen. Die GIO-Schnittstelle 24 stellt eine einzelne Schnittstelle bereit, durch die der Kern 22 mit dem Hauptrechnercomputer kommuniziert. Somit ändert sich der Kern 22 für unterschiedliche Ausführungsformen des NIC's 12 nicht, der zu anderen Hauptrechnercomputersystemen und -bussen verbindet.
  • Drei Speicheruntersysteme sind dem Betrieb des NIC's 12 zugeordnet. Diese umfassen den Hauptrechnerspeicher 49, der in dem Hauptrechnercomputersystem 48 angeordnet ist, den lokalen, hinsichtlich des Systems- und ATM-Schichtkerns 22 externen Pufferspeicher 40 und den Steuerspeicherblock 44, der in dem Kern 22 angeordnet ist. Der NIC 12 überwacht zwei Speicherbereiche: den Pufferspeicher 42 und den Speicherblock 44. Der Pufferspeicher 42 enthält Datenpakete für alle Übertragungs- und Empfangskanäle, die von dem NIC 12 unterstützt werden. Der Speicherblock 44 enthält DMA- Zustandsinformationen für Übertragungs- und Empfangskanäle und Pointer auf Datenstrukturen in dem Hauptrechnerspeicher 49, für die DMA-Übertragungen durchgeführt werden. Der Speicherblock 44 enthält auch die Datenstrukturspezifikationen, um die mehreren Übertragungs- und Empfangspuffer für Pakete bei Übertragung zwischen dem Hauptrechner 48 und den Medien 40 zu verwalten.
  • Das Hauptrechnercomputersystem 48 umfasst einen Hauptrechnerspeicher 49, der Datenpakete und Pointers auf die Pakete enthält, die übertragen und empfangen werden. Wie zuvor angemerkt schirmt der NIC 12 auch die Details zur Abgrenzung von Zellen einer asynchronen Übertragung von den Anwendungen ab, die auf dem Hauptrechnercomputersystem laufen. Für vorliegende Zwecke wird angenommen, dass auf dem Hauptrechnercomputersystem 48 laufende Software das Übertragen und Empfangen von Daten verwaltet, wobei, wie auf dem Gebiet gut bekannt ist, Umlauf-Übertragungs- und Empfangsringe mit Paketschnittstellen verwendet werden.
  • Fig. 3 stellt ein vereinfachtes Blockdiagramm dar, das eine bevorzugte Datenstruktur des Hauptrechnerspeichers 49 veranschaulicht, die für eine Datenübertragung in einem System verwendet wird, das die vorliegende Erfindung beinhaltet. Der Hauptrechnerspeicher umfasst Übertragungs-(TX)-Datenpuffer 60a-60k, Übertragungs-(TX)-Daten-Descriptorringe 70a-70m und einen Übertragungs-(TX)-Abschluss-Descriptorring 80. Die TX- Daten-Descriptorringe 70a-70m sind Datenstrukturen mit einer Mehrzahl an Ringeinträgen, beispielsweise Einträgen 71, 72, 73. Jeder der TX-Datenringe 70a-70m entspricht einem von m Kanälen, die von dem NIC 12 unterstützt werden. Jeder dieser Ringeinträge 71, 72, 73, auf die mittels Software nacheinander und in ringförmiger Weise zugegriffen wird, ist ausreichend groß (e. g. 64 Byte), um einen Descriptor mit übertragungsbezogenen Informationen (e. g. die Größe, etc.) und Pointer auf ein gewünschtes, in einem TX-Datenpuffer 60a-60k angeordnetes Datenpaket aufzunehmen. Die Descriptoren auf jedem Ring sind von 1 bis N nummeriert, wobei N die Anzahl an Descriptoren auf jedem Ring 70a-70m ist. Typischer Weise gibt es dort 1024 Descriptoren auf einem Ring, i. e. N = 1024, wobei jeder Ring einer vorprogrammierten Bandbreitengruppe zugeordnet ist. Zusätzlich kann jeder Descriptorring ein oder mehrere Pakete aufweisen, die zur Übertragung aufgereiht sind. Vorzugsweise ist die Anzahl an TX-Datenpuffern k kleiner oder gleich (m · N), da die TX-Datenpuffer 60a-60k zahlenmäßig ausreichend sein sollten, um Daten von N Einträgen und m Kanälen zu speichern. Wenn ein Descriptor in einen Ringeintrag eingegeben und eingereiht wird, um nachfolgend von dem NIC 12 gelesen zu werden, gibt die in dem Hauptrechnerspeicher laufende Software einen "Kick"-Steuerbefehl an den Kern 22 in dem NIC 12 aus. Dieser Steuerbefehl ist eine Schreiboperation, die als Parameter die TX-Datenringnummer (0-126) und die entsprechende Descriptornummer des letzten, in dem Ring angeordneten Descriptors bereitgestellt, wie detailliert unten beschrieben wird.
  • Bei einer bevorzugten Ausführungsform wird jeder "Kick"- Steuerbefehl in ein erstes Speicherfeld 52 in der Speicherstelle 50 geschrieben, wobei die TX-Datenringnummer (0-126) und die entsprechende Descriptornummer des zuletzt aktualisierten Descriptors bereitgestellt werden. Da es dort 127 Kanäle bei der vorliegenden Ausführungsform gibt, sind 127 Speicherstellen 50a-50m jeweils mit einem ersten Speicherfeld 52a-52 m für das Aktualisieren derartiger "Kick"-Steuerbefehle verfügbar. Hardware (oder Schaltkreisanordnungen) des Kerns 22, die dem Verarbeiten von den Paketen auf dem NIC 12 zugeordnet ist, verfolgt auch pro Ring den letzten Descriptor, den sie verarbeitet. Diese Descriptornummer wird in einem zweiten Speicherfeld 54 in der Speicherstelle 50 beibehalten. Die Hardware des Kerns 22 überprüft die Inhalte des ersten Speicherfelds 52 und des zweiten Speicherfeldes 54, wenn sie ein Übertragen eines Paketes abgeschlossen hat und bereit ist, ein anderes Paket zu übertragen, oder wenn sie einen "Kick"-Steuerbefehl erhält. Dies wird unter Verwendung des Vergleichsschaltkreises 56 durchgeführt, der die Inhalte des ersten Speicherfeldes 52 und die Inhalte des zweiten Speicherfeldes 54 vergleicht. Ein Beispiel des Vergleichsschaltkreises 56 ist ein exklusives ODER-Gatter.
  • Wenn die Inhalte des ersten Speicherfeldes 52 und die Inhalte des zweiten Speicherfeldes 54 gleich sind, d. h. wenn sowohl Hardware- als auch Softwaredescriptorpointer übereinstimmen, weist der entsprechende Ring oder Kanal keine Daten zur Übertragung mehr auf. Bei diesem Zustand geht der entsprechende Kanal in einen Ruhezustand über, bis er durch einen anderen Software-"Kick"-Steuerbefehl aufgeweckt wird. Dieser "Kick"- Mechanismus beseitigt die Notwendigkeit, dass Hardware die Descriptorringe abfragen muss, unabhängig davon, ob dort zu sendende Daten vorliegen oder nicht. Indem dieser Mechanismus implementiert wird, muss die Hardware zusätzlich nicht länger das OWN-Bit zurücksetzen, da der OWN-Bit-Semaphore bei der vorliegenden Erfindung im Wesentlichen nicht verwendet. Folglich wird der Übertragungsgesamtaufwand und die Verarbeitungszeit durch die Anwendung der vorliegenden Erfindung reduziert.
  • Der TX-Abschluss-Descriptorring 80 ist eine Datenstruktur mit einer Mehrzahl an Ringeinträgen 80a-80j. Der Th-Abschluss- Descriptorring 80 dient als Platzhalter für die Hardware, um den Status eines Paketes bereitzustellen, der zu dem Pufferspeicher 42 übertragen wurde. Somit beträgt die Anzahl an Ringeinträgen des TX-Abschluss-Descriptorrings 80j, wobei j < m · N ist, da der Ring 80 ausreichend Einträge aufweisen muss, um die N Descriptoren von m Kanälen zu aktualisieren. Die Hardware verwendet ein Descriptor des TX-Abschluss- Descriptorrings 80, um die entsprechende TX-Datenringnummer und die Descriptornummer bereitzustellen, die dem Paket entspricht, das übertragen wurde. Bei einer bevorzugten Ausführungsform wird der TX-Abschlussring 80 verwendet, um der Hardware die Descriptoren zu melden, die für eine Verwendung seitens der Hardware verfügbar sind, um aktualisierte Daten abgeschlossener Transaktionen einzutragen. Vorteilhafter Weise kann auf den TX-Abschluss-Descriptorring 80 sowohl von der Hardware als auch der Software zugegriffen werden. Des weiteren nimmt, in bevorzugter Weise, der TX-Abschluss- Descriptorring 80 64K Byte des Hauptrechnerspeichers durch 1024 Ringeinträge ein, da er groß genug sein muss, um die mehreren aktualisierten Paketabschlussdaten von m Descriptorringen jeweils mit N Descriptoren aufzunehmen.
  • Fig. 4a ist ein Flussdiagramm, das den Prozess 5100 einer Datenübertragungskoordination darstellt, die von der auf dem Hauptrechnercomputersystem 48 laufenden Software gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung durchgeführt wird. Sobald der Kern 22 initialisiert ist und arbeitet, läuft die allgemeine Reihenfolge von Operationen beim Übertragen eines Paketes über den Empfang eines Signals ab, das angibt, dass ein Paket zur Übertragung bereit ist, wie in dem Prozessblock S102 gezeigt. Der Prozess S100 ermittelt dann, ob ein Descriptor für den Übertragungsprozess verfügbar ist, indem, wie in dem Entscheidungsblock S104 gezeigt, überprüft wird, ob dort leere Descriptoren verfügbar sind. Ist dies nicht der Fall, geht der Prozess S100 zu dem Prozessschritt S104 zurück, um zu warten, bis ein Descriptor verfügbar ist. Ansonsten geht der Prozess 100 zu dem Prozessblock S106 weiter, wo die Software ("SW") Descriptoten für das Paket auf dem geeigneten TX-Daten-Descriptorring 70a-70m aktualisiert.
  • Der Prozess S100 geht dann zu dem Prozessblock S108 weiter, wo die Software die Anzahl der letzten Einträge in dem TX- Daten-Descriptorring in der erste Speicherfeld 52 in der Speicherstelle 50 schreibt. Dieser Prozessschritt S104 setzt sich in der Ausgabe des "Kick"-Steuerbefehls fort. Als nächstes überprüft der Prozess S100, wie in dem Entscheidungsblock S110 dargestellt, ob die Software mehr Pakete zur Aktualisierung für eine Übertragung bereit hält. Ist dies der Fall, geht der Prozess S100 zu dem Entscheidungsblock S104 zurück. Ist dies nicht der Fall, fragt der Prozess S100 nach, ob der Prozess des Aktualisierens von Paketen pausieren oder beendet werden sollte, wie im Entscheidungsblock S112 dargestellt. Ist dies der Fall, geht der Prozess S100 weiter, um den Prozess des Aktualisierens von Paketen zu unterbrechen oder zu beenden. Ist dies nicht der Fall, geht der Prozess S100 zu dem Entscheidungsblock S110 weiter, um weiter nachzufragen, ob mehr Pakete zur Übertragung zu aktualisieren sind.
  • Fig. 4b ist ein Flussdiagramm, das den Prozess S200 einer Datenübertragungskoordination ausgeführt von der Hardware in dem Kern 22 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht. Beginnend mit einem Startzustand geht der Prozess S200 zu dem Prozessblock S114 weiter, wo Hardware ("HW") die Einträge von dem geeigneten TX-Daten-Descriptorring 70a-70m liest und die Pakete überträgt. Es ist zu beachten, dass der Prozess S100 (der die Prozessschritte S102-S112 umfasst) gegenüber dem Prozess S200 (der die Prozessschritte S114-S118 umfasst) asynchron arbeitet. Der Prozess 5200 geht zu dem Prozessblock 5116 weiter, wo die Hardware bestätigt, dass ein Paket übertragen wurde. Bei einer bevorzugten Ausführungsform wird die Bestätigung durch die Verwendung des TX-Abschlussrings 80 und dadurch ausgegeben, dass die entsprechende TX-Datenringnummer und Descriptornummer des Pakets aktualisiert wird, das gemäß einer bevorzugten Methode, den Abschluss einer Übertragung zu melden und einen Interrupt zu erzeugen, der ein individuelles Maskierungsbit aufweist, um ein Hin- und Herschalten bei der Software zu vereinfachen, in ein drittes Speicherfeld (nicht gezeigt) in einer zweiten Speicherstelle (nicht gezeigt) übertragen wurde. Dieses Verfahren, den Abschluss einer Übertragung zu bestätigen, ist im Detail in der gleichzeitig eingereichten und gleichzeitig anhängigen U.S. Patentanmeldung mit dem Titel "Method and Apparatus of Reporting Data Transfer between Hardware and Software" beschrieben, die dem Anmelder der vorliegenden Erfindung übertragen und hier aufgenommen ist.
  • Der Prozess S200 geht dann zu dem Entscheidungsblock S118 weiter, um festzustellen, ob mehr Pakete übertragen wurden. Dies wird durch einen Vergleich der Inhalte des ersten Speicherfeldes 52 und der Inhalte des zweiten Speicherfeldes 54 für eine spezielle Speicherstelle 50a-50m erreicht. Beispielsweise kann ein Vergleichsschaltkreis 56 verwendet werden, um die Inhalte des ersten Speicherfeldes 52 und des zweiten Speicherfeldes 54 für eine spezielle Speicherstelle 50a-50m zu vergleichen. Der Vergleichsschaltkreis 56 kann ein Flag in einem Statusregister (nicht gezeigt) setzen, wenn die Inhalte der Speicherfelder 52 und 54 gleich sind. Wenn die Inhalte des ersten Speicherfeldes 52 und die Inhalte des zweiten Speicherfeldes 54 nicht gleich sind, d. h. wenn beide Hardware- und Software-Descriptorpointer nicht übereinstimmen, weist der entsprechende Ring oder Kanal mehr Daten zur Übertragung auf. Der Prozess S200 geht dann zu dem Prozessblock S114 zurück, um ein Lesen von Einträgen von dem geeigneten TX-Daten-Descriptorring 70a-70m fortzusetzen. Wenn die Inhalte des ersten Speicherfeldes 52 und die Inhalte des zweiten Speicherfeldes 54 gleich sind, d. h. wenn sowohl die Hardware- als auch die Software-Descriptorpointer übereinstimmen, weist der entsprechende Descriptorring oder Kanal keine Daten zur Übertragung mehr auf. In diesem Zustand geht der entsprechende Kanal in einen Ruhezustand über, bis er von einem anderen Software-"Kick"-Steuerbefehl aufgeweckt wird. Der Prozess S200 ist abgeschlossen und wird beim Empfangen eines von der Software ausgegebenen "Kick"-Steuerbefehls wieder aufgenommen, der angibt, dass ein Eintrag zu einem TX- Daten-Descriptorring 70a-70m übertragen wurde.
  • Durch die Anwendung der vorliegenden Erfindung muss Hardware den Hauptrechnerspeicher nicht abfragen, um festzustellen, ob Software Pakete zur Übertragung aktualisiert hat. Durch die · Implementierung des "Kick" Mechanismus ist zusätzlich nicht länger erforderlich, dass die Hardware das OWN-Bit zurücksetzen muss, da der OWM-Bit-Semaphor bei der vorliegenden Erfindung im Wesentlichen nicht verwendet wird. Folglich werden durch die Anwendung der vorliegenden Erfindung der Übertragungsgesamtaufwand und die Verarbeitungszeit reduziert.
  • Modifikationen und Veränderungen der oben beschriebenen Ausführungsformen können von Fachleuten in der Technologie durchgeführt werden, wobei sie weiterhin in dem wirklichen Umfang dieser Erfindung bleiben. Beispielsweise kann die vorliegende Erfindung in einem Computersystem implementiert werden, das die Koordination eines Datentransfers zwischen Software und Hardware benötigt, und ist nicht auf einen Datentransfer oder eine Datenübertragung beschränkt, die das ATM- Protokoll nutzt. Zusätzlich muss das Speicherfeld 52 nicht in der gleichen Speicherstelle 50 wie das zweite Speicherfeld 54 angeordnet sein.

Claims (20)

1. Ein Computersystem zum Übertragen von Daten, mit:
- einer Hauptrechnervorrichtung (48) mit einem Hauptrechnerspeicher (49), wobei der Hauptrechnerspeicher (49) wenigstens eine Datenstruktur (70) mit einer Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) aufweist, wobei jeder Eintrag (ENTRY #1, ..., ENTRY #N) eine Eintragsnummer und Speicherstelleninformationen von zu übertragenden Daten aufweist,
- eine Speicherstelle (50), die mit der Hauptrechnervorrichtung (48) verbunden ist, wobei die Speicherstelle (50) ein erstes Speicherfeld (52) aufweist, das erste Speicherfeld zum Speichern der Eintragsnummer, die Speicherstelleninformationen von zu übertragenden Daten entspricht,
gekennzeichnet durch
- die Speicherstelle (50) mit einem zweiten Speicherfeld (54), das zweite Speicherfeld zum Speichern einer Eintragsnummer, die Speicherstelleninformationen übertragener Daten entspricht, und
- einem Schaltkreis (56), der mit der Speicherstelle (50) verbunden ist, um den Inhalt des ersten Speicherfeldes (52) mit dem Inhalt des zweiten Speicherfeldes (54) zu vergleichen.
2. Das System gemäß Anspruch 1, mit: einem zweiten Schaltkreis (28) zum Übertragen von Daten, wobei der zweite Schaltkreis (28) arbeitet, wenn der Schaltkreis (56) zum Vergleichen feststellt, dass der Inhalt des ersten Speicherfeldes (52) nicht dem Inhalt des zweiten Speicherfeldes (54) entspricht.
3. Das System gemäß Anspruch 1, mit: einem zweiten Schaltkreis (28) zum Übertragen von Daten, wobei der zweite Schaltkreis (28) arbeitet, wenn in dem ersten Speicherfeld (52) eine Eintragsnummer gespeichert ist, die einem Eintrag (ENTRY #1, ..., ENTRY #N) entspricht, der Speicherstelleninformationen von zu übertragenden Daten umfasst.
4. Das System gemäß Anspruch 1, bei dem die Datenstruktur (70) ein Discriptor-Ring mit der Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) ist, wobei die Einträge (ENTRY #1, ..., ENTRY #N) ringförmig angeordnet sind.
5. Das System gemäß Anspruch 1, bei dem der Schaltkreis (56) zum Vergleichen ein Exklusiv-Oder-Gatter ist.
6. Das System gemäß Anspruch 1, mit: einer zweiten Datenstruktur und einer zweiten Speicherstelle, wobei die zweite Speicherstelle ein drittes Speicherfeld und ein viertes Speicherfeld aufweist, bei dem die Datenstruktur (70) eine erste Datenstruktur ist, die einem ersten Kanal zum Übertragen von Daten entspricht, und die zweite Datenstruktur einem zweiten Kanal zum Übertragen von Daten entspricht.
7. Das System gemäß Anspruch 1, bei dem das System ein Netzwerksystem ist.
8. Das System gemäß Anspruch T, bei dem Daten von der Hauptrechnervorrichtung (48) zu dem Netzwerk übertragen werden.
9. Das System gemäß Anspruch 7, bei dem das Netzwerk ein asynchrones Übertragungsnetzwerk ist.
10. Ein Schaltkreis (12) zum Übertragen von Daten, wobei der Schaltkreis (12) auf eine Hauptrechnervorrichtung (48) mit einem Hauptrechnerspeicher (49) anspricht, wobei der Hauptrechnerspeicher (49) wenigstens eine Datenstruktur (70) mit einer Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) aufweist, wobei jeder Eintrag (ENTRY #1, ..., ENTRY #N) eine Eintragsnummer und Speicherstelleninformationen von zu übertragenden Daten aufweist, wobei der Schaltkreis (12) umfasst:
- eine Speicherstelle (50), die mit der Hauptrechnervorrichtung (48) verbunden ist, wobei die Speicherstelle (50) ein erstes Speicherfeld (52) aufweist, das erste Speicherfeld (52) zum Speichern der Eintragsnummer, die Speicherstelleninformationen von zu übertragenden Daten entspricht,
gekennzeichnet durch
- die Speichereinrichtung (50) mit einem zweiten Speicherfeld (54), das zweite Speicherfeld (54) zum Speichern einer Eintragsnummer, die Speicherstelleninformationen von übertragenen Daten entspricht, und
- einem Schaltkreis (56) zum Vergleichen des Inhaltes des ersten Speicherfeldes (52) mit dem Inhalt des zweiten Speicherfeldes (54).
11. Der Schaltkreis (12) gemäß Anspruch 10, mit: einem zweiten Schaltkreis (28) zum Übertragen von Daten in Antwort auf den Schaltkreis (56) zum Vergleichen, wobei der zweite Schaltkreis (28) arbeitet, wenn der Schaltkreis (56) zum Vergleichen feststellt, dass der Inhalt des ersten Speicherfeldes (52) nicht dem Inhalt des zweiten Speicherfeldes (54) entspricht.
12. Der Schaltkreis (12) gemäß Anspruch 10, mit: einem zweiten Schaltkreis (28) zum Übertragen von Daten, wobei der zweite Schaltkreis (28) arbeitet, wenn in dem ersten Speicherfeld (52) eine Eintragsnummer gespeichert ist, die einem Eintrag (ENTRY #1, ..., ENTRY #N) entspricht, der Speicherstelleninformationen von zu übertragenden Daten aufweist.
13. Der Schaltkreis (12) gemäß Anspruch 10, bei dem die Speicherstelle (50) ausgelegt ist, die Datenstruktur (70) zu speichern, wobei die Datenstruktur (70) ein Discriptor-Ring mit der Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) ist, wobei die Einträge (ENTRY #1, ..., ENTRY #N) ringförmig angeordnet sind.
14. Der Schaltkreis (12) gemäß Anspruch 10, bei dem der Schaltkreis (56) zum Vergleichen ein Exklusiv-Oder-Gatter ist.
15. Der Schaltkreis (12) gemäß Anspruch 10, mit: einer zweiten Datenstruktur und einer zweiten Speicherstelle, wobei die zweite Speicherstelle ein drittes Speicherfeld und ein viertes Speicherfeld aufweist, bei dem die Datenstruktur (70) eine erste Datenstruktur ist, die einem ersten Kanal zum Übertragen von Daten entspricht, und die zweite Datenstruktur einem zweiten Kanal zum Übertragen von Daten entspricht.
16. Ein Verfahren zum Koordinieren von Datenübertragungen in einem Computer, mit den Schritten:
- Speichern einer Eintragsnummer, die Speicherstelleninformationen von zu übertragenden Daten entspricht, in einem ersten Speicherfeld (52),
- Übertragen von Daten, die der in dem ersten Speicherfeld (52) gespeicherten Eintragsnummer entsprechen,
- Speichern der Eintragsnummer, die Speicherstelleninformationen von übertragenen Daten entspricht, in einem zweiten Speicherfeld (54),
- Vergleichen des Inhaltes des ersten Speicherfeldes (52) mit dem Inhalt des zweiten Speicherfeldes (54), und
- Übertragen von Daten, die der in dem ersten Speicherfeld (52) gespeicherten Eintragsnummer entsprechen, wenn der Inhalt des ersten Speicherfeldes (52) nicht dem Inhalt des zweiten Speicherfeldes (54) entspricht, und Beenden der Übertragung von Daten, wenn der Inhalt des ersten Speicherfeldes (52) dem Inhalt des zweiten Speicherfeldes (54) entspricht.
17. Das Verfahren gemäß Anspruch 16, mit dem Schritt: Übertragen von Daten, die der in dem ersten Speicherfeld (52) gespeicherten Eintragsnummer entsprechen, wenn die in dem ersten Speicherfeld (52) gespeicherte Eintragsnummer Speicherstelleninformationen von zu übertragenden Daten aufweist.
18. Das Verfahren gemäß Anspruch 16, mit dem Schritt: Bereitstellen einer Hauptrechnervorrichtung (48) mit einem Hauptrechnerspeicher (49) vor dem ersten Speicherschritt, wobei der Hauptrechnerspeicher (49) wenigstens eine Datenstruktur (70) mit einer Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) aufweist, wobei jeder Eintrag (ENTRY #1, ..., ENTRY #N) eine Eintragsnummer und Speicherstelleninformationen von zu übertragenden Daten aufweist.
19. Das Verfahren gemäß Anspruch 18, bei dem bei dem Schritt des: Bereitstellens einer Hauptrechnervorrichtung (48) die Datenstruktur (70) ein Discriptor-Ring mit der Mehrzahl von Einträgen (ENTRY #1, ..., ENTRY #N) ist, wobei die Einträge (ENTRY #1, ..., ENTRY #N) ringförmig angeordnet sind.
20. Das Verfahren gemäß Anspruch 16, mit dem Schritt: Bereitstellen einer zweiten Datenstruktur und einer zweiten Speicherstelle, wobei die zweite Speicherstelle ein drittes Speicherfeld und ein viertes Speicherfeld aufweist, bei dem die Datenstruktur (70) eine erste Datenstruktur ist, die einem ersten Kanal zum Übertragen von Daten entspricht, und die zweite Datenstruktur einem zweiten Kanal zum Übertragen von Daten entspricht.
DE69617547T 1995-07-07 1996-07-01 Verfahren und Vorrichtung zur Koordination der Datenübertragung zwischen Hardware und Software Expired - Fee Related DE69617547T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/499,317 US5675829A (en) 1995-07-07 1995-07-07 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

Publications (2)

Publication Number Publication Date
DE69617547D1 DE69617547D1 (de) 2002-01-17
DE69617547T2 true DE69617547T2 (de) 2002-07-25

Family

ID=23984790

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69617547T Expired - Fee Related DE69617547T2 (de) 1995-07-07 1996-07-01 Verfahren und Vorrichtung zur Koordination der Datenübertragung zwischen Hardware und Software

Country Status (4)

Country Link
US (1) US5675829A (de)
EP (1) EP0752665B1 (de)
JP (1) JPH09167127A (de)
DE (1) DE69617547T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870628A (en) * 1996-06-11 1999-02-09 International Business Machines Corporation Adaptor for receiving and processing asynchronous transfer mode cells within a computer network
US5812760A (en) * 1996-06-25 1998-09-22 Lsi Logic Corporation Programmable byte wise MPEG systems layer parser
US7324546B1 (en) * 1996-08-07 2008-01-29 Cisco Technology, Inc. Network router integrated onto a silicon chip
US5822612A (en) * 1996-09-12 1998-10-13 Thomas; Robert E. Apparatus and method for managing schedule table pointers
US6070219A (en) * 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US6021446A (en) * 1997-07-11 2000-02-01 Sun Microsystems, Inc. Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
FR2770665B1 (fr) * 1997-11-06 2002-12-20 Alsthom Cge Alkatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
US6098100A (en) * 1998-06-08 2000-08-01 Silicon Integrated Systems Corp. Method and apparatus for detecting a wake packet issued by a network device to a sleeping node
US6353845B1 (en) * 1998-06-25 2002-03-05 International Business Machines Corporation Computer system, program product and method for tracking asynchronous I/O with timeout support
US6327615B1 (en) * 1998-09-30 2001-12-04 Stmicroelectronics, Inc. Method and system of controlling transfer of data by updating descriptors in descriptor rings
US6871251B1 (en) * 2000-05-17 2005-03-22 Marvell International Ltd. High latency interface between hardware components
US7389374B1 (en) 2000-05-17 2008-06-17 Marvell International Ltd. High latency interface between hardware components
US7281065B1 (en) 2000-08-17 2007-10-09 Marvell International Ltd. Long latency interface protocol
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
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US8660137B2 (en) * 2005-09-29 2014-02-25 Broadcom Israel Research, Ltd. Method and system for quality of service and congestion management for converged network interface devices
US7970963B2 (en) * 2009-06-29 2011-06-28 Oracle America, Inc. Efficient buffer management in a multi-threaded network interface
US11314566B1 (en) * 2019-09-06 2022-04-26 Facebook Technologies, Llc. Inter-process communication for microkernel operating system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4285038A (en) * 1976-10-15 1981-08-18 Tokyo Shibaura Electric Co., Ltd. Information transfer control system
US4458316A (en) * 1981-03-06 1984-07-03 International Business Machines Corporation Queuing commands in a peripheral data storage system
US4462074A (en) * 1981-11-19 1984-07-24 Codex Corporation Do loop circuit
US5097442A (en) * 1985-06-20 1992-03-17 Texas Instruments Incorporated Programmable depth first-in, first-out memory
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer
US5265228A (en) * 1989-12-05 1993-11-23 Texas Instruments Incorporated Apparatus for transfer of data units between buses
KR950008837B1 (ko) * 1990-03-09 1995-08-08 후지쓰 가부시끼가이샤 멀티 프로세서 시스템용 제어시스템
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5249271A (en) * 1990-06-04 1993-09-28 Emulex Corporation Buffer memory data flow controller
JP2836283B2 (ja) * 1991-04-11 1998-12-14 日本電気株式会社 バッファ管理方式
GB9209840D0 (en) * 1992-05-07 1992-06-24 Int Computers Ltd Data buffering mechanism
US5299313A (en) * 1992-07-28 1994-03-29 3Com Corporation Network interface with host independent buffer management
DE69428186T2 (de) * 1994-04-28 2002-03-28 Hewlett-Packard Co.(A Delaware Corporation), Palo Alto Mehrfachsendeeinrichtung
US5592684A (en) * 1994-07-22 1997-01-07 Dell Usa, L.P. Store queue including a byte order tracking mechanism for maintaining data coherency
US5548587A (en) * 1994-09-12 1996-08-20 Efficient Networks, Inc. Asynchronous transfer mode adapter for desktop applications

Also Published As

Publication number Publication date
EP0752665A1 (de) 1997-01-08
EP0752665B1 (de) 2001-12-05
US5675829A (en) 1997-10-07
DE69617547D1 (de) 2002-01-17
JPH09167127A (ja) 1997-06-24

Similar Documents

Publication Publication Date Title
DE69617547T2 (de) Verfahren und Vorrichtung zur Koordination der Datenübertragung zwischen Hardware und Software
DE69622960T2 (de) Verfahren und Vorrichtung zur Übertragung und Verarbeitung virtueller Befehle
DE69630084T2 (de) Anlage und Verfahren zur Paketierung und Segmentierung von MPEG-Paketen
DE60130079T2 (de) Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE69217664T2 (de) Multimedia-signalprozessor-rechnersystem
DE69610157T2 (de) Ein Ein-/Ausgabeprozessor der gemeinsame Betriebsmittel einem Ein-/Ausgabebus in einem Rechner zur Verfügung stellt
DE3788319T2 (de) Multiprozessor-Unterbrechungsumleitungsmechanismus.
DE69519117T2 (de) Ein Rechnersystem
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE69128503T2 (de) Schnittstellenschaltung für intelligentes Netzwerk
DE69131436T2 (de) Netzanpassungseinrichtung mit als logische FIFOs gestalteten Speichern zur Übertragung und Empfang von Datenpaketen
DE3788539T2 (de) Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten.
DE69431846T2 (de) System für asynchronen datentransfer und steuerung des quellenverkehrs
DE69839374T2 (de) Multitorspeicher verwendende intelligente datenbusschnittstelle
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE69703732T2 (de) Asynchrones datenübertragungsgerät zur verwaltung asynchroner datenübertragungen zwischen einem anwendungsprogramm und einer busstruktur
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE69803852T2 (de) Dos-anwenderprogrammünterstützungen für ein modem ohne steuerung
US20020009075A1 (en) System for reducing bus overhead for communication with a network interface
DE69524975T2 (de) System und verfahren zur befehlsverarbeitung und datenübertragung in einem schallrechnersystem
DE69230656T2 (de) Universelle Koppeleinrichtung zwischen einem Rechnerbus und einer Steuereinheit einer Gruppe von Periphergeräten
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee