DE69630624T2 - EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern - Google Patents
EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern Download PDFInfo
- Publication number
- DE69630624T2 DE69630624T2 DE69630624T DE69630624T DE69630624T2 DE 69630624 T2 DE69630624 T2 DE 69630624T2 DE 69630624 T DE69630624 T DE 69630624T DE 69630624 T DE69630624 T DE 69630624T DE 69630624 T2 DE69630624 T2 DE 69630624T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- byte
- sector
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Description
- Technisches Gebiet
- Die Erfindung betrifft elektrisch löschbare Halbleiter-Nur-Lese-Speicher (EEPROMs), insbesondere die interne Architektur solcher Bauelemente.
- Stand der Technik
- EEPROMs weisen die Fähigkeit auf, dass sie elektrisch programmiert und gelöscht werden können, und bewahren ihre Daten, selbst nachdem eine Stromversorgung entfernt wurde. Sie sind jedoch in der Anzahl von Malen, die jede Speicherzelle programmiert und gelöscht werden kann, begrenzt, typischerweise auf einige tausend Programmierund Löschzyklen eingeschränkt. Eine gesamte Speichereinheit, wie z. B. ein Byte oder eine Gruppe von Bytes, muss einen Löschzyklus ertragen, bevor eine neue Information in irgendein Bit oder eine Gruppe von Bits in einer Speichereinheit geschrieben werden kann.
- EEPROMs mit allen Leistungsmerkmalen sind jene EEPROMs, die ein Teil eines Speichersystems mit einer Speichereinheitsgröße entsprechend einem Byte von Speicherzellen sind, und sehen daher einen Schreibzugriff auf ein Minimum von einem Byte Speicher auf einmal vor. Dies ermöglicht die Begrenzung ihrer Programmier- und Löschzyklen auf nur jene Bytes, die geändert werden müssen, und erhöht dadurch die Haltbarkeit der Speicherkomponente. Die Bytezugriffsmöglichkeit von EEPROMs mit allen Leistungsmerkmalen vereinfacht auch die Programmierung vom Gesichtspunkt des Benutzers, da man nur die Daten, die man programmieren will, und die Adresse, an der die Daten gespeichert werden sollen, zum EEPROM übertragen muss. Der Bedarf, jedes geänderte Byte zu programmieren, zu löschen und dann neu zu programmieren, kann jedoch lange Programmierzeiten erfordern, wenn der gesamte Chip neu programmiert werden muss. Aufgrund ihrer komplizierteren Ansteuerschaltungsanordnung bleiben EEPROMs mit allen Leistungsmerkmalen außerdem weiterhin hinter anderen Halbleiterspeichertechnologien hinsichtlich der Dichte und Kosteneffizienz zurück. Ein Speichersystem mit EEPROMs mit allen Leistungsmerkmalen umfasst eine Kernmatrix von Speicherzellen, wobei jede Zelle einen Ansteuertransistor in Reihe mit einem NMOS-Transistor mit variabler Schwelle umfasst. Die Matrix ist in Zeilen und Spalten organisiert, wobei der Schnittpunkt einer Zeile und einer Spalte die Adressenstelle einer Speicherzelle umfasst.
- Eine typische Kernarchitektur mit EEPROMs mit allen Leistungsmerkmalen des Standes der Technik ist in
1 dargestellt. Eine Zeile von Speicherzellen, die durch eine zweckgebundene Wortleitung11 identifiziert wird, die mit den Steuergates aller Zellenansteuertransistoren21 innerhalb einer Zeile elektrisch gekoppelt ist, ist äquivalent zu einer Speicherseite im adressierbaren Raum. Jeder Zellenansteuertransistor21 zusammen mit einem seriell verbundenen Transistor19 mit variabler Schwelle bildet eine Speicherzelle, die zum Speichern eines Informationsbits in der Lage ist. Wenn eine Wortleitung11 aktiviert wird, koppelt ein Ansteuertransistor21 seinen in Reihe geschalteten Transistor19 mit variabler Schwelle elektrisch mit einer Bitleitung25 , die zum Lesen der im Transistor19 mit variabler Schwelle gespeicherten Information verwendet wird. Aufgrund der Byteadressierbarkeit von EEPROMs mit allen Leistungsmerkmalen war die interne Datenorganisation von EEPROMs mit allen Leistungsmerkmalen des Standes der Technik auf 8 Bits, die ein Byte umfassen, eingeschränkt. Eine Leseleitung15 , die Lese-, Programmier- und Löschspannungen an das Steuergate eines Transistors19 mit variabler Schwelle einer Speicherzelle anlegt, ist in Segmente unterbrochen, die die Steuergates von 8 aufeinanderfolgenden Speichertransistoren mit variabler Schwelle oder ein Byte27 miteinander koppeln. Diese Datenorganisation erfordert die Verwendung einer zusätzlichen Byteansteuer-Spaltenleitung13 und eines Byteansteuertransistors17 für jedes Byte von Speicherzellen, so dass durch die Byteansteuer-Spaltenleitungen und die Byteansteuertransistoren nur ein Leseleitungssegment und dadurch nur ein Byte während der Programmierung einzeln angesteuert werden kann. Der Byteansteuertransistor17 erfordert eine relativ große Siliziumfläche. Außerdem erfordern EEPROMs mit allen Leistungsmerkmalen gewöhnlich eine gewisse Art Fehlerkorrekturimplementierung, die, um ein verlorenes Bit eines 8-Bit-Datenworts zu erkennen und wiederherzustellen, 4 Paritätsbits erfordert, mit einer Vergrößerung der Kernspeicherfläche von etwa 50%. Die vorstehend dargelegten Architektureigenschaften von herkömmlichen EEPROMs mit allen Leistungsmerkmalen haben bisher ihre Dichten auf ein Megabit begrenzt. - Das Aufkommen von Flash-EEPROMs bot einige Antworten-auf die mit EEPROMs mit allen Leistungsmerkmalen verbundenen Dichteprobleme. Flash-EEPROMs verwenden einen oder zwei Transistoren pro Speicherzelle, aber umfassen keine Byteansteuer-Spaltenleitungen und Byteansteuertransistoren.
- Auf diese Weise erreichen Flash-EEPROMs eine kompaktere Konstruktion als EEPROMs mit allen Leistungsmerkmalen, aber sie sind nicht byteprogrammierbar. Flash-EEPROMs haben minimale Schreibeinheiten, die aus Blöcken oder Sektoren von Speicherzellen bestehen. Typischerweise umfassen diese Blöcke eine oder mehrere Zeilen der Speichermatrix. Flash-EEPROMs gruppieren ihre Spalten nach Ausgängen und nicht nach Byte. Das heißt, alle Bits 0 aller Worte sind benachbart. Flash-EEPROMs beseitigen somit die Byteansteuerleitungen und die Byteansteuertransistoren von EEPROMs mit allen Leistungsmerkmalen und können dadurch höhere Dichten erreichen. Die großen Speicherblöcke von Flash-EEPROMs begrenzen jedoch die Lebensdauer des gesamten Chips. Um ein Byte eines Speicherblocks neu zu programmieren, muss der gesamte Block zuerst in einen temporären Haltespeicher, gewöhnlich einen Cache, gelesen werden, das fragliche Byte wird dann innerhalb des Haltecaches aufbereitet, der gesamte Flash-Speicherblock erfährt einen Löschzyklus, bevor die Daten im Haltecache in denselben Flash-Speicherblock zurückgeschrieben werden können, wobei somit viele Speicherzellen unnötigen Lösch/Schreib-Zyklen unterzogen werden und vom verfügbaren Systemcacheplatz schlechten Gebrauch gemacht wird. Außerdem kann der Bedarf für das unnötige Löschen/Schreiben von zusätzlichen Bytes die mittlere Programmierzeit eines Flash-Chips verlängern, wenn nur einige Bytes auf einmal eine Neuprogrammierung benötigen.
- Einige Bauelemente des Standes der Technik haben danach gestrebt, einen Kompromiss zwischen EEPROMs mit allen Leistungsmerkmalen und Flash-EEPROMs zu finden. Das US-Pat. Nr. 4 949 309, Rao, bietet einen Chip mit sowohl mit allen Leistungsmerkmalen versehenen als auch Flash-Lösch-Programmierbetriebsarten. Diese Konstruktion beseitigt den Ansteuertransistor von herkömmlichen EEPROM-Speicherzellen im Austausch gegen ein komplizierteres Wortleitungs-Decodierschema, behält jedoch die Byteansteuerleitungen und die Byteansteuertransistoren bei und integriert eine zusätzliche Volumenlöschleitung und einen Volumenlöschtransistor für jedes Paar von Wortleitungen. Das US-Pat. Nr. 5 191 556, Radjy, offenbart ein Verfahren zum Verringern der Größe eines Flash-Speicherblocks auf eine einzelne Speicherseite, eine Zeile von Speicherzellen. Das US-Pat. Nr. 5 317 535, Talreja erörtert eine Methode zum Vergrößern des Datenformats von EEPROMs von 8 Bits auf 16 Bits. Das US-Pat. Nr. 5 353 248, Gupta, beschreibt einen SRAM mit einem Reserve-Flash-Speicher mit gleicher Größe auf dem gleichen Chip. Dies vereinfacht die Programmierung, macht jedoch keinen effizienten Gebrauch vom Flash-Speicher. Das US-Pat. Nr. 5 359 569, Fujita et al., vereinfacht die Programmierung eines Flash-Speichers vom Standpunkt des Benutzers durch Integrieren eines Cache-Speichers und einer Steuereinheit zum Verwalten des Zugriffs auf mehrere Flash-Komponenten auf der Computerplatinenebene.
- Es ist eine Aufgabe dieser Erfindung, einen EEPROM mit dem Merkmal voller Funktionalität bereitzustellen, welcher in der Lage ist, hohe Dichten zu erzielen, während die Anzahl von beanspruchenden Programmier- und Löschzyklen, die eine Speicherzelle durchmacht, verringert wird.
- Offenbarung der Erfindung
- Die vorliegende Erfindung ist in Anspruch 1 definiert. Spezielle Ausführungsbeispiele der Erfindung sind in den abhängigen Ansprüchen dargelegt.
- Die vorliegende Erfindung stellt eine neue interne Architektur für löschbare Sektor-EEPROMs in Konfigurationen mit allen Merkmalen bereit. Eine Speichermatrix solcher EEPROMs ist in Speicherseiten unterteilt, wobei jede Speicherseite ferner in eine Vielzahl von selektiv löschbaren Seitensektoren unterteilt ist. Jeder Seitensektor enthält eine Vielzahl von individuell leseadressierbaren Mehrbyte-Datenworten. Der Seitensektor ist die kleinste programmieradressierbare Dateneinheit. Die Verwendung von Seitensektoren verringert die Anzahl von nicht ausgewählten Datenbytes innerhalb einer Speicherseite, die einen Lösch- und Programmierzyklus durchmachen muss, wenn ein anderes Byte innerhalb derselben Speicherseite umprogrammiert werden muss. Ferner benötigt man nur eine Ansteuerleitung und ein Ansteuerbauelement pro Mehrwort-Seitensektor im Gegensatz zu EEPROMs mit allen Merkmalen, die eine Ansteuerleitung und ein Ansteuerbauelement für jedes Byte von Speicherzellen erfordern. Man organisiert die Bits innerhalb eines Seitensektors auch nach dem Ausgang, wobei alle Spalten des Bits 0 innerhalb desselben Seitensektors benachbart sind, und nicht nach dem Byte wie in EEPROMs des Standes der Technik mit allen Merkmalen, bei denen die Bits 0 bis 7 eines Bytes benachbart sein müssen.
- Speicher des Standes der Technik, die eine Fehlerkorrekturcode-, ECC, Einheit verwenden, korrigieren typischerweise mindestens ein Bit pro Byte. Die vorliegende Erfindung verwendet eine ECC-Einheit, um ein Bit pro Mehrbyte-Datenwort zu korrigieren, wodurch die Anzahl von ECC-Bits pro Datenbyte verringert wird. Außerdem beinhaltet die Erfindung die automatische Auffrischung, die für den Benutzer transparent ist, eines beliebigen Speicherworts, das die Verwendung der ECC-Einheit zum Wiederherstellen irgendeines falsch gelesenen Datenbits erfordert.
- Die Erfindung beinhaltet eine Gruppe von Speichern, um die Aktivierung einer Seitensektor-Leseleitung zu steuern. Dies macht es möglich, eine hohe Spannung an die Leseleitung anzulegen, während eine niedrige Spannung auf der Wortleitung aufrechterhalten wird.
- Die Architektur der Erfindung ist in der Lage, gleichzeitig irgendeinen oder alle der Seitensektoren innerhalb einer Speicherseite, die physikalisch einer Speicherkernzeile entspricht, zu programmieren und zu löschen. Dies wird durch das Hinzufügen eines platineninternen Schreibcaches mit niedriger Spannung erzielt, der als Puffer zwischen dem Benutzer und dem Hauptspeicherkern wirkt. Dies verbessert die Durchschreibzeit, da der Benutzer schnell aufeinanderfolgende Datenworte in den Cache schreiben kann. Der Schreibcache weist eine Mehrbyte-Wortorganisation auf, die mit der Mehrbyte-Wortorganisation des EEPROM-Speicherkerns in Beziehung steht. Er weist eine Größe gleich einer Speicherseite des Speicherkerns auf, aber wandelt die Daten im Strom von der Byteebene in die Mehrbyte-Wortebene um. Der Schreibcache nimmt Daten vom Benutzer in Byteform an und verfolgt alle neuen Daten durch die Verwendung von Bytekennzeichen. Wenn der Benutzer die Eingabe von neuen Daten beendet hat, legt die letzte zwischengespeicherte Zeilenadresse, die hohen Adressbits, der neu eingegebenen Daten die Kernspeicherseite, d. h. Zeile, die den eingegebenen Adressen entspricht, fest. Der Schreibcache nimmt dann mit einer Mehrbytewort-Geschwindigkeit durch eine ECC-Einheit alle vorherigen Daten von der ausgewählten Speicherkernzeile im Cachespeicher an, was sicherstellt, dass die neu eingegebenen Daten nicht mit den aus dem Speicherkern gelesenen alten Daten überschrieben werden. Durch die Verwendung von Seitensektorkennzeichen und/oder des ECC-Fehlersignals ERR stellt das Bauelement dann nur diejenigen Seitensektoren innerhalb des Schreibcaches wieder her, die neue Daten empfangen haben oder die ECC-Einheit benötigten, um verlorene Daten wiederherzustellen. Der Schreibcache weist folglich Byte- sowie Mehrbyte-Datenwort- Schreibadressierbarkeit und Mehrbyte-Datenwort-Leseadressierbarkeit auf.
- Kurzbeschreibung der Zeichnungen
-
1 ist eine schematische Transistorebenenansicht eines Teils einer Kernmatrix mit EEPROMs mit allen Leistungsmerkmalen des Standes der Technik. -
2 ist eine schematische Transistorebenenansicht eines Teils eines flashartigen EEPROM-Kerns, der in Einklang mit der vorliegenden Erfindung organisiert ist. -
3 ist eine schematische Blockdiagrammansicht des EEPROM-Bauelements der vorliegenden Erfindung, das einen wie in2 organisierten Speicherkern und eine periphere Logik beinhaltet, die einen Schreibzugriff auf diesen Kern mit allen Leistungsmerkmalen vorsieht. -
4A –4C sind ein Betriebsablaufplan einer Schreibzustandsmaschine im Einklang mit der vorliegenden Erfindung. - Beste Art zur Ausführung der Erfindung
- Mit Bezug auf
2 unterteilt eine für die EEPROM-Architektur der vorliegenden Erfindung spezifische Speicherkernorganisation eine Speicherseite, d. h. alle Speicherzellen innerhalb einer Zeile, in 2, 4 oder mehr Seitensektoren33 . Jede Speicherzelle umfasst einen Zellenansteuertransistor22 , der mit einem Speichertransistor24 mit variabler Schwelle in Reihe geschaltet ist. Die bevorzugte EEPROM-Architektur verwendet eine interne 16-Bit- oder 32-Bit-Datenwort-Architektur, während eine externe 8-Bit-Byte-Lese/Schreib-Zugriffsmöglichkeit aufrechterhalten wird. Die neue Kernorganisation gruppiert die Bitleitungen nicht nach Byte oder Wort, sondern nach Seitensektoren33 , wobei jeder Seitensektor33 aus mehreren Datenworten besteht, so dass keine Byteansteuerleitungen und Byteansteuertransistoren mehr verwendet werden. Statt dessen verwendet die neue Architektur eine Seitensektor-Ansteuerleitung37 und ein Seitensektor-Ansteuerbauelement, das als Ansteuerzwischenspeicher für jeden Seitensektor33 implementiert ist und somit die Verwendung von Ansteuertransistoren vom Verarmungstyp verringert oder beseitigt. Alternativ kann das vorher dargelegte Seitensektor-Ansteuerbauelement als Ansteuertransistor40 implementiert werden, wie in2 gezeigt. Die Datenbits innerhalb jedes Seitensektors33 werden nach Rang angeordnet, wobei Bits mit gleichem Rang zu Blöcken zusammengruppiert werden. Im Gegensatz zum Stand der Technik, der Bits nach Byte gruppierte, so dass jede Gruppe von Bits aus einem Bit mit Rang 0, einem Bit mit Rang 1, einem Bit mit Rang 2 und so weiter bis zu einem Bit mit Rang 7 bestehen würde. Wenn jeder Seitensektor33 bei der vorliegenden Erfindung aus zweiunddreißig 16-Bit-Worten besteht, dann wird jeder Seitensektor33 in sechzehn Bitleitungsblöcke31 unterteilt, wobei jeder Bitleitungsblock aus 32 Bits mit gleichem Rang besteht. Alle Bits mit Rang 0 innerhalb eines Seitensektors33 werden beispielsweise benachbart innerhalb des Bitleitungsblocks 0, 31, gruppiert, alle Bits mit Rang 1 innerhalb desselben Seitensektors33 werden benachbart im Bitleitungsblock 1, der nicht dargestellt ist, gruppiert, und so weiter bis zum Bitleitungsblock 15, 35, im Fall einer 16 Bit breiten Wortorganisation. - Mit Bezug auf
3 verwendet die neue EEPROM-Architektur auch einen ECC-Mechanismus73 auf Hammingcode-Basis, um irgendeinen Bitfehler pro Wort, das 2, 4 oder mehr Bytes lang ist, der während eines Lesezugriffs auf den Speicherkern aufgetreten sein könnte, zu erkennen und automatisch zu korrigieren. Die Verwendung einer Mehrbyte-Datenarchitektur verringert die Siliziumfläche erheblich, da, je breiter das Wort ist, desto kleiner das Verhältnis zwischen den ECC-Paritätsbits und den Datenbits ist. Das Korrigieren von 1 Bit eines 8-Bit-Datenworts erfordert beispielsweise 4 Paritätsbits mit einer Bitbreiten-Steigerung von 50% pro Datenwort, ein 16-Bit-Datenwort erfordert 5 Paritätsbits mit einer Steigerung von 31% und ein 32-Bit-Datenwort erfordert 6 Paritätsbits mit einer Steigerung von nur 19%. - Die vorliegende Erfindung weist eine interne Datenarchitektur auf, die nach Mehrbyteworten angeordnet ist, aber sie steht mit einem Systembenutzer in Bytes in Verbindung. Wie in
3 dargestellt, führt die Schaltung der vorliegenden Erfindung dies durch eine Reihe von Multiplexschaltungen75 , die auswählen, welches Byte eines Mehrbyteworts zum Systembenutzer ausgesandt wird, und durch eine Demultiplexschaltung79 zum Annehmen von Bytegröße-Daten, die vom Systembenutzer eingeladen werden, und durch eine Mehrfach-Schreibtakt-Implementierung des Schreibcaches83 durch, wobei fortlaufende Bytegröße-Datenstücke in ein Mehrbyte-Datenwort gruppiert werden. Der Schreibcache83 ist die Größe von einer Kernspeicherseite und ist als SRAM zusammen mit all seiner erforderlichen Steuerlogik implementiert, wie z. B. einer endlichen Zustandsmaschine und Zähler, um einen Zurücklesezyklus einer gesamten Speicherseite während eines Lösch/Schreib-Zyklus durchzuführen, wie nachstehend erläutert. - Die Programmierung besteht aus drei Zyklen; einem Ladezyklus, einem Zurücklesezyklus und einem Zurückledezyklus. Der Programmierzyklus beginnt mit einem vom Benutzer gesteuerten Ladezyklus, während dessen der Systembenutzer neue Daten in den Schreibcache
83 lädt. Wie bei EEPROMs des Standes der Technik liefert der Benutzer typischerweise den Ladetakt über den WE%-Stift, wenn CE% auf einem niedrigen Pegel gehalten wird. Alternativ könnte der Ladetakt über den CE%-Stift geliefert werden, wenn der WE%-Stift auf einem niedrigen Pegel gehalten wird. Bei jedem Ladezyklus wird das entsprechende Bytekennzeichen der ausgewählten Byteadresse aktiviert. Es sind 2, 4 oder mehr Bytekennzeichen pro Mehrbytewort vorhanden, aber der Schreibcache ist byteschreibadressierbar. Der externe WE%-Takt steuert einen Befehlsdecodierer an, der nicht dargestellt ist und der als Schnittstelle dient, die Befehlsbetriebsarten vom Systembenutzer in Steuersignale für eine Schreibzustandsmaschine WSM77 umsetzt. Die Schreibzustandsmaschine77 steuert wiederum die verschiedenen Lese- und Schreibstufen eines Programmierund Löschzyklus sowie die Spannungen und Zeitsteuerungen, die erforderlich sind, um eine Zelle angemessen zu programmieren und zu löschen, wie nachstehend erläutert. Wie bei Speicherladevorgängen des Standes der Technik endet der Ladezyklus mit einem Zeitüberwachungsprotokoll. - Obwohl EEPROMs des Standes der Technik einen Befehlsdecodierer aufweisen, um dem Systembenutzer einen Zugriff auf die internen Funktionsbetriebsarten des Chips zu bieten, begrenzen EEPROMs des Standes der Technik den Zugriff des Systembenutzers auf nur einige Benutzerbetriebsarten. Die neue EEPROM-Architektur erweitert die Verwendung dieses Befehlsdecodierers, um dem Systembenutzer die Steuerung aller Benutzerbetriebsarten und Testbetriebsarten zu gewähren. Der Chip besitzt ein 8-Bit-Betriebsartenregister, das der Systembenutzer mit einem ID-Byte der gewünschten Befehlsbetriebsart über ein Software-Schreibschutzprotokoll unter Verwendung einer vorbestimmten zweckgebundenen Sequenz laden kann. Das Betriebsartregister wird vom Befehlsdecodierer gelesen, der die entsprechenden Steuersignale zur WSM
77 zur Implementierung überträgt. - Im Anschluss an den Ladezyklus wird die Programmiersteuerung an die WSM
77 übertragen und sie beginnt durch Einleiten des Zurücklesezyklus. Während des Zurücklesezyklus beginnt die WSM77 auf der Basis der Seitenadresse, die am Ende des Ladezyklus zwischengespeichert wird, Daten aus der entsprechenden Kernspeicherseite, die durch eine Wortleitung57 festgelegt wird, in den Schreibcache83 zu lesen. Die Cachebytekennzeichen85 werden verwendet, um sicherzustellen, dass keine neuen Daten, die vom Systembenutzer eingegeben werden, mit den existierenden Daten, die aus dem Speicherkern ausgelesen werden, überschrieben werden. Während des Zurücklesezyklus einer Kernspeicherseite überwacht die WSM77 ein Fehlersignal ERR111 , das von der ECC-Einheit73 kommt, um festzustellen, ob die ECC73 wenigstens ein Datenwort korrigiert hat. Wenn die ECC73 tatsächlich ein Datenwort korrigiert hat, dann setzt die WSM77 , selbst wenn der Benutzer keine neuen Daten in den Schreibcache83 geladen hat, ein entsprechendes Programmierseitensektor-Kennzeichen47 –50 und geht zum Programmieren des korrigierten Seitensektors über, der durch eine der Seitensektor-Leseleitungen99 –102 festgelegt wird, wodurch dieser Seitensektor aufgefrischt wird. In dieser Weise wird die Datenhaltefähigkeit des Chips erweitert. Wenn die Kernspeicherseite einmal in den Schreibcache83 geschrieben wurde, leitet die WSM77 eine Löschphase ein, während der die Seitensektoren, die durch eine entsprechende Seitensektor-Leseleitung99 –102 festgelegt werden, deren Seitensektorkennzeichen47 –50 aktiviert ist, gelöscht werden. Auf diese Weise werden nur die Kernspeicher-Seitensektoren, die neue geladene Daten empfangen haben oder die erforderten, dass die ECC-73 Einheit verlorene Daten wiedergewinnt, gelöscht. Daher aktualisiert der Chip nur die Seitensektoren, die mindestens eine der folgenden Bedingungen erfüllen: (1) Der Benutzer hat mindestens ein neues Byte in den entsprechenden Seitensektor des Schreibcache83 geladen; (2) während des Zurücklesezyklus verwendete die Übertragung eines Seitensektors vom Speicherkern in den Schreibcache83 die ECC73 , um mindestens einen Fehler zu korrigieren. Wenn keiner der Seitensektoren irgendeine der vorher angegebenen Bedingungen erfüllt, bricht der Chip den Programmierzyklus insgesamt ab. Wenn jedoch eine der Bedingungen erfüllt ist, programmiert der Chip nur die ausgewählten Seitensektoren neu, wobei somit unnötige Beanspruchung an der Kernspeicherseite vermieden wird und folglich die Haltbarkeit des EEPROM im Vergleich zu Haltbarkeitsniveaus von Flash-EEPROMs des Standes der Technik verbessert wird. - Die WSM
77 beginnt nun den Zurückladezyklus, während dessen sie die Daten vom Schreibcache83 in die Seitensektoren43 -46 mit hoher Spannung zur Vorbereitung auf die Programmierung der entsprechenden Kernspeicher-Seitensektoren überträgt. Während des Zurückladezyklus erzeugt die ECC-Einheit73 neue Paritätsbits für jedes Datenwort im Schreibcache und sendet die neuen Paritätsbits zu den Seitensektoren43 –46 mit hoher Spannung, damit sie zusammen mit den Daten aus dem Schreibcache in den Speicherkern geschrieben werden. Sobald die WSM77 das Laden der Seitensektoren43 –46 mit hoher Spannung beendet, legt sie eine hohe Programmierspannung nur an jene Seitensektoren an, in die geschrieben werden soll, wie durch die vorher angegebenen Bedingungen festgelegt. Wenn die Programmierung vollständig ist, überträgt die WSM77 die Steuerung zurück an die Schaltung zur Adressenübergangserkennung ATD, die nicht dargestellt ist und die den Übergang einer Adresse verwendet, um den internen Takt der Speicherkomponente mit dem externen Takt des Systems zu synchronisieren, so dass der Chip die normale Lesebetriebsart wieder annehmen kann. - Mit Bezug auf
3 ist der Speicherkern gemäß der Speicherseitensegmentierung aufgeteilt. Eine Wortleitung57 , die vom X-Ansteuercodierer55 kommt, legt eine Speicherseite fest und ist mit allen Wortleitungs-Zwischenspeichergruppen51 –54 und Speichersektoren59 –62 gekoppelt. Jeder Speichersektor59 –62 besteht aus einer Mehrzahl von Speichersektoren, wobei jeder Seitensektor einzeln durch eine Seitensektor-Leseleitung99 –102 festgelegt wird. Eine Wortleitungs-Zwischenspeichergruppe51 –54 ist nur mit ihrem entsprechenden Speichersektor59 –62 über ihre eigene Seitensektor-Leseleitung99 –102 gekoppelt. Die Wortleitungs-Zwischenspeichergruppe "0"51 ist beispielsweise nur mit den Seitensektoren innerhalb des Speichersektors "0"59 über ihre Seitensektor-Leseleitungen99 gekoppelt. Bei der normalen Programmierung kann eine beliebige Kombination von Wortleitungs-Zwischenspeichergruppen51 –54 aktiv sein und dadurch die Seitensektor-Leseleitung des ausgewählten Seitensektors auf die interne hohe Programmierspannung anheben. Der Byteansteuertransistor einer Architektur mit EEPROMs mit allen Leistungsmerkmalen des Standes der Technik wurde durch einen Sektoransteuer-Zwischenspeicher ersetzt, der durch die Seitensektorkennzeichen47 –50 und durch die angesteuerten Wortleitungs-Zwischenspeichergruppen51 –54 angesteuert wird. - Oberhalb des Speicherkerns befinden sich die Seitensektoren
43 –46 mit hoher Spannung, eine Zeile von Zwischenspeichern, die die Bitleitungen selektiv auf den internen hohen Spannungspegel anheben können. - Unterhalb des Speicherkerns befindet sich die neue Architektur, die entwickelt ist, um den Datenweg zu steuern, der während eines normalen Lesezyklus, eines Zurücklesezyklus, eines Ladezyklus und eines Zurückladezyklus erforderlich ist. Die Architektur kann durch Erörtern des Datenweges eines normalen Lesezyklus und eines Programmierbefehls am besten erläutert werden.
- Während eines Lesezyklus, der durch die ATD-Schaltung, die nicht dargestellt ist, gesteuert wird, werden Daten durch Leseverstärker
67 und69 über aktive Y-Ansteuer-Durchgangstransistoren63 –66 gelesen. Die Datenbits werden durch die Leseverstärker67 gelesen und die Paritätsbits werden durch die Leseverstärker69 gelesen. Wenn die Lesezeit vorbei ist, schaltet das Haupttaktsignal "MOLK"91 auf einen niedrigen Pegel und speichert ein gesamtes Wort, Daten plus Paritätsbits, in einem Master-Zwischenspeicherregister71 . Spätestens mit dem Beginn des MOLK-Übergangs von einem hohen auf einen niedrigen Pegel beginnt die Matrix der ECC73 , die durch die Master-Zwischenspeicherregister-Ausgänge an diese übergebenen Rohdaten auszuwerten. Das Nebentaktsignal "SCLK"93 , das zu MOLK phasenverschoben ist, schaltet auf einen hohen Pegel und lässt die ECC-Ausgangssignale in das Slave-Zwischenspeicher-Multiplexerregister75 . Dieses Register nimmt das korrigierte Datenwort von den ECC-Ausgängen an und wählt nur ein Byte aus dem Mehrbyte-Datenwort unter Verwendung der niedrigstwertigen Adressenbits95 A0 für ein 16 Bit breites Wort oder A1 und A0 für ein 32 Bit breites Datenwort aus. Die Ausgangssignale aus dem Slave-Zwischenspeicher-Multiplexerregister steuern direkt die Chipausgabepuffer78 an, die zusätzlich ihre Freigabe vom OE%-Stift erhalten. Bei der nächsten Adressänderung, die von der ATD-Schaltung festgestellt wird, schaltet SCLK auf einen niedrigen Pegel, wobei somit eine gesteuerte Haltezeit für alte Daten gleich der Lesezeit der neuen Daten vorgesehen wird. MOLK schaltet auf einen hohen Pegel, um die Leseverstärker67 und69 ihre neuen Ausgangssignale in das Master-Zwischenspeicherregister laufen zu lassen. - Die internen Taktsignale MOLK und SCLK werden von einer Schaltung zur Adressenübergangserkennung ATD, die nicht dargestellt ist und die den Chiplesezyklus mit dem Systemtakt synchronisiert, erzeugt. Sie schützt auch den Chip gegen das Rauschen des internen Leistungsverbindungsbusses, das von den hohen Ausgangsschaltströmen erzeugt wird.
- Der Programmierbefehl beginnt mit einem vom Benutzer gesteuerten Ladezyklus, während dessen Eingangsdaten vom Systembenutzer in einen SRAM-Schreibcache
83 mit niedriger Spannung geladen werden, anstatt dass sie wie im Stand der Technik direkt in eine Seite mit hoher Spannung geladen werden. Der Schreibcache83 ist nach Worten84 plus Bytekennzeichen85 organisiert, ist jedoch byteschreibbar, so dass, wenn der Benutzer Daten in Bytes eingibt, ein Eingangsdemultiplexer79 an den Schreibcache das entsprechende Byte übergibt, wie durch die niedrigeren Adressenbits95 festgelegt, um in einem Mehrbytewort angeordnet zu werden. Der Schreibcache unterscheidet vom Benutzer eingegebene neue Daten von alten Daten, die aus dem Speicherkern ausgelesen werden, durch Zuordnen eines neunten Bits, Bytekennzeichens, jedem Byte eines Worts. Am Beginn eines Ladezyklus werden beispielsweise alle Bytekennzeichen gesetzt, was bedeutet, dass in diesem Moment alle Daten im Schreibcache Abfall sind und durch Daten aus dem Kernspeicher ersetzt werden können, wenn der Zurücklesezyklus eingeleitet wird. Bei jedem Ladezugriff, der vom Systembenutzer durchgeführt wird, wird das Bytekennzeichen, das der ausgewählten Byteadresse innerhalb der Seite entspricht, zurückgesetzt, so dass diese Adressen nicht während des Zurücklesezyklus vom Kernspeicher eingeschrieben werden. Somit enthält der Schreibcache83 die neuen geladenen Daten, wenn der Zurückladezyklus eingeleitet wird, und der Schreibcache83 beginnt, zur Vorbereitung auf das Schreiben in den Kernspeicher seinen Inhalt in die Seitensektoren43 –46 mit hoher Spannung zu laden. - Jede Wortleitungs-Zwischenspeichergruppe
51 –54 weist ihr eigenes Seitensektorkennzeichen47 –50 auf. Am Beginn eines Ladezyklus werden alle Seitensektorkennzeichen47 –50 zurückgesetzt, was bedeutet, dass keine Wortleitungs-Zwischenspeichergruppe51 –54 und folglich kein Seitensektor freigegeben ist. Wenn mindestens ein Byte in einen Seitensektor des Schreibcache83 geladen wird, wird das entsprechende Seitensektorkennzeichen47 –50 gesetzt, wodurch die Wortleitungs-Zwischenspeichergruppe freigegeben wird, die den entsprechenden Kernspeicher-Seitensektor steuert, wie durch eine Seitensektor-Leseleitung99 –102 festgelegt. Der Ladezyklus wird wie im Stand der Technik durch ein Zeitüberwachungsdauerprotokoll beendet. - Von diesem Moment an gehört die Programmiersteuerung zur Schreibzustandsmaschine
77 . Die WSM weist die Fähigkeit auf, die internen Wortadressenbits anzusteuern, um den Schreibcache83 und die ausgewählte Kernspeicherseite über die Y-Anssteuer-Durchgangstransistoren63 –66 abzutasten.4A –4C zeigen einen Betriebsablaufplan der WSM mit dem Befehlspfad, der unter verschiedenen Befehlsbetriebsarten genommen wird. Für eine Programmierbefehlsbetriebsart im Anschluss an die Ladezyklus-Zeitüberwachungsdauer leitet die WSM einen Zurücklesezyklus ein. Jeder Wortleseschritt im Zurücklesezyklus weist wie nachstehend beschrieben 4 Phasen auf. - Phase 1: Die SRAM-Spalten werden mit etwa VCC/2 abgeglichen. Genau während dieser Abgleichszeit kann die WSM
77 die Wortadressen ändern, ohne den SRAM-Inhalt zu stören. Bei einer aktualisierten Wortadresse wird auf den Kern von den Datenleseverstärkern67 und von den Paritätsleseverstärkern69 zugegriffen und alte Rohdaten plus Paritätsbits werden an die ECC-Schaltung73 übergeben. - Phase 2: Wenn die ECC
73 die Fehlerkorrektur vollendet hat, weist sie an ihren Ausgängen gültige Daten auf und setzt ein Fehlersignal ERR111 , wenn die Rohdaten korrigiert werden mussten. Gleichzeitig speichert der SRAM die Bytekennzeichen an seinen Ausgängen und hält sie bis zum Schritt des nächsten Worts gespeichert. - Phase 3: Das Zurücklese- RB Gatter
81 verbindet die Ausgänge der ECC73 mit den Eingängen des Schreibcaches83 , während die WSM77 die Bytekennzeichen auswertet. - Phase 4: Jedes Byte in einem Wort weist sein eigenes SRAM-Schreibtaktsignal auf, das nicht dargestellt ist und das von der WSM
77 nur dann kommt, wenn das entsprechende Bytekennzeichen als während der vorherigen Phase gesetzt gelesen wurde. Wenn das Bytekennzeichen als zurückgesetzt gelesen wurde, was bedeutet, dass diese Stelle neu geladene Daten enthält, empfängt der Schreibcache-SRAM keinen Schreibtakt für das entsprechende Byte, so dass die neuen geladenen Daten im Schreibcache bewahrt werden. - Während des gesamten Zurücklesezyklus überwacht die WSM
77 das ECC-Fehlersignal ERR111 , wie in der Phase2 von4A gezeigt. Wenn ein Wort mit der Verwendung der ECC73 für dessen Korrektur zurückgelesen wird, wird das Signal ERR111 gesetzt und die WSM setzt das Seitensektorkennzeichen47 –50 der entsprechenden Wortleitungs-Zwischenspeichergruppe51 –54 , wenn es nicht bereits vom Ladezyklus gesetzt wurde. - Die WSM
77 beginnt nun ein chipinternes Hochspannungspumpen, das nicht dargestellt ist, und leitet dann die Löschphase ein. Nur die Wortleitungs-Zwischenspeichergruppen51 –54 mit gesetzten Seitensektorkennzeichen47 –50 empfangen die Löschspannungen. Die entsprechenden Kernspeicher-Seitensektoren werden gelöscht. Die WSM77 ruft auch den chipinternen Zeitgeber auf, der nicht dargestellt ist, um diese Löschphase zu beenden. Am Ende der Löschzeit führt die WSM77 eine Löschwiederherstellung durch, d. h. entlädt die hohe Spannung auf den angesteuerten Leseleitungs-Sektorsegmenten. - Als nächstes beginnt die WSM
77 den Zurückladezyklus. Wiederum tastet sie den Wortadressenraum ab und wieder weist jeder Wortladeschritt4 Phasen auf, wie nachstehend definiert. - Phase 1: Die SRAM-Spalten werden mit etwa VCC/2 abgeglichen. Genau während dieser Abgleichszeit kann die WSM die Wortadressen ändern, ohne den SRAM-Inhalt zu stören.
- Phase 2: Die SRAM-Leseverstärker, die nicht dargestellt sind, lesen die neuen Daten, die bis zum Schritt für das nächste Wort an den SRAM-Ausgängen
87 gespeichert bleiben. - Phase 3: Die ECC
73 wird in die Paritätserzeugungsbetriebsart geschaltet und ihre Eingänge werden mit den SRAM-Ausgängen87 über den Datenbus107 verbunden. Diese Multiplexfunktion wird vom Master-Zwischenspeicherregister71 geliefert, das duale Eingänge aufweist, die vom Zurücklesesignal RB103 und vom Zurückladesignal LB104 gesteuert werden. Sowohl RB als auch LB werden durch die WSM gesteuert. Am Ende von Phase3 sind die Ausgangsparitätsbits89 der ECC73 bereit und übergeben die gültige neue Paritätsinformation an den Bus109 , damit sie zusammen mit den SRAM-Datenbits87 geschrieben wird. - Phase 4: Die SRAM-Ausgangspuffer
87 steuern den Bus107 an und die ECC-Paritätsausgangspuffer89 steuern den Bus109 an, was das neue Wort über die entsprechenden Y-Ansteuer-Durchgangstransistoren63 –66 und Kernbitleitungen in die Seitensektoren43 –46 mit hoher Spannung schreibt. - Die WSM
77 leitet die Schreibphase ein. Wiederum senden nur Wortleitungs-Zwischenspeichergruppen51 –54 mit gesetzten Seitensektorkennzeichen47 –50 eine hohe Programmierspannung auf ihre Seitensektor-Leseleitung99 –102 . Innerhalb jedes aktiven Speichersektors59 –62 erhalten nur die Bitleitungen mit gesetzten Seitenzwischenspeichern mit hoher Spannung tatsächlich die hohe Spannung und schreiben somit in die Speicherzellen in der angesteuerten Kernzeile. Die angesteuerte Wortleitung57 erhält auch die hohe Spannung. - Die WSM
77 ruft den chipinternen Zeitgeber auf, um diese Schreibphase zu beenden. Am Ende der Schreibzeit führt die WSM77 eine Bitleitungswiederherstellung, d. h. entlädt die hohe Spannung auf den angesteuerten Bitleitungen, und dann eine Wortleitungswiederherstellung durch. Die WSM77 entlädt nun die chipinterne Pumpe für hohe Spannung und übergibt nach dem Austritt die Chipsteuerung an die ATD-Schaltung, so dass der Chip die Lesebetriebsart wieder annehmen kann. - Die Schaltung der vorliegenden Erfindung implementiert auch unterbrechbare Ladezyklen durch Einführen von 3 neuen Bits in das Verfahren des Standes der Technik zum Abfragen des Schreibzustands einer WSM
77 . Am Beginn eines Ladezyklus werden alle 3 neuen Zustandsbits zurückgesetzt und werden an verschiedenen Punkten während eines Schreibzyklus gesetzt, wie nachstehend beschrieben. - Bit: LADEZEITÜBERWACHUNGSWARNUNG – Wird gesetzt, nachdem 75% der gesamten Zeitüberwachungsdauer eines Ladezyklus abgelaufen sind, und bleibt bis zum Austritt der WSM gesetzt.
- BIT: LÖSCHEN AKTIV – Wird während der Zurücklese- und der Löschphase gesetzt.
- BIT: SCHREIBEN AKTIV – Wird während der Zurücklade- und der Schreibphase gesetzt.
- Ein typischer unterbrechbarer Ladezyklus würde diesem Ablauf folgen:
- Teil 1: Das Benutzersystem leitet einen Schreibcache-Löschplus Nur-Lade-Zyklus durch Laden einer Betriebsart-ID ein, die den Schreibcache-SRAM löscht und dem Chip mitteilt, bei der Vollendung des Ladezyklus nicht mit der Kernaktualisierung fortzufahren. Wenn während dieses Ladezyklus eine Unterbrechungsanforderung höherer Priorität erscheint, kann das Benutzersystem die Unterbrechungsanforderung sicher gewähren und diesen Ladezyklus verschieben. Beim Verlassen des anderen Prozesses sollte das Benutzersystem die Zustandsabfragefähigkeit wie folgt verwenden:
- – Prüfen, ob das Zustandsänderungsbit noch aktiv ist, was bedeutet, dass die WSM noch aktiv ist, durch aufeinanderfolgende Lesezyklen an derselben Adresse. Wenn das Zustandsänderungsbit seinen Zustand ändert, dann sollte das Benutzersystem das Bit LADEZEITÜBERWACHUNGSWARNUNG prüfen. Wenn es noch zurückgesetzt ist, dann hat das Benutzersystem noch mindestens 25% der gesamten Ladezyklus-Zeitüberwachungsdauer, um das Laden von Daten zu beenden, und kann somit den Ladezyklus sicher wieder aufnehmen. Wenn das Zustandsänderungsbit seinen Zustand ändert, aber das Bit LADEZEITÜBERWRCHUNGSWARNUNG bereits gesetzt ist, dann sollte das Benutzersystem den Chip das Zeitüberwachungsintervall beenden lassen und versuchen, das Laden wieder aufzunehmen, nachdem das Zustandsänderungsbit die Zustandsänderung beendet, was anzeigt, dass die WSM nicht mehr aktiv ist.
- – Wenn das Zustandsänderungsbit nicht mehr aktiv ist, dann kann das Benutzersystem mit Teil 2 fortfahren.
- Teil 2: Ein Nur-Laden sollte als Betriebsart-ID geladen werden, um den Ladezyklus mit der Unterbrechungsfähigkeit fortzusetzen. Der von der Zustandsabfrage vorgesehene Quittungsaustausch sollte wie vorstehend beschrieben verwendet werden.
- Teil 3: Nach Beendung des Ladezyklus, d. h. wenn trotz aller Unterbrechungen das Benutzersystem es geschafft hat, alle neuen Bytes in der ausgewählten Seite zu laden, oder wenn das Benutzersystem alle Unterbrechungen höherer Priorität deaktivieren kann, kann dem Chip eine Endlade- plus Programmierbetriebsart-ID gegeben werden, um ihn den Kern mit den neuen Daten aktualisieren zu lassen, die in den Schreibcache geladen werden.
- Das Endladen kann tatsächlich leer sein. Der Chip beobachtet das reguläre Ladezyklus-Zeitüberwachungsintervall und fährt mit der Programmierung fort. Genau deshalb, weil der Endladezyklus leer sein kann, kann die Endlade-Betriebsart unterbrochen werden. Da der Chip den chipinternen Zeitgeber verwendet, um die Ladezeitüberwachung zu zählen, verhindert eine Unterbrechung nicht, dass der Chip in die Programmierung eintritt. Tatsächlich kann das Benutzersystem unmittelbar nach dem Geben der Endlade- plus Programmierbetriebsart-ID fortfahren, einem anderen Prozess zu dienen.
Claims (11)
- Elektrisch löschbarer, programmierbarer Festwertspeicher, EEPROM, mit: einem Hauptspeicherkern, der aus einer Vielzahl von Speicherzellen besteht, die in einer Matrix von Zeilen und Spalten angeordnet sind, wobei die Speicherzellen ferner in eine Vielzahl von Speichereinheiten (
31 ,35 ) gruppiert sind, wobei jede Speichereinheit einen Datenwortabschnitt und einen Paritätsbitabschnitt umfasst; einem Datenbus (107 ) zum Zugreifen auf den Datenwortabschnitt einer Speichereinheit (31 ,35 ); einem Paritätsbus (109 ) zum Zugreifen auf den Paritätsbitabschnitt einer Speichereinheit (31 ,35 ), wobei der EEPROM-Speicher gekennzeichnet ist durch: einen Hauptzwischenspeicher (71 ) zum selektiven Einspeichern des Datenbusses (107 ) und des Paritätsbusses (109 ); eine Fehlerkorrektur-Steuereinheit (ECC,73 ) zum Empfangen des eingespeicherten Datenbusses und Paritätsbusses (109 ) vom Hauptzwischenspeicher (71 ), wobei die Fehlerkorrektur-Steuereinheit (73 ) selektiv eines von entweder einem korrigierten Datenwort entsprechend dem Paritätsbitabschnitt oder ansonsten einem neuen Satz von Paritätsbits entsprechend dem Datenwortabschnitt erzeugt; ein Ausgangsdaten-Leitwegmittel (79 ) zum selektiven Leiten des korrigierten Datenworts von der Fehlerkorrektur-Steuereinheit (73 ) zu einem Satz von Eingangs/Ausgangs-Anschlussleitungen; und einen Schreibcache (83 ) mit einem Ausgabemittel, das mit dem Datenbus (107 ) gekoppelt ist, und wobei der Schreibcache (83 ) selektiv das korrigierte Datenwort von der Fehlerkorrektur-Steuereinheit (73 ) empfängt. - Speicher nach Anspruch 1, wobei jeder Datenwortabschnitt aus einem Mehrbyte-Datenwort besteht und ein Verhältnis des Paritätsbit-Zählwerts zum Mehrbyte-Datenwort-Bitzählwert unterhalb 50% liegt.
- Speicher nach Anspruch 1 oder 2, wobei der Speicherkern ferner in individuell löschbare und programmierbare Unterseitensektoren (
33 ) mit einer Vielzahl der Speichereinheiten (31 ,35 ) unterteilt ist, wobei jeder Unterseitensektor (33 ) durch eine Sektoransteuerleitung festgelegt wird, die über ein Sektoransteuerbauelement (40 ) mit einer Sektorleseleitung (99 –101 ) gekoppelt ist, die wiederum mit allen Speichereinheiten (31 ,35 ) innerhalb eines Unterseitensektors (33 ) gekoppelt ist, wobei jeder Unterseitensektor durch das Sektoransteuerbauelement (40 ) individuell adressierbar ist, wobei jeder Unterseitensektor (33 ) ein ganzzahliger Teiler einer Speicherseite ist. - Speicher nach Anspruch 2 oder 3, wobei die Eingangs/Ausgangs-Anschlussleitungen zu einer einzelnen Bytegrößeneinheit gruppiert sind und das Ausgangsleitwegmittel (
79 ) nacheinander jedes Byte eines korrigierten Datenworts von der Fehlerkorrektur-Steuereinheit (73 ) zur einzelnen Bytegrößeneinheit von Eingangs/Ausgangs-Anschlussleitungen leitet. - Speicher nach Anspruch 3, welcher ferner eine Seite hoher Spannung zum Übertragen von Programmier- und Löschspannungspegeln zu jeder Speichereinheit (
31 ,35 ) der Unterseitensektoren (33 ) umfasst, wobei die Seite hoher Spannung (43 –46 ) in unabhängige und selektiv aktivierte Bereiche hoher Spannung unterteilt ist, wobei jeder Seitenbereich hoher Spannung die gleiche Größe aufweist wie ein separater Unterseitensektor (33 ) und diesem entspricht. - Speicher nach einem der vorangehenden Ansprüche, welcher ferner einen Paritätsbit-Leitwegtreiber (
89 ) zum selektiven Koppeln des neuen Satzes von Paritätsbits von der Fehlerkorrektur-Steuereinheit (73 ) mit dem Paritätsbus (109 ) umfasst. - Speicher nach Anspruch 1, wobei der Schreibcache (
83 ) kleiner ist als der Hauptspeicherkern und in einer Vielzahl von Dateneinheiten mit Ein-Byte-Größe angeordnet ist. - Speicher nach den Ansprüchen 2 und 7, wobei der Schreibcache (
83 ) ein Mittel zum Annehmen eines separaten Schreibsteuersignals für jedes Datenbyte aufweist. - Speicher nach Anspruch 7, welcher ferner ein Eingangsdaten-Leitwegmittel zum Empfangen von Bytegrößen-Eingangssignalen von den Eingangs/Ausgangs-Anschlussleitungen, zum Anordnen der Bytegrößen-Eingangssignale in ein Dateneingangswort mit einer Größe gleich einem Datenwortabschnitt einer Speichereinheit (
31 ,35 ) und zum sequentiellen Speichern jedes Bytes des Dateneingangsworts im Cache umfasst. - Speicher nach Anspruch 9, wobei der Schreibcache (
83 ) ferner Cachekennzeichenbits umfasst, wobei selektive Cachekennzeichenbits als Reaktion darauf, dass Daten im Schreibcache (83 ) gespeichert werden, aktiviert werden. - Speicher nach Anspruch 10, welcher ferner eine Schreibzustandsmaschine (
77 ) umfasst, die zum Überwachen der Fehlerkorrektur-Steuereinheit (73 ) gekoppelt ist, und wobei die Schreibzustandsmaschine (77 ) ein Kennzeichenbit im Schreibcache (83 ) als Reaktion darauf, dass die Fehlerkorrektur-Steuereinheit (73 ) ein korrigiertes Datenwort erzeugt, aktiviert.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US405884 | 1995-03-17 | ||
US08/405,884 US5606532A (en) | 1995-03-17 | 1995-03-17 | EEPROM array with flash-like core |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69630624D1 DE69630624D1 (de) | 2003-12-11 |
DE69630624T2 true DE69630624T2 (de) | 2004-07-29 |
Family
ID=23605633
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69621201T Expired - Lifetime DE69621201T2 (de) | 1995-03-17 | 1996-02-22 | Eeprom-matrix mit einem, dem "flash"-speicher ähnlichen, kern |
DE69630624T Expired - Lifetime DE69630624T2 (de) | 1995-03-17 | 1996-02-22 | EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69621201T Expired - Lifetime DE69621201T2 (de) | 1995-03-17 | 1996-02-22 | Eeprom-matrix mit einem, dem "flash"-speicher ähnlichen, kern |
Country Status (8)
Country | Link |
---|---|
US (2) | US5606532A (de) |
EP (2) | EP0764330B1 (de) |
JP (1) | JPH10500801A (de) |
KR (1) | KR100348774B1 (de) |
CN (2) | CN100483548C (de) |
DE (2) | DE69621201T2 (de) |
TW (1) | TW309616B (de) |
WO (1) | WO1996029704A1 (de) |
Families Citing this family (173)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617363B1 (de) | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US5430859A (en) * | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
US5673417A (en) * | 1995-07-20 | 1997-09-30 | Inventec Corporation | Electronic organizer with a flash memory and associated data archiving |
JP3941149B2 (ja) * | 1996-12-03 | 2007-07-04 | ソニー株式会社 | 半導体不揮発性記憶装置 |
KR100200922B1 (ko) * | 1995-12-27 | 1999-06-15 | 윤종용 | 반도체 메모리장치의 펌핑전압발생기 |
US5890192A (en) | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
JP3411186B2 (ja) * | 1997-06-06 | 2003-05-26 | シャープ株式会社 | 不揮発性半導体記憶装置 |
DE19731954C2 (de) * | 1997-07-24 | 2000-08-24 | Bosch Gmbh Robert | Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
TW337607B (en) | 1997-08-06 | 1998-08-01 | Mos Electronics Taiwan Inc | Process for forming a contact hole in an EEPROM with NOR construction |
US6040216A (en) * | 1997-08-11 | 2000-03-21 | Mosel Vitelic, Inc. | Method (and device) for producing tunnel silicon oxynitride layer |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
JPH11176158A (ja) * | 1997-12-10 | 1999-07-02 | Fujitsu Ltd | ラッチ回路、データ出力回路及びこれを有する半導体装置 |
TW425660B (en) * | 1997-12-12 | 2001-03-11 | Mosel Vitelic Inc | Method of forming uniform dielectric layer between two conductive layers in integrated circuit |
TW374939B (en) | 1997-12-19 | 1999-11-21 | Promos Technologies Inc | Method of formation of 2 gate oxide layers of different thickness in an IC |
KR100266748B1 (ko) * | 1997-12-31 | 2000-10-02 | 윤종용 | 반도체 메모리 장치 및 그 장치의 에러 정정 방법 |
TW382801B (en) | 1998-02-25 | 2000-02-21 | Mosel Vitelic Inc | Method of forming two transistors having different threshold voltage in integrated circuit |
TW480713B (en) * | 1998-03-03 | 2002-03-21 | Mosel Vitelic Inc | Method for forming different thickness of field oxide in integrated circuit and the structure of the same |
US6136653A (en) * | 1998-05-11 | 2000-10-24 | Mosel Vitelic, Inc. | Method and device for producing undercut gate for flash memory |
US6261903B1 (en) | 1998-05-14 | 2001-07-17 | Mosel Vitelic, Inc. | Floating gate method and device |
US6365455B1 (en) | 1998-06-05 | 2002-04-02 | Mosel Vitelic, Inc. | Flash memory process using polysilicon spacers |
KR20010053128A (ko) * | 1998-06-24 | 2001-06-25 | 인피니언 테크놀로지스 아게 | 전자 테스트 메모리 장치 |
JP3999900B2 (ja) | 1998-09-10 | 2007-10-31 | 株式会社東芝 | 不揮発性半導体メモリ |
US6088268A (en) * | 1998-09-17 | 2000-07-11 | Atmel Corporation | Flash memory array with internal refresh |
JP4074029B2 (ja) | 1999-06-28 | 2008-04-09 | 株式会社東芝 | フラッシュメモリ |
FR2798767B1 (fr) * | 1999-09-16 | 2001-12-14 | St Microelectronics Sa | Procede d'ecriture en mode page d'une memoire non volatile electriquement programmable/effacable et architecture correspondante |
FR2802012B1 (fr) * | 1999-12-07 | 2002-02-15 | St Microelectronics Sa | Memoire dram rapide |
US6728913B1 (en) * | 2000-02-25 | 2004-04-27 | Advanced Micro Devices, Inc. | Data recycling in memory |
US6731538B2 (en) * | 2000-03-10 | 2004-05-04 | Kabushiki Kaisha Toshiba | Semiconductor memory device including page latch circuit |
JP2001297038A (ja) | 2000-04-11 | 2001-10-26 | Toshiba Corp | データ記憶装置および記録媒体並びに記録媒体制御方法 |
US6950336B2 (en) * | 2000-05-03 | 2005-09-27 | Emosyn America, Inc. | Method and apparatus for emulating an electrically erasable programmable read only memory (EEPROM) using non-volatile floating gate memory cells |
US6400603B1 (en) | 2000-05-03 | 2002-06-04 | Advanced Technology Materials, Inc. | Electronically-eraseable programmable read-only memory having reduced-page-size program and erase |
FR2809222A1 (fr) * | 2000-05-17 | 2001-11-23 | St Microelectronics Sa | Memoire eeprom comprenant un systeme de correction d'erreur |
DE60129294D1 (de) * | 2001-02-19 | 2007-08-23 | St Microelectronics Srl | Verfahren zur Auffrischung der gespeicherten Daten in einem elektrisch lösch- und programmierbaren nichtflüchtigen Speicher |
JP4530562B2 (ja) * | 2001-03-27 | 2010-08-25 | ローム株式会社 | 不揮発性メモリ |
US6717847B2 (en) * | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6456528B1 (en) | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6683817B2 (en) | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
US6751127B1 (en) | 2002-04-24 | 2004-06-15 | Macronix International, Co. Ltd. | Systems and methods for refreshing non-volatile memory |
US6633500B1 (en) | 2002-04-26 | 2003-10-14 | Macronix International Co., Ltd. | Systems and methods for refreshing a non-volatile memory using a token |
JP4257824B2 (ja) * | 2002-07-03 | 2009-04-22 | シャープ株式会社 | 半導体記憶装置 |
US7061792B1 (en) * | 2002-08-10 | 2006-06-13 | National Semiconductor Corporation | Low AC power SRAM architecture |
US20040153902A1 (en) * | 2003-01-21 | 2004-08-05 | Nexflash Technologies, Inc. | Serial flash integrated circuit having error detection and correction |
US6996688B2 (en) * | 2003-03-11 | 2006-02-07 | International Business Machines Corporation | Method, system, and program for improved throughput in remote mirroring systems |
CN1311366C (zh) * | 2003-05-22 | 2007-04-18 | 群联电子股份有限公司 | 快闪存储器的平行双轨使用方法 |
DE60322387D1 (de) * | 2003-08-27 | 2008-09-04 | Advanced Risc Mach Ltd | Vorrichtung und Verfahren zur Verwaltung von Transaktionen zum Schreiben und Lesen auf EEPROM-Speicher oder Flash-Speicher |
US7640370B1 (en) * | 2003-11-25 | 2009-12-29 | Marvell International Ltd. | Method and apparatus for controlling data transfer between EEPROM and a physical layer device |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7099221B2 (en) | 2004-05-06 | 2006-08-29 | Micron Technology, Inc. | Memory controller method and system compensating for memory cell data losses |
JP4135680B2 (ja) * | 2004-05-31 | 2008-08-20 | ソニー株式会社 | 半導体記憶装置および信号処理システム |
US20060010339A1 (en) * | 2004-06-24 | 2006-01-12 | Klein Dean A | Memory system and method having selective ECC during low power refresh |
US7340668B2 (en) * | 2004-06-25 | 2008-03-04 | Micron Technology, Inc. | Low power cost-effective ECC memory system and method |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US6965537B1 (en) | 2004-08-31 | 2005-11-15 | Micron Technology, Inc. | Memory system and method using ECC to achieve low power refresh |
US7882299B2 (en) * | 2004-12-21 | 2011-02-01 | Sandisk Corporation | System and method for use of on-chip non-volatile memory write cache |
US7212440B2 (en) * | 2004-12-30 | 2007-05-01 | Sandisk Corporation | On-chip data grouping and alignment |
TWI263229B (en) * | 2005-03-17 | 2006-10-01 | Sunplus Technology Co Ltd | Memory device with interface for serial transmission and error correction method for serial transmission interface |
KR100680473B1 (ko) * | 2005-04-11 | 2007-02-08 | 주식회사 하이닉스반도체 | 액세스 시간이 감소된 플래시 메모리 장치 |
JP4761910B2 (ja) * | 2005-10-05 | 2011-08-31 | 株式会社東芝 | 不揮発性半導体記憶装置及びそれを用いた不揮発性メモリシステム |
JP4910360B2 (ja) * | 2005-10-20 | 2012-04-04 | ソニー株式会社 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
US7447096B2 (en) * | 2006-05-05 | 2008-11-04 | Honeywell International Inc. | Method for refreshing a non-volatile memory |
US7471562B2 (en) * | 2006-05-08 | 2008-12-30 | Macronix International Co., Ltd. | Method and apparatus for accessing nonvolatile memory with read error by changing read reference |
US8077516B2 (en) * | 2006-05-08 | 2011-12-13 | Macronix International Co., Ltd. | Method and apparatus for accessing memory with read error by changing comparison |
US7773421B2 (en) * | 2006-05-08 | 2010-08-10 | Macronix International Co., Ltd. | Method and apparatus for accessing memory with read error by changing comparison |
US8997255B2 (en) | 2006-07-31 | 2015-03-31 | Inside Secure | Verifying data integrity in a data storage device |
US7567461B2 (en) | 2006-08-18 | 2009-07-28 | Micron Technology, Inc. | Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells |
US8352752B2 (en) * | 2006-09-01 | 2013-01-08 | Inside Secure | Detecting radiation-based attacks |
US7894289B2 (en) | 2006-10-11 | 2011-02-22 | Micron Technology, Inc. | Memory system and method using partial ECC to achieve low power refresh and fast access to data |
US7900120B2 (en) | 2006-10-18 | 2011-03-01 | Micron Technology, Inc. | Memory system and method using ECC with flag bit to identify modified data |
WO2008068706A1 (en) * | 2006-12-07 | 2008-06-12 | Nxp B.V. | Method and device for reconfiguration of reliability data in flash eeprom storage pages |
JP5018074B2 (ja) * | 2006-12-22 | 2012-09-05 | 富士通セミコンダクター株式会社 | メモリ装置,メモリコントローラ及びメモリシステム |
KR100819102B1 (ko) | 2007-02-06 | 2008-04-03 | 삼성전자주식회사 | 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치 |
KR100914265B1 (ko) * | 2007-05-10 | 2009-08-27 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법 |
KR100888482B1 (ko) | 2007-05-11 | 2009-03-12 | 삼성전자주식회사 | 비휘발성 반도체 메모리 장치 및 상기 비휘발성 반도체메모리 장치의 쓰기 방법 |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
KR101425957B1 (ko) * | 2007-08-21 | 2014-08-06 | 삼성전자주식회사 | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 |
JP2009104757A (ja) * | 2007-10-02 | 2009-05-14 | Panasonic Corp | 半導体記憶装置 |
JP5049733B2 (ja) * | 2007-10-17 | 2012-10-17 | 株式会社東芝 | 情報処理システム |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8762620B2 (en) | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
KR101483190B1 (ko) * | 2008-09-05 | 2015-01-19 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 처리 방법 |
EP2267724A1 (de) * | 2009-06-26 | 2010-12-29 | STMicroelectronics Rousset SAS | EEPROM Speicher-Architektur optimiert für eingebettete Speicher |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
JP5549956B2 (ja) | 2009-12-02 | 2014-07-16 | マイクロン テクノロジー, インク. | 不揮発性メモリ用のリフレッシュアーキテクチャおよびアルゴリズム |
US20120246384A1 (en) * | 2011-03-21 | 2012-09-27 | Winbond Electronics Corp. | Flash memory and flash memory accessing method |
CN102339644B (zh) * | 2011-07-27 | 2014-12-24 | 聚辰半导体(上海)有限公司 | 存储器及其操作方法 |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9058289B2 (en) * | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
EP2608036A1 (de) * | 2011-12-22 | 2013-06-26 | Thomson Licensing | Verfahren und System zum Verwalten der Fehlererkennung und -korrektur |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
CN102768859A (zh) * | 2012-07-12 | 2012-11-07 | 深圳市锐能微科技有限公司 | 一种eeprom擦写控制装置 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
JP5853906B2 (ja) * | 2012-08-24 | 2016-02-09 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
US9123401B2 (en) * | 2012-10-15 | 2015-09-01 | Silicon Storage Technology, Inc. | Non-volatile memory array and method of using same for fractional word programming |
US9472284B2 (en) | 2012-11-19 | 2016-10-18 | Silicon Storage Technology, Inc. | Three-dimensional flash memory system |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US10120694B2 (en) | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9685242B2 (en) * | 2014-03-11 | 2017-06-20 | Kabushiki Kaisha Toshiba | Memory system |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
JP6411282B2 (ja) * | 2015-05-15 | 2018-10-24 | ラピスセミコンダクタ株式会社 | 半導体メモリ及びデータ書込方法 |
FR3039922B1 (fr) * | 2015-08-06 | 2018-02-02 | Stmicroelectronics (Rousset) Sas | Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant |
US9910749B2 (en) | 2016-06-23 | 2018-03-06 | Sandisk Technologies Llc | Non-volatile memory with dynamic repurpose of word line |
US10290353B2 (en) | 2016-09-06 | 2019-05-14 | Western Digital Technologies, Inc. | Error mitigation for 3D NAND flash memory |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US11256616B2 (en) * | 2019-12-24 | 2022-02-22 | Micron Technology, Inc. | Power loss data protection in a memory sub-system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949309A (en) * | 1988-05-11 | 1990-08-14 | Catalyst Semiconductor, Inc. | EEPROM utilizing single transistor per cell capable of both byte erase and flash erase |
EP0617363B1 (de) * | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US5535328A (en) * | 1989-04-13 | 1996-07-09 | Sandisk Corporation | Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells |
US5191556A (en) * | 1991-03-13 | 1993-03-02 | Advanced Micro Devices, Inc. | Method of page-mode programming flash eeprom cell arrays |
US5359569A (en) * | 1991-10-29 | 1994-10-25 | Hitachi Ltd. | Semiconductor memory |
TW231343B (de) * | 1992-03-17 | 1994-10-01 | Hitachi Seisakusyo Kk | |
US5353248A (en) * | 1992-04-14 | 1994-10-04 | Altera Corporation | EEPROM-backed FIFO memory |
US5317535A (en) * | 1992-06-19 | 1994-05-31 | Intel Corporation | Gate/source disturb protection for sixteen-bit flash EEPROM memory arrays |
JP3328321B2 (ja) * | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
JPH0683716A (ja) * | 1992-09-01 | 1994-03-25 | Rohm Co Ltd | 電気的書換可能型不揮発メモリ |
JPH0750558B2 (ja) * | 1992-09-22 | 1995-05-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリ |
KR960000616B1 (ko) * | 1993-01-13 | 1996-01-10 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치 |
US5488711A (en) * | 1993-04-01 | 1996-01-30 | Microchip Technology Incorporated | Serial EEPROM device and associated method for reducing data load time using a page mode write cache |
US5363334A (en) * | 1993-04-10 | 1994-11-08 | Microchip Technology Incorporated | Write protection security for memory device |
US5353256A (en) * | 1993-06-30 | 1994-10-04 | Intel Corporation | Block specific status information in a memory device |
US5424997A (en) * | 1994-03-15 | 1995-06-13 | National Semiconductor Corporation | Non-volatile semiconductor memory having switching devices for segmentation of a memory page and a method thereof |
-
1995
- 1995-03-17 US US08/405,884 patent/US5606532A/en not_active Expired - Lifetime
-
1996
- 1996-02-22 CN CNB031060390A patent/CN100483548C/zh not_active Expired - Fee Related
- 1996-02-22 JP JP8528421A patent/JPH10500801A/ja not_active Ceased
- 1996-02-22 EP EP96907103A patent/EP0764330B1/de not_active Expired - Lifetime
- 1996-02-22 KR KR1019960705804A patent/KR100348774B1/ko not_active IP Right Cessation
- 1996-02-22 DE DE69621201T patent/DE69621201T2/de not_active Expired - Lifetime
- 1996-02-22 DE DE69630624T patent/DE69630624T2/de not_active Expired - Lifetime
- 1996-02-22 CN CN96190070A patent/CN1110053C/zh not_active Expired - Fee Related
- 1996-02-22 EP EP01117713A patent/EP1158533B1/de not_active Expired - Lifetime
- 1996-02-22 WO PCT/US1996/002482 patent/WO1996029704A1/en active IP Right Grant
- 1996-03-07 TW TW085102771A patent/TW309616B/zh not_active IP Right Cessation
- 1996-09-16 US US08/714,605 patent/US5765185A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0764330B1 (de) | 2002-05-15 |
DE69621201T2 (de) | 2002-12-19 |
EP1158533A1 (de) | 2001-11-28 |
EP0764330A1 (de) | 1997-03-26 |
WO1996029704A1 (en) | 1996-09-26 |
US5765185A (en) | 1998-06-09 |
TW309616B (de) | 1997-07-01 |
CN1607609A (zh) | 2005-04-20 |
DE69630624D1 (de) | 2003-12-11 |
CN1145684A (zh) | 1997-03-19 |
US5606532A (en) | 1997-02-25 |
JPH10500801A (ja) | 1998-01-20 |
EP1158533B1 (de) | 2003-11-05 |
DE69621201D1 (de) | 2002-06-20 |
EP0764330A4 (de) | 2000-07-19 |
KR100348774B1 (ko) | 2003-01-24 |
KR970702561A (ko) | 1997-05-13 |
CN1110053C (zh) | 2003-05-28 |
CN100483548C (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69630624T2 (de) | EEPROM-Matrix mit einem, dem "Flash"-Speicher ähnlichen Kern | |
DE60030876T2 (de) | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität | |
DE69034191T2 (de) | EEPROM-System mit aus mehreren Chips bestehender Blocklöschung | |
DE60217883T2 (de) | Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher | |
DE3909896C2 (de) | ||
DE102006001492B4 (de) | Halbleiterspeicheranordnung und Verfahren zum Betreiben einer Halbleiterspeicheranordnung | |
DE69828564T2 (de) | Kombinierter nichtflüchtiger programm-/datenspeicher für gleichzeitiges lesen von programmen und schreiben von daten | |
DE10052877B4 (de) | Mikrocontroller | |
DE69635663T2 (de) | vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM | |
DE602004002947T2 (de) | NAND Flash Speicher mit Speicherredundanz | |
DE102019116520A1 (de) | Datenspeichersysteme und -verfahren für eine verbesserte datenumlagerung basierend auf lesepegelspannungen, die mit einer fehlerwiederherstellung verbunden sind | |
DE60317347T2 (de) | Speicherschaltung mit nichtflüchtigem ram und ram | |
DE2617408A1 (de) | Datenverarbeitungsgeraet | |
DE4423949A1 (de) | E/A-Hilfssystem und Exklusiv-Steuerverfahren, Datenspeicherverfahren und Speicherinitialisierungsverfahren in einem E/A-Hilfssystem | |
DE102007016460A1 (de) | Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement | |
DE10238566A1 (de) | Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf | |
EP1817658A2 (de) | Speichersystem mit sektorbuffern | |
DE60012081T2 (de) | Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt | |
DE102021115374A1 (de) | Abschwächung des in zonen unterteilten namensraums unter verwendung des unterblock-modus | |
DE10230132A1 (de) | Nichtflüchtige Halbleiterspeichervorrichtung mit Sicherungsspeicherblock | |
DE112004003009B4 (de) | Nicht-flüchtiger Speicher und Verfahren zum Festlegen von Information eines Nicht-flüchtigen Speichers | |
DE112007003117T5 (de) | Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus | |
EP1564754B1 (de) | Verfahren und Vorrichtung zur Verwaltung von Daten in einem nichtflüchtigen Datenspeicher | |
DE10227256C1 (de) | Verfahren zum Adressieren von blockweise löschbaren Speichern | |
EP0257405B1 (de) | Verfahren und Anordnung zum Aktualisieren von Steuerbitkombinationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |