DE69427129T2 - Fehlertolerantes warteschlangenvorrichtung und verfahren dafür - Google Patents

Fehlertolerantes warteschlangenvorrichtung und verfahren dafür

Info

Publication number
DE69427129T2
DE69427129T2 DE69427129T DE69427129T DE69427129T2 DE 69427129 T2 DE69427129 T2 DE 69427129T2 DE 69427129 T DE69427129 T DE 69427129T DE 69427129 T DE69427129 T DE 69427129T DE 69427129 T2 DE69427129 T2 DE 69427129T2
Authority
DE
Germany
Prior art keywords
pointer
pointers
test
memory
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69427129T
Other languages
English (en)
Other versions
DE69427129D1 (de
Inventor
Lennart Haulin
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE69427129D1 publication Critical patent/DE69427129D1/de
Publication of DE69427129T2 publication Critical patent/DE69427129T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Description

    Technisches Gebiet der Erfindung
  • Allgemein betrifft die vorliegende Erfindung ein Warteschlangensystem zum Wählen von Speicherpositionen in einem Speicher zum Ausführen von Schreiboperationen auf diesen von einer on-line geführten Unbelegtliste von Adressen zu freien Speicherpositionen in dem Speicher. Das Warteschlangensystem berechnet auch Adressen zum Sammeln von Daten, die vorher in dem Speicher gespeichert sind.
  • In einer bestimmten Anwendung dieses Warteschlangensystems puffert es Daten in eine Paketvermittlungsstelle mit einem gemeinsamen Pufferspeicher für einen oder mehrere Ports der Vermittlungsstelle. Das System verwendet eine Anzahl von Zeigern, die Speicherpositionen in dem Pufferspeicher identifizieren. Die Zeiger werden zwischen verschiedenen logischen Listen zum Anzeigen der Operation, die für die Daten in der Pufferposition ausgeführt werden soll, auf die verwiesen wird.
  • Die Erfindung betrifft ferner Verfahren zum Testen von Speicherpositionen bzw. Zeigern (Pointern) im Zusammenhang mit Warteschlangensystemen der voranstehen erwähnten Art.
  • Beschreibung des verwandten Sachstandes
  • Wenn Speicher in Computern und anderen Geräten verwendet werden bestimmt eine Adressenberechnung die physikalischen Positionen, die zum Speichern eines bestimmten Datenwerts verwendet werden sollen. Am einfachsten wird ein direktes Adressieren, eine Entscheidung oder Berechnungen darüber, welche Adresse verwendet werden soll, beim Kompilieren eines Programms oder im Zusammenhang mit einem Hardwaredesign für Einrichtungen mit festen Programmen ausgeführt. Eine indirekte Adressierung und verbundene Listen (Linked Lists) sind Beispiele von flexibleren Adressierungsverfahren. Hierbei wird die Adresseninformation in anderen Adressenpositionen oder in Zählern etc. gespeichert. Die Adressenberechnung ist somit nicht fest, sondern verändert sich während einer Ausführung für eine Anpassung auf die Menge und auf das Format der gespeicherten Daten.
  • Einfachen FIFO Speicher mit einer direkten Adressierung werden am häufigsten mit Zählern zum Inkrementieren von Schreib- und Leseadressen realisiert oder in ihrer einfachsten Form werden sie mit festen Adressen in Schieberegistern realisiert. Im Zusammenhang mit einer dynamischen indirekten Adressierung werden Adressenzeiger verwendet, die ebenfalls in Speichern gespeichert sind. Am Systemstart werden diese Zeiger initialisiert, um so einen gültigen Satz von Zeigern zu erhalten, mit denen das System arbeitet. Die Funktion des Systems ist dann davon abhängig, dass die Zeigerinitialisierung während eines Betriebs nicht gestört wird. Bitfehler in einem Zeigerwert führen zu einer andauernden Fehlfunktion in dem System. Damit das System in einem kontinuierlichen Betrieb mit hohen Anforderungen hinsichtlich der Zuverlässigkeit sind, stellt dies ein Problem dar.
  • Große Halbleiterspeicher sind traditionell mit einer Redundanz zum Verbessern der Ausbeute der Herstellung ausgerüstet. Mit Redundanz ist hier die Zeilen und Spalten von Ersatzschaltungen gemeint, die in die Schaltung eingeschleift werden können, um gewöhnliche Schaltungen zu ersetzen. Dies wird durch Auslösen von Sicherungen oder durch andere Mittel zum permanenten Rekonfigurieren der Schaltung in der Fabrik erhalten.
  • Ein Testen wird durchgeführt, um Schaltungen zu bestimmen, die einer Reparatur bedürfen. Wenn Herstellungsfehler auftreten und derart sind, dass sie durch Verbinden bzw. Einschleifen von Ersatzschaltungen bzw. übrigen Schaltungen in die Schaltung repariert werden können wird die Art von Herstellungsfehler bestimmt und die Reparatur wird ausgeführt.
  • Für Halbleiterspeicher ohne eine Redundanz wird eine Abbildung zwischen einer Adresse und einer physikalischen Position in dem Speicher bestimmt, während der Speicher entworfen wird. Für Halbleiterspeicher mit einer Redundanz wird diese Abbildung teilweise während des Entwurfs eingestellt und während einer Herstellung abgeschlossen, wenn fehlerhafte Speicherpositionen repariert werden sollen.
  • Für den Fall von Plattenspeichern wird eine Testprozedur verwendet, bevor die Platte in einen Betrieb genommen wird, und zwar während eines Formatierungsbetriebs zum Bestimmen der Abschnitte auf der Platte, die verwendet werden können. Das Ziel besteht darin eine Platte mit schlechten Abschnitten verwenden zu können. Die Fehlerhypothese, die angewendet wird, besteht darin, dass bestimmte Positionen auf der Platte aufgrund der Tatsache, dass die Herstellung nicht perfekt ist, schlecht sein können. Die Aufteilung in gute und schlechte Sektoren kann während des Formatierungsprozesses ausgeführt werden und es wird angenommen, dass sie nicht geändert werden muss. Das Risiko für Plattenadressierungsfehler muss während der Formatierungsprozedur nicht berücksichtigt werden.
  • In bestimmten Systemen werden Fehlerkorrekturcodes (ECC = Fehlerkorrekturcodes oder Error Correction Codes) zum Ermitteln einer Fehlertoleranz gegenüber Bitfehlern während eines Betriebs verwendet. Diese Fehler, die während eines Betriebs auftreten, können weich (soft) oder hart sein, d. h. vorübergehende Störungen oder feste Fehler. Die Anzahl von Bits, die in jedem Wort korrigiert werden können, ist begrenzt. Der am häufigsten verwendete Code kann einzelne Bitfehler korrigieren und Doppelt-Bitfehler erfassen. Seit kurzem ist gezeigt worden, dass eine Kombination von Fehlerkorrekturcodes und Ersatzzeilen ein Fehler-tolerantes System bereitstellt, das eine Reparaturfähigkeit von Herstellungsfehlern in Halbleiterspeichern mit einem sehr hohen Niveau aufweist, siehe IEEE Transactions on Computers, Vol. 41, # 9 September 1992, Seiten 1078-1087.
  • Eine Reparatur von Einrichtungen bevor sie die Herstellung verlassen erfordert eine Testvorrichtung und ein Gerät für eine Sicherungsprogrammierung (eine andauernde Änderung von Verbindungen in einer elektrischen Schaltung zum Beeinflussen seiner Funktion - auch als Sicherung (fuse) oder Anti- Sicherung (antifuse) bezeichnet), auf der Herstellungslinie in der Fabrik, und einen Herstellungsprozess mit Sicherungskomponenten. Dies impliziert erhöhte Kosten aufgrund einer Verlängerung des Herstellungszyklusses. Der Grad eines Erfolges bezüglich der Reparaturoperationen ist durch die Tatsache begrenzt, dass sie auf der Verwendung auf Ersätzzeilen und Spalten beruhen, und durch die Unflexibilitat bezüglich der Behandlung von sporadischen einzelnen Fehler.
  • Die Verwendung von Fehlerkorrekturcodes berücksichtigt isolierte einzelne Fehler. Für eine vollständige Effizienz wird jedoch eine Kombination von irgendeiner Art von System mit redundanten Zeilen benötigt. Gemäß dem Stand der Technik impliziert dies eine Sicherungsprogrammierung und ein Testen, bevor die Schaltungen die Fabrik verlassen.
  • Die US 4,049,956 stellt ein Beispiel des Standes der Technik hinsichtlich einer Fehlererfassung während eines Betriebs bereit und beschreibt eine Überwachung eines Speichers, der in einem in einem Zeitmultiplizierungsmodus arbeitet. Ankommende Datenwörter werden vorübergehend in den jeweiligen Stufen eines Mehrfachstufenspeichers gespeichert und für eine weitere Revision ausgelesen. Das Testen wird ausgeführt, ohne dass der Speicher aus einem normalen Betrieb herausgenommen wird. Der Speicher besteht aus einer Anzahl von n Schritten, die periodisch in einem sich wiederholenden Abtastzyklus von Schlitzen, in die binäre Wörter eingeschrieben und auf den jeweiligen Stufen ausgelesen werden, adressiert werden. Wörter, die in eine Speicherstufe geschrieben werden, werden in dem unmittelbar folgenden Zyklus ausgelesen Fehlfunktionen werden mit Hilfe von Paritätsüberprüfungen erfasst.
  • Die US 3,863,227 beschreibt die Auswahl und das Testen von jedem Element von einzelnen elektronischen Steuerelementen, die zum Zugreifen auf die verschiedenen Kernelemente in einem Kernspeicher verwendet werden, wenn der Speicher on-line ist. Somit ergibt sich die Frage bezüglich eines on-lines Tests eines Speichersystems, aber nicht dahingehend, ob der Speicher Elemente speichert, die in dem Speicher enthalten sind. Keine Verwendung von Paritätstest wird beschrieben.
  • Die US 5,016,248 beschreibt ein Warteschlangensystem für einen Pakettransfer ohne eine Initialisierung oder Wartung zu erwähnen.
  • Zusammenfassung
  • Eine erste Aufgabe der vorliegenden Erfindung besteht darin, eine Fehlertoleranz durch ein kontinuierliches Aufrechterhalten der Zeigerbehandlung in einem Warteschlangensystem mit einer dynamischen indirekten Adressierung bereitzustellen, so dass das System immer die Fähigkeit zum Zurücksetzen eines richtigen Satzes von Zeigern aufweist, und zwar unabhängig von dem Zustand, in dem das System geendet hat.
  • Eine zweite Aufgabe besteht darin, gegenüber Fehler in Speichern, die während eines Betriebs des Systems auftreten können, eine Fehlertoleranz zu erreichen.
  • Eine dritte Aufgabe der Erfindung besteht darin, die Ausbeute bei der Herstellung von großen Halbleiterspeichern zu verbessern, indem eine redundante Schaltung in einer neuen Weise organisiert und verwendet wird. Durch Verwenden einer Fehlertoleranz können Speicher mit kleinen Herstellungsfehlern in einer richtigen Weise arbeiten und müssen nicht zurückgewiesen werden. Durch geeignetes Einstellen des Zurückweisungsgrads während der Testprozedur, um so eine Ersatzkapazität aufrechtzuerhalten, kann das Speicherbehandlungssystem sich auch von Fehlern erholen, die während eines Betriebs auftreten.
  • Gemäß der Erfindung werden die voranstehend erwähnten Aufgaben teilweise oder insgesamt in der folgenden Weise gelöst.
  • In einem Warteschlangensystem, welches in der Einleitung angegeben wurde, werden die Speicherpositionen einer Testprozedur ausgesetzt, die periodisch für jede Speicherposition in unbelegten Zyklen während eines Betriebs des Systems ausgeführt wird. Das Ergebnis der Prozedur wird für eine Aufrechterhaltung bzw. Wartung der Unbelegtliste verwendet. Die Adressen, die für einen Test gewählt werden, werden als von dem System gesteuert von einer Systemverwendung freigegeben. In einer Ausführungsform wird der Test einer Speicherposition ausgeführt, nachdem darauf gewartet wurde, dass sie von dem System von einer Verwendung freigegeben worden ist, und eine Rückkehr auf die Systemverwendung wird nur dann ausgeführt, wenn die Speicherposition den Test aushält.
  • In einer anderen Ausführungsform werden Adressen auf die Speicherpositionen durch Kopieren der Inhalte der Speicherposition, die getestet werden soll, an eine freie oder fehlerfreie Speicherposition freigegeben. Daraufhin wird die Adressenberechnung für eine Verwendung durch die neue Speicherposition umgeleitet. Schließlich wird die getestete Speicherposition nur dann auf eine Systemverwendung zurückgebracht, wenn sie den Test aushält.
  • In einer weiteren Ausführungssform werden Speicherpositionen, die den Test nicht ausgehalten haben, bei Gelegenheiten erneut getestet, wenn der gesamte Speicherblock, der die fragliche Speicherposition enthält, in dem System von einer Verwendung freigegeben wird.
  • In noch einer weiteren Ausführungsform arbeitet eine Speichertestlogik zum Ausführen des Testvorgangs einer bestimmten Speicherposition in einem ersten Modus, bei dem sämtliche Adressen in einem auch von der Testlogik gesteuerten off-line Test getestet werden, während dem ein Zählen der Anzahl von Speicherpositionen mit korrigierbaren Fehler ausgeführt wird und bei dem existierende nicht korrigierbare Fehler angezeigt werden, und in einem zweiten Modus on-line, während dem die Speichertestlogik nur Daten zu der Speicherposition, die gerade getestet wird, überprüft, und andere Speicherpositionen dazu gebracht werden, mit Daten während eines normalen Betriebs als Adresse, die von dem System gesteuert wird, zu arbeiten.
  • In einem Warteschlangensystem gemäß einer bestimmten Anwendung, die ebenfalls in der Einleitung angedeutet wurde, sichert eine Wartungsfunktion kontinuierlich, dass das System einen und nur einen Zeiger auf jede gültige Paketposition in dem Pufferspeicher umfasst.
  • In einer zweiten Ausführungsform der bestimmten Anwendung werden Kopien des gleichen Zeigers in einer gesteuerten Weise behandelt, indem eine Mehrfach-Zeigerliste verwendet wird, in der die Anzahl von Kopien, die in dem System von jeweiligen Zeigern enthalten sind, aufgezeichnet werden und in der eine Wartungsfunktion überprüft, dass die Anzahl von Kopien eines Zeigers mit dem Wert übereinstimmt, der in der Mehrfach- Zeigerliste für den jeweiligen Zeiger aufgezeichnet ist.
  • In dieser Ausführungsform werden die folgenden logischen Listen für die jeweiligen Zeigerkategorien abgesehen von der Mehrfach-Zeigerliste verwendet: eine Unbelegtliste für unbelegte Zeiger, Ausgangswarteschlangenlisten für eingereihte Zeiger in einer Warteschlange zu Ausgangsports, und eine Abblockungsliste für abgeblockte Zeiger. Die Wartungsfunktion überprüft zyklisch sämtliche Zeiger und vorhandenen Pufferpositionen, jeweils einzeln, wobei eine Initiierungsprozedur vorausgeht. Während dieser Prozedur wird der Zeiger außer Betrieb genommen, indem der Zeiger aus dem Fluss der Zeiger herausgefiltert wird, die von den Ausgangswarteschlangenlisten auf die unbelegte Liste zurückgebracht werden, bis das Warteschlangensystem bei jeder Kopie des infragestehenden Zeigers geleert worden ist, woraufhin die Anzahl von zurückgegebenen Kopien des verfraglichen Zeigers mit dem Wert in der Mehrfach- Zeigerliste verglichen wird.
  • In einer ersten weiteren Entwicklung dieser Ausführungsform weist die Wartungsfunktion einen ersten Betriebsmodus auf, der nach der Initiierungsprozedur und aktiviert entweder durch die Tatsache, dass mehr als eine bestimmte Grenzanzahl von Zeigern als Folge der Initiierungsprozedur gefunden worden sind, die jeweilige Anzahl von Kopien davon nicht mit dem Wert in der Mehrfach-Zeigerliste für den fraglichen Zeiger übereinstimmen, oder durch ein externes Signal die Zeiger auf die Unbelegtliste zurückbringt, den Wert in der Mehrfach-Zeigerliste auf keine mehrfachen Kopien zurücksetzt und in der Abblockungsliste keine Abblockung von Zeigern andeutet.
  • In einer zweiten weiteren Ausführungsform weist die Wartungsfunktionen einen ersten Betriebsmodus auf, der nach der Initiierungsprozedur und aktiviert durch die Tatsache, dass entweder mehr als eine bestimmte Grenzanzahl von verlorenen oder Mehrfach-Zeigern als Folge der Initiierungsprozedur festgestellt worden sind, oder durch ein externes Signal, eine Kopie jedes Zeigers auf die Unbelegtliste zurückbringt, und in der Abblockungsliste keine Abblockung von Zeigern anzeigt.
  • Die Wartungsfunktion kann möglicherweise nur einen weiteren Betriebsmodus, d. h. einen zweiten Modus aufweisen. In diesem Fall wird dieser zweite Betriebsmodus dadurch aktiviert, dass der erste Wartungsmodus für sämtliche Zeiger durchlaufen worden ist. Daraufhin wird die Initiierungsprozedur für jeden Zeiger, jeweils einen zu jeder Zeit, neu ausgeführt und ein Pufferspeichertest wird mit einer niedrigen Priorität für nicht-abgeblockte Speicherpositionen, identifiziert von dem fraglichen Zeiger, in die Warteschlange eingereiht. Sämtliche anderen nicht-abgeblockten Speicherpositionen werden mit Systemdaten während des Tests trainiert. Das Ergebnis des Speichertests wird zum Zurückbringen der Zeiger auf die unbelegte Liste verwendet, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber er wird von einer Verwendung in dem System abgeblockt, wenn der Pufferspeichertest eine Fehlfunktion des Gebiets, das von dem Zeiger definiert wird, anzeigt. Die abgeblockten Zeiger werden einem zweiten Pufferspeichertest des gleichen Typs wie der erste ausgesetzt, vorausgesetzt dass jeder Testdatenbetrieb in der Warteschlange solange aufrechterhalten wird, wie Systemdaten irgendwo in dem Pufferspeichesegment einschließlich der Positionen, die von abgeblockten Zeigern identifiziert worden sind, gespeichert wird. Das Ergebnis des zweiten Tests wird zum Zurückbringen des Zeigers auf die unbelegte Liste verwendet, wenn der Test ein richtiges Ergebnis ergeben hat, wohingegen abgeblockte Zeige auf die unbelegte Liste zuerst zurückgegeben werden, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests, die eine zweite Grenzanzahl übersteigt, akzeptiert worden sind.
  • Für den Fall, dass die Wartungsfunktion eine Anzahl von verschiedenen Betriebsmoden aufweist, kann sie einen zweiten Betriebsmodus aufweisen, der dadurch aktiviert wird, dass der erste Modus durch sämtliche Zeiger hindurchgelaufen ist, woraufhin die Initiierungsprozedur wiederum für die Zeiger ausgeführt wird. Ein einfacher Schreib- und Lesetest wird für eine Ausführung auf Pufferspeicherpositionen, die von Zeigern identifiziert werden, deren Anzahl von Kopien nicht mit dem Wert in der Mehrfach-Zeigerliste übereinstimmt, in die Warteschlange eingereiht. Das Ergebnis des Schreib- und Lesetests wird zum Zurückbringen des fraglichen Zeigers auf die Unbelegtliste verwendet, wenn der Test ein richtiges Ergebnis ergeben hat, aber um ihn von einer Verwendung in dem System abzublocken, wenn der Test eine Fehlfunktion innerhalb des Bereichs andeutet, der von dem fraglichen Zeiger identifiziert wird.
  • Ein dritter Betriebsmodus wird dadurch aktiviert, dass der zweite Modus für sämtliche Zeiger durchlaufen worden ist, woraufhin die Initiierungsprozedur noch einmal für die nicht- abgeblockten Zeiger ausgeführt wird. Ein Pufferspeichertest zum Erfassen von Typen von Fehlfunktionen, die nicht durch einen einfachen Schreibe- und Lesetest in dem zweiten Betriebsmodus erfasst worden sind, wird für eine Ausführung auf den Pufferspeicherpositionen, die von dem initiierten Zeiger identifiziert werden, in die Warteschlange eingereiht, wobei die Speicherpositionen mit Testdaten trainiert werden, wohingegen sämtliche anderen nicht-abgeblockten Pufferspeicherpositionen während des Tests für jeden abgeblockten Zeiger mit Systemdaten trainiert werden. Das Ergebnis des Tests wird zum Zurückbringen des Zeigers auf die unbelegte Liste zurückzubringen, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber um ihn von einer Verwendung in dem System heraus abzublocken, wenn der Pufferspeichertest eine Fehlfunktion in dem Bereich andeutet, der von dem Zeiger identifiziert wird. Ein vierter Betriebsmodus wird dadurch aktiviert, dass der dritte Modus durch sämtliche Zeiger hindurchgelaufen ist, woraufhin auch die vorher abgeblockten Zeiger für ein Testen durch zyklisches Ausführen der Initiierungsprozedur für sämtliche Zeiger, jeweils einzeln, akzeptiert werden. Ein Pufferspeichertest der gleichen Art wie in dem dritten Modus wird für nicht-abgeblockte Zeiger angewendet, wohingegen früher abgeblockte Zeiger in dem gleichen Typ von Pufferspeichertest ausgesetzt werden, und zwar dadurch konditioniert, dass jede Testdatenoperation in der Wartschlange solange aufrechterhalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment gespeichert sind, das die Positionen enthält, die von dem früher abgeblockten fraglichen Zeiger identifiziert werden. Das Ergebnis des Testvorgangs wird in der gleichen Weise wie bei dem dritten Modus für nicht-abgeblockte Zeiger und nicht akzeptierte Tests von früher abgeblockten Zeigern verwendet, wohingegen früher abgeblockte Zeiger auf die Unbelegtliste zuerst, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests, die von einer Grenzanzahl definiert werden, akzeptiert worden sind, zurückgebracht werden.
  • Das Speicherbehandlungssystem gemäß der Erfindung stellt eine dynamische Toleranz gegenüber Herstellungsfehlern bereit, wenn sich das System im Betrieb befindet. Ein Testen und eine Reparatur durch eine Rekonfiguration in der Fabrik wird nicht nötig. Ein Testen wird nach einer abgeschlossenen Herstellung ausgeführt, um zu bestimmen, ob der Speicher eine ausreichende Kapazität für die beabsichtigte Anwendung aufweist oder nicht.
  • Kurzbeschreibung der Zeichnungen
  • Nachstehend wird die Erfindung mit näheren Einzelheiten unter Bezugnahme auf eine Ausführungsform, die auf der beigelegten Zeichnung gezeigt ist, beschrieben. In der Zeichnung zeigt:
  • Fig. 1 sehr schematisch ein Warteschlangensystem gemäß einem der Aspekte der Erfindung:
  • Fig. 2 teilweise als Blockschaltbild eine Ausführungsform einer Paketvermittlungsstelle, in der die verschiedenen Aspekte der Erfindung verwendet werden;
  • Fig. 3 ein Flussdiagramm von Hauptbetriebsmoden, die in einer Wartungsfunktion zum Testen von Adressenzeigern und Pufferspeicherpositionen in der Paketvermittlungsstelle nach Fig. 2 enthalten sind; und
  • Fig. 4-7 Flussdiagramme der jeweiligen Moden der Fig. 3.
  • Ausführliche Beschreibung der Ausführungsformen
  • Fig. 1 zeigt sehr schematisch ein Warteschlangensystem zum Wählen von Speicherpositionen in einem Datenspeicher 2 zum Ausführen von Schreiboperationen, Pfeil 4, auf diesen von einer on-line geführten Unbelegtliste 6 von Adressen auf freie Speicherpositionen in dem Speicher 2 und zum Berechnen von Adressen zum Sammeln, Pfeil 8, von Daten, die vorher in dem Speicher 2 gespeichert wurden. Die zuletzt erwähnten Adressen werden an Listen 12 über einen verwendeten Speicherplatz in dem Speicher 2 transferiert, Pfeil 10.
  • Gemäß einem ersten Aspekt der Erfindung werden die Speicherpositionen des Speichers mit Hilfe einer Testlogik 14 einer Testprozedur unterzogen, die periodisch, Pfeil 16, auf jeder Speicherposition während Unbelegtzyklen während eines Betriebs des Systems ausgeführt wird. Die zu testenden Positionen werden mit Hilfe der Adressen, die in Listen 12 enthalten sind, gewählt, Pfeil 18, wobei die gewählten Positionen von einer Systemverwendung gesteuert durch das System freigegeben werden. Das Ergebnis des Tests wird für eine Wartung bzw. Aufrechterhaltung, Pfeil 20, an der Unbelegtliste 6 verwendet.
  • Das Testen einer Speicherposition kann ausgeführt werden, nachdem abgewartet wird, dass sie von einer Systemverwendung freigegeben ist. Alternativ können Adressen zu Speicherpositionen, die getestet werden sollen, durch Kopieren der Inhalte einer derartigen Speicherposition, die getestet werden soll, in eine freie und fehlerfreie neue Speicherposition freigegeben werden. Die Adressenberechnung wird daraufhin zur Verwendung dieser neuen Speicherposition umgeleitet.
  • In beiden Fällen wird eine getestete Speicherposition schließlich an die Systemverwendung, d. h. an die Unbelegtliste 6, nur dann zurückgegeben, wenn sie den Test aushält. Speicherpositionen, die das Testen nicht aushalten, werden bei Gelegenheiten neu getestet, wenn der gesamte Speicherblock einschließlich der fraglichen Speicherposition von einer Verwendung in dem System freigegeben wird.
  • Die Speichertestlogik 14 zum Ausführen des Testvorgangs einer gegebenen Speicherposition kann vorzugsweise in zwei Moden arbeiten.
  • In dem ersten Modus werden sämtliche Adressen in einem off- line Test gesteuert von der Logik getestet, wobei im Verlauf davon ein Zählvorgang der Anzahl von Speicherpositionen mit korrigierbaren Fehler ausgeführt wird und existierende nicht korrigierbare Fehler angezeigt werden.
  • Während dieses Komponententestens wird ein vollständiger Speichertest mit z. B. sogenannten "Marschmustern" ("march patterns") ausgeführt, siehe z. B. "Using March Tests to Test SRAMS", AD J von de Goor, IEEE, Design & Test of Computers, March 93, Vol. 10, No. 1 and "Built in Seif Diagnosis for Repairable Embedded RAM:S", Robert Trenter et al. IEEE Design & Tests of Computers, June 93, Vol. 10, No. 2. Dies wird zum Beseitigen von nicht-betreibbaren Schaltungen durchgeführt. Da das Warteschlangensystem gemäß der Erfindung einen bestimmten Betrag einer Fehlertoleranz anbietet können auch Schaltungen mit fehlerhaften Speicherpositionen als richtig klassifiziert werden. Deshalb wird die Anzahl von Fehlern während des Testvorgangs aufgezeichnet. Wenn die Anzahl von Fehlern kleiner als der eingestellte Zurückweisungsschwellwert ist, dann wird die Komponente akzeptiert.
  • In dem zweiten Modus, der on-line arbeitet, überwacht die Logik 14 nur Daten zu den Speicherpositionen, die gerade getestet werden, und andere Speicherpositionen werden gezwungen mit Daten während eines normalen Betriebs als Adresse, die von dem System gesteuert wird, zu arbeiten.
  • Eine Ausführungsform der Erfindung wird nachstehend mit näheren Einzelheiten beschrieben. In einem Typ einer Paketvermittlungsstelle und unter Bezugnahme auf Fig. 2 wird ein ankommendes Paket, nach einer Analyse der Inhalte in dem Anfangsblock (head) des Pakets in einer Analysierfunktion 30, in eine Speicherposition in einem Pufferspeicher 32, der gemeinsam für die ankommenden Pakete ist, geschrieben. Der Pufferspeicher 32 ist schematisch mit einem ankommenden Paketfluss 34 und einer Anzahl von Ausgangskanälen 36.1 .... 36.n für Paketflüsse, die die Vermittlungsstelle verlassen, gezeigt. Der Fluss von Daten zu der Analysierfunktion 30 zum Ermöglichen dieser Funktion ist mit 34' bezeichnet worden.
  • Der Schreibvorgang wird durch eine Adressenliste 38 geführt, die Adressenzeiger enthält, die auf entsprechende unbelegte Speicherpositionen in dem Speicher 32 verweisen. Diese Adressenliste wird kurz nachstehend auch als die "unbelegte Liste" oder "Unbelegtliste" bezeichnet. Insbesondere weist die Analysierfunktion 30 mit einem Signal, gemäß dem Pfeil 39, die Unbelegtliste 38 an, einerseits einen Zeiger für das fragliche Paket bereitzustellen und andererseits nach einem Schreibvorgang, signalisiert gemäß dem Pfeil 40 von der Unbelegtliste 38 zu dem Pufferspeicher 32, des Pakets in den Pufferspeicher geführt von dem Zeiger den Zeiger an ein Zeigerwarteschlangensystem zu transferieren, das eine Anzahl von FIFO Zeigerwarteschlangen 44, einen für jeden Ausgang 36, enthält.
  • Genauer gesagt wird der Zeiger somit gemäß dem Pfeil 42 von der Unbelegtliste 38 an eine FIFO Zeigerschlange 44.n für einen Vermittlungsstellenausgang 36.n bewegt, der für das Paket gelegt gewählt worden ist, der von der Analyse der Inhalte seines Anfangsblocks gewählt worden ist. Die Auswahl einer Zeigerwarteschlange wird durch ein Steuersignal 45 von der Analysierfunktion 30 zu der fraglichen Zeigerwarteschlange ausgeführt.
  • Der Anfangsblock eines ankommenden Pakets kann mehrere Zieladressen enthalten, d. h. die Inhalte des Pakets können an mehrere Vermittlungsstellenausgänge gesendet werden. In diesem Fall wird der Zeiger an die gewählte Speicherposition in dem Pufferspeicher 32 kopiert, um so viele Zeigern wie die Anzahl von in Frage stehenden Vermittlungsstellenausgängen zu erhalten. Nachstehend wird die Bezeichnung "Mehrfach-Zeiger" für einen Zeiger in einem derartigen Satz von Zeigern, der auf die gleiche Speicherposition in dem Pufferspeicher 32 verweist, verwendet. Diese Mehrfach-Zeiger werden an jede der Zeigerwarteschlangen für die in Frage stehenden Ausgänge geführt.
  • Wenn ein Zeiger, d. h. ein einzelner Zeiger oder ein Mehrfach- Zeiger, als der erste auf seiner FIFO Warteschlange 44.n erschienen ist, wird das Datenpaket, das von dem Zeiger angezeigt wird, gelesen, gemäß einem Pfeil 46.n, und von dem Zeiger von seiner Speicherposition in dem Pufferspeicher 32 an den in Frage stehenden Ausgang 36.n geführt.
  • Danach wird der Zeiger gemäß der Pfeile 48 und 50 an die Unbelegtliste 38 über eine Wartungsfunktion 52 umgeleitet, die nachstehend noch näher beschrieben wird und die Zeiger überwacht, die an die Unbelegtliste 38 zurückgegeben werden sollen. Insbesondere wird der Zeiger an die Unbelegtliste bewegt, wenn er nicht zum Testen von Wartungsfunktion 52 gewählt ist.
  • In der Wartungsfunktion 52 werden Kopien des gleichen Zeigers in einer gesteuerten Weise behandelt. Insbesondere wird dies durch Verwenden einer Mehrfach-Zeigerliste 56 ausgeführt, die in der Wartungsfunktion 52 enthalten ist, in der die Anzahl von Kopien des jeweiligen Zeigers, die in dem System enthalten sind, aufgezeichnet werden. Die Wartungsfunktion 52 überprüft auch, dass die Anzahl von Kopien eines Zeigers mit dem Wert, der in der Mehrfach-Zeigerliste 56 für den jeweiligen Zeiger aufgezeichnet ist, übereinstimmt.
  • In einer nachstehend ausführlicheren Beschreibung von Ausführungsformen der Erfindung wird die Bezeichnung x für einen Zeiger verwendet, der gerade getestet wird, wobei x zu dem Satz von sämtlichen Zeigern gehört. Dementsprechend wird die Pufferspeicherposition in dem Pufferspeicher 32, die von dem Zeiger x angezeigt wird, mit B(x) bezeichnet.
  • Die Wartungsfunktion 52 führt in einer nachstehend noch näher beschriebenen Weise ein Testen von Pufferspeicherpositionen B (x) aus. Für diesen Zweck wird der Zeiger x an eine Testlogik 58 für den Pufferspeicher 32 in Übereinstimmung mit dem Pfeil 60(transferiert. Das Ergebnis des Testbetriebs für die Pufferspeicherposition B (x) wird von der Testlogik 58 an die Wartungsfunktion 52 gemäß dem Pfeil 60" signalisiert.
  • Aus der folgenden Beschreibung wird sich genauso noch näher ergeben, dass dann, wenn dieser Testvorgang eine Fehlfunktion einer Speicherposition anzeigt, der entsprechende Zeiger von einer Verwendung in dem System abgeblockt wird und eine Abblockungsliste 62, die genauso in der Wartungsfunktion 52 enthalten ist, geliefert wird. Die Listen für Mehrfach- und abgeblockte Zeiger können auch in einzelne Liste kombiniert werden.
  • Insbesondere überprüft die Wartungsfunktion 52 zyklisch sämtliche Zeiger und vorhandenen Speicherpositionen, jeweils einzeln, wobei eine Initiierungsprozedur vorangeht. Mit "sämtlichen" Zeigern sind hier sämtliche Zeiger gemeint, die in dem System existieren, d. h. Zeiger, die in der Unbelegtliste 38, den Ausgangswarteschlangen 44, in der Mehrfach-Zeigerliste 56 und in der Abblockungsliste 62 enthalten sind. Während der Initiierungsprozedur wird jeder Zeigerwert, jeweils einzeln, für eine Überprüfung herausgenommen, einerseits dafür, dass die Behandlung von Zeigern des Warteschlangensystems 38, 44 richtig ist und andererseits zum Überprüfen des Datenspeicherbereichs B(x) in dem Pufferspeicher 32, identifiziert von den in Frage stehenden Zeiger.
  • Während der Initiierungsprozedur wird das Warteschlangensystem 38, 44 von dem Zeiger, der sich unter einem Test befindet, und sämtlichen Kopien davon, wenn vorhanden, entleert, woraufhin eine Überprüfung durchgeführt wird, dass die Anzahl von gefundenen Kopien gleich zu dem Wert in der Mehrfach-Zeigerliste 56 für den Zeiger, der sich unter einem Test befindet, ist.
  • Die Wartungsfunktion 52 kann danach in Übereinstimmung mit einem oder mehreren Betriebsmoden arbeiten. Unabhängig von der vorherstehenden Alternative ist die Initiierungsprozedur der erste Schritt von jedem derartigen Betriebsmodus.
  • Unter Bezugnahme auf Fig. 3 und in einer Ausführungsform des Falls, bei dem mehrere Betriebsmoden vorhanden sind, können vier Ebenen 70, 72, 74 und 76 der Wartungsfunktion 52 vorhanden sein. Die unterste Ebene 70 wird mit "Zeigerkonditionierung" bezeichnet und ist nur auf die Zirkulation von Zeigern gerichtet. Die anderen drei sind mit verschiedenen Lese/Schreib-Tests des Pufferspeichers 32 erweitert.
  • Wie erwähnt wird das Warteschlangensystem 38, 40 von sämtlichen Kopien, wenn vorhanden, des Zeigers x während der Initiierungsprozedur geleert. In Nichtechtzeit-Systemen wird dies in mehreren verschiedenen Vorgehensweisen erhalten. In Echtzeit-Systemen ist man gewöhnlicherweise auf das Arbeiten nur mit Zeigern beschränkt, die an die unbelegte Liste 38 zurückgegeben werden.
  • Zum Entleeren eines Echtzeit-Warteschlangensystems der voranstellend erwähnten Art von dem Zeiger x muss zunächst die Unbelegtliste 38 von sämtlichen Kopien, wenn vorhanden, davon entleert werden. Dies wird durch Filtern des Zeigers x aus dem Fluss 48 von zurückgegebenen Zeigern, Schritte 78 in den Fig. 4-7, ausgeführt, um so zu verhindern, dass er in die Unbelegtliste 38 geschrieben wird. Insbesondere wird dieses Filtern dadurch ermöglicht, dass die Wartungsfunktion 52 in Übereinstimmung mit dem Pfeil 78' ein Signal an die Unbelegtliste 38 aussendet, um einen Indikator zu setzen, dass der Zeiger für den Moment der letzte in der Unbelegtliste ist. Mit Hilfe eines Signals 78" ermittelt die Wartungsfunktion 52 danach Information, dass der Indikator die vorderste Position in der Unbelegtliste 38 erreicht hat. Sämtliche Zeiger, die in der Unbelegtliste 38 zu Beginn des Filterungsschritts existiert haben, an Ausgangswarteschlangen 44 geführt worden sind, wird die Unbelegtliste 38 mit Sicherheit von allen Zeigern x entleert sein.
  • Danach müssen die Ausgangswarteschlangen 44 von Kopien, wenn vorhanden, des Zeigers x entleert werden. Dieses Entleeren wird insbesondere dadurch ermöglicht, dass die Wartungsfunktion 52 in Übereinstimmung mit dem Pfeil 79' ein Signal an die Ausgangswarteschlange 44 ausgesendet wird, um einen Indikator zu setzen, dass der Zeiger gerade im Moment der letzte in der jeweiligen Ausgangswarteschlange ist. Mit einem Signal gemäß des Pfeils 79" ermittelt die Wartungsfunktion 52 danach Information von den Ausgangswarteschlangen, dass die so angezeigten Zeiger zuerst in der jeweiligen Schlange geendet haben. Die Wartungsfunktion 52 wartet somit, während sie kontinuierlich Zeiger x aus dem Fluss 58 von zurückgegebenen Zeigern filtert, darauf, dass die Zeiger, die zuletzt in den Ausgangswarteschlangen 44 zu der Zeit angeordnet waren, als das Entleeren der Unbelegtliste 38 geendet hatte, zuerst in der Warteschlange enden sollten. Wenn die langsamste Warteschlange dieses Kriterium erfüllt hat dann ist das System von dem Zeiger x entleert.
  • Danach wird im Schritt 80 in den Fig. 5-7 eine Überprüfung dahingehend ausgeführt, ob die Anzahl von zurückgegebenen Zeigern mit dem Wert für den Zeiger x in der Mehrfach- Zeigerliste 56 übereinstimmt. Wenn dies nicht der Fall ist, wird ein Zeigerfehlersignal erzeugt. Dieses Fehlersignal endet in etwas anderen Maßnahmen in Abhängigkeit von dem Wartungsmodus, der gerade ausgeführt wird. In sämtlichen Moden mit Ausnahme des Modus "Zeigerkonditionierung" wird der Zeigerwert abgeblockt und ein Fehlerzähler, der nicht gezeigt ist, wird inkrementiert, Schritt 82 in den Fig. 5-7. Wenn eine größere Anzahl als eine Anzahl von α-Fehlern gefunden wird, Schritt 84 in den Fig. 5-7, wird der gegenwärtige Wartungsmodus gestoppt, der Fehlerzähler wird auf Null eingestellt und ein Sprung wird zu dem Modus "Zeigerkonditionierung", Pfeil 86 in Fig. 5-7 ausgeführt. Alpha ist der gewünschte Grad einer Toleranz zu dem Fehler in der Mehrfach-Zeigerliste 56. In dem Modus "Zeigerkonditionierung" endet das Zeitfehlersignal nicht in irgendeiner Maßnahme, siehe Fig. 4.
  • Am Start des Systems muss ein richtiger Zeigerersatz für das Warteschlangensystem so schnell wie möglich verfügbar gemacht werden. Deshalb wird die Prozedur "Zeigerkonditionierung" initiiert. Dies kann entweder als Ergebnis eines Zeigerfehlers, der gemäß der obigen Ausführungen auch erscheint oder durch eine Aktivierung mit Hilfe eines externen Signals ausgeführt werden. Mit Zeigerfehler wird hier und nachstehend gemeint, wie voranstehend beschrieben, dass die Anzahl von Kopien eines Zeigers, der während der Initiierungsprozedur zurückgegeben wird, nicht mit der Anzahl, die in der Mehrfach-Zeigerliste für den in Frage stehend Zeiger angegeben ist, übereinstimmt. Sobald der Zeiger überprüft worden ist, wird er in die Unbelegtliste 38 eingeführt und kann dafür verwendet werden, um Pakete in Warteschlangen einzureihen.
  • Wenn sämtliche Zeiger konditioniert worden sind, wird die nächste Wartungsebene 72 für sämtliche Zeiger ausgeführt, was nachstehend mit "Schnelltest" ("Quick Test") bezeichnet wird. Danach geht die Wartungsfunktion 52 in die Wartungsebene 74 über, die nachstehend auch als "Volltest" ("Füll Test") bezeichnet wird, woraufhin eine Ausführung der Wartungsebene 76 "Volltest mit Neutest" ("Füll Test with Retest") gestartet wird, die der gegenwärtige Betriebszustand ist, die jedoch unterbrochen werden kann, wenn ein Zeigerfehler auftritt.
  • Wenn mehrere fehlerhafte Zeiger (Mehrfach-Zeiger oder verlorene Zeiger) als α erfasst werden, wird die Wartungsfunktion 52 immer, wie genauso voranstehend beschrieben worden ist, mit einer "Zeigerkonditionierung" unabhängig von der einen der anderen Wartungsfunktionen, die ausgeführt wird, neu starten. Dies ist in Fig. 3 sowie in den Fig. 5-7 mit Pfeilen 86 angedeutet.
  • Unter Bezugnahme auf die Fig. 4 gibt der Modus 70 "Zeigerkonditionierung" im Schritt 88 jeden Zeiger x an die Unbelegtliste 38 zurück, setzt den Wert in der Mehrfach- Zeigerliste 56 auf "keine Mehrfach-Kopien" und in der Abblockungsliste 62 auf "keine Abblockung". Wenn der letzte Zeiger behandelt worden ist, siehe Schritt 90, wird der Zeigerfehlerzähler auf Null eingestellt, Schritt 92. Der Modus 70 endet daraufhin in den Modus 72, Pfeil 94.
  • Der Modus 72 "Schnelltest" wird somit, unter Bezugnahme auf Fig. 5 dadurch aktiviert, dass der erste Modus 70 durch sämtliche Zeiger gelaufen ist. Die Initiierungsprozedur wird daraufhin für sämtliche Zeiger ausgeführt und ein einzelner Schreib- und Lesetest on-line, Schritt 96, wird für Pufferspeicherpositionen B(x) ausgeführt, die von dem Zeiger x identifiziert worden sind. Wenn dies erforderlich gefunden wird kann dieser Test nach Warten in der Warteschlange mit einer geringen oder niedrigsten Priorität unter den Operationen, die auf dem Pufferspeicher ausgeführt werden können, ausgeführt werden.
  • Das Ergebnis des Schreib- und Lesetests wird verwendet, um so den gegenwärtigen Zeiger an die Unbelegtliste 38 zurückzugeben, wenn der Test ein richtiges Ergebnis ergeben hat, aber um ihn von einer Verwendung in dem System abzublocken und ihn in die Abblockungsliste 62 einzuführen, wenn der Test eine Fehlfunktion innerhalb des Gebiets anzeigt, welches von dem in Frage stehenden Zeiger identifiziert wird. Nach dem letzten Zeiger geht der Test in den Modus 74 über, siehe Schritt 98 und Pfeil 100.
  • Im Gegensatz zu dem off-line Test, der voranstehend beschrieben wurde, bei dem die Testlogik 14 in Fig. 1 sämtliche Daten und sämtliche Adressen zu dem Speicher steuert überprüft, weist die Testlogik 58 in Fig. 2 bei dem on-line Test nur Schreib- und Leserechte zu den Adressenpositionen auf, die durch die Initiierungsprozedur von einer Systemverwendung freigegeben worden sind, wobei das System von einem Zeigerwert entleert wird. Bezüglich sämtlicher nachstehender Beschreibungen wird die Testlogik gezwungen, nur dann zu arbeiten, wenn keine Systemoperationen mit höherer Priorität in Richtung auf den Speicher hin in Frage kommen.
  • In dem einfachen Schreib- und Lesetest in dem Modus 72 gemäß Fig. 5 wird ein erstes Bitmuster in Adressenpositionen geschrieben, die von dem freigegebenen Zeiger identifiziert werden. Sobald dies durchgeführt worden ist, werden diese Positionen zum Testen ausgelesen, dass die Speicherzellen dieses erste Bitmuster speichern können. Daraufhin wird der Verlauf ein zweites Mal wiederholt, dieses Mal mit einem zweiten Bitmuster, welches invers zu dem ersten Muster ist. Wenn gelesene Daten den Schreibdaten nicht entsprechen, wird das Signal 60" in Fig. 2 in der Form eines Fehlersignals erzeugt.
  • Der dritte Betriebsmodus 74 "Volltest" wird, unter Bezugnahme auf Fig. 6 dadurch aktiviert, dass der zweite Modus 72 durch sämtliche Zeiger gelaufen ist und durch erneutes Ausführen der Initiierungsprozedur für die Zeiger, die von dem Modus 72 nicht abgeblockt werden, beginnt. Daraufhin wird ein Pufferspeichertest zum Erfassen von Typen von Fehlfunktionen in eine Warteschlange eingereiht, die durch den einfachen Schreib- und Lesetest in dem zweiten Betriebsmodus nicht erfasst worden sind, wobei die geringste Priorität die Pufferspeicherpositionen B(x) ausgeführt wird, die nicht abgeblockt sind, siehe Schritte 102 und 104. Diese Speicherpositionen werden mit Testdaten trainiert, d. h. beschrieben und gelesen, woraufhin sämtliche anderen Pufferspeicherpositionen, die gerade nicht abgeblockt sind, während des Tests für jeden abgeblockten Zeiger mit Systemdaten trainiert, d. h. beschrieben und gelesen, werden.
  • Das Ergebnis des Tests wird verwendet, um so den Zeiger an die Unbelegtliste 38 zurückzugeben, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber um ihn von einer Verwendung in dem System abzublocken und in die Abblockungsliste 62 einzuführen, wenn der Pufferspeichertest eine Fehlfunktion des Bereichs, der von dem Zeiger identifiziert wird, anzeigt. Nach dem letzten Zeiger geht der Test zu dem Modus 76, siehe Schritt 106 und Pfeil 108.
  • Für den Fall eines vollständigen on-line Tests gemäß des dritten Betriebsmodus 74 sollen auch Fehler in der Adressierungslogik erfasst werden. Normalerweise erfordert dies, dass die Daten, die von den Daten in der Speicherposition B(x) unterschiedlich sind, in sämtliche anderen Adressen geschrieben werden. Gemäß der Erfindung werden Systemdaten in die anderen nicht-abgeblockten Positionen geschrieben und herausgelesen. Dies erfüllt die gleiche Funktion wie die gesteuerten Daten in dem vorher beschriebenen off-line Test. Das Risiko, dass ein Adressierungsfehler vor einer Entdeckung durch das System entfliehen wird, dass unter Umständen gerade auf den gleichen Datenwert schreibt, den die Testlogik für den Test verwendet, in einer Adresse mit einem Adressendekodierungsfehler, der Speicherpositionen unter einem Test überlappt, wird durch kontinuierliches Wiederholen sämtlicher Tests, und dadurch, dass eine Fehlererfassung zum Abblocken des Zeigers ausreichend ist, minimiert. Deshalb wartet die Testlogik darauf, dass die Systemdaten in sämtliche anderen verwendeten Positionen geschrieben worden sind, bevor die Leseüberprüfung ausgeführt wird.
  • Der vierte Betriebsmodus 76 "Volltest mit Neutest" wird, unter Bezugnahme auf Fig. 7, somit durch die Tatsache aktiviert, dass der dritte Modus 74 durch sämtliche Zeiger durchgelaufen ist. Auch die früher abgeblockten Zeiger werden daraufhin für einen Test dadurch akzeptiert, dass die Initiierungsprozedur zyklisch für sämtliche Zeiger, jeweils einzeln, ausgeführt wird. Daraufhin wird ein Pufferspeichertest der gleichen Art wie in dem dritten Modus für nicht-abgeblockte Zeiger angewendet, Schritte 110 und 112. Früher abgeblockte Zeiger werden dem gleichen Typ von Pufferspeichertest, konditioniert dadurch, dass jeder Testdatenbetrieb in der Warteschlange solange aufrechterhalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment enthalten sind, dass den Speicherbereich B(x) enthält, der von dem früher abgeblockten Zeiger x identifiziert wird, vorausgesetzt, Schritt 114. Das Ergebnis des Tests wird in der gleichen Weise wie in dem dritten Modus für nicht-abgeblockte Zeiger und nicht zugelassene Tests von früher abgeblockten Zeigern verwendet, woraufhin früher abgeblockte Zeiger an die Unbelegtliste 38 nicht zurückgegeben werden, bis sie in einer Anzahl von aufeinanderfolgenden Tests akzeptiert worden sind, wobei die Anzahl durch einen Grenzwert β definiert ist.
  • Der vierte Betriebsmodus 76 basiert auf dem Verständnis, dass in einem kontinuierlichen Betrieb auch das Risiko berücksichtigt werden muss, dass Adressierungsfehler von der Speicherposition unter einem Test Systemdaten zerstören können. Deshalb wird von der Testlogik in früher abgeblockten Positionen kein Schreibvorgang zugelassen, bevor das gesamte Segment, in dem Adressierungsfehler auftreten können, von Systemdaten entleert worden ist. Danach wird ein Schreibvorgang mit Systemdaten in sämtlichen anderen Positionen abgewartet, wie in dem dritten Betriebsmodus. Da sämtliche Leseoperationen Daten in fehlerhaften Speichern zerstören können, wird erneut auf ein Entleeren von Systemdaten von dem Speichersegment gewartet, bevor eine Leseüberprüfung für die Speicherpositionen ausgeführt wird, die von dem früher abgeblockten Zeiger identifiziert werden, der sich nun unter einem erneuten Test befindet.
  • In einer Ausführungsform des Falls eines einzelnen Betriebsmodus gibt es im wesentlichen die Frage einer Zusammenfassung der zwei letzten Betriebsmoden gemäß der Fig. 6 und 7.
  • Insbesondere wird ein Test des Pufferspeichers 32 in eine Warteschlange nach der Initiierungsprozedur mit einer geringsten Priorität eingereiht, um für die Pufferspeicherpositionen ausgeführt zu werden, die von nicht- abgeblockten Zeigern identifiziert werden, siehe Schritte 102 und 104 in Fig. 6. Diese Speicherpositionen werden mit Testdaten trainiert. Sämtliche anderen nicht-abgeblockten Pufferspeicherpositionen werden während der Testprozedur mit Systemdaten trainiert. Danach wird das Ergebnis des Tests in einer Weise verwendet, dass der Zeiger an die Unbelegtliste 38 zurückgegeben wird, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber er wird von einer Verwendung in dem System abgeblockt, wenn der Pufferspeichertest eine Fehlfunktion in dem Bereich anzeigt, der von dem Zeiger definiert wird.
  • Abgeblockte Zeiger werden an die Abblockungsliste 62 geliefert und dem gleichen Typ von Pufferspeichertest unterzogen, konditioniert dadurch, dass jeder Testdatenbetrieb in der Warteschlange solange aufrechterhalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment gespeichert sind, dass die Positionen enthält, die von abgeblockten Zeigern identifiziert werden, siehe Schritt 114 in Fig. 7. Danach muss das Ergebnis des Tests so verwendet werden, dass der Zeiger an die Unbelegtliste 38 zurückgegeben wird, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat. Abgeblockte Zeiger werden an die Unbelegtliste 38 zuerst zurückgegeben, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests, größer als der Grenzwert β, akzeptiert worden sind.

Claims (33)

1. Warteschlangensystem zur
Auswahl von Speicherpositionen in einem Speicher (2) zum Ausführen von Schreiboperationen (4) auf diesen von einer on-line geführten Unbelegtliste (6) von Adressen auf freie Speicherpositionen in dem Speicher, und
Berechnung von Adressen zum Sammeln (8) von Daten, die vorher in dem Speicher (2) gespeichert wurden,
dadurch gekennzeichnet, dass
die Speicherpositionen einer Testprozedur ausgesetzt werden, die periodisch (16) für jede Speicherposition in Unbelegtzyklen während eines Betriebs des Systems ausgeführt wird, und dessen Ergebnis für eine Wartung der Unbelegtliste (6) verwendet wird, wobei die Adressen, die für einen Test gewählt sind, von einer Systemverwendung wie von dem System gesteuert freigegeben werden.
2. System nach Anspruch 1, ferner dadurch gekennzeichnet, dass der Test einer Speicherposition ausgeführt wird, nachdem darauf gewartet wurde, dass sie von dem System von einer Verwendung freigegeben worden ist, und eine Rückgabe an die Systemverwendung ausgeführt wird, nur wenn die Speicherposition den Test aushält.
3. System nach Anspruch 1, ferner dadurch gekennzeichnet, dass Adressen zu den Speicherpositionen durch Kopieren der Inhalte der Speicherposition, die getestet werden soll, an eine freie und fehlerfreie Speicherposition freigegeben werden, woraufhin die Adressenberechnung für eine Verwendung durch die neue Speicherposition umgeleitet wird, und schließlich die getestete Speicherposition an eine Systemverwendung zurückgegeben wird, nur wenn sie den Test aushält.
4. System nach Anspruch 1, ferner dadurch gekennzeichnet, dass Speicherpositionen, die einen Test nicht ausgehalten haben, bei Gelegenheiten neu getestet werden, wenn der gesamte Speicherblock, der die in Frage stehende Speicherposition enthält, von einer Verwendung in dem System freigegeben wird.
5. System nach Anspruch 1, ferner dadurch gekennzeichnet, dass
eine Speichertestlogik (14) zum Ausführen des Testvorgangs einer bestimmten Speicherposition in folgenden Moden arbeitet:
in einem ersten Modus, bei dem sämtliche Adressen in einem off-line Test gesteuert durch die Testlogik (14) getestet werden, wobei dabei ein Zählvorgang der Anzahl von Speicherpositionen mit korrigierbaren Fehlern ausgeführt wird und wobei existierende nicht korrigierbare Fehler angezeigt werden, und
in einem zweiten Modus on-line, bei dem die Speichertestlogik nur Daten auf die Speicherposition, die gerade getestet wird, überprüft und andere Speicherpositionen dazu gebracht werden, mit Daten während eines normalen Betriebs als Adresse gesteuert durch das System zu arbeiten.
6. Warteschlangensystem nach einem der Ansprüche 1-5, zum Puffern von Daten in einer Paketvermittlungsstelle mit einem gemeinsamen Pufferspeicher (32) für einen oder mehrere Ausgangsports von der Vermittlungsstelle, wobei das System eine Anzahl von Zeigern, die Speicherpositionen in dem Pufferspeicher identifizieren, verwendet, und in dem die Zeiger zwischen verschiedenen logischen Listen (38, 44, 56, 62) zum Anzeigen der Operation, die mit den Daten in der Pufferposition ausgeführt werden sollen, auf die verwiesene wird, bewegt werden, ferner gekennzeichnet durch eine Wartungsfunktion (52), die kontinuierlich sicherstellt, dass das System einen und nur einen Zeiger auf jede gültige Paketposition in dem Pufferspeicher (32) umfasst.
7. Warteschlangensystem nach einem der Ansprüche 1-5, zum Puffern von Daten in einer Paketvermittlungsstelle mit einem gemeinsamen Pufferspeicher (32) für einen oder mehrere Ausgangsports von der Vermittlungsstelle, wobei das System eine Anzahl von Zeigern, die Speicherpositionen in dem Pufferspeicher identifizieren, verwendet, und in dem die Zeiger zwischen verschiedenen logischen Listen (38, 44, 56, 62) bewegt werden, um die mit den Daten in der Pufferposition, auf die verwiesen wird, auszuführende Operation anzuzeigen, ferner gekennzeichnet dadurch, dass Kopien des gleichen Zeigers in einer gesteuerten Weise durch Verwenden einer Mehrfach-Zeigerliste (56) behandelt werden, in der die Anzahl von Kopien, die in dem System von jeweiligen Zeigern enthalten sind, aufgezeichnet werden, und wobei eine Wartungsfunktion (52) überprüft, dass die Anzahl von Kopien eines Zeigers mit dem Wert, der in der Mehrfach-Zeigerliste (56) für den jeweiligen Zeiger aufgezeichnet ist, übereinstimmt.
8. Warteschlangensystem nach Anspruch 7, ferner dadurch gekennzeichnet, dass abgesehen von der Mehrfach-Zeigerliste (56) die folgenden logischen Listen für die jeweiligen Zeigerkategorien verwendet werden: eine Unbelegliste (38) für freie Zeiger, Ausgangswarteschlangenlisten (44) für in Warteschlangen eingereihte Zeiger in einer Warteschlange zu Ausgangsports, und eine Abblockungsliste(62) für abgeblockte Zeiger.
9. Wartenschlangensystem nach Anspruch 8, ferner gekennzeichnet dadurch, dass
die Wartungsfunktion (52) zyklisch sämtliche Zeiger und vorhandenen Pufferpositionen jeweils einzeln, zyklisch überprüft, wobei eine Initiierungsprozedur vorausgeht, während der
der Zeiger durch Herausfiltern (78) des Zeigers aus dem Fluss von Zeigern, die von Ausgangswarteschlangenlisten (44) and die Unbelegtliste (38) zurückgegeben werden, aus dem Betrieb genommen wird, bis das Warteschlangensystem von jeder Kopie des in Frage stehenden Zeigers geleert worden ist, woraufhin die Anzahl von zurückgegebenen Kopien des in Frage stehenden Zeigers mit dem Wert der Mehrfach-Zeigerliste (56) verglichen (80) wird.
10. Wartenschlangensystem nach Anspruch 9, ferner gekennzeichnet dadurch, dass
die Wartungsfunktion (52) einen ersten Betriebsmodus (70) aufweist, der nach der Initiierungsprozedur und aktiviert (82),
dadurch, dass eine größere Anzahl als eine bestimmte Grenzanzahl von Zeigern als Folge der Initiierungsprozedur gefunden worden sind (84), wobei die jeweilige Anzahl von Kopien davon nicht mit dem Wert in der Mehrfach-Zeigerliste (56) für den in Frage stehenden Zeiger übereinstimmen, oder
durch ein externes Signal,
die Zeiger an die Unbelegtliste (38) zurückgibt, den Wert in der Mehrfach-Zeigerliste (56) auf eine Mehrfach- Kopien zurücksetzt, und in der Abblockungsliste (62) kein Abblocken der Zeiger anzeigt.
11. Wartenschlangensystem nach den Ansprüchen 6 und 9, ferner gekennzeichnet dadurch, dass die Wartungsfunktion einen ersten Betriebsmodus (70) aufweist, der nach der Initiierungsprozedur und aktiviert durch die Tatsache, dass eine größere Anzahl als eine bestimmte Grenzanzahl von verlorenen oder Mehrfach-Zeigern als Ergebnis der Initiierungsprozedur gefunden worden sind, oder durch ein externes Signal eine Kopie jedes Zeigers an die Unbelegtliste (38) zurückgibt und in der Abblockungsliste (62) kein Abblocken von Zeigern anzeigt.
12. Wartenschlangensystem nach Anspruch 10 oder 11, ferner gekennzeichnet dadurch, dass die Wartungsfunktion (52) nur einen weiteren Betriebsmodus aufweist.
13. Wartenschlangensystem nach Anspruch 12, ferner gekennzeichnet dadurch, dass
die Wartungsfunktion (52) aufweist einen zweiten Betriebsmodus (72) aktiviert dadurch, dass der erste Wartungsmodus (70) für sämtliche Zeiger durchlaufen worden ist, woraufhin die Initiierungsprozedur wieder für jeden Zeiger, jeweils einen zu jeder Zeit, ausgeführt wird und der Pufferspeicher mit einer niedrigen Priorität auf nicht-abgeblockten Speicherpositionen identifiziert von dem in Frage stehenden Zeiger in eine Warteschlange eingereiht wird, wohingegen sämtliche anderen nicht-abgeblockten Speicherpositionen mit Systemdaten während des Tests trainiert werden, und wobei das Ergebnis des Speichertests zum Zurückgeben des Zeigers an die Unbelegtliste (38) verwendet wird, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber von einer Verwendung in dem System abgeblockt wird, wenn der Pufferspeichertest eine Fehlfunktion des Bereichs, der von dem Zeiger definiert wird, anzeigt,
die abgeblockten Zeiger einem zweiten Pufferspeichertest des gleichen Typs wie der erste ausgesetzt werden, konditioniert dadurch, dass jeder Testdatenbetrieb in der Warteschlange solange aufrechterhalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment einschließlich der Positionen, die von abgeblockten Zeigern identifiziert werden, gespeichert werden,
wobei das Ergebnis des zweiten Tests zum Zurückgeben (88) des Zeigers an die Unbelegtliste (38) verwendet wird, wenn der Test ein richtiges Ergebnis ergeben hat, wohingegen abgeblockte Zeiger an die Unbelegtliste (38) zuerst zurückgegeben werden, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests, die eine zweite Grenzanzahl übersteigt, akzeptiert worden sind.
14. Wartenschlangensystem nach Anspruch 8 oder 9, ferner dadurch gekennzeichnet, dass die Wartungsfunktion (52) eine Anzahl von verschiedenen Betriebsmoden aufweist.
15. Wartenschlangensystem nach Anspruch 11, ferner dadurch gekennzeichnet, dass
die Wartungsfunktion (52) einen zweiten Betriebsmodus (72) aufweist, der dadurch aktiviert wird, dass der erste Modus durch sämtliche Zeiger gelaufen ist, woraufhin
die Initiierungsprozedur wieder für die Zeiger ausgeführt wird,
ein einfacher Schreib- und Lesetest (56) für eine Ausführung auf Pufferspeicherpositionen identifiziert von Zeigern, deren Kopien nicht mit dem Wert in der Mehrfach-Zeigerliste übereinstimmt, in eine Warteschlange eingereiht wird,
das Ergebnis des Schreib- und Lesetests zum Zurückgeben des in Frage stehenden Zeigers an die Unbelegtliste (38) verwendet wird, wenn der Test ein richtiges Ergebnis ergeben hat, aber dieser von einer Verwendung in dem System abgeblockt wird, wenn der Test eine Fehlfunktion innerhalb des Bereichs anzeigt, der von dem in Frage stehenden Zeiger identifiziert wird.
16. Wartenschlangensystem nach Anspruch 15, ferner dadurch gekennzeichnet, dass
die Wartungsfunktion (52) einen dritten Betriebsmodus (74) aufweist, der dadurch aktiviert wird, dass der zweite Modus für sämtliche Zeiger durchlaufen worden ist, woraufhin
die Initiierungsprozedur einmal wieder für die nicht- abgeblockten Zeiger ausgeführt wird,
ein Pufferspeichertest zum Erfassen von Typen von Fehlfunktionen, die von dem einfachen Schreib- und Lesetest in dem zweiten Betriebsmodus (72) nicht erfasst worden sind, für eine Ausführung auf den Pufferspeicherpositionen, die von dem initiierten Zeiger identifiziert werden, in eine Warteschlange eingereiht wird, wobei die Speicherpositionen mit Testdaten trainiert werden, wohingegen sämtliche anderen, nicht- abgeblockten Pufferspeicherpositionen mit Systemdaten während des Tests für jeden abgeblockten Zeiger trainiert werden,
wobei das Ergebnis des Tests zum Zurückgeben des Zeigers an die Unbelegtliste (38) verwendet wird, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber er von einer Verwendung in dem System abgeblockt wird, wenn der Pufferspeichertest eine Fehlfunktion in dem Bereich anzeigt, der von dem Zeiger identifiziert wird.
17. Wartenschlangensystem nach Anspruch 16, ferner dadurch gekennzeichnet, dass die Wartungsfunktion (52) einen vierten Betriebsmodus (76, 106, 108) aufweist, der dadurch aktiviert wird, dass der dritte Modus für sämtliche Zeiger durchlaufen worden ist, woraufhin
auch die früher abgeblockten Zeiger zum Testen durch zyklisches Ausführen der Initiierungsprozedur für sämtliche Zeiger, jeweils einer zu einer Zeit, akzeptiert werden,
ein Pufferspeichertest der gleichen Art wie in dem dritten Modus auf nicht-abgeblockte Zeiger angewendet wird (110, 112), wohingegen früher abgeblockte Zeiger dem gleichen Typ von Pufferspeichertest ausgesetzt werden, konditioniert dadurch, dass jeder Testdatenbetrieb in einer Warteschlange solange gehalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment gespeichert sind, dass die Positionen enthält, die von dem früher abgeblockten in Frage stehenden Zeiger identifiziert worden sind,
das Ergebnis des Tests in der gleichen Weise wie in dem dritten Modus für nicht-abgeblockte Zeiger und nicht akzeptierte Tests von früher abgeblockten Zeigern verwendet wird, wohingegen früher abgeblockte Zeiger an die Unbelegtliste (38) zuerst zurückgegeben werden, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests (114), definiert mit einer Grenzanzahl, akzeptiert worden sind.
18. Wartenschlangensystem nach einem der Ansprüche 8-9 oder 10-17, ferner dadurch gekennzeichnet, dass die Listen für mehrfach verwendete und abgeblockte Zeiger in eine Liste kombiniert sind.
19. Verfahren zum Testen von Speicherpositionen in einem Warteschlangensystem, dass Speicherpositionen in einem Speicher (2) zum Ausführen von Schreiboperationen (4) für diese von einer on-line geführten Unbelegtliste (6)von Adressen auf freie Speicherpositionen in dem Speicher wählt, und
Adressen zum Sammeln von Daten (8), die vorher in dem Speicher (2) gespeichert werden, berechnet,
wobei das Verfahren ferner umfasst:
Freigeben von Adressen, die für einen Test von einer Systemverwendung wie von dem System gesteuert gewählt werden,
periodisches (116) Ausführen von einer Testprozedur für gewählte Speicherpositionen auf jeder Speicherposition in unbelegte Zyklen während eines Betriebssystems, und
Verwenden des Ergebnisses der Testprozedur für eine Wartung der Unbelegtliste (6).
20. Verfahren nach Anspruch 19, ferner umfassend die folgenden Schritte:
Ausführen des Tests einer Speicherposition, nachdem abgewartet wurde, dass sie von dem System von einer Verwendung freigegeben worden ist, und
Zurückgeben der Speicherposition an die Systemverwendung nur dann, wenn die Speicherposition den Test aushält.
21. Verfahren nach Anspruch 19, ferner umfassend die folgenden Schritte:
Freigeben von Adressen auf Speicherpositionen durch Kopieren der Inhalte einer Speicherposition, die getestet werden soll, an eine freie und fehlerfreie Speicherposition,
Umleiten der Adressenberechnung für eine Verwendung von der neuen Speicherposition, und
Zurückgeben der getesteten Speicherposition an eine Systemverwendung nur dann, wenn sie den Test aushält.
22. Verfahren nach Anspruch 19, ferner umfassend die folgenden Schritte: erneutes Testen von Speicherpositionen, die einen Test nicht ausgehalten haben, bei Gelegenheiten, wenn der gesamte Speicherblock, der die in Frage stehende Speicherposition enthält, in dem System von einer Verwendung freigegeben wird.
23. Verfahren nach Anspruch 19, ferner gekennzeichnet durch die folgenden Schritte:
a) Ausführen eines Tests einer bestimmten Speicherposition durch Testen von sämtlichen Adressen in einem off-line Test gesteuert von der Testlogik in einem ersten Betriebsmodus,
Zählen der Anzahl von Speicherpositionen mit korrigierbaren Fehler während des Tests, und
Anzeigen von nicht korrigierbaren Fehlern,
b) Überprüfen nur von Daten zu der Speicherposition, die gerade getestet wird, in einem zweiten Modus on-line, und
Erzwingen, dass andere Speicherpositionen mit Daten während eines normalen Betriebs als Adresse gesteuert durch das System arbeiten.
24. Verfahren nach einem der Ansprüche 19-23, ferner umfassend ein Puffern von Daten in einer Paketvermittlungsstelle mit einem gemeinsamen Pufferspeicher für einen oder mehrere Ausgangsports von der Vermittlungsstelle, Verwenden einer Anzahl von Zeigern, die Speicherpositionen in dem Pufferspeicher identifizieren, und bei dem die Zeiger zwischen verschiedenen logischen Listen bewegt werden, um den Betrieb anzuzeigen, der mit den Daten in der Pufferposition, auf die verwiesen wird, ausgeführt werden sollten, wobei das Verfahren ferner die Zeiger verwaltet, indem kontinuierlich sichergestellt wird, dass das System einen und nur einen Zeiger auf jede gültige Paketposition in dem Pufferspeicher umfasst.
25. Verfahren nach einem der Ansprüche 19-23, ferner umfassend ein Puffern von Daten in einer Paketvermittlungsstelle mit einem gemeinsamen Pufferspeicher für einen oder mehrere Ausgangsports von der Vermittlungsstelle, Verwenden einer Anzahl von Zeigern, die Speicherpositionen in dem Pufferspeicher identifizieren, und bei dem die Zeiger zwischen verschiedenen logischen Listen bewegt werden, um den Betrieb anzuzeigen, der mit den Daten in der Pufferposition, auf die verwiesen wird, ausgeführt werden soll,
wobei das Verfahren ferner die Zeiger verwaltet beim
Behandeln von Kopien des gleichen Zeigers in einer gesteuerten Weise durch Aufzeichnen der Anzahl von Kopien, die in dem System von jeweiligen Zeigern enthalten sind, in einer Mehrfach-Zeigerliste (56), und
Überprüfen (52), dass die Anzahl von Kopien eines Zeigers mit dem Wert übereinstimmt, der in der Mehrfach- Zeigerliste für den jeweiligen Zeiger aufgezeichnet ist.
26. Verfahren nach Anspruch 25, ferner umfassend die folgenden Schritte: Verwenden außer der Mehrfach-Zeigerliste (56) der folgenden logischen Listen für die jeweiligen Zeigerkategorien: eine Unbelegtliste (38) für freie Zeiger, Ausgangswarteschlangenlisten (44-) für eingereihte Zeiger in einer Warteschlange zu Ausgangsports, und eine Abblockungsliste (62) für abgeblockte Zeiger.
27. Verfahren nach Anspruch 26, ferner umfassend:
a) Ausführen einer Initiierungsprozedur für sämtliche Zeiger, indem jeder Zeiger außer Betrieb genommen wird, indem er aus dem Fluss von Zeigern herausgenommen (78) wird, die von den Ausgangswarteschlangenlisten (44) an die Unbelegtliste (38) zurückgegeben werden, bis das Warteschlangensystem von jeder Kopie des in Frage stehenden Zeigers entleert worden ist, und Vergleichen (80) der Anzahl von zurückgegebenen Kopien des in Frage stehenden Zeigers mit dem Wert der Mehrfach-Zeigerliste, und nach der Initiierungsprozedur,
b) zyklisches Überprüfen von sämtlichen Zeigern und enthaltenen Pufferpositionen, jeweils einzeln.
28. Verfahren nach Anspruch 27, ferner umfassend:
nach der Initiierungsprozedur, Ausführen eines ersten Betriebsmodus (70), der
aktiviert wird entweder
durch die Tatsache, dass mehr als eine bestimmte Grenzanzahl von Zeigern als Ergebnis der Initiierungsprozedur festgestellt worden sind, wobei die jeweilige Anzahl mit dem Wert in der Mehrfach- Zeigerliste für den fraglichen Zeiger übereinstimmt, oder
durch ein externes Signal,
umfassend die Schritte zum Zurückgeben der Zeiger an die Unbelegtliste, zum Zurücksetzen des Werts in der Mehrfach-Zeigerliste auf keine mehrfachen Kopien, und in der Abblockungsliste, die keine Abblockung von Zeigern anzeigt.
29. Verfahren nach Anspruch 24 oder 27, ferner umfassend die folgenden Schritte:
nach der Initiierungsprozedur, Ausführen eines ersten Betriebsmodus (70), der
aktiviert wird durch entweder
die Tatsache, dass mehr als eine bestimmte Grenzanzahl von verlorenen oder Mehrfach-Zeigern als Ergebnis der Initiierungsprozedur festgestellt worden sind, oder durch ein externes Signal,
ferner umfassend die Schritte zum Zurückgeben einer Kopie jedes Zeigers an die Unbelegtliste (38) und ein Anzeigen keiner Abblockung von Zeigern in der Abblockungsliste (62).
30. Verfahren nach Anspruch 28 oder 29, ferner umfassend die folgenden Schritte:
Ausführen eines zweiten Betriebsmodus, der dadurch aktiviert wird, dass der erste Wartungsmodus (52) für sämtliche Zeiger durchlaufen worden ist und umfassend die folgenden Schritte:
Ausführen der Initiierungsprozedur wieder für jeden Zeiger, jeweils einzeln,
Einreihen eines Pufferspeichertests mit einer niedrigen Priorität auf nicht-abgeblockte Speicherpositionen, die von dem in Frage stehenden Zeiger identifiziert werden,
Trainieren von sämtlichen nicht-abgeblockten Speicherpositionen mit Systemdaten während des Tests, und
Verwenden des Ergebnisses des Speichertests zum Zurückgeben des Zeigers an die Unbelegtliste, wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber um ihn von einer Verwendung in dem System abzublocken, wenn der Pufferspeichertest eine Fehlfunktion des Bereichs anzeigt, der von dem Zeiger definiert wird,
Ausführen eines zweiten Pufferspeichertests der gleichen Art wie der erste für die abgeblockten Zeiger, konditioniert durch Aufrechterhalten jedes Testdatenbetriebs in der Warteschlange solange, wie Systemdaten irgendwo in dem Pufferspeichersegment einschließlich der Positionen, die von abgeblockten Zeigern identifiziert worden sind, gespeichert werden.
Verwenden des Ergebnisses des zweiten Tests für ein Zurückgeben (88) des Zeigers an die Unbelegtliste (38), wenn der Test ein richtiges Ergebnis ergeben hat, und Zurückgeben von abgeblockten Zeigern an die Unbelegtliste zuerst, nachdem sie in einer Anzahl von aufeinanderfolgenden Tests, die eine zweite Grenzanzahl übersteigt, akzeptiert worden sind.
31. Verfahren nach Anspruch 29, ferner umfassend die folgenden Schritte:
Ausführen eines zweiten Betriebsmodus (72), der dadurch aktiviert wird, dass der erste Modus für sämtliche Zeiger durchlaufen worden ist, und enthaltend die folgenden Schritte;
Ausführen der Initiierungsprozedur wieder für die Zeiger,
Einreihen eines einfachen Schreib- und Lesetests (96) für eine Ausführung auf Pufferspeicherpositionen, die von Zeigern identifiziert werden, deren Anzahl von Kopien nicht mit dem Wert in der Mehrfach-Zeigerliste übereinstimmt,
Verwenden des Ergebnisses des Schreib- und Lesetests zum Zurückgeben des in Frage stehenden Zeigers an die Unbelegtliste, wenn der Test ein richtiges Ergebnis ergeben hat, aber Abblocken von diesem von einer Verwendung in dem System, wenn der Test eine Fehlfunktion innerhalb des Gebiets anzeigt, das von dem in Frage stehenden Zeiger identifiziert wird.
32. Verfahren nach Anspruch 31, ferner umfassend die folgenden Schritte:
Ausführen eines dritten Betriebsmodus (74), der dadurch aktiviert wird, dass der zweite Modus (72) für sämtliche Zeiger durchlaufen worden ist,
Ausführen der Initiierungsprozedur noch einmal für die nicht-abgeblockten Zeiger,
Einreihen eines Pufferspeichertests zum Erfassen von Typen von Fehlfunktionen, die von dem einfachen Schreib- und Lesetest in dem zweiten Betriebsmodus nicht erfasst worden sind, für eine Ausführung auf den Pufferspeicherpositionen, die von dem initiierten Zeiger identifiziert worden sind, wobei der Pufferspeichertest die Schritte zum Trainieren dieser Speicherpositionen mit Testdaten, und ein Trainieren von sämtlichen anderen nicht-abgeblockten Pufferspeicherpositionen mit Systemdaten während des Tests für jeden abgeblockten Zeiger umfasst,
Verwenden des Ergebnisses des Tests zum Zurückgeben des Zeigers an die Unbelegtliste (38), wenn der Pufferspeichertest ein richtiges Ergebnis ergeben hat, aber Abblocken von diesem von einer Verwendung in dem System, wenn der Pufferspeichertest eine Fehlfunktion in dem Bereich anzeigt, der von dem Zeiger identifiziert wird.
33. Verfahren nach Anspruch 32, ferner umfassend die folgenden Schritte:
Ausführen eines vierten Betriebsmodus (76, 106, 108), der dadurch aktiviert wird, dass der dritte Modus sämtliche Zeiger durchlaufen worden ist und umfassend die folgenden Schritte:
Annehmen auch der vorher abgeblockten Zeiger für ein Testen durch Ausführen der Initiierungsprozedur zyklisch für sämtliche Zeiger, jeweils einzelnen,
Anwenden (110, 112) eines Pufferspeichertests der gleichen Art wie in dem dritten Modus für nicht- abgeblockte Zeiger, und Aussetzen von vorher abgeblockten Zeigern dem gleichen Typ von Pufferspeichertest konditioniert dadurch, dass jeder Testdatenbetrieb solange in einer Warteschlange gehalten wird, wie Systemdaten irgendwo in dem Pufferspeichersegment gespeichert sind, welches die Positionen enthält, die von dem früher abgeblockten in Frage stehenden Zeiger identifiziert worden sind,
Verwenden des Ergebnisses des Tests in der gleichen Weise wie in dem dritten Modus für nicht-abgeblockte Zeiger und nicht akzeptierte Tests von früher abgeblockten Zeigern, und Zurückgeben von früher abgeblockten Zeigern an die Unbelegtliste, nachdem sie in eine Anzahl von aufeinanderfolgenden Tests, definiert durch eine Grenzanzahl, akzeptiert worden sind.
DE69427129T 1993-11-26 1994-11-23 Fehlertolerantes warteschlangenvorrichtung und verfahren dafür Expired - Lifetime DE69427129T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9303932A SE502576C2 (sv) 1993-11-26 1993-11-26 Feltolerant kösystem
PCT/SE1994/001119 WO1995014970A2 (en) 1993-11-26 1994-11-23 A fault tolerant queue system

Publications (2)

Publication Number Publication Date
DE69427129D1 DE69427129D1 (de) 2001-05-23
DE69427129T2 true DE69427129T2 (de) 2001-08-02

Family

ID=20391901

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69427129T Expired - Lifetime DE69427129T2 (de) 1993-11-26 1994-11-23 Fehlertolerantes warteschlangenvorrichtung und verfahren dafür

Country Status (17)

Country Link
US (2) US5602988A (de)
EP (1) EP0730764B1 (de)
JP (1) JPH09506452A (de)
KR (1) KR100301719B1 (de)
CN (1) CN1045675C (de)
AU (2) AU681220B2 (de)
BR (1) BR9408131A (de)
CA (1) CA2176471A1 (de)
DE (1) DE69427129T2 (de)
DK (1) DK0730764T3 (de)
ES (1) ES2155882T3 (de)
FI (1) FI962202A (de)
GR (1) GR3035795T3 (de)
NO (1) NO962120L (de)
SE (1) SE502576C2 (de)
TW (1) TW278157B (de)
WO (1) WO1995014970A2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19742378A1 (de) * 1997-09-25 1999-04-22 Siemens Ag Ringspeicher für eine TDMA-Datenübertragungsstation und entsprechende Datenübertragungsstation
US6778490B1 (en) 1998-05-20 2004-08-17 Nortel Networks Limited Method and apparatus for a fault tolerant router architecture
US6256756B1 (en) * 1998-12-04 2001-07-03 Hewlett-Packard Company Embedded memory bank system
US6363506B1 (en) * 1999-04-13 2002-03-26 Agere Systems Guardian Corp. Method for self-testing integrated circuits
US6606326B1 (en) 1999-07-02 2003-08-12 International Business Machines Corporation Packet switch employing dynamic transfer of data packet from central shared queue path to cross-point switching matrix path
US6510531B1 (en) * 1999-09-23 2003-01-21 Lucent Technologies Inc. Methods and systems for testing parallel queues
US6985455B1 (en) * 2000-03-03 2006-01-10 Hughes Electronics Corporation Method and system for providing satellite bandwidth on demand using multi-level queuing
US6584584B1 (en) * 2000-04-10 2003-06-24 Opentv, Inc. Method and apparatus for detecting errors in a First-In-First-Out buffer
US20020110094A1 (en) * 2001-02-13 2002-08-15 Reddy Naveen S. Spot beam hopping packet scheduler system
US7480239B1 (en) 2001-11-27 2009-01-20 Cisco Technology, Inc. Method and apparatus for true priority based connection establishment within a PNNI ATM network
US7161950B2 (en) * 2001-12-10 2007-01-09 Intel Corporation Systematic memory location selection in Ethernet switches
DE10162046A1 (de) * 2001-12-17 2003-06-26 Thomson Brandt Gmbh Wiedergabegerät mit einem Zwischenspeicher zum Verringern der mittleren Zugriffszeit auf einen Informationsträger
US6781898B2 (en) * 2002-10-30 2004-08-24 Broadcom Corporation Self-repairing built-in self test for linked list memories
US20050071730A1 (en) * 2003-09-30 2005-03-31 Lattice Semiconductor Corporation Continuous self-verify of configuration memory in programmable logic devices
US7532574B1 (en) 2003-10-02 2009-05-12 Cisco Technology, Inc. Method and apparatus for improved priority based connection establishment within a PNNI ATM network
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
CN101031971A (zh) * 2004-08-02 2007-09-05 皇家飞利浦电子股份有限公司 数据存储和重放设备
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7257750B1 (en) 2005-01-13 2007-08-14 Lattice Semiconductor Corporation Self-verification of configuration memory in programmable logic devices
US7802148B2 (en) * 2005-02-23 2010-09-21 Broadcom Corporation Self-correcting memory system
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
CN101346692B (zh) * 2005-12-29 2011-05-04 英特尔公司 多处理器系统中的高性能队列实现
US7596744B1 (en) 2006-02-24 2009-09-29 Lattice Semiconductor Corporation Auto recovery from volatile soft error upsets (SEUs)
US7562260B2 (en) * 2006-04-04 2009-07-14 International Business Machines Corporation Method and system for performing recovery of a single-threaded queue
US7640386B2 (en) 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8065574B1 (en) * 2007-06-08 2011-11-22 Lattice Semiconductor Corporation Soft error detection logic testing systems and methods
CN101794242B (zh) * 2010-01-29 2012-07-18 西安交通大学 服务于操作系统核心层的容错计算机系统数据比较方法
US10866837B2 (en) * 2018-07-30 2020-12-15 Lendingclub Corporation Distributed job framework and task queue

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3681757A (en) * 1970-06-10 1972-08-01 Cogar Corp System for utilizing data storage chips which contain operating and non-operating storage cells
US3814922A (en) * 1972-12-01 1974-06-04 Honeywell Inf Systems Availability and diagnostic apparatus for memory modules
US3863227A (en) * 1973-09-17 1975-01-28 Gte Automatic Electric Lab Inc Method and arrangement for testing a core memory
US3982111A (en) * 1975-08-04 1976-09-21 Bell Telephone Laboratories, Incorporated Memory diagnostic arrangement
IT1047437B (it) * 1975-10-08 1980-09-10 Cselt Centro Studi Lab Telecom Procedimento e dispositivo per il controllo in linea di memorie logiche sequenziali operanti a divisione di tempo
US4575792A (en) * 1982-03-31 1986-03-11 Honeywell Information Systems Inc. Shared interface apparatus for testing the memory sections of a cache unit
US4479214A (en) * 1982-06-16 1984-10-23 International Business Machines Corporation System for updating error map of fault tolerant memory
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US4672583A (en) * 1983-06-15 1987-06-09 Nec Corporation Dynamic random access memory device provided with test circuit for internal refresh circuit
US4841434A (en) * 1984-05-11 1989-06-20 Raytheon Company Control sequencer with dual microprogram counters for microdiagnostics
JPS62250593A (ja) * 1986-04-23 1987-10-31 Hitachi Ltd ダイナミツク型ram
US4809276A (en) * 1987-02-27 1989-02-28 Hutton/Prc Technology Partners 1 Memory failure detection apparatus
FR2625392B1 (fr) * 1987-12-24 1993-11-26 Quinquis Jean Paul Circuit de gestion de pointeurs d'ecriture de files tampons notamment pour commutateur temporel de paquets auto-acheminables
JPH02117243A (ja) * 1988-10-27 1990-05-01 Toshiba Corp パケット通信装置
US5014266A (en) * 1988-12-28 1991-05-07 At&T Bell Laboratories Circuit switching system for interconnecting logical links between packet switching networks
US4953157A (en) * 1989-04-19 1990-08-28 American Telephone And Telegraph Company Programmable data packet buffer prioritization arrangement
JPH0387000A (ja) * 1989-08-30 1991-04-11 Mitsubishi Electric Corp 半導体記憶装置
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5357521A (en) * 1990-02-14 1994-10-18 International Business Machines Corporation Address sensitive memory testing
US5155844A (en) * 1990-02-14 1992-10-13 International Business Machines Corporation Background memory test during system start up
ATE133512T1 (de) * 1990-05-31 1996-02-15 Siemens Ag Integrierter halbleiterspeicher
US5276833A (en) * 1990-07-02 1994-01-04 Chips And Technologies, Inc. Data cache management system with test mode using index registers and CAS disable and posted write disable
EP0470030A3 (en) * 1990-08-02 1993-04-21 International Business Machines Corporation Fast memory power-on diagnostics using direct memory addressing
US5177745A (en) * 1990-09-26 1993-01-05 Intel Corporation Memory device with a test mode
JPH04178580A (ja) * 1990-11-14 1992-06-25 Ando Electric Co Ltd 半導体メモリの故障自己診断装置
US5299202A (en) * 1990-12-07 1994-03-29 Trw Inc. Method and apparatus for configuration and testing of large fault-tolerant memories
DE69130392T2 (de) * 1991-07-10 1999-06-02 International Business Machines Corp., Armonk, N.Y. Hochgeschwindigkeitspufferverwaltung
US5311520A (en) * 1991-08-29 1994-05-10 At&T Bell Laboratories Method and apparatus for programmable memory control with error regulation and test functions
KR950000305Y1 (ko) * 1991-12-23 1995-01-16 금성일렉트론 주식회사 메모리 장치의 테스트 모드회로
US5452418A (en) * 1992-04-24 1995-09-19 Digital Equipment Corporation Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation
US5291482A (en) * 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
US5388238A (en) * 1992-07-24 1995-02-07 At&T Corp. System and method for monitoring the validity of circulating pointers in a FIFO memory
SE516073C2 (sv) * 1993-02-15 2001-11-12 Ericsson Telefon Ab L M Sätt för hantering av redundanta väljarplan i paketväljare och paketväljare för utförande av sättet
US5396619A (en) * 1993-07-26 1995-03-07 International Business Machines Corporation System and method for testing and remapping base memory for memory diagnostics
US5461588A (en) * 1994-11-15 1995-10-24 Digital Equipment Corporation Memory testing with preservation of in-use data

Also Published As

Publication number Publication date
NO962120D0 (no) 1996-05-24
SE9303932L (sv) 1995-05-27
FI962202A0 (fi) 1996-05-24
DK0730764T3 (da) 2001-07-09
US6088817A (en) 2000-07-11
NO962120L (no) 1996-05-24
TW278157B (de) 1996-06-11
AU693056B2 (en) 1998-06-18
AU681220B2 (en) 1997-08-21
AU2618897A (en) 1997-09-04
EP0730764A1 (de) 1996-09-11
SE502576C2 (sv) 1995-11-13
CN1045675C (zh) 1999-10-13
JPH09506452A (ja) 1997-06-24
US5602988A (en) 1997-02-11
BR9408131A (pt) 1997-08-05
CA2176471A1 (en) 1995-06-01
WO1995014970A2 (en) 1995-06-01
CN1136354A (zh) 1996-11-20
FI962202A (fi) 1996-05-24
WO1995014970A3 (en) 1995-07-27
DE69427129D1 (de) 2001-05-23
ES2155882T3 (es) 2001-06-01
GR3035795T3 (en) 2001-07-31
SE9303932D0 (sv) 1993-11-26
EP0730764B1 (de) 2001-04-18
KR100301719B1 (ko) 2001-10-22
KR960706126A (ko) 1996-11-08
AU1206795A (en) 1995-06-13

