EP3698364A1 - Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables - Google Patents
Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammablesInfo
- Publication number
- EP3698364A1 EP3698364A1 EP18782028.7A EP18782028A EP3698364A1 EP 3698364 A1 EP3698364 A1 EP 3698364A1 EP 18782028 A EP18782028 A EP 18782028A EP 3698364 A1 EP3698364 A1 EP 3698364A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- retention
- errors
- page
- age
- remaining
- 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
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0035—Evaluating degradation, retention or wearout, e.g. by counting writing cycles
-
- 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
-
- 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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50016—Marginal testing, e.g. race, voltage or current testing of retention
Definitions
- the invention relates to the field of nonvolatile memories and is particularly interested in the retention time and refresh cycles of the data stored in reprogrammable non-volatile memories.
- Nonvolatile memories have the ability to keep their data after power off.
- Nonvolatile reprogrammable memories have the ability to keep their data after power off, while allowing reprogramming of data by the user.
- An example is the flash memory whose uses are many, eg in digital cameras, cell phones, printers, PDAs, or devices for reading and sound recording such as digital music players, USB sticks . Flash memories form the storage infrastructure in electronic disks known as solid state drives (SSDs), intended to replace traditional hard disks known as hard disk drives (HDDs). English “Hard-Disk Drive”.
- An SSD can contain dozens of flash memories.
- a flash memory is divided into thousands of blocks. Each block can contain hundreds of pages each having thousands or tens of thousands of bits.
- Some SSDs use flash memories of the type (MLC) of the English “Multi Level Cell” to store 2 bits per cell memory or type (TLC) of the English “Triple Level Cell” to store 3 bits per memory cell instead of 1 bit per memory cell as in the flash memories type (SLC) of the English “Single Level Cell”".
- the improvement in storage density affects the retention time of the data stored in the memory cells, ie the time corresponding to the guaranteed time period for data retention, and affects the endurance of flash memories which is generally measured in number of guaranteed programming / erasing cycles (P / E).
- P / E number of guaranteed programming / erasing cycles
- the endurance of a flash memory is reduced by an average of one decade for each additional bit stored in the memory cells.
- the limited retention of data is due to the appearance of retention errors, the number of which increases with the age of retention, i.e. the time elapsed since data programming.
- ECC error-correcting codes
- Periodic data refresh also helps to reduce the effects of endurance reduction and retention time.
- This refresh can be performed without changing the location where the data is stored, by just injecting the amount of charge that is missing on the floating gate of the flash cells.
- the refresh can be done by rewriting by reprogramming the data to another physical location.
- a disadvantage of such known approaches is that they are suitable for "worst case" situations without taking into account the variations in the error rate that may occur from one memory to another, from one block to another inside the same memory, or from one page to another within the same block. For example, a large-scale study of SSDs in a data center has shown that a relatively small number of SSDs contribute to the degradation of the total error rate (J.
- Sergey Anatolievich et al. proposes a first method for measuring and analyzing memory cells that independently measures / predicts memory wear / endurance, data retention (DR), reading disruption and / or the remaining margin, by constituting and analyzing state distribution histograms of the individual voltage levels of the cells. Preventive actions based on these measures can be adopted to improve the management of memory and data.
- a second method proposed in this document makes it possible to predict a deterioration of the DR based on a measurement of the slope of the increase of the Bit Error Rate (BER) over time. This second method requires multiple reads of each memory location to be analyzed, and a storage of the read results, since estimates can only be made after relatively long time intervals.
- BER Bit Error Rate
- An object of the present invention is to provide a method and an associated device for controlling the data refresh rate.
- the process estimates a remaining retention time for each page of a non-volatile memory, based on the number of retention errors and the retention age of the page.
- a memory page having valid data is refreshed only if the remaining retention time is smaller than the remaining time until the next access to this memory page.
- a method for controlling the refreshing of data in reprogrammable non-volatile memories comprising a plurality of memory pages for storing data, the steps of the method executing during a read operation of a memory page and comprising:
- the step of determining the refreshing of the page consists in determining that the page must be refreshed if the remaining retention time is smaller than the predefined value; the step of estimating the remaining retention time comprises at least one step of using a statistical law with the parameters of the number of retention errors, the number of non-retention errors and the retention age;
- the statistical law used is the law of chi-square
- the step of estimating the remaining retention time comprises at least one step of obtaining a value of a number of maximum retention errors tolerated for said page
- the comparison step consists in comparing the number of maximum retention errors tolerated with the number of calculated retention errors
- the step of determining the Refreshing means determining that said page needs to be refreshed if the number of calculated retention errors is greater than the number of tolerated maximum retention errors
- the number of maximum retention errors tolerated corresponds to the largest value of the number of retention errors for which the remaining retention time is greater than said predefined value
- the step of estimating the remaining retention time consists in obtaining a value of a minimum retention age tolerated for said page; the comparison step consists of comparing the minimum retention age tolerated with the calculated retention age; and the step of determining refreshing is to determine that said page should be refreshed if the calculated retention age is less than the minimum retention age tolerated;
- the minimum retention age tolerated corresponds to the smallest retention age for which the remaining retention time is greater than said predefined value
- the step of estimating the remaining retention time consists in reading a table of precalculated values for combinations of parameters of the number of retention errors, of the number of non-retention errors and of the retention age, and consists in selecting a stored value for the number of retention errors, the number of non-retention errors and the retention age calculated for said page;
- the selected value is a remaining retention time
- the selected value is a maximum retention error number tolerated
- the selected value is a minimum retention age tolerated
- the pre-calculated value table contains binary values representative of results of the comparison of retention times remaining with said predefined value, or of the results of the comparison of the number of retention errors with the number of maximum retention errors tolerated, or results of the retention age comparison with the minimum allowable retention age
- the step of calculating the retention age of said at least one memory page is to read a time tag associated with said page and to differentiate between the state of a counter having provided time tags to the pages memory and the time tag read for said page.
- the invention also covers a device for controlling the refreshing of data in reprogrammable non-volatile memories, said memories comprising a plurality of memory pages for storing data, the device comprising means for implementing the method claimed in its various modes. of realization.
- the device comprises:
- a circuit capable of calculating, among identified errors, the number of retention errors and non-retention errors in said memory page, the non-retention errors notably comprising programming or repeated read errors;
- circuit capable of estimating the remaining retention time for said memory page as a function of the previously calculated number of retention error, number of non-retention error and retention age parameters; a circuit able to compare the estimated value of the remaining retention time with a predefined value corresponding to a maximum time interval between two successive read operations of a memory page;
- the device further comprises a circuit adapted to refresh said page.
- the invention also relates to a data storage system comprising at least one reprogrammable non-volatile memory having a plurality of memory pages for storing data, and at least one device as claimed for controlling the refreshing of data in said at least one a non-volatile memory reprogrammable.
- the claimed device is integrated with a controller capable of handling read and write operations of a plurality of memory pages.
- the invention may be available on a processor-readable recording medium on which is recorded a program including instructions for performing the claimed method.
- FIG. 1 shows a block diagram of a host and of a memory card or an SSD allowing the device of the invention to be implemented;
- FIG. 2 shows the internal structure of a non-volatile memory in one embodiment
- FIG. 3 shows a block diagram of the device of the invention according to one embodiment
- FIG. 4 illustrates a sequence of steps of the method of the invention according to one embodiment
- FIG. 5 illustrates a sequence of steps of the method of the invention according to an alternative embodiment
- FIG. 6 illustrates a series of steps of the method of the invention according to another variant embodiment.
- FIG. 1 schematically shows a host 120 coupled to a storage system 1 10 for implementing the device of the invention.
- the storage system 1 10 may for example be an SSD or a memory card.
- the storage system 1 10 is represented as comprising a plurality of non-volatile memories MNVs 1 12.
- the storage system comprises a single MNV.
- the storage system 110 also includes connection interfaces 105 for connecting with the host. In a manner well known to those skilled in the art, such interfaces may be USB type connectors of the "Universal System Bus" or SATA type of "Serial Advanced Technology Attachment".
- the storage system 1 10 can and connect via the connector to the corresponding interface of the host 120 to exchange data according to different protocols, such as USB protocols, SATA or other more specific protocols of the host.
- the storage system 1 10 can be an onboard card of a host system, the host can also accommodate one or more memory cards.
- the host 120 and the storage system 1 10 are in wireless communication and exchange according to Wi-Fi protocols of English "Wireless Fidelity".
- the host can be any system that can hold memory cards or SSDs or exchange data with memory cards or SSDs.
- the host 120 may be a personal computer, fixed or portable, including tablets, mobile phones, smartphones or other personal assistants.
- the host may also be a server and include receptacles for accommodating one or more memory cards or SSDs.
- the host may also be a microcontroller or a processor integrated on the same chip with the storage system 1 10.
- the storage system 1 10 comprises a control circuit 1 1 1 comprising components well known to those skilled in the art for managing data exchanges and instructions between the MNVs memories 1 12 and the host 120 via communication interfaces host / memories, manage read / write operations, error correction in the memories via error correction codes.
- the control circuit 1 1 1 may be an SSD controller or a memory card controller.
- the controller 11 may be implemented as a microcontroller.
- all the components of the control circuit can be implemented as a dedicated module such as an ASIC of the English "Application Specifies Integrated Circuit".
- the nonvolatile memories 1 12 may be flash type memories.
- the MNVs may be emerging resistive memories such as PCRAM memories, Phase-Change Random-Access Memory (RAM), CBRAM of the English "Conductive-Bridging RAM", or M RAM of the English "Magnetic RAM”.
- MNVs 1 12 of the storage system can be implemented on separate chips or be integrated with the controller 1 1 1 on the same chip.
- Error correction circuits (ECC) 1 14 may be associated with MNVs to correct errors that occurred during data storage.
- FIG. 2 shows the internal structure of a non-volatile memory making it possible to operate the method of the invention.
- An MRV 210 may contain one or more memory blocks 21 1 -i, each memory block 21 1 -i having one or more memory pages 212-ij. It is common for a memory block to contain hundreds of pages. The pages of a memory block are written one after the other.
- a memory page contains information bits relating to user-accessible data and redundant information bits that can be used for error correction or for data management performed by the controller.
- the bits of a memory page are programmed and read simultaneously. In the case of a flash-type MRV, all the bits of a memory block are erased at the same time to allow their reprogramming.
- a write operation may correspond to a programming operation or an erase operation followed by a programming operation.
- the general principle of the invention is based on an estimation of the remaining retention time for each page of a non-volatile memory, as a function of the number of errors in the page and its retention age.
- the method of the invention for controlling the refreshing of data in reprogrammable non-volatile memories having a plurality of memory pages for storing data will consist of calculating the number of retention errors and non-retention errors. in at least one memory page; calculating the retention age of said at least one memory page; estimating the remaining retention time for said page based on previously calculated parameters; and determining whether the page should be refreshed or not based on the estimated value of the remaining retention time.
- a memory page with valid data will be refreshed only if the remaining retention time is smaller than the duration until the next access to this memory page, a maximum time interval between two successive read operations of a memory page being predefined.
- the refresh rate of the pages depends on the actual error rate that affects these pages, and is not necessarily correlated to the read frequency of these memory pages.
- the impact on the performance of a storage system can be substantially reduced.
- FIG. 3 shows a block diagram of the device 300 of the invention according to one embodiment.
- the device can be implemented in the controller 1 1 1 or on dedicated hardware, such as for example a microcontroller or an ASIC added or coupled to the storage system 1 10.
- the device comprises a read / write module 302 to access the pages memories, which can be that of the controller 1 1 1.
- a counter 304 makes it possible to assign a time tag to each memory block during the first programming operation (after an operation of erasing or resetting the block).
- the time stamp TS ("timestamp" according to known anglicism) associated with each memory block is taken into account for the evaluation of the retention age TAGE of the stored bits.
- a time tag can be assigned to each page.
- the device comprises a calculation module 306 for calculating the retention age T A GE of all the bits stored in a memory block.
- a calculation module 306 for calculating the retention age T A GE of all the bits stored in a memory block.
- the device includes an error correction circuit 310 (ECC) which makes it possible to identify the errors that occurred during the storage of data in a page and to correct them using a correction code.
- ECC error correction circuit
- the ECC circuit has a predefined error correction capability.
- the device comprises an error counting module or error decoder 308 which makes it possible to count the existing errors on a page, and to differentiate the retention errors s R from the other types of errors, such as programming or error errors. reading, these other types of errors being subsequently called non-retention errors E N R.
- the error decoder and the error corrector are one and the same circuit.
- the device further comprises a module for estimating the remaining retention time 312 which makes it possible to calculate or obtain a remaining retention time T RE T from the parameters of the number of retention errors, of the number of errors of error. non-retention and retention age.
- the estimation module comprises calculation means for calculating online an estimate of the remaining time.
- the retention time estimation module consists of a table including retention time values remaining precomputed. The stored values are calculated offline for different combinations of the "number of retention errors / number of non-retention errors / retention age" parameters.
- the module for estimating the remaining retention time makes it possible to obtain or store values of the number of maximum retention errors tolerated by RM RM AX for different combinations of the parameters "number of non-standard errors". retention / age of retention ".
- the module for estimating the remaining retention time makes it possible to obtain or store tolerated minimum retention age values T A GE_MIN for various combinations of the parameters "number of retention errors / number of errors”. 'non-retention errors'.
- a decision module 314 makes it possible to determine whether a refresh of a page must be made, depending on the result produced by the estimation module 312.
- FIG. 4 illustrates a sequence of steps of the method 400 making it possible to determine whether a refresh of the stored data in a page of a non-volatile memory must be made.
- the method 400 begins with a read operation 402 of a page in a MRV.
- the read operation may be triggered on a request received from the host 120 or on an operation initiated by the controller 11 1, for example when managing the data stored inside the storage system.
- the next step 406 consists in counting among the errors identified, the number of ER retention errors and ENR non-retention errors.
- the error counting and error correction steps can be performed simultaneously.
- the differentiation of the errors is made by comparing the values read and the corrected values.
- a bit is affected by a retention error if the value read is 1 and the corrected value is 0.
- the value read is 0 and the corrected value is 1, it is a non-retention error.
- a bit is affected by a retention error if the value read is 0 and the corrected value is 1.
- Step 406 makes it possible to obtain the number of ER retention errors and the number of ENR non-retention errors that affect the page read.
- the method continues with a step 408 for determining the retention age T A GE of the page read.
- the retention age is obtained by making the difference between the state of the counter having provided a label to the memory block hosting the page read and the current time tag associated with the page read.
- the method makes it possible to determine the remaining retention time T RE T as a function of the parameters obtained in the previous steps which are the retention age TAGE, the number of retention errors £ R and the number of non-retention errors £ NR.
- remaining retention time values T RE T are precalculated offline for a plurality of combinations of the parameters Retention Age T A GE, retention error number R, number of non-response errors. -retention £ NR ". Values are stored as metadata in a dedicated table in the storage system (estimation table), which is accessed online when reading a page. It should be noted that the error number parameters s R and E N R are discrete, while the retention age parameter T A GE is continuous and can therefore take an infinite number of values.
- an alternative embodiment consists in considering only discrete values of the retention age TAGE by taking a step TAGE_STEP equal to T RE T OR at a fraction of the T RET , eg, 1/2, 1/3 etc.
- the value of the remaining retention time T RET which corresponds to a given value of the retention age TAGE is then sought in the table using an index corresponding to the entire part of the report.
- the calculation of the estimate of the retention time remaining T RET is done using a statistical law.
- the calculation consists in using the chi-square law " ⁇ 2 " which is known to calculate the average time between failures of any product, on the parameters of the number of retention errors and the number of errors. Retention age.
- the person skilled in the art may consider using any calculation of the type "average time to failure"("mean time to failure" in English), a product according to the test time, the number of samples tested and the number of samples that have not passed the test.
- the statistical law which gives the evolution of the number of retention errors with the age of retention can be known, without necessarily knowing all the parameters which govern this law.
- non-retention errors the number of which can increase with the retention age of the memory block, such as errors due to repeated reads in a fully programmed memory block, are neglected with respect to retention errors.
- the method makes it possible to compare the remaining retention time T RE T (which has been calculated online or retrieved in the table of precalculated values) with a predefined value T RE AD_NEXT corresponding to a maximum time interval between two successive read operations of a memory page.
- T RE AD_NEXT can be defined according to the size of the storage system, the computing capacity, the idle time, and the considered application. Such a value can be in a range from a few weeks to a few months for example.
- a retention time remaining T RE T smaller than T REA D_NEXT means that the number of errors that will accumulate until the next reading operation may become non-correctable, given the capacity of the ECC.
- the method then allows (branch yes) to launch a refresh of the page (step 414). After the refresh operation, the process returns to the beginning.
- a retention time remaining T RET greater than T REA D_NEXT means that there is no need for data refresh, and the process returns to the beginning (no branch).
- each entry of the table can directly contain the result of the comparison of a retention time remaining T RET with T REA D_NEXT, ie the table may contain a single bit per input, instead of containing the values of T RE T, requiring several bits per input.
- the storage cost of the table can be further reduced, taking into account the fact that the remaining retention time T RE T is a decreasing function according to the variable E R for any combination of the variables T A GE and E N R. It is then possible to store in the table, for each combination of parameters T A GE and £ NR, an ER MAX parameter corresponding to the number of maximum retention errors that can still be tolerated until the next reading of the memory page. without exhausting the correction capability of the ECC.
- the value of the number of maximum retention errors tolerated E R _ MA X corresponds to the highest value of the number of ER retention error errors for which the remaining retention time T RE T is greater than the predefined value for TREAD_NEXT-
- This variant makes it possible to store a table in 2 dimensions indexed according to the values of the parameters TAGE and ENR, compared to the variant where the table stored is in 3 dimensions indexed according to the values of parameters TAGE, ER and ENR.
- FIG. 5 illustrates a sequence of steps 500 of the method of the invention in an alternative embodiment of the use of the maximum retention error parameter tolerated by RM AX.
- the method starts according to steps 502 to 508 which are identical to the steps 402 to 408 of the method of Figure 4. They are not described again.
- the method makes it possible to obtain a maximum number of ER MAX tolerated retention errors for a page.
- the value of ER MAX can be calculated online or preferentially be retrieved in the table of estimation of the number of retention errors maximum tolerated.
- the value selected is that corresponding to a stored value for the retention age parameters TAGE and the number of non-retention errors E N R that those calculated, with a retention time remaining corresponding to that calculated, which is greater at the maximum time interval (T RE T> T RE AD_NEXT).
- the method makes it possible to compare the number of retention errors E r which has been obtained following the decoding by the ECC of the page, with the number of errors of maximum retention tolerated ER MAX-
- a number of ER retention errors larger than the maximum number of ER MAX tolerated retention errors means that the number of errors that can be accumulated until the next read operation of the page may become uncorrectable .
- the method then allows the page to be refreshed (step 514). After the refresh operation, the process returns to the beginning.
- a number of retention errors ER smaller than or equal to the number of maximum retention errors tolerated E RM AX means that there is no need for data refresh, and the process returns to the beginning (branch Yes).
- the storage cost of the table can also be reduced, taking into account that the retention time remaining T RE T is an increasing function relative to the retention age variable TAGE, for any combination of the ER and E N R variables. It is then possible to store in the table, for each combination of parameters E r and E N R, a parameter T A GE_MIN corresponding to the minimum retention age for which a number of retention errors E r and a number of Non-retention errors E N R can be tolerated. Thus, for each combination of parameters E r and E N R, the value of the minimum retention age tolerated T A GE_MIN corresponds to smaller retention age T A GE for which the remaining retention time TRET is greater than the predefined value for T RE AD_NEXT-
- This variant makes it possible to store a table in 2 dimensions indexed according to the values of the parameters £ R and £ NR, with respect to the variant where the stored table is in 3 dimensions indexed according to the parameter values TAGE, ER and ENR.
- FIG. 6 illustrates a sequence of steps 600 of the method of the invention in the variant embodiment using the tolerated minimum retention age parameter T A GE_MIN- The method starts according to steps 602 to 608 which are identical to steps 402 to 408 of the process of Figure 4. They are not described again.
- the method makes it possible to obtain a minimum retention age tolerated TAGE_MIN for a page.
- the value of the parameter XAGE_MIN can be calculated online or preferentially be retrieved from the estimation table of the minimum tolerated retention age.
- the method makes it possible to compare the retention age T A GE calculated in step 608 with the minimum retention age tolerated
- An age of retention TAGE smaller than the minimum retention age tolerated TAGE_MIN means that the number of errors that can be accumulated until the next read operation of the page may become uncorrectable.
- the method then allows the page to be refreshed (step 614). After the refresh operation, the process returns to the beginning.
- a retention age TAGE greater than or equal to the minimum retention age tolerated T A GE_MIN means that there is no need for data refresh, and the process returns to the beginning (branch yes).
- the invention can be implemented from hardware and / or software elements. It may be available as a computer program product executed by a dedicated processor or a memory controller of a storage system, and which includes instructions for performing the process steps in their various embodiments.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1759765A FR3072494B1 (fr) | 2017-10-18 | 2017-10-18 | Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables |
| PCT/EP2018/076565 WO2019076613A1 (fr) | 2017-10-18 | 2018-10-01 | Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3698364A1 true EP3698364A1 (fr) | 2020-08-26 |
Family
ID=61599273
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP18782028.7A Withdrawn EP3698364A1 (fr) | 2017-10-18 | 2018-10-01 | Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10990477B2 (fr) |
| EP (1) | EP3698364A1 (fr) |
| FR (1) | FR3072494B1 (fr) |
| WO (1) | WO2019076613A1 (fr) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110689914B (zh) * | 2019-09-06 | 2021-08-10 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的读纠错方法、装置、设备及存储介质 |
| US11157379B2 (en) | 2019-10-30 | 2021-10-26 | International Business Machines Corporation | Managing blocks of memory based on block health using hybrid controllers |
| TWI764856B (zh) * | 2021-12-13 | 2022-05-11 | 慧榮科技股份有限公司 | 記憶體控制器與資料處理方法 |
| CN116469442B (zh) * | 2022-03-23 | 2024-05-03 | 武汉置富半导体技术有限公司 | 芯片数据保持时间的预测方法、装置及存储介质 |
| KR20240059953A (ko) * | 2022-10-28 | 2024-05-08 | 에스케이하이닉스 주식회사 | 타임스탬프를 기초로 가비지 컬렉션 또는 웨어 레벨링을 제어하는 스토리지 장치 및 그 동작 방법 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8938655B2 (en) * | 2007-12-20 | 2015-01-20 | Spansion Llc | Extending flash memory data retension via rewrite refresh |
| US9330767B1 (en) * | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
| CN105531768B (zh) * | 2013-08-30 | 2019-12-31 | 英派尔科技开发有限公司 | 闪存中功率消耗的减小 |
| US9959059B2 (en) * | 2014-10-20 | 2018-05-01 | Sandisk Technologies Llc | Storage error management |
| US20160179428A1 (en) * | 2014-12-22 | 2016-06-23 | Sandisk Technologies Inc. | Dynamic programming adjustments in memory for non-critical or low power mode tasks |
-
2017
- 2017-10-18 FR FR1759765A patent/FR3072494B1/fr not_active Expired - Fee Related
-
2018
- 2018-10-01 WO PCT/EP2018/076565 patent/WO2019076613A1/fr not_active Ceased
- 2018-10-01 US US16/756,837 patent/US10990477B2/en not_active Expired - Fee Related
- 2018-10-01 EP EP18782028.7A patent/EP3698364A1/fr not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| US20200264952A1 (en) | 2020-08-20 |
| FR3072494B1 (fr) | 2020-06-19 |
| US10990477B2 (en) | 2021-04-27 |
| WO2019076613A1 (fr) | 2019-04-25 |
| FR3072494A1 (fr) | 2019-04-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3698364A1 (fr) | Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables | |
| US10963327B2 (en) | Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management | |
| FR3033927B1 (fr) | Groupement des niveaux de lecture pour des performances de memoire flash accrues | |
| US11176036B2 (en) | Endurance enhancement scheme using memory re-evaluation | |
| US11048571B2 (en) | Selectively performing multi-plane read operations in non-volatile memory | |
| US9858002B1 (en) | Open block stability scanning | |
| US20120224425A1 (en) | Using Temperature Sensors with a Memory Device | |
| US20150149818A1 (en) | Defect management policies for nand flash memory | |
| US11016693B2 (en) | Block health estimation for wear leveling in non-volatile memories | |
| US11094383B2 (en) | Selective page calibration based on hierarchical page mapping | |
| US11734110B1 (en) | Storage device reclassification system | |
| US11409441B2 (en) | Operation method of a storage controller configured to control a nonvolatile memory device | |
| FR3025928A1 (fr) | ||
| US12541411B2 (en) | Failure prediction apparatus and method for storage devices | |
| FR3100369A1 (fr) | Procédé d’inversion sélective de mots à écrire dans une mémoire et dispositif pour sa mise en œuvre | |
| CN113076218B (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
| US10324648B1 (en) | Wear-based access optimization | |
| EP2724237B1 (fr) | Procédé de gestion de l'endurance de mémoires non volatiles | |
| EP3507809B1 (fr) | Dispositif et procede de controle des cycles de rafraichissement des memoires non-volatiles | |
| US10656847B2 (en) | Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation | |
| US20250307060A1 (en) | Method and device of predicting a failure of a storage device | |
| CN109582527A (zh) | 存储服务器及其固态硬盘寿命监控方法 | |
| US10942662B2 (en) | Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization | |
| US11983424B2 (en) | Read disturb information isolation system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20200416 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20210203 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20230503 |