DE69332327T2 - Überwachung von zirkulierenden Zeigern - Google Patents

Überwachung von zirkulierenden Zeigern

Info

Publication number
DE69332327T2
DE69332327T2 DE69332327T DE69332327T DE69332327T2 DE 69332327 T2 DE69332327 T2 DE 69332327T2 DE 69332327 T DE69332327 T DE 69332327T DE 69332327 T DE69332327 T DE 69332327T DE 69332327 T2 DE69332327 T2 DE 69332327T2
Authority
DE
Germany
Prior art keywords
pointers
pointer
circulating
target
wraparound
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
DE69332327T
Other languages
English (en)
Other versions
DE69332327D1 (de
Inventor
Christopher Gordon Mcharg
Kenneth Nicholas Schaff
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.)
AT&T Corp
Original Assignee
AT&T Corp
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 AT&T Corp filed Critical AT&T Corp
Publication of DE69332327D1 publication Critical patent/DE69332327D1/de
Application granted granted Critical
Publication of DE69332327T2 publication Critical patent/DE69332327T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)
  • Computer And Data Communications (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Eye Examination Apparatus (AREA)
  • Lock And Its Accessories (AREA)
  • Hardware Redundancy (AREA)

Description

  • Querverweis auf zusammenhängende Anmeldung Die vorliegende Anmeldung hängt mit der EP-A-0581 486 zusammen, die im folgenden als "HBPS" bezeichnet wird und gleichzeitig mit der vorliegenden Anmeldung eingereicht wurde.
  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft das Gebiet der Betriebsmittelzuteilung in Computersystemen und computergesteuerten Systemen und insbesondere das Gebiet der Überwachung von Umlaufzeigern zur Sicherstellung der Validität.
  • Allgemeiner Stand der Technik
  • Bei Bemühungen, die Geschwindigkeit und den Durchsatz von verschiedenen Systemen, insbesondere von Paketvermittlungssystemen, zu vergrößern, werden Umlaufzeiger verwendet. Diese Systeme speichern Daten an einer Adresse, auf die ein Umlaufzeiger zeigt, und vermitteln dann den Zeiger, anstatt die Daten durch das System zu vermitteln. Umlaufzeigerverfahren vergrößern die Vermittlungsgeschwindigkeit, da weniger Daten durch das System bewegt werden (d. h. ein Zeiger statt eines gesamten Pakets).
  • Zum Beispiel umfaßt eine in HBPS offengelegte Paketvermittlung mit großer Bandbreite eine Vielzahl von Eingangsports, die jeweils eine erste Vielzahl von Zeitschlitzen umfassen; eine Vielzahl von Ausgangsports, die jeweils eine zweite Vielzahl von Zeitschlitzen umfassen; und eine Vielzahl von Nachrichten-Pufferspeichern, deren Größe jeweils größer oder gleich der größten erwarteten Nachricht ist; alles ist dabei durch einen Bus verbunden. Ein Puffer- Manager, der mit den Eingangsports und mit den Ausgangsports verbunden ist, wählt einen Umlaufzeiger auf einem der Nachrichten-Pufferspeicher als Reaktion auf die Empfangsbenachrichtigung eines ankommenden Pakets während eines oder mehrerer Zeitschlitze auf einem der Eingangsports. Der Puffer-Manager liefert den gewählten Zeiger zu dem Empfangs-Eingangsport, der Eingangsport sichert die Zieladresse aus der Nachricht und verwendet den Umlaufzeiger, um die ankommende Nachricht aus dem ankommenden Zeitschlitz bzw. den ankommenden Zeitschlitzen in den gewählten Nachrichten- Pufferspeicher zu schreiben.
  • Wenn der Schreibvorgang in den Nachrichten- Pufferspeicher abgeschlossen ist, liefert der Eingangsport den Umlaufzeiger und die Zieladresse zu einem mit den Eingangsports und den Ausgangsports verbundenen Router. Der Router wählt als Reaktion auf die Zieladresse einen der Vielzahl von Ausgangsports und liefert den Umlaufzeiger zu dem gewählten Ausgangsport. Der Ausgangspuffer verwendet den Umlaufzeiger zum Abrufen der Nachricht aus dem Nachrichtenpuffer und sendet die Nachricht durch den entsprechenden Zeitschlitz bzw. die entsprechenden Zeitschlitze. Der Ausgangsport liefert den Umlaufzeiger dann zu dem Manager, damit er wieder verwendet werden kann.
  • Bei dem oben beschriebenen System oder in einem Softwaresystem, das Umlaufzeiger verwendet, besteht das Risiko, daß ein Umlaufzeiger dupliziert werden oder verloren gehen kann. Eine kleine Spannungsänderung, eine Komponentenschwäche, ein Programmierungsfehler oder dergleichen, die in großen komplexen Systemen regelmäßig auftreten, können sich auf ein Bit oder viele Bit in einem Zeiger auswirken, wodurch eine Duplikation oder ein Verlust eines Zeigers verursacht wird. Wenn ein Umlaufzeiger verlorengeht, dann besteht ein Speicher-Betriebsmittel, auf das nicht zugegriffen werden kann. Wenn ein Umlaufzeiger dupliziert wird, dann erfolgen mehrfache Schreibvorgänge in dieselbe Stelle im Speicher und Daten werden zu dem falschen Ziel gelenkt oder verfälscht.
  • Deshalb besteht ein Problem in der Technik darin, daß es kein Verfahren zur Durchsetzung der Gültigkeit von Umlaufzeigern gibt.
  • EP-A-0 492 025 beschreibt einen FIFO-Pufferspeicher zur Verwendung in der Ausgangswarteschlange eines Paketvermittlungsnetzes. Jedem Ausgangsport ist eine jeweilige Speicherzugangssteuerung zugeordnet. Jede Speicherzugangssteuerung ist mit jedem Eingangsport verbunden. Die Speicherzugangssteuerung, die einem bestimmten Ausgangsport zugeordnet ist, empfängt alle ankommenden Pakete, die für diesen Port bestimmt sind, und speichert die Pakete in angrenzenden Speicherstellen, die die FIFO-Pufferwarteschlangen bilden. Anstatt die Pakete zu speichern, kann der FIFO als Alternative zum Speichern von Zeigern auf die in einem anderen Speicher gespeicherten Pakete verwendet werden. Diese Veröffentlichung erwähnt das Risiko, daß bestimmte Entwürfe von Paketvermittlungen den Verlust von Paketen verursachen können, wenn nicht genug interne Betriebsmittel verfügbar sind, um eine große Anzahl zu einem gegebenen Zeitpunkt ankommender Pakete zu behandeln. Die Architektur des Pufferspeichers ist so ausgelegt, daß Paketverluste vermieden werden.
  • EP-A-0 422 910 beschreibt mehrere, auf Speichern basierende Paketvermittlungen mit hoher Kapazität. Bei einer ersten Ausführungsform sind mehrere Eingangsports mit einem zentralisierten Warteschlangenspeicher verbunden; der Speicher ist mit mehreren Ausgangsports und einem Verarbeitungsmittel verbunden. Jeder Eingangsport enthält einen Eingangspuffer. Jeder Ausgangsport enthält einen Ausgangspuffer. Pakete werden an den Eingangsports empfangen und in die entsprechenden Eingangspuffer eingelesen. Sobald ein Paket an dem Eingangspuffer empfangen wird, wird das Paket über einen parallelen Bus mit "N-Bit" zu einem zentralisierten Warteschlangenspeicher transferiert. Das Paket wird dann zu einem jeweiligen Ausgangspuffer transferiert, der gemäß einer Adresse gewählt wird, die mit dem Paket empfangen wird, und dann seriell aus der Vermittlung herausgetaktet. Umlaufzeiger können zur Verwaltung des Zentralspeichers verwendet werden.
  • Kurze Darstellung der Erfindung
  • Ein Verfahren und System gemäß der Erfindung werden in den unabhängigen Ansprüchen dargelegt.
  • Dieses Problem wird gelöst und ein technischer Fortschritt in der Technik erzielt durch eine Zeigerüberwachungsvorrichtung, die die Gültigkeit von Umlaufzeigern durchsetzt. Ein Zielzeiger-Generator in der Zeiger-Überwachungsvorrichtung erzeugt einen oder mehrere Zielzeiger in einem vordefinierten Umfang der Menge von Umlaufzeigern und vergleicht die Zielzeiger mit Umlaufzeigern. Eine erste Zeitsteuerung wird gesetzt, und wenn ein Zeiger nicht innerhalb einer im voraus spezifizierten Zeit durch die Zeigerüberwachungsvorrichtung umläuft, das heißt, kein Umlaufzeiger mit einem Zielzeiger übereinstimmt, bevor die Zeitsteuerung abläuft, dann ist ein Zeiger verloren gegangen und es wird ein Fehler gemeldet. Wenn ein Umlaufzeiger mit einem Zielzeiger übereinstimmt, wird der Zielzeiger unterdrückt, indem er aus der Menge von Umlaufzeigern entfernt wird. Danach wird eine weitere Zeitsteuerung gesetzt, um zu bestimmen, ob weitere in der Menge von Umlaufzeigern mit dem Zielzeiger übereinstimmen. Wenn ein weiterer Zeiger übereinstimmt, dann liegen mehrfache Zeiger auf dieselbe Stelle im Speicher vor und alle Duplikatzeiger werden unterdrückt. Nach dem Ablauf der zweiten Zeitsteuerung werden die Zielzeiger zu der Menge von Umlaufzeigern hinzugefügt. Dieser Prozeß wird mit neuen Zielzeigern wiederholt, so daß die Gültigkeit der gesamten Menge von Umlaufzeigern verifiziert wird. Vorteilhafterweise kann die Anzahl von in einer im voraus spezifizierten Zeitspanne geprüften Zeigern eine Funktion des Systemstaus sein.
  • Kurze Beschreibung der Zeichnung
  • Fig. 1 ist ein Blockschaltbild einer beispielhaften Ausführungsform der vorliegenden Erfindung im Kontext eines Puffer-Managers, wie in HBPS beschrieben;
  • Fig. 2 ist ein Diagramm einer Überwachungsschaltung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • Fig. 3 ist ein Zustandsdiagramm der zulässigen Zustände und der Übergänge zwischen Zuständen in dem Automaten von Fig. 2; und
  • Fig. 4 und 5 sind Flußdiagramme des Flusses der Steuerung einer Überwachungsschaltung gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • Fig. 1 ist ein Blockschaltbild eines Puffer-Managers 100, einschließlich einer Überwachungsschaltung 110 gemäß dem Ausführungsbeispiel der vorliegenden Erfindung. Der Puffer-Manager ist dem Puffer-Manager 208 ähnlich, Fig. 12 von HBPS, ist jedoch für die Zwecke der vorliegenden Anmeldung vereinfacht. Der Puffer-Manager 100 teilt Umlaufzeiger zum Speichern paketierter Daten, die aus einem ankommenden Bus empfangen werden, zu. Der Zeiger kann dann zu einem Router weitergegeben werden, der dann das Ziel bestimmt und den Zeiger zu einem Ausgang weitergibt. Der Ausgang verwendet dann den Zeiger zum Lesen der Daten aus dem Puffer und zum Verteilen der Daten gemäß dem Ziel. Der Ausgang gibt dann den Zeiger an den Puffer-Manager zurück. Dieses System wird in HBPS ausführlicher beschrieben. Die Überwachungsschaltung gemäß der vorliegenden Erfindung ist jedoch sehr viel allgemeiner anwendbar als dieses konkrete Ausführungsbeispiel, und diese Ausführungsform soll auf keinerlei Weise einschränkend sein.
  • Der Puffer-Manager 100 umfaßt eine FIFO-Steuerung 112, eine Überwachungsschaltung 110 und einen Speicher-FIFO 114, der Umlaufzeiger speichert, bis sie von dem System verwendet werden. Die FIFO-Steuerung 112 steuert das Lesen und das Beschreiben des FIFO 114 als Reaktion auf Zeigeranforderungen auf der Eingangsleitung 118 und Anforderungen zum Rückgeben von Zeigern auf der Leitung 140. Die Zeiger-Überwachungsvorrichtung 110 setzt die Zeigergültigkeit durch, wie in Verbindung mit Fig. 2 nachfolgend weiter beschrieben wird. Der FIFO 114 umfaßt einen RAM, der zum Zeitpunkt der Systeminitialisierung über die Prozessorschnittstelle 116 initialisiert wird. Die Prozessorschnittstelle 116 umfaßt einen Bus, der mit einem Mikroprozessor verbunden ist (nicht gezeigt), so wie es in der Technik bekannt ist, der die Initialisierung und Aktualisierungen des FIFO 114 bereitstellt. Die Prozessorschnittstelle 116 wird auch zum Abliefern von Meldungen von durch die Zeiger-Überwachungsvorrichtung 110 gefundenen Fehlern verwendet, wie später beschrieben werden wird.
  • Anforderungen von Zeigern werden auf der Zeiger- Anforderungsleitung 118 von der FIFO-Steuerung 112 empfangen. Als Reaktion bewirkt die FIFO-Steuerung 112 das Senden einer Pop-Operation über die Pop- Adressenleitung 120 zu dem Zeiger-FIFO 114. Der Zeiger- FIFO 114 liefert den Zeiger zu dem Bus 122 für zugeteilte Zeiger, und eine Gültig-Leitung 124 wird von der FIFO-Steuerung 112 gesetzt. In der Technik bekannte Paritätsprüfungen können an diesem Punkt durchgeführt werden.
  • Zurückkehrende Zeiger kommen auf dem Bus 126 für zurückkehrende Zeiger an, wenn die Gültig-Leitung 128 gesetzt ist. Im Kasten 130 erfolgt eine erste Prüfung des Umfangs des Zeigers, so wie es in der Technik bekannt ist. Diese Prüfung unterdrückt Zeiger, die auf Stellen außerhalb des Bereichs des Pufferspeichers zeigen. Wenn diese Prüfung bestanden wird, wird der Zeiger über den Bus 130 zu der Überwachungsschaltung 110 geliefert und eine weitere Gültig-Leitung 134 wird gesetzt.
  • Die Überwachungsschaltung 110 setzt die Gültigkeit von Umlaufzeigern durch, indem sie einen oder mehrere Zielzeiger mit einem im voraus spezifizierten Umfang erzeugt und die Zielzeiger mit Zeigern vergleicht, die durch die Überwachungsschaltung umlaufen, d. h. mit Zeigern, die nach Verwendung zurückkehren. Wenn ein Zeiger innerhalb einer im voraus spezifizierten Zeit nicht angetroffen wird, dann wird angenommen, daß der Zeiger verloren gegangen ist, und es wird ein Fehler gemeldet. Wenn ein Zeiger angetroffen wird, wird er unterdrückt, so daß er aus dem Umlauf entfernt wird. Danach wird eine zweite Zeitsteuerung gesetzt, um zu bestimmen, ob der Zeiger nochmals angetroffen wird. Wenn der Zeiger nochmals angetroffen wird, dann werden alle angetroffenen Zeiger unterdrückt, und es wird ein Fehler gemeldet. Nachdem die zweite Zeitsteuerung abläuft, wird der erzeugte Zeiger dann als ein Umlaufzeiger auf den Zeiger-FIFO 114 herauf geschoben. Die Überwachungsschaltung 110 erzeugt dann einen weiteren oder weitere Zielzeiger und führt dieselben Prüfungen an diesen neuen Zielen durch. Dieses Verfahren wird fortwährend wiederholt, wobei neue Zielzeiger erzeugt werden usw., so daß die Überwachungsschaltung 110 die gesamte Menge von Umlaufzeigern prüft.
  • Nachdem die Überwachungsschaltung 110 ihre Prüfungen jedes Zielzeigers durchführt, legt die Überwachungsschaltung 110 den Zeiger dann auf den Datenbus 136 und setzt die Push-Anforderungsleitung 138 zu der FIFO-Steuerung 112. Die FIFO-Steuerung 112 sendet die nächste Adresse über den Push-Adressenbus 142 zu dem FIFO 114, und der FIFO 114 schreibt den empfangenen Zeiger in die zugewiesene Speicherstelle. Wenn eine hohe Nachfrage nach Zeigern besteht, d. h. viele Umlaufzeiger zu einem gegebenen Zeitpunkt verwendet werden, informiert die FIFO-Steuerung 112 die Überwachungsschaltung 110 über die System-Stau-Leitung 144. Die Überwachungsschaltung 110 reagiert durch Erzeugen weniger Zielzeiger und nimmt somit weniger Systemzeit in Anspruch.
  • Nunmehr mit Bezug auf Fig. 2 ist eine Überwachungsschaltung 110 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung gezeigt. In Fig. 2 enthält die Überwachungsschaltung 110 einen Zeiger- Generator 202, der Zielzeiger mit einem im voraus spezifizierten Umfang erzeugt und die erzeugten Zielzeiger zu einem inhaltsadressierbaren RAM 204 liefert. Der inhaltsadressierbare RAM 204 speichert die Zielzeiger in vorbestimmten Speicherstellen, die hier als Zeiger-Ziele 206 gekennzeichnet sind. Wenn ein Zeiger auf dem Zeiger-Rückkehr-Bus 132 zurückgegeben wird, und die Gültig-Leitung 134 gesetzt ist, wird der zurückgegebene Zeiger auch zu einer Vielzahl von Komparatoren 208 geliefert. Zielzeiger werden außerdem zu den Komparatoren 208 in den inhaltsadressierbaren RAM 204 geliefert. Wenn ein Zielzeiger mit einem zurückkehrenden Zeiger übereinstimmt, dann wird ein entsprechender Automat 210 erhöht, wodurch bewirkt wird, daß der entsprechende Automat 210 in einen gültigen Zustand übergeht. Nach einer vorbestimmten Zeit bestimmt die Steuereinheit 211, welches der Zeiger-Ziele angetroffen wurde. Die Steuereinheit 211 umfaßt einen Automaten, einschließlich kombinatorischer Logik 212, eines Registers 214 und einer Rückkopplungsschleife 215, wie in der Technik bekannt ist.
  • Wenn der auf dem Zeiger-Rückkehr-Bus 132 gelieferte Zeiger mit keinem der Zielzeiger übereinstimmt, was durch die kombinatorische Logik 212 bestimmt wird, dann geschieht nichts, um zu verhindern, daß die Gültig- Leitung 134 gesetzt wird. Die Gültig-Leitung 134 setzt die Push-Anforderung durch das OR-Gatter 220 und der Zeiger wird auf dem Datenbus 136 zu dem FIFO 114 (Fig. 1) geliefert.
  • Wenn der Zeiger mit einem der Zielzeiger übereinstimmt, dann setzt der Komparator 208 die Leitung 222, die den Automaten 210 erhöht und bewirkt, daß das OR-Gatter 224 die Push-Block-Leitung 226 setzt. Das Setzen der Push- Block-Leitung 226 bewirkt, daß das AND-Gatter 228 das Gültig-Signal blockiert, wodurch der Zeiger auf dem Zeiger-Rückkehr-Bus 132 unterdrückt wird, so daß verhindert wird, daß der Zeiger auf dem Rückkehrbus 132 zu dem FIFO 114 (Fig. 1) zurückkehrt und wiederverwendet wird. Nach einer vorbestimmten Zeitspanne prüft die kombinatorische Logik 212 die Automaten 210, um zu bestimmen, ob alle Zielzeiger angetroffen wurden. Wenn nicht, wird ein Fehlerzustand gemeldet.
  • Danach wird eine zweite Zeitsteuerung gesetzt. Da alle Zielzeiger unterdrückt wurden, wurde, wie oben beschrieben, wenn ein weiterer Umlaufzeiger mit einem Zielzeiger übereinstimmt, dann ein Duplikatzeiger gefunden. Der Automat 210 erhöht sich und geht somit zu dem Duplikat-Zustand über, und die kombinatorische Logik 212 kann einen Fehlerzustand melden. Nachdem die zweite Zeitsteuerung abläuft, bewirkt die Steuereinheit 213, daß jeder Zielzeiger durch den Selektor 218 auf die Datenleitung 136 geschrieben wird, und das Register 214 setzt die Push-Anforderung und schiebt dadurch den Zielzeiger auf den FIFO 114 (Fig. 1). Danach erfolgt die Verarbeitung der nächsten Menge von Zielzeigern. Die Verarbeitung wird fortgesetzt, bis alle gültigen Zeiger geprüft sind; dann beginnt die Verarbeitung von Neuem.
  • Nunmehr mit Bezug auf Fig. 3 ist das Diagramm eines Automaten gezeigt, wobei die drei Zustände der Automaten 210 von Fig. 2 dargestellt sind. Bei diesem Ausführungsbeispiel der Erfindung gibt es drei Zustände: gelöscht 300 (00), gültig 310 (01) und Duplikat 320 (11). Die Verarbeitung beginnt in dem Gelöscht-Zustand 300. Wenn ein zurückkehrender Zeiger mit dem erzeugten Zeiger übereinstimmt, schreitet die Verarbeitung zu dem Gültig-Zustand 310 voran. Wenn der Zielzeiger während der zweiten vorbestimmten Zeit nicht nochmals gefunden wird, dann bewirkt ein Rücksetzen, daß der Zustand wieder zu gelöscht 300 zurückwechselt. Wenn während der vorbestimmten Zeit ein zweiter Zeiger angetroffen wird, dann geht der Zustand zu dem Duplikat-Zustand 320 über. Die Verarbeitung geht von dem Duplikat-Zustand 320 zu dem Duplikat-Zustand 320 immer dann über, wenn ein weiterer Zeiger angetroffen wird, der mit einem Zielzeiger übereinstimmt. Letztendlich bewirkt ein Rücksetzen, daß der Zustand von dem Duplikat-Zustand 320 wieder zu dem Gelöscht- Zustand 300 zurückwechselt.
  • Nunmehr mit Bezug auf Fig. 4 ist die Verarbeitung gemäß dem Ausführungsbeispiel der vorliegenden Erfindung in der Steuerung von Fig. 2 gezeigt. Die Verarbeitung beginnt bei 400; beginnend im Kasten 402 werden die Zielzeiger in den inhaltsadressierbaren RAM 204 geladen. Im Kasten 404 wird der Automat zurückgesetzt, und im Kasten 406 wird dann eine Zeitsteuerung gesetzt.
  • In der Entscheidungsraute 408 wird geprüft, ob der Zeiger, der zurückgegeben wird, gleich einem der erzeugten Zeiger ist. Wenn der zurückgegebene Zeiger gleich einem der erzeugten Zeiger ist, dann schreitet die Verarbeitung zum Kasten 410 voran, in dem der Automat erhöht wird, und dann schreitet die Verarbeitung zum Kasten 412 voran, in dem der Rückkehrzeiger unterdrückt wird.
  • Die Verarbeitung sowohl von der Entscheidungsraute 408 als auch dem Kasten 412 wird zu der Entscheidungsraute 414 fortgesetzt, indem bestimmt wird, ob die Zeitsteuerung abgelaufen ist. Wenn die Zeitsteuerung nicht abgelaufen ist, dann kehrt die Verarbeitung wieder zu der Entscheidungsraute 408 zurück. Wenn in der Entscheidungsraute 414 die Zeitsteuerung abgelaufen ist, dann schreitet die Verarbeitung zu der Entscheidungsraute 416 voran, in der bestimmt wird, ob alle ersten Zustandsbit in dem Automaten 210 gesetzt sind. Wenn nicht alle Automatenbit gesetzt sind, dann wurde ein Fehler angetroffen und die Verarbeitung wird im Kasten 418 fortgesetzt, in dem eine Fehlerroutine aufgerufen wird. Die Verarbeitung wird durch den Verbinder A nach Fig. 5 fortgesetzt.
  • Nunmehr mit Bezug auf Fig. 5 wird von dem Verbinder A aus im Kasten 500 eine Zeitsteuerung gesetzt. In der Entscheidungsraute 502 wird bestimmt, ob ein Zeiger, der zurückgegeben wird, gleich einem der Ziele in dem inhaltsadressierbaren RAM ist. Wenn der zurückgegebene Zeiger gleich einem in dem adressierbaren RAM ist, dann schreitet die Verarbeitung zu dem Kasten 504 voran, in dem der Automat wiederum erhöht wird. Die Verarbeitung schreitet zum Kasten 506 voran, in dem der Zeiger unterdrückt wird.
  • Die Verarbeitung sowohl von der Entscheidungsraute 502 als auch dem Kasten 506 wird zu der Entscheidungsraute 508 fortgesetzt, in der bestimmt wird, ob die Zeitsteuerung abgelaufen ist. Wenn die Zeitsteuerung nicht abgelaufen ist, dann kehrt die Verarbeitung zu der Entscheidungsraute 502 zurück.
  • Wenn in der Entscheidungsraute 508 die Zeitsteuerung abgelaufen ist, dann schreitet die Verarbeitung zu der Entscheidungsraute 510 voran, in der bestimmt wird, ob etwaige zweite Zustandsbit in dem Automaten 210 gesetzt sind. Wenn ein zweites Bit gesetzt ist, dann schreitet die Verarbeitung zum Kasten 512 voran, in dem eine Fehlerroutine aufgerufen wird, und nach der Fehlerroutine aus dem Kasten 512, oder wenn in der Entscheidungsraute 510 keine zweiten Bit in dem Automaten 210 gesetzt sind, schreitet der Prozeß zu dem Kasten 514 voran, in dem die erzeugten Zeiger in den Zeiger-FIFO geschoben werden, und die Verarbeitung endet bei 516.
  • Es versteht sich, daß die oben beschriebenen Ausführungsformen lediglich ein Beispiel für die Erfindung sind, und daß viele Varianten von Fachleuten konzipiert werden können, ohne vom Schutzumfang der Erfindung abzuweichen. Zum Beispiel wurde die vorliegende Erfindung in Verbindung mit einer spezifischen Schaltungsimplementierung geschrieben. Die vorliegende Erfindung ist gleichermaßen anpaßbar, um auf dem Gebiet der Software als Audit von Umlaufzeigern angewandt zu werden.

Claims (15)

1. Verfahren zum Sicherstellen der Gültigkeit von Umlaufzeigern in einem System mit einem adressierbarem Speicher (114) und einer Menge von Umlaufzeigern, die Adressen des adressierbaren Speichers entsprechen, gekennzeichnet durch die folgenden Schritte:
(a) Herstellen eines Zielzeigers (206) als einen alleinigen Zeiger auf eine gewählte Speicherstelle in dem adressierbaren Speicher (114); und
(b) Entfernen aller Zeiger aus der Menge von Umlaufzeigern, die während einer vorbestimmten Zeitspanne auf die gewählte Speicherstelle im Speicher zeigen.
2. Verfahren nach Anspruch 1, wobei der Schritt des Herstellens eines Zielzeigers weiterhin durch folgendes gekennzeichnet ist: Erzeugen einer Vielzahl von Zielzeigern (206), die jeweils einer der gewählten Speicherstellen in dem adressierbaren Speicher (114) entsprechen.
3. Verfahren nach Anspruch 2, weiterhin dadurch gekennzeichnet, daß die Anzahl von Zielzeigern (206) in der Vielzahl von Zielzeigern eine Funktion der Anzahl der zu einem gegebenen Zeitpunkt verwendeten Umlaufzeiger ist.
4. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch den folgenden Schritt: Bestimmen, ob einer der Menge von Umlaufzeigern während eines ersten Teils der vorbestimmten Zeit mit dem Zielzeiger (206) übereinstimmt, und wenn keiner der Menge von Umlaufzeigern während des ersten Teils der vorbestimmten Zeit mit dem Zielzeiger (206) übereinstimmt. Melden eines Fehlers.
5. Verfahren nach Anspruch 4, weiterhin gekennzeichnet durch den folgenden Schritt: nach der Entfernung aller Zeiger aus der Menge von Umlaufzeigern, die auf die Speicherstelle in dem Speicher (114) zeigen. Hinzufügen des Zielzeigers (206) zu der Menge von Umlaufzeigern.
6. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch den folgenden Schritt: Bestimmen, ob jeder der Menge von Umlaufzeigern während der vorbestimmten Zeitspanne mit dem Zielzeiger (206) übereinstimmt, und Melden eines Fehlers, wenn etwaige der Menge von Umlaufzeigern während der vorbestimmten Zeitspanne mit dem Zielzeiger übereinstimmen.
7. Verfahren nach Anspruch 1, weiterhin gekennzeichnet durch den folgenden Schritt: nach der Entfernung aller Zeiger aus der Menge von Umlaufzeigern, die auf die Speicherstelle in dem Speicher (114) zeigen. Hinzufügen des Zielzeigers (206) zu der Menge von Umlaufzeigern.
8. Verfahren nach Anspruch 1, weiterhin dadurch gekennzeichnet, daß die Schritte für jede Speicherstelle in dem Speicher (114) wiederholt werden.
9. Verfahren nach Anspruch 1, weiterhin dadurch gekennzeichnet, daß
die Menge von Umlaufzeigern jeweils eine eindeutige Speicherstelle in dem adressierbaren Speicher (114) identifizieren;
Schritt (a) davon das Erzeugen des Zielzeigers (206) in einem im voraus spezifizierten Umfang von Speicherstellen des adressierbaren Speichers (114) umfaßt;
und das Verfahren weiterhin die folgenden Schritte umfaßt:
als Reaktion auf das Bestimmen, daß der Zielzeiger (206) während einer ersten vorbestimmten Zeit mit einem der Menge von Umlaufzeigern übereinstimmt, Entfernen des einen übereinstimmenden Umlaufzeigers aus der Menge von Umlaufzeigern;
als Reaktion auf das Bestimmen, daß der Zielzeiger (206) während einer zweiten vorbestimmten Zeit mit einem oder mehreren weiteren der Menge von Umlaufzeigern übereinstimmt. Entfernen des weiteren einen bzw. der weiteren mehreren übereinstimmenden Umlaufzeiger aus der Menge von Umlaufzeigern; und
Hinzufügen des Zielzeigers (206) zu der Menge von Umlaufzeigern.
10. Verfahren nach Anspruch 9, weiterhin dadurch gekennzeichnet, daß der Schritt des Erzeugens eines Zielzeigers (206) das Erzeugen einer Vielzahl von Zielzeigern umfaßt, die jeweils eine eindeutige der gewählten Speicherstellen in dem adressierbaren Speicher (114) umfassen.
11. Verfahren nach Anspruch 9, weiterhin gekennzeichnet durch den folgenden Schritt: Wiederholen der Schritte für jeden der Menge von Umlaufzeigern.
12. System zum Sicherstellen der Gültigkeit von Umlaufzeigern in einem System mit einem adressierbarem Speicher (114) und einer Menge von Umlaufzeigern, die jeweils einer eindeutigen Adresse in dem adressierbaren Speicher entsprechen, gekennzeichnet durch:
ein Mittel (202) zum Erzeugen eines Zielzeigers (206) mit einem im voraus spezifizierten Umfang;
ein Mittel (208, 210, 212), das auf das Bestimmen, daß der Zielzeiger während einer ersten vorbestimmten Zeitspanne mit einem der Umlaufzeiger übereinstimmt, reagiert, um den übereinstimmenden Umlaufzeiger zu entfernen/- ein Mittel (208, 210, 212), das auf das Bestimmen, daß der Zielzeiger während einer zweiten vorbestimmten Zeitspanne mit einem weiteren der Umlaufzeiger übereinstimmt, reagiert, um den weiteren übereinstimmenden Umlaufzeiger zu entfernen;
ein Mittel (213, 218, 214), das auf Ablaufen der zweiten Zeitspanne reagiert, um den Zielzeiger zu den Umlaufzeigern hinzuzufügen.
13. System nach Anspruch 12, weiterhin gekennzeichnet durch: ein Mittel (204) zum Speichern des Zielzeigers, wobei das Speichermittel einen inhaltsadressierbaren Direktzugriffsspeicher (RAM) (206) und einen Komparator (208) umfaßt, wobei der Komparator (208) den Zielzeiger in dem RAM mit jedem der Umlaufzeiger vergleicht.
14. System nach Anspruch 13, weiterhin dadurch gekennzeichnet, daß das Mittel, das auf das Bestimmen, daß der Zielzeiger während einer ersten vorbestimmten Zeitspanne mit einem der Umlaufzeiger übereinstimmt, reagiert, mit dem Komparator (208) verbundene kombinatorische Logik (224, 228) zum Abblocken des übereinstimmenden Umlaufzeigers als Reaktion auf den Empfang eines Signals (222) aus dem Komparator (208) umfaßt.
15. System nach Anspruch 13, weiterhin dadurch gekennzeichnet, daß das Mittel, das auf das Bestimmen, daß der Zielzeiger mit einem weiteren der Umlaufzeiger übereinstimmt, reagiert, mit dem Komparator (208) verbundene kombinatorische Logik (224, 228) zum Abblocken des übereinstimmenden Umlaufzeigers als Reaktion auf den Empfang eines Signals (222) aus dem Komparator umfaßt.
DE69332327T 1992-07-24 1993-07-13 Überwachung von zirkulierenden Zeigern Expired - Fee Related DE69332327T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/919,462 US5388238A (en) 1992-07-24 1992-07-24 System and method for monitoring the validity of circulating pointers in a FIFO memory

Publications (2)

Publication Number Publication Date
DE69332327D1 DE69332327D1 (de) 2002-10-31
DE69332327T2 true DE69332327T2 (de) 2003-04-17

Family

ID=25442126

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69332327T Expired - Fee Related DE69332327T2 (de) 1992-07-24 1993-07-13 Überwachung von zirkulierenden Zeigern

Country Status (6)

Country Link
US (1) US5388238A (de)
EP (1) EP0581485B1 (de)
JP (1) JP3537159B2 (de)
AT (1) ATE225103T1 (de)
CA (1) CA2096876C (de)
DE (1) DE69332327T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE502576C2 (sv) * 1993-11-26 1995-11-13 Ellemtel Utvecklings Ab Feltolerant kösystem
JP2550921B2 (ja) * 1994-08-26 1996-11-06 日本電気株式会社 環状バッファ制御装置
JP3815948B2 (ja) * 2000-04-20 2006-08-30 シャープ株式会社 Fifoメモリ制御回路
US6696854B2 (en) * 2001-09-17 2004-02-24 Broadcom Corporation Methods and circuitry for implementing first-in first-out structure
US7051145B2 (en) * 2001-12-10 2006-05-23 Emulex Design & Manufacturing Corporation Tracking deferred data transfers on a system-interconnect bus
US7080169B2 (en) * 2001-12-11 2006-07-18 Emulex Design & Manufacturing Corporation Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
US8214531B2 (en) * 2002-10-24 2012-07-03 Emulex Design & Manufacturing Corporation Network configuration synchronization for hardware accelerated network protocol
US7249173B2 (en) 2002-10-25 2007-07-24 Emulex Design & Manufacturing Corporation Abstracted node discovery
CN1314238C (zh) * 2003-07-16 2007-05-02 中兴通讯股份有限公司 实现嵌入式系统中任务间自适应通讯的方法
US7562260B2 (en) * 2006-04-04 2009-07-14 International Business Machines Corporation Method and system for performing recovery of a single-threaded queue

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751697A (en) * 1986-09-05 1988-06-14 American Telephone And Telegraph Company, At&T Bell Laboratories Distributed packet switching sytem
EP0259117B1 (de) * 1986-09-05 1994-01-26 AT&T Corp. Verteiltes Paketvermittlungssystem
US5233603A (en) * 1988-04-21 1993-08-03 Nec Corporation Packet switch suitable for integrated circuit implementation
DE68924191T2 (de) * 1988-04-21 1996-05-09 Nippon Electric Co Für integrierte Schaltungsausführung geeignete Paketvermittlung.
GB8821410D0 (en) * 1988-09-13 1988-10-12 Int Computers Ltd Data processing system
US5027326A (en) * 1988-11-10 1991-06-25 Dallas Semiconductor Corporation Self-timed sequential access multiport memory
US5027330A (en) * 1988-12-30 1991-06-25 At&T Bell Laboratories FIFO memory arrangement including a memory location fill indication
EP0422910A3 (en) * 1989-10-10 1991-11-06 American Telephone And Telegraph Company High capacity memory based packet switches
DE69031220T2 (de) * 1990-12-20 1998-02-12 Ibm Hochgeschwindigkeitsmultiport-FIFO-Pufferschaltung

Also Published As

Publication number Publication date
CA2096876C (en) 1997-09-30
EP0581485A3 (de) 1995-05-24
DE69332327D1 (de) 2002-10-31
EP0581485B1 (de) 2002-09-25
CA2096876A1 (en) 1994-01-25
JP3537159B2 (ja) 2004-06-14
EP0581485A2 (de) 1994-02-02
US5388238A (en) 1995-02-07
JPH06178374A (ja) 1994-06-24
ATE225103T1 (de) 2002-10-15

Similar Documents

Publication Publication Date Title
DE69031266T2 (de) Übertragungsarchitektur für Hochgeschwindigkeitsnetzwerk
DE69636029T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE69331311T2 (de) Datenkommunikationssystem und Verfahren
DE3300261C2 (de)
DE2854485C2 (de) Datenverarbeitungsanlage
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69329607T2 (de) Programmierte Ethernetanpassungseinrichtung mit frühzeitiger Unterbrechung für Beschleunigung von Datenübertragung
DE69116953T2 (de) Methode und Vorrichtung zur dynamischen Ermittlung und Wegfindung für nichtgleichförmigen Verkehr, in parallelen, gepufferten, mehrstufigen Verbindungsnetzwerken
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
CH627580A5 (de) Austauschanordnung zur bereitstellung von austauschadressen fuer den betrieb eines pufferspeichers in einer speicherhierarchie.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3418248A1 (de) Datenverarbeitungsanlage mit einer anordnung zur datenuebertragung zwischen einem speicher und einem zentralen prozessor
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
DE3011552A1 (de) Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer
DE2717702A1 (de) Speicher-zugriffs-steuersystem
DE69032723T2 (de) FIFO mit variablem Zuweisungszeiger
DE69332327T2 (de) Überwachung von zirkulierenden Zeigern
DE3855739T2 (de) Nachrichtenübertragungssystem und -verfahren
EP0031485A1 (de) Prioritätseinrichtung für eine Einheit einer Datenverarbeitungsanlage mit einer Daten-Sammelleitung
EP0701348A2 (de) Paketübertragungssystem
DE69033412T2 (de) Datenübertragungssteuervorrichtung für Parallelverarbeitungssysteme
EP0698847A1 (de) Verfahren für einen Programmpaketaustausch in einem Mehrrechnersystem und Rechner dafür
DE69724732T2 (de) Atomare Operation in Fernspeicher und Vorrichtung zur Durchführung der Operation
EP0555456B1 (de) Verfahren zur datenübertragung und datenverarbeitungsanlage mit verteilten rechnerknoten

Legal Events

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