Similar Documents

Publication Publication Date Title
DE69427129T2 (de) Fehlertolerantes warteschlangenvorrichtung und verfahren dafür
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE2614000C2 (de) Diagnoseeinrichtung zur Prüfung von Funktionseinheiten
DE69702858T2 (de) Halbleiterspeicherprüfgerät mit redundanzanalyse
DE3786862T2 (de) Fehlertolerante Rechnerarchitektur.
DE2030760A1 (de) Speicherschaltung
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
EP0238841A1 (de) Fehlergesicherte, hochverfügbare Multiprozessor-Zentralsteuereinheit eines Vermittlungssystemes und Verfahren zum Speicherkonfigurationsbetrieb dieser Zentralsteuereinheit
DE2210325A1 (de) Datenverarbeitungssystem
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
EP1008993B1 (de) Schreib/Lesespeicher mit Selbsttestvorrichtung und zugehöriges Testverfahren
DE1900042A1 (de) Verfahren und Anordnung zur Ortung von Fehlern in einer Datenverarbeitungsanlage
DE1249926B (de) Einrichtung zum Umadressieren fehlerhafter Speicherstellen eines beliebig zuganglichen Hauptspeichers in einer Datenverarbeitungsanlage
EP1113362B1 (de) Integrierter Halbleiterspeicher mit einer Speichereinheit zum Speichern von Adressen fehlerhafter Speicherzellen
DE2317576A1 (de) Einrichtung zur ausfallbedingten umordnung von speichermoduln in einer datenverarbeitungsanlage
DE19829234A1 (de) Prüfverfahren für einen Halbleiter-Datenspeicher und Halbleiter-Datenspeicher
DE3045609A1 (de) Verfahren und schaltungsanordnung zur abgabe einer korrigierten datengruppe an eine bestimmungsschaltung
EP1105802A1 (de) Verfahren zur reparatur von defekten speicherzellen eines integrierten speichers
CH658137A5 (de) Steuereinrichtung mit einem speicher und einer schnittstelle, insbesondere fuer werkzeugmaschinen.
DE69029164T2 (de) Vorrichtung und Verfahren zum Ersetzen der Parität
DE4335061A1 (de) Mehrspeichervorrichtung
DE3814875A1 (de) Logische verknuepfungseinrichtung und logisches verknuepfungsverfahren
EP0615211A1 (de) Verfahren zum Speichern sicherheitsrelevanter Daten
DE69323076T2 (de) Verfahren zur Erkennung fehlerhafter Elemente eines redundanten Halbleiterspeichers
EP1254461B1 (de) Testbarer festwertspeicher für datenspeicher-redundanzlogik

Legal Events

Date Code Title Description
8364 No opposition during term of opposition