The present invention relates to a method for operating a memory device, including multiple memory cells, for the nonvolatile storage of data (nonvolatile memory device).
Moreover, the present invention relates to a device for operating a memory device, including multiple memory cells, for the nonvolatile storage of data.
Preferred specific example embodiments relate to a method for operating a memory device, including multiple memory cells, for the nonvolatile storage of data, in particular for a motor vehicle, including the following steps: checking a predefinable number of memory cells, a check result being obtained, and as a function of the check result, if applicable, programming at least one memory cell of the predefinable number of memory cells, the steps of checking and, if applicable, programming being carried out during operation of the memory device. As a result, the content of memory cells of the memory device may advantageously be checked in an efficient manner. In particular, errors or errors that are imminent or possibly occurring in the future may be detected early and remedied if necessary.
In further preferred specific embodiments of the present invention, it is provided that the predefinable number of memory cells encompasses one or multiple memory cells. In further preferred specific embodiments, the steps of checking and/or, if applicable, programming may thus be applied to a single memory cell, for example. In further preferred specific embodiments, the steps of checking and/or, if applicable, programming may be applied to comparatively few memory cells, in particular two to eight memory cells.
In further preferred specific embodiments of the present invention, it is provided that the steps of checking and/or, if applicable, programming are carried out in test cycles, a test cycle encompassing, for example, checking and/or, if applicable, programming at least a single memory cell. For example, in further preferred specific embodiments a single memory cell may be checked in a test cycle. Programming or reprogramming, in particular of an individual memory cell, is thus possible in a targeted manner, as the result of which the reliability of the memory device is increased and the memory cells as a whole are protected, since programming or reprogramming of different, further memory cells, not necessary per se, is dispensed with.
For example, in further preferred specific embodiments of the present invention, a comparatively small predefinable number of memory cells, for example two to eight memory cells, may be checked in a test cycle.
In further preferred specific embodiments of the present invention, it is provided that multiple test cycles are carried out, in particular in chronological succession (for example, directly following one another and/or with (constant or variable) waiting times between two successive test cycles), and which in each case relate, for example, to a single memory cell or a comparatively small predefinable number of memory cells, or also a larger number of memory cells (more than eight, for example) of the memory device.
In further preferred specific embodiments of the present invention, it is also possible for at least two different test cycles to relate to a different number of memory cells in each case.
In further preferred specific example embodiments of the present invention, it is provided that each memory cell of the memory device is subjected to a test cycle at least once, preferably multiple times, in particular during an operating phase of the memory device (operation without interim deactivation).
In further preferred specific embodiments of the present invention, it is provided that the entire memory is tested over a period of minutes, hours, days, weeks, or months, and faulty bit cells are corrected if necessary.
In further preferred specific embodiments of the present invention, it is provided that during operation of the memory device, at least one further unit, for example a processing device such as a processor core of a microcontroller or the like, may access the memory device.
In further preferred specific embodiments of the present invention, it is provided that the step of checking is carried out by a circuit, in particular a hardware circuit, for check sum checking, for example by a bus master such as other processor cores in the system or direct memory access (DMA) enhancements, in particular independently of a microcontroller.
In further preferred specific embodiments of the present invention, it is provided that the checking includes ascertaining at least one first variable that characterizes a data retention of at least one memory cell of the predefinable number of memory cells. It may thus be assessed whether programming or reprogramming is possibly to be carried out after the step of checking, for example because an error or an error that is imminent or possibly occurring in the future has been detected during the checking.
In further preferred specific embodiments of the present invention, it is provided that the first variable includes at least one of the following elements: a) a check sum, associated with the at least one memory cell, of an error-correcting code, b) an electrical charge, and/or a variable characterizing the electrical charge, associated with the at least one memory cell.
In further preferred specific embodiments, measures a), b) may also be combined with one another; for example, the error-correcting code and the variable characterizing the electrical charge are evaluated.
In further preferred specific embodiments of the present invention, it is provided that the method further includes: comparing the first variable to a first threshold value, and if the first variable falls below the first threshold value, programming, in particular reprogramming, the at least one memory cell, no programming, in particular reprogramming, of the at least one memory cell being carried out in particular when the first variable does not fall below the first threshold value or is equal to the first threshold value. In further preferred specific embodiments, the comparison may include, for example, an ascertainment of whether the presence of at least one error is indicated by an error-correcting code.
In further preferred specific embodiments of the present invention, it is provided that the step of programming, in particular reprogramming, is carried out only for that memory cell or those memory cells of the predefinable number of memory cells for which the first variable falls below the first threshold value.
In further preferred specific embodiments of the present invention, it is provided that the step of programming, in particular reprogramming, is carried out for a single memory cell of the predefinable number of memory cells, in particular for the at least one memory cell of the predefinable number of memory cells.
In further preferred specific embodiments of the present invention, it is provided that the steps of checking and/or, if applicable, programming are coordinated, in particular synchronized, with another operation of the memory device, in particular with possible accesses to the memory device by the further unit, in particular in such a way that with regard to the checking and/or, if applicable, the programming, no access conflicts with the possible accesses by the further unit occur.
In further preferred specific embodiments of the present invention, it is provided that a time window is ascertained in which no accesses by the further unit to the memory device, in particular to at least the predefinable number of memory cells, are carried out, and/or for which no accesses by the further unit to the memory device, in particular to at least the predefinable number of memory cells, are planned, in particular the steps of checking and/or, if applicable, programming being carried out in the time window.
In further preferred specific embodiments of the present invention, it is provided that the step of programming, in particular reprogramming, is carried out for a single memory cell of the predefinable number of memory cells, in particular for the at least one memory cell of the predefinable number of memory cells.
Further preferred specific embodiments of the present invention relate to a device for operating a memory device, including multiple memory cells, for the nonvolatile storage of data, in particular for a motor vehicle, the device being designed to carry out the following steps: checking a predefinable number of memory cells, a check result being obtained, and as a function of the check result, if applicable, programming at least one memory cell of the predefinable number of memory cells, the steps of checking and, if applicable, programming being carried out during operation of the memory device, it being possible for at least one further unit to access the memory device, in particular during operation of the memory device.
In further preferred specific example embodiments of the present invention, it is provided that the device is designed to carry out the method according to the specific embodiments.
In further preferred specific example embodiments of the present invention, it is provided that the device is at least partially, preferably completely, integrated into the memory device, for example on the same semiconductor substrate as the memory device.
In further preferred specific example embodiments of the present invention, it is provided that the memory device is a flash memory, in particular a flash EEPROM, or a phase change memory (PCM), a ferroelectric random access memory (FRAM), a resistive random access memory (RRAM), a conductive bridging RAM (CBRAM), or a magnetoresistive random access memory (MRAM).
In further preferred specific example embodiments of the present invention, the method according to the specific embodiments may advantageously be applied for all memories or memory types when there is insufficient intrinsic data security (for a predefinable intended purpose, for example).
Further advantages of the method according to the specific embodiments may include that a) correctable errors are corrected, b) the intrinsic error rate from the system viewpoint drops significantly, and thus c) an improved basis for safeguarding according to the safety requirements may be provided.
In further preferred specific example embodiments of the present invention, it is provided that the at least one memory cell has a memory capacity of 1 bit, i.e., may assume, for example, two different states. In further preferred specific embodiments, the method may also be applied for 3 or more bits per cell, and is likewise advantageously applicable in multilevel cell memories, which in principle have a higher intrinsic error rate.
In further preferred specific example embodiments of the present invention, it is provided that the at least one memory cell has a memory capacity of greater than 1 bit, for example 2 bits, i.e., may assume, for example, four different states.
Further preferred specific example embodiments of the present invention relate to a system that includes at least one memory device including multiple memory cells, and at least one device according to the specific embodiments.
In further preferred specific example embodiments of the present invention, it is provided that the system is a control unit for a motor vehicle.
Further preferred specific example embodiments of the present invention relate to a use of the method according to the specific embodiments and/or of the device according to the specific embodiments and/or of the system according to the specific embodiments for at least occasionally checking and/or programming, in particular reprogramming and/or refreshing, at least one memory cell of a or the memory device.
Further features, application options, and advantages of the present invention result from the following description of exemplary embodiments of the present invention, illustrated in the figures. All described or illustrated features, alone or in any arbitrary combination, constitute the subject matter of the present invention, regardless of their wording or illustration in the description or figures, respectively.
In further preferred specific embodiments, it is provided that during operation of memory device 100, at least one further unit 300, for example a processing device such as a processor core of a microcontroller or the like, for example of the stated control unit, may access memory device 100, in particular may write data D into memory device 100 and/or read out data from memory device 100.
In further preferred specific embodiments, it is provided that memory device 100 is a semiconductor memory, in particular a flash memory, in particular a flash EEPROM, or a phase change memory (PCM) or a magnetoresistive random access memory (MRAM). Further technologies for providing memory cells 102 for the nonvolatile storage of information are likewise usable in further preferred specific embodiments.
In further preferred specific embodiments, it is provided that at least one memory cell, in particular all memory cells 102, has/have a memory capacity of 1 bit, i.e., may assume, for example, two different states. In further preferred specific embodiments, it is provided that at least one memory cell, in particular all memory cells 102, has/have a memory capacity of greater than 1 bit, for example 2 bits, i.e., may assume, for example, four different states.
Preferred specific embodiments relate to a method for operating memory device 100, including the following steps (cf. the flowchart from
In further preferred specific embodiments, the steps of checking 200 and (if applicable) programming 202 are carried out during operation of memory device 100, for example while memory device 100 is configured to receive data from further unit 300 (
In further preferred specific embodiments, it is provided that predefinable number A1 of memory cells includes one or multiple memory cells. In the present case, by way of example a group of four memory cells 102a, 102b, 102c, 102d is combined to form predefinable number A1 in
In further preferred specific embodiments, the steps of checking 200 and/or, if applicable, programming 202 may also be applied to a single memory cell 102a, for example. In further preferred specific embodiments, the steps of checking and/or, if applicable, programming may be applied to comparatively few memory cells, in particular two to eight memory cells.
In further preferred specific embodiments, it is provided that the steps of checking 200 and/or, if applicable, programming 202 are carried out in test cycles, a test cycle encompassing, for example, checking 200 and/or, if applicable, programming 202 at least a single memory cell 102a. For example, in further preferred specific embodiments a single memory cell 102a may be checked in a test cycle. Programming or reprogramming, in particular of an individual memory cell 102a, is thus possible in a targeted manner, as the result of which the reliability of memory device 100 is increased and memory cells 102 as a whole are protected, since programming or reprogramming, not required per se, of different, further memory cells 102b, 102c, 102d, etc., as in conventional memory devices which necessarily require, for example, blockwise programming of a plurality of memory cells (even if not all, or only some, or only a single memory cell of the block in question were to be programmed), is dispensed with.
For example, in further preferred specific embodiments a comparatively small predefinable number of memory cells, for example two to eight memory cells, may be checked in a test cycle.
In further preferred specific embodiments, it is provided that multiple test cycles are carried out, in particular in chronological succession (for example, directly following one another and/or with (constant or variable) waiting times between two successive test cycles), which in each case relate, for example, to a single memory cell 102a or a comparatively small predefinable number of memory cells, or also a larger number of memory cells (more than eight, for example) of the memory device.
In further preferred specific embodiments, it is also possible for at least two different test cycles to relate to a different number of memory cells in each case.
In further preferred specific embodiments, it is provided that each memory cell 102 of memory device 100 (
In further preferred specific embodiments (cf. the flowchart from
In further preferred specific embodiments, it is provided that first variable G1 includes at least one of the following elements: a) a check sum, associated with the at least one memory cell 102a, of an error-correcting code, b) an electrical charge, and/or a variable characterizing the electrical charge, associated with the at least one memory cell 102a.
If, for example, the check sum shows that an error is present in the range of predefinable number A1 of memory cells, for example of memory cell 102a, in further preferred specific embodiments a correct content of memory cell 102a in question may be ascertained with the aid of the error-correcting code, for example, and the step of (re)programming 202 may be carried out in order to refresh memory cell 102a with the proper data content. First variable G1 may, for example, likewise be a two-value variable that indicates whether or not an error is present. Accordingly, comparison 201 may easily be dispensed with.
In further preferred specific embodiments, for example the electrical charge of a semiconductor component (for example, a floating gate electrode of a flash memory cell) may be evaluated as first variable G1.
In further preferred specific embodiments, it is provided that the method further includes: comparing 201 (
In further preferred specific embodiments, it is provided that no programming 202, in particular reprogramming, of the at least one memory cell 102a is carried out when first variable G1 does not fall below first threshold value T1 or is equal to the first threshold value. In this case, the at least one memory cell 102a is regarded as correct, and the method branches into step 204 according to
In further preferred specific embodiments, it is provided that the step of programming 200, in particular reprogramming, is carried out only for that memory cell or those memory cells of predefinable number of memory cells A1 for which first variable G1 falls below first threshold value T1. As a result, writing, which requires resources and possibly places a burden on the memory cell(s) in question, is carried out only for those memory cells that require programming or reprogramming in the sense of a refresh, but not for those memory cells for which these steps 200 are not (already) necessary. As a result, it is furthermore advantageous that wear on the memory cells (for example, damage to an oxide layer that insulates the floating gate electrode in the case of writing or programming of flash memory cells) is reduced.
In further preferred specific embodiments, it is provided that the steps of checking 200 and/or, if applicable, programming 202 are coordinated, in particular synchronized, with another operation of memory device 100, in particular with possible accesses D to memory device 100 by further unit 300 (
In further preferred specific embodiments (cf.
In this regard,
Further preferred specific embodiments relate to a device for operating memory device 100 for the nonvolatile storage of data, in particular for a motor vehicle, the device being designed to carry out the method according to the specific embodiments. In further preferred specific embodiments, it is provided that the device is integrated at least partially, preferably completely, into memory device 100 (cf. element 400 from
Further preferred specific embodiments relate to a system 1000 (
Further preferred specific embodiments relate to a use of the method according to the specific embodiments and/or of device 400 according to the specific embodiments and/or of system 1000 according to the specific embodiments for at least occasionally checking and/or programming, in particular reprogramming and/or (re)freshing, at least one memory cell 102a of a or the memory device 100.
Further advantageous aspects and specific embodiments are described below, which according to yet further preferred specific embodiments are in each case combinable, alone or in combination with one another, with any of the specific embodiments described above.
Further preferred specific embodiments allow a refresh of individual memory cells 102a, 102b, . . . during operation of system 1000, in particular without having to provide memory blocks, in particular additional memory blocks.
In further preferred specific embodiments, preferably only the memory cells that have lost charge are programmed or reprogrammed, as the result of which the stress on other/neighboring cells of the memory device is minimized. The stress and thus the failure rate for other cells is reduced, in particular compared to conventional methods based on block-based programming using additional blocks.
In further preferred specific embodiments, the method (cf.
In further preferred specific embodiments, the method according to the specific embodiments (cf. steps 200, 202 according to
Since the method, according to at least some preferred specific embodiments, may be carried out during ongoing operation of memory device 100 or of system 1000:—It is easier to set up a Safety Automotive Safety Integrity Level (ASIL) D system, since the initial error rate for the bit error consideration is much lower,—The risk of failures is lower, since it is no longer necessary to wait until control unit 1000 is in overrun mode or in the start phase in order to refresh (reprogram); for example, an automobile travels for several hours,—For memory devices 100 according to further preferred specific embodiments, the intrinsic data retention time at elevated temperatures and fairly long run times is smaller in the ppm range for a number of cells, and therefore may be refreshed beforehand without failure,—It is possible to use new nonvolatile memory technologies, for example with shorter data retention times.
In further preferred specific embodiments, error-correcting codes ECC are used with triple bit error detection and double bit error correction (DECTED ECC).
In further preferred specific embodiments, other methods may alternatively or additionally be used, for example, for determining the instantaneous charge of a memory cell, for example, the conventional margin read methods.
Further preferred specific embodiments allow, for example during ongoing operation of system 1000, a charge of the bits or the memory content of memory cells 102 to be checked, in particular continuously, and/or an error-correcting code (ECC) to be checked, in particular continuously, for example until an error is visible and/or until a data retention of the memory cell that is no longer sufficient is establishable (charge too low, for example), it being possible for such an error or the memory cell in question to then be directly programmed or reprogrammed, using the correct data value. Since in particular in DECTED ECC methods it is also possible to correct a second error, the probability of failure of system 1000 is thus much lower.
In further preferred specific embodiments, in running system 1000 a search is made for states in which it is ensured that for a predefinable time (for example, 30 μs (microseconds) for PCM memory cells) it is not necessary to access the memory (by further unit 300, for example); cf. also time window ZF depicted in
In further preferred specific embodiments, a correction of memory cells that are conspicuous or detected as faulty takes place before a second or third cell in same area A1 (
In further preferred specific embodiments, preferably the entire memory area of memory device 100, in particular all memory cells 102, is/are checked over time, for example in the form of test cycles, each of which considers only one or a few memory cells, as the result of which shorter data retention times (for example, due to high temperatures, and/or memory cell technologies with inherently low data retention, such as flash memory) may advantageously be compensated for. For example, in further preferred specific embodiments the method may be carried out according to the specific embodiments (cf. steps 200, 202 from
In further preferred specific embodiments, error-correcting codes together with margin read techniques may also be used, for example for the step of checking 200 (
In further preferred specific embodiments, it is also possible for (only) margin read techniques to be used for the step of checking 200 (
In further preferred specific embodiments, single error correction and double error detection (SECDED) techniques may also be used, in which one error may be corrected and two errors may be detected.
In further preferred specific embodiments, error-correcting codes which allow a correction of more than two bits may also be used for checking 200 (
In further preferred specific embodiments, the method according to
Number | Date | Country | Kind |
---|---|---|---|
102019203351.2 | Mar 2019 | DE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/055820 | 3/5/2020 | WO | 00 |