DE102013211077B4 - Verfahren zum Testen eines Speichers und Speichersystem - Google Patents

Verfahren zum Testen eines Speichers und Speichersystem Download PDF

Info

Publication number
DE102013211077B4
DE102013211077B4 DE102013211077.4A DE102013211077A DE102013211077B4 DE 102013211077 B4 DE102013211077 B4 DE 102013211077B4 DE 102013211077 A DE102013211077 A DE 102013211077A DE 102013211077 B4 DE102013211077 B4 DE 102013211077B4
Authority
DE
Germany
Prior art keywords
user data
memory
fkc
inverted
check
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
Application number
DE102013211077.4A
Other languages
English (en)
Other versions
DE102013211077A1 (de
Inventor
Klaus Oberlaender
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies 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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102013211077.4A priority Critical patent/DE102013211077B4/de
Priority to US14/301,538 priority patent/US9818492B2/en
Priority to CN201410260935.3A priority patent/CN104240768B/zh
Publication of DE102013211077A1 publication Critical patent/DE102013211077A1/de
Application granted granted Critical
Publication of DE102013211077B4 publication Critical patent/DE102013211077B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Verfahren zum Testen eines Speichers, wobei das Verfahren Folgendes umfasst: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten (101); Invertieren der im Speicher gespeicherten Benutzerdaten (103); Durchführen einer zweiten FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten (105) und Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (107); wobei das Verfahren die weiteren Schritte umfasst: Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher; Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; und Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.

Description

  • Ausführungsformen der vorliegenden Erfindung betreffen ein Verfahren zum Testen eines Speichers durch Durchführen einer Fehlerkorrekturcodeprüfung. Weitere Ausführungsformen der vorliegenden Erfindung betreffen ein Speichersystem, das einen Controller umfasst, der dazu konfiguriert ist, einen Speicher des Speichersystems zu testen.
  • Technischer Hintergrund
  • SRAM-Speicher in komplizierten Mikrocontrollerprodukten müssen häufig in Sicherheitsanwendungen während der Anwendung getestet werden, um resultierende neue harte Fehler und weiche Fehler im Speicher zu erkennen, zu korrigieren und zu registrieren. Dies wird in kurzen regelmäßigen Zeitscheiben durchgeführt und nimmt eine beträchtliche Zeit der tatsächlichen Anwendung in Anspruch. Je kürzer die Zeit ist, die für das regelmäßige Testen des Speichers benötigt wird, desto mehr Zeit und Leistung steht für die tatsächliche Anwendung zur Verfügung.
  • In herkömmlichen Systemen werden SRAM-Module getestet, indem zunächst Module, deren SRAM getestet werden sollte, funktionell abgeschaltet werden und dann der Speicher über den Bus zugänglich gemacht wird und dann der tatsächliche Anwendungsinhalt in einen anderen Speicher, der noch leer ist, übertragen (kopiert) wird und dann der zu testende Speicher unter Verwendung eines vordefinierten Algorithmus/einer vordefinierten physischen Belegung getestet wird. Nach dem Test wird der tatsächliche Inhalt wieder zurückkopiert.
  • Das Verschieben der ursprünglichen Benutzerdaten über einen Bus ist sehr zeitaufwändig. Der häufig von dem CPU ausgeführte Test kann gleichfalls oftmals nicht kritische Bedingungen während des aktiven Betriebs simulieren, wenn der CPU über einen langsamen Bus mit Wartezyklen während des Tests auf den Speicher zugreift, während das Modul, das den Speicher verwendet, möglicherweise nacheinander auf jeden Zyklus zugreift.
  • Aus dem Stand der Technik ist die Druckschrift AT 409 562 B bekannt, die einen transparenten Test eines Speichers ermöglicht, wobei Datenwörter, die an Speicherplätzen des Speichers gespeichert sind, die zugewiesene Prüfbits aufweisen, zyklisch aus dem Speicher ausgelesen werden und auf Fehler untersucht werden.
  • Ferner ist aus dem Stand der Technik die Druckschrift „Hsiao: Error-Correcting Codes for Semiconductor Memory Applications: A State-of-the-Art Review. In: IBM Journal of Research and Development, 28, March 1984, 2, 124–134. – ISSN 0018-8646” bekannt, die Fehlerkorrekturcodes für Halbleiter-Computerspeicher-Anwendungen des Stands der Technik beschreibt, wobei die Erzeugung von vier Klassen von Fehlerkorrekturcodes, die für Halbleiterspeicher-Designs geeignet sind, dargestellt wird.
  • Des Weiteren ist aus dem Stand der Technik die Druckschrift US 2003/0 074 619 A1 bekannt, die ein Verfahren und eine Vorrichtung zur Durchführung eines eingebauten Selbsttests auf einer integrierten Schaltkreis-Einheit zeigt.
  • Kurzdarstellung der Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zum Testen eines Speichers und ein verbessertes Speichersystem bereitzustellen.
  • Diese Aufgabe wird durch die Verfahren nach den Ansprüchen 1 und 2, durch die Speichersysteme nach den Ansprüchen 14, 15, 21 und 22 und durch die nicht vergänglichen Speichermedien nach den Ansprüchen 23 und 24 gelöst.
  • Weitere Gesichtspunkte der vorliegenden Erfindung sind von den abhängigen Ansprüchen ableitbar.
  • Ausführungsformen der vorliegenden Erfindung betreffen ein Verfahren zum Testen eines Speichers. Das Verfahren umfasst Folgendes:
    Durchführen einer Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten;
    Invertieren der im Speicher gespeicherten Benutzerdaten;
    Durchführen einer weiteren FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten und
    Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher.
  • Darüber hinaus betreffen weitere Ausführungsformen der vorliegenden Erfindung ein Speichersystem, das einen Speicher, der darauf gespeichert Benutzerdaten aufweist, und einen Controller umfasst. Der Controller ist dazu konfiguriert, einen Speicher durch Folgendes zu testen:
    Durchführen einer Fehlerkorrekturcodeprüfung (FKC-Prüfung) an den im Speicher gespeicherten Benutzerdaten;
    Invertieren der im Speicher gespeicherten Benutzerdaten;
    Durchführen einer weiteren FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten und
    Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher.
  • Kurze Beschreibung der Figuren
  • Ausführungsformen der vorliegenden Erfindung werden ausführlich unter Bezugnahme auf die begleitenden Figuren beschrieben, in denen:
  • 1 ein Ablaufdiagramm eines Verfahrens zum Testen eines Speichers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 ein anderes Ablaufdiagramm eines weiteren Verfahrens zum Testen eines Speichers gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, das eine mögliche Umsetzung des in 1 gezeigten Verfahrens ist;
  • 3 ein Blockdiagramm eines Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt und
  • 4 ein Blockdiagramm eines weiteren Speichersystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt, das eine mögliche Umsetzung des in 3 gezeigten Speichersystems ist.
  • Ausführliche Beschreibung von Ausführungsformen der vorliegenden Erfindung
  • Bevor Ausführungsformen der vorliegenden Erfindung ausführlicher beschrieben werden, sollte darauf hingewiesen werden, dass in den Figuren Elemente mit denselben oder gleichen Funktionalitäten mit denselben Bezugsziffern versehen sind. Folglich sind Beschreibungen, die für Elemente mit denselben Bezugsziffern bereitgestellt werden, untereinander austauschbar.
  • 1 zeigt ein Ablaufdiagramm eines Verfahrens 100 zum Testen eines Speichers.
  • Das Verfahren 100 umfasst einen Schritt 101 zum Durchführen einer Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten.
  • Darüber hinaus umfasst das Verfahren 100 einen Schritt 103 des Invertierens der im Speicher gespeicherten Benutzerdaten.
  • Darüber hinaus umfasst das Verfahren 100 einen Schritt 105 des Durchführens einer weiteren FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten.
  • Darüber hinaus umfasst das Verfahren 100 einen Schritt des Invertierens der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher.
  • Das Verfahren 100 kann ein zerstörungsfreier Test für SRAM in Anwendungen sein.
  • Die Erfinder haben festgestellt, dass ein sehr schneller Test eines Speichers umgesetzt werden kann, wenn eine erste FKC-Prüfung an in einem Speicher gespeicherten Benutzerdaten durchgeführt wird und eine zweite erste FKC-Prüfung an einer invertierten Version der in dem Speicher gespeicherten Benutzerdaten durchgeführt wird. Es ist ein Vorteil dieser Vorgehensweise, dass einerseits so genannte harte Haftfehler (Stuck-at-Fehler) aufgrund des Durchführens der ersten FKC-Prüfung an den Benutzerdaten, wie sie in dem Speicher gespeichert sind, und der weiteren FKC-Prüfung an den invertierten Benutzerdaten gefunden werden können. Darüber hinaus kann durch zweimaliges Invertieren der Benutzerdaten sichergestellt werden, dass kein Kopieren der Benutzerdaten in einen anderen Speicher erforderlich ist, da der Inhalt der Benutzerdaten bewahrt wird, obwohl die FKC-Prüfungen tatsächlich an den Benutzerdaten (die Teil eines Programmcodes einer Anwendung sein können) durchgeführt werden. Somit muss im Gegensatz zu herkömmlichen Systemen kein vorherbestimmtes Fehlermuster in den Speicher kopiert werden, an dem die FKC-Prüfungen durchgeführt werden, und es muss kein Kopieren der Benutzerdaten (wie Programmcodes oder andere benutzerabhängige Daten), die derzeit in dem Speicher gespeichert sind, in einen anderen Speicher (Sicherheitsspeicher) durchgeführt werden.
  • Während des Tests des Speichers kann jeweils eine Adresse des Speichers, da dies auch in Verbindung mit 2 gezeigt ist. Somit kann jeweils eine Adresse getestet werden (Lesen der Benutzerdaten aus der Adresse und FKC-Testen dieser während des Lesens, dann Invertieren dieser und unmittelbar wieder Zurückschreiben dieser, dann Lesen und FKC-Testen der invertierten Benutzerdaten, Invertieren der invertierten Benutzerdaten und Zurückschreiben dieser in die Adresse) und nur dann wird die nächste Adresse getestet, an der dieselben Schritte des Lesens und zweimaligen Invertierens mit den an dieser nächsten Adresse gespeicherten Benutzerdaten durchgeführt werden.
  • Gemäß anderen Ausführungsformen können jedoch alle Adressen (oder mindestens ein bestimmter Adressbereich des Speichers) gelesen werden und die FKC-Prüfung kann auf einmal für die kompletten gelesenen Adressen durchgeführt werden. Dann können alle an diesen Adressen gespeicherten Benutzerdaten auf einmal invertiert werden und der weitere FKC-Test kann an den an diesen (mehreren) Adressen gespeicherten invertierten Benutzerdaten durchgeführt werden. Danach werden die invertierten Benutzerdaten invertiert und zurück in diese Adressen des Speichers geschrieben.
  • Das Konzept des Testens aller Adressen (oder mindestens eines bestimmten Adressbereichs) des Speichers hat den Vorteil, dass der Test sich schneller über die Daten bewegt (was auf einige Arten noch besser ist) ohne Schreibvorgänge dazwischen. Ein anderer Vorteil besteht darin, dass das Verfahren 100 unter Verwendung eines (gewöhnlich bereits verfügbaren) eingebauten Speicher-Selbsttest-Controllers (memory built-in self-test controller, MBIST-Controller) in Verbindung mit einer/eines (gewöhnlich bereits verfügbaren) Fehlerkorrekturcode-Prüfungseinheit oder -Controllers (FKC-Controller) leicht umgesetzt werden kann.
  • 3 zeigt ein derartiges Speichersystem 300, das einen Speicher 301 umfasst. Der Speicher 301 (der ein SRAM sein kann) weist darauf gespeichert Benutzerdaten 303 auf. Darüber hinaus umfasst das Speichersystem 300 einen Controller 305. Der Controller ist dazu konfiguriert, den Speicher 301 durch Durchführen einer (ersten) Fehlerkorrekturcodeprüfung (FKC-Prüfung) an den in dem Speicher 301 gespeicherten Benutzerdaten 303, Invertieren der in dem Speicher 301 gespeicherten Benutzerdaten 303 (nachdem die FKC-Prüfung durchgeführt wurde), Durchführen einer (zweiten oder) weiteren FKC-Prüfung an den (jetzt) in dem Speicher 301 gespeicherten invertierten Benutzerdaten und Invertieren der in dem Speicher 301 gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten 303 in dem Speicher 301 (nachdem die weitere FKC-Prüfung durchgeführt wurde) zu testen. Somit kann der Controller 305 den Speicher 301 ohne jegliches Erfordernis eines Kopierens der Benutzerdaten 303 in einen Sicherheitsspeicher testen, die Benutzerdaten 303 bewahren und sogar harte Haftfehler finden (aufgrund des Prinzips des zweimaligen Invertierens).
  • Mit anderen Worten, wenn Benutzerdaten zum Testen verwendet werden, können die Benutzerdaten nicht wie in einem normalen Test (in dem bestimmte Testmuster verwendet werden) beeinflusst werden, um beide Polaritäten zu haben. Somit würden sich Bitfehler hinter den Benutzerdaten verbergen, wenn der Haftfehler dieselbe Polarität wie die Benutzerdaten für jeden Bit aufweist. Somit ermöglicht das Prinzip des zweimaligen Invertierens, auf beide Polaritäten zu testen, ohne die Benutzerdaten zu zerstören.
  • Eine mögliche Umsetzung des Controllers 305 ist in 4 der vorliegenden Anmeldung gezeigt, die ein Speichersystem 400 als eine mögliche Umsetzung des in 3 gezeigten Speichersystems 300 zeigt. Wie zu sehen ist, umfasst der Controller 305 des Speichersystems 400 den erwähnten MBIST-Controller 401 und den FKC-Controller 403.
  • Der MBIST-Controller 401 ist dazu konfiguriert, die Benutzerdaten 303 und die invertierten Benutzerdaten von dem Speicher 301 zu lesen.
  • Darüber hinaus ist der MBIST-Controller 401 dazu konfiguriert, die invertierten Benutzerdaten in den Speicher 303 zu schreiben und die Benutzerdaten 303 (in der ursprünglichen und nicht invertierten Version) wieder zurück in den Speicher 301 zu schreiben (nachdem die weitere FKC-Prüfung durchgeführt wurde). Der FKC-Controller 403 ist dazu konfiguriert, die FKC-Prüfung an den Benutzerdaten 303 durchzuführen, die von dem MBIST-Controller 401 aus dem Speicher 301 gelesen wurden, und die weitere FKC-Prüfung an den invertierten Benutzerdaten durchzuführen, die von dem MBIST-Controller 401 aus dem Speicher 301 gelesen wurden.
  • Darüber hinaus, wie aus 4 zu ersehen, umfasst das Speichersystem 400 ein Fehlerverfolgungsregister 405. Dieses Fehlerverfolgungsregister 405 ist typischerweise Teil der umgebenden Logik des Speichersystems 400 oder kann auch Teil des MBIST-Controllers 401 sein. In einem derartigen Fehlerverfolgungsregister 405 werden fehlerhafte Adressen oder Benutzerdatenwörter markiert oder gespeichert.
  • Der FKC-Controller 403 ist dazu konfiguriert, während des Durchführens der FKC-Prüfung und der weiteren FKC-Prüfung in den Benutzerdaten 303 gefundene Fehler zu korrigieren oder zumindest als Fehler in dem Fehlerverfolgungsregister 405 zu markieren. Als ein Beispiel können harte Fehler, wie Haftfehler und andere nicht korrigierbare Fehler, in dem Fehlerverfolgungsregister 405 markiert werden, während (korrigierbare) weiche Fehler von dem FKC-Controller 403 vor der Invertierung der invertierten Benutzerdaten korrigiert werden können, indem der Fehler in den invertierten Benutzerdaten korrigiert wird (z. B. durch Durchführen eines einfachen Bit-Flips des betroffenen Bits). Somit werden die in dem Speicher wiederhergestellten Benutzerdaten frei von (korrigierbaren) weichen Fehlern sein.
  • Somit werden gemäß einer weiteren Ausführungsform weiche Fehler, die korrigierbare Fehler sind, entfernt, damit sie sich nicht weiter zu mehreren Fehlern ansammeln, wenn sie nicht behoben werden.
  • Nichtsdestotrotz kann diese Korrektur von weichen Fehlern auch weggelassen werden, da es ausreichend wäre, auch diese (korrigierbaren) weichen Fehler in dem Fehlerverfolgungsregister 405 zu markieren (was durch weitere Ausführungsformen der vorliegenden Erfindung durchgeführt werden kann), da Anwendungen, die auf den Speicher zugreifen, das Fehlerverfolgungsregister 405 sowieso auf Fehler im Speicher prüfen würden. Somit können die wiederhergestellten Benutzerdaten gemäß diesen Ausführungsformen noch immer die (korrigierbaren) weichen Fehler umfassen, die jedoch im Fehlerverfolgungsregister 405 markiert sind.
  • Ausführungsformen der vorliegenden Erfindung verwenden den MBIST-Controller 401, der sowieso nach der Herstellung zu Testzwecken vorliegen kann. Des Weiteren verwendet es zu Zuverlässigkeitszwecken den (typischerweise sowieso existierenden) FKC-Controller 403 (der auch als FKC-Erkennungs- und -Korrektureinheit bezeichnet wird). Der FKC-Controller 403 korrigiert oder zeigt Ein-Bit- und Zwei-Bit-Fehler im Betrieb. Der FKC-Controller 403 bildet zusammen mit dem MBIST-Controller 401 den Controller 305 und diese sind, wie von den Erfindern festgestellt wurde, kombiniert ideal für einen Online-Test während der Anwendung.
  • Zu normalen Testzwecken ermöglicht der MBIST-Controller 401 auf jeden Fall einen schnellen Schreib- und Lesezugriff auf den Speicher 301 und der FKC-Controller 403 ist ideal zum Erkennen möglicher Fehler für beliebige Datenwörter. Um ein zeitaufwändiges Kopieren des Benutzercodes oder der Benutzerdaten 303 zu verhindern, wie es in herkömmlichen Systemen durchgeführt wird, kann der MBIST-Controller 401 jetzt laufen, um den kompletten Speicherinhalt des Speichers 301 zu lesen, und verwendet den FKC-Controller 403, um Fehler zu finden, die möglicherweise darin enthalten sind, und dann fehlerhafte Wörter zu finden und zu registrieren, z. B. in einem Fehlerverfolgungsregister 405, in dem die Adressen fehlerhafter Wörter gespeichert werden. Dieses Fehlerverfolgungsregister 405 oder dieser Fehlerverfolgungsspeicher 405 kann beispielsweise während des Testens des Speichers 301 als eine Art Mini-Cache-Speicher verwendet werden, um mittels einer Softwareinstallation nach jedem Boot-Zyklus die fehlerhaften SRAM-Wörter in diesem Mini-Cache-Speicher zu maskieren.
  • Die Erfinder haben festgestellt, dass durch nur Prüfen der Benutzerdaten 303, wie sie auf dem Speicher 301 gespeichert sind, so genannte harte Haftfehler (Stuck-at-Fehler) möglicherweise nicht gefunden werden, da der Fehler dieselbe Polarität wie das Benutzerbit an dieser Position aufweisen kann. Dies ist der Grund, warum bei einem normalen MBIST-Test mehrere Tests mit unterschiedlichen Dateninhalten und -polaritäten an einem Speicher ausgeführt werden, um diese Fehler noch zu finden. Da die Benutzerdaten 303 nicht vorhersehbar sind oder nicht einem bestimmten Schema folgen und insbesondere im Speicher 301 bewahrt werden sollten, ist dieses Prinzip natürlich nicht mit den Benutzerdaten 303 möglich. Dies ist der Grund, warum Ausführungsformen der vorliegenden Erfindung von der Feststellung Gebrauch machen, dass das Problem von harten Haftfehlern gefunden werden kann, wenn eine erste FKC-Prüfung an den Benutzerdaten durchgeführt wird und eine weitere FKC-Prüfung an den invertierten Benutzerdaten durchgeführt wird. Somit invertieren Ausführungsformen der vorliegenden Erfindung das komplette Benutzerwort beim Lesen und schreiben es im nächsten Zyklus zurück in den Speicher 301. Dies kann für alle Wörter im Speicher 301 im ersten Durchlauf ausgeführt werden. Hier können alle Fehler mit einer bestimmten Polarität gleichzeitig von dem FKC-Controller 403 gefunden werden. Jetzt wird der Vorgang ein zweites Mal unter Verwendung des komplett invertierten Speicherinhalts (den invertierten Benutzerdaten) gestartet und wiederum werden alle nun invertierten Wörter unter Verwendung des MBIST-Controllers 401 ausgelesen und der FKC-Controller 403 wird wiederum zur Fehlererkennung verwendet und invertiert das Wort für jede Adresse und schreibt es zurück auf vollständig invertierte Weise. Nach dem zweiten Durchlauf wurde der ursprüngliche Inhalt des Speichers (die ursprünglichen Benutzerdaten 303, wie sie in dem Speicher 301 vor Durchführen der ersten FKC-Prüfung gespeichert sind) jetzt reproduziert und es wurden noch immer alle harten und weichen Ein- und Zwei-Bit-Fehler und je nach dem Algorithmus sogar alle Drei-Bit-Haftfehler gefunden (Fehler, die beide Polaritäten aufweisen) und der Speicherinhalt wurde folglich komplett erhalten. Somit wird nach Durchführen der zwei Fehlerkorrekturcodeprüfungen an den Benutzerdaten 303 und den invertierten Benutzerdaten der Inhalt des Speichers 301 noch immer bewahrt, da die Benutzerdaten nicht geändert wurden. Somit ist ein problematisches und zeitaufwändiges Kopieren des Inhalts des Speichers 301 nicht mehr notwendig, wie es von herkömmlichen Systemen durchgeführt wird. Jede Adresse wird folglich exakt zweimal gelesen und zweimal geschrieben. Mehr Zeit ist nicht erforderlich und ein sehr schnelles Testen ist möglich (z. B. sehr viel schneller als über einen langsamen Bus mittels eines CPU) und Hardware, Bereich und Leistung, die sowieso zu anderen Zwecken existieren, können zum Durchführen des Tests gemäß dem Verfahren 100 verwendet werden. Diese Vorgehensweise ist ideal für häufiges regelmäßiges Testen von Speichern während der Anwendung.
  • Aus 4 ist zu erkennen, dass die Benutzerdaten 303 Anwendungsdaten und FKC-Daten umfassen können. Die FKC-Daten werden typischerweise direkt von den Anwendungsdaten auf Basis eines bestimmten FKC-Codes abgeleitet. In Ausführungsformen der vorliegenden Erfindung kann sind die FKC-Daten auf einem symmetrischen FKC-Code, so dass im Fall eines fehlerfreien Speichers ein Ergebnis der FKC-Prüfung an den Benutzerdaten (die fehlerfrei sein sollten) und ein Ergebnis der weiteren Fehlerprüfung an den invertierten Benutzerdaten gleich sind.
  • Mit anderen Worten, Ausführungsformen der vorliegenden Erfindung verwenden eine FKC-Code, der für den beschriebenen zerstörungsfreien Test symmetrisch ist. Ein derartiger invertierbarer Code führt zu demselben Ergebnis (Einzelfehler, Doppelfehler) mit beiden Polaritäten. Der FKC-Code sollte die Eigenschaft aufweisen, dass jedes Codewort beim Invertieren Bit für Bit wieder ein Codewort wird. Dies ist durch eine geschickte Auswahl des Codes und eine mögliche Erweiterung um ein Bit, falls erforderlich, möglich.
  • Durch Invertieren aller Bits können Haftfehler mit einer beliebigen Art von Benutzercode/-daten (die wir im Vergleich zu einem normalen MBIST-Testmuster nicht beeinflussen können) gefunden werden. Somit bietet das Verwenden des symmetrischen FKC-Codes die Möglichkeit, die kompletten Benutzerdaten zu invertieren, was ermöglicht, auch diese Haftfehler zu finden, die da sind, jedoch aufgrund einer Maskierung von Benutzerdaten mit derselben Polarität als dem Fehler nicht erkennbar sind (ohne Invertierung).
  • Ein Beispiel eines derartigen symmetrischen FKC-Codes ist der symmetrische gekürzte Hsiao-FKC-Code. Somit verwenden mindestens einige Ausführungsformen der vorliegenden Erfindung den symmetrischen gekürzten Hsiao-FKC-Code auf Basis davon, welche der FKC-Prüfung und der weiteren FKC-Prüfung durchgeführt wird.
  • 2 zeigt ein Ablaufdiagramm eines Verfahrens 200 zum Testen eines Speichers gemäß einer Ausführungsform der vorliegenden Erfindung. Das in 2 gezeigte Verfahren 200 ist ein ausführlicheres Beispiel des Verfahrens 100, das zusätzliche Schritte umfasst.
  • Das Verfahren 200 zeigt, wie während der normalen Ausführung einer Anwendung ein Test des Speichers, der Benutzerdaten 303 umfasst, die Teil eines Programmcodes der Anwendung sind, getestet werden können.
  • Das Verfahren 200 umfasst einen Schritt 201 des Ausführens einer Anwendung auf Basis der im Speicher 301 gespeicherten Benutzerdaten (z. B. der Benutzerdaten 303), wobei die Benutzerdaten 303 mindestens ein Teil des Programmcodes der Anwendung sind oder auf die Benutzerdaten 303 von (zumindest einem Teil) der Anwendung zugegriffen wird.
  • In einem weiteren Schritt 203 des Verfahrens 200 wird die Anwendung gestoppt oder zumindest der Teil der Anwendung wird gestoppt der auf den Teil (die Adresse oder den Adressbereich) des Speichers zugreift, der getestet werden soll, bevor die (erste) FKC-Prüfung an den Benutzerdaten 303 in Schritt 101 durchgeführt wird. Nachdem die Anwendung gestoppt oder zumindest zum Teil gestoppt wurde, werden die Schritte 101 bis 107 (des Verfahrens 100) an den Benutzerdaten 303 durchgeführt, um den Speicher 301 an der Adresse oder den Adressen zu testen, an der bzw. denen die Benutzerdaten 303 im Speicher 301 gespeichert sind. Mit anderen Worten: Es ist nicht erforderlich, die Anwendung komplett herunterzufahren, da es ausreicht, den Kern/das Peripheriegerät zu stoppen, der bzw. das von einer derartigen Adresse oder derartigen Adressen des zu testenden Speichers 301 oder SRAM ausgeführt wird, oder zu bewirken, dass der Kern eine andere Anwendung von einem anderen physischen SRAM oder einer anderen Adresse des Speichers 301, der nicht getestet werden soll, durchführt, und dann den Test einzurichten und ihn zu starten und auszuführen.
  • Wie bereits beschrieben, können werden die Benutzerdaten 303 während des Durchführens der ersten Fehlerkorrekturcodeprüfung in Schritt 101 an den Benutzerdaten 303 unter Verwendung des MBIST-Controllers 401 gelesen und durch den FKC-Controller 403 geprüft werden.
  • Darüber hinaus werden die invertierten Benutzerdaten während des Schritts 103 des Invertierens der im Speicher gespeicherten Benutzerdaten unter Verwendung des MBIST-Controllers 401 in den Speicher geschrieben. Es wurde von den Erfindern festgestellt, dass ein derartiger MBIST-Controller 401 einfach zum Lesen von Benutzerdaten 303 aus einem Speicher 301 und zum Schreiben der Benutzerdaten 303 in einer invertierten Version zurück in den Speicher 301 ohne Erfordernis eines zeitaufwändigen Kopierens der Benutzerdaten 303 in einen anderen (z. B. separaten) Speicher verwendet werden kann.
  • Darüber hinaus werden die invertierten Benutzerdaten während des Durchführens der weiteren (oder zweiten) FKC-Prüfung in Schritt 105 unter Verwendung desselben MBIST-Controllers 401 gelesen. Die invertierten Benutzerdaten werden dann (in Schritt 105) unter Verwendung des FKC-Controllers 403 auf Fehler geprüft.
  • Darüber hinaus werden die Benutzerdaten während des Invertierens der invertierten Benutzerdaten in Schritt 107 unter Verwendung des MBIST-Controllers 401 wieder in den Speicher geschrieben. Somit wird nach der ersten Fehlerkorrekturcodeprüfung und der zweiten Fehlerkorrekturcodeprüfung, wobei die oben erwähnten weichen Fehler und harten Fehler in den Benutzerdaten 303 gefunden und schließlich sogar korrigiert werden, der Speicherinhalt ohne Erfordernis jeglichen zeitaufwändigen Kopierens der Benutzerdaten beibehalten.
  • Von dem FKC-Controller 403 in Schritt 101 und 105 gefundene Fehler werden korrigiert oder mindestens in dem Fehlerverfolgungsregister 405 markiert (oder registriert). Typischerweise greift eine Software oder Anwendung auf das Fehlerverfolgungsregister 405 zu und befasst sich mit den markierten Fehlern und kann sogar entscheiden, ob derartige Fehler korrigierbar sind.
  • Gemäß weiteren Ausführungsformen kann auch ein Maskieren der gefundenen Fehler mithilfe des Fehlerverfolgungsregisters 405 stattfinden, so dass ein Zugriff auf die fehlerhaften Wörter in dem Speicher maskiert wird und verfügbare Redundanzdaten verwendet werden.
  • Darüber hinaus können die invertierten Benutzerdaten in Schritt 103 in dieselbe Adresse im Speicher 301 geschrieben werden, aus der die Benutzerdaten 303 gelesen wurden (in Schritt 101). Darüber hinaus können die Benutzerdaten 303 in Schritt 107 wieder in dieselbe Adresse im Speicher 301 geschrieben werden, aus der die Benutzerdaten 303 (und die invertierten Benutzerdaten) gelesen wurden.
  • Darüber hinaus werden die Benutzerdaten 303 typischerweise an einer vorherbestimmten Adresse oder einem vorherbestimmten Adressbereich des zu testenden Speichers 301 gespeichert.
  • Für einen Test des kompletten Speichers 301 (alle Adressen oder der komplette Adressbereich des Speichers 301) sind die Schritte 101, 103, 105 und 107 für mehrere weitere Adressen oder Adressbereiche des zu testenden Speichers 301 zu wiederholen.
  • Mit anderen Worten, die in einem Zyklus aufeinanderfolgender Schritte 101, 103, 105 und 107 getesteten Benutzerdaten 303 werden typischerweise mit einer bestimmten Adresse oder einem bestimmten Adressbereich des Speichers 301 in Verbindung gebracht. Nachdem diese Adresse oder dieser Adressbereich getestet wurde, kann die Adresse des zu testenden Speichers 301 nach dem Schritt 107 des Invertierens der invertierten Benutzerdaten erhöht werden (z. B. unter Verwendung eines Zustandsautomaten in dem MBIST-Controller 401).
  • Somit kann das Verfahren 200 einen fakultativen Schritt 205 des Erhöhens der Adresse des zu testenden Speichers unter Verwendung eines Zustandsautomaten umfassen. Zusammenfassend kann der Controller 305 dazu konfiguriert werden, anschließend unterschiedliche Adressen des (desselben) Speichers zu testen.
  • Der MBIST-Controller 401 kann weiterhin dazu konfiguriert werden, die Benutzerdaten 303 aus einer vorherbestimmten Adresse in dem Speicher 301 zu lesen, die invertierten Benutzerdaten in die vorherbestimmte Adresse zu schreiben, die invertierten Daten aus der vorherbestimmten Adresse zu lesen und die Benutzerdaten 303 wieder in die vorherbestimmte Adresse zu schreiben. Somit werden, wie bereits oben beschrieben, die anschließend durchgeführten Schritte 101 bis 107 an derselben Adresse des Speichers 301 durchgeführt. Nachdem diese Schritte 101 bis 107 durchgeführt wurden und der Speicher 301 an der vorherbestimmten Adresse getestet wurde, kann der MBIST-Controller 401 die Adresse des zu testenden Speichers 301 erhöhen. Dazu kann der MBIST-Controller 401 den oben erwähnten Zustandsautomat zum Erhöhen der Adresse umfassen, nachdem die Benutzerdaten 303 wieder in die vorherbestimmte Adresse geschrieben wurden. Nach dem Erhöhen der Adresse des zu testenden Speichers 301 kann der Controller 305 den Test des Speichers 301 für die erhöhte Adresse des Speichers 301 neu starten, so dass die Schritte 101, 103, 105 und 107 erneut an der erhöhten Adresse des Speichers 301 durchgeführt werden. Dieser Vorgang kann wiederholt werden, bis alle Adressen des Speichers 301 getestet wurden.
  • Nachdem alle Adressen des Speichers 301 getestet wurden oder zumindest nachdem alle Adressen getestet wurden, an denen Benutzerdaten 303 gespeichert werden, die Teil des Programmcodes der Anwendung sind oder auf die von der Anwendung oder dem gestoppten Teil der Anwendung zugegriffen wird, kann die Anwendung oder der gestoppte Teil der Anwendung fortgeführt werden. Somit müssen die Benutzerdaten nicht unbedingt Teil eines Programmcodes der Anwendung sein, sondern können auch komplexere Daten sein (da ein Programmcode gewöhnlich aus einem nichtflüchtigen Speicher neu geladen werden kann, während das bei derartigen Daten möglicherweise nicht möglich ist), auf die von der Anwendung zugegriffen werden kann.
  • Somit umfasst das Verfahren 200 einen Schritt 207 des Fortführens der Anwendung.
  • Während der Schritte 101 und 105 des Durchführens der FKC-Prüfung und der weiten FKC-Prüfung kann der FKC-Controller 403 dazu konfiguriert sein, Fehler zu korrigieren, die in den Benutzerdaten 303 (und in den invertierten Benutzerdaten) gefunden wurden, wie sie auf dem Speicher 301 gespeichert sind, oder zumindest (wenn die Fehler nicht korrigiert werden können, z. B. als Haftfehler) diese Fehler im Fehlerverfolgungsregister 405 zu markieren.
  • Darüber hinaus, wie bereits beschrieben, werden anstelle des Verwendens bestimmter Fehlermuster auf Basis davon, welche der FKC-Prüfung und der weiteren FKC-Prüfung durchgeführt wird, die Benutzerdaten 303, wie sie im Speicher 301 gespeichert sind, zum Durchführen der FKC-Prüfung und der weiteren FKC-Prüfung verwendet. Somit besteht kein Bedarf am Kopieren der Benutzerdaten in einen anderen Speicher oder eine andere Region des Speichers und am Schreiben eines bestimmten Fehlermusters in die Region, in der die Benutzerdaten 303 im Speicher 301 gespeichert sind. Somit wird im Gegensatz zu herkömmlichen Systemen, in denen ein derartiges spezielles Fehlermuster zum Durchführen der FKC-Prüfung verwendet wird, ein Inhalt des Speichers 301 bewahrt (und nicht durch ein bestimmtes Fehlermuster ersetzt), bevor die FKC-Prüfung an den im Speicher gespeicherten Benutzerdaten 303 durchgeführt wird. Somit können die FKC-Prüfung und die weitere FKC-Prüfung an Benutzerdaten 303 auf Basis davon, welche Anwendung ausgeführt wurde, bevor die FKC-Prüfungen durchgeführt wurden, und auf Basis davon, welche Anwendung fortgeführt wird, nachdem der Speicher getestet wurde, durchgeführt werden. Es muss darauf hingewiesen werden, dass für mehrere Tests des Speichers die Benutzerdaten 303 sich ändern können, da die Benutzerdaten 303 benutzerabhängig (oder anwendungsabhängig) und unabhängig von den FKC-Prüfungen sind.
  • Ausführungsformen der vorliegenden Erfindung setzen folglich ein zweimaliges Invertieren (der Benutzerdaten 303) beim Lesen und ein anschließendes sofortiges invertiertes Zurückschreiben. Darüber hinaus können Ausführungsformen der vorliegenden Erfindung von einem existierenden MBIST-Controller 401 und einem existierenden FKC-Controller 403 und Benutzercode/Benutzerdaten für den Online-Test während der Anwendung mit einer vollen Benutzerdatenerfassung und ohne Auslagern oder Einlagern der Benutzerdaten Gebrauch machen. Darüber hinaus ermöglichen Ausführungsformen der vorliegenden Erfindung das Finden von harten und weichen Ein-, Zwei- und Drei-Bit-Fehlern und können gegebenenfalls eine Korrektur weicher Fehler ermöglichen, beispielsweise durch zusätzliche Software und Fehlerverfolgungsregister, wie das Fehlerverfolgungsregister 405, das sowieso in Sicherheitsanwendungen existieren kann.
  • Im Gegensatz zum Konzept des Kopierens von Benutzerdaten und Benutzercode kann ein sehr schneller Test erzielt werden, da überhaupt kein Ein-/Auslagern oder Kopieren der Benutzerdaten erforderlich ist. Ausführungsformen der vorliegenden Erfindung sind folglich ideal für Sicherheitsanwendungen mit einem häufigen Testen des Speichers während der Anwendung zum Erfassen einer normalen CPU-Leistung. Darüber hinaus wird gemäß einigen Ausführungsformen der vorliegenden Erfindung ein invertierbarer symmetrischer FKC-Code verwendet, der beim Invertierten von Datenwort und Codewort zum selben Ergebnis im FKC-Controller oder FKC-Decoder 403 (für Einzelfehler und Doppelfehler) führt.
  • Die Funktionalität des Speichersystems 400 und der Verfahren 100 und 200 kann wie folgt zusammengefasst werden. Der MBIST-Controller 401 steuert den Speicher 301 unter Verwendung des Zustandsautomaten (als ein Beispiel wäre ein Zähler die einfachste Umsetzung zur Erzeugung fortlaufender Adressen am Speicher) und der FKC-Controller oder FKC-Decoder 403 erkennt Fehler während des Lesens des Speichers 301 (der Benutzerdaten 303 aus dem Speicher 301). Fehlerhafte Adressen werden in das Fehlerverfolgungsregister 405 geschrieben. Darüber hinaus werden die Benutzerdaten invertiert und zurück geschrieben. Dieser Vorgang des Lesens und invertierten Schreibens soll wiederholt werden, so dass letztlich die ursprünglichen Daten (die ursprünglichen Benutzerdaten 303) im Speicher 301 gespeichert werden. Als ein Beispiel ist symmetrischer gekürzter Hsiao-FKC-Code vorteilhaft, um beide Polaritäten von Fehlern und ohne jegliche gegebene Benutzerdaten zu erkennen. Somit können Ausführungsformen der vorliegenden Erfindung einen derartigen symmetrischen gekürzten Hsiao-FKC-Code umsetzen.
  • Darüber hinaus werden die Benutzerdaten (z. B. Programmcode oder benutzerspezifische gespeicherte Daten) ohne Erfordernis eines Ein-/Auslagerns der Benutzerdaten vor dem Testen des Speichers bewahrt. Somit ist der Test sehr schnell, da Benutzerdaten/-code nicht zuerst an einen anderen Ort bewegt und dann diese/dieser getestet werden muss. Somit ermöglichen Ausführungsformen einen Hardwaretest mit voller Geschwindigkeit ohne große Einrichtungsaufgaben vor und nach dem Test durch Hin- und Herbewegen von Benutzerdaten und durch kein Verlieren eines Tests mit voller Geschwindigkeit (was zum Finden von Fehlern wichtig ist, die sich nur bei voller Geschwindigkeit in der Anwendung zeigen) mit Verwendung nur eines Softwaretests in der Anwendung. Mit anderen Worten, in Ausführungsformen der vorliegenden Erfindung wird der Speicher so schnell wie in der normalen Anwendung gelesen, was ermöglicht, dass sogar die Fehler gefunden werden, die sich nur mit voller Geschwindigkeit zeigen, Back-to-Back so schnell wie die normale Anwendung darauf zugreift. Dies wäre nicht mittels des Busses von einem zentralen Controller möglich und wird durch Ausführungsformen der vorliegenden Erfindung unter Verwendung des MBIST-Controllers ermöglicht, der einen Zugriff mit voller Geschwindigkeit ermöglicht, der so schnell wie eine normale Anwendung oder umgebende Hardware ist.
  • Gemäß der weiteren Ausführungsformen können die Verfahren 100, 200 durch weitere FKC-Tests des Speichers erweitert werden, um eine noch höhere Testabdeckung zu erzielen. Als ein Beispiel können die Verfahren die folgenden weiteren Schritte umfassen:
    Invertieren jedes geraden Bits der Benutzerdaten;
    Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits;
    Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher;
    Invertieren jedes ungeraden Bits der Benutzerdaten;
    Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits;
    Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.
  • Es ist hier nicht von Bedeutung, ob die ungeraden Bits oder die geraden Bits zuerst invertiert und getestet werden.
  • Somit sind auch weitere Testnachbarsbeziehungen (wie es ein normaler MBIST-Test mit verschiedenen Mustern tut) wie beschrieben möglich, z. B. durch Invertieren nur jedes zweiten Bits (gerade), Durchführen der FKC-Prüfung und dann Zurückinvertieren und dann Durchführen desselben an jedem anderen Bit (ungerade). Dies verbessert die Abdeckung noch weiter, um nicht nur einfache Haftfehler, sondern auch eine komplexere Nachbarsbeziehung (z. B. durch Nebensprechen beeinflusst oder mit Kapazitanz oder Fehlbeträgen zwischen Bits usw.) zu finden. Somit werden in diesem Fall 4 Durchläufe durchgeführt (komplette Inversion zweimal, dann nur Invertieren gerader Bits zweimal und dann nur Invertieren ungerader Bits zweimal).
  • Des Weiteren kann dieses Konzept auf Basis des Prinzips des Durchführens einer zweimaligen Inversion der Benutzerdaten oder von Teilen der Benutzerdaten erweitert werden.
  • Mit anderen Worten, dies kann gewiss mit mehr Durchläufen (noch viel schneller und zerstörungsfrei) weiter verfeinert werden, z. B. wie Invertieren nur jedes zweiten Worts komplett und Zurückinvertieren. Somit kann eine fast so gute Abdeckung wie bei sehr einfachen echten Testmustern erzielt werden. Darüber hinaus können mehr Fehler als mit einfachen SCAN-Tests gefunden werden.
  • Die Verfahren 100, 200 können durch ein beliebiges/eine beliebige der in Bezug auf die Vorrichtung hierin beschriebenen Merkmale und Funktionalitäten ergänzt werden und können unter Verwendung der Hardwarekomponenten der Vorrichtung umgesetzt werden.
  • Obwohl einige Gesichtspunkte im Zusammenhang einer Vorrichtung beschrieben wurden, ist klar, dass diese Gesichtspunkte auch eine Beschreibung des entsprechenden Verfahrens wiedergeben, wobei ein Block oder Gerät einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog dazu geben im Zusammenhang eines Verfahrensschritts beschriebene Gesichtspunkte auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung wieder. Einige oder alle der Verfahrensschritte können durch eine (oder unter Verwendung einer) Hardwarevorrichtung ausgeführt werden, wie beispielsweise einem Mikroprozessor, einem programmierbaren Computer oder einem elektronischen Schaltkreis. In einigen Beispielen können ein oder mehrere der wichtigsten Verfahrensschritte durch eine derartige Vorrichtung ausgeführt werden.
  • Je nach bestimmten Umsetzungsanforderungen können Beispiele in Hardware oder in Software umgesetzt werden. Die Umsetzung kann unter Verwendung eines digitalen Speichermediums durchgeführt werden, beispielsweise einer Diskette, einer DVD, einer Blue-Ray, einer CD, einem ROM, einem PROM, einem EPROM, einem EEPROM oder einem FLASH-Speicher, der darauf gespeichert elektronisch lesbare Steuersignale aufweist, die mit einem programmierbaren Computersystem zusammenarbeiten (oder zusammenarbeiten können), so dass das jeweilige Verfahren durchgeführt wird. Folglich kann das digitale Speichermedium computerlesbar sein.
  • Einige Beispiele umfassen einen Datenträger mit elektronisch lesbaren Steuersignalen, die mit einem programmierbaren Computersystem zusammenarbeiten können, so dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Im Allgemeinen können Beispiele als ein Computerprogrammprodukt mit einem Programmcode umgesetzt werden, wobei der Programmcode zum Durchführen eines der Verfahren funktionsfähig ist, wenn das Computerprogrammprodukt auf einem Computer ausgeführt wird. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Beispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten, eine Umsetzung des beispielhaften Verfahrens ist folglich ein Computerprogramm mit einem Programmcode zum Durchführen eines der hierin beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer ausgeführt wird.
  • Eine weitere Umsetzung des beispielhaften Verfahrens ist folglich ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), der darauf aufgezeichnet das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren umfasst. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise fassbar und nicht vorübergehend.
  • Eine weitere Umsetzung des beispielhaften Verfahrens ist folglich ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren wiedergibt. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise dazu konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, übertragen zu werden.
  • Ein weiteres Beispiel umfasst ein Verarbeitungsmittel, beispielsweise einen Computer oder eine programmierbare Logikanordnung, das dazu konfiguriert oder geeignet ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Beispiel umfasst einen Computer, der darauf installiert das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufweist.
  • Ein weiteres Beispiel umfasst eine Vorrichtung oder ein System, die bzw. das dazu konfiguriert ist, ein Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren an einen Empfänger zu übertragen (beispielsweise elektronisch oder optisch). Der Empfänger kann beispielsweise ein Computer, ein Mobilfunkgerät, ein Speichergerät oder dergleichen sein. Die Vorrichtung oder das System kann beispielsweise einen Dateiserver zum Übertragen des Computerprogramms an den Empfänger umfassen.
  • In einigen Beispielen kann eine programmierbare Logikanordnung (beispielsweise eine frei programmierbare logische Anordnung) verwendet werden, um einige oder alle der Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. In einigen Beispielen kann eine frei programmierbare logische Anordnung mit einem Mikroprozessor zusammenarbeiten, um eines der hierin beschriebenen Verfahren durchzuführen. Im Allgemeinen werden die Verfahren vorzugsweise von einer beliebigen Hardwarevorrichtung durchgeführt.

Claims (24)

  1. Verfahren zum Testen eines Speichers, wobei das Verfahren Folgendes umfasst: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten (101); Invertieren der im Speicher gespeicherten Benutzerdaten (103); Durchführen einer zweiten FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten (105) und Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (107); wobei das Verfahren die weiteren Schritte umfasst: Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher; Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; und Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.
  2. Verfahren zum Testen eines Speichers, wobei das Verfahren Folgendes umfasst: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten (101); Invertieren der im Speicher gespeicherten Benutzerdaten (103); Durchführen einer zweiten FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten (105) und Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (107); wobei das Verfahren die weiteren Schritte umfasst: Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher; Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; und Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.
  3. Verfahren nach Anspruch 1 oder 2, das weiterhin Folgendes umfasst: Ausführen einer Anwendung auf Basis der im Speicher gespeicherten Benutzerdaten, wobei die Benutzerdaten zumindest ein Teil eines Programmcodes der Anwendung sind oder auf sie von zumindest einem Teil der Anwendung zugegriffen wird (201).
  4. Verfahren nach Anspruch 3, wobei die Anwendung gestoppt wird, bevor die erste FKC-Prüfung an den Benutzerdaten durchgeführt wird oder zumindest der Teil der Anwendung gestoppt wird, der auf den Benutzercode zugreift, bevor die erste FKC-Prüfung an den Benutzerdaten durchgeführt wird (203); und wobei die Anwendung oder der gestoppte Teil der Anwendung fortgeführt wird, nachdem die Benutzerdaten wiederhergestellt wurden (207).
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Benutzerdaten Anwendungsdaten und FKC-Daten umfassen, wobei die FKC-Daten auf einem symmetrischen FKC-Code basieren, so dass im Fall eines fehlerfreien Speichers ein Ergebnis der ersten FKC-Prüfung an den Benutzerdaten und ein Ergebnis der zweiten FKC-Prüfung an den invertierten Benutzerdaten gleich sind.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Benutzerdaten Anwendungsdaten und FKC-Daten umfassen, wobei die FKC-Daten auf einem symmetrischen gekürzten Hsiao-FKC-Code basieren.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei während des Durchführens der ersten FKC-Prüfung und der zweiten FKC-Prüfung gefundene Fehler in einem Fehlerverfolgungsregister gespeichert werden.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei während des Durchführens der ersten FKC-Prüfung die Benutzerdaten unter Verwendung eines eingebauten Speicher-Selbsttest-Controllers (MBIST-Controllers) gelesen werden; wobei während des Invertierens der Benutzerdaten die invertierten Benutzerdaten unter Verwendung des MBIST-Controllers in den Speicher geschrieben werden; wobei während des Durchführens der zweiten FKC-Prüfung die invertierten Benutzerdaten unter Verwendung des MBIST-Controllers gelesen werden und wobei während des Invertierens der invertierten Benutzerdaten die invertierten Benutzerdaten unter Verwendung des MBIST-Controllers wieder in den Speicher geschrieben werden.
  9. Verfahren nach Anspruch 8, wobei die invertierten Benutzerdaten in dieselbe Adresse im Speicher geschrieben werden, aus der die Benutzerdaten gelesen wurden; und wobei die Benutzerdaten wieder in dieselbe Adresse im Speicher geschrieben werden, aus der die Benutzerdaten gelesen wurden.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei die Benutzerdaten an einer vorherbestimmten Adresse des Speichers, der getestet werden soll, gespeichert werden und wobei das Durchführen der ersten Fehlerkorrekturcodeprüfung, das Invertieren der Benutzerdaten, das Durchführen der zweiten FKC-Prüfung und das Invertieren der invertierten Benutzerdaten für mehrere weitere Adressen des zu testenden Speichers wiederholt werden.
  11. Verfahren nach Anspruch 10, das weiterhin Folgendes umfasst: Erhöhen der Adresse des zu testenden Speichers unter Verwendung eines Zustandsautomaten nach dem Invertieren der invertierten Benutzerdaten (205).
  12. Verfahren nach einem der Ansprüche 1 bis 11, wobei ein Inhalt des Speichers bewahrt wird, bevor die erste FKC-Prüfung an den im Speicher gespeicherten Benutzerdaten durchgeführt wird.
  13. Verfahren nach einem der Ansprüche 1 bis 12, wobei während des Durchführens der ersten FKC-Prüfung und der zweiten FKC-Prüfung in den Benutzerdaten, wie sie auf dem Speicher gespeichert sind, gefundene Fehler korrigiert oder zumindest in einem Fehlerverfolgungsregister markiert werden.
  14. Speichersystem (300; 400), das Folgendes umfasst: einen Speicher (301), der darauf gespeichert Benutzerdaten aufweist; und einen Controller (305); wobei der Controller (305) dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an den im Speicher (301) gespeicherten Benutzerdaten; Invertieren der im Speicher (301) gespeicherten Benutzerdaten; Durchführen einer zweiten FKC-Prüfung an den im Speicher (301) gespeicherten invertierten Benutzerdaten; und Invertieren der im Speicher (301) gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (301); wobei der Controller (305) ferner dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301); Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; und Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301).
  15. Speichersystem (300; 400), das Folgendes umfasst: einen Speicher (301), der darauf gespeichert Benutzerdaten aufweist; und einen Controller (305); wobei der Controller (305) dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an den im Speicher (301) gespeicherten Benutzerdaten; Invertieren der im Speicher (301) gespeicherten Benutzerdaten; Durchführen einer zweiten FKC-Prüfung an den im Speicher (301) gespeicherten invertierten Benutzerdaten; und Invertieren der im Speicher (301) gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (301); wobei der Controller (305) ferner dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301); Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; und Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301).
  16. Speichersystem (300; 400) nach Anspruch 14 oder 15, wobei der Controller (305) einen eingebauten Speicher-Selbsttest-Controller (MBIST-Controller) (401) und einen FKC-Controller (403) umfasst; wobei der MBIST-Controller (401) dazu konfiguriert ist, die Benutzerdaten und die invertierten Benutzerdaten aus dem Speicher (301) zu lesen; und wobei der FKC-Controller (403) dazu konfiguriert ist, die erste FKC-Prüfung an den Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden, und die zweite FKC-Prüfung an den invertierten Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden.
  17. Speichersystem (300; 400) nach Anspruch 16, wobei der Controller (305) dazu konfiguriert ist, anschließend unterschiedliche Adressen des Speichers (301) zu testen; und wobei der MBIST-Controller (401) weiterhin dazu konfiguriert ist, die Benutzerdaten aus einer vorherbestimmten Adresse in dem Speicher (301) zu lesen, die invertierten Benutzerdaten in die vorherbestimmte Adresse zu schreiben, die invertierten Benutzerdaten aus der vorherbestimmten Adresse zu lesen und die Benutzerdaten wieder in die vorherbestimmte Adresse zu schreiben.
  18. Speichersystem (300; 400) nach Anspruch 17, wobei der MBIST-Controller (401) weiterhin einen Zustandsautomaten zum Erhöhen der Adresse umfasst, nachdem die Benutzerdaten wieder in die vorherbestimmte Adresse geschrieben wurden; und wobei der Controller (305) dazu konfiguriert ist, die erste Fehlerkorrekturcodeprüfung, das Invertieren der Benutzerdaten, die zweite FKC-Prüfung und das Invertieren der invertierten Benutzerdaten an Benutzerdaten, die an der erhöhten Adresse in dem Speicher (301) gespeichert sind, durchzuführen.
  19. Speichersystem (300; 400) nach einem der Ansprüche 14 bis 18, wobei die Benutzerdaten Teil eines Programmcodes einer auf dem Speicher (301) gespeicherten Anwendung sind.
  20. Speichersystem (300; 400) nach einem der Ansprüche 14 bis 19, wobei die Benutzerdaten Anwendungsdaten und FKC-Daten umfassen, wobei die FKC-Daten auf einem symmetrischen FKC-Code basieren, so dass im Fall eines fehlerfreien Speichers (301) ein Ergebnis der ersten FKC-Prüfung an den Benutzerdaten und ein Ergebnis der zweiten FKC-Prüfung an den invertierten Benutzerdaten gleich sind.
  21. Speichersystem (300; 400), das Folgendes umfasst: einen Speicher (301), der darauf gespeichert Benutzerdaten aufweist, wobei die Benutzerdaten Teil eines Programmcodes einer auf dem Speicher (301) gespeicherten Anwendung sind; einen eingebauten Speicher-Selbsttest-Controller (MBIST-Controller) (401) und einen Fehlerkorrekturcode-Controller (FKC-Controller) (403); wobei der MBIST-Controller (401) dazu konfiguriert ist, die Benutzerdaten aus einer vorherbestimmten Adresse des Speichers (301) zu lesen, die Benutzerdaten zu invertieren, die invertierten Benutzerdaten in die vorherbestimmte Adresse des Speichers (301) zu schreiben, die invertierten Benutzerdaten aus der vorherbestimmten Adresse des Speichers (301) zu lesen, die invertierten Benutzerdaten zu invertieren und die Benutzerdaten wieder in die vorherbestimmte Adresse des Speichers (301) zu schreiben; wobei der FKC-Controller (403) dazu konfiguriert ist, eine erste FKC-Prüfung an den Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden, und eine zweite FKC-Prüfung an den invertierten Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden; und wobei die Benutzerdaten Anwendungsdaten und FKC-Daten umfassen, wobei die FKC-Daten auf einem symmetrischen FKC-Code basieren, so dass im Fall eines fehlerfreien Speichers (301) ein Ergebnis der ersten FKC-Prüfung an den Benutzerdaten und ein Ergebnis der zweiten FKC-Prüfung an den invertierten Benutzerdaten gleich sind; wobei der FKC-Controller (403) dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; Invertieren der Benutzerdaten mit invertierten geraden Bits zum wiederherstellen der Benutzerdaten in dem Speicher (301); Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; und Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301).
  22. Speichersystem (300; 400), das Folgendes umfasst: einen Speicher (301), der darauf gespeichert Benutzerdaten aufweist, wobei die Benutzerdaten Teil eines Programmcodes einer auf dem Speicher (301) gespeicherten Anwendung sind; einen eingebauten Speicher-Selbsttest-Controller (MBIST-Controller) (401) und einen Fehlerkorrekturcode-Controller (FKC-Controller) (403); wobei der MBIST-Controller (401) dazu konfiguriert ist, die Benutzerdaten aus einer vorherbestimmten Adresse des Speichers (301) zu lesen, die Benutzerdaten zu invertieren, die invertierten Benutzerdaten in die vorherbestimmte Adresse des Speichers (301) zu schreiben, die invertierten Benutzerdaten aus der vorherbestimmten Adresse des Speichers (301) zu lesen, die invertierten Benutzerdaten zu invertieren und die Benutzerdaten wieder in die vorherbestimmte Adresse des Speichers (301) zu schreiben; wobei der FKC-Controller (403) dazu konfiguriert ist, eine erste FKC-Prüfung an den Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden, und eine zweite FKC-Prüfung an den invertierten Benutzerdaten durchzuführen, die von dem MBIST-Controller (401) aus dem Speicher (301) gelesen wurden; und wobei die Benutzerdaten Anwendungsdaten und FKC-Daten umfassen, wobei die FKC-Daten auf einem symmetrischen FKC-Code basieren, so dass im Fall eines fehlerfreien Speichers (301) ein Ergebnis der ersten FKC-Prüfung an den Benutzerdaten und ein Ergebnis der zweiten FKC-Prüfung an den invertierten Benutzerdaten gleich sind; wobei der FKC-Controller (403) dazu konfiguriert ist, den Speicher (301) durch Folgendes zu testen: Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301); Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; und Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher (301).
  23. Nicht vergängliches Speichermedium, das darauf gespeichert ein Computerprogramm aufweist, das einen Programmcode zum Durchführen eines Verfahrens zum Testen eines Speichers aufweist, wenn das Computerprogramm auf einem Computer ausgeführt wird, wobei das Verfahren Folgendes umfasst: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten (101); Invertieren der im Speicher gespeicherten Benutzerdaten (103); Durchführen einer zweiten FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten (105) und Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (107); wobei das Verfahren ferner Folgendes umfasst: Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher; Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; und Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.
  24. Nicht vergängliches Speichermedium, das darauf gespeichert ein Computerprogramm aufweist, das einen Programmcode zum Durchführen eines Verfahrens zum Testen eines Speichers aufweist, wenn das Computerprogramm auf einem Computer ausgeführt wird, wobei das Verfahren Folgendes umfasst: Durchführen einer ersten Fehlerkorrekturcodeprüfung (FKC-Prüfung) an im Speicher gespeicherten Benutzerdaten (101); Invertieren der im Speicher gespeicherten Benutzerdaten (103); Durchführen einer zweiten FKC-Prüfung an den im Speicher gespeicherten invertierten Benutzerdaten (105) und Invertieren der im Speicher gespeicherten invertierten Benutzerdaten zum Wiederherstellen der Benutzerdaten in dem Speicher (107); wobei das Verfahren ferner Folgendes umfasst: Invertieren jedes ungeraden Bits der Benutzerdaten; Durchführen einer dritten FKC-Prüfung an den Benutzerdaten mit invertierten ungeraden Bits; Invertieren der Benutzerdaten mit invertierten ungeraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher; Invertieren jedes geraden Bits der Benutzerdaten; Durchführen einer vierten FKC-Prüfung an den Benutzerdaten mit invertierten geraden Bits; und Invertieren der Benutzerdaten mit invertierten geraden Bits zum Wiederherstellen der Benutzerdaten in dem Speicher.
