-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Mikroprozessor-Modelle und insbesondere
Selbstprüfungsfähigkeiten
eines Mikroprozes sors.
-
Hintergrund der Erfindung
-
Viele
integrierte Schaltungen, einschließlich Mikroprozessoren, enthalten
einen Prüfschaltkreis,
der den funktionellen Schaltkreis der integrierten Schaltung prüft. Integrierte
Schaltungen, die Bits als ein Wort speichern, stellen besondere
Prüfprobleme
dar. Solche integrierte Schaltungen beinhalten Speicherschaltungen,
wie zum Beispiel einen Direktzugriffsspeicher (RAM), und Mikroprozessoren,
die oft sowohl einen zusätzlichen
Speicher- als auch einen Registerschaltkreis enthalten.
-
Ein
Problem, das mit Speicherschaltkreisen verbunden ist, ist eine Tendenz
des Speicherschaltkreises, sich an den falschen Bitwert zu erinnern,
nachdem ein neuer Bitwert dazu geschrieben worden ist. Dieses Problem,
bekannt als ein "Fehler", kann auf ein Bit,
das an einem bestimmten Wert "hängen bleibt" oder auf die Interferenz
eines oder mehrerer benachbarter Bits zurückgeführt werden, die auftreten kann,
wenn das benachbarte Bit bzw. benachbarten Bits auf ein oder mehrere
bestimmte Muster eingestellt ist bzw. sind. Es ist daher wünschenswert,
den Speicherschaltkreis in einer integrierten Schaltung zu prüfen, indem
mehrere Kombinationen von Bits in den Schaltkreis geschrieben werden
und dann der Schaltkreis ausgelesen wird, um sicherzustellen, dass
der neue Wert ordnungsgemäß gespeichert
wurde.
-
Manchmal
ist der Fehler in dem Schaltkreis besonders schwer zu erkennen.
Wo der Schaltkreis das Muster A, dann B, dann C empfängt, dürfte sich
der Fehler nicht zeigen, jedoch kann das Muster C, dann B, dann
A den Fehler in Erscheinung treten lassen. Daher kann ein Schaltkreis,
der immer eine vorher festgelegte Sequenz der nur möglichen
Muster schreibt, die Erkennung aller möglichen Fehler nicht ermöglichen.
Es ist daher wünschenswert,
Muster in einer Vielzahl von Sequenzen zu generieren.
-
Eine
Methode verwendet ein nach rechts drehbares Schieberegister mit
einer Rückkopplung,
das dem Bit mit dem niedrigsten Stellenwert erlaubt, sich sowohl
in das Bit mit dem höchsten
Stellenwert als auch zu einem Eingang eines Exklusiv-ODER-Gatters mit
zwei Eingängen
zu schieben. Der andere Eingang des Exklusiv-ODER-Gatters nimmt
das verschobene Bit mit dem höchsten
Stellenwert auf, und der Ausgang des Exklusiv-ODER-Gatters wird in die Position des
Bits mit dem zweithöchsten
Stellenwert geschoben. Die verbleibenden Bits verschieben sich um
eine Position nach rechts in der Art und Weise herkömmlicher
Schieberegister. Diese Vorrichtung erzeugt eine einzelne Sequenz
von 2n – 1
Mustern, welche die Bits in dem Schieberegister als die Ausgänge verwendet,
wobei n die Anzahl von Bits in dem Schieberegister ist. Jedoch generiert diese
Methode nur eine einzelne Sequenz von Mustern, was aus den oben
beschriebenen Gründen
unerwünscht
ist.
-
US-A-4
789 821 offenbart ein Schieberegister, das eine Exklusiv-ODER-Gatter-Bitrückkopplungsanordnung
mit zwei Eingängen
aufweist, die zwei solche Exklusiv-ODER-Gatter verwendet, eines
an dem Eingang des Schieberegisters und eines zwischen Stufen des
Schieberegisters.
-
Eine
andere Methode addiert eine wählbare
Umkehrstufe zu dem Ausgang des oben beschriebenen Schieberegisters.
Die wählbare
Umkehrstufe besteht aus n Exklusiv-ODER-Gattern. Jedes der zusätzlichen Exklusiv-ODER-Gatter
in der wählbaren
Umkehrstufe weist einen Eingang auf, der mit einem der Ausgänge des
oben beschriebenen Schieberegisters gekoppelt ist. Alle anderen
Eingänge
eines jeden Exklusiv-ODER-Gatters in der wählbaren Umkehrstufe sind zusammengekoppelt,
sowie mit einem Steuereingang gekoppelt. Wenn der Steuereingang
niedrig gehalten wird, ist der Ausgang eines jeden Exklusiv-ODER-Gatters
derselbe wie der Ausgang des oben beschriebenen Schieberegisters.
Wenn der Steuereingang hoch gehalten wird, ist der Ausgang eines
jeden Exklusiv-ODER-Gatters das Inverse des Ausgangs des oben beschriebenen
Schieberegisters, was die Generierung eines zweiten Musters ermöglicht.
-
Proceedings
of the 1988 International Test Conference, 12.–14. September 1988, Seite
657–664,
Archambeau E. et al, "Built-in
Test Compiler in an ASIC Environment" ("Eingebauter
Prüfkompilierer
in einer ASIC-Umgebung")
offenbart ein eingebautes Prüfschaltungsmodell
für einen
RAM-Speicher, wobei das Prüfschaltungsdesign
ein modifiziertes Schieberegister für die Eingabe von Prüfdaten in
den RAM und einen Komparator zum Vergleichen des Datenausgangs des
RAMs mit dem Dateneingang verwendet.
-
Da
der Schaltkreis in einer integrierten Schaltung mit einer vorgegebenen
Größe den funktionellen Schaltkreis
ersetzt, ist es wünschenswert,
dass der Mustergenerierungs-Schaltkreis so kompakt wie möglich ist.
Da der Mustergenerierungs-Schaltkreis
den Betrieb des funktionellen Schaltkreises stören kann, ist es wünschenswert,
dass der Mustergenerierungs-Schaltkreis
so effizient wie möglich
ist.
-
Zusammenfassung der Erfindung
-
Gemäß der vorliegenden
Erfindung wird eine Vorrichtung, wie in Anspruch 1 beansprucht,
und ein Verfahren, wie in Anspruch 14 beansprucht, bereitgestellt.
Die Vorrichtung generiert mehrere Sequenzen von Mustern, die nützlich sind,
um Fehler zu prüfen,
indem eine modifizierte Form eines Schieberegisters verwendet wird.
Die Muster werden generiert, indem eines der Bits in dem Register
mit dem niedrigwertigen Bit aus einer Summe von zwei der Bits in
dem Schieberegister und einem Eingang ersetzt wird. Der Eingang
wird verwendet, um das generierte Muster zu kontrollieren.
-
Ein
erfindungsgemäßes System
und Verfahren, wie in Anspruch 13 und Anspruch 7 beansprucht, prüfen auf
Fehler, indem das Muster unter Verwendung eines modifizierten Schieberegisters
generiert, das Muster auf das Speichergerät geschrieben, das Speichergerät ausgelesen
und das ausgelesene Muster mit dem generierten Muster verglichen
wird. Die Verwendung eines modifizierten Schieberegisters ohne die
oben beschriebene zusätzliche,
wählbare
Umkehrstufe macht den Gerätebereich
effizient und schnell zu bedienen.
-
Kurze Beschreibung
der Zeichnungen
-
1A und 1B sind
Blockdiagramme, welche die Arbeitsweise eines herkömmlichen
Schieberegisters darstellen, welches das Bit mit dem niedrigsten
Stellenwert in die Position des Bits mit dem höchsten Stellenwert rotiert.
-
2 ist
ein schematisches Blockdiagramm eines herkömmlichen Schieberegisters,
welches das Bit mit dem niedrigsten Stellenwert in die Position
des Bits mit dem höchsten
Stellenwert rotiert.
-
3 ist
ein schematisches Blockdiagramm einer Vorrichtung zum Generieren
von Mustern gemäß der vorliegenden
Erfindung.
-
4A und 4B sind
Tabellen, welche die erzeugten Werte für zwei verschiedene werte des
Systemsteuereingangs der Vorrichtung von 3 zeigen.
-
5 ist
ein schematisches Blockdiagramm einer Vorrichtung, die ein Speichergerät gemäß der vorliegenden
Erfindung prüft.
-
6 ist
ein Ablaufdiagramm, das ein Verfahren gemäß der vorliegenden Erfindung
zeigt.
-
Detaillierte Beschreibung
einer bevorzugten Ausführungsform
-
Schieberegister
können
angepasst werden, um Muster zu generieren, um auf Speichergerätefehler
zu prüfen.
Muster, die von einem solchen modifizierten Schieberegister generiert
werden, können
generiert und in das Speichergerät
geschrieben werden. Das Speichergerät kann ausgelesen und das darin
gespeicherte Muster mit dem erwarteten Muster verglichen werden,
um auf Speichergerätefehler
zu prüfen.
-
Herkömmliche
Schieberegister werden verwendet, um die Bits in einem Wort eine
oder mehrere Positionen nach links oder nach rechts zu verschieben.
Einige Schieberegister rotieren die Bits und behandeln die Bits
in dem Wort wie in einem Kreis ohne Endpositionen angeordnet. Andere
Schieberegister lassen das Bit mit dem höchsten Stellenwert fallen und
fügen einen
bestimmten Wert in das Bit mit dem niedrigsten Stellenwert ein oder
umgekehrt. Einige Schieberegister können mehr als eine dieser Funktionen
erfüllen,
und schieben nach links oder rechts und rotieren entweder das Bit,
das "herausfällt", in eine neue Position
oder fügen
einen bestimmten Wert in diese neue Position ein.
-
Nun
auf 1A und 1B Bezug
nehmend wird die Arbeitsweise eines rotierenden Vier-Bit-Schieberegisters 108 dargestellt. 1A stellt
die Anfangspositionen der Bits 110, 112, 114, 116, 118 in
dem Schieberegister 108 dar. 1B stellt
die Bits 120, 122, 124, 126, 128 in
einem Schieberegister 130 dar, die den Bits 110, 112, 114, 116 bzw. 118 in
dem Schieberegister 108 entsprechen, nachdem die Bits um
eine Position nach rechts geschoben worden sind. Bits in den Positionen 110, 112, 114 und 116 in 1A sind
zu den Bitpositionen 122, 124, 126 bzw. 128 geschoben
worden. Das Bit 118 mit dem niedrigsten Stellenwert in 1A ist
in das Bit 120 mit dem höchsten Stellenwert in 1B rotiert
worden.
-
Nun
auf 2 Bezug nehmend wird eine Vorrichtung 208 gezeigt,
die als ein herkömmliches
Schieberegister arbeitet. Vier Daten-Flipflops 210, 212, 214, 216,
im folgenden auch Flipflops oder Latches genannt, sind als ein Schieberegister 208 angeordnet,
das den Ausgang 256, der das Bit mit dem niedrigsten Stellenwert
darstellt, bei dem nächsten
Taktzyklus in den Ausgang 250, der das Bit mit dem höchsten Stellenwert
darstellt, rotiert. Obwohl Daten-Flipflops 210, 212, 214, 216 gezeigt
werden, kann jeder Typ Speicher-Flipflop verwendet werden. Flipflop-Ausgänge 230, 232, 234 sind
mit dem Flipflop-Eingang 222, 224, 226 des
Bits mit dem nächst
höchsten
Stellenwert gekoppelt. Der Flipflop-Ausgang 236 des Datwn-Flipflops 216 mit
dem niedrigsten Stellenwert ist mit dem Flipflop-Eingang 220 des
Flipflops 210 mit dem höchsten
Stellenwert gekoppelt. Takteingänge 240, 242, 244, 246 sind
miteinander verbunden und werden von demselben Takteingang 204 angetrieben.
-
Wie
unten beschrieben, kann ein rotierendes Schieberegister 208 modifiziert
werden, um effizient zwei Sequenzen von Binärzahlen zu erzeugen, bei dem
jede Sequenz alle bis auf eine Binärzahl enthält, und jede Sequenz ist das
Einserkomplement der anderen. Ein Steuereingang kann bereitgestellt
werden, um die gewünschte
Sequenz zu wählen,
und die Sequenz kann an einer oder mehreren Positionen gestartet
werden, indem das modifizierte, rotierende Schieberegister anfangsgeladen
wird.
-
Nun
auf 2 und 3 Bezug nehmend wird das sich
drehende Schieberegister 208 von 2 modifiziert,
um eine Ausführungsform
der Vorrichtung 308 der vorliegenden Erfindung, wie in 3 gezeigt,
zu erzeugen. Ein modifiziertes, rotierendes Vier-Bit-Schieberegister
wird gezeigt, jedoch kann jede Anzahl von Bits, die größer als
eins ist, verwendet werden. Die Latches oder Flipflops 310, 312, 314, 316 sind
in derselben Weise, wie in 2 gezeigt
und oben beschrieben, untereinander verbunden, mit Ausnahme der
Addition eines Addierers, der zwischen Ausgang 330 des
Flipflops 310 mit dem höchsten
Stellenwert und Eingang 322 des Flipflops 312 mit
dem nächst
höchsten
Stellenwert eingefügt
wird. Jeder Typ Flipflop oder Addierer kann verwendet werden. In
einer Ausführungsform
ist der Addierer 318 ein Exclusiv-ODER-Gatter mit drei
Eingängen,
der einen hohen Ausgang hat, wenn eine ungerade Zahl von Eingängen hoch
ist, und andernfalls einen niedrigen Ausgang hat. In einer anderen
Ausführungsform
ist der Addierer 318 ein herkömmlicher Addierer mit drei
Eingängen,
wobei der Übertragausgang
ungenutzt ist. Flipflop-Ausgang 330 mit dem höchsten Stellenwert ist
mit einem der Eingänge 328 des
Addierers 318 gekoppelt. Ein zweiter Eingang 348 des
Addierers 318 ist gekoppelt, um den Ausgang 336 des
Flipflops 316 mit dem niedrigsten Stellen wert zu empfangen.
Ein dritter Eingang 360 des Addierers 318 ist
mit einem Systemsteuereingang 358 gekoppelt, der, wie unten
beschrieben, verwendet wird.
-
Die
Anzahl und Position des Addierers
318 ist eine Funktion
der gewünschten
Anzahl von Bits in dem Muster. Die Koeffizienten von "primitive polynomials" c(0), c(1), c(2),
c(3) bilden sich auf den Flipflops
310,
312,
314,
316 ab,
und wenn der Koeffizient gleich 1 ist, wird Addierer
318 zwischen
dem Ausgang des entsprechenden Flipflops und dem Eingang des Flipflops
mit dem nächst
höchsten
Stellenwert, der dem entsprechenden Flipflop folgt, eingefügt. Jeder
solcher Addierer nimmt den Ausgang des entsprechenden Flipflops,
den Ausgang des Flipflops
316 mit dem niedrigsten Stellenwert
und den Systemsteuereingang
358 an. Koeffizienten von "primitive polynomials" werden in "Error – Correcting
Codes" von W. W.
Peterson und E. J. Weldon Jr. (2. Auflage, MIT Press, 1984) beschrieben.
Tabelle 1 führt
die Positionen der Addierer zwischen Flipflops 1 bis n für bis zu
32 Bits in dem Muster auf. Tabelle
1
Bits
in dem Muster | Addierer
eingefügt
nach Flipflop(s) |
1,
2, 3, 4, 6, 7, 15 oder 22 | 1 |
5,
11, 21, 29 | 2 |
10,
17, 20, 25, 28, 31 | 3 |
9 | 4 |
23 | 5 |
18 | 7 |
8 | 2,
3 und 4 |
12 | 1,
4 und 6 |
13 | 1,
3 und 4 |
14
oder 16 | 3,
4 und 5 |
19
oder 27 | 1,
2 und 5 |
24 | 1,
2 und 7 |
26 | 1,
2 und 6 |
30 | 1,
2 und 23 |
32 | 1,
2 und 22 |
-
3 stellt
ein Vier-Bit-Muster dar und, wie in Tabelle 1 angegeben, wird ein
einzelner Addierer 318 zwischen dem Ausgang von Flipflop
1, dem Flipflop 310 mit dem höchsten Stellenwert, und dem
Eingang des Flipflops 312 mit dem nächst höchsten Stellenwert eingefügt.
-
Die
Flipflops 310, 312, 314, 316 können auf
ein Startmuster anfangsgeladen werden. In einer Ausführungsform
kann Eingang 302 niedrig gehalten werden, um einen Wert "0" in den Flipflop 310 mit dem
höchsten Stellenwert
und einen Wert "1" in die verbleibenden
Flipflops 312, 314, 316 anfangszuladen.
-
Systemeingang 306 kann
verwendet werden, um eine "1" in den Flipflop 310 mit
dem höchsten
Stellenwert und eine "0" in die verbleibenden
Flipflops 312, 314, 316 anfangszuladen.
Nachdem ein wert in die Flipflops 310, 312, 314, 316 anfangsgeladen
worden ist, wird ein Systemsteuereingang 358 entweder hoch oder
niedrig gehalten, während
der Taktgeber 304 zwischen 1 und 0 digital schwingt, um
eine gewünschte
Sequenz zu erzeugen.
-
Nun
auf 3 und 4A Bezug
nehmend zeigt 4A den Wert der Ausgänge 350, 352, 354, 356 bei
jedem aufeinander folgenden Taktzyklus, bei dem Eingang 306 vorübergehend
bei Taktzyklus 0 410 niedrig gehalten wird und Systemsteuereingang 358 während der
ganzen Sequenz niedrig gehalten wird. Nun auf 3 und 4B Bezug
nehmend zeigt 4B die Ausgänge 350, 352, 354, 356,
wenn Systemsteuereingang 358 während der ganzen Sequenz hoch
gehalten wird und Eingang 302 vorübergehend bei Taktzyklus 0 450 niedrig
gehalten wird.
-
Nun
auf 4A und 4B Bezug
nehmend werden fünfzehn
der sechzehn möglichen
Bitmuster generiert. Da die bei Zyklus 15 generierten Endmuster 416 und 456 den
Anfangsmustern 410, 450 bei Zyklus 0 gleich sind,
wiederholt sich die Sequenz bei Zyklus 15 416, 456.
-
Da
sich die Sequenz wiederholt, ermöglicht
die vorliegende Erfindung jedem Muster der "Anfang" der Sequenz zu sein, mit Ausnahme der "fehlenden Muster", bei denen alle
Bits dem Systemsteuereingang, 0000 in 4A, 1111
in 4B, gleich sind.
-
Ein
oder mehrere Muster können
auf ein herkömmliches
Speichergerät
geschrieben, zurückgelesen und
mit dem geschriebenen Muster verglichen werden, um zu bestimmen,
ob das Speichergerät
für Fehler
anfällig
ist.
-
Nun
auf 5 Bezug nehmend wird ein System 506 zum
Prüfen
eines Speichergeräts 510 gezeigt. Indem
eine Startsequenz, wie oben beschrieben, bereitgestellt wird, generiert
die Mustergenerierungs-Vorrichtung 508 des oben beschriebenen
sich drehenden, modifizierten Schieberegisters Muster zur Speicherung
auf Bitleitungen 516, die mit Eingängen 522 des Speichergeräts 510 gekoppelt
sind, wenn Schreib-Lese-Eingang 512 für das Schreiben aktiviert ist.
Wenn der Schreib-Lese-Eingang 512 für das Lesen aktiviert ist,
werden die gespeicherten Bits auf die Ausgangsleitungen 524 getrieben,
die mit Eingängen
von Gleichheitsdetektor 514 gekoppelt sind, der eine Ausgangsleitung 520 aktiviert,
wenn Eingänge 526 bitweise
nicht mit Eingängen 524 gleich
sind. Wenn der Schreib-Lese-Eingang 512 für das Lesen
aktiviert ist, während
die Bitleitungen 516 immer noch gültig sind, ist das Ergebnis
zu prüfen,
ob das Speichergerät 510 gespeichert
hat, was in es hineingeschrieben wurde. Wenn Schreib-Lese-Eingang 512 bei
derselben Frequenz wie der Takt 528 digital schwingt, wird
das Speichergerät 510 auf
verschiedene Muster geprüft,
wenn der Systemsteuereingang bei einem bestimmten Wert gehalten
wird. Die Prüfung
kann mit einem Systemsteuereingang 518 des Gegenwertes
wiederholt werden, um einen weiteren Satz von Mustern zu generieren,
mit denen das Speichergerät 510 geprüft wird.
-
Nun
auf 6 Bezug nehmend wird eine Ausführungsform des Verfahrens der
vorliegenden Erfindung für
ein N-Bit-Wort gezeigt. Der Steuereingang und das Bit mit dem niedrigsten
Stellenwert werden initialisiert 606, um gleich zu sein,
und die verbleibenden Bits werden initialisiert 608, um
das Inverse zu dem Bit mit dem niedrigsten Stellenwert zu sein.
Die Initialisierungsschritte 606, 608 können in
der umgekehrten Reihenfolge erfolgen. Bits 2 durch N – 1 werden
in die Position des nächst
höchsten
Bits transferiert 610. Das Bit mit dem höchsten Stellenwert
wird in das Bit mit dem niedrigsten Stellenwert transferiert 612.
Das Bit mit dem vorher höchsten
Stellenwert, das Bit mit dem vorher niedrigsten Stellenwert und
der Steuereingang werden addiert 614, und das resultierende
niedrigwertige Summenbit wird in Bitposition 2 gesetzt.
-
Das
resultierende Wort wird auf das Speichergerät in der Prüfung geschrieben 616,
dann ausgelesen 618 und mit dem geschriebenen Wort verglichen 620.
Eine Differenz zwischen den beiden zeigt einen Fehler an 622.
Nach einem Fehler kann das Verfahren fortfahren oder nicht. Wo kein
Fehler ist, oder wo ein Fehler ist und das Verfahren nach dem Fehler
fortfährt,
wird das resultierende Wort auf das Ende der Sequenz geprüft 624.
In einer Ausführungsform
ist das Ende der Sequenz erreicht, wenn die Bits in dem Wort bitweise
von denen ihrer Initialisierung in Schritt 606, 608 entgegengesetzt
sind. Wird das Ende der Sequenz nicht erreicht 630, können Schritte 610 bis 624 wiederholt
werden. Wenn das Ende der Sequenz erreicht wird 618, hört das Verfahren
der vorliegenden Erfindung in einer Ausführungsform auf 628.
In einer weiteren Ausführungsform kann
das Verfahren der vorliegenden Erfindung fortfahren, als ob das
Ende der Sequenz 624 niemals erreicht wird.