DE69332327T2 - Überwachung von zirkulierenden Zeigern - Google Patents
Überwachung von zirkulierenden ZeigernInfo
- 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
Links
- 238000012544 monitoring process Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 2
- 230000000903 blocking effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 3
- 239000000872 buffer Substances 0.000 description 25
- 238000012545 processing Methods 0.000 description 23
- 229910003460 diamond Inorganic materials 0.000 description 13
- 239000010432 diamond Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1992
- 1992-07-24 US US07/919,462 patent/US5388238A/en not_active Expired - Lifetime
-
1993
- 1993-05-25 CA CA002096876A patent/CA2096876C/en not_active Expired - Fee Related
- 1993-07-12 JP JP19387093A patent/JP3537159B2/ja not_active Expired - Fee Related
- 1993-07-13 AT AT93305491T patent/ATE225103T1/de not_active IP Right Cessation
- 1993-07-13 DE DE69332327T patent/DE69332327T2/de not_active Expired - Fee Related
- 1993-07-13 EP EP93305491A patent/EP0581485B1/de not_active Expired - Lifetime
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 |