-
Querverweis auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht die Priorität der vorläufigen Anmeldung mit der Nummer US 61/597,773 mit dem Titel „Verfahren und System zum Bereitstellen einer intelligenten Speicherarchitektur”, welche am 11. Februar 2012 eingereicht wurde, und deren Offenbarung hiermit vollumfänglich durch Inbezugnahme mit aufgenommen wird.
-
Hintergrund
-
Die vorliegenden erfinderischen Konzepte betreffen eine intelligente Speicherarchitektur und insbesondere ein Verfahren und ein System zum Bereitstellen einer intelligenten Speicherarchitektur für einen Speicher vom resistiven bzw. Widerstands-Typ.
-
Die vorliegenden erfinderischen Konzepte betreffen Speichersysteme zum Speichern und Abrufen von Informationen von integrierten Speicherschaltungen, einschließlich statischen Direktzugriffsspeichern (SRAM), dynamischen Direktzugriffsspeichern (DRAM), Flash-Speichern, Phasenveränderungs-Direktzugriffsspeichern (PCRAM), Spin-Transfer-Drehmoment-Direktzugriffsspeichern (STT-RAM), magnetischen Direktzugriffsspeichern (MRAM), resistiven Direktzugriffsspeichern (RRAM) und zukünftigen Speichervorrichtungen. Hierin beschriebene erfinderische Aspekte sind insbesondere für Speicher, wie STT-RAM, MRAM und PRAM-Speicher gut geeignet, welche Eigenschaften vom probabilistischen Typ und relativ hohe Fehlerraten aufweisen.
-
Halbleiter-Speichervorrichtungen wurden in elektronischen Systemen umfangreich verwendet, um Daten zu speichern. Es gibt grundsätzlich zwei Typen von Halbleiterspeichern: nichtflüchtige und flüchtige Speicher. Eine flüchtige Speichervorrichtung, wie ein statischer Direktzugriffsspeicher (SRAM) oder ein dynamischer Direktzugriffsspeicher (DRAM) verliert ihre Daten, wenn die angelegte Spannung abgeschaltet wird. Eine nichtflüchtige Halbleiter-Speichervorrichtung, wie ein Flash, ein löschbarer programmierbarer Nurlesespeicher (EPROM) oder ein magnetischer Direktzugriffsspeicher (MRAM), behält jedoch ihre Ladung, auch nachdem die angelegte Spannung abgeschaltet wird. In Fällen, bei denen ein Datenverlust aufgrund eines Leistungsausfalls oder -unterbrechung nicht akzeptiert werden kann, wird daher ein nichtflüchtiger Speicher verwendet, um die Daten zu speichern.
-
Die 1A bis 1D sind vereinfachte schematische Querschnittsansichten einer Magnettunnelübergangs(MTJ)-Struktur 10, welcher beim Ausbilden einer Spin-Transfer-Drehmoment(STT)-MRAM-Zelle verwendet wird. Bezug nehmend auf die 1A bis 1D ist gezeigt, dass ein MTJ 10 teilweise eine Referenzschicht 12, eine Tunnelschicht 14 und eine freie Schicht 16 enthält. Die Referenzschicht 12 und die freie Schicht 16 können ferromagnetische Schichten sein, während die Tunnelschicht 14 eine nicht magnetische Schicht ist. Die Magnetisierungsrichtung der Referenzschicht 12 wird während der Herstellung festgelegt und verändert sich daher während des Betriebs der STT-RAM-Speichervorrichtung nicht. Die Magnetisierungsrichtung der freien Schicht 16 kann während des Betriebs jedoch durch Hindurchleiten eines Stroms der erforderlichen Stärke durch die MTJ-Struktur variiert werden.
-
In 1A sind die Referenzschicht 12 und die freie Schicht 16 mit der gleichen Magnetisierungsrichtung, d. h., in einem parallelen magnetischen Zustand gezeigt. In 1B sind die Referenzschicht 12 und die freie Schicht 16 mit entgegengesetzten Magnetisierungsrichtungen, d. h., in einem nicht parallelen Zustand gezeigt. In 1C sind die Referenzschicht 12 und die freie Schicht 16 mit der gleichen Magnetisierungsrichtung (paralleler Zustand) gezeigt, wobei die Magnetisierungsrichtung senkrecht zu einer Ebene ist, welche durch die Schnittstelle der freien Schicht 16 und der Tunnelschicht 14 definiert ist. In 1D sind die Referenzschicht 12 und die freie Schicht 14 mit entgegengesetzten Magnetisierungsrichtungen (anti-paralleler Zustand) gezeigt, wobei die Magnetisierungsrichtungen senkrecht zu einer Ebene sind, welche durch die Schnittstelle der freien Schicht 16 und der Tunnelschicht 14 definiert ist.
-
Um von dem parallelen Zustand, wie in den 1A und 1C gezeigt, zu dem anti-parallelen Zustand, wie in den 1B und 1D gezeigt, zu schalten, wird das Spannungspotenzial der Referenzschicht 12 relativ zu diesem der freien Schicht 16 erhöht. Diese Spannungsdifferenz bewirkt, dass spinpolarisierte Elektronen, welche von der freien Schicht 16 zu der Referenzschicht 12 fließen, deren Drehimpuls übertragen und die Magnetisierungsrichtung der freien Schicht 16 hin zu dem anti-parallelen Zustand verändern. Um von dem anti-parallelen Zustand zu dem parallelen Zustand zu schalten, wird das Spannungspotenzial der freien Schicht 16 relativ zu diesem der Referenzschicht 12 erhöht. Diese Spannungsdifferenz bewirkt, dass spinpolarisierte Elektronen, welche von der Referenzschicht 12 zu der freien Schicht 16 fließen, deren Drehimpuls übertragen und die Magnetisierungsrichtung der freien Schicht 16 hin zu dem parallelen Zustand verändern.
-
Um von dem parallelen Zustand zu dem nicht parallelen Zustand zu schalten, oder umgekehrt, muss die auf den MTJ 10 aufgebrachte Spannung und der entsprechende Strom, welcher durch den MTJ 10 fließt, jeweils größer sein als ein entsprechendes Paar von Schwellenwerten. Die Spannung, welche eine Schwellenspannung übersteigen muss, so dass das Schalten auftritt, wird auch als die Schaltspannung Vc bezeichnet. In gleicher Art und Weise wird der Strom, welcher einen Schwellenstrom übersteigen muss, so dass das Schalten auftritt, als der Schaltstrom Ic bezeichnet.
-
Wie bekannt ist, besitzt der MTJ 10 einen relativ niedrigen Widerstand, wenn die freie Schicht 16 und die Referenzschicht 12 die gleiche Magnetisierungsrichtung (d. h., den parallelen Zustand) besitzen. Umgekehrt besitzt der MTJ 10 einen relativ hohen Widerstand, wenn die freie Schicht 16 und die Referenzschicht 12 die entgegengesetzte Magnetisierungsrichtung (d. h., den anti-parallelen Zustand) besitzen. Diese Differenz der Widerstandswerte stellt die Fähigkeit des MTJ 10 bereit, als eine Speichervorrichtung zu dienen. Aufgrund der physikalischen Eigenschaften eines MTJ ist der kritische Strom, welcher dazu erforderlich ist, um einen MTJ von einem parallelen Zustand hin zu einem anti-parallelen Zustand zu verändern, oft größer als der kritische Strom, welcher dazu erforderlich ist, um den MTJ von einem anti-parallelen Zustand hin zu einem parallelen Zustand zu verändern.
-
2A zeigt einen Magnettunnelübergang (MTJ) 10, welcher einen variablen Widerstand in einer Speicherzelle vom STT-MRAM-Typ bildet, und einen zugehörigen Auswahltransistor 20, welche zusammen eine STT-MRAM-Zelle 30 bilden. Der MTJ 10 enthält eine Referenz- oder Pinningschicht 12, eine freie Schicht 16 und eine Tunnelschicht 14, welche zwischen der Referenzschicht 12 und der freien Schicht 16 angeordnet ist. Der Transistor 20 ist aufgrund dessen inhärent höheren Stromantriebs, der niedrigeren Schwellenspannung und des kleineren Bereichs relativ zu einem PMOS-Transistor häufig ein NMOS-Transistor. Der Strom, welcher dazu verwendet wird, um eine „1” in den MRAM 30 zu schreiben, kann unterschiedlich zu dem Strom sein, welcher dazu verwendet wird, um eine „0” zu schreiben. Die Asymmetrie der Richtung des Stromflusses während dieser beiden Schreib-Bedingungen wird durch die Asymmetrie der Gate-Zu-Source-Spannung des Transistors 20 hervorgerufen.
-
In der nachfolgenden Beschreibung ist eine MRAM-Zelle derart definiert, dass sich diese in einem logischen „0”-Zustand befindet, wenn sich die freien Schichten und die Referenzschichten des zugehörigen MTJ in einem parallelen (P)-Zustand befinden, das heißt, der MTJ einen niedrigen Widerstand zeigt. Umgekehrt ist eine MRAM-Zelle derart definiert, dass sich diese in einem logischen „1”-Zustand befindet, wenn sich die freien Schichten und die Referenzschichten des zugehörigen MTJ in einem antiparallelen (AP)-Zustand befinden, das heißt, der MTJ einen hohen Widerstand zeigt. Es ist ersichtlich, dass bei anderen Ausführungsformen die MRAM-Zelle derart definiert sein kann, dass sich diese in dem logischen „0”-Zustand befindet, wenn sich diese in einem AP-Zustand befindet, und dass sich diese in dem logischen „1”-Zustand befindet, wenn sich diese in einem P-Zustand befindet. Darüber hinaus wird nachfolgend angenommen, dass die Referenzschicht des MTJ 10 deren zugehörigem Auswahltransistor gegenüberliegt, wie in 2A gezeigt ist.
-
Dadurch bewirkt ein Strom, welcher entlang der Richtung von Pfeil 35 fließt (d. h., der Aufwärtsrichtung), gemäß der vorstehenden Diskussion entweder, (i) ein Schalten von dem P-Zustand zu dem AP-Zustand, um dadurch eine „1” zu schreiben, oder (ii) stabilisiert den zuvor geschaffenen AP-Zustand des zugehörigen MTJ. In ähnlicher Art und Weise bewirkt ein Strom, welcher entlang der Richtung von Pfeil 40 fließt (d. h., der Abwärtsrichtung) entweder (i), ein Schalten von dem AP-Zustand zu dem P-Zustand, um eine „0” zu schreiben, oder (ii) stabilisiert den zuvor geschaffenen P-Zustand des zugehörigen MTJ. Es ist jedoch ersichtlich, dass bei anderen Ausführungsformen diese Orientierung umgekehrt sein kann, so dass die freie Schicht des MTJ deren zugehörigem Auswahltransistor gegenüberliegt. Bei solchen Ausführungsformen (nicht gezeigt) bewirkt ein Strom, welcher entlang der Richtung von Pfeil 35 fließt, entweder (i) ein Schalten von dem AP-Zustand zu dem P-Zustand oder (ii) stabilisiert den zuvor geschaffenen P-Zustand des zugehörigen MTJ. In ähnlicher Art und Weise bewirkt bei solchen Ausführungsformen ein Strom, welcher entlang der Richtung von Pfeil 40 fließt, entweder (i) ein Schalten von dem P-Zustand zu dem AP-Zustand oder (ii) stabilisiert den zuvor geschaffenen AP-Zustand.
-
2B ist eine schematische Darstellung des MRAM 30 von 2A, bei welcher der MTJ 10 als ein Speicherelement gezeigt ist, dessen Widerstand in Abhängigkeit der darin gespeicherten Daten variiert. Der MTJ 10 verändert dessen Zustand (i) von P zu AP, wenn der Strom entlang Pfeil 35 fließt und/oder (ii) von AP zu P, wenn der Strom entlang Pfeil 40 fließt.
-
Die Spannung, welche dazu erforderlich ist, um den MTJ 10 von einem AP-Zustand zu einem P-Zustand umzuschalten, oder umgekehrt, muss die kritische Schaltspannung Vc0 übersteigen. Der dieser Spannung entsprechende Strom wird als der kritische oder der Schaltstrom Ic0 bezeichnet. Während der spezifische kritische Wert Vc0 und der zugehörige kritische Schaltstrom Ic0 verschiedenartig definiert werden können, können diese Werte basierend auf einer 50%-Schaltwahrscheinlichkeit der Speicherzelle innerhalb einer spezifischen Zeit ausgewählt werden. Mit anderen Worten, der kritische Schaltstrom Ic0 kann basierend auf der Gestaltung des MTJ 10 und/oder basierend auf Messungen der Schaltwahrscheinlichkeit bei einem bestimmten kritischen Wert Vc0 und/oder Schaltstrom Ic0 ausgewählt oder anderweitig ermittelt werden. Wenn der kritische Schwell-Schaltstrom Ic0 erfüllt ist, kann eine 50%-Wahrscheinlichkeit bestehen, dass das gespeicherte Speicherbit Werte verändert bzw. schaltet (beispielsweise von „0” zu „1” oder „1” zu „0”). Ein Overdrive-Strom wird aufgebracht, um sicherzustellen dass bei einer akzeptablen Fehlerrate ein Schalten auftritt, um Standard-Erwartungen hinsichtlich der Zuverlässigkeit zu erfüllen. Dieser Overdrive-Strom oder Schaltstrom Isw kann 1,3-mal, 1,5-mal, 2-mal oder mehr als 2-mal der Wert von Ic0 sein. Falls beispielsweise Ic0 für eine MTJ-Vorrichtung bei einer Schreibe-Pulsweite von 20 Nanosekunden (ns) 7 Mikroampere (μA) beträgt, kann dann Isw, welcher dazu verwendet wird, um die Zustände des MTJ zuverlässig zu schalten, 11 μA oder größer sein.
-
In einigen Fällen kann der „sichere” Schreibestrom (beispielsweise bei welchem die Schreibe-Fehlerrate kleiner als 10 e–9 ist) für eine bestimmte Zeitphase von beispielsweise 10 ns gleich 1,5 bis 2-mal der kritische Schaltstrom Ic0 sein. Um den Bitwert aus der Speicherzelle wieder auszulesen, kann ein relativ „sicherer” Lesestrom angewandt werden (beispielsweise bei welchem die Lese-Fehlerrate kleiner als 10 e–9 ist). Der „sichere” Lesestrom kann beispielsweise 0,2-mal (d. h., 20%) des kritischen Schaltstroms Ic0 sein. Als weiteres Beispiel kann, falls der kritische Schaltstrom Ic0 gleich 6 Mikroampere (μA) beträgt, dann der Schreibestrom unter einem normalen Betriebsmodus zumindest etwa 12 μA sein, und der Leserstrom kann unter einem normalen Betriebsmodus weniger als etwa 1,2 μA sein. Auf diese Art und Weise ist die Wahrscheinlichkeit, dass die Speicherzelle unter einer normalen Schreibe-Bedingung geeignet schaltet, sehr hoch, in einigen Fällen nahezu 100%. In gleicher Art und Weise kann die Wahrscheinlichkeit eines unbeabsichtigten Schaltens des Wertes der Speicherzelle unter einer normalen Lese-Bedingung sehr niedrig sein, in einigen Fällen nahezu null.
-
Sobald in dem AP-Zustand, beeinflusst das Entfernen der aufgebrachten Spannung den Zustand des MTJ 10 nicht. In gleicher Art und Weise wird für einen Übergang von dem AP-Zustand zu dem P-Zustand unter dem normalen Betriebsmodus eine negative Spannung von zumindest Vc0 aufgebracht, so dass ein Stromniveau von zumindest dem Schaltstrom Ic0 in der entgegengesetzten Richtung durch die Speicherzelle fließt. Sobald in dem P-Zustand, beeinflusst das Entfernen der aufgebrachten Spannung den Zustand des MTJ 10 nicht.
-
Mit anderen Worten, der MTJ 10 kann von einem anti-parallelen Zustand (d. h., einem Hoch-Widerstands-Zustand oder logischen „1”-Zustand) zu einem parallelen Zustand geschaltet werden, um eine „0” zu speichern (d. h., einem Niedrig-Widerstands-Zustand oder logischen „0”-Zustand). Unter der Annahme, dass sich der MTJ 10 anfangs in einem logischen „1” oder AP-Zustand befindet, wird unter dem normalen Betriebsmodus bewirkt, dass ein Strom in der Richtung von Pfeil 40 durch den Transistor 20 fließt, welcher zumindest so groß wie der kritische Strom Ic0 oder größer wie dieser ist. Um dies zu erreichen, wird der Source-Knoten (SL oder Source-Leitung) von Transistor 20 über einen Widerstandspfad (nicht gezeigt) mit dem Erdpotential gekoppelt, eine positive Spannung wird auf den Gate-Knoten (WL oder Wortleitung) von Transistor 20 aufgebracht, und eine positive Spannung wird auf den Drain-Knoten (BL oder Bitleitung) von Transistor 20 aufgebracht.
-
Wie vorstehend erwähnt, kann der MTJ 10 ebenso von einem parallelen Zustand zu einem anti-parallelen Zustand geschaltet werden, um eine „1” zu speichern. Unter der Annahme, dass sich der MTJ 10 anfangs in einem logischen „0” oder P-Zustand befindet, wird unter dem normalen Betriebsmodus bewirkt, dass ein Strom in der Richtung von Pfeil 35 durch Transistor 20 fließt, welcher zumindest so groß wie der kritische Strom Ic0 oder größer wie dieser ist. Um dies zu erreichen, wird zu dem Knoten SL über einen Widerstandspfad (nicht gezeigt) eine positive Spannung geführt, zu dem Knoten WL wird eine positive Spannung geführt und der Knoten BL wird über einen Widerstandspfad (nicht gezeigt) mit dem Erdpotential gekoppelt.
-
3 stellt die Variation des MTJ-Zustandes (oder dessen Widerstand) während verschiedener Schreibezyklen dar. Für einen Übergang von dem P-Zustand (Niedrig-Widerstands-Zustand) zu dem AP-Zustand (Hoch-Widerstands-Zustand) wird eine positive Spannung aufgebracht, welche zumindest so groß wie die kritische Schaltspannung Vc0 oder größer wie diese ist. Sobald in dem AP-Zustand, beeinflusst das Entfernen der aufgebrachten Spannung den Zustand des MTJ nicht. In gleicher Art und Weise wird für einen Übergang von dem AP-Zustand zu dem P-Zustand eine negative Spannung aufgebracht, welche niedriger als die kritische Schaltspannung Vc0 ist. Sobald in dem P-Zustand, beeinflusst das Entfernen der aufgebrachten Spannung den Zustand des MTJ nicht. Der Widerstand des MTJ entspricht Rhigh, wenn sich dieser in dem AP-Zustand befindet. In gleicher Art und Weise entspricht der Widerstand der MTJ Rlow, wenn sich dieser in dem P-Zustand befindet.
-
4A zeigt einen MTJ 10, welcher derart programmiert ist, dass dieser von einem anti-parallelen Zustand (d. h., einem Hoch-Widerstands-Zustand oder einem logischen „1”-Zustand) zu einem parallelen Zustand schaltet, um eine „0” zu speichern (das heißt, einem Niedrig-Widerstands-Zustand oder einem logischen „0”-Zustand). In dieser Figur wird angenommen, dass sich der MTJ 10 ursprünglich in einem logischen „1”- oder AP-Zustand befindet. Wie vorstehend beschrieben ist, wird bewirkt, dass ein Strom Isw, welcher mindestens so groß oder größer wie der kritische Strom Ico ist, in der Richtung von Pfeil 40 durch den Transistor 20 fließt. Um dies zu erreichen, wird der Source-Knoten (SL) des Transistors 20 über einen Widerstandspfad (nicht gezeigt) mit dem Grundpotenzial verbunden, eine positive Spannung Vpp wird auf den Gate-Knoten (WL oder Wortleitung) des Transistors 20 aufgebracht, und eine positive Spannung Vcc wird auf den Drain-Knoten (BL oder Bitleitung) des Transistors 20 aufgebracht.
-
5 ist ein beispielhaftes Zeitdiagramm der Spannungsniveaus bei den Knoten WL, SL, SN und BL während eines Schreibe-„0”-Vorganges, welcher ungefähr zwischen den Zeitpunkten 25 ns und 35 ns auftritt, und eines Schreibe-„1”-Vorganges, welcher ungefähr zwischen den Zeitpunkten 45 ns und 55 ns auftritt, für einen herkömmlichen MTJ, wie dem MTJ 10, welcher in den 4A und 4B gezeigt ist. Es wird angenommen, dass die Zuführspannung Vcc etwa 1,8 Volt beträgt. Das Wortleitungs-Signal WL sowie das Spalten-Auswahlsignal CS sind derart gezeigt, dass diese auf eine höhere Vpp-Programmierspannung von 3,0 Volt erhöht sind. Während des Schreibe-„0”-Vorganges sind die Spannungen bei den Knoten BL, SL und SN derart gezeigt, dass diese etwa gleich 1,43 V, 0,34 V bzw. 0,88 V sind. Während des Schreibe-„1”-Vorganges sind die Spannungen bei den Knoten BL, SL und SN derart gezeigt, dass diese etwa gleich 0,23 V, 1,43 V bzw. 0,84 V sind. Obwohl nicht gezeigt, sind für diese beispielhafte Computersimulation die Ströme, welche während der Schreibe-„0”- und „1”-Vorgänge durch den MTJ fließen, 121 μA bzw. 99,2 μA.
-
4B zeigt einen MTJ, welcher derart programmiert ist, dass dieser von einem parallelen Zustand zu einem anti-parallelen Zustand schaltet, um eine „1” zu speichern. Es wird angenommen, dass sich der MTJ 10 ursprünglich in einem logischen „0”- oder P-Zustand befindet. Um eine „1” zu speichern, wird bewirkt, dass ein Strom Isw, welcher größer als der kritische Strom ist, in der Richtung von Pfeil 35 durch den Transistor 20 fließt. Um dies zu erreichen, wird über einen Widerstandspfad (nicht gezeigt) die Spannung auf den Knoten SL gebracht, auf den Knoten WL wird die Spannung Vpp aufgebracht, und der Knoten BL wird über einen Widerstandspfad (nicht gezeigt) mit dem Grundpotenzial gekoppelt. Entsprechend wird während eines Schreibe-„1”-Vorganges die Gate-Zu-Source-Spannung des Transistors 20 auf (VWL-VSN) eingestellt, und die Drain-Zu-Source-Spannung des Transistors 20 wird auf (VSL-VSN) eingestellt. Diese Speicherzelle vom STT-RAM-Typ kann eine ausgezeichnete nichtflüchtige Speicherlösung bereitstellen.
-
Leider kann bei einem STT-RAM oder irgendeinem anderen Typ von Speicherchip ein Herstellungsfehler oder andere Defekte dazu führen, dass nicht alle Speicherzellen auf einem Speicherchip richtig funktionieren. Während einer Speicherreparatur kann ein Speicherchip getestet werden und fehlerhafte Speicherelemente können durch redundante Speicherelemente ersetzt werden. Normalerweise als Laser-Reparatur bezeichnet, wird diese Speicherreparatur üblicherweise nach dem ersten Wafer-Sort-Test durchgeführt. Ein Laser wird dazu verwendet, um die Speicher-Sicherungs-Bänke durchzubrennen, um die defekten Speicherelemente zu deaktivieren und diese durch die redundanten Elemente zu ersetzen. Die Speicherreparatur wird für den Speicher-Endverbraucher nicht zur Verfügung gestellt.
-
Verschiedene Speichersysteme wurden vorgeschlagen, um einen Speicherzugriff, eine sichere Datenspeicherung, eine Daten-Verifikation und -Wiederherstellung, einen Daten-Test und eine Speicherreparatur vorzusehen. Diese Systeme sind beispielsweise in der
US 6,657,914 mit dem Titel „Configurable addressing for multiple chips in a package”; der
US 6,754,866 mit dem Titel „Testing of integrated circuit device”; der
US 7,365,557 mit dem Titel „Integrated testing module including data generator”; der
US 7,466,160 mit dem Titel „Shared memory bus architecture for system with processor and memory units”; der
US 7,466,603 mit dem Titel „Memory accessing circuit system”; der
US 7,673,193 mit dem Titel „Processor-Memory unit for use in System-In-Package and System-In-Module Devices”; der
US 7,768,847 mit dem Titel „Programmable memory repair scheme”; der
US 7,779,311 mit dem Titel „Testing and recovery of multilayer device” enthalten, deren Inhalte in ihrer Gesamtheit hiermit durch Inbezugnahme mit aufgenommen werden.
-
Obwohl diese und weitere Systeme ähnliche Probleme behandeln, wie diese, welche durch die vorliegenden erfinderischen Grundsätze behandelt werden, wurden diese nicht für Speicher mit hohen Fehlerraten und probabilistischen Tendenzen, wie PCRAM, MRAM und PRAM-Vorrichtungen gestaltet, oder insbesondere darauf angewandt. Insbesondere die
US 7,673,193 beschreibt eine Vorrichtung und ein Verfahren für eine Prozessor-Speichereinheit für die Verwendung in integrierten System-In-Package(SiP)- und System-In-Module(SiM)-Schaltungsvorrichtungen, welche ein Verarbeitungsmodul, ein Speichermodul und ein programmierbares Systemmodul enthalten. Das programmierbare Systemmodul ist derart konfiguriert, dass dieses als eine Schnittstelle zwischen dem Speichermodul und einer Test-Vorrichtung dient, um die Integration und das Testen von Prozessor-Speichereinheiten mit funktionellen Komponenten mit unterschiedlichen Kommunikationsprotokollen zu erleichtern. Die Zwischenschicht (Systemmodul)
120 kann prozessspezifische Signal-Verarbeitungs-Algorithmen für eine Ergebnisverbesserung, eine Datenkomprimierung, Test-Algorithmen, Leistungs-Management usw. enthalten. Dieses System ist insbesondere für Multi-Chip-DRAM-Plus-Logik-Schnittstellen-Produkte nützlich. Gemäß zusätzlichen Merkmalen und Ausführungsformen, welche Grundsätze des erfinderischen Konzepts umfassen, kann der Nutzen dieses System-Typs jedoch auf Flash-Speicher, PCRAM, MRAM, PRAM und zukünftige Speichervorrichtungen ausgeweitet werden.
-
Kurzfassung
-
Gemäß Merkmalen und Grundsätzen der vorliegenden erfinderischen Konzepte ermöglicht es ein intelligentes Speichersystem in bevorzugte Art und Weise, dass Speicher mit hohen Fehlerraten und langsamen Lese/Schreibe-Zeiten relativ zu einem logischen Prozessor zuverlässig und nahtlos arbeiten. Diese erfinderischen Merkmale können insbesondere nützliche Vorteile für Speicher vorsehen, welche probabilistische Tendenzen und höhere Fehlerraten besitzen. Im Übrigen kann ein intelligentes Speichersystem, welches Grundsätze des vorliegenden erfinderischen Konzepts enthält, derart konfiguriert sein, dass dieses ermöglicht, dass nichtflüchtige Speicherbits mit einer hohen Schreibe-Fehlerrate durch Kennzeichnen bzw. Markieren der fehlerhaften Stelle und der entsprechenden Daten und anschließendes Durchführen eines Neu-Schreibens zu einer geeigneten Zeit, oder lediglich durch Ausblenden der fehlerhaften Stelle und Neu-Schreiben der Daten in eine andere Stelle verwendet werden.
-
Einige Merkmale von Ausführungsformen, welche eines oder mehrerer der vorliegenden erfinderischen Konzepte enthalten, können einen gemeinsamen asynchronen Speicherbus mit einer Bestätigungs-Signalgebung enthalten, um den Schreibe- und Lese-Erfolg sicherzustellen. Die handshaking bzw. Unterstützungs-Speicherschnittstelle kann unter Verwendung von internen Lese- und Schreibe-Nachverfolgungs und -Verifikations-Schemata einen prozessunabhängigen, spannungsunabhängigen und temperaturunabhängigen Betrieb ermöglichen.
-
Das System kann ferner derart konfiguriert sein, dass dieses Speichersystem-Fehler dynamisch überwacht und Fehlerstellen und Fehlertypen durch Speichern derselben in einem nichtflüchtigen Speicher (NVM) einer Speicher-Steuervorrichtung speichert. Das System kann ferner derart konfiguriert sein, dass dieses die Fehlerstelle und den Typ des Fehlers aus der NVM-Tabelle abruft und eine geeignete Reparatur basierend auf dem Fehlertyp durchführt. Diese Reparaturen können beispielsweise das Neu-Schreiben der Daten, das Reparieren des Speichers, das Isolieren der fehlerhaften Speicherstelle oder weitere geeignete Reparaturen enthalten.
-
Das System kann ferner derart konfiguriert sein, dass dieses bei dem Speicher mit schlechten Speichereigenschaften Wiederholzyklen vorsieht. Durch eine intelligente Steuervorrichtung kann eine Ausgangs-Dauerprüfung bzw. ein Stress-Test vorgesehen werden, um eine Schwäche in dem Speicher zu finden. Basierend auf Fehler-Modi und statistischen Stress-Niveau-Daten (Spannung, Strom, Temperatur usw.) kann der intelligente Speicher automatisch konfiguriert werden, um ein bestimmtes Reparatur-Aktualisierungsintervall vorzusehen. Das Aktualisierungsintervall kann beispielsweise 3 Sekunden, 10 Tage, 5 Wochen, 2 Monate oder mehr betragen. Die Zeit kann durch einen internen sehr langsamen Leistungstakt ermittelt werden. Ein Aktualisierungszyklus besteht aus Auslesen des gesamten Speichers und anschließendem Neu-Schreiben der gleichen Daten. Die Schaltung kann intern in dem Speicher sein, um die Lese- und Neu-Schreibe-Funktion zu implementieren, ähnlich zu der Schreibe-Verifikations-Neu-Schreibe-Schaltung.
-
Das intelligente Speichersystem kann ferner derart konfiguriert sein, dass dieses auch nach der Implementierung in einer Endverbraucher-Vorrichtung durch Ermöglichen eines direkten Zugriffs einer externen automatisierten Test-Ausrüstung (ATE) auf den Systemspeicher einen On-Chip-Test zulässt. Die ATE kann ein Testmuster planen und durchführen, um den Systemspeicher beispielsweise basierend auf einer Benutzeranforderung, einem automatischen Testplan oder im Ansprechen auf erfasste Speicherfehler testet.
-
Das intelligente Speichersystem kann außerdem derart konfiguriert sein, dass dieses Leistungs-Management-Technologien implementiert. Diese Leistungs-Management-Technologien können beispielsweise einen SA-Lesestrom steuern, SA-Klemmenspannungen steuern, eine SA-Leseverzögerung steuern, eine Schreibespannung steuern, eine Peripheriespannung während Stand-by steuern, und/oder weitere Leistungsanforderungen der Speichervorrichtung verwalten.
-
Ein RISC-Prozessor oder Prozessoren von anderen Typen können ebenso in dem intelligenten Speichersystem, wie in der Speicher-Steuervorrichtung, enthalten sein, um einfache und/oder komplexe Berechnungen der Daten durchzuführen bevor diese in dem Hauptsystem-Speicher gespeichert werden. Dies kann durch Ermöglichen, dass der Vorrichtungsprozessor verschiedene Aufgaben auf den Speicher-Steuervorrichtungs-Prozessor auslagert, einen Mehrwert für das intelligente Speichersystem schaffen und dadurch Vorrichtungs-Ressourcen für andere Prozesse freigeben.
-
Gemäß einer spezifischen Ausführungsform, welche Grundsätze des vorliegenden erfinderischen Konzepts enthält, kann ein intelligentes Speichersystem einen Speicher, welcher aus einem oder mehreren Speicherchips, die unter Verwendung von Speicher-Prozessen hergestellt werden, besteht, und einen Prozessor, welcher aus einem oder mehreren Speicher-Prozessor-Chips, die unter Verwendung von logischen Prozessen hergestellt werden, besteht, aufweisen. Der Prozessor kann beispielsweise einen gemeinsamen Adress/Daten/Steuer-Speicherbus enthalten, welcher derart konfiguriert ist, dass dieser eine asynchrone Handshaking- bzw. Unterstützungs-Schnittstelle zwischen dem Speicher-Array und dem Speicherprozessor vorsieht. Der Prozessor kann außerdem einen Mechanismus zum Abgeben von Schreibefehler-Zielspeicher-Daten von dem Speicherchip zur Analyse enthalten. Eine Programmlogik für eine Speicher-Adress-Rekonfiguration kann ebenso wie eine Leistungs-Management-Logik enthalten sein.
-
Der Speicher kann außerdem einen gemeinsamen Adress/Daten/Steuer-Speicherbus enthalten, welcher eine asynchrone Handshaking- bzw. Unterstützungs-Schnittstelle zwischen dem Speicher-Array und dem Speicherprozessor vorsieht. Schreibefehler-Ziel- und Schreibe/Verifikations-SCHREIBE-Schaltungen können zusammen mit einer Design-For-Test(DFT)-Schaltung zum Durchführen eines schnellen Parallel-Speicher-Tests ebenso in dem Speicher enthalten sein. Eine Test-Schnittstelle kann für einen SiP-Speicher-Test ebenso enthalten sein. Steuerregister und eine Multiplex-Schaltung sind für eine Adress-Rekonfiguration ebenso vorzugsweise vorgesehen; und separate Leitungsebenen und Gating-Schaltkreise können zum Leistungs-Management enthalten sein.
-
Durch die vorliegenden erfinderischen Grundsätze können verschiedene Vorteile vorgesehen werden, unter anderen einschließlich des Ermöglichens der Kompatibilität zu mehreren Systemen. Neben einer programmierbaren und Speicher-Typ-abhängigen I/O-Schnittstelle können konfigurierbare Adress-Schemata verwendet werden, welche mehrere Prozessoren und Peripheriegeräte unterstützen.
-
Bestimmte der erfinderischen Merkmale können am besten durch Implementieren derselben in einem System-In-Package (SiP) oder einem Ein-Chip-System (SoC) erreicht werden. Diese Anwendungen benötigen eine gute Verbindung zwischen einem Speicher-Array und Speicher-Prozessorchips. Dies kann beispielsweise unter Verwendung einer Silizium-Durchkontaktierung bzw. True-Silicon-Via (TSV) oder einer anderen SiP-Technologie erreicht werden. Die Verwendung von Niedriglaten- und Hochdurchsatz-SiP-Verbindungen kann eine verbesserte Systemleistungsfähigkeit bereitstellen. Die Kostennachteile solch eines Systems können minimiert werden, da SiP-Verbindungs-Technologiekosten kontinuierlich abnehmen.
-
Die erfinderischen Grundsätze können durch Reduzieren der I/O-Aufladung unter Verwendung von SiP-Lösungen, durch Vorsehen eines taktlosen Speichervorganges und/oder durch Abschalten von nicht verwendeten Speicherabschnitten außerdem einen reduzierten Leistungsverbrauch ermöglichen. Eine Spannungssteuerung, eine Temperaturkompensation und eine asynchrone Zeitschaltung können ebenso zur Reduktion des Leistungsverbrauchs beitragen und einen effizienteren Betrieb vorsehen.
-
Weitere Grundsätze ermöglichen es dem Vorrichtungsprozessor, sich wiederholende Berechnungen oder andere Aufgaben auf das intelligente Speichersystem zu übertragen. Beispielsweise kann eine ARM, MIPs oder eine andere gewünschte geschützte Prozessorkombination in der Speicher-Steuervorrichtung oder einem anderen Bereich des intelligenten Speichersystems vorgesehen sein, um verschiedene Verarbeitungsaufgaben durchzuführen, um Vorrichtungsressourcen freizugeben.
-
Gemäß den Grundsätzen des vorliegenden erfinderischen Konzepts können Speicher-Überwachung, -Reparatur, -Korrektur und -Neu-Zuordnung ebenso durch die intelligente Speicher-Steuervorrichtung durchgeführt werden. ECC, Antifuse-Reparatur, Fehler-Maskierung, Lese-Schreibe-Vergleich, Weak-Bit-Austausch und weitere Fehler-Korrekturtechnologien können in dem intelligenten Speichersystem implementiert sein, um die Datenstabilität zu verbessern und Fehlerraten zu reduzieren.
-
Gemäß einer Ausführungsform, welche Grundsätze des vorliegenden erfinderischen Konzepts enthält, kann eine Speicherschaltung teilweise einen Vergleichsblock enthalten, welcher derart konfiguriert ist, dass dieser erste Daten, die derart angepasst sind, um in einer Speicherzelle gespeichert zu werden, mit zweiten Daten, welche zuvor in der Speicherzelle gespeichert wurden, vergleicht. Der Vergleichsblock ist ferner derart konfiguriert, dass dieser eine Adresse der Speicherzelle, in welcher die zweiten Daten gespeichert sind, speichert, falls die zweiten Daten nicht mit den ersten Daten übereinstimmen. Die Speicherzelle wird während aufeinanderfolgenden Schreibezyklen beschrieben. Die Adresse kann in einem Zielspeicher gespeichert werden. Die Speicherzelle kann beispielsweise eine DRAM, SRAM, ROM, PROM, EEPROM, FLASH, FeRAM, PCRAM, RRAM, MRAM oder STT-MRAM-Zelle sein.
-
Bei einigen Ausführungsformen kann die Speicherschaltung ferner ein Speicher-Array, einen Schreibe-Block und einen Lese-Block enthalten. Der Schreibe-Block kann zwischen dem Speicher-Array und dem Vergleichsblock gekoppelt sein. Der Lese-Block kann zwischen dem Speicher-Array und dem Vergleichsblock gekoppelt sein, so dass der Lese-Block angepasst ist, um die zweiten Daten zu erfassen. Die Speicherschaltung kann ferner eine Steuerlogik enthalten, welche derart konfiguriert ist, dass diese ein Inverses der zweiten Daten in der Speicherzelle speichert, wenn auf die Speicherzelle nicht für einen normalen Schreibevorgang durch eine Vorrichtung, welche sich außerhalb des Speichers befindet, zugegriffen wird.
-
Bei einer Ausführungsform kann das Speicher-Array zumindest eine Spalte enthalten, welche mit einer Mehrzahl der Speicherzellen gekoppelt ist. Die Spalte enthält eine erste Signalleitung und eine zweite Signalleitung. Die Speicherzelle enthält einen ersten stromführenden Anschluss, welcher mit der ersten Signalleitung gekoppelt ist, einen zweiten stromführenden Anschluss, welcher mit der zweiten Signalleitung gekoppelt ist, und einen Steueranschluss, welcher mit einer Wortleitung gekoppelt ist. Die Speicherzelle kann ferner einen Magnettunnelübergang und einen ersten Transistor enthalten. Der Magnettunnelübergang kann einen ersten Anschluss besitzen, welcher mit dem ersten stromführenden Anschluss der Speicherzelle gekoppelt ist. Der erste Transistor kann einen ersten stromführenden Anschluss, welcher mit dem zweiten stromführenden Anschluss der nichtflüchtigen Speicherzelle gekoppelt ist, einen Gate-Anschluss, welcher mit dem Steueranschluss der nichtflüchtigen Speicherzelle gekoppelt ist, und einen zweiten stromführenden Anschluss, welcher mit einem zweiten Anschluss des Magnettunnelübergangs gekoppelt ist, enthalten.
-
Gemäß einer Ausführungsform kann ein Verfahren zum Korrigieren von Schreibefehlern während eines Schreibevorganges in einer Speicherschaltung das Vergleichen von ersten Daten, welche derart angepasst sind, um in einer Speicherzelle gespeichert zu werden, mit zweiten Daten, welche während eines Schreibevorgangs zuvor in der Speicherzelle gespeichert wurden, das Speichern einer Adresse der Speicherzelle, in welcher die zweiten Daten gespeichert sind, falls die zweiten Daten nicht mit den ersten Daten übereinstimmen, und das Schreiben in die Speicherzelle während aufeinanderfolgender Schreibezyklen, um den Schreibefehler zu korrigieren, enthalten. Das Verfahren kann ferner das Auffangen der Adresse der Speicherzelle, das Auffangen der ersten Daten, das Schreiben der ersten Daten in einen Speicher-Array bei der Adresse der Speicherzelle, und das Erfassen der zweiten Daten während des Schreibevorgangs enthalten.
-
Gemäß eines weiteren Aspekts kann ein Verfahren zum Korrigieren von Schreibefehlern während eines Schreibevorgangs in einer Speicherschaltung das Vergleichen von ersten Daten, welche derart angepasst sind, um in einer Speicherzelle gespeichert zu werden, mit zweiten Daten, welche während eines Schreibevorganges zuvor in der Speicherzelle gespeichert wurden, das Invertieren der zweiten Daten, falls die zweiten Daten nicht mit den ersten Daten übereinstimmen, und das Schreiben der invertierten zweiten Daten in eine Adresse der Speicherzelle, bei welcher die zweiten Daten gespeichert sind, falls die zweiten Daten nicht mit den ersten Daten übereinstimmen, enthalten, um den Schreibefehler zu korrigieren. Das Verfahren kann ferner das Auffangen Adresse der Speicherzelle, das Auffangen der ersten Daten, das Schreiben der ersten Daten in ein Speicher-Array bei der Adresse der Speicherzelle und das Erfassen der zweiten Daten während des Schreibevorgangs enthalten.
-
Gemäß eines noch weiteren Aspekts kann ein Verfahren zum Korrigieren von Schreibefehlern nach einem Schreibevorgang in einer Speicherschaltung das Laden einer Adresse einer Speicherzelle, in welcher zweite Daten gespeichert sind, falls die zweiten Daten nach einem Schreibevorgang nicht mit ersten Daten übereinstimmen, das Erfassen der zweiten Daten, das Invertieren der zweiten Daten und das Schreiben der invertierten zweiten Daten in eine Adresse der Speicherzelle, bei welcher die zweiten Daten gespeichert sind, enthalten, um den Schreibefehler zu korrigieren.
-
Einige Ausführungsformen können ein Verfahren zum Vorsehen eines eingebauten Bitfehlerraten-Selbsttests bei einer Speichervorrichtung enthalten. Das Verfahren kann beispielsweise das Eintreten in einen Testmodus, das interne Erzeugen eines Fehlerraten-Zeitmusters durch die Speichervorrichtung, das Durchführen des eingebauten Bitfehlerraten-Selbsttests basierend auf dem intern erzeugten Fehlerraten-Zeitmuster durch die Speichervorrichtung, das Messen der Fehlerrate, welche sich aus dem eingebauten Bitfehlerraten-Selbsttests ergibt, das Anpassen eines oder mehrerer Testparameter basierend auf der gemessenen Fehlerrate, und das Wiederholen des eingebauten Bitfehleraten-Selbsttests unter Verwendung der angepassten Parameter enthalten.
-
Einige Ausführungsformen können ein Verfahren zum Bereitstellen eines eingebauten Bitfehlerraten-Selbsttests bei einer Speichervorrichtung enthalten. Das Verfahren kann das Durchführen eines eingebauten Schreibe-Fehlerraten-Selbsttest und/oder eines eingebauten Lese-Fehlerraten-Selbsttest durch die Speichervorrichtung, das Analysieren von Ergebnissen des eingebauten Schreibe-Fehlerraten-Selbsttest und/oder des eingebauten Lese-Fehlerraten-Selbsttest, und das automatische Anpassen eines oder mehrerer Testparameter im Ansprechen auf die Analyse enthalten.
-
Gemäß einigen Ausführungsformen enthält eine Speichervorrichtung eine Bitfehlerraten-Steuerlogik, welche derart konfiguriert ist, dass diese einen eingebauten Bitfehlerraten-Selbsttest steuert, einen Adress- und Daten-Generator, welcher mit der Bitfehlerraten-Steuerlogik gekoppelt ist, einen On-Chip-Oszillator, welcher derart konfiguriert ist, dass dieser einen internen Referenztakt für den eingebauten Bitfehlerraten-Selbsttest erzeugt, einen Schreibe-Fehlerraten-Testmuster-Generator, welcher derart konfiguriert ist, dass dieser ein Schreibefehler-Testmuster für den eingebauten Bitfehlerraten-Selbsttest erzeugt, und einen Lese-Fehlerraten-Testmuster-Generator, welcher derart konfiguriert ist, dass dieser ein Lesefehler-Testmuster für den eingebauten Bitfehlerraten-Selbsttest erzeugt.
-
Bei noch weiteren Ausführungsformen kann ein nichtflüchtiger Speicher (NVM) Programmspeicher dazu verwendet werden, um Informationen hinsichtlich fehlerhafter Adresspositionen und des Fehlertyps zu speichern. Der NVM-Programmspeicher kann ferner dazu verwendet werden, um Adressen von fehlerhaften Speicherpositionen neue Speicherpositionen zuzuweisen. Eine Speicher-Steuervorrichtung des intelligenten Speichersystems kann mit dem NVM-Programmspeicher verknüpft sein, um Speichertests durchzuführen, Speicheradressen neu zuzuweisen, Speicher-Aktualisierungen durchzuführen oder weitere geeignete Maßnahmen basierend auf der in dem NVM-Programmspeicher gespeicherten Fehlerinformationen vorzunehmen.
-
Kurze Beschreibung der Abbildungen
-
Das Vorstehende und weiterer Merkmale und Vorteile der vorliegenden erfinderischen Grundsätze werden aus der nachfolgenden detaillierten Beschreibung ersichtlicher, welche mit Bezug auf die beigefügten Figuren ausgeführt ist, in denen:
-
1A eine vereinfachte schematische Querschnittsansicht einer Magnettunnelübergangsstruktur einer magnetischen Direktzugriffsspeicher-Zelle ist, wenn diese in einem parallelen Magnetisierungszustand angeordnet ist, wie aus dem Stand der Technik bekannt.
-
1B eine vereinfachte schematische Querschnittsansicht ist, welche die Magnettunnelübergangsstruktur von 1A zeigt, wenn diese in einem anti-parallelen Magnetisierungszustand angeordnet ist, wie aus dem Stand der Technik bekannt.
-
1C eine vereinfachte schematische Querschnittsansicht einer Magnettunnelübergangsstruktur einer magnetischen Direktzugriffsspeicher(MRAM)-Zelle ist, wenn diese in einem parallelen Magnetisierungszustand angeordnet ist, wie aus dem Stand der Technik bekannt.
-
1D eine vereinfachte schematische Querschnittsansicht ist, welche die Magnettunnelübergangsstruktur von 1C zeigt, wenn diese in einem anti-parallelen Magnetisierungszustand angeordnet ist, wie aus dem Stand der Technik bekannt.
-
2A eine schematische Darstellung ist, welche Schichten einer mit einem zugehörigen Auswahltransistor gekoppelten Magnettunnelübergangsstruktur zeigt, wie aus dem Stand der Technik bekannt.
-
2B eine schematische Darstellung der Magnettunnelübergangsstruktur und deren zugehörigem Auswahltransistor von 2A zeigt, wie aus dem Stand der Technik bekannt.
-
3 eine grafische Darstellung ist, welche die Variation des Widerstandes der Magnettunnelübergangsstruktur von 2A im Ansprechen auf aufgebrachte Spannungen zeigt, wie aus dem Stand der Technik bekannt.
-
4A eine schematische Abbildung ist, welche eine Magnettunnelübergangsstruktur zeigt, die derart programmiert ist, dass diese von einem anti-parallelen Zustand zu einem parallelen Zustand schaltet, wie aus dem Stand der Technik bekannt.
-
4B eine schematische Abbildung ist, welche eine Magnettunnelübergangsstruktur zeigt, die derart programmiert ist, dass diese von einem parallelen Zustand zu einem anti-parallelen Zustand schaltet, wie aus dem Stand der Technik bekannt.
-
5 ein Zeitdiagramm ist, welches eine Anzahl von Signalen in Zusammenhang mit einem magnetischen Direktzugriffsspeicher während Schreibe-„0”- und Schreibe-„1”-Vorgängen darstellt, wie aus dem Stand der Technik bekannt.
-
6A ein schematisches Blockdiagramm eines Speichersystems und dazugehörigen Schaltungen bzw. Schaltkreisen gemäß eines erfinderischen Konzepts ist.
-
6B ein schematisches Blockdiagramm eines intelligenten Speichersystems und dazugehörigen Schaltungen bzw. Schaltkreisen mit einem nichtflüchtigen Speicher(NVM)-Programmspeicher und einer Speicher-Steuervorrichtung gemäß Grundsätzen des erfinderischen Konzepts ist.
-
7 ein schematisches Schaltkreisdiagramm ist, welches Abschnitte eines Speichersystems und einer zugehörigen Schreibe- und Lese-Schaltung gemäß der erfinderischen Konzepte darstellt.
-
8 ein schematisches Schaltkreisdiagramm ist, welches zusätzliche Abschnitte eines Speichersystems und einer zugehörigen Schreibe-Schaltung gemäß der erfinderischen Konzepte darstellt.
-
9A ein Flussdiagramm ist, welches Schritte eines Schreibe-Verfahrens eines Speichersystems gemäß der erfinderischen Konzepte darstellt.
-
9B ein Flussdiagramm ist, welches Schritte eines Schreibe-Verfahrens eines Speichersystems gemäß der erfinderischen Konzepte darstellt.
-
10 ein Flussdiagramm ist, welches Schritte eines Neu-Schreibe-Verfahrens eines Speichersystems gemäß der erfinderischen Konzepte darstellt.
-
11 ein schematisches Blockdiagramm eines herkömmlichen Speichersystems ist.
-
12 ein schematisches Blockdiagramm eines intelligenten Speichersystems ist, welches gemäß der erfinderischen Konzepte aufgebaut ist.
-
13 ein schematisches Blockdiagramm einer Speicher-Steuervorrichtung mit einem intelligenten Speicher und einer logischen Schnittstelle gemäß der erfinderischen Konzepte ist.
-
14A und 14B schematische Blockdiagramme von Ausführungsformen sind, welche ein intelligentes Speichersystem gemäß der erfinderischen Konzepte enthalten.
-
15A und 15B eine Pin-Ausgangs-Tabelle bzw. eine Befehls-Tabelle gemäß der erfinderischen Konzepte sind.
-
15C eine schematische Abbildung ist, welche eine Lese/Schreibe-Vorgangs-Handshaking bzw. Unterstützungs-Schaltung in Zusammenhang mit den Tabellen der 15A und 15B gemäß zusätzlichen Grundsätzen des erfinderischen Konzepts darstellt.
-
16A eine Signaltabelle gemäß der erfinderischen Konzepte ist.
-
16B ein schematisches Zeitdiagramm eines asynchronen Lesevorganges mit Bestätigung in Zusammenhang mit der Tabelle von 16A gemäß des erfinderischen Konzepts ist.
-
17A eine Signaltabelle gemäß der erfinderischen Konzepte ist.
-
17B ein schematisches Zeitdiagramm eines asynchronen Schreibevorganges mit Bestätigung in Zusammenhang mit der Tabelle von 17A gemäß des erfinderischen Konzepts ist.
-
18A eine schematische Block- und Logikabbildung einer Speicher-Steuerschaltung zum Steuern der asynchronen Lese- und Schreibevorgänge ist, welche in den 16A bis 17B dargestellt sind.
-
18B ein Signal-Zeitdiagramm ist, welches die Zeit bzw. Steuerzeit von Signalen für die Steuerschaltung von 18A darstellt.
-
19 eine schematische Block- und Schaltungsabbildung einer skalierbaren hierarchischen Lese/Schreibe-Architektur ist, welche bei den in den 16A bis 17B dargestellten Lese- und Schreibevorgängen verwendet werden kann.
-
20A eine schematische Schaltungsabbildung eines Speicher-Arrays und einer Steuerschaltung gemäß der erfinderischen Konzepte vorsieht.
-
20B eine schematische Schaltungs- und Logikabbildung einer Schreibe-Bestätigungs-Schaltung ist, welche gemäß der erfinderischen Konzepte aufgebaut ist.
-
21 eine schematische Abbildung einer Lese-Nachverfolgungs-Schaltung ist, welche gemäß der erfinderischen Konzepte aufgebaut ist.
-
22 eine schematische Abbildung einer Strom-Spannungs-Wandler- und Verstärkungsschaltung gemäß der erfinderischen Konzepte ist.
-
23A und 23B schematische Blockdiagramme einer SAE-Steuerzeit-Nachverfolgungs- und Steuerschaltung gemäß der erfinderischen Konzepte enthalten.
-
24 eine schematische Abbildung einer Analog-zu-Digital-Wandler-Schaltung gemäß weiteren erfinderischen Konzepten ist.
-
25A eine schematische Block- und Schaltungsabbildung einer Temperatur-Kompensations-Spannungs-Erzeugungsschaltung gemäß weiteren erfinderischen Konzepten ist.
-
25B ein schematisches System-Blockdiagramm mit der Schaltung von 25A ist.
-
26A und 26B schematische Blockdiagramme sind, welche eine intelligente System-In-Package(SiP)-Speichersystemkonfiguration gemäß der erfinderischen Konzepte darstellen.
-
27 ein schematisches Speicher-Blockdiagramm gemäß der erfinderischen Konzepte ist.
-
28A, 28B, 29 bis 30, 31A und 31B schematische Blockdiagramme einer Bitfehlerraten-Steuerlogik des Speicher-Blockdiagramms von 27 gemäß der erfinderischen Konzepte sind.
-
32 ein Flussdiagramm ist, welches Schritte des Durchführens eines eingebauten Schreibe-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt.
-
33 ein Flussdiagramm ist, welches Schritte des Durchführens eines eingebauten Lese-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt.
-
34 ein Flussdiagramm ist, welches Schritte des Durchführens eines eingebauten Bitfehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt.
-
35 ein beispielhaftes Wellenform-Zeitdiagramm eines eingebauten Daten-„1”-Schreibe-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte ist.
-
36 ein beispielhaftes Wellenform-Zeitdiagramm eines eingebauten Daten-„0”-Schreibe-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte ist.
-
37 ein Flussdiagramm ist, welches Schritte des Durchführens eines eingebauten Bitfehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt.
-
38 eine beispielhafte Systemabbildung mit einer eingebauten Bitfehlerraten-Selbsttest-Generator- und Steuerlogik gemäß der erfinderischen Konzepte ist.
-
Detaillierte Beschreibung
-
Im Folgenden wird auf Ausführungsformen des erfinderischen Konzepts detailliert Bezug genommen, deren Beispiele in den beigefügten Abbildungen dargestellt sind. In der nachfolgenden detaillierten Beschreibung sind verschiedene spezifische Details dargelegt, um ein durchgängiges Verständnis des erfinderischen Konzepts zu ermöglichen. Es ist jedoch erkennbar, dass ein Fachmann das erfinderische Konzept ohne diese spezifischen Details ausführen kann. Andererseits wurden bekannte Verfahren, Vorgänge, Komponenten, Schaltungen und Netzwerke nicht detailliert beschrieben, um Aspekte der Ausführungsformen nicht unnötigerweise zu verunklaren.
-
Es ist erkennbar, dass, obwohl die Ausdrücke erster/erste/erstes, zweiter/zweite/zweites, usw. hier verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente durch diese Ausdrücke nicht beschränkt werden sollen. Diese Ausdrücke werden lediglich dazu verwendet, um ein Element von einem anderen Element zu unterscheiden. Beispielsweise könnte eine erste Schaltung als eine zweite Schaltung bezeichnet werden, und in gleicher Art und Weise könnte eine zweite Schaltung als eine erste Schaltung bezeichnet werden, ohne von dem Schutzumfang der erfinderischen Konzepte abzuweichen.
-
Die hier in der Beschreibung des erfinderischen Konzepts verwendete Terminologie ist lediglich zum Zwecke der Beschreibung bestimmter Ausführungsformen und nicht dazu gedacht, das erfinderische Konzept zu beschränken. Wie in der Beschreibung des erfinderischen Konzepts und den beigefügten Ansprüchen verwendet, sind die Singularformen „ein/eine/eines” und „der/die/das” so gedacht, dass diese die Pluralformen auch mit umfassen, solange der Kontext nicht eindeutig anderes anzeigt. Es ist ebenso erkennbar, dass sich der Ausdruck „und/oder”, wie hierin verwendet, auf alle möglichen Kombinationen des einen oder der mehreren dazugehörigen aufgeführten Gegenstände bezieht und umfassen kann. Es ist ferner ersichtlich, dass die Ausdrücke „weist auf” und/oder „aufweisend”, wenn in dieser Spezifikation verwendet, das Vorhandensein von angegebenen Merkmale, Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten spezifizieren, das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Merkmale, Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon jedoch nicht ausschließen. Die Komponenten und Merkmale der Abbildungen sind nicht notwendigerweise maßstabsgetreu dargestellt.
-
Während eines Schreibervorganges kann eine Speicherzelle selbst unter den gleichen stabilen Bedingungen willkürlich verschiedene Schreibe-Zeiten bei unterschiedlichen Ereignissen aufweisen. Solch ein Verhalten kann nicht das Ergebnis von Verschleißerscheinungen sein, welche während des Werkstests herauszufinden wären, sondern können stattdessen das Ergebnis eines probabilistischen Verhaltens der Schreibe-Eigenschaften der Speicherzellen sein. Speicherzellen, welche nicht aus probabilistischen Gründen als fehlerhaft ermittelt werden, können während des Werkstests aus einer Zellen-Gesamtheit entfernt werden und Reparaturvorgänge können im Werk durchgeführt werden. Beispielsweise können bestimmte Defekte durch Ersetzen von fehlerhaften Zellen mit redundanten On-Chip-Zellen während eines Redundanz-Vorganges repariert werden. Wenn die Defekte nicht repariert werden können, können die defekten Chips verschrottet werden. Der verbleibende Speicherzellen-Bestand kann jedoch auch nach dem Testen und der Reparaturvorgänge noch ein probabilistisches Verhalten aufweisen, welches die Zuverlässigkeit des Speicherchips beeinflusst.
-
Nachdem der Werkstest und die Reparatur abgeschlossen wurden, wird der Chip versendet und für die Verwendung durch einen Endverbraucher in einer Vorrichtung integriert. Während der Chip durch den Endverbraucher in herkömmlicher Art und Weise verwendet wird, kann das Speichersystem in der Lage sein, Adresspositionen entsprechend fehlerhafter Zellen, wie solche, welche langsam zu beschreiben sind, durch Festlegen bzw. Aussortieren aus dem verwendbaren Adressbereich zu kennzeichnen und zu reparieren. Dieser Vorgang des Aussortierens von Speicherpositionen von langsam zu beschreibenden Zellen resultiert jedoch in einer abnehmenden Anzahl von verwendbaren Adresspositionen im Zeitverlauf, da sich die aussortierten Zellen voraussichtlich nicht hin zum Normalzustand wiederherstellen und deren Adresspositionen daher dauerhaft umgangen werden. Daher würden fehlerhafte Speichervorgänge, welche aus einem probabilistischen Zellverhalten resultieren, entweder in einem niedrigen Ertrag der Fabrik aufgrund eines Verbrauchs von beschränkten redundanten Elementen oder einer Verringerung des für einen Endverbraucher verwendbaren Adressbereichs im Zeitverlauf resultieren.
-
Insbesondere kann eine Speicherzelle während eines Schreibevorganges unter stabilen Umgebungsbedingungen beliebig unterschiedliche Schreibe-Zeiten bei unterschiedlichen Ereignissen aufweisen. Dieses Verhalten kann daher zu unterschiedlichen Zeitpunkten einen Fehler während des Schreibens von Daten in ein Speichersystem hervorrufen, selbst bei einem Zellenbestand, welcher ansonsten als freifrei ermittelt wird. Eine neue Speicherschaltungs-Lösung ist erforderlich, um dieses Problem des probabilistischen Zellverhaltens zu überwinden.
-
Gemäß bestimmten Ausführungsformen der vorliegenden erfinderischen Grundsätze speichert ein Zielspeicher oder nichtflüchtiger Speicher (NVM) Adresspositionen von Daten, welche aufgrund eines probabilistischen Verhaltens nicht in richtiger Art und Weise geschrieben werden können. Die gespeicherten Ziel-Adresspositionen können dazu verwendet werden, um die Daten nach dem durch den Benutzer eingeleiteten regulären Schreibevorgang neu zu schreiben und zu korrigieren. Alternativ kann ein dem Benutzer verborgenes Schreiben während des durch den Benutzer eingeleiteten regulären Schreibevorgangs durchgeführt werden, wenn die Zelle aufgrund eines probabilistischen Verhaltens nicht in richtiger Art und Weise in der zugewiesenen Zeit beschrieben wird.
-
6A ist ein schematisches Blockdiagramm eines Speichersystems und einer dazugehörigen Schaltung 100 gemäß eines erfinderischen Konzepts. Bezug nehmend auf 6 enthält das Speichersystem 100 ein Speicher-Array 102, einen Zeilen-Dekodierer 110, einen Spalten-Dekodierer 120, eine Adressierschaltung 130, eine Steuerlogik 140, Erfassungs- und Schreibe-Treiber 150, einen verborgenen Lese-Vergleichsabschnitt 160, einen Schreibefehler-Adress-Zielspeicher 170 (Alternativ hierin als Zielspeicher bezeichnet) und einen Daten-Eingangs-Ausgangs-Abschnitt 180.
-
Die Adressierschaltung 130 enthält ferner ein Adresspuffer- und Auffangregister 132 und einen Vordekodierer 134. Der Daten-Eingangs-Ausgangs(I/O)-Abschnitt 180 enthält ferner ein Eingangspuffer-Daten-Eingangs-Auffangregister 182 und einen Daten-Ausgangs-Auffangregister-Ausgangspuffer 184. Es ist anzumerken, dass die Ausdrücke Erfassen und Lesen bzw. Auslesen hierin austauschbar verwendet werden können.
-
Das Speicher-Array 102 enthält viele Spalten, Wortleitungen und Speicherzellen, welche bei den Kreuzungspunkten der Spalten und Wortleitungen angeordnet sind. Jede Speicherzelle ist in der Lage, ein Datenbit zu speichern. Die Speicherzelle kann in Abhängigkeit der Technologie beispielsweise ein DRAM, SRAM, ROM, PROM, EEPROM, FLASH, FeRAM, PCRAM, MRAM, STT-MRAM, RRAM oder ein anderer Typ einer Speicherzelle sein. In beispielhafter jedoch nicht beschränkender Art und Weise verwenden einige der nachstehend beschriebenen Ausführungsformen STT-MRAM-Zellen, wie zuvor beschrieben.
-
Der Zeilen-Dekodierer 110 wählt eine der Wortleitungen aus, welche durch dessen Eingangsbus ermittelt wird, der durch den Vordekodierer 134 angesteuert wird, und steuert diese an. In gleicher Art und Weise wählt der Spalten-Dekodierer 120 eine der Spalten aus, welche durch dessen Eingangsbus ermittelt wird, der ebenso durch den Vordekodierer 134 angesteuert wird, und steuert diese an. Der Vordekodierer 134 steuert die Zeilen- und Spalten-Dekodierer-Eingangs-Bus-Signale im Ansprechen auf die Adress-Bus-Signale von dem Adresspuffer- und Auffangregister 132, und im Ansprechen auf das Adress(ADDR)-Freigabesignal 135 von der Steuerlogik an. Das Adresspuffer- und Auffangregister 132 arbeitet im Ansprechen auf die Signale von dem Adress-Bus A(n:0) und ist in der Lage, die von außerhalb des Speichersystems empfangenen n + 1 Adresssignale entsprechend der Position eines gewünschten Datenbits aufzufangen. Das Adresspuffer- und Auffangregister 132 arbeitet außerdem im Ansprechen auf die Steuerlogik 140.
-
Die Steuerlogik 140 empfängt Signale von außerhalb des Speichersystems auf einem Befehls-Bus CMD(m:0) und arbeitet im Ansprechen auf ein Fehlerkennzeichen 165 von dem verborgenen Lese-Vergleichsabschnitt 160. Die Steuerlogik versendet verschiedene Signale, welche dazu verwendet werden, um den Betrieb des Speichersystems zu steuern. Die Signale enthalten beispielsweise ein Lese-Schreibe(R/W)-Steuersignal 142, welches zu den Erfassungs- und Schreibe-Treibern 150 gesendet wird, ein Daten-Auffangregister-Steuer(DQ-Steuerung)-Signal 144, welches zu dem Daten-I/O 180 gesendet wird, und ein Steuersignal 146, welches zu dem Schreibefehler-Adress-Zielspeicher 170 gesendet wird.
-
Der Schreibefehler-Adress-Zielspeicher 170 sendet und empfängt im Ansprechen auf die Steuerlogik 140 und im Ansprechen auf das Fehlerkennzeichen 165 Adresssignale von dem Adresspuffer- und Auffangregister 132 über einen bidirektionalen Bus 172, wie nachstehend detaillierter beschrieben ist. Der Schreibefehler-Adress-Zielspeicher 170 ist vorzugsweise in der Lage, Adressen von Speicherzellen zu speichern, welche ein probabilistisches Verhalten aufweisen und daher während eines Schreibezyklus des Speichersystems nicht erfolgreich schreiben bzw. beschrieben werden. Die in dem Schreibefehler-Adress-Zielspeicher 170 gespeicherten Adressen stellen gespeicherte Datenbits in einem Speicher dar, welche logisch invertiert werden können, um die ursprünglich in das Speichersystem eingegebenen Daten in richtiger Art und Weise darzustellen.
-
Der Schreibefehler-Adress-Zielspeicher dieser Ausführungsform kann beispielsweise ein nichtflüchtiger Speicher, FIFO, SRAM oder D-Flipflop-Register sein. Die Speicherzellen in dem Schreibefehler-Adress-Zielspeicher 170 können auf dem gleichen Technologietyp und/oder Gestaltung wie die Speicherzellen in dem Speicher-Array 102 basieren oder können von unterschiedlichem Technologietyp und/oder Gestaltung sein. Die Breite des Speichers in dem Schreibefehler-Adress-Zielspeicher 170 kann der Anzahl von Adresssignalen (d. h., n + 1) entsprechen. Die Tiefe des Speichers in dem Schreibefehler-Adress-Zielspeicher 170 kann von der Anzahl von gewünschten oder erforderlichen Fehler-korrigierbaren Bits für jeden Neu-Schreibe-Vorgang abhängen. Falls beispielsweise die probabilistische Schreibe-Fehlerrate für den Durchschnitt des Speicherzellen-Bestandes hoch ist, kann die Tiefe des Schreibefehler-Adress-Zielspeichers derart gewählt sein, dass diese größer ist als in dem Fall, wenn die Fehlerrate klein ist.
-
Das Eingangspuffer-Daten-Eingangs-Auffangregister 182 empfängt und fängt Daten auf einem bidirektionalen Bus DQ(x:0) von außerhalb des Speichersystems auf und überträgt diese Daten über einen separaten bidirektionalen Bus zu dem verborgenen Lese-Vergleichsabschnitt 160, welcher zwischen der Erfassungsschaltung und dem Schreibe-Treiber integriert sein kann, wie nachfolgend detaillierter beschrieben ist. Der Daten-Ausgangs-Auffangregister-Ausgangspuffer 184 empfängt Daten auf einem bidirektionalen Bus 186 von den Erfassungs- und Schreibe-Treibern 150 und fängt diese auf, und überträgt die Daten über den bidirektionalen Bus DQ(x:0) nach außerhalb des Speichersystems.
-
6B ist ein schematisches Blockdiagramm einer Fehlererfassungs- und Adress-Tabellen-Erzeugungsschaltung, die ähnlich zu der in 6A gezeigten ist, welche jedoch weitere Grundsätze des erfinderischen Konzepts enthält. Insbesondere enthält die Fehlererfassungs- und Adress-Tabellen-Erzeugungsschaltung im Gegensatz zu der in 6A gezeigten Schaltung ferner eine externe intelligente Speicher-Steuervorrichtung 190 und einen nichtflüchtigen Speicher(NVM)-Programmspeicher 195. Die intelligente Speicher-Steuervorrichtung 190 kann als intelligenter Speicherprozessor, ein Speicherprozessor oder eine intelligente Steuervorrichtung bezeichnet werden und diese Ausdrücke werden hierin austauschbar verwendet. Der NVM-Programmspeicher 195 ist zusätzlich zu dem Schreibefehler-Zielspeicher 170 der vorhergehenden Ausführungsform vorgesehen, und dieser kann in diesem Fall ein FIFO sein. Der NVM-Programmspeicher 195 kann hierin als nichtflüchtiger Fehler-Erhaltungs-Speicher bezeichnet sein.
-
Bezug nehmend auf 6B kann die intelligente Speicher-Steuervorrichtung 190 eine Speicher-Steuervorrichtung 191, einen Speicher-Konfigurator 192 und einen Leistungs-Manager 193 enthalten. Die intelligente Speicher-Steuervorrichtung 190 kann über einen Speicherbus 194 mit dem intelligenten Speicher 100 und dem NVM-Speicher 195 kommunizieren. Das System kann derart konfiguriert sein, dass dieses Speichersystem-Fehler dynamisch überwacht und Fehlerpositionen sowie Fehlertypen durch Speichern derselben in dem nichtflüchtigen Speicher (NVM) 196 aufzeichnet. Insbesondere können die in dem FIFO 170 vorübergehend gespeicherten Schreibefehler-Adress-Zielinformationen unter der Steuerung der Speicher-Steuervorrichtung 190 über den Speicherbus 194 zu dem NVM-Programmspeicher 195 übertragen werden. Der NVM-Programmspeicher 195 kann einen Fehler-Adressenverweis bzw. -Zeiger 199 von der intelligenten Speicher-Steuervorrichtung 190 empfangen. Der NVM-Programmspeicher 195 kann eine Datenbasis 196 der fehlerhaften Speicheradressen sowie eine Aufstellung 197 der Fehlertypen sammeln. Das System kann anschließend die Fehlerstelle von der NVM-Tabelle wieder abrufen (das heißt, ABRUF 198) und einen geeigneten Reparaturvorgang basierend auf dem Fehlertyp durchführen. Der Speicher-Konfigurator 192 kann dazu verwendet werden, um Adresspositionen mit nicht reparierbaren Fehlern aufzuzeichnen bzw. auszusortieren.
-
Durch die Möglichkeit, dass eine fehlerhafte Speicheradresse zusammen mit dem Datenfehler-Typen 197 in dem Zielspeicher 170 und/oder dem NVM-Programmspeicher 195 gespeichert wird, kann die Speicher-Steuervorrichtung 190 derart konfiguriert sein, dass diese auf den Ziel- oder NVM-Programmspeicher zugreift und einen geeigneten Reparaturvorgang für diese Adressposition basierend auf dem angegebenen Fehlertypen durchführt. Diese Reparaturvorgänge können beispielsweise ein Speicher-Neu-Schreiben, eine Adress-Rekonfiguration, um eine fehlerhafte Speicherstelle zu isolieren, einen Speicher-Reparaturvorgang oder weitere geeignete Reparaturvorgänge enthalten. Speicher-Überwachung, -Reparatur, -Korrektur und -Neu-Zuweisung können daher gemäß Grundsätzen des vorliegenden erfinderischen Konzepts durch eine intelligente Speicher-Steuervorrichtung durchgeführt werden. FCC, Antifuse-Reparatur, Fehler-Maskierung, Lese-Schreibe-Vergleich, Weak-Bit-Refresh, und weitere Fehler-Korrekturtechnologien können in dem intelligenten Speichersystem implementiert sein, um die Datenstabilität zu erhöhen und Fehlerraten zu reduzieren.
-
7 ist ein schematisches Block- und Schaltkreisdiagramm, welches Abschnitte 200 des Speichersystems 100 und dazugehöriger Schreibe- und Lese-Schaltungen gemäß der erfinderischen Konzepte darstellt. Die Schaltung 200 enthält ein Speicher-Array-Mosaik (MAT) 102, eine lokale Spalten-Auswahlschaltung (LCS) 104, Erfassungs- und Schreibe-Treiber 150 und einen verborgenen Lese-Vergleich 160. Obwohl diese Ausführungsform STT-MRAM-Zellen enthält, ist diese nicht darauf beschränkt und kann andere Speichertypen enthalten, wie vorstehend erörtert.
-
Bezug nehmend auf 7 enthält das MAT 102 eine Anzahl von STT-MRAM-Zellen 30, deren Auswahltransistoren mit Wortleitungen (WL0–WLn) gekoppelt sind, welche durch den Zeilen-Dekodierer 110 angesteuert werden, wie vorstehend in Zusammenhang mit den 6A und 6B beschrieben ist. Die STT-MRAM-Zellen sind entsprechend einer der Spalten in dem Speicher-Array 102 ebenso mit einem Paar einer Source-Leitung (SL) 210 und einer Bit-Leitung (BL) 212 gekoppelt. Das MAT 102 enthält eine Mehrzahl von SL- und BL-Paaren, welche durch die LCS 104 ausgewählt werden können. Die LCS 104 enthält eine Auswahlschaltung mit einem Paar von n-Kanal-Auswahltransistoren, welche unter der Steuerung eines Spalten-Auswahlsignals (CS) 215, eines Vorladungs-Signals (PRE) 235, eines oberen Isolations-Signals (ISOT) und eines unteren Isolations-Signals (ISOB) ein ausgewähltes SL- und BL-Paar in dem MAT 102 mit einem Source-Leitungs- und Bit-Leitungs-Paar (beispielsweise MSL 220 und MBL 230) in der LCS 104 koppeln.
-
Es gibt zwei separate Speicher-Arrays 102, welche bei dieser Ausführungsform gezeigt sind, die jeweils oberhalb bzw. unterhalb der LCS 104 angeordnet sind. Die LCS 104 ermittelt, welches der benachbarten MATs 102 durch Freigeben eines der jeweiligen ISOT- oder ISOB-Signale auszuwählen ist. Bei dem in 7 gezeigten Beispiel wird das obere MAT durch Freigeben von ISOT und Deaktivieren von ISOB ausgewählt. Eines der SL- und BL-Paare wird dann durch das CS-Signal ausgewählt (da durch den Spalten-Dekodierer angesteuert), um das ausgewählte SL- und BL-Paar in dem oberen MAT-Array mit den jeweiligen MSL- und MBL-Leitungen zu koppeln. Das SL/BL-Paar und das entsprechende MSL/MBL-Paar sind dann bereit, einen Schreibe- oder Lesevorgang für die ausgewählte Speicherzelle durchzuführen, wenn das Vorladungs-Signal PRE deaktiviert ist.
-
MSL 220 und MBL 230 sind ausgehend von der LCS 104 mit einer Erfassungsschaltung 255 (hierin alternativ als Lese-Block bezeichnet) und einem Schreibe-Treiber 250 (hierin alternativ als Schreibe-Block bezeichnet) gekoppelt. Bei einer alternativen Ausführungsform (nicht gezeigt) kann auf die SL- und MSL-Signale bei der Spalte und der zugehörigen Schaltung verzichtet werden, um eine Einzel-Leitungs-Spalte für Speicherzellen vorzusehen, welche zur Funktion kein ergänzendes Spalten-Paar benötigen, und deren Quellen innerhalb des MAT mit der Masse gekoppelt sind (wie bei einigen ROM, PROM, EPROM, EEPROM und Flash, wie aus dem Stand der Technik allgemein bekannt).
-
Wie in 7 gezeigt, ist der Schreibe-Treiber 250 mit einem Freigabe-Schreibe-Signal (ENW) 260, das durch die Steuerlogik angesteuert wird, und einem Ausgang (Y) von dem verborgenen Lese-Vergleich 160, welcher mit dem Daten(D)-Eingang des Schreibe-Treibers gekoppelt ist, gekoppelt. Während eines Schreibe-Modus-Vorganges steuert der Schreibe-Treiber 250 die MSL- und MBL-Leitungen (und das jeweilige SL- und BL-Leitungspaar) unter der Steuerung des ENW in komplementärer Art und Weise an, wie später detailliert beschrieben ist. Wenn ENW deaktiviert ist, steuert der Schreibe-Treiber 250 die MSL- und MBL-Leitungen nicht an.
-
Die Erfassungsschaltung (d. h., der Lese-Block) 255 wird durch ein Freigabe-Lese(ENR)-Signal 240 freigegeben und enthält einen Transistor M5, welcher mit der Leistungszuführung gekoppelt ist, und einen Transistor M3, welcher mit der Masse gekoppelt ist. M5 und M3 sind mit dem ENR-Signal bzw. dessen Gegenstück gekoppelt. Die ENR- und ENW-Signale werden nicht gleichzeitig freigegeben. Wenn ENR auf „high” bzw. „hoch” freigegeben ist, wird der Transistor M3 abgeschaltet, während ein durch ENR gesteuerter Transistor M4 eingeschaltet wird und das MBL-Signal zu einem Stromspiegel M1 und M2 leitet, und Transistor M5 koppelt MSL 220 mit der Leistungszuführung. Der Strom ID1 fließt in MBL durch Transistor M4 zu Transistor M1 des Stromspiegels.
-
Ein Leseverstärker (SA) 245 ist mit einem Strom-Referenzsignal IREF und einem zweiten Strom ID2, welche durch den zweiten Transistor M2 des Stromspiegels fließt, gekoppelt. Der SA vergleicht die beiden Ströme (ID2 mit IREF) und gibt ein Daten-Ausgangssignal (DR) auf einer Daten-Lese-Leitung 285 aus. Die Daten-Lese-Leitung 285 ist über den bidirektionalen Bus (siehe 6A und 6B) mit dem Daten-Ausgangs-Auffangregister-Ausgangspuffer 184 und mit dem verborgenen Lese-Vergleich 160 gekoppelt. Wenn ENR deaktiviert ist, das heißt, „low”, isoliert M4 MBL 230 von dem Stromspiegel und M3 koppelt den Stromspiegel-Eingang mit einer Grundspannung. Der SA 245 kann ebenso lokal innerhalb des MAT 102 oder mit den globalen Leseverstärkern und globalen Schreibe-Treibern (nicht gezeigt) angeordnet sein.
-
Der verborgene Lese-Vergleich 160 (hierin alternativ als Vergleichsblock bezeichnet), kann ein exklusives Oder-Gate (XNOR) 275, einen Wechselrichter und einen Multiplexer 270 enthalten. Der verborgene Lese-Vergleich wird durch ENW 260 und ein Neu-Schreibe(REW)-Signal 290 gesteuert, welche beide von der Steuerlogik 140 versendet werden (siehe 6A und 6B). Die Eingänge zu dem XNOR-Gate 275 sind das Daten-Lese-Signal (DR) 285 von der Erfassungsschaltung 255 und das Daten-Schreibe-Signal (DW) 280 von dem Eingangspuffer-Daten-Eingangs-Auffangregister 182, im Ansprechen auf ENW 260. Der Multiplexer wählt aus, welcher der beiden Eingänge, ein invertiertes DR-Signal 285 oder das DW-Signal, im Ansprechen auf REW von dessen Ausgang Y zu dem Eingang D des Schreibe-Treibers läuft. Der Vergleichsblock 160 kann alternativ lokal innerhalb des MAT 102 oder mit den globalen Leseverstärken und globalen Schreibe-Treibern angeordnet sein.
-
8 ist eine schematische Schaltungs- und Logikabbildung, welche eine Ausführungsform eines Schreibe-Treibers 300 des Speichersystems und die dazugehörige Verdrahtungsschaltung 100 gemäß der erfinderischen Konzepte darstellt. Die Schreibe-Treiber-Schaltung 300 von 8 kann beispielsweise den Schreibe-Treiber 250 von 7 bereitstellen. Bezug nehmend auf die 7 und 8 kann der Schreibe-Treiber 300 (250) zwei Wechselrichter-Treiber 351 und 352 enthalten, welche SL- und BL-Signale jeweils unter der Steuerung von ENW 260 ansteuern. Die Signalleitung (SL) ist mit MSL gekoppelt, während ein Wechselrichter-Bit-Leitungs-Signal (BL) mit MBL gekoppelt ist. Wenn EN (ENW) freigegeben ist, das heißt, „high”, wird eine invertierte Ausführung von Eingang D von dem verborgenen Lese-Vergleich 160 mit dem BL-Signal gekoppelt, während eine nicht invertierte Ausführung von Eingang D mit dem SL-Signal gekoppelt wird, so dass die BL- und SL-Signale logische Gegenstücke sind. Wenn EN (ENW) deaktiviert ist, das heißt, „low”, sind die Transistoren in beiden Wechselrichter-Treibern 351 und 352 aus, unabhängig des Zustandes von Eingang D, und die Steuerung der MSL- und MBL-Leitungen greift auf die Erfassungsschaltungen zurück.
-
Jedem Schreibezyklus kann ein verborgener Lesezyklus der gleichen Speicherstelle folgen. Die Daten von dem verborgenen Lesevorgang (Daten-Ausgang) können dann mit dem Daten-Bit-Wert, welcher gerade geschrieben wurde, verglichen werden. Falls die Daten übereinstimmen, ist der Schreibezyklus beendet. Falls die Daten nicht übereinstimmen, wird der Ausgang des XNOR „Active-Low” und ein Fehler-Kennzeichen wird erzeugt. Die Speicheradresse für diese Stelle kann dann für einen späteren Neu-Schreibe-Vorgang ”markiert” oder in dem Schreibefehler-Adress-Zielspeicher gespeichert werden.
-
Gemäß eines erfinderischen Aspekts kann das vorstehend beschriebene Speicher-Array ebenso eine Schaltung zum Ausführen der nachfolgenden Vorgänge enthalten: Auffangen bzw. Aufnehmen der Adresse des Daten-Bits in die Adressierschaltung; Auffangen des Daten-Bits in die Daten-Eingangs-Ausgangs-Schaltung; Schreiben des Daten-Bits in das Speicher-Array bei der Adresse des Daten-Bits; Lesen eines Daten-Ausgangs-Bits von dem Speicher-Array bei der Adresse dieses Bits; Vergleichen des Daten-Bits mit dem Daten-Ausgangs-Bit, um zu ermitteln, ob das Daten-Bit gleich dem Daten-Ausgangs-Bit ist; Schreiben der Adresse des Daten-Bits in den Schreibefehler-Adress-Zielspeicher, falls der Vergleichsschritt ermittelt, dass das Daten-Bit nicht gleich dem Daten-Ausgangs-Bit ist; und nicht Schreiben des Daten-Bits in den Schreibefehler-Adress-Zielspeicher, falls der Vergleichsschritt ermittelt, dass das Daten-Bit gleich dem Daten-Ausgangs-Bit ist.
-
9A ist ein Flussdiagramm 400, welches verschiedene Schritte eines Schreibevorganges eines Speichersystems darstellt. Bezug nehmend auf die 7 bis 9A werden die Daten (hierin alternativ als erste Daten bezeichnet) nach dem Start eines Schreibevorganges 410 während eines Schrittes 420 zum Auffangen von Adresse und Daten in dem Eingangspuffer-Daten-Eingangs-Auffangregister 182 aufgefangen und durch den Multiplexer 270 in dem verborgenen Lese-Vergleichsabschnitt 160 zu dem D-Eingang des Schreibe-Treibers 250 geleitet. Ebenso wird während des Schrittes 420 zum Auffangen von Adresse und Daten die Adresse des Daten-Bits in dem Adresspuffer- und -Auffangregister 132 aufgefangen und durch den Vordekodierer 134 geleitet, welcher die Eingangsbusse für die Zeilen- und Spalten-Dekodierer ansteuert, welche wiederum eine Wortleitung und Spalte in dem Speicher-Array auswählen. Der Schreibe-Daten-Schritt 430 schreibt die Daten durch Freigegeben von ENW bei der ausgewählten Adresse in dem Speicher-Array in die Speicherzelle.
-
Nach dem Schreibe-Daten-Schritt 430 wird bei der gleichen Adressposition ein verborgener Lese-Daten-Schritt 440 ausgeführt, welcher ein Daten-Ausgangs-Bit zu dem verborgenen Lese-Vergleichsabschnitt 160 leitet. Das Lesen wird als „verborgen” betrachtet, da dieses als Teil des Schreibevorganges automatisch durchgeführt wird, ohne das Speichersystem über den CMD-Bus informieren zu müssen. Nachfolgend wird während eines Vergleichsschritts 450 das Daten-Bit von dem Eingangspuffer-Daten-Eingangs-Auffangregister 182 (d. h., das „wahre” oder erste Daten-Bit) mit dem Daten-Ausgangs-Bit von dem SA 245 (d. h., dem in den Speicher geschriebenen Daten-Bit, welches erfolgreich oder nicht erfolgreich geschrieben wurde und hierin alternativ als zweite Daten bezeichnet ist) verglichen, um zu ermitteln, ob das erste Daten-Bit gleich dem zweiten Daten-Bit ist. Dieser logische Vergleich wird durch das exklusive Disjunction- oder XNOR-Gate 275 in dem verborgenen Lese-Vergleichsabschnitt 160 durchgeführt. Falls das erste Daten-Bit gleich dem zweiten Daten-Bit ist, war der Schreibevorgang erfolgreich und der nächste Vorgang 470 kann stattfinden. Falls jedoch das erste Daten-Bit nicht gleich dem zweiten Daten-Bit ist, stellt das exklusive Disjunction- oder XNOR-Gate 275 ein Fehler-Kennzeichen (ERR) 165 ein, welches der Steuervorrichtung 140 signalisiert, die „markierte” Adresse von dem Adresspuffer- und -Auffangregister über den bidirektionalen Bus zu dem Schreibefehler-Adress-Zielspeicher 170 zu führen, wo die Adresse geschrieben (während Schritt 460) und gespeichert wird, bis ein Neu-Schreibevorgang durchgeführt werden kann, wie nachstehend weiter beschrieben ist. Der Zielspeicher-Speichervorgang 460 ist ein transparenter Vorgang und kann bei dem Beginn des nachfolgenden Speicherzyklus auf einfache Art und Weise ausgeführt werden, so dass dieser den nachfolgenden Speichervorgang 470 nicht verzögert.
-
Bei einem weiteren Aspekt des erfinderischen Konzepts kann der gesamte Schreibezyklus ausgedehnt werden, um einen zusätzlichen verborgenen Schreibevorgang zu enthalten. In diesem Fall kann der Schreibe-Korrekturvorgang (Neu-Schreiben) für den Benutzer erkennbar sein. Die Schreibe-Zeit-Spezifikation kann derart ausgestaltet sein, dass diese die erkennbare Neu-Schreibe-Zeit enthält. Daher kann die Schreibezyklus-Zeit gleich sein, egal ob ein Neu-Schreiben erforderlich ist.
-
9B ist ein Flussdiagramm 500, welches verschiedene Schritte eines Schreibe-Verfahrens eines Speichersystems gemäß der erfinderischen Konzepte darstellt. Die Schritte 510 bis 550 von 9B sind die gleichen wie die Schritte 410 bis 450 in 9A und sind daher nicht nochmals beschrieben. Bei Schritt 560 wird jedoch der Daten-Ausgang bei der aktuellen Adressposition in dem Speicher-Array zu dem SA-Ausgang DR 285 geführt. Nachfolgend wird durch den Wechselrichter in dem verborgenen Lese-Vergleichsabschnitt 160 ein Invertier-Schritt 560 der gelesenen Daten durchgeführt, um das Daten-Ausgangs-Bit zu invertieren. Das invertierte Daten-Ausgangs-Bit wird im Ansprechen auf das REW-Signal 290 von der Steuerlogik anschließend über den Multiplexer 270 zu dem D-Eingang des Schreibe-Treibers 250 gerichtet. Anschließend wird ein Schreibe-Schritt 570 der invertierten Daten durchgeführt, um das nun korrigierte Daten-Ausgangs-Bit in die aktuelle Adresse in dem Speicher-Array zu schreiben. Anschließend kann der nächste Vorgang 580 durchgeführt werden.
-
Im Folgenden wird ein Neu-Schreibevorgang detaillierter beschrieben. In Abhängigkeit der Speichersystem-Spezifikation kann die markierte Adresse von dem fehlerhaften Schreibevorgang dazu verwendet werden, um die bei der markierten Adresse befindliche Speicherzelle zu einer geeigneten Zeit, wenn der Prozessor oder die Systemperipherie nicht auf den Speicher zugreift, neu zu beschreiben. Während des Neu-Schreibezyklus können die Daten in der markierten Adresse auf einfache Art und Weise invertiert werden. Um die Daten zu invertieren, muss das Speicherbit zunächst unter Verwendung der verborgenen Lese-Eigenschaft gelesen werden und anschließend können die umgekehrten Daten in die Zelle geschrieben werden. Daher kann der ursprüngliche Schreibefehler, welcher durch das vorhergehende lange probabilistische Schreibe-Verhalten der Zelle hervorgerufen wurde, korrigiert werden.
-
Anstatt auf die Durchführung des Neu-Schreibe-Vorganges zu einem späteren Zeitpunkt zu warten, können die Daten unmittelbar in einem unterstützenden System korrigiert werden, bei welchem der Speicher ein „Stop-Zugriff”-Signal zu dem Prozessor oder Mastersystem sendet, während der Neu-Schreibezyklus läuft. Anschließend kann ein „Neu-Schreibe-Abschluss”-Signal zu dem Mastersystem gesendet werden, sobald der Neu-Schreibe-Vorgang abgeschlossen ist. Zusätzliche unterstützende Systeme zum Sicherstellen eines geeigneten Schreibevorgangs sind nachstehend detaillierter erörtert.
-
Gemäß einer noch weiteren Ausführungsform kann das vorstehend beschriebene Speicher-Array außerdem eine Schaltung zum Ausführen der nachfolgenden Vorgänge enthalten: Laden der Adresse des Daten-Bits von dem Schreibefehler-Adress-Zielspeicher in die Adressierschaltung; Lesen eines Daten-Ausgangs-Bits in dem Speicher-Array bei der Adresse des Daten-Bits; Invertieren des Daten-Ausgangs-Bits in der verborgenen Lese-Vergleichsschaltung; und Schreiben des invertierten Daten-Ausgangs-Bits in das Speicher-Array bei der Adresse des Daten-Bits.
-
10 ist ein Flussdiagramm 600, welches verschiedene Schritte eines Neu-Schreibe-Verfahrens eines Speichersystems gemäß der erfinderischen Konzepte darstellt. Bezug nehmend auf 10 wird nach dem Start eines Neu-Schreibe-Vorganges 610 während eines Schrittes 620 zum Laden der Fehleradresse von dem Schreibe-Adress-Zielspeicher zu der Adressierschaltung die „markierte” Adresse von dem Schreibefehler-Adress-Zielspeicher 170 über den bidirektionalen Bus in das Adresspuffer- und Auffangregister 132 geladen. Anschließend werden die Daten bei der zuvor „markierten” Adresse während eines Schrittes 630 zum Lesen der Daten ausgelesen. Der Daten-Ausgang bei der „markierten” Adressposition in dem Speicher-Array wird zu dem SA-Ausgang DR 285 geleitet. Nachfolgend wird durch den Wechselrichter in dem verborgenen Lese-Vergleich 160 ein Schritt 640 zum Invertieren der Daten durchgeführt, um das Daten-Ausgangs-Bit zu invertieren. Das invertierte Daten-Ausgangs-Bit wird anschließend im Ansprechen auf das REW-Signal von der Steuerlogik über den Multiplexer 270 zu dem D-Eingang des Schreibe-Treibers 250 geführt. Anschließend wird ein Schritt 650 zum Schreiben der invertierten Daten durchgeführt, um das nun korrigierte invertierte Daten-Ausgangs-Bit in die zuvor „markierte” Adresse in dem Speicher-Array zu schreiben. Anschließend kann bei Schritt 660 der nächste Speichervorgang durchgeführt werden. Der Speicherplatz, welcher durch die zuvor in dem Schreibefehler-Adress-Zielspeicher gespeicherte „markierte” Adresse in Anspruch genommen wurde, kann nun für neue „markierte” Adressen bei nachfolgenden Schreibezyklen verfügbar gemacht werden.
-
11 ist ein schematisches Blockdiagramm eines herkömmlichen Speichersystems 700. Bezug nehmend auf 11 ist das herkömmliche Speichersystem 700 derart vorgesehen, dass dieses die Spezifikation 702 und den Hardware/Software-Aufteilungs-Abschnitt 704 verwendet, welcher eine Softwarefunktionalität 706 zu dem Prozessorkern 730 und eine Hardwarefunktionalität 708 zu dem synthetisierten Hardwareabschnitt 712 verteilt. Das Speichersystem 700 kann aus einer Vorrichtung mit einem kleinen eingebetteten Speicher, wie einem eingebetteten Anweisungs-Speicher 705 und einem Daten-Speicher 710, und einem großen Speicher, welcher als eine separate selbstständige Speichervorrichtung 715, wie ein separater RAM 740 oder ein Flash-Speicherchip 745 oder ein Chip-Paket, vorgesehen ist, bestehen. Der eingebettete Speicher kann sowohl den Anweisungs-Speicher 705 zum Vorsehen von Programmanweisungen zu dem Prozessor, und den Daten-Speicher 710 (welcher sowohl einen Daten-Cache 720 als auch einen Zwischenregister-Speicher 725 enthält) zum Speichern von kleinen Datenmengen, welche zwischen der Vorrichtung und dem selbstständigen Speicher 715 übertragen werden, oder welche für Berechnungen oder andere Vorgänge, welche durch den Prozessorkern 730 durchgeführt werden, verwendet werden, enthalten.
-
Herkömmliche Speichersysteme bedienten sich üblicherweise Fehler-Korrekturvorgänge, welche durch ein Werk durchgeführt wurden, um Speicherfehler vor der Implementierung in einer Endverbraucher-Vorrichtung zu erfassen und zu reparieren. Solche Systeme sind daher für die Verwendung mit Speichern, welche probabilistische Eigenschaften aufweisen (beispielsweise PCRAM, MRAM und PRAM), nicht gut geeignet, was zu höheren Fehlerraten und langsameren Lese/Schreibe-Zeiten führen kann.
-
Gemäß Merkmalen und Grundsätzen der vorliegenden erfinderischen Konzepte ermöglicht es ein intelligentes Speichersystem, dass Speicher mit hohen Fehlerraten und langsamen Lese/Schreibe-Zeiten relativ zu einem logischen Prozessor zuverlässig und gleichmäßig arbeiten. 12 ist ein schematisches Blockdiagramm einer Ausführungsform eines intelligenten Speichersystems 800, welches gemäß Grundsätzen des vorliegenden erfinderischen Konzepts aufgebaut ist. Bezug nehmend auf 12 kann das intelligente Speichersystem 800 einen intelligenten Speicher 802 enthalten, welcher derart konfiguriert sein kann, dass dieser eine Unterstützungs-Schnittstelle 805 mit einem Ultra-Wide-Eingang-Ausgang (I/O) zwischen dem Speicher 815 und einer intelligenten Speicher-Steuervorrichtung 820 vorsieht, um erfolgreiche Lese- und Schreibevorgänge sicherzustellen. Insbesondere kann ein gemeinsamer asynchroner Speicherbus 810 mit einer Bestätigungs-Signalisierung vorgesehen sein, um Erfolge von Schreibe- und Lesevorgängen zu garantieren. Der gemeinsame asynchrone Speicherbus implementiert vorzugsweise einen unterstützenden Vorgang während der Lese- und Schreibevorgänge, um sicherzustellen, dass die gewünschten Daten erfolgreich aus dem Hauptsystem-Speicher 815 ausgelesen oder in diesen geschrieben wurden. Zusätzlich kann die Unterstützungs-Speicher-Schnittstelle 805 helfen, Engstellen zu vermeiden und Umgehungsmöglichkeiten vorzusehen. Obwohl hierin als Entwicklungsspeicher (STT-MRAM, RRAM) bezeichnet, kann der Hauptsystem-Speicher 815 irgendein Speichertyp, beispielsweise einschließlich DRAM, SRAM, ROM, PROM, EEPROM, FLASH, FeRAM, PCRAM, RRAM, MRAM, STT-MRAM, RRAM oder ein zukünftiger Speichertyp sein.
-
Das intelligente Speichersystem 800 kann ferner verschiedene zusätzliche Fehlerraten-Reduktions-Schemata bereitstellen, einschließlich beispielsweise dem Ermöglichen, dass nichtflüchtige Speicherbits oder Sektoren mit schlechter Speicherung durch Markieren derselben und Durchführen von gelegentlichen Aktualisierungsvorgängen, um die darin gespeicherten Daten aufrechtzuerhalten, verwendet werden. Fehler-Korrektur-Code (ECC), Signalverarbeitung und programmierbare Reparaturvorgänge können außerdem vorgesehen sein, um Speicherfehler zu reduzieren und zu korrigieren. Die intelligente Speicher-Steuervorrichtung 820 kann Neu-Konfigurations- und Optimierungsvorgänge durchführen, um eine geeignete Speicher-Aufrechterhaltung und Lese/Schreibevorgänge sicherzustellen. Zwischen der intelligenten Steuervorrichtung 820 und dem Systembus 810 kann eine Hochgeschwindigkeits-Schnittstelle 825 enthalten sein, um die Geschwindigkeit der logischen Vorgänge aufeinander abzustimmen.
-
Der intelligente Speicher 802 kann beispielsweise in einer Vorrichtung mit irgendeinem oder mehreren von verschiedenen logischen Prozessoren oder anderen Vorrichtungen implementiert sein oder in Zusammenhang damit stehen. Bei dieser Ausführungsform ist die Vorrichtungslogik 830 derart gezeigt, dass diese eine Anwendungslogik 835, Prozessoren 840, eine interne Speicher-Plus-Steuervorrichtung 845 und analoge Vorrichtungsfunktionen 850 besitzt. Der intelligente Speicher 802 kann derart konfiguriert sein, dass dieser über den Systembus 810 mit irgendeiner oder mehreren der logischen Komponenten kommuniziert. Ausführungsformen, welche die vorliegenden erfinderischen Konzepte enthalten, können ferner derart konfiguriert sein, dass diese eine Kompatibilität mit verschiedenen Systemen ermöglichen. Beispielsweise können neben einer programmierbaren und Speichertyp-unabhängigen I/O-Schnittstelle konfigurierbare Adress-Schemata verwendet werden, welche verschiedene Prozessoren und Peripheriegeräte unterstützen.
-
13 ist ein schematisches Blockdiagramm eines Speicher-Steuervorrichtung-Speichersystems 900 mit einem intelligenten Speicher und einer logischen Schnittstelle gemäß Grundsätzen des vorliegenden erfinderischen Konzepts. Bezug nehmend auf 13 kann eine intelligente Speicher-Steuervorrichtung 190 eine Speicher-Steuervorrichtung 191 enthalten, welche die Kommunikation zwischen der Benutzervorrichtung und dem Speicher überwacht und die weiteren Vorgänge der intelligenten Steuervorrichtung steuert. Ein Speicher-Konfigurator 192 kann ebenso vorgesehen sein, um den verwendbaren Adressbereich basierend auf Fehlern während der Verwendung des Feldes neu zu konfigurieren und weitere Speicher-Konfigurationsvorgänge vorzusehen. Ferner kann ein Leistungs-Manager 193 enthalten sein, um Temperaturschwankungen und weitere Leistungsvariablen zu kompensieren, um stabile Zuführspannungen für die Speichervorgänge bereitzustellen.
-
Das System 900 kann ferner derart konfiguriert sein, dass dieses Speichersystem-Fehler dynamisch überwacht und Fehlerstellen durch Speichern derselben in einer nichtflüchtigen Speicher(NVM)-Speicher-Steuervorrichtung 195 aufzeichnet. Das System kann anschließend die Fehlerstellen von der NVM-Tabelle 196 wieder aufrufen und basierend auf dem Fehlertyp 197 einen geeigneten Reparaturvorgang durchführen. Diese Reparaturen können beispielsweise das Neu-Schreiben der Daten, das Reparieren des Speichers, das Isolieren der fehlerhaften Speicherstelle oder andere geeignete Reparaturen enthalten. Die intelligente Speicher-Steuervorrichtung 190 kann beispielsweise Speicher-Überwachungs- und Regenerations-Systemeigenschaften in Abschnitt 905 enthalten oder anderweitig damit in Zusammenhang stehen, um Speicherprobleme festzustellen und in Abhängigkeit des erfassten Typs der Fehler geeignete Reparaturen vorzusehen. Der NVM-Programmspeicher 195 kann enthalten sein, um Adresspositionen von fehlerhaften Speicherzellen zusätzlich zu den Typen der erfassten Fehler zu speichern. Bei dieser Ausführungsform kann der NVM-Programmspeicher 195 verwendet werden, um Informationen hinsichtlich fehlerhafter Adresspositionen 196 zusätzlich zu dem Typ des Fehlers 197 zu speichern. Der NVM-Programmspeicher 195 kann ferner dazu verwendet werden, um Adressen von fehlerhaften Speicherstellen neue Speicherstellen zuzuweisen. Die intelligente Speicher-Steuervorrichtung 190 des intelligenten Speichersystems 900 kann mit dem NVM-Programmspeicher 195 in Verbindung stehen, um Speicher-Tests durchzuführen, Speicheradressen neu zuzuweisen, Speicher-Aktualisierungen durchzuführen oder andere geeignete Aktionen basierend auf der in dem NVM-Programmspeicher 195 gespeicherten Fehlerinformationen durchzuführen.
-
Weitere Grundsätze können die intelligente Speicher-Steuervorrichtung 190 mit der Fähigkeit vorsehen, dem Vorrichtungsprozessor zu ermöglichen, sich wiederholende Berechnungen oder andere Aufgaben auf das intelligente Speichersystem 900 zu übertragen. Beispielsweise kann ein ARM, MIPs oder eine andere gewünschte Prozessorkombination 910 (beispielsweise 32-Bit RISC-Prozessor) in der intelligenten Steuervorrichtung 190 des intelligenten Speichersystems 900 enthalten sein oder anderweitig damit in Zusammenhang stehen, um verschiedene Verarbeitungsaufgaben durchzuführen, um Vorrichtungsressourcen freizugeben.
-
Insbesondere kann außerdem ein ARM, MIPs oder ein anderer RISC-Prozessor oder andere Typen von CPU 910 in dem intelligenten Speichersystem 900, wie in der intelligenten Speicher-Steuervorrichtung 190, enthalten sein, um einfache und/oder komplexe Berechnungen der Daten vor dem Speichern derselben in dem Hauptsystem-Speicher über die Speicher-Schnittstelle 194 durchzuführen. Dies kann durch Ermöglichen, dass der Vorrichtungsprozessor verschiedene Aufgaben auf den/die Speicher-Steuervorrichtungs-Prozessor(en) 910 überträgt, einen Mehrwert für das intelligente Speichersystem bereitstellen und dadurch Vorrichtungsressourcen für andere Vorgänge freigeben. Ein intelligenter Speicher-Systembus 935 kann die verschiedenen Komponenten des intelligenten Speichersystems, wie die intelligente Speicher-Steuervorrichtung 190, den Off-Load bzw. Übertragungs-Prozessor 910, den Speicher-Überwachungs- und -Wiederherstellungs-Abschnitt 905, den NVM-Programmspeicher 195, die Speicher-Schnittstelle 194 und/oder den FIFO/SRAM-Abschnitt 915 miteinander verbinden.
-
Die intelligente Speicher-Steuervorrichtung 190 kann ferner einen FIFO und/oder SRAM-Speicher Abschnitt 915 enthalten oder anderweitig damit in Zusammenhang stehen, um Speicherübertragungen zu der intelligenten Speicher-Steuervorrichtung 190 von der Vorrichtung und/oder logischen Komponenten 920 zu puffern. Eine ASIC(logisch und/oder analog)-Schnittstelle 920 kann enthalten sein, um zwischen der intelligenten Speicher-Steuervorrichtung 190 und den ASIC(logisch und/oder analog)-Komponenten 925 eine Schnittstelle vorzusehen. Der Speicherbus und/oder Schnittstelle 194 kann die Verbindung zwischen der intelligenten Steuervorrichtung 190 und dem Speicher-Array und/oder Speicherelementen 930 vorsehen.
-
Die 14A und 14B stellen schematische Blockdiagramme von Vorrichtungen bereit, welche ein intelligentes Speichersystem gemäß des erfinderischen Konzepts enthalten. Bezug nehmend auf 14A kann ein intelligentes Speichersystem 1000 gemäß einer Ausführungsform, welche Grundsätze des vorliegenden erfinderischen Konzepts enthält, einen Speicher 1002 mit einem oder mehreren Speicherchips (beispielsweise 1005, 1015 und/oder 1010), welche unter Verwendung von verschiedenen Speicherprozessen hergestellt werden, und eine intelligente Speicher-Steuervorrichtung 190 mit einem oder mehreren Speicher-Prozessorchips (nicht gezeigt), welche unter Verwendung von verschiedenen logischen Prozessen hergestellt werden, enthalten. Die intelligente Speicher-Steuervorrichtung 190 kann beispielsweise einen gemeinsamen Adress-, Daten- und/oder Steuer-Speicherbus 1020 enthalten oder anderweitig damit in Zusammenhang stehen, welcher derart konfiguriert ist, dass dieser zwischen dem Speicher-Array 1002 und der intelligenten Speicher-Steuervorrichtung 190 eine asynchrone Unterstützungs-Schnittstelle vorsieht. Die intelligente Speicher-Steuervorrichtung 190 kann außerdem einen Mechanismus zum Auslagern von Schreibefehler-Zielspeicher-Daten von dem Speicherchip 1002 zur Analyse, und einen Mechanismus zum Speichern von Bit-Adress-Informationen einer schlechter Speicherung in einer Schlecht-Speicher-Adress-Tabelle (PRAT) für ein zukünftiges Aktualisieren, wie vorstehend beschrieben, enthalten. Außerdem kann eine Programmlogik für eine Speicher-Adress-Rekonfiguration, sowie eine Leistungs-Management-Logik, wie ebenso vorstehend beschrieben, enthalten sein.
-
Das Speichersystem kann einen gemeinsamen Adress-, Daten- und/oder Steuer-Speicherbus 1020 enthalten, welcher zwischen dem Speicher-Array 1002 und der intelligenten Speicher-Steuervorrichtung 190 eine asynchrone Unterstützungs-Schnittstelle vorsieht. Außerdem kann in dem Speicher neben einer Design-For-Test(DFT)-Schaltung 1006 zum Durchführen eines schnellen, parallelen Speichertests eine Schreibefehler-Ziel- und -Schreibe/Verifikations-Schaltung 1003 enthalten sein. Außerdem kann eine Test-Schnittstelle 1008 für einen SiP-Speichertest enthalten sein. Steuerregister und eine Multiplex-Schaltung sind für eine Adress-Rekonfiguration ebenso vorzugsweise vorgesehen, und eine separate Leistungsebenen- und -Takt-Schaltung können für ein Leistungs-Management enthalten sein, wie vorstehend beschrieben. Die erfinderischen Grundsätze können durch Reduzieren von I/O-Laden unter Verwendung von SiP-Lösungen, durch Vorsehen von taktlosen Speichervorgängen und durch Abschalten von ungenutzten Speicherabschnitten ebenso einen reduzierten Leistungsverbrauch ermöglichen. Eine Spannungssteuerung, Temperaturkompensation und eine asynchrone Zeitschaltung können ebenso helfen, Leistungsverbrauch zu reduzieren und einen wirtschaftlicheren Betrieb vorzusehen.
-
Insbesondere kann, wie in 14A gezeigt ist, der intelligente Speicherprozessor als eine Schnittstelle zwischen verschiedenen Typen von Speicherlösungen 1004 (beispielsweise DRAM 1005, STT-RAM 1015 und MLC NAND-Speicher 1010), welche jeweils unterschiedliche Vorteile und Fähigkeiten besitzen, und den verschiedenen Vorrichtungslogik- und -Verarbeitungskomponenten (beispielsweise ASIC-Multi-Kern-Prozessor 1030, Field-Programmable-Gate-Array (FPGA) 1035, Analog-RF-Leistungsmanagement- und Audio/Video-Prozessoren 1040 und verschiedene Eingangs/Ausgangs(I/O)-Vorrichtungen 1045) vorgesehen sein. Die intelligente Speicher-Steuervorrichtung 190 kommuniziert mit den verschiedenen Speichervorrichtungen über den Speicherbus 1020, welcher vorzugsweise eine Unterstützungsschaltung 1012 vorsieht, um Lese- und Schreibe-Erfolge sicherzustellen. Die intelligente Speicher-Steuervorrichtung 190 kommuniziert mit den verschiedenen Vorrichtungslogik- und Verarbeitungskomponenten 1004 über den Systembus 1025. Die intelligente Speicher-Steuervorrichtung kann Komponenten, wie diese, welche vorstehend mit Bezug auf die 12 und 13 dargestellt und beschrieben sind, enthalten, welche eine weitere Fehlerreduktion und Korrektureigenschaften und einen weiteren Mehrwert des Systems vorsehen.
-
Bezug nehmend auf 14B kann ein Computersystem 1105 mit einem Daten-Speichersystem 1110, wie einer Festplatte oder einer anderen Hoch-Kapazitäts-Speichervorrichtung (SSD/HDD) über einen SATA, SCSI, USB oder eine andere Schnittstelle 1112 kommunizieren. Gemäß Grundsätzen des vorliegenden erfinderischen Konzepts kann das Computersystem 1105 ferner derart konfiguriert sein, dass dieses über einen Hochgeschwindigkeits-Speicherbus 1125 mit einem Arbeitsspeicher 1120 (beispielsweise ein intelligentes Speichersystem), welches beispielsweise in einer SiP vorgesehen ist, kommuniziert. Innerhalb des Arbeitsspeichers 1120 kann die intelligente Speicher-Steuervorrichtung 190 (hier eine STT-MRAM-Steuervorrichtung) derart konfiguriert sein, dass diese über eine asynchrone Unterstützungsschnittstelle 1130 mit dem Speicher 1115 (nichtflüchtiger Arbeitsspeicher, beispielsweise STT-MRAM, RRAM) kommuniziert. Die Unterstützungsschnittstelle 1130 sieht vorzugsweise eine Lese/Schreibe-Bestätigung sowie eine Schreibefehler-Kennzeichnung- und Neu-Schreibe-Eigenschaften vor. Ein Konstant-Spannungs- und/oder Strom-Steuersystem kann außerdem zusätzlich zu den schnellen Fehlerraten-Untersuchungseigenschaften vorgesehen sein.
-
Die 15A und 15B sind eine Pin-Ausgangs-Tabelle bzw. eine Befehlstabelle gemäß erfinderischen Konzepten. 15C ist eine schematische Abbildung, welche eine Lese/Schreibe-Vorgangs-Unterstützungsschaltung in Zusammenhang mit den Tabellen der 15A und 15B gemäß zusätzlichen Grundsätzen des erfinderischen Konzepts darstellt. 16A ist eine Signaltabelle gemäß des erfinderischen Konzepts. 16B ist ein schematisches Zeitdiagramm eines asynchronen Lesevorganges mit Bestätigung in Zusammenhang mit der Tabelle von 16A gemäß der erfinderischen Konzepte. 17A ist eine Signaltabelle gemäß der erfinderischen Konzepte. 17B ist ein schematisches Zeitdiagramm eines asynchronen Schreibevorgangs mit Bestätigung in Zusammenhang mit der Tabelle von 17A gemäß der erfinderischen Konzepte.
-
Bezug nehmend auf die 15A bis 17B enthält die intelligente Speicher-Steuervorrichtung vorzugsweise eine Unterstützungsschnittstelle mit Bestätigung, um geeignete Lese- und/oder Schreibe-Vorgänge sicherzustellen, wodurch eine Reduktion der Speicherfehler vorgesehen wird. Insbesondere Bezug nehmend auf die 15A bis 15C und 16A bis 16B wird während eines asynchronen Lesevorgangs mit Unterstützung eine Adresse (beispielsweise A0–Aj) auf die Adressleitung 1505 gelegt und ein Lese-Signal (RD) 1510 wird zu der Steuerlogik 140 gesendet, um den Lesevorgang zu ermöglichen. Während eine gültige Adresse (beispielsweise gültige Adresse 1605) auf der Adressleitung 1505 auftritt, geht ein Bestätigungssignal (ACK) 1515 von einem hohen zu einem niedrigen Zustand, bzw. von „high” zu „low” über. Sobald die Daten von der angegebenen Adresseposition erfolgreich ausgelesen sind, geht das Bestätigungssignal (ACK) wieder von dem niedrigen zu dem hohen Zustand über, um anzugeben, dass die Daten gültig sind. Die Daten werden anschließend durch die Daten-I/O 1520 ausgegeben.
-
Bezug nehmend auf die 15A bis 15C und 17A bis 17B werden während eines asynchronen Schreibevorganges mit Unterstützung Daten, welche in den Speicher geschrieben werden sollen, auf die Daten-I/O-Leitung 1520 gegeben und eine Adresse wird auf die Adressleitung 1505 gegeben. Ein Schreibe-Signal (WR) 1525 wird ausgesendet, um den Schreibevorgang in die Speicherzelle bei der auf der Adressleitung 1505 angegebenen Adressposition einzuleiten. Ein Bestätigungssignal (ACK) 1515 fällt von einem hohen auf einen niedrigen Zustand bzw. von „high” zu „low”, sobald der Schreibevorgang beginnt. Sobald der Schreibevorgang abgeschlossen ist und die Daten dahingehend geprüft sind, dass diese richtig in die ausgewählte Speicherzelle geschrieben wurden, geht das Bestätigungssignal (ACK) 1515 wieder von dem niedrigen zu dem hohen Zustand über, um anzugeben, dass der Schreibevorgang erfolgreich war.
-
Der I/O-Lese/Schreibe-Evaluierungsabschnitt 1530 kann ein RD- und/oder WR-Signal von der Steuerlogik 140 empfangen und das Lese- oder Schreibe-Signal verarbeiten. Der Abschnitt 1530 kann außerdem basierend auf der Verarbeitung ein Rückführungssignal 1540 zu der Steuerlogik 140 senden. Der DQ-Eingangs/Ausgangs-Abschnitt 1520 kann über das Steuersignal 1545 durch die Steuerlogik 140 gesteuert werden. Durch das Vorsehen von Lese- und Schreibe-Vorgängen mit Bestätigung können Speicher, wie solche, die probabilistische Tendenzen oder langsame Lese/Schreibe-Zeiten aufweisen, mit niedrigeren Fehlerraten implementiert werden.
-
18A ist ein schematisches Block- und Logikdiagramm einer Speicher-Steuerschaltung, welche zum Steuern der Lese- und Schreibe-Vorgänge mit Bestätigung, wie vorstehend mit Bezug auf die 15A bis 17B beschrieben, verwendet werden können. 18B ist ein Zeitdiagramm, welches Signale, die durch die Schaltung von 18A verwendet und erzeugt werden, darstellt. Bezug nehmend auf die 18A und 18B wird im Ansprechen auf Benutzeranweisungen ein Lese(RD)-Signal 1510 und/oder Schreibe(WR)-Signal 1525 durch die Vorrichtung erzeugt.
-
Wenn entweder das RD- oder das WR-Signal aktiviert ist, erzeugt die Schaltung einen Signalimpuls PRW, welcher wiederum das Bestätigungs(ACK)-Signal 1515 durch hervorrufen, dass dieses von einem hohen auf einen niedrigen Zustand abfällt, auslöst.
-
Insbesondere durchläuft ein aktives Schreibe-Signal WR 1525 einen Eingangspuffer (IB), um das Schreibe-Freigabesignal (WEN) bereitzustellen. In ähnlicher Art und Weise durchläuft ein aktives Lese-Signal (RD) 1510 einen Eingangspuffer (IB), um das Lese-Freigabesignal (REN) bereitzustellen. Wenn entweder das Freigabesignal WEN oder REN durch das ODER-Gate 1805 läuft, wird dieses ein Hoch-RW-Signal 1810 erzeugen, welches den Impuls PRW erzeugt, wenn dieses mit dessen verzögertem Gegenstück 1815 in dem NAND-Gate 1820 kombiniert und dann durch den Wechselrichter 1825 invertiert wird.
-
Bei einem Lesezyklus schaltet das RD-Signal 1510 den Lesepfad und die Lese-Nachverfolgungs-Schaltung 1830 (wie nachstehend mit Bezug auf 21 weiter beschrieben) ein. Wenn von der Speicherzelle ausgelesene Daten erfolgreich abgerufen und in einem Daten-Ausgangs-Auffangregister aufgefangen werden, wird durch die SAE-Zeit-Nachverfolgungs – und Steuerschaltung 1840 (wie nachstehend mit Bezug auf 23A weiter gezeigt und beschrieben) das Lese-Ok(RD_OK)-Signal 1835 erzeugt, was das OK-Signal 1845 von dem ODER-Gate 1850 erzeugt, was das Bestätigungs(ACK)-Signal 1515 zu dem hohen Zustand zurückbringt, um anzugeben, dass der Lesezyklus erfolgreich abgeschlossen wurde.
-
In gleicher Art und Weise schaltet das Schreibe(WR)-Signal 1525 während eines Schreibezyklus den Schreibepfad und die Schreibe-Bestätigungsschaltung 1855 (wie nachstehend mit Bezug auf 20B weiter gezeigt und beschrieben) ein. Sobald die Daten geschrieben und unter Verwendung der Schreibe-Bestätigungsschaltung 1855 geprüft wurden, wird das Schreibe-Ok(WR_OK)-Signal 1860 erzeugt, was ebenso das OK-Signal 1845 von dem ODER-Gate 1850 erzeugt, was das Bestätigungs(ACK)-Signal 1515 wieder auf den hohen Zustand zurückbringt, um anzugeben, dass der Schreibezyklus erfolgreich abgeschlossen wurde.
-
Insbesondere erzeugt entweder das WR_OK-Signal 1860 von der Schreibe-Bestätigungsschaltung 1855 oder das RD_OK-Signal 1835 von der Lese-Nachverfolgungs-Schaltung 1830, wenn dieses durch das ODER-Gate 1850 läuft, das OK-Signal 1845. Das OK-Signal 1845 wird dann zu einem Auffangregister 1865 übertragen, welches das Bestätigungs-Ansteuerungs-Signal (ACTB) 1870 ausgibt. Das ACTB-Signal 1870 wird dann durch eine programmierbare Verzögerung 1875 zu einem Ausgangspuffer (OB) geführt, um das ACK-Signal 1515 zurück auf den hohen Zustand zu bringen.
-
19 ist eine schematische Abbildung einer skalierbaren hierarchischen Lese/Schreibe-Architektur, welche bei den Lese- und Schreibe-Vorgängen der 16A bis 17B verwendet werden kann. Bezug nehmend auf 19 verlaufen Lese- oder Schreibe-Vorgänge der Speichervorrichtung bezüglich Speicherzellen, welche von einem Speicher-Array ausgewählt werden, unter Verwendung von Wortleitungen und Bitleitungen/Auswahlleitungen. Daten, welche von der ausgewählten Speicherzelle abgerufen werden, werden zu einem globalen Leseverstärker (SA) (beispielsweise 1905) geführt, um den Datenausgang von der Zelle zu lesen. Daten, welche in die ausgewählte Speicherzelle geschrieben werden sollen, werden durch die globale Schreibe-Schaltung (beispielsweise 1905) der Zelle bereitgestellt.
-
20A sieht schematische Abbildungen eines Speicher-Arrays und einer Steuerschaltung vor. 20B ist eine schematische Abbildung einer Schreibe-Bestätigungs-Schaltung 1855. Bezug nehmend auf 20B wird nun ein Schreibe-Verifikations- und Neu-Schreibe-Vorgang beschrieben. Während eines Schreibevorganges wird eine Speicherzelle in dem Speicher-Array-Platten(MAT)-Bereich durch Aktivieren deren entsprechender Wortleitung (WL) und Bitleitung (BL) ausgewählt. Dann werden dann in die ausgewählte Speicherzelle geschrieben. Eine Schreibe-Steuerschaltung deaktiviert das lokale Schreibe-Freigabesignal (ENW) nach der erforderlichen Schreibe-Pulsweite (tWP), beispielsweise 5 ns. Ein lokales Lese-Freigabesignal (ENR) wird dann erzeugt, um die Daten von der gleichen Adressposition, welche während des Schreibevorganges gerade beschrieben wurde, zu lesen. Die Daten-Eingangs(DW)-Leitung wird gültig gehalten und über das XNOR-Gate 2005 mit der Daten-Ausgangs(DR)-Leitung verglichen. Falls die beiden Datensignale (DW und DR) unterschiedlich sind, bleibt das Schreibe-Ok(WR_OK)-Signal 1860 auf dem niedrigen Niveau, was angibt, dass der Schreibevorgang nicht erfolgreich war. Falls die beiden Datensignale (DW und DR) gleich sind (was angibt, dass die Daten, die in die Speicherzelle geschrieben werden sollten, gleich den Daten waren, welche von der Zelle ausgelesen wurden), geht das WR_OK-Signal 1860 dann auf den hohen Zustand über, was einen erfolgreichen Schreibevorgang signalisiert. Wie zuvor erörtert, kann das WR_OK-Signal 1860 dann dazu verwendet werden, um ein Bestätigungssignal 1515 zu erzeugen, welches der Speicher-Steuervorrichtung angibt, dass der Schreibevorgang erfolgreich war. Alternativ kann ein rückstellbares Register oder eine Freigabeschaltung (nicht gezeigt) dazu verwendet werden, um sicherzustellen, dass WR_OK auf den niedrigen Zustand zurückgesetzt ist und auf dem niedrigen Zustand gehalten wird, bis der Schreibevorgang beginnt und DR gültig ist.
-
Lese-Nachverfolgung kann verwendet werden, um den Schreibe-Verifikations-Lesevorgang abzuschließen und das Vergleichs-Ausgangs(WR_OK)-Signal 1860 abzutasten. Wenn das WR_OK-Signal 1860 auf den hohen Zustand übergeht, ist der Schreibezyklus abgeschlossen. Falls bei dem WR_OK-Signal 1860 ein niedriges Signal erfasst wird, erzeugt die Schreibe-Steuerschaltung einen neuen Schreibezyklus in der gleichen Adressposition, um die Daten neu zu schreiben, und der Verifikationsprozess wiederholt sich selbst. Dieser Prozess kann andauern, bis der Schreibevorgang erfolgreich ist, oder bis erfasst wird, dass die Zelle defekt ist und deren Adresse in dem NVM-Programmspeicher 195 wiedergegeben wird.
-
21 ist eine schematische Abbildung einer Lese-Nachverfolgungs-Schaltung 1830. 22 ist eine schematische Abbildung einer Strom-Spannungs-Wandler- und Verstärkerschaltung. Die 23A und 23B enthalten schematische Blockdiagramme einer SAE-Zeit-Nachverfolgungs- und Steuerschaltung. 24 ist eine schematische Abbildung einer Analog-Zu-Digital-Wandler-Schaltung.
-
Bezug nehmend auf die 20A, 20b, 21, 22, 23A, 23B und 24 kann in der Lese-Nachverfolgungs-Schaltung 1830 ein Dummy-Lesepfad verwendet werden, um die Lese-Schaltungs(RC)-Verzögerung nachzuverfolgen. Die Lese-Nachverfolgungs-Schaltung 1830 kann neben den Strom-Mess-Vor-Verstärker-Schaltungen (ähnlich zu diesen, welche mit Bezug auf 7 gezeigt und beschrieben sind) eine Strom-Spannungs-Wandler- und Spannungs-Verstärkungsschaltung enthalten. Eine lokale Spalten-Auswahl(LCS)-Schaltung 2105 kommuniziert mit dem MAT-Bereich 2110 und führt zusammen mit Daten, welche auf den ausgewählten wahren und ergänzenden Bitleitungen (TBLH 2120 und TBLL 2125) erfasst werden, ein Bitleitungs-Vorladungs-Signal (BLPR) 2115 zu der Lese-Nachverfolgungs-Schaltung 1830.
-
Der Dummy-Lesepfad kann Bitleitungen (BLs), Spalten-Auswahltransistoren, Vorverstärker und globale Leseverstärker enthalten. Wahre und ergänzende Dummy-BLs (Rhigh, TBLH, Rlow und TBLL) werden dazu verwendet, um die Erfassungsverzögerung zu erzeugen. Ein Ausgangs-Nachverfolgungs-Leseverstärker-Signal (beispielsweise TSAE2 von 24) des Dummy-Leseverstärkers wird aktiv, wenn von der ersten Stufe (TDX/TDXB) eine ausreichende Separation erzeugt wird. Ein aktives TSAE2-Signal löst SAE2 (der 23A und 23B) aus bzw. steuert dieses an, um normale Daten in dem regulären Leseverstärker (SA) 2315 aufzufangen und den Strompfad in jeder SA-Stufe zu isolieren.
-
Das Lese-Freigabesignal (REN) und TSAE2 werden in eine Leseverstärker-Zeitsteuerungs-Schaltung 2305 (von 23A) eingegeben. Die Leseverstärker-Zeitsteuerungs-Schaltung 2305 erzeugt das Bitleitungs-Vorladungs(BLPR)-Signal 2115 und die Leseverstärker-Freigabesignale (beispielsweise SAE und SAE2). Das Bitleitungs-Vorladungs(BLPR)-Signal 2115 wird etwa bis zu der Zeit auf dem hohen Zustand gehalten, bei welcher der Lesevorgang durchgeführt werden soll. Nachdem dieses freigegeben ist (d. h., abgeschaltet), wird das Lesen durchgeführt. Insbesondere können entweder REN oder WEN das BLPR-Signal deaktivieren, was die Bitleitungen zum Lesen oder Schreiben freigibt. Das Leseverstärker-Freigabesignal (SAE) wird durch eine programmierbare Verzögerung 2310 geführt (von 23A), um das RD_OK-Signal 1835 zu erzeugen. Der Leseverstärker (SA) 2315 (von 23B) empfängt die Leseverstärker-Freigabesignale (SAE und SAE2) und globale Bitleitungs-Spannungen (GBL und GRBL) (siehe 19) und gibt das Lese-Daten-Signal DR 2320 aus.
-
25A ist ein schematisches Block- und Schaltungsdiagramm einer Temperatur-Kompensations-Spannungs-Erzeugungsschaltung 2505 gemäß weiterer erfinderischer Konzepte. 25B ist ein schematisches System-Blockdiagramm mit der Schaltung von 25A. Im Folgenden wird auf die 25A und 25B Bezug genommen.
-
Leistungs-Management-Systeme können beispielsweise bei STT-RAM-Speicheranwendungen wichtig sein, da niedrige Lesespannungen und -Ströme das Verhindern von Lese-Störungen während des Lesevorganges unterstützen. Ein zu hoher Lese-Strom kann beispielsweise durch Hervorrufen, dass die Daten von einem „1”- zu einem „0”-Wert wechseln, zu einer Daten-Verfälschung führen.
-
Die intelligente Speicher-Steuervorrichtung 190 kann einen Leistungs-Manager 193 enthalten. Der Leistungs-Manager 193 kann einen Prozess-Spannungs-Temperatur(PVT)-Kompensations-Spannungs-Generator 2505 enthalten. Der PVT-Kompensations-Spannungs-Generator 2505 steuert ein Spannungsniveau eines Freigabe-Lese(ENR)-Signals, um einen stabilen und konstanten Lese-Strom durch M1-Transistoren bereitzustellen. Der PVT-Kompensations-Spannungs-Generator 2505 kann Temperaturschwankungen und andere Leistungsvariablen kompensieren, um stabile Zuführspannungen für die Speichervorgänge bereitzustellen. Der PVT-Kompensations-Spannungs-Generator 2505 kann mit mehreren Gruppen (beispielsweise 2510, 2515 und 2520) von MOS-Transistoren (beispielsweise M1, M2, M3 und M4) gekoppelt sein. Der PVT-Kompensations-Spannungs-Generator 2505 kann das Spannungs-Niveaugesteuerte ENR-Signal zu den Gruppen von MOS-Transistoren übertragen. Die ENR- und ENRB-Signale bewirken, dass stabile und konstante Lese-Ströme durch die MOS-Transistoren fließen. Beispielsweise stehen die Ströme IRL1 und IRL2 mit der Gruppe 2510 in Zusammenhang, die Ströme IRH1 und IRH2 stehen mit der Gruppe 2520 in Zusammenhang und die Ströme IR1 und IR2 stehen mit der Gruppe 2515 in Zusammenhang.
-
Das intelligente Speichersystem kann daher gemäß zusätzlichen Grundsätzen der vorliegenden erfinderischen Konzepte derart konfiguriert sein, dass dieses Leistungs-Management-Technologien implementiert, welcher den Leseverstärker(SA)-Lese-Strom steuern können, die SA-Klemmenspannungen steuern können, die SA-Lese-Verzögerung steuern können, die Schreibespannung steuern können, die Peripherie-Spannung während Stand-by steuern können und/oder andere Leistungsanforderungen der Speichervorrichtung 2515 steuern können. Das Leistungs-Managementsystem kann ferner temperaturbasierte Kompensationen der Spannungsniveaus vorsehen.
-
Die 26A und 26B sind schematische Blockdiagramme, welches ein intelligentes System-In-Package(SiP)-Speichersystem 2605 gemäß der erfinderischen Konzepte darstellt. Das intelligente Speichersystem 2605 kann einen Speicherstapel 2610, eine intelligente Speicher-Steuervorrichtung 190 und einen oder mehrere Mehrzweck-Prozessoren 2620 enthalten. Bestimmte Merkmale und Vorteile dieses erfinderischen Konzepts können beispielsweise durch Aufnahme des intelligenten Speichersystems in eine System-In-Package(Sip)- oder Ein-Chip-System(SoC)-Gestaltung erreicht werden.
-
Es ist erkennbar, dass eine Implementierung von bestimmten der erfinderischen Merkmale in einer SiP-Vorrichtung von einer guten Verbindung zwischen dem Speicher-Array und Speicher-Prozessorchips profitiert, um eine verbesserte System-Leistungsfähigkeit bereitzustellen. Dies kann beispielsweise durch eine Verwendung von Niedriglatenz- und Hochdurchsatz-SiP-Verbindungen, wie True-Silicon-Via (TSV) oder einer anderen System-In-Package(SiP)-Technologie erreicht werden. Beispielsweise können TSV-Verbindungen 2625 eine Verbindung zwischen dem Speicherstapel 2610 und der intelligenten Speicher-Steuervorrichtung 190 bereitstellen. In gleicher Art und Weise können TSV-Verbindungen 2630 eine Verbindung zwischen der intelligenten Speicher-Steuervorrichtung 190 und dem einen oder den mehreren Arm-Prozessoren 2620 bereitstellen. Kostennachteile solch eines Systems können minimiert werden, da die Kosten der Verbindungstechnologie kontinuierlich abnehmen.
-
Insbesondere Bezug nehmend auf 26B kann ein intelligentes Speichersystem gemäß verschiedenen Grundsätzen des vorliegenden erfinderischen Konzepts als eine SiP-Vorrichtung implementiert sein. Die SiP-Vorrichtung kann einen Speicherstapel (wie beispielsweise einen STT-MRAM-Speicherstapel 2610) enthalten, welcher auf einer intelligenten Speicher-Steuervorrichtung 190 angeordnet ist, welche wiederum auf einem oder mehreren RISC-Prozessoren (wie beispielsweise Mehrzweck-ARM-Prozessoren 2620) angeordnet ist. Der Speicherstapel kann über jeweilige True-Silicon-Vias (TSVs) 2625 bzw. 2630 mit der intelligenten Speicher-Steuervorrichtung 190, und die intelligente Speicher-Steuervorrichtung 190 mit den Prozessoren 2620 kommunizieren.
-
27 ist ein schematisches Speicher-Blockdiagramm 2705 gemäß der erfinderischen Konzepte. Die 28A, 28B, 29 bis 30, 31A und 31B sind schematische Blockdiagramme einer Bitfehlerraten-Steuerlogik 2740 des Speicher-Blockdiagramms von 27 gemäß der erfinderischen Konzepte.
-
Die mit Bezug auf diese Figuren erörterten erfinderischen Konzepte sehen die Fähigkeit vor, bei einer Speichervorrichtung einen eingebauten Bitfehlerraten(BER)-Selbsttest durchzuführen. Nach dem Eintreten in einen Testmodus werden Fehlerraten-Zeitmuster intern erzeugt. Der eingebaute BER-Selbsttest wird basierend auf den intern erzeugten Fehlerraten-Zeitmustern durchgeführt. Eine Fehlerrate, welche aus dem BER-Selbsttest resultiert, wird gemessen. Basierend auf der gemessenen Fehlerrate können ein oder mehrere Testparameter automatisch angepasst werden, und der eingebaute Bitfehlerraten-Selbsttest kann unter Verwendung der angepassten Parameter wiederholt werden. Spannungsniveaus und/oder Pulsweiten können für eine Adressposition, ein Adress-Segment oder für einen gesamten Chip in Zusammenhang mit der Speichervorrichtung automatisch angepasst werden. Nachfolgende Tests können die angepassten Spannungsniveaus und/oder Pulsweiten berücksichtigen, was den eingebauten Selbsttest verfeinern und verbessern kann. Diese und weitere erfinderische Aspekte sind nachstehend detailliert erörtert.
-
Die erfinderischen Konzepte können in einem Speicher vom resistiven Typ, wie STT-MRAM-, PCM- und ReRAM-Speicherprodukten, implementiert sein, um Speicherbits mit hohen Fehlerraten zu überprüfen bzw. auzusortieren. Die erfinderischen Konzepte können auf einfache funktionelle Tests, Stabilitätstests und/oder Speichertests ausgeweitet werden. Ein einzelner oder mehrerer Testmodi können verwendet werden, um WER und RER automatisch zu evaluieren und die Ergebnisse können nach dem vollständigen Testen oder nach jedem Spannungsschritt und Adressposition ausgelesen werden. Die intelligente Speicher-Steuervorrichtung kann den Zustand der Speicherbits in dem Bereich überwachen und Speicherplatz automatisch umordnen, wenn beispielsweise BER über die System-Fehler-Korrektur-Code(ECC)-Fähigkeit steigt. Die intelligente Speicher-Steuervorrichtung kann die WER- und/oder RER-Ergebnisse verwenden, um Anpassungen der Schreibe- oder Lesespannung und Pulsweiten für jede Adressposition, jedes Adress-Segment oder für einen gesamten Speicherchip durchzuführen. Eine einzelne intelligente Speicher-Steuervorrichtung oder ATE kann Tests in mehreren Chips einleiten. Bei Wafer- und Paket-Level-Tests kann die ATE den Testmodus einleiten, die Speicherchips können einen Selbsttest abschließen und die ATE kann anschließend die endgültigen Ergebnisse auslesen. Bei einigen Ausführungsformen, insbesondere wenn die Speicherchips bereits in dem Bereich eingesetzt werden, können die in dem Speicherchip gespeicherten Daten vor dem Testen auf ein anderes Modul heruntergeladen werden und nach dem Testen anschließend wiederhergestellt werden, um sicherzustellen, dass während des Testens keine Beschädigung von Daten auftritt. Bei einigen Ausführungsformen wird die während des Testens aufgebrachte Spannung extern gesteuert oder zugeführt. Daher können fehlerhafte Speicherpositionen identifiziert und repariert oder isoliert werden. Zusätzlich ermöglichen die eingebauten RER- und WER-Selbsttests eine einfache Test-Erzeugung und Daten-Sammlung für einen Speicherchip.
-
Bezug nehmend auf das Speicher-Blockdiagramm 2705 von 27 kann die Speichervorrichtung einen oder mehrere Speicherkerne 2710, einen oder mehrere Zeilen-Spalten-Treiber 2715 und einen oder mehrere logische Daten-Lese/Schreibe-Abschnitte 2720 enthalten. Solche Speicherkerne 2710, Treiber 2715 und logische Abschnitte 2720 können in Blöcken (d. h., BK[0:i]) angeordnet sein. Eine Bitfehlerraten(BER)-Steuerlogik 2740 kann einen eingebauten Bitfehlerraten-Selbsttests steuern. Die intelligente Speicher-Steuervorrichtung und/oder ATE kann einen Code versenden, um den Speicher 2705 in einen BER-Testmodus zu bringen. Die BER-Steuerlogik 2740 kann eine oder mehrere Eingangsadress-Signale (beispielsweise IA[0:k]) empfangen. Die BER-Steuerlogik 2740 kann Spannungs-Regulator-Steuersignale für eine Lese/Schreibe-Spannungsanpassung (d. h., Vrd und Vwr) erzeugen, welche, wie dargestellt, auf verschiedene Komponenten des Speichers 2705 verteilt werden können. Ein Adress- und Daten-Generator 2780 ist mit der BER-Steuerlogik 2740 gekoppelt. Der Adress- und Daten-Generator 2780 kann die eine oder mehrere Eingangsadressen (beispielsweise IA[0:k]) empfangen und kann intern eine oder mehrere Adressen und/oder Daten für die Verwendung in dem eingebauten BER-Selbsttest erzeugen. Der Adress- und Daten-Generator 2780 kann einen Schreibe-Fehlerraten-Testmuster-Generator, um ein Schreibe-Fehler-Testmuster für den eingebauten Bitfehlerraten-Selbsttest zu erzeugen, und einen Lese-Fehlerraten-Testmuster-Generator, um ein Lesefehler-Testmuster für den eingebauten Bitfehlerraten-Selbsttest zu erzeugen, enthalten.
-
Die BER-Steuerlogik 2740 kann mit einer Befehls-Steuer- und Testmodus-Logik 2745 gekoppelt sein. Die Befehls-Steuer- und Testmodus-Logik 2745 kann ein oder mehrere externe Befehls XCMD[0:n]-Signale und eine Eingangsadresse von dem Eingangs-Adress-Puffer 2750 empfangen, um Test-Modus-Register einzustellen. Der Eingangs-Adress-Puffer empfängt bei einem normalen Betrieb Eingangsadressen von externen Adress-Signalen XA[0:k] oder intern erzeugte Adressen IA[0:k] in dem BER-Testmodus. Die Befehls-Steuer- und Testmodus-Logik 2745 kann ein oder mehrere Testsignale 2742 erzeugen, welche ein Schreibe-Reset(RSTW)-, ein Schreibe(WR)-, ein Lese(RD)-, und/oder ein Exit-Test(EXTST)-Signal enthalten können, und welche durch die BER-Steuerlogik 2740 empfangen werden können. Die BER-Steuerlogik 2740 kann ein oder mehrere Signale 2743 erzeugen, welche ein Test(TEST)-, ein Test-Schreibe-Fehlerraten(TWER)-, ein Test-Lese-Fehlerraten(TRER)-, ein Test-Pulsweiten(TPWS)- und/oder ein Test-Spannungs-Regulator(TVRG)-Signal enthalten können, und welche durch die Befehls-Steuer- und Testmodus-Logik 2745 empfangen werden können. Die BER-Steuerlogik 2740 kann außerdem ein oder mehrere Test-Daten-Ausgangs (beispielsweise TDO[0:x])-Signale erzeugen, welche durch einen Daten-I/O-Puffer- und Register-Test-Ausgangs-Serialisierer 2735 empfangen werden können.
-
Der Speicher 2705 kann außerdem eine Lese- und/oder Schreibe-Zeit-Steuerlogik 2775 enthalten, welche mit der Befehls-Steuer- und Testmodus-Logik 2745 und der BER-Steuerlogik 2740 gekoppelt sein kann. Die Lese- und/oder Schreibe-Zeit-Steuerlogik 2775 kann ebenso mit der entsprechenden Daten-Lese/Schreibe-Logik 2720 gekoppelt sein.
-
Der Adress- und Daten-Generator 2780 kann ein oder mehrere Test-Eingangsdaten (beispielsweise TDIN[0:m])-Signale erzeugen, welche zu einer Auswahlvorrichtung 2790, wie einem Multiplexer, geführt werden können. Die Auswahlvorrichtung 2790 kann außerdem ein oder mehrere Eingangsdaten (beispielsweise DIN[0:m])-Signale empfangen und die ausgewählten Signale zu einer Datenpfad-Logik 2725 übertragen. Die Datenpfad-Logik 2725 kann mit der entsprechenden Daten-Lese/Schreibe-Logik 2720 in Verbindung stehen. Die Datenpfad-Logik 2725 kann außerdem ein oder mehrere Daten-Lese (beispielsweise DR[0:m])-Signale zu dem Daten-I/O-Puffer- und Register-Test-Ausgangs-Serialisierer 2735 übertragen. Der Daten-I/O-Puffer- und Register-Test-Ausgangs-Serialisierer 2735 kann ein oder mehrere externe Daten-I/O (beispielsweise XDQ[0:m])-Signale empfangen, solche Signale verarbeiten und das eine oder mehrere Eingangsdaten (beispielsweise DIN[0:m])-Signale erzeugen.
-
Der Eingangs-Adress-Puffer 2750 kann das eine oder mehrere intern erzeugte Adress (beispielsweise IA[0:k])-Signale sowie ein oder mehrere externe Adress (beispielsweise XA[0:k])-Signale empfangen. Der Eingangs-Adress-Puffer 2750 ist mit der Befehls-Steuer- und Testmodus-Logik 2745 und mit einem Adress-Dekodierer 2770 gekoppelt. Der Adress-Dekodierer 2770 kann die Adressen dekodieren und mit den Zeilen-Spalten-Treibern 2715 in Verbindung stehen.
-
Ein Eingangs-Takt-Puffer 2755 kann das Test-Taktsignal (beispielsweise TCK), das XCLK-Taktsignal und/oder das TEST-Signal empfangen. Der Eingangs-Takt-Puffer 2755 gibt das Taktsignal CLK aus, welches zu dem Eingangs-Adress-Puffer 2750, dem Adress-Dekodierer 2770, der Befehls-Steuer- und Testmodus-Logik 2745, der Lese/Schreibe-Zeit-Steuerlogik 2775, der BER-Steuerlogik 2740 und/oder dem Adress- und Daten-Generator 2780 geführt werden kann.
-
Ein On-Chip-Oszillator-Takt-Generator 2760 kann das TEST-Signal empfangen und kann ein internes Test-Takt(beispielsweise TCK)-Signal erzeugen. Das TCK-Taktsignal kann zu einem Aufwärts/Abwärts-Zähler 2765 geführt werden, dessen Ausgang mit einem Spannungsgenerator 2730 und der Lese/Schreibe-Zeit-Steuerlogik 2775 gekoppelt sein kann. Der Spannungsgenerator 2730 kann den Ausgang des Aufwärts/Abwärts-Zählers 2765 sowie die VRG[0:j]-Signale von der BER-Steuerlogik 2740 empfangen. VRG[0:j]-Signale können j + 1 Spannungsniveaus auswählen. Der Spannungsgenerator 2730 kann separate (j + 1)-Lesespannungs (Vrd)-Niveaus und (j + 1)-Schreibespannungs(Vwr)-Niveaus ausgeben, welche durch die Daten-Lese/Schreibe-Logik 2720 empfangen werden können. Der Vrd-Leistungsbus kann den Leseverstärker ansteuern, insbesondere die Lese-Strom-Bias-Schaltung. Der Vwr-Leistungsbus kann die Schreibe-Treiber ansteuern.
-
Die 28A, 28B, 29 bis 30, 31A und 31B sind schematische Blockdiagramme der Schaltung der BER-Steuerlogik 2740 des Speichers 2705 von 27 gemäß der erfinderischen Konzepte.
-
Bezug nehmend auf 28A kann ein Sequenz-Zähler 2810 das TEST-Signal und das Taktsignal CLK empfangen und ein Sequenz-Signal 2850 erzeugen, welches zu einem Schreibe-Fehlerraten(WER)-Befehlsregister 2815, einem Lese-Fehlerraten(RER)-Befehlsregister 2820, einem WER-Zyklus-Zählregister 2825 und/oder einem RER-Zyklus-Zählregister 2830 übertragen werden kann. Das WER-Befehlsregister 2815 und das WER-Zyklus-Zählregister 2825 können jeweils das TWER-Signal empfangen. Das RER-Befehlsregister 2820 und das RER-Zyklus-Zählregister 2830 können jeweils das TRER-Signal empfangen. Ein Selektor 2845 wählt zwischen dem Ausgang des WER-Befehlsregisters 2815 und des RER-Befehlsregisters 2820 aus. Der Selektor 2845 kann das RSTW-Signal, das WR-Signal und/oder das RD-Signal ausgeben. Ein Selektor 2855 wählt zwischen dem Ausgang des WER-Zyklus-Zählregisters 2825 und des RER-Zyklus-Zählregisters 2830. Der Selektor 2855 kann das NXT-Signal zum Bewegen zu der nächsten Spannung und/oder Pulsweite ausgeben.
-
Eine 1 eN-Zyklus-Vergleichseinrichtung 2840 empfängt Ausgänge des WER-Zyklus-Zählregisters 2825 oder des RER-Zyklus-Zählregisters 2830 und erzeugt ein nächstes Adress(beispielsweise NXADR)-Impulssignal, um zu der nächsten Speicher-Adressposition fortzuschreiten. Für WER-Tests können Schreibespannungen von Vsw0 beginnen und nach 1 eN WER-Zyklen um dV zunehmen. Ein WER-Zyklus enthält eine Reset-Verifikations-Schreibe-Verifikations-Sequenz. Der Reset bzw. die Rückstellung kann bei einer maximalen Schreibespannung implementiert werden. Die Verifikation kann bei einer nominellen Lesespannung implementiert werden. Das Schalten des Bits kann dann überprüft werden. Vsw0 ist die Start-Schreibe (das heißt, eingestellte) Spannung, welche beispielsweise etwa 0,5 V betragen kann. dV ist die inkrementelle Veränderung der Schreibespannung, welche beispielsweise etwa 0,1 V betragen kann. Die End-Schreibespannung ist programmierbar. Die End-Schreibespannung kann beispielsweise derart konfiguriert sein, dass diese bei Vsw0 + (N × dV) endet. Die End-Schreibespannung kann beispielsweise derart konfiguriert sein, dass diese bei 0,5 V + (10 × 0,1V) = 1,5 V endet.
-
Für RER-Tests kann die Lesespannung von Vrd0 starten und nach 1 eM Lesezyklen um dV zunehmen. Bei einer Ausführungsform enthält jedes RER-Muster eine Reset-Verifikations-Sequenz, noch einmal durch 1 eK Lesezyklen gefolgt. Bei einigen Ausführungsformen ist M = K Muster × N Wiederholungen. Bei einigen Ausführungsformen ist RER = 1 e–(K+N).
-
Bei einer Ausführungsform wird der Datenausgang normal ausgelesen und durch die intelligente Speicher-Steuervorrichtung oder ATE aufgenommen. Bei einer anderen Ausführungsform können die WER- und/oder RER-Ergebnisse sowie die zugehörigen fehlerhaften Adresspositionen nach jedem Spannungsschritt gelesen werden. Solche Ergebnisse und Adresspositionen können über zuvor zugewiesene DQ-Pins gelesen werden.
-
Bezug nehmend auf 28B kann eine Vergleichseinrichtung 2835 für eine letzte Adresse das TEST-Signal, die IA[0:k]-Signale und das CLK-Signal empfangen und das EXTST-Signal erzeugen.
-
Bezug nehmend auf 29 kann eine Zähleinrichtung 2905 Reset-Fehler, Schreibefehler und/oder Lesefehler zählen. Der Zähler bzw. die Zähleinrichtung 2905 kann ein XOR-Gate 2925 enthalten. Das XOR-Gate 2925 kann die DR[0:m]- und TDIN[0:m]-Signale empfangen. Der Ausgang des XOR-Gates 2925 kann zu einer Reset-Fehler-Zähleinrichtung 2910, einer Schreibefehler-Zähleinrichtung 2915 und einer Lesefehler-Zähleinrichtung 2920 geführt werden. Die Reset-Fehler-Zähleinrichtung 2910 kann eine Anzahl von Reset-Fehler des eingebauten Selbsttests zählen. Die Schreibefehler-Zähleinrichtung 2915 kann eine Anzahl von Schreibefehler des eingebauten Selbsttests zählen. Die Lesefehler-Zähleinrichtung 2920 kann eine Anzahl von Lesefehler des eingebauten Selbsttests zählen.
-
Die Reset-Fehler-Zähleinrichtung 2910 kann das RSTW-Signal empfangen. Die Schreibefehler-Zähleinrichtung 2915 kann das WR-Signal empfangen. Und die Lesefehler-Zähleinrichtung 2920 kann das RD-Signal empfangen. Die Reset-Fehler-Zähleinrichtung 2910 kann ein Reset-Fehler-Zähl (beispielsweise RSERC[0:x])-Signal erzeugen. Die Schreibefehler-Zähleinrichtung 2915 kann ein Schreibefehler-Zähl (beispielsweise WRERC[0:x])-Signal erzeugen. Die Lesefehler-Zähleinrichtung 2920 kann ein Lesefehler-Zähl (beispielsweise RDERC[0:x])-Signal erzeugen. Beispielsweise kann eine 40-Bit-Zähleinrichtung bis 1,1 e–12 zählen. In solch einem Fall ist x = 39, das heißt, RSERC[0:39], WRERC[0:39] und RDERC[0:39]. Um einen Bereich zu speichern, kann lediglich eine Zähleinrichtung für Reset-Fehler, Schreibefehler und Lesefehler verwendet werden. Bei solch einer Ausführungsform wird der in 30 gezeigte 3-Zu-1-Multiplexer nicht benötigt und kann entfernt werden.
-
Bezug nehmend auf 30 kann eine Auswahleinrichtung 3010 zwischen den RSERC[0:x]-, WRERC[0:x]- und RDERC[0:x]-Signalen auswählen. Das ausgewählte Signal wird durch die Auswahleinrichtung 3010 als das Test-Daten-Ausgangs (beispielsweise TDO[0:x])-Signal ausgegeben. Die Auswahleinrichtung 3010 kann beispielsweise ein Multiplexer sein.
-
Bezug nehmend auf 31A kann ein Pulsweiten-Register 3105 eine Pulsweite speichern. Das Pulsweiten-Register 3105 kann das TPWS-Signal, das CLK-Signal, das IA[0:k])-Signal und/oder das NXT-Signal empfangen. Das Pulsweiten-Register 3105 kann ein oder mehrere Pulsweiten (beispielsweise PWS[0:j])-Signale erzeugen. Das Pulsweiten-Register 3105 sieht den Code vor, um die gewünschte Pulsweiten-Verzögerung in der Pulsweiten-Generator-Schaltung auszuwählen. Ein 4-Bit-Code, PWS[0:3], kann beispielsweise 16 unterschiedliche Pulsweiten auswählen. Schreibe-Fehlerraten und Lese-Fehlerraten hängen von einem Strombetrag ab, welcher durch die Speicherzellen fließt. Ausführungsformen des erfinderischen Konzepts sehen programmierbare Pulsweiten und programmierbare Vbias-Spannungen vor.
-
Bezug nehmend auf 31B kann ein Spannungs-Regulator-Register 3110 Spannungs-Niveau-Auswahlsignale VRG[0:j] erzeugen. Das Spannungs-Regulator-Register 3110 kann das TVRG-Signal, das CLK-Signal, das IA[0:k])-Signal und/oder das NXT-Signal empfangen. Das Spannungs-Regulator-Register 3110 kann einen Code erzeugen, um das Spannungs-Bias-Niveau in dem Spannungs-Generator auszuwählen. Ein 4-Bit-Code, VRG[0:3], kann beispielsweise 16 unterschiedliche Niveaus auswählen. Ein Wert, welcher in dem Spannungs-Regulator-Register 3110 gespeichert ist oder in anderer Art und Weise durch dieses erzeugt wird, kann auf einem Reset-Fehler-Zähler, einem Schreibefehler-Zähler und/oder einem Lesefehler-Zähler basieren.
-
32 ist ein Flussdiagramm 3205, welches Schritte des Durchführens eines eingebauten Schreibe-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt. Der Fluss beginnt bei der Startphase 3207 entlang einem von zwei Pfaden 3210 und 3215, wobei ein Modusregister-Einstellbefehl für einen WER-Test zum Schreiben von „1”-en (d. h., Pfad 3210) geladen wird, oder ein Modusregister-Einstellbefehl für einen WER-Test zum Schreiben von „0”-en (d. h., Pfad 3215) geladen wird. Bei 3220 wird ein interner Takt gestartet. Der Fluss schreitet zu 3225 voran, wobei die Fehler-Zähleinrichtungen zurückgesetzt werden. Sämtliche Fehler-Zähleinrichtungen und Zyklus-Zähleinrichtungen sollten beim Start des Tests zurückgesetzt werden. Nach der Startphase 3207 wird bei 3230 eine neue Adresse und Daten erzeugt und/oder aktualisiert. Bei 3235 erzeugt eine Ablaufsteuerung ein WER-Zeitmuster. Danach wird bei 3240, 3245, 3250 und 3255 der Speicher zurückgesetzt, der Reset verifiziert, Daten geschrieben bzw. Daten verifiziert. Um beispielsweise „1”-Daten zu schreiben, wird zunächst der Speicher auf „0” zurückgesetzt (schreibe „0”, egal was ursprünglich gespeichert ist). Anschließend wird der Speicher gelesen, um zu verifizieren, dass „0”-en geschrieben wurden. Dann wird das eigentliche Schreiben von „1” durchgeführt. Anschließend werden erneut Daten gelesen, um zu verifizieren, dass „1”-en geschrieben wurden. Falls der erste Reset fehlgeschlagen ist, bedeutet dies, dass entweder das Bit auf „1” hängengeblieben ist, oder dass die Anfangsdaten eine „0” waren und auf „1” umgesprungen sind, was als Rückspring-Phänomen bekannt ist. Um zu ermitteln, ob ein Rückspringen auftritt, müssen zunächst die hängengebliebenen Bits identifiziert werden.
-
Nachdem der Reset bei 3245 verifiziert wird, wird bei 3247 eine Überprüfung durchgeführt, ob der Reset gescheitert ist. Falls NEIN, schreitet der Fluss für die Schreibe/Verifikations-Vorgänge zu 3250. Andererseits, falls JA, was bedeutet, das der Reset gescheitert ist, schreitet der Fluss dann direkt zu 3260, wo das Reset-Fehler-Zählregister aktualisiert wird.
-
Bei 3265 werden die resultierenden Daten evaluiert und es wird eine Ermittlung durchgeführt, ob der Schreibevorgang gescheitert ist. Falls der Schreibevorgang gescheitert ist, schreitet der Fluss zu 3270, wo das Schreibefehler-Zählregister aktualisiert wird, wonach der Fluss zu 3275 voranschreitet, wo das Zyklus-Zählregister aktualisiert wird. Andererseits, falls der Schreibevorgang erfolgreich war, erreicht der Fluss 3275, wo das Zyklus-Zählregister aktualisiert wird.
-
Bei 3280 wird eine Ermittlung durchgeführt, ob die Anzahl von Zyklen 1 eN erreicht hat. Der Wert von N kann beispielsweise 15 betragen. Falls NEIN, schreitet der Fluss zu 3290, wo die Zellposition (d. h., die Speicheradresse) und der Fehler-Zähler ausgelesen werden, wonach der Fluss für einen zusätzlichen Reset-Verifikations-Schreibe-Verifikations-Sequenz-Test zu 3240 zurückkehrt. In den meisten Fällen werden mehrere Zellen zur gleichen Zeit mit einer mehrwertigen DQ-Konfiguration (beispielsweise X8, X16 oder X32 usw.) getestet. Mithilfe einer Adress-Komprimierung können mehrere Bits pro DQ gleichzeitig getestet werden. In Abhängigkeit von der Konfiguration kann die resultierende Fehlerrate nicht exakt sein und die Test-Zeit kann wesentlich reduziert sein. Diese Ergebnisse können beispielsweise durch zuvor zugewiesene DQ-Pins entweder nacheinander, parallel oder in einer Kombination davon ausgelesen werden. Der Block 3290 kann optional derart konfiguriert sein, dass dieser übersprungen wird, um Test-Zeit einzusparen, oder dass dieser freigegeben wird, um Testergebnisse bei jedem Schritt zu prüfen oder zu analysieren. Andererseits, falls JA, was bedeutet, dass die Anzahl von Zyklen kleiner als 1 eN ist, läuft der Fluss zu 3285, wo eine weitere Ermittlung durchgeführt wird, ob die letzte Adresse erreicht ist. Falls JA, schreitet der Fluss zu 3295 und die Anzahl von Bits mit WER höher als 1 e–N (d. h., Auslesen der Anzahl von fehlerhaften Bits) und deren zugehörige Adressen werden ausgelesen, wonach der Test abgeschlossen ist. Wie zuvor, können die Ergebnisse beispielsweise über zuvor zugewiesene DQ-Pins entweder nacheinander, parallel oder in einer Kombination davon ausgelesen werden. Andererseits, falls NEIN, was bedeutet, dass die letzte Adresse noch nicht erreicht wurde, kehrt der Fluss zu 3225 zurück, wo die Fehler-Zählereinrichtungen zurückgesetzt werden, und der Test läuft weiter.
-
33 ist ein Flussdiagramm 3305, welches Schritte des Durchführens eines eingebauten Lese-Fehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt. Der Fluss beginnt bei der Startphase 3307 entlang einem von zwei Pfaden 3310 und 3315, wobei ein Modusregister-Einstellbefehl für einen RER-Test zum Lesen von „1”-en (d. h., Pfad 3310) geladen wird, oder ein Modusregister-Einstellbefehl für einen RER-Test zum Lesen von „0”-en (d. h., Pfad 3315) geladen wird. Bei 3320 wird ein interner Takt gestartet. Der Fluss schreitet zu 3340 voran, wo ein K-Wert voreingestellt wird, wonach der Fluss zu 3325 voranschreitet, wo die Fehler-Zähleinrichtungen zurückgesetzt werden. Sämtliche Fehler-Zähleinrichtungen und Zyklus-Zähleinrichtungen sollten beim Start des Tests zurückgesetzt werden.
-
Nach der Startphase 3307 wird bei 3330 eine nächste Adresse und Daten erzeugt und/oder aktualisiert. Bei 3335 erzeugt eine Ablaufsteuerung ein RER-Zeitmuster. Danach wird bei 3345 ein Schreibe-Verifikations-Vorgang einmal durchgeführt.
-
Nach dem Schreibe-Verifikations-Vorgang bei 3345, wird bei 3347 eine Ermittlung durchgeführt, ob das Schreiben gescheitert ist. Falls JA, schreitet der Fluss zu 3365, wo ein Schreibefehler-Zählregister aktualisiert wird, und danach schreitet der Fluss zu 3367, welcher zur Verarbeitung einer nachfolgenden Adresse zu 3330 verzweigt, oder für einen weiteren Schreibe-Verifikations-Vorgang (welcher für J Neu-Schreibe-Vorgänge wiederholt werden kann, wobei J beispielsweise zwischen 5 und 20 oder in diesem Bereich liegt) eine alternative Route zurück zu 3345 nimmt. Andererseits, falls NEIN, was bedeutet, dass das Schreiben nicht gescheitert ist, schreitet der Fluss dann zu 3350, wo das gespeicherte Bit K-mal gelesen wird.
-
Bei 3355 werden die resultierenden Daten evaluiert und es wird eine Ermittlung durchgeführt, ob der Lesevorgang gescheitert ist. Falls der Lesevorgang gescheitert ist, schreitet der Fluss zu 3360, wo das Lesefehler-Zählregister aktualisiert wird. Andererseits, falls der Lesevorgang erfolgreich war, schreitet der Fluss zu 3270, wo das Muster-Zählregister aktualisiert wird.
-
Bei 3375 wird eine Ermittlung durchgeführt, ob die Anzahl von Muster 1 eN erreicht hat. Der Wert von N kann beispielsweise 15 betragen. Die Gesamtheit von Lesezyklen kann beispielsweise N × K sein. Falls NEIN, schreitet der Fluss zu 3385, wo die Zellposition und die Lesefehler-Zählregister ausgelesen werden, wonach der Fluss zu 3345, einem Schreibe-Verifikations-Sequenz-Test zurückkehrt. Die Ergebnisse können beispielsweise über zuvor zugewiesene DQ-Pins entweder nacheinander, parallel oder in einer Kombination davon ausgelesen werden. Andererseits, falls JA, was bedeutet, dass die Anzahl von Muster kleiner als 1 eN ist, schreitet der Fluss zu 3380 voran, wo eine weitere Ermittlung durchgeführt wird, ob die letzte Adresse erreicht ist. Falls JA, schreitet der Fluss zu 3390 voran und die Anzahl von Bits mit RER höher als 1 e–(N+K) (d. h., Auslesen der Anzahl von fehlerhaften Bits) und deren zugehörige Adressen werden ausgelesen, wonach der Test abgeschlossen ist. Wie zuvor, können die Ergebnisse beispielsweise über zuvor zugewiesene DQ-Pins entweder nacheinander, parallel oder in einer Kombination davon ausgelesen werden. Andererseits, falls NEIN, was bedeutet, dass die letzte Adresse noch nicht erreicht wurde, kehrt der Fluss zu 3225 zurück, wo die Fehler-Zählereinrichtungen zurückgesetzt werden, und dann zu 3330, wo die nächste Adresse und Daten erzeugt und/oder aktualisiert werden, und der Test läuft weiter.
-
34 ist ein Flussdiagramm 3405, welches Schritte des Durchführens eines eingebauten Bitfehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt. Der Fluss beginnt bei 3410, wo in einen Testmodus eingetreten wird, und entweder ein WER-Test für die Daten „0” oder „1” initiiert, oder ein RER-Test für die Daten „0” oder „1” initiiert wird. Der Fluss schreitet zu 3415 voran, wo die Schreibe- und Lese-Pulsweite eingestellt werden. Bei 3420 kann ein Spannungsbereich und -Schritt eingestellt werden. Mit anderen Worten, Register für Lese/Schreibe-Spannungsbereich und -Spannungsschritt können konfiguriert werden. Bei 3425 können eine Startspannung und -Richtung eingestellt werden. Beispielsweise kann ein Startspannungs- und Inkrement- oder Dekrement-Kennzeichen konfiguriert werden. Bei 3430 kann der Test gestartet werden. Bei 3435 kann der WER- und/oder RER-Testfluss durchgeführt werden, wie mit Bezug auf die 32 und 33 dargestellt und beschrieben ist. Bei 3440 werden die Ergebnisse beispielsweise durch zuvor zugewiesene DQ-Pins entweder der Reihe nach, parallel oder in einer Kombination davon ausgelesen. Bei 3445 wird eine Ermittlung durchgeführt, ob der gesamte Spannungsbereich getestet wurde, oder ob der gesamte Bereich der Pulsweite getestet wurde. Falls JA, ist der Test abgeschlossen. Andererseits, falls NEIN, was bedeutet, dass zusätzliche Spannungen innerhalb des Spannungsbereichs noch zu testen sind, oder zusätzliche Pulsweiten noch zu testen sind, schreitet der Fluss zu 3450, wo die Testspannung auf das nächste programmierte Spannungsniveau eingestellt werden kann, oder die Pulsweite auf die nächste programmierte Pulsweite eingestellt werden kann. Der Fluss kehrt dann zu 3435 zurück, wo ein zusätzlicher WER- und/oder RER-Test weiterläuft oder anderweitig wiederholt wird.
-
Bei einigen Ausführungsformen können die WER-Daten als Wahrscheinlichkeit des Nicht-Schaltens (1/p) über die Schreibespannung (oder 1/p über die Schreibe-Pulsweite) grafisch dargestellt werden, wobei p = Wahrscheinlichkeit des Schaltens (nicht gezeigt). Ein Zählen von Fehlern kann ungeachtet des vorhergehenden Fehler-Zählers bei jeder Spannung oder Pulsweite ausgeführt werden. Die Schreibe-Fehlerrate kann gleich dem Schreibefehler-Zähler geteilt durch die Gesamtheit der gültigen Schreibe-Versuche sein. In diesem Fall entspricht ein ungültiger Schreibe-Versuch dem Fall, bei welchem der Reset bzw. das Zurücksetzen fehlgeschlagen ist. Ein Fehlschlagen des Zurücksetzens kann zwei Dinge bedeuten: (1) das Bit ist hängengeblieben; oder (2) ein Rückspringen ist aufgetreten. Beispielsweise in dem Fall, bei welchem ein WER „0” durchgeführt wird, wird zunächst „1” geschrieben (d. h., Reset-Vorgang), anschließend wird verifiziert (d. h., es wird erwartet, dass „1” gelesen wird), dann wird „0” geschrieben und es wird erwartet, dass danach eine „0” gelesen wird. Falls das Zurücksetzen fehlgeschlagen ist, wird dann eine „0” gelesen, wobei eine „1” erwartet wurde. Der Zyklus, dessen Reset fehlgeschlagen ist, kann aus den WER-Berechnungen ausgeschlossen werden. Falls der Ausgangszustand des Bits gleich „0” ist, bedeutet dies, dass dieses nicht geschaltet hat (oder anderweitig bei „0” hängengeblieben ist). Falls der Ausgangszustand des Bits gleich „1” ist, bedeutet dies, dass dieses auf „0” geschaltet hat, obwohl „1” geschrieben wurde. Dies wird als Zurückspringen bezeichnet, was üblicherweise bei höheren Schreibespannungen auftritt. Darüber hinaus lässt sich ableiten, dass ein Zurückspringen auftritt, wenn sowohl das Zurücksetzen als auch Schreibe-Zyklen gleichzeitig fehlschlagen.
-
Der RER-Fall ist ähnlich, obwohl dahingehend konzeptionell etwas unterschiedlich, dass RER-Daten als Wahrscheinlichkeit des Schaltens über die Spannung oder Pulsweite grafisch dargestellt werden können. Ausführungsformen des erfinderischen Konzepts ermöglichen es, dass sämtliche Rohdaten in den Tester oder Mikrocontroller eingelesen werden. Der Ingenieur oder Techniker, welcher die Daten analysiert, kann entscheiden, welche Daten zu verwenden sind.
-
35 ist ein beispielhaftes Wellenform-Zeitdiagramm 3505 eines eingebauten Daten-„1”-WER-Selbsttests gemäß der erfinderischen Konzepte. Wie ersichtlich ist, folgt auf einen Schreibe-Befehl ein Lese-Befehl, und die Reihenfolge wiederholt sich. Wie ebenso ersichtlich, wird, wenn IOx auf ein niedriges Niveau gezogen wird, die Bitleitung BLx bei 3510 auf ein relativ höheres Spannungsniveau gesetzt, und WR0 (d. h., „0”) wird geschrieben. Die BLx wird bei 3525 auf ein relativ niedrigeres Spannungsniveau gesetzt, und die Daten werden bei 3515 gelesen. Bei 3520 wird die Source-Leitung SLx auf ein relativ höheres Spannungsniveau gesetzt, und WR1 (d. h., „1”) wird geschrieben. Danach wird BLx bei 3535 auf ein relativ niedrigeres Spannungsniveau gesetzt und die Daten werden bei 3530 gelesen.
-
Obwohl nicht gezeigt, ist der eingebaute Daten-„1”-RER-Selbsttest ähnlich, mit dem Hauptunterschied, dass nach dem anfänglichen Schreiben der Lesevorgang (beispielsweise bei 3525, 3535) vielfach wiederholt werden kann (beispielsweise 1.000-mal, 10.000-mal usw.). Es können unterschiedliche Muster getestet werden. Beispielsweise kann jedes Muster für 10.000 Zyklen getestet werden. Nach dem abschließenden Zyklus kann der Datenwert für die Speicherzelle evaluiert werden, um zu ermitteln, ob die Daten gestört wurden. Solch ein Test kann beispielsweise über Nacht laufen und morgens überprüft werden, um die Ergebnisse durchzusehen und zu analysieren.
-
36 ist ein beispielhaftes Wellenform-Zeitdiagramm 3605 eines eingebauten Daten-„0”-WER-Selbsttests gemäß der erfinderischen Konzepte. Wie ersichtlich ist, folgt auf einen Schreibe-Befehl ein Lese-Befehl, und die Reihenfolge wiederholt sich. Wie ebenso ersichtlich, wird, wenn IOx auf ein hohes Niveau gezogen wird, die Source-Leitung SLx bei 3610 auf ein relativ höheres Spannungsniveau gesetzt, und WR1 (d. h., „1”) wird geschrieben. Die BLx wird bei 3625 auf ein relativ niedrigeres Spannungsniveau gesetzt, und die Daten werden bei 3615 gelesen. Bei 3620 wird die Bitleitung BLx auf ein relativ höheres Spannungsniveau gesetzt, und WR0 (d. h., „0”) wird geschrieben. Danach wird BLx bei 3635 auf ein relativ niedrigeres Spannungsniveau gesetzt und die Daten werden bei 3630 gelesen.
-
Obwohl nicht gezeigt, ist der eingebaute Daten-„0”-RER-Selbsttest ähnlich, mit dem Hauptunterschied, dass nach dem anfänglichen Schreiben der Lesevorgang (beispielsweise bei 3625, 3635) vielfach wiederholt werden kann (beispielsweise 1.000-mal, 10.000-mal usw.). Es können unterschiedliche Muster getestet werden. Beispielsweise kann jedes Muster für 10.000 Zyklen getestet werden. Nach dem abschließenden Zyklus kann der Datenwert für die Speicherzelle evaluiert werden, um zu ermitteln, ob die Daten gestört wurden. Solch ein Test kann beispielsweise über Nacht laufen und morgens überprüft werden, um die Ergebnisse durchzusehen und zu analysieren.
-
37 ist ein Flussdiagramm 3705, welches Schritte des Durchführens eines eingebauten Bitfehlerraten-Selbsttests gemäß der erfinderischen Konzepte darstellt. Der Fluss beginnt bei 3710, wo eine Ermittlung durchgeführt wird, ob ein WER-Test durchgeführt wurde. Falls JA, schreitet der Schluss zu 3715, wo die WER-Testergebnisse analysiert werden. Danach können bei 3720 die Spannungsniveaus und/oder Pulsweiten für eine Adressposition angepasst werden. Bei einer alternativen Ausführungsform können die Spannungsniveaus und/oder Pulsweiten bei 3725 für ein Adress-Segment angepasst werden. Bei einer noch weiteren alternativen Ausführungsform können die Spannungsniveaus und/oder Pulsweiten bei 3730 für einen gesamten Chip angepasst werden.
-
Andererseits, falls NEIN, was bedeutet, dass ein WER-Test noch nicht durchgeführt wurde, schreitet der Fluss zu 3735, wo eine Ermittlung durchgeführt wird, ob ein RER-Test durchgeführt wurde. Falls NEIN, kehrt der Fluss für weitere Ermittlungen und eine Verarbeitung zu 3710 zurück. Andererseits, falls JA, schreitet der Fluss zu 3740 voran, wo RER-Testergebnisse analysiert werden. Danach können die Spannungsniveaus und/oder Pulsweiten bei 3745 für eine Adressposition angepasst werden. Bei einer alternativen Ausführungsform können die Spannungsniveaus und/oder Pulsweiten bei 3750 für ein Adress-Segment angepasst werden. Bei einer noch weiteren alternativen Ausführungsform können die Spannungsniveaus und/oder Pulsweiten bei 3755 für einen gesamten Chip angepasst werden. Das Analysieren der WER- oder RER-Daten erfordert eine geeignete Verarbeitungsleistung, welche ein geeignetes analytisches Softwareprogramm betreibt. Es kann effizienter sein, die Analyse Off-Chip durchzuführen. Solch eine Off-Chip-Analyse kann in einem SoC mit dieser Fähigkeit, welcher mit dem Speicher gekoppelt ist (im Fall von SiP), oder auf einem Testcomputer (beispielsweise PC) durchgeführt werden. Die Ergebnisse der Analyse können verwendet werden, um beispielsweise 3720, 3725, 3730, 3745, 3750 und 3755 durchzuführen. Zusätzlich kann der Speicherchip derart gestaltet sein, dass dieser solche eingebauten Merkmale besitzt.
-
Es ist ersichtlich, dass die Elemente und Ermittlungen in den dargestellten Flussdiagrammen und Beschreibungen hierin nicht in der beschriebenen spezifischen Reihenfolge auftreten müssen, sondern dass diese Elemente und Ermittlungen vielmehr zu unterschiedlichen Zeitpunkten oder in einer unterschiedlichen Reihenfolge durchgeführt werden können.
-
38 ist eine beispielhafte Systemabbildung 3800, welche eine eingebaute Bitfehlerraten-Selbsttest-Generator und -Steuerlogik 3830 gemäß der erfinderischen Konzepte enthält. Die BER-Steuerlogik 3830 kann mit einem Systembus 3805 elektrisch verbunden sein. Das Berechnungssystem 3800 kann ebenso einen Takt 3810, einen Direktzugriffsspeicher (RAM), einen Flash-Speicher oder MTT-Speicher 3815, eine intelligente Speicher-Steuervorrichtung 3845, eine Benutzer-Schnittstelle 3820, ein Modem 3825, wie einen Basisband-Chipsatz, und/oder eine automatisierte Testausrüstung (ATE) 3835, welche jeweils mit dem Systembus 3805 elektrisch gekoppelt sein können, enthalten.
-
Falls das Berechnungssystem 3800 eine mobile Vorrichtung ist, kann dieses ferner eine Batterie 3840 enthalten, welche das Berechnungssystem 3800 mit Leistung versorgt. Obwohl in 38 nicht gezeigt, kann das Berechnungssystem 3800 ferner einen Anwendungs-Chipsatz, einen Kamera-Bildprozessor (CIS), einen mobilen DRAM und dergleichen enthalten. Die intelligente Speicher-Steuervorrichtung 3845 und der Speicher 3815 können eine Festplatte (SSD) bilden, welche einen nichtflüchtigen Speicher verwendet, um Daten zu speichern.
-
In beispielhaften Ausführungsformen kann das Berechnungssystem 3800 als Computer, tragbarer Computer, Ultra-Mobil-PC (UMPC), Arbeitsstation, Netbook, PDA, Web-Tablet, drahtloses Telefon, Mobiltelefon, Smartphone, E-Book, PMP (tragbarer Multimediaspieler), Digitalkamera, digitaler Audio-Recorder/Spieler, digitaler Bild/Video-Recorder/Spieler, tragbare Spielekonsole, Navigationssystem, Blackbox, 3-D-Fernseher, eine Vorrichtung, welche in der Lage ist, Informationen drahtlos zu übertragen und zu empfangen, eine von verschiedenen elektronische Vorrichtungen, welche ein Heimnetzwerk bilden, eine von verschiedenen elektronischen Vorrichtungen, welche ein Computernetzwerk bilden, eine von verschiedenen elektronischen Vorrichtungen, welche ein Telematik-Netzwerk bilden, RFID, oder eine von verschiedenen elektronischen Vorrichtungen, welche ein Berechnungssystem bilden, verwendet werden.
-
Die nachfolgende Erörterung ist dazu gedacht, um eine kurze, allgemeine Beschreibung einer geeigneten Maschine oder Maschinen bereitzustellen, in welchen bestimmte Aspekte der Erfindung implementiert werden können. Typischerweise enthält die Maschine oder die Maschinen einen Systembus, an welchem Prozessoren, ein Speicher, zum Beispiel ein Direktzugriffsspeicher (RAM), ein Nurlesespeicher (ROM), oder ein anderes zustandserhaltendes Medium, Speichervorrichtungen, eine Videoschnittstelle und Eingangs/Ausgangs-Schnittstellenanschlüsse angebracht sind. Die Maschine oder die Maschinen können zumindest teilweise durch einen Eingang von herkömmlichen Eingangsvorrichtungen, wie Tastaturen, Mäusen usw. sowie durch Anweisungen von einer anderen Maschine, eine Interaktion mit einer Virtual-Reality(VR)-Umgebung, biometrisches Feedback oder ein anderes Eingangssignal gesteuert werden. Wie hierin verwendet, ist der Ausdruck „Maschine” so gedacht, dass dieser ganz allgemein eine einzelne Maschine, eine virtuelle Maschine oder ein System von kommunizierenden gekoppelten Maschinen, virtuellen Maschinen oder Vorrichtungen, welche zusammen arbeiten, umfasst. Beispielhafte Maschinen enthalten Berechnungsvorrichtungen, wie Personalcomputer, Arbeitsstationen, Server, tragbare Computer, tragbare Vorrichtungen, Telefone, Tablets usw., sowie Transport-Vorrichtungen, wie private oder öffentliche Beförderungsmittel, wie Automobile, Züge, Taxen usw.
-
Die Maschine oder die Maschinen können eingebettete Steuervorrichtungen, wie programmierbare oder nicht programmierbare logische Vorrichtungen oder Arrays, anwendungsspezifische integrierte Schaltungen (ASICs), eingebettete Computer, Smart-Karten und dergleichen enthalten. Die Maschine oder die Maschinen können eine oder mehrere Verbindungen zu einer oder mehreren entfernten Maschinen verwenden, wie durch eine Netzwerk-Schnittstelle, ein Modem, oder eine andere kommunikative Kopplung. Maschinen können mittels eines physikalischen und/oder logischen Netzwerks, wie eines Intraets, des Internets, öffentlichen Netzwerken, Breitband-Netzwerken usw. verbunden sein. Der Fachmann wird erkennen, dass die Netzwerkkommunikation verschiedene drahtgebundene und/oder drahtlose Nahbereichs- oder Distanz-Träger und Protokolle, einschließlich Radiofrequenz (RF), Satelliten, Mikrowellen, Institute of Electrical and Electronics Engineers (IEEE) 545.11, Bluetooth, Optik, Infrarot, Kabel, Laser usw. verwenden kann.
-
Ausführungsformen der Erfindung können mit Bezug oder in Zusammenhang mit zugehörigen Daten, einschließlich Funktionen, Vorgängen, Datenstrukturen, Anwendungsprogrammen usw., welche, wenn auf diese durch eine Maschine zugegriffen wird, dazu führen, dass die Maschine Aufgaben durchführt oder abstrakte Datentypen oder Niedrig-Niveau-Hardware-Zusammenhänge definiert. Zugehörige Daten können beispielsweise in dem flüchtigen und/oder nichtflüchtigen Speicher, beispielsweise RAM, ROM usw., oder in anderen Speichervorrichtungen und deren zugehörigen Speichermedien, einschließlich Festplatten, Floppy-Disks, optische Speicher, Bänder, Flash-Speicher, Speicher-Sticks, digitale Videodisks, biologische Speicher usw. gespeichert werden. Zugehörige Daten können über Übertragungsumgebungen, einschließlich dem physikalischen und/oder logischen Netzwerk in Form von Paketen, seriellen Daten, parallelen Daten, sich ausbreitenden Signalen usw. abgegeben werden, und können in einem komprimierten oder verschlüsselten Format verwendet werden. Zugehörige Daten können in einer verteilten Umgebung verwendet werden und für einen Maschinenzugriff lokal und/oder entfernt gespeichert werden.
-
Nachdem die Grundsätze der Erfindung mit Bezug auf dargestellte Ausführungsformen beschrieben und dargestellt wurden, ist erkennbar, dass die dargestellten Ausführungsformen hinsichtlich der Anordnung und Details modifiziert werden können, ohne von solchen Grundsätzen abzuweichen, und diese können in jeglicher gewünschten Art und Weise kombiniert werden. Und obwohl die vorstehende Erörterung sich auf bestimmte Ausführungsformen konzentriert, werden andere Konfigurationen mit in Erwägung gezogen. Insbesondere sind, auch wenn Ausdrücke wie „gemäß einer Ausführungsform der Erfindung” oder dergleichen hierin verwendet werden, diese Ausdrücke so gedacht, dass diese allgemein Ausführungsform-Möglichkeiten referenzieren, und diese sind nicht dahingehend gedacht, um die Erfindung auf bestimmte Ausführungsform-Konfigurationen zu beschränken. Wie hierin verwendet, können diese Ausdrücke die gleiche oder unterschiedliche Ausführungsformen, welche mit anderen Ausführungsformen kombinierbar sind, referenzieren.
-
Ausführungsformen der Erfindung können ein nichtflüchtiges maschinenlesbares Medium, welches Anweisungen aufweist, welche durch einen oder mehrere Prozessoren ausführbar sind, enthalten, wobei die Anweisungen Anweisungen aufweisen, um die Elemente der erfinderischen Konzepte, wie hierin beschrieben, durchzuführen.
-
Es ist erkennbar, dass die erfinderischen Konzepte nicht durch irgendeines der in der vorstehenden Kurzfassung beschriebenen Ausführungsformen beschränkt sind, und dass zahlreiche weitere Aspekte und Ausführungsformen, welche die vorliegenden erfinderischen Konzepte verwenden, für den Fachmann aus der hierin vorgesehenen Offenbarung auf einfache Art und Weise entnommen werden. Details derselben und weitere Ausführungsformen sind in der detaillierten Beschreibung und den beigefügten Abbildungen enthalten.
-
Die vorstehenden darstellenden Ausführungsformen sollen nicht dahingehend ausgelegt werden, dass diese die Erfindung davon beschränken. Obwohl wenige Ausführungsformen beschrieben wurden, wird der Fachmann auf einfache Art und Weise erkennen, dass zahlreiche Modifikationen bei den Ausführungsformen möglich sind, ohne von den neuen Lehren und Vorteilen der vorliegenden Offenbarung materiell abzuweichen. Entsprechend sollen sämtliche dieser Modifikationen im Schutzbereich dieses erfinderischen Konzepts, wie in den Ansprüchen definiert, enthalten sein.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 6657914 [0024]
- US 6754866 [0024]
- US 7365557 [0024]
- US 7466160 [0024]
- US 7466603 [0024]
- US 7673193 [0024, 0025]
- US 7768847 [0024]
- US 7779311 [0024]
-
Zitierte Nicht-Patentliteratur
-
- Institute of Electrical and Electronics Engineers (IEEE) 545.11 [0218]