DE102013211077.4A 2013-06-13 2013-06-13 Verfahren zum Testen eines Speichers und Speichersystem Active DE102013211077B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102013211077.4A DE102013211077B4 (de) 2013-06-13 2013-06-13 Verfahren zum Testen eines Speichers und Speichersystem
US14/301,538 US9818492B2 (en) 2013-06-13 2014-06-11 Method for testing a memory and memory system
CN201410260935.3A CN104240768B (zh) 2013-06-13 2014-06-12 用于测试存储器的方法和存储器***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013211077.4A DE102013211077B4 (de) 2013-06-13 2013-06-13 Verfahren zum Testen eines Speichers und Speichersystem

Publications (2)

Publication Number Publication Date
DE102013211077A1 DE102013211077A1 (de) 2014-12-18
DE102013211077B4 true DE102013211077B4 (de) 2015-09-24

Family

ID=52009717

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013211077.4A Active DE102013211077B4 (de) 2013-06-13 2013-06-13 Verfahren zum Testen eines Speichers und Speichersystem

Country Status (3)

Country Link
US (1) US9818492B2 (de)
CN (1) CN104240768B (de)
DE (1) DE102013211077B4 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9583207B2 (en) * 2015-02-10 2017-02-28 Sandisk Technologies Llc Adaptive data shaping in nonvolatile memory
CN104932951B (zh) * 2015-07-12 2017-09-05 符方晓 一种nand闪存出现ecc无法纠错时的数据恢复方法
CN106373616B (zh) * 2015-07-23 2020-02-07 深圳市中兴微电子技术有限公司 一种检测随机存储器故障的方法、装置和网络处理器
CN105702299B (zh) * 2015-12-30 2018-09-28 工业和信息化部电子第五研究所 存储器单元失效检测方法与***
JP6841698B2 (ja) * 2017-03-21 2021-03-10 ルネサスエレクトロニクス株式会社 半導体装置
CN107068181B (zh) * 2017-04-05 2020-09-29 青岛海信宽带多媒体技术有限公司 光模块中驱动芯片的数据写入方法及装置
US10389379B2 (en) 2017-05-12 2019-08-20 Qualcomm Incorporated Error correcting code testing
US10115444B1 (en) * 2017-08-09 2018-10-30 Qualcomm Incorporated Data bit inversion tracking in cache memory to reduce data bits written for write operations
DE102018122826A1 (de) * 2017-09-21 2019-03-21 Samsung Electronics Co., Ltd. Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
CN109712665B (zh) * 2018-02-27 2020-09-15 上海安路信息科技有限公司 存储器及存储器的功能测试方法
US11315654B2 (en) * 2018-10-03 2022-04-26 Arm Limited Memory testing techniques
CN110444243A (zh) * 2019-07-31 2019-11-12 至誉科技(武汉)有限公司 存储设备读错误纠错能力的测试方法、***及存储介质
US11509333B2 (en) * 2020-09-25 2022-11-22 Advanced Micro Devices, Inc. Masked fault detection for reliable low voltage cache operation
KR20220124582A (ko) * 2021-03-03 2022-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US20220398158A1 (en) * 2021-06-14 2022-12-15 Synopsys, Inc. Memory safety interface configuration
CN116564400B (zh) * 2023-07-07 2023-11-28 长鑫存储技术有限公司 半导体存储装置的可测试性电路和数据测试方法
CN116974813B (zh) * 2023-09-25 2024-04-19 南方电网数字电网研究院有限公司 寄存器数据管理方法、装置、寄存器模块、计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT409562B (de) * 2001-03-16 2002-09-25 Thaller Karl Dipl Ing Verfahren und einrichtung zum testen eines speichers
US20030074619A1 (en) * 2001-10-12 2003-04-17 Dorsey Michael C. Memory bist employing a memory bist signature

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661995A (en) * 1985-02-21 1987-04-28 Anritsu Electric Co., Limited Multi-superheterodyne receiver
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US6799391B1 (en) * 2002-10-23 2004-10-05 Peter Bergholtz Self-sticking paper mounting corner and manufacturing method
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
KR100643288B1 (ko) * 2004-11-16 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
US7373583B2 (en) * 2005-05-19 2008-05-13 Infineon Technologies North America Corp. ECC flag for testing on-chip error correction circuit
JP4901334B2 (ja) * 2006-06-30 2012-03-21 株式会社東芝 メモリコントローラ
WO2009051917A1 (en) * 2007-10-15 2009-04-23 Joseph Schweiray Lee Providing error correction to unwritten pages and for identifying unwritten pages in flash memory
KR100857252B1 (ko) 2007-12-27 2008-09-05 (주)인디링스 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
JP5600963B2 (ja) * 2010-02-22 2014-10-08 富士通株式会社 不揮発性記憶装置、及びデータ初期化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT409562B (de) * 2001-03-16 2002-09-25 Thaller Karl Dipl Ing Verfahren und einrichtung zum testen eines speichers
US20030074619A1 (en) * 2001-10-12 2003-04-17 Dorsey Michael C. Memory bist employing a memory bist signature

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hsiao: Error-Correcting Codes for Semiconductor Memory Applications a State-of-the-Art Review. In: IBM Jurnal of Research and Development, 28, March 1984, 2, 124-134. - ISSN 0018-8646 *

