DE3751514T2 - Adressieranordnung für RAM-Puffer-Steuereinrichtung. - Google Patents

Adressieranordnung für RAM-Puffer-Steuereinrichtung.

Info

Publication number
DE3751514T2
DE3751514T2 DE3751514T DE3751514T DE3751514T2 DE 3751514 T2 DE3751514 T2 DE 3751514T2 DE 3751514 T DE3751514 T DE 3751514T DE 3751514 T DE3751514 T DE 3751514T DE 3751514 T2 DE3751514 T2 DE 3751514T2
Authority
DE
Germany
Prior art keywords
register
output
input
wpr
multiplexer
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
DE3751514T
Other languages
English (en)
Other versions
DE3751514D1 (de
Inventor
Venkatraman Iyer
Sunil Pradeep Joshi
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.)
Advanced Micro Devices 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
Application granted granted Critical
Publication of DE3751514D1 publication Critical patent/DE3751514D1/de
Publication of DE3751514T2 publication Critical patent/DE3751514T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/066User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Dram (AREA)
  • Static Random-Access Memory (AREA)
  • Liquid Crystal Display Device Control (AREA)

Description

  • Die Erfindung betrifft das Gebiet von Hochgeschwindigkeitsnetzwerkanwendungen und gemäß einem Aspekt das Feld von RAM- Puffer-Steuereinrichtungen, die die Adress-Ports zu einem Direktzugriffsspeicher steuern, damit der Speicher nach Art zweier unabhängiger FIFOs arbeiten kann.
  • Es existieren drei Haupt-Verwendungen für Hochgeschwindigkeitsnetzwerksysteme. Die erste Verwendung liegt in Rückend- Netzwerken, wobei das Netzwerk zur gegenseitigen Verbindung einer Vielzahl von Speichereinrichtungen, etwa Platten und Bandlaufwerken, mit der Rückebene des Host-Computers verwendet wird. Bei derartigen Konfigurationen erfordert der Daten- Transfer zwischen Platten und CPUs normalerweise einen extrem hohen Durchsatz. Eine zweite Verwendung für Hochgeschwindigkeitsnetzwerke liegt in Hochleistungs-Vorderend-Netzwerken, wobei eine Anzahl von Computern, Terminals und anderer Einrichtungen miteinander durch ein einziges Übertragungsmedium verbunden sind, über das Meldungen zwischen den an das Netzwerk angeschlossenen Einheiten übermittelt werden. Ein dritter Verwendungsbereich liegt in Backbone-Netzwerken, wobei Netzwerke niedriger Geschwindigkeit mit Netzwerken hoher Geschwindigkeit verbunden sind, die als Brücken zwischen den Netzwerken niedriger Geschwindigkeit wirken. Zur Vermeidung von Engpässen ist eine hohe Durchsatzkapazität erforderlich.
  • Bei derartigen Netzwerken verwendet ein Host-System, das ein Computer, ein Terminal, eine Peripherieinrichtung oder irgendeine andere Einrichtung sein kann, ein speziell angepaßtes System als Interface zwischen dem Host-System und den Übertragungsmedien. Solche Systeme enthalten normalerweise Kodierer und Dekodierer zum Umsetzen der Daten in das korrekte Signalformat für die Übertragungsmedien, und Medienzugriffssteuereinrichtungen zur Handhabung der Konkurrenz um die Medien seitens unterschiedlicher Host-Systeme. Das Host-System ist durch eine RAM-Puffer-Steuereinrichtung und eine Datenwegsteuereinrichtung mit einem Pufferspeicher verbunden. Der Zweck des Pufferspeichers liegt darin, zur Übermittlung vorgesehene Meldungen bis zu dem Zeitpunkt zu speichern, zu dem sie übermittelt werden, und Meldungen, die empfangen worden sind, zu speichern, bis das Host-System in der Lage ist, sie aus dem Speicher zurückzugewinnen und zu verarbeiten. Die Datenwegsteuereinrichtung steuert die Daten-Eingänge des Speichers, und die RAM-Puffer-Steuereinrichtung steuert die Adress-Eingänge des Speichers.
  • Bei derartigen Systemen wird der Pufferspeicher zweckmäßigerweise so gesteuert, daß er die Arbeit eines FIFO-Speichers simuliert. Dadurch wird es dem Host-System ermöglicht, Meldungen, die in den Pufferspeicher übermittelt werden sollen, in einer bestimmten Reihenfolge zu speichern, und die Meldungen können in der gleichen Reihenfolge übermittelt werden. Das gleiche gilt für empfangene Meldungen, d. h. die empfangene Meldung wird in dem Pufferspeicher in einer bestimmten Reihenfolge gespeichert und wird von dem Host-System in der gleichen Reihenfolge aus dem Puffer ausgelesen.
  • Es existieren Puffer-RAM-Steuereinrichtungen, die in Form von IC-Schaltungen verfügbar sind. Eine dieser Schaltungen, die die Typenbezeichnung Signetics 8X60 führt, handhabt die Adress-Stifte von normalen, handelsüblichen RAMs derart, daß die RAMs mit einem Hochgeschwindigkeits/Hochleistungs-FIFO- Stapel arbeiten. Ein weiteres derartiges System ist das Logikzellen-Array von Xilinx Inc. in Form einer Druckerpuffersteuereinrichtung des Modells Nr. XC2064, beschrieben in Electronic Design vom 14. November 1985 auf S. 139. Beide dieser RAM-Steuereinrichtungen haben den Effekt, daß ein normales, handelsübliches RAM mit einem einzigen FIFO-Puffer arbeitet.
  • WO 84.100836 lehrt die Verwendung eines Satzes von Pointern für jede von mehreren FIFO-Schlangen in einem Puffer-RAM. Dabei weist jedoch jede FIFO-Schlange einen feststehenden Speicherbereich auf.
  • Unvorteilhafterweise hat keines dieser Systeme hinsichtlich seiner architektonischen Kapazität eine ausreichende Flexibilität und Leistungsfähigkeit, um eine komplexe Hochgeschwindigkeitsnetzwerk-Anwendung zu stützen. Beispielsweise ist keines der beiden Systeme in der Lage, eine einzelne Bank in einem Speicher dazu zu veranlassen, zwei unabhängig arbeitende FIFOs zu implementieren. Ferner verwenden herkömmliche FIFO- RAM-Steuereinrichtungen generell Zähler, um die Lese- und Schreib-Pointer-Positionen zu verfolgen. Derartige Zähler können nicht generell durch beliebige gewünschte Adressen initialisiert werden, wenn irgendeiner der anderen Zähler zum Steuern der Adresse verwendet wird, die den Adress-Stiften des gesteuerten Speichers zugeführt wird. Die Fähigkeit, irgendeinen Pointer in dem System unabhängig zu setzen, während ein anderer Pointer zu Steuern der Adress-Stifte verwendet wird, ist insofern eine nützliche Eigenschaft, als sie den Designern der Software des Systems große Flexibilität ermöglicht.
  • Ferner stützen derartige herkömmliche Systeme nicht generell einen beliebigen Zugriff auf irgendeine Position in dem Speicher, bei der der Zugriff nicht durch Begrenzungen der FIFO- Adressen eingeschränkt ist. Es ist zweckmäßig, verschiedene Steuerfunktionen zu implementieren, die eine derartige Direktzugriffskapazität bieten, daß der Inhalt jeder Adresse in dem Speicher unabhängig davon gelesen oder geändert werden kann, ob er sich außerhalb der momentan hergestellten FIFO-Start- und End-Adressen befindet.
  • Ein weiterer Nachteil herkömmlicher FIFO-Steuereinrichtungen liegt im Bereich des Flushens von Paketen oder Daten, die eingetroffen sind, bei denen sich jedoch erwiesen hat, daß ihre Aufbewahrung in dem Speicher nicht wünschenswert ist. Bei derartigen Daten kann es sich um solche Daten handeln, die nicht an das Host-System adressiert sind oder die einen Übertragungsfehler enthalten, der die Unversehrtheit der Daten zerstört. Die herkömmlichen Systeme bieten keine Schaltung, die es ermöglicht, das Flushen von Daten einfach und zügig durchzuführen.
  • Bei der Verwaltung eines FIFO ist es ferner vorteilhaft, in der Lage zu sein, die jedem Paket zugeordnete Status- und Längen-Information in einer Speicher-Position in der Nähe dieser Position aufzuzeichnen, statt sie am Ende des Paketes zu speichern. Die beste Position für derartige Status- und Längen-Information ist die Speicher-Position, die dem ersten Byte der Paket-Daten unmittelbar vorausgeht. Unvorteilhafterweise bieten herkömmliche Systeme keine Schaltung, die die Fähigkeit adäquat unterstützt, Status- und Längen-Information einfach und schnell in die dem erste Byte der empfangenen Paket-Daten unmittelbar vorhergehende Speicher-Position zu schreiben.
  • Bei der Verwaltung eines FIFOs ist es ferner zweckmäßig, ein bestimmtes Paket aus irgendeinem Grund fallenlassen zu können, ohne seine Status- und Längen-Information zu verlieren. Herkömmliche Systeme bieten keine Schaltung, die eine derartige Steuerfunktion problemlos unterstützt.
  • Bei einigen Netzwerk-Anwendungen, etwa in Token-Ring-Netzwerken, ist es wünschenswert, Daten-Bytes, -Wörter oder -Pakete in verknüpftem Listen-Format übertragen zu können, d. h. in einem Zustand, in dem zu übertragende Bytes, Wörter und Pakete nicht an benachbarten Positionen in dem Speicher gespeichert sind, sondern statt dessen über den gesamten Speicher hinweg verteilt sind. Bei einer derartigen Verknüpfungsliste ist am Ende jedes Gegenstandes der Liste ein Pointer angeordnet, der auf die Start-Adresse des nächsten Gegenstandes der Liste verweist. Herkömmliche Systeme bieten keine Schaltung, die die Übertragung verknüpfter Listen von Daten erlaubt. Typischerweise verwenden derartige herkömmliche Systeme Zähler, die durch ein Taktsignal derart inkrementiert werden, daß die Pointer zur Übertragung von Daten in fortschreitender Weise kontinuierlich von einer Speicher-Position zur nächsten Speicher-Position variieren. Eine derartige Architektur kann nicht ohne weiteres zur Übertragung verknüpfter Listen adaptiert werden.
  • Bei der Verwaltung von FIFOs ist es sehr wünschenswert, in der Lage zu sein, flexible Start- und End-Adressen für das FIFO zu erzeugen. Die Register, die zum Erstellen derartiger Start- und End-Adressen verwendet werden, werden nicht bei der Übertragung verknüpfter Listen verwendet. Dies ist deshalb der Fall, da die Übertragung verknüpfter Listen keine FIFO-Operation ist, so daß die Start- und End-Adressen bedeutungslos sind. Während der Übertragung verknüpfter Listen entsteht jedoch manchmal die Notwendigkeit, den aktuellen Leseadress- Pointer in der Mitte der Übertragung einer bestimmten Verknüpfungsliste zu bewahren und den Leseadress-Pointer in eine feste vorbestimmte Adresse zu ändern, um die Übertragung eines bestimmten Paketes, das an dieser Adresse startet, zu beginnen. Eine solche Situation entsteht typischerweise, wenn in einer Token-Ring-Situation aufgrund eines im Netzwerk auftretenden Problems ein Ring-Rückgewinnungs-Paket übertragen werden muß. Zweckmäßigerweise sollte man in der Lage sein, die Speicher-Positionen, die die Start-Adresse und die End-Adresse für FIFO-Operationen speichern, als neue Verknüpfung zu verwenden, Register zur Verwendung bei Vektoren-Übertragung zu der Start-Adresse des Rückgewinnungs-Paketes aufzusparen und den aktuellen Inhalt des Lese-Pointers beizubehalten.
  • Schließlich ist es zweckmäßig, in der Lage zu sein, Pakete in einer Rücken-an-Rücken-Weise mit praktisch keiner Zeit zwischen dem Ende der Übertragung eines ersten Paketes und dem Beginn der Übertragung des zweiten Paktes zu übermitteln. Bei der FIFO-Verwaltung durch eine FIFO-Steuereinrichtung erfolgen manchmal gleichzeitige Zugriffs-Befehle durch verschiedene Einheiten in dem Netzwerk-Interface. Beispielsweise kann das Host-System einen Zugriff auf den Speicher verlangen, um darin ein zu übertragendes Paket zu speichern. Für eine derartige Transaktion muß die FIFO-Steuereinrichtung den Speicher mit einem Schreib-Pointer versehen, um eine Adresse zu erstellen, an der das erste Daten-Byte von dem Host-System eingeschrieben wird. Gleichzeitig kann ein an das Host-System adressiertes Daten-Paket von einem anderen an das Netzwerk angeschlossenen System eintreffen. Ein solches Paket muß in den Speicher eingeschrieben werden, sobald es eintrifft. Bei herkömmlichen Systemen, bei denen zwei FIFO-Speicher nicht gleichzeitig verwaltet werden können, kann eine derartige Situation niemals auftreten, und falls sie auftritt, existiert ein Fehler-Zustand. In System jedoch, in denen eine derartige Situation auftreten kann, ist es erforderlich, die gleichzeitigen Anforderungen einzuschätzen, um die Anforderung mit der höchsten Priorität zu bestimmen. Dabei ist es nützlich, die Einschätzung in Pipeline-Weise durchzuführen, so daß die Einschätzung gleichzeitig mit der Ausführung der vorherigen Anforderung erfolgt. Dies bedeutet, daß es sinnvoll ist, in der Lage zu sein, eine erste Gruppe von Anforderungen einzuschätzen und dann die Gewinner-Anforderung gleichzeitig mit der damit einhergehenden, innerhalb einer zweiten Gruppe von Anforderungen erfolgenden Einschätzung durchzuführen, so daß bei Beendigung der Ausführung der Gewinner-Anforderung aus der ersten Einschätzung die Ausführung der Gewinner-Anforderung aus der zweiten Einschätzung unmittelbar erfolgen kann.
  • Somit besteht Bedarf an einem flexiblen System, das externe Speicher derart verwaltet, daß gleichzeitige unabhängige FIFO- Implementationen erfolgen und sämtliche der vorstehend angeführten Erfordernisse erfüllt werden.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es wird ein System beschrieben, das die Adress-Eingänge eines Speichers derart verwalten kann, daß zwei unabhängige FIFO- Puffer beibehalten werden können oder, alternativ dazu, ein Empfangs-FIFO implementiert werden kann, während eine Verknüpfungsliste zur Übertragung von Daten implementiert wird.
  • Die Erfindung schafft gemäß einem Aspekt eine Vorrichtung zum Erzeugen von Pointer-Adressen zum Leiten von Datenoperationen innerhalb eines Speichers, die versehen ist mit einer ersten Einrichtung zum Speichern mehrerer Pointer-Adressen in Pointeradress-Speicherregistern zum Verwalten mehrerer unabhängiger Bereiche in dem Speiche als mindestens zwei unabhängig verwaltete FIFO/LIFO-Puffer, einer mit der ersten Einrichtung verbundenen zweiten Einrichtung zum Wählen des Ausgangs einer der Pointer-Adressen zur Ausgabe an den Speicher, einer mit der zweiten Einrichtung und der ersten Einrichtung verbundenen dritten Einrichtung zum Inkrementieren oder Dekrementieren der gewählten Pointer-Adresse, und die gekennzeichnet ist durch eine vierte Einrichtung zum Wählen eines Ausgabewertes von einem Initialisierungsbus, der dritten Einrichtung oder der ersten Einrichtung zur Eingabe in den Speicherbereich einer gewählten Pointer-Adresse in der ersten Einrichtung.
  • Gemäß der bevorzugten Ausführungsform kann die Erfindung eine Verknüpfungslisten-Übertragung von zwei oder mehr unabhängigen Verknüpfungslisten unterstützen. Gemäß einer Ausführungsform umfaßt die Erfindung eine Einrichtung zum Speichern mehrerer Pointer-Adressen. Ein Ausgangs-Multiplexer ist mit der ersten Einrichtung verbunden, um eine der Pointer-Adressen zur Ausgabe an den Adress-Port des Speichers zu wählen. Eine mit dem Ausgang des Ausgangs-Multiplexers verbundene Inkrementierungsschaltung inkrementiert die gewählte Pointer-Adresse und übermittelt sie auf einem BUS, der mit den Eingängen der ersten Einrichtung verbunden ist, so daß der gewählte Pointer für den nächsten Speicherzugriff inkrementiert werden kann. Bei der bevorzugten Ausführungsform werden die mehreren Adressen in mehreren Registern gespeichert. Jedes Register weist einen Eingangs-Multiplexer auf, um zu steuern, welche der mehreren Eingänge zur Verbindung mit dem Daten-Eingang des dem betreffenden Eingangs-Multiplexers zugehörigen Registers gewählt wird. Bei einer Ausführungsform existieren ein Schreibadress- Pointer-Register und ein Leseadress-Pointer-Register für ein Übertragungs-FIFO, und Schreibadress-Pointer und ein Leseadress-Pointer für ein Empfangs-FIFO. Bei der bevorzugten Ausführungsform ist ein Eingang jedes Eingangs-Multiplexers mit einem Initialisierungsbus verbunden, und ein weiterer Eingang jedes Multiplexers ist mit dem Ausgang der Inkrementierungsschaltung verbunden. Somit ist der bestimmte Pointer, der gewählt ist, mit seinem Eingangs-Multiplexer derart geschaltet, daß das Ausgangssignal der Inkrementierungsschaltung den Eingängen des gewählten Pointers zugeführt wird und der gewählte Register-Ausgang durch den Ausgangs-Multiplexer mit den Adress-Stiften des Speichers verbunden ist. Dann kann mittels des Initialisierungsbusses und des korrekten Eingangs- Multiplexers auf jedes weitere Pointer-Speicherregister zugegriffen werden, so daß der Inhalt dieses Registers auf jede gewünschte Pointer-Adresse initialisiert werden kann.
  • Bei einer weiteren Ausführungsform der Erfindung ist ein Direktzugriffsspeicher-Pointerspeicherregister vorgesehen. Ferner ist ein Eingangs-Multiplexer vorgesehen, der über einen Eingang mit dem Initialisierungs-BUS und über einen weiteren Eingang mit der Ausgangs- Inkrementierungsschaltung verbunden ist.
  • Sämtliche Pointer-Speicherregister bei sämtlichen Ausführungsformen sind über einen Eingang ihrer Eingangs-Multiplexer mit dem Ausgang des zugehörigen Registers verbunden. Dadurch wird es möglich, den Inhalt des Pointer-Registers ohne Inkrementierung auf seinem aktuellen Wert zu halten, solange der Eingangs-Multiplexer den mit dem Register-Ausgang verbundenen Eingang wählt. Dies ermöglicht ein Höchstmaß an Flexibilität beim Umgang mit einem externen Speicher, mit dem der Pointerregister-Inhalt für lange Zeitperioden konstant gehalten werden kann und somit sämtliche Zeitsteuerungsschwierigkeiten beseitigt werden können, die sich aus verschiedenen Betriebsgeschwindigkeiten des Speichers und der Schaltung ergeben können, welche auf den Speicher zugreift und ein Einschätzung gepipelineter Anforderungen ermöglicht, wie noch beschrieben wird. Das Direktzugriffsspeicher-Pointerspeicherregister teilt diese Fähigkeit auch mit den weiteren Pointer-Speicherregistern.
  • Für jedes der Übermittlungs- und Empfangs-FIFOs ist ein Endadress-Speicherregister vorgesehen. Diese beiden Register weisen Eingangs-Multiplexer auf, die über einen Eingang mit dem Initialisierungsbus verbunden sind. Dadurch wird es möglich, die End-Adressen der FIFOs beliebig zu ändern. Die Ausgänge der Endadress-Register werden mittels eines Ausgangs- Multiplexers auf einen Eingang eines Komparators geschaltet, dessen anderer Eingang mit dem Ausgang des mit den Pointer- Speicherregistern verbundenen Ausgangs-Multiplexers verbunden ist. Die gewählte Pointer-Adresse wird mittels des Komparators fortlaufend mit der korrekten End-Adresse verglichen, um festzustellen, ob die FIFO-Endbegrenzung von dem derzeit gewählten Pointer erreicht worden ist. Eine mit dem Ausgangs-Multiplexer und den Eingangs-Multiplexern verbundene Steuer-Logik gewährleistet, daß zu irgendeinem bestimmten Zeitpunkt auf der Basis des derzeit gewählten Pointers das korrekte Endadress-Pointerregister zum Vergleich gewählt worden ist. Das Ausgangssignal des Komparators wird der Steuer-Logik zugeführt, die veranlaßt, daß die Start-Adresse für das korrekte FIFO in den korrekten Pointer geladen wird, wenn der gewählte Pointer bis zur Gleichheit mit der End-Adresse inkrementiert worden ist. Die Start-Adressen werden in Registern gespeichert, die ebenfalls mit Eingangs-Multiplexern versehen sind, von denen einer mit dem Initialisierungsbus verbunden ist. Somit können die Start- Adressen beliebig auf jede gewünschte Adresse gesetzt werden.
  • Das Ausgangssignal des Komparators für die Endadress-Schaltung wird von der Steuer-Logik ignoriert, wenn die Steuer-Logik den Direktzugriffs-Pointer zur Ausgabe an die Adress-Stifte des Speichers gewählt hat. Somit unterliegt die Direktzugriffs- Schaltung der Erfindung keinerlei Beschränkungen der FIFO-End- Adressen.
  • Gemäß einer weiteren Ausführungsform der Erfindung wird ein Schatten-Schreibpointer-Speicherregister verwendet. Dieses Register weist ebenfalls einen Eingangs-Multiplexer auf, der über einen Eingang mit dem Ausgang des Schreibpointer-Speicherregisters für das Empfangs-FIFO verbunden ist. Ein weiterer Eingang des Eingangs-Multiplexers für das Schatten- Schreibpointer-Speicherregister ist mit dem Ausgang des Schatten-Schreibpointer-Registers selbst verbunden. Ferner ist ein Eingang des Schatten-Schreibpointer-Speicherregisters mit einem Eingang des Eingangs-Multiplexers verbunden für das Schreibpointer-Speicherregister für das Empfangs-FIFO verbunden. Die Steuer-Logik ist zur Implementierung dreier separater Algorithmen konzipiert. Bei diesen handelt es sich jeweils um die folgenden: erstens um einen Algorithmus zum Empfang normaler Daten-Pakete; zweitens, einen Algorithmus zum vollständigen Flushen ungewünschter Pakete; drittens, einen Algorithmus zum Fallenlassen empfangener Pakete, ohne die Status- und Längen-Information zu verlieren, die mittels des Algorithmus zum Speichern normaler empfangener Pakete aufgezeichnet wird.
  • Der Algorithmus zum Speichern normal empfangener Pakete erlaubt das Schreiben von Status- und Längen-Information in die Speicher-Position, die dem ersten Byte des empfangenen Paketes unmittelbar vorausgeht. Dies gilt ungeachtet dessen, wie lang das Paket ist und ob seine Länge bekannt ist oder nicht. Dies erfolgt durch Speichern des Adress-Inhalts des Schreib-Pointers für das Empfangs-FIFO in das Schatten-Schreibpointer- Register am Beginn des Paket-Empfangs und durch Überspringen der ersten Adress-Position. Anschließend werden die Paket- Daten beginnend mit der neu inkrementierten Adresse in dem Schreib-Pointer für das Empfangs-FIFO gespeichert. Am Ende des Paket-Empfangs wird der Inhalt des Schatten-Schreibpointer- Registers in das Schreibpointer-Register für das Empfangs-FIFO hinein wiederhergestellt, und umgekehrt, und die Status- und Längen-Information wird in die Position geschrieben, auf die der Schreib-Pointer dann verweist. Nachdem die Status- und Längen-Information geschrieben worden ist, wird das Schreib- Pointer-Register für das Empfangs-FIFO wieder auf die Adresse gebracht, die dem letzten Daten-Byte in dem Empfangs-Paket direkt folgt, indem die Eingangs-Multiplexer für das Schreib- Pointer-Register für das Empfangs-FIFO und die Schatten- Schreibpointer-Register dazu veranlaßt werden, Eingänge derart zu wählen, daß der Inhalt des Schatten-Schreibpointer-Registers in dem Schreib-Pointer-Register für das Empfangs-FIFO wiederhergestellt wird.
  • Die zu beschreibende Steuer-Logik ist ferner derart konzipiert, daß sie ein einfaches und zügiges Flushen von ungewünschten Paketen erlaubt, indem sie veranlaßt, daß der Inhalt des Schreib-Pointer-Registers für das Empfangs-FIFO zu Beginn des Empfangs jedes Paketes in dem Schatten-Schreibpointer- Register gespeichert wird. Wenn ein Paket geflusht werden soll, teilt ein Signal dieses Ereignis der Steuer-Logik mit, die daraufhin veranlaßt, daß der Inhalt des Schatten-Schreibpointer-Registers in dem Schreib-Pointer-Register für das Empfangs-FIFO gespeichert wird, wodurch der Schreib-Pointer wieder auf den Adress-Wert gebracht wird, der den Beginn des aktuellen zu flushenden Paketes markiert. Die zur Implementierung der Erfindung vorgesehene Steuer-Logik implementiert den Algorithmus für das Fallenlassen in ähnlicher Weise wie den Flush-Algorithmus, jedoch mit einigen geringfügigen Abweichungen.
  • Bei einer weiteren Ausführungsform der Erfindung wird eine Verbindung zwischen einem Daten-Bus mit einem Eingang des Lesepointer-Speicherregisters für das Übertragungs-FIFO verwendet. Wenn eine Übermittlung verknüpfter Listen gewünscht ist, veranlaßt die Steuer-Logik den Eingangs-Multiplexer für den Lese-Pointer für das Übertragungs-FIFO dazu, den mit dem Daten-Bus verbundenen Eingang zu wählen. Auf diese Weise kann die Verknüpfungsadresse für das nächste auf der Verknüpfungsliste befindliche Element in den Lese-Pointer für das Übertragungs-FIFO geladen werden, so daß durch Verwendung dieses Pointers ein Speicherzugriff auf das nächste Element auf der Liste erfolgen kann. In solchen Situationen veranlaßt die Steuer-Logik den Ausgangs-Multiplexer dazu, Lese-Pointer für das Übertragungs-FIFO als Ausgangs-Adresse zu verwenden.
  • Gemäß einer weiteren Ausführungsform ist zur Übertragung ein zusätzlicher Lese-Pointer in Form eines weiteren, zur Übertragung dienenden Lesepointer-Speicherregisters vorgesehen. Dieses zusätzliche Register weist wiederum einen Eingangs- Multiplexer auf, der über einen Eingang derart mit dem Daten- Bus verbunden ist, daß zwei unabhängige Verknüpfungslisten übertragen werden können, indem die beiden Lese-Pointer für Übertragungsoperationen alternativ verwendet werden oder indem ein Pointer für die Übertragung einer ersten Verknüpfungsliste gewählt wird und der zweite Pointer für die Übertragung der zweiten Liste gewählt wird, nachdem die Übertragung der ersten Liste abgeschlossen ist.
  • Während der Übertragung von Verknüpfungslisten geschieht es manchmal, daß ein Ring-Rückgewinnungs-Zustand erforderlich wird und ein vorbestimmtes Paket, das an einer bestimmten Position in dem Speicher positioniert ist, übermittelt werden muß, um die Ring-Rückgewinnung zu unterstützen. In einem derartigen Fall muß der aktuelle Inhalt des für den Übertragungs- Puffer vorgesehenen Lese-Pointers gerettet werden, und ein neuer Lese-Pointer für den Übertragungs-Puffer muß geladen werden. Der neue Pointer ist die Adresse des feststehenden Paketes, das übertragen werden soll. Die Ausführungsform benutzt vorteilhafterweise das Speicherregister für die End- Adresse für den Übertragungs-Puffer, um den aktuellen Lese- Pointer für den Übertragungs-Puffer zu speichern. Dieses Retten des aktuellen Lese-Pointers für den Übertragungs-Puffer erfolgt durch einen Weg vom Ausgang des Lesepointer-Speicherregisters für den Übertragungs-Puffer zu einem Eingang des Eingangs-Multiplexers für das Endadress-Speicherregister des Übertragungs-Puffers. In Ring-Rückgewinnungs-Situationen veranlaßt die Steuer-Logik, daß dieser Weg an dem Eingangs-Multiplexer für das Endadress-Speicherregister des Übertragungs- Puffers gewählt wird. In ähnlicher Weise wird der Eingangs- Multiplexer für den Lese-Pointer für den Übertragungs-Puffer dazu veranlaßt, den Ausgang des Startadresspointer-Speicherregisters zum Laden der neuen Verknüpfungsadresse zu verwenden. Die neue Verknüpfungsadresse, d. h. die Adresse des Beginn des Rückgewinnungspaketes ist zuvor in das Startadress-Speicherregister geladen worden, und zwar während der Verknüpfungslisten-Operationen durch den Initialisierungsbus.
  • Bei der bevorzugten Ausführungsform werden für jeden Speicherzugriff Mehrfach-Taktzyklen verwendet. Während eines Takt-Zyklus des Speicherzugriffs wird der gewählte Pointer durch die Inkrementierungsschaltung inkrementiert. Während der auf die Inkrementierung folgenden Takt-Zyklen wird der gewählte Pointer durch die Steuer-Logik auf einem konstanten Wert gehalten, indem der Eingangs-Multiplexer dazu veranlaßt wird, den Eingang zu wählen, der mit dem Ausgang des gewählten Pointer- Speicherregister verbunden ist. Somit kann der Pointer für jede Anzahl von Takt-Zyklen, die zum Vervollständigen des Transfers benötigt werden, auf einem konstanten Wert gehalten werden. Die Steuer-Logik veranlaßt gleichzeitig, daß die Einschätzungs-Logik, die mit den Pointerspeicherzugriffsanforderungsleitungen von den verschiedenen Anforderungseinheiten verbunden ist, die Anforderungen während des Ausführungszyklus oder der Zyklen für die Gewinner-Anforderung aus der vorherigen Einschätzung einzuschätzen. Bei der bevorzugten Ausführungsform wird jeder Lese- oder Schreib-Transfer zu dem Speicher als Zwei-Takt-Zyklus-Transfer bezeichnet. Während des zweiten Takt-Zyklus der Ausführung wird die Gewinner-Anforderung aus der ersten Einschätzung, die Einschätzung für die zweite Gruppe von Anforderungen, abgeschlossen. Somit ist die Gewinner-Anforderung für den Speicherzugriff durch die Einschätzungs-Schaltung bestimmt worden, wenn der Ausführungs- Zyklus für die Gewinner-Anforderung aus der vorherigen Einschätzung abgeschlossen worden ist. Somit können Pakete in Rücken-an-Rücken-Weise übertragen werden, ohne daß es erforderlich ist, zwischen Paketen auf den Abschluß von Einschätzungen zu warten.
  • Im folgenden werden bevorzugte Ausführungsformen der Erfindung erläutert.
  • KURZBESCHREIBUNG DER FIGUREN
  • Fig. 1 zeigt ein Blockschaltbild eines typischen Systems, bei dem die Erfindung vorgesehen sein kann,
  • Fig. 2 zeigt ein Blockschaltbild einer RAM-Puffer-Steuereinrichtung gemäß der Erfindung,
  • Fig. 3 zeigt ein Schaubild der physischen und logischen Organisation der beiden FIFO-Puffer, die von der RAM-Puffer-Steuereinrichtung verwaltet werden,
  • Fig. 4 zeigt ein detaillierteres Blockschaltbild einer Ausführungsform der Erfindung,
  • Fign. 5A und 5B zeigen ein detaillierteres Blockschaltbild der bevorzugten Ausführungsform der Erfindung,
  • Fig. 6 zeigt ein Schaubild der Speicher-Organisation von zwei Paketen, die als Verknüpfungsliste organisiert sind,
  • Fig. 7 zeigt ein Schaubild der Organisation der Felder eines typischen Paketes,
  • Fig. 8 zeigt ein Flußdiagramm des Algorithmus, der bei der Erfindung zum Empfang eines normalen Paketes benutzt wird,
  • Fig. 9 zeigt ein detaillierteres Schaubild der verschiedenen Multiplexer und Register, die bei den drei in der Beschreibung erläuterten Empfangs-Algorithmen involviert sind,
  • Fig. 10 zeigt ein Zeitsteuerungsschaubild der Beziehungen zwischen den Signalen, die bei dem Algorithmus zum Empfangen von normalen Paketen involviert sind,
  • Fig. 11 zeigt ein Flußdiagramm des Algorithmus zum Flushen von Paketen,
  • Fig. 12 zeigt ein Flußdiagramm des Algorithmus zum Fallenlassen von Paketen,
  • Fig. 13 zeigt ein Zeitsteuerungsdiagramm des Vorgangs des Übertragens sowohl von Verknüpfungslisten von Paketen und von nicht verknüpften Paketen,
  • Fig. 14 zeigt ein Schaubild der Speicheradressenpositionen und ihres Inhalts, die bei dem Beispiel gemäß Fig. 13 verwendet werden,
  • Fig. 15 zeigt ein Zeitsteuerungsschaubild der gepipelineten Einschätzung von Ausführungs-Anforderungen, die von der Erfindung ausgeführt werden,
  • Fig. 16 zeigt ein Schaubild eines asynchronen Systems, bei dem zwei Systeme mit Direktspeicherzugriffs-Bedarf verwendet werden, die jeweils ihr eigenes Taktsignal aufweisen und die sich eine gemeinsame RAM-Puffer-Steuereinrichtung teilen, welche mit dem Taktsignal nur eines Systems betrieben wird.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Fig. 1 zeigt ein Blockschaltbild eines typischen Systems, in dem die RAM-Puffer-Steuereinrichtung gemäß der Erfindung vorgesehen ist. Es wird ein Übertragungsmedium wie etwa ein faseroptisches Kabel 20 verwendet, um die Daten zwischen den an das Medium angeschlossenen Systemen zu übermitteln. Ein faseroptischer Transceiver 22 konvertiert die auf dem Medium 20 anstehenden Signale in ein elektrische Signale in seriellem Format, und umgekehrt. Signale, die auf dem Medium 20 übertragen werden sollen, werden über einen Bus 24 an den faseroptischen Transceiver 22 übermittelt, und Signale, die von dem Medium her eintreffen, werden in elektrische Signale mit dem korrekten Format konvertiert und über einen Bus 26 von dem Transceiver ausgegeben. Ein Kodiererer/Dekodierer 28 kodiert die Daten zur Übertragung, die auf einem Bus 30 eintreffen, in den korrekten Code, der zur Übertragung auf dem Medium 20 gewählt worden ist. Die von dem Medium 20 her eintreffenden Daten werden in dem Kodierer/Dekodierer 28 dekodiert und auf einem Bus 32 ausgegeben.
  • Jedes Lokalbereichsnetzwerk weist ein Protokoll auf. Ferner weist jedes Netzwerk eine Topologie, etwa einen Stern, einen Ring, oder andere Topologien auf, die in der Zukunft entwickelt werden können. Um in der Architektur die Flexibilität zu schaffen, um sämtliche derartige Unterschiede, die in der Topologie und in dem Protokoll bestehen, aufzunehmen, werden das Protokoll oder topologiespezifische Funktionen in der Medienzugriffssteuereinrichtungsschaltung (FORMAC) 34 implementiert. Für die derzeit existierenden verschiedenen Topologien und Protokolle ist das Design der Medienzugriffssteuereinrichtung, des Kodierer/Dekodierers, und des Transceivers bekannt. Ferner sind diese nicht kritisch für die Erfindung, da die RAM-Puffer-Steuereinrichtung gemäß der Erfindung zur Verwendung in jeder beliebigen Topologie und jedem beliebigen Protokoll mit jedem Typ von Medium konzipiert ist. Somit wird für einen bestimmten Typ von Topologie und Protokoll ein bestimmtes Design für die Medienzugriffssteuereinrichtung gewählt. Das gleiche gilt für den Transceiver und für den Kodierer/Dekodierer.
  • Die gesamte in Fig. 1 gezeigte Schaltung ist zur Erfüllung der Kommunikationserfordernisse eines Host-Systems 36 konzipiert. Dieses Host-System kann irgendeines einer Anzahl verschiedener Typen von Logik-Systemen sein, etwa ein Computer, ein Diskettenlaufwerk, ein Personal Computer, eine Arbeitsstation oder eine andere Peripherieeinrichtung. Das Host-System kann groß oder klein sein, und es kann schnell oder langsam sein.
  • Das Host-System 36 unterliegt der Notwendigkeit, Daten-Pakete an die anderen Host-Systeme an dem Netzwerk zu übermitteln und Daten-Pakete von diesen zu empfangen. Da das Host-System mit anderen Aufgaben beschäftigt sein kann, wenn auf dem Medium 20 ein an das Host-System 36 adressiertes Empfangs-Paket eintrifft, ist es erforderlich, das Empfangs-Paket zeitweilig zu speichern, bis das Host-System 36 die Gelegenheit hat, es zu verarbeiten. Ferner muß das Host-System 36 von Zeit zu Zeit Pakete an andere Host-System an dem Netzwerk übermitteln. Das Netzwerk kann jedoch nur ein Paar von Übertragungs- und Empfangs-Host-Systemen zu irgendeinem bestimmten Zeitpunkt handhaben. Wenn das Host-System 36 ein Paket übertragen will, erweist es sich deshalb manchmal, daß der Zugriff auf das Medium 20 durch ein anderes Paar von Host-Systemen blockiert ist, die die ausschließliche Kontrolle über das Medium 20 ausüben. Deshalb ist es manchmal erforderlich, das zu übertragende Paket zeitweilig in einem Pufferspeicher zu speichern, bis der Zeitpunkt eintritt, zu dem das Medium 20 für das Host- System 36 verfügbar gemacht wird. Die hier erwähnten Funktionen der zeitweiligen Speicherung werden von einem Pufferspeicher 38 erfüllt. Dieser Pufferspeicher weist einen Adress-Port auf, der mit einem Adress-Bus 40 für Empfangs-Adressen verbunden ist, die die bestimmte Position in dem Pufferspeicher 38 steuern, aus der die Daten rückgewonnen werden oder in die die Daten geschrieben werden. Rückgewonnene Daten oder zu schreibende Daten werden über einen Daten-Bus 46 übertragen oder empfangen.
  • Eine Datenwegsteuereinrichtung 43 ist über den Datenbus 46 mit dem Pufferspeicher 38 verbunden und dient zum Steuern der Datenübertragung zu und von dem Pufferspeicher 38 über den Datenbus. Die RAM-Puffer-Steuereinrichtung gemäß der Erfindung ist durch den Block 44 veranschaulicht, der über den Adress- Bus 40 mit dem Pufferspeicher 38 verbunden ist. Der Zweck der RAM-Puffer-Steuereinrichtung liegt darin, Anforderungen für den Zugriff auf den Pufferspeicher 38, die von den verschiedenen Elementen in dem System gemäß Fig. 1 ausgehen, einzuschätzen, eine Anforderung auszuwählen, die erfüllt werden soll, und auf dem Adress-Bus 40 einen Adress-Pointer an den Pufferspeicher 38 auszugeben, um den Pufferspeicher 38 dazu zu veranlassen, Daten aus der korrekten Adresse aus zugeben oder Daten in dieser zu speichern. Die RAM-Puffer-Steuereinrichtung 44 hält einen in ihren Registern gespeicherten Satz von Pointer-Adressen bei, der den Pufferspeicher 38 dazu veranlassen kann, den Betrieb zweier unabhängig voneinander arbeitender FIFO-Pufferspeicher zu simulieren. Bei der bevorzugten Ausführungsform sind diese beiden simulierten Puffer FIFO-organisiert, bei anderen Ausführungsformen jedoch - etwa bei den Ausführungsformen außerhalb des Lokalbereichsnetzwerk-Gebietes, in dem die RAM-Puffer-Steuereinrichtung für Stapel-Operationen verwendet wird, können diese beiden Puffer derart FIFO- organisiert sein, daß die Lese- und Schreib-Pointer derart gehandhabt oder anderweitig gesteuert werden, daß eine Lastin-first-out-Operation durchgeführt wird.
  • Das Host-System 36 kann über einen Daten-Bus 46 Daten an den Pufferspeicher 38 ausgeben oder Daten aus dem Pufferspeicher 38 empfangen. Dieser Daten-Bus 46 ist ferner mit einem Daten- Eingang der RAM-Puffer-Steuereinrichtung verbunden. Zudem ist der Daten-Bus 46 mit einem Daten-Port eines Schaltungspunktprozessors verbunden.
  • Der Schaltungspunktprozessor 52 ist typischerweise ein mikroprogrammiertes oder herkömmlicher auf Mikroprozessorbasis ausgelegtes System, das verwendet wird zur Beaufsichtigung des Betriebs der RAM-Puffer-Steuereinrichtung 44, der Datenwegsteuereinrichtung 43 und der Medienzugriffssteuereinrichtung 34. Der Schaltungspunktprozessor ist mit diesen drei Einheiten über einen NPI-Bus 54 verbunden. Die Hauptfunktion des Schaltungspunktprozessors besteht im Initialisieren des Inhalts verschiedener Register in der RAM-Puffer-Steuereinrichtung 44 und im Initialisieren der Datenwegsteuereinrichtung und der Medienzugriffssteuereinrichtung 43 bzw. 44. Der Schaltungspunktprozessor reagiert ferner auf verschiedene Systempegel- und Paketpegel-Interrupts. Bei einfachen Systemen kann der Schaltungspunktprozessor die Minimalzustandsmaschine sein, die für die System-Erfordernisse benötigt wird. Bei komplizierten Systemen kann der Schaltungspunktprozessor eine hinreichend hochentwickelte Maschine sein, um sämtliche mit höherem Pegel erfolgenden Protokolle in dem Sieben-Ebenen-ISO-Modell auszuführen. Der Schaltungspunktprozessor führt seine Arbeit mit der RAM-Puffer-Steuereinrichtung und den anderen Einheiten in dem System mittels des NPI-Busses 54 und verschiedener Bus- Handshake- und Instruktions-Leitungen durch. Die anderen Leitungen in Fig. 1, die noch nicht erläutert worden sind, sind solche für Steuer- und Handshake-Signale, welche zwischen den Einheiten ausgetauscht werden, um die Richtung der Datenübertragung auf den verschiedenen Bussen zu steuern, dem Empfang bestimmter Signale zu bestätigen, das Auftreten verschiedener Ereignisse zu signalisieren, und den Betrieb des Systems in anderer Weise zu steuern. Die bestimmten Steuersignale, die für die Erfindung relevant sind, werden jeweils bei Bedarf an späterer Stelle erläutert. Die Steuerleitungen 56 und 58 zwischen dem Schaltungspunktprozessor und dem Host-System implementieren einen Handshake, der benutzerabhängig ist und von Trenn-Funktionen zwischen dem Host und dem Schaltungspunktprozessor abhängt. Beispielsweise kann bei großen Systemen der Host einen leistungsstarken und komplexen Schaltungspunktprozessor 52 aufweisen, der zur Entlastung von verschiedenen netzwerkspezifischen Pflichten verwendet wird.
  • Der Schaltungspunktprozessor kann mit dem Pufferspeicher 38 kommunizieren, indem er eine Schaltungspunktprozessor-Ausführungsanforderung auf den Steuerbus 101 an die RAM-Puffer-Steuereinrichtung ausgibt und auf dem Daten-Bus 46 Daten an den Pufferspeicher 38 übermittelt oder Daten von diesem empfängt. Ein typischer Schaltungspunktprozessor besteht normalerweise aus einem Mikroprozessor mit gesonderten Peripheriechips zum Durchführen von Direktspeicherzugriffen, Interrupts etc. Der Schaltungspunktprozessor weist ferner einen Lokalspeicher auf, und er behandelt die RAM-Puffer-Steuereinrichtung und die Datenwegsteuereinrichtung als Peripherieeinrichtungen für Netzwerk-Funktionen. Der Schaltungspunktprozessor empfängt Status-Information von der RAM-Puffer-Steuereinrichtung, der Datenwegsteuereinrichtung, der Medienzugriffssteuereinrichtung und dem Pufferspeicher 38. Der Schaltungspunktprozessor besitzt somit die vollständige Kontrolle und das vollständige Wissen über den Zustand dieser Einheiten.
  • Der Schaltungspunktprozessor arbeitet in bezug auf das Netzwerk-Taktsignal entweder synchron oder asynchron. Das Netzwerk-Taktsignal wird durch den Transceiver 22 aus den eintreffenden Daten abgeleitet. Dies bedeutet, daß der Transceiver als Interface zu dem Medium wirkt, Taktinformation aus dem kodierten Datenstrom ableitet und dieses Taktsignal an die Medienzugriffssteuereinrichtung weiterleitet. Die Medienzugriffssteuereinrichtung setzt dann typischerweise den seriellen Datenstrom in 8-Bit-Paralleldaten zur Ausgabe über den Bus 32 um. Die Datenwegsteuereinrichtung 43 konvertiert dann die 8-Bit-Paralleldaten von der Medienzugriffssteuereinrichtung und dem Kodierer/Dekodierer in 32-Bit-Paralleldaten zur Übertragung auf dem Datenbus 46.
  • Fig. 2 zeigt ein detaillierteres Blockschaltbild der RAM-Puffer-Steuereinrichtung 44. Die RAM-Puffer-Steuereinrichtung (im folgenden RBC genannt) enthält eine Anforderungseinschätzungs- Logik 62 zur Einschätzung von Anforderungen von dem Schaltungspunktprozessor, der Datenwegsteuereinrichtung (im folgenden teilweise als DPC bezeichnet) und des Host-Systems für den Zugriff mittels eines Direktspeicherzugriffs-Transfers zu oder von dem Pufferspeicher 38. DPC-Anforderungen zum Zugriff auf den Speicher werden unter Verwendung von Handshake-Signalen durchgeführt, die auf dem Bus 64 gemäß Fig. 1 direkt zwischen der RBC und der DPC ausgetauscht werden. Diese durch die DPC erfolgenden Zugriffs-Anforderungen werden durch die Handshake- Logik auf der Leitung 78 an die Anforderungseinschätzungs- Logik übermittelt, die die Anforderungen einschätzt und sie auf der Leitung 79 bestätigt. Die Bestätigungs-Signale werden über den Bus 64 an die DPC zurückgeschickt, und zwar als Reaktion auf die Bestätigungs-Signale auf der Leitung 79, wie noch erläutert wird. Der Handshake mit der DPC wird durch die in Fig. 2 gezeigte DPC-Handshake-Logik 66 durchgeführt.
  • Der Schaltungspunktprozessor, das Host-System und die DPC können jede für sich einen Lese-Zugriff oder einen Schreib- Zugriff auf den Pufferspeicher 38 anfordern. Das Signal NPRDQ an die Einschätzungs-Logik 62 repräsentiert eine Schaltungspunktprozessor-Lese-Anforderung, und das Signal NPWRRQ repräsentiert eine Schaltungspunktprozessor-Schreib-Anforderung. Auf dem Statussignalbus 68 wird ein Bestätigungs-Signal für den Empfang jedes der zuvor genannten Signale übermittelt. Das Signal HSRDRQ repräsentiert eine Host-System-Lese-Anforderung, und das Signal HSWRRQ repräsentiert eine Host-System-Schreib- Anforderung. Wiederum wird bei jedem der Host-System-Ausführungs-Anforderungen ein Bestätigungs-Signal auf dem Statussignalbus 68 übermittelt. Die DPC-Handshake-Logik 66 empfängt die Signale DRDREQS und DRDREQA. Diese Signale repräsentieren eine Lese-Anforderung, die mit der DPC synchron ist, bzw. eine Lese-Anforderung, die asynchron zu der DPC ist. Die Signale DRDACKS bzw. DRDACKA repräsentieren die Bestätigungs-Signale für die oben genannten DPC-Lese-Anforderungs-Signale. Das Signal DWRREQ repräsentiert eine Datenwegsteuereinrichtungs- Schreib-Anforderung, und das Signal DWRACK repräsentiert das Bestätigungs-Signal für diese Schreib-Anforderung.
  • Es existiert eine der RBC-Steuer-Logik zugehörige Ansammlung von Schaltungen, die in Fig. 2 durch die Blöcke 70,72,66 und 96 repräsentiert ist. Die Steuer-Logik in den nachfolgenden Figuren wird kollektiv als Steuer-Logik 125 bezeichnet. Die RBC-Steuerlogik-Komponente 70 und die RBC-Steuerlogik-Komponente 72 dienen zum Steuern der verschiedenen Multiplexer in dem (in Fig. 2 nicht gezeigten) System mittels Signalen auf dem Bus 43 auf der Basis der bestimmten Betriebsart, in der die RBC zu irgendeinem bestimmten Zeitpunkt arbeitet. Die Betriebsart, in der die Maschine arbeitet, wird durch den Zustand der Steuersignale bestimmt, die von sämtlichen Quellen in das System eingegeben werden. Die RBC-Steuer-Logik 70 erzeugt ferner Steuersignale, die auf dem Bus 41 an den Pufferspeicher 38 übermittelt werden. Diese Steuersignale bestehen aus den Signalen CSO NOT, WR NOT und RD NOT. Das Signal CSO NOT ist ein Chip-Wähl-Signal, das an den Pufferspeicher 38 übermittelt wird, um diesen Chip zu wählen und dadurch zu veranlassen, daß dessen Adress- und Daten-Ports aktiv werden. Dieses Signal ist low zu jedem Zeitpunkt, zu dem eine Lese- oder Schreibspeicheroperation stattfindet. Das Signal WR NOT teilt dem Pufferspeicher mit, daß die Daten an seinem Daten eingangs-Port, der mit dem Datenbus 42 verbunden ist, unter der Adresse gespeichert werden sollen, die zu diesem Zeitpunkt an dem Adress-Bus 40 existiert. Das Signal RD NOT weist den Pufferspeicher 38 an, die Daten, die unter der zu diesem Zeitpunkt an dem Adress-Bus 40 existierenden Adresse gespeichert sind, rückzugewinnen und sie auf dem Datenbus 42 auszugeben.
  • Die an den Pufferspeicher 38 übermittelten Adressen werden in mehreren Registern gespeichert, die in Fig. 2 durch den Speicheradresspointer-Block 80 gezeigt sind. In Abhängigkeit davon, welche Zugriffs-Anforderung derzeit zur Ausführung gewählt worden ist, wird einer dieser Pointer zur Ausgabe über den Adress-Bus 40 gewählt. Diese aktuelle Adresse wird anschließend durch den Inkrementierer-Block 82 inkrementiert und wieder an den Eingang des Pointer-Registers rückübermittelt, das über den Bus 84 gewählt worden ist. Somit wird, solange dieses Pointer-Register gewählt ist, sein Inhalt fortlaufend inkrementiert, und zwar entsprechend einem Ausführungsanforderungsmuster, das durch die RBC-Steuerlogik synchron mit einem auf einer Leitung 89 übermittelten Byte-Taktsignal BCLOCK erzeugt worden ist.
  • Bei bestimmten Betriebsarten, insbesondere in der Verknüpfungslisten-Betriebsart, ist es erforderlich, in bestimmte der Register der BRC Adressdaten als Pointer für den nächsten Gegenstand auf der Liste einzugeben. Diese Adress-Information wird auf dem Daten-Bus DBI 42 übermittelt. Bei dieser Betriebsart veranlaßt die RBC-Steuer-Logik einen Multiplexer 87 dazu, den DBI-Bus 42 derart auszuwählen, daß seine Adressdaten in die korrekten Register geladen werden können. Der Multiplexer 87 repräsentiert symbolisch eine Ansammlung von Eingangs-Multiplexern, die in den nachfolgenden Figuren detaillierter definiert ist.
  • Ein Grenzkomparator 88 vergleicht den Wert des derzeit gewählten Pointers auf dem Bus 90 mit den Endadress-Pointern, die in den Speichergrenzenpointerregistern 92 gespeichert sind, und erzeugt ein Steuersignal auf einer mit der RBC-Steuer-Logik 70 verbundenen Leitung 94, um anzugeben, wann der derzeit gewählte Pointer die End-Adresse des bestimmten FIFOs, welches von Interesse ist, erreicht hat.
  • Ein Instruktionsdekodierer 96 dekodiert Instruktionen, die über einen Instruktionsbus 98 von dem Schaltungspunktprozessor empfangen werden, und erzeugt Steuersignale auf dem mit der RBC-Steuer-Logik 70 und der Inkrementiereinrichtung 82 verbundenen Bus 100, um die korrekten Vorgänge zum Ausführen einer Instruktion herbeizuführen. Die nachfolgenden Tabelle I ist eine Auflistung der Instruktionen in dem RAM-Puffer-Steuereinrichtungs-Instruktions-Set und gibt an, was jede Instruktion bewirkt. Ein NPI-Initialisierungsbus 102 von dem Schaltungspunktprozessor führt Initialadresswerte, die der Schaltungspunktprozessor für die Start- und End-Adressen der Empfangs- und Übertragungs-FIFO-Puffer in dem Pufferspeicher 38 erzeugt. Er führt ferner Initialadresswerte, die in die meisten der Pointer-Register in der RAM-Puffer-Steuereinrichtung geladen werden können. Die Bus-Interface-Logik 104 empfängt von dem Schaltungspunktprozessor ein Chip-Select-Signal CSI NOT (aktiv low, wie sämtliche Signale, bei denen NOT auf den Signalnamen folgt), welches angibt, daß die RAM-Puffer-Steuereinrichtung für eine Operation gewählt worden ist. Ein weiteres Interface-Signal DS NOT ist aktiv low, wenn Daten auf dem NPI-Bus 102 synchron mit dem Byte-Taktsignal BCLOCK auf der Leitung 86 sind. In einem solchen Fall verhält sich das Signal DS NOT weitgehend wie ein Daten-Strobe bei Sklaven-Einrichtungen, die mit einem Standard-Mikroprozessor verbunden sind. Auf dem Instruktionsbus 98 wird ein Signal INSTR4 geführt, das dazu dient, anzuzeigen, ob eine Lese- oder Schreib-Transaktion der Register in der RAM-Puffer-Steuereinrichtung angefordert worden ist. Jedes Register in der RAM-Puffer-Steuereinrichtung kann durch einen Multiplexer gelesen werden, der in Fig. 2 nicht gezeigt ist. Wenn die Signale INSTR4 und CSI NOT low sind, findet über den NPI-Bus 102 eine Schreiboperation von dem Schaltungspunktprozessor zu der RAM-Puffer-Steuereinrichtung statt, und das Signal DS NOT muß jedes Mal aktiv werden, wenn die zu schreibenden Daten gültig sind. Das Signal DS NOT muß aktiv bleiben, und die Daten auf dem NPI-Bus müssen gültig bleiben, bis die RAM-Puffer-Steuereinrichtung das Signal READY NOT in den Low-Zustand versetzt. Bei einer Leseoperation, wenn INST4 high ist und CSI NOT low ist, versetzt der Schaltungspunktprozessor das Signal DS NOT jedes Mal in den Low-Zustand, wenn er bereit zur Annahme der Lese-Daten ist. Wenn das Signal CSI NOT high ist, werden die Signale auf dem Bus 98 ignoriert, und der NPI-Bus 102 wird in der Drei-Zustands-Isolation belassen. Tabelle I Instruktions-Set INST Dezimalwert Instr.-Mnemonik Instr.-Funktion Software rücksetzen Laden synchrones RPX Laden asynchrones RPX Laden RPR Laden MAR Laden WPX Laden WPR Laden SAX Laden SAR Laden EAX Laden EAR Laden Befehl Schaltungspunktprozessor-Lese-Anforderung, keine Inkrementierung Schaltungspunktprozessor-Schreib-Anforderung, keine Inkrementierung Schaltungspunktprozessor-Lese-Anforderung, mit Inkrementierung Löschen dynamischer Status Schaltungspunktprozessor-Schreib-Anforderung, mit Inkrementierung Lesen synchrones RPX Lesen asynchrones RPX Lesen RPR Lesen MAR Lesen WPX Lesen WPR Lesen SAX Lesen SAR Lesen EAX Lesen EAR Lesen Befehl Reserviert Reserviert Lesen Status Lesen dynamischer Status
  • Eine Befehls- und Status-Interrupt-Logik 106 erzeugt das nichtmaskierbare Interrupt-Signal NMINTR NOT. Das Signal wird verwendet, um den Schaltungspunktprozessor zu unterbrechen, wenn das Status-Bit in der RBC bedingt durch einen schwerwiegenden Fehler gesetzt wird.
  • Fig. 3 zeigt ein Schaubild sowohl der physischen als auch der logischen Organisation der Empfangs- und der Übertragungs- FIFOs, die in dem Pufferspeicher 38 enthalten sind. Links ist die physische Speicherorganisation gezeigt. Zwei Pointer, SAR und EAR, definieren die Start- bzw. End-Adressen des Empfangs- FIFO. Ein weiterer, nicht überlappender Speicher-Block wird für das Übertragungs-FIFO verwendet, dessen Start-Adresse durch den Pointer SAX definiert wird und dessen End-Adresse durch den Pointer EAX definiert wird. In Fig. 3 ist rechts die funktionale Organisation dieser beiden Empfangs- und Übertragungs-FIFOs gezeigt. Für das Empfangs-FIFO ist ein Lese-Pointer, RPR, vorgesehen, der die aktuelle Position für Leseoperationen durch jede Anforderungs-Einheit definiert. Ferner ist ein Lese-Pointer, WPR, vorgesehen, der die aktuelle Adress- Position für sämtliche Schreiboperationen in dem Empfangs-FIFO definiert. Für das Übertragungs-FIFO definiert der Schreib- Pointer, WPX, die aktuelle Position für sämtliche Schreiboperationen. In ähnlicher Weise definiert der Lese-Pointer, RPX, die aktuelle Position für sämtliche Leseoperationen von dem Übertragungs-FIFO. Für das Empfangs-FIFO entsprechen die Schreiboperationen den auf dem Medium 20 eintreffenden Daten, die dann in den Pufferspeicher 38 geschrieben werden. Die Leseoperationen für das Empfangs-FIFO entsprechen den Zugriffen durch den Schaltungspunktprozessor oder das Host-System zwecks Rückgewinnung der Daten aus dem Pufferspeicher, die über das Medium 20 eingetroffen sind. Für das Übertragungs-FIFO entsprechen die Schreiboperationen dem Host-System oder eventuell dem Schaltungspunktprozessor, wobei die Daten in den Pufferspeicher 38 geschrieben werden, damit sie später auf dem Medium 20 übertragen werden. Die Leseoperationen für das Übertragungs-FIFO entsprechen dem Vorgang des Herausnehmens zu übertragender Daten auf dem Pufferspeicher 38 und des Konvertierens dieser Daten in den korrekten Code, der auf dem Medium 20 übertragen werden soll.
  • Fig. 4 zeigt ein detaillierteres Blockschaltbild einer Ausführungsform der RAM-Puffer-Steuereinrichtung gemäß der Erfindung. Zur besseren Erläuterung wird eine generelle Beschreibung des Betriebs der Schaltung gemäß Fig. 4 gegeben, ohne daß dabei bereits Einzelheiten zur Zeitsteuerung erläutert werden, so daß der Leser die generelle Betriebsweise des Systems verstehen kann. Weitere Details zum Betrieb des Systems werden später im Zusammenhang mit der Beschreibung der Zeitsteuerungsdiagramme aufgeführt, die die verschiedenen Betriebsarten veranschaulichen.
  • Zum Übertragen eines Paketes muß das Host-System das zu übertragende Paket in den in Fig. 1 gezeigten Pufferspeicher 38 schreiben. Zu diesem Zweck muß dem Pufferspeicher 38 eine Adresse oder Adressen in dem Übertragungs-FIFO zugeführt werden, an der bzw. denen die Daten gespeichert werden sollen. Um diesen Vorgang zu initiieren, muß das Host-System das Signal HSWRRQ gemäß Fig. 2 an die Anforderungseinschätzungs-Logik 62 anlegen. Während der Zeitdauer, zu der die bereits genannte Ausführungs-Anforderung des Host-Systems erfolgt, können möglicherweise auch weitere Ausführungs-Anforderungen anhängig sein. Es ist Aufgabe der Einschätzungs-Logik, die derzeit anhängige Anforderung, die die höchste Priorität aufweist, zur Ausführung auszuwählen. Die Priorität der Ausführungs-Anforderungen besteht darin, daß DPC-Anforderungen die höchste Priorität haben, rangmäßig gefolgt von Schaltungspunktprozessor- Anforderungen und Host-System-Anforderungen.
  • Wenn von der Einschätzungs-Logik 62 die Host-System-Schreib- Anforderung zur Ausführung gewählt wird, übermittelt die Einschätzungs-Logik ein Wähl-Signal an einen G-Multiplexer, der Eingänge aufweist, die mit den Ausgängen der Pointer-Speicherregister in der RAM-Puffer-Steuereinrichtung verbunden sind, und es wird angezeigt, daß der Schreib-Puffer für den Übertragungs-Puffer, WPX, zur Ausgabe gewählt werden soll. Dadurch wird veranlaßt, daß der Ausgang des WPX-Pointerspeicherregisters durch den G-Multiplexer mit dem Adress-Bus 40 verbunden werden soll. Vor diesem Zeitpunkt hat der Schaltungspunktprozessor über den Instruktionsbus 98 eine Anzahl von Instruktionen, um das Laden der Start- und End-Adressen für mindestens das Übertragungs-FIFO und der Initialadressen für mindestens das Schreib-Pointer-Speicherregister für das Übertragungs-FIFO zu veranlassen. Diese Instruktionen werden von der Instruktionsdekodier-Logik 96 dekodiert und bewirken, daß die korrekten der Multiplexer A-F und H-I ihre mit dem NPI-Bus 102 verbundenen Eingänge zu dem Zeitpunkt wählen, an dem das zu ladende Pointer-Speicherregister Daten auf dem NPI-Bus 102 erwartet. Beispielsweise lädt der Schaltungspunktprozessor die Start-Adresse für das Übertragungs-FIFO während einer einzigen Stufe des Initialisierungsvorgangs in das SAX-Pointer-Speicherregister. Folglich gibt der Schaltungspunktprozessor die Instruktion ILDSAX aus (siehe Tabelle I), die angibt, daß der Schaltungspunktprozessor ein SAX-Pointer-Speicherregister laden will. Wenn diese Instruktion dekodiert ist, wählt der A- Multiplexer seinen Eingang Nr. 2 (Im folgenden werden sämtliche Eingänge für in den Zeichnungen gezeigte Multiplexer mit ihrer Eingangs-Nummer, gezählt von links nach rechts, bezeichnet), so daß der NPI-Bus mit dem Daten-Eingang 106 für das SAX-Register verbunden wird. Anschließend kann die korrekte Start-Adresse auf den NPI-Bus geladen werden, und sie wird in das SAX-Register eingetaktet, um bei dem nächsten BCLOCK-Aufwärtsübergang gespeichert zu werden. Die anderen in Fig. 3 gezeigten Pointer werden geladen, indem eine der in Tabelle I gezeigten Instruktionen ausgegeben und dadurch veranlaßt wird, daß der bestimmte Multiplexer, der mit dem Daten-Eingang des Speicherregisters jedes Pointers verbunden ist, den NPI-Bus zur Verbindung mit dem Daten-Eingang des Pointer-Speicherregisters zu wählen. Die gewünschten Adressdaten können daraufhin unter Verwendung des NPI-Busses in das Pointer-Speicherregister geladen werden.
  • Wenn der G-Multiplexer ein Wähl-Signal empfängt, das angibt, daß die Host-Schreib-Anforderung zur Ausführung ausgewählt worden ist, wählt dieser Multiplexer den mit seinem zweiten Eingang verbundenen WPX-Register-Ausgang zur Verbindung mit dem Adressausgabebus 40. Ferner empfängt die Steuer-Logik 125 über die Leitung 76 das Wahl-Signal, das angibt, welche Anforderung derzeit durchgeführt wird. Anschließend erzeugt die Steuer-Logik Steuersignale auf dem Bus 41, um den Pufferspeicher zu steuern. Insbesondere legt die Steuer-Logik 125 (die hier manchmal gemäß dem RBC-Steuerlogik-Abschnitt 70 in Fig. 2 als Steuer-Logik 70 bezeichnet wird) die Signale CSO NOT und WR NOT, um dem Pufferspeicher mitzuteilen, daß eine Schreiboperation verlangt wird. Ferner erzeugt die Steuer-Logik 125 auf einem Bus 43 Steuersignale, die den D-Multiplexer dazu veranlassen, seinen ersten Eingang zur Verbindung mit dem Daten-Eingang 108 des WPX-Pointerspeicherregisters zu wählen. Der erste Eingang des D-Multiplexers in Fig. 4 ist mit dem Ausgang 83 der Inkrementierschaltung 82 verbunden. Der Eingang der Inkrementierschaltung ist mit dem Adress-Bus 40 verbunden, so daß die Inkrementiereinrichtung als Eingangssignal stets die derzeit gewählte Pointer-Adresse empfängt. Die Inkrementiereinrichtung, die eine ALE mit herkömmlichem Design sein kann, inkrementiert den WPX-Pointer um 1 und gibt diese inkrementierte Zahl an den ersten Eingang des D-Multiplexers aus. Bei einigen Ausführungsformen ist jede Adresse für einen gewählten Pointer für eine Periode des Byte-Taktsignals gültig und wird während der nächsten Periode inkrementiert. Bei derartigen Ausführungsformen veranlaßt die Steuer-Logik daraufhin, daß die Eingangs-Multiplexer C-F für den gewählten Pointer ihren mit dem Ausgang 83 der Inkrementiereinrichtung verbundenen ersten Eingang wählen, so daß jeder Takt-Zyklus das Laden einer inkrementierten Adresse in das derzeit gewählte Pointer-Speicherregister bewirkt. Dieser Vorgang wird für die gesamte Anzahl von Takt-Zyklen fortgeführt, während derer der gewählte Pointer gewählt ist. Bei der bevorzugten Ausführungsform ist, wie noch genauer beschrieben wird, jede Pointer- Adresse für zwei Takt-Zyklen des Byte-Taktsignals gültig. Dies erlaubt eine gepipelinete Einschätzung, wie später noch genauer beschrieben wird. Somit veranlaßt die Steuer-Logik, wenn bei der bevorzugten Ausführungsform der WPX-Pointer zur Ausgabe gewählt wird, den D-Multiplexer dazu, während der beiden Takt-Zyklen der Bus-Transfer-Periode auf dem Daten-Bus für ein Wort seinen Eingang Nr. 4 zu wählen, und die Steuer-Logik veranlaßt den D-Multiplexer dazu, am Ende des zweiten Takt-Zyklus der Ausführungs-Periode seinen Eingang Nr. 1 zu wählen, so daß der WPX-Pointer für die nächsten beiden Zyklus-Ausführungs-Perioden um 1 inkrementiert wird, falls der WPX-Pointer während der nächsten Ausführungs-Periode noch gewählt ist. Dieser Vorhang wird fortgeführt, bis sämtliche Wörter des Paketes, die durch das Host-System 36 in dem Pufferspeicher gespeichert werden sollen, so gespeichert sind.
  • Wenn das Host-System Daten in den Pufferspeicher 38 schreibt, bewirkt das Wähl-Signal von der Einschätzungs-Logik 62 an den G-Multiplexer, daß der Multiplexer den WPX-Pointer wählt und ihn auf dem Adress-Bus 40 ausgibt. Ein Komparator 88 ist mittels eines seiner Vergleichs-Eingänge über den Bus 90 mit dem Adress-Bus 40 verbunden. Der andere Eingang dieses Komparators 88 ist mit dem Ausgang des J-Multiplexers verbunden, dessen Eingangssignale die End-Adress-Pointer sowohl für die Übertragungs- als auch für die Empfangs-FIFO-Puffer sind. Diese Adressen sind zuvor durch den Schaltungspunktprozessor 52 in die EAX- und EAR-Pointer-Speicherregister geladen worden. Dieser Ladevorgang wurde, wie oben beschrieben, durchgeführt, indem der H-Multiplexer dazu veranlaßt wurde, nach dem Ausgeben einer Lade-EAX-Instruktion seinen mit dem NPI-Bus verbundenen Eingang Nr. 2 zu wählen, und indem der I-Multiplexer dazu veranlaßt wurde, nach dem Ausgeben einer EAR-Instruktion durch den Schaltungspunktprozessor seinen Eingang Nr. 1 zu wählen. Wenn das Host-System Daten in den Pufferspeicher schreibt, veranlaßt die Steuer-Logik, die in Fig. 4 kollektiv mit dem Bezugszeichen 125 bezeichnet wird, daß der J-Multiplexer seinen Eingang Nr. 1 zur Verbindung mit dem B-Eingang des Komparators 88 wählt. Somit vergleicht der Komparator 88 den gewählten Pointer-Wert, in diesem Fall WPX, mit der End- Adresse für den Übertragungs-Puffer. Der Komparator 88 gibt auf einer mit der Steuer-Logik 125 verbundenen Leitung 94 ein Signal aus, das anzeigt, ob der gewählte Pointer gleich oder nicht gleich der korrekten End-Adresse für den Puffer ist, auf den sich der gewählte Pointer bezieht, d. h. in diesem Beispiel derjenigen für den Übertragungs-Puffer. Die Steuer-Logik ermöglicht ein Fortschreiten des Inkrementierens des gewählten Pointers bis zu einem Zeitpunkt, zu dem das Signal auf der Leitung 94 angibt, daß der gewählte Pointer gleich der End- Adresse ist. An diesem Punkt veranlaßt die Steuer-Logik 125 den Eingangs-Multiplexer für den gewählten Pointer dazu, in diesem Fall den D-Multiplexer, dazu, den mit dem Ausgang des korrekten Start-Adress-Pointer-Speicherregisters verbundenen Eingang zu wählen, d. h. den Eingang Nr. 2 für den D-Multiplexer. Dies bewirkt das Speichern der Start-Adresse für den korrekten Puffer, in diesem Fall für den Übertragungs-Puffer, in das gewählte Pointer-Speicherregister, d. h. das WPX-Pointer-Speicherregister. Somit startet das Inkrementieren für weitere Instruktionen von der Start-Adresse des korrekten Puffers an. Zusammenfassend kann über den als Beispiel angeführten Vorgang, bei dem das Host-System Daten in den Pufferspeicher 38 schreibt, festgestellt werden, daß der WPX-Pointer, so lange er gewählt ist, kontinuierlich inkrementiert wird, bis er der End-Adresse für den Übertragungs-Puffer gleich ist. Zu diesem Zeitpunkt ändert sich der Zustand des Signals auf der Leitung 94, und die Steuer-Logik 125 veranlaßt, daß der D-Multiplexer seinen Eingang Nr. 2 wählt, wodurch die Start-Adresse für den Übertragungs-Puffer aus dem SAX-Pointer-Speicherregister in das WPX-Pointer-Speicherregister geladen wird. Falls der WPX-Pointer noch für weitere Transaktionen gewählt bleibt, wird die ausgehend von der Start-Adresse des Übertragungs-Puffers erfolgende Inkrementierung fortgesetzt.
  • Den Datenwegsteuereinrichtungs- und den Medienzugriffssteuereinrichtungs-Module wird mitgeteilt, daß ein Paket zur Übertragung auf den Medien 20 bereitsteht, wobei das Paket durch das Host-System oder den Schaltungspunktprozessor in den Pufferspeicher 38 geladen worden ist. Wenn der Zugriff auf die Medien 20 erreicht worden ist, gibt die Datenwegsteuereinrichtung 43 eine Ausführungs-Anforderung aus, die verlangt, daß Daten aus dem Pufferspeicher 38 ausgelesen werden. Diese Anforderung von der Datenwegsteuereinrichtung erfolgt in Form des Ausgebens des Signals DRDREQS oder DRDREQA in Fig. 2. Diese beiden Signale stehen für die synchrone Datenwegsteuereinrichtungs-Lese-Anforderung und für die asynchrone Datenwegsteuereinrichtungs-Lese-Anforderung. Das Ausgaben einer Datenwegsteuereinrichtungs-Lese-Anforderung veranlaßt die Steuer- Logik 125 zum Erzeugen des korrekten Wähl-Signals an den G- Multiplexer zwecks Wählens des RPX-Pointers. Dieser Pointer ist der Lese-Pointer für den Übertragungs-Puffer. Die Steuer- Logik 125 veranlaßt ferner den C-Multiplexer dazu, während der beiden Zyklen der Ausführungs-Anforderung den Eingang Nr. 3 zu wählen, um den RPX-Pointer konstant auf seinem derzeit existierenden Wert zu halten. Am Ende des zweiten Zyklus der Ausführungs-Anforderung veranlaßt die Steuer-Logik 125 den C- Multiplexer dazu, seinen mit dem Ausgang der Inkrementiereinrichtung verbundenen Eingang Nr. 1 zu wählen, damit der RPX- Pointer inkrementiert werden kann. So lange der RPX-Pointer gewählt ist, wird er während zweier Takt-Zyklen konstant gehalten und wird am Ende jedes Ausführungs-Zyklus inkrementiert. Dies bedeutet, daß das Adress- oder RPX-Pointer-Ausgangssignal auf dem Adress-Bus 40 den Pufferspeicher 38 dazu veranlaßt, die Daten an der bestimmten Adresse rückzugewinnen und sie auf dem Datenbus 42 auszugeben. Die Datenwegsteuereinrichtung und die Medienzugriffssteuereinrichtungsschaltung verarbeiten daraufhin diese Daten und übermitteln die Daten mit Hilfe des Kodierers/Dekodierers 28 und des Transceivers 22 auf dem Medium 20.
  • Wie im Fall der WPX-Wahl wird der RPX-Pointer mittels des Komparators 88 andauernd mit der End-Adresse für den Übertragungs-Puffer verglichen, während RPX gewählt ist. Falls RPX zu irgendeinem Zeitpunkt gleich EAX wird, ändert das Signal auf der Leitung 94 seinen Zustand und bewirkt dadurch, daß die Steuer-Logik 125 ein Wähl-Signal an den C-Multiplexer erzeugt. Dieses Wähl-Signal veranlaßt den C-Multiplexer dazu, seinen Eingang Nr. 4 zu wählen, wodurch die Start-Adresse für den Übertragungs-Puffer aus dem SAX-Pointer-Speicherregister in das RPX-Pointer-Speicherregister geladen wird.
  • Wenn Daten auf dem Medium 20 eintreffen, gibt die Datenwegsteuereinrichtung eine Schreib-Anforderung in Form der Aktivierung des Signals DWRREQ aus. Dies veranlaßt, daß die Steuer-Logik 125 ein Wähl-Signal an den G-Multiplexer erzeugt, damit dieser seinen Eingang Nr. 4 wählt, wodurch der WPR-Pointer auf dem Adress-Bus 40 ausgegeben wird. Wie zuvor veranlaßt die Steuer-Logik 125 den F-Multiplexer dazu, für die beiden Takt-Zyklen der Transaktionszeit für ein Wort der eintreffenden Daten seinen Eingang Nr. 3 zu wählen. Am Ende der Zwei- Zyklen-Ausführungsperiode veranlaßt die Steuer-Logik 125 den F-Multiplexer dazu, seinen Eingang Nr. 1 zu wählen, wodurch der WPR-Pointer beim Start der beiden Takt-Zyklen, die die nächste WPR-Adresse und Ausführungs-Periode repräsentieren, inkrementiert werden kann. Wiederum wird die WPR-Pointer- Adresse, die auf dem Adress-Bus 40 geführt wird, mittels des Komparators 88 mit einer End-Adresse für den korrekten Puffer, d. h. den Empfangs-Puffer, verglichen. In diesem Fall instruiert die Steuer-Logik den J-Multiplexer, seinen Eingang Nr. 2 zu wählen, so daß die End-Adresse für den Empfangs-Puffer an den B-Eingang des Komparators 88 angelegt wird. Wenn der WPR- Pointer gleich der EAR-End-Adresse ist, ändert ein Signal auf der Leitung 94 seinen Zustand, so daß die Steuer-Logik 125 veranlaßt wird, ein Wähl-Signal an den F-Multiplexer zu wählen, wodurch dieser dazu veranlaßt wird, seinen Eingang Nr. 4 zu wählen, und somit die Start-Adresse für den Empfangs-Puffer in das WPR-Pointer-Speicherregister geladen wird.
  • Nachdem die eintreffenden Daten in den Pufferspeicher 38 geladen worden sind, kann das Host-System 36 nach Belieben ein Lese-Anforderungs-Signal an die Einschätzungs-Logik 62 übermitteln. Dieser Vorgang erfolgt in Form des Anlegens des Signals HSRDRQ an den Bus 103 in Fig. 2. Falls dies derzeit die anhängenden Anforderung mit der höchsten Priorität ist, erzeugt die Einschätzungs-Logik 62 ein Wähl-Signal, das den G- Multiplexer dazu veranlaßt, seinen Eingang Nr. 3 zu wählen, so daß die RPR-Pointer-Adresse auf dem Adress-Bus 40 ausgegeben wird. Der Steuer-Logik 125 wird über die Steuer-Leitung 76 die Gewinner-Anforderung mitgeteilt und ist darüber informiert, daß eine Lese-Transaktion verlangt wurde. Die Steuer-Logik 125 erzeugt anschließend auf dem Bus 41 die korrekten Steuersignale an den Pufferspeicher, um den Pufferspeicher zu wählen und ihn zum Ausführen einer Lese-Transaktion zu veranlassen. Der Pufferspeicher greift dann auf die Daten zu, die unter der auf dem Bus 40 geführten Adresse gespeichert sind, und gibt die resultierenden Daten auf dem Daten-Bus 46 aus. Das Host-System kann dann die auf dem Daten-Bus 46 geführten Daten lesen und mit ihnen machen, was auch immer erforderlich ist. Die Steuer- Logik 125 erzeugt ferner die korrekten Steuersignale, um den E-Multiplexer dazu zu veranlassen, während der beiden Zyklen der Lese-Transaktion für jedes Wort seinen Eingang Nr. 3 zu wählen und am Ende jeder Ausführungs-Periode seinen Eingang Nr. 1 zu wählen, um zu ermöglichen, daß der Inhalt des RPR- Speicherregisters um eins inkrementiert wird.
  • Der Vergleich des RPR-Pointers mit der End-Adresse für den Empfangs-Puffer-EAR erfolgt in der Weise, wie sie oben für die anderen Pointer beschrieben wurde. Falls der RPR-Pointer gleich EAR wird, instruiert die Steuer-Logik 125 den E-Multiplexer, seinen Eingang Nr. 4 zu wählen, wodurch die Start- Adressen Empfangs-Puffer in den RPR-Pointer geladen werden. Wie bei den anderen Pointern wählt der E-Multiplexer seinen Eingang Nr. 3 für die beiden Zyklen der Ausführungs-Periode, und er wählt seinen Eingang Nr. 1 am Ende der Ausführungs- Periode, damit der RPR-Pointer inkrementiert werden kann.
  • Damit ist die grundlegende Beschreibung der Arbeitsweise der RAM-Puffer-Steuereinrichtung, bei der zwei FIFO-Puffer in einem einzigen physischen Speicher betrieben werden, abgeschlossen.
  • UNABHÄNGIGE INITIALISIERUNG
  • Für die Flexibilität des Designs und des Betriebs einer RAM- Puffer-Steuereinrichtung ist es wichtig, in der Lage zu sein, jeden der Pointer des Systems unabhängig von irgendwelchen anderen Pointern des Systems initialisieren zu können. Zu diesem Zweck wird bei der Erfindung eine Reihe von in Fig. 4 durch die Buchstaben C-F gekennzeichneten Eingangs-Multiplexern verwendet, von denen jeder einen Eingang aufweist, der mit dem NPI-Bus 102 verbunden ist. Der Ausgang der Inkrementiereinrichtung 82 ist mit einem weiteren Eingang jedes dieser Eingangs-Multiplexer verbunden. Da der NPI-Bus 102 und der Ausgang der Inkrementiereinrichtung auf dem Bus 83 nicht kollektiv durch einen gemeinsamen Multiplexer zu laufen brauchen, dessen Ausgang mit einem Eingang jedes der Eingangs-Multiplexer verbunden ist, ist es möglich, jedes der Pointer-Speicherregister von dem NPI-Bus zu initialisieren, während ein anderer Pointer zur Ausgabe auf dem Adress-Bus 40 gewählt wird. Dies bedeutet, daß, falls irgendein bestimmtes Pointeradress- Speicherregister gewählt wird, damit sein Inhalt durch den G- Multiplexer auf den Adress-Bus 40 ausgegeben wird, jedes der übrigen Pointer-Speicherregister, die nicht zu diesem Zweck gewählt sind, durch den NPI-Bus initialisiert werden kann, ohne die Wahl und die Inkrementierung der Pointer-Adresse in dem gewählten Pointer-Speicherregister zu behindern. Dies erfolgt durch Ausgeben der korrekten Lade-Instruktion auf dem Instruktionsbus 98, wodurch bewirkt wird, daß die Steuer-Logik 125 den korrekten Eingangs-Multiplexer dazu veranlaßt, seinen mit dem NPI-Bus verbundenen Eingang zu wählen. Falls der Schaltungspunktprozessor versucht, den derzeit gewählten Pointer zu initialisieren, existiert ein Fehler-Zustand, und es wird ein Interrupt erzeugt.
  • DIREKTZUGRIFFSSPEICHER FÜR SCHALTUNGSPUNKTPROZESSOR-AUSFÜH- RUNGS-ANFORDERUNGEN
  • In Fig. 4 ist ein mit MAR bezeichnetes Pointer-Speicherregister gezeigt, das zum Speichern einer Pointer-Adresse (auch als Adress-Pointer bezeichnet) zum Ausführen von Schaltungspunktprozessor-Lese- oder Schreib-Anforderungen verwendet wird. Das Direktzugriffs-Pointer-MAR kann in der gleichen Weise wie irgendeiner der übrigen Pointer durch den NPI-Bus initialisiert werden. Zum Initialisieren des MAR gibt der Schaltungspunktprozessor eine Lade-MAR-Instruktion aus, die dekodiert wird und bewirkt, daß die Steuer-Logik 125 ein Wähl- Signal an den K-Multiplexer ausgibt, wodurch dieser veranlaßt wird, seinen Eingang Nr. 2 zu wählen, damit der NPI-Bus mit dem Daten-Eingang des MAR-Pointer-Speicherregisters verbunden wird. Die gewünschte Adresse kann dann auf den NPI-Bus geladen werden und wird in dem MAR-Register gespeichert. Anschließend kann der Schaltungspunktprozessor eine Ausführungs-Anforderung in der Form ausgeben, daß eines der Signale NPRDQ oder NPWRRQ in Fig. 2 aktiviert wird. Falls eine dieser Leitungen aktiviert ist, veranlaßt die Anforderungseinschätzungs-Logik 62 den G-Multiplexer dazu, seinen Eingang Nr. 5 zu wählen, wodurch der MAR-Pointer auf dem Adress-Bus 40 ausgegeben wird. In Abhängigkeit davon, welches der Schaltungspunktprozessor- Signale aktiviert wird, erzeugt die Steuer-Logik 125 die korrekten Steuersignale auf dem Bus 41, um den Pufferspeicher 38 dazu zu veranlassen, entweder die Daten, die unter der auf dem Adress-Bus 40 geführten Adresse gespeichert sind, zu lesen und auf dem Daten-Bus 46 auszugeben, oder von dem Datenbus 46 gelieferte Daten einzugeben und sie unter der auf dem Adress-Bus 40 geführten Adresse zu speichern.
  • Wenn durch den G-Multiplexer das Direktzugriffs-Pointer-MAR zur Ausgabe gewählt ist, vergleicht es der Komparator 88 mit der End-Adresse für den Übertragungs-Puffer oder für den Empfangs-Puffer, aber das auf der Leitung 94 geführte Ausgangssignal des Komparators wird der von der Steuer-Logik 125 ignoriert. Der Grund dafür liegt darin, daß der Direktzugriffs- Pointer nicht durch irgendwelche Adress-Beschränkungen der durch die RAM-Puffer-Steuereinrichtung verwalteten FIFO- oder LIFO-Puffer beschränkt ist. Dies bedeutet, daß der Direktzugriffs-Pointer auf jede Adresse innerhalb des physischen Adress-Raumes des Pufferspeichers 38 gesetzt werden kann.
  • Jede Schaltungspunktprozessor-Ausführungs-Anforderung hat bei der Einschätzung die zweithöchste Priorität und wird nur dann ausgeführt, falls nicht gleichzeitig eine Datenwegsteuerungs- Anforderung vorhanden ist. In der Steuer-Logik 125 existiert ein Befehlsregister, das ein als CENNPRQ bezeichnetes Befehls- Bit enthält. Dieses Befehls-Bit kann gesetzt oder gelöscht werden, um die Schaltungspunktprozessor-Anforderungen zu aktivieren oder zu deaktivieren. Normalerweise ist das Befehls-Bit gesetzt, um den Schaltungspunktprozessor-Anforderungen zu deaktivieren, während eine DPC-Anforderung ausgeführt wird. Wenn eine Schaltungspunktprozessor -Anforderung ausgeführt wird, erzeugt die Steuer-Logik 125 ein Bestätigungs-Signal das für die Dauer der Übertragung aktiv ist. Es sind ein separates Bestätigungs-Signal für eine Schaltungspunktprozessor-Lese- Anforderung und ein weiteres Bestätigungs-Signal für eine Schaltungspunktprozessor-Schreib-Anforderung vorgesehen. Der Schaltungspunktprozessor gibt auf dem Daten-Bus 46 geführte Daten aus dem Pufferspeicher an seinem Daten-Port gemäß Fig. 1 ein, und der gleiche Daten-Port wird verwendet, um die in dem Pufferspeicher 38 einzugebenden Daten auszugeben. Da das Direktzugriffs-Pointerregister nicht dem Vorgang des Neuladens mit einer Start-Adresse unterzogen ist, wenn eine End-Adresse entweder des Übertragungs- oder des Empfangs-FIFO gelesen wird, wird das Direktzugriffs-Pointer-MAR während der gesamten Zeit, während derer es gewählt, kontinuierlich inkrementiert, bis es seinen höchsten Wert, der vollständig aus Einsen besteht, erreicht hat. An diesem Punkt wird es auf einen nur aus Nullen bestehenden Wert rückgesetzt.
  • Schaltungspunktprozessor-Ausführungs-Anforderungen werden typischerweise von dem Schaltungspunktprozessor dazu verwendet, Block-DMA-Transfers von Daten in den oder aus dem Speicher auszuführen. Die Bestätigungs-Signale für die Schaltungspunktprozessor-Ausführungs-Anforderung werden von der Steuer- Logik 125 auf einem Bus 68 gemäß Fig. 4 ausgegeben. Ein Status-Signal NPPND wird auf dem Bus 68 ausgegeben, um dem Schaltungspunktprozessor mitzuteilen, ob irgendwelche Anforderungen anhängig sind, die ausgeführt werden müssen. In ähnlicher Weise ist, wenn eine Host-System-Ausführungs-Anforderung ausgeführt wird, eines der beiden Bestätigungs-Signale auf dem Bus 68, die zur Bestätigung von Host-Ausführungs-Anforderungen vorgesehen sind, im aktiven Zustand. Es sind ein separates Bestätigungs-Signal für eine Host-Lese-Transaktion und ein weiteres Bestätigungs-Signal für eine Host-Schreib-Transaktion vorgesehen. Beide Typen von Host-Anforderungen haben gleiche Priorität und werden alternierend ausgeführt. Das gleiche gilt für Schaltungspunktprozessor-Anforderungen dahingehend, daß Schaltungspunktprozessor-Lese- und Schreib-Anforderungen nicht gleichzeitig ausgeführt werden können, sondern alternierend ausgeführt werden müssen. Es sind zwei Befehls-Bits vorgesehen, um die Host-System-Lese-Anforderungs- und die Host-System-Schreib-Anforderungs-Eingangsports unabhängig zu aktivieren oder zu deaktivieren. Diese Befehls-Bits sind in einem (nicht gezeigten) Befehls-Register enthalten, das in der Steuer-Logik 125 angeordnet ist.
  • Typischerweise wird das Direktzugriffs-Pointer-MAR von dem Schaltungspunktprozessor dazu verwendet, die Header von Paketen zu beobachten, nachdem ein Paket eingetroffen ist. Dies bedeutet, daß der Direktzugriffs-Pointer als Teil des Mechanismus verwendet werden kann, den der Schaltungspunktprozessor benutzt, um Pakete herauszufiltern, die nicht an das Host- System 36 adressiert sind oder die empfangen worden sind, an denen jedoch CRC-Fehler festgestellt worden sind.
  • Der Schaltungspunktprozessor ist in der Lage, die Inkrementiereinrichtung 82 daran zu hindern, den MAR-Pointer zu inkrementieren, so daß dieser Pointer für einen Lese-Modifizierungs-Schreib-Zyklus des Pufferspeichers 38 verwendet werden kann, wobei andernfalls dieser Typ von Daten-Übertragung nicht unterstützt würde. Zum Implementieren einer Lese-Modifizierungs-Schreib-Transaktion oder die Inkrementiereinrichtung 82 anderweitig daran zu hindern, den gewählten Pointer zu inkrementieren, gibt der Schaltungspunktprozessor über den Instruktionsbus 98 gemäß Fig. 2 eine Instruktion an den Instruktionsdekodierer 96 aus. Diese Instruktion kann eine der reservierten Instruktionen gemäß Tabelle I sein. Die Instruktion kann kodiert sein, und es kann ein Signal auf der Leitung 100/101 an die Inkrementiereinrichtung 82 ausgegeben werden, um sie an der Inkrementierung zu hindern. Falls der G-Multiplexer den MAR-Pointer gewählt hat, kann der Schaltungspunktprozessor die Initial-Adresse des MAR-Pointers verwenden und eine Lese-Anforderung ausgeben. Die Ausgangsdaten von dem Pufferspeicher können anschließend in den Schaltungspunktprozessor 52 eingegeben werden und modifiziert werden. Der Schaltungspunktprozessor kann dann eine Lese-Anforderung ausgeben und eine Nicht-Inkrementier-Instruktion an die RAM-Puffer-Steuereinrichtung ausgeben. Anschließend gibt der Schaltungspunktprozessor eine Schreib-Anforderung aus und schreibt daraufhin die modifizierten Daten in die gleiche Speicheradresse, aus der sie ausgelesen wurden. Das Nicht-Inkrementier-Signal aufder Leitung 101 in Fig. 4 wird zum Sperren des Carry-in-Eingangs in die Inkrementierungs-ALU verwendet, um die Inkrementierung zu verhindern.
  • Bei der bevorzugten Ausführungsform existieren vier - in Tabelle I aufgeführte - Instruktionen, die dem Schaltungspunktprozessor ermöglichen, Lese- oder Schreib-Anforderungen entweder mit oder ohne Inkrementierung auszugeben. Diese Instruktionen sind in Tabelle I mit den mnemonischen Bezeichnungen INPRDNI, INPWRNI, INPRDWI und INPWRWI aufgeführt. Jede dieser Instruktionen kann von dem Schaltungspunktprozessor auf dem Instruktionsbus 98 ausgegeben werden, und jede wird durch den Instruktionsdekodierer 96 dekodiert. Wenn jede Instruktion dekodiert ist, wird eine der vier Leitungen in dem Bus 105, die mit dem Ausgang des Instruktionsdekodierers verbunden ist, aktiviert. Diese Lese- und Schreib-Anforderungs-Leitungen werden in der Anforderungseinschätzungs-Logik 62 mit den Hardware-Lese- und Schreib-Anforderungs-Leitungen auf dem Bus 101 von dem Schaltungspunktprozessor einem ODER-Vorgang unterzogen. Somit kann der Schaltungspunktprozessor seine DMA-Anforderungen geltend machen, indem er entweder eines der Signale NPRDQ oder NPWRRQ auf dem Bus 101 anlegt oder eine der oben erwähnten Software-Instruktionen ausgibt. Der Schaltungspunktprozessor kann jedoch nicht gleichzeitig sowohl eine Hardware- Anforderung und eine Software-Anforderung ausgeben, da das MAR von der Steuer-Logik für jede Schaltungspunktprozessor-Anforderungs-Ausführung gewählt wird und Inkonsistenzen entstehen könnten.
  • Die vorstehend angeführten Instruktionen können in der folgenden Weise zum Implementieren eine Lese-Modifizierungs-Schreib- Sequenz verwendet werden. Der Schaltungspunktprozessor gibt die Instruktion INPRDNI zum Lesen der Speicher-Position aus, auf den das MAR verweist, wobei das MAR jedoch nicht inkrementiert wird. Anschließend werden die Daten modifiziert, und der Schaltungspunktprozessor gibt die Instruktion INPWRWI aus, um die modifizierten Daten zurück an die gleiche Speicher-Position zu schreiben, auf die das MAR dann verweist. Daraufhin wird während eines Abschnittes dieses Schreib-Zugriffs das MAR inkrementiert.
  • Die vorstehend genannten Instruktionen können in der folgenden Weise auch zum Implementieren einer Schreib-Verifizierungs- Sequenz verwendet werden. Der Schaltungspunktprozessor gibt die Instruktion INPWRNI zum Schreiben von Daten an die Position aus, auf die das MAR verweist, und das MAR wird nicht inkrementiert. Anschließend gibt der Schaltungspunktprozessor die Instruktion INPRDWI zum Lesen des Inhalts der Position aus, in die soeben geschrieben worden ist, und der MAR-Inhalt wird während dieser Lese-Transaktion inkrementiert.
  • DATEN-KETTE FÜR VERKNÜPFUNGSLISTENPAKET-ÜBERTRAGUNG
  • Bei einem Lokalbereichsnetzwerk-Design ist es nützlich, in der Lage zu sein, Pakete zu übertragen, die in dem Speicher nicht nebeneinanderliegend angeordnet sind. Dies bedeutet, daß es wünschenswert ist, die Flexibilität zu haben, imstande zu sein, Pakete zur Übertragung in beliebige Positionen im Speicher zu plazieren und sie ungeachtet ihrer physischen Positionen im Speicher in einer vorbestimmten Abfolge auszugeben. Um dies zu bewerkstelligen, sind eine Verknüpfungslisten-Organisation der in dem Speicher gespeicherten Daten-Pakete und ein Mechanismus zum Verfolgen der Pointer-Adressen erforderlich.
  • Fig. 6 zeigt eine derartige Verknüpfungslisten-Organisation für eine Verknüpfungsliste von Paketen, die mittels der RAM- Puffer-Steuereinrichtung gemäß der Erfindung übertragen werden kann. Jedes Paket weist ein als Deskriptor bezeichnetes Byte am Beginn des Paketes auf, gefolgt von einem oder mehreren Daten-Bytes. In dem Deskriptor-Byte ist Übertragungs-Status- und -Längen-Information gespeichert. Jedem Paket folgt ein Pointer-Byte, das die Start-Adresse des nächsten zu übertragenden Gegenstandes auf der Liste enthält. Das Pointer-Byte 130 ist das Pointer-Byte für das Paket Nr. 1, und das Pointer- Byte 132 ist das Pointer-Byte für das Paket Nr. 2. Der Deskriptor 134 ist der Deskriptor für das Paket Nr. 2. Falls das Paket Nr. 2 nach der Übertragung des Paketes Nr. 1 übertragen werden soll, verweist der Pointer 130 auf die Adresse des Deskriptors 134.
  • Die Schaltung des DPC enthält eine Schaltung zur Feststellung, wann ein aus dem Pufferspeicher 38 gelesenes Wort eine Pointer-Adresse ist. Wenn der Pointer 130 am Ende der Übertragung des Paketes Nr. 1 gelesen wird, wird der Inhalt des Pointers 130 als der neue Wert für den RPX-Lese-Pointer für den Übertragungs-Puffer in die RAM-Puffer-Steuereinrichtung geladen. Bei der nächsten Lese-Anforderung für den Zugriff auf den Übertragungs-Puffer wird die Adresse des Deskriptors 134 in dem RPX-Pointer-Speicherregister aufgefunden, und die Übertragung des Paketes Nr. 2 beginnt ausgehend von diesem Punkt. Falls hingegen das Paket Nr. 2 zuerst übertragen wird und das Paket Nr. 1 nach der Übertragung des Paketes Nr. 2 übertragen wird, ist der Inhalt des Pointers 132 die Adresse des Deskriptors 128 für das Paket Nr. 1. Somit wird, wenn der Deskriptor 132 gelesen wird, sein Adress-Inhalt in das RPX-Pointer-Speicherregister geladen, und wenn erneut eine Lese-Anforderung für den Übertragungs-Puffer erfolgt, beginnt die Übertragung des Paketes Nr. 1 an der Position des Deskriptors 128.
  • Fign. 5A und 5B zeigen ein Blockschaltbild der RAM-Puffer- Steuereinrichtung in deren bevorzugter Ausführungsform. Der Abschnitt der RAM-Puffer-Steuerschaltung, der die Verknüpfungslisten-Übertragung von Paketen unterstützt, ist der Daten-Bus 42 sowie seine Verbindung zu einem der Eingänge des Eingangs-Multiplexers, der die Daten-Eingänge des Lese-Pointers für den Übertragungs-Puffer steuert. Bei der bevorzugten Ausführungsform sind zwei Lesepointer-Speicherregister für den Übertragungs-Puffer vorgesehen, die mit RPXS bzw. RPXA bezeichnet sind. Der Daten-Bus 42 ist mit einem Eingang jedes Eingangs-Multiplexers verbunden, der die Daten-Eingänge für die RPXS- und RPXA-Pointer-Speicherregister steuert.
  • Wenn die Datenwegsteuereinrichtung während der Verknüpfungslisten-Übertragungs-Betriebsart Operationen zum Lesen aus dem Übertragungs-Puffer durchführt, detektiert er das Lesen von Pointer-Adressen, etwa für die Pointer 130 und 132. Wenn ein solcher Pointer mittels der Datenwegsteuereinrichtung 43 gemäß Fig. 1 gelesen wird, gibt die Datenwegsteuereinrichtung an die RAM-Puffer-Steuereinrichtung ein Interface-Signal mit der Bezeichnung LDRPXS oder LDRPXA aus, und zwar in Abhängigkeit davon, welches Pointer-Speicherregister der bestimmten Verknüpfungsliste, die gerade übertragen wird, zugeordnet ist. Wenn die Steuer-Logik die Aktivierung dieses Signals auf dem Bus 64 detektiert, weist sie den betreffenden der Eingangs- Multiplexer C oder L an, den mit dem DBI-Bus 42 verbundenen Eingang zu wählen. Da zu dieser Zeit der Inhalt des Pointers auf dem DBI-Bus 42 anliegt, wird die Pointer-Adresse beim nächsten Aufwärts-Übergang des Signals BCLOCK in das korrekte Register unter den RPXA- oder RPXS-Pointer-Speicherregistern geladen.
  • Bei der Ausführungsform gemäß Fign. 5A und 5B sind die Voll /Leer-Komparatoren 140 und 142 gezeigt. Der Komparator 140 ist über einen Vergleichseingang mit dem Ausgang des RPXS-Pointers verbunden und über den anderen Eingang mit dem Ausgang des WPX-Pointers verbunden. Der Komparator 140 dient zum Vergleichen dieser beiden Pointer und zum Erzeugen eines mit RPXEQWPX bezeichneten Übertragungspuffer-Voll/Leer-Signals, das an die Steuer-Logik 125 übermittelt wird. Das Signal RPXEQWPX wird aktiv, wenn der Lese-Pointer und der Schreib-Pointer für den Übertragungs-Puffer gleich werden. Dieser Zustand zeigt entweder an, daß der Übertragungs-Puffer voll ist, oder daß er leer ist. Die Steuer-Logik 125 stellt fest, welcher Fall zutrifft, indem die die letzte Transaktion prüft, die bei der Ausführungs-Anforderung vor dein Zyklus auftrat, während dessen das Signal RPXEQWPX aktiv wurde. Falls die letzte Transaktion, bevor die beiden Pointer gleich wurden, eine Lese-Transaktion war, ist das Übertragungs-FIFO leer. Falls die letzte Transaktion, bevor die beiden Pointer gleich wurden, eine Schreib- Transaktion war, ist das Übertragungs-FIFO voll.
  • Beim Beobachten des Voll/Leer-Status des Empfangs-FIFO arbeitet Komparator 142 in ähnlicher Weise wie der Komparator 140. Der Komparator 142 ist über einen Vergleichseingang mit dem Ausgang des RPR-Registers verbunden und über einen weiteren Vergleichseingang mit dem Ausgang des WPR-Registers verbunden. Wenn der Lese-Pointer für das Empfangs-FIFO und der Schreib- Pointer für das Empfangs-FIFO gleich werden, aktiviert der Komparator 142 das Signal RPREQWPR, das an die Steuer-Logik 125 übermittelt wird. Die Regel für die Prüfung, ob das Empfangs-FIFO voll oder leer ist, ist die gleiche wie die Regel für das Übertragungs-FIFO.
  • In der Verknüpfungslisten-Betriebsart der Übertragung von Paketen werden die Ausgangssignale aus den Komparatoren 140, 142 und 182 von der Steuer-Logik 125 ignoriert. Dies ist deshalb der Fall, weil in der Verknüpfungslisten-Übertragungs- Betriebsart die RPXS- und RPXA-Pointer um den physischen Adress-Raum des Pointers herumspringen. Deshalb sind ein Vergleich dieser Pointer-Werte mit einem Endadress-Wert sowie Voll/Leer-Vergleiche sinnlos.
  • VERWENDUNG VON SAX UND EAX ALS NEUVERKNÜPFUNGS- UND ABSPEI- CHERUNGS-POINTERSPEICHERREGISTER
  • Während der Verknüpfungslisten-Übertragungs-Betriebsart existiert keine Start-Adresse oder End-Adresse für das Übertragungs-FIFO. Somit sind die SAX- und EAX-Pointer-Speicherregister verloren. Es gibt einige Situationen, etwa eine Ring- Rückgewinnung, in denen es erforderlich ist, zu einer feststehenden Paket-Position zu springen und dieses Paket über das Medium zu übertragen, um die Rettung des Rings aus bestimmten Fehler-Zuständen zu unterstützen. Um dies effizient auszuführen, ist es notwendig, die Start-Adresse des Ring-Rückgewinnungs-Paketes als "Neuverknüpfungs"-Pointer in das RPXS-Pointer-Speicherregister zu laden. Somit bewirkt bei Ausgeben eines Ring-Rückgewinnungs-Signals oder eines anderen Neuverknüpfungs-Signals die Steuer-Logik 125, daß der C-Multiplexer gemäß Fig. 5 den Eingang Nr. 1 in Fig. 5 wählt, um den aktuellen Inhalt des SAX-Pointer-Speicherregisters in das RPXS-Pointer-Speicherregister zu laden. Bevor dies durchgeführt wird, ist es jedoch erforderlich, daß der Schaltungspunktprozessor die neue Verknüpfungs-Adresse in das SAX-Pointer-Speicherregister lädt. Dies wird auf die Weise durchgeführt, die bereits im Zusammenhang mit der Initialisierung der Pointer in der RAM-Puffer-Steuereinrichtung beschrieben wurde.
  • Nachdem die Ring-Rückgewinnung erfolgt ist, ist es zweckmäßig, die Übertragung des Paketes, die durch die Ring-Rückgewinnung unterbrochen wurde, an der Stelle wiederaufzunehmen, an der die Übertragung abgebrochen wurde. Um dies durchzuführen, muß der Inhalt des RPXS-Pointer-Speicherregisters so abgespeichert werden, wie er zu dem Zeitpunkt existiert, zu dem der Neuverknüpfungs-Pointer in das RPXS-Pointer-Speicherregister geladen wird. Das EAX-Pointer-Speicherregister kann zu diesem Zweck verwendet werden. Dazu muß jedoch ein neuer Pfad zwischen dem Ausgang des RPXS-Pointer-Speicherregisters und dem Eingang des EAX-Pointer-Speicherregisters hinzugefügt werden. Dieser Pfad ist der Bus 150 in Fig. 5. Dieser Bus 150 ist mit einem Eingang des H-Multiplexers verbunden. Zur gleichen Zeit, zu der eine Ring-Rückgewinnungs-Situation oder eine andere "Neuverknüpfungs"-Situation auftritt, gibt die Steuer-Logik ein Wähl- Signal an den H-Multiplexer aus, das diesen dazu veranlaßt, seinen mit diesem Bus 150 verbundenen Eingang Nr. 2 zu wählen, so daß beim nächsten Takt-Aufticken der Inhalt des RPXS-Pointer- Speicherregisters in das EAX-Pointer-Speicherregister geladen wird. Nachdem dieser Ladevorgang erfolgt ist, gibt die Steuer-Logik 125 ein Wähl-Signal an den H-Multiplexer aus, das ihn dazu veranlaßt, seinen mit dem Ausgang des EAX-Speicherregisters verbundenen Eingang Nr. 3 zu wählen, so daß der Inhalt des EAX-Speicherregisters konstant gehalten wird.
  • Der Schaltungspunktprozessor kann den Inhalt jedes Pointer- Speicherregisters in der RAM-Puffer-Steuereinrichtung gemäß Fign. 5A und 5B lesen, indem er eine Lese-Instruktion für das bestimmte Pointer-Speicherregister, das von Interesse ist, über den Instruktions-Bus 98 an die Steuer-Logik 125 übermittelt. Es ist ein Multiplexer vorgesehen, der über einen Eingang mit dem Daten-Ausgang jedes der Pointer-Speicherregister in der RAM-Puffer-Steuereinrichtung verbunden ist. Dieser Multiplexer ist in Fig. 5 bei 152 gezeigt.
  • Wenn die Paket-Übertragung in der Verknüpfungslisten-Betriebsart wiederaufgenommen werden soll, nachdem eine Ring- Rückgewinnungs-Situation eingetreten ist, kann der Schaltungspunktprozessor an die Steuer-Logik 125 eine Lese-EAX-Instruktion ausgeben, die dekodiert wird und den Lese-Multiplexer 152 dazu veranlaßt, seinen mit dem Ausgang des EAX-Pointer-Speicherregister verbundenen Eingang zu wählen. Anschließend können die in dem EAX-Pointer-Speicherregister enthaltenen Daten über den NPI-Bus 102 wieder in das RPXS-Pointer-Speicherregister geladen werden. Die Datenwegsteuereinrichtung kann dann erneut eine Lese-Anforderung zum Zugriff auf den Übertragungs- Puffer ausgeben, so RPXS von dem G-Multiplexer zur Ausgabe auf dem Adress-Bus 40 gewählt wird. Anschließend wird die Übertragung mit dem Paket wiederaufgenommen, das durch die Ring- Rückgewinriungs-Situation unterbrochen wurde.
  • Bei der bevorzugten Ausführungsform stellt der Schaltungspunktprozessor in einer Ring-Rückgewinnungs-Situation den Inhalt des EAX-Pointer-Speicherregisters in dem RPXS-Pointer- Speicherregister nicht wieder her. Statt dessen benutzt er den Inhalt des EAX-Pointer-Speicherregisters als Indikator dafür, wie viele Pakete vor der Unterbrechung erfolgreich übertragen wurden. Der Schaltungspunktprozessor ermittelt daraufhin, welches Paket aus der Verknüpfungslisten-Übertragung, die unterbrochen wurde, das erste sein muß, das ausgegeben wird, d. h. der Schaltungspunktprozessor findet die Adresse heraus des Deskriptors des ersten Paketes heraus, das nicht erfolgreich übertragen wurde, und lädt sie in das RPX.
  • EMPFANGEN NORMALER PAKETE UND FLUSHEN UND FALLENLASSEN EMPFAN- GENER PAKETE
  • Fig. 7 zeigt eine typische Datenstruktur für ein Paket, das auf dem Medium 20 gemäß Fig. 1 übertragen wird. Ein erstes Feld oder eine Gruppe von Feldern enthält die Steuerinformation, und diesen Feldern folgt eine Bestimmungsadresse, die das bestimmte Host-System angibt, an das der Daten-Abschnitt des Paketes adressiert ist. Die Quell-Adresse folgt der Bestimmungsadresse und liefert die Netzwerkadresse des Ausgangs- Host-Systems, das die Daten übermittelt hat. Im Anschluß an die Quell-Adresse folgen ein oder mehrere Daten-Bytes, die den Gegenstand des Paketes enthalten, gefolgt von einem oder mehreren Bytes von CRC-Daten, die Prüf-Bits zur Verbesserung der Zuverlässigkeit der Daten bilden.
  • Wenn ein Paket auf dem Netzwerk übertragen wird, beginnen sämtliche Schaltungspunktprozessoren an dem Netzwerk, die eintreffenden Daten in den Pufferspeicher zu kopieren. Typischerweise können zehn oder mehr Steuer-Bytes in dem Steuer- Feld vorhanden sein, bevor die Bestimmungsadresse eintrifft. Diese zehn oder mehr Steuer-Bytes müssen in den Pufferspeicher 38 kopiert werden, falls sich herausstellt, daß die Bestimmungsadresse die Adresse des bestimmten Host-Systems an diesem Schaltungspunkt ist. Falls jedoch, nachdem die Steuer-Bytes gespeichert worden sind, die Bestimmungsadresse eintrifft und mittels des Schaltungspunktprozessors mit der Adresse des Host-Systems an diesem Schaltungspunkt verglichen wird und diese beiden nicht zusammenpassen, dann wird es erforderlich, sämtliche Steuer-Bytes und anderen Bytes, die in diesem Paket eingetroffen sind, zu flushen, damit kein Speicher-Raum mit nutzlosen Daten vergeudet wird. Ferner geschieht es manchmal, daß ganze Pakete empfangen werden, jedoch bei Verarbeitung der CRC-Bytes, die dem Daten-Abschnitt des Paketes folgen, festgestellt wird, daß ein Fehler bei der Übertragung aufgetreten ist und die Daten in dem Paket nicht zuverlässig sind. In einem solchen Fall ist es wiederum erforderlich, sämtliche Bytes des Paketes zu flushen, um Speicher-Raum für gültige Pakete zu räumen.
  • Der in der bevorzugten Ausführungsform vorgesehene Mechanismus zur Durchführung dieses Flushens ist das Schatten-Schreibpointer-Speicherregister, das in Fig. 5A mit SWPR bezeichnet ist. Dieser Schatten-Schreibpointer weist einen M-Multiplexer auf, der die Daten-Eingänge des Pointer-Speicherregisters SWPR steuert. Dieser M-Multiplexer ist über einen seiner Eingänge mit dem Ausgang des Speicherregisters SWPR verbunden und mit seinem anderen Eingang mit dem Ausgang des Schreibpointer- Speicherregisters SWPR verbunden. Der Ausgang des Pointer- Speicherregisters SWPR ist ferner mit einem der Eingänge des F-Multiplexers verbunden, der den Eingang des Pointer-Speicherregisters SWPR steuert.
  • Das Konzept des Paket-Flushens beinhaltet das Abspeichern des Inhalts des WPR in das Pointer-Speicherregister SWPR zu Beginn des Empfangs jedes Paketes. Auf diese Weise speichert das Speicherregister SWPR den Inhalt des WPR-Pointer-Speicherregisters, wie er zu dem Zeitpunkt existierte, zu dem der Paket- Empfang begann. Anschließend, falls das Paket geflusht werden muß, wird der Inhalt des Registers SWPR in dem WPR-Pointer- Speicherregister gespeichert, wodurch es in die Position zurückgesetzt wird, die es zu Beginn des Empfangs des fehlerhaften Paketes innehatte.
  • Zum bestmöglichen Verständnis des Vorgangs zu Flushen von Paketen ist es hilfreich, zunächst den Vorgang des Empfangens eines normalen Paketes zu betrachten. Fig. 8 zeigt ein Flußdiagramm des Algorithmus zum Empfang eines normalen Paketes. Fig. 9 zeigt ein detaillierteres Blockschaltbild zur Veranschaulichung der verschiedenen Multiplexer-Wähl-Signale für die F- und M-Multiplexer, die das WPR-Pointer-Speicherregister und das SWPR-Pointer-Speicherregister steuern. Diese Wähl- Signale werden von der Steuer-Logik derart manipuliert, daß sie den Algorithmus von Fig. 8 entsprechend dem in Fig. 10 gezeigten Zeitsteuerungs-Diagramm implementieren. Fig. 10 veranschaulicht das Zeitsteuerungs-Verhältnis sämtlicher der in Fig. 9 gezeigten Wähl-Signale zum Implementieren des Algorithmus von Fig. 8 zum Empfang eines normalen Daten-Paketes. Wie aus Fign. 8, 9 und 10 gemeinsam ersichtlich ist, besteht der erste Schritt bei Empfang eines normalen Daten-Paketes darin, das WPR-Pointer-Speicherregister auf eine gültige Adresse zu initialisieren. Um dies durchzuführen, gibt die Steuer-Logik 125 das Signal LDNPWPR bei 170 in Fig. 10 aus. Dies veranlaßt den F-Multiplexer dazu, seinen B-Eingang zum Anlegen an die Daten-Eingänge des WPR-Pointer-Speicherregisters zu wählen. Der B-Eingang ist mit dem NPI-Bus verbunden, der zuvor von dem Schaltungspunktprozessor in den Adress-Zustand einer Adresse gesteuert worden ist, unter der der Schaltungspunktprozessor das erste Wort des eintreffenden Paketes gespeichert haben will. Falls in dem Speicher Pakete fortlaufend gespeichert werden sollen, kann der Initialisierungsschritt entfallen, nachdem die erste Initialisierung erfolgt ist, da das WPR-Pointer-Speicherregister kontinuierlich inkrementiert wird, bis es die End-Adresse des Empfangs-FIFO erreicht. Nach einer Zeitdauer, die für das Laden des WPR- Registers ausreichend ist, wird das Signal LDNPWPR bei 172 deaktiviert. Das WPR-Pointer-Speicherregister muß dann auf dem Initialisierungswert gehalten werden. Deshalb gibt die Steuer- Logik das Signal HLDWPR bei 174 in Fig. 10 aus. Das Signal HLDWPR bleibt aktiviert für die Anzahl von Takt-Zyklen, die vor dem Beginn des Empfangs eines eintreffenden Paketes erfolgen. Mit anderen Worten bedeutet dies, das bis zu dem Schritt 2 in Fig. 8 und 10 der Empfang eines Paketes nicht tatsächlich beginnt.
  • Der Beginn des Empfanges eines Paketes wird angezeigt, indem ein Signal BRCVPKT über den Bus 64 gemäß Fig. 2 aus der Datenwegsteuereinrichtung übermittelt wird. Bei Übermittlung des Signals BRCVPKT geschehen mehrere Dinge. Das Konzept besteht darin, daß gemäß Schritt 2 von Fig. 8 der Inhalt des WPR-Pointer-Speicherregisters in das Schatten-Schreibpointer-Speicherregister SWPR geladen wird und das WPR-Pointer-Speicherregister um eins inkrementiert wird, wodurch die erste Position nach dem Abspeichern des Inhalts des WPR übersprungen wird. Um diese Sequenz von Ereignissen zu implementieren, deaktiviert die Steuer-Logik das Wähl-Signal HLDWPR, wodurch der D-Eingang des F-Multiplexers ausgewählt wird. Solange der D-Eingang des F-Multiplexers gewählt ist, werden die WPR-Ausgangs-Daten zurück in seinen D-Eingang geleitet, so daß jedes Aufticken des Taktsignals BCLOCK das WPR mit seinen derzeit existierenden Daten neulädt und es somit auf einer konstanten Adresse hält.
  • Zum Laden des Inhalts des WPR-Pointer-Speicherregisters in das SWPR-Pointer-Speicherregister gibt die Steuer-Logik bei t1 das Signal LDWPSWPR bei 178 in Fig. 10 aus. Bei 180 deaktiviert die Steuer-Logik das Signal HLDSWPR, das normalerweise jederzeit aktiv ist, außer zu den Zeiten, wenn das SWPR-Pointer- Speicherregister mit neuen Daten geladen wird. Das Wähl-Signal LDWPSWPR veranlaßt den Multiplexer in Fig. 9 dazu, seinen Eingang A zu wählen. Dadurch wird der Ausgang des WPR-Pointer- Speicherregisters zum Anlegen an den D-Eingang des SWPR-Pointer-Speicherregisters gewählt. Beim nächsten Auftreten eines BCLOCK-Aufwärts-Übergangs wird die Übertragung durchgeführt. Um den Inhalt des WPR-Pointer-Speicherregisters um eins zu inkrementieren, gibt die Steuer-Logik zum Zeitpunkt t1 gemäß Fig. 10 das Wähl-Signal LDINCWPR aus, wie bei 182 in Fig. 10 gezeigt ist. Die Steuer-Logik gibt dann zum Zeitpunkt t1 das Signal SELWPR aus. Dies veranlaßt den G-Multiplexer dazu, den mit dem WPR-Pointer-Speicherregister-Ausgang verbundenen Eingang zur Ausgabe auf dem Adress-Bus 40 zu wählen. Dadurch wird der aktuelle Inhalt des WPR-Pointer-Speicherregisters an den Eingang der Inkrementiereinrichtung 82 gemäß Fig. 5 angelegt. Die Inkrementiereinrichtung 82 addiert dann dem Inhalt des WPR- Pointer-Speicherregisters eins hinzu und gibt den inkrementierten Wert auf dem Bus 83 aus. Die Ausgabe des Signals LDINCWPR bei t1 in Fig. 10, wie bei 182 gezeigt, bewirkt, daß dieser inkrementierte Wert, der an dem C-Eingang des F-Multiplexer gemäß Fig. 9 vorhanden ist, beim nächsten Aufwärts- Übergang des BCLOCK-Signals in das WPR-Pointer-Speicherregister geladen wird. Dies führt dazu, daß der Inhalt des WPR- Pointer-Speicherregisters um eins inkrementiert wird, nachdem der ursprüngliche Inhalt in dem Schatten-Pointer-Register gespeichert worden ist. Nachdem sämtliche dieser Vorgänge erfolgt sind, kehren zu einem Zeitpunkt t2 die verschiedenen Signale, die zu dem Zeitpunkt t1 aktiviert und deaktiviert worden sind, in den Zustand zurück, den sie unmittelbar vor dem Eintreten des Zeitpunktes t1 hatten.
  • Zwischen den Zeitpunkten t2 und t3 gemäß Fig. 10 ist eine zufällige Anzahl von BCLOCK-Perioden vergangen, bevor die ersten Daten-Bytes in dem gerade empfangenen Paket zuerst auf dem Daten-Bus 46 in Fig. 1 erscheinen.
  • Zu dem Zeitpunkt t3 trifft das erste Daten-Paket-Wort ein. Das Auftreten dieses Ereignisses wird gemäß Fig. 2 durch das Ausgeben des Signals DWRREQ aus der Datenwegsteuereinrichtung 43 signalisiert. Dies repräsentiert eine Datenwegsteuereinrichtungs-Schreib-Anforderung. Es bewirkt, daß die Steuer-Logik 125 das WPR-Pointer-Speicherregister kontinuierlich inkrementiert, nachdem jedes Wort geschrieben ist, und damit fortfährt, das Schatten-Schreibpointer-Speicherregister auf dem Wert zu halten, der in Schritt 2 gemäß Fig. 8 aus dem WPR- Pointer-Speicherregister geladen wurde. Während der Zeit zwischen t2 und t3 wurde das WPR-Pointer-Speicherregister durch Ausgeben des Signals HLDWPR in den Halte-Status versetzt, wie in Fig. 10 bei 186 gezeigt ist. Dies veranlaßte den F-Multiplexer dazu, seinen D-Eingang zur Anlage an den Daten-Eingang des WPR-Pointer-Speicherregisters zu wählen. Zu dem Zeitpunkt t3 wird dieser Haltezustand aufgehoben, und die Steuer-Logik gibt, wie bei 188 gezeigt, das Signal LDINCWPR aus, und gibt, wie bei 190 gezeigt, das Signal SELWPR aus. Zur gleichen Zeit gibt die Steuer-Logik das Signal CSO NOT aus, wie bei 192 gezeigt, um den Pufferspeicher 38 zu aktivieren, und die Steuer-Logik gibt das Signal WR NOT bei 194 aus, um dem Pufferspeicher mitzuteilen, daß eine Schreib-Transaktion verlangt wird. Das Ausgeben von SELWPR bewirkt, daß der aktuelle Inhalt des Schreibpointer-Speicherregister, WPR, auf dem Adress-Bus 40 ausgegeben wird. Das erste Wort des empfangenen Paketes, das in den Pufferspeicher auf dem Bus 40 geführten Adresse eingeschrieben werden soll, ist zuvor oder gleichzeitig durch die Datenwegsteuereinrichtung 43 auf dem Daten-Bus 46 plaziert worden. Anschließend schreibt der Pufferspeicher die auf dem Daten-Bus geführten Daten in die Adresse, auf die der aktuelle Inhalt des WPR-Pointer-Speicherregisters verweist. Das gleichzeitige Ausgeben von LDINCWPR bewirkt, daß der Inhalt des WPR- Pointer-Speicherregisters beim nächsten Aufwärts-Übergang des BCLOCK-Signals mittels der Inkrementiereinrichtung, an dessen Eingängen der WPR-Pointer anliegt, um eins inkrementiert wird, und der inkrementierte Wert an den C-Eingang des F-Multiplexers angelegt wird.
  • Zu dem Zeitpunkt t4 kehren sämtliche Signale, die zu dem Zeitpunkt t3 aktiviert oder deaktiviert worden sind, in ihre unmittelbar vor dem Zeitpunkt t3 herrschenden Zustände zurück.
  • Zwischen den Zeitpunkten t4 und t5 erfolgt irgendeine Anzahl von BCLOCK-Perioden, und die Steuer-Logik aktiviert das Signal HLDWPR um den Inhalt des WPR-Pointer-Speicherregisters konstant zu halten. Zu dem Zeitpunkt t5 gibt die Datenwegsteuereinrichtung erneut das Schreib-Anforderungs-Signal DWRREQ aus und plaziert ein weiteres Wort aus dem Paket auf dem Daten-Bus 46 gemäß Fig. 1. Die gleiche Sequenz von Ereignissen, die bei t3 eintrat, erfolgt nun erneut bei t5, und das dabei auf dem Daten-Bus 46 geführte Wort wird an derjenigen Speicher-Position in dem Pufferspeicher gespeichert, die der Speicher-Position, in der das zwischen den Zeitpunkten t3 und t4 gespeicherte Wort abgespeichert wurde, unmittelbar folgt.
  • Wenn die Datenwegsteuereinrichtung und die übrige in Fig. 1 gezeigte Schaltung das Ende des eintreffenden Paketes detektieren, gibt die Datenwegsteuereinrichtung das Signal ERCVPKT auf dem Bus 64 gemäß Fig. 2 aus. Dies ist das Signal, das das Austauschen des Pointer-Speicherregister-Inhalts bewirkt, der in Fig. 4 durch Schritt 8 aufgeführt ist. Vom Konzept her betrachtet, wird der Inhalt des Schatten-Schreibpointer-Speicherregisters in das WPR-Pointer-Speicherregister geladen, und gleichzeitig wird der Inhalt des WPR-Pointer-Speicherregisters in das Schatten-Schreibpointer-Speicherregister geladen. Die Steuer-Logik 125 implementiert diesen Austausch durch Aktivieren und Deaktivieren verschiedener Signale zu dem Zeitpunkt t7 gemäß Fig. 10. Wie bei 196 gezeigt, wird das Signal LDSWWPR aktiviert, wodurch bewirkt wird, daß der F-Multiplexer seinen E-Eingang zum Anlegen an den Daten-Eingang des SWPR-Pointer- Speicherregisters wählt. Der E-Eingang des F-Multiplexers ist mit dem Ausgang des SWPR-Pointer-Speicherregisters verbunden. Dies bewirkt somit, daß der derzeit existierende Inhalt des SWPR-Registers in das WPR-Pointer-Speicherregister geladen wird. Um dies erfolgreich durchführen zu können, deaktiviert die Steuer-Logik das Wähl-Signal HLDWPR, wie bei 198 gezeigt, um das Halten des Inhalts des WPR-Pointer-Speicherregisters zu beenden. Die Steuer-Logik aktiviert ferner das Wähl-Signal LDWPSWPR, wie bei 200 gezeigt, um den M-Multiplexer dazu zu veranlassen, seinen A-Eingang zum Anlegen an den Daten-Eingang des SWPR-Pointer-Speicherregisters zu wählen. Der A-Eingang des M-Multiplexers ist mit dem Ausgang des WPR-Pointer-Speicherregisters verbunden, und somit wird der Inhalt des WPR- Pointer-Speicherregisters beim nächsten Aufwärts-Übergang des BCLOCK-Signals in das SWPR-Register geladen. Zu diesem Zeitpunkt deaktiviert die Steuer-Logik ferner das Wähl-Signal HLDSWPR, damit der Austausch durchgeführt werden kann.
  • Zu dem Zeitpunkt t8 gemäß Fig. 10 ist der Inhalt des WPR-Pointer-Speicherregisters mit dem Inhalt des SWPR-Pointer-Speicherregisters vertauscht worden. Dies bedeutet, daß der Inhalt des WPR-Pointer-Speicherregisters nun der Adresse gleich ist, die das WPR-Register zu Beginn des Empfangs des Paketes in Schritt 2 gemäß Fig. 8 speicherte, bevor das WPR-Register in Schritt 2 inkrementiert wurde. Dies bedeutet, daß, falls ein Paket im Speicher Adress-Positionen 1-100 einnimmt, dann die Daten-Wörter in dem Paket die Positionen 2-100 einnehmen und das WPR-Pointer-Speicherregister eine Adresse enthält, die bei Abschluß des Schrittes 4 gemäß Fig. 8 auf die Speicher-Position 1 verweist. Anders ausgedrückt, ist die Position 1 die Speicher-Position, die durch die in Schritt 2 gemäß Fig. 8 erfolgte Inkrementierung übersprungen wurde.
  • Ferner ist die Position 1 die Position, an der die Status- und Längen-Information für das Paket gespeichert wird. Bei dem Design eines Lokalbereichs-Netzwerks ist es zweckmäßig, die Status- und Längen-Information für jedes Paket zu speichern. Diese Information gibt an, ob es ein gültiges Paket ist oder nicht, und sie gibt die Länge des Paketes anhand der Anzahl der von dem Paket verbrauchten Speicher-Positionen an. Es ist zweckmäßig, diese Status- und Längen-Information am Beginn des Paktes statt am Ende des Paketes zu plazieren. Dies ist deshalb der Fall, weil dies den Software-Aufwand in dem Schaltungspunktprozessor vereinfacht, da der Schaltungspunktprozessor exakt weiß, wo er die Status- und Längen-Information in jedem Paket suchen muß, ohne daß er die Länge des Paketes zu kennen braucht, die er kennen müßte, falls die Status- und Längen-Information am Ende des Paketes gespeichert wäre.
  • Schritt 5 in Fig. 8 repräsentiert den Schritt des Schreibens der Status- und Längen-Information an die erste Speicher-Position des Paketes. Bei dem soeben angeführten hypothetischen Beispiel würde dies bedeuten, daß die Status- und Längen- Information in die Speicher-Position 1 geschrieben würde. Dies erfolgt zu dem Zeitpunkt t9 gemäß Fig. 10.
  • In Fig. 10 zeigt das Intervall zwischen t9 und t10 die Steuersignale, wie sie aktiviert und deaktiviert werden, um die beiden Schritte 5 und 6 gemäß Fig. 8 zu implementieren. Schritt 5 wird implementiert, indem das Signal SELWPR bei 204 aktiviert wird, wodurch der aktuelle Inhalt des WPR auf den Adress-Bus 40 ausgegeben wird. Ferner werden die Signale CSO NOT und WR NOT ausgegeben. Diese beiden Signale aktivieren den Pufferspeicher und teilen ihm mit, daß eine Schreib-Transaktion im Begriff ist, durchgeführt zu werden. Anschließend schreibt der Pufferspeicher die auf dem Daten-Bus anstehenden Daten, bei denen es sich zum Zeitpunkt t9 um die Status- und Längen-Information handelt, in die angezeigte Position.
  • Schritt 6 gemäß Fig. 8 wird in Fig. 10 durch das Aktivieren des Signals LDSWWPR bei 206 und das Deaktivieren des Signals HLDWPR bei 208 implementiert. Die Vorgänge bei 206 und 208 in Fig. 10 veranlassen den F-Multiplexer dazu, seinen D-Eingang zu wählen, so daß der Inhalt des SWPR zurück in das WPR-Pointer-Speicherregister geladen wird. Somit wird dem WPR-Pointer- Speicherregister eine Pointer-Adresse vermittelt, die auf die Speicher-Position verweist, welche um eins größer ist als die letzte Speicher-Position, an der ein Wort aus dem soeben eingetroffenen Daten-Paket gespeichert ist. Bei dem soeben angeführten hypothetischen Beispiel verweist das WPR-Pointer-Speicherregister nun auf die Adress-Position 101.
  • Als nächstes wird in Schritt 7 gemäß Fig. 8 ein Null-Bit an eine bestimmte Bit-Position der Speicher-Position geschrieben, die unmittelbar auf das letzte Wort in dem soeben empfangenen Daten-Paket folgt, und das WPR-Pointer-Speicherregister wird auf diesem Pointer-Adress-Wert konstant gehalten. Bei dem hypothetischen Beispiel bedeutet dies, daß Schritt 7 den Schritt repräsentiert, in dem eine Null in das bestimmte Bit der Speicher-Position 101 geschrieben wird und der WPR-Pointer auf 101 gehalten wird. Dies erfolgt, damit ein Null-Bit in ein bestimmtes Bit der unmittelbar auf das Daten-Paket folgenden Speicher-Position geschrieben wird. Wenn der Schaltungspunktprozessor oder das Host-System Daten aus dem Empfangs-Puffer liest und er Positionen 101 liest, wird er feststellen, daß dieses bestimmte Bit auf Null gesetzt ist. In dieser Weise erkennt der Schaltungspunktprozessor oder das Host-System, das alles, was nachfolgt, kein gültiges Paket ist. Dies vereinfacht die Software-Aufzeichnungsführungsfunktionen des Schaltungspunktprozessors oder des Host-Systems und beseitigt die Notwendigkeit, die Anzahl der gültigen Pakete, die derzeit in dem Empfangs-Puffer gespeichert sind, und ihre Längen zu verfolgen. Gültige Pakete werden bezeichnet, indem während des Schrittes 5 gemäß Fig. 8 eine Eins in das bezeichnete Bit geschrieben wird, wenn die Status- und Längen-Information in die erste Speicher-Position des Paketes geschrieben wird. Schritt 7 ist bei t10 in Fig. 10 durch das Aktivieren des Signals HLDWPR bei 210 repräsentiert, aufgrund dessen der Inhalt des WPR konstant gehalten wird, indem der F-Multiplexer dazu gezwungen wird, seinen D-Eingang zu wählen, und indem der WPR-Ausgang durch den G-Multiplexer fortlaufend durch kontinuierliche Aktivierung des Signals SELWPR bei 212 gewählt wird. Das Schreiben des Null-Bits, wie es bei Schritt 7 gemäß Fig. 8 erforderlich ist, wird durch fortlaufende Aktivierung der Signale CSO NOT und WR NOT bei 214 und 216 zwischen den Zeitpunkten durchgeführt.
  • VORGANG ZUM FLUSHEN EMPFANGENER PAKETE
  • Fig. 11 zeigt ein Schaubild des Konzepts des Algorithmus zum Flushen von Paketen, die aus irgendeinem Grund nicht in dem Pufferspeicher gehalten zu werden brauchen. Die Schritte 1 bis 3 dieses Algorithmus sind identisch mit den Schritten 1 bis 3 des in Fig. 8 gezeigten Algorithmus zum Empfangen eines normalen Paketes. Bei Detektion der Tatsache, daß ein Paket nicht an das Host-System an dem bestimmten Schaltungspunkt adressiert ist oder daß ein CRC-Fehler aufgetreten ist, gibt die DPC ein Signal FSHRCVP aus, welches bedeutet, daß dieses Paket geflusht werden soll. Dieses Signal FSHRCVP ist eines der interaktiven Signale an die RBC-Steuer-Logik 72 gemäß Fig. 2, das über den Bus 64 von der DPC kommt. Wenn dieses Signal ausgegeben wird, wird der Inhalt des SWPR-Pointer-Speicherregisters in das WPR-Pointer-Speicherregister geladen. Dadurch wird dem WPR die Pointer-Adresse zurückgegeben, die es zum dem Zeitpunkt hatte, zu dem der Paket-Empfang startete. In dem oben angeführten hypothetischen Beispiel wird durch Schritt 4 gemäß Fig. 11 das WPR-Pointer-Speicherregister auf die Speicher-Adresse 1 zurückgebracht. Da zu dem Zeitpunkt, zu dem FSHRCVP aktiviert wird, kein Status- oder Längen-Aufzeichnungs-Schritt in dem Algorithmus durchgeführt wird, befindet sich das Status-Bit an der Speicher-Position 1 immer noch auf einem Null-Zustand von der vorhergehenden Paket-Empfang. Dies bedeutet, daß, falls das zuvor empfangene Paket normal war, das System in Schritt 7 des Algorithmus zum Empfangen normaler Pakete ein Null-Bit in die Speicher-Position geschrieben hat, die dem letzten Wort in dem vorherigen Paket folgt. In dem hypothetischen Beispiel wird in diesem Zusammenhang angenommen, daß das letzte Wort des vorherigen Paketes an der Speicher-Position 0 gespeichert ist. Dieses Null-Status-Bit zeigt dem Schaltungspunktprozessor oder dem Host-System an, daß sämtliche Daten, die sich an einer auf die Speicher-Position 1 folgenden Speicher-Position befinden, ungültige Daten sind, so daß das Paket effektiv geflusht wird.
  • VORGANG ZUM FALLENLASSEN EMPFANGENER PAKETE
  • Bei dem Algorithmus gemäß Fig. 12 handelt es sich um den Vorgang, den die RAM-Puffer-Steuereinrichtung in dem Fall implementiert, daß ein Paket fallengelassen werden soll. Die Schritte 1 bis 3 des Algorithmus für fallengelassene Pakete sind die gleichen wie die ersten drei Schritte des bereits erläuterten Algorithmus zum Empfangen normaler Pakete und werden deshalb hier nicht erneut beschrieben. Wenn ein Paket fallengelassen wird, wird das WPR-Pointer-Speicherregister auf die Speicher-Position rückgesetzt, auf die es zum Zeitpunkt des Beginns des Paket-Empfangs verwiesen hat, und die Status- und Längen-Information wird geschrieben. Diese Transaktion ist durch Schritt 4 in Fig. 12 veranschaulicht, in dem der Inhalt des SWPR-Pointer-Speicherregisters erneut in das WPR-Pointer- Speicherregister geladen wird. Da in Schritt 2 der Inhalt des WPR-Pointer-Speicherregisters in dem SWPR abgespeichert wurde, wird durch diesen Vorgang dem WPR die Pointer-Adresse zurückgegeben, die es zum Zeitpunkt des Beginns des Paket-Empfangs hatte. In dem oben angeführten hypothetischen Beispiel verweist das WPR-Pointer-Speicherregister dann auf die Adress- Position 1.
  • Schritt 5 gemäß Fig. 12 repräsentiert den Schritt des Schreibens der Status- und Längen-Information für das fallengelassene Paket. Um dies zu bewirken, gibt die Steuer-Logik das Wähl- Signal SELWRP aus, wobei der G-Multiplexer gezwungen wird, den Ausgang des WPR-Registers zu wählen. Ferner gibt die Steuer- Logik das Chip-Wähl-Signal und das Schreib-Signal an den Pufferspeicher aus, um den Pufferspeicher zu aktivieren und ihn anzuweisen, die derzeit auf dem Daten-Bus 46 existierenden Daten in den Speicher zu schreiben, auf den mittels des aktuellen Inhalts des WPR verwiesen wird, d. h. die Adress- Position 1. Der Schaltungspunktprozessor oder die DPC hat die auf dem Daten-Bus befindliche Status- und Längen-Information vor oder gleichzeitig mit den Chip-Wähl- und -Schreib-Signalen in den Pufferspeicher geladen. Schritt 5 repräsentiert ferner den Vorgang des Inkrementierens des WPR-Pointer-Speicherregisters um eins. Dies erfolgt in der gleichen Weise, wie oben im Zusammenhang mit Fig. 10 beschrieben wurde. In dem hypothetischen Beispiel verweist das WPR-Register bei Beendigung des Schrittes 5 gemäß Fig. 12 auf die Adress-Position 2. Schritt 6 von Fig. 12 ist der abschließende Schritt in dem Algorithmus für fallengelassene Pakete. Dieser Schritt beinhaltet das Schreiben eines Null-Status-Bits in das vorbestimmte Bit an der Speicher-Position, die der Status- und Längen-Information für das fallengelassene Paket folgt. In dem hypothetischen Beispiel wird dieses Status-Bit in die Speicher-Adress-Position 2 geschrieben. Die Weise, in der dies durchgeführt wird, ist identisch mit Schritt 7 in dem durch Fig. 7 veranschaulichten Algorithmus.
  • PROTOKOLL FÜR VERKNÜPFUNGS- UND NICHTVERKNÜPFUNGS-DATENÜBER- TRAGUNG
  • Fig. 13 zeigt ein Zeitsteuerungsdiagramm für die Sequenz von Ereignissen, die sowohl bei der Verknüpfungslisten-Übertragung als auch bei der Nicht-Verknüpfungslisten-Übertragung erfolgt.
  • Die Übertragung verknüpfter Listen wird in der folgenden Weise durchgeführt. Um den Pufferspeicher mit dem zu übertragenden Paket zu laden, gibt das Host-System eine Host-System-Schreib- Anforderung in Form einer Aktivierung des bei 220 gezeigten Signals HSWRRQ aus. Diese Aktivierung wird von der Anforderungseinschätzungs-Logik 62 gemäß Fig. 2 erkannt und durch die Aktivierung des Signals HSWRACK bei 222 bestätigt. Dieses Bestätigungs-Signal wird über den Status-Bus 68 gemäß Fig. 2 an das Host-System rückübermittelt. Zur Erläuterung der Arbeitsweise des Systems wird ein hypothetisches Beispiel gemäß Fig 13 verwendet. Bei diesem hypothetischen Beispiel ist der Inhalt des WPX-Pointer-Speicherregisters zu Beginn der Übertragung null, was auch für den Inhalt des RPX-Pointer-Speicherregisters gilt.
  • Wenn die Host-System-Schreib-Anforderung bei 222 bestätigt ist, erhält der G-Multiplexer von der Steuer-Logik die Instruktion, den Ausgang des WPX-Pointer-Speicherregisters zu wählen. Dies bewirkt, daß die Null, die in dem WPX-Pointer- Speicherregister gespeichert ist, an den Eingang der Inkrementiereinrichtung 82 angelegt wird. Die Inkrementiereinrichtung gibt dann eine Eins auf der Leitung 83 aus. Bei der bevorzugten Ausführungsform verbleibt das Host-System-Schreibanforderungs-Bestätigungssignal zwei Takt-Zyklen lang, d. h. zwischen den Zeitpunkten t2 und t4 gemäß Fig. 13. Bei anderen Ausführungsformen kann ein einziger Takt-Zyklus verwendet werden, oder es können mehr als zwei Takt-Zyklen verwendet werden. Der Ausgang 83 der Inkrementiereinrichtung verbleibt jedoch von dem Zeitpunkt des Übergangs 222 zu dem Übergang 224 bei t4 konstant auf eins.
  • Der Übergang 224 bewirkt, daß die Steuer-Logik 125 gemäß Fig. 4 den D-Multiplexer gemäß Fig. 4 dazu veranlaßt, seinen Eingang Nr. 1 zu wählen, so daß die an dem Ausgang der Inkrementiereinrichtung anliegende Eins in das WPX-Pointer-Speicherregister geladen wird. Während der Zeit von t2 bis t4 gemäß Fig. 13 wurde das erste Wort des zu übertragenden Paketes an der Adress-Position null in den Pufferspeicher geladen.
  • Zu dem Zeitpunkt t4 gibt das Host-System eine weitere Schreib- Anforderung aus, wie bei 226 gezeigt. Dies bewirkt ein Bestätigungs-Signal durch das Host-System durch Ausgabe des Signals HSWRACK, wie bei 228 gezeigt. Der Übergang bei 228 veranlaßt die Einschätzungs-Logik 62 dazu, ein Wähl-Signal an den G- Multiplexer auszugeben, der den Ausgang des WPX-Pointer-Speicherregisters zur Verbindung mit dem Adress-Bus 40 wählt. Dadurch wird der aktuelle Inhalt des WPX an den Eingang der Inkrementierungseinrichtung angelegt, die anschließend die derzeit in dem WPX-Register enthaltene Eins auf eine Zwei inkrementiert, und diese auf der Leitung 83 ausgibt. Während der Zeit von t5 bis t7 lädt das Host-System über den Daten-Bus 46 das zweite zu übertragende Wort in den Pufferspeicher 38, und zwar unter der Adresse Eins.
  • Zu dem Zeitpunkt t7 gibt das Host-System eine weitere Schreib- Anforderung aus, wie bei 230 gezeigt ist. Gleichzeitig gibt die Datenwegsteuereinrichtung durch Aktivierung des Signals DRDREQS auf dem Bus 64 gemäß Fig. 2 eine Lese-Anforderung aus. Diese Aktivierung ist in Fig. 13 bei 232 gezeigt. An diesem Punkt blockiert die Steuer-Logik 125 gemäß Fig. 4 die Anforderungen von dem Schaltungspunktprozessor oder Host und gibt der Datenwegsteuereinrichtung die Priorität, da die Datenwegsteuereinrichtung stets die höchste Priorität hat. Grundlegend besteht der hier ablaufende Vorgang darin, daß das Host-System versucht, den Übertragungs-Puffer mit Wörtern aus einem Paket zu füllen, das er zu übertragen wünscht. Im wesentlichen zur gleichen Zeit beginnt die Datenwegsteuereinrichtung damit, Wörter aus dem Pufferspeicher zu entleeren und sie auf dem Medium auszugeben. Das Innehaben der Priorität seitens der Datenwegsteuereinrichtung ist durch das Datenwegsteuereinrichtungs-Leseanforderungs-Bestätigungssignal DRDACKS erkennbar, das in Fig. 13 bei 234 gezeigt ist. Das Innehaben der Priorität seitens der Datenwegsteuereinrichtung verhindert das Ausgeben eines Bestätigungs-Signals an das Host-System zur Bestätigung seiner Schreib-Anforderung gemäß 230. Dies ist ersichtlich anhand der Abwesenheit des Aktivierungs-Signals HSWRACK zwischen den Zeitpunkten t8 und t9, wie bei 236 gezeigt. Das Ausgeben des Datenwegsteuereinrichtungs-Bestätigungssignals DRDACKS bei 234 veranlaßt die Steuer-Logik dazu, ein Wähl- Signal an den G-Multiplexer auszugeben, so daß dieser den Inhalt des RPX-Pointer-Speicherregisters zur Ausgabe auf dem Adress-Bus 40 wählt. Dadurch wird der aktuelle Inhalt des RPX- Pointer-Speicherregisters zum Zeitpunkt t8 auf dem Adress-Bus 40 an den Pufferspeicher 38 übermittelt. Somit wird bei dem hier verwendeten hypothetischen Beispiel dem Pufferspeicher eine Null-Pointer-Adresse für die DPC-Lese-Operation übermittelt, die zu dem Zeitpunkt t8 beginnt. Folglich gibt der Pufferspeicher den Inhalt der Null-Adress-Position zwischen den Zeitpunkten t8 und t10 aus. Fig. 14 zeigt einen hypothetischen Satz von Speicher-Adressen und ihrer Inhalte. Somit wird als Reaktion auf die DPC-Lese-Anforderung, die dem Wort entspricht, das von dem Host-System zwischen den Zeitpunkten t2 und t4 in den Speicher geschrieben wird, eine 100 auf dem Daten-Bus plaziert. Ferner wird der RPX Wert Null an den Eingang der Inkrementierungseinrichtung angelegt, die diesen dann inkrementiert und zu dem Zeitpunkt t8 eine Eins auf der Leitung 83 ausgibt.
  • Die Deaktivierung des DPC-Bestätigungs-Signals zu dem Zeitpunkt t10 bei 236 veranlaßt den C-Multiplexer gemäß Fig. 4 dazu, seinen mit dem Ausgang der Inkrementierungseinrichtung verbundenen Eingang zur Verbindung mit dem Daten-Eingang des RPX-Pointer-Speicherregisters zu wählen. Dieses lädt die an dem Ausgang der Inkrementierungseinrichtung anstehende Eins in das RPX-Pointer-Speicherregister, wodurch dieser Pointer von null auf eins inkrementiert wird.
  • Bei Beendigung der Ausführung der DPC-Lese-Anforderung zum Zeitpunkt t10 bestätigt die Einschätzungs-Logik 62 die anhängige Host-System-Schreib-Anforderung, die zu dem Zeitpunkt t7 ausgegeben wird. Wie in Fig. 13 bei 238 gezeigt, erfolgt dies durch Aktivieren des Host-System-Schreib-Bestätigungssignals HSWRACK zum Zeitpunkt t10. Die Aktivierung bei 238 veranlaßt den G-Multiplexer dazu, wiederum DEN Inhalt des WPX-Pointer- Speicherregisters zur Ausgabe über den Adress-Bus zu wählen. Die Inkrementierungseinrichtung nimmt dann den aktuellen Inhalt des WPX-Pointer-Speicherregisters an der Adresse zwei und inkrementiert ihn auf die Adresse Nr. drei. Wenn die Host- System-Schreib-Anforderung bei 240 und zum Zeitpunkt t12 abgeschlossen ist, wird das Signal HSWRACK deaktiviert, was die Steuer-Logik dazu veranlaßt, den D-Multiplexer anzuweisen, seinen Eingang Nr. 1 zu wählen, der mit dem Ausgang der Inkrementierungseinrichtung verbunden ist, wodurch die Drei an dem Ausgang der Inkrementierungseinrichtung als die neue, inkrementierte Pointer-Adresse für das WPX-Pointer-Speicherregister geladen wird.
  • Zu dem Zeitpunkt t11 gibt die Datenwegsteuereinrichtung eine weitere Lese-Anforderung aus, wie bei 242 gezeigt ist. Diese DPC-Lese-Anforderung wird zu dem Zeitpunkt t12 durch die Einschätzungs-Logik 62 bestätigt, wie durch die Aktivierung des Signals DRDACKS bei 244 gezeigt ist. Die bei 244 erfolgende Aktivierung veranlaßt den G-Multiplexer dazu, wiederum den Inhalt des RPX-Pointer-Speicherregisters zur Ausgabe auf dem Adress-Bus 40 zu wählen, so daß die Eins, die derzeit als der RPX-Pointer gespeichert ist, an den Eingang der Inkrementierungseinrichtung übermittelt wird. Die Inkrementierungseinrichtung inkrementiert die Pointer-Adresse Eins auf die Pointer-Adresse Zwei und legt diese an die Ausgangs-Leitung 83 an. Bei Beendigung der DPC-Lese-Ausführungs-Anforderung zu dem Zeitpunkt t14, wie bei 246 gezeigt, veranlaßt die Steuer-Logik den Multiplexer gemäß Fig. 4 dazu, seinen mit dem Ausgang der Inkrementierungseinrichtung verbundenen Eingang Nr. 1 zu wählen, wodurch der Pointer-Wert der Adresse zwei in das RPX- Pointer-Speicherregister geladen wird. Damit ist die Erläuterung der Nicht-Verknüpfungslisten-Übertragung von Wörtern aus dem Pufferspeicher abgeschlossen. Dieses Beispiel erstreckt sich von dem Zeitpunkt t0 bis zu dem Zeitpunkt t14 in Fig. 13.
  • BEISPIEL EINER VERKNÜPFUNGSLISTEN-ÜBERTRAGUNG
  • Zu dem Zeitpunkt t14 aktiviert die Datenwegsteuereinrichtung eine weitere Lese-Anforderung, wie bei 248 gezeigt. Dies wird durch die Steuer-Logik 125 durch Ausgeben des Signals DRDACKS zu dem Zeitpunkt t15 bestätigt, wie bei 250 gezeigt ist. Zu bereits beschrieben, veranlaßt das Ausgeben des Signals DRDACKS zu dem Zeitpunkt t15, daß der aktuelle Inhalt des RPX- Pointer-Speicherregisters, die Adresse zwei, an den Eingang der Inkrementierungseinrichtung angelegt und auf einen Adress- Wert drei inkrementiert wird. Zum optimalen Verständnis der Arbeitsweise der RAM-Puffer-Steuereinrichtung in der Verknüpfungslisten-Betriebsart wird auf Fig. 14 verwiesen, die ein hypothetisches Beispiel mehrerer Speicher-Positionen mit den Adressen 0-5 und den Inhalt dieser Speicher-Positionen zeigt. Fig. 13 zeigt auf der Linie mit der Angabe "Speicher-Inhalt auf DBI" die Daten auf dem Daten-Bus während der Lese-Zyklen. Der erste Lese-Transfer aus dem Pufferspeicher 38 erfolgt zwischen den Zeitpunkten t8 und t10. Zu dieser Zeit ist die RPX-Pointer-Adresse null, und der Inhalt der Null-Adresse, ein 100-Wert, wird auf dem DBI-Bus plaziert. Der nächste Lese- Zyklus erfolgt zwischen den Zeitpunkten t12 und t14. Zu dieser Zeit beträgt der Wert des RPX-Pointers eins, und der Inhalt der Adresse eins wird auf dem DBI-Bus plaziert. Somit findet sich zwischen den Zeitpunkten t12 und t14 ein 200-Wert auf dem DBI-Bus. Der nächste Lese-Zyklus erfolgt zwischen den Zeitpunkten t15 und t17. Zu dieser Zeit befindet sich der RPX- Pointer an der Adress-Position zwei, so daß die Daten auf dem DBI-Bus einen Wert 300 repräsentieren. Die Deaktivierung des Signals DRDACKS zu dem Zeitpunkt t17 veranlaßt den C-Multiplexer gemäß Fig. 4 dazu, seinen Eingang Nr. 1 zu wählen, so daß das Ausgangssignal der Inkrementierungseinrichtung, ein Wert drei, in das RPX-Pointer-Speicherregister geladen wird, wie in Fig. 13 bei 252 gezeigt ist. Zu dem Zeitpunkt t17 gibt die Datenwegsteuereinrichtung wieder eine Lese-Anforderung aus, wie bei 254 gezeigt ist. Diese Lese-Anforderung wird bei 256 und zum Zeitpunkt t18 bestätigt. Wie zuvor beschrieben, bewirkt dies, daß der RPX-Pointer von dem G-Multiplexer zur Ausgabe auf dem Adress-Bus 40 gewählt wird, wodurch die Adresse drei an den Pufferspeicher ausgegeben wird. Dieser Adress- Wert drei wird durch die Inkrementierungseinrichtung 82 inkrementiert und an mittels der Leitung 83 den ersten Eingang des C-Multiplexers angelegt.
  • Es sei nun angenommen, daß der Inhalt der Adress-Position Nr. drei aus einem Pointer zu der Start-Adresse eines Paketes Nr. 2 besteht. Ferner wird angenommen, daß die Adress-Positionen null bis zwei Daten-Wörter aus einem Paket Nr. 1 enthalten. Die Adress-Position drei enthält einen unverwechselbaren Begrenzer, der der Datenwegsteuereinrichtung mitteilt, daß ihr Inhalt aus einer Pointer-Adresse besteht. Wenn die Datenwegsteuereinrichtung diesen (in Fig. 14 nicht gezeigten) Begrenzer detektiert, gibt die Datenwegsteuereinrichtung, wie bei 258 gezeigt, zu dem Zeitpunkt t18 ein Signal LDRPXS aus. Dies bewirkt, daß der aktuelle Inhalt des DBI-Busses in das RPX- Register geladen wird. Gemäß Fig. 2 existieren zwei Signale dieser Art, LDRPXS und LDRPXA. Diese beiden Signale werden zum Steuern des Ladens der RPXS- bzw. des RPXA-Pointer-Speicherregisters gemäß Fig. 5 verwendet. Somit bewirkt die Steuer-Logik 125 bei Deaktivierung des Signals DRDACKS bei 260 und bei Deaktivierung des Signals LDRPXS bei 262, daß der C-Multiplexer derart geschaltet wird, daß der auf dem DBI-Bus geführte Wert, eine 1000, in das RPX-Pointer-Speicherregister geladen wird.
  • Zu dem Zeitpunkt t20 aktiviert die DPC eine weitere Lese -Anforderung, wie bei 262 gezeigt ist. Diese Lese-Anforderung wird durch das Ausgeben des Signals DRDACKS zu dem Zeitpunkt t21 bestätigt, das bei t21 gezeigt ist. Die Bestätigung der DPC-Lese-Anforderung veranlaßt die Steuer-Logik dazu, ein Wähl-Signal an den G-Multiplexer auszugeben, was diesen veranlaßt, den RPX-Inhalt zur Ausgabe auf dem Adress-Bus 40 zu wählen. Somit wird der aktuelle Inhalt des RPX-Pointer-Speicherregisters, d. h. eine Adresse 1000, über den Adress-Bus 40 ausgegeben, und anschließend wird der Inhalt der Speicher- Position 1000 auf den DBI-Bus ausgegeben. In Fig. 13 ist dies ersichtlich an der Existenz einer 20, des Inhaltes der Speicher-Position 1000, auf dem DBI-Bus zwischen den Zeitpunkten t20 und t22.
  • Der Inhalt der Speicher-Position 1000 ist nicht ein Pointer, sondern das erste Wort des Paketes Nr. 2. Somit aktiviert die Datenwegsteuereinrichtung das Signal LDRPXS nicht. Die Bestätigung der DPC-Lese-Anforderung zu dem Zeitpunkt t21 bewirkt ferner, daß der aktuelle Inhalt des RPX an den Eingang der Inkrementierungseinrichtung angelegt wird, wodurch die Inkrementierungseinrichtung veranlaßt wird, den 1000-Adress-Pointer auf einen Adress-Pointer mit einem Wert von 1001 zu inkrementieren. Bei Beendigung der Ausführung der DPC-Lese-Anforderung zum Zeitpunkt t23 wird das Signal DRDACKS deaktiviert, wie bei 266 gezeigt. Dies veranlaßt den C-Multiplexer dazu, seinen Eingang Nr. 1 zu wählen, so daß das Ausgangssignal der Inkrementierungseinrichtung, der Wert 1001, in das RPX-Pointer- Speicherregister geladen wird. Der Verarbeitungsvorgang oder die Lese-Anforderungen werden dann in der oben beschriebenen Weise fortgesetzt. Damit ist die Beschreibung des Protokolls der Verknüpfungslisten-Übertragung beendet.
  • Ein weiteres nützliches Merkmal der Erfindung besteht in der gepipelineten Einschätzung. Fig. 15 zeigt ein Konzept-Schaubild des gemäß der Erfindung vorgesehenen Schemas der gepipelineten Einschätzung. Die grundlegende Idee liegt darin, daß der Einschätzungs-Zyklus mit dem zweiten Ausführungs-Zyklus eines jeden Zwei-Zyklen-Transfers, der dem Ausführungs-Zyklus unmittelbar vorausging, überlappt wird. Dies soll anhand eines Beispiels erläutert werden. Es sei angenommen, daß zu einem Zeitpunkt t1 eine Lese-Anforderung von dem Host-System und von dem Schaltungspunktprozessor gleichzeitig eintrifft. Die Einschätzungs-Logik entscheidet über die Priorität und wählt die Schaltungspunktprozessor-Lese-Anforderung zur Ausführung, die zu dem Zeitpunkt t2 beginnt und sich über zwei Zyklen bis zum Zeitpunkt t4 erstreckt. Der RPR-Pointer wird gewählt, und seine Adresse bleibt für die beiden Zyklen von t2 bis t4 konstant. Währenddessen bleibt die Host-System-Lese-Anforderung anhängig, und eine Host-System-Schreib-Anforderung wird zum Zeitpunkt t2 aktiviert. Zu einem Zeitpunkt t3 wird die Einschätzungs-Logik durch die Steuer-Logik 125 dazu instruiert, eine Einschätzung zwischen der Host-System-Lese-Anforderung und der Host-System-Schreib-Anforderung durchzuführen. Diese Einschätzung erfolgt zwischen den Zeitpunkten t3 und t4. Die Gewinner-Anforderung ist ermittelt und bereit zu dem Zeitpunkt t4, bei dem es sich um den gleichen Zeitpunkt handelt, zu dem die Ausführung der zwischen den Zeitpunkten t1 und t2 ermittelten Gewinner-Anforderung endet. Somit beginnt die Ausführung der Gewinner-Anforderung aus der Runde 2 unmittelbar bei Abschluß der Ausführung der Gewinner-Anforderung der Runde 1.
  • MEHRWEG- DATENWEGSTEUERUNGSSYSTEME
  • Es existieren einige Anwendungsfälle, bei denen es zweckmäßig ist, zwei Systemen, die auf ein RAM zugreifen müssen und die gleichzeitig miteinander laufen können oder nicht, zu gestatten, sich eine einzige RAM-Puffer-Steuereinrichtung zu teilen. Wenn ein einziger Taktgeber sämtliche Systeme treibt und mit der RAM-Puffer-Steuereinrichtung verbunden ist, existiert kein Problem. Fig. 1 zeigt ein derartiges System, bei dem ein einzelnes Taktsignal aus dem über das Medium 20 eintreffenden Daten-Strom abgeleitet wird und das Takt-Signal sämtlichen Einheiten in dem System zugeführt wird, so daß sie sämtlich synchron laufen.
  • Es gibt jedoch einige Anwendungsfälle, bei denen die beiden Systeme, die einen DMA-Zugriff auf den Pufferspeicher benötigen, dessen Adress-Port durch eine einzige RAM-Puffer-Steuereinrichtung gesteuert ist, jeweils ihr eigenes Taktsignal aufweisen. Ein derartiger Anwendungsfall ist in Fig. 16 gezeigt. In Fig. 16 kann das System 1 jedes beliebige System sein, das einen DMA-Bedarf und sein eigenes Taktsignal, CLOCK1, aufweist, beispielsweise ein Host-System, ein Schaltungspunktprozessor, eine Computer-Peripherieeinrichtung etc., und das System 2 kann jedes beliebige weitere System sein, das einen DMA-Bedarf und sein eigenes Taktsignal, CLOCK2, aufweist. Die RAM-Puffer-Steuereinrichtung ist nur mit CLOCK1 verbunden, und sie steuert die Adress-Ports und übermittelt Adress-Signale und Steuersignale, einschließlich CLOCK1, an einen Pufferspeicher. Das System 1 ist über den Daten-Bus DATA1 mit den Daten-Ports des Pufferspeichers verbunden. Das System 2 ist über seinen eigenen Daten-Bus DATA2, einen Neutakt-Zwischenspeicher und den Daten-Bus DATA1 mit den Daten- Ports des Pufferspeichers verbunden. CLOCK2 wird an den Takt- Eingang des Neutakt-Zwischenspeichers angelegt, so daß, wenn das System 2 Daten in den Pufferspeicher laden oder aus diesem empfangen möchte, die Daten synchron mit dem Taktsignal des Systems 2 in den Neutakt-Zwischenspeicher geladen werden, obwohl der Pufferspeicher synchron mit dem Taktsignal des Systems 1 arbeitet. Der Zweck des Neutakt-Zwischenspeichers besteht darin, den Zeitsteuerungsunterschied zwischen den DMA- Operationen der Systeme 1 und 2 zu beseitigen.

