DE19935497A1 - Method and circuit arrangement for correcting memory errors - Google Patents
Method and circuit arrangement for correcting memory errorsInfo
- Publication number
- DE19935497A1 DE19935497A1 DE1999135497 DE19935497A DE19935497A1 DE 19935497 A1 DE19935497 A1 DE 19935497A1 DE 1999135497 DE1999135497 DE 1999135497 DE 19935497 A DE19935497 A DE 19935497A DE 19935497 A1 DE19935497 A1 DE 19935497A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- write information
- information
- write
- inverted
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Die vorliegende Erfindung betrifft ein Verfahren nach dem Oberbegriff des Anspruches 1 und eine Schaltungsanordnung nach dem Oberbegriff des Anspruches 8 zum Korrigieren von Speicherfehlern, die beim Beschreiben oder Programmieren ei nes Speichers auftreten.The present invention relates to a method according to the Preamble of claim 1 and a circuit arrangement according to the preamble of claim 8 for correcting Memory errors that occur when writing or programming memory.
Als Programm- oder Datenspeicher werden heute vorwiegend nichtflüchtige FLASH-Speicher eingesetzt, die in Form eines externen Chips oder mit einer integrierten Logik infolge ih rer Lösch- und Programmierbarkeit eine maximale Flexibilität bei remanenter Speicherung der Information ohne elektrische Hilfsquellen bieten. Damit verbunden ist die Forderung nach einer möglichst hohen Stabilität (Endurance) bezüglich der Anzahl der möglichen Schreib- und Löschvorgänge und einer möglichst langen Datenhaltung (< 10 Jahre).Today, they are predominantly used as program or data storage non-volatile FLASH memory used in the form of a external chips or with an integrated logic due to ih er erasability and programmability for maximum flexibility with retentive storage of the information without electrical Provide resources. Associated with this is the demand for the highest possible stability (endurance) with regard to the Number of possible write and delete operations and one data storage as long as possible (<10 years).
Um die oben beschriebenen Forderungen überprüfen zu können, werden zur Sicherung der Qualität und der Spezifikation der Speicher entsprechende Testsysteme bzw. Testprogramme einge setzt, mit deren Hilfe jedoch lediglich solche Defekte über prüft werden könne, welche reproduzierbar sind. Bei verschie denen Speicherarten, insbesondere bei FLASH-Speichern, kann es aber zum stochastischen Auftreten bestimmter Defekte kom men. Derartige Defekte beruhen insbesondere auf Speicherzel len, die auf eine gleiche elektrische Belastung (Stress) un terschiedlich reagieren, so daß es zum fehlerhaften Speichern von ungewünschten Informationen kommen kann. Derartige Fehler werden als 'Erratic Bits' bezeichnet und können durch die in herkömmlichen Testprogrammen eingebauten 'Filter' nicht oder nur zufällig erfaßt werden. Zudem sind die technologischen Möglichkeiten in der Regel begrenzt oder reichen nicht aus, um derartige Fehler auf eine akzeptable Fehlerrate abzusen ken, so daß grundsätzlich das Bedürfnis nach einem intelli genten Verfahren zum Erkennen und Korrigieren von 'Erratic Bits' besteht.In order to be able to check the requirements described above, are used to ensure the quality and specification of the Memory appropriate test systems or test programs turned on sets, with the help of such defects can be checked which are reproducible. With various memory types, especially with FLASH memories but it comes to the stochastic occurrence of certain defects men. Such defects are based in particular on memory cells len, on an equal electrical load (stress) un react differently, causing it to store incorrectly can come from unwanted information. Such mistakes are called 'Erratic Bits' and can be identified by the in 'Test' not built into conventional test programs or can only be recorded by chance. In addition, the technological Possibilities are usually limited or not sufficient to reduce such errors to an acceptable error rate ken, so that basically the need for an intelli procedures for recognizing and correcting 'Erratic Bits' exists.
Das Auftreten von 'Erratic Bits' soll nachfolgend kurz anhand Fig. 4 erläutert werden, wobei ein Speicher 1 mit vier ma trixartig verschalteten Speicherzellen 5 dargestellt ist. Je de Speicherzelle 5 ist durch einen Feldeffekttransistor rea lisiert, wobei die einzelnen Speicherzellen 5 über Wortlei tungen 6 und Bitleitungen 7 adressiert werden können. Zum Programmieren bzw. Beschreiben einer Speicherzelle 5 wird der Gateanschluß der gewünschten Speicherzelle 5 durch Anlegen einer Steuerspannung an eine der Wortleitungen 6 angesteuert, während der Source- oder Drainanschluß der gewünschten Spei cherzelle 5 durch Anlegen einer Steuerspannung an eine der Bitleitungen 7 angesteuert wird. Nachfolgend wird davon aus gegangen, daß durch Anlegen entsprechender Steuerspannungen die in Fig. 4 gezeigte Speicherzelle 5(a) ausgewählt werden soll. Die Speicherzellen, die an der in diesem Fall selek tierten Wortleitung 6 anliegen (vgl. in Fig. 4 die Speicher zelle 5(b)), sehen damit notwendigerweise ebenfalls die Steu er- oder Programmierspannung, mit der der Gateanschluß der gewünschten Speicherzelle 5(a) adressiert wird. Diese Pro grammierspannung führt bei solchen Speicherzellen 6, die ei gentlich ihren gelöschten Zustand beibehalten sollen, zu ei nem Programmierstress und im schlimmsten Fall zu einer unge wollten Programmierung. Dieser Stress wird als Wortleitungs- oder Gate-Disturb bezeichnet. Entsprechendes gilt für dieje nigen Speicherzellen, welche an der selektierten Bitleitung liegen (vgl. in Fig. 4 die Speicherzelle 5(c)) und mit der entsprechenden Programmierspannung von dem Drainanschluß her beaufschlagt werden. In diesem Fall spricht man von einem Bitleitungs- oder Drain-Disturb. Bei der Auswahl bzw. Adres sierung der Speicherzelle 5(a) in Fig. 4 können somit durch die Speicherzellen 5(b) und 5(c) 'Erratic Bits' hervorgerufen werden. Lediglich die Speicherzelle 5(d) ist in diesem Fall vor solch einem Fehler sicher. The occurrence of 'erratic bits' will be briefly explained below with reference to FIG. 4, wherein a memory 1 with four matrix-like interconnected memory cells 5 is shown. Each de memory cell 5 is realized by a field effect transistor, the individual memory cells 5 being able to be addressed via word lines 6 and bit lines 7 . For programming or writing to a memory cell 5 , the gate connection of the desired memory cell 5 is driven by applying a control voltage to one of the word lines 6 , while the source or drain connection of the desired memory cell 5 is driven by applying a control voltage to one of the bit lines 7 . In the following, it is assumed that the memory cell 5 (a) shown in FIG. 4 is to be selected by applying corresponding control voltages. The memory cells which are connected to the word line 6 selected in this case (see FIG. 4, the memory cell 5 (b)), therefore necessarily also see the control or programming voltage with which the gate connection of the desired memory cell 5 ( a) is addressed. This programming voltage leads to such programming cells 6 , which are supposed to maintain their erased state, to a programming stress and, in the worst case, to an undesired programming. This stress is known as word line or gate disturb. The same applies to those memory cells which are located on the selected bit line (see FIG. 4, the memory cell 5 (c)) and are subjected to the appropriate programming voltage from the drain connection. In this case one speaks of a bit line or drain disturb. When selecting or addressing the memory cell 5 (a) in FIG. 4, erratic bits can thus be caused by the memory cells 5 (b) and 5 (c). In this case, only memory cell 5 (d) is safe from such an error.
'Erratic Bits' zeigen nicht reproduzierbare, massive Schwan kungen in der Sensitivität auf diesen beispielsweise bei FLASH-Speichern unvermeidbaren Stress. Die einzelnen Spei cherzellen 5 des Speichers 1 müssen daher auf das Auftreten von 'Erratic Bits' hin überwacht werden. Dies kann beispiels weise durch Vergleichen der Schreibinformation mit der in den einzelnen Speicherzellen 5 tatsächlich gespeicherten Informa tion geschehen. Bekannterweise wird bei Feststellen eines 'Erratic Bits' dieses bzw. die entsprechende Speicherzelle 5 gelöscht und erneut mit der gewünschten Schreibinformation beschrieben bzw. programmiert. Dabei wird das Löschen sinn vollerweise auf einen minimalen Speicherbereich um das 'Erra tic Bit' beschränkt, um den Aufwand des erneuten Programmie rens möglichst gering zu halten.'Erratic bits' show non-reproducible, massive fluctuations in the sensitivity to this stress, which is unavoidable, for example, in FLASH memories. The individual memory cells 5 of the memory 1 must therefore be monitored for the occurrence of 'erratic bits'. This can be done, for example, by comparing the write information with the information actually stored in the individual memory cells 5 . As is known, when an 'erratic bit' is detected, this or the corresponding memory cell 5 is deleted and again written or programmed with the desired write information. In this case, the deletion is sensibly limited to a minimal memory area around the 'eratic bit' in order to keep the effort of reprogramming as low as possible.
In der Regel verschwinden jedoch derartige 'Erratic Bits' nicht bereits nach einem Löschvorgang mit anschließender er neuter Programmierung, sondern es können unter Umständen sehr viele (sogar mehrere hundert oder tausend) derartige Lösch vorgänge mit anschließenden Neuprogrammierungen erforderlich sein. Dieses Verfahren des Löschens und Neuprogrammierens ist somit einerseits sehr zeitaufwendig und birgt andererseits zudem die Gefahr, daß aufgrund der dauerhaften Belastung durch die wiederholten Lösch- und Programmiervorgänge auch unprogrammierte Zellen auf der selektierten Wort- und Bitlei tung, die nicht von den einzelnen Lösch- und Programmiervor gänge erfaßt werden, unter Umständen einem sehr hohen kumula tiven Disturb ausgesetzt sind, der im schlimmsten Fall zu ei ner Umprogrammierung dieser Speicherzellen führen kann.As a rule, however, such 'erratic bits' disappear not already after a deletion with subsequent he new programming, but it can be very many (even several hundred or a thousand) such deletions operations with subsequent reprogramming required his. This procedure of deleting and reprogramming is on the one hand very time consuming and on the other hand hides also the risk that due to the permanent load through the repeated deletion and programming processes too unprogrammed cells on the selected word and bit line device that is not affected by the individual deletion and programming instructions gears are detected, possibly a very high accumulation tive Disturb exposed in the worst case to egg ner reprogramming of these memory cells can result.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und eine entsprechende Schaltungsanorndung zum Korrigieren von Speicherfehlern vorzuschlagen, womit die zu vor beschriebenen Probleme beseitigt werden können und insbe sondere 'Erratic Bits' zuverlässig ohne Beeinflussung anderer Speicherzellen beseitigt werden können. The present invention is therefore based on the object a method and a corresponding circuit arrangement for Correct memory errors, suggesting what to do before problems described can be eliminated and esp special 'erratic bits' reliably without influencing others Memory cells can be eliminated.
Diese Aufgabe wird gemäß der vorliegenden Erfindung durch ein Verfahren mit den Merkmalen des Anspruches 1 bzw. eine Schal tungsanordnung mit den Merkmalen des Anspruches 8 gelöst. Die Unteransprüche definieren jeweils bevorzugte und vorteilhafte Ausführungsformen der vorliegenden Erfindung.This object is achieved according to the present invention by a Method with the features of claim 1 or a scarf solved with the features of claim 8. The Sub-claims each define preferred and advantageous Embodiments of the present invention.
Die Grundidee der vorliegenden Erfindung beruht darauf, bei Auftreten eines Speicherfehlers, insbesondere eines 'Erratic Bits', in einer bestimmten Speichereinheit oder einem be stimmten Speicherfeld die ursprüngliche Schreibinformation dieser Speichereinheit zu invertieren und die Speichereinheit erneut mit der invertierten Schreibinformation zu beschrei ben. Die Tatsache der Invertierung wird in diesem Fall ver merkt, was insbesondere in einem entsprechenden Bit des je weiligen Speicherfeldes erfolgen kann.The basic idea of the present invention is based on A memory error occurs, particularly an erratic Bits', in a specific storage unit or be the original write information matched memory field invert this storage unit and the storage unit to write again with the inverted write information ben. In this case, the fact of inversion is ignored notices what in particular in a corresponding bit of each memory field can take place.
Vorteilhafterweise wird auch nach der Neubeschreibung der je weiligen Speichereinheit mit der invertieren Schreibinforma tion die in der Speichereinheit tatsächlich gespeicherte In formation erneut verifiziert. Wird auch nach der erneuten Programmierung ein 'Erratic Bit' in der entsprechenden Spei chereinheit erkannt, werden gegebenenfalls mehrere derartige Lösch-/Programmierzyklen zur Beseitigung des Fehlers verwen det. Dieser Fall ist jedoch sehr unwahrscheinlich, was durch empirisch ermittelte 'Erratic Bit'-Fehlerraten bestätigt wer den kann.Advantageously, even after the new description memory unit with the inverted write information tion the In actually stored in the storage unit formation verified again. Will continue after the renewed Programming an 'Erratic Bit' in the corresponding memory cher unit recognized, possibly several such Use erase / programming cycles to eliminate the error det. However, this case is very unlikely to be caused by empirically determined 'Erratic Bit' error rates confirm who that can.
Besonders vorteilhaft ist es, wenn bereits vor dem ersten Programmiervorgang die Programmier- oder Schreibinformation auf das Auftreten von Einsen oder Nullen hin überwacht wird, da für das Auftreten von 'Erratic Bits' insbesondere diejeni gen Speicherzellen kritisch sind, in welche eine binäre '0' geschrieben werden soll, da diese gegebenenfalls fehlerhaft in eine binäre '1' umprogrammiert werden kann. Es sollte da her mit einer Schreibinformation begonnen werden, die eine minimale Anzahl von Nullen aufweist, d. h. besitzt die eigent lich gewünschte Schreibinformation mehr Nullen als Einsen, sollte bereits vor dem ersten Schreibvorgang die Schreibin formation invertiert und dem zuvor beschriebenen Verfahren zugrundegelegt werden.It is particularly advantageous if before the first Programming process the programming or writing information is monitored for the occurrence of ones or zeros, especially for the occurrence of 'erratic bits' are critical to memory cells into which a binary '0' should be written, as this may be incorrect can be reprogrammed into a binary '1'. It should be there be started with a write information that a has a minimum number of zeros, i.e. H. owns the desired write information more zeros than ones, the writer should start before the first write formation inverted and the previously described method be taken as a basis.
Die vorliegende Erfindung kann grundsätzlich auf alle Arten von programmierbaren Speichern angewendet werden, wobei je doch insbesondere ein Einsatz bei der Programmierung von nichtflüchtigen FLASH-Speichern vorteilhaft ist. Ebenso kön nen sogenannte Stuck-At-Fehler gut kaschiert oder unterdrückt werden. Des weiteren kann die Erfindung durch einen einfachen Algorithmus sowie einem vertretbaren Flächenaufwand im Spei cher und in der entsprechenden Steuerlogik realisiert werden. Zudem gewährleistet die vorliegende Erfindung eine Reduktion auf vertretbare Fehlerraten, wobei des weiteren bei der Kor rektur von Speicherfehlern Rückwirkungen auf andere Speicher zellen minimiert werden können.The present invention can in principle in all ways of programmable memories can be applied, whereby each but especially a use in the programming of non-volatile FLASH memory is advantageous. Likewise, So-called stucco-at errors well concealed or suppressed become. Furthermore, the invention can by a simple Algorithm and a reasonable amount of space in the Spei and in the corresponding control logic. In addition, the present invention ensures a reduction to acceptable error rates, furthermore with the Cor Correction of memory errors Effects on other memories cells can be minimized.
Die Erfindung wird nachfolgend anhand bevorzugter Ausfüh rungsbeispiele unter Bezugnahme auf die beigefügte Zeichnung näher erläutert.The invention is described below with the aid of a preferred embodiment Example with reference to the accompanying drawings explained in more detail.
Fig. 1 zeigt eine Darstellung zur Erläuterung des der vorlie genden Erfindung zugrundeliegenden Prinzips, Fig. 1 shows a diagram illustrating the underlying principle of the invention vorlie constricting,
Fig. 2 zeigt ein Flußdiagramm eines Verfahrens gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung,A flow chart of Fig. 2 shows a method according to a preferred embodiment of the present invention,
Fig. 3 zeigt ein vereinfachtes Blockschaltbild einer Schal tungsanordnung gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, und Fig. 3 shows a simplified block diagram of a circuit arrangement according to a preferred embodiment of the present invention, and
Fig. 4 zeigt eine Darstellung zur Erläuterung des Auftretens von sogenannten 'Erratic Bits'. FIG. 4 shows an illustration to explain the occurrence of so-called 'erratic bits'.
In Fig. 1 ist beispielhaft der der Ablauf des Verfahrens zur Korrektur von Speicherfehlern gemäß der vorliegenden Erfin dung anhand eines bevorzugten Ausführungsbeispiels darge stellt, wobei den dargestellten Abschnitten zudem Schritte S100-S106 zugeordnet sind, welche nachfolgend noch näher un ter Bezugnahme auf Fig. 2 erläutert werden.In Fig. 1 of the sequence of the method is exemplified for the correction of memory errors according to the present OF INVENTION dung reference to a preferred embodiment provides Darge, wherein the sections shown are also associated with steps S100-S106, which in more detail below un ter reference to FIG. 2 are explained.
Zunächst wird davon ausgegangen, daß die zu beschreibende Speichereinheit 9 gelöscht ist, d. h. sämtliche Speicherzellen dieser Speichereinheit 9 speichern den binären Wert '0'. An schließend wird eine gewünschte Schreibinformation oder ein gewünschter Code, im vorliegenden Fall der Code '10110100', in die Speichereinheit 9 geschrieben. Die anschließende Veri fizierung der in der Speichereinheit 9 tatsächlich gespei cherten Werte ergibt, daß beispielsweise das vorletzte ge speicherte Bit einem 'Erratic Bit' (EB) entspricht, d. h. an stelle des Werts '0' ist fehlerhafterweise der Wert '1' ge speichert. Derartige Speicherfehler können relativ einfach dadurch erkannt werden, daß die ursprüngliche Schreibinforma tion mit der tatsächlich gespeicherten Information verglichen wird, wobei Fehler z. B. durch eine logische XOR-Verknüpfung der Schreibinformation und der gespeicherten Information er mittelt werden können. Dabei ist nicht erforderlich, das 'Er ratic Bit' zu lokalisieren, sondern es genügt eine integrale Feststellung eines Speicherfehlers. Wurde auf diese Weise ein Fehler festgestellt, wird die entsprechende Speichereinheit 9 wieder gelöscht, der ursprüngliche Schreibcode invertiert und erneut in die Speichereinheit 9 geschrieben. Anschließend er folgt eine erneute Verifizierung des geschriebenen invertier ten Schreibcodes. Wie in Fig. 1 gezeigt ist, wird die Inver tierung des Schreibcodes vermerkt, damit stets bekannt ist, ob in der Speichereinheit 9 der ursprüngliche Schreibcode oder die invertierte Version davon gespeichert ist. Dabei empfiehlt es sich insbesondere, hierzu ein zusätzliches Bit 8 der Speichereinheit bzw. des Speicherfelds 9 zu verwenden, welches im ursprünglichen Zustand den binären Wert '0' be sitzt und bei der Invertierung ebenfalls invertiert wird. First of all, it is assumed that the memory unit 9 to be written to has been erased, ie all memory cells of this memory unit 9 store the binary value '0'. Then, a desired write information or a desired code, in the present case the code '10110100', is written into the memory unit 9 . The subsequent verification of the values actually stored in the storage unit 9 shows that, for example, the penultimate stored bit corresponds to an 'erratic bit' (EB), ie the value '1' is erroneously stored instead of the value '0'. Such memory errors can be detected relatively easily by comparing the original write information with the information actually stored, errors z. B. by a logical XOR combination of the write information and the stored information, he can be averaged. It is not necessary to locate the 'er ratic bit', rather an integral determination of a memory error is sufficient. If an error was found in this way, the corresponding memory unit 9 is deleted again, the original write code is inverted and written again to the memory unit 9 . Then it is followed by a new verification of the written inverted write code. As shown in Fig. 1, the inversion of the write code is noted so that it is always known whether the original write code or the inverted version thereof is stored in the storage unit 9 . It is particularly advisable to use an additional bit 8 of the memory unit or of the memory field 9 for this purpose, which has the binary value '0' in the original state and is also inverted during the inversion.
Der zusätzliche Flächenbedarf im Speicher richtet sich dabei nach der kleinsten zu programmierenden Speichereinheit. Je größer diese Speichereinheit ist, desto kleiner ist der zu addierende Flächenaufwand. Bei Programmspeicher-Anwendungen sind die Einheiten im allgemeinen Bursts (ganze/halbe Wort leitungen), während bei Datenspeichern die pro Programmier vorgang zu programmierenden Speichereinheiten oder Blöcke je nach Anforderung kleiner sind und beispielsweise ein Byte oder ein Wort umfassen.The additional space required in the store is based on this after the smallest memory unit to be programmed. Each the larger this storage unit is, the smaller it is adding up area. For program memory applications are the units in general bursts (whole / half word lines), while for data storage the pro programming process to program memory units or blocks each are smaller on request and for example one byte or include a word.
In Fig. 2 ist nochmals das erfindungsgemäße Verfahren gemäß einem bevorzugten Ausführungsbeispiel in Form eines ausführ lichen Flußdiagramms dargestellt.In Fig. 2, the inventive method is shown again in accordance with a preferred embodiment in the form of a detailed flow chart.
Mit dem Start des Verfahrens bzw. Programms werden zwei Va riablen i und INV auf den Wert 0 gesetzt (Schritt S100). Die Variable i entspricht einer Laufvariable, welche die Nummer des zu beschreibenden Speicherblocks des Speichers 1 angibt und Werte zwischen 1 und N annehmen kann. Die Variable INV kann hingegen lediglich die Werte 1 und 0 annehmen und be zeichnet die Tatsache, ob eine Invertierung des Schreibcodes vorliegt oder nicht. Anschließend wird die gewünschte Schrei binformation in den Speicherblock i geschrieben (S101) und dieser durch Auslesen der in dem Block i gespeicherten Infor mation verifiziert (S102). Wurde festgestellt, daß mindestens ein 'Erratic Bit', d. h. eine Abweichung zwischen der Schrei binformation und der tatsächlich gespeicherten Information, vorliegt (S103), wird der entsprechende Speicherblock i ge löscht (S104), der Schreibcode bzw. die Schreibinformation invertiert (S105), die Invertierung in Form des in Fig. 1 ge zeigten Bits 8 vermerkt, d. h. INV = 1 gesetzt (S106), und der Speicherblock i erneut mit der invertierten Schreibinformati on beschrieben (S101). Es schließt sich eine Wiederholung der Schritte S102 und S103 sowie gegebenenfalls der Schritte S104-S106 und S101 an. Wurde im Schritt S103 kein 'Erratic Bit' in dem zu beschreibenden Speicherblock festgestellt, wird überrpüft, ob bereits sämtliche Speicherblöcke des Spei chers abgearbeitet worden sind (S107) und gegebenenfalls das Verfahren beendet (S109). Ist dies nicht der Fall, wird die Variable i auf den nächsten Speicherblock und die Variable INV auf den Wert '0' gesetzt (S108), und der nächste Spei cherblock wird mit einer entsprechenden Schreibinformation beschrieben (S101) und den zuvor beschriebenen Verfahrens schritten unterzogen.With the start of the method or program, two variables i and INV are set to the value 0 (step S100). The variable i corresponds to a run variable which specifies the number of the memory block of the memory 1 to be written and can take values between 1 and N. The variable INV, on the other hand, can only assume the values 1 and 0 and denotes the fact whether the write code is inverted or not. The desired screaming information is then written into the memory block i (S101) and this is verified by reading out the information stored in the block i (S102). If it has been determined that there is at least one 'erratic bit', ie a discrepancy between the write information and the information actually stored (S103), the corresponding memory block i is deleted (S104), the write code or the write information is inverted (S105) , The inversion in the form of the bit 8 shown in FIG. 1 noted, ie INV = 1 set (S106), and the memory block i again described with the inverted write information (S101). This is followed by a repetition of steps S102 and S103 and, if appropriate, steps S104-S106 and S101. If no 'erratic bit' was found in the memory block to be written in step S103, it is checked whether all the memory blocks of the memory have already been processed (S107) and, if appropriate, the method is ended (S109). If this is not the case, the variable i is set to the next memory block and the variable INV to the value '0' (S108), and the next memory block is written with corresponding write information (S101) and subjected to the previously described method steps .
Wird nach der Invertierung einer Schreibinformation und dem erneuten Programmieren des entsprechenden Speicherblocks wie der ein 'Erratic Bit' erkannt, müssen weitere Programmier- und Löschzyklen zur Beseitigung bzw. Korrektur des entspre chenden Speicherfehlers durchgeführt werden. Dieser Fall ist jedoch sehr unwahrscheinlich. Bei einem 1Megabit-FLASH- Programmspeicher liegt die 'Erratic Bit'-Fehlerrate pro Pro grammierzyklus bei ca. 0,1%. Da nach dem physikalischen Mo dell grundsätzlich alle Speicherzellen des Speichers ein 'Er ratic Bit' aufweisen können, ergibt sich damit aus der Chip- Ausfallrate von 0,1% und unter der Annahme von lediglich ei nen 'Erratic Bit' pro Chipausfall eine Bit-Ausfallrate von 10-9. Dabei werden pro Programmiervorgang 512 Speicherzellen beschrieben, so daß sich für die Wahrscheinlichkeit des Auf tretens (oder nach einer Invertierung des Wiederauftretens) eines 'Erratic Bits' in diesem Cluster eine Fehlerrate von 0,512 × 10-6 ergibt.If an 'erratic bit' is recognized after the inversion of write information and the reprogramming of the corresponding memory block, further programming and erasing cycles must be carried out to eliminate or correct the corresponding memory error. However, this case is very unlikely. With a 1 megabit FLASH program memory, the 'Erratic Bit' error rate per programming cycle is approx. 0.1%. Since, according to the physical model, basically all memory cells of the memory can have an 'eratic bit', this results in a bit failure rate of 0.1% and assuming only one 'erratic bit' per chip failure. Failure rate of 10 -9 . 512 memory cells are written per programming process, so that an error rate of 0.512 × 10 -6 results for the probability of an erratic bit occurring in this cluster (or after an inversion of the recurrence).
In der Regel wird im Schritt S101 mit dem Schreiben einer nichtinvertierten Schreibinformation begonnen. Um jedoch die Fehlerrate von vornherein absenken zu können, empfiehlt es sich, die zu Beginn zu verwendenden Schreibinformation (nichtinvertiert oder invertiert) davon abhängig zu machen, welche der beiden Versionen der Schreibinformation eine mini male Anzahl von Nullen aufweist. Die Nullen sind die für das Auftreten von 'Erratic Bits' kritischen Werte, da die ent sprechenden Speicherzellen leicht durch das Anlegen von Schreibspannungen zum Speichern des Werts '1' an benachbarte Speicherzellen umprogrammiert werden können. Weist die inver tierte Version des im Schritt S101 zu verwendenden Schreib codes eine geringere Anzahl an Nullen auf als die nichtinver tierte Version, sollte demzufolge bereits im ersten Schreibvorgang des entsprechenden Speicherblocks die inver tierte Version zum Programmieren des Speicherblocks verwendet werden. Auch in diesem Fall ist die Invertierung in dem ent sprechenden Bit des jeweiligen Speicherblocks zu vermerken.As a rule, in step S101 with the writing one non-inverted write information started. However, in order to It is recommended to be able to lower the error rate from the outset itself, the writing information to be used at the beginning (non-inverted or inverted) depending on which of the two versions of the writing information is a mini times the number of zeros. The zeros are the ones for that Occurrence of 'Erratic Bits' critical values since the ent speaking memory cells easily by creating Write voltages for storing the value '1' to neighboring ones Memory cells can be reprogrammed. Inver version of the write to be used in step S101 codes have a smaller number of zeros than the noninver version, should therefore already be in the first Write the corresponding memory block the inv version used to program the memory block become. In this case too, the inversion is in the ent the relevant bit of the respective memory block.
In Fig. 3 ist ein vereinfachtes Blockschaltbild einer Schal tungsanordnung zur Realisierung des zuvor beschriebenen Ver fahrens dargestellt.In Fig. 3, a simplified block diagram of a circuit arrangement for realizing the method described above Ver is shown.
Ein zu programmierender Speicher 1, beispielsweise ein nicht flüchtiger FLASH-Speicher, wird über einen Schreib- oder Ein gabepuffer 2 und einen Lese- oder Ausgabepuffer 3 von einer Steuerlogik 4 angesteuert, welche insbesondere eine Zustands maschine zur Steuerung des zuvor beschriebenen Verfahrensab laufs umfaßt. In dem Schreibpuffer 2 ist der jeweils unmit telbar zuvor verwendete Schreibcode zwischengespeichert, so daß die Steuerlogik 4 Speicherfehler durch einen UND- Vergleich des über den Lesepuffer 3 ausgelesenen Speicherin halts des zuvor beschriebenen Speicherblocks mit dem in dem Schreibpuffer 2 gespeicherten Schreibcode feststellen kann. Bei Feststellen einer Abweichung invertiert die Steuerlogik 4 den zuvor verwendeten Schreibcode, vermerkt die Invertierung in dem Inversionsbit (vgl. das Bit 8 in Fig. 1), löscht den zuvor beschriebenen Speicherblock und beschreibt über den Schreibpuffer 2 diesen Speicherblock mit dem invertierten Schreibcode. Der invertierte Schreibcode wird wiederum in dem Schreibpuffer 2 für die nachfolgende Verifizierung zwischen gespeichert. Allgemein sollte das Auslesen des Speicherin halts des zu programmierenden Speicherblocks mit einem ent sprechenden Vorhalt für gelöschte Speicherzellen durchgeführt werden. A memory 1 to be programmed, for example a non-volatile FLASH memory, is controlled via a write or an input buffer 2 and a read or output buffer 3 by a control logic 4 , which in particular comprises a state machine for controlling the process sequence described above. In the write buffer 2 , the immediately previously used write code is temporarily stored, so that the control logic 4 memory errors can be determined by an AND comparison of the memory contents read out via the read buffer 3 of the previously described memory block with the write code stored in the write buffer 2 . If a deviation is found, the control logic 4 inverts the previously used write code, notes the inversion in the inversion bit (cf. bit 8 in FIG. 1), deletes the previously described memory block and writes this memory block with the inverted write code via the write buffer 2 . The inverted write code is in turn stored in the write buffer 2 for the subsequent verification. In general, the readout of the memory content of the memory block to be programmed should be carried out with a corresponding reserve for deleted memory cells.
11
Speicher
Storage
22nd
Schreibpuffer
Write buffer
33rd
Lesepuffer
Read buffer
44th
Steuerlogik
Control logic
55
Speicherzelle
Memory cell
66
Bitleitung
Bit line
77
Wortleitung
Word line
88th
Kennzeichnungsbit
Identification bit
99
Speichereinheit
S101-S109 Verfahrensschritt
Storage unit
S101-S109 process step
Claims (13)
- a) Beschreiben einer bestimmten Speichereinheit (9) eines Speichers (1) mit einer bestimmten binären Schreibinformati on,
- b) Überprüfen der in der Speichereinheit (9) infolge des Schritts a) gespeicherten Information, um einen Speicherfeh ler festzustellen, und
- c) Korrigieren des Speicherfehlers, falls im Schritt b) ein Speicherfehler festgestellt worden ist,
daß im Schritt c) der Speicherfehler dadurch korrigiert wird,
daß die im Schritt a) verwendete Schreibinformation inver tiert, die Invertierung vermerkt und die Speichereinheit (9) erneut mit der invertierten Schreibinformation beschrieben wird.1. A method for correcting memory errors, comprising the steps
- a) writing to a specific memory unit ( 9 ) of a memory ( 1 ) with a specific binary write information,
- b) checking the information stored in the memory unit ( 9 ) as a result of step a) to determine a memory error, and
- c) correcting the memory error if a memory error has been determined in step b),
that the memory error is corrected in step c),
that the write information used in step a) is inverted, the inversion is noted and the storage unit ( 9 ) is again written with the inverted write information.
daß die zu verwendende Schreibinformation hinsichtlich der darin enthaltenen Anzahl an Bits mit dem binären Wert '1' bzw. dem binären Wert '0' analysiert wird, und
daß die zu verwendende Schreibinformation vor dem Schritt a) invertiert, die Invertierung vermerkt und die invertierte Schreibinformation den Schritten a) bis c) unterzogen wird, falls die Analyse ergeben hat, daß in der zu verwendenden Schreibinformation die Anzahl an Bits mit dem Wert '0' größer ist als die Anzahl an Bits mit dem Wert '1'.5. The method according to any one of the preceding claims, characterized in
that the write information to be used is analyzed with regard to the number of bits contained therein with the binary value '1' or the binary value '0', and
that the write information to be used is inverted before step a), the inversion is noted and the inverted write information is subjected to steps a) to c) if the analysis has shown that the number of bits with the value '0 'is greater than the number of bits with the value' 1 '.
mit einer Schreibeinrichtung (2) zum Beschreiben einer be stimmten Speichereinheit (9) eines Speichers (1) mit einer bestimmten binären Schreibinformation, und
mit einer Steuereinrichtung (4) zum Überprüfen der durch die Schreibeinrichtung (2) in der Speichereinheit (9) gespeicher ten Information, um einen Speicherfehler festzustellen,
dadurch gekennzeichnet,
daß die Steuereinrichtung (4) derart ausgestaltet ist, daß sie bei Feststellen eines Speicherfehlers diesen dadurch kor rigiert, daß sie die von der Schreibeinrichtung (2) verwende te Schreibinformation invertiert, die Invertierung vermerkt
und der Schreibeinrichtung (2) die invertierte Schreibinfor mation zum erneuten Beschreiben der Speichereinheit (9) mit der invertierten Schreibinformation zuführt.8. Circuit arrangement for correcting memory errors,
with a writing device ( 2 ) for writing a certain storage unit ( 9 ) be a memory ( 1 ) with a certain binary write information, and
with a control device ( 4 ) for checking the information stored by the write device ( 2 ) in the memory unit ( 9 ) in order to determine a memory error,
characterized,
that the control device ( 4 ) is designed such that it corrects this upon detection of a memory error by inverting the write information used by the writing device ( 2 ), noting the inversion
and the write device ( 2 ) supplies the inverted write information for rewriting the memory unit ( 9 ) with the inverted write information.
daß eine Ausleseeinrichtung (3) zum Auslesen der in der Spei chereinheit (9) gespeicherte Information vorgesehen ist, und
daß die Steuereinrichtung (4) zum Feststellen eines Speicher fehlers die von der Ausleseeinrichtung (3) ausgelesene und in der Speichereinheit (9) gespeicherte Information mit der von der Schreibeinrichtung (2) verwendeten Schreibinformation vergleicht.10. Circuit arrangement according to claim 8 or 9, characterized in
that a readout device ( 3 ) is provided for reading out the information stored in the memory unit ( 9 ), and
that the control device ( 4 ) for determining a memory error compares the information read by the readout device ( 3 ) and stored in the memory unit ( 9 ) with the write information used by the write device ( 2 ).
daß die Steuereinrichtung (4) derart ausgestaltet ist, daß sie die zu verwendende Schreibinformation hinsichtlich der darin enthaltenen Anzahl an Bits mit dem binären Wert '1' bzw. dem binären Wert '0' analysiert, und
daß die Steuereinrichtung (4) derart ausgestaltet ist, daß sie die zu verwendende Schreibinformation invertiert, die In vertierung vermerkt und die invertierte Schreibinformation der Schreibeinrichtung (2) zum Beschreiben der Speicherein heit (9) des Speichers (1) zuführt, falls die Analyse ergeben hat, daß in der zu verwendenden Schreibinformation die Anzahl an Bits mit dem Wert '0' größer ist als die Anzahl an Bits mit dem Wert '1'.13. Circuit arrangement according to one of claims 8-12, characterized in
that the control device ( 4 ) is designed such that it analyzes the write information to be used with regard to the number of bits contained therein with the binary value '1' or the binary value '0', and
that the control device ( 4 ) is designed such that it inverts the write information to be used, notes the indentation and supplies the inverted write information to the write device ( 2 ) for writing to the memory unit ( 9 ) of the memory ( 1 ) if the analysis shows has that the number of bits with the value '0' in the write information to be used is greater than the number of bits with the value '1'.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE1999135497 DE19935497A1 (en) | 1999-07-28 | 1999-07-28 | Method and circuit arrangement for correcting memory errors |
| PCT/DE2000/002381 WO2001009902A1 (en) | 1999-07-28 | 2000-07-20 | Method and circuit for the correction of memory errors |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE1999135497 DE19935497A1 (en) | 1999-07-28 | 1999-07-28 | Method and circuit arrangement for correcting memory errors |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE19935497A1 true DE19935497A1 (en) | 2001-03-01 |
Family
ID=7916387
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE1999135497 Withdrawn DE19935497A1 (en) | 1999-07-28 | 1999-07-28 | Method and circuit arrangement for correcting memory errors |
Country Status (2)
| Country | Link |
|---|---|
| DE (1) | DE19935497A1 (en) |
| WO (1) | WO2001009902A1 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5867264B2 (en) * | 2012-04-24 | 2016-02-24 | ソニー株式会社 | Storage control device, memory system, information processing system, and storage control method |
| US9582354B2 (en) | 2014-01-28 | 2017-02-28 | Infineon Technologies Ag | Apparatus and method for improving data storage by data inversion |
| US10916324B2 (en) * | 2018-09-11 | 2021-02-09 | Micron Technology, Inc. | Data state synchronization involving memory cells having an inverted data state written thereto |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE6912605U (en) * | 1969-03-28 | 1969-10-02 | Steinhaus Gmbh | PERFORATED SCREEN BASE MADE OF RUBBER-ELASTIC SOLID MATERIAL |
| DE3906494C2 (en) * | 1988-12-15 | 1990-12-06 | Samsung Electronics Co., Ltd., Suwon, Kr | |
| DE4416171C2 (en) * | 1993-06-25 | 1996-05-15 | Mitsubishi Electric Corp | EEPROM device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5396468A (en) * | 1991-03-15 | 1995-03-07 | Sundisk Corporation | Streamlined write operation for EEPROM system |
| US5267204A (en) * | 1991-10-18 | 1993-11-30 | Texas Instruments Incorporated | Method and circuitry for masking data in a memory device |
| US5673224A (en) * | 1996-02-23 | 1997-09-30 | Micron Quantum Devices, Inc. | Segmented non-volatile memory array with multiple sources with improved word line control circuitry |
| DE19610838A1 (en) * | 1996-03-19 | 1997-02-27 | Siemens Ag | Storing data records in digital memory for ROM stores e.g. CDs and read-write memories |
-
1999
- 1999-07-28 DE DE1999135497 patent/DE19935497A1/en not_active Withdrawn
-
2000
- 2000-07-20 WO PCT/DE2000/002381 patent/WO2001009902A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE6912605U (en) * | 1969-03-28 | 1969-10-02 | Steinhaus Gmbh | PERFORATED SCREEN BASE MADE OF RUBBER-ELASTIC SOLID MATERIAL |
| DE3906494C2 (en) * | 1988-12-15 | 1990-12-06 | Samsung Electronics Co., Ltd., Suwon, Kr | |
| DE4416171C2 (en) * | 1993-06-25 | 1996-05-15 | Mitsubishi Electric Corp | EEPROM device |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2001009902A8 (en) | 2001-04-19 |
| WO2001009902A1 (en) | 2001-02-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102008002083B4 (en) | Flash memory device and corresponding programming methods | |
| DE69502169T2 (en) | Method for writing data into a memory and corresponding electrically programmable memory | |
| DE4309814C2 (en) | Non-volatile semiconductor memory device | |
| DE19531683C2 (en) | Flash memory with data refresh function and data refresh method of a flash memory | |
| DE602004005211T2 (en) | DETECTING OVER PROGRAMMED MEMORY CELLS AFTER PROGRAMMING ADJUSTABLE MEMORY CELLS | |
| DE60132830T2 (en) | NOVEL METHOD AND STRUCTURE FOR EFFICIENT DATA VERIFICATION OPERATION FOR NON-VOLATILE MEMORY | |
| DE3875658T2 (en) | PROGRAMMABLE READ-ONLY MEMORY WITH MEANS FOR DISCHARGING THE BIT LINE BEFORE CHECKING THE PROGRAMMING. | |
| DE10301458B4 (en) | Memory module and associated erase, program and copyback method | |
| DE69603742T2 (en) | FLASH STORAGE CORRECTION CORRECTION WITH EXTINGUISHING LIMITATION AND PREVENTION OF ERASE DETECTORS | |
| DE69615538T2 (en) | INTEGRATED MEMORY REDUNDANCY CIRCUIT FOR PROGRAMMABLE FIXED VALUE STORAGE AND PROGRAMMING PROCESS | |
| DE4027050C2 (en) | ||
| DE69615568T2 (en) | METHOD AND DEVICE FOR VERIFYING A STORAGE CELL FROM A NON-LIQUID STORAGE CIRCUIT | |
| DE102008003944A1 (en) | Storage system and programming method for a storage system | |
| DE19937101A1 (en) | Semiconductor memory device error correction method, simultaneously corrects data from two groups of stored data bits | |
| DE3833713A1 (en) | SEMICONDUCTOR MEMORY DEVICE WITH A DEVICE FOR TESTING AND CORRECTING ERRORS | |
| DE19839680B4 (en) | Method and device for modifying the memory contents of control units | |
| DE69321700T2 (en) | Non-volatile semiconductor memory | |
| DE102004059411A1 (en) | Flash memory device and method for controlling the same | |
| DE69627595T2 (en) | Semiconductor memory and method for replacing a redundant memory cell | |
| DE19935497A1 (en) | Method and circuit arrangement for correcting memory errors | |
| EP1125202B1 (en) | Storage device for storing data and method for operating storage devices for data storage | |
| EP1169677B1 (en) | Programmable read-only memory and method for operating said read-only memory | |
| DE102006009214B4 (en) | Method and apparatus for writing to a destination memory page of a memory | |
| DE10322723B3 (en) | Memory incomplete write-in or erasure condition handling device using write-in of data read from further page in memory page identified with inconsistency | |
| DE69936567T2 (en) | Single-chip microcomputer |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8139 | Disposal/non-payment of the annual fee |