-
ALLGEMEINER STAND DER TECHNIK
-
Funktionssicherheit ist ein wichtiger Aspekt in vielen Systemen, vor allem in komplexen Echtzeitsystemen wie denjenigen, die in der Automobil- und der Industriebranche vorkommen. In vielen solchen komplexen Echtzeitsystemen sind strenge Begrenzungen für das System vorgegeben, um sicherzustellen, dass das System, selbst unter Belastungsbedingungen, sicher und zuverlässig arbeitet. Demgemäß wird mit Funktionssicherheit versucht, den ordnungsgemäßen Betrieb verschiedener Komponenten des Systems während Laufzeitbedingungen sicherzustellen.
-
Ein Ansatz zum Erzielen von Funktionssicherheit für elektrische Komponenten besteht in der Verwendung von Built-In-Self-Test(BIST)-Schaltkreisen. BIST-Schaltkreise werden in verschiedenen elektrischen Einrichtungen und Komponenten verwendet, um sonstige Schaltungsbauteile, gewöhnlich während des Betriebs der elektrischen Einrichtung und/oder der elektrischen Komponente, auf Defekte zu prüfen. Im Fall eines Speichers kann ein BIST-Schaltkreis zum Beispiel dazu verwendet werden, um den Speicher auf eventuelle Defekte oder schadhafte Speicherbereiche zu prüfen. Eine solche Defektprüfung kann auf Anforderung, responsiv oder periodisch durchgeführt werden, um die ordnungsgemäße Funktionsweise des Speichers sicherzustellen. Der BIST-Schaltkreis kann latente Defekte des Speichers oder Funktionsschäden des Speichers erkennen und so Ausfälle des gesamten Systems reduzieren oder verhindern. Hierzu ist ein gewöhnlicher BIST-Speicherschaltkreis konfiguriert, um Pseudozufallsdaten in den Speicher zu schreiben, diese Pseudozufallsdaten aus dem Speicher wieder auszulesen und eventuelle Defekte in den Speicherarrays basierend auf eventuellen Fehlern, die in den ausgelesenen Daten erkannt wurden, im Vergleich mit den geschriebenen Daten zu erkennen.
-
Figurenliste
-
Die hierin beschriebenen Konzepte werden in den beiliegenden Figuren bildlich dargestellt und sind als beispielhaft und nicht als einschränkend anzusehen. Der Einfachheit und Übersichtlichkeit der bildlichen Darstellung halber sind Elemente, die in den Figuren bildlich dargestellt sind, nicht zwangsläufig maßstabsgerecht gezeichnet. Sofern dies für angemessen erachtet wurde, wurden in den Figuren jeweils dieselben Bezugszeichen verwendet, um einander entsprechende oder zueinander analoge Elemente anzugeben.
- 1 ist ein vereinfachtes Blockschema mindestens einer Ausführungsform einer elektronischen Einrichtung mit einem Speicher-Wrapper, der eine BIST-Schaltung und einen Speicher enthält;
- 2 ist ein vereinfachtes Blockschema mindestens einer Ausführungsform eines Speicher-Wrappers der elektronischen Einrichtung aus 1;
- 3 ist eine vereinfachte Übersicht, die verschiedene Testmodi des Speicher-Wrappers der elektronischen Einrichtung aus 1 bildlich darstellt;
- 4 ist ein vereinfachtes Ablaufschema mindestens einer Ausführungsform eines Verfahrens zum Durchführen eines Speichertests mit Fehlerkorrekturbekanntheit, das durch den Speicher-Wrapper aus 2 durchgeführt werden kann;
- 5 ist ein vereinfachtes Ablaufschema mindestens einer weiteren Ausführungsform eines Verfahrens zum Durchführen eines Speichertests mit Fehlerkorrekturbekanntheit, das durch die BIST-Schaltung des Speicher-Wrappers aus 2 durchgeführt werden kann.
-
AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Konzepte der vorliegenden Offenbarung lassen sich zwar verschieden abwandeln und alternativ ausführen, und in den Zeichnungen werden konkrete Ausführungsformen von ihnen beispielhaft gezeigt und hierin ausführlich beschrieben. Es versteht sich jedoch, dass die Konzepte der vorliegenden Offenbarung nicht auf die konkreten Ausführungsformen, die offenbart werden, begrenzt sind, sondern dass vielmehr jegliche Abwandlungen, Äquivalente und Alternativen, die mit der vorliegenden Offenbarung und den beigefügten Ansprüchen vereinbar sind, abgedeckt werden sollen.
-
Bezugnahmen in der Patentschrift auf „eine Ausführungsform“, „ein Ausführungsbeispiel“ etc. geben an, dass die beschriebene Ausführungsform ein konkretes Merkmal, eine konkrete Struktur oder ein konkretes Charakteristikum enthalten kann, jedoch nicht jede Ausführungsform zwangsläufig dieses konkrete Merkmal, diese konkrete Struktur oder dieses konkrete Charakteristikum enthalten muss. Des Weiteren beziehen sich diese Ausdrücke nicht immer zwangsläufig auf dieselbe Ausführungsform. Wenn ein konkretes Merkmal, eine konkrete Struktur oder ein konkretes Charakteristikum in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner davon ausgegangen, dass dem Fachmann bekannt ist, wie ein solches Merkmal, eine solche Struktur oder ein solches Charakteristikum in Verbindung mit anderen Ausführungsformen verwirklicht werden kann, wobei unerheblich ist, ob dies ausdrücklich beschrieben wird oder nicht. Darüber hinaus versteht es sich, dass, wenn Elemente in einer Aufzählung in der Form „mindestens eines von A, B und C“ enthalten sind, Folgendes gemeint sein kann: (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C). Wenn hingegen Elemente in der Form „mindestens eines von A, B oder C“ aufgezählt werden, kann ebenfalls Folgendes gemeint sein: (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C).
-
Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder beliebigen Kombinationen davon implementiert werden. Die offenbarten Ausführungsformen können auch als Anweisungen implementiert werden, die in einem transienten oder nicht transienten, maschinenlesbaren (z. B. computerlesbaren) Speichermedium, das durch einen oder mehrere Prozessoren gelesen und ausgeführt werden kann, enthalten oder gespeichert sind. Ein maschinenlesbares Speichermedium kann als irgendein Speicherelement, irgendein Mechanismus oder irgendeine physische Struktur zum Speichern oder Übertragen von Informationen in einer maschinenlesbaren Form (z. B. als flüchtiger oder nicht flüchtiger Speicher, Media Disc oder anderes Medium) ausgebildet sein.
-
In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in einer bestimmten Anordnung und/oder Reihenfolge gezeigt sein. Es versteht sich jedoch, dass nicht zwangsläufig eine solche Anordnung und/oder Reihenfolge vorliegen muss. In einigen Ausführungsformen können diese Merkmale nämlich auch in einer anderen Art und/oder Reihenfolge als in den rein beispielhaften Figuren angeordnet sein. Darüber hinaus muss ein Struktur- oder Verfahrensmerkmal, wenn es in einer jeweiligen Figur enthalten ist, nicht zwangsläufig in allen Ausführungsformen vorhanden sein, denn es kann in einigen Ausführungsformen auch entweder nicht enthalten sein oder mit anderen Merkmalen kombiniert werden.
-
In 1, auf die nunmehr Bezug genommen wird, enthält eine beispielhafte elektronische Einrichtung 100 einen Rechenschaltkreis 102 mit einem Speicher-Wrapper 104, der konfiguriert ist, um einen Selbsttest zum Überprüfen des ordnungsgemäßen Betriebs durchzuführen, wie unten noch ausführlicher erörtert wird. Die elektronische Einrichtung 100 kann als elektrische Einrichtung, elektrische Komponente oder elektrisches System von einem beliebigen Typ, für die/das Funktionssicherheit gewünscht wird, ausgebildet sein. Das heißt, die elektronische Einrichtung 100 kann als Einrichtung oder Komponente von einem beliebigen Typ, für die eine responsive oder periodische Überprüfung des ordnungsgemäßen Betriebs von Komponenten der elektronischen Einrichtung 100 gewünscht wird, ausgebildet sein. Die elektronische Einrichtung 100 bildet zum Beispiel möglicherweise einen Teil eines missionskritischen Systems wie etwa eines elektronischen Systems eines autonomen Fahrzeugs (z. B. eines Navigationssystems), eines Industriesystems (z. B. einer Robotersteuerung), eines Flugsystems oder einer sonstigen Einrichtung, einer sonstigen Komponente oder eines sonstigen Systems, für die/das eine Überprüfung des ordnungsgemäßen Betriebs in der Praxis gewünscht wird.
-
Der Rechenschaltkreis 102 kann als Schaltkreis oder Gruppe elektronischer Komponenten von einem beliebigen Typ für die Durchführung verschiedener Funktionen ausgebildet sein. Die jeweiligen Funktionen, die durch den Rechenschaltkreis 102 durchgeführt werden, können vom Typ der elektronischen Einrichtung 100 abhängen. Beispielhaft enthält der Rechenschaltkreis 102 den Speicher-Wrapper 104, kann jedoch in anderen Ausführungsformen abhängig von den jeweiligen durch den Rechenschaltkreis 102 durchzuführenden Funktionen noch weitere elektronische Bauelemente, Komponenten und/oder Schaltungsbauteile enthalten. Zum Beispiel kann der Rechenschaltkreis 102 ferner einen Prozessor 106 sowie verschiedene weitere Peripherieschaltungen und/oder -bauelemente 108 enthalten. In einigen Ausführungsformen sind die verschiedenen elektronischen Bauelemente und/oder Schaltungsbauteile des Rechenschaltkreises 102 möglicherweise zusammen nur in einem Bauelement oder einer Baugruppe wie etwa einer integrierten Schaltung, einem eingebetteten System, einem System-on-Chip (SoC), einem Field Programmable Array (FPGA), einer anwendungsspezifischen integrierten Schaltung (ASIC) oder einer ähnlichen einzelnen elektronischen Komponente ausgebildet.
-
Der Speicher-Wrapper 104 ist als eine Gruppe von zum Speicher gehörenden Bauelementen, Komponenten und/oder Schaltungsbauteilen, die zum Speichern von Daten und zum Verifizieren des ordnungsgemäßen Betriebs des entsprechenden Speichers konfiguriert sind, ausgebildet. Beispielhaft enthält der Speicher-Wrapper 104 ein Speicherarray 120, eine Built-In-Self-Test(BIST)-Schaltung 130 und eine Fehlerkorrekturschaltung 140. In einigen Ausführungsformen sind die verschiedenen Komponenten des Speicher-Wrappers 104 möglicherweise diskrete elektronische Bauteile und/oder Schaltungen. In anderen Ausführungsformen sind die verschiedenen Komponenten des Speicher-Wrappers 104 hingegen möglicherweise in nur einem Bauelement oder einer Baugruppe ausgebildet.
-
Bei der Verwendung, wie unten noch ausführlicher beschrieben wird, ist die BIST-Schaltung 130 konfiguriert, um den ordnungsgemäßen Betrieb des Speicherarrays 120 responsiv oder periodisch zu verifizieren. Hierzu generiert die BIST-Schaltung 130 Pseudozufallsdaten und schreibt die Pseudozufallsdaten in das Speicherarray 120. Anschließend liest die BIST-Schaltung 130 die geschriebenen Pseudozufallsdaten aus dem Speicherarray 120 aus und vergleicht die ausgelesenen Daten mit den geschriebenen Daten, um Datenfehler zwischen den zwei Datenmengen zu identifizieren. Jeder Datenfehler gibt einen Speicherdefekt des Speicherarrays 120 an, und die BIST-Schaltung 130 generiert eine Fehlermeldung, die diese Speicherdefekte identifiziert. Im Gegensatz zu einer gewöhnlichen BIST-Schaltung generiert die BIST-Schaltung 130 die Fehlermeldung jedoch basierend auf einer Fehlerkorrekturfähigkeit des Speicher-Wrappers 104. Das heißt, die BIST-Schaltung 130 nutzt die Bekanntheit dessen, dass der Speicher-Wrapper zum Korrigieren mindestens einiger der Datenfehler fähig ist, zum Generieren der Fehlermeldung. Hierbei kann die BIST-Schaltung 130 die Datenfehler und entsprechenden Speicherdefekte, die durch die Fehlerkorrekturschaltung 140 korrigierbar sind, wie unten noch ausführlicher erörtert wird, ignorieren.
-
Das Speicherarray 120 kann als ein beliebiger Typ eines flüchtigen Speichers (z. B. Dynamic Random Access Memory etc.) oder eines nicht flüchtigen Speichers (z. B. byteadressierbarer Speicher) oder eines zum Durchführen der hierin beschriebenen Funktionen fähigen Datenspeichers ausgebildet sein. Bei einem flüchtigen Speicher handelt es sich um ein Speichermedium, das für die Beibehaltung des Zustands der durch das Medium gespeicherten Daten Strom benötigt. Zu nicht ausschließlichen Beispielen für einen flüchtigen Speicher zählen verschiedene Typen eines Speichers mit wahlfreiem Zugriff (Random Access Memory, RAM) wie ein DRAM oder ein Static Random Access Memory (SRAM). Ein spezieller Typ eines DRAM, der in einem Speichermodul verwendet werden kann, ist ein Synchronous Dynamic Random Access Memory (SDRAM). In speziellen Ausführungsformen ist das DRAM einer Speicherkomponente mit einem vom JEDEC veröffentlichten Standard konform, etwa mit JESD79F für DDR SDRAM, JESD79-2F für DDR2 SDRAM, JESD79-3F für DDR3 SDRAM, JESD79-4A für DDR4 SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 oder JESD209-4 für LPDDR4. Diese (sowie ähnliche) Standards werden möglicherweise als DDR-basierte Standards bezeichnet, und Kommunikationsschnittstellen der Speicherelemente, die diese Standards implementieren, werden möglicherweise als DDR-basierte Schnittstellen bezeichnet.
-
In einigen Ausführungsformen ist das Speicherarray 120 möglicherweise als blockadressierbares Speicherelement ausgebildet, etwa als eines derjenigen Speicherelemente, die auf NAND- oder NOR-Technologien basieren. Das Speicherarray 120 ist zum Beispiel möglicherweise als 3D-Kreuzungspunkt-Speicherelement (z. B. 3D-XPoint™-Speicher von Intel) oder als ein anderes byteadressierbares, nicht flüchtiges Write-in-Place-Speicherelement ausgebildet. Darüber hinaus oder alternativ kann das Speicherarray 120 in einigen Ausführungsformen als Speicherelemente, die Chalkogenidglas verwenden, Multi-Threshold-Level-NAND-Flashspeicher, NOR-Flashspeicher, Single- oder Multi-Level-Phasenwechselspeicher (PCM), resistiver Speicher, Nanodrahtspeicher, Ferroelectric Transistor Random Access Memory (FeTRAM), antiferroelektrischer Speicher, Magnetoresistive Random Access Memory (MRAM), der auf einer Memristor-Technologie beruht, resistiver Speicher auf Metalloxid- oder Sauerstoffleerstellenbasis oder Conductive Bridge Random Access Memory (CB-RAM) oder Spin Transfer Torque (STT) MRAM, Speicher auf Spintronic-Magnetic-Junction-Basis, Speicher auf Magnetic-Tunneling-Junction(MTJ)-Basis, auf DW (Domain Wall) oder SOT (Spin Orbit Transfer) basierender Speicher, thyristorbasierter Speicher oder eine Kombination aus beliebigen der obigen Speichertypen oder als sonstiger Speicher ausgebildet sein oder kann die genannten Speichertypen enthalten. Das Speicherarray 120 (oder der Speicher-Wrapper 104) kann sich auf den ungehäusten Chip selbst und/oder auf ein gehäustes Speicherprodukt beziehen. In einigen Ausführungsformen umfasst der 3D-Kreuzungspunkt-Speicher (z. B. ein 3D-XPoint™-Speicher von Intel) möglicherweise eine transistorlose Stapel-Kreuzungspunkt-Architektur, in der die Speicherzellen an der Kreuzung von Wort- und Bitleitungen sitzen und einzeln ansprechbar sind und in der die Bitspeicherung auf einer Bahnwiderstandsänderung basiert.
-
Die BIST-Schaltung 130 kann als ein beliebiger Typ einer Schaltung oder Gruppe von Schaltungen und/oder elektronischen Bauelementen, die zum Verifizieren des ordnungsgemäßen Betriebs des Speicherarrays 120 und zum Durchführen der hierin beschriebenen Funktionen fähig ist, ausgebildet sein. Die BIST-Schaltung 130 kann zum Beispiel als Controller, Mikrocontroller, Prozessor, Prozessorkern, Spezialprozessor oder -controller, Steuerschaltkreis und/oder spezielle Anweisungen, die durch solche Komponenten ausführbar sind, ausgebildet sein. In einigen Ausführungsformen ist die BIST-Schaltung 130 möglicherweise als diskrete Schaltungen oder elektronische Komponenten ausgebildet. In wiederum anderen Ausführungsformen ist die BIST-Schaltung 130 hingegen möglicherweise in anderen Komponenten des Rechenschaltkreises 102, etwa im Speicherarray 120 oder im Prozessor 106, untergebracht.
-
Die Fehlerkorrekturschaltung 140 kann als ein beliebiger Typ eines Schaltkreises oder von elektronischen Komponenten, der/die Datenfehler des Speicherarrays 120 erkennen und bis zu einem gewissen Grad korrigieren kann/können, ausgebildet sein. Bei der Verwendung ist die Fehlerkorrekturschaltung 140 konfiguriert, um Fehlerprüfdaten basierend auf den durch die BIST-Schaltung 130 generierten Pseudozufallsdaten zu generieren und die Fehlerprüfdaten zum Identifizieren eventueller Datenfehler in den aus dem Speicherarray 120 wieder ausgelesenen Daten zu nutzen. Darüber hinaus ist die Fehlerkorrekturschaltung 140 konfiguriert, um zu versuchen, einen oder mehrere der Datenfehler unter Verwendung der Fehlerprüfdaten zu korrigieren. Die Fehlerkorrekturschaltung 140 kann abhängig vom jeweiligen Typ der elektronischen Einrichtung 100, des Rechenschaltkreises 102 und/oder des Speicher-Wrappers 104 als Datenfehlerkorrekturschaltungsbauteile/-elemente von verschiedenen Typen ausgebildet sein. Die Fehlerkorrekturschaltung 140 ist in Ausführungsbeispielen etwa als eine ECC-Schaltung (ECC = Error Correction Code, Fehlerkorrekturcode) ausgebildet und kann einen ECC-Codierer und einen ECC-Decodierer enthalten. In solchen Ausführungsbeispielen ist der ECC-Codierer konfiguriert, um ECC-Codes basierend auf den durch die BIST-Schaltung 130 generierten Zufallsdaten zu generieren und die Pseudozufallsdaten und die ECC-Codes miteinander verknüpft im Speicherarray 120 zu speichern. Der ECC-Decodierer ist konfiguriert, um die gespeicherten Daten auszulesen und die Richtigkeit der ausgelesenen Daten unter Verwendung der ECC-Codes zu verifizieren. Darüber hinaus versucht der ECC-Decodierer, einen oder mehrere identifizierte Fehler in den ausgelesenen Daten unter Verwendung der ECC-Codes zu korrigieren. Selbstverständlich kann die Fehlerkorrekturschaltung 140 in anderen Ausführungsformen auch als andere Typen von Fehlerkorrekturbauelementen oder -schaltungen ausgebildet sein und/oder andere Fehlerkorrekturformen verwenden, etwa Bauelemente und Algorithmen für eine Paritätskorrektur, für eine Vorwärtsfehlerkorrektur (FEC), für redundante Daten, für Prüfsummen, für zyklische Redundanzprüfungen (CRCs) oder für kryptografische Hashfunktionen und/oder andere Bauelemente, Schaltungen und zugehörige Methodiken für die Erkennung und Korrektur von Datenfehlern, ohne aber hierauf begrenzt zu sein.
-
Der Prozessor 106 kann als Prozessor von einem beliebigen Typ, der verschiedene Rechen- und/oder Steuerfunktionen durchführen kann, ausgebildet sein. Der Prozessor 106 ist zum Beispiel möglicherweise als ein oder mehrere Einzel- oder Mehrkernprozessoren, Digitalsignalprozessor, Mikrocontroller oder anderer Prozessor oder als eine andere Verarbeitungs-/Steuerschaltung ausgebildet. Die Peripherieschaltungen und/oder -bauelemente 108 können als zusätzliche in der elektronischen Einrichtung 100 enthaltene Schaltungen, elektronische Komponenten und/oder Bauelemente von beliebigen Typen ausgebildet sein und Ein-/Ausgabeelemente, zusätzliche Speicherelemente, Beschleunigerelemente und/oder sonstige elektrische Schaltungen und/oder Bauelemente, die zum Beispiel vom jeweiligen Typ der elektronischen Einrichtung 100 und ihrer zugehörigen Funktionalität abhängig sind, enthalten, ohne aber hierauf begrenzt zu sein.
-
In 2, auf die nunmehr Bezug genommen wird, enthält eine beispielhafte Architektur des Speicher-Wrappers 104 das Speicherarray 120, die BIST-Schaltung 130 und die Fehlerkorrekturschaltung 140, die alsein Fehlerkorrekturcodierer 142 und ein Fehlerkorrekturdecodierer 144 ausgebildet ist. Beispielhaft ist der Fehlerkorrekturcodierer 142 als ein ECC-Codierer und der Fehlerkorrekturdecodierer 144 als ein ECC-Decodierer ausgebildet. Jedoch können in anderen Ausführungsformen auch Fehlerkorrekturcodierer und -decodierer von anderen Typen verwendet werden, wie oben erörtert. Der beispielhafte Speicher-Wrapper 104 enthält auch ein Fehlerinjektionsmodul 250, das konfiguriert ist, um in einigen Betriebsmodi der BIST-Schaltung 130, wie oben erörtert, einen Fehler in die durch die BIST-Schaltung 130 generierten Pseudozufallsdaten zu injizieren.
-
Es versteht sich, dass der Speicher-Wrapper 104 abhängig von der gewünschten Funktionalität des Speicher-Wrappers 104 in einem von etlichen unterschiedlichen Betriebsmodi betrieben werden kann. Der Speicher-Wrapper kann zum Beispiel während des normalen Betriebs in einem Funktionsmodus betrieben, jedoch in einen Testmodus umgeschaltet werden, wenn dies zum Testen auf Defekte im Speicherarray 120 gewünscht wird. Um das Ändern der Betriebsmodi zu erleichtern, enthält der Speicher-Wrapper 104 diverse Schalter oder Multiplexer 202, 204, 206, 208, die so gesteuert oder umgeschaltet werden können, dass hierdurch der innerhalb des Speicher-Wrappers 104 fließende Datenverkehr gesteuert wird. Der Schalter 202 kann zum Beispiel so gesteuert werden, dass zwischen einem ersten Eingang zum Empfangen von Daten aus anderen Komponenten (z. B. dem Prozessor 106) des Rechenschaltkreises 102 und einem zweiten Eingang zum Empfangen der Pseudozufallsdaten aus der BIST-Schaltung 130, wie unten erörtert, eine Umschaltung erfolgt. Ebenso kann der Schalter 204 so gesteuert werden, dass zwischen einem ersten Eingang zum Empfangen einer Ausgabe des Fehlerkorrekturcodierers 142 und einem zweiten Eingang zum Empfangen der Pseudozufallsdaten aus der BIST-Schaltung 130 eine Umschaltung erfolgt. Der Schalter 206 kann zwischen einem ersten Eingang zum Empfangen der Ausgabe des Fehlerkorrekturcodierers 142 und einem zweiten Eingang zum Empfangen der Ausgabe des Fehlerinjektionsmoduls 250 umgeschaltet werden. Und der Schalter 208 kann zwischen einem ersten Eingang zum Empfangen der Ausgabe des Schalters 206 und einem zweiten Ausgang zum Empfangen von aus dem Speicherarray 120 ausgelesenen Daten umgeschaltet werden.
-
In der Tabelle 300 in 3 sind etliche beispielhafte Betriebsmodi und die entsprechenden Einstellungen der Schalter 202, 204, 206, 208 gezeigt. Der Speicher-Wrapper 104 kann während des normalen Betriebs zum Beispiel in einem Funktionsmodus 302 konfiguriert sein. Im Funktionsmodus 302 wird der Schalter 202 so gesteuert, dass der erste Eingang zum Empfangen von Daten aus anderen Komponenten des Rechenschaltkreises 102 ausgewählt wird. Solche Daten können zum Beispiel dem Speicher-Wrapper 104 zur Speicherung im Speicherarray 120 bereitgestellt werden. Die Eingangsdaten werden dem Fehlerkorrekturcodierer bereitgestellt, der die Fehlerprüfdaten (z. B. ECC-Daten) generiert und die Eingangsdaten und die entsprechenden Fehlerprüfdaten durch den Schalter 204, der so gesteuert wird, dass der erste Eingang zum Empfangen der Ausgabe des Fehlerkorrekturcodierers 142 ausgewählt wird, im Speicherarray 120 speichert. Anschließend können die gespeicherten Daten während des normalen Betriebs aus dem Speicherarray 120 ausgelesen werden und werden durch den Schalter 208, der so gesteuert wird, dass der zweite Eingang zum Empfangen der Ausgabe des Speicherarrays 120 ausgewählt wird, dem Fehlerkorrekturdecodierer 144 bereitgestellt. Der Fehlerkorrekturdecodierer 144 kann eventuelle Datenfehler mit den ausgelesenen Daten identifizieren und versuchen, einen oder mehrere Datenfehler unter Verwendung der abgerufenen Fehlerprüfdaten (z. B. der abgespeicherten ECC-Daten) zu korrigieren.
-
Der Speicher-Wrapper 104 kann auch in einem integrierten Selbsttest ohne Fehlerkorrekturbekanntheitsmodus 304 konfiguriert sein. Der Modus 304 ähnelt dem Modus von BIST-Standardschaltungen. Im Modus 304 werden die Schalter 202, 206 und 208 nicht verwendet. Jedoch wird der Schalter 204 zum zweiten Eingang gesteuert, damit die BIST-Schaltung 130 die generierten Pseudozufallsdaten direkt in das Speicherarray 120 schreiben kann. Daraufhin kann die BIST-Schaltung 130 die geschriebenen Daten über die Ausgangsleitung des Speicherarrays 120 auslesen und die ausgelesenen Daten mit den geschriebenen Daten vergleichen, um Datenfehler und entsprechende Speicherdefekte zu identifizieren. Wenn ein Speicherdefekt erkannt wird, kann ein Fehlermeldeschaltkreis 132 der BIST-Schaltung 130 eine Fehlermeldung, die den defekten Speicher und/oder die defekten Speicherorte oder -stücke identifiziert, generieren.
-
Alternativ kann der Speicher-Wrapper 104 in einem integrierten Selbsttest mit Fehlerkorrekturbekanntheitsmodus 306 konfiguriert sein. Im Modus 306 wird der Schalter 206 nicht verwendet. Jedoch wird der Schalter 202 so gesteuert, dass der zweite Eingang zum Empfangen der generierten Pseudozufallsdaten aus der BIST-Schaltung 130, die dem Fehlerkorrekturcodierer 142 bereitgestellt werden, ausgewählt wird. Der Fehlerkorrekturcodierer 142 generiert die Fehlerprüfdaten (z. B. ECC-Daten) und speichert die Pseudozufallsdaten und die entsprechenden Fehlerprüfdaten durch den Schalter 204, der so gesteuert wird, dass der erste Eingang zum Empfangen der Ausgabe des Fehlerkorrekturcodierers 142 ausgewählt wird, im Speicherarray 120. Anschließend werden die in den Speicher geschriebenen Daten durch die BIST-Schaltung 130 über die Ausgangsleitungen sowie durch den Fehlerkorrekturdecodierer über den Schalter 208, der so gesteuert wird, dass der zweite Eingang zum Empfangen der Ausgabe des Speicherarrays 120 ausgewählt wird, ausgelesen. Die BIST-Schaltung 130 analysiert die ausgelesenen Daten aus dem Speicherarray 120 und vergleicht sie mit den geschriebenen Pseudozufallsdaten, um eventuelle Datenfehler, die entsprechende Speicherdefekte angeben (die Speicherdefekte können hierbei pro Bit oder pro Stück (z. B. pro Speicherleitung) vorliegen), zu identifizieren. Darüber hinaus identifiziert der Fehlerkorrekturdecodierer 144 eventuelle Datenfehler in den ausgelesenen Daten aus dem Speicherarray 120 und versucht, einen oder mehrere Datenfehler unter Verwendung der abgerufenen Fehlerprüfdaten (z. B. der abgespeicherten ECC-Daten) zu korrigieren. Der Fehlerkorrekturdecodierer 144 generiert Fehlerinformationen, die die Datenfehler sowie diejenigen Datenfehler, die korrigiert wurden (oder sonst korrigierbar sind) angeben, und stellt diese Fehlerinformationen der BIST-Schaltung 130 bereit. Die BIST-Schaltung 130 nutzt die vom Fehlerkorrekturdecodierer 144 empfangenen Fehlerinformationen, um die identifizierten Datenfehler der ausgelesenen Daten aus dem Speicher-Wrapper 104, die korrigierbar sind, zu identifizieren. Anschließend generiert die BIST-Schaltung 130 eine Fehlermeldung, die den defekten Speicher und/oder die defekten Speicherorte oder -stücke identifiziert. Hierbei ignoriert die BIST-Schaltung 130 jedoch die Speicherdefekte, die Datenfehlern, die durch den Fehlerkorrekturdecodierer 144 korrigierbar sind, entsprechen (oder sie berücksichtigt sie und testet im Anschluss weiter, ohne sie zu stoppen).
-
Der Speicher-Wrapper 104 kann auch in einem zum Verifizieren des ordnungsgemäßen Betriebs des Fehlerkorrekturcodierers 142 und des Fehlerkorrekturdecodierers 144 verwendbaren Fehlerprüfdiagnosemodus 308 konfiguriert sein. Im Modus 308 wird der Schalter 204 nicht verwendet. Jedoch wird der Schalter 202 so gesteuert, dass der zweite Eingang zum Empfangen der generierten Pseudozufallsdaten aus der BIST-Schaltung 130, die dem Fehlerkorrekturcodierer 142 bereitgestellt werden, ausgewählt wird. Der Fehlerkorrekturcodierer 142 generiert die Fehlerprüfdaten (z. B. ECC-Daten) und stellt die durch die BIST-Schaltung 130 generierten Pseudozufallsdaten und die Fehlerprüfdaten dem Schalter 206 bereit. Der Schalter 206 wird so gesteuert, dass der erste Eingang zum Empfangen der Pseudozufallsdaten und der Fehlerprüfdaten aus dem Fehlerkorrekturcodierer 142, die dem ersten Eingang des Schalters 208 bereitgestellt werden, ausgewählt wird. Der Schalter 208 wird so gesteuert, dass der erste Eingang ausgewählt wird, um ferner die Pseudozufallsdaten und die Fehlerprüfdaten dem Fehlerkorrekturdecodierer 144 bereitzustellen. Der Fehlerkorrekturdecodierer 144 erkennt eventuelle Datenfehler mit den empfangenen Zufallsdaten unter Verwendung der Fehlerprüfdaten und generiert die Fehlerinformationen, die eventuelle erkannte Fehler identifizieren. Anschließend stellt der Fehlerkorrekturdecodierer 144 die Fehlerinformationen der BIST-Schaltung 130 bereit, die verifiziert, dass keine Datenfehler erkannt worden sind. Weil die durch die BIST-Schaltung 130 generierten Pseudozufallsdaten nicht im Speicherarray 120 gespeichert werden, sollten die Pseudozufallsdaten, die durch den Fehlerkorrekturdecodierer empfangen werden, also keine Fehler erhalten, es sei denn, diese Fehler wurden durch den Fehlerkorrekturcodierer 142 oder den Fehlerkorrekturdecodierer 144 eingeführt. So kann die BIST-Schaltung 130 verifizieren, dass der Fehlerkorrekturcodierer 142 und der Fehlerkorrekturdecodierer 144 gerade keine Fehler in die Daten selbst injizieren.
-
Darüber hinaus kann der Speicher-Wrapper 104 in einem für Fehlerprüfdiagnosen mit Fehlerinjektion ausgelegten Modus 310, der zum Verifizieren der Fehlerkorrekturfähigkeit des Fehlerkorrekturcodierers 142 und des Fehlerkorrekturdecodierers 144 verwendbar ist, konfiguriert sein. Im Modus 310 wird der Schalter 204 nicht verwendet. Jedoch wird der Schalter 202 so gesteuert, dass der erste Eingang zum Auswählen des zweiten Eingangs zum Empfangen der generierten Pseudozufallsdaten aus der BIST-Schaltung 130, die dem Fehlerkorrekturcodierer 142 bereitgestellt werden, ausgewählt wird. Der Fehlerkorrekturcodierer 142 generiert die Fehlerprüfdaten (z. B. ECC-Daten) und stellt die durch die BIST-Schaltung 130 generierten Pseudozufallsdaten und die Fehlerprüfdaten dem Fehlerinjektionsmodul 250 bereit, das konfiguriert ist, um einen oder mehrere Fehler in die Pseudozufallsdaten zu injizieren. Hierzu kann das Fehlerinjektionsmodul 250 eine beliebige geeignete Methodik zum Generieren der in die Pseudozufallsdaten zu injizierenden Datenfehler nutzen (z. B. durch zufälliges Umkehren von Bits, Verknüpfen von Daten per XOR etc.). Das Fehlerinjektionsmodul 250 stellt die Pseudozufallsdaten, die die injizierten Fehler enthalten, und die Fehlerprüfdaten dem Schalter 206 bereit, der so gesteuert wird, dass der zweite Eingang ausgewählt wird. Demgemäß werden die Pseudozufallsdaten, die die injizierten Fehler enthalten, und die Fehlerprüfdaten ferner dem Schalter 208 bereitgestellt, der so gesteuert wird, dass der erste Eingang ausgewählt wird, um ferner die Pseudozufallsdaten, die die injizierten Fehler enthalten, und die Fehlerprüfdaten dem Fehlerkorrekturdecodierer 144 bereitzustellen. Der Fehlerkorrekturdecodierer 144 führt seine Fehlererkennung durch und identifiziert die Fehler in den Pseudozufallsdaten unter Verwendung der Fehlerprüfdaten. Der Fehlerkorrekturdecodierer 144 generiert die Fehlerinformationen, die die erkannten Fehler identifizieren, und stellt die Fehlerinformationen anschließend der BIST-Schaltung 130 bereit. Die BIST-Schaltung 130 verifiziert, dass die Fehlerinformationen die Datenfehler erfolgreich identifiziert und diese Fehler in einigen Fällen erfolgreich korrigiert haben. So kann die BIST-Schaltung 130 verifizieren, dass der Fehlerkorrekturcodierer 142 und der Fehlerkorrekturdecodierer 144 dazu fähig sind, Fehler in den ausgelesenen Daten aus dem Speicherarray 120 zu erkennen und entsprechend der Fähigkeit des Fehlerkorrekturcodierers 142 und des Fehlerkorrekturdecodierers 144 zu korrigieren.
-
Gemäß 4, auf die nunmehr Bezug genommen wird, kann der Speicher-Wrapper 104 bei der Verwendung ein Verfahren 400 zum Durchführen eines Speichertests mit Fehlerkorrekturbekanntheit durchführen. Das Verfahren 400 beginnt mit dem Block 402, in dem die BIST-Schaltung 130 bestimmt, ob ein Speichertest mit Fehlerkorrekturbekanntheit durchzuführen ist. Wenn ja, wird beim Verfahren 400 zum Block 404 übergegangen, in dem die BIST-Schaltung 130 einen Pseudozufallsdatenvektor zur Speicherung im Speicherarray 120 generiert. Hierzu kann die BIST-Schaltung 130 eine beliebige geeignete Methodik zum Generieren des Pseudozufallsdatenvektors nutzen. Demgemäß kann der Pseudozufallsdatenvektor als Zufallsdaten oder Datenstruktur von einem beliebigen Typ, die im Speicherarray 120 gespeichert sein können/kann, ausgebildet sein. Sobald der Pseudozufallsdatenvektor generiert worden ist, stellt die BIST-Schaltung 130 ihn im Block 406 über den Schalter 202 dem Fehlerkorrekturcodierer bereit.
-
Im Block 408 generiert der Fehlerkorrekturcodierer 142 die Fehlerprüfdaten (z. B. ECC-Daten) basierend auf dem aus der BIST-Schaltung 130 empfangenen Pseudozufallsdatenvektor. Im Block 410 hängt der Fehlerkorrekturcodierer 142 die Fehlerprüfdaten an den Pseudozufallsdatenvektor an und speichert den Pseudozufallsdatenvektor und die Fehlerprüfdaten im Speicherarray 120 so, dass sie miteinander verknüpft sind, unter derselben Speicherarrayadresse.
-
Anschließend liest die BIST-Schaltung 130 im Block 414 den gespeicherten Pseudozufallsdatenvektor aus dem Speicherarray 120 aus. Die BIST-Schaltung 130 identifiziert im Block 416 zunächst Speicherdefekte des Speicherarrays 120 basierend auf den ausgelesenen Pseudozufallsdaten. Hierzu vergleicht die BIST-Schaltung 130 im Block 418 den aus dem Speicherarray 120 ausgelesenen Pseudozufallsdatenvektor mit dem in das Speicherarray 120 geschriebenen Pseudozufallsdatenvektor, um eventuelle Unterschiede zwischen den zwei Datenmengen zu identifizieren. Eventuelle identifizierte Unterschiede geben einen Datenfehler der ausgelesenen Daten an, und die BIST-Schaltung 130 identifiziert einen Speicherdefekt für den entsprechenden Speicherort (z. B. eine Speicherzeile oder ein Speicherstück).
-
Im Block 420 liest der Fehlerkorrekturdecodierer 144 auch den gespeicherten Pseudozufallsdatenvektor und die gespeicherten Fehlerprüfdaten aus dem Speicherarray 120 aus. Der Fehlerkorrekturdecodierer 144 bestimmt Fehlerinformationen basierend auf den aus dem Speicherarray 120 ausgelesenen Pseudozufallsdaten und Fehlerprüfdaten. Hierzu identifiziert der Fehlerkorrekturdecodierer 144 Fehler in den ausgelesenen Zufallsdaten unter Verwendung der Fehlerprüfdaten. Zum Beispiel identifiziert der ECC-Decodierer in Ausführungsformen, in denen der Fehlerkorrekturdecodierer 144 als ein ECC-Decodierer ausgebildet ist, Fehler in den ausgelesenen Pseudozufallsdaten unter Verwendung der entsprechenden ECC-Codes. Darüber hinaus versucht der Fehlerkorrekturdecodierer 144 im Block 426, einen oder mehrere Fehler in den ausgelesenen Pseudozufallsdaten unter Verwendung der Fehlerprüfdaten (z. B. von ECC-Codes) zu korrigieren. Anschließend generiert der Fehlerkorrekturdecodierer 144 im Block 428 Fehlerinformationen, die eventuelle Fehler in den ausgelesenen Zufallsdaten identifizieren, sowie Fehler, die korrigiert wurden oder sonst korrigierbar sind, und stellt die Fehlerinformationen der BIST-Schaltung 130 bereit.
-
Im Block 430 identifiziert die BIST-Schaltung 130 die Datenfehler der ausgelesenen Pseudozufallsdaten, die korrigierbar sind, basierend auf den identifizierten Datenfehlern und den Fehlerinformationen. Hierzu kann die BIST-Schaltung 130 im Block 432 diejenigen Fehler, die als korrigiert oder sonst korrigierbar angegeben werden, in den vom Fehlerkorrekturdecodierer 144 empfangenen Fehlerinformationen identifizieren. Anschließend generiert die BIST-Schaltung 130 eine Fehlermeldung, die Speicherdefekte des Speicherarrays 120 identifiziert, basierend auf den identifizierten Datenfehlern der ausgelesenen Pseudozufallsdaten. Die Speicherdefekte sind definierbar als Orte des Speicherarrays 120, die die Datenfehler hervorgerufen haben, wobei sich diese Speicherorte mit irgendeiner geeigneten Granularität (z. B. pro Bit, pro Zeile, pro Block oder pro anderem Speicherstück) definieren lassen. Die BIST-Schaltung 130 ignoriert im Block 436 jedoch beim Generieren der Fehlermeldung die Speicherdefekte, die Datenfehlern entsprechen, die durch den Fehlerkorrekturdecodierer 144 korrigiert wurden oder sonst als korrigierbar angegeben werden, in den durch den Fehlerkorrekturdecodierer 144 bereitgestellten Fehlerinformationen (oder sie berücksichtigt sie und testet im Anschluss weiter, ohne sie zu stoppen). So identifiziert die BIST-Schaltung 130 nur diejenigen Speicherdefekte des Speicherarrays 120, die nicht durch den Fehlerkorrekturdecodierer 144 korrigierbar sind. Demgemäß kann die elektronische Einrichtung 100 das Speicherarray 120 weiter verwenden und eine unnötige frühzeitige Reparatur oder Auswechslung des Speicherarrays 120 und/oder unnötige Ausfälle der elektronischen Einrichtung 100 während des Funktionssicherheitsmodus verhindern.
-
Gemäß 5, auf die nunmehr Bezug genommen wird, kann der Speicher-Wrapper 104 in einigen Ausführungsformen noch ein anderes Verfahren 500 zum Durchführen eines Speichertests mit Fehlerkorrekturbekanntheit durchführen. Beim Verfahren 500 werden der Fehlerkorrekturcodierer 142 und der Fehlerkorrekturdecodierer 144 bei dem Test nicht verwendet und können im Speicher-Wrapper 104 entweder vorhanden oder nicht vorhanden sein. Das Verfahren 500 beginnt mit dem Block 502, in dem die BIST-Schaltung 130 bestimmt, ob ein Speichertest mit Fehlerkorrekturbekanntheit durchzuführen ist. Wenn nein, führt die BIST-Schaltung 130 im Block 503 den Speichertest ohne Fehlerkorrekturbekanntheit durch, und beim Verfahren 500 wird zum Block 522 übergegangen, in dem die BIST-Schaltung 130 eine Fehlermeldung, die eventuelle Speicherdefekte des Speicherarrays 120 identifiziert, generiert. Bestimmt die BIST-Schaltung 130 hingegen, dass ein Speichertest mit Fehlerkorrekturbekanntheit durchzuführen ist, wird beim Verfahren 500 zum Block 504 übergegangen, in dem die BIST-Schaltung 130 einen Pseudozufallsdatenvektor zur Speicherung im Speicherarray 120 generiert. Wie oben erörtert, kann die BIST-Schaltung 130 eine beliebige geeignete Methodik zum Generieren des Pseudozufallsdatenvektors nutzen. Sobald der Pseudozufallsdatenvektor generiert worden ist, speichert die BIST-Schaltung 130 ihn im Block 506 im Speicherarray 120.
-
Anschließend liest die BIST-Schaltung 130 im Block 508 den gespeicherten Pseudozufallsdatenvektor aus dem Speicherarray 120 aus. Im Block 510 identifiziert die BIST-Schaltung 130 eventuelle Datenfehler in den ausgelesenen Pseudozufallsdaten. Hierzu vergleicht die BIST-Steuerung im Block 512 den aus dem Speicherarray 120 ausgelesenen Pseudozufallsdatenvektor mit dem in das Speicherarray 120 geschriebenen Pseudozufallsdatenvektor, um einen eventuellen Unterschied zwischen den zwei Datenmengen zu identifizieren. Eventuelle identifizierte Unterschiede geben einen Datenfehler der ausgelesenen Daten an. Im Block 514 bestimmt die BIST-Schaltung 130 die Anzahl der identifizierten Datenfehler in den ausgelesenen Daten und bestimmt, ob diese Anzahl größer als eine vordefinierte Mindestanzahl der korrigierbaren Fehler ist, wobei es sich um eine bekannte Information, die der BIST-Schaltung 130 durch verschiedene Mechanismen bereitgestellt wird, handeln kann. Das heißt, die BIST-Schaltung 130 vergleicht die Anzahl der identifizierten Datenfehler mit einer Höchstanzahl der Fehler, die durch den Fehlerkorrekturcodierer 142 und den Fehlerkorrekturdecodierer 144 korrigiert werden können. Die Höchstanzahl der Fehler, die durch den Fehlerkorrekturcodierer 142 und den Fehlerkorrekturdecodierer 144 korrigierbar sind, kann selbstverständlich vom Typ der durch den Codierer 142/den Decodierer 144 verwendeten Fehlerkorrekturcodierwahl abhängen. Demgemäß kann in einigen Ausführungsformen eine theoretische oder geschätzte Höchstanzahl von korrigierbaren Fehlern verwendet werden.
-
Ist die Anzahl der identifizierten Fehler nicht größer als die vordefinierte Mindestanzahl der korrigierbaren Fehler, wobei es sich um eine bekannte Information, die der BIST-Steuerung durch verschiedene Mechanismen bereitgestellt wird, handeln kann, wird beim Verfahren 500 zum Block 518 übergegangen, in dem die BIST-Schaltung 130 identifiziert, dass ein jeweiliges Speicherstück (z. B. ein Speicherbit, eine Speicherleitung, ein Speicherblock etc.), das mit den identifizierten Datenfehlern assoziiert ist, intakt ist. Ist die Anzahl der identifizierten Fehler hingegen größer als die vordefinierte Mindestanzahl der korrigierbaren Fehler, wobei es sich um eine bekannte Information, die der BIST-Steuerung durch verschiedene Mechanismen bereitgestellt wird, handeln kann, wird beim Verfahren 500 zum Block 520 übergegangen, in dem die BIST-Schaltung 130 das entsprechende Speicherstück als schadhaft identifiziert. In beiden Fällen wird beim Verfahren 500 zum Block 522 übergegangen, in dem die BIST-Schaltung 130 die Fehlermeldung, die eventuelle Speicherdefekte des Speicherarrays 120 identifiziert, basierend auf den als schadhaft identifizierten Speicherstücken generiert.
-
BEISPIELE
-
Im Folgenden werden Ausführungsbeispiele für die hierin offenbarten Technologien angeführt. Eine Ausführungsform der Technologien kann eines oder mehrere der unten beschriebenen Beispiele sowie beliebige Kombinationen aus ihnen enthalten.
-
Beispiel 1 enthält einen Speicher-Wrapper eines elektronischen Schaltkreises. Der Speicher-Wrapper umfasst ein Speicherarray zum Speichern von Daten; und eine Built-In-Self-Test(BIST)-Schaltung für Folgendes: Generieren von Pseudozufallsdaten; Bewirken, dass die Pseudozufallsdaten als geschriebene Daten in das Speicherarray geschrieben werden; Auslesen der geschriebenen Daten aus dem Speicherarray als ausgelesene Daten; Vergleichen der geschriebenen Daten und der ausgelesenen Daten, um einen oder mehrere Speicherdefekte des Speicherarrays zu bestimmen; und Generieren einer Fehlermeldung, die den einen oder die mehreren Speicherdefekte identifiziert, wobei das Generieren der Fehlermeldung umfasst, dass mindestens ein Speicherdefekt basierend auf einer Bekanntheit einer Fehlererkennungs- und -korrekturfähigkeit des Speicher-Wrappers ignoriert wird.
-
Beispiel 2 enthält den Gegenstand aus Beispiel 1, der ferner einen Fehlerkorrekturcodierer und einen Fehlerkorrekturdecodierer umfasst.
-
Beispiel 3 enthält den Gegenstand aus Beispiel 1 oder 2, wobei der Fehlerkorrekturcodierer einen ECC-Codierer umfasst und der Fehlerkorrekturdecodierer einen ECC-Decodierer umfasst.
-
Beispiel 4 enthält den Gegenstand aus einem der Beispiele 1-3, wobei das Bewirken, dass die Pseudozufallsdaten in das Speicherarray geschrieben werden, umfasst, dass die Pseudozufallsdaten dem Fehlerkorrekturcodierer bereitgestellt werden, wobei der Fehlerkorrekturcodierer dazu dient, Fehlerprüfdaten basierend auf den Pseudozufallsdaten zu generieren und die Pseudozufallsdaten und die Fehlerprüfdaten als geschriebene Daten in das Speicherarray zu schreiben, wobei die Fehlerprüfdaten zum Bestimmen der Richtigkeit der Pseudozufallsdaten, wenn sie aus dem Speicherarray ausgelesen werden, verwendbar sind.
-
Beispiel 5 enthält den Gegenstand aus einem der Beispiele 1-4, wobei der Fehlerkorrekturdecodierer dazu dient, die geschriebenen Daten auf einem Lesepfad aus dem Speicherarray als ausgelesene Daten zu empfangen, einen oder mehrere Datenfehler der Pseudozufallsdaten der ausgelesenen Daten basierend auf den Fehlerprüfdaten der ausgelesenen Daten zu identifizieren und mindestens einen Datenfehler unter Verwendung der Fehlerprüfdaten der ausgelesenen Daten zu korrigieren.
-
Beispiel 6 enthält den Gegenstand aus einem der Beispiele 1-5, wobei der Fehlerkorrekturdecodierer ferner dazu dient, Fehlerinformationen, die den einen oder die mehreren Datenfehler und den mindestens einen durch den Fehlerkorrekturdecodierer korrigierten Datenfehler angeben, zu generieren, wobei die BIST-Steuerung dazu dient, den mindestens einen Speicherdefekt basierend auf den vom Fehlerkorrekturdecodierer empfangenen Fehlerinformationen zu ignorieren.
-
Beispiel 7 enthält den Gegenstand aus einem der Beispiele 1-6, wobei das Ignorieren des mindestens einen Speicherdefekts umfasst, dass Speicherdefekte, die Datenfehlern der Fehlerinformationen, die durch den Fehlerkorrekturdecodierer korrigiert wurden, entsprechen, ignoriert werden.
-
Beispiel 8 enthält den Gegenstand aus einem der Beispiele 1-7, wobei das Vergleichen der geschriebenen Daten und der ausgelesenen Daten umfasst, dass eine Anzahl von Datenfehlern zwischen den geschriebenen Daten und den ausgelesenen Daten für ein oder mehrere Speicherstücke bestimmt wird, wobei jedes Speicherstück eine Bezugsspeichermenge ist und jeder Speicherdefekt einem Speicherstück des einen oder der mehreren Speicherstücke mit mindestens einem darin enthaltenen Datenfehler entspricht, und wobei das Generieren der Fehlermeldung umfasst, dass Speicherdefekte mit einer Anzahl von darin enthaltenen Datenfehlern, die geringer als eine Mindestanzahl ist, ignoriert werden.
-
Beispiel 9 enthält den Gegenstand aus einem der Beispiele 1-8, wobei die Mindestanzahl durch eine Anzahl von durch einen Fehlerkorrekturdecodierer des Speicher-Wrappers korrigierbaren Fehlern definiert wird.
-
Beispiel 10 enthält ein Verfahren zum Testen eines Speicherarrays eines Speicher-Wrappers. Das Verfahren enthält Folgendes: Generieren von Pseudozufallsdaten durch eine Built-In-Self-Test(BIST)-Schaltung des Speicher-Wrappers; Bewirken, dass die Pseudozufallsdaten durch die BIST-Schaltung als geschriebene Daten in das Speicherarray geschrieben werden; Auslesen der geschriebenen Daten als ausgelesene Daten aus dem Speicherarray durch die BIST-Schaltung; Vergleichen der geschriebenen Daten und der ausgelesenen Daten durch die BIST-Schaltung, um einen oder mehrere Speicherdefekte des Speicherarrays zu bestimmen; und Generieren einer Fehlermeldung, die den einen oder die mehreren Speicherdefekte identifiziert, durch die BIST-Schaltung, wobei das Generieren der Fehlermeldung umfasst, dass mindestens ein Speicherdefekt basierend auf einer Fehlerkorrekturfähigkeit des Speicher-Wrappers ignoriert wird.
-
Beispiel 11 enthält den Gegenstand aus Beispiel 9 oder 10, wobei das Bewirken, dass die Pseudozufallsdaten in das Speicherarray geschrieben werden, umfasst, dass die Pseudozufallsdaten durch die BIST-Schaltung einem Fehlerkorrekturcodierer des Speicher-Wrappers bereitgestellt werden, ferner umfassend (i) Generieren von Fehlerprüfdaten durch den Fehlerkorrekturcodierer basierend auf den Pseudozufallsdaten und (ii) Schreiben der Pseudozufallsdaten und der Fehlerprüfdaten als geschriebene Daten in das Speicherarray durch den Fehlerkorrekturcodierer, wobei die Fehlerprüfdaten zum Bestimmen der Richtigkeit der Pseudozufallsdaten, wenn sie aus dem Speicherarray ausgelesen werden, verwendbar sind.
-
Beispiel 12 enthält den Gegenstand aus einem der Beispiele 9-11, ferner umfassend Auslesen der geschriebenen Daten aus dem Speicherarray als ausgelesene Daten durch den Fehlerkorrekturdecodierer; Identifizieren eines oder mehrerer Datenfehler der Pseudozufallsdaten der ausgelesenen Daten durch den Fehlerkorrekturdecodierer basierend auf den Fehlerprüfdaten der ausgelesenen Daten; und Korrigieren mindestens eines Datenfehlers durch den Fehlerkorrekturdecodierer unter Verwendung der Fehlerprüfdaten der ausgelesenen Daten.
-
Beispiel 13 enthält den Gegenstand aus einem der Beispiele 9-12, ferner umfassend Generieren von Fehlerinformationen, die den einen oder die mehreren Datenfehler und den mindestens einen durch den Fehlerkorrekturdecodierer korrigierten Datenfehler angeben, durch den Fehlerkorrekturdecodierer, wobei das Ignorieren des mindestens einen Speicherdefekts umfasst, dass mindestens ein Speicherdefekt basierend auf den vom Fehlerkorrekturdecodierer empfangenen Fehlerinformationen ignoriert wird.
-
Beispiel 14 enthält den Gegenstand aus einem der Beispiele 9-13, wobei das Ignorieren des mindestens einen Speicherdefekts umfasst, dass Speicherdefekte, die Datenfehlern der Fehlerinformationen, die durch den Fehlerkorrekturdecodierer korrigiert wurden, entsprechen, ignoriert werden.
-
Beispiel 15 enthält den Gegenstand aus einem der Beispiele 9-14, wobei das Vergleichen der geschriebenen Daten und der ausgelesenen Daten umfasst, dass durch die BIST-Schaltung eine Anzahl von Datenfehlern zwischen den geschriebenen Daten und den ausgelesenen Daten für ein oder mehrere Speicherstücke bestimmt wird, wobei jedes Speicherstück eine Bezugsspeichermenge ist und jeder Speicherdefekt einem Speicherstück des einen oder der mehreren Speicherstücke mit mindestens einem darin enthaltenen Datenfehler entspricht, und wobei das Generieren der Fehlermeldung umfasst, dass Speicherdefekte mit einer Anzahl von darin enthaltenen Datenfehlern, die geringer als eine Mindestanzahl ist, ignoriert werden.
-
Beispiel 16 enthält den Gegenstand aus einem der Beispiele 9-15, wobei die Mindestanzahl durch eine Anzahl von durch einen Fehlerkorrekturdecodierer des Speicher-Wrappers korrigierbaren Fehlern definiert wird.
-
Beispiel 17 enthält ein oder mehrere maschinenlesbare Speichermedien, das/die eine Vielzahl von darin gespeicherten Anweisungen umfasst/umfassen, die, wenn sie ausgeführt wird, bewirkt, dass eine Built-In-Self-Test(BIST)-Schaltung eines Speicher-Wrappers Folgendes durchführt: Generieren von Pseudozufallsdaten; Bewirken, dass die Pseudozufallsdaten als geschriebene Daten in das Speicherarray geschrieben werden; Auslesen der geschriebenen Daten aus dem Speicherarray als ausgelesene Daten; Vergleichen der geschriebenen Daten und der ausgelesenen Daten, um einen oder mehrere Speicherdefekte des Speicherarrays zu bestimmen; und Generieren einer Fehlermeldung, die den einen oder die mehreren Speicherdefekte identifiziert, wobei das Generieren der Fehlermeldung umfasst, dass mindestens ein Speicherdefekt basierend auf einer Fehlerkorrekturfähigkeit des Speicher-Wrappers ignoriert wird.
-
Beispiel 18 enthält den Gegenstand aus Beispiel 17, wobei das Bewirken, dass die Pseudozufallsdaten in das Speicherarray geschrieben werden, umfasst, dass die Pseudozufallsdaten einem Fehlerkorrekturcodierer des Speicher-Wrappers bereitgestellt werden, und wobei die Vielzahl von Anweisungen, wenn sie ausgeführt wird, ferner bewirkt, dass der Fehlerkorrekturcodierer Fehlerprüfdaten basierend auf den Pseudozufallsdaten generiert, und die Pseudozufallsdaten und die Fehlerprüfdaten als geschriebene Daten in das Speicherarray geschrieben werden, wobei die Fehlerprüfdaten zum Bestimmen der Richtigkeit der Pseudozufallsdaten, wenn sie aus dem Speicherarray ausgelesen werden, verwendbar sind.
-
Beispiel 19 enthält den Gegenstand aus Beispiel 17 oder 18, wobei die Vielzahl von Anweisungen, wenn sie ausgeführt wird, ferner bewirkt, dass ein Fehlerkorrekturdecodierer des Speicher-Wrappers Folgendes durchführt: Auslesen der geschriebenen Daten aus dem Speicherarray als ausgelesene Daten; Identifizieren eines oder mehrerer Datenfehler der Pseudozufallsdaten der ausgelesenen Daten basierend auf den Fehlerprüfdaten der ausgelesenen Daten; und Korrigieren mindestens eines Datenfehlers unter Verwendung der Fehlerprüfdaten der ausgelesenen Daten.
-
Beispiel 20 enthält den Gegenstand aus einem der Beispiele 17-19, wobei die Vielzahl von Anweisungen, wenn sie ausgeführt wird, ferner bewirkt, dass ein Fehlerkorrekturdecodierer des Speicher-Wrappers Folgendes durchführt: Generieren von Fehlerinformationen, die den einen oder die mehreren Datenfehler und den mindestens einen durch den Fehlerkorrekturdecodierer korrigierten Datenfehler angeben, wobei das Ignorieren des mindestens einen Speicherdefekts umfasst, dass mindestens ein Speicherdefekt basierend auf den vom Fehlerkorrekturdecodierer empfangenen Fehlerinformationen ignoriert wird.
-
Beispiel 21 enthält den Gegenstand aus einem der Beispiele 17-20, wobei das Ignorieren des mindestens einen Speicherdefekts umfasst, dass Speicherdefekte, die Datenfehlern der Fehlerinformationen, die durch den Fehlerkorrekturdecodierer korrigiert wurden, entsprechen, ignoriert werden.
-
Beispiel 22 enthält den Gegenstand aus einem der Beispiele 17-21, wobei das Vergleichen der geschriebenen Daten und der ausgelesenen Daten umfasst, dass eine Anzahl von Datenfehlern zwischen den geschriebenen Daten und den ausgelesenen Daten für ein oder mehrere Speicherstücke bestimmt wird, wobei jedes Speicherstück eine Bezugsspeichermenge ist und jeder Speicherdefekt einem Speicherstück des einen oder der mehreren Speicherstücke mit mindestens einem darin enthaltenen Datenfehler entspricht, und wobei das Generieren der Fehlermeldung umfasst, dass Speicherdefekte mit einer Anzahl von darin enthaltenen Datenfehlern, die geringer als eine Mindestanzahl ist, ignoriert werden.
-
Beispiel 23 enthält den Gegenstand aus einem der Beispiele 17-22, wobei die Mindestanzahl durch eine Anzahl von durch einen Fehlerkorrekturdecodierer des Speicher-Wrappers korrigierbaren Fehlern definiert wird.