![]() Schnittstellen für einen nicht-flüchtigen gepufferten Speicher
专利摘要:
Es werden Speichervorrichtungen und Verfahren offenbart, die eine Schnittstelle für einen nicht-flüchtigen gepufferten Speicher liefern. Bei einem Ausführungsbeispiel kann eine Speichervorrichtung folgende Merkmale aufweisen: ein nicht-flüchtiges Speicherarray und eine Schnittstelle für einen nicht-flüchtigen gepufferten Speicher, die auf einem Substrat mit dem Speicherarray integriert ist. Die Speicherschnittstelle kann einen oder mehrere flüchtige Puffer, die konfiguriert sind, um Daten für Leseoperationen zu puffern, und einen Tabellenspeicher aufweisen, der konfiguriert ist, um eine oder mehrere Adressen anzugeben, die Daten zugeordnet sind, die in dem einen oder den mehreren flüchtigen Puffern gepuffert sind. 公开号:DE102004008217A1 申请号:DE200410008217 申请日:2004-02-19 公开日:2005-01-27 发明作者:Andrew M. Spencer 申请人:Hewlett Packard Development Co LP; IPC主号:G06F12-08
专利说明:
[0001] Vielein der Entwicklung befindliche Technologien stoßen auf breite Akzeptanz, dasie die Zugreifbarkeit auf Informationen erhöhen. Beispiele derartiger Technologienumfassen Mikrofilm, Magnetbänder,Magnetplattenmedien, Optikplattenmedien und integrierte Speicher.Insbesondere integrierte Speicher bieten ein hohes Maß an Zugreifbarkeit. [0002] IntegrierteSpeicher sind elektrische Schaltungen, die konfiguriert sind, umInformationen in digitaler Form zu speichern. Diese Informationenbzw. „Daten" sind ohne weiteresfür jeglicheDigitalvorrichtung, die entsprechend mit dem integrierten Speicher gekoppeltist, ohne weiteres zugreifbar. Je nach der verwendeten Technologiekann mit wahrlich erstaunlichen Geschwindigkeiten auf Daten zugegriffenwerden. [0003] IntegrierteSpeicher werden oft als flüchtig odernichtflüchtigklassifiziert. Flüchtigeintegrierte Speicher ziehen bei Nicht-Vorliegen von elektrischer Leistungden Verlust von gespeicherten Daten nach sich, diese Unzulänglichkeitkann jedoch durch Vorteile bezüglichder Informationsdichte und Zugriffsraten wettgemacht werden. Nichtflüchtige Speicherbehalten ihre gespeicherten Informationen bei Fehlen von elektrischerLeistung bei, weisen jedoch eine verringerte Informationsdichte,eine verringerte Zugriffsrate und/oder einen Mangel an Programmierbarkeit auf. [0004] Eswird gerade eine neue integrierte Speichertechnologie entwickelt,die Programmierbarkeit, Nicht-Flüchtigkeit,eine hohe Informationsdichte und eine moderate Zugriffsrate bietenkann. Magnetische integrierte Speicher sind, gemäß der Verwendung des Begriffsin diesem Dokument, Speicher, die Magnetfelder verwenden, um Datenzu speichern. Diese Magnetfelder können in magnetischen Materialien eingebettetsein, die sich nicht auf das fortlaufende Vorhandensein von elektrischerLeistung stützen,um die Daten zu bewahren. Es könneneine Vielzahl von Erfassungstechniken verwendet werden, um Magnetfelderin diesen Speichern zu erfassen und um die Daten, die diese Felderdarstellen, zu bestimmen. [0005] Obwohldie Zugriffsraten von Magnetspeichern und anderen nicht-flüchtigenSpeichern allmählichverbessert werden, liegen sie eventuell immer noch hinter den Zugriffsraten,die bestimmte flüchtigeSpeichertechnologien (z. B. statischer Direktzugriffsspeicher, „SRAM") bieten, zurück. Daher kannsich ein Verfahren zum Verringern von durchschnittlichen Zugriffszeitenvon langsamen Speichertechnologien als vorteilhaft erweisen. [0006] DieAufgabe der vorliegenden Erfindung besteht darin, eine verbesserteintegrierte Speichervorrichtung, Verfahren und eine Digitalvorrichtungzu schaffen. [0007] DieseAufgabe wird durch eine integrierte Speichervorrichtung gemäß Anspruch1, durch Verfahren gemäß den Ansprüchen 9 oder13 sowie durch eine Digitalvorrichtung gemäß Anspruch 15 gelöst. [0008] Demgemäß werdenhierin Speichervorrichtungen und Verfahren offenbart, die eine Schnittstelle für einennichtflüchtigengepufferten Speicher liefern. Bei einem Ausführungsbeispiel kann eine Speichervorrichtungfolgende Merkmale aufweisen: ein nicht-flüchtiges Speicherarray und eineSchnittstelle füreinen nicht-flüchtigengepufferten Speicher, die auf einem Substrat mit dem Speicherarrayintegriert ist. Die Speicherschnittstelle kann einen oder mehrereflüchtigePuffer aufweisen, die konfiguriert sind, um Daten für Leseoperationenzu puffern, und einen Tabellenspeicher, der konfiguriert ist, umeine oder mehrere Adresse anzugeben, die Daten zugeordnet sind,die in dem einen oder den mehreren flüchtigen Puffern gepuffert sind. [0009] BevorzugteAusführungsbeispieleder vorliegenden Erfindung werden nachfolgend unter Bezugnahme aufdie beiliegenden Zeichnungen nähererläutert.Es zeigen: [0010] 1 eine Außenansichteines exemplarischen digitalen Systems, das einen Speicher gemäß verschiedenenoffenbarten Ausführungsbeispielen aufweist; [0011] 2 ein Blockdiagramm desdigitalen Systems der 1; [0012] 3 ein Blockdiagramm einesunterstütztenSpeichers ohne eine Schnittstelle für einen gepufferten Speicher; [0013] 4 ein Blockdiagramm einesunterstütztenSpeichers gemäß verschiedenenoffenbarten Ausführungsbeispielen; [0014] 5a Beispiele von Pufferverwaltungstabellen;und und 5b [0015] 6 ein beispielhaftes Flußdiagrammeiner integrierten Speichersteuerung gemäß verschiedenen offenbartenAusführungsbeispielen. [0016] Inder gesamten Beschreibung und in den Ansprüchen werden bestimmte Begriffeverwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. WieFachleute erkennen werden, können unterschiedlicheUnternehmen eine Komponente mit unterschiedlichen Namen benennen.Dieses Dokument hat nicht die Absicht, zwischen Komponenten zu unterscheiden,die sich in bezug auf den Namen, jedoch nicht in bezug auf die Funktionunterscheiden. In der folgenden Erläuterung und in den Patentansprüchen werdendie Begriffe „einschließlich" bzw. „umfassen" und „aufweisen" auf offene Weiseverwendet und sollten somit so interpretiert werden, daß sie bedeuten „einschließlich, abernicht ausschließlich". Ferner soll derBegriff „koppeln" oder „koppelt" so verstanden werden,daß erentweder eine indirekte oder direkte elektrische Verbindung bedeutet. Wennalso eine erste Vorrichtung mit einer zweiten Vorrichtung gekoppeltist, kann diese Verbindung durch eine direkte elektrische Verbindungoder durch eine indirekte elektrische Verbindung über andere Vorrichtungenund Verbindungen erfolgen. [0017] 1 zeigt einen Desktop-Computerals eine beispielhafte Digitalvorrichtung 100. Um mit einemBenutzer zu interagieren, kann die Digitalvorrichtung 100 miteiner Text- oder Graphikanzeige 102 und mit einer Eingabevorrichtung 104 gekoppeltsein. Die Anzeige 102 und die Eingabevorrichtung 104 können zusammenals Schnittstelle zwischen dem Benutzer und der Digitalvorrichtung 100 agieren.Die Digitalvorrichtung 100 kann bestimmte Aktionen durchführen, diedurch eine Benutzerbetätigungder Eingabeeinrichtung 104 veranlaßt werden, und kann dem Benutzer über dieAnzeige 102 eine Antwort liefern. Die Digitalvorrichtung 100 kanneinen integrierten Speicher beinhalten, um die entsprechenden Aktionenund/oder Antworten an den Benutzer zu bestimmen. Obwohl die Digitalvorrichtung 100 als Desktop-Computergezeigt ist, werden alle anderen Digitalvorrichtungen, die einenoder mehrere integrierte Speicher beinhalten, in Betracht gezogen,einschließlich,aber nicht ausschließlich:Digitalkameras, persönlichedigitale Assistenten, Mobiltelephone, digitale Musikabspielgeräte, digitaleMultimediasysteme und digitale Systemsteuerungen. [0018] 2 zeigt ein Beispiel einesBlockdiagramms fürdie Digitalvorrichtung 100. Die Vorrichtung 100 kanneine Zentralverarbeitungseinheit (CPU) 202 umfassen, diedurch eine Brücke 204 mit einemSystemspeicher 206 gekoppelt ist. Die CPU 202 kannferner durch die Brücke 204 miteiner Videokarte 203 gekoppelt sein, die wiederum mit derAnzeige 102 gekoppelt ist. Die CPU 202 kann ferner durchdie Brücke 204 miteinem Erweiterungsbus 208 gekoppelt sein. Mit dem Erweiterungsbus 208 können fernereine Speichervorrichtung 210 und eine Eingabe-/Ausgabeschnittstelle 212 gekoppeltsein. Die Eingabevorrichtung 104 kann über die Eingabe-/Ausgabeschnittstelle 212 mitder Vorrichtung 100 gekoppelt sein. [0019] DieCPU 202 kann gemäß einerSoftware arbeiten, die in dem Speicher 206 und/oder derSpeichervorrichtung 210 gespeichert ist. Unter der Anleitungder Software kann die CPU 202 über eine Tastatur oder einealternative Eingabevorrichtung 104 Befehle von einer Bedienpersonentgegennehmen und kann der Bedienperson über die Anzeige 102 odereine alternative Ausgabevorrichtung gewünschte Informationen anzeigen.Die CPU 202 kann die Operationen anderer Systemkomponentensteuern, um Daten wiederzugewinnen, zu transferieren und zu speichern. [0020] DieBrücke 204 koordiniertden Datenfluß zwischenKomponenten. Die Brücke 204 kann zweckgebundenePunkt-Zu-Punkt-Busseeiner hohen Bandbreite fürdie CPU 202, den Speicher 206 und die Videokarte 203 liefern.Bei manchen Ausführungsbeispielenkann die Brückeweggelassen sein und die CPU 202 kann direkt mit dem Speicher 206 gekoppeltsein. Bei derartigen Ausführungsbeispielenkann der Prozessor auch direkt mit dem Erweiterungsbus 208 gekoppeltsein. [0021] DerSpeicher 206 kann Software und Daten zum Zweck eines raschenZugriffs speichern. Der Speicher 206 kann integrierte Speichermoduleumfassen, von denen eines oder mehrere nicht-flüchtig sein können. [0022] DieVideokarte 203 kann eine kundengerechte Verarbeitung für eine Graphik-und Datenumwandlung von einem speicherbasierten Format zu einemSignalformat, das fürdie Anzeige 102 geeignet ist, liefern. Die Anzeige 102 kannDaten zur Verwendung durch eine Bedienperson liefern. [0023] DerErweiterungsbus 208 kann Kommunikationen zwischen der Brücke 204 undmehreren anderen Computerkomponenten unterstützen. Der Bus 208 kannmit entfernbaren modularen Komponenten und/oder Komponenten, dieauf einer Schaltungsplatine mit der Brücke 204 integriertsind, gekoppelt sein (z. B. Audiokarten, Netzwerkschnittstellen,Datenerfassungsmodulen, Modems). [0024] DieSpeichervorrichtung 210 kann Software und Daten zum Zweckeiner langfristigen Aufbewahrung speichern. Die Speichervorrichtung 210 kann tragbarsein oder kann entfernbare Medien aufnehmen oder kann eine installierteKomponente sein oder kann eine integrierte Komponente auf der Schaltungsplatinesein. Die Speichervorrichtung 210 kann eine entfernbareSpeichervorrichtung, z. B. eine Speicherkarte, sein. Alternativdazu kann die Speichervorrichtung 210 ein nicht-flüchtigerintegrierter Speicher, eine Magnetische-Medien-Speichervorrichtung,eine Optische-Medien-Speichervorrichtung odereine andere Form einer langfristigen Informationsspeicherung sein. [0025] DieEingabe-/Ausgabeschnittstelle 212 kann Kommunikationenmit Nachfolgekomponenten und -vorrichtungen unterstützen, diekeine Verbindung einer hohen Bandbreite erfordern. Die Eingabe-/Ausgabeschnittstelle 212 kannferner einen Echtzeittakt umfassen und kann Kommunikationen mitAbtastketten fürein Testen des Systems auf niedriger Ebene unterstützen. [0026] DieEingabevorrichtung 104 kann der Schnittstelle 212 ansprechendauf eine Betätigung seitensder Bedienperson Daten liefern. Die Eingabevorrichtung 104 kanneine Tastatur oder eine andere Eingabevorrichtung sein (z. B. Zeigevorrichtungen, Tasten,Sensoren). Mit der Eingabe-/Ausgabeschnittstelle 212 können mehrereEingabevorrichtungen gekoppelt sein, um ansprechend auf eine Betätigung durcheine Bedienperson Daten zu liefern. Ausgabevorrich tungen (z. B.Parallel-Tore, Seriell-Tore, Drucker, Lautsprecher, Lichter) können ebenfallsmit der Eingabe-/Ausgabeschnittstelle 212 gekoppeltsein, um Informationen an die Bedienperson zu kommunizieren. [0027] DerSpeicher 206 und die Speichervorrichtung 210 können dieHauptdatenspeicherressourcen sein, und dementsprechend können siegroßeMengen an integriertem Speicher umfassen, möglicherweise entweder in Formvon einigen wenigen integrierten Speichervorrichtungen mit einerrelativ großenKapazitätoder in Form einer großenAnzahl von integrierten Speichervorrichtungen mit einer relativ kleinenKapazität.Jedoch könnenandere Komponenten der Digitalvorrichtung 100 ebenfallsintegrierte Speichervorrichtungen umfassen. Beispielsweise kanndie Videokarte 203 eine oder mehrere integrierte Speichervorrichtungenfür eineBildspeicherung und -verarbeitung umfassen. Desgleichen kann die Eingabe-/Ausgabeschnittstelle 212 eineintegrierte Speichervorrichtung für eine langfristige Speicherung vonKonfigurationsparametern und Basiseingabe-Ausgabe-System-Routinen(BIOS-Routinen)umfassen. [0028] 3 zeigt ein Beispiel einerintegrierten Speichervorrichtung 300 ohne eine Schnittstellefür einengepufferten Speicher. Die Vorrichtung 300 kann eine unterstützte Speichervorrichtungsein, beispielsweise eine, die in der verwandten U.S.-PatentanmeldungNr. 10/384,053 (HP200208167), die durch Bezugnahme in das vorliegendeDokument aufgenommen ist, offenbart ist. Eine unterstützte Speichervorrichtungist eine Speichervorrichtung, die Fehlerkorrekturtechniken beinhaltet,um mögliche Fehlerbei der Speicherung oder Wiedergewinnung von Daten zu bewältigen.Derartige Fehler können durchvereinzelte Herstellungsfehler in Speicherzellen, unvorhersehbareFehler bei der Kopplung zwischen Zellen, Übergangssignalisierungsfehlerin den Zeilen- und Spaltenleitungen während Lese- oder Schreiboperationenbewirkt werden, oder sie können andereUrsachen haben. [0029] Dieintegrierte Speichervorrichtung 300 umfaßt ein Speicherarray 302,ein Unterstützungsmodul 304,ein Lese- und Schreibmodul 306 und ein Fehlerkorrekturcode-Modul(ECC-Modul; ECC= error correction code) 308. Das Speicherarray 302 umfaßt eineMehrzahl von Speicherzellen oder Speicherelementen, von denen jede(s) in der Lage ist, zumindest ein Datenbit zu speichern. Das Speicherarray 302 kanneine beliebige Speichertechnologie umfassen, kann z. B. ein beliebigerDirektzugriffsspeicher (RAM) oder Nur-Lese-Speicher (ROM) sein, einschließlich einesdynamischen RAM (DRAM), eines EDRAM (extended data out RAM), einesVideo-RAM (VRAM),eines statischen RAM (SRAM), eines synchronen DRAM (SDRAM), einesmagnetoresistiven oder magnetischen RAM (MRAM), eines elektrisch programmierbarenROM (EPROM) und eines Flash-ROM. Obwohl die folgende Beschreibungvorwiegend im Kontext eines MRAM erfolgt, sind die offenbarte(n)Architektur und Techniken nicht hierauf beschränkt und auch auf andere Speicherspeicherungstechnologienanwendbar. [0030] JedeSpeicherzelle oder jedes Element in dem Array 302 ist einerSpeicheradresse zugeordnet, obwohl jeder Speicheradresse mehrereSpeicherzellen zugeordnet sein können.Das Unterstützungsmodul 304 kannein Adreßsignalempfangen und kann ansprechend darauf einen Zugriff auf die zugeordnetenSpeicherzellen in dem Speicherarray 302 liefern. Der Zugriffauf ausgewählteSpeicherzellen erfolgt überdas Lese- und Schreibmodul 306. [0031] DasLese- und Schreibmodul 306 umfaßt Erfassungsverstärker, umDatenwerte, die in den Speicherzellen gespeichert sind, die durchdas Unterstützungsmodul 304 zugänglich gemachtwerden, zu erfassen (zu „lesen"). Das Modul 306 kannferner Schreibtreiber umfassen, um neue Datenwerte in den bzw. dieSpeicherzellen zu speichern (zu „schreiben"). Der Betrieb des Moduls 306 kanndurch ein Befehlssignal gesteuert werden. Das Befehlssignal kanneinfach angeben, wann eine Leseoperation gewünscht und wann eine Schreiboperation gewünscht wird.Wenn eine Schreiboperation angegeben ist, kann das Lese- und Schreibmodul 306 Datenvon dem Modul 308 annehmen und die Daten in den ausgewählten Speicherzellenspeichern. Umgekehrt kann, wenn eine Leseoperation angegeben ist,das Modul 306 Daten von den ausgewählten Speicherzellen wiedergewinnenund die Daten dem Modul 308 bereitstellen. Man beachte,daß dasBefehlssignal ferner angeben kann, wann die Speichervorrichtung 300 freigegebenoder gesperrt ist, und ferner angeben kann, wann Konfigurationsinformationenan die Speichervorrichtung 300 geliefert werden. [0032] DasECC-Modul 308 ist wirksam, um Datenfehler, die in der Speichervorrichtung 300 entstehen, zuerfassen und zu korrigieren. Wenn Daten zur Speicherung empfangenwerden, codiert das ECC-Modul 308 die Daten und wandeltDatenwörter inCodewörterum. Beispielhaft kann ein ECC-Modul, das einen (7,4,3)-Hamming-Codeverwendet, währendeiner Schreiboperation ein Vierbitdatenwort in ein Siebenbitdatenwortumwandeln. Das Codewort wird anschließend in Speicherzellen, dieder spezifizierten Speicheradresse zugeordnet sind, gespeichert.Umgekehrt wird währendeiner Leseoperation ein Siebenbitwort von Speicherzellen, die derspezifizierten Speicheradresse zugeordnet sind, wiedergewonnen.Das Siebenbitwort kann ein Codewort sein oder es kann einen Bitfehlerenthalten. In beiden Fällendecodiert das ECC-Modul 308 das Siebenbitwort, wobei esdasselbe in das entsprechende Vierbitdatenwort umwandelt, auch wenndas wiedergewonnene Siebenbitwort einen Fehler enthielte. Das Datenwortwird anschließendals Ausgangsdaten bereitgestellt. [0033] Selbstverständlich können auchandere Fehlerkorrekturcodes verwendet werden. Beispiele von geeignetenFehlerkorrekturcodes umfassen: Hamming-Codes, Gogga-Codes, Golay-Codes,Reed-Solomon-Codes und Faltungscodes. Die Codierung kann auf einerPro-Wort-Basis erfolgen, wie oben beschrieben wurde. Alternativoder zusätzlichdazu kann die Codierung an Gruppen von Wörtern erfolgen, um in der Lagezu sein, ein fehlerhaftes Wort in der Gruppe zu korrigieren. Obwohldas ECC-Modul währenddes Decodierungsvorgangs eine beträchtliche Verarbeitungszeitin Anspruch nehmen kann, könnenPipelineverarbeitungstechniken verwendet werden, um hohe Durchsatzratenaufrechtzuerhalten. [0034] 4 zeigt eine integrierteSpeichervorrichtung 400, die eine Schnittstelle für einengepufferten Speicher aufweist. Die Schnittstelle für einengepufferten Speicher arbeitet vorzugsweise, um die durchschnittlicheLeselatenz zu verringern, indem sie „vorausliest", d. h. Daten vonSpeicherstellen, die auf zuvor gelesene Speicherstellen folgen,wiedergewinnt und die Daten zum Zweck eines schnelleren Zugriffs ineinem oder mehreren Puffern speichert. Mehrere Puffer können verwendetwerden, um einen Bezugsort in grundverschiedenen Speicherbereichenzu nutzen. [0035] DieSpeichervorrichtung 400 umfaßt ein Speicherarray 302;ein Unterstützungsmodul,das einen Zeilendecodierer 402, einen Spaltendecodierer 404 undein Adreßabbildungsmodul 406 umfaßt; ein Lese-und Schreibmodul, das Erfassungsverstärker 410 und Schreibtreiber 412 umfaßt; einECC-Modul, das einen ECC-Decodierer 418 und einen ECC-Codierer 420 umfaßt; undeine Schnittstelle füreinen gepufferten Speicher, die eine Schnittstellensteuerung 414,einen oder mehrere Lesepuffer 422 und einen optionalenSchreibpuffer 424 umfassen kann. Die Schnittstellensteuerung 414 kannRegister oder einen Speicher fürTabellen 426 umfassen, die verwendet werden, um die Puffer 422, 424 zusteuern, und kann ferner einen nicht-flüchtigen Speicher 428 zumBewahren der Tabellen 426 bei Nicht-Vorliegen von elektrischerLeistung umfassen. [0036] DasSpeicherarray 302 weist zumindest eine Speichervorrichtungwie z. B. einen MRAM auf, wobei Speicherzellen in einem Array angeordnetsind. Jedes Magnetspeicherspeicherungselement kann eine Datenspeicherungsschichtund eine Referenzschicht aufweisen. Der Logikzustand eines Magnetspeicherelementshängt vonden relativen Magnetisierungsausrichtungen in der Datenspeicherungs- undder Referenzschicht ab. Die Magnetisierung jedes Speicherelementsgeht von einer von zwei stabilen Ausrichtungen zu jeglichem gegebenenZeitpunkt aus. Diese zwei stabilen Ausrichtungen, parallel und antiparallel,könnenlogische Werte „0" und „1" darstellen. [0037] DieSpeicherzellen des Arrays 302 sind allgemein in Zeilenund Spalten angeordnet, wobei sich die Zeilen entlang einer Achseerstrecken und die Spalten sich entlang einer senkrechten Achseerstrecken. Der Verständlichkeithalber ist lediglich eine relativ kleine Anzahl von Speicherzellengezeigt. In der Praxis könnenArrays von 1024×1024Speicherzellen oder größer erwartetwerden, die Ansprüchesind jedoch nicht hierauf beschränkt. [0038] 4 zeigt Zeilenleitungen,die sich in einer horizontalen Richtung erstrecken, und Spaltenleitungen,die sich in einer vertikalen Richtung erstrecken. Bei einem Ausführungsbeispielliegt eine Zeilenleitung fürjede Zeile von Speicherzellen und eine Spaltenleitung für jede Spaltevon Speicherzellen vor. Jede Speicherzelle ist in der Darstellungan einem Kreuzungspunkt einer entsprechenden Zeilen- und Spaltenleitungangeordnet. Bei einem Ausführungsbeispielwird eine Speicherzelle zugänglichgemacht, wenn der Zeilendecodierer 402 die entsprechende Zeilenleitungaktiviert und der Spaltendecodierer 404 die entsprechendeSpaltenleitung mit einem Erfassungsverstärker 410 oder einemSchreibtreiber 412 koppelt. Während Leseoperationen kannder Widerstand einer Speicherzelle durch einen Erfassungsverstärker erfaßt werden,und währendeiner Schreiboperation kann die Magnetisierung der Speicherzelledurch den Schreibtreiber 412 eingestellt werden. [0039] DerZeilendecodierer 402 kann wirksam sein, um ansprechendauf eine Zeilenadresse AR eine Zeilenleitungauszuwählen, unddie Mehrzahl von Spaltendecodierern 404 kann wirksam sein,um ansprechend auf eine Spaltenadresse AC 408 jeweils eineSpaltenleitung auszuwählen.Ansprechend auf die Zeilenadresse AR kannder Zeilendecodierer 402 eine entsprechende Zeilenleitungmit einem bekannten Spannungspegel, z. B. Masse, koppeln. Ansprechendauf die Spaltenadresse AC 408 kannder Spaltendecodierer 402 eine entsprechende Spaltenleitungmit einem Erfassungsverstärker 410 und/oder einemSchreibtreiber 412 koppeln. Eine ausgewählte Mehrzahl von Speicherzellenliegt an den Schnittpunkten von ausgewählten Zeilen- und Spaltenleitungen. [0040] DieZeilenadressen AR und die SpaltenadressenAC könnendurch das Adreßabbildungsmodul 406 demZeilendecodierer 402 bzw. dem Spaltendecodierer 404 geliefertwerden. Bei einem Ausführungsbeispielempfängtdas Adreßabbildungsmodul 406 eineSpeicheradresse von der Schnittstellensteuerung 414 undwandelt die empfangene Speicheradresse auf der Basis eines internenAbbildungsverfahrens, das defekte Speicherzellen durch „Ersatz"-Speicherzellen indem Array ersetzen kann, in eine physische Adresse um. Weitere Einzelheiten über verschiedeneAusführungsbeispieledes Adreßabbildungsmoduls 406 findensich in der gemeinsam zugewiesenen U.S.-Patentanmeldung Nr. 10/044,542, dieam 11. Januar 2002 eingereicht wurde und den Titel Self-HealingMRAM aufweist, und in der U.S.-Patentanmeldung Nr. 09/766,354, dieam 19. Januar 2001 eingereicht wurde und den Titel Self-Healing Memory trägt, wobeibeide Dokumente durch Bezugnahme in das vorliegende Dokument aufgenommensind. Der Zeilendecodierer 402 und der Spaltendecodierer 404 können diedurch das Abbildungsmodul 406 gelieferten physischen Adressen verwenden,um Speicherzellen, die der Speicheradresse zugeordnet sind, auszuwählen. [0041] Schreibtreiber 412 können parallelarbeiten, um die Logikzuständeder ausgewähltenSpeicherzellen einzustellen. Die Logikzustände können Bits eines Codeworts sein,das ansprechend auf ein Datenwort durch den ECC-Codierer 420 gelie fertwird. Das Codewort ist vorzugsweise entworfen, um eine Redundanz,d. h. zusätzlicheInformationen zu liefern, um die Bestimmung des korrekten Datenwortes, wennFehler angetroffen werden, zu unterstützen. [0042] Erfassungsverstärker 410 können parallel arbeiten,um die Logikzuständeder ausgewählten Speicherzellenzu erfassen. Der ECC-Decodierer 418 kann die Daten vonErfassungsverstärkern 410 kombinieren,um ein Codewort (mit oder ohne Fehler) zu bilden und kann das Codewortverarbeiten, um ein fehlerfreies Datenwort zu extrahieren. Idealerweise kannder ECC-Decodierer arbeiten, um Übergangsfehlerzu korrigieren, wohingegen das Adreßabbildungsmodul 406 arbeitenkann, um Fehler, die durch permanente Defekte in Speicherzellenverursacht werden, zu verhindern. [0043] Eskönneneine Anzahl von Implementierungen von ECC-Decodierern existieren, die von Implementierungen,die auf einer schnellen kombinatorischen Logik basieren, zu solchenreichen, die auf einer sequentiellen Zustandsmaschine basieren.Die Hamming-Code-, Reed-Solomon-Codes-, Binärer-Golay-Code-, Binärer-Goppa-Code-, Viterbi-Code-oder andere Algorithmen könnenverwendet werden, um die ECC-Codewörter auf der Basis eines Blocksvon Daten einer vorbestimmten Größe zu erzeugen.Mit größeren Datenblockgrößen, leistungsfähigerenECC-Algorithmen, jedoch einer größeren Schaltungskomplexität kann eineerweiterte Fehlerkorrekturfähigkeitund Dateneffizienz erzielt werden. Eine derartige zusätzlicheKomplexitätmuß nichtunüberwindbarsein, wenn eine Schnittstelle füreinen gepufferten Speicher verwendet wird. [0044] DieSpeichervorrichtung 900 kann eine Schnittstelle für einengepufferten Speicher in Form einer Schnittstellensteuerung 414,einen oder mehrere Lesepuffer 422 und einen optionalenSchreibpuffer 424 umfassen. Der eine oder die mehrerenLesepuffer 422 kann bzw. können unter der Steuerung der Schnittstellensteuerung 414 arbeiten,um Daten von dem ECC-Decodierer 418 anzunehmen und um ausgehendeDaten auf dem bidirektionalen Datenbus bereitzustellen. Der optionaleSchreibpuffer 424 kann eingehende Daten von dem bidirektionalenDatenbus puffern und die Daten dem ECC-Codierer 420 bereitstellen. [0045] Bevordie Funktionsweise der Schnittstellensteuerung 414 eingehenderläutertwird, kann eine Erörterung „des Lokalitätsprinzips" vorteilhaft sein. DasLokalitätsprinzipkann wie folgt wiedergegeben werden: „Die Wahrscheinlichkeit einesZugriffs auf eine gegebene Speicherstelle ist beträchtlichhöher alsim Durchschnitt, wenn auf eine nahegelegene Speicherstelle kürzlich zugegriffenwurde". Im Kontexteines Speicherarrays mit hoher Latenz kann dieses Prinzip genutztwerden, indem von einem Speicher nicht nur Daten von einer angefordertenSpeicheradresse, sondern auch Daten von nahegelegenen Speicheradressenwiedergewonnen werden, die in Erwartung von späteren Leseanforderungen gespeichertwerden sollen. Die Daten von nahegelegenen Speicherstellen können ineinem Hochgeschwindigkeitspuffer gespeichert und mit einer Nullatenz versehenwerden, falls die erwartete Leseanforderung eintritt. [0046] DasLokalitätsprinziphängt etwasvon den Software-Firmware-und/oder Hardwareprozessen ab, die durch die Digitalvorrichtungausgeführtwerden. Viele Prozesse könnendas Lokalitätsprinzipin einem verteilten Muster aufweisen. Beispielsweise kann ein Softwareprozeß Anweisungenfür eineAusführungvon einem Speicherbereich wiedergewinnen und kann Daten, die verarbeitetwerden sollen, von einem anderen Speicherbereich wiedergewinnen.Innerhalb jedes dieser Bereiche gilt das Lokalitätsprinzip, jedoch kann dasEinschieben dieser Zugriffe verhindern, daß ein einzelner Puffer effektivarbeitet. [0047] DieSchnittstellensteuerung 414 nimmt ein Befehlssignal an,das Lese- und Schreibbefehle angibt, und nimmt ferner ein Adreßsignalan, das Speicheradressen angibt, die den Lese- und Schreibbefehlen zugeordnet sind.Ein Taktsignal kann als Teil des Befehlssignals enthalten sein,um den Schnittstellenentwurf beim Annehmen von Befehlen und Liefernvon Daten zu vereinfachen. Die Schnittstellensteuerung 414 kannferner ein „Daten-Bereit"-Signal liefern,um dem Prozessor gegenüberanzugeben, daß Datengepuffert und auf den Datenleitungen verfügbar sind. [0048] Ansprechendauf einen oder mehrere Lese-/Schreibbefehle erzeugt die Schnittstellensteuerung 414 eineSequenz von Lese-/Schreiboperationen auf dem Speicherarray 302,um die Befehle zu erfüllen,jedoch auch um den einen oder die mehreren Lesepuffer 422 inErwartung zukünftigerBefehle vorzubereiten. Falls ein Lesebefehl für eine Adresse empfangen wird,deren Daten bereits in einen Lesepuffer 422 wiedergewonnenwurden (oder deren Daten immer noch in dem optionalen Schreibpuffer 424 bleiben),veranlaßtdie Schnittstellensteuerung 414 den Puffer, den Befehlmit wenig oder ohne jegliche Latenz zu erfüllen. [0049] Wenndie Schnittstelle füreinen gepufferten Speicher mehrere Lesepuffer umfaßt, kanndie Schnittstellensteuerung 414 eine Konfigurationstabelleverwenden wie z.B. diejenige, die in 5a gezeigtist. Die Tabelle kann extern programmierbar sein, wobei die Schnittstellensteuerung 414 indiesem Fall Einträgefür dieTabelle annimmt, wenn das Befehlssignal einen Konfigurationsmodusfür eine Konfigurationder Schnittstellensteuerungsbetriebsparameter angibt. [0050] DieTabelle der 5a ordnetLesepuffer Speicheradreßbereichenzu. Die Spalte 502 der Tabelle spezifiziert eine Startadresseeines Speicherbereichs, die Spalte 504 spezifiziert eineEndadresse eines Speicherbereichs und die Spalte 506 spezifizierteinen Puffer, der dem Speicherbereich zugeordnet werden soll. Manbeachte, daß dieTabelle in Hardware voreingestellt und implementiert sein kann unddaß dieTabelle alternativ dazu in unterschiedlichen Formen ausgedrückt werdenkann. Beispielsweise kann die Spalte 504 eliminiert werden,und die Speicherbereiche könnendurch die Intervalle zwischen Adressen in Spalten 502 definiertsein. Bei einem alternativen Ausführungsbeispiel kann die Tabellezugunsten eines festverdrahteten Abbildungsalgorithmus eliminiertwerden, z. B. einer Modulofunktion, die ein Vielfaches der Pufferkapazität als Basis aufweist. [0051] Wenndie Schnittstellensteuerung 414 einen Lesebefehl für eine Adresseempfängt,deren Daten derzeit nicht gepuffert sind, leitet die Schnittstellensteuerungeine Sequenz von Leseoperationen an dem Speicherarray bezüglich derangeforderten Adresse und eines Blocks von benachbarten Adressenein. Die Schnittstellensteuerung 414 kann die Tabelle der 5a verwenden, um den Lesepufferzu bestimmen, in den der Datenblock gespeichert werden soll. Aufdiese Weise könnendie Lesepuffer strategisch verwendet werden, um ein unnötiges Pufferüberschreibenund ein erneutes Datenlesen zu eliminieren. [0052] 5b zeigt eine Tabelle, diedurch die Schnittstellensteuerung 414 verwendet werdenkann, um den Inhalt der Lesepuffer 442 nachzuverfolgen. DieSpalten der Tabelle sind eine erste Speicheradresse 510 undein Bereich 512. Jeder Puffer weist eine entsprechendeZeile in der Tabelle auf, um die Speicheradresse des gepuffertenDatenblocks und die Anzahl von Datenwörtern in dem Datenblock anzugeben.Wenn ein Lesebefehl zuerst empfangen wird, kann die Schnittstellensteuerung 414 dieseTabelle verwenden, um zu bestimmen, ob die angeforderte Adressein einem der Lesepuffer gepuffert ist. Alternativ dazu kann dieSpalte 512 als feststehende Konstante in dem Entwurf behandeltund weggelassen werden. [0053] DieTabellen der 5a und 5b können in Registern oder einemSpeicher in der Schnittstellensteuerung 414 gespeichertsein, wie durch Tabellen 426 in 4 gezeigt ist. Bei einem Ausführungsbeispielist der Tabellenspeicher vielleicht nicht-flüchtig, in alternativen Ausführungsbei spielenist der Tabellenspeicher jedoch flüchtig. Bei diesen alternativen Ausführungsbeispielenkann ein separater nicht-flüchtigerSpeicher 424 vorgesehen sein, um den Tabelleninhalt inder Abwesenheit von elektrischer Leistung zu bewahren. Der separate nicht-flüchtige Speicher 424 kannin der Schnittstellensteuerung 414 enthalten sein, oderalternativ dazu kann der separate nicht-flüchtige Speicher 424 ein reservierterBereich in dem Array 302 sein. [0054] Wenndie Speichervorrichtung wieder mit elektrischer Leistung versorgtwird, kann die Schnittstellensteuerung 414 den Inhalt derTabellen 426 und den entsprechenden Inhalt der Lesepuffer 422 wiederherstellen.Dieser Prozeß ermöglicht esder Schnittstelle füreinen gepufferten Speicher, jeglichen externen Vorrichtungen alsnicht-flüchtigzu erscheinen. [0055] 6 ist ein Flußdiagramm,das die Architektur, die Funktionalität und den Betrieb möglicher Implementierungender Schnittstellensteuerung 414 zeigen kann. Diesbezüglich kannjeder Block ein Modul, ein Segment oder einen Abschnitt eines Softwarecodes(oder eines Firmwarecodes) darstellen, das bzw. der eine oder mehrereausführbareAnweisungen zum Implementieren der spezifizierten logischen Funktion(en)aufweist. Es ist jedoch wahrscheinlicher, daß diese Flußdiagramme in Hardware implementiertsind, um die gewünschtenDatenraten zu unterstützen.Die Hardwareimplementierung kann die Form einer Hardware-Zustandsmaschineaufweisen. Man sollte ferner beachten, daß bei manchen alternativenImplementierungen die in den Blöckenangegebenen Funktionen in einer anderen Reihenfolge als der angegebenenauftreten können.Beispielsweise könnendie zwei Blöcke 612 und 616,die in 6 nacheinandergezeigt sind, in der Tat im wesentlichen gleichzeitig oder in derumgekehrten Reihenfolge ausgeführtwerden. [0056] Wenndie Speichervorrichtung anfänglich eingeschaltetwird, beginnt die Schnittstellensteuerung 414 im Block 602 zu arbeiten,wo eine Prüfung durchgeführt werdenkann, um zu bestimmen, ob die Wiederherstellungsoperation behindertwird. Beispielsweise kann die Wiederherstellungsoperation durcheine entsprechende Signalleitung (z. B. eine Aktivierung eines Befehlssignalsan die Schnittstellensteuerung 414) oder ein entsprechendesSetzen eines Flags in einem nicht-flüchtigen Register behindertwerden. Eine derartige Behinderung kann zum Zweck eines schnellerenHochfahrens der Vorrichtung gewünschtwerden. Bei einer fehlenden Behinderung tritt die Schnittstellensteuerung 414 inden Block 604 ein, um den gespeicherten Tabelleninhalt vondem Speicher 424 wiederzugewinnen, wobei sie die Lesepuffer 422 auffüllt unddie Tabellen 426 wiederherstellt. [0057] Beibestimmten Ausführungsbeispielenkann die Schnittstellensteuerung ein „Belegt"-Signal oder eine Verzögerungsaktivierungeines „Bereit"-Signals aktivieren,um dem Prozessor gegenüberanzugeben, daß dieSpeichervorrichtung belegt ist. Bei alternativen Ausführungsbeispielenkann die Wiederherstellungsoperation standardmäßig behindert und eventuelllediglich auf einen Empfang eines „Wiederherstellen"-Befehls hin durchgeführt werden. [0058] Vondem Block 604, oder, falls die Wiederherstellungsoperationbehindert wurde, von dem Block 602 tritt die Schnittstellensteuerung 414 inden Block 606 ein. Die Schnittstellensteuerung 414 kann indem Block 606 warten, um einen Speichertransaktionsbefehlzu empfangen. Wenn ein Befehl empfangen wird, kann die Schnittstellensteuerung 414 im Block 608 bestimmen,ob der Befehl ein Leistungsabschaltungsbefehl ist. (Dieser Befehlkann in Form einer aktivierten Signalleitung vorliegen, die einenbevorstehenden Leistungsverlust angibt.) Bei alternativen Ausführungsbeispielenkann die Schnittstellensteuerung 414 eine Leistungsverlusterfassungsschaltungund ausreichend eingebaute Kapazität aufweisen, um es der Vorrichtungzu ermöglichen,Informationen zu speichern, nachdem ein Leistungsverlust erfaßt wurde. [0059] Fallsein Leistungsabschaltungsbefehl empfangen wird (oder ein Leistungsverlusterfaßtwird), kann die Schnittstellensteuerung 414 im Block 610 zumindestdie Spalte 510 der Tabelle in 5b in einem nicht-flüchtigen Speicher speichern.Andere Tabelleninhalte könnenebenfalls gespeichert werden, und andere bevorstehende Schreiboperationen,die vor den Operationen der Speichervorrichtung vollendet sind,werden angehalten. [0060] Fallsdie Schnittstellensteuerung 414 bei Block 608 bestimmt,daß derBefehl kein Leistungsabschaltungsbefehl ist, kann die Schnittstellensteuerungbei Block 612 bestimmen, ob der Befehl ein Schreibbefehlist. Falls dies der Fall ist, kann die Schnittstellensteuerung 414 beiBlock 614 eine Schreiboperation einleiten, möglicherweiseindem sie den optionalen Schreibpuffer 424 veranlaßt, die Schreibdatenanzunehmen. Eine separate Zustandsmaschine in der Schnittstellensteuerung 414 kann dasVorhandensein von Daten in dem Schreibpuffer erfassen und nacheinanderden ECC-Codierer, den Zeilen- und den Spaltendecodierer und dieSchreibtreiber auslösen.Wenn die Schnittstellensteuerung bereit ist, einen weiteren Befehlanzunehmen, kann sie zu Block 606 zurückkehren. [0061] Fallsbei Block 612 bestimmt wird, daß der empfangene Befehl keinSchreibbefehl ist, geht die Steuerung zu Block 616 über, wodie Schnittstellensteuerung 414 bestimmen kann, ob derempfangene Befehl ein Lesebefehl ist. Falls dies der Fall ist, kann dieSchnittstellensteuerung 414 bei Block 618 dieTabelle der 5a verwenden,um zu bestimmen, welcher Lesepuffer, falls überhaupt, dem Speicherbereich,auf den durch den Lesebefehl zugegriffen wird, zugeordnet ist. BeiBlock 620 kann die Schnittstellensteuerung 414 dieTabelle der 5b verwenden,um zu bestimmen, ob der entsprechende Lesepuffer Daten von der angefordertenAdresse puffern läßt. Falls dieDaten nicht gepuffert sind, kann die Schnittstellensteuerung 414 beiBlock 622 eine Sequenz von Leseoperationen einleiten, umdie Daten von der angeforderten Adresse und den benachbarten Adressenabzurufen. Die Schnittstellensteuerung 414 kann den entsprechendenLesepuffer ferner veranlassen, die Daten, wie sie durch den ECC-Codierercodiert sind, anzunehmen. [0062] BeiBlock 624 kann die Schnittstellensteuerung 414 denLesepuffer veranlassen, die Daten von der angeforderten Adresseansprechend auf den Lesebefehl als ein Ausgangsdatensignal zu liefern. Wenndie Schnittstellensteuerung 414 bereit ist, einen weiterenBefehl anzunehmen, kehrt die Steuerung zu Block 606 zurück. [0063] Fallsein empfangener Befehl kein Lese- oder Schreibbefehl ist, kann dieSchnittstellensteuerung 414 bei Block 626 bestimmen,ob der empfangene Befehl ein Konfigurationsbefehl ist. Ein derartigerBefehl kann verwendet werden, um verschiedene Betriebsparameterder Schnittstellensteuerung 414 festzusetzen. Beispielevon einstellbaren Parametern könneneine Zuordnung von Puffern zu Speicherbereichen, eine Freigabe oderSperrung der Pufferungsoperationen, Leselatenzen, umfassen. BeiBlock 628 kann die Schnittstellensteuerung 414 dieKonfigurationsdaten in ein entsprechendes Register oder einen entsprechendenTabelleneintrag aufnehmen. Wenn die Schnittstellensteuerung 414 bereitist, einen weiteren Befehl anzunehmen, kehrt die Steuerung zu Block 606 zurück. [0064] Somitwurde eine integrierte Speichervorrichtung beschrieben, die eineeffektive Schnittstelle füreinen nichtflüchtigengepufferten Speicher aufweist. Die Schnittstelle für einengepufferten Speicher kann als Teil der integrierten Speichervorrichtungintegriert sein. Die Schnittstelle kann vorteilhafterweise für eine verringertedurchschnittliche Latenz bei Speichertechnologien, die eine relativhohe Latenz aufweisen, sorgen. Derartige Latenzen könnten sichin manchen unterstütztenSpeicherarchitekturen finden, und zwar aufgrund der bei denselbenverwendeten ECC-Decodierern.Die verringerte durchschnittliche Latenz in Kombination mit einerunterstütztenSpeicherarchitektur kann die Wirtschaftlichkeit von entstehendenSpeichertechnologien verbessern, wodurch eine Weiterentwicklungneuer Technologien gefördertwird.
权利要求:
Claims (19) [1] Integrierte Speichervorrichtung, die folgende Merkmaleausweist: ein nicht-flüchtigesSpeicherarray (302); und eine Schnittstelle für einennicht-flüchtigengepufferten Speicher, die auf einem Substrat mit dem Speicherarray(302) integriert ist, wobei die Speicherschnittstelle folgendeMerkmale aufweist: einen oder mehrere flüchtige Puffer (422),die konfiguriert sind, um Daten für Leseoperationen zu puffern;und einen Tabellenspeicher (426), der konfiguriertist, um eine oder mehrere Adressen anzugeben, die Daten zugeordnetsind, die in dem einen oder den mehreren flüchtigen Puffern (422)gepuffert sind. [2] Vorrichtung gemäß Anspruch1, bei der der Tabellenspeicher (426) flüchtig istund bei der die Speicherschnittstelle konfiguriert ist, um Inhaltedes Tabellenspeichers (426) während eines Nicht-Vorliegenselektrischer Leistung in dem nicht-flüchtigen Speicher (428)zu bewahren. [3] Vorrichtung gemäß Anspruch2, bei der die Speicherschnittstelle ferner konfiguriert ist, umden Inhalt des Tabellenspeichers (426) von dem nicht-flüchtigenSpeicher (428) wiederherzustellen, wenn die elektrischeLeistung zurückkehrt. [4] Vorrichtung gemäß einemder Ansprüche1 bis 3, bei der, wenn die elektrische Leistung zurückkehrt, dieSpeicherschnittstelle ferner konfiguriert ist, um den einen oderdie mehreren flüchtigenPuffer (422) wieder in einen Zustand zu versetzen, derdem Nicht-Vorliegen der elektrischen Leistung vorausgeht. [5] Vorrichtung gemäß einemder Ansprüche1 bis 4, bei der der eine oder die mehreren flüchtigen Puffer (422)folgende Merkmale aufweisen: eine Mehrzahl von Lesepuffern,die jeweils einer anderen Region des Speicherarrays zugeordnet sind undkonfiguriert sind, um lediglich Daten für Leseoperationen an einerzugeordneten Region zu puffern. [6] Vorrichtung gemäß einemder Ansprüche1 bis 5, bei der das Speicherarray Magnetischer-Direktzugriffsspeicher-Zellen (MRAM-Zellen)aufweist. [7] Vorrichtung gemäß einemder Ansprüche1 bis 6, bei der die Speicherschnittstelle ferner folgendes Merkmalaufweist: ein Schnittstellensteuermodul, das konfiguriert ist, umLesebefehle, die eine Speicheradresse spezifizieren, zu empfangen,wobei das Schnittstellensteuermodul mit dem Speicherarray (302)gekoppelt ist, um Leseoperationen durchzuführen, um die Lesebefehle zuerfüllen,und um Lesepuffer darauf vorzubereiten, erwartete Lesebefehle zuerfüllen. [8] Vorrichtung gemäß Anspruch7, die ferner folgendes Merkmal aufweist: einen Fehlerkorrekturcode-Decodierer(ECC-Decodierer) (418), der zwischen das Speicherarray(302) und den einen oder die mehreren flüchtigenPuffer (422) gekoppelt ist. [9] Verfahren zum Liefern eines Zugriffs auf gespeicherteDaten, wobei das Verfahren folgende Schritte umfaßt: Bewahren,währendeines Nicht-Vorliegens von elektrischer Leistung, von Informationen,die Daten in dem einen oder den mehreren Lesepuffern (422)angeben; und Wiederherstellen der Daten zu dem einen oder den mehrerenLesepuffern (422), wenn die Leistung zurückkehrt. [10] Verfahren gemäß Anspruch9, bei dem das Bewahren folgende Schritte umfaßt: Erfassen einer bevorstehendenLeistungsabschaltung; fürjeden des einen oder der mehreren Lesepuffer (422), Speicherneiner Startadresse, die Daten in dem Lesepuffer zugeordnet ist,in einem nicht-flüchtigenSpeicher (428). [11] Verfahren gemäß Anspruch10, bei dem das Wiederherstellen für jeden des einen oder dermehreren Lesepuffer (422) folgende Schritte umfaßt: Zugreifenauf den nicht-flüchtigenSpeicher (428), um die dem Lesepuffer (422) zugeordneteStartadresse wiederzugewinnen; und Füllen des Lesepuffers (422)mit Daten von einem Speicherarray (302), wobei mit Datenbegonnen wird, die der Startadresse zugeordnet sind. [12] Verfahren gemäß Anspruch10 oder 11, bei dem das Verfahren vor dem Erfassen ferner folgende Schritteumfaßt: Empfangeneines Lesebefehls, der eine Leseadresse aufweist; Bestimmen,ob Daten von der Leseadresse in einem Lesepuffer (422)gepuffert werden; Wiedergewinnen von Daten von einer Stellein einem Speicherarray (302), die der Leseadresse zugeordnetist, falls die Daten nicht gepuffert sind; und Ansprechen aufden Lesebefehl mit Daten von dem einen der Mehrzahl von Lesepuffern(422), falls die Daten gepuffert sind. [13] Verfahren zum Liefern eines Zugriffs auf gespeicherteDaten, wobei das Verfahren folgende Schritte umfaßt: Bewahren,währendeines Nicht-Vorliegens von elektrischer Leistung, von Informationen,die Daten in dem einen oder den mehreren Lesepuffern (422)angeben; wenn die Leistung zurückkehrt, Bestimmen, ob eine Wiederherstellungsoperationfreigegeben ist; und falls die Wiederherstellungsoperationfreigegeben ist, Wiederherstellen der Daten zu dem einen oder den mehrerenLesepuffern (422), wenn die Leistung zurückkehrt. [14] Verfahren gemäß Anspruch13, bei dem der eine oder die mehreren Lesepuffer (422)auf einem Substrat mit einem nicht-flüchtigen Speicherarray integriertsind und bei dem das Wiederherstellen für jeden des einen oder dermehreren Lesepuffer (422) folgende Schritte umfaßt: Wiedergewinneneiner Startadresse von dem nichtflüchtigen Speicher (428);und Füllendes Lesepuffers (422) mit Daten, die von dem nicht-flüchtigenSpeicher (428) wiedergewonnen werden, wobei bei der Startadressebegonnen wird. [15] Digitalvorrichtung, die folgende Merkmale aufweist: einenSpeicher, der eine Schnittstelle für einen nicht-flüchtigengepufferten Speicher mit einem oder mehreren Lesepuffern (422)aufweist; und einen Prozessor, der mit der Speichervorrichtunggekoppelt ist und konfiguriert ist, um gespeicherte Informationenvon dem Speicher wiederzugewinnen, wobei der Prozessor denSpeicher veranlaßt,einen Leistungsabschaltungsbefehl zu empfangen, bevor elektrischeLeistung von dem Speicher entfernt wird, und wobei die Speicherschnittstelleals Reaktion in einem nicht-flüchtigenSpeicher (428) Informationen speichert, die Daten in demeinen oder den mehreren Lesepuffern (422) anzeigen. [16] Vorrichtung gemäß Anspruch15, bei der die Speicherschnittstelle ferner konfiguriert ist, umden einen oder die mehreren Lesepuffer (422) gemäß Informationenvon dem nicht-flüchtigenSpeicher (428) mit Daten neu zu beladen, wenn Leistungzurückkehrt. [17] Vorrichtung gemäß Anspruch15 oder 16, bei der die in dem nicht-flüchtigen Speicher (428)gespeicherten Informationen eine Startadresse für jeden des einen oder dermehreren Lesepuffer (422) aufweisen. [18] Vorrichtung gemäß einemder Ansprüche15 bis 17, bei der der eine oder die mehreren Lesepuffer (422)folgende Merkmale aufweisen: eine Mehrzahl von Lesepuffern(422), die jeweils einer anderen Region des Speichers zugeordnetsind und konfiguriert sind, um lediglich Daten für Leseoperationen an einerzugeordneten Region zu puffern. [19] Vorrichtung gemäß Anspruch18, bei der die Speicherschnittstelle ferner folgende Merkmale aufweist: einSchnittstellensteuermodul, das konfiguriert ist, um Lesebefehle,die eine Speicheradresse spezifizieren, zu empfangen, wobei dasSchnittstellensteuermodul mit einem nicht-flüchtigen Speicherarray gekoppeltist, um Leseoperationen durchzuführen,um die Lesebefehle zu erfüllen,und um Lesepuffer darauf vorzubereiten, erwartete Lesebefehle zuerfüllen; und wobeider Speicher ferner folgendes Merkmal aufweist: einen Fehlerkorrekturcode-Decodierer(ECC-Decodierer) (418), der zwischen das nicht-flüchtige Speicherarrayund den einen oder die mehreren Lesepuffer (422) gekoppeltist.
类似技术:
公开号 | 公开日 | 专利标题 US9471425B2|2016-10-18|Data conditioning to improve flash memory reliability US10360964B2|2019-07-23|Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device US10437491B2|2019-10-08|Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register US10437723B2|2019-10-08|Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device US10460781B2|2019-10-29|Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank US10628316B2|2020-04-21|Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register US10192602B2|2019-01-29|Smart cache design to prevent overflow for a memory device with a dynamic redundancy register US10446210B2|2019-10-15|Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers US10192601B2|2019-01-29|Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers US8897065B2|2014-11-25|Efficient data storage in multi-plane memory devices US10198221B2|2019-02-05|Methods of operating semiconductor memory devices with selective write-back of data for error scrubbing and related devices US8832360B2|2014-09-09|Solid state storage device controller with expansion mode US8681552B2|2014-03-25|System and method for accessing and storing interleaved data US9176868B2|2015-11-03|Translation layer in a solid state storage device JP4834676B2|2011-12-14|System and method using on-chip non-volatile memory write cache TWI610303B|2018-01-01|非揮發性記憶體元件、記憶體系統及其相關控制方法 KR101106977B1|2012-01-20|비휘발성 메모리의 캐시 동작에서의 데이터 래치의 사용 KR102025340B1|2019-09-25|불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템 US8144528B2|2012-03-27|Memory with data control US5353427A|1994-10-04|Semiconductor memory device for simple cache system with selective coupling of bit line pairs US6034891A|2000-03-07|Multi-state flash memory defect management KR101032576B1|2011-05-06|셀 당 비트가 가변하는 고체 상태 메모리 디바이스로의 에러 정정 코드의 프로그래밍 US8537621B2|2013-09-17|Non-volatile memory device and read method thereof KR100385370B1|2003-05-27|개선된 메모리 시스템 장치 및 방법 US7212426B2|2007-05-01|Flash memory system capable of inputting/outputting sector data at random
同族专利:
公开号 | 公开日 US20040268046A1|2004-12-30| JP2005018976A|2005-01-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2005-01-27| OP8| Request for examination as to paragraph 44 patent law| 2009-12-17| 8139| Disposal/non-payment of the annual fee|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|