Also Published As

Publication number Publication date
US9818492B2 (en) 2017-11-14
DE102013211077A1 (de) 2014-12-18
CN104240768B (zh) 2018-03-30
CN104240768A (zh) 2014-12-24
US20140372814A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
DE102013211077B4 (de) Verfahren zum Testen eines Speichers und Speichersystem
DE102011108933B4 (de) Sichere Speicherung durch interne Betriebssicherstellung
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102013112900A1 (de) Verfahren und System zum Bereitstellen einer intelligenten Speicherarchitektur
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE102007058418A1 (de) Fehlerkorrektur in Speicherbauteilen
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE102020106203A1 (de) Vorrichtung für integrierte Speicher-Selbsttests mit Fehlererkennungs- und -Korrekturcodebekanntheit
DE112017007690T5 (de) Verfahren und vorrichtungen zur durchführung einer fehlerdetektion und/oder korrektur in einer speichervorrichtung
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
DE102007058928A1 (de) Verfahren und Halbleiterspeicher mit einer Einrichtung zur Erkennung von Adressierungsfehlern
DE102017114054B4 (de) Speicheradressen-Schutzschaltung und Verfahren
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
DE102018124836A1 (de) Neuartiger speicherbaustein
DE102019131865A1 (de) Verfahren und vorrichtung zur eigendiagnose der ram-fehlererkennungslogik eines antriebsstrangcontrollers
DE102011119585A1 (de) Verbesserte skalierbare CPU für die codierte Ausführung von Software in hochabhängigen sicherheitsrelevanten Anwendungen
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
DE19904375C2 (de) Verfahren zur Funktionsüberprüfung von Speicherzellen eines integrierten Halbleiterspeichers
DE102018219877A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit

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