-
Die
Erfindung betrifft eine Speichervorrichtung mit einer langen Lesezeit,
verglichen mit der Schreibzeit, sowie ein Verfahren zum Vergleich
von Daten, die in Speicherbereichen eines derartigen Speichers gespeichert
sind, mit ankommenden Daten, die in einer Schreibanforderung enthalten
sind.
-
Neue
Speichertechnologien, wie zum Beispiel der magnetoresistive Random
Access Memory (MRAM) und der ferroelektrische RAM (FeRAM) haben
aufgrund ihrer Möglichkeiten,
nichtflüchtigen Speicher
mit einem Bündel
sinnvoller Eigenschaften der gegenwärtigen Speichertechnologien,
wie zum Beispiel hohe Dichte, hohe Geschwindigkeit, niedriger Energieverbrauch
und niedrige Kosten, zu verbinden, immer stärkere Beachtung gefunden.
-
Eine
bekannte MRAM-Technologie basiert auf Speicherzellen, die eine Schichtenstruktur
mit einem Element mit magnetischem Tunnelübergang (magnetic tunnelling
junction – MTJ)
zwischen zwei sich kreuzenden Elektroden aufweisen. Die Speicherzellen
sind üblicherweise
in Form einer Matrix angeordnet. Die Elektroden werden als Bitleitung
und Wortleitung bezeichnet. Das MTJ-Element fungiert als programmierbarer
Widerstand, der zwei verschiedene Widerstandwerte aufweist.
-
Bei
einem Schreibvorgang wird eine Speicherzelle ausgewählt, indem
ein Strom sowohl durch die Bitleitung als auch durch die Wortleitung
durchgeleitet wird. An ihrem Kreuzungspunkt wirken die beiden Magnetfelder,
die durch die Ströme
der Wortleitung und der Bitleitung erzeugt werden, mit dem magnetischen
Moment der Schichten des MTJ-Elements zusammen. Die beiden Felder
verstärken
ein Feld, das stark genug ist, um das MTJ-Element am Schnittpunkt
der ausgewählten
Wortleitung und der ausgewählten
Bitleitung zwischen Widerstandszuständen hin- und herzuschalten.
Der Widerstandzustand, der in die Zelle programmiert ist, hängt von
der Richtung des Stroms in der Bitleitung ab.
-
Bei
einem Lesevorgang wird ein geringer Abtaststrom an die ausgewählte Bitleitung
angelegt, um den Widerstandszustand einer ausgewählten Speicherzelle zu ermitteln.
Um sicherzustellen, dass der Abtaststrom nur durch die ausgewählte Zelle
fließt, wird
ein Auswahlelement, wie zum Beispiel ein Transistor, mit jeder Speicherzelle
zwischen der Bitleitung und einer dritten Elektrode, die als Basiselektrode
bezeichnet wird, verbunden.
-
Der
Auswahltransistor des ausgewählten Speichers
wird in einen leitenden Zustand geschaltet, wenn eine Abtastspannung
an der ausgewählten Bitleitung
und der ausgewählten
Basiselektrode angelegt wird. Da die Auswahltransistoren sämtlicher anderen
Speicherzellen einen Stromfluss durch sie hindurch blockieren, fließt der Abtaststrom
nur an dem Schnittpunkt zwischen der aktivierten Bitleitung und
der Basiselektrode durch die Zelle. Je nach dem Widerstandszustand
dieser Speicherzelle übernimmt der
Abtaststrom einen von zwei möglichen
Stromwerten, die auf die beiden möglichen Bitwerte hinweisen,
die in der Speicherzelle gespeichert werden können. Eine Speicherzelle, die
einen Auswahltransistor zusammen mit einem MTJ-Element aufweist, wird
als 1T1MTJ-Speicherzelle bezeichnet.
-
Der
Hauptnachteil von MRAM-Vorrichtungen, die auf 1T1MTJ-Speicherzellen
basieren, besteht darin, dass die Dichte von Speicherzellen niedriger
ist als die von konkurrierenden Halbleiterspeichervorrichtungen.
Dies ist auf die bedeutende Größe der Speicherzellen
zurückzuführen und
wird vor allem durch den Auswahltransistor verursacht. Der Auswahltransistor
ist wesentlich größer als
das MTJ-Element der Speicherzelle, zu dem er gehört. Durch das Weglassen des
Transistors der Speicherzellen ist eine wesentlich höhere Zellendichte
möglich,
die vergleichbar ist mit der von Halbleiterspeichervorrichtungen
und die noch größer sein
kann, wenn eine dreidimensionale Zellenanordnung verwendet wird.
Speicherzellen mit nur einem MTJ-Element und ohne Transistor werden
als 0T1MTJ-Speicherzellen
bezeichnet.
-
Ein
erster wesentlicher Nachteil von 0M1MTJ-Speicherzellen besteht darin,
dass durch das Weglassen des Transistors die Trennschärfe eines
Lesevorgangs beseitigt wird. Bei einem 0T1MTJ-Speicher wird der
Abtaststrom eines Lesevorgangs in Beiträge von mehreren Strompfaden durch
benachbarte Zellen, die eine Verbindung zwischen der aktivierten
Bitleitung und der Wortleitung herstellen, aufgeteilt. Jeder Pfad
weist eine unterschiedliche Speicherzelle auf, da es keine Möglichkeit
gibt, die Wahl einer Speicherzelle rückgängig zu machen. Daher ist es
schwierig, den Zustand einer spezifischen Speicherzelle im Lesevorgang
zu ermitteln. Dieses Problem wird hier auch als Verlustproblem („leakage
Problem") bezeichnet.
-
Alle
bekannten Lösungen
für dieses
Problem führen
folglich zu einer größeren Zeitspanne
für das Lesen.
Die Zeitspanne, die benötigt
wird, um den Bitwert, der in einer Speicherzelle enthalten ist,
zu bestimmen, wird auch als Lesezeit bezeichnet. Lesezeiten von
0T1MTJ-Speicherzellen liegen gegenwärtig in einer Größenordnung
von einer Mikrosekunde. Eine Lösung,
wie in
US 2003/0090934 beschrieben, besteht
zum Beispiel darin, den Zustand einer Speicherzelle zu lesen, indem
zunächst
gelesen wird, dann in die Zelle geschrieben wird, dann erneut gelesen
wird und mit dem vorherigen Zustand verglichen wird. Wird ein Unterschied
entdeckt, wird der ursprüngliche
Wert durch einen weiteren Schreibschritt wiederhergestellt. Es ist
offensichtlich, dass diese Art eines Lesevorgangs wesentlich längere Zeit
beansprucht als ein Schreibvorgang. Die Zeitspanne, die erforderlich
ist, um einen Schreibvorgang durchzuführen, wird als Schreibzeit
bezeichnet. Spricht man von einem Vergleich der Lesezeit einer Speichervorrichtung
mit der Schreibzeit oder der Lesezeit einer anderen Speichervorrichtung,
wird angenommen, dass die zu vergleichenden Vorgänge eine ähnliche oder die gleiche Datenmenge
aufweisen.
-
Ein
weiterer wesentlicher Nachteil von 0T1MTJ-Speicherzeillen besteht
darin, dass die lange Lesezeit die Verwendung von energiesparenden Schreibverfahren,
die von 1T1MTJ-basierten Speichervorrichtungen bekannt sind, verhindert.
Derartige energiesparende Schreibverfahren nutzen einen Vergleich
zwischen ankommenden Schreibdaten und gespeicherten Speicherdaten.
Genauer gesagt werden Schreibdaten, die mit einer Schreibanforderung empfangen
werden, mit den Daten verglichen, die bereits in den Speicherzellen
gespeichert sind und die den Adressdaten entsprechen, die mit der Schreibanforderung
empfangen werden. Nach dem Vergleich werden nur diejenigen Speicherzellen überschrieben,
die Bitwerte speichern, die sich von den jeweiligen Schreibdaten
unterscheiden.
-
Ein
Schreibvorgang, der einen derartigen Vergleich nutzt, wird hier
als ein bedingter Schreibvorgang bezeichnet. Bei einem bedingten
Schreibvorgang wird nur ein Teil der Speicherzellen, die von einer
Schreibanforderung adressiert werden, tatsächlich mit anderen Werten überschrieben.
Es wird Energie gespart, weil die Energie, die für einen Schreibvorgang, der,
wie beschrieben, einen Lese-, Vergleichs- und bedingten Schreibvorgang
umfasst, benötigt
wird, geringer ist als die Energie, die für das unbedingte Über schreiben
sämtlicher
adressierten Speicherzellen ohne vorheriges Vergleichen verbraucht
wird.
-
Eine
MRAM-Speichervorrichtung nach dem Stand der Technik, bei der ein
energiesparendes Verfahren zum Schreiben in einen nichtflüchtigen
Speicher mit 1T1MTJ-Speicherzellen
eingesetzt wird, ist in
US 2002/0159286 A1 beschrieben.
-
In
US 2002/0159286 A1 wird
dieses Verfahren eingesetzt, indem eine Speicherzelle für Lesedaten
und eine Speicherzelle für
Schreibdaten verwendet wird. Speicherdaten aus den Speicherzellen,
die von einer laufenden Schreibanforderung adressiert werden, werden
vorübergehend
in der Speicherzelle für
Lesedaten gespeichert. Ankommende Schreibdaten werden vorübergehend
in der Speicherzelle für Schreibdaten
gespeichert. Eine Datenvergleichsschaltung vergleicht die Schreibdaten
und die Speicherdaten, die derselben Speicheradresse zugeordnet
sind. Sind die entsprechenden Daten identisch, endet der Schreibvorgang.
Sind die entsprechenden Daten unterschiedlich, werden ein Wortleitungstreiber
und ein Bitleitungstreiber aktiviert, um die jeweilige Speicherzelle
auszuwählen
und zu überschreiben.
-
Das
Schreibverfahren aus
US
2002/0159286 A1 nutzt an sich schon die Tatsache, dass
der Unterschied zwischen der Schreibzeit, die für einen bedingten Schreibvorgang
einerseits und einen unbedingten Schreibvorgang andererseits erforderlich
ist, unerheblich ist. Durch die Verwendung des energiesparenden
Schreibverfahrens in einer Speichervorrichtung mit 0T1MTJ-Speicherzellen
oder, allgemein gesagt, in einer beliebigen Speichervorrichtung
mit einer langen Lesezeit, verglichen mit der Schreibzeit, würde der
bedingte Schreibvorgang länger
dauern als die lange Zeitspanne, die bereits für einen Lesevorgang benötigt wird.
Dadurch würde
die Speichervorrichtung zu einem schwachen Konkurrenten für vorhandene
Halbleitertechnologien, wie zum Beispiel den Flashspeicher.
-
Kurz
gefasst bietet die gegenwärtige MRAM-Technologie
einerseits eine eher niedrige Zelldichte, verglichen mit konkurrierenden
Halbleitertechnologien. MRAM-Vorrichtungen
mit hoher Dichte jedoch können
nur auf Kosten einer langen Lesezeit bereitgestellt werden. Eine
lange Lesezeit verhindert die Verwendung eines Schreibvorgangs, der
einen Leseschritt beinhaltet, zum Beispiel für einen Vergleich mit vorher
gespeicherten Daten, und insbesondere, um Energie bei einem Schreibvorgang
zu sparen.
-
Es
ist festzustellen, dass
US 6052302 ein
bitweises bedingtes Schreibverfahren und -vorrichtung zur Minimierung
des Energieverbrauchs in magnetoresistiven Random Access Memory
(MRAM)-Systemen mit integrierter Schaltung (integrated circuit – IC) offenbart.
Bei einer ersten Ausführungsform
wird der laufende logische Zustand jedes Datenbits eines Wortes,
das in dem MRAM gespeichert ist, mit einem entsprechenden Eingabebit
verglichen, und nur diejenigen gespeicherten Daten, die unterschiedlich sind,
werden geschrieben.
-
Eine
lange Lesezeit kann zwar akzeptabel sein bei einem Massendatenspeicher,
zum Beispiel, ein hoher Energieverbrauch wäre jedoch ein beträchtlicher
Nachteil in Vergleich mit vorhandenen Technologien.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, eine Speichervorrichtung
mit einer langen Lesezeit vorzusehen, die mindestens teilweise die
erwähnten
Nachteile einer Lesezeit, die im Vergleich mit der Schreibzeit lang
ist, auszugleichen.
-
Eine
weitere Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
zum Vergleichen von Daten mit Speicherdaten, die in Speicherbereichen
des Speichers gespeichert sind, vorzusehen, welches auch bei einer
Speichervorrichtung mit einem langsamen Lesezugriff, verglichen
mit dem Schreibzugriff, sinnvoll ist.
-
Gemäß einem
ersten Gesichtspunkt der Erfindung ist eine Speichervorrichtung
gemäß Anspruch
1 vorgesehen.
-
Diese
Speichervorrichtung des ersten Gesichtspunkts der Erfindung beruht
auf der allgemeinen Vorstellung, dass die Nachteile einer langen
Lesezeit in Vergleich mit einer Schreibzeit mindestens teilweise
durch paralleles Lesen mehrerer Daten, die in dem Speicher gespeichert
sind, ausgeglichen werden können.
Da ein Leseschritt mehrerer Daten parallel in etwa derselben Zeit
durchgeführt
werden kann wie ein Leseschritt für ein Bit, kann ein Lesevorgang, bei
dem eine größere Menge
an Speicherdaten gelesen werden sol len, in einer Speichervorrichtung
mit einer langen Lesezeit etwa genau so schnell durchgeführt werden
wie ein serieller Lesevorgang.
-
Die
Lesesteuereinheit ist geeignet, Speicherdaten in den ersten temporären Speicher
zu lesen, während
die Vergleichseinheit einen Vergleich von Schreibdaten, die in dem
zweiten temporären
Speicher gespeichert sind, mit entsprechenden Speicherdaten in dem
ersten temporären
Speicher durchführt.
-
Der
zweite temporäre
Speicher weist eine Speicherkapazität auf, die größer ist
als die des ersten temporären
Speichers. Das Verhältnis
der Speicherkapazitäten
des ersten und des zweiten temporären Speichers ist vorzugsweise
gleich oder liegt im Bereich des Verhältnisses zwischen der Schreibzeit und
der Lesezeit des Speichers. Falls die Schreibzeit in den Speicher
zum Beispiel halb so lang ist wie die Lesezeit, wird der zweite
temporäre
Speicher für Schreibdaten
mit einer doppelt so großen
Speicherkapazität
wie die des ersten temporären
Speichers für
Speicherdaten versehen. Die zusätzliche
Speicherkapazität
ist eine Form dieser Ausführung,
die als ein zusätzlicher
zweiter temporärer
Speicher vorgesehen ist. Bei einer anderen Form wird ein einzelner
zweiter temporärer
Speicher mit einer größeren Kapazität verwendet.
-
Die
Speichervorrichtung der Erfindung weist eine Lesesteuereinheit auf,
die mit dem Speicher gekoppelt und geeignet ist, parallel Speicherdaten
aus mehreren Bereichen oder aus sämtlichen Bereichen des Speichers,
die durch Adressdaten definiert sind, die in einer ankommenden Schreibanforderung
enthalten sind, zu lesen. Um den Lesevorgang durchzuführen, ist
die Lesesteuereinheit vorzugsweise geeignet, mindestens eine Leseanforderung,
die die entsprechenden Adressdaten aufweist, zu erzeugen und sie
an den Speicher zu senden.
-
„Paralleles
Lesen" bedeutet,
dass mehrere Daten, wie zum Beispiel Bits, Bytes oder Wörter, die in
mehreren Speicherzellen des Speichers gespeichert sind, mit mindestens
teilweiser zeitlicher Überlappung
gelesen werden. Paralleles Lesen wird im Folgenden auch als paralleler
Lesevorgang bezeichnet. Ein Speicherbereich ist in einer Ausführungsform eine
Speicherzelle, in einer anderen Ausführungsform eine Anzahl von
Speicherzel len, wie zum Beispiel eine Zeile oder eine Spalte von
Speicherzellen oder eine beliebige andere Kombination von Speicherzellen.
-
Ein
paralleler Lesevorgang benötigt
etwa dieselbe Zeit zum Lesen mehrerer Daten aus dem Speicher wie
ein einzelner Lesevorgang eines Bitwertes aus dem Speicher. Daher
ist der Zeitgewinn im Vergleich mit einem seriellen Lesevorgang
umso größer, je
größer die
Anzahl der Daten, die parallel gelesen werden, und je größer die
zeitliche Überlappung
ist. In einer Ausführungsform
erfolgt das Lesen aus den verschiedenen Speicherzellen zur selben Zeit,
das heißt,
mit der größten zeitlichen Überlappung,
die technisch möglich
ist. Dies verringert die Lesezeit noch weiter, insbesondere bei
einer großen Menge
an zu lesenden Speicherdaten.
-
Bei
der Speichervorrichtung nach dem ersten Gesichtspunkt der Erfindung
werden die Speicherdaten, die parallel gelesen werden, auch parallel in
dem ersten temporären
Speicher empfangen. Entsprechend weist der erste temporäre Speicher
einen Eingang auf, der mit dem Speicher gekoppelt ist, welcher geeignet
ist, parallel mehrere Bitwerte zu empfangen. Der erste temporäre Speicher
weist vorzugsweise kurze Lese- und Schreibzeiten auf. Ein SRAM-Speicher
wird zum Beispiel für
den ersten temporären
Speicher verwendet. Es kann mehr als ein erster temporärer Speicher
vorhanden sein.
-
Alle
Speicherdaten, die möglicherweise
von einer ankommenden Schreibanforderung verändert werden, werden vorzugsweise
in einem parallelen Lesevorgang gelesen. Ist mehr als ein erster
temporärer
Speicher vorgesehen, zum Beispiel in Form von Speicherbänken, können die
gelesenen Daten parallel an verschiedene Speicherbänke geschickt
werden. Als Alternative wird eine Anzahl von parallelen Lesevorgängen nacheinander
durchgeführt,
um sämtliche
zu vergleichenden Speicherdaten abzudecken. Bei einer bevorzugten
Ausführungsform
der Speichervorrichtung des ersten Gesichtspunkts der Erfindung
ist die Lesesteuereinheit geeignet, nacheinander eine Anzahl paralleler
Lesevorgänge
aus Speicherbereichen des Speichers derart durchzuführen, dass
alle Bereiche, die durch Adressdaten, die in einer ankommenden Schreibanforderung
enthalten sind, definiert sind, von den Lesevorgängen abgedeckt werden. Diese
Ausführungsform
ist nützlich, um
Schreiban forderungen, die eine große Menge an Schreibdaten enthalten,
zu genügen.
Die zu vergleichenden Schreibdaten werden in einer Anzahl von Arbeitsgängen verarbeitet.
-
Die
Lesesteuereinheit ist vorzugsweise geeignet zu analysieren, ob die
zu lesenden Speicherdaten parallel in einem parallelen Lesevorgang
gelesen werden können
oder nicht. Falls nicht, erzeugt die Lesesteuereinheit eine entsprechende
Anzahl von parallelen Leseanforderungen, um sämtliche Daten abzudecken. Ob
es möglich
ist, sämtliche
Daten in einem parallelen Lesevorgang zu lesen oder nicht, hängt nicht
nur von der Menge der Schreibdaten einer ankommenden Schreibanforderung
ab, sondern auch von dem Hardwareaufbau der Speichervorrichtung
und insbesondere von der Breite des Busses zwischen dem Speicher
und dem ersten temporären Speicher.
Bei einer Ausführungsform
gibt es eine Protokollbeschränkung,
durch die Adressdaten in Schreibanforderungen auf einen Bereich
begrenzt werden, der in einem parallelen Lesevorgang gelesen werden
kann. Schreibanforderungen, die nicht in einem parallelen Lesevorgang
behandelt werden können,
dürfen
nicht erzeugt werden oder werden von der Speichervorrichtung abgewiesen.
-
Der
Speicher der Speichervorrichtung ist vorzugsweise so angeordnet,
dass parallele Lesevorgänge
gefördert
werden. Der Speicher kann zum Beispiel in Speicherbänken, die
parallel gelesen werden können,
angeordnet sein. Das heißt,
verschiedene Bänke
können
parallel gelesen werden. Bei einer anderen Ausführungsform kann jede Bank parallel gelesen
werden. Bei einer weiteren Ausführungsform,
kann jede Bank ebenso wie verschiedene Bänke parallel gelesen werden.
-
Bei
einer bevorzugten Ausführungsform
wird die Datenverbindung zwischen dem Speicher und dem ersten temporären Speicher
durch einen breiten Datenbus, der die parallele Übertragung großer Datenmengen
ermöglicht,
hergestellt.
-
Die
Speichervorrichtung des ersten Gesichtspunkts der Erfindung weist
ferner mindestens einen zweiten temporären Speicher auf, der Daten speichert,
die bei einer ankommenden Schreibanforderung empfangen werden. Der
zweite temporäre Speicher
ist vorzugsweise ebenfalls ein SRAM-Speicher.
-
Eine
Vergleichseinheit ist in der Speichervorrichtung des ersten Gesichtspunkts
der Erfindung vorgesehen. Die Vergleichseinheit vergleicht Speicherdaten,
die in dem ers ten temporären
Speicher gespeichert sind, mit Daten, die in dem zweiten temporären Speicher
gespeichert sind und die denselben Adressinformationen zugeordnet
sind. Die Vergleichseinheit liefert eine Ausgabe, die das Ergebnis des
jeweiligen Vergleichs aufzeigt. Die Speichervorrichtung weist in
verschiedenen Ausführungsformen eine
Vergleichseinheit auf, die geeignet ist, den Vergleich Bit für Bit oder
Byte für
Byte durchzuführen.
-
Die
Ausgabe der Vergleichseinheit kann zum Beispiel verwendet werden,
um zu entscheiden, ob Daten, die mit einer Schreibanforderungen
empfangen und gerade mit den Speicherdaten verglichen wurden, in
den Speicher geschrieben werden sollen. Die Ausgabe kann zum Beispiel
verwendet werden, um eine Schreibsteuerkreis auszulösen, der
die Schreibdaten, die gerade verglichen wurden, von dem zweiten
temporären
Speicher zu dem Speicher weiterzuleiten, falls die Ausgabe der Vergleichseinheit
anzeigt, dass die Schreibdaten sich von entsprechenden Speicherdaten
in dem ersten temporären Speicher
unterscheiden.
-
Es
besteht kein Erfordernis, mit einem parallelen Lesevorgang zu warten,
bis sämtliche
Schreibdaten, die zu der Schreibanforderung gehören, empfangen sind. Bei einer
Ausführungsform
der Speichervorrichtung der Erfindung ist die Lesesteuereinheit
geeignet, einen parallelen Lesevorgang unmittelbar nach dem Empfang
von Adressdaten, die in der Schreibanforderung enthalten sind, einzuleiten.
Hierdurch wird der Fluss der Schreibanforderung weiter beschleunigt.
Bei einer Form dieser Ausführungsform
werden Adressdaten durch Kontakte empfangen, die getrennt sind von
denen zum Empfang von Schreibdaten. Dies ermöglicht das Auslösen des
parallelen Lesevorgangs unabhängig
von dem Zustand der Eingabe für
Schreibdaten. Bei einer anderen Form dieser Ausführungsform werden Adressdaten und
Schreibdaten über
dieselben Kontakte empfangen. In diesem Fall werden die Adressdaten üblicherweise
zu einem vorgegebenen Abschnitt am Anfang der Schreibanforderung
geschickt. Daher erfasst die Lesesteuereinheit die Adressdaten und
löst den
parallelen Lesevorgang aus, während
Schreibdaten empfangen werden.
-
Da
es vergleichsweise kurze Zeit dauert, um empfangene Schreibdaten
in dem zweiten temporären
Speicher zu speichern, kann der parallele Lesevorgang mindestens
teilweise durchgeführt
werden, bevor der zweite temporäre
Speicher mit Schreibdaten gefüllt wird.
Dies verursacht nur eine geringe Erhöhung der Zeit, die für einen
Schreibvorgang benötigt
wird. Andererseits bietet diese Ausführungsform eine größere Flexibilität bei einer
Anwendung, die die Schreibanforderung erzeugt. Die Anwendung kann die
Schreibdaten der Schreibanforderung unabhängig von den Adressdaten, die
verwendet werden, um den parallelen Lesevorgang der Daten aus dem
Speicher durchzuführen,
senden. Dies ermöglicht
ebenfalls die Nutzung von Vorgriffs- und Vorabbefehlsverfahren,
bei denen die Anwendung vorhersagen kann, an welche Speicherorte
Daten geschrieben werden müssen,
bevor die tatsächlichen
Werte dieser Daten zur Verfügung
stehen.
-
Bei
dieser Ausführungsform
weist der zweite temporäre
Speicher die Speicherkapazität
auf, die mit neuen ankommenden Schreibdaten zu füllen ist, während Speicherdaten in den
ersten temporären Speicher
gelesen werden oder das bedingte Schreiben durchgeführt wird,
d. h., während
Daten des ersten und des zweiten temporären Speichers verglichen werden,
oder während
der beiden erwähnten Phasen.
Die Speichervorrichtung ist daher verfügbar, um neue Schreibdaten
oder neue Schreibanforderungen von externen Speicher-Clients zu
empfangen, bevor der zweite temporäre Speicher geleert wird. Ein
Beispiel für
einen Speicher-Client ist eine Anwendung.
-
Die
Speichervorrichtung der Erfindung kann grundsätzlich für beliebige ankommende Daten
verwendet werden, die mit vorher gespeicherten Speicherdaten verglichen
werden sollen. Bei einer Ausführungsform
ist die Speichervorrichtung geeignet, einen Schreibvorgang durchzuführen, der
die Bereitstellung eines Codes, wie zum Beispiel ein Passwort, zusammen
mit der Schreibanforderung beinhaltet. Die Speichervorrichtung hat
das Passwort in seinem Speicher und verarbeitet die Schreibanforderung erst,
wenn festgestellt wurde, dass das gelieferte Passwort identisch
ist mit der gespeicherten Version. Der nach der Überprüfung des Passwortes durchgeführte Schreibvorgang
kann ein bedingter Schreibvorgang sein. Falls jedoch ein energiesparender
bedingter Schreibvorgang nicht bevorzugt wird, kann das Schreiben
erfolgen, ohne dass die Schreibdaten mit den entsprechenden Speicherdaten
bei dieser Ausführungsform
verglichen werden.
-
Bei
einer bevorzugten Ausführungsform
ist die Speichervorrichtung des ersten Gesichtspunkts der Erfindung
geeignet, einen bedingten Schreibvorgang durchzuführen.
-
Die
Speichervorrichtung dieser Ausführungsform
weist vorzugsweise eine Schreibsteuereinheit auf, die mit der Vergleichseinheit
und dem Speicher gekoppelt ist und die geeignet ist, seriell nur diejenigen
Schreibdaten, die in dem zweiten temporären Speicher enthalten sind,
in den Speicher zu schreiben, bei dem die Ausgabe der Vergleichseinheit
einen Unterschied zu den entsprechenden Speicherdaten, die in dem
ersten temporären
Speicher enthalten sind, anzeigt. Ein Schreibvorgang, bei der das
Datenbit direkt an den Speicher geliefert wird, wird auch als ein
direkter Schreibvorgang bezeichnet.
-
Bei
einer alternativen Ausführungsform,
bei der ein Schreibvorgang im Umschaltmodus ausgeführt wird,
wird die Ausgabe der Vergleichseinheit von der Schreibsteuereinheit
verwendet, um einen Befehl zu erzeugen, um den Status der jeweiligen Speicherzelle
oder Speicherzellen zu verändern,
falls die Ausgabe anzeigen, dass sich die verglichenen Daten unterscheiden.
Der Status der Speicherzelle entspricht dem darin gespeicherten
Informationsbit. Ein Schreibvorgang im Umschaltmodus verändert den
gespeicherten Informationsbit, zum Beispiel von „0" auf „1", ohne dass das Schreibdatenbit an den Speicher
geliefert wird. Bei einer Ausführungsform kann
ein direkter Schreibvorgang oder ein Schreibvorgang im Umschaltmodus
durchgeführt
werden.
-
Es
ist anzumerken, dass
US
6545906 B1 ein Verfahren beschreibt, um eine skalierbare
magnetoresistive Speicherzelle umzuschalten, einschließlich der
Schritte der Bereitstellung einer magnetoresistiven Speichervorrichtung,
die zwischen einer Wortleitung und einer Bitleitung eingesetzt ist,
so dass Stromwellenformen an die Wort- und Bitleitungen zu verschiedenen
Zeiten angelegt werden können,
um einen Magnetfeldfluss zu erzeugen, um den Vektor des wirksamen
magnetischen Moments der Vorrichtung um etwa 180° zu drehen. Die magnetoresistive Speichervorrichtung
weist N ferromagnetische Schichten auf, die antiferromagnetisch
gekoppelt sind. N kann eingestellt werden, um den Umfang des magnetischen
Schaltens der Vorrichtung zu verändern.
-
Die
Ausgabe, die von der Vergleichseinheit geliefert wird, kann bei
einer Ausführungsform
ein binäres
Signal sein, das „identisch" oder „nicht
identisch” anzeigt.
Bei einer anderen Ausführungsform erzeugt
die Vergleichseinheit nur eine Ausgabe, falls verglichene Daten
unterschiedlich sind. Dies erspart den Schritt des Interpretieren
des Signals in der Schreibsteuereinheit. Die Ausgabe ist in diesem
Fall zum Beispiel ein Schreibdatenbit, bei dem sich herausgestellt
hat, dass es sich von dem entsprechenden Speicherdatenbit unterscheidet,
wodurch ein zusätzlicher
Schritt während
des Schreibvorgangs gespart wird. Bei einem Speicher, der ein Schreiben
im Umschaltmodus durchführt,
ist ein weiteres Beispiel einer Ausgabe der Vergleichseinheit die
Adresse der zu überschreibenden
Speicherzelle. Dies setzt voraus, dass die Schreibsteuereinheit
die Adressinformationen nicht über
einen anderen Kanal erhält.
-
Um
noch mehr Zeit zu sparen, ist die Lesesteuereinheit bei einer anderen
Ausführungsform
geeignet, einen parallelen Lesevorgang durchzuführen, während die Schreibsteuereinheit
einen oder mehrere Schreibvorgänge
durchführt.
-
Der
allgemeine Gedanke der vorliegenden Erfindung und der erwähnten Ausführungsformen kann
insbesondere bei einer MRAM-Vorrichtung mit einer langen Lesezeit
im Vergleich zu der Schreibzeit verwendet werden, wie zum Beispiel
bei einer MRAM-Vorrichtung
mit einem Speicher, der 0T1MTJ-Speicherzellen aufweist. Aufgrund
des Verlustproblems ist die Lesezeit eines 0T1MTJ-Speichers wesentlich
länger
als die eines herkömmlichen 1T1MTJ-Speichers.
Die Speichervorrichtung dieser Ausführungsform ist in der Lage,
den Leseschritt, der zum Beispiel aus einem bedingten Schreibvorgang besteht,
innerhalb einer Zeitspanne durchzuführen, die bei einer großen zu lesenden
Datenmenge mit derjenigen einer Reihe von Lesevorgängen, die
bei einer 1T1MTJ-Vorrichtung nach dem Stand der Technik verwendet
werden, konkurrieren kann. Die Ausführungsform der Erfindung ermöglicht es,
die Vorteile einer hohen Zelldichte einer 0T1MTJ MRAM-Speichervorrichtung
mit dem geringen Energieverbrauch eines bedingten Schreibvorgangs,
wie von 1T1MTJ-Vorrichtungen bekannt, zu kombinieren.
-
Daher
ermöglicht
es die Speichervorrichtung des ersten Gesichtspunkts der Erfindung,
die Vorteile eines energiesparenden bedingten Schreibvorgangs, der
aus MRAM-Technologien
mit kurzen Lesezeiten bekannt ist, bei einer Speichertechnologie,
die eine lange Lesezeit aufweist, zu nutzen, immer in Vergleich
mit der entsprechenden Schreibzeit. Je größer die Anzahl der in den Speicher
zu schreibenden Bits ist, desto besser ist die Leistung der Speichervorrichtung
der Erfindung bei einem Schreibvorgang, der einen Lese schritt beinhaltet,
im Vergleich mit einer Speichervorrichtung, die eine kurze Lesezeit
aufweist. Bei einer größeren Menge
Schreibdaten kann die Schreibzeit der Speichervorrichtung der Erfindung
mit der von Vorrichtungen nach dem Stand der Technik mit kurzen
Lesezeiten vergleichbar gemacht werden.
-
Gemäß einem
zweiten Gesichtspunkt der vorliegenden Erfindung ist ein Verfahren
vorgesehen, wie in Anspruch 9 dargelegt.
-
Das
Verfahren des zweiten Gesichtspunkts der Erfindung entspricht der
Speichervorrichtung des ersten Gesichtspunkts der Erfindung. Daher
können alle
dort erwähnten
Merkmale und Vorteile auf das Verfahren des zweiten Gesichtspunkts
der Erfindung übertragen
werden. Das Verfahren ermöglicht
es insbesondere, einen bedingten Schreibvorgang auch in einer Speichervorrichtung
mit Speicherzellen, die eine längere
Lesezeit als Schreibzeit aufweisen, durchzuführen. Dies wird durch paralleles
Lesen der Daten aus mehreren Bereichen oder aus sämtlichen Bereichen
des Speichers erreicht, die durch Adressdaten, die in einer ankommenden
Schreibanforderung enthalten sind, definiert sind.
-
Bevorzugte
Ausführungsformen
des Verfahrens des zweiten Gesichtspunkts der Erfindung entsprechen
denjenigen der Speichervorrichtung des ersten Gesichtspunkts der
Erfindung.
-
Eine
Ausführungsform
weist einen Schritt des Schreibens nur derjenigen Schreibdaten aus dem
zweiten temporären
Speicher in den Speicher, die sich von den entsprechenden Speicherdaten
unterscheiden, auf. Der Schreibschritt wird bei einer Ausführungsform
als ein direkter Schreib- oder als ein Schreibvorgang im Umschaltmodus
durchgeführt.
-
Bei
einer anderen Ausführungsform
werden die Schritte b) und c) parallel zu Schritt d) ausgeführt.
-
Bei
einer weiteren Ausführungsform
wird eine Anzahl von parallelen Lesevorgängen (Schritt b) aus Speicherbereichen
des Speichers derart durchgeführt,
dass alle Bereiche, die durch Adressdaten, die in der ankommenden
Schreibanforderung enthalten sind, definiert sind, von den Lesevorgängen abgedeckt
werden.
-
Bei
einer weiteren Ausführungsform
erfolgt ein paralleler Lesevorgang unmittelbar nach dem Empfang
von Adressdaten, die in der Schreibanforderung enthalten sind.
-
Bei
einer weiteren Ausführungsform
werden Schreibdaten seriell von dem zweiten temporären Speicher
in den Speicher geschrieben.
-
Bei
einer weiteren Ausführungsform
wird ein paralleler Lesevorgang durchgeführt, während ein oder mehrere Schreibvorgänge durchgeführt werden.
-
Weitere
Merkmale und Vorteile der Erfindung werden im Folgenden mit Bezug
auf die Figuren beschrieben.
-
1 ist
ein vereinfachtes Blockdiagramm, das eine Ausführungsform der Speichervorrichtung der
Erfindung zeigt;
-
2 ist
ein Ablaufdiagramm, das eine Ausführungsform des Verfahrens der
Erfindung zeigt.
-
1 zeigt
ein vereinfachtes Blockdiagramm einer Speichervorrichtung 10.
Das Diagramm zeigt nur die Strukturelemente und die Verbindungen zwischen
ihnen, die dazu beitragen, dem Fachmann die Erfindung zu erläutern. Für einen
durchschnittlichen Fachmann ist es jedoch offensichtlich, dass diese
Beschreibung genügend
Informationen enthält, damit
ein durchschnittlicher Fachmann die Erfindung einsetzen kann.
-
Die
Speichervorrichtung 10 weist eine Schnittstelleneinheit 12 zur
Kommunikation mit externen Speicher-Clients auf. Die Schnittstelleneinheit 12 empfangt
Adressdaten und Schreibdaten, die in einer Schreibanforderung, die
bei einem externen Speicher-Client
erzeugt wird, enthalten sind, über
getrennte Eingangsanschlüsse.
-
Die
Schnittstelleneinheit 12 ist mit einem Schreibspeicher 14,
hier auch als zweiter temporärer Speicher
bezeichnet, und einer Lesesteuereinheit 16 gekoppelt. Der
Schreibspeicher 14 ist mit einer Vergleichseinheit 18 gekoppelt.
Die Vergleichseinheit 18 ist mit der Lesesteuereinheit 16,
dem Schreibspeicher 14 und einem Lesespeicher 20,
hier auch als erster temporärer
Speicher bezeichnet, gekoppelt.
-
Die
Speichervorrichtung 10 weist ferner eine Schreibsteuereinheit 22 mit
einem Eingang auf, der mit der Vergleichseinheit 18 gekoppelt
ist, und einem Ausgang, der mit einem MRAM 24 gekoppelt
ist. Es ist festzustellen, dass die Vergleichseinheit 18 als we sentlicher
Bestandteil der Schreibsteuereinheit 22 vorgesehen werden
kann. Der MRAM 24 weist eine matrixähnliche oder alternativ eine
dreidimensionale Anordnung von 0T1MTJ-Speicherzellen auf, wie zum Beispiel
diejenigen, die im Allgemeinen als Koppelpunkt-Speicherzellen bezeichnet werden. Der
Speicher 24 ist in Bänken
(nicht dargestellt) angeordnet, die parallel gelesen werden können. Eine
Verbindung zwischen dem MRAM 24 und dem Lesespeicher 20 wird über einen
besonders breiten Datenbus 26 eingerichtet.
-
Beim
Betrieb wird eine Schreibanforderung, die Schreibdaten und Adressdaten
enthält,
an der Schnittstelleneinheit 12 empfangen. Pfeile mit einer dicken
durchgezogenen Linie zeigen den Fluss von Adressdaten in der Speichervorrichtung 10 an. Adressdaten
werden über
andere Kontakte als Schreibdaten empfangen. Die Adressdaten werden von
der Schnittstelleneinheit 12 zu der Lesesteuereinheit 16 übermittelt.
Aus Gründen
der Einfachheit wird für
das vorliegende Beispiel davon ausgegangen, dass die Adressdaten
eine Menge an Speicherdaten definieren, die unter Verwendung eines
parallelen Lesevorgangs gelesen werden können. Die Lesesteuereinheit 16 erzeugt
aus den Adressdaten eine entsprechende Leseanforderung und sendet
sie an den MRAM 24.
-
Die
Speicherdaten, die in den Speicherbereichen (Zellen), die durch
die Adressdaten definiert sind, gespeichert sind, werden dann parallel
gelesen und parallel zu dem Lesespeicher 20 geschickt.
Bei einem Beispiel werden Hunderte Bits parallel über den
Datenbus 26 übertragen.
-
Die
Daten, die aus dem Speicher 24 gelesen werden, weisen aufgrund
des bekannten Leckstromproblems eines Speichers, der auf 0T1MTJ-Speicherzellen
beruht, Verzerrungen der echten Daten auf. Aufgrund dessen erfordert
das Bestimmen, ob ein bestimmtes Speicherdatenbit, das aus Speicher 24 gelesen
wird, eine Null oder eine Eins ist, eine besondere Verarbeitung,
die für
die lange Lesezeit der Vorrichtung, verglichen mit einer 1T1MTJ-Vorrichtung,
verantwortlich ist.
-
Als
Beispiel für
ein Leseverarbeitungsverfahren werden die gemessenen Widerstandswerte
eines Leseschritts zunächst
in einem Zwischenlesespeicher (nicht dargestellt), der zwischen
dem Speicher 24 und dem Lesespeicher 20 gekoppelt
ist, gespeichert. Die Daten in dem Zwischenlesespeicher werden dann
einem Bewertungsverfahren unterworfen, um den Status (eins oder
null) jeder Speicherzelle zu bestimmen. Als einfaches Beispiel für ein Bewertungsverfahren
werden die Speicherdaten aus dem Speicher 24 gelesen, dann
ein Bit im Speicher 24 verändert und die Daten erneut
aus dem Speicher 24 gelesen. Dies kann verwendet werden,
um zu bestimmen, ob der Wert dieses Bits eins oder null war. Die
bestimmten Werte können
dann über
den Datenbus 26 aus dem Zwischenlesespeicher in den Speicher 20 übertragen
werden.
-
Der
Lesespeicher 20 weist ein Eingangsregister auf, das geeignet
ist, parallel die Speicherdaten, die aus dem MRAM 24 gelesen
werden, zu empfangen. Dann speichert er die Daten vorübergehend. Es
ist festzustellen, dass der eben beschriebene parallele Lesevorgang
eine parallele Ausgabe von Speicherdaten aus dem MRAM 24 erzeugt,
die parallel vom MRAM 24 zum Lesespeicher 20 geschickt werden.
Die Speicherdaten werden derart im Lesespeicher 20 gespeichert,
dass die Zuordnung der Speicherdaten zu den entsprechenden Adressdaten gesichert
wird.
-
Während der
Zeit, in der der Lesespeicher 20 mit Speicherdaten gefüllt wird,
wird der Schreibspeicher 14 mit Schreibdaten der Schreibanforderung
gefüllt.
Die Schreibdaten werden derart im Schreibspeicher 20 gespeichert,
dass die Zuordnung der Speicherdaten zu den entsprechenden Adressdaten
gesichert wird.
-
Da
die Zeit, die für
das Schreiben in den Speicher 14 benötigt wird, wesentlich kürzer ist
als die Zeit, die für
das Lesen aus dem MRAM 24 benötigt wird, kann das Schreiben
in den Schreibspeicher 14 später beginnen als das Lesen
aus dem MRAM 24. Die tatsächliche Zeit, während der
Daten in den Schreibspeicher 14 geschrieben werden, wird
von dem Speicher-Client, der die Schreibanforderung sendet, oder
von einer internen Speichersteuereinheit (nicht dargestellt), oder
von beiden gesteuert. Ein Speicher-Client kann den Ablauf steuern,
indem er zunächst
nur Adressdaten zu der Speichervorrichtung 10 sendet und
Schreibdaten zu einem späteren Zeitpunkt
sendet, wenn es für
die Anwendung zweckmäßig ist.
Eine Speichersteuereinheit kann den Empfang von Schreibdaten blockieren,
indem sie anzeigt, dass die Speichervorrichtung belegt ist. Dies
ist zum Beispiel sinnvoll, wenn der Schreibspeicher 14 voll ist.
-
Sobald
sich Schreibdaten in dem Schreibspeicher 14 befinden und
Speicherdaten im Lesespeicher 20, die denselben Adressdaten
zugeordnet sind, werden die Schreibdaten und die Speicherdaten seriell
vom Schreibspeicher 14 einerseits und vom Lesespeicher 20 andererseits
zu der Vergleichseinheit 18 übermittelt. Die Bits, die an
den beiden Dateneingängen
der Vergleichseinheit 18 empfangen werden, werden verglichen.
-
Falls
festgestellt wird, dass ein Schreibbit und ein entsprechendes Speicherbit
sich unterscheiden, wird der entsprechende Bitwert, der vom Schreibspeicher 14 empfangen
wird, am Ausgang der Vergleichseinheit 18 dargestellt und
zusammen mit den betreffenden Adressdaten zur Schreibsteuereinheit 22 weitergeleitet.
Die Schreibsteuereinheit 22 überschreibt die entsprechende
Speicherzelle im MRAM 24 mit dem Bitwert, der von der Vergleichseinheit 18 empfangen
wurde.
-
Falls
festgestellt wird, dass ein Schreibbit und ein entsprechendes Speicherbit
identisch sind, erfolgt keine Datenausgabe von der Vergleichseinheit 18 an
die Schreibsteuereinheit 22.
-
Bei
einer alternativen Ausführungsform
ist der Schreibspeicher 14 direkt parallel mit dem MRAM 24 und
mit der Vergleichseinheit 18 gekoppelt. Die Schreibsteuereinheit 22 ist
ferner mit dem Schreibspeicher 14 gespeichert. Im Betrieb
vergleicht die Vergleichseinheit 18 einen Bitwert am Ausgang
des Schreibspeichers 14 mit einem Bitwert am Ausgang des
Lesespeichers 20. Wird festgestellt, dass die Bitwerte
sich unterscheiden, meldet die Vergleichseinheit 18 dieses
Ergebnis an die Schreibsteuereinheit 22, die das Überschreiben
der entsprechenden Speicherzelle des MRAM 24 auslöst. Das Überschreiben kann
in einem direkten Schreibvorgang oder in einem Schreibvorgang im
Umschaltmodus durchgeführt werden.
-
2 zeigt
ein Ablaufdiagramm eines Schreibverfahrens gemäß der Erfindung. Das Verfahren
beginnt bei einem Schritt S10 mit dem Empfang einer Schreibanforderung.
-
In
einem Schritt S12 werden Speicherdaten parallel aus mehreren Bereichen
oder aus sämtlichen
Bereichen des nichtflüchtigen
Speichers gelesen, welche durch Adressinformationen, die in der Schreibanforderung
enthalten sind, definiert sind. Ein Bereich des Speichers ist zum
Beispiel eine Speicherzelle oder eine definierte Anordnung von Spei cherzellen.
Es ist festzustellen, dass Schritt S12 erfolgt, sobald die Adressdaten
empfangen werden. Die Speichervorrichtung wartet nicht, bis eine Schreibanforderung
vollständig
empfangen ist, sondern beginnt unverzüglich mit dem parallelen Lesevorgang.
-
Bei
dieser Ausführungsform
werden der Einfachheit der Beschreibung halber nur Schreibanforderungen
behandelt, die unter Verwendung eines parallelen Lesevorgangs in
dem Unterprogramm des Vergleichs von Speicherdaten mit ankommenden Schreibdaten
verarbeitet werden können.
-
In
einem Schritt S14 werden die Speicherdaten, die aus dem Speicher
gelesen werden, in einem ersten temporären Speicher gespeichert. In
einem Schritt S16 werden die Schreibdaten der Schreibanforderung
in einem zweiten temporären
Speicher gespeichert.
-
In
einem Schritt S18 werden die Speicherdaten, die in dem ersten temporären Speicher
enthalten sind, mit den entsprechenden Schreibdaten, die in dem
zweiten temporären
Speicher enthalten sind, verglichen und denselben Adressinformationen
zugeordnet.
-
In
einem Schritt S20 wird das Ergebnis des Vergleichs als Ausgabe dargestellt.
In einem Schritt S22, beruhend auf der Ausgabe, die in Schritt S20
erzeugt wird, werden nur diejenigen Schreibdaten aus dem zweiten
temporären
Speicher in den Speicher geschrieben, die sich von den entsprechenden
Speicherdaten unterscheiden. Die Schritte S18, S20 und S22 werden
seriell durchgeführt,
zum Beispiel Bit für Bit
oder Byte für
Byte.