DE10206189A1 - Speichertest - Google Patents

Speichertest

Info

Publication number
DE10206189A1
DE10206189A1 DE10206189A DE10206189A DE10206189A1 DE 10206189 A1 DE10206189 A1 DE 10206189A1 DE 10206189 A DE10206189 A DE 10206189A DE 10206189 A DE10206189 A DE 10206189A DE 10206189 A1 DE10206189 A1 DE 10206189A1
Authority
DE
Germany
Prior art keywords
memory
memory cell
test
parity
read
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.)
Ceased
Application number
DE10206189A
Other languages
English (en)
Inventor
Frank Mayer
Kamal Merchant
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Siemens AG
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV, Siemens AG filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE10206189A priority Critical patent/DE10206189A1/de
Priority to AT02779192T priority patent/ATE384331T1/de
Priority to US10/494,794 priority patent/US7287204B2/en
Priority to PCT/DE2002/004046 priority patent/WO2003043022A2/de
Priority to CNB02822437XA priority patent/CN100458717C/zh
Priority to DE50211572T priority patent/DE50211572D1/de
Priority to ES02779192T priority patent/ES2298404T3/es
Priority to EP02779192A priority patent/EP1444700B1/de
Publication of DE10206189A1 publication Critical patent/DE10206189A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1208Error catch memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Abstract

Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Betreiben und/oder Testen von Speichern, welche einen zeitsparenden Test von Halbleiterspeichern während des laufenden Betriebs ermöglichen. Bei dem Verfahren zum Testen von Speichern (2) mit Speicherzellen (1) wird zu den Speicherzellen (1) jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle (1) zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle (1) gebildet.

Description

  • Die Erfindung betrifft ein Verfahren sowie eine Vorrichtung zum Testen und/oder Betreiben von Halbleiterspeichern mit Speicherzellen.
  • Die Erfindung betrifft ein Verfahren sowie eine Vorrichtung zum Testen und/oder Betreiben von Halbleiterspeichern mit Speicherzellen, insbesondere von Speichern in fehlersicheren Systemen, welche ohne Unterbrechung für eine längere Zeit arbeiten. Bei diesen fehlersicheren Systemen müssen Hardwarefehler üblicherweise im laufenden Betrieb erkannt werden.
  • Speicher für binäre Signale gehören zu den wichtigsten Funktionseinheiten digitaler informationsverarbeitender Systeme. Sie finden u. a. als Programm- und Datenspeicher in Digitalrechnern, Messgeräten, als Code-Wandler und allgemein zur Realisierung kombinatorischer logischer Schaltungen Verwendung. Ein digitaler Speicher ist eine Anordnung mehrerer Speicherzellen, die so organisiert sind, dass von außen zu jeder Speicherzelle Zugriff besteht. In einem sogenannten wortorganisierten Speicher können alle Bits eines Wortes gleichzeitig adressiert und parallel gelesen oder eingeschrieben werden. Bei einem k-Bit-Wort werden somit sämtliche k Bits eines Wortes als eine Speicherzelle betrachtet. Sofern nichts anderes gesagt wird, wird im Folgenden unter einer Speicherzelle stets ein k Bit breites Wort verstanden. Bei Adressierung von nur jeweils einem Bit spricht man von Bitorganisation.
  • Die ältere Anmeldung DE 100 37 992 beschreibt ein Online- Testkonzept, bei welchem die Hardware während des Betriebs in regelmäßigen Zeitintervallen blockweise getestet wird. Hierfür werden Zeitintervalle vordefiniert, in denen die Hardware zyklisch getestet wird und anschließend der ursprüngliche Zustand wiederhergestellt wird, bevor der Funktionsbetrieb fortgesetzt wird. Das beschriebene Konzept erlaubt u. a. einen Onlinetest von Zustandsmaschinen (FSM = Finite State Machine) sowie von sogenannter Random-Logik.
  • Der Erfindung liegt die Aufgabe zugrunde, einen zeitsparenden Test von Halbleiterspeichern während des laufenden Betriebs zu ermöglichen.
  • Diese Aufgabe wird durch ein Verfahren zum Testen und/oder Betreiben von Speichern mit Speicherzellen gelöst, bei welchem zu den Speicherzellen jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle gebildet wird.
  • Diese Aufgabe wird durch eine Vorrichtung mit Speichern mit Speicherzellen gelöst, wobei den Speicherzellen jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle zugeordnet ist.
  • Die Erfindung beruht auf der Erkenntnis, dass durch relativ einfache schaltungstechnische Maßnahmen die Effektivität eines Speichertests mittels Einsatz eines variablen Parameters zur Bildung einer Prüfinformation zu Speicherzellen wesentlich erhöht werden kann. Das erfindungsgemäße Verfahren bzw. die erfindungsgemäße Vorrichtung erlauben die Erkennung von Fehlern bei den Vorgängen Adressieren, Schreiben, Speichern und Lesen. Im Gegensatz zu bisher bekannten Speichertests ist der zeitliche Testaufwand proportional zur Anzahl der Speicherzellen n multipliziert mit m = log2n und steigt nicht quadratisch mit dem Adressraum n an. Bei zunehmender Speichergröße lässt sich der erfindungsgemäße Algorithmus sehr gewinnbringend einsetzen, da der zeitliche Testaufwand im Vergleich zu bisherigen Verfahren mit der Zunahme des Speichers stark abnimmt, Adressierfehler aber trotzdem erkannt werden.
  • In einer vorteilhaften Ausgestaltung der Erfindung wird der Speichertest in einem oder in mehreren Testzyklen durchgeführt. Für eine effektive Fehlererkennung, insbesondere für die Erkennung von Adressierfehlern, wird vorgeschlagen, jeweils in einer ersten Phase eines Testzyklus einen Basistest über sämtliche Speicherzellen durchzuführen. Beim Basistest wird jeweils der Inhalt der Speicherzellen gelesen und werden die Speicherzellen mit diesem Inhalt jeweils erweitert um eine erste Prüfinformation wieder beschrieben, wobei diese erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle zugeordneten variablen Parameter und dem zuvor gelesenen Inhalt der jeweiligen Speicherzelle gebildet wird. In einer zweiten Phase des Testzyklus, nachdem alle Speicherzellen entsprechend der ersten Phase gelesen und wieder beschrieben wurden, wird der Inhalt der Speicherzellen wiederum gelesen, eine zweite Prüfinformation aus diesem in der zweiten Phase gelesenen Inhalt bestimmt und die zweite Prüfinformation mit der gespeicherten ersten Prüfinformation verglichen.
  • Die erste Phase des erfindungsgemäßen Speichertests kann vorteilhafterweise auch dazu genutzt werden, Speicherzellen zur Erkennung von Fehlern bei den Vorgängen Schreiben, Lesen und Speichern zu beschreiben und zu lesen, insbesondere zur Erkennung von Koppelfehlern innerhalb einer Speicherzelle (sogenannte horizontale Koppelfehler). Der Speicher wird wieder in den gleichen Zustand versetzt, den er vor dem Speichertest hatte, wenn gemäß einer weiteren Ausgestaltung der Erfindung am Ende eines Basis-Testzyklus des Basistests die Speicherzellen jeweils mit dem in der ersten Phase gelesenen Inhalt beschrieben werden.
  • Der oben genannte einer Speicherzelle zugeordnete variable Parameter kann als variable Parität ausgebildet sein. Die Parität stellt die einfachste und was die Informationsrate anbelangt die effektivste Codierung dar. Mit der Parität lassen sich die Einbitfehler zu hundert Prozent erkennen. Ist der variable Parameter als variable Parität ausgebildet, dann wird als erste Prüfinformation ein zusätzliches Bit (ein sogenanntes Paritätsbit) in Abhängigkeit von der der jeweiligen Speicherzelle zugeordneten variablen Parität und in Abhängigkeit vom Inhalt der jeweiligen Speicherzelle gebildet. Das Paritätsbit wird so gebildet, dass die Gesamtzahl der Eins-Bits des Inhalts der jeweiligen Speicherzelle ergänzt um das Paritätsbit gerade (bei gerader variabler Parität) oder ungerade (bei ungerader variabler Parität) ist. Die Speicherzelle wird in der ersten Phase mit dem Inhalt erweitert um das Paritätsbit beschrieben. In der zweiten Phase wird aus dem wiederum gelesenen Inhalt der Speicherzellen eine zweite Prüfinformation bestimmt, welche bei Verwendung einer variablen Parität als variables Paritätsbit ausgebildet ist, d. h. als Information, ob die Gesamtzahl der Eins-Bits des in der zweiten Phase gelesenen Inhalts gerade oder ungerade ist.
  • Das erfindungsgemäße Verfahren kann insbesondere zur Erkennung von Koppelfehlern eingesetzt werden, wobei ein Koppelfehler durch die fehlerhafte Zuordnung einer oder mehrerer Speicherzellen zu einer Speicheradresse gekennzeichnet ist. Koppelfehler lassen sich besonders einfach erkennen, wenn eine einer Anzahl von Adressbits der binär dargestellten Speicheradresse entsprechende Anzahl von Testzyklen vorgesehen ist und in jedem Testzyklus jeweils ein anderes Adressbit zur Bildung einer variablen Prüfinformation bzw. variable Parität verwendet wird. Um auch Fehler zu erkennen, bei denen die gekoppelte Speicherzelle eine höhere Adresse als die Koppelzelle hat, wird vorgeschlagen, dass in einem ersten Abschnitt eines Testzyklus die Speicherzellen entsprechend ihrer Speicheradressen in aufsteigender Reihenfolge getestet werden und in einem zweiten Abschnitt des Testzyklus die Speicherzellen entsprechend ihrer Speicheradressen in absteigender Reihenfolge getestet werden.
  • Arbeitet man auch im Funktionsbetrieb mit einer variablen Parität, so müsste eine auf den Speicher zugreifende Software stets das paritätsbestimmende Adressbit mit sich führen und daraus die aktuelle Parität ermitteln. Dieses Problem lässt sich umgehen, wenn bei Lesezugriffen auf eine Speicherzelle mit einer Speicheradresse ein festes Paritätsbit durch eine Ex-Or-Verknüpfung von einem paritätsbestimmenden Adressbit der jeweiligen Speicheradresse mit der ersten Prüfinformation der jeweiligen Speicherzelle gebildet wird und bei Schreibzugriffen auf die Speicherzelle die erste Prüfinformation durch eine Ex-Or-Verknüpfung des festen Paritätsbits mit dem paritätsbestimmenden Adressbit gebildet wird. D. h. es wird intern mit einem variablen Paritätsbit gearbeitet, nach außen wird jedoch bei Lesezugriffen eine feste Parität zur Verfügung gestellt bzw. bei Schreibzugriffen die von der Software gelieferte feste Parität intern in die variable Parität umgewandelt.
  • Für Hardware mit zweikanaliger Architektur kann die Fehlererkennungswahrscheinlichkeit erhöht werden, wenn zum Testen von Speichern mit Speicherzellen auf mindestens zwei unterschiedlichen Baueinheiten jeweils eine Signatur von Zugriffsdaten gebildet wird und die gebildeten Signaturen zur Fehlererkennung miteinander verglichen werden.
  • Das erfindungsgemäße Verfahren kann vorteilhaft auch als Build-In Self Test (abgekürzt BIST) bei der Produktion eines Speichers und/oder beim Power-On-Test eines Speichers eingesetzt werden.
  • Nachfolgend wird die Erfindung anhand der in den Figuren dargestellten Ausführungsbeispiele näher beschrieben und erläutert.
  • Es zeigen:
  • Fig. 1 einen Basis-Testzyklus zum Test einer Speicherzelle,
  • Fig. 2 einen Basis-Testzyklus am Beispiel eines 3*k-Bit- FIFO,
  • Fig. 3 eine Hardwarearchitektur zur Realisierung eines Basis-Testzyklus,
  • Fig. 4 eine Signaturbildung der Zugriffsdaten in einer zweikanaligen Architektur,
  • Fig. 5 ein Szenario sogenannter Koppelfehler,
  • Fig. 6 die interne Datenverarbeitung beim Vorgang Lesen mit fester Parität und
  • Fig. 7 die interne Datenverarbeitung beim Vorgang Schreiben mit fester Parität.
  • Im Folgenden werden anhand der Zeichnung die einzelnen Schritte eines Verfahrens zum Testen von Speichern und die Komponenten einer Vorrichtung mit Speichern näher erläutert. Sofern nichts anderes gesagt wird, werden unter dem Begriff Speicher statische Halbleiterspeicher mit wahlfreiem Zugang, auch Schreib-Lese-Speicher genannt (RAM = Random-Access Memory) und/oder Nur-Lese-Speicher (ROM = Read-Only Memory) verstanden.
  • Die Einbindung eines Speichertests in einen Onlinetest erfordert einen gewissen zeitlichen und organisatorischen Aufwand. Die einschlägigen Normen (DIN 19250/19251, DIN 0801, DIN 0801/A1 und IEC 61508) definieren Anforderungsklassen bzw. fordern die Erkennung von Fehlern bei folgenden Vorgängen:
    • - Adressieren
    • - Schreiben
    • - Speichern
    • - Lesen
  • Im Gegensatz zu den Adressierungsfehlern lassen sich die restlichen drei Fehlerarten (Schreiben, Speichern und Lesen) mit relativ einfachen Hardwarestrukturen und Algorithmen erkennen. Bei den Adressierungsfehlern ist insbesondere die Erkennung der mehrfachen Adressierung sowie des Koppelfehlers relativ zeitaufwendig. Zunächst sollen daher die restlichen drei Fehlerarten betrachtet und ein Basistestkonzept zur Erkennung dieser Fehler anhand Fig. 1 und Fig. 2 vorgestellt werden. Je nach Anforderung der erwünschten Sicherheitsstufe (AK bzw. SIL) müssen dann zusätzliche Maßnahmen getroffen werden.
  • Fig. 1 stellt die einzelnen Schritte 21 bis 30 eines Basis- Testzyklus des Basistestkonzepts dar. Innerhalb des Basis- Testzyklus wird eine Speicherzelle 1 auf Fehler bei den Vorgängen Schreiben, Speichern und Lesen getestet. Der Basis- Testzyklus beginnt mit der Initialisierung 21 eines FIFOs (FIFO = First In First Out-Speicher). Im nächsten Schritt 22 wird der Inhalt der zu testenden Speicherzelle 1 ausgelesen und in einem weiteren Schritt 23 in einem Latch 8 (Latch = Register) gespeichert. In der Digitaltechnik versteht man unter einem Latch eine Anordnung von bistabilen Schaltgliedern (Flip-Flops), mit deren Hilfe eine Information aufgenommen, kurzzeitig gespeichert und wieder abgegeben werden kann. Diese Information kann im Unterschied zum einzelnen R-S-Flip-Flop nicht nur aus einem Bit, sondern auch aus einem Datenwort mit mehreren Bits bestehen. Im Schritt 24 wird der Inhalt des Latch 8, das Lesedatum, im FIFO gespeichert und im Schritt 25 der Ausgang des FIFOs in die Speicherzelle 1 geschrieben. Im folgenden Schritt 26 wird die Speicherzelle 1 wieder ausgelesen und im Schritt 27 wird das Lesedatum wiederum in den Latch 8 geschrieben. Im Schritt 28 wird das Lesedatum im Latch 8 mit dem Ausgangsdatum des FIFOs verglichen. Je nachdem ob im Schritt 29 der ursprüngliche Inhalt der Speicherzelle 1 wiederhergestellt ist oder nicht (abhängig von der verwendeten FIFO-Tiefe) wird nun direkt der Schritt 30 ausgeführt bzw. der Vorgang ab Schritt 24 wiederholt. Schritt 30 besteht aus dem Inkrementieren des Adresszählers. Der Adresszähler weist nach dem Inkrementieren auf die nächste Speicherzelle, die in einem nächsten Basis- Testzyklus getestet wird, welcher wiederum aus den entsprechenden Schritten 22 bis 30 besteht. Der erste Schritt 21 erübrigt sich beim wiederholten Ausführen des Basis- Testzyklus, da der FIFO bereits durch die Durchführung des vorhergehenden Basis-Testzyklus korrekt initialisiert ist.
  • In Fig. 2 wird der Vorgang entsprechend Fig. 1 am Beispiel eines 3*k-Bit-FIFOs 9 veranschaulicht. Der Einfachheit halber wird zunächst ein synchroner, statischer und unidirektionaler Speicher betrachtet, der byteweise (d. h. k = 8) organisiert ist. In Fig. 2 wird dazu ein kompletter Basis-Testzyklus 40 dargestellt, welcher innerhalb von acht einzelnen Takten 31 bis 38 abläuft. Jede Speicherzelle 1 lässt sich mit sechs Speicherzugriffen, dreimal Schreiben und dreimal Lesen, bezüglich der Vorgänge Schreiben, Speichern und Lesen vollständig überprüfen. Bei einem k-Bit-Wort werden die sämtlichen k Bits eines Wortes als eine Speicherzelle betrachtet. Am Ende des Tests wird der ursprüngliche Zelleninhalt (d. h. die Funktionsdaten) wieder hergestellt. Das Schreibdatum wird grundsätzlich aus dem FIFO 9 geholt und das Lesedatum wird in den FIFO 9 übertragen. Vor Beginn des eigentlichen Tests wird der FIFO 9 initialisiert, d. h. die obersten zwei FIFO-Stufen werden mit den Inhalten AA'X bzw. 55'X vorbesetzt. Bei k ≠ 8 werden die obersten zwei Stufen entsprechend mit den Bitmustern "1010. . . . ." bzw. "0101. . . . ." belegt.
  • Die unterste Stufe beinhaltet ein zufälliges Datum ##'X. Die Speicherzelle 1 enthält am Anfang den Inhalt SP'X. Mit dem Suffix 'X soll hier eine hexadezimale Zahl gekennzeichnet sein. Der ganze Basis-Testzyklus 40 benötigt insgesamt acht Takte 31 bis 38 zum Testen einer Speicherzelle 1. Die Vorgänge während der einzelnen Takte 31 bis 38 werden im Folgenden beschrieben. Im ersten Takt 31 wird der ursprüngliche Inhalt SP'X der Speicherzelle 1 ausgelesen und in den Latch 8 am Ausgang des Speichers 2 übernommen. Der Inhalt des FIFOs 9 entspricht der Initialisierung. Im zweiten Takt 32 wird nun der eingelesene Inhalt SP'X aus dem Latch 8 in den FIFO 9 übernommen. Im gleichen Takt 32 wird das Ausgangsdatum 55'X des FIFOs 9 in die Speicherzelle 1 geschrieben. Im folgenden dritten Takt 33 wird das zuletzt geschriebene Datum 55'X wieder aus der Speicherzelle ausgelesen und im Latch 8 gespeichert. Das ausgelesene Datum 55'X wird mit dem Ausgangsdatum des FIFOs 9 verglichen, beide sollten den gleichen Wert haben. Der Vorgang des Vergleichens ist in Fig. 2 jeweils mit dem Bezugszeichen 42 gekennzeichnet. Im vierten Takt 34 wird das Lesedatum 55'X aus dem Latch 8 in den FIFO 9 übernommen. Das nunmehr aktuelle Ausgangsdatum AA'X des FIFOs 9 wird, ebenfalls im vierten Takt 34, in die Speicherzelle 1 geschrieben. Das zuletzt geschriebene Datum AA'X wird im fünften Takt 35 aus der Speicherzelle 1 wieder ausgelesen und im Latch 8 gespeichert. Der Wert im Latch 8 wird mit dem Ausgangsdatum AA'X des FIFOs 9 verglichen, beide haben im Idealfall den gleichen Wert. Im sechsten Takt 36 wird das Le edatum AA'X aus dem Latch in den FIFO 9 übernommen. Das Ausgangsdatum des FIFOs 9, welches nun den ursprünglichen im ersten Takt 31 aus der Speicherzelle 1 ausgelesenen Speicherinhalt SP'X darstellt, wird in die Speicherzelle 1 zurückgeschrieben. Das zuletzt geschriebene Datum SP'X aus der Speicherzelle wird im siebten Takt 37 wieder ausgelesen und im Latch 8 gespeichert. Der Inhalt des Latch 8 wird mit dem Ausgangsdatum SPX des FIFOs 9 verglichen, beide beinhalten das ursprüngliche aus der Speicherzelle 1 ausgelesene Datum SP'X. Im achten Takt 38schließlich wird der Adresszähler, der die Speicherzelle 1 adressiert um eins inkrementiert (gekennzeichnet mit dem Bezugszeichen 43). Die Testhardware steht nun bereit zum Testen der nächsten Speicherzelle (Takt 39). Die hier aufgeführten Schritte können relativ bequem mit einer Zustandsmaschine (FSM = Finite State Machine) implementiert werden. Eigentlich ist im sechsten Takt 36 die Überprüfung der Speicherzelle 1 beendet und der ursprüngliche Speicherzustand wiederhergestellt. Im siebten Takt 37 wird der ursprüngliche Speicherinhalt zum zweitenmal ausgelesen und mit dem im ersten Takt 31 ausgelesenen Speicherinhalt SP'X verglichen. Auf diese Weise kann man in 8.n Takten n Speicherzellen überprüfen. n stellt hier den gesamten Adressraum dar. Bei m Adressbits ist n = 2m.
  • Fig. 3 zeigt die zur Prüfung einer Speicherzelle erforderliche Hardwarearchitektur. Dargestellt ist ein Speicher 2, welcher n Speicherzellen mit jeweils k Bit enthält. Der Speicher 2 besitzt einen Dateneingang DI (Data Input), einen Adressiereingang Ad, einen Trigger- oder Takteingang Clk sowie die Eingänge Cs, Rd/Wr, welche für den Zugang der Steuersignale Chip Select (CS), Schreibzugriff (Wr) bzw. Lesezugriff (Rd) vorgesehen sind. Der Speicher kann über den Datenausgang DO (Data Output) Daten an einen k-Bit-Latch 8 ausgeben. Eine Zustandsmaschine FSM steuert die Prüfung des Speichers. Die Adressierung einer einzelnen Speicherzelle erfolgt über einen Adresszähler 50. Zur Zwischenspeicherung der ausgelesenen und einzulesenden Daten dient ein 3*k-Bit- FIFO 9. Die Daten aus Latch 8 und FIFO 9 werden mit einem Vergleicher 51 verglichen.
  • Fig. 4 zeigt ein Ausführungsbeispiel eines Speichersystems bei zweikanaliger Architektur. Bei zweikanaliger Architektur lassen sich zusätzlich mit wenig Aufwand Signaturen 5 der Zugriffsdaten bilden. Ein Vergleich der Signaturen 5 mit den Signaturen der Zugriffsdaten im Partner-ASIC (in Fig. 4 nicht dargestellt) erhöht zusätzlich die Fehlererkennungswahrscheinlichkeit (siehe DE 103 37 992). Zusätzlich zu den bereits anhand Fig. 3 beschriebenen Elementen werden dafür zwei linear rückgekoppelte Schieberegister 60 (LFSR = Linear Feedback Shift Register) benötigt. Ein LFSR 60 dient zur Bildung der Signatur 5 der Schreibdaten, das andere LFSR 60 zur Bildung der Signatur 5 der Lesedaten des Speichers. Bei linear rückgekoppelten Schieberegistern werden bestimmte Bits des Schieberegisters über ein XNOR-Gatter an den Eingang rückgekoppelt.
  • Das hier vorgeschlagene Verfahren zum Testen von Speichern ist besonders geeignet zur Erkennung von Fehlern beim Vorgang Adressieren, insbesondere zum Erkennung von sogenannten Koppelfehlern. Bei den Koppelfehlern handelt es sich um die unerwünschte Kopplung zwischen zwei bzw. mehreren Speicherzellen. Die Erkennung der Koppelfehler ist üblicherweise sehr zeitaufwendig und der Testaufwand wächst bei den bisher bekannten Verfahren quadratisch mit der Anzahl der Speicherzellen n. Die hier vorgestellte Testarchitektur ist einfach zu realisieren und lässt sich problemlos in das zuvor beschriebene Online-Testkonzept einbinden. Hiermit kann eine Sicherheitsanforderung bis AK 4 (nach DIN 19250/19251) oder SIL 2 bis 3 (nach IEC 61508) erreicht werden. Das Konzept lässt sich sowohl bei einkanaliger als auch bei zweikanaliger Architektur anwenden.
  • Koppelfehler zwischen Speicherzellen (sogenannte vertikale Koppelfehler) sind sehr komplex. Die bekannten Testverfahren beschränken sich zunächst auf die Erkennung einfacher Koppelfehler. Fig. 5 zeigt ein typisches Szenario eines Koppelfehlers. Dargestellt ist ein Speicher 2 mit Speicherzellen 1, 61, auf die über eine Verbindung 62 zugegriffen werden kann. Bei einem Koppelfehler sind die adressierten und die selektierten Speicherzellen nicht dieselben. Im Folgenden wird die adressierte Speicherzelle auch als Koppelzelle, die selektierte Speicherzelle als gekoppelte Zelle bezeichnet. Wird eine erste Speicherzelle 1 adressiert aber auf eine zweite Speicherzelle 61 zugegriffen, dann bleibt die erste Speicherzelle 1, falls keine weitere Fehlerquellen existieren, nicht zugreifbar. Ein Lese- bzw. Schreibzugriff auf die erste Speicherzelle 1 läuft formal korrekt ab, ohne dass jedoch ihr Inhalt angetastet wird. Um solche Fehler zu lokalisieren wird gewöhnlich der ganze Speicher mit einem bekannten Muster vorbelegt (z. B. 55'X oder AA')X. Anschließend wird adressweise der Speicherinhalt invertiert und der ganze Speicher auf einen korrekten Dateninhalt geprüft. Bekannte Tests nach diesem Verfahren sind Walkpat und Galpat. Der Testaufwand steigt bei diesen Verfahren proportional zum Quadrat der Anzahl n der Speicherzellen. Für Onlinetests sind Verfahren dieser Art nicht geeignet, da zum einen die aktuelle Speicherbelegung durch den Test zerstört wird und zum anderen die Testzeit drastisch mit der Speichergröße anwächst und somit unter Umständen ein vollständiger Test des Speichers in einer vorgeschriebenen Zeit nicht durchgeführt werden kann. Durch Codierung der Daten (Speicherinhalt) lässt sich hier Abhilfe schaffen. Im oben genannte Fehlerfall wird das Datum eigentlich nicht verfälscht sondern nur fehlerhaft zugeordnet. Solche Fehler können nur dann erkannt werden, wenn die Adresse bei der Codebildung einbezogen wird. Die Parität stellt die einfachste und was die Informationsrate anbelangt die effektivste Codierung dar. Mit der Parität lassen sich die Einbitfehler zu hundert Prozent erkennen. Die Einbeziehung der Parität als eine der Codierungsmöglichkeiten zur Erkennung der Koppelfehler verbessert die Gesamtsituation, sie bleibt jedoch unbefriedigend. Man kann die Effektivität der Parität jedoch drastisch steigern, wenn man mit einer variablen Parität VP, z. B. mit einer adressabhängigen Parität arbeitet. Damit werden alle Koppelfehler vom obengenannten Typ erkennbar. Die Einführung einer variablen Parität VP hat den entscheidenden Vorteil, dass die Adresse nicht unbedingt in die Paritätsbildung einbezogen werden muss. Die Fehleranalyse ohne den Bezug zur Adresse wird sogar vereinfacht und transparent. Bei byteweise organisierten Speichern benötigt man ein Bit zusätzlich (d. h. 12,5% Speicher-Overhead) oder eine Reduktion der Daten um ein Bit von acht auf sieben. Der Koppelfehler wird grundsätzlich erkannt, wenn die Paritäten der Koppelzelle und der gekoppelten Zelle ungleich sind. Tabelle 1

  • Zum besseren Verständnis soll das hier vorgeschlagene Verfahren an einem 16-Byte-Speicher verdeutlicht werden. Zur Darstellung des gesamten Adressraums dieses Speichers benötigt man vier Adressbits. Jede beliebige Speicherzelle lässt sich mit einem 4-Bit-Zähler (z. B. Adresszähler 50 in Fig. 3 und Fig. 4) adressieren. Die sechzehn Zustände dieses Zählers sind in Tabelle 1 zusammengestellt. Zur vollständigen Erkennung der Koppelfehler muss jedes Adresspaar mindestens einmal mit einer unterschiedlichen Parität beaufschlagt werden.
  • Der Speichertest wird mittels einer Zustandsmaschine (FSM) gesteuert. Die Zustandsmaschine durchwandert sämtliche Adressen von 0 bis 15. Bei dem hier beschriebenen Test wird eines der Adressbits als variable Parität VP genutzt. Im Betrachtungsfall ergeben sich dann maximal vier Testzyklen mit der zyklusabhängigen variablen Parität VP. Im ersten Testzyklus wird die variable Parität VP aus MSB (= Most Significant Bit = höchstwertigstes Bit), also Bit A3 der Adresse, abgeleitet. Im Beispiel sei A3 = '0' als gerade Parität und A3 = '1' als ungerade Parität vorgesehen. Wie man anhand Tabelle 1 sieht, wird die Hälfte der Speicherzellen in diesem Testzyklus mit der geraden Parität und die andere Hälfte mit der ungeraden Parität beaufschlagt. Dies ist in sämtlichen Testzyklen so. Im ersten Testzyklus sind die Speicherzellen der oberen Hälfte des Speichers (Adresse 0 bis 7) mit der geraden Parität, die Speicherzellen der unteren Hälfte des Speichers (Adresse 8 bis 15) mit der ungeraden Parität beaufschlagt. Alle Koppelfehler paarweise betrachtet, zwischen einer beliebigen Adressen aus der oberen Gruppe und einer beliebigen Adresse aus der unteren Gruppe, werden stets erkannt. Nicht erkannt werden die Koppelfehler untereinander in der oberen Hälfte (mit A3 = 0) bzw. in der unteren Hälfte (mit A3 = 1). Die Hälfte der nicht erkannten Koppelfehler in den beiden Bereichen werden im zweiten Testzyklus erkannt, bei welchem die variable Parität VP durch das Adressbit A2 dargestellt wird. In jedem weiteren Testzyklus wird dann die Hälfte der bis dahin nicht erkannten Koppelfehler erkannt. Schließlich werden im letzten Testzyklus mit Adressbit A0 (LSB = Least Significant Bit = niederwertigstes Bit) als variable Parität VP sämtliche bis dahin nicht erkannten Koppelfehler erkannt. Auf diese Weise werden sämtliche Koppelfehler des oben genannten Typs in wenigen Takten (Anzahl der benötigten Takte nicht quadratisch sondern einfach proportional zur Anzahl der Speicherzellen mal Anzahl der Adressbits) und mit geringerer zusätzlicher Hardware erkannt.
  • Der vorgeschlagene Speichertest besteht somit aus zwei Phasen: In der ersten Phase wird der oben beschriebene Basistest durchgeführt. Dabei werden die Speicherzellen auf die Vorgänge Schreiben, Lesen und Speichern überprüft. Dieser Basistest wird dahingehend ergänzt, dass der im sechsten Takt 36 zurückgeschriebene ursprüngliche Speicherinhalt nun mit der variablen Parität des aktuellen Testzyklus gemäß Tabelle 1 zurückgeschrieben wird. In der zweiten Phase wird nach dem Rückschreiben des gesamten Speichers mit der variablen Parität mit den funktionalen Daten der Speicher wieder komplett ausgelesen und die Parität des Datums mit der variablen Parität VP (Paritätsbestimmung durch Adressbit A(4-i) im iten Zyklus) verglichen. Die zweite Phase benötigt nur zwei Takte pro Speicherzelle, einen Takt zum Lesen und einen Takt zum Vergleichen des Datums sowie Inkrementieren des Adresszählers (eventuell können beide Aufgaben in einer Taktperiode erledigt werden). Im bisher beschriebenen Verlauf des Speichertests wurde der Speicher aufwärts abgearbeitet (beginnend mit der Adresse 0). Hat die gekoppelte Speicherzelle jedoch eine höhere Adresse als die Koppelzelle (siehe Fig. 5), so wird ihr Datum im Laufe der Phasenbearbeitung zu einem späteren Zeitpunkt noch einmal mit der variablen Parität VP überschrieben. Um diesen Koppelfehler zu erkennen müssen die erste und die zweite Phase noch einmal wiederholt werden, wobei diesmal der Speicher abwärts abgearbeitet wird (beginnend mit der Adresse n). Die zweite Phase läuft dabei unverändert ab. Die erste Phase benötigt insgesamt 8.n Takte. Die zweite Phase benötigt weitere 2.n Takte, so dass die beiden Phasen zusammen 10.n Takte benötigen. Für das Abarbeiten der Speicher in der absteigenden Adressfolge kann man auf das Schreiben und Lesen des Speichers mit dem Datum 55'X und AA'X verzichten. Die erste Phase kann in diesem Fall auf drei Takte beschränkt werden:
    • - Lesen des aktuellen Datums SP'X (Funktionsdatum)
    • - Schreiben des Datums mit der variablen Parität
    • - Dekrementieren des Adresszählers (nächste Adresse)
  • Für das abwärts Abarbeiten des Speichers benötigt man maximal (3 + 2).n = 5.n Takte. Man braucht also insgesamt maximal 15.n Takte für einen Testzyklus mit einem variablen Paritätsmuster, bestimmt durch eines der Adressbits Ai. Ein Testzyklus besteht grundsätzlich aus zwei Testläufen, d. h. aus zwei Abschnitten, einem mit aufsteigender und einem mit absteigender Adressfolge. Ein Adressraum mit m Adressbits, wobei

    m = log2n

    gilt, benötigt somit maximal insgesamt (15.n.m) Takte. Für die zeitkritischen Anwendungen kann man bei den Testzyklen 2 bis m auf die erste Phase sogar komplett verzichten. In diesem Falle benötigt man dann maximal (10.n.m + 5.n) Takte für einen vollständigen Speichertest. Diese maximale Anzahl von (10.n.m + 5.n) Takten lässt sich noch erheblich reduzieren, wenn man stets mit der variablen Parität VP nach oben beschriebenem Verfahren arbeitet. D. h. auch im Funktionsbetrieb wird die Parität durch das jeweilige Adressbit Ai, abhängig vom Testzyklus, bestimmt. In diesem Falle entfallen die drei Takte (Lesen, Schreiben mit der variablen Parität und Dekrementieren des Adresszählers) für den Zyklusablauf mit der absteigenden Adressfolge. Es werden dann nicht 15.n Takte sondern 12.n Takte für den ersten Testzyklus benötigt. Für die weiteren Zyklen benötigt man dann 4.n Takte pro Zyklus (2.n für die aufsteigende und 2.n für die absteigende Adressfolge, jeweils für die zweite Phase, die erste Phase entfällt). Somit benötigt man insgesamt maximal (4.n.m + 8.n) Takte für einen vollständigen Speichertest. Der Vorteil des schnelleren Testdurchlaufs (Gewinn ca. 60%) muss mit einem höheren Softwareaufwand in Kauf genommen werden. Die Software muss in diesem Fall stets das paritätsbestimmende Adressbit Ai mit sich führen und daraus die aktuelle Parität ermitteln. Dieses Problem lässt sich jedoch relativ einfach umgehen, wenn intern mit einem variablen Paritätsbit, wie oben beschrieben, operiert wird. Nach außen wird jedoch bei den Lesezugriffen ein manipuliertes Paritäts-Bit, das durch eine Ex-Or-Verknüpfung von Ai und variablem Paritätsbit gebildet wird und eine feste Parität FP (im Betrachtungsfall gerade Parität) wiedergibt, zur Verfügung gestellt. Bei den Schreibzugriffen wird das von der Software gelieferte Paritäts-Bit mit der festen Parität FP (im Betrachtungsfall gerade Parität) intern durch eine Ex- Or-Verknüpfung mit dem paritätsbestimmenden Adressbit Ai zur variablen Parität VP umgewandelt. Das so gewonnene Paritätsbit wird dann in den Speicher übertragen. Hierzu benötigt man zwei zusätzliche Ex-Or-Gatter, wie aus der Tabelle 2 entnommen werden kann. Tabelle 2

  • Arbeitet man stets mit einer variablen Parität VP (auch im Funktionsmodus), so muss bei dem oben beschriebenen Basistestkonzept bei den Lesezugriffen die gelesene Parität mit der aktuellen variablen Parität, ermittelt durch Einbeziehung des paritätsbestimmenden Adressbits Ai, verglichen werden. Dieser Vergleich findet bei allen Lesezugriffen statt, außer in der ersten Taktperiode des Basistests, da nach dem Power-On der Speicher mit Zufallsdaten vorbelegt ist und die Parität ungültig ist. Bei den Schreibzugriffen wird die variable Parität VP unter Einbeziehung des paritätsbestimmenden Adressbit Ai gebildet und zusammen mit dem Datum im Speicher übertragen.
  • Fig. 6 und Fig. 7 zeigen die für die Speicherzugriffe im Funktionsbetrieb benötigte Hardware, falls intern stets mit der variablen Parität gearbeitet wird. Fig. 6 stellt die interne Datenverarbeitung beim Vorgang Lesen dar. In einer Speicherzelle ist ein mit einer variablen Parität VP beaufschlagtes Datum 68 gespeichert. Beim Lesezugriff auf diese Speicherzelle, z. B. durch eine externe Software, wird allerdings nicht das Datum 68 mit variabler Parität VP weitergegeben, sondern das Datum 65 mit einer festen Parität FP. Dazu wird intern, also innerhalb der Hardware-Schaltung, aus den Adressbits 7 der Speicheradresse der jeweiligen Speicherzelle mit einem Multiplexer MUX ein paritätsbestimmendes Adressbit 10 ausgewählt. Dieses Adressbit 10 wird in einem Ex-Or-Gatter 66 mit dem variablen Paritätsbit 63 des Datums 68 Ex-Or-verknüpft. Das Ergebnis dieser Ex-Or- Verknüpfung ist ein festes Paritätsbit 69, welches zur Bildung des externen Datums 65 verwendet wird. Die lesende Software sieht somit die variable Parität VP nicht, sondern kann mit Daten mit einer festen Parität FP arbeiten.
  • Im Falle des Vorgangs Schreiben liegt ein mit einer festen Parität FP beaufschlagtes externes Datum 65 vor, welches im Speicher in einer Speicherzelle gespeichert werden soll. Aus den Adressbits 7 der Speicheradresse der jeweiligen Speicherzelle wird mit einem Multiplexer MUX ein paritätsbestimmendes Adressbit 10 ausgewählt. Dieses Adressbit 10 wird in einem Ex-Or-Gatter 67 mit dem festen Paritätsbit 64 des Datums 65 Ex-Or-verknüpft. Das Ergebnis dieser Ex-Or-Verknüpfung ist das variable Paritätsbit 70, welches zur Bildung des internen Datums 68 verwendet wird. Dieses mit der variablen Parität VP beaufschlagte interne Datum 68 wird in einer Speicherzelle gespeichert. Die anhand Fig. 6 und Fig. 7 erläuterte Hardware bildet die weiter oben anhand Tabelle 2 beschriebenen Vorgänge ab. Das paritätsbestimmende Adressbit 10 entspricht dabei dem oben genannten Adressbit Ai.
  • Im Folgenden werden Vorteile des hier beschriebenen Testverfahrens noch einmal zusammenfassend genannt. Der zeitliche Testaufwand wächst proportional zur Anzahl der Speicherzellen n multipliziert mit m = log2n und nicht quadratisch mit dem Adressraum n wie bei bisher bekannten Standard-Tests. Bereits bei einem 1 kB-Speicher bedeutet dies eine Reduktion der Anzahl der Takte um den Faktor hundert. Der Multiplikator beträgt anstatt 1024 bei den bisher bekannten Verfahren bei dem hier vorgeschlagenen Verfahren nur noch log21024 = 10. Bei zunehmender Speichergröße lässt sich der hier beschriebene Algorithmus sehr gewinnbringend einsetzen, da der zeitliche Testaufwand im Vergleich zu bekannten Verfahren exponentiell mit der Zunahme des Speichers abnimmt. Es werden alle einfachen Koppelfehler vom Grundtypus erkannt. Das Verfahren ist in der Lage auch mehrfache Koppelfehler zu erkennen. Das Verfahren ist einfach durchzuführen und einfach zu implementieren und lässt sich so auch für den Produktionstest gewinnbringend einsetzen. Der hier vorgeschlagene Algorithmus lässt sich problemlos an beliebiger Stelle unterbrechen und ist deshalb besonders vorteilhaft im Rahmen des oben beschriebenen Online- Testkonzepts einzusetzen, bei welchem mit diesem Verfahren ein Wechsel zwischen Testbetrieb und Funktionsbetrieb an beliebiger Stelle möglich wird. Als einziger Nachteil wird gesehen, dass ein Bit zusätzlich für die Parität benötigt wird.
  • Im Funktionsmodus steht dem Anwender frei entweder mit einer festen Parität oder ohne Einbeziehung der Parität zu operieren. In beiden Fällen wird intern mit der variablen Parität gearbeitet. Zum Durchführen eines vollständigen Speichertests benötigt man maximal (4.n.m + 8.n) Takte für einen Speicher mit n Speicherzellen. Da in beiden Fälle die gleiche Anzahl der Takte für einen vollständigen Test benötigt werden, wird empfohlen mit einer festen Parität zu arbeiten. In diesem Fall kann auch ein zufälliger Fehler, der während des Funktionsbetriebs entsteht sofort beim Lesen des Speichers erkannt werden.
  • Zum besseren Verständnis wurde in der Beschreibung ein synchroner statischer und unidirektionaler Speicher betrachtet. Grundsätzlich lässt sich das hier beschriebene Verfahren jedoch für eine beliebige Speicherart mit entsprechender Modifikation anwenden. So kann ein asynchroner Speicher durch eine kleine Zusatzlogik an den Ein- bzw. Ausgängen, die taktgesteuert den Speicher mit Daten (Adresse, Datum und Steuersignale) versorgt, wie ein synchroner Speicher betrieben werden. Bei einem dynamischen Speicher muss darauf geachtet werden, dass die Refreshzyklen während des Speichertests berücksichtigt werden. Ein bidirektionaler Speicher kann durch Hinzufügen eines Eingangs- bzw. eines Ausgangslatchs am Datenport wie ein unidirektionaler Speicher betrieben werden. Mehrtorspeicher können mit dem gleichen Verfahren getestet werden, wobei der Speichertest nur für einzelne Speichertore (Ports) oder nacheinander für jedes Speichertor (Port) durchgeführt wird. Alle genannten Speicher können als ASIC (= Application- Specific Integrated Circuit = anwenderspezifischer integrierter Schaltkreis) oder als Teil eines solchen realisiert sein.
  • Zusammenfassend betrifft die Erfindung somit ein Verfahren und eine Vorrichtung zum Testen und/oder Betreiben von Speichern, welche einen zeitsparenden Test von Halbleiterspeichern während des laufenden Betriebs ermöglichen. Bei dem Verfahren zum Testen von Speichern 2 mit Speicherzellen 1 wird zu den Speicherzellen 1 jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle 1 zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle 1 gebildet.

Claims (22)

1. Verfahren zum Betreiben und/oder Testen von Speichern (2) mit Speicherzellen (1), bei welchem zu den Speicherzellen (1) jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle (1) zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle (1) gebildet wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in einem oder mehreren Testzyklen
jeweils in einer ersten Phase
jeweils ein Inhalt der Speicherzellen (1) gelesen wird,
zu den Speicherzellen (1) jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle (1) zugeordneten variablen Parameter und dem in der ersten Phase gelesenen Inhalt der jeweiligen Speicherzelle (1) gebildet wird,
die Speicherzellen (1) mit dem in der ersten Phase gelesenen Inhalt jeweils erweitert um die erste Prüfinformation beschrieben werden und
jeweils in einer zweiten Phase zur Erkennung von Fehlern beim Vorgang Adressieren der Inhalt der Speicherzellen (1) gelesen, eine zweite Prüfinformation aus dem in der zweiten Phase gelesenen Inhalt unter Einbeziehung des variablen Parameters gebildet und die zweite Prüfinformation mit der zu der jeweiligen Speicherzelle (1) in der ersten Phase gebildeten ersten Prüfinformation verglichen wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass am Ende eines Basis-Testzyklus eines Basistests die Speicherzellen (1) jeweils mit dem in der ersten Phase gelesenen Inhalt beschrieben werden.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass in der ersten Phase Speicherzellen (1) zur Erkennung von Fehlern bei den Vorgängen Schreiben, Lesen und Speichern beschrieben und gelesen werden.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Testen von Speichern (2) mit Speicherzellen (1) auf mindestens zwei unterschiedlichen Baueinheiten jeweils eine Signatur (5) von Zugriffsdaten gebildet wird und die gebildeten Signaturen (5) zur Fehlererkennung miteinander verglichen werden.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren zur Erkennung von Koppelfehlern eingesetzt wird, wobei ein Koppelfehler durch die fehlerhafte Zuordnung einer oder mehrerer Speicherzellen (1) zu einer Speicheradresse gekennzeichnet ist.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der einer Speicherzelle (1) zugeordnete variable Parameter als variable Parität (VP) ausgebildet ist.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine einer Anzahl von Adressbits (7) der binär dargestellten Speicheradresse entsprechende Anzahl von Testzyklen vorgesehen ist und in jedem Testzyklus jeweils ein anderes Adressbit (7) zur Variation des variablen Parameters verwendet wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass in jedem Testzyklus jeweils ein anderes Adressbit (7) als variable Parität (VP) zur Bildung der ersten Prüfinformation verwendet wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in der ersten Phase eines Testzyklus bei jeder Speicherzelle (1) des Speichers (2) jeweils
ein ursprünglicher Inhalt der Speicherzelle (1) gelesen und in ein Register (8) am Ausgang des Speichers (2) übernommen wird,
der gelesene ursprüngliche Inhalt aus dem Register (8) in einen FIFO (9) übernommen wird und ein erstes Ausgangsdatum des FIFOs (9) in die Speicherzelle (1) geschrieben wird,
der Inhalt der Speicherzelle (1) wiederum gelesen, in das Register (8) am Ausgang des Speichers (2) übernommen wird und mit dem ersten Ausgangsdatum des FIFOs (9) verglichen wird,
der gelesene Inhalt aus dem Register (8) in den FIFO (9) übernommen wird und ein zweites Ausgangsdatum des FIFOs (9) in die Speicherzelle (1) geschrieben wird,
der Inhalt der Speicherzelle (1) wiederum gelesen, in das Register (8) am Ausgang des Speichers (2) übernommen wird und mit dem zweiten Ausgangsdatum verglichen wird und
der gelesene Inhalt aus dem Register (8) in den FIFO (9) übernommen wird und der ursprüngliche Inhalt aus dem FIFO (9) in die Speicherzelle (1) geschrieben wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in einem ersten Abschnitt eines Testzyklus die Speicherzellen (1) entsprechend ihrer Speicheradressen in aufsteigender Reihenfolge getestet werden und in einem zweiten Abschnitt des Testzyklus die Speicherzellen (1) entsprechend ihrer Speicheradressen in absteigender Reihenfolge getestet werden.
12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in einem Funktionsbetrieb bei Lesezugriffen auf eine Speicherzelle (1) mit einer Speicheradresse ein festes Paritätsbit (69) durch eine Ex-Or-Verknüpfung von einem paritätsbestimmenden Adressbit (10) der jeweiligen Speicheradresse mit der ersten Prüfinformation (63) der jeweiligen Speicherzelle (1) gebildet wird und bei Schreibzugriffen auf die Speicherzelle (1) die erste Prüfinformation (70) durch eine Ex-Or-Verknüpfung des festen Paritätsbits (64) mit dem paritätsbestimmenden Adressbit (10) gebildet wird.
13. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren zum Testen von Speichern innerhalb beliebiger Zeitabschnitte des Funktionsbetrieb vorgesehen ist.
14. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren als Build-In Self Test bei einer Produktion eines Speichers (2) verwendet wird.
15. Vorrichtung mit Speichern (2) mit Speicherzellen (1), wobei den Speicherzellen (1) jeweils eine erste Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle (1) zugeordneten variablen Parameter und einem Inhalt der jeweiligen Speicherzelle (1) zugeordnet ist.
16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass die Vorrichtung Mittel zum Lesen von Inhalten der Speicherzellen (1) und Mittel zum Beschreiben der Speicherzellen (1) aufweist, wobei Mittel zur Bildung einer ersten Prüfinformation in Abhängigkeit von einem der jeweiligen Speicherzelle (1) zugeordneten variablen Parameter und dem in einer ersten Phase eines Testzyklus gelesenen Inhalt der jeweiligen Speicherzelle (1), Mittel zur Bildung einer zweiten Prüfinformation aus dem in einer zweiten Phase des Testzyklus gelesenen Inhalt und Mittel zum Vergleich der zweiten Prüfinformation mit der zu der jeweiligen Speicherzelle (1) in der ersten Phase gebildeten ersten Prüfinformation vorgesehen sind.
17. Vorrichtung nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass zum Testen von Speichern (2) mit Speicherzellen (1) auf mindestens zwei unterschiedlichen Baueinheiten Mittel zur Bildung und zum Vergleich von Signaturen (5) von Zugriffsdaten vorgesehen sind.
18. Vorrichtung nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet, dass der einer Speicherzelle (1) zugeordnete variable Parameter als variable Parität (VP) ausgebildet ist.
19. Vorrichtung nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, dass der einer Speicherzelle (1) zugeordnete variable Parameter entsprechend einem Adressbit (7) der binär dargestellten Speicheradresse ausgebildet ist.
20. Vorrichtung nach einem der Ansprüche 15 bis 19, dadurch gekennzeichnet, dass zur Bildung der ersten Prüfinformation in jedem Testzyklus jeweils ein anderes Adressbit (7) als variable Parität (VP) vorgesehen ist.
21. Vorrichtung nach einem der Ansprüche 15 bis 20, dadurch gekennzeichnet, dass Register (8) am Ausgang des Speichers (2) und ein FIFO (9) zur Zwischenspeicherung von Inhalten der Speicherzellen (1) und Ausgangsdaten vorgesehen sind.
22. Vorrichtung nach einem der Ansprüche 15 bis 21, dadurch gekennzeichnet, dass ein erstes Ex-Or-Gatter (66) zur Bildung eines festen Paritätsbits (69) bei Lesezugriffen auf eine Speicherzelle (1) mit einer Speicheradresse durch eine Ex-Or-Verknüpfung eines paritätsbestimmenden Adressbits (10) der jeweiligen Speicheradresse mit der ersten Prüfinformation (63) der jeweiligen Speicherzelle (1) und ein zweites Ex-OR-Gatter (67) zur Bildung der ersten Prüfinformation (70) bei Schreibzugriffen auf die Speicherzelle (1) durch eine Ex-Or- Verknüpfung des festen Paritätsbits (64) mit dem paritätsbestimmenden Adressbit (10) vorgesehen sind.
DE10206189A 2001-11-12 2002-02-14 Speichertest Ceased DE10206189A1 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE10206189A DE10206189A1 (de) 2001-11-12 2002-02-14 Speichertest
AT02779192T ATE384331T1 (de) 2001-11-12 2002-10-30 Speichertest
US10/494,794 US7287204B2 (en) 2001-11-12 2002-10-30 Memory unit test
PCT/DE2002/004046 WO2003043022A2 (de) 2001-11-12 2002-10-30 Speichertest
CNB02822437XA CN100458717C (zh) 2001-11-12 2002-10-30 测试和/或运行存储器的方法以及带有该存储器的装置
DE50211572T DE50211572D1 (de) 2001-11-12 2002-10-30 Speichertest
ES02779192T ES2298404T3 (es) 2001-11-12 2002-10-30 Test de memoria.
EP02779192A EP1444700B1 (de) 2001-11-12 2002-10-30 Speichertest

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10155531 2001-11-12
DE10206189A DE10206189A1 (de) 2001-11-12 2002-02-14 Speichertest

Publications (1)

Publication Number Publication Date
DE10206189A1 true DE10206189A1 (de) 2003-05-28

Family

ID=7705482

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10206189A Ceased DE10206189A1 (de) 2001-11-12 2002-02-14 Speichertest

Country Status (1)

Country Link
DE (1) DE10206189A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343533B2 (en) 2004-11-03 2008-03-11 Samsung Electronics Co., Ltd. Hub for testing memory and methods thereof
DE102017114054B4 (de) 2016-11-29 2022-08-18 Taiwan Semiconductor Manufacturing Co. Ltd. Speicheradressen-Schutzschaltung und Verfahren

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343533B2 (en) 2004-11-03 2008-03-11 Samsung Electronics Co., Ltd. Hub for testing memory and methods thereof
DE102017114054B4 (de) 2016-11-29 2022-08-18 Taiwan Semiconductor Manufacturing Co. Ltd. Speicheradressen-Schutzschaltung und Verfahren

Similar Documents

Publication Publication Date Title
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE2311034C2 (de) Verfahren zum Prüfen eines integrierte logische Verknüpfungs- und Speicherglieder enthaltenden Halbleiterchips
DE2942998C2 (de) Fehler-Korrektur- und Erkennungs-Anordnung
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE3607015A1 (de) Verfahren und vorrichtung zur funktionspruefung von direktzugriffsspeichern
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE3128729A1 (de) Halbleiter-speichersystem
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
EP1444700B1 (de) Speichertest
EP1246033A1 (de) Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen
DE2357654C2 (de) Assoziativspeicher
DE2946119C2 (de) Datenverarbeitungseinrichtung mit einer Vielzahl von Datenverarbeitungselementen, denen ein einziger Strom von Steuersignalen zugeführt wird
DE102008013099A1 (de) Speichertestschaltung
DE1185404B (de) Fehlerermittlungsanlage
DE2549392C3 (de) Verfahren zur Erhöhung der Zuverlässigkeit von integrierten Speicherbausteinen und zur Verbesserung der Ausbeute von nach außen hin fehlerfrei erscheinenden Speicherbausteinen bei ihrer Herstellung
EP1254461B1 (de) Testbarer festwertspeicher für datenspeicher-redundanzlogik
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE10206189A1 (de) Speichertest
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE2036517A1 (de) Verfahren zum Betrieb eines schadhafte Speicherelemente enthaltenden Speichers für programmgesteuerte elektronische Datenverarbeitungsanlagen
DE3422287A1 (de) Pruefanordnung fuer digitalschaltungen
DE2633253A1 (de) Datenbearbeitungssystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection