DE69221045T2 - Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen - Google Patents
Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und PrüffunktionenInfo
- Publication number
- DE69221045T2 DE69221045T2 DE69221045T DE69221045T DE69221045T2 DE 69221045 T2 DE69221045 T2 DE 69221045T2 DE 69221045 T DE69221045 T DE 69221045T DE 69221045 T DE69221045 T DE 69221045T DE 69221045 T2 DE69221045 T2 DE 69221045T2
- Authority
- DE
- Germany
- Prior art keywords
- register
- test
- data
- rams
- array
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 111
- 230000015654 memory Effects 0.000 title claims description 71
- 230000006870 function Effects 0.000 title description 3
- 238000000034 method Methods 0.000 title description 3
- 230000000977 initiatory effect Effects 0.000 claims abstract description 6
- 238000012937 correction Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 6
- 238000003491 array Methods 0.000 description 4
- 208000011580 syndromic disease Diseases 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0684—Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Tests Of Electronic Circuits (AREA)
- Programmable Controllers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Description
- Die vorliegene Erfindung betrifft Schaltungen zum Steuern sowie Prüfen einer Anordnung von Direktzugriffsspeichern (RAMs).
- Andauernde Fortschritte bei der Entwicklung von Direktzugriffsspeicherbausteinen (RAMs, RAM = Random Access Memory) haben zu enormen Vergrößerungen der Speicherkapazität dieser Bausteine geführt. Die Speicherkapazität einzelner RAMs ist innerhalb einer relativ kurzen Zeit von 4K Bit auf 4 Megabit angestiegen. In nur wenigen Jahren werden 16-Megabit- RAMs erwartet. Die niedrigen Kosten derzeitiger RAMs machen es nun möglich, in Computern und computergestützten Systemen umfangreiche Anordnungen solcher RAMs einzusetzen. Solche RAMs sind in solchen Computern und computergestützten Systemen auf einer oder mehreren gedruckten Leiterplatten angeordnet anzutreffen, die üblicherweise "Speicherkarten" genannt werden.
- Mit steigender Speicherkapazität von derzeitigen RAMs ist auch die benötigte Zeit für das Prüfen von auf Speicherkarten angeordneten RAMs durch herkömmliche Prüfverfahren gestiegen, bei denen typischerweise auf Software basierende Prüfalgorithmen von einem Prozessor ausgeführt werden müssen. Das einfachste Verfahren zum Prüfen einer Anordnung von RAMs besteht darin, ein erstes binäres Bit (z.B. eine "1") in jede sukzessive Speicherstelle einzuschreiben, und dann die Stelle zu lesen, um zu bestimmen, ob das zuvor geschriebene Bit erscheint. Danach wird ein zweites binäres Bit (d.h. eine "0") in jede sukzessive Speicherstelle eingeschrieben, und dann eine Leseoperation durchgeführt, um zu sehen, ob dieses Bit nun tatsächlich erscheint (es ist gleichgültig, ob zuerst eine "1" oder eine "0" geschrieben wird). Wenn das aus einer RAM-Stelle ausgelesene Bit von dem vorher in dieselbe Stelle eingeschriebenen Bit verschieden ist, besteht ein Fehler.
- Algorithmen zum Prüfen einer Anordnung von RAMs durch sukzessives Schreiben und Lesen von "1"-en und "0"-en in sukzessive Stellen sind allgemein als "Durchschiebealgorithmen" bekannt. Der einfachste Durchschiebealgorithmus wird ausgeführt, indem eine "1" in jede sukzessive RAM-Stelle eingeschrieben und gelesen wird, und nachfolgend eine "0" in jede solche Stelle eingeschrieben und gelesen wird, oder umgekehrt. Es ist ersichtlich, daß solch eine Prüfung vier einzelne Zugriffe auf jede Speicherstelle in jedem RAM in der Anordnung erfordert. Ein solcher Durchschiebealgorithmus wird deshalb als eine Komplexität von 4N aufweisend bezeichnet. Kompliziertere Durchschiebealgorithmen, die mehr Zugriffe auf jede Stelle erfordern, weisen eine dementsprechend höhere Komplexität auf. Durchschiebealgorithmen mit einer Komplexität von 14n oder sogar 30N sind nicht ungewöhnlich.
- Je größer die Anzahl der erforderlichen Zugriffe auf jede Speicherstelle jedes RAM in einer Anordnung, desto länger dauert das Prüfen, da für den Zugriff auf jede Stelle eine endliche Zeitdauer (z.B. 80 Nanosekunden) benötigt wird. Sogar bei einem sehr schnellen, mit einer Geschwindigkeit von 33 MHz laufenden Mikroprozessor kann die Zeit, die der Mikroprozessor benötigt, um eine Speicherkarte mit einer umfangreichen Anordnung von RAMs durch Ausführen eines einfachen Durchschiebealgorithmus zu prüfen, lang sein.
- NASA Tech. Briefs, April 1989, Seiten 249-250 offenbart ein konzeptionelles Speichersystem für einen Computer mit den Merkmalen des Oberbegriffs von Anspruch 1. Das konzeptionelle Speichersystem prüft sich wiederholt selbst (d.h. prüft den Speicher des Computers) während kurzer, regelmäßiger Unterbrechungen der normalen Datenverarbeitung. Das konzeptionelle Speichersystem enthält normale Computer- Speicherbausteine, die ein Datenwort enthalten, wobei jedes Datenwort aus Informationsbit und Paritätsbit zusammengesetzt ist. Eine Speicherschnittstellenbaueinheit (MIBB - Memory- Interface Building Block) steuert das Prüfen des konzeptionellen Speichersystems und überprüft dabei jede einzelne Reihe von Speicherzellen und damit den gesamten Computerspeicher. Die MIBB steuert außerdem jeglichen Zugriff auf den Speicher des Computers, wie zum Beispiel betrieblichen Zugriff zur Durchführung logischer Operationen. Die Speicherprüfung besteht aus dem Auslesen des Datenworts aus jeder Speicherstelle, wobei das Datenwort auf Parität geprüft wird, und wenn kein Fehler gefunden wird, das Datenwort zurück in die Speicherstelle eingespeichert wird. Die MIBB leitet die Dauerprüfung des Speichers des Computers, wobei eine konkrete Speicherstelle während kurzer, regelmäßiger Unterbrechungen in der normalen Datenverarbeitung geprüft wird. Das Prüfen wird jedesmal dann unterbrochen, wenn betriebliche Daten in die konkrete Speicherstelle eingeschrieben oder aus dieser ausgelesen werden. Deshalb gestattet das konzeptionelle Speichersystem ein wahres Prüfen des Speichers des Computers in Echtzeit.
- EP-A-0382360 offenbart eine Architektur zur Durchführung des Boundary-Scan-Prüfens von integrierten Schaltungen. Diese Architektur kann auf jede Art von integrierter Schaltung angewendet werden, die definierte Steuereingänge, interne Anwendungslogik und/oder -speicher sowie Ein- und Ausgänge für Datenübertragung aufweist. Die Architektur kann in Direktzugriffsspeichern (RAMs) eingesetzt werden. Das Prüfen kann durchgeführt werden, während sich die integrierte Schaltung in einer völlig funktionsfähigen (aber nicht unbedingt normal funktionierenden) Betriebsart befindet, so daß es möglich wird, die Auswirkung des Durchlaufens von Daten durch integrierte Schaltungen hindurch in Echtzeit zu beobachten. Zu den wesentlichen Elementen gehören: 1) eine integrierte Schaltung mit Eingangsschaltkreisen zum Empfangen eintreffender Daten, und Ausgangsschaltkreisen, um die Daten auszugeben; 2) logische Schaltkreise, die zwischen die Eingangs- und die Ausgangsschaltkreise geschaltet sind, um eine gewünschte Funktion durchzuführen, wie zum Beispiel das Speichern der Daten, oder logische Operationen; und 3) Prüfschaltkreise, die mit den Eingangs- und Ausgangsschaltkreisen verbunden sind, um Daten als Reaktion auf einen vorbestimmten Zustand zu analysieren und zu speichern. Der vorbestimmte Zustand kann durch die Prüfschaltkreise erkannt werden, indem die Prüfschaltkreise Daten aus den logischen Schaltkreisen der integrierten Schaltung mit einem in einem Speicher oder Register gespeicherten erwarteten Wort vergleichen.
- Es besteht ein Bedarf für eine Schaltung, die speziell für das schnelle und effektive Prüfen einer Anordnung von RAMs ausgelegt ist.
- Gemäß der vorliegenden Erfindung wird eine Schaltung nach Anspruch 1 bereitgestellt.
- Eine die Erfindung verkörpernde Schaltung enthält eine Steuerung, die zur Einleitung eines Zugriffs auf eine Speicherstelle in einem der RAMs dient, die einer vom Benutzer vorgeschriebenen Adresse entspricht. Zusätzlich wirkt die Steuerung auch zur Einleitung einer vom Benutzer vorgeschriebenen Durchlaufprüfung der Speicherstellen während ausgewählter Intervalle. Neben der Steuerung ist außerdem ein Datenwegabschnitt enthalten, der zum Speichern von Daten dient, die in die Speicherstelle eingeschrieben werden sollen, auf die zugegriffen wird, oder die aus dieser ausgelesen werden sollen, sowie zum Erkennen von etwaigen Paritätsfehlern in der vom Benutzer vorgeschriebenen Adresse und in den Daten, die in die RAMs eingeschrieben werden sollen, und von etwaigen Fehlern in den Speicherstellen, die während der Ausführung der vom Benutzer vorgeschriebenen Durchlaufprüfung erkannt werden. Die Schaltung enthält spezifische Elemente für das Einleiten des Prüfens einer Anordnung von RAMs und das Erkennen von Fehlern während des Prüfens und kann das Prüfen der RAMs sehr schnell ausführen - sogar schneller als ein herkömmlicher Mikroprozessor. Es wird eine Schnittstelle bereitgestellt, um es der Schaltung zu gestatten, Prüfinformationen und Befehle über den vieradrigen Boundary-Scan-Anschluß zu übertragen, um das Boundary-Scan-Prüfen der Schaltung zu erleichtern, das durch ein externes Prüfsystem initialisiert wird.
- FIG. 1 ist ein Blockschaltbild einer die Erfindung verkörpernden Schaltung zum Steuern einer RAM-Bank und zum Prüfen der RAMs in jeder Bank, um etwaige Fehler darin zu erkennen;
- FIG. 2 ist eine Liste einer Menge von Registern in einer ersten Registeranordnung in der Schaltung von FIG. 1;
- FIG. 3 ist eine Liste der Bitfelder in einem Befehlsregister in der Anordnung von FIG. 2;
- FIG. 4 ist eine Liste der Bitfelder in einem Statusregisters in der Anordnung von FIG. 2;
- FIG. 5 ist eine Liste der Bitfelder in einem Durchlaufelement, von denen eine Anzahl in den Registern in FIG. 2 gespeichert sind;
- FIG. 6 ist eine Liste der Bitfelder in einem Fehlerflaggenregister in der Anordnung von FIG. 2;
- FIG. 7 ist eine Tabelle der Operationscodes, die von einem Opcode-Generator in der Schaltung von FIG. 1 erzeugt werden;
- FIG. 8 ist ein Blockschaltbild eines Automaten in der Schaltung von FIG. 1;
- FIG. 9 ist eine Tabelle der Zustandsübergänge des Automaten von FIG. 8 für jede einer Mehrzahl von verschiedenen Operationen, die von der Schaltung von FIG. 1 ausgeführt werden;
- FIG. 10 ist ein Blockschaltbild einer Durchlaufprüfverzögerungs- und Initialisierungslogikeinheit in der Schaltung von FIG. 1;
- FIG. 11 ist eine Liste einer Menge von Registern in einer zweiten Registeranordnung in der Schaltung von FIG. 1;
- FIG. 12 ist eine Liste der Bitfelder in einem ersten Befehlsregister in der Anordnung von FIG. 11;
- FIG. 13 ist eine Liste der Bitfelder in einem ersten Statusregister in der Anordnung von FIG. 11;
- FIG. 14 ist ein Blockschaltbild einer Durchlaufprüfmustergenerator- und Fehlererkennungseinheit in der Schaltung von FIG. 1;
- FIG. 15 ist ein Blockschaltbild eines Schnittstellenabschnitts in der Schaltung von FIG. 1;
- FIG. 16 und 17 stellen zusammen ein Flußdiagramm eines Durchschiebealgorithmus dar, der zum Prüfen der RAMs von FIG. 1 verwendet wird.
- FIG. 1 ist ein Blockschaltbild einer die Erfindung verkörpernden Steuer- und Prüfschaltung 10 zum Steuern und Prüfen von bis zu acht einzelnen Banken 12 mit herkömmlichen RAMs 14&sub1;, 14&sub2;, 14&sub3;...14n (es ist nur eine RAM-Bank dargestellt). Die RAM-Banken 12 werden zusammen mit der Prüf- und Steuerschaltung 10 von der Leiterplatte 15 getragen. Die Anzahl n von RAMs 14&sub1;, 14&sub2;, 14&sub3;...14n in jeder Bank 12 richtet sich sowohl nach der gewünschten Breite der zu speichernden Datenworte als auch nach der Anzahl der zu jedem Wort gehörenden Prüf oder Paritätsbit.
- In einer bevorzugten Ausführungsform beträgt die Länge jedes durch jede RAM-Bank 12 gespeicherten Datenworts zweiunddreißig Bit, während sieben zusätzliche Prüfbit für Paritätsprüfzwecke mit jedem Datenwort gespeichert werden. Die Gesamtbreite jedes Datenworts mit zugeordneter Paritätsprüfsumme beträgt somit neununddreißig Bit. In einer bevorzugten Ausführungsform wird jeder RAM 14&sub1;,14&sub2;,14&sub3;...14n in jeder Bank 12 aus der Gattung 4M x 1 ausgewählt, so daß jede Bank neununddreißig separate RAMs 14&sub1;-14&sub3;&sub9; enthält. Daten werden über einen Datenbus 16 in die RAMs 14&sub1;-14&sub3;&sub9; in der Bank 12 eingegeben und aus diesen abgerufen, während auf einem Adreßbus 18 jeder Bank Adreßinformationen zugeführt werden. Es ist zu verstehen, daß je nach der gewünschten Breite des zu speichernden Datenworts und je nach der Anzahl der zugeordneten Prüfbit jede Bank 12 auch aus einer kleineren oder einer größeren Anzahl von RAMs 14&sub1;-14n bestehen könnte, und daß die Konfiguration der RAMs in den Banken unterschiedlich sein könnte. Zum Beispiel könnte die Breite jedes zu speichernden Datenworts sogar 256 Bit betragen, was erfordert, daß jede Bank 12 aus der entsprechenden erforderlichen Anzahl von RAMs besteht, um ein Wort mit solcher Breite und die zugeordneten Paritätsbit zu speichern.
- Die Steuer- und Prüfschaltung 10 der Erfindung besteht aus einem Steuerabschnitt 20, einem Datenweg (d.h. Fehlererkennungs- und Korrekturabschnitt) 22 und einem Schnittstellenabschnitt 24. Wie unten ausführlicher beschrieben wird, dient der Steuerabschnitt 20 zur Steuerung der Adressierung sowie des Prüfens der RAMs 14&sub1;,14&sub2;,14&sub3;...14n in jeder Bank 12. Der Datenwegabschnitt 22 dient zum Erkennen der Anwesenheit etwaiger Fehler während der Ausführung eines vom Benutzer vorgeschriebenen Durchlaufprüfalgorithmus, der durch den Steuerabschnitt 20 eingeleitet wird. Der Datenweg 22 dient außerdem zum Erkennen von Prüfbitfehlern und zum Korrigieren etwaiger Einzelbit- Speicherfehler.
- Der Schnittstellenabschnitt 24 wird ausführlicher in Bezug auf FIG. 5 beschrieben und gibt der Steuer- und Prüfschaltung 10 die Möglichkeit, durch einen vieradrigen Boundary-Scan-Anschluß gemäß des IEEE-Standards 1149.1, so wie es in dem Dokument LEEE 1149.1 "Boundary Scan Access Port and Boundary Scan Architecture" beschrieben ist, das vom IEEE, New York, New York erhältlich ist, mit einem externen Prüfsystem 25 zu kommunizieren.
- Wie in FIG. 1 zu sehen ist, enthält der Steuerabschnitt 20 eine Adreßwarteschlange 26, die die Form eines FIFO-Registers (FIFO = First-In, First-Out) annimmt, das aus vier separaten, jeweils dreißig Bit breiten Registern 26&sub1;,26&sub2;,26&sub3; und 26&sub4; besteht. Jedem der vier Register 26&sub1;,26&sub2;,26&sub3; und 26&sub4; wird über einen Bus 27 eins von vier Dreißig-Bit-Adreßworten (SA[31:02]) aus einer (nicht gezeigten) externen Quelle, wie zum Beispiel einem Mikroprozessor oder dergleichen, die an die RAM-Banken 12 angekoppelt ist, zugeführt. Jedes Adreßwort SA[31:02] zeigt die Adresse einer Speicherstelle in einer der RAM-Banken 12 oder eine Speicherstelle in dem Steuerabschnitt 20 selbst an. Durch Konfigurieren der Adreßwarteschlange 26 von vier separaten Registern 26&sub1;,26&sub2;,26&sub3; und 26&sub4; kann ein in einem der vier Register gespeichertes Adreßwort gelesen werden, während ein neues Adreßwort in ein anderes Register in der Warteschlange eingegeben werden kann, um einen rascheren Zugriff zu ermöglichen.
- Jedes Adreßwort SA[31:02] wird mit einem Vier-Bit-Paritätswort SAP0-SAP3 ausgestattet. Das Paritätswort SAP0-SAP3, mit dem jedes Adreßwort SA[31:02] ausgestattet wurde, wird nicht in der Adreßwarteschlange gespeichert, sondern in einem Haltespeicher 28. Nachdem das Paritätswort SAP0-SAP3 an dem Haltespeicher 28 empfangen wurde, wird es zu einer Paritätsprüfschaltung 30 weitergeleitet, die aus einem (nicht gezeigten) OR-Gatter-Baum konfiguriert ist. Wenn die Paritätsprüf schaltung 30 auf eine nachfolgend beschriebene Weise funktionsfähig gemacht wurde, wertet sie das Paritätswort SAP0-SAP3 aus, um festzustellen, ob das Adreßwort SA[31:02] die richtige Parität aufweist.
- Die Handlung, die die Paritätsprüfschaltung unternimmt, wenn das Paritätswort als fehlerhaft befunden wird, richtet sich danach, ob sich das Adreßwort SA[31:02] auf eine Speicherstelle in einer der RAM-Banken 12 oder auf eine Speicherstelle in der Schaltung 10 selbst bezieht. Wenn sich das Adreßwort SA[31:02] auf eine Speicherstelle in einer RAM-Bank 12 bezieht, und däs zugeordnete Paritätswort SAP0-SAP3 eine falsche Parität anzeigt, dann wird verhindert, daß die Adreßwarteschlange solch eine Adresse auf den Bus 18 plaziert. Wenn sich andererseits das Adreßwort SA[31:02] auf eine Speicherstelle in der Schaltung 10 bezieht, und das zugeordnete Paritätswort SAP0-SAP3 eine falsche Parität anzeigt, gibt die Adreßwarteschlange 26 das Adreßwort trotzdem aus. Auf diese Weise wird die Kommunikation mit der Schaltung 10 gestattet, obwohl vielleicht nicht die richtige Speicherstelle darin adressiert wird.
- Das durch die Adreßwarteschlange 26 ausgegebene Adreßwort SA[31:021 wird in den Adressenverschieber 32 eingegeben, der aus einer Verknüpfungschaltung besteht, um selektiv Bits des Adreßworts gemäß der Speicherbreite und Speicherseitengröße zu verschieben und zu löschen. Die Seitengröße wird vom Benutzer gewählt und bestimmt die Anzahl von aufeinanderfolgenden Speicherstellen, auf die während des Betriebs der RAMs 14&sub1;,14&sub2;,14&sub3;...14n im Seiten-Burst-Modus zugegriffen werden kann. In der bevorzugten Ausführungsform der Schaltung 10 beträgt die Seitengröße typischerweise zwei für ein zweiunddreißig Bit breites Datenwort (es ist zu beachten, daß die Seitengröße sogar sechzehn betragen kann). Die Speichergröße beeinflußt die Anzahl der Bit in dem Adreßwort SA[31:02], die die Zeile und Spalte der gewünschten Stelle identifizieren, auf die zugegriffen werden soll. Zum Beispiel sind in einer bevorzugten Ausführungsform, bei der jeder der RAMs 14&sub1;,14&sub2;,14&sub3;...14n der Gattung 4M x 1 angehört, die Teile des Adreßworts SA[31:02], die Zeilen bzw. Spalten identifizieren, jeweils elf Bit lang.
- Die Adressenverschiebungsschaltung 32 ist an einen Zeilenadressenmultiplexer 34 angekoppelt, der dazu dient, das von dem Adressenverschieber verarbeitete Adreßwort mit einem die Speicherbreite anzeigenden Signal zu multiplexen, um ein Signal zu produzieren, das die Zeilenadresse der gewünschten Speicherstelle in einer konkreten RAM-Bank 12 anzeigt. Die Ausgabe des Zeilenadressenmultiplexers ist an den Eingang eines Multiplexers 35 angekoppelt, der den Adreßbus 16 speist.
- Die Adressenverschiebungsschaltung 32 ist außerdem an einen Spaltenadressenmultiplexer 36 angekoppelt. Der Spaltenadressenmultiplexer 36 dient dazu, das von dem Adressenverschieber verarbeitete Adreßwort mit einem Signal zu multiplexen, das die Dichte und Breite der RAMs 14&sub1;,14&sub2;,14&sub3;...14n in jeder Bank 12 anzeigt, so daß sich ein Adreßzählwert für einen Adressenzähler 38 ergibt, dessen Ausgangssignal die Spaltenadresse der Speicherstelle in der konkreten RAM-Bank 12 angibt. Die Ausgabe des Zählers 38 wird in einen Logikblock 40 eingegeben, der dazu dient, den Adreßzählwert während der Adressierung im Seitenmodus entweder zu inkrementieren oder zu komplementieren. Die Ausgabe des Logikblocks 38 wird in den Multiplexer 35 eingegeben, der wie beschrieben den Adreßbus 16 speist. Ein Auffrischlogikblock 42 in Form eines Zählers speist ebenfalls den Multiplexer 35, um auf dem Adreßbus 16 eine Auffrischadresse bereitzustellen.
- Um das Adressieren mehrerer RAM-Banken 12 zu unterstützen, enthält der Steuerabschnitt 20 eine Adressenkomparator- und Zeilen-/Spaltenadreßübernahmesignalgeneratoreinheit 44. In der Einheit 44 befindet sich ein (nicht gezeigter) Komparator, der dazu dient, das aus der Adreßwarteschlange 26 empfangene Adreßwort mit einer vorgeschriebenen Liste von Adreßworten zu vergleichen, um zu bestimmen, in welcher der Banken 12 die dem Adreßwort SD[31:02] entsprechende Speicherstelle liegt. Aufgrund der Ergebnisse dieses Vergleichens erzeugt jede logische Schaltung eines (nicht gezeigten) Paars logischer Schaltungen in der Einheit 44 jeweils ein einzelnes Acht-Bit-Signal eines Paars von Acht-Bit-Signalen RAS 0-7 bzw. CAS 0-7, um den Zugriff auf die Zeile bzw. Spalte der konkreten Bank 12 zu ermöglichen, die die gewünschte Stelle enthält, auf die zugegriffen werden soll. Die Auffrischlogikschaltung 42, die dazu dient, die Adressenleitung 16 aufzufrischen, dient außerdem zum Auffrischen der Einheit 44.
- In dem Steuerabschnitt 20 befindet sich außerdem eine Registeranordnung 46, die siebzehn einzelne Register 46&sub1;-46&sub1;&sub7; zum Speichern von Befehlsinformationen und auf einem Eingangsbus 47 empfangenen Daten enthält. FIG. 2 ist eine Übersicht der Registeranordnung 46, in der die Adressen (in hexadezimaler Darstellung) der einzelnen Register 46&sub1;- 46&sub1;&sub7; (x bedeutet einen beliebigen Wert) und der Register-Zugriffsmodus (d.h. ob es ein Schreib-/Leseoder ein Nur-Lese-Register ist) enthalten sind.
- Das Register 46&sub1; in der Registeranordnung 46 ist typischerweise zweiunddreißig Bit breit und wird nachfolgend als das Befehlsregister bezeichnet, weil es ein Zweiunddreißig-Bit-Befehlswort speichert, das die Funktion der Schaltung 10 steuert. FIG. 3 ist eine Liste der Bitfelder in dem Befehlsregister 46&sub1;. Der Status von Bit 0 bestimmt, ob der Steuerabschnitt 20 eine Durchlaufprüfung auf einer oder mehreren der von der Schaltung 10 gesteuerten acht RAM-Banken 12 einleitet. Die Bit 1-8 aktivieren jeweils eine einzelne der acht RAM-Banken 12 für das Prüfen. Das Bit 9 bestimmt, ob das Prüfen der angegebenen RAM-Bank 12 bis zum Schluß laufen soll, oder unterbrochen werden soll, wenn ein Fehler gefunden wird. Das Bit 10 bestimmt, ob der Logikblock 38 die durch den Spaltenadreßmultiplexer 36 ausgegebene Spaltenadresse inkrementiert oder komplementiert. Die Bit 12 und 13 zeigen die Anzahl von aufeinanderfolgenden Zugriffen an, die während des Zugriffs auf jede RAM-Bank 12 im Seitenmodus abgeschlossen werden sollen. Die Bit 14 und 15 zeigen die Adreßwarteschlangentiefe an, d.h. die Gesamtzahl der Register 26&sub1;,26&sub2;,26&sub3; und 26&sub4;, die eingesetzt werden, um eintreffende Adressen zu speichern. Die Bit 16 und 17 bestimmen das Auffrischintervall.
- Der Status von Bit 18 bestimmt, ob der Steuerabschnitt eine Speicherlöschoperation ausführt, d.h. die Korrektur eines einzelnen fehlerhaften Bits, das während einer normalen Leseoperation gefunden wurde. Die Bit 19-26 zeigen an, welche der Banken 12 gerade aktiv ist. Das Bit 28 gibt die Möglichkeit, die Auffrischlogikschaltung zu deaktivieren, um externe Auffrischbefehle zu erleichtern. Das Bit 29 gestattet es, die Parität der Adreßeingabe in die Adreßwarteschlange 26 auf gerade oder ungerade zu setzen, während das Bit 30 steuert, ob das Adreßwort SA[31:2], das in die Adreßwarteschlange eingegeben wurde, von der Paritätsprüfungschaltung 30 auf Parität geprüft werden soll. Die Bit 11, 27 und 31 sind für zukünftige Verwendung reserviert.
- Bezugnehmend auf FIG. 2 ist das Register 462 in der Registeranordnung 46 typischerweise zweiunddreißig Bit breit und wird nachfolgend als das Statusregister bezeichnet, weil es ein Zweiunddreißig- Bit-Statuswort speichert, das Informationen über die Anwesenheit und die Bestückung der RAM-Banken 12 enthält. FIG. 4 ist eine Liste der Bitfelder in dem Statusregister 46&sub2;. Die Bit 0-3 des Statusregisters 462 legen einen Vier-Bit-Identifizierungscode für den Steuerabschnitt 20 der Prüf- und Steuerschaltung 10 fest. Indem dem Steuerabschnitt 20 ein spezifischer Code zugeordnet wird, ist es dann möglich, den Steuerabschnitten separater Schaltungen 10 zu gestatten, verschiedene RAM-Banken 12 auf derselben Leiterplatte 15 zu steuern. Die Bit 4-11 zeigen an, wieviele Banken 12 von RAMs 14&sub1;,14&sub2;,14&sub3;...14n vorliegen (d.h. wieviele durch die Schaltung 10 gesteuert und geprüft werden sollen). Die Bitpaare 13:12, 15:14, 17:16, 19:18, 21:20, 23:22, 25:24 und 27:26 zeigen die Konfiguration einer der durch den Steuerabschnitt 20 gesteuerten acht RAM-Banken 12 an. Obwohl jeder der RAM 14&sub1;,14&sub2;,14&sub3;...14n als der Gattung 4M x 1 angehörend beschrieben wurde, ist die Steuerung 20 völlig in der Lage, RAM der Gattungen 256K x 1, 256K x 41 1M x 1, 1M x 4, 4M x 1, 4M x 4, 16M x 1 oder 16M x 4 zu steuern. Das Bit 28 zeigt eine bestimmte Version der Schaltung 10 an. Die Bit 29-31 zeigen an, welche der acht separaten zu prüfenden Speicherbanken 12 einen Fehler enthält.
- Bezugnehmend auf FIG. 2 ist das Register 46&sub3; in der Registeranordnung 46 typischerweise zweiunddreißig Bit breit und wird als das Fehleradreßregister bezeichnet, weil es die Adresse der ersten Stelle in den Speicherbanken 12 speichert, von denen festgestellt wurde, daß sie einen Fehler enthalten. Der Fehler muß nicht von der schwerwiegenden Art sein, wie zum Beispiel bei einem einfachen Bitfehler oder einem Speicher-Durchlaufprüffehler. Dagegen kann der Fehler schwerwiegend sein, wie zum Beispiel bei einem mehrfachen Bitfehler, einem Schreibdaten-Paritätsfehler, einem Adreßparitätsfehler oder einem Speicherbankfehler.
- Das Register 46&sub4; in der Registeranordnung 46 ist ebenfalls typischerweise zweiunddreißig Bit breit und wird als das Übernahmeformregister bezeichnet, weil es ein Bitmuster speichert, das die Parameter der Zeilenadreßübernahmesignale (RAS - Row Address Strobe) und der Spaltenadreßübernahmesignale (CAS - Column Address Strobe) festlegt, die von dem Adressenkomparator und dem RAS- und CAS-Generator 44 von FIG. 1 erzeugt werden.
- In der Registeranordnung 46 befinden sich die vier Register 46&sub5;-46&sub8;, die typischerweise jeweils zweiunddreißig Bit breit sind. Jedes der Register 46&sub5;- 46&sub8; wird als ein Durchlaufprüfregister bezeichnet, weil das Register eine Gruppe von während des Prüfens einer RAM-Bank 12 auszuführenden "Durchlaufprüfelementen" speichert. Jedes Durchlaufprüfelement besteht aus einer oder mehreren Folgen von Lese- und Schreiboperationen. In der gezeigten Ausführungsform kann jedes Durchlaufelement aus sogar sieben separaten Lese- und Schreiboperationen bestehen.
- FIG. 5 ist eine Liste der Bitfelder in einem Durchlaufelement. Die Bit 2:0 in dem Element geben die Anzahl von damit angegebenen Lese-/Schreiboperationen an (bis zu sieben). Das Bit 3 gibt an, ob die das Durchlaufelement umfassenden Operationen auf aufeinanderfolgende Speicherstellen in aufsteigender oder in absteigender Adreßreihenfolge angewendet werden sollen. Die Bit 5:4 geben die Art der ersten Operation der Durchlaufprüfung an (d.h. ob die Operation eine Lese- oder eine Schreiboperation ist). Die Bitpaare 7:6, 9:8, 11:10, 13:12, 15:14 und 17:16 geben jeweils die Art der übrigen sechs Operationen der Durchlaufelemente an.
- Bezugnehmend auf FIG. 2 sind die Register 46&sub9;-46&sub1;&sub6; typischerweise jeweils zweiunddreißig Bit breit, wobei jedes als ein "Bank-Adreßgrenzregister" für eine entsprechende Bank der acht RAM-Banken 12 bezeichnet wird. Jede Bank 12 weist eine Startadresse (eine "untere" Adresse) und eine Endadresse (eine "obere" Adresse) für alle Speicherstellen in dieser Bank auf. Die untere und die obere Adresse werden als die "Bankgrenzadressen" bezeichnet. Die Bankgrenzadresse für jede der acht RAM-Banken 12 wird jeweils in einem der Bankgrenzregister 46&sub9;-46&sub1;&sub6; gespeichert. Auf diese Weise kann eine eintreffende Adresse mit den Werten in einem der acht Bank- Adreßgrenzregister 46&sub9;-46&sub1;&sub6; verglichen werden, um zu bestimmen, auf welche Bank zugegriffen wird.
- Bezugnehmend auf FIG. 2 enthält die Registeranordnung 46 außerdem das Register 46&sub1;&sub7;, das typischerweise zweiunddreißig Bit breit ist. Das Register 46&sub1;&sub7; wird als ein Fehlerflaggenregister bezeichnet, da der Zustand der verschiedenen Bit in dem Register anzeigt, ob verschiedene Fehler während des Prüfens aufgetreten sind. FIG. 6 ist eine Liste der Bitfelder in dem Register 46&sub1;&sub7;. Jedes der Bit 7:0 stellt die Anwesenheit oder Abwesenheit eines einzelnen von acht verschiedenen Fehlertypen dar. Die Bit 31:8 sind für zukünftige Verwendung reserviert.
- Bezugnehmend auf FIG. 1 befindet sich in dem Steuerabschnitt 20 ein Operationscode-Generator 48 (typischerweise ein Codierer), der einen Vier-Bit- Operationscode erzeugt ("Opcode"), der im Einklang mit extern über den Bus 27 in den Steuerabschnitt eingegebenen Befehlscodes mit dem Ausdruck OPCODE[3:0] bezeichnet wird. Der durch den Opcode-Generator 48 erzeugte Vier-Bit-Opcode kennzeichnet eine bestimmte von sechzehn verschiedenen, auf den RAM-Banken 12 auszuführenden Operationen. FIG. 7 zeigt eine Tabelle der Operationscodes, die von dem Opcode-Generator 48 erzeugt werden, und die Operationen, die dem jeweiligen Opcode entsprechen.
- Bezugnehmend auf FIG. 1 wird der durch den Opcode-Generator 48 von FIG. 1 erzeugte Vier-Bit-Opcode sowohl in den Datenwegabschnitt 22 als auch in einen in FIG. 8 dargestellten Automaten 50 eingegeben. Bezugnehmend auf FIG. 8 weist der Automat 50 typischerweise dreizehn Zustände auf und besteht aus dreizehn Verknüpfungselementen 52&sub1;,52&sub2;,52&sub3;...52&sub1;&sub3; und dreizehn separaten Flipflops 52&sub1;,52&sub2;,52&sub3;...52&sub1;&sub3; die jeweils einer entsprechenden Verknüpfungsschaltung zugeordnet sind. Die Verknüpfungsschaltungen 52&sub1;,52&sub2;,52&sub3;...52&sub1;&sub3; weisen jeweils eine Menge von Eingängen I&sub1;,I&sub2;...In auf, denen eins der Bit des Opcodes aus dem Opcode-Generator sowie bestimmte Bit aus dem Befehlsregister 46&sub1; zugeführt werden. Jede der Verknüpfungsschaltungen weist einen einzigen Ausgang auf, der jeweils an den D-Eingang eines entsprechenden der Flipflops 52&sub1;,52&sub2;,52&sub3;...52&sub1;&sub3; angekoppelt ist. In jeder der Verknüpfungsschaltungen 52&sub1;,52&sub2;,52&sub3;... 52&sub1;&sub3; befindet sich eine Menge von (nicht gezeigten) Logikgattern der NAND-, AND-, NOR- und OR-Gattung, die so geschaltet sind, daß jede Schaltung nur dann eine "1" an ihrem Ausgang produziert, wenn am Eingang der Schaltung ein bestimmtes Bitmuster vorliegt.
- Wenn an seinen D-Eingang eine "1" angelegt wird, produziert jedes der Flipflops 54&sub1;,54&sub2;,54&sub3;...54&sub1;&sub3; jeweils eins einer Menge von Zustandsbit sti, st0, st1, st2, st2e, st2c, st3, st3e, st3c, st4, st4e, st4c bzw. std des Logikpegels "1". Die Verknüpfungsschaltungen 52&sub1;,52&sub2;,52&sub3;...52&sub1;&sub3; sind so konfiguriert, daß zu jedem gegebenen Zeitpunkt nur eines der Zustandsbit sti, st0, st1, st2, st2e, st2c, st3, st3e, st3c, st4, st4e, st4c und stD gesetzt ist (d.h. sich auf einem Pegel "1" befindet). FIG. 9 zeigt die Folge der Zustandsbit, die von den Flipflops 54&sub1;-54&sub1;&sub3; während jeder der verschiedenen Operationen der Schaltung 10 von FIG. 1 produziert werden. Die Zustandsbit aus dem Automaten 50 von FIG. 1 werden an verschiedene Elemente der Schaltung 10 verteilt, um eine der in FIG. 9 beschriebenen Operationen zu bewirken.
- Bezugnehmend auf FIG. 1 ist eine Durchlaufprüf-Verzögerungs- und Initialisierungslogikeinheit 55 an den Automaten 50 und die Adreßkomparator- und Zeilen-/Spaltenadreßübernahmesignalgeneratoreinheit 44 angekoppelt. Die Einheit 55 dient dazu, die Ausführung einer Durchlaufprüfung auf ausgewählten RAM-Banken 12 einzuleiten. FIG. 10 ist ein Blockschaltbild der Logikeinheit 55. Wie in FIG. 10 zu sehen ist, enthält die Logikeinheit 55 ein Achtzehn- Bit-Zwischenregister 55&sub1; zum Speichern der achtzehn niedrigstwertigen Bit in einem sukzessiven der Durchlaufprüfregister (MT-Register, MT - March Test) 46&sub5;-46&sub8;, die die Durchlaufprüfelemente in diesem Register darstellen. In der Praxis werden die jeweils zweiunddreißig Bit breiten Durchlaufprüfregister 46&sub5;- 46&sub8; zusammen als ein einziges 128-Bit-Schieberegister behandelt, um das sequentiell, beginnend zuerst mit dem Register 46&sub5;, erfolgende Herausschieben der in diesen Registern gespeicherten Durchlaufelemente zu erleichtern.
- Um solches Verschieben zu erleichtern, werden die drei niedrigstwertigen Bit, die in dem Register 55&sub1; gespeichert sind (und die Anzahl der Operationen in dem Durchlaufprüfelement darstellen, das gerade aus einem sukzessiven der Register 46&sub5;-46&sub8; ausgelesen wurde) sowohl in einen "Alle-Null"-Detektor (d.h. ein NOR- Gatter mit drei Eingängen) 55&sub2; als auch in eine erste Addiererschaltung 55&sub3; eingegeben. Für den Fall, daß die drei niedrigstwertigen Bit in dem Register 55&sub1; alle von Null verschieden sind (was anzeigt, daß das aktuelle Durchlaufprüfelement eine oder mehrere Operationen enthält), bestimmt die erste Addiererschaltung 55&sub3; die Anzahl der aus den Durchlaufprüfregistern 46&sub5;-46&sub8; auszuschiebenden Bit, um das nächste Durchlaufprüfelement abzurufen. Die Ausgabe des ersten Addierers 55&sub3; wird einem ersten Eingang eines OR- Gatters 55&sub4; mit zwei Eingängen zugeführt, dessen Ausgangssignal das Ausschieben der Bit aus den Durchlaufprüfregistern 46&sub5;-46&sub8; heraus und in das Register 55&sub1; hinein steuert.
- Der Ausgang des "Alle-Null"-Detektors 55&sub2; ist an eine zweite Addiererschaltung 55&sub5; angekoppelt, dessen Ausgang an den zweiten Eingang des OR-Gatters 55&sub4; angekoppelt ist. Der zweite Addierer 55&sub5; bestimmt die Anzahl der aus den Registern 46&sub5;-46&sub8; auszuschiebenden Bit, um zu dem ersten Durchlaufprüfelement in dem ersten Durchlaufprüfregister 46&sub5; zurückzukehren, wenn ein "Alle-Null"-Zustand erkannt wurde. Wie einzusehen ist, tritt ein "Alle-Null"-Zustand auf, wenn die Anzahl der Operationen in dem aktuellen Durchlaufprüfelement null ist. Wenn das aktuelle Durchlaufprüfelement keine Operationen aufweist, dann weisen die übrigen, folgenden Durchlaufprüfelemente auch null Operationen auf. Somit ist es beim Antreffen eines "Alle-Null"- Zustands wünschenswert, durch die übrigen Stellen in den Durchlaufprüfregistern 46&sub5;-46&sub8; hindurchzuschieben, um zu dem ersten Durchlaufprüfelement in dem ersten Durchlaufprüfregister zurückzukehren.
- Die Ausgänge der Addierer 55&sub3; und 55&sub5; werden an einen Sieben-Bit-Zähler 55&sub6; angekoppelt, der dazu dient, die Gesamtzahl der aus den Durchlaufprüfregistern 46&sub5;-46&sub8; ausgeschobenen Bit zu zählen. Auf diese Weise kann festgestellt werden, wann 128 Bit (der gesamte Inhalt der Durchlaufprüfregister 46&sub5;-46&sub8;) herausgeschoben worden sind.
- Das viertniedrigstwertige in dem Register 55&sub1; gespeicherte Bit, das das Adreßfortschrittbit des gegenwärtig aktiven Durchlaufprüfelements darstellt, wird in einen ersten Eingang eines Gatters einer ersten Menge von zwölf XOR-Gattern eingegeben, die zusammen durch das Gatter 55&sub8; dargestellt sind. Das viertniedrigstwertige in dem Register 55&sub1; wird außerdem in einen ersten Eingang eines Gatters einer zweiten Menge von zwölf XOR-Gattern eingegeben, die zusammen durch das Gatter 55&sub1;&sub0; dargestellt sind. Jedem zweiten Eingang jedes Gatters der ersten Menge von zwölf XOR- Gattern, die durch das Gatter 55&sub8; dargestellt sind, wird eines der von einem Zwölf-Bit-Zähler 55&sub1;&sub1; erzeugten Bit zugeführt, wobei der Zählwert des Zählers der Zeilenadresse der konkreten RAM-Bank 12 entspricht, auf deren Speicherstelle für Prüfzwecke zugegriffen werden soll. Die Ausgabe der ersten Menge von zwölf XOR-Gattern, die durch das Gatter 55&sub8; dargestellt sind, wird dem Adressenkomparator und Zeilen-/Spaltenadreßübernahmesignalgenerator 44 von FIG. 1 zugeführt.
- Die vier höchstwertigen Bit des Zählers 55&sub1;&sub1; werden in einen Multiplexer 55&sub1;&sub2; eingegeben, der durch ein Signal gesteuert wird, das die Dichte der RAMs 14&sub1;,14&sub2;,14&sub3;...14n in den Banken 12 anzeigt. Das Ausgangssignal des Multiplexers 55&sub1;&sub2; stellt die Zeilenadresse der konkreten RAM-Bank 12 dar, auf die zugegriffen werden soll, und wird in einen zweiten Zwölf-Bit-Zähler 55&sub1;&sub3; eingegeben, der dazu dient, eine Spaltenadresse der konkreten RAM-Bank 12, auf die zugegriffen werden soll, zu erzeugen. Die zwölf niedrigstwertigen Bit des Zählers 55&sub1;&sub3; werden dem zweiten Eingang der zweiten Menge von zwölf XOR- Gattern, die durch das Gatter 55&sub1;&sub0; dargestellt sind, zugeführt. Das Ausgangssignal des Gatters 55&sub1;&sub0; wird der Ansteuersignalgeneratoreinheit 44 zugeführt.
- Die vier höchstwertigen Bit des Zählers 55&sub1;&sub3; werden in einen Multiplexer 55&sub8;eingegeben, der wie der Multiplexer 55&sub1;&sub2; durch ein Signal gesteuert wird, das die Dichte der RAMs 14&sub1;-14n in den RAM-Banken 12 anzeigt. Das Ausgangssignal des Multiplexers 55&sub1;&sub4; stellt die Spalte der RAM-Bank 12 dar, auf die gerade zugegriffen wird, und wird in einen Zähler 55&sub1;&sub6; eingegeben, in den typischerweise anfänglich Daten aus einem Register 55&sub1;&sub8; geladen werden, dem aus dem Statusregister 46&sub2; die Anzahl der vorliegende RAM- Banken 12 zugeführt wird. Als Reaktion auf das Signal aus dem Multiplexer 55&sub1;&sub4; wird der Zähler 55&sub1;&sub6; dekrementiert. Somit gibt der Zähler 55&sub1;&sub6; ein Signal mit einem vorbestimmten Zustand aus, wenn alle RAM- Banken 12 geprüft worden sind.
- Die vierzehn höchstwertigen Bit der in dem Register 55&sub1; gespeicherten Daten, die die sieben einzelnen Operationen des gerade aktiven Durchlaufelements darstellen, werden in einen Multiplexer 55&sub1;&sub9; eingegeben, der aus zwei einzelnen 7:1-Multiplexern besteht. Der Multiplexer 55&sub1;&sub9; wird durch einen Drei-Bit-Zähler 55&sub2;&sub0; gesteuert, der bestimmt, welches Paar der in den Multiplexer eingegebenen Bit an einen Decodierer 55&sub2;&sub1; ausgegeben werden, der die Bit decodiert, so daß sich eins von vier Signalen WRITE DATA,
- READ DATA und
- ergibt. Die Signale aus dem Decodierer 55&sub2;&sub1; werden dem Automaten 50 von FIG. 1 zugeführt, und der Durchlaufprüfgenerator- und Fehlererkennungseinheit 68 von FIG. 1.
- Der Datenwegabschnitt 22 enthält eine Schreibdatenwarteschlange 56, bei der es sich typischerweise um einen FIFO-Baustein handelt, der aus vier Registern 56&sub1;,56&sub2;,56&sub3; und 56&sub4; besteht, denen über einen Bus 57 eins von vier Dreißig-Bit-Datenworten SD[31:00] zugeführt wird. Da jedes Datenwort zweiunddreißig Bit breit ist, weist jedes der Register 56&sub1;,56&sub2;,56&sub3; und 56&sub4; in der Datenwarteschlange 56 gleichermaßen eine Breite von zweiunddreißig Bit auf. Für den Fall, daß die Datenworte eine größere Breite aufweisen (zum Beispiel 256 Bit), würde jedes der Register 56&sub1;,56&sub2;,56&sub3; und 56&sub4; eine entsprechend größere Breite aufweisen.
- Zusammen mit jedem Datenwort SD[31:00] wird ein Vier-Bit-Paritätswort SDP[3:01 zur Verfügung gestellt, das die Parität des Datenworts anzeigt. Bei Empfang wird jedes Paritätswort SDP[3:0] separat in einem Haltespeicher 58 gespeichert, bevor es einer Paritätsprüfschaltung 60 zugeführt wird, die denselben prinzipiellen Aufbau wie die Paritätsprüfschaltung 30 aufweist. Die Paritätsprüfschaltung 60 prüft, wenn sie auf die bereits beschriebene Weise aktiviert wird, das Paritätswort SDP[3:0], um festzustellen, ob das eintreffende Datenwort SD[31:00] die richtige Parität aufweist. Wie im Fall der Adreßwarteschlange 26 richtet sich die einer Feststellung falscher Parität des eintreffenden Datenworts SD[31:00] folgende Handlung danach, ob die Daten in eine der RAM-Banken 12 oder in die Schaltung 10 eingeschrieben werden sollen. Ein Datenwort SD[31:00] mit falscher Parität wird nicht aus der Schreibdatenwarteschlange 56 in die RAM-Bank 12 eingeschrieben, sondern wird aus der Warteschlange in eine Speicherstelle der Schaltung 10 eingeschrieben.
- Das Datenwort SD[31:00], das zuerst in die Schreibdatenwarteschlange 56 eingeschrieben wurde, wird an einen Prüfbitgenerator 62 ausgegeben, bei dem es sich typischerweise um einen (nicht gezeigten) XOR- Gatter-Baum handelt und der, wenn er auf die bereits beschriebene Weise aktiviert wird, dazu dient, ein Sieben-Bit-Paritäts- oder Prüfsummenmuster für jedes Datenwort zu erzeugen. Das Datenwort SD[31:00] wird zusammen mit dem Sieben-Bit-Paritätsmuster auf den Datenbus 16 zur Übertragung zu den RAM-Banken 12 ausgegeben.
- Neben der Schreibdatenwarteschlange 56 enthält der Datenwegabschnitt 22 außerdem eine Lesedatenwarteschlange 64, die typischerweise aus vier einzelnen Registern 64&sub1;,64&sub2;,64&sub3; und 64&sub4; besteht, wobei jedes Register dazu dient, ein aus einem der RAM-Banken 12 ausgelesenes Datenwort zu speichern. Jedes der Register 64&sub1;,64&sub2;,64&sub3; und 64&sub4; ist so breit wie die in den RAM-Banken 12 gespeicherten Datenworte.
- Der Datenwegabschnitt 22 enthält außerdem eine Registeranordnung 66, die auf den Bus 57 eingegebene und durch die Schreibdatenwarteschlange 56 gepufferte Befehle empfängt. Bezugnehmend auf FIG. 11, die eine Übersicht der Registeranordnung 64 darstellt, liegen ein Befehlsregister 66&sub1;, ein Statusregister 66&sub2; und ein Fehlerregister 66&sub3; vor. Wie durch ihre jeweilige Namen angedeutet wird, dient jedes der Befehls-, Status- bzw. Fehlerregister 64&sub1;,64&sub2; und 64&sub3; zum Speichern von Befehlen, Statusinformationen bzw. Fehlerdaten. Wie bereits angegeben beträgt in der bevorzugten Ausführungsform die Länge des durch jede RAM-Bank 12 gespeicherten Datenworts zweiunddreißig Bit. Für den Fall, daß das Datenwort eine größere Länge aufweist und eine größere Anordnung von RAM-Banken 12 impliziert, kann es notwendig werden, die Eigenschaften des Datenwegabschnitts 22 zu reproduzieren, wobei separate (nicht gezeigte) Befehlszustands- und Fehlerregister zum Steuern und Prüfen der zusätzlichen RAM-Banken hinzugefügt werden.
- FIG. 12 ist eine Liste der Bitfelder in dem Befehlsregister 66&sub1; von FIG. 11. In dem Befehlsregister 66&sub1; gibt das Bitpaar 1:0 die Tiefe (Anzahl von aktiven Registern) in der Schreibdatenwarteschlange 56 an, während das Bitpaar 3:2 die Tiefe der Lesedatenwarteschlange 64 angibt. Das Bit 4 gibt an, ob das in die dem Befehlsregister zugeordnete RAM-Bank 12 hineingeschriebene Datenwort eine gerade oder ungerade Parität aufweist. Das Bit 5 gibt an, ob eine Paritätsprüfung durch die Paritätsprüfschaltung 60 durchgeführt werden soll. Das Bit 6 erzwingt, wenn es gesetzt ist, daß das Paritätsbitmuster des aus der zugeordneten RAM-Bank 12 ausgelesenen Datenworts SDP[3:0] absichtlich falsch ist, um es anderen Schaltkreisen zu gestatten, die Parität dieses Datenworts zu prüfen. Das Bit 7 steuert, ob das überprüfen von Fehlern in der zugeordneten RAM-Bank 12 tatsächlich ausgeführt werden soll.
- Die Bit 14:8 dienen dazu, ein vorgewähltes Sieben-Bit-Paritätsmuster zu speichern, das das durch den Prüfbitmustergenerator 62 erzeugte Prüfbitmuster ersetzen soll. Das Bit 15 steuert, ob das durch die Bit 14:8 dargestellte Prüfbitmuster das von dem Mustergenerator 62 erzeugte Muster ersetzen soll. Das Bit 16 bestimmt die Art der durchzuführenden Speicherprüfung, d.h. entweder Einzel- oder Doppelfehlererkennung, oder Paritätsprüfung. Das Bit 17 bestimmt, ob ein einzelner falscher Speicherfehler korrigiert werden soll oder nicht. Die Bit 19:18 geben an, welche der Bit des Datenworts SD[31:0] auf eine Parität mit falschem Wert gezwungen werden, wenn das Bit 6 gesetzt ist. Das Bit 20 bestimmt gerade bzw. ungerade Parität für paritätsgeprüften Speicher. Das Bit 21 bestimmt, welches von zwei verschiedenen Prüfmustern bei der Durchführung einer Durchlaufprüfung auf den RAM-Banken 12 eingesetzt werden sollen. Wenn das Bit 21 gesetzt ist, dann wird ein Musterpaar 0101....01/1010...10 eingesetzt. Andernfalls wird das Muster 000...0/1111...1 eingesetzt. Die Bit 31:22 sind reserviert.
- FIG. 13 ist eine Liste der Bitfelder in dem Statusregister 66&sub2; von FIG. 11. Die Bit 0, 1, 2 und 3 in dem Statusregister 66&sub2; zeigen jeweils die Anwesenheit eines Schreib-Paritätsfehlers, eines Einzelbit-Speicherfehlers, eines Mehrbit- Speicherfehlers bzw. eines Durchlaufprüffehlers an. Die Bit 14:8 enthalten die Syndrombit des zuletzt aus den RAM-Banken 12 ausgelesenen Datenworts. Die Bit 30:24 enthalten die Prüfbit der letzten aus den RAM-Banken 12 ausgelesenen Daten. Die Bit 7:4, 15:23 und 31 sind reserviert.
- Das Fehlerdatenregister 66&sub3; in der Registeranordnung 66 umfaßt ein zweiunddreißig Bit breites Register zum Speichern von Durchlaufprüffehlerstellenbit oder Schreib Paritätsfehlerbit, die einer bestimmten der RAM-Banken 12 zugeordnet sind. Typischerweise enthalten die Bit in diesen Registern beliebige Werte, wenn die Schaltung 10 anfänglich eingeschaltet wird.
- In dem Datenwegabschnitt 22 befindet sich eine Durchlaufprüfmustergenerator- und Fehlererkennungseinheit 68, die sowohl dazu dient, ein Durchlaufprüffehlermuster zu erzeugen, als auch dazu, nach der Musterübertragung zu den RAM-Banken 12 alle etwaigen Fehler zu erkennen. Bezugnehmend auf FIG. 14 umfaßt die Einheit 68 einen Multiplexer 70, der vier Neununddreißig-Bit-Prüfvektoren {000...0}, {111...1}, {1010...10} bzw. {0101..01} empfängt. Man erhält den Vektor {000...0}, indem der entsprechende Eingang des Multiplexers 70 auf Masse gelegt wird, während man den Vektor {111...1} erhält, indem dem entsprechenden Eingang des Multiplexers eine konstante Spannung (z.B. 5 Volt) zugeführt wird. Die übrigen beiden Vektoren {0101...01} und {1010..10} werden aus einer Kombination der Masse- und Fünf-Volt-Signale erhalten. Abhängig von dem Status des Bits 21 des Registers 66, des Befehlsregisters 66&sub1; und des konkreten Opcodes, der durch den Opcode-Generator 48 von FIG. 1 erzeugt wird, dient der Multiplexer 70 dazu, eins der Vektorpaare {000...0}, {111...1} und {1010...10}, {0101...01} während einer Durchlaufprüfung der zugeordneten RAM- Banken 12 auf den Datenbus 16 zu schreiben.
- Neben dem Multiplexer 70 umfaßt die Einheit 68 außerdem eine Menge von neununddreißig XOR-Gattern 72&sub1;-72&sub3;&sub9;, von denen jedes neununddreißig einzelne erste Eingänge aufweist, um jeweils eines der Bit eines Zweiunddreißig-Bit-Datenworts MD[31:0] und einer aus einer der RAM-Banken 12 ausgelesenen Sieben-Bit- Prüfsumme MDCHK[6:0] zu empfangen, und neununddreißig einzelne zweite Eingänge, um eines der von dem Multiplexer 70 ausgegebenen Signale zu empfangen. Wie angegeben wird über den Datenbus 16 während der Ausführung einer Durchlaufprüfung auf jeder der RAM Banken 12 ein Prüfmusterpaar aus dem Multiplexer 70 in die RAMs 14&sub1;,14&sub2;,14&sub3;...14n in jeder Bank 12 eingeschrieben. Danach wird der Inhalt der RAMs 14&sub1;,14&sub2;,14&sub3;...14n in dieser Bank gelesen und dann vor der Eingabe in die XOR-Gatter 72&sub1;-72&sub3;&sub9; der Einheit 68 in einem Zwischenregister 74 gespeichert. Bei Empfang des Datenworts MD[31:0] und der Sieben-Bit-Prüfsumme MDCHK[6:0] aus dem Zwischenregister 74 produziert die Kombination von XOR-Gattern 72&sub1;-72&sub3;&sub9; ein Signal, das einen Speicherfehler anzeigt, sowie ein Neununddreißig- Bit-Signal, das die Stelle (Bitposition) des Fehlers anzeigt. Diese Informationen werden der Registeranordnung 66 zur Speicherung in einem entsprechenen der Fehlerregister 66&sub3;, 66&sub6;, 66&sub9;, 66&sub1;&sub2;, 66&sub1;&sub5;, 66&sub1;&sub8;, 66&sub2;&sub1; und 66&sub2;&sub4;, die der gerade geprüften RAM-Bank 12 zugeordnet sind, zugeführt.
- Neben dem Ausführen einer Durchlaufprüfung und dem Erkennnen von als Ergebnis dieser auftretenden Fehlern dient der Datenwegabschnitt 22 außerdem zum Erkennen von Bitfehlern von Daten, die aus jeder RAM- Bank 12 ausgelesen wurden, und zu ihrer Korrektur, wenn der Fehler dem Einzelbittyp angehört. Zu diesem Zweck enthält der Datenwegabschnitt 22 einen die Form eines XOR-Gatter-Baums annehmenden Syndromgenerator 76 zum Erkennen eines Fehlers in dem Datenwort MD[31:0] und der Sieben-Bit-Prüfsumme MDCHK[6:0], die nach dem Auslesen aus einer RAM-Bank 12 in einem Zwischenregister 76 gespeichert wurden. Alle etwaigen Fehler in diesem Datenwort MD[31:0] und seiner Sieben- Bit-Prüfsumme MDCHK[6:0] spiegeln sich in dem Ausgangssignal des Syndromgenerators 76 wieder, das sowohl der Registeranordnung 66 als auch einer Fehlerauffindungsschaltung 78 zugeführt wird, die typischerweise aus neununddreißig (nicht gezeigten) separaten NAND-Gattern besteht. Die Fehlerauffindungsschaltung 78 zeigt beim Empfang des Ausgangssignals des Syndromgenerators 76 auf die Bitposition des Fehlers in dem Datenwort MD[31:01 und der Sieben-Bit-Prüfsumme MDCHK[6:0].
- An den Ausgang der Fehlerauffindungsschaltung 78 ist eine Fehlerkorrekturschaltung 80 angekoppelt. Praktisch besteht die Fehlerkorrekturschaltung aus zweiunddreißig (nicht gezeigten) XOR-Gattern mit zwei Eingängen, deren erstem Eingang jeweils eins der zweiunddreißig Bit des Ausgangssignals der Fehlerauffindungsschaltung 78 zugeführt wird. Dem übrigen Eingang jedes solchen Gatters wird jeweils eins der Bit des in dem Zwischenregister 74 gespeicherten Datenworts MD[31:0] zugeführt. Die Ausgabe der Fehlerkorrekturschaltung 80, die ein korrigiertes Datenwort darstellt, wird an einen Multiplexer 82 zum Multiplexen mit Daten sowohl aus der Registeranordnung 66 als auch dem Zwischenregister 74 weitergeleitet. Die Ausgabe des Multiplexers 82 speist die Lesedatenwarteschlange 64.
- Bezugnehmend auf FIG. 15 ist ein Blockschaltbild des Schnittstellenabschnitts 24 in der Schaltung 10 von FIG. 1 gezeigt, der einen Prüfzugangsanschluß (TAP - Test Access Port) zur Erleichterung des Boundary-Scan-Prüfens der Schaltung 10 gemäß des IEEE-Standards 1149.1 bereitstellt. In dem Schnittstellenabschnitt 24 befindet sich eine TAP- Steuerung 84, der aus einem externen (nicht gezeigten) Prüfsystem ein Prüfmodusauswahisignal (TMS-Signal, TMS - Test Mode Select) und ein Taktsignal (TCK-Signal, TCK - Test Clock) über einen TMS-Bus bzw. einen TCK-Bus zugeführt wird. Die TAP-Steuerung 84 ist typischerweise ein (nicht gezeigter) synchroner endlicher Automat, der die Folge der Operationen der (nachfolgend beschriebenen) Elemente in dem Schnittstellenabschnitt 24 als Reaktion auf die in die TAP-Steuerung eingegebenen Prüfmodusauswahl -Eingangs - und Taktsignale steuert.
- Zu den Elementen in dem Schnittstellenabschnitt 24, die durch die TAP-Steuerung 84 gesteuert werden, gehört ein Instruktionsregister 86, das dazu dient, Prüfinstruktionen zu halten, die über einen Prüfdateneingangsbus (TDI-Bus, TDI - Test Data Input) eingegeben werden, auf dem Prüfdateneingangsinformationen in den Schnittstellenabschnitt eingegeben werden. Die in dem Instruktionsregister 86 enthaltenen Instruktionen werden als Reaktion auf ein Signal aus der TAP Steuerung 84 durch einen Decodierer 88 decodiert, um jedes Register einer Bank von Registern 90, 92 und 94 sowie mehrere der Register in den Registeranordnungen 46 und 66 zu steuern.
- Das Register 90 wird als ein "Boundary-Scan- Register" bezeichnet und besteht aus einer Reihe einzelner (nicht gezeigter) Registerzellen, die jeweils einer Ein-/Ausgabe (i/o) der Schaltung 10 von FIG. 1 zugeordnet sind. Die Boundary-Scan-Zellen werden seriell in einer Kette geschaltet. Wenn ein Signal mit einem bekannten Zustand an jeden der Eingänge der Schaltung 10 angelegt wird, ändern sich die Ausgaben der Schaltung auf eine vorhersehbare Weise - vorausgesetzt, daß die Schaltung korrekt funktioniert. Wenn ein Strom von Bit mit bekannten Zuständen durch die Boundary-Scan-Zellen des Registers 90 hindurch geschobenen wird, sollten sich somit die nach dem Empfang eines Prüfsignals durch die Schaltung 10 daraufhin aus den Registerzellen ausgeschobenen Bit auf eine vorhersehbare Weise ändern. Durch Untersuchen der aus dem Boundary-Scan-Register 90 ausgeschobenen Bit, nachdem ein Strom von Prüfvektorbit mit bekannten Zuständen an die Schaltung 10 angelegt wurde, werden alle etwaigen Defekte in der Funktion der Schaltung 10 offenkundig.
- Das Register 92 wird als ein "Umgehungsregister" bezeichnet und besteht typischerweise aus einer Einzelverschiebungsregisterzelle. Wenn das Umgehungsregister 92 durch den Decodierer 88 aktiviert wird, erlaubt das Register, daß auf dem TDI-Bus eingegebene Prüfdateninformationen andere Register in der Schaltung 10 umgehen.
- Das Register 94, das für den Betrieb des Schnittstellenabschnitts 24 nicht wesentlich ist, wird allgemein als ein "Baustein-Identifizierungsregister" ("device identification register") bezeichnet, weil es dazu dient, Informationen zu speichern, die die Identität (d.h. Teilenummer) der Schaltung 10, die konkrete Version des Teils und die Quelle der Herstellung anzeigen.
- Der Schnittstellenabschnitt 24 teilt das Befehlsregister 46&sub1;, das Statusregister 46&sub2; und die Durchlaufprüfprogrammregister 46&sub5;-46&sub8; der Registeranordnung 46 mit dem Steuerabschnitt 20, und teilt außerdem das Fehlerdatenregister 66&sub3; der Registeranordnung 66 mit dem Datenwegabschnitt 22. Die Register 90, 92 und 94, und die gemeinsam benutzten Befehls-, Status-, Durchlaufprüfprogramm- und Fehlerdatenregister speisen alle einen durch das Instruktionsregister 86 gesteuerten Multiplexer 95. Der Ausgang des Multiplexers 95 speist einen ersten Eingang eines Multiplexers 96, dessem zweiten Eingang die Ausgabe des Tnstruktionsregisters 86 zugeführt wird. Gemäß dem Zustand eines aus der TAP-Steuerung 84 zugeführten Steuersignais leitet der Multiplexer 96 das Signal an einem ausgewählten seiner Eingänge an ein Flipflop 98 weiter, das wiederum einen Ausgangspuffer 100 speist, der ebenfalls durch die TAP-Steuerung gesteuert wird. Der Ausgangspuffer 100 erzeugt ein Ausgangssignal, das einem Prüfdatenausgangsbus (TDO-Bus - TDO - Test Data Output) zugeführt wird.
- Der Schnittstellenabschnitt 24 ermöglicht vorteilhafterweise das Prüfen der Schaltung 10 durch ein externes (nicht gezeigtes) Prüfsystem 25 unter Verwendung der in dem bereits erwähnten IEEE-Standard 1149.1 beschriebenen Boundary-Scan-Technik. Indem der Schnittstellenabschnitt 24 das Befehlsregister 46&sub1;, das Statusregister 46&sub2;, die Durchlaufprüfprogrammregister 46&sub5;-46&sub8; der Registeranordnung 46 und das Fehlerdatenregister 66&sub3; der Registeranordnung 66 teilt, kann das externe Prüfsystem 25 darüber hinaus auf das Prüfen der RAM-Banken 12 betreffende Informationen zugreifen.
- Die Funktion der Steuer- und Prüfschaltung 10 wird nun beschrieben. Wenn die Schaltung 10 zuerst eingeschaltet wird, durchläuft die Schaltung eine Initialisierungsphase, in die bei Empfang zweier separater, der Schaltung in beabstandeten Intervallen gelieferten Rücksetzinstruktionen eingetreten wird. Nach dem Empfang der zweiten Rücksetzinstruktion erzeugt der Opcode-Generator 48 acht separate Schreibbefehle und Lesebefehle. Als Reaktion auf die Opcodes aus dem Opcode-Generator 48 bewirkt der Automat, daß ein Wort in eine von acht ausgewählten Stellen in jeder einzelnen RAM-Bank 12 eingeschrieben wird und dann aus ihr ausgelesen wird, um die Bestückung und die Dichte der RAMs 14&sub1;,14&sub2;...14n in jeder Bank zu bestimmen. Das Statusregister 46&sub2; in der Registeranordnung 46 in dem Steuerabschnitt 20 wird dann mit der Bestückung und Dichte der RAMs 14&sub1;,14&sub2;...14n in jeder RAM-Bank 12 beschrieben.
- Nach der Initialisierung werden dann die verschiedenen Register in den Registeranordnungen 46 und 66 programmiert, und zwar typischerweise durch Eingeben von entsprechenden Daten auf einen einzelnen der Busse 47 bzw. 57. Beim Einschreiben von Daten in die Register in der Registeranordnung 46 wird die Adresse des Registers in die Adreßwarteschlange 26 eingegeben, und bei Bestätigung der Adresse werden die Daten über den Bus 47 in das Register eingegeben. Auf ähnliche Weise werden Daten in die Registeranordnung 66 eingeschrieben.
- Wenn die Schaltung 10 initialisiert worden ist und die Registeranordnungen 46 und 66 programmiert worden sind, ist der Steuerabschnitt 20 nunmehr in der Lage, auf eine oder mehrere Speicherstellen zuzugreifen. Um eine einzelne Leseoperation auszuführen, übernimmt der Steuerabschnitt 20 als Reaktion auf einen Einzel-Lesezugriffsbefehl aus einer (nicht gezeigten) externen Quelle die vorher in die Adreßwarteschlange 26 eingegebene Adresse und liest die entsprechende Stelle in der richtigen RAM-Bank 12. Das aus der adressierten Stelle ausgelesene Datenwort wird zuerst in das Zwischenregister 74 eingegeben und dann von der Fehlerkorrekturschaltung 80 auf Fehler überprüft. Je nachdem, ob ein Einzelbit- oder ein Mehrbit-Speicherfehler vorliegt, wird eine Einzelfehler- oder eine Mehrfachfehlerflagge gesetzt. Wenn ein Einzelbit-Datenfehler besteht und die Fehlerkorrekturoption aktiviert ist, dann wird der Fehler korrigiert und die korrigierten Daten werden in die Schreibdatenwarteschlange 56 eingeschrieben.
- Falls ein Mehrbitfehler vorliegt, ist keine Fehlerkorrektur möglich. Statt dessen wird das zwei oder mehr falsche Bit enthaltende Datenwort in die Lesedatenwarteschlange 56 eingeschrieben, während gleichzeitig die Mehrfachfehlerbitflagge gesetzt wird.
- Falls die Speicherlöschoption aktiviert ist (d.h. Korrektur oder "Löschung" des Datenworts), dann wird für ein Datenwort, das ein einziges ungültiges Bit enthält, durch die Fehlerkorrekturschaltung 80 ein korrigiertes Datenwort erzeugt, und das korrigierte Wort wird wie beschrieben in die Lesedatenwarteschlange 56 eingeschrieben. Zusätzlich erzeugt der Prüfbitgenerator 62 dann eine Prüfsumme für das korrigierte Datenwort, und diese korrigierten Daten mit neuer Prüfsumme werden in die angemessene Speicherstelle eingeschrieben. Diese Schreiboperation tritt automatisch ein.
- Durch den Empfang durch die Adreßwarteschlange 26 der Speicherstelle, in die ein Datenwort eingeschrieben werden soll, und den Empfang des Wortes selbst an der Schreibdatenwarteschlange 56 wird eine einzelne Schreiboperation eingeleitet. Wenn die Paritätsprüfoption aktiviert ist, dann wird die Parität des Worts in der Schreibdatenwarteschlange 56 überprüft. Falls das Wort in der Schreibdatenwarteschlange eine falsche Parität aufweist. wird das Wort gelöscht. Andernfalls wird die Schreiboperation ausgeführt.
- Die Schaltung 10 ermöglicht nicht nur einen einzelnen Zugriff auf eine der RAM-Banken 12, sondern kann auch auf die folgende Weise einen mehrfachen Zugriff (im Seitenmodus) durchführen. Als Reaktion auf externe Befehle, die eine mehrfache Leseoperation erfordern, wie zum Beispiel für einen Zugriff auf eine Cache-Leitung in einer der RAM-Banken 12, greift der Steuerabschnitt 20 sequentiell auf die Anzahl von Speicherstellen zu, die durch die Bit [13:12] in dem Befehlsregister 46&sub1; der Registeranordnung 46 in FIG. 2 angegeben wird. Im Fall einer Leseoperation im Seitenmodus wird auf mehrere Stellen in derselben Zeile einer RAM-Bank 12 zugegriffen, und jedes Datenwort wird aus ihnen ausgelesen und in das Zwischenregister 74 eingegeben. Jeder etwaige Einzelbitfehler in jedem aus einem der RAMs 14&sub1;,14&sub2;...14n ausgelesenen Datenwort wird korrigiert. Für einen Mehrbitfehler wird keine Korrektur durchgeführt. Statt dessen werden die entsprechenden Fehlerflaggen gesetzt. Eine Schreiboperation im Seitenmodus wird auf weitgehend dieselbe Weise ausgeführt wie eine Einzel- Schreiboperation. Wenn während der Schreiboperation im Seitenmodus eines der einzuschreibenden Worte eine falsche Parität aufweist, wird die Operation gestoppt, sobald die falsche Parität erkannt wird.
- Die Schaltung 10 ermöglicht außerdem die Ausführung einer Lese-Änderungs-Schreiboperat ion bei Empfang eines entsprechenden Befehls. Eine Lese- Anderungs-Schreiboperation wird ausgeführt, indem zuerst eine Leseoperation an der Stelle in der entsprechenden der RAM-Banken 12 ausgeführt wird, deren Adresse in die Adreßwarteschlange 26 eingegeben wurde. Dann wird auf die Stelle zugegriffen, und die Daten werden aus ihr aus- und in das Zwischenregister 74 eingelesen und danach auf Einzel- und Mehrbitfehler überprüft. Einzelbitfehler werden von der Fehlerkorrekturschaltung 80 korrigiert, im Gegensatz zu Mehrbitfehlern, bei denen statt dessen die entsprechenden Fehlerflaggen gesetzt werden. Ein fehlerloses oder in einem Einzelfehler korrigiertes Datenwort wird dann (vorausgesetzt, es weist keine Paritätsfehler auf) mit dem Wort in der Schreibdatenwarteschlange 56 gemäß einem durch die Schaltung 10 empfangenen Signal kombiniert, das angibt, welche Bit des Wortes geändert werden sollen. Das geänderte Datenwort und neue Prüfsummenbit werden dann in eine der RAM-Banken 12 eingeschrieben. Für den Fall, daß das aus dem Speicher ausgelesene Wort einen Mehrbitfehler aufweist, oder wenn das Wort in der Schreibdatenwarteschlange 56 einen Paritätsfehler aufweist, wird keine Schreiboperation zugelassen.
- Wenn das Bit 0 in dem Befehlsregister des Registers 46 gesetzt wird, wird eine Durchlaufprüfung der RAM-Banken 12 eingeleitet. Praktisch wird das Bit nach der Initialisierung der Schaltung 10 gesetzt, woraufhin eine Durchlaufprüfung der Komplexität 6N ausgeführt wird. Die mit der Ausführung einer Durchlaufprüfung an einer RAM-Bank 12 verbundenen Schritte sind zusammen in Flußdiagrammform in FIG. 16 dargestellt. Wie am besten in FIG. 16 illustriert ist, beginnt eine Durchlaufprüfung an einer RAM-Bank 12 bei Ausführung einer Startinstruktion 102, bei der die Fehlerregister in der Anordnung 66 gelöscht werden. Nach der Startinstruktion 102 wird eine RAM-Bank 12, die noch nicht geprüft wurde, für die Prüfung designiert (Schritt 104). Während der ersten Ausführung des Schritts 104 wird die erste RAM-Bank 12 (Bank 0) designiert. Nach dem Schritt 196 wird festgestellt, ob alle acht potentiell durch die Schaltung 10 von FIG. 1 gesteuerten RAM-Banken 12 geprüft worden sind. Wenn ja, dann wird der Schritt 108 ausgeführt, und es wird eine Anzeige bereitgestellt, daß alle Banken 12 geprüft worden sind und die Prüfung bestanden haben.
- Wenn während des Schritts 108 festgestellt wird, daß nicht alle RAM-Banken 12 geprüft worden sind, dann wird der Schritt 110 ausgeführt, und das nächste Durchlaufelement (d.h. die nächste Menge von durchzuführenden Schreib-/Leseoperationen) wird aus der nächsten nachfolgenden Stelle aus einem sukzessiven der Durchlaufprüfregister 46&sub5;-46&sub8; in der Registeranordnung 46 von FIG. 2 ausgelesen. Während der ersten Ausführung des Schritts 110 wird das erste Durchlaufelement in dem ersten Durchlaufprüfregister 46&sub5; in der Registeranordnung 46 gelesen.
- Das während des Schritts 110 aus den Durchlaufprüfregistern 46&sub5;-46&sub8; ausgelesene Durchlaufprüfelement wird dann untersucht, um festzustellen, ob das Element eine Null ist oder nicht. Das Vorliegen eines Nullwerts zeigt an, daß alle gewünschten auszuführenden Durchlaufprüfelemente (d.h. alle gewünschten Schreib-/Leseoperationen) bereits durchgeführt worden sind. Unter diesen Bedingungen wird die nächste RAM-Bank 12 designiert (Schritt 104).
- Wenn das (während des Schritts 110) ausgelesene Durchlaufprüfelement keine Null ist, dann wird das Adreßfortschrittbit (Bit 4) des Durchlaufprüfelements untersucht (Schritt 114), um festzustellen, ob auf die RAM-Adressen in aufsteigender oder in absteigender Reihenfolge zugegriffen werden soll. Wenn auf die RAM-Adressen in absteigender Reihenfolge zugegriffen werden soll (was durch ein Adreßfortschrittbit mit einem logischen Pegel von "1" angezeigt wird), dann wird die Startadresse auf die höchste Adresse (N-1) der aktuellen RAM-Bank 12 gesetzt (Schritt 116). Wenn umgekehrt das Adreßfortschrittbit auf einen Pegel von "0" gesetzt ist, was anzeigt, daß auf die RAM-Adressen in aufsteigender Reihenfolge zugegriffen werden soll, dann wird die Startadresse auf die Adresse mit der niedrigsten Ordnung (Adresse = 0) gesetzt (Schritt 118).
- Wenn die Startadresse gesetzt ist, dann wird das RAS-Signal aktiviert (Schritt 120), um die Zeile der Speicherstellen einer der RAM-Banken 12, auf die zugegriffen werden soll, zu wählen. Bezugnehmend auf FIG. 17 wird nach dem Aktivieren des RAS-Signals dann festgestellt, ob das zu diesem Zeitpunkt aktive Durchlaufprüfelement eine Lese- oder eine Schreiboperation erfordert (Schritt 122). Wenn eine Leseoperation erforderlich ist, dann wird das CAS- Signal aktiviert und dann deaktiviert (Schritt 124), um die Spalte der Speicherstellen in einer der RAM-Banken 12, auf die zugegriffen werden soll, zu wählen. Das Aktivieren der RAS- und CAS-Signale bewirkt, daß auf die Speicherstelle, die in der gewählten Zeile bzw. Spalte liegt, zum Lesen zugegriffen wird.
- Wenn auf die RAM-Stelle, die in de durch die RAS- und CAS-Signale bestimmten gewählten Zeile bzw. Spalte liegt, zugegriffen wird und ihr Inhalt ausgelesen wurde, dann wird überprüft (Schritt 126), ob die aus dieser Stelle ausgelesenen Daten den erwarteten Auslesedaten entsprechen. Wenn vorher eine "1" in die Zugriffstelle eingeschrieben wurde, dann sollte somit beim späteren Lesen der Stelle eine "1" vorliegen. Wenn keine Übereinstimmung gefunden wird, dann werden die aus der Zugriffstelle ausgelesenen Daten mit dem erwarteten Wert XOR-verknüpft, und das Ergebnis wird gespeichert. Ungefähr zur selben Zeit wird ein Fehlerbit in dem Fehlerflaggenregister 46&sub1;&sub7; der Registeranordnung 46 von FIG. 1 und in dem entsprechenden Statusregister der Registeranordnung 66 von FIG. 1 gesetzt (Schritt 128). Wie einzusehen ist, ist das Nichterreichen einer Übereinstimmung zwischen den tatsächlichen und den erwarteten Datenbit ein Anzeichen für das Versagen der RAM-Banken 12.
- Wenn im Schritt 126 die ausgelesenen Datenbit mit den erwarteten Datenbit übereinstimmen, dann wird überprüft (Schritt 130), ob das gerade aktive Durchlaufprüfelement zusätzliche Lese- oder Schreiboperationen erfordert. Wenn ja, dann wird der Schritt 122 von neuem ausgeführt. Andernfalls wird das RAS-Signal deaktiviert, und die Adresse für den nächsten Zugriff wird abgerufen (Schritt 132).
- Anstatt eine Leseoperation anzugeben, kann das gerade aktive Durchlaufprüfelement eine Schreiboperation angeben. Unter diesen Bedingungen wird dann nach dem überprüfen zur Feststellung der Art der im Schritt 122 durchzuführenden Operation zusammen mit einem Schreibsignal (WE) das CAS-Signal aktiviert und deaktiviert. Danach werden die Daten eingeschrieben (Schritt 134). Auf diese Weise werden Daten in die RAM- Stelle eingeschrieben, die durch die aktivierten RAS- - und CAS-Signale bestimmt wird. Nach dem Schritt 134 wird überprüft, ob das gerade aktive Durchlaufprüfelement zusätzliche Lese- oder Schreiboperationen erfordert. Wenn ja, dann wird der Schritt 122 von neuem ausgeführt; andernfalls wird der Schritt 132 ausgeführt.
- Nach der Deaktivierung des RAS-Signals und dem Abrufen der nächsten Adresse im Schritt 132 wird überprüft, ob wirklich auf alle Adressen in der RAM- Bank 12 zugegriffen wurde (Schritt 138). Wenn auf alle Adressen zugegriffen wurde (was anzeigt, daß das gerade aktive Durchlaufprüfelement tatsächlich vollständig durchgeführt wurde), dann wird der Schritt 110 von FIG. 16 durchgeführt, und es wird ein weiteres Durchlaufprüfelement aus dem aktuell gewählten Durchlaufprüfregister abgerufen. Wenn andernfalls nicht auf alle Adressen für das gerade aktive Durchlaufprüfelement zugegriffen wurde, dann wird Shritt 120 von FIG. 16 von neuem ausgeführt, und es wird ein RAS-Signal für die nächste Adresse aktiviert.
- Wenn bei der Ausführung der oben beschriebenen Durchlaufprüfung ein Fehler gefunden wird, dann wird die Fehlerstelle in dem Fehleradreßregister 46&sub1;&sub7; in der Registeranordnung 46 von FIG. 1 gespeichert, während die Statusregisterbit [31:29] in dem Statusregister 66&sub2; von FIG. 12 die Identität der RAM-Bank 12 aufzeichnen, in der der Fehler aufgetreten ist. Um sich nach diesem Fehler wieder zu erholen, der Fehleradressen-, Fehlerstatusund Fehlerflaggenregister in der Registeranordnung 46 wie auch die Fehlerdaten- und Statusregister in der Registeranordnung 66 von FIG. 1 ausgelesen. Diese Register werden dann gelöscht. Das Sich-Erholen nach Einzelbit- und Mehrfach-Speicherbitfehlern sowie nach Datenparitäts- und Adreßparitätsfehlern wird auf ähnliche Weise erzielt.
- Das voranstehende beschreibt eine Schaltung 10, die sowohl das Steuern als auch das Prüfen einer Mehrzahl von Banken 12 mit RAMs 12&sub1;,12&sub2;,12&sub3;...12n verwirklicht.
- Es ist zu verstehen, daß die oben beschriebenen Ausführungsformen lediglich beispielhaft für die beanspruchte Erfindung sind. Fachleute können an diesen Ausführungsformen vielfältige Modifikationen und Änderungen vornehmen.
Claims (8)
1. Schaltung zum Steuern sowie Prüfen einer
Anordnung von Direktzugriffsspeichern (12) RAMs mit
folgendem:
einem Datenwegabschnittsmittel (22) zum: (a)
Speichern von Daten, die in eine bestimmte
Speicherstelle (14n) in der Anordnung von RAMs (12)
eingeschrieben und daraus ausgelesen werden sollen, und
(b) Erkennen von Fehlern in der Anordnung von RAMs (12)
während des Prüfens und normalen Betriebs;
einem Steuerungsabschnittsmittel (20) zum: (a)
Speichern von mindestens einer vom Benutzer
vorgeschriebenen Adresse, die eine bestimmte Speicherstelle (14n)
in der Anordnung von RAMs (12) anzeigt, (b) Zugreifen
auf die bestimmte Speicherstelle (14n) in der Anordnung
von RAMs (12), und (c) Steuern des
Datenwegabschnittsmittels (22) durch Senden von Befehlen
zum Datenwegabschnittsmittel (22) zur Einleitung und
Ausführung des Prüf ens der Anordnung von RAMs (12) in
ausgewählten Zeitabständen;
dadurch gekennzeichnet, daß sie weiterhin ein
Schnittstellenmittel (24) zum Ankoppeln des
Steuerungsabschnittsmittels (20) und des
Datenwegabschnittsmittels (22) an einen vieradrigen
Boundary-Scan-Anschluß umfaßt.
2. Schaltung nach Anspruch 1, wobei das
Datenwegmittel (22) Mittel zum Korrigieren von
Einzelbitfehlern umfaßt, die während des Normalbetriebs
innerhalb der Anordnung von RAMs (12) angetroffen
wurden.
3. Schaltung nach Anspruch 1, wobei das
Schnittstellenmittel (24) aus folgendem besteht:
einem Prüfzugangsanschluß- (TAP - Test Access
Port)Steuerung (84) zur Erzeugung von Steuersignalen als
Reaktion auf von außen zugeführte Takt-(TCK-) und
Prüfmodusauswahl-(TMS - test mode select)Signale;
einem Prüfdateneingangsbus (TDI - test data
input) zur Aufnahme von extern erzeugten Informationen
und Befehlen;
einem an die TAP-Steuerung (84) und den
Prüfdateneingangsbus (TDI) angekoppelten Befehlsregister
(86) zum Speichern von durch die TAP-Steuerung (84)
erzeugten Signalen und zum Speichern von extern
erzeugten Prüfdatensignalen;
einem Decodierer (88) zum Decodieren von im
Befehlsregister (86) gespeicherten Steuersignalen;
einem mit dem Steuerungsabschnittsmittel (20)
geteilten und an den Prüfdateneingangsbus (TDI)
angekoppelten Befehlsregister (46&sub1;) zum Speichern von auf dem
besagten Prüfdateneingangsbus (TDI) empfangenen
Steuerbefehlen;
mindestens einem, mit dem
Steuerungsabschnittsmittel (20) geteilten und an den
Prüfdateneingangsbus (TDI) angekoppelten
Durchlaufprüfprogrammregister (46&sub3;-46&sub8;) zum Speichern
von Prüfbefehlen;
einem mit dem Steuerungsabschnittsmittel (20)
geteilten und an den Prüfdateneingangsbus (TDI)
gekoppelten Durchlaufprüfstatusregister (46&sub2;) zum
Speichern von Prüfstatus informationen;
einem mit dem Datenwegabschnittsmittel (22)
geteilten und an den Prüfdateneingangsbus (TDI)
angekoppelten Durchlaufprüf fehlerdatenregister (66&sub3;) zum
Speichern von Informationen in Bezug auf während des
Prüf ens in der Anordnung von RAMs (12) auftretenden
Fehlern;
Multiplexmitteln (95, 96) und
Ausgangspufferungsmitteln (100), um zuerst die Signale
von einem des mindestens einen Befehlsregisters (46'),
einem des mindestens einen
Durchlaufprüfprogrammregisters (46&sub5;...48&sub8;), dem
Durchlaufprüfstatusregister (46&sub2;) und dem
Durchlaufprüffehlerdatenregister (66&sub3;) zu multiplexen
und dann die gemultiplexten Signale zu puffern; und
einem an die Multiplexmittel (95, 96) und das
Ausgangspuffermittel (100) angekoppelten
Prüfdatenausgangsbus (TDO) zum Führen des dadurch erzeugten Signals.
4. Schaltung nach Anspruch 1, wobei das
Steuerungsabschnittsmittel (20) aus folgendem besteht:
einer Adreßwarteschlange (26) zum Speichern
von mindestens einer vom Benutzer vorgeschriebenen
Adresse der besonderen Speicherstelle (12n) in der
Anordnung von RAMs (12);
einem an die Adreßwarteschlange (26)
angekoppelten Adressierungsmittel (34) zum Zugreifen auf
die bestimmte Speicherstelle (12n) in der Anordnung von
RAMs (12), die der mindestens einen vom Benutzer
vorgeschriebenen in der Adreßwarteschlange (26)
gespeicherten Adresse entspricht;
einer Registeranordnung (46) mit einer
Mehrzahl von Registern (46&sub1;...46&sub8;) zum Speichern von
Befehlen, Statusinformationen, Fehlerdaten und vom
Benutzer vorgeschriebenen Prüfprogrammen;
einem an die Registeranordnung (46)
angekoppelten Operationscodegenerator (48) zum Erzeugen
von Operationscodes zur Steuerung der Operation des
Steuerungsabschnittsmittels (20) und des
Datenwegabschnittsmittels (22);
einem an die Registeranordnung (46) und den
Operationscodegenerator (48) angekoppelten Automaten
(50) zum Erzeugen von Zustandssignalen zur Bewirkung der
durch den Operationscodegenerator (48) befohlenen
Operationen; und
einem an die Registeranordnung (46)
angekoppelten Durchlaufprüfverzögerungs- und
Einleitungslogikmittel (55) zum Einleiten der vom
Benutzer vorgeschriebenen Prüfung der Anordnung von RAMs
(12) in ausgewählten Zeitabständen.
5. Schaltung nach Anspruch 4, wobei das
Durchlaufprüfverzögerungs- und Einleitungslogikmittel
(55) aus folgendem besteht:
einem Zwischenregister (55&sub1;&sub8;) zum Speichern
eines von der Registeranordnung (46) empfangenen vom
Benutzer vorgeschriebenen Prüfprogramms;
an das Zwischenregister (55&sub1;&sub8;) und die
Registeranordnung (46) des Steuerungsabschnittsmittels
(20) angekoppelten Mitteln (55&sub2;...55&sub6;) zum Ausschieben
von aufeinanderfolgenden vom Benutzer vorgeschriebenen
Prüfprogrammen aus der Registeranordnung (46) in das
Zwischenregister (55&sub1;&sub8;);
einem an das Zwischenregister (55&sub1;&sub8;)
angekoppelten Mittel (55&sub2;&sub1;) zum Decodieren des darin
gespeicherten vom Benutzer vorgeschriebenen
Prüfprogramms zur Einleitung von Lese- und
Schreiboperationen an der Anordnung von RAMs (12), um
deren Funktionsweise zu prüfen; und
einem Adreßweiterschaltemittel (32) zum
Einleiten von aufeinanderfolgendem Zugreifen auf die
Anordnung von RANS (12) in einer bestimmten Reihenfolge
entsprechend dem im Zwischenregister (55&sub1;&sub8;) gespeicherten
vom Benutzer vorgeschriebenen Prüfprogramm.
6. Schaltung nach Anspruch 4, weiterhin mit
Mitteln zum Prüfen der Parität jedes in der
Adreßwarteschlange (26) gespeicherten Adreßwortes.
7. Schaltung nach Anspruch 1, wobei das
Datenwegabschnittsmittel (22) aus folgendem besteht:
einer Schreibdatenwarteschlange (56) zum
Speichern von mindestens einem in die Anordnung von RAMs
(12) einzuschreibenden Datenwort;
einer Lesedatenwarteschlange (64) zum
Speichern von mindestens einem aus der Anordnung von
RAMs (12) ausgelesenen Datenwort;
einem an die Schreibdatenwarteschlange (56)
angekoppelten Prüfbitgenerator (62) zum Erzeugen einer
Prüfbitsumme für jedes in die Anordnung von RAMs (12)
einzuschreibende Datenwort;
einem Durchlaufprüfmustergenerator und
Fehlerdetektor (68) zum Erzeugen von mindestens einem
vom Benutzer vorgeschriebenen Prüfeingangswort zur
Eingabe in die Anordnung von RAMs (12) während einer
Prüfung derselben und zum Auswerten eines aus der
Anordnung von RAMs (12) ausgelesenen Wortes während der
Prüfung zur Bestimmung von dessen Übereinstimmung mit
dem mindestens einen vom Benutzer vorgeschriebenen
Prüfeingangswort; und
einem an die Lesedatenwarteschlange (64)
angekoppelten Fehlerdetektor- und Korrekturmittel (68)
zum Auswerten des mindestens einen aus der Anordnung von
RAMs (12) ausgelesenen Datenwortes und zum Korrigieren
aller Einzelbitfehler vor Speicherung des mindestens
einen gelesenen Datenwortes in der
Lesedatenwarteschlange (64).
8. Schaltung nach Anspruch 7, weiterhin mit einem
Mittel (60) zum Prüfen der Parität jedes in die
Schreibdatenwarteschlange (56) eingegebenen Datenwortes.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/752,115 US5311520A (en) | 1991-08-29 | 1991-08-29 | Method and apparatus for programmable memory control with error regulation and test functions |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69221045D1 DE69221045D1 (de) | 1997-09-04 |
DE69221045T2 true DE69221045T2 (de) | 1997-11-13 |
Family
ID=25024940
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69221045T Expired - Fee Related DE69221045T2 (de) | 1991-08-29 | 1992-08-20 | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen |
DE69605949T Expired - Lifetime DE69605949D1 (de) | 1991-08-29 | 1992-08-20 | Verfahren zur Prüfung einer dynamischen RAM-Matrize |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69605949T Expired - Lifetime DE69605949D1 (de) | 1991-08-29 | 1992-08-20 | Verfahren zur Prüfung einer dynamischen RAM-Matrize |
Country Status (8)
Country | Link |
---|---|
US (1) | US5311520A (de) |
EP (2) | EP0716421B1 (de) |
JP (1) | JP2702855B2 (de) |
KR (1) | KR960001948B1 (de) |
CA (1) | CA2074750C (de) |
DE (2) | DE69221045T2 (de) |
IL (1) | IL102967A (de) |
TW (1) | TW208074B (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3645578B2 (ja) * | 1992-09-17 | 2005-05-11 | テキサス インスツルメンツ インコーポレイテツド | スマート・メモリの組込み自己検査のための装置と方法 |
DE4232271C1 (de) * | 1992-09-25 | 1994-02-17 | Siemens Ag | Elektronischer Baustein mit einer Schieberegisterprüfarchitektur (Boundary-Scan) |
US5448576A (en) * | 1992-10-29 | 1995-09-05 | Bull Hn Information Systems Inc. | Boundary scan architecture extension |
US6006343A (en) * | 1993-07-30 | 1999-12-21 | Texas Instruments Incorporated | Method and apparatus for streamlined testing of electrical circuits |
SE502576C2 (sv) * | 1993-11-26 | 1995-11-13 | Ellemtel Utvecklings Ab | Feltolerant kösystem |
US5596734A (en) * | 1993-12-17 | 1997-01-21 | Intel Corporation | Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port |
US5617534A (en) * | 1994-02-16 | 1997-04-01 | Intel Corporation | Interface protocol for testing of a cache memory |
GB2289779B (en) * | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US5563833A (en) * | 1995-03-03 | 1996-10-08 | International Business Machines Corporation | Using one memory to supply addresses to an associated memory during testing |
FR2732132B1 (fr) * | 1995-03-21 | 1997-05-23 | Sgs Thomson Microelectronics | Interface de sortie de donnees binaires |
US5715433A (en) * | 1995-04-20 | 1998-02-03 | Raghavan; Rajan | Dynamic software model for emulating hardware |
US5675545A (en) * | 1995-09-08 | 1997-10-07 | Ambit Design Systems, Inc. | Method of forming a database that defines an integrated circuit memory with built in test circuitry |
JPH0993225A (ja) * | 1995-09-27 | 1997-04-04 | Kokusai Electric Co Ltd | データ受信装置 |
US5898701A (en) * | 1995-12-21 | 1999-04-27 | Cypress Semiconductor Corporation | Method and apparatus for testing a device |
US5721863A (en) * | 1996-01-29 | 1998-02-24 | International Business Machines Corporation | Method and structure for accessing semi-associative cache memory using multiple memories to store different components of the address |
US5815510A (en) * | 1996-03-28 | 1998-09-29 | Cypress Semiconductor Corp. | Serial programming of instruction codes in different numbers of clock cycles |
US5835503A (en) * | 1996-03-28 | 1998-11-10 | Cypress Semiconductor Corp. | Method and apparatus for serially programming a programmable logic device |
US5768288A (en) * | 1996-03-28 | 1998-06-16 | Cypress Semiconductor Corp. | Method and apparatus for programming a programmable logic device having verify logic for comparing verify data read from a memory location with program data |
US5805794A (en) * | 1996-03-28 | 1998-09-08 | Cypress Semiconductor Corp. | CPLD serial programming with extra read register |
FR2753274B1 (fr) * | 1996-09-10 | 1998-11-27 | Sgs Thomson Microelectronics | Circuit comprenant des moyens de test structurel sans plot de test dedie au test |
US5802070A (en) * | 1996-10-03 | 1998-09-01 | International Business Machines Corporation | Testing associative memory |
US6195759B1 (en) * | 1997-10-20 | 2001-02-27 | Intel Corporation | Method and apparatus for operating a synchronous strobe bus |
EP0926599A1 (de) * | 1997-12-24 | 1999-06-30 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | Speichersteuerungseinheit mit programmierbaren Zeitsignalen |
US6701469B1 (en) * | 1999-12-30 | 2004-03-02 | Intel Corporation | Detecting and handling bus errors in a computer system |
US6779141B1 (en) * | 2000-06-08 | 2004-08-17 | Sun Microsystems, Inc. | System and method for implementing memory testing in a SRAM unit |
DE10043137A1 (de) * | 2000-08-31 | 2002-03-14 | Bosch Gmbh Robert | Vorrichtung und Verfahren zur Kennzeichnung der Version bei integrierten Schaltkreisen und Verwendung zur Steuerung von Betriebsabläufen |
JP2005004876A (ja) * | 2003-06-11 | 2005-01-06 | Toshiba Corp | 半導体記憶装置とその評価方法 |
US7107390B2 (en) | 2003-10-08 | 2006-09-12 | Micron Technology, Inc. | Parity-scanning and refresh in dynamic memory devices |
TWI258661B (en) * | 2004-03-30 | 2006-07-21 | Infortrend Technology Inc | Efficient media scan operations for storage systems |
US7370249B2 (en) * | 2004-06-22 | 2008-05-06 | Intel Corporation | Method and apparatus for testing a memory array |
DE102005013238B4 (de) * | 2005-03-22 | 2015-07-16 | Infineon Technologies Ag | Verfahren und Einrichtung zum Übertragen von Justierinformation für Datenschnittstellen-Treiber eines RAM-Bausteins |
US20070011596A1 (en) * | 2005-06-22 | 2007-01-11 | Jungwon Suh | Parity check circuit to improve quality of memory device |
US7508724B2 (en) | 2006-11-30 | 2009-03-24 | Mosaid Technologies Incorporated | Circuit and method for testing multi-device systems |
CN101562052B (zh) * | 2008-04-14 | 2013-02-27 | 深圳市朗科科技股份有限公司 | 存储设备筛选装置及方法 |
NL2004407C2 (en) | 2010-03-16 | 2011-09-20 | Tu Delft | Generic march element based memory built-in self test. |
KR102435181B1 (ko) | 2015-11-16 | 2022-08-23 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10408876B2 (en) * | 2018-01-29 | 2019-09-10 | Oracle International Corporation | Memory circuit march testing |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58215799A (ja) * | 1982-06-08 | 1983-12-15 | Nec Corp | 制御記憶検証方式 |
JPS5930300A (ja) * | 1982-08-13 | 1984-02-17 | Nec Corp | 集積mos型メモリ回路素子 |
JPS5961825A (ja) * | 1982-10-01 | 1984-04-09 | Matsushita Electric Ind Co Ltd | ズ−ムレンズ鏡筒 |
US4532628A (en) * | 1983-02-28 | 1985-07-30 | The Perkin-Elmer Corporation | System for periodically reading all memory locations to detect errors |
US4757503A (en) * | 1985-01-18 | 1988-07-12 | The University Of Michigan | Self-testing dynamic ram |
JP2523586B2 (ja) * | 1987-02-27 | 1996-08-14 | 株式会社日立製作所 | 半導体記憶装置 |
GB2204721B (en) * | 1987-05-11 | 1991-10-23 | Apple Computer | Method and apparatus for determining available memory size |
US4782487A (en) * | 1987-05-15 | 1988-11-01 | Digital Equipment Corporation | Memory test method and apparatus |
US5003506A (en) * | 1987-06-02 | 1991-03-26 | Anritsu Corporation | Memory capacity detection apparatus and electronic applied measuring device employing the same |
JPS63305445A (ja) * | 1987-06-08 | 1988-12-13 | Fujitsu Ltd | 電源切断時のデ−タ書込み方式 |
US4970648A (en) * | 1987-08-12 | 1990-11-13 | Fairchild Space And Defense Corporation | High performance flight recorder |
US4884271A (en) * | 1987-12-28 | 1989-11-28 | International Business Machines Corporation | Error checking and correcting for read-modified-write operations |
JPH01196647A (ja) * | 1988-01-31 | 1989-08-08 | Nec Corp | 誤り訂正機能を有する記憶装置 |
US4980888A (en) * | 1988-09-12 | 1990-12-25 | Digital Equipment Corporation | Memory testing system |
JPH02146199A (ja) * | 1988-11-28 | 1990-06-05 | Mitsubishi Electric Corp | 半導体記憶装置のテスト回路 |
DE69030209T2 (de) * | 1989-02-08 | 1997-07-10 | Texas Instruments Inc | Durch Ereigniss befähigte Prüfarchitektur für integrierte Schaltungen |
GB2228112A (en) * | 1989-02-09 | 1990-08-15 | Acer Inc | Computer system and method |
JPH03148732A (ja) * | 1989-07-31 | 1991-06-25 | Texas Instr Inc <Ti> | 状態監視器を備えたデータ処理装置 |
US5228045A (en) * | 1990-08-06 | 1993-07-13 | Ncr Corporation | Test driver for connecting a standard test port integrated circuit chip to a controlling computer |
US5231605A (en) * | 1991-01-31 | 1993-07-27 | Micron Technology, Inc. | DRAM compressed data test mode with expected data |
-
1991
- 1991-08-29 US US07/752,115 patent/US5311520A/en not_active Expired - Lifetime
-
1992
- 1992-07-21 TW TW081105754A patent/TW208074B/zh active
- 1992-07-28 CA CA002074750A patent/CA2074750C/en not_active Expired - Fee Related
- 1992-08-20 DE DE69221045T patent/DE69221045T2/de not_active Expired - Fee Related
- 1992-08-20 DE DE69605949T patent/DE69605949D1/de not_active Expired - Lifetime
- 1992-08-20 EP EP96100024A patent/EP0716421B1/de not_active Expired - Lifetime
- 1992-08-20 EP EP92307614A patent/EP0529945B1/de not_active Expired - Lifetime
- 1992-08-25 KR KR1019920015254A patent/KR960001948B1/ko not_active IP Right Cessation
- 1992-08-27 IL IL10296792A patent/IL102967A/en not_active IP Right Cessation
- 1992-08-28 JP JP4251895A patent/JP2702855B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR930004859A (ko) | 1993-03-23 |
KR960001948B1 (ko) | 1996-02-08 |
EP0716421A3 (de) | 1996-08-07 |
CA2074750A1 (en) | 1993-03-01 |
JP2702855B2 (ja) | 1998-01-26 |
IL102967A (en) | 1995-03-15 |
EP0716421A2 (de) | 1996-06-12 |
IL102967A0 (en) | 1993-01-31 |
EP0529945B1 (de) | 1997-07-23 |
EP0716421B1 (de) | 2000-01-05 |
DE69221045D1 (de) | 1997-09-04 |
EP0529945A3 (de) | 1994-01-05 |
US5311520A (en) | 1994-05-10 |
EP0529945A2 (de) | 1993-03-03 |
JPH06250938A (ja) | 1994-09-09 |
TW208074B (de) | 1993-06-21 |
CA2074750C (en) | 1997-06-17 |
DE69605949D1 (de) | 2000-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE3854368T2 (de) | Cachespeicher mit einer Elastizität in der Verarbeitung verschiedener Adressenfehler. | |
DE69132495T2 (de) | Verteilter Verarbeitungsspeicher | |
DE3886038T2 (de) | Speichergerät, das einen zur Ausführung einer Selbstprüfung adaptierten statischen RAM-Speicher enthält und integrierte Schaltung, die als eingebauten statischen RAM-Speicher ein solches Gerät enthält. | |
DE3650651T2 (de) | Fehlertolerantes Datenverarbeitungssystem | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE69729771T2 (de) | Integrierte Schaltung mit einer eingebauten Selbsttestanordnung | |
DE3781873T2 (de) | Rekonfigurierbare rechenanordnung. | |
DE3485766T2 (de) | Nach dem pipelineverfahren arbeitende fehlerkorrektur. | |
DE68928213T2 (de) | Inhaltadressierte Speicherzellenanordnung | |
DE2619159C2 (de) | Fehlererkennungs- und Korrektureinrichtung | |
DE69018112T2 (de) | Hochleistungsspeichersystem. | |
DE3750236T2 (de) | Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung. | |
DE4402796C2 (de) | Verbesserte Redundanzanalysiereinrichtung für eine automatische Speichertestvorrichtung | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE112006002842B4 (de) | Speicher-Diagnose-Vorrichtung | |
DE68922975T2 (de) | Speichereinheit mit zwei Toren. | |
DE69230211T2 (de) | Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem | |
DE4134192A1 (de) | Integrierter schaltkreis mit verarbeitung im speicher | |
DE69126057T2 (de) | Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung | |
DE69326175T2 (de) | Daten-Reprogrammierungsverfahren in einem EEPROM und in einer EEPROM-Karte | |
DE4418892C2 (de) | Mikrocomputer | |
DE60219990T2 (de) | Speichertest-Schaltung | |
DE19630746A1 (de) | Verfahren und Vorrichtung zum Testen einer Assoziativspeicherschaltung und einer Assoziativspeicherschaltung mit redundanter Funktion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |