DE102016100630B4 - Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung - Google Patents
Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung Download PDFInfo
- Publication number
- DE102016100630B4 DE102016100630B4 DE102016100630.0A DE102016100630A DE102016100630B4 DE 102016100630 B4 DE102016100630 B4 DE 102016100630B4 DE 102016100630 A DE102016100630 A DE 102016100630A DE 102016100630 B4 DE102016100630 B4 DE 102016100630B4
- Authority
- DE
- Germany
- Prior art keywords
- data word
- memory
- error
- read
- complementary
- 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.)
- Active
Links
Images
Classifications
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
-
- 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/36—Data generation devices, e.g. data inverters
-
- 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/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Speichervorrichtung, umfassend:
eine Vielzahl von Datenwortspeichern;
einen Testcontroller, der konfiguriert ist, für jeden Datenwortspeicher
ein im Datenwortspeicher gespeichertes, aus Sicht des Testcontrollers unbekanntes Datenwort auszulesen, welches Fehlerkorrekturbits umfasst;
das ausgelesene Datenwort, basierend auf den Fehlerkorrekturbits für das Datenwort, zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren;
sofern kein Fehler des ausgelesenen Datenwortes detektiert wird;
ein Komplementärdatenwort des Datenworts zu bestimmen;
das Komplementärdatenwort im Datenwortspeicher zu speichern;
das Komplementärdatenwort aus dem Datenwortspeicher auszulesen;
das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, und
das ausgelesene Datenwort oder das ausgelesene Komplementärdatenwort nach dem Auslesen des Komplementärdatenworts aus dem Datenwortspeicher im Datenwortspeicher zu speichern.
eine Vielzahl von Datenwortspeichern;
einen Testcontroller, der konfiguriert ist, für jeden Datenwortspeicher
ein im Datenwortspeicher gespeichertes, aus Sicht des Testcontrollers unbekanntes Datenwort auszulesen, welches Fehlerkorrekturbits umfasst;
das ausgelesene Datenwort, basierend auf den Fehlerkorrekturbits für das Datenwort, zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren;
sofern kein Fehler des ausgelesenen Datenwortes detektiert wird;
ein Komplementärdatenwort des Datenworts zu bestimmen;
das Komplementärdatenwort im Datenwortspeicher zu speichern;
das Komplementärdatenwort aus dem Datenwortspeicher auszulesen;
das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, und
das ausgelesene Datenwort oder das ausgelesene Komplementärdatenwort nach dem Auslesen des Komplementärdatenworts aus dem Datenwortspeicher im Datenwortspeicher zu speichern.
Description
- Die vorliegende Offenbarung betrifft Speichervorrichtungen und Verfahren zum Testen einer Speichervorrichtung.
- Eine elektronische Vorrichtung wie etwa ein Mikrocontroller kann in einem Kontext verwendet werden, bei dem es von entscheidender Bedeutung ist, dass in seinem Speicher gespeicherte Daten korrekt gespeichert sind. Daher kann die elektronische Vorrichtung konfiguriert sein, periodisch eine Überprüfung seines Speichers gemäß einem Testverfahren durchzuführen. Testverfahren sollten üblicherweise dazu fähig sein, eine Vielzahl von Fehlern zu detektieren, d.h. die Testabdeckung sollte gut sein. Ferner kann es wünschenswert sein, dass der Test nichtdestruktiv ist, d.h. dass vor dem Test im Speicher gespeicherte Daten durch den Test nicht zerstört werden.
- In dem Dokument
US 2005 / 0 160 332 A1 - Aus dem Dokument
US 2011 / 0 191 648 A1 - Eine Aufgabe der Erfindung ist es, eine Vorrichtung zum Testen eines Speichers und ein Testverfahren bereitzustellen, das nichtdestruktiv gegenüber dem vor dem Test vorhandenen Speicherinhalt ist.
- Gemäß einer Ausführungsform der Erfindung wird eine Speichervorrichtung bereitgestellt, die eine Vielzahl von Datenwortspeichern und einen Testcontroller umfasst, der konfiguriert ist, für jeden Datenwortspeicher ein im Datenwortspeicher gespeichertes, aus Sicht des Testcontrollers unbekanntes Datenwort auszulesen, welches Fehlerkorrekturbits umfasst, das ausgelesene Datenwort, basierend auf den Fehlerkorrekturbits für das Datenwort, zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, sofern kein Fehler des ausgelesenen Datenwortes detektiert wird, ein Komplementärdatenwort des Datenworts zu bestimmen, das Komplementärdatenwort in dem Datenwortspeicher zu speichern, das Komplementärdatenwort aus dem Datenwortspeicher auszulesen und das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, und das ausgelesene Datenwort oder das ausgelesene Komplementärdatenwort nach dem Auslesen des Komplementärdatenworts aus dem Datenwortspeicher im Datenwortspeicher zu speichern.
- Ferner wird ein Verfahren zum Testen einer Speichervorrichtung gemäß der obigen Speichervorrichtung bereitgestellt.
- Weitere Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
- In den Zeichnungen beziehen sich die gleichen Bezugszeichen im Allgemeinen auf die gleichen Elemente in allen verschiedenen Ansichten. Die Zeichnungen sind nicht unbedingt maßstäblich, vielmehr wird der Schwerpunkt im Allgemeinen darauf gelegt, die Prinzipien der Erfindung zu veranschaulichen. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen Folgendes gilt:
-
1 zeigt eine elektronische Vorrichtung, die einen Speicher wie einen Mikrocontroller aufweist. -
2 zeigt ein Beispiel für eine Struktur eines Speichers. -
3 zeigt ein Flussdiagramm, das die Testverarbeitung für eine Wortzelle gemäß einem beispielhaften March-Element veranschaulicht. -
4 zeigt eine Speichervorrichtung gemäß einer Ausführungsform. -
5 zeigt ein Flussdiagramm, das ein Verfahren zum Testen einer Speichervorrichtung gemäß einer Ausführungsform veranschaulicht. - Die folgende detaillierte Beschreibung betrifft die beiliegenden Zeichnungen, die zur Veranschaulichung spezifische Details und Aspekte dieser Offenbarung darstellen, in der die Erfindung umgesetzt sein kann. Es können weitere Aspekte verwendet werden und strukturelle, logische und elektrische Änderungen durchgeführt werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen einander nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
- Eine elektronische Vorrichtung wie etwa ein Mikrocontroller, ein eingebetteter Computer etc. kann, abhängig von seiner Anwendung, hohe Anforderungen bezüglich der Zuverlässigkeit seines Speichers aufweisen, d.h. es kann von entscheidender Bedeutung sein, dass im Speicher der Vorrichtung gespeicherte Daten nicht verlorengehen. Um Datenverlust zu vermeiden, kann ein Fehlerkorrekturcode (ECC) von der elektronischen Vorrichtung verwendet werden, um Fehler Datenwörtern zu detektieren und gegebenenfalls auch zu korrigieren. Allerdings hängt die Fähigkeit des ECC, Fehler in diesen missionskritischen Daten zu bewältigen, (in hohem Ausmaß) von der Hamming-Distanz (HD) des Codes ab. Eine hohe Hamming-Distanz geht mit einer erhöhten Anzahl von ECC-Bits einher und erhöht die Speicherzugriffszeit. Zusätzlich dazu können sogar dann im Falle eines hohen Hammings nicht alle Fehler korrigiert oder nicht einmal detektiert werden, da die ECC-Überprüfung typischerweise nur durchgeführt wird, wenn auf ein Datenwort zugegriffen wird. Das Zeitintervall zwischen dem Zugreifen auf denselben Speicherort kann sehr lang sein, sodass sich nach dieser langen Dauer sich eine zusätzliche Anzahl von Fehlern in dem Datenwort akkumuliert haben kann. Dies kann in einem derartigen Ausmaß erfolgen, dass es die Fähigkeit des ECC-Codes übersteigt.
- Dieses Problem kann gelöst werden, indem ein periodischer Test des Speichers derart durchgeführt wird, dass Fehler korrigiert oder zumindest detektiert werden können, bevor sie entscheidend werden. Zusätzlich dazu kann ein solcher Test dafür ausgelegt sein, auch latente Fehler in dem Speicher zu detektieren.
-
1 zeigt eine elektronische Vorrichtung100 . - Die elektronische Vorrichtung
100 (wie etwa ein Mikrocontroller, z.B. für eine Kraftfahrzeuganwendung) umfasst einen Speicher101 , einen (Speicher-)Testcontroller 102 und eine CPU (zentrale Verarbeitungseinheit) 103, die den Testcontroller102 steuert und z.B. dem Testcontroller102 Testbefehle erteilt. Beispielsweise kann die CPU103 den Testcontroller102 periodisch anweisen, einen Speichertest durchzuführen (z.B. wenn die elektronische Vorrichtung läuft). Sie kann den Testcontroller102 beispielsweise auch anweisen, einen Speichertest durchzuführen, wenn die elektronische Vorrichtung100 gestartet wird. - Der Speicher
101 ist beispielsweise ein SRAM (statischer Direktzugriffsspeicher) -
2 zeigt ein Beispiel für eine Struktur eines Speichers200 . - Der Speicher umfasst eine Vielzahl von Scheiben
201 , worin die Anzahl der Scheiben201 der Anzahl der Bits eines Datenwortspeichers (im Folgenden auch als Wortzelle bezeichnet) entspricht. Ein Datenwortspeicher dient dem Speichern eines Datenworts und ECC-Bits des Datenworts (worin die ECC-Bits als Teil des Datenworts selbst oder als in der Wortzelle zusätzlich zu einem Datenwort gespeichert angesehen werden können). - Jede Scheibe
201 ist eine Anordnung, die Zeilen und Spalten von Bitzellen umfasst. Jede Bitzelle kann durch eine Zeilenadresse202 und eine Spaltenadresse203 adressiert werden. So kann basierend auf einer Zeilenadresse202 ein Zeilendecoder204 die adressierte Zeile für jede Scheibe201 derart auswählen, dass jede Scheibe201 die in den Bitzellen der adressierten Zeile gespeicherten Bits ausgibt. Ein Spaltendecoder205 (der im Fall des Auslesens vom Speicher als Multiplexer fungiert) wählt für jede Scheibe das Ausgabebit der adressierten Spalte derart aus, dass der Spaltendecoder205 insgesamt ein Wort206 ausgibt, das die ECC-Bits und die Nutzlast eines Datenworts umfasst, worin, wie oben erwähnt, in den im Folgenden beschriebenen Beispiel die Nutzlast ohne die ECC-Bits als das Datenwort angesehen werden kann oder die Nutzlast mit den ECC-Bits als das Datenwort angesehen werden kann. - Daher bildet die Zeilenadresse gemeinsam mit der Spaltenadresse die Adresse einer Wortzelle. Im Folgenden bezieht sich „Zelle“ auf „Wortzelle“ (im Gegensatz zu „Bitzelle“). Beispielsweise ist die Adresse einer Wortzelle durch den Binärwert AN, AN-1, ..., A0 angegeben, worin jeweils Ai (i= 0, ..., N) ein Bitwert ist und Aj,..., A0 die Spaltenadresse ist und AN, ..., Aj+1 die Zeilenadresse für manche j (0<j<N) ist.
- Während oben das Auslesen vom Speicher
200 beschrieben wurde, kann das Schreiben in den Speicher200 analog durchgeführt werden, worin beim Schreibvorgang die Spaltendecoder als Demultiplexer arbeiten. - Der Speicher
200 kann verschiedene Größen aufweisen, z.B. mit den folgenden Eigenschaften: - a. Anzahl der Bits pro Wort: von 8 bis 137.
- b. Anzahl der Wörter, die gespeichert werden können: von 764 bis 8K.
- c. Der Spaltendecoder
205 kann 4, 8 oder 16 Eingänge aufweisen, d.h. die Spaltenadresse kann 4, 8 oder 16 Bits aufweisen. - d. Der ECC-Code weist eine Hamming-Distanz von 3 auf, was bedeutet, dass er Einzelbitfehler (SBE) korrigieren und Doppelbitfehler (DBE) detektieren kann.
- Speichertestalgorithmen weisen typischerweise die Form eines March-Tests auf. Sie können, wie unten dargestellt, unter Verwendung des einfachen March-Tests MATS+ eindeutig definiert sein. MATS+ kann geschrieben werden als: {⇕(w0)M0;⇑(r0,w1)M1;⇓(r1,w0)M2}
- • Der MATS+-Algorithmus besteht aus 3 March-Elementen: M0, M1 und M2. Die tiefstehenden Indizes, die nicht Teil des March-Tests sind, werden nur zur einfachen Bezugnahme verwendet.
- • Die geschwungenen Klammern „{“ und „}“ markieren den Beginn und das Ende des Tests.
- • Das Zeichen „;“ trennt die MEs.
- • Die runden Klammern „(“ und „)“ markieren den Beginn und das Ende der Operationen der ME.
- • Ein March-Element besteht aus einer Sequenz von Operationen, die auf jede (Wort-)Zelle angewandt werden, in einem von zwei Adressreihenfolgen (AO):
- 1. Aufsteigende (
11 ) Adressreihenfolge; von Zelle0 bis Zelle n-1. - 2. Absteigende (⇓) Adressreihenfolge; von Zelle n-1 bis Zelle
0 .
- 1. Aufsteigende (
- Die ⇑-Adressreihenfolge kann jegliche Sequenz von Adressen (z.B. 5,2,0,1,3,4,6,7) sein, vorausgesetzt, dass die ⇓-Adressreihenfolge die exakt umgekehrte Sequenz ist (d.h. 7,6,4,3,1,0,2,5).
- Das AO-Symbol „⇕“ wird verwendet, um eine AO zu bezeichnen, die irrelevant ist; d.h. sie kann willkürlich ausgewählt werden.
-
- • Der Test weist eine Testlänge (TL) von 5 auf, da insgesamt 5 Operationen auf jede Zelle angewendet werden.
- • Die Adressreihenfolge von M0 ist irrelevant (durch das Symbol ⇕ bezeichnet).
- • M0: ⇕(w0) bedeutet ,for i = 0 to n-1 do A[i]:=0'. n = die Anzahl von Speicherzellen.
- • M1: ⇑(r0,w1) bedeutet ,for i = 0 to n-1 do {read A[i]; A[i]:=1}'.
- • M2: ⇓(r1,w0) bedeutet ,for i = n-1 to 0 do {read A[i]; A[i]:=0}'.
- Der Testalgorithmus definiert zusammen mit dem Algorithmusanwendungsverfahren (AM) einen Test. Um einen Testalgorithmus anzuwenden, werden zusätzliche Informationen benötigt, die durch das AM bereitgestellt werden. Das AM besteht aus:
- 1.
- Einem Datenhintergrund (DB).
- 2.
- Einer Adressrichtung (AD).
- 3.
- Einem Zählverfahren (CM).
- 4.
- Operationen pro March-Element (OPME).
- Um dazu fähig zu sein, Fehler zu sensitivieren und zu detektieren, muss man den Speicher mit Daten füllen; diese Daten werden Datenhintergrund (DB) genannt. Jeder Datenhintergrund hat seine eigene Umkehrung, was bedeutet, dass, wenn der DB aus lauter 0en besteht, die Umkehrung aus lauter 1 en besteht.
- Die folgenden DB werden typischerweise verwendet:
- sDB: fester Datenhintergrund.
- sDB0: Der Speicher ist mit lauer 0en gefüllt.
- sDB 1: Der Speicher ist mit lauter 1en gefüllt.
- bDB: Schachbrett-DB.
- bDB0: Der Speicher ist mit einem alternierenden Muster von 01,01,0, ..../1,0,1,0,1,0, ... gefüllt.
- bDB1: Der Speicher ist mit einem alternierenden Muster von 1,0,1,0,1 ..../0,1,0,1,0, ...gefüllt.
- rDB: Zeilen-Streifen-DB
- Der Speicher ist mit alternierenden Zeilen von lauter 0en und lauter 1en gefüllt. rdB0: Füllt den Speicher mit den alternierenden Zeilen von 0000.../1111... rDB1: Füllt den Speicher mit alternierenden Zeilen von 1111.../0000...
- cDB: Spalten-Streifen-DB
- Der Speicher ist mit alternierenden Spalten von lauter 0en und lauter 1en gefüllt. cdB0: Füllt den Speicher mit dem alternierenden Muster 0000.../1111 ... cDB1: Füllt den Speicher mit dem alternierenden Muster 1111.../0000...
- aDB: willkürlicher (oder anwendungsspezifischer) DB
- Der Speicher ist mit einem willkürlichen Satz von Datenwerten gefüllt.
- aDB: der ursprüngliche Satz von Datenwerten.
- a*DB: der umgekehrte Satz von Datenwerten („*“ bedeutet Umkehrung).
- Da die meisten Speicher eine zweidimensionale Struktur aufweisen (wie für den Speicher
200 beschrieben, der Zeilen und Spalten aufweist), kann die Adressmodifikation (d.h. die Adresserhöhung oder -verringerung) wie folgt durchgeführt werden (dies wird Adressrichtung (AD) genannt): - a.
- Schnell-Spalte Die Spaltenadresse wird am häufigsten modifiziert; bezeichnet durch AO des tiefstehenden Index „C“, wie z.B. in c⇑
- b.
- Schnell-Zeile Die Zeilenadresse wird am häufigsten modifiziert; bezeichnet durch AO des tiefstehenden Index „R“, wie z.B. in R⇑.
- Ein Zählverfahren (CM) ist die Art, auf die man zählt. Beispielsweise kann das Zählen von 3 Objekten auf 6 verschiedene Arten ausgeführt werden: 1,2,3; 1,3,2 oder 2,1,3 oder 2,3,1 oder 3,1,2 oder 3,2,1. Das CM wird durch einen hochstehenden Index der AO folgendermaßen bezeichnet: Li⇑.
- Mehrere CM werden zum Testen von Speichern verwendet, von denen nur zwei angegeben werden:
- a. Das lineare CM, das für die ⇑-Sequenz wie folgt zählt: 0,1,2,3, etc. Für die ⇓- Sequenz zählt es: ..., 5,4,3,2,1,0. Dies ist das am häufigsten verwendete CM, da CF typischerweise zwischen benachbarten Zellen auftreten. Notation: Li⇑.
- b. Das 2i CM. Dieses CM erhöht/verringert die Adresse mit einer Zahl, die eine Potenz von 2 ist. Beispielsweise für den Fall i=3 erhöht/verringert es die Adresse mit 23=8. Notation: 2i⇑. Das 2i CM erfordert spezielle Hardware-Unterstützung in den Adressgeneratoren. Dieses CM wird zum Detektieren geschwindigkeitsbezogener Fehler verwendet, wie es beim Moving-Inversion(MOVI)-Test der Fall ist, der Adressübergänge mit einer Hamming-Distanz von 2 für alle Werte von i erfordert. Dies bedeutet, dass der Test c-mal durchgeführt wird, wobei ein c-Bit-Adresszähler angenommen wird.
- Betreffend die Operationen pro March-Element (OPME) ist das oben genannte MATS+-Algorithmusbeispiel aus 3 ME zusammengesetzt: {⇕(w0)M0;⇑(r0,w1)M1;⇓(r1,w0)M2}. Für das Detektieren von Einzelzellfehlern sind nur die Operationen und ihre Sequenz relevant. Beispielsweise kann der Algorithmus zum Detektieren von SAF (Stuck-at-fault-Fehlern) folgendermaßen aus einem Einzel-ME bestehen: {⇕(w0,r0,w1,r1)}. Alternativ dazu kann es aus 2 ME bestehen, wie z.B. in {⇕(w0,r0,w1);⇕(r1,w0)}, etc.
- Zusätzlich zu den obigen Sequenzen erlauben Algorithmen für Einzelzellfehler auch, dass die Sequenz von Operationen umgekehrt ist, da irrelevant ist, welcher Fehler zuerst detektiert wird. Beispielsweise können alle folgenden Algorithmen auch verwendet werden, um alle SAF zu detektieren: {⇕(w1,r1,w0,r0)} und der Algorithmus {⇕(w0,r0,w1);⇕(r1)}.
- Schließlich kann ein willkürlicher Satz von null oder mehr Operationen vor und nach dem Operationenpaar eingefügt werden, von denen erforderlich ist, dass sie eine Unterklasse eines Fehlers detektieren. Beispielsweise wie in dem Algorithmus: {⇕(...,w0,r0,...,w1,r1,...)}, wobei „...“ für einen willkürlichen Satz von (null oder mehr) Operationen steht.
Durch Obiges ist ein höheres Maß von Freiheit beim Erstellen von Algorithmen für Einzelzellfehler gegeben. - Der Raum von Speicher(z.B. SRAM)-Fehlern besteht aus vielen Unterräumen. Im Folgenden werden die häufigsten Unterräume beschrieben. Diese sind:
- 1.
- Einzelzellfehler: SAF, TF, DRF, SOF.
- 2.
- Zweizellenfehler (Kopplungsfehler) CFs: CFid, CFst.
- 3.
- Geschwindigkeitsbezogene Fehler.
- 4.
- Adressdecoder-Fehler: AF.
- Diese Fehler werden im Folgenden ausführlicher beschrieben:
- Einzelzellfehler: SAF, TF, DRF, SOF
- Im Fall eines Einzelzellfehlers umfasst der Fehler nur eine einzelne Zelle. Er besteht aus den folgenden Unterklassen:
- 1.1
- SAF (Stuck-At-Fault).
- 1.2
- TF (Übergangsfehler).
- 1.3
- DRF (Datenerhaltungsfehler).
- 1.4
- SOF (Stuck-Open-Fault).
- SAF (Stuck-At-Fault):
- Der Logikwert einer SA-Zelle ist immer:
- 0: ein SA0-Fehler; eine w1-Operation ändert den 0-Zustand der Zelle nicht. Notation: <1/0>; das Zeichen vor dem Schrägstrich stellt die Sensitivierungsoperation dar; die Fehlerwirkung ist nach dem Schrägstrich dargestellt.
- 1: ein SA1-Fehler Notation: <0/1>.
- Es gilt anzumerken, dass nur ein Fehler in einer gegebenen Zelle zur selben Zeit vorhanden sein kann.
- Das Sensitivieren und Detektieren von SAF erfordert, dass in jeder Zelle eine 1 geschrieben und ausgelesen wird und eine 0 geschrieben und ausgelesen wird.
Die Algorithmen {⇕(w0);⇑(r0,w1);⇓(r1,w0)}, {⇕(w0,r0,w1,r1)} und (⇕(w0,r0,w1);⇕(r1,w0)} detektieren alle SAF. - Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (R⇓).
- • Dem Zählverfahren (CM); z.B. Schnell-Zeile (Li⇓).
- • Den Operationen pro March-Element (OPME).
- TF (Übergangsfehler):
- Im Fall eines Übergangsfehlers (TF) ist eine Zelle nicht in der Lage, eine oder beide der folgenden Übergänge zu durchlaufen:
- • Einen Aufwärts-Übergang: einen <↑/0> TF; d.h., die Zelle ist nicht in der Lage, von 0 zu 1 zu wechseln.
- • Einen Abwärts-Übergang: einen <↓/1 > TF.
- Eine einzelne Zelle kann beide Fehler gleichzeitig enthalten.
- Das Sensitivieren und Detektieren von CF erfordert, dass in jeder Zelle ein Aufwärts-Übergang (d.h. ↑), gefolgt von einer Leseoperation, und ein Abwärts-Übergang, gefolgt von einer Leseoperation, ausgelöst wird. Beispielsweise detektieren alle Algorithmen {⇕(w0);⇑(r0,w1);⇓(r1,w0,r0)} und {⇕(w0,r0,w1,r1,w0,r0)} und {⇕(w0,r0,w1,r1,w0,r0)} SAF.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (R⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- • Den Operationen pro March-Element (OPME).
- DRF (Datenerhaltungsfehler):
- Im Fall eines DRF ändert eine Zelle nach einer Dauer (T) ihren Zustand, ausgelöst durch Lecken. Da der ursprüngliche Zustand
0 oder1 sein kann; können die folgenden zwei Fehler existieren: - • Der 0-Zustand geht verloren; Notation <0T/1>, nach einer Dauer T wechselt die Zelle zum Zustand
1 . - • Der 1-Zustand geht verloren; Notation <1T/0>.
- Ein Testalgorithmus für DRF verwendet typischerweise eine Verzögerung, wobei der Verzögerungswert Del ≥ T.
Der Test muss eine 0 in jede Zelle schreiben und die Zellen nach einer Zeit T auslesen, ähnlich dazu muss eine 1 in die Zellen geschrieben werden und diese müssen nach einer Zeit T ausgelesen werden. - Aufgrund der hohen Speicherdichte, die dazu führt, dass Zellen nahe beieinander liegen, kann eine Zelle nicht nur gegen Masse oder Vcc lecken, sondern auch zu den Nachbarzellen. Daher ist der Datenhintergrund (DB) cDB (Schachbrett) typischerweise vorteilhaft.
- Der Algorithmus zum Detektieren von DRF ist eine Obermenge jener zum Detektieren von SAF, wobei Verzögerungselemente (DEL) eingefügt werden.
- Beispielsweise detektiert der Algorithmus {⇕(w0);Del;⇑(r0,w1);Del;⇓(r1)} DRF.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressreihenfolge (AO); d.h. ⇑ oder ⇓.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- • Den Operationen pro March-Element (OPME).
- SOF (Stuck-Open-Fault):
- Ein SOF wird durch eine nicht zugängliche Zelle oder einen nicht zugänglichen Satz von Zellen ausgelöst; z.B. ist dies der Fall, wenn eine Wortleitung unterbrochen ist. Der Leseverstärker (SA) kann die korrekten Inhalte der Zelle(n), auf die zugegriffen wird, nicht erzeugen und/oder der Schreibtreiber kann den/die korrekte(n) Wert(e) nicht in die Zellen schreiben. Beim Auslesen einer Zelle mit einem SOF kann das folgende Leseergebnis erzeugt werden:
- • Ein Festwert (FV).
- • Der vorige Wert (PV) des SA. Dies wird durch Restladung im SA verursacht. Das sind die Fehler: <0/?P> und <1/?P>. Das „?“ zeigt an, dass durch das Auslesen der Zelle ein zufälliger (nicht vorhersehbarer) Datenwert erzeugt wird. Das Detektieren erfordert einen Test, bei dem in einem einzelnen ME eine 0 und eine 1 ausgelesen werden. Beispielsweise: (...,rx,...,rx*), für x=0 und (...,rx*,...,rx), für x=1. „x“ ist der Datenwert in der Zelle, und „x*“ ist die Umkehrung dieses Datenwerts.
- • Zufälliges Ergebnis (RR), verursacht durch eine Leseoperation, wobei die zwei Eingänge des SA denselben Wert aufweisen. Das ist der Fehler: <?/?R>; „?R“bedeutet, dass Leseoperationen ein zufälliges Leseergebnis erzeugen. Dieser Fehler kann nur probabilistisch detektiert werden. Beispielsweise kann ein Test
20 Leseoperationen durchführen, dann ist die Wahrscheinlichkeit für ein Nichtentdecken: 2-20. - Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressreihenfolge (AO); d.h. ⇑ oder ⇓.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- • Den Operationen pro March-Element (OPME).
- Zweizellenfehler: Kopplungsfehler (CFs)
- Zweizellenfehler (CF) umfassen zwei Zellen: eine Aggressorzelle und eine Opferzelle. Notation:
- <a;v>, das „;“-Zeichen trennt die Sensitivierungsoperation des Aggressors von der Fehlerwirkung im Opfer.
- Der Satz von CF besteht aus idempotenten CF (CFid) und Zustands-CF (CFst), die im Folgenden beschrieben werden.
- Idempotenter CF (CFid):
- Die Definition des CFid lautet folgendermaßen: Eine Änderung in der Aggressor(A)-Zelle erzwingt den Zustand in der Opfer(V)-Zelle.
- Der CFid weist 4 Subtypen auf: <↑;0>, <↑;1>, <↓;0> und <↓;1>.
Jeder Subtyp weist zwei Positionen auf: - • Die Adresse der a-Zelle < die Adresse der v-Zelle. Notation: av<-;->.
- • Die Adresse der a-Zelle > die Adresse der v-Zelle. Notation: va<-;->.
- Ein Test für den CFid va<↓;0> muss die v-Zelle so konditionieren, dass sie den Datenwert „1“ in der v-Zelle aufweist, gefolgt von einem ↓-Übergangsschreiben in die a-Zelle, um den Fehler zu sensitivieren, gefolgt vom Auslesen der v-Zelle mit dem erwarteten Wert „1“. Dies kann z.B. durch den Algorithmus {⇕(w1);⇑(r1,w0)} detektiert werden.
- In ähnlicher Weise kann der Fehler CFid av<↓;0> (die Adresse der a-Zelle ist niedriger als die Adresse der v-Zelle) z.B. durch den Algorithmus {⇕(w1);⇓(r1,w0)} detektiert werden.
Ein ähnlicher Ansatz kann für die 6 verbleibenden Fehler verfolgt werden. - Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- Zustands-CF (CFst):
- Der Zustand der a-Zelle erzwingt den Zustand der v-Zelle.
- Der CFst weist 4 Subtypen auf: <1;0>, <1;1>, <0;0> und <0;1>.
Jeder Subtyp weist zwei Positionen auf: - • Die Adresse der a-Zelle < die Adresse der v-Zelle. Notation: av<-;->.
- • Die Adresse der a-Zelle > die Adresse der v-Zelle. Notation: va<-;->.
- Daher können insgesamt 8 Unterklassen identifiziert werden.
- Ein Test für den CFst va<1;0> muss einen 1-Wert in der a-Zelle aufweisen, wonach die v-Zelle zu einer 0 gezwungen wird, oder falls sie bereits eine 0 war, kann sie nicht zu einer 1 geändert werden.
- Beispielsweise ist der Test {⇕(w1);⇓(r1)} fähig dazu, diesen Fehler zu detektieren.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- Geschwindigkeitsbezogene Fehler
- Diese Fehler werden durch den Umstand verursacht, dass der Speicher nicht seine Geschwindigkeitsanforderungen erfüllt.
- Es können zwei Klassen von geschwindigkeitsbezogenen Fehlern identifiziert werden:
- • Starke Fehler Hierbei handelt es sich um Fehler, die durch einen starken (großen) Defekt ausgelöst werden. Ein solcher Defekt ist groß genug, um eine große Verzögerung zu verursachen, die durch gewöhnliche Tests detektiert werden kann.
- • Schwache Fehler Diese Fehler werden durch schwache Defekte ausgelöst. Solche Defekte sind zu klein, um von einem gewöhnlichen Speichertest detektiert zu werden. Allerdings kann ein Pfad durch den Speicher mehrere schwache Defekte enthalten, sodass diese zusammengenommen einen geschwindigkeitsbezogenen Fehler verursachen können. Beispielsweise können ein schwacher Defekt im Adressdecoder, ein schwacher Defekt in der Speicherzellanordnung und ein schwacher Defekt in der Schreib- und Leseschaltungsanordnung sich zusammen zu einem starken Fehler akkumulieren und daher detektierbar sein, vorausgesetzt, dass sich die schwachen Fehler auf dem Pfad der Lese- oder Schreiboperation befinden. Ein Test zum Abdecken solcher schwacher Defekte muss alle Pfade durch den Speicher abdecken. Ein Beispiel ist der GALPAT-Test, der jedoch eine Testlänge (TL) der Ordnung n2 (n = die Anzahl von Zellen im Speicher) aufweist.
- Eine kürzere Version ist MOVI (Moving Inversion), der eine TL von Ordnung n3/2 aufweist. Dieser Test deckt jedoch nicht alle geschwindigkeitsbezogenen Fehler ab und benötigt spezielle Hardware-Unterstützung, um die richtigen Adresssequenzen zu generieren.
- Die Verwendung des Schnell-Spalten-Adresszählverfahrens (das C⇑ oder C⇓ adressiert) ermöglicht das Detektieren einiger geschwindigkeitsbezogener Fehler, jedoch nur, wenn der Defekt fast ein starker Fehler ist. Dies ist auf den Umstand zurückzuführen, dass Schnell-Spalten-Adressieren eine Hochfrequenz von Bitleitungs(BL)-Vermittlung verursacht. Aufgrund der schwachen Signale auf den BL sehen die Leseverstärker einen geringfügigen Unterschied zwischen den Signalpegeln auf der True-BL und der False-BL, was ein falsches Leseergebnis erzeugen kann.
- Adressdecoder-Fehler (AF)
- Ein Fehler im Adressierungspfad, der als Adressdecoder-Fehler (AF) bezeichnet wird, kann einen der folgenden 4 Fehler verursachen:
- 1. SANC AF: Single Address, No Cell. Notation: <X->, Adresse X adressiert nichts (bezeichnet durch „-“). Dieser verhält sich wie ein SOF, der eine Detektierbarkeit von 50 % aufweist.
- 2. SAMC AF: Single Address, Multiple Cells. Notation: <X-,Yxy>, Adresse X adressiert nichts, während Adresse Y Zelle x und Zelle y adressiert. Großbuchstaben bezeichnen Adressen, Kleinbuchstaben bezeichnen Zellen.
- 3. MASC AF: Multiple Addresses, Single Cell. Notation: <Xx, Yx> (sowohl Adresse X als auch Adresse Y greifen auf Zelle x zu). Notation: <
- 4. MAMC AF: Multiple Addresses, Multiple Cells. Notation: <Xx, Yxy> (sowohl Adresse X als auch Adresse Y greifen auf Zelle x zu, während Adresse Y auch Zelle y adressiert). Leseoperation zu Adresse Y kann ein zufälliges Ergebnis erzeugen.
- Damit ein March-Test die obigen 4 Typen von AF detektieren kann, muss er die folgende Bedingung AF erfüllen.
Bedingung AF: Ein March-Test muss zumindest die folgenden zwei ME enthalten: - a.
- b.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB);d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- Es wird ein Testverfahren (als Testverfahren C oder TMC bezeichnet) verwendet, das auf den folgenden Annahmen basiert:
- 1. Ein nichtdestruktiver Test wird verwendet; d.h., die bestehenden Speicherinhalte gehen infolge des Tests nicht verloren.
- 2. Das CM (Zählverfahren) ist das lineare CM; z.B. Li⇑ oder Li⇓.
- 3. Adressverwürfelung (physische Speicherorte unterscheiden sich von den logischen Speicherorten) wird nicht berücksichtigt, da Blocks von 64 Wortleitungen (WL) linear organisiert sind (daher sind diese nicht verwürfelt).
- 4. Schnell-Spalten-Adressierung (C⇑) sowie Schnell-Zeilen-Adressierung (R⇑) kann verwendet werden.
- 5. Das Testverfahren kann nur die bereits vorhandenen Speicherdaten verwenden (d.h., aDB und a*DB müssen verwendet werden).
- 6. Der Testalgorithmus des Testverfahrens (d.h. des Tests) kann als March C+ (mit zufälligem Datenhintergrund) entsprechend angesehen werden, wobei ein optionales ME im Klammerpaar „[]“dargestellt ist.
- 7. Der Testalgorithmus kann Schnell-Zeilen (R⇑)- oder Schnell-Spalten (C⇑)-Adressierung verwenden.
- 8. Die ECC-Bits können während des Tests nicht gesteuert werden.
- Im Folgenden wird eine Analyse der Fehlerabdeckung dieses Testverfahrens gegeben.
- Die Fehleranalyse verwendet die oben genannten Fehlermodelle, die dahingehend modifiziert sind, die Notation der angewandten Tests widerzuspiegeln. Beispielsweise ist der Datenhintergrund aDB (anwendungsspezifischer DB) ein solches Beispiel. Der 0-Wert für aDB ist a, während der Komplementärwert a* ist. Daher wird die Operation wr1 als wra* geschrieben. Diese Notation ermöglicht eine einfachere Bezugnahme des DB mit dem angewandten Algorithmus des TMA.
- Auf ähnliche Weise wird die Notation für Fehler modifiziert. Beispielsweise wird der SAF <0/1> als <a/a*> geschrieben (kurz: <0/1> = <a/a*>).
- In diesem Abschnitt wird zunächst die Fehlerabdeckung (FC) jedes der oben genannten Fehler
1 . bis 4. analysiert, gefolgt von einer zusammenfassenden Tabelle (Tabelle 1). Er folgt daher der Struktur der obigen Liste von Fehlern, die folgendermaßen lautet: - 1
- Einzelzellfehler: SAF, TF, DRF, SOF.
- 2
- Zweizellenfehler (Kopplungsfehler) CF: CFid, CFst.
- 3
- Geschwindigkeitsbezogene Fehler.
- 4
- Adressdecoder-Fehler (AF).
-
-
- Einzelzellfehler
- Der Fehler wird durch eine Operation auf der a-Zelle oder den Zustand der a-Zelle sensitiviert, während er durch eine Leseoperation auf der v-Zelle detektiert wird. Die a-Zelle und v-Zelle können zwei relative Positionen im Speicher aufweisen:
- • Die a-Zelle weist eine niedrigere Adresse als die v-Zelle auf; bezeichnet durch den tiefstehenden Index „av“, wie z.B. av<0/1>.
- • Die a-Zelle weist eine höhere Adresse als die v-Zelle auf; bezeichnet durch den tiefstehenden Index „va“, wie z.B. va<0/1>.
- SAF
- Der Test March C+ mit dem optionalen ME detektiert alle SAF wie folgt:
- Es gilt anzumerken, dass SAF durch einen Zustand sensitiviert sind; daher benötigen sie keine spezifischen Sensitivierungsoperationen.
-
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem Li CM (Li⇓).
- TF
-
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); d.h. dem Li CM (Li⇓).
- DRF
- Die Klasse von DRF besteht aus zwei Fehlern:
- •
- •
- Beide Fehler sind durch den Test nicht detektierbar, da der DB cDB und ein Verzögerungs-ME erforderlich sind.
- SOF
- Die Unterklassen von SOF werden von der Ausgabe des Leseverstärkers (SA) bestimmt, wenn ein Leseergebnis erzeugt wird. Dies kann Folgendes sein:
- • Ein Festwert (FV). Der SOF verhält sich wie ein SAF; d.h. wie <0/1> = <a/a*> oder wie <1/0> = <a*/a>. Da der Test alle SAF detektiert, ist der Fall FV zu 100 % durch den Test abgedeckt.
- • Der vorige Wert (PV) des SA. Dies wird durch Restladung im SA verursacht. Das sind die Fehler: <0/?P> = <a/?P> und <1/?P> = <a*/?P>. Das „?P“zeigt an, dass durch das Auslesen der Zelle ein zufälliger (nicht vorhersehbarer) Datenwert erzeugt wird. Das Detektieren erfordert einen Test, bei dem in einem einzelnen ME eine 0 und eine 1 ausgelesen werden. (...,rx,...,rx*), für x=0 und für x=1. „x“ ist der Datenwert in der Zelle, und „x*“ ist die Umkehrung dieses Datenwerts. Da das ME: Li C⇑(ra,wra*ra*,wra) 50 % des Falls „voriger Wert“ detektieren kann (für den anderen Fall wird ein ME mit den umgekehrten Datenwerten erfordert, siehe Abschnitt 3.4), wird es 50 % dieser Unterklasse detektieren.
- • Zufälliges Ergebnis (RR), verursacht durch eine Leseoperation, wobei die zwei Eingänge des SA denselben Wert aufweisen. Das ist der Fehler: <?/?R>. „?R“bezeichnet das zufällige Leseergebnis. Dieser Fehler kann nur probabilistisch detektiert werden. Beispielsweise kann ein Test
20 Leseoperationen durchführen, dann ist die Wahrscheinlichkeit für ein Nichtentdecken: 2-20. Diese Unterklasse erfordert eine höhere Anzahl von Leseoperationen, um eine hohe Wahrscheinlichkeit, detektiert zu werden, aufzuweisen. Daher wird dies als 0%-Detektierung angenähert. - Um ein Gesamtbild der Detektierbarkeit der SOF zu erhalten, wird die Häufigkeit jeder der drei Alternativen folgendermaßen geschätzt: 40 % für „FV“, 40 % für „PV“ und 20 % für „RR“. Davon ausgehend lautet die Detektierbarkeit von SOF folgendermaßen:
- a.
- Festwert (FV): 100 % * 40 % = 40 %.
- b.
- Voriger Wert (PV): 50 % * 40 % = 20 %.
- c.
- Zufälliges Ergebnis (RR): 0 %.
- d.
- Obiges führt zu einer Gesamtdetektierbarkeit von 60 %..
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressreihenfolge (AO); d.h. ⇑ oder ⇓.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (cU)
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
- • Den Operationen pro March-Element (OPME).
- Zweizellenfehler
- Die Unterklasse besteht aus den CFid und den CFst.
- CFid
- Nur eine begrenzte Anzahl der 8 Unterklassen von CFid sind durch den Test detektierbar.
a. Fehler 1 av<↑;0> =av<a→a*;a>: SE = C1; DE=D0. Detektierbar. b. Fehler 2 av<↑;1> =av<a→a*;a*>: SE = A1; DE = A0. Detektierbar. c. Fehler 3 av<↓;0> = av<a*→a;a>: SE = B1; DE = B0. Detektierbar. d. Fehler 4 av<↓;1> = av<a*→a;a*>: SE = E3; DE = E0. Detektierbar . e. Fehler 5 va<↑;0> = va<a→a*;a>: SE = A1; DE = B0. Detektierbar . f. Fehler 6 va<↑;1> = va<a→a*;a*>: SE = C1; DE = C0. Detektierbar . g. Fehler 7 va<↓;0> = va<a*→a;a>: SE = D1; DE = D0. Detektierbar. h. Fehler 8 va<↓;1> = va<a*→a;a*>: SE = --; DE = --. Nicht detektierbar - Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓)
- CFst
- Der Zustand der a-Zelle erzwingt den Zustand der v-Zelle.
- Ein Test für den CFst va<1;0> muss einen 1-Wert in der a-Zelle aufweisen, wonach die v-Zelle zu einer 0 gezwungen wird, oder falls sie bereits eine 0 war, kann sie nicht zu einer 1 geändert werden.
Beispielsweise ist der Test {⇕(w1);⇓(r1)} dazu fähig, diesen Fehler zu detektieren. - Der CFst weist 4 Subtypen auf: <1;0>, <1;1>, <0;0> und <0;1>.
Jeder Subtyp hat 2 Positionen: - • Die Adresse der a-Zelle < die Adresse der v-Zelle. Notation: av<-;->.
- • Die Adresse der a-Zelle > die Adresse der v-Zelle. Notation: va<-;->.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- Unten ist die Analyse der Fähigkeit, jede der 8 Unterklassen des CFst-Fehlers zu analysieren, dargestellt:
a. Fehler 1av<0;0> = av<a;a>: SE = B1; DE = B0. Detektierbar. b. Fehler 2 av<0;1> = av<a;a*>: SE= E3; DE = E0. Detektierbar. c. Fehler 3 av<1;0> = av<a*;a>: SE = A1; DE = A0. Detektierbar. d. Fehler 4 av<1;1> = av<a*;a*>: SE = A1; DE = A0. Detektierbar. e. Fehler 5 va<0;0> = va<a;a>: SE = D1; DE = D0. Detektierbar. f. Fehler 6 va<0;1> = va<a;a*>: SE = --; DE =--. Nicht detektierbar. g. Fehler 7 va<1;0> = va<a*;a>: SE = C1; DE = C0. Detektierbar. h. Fehler 8 va<1;1> = va<a*;a*>: SE = C1; DE = C0. Detektierbar . - Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓)
- Geschwindigkeitsbezogene Fehler
- Wie oben gezeigt, erfordert die Detektierung geschwindigkeitsbezogener Fehler spezielle Adresssequenzen, die erforderlich sind, um die Worst-Case-Adressierungssequenzen zu erzeugen, und zwar aufgrund der im Adressierungspfad ausgelösten Verzögerung aufgrund von Decoderverzögerungen und Verzögerungen auf den Spalten- und Zeilenwahlleitungen aufgrund ihrer Länge und ihrer kapazitativen Kopplung.
Der Test ist nicht dazu fähig, geschwindigkeitsbezogene Fehler zu detektieren, da er das lineare Zählverfahren verwendet. - Adressdecoder-Fehler (AF)
- Damit ein March-Test die 4 Typen von AF (siehe Abschnitt 3.4) detektieren kann, muss er die Bedingung AF erfüllen.
Bedingung AF: Ein March-Test muss zumindest die folgenden zwei ME enthalten: - a.
- b.
- Der Test erfüllt die Bedingung AF; daher werden alle AF detektiert.
- Das Sensitivieren und Detektieren hängt nicht von Folgendem ab:
- • Der Adressreihenfolge (AO); d.h. ⇑ oder ⇓.
- • Dem Datenhintergrund (DB); d.h. sDB, bDB, rDB, cDB oder aDB.
- • Der Adressrichtung (AD); d.h. Schnell-Zeile oder Schnell-Spalte (C⇓).
- • Dem Zählverfahren (CM); z.B. dem linearen CM (Li⇓).
-
- • Spalte
1 enthält zur einfachen Bezugnahme Sequenzzahlen. - • Spalte
2 enthält den Namen des Fehlermodells. - • Spalte
3 enthält die Unterklassen des Fehlermodells in logischer Notation. - • Spalte
4 listet die Notation der Fehler auf, angenommen der Test - • Spalte
5 listet die Fehlerabdeckung (FC) für jede der Unterklassen auf. - • Spalte
6 listet die FC für jedes Fehlermodell auf. - Es gilt anzumerken, dass in Tabelle 1 keine Annahmen bezüglich der relativen Häufigkeit oder der absoluten Häufigkeit des Vorkommens jedes der Fehlermodelle von Spalte
2 getroffen werden. - Zeile
34 gibt die Gesamt-FC von 535 von einer potenziellen FC von 700 an (wobei angenommen wird, dass alle Fehlermodell gleich wahrscheinlich auftreten). Tabelle 1: Zusammenfassung der Fehlerabdeckung unter Verwendung von Testverfahren C (TMC)Theoretische Fehlerbeschreibung Beschreibung unter Verwendung des ME von TMC # Fehlermodell Unterklasse Unterklasse FC FC 1 SAF 100 2 <0/1> <a/a*> 100 3 <1/0> <a*/a> 100 4 TF 100 5 <↑/0> <a→a*/a> 100 6 <↓/1> <a*→a/a*> 100 7 DRF 0 8 <0T/1> <aT →a*/a> 0 9 <1T/0) <a*T →a/a*> 0 10 SOF 60 11 Festwert FV 100*40=40 12 Voriger Wert PV 50*40=20 13 Zufälliges Ergebnis RR 0 14 CFid 87,5 15 av<↑;0> av<a→a*;a> 100 16 av<↑;1> av<a→a*;a*> 100 17 av<↓;0> av<a*→a;a> 100 18 av<↓;1> av<a*→a;a> 100 16 va<↑;0> va<a→a*;a> 100 19 va<↑;1> va<a→a*;a*> 100 20 va<↓;0> va<a*→a;a> 100 21 va<↓;1> va<a*→a;a*> 0 22 CFst 87,5 23 av<0;0> av<a;a> 100 24 av<0;1> av<a;a*> 100 25 av<1;0> av<a*;a> 100 26 av<1;1> av<a*;a*> 100 27 va<0;0> va<a;a> 100 28 va<0;1> va<a;a*> 0 29 va<1;0> va<a*;a> 100 30 va*<1;1> va<a*;a*> 100 31 AF 100 32 Bedingung AFa ⇑(rx,...,wx*,rx*) 100 33 Bedingung AFb ⇓(rx*,...,wx,rx) 100 34 Gesamt-FC beträgt 535 von 700 - Testverfahren C kann als basierend auf March-Elementen angesehen werden, gemäß denen für jede Wortzelle (auch als Datenwortspeicher bezeichnet):
- ein im Datenwortspeicher gespeichertes Datenwort ausgelesen wird;
- das ausgelesene Datenwort überprüft wird, um einen Fehler der Speichervorrichtung zu erkennen
- ein Komplementärdatenwort des Datenworts bestimmt wird;
- das Komplementärdatenwort im Datenwortspeicher gespeichert wird;
- das Komplementärdatenwort aus dem Datenwortspeicher ausgelesen wird; und das ausgelesene Komplementärdatenwort überprüft wird, um einen Fehler der Speichervorrichtung zu detektieren.
-
3 zeigt ein Flussdiagramm300 , das die Testverarbeitung für eine Wortzelle gemäß dem ersten March-Element Li⇑(ra,wra*,ra*) des Testverfahrens C beispielhaft veranschaulicht. - Die Testverarbeitung wird beispielsweise durch den Testcontroller
102 durchgeführt. - In
301 wird die Adresse der zu testenden Wortzelle gemäß dem Zählverfahren bestimmt (z.B. durch einen Adresszähler des Testcontrollers102 ), in diesem Beispiel dem linearen Zählverfahren für die ⇑(d.h. Aufwärts-)Richtung. - In
302 wird das in der Wortzelle gespeicherte Datenwort ausgelesen (z.B. über eine Leseschnittstelle zwischen dem Testcontroller102 und dem Speicher101 ). Dieses Datenwort ist aus Sicht des Tests unbekannt und sollte durch den Test nicht gelöscht werden. - In
303 wird das Datenwort auf Fehler überprüft. Da das Datenwort unbekannt ist, wird dies basierend auf den ECC-Bits für das Datenwort ausgeführt (z.B. durch eine ECC-Testschaltungsanordnung des Testcontrollers102 ). Wie oben erwähnt, können die ECC-Bits als Teil des Datenworts oder als zusätzlich zum Datenwort in der Wortzelle gespeichert angesehen werden. - Wenn ein Fehler detektiert wird, wird in
308 ein Fehlerverarbeitungsverfahren eingeleitet. Dieses kann einen Versuch, den Fehler zu korrigieren, die Erzeugung eines Fehlersignals oder die Ausgabe eines Fehlersignals der elektronischen Vorrichtung enthaltend den Speicher etc. umfassen. - Die Verarbeitung von
302 und303 entspricht der March-Operation „ra“. - In
304 wird, in der Annahme, dass kein Fehler für das Datenwort a detektiert wurde, das Komplementärdatenwort von Datenwort a, das mit a* bezeichnet ist, bestimmt (z.B. mittels eines Bit-Wandlers des Testcontrollers102 ). Das Komplementärdatenwort a* zum Datenwort a wird als das Datenwort a verstanden, von dem jedes Bit umgekehrt wird, d.h. jede 1 wird durch eine 0 ersetzt und jede 0 wird durch eine 1 ersetzt. Das Komplementärdatenwort wird in der Wortzelle gespeichert (z.B. über eine Schreibschnittstelle zwischen dem Testcontroller102 und dem Speicher101 ). - Wie oben erwähnt, kann dies das Umkehren der ECC-Bits umfassen oder nicht umfassen, abhängig davon, ob die ECC-Bits als Teil des Datenworts angesehen werden. Beispielsweise kann eines der folgenden angewendet werden:
- a) Wenn das Umkehren von Datenbits und ECC-Bits ein ECC-korrektes Datenwort ergibt, können alle Überprüfungen unter Verwendung der üblichen ECC-Überprüfungseinheit des Testcontrollers
102 durchgeführt werden. - b) Wenn die einfache Umkehrung nicht ECC-korrekt ist,
- b1) wird das ECC-Bit durch einen gültigen ECC-Code ersetzt. Dann kann eine Fehlerüberprüfung auf dieselbe Weise wie für nicht umgekehrte Daten unter Verwendung einer ECC-Fehlerdetektierungslogik des Testcontrollers
102 durchgeführt werden. Allerdings geht auf diese Weise eine gewisse Fehlerabdeckung auf den ECC-Bits verloren. - b2) werden ECC-Bits, die ECC-inkorrekte Daten ergeben, im Speicher (nur) für die Umkehrung umgekehrt,
- b21) und die ausgelesenen Daten (einschließlich der ECC-Bits) werden umgekehrt, bevor sie an die ECC-Überprüfungseinheit gesendet werden
- b22) und das umgekehrte Datenwort wird im Testcontroller
102 gespeichert, wenn es auf den Speicher geschrieben wird, und für direkten Vergleich verwendet, wenn das Datenwort aus dem Speicher innerhalb desselben March-Elements ausgelesen wird. Dies ist jedoch nur für March-Elemente möglich, bei denen die Umkehrungsdaten sofort und nicht innerhalb des nächsten March-Elements überprüft werden.
- b1) wird das ECC-Bit durch einen gültigen ECC-Code ersetzt. Dann kann eine Fehlerüberprüfung auf dieselbe Weise wie für nicht umgekehrte Daten unter Verwendung einer ECC-Fehlerdetektierungslogik des Testcontrollers
- Die Verarbeitung von
304 entspricht der March-Operation wra*. - In
305 wird das Datenwort, das geschrieben wurde, aus der Wortzelle ausgelesen (z.B. über eine Leseschnittstelle zwischen dem Testcontroller102 und dem Speicher101 ). Dieses Datenwort ist als a*' bezeichnet, das, wenn kein Fehler vorliegt, gleich wie a* ist. - In
306 wird das Datenwort a*' auf Fehler überprüft. Dies kann ausgeführt werden, indem überprüft wird, ob das Datenwort a*' dem Komplementärdatenwort a* gleich ist, das geschrieben wurde (was jedoch zusätzliche Hardware im Testcontroller102 erfordern kann, der einen Vergleich unterstützt). Alternativ dazu können die ECC-Bits des Datenworts a*' verwendet werden, um das Datenwort a*' auf Fehler zu überprüfen (unter Verwendung von ECC-Überprüfungshardware, die im Testcontroller vorhanden ist, z.B. zum Durchführen der ECC-Überprüfung in304 ). Wenn festgestellt wurde, dass die ECC-Bits Teil des Datenworts a sind und diese daher zusammen mit dem Datenwort a umgewandelt wurden, kann die ECC-Überprüfung beispielsweise durch Umkehren des ausgelesenen Datenworts a*' erfolgen, d.h. Bilden des Komplementärdatenworts (a*')* und Überprüfen, ob die ECC-Bits (d.h. die Bits an den ECC-Bit-Positionen) für dieses Datenwort korrekt sind. Abhängig vom verwendeten Code kann die Überprüfung auch durchgeführt werden, indem überprüft wird, ob die ECC-Bits (d.h. die Bits an den ECC-Bit-Positionen) des ausgelesenen Datenworts a*' für den Rest (d.h. die Bits an den Nutzlastpositionen) des ausgelesenen Datenworts a*' korrekt sind. Dies erfordert, dass der Code für jedes Codewort auch das Komplementärcodewort enthält. - Wenn festgestellt wurde, dass die ECC-Bits nicht Teil des Datenworts a sind und daher nicht zusammen mit dem Datenwort a umgekehrt wurden, kann die Überprüfung auf ähnliche Weise durch Umkehren des ausgelesenen Datenworts a*' erfolgen, d.h. Bilden des Komplementärdatenworts (a*')* und Überprüfen, ob die (ursprünglichen) ECC-Bits für dieses Datenwort korrekt sind.
- Wenn ein Fehler detektiert wird, wird das Fehlerverarbeitungsverfahren in
308 eingeleitet. - Die Verarbeitung von
305 und306 entspricht der March-Operation ra*. - Wenn kein Fehler detektiert wurde, fährt die Verarbeitung mit dem nächsten March-Element in
307 fort. - Es gilt anzumerken, dass im Testverfahren C das March-Element Li⇑(ra,wra*,ra*) von Li⇑(ra*,wra,ra) gefolgt ist, sodass die Wortzelle, sofern kein Fehler auftritt, wieder das ursprüngliche Datenwort a enthält.
- Die Verarbeitung ist für die anderen March-Elemente von TMC ähnlich, worin für das letzte March-Element (Li⇓(ra*,wra,ra) oder, wenn angewendet, Li⇑(ra,wra*,ra*,wra)) die Verarbeitung für die nächste Wortzelle in
307 fortgesetzt wird. - Zum Vergleich zeigt Tabelle 2 die Ergebnisse für ein Testverfahren (als Testverfahren A oder TMA bezeichnet) basierend auf Folgendem:
- 1.
- Vor dem Test wird der Speicher mit anwendungsspezifischen Daten gefüllt, die jegliche Daten sein können und die von Wort zu Wort unterschiedlich sein können. Dieser DB wird als aDB bezeichnet; d.h. anwendungsspezifischer DB.
- 2.
- Nach dem Test sollte der DB der aDB sein, wie er vor dem Test existierte.
- 3.
- Das CM (Zählverfahren) ist das lineare CM; z.B. Li⇑ oder Li⇓.
- 4.
- Adressverwürfelung wird nicht berücksichtigt, da Blocks von 64 Wortleitungen (WL) linear organisiert sind (daher sind diese nicht verwürfelt).
- 5.
- Schnell-Spalten-Adressierung wird verwendet (C⇑).
- 6.
- Der angewendete Test besteht aus einem einzelnen ME: Li C⇑(ra,wra*,ra*,wra).
- 7.
- Die ECC-Bits können während des Tests nicht gesteuert werden.
- Zusammengefasst wird gemäß verschiedenen Ausführungsformen eine Speichervorrichtung, wie in
4 veranschaulicht, bereitgestellt. -
4 zeigt eine Speichervorrichtung400 . - Die Speichervorrichtung
400 umfasst eine Vielzahl von Datenwortspeichern401 . - Die Speichervorrichtung
400 umfasst ferner einen Testcontroller402 , der konfiguriert ist, für jeden Datenwortspeicher401 ein Datenwort auszulesen, das in dem Datenwortspeicher401 gespeichert ist, das ausgelesene Datenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, ein Komplementärdatenwort des Datenworts zu bestimmen, das Komplementärdatenwort in dem Datenwortspeicher401 zu speichern, das Komplementärdatenwort aus dem Datenwortspeicher401 auszulesen und das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler Speichervorrichtung400 zu detektieren. - In anderen Worten wird gemäß verschiedenen Ausführungsformen für jedes in einem Datenwortspeicher (d.h. einer Wortzelle) gespeicherte Datenwort dessen Komplement in der Wortzelle gespeichert, wieder von der Wortzelle ausgelesen und das ausgelesene Komplementärdatenwort (das sich im Falle eines Fehlers von dem gespeicherten Komplementärdatenwort unterscheiden kann) auf Fehler überprüft, um einen Fehler der Speichervorrichtung zu detektieren. Das Komplementärwort des Datenworts wird individuell für das Datenwort bestimmt. In anderen Worten wird das Komplementärdatenwort basierend auf dem Datenwort bestimmt, z.B. durch Umdrehen jedes Bit-Wertes des Datenworts. Dementsprechend ist die Bestimmung und Speicherung des Komplementärdatenworts beispielsweise nicht als die Speicherung eines vorbestimmten Datenworts zu verstehen, das, durch Zufall, das Komplement des Datenworts ist.
- Der Testcontroller kann konfiguriert sein, die Verarbeitung des Auslesens eines im Datenwortspeicher gespeicherten Datenworts durchzuführen, ein Komplementärdatenwort des Datenworts zu bestimmen, das Komplementärdatenwort im Datenwortspeicher zu speichern, das Komplementärdatenwort aus dem Datenwortspeicher auszulesen und das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung wieder zu detektieren, sodass als Ergebnis, wenn keine Fehler aufgetreten sind, das ursprüngliche Datenwort wieder in dem Datenwortspeicher gespeichert wird. Der Testcontroller kann daher gemäß einer Ausführungsform einen Test implementieren, der einen Test, welcher als solcher destruktiv wäre, mit einer nichtdestruktiven Testvorgehensweise kombiniert, in diesem Beispiel durch Schreiben von Wörtern abhängig von den Wörtern, die gespeichert wurden, und Durchführen der Bestimmung und Speicherung von Komplementärworten zweimal (oder eine gerade Anzahl von Malen) in Folge.
- Es gilt anzumerken, dass der Testcontroller weitere Operationen für den Datenwortspeicher durchführen kann, um einen Fehler der Speichervorrichtung zu detektieren (z.B. weitere Daten im Datenwortspeicher speichern und weitere im Datenwortspeicher gespeicherte Daten überprüfen).
- Ein Beispiel für ein destruktives Testverfahren umfasst das Schreiben eines spezifischen regulären Musters (Datenhintergründe) in die Speicheranordnung und das Auslesen desselben. Dieses Verfahren ändert den ursprünglichen Inhalt des Speichers.
- Ein Beispiel ist March C+, das die folgende Sequenz durchführt:
- 1.
- Up WR0
- 2.
- Up RD0 WR1 RD1
- 3.
- Up RD1 WR0 RD0
- 4.
- Dn RD0 WR1 RD1
- 5.
- Dn RD1 WR0 RD0
- 6.
- Dn RD0
- Beim nichtdestruktiven Testen ist der Dateninhalt nach dem Test identisch mit dem Dateninhalt davor. Dies kann durch Folgendes erreicht werden:
- 1.
- Auslesen eines Datenworts und Überprüfen auf einen korrekten ECC
- 2.
- Zurückschreiben der Umkehrung des Datenworts mit gültigem ECC
- 3.
- Auslesen und (optional Vergleichen, ob das ausgelesene Datenwort wirklich die Umkehrung ist, und) Überprüfen, ob es einen korrekten ECC aufweist
- 4.
- Zurückschreiben der ursprünglichen Daten
- 5.
- Auslesen der ursprünglichen Daten und Überprüfen, ob sie noch immer einen korrekten ECC aufweisen
- Gemäß verschiedenen Ausführungsformen wird ein nichtdestruktiver Test verwendet, das den Speicher in dem umgekehrten Zustand zurücklässt, und zwar nach dem Durchführen der Sequenz
- 1. Auslesen eines Datenworts und Überprüfen auf einen korrekten ECC ;
- 2. Zurückschreiben der Umkehrung dieses Datenworts mit gültigem ECC;
- 3. Auslesen und Vergleichen, ob das ausgelesene Datenwort wirklich die Umkehrung ist und einen korrekten ECC aufweist.
- Durch Aufteilen des Tests in zwei March-Elemente ist es möglich, die exakte Sequenz des March-C+-Algorithmus auszuführen, was in einem sogenannten nichtdestruktiven Test(NDT)-March-C+-Algorithmus resultiert. Der einzige Unterschied besteht darin, dass der destruktive March C+ an definierten Datenhintergründen arbeitet, die auf bestimmte Zellkopplungsfehler abzielen, während der NDT March C+ an einem zufälligen und unvorhersehbaren Datenhintergrund arbeitet und daher bestimmte Ausnahmefälle von Fehlern nicht detektieren kann.
- Die Speichervorrichtung
400 führt zum Beispiel ein Verfahren zum Testen einer Speichervorrichtung aus, wie in5 dargestellt. -
5 zeigt ein Flussdiagramm500 . - In
501 wird für jeden Datenwortspeicher einer Vielzahl von Datenwortspeichern ein im Datenwortspeicher gespeichertes Datenwort ausgelesen. - In
502 wird das ausgelesene Datenwort überprüft, um einen Fehler der Speichervorrichtung zu detektieren. - In
503 wird ein Komplementärdatenwort des Datenworts bestimmt. - In
504 wird das Komplementärdatenwort im Datenwortspeicher gespeichert. - In
505 wird das Komplementärdatenwort aus dem Datenwortspeicher ausgelesen. - In
506 wird das ausgelesene Komplementärdatenwort überprüft, um einen Fehler der Speichervorrichtung zu detektieren. - Im Folgenden werden weitere Ausführungsformen beschrieben.
- Ausführungsform 1 ist eine Speichervorrichtung, wie in
4 dargestellt, worin das Datenwort Fehlerkorrekturbits umfasst. - Ausführungsform 2 ist die Speichervorrichtung gemäß Ausführungsform 1, worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Datenwort einen Fehler basierend auf Fehlerkorrekturbits des ausgelesenen Komplementärdatenworts aufweist (die durch den Testcontroller basierend auf den Fehlerkorrekturwörtern des Datenworts erzeugt werden können, z.B. durch Umkehrung der Fehlerkorrekturwörter des Datenworts, z.B. abhängig davon, ob der verwendete Fehlerkorrekturcode dies erlaubt, oder durch den Testcontroller für das Komplementärdatenwort gemäß dem Code erzeugt werden, z.B. beim Bestimmen des Komplementärdatenworts).
- Ausführungsform 3 ist die Speichervorrichtung gemäß Ausführungsform 2, worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist, indem er überprüft, ob die Fehlerkorrekturbits des ausgelesenen Komplementärdatenworts gültige Fehlerkorrekturbits für den Rest des ausgelesenen Komplementärdatenworts sind.
- Ausführungsform 4 ist die Speichervorrichtung gemäß Ausführungsform 1, worin der Testcontroller konfiguriert ist, basierend auf den im Datenwortspeicher gespeicherten Fehlerkorrekturbits zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist.
- Ausführungsform 5 ist die Speichervorrichtung gemäß Ausführungsform 4, worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Komplementärdatenwort einem Fehler aufweist, indem er das ausgelesene Komplementärdatenwort umkehrt und überprüft, ob die Fehlerkorrekturbits gültige Fehlerkorrekturbits für das umgekehrte ausgelesene Komplementärdatenwort sind.
- Ausführungsform 6 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 5, worin jeder Datenwortspeicher eine Wortzelle umfassend eine Vielzahl von Bitzellen ist.
- Ausführungsform 7 ist die Speichervorrichtung gemäß Ausführungsform 6, worin jede Bitzelle konfiguriert ist, ein Bit zu speichern.
- Ausführungsform 8 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 7, worin jeder Datenwortspeicher konfiguriert ist, Nutzlastbits und Fehlerkorrekturbits für die Nutzlastbits zu speichern.
- Ausführungsform 9 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 8, worin der Testcontroller konfiguriert ist, für jeden Datenwortspeicher eine Sequenz umfassend das Auslesen eines im Datenwortspeicher gespeicherten Datenworts, Bestimmen eines Komplementärdatenworts des Datenworts, Speichern des Komplementärdatenworts im Datenwortspeicher, Auslesen des Komplementärdatenworts aus dem Datenwortspeicher und Überprüfen des ausgelesenen Komplementärdatenworts, um einen Fehler der Speichervorrichtung zu detektieren, eine gerade Anzahl von Malen für den Datenwortspeicher durchzuführen.
- Ausführungsform 10 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 9, worin der Testcontroller konfiguriert ist, das Komplementärdatenwort des Datenworts abhängig vom Datenwort zu bestimmen.
- Ausführungsform 11 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 10, worin der Testcontroller konfiguriert ist, das Komplementärdatenwort des Datenworts durch Umkehren jedes Bits des Datenworts zu bestimmen.
- Ausführungsform 12 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 11, worin der Testcontroller konfiguriert ist, das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, indem er das gespeicherte Komplementärdatenwort mit dem ausgelesenen Komplementärdatenwort vergleicht.
- Ausführungsform 13 ist die Speichervorrichtung gemäß einem der Ansprüche 1 bis 12, worin die Speichervorrichtung einen Speicher umfasst, der eine Vielzahl von Datenwortspeichern umfasst.
- Ausführungsform 14 ist die Speichervorrichtung gemäß Ausführungsform 13, worin der Speicher ein statischer Direktzugriffsspeicher ist.
- Ausführungsform 15 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 14, worin die Speichervorrichtung ferner eine zentrale Verarbeitungseinheit umfasst, die konfiguriert ist, den Testcontroller zu steuern.
- Ausführungsform 16 ist die Speichervorrichtung gemäß einer der Ausführungsformen 1 bis 15, worin der Testcontroller konfiguriert ist, ein Fehlersignal auszugeben, wenn er einen Fehler detektiert.
- Ausführungsform 17 ist die Speichervorrichtung gemäß Ausführungsform 1, worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Datenwort einen Fehler aufweist, indem er überprüft, ob die Fehlerkorrekturbits gültige Fehlerkorrekturbits für den Rest des ausgelesenen Datenworts sind.
- Ausführungsform 18 ist ein Verfahren, wie in
5 veranschaulicht, umfassend: Auslesen für jeden Datenwortspeicher einer Vielzahl von Datenwortspeichern der Speichervorrichtung eines im Datenwortspeicher, im Testverfahren unbekannten, gespeicherten Datenworts, welches Fehlerkorrekturbits umfasst; Überprüfen des ausgelesenen Datenworts, mittels der Fehlerkorrekturbits des Datenwortes, um einen Fehler der Speichervorrichtung zu detektieren; Bestimmen eines Komplementärdatenworts des Datenworts, sofern kein Fehler des ausgelesenen Datenwortes detektiert wird; Speichern des Komplementärdatenworts im Datenwortspeicher; Auslesen des Komplementärdatenworts aus dem Datenwortspeicher; Überprüfen des ausgelesenen Datenworts, um einen Fehler der Speichervorrichtung zu detektieren; Speichern des ausgelesenen Datenwortes oder des ausgelesenen Komplementärdatenwortes im Datenwortspeicher. - Es gilt anzumerken, dass Ausführungsformen basierend auf der Speichervorrichtung
400 (d.h. Ausführungsform 1) analog gültig für das in5 veranschaulichte Verfahren (d.h. Ausführungsform 21) sind und umgekehrt.
Der SOF verhält sich wie ein SAF; d.h. wie <0/1> oder wie <1/0>.
Daher können insgesamt 8 Unterklassen identifiziert werden.
Daher können insgesamt 8 Unterklassen identifiziert werden.
Theoretische Fehlerbeschreibung | Beschreibung unter Verwendung des ME von TMA | |||||
# | Fehlermodell | Unterklasse | Unterklasse | FC | FC | |
1 | SAF | 100 | ||||
2 | <0/1 > | <a/a*> | 100 | |||
3 | <1/0> | <a*/a> | 100 | |||
4 | TF | 50 | ||||
5 | <↑/0> | <a→a*/a> | 100 | |||
6 | <↓/1> | <a*→a/a*> | 0 | |||
7 | DRF | 0 | ||||
8 | <0T/1> | <aT →a*/a> | 0 | |||
9 | <1T/0) | <a*T →a/a*> | 0 | |||
10 | SOF | 60 | ||||
11 | Festwert | FV | 100*40=40 | |||
12 | Voriger Wert | PV | 50*40=20 | |||
13 | Zufälliges Ergebnis | RR | 0 | |||
14 | CFid | 25 | ||||
15 | av<↑;0> | av<a→a*;a> | 0 | |||
16 | av<↑;1> | av<a→a*;a*> | 100 | |||
17 | av<↓;0> | av<a*→a;a> | 0 | |||
18 | av<↓;1> | av<a*→a;a> | 100 | |||
16 | va<↑;0> | va<a→a*;a> | 0 | |||
19 | va<↑;1> | va<a→a*;a*> | 0 | |||
20 | va<↓;0> | va<a*→a;a> | 0 | |||
21 | va<↓;1> | va<a*→a;a*> | 0 | |||
22 | CFst | 25 | ||||
23 | av<0;0> | av<a;a> | 0 | |||
24 | av<0;1> | av<a;a*> | 100 | |||
25 | av<1;0> | av<a*;a> | 0 | |||
26 | av<1;1> | av<a*;a*> | 100 | |||
27 | va<0;0> | va<a;a> | 0 | |||
28 | va<0;1> | va<a;a*> | 0 | |||
29 | va<1;0> | va<a*;a> | 0 | |||
30 | va<1;1> | va<a*;a*> | 0 | |||
31 | AF | 50 | ||||
32 | Bedingung AFa | ⇑(rx,...,wx*,rx*) | 100 | |||
33 | Bedingung AFb | ⇓(rx*,...,wx,rx) | 0 | |||
34 | Die Gesamt-FC beträgt 310 von 700. |
Wenn dieser Test zweimal ausgeführt wird, stellt er den ursprünglichen Speicherinhalt wieder her und erfüllt so die grundlegenden Anforderungen an einen nichtdestruktiven Test.
Claims (18)
- Speichervorrichtung, umfassend: eine Vielzahl von Datenwortspeichern; einen Testcontroller, der konfiguriert ist, für jeden Datenwortspeicher ein im Datenwortspeicher gespeichertes, aus Sicht des Testcontrollers unbekanntes Datenwort auszulesen, welches Fehlerkorrekturbits umfasst; das ausgelesene Datenwort, basierend auf den Fehlerkorrekturbits für das Datenwort, zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren; sofern kein Fehler des ausgelesenen Datenwortes detektiert wird; ein Komplementärdatenwort des Datenworts zu bestimmen; das Komplementärdatenwort im Datenwortspeicher zu speichern; das Komplementärdatenwort aus dem Datenwortspeicher auszulesen; das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, und das ausgelesene Datenwort oder das ausgelesene Komplementärdatenwort nach dem Auslesen des Komplementärdatenworts aus dem Datenwortspeicher im Datenwortspeicher zu speichern.
- Speichervorrichtung nach
Anspruch 1 , worin der Testcontroller konfiguriert ist, basierend auf Fehlerkorrekturbits des ausgelesenen Komplementärdatenwortes zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist. - Speichervorrichtung nach
Anspruch 2 , worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist, indem er überprüft, ob die Fehlerkorrekturbits des ausgelesenen Komplementärdatenworts gültige Fehlerkorrekturbits für den Rest des ausgelesenen Komplementärdatenworts sind. - Speichervorrichtung nach
Anspruch 1 , worin der Testcontroller konfiguriert ist, basierend auf den im Datenwortspeicher gespeicherten Fehlerkorrekturbits zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist. - Speichervorrichtung nach
Anspruch 4 , worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Komplementärdatenwort einen Fehler aufweist, indem er das ausgelesene Komplementärdatenwort umkehrt und überprüft, ob die Fehlerkorrekturbits gültige Fehlerkorrekturbits für das umgekehrte ausgelesene Komplementärdatenwort sind. - Speichervorrichtung nach einem der
Ansprüche 1 bis5 , worin jeder Datenwortspeicher eine Wortzelle ist, die eine Vielzahl von Bitzellen umfasst. - Speichervorrichtung nach
Anspruch 6 , worin jede Bitzelle konfiguriert ist, ein Bit zu speichern. - Speichervorrichtung nach einem der
Ansprüche 1 bis7 , worin jeder Datenwortspeicher konfiguriert ist, Nutzlastbits und Fehlerkorrekturbits für die Nutzlastbits zu speichern. - Speichervorrichtung nach einem der
Ansprüche 1 bis8 , worin der Testcontroller konfiguriert ist, für jeden Datenwortspeicher eine Sequenz umfassend das Auslesen eines im Datenwortspeicher gespeicherten Datenworts, das Überprüfen des ausgelesenen Datenworts, um einen Fehler der Speichervorrichtung zu detektieren, das Bestimmen eines Komplementärdatenworts des Datenworts, das Speichern des Komplementärdatenworts im Datenwortspeicher, das Auslesen des Komplementärdatenworts aus dem Datenwortspeicher und das Überprüfen des ausgelesenen Komplementärdatenworts, um einen Fehler der Speichervorrichtung zu detektieren, eine gerade Anzahl von Malen für den Datenwortspeicher durchzuführen. - Speichervorrichtung nach einem der
Ansprüche 1 bis9 , worin der Testcontroller konfiguriert ist, das Komplementärdatenwort des Datenworts abhängig vom Datenwort zu bestimmen. - Speichervorrichtung nach einem der
Ansprüche 1 bis10 , worin der Testcontroller konfiguriert ist, das Komplementärdatenwort des Datenworts durch Umkehren jedes Bits des Datenworts zu bestimmen. - Speichervorrichtung nach einem der
Ansprüche 1 bis11 , worin der Testcontroller konfiguriert ist, das ausgelesene Komplementärdatenwort zu überprüfen, um einen Fehler der Speichervorrichtung zu detektieren, indem er das gespeicherte Komplementärdatenwort mit dem ausgelesenen Komplementärdatenwort vergleicht. - Speichervorrichtung nach einem der
Ansprüche 1 bis12 , worin die Speichervorrichtung einen Speicher umfasst, der eine Vielzahl von Datenwortspeichern umfasst. - Speichervorrichtung nach
Anspruch 13 , worin der Speicher ein statischer Direktzugriffsspeicher ist. - Speichervorrichtung nach einem der
Ansprüche 1 bis14 , worin die Speichervorrichtung ferner eine zentrale Verarbeitungseinheit umfasst, die konfiguriert ist, den Testcontroller zu steuern. - Speichervorrichtung nach einem der
Ansprüche 1 bis15 , worin der Testcontroller konfiguriert ist, ein Fehlersignal auszugeben, wenn er einen Fehler detektiert. - Speichervorrichtung nach
Anspruch 1 , worin der Testcontroller konfiguriert ist, zu überprüfen, ob das ausgelesene Datenwort einen Fehler aufweist, indem er überprüft, ob die Fehlerkorrekturbits gültige Fehlerkorrekturbits für den Rest des ausgelesenen Datenworts sind. - Verfahren zum Testen einer Speichervorrichtung, umfassend: Auslesen für jeden Datenwortspeicher einer Vielzahl von Datenwortspeichern der Speichervorrichtung eines im Datenwortspeicher, im Testverfahren unbekannten, gespeicherten Datenworts, welches Fehlerkorrekturbits umfasst; Überprüfen des ausgelesenen Datenworts, mittels der Fehlerkorrekturbits des Datenwortes, um einen Fehler der Speichervorrichtung zu detektieren; Bestimmen eines Komplementärdatenworts des Datenworts, sofern kein Fehler des ausgelesenen Datenwortes detektiert wird; Speichern des Komplementärdatenworts im Datenwortspeicher; Auslesen des Komplementärdatenworts aus dem Datenwortspeicher; Überprüfen des ausgelesenen Datenworts, um einen Fehler der Speichervorrichtung zu detektieren; Speichern des ausgelesenen Datenwortes oder des ausgelesenen Komplementärdatenwortes im Datenwortspeicher.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016100630.0A DE102016100630B4 (de) | 2016-01-15 | 2016-01-15 | Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung |
US15/387,780 US10170200B2 (en) | 2016-01-15 | 2016-12-22 | Memory device and method for testing a memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016100630.0A DE102016100630B4 (de) | 2016-01-15 | 2016-01-15 | Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102016100630A1 DE102016100630A1 (de) | 2017-07-20 |
DE102016100630B4 true DE102016100630B4 (de) | 2020-10-01 |
Family
ID=59256001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102016100630.0A Active DE102016100630B4 (de) | 2016-01-15 | 2016-01-15 | Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung |
Country Status (2)
Country | Link |
---|---|
US (1) | US10170200B2 (de) |
DE (1) | DE102016100630B4 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10706952B1 (en) * | 2018-06-19 | 2020-07-07 | Cadence Design Systems, Inc. | Testing for memories during mission mode self-test |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160332A1 (en) * | 2004-01-16 | 2005-07-21 | Osamu Hirabayashi | Semiconductor integrated circuit |
US20110191648A1 (en) * | 2010-02-01 | 2011-08-04 | Fujitsu Limited | Information processing apparatus, information transmitting method, and information receiving method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0620465A (ja) * | 1991-09-02 | 1994-01-28 | Mitsubishi Electric Corp | 半導体記憶装置 |
US8120960B2 (en) * | 2007-11-07 | 2012-02-21 | Spansion Israel Ltd. | Method and apparatus for accessing a non-volatile memory array comprising unidirectional current flowing multiplexers |
KR20140106770A (ko) * | 2013-02-25 | 2014-09-04 | 삼성전자주식회사 | 반도체 메모리 장치, 이의 테스트 방법 및 동작 방법 |
JP2016184189A (ja) * | 2015-03-25 | 2016-10-20 | ルネサスエレクトロニクス株式会社 | 診断プログラム、診断方法および半導体装置 |
-
2016
- 2016-01-15 DE DE102016100630.0A patent/DE102016100630B4/de active Active
- 2016-12-22 US US15/387,780 patent/US10170200B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050160332A1 (en) * | 2004-01-16 | 2005-07-21 | Osamu Hirabayashi | Semiconductor integrated circuit |
US20110191648A1 (en) * | 2010-02-01 | 2011-08-04 | Fujitsu Limited | Information processing apparatus, information transmitting method, and information receiving method |
Also Published As
Publication number | Publication date |
---|---|
DE102016100630A1 (de) | 2017-07-20 |
US20170206982A1 (en) | 2017-07-20 |
US10170200B2 (en) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69825234T2 (de) | Verfahren und vorrichtung zur selbstprüfung von multi-port-rams | |
DE3412676C2 (de) | ||
DE102018122491A1 (de) | Halbleiterspeichervorrichtung und verfahren zum betreiben derselben | |
EP1389336B1 (de) | Testverfahren zum testen eines datenspeichers | |
DE3607015A1 (de) | Verfahren und vorrichtung zur funktionspruefung von direktzugriffsspeichern | |
DE102012104648A1 (de) | Techniken zur Verifikation einer Verlässlichkeit eines Speichers | |
DE102015113414A1 (de) | Fehlerkorrektur unter Verwendung von WOM-Codes | |
DE4011935C2 (de) | ||
DE2946119C2 (de) | Datenverarbeitungseinrichtung mit einer Vielzahl von Datenverarbeitungselementen, denen ein einziger Strom von Steuersignalen zugeführt wird | |
DE102007019545B4 (de) | Dateninversionsverfahren | |
EP1444699B1 (de) | Verfahren zur rekonfiguration eines speichers | |
DE10337284A1 (de) | Integrierter Speicher mit einer Schaltung zum Funktionstest des integrierten Speichers sowie Verfahren zum Betrieb des integrierten Speichers | |
DE10256487B4 (de) | Integrierter Speicher und Verfahren zum Testen eines integrierten Speichers | |
DE102016100630B4 (de) | Speichervorrichtung und Verfahren zum Testen einer Speichervorrichtung | |
DE102017124313B4 (de) | Speicheranordnung und verfahren zum verifizieren eines speicherzugriffs | |
DE69724737T2 (de) | Verfahren und Vorrichtung zur Prüfung von Speicherschaltungen | |
DE112007003117T5 (de) | Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus | |
DE102008016205A1 (de) | Verfahren und Schaltung zur Belastung von Zwischenverbindungen auf hoher Ebene in Halbleiterbauelementen | |
DE10124742C1 (de) | Verfahren und Einrichtung zum Testen einer Speicherschaltung | |
DE10331068A1 (de) | Verfahren zum Auslesen von Fehlerinformationen aus einem integrierten Baustein und integrierter Speicherbaustein | |
DE102006004009A1 (de) | Prüfdatentopologie-Schreibvorgang in Speicher unter Verwendung von zwischengespeicherten Leseverstärkerdaten und Zeilenadressenverwürfelung | |
DE102018126051A1 (de) | Neuartige Speichervorrichtung | |
DE60212103T2 (de) | Strukturierter speicherzellentest | |
DE4018669A1 (de) | Halbleiterspeichereinrichtung mit einem auf dem chip befindlichen testschaltkreis und testverfahren fuer diese | |
DE112004002973T5 (de) | Halbleiterbauelement und Verfahren zum Schreiben von Daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R082 | Change of representative |