Claims (48)

1. Vorrichtung (RBC) zum Erzeugen von Pointer-Adressen zum Leiten von Datenoperationen innerhalb eines Speichers (38), mit:
einer ersten Einrichtung (80,88,92) zum Speichern mehrerer Pointer-Adressen in Pointeradress-Speicherregistern (RPX, WPX,RPR,WPR,MAR,SAX,SAR,EAX,EAR) zum Verwalten mehrerer unabhängiger Bereiche in dem Speicher (38) als mindestens zwei unabhängig verwaltete FIFO/LIFO-Puffer, die jeweils programmierbare Start- und End-Adressen aufweisen,
einer mit der ersten Einrichtung verbundenen zweiten Einrichtung (G) zum Wählen des Ausgangs eines der Pointeradress-Speicherregister (RPX,WPX,RPR,WPR oder MAR) zur Ausgabe an den Speicher (38),
einer mit der zweiten Einrichtung und der ersten Einrichtung (80,88,92) verbundenen dritten Einrichtung (82) zum Inkrementieren oder Dekrementieren der am Ausgang des gewählten Pointeradress-Speicherregisters (RPX,WPX,RPR, WPR oder MAR) anliegenden gewählten Pointer-Adresse, gekennzeichnet durch
eine vierte Einrichtung mit Multiplexern (C,D,E,F,K) zum Wählen eines Ausgabewertes von einem Initialisierungsbus (102), der dritten Einrichtung (82) oder der Pointeradress-Speicherregister (RPX,WPX,RPR,WPR oder MAR) als zur Eingabe in ein gewähltes Pointeradress-Speicherregister (RPX,WPX,RPR,WPR oder MAR) in der ersten Einrichtung (80, 88,92) vorgesehen.
2. Vorrichtung nach Anspruch 1, bei der die erste Einrichtung (80,88,92),
die FIFO/LIFO-Puffer mittels programmierbarer Start-Adressen, die in für programmierbare Start-Adressen vorgesehenen Pointerregistern (SAX und SAR) gespeichert sind, und mittels End-Adressen verwaltet, die in für programmierbare End-Adressen vorgesehenen Pointerregistern (EAX und EAR) der ersten Einrichtung gespeichert sind, und
einen Schreib-Pointer (WPR) und einen Lese-Pointer (RPR) für in dem Speicher (38) zu speichernde Empfangs-Pakete, und einen Lese-Pointer (RPX) und einen Schreib-Pointer (WPX) für aus dem Speicher (38) zwecks Übertragung rückzugewinnender Übertragungs-Pakete speichert,
und bei der ein Initialisierungsbus (102) mit der ersten Einrichtung (80,88,92) verbunden ist, um zu ermöglichen, jeden der Pointer auf einen bestimmten Wert zu setzen.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die erste Einrichtung Multiplexer (A,B), die mit dem Initialisierungsbus (102) verbunden sind, und für programmierbare Start-Adressen vorgesehene Pointerregister (SAX und SAR) der ersten Einrichtung (80,88,92) aufweist, wobei die Multiplexer (A,B) und die für programmierbare Start- Adressen vorgesehenen Pointerregister (SAX und SAR) dazu dienen, Startadress-Pointer für die Empfangs- und Übertragungs-FIFO-Speicher-Organisation in dem Speicher (38) zu empfangen und zu speichern, sowie dazu, das Speichern der Start-Adressen zu vorbestimmten Zeiten in gewählten Pointeradress-Speicherregistern (WPX,WPR) der ersten Einrichtung (80,88,92) zu veranlassen, wobei ein gewählter der Multiplexer der vierten Einrichtung einen mit einem Datenbus (DBI) verbundenen Eingang zum Empfangen von Pointer-Adressen zur Definition der in dem Speicher (38) angeordneten Positionen von Daten-Einträgen aufweist, die eine Verknüpfungsliste enthalten, welche als Lese-Pointer für die Übertragungs-Pakete gespeichert werden soll, um die Verknüpfungslisten-Übertragung zu implementieren.
4. Vorrichtung nach Anspruch 3, gekennzeichnet durch eine fünfte Einrichtung (88), die mit den für programmierbare End-Adressen vorgesehenen Pointerregistern (EAX und EAR) der ersten Einrichtung (92b) und mit der zweiten Einrichtung (G) verbunden ist, um die gewählte Pointer-Adresse mit einer gewählten End-Adresse der in den für programmierbare End-Adressen vorgesehenen Pointerregistern (EAX und EAR) gespeicherten End-Adressen zu vergleichen, und um ein End-Signal (94) zu erzeugen, das angibt, ob die gewählte Pointer-Adresse der gewählten End-Adresse der End- Adressen gleich oder nicht gleich ist.
5. Vorrichtung nach Anspruch 4, gekennzeichnet durch einen Multiplexer (87A), dessen Ausgang mit einem Dateneingang des in der ersten Einrichtung (80,88,92) vorgesehenen Pointeradress-Speicherregisters für den Lese-Pointer (RPX) für Übertragungs-Pakete verbunden ist, und der einen Eingang, der mit einem Ausgang des für programmierbare Start- Adressen vorgesehenen Pointerregisters (SAX) der ersten Einrichtung verbunden ist, und einen Eingang aufweist, der mit dem Initialisierungsbus (102) verbunden ist, und der einen Steuereingang aufweist, und ferner mit einer Steuereinrichtung (125), die einen Wähl-Steuerausgang aufweist, der ein Schaltwähl-Steuersignal führt, um das Schalten durch den Multiplexer (87A) zu steuern, der mit dem Steuereingang verbunden ist und einem Eingang aufweist, der zum Empfangen des End-Signals von der fünften Einrichtung
(88) geschaltet ist, und um den Multiplexer (87A) zu veranlassen, den Ausgang des gewählten einen Pointerregisters (SAX) der für programmierbare Start-Adressen vorgesehenen Pointerregister zu wählen, um ihn mit dem Dateneingang des in der ersten Einrichtung vorgesehenen Pointeradress-Speicherregisters für den Lese-Pointer (RPX) für Übertragungs- Pakete zu verbinden, um darin einen neuen Startadress- Pointer zu speichern.
6. Vorrichtung nach einem der Ansprüche 1 bis 5, gekennzeichnet durch eine mit der ersten Einrichtung (80,88,92) verbundene Voll/Leer-Vergleichseinrichtung (140,142) zum Vergleichen der Lese- und Schreib-Pointer für den Puffer für Empfangs-Pakete und zum Erzeugen eines ersten Signals, das angibt, ob die Pointer gleich sind, und zum Vergleichen der Lese- und Schreib-Pointer des Puffers für Übertragungs-Pakete und Erzeugen eines zweiten Signals, das angibt, ob die Pointer gleich sind.
7. Vorrichtung nach Anspruch 6, gekennzeichnet durch eine mit der Voll/Leer-Vergleichseinrichtung (140,142) verbundenen Einrichtung (125) zum Empfangen der ersten und der zweiten Signale und zum Vergleichen dieser Signale mit dem Typ von Speicherzugriff, der in dem Speicherzugriffszyklus unmittelbar vor dem Zyklus auftrat, der bewirkte, daß die verglichenen Pointer gleich wurden, und mit dem Typ von Speicherzugriff, der innerhalb des Speicherzugriffszyklus auftrat, der bewirkte, daß die Pointer gleich wurden, und um im Fall des ersten Signals, das den Status des Empfangs-FIFO angibt, zu bestimmen, ob das FIFO voll oder leer ist, und um im Fall des zweiten Signals, das den Status des Übertragungs-FIFO angibt, zu bestimmen, ob das FIFO voll oder leer ist.
8. Vorrichtung nach Anspruch 1, gekennzeichnet durch eine mit der ersten Einrichtung (80,88,92) verbundene Einrichtung zum Initialisieren separater Schreib- und Lese-Pointer für einen ersten Stapel, zum Initialisieren separater Schreib- und Lese-Pointer für einen zweiten Stapel, und zum Steuern der dritten Einrichtung (82), damit diese das Inkrementieren und Dekrementieren der Schreib- und Lese-Pointer derart handhabt, daß in dem Speicher eine Last-in-first-out- Speicherzugriffsoperation durchgeführt werden kann.
9. Vorrichtung nach Anspruch 4, bei der die erste Einrichtung eine Einrichtung (102,H,I,EAX,EAR) aufweist, um zuzulassen, daß die End-Pointer-Adressen initialisiert oder in jede gewünschte Adresse innerhalb des Adressenraumes des Speichers (38) geändert werden können.
10. Vorrichtung nach Anspruch 1, ferner mit einer Verknüpfungslisteneinrichtung (42,87A,87B,57B,C,L,RPXS,RPXA), um zu ermöglichen, daß der Lese-Pointer für Übertragungs- Pakete (RPXS,RPXA) in eine neue gewünschte Adresse innerhalb des Adressenraumes des Speichers (38) geändert wird, während jedes Speicherzugriffszyklus, um die Übertragung von Verknüpfungslisten von Paketen zu ermöglichen.
11. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, daß der Initialisierungsbus (102) die Initialadresse für den für Übertragungs-Pakete vorgesehenen Lese-Pointer führt und einen DBI-Bus (42) führt, um Verknüpfungsadressen zur Speicherung in dem Register (RPXS) zu führen, in dem die Lese-Pointer-Adresse für Übertragungs-Pakete gespeichert ist, und bei der die Verknüpfungslisteneinrichtung einen Eingangs-Multiplexer (87A) aufweist, dessen Ausgang mit dem Dateneingang des Registers (RPXS) zum Speichern der Lese-Adresse für Übertragungs-Pakete verbunden ist, und der einen mit dem Initialisierungsbus (102) verbundenen Eingang, einen mit dem DBI-Bus (42) verbundenen Eingang, einen mit der dritten Einrichtung (82) verbundenen Eingang und einen Steuereingang aufweist, und gekennzeichnet durch eine mit dem Steuereingang verbundene Steuereinrichtung (125), um den Multiplexer zu veranlassen, während der Übertragung eines Paketes, das in dem Speicher (38) als Verknüpfungsliste organisiert ist, den mit dem DBI-Bus
(42) verbundenen Eingang zu wählen, so daß Verknüpfungsadressen von dem DBI-Bus (42) in das Register geladen werden, in dem der Lese-Pointer für Übertragungs-Pakete gespeichert ist.
12. Vorrichtung nach Anspruch 10, bei der die erste Einrichtung (80,88,92) mindestens zwei Pointeradress-Speicherregister (RPXS,RPXA) aufweist, um separate und einzelne Lese-Adress-Pointer für Übertragungs-Pakete zu speichern, die in mindestens zwei Verknüpfungslisten organisiert sind, und bei der die Verknüpfungslisteneinrichtung eine Einrichtung (87A,87B) aufweist, um das Speichern separater Verknüpfungsadressen für die mindestens zwei Verknüpfungslisten in jedem der mindestens zwei Pointeradress-Speicherregister (RPXS,RPXA) zu ermöglichen, wobei jede Register- und Verknüpfungsadresse einer der mindestens zwei Verknüpfungslisten entspricht.
13. Vorrichtung nach Anspruch 11, bei der die erste Einrichtung (80,88,92) mindestens zwei Pointeradress-Speicherregister (RPXS,RPXA) aufweist, um separate und einzelne Lese-Adress-Pointer für Übertragungs-Pakete zu speichern, die in mindestens zwei Verknüpfungslisten organisiert sind, und bei der die Verknüpfungslisteneinrichtung eine Einrichtung (87A,87B) aufweist, um das Speichern separater Verknüpfungsadressen für die mindestens zwei Verknüpfungslisten in jedem der mindestens zwei Pointeradress-Speicherregister (RPXS,RPXA) zu ermöglichen, wobei jede Register- und Verknüpfungsadresse einer der mindestens zwei Verknüpfungslisten entspricht.
14. Vorrichtung nach Anspruch 1, bei der die erste Einrichtung (80,88,92) mehrere Register (RPX,WPX,MAR,RPR,WPR) zum Speichern der Pointer aufweist und bei der die Multiplexer (C,D,E,F,K) der vierten Einrichtung jeweils einen Ausgang, der mit einem Daten-Eingang eines der Register verbunden ist, und jeweils mehrere Eingänge aufweist, und dadurch gekennzeichnet, daß der Initialisierungsbus (102) mit gewählten der Eingänge verbunden ist, und bei der die dritte Einrichtung (82) mit anderen gewählten Eingängen der Eingänge verbunden ist.
15. Vorrichtung nach Anspruch 14, bei der eines der Register ein Direktzugriffsspeicher-Adressregister (MAR) ist.
16. Vorrichtung nach Anspruch 5, gekennzeichnet durch ein mit dem Initialisierungsbus (102) verbundenes Direktzugriffsspeicher-Adressregister (MAR), wobei die Steuereinrichtung (125) das End-Signal ignoriert, wenn die zweite Einrichtung das Ausgangssignal des Direktzugriffsspeicher-Adressregisters (MAR) zur Ausgabe an den Speicher (38) wählt.
17. Vorrichtung nach Anspruch 2, bei der die erste Einrichtung (80,88,92) ein erstes Register (WPR) zum Speichern eines Schreib-Pointers für Übertragungs-Pakete, das über einen Ausgang mit der zweiten Einrichtung verbunden ist, und ein zweites Register (SWPR) aufweist, um einen Schatten- Schreib-Pointer für Übertragungs-Pakete zu speichern, wobei die ersten und zweiten Register Eingänge und Ausgänge aufweisen, und ferner mit ersten und zweiten Multiplexern (F,M), die über Ausgänge jeweils mit den Eingängen der ersten und zweiten Register verbunden sind, wobei jeder der Multiplexer mehrere Eingänge aufweist, wobei ein Eingang des ersten Multiplexers (F) mit der dritten Einrichtung (82) verbunden ist, um den inkrementierten Wert des Schreib-Pointers für Empfangs-Pakete zu empfangen, wenn die zweite Einrichtung den Schreib-Pointer für Empfangs-Pakete zur Ausgabe an den Speicher (38) wählt, und ein Eingang des ersten Multiplexers (F) mit dem Initialisierungsbus (102) verbunden ist, und wobei der Ausgang des zweiten Registers (SWPR) mit einem Eingang jedes der ersten und zweiten Multiplexer (F,M) verbunden ist, und bei der der Ausgang des ersten Registers (WPR) mit einem Eingang jedes der ersten und zweiten Multiplexer (F,M) verbunden ist.
18. Vorrichtung nach Anspruch 17, bei der die ersten und zweiten Multiplexer (F,M) ferner Steuereingänge aufweisen, und ferner mit einer Steuereinrichtung (125), die mit den Steuereingängen verbunden ist und einen Eingang zum Empfang eines BRCVPKT-Signals, das den Beginn des Paket-Empfangs anzeigt, und einen Eingang zum Empfang eines DWRREQ- Signals aufweist, das anzeigt, daß das nächste Byte des Paket-Empfangs bereit zur Speicherung ist, wobei die Steuereinrichtung (125) den ersten Multiplexer (F) derart steuert, daß er vor dem Anlegen des BRCVPKT-Signals den mit dem Initialisierungsbus verbundenen Eingang wählt, um in das erste Register (WPR) einen Initialpointeradresswert für Empfangs-Pakete zu laden, und anschließend den zweiten Multiplexer (M) veranlaßt, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um unmittelbar bei Anlegen des BRCVPKT-Signals den Inhalt des ersten Registers (WPR) in das zweite Register (SWPR) zu laden, und um den ersten Multiplexer (F) zu veranlassen, den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, um das erste Register (WPR) zu veranlassen, bei Aktivierung des BRCVPKT-Signals den Schreib-Pointer für Empfangs-Pakete in dem durch die dritte Einrichtung (82) inkrementierten Zustand zu laden, und um anschließend den ersten Multiplexer (F) derart zu steuern, daß er seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang wählt, um den inkrementierten Inhalt des ersten Registers bis zum Anlegen des DWRREQ-Signals konstant zu halten, und um anschließend den ersten Multiplexer (F) zu veranlassen, bei Aktivierung des DWRREQ-Signals den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, und um den zweiten Multiplexer (M) zu veranlassen, unmittelbar nach dem Empfangen des Inhalts des ersten Registers (WPR) den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, um den Inhalt des zweiten Registers konstant zu halten, während das DWRREQ- Signal angelegt ist, und um anschließend die zweite Einrichtung (G) zu veranlassen, bei Aktivierung des DWRREQ- Signals ihren mit dem Ausgang des ersten Registers verbundenen Eingang zu wählen.
19. Vorrichtung nach Anspruch 17, bei der die ersten und zweiten Multiplexer (F,M) ferner Steuereingänge aufweisen, und gekennzeichnet durch eine Steuereinrichtung (125), die mit den Steuereingängen verbunden ist, und einen zweiten Eingang zum Empfangen eines BRCVPKT-Signals, das angibt, daß der Paket-Empfang beginnt, einen dritten Eingang zum Empfangen eines DWRREQ-Signals, das angibt, daß das nächste Byte des Paket-Empfangs eintrifft, und einen vierten Eingang zum Empfangen eines ERCVPKT-Signals aufweist, das angibt, daß ein Paket erfolgreich empfangen worden ist, wobei die Steuereinrichtung (125) den ersten Multiplexer (F) derart steuert, daß er vor dem Anlegen des BRCVPKT- Signals den mit dem Initialisierungsbus verbundenen Eingang wählt, um in das erste Register (WPR) einen Initialpointeradresswert für Empfangs-Pakete zu laden, und anschließend den zweiten Multiplexer (M) zu veranlassen, bei Anlegen des BRCVPKT-Signals den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um zu veranlassen, daß der dann existierende Schreib-Pointer für Empfangs-Pakete in dem zweiten Register (SWPR) gerettet wird, und um den ersten Multiplexer (F) zu veranlassen, den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, um das erste Register (WPR) zu veranlassen, bei Aktivierung des BRCVPKT-Signals den Schreib-Pointer für Empfangs-Pakete in dem durch die dritte Einrichtung (82) inkrementierten Zustand zu laden, und um anschließend den ersten Multiplexer (F) derart zu steuern, daß er seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang wählt, um den inkrementierten Inhalt des ersten Registers bis zum Anlegen des DWRREQ-Signals konstant zu halten, und anschließend den ersten Multiplexer (F) veranlaßt, bei Aktivierung des DWRREQ-Signals den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, so daß der Schreib-Pointer für Empfangs-Pakete während des Paket-Empfangs bei jedem Takt-Zyklus inkrementiert wird, und um den zweiten Multiplexer (M) zu veranlassen, unmittelbar nach dem Empfangen des Inhalts des ersten Registers (WPR) den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, um den Inhalt des zweiten Registers konstant zu halten, während das DWRREQ-Signal angelegt ist, und anschließend die Steuereinrichtung (125) die zweite Einrichtung (G) derart steuert, daß sie bei Aktivierung des DWRREQ-Signals ihren mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang wählt, und um den ersten Multiplexer (F) zu veranlassen, den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, und um den zweiten Multiplexer (M) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, derart, daß die Inhalte dieser beiden Register ausgetauscht werden, und um die zweite Einrichtung zu veranlassen, das Ausgangssignal des ersten Registers (WPR) zum Zuführen an die Adress-Eingänge des Speichers (38) zu wählen, und ferner mit einer mit den Dateneingängen des Speichers (38) verbundenen Datenwegsteuereinrichtung (43) zum Verfolgen der Länge des empfangenen Paketes und seines Status und zum Schreiben dieses Datenwertes in die von dem aktuellen Inhalt des ersten Registers (WPR) angezeigte Stelle in dem Speicher während des Anlegens des ERCVPKT-Signals, wobei die Steuereinrichtung (125) ferner den ersten Multiplexer (F) veranlaßt, den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, nachdem die Status- und Längen- Daten geschrieben sind, um das erste Register (WPR) zu veranlassen, den Inhalt des zweiten Registers (SWPR) neu zu laden, um den Schreib-Pointer für Empfangs-Pakete in den zur Zeit des Empfangens des ERCVPKT-Signals existierenden Zustand zurückzuversetzen, wobei die Datenwegsteuereinrichtung (43) dazu vorgesehen ist, während des Anlegens des ERCVPKT-Signals ein vorbestimmtes Bit in die von dem Inhalt des ersten Registers (WPR) angezeigte Speicher- Position zu schreiben, und um anschließend den ersten Multiplexer (F) zu veranlassen, bis zur nächsten Aktivierung des BRCVPKT-Signals den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen.
20. Vorrichtung nach Anspruch 17, bei der die ersten und zweiten Multiplexer (F,M) ferner Steuereingänge aufweisen, und ferner mit einer Steuereinrichtung (125), die mit den Steuereingängen verbunden ist, wobei die Steuereinrichtung einen ersten Eingang zum Empfangen eines FLSHPKT-Signals, das angibt, daß ein empfangenes Paket oder ein Teil davon geflusht werden soll, einen zweiten Eingang zum Empfangen eines BRCVPKT-Signals, das angibt, daß der Paket-Empfang beginnt, einen dritten Eingang zum Empfangen eines DWRREQ- Signals, das angibt, daß das nächste Byte des Paket-Empfangs eingetroffen ist, und einen vierten Eingang zum Empfangen eines RCVABRT-Signals aufweist, das angibt, daß ein Paket, das empfangen oder teilweise empfangen worden ist, abgebrochen, seine Status- und Längen-Information jedoch wiederhergestellt werden soll, wobei die Steuereinrichtung (125) den ersten Multiplexer (F) derart steuert, daß er vor dem Anlegen des BRCVPKT-Signals den mit dem Initialisierungsbus verbundenen Eingang wählt, um in das erste Register (WPR) einen Initialpointeradresswert für Empfangs-Pakete zu laden, und anschließend den zweiten Multiplexer (M) veranlaßt, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um unmittelbar bei Anlegen des BRCVPKT-Signals den Inhalt des ersten Registers (WPR) in das zweite Register (SWPR) zu laden, und den ersten Multiplexer (F) derart zu steuern, daß er seinen mit der dritten Einrichtung verbundenen Eingang wählt, um den Inhalt des ersten Registers zu inkrementieren, und um anschließend den ersten Multiplexer (F) zu veranlassen, den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, um das erste Register (WPR) zu veranlassen, bei Aktivierung des BRCVPKT-Signals den Schreib-Pointer für Empfangs-Pakete in dem durch die dritte Einrichtung (82) inkrementierten Zustand zu laden, und um anschließend den ersten Multiplexer (F) derart zu steuern, daß er seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang wählt, um den inkrementierten Inhalt des ersten Registers bis zum Anlegen des DWRREQ- Signals konstant zu halten, und um den ersten Multiplexer (F) zu veranlassen, während der Aktivierung des DWRREQ- Signals weiterhin den mit der dritten Einrichtung (82) verbundenen Eingang zu wählen, so daß der Schreib-Pointer für Empfangs-Pakete während des Paket-Empfangs bei jedem Takt-Zyklus inkrementiert wird, und um den zweiten Multiplexer (M) zu veranlassen, unmittelbar nach dem Empfangen des Inhalts des ersten Registers (WPR) den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, um den Inhalt des zweiten Registers konstant zu halten, während das DWRREQ-Signal angelegt ist, und um anschließend die zweite Einrichtung (G) zu veranlassen, während der Aktivierung des DWRREQ-Signals ihren mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und bei Aktivierung des RCVABRT-Signals den ersten Multiplexer (F) zu veranlassen, den mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, so daß der Inhalt des zweiten Registers (SWPR) in das erste Register (WPR) geladen wird, und um die zweite Einrichtung (G) zu veranlassen, das Ausgangssignal des ersten Registers (WPR) zum Zuführen an die Adress-Eingänge des Speichers zu wählen, und bei der eine mit den Dateneingängen des Speichers verbundene Datenwegsteuereinrichtung (43) die Länge des empfangenen Paketes und seines Status verfolgt und vorgesehen ist zum Schreiben dieses Datenwertes in die von dem aktuellen Inhalt des ersten Registers (WPR) angezeigte Position in dem Speicher während des Anlegens des RCVABRT-Signals, wobei die Steuereinrichtung (125) ferner den ersten Multiplexer (F) veranlaßt, den mit dem Ausgang der dritten Einrichtung (82) verbundenen Eingang zu wählen, nachdem die Status- und Längen-Daten geschrieben sind, um das erste Register (WPR) zu veranlassen, während des Anlegens des durch die dritte Einrichtung (82) inkrementierten RCVABRT-Signals einen den Schreiber-Pointer (WPR) aufweisenden Schreib-Pointer für Empfangs-Pakete neuzuladen, wobei die Datenwegsteuereinrichtung (43) dazu vorgesehen ist, anschließend ein vorbestimmtes Bit in die von dem Inhalt des ersten Registers (WPR) angezeigte Speicher-Position zu schreiben, nachdem sein Inhalt inkrementiert worden ist, und um anschließend den ersten Multiplexer (F) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um den in dem ersten Register (WPR) gespeicherten Pointer konstant zu halten, bis das nächste BRCVPKT-Signal geltend gemacht wird.
21. Vorrichtung nach Anspruch 11, gekennzeichnet durch ein Startadressregister (SAX), das in der ersten Einrichtung angeordnet und zum Speichern einer neuen Verknüpfungsadresse vorgesehen ist, die während der Verknüpfungslisten-Übertragung die in dem Speicher befindliche Position eines vorbestimmten Ring-Rückgewinnungs-Paketes anzeigt, und einen Multiplexer (A), der einen mit dem Initialisierungsbus (102) verbundenen Eingang und einen mit dem Ausgang des Startadressregisters (SAX) verbundenen Ausgang aufweist, und dessen Ausgang mit dem Eingang des Startadressregisters (SAX) verbunden ist, wobei der Multiplexer
(A) einen Steuereingang aufweist, und gekennzeichnet durch eine Steuereinrichtung (125), die mit dem Steuereingang verbunden ist und einen Steuereingang zum Empfangen eines Signals INICLBN aufweist, das angibt, daß das vorbestimmte Ring-Rückgewinnungs-Paket übermittelt werden soll, wobei die Steuereinrichtung (125) vorgesehen ist, den Multiplexer (C) zu veranlassen, den mit dem Ausgang des Startadressregisters (SAX) verbundenen Eingang zu wählen, wenn das INICLBN-Signal angelegt ist, um die Pointer-Adresse des Ring-Rückgewinnungs-Paketes in das Lese-Pointeradress- Speicherregister (RPX) für Übertragungs-Pakete zu laden.
22. Vorrichtung nach Anspruch 21, dadurch gekennzeichnet, daß die erste Einrichtung ein einen Eingang aufweisenden Endadressregister (EAX) und einen Multiplexer (H) aufweist, der einen mit dem Eingang des Endadressregisters (EAX) verbundenen Ausgang hat, wobei der Multiplexer (H) einen mit dem Ausgang des Endadressregisters (EAX) verbundenen Eingang hat, und wobei das Endadressregister (EAX) zum Speichern des Lese-Adresspointers für die Übertragungs- Pakete während Ring-Rückgewinnungs-Situationen vorgesehen ist, in denen das Ring-Rückgewinnungs-Paket übermittelt werden muß, derart, daß die Übertragung der die Verknüpfungsliste aufweisenden Pakete dort wiederaufgenommen werden kann, wo sie beim Auftreten der Ring-Rückgewinnungs-Situation unterbrochen wurde, wobei der Multiplexer (H) ferner einen mit dem Initialisierungsbus (102) verbundenen Eingang aufweist, und einen Eingang aufweist, der mit dem Ausgang des Pointeradress-Speicherregisters (RPX) zum Speichern der Lese-Pointer-Adresse für Übertragungs- Pakete verbunden ist, und einen Steuereingang aufweist, und bei der die Steuereinrichtung (125) mit dem Steuereingang des Multiplexers (H) verbunden ist, und bei der die Steuereinrichtung (125) den Multiplexer (H) veranlaßt, den mit dem Ausgang des Endadressregisters (EAX) verbundenen Eingang zu wählen, und zwar gleichzeitig mit der durch den Quell-Multiplexer (C) erfolgenden Wahl seines mit dem Ausgang des Startadressregisters (SAX) verbundenen Eingangs bei Aktivierung des INICLBN-Signals, derart, daß die Verknüpfungsadresse für das Ring-Rückgewinnungs-Paket gleichzeitig mit dem Laden des aktuellen Lese-Pointers für Übertragungs-Pakete (RPX) in das Endadressregister (EAX) in das Register (RPX) geladen wird.
23. Vorrichtung nach Anspruch 1, gekennzeichnet durch eine Entscheidungseinrichtung (62), die mit der zweiten Einrichtung (G) verbunden ist und mehrere Service-Anforderungssignal-Eingänge zum Empfangen von Signalen aufweist, die anzeigen, daß ein bestimmter Pointer gewählt werden soll, wobei die Entscheidungseinrichtung (88) zum Entscheiden über die Anforderungssignale und zum Wählen der aktuell anliegenden Anforderung mit der höchsten Priorität vorgesehen ist.
24. Vorrichtung nach Anspruch 23, gekennzeichnet durch einen Takt-Eingang zum Empfangen eines Taktsignals, und bei der die zweite Einrichtung (G) einen Steuereingang aufweist, und bei der die erste Einrichtung (80,88,92) mehrere Register (RPX,WPX,MAR,RPR,WPR) zum Speichern vorbestimmter Pointer-Adressen der Pointer-Adressen aufweist, wobei jedes Register einen Eingang und einen Ausgang und einen Takt-Eingang zum Empfangen des Taktsignals aufweist, um zu veranlassen, daß die Daten an dem Eingang in dem Register verriegelt werden und zur Ausgabe an dem Ausgang verfügbar sind, und ferner mit mehreren Multiplexern (C,D,E,F,K), die jeweils über ihren Ausgang mit dem einen Eingang des einen der Register verbunden sind und jeweils über einen Eingang mit dem Ausgang der Register verbunden sind, mit denen der Ausgang des Multiplexers verbunden ist, um in der Lage zu sein, den Inhalt des Pointer-Speicherregisters durch Wahl des mit dem Ausgang des Pointer-Speicherregisters verbundenen Eingangs konstant zu halten, und bei der die dritte Einrichtung (82) einen Ausgang aufweist, der den inkrementierten Wert des von der zweiten Einrichtung (G) gewählten Pointers führt, wobei der Ausgang der dritten Einrichtung (82) mit einem weiteren Eingang jedes der Multiplexer (C,D,E,F,K) verbunden ist, und jeder Multiplexer einen Steuereingang zum Empfangen eines Signals aufweist, das steuert, welcher Eingang zur Verbindung mit dem Ausgang des Multiplexers gewählt wird, und ferner gekennzeichnet durch eine Steuereinrichtung (125), die mit den Steuereingängen der Multiplexer und mit der Entscheidungseinrichtung (62) und mit einem Steuereingang der zweiten Einrichtung (G) verbunden ist, um zu erkennen, welches Anforderungssignal von der Entscheidungseinrichtung Priorität erhalten hat, und um die zweite Einrichtung (G) zu veranlassen, entsprechend dem Ergebnis der von der Entscheidungseinrichtung durchgeführten Entscheidung das korrekte Ausgangssignal der Ausgangssignale der Pointeradress-Speicherregister (RPX,WPX,RPR,WPR,MAR) zu wählen, und um den Multiplexer, der mit dem Eingang des Registers verbunden ist, dessen Pointer-Inhalt von der zweiten Einrichtung (G) zur Ausgabe gewählt worden sind, seinen mit dem Ausgang der dritten Einrichtung (82) verbundenen Eingang für einen ersten Takt-Zyklus zu wählen, um den gewählten Pointer zu inkrementieren, und um den mit dem gewählten Register verbundenen Multiplexer zu veranlassen, während eines zweiten Takt-Zyklus den mit dem Ausgang des gewählten Registers verbundenen Multiplexer-Eingang zu wählen, um die gewählte Pointer-Adresse während des zweiten Takt-Zyklus konstant zu halten.
25. Vorrichtung nach Anspruch 24, bei der die Steuereinrichtung (125) ferner die Entscheidungseinrichtung (62) veranlaßt, ihre nächste Entscheidung für den nächsten zu wählenden Adress-Pointer während des zweiten Taktzyklus durchzuführen, während dessen der derzeit gewählte Pointer zur Ausgabe an die Adress-Eingänge des Speichers (38) gewählt wird, und bei der die Entscheidungseinrichtung ihre Entscheidung bei oder vor dem Ende des zweiten Taktzyklus abschließt, um eine gepipelinete Entscheidung zu implementieren.
26. Vorrichtung nach Anspruch 1, bei der die erste Einrichtung (80,88,92) mehrere Register (RPX,WPX,RPR,WPR,MAR) zum Speichern von Adress-Pointern aufweist, und dadurch gekennzeichnet, daß der Initialisierungsbus (102) mit einem Eingang jedes Registers verbunden ist, und bei der eines der Register zum Speichern einer Direktzugriffs-Pointer- Adresse vorgesehen ist, die anfangs durch Daten auf dem Initialisierungsbus (102) gesetzt werden kann und durch die dritte Einrichtung (82) inkrementiert werden kann, wenn der Direktzugriffs-Pointer von der zweiten Einrichtung zur Ausgabe gewählt ist.
27. Vorrichtung nach Anspruch 26, gekennzeichnet durch eine Entscheidungseinrichtung (62), die mehrere Eingänge zur Verbindung mit Anforderungssignale führenden Konduktoren aufweist und mit der zweiten Einrichtung (G) verbunden ist, um über sämtliche gleichzeitig angelegten Anforderungen zu entscheiden und die Anforderung mit der höchsten Priorität zu wählen, und um die zweite Einrichtung (G) zu veranlassen, das Ausgangssignal des Pointer-Speicherregisters, in dem der von der Entscheidungseinrichtung gewählte Pointer gespeichert ist, zur Ausgabe an den Speicher (38) zu wählen.
28. Vorrichtung nach Anspruch 26, gekennzeichnet durch eine Instruktionsdekodiereinrichtung (96), die einen Instruktionsbuseingang aufweist und mit der zweiten Einrichtung (G) verbunden ist, um eine an dem Instruktionsbuseingang empfangene Instruktion zu dekodieren und zu veranlassen, daß das Ausgangssignal des Direktzugriffs-Pointer-Registers von der zweiten Einrichtung zur Ausgabe gewählt wird.
29. Vorrichtung nach Anspruch 27, gekennzeichnet durch eine Einrichtung, die einen Instruktionsbuseingang aufweist und mit der zweiten Einrichtung (G) verbunden ist, um eine an dem Instruktionsbuseingang empfangene Instruktion zu dekodieren und zu veranlassen, daß das Ausgangssignal des Direktzugriffs-Pointer-Registers zur Ausgabe gewählt wird.
30. Vorrichtung nach Anspruch 28, bei der die Instruktionsdekodiereinrichtung (96) ferner derart mit der dritten Einrichtung (82) verbunden ist, daß bei Empfang einer vorbestimmten Instruktion das durch die dritte Einrichtung durchgeführte Inkrementieren des gewählten Pointers gestoppt werden kann.
31. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Einrichtung (80,88,92) mehrere Register in ausreichender Anzahl umfaßt, um programmierbare Start-, End- sowie Lese- und Schreib-Pointer für zwei in dem Speicher (38) zu implementierende, unabhängig betätigte FIFO/LIFO- Puffer zu speichern, die jeweils einen Eingang aufweisen, und ferner mit mehreren Multiplexern, deren Ausgänge mit den Register-Eingängen verbunden sind, wobei jeder Multiplexer einen mit der dritten Einrichtung (82) verbundenen Eingang zum Empfang des inkrementierten Wertes des gewählten Pointers aufweist, und jeder Multiplexer einen mit dem Initialisierungsbus (102) verbundenen Eingang aufweist.
32. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Einrichtung (80,88,92) mehrere Register umfaßt, die jeweils einen Eingang aufweisen, und ferner mehrere Eingangs-Multiplexer aufweist, deren Ausgänge mit den Register-Eingängen verbunden sind, und ferner einen Quell- Multiplexer (A) aufweist, der einen mit dem Initialisierungsbus (102) verbundenen Eingang, einen mit der dritten Einrichtung (82) verbundenen Eingang und einen Ausgang aufweist, wobei jeder der Eingangs-Multiplexer einen Eingang aufweist, der mit dem Initialisierungsbus (102) und der dritten Einrichtung (82) verbunden ist.
33. System mit:
einem ersten System zum Lesen und Schreiben von Daten, das einen ersten Taktgeber, einen ersten Datenbus und eine erste Ausgangsleitung zum Führen eines ersten Speicherzugriffs-Anforderungssignals aufweist,
einem zweiten System zum Lesen und Schreiben von Daten, das einen zweiten Taktgeber, einen zweiten Datenbus und eine zweite Ausgangsleitung zum Führen eines zweiten Speicherzugriffs-Anforderungssignals aufweist,
einem Speicher (38), der mit dem ersten Taktgeber verbunden ist und einen mit dem ersten Datenbus verbundenen Daten-Port und einen Adress-Port aufweist, wobei der Daten-Port mit dem ersten Datenbus verbunden ist,
einer Puffersteuereinrichtung (RBC) nach Anspruch 1, die mit dem ersten Taktgeber verbunden ist und mit dem Adress- Port und den ersten und zweiten Speicherzugriffs-Anforderungssignalen verbunden ist, um über die Speicherzugriffs- Anforderungen zu entscheiden und um an dem Adress-Port Pointer-Adressen zu erzeugen, um den über die Daten-Busse erfolgenden Zugriff auf die in dem Speicher (38) gespeicherten Daten zu steuern.
34. System nach Anspruch 33, bei dem die ersten und zweiten Taktsignale von einem einzigen Taktgeber erzeugt werden und bei dem die Puffersteuereinrichtung den Adressen-Port derart handhabt, daß zwei unabhängig betätigte FIFO/LIFO- Puffer in dem Speicher implementiert werden.
35. System nach Anspruch 33, bei dem die Puffersteuereinrichtung (RBC) vorgesehen ist, um die Pointer-Adressen-Zuführungen an den Speicher (38) derart zu handhaben, daß der Speicher jedem der ersten und zweiten Systeme als ein Paar von unabhängig betätigten FIFO-Speichern erscheint.
36. System nach Anspruch 33, bei dem der Speicher (38) einen Aktivierungs-Eingang aufweist, gekennzeichnet durch:
eine Puffersteuereinrichtung (RBC) mit einem Aktivierungs- Ausgang, an dem ein Signal angelegt wird, das angibt, wann die Puffersteuereinrichtung eine Pointer-Adresse an dem Adress-Port des Speichers für das zweite System erzeugt hat, wobei die Puffersteuereinrichtung (RBC) ferner vorgesehen ist, um an dem Aktivierungs-Ausgang ein Aktivierungssignal zu erzeugen, das anzeigt, wann ein Pointer für das zweite System an den Speicher-Port ausgegeben worden ist, und
einen Haltespeicher mit einem mit dem zweiten Daten-Bus verbundenen Dateneingang, einem mit dem zweiten Taktgeber verbundenen Takteingang, einem mit dem Daten-Port des Speichers (38) verbundenen Daten-Ausgang, einem mit dem Aktivierungs-Ausgang der Puffersteuereinrichtung (RBC) verbundenen Ausgangs-Aktivierungs-Eingang zum Empfang des Ausgangs-Aktivierungs-Signals, um zu veranlassen, daß von dem zweiten System in der Halteschaltung gespeicherte Daten dem Daten-Port des Speichers (38) zugeführt werden.
37. Vorrichtung nach Anspruch 1, ferner mit einer Taktgebereinrichtung zum Erzeugen einer periodischen Serie von Ladesignalen,
wobei die erste Einrichtung (80,88,92) aufweist:
ein erstes Register (RPXS) mit einem Eingang, einem mit dem Taktgeber verbundenen Ladeeingang, um das erste Register zu veranlassen, bei jedem Auftreten des Ladesignals die Adresse zu laden und an seinem Eingang zu speichern, und mit einem Ausgang, wobei das Register zum Speichern eines Lese-Pointers für ein Übertragungs-FIFO vorgesehen ist,
ein zweites Register (WPX) mit einem Eingang, einem mit dem Taktgeber verbundenen Ladeeingang, um das Register zu veranlassen, bei jedem Auftreten des Ladesignals die Adresse zu laden und an seinem Eingang zu speichern, und mit einem Eingang, wobei das Register zum Speichern eines Schreib-Pointers für ein Übertragungs-FIFO vorgesehen ist,
ein drittes Register (RPR) mit einem Eingang, einem mit dem Taktgeber verbundenen Ladeeingang, um das Register zu veranlassen, bei jedem Auftreten des Ladesignals die Adresse zu laden und an seinem Eingang zu speichern, und mit einem Ausgang, wobei das Register zum Speichern eines Lese-Pointers für ein Empfangs-FIFO vorgesehen ist,
ein viertes Register (WPR) mit einem Eingang, einem mit dem Taktgeber verbundenen Ladeeingang, um das Register zu veranlassen, bei jedem Auftreten des Ladesignals die Adresse zu laden und an seinem Eingang zu speichern, und mit einem Ausgang, wobei das Register zum Speichern eines Schreib-Pointers für ein Empfangs-FIFO vorgesehen ist,
und bei der die zweite Einrichtung aufweist:
einen Ausgangs-Multiplexer (G) mit Eingängen, die mit den Ausgängen der ersten, zweiten, dritten und vierten Register verbunden sind, mit einem Ausgang und mit einem Steuereingang zum Empfangen eines Signals, das steuert, welcher der Eingänge mit dem Ausgang verbunden wird,
ferner mit ersten bis vierten Eingangs-Multiplexern für die jeweiligen der ersten bis vierten Register, wobei jeder Eingangs-Multiplexer einen Ausgang aufweist, der mit dem Eingang seines zugehörigen Registers verbunden ist, und jeder Eingangs-Multiplexer erste und zweite Eingänge und einen Steuereingang zum Empfangen von Signalen aufweist, die steuern, welcher der Eingänge mit dem Ausgängen verbunden wird,
wobei die dritte Einrichtung (82) eine Inkrementiereinrichtung aufweist, die einen mit dem Ausgang des Ausgangs- Multiplexers (G) verbundenen Eingang und einen mit jedem ersten Eingang jedes Eingangs-Multiplexers verbundenen Ausgang aufweist und dazu dient, die in dem gewählten Register gespeicherte Pointer-Adresse zu inkrementieren und das Inkrementierungsergebnis den Eingängen der Eingangs-Multiplexer zuzuführen,
ferner mit dem Initialisierungsbus (102), der mit jedem zweiten Eingang der Eingangs-Multiplexer verbunden ist, um zu ermöglichen, daß jedes beliebige der Register mit einer auf dem Bus plazierten Adresse geladen wird, und
einer Steuereinrichtung (125) mit einem Instruktions-Port und Ausgangssignalleitungen, die mit den Steuereingängen für die Eingangs-Multiplexer verbunden sind, um jeden gewählten Multiplexer zu veranlassen, seinen zweiten Eingang zum Verbinden mit dem Ausgang des Eingangs-Multiplexers zu wählen, wenn eine vorbestimmte Instruktion an dem Instruktions-Port eintrifft,
einer Entscheidungseinrichtung (88) mit mehreren Speicherzugriffsanforderungs-Eingängen und mehreren Steuersignalleitungen, die mit den Steuereingängen der Eingangs-Multiplexer und dem Steuereingang des Ausgangs-Multiplexers (G) verbunden sind, um eine Entscheidung zwischen gleichzeitigen Speicherzugriffsanforderungen zu treffen, die die höchste Priorität aufweisende aktuelle Anforderung zu wählen und vorbestimmte Signalleitungen zu aktivieren, um den Ausgangs-Multiplexer (G) zu veranlassen, das Ausgangssignal des Registers, das den von der Entscheidungseinrichtung (88) als derzeit höchste Priorität aufweisend gewählten Pointer speichert, zur Ausgabe an den Speicher (38) zu wählen, und um den mit dem gewählten Register verbundenen Eingangs-Multiplexer zu veranlassen, den mit der Inkrementierungseinrichtung verbundenen Eingang zu wählen, so daß der aktuelle Pointer in dem gewählten Register inkrementiert wird und der neue Wert im nächsten Takt-Zyklus geladen wird.
38. Vorrichtung nach Anspruch 37, ferner mit einer Einrichtung (92B,J,88), die mit dem Initialisierungsbus (102) und mit dem Ausgang des Ausgangs-Multiplexers (G) verbunden ist und einen Steuerausgang aufweist, und die vorgesehen ist zum Speichern einer End-Adresse für jedes Übertragungs- FIFO und Empfangs-FIFO, zum Vergleichen der Adresse des derzeit gewählten FIFO am Ausgang des Ausgangs-Multiplexers (G) mit der korrekten End-Adresse der End-Adressen, und zum Erzeugen eines Signals zur Angabe, ob die End- Adresse gleichgemacht worden ist oder nicht.
39. Vorrichtung nach Anspruch 38, ferner mit einer Direktzugriffsspeicher-Pointeradress-Speichereinrichtung (MAR), die mit dem Ausgangs-Multiplexer (G), der Inkrementiereinrichtung (82) und dem Initialisierungsbus (102) verbunden ist und einen mit der Steuereinrichtung (125) verbundenen Steuereingang aufweist, wobei die Direktzugriffsspeicher- Pointeradress-Speichereinrichtung vorgesehen ist zum Speichern jeder auf dem Initialisierungsbus (102) geführten Adresse, die, wenn die Steuereinrichtung (125) eine vorbestimmte Instruktion empfängt, am Ausgang des Ausgangs- Multiplexers (G) ausgegeben werden soll, wenn die Verknüpfungslisten-Übertragung implementiert werden soll, und zum Speichern entweder einer inkrementierten oder nicht inkrementierten Version der Pointer-Adresse und zum Neu- Ausgeben der Pointer-Adresse in Abhängigkeit von der empfangenen Instruktion.
40. Vorrichtung nach Anspruch 37, ferner mit einem Datenbus und einer mit dem Ausgangs-Multiplexer (G) und wahlweise mit dem Datenbus verbundenen Einrichtung (RPXA) zum Speichern eines zweiten Lese-Pointers für ein Übertragungs- FIFO.
41. Vorrichtung nach Anspruch 37, ferner mit wahlweise mit dem Initialisierungsbus (102) verbundenen Start-Adress-Registern (SAX,SAR) zum Speichern von Start-Adressen für die Übertragungs- und die Empfangs-FIFOs, und mit einem mit Eingängen gewählter Eingangs-Multiplexer der Eingangs- Multiplexer gekoppelten Ausgang, der mit den ersten bis vierten Multiplexern verbunden ist.
42. Vorrichtung nach Anspruch 37, ferner mit einem Schatten- Schreib-Pointer-Register (SWPR) mit einem Lade-Eingang, der mit dem Taktgeber verbunden ist, und mit einem Eingang, der durch einen fünften Multiplexer (M) wahlweise mit dem Ausgang des vierten Registers (WPR) verbunden ist, wobei der fünfte Multiplexer einen mit der Steuereinrichtung (125) verbundenen Steuereingang und einen Ausgang aufweist, der durch den vierten Multiplexer wahlweise mit dem Eingang des vierten Registers verbunden ist, und bei der die Steuereinrichtung (125) ferner zu einer vorbestimmten Zeit Signale erzeugt, die die vierten und fünften Multiplexer derart schalten, daß das vierte Register (WPR) und das Schatten-Schreib-Pointer-Register (SWPR) ihre Inhalte tauschen.
43. Verfahren zum Betätigen einer RAM-Puffer-Steuereinrichtung (RBC) zum Erzeugen von Adressen für einen Speicher (38), wobei die Steuereinrichtung ein erstes Register (WPR), ein zweites Register (SWPR), einen Inkrementierer (82) und einen Ausgangs-Multiplexer (G) zum Gattern des Ausgangssignals des ersten Registers (WPR) an die Adress-Eingänge des Speichers (38) aufweist, mit den folgenden Schritten:
Speichern einer Adresse in dem ersten Register (WPR),
bei Empfang eines ersten Signals (BRCVPKT), Speichern des Inhalts des ersten Registers (WPR) in dem zweiten Register (SWPR) und Inkrementieren des Inhalts des ersten Registers (WPR),
bei Empfang eines zweiten Signals (DWRREQ), Konstanthalten des Inhalts des zweiten Registers (SWPR), während der Inhalt des ersten Registers (WPR) für jeden Zugriff auf den Speicher (38) einmal inkrementiert wird,
bei Empfang eines dritten Signals (ERCVPKT), Veranlassen des Speicherns des Inhalts des zweiten Registers (SWPR) in dem ersten Register (WPR) und des Speicherns des Inhalts des ersten Registers (WPR) in dem zweiten Register (SWPR).
44. Verfahren nach Anspruch 43, ferner mit den folgenden Schritten:
Gattern des Ausgangssignals des ersten Registers (WPR) in die Adress-Eingänge und Schreiben von Daten in die durch den Inhalt des ersten Registers (WPR) adressierte Position in dem Speicher, nachdem der Inhalt des zweiten Registers (SWPR) in dem ersten Register (WPR) gespeichert worden ist,
bei Anlegen eines vierten Signals (LDSWWPR) und Wegnehmen eines fünften Signals (HLDWPR), Wiederherstellen des Inhalts des ersten Registers (WPR), indem darin der Inhalt des zweiten Registers (SWPR) geladen wird, und anschließend Gattern des Ausgangssignals des ersten Registers (WPR) an die Adress-Ports des Speichers (38) und Schreiben eines vorbestimmten Bits mit vorbestimmten Daten in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher-Position,
Konstanthalten des Inhalts des ersten Registers (WPR).
45. Verfahren mit den folgenden Schritten:
Speichern einer Adresse in dem ersten Register (WPR),
bei Empfang eines ersten Signals (BRCVPKT), Speichern des Inhalts des ersten Registers (WPR) in dem zweiten Register (SWPR) und Inkrementieren des Inhalts des ersten Registers (WPR),
bei Anlegen eines zweiten Signals (DWRREQ), Konstanthalten des Inhalts des zweiten Registers (SWPR), während der Inhalt des ersten Registers (WPR) für jeden Zugriff auf den Speicher (38) einmal inkrementiert wird,
bei Anlegen eines dritten Signals (RCVABRT), Speichern des Inhalts des zweiten Registers (SWPR) in dem ersten Register (WPR), Gattern des Ausgangssignals des ersten Registers (WPR) durch die Adress-Eingänge, und Schreiben vorbestimmter Status- und Längen-Daten in die durch den Inhalt des ersten Registers (WPR) adressierte Position in dem Speicher,
Inkrementieren des Inhalts des ersten Registers (WPR),
Gattern des Ausgangssignals des ersten Registers (WPR) durch die Adress-Eingänge, und Schreiben eines vorbestimmten Status-Daten-Bits in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher-Position, und
Verhindern des Inkrementierens des Inhalts des ersten Registers (WPR) zur Vorbereitung auf den nächsten Speicherzugriff.
46. Verfahren nach Anspruch 43, bei dem die Steuereinrichtung ferner aufweist:
erste und zweite Multiplexer (F,M), die die in das erste Registers (WPR) und das zweite Register (SWPR) eingegebenen Daten steuern,
und bei dem der Inkrementierer (82) einen Eingang und einen mit einem Eingang des ersten Multiplexers (F) verbundenen Ausgang aufweist, wobei der (I) erste Multiplexer ferner Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und wobei das zweite Register (SWPR) Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und eine Steuer-Logik mit mehreren Eingangssignalleitungen und mehreren Ausgangssteuerleitungen zum Steuern der Operation der ersten und zweiten Multiplexer (F,M) aufweist, wobei jeder der ersten und zweiten Multiplexer einen Takt-Eingang, der mit einem Ladesignale erzeugenden Taktgeber verbunden ist, und einen Ausgangs-Multiplexer (G) aufweist, der einen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang und einen mit dem Eingang des Inkrementierers verbundenen Ausgang hat.
47. Verfahren nach Anspruch 43, bei dem
das erste Register (WPR) vorgesehen ist, um Schreib-Pointer-Adressen zu speichern, die verwendet werden, wenn aus einem Netzwerk erhaltene Empfangs-Pakete in einem Speicher gespeichert werden, und
das zweite Register (SWPR) zu Speichern eines Schatten- Schreib-Pointers vorgesehen ist und erste und zweite Multiplexer (F,M) aufweist, die die Daten steuern, die in das erste Register (WPR) bzw. das zweite Register (SWPR) eingegeben werden,
der Inkrementierer (82) einen mit dem Ausgangs-Multiplexer (G) verbundenen Eingang und einen mit einem Eingang des ersten Multiplexers (F) verbundenen Ausgang aufweist, wobei der erste Multiplexer ferner Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und wobei der zweite Multiplexer (M) Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und eine Steuer- Logik mit mehreren Eingangssignalleitungen und mehreren Ausgangssteuerleitungen zum Steuern der Operation der ersten und zweiten Multiplexer (F,M) aufweist, wobei jeder der ersten und zweiten Multiplexer einen Takt-Eingang aufweist, der mit einem Ladesignale erzeugenden Taktgeber verbunden ist,
wobei der Ausgangs-Multiplexer (G) einen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang und einen mit den Adressen-Ports des Speichers (38) verbundenen Ausgang aufweist, ferner mit den folgenden Schritten:
Erzeugen von Signalen bei Aktivierung des ersten Signals (BRCVPKT) durch die Steuer-Logik, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) in dem zweiten Register (SWPR) gespeichert wird, und anschließend Erzeugen von Signalen, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen- Eingang zu wählen, und Erzeugen von Steuersignalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Inkrementierer (82) verbundenen Eingang zu wählen, und anschließend Erzeugen von Signalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen,
Erzeugen von Signalen mittels der Steuer-Logik, um den Ausgangs-Multiplexer (G) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang einmal während jedes Speicher-Zyklus zu wählen, und um den ersten Multiplexer (F) zu veranlassen, erneut bei jedem Speicherzugriffs-Zyklus seinen mit dem Inkrementierer (82) verbundenen Eingang zu wählen und anschließend den Inhalt des ersten Registers (WPR) konstant zu halten, indem zwischen Speicher-Zyklen der mit dem Ausgang der ersten Registers (WPR) verbundene Eingang gewählt wird, und Erzeugen von Signalen, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang der zweiten Registers (SWPR) verbundenen Eingang zu wählen, während der erste Multiplexer (F) seinen mit dem Inkrementierer verbundenen Eingang wählt,
Erzeugen von Signalen bei Empfang des dritten Signals (ERCVPKT) durch die Steuer-Logik, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) in dem zweiten Register (SWPR) gespeichert wird und der Inhalt des zweiten Registers (SWPR) anschließend für eine vorbestimmte Periode konstant gehalten wird, und gleichzeitig mit dem Laden des Inhalts des ersten Registers (WPR) in das zweite Register (SWPR) den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, und anschließend zu veranlassen, daß der Inhalt des ersten Registers (WPR) für eine vorbestimmte Periode konstant gehalten wird, wobei die Zeitsteuerung derart erfolgt, daß die Inhalte der ersten und zweiten Register ausgetauscht werden,
Erzeugen von Signalen, um den Ausgangs-Multiplexer (G) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und Schreiben von Status- und Längen-Information in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher-Position in dem Speicher,
Erzeugen von Signalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, so daß der Inhalt des zweiten Registers (SWPR) in das erste Register (WPR) geladen wird, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) konstant gehalten wird,
Schreiben eines vorbestimmten Status-Bit in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher- Position, und
Erzeugen von Signalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um den Inhalt des ersten Registers (WPR) konstant zu halten.
48. Verfahren nach Anspruch 43, bei dem
das erste Register (WPR) vorgesehen ist, um Schreib-Pointer-Adressen zu speichern, die verwendet werden, wenn aus einem Netzwerk erhaltene Empfangs-Pakete in einem Speicher gespeichert werden, und
das zweite Register (SWPR) zu Speichern eines Schatten- Schreib-Pointers vorgesehen ist und erste und zweite Multiplexer (F,M) aufweist, die die Daten steuern, die in das erste Register (WPR) bzw. das zweite Register (SWPR) eingegeben werden,
der Inkrementierer (82) einen Eingang und einen mit einem Eingang des ersten Multiplexers (F) verbundenen Ausgang aufweist, wobei der erste Multiplexer ferner Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und wobei der zweite Multiplexer (M) Eingänge aufweist, die mit dem Ausgang des ersten Registers (WPR) und dem Ausgang des zweiten Registers (SWPR) verbunden sind, und eine Steuer-Logik mit mehreren Eingangssignalleitungen und mehreren Ausgangssteuerleitungen zum Steuern der Operation der ersten und zweiten Multiplexer (F,M) aufweist, wobei jeder der ersten und zweiten Multiplexer einen Takt- Eingang aufweist, der mit einem Ladesignale erzeugenden Taktgeber verbunden ist,
wobei das Ausgangs-Gate einen Ausgangs-Multiplexer (G) mit einem mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang und einem mit dem Eingang des Inkrementierers und mit den Adressen-Ports des Speichers verbundenen Ausgang aufweist, ferner mit den folgenden Schritten:
Erzeugen von Signalen bei Empfang des ersten Signals durch die Steuer-Logik, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) in dem zweiten Register (SWPR) gespeichert wird, und anschließend Erzeugen von Signalen, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, und Erzeugen von Steuersignalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Inkrementierer (82) verbundenen Eingang zu wählen,
Erzeugen von Signalen mittels der Steuer-Logik, um den Ausgangs-Multiplexer (G) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang einmal während jedes Speicher-Zyklus zu wählen, und um den ersten Multiplexer (F) zu veranlassen, erneut bei jedem Speicherzugriffs-Zyklus seinen mit dem Inkrementierer verbundenen Eingang zu wählen und anschließend den Inhalt des ersten Registers (WPR) konstant zu halten, indem zwischen Speicher-Zyklen der mit dem Ausgang der ersten Registers (WPR) verbundene Eingang gewählt wird, und Erzeugen von Signalen, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang der zweiten Registers (SWPR) verbundenen Eingang zu wählen, während der erste Multiplexer (F) seinen mit dem Inkrementierer verbundenen Eingang wählt,
Erzeugen von Signalen bei Empfang des dritten Signals (ERCVPKT) durch die Steuer-Logik, um den zweiten Multiplexer (M) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) in dem zweiten Register (SWPR) gespeichert wird und der Inhalt des zweiten Registers (SWPR) anschließend für eine vorbestimmte Periode konstant gehalten wird, und gleichzeitig mit dem Laden des Inhalts des ersten Registers (WPR) in das zweite Register (SWPR) den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, und anschließend zu, veranlassen, daß der Inhalt des ersten Registers (WPR) für eine vorbestimmte Periode konstant gehalten wird,
Erzeugen von Signalen, um den Ausgangs-Multiplexer (G) zu veranlassen, den mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, und Schreiben von Status- und Längen-Information in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher-Position in dem Speicher,
Erzeugen von Signalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, so daß der Inhalt des zweiten Registers (SWPR) in das erste Register (WPR) geladen wird, und um zu veranlassen, daß der Inhalt des ersten Registers (WPR) konstant gehalten wird,
Schreiben eines vorbestimmten Status-Bit in die durch den Inhalt des ersten Registers (WPR) adressierte Speicher- Position, und
Erzeugen von Signalen, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des ersten Registers (WPR) verbundenen Eingang zu wählen, um den Inhalt des ersten Registers (WPR) konstant zu halten, und
Erzeugen von Signalen bei Empfang eines dritten Signals durch die Steuer-Logik, um den ersten Multiplexer (F) zu veranlassen, seinen mit dem Ausgang des zweiten Registers (SWPR) verbundenen Eingang zu wählen, und um zu veranlassen, daß der Inhalt des zweiten Registers (SWPR) in dem ersten Register (WPR) gespeichert wird und der Inhalt des ersten Registers (WPR) anschließend für eine vorbestimmte Periode konstant gehalten wird.
DE3751514T 1986-03-06 1987-03-03 Adressieranordnung für RAM-Puffer-Steuereinrichtung. Expired - Fee Related DE3751514T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/836,936 US4949301A (en) 1986-03-06 1986-03-06 Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs

Publications (2)

Publication Number Publication Date
DE3751514D1 DE3751514D1 (de) 1995-10-19
DE3751514T2 true DE3751514T2 (de) 1996-03-28

Family

ID=25273090

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751514T Expired - Fee Related DE3751514T2 (de) 1986-03-06 1987-03-03 Adressieranordnung für RAM-Puffer-Steuereinrichtung.

Country Status (5)

Country Link
US (1) US4949301A (de)
EP (1) EP0241129B1 (de)
JP (1) JP2539614B2 (de)
AT (1) ATE127945T1 (de)
DE (1) DE3751514T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19732626C2 (de) * 1996-12-02 2002-08-01 Hewlett Packard Co Verfahren zum Verarbeiten eines komprimierten Datenstromes

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133062A (en) * 1986-03-06 1992-07-21 Advanced Micro Devices, Inc. RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
US5093807A (en) * 1987-12-23 1992-03-03 Texas Instruments Incorporated Video frame storage system
US5129090A (en) * 1988-05-26 1992-07-07 Ibm Corporation System bus preempt for 80386 when running in an 80386/82385 microcomputer system with arbitration
US5125083A (en) * 1989-02-03 1992-06-23 Digital Equipment Corporation Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
DE69032498T2 (de) * 1989-10-23 1999-03-04 Mitsubishi Denki K.K., Tokio/Tokyo Zellenvermittlungseinrichtung
US5056010A (en) * 1989-10-30 1991-10-08 Industrial Technology Research Institute Pointer based DMA controller
JP2997005B2 (ja) * 1990-04-12 2000-01-11 キヤノン株式会社 出力装置
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US6751696B2 (en) 1990-04-18 2004-06-15 Rambus Inc. Memory device having a programmable register
US6324120B2 (en) 1990-04-18 2001-11-27 Rambus Inc. Memory device having a variable data output length
EP0453863A2 (de) * 1990-04-27 1991-10-30 National Semiconductor Corporation Verfahren und Gerät zur Ausführung einer Mediumzugriffssteuerung/Wirtsystemschnittstelle
JPH0619759B2 (ja) * 1990-05-21 1994-03-16 富士ゼロックス株式会社 マルチプロセッサシステムにおける相互通信方法
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5265229A (en) * 1990-07-02 1993-11-23 Digital Equipment Corporation Single load, multiple issue queue with error recovery capability
GB9019001D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station including a direct memory access controller and interfacing means to microchannel means
GB9019026D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station including a direct memory access controller
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
US5495474A (en) * 1991-03-29 1996-02-27 International Business Machines Corp. Switch-based microchannel planar apparatus
US5742761A (en) * 1991-03-29 1998-04-21 International Business Machines Corporation Apparatus for adapting message protocols for a switch network and a bus
JP3180362B2 (ja) * 1991-04-04 2001-06-25 日本電気株式会社 情報処理装置
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
JP2671699B2 (ja) * 1991-11-15 1997-10-29 三菱電機株式会社 セル交換装置
US5398235A (en) * 1991-11-15 1995-03-14 Mitsubishi Denki Kabushiki Kaisha Cell exchanging apparatus
JP2728155B2 (ja) * 1991-12-19 1998-03-18 三菱電機株式会社 通信制御装置
US5448714A (en) * 1992-01-02 1995-09-05 Integrated Device Technology, Inc. Sequential-access and random-access dual-port memory buffer
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
US5289577A (en) * 1992-06-04 1994-02-22 International Business Machines Incorporated Process-pipeline architecture for image/video processing
US5450599A (en) * 1992-06-04 1995-09-12 International Business Machines Corporation Sequential pipelined processing for the compression and decompression of image data
US6263374B1 (en) 1992-09-17 2001-07-17 International Business Machines Corporation Apparatus for coupling a bus-based architecture to a switch network
DE69433229T2 (de) * 1993-02-15 2004-08-12 Mitsubishi Denki K.K. ATM-Schalter
US5619646A (en) * 1994-09-27 1997-04-08 International Business Machines Corporation Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus
US6374313B1 (en) * 1994-09-30 2002-04-16 Cirrus Logic, Inc. FIFO and method of operating same which inhibits output transitions when the last cell is read or when the FIFO is erased
KR960035283A (ko) * 1995-03-23 1996-10-24 김주용 이중 채널 선입 선출 회로
US5765200A (en) * 1995-06-07 1998-06-09 International Business Machines Corporation Logical positioning within a storage device by a storage controller
JP3486498B2 (ja) 1996-01-10 2004-01-13 キヤノン株式会社 バッファ管理方法及びそれを用いた印刷装置
US5949440A (en) * 1996-04-30 1999-09-07 Hewlett Packard Compnay Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware
US6003098A (en) * 1996-04-30 1999-12-14 Hewlett-Packard Company Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information
US5819113A (en) * 1996-06-06 1998-10-06 Advanced Micro Devices, Inc. Method of identifying end of pocket by writing the address of last data into the first location of the memory
JP3175620B2 (ja) * 1996-06-21 2001-06-11 セイコーエプソン株式会社 印刷装置
KR100194634B1 (ko) * 1996-12-11 1999-06-15 이계철 선입선출에서 읽기-쓰기 포인터의 오류검출 및 자동복구장치
US5909704A (en) * 1997-01-09 1999-06-01 Raytheon Company High speed address generator
US6230245B1 (en) 1997-02-11 2001-05-08 Micron Technology, Inc. Method and apparatus for generating a variable sequence of memory device command signals
US6175894B1 (en) 1997-03-05 2001-01-16 Micron Technology, Inc. Memory device command buffer apparatus and method and memory devices and computer systems using same
US6359899B1 (en) * 1997-05-28 2002-03-19 Lucent Technologies Inc. Priority access for real-time traffic in contention-based networks
US5996043A (en) 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
US6484244B1 (en) 1997-06-17 2002-11-19 Micron Technology, Inc. Method and system for storing and processing multiple memory commands
GB2331896B (en) * 1997-11-27 2000-03-29 Connell Anne O Last-in first out data stacks and processing data using such data stacks
US6202119B1 (en) 1997-12-19 2001-03-13 Micron Technology, Inc. Method and system for processing pipelined memory commands
US6175905B1 (en) 1998-07-30 2001-01-16 Micron Technology, Inc. Method and system for bypassing pipelines in a pipelined memory command generator
US6430666B1 (en) * 1998-08-24 2002-08-06 Motorola, Inc. Linked list memory and method therefor
US6178488B1 (en) 1998-08-27 2001-01-23 Micron Technology, Inc. Method and apparatus for processing pipelined memory commands
US6154796A (en) * 1998-09-03 2000-11-28 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing receiving frame status in a holding register
JP3765931B2 (ja) * 1998-10-15 2006-04-12 富士通株式会社 バッファ制御方法及びバッファ制御装置
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
US6381659B2 (en) * 1999-01-19 2002-04-30 Maxtor Corporation Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses
US6735207B1 (en) * 2000-06-13 2004-05-11 Cisco Technology, Inc. Apparatus and method for reducing queuing memory access cycles using a distributed queue structure
DE10050980A1 (de) * 2000-10-13 2002-05-02 Systemonic Ag Speicherkonfiguration mit I/O-Unterstützung
JP2008135047A (ja) * 2000-11-06 2008-06-12 Matsushita Electric Ind Co Ltd マルチプロセッサ用インタフェース
GB0031761D0 (en) * 2000-12-29 2001-02-07 Mitel Semiconductor Ltd Data queues
GB2382898B (en) 2000-12-29 2005-06-29 Zarlink Semiconductor Ltd A method of managing data
DE10108922B4 (de) * 2001-02-23 2013-01-31 Rohde & Schwarz Gmbh & Co. Kg Elektronische Speicheranordnung
US6952756B1 (en) * 2001-05-08 2005-10-04 Lewiz Communications Method and apparatus for speculative loading of a memory
US7194088B2 (en) * 2001-06-08 2007-03-20 Corrent Corporation Method and system for a full-adder post processor for modulo arithmetic
US7646782B1 (en) 2001-07-30 2010-01-12 Primrose Donald R Data link/physical layer packet buffering and flushing
US6941393B2 (en) * 2002-03-05 2005-09-06 Agilent Technologies, Inc. Pushback FIFO
US6996657B1 (en) * 2002-03-21 2006-02-07 Advanced Micro Devices, Inc. Apparatus for providing packets in a peripheral interface circuit of an I/O node of a computer system
US7293132B2 (en) * 2003-10-08 2007-11-06 Samsung Electronics Co., Ltd. Apparatus and method for efficient data storage using a FIFO memory
JP2014026388A (ja) * 2012-07-25 2014-02-06 Toshiba Corp 記憶装置、コントローラ、および書き込み制御方法
US9384822B2 (en) 2013-03-15 2016-07-05 Gsi Technology, Inc. Systems and methods involving data bus inversion memory circuitry, configuration and/or operation including data signals grouped into 10 bits and/or other features
TWI614607B (zh) 2013-03-15 2018-02-11 積佳半導體股份有限公司 用於使用資料匯流排反相的記憶體操作之記憶體裝置與方法
US11003616B1 (en) * 2017-06-27 2021-05-11 Amazon Technologies, Inc Data transfer using point-to-point interconnect

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3493935A (en) * 1967-03-06 1970-02-03 Burroughs Corp Queuer control system
US3676846A (en) * 1968-10-08 1972-07-11 Call A Computer Inc Message buffering communication system
DE2629498B1 (de) * 1976-06-30 1977-10-06 Siemens Ag Schaltungsanordnung fuer zyklisch arbeitende, dynamische speichereinrichtungen, insbesondere in fernsprechvermittlungsanlagen
US4203154A (en) * 1978-04-24 1980-05-13 Xerox Corporation Electronic image processing system
US4220990A (en) * 1978-09-25 1980-09-02 Bell Telephone Laboratories, Incorporated Peripheral processor multifunction timer for data processing systems
JPS5552582A (en) * 1978-10-09 1980-04-17 Fujitsu Ltd Data processing system
US4334287A (en) * 1979-04-12 1982-06-08 Sperry Rand Corporation Buffer memory arrangement
WO1980002755A1 (en) * 1979-06-05 1980-12-11 Burroughs Corp General purpose data buffer
US4535420A (en) * 1979-09-26 1985-08-13 Sperry Corporation Circular-queue structure
JPS57203276A (en) * 1981-06-09 1982-12-13 Nippon Telegr & Teleph Corp <Ntt> Information storage device
US4435780A (en) * 1981-06-16 1984-03-06 International Business Machines Corporation Separate stack areas for plural processes
US4507760A (en) * 1982-08-13 1985-03-26 At&T Bell Laboratories First-in, first-out (FIFO) memory configuration for queue storage
US4499576A (en) * 1982-08-13 1985-02-12 At&T Bell Laboratories Multiplexed first-in, first-out queues
US4482956A (en) * 1982-11-04 1984-11-13 International Business Machines Corporation Parallel queueing method
US4590468A (en) * 1983-03-10 1986-05-20 Western Digital Corporation Token access controller protocol and architecture
US4569041A (en) * 1983-03-17 1986-02-04 Nec Corporation Integrated circuit/packet switching system
US4642797A (en) * 1983-11-10 1987-02-10 Monolithic Memories, Inc. High speed first-in-first-out memory
US4612636A (en) * 1984-12-31 1986-09-16 Northern Telecom Limited Multiple channel depacketizer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19732626C2 (de) * 1996-12-02 2002-08-01 Hewlett Packard Co Verfahren zum Verarbeiten eines komprimierten Datenstromes

Also Published As

Publication number Publication date
JP2539614B2 (ja) 1996-10-02
US4949301A (en) 1990-08-14
EP0241129A3 (en) 1990-05-30
EP0241129A2 (de) 1987-10-14
JPS62221057A (ja) 1987-09-29
EP0241129B1 (de) 1995-09-13
ATE127945T1 (de) 1995-09-15
DE3751514D1 (de) 1995-10-19

Similar Documents

Publication Publication Date Title
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE69131436T2 (de) Netzanpassungseinrichtung mit als logische FIFOs gestalteten Speichern zur Übertragung und Empfang von Datenpaketen
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69519926T2 (de) Verfahren und vorrichtung zum einhalten der transaktionssteuerung und zur unterstützung von verzögerten antworten in einer busbrücke
US5133062A (en) RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
DE69519117T2 (de) Ein Rechnersystem
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE69131477T2 (de) Netzwerkanpassungseinrichtung
DE69838387T2 (de) Verfahren und vorrichtung in einem paketenleitweglenkungsschalter um den zugriff zu einem gemeinsamen speicher auf verschiedenen datenraten zu steuern
DE69133569T2 (de) Netzschnittstelle
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE4121446C2 (de) Terminal-Server-Architektur
DE3789104T2 (de) Netzwerkübertragungsadapter.
EP0619036B1 (de) Verfahren und anordnung zur datenverarbeitung in nachrichtennetzwerkstationen
DE69622960T2 (de) Verfahren und Vorrichtung zur Übertragung und Verarbeitung virtueller Befehle
DE3787908T2 (de) Serielle Übertragungssteuerungsvorrichtung.
DE3587910T2 (de) Peripheres Interface-System.
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
DE69736872T2 (de) Datenverarbeitungssystem
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE3688408T2 (de) Drucker-magnetbanddatenverbindungsprozessor.
DE69032723T2 (de) FIFO mit variablem Zuweisungszeiger
DE69214702T2 (de) Speicherzugriff für die Datenübertragung in einer Ein-Ausgabevorrichtung

Legal Events

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