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 reprogrammables

Info

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
Application number
EP18782028.7A
Other languages
German (de)
English (en)
Inventor
Valentin Gherman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of EP3698364A1 publication Critical patent/EP3698364A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50016Marginal 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

L'invention porte sur un procédé pour contrôler le rafraichissement de données dans des mémoires non-volatiles reprogrammables comprenant une pluralité de pages mémoire pour stocker des données. Le procédé opère selon les étapes consistant à : - identifier par un code correcteur d'erreur des erreurs dans une page mémoire lue; - calculer parmi les erreurs identifiées le nombre d'erreurs de rétention et d'erreurs de non-rétention, les erreurs de non-rétention comprenant notamment des erreurs de programmation ou de lectures répétées; - calculer l'âge de rétention de ladite page mémoire lue; - estimer le temps de rétention restant pour ladite page mémoire lue en fonction des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention précédemment calculés; - comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire; et - déterminer si ladite page mémoire lue doit être rafraichie ou non en fonction du résultat de la comparaison. - déterminer si la page doit être rafraichie ou non en fonction de la valeur estimée du temps de rétention restant.

Description

DISPOSITIF ET PROCEDE DE CONTROLE DES CYCLES DE RAFRAICHISSEMENT DE DONNEES DANS DES MEMOIRES NON- VOLATILES REPROGRAMMABLES
Domaine de l'invention
L'invention concerne le domaine des mémoires non-volatiles et s'intéresse en particulier au temps de rétention et aux cycles de rafraîchissement des données stockées dans des mémoires non-volatiles reprogrammables. Etat de la Technique
Les mémoires non-volatiles (MNVs) ont la capacité de pouvoir garder leurs données après une mise hors tension. Les mémoires non- volatiles reprogrammables ont la capacité de pouvoir garder leurs données après une mise hors tension, tout en permettant la reprogrammation des données par l'utilisateur. Un exemple est la mémoire flash dont les utilisations sont nombreuses, e.g. dans les appareils photo numériques, les téléphones cellulaires, les imprimantes, les assistants personnels (PDA), ou dispositifs de lecture et d'enregistrement sonore comme les baladeurs numériques, les clés USB. Les mémoires flash forment l'infrastructure de stockage dans les disques électroniques connus sous le nom de disques (SSD) de l'anglais « Solid- State Drive », destinés à remplacer les disques durs traditionnels connus sous le nom de disques (HDD) de l'anglais « Hard-Disk Drive ».
Un SSD peut contenir des dizaines de mémoires flash. Une mémoire flash est divisée en milliers de blocs. Chaque bloc peut contenir une centaine de pages chacune ayant des milliers ou dizaines de milliers de bits. Certains SSDs utilisent des mémoires flash de type (MLC) de l'anglais « Multi Level Cell » permettant de stocker 2 bits par cellule mémoire ou de type (TLC) de l'anglais « Triple Level Cell » permettant de stocker 3 bits par cellule mémoire au lieu de 1 bit par cellule mémoire comme dans les mémoires flash de type (SLC) de l'anglais « Single Level Cell ». En dehors de l'augmentation de la finesse de gravure, le fait de loger plusieurs bits par cellule permet d'augmenter la densité de stockage d'information et de réduire la différence de prix par gigaoctet (GB) entre les SSDs et les disques durs HDDs.
Cependant, l'amélioration de la densité de stockage affecte le temps de rétention des données stockées dans les cellules mémoire, i.e. le temps correspondant à la période de temps garantie pour la conservation de données, et affecte l'endurance des mémoires flash qui est généralement mesurée en nombre de cycles de programmation/effacement (P/E) garantis. Par exemple, l'endurance d'une mémoire flash est réduite d'une décade en moyenne pour chaque bit supplémentaire stocké dans les cellules mémoires. La rétention limitée des données est due à l'apparition des erreurs de rétention dont le nombre augmente avec l'âge de rétention, i.e. le temps écoulé depuis la programmation des données.
Il est possible d'utiliser des codes correcteurs d'erreurs (ECC) plus puissants avec plus de bits de vérification et plus de capacité de correction pour agir sur le temps de rétention des données.
Le rafraîchissement périodique des données permet aussi d'estomper les effets de la réduction d'endurance et du temps de rétention. Ce rafraîchissement peut être exécuté sans changer le lieu où les données sont stockées, en injectant juste la quantité de charge qui manque sur la grille flottante des cellules flash. Alternativement, le rafraîchissement peut être fait par réécriture en reprogrammant les données à une autre location physique. Cependant, un inconvénient de telles approches connues est qu'elles sont adaptées pour des situations « pire cas » sans tenir compte des variations du taux d'erreurs qui peuvent se manifester d'une mémoire à une autre, d'un bloc à un autre à l'intérieur d'une même mémoire, ou d'une page à une autre à l'intérieur d'un même bloc. Ainsi, par exemple, une étude à grande échelle concernant les SSDs d'un centre de données, a montré qu'un nombre relativement restreint des SSDs contribue à la dégradation du taux d'erreurs total (J. Meza et al., "A large-scale study of flash memory failures in the field," ACM SIGMETRICS International Conférence on Measurement and Modeling of Computer System, pp. 177-190, 2015). Ces SSDs qui constituent la situation « pire cas » imposent une fréquence de rafraîchissement fixe adaptée au taux d'erreurs de ces SSDs pire cas. Cependant, cette fréquence de rafraîchissement est trop pessimiste pour les autres SSDs. La demande de brevet U.S.A. 201 6/179406 A1 de Gorobets
Sergey Anatolievich et al. propose une première méthode de mesure et d'analyse de cellules mémoire qui mesure/prédit indépendamment l'usure/l'endurance de la mémoire, la rétention des données (DR), la perturbation de lecture et/ou la marge restante, en constituant et analysant des histogrammes de distribution d'état des niveaux de tension individuels des cellules. Des actions préventives basées sur ces mesures peuvent être adoptées pour améliorer la gestion de la mémoire et des données. Une deuxième méthode proposée dans ce document permet de prédire une détérioration de la DR en se basant sur une mesure de la pente de l'augmentation du taux d'erreur « Bit Error Rate » (BER) dans le temps. Cette deuxième méthode nécessite de multiples lectures de chaque location mémoire qui doit être analysée, et un stockage des résultats des lectures, car il n'est possible d'avoir des estimations qu'après des intervalles de temps relativement longs. Aussi, il existe le besoin d'une solution pour agir sur le temps de rétention des données et sur l'endurance des mémoires, qui contourne l'utilisation de codes correcteurs plus puissants. Il existe le besoin d'une solution pour agir sur le temps de rétention des données et sur l'endurance des mémoires qui adapte les cycles de rafraîchissement des données au taux d'erreur de chaque SSD, mémoire, bloc mémoire ou page mémoire, et non des cycles adaptés au pire cas pour toute une population de mémoires non-volatiles MNVs ou de disques électroniques SSDs pouvant contenir des unités sujettes à plus d'erreurs que les autres. La présente invention répond à ce besoin.
Résumé de l'invention
Un objet de la présente invention est de proposer un procédé et un dispositif associé, permettant de contrôler la fréquence de rafraîchissement de données. Le procède permet d'estimer un temps de rétention restant pour chaque page d'une mémoire non-volatile, en fonction du nombre d'erreurs de rétention et de l'âge de rétention de la page.
Avantageusement, une page mémoire ayant des données valides n'est rafraîchie que si le temps de rétention restant est plus petit que la durée restante jusqu'au prochain accès à cette page mémoire.
Pour obtenir les résultats recherchés, des procédés tels que revendiqués sont proposés. En particulier, un procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, les étapes du procédé s'exécutant pendant une opération de lecture d'une page mémoire et comprenant :
- identifier par un code correcteur d'erreur des erreurs dans une page mémoire lue ; - calculer parmi les erreurs identifiées le nombre d'erreurs de rétention et d'erreurs de non-rétention, les erreurs de non-rétention comprenant notamment des erreurs de programmation ou de lectures répétées ;
- calculer l'âge de rétention de ladite page mémoire lue ;
- estimer le temps de rétention restant pour ladite page mémoire lue en fonction des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention précédemment calculés ;
- comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire ; et
- déterminer si ladite page mémoire lue doit être rafraîchie ou non en fonction du résultat de la comparaison.
Selon des modes de réalisation :
- l'étape de détermination du rafraîchissement de la page consiste à déterminer que la page doit être rafraîchie si le temps de rétention restant est plus petit que la valeur prédéfinie ; - l'étape d'estimation du temps de rétention restant comprend au moins une étape consistant à utiliser une loi statistique avec les paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention;
- la loi statistique utilisée est la loi du khi-carré ; - l'étape d'estimation du temps de rétention restant comprend au moins une étape consistant à obtenir une valeur d'un nombre d'erreurs de rétention maximum toléré pour ladite page ; l'étape de comparaison consiste à comparer le nombre d'erreurs de rétention maximum toléré au nombre d'erreurs de rétention calculé ; et l'étape de détermination du rafraîchissement consiste à déterminer que ladite page doit être rafraîchie si le nombre d'erreurs de rétention calculé est supérieur au nombre d'erreurs de rétention maximum toléré;
- le nombre d'erreurs de rétention maximum toléré correspond à la plus grande valeur du nombre d'erreurs de rétention pour laquelle le temps de rétention restant est plus grand que ladite valeur prédéfinie;
- l'étape d'estimation du temps de rétention restant consiste à obtenir une valeur d'un âge de rétention minimum toléré pour ladite page ; l'étape de comparaison consiste à comparer l'âge de rétention minimum toléré à l'âge de rétention calculé ; et l'étape de détermination du rafraîchissement consiste à déterminer que ladite page doit être rafraîchie si l'âge de rétention calculé est inférieur à l'âge de rétention minimum toléré ;
- l'âge de rétention minimum toléré correspond au plus petit âge de rétention pour lequel le temps de rétention restant est plus grand que ladite valeur prédéfinie ;
- l'étape d'estimation du temps de rétention restant consiste à lire une table de valeurs précalculées pour des combinaisons de paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention, et consiste à sélectionner une valeur stockée pour le nombre d'erreurs de rétention, le nombre d'erreurs de non-rétention et l'âge de rétention calculés pour ladite page ;
- la valeur sélectionnée est un temps de rétention restant ;
- la valeur sélectionnée est un nombre d'erreur de rétention maximum toléré ;
- la valeur sélectionnée est un âge de rétention minimum toléré ; - la table de valeurs précalculées contient des valeurs binaires représentatives de résultats de la comparaison de temps de rétention restant avec ladite valeur prédéfinie, ou de résultats de la comparaison de nombre d'erreurs de rétention avec le nombre d'erreurs de rétention maximum toléré, ou de résultats de la comparaison d'âge de rétention avec l'âge de rétention minimum toléré ;
- l'étape de calculer l'âge de rétention de ladite au moins une page mémoire consiste à lire une étiquette de temps associée à ladite page et à faire la différence entre l'état d'un compteur ayant fourni des étiquettes de temps aux pages mémoire et l'étiquette de temps lue pour ladite page.
L'invention couvre aussi un dispositif pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, le dispositif comprenant des moyens pour mettre en œuvre le procédé revendiqué dans ses différents modes de réalisation. En particulier, le dispositif comprend:
- un code correcteur d'erreur ayant une capacité de correction d'erreurs prédéfinie;
- un circuit pour identifier par le code correcteur d'erreur, des erreurs apparues lors du stockage de données dans une page mémoire ;
- un circuit apte à calculer parmi des erreurs identifiées, le nombre d'erreurs de rétention et d'erreurs de non-rétention dans ladite page mémoire, les erreurs de non-rétention comprenant notamment des erreurs de programmation ou de lectures répétées;
- un circuit apte à calculer l'âge de rétention de ladite page mémoire ;
- un circuit apte à estimer le temps de rétention restant pour ladite page mémoire en fonction des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention précédemment calculés ; - un circuit apte à comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire ; et
- un circuit apte à déterminer si ladite page mémoire doit être rafraîchie ou non en fonction du résultat de la comparaison.
Dans un mode de réalisation, le dispositif comprend de plus un circuit apte à rafraîchir ladite page.
L'invention porte aussi sur un système de stockage de données comprenant au moins une mémoire non-volatile reprogrammable ayant une pluralité de pages mémoire pour stocker des données, et au moins un dispositif tel que revendiqué pour contrôler le rafraîchissement de données dans ladite au moins une mémoire non-volatile reprogrammable.
Dans un mode de réalisation, le dispositif revendiqué est intégré à un contrôleur apte à gérer des opérations de lecture et écriture d'une pluralité de pages mémoire.
L'invention porte aussi sur un programme d'ordinateur qui comporte des instructions de code pour l'exécution du procédé pour contrôler le rafraîchissement de données dans des mémoires non- volatiles reprogrammables tel que revendiqué. L'invention peut être disponible sur un support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution du procédé revendiqué.
Description des figures Différents aspects et avantages de l'invention vont apparaître en appui de la description des modes préférés d'implémentation de l'invention mais non limitatifs, avec référence aux figures ci-dessous : • La figure 1 montre un schéma bloc d'un hôte et d'une carte mémoire ou un disque SSD permettant d'implémenter le dispositif de l'invention ;
• La figure 2 montre la structure interne d'une mémoire non-volatile dans un mode de réalisation ;
• La figure 3 montre un schéma bloc du dispositif de l'invention selon un mode de réalisation ;
• La figure 4 illustre un enchaînement d'étapes du procédé de l'invention selon un mode de réalisation ; · La figure 5 illustre un enchaînement d'étapes du procédé de l'invention selon une variante de réalisation ; et
• La figure 6 illustre un enchaînement d'étapes du procédé de l'invention selon une autre variante de réalisation.
Description détaillée de l'invention
La figure 1 montre de manière schématique un hôte 120 couplé à un système de stockage 1 10 permettant d'implémenter le dispositif de l'invention. Le système de stockage 1 10 peut être par exemple un disque SSD ou une carte mémoire. Dans l'exemple décrit, le système de stockage 1 10 est représenté comme comprenant une pluralité de mémoires non volatiles MNVs 1 12. Dans une variante d'implémentation, le système de stockage comprend une seule MNV. Le système de stockage 1 10 comprend aussi des interfaces de connexion 105 pour se connecter avec l'hôte. De manière bien connue de l'homme du métier, de telles interfaces peuvent être des connecteurs de type USB de l'anglais « Universal System Bus » ou encore de type SATA de l'anglais « Sériai Advanced Technology Attachment ». Le système de stockage 1 10 peut ainsi se connecter via le connecteur à l'interface correspondante de l'hôte 120 pour échanger des données selon différents protocoles, tels que les protocoles USB, SATA ou d'autres protocoles plus spécifiques de l'hôte.
Dans une variante de réalisation, le système de stockage 1 10 peut être une carte embarquée d'un système hôte, l'hôte pouvant par ailleurs accueillir une ou plusieurs cartes mémoires. Selon un autre mode d'implémentation, l'hôte 120 et le système de stockage 1 10 sont en communication sans fil et échangent selon des protocoles Wi-Fi de l'anglais « Wireless Fidelity ». L'hôte peut être tout système qui peut contenir des cartes mémoire ou disques SSD ou échanger des données avec des cartes mémoire ou des disques SSD. Ainsi, sans constituer une limitation, l'hôte 120 peut être un ordinateur personnel, fixe ou portable, incluant les tablettes, les téléphones portables, les Smartphones ou autres assistants personnels. L'hôte peut aussi être un serveur et comprendre des réceptacles pour accueillir une ou plusieurs cartes mémoire ou disques SSD. L'hôte peut aussi être un microcontrôleur ou un processeur intégré sur la même puce avec le système de stockage 1 10.
Le système de stockage 1 10 comprend un circuit de contrôle 1 1 1 comprenant des composants bien connus de l'homme du métier permettant de gérer des échanges de données et instructions entre les mémoires MNVs 1 12 et l'hôte 120 via des interfaces de communication hôte/mémoires, de gérer des opérations de lecture/écriture, de correction d'erreurs dans les mémoires via des codes de correction d'erreurs. Le circuit de contrôle 1 1 1 peut être un contrôleur SSD ou un contrôleur carte mémoire. Dans un mode de réalisation, le contrôleur 1 1 1 peut être implémenté comme un microcontrôleur. Dans un autre mode de réalisation, l'ensemble des composants du circuit de contrôle peut être implémenté comme un module dédié tel qu'un ASIC de l'anglais « Application Spécifie Integrated Circuit ». Dans un mode de réalisation, les mémoires non volatiles 1 12 peuvent être des mémoires de type flash. Dans une variante, les MNVs peuvent être des mémoires résistives émergeantes comme les mémoires PCRAM, de l'anglais « Phase-Change Random-Access Memory (RAM) », CBRAM de l'anglais « Conductive-Bridging RAM », ou M RAM de l'anglais « Magnetic RAM ».
Les MNVs 1 12 du système de stockage peuvent être implémentées sur des puces distinctes ou être intégrées avec le contrôleur 1 1 1 sur une même puce. Des circuits de correction d'erreurs (ECC) 1 14 peuvent être associés aux MNVs afin de corriger les erreurs apparues lors du stockage de données.
Le contrôleur 1 1 1 est couplé aux mémoires MNVs 1 12 via des bus ou canaux de communication 1 13. Selon des modes de réalisation, un bus peut être connecté à plusieurs MNVs. La figure 2 montre la structure interne d'une mémoire non volatile permettant d'opérer le procédé de l'invention. Une MNV 210 peut contenir un ou plusieurs blocs mémoire 21 1 -i, chaque bloc mémoire 21 1 -i ayant une ou plusieurs pages mémoire 212-ij. Il est courant qu'un bloc mémoire contienne des centaines de pages. Les pages d'un bloc mémoire sont écrites l'une après l'autre.
Une page mémoire contient des bits d'information relatifs à des données accessibles à l'utilisateur et des bits d'information redondante qui peuvent être utilisés pour la correction d'erreurs ou pour la gestion des données effectuée par le contrôleur. Les bits d'une page mémoire sont programmés et lus simultanément. Dans le cas d'une MNV de type flash, tous les bits d'un bloc mémoire sont effacés en même temps afin de permettre leur reprogrammation. Une opération d'écriture peut correspondre à une opération de programmation ou à une opération d'effacement suivie d'une opération de programmation.
Le principe général de l'invention repose sur une estimation du temps de rétention restant pour chaque page d'une mémoire non-volatile, en fonction du nombre d'erreurs dans la page et de son âge de rétention. Le procédé de l'invention permettant de contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables ayant une pluralité de pages mémoire pour stocker des données, va consister à calculer le nombre d'erreurs de rétention et d'erreurs de non-rétention dans au moins une page mémoire; à calculer l'âge de rétention de ladite au moins une page mémoire ; à estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et à déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant. En particulier, une page mémoire avec des données valides ne sera rafraîchie que si le temps de rétention restant est plus petit que la durée jusqu'au prochain accès à cette page mémoire, un intervalle de temps maximum entre deux opérations de lecture successives d'une page mémoire étant prédéfini. Ainsi, la fréquence de rafraîchissement des pages dépend du taux d'erreurs effectif qui affecte ces pages, et n'est pas forcément corrélée à la fréquence de lecture de ces pages mémoire. Avantageusement, comme une opération de lecture peut être beaucoup plus rapide qu'une opération de rafraîchissement, l'impact sur la performance d'un système de stockage peut être sensiblement réduit.
Par ailleurs, la probabilité de rafraîchissement d'une page devient négligeable quand les erreurs peuvent être gérées avec le code correcteur disponible même pour les plus longs temps de rétention garantis. La figure 3 montre un schéma bloc du dispositif 300 de l'invention selon un mode de réalisation. Le dispositif peut être implémenté dans le contrôleur 1 1 1 ou sur du matériel dédié, tel que par exemple un microcontrôleur ou un ASIC ajouté ou couplé au système de stockage 1 10. Le dispositif comprend un module de lecture/écriture 302 pour accéder aux pages mémoires, qui peut être celui du contrôleur 1 1 1 .
Un compteur 304 permet d'assigner une étiquette de temps à chaque bloc mémoire lors de la première opération de programmation (après une opération d'effacement ou de réinitialisation du bloc). L'étiquette de temps TS (« timestamp » selon l'anglicisme connu) associée à chaque bloc mémoire est prise en compte pour l'évaluation de l'âge de rétention TAGE des bits stockés. Dans un mode de réalisation alternatif, une étiquette de temps peut être assignée à chaque page.
Le dispositif comprend un module de calcul 306 permettant de calculer l'âge de rétention TAGE de l'ensemble des bits stockés dans un bloc mémoire. Avantageusement, en assignant une étiquette de temps au niveau d'un bloc mémoire pour éviter un surcoût de stockage, le procédé de l'invention permet de déterminer le rafraîchissement de données au niveau de chaque page mémoire du bloc mémoire. En effet, le procédé prend en compte le nombre d'erreurs au niveau de chaque page pour décider du rafraîchissement ou non de la page.
Le dispositif comprend un circuit de correction d'erreurs 310 (ECC) qui permet d'identifier les erreurs apparues lors du stockage de données dans une page et de les corriger à l'aide d'un code correcteur. Le circuit ECC a une capacité de correction d'erreur prédéfinie.
Le dispositif comprend un module de comptage d'erreurs ou décodeur d'erreurs 308 qui permet de compter les erreurs existantes sur une page, et de différencier les erreurs de rétention sR des autres types d'erreurs, comme les erreurs de programmation ou de lecture, ces autres types d'erreurs étant par la suite, appelées erreurs de non-rétention ENR. Dans un mode de réalisation, le décodeur d'erreurs et le correcteur d'erreurs sont un seul et même circuit.
Le dispositif comprend de plus un module d'estimation du temps de rétention restant 312 qui permet de calculer ou d'obtenir un temps de rétention restant TRET à partir des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention.
Dans un mode de réalisation, le module d'estimation comprend des moyens de calcul permettant de calculer en ligne une estimation du temps restant. Dans un autre mode de réalisation, le module d'estimation du temps de rétention consiste en une table comprenant des valeurs de temps de rétention restant précalculées. Les valeurs stockées sont calculées hors ligne pour différentes combinaisons des paramètres « nombre d'erreurs de rétention / nombre d'erreurs de non-rétention / âge de rétention ». Dans une autre variante de réalisation, le module d'estimation du temps de rétention restant permet d'obtenir ou stocker des valeurs de nombre d'erreurs de rétention maximum toléré £R MAX pour différentes combinaisons des paramètres « nombre d'erreurs de non-rétention / âge de rétention ». Dans une autre variante de réalisation, le module d'estimation du temps de rétention restant permet d'obtenir ou stocker des valeurs d'âge de rétention minimum toléré TAGE_MIN pour différentes combinaisons des paramètres « nombre d'erreurs de rétention / nombre d'erreurs de non- rétention ». Un module de décision 314 permet de déterminer si un rafraîchissement d'une page doit être opéré, en fonction du résultat produit par le module d'estimation 312.
La figure 4 illustre un enchaînement d'étapes du procédé 400 permettant de déterminer si un rafraîchissement des données stockées dans une page d'une mémoire non volatile doit être effectué. Le procédé 400 débute par une opération de lecture 402 d'une page dans une MNV. L'opération de lecture peut être déclenchée sur une requête reçue de l'hôte 120 ou sur une opération initiée par le contrôleur 1 1 1 , par exemple lors du management des données stockées à l'intérieur du système de stockage.
Pendant la lecture de la page, les erreurs qui étaient apparues lors du stockage préalable des données dans la page sont identifiées. Certaines peuvent être corrigées à l'aide d'un code correcteur (étape 404).
L'étape suivante 406 consiste à compter parmi les erreurs identifiées, le nombre d'erreurs de rétention ER et d'erreurs de non- rétention ENR. Dans un mode de réalisation, les étapes de comptage d'erreurs et de correction d'erreurs peuvent être réalisées simultanément. Dans le cas où la mémoire non volatile est une mémoire flash de type SLC, la différentiation des erreurs est faite en comparant les valeurs lues et les valeurs corrigées. Dans une telle mémoire, un bit est affecté par une erreur de rétention si la valeur lue est 1 et la valeur corrigée est 0. Dans le cas où la valeur lue est 0 et la valeur corrigée est 1 , il s'agit d'une erreur de non-rétention. Dans le cas d'une mémoire PCRAM de type SLC, un bit est affecté par une erreur de rétention si la valeur lue est 0 et la valeur corrigée est 1 . L'étape 406 permet d'obtenir le nombre d'erreurs de rétention ER et le nombre d'erreurs de non-rétention ENR qui affectent la page lue. Le procédé continue par une étape 408 de détermination de l'âge de rétention TAGE de la page lue. Dans un mode de réalisation, l'âge de rétention est obtenu en effectuant la différence entre l'état du compteur ayant fourni une étiquette au bloc mémoire hébergeant la page lue et l'étiquette de temps courante associée à la page lue. Dans une étape suivante 410, le procédé permet de déterminer le temps de rétention restant TRET en fonction des paramètres obtenus aux étapes précédentes qui sont l'âge de rétention TAGE, le nombre d'erreurs de rétention £R et le nombre d'erreurs de non-rétention £NR. Dans un mode de réalisation, des valeurs de temps de rétention restant TRET sont précalculées hors ligne pour une pluralité de combinaisons des paramètres « âge de rétention TAGE, nombre d'erreurs de rétention £R, nombre d'erreurs de non-rétention £NR ». Les valeurs sont stockées comme des métadonnées dans une table dédiée du système de stockage (table d'estimation), qui est accédée en ligne lors de la lecture d'une page. Il est à noter que les paramètres de nombre d'erreurs sR et ENR sont discrets, tandis que le paramètre d'âge de rétention TAGE est continu et peut par conséquent prendre une infinité de valeurs. Aussi, afin de diminuer le coût de stockage de la table des valeurs précalculées du temps de rétention restant TRET, une variante de réalisation consiste à ne considérer que des valeurs discrètes de l'âge de rétention TAGE en prenant un pas TAGE_STEP égal à TRET OU à une fraction du TRET, e.g., 1 /2, 1 /3 etc. La valeur du temps de rétention restant TRET qui correspondra à une valeur donnée de l'âge de rétention TAGE est alors recherchée dans la table à l'aide d'un index correspondant à la partie entière du rapport
Avantageusement, le calcul de l'estimation du temps de rétention restant TRET est fait en utilisant une loi statistique. Dans un mode de réalisation, le calcul consiste à utiliser la loi du khi-carré « χ2 » qui est connue pour calculer le temps moyen entre les pannes d'un produit quelconque, sur les paramètres de nombre d'erreurs de rétention et d'âge de rétention. L'homme du métier peut considérer utiliser tout calcul de type « temps moyen entre pannes » (« mean time to failure » en anglais), d'un produit en fonction du temps de test, du nombre d'échantillons testé et du nombre d'échantillons n'ayant pas passé le test. Pour estimer le temps de rétention, la loi statistique qui donne l'évolution du nombre des erreurs de rétention avec l'âge de rétention peut être connue, sans nécessairement connaître tous les paramètres qui gouvernent cette loi.
Dans un mode de réalisation, les erreurs de non-rétention dont le nombre peut augmenter avec l'âge de rétention du bloc mémoire, telles les erreurs dues à des lectures répétées dans un bloc mémoire complètement programmé, sont négligées par rapport aux erreurs de rétention.
A l'étape suivante 412, le procédé permet de comparer le temps de rétention restant TRET (qui a été calculé en ligne ou récupéré dans la table de valeurs précalculées) à une valeur prédéfinie TREAD_NEXT correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire. La valeur TREAD_NEXT peut être définie en fonction de la taille du système de stockage, de la capacité de calcul, des temps morts, et de l'application considérée. Une telle valeur peut être dans une plage allant de quelques semaines à quelques mois par exemple.
Un temps de rétention restant TRET plus petit que TREAD_NEXT, signifie que le nombre des erreurs qui vont s'accumuler jusqu'à la prochaine opération de lecture risque de devenir non-corrigeable, compte-tenu de la capacité de l'ECC. Le procédé permet alors (branche oui) de lancer un rafraîchissement de la page (étape 414). Après l'opération de rafraîchissement, le procédé retourne au début. Un temps de rétention restant TRET plus grand que TREAD_NEXT, signifie qu'il n'y a pas besoin d'un rafraîchissement des données, et le procédé retourne au début (branche non).
Dans un mode de réalisation, afin de réduire le coût du stockage de la table, chaque entrée de la table peut contenir directement le résultat de la comparaison d'un temps de rétention restant TRET avec TREAD_NEXT, i.e. la table peut contenir un seul bit par entrée, au lieu de contenir les valeurs de TRET, nécessitant plusieurs bits par entrée.
Dans une autre variante de réalisation, le coût du stockage de la table, peut être encore réduit, en tenant compte du fait que le temps de rétention restant TRET est une fonction décroissante selon la variable ER pour toute combinaison des variables TAGE et ENR. Il est alors possible de stocker dans la table, pour chaque combinaison de paramètres TAGE et £NR, un paramètre ER MAX correspondant au nombre d'erreurs de rétention maximum qui peut être encore toléré jusqu'à la prochaine lecture de la page mémoire sans épuiser la capacité de correction de l'ECC. Pour chaque combinaison de paramètres d'âge de rétention TAGE et de nombre d'erreurs de non-rétention ENR, la valeur du nombre d'erreurs de rétention maximum toléré ER_MAX correspond alors à la plus grande valeur du paramètre de nombre d'erreurs de rétention ER pour laquelle le temps de rétention restant TRET est plus grand que la valeur prédéfinie pour TREAD_NEXT-
Cette variante permet de stocker une table en 2 dimensions indexées selon les valeurs des paramètres TAGE et ENR, par rapport à la variante où la table stockée est en 3 dimensions indexées selon les valeurs de paramètres TAGE, ER et ENR.
La figure 5 illustre un enchaînement d'étapes 500 du procédé de l'invention dans une variante de réalisation de l'utilisation du paramètre d'erreurs de rétention maximum toléré £R MAX- Le procédé débute selon des étapes 502 à 508 identiques aux étapes 402 à 408 du procédé de la figure 4. Elles ne sont pas de nouveau décrites.
A l'étape suivante 510, le procédé permet d'obtenir un nombre d'erreurs de rétention maximum toléré ER MAX pour une page. La valeur de ER MAX peut être calculée en ligne ou de manière préférentielle être récupérée dans la table d'estimation du nombre d'erreurs de rétention maximum toléré. La valeur sélectionnée est celle correspondant à une valeur stockée pour les paramètres d'âge de rétention TAGE et de nombre d'erreurs de non-rétention ENR que ceux calculés, avec un temps de rétention restant correspondant à celui calculé, qui est supérieur à l'intervalle de temps maximal (TRET > TREAD_NEXT).
A l'étape suivante 512, le procédé permet de comparer le nombre d'erreurs de rétention Er qui a été obtenu suite au décodage par l'ECC de la page, au nombre d'erreurs de rétention maximum toléré ER MAX-
Un nombre d'erreurs de rétention ER plus grand que le nombre d'erreurs de rétention maximum toléré ER MAX, signifie que le nombre des erreurs qui peuvent être accumulées jusqu'à la prochaine opération de lecture de la page risque de devenir non-corrigeable. Le procédé permet alors que la page soit rafraîchie (étape 514). Après l'opération de rafraîchissement, le procédé retourne au début. Un nombre d'erreurs de rétention ER plus petit ou égal au nombre d'erreurs de rétention maximum toléré ER MAX, signifie qu'il n'y a pas besoin d'un rafraîchissement des données, et le procédé retourne au début (branche oui).
Dans une autre variante de réalisation, le coût du stockage de la table, peut aussi être réduit, en tenant compte du fait que le temps de rétention restant TRET est une fonction croissante relativement à la variable d'âge de rétention TAGE, pour toute combinaison des variables ER et ENR. Il est alors possible de stocker dans la table, pour chaque combinaison de paramètres Er et ENR, un paramètre TAGE_MIN correspondant à l'âge de rétention minimum pour lequel un nombre d'erreurs de rétention Er et un nombre d'erreurs de non-rétention ENR peuvent être tolérés. Ainsi, pour chaque combinaison de paramètres Er et ENR, la valeur de l'âge de rétention minimum toléré TAGE_MIN correspond au plus petit âge de rétention TAGE pour lequel le temps de rétention restant TRET est plus grand que la valeur prédéfinie pour TREAD_NEXT-
Cette variante permet de stocker une table en 2 dimensions indexées selon les valeurs des paramètres £R et £NR, par rapport à la variante où la table stockée est en 3 dimensions indexées selon les valeurs de paramètres TAGE, ER et ENR.
La figure 6 illustre un enchaînement d'étapes 600 du procédé de l'invention dans la variante de réalisation avec utilisation du paramètre d'âge de rétention minimum toléré TAGE_MIN- Le procédé débute selon des étapes 602 à 608 identiques aux étapes 402 à 408 du procédé de la figure 4. Elles ne sont pas de nouveau décrites.
A l'étape suivante 610, le procédé permet d'obtenir un âge de rétention minimum toléré TAGE_MIN pour une page. La valeur du paramètre XAGE_MIN peut être calculée en ligne ou de manière préférentielle être récupérée dans la table d'estimation de l'âge de rétention minimum toléré.
A l'étape suivante 612, le procédé permet de comparer l'âge de rétention TAGE calculé à l'étape 608 à l'âge de rétention minimum toléré
XAGE_MIN-
Un âge de rétention TAGE plus petit que l'âge de rétention minimum toléré TAGE_MIN, signifie que le nombre des erreurs qui peuvent être accumulées jusqu'à la prochaine opération de lecture de la page risque de devenir non-corrigeable. Le procédé permet alors que la page soit rafraîchie (étape 614). Après l'opération de rafraîchissement, le procédé retourne au début. Un âge de rétention TAGE plus grand ou égal à l'âge de rétention minimum toléré TAGE_MIN, signifie qu'il n'y a pas besoin d'un rafraîchissement des données, et le procédé retourne au début (branche oui). Ainsi, la présente description illustre une implémentation préférentielle de l'invention, mais n'est pas limitative. Des exemples sont choisis pour permettre une bonne compréhension des principes de l'invention et une application concrète, mais ne sont en rien exhaustifs et doivent permettre à l'homme du métier d'apporter des modifications et des variantes d'implémentation en conservant les mêmes principes.
L'invention peut s'implémenter à partir d'éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d'ordinateur exécuté par un processeur dédié ou par un contrôleur mémoire d'un système de stockage, et qui comprend des instructions pour exécuter les étapes des procédés dans leurs différents modes de réalisation.

Claims

Revendications
Procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, les étapes du procédé s'exécutant pendant une opération de lecture d'une page mémoire et comprenant :
- identifier par un code correcteur d'erreur des erreurs dans une page mémoire lue ;
- calculer parmi les erreurs identifiées le nombre d'erreurs de rétention et d'erreurs de non-rétention, les erreurs de non-rétention comprenant notamment des erreurs de programmation ou de lectures répétées ;
- calculer l'âge de rétention de ladite page mémoire lue ;
- estimer le temps de rétention restant pour ladite page mémoire lue en fonction des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non- rétention et d'âge de rétention précédemment calculés ;
- comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire ; et
- déterminer si ladite page mémoire lue doit être rafraîchie ou non en fonction du résultat de la comparaison.
Le procédé selon la revendication 1 dans lequel l'étape de détermination du rafraîchissement de la page consiste à déterminer que la page doit être rafraîchie si le temps de rétention restant est plus petit que la valeur prédéfinie. Le procédé selon la revendication 1 ou 2 dans lequel l'étape d'estimation du temps de rétention restant comprend au moins une étape consistant à utiliser une loi statistique avec les paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention.
4. Le procédé selon la revendication 3 dans lequel la loi statistique est la loi du khi-carré χ2.
Le procédé selon l'une quelconque des revendications 1 à 4 dans lequel l'étape d'estimation du temps de rétention restant consiste à obtenir une valeur d'un nombre d'erreurs de rétention maximum toléré pour ladite page ; l'étape de comparaison consiste à comparer le nombre d'erreurs de rétention maximum toléré au nombre d'erreurs de rétention calculé ; et l'étape de détermination du rafraîchissement consiste à déterminer que ladite page doit être rafraîchie si le nombre d'erreurs de rétention calculé est supérieur au nombre d'erreurs de rétention maximum toléré.
Le procédé selon la revendication 5 dans lequel le nombre d'erreurs de rétention maximum toléré correspond à la plus grande valeur du nombre d'erreurs de rétention pour laquelle le temps de rétention restant est plus grand que ladite valeur prédéfinie. Le procédé selon l'une quelconque des revendications 1 à 4 dans lequel l'étape d'estimation du temps de rétention restant consiste à obtenir une valeur d'un âge de rétention minimum toléré pour ladite page ; l'étape de comparaison consiste à comparer l'âge de rétention minimum toléré à l'âge de rétention calculé ; et l'étape de détermination du rafraîchissement consiste à déterminer que ladite page doit être rafraîchie si l'âge de rétention calculé est inférieur à l'âge de rétention minimum toléré.
Le procédé selon la revendication 7 dans lequel l'âge de rétention minimum toléré correspond au plus petit âge de rétention pour lequel le temps de rétention restant est plus grand que ladite valeur prédéfinie.
9. Le procédé selon l'une quelconque des revendications 1 à 8 dans lequel l'étape d'estimation du temps de rétention restant consiste à lire une table de valeurs précalculées pour des combinaisons de paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention, et consiste à sélectionner une valeur stockée pour le nombre d'erreurs de rétention, le nombre d'erreurs de non-rétention et l'âge de rétention calculés pour ladite page.
10. Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un temps de rétention restant.
1 1 . Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un nombre d'erreur de rétention maximum toléré.
12. Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un âge de rétention minimum toléré.
13. Le procédé selon la revendication 9 dans lequel la table de valeurs précalculées contient des valeurs binaires représentatives de résultats de la comparaison de temps de rétention restant avec ladite valeur prédéfinie, ou de résultats de la comparaison de nombre d'erreurs de rétention avec le nombre d'erreurs de rétention maximum toléré, ou de résultats de la comparaison d'âge de rétention avec l'âge de rétention minimum toléré.
14. Le procédé selon l'une quelconque des revendications 1 à 13 dans lequel l'étape de calculer l'âge de rétention de ladite au moins une page mémoire consiste à lire une étiquette de temps associée à ladite page et à faire la différence entre l'état d'un compteur ayant fourni des étiquettes de temps aux pages mémoire et l'étiquette de temps lue pour ladite page.
15. Un dispositif pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, le dispositif comprenant :
- un code correcteur d'erreur ayant une capacité de correction d'erreurs prédéfinie;
- un circuit pour identifier par le code correcteur d'erreur, des erreurs apparues lors du stockage de données dans une page mémoire ; - un circuit apte à calculer parmi des erreurs identifiées, le nombre d'erreurs de rétention et d'erreurs de non- rétention dans ladite page mémoire, les erreurs de non- rétention comprenant notamment des erreurs de programmation ou de lectures répétées;
- un circuit apte à calculer l'âge de rétention de ladite page mémoire ;
- un circuit apte à estimer le temps de rétention restant pour ladite page mémoire en fonction des paramètres de nombre d'erreurs de rétention, de nombre d'erreurs de non-rétention et d'âge de rétention précédemment calculés ;
- un circuit apte à comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d'une page mémoire ; et
- un circuit apte à déterminer si ladite page mémoire doit être rafraîchie ou non en fonction du résultat de la comparaison.
1 6. Le dispositif selon la revendication 15 comprenant de plus un circuit apte à rafraîchir ladite page.
17. Le dispositif selon la revendication 15 ou 1 6 comprenant de plus des moyens pour mettre en œuvre le procédé selon l'une quelconque des revendications 1 à 14.
18. Un système de stockage de données comprenant au moins une mémoire non-volatile reprogrammable ayant une pluralité de pages mémoire pour stocker des données, et au moins un dispositif selon l'une quelconque des revendications 15 à 17 pour contrôler le rafraîchissement de données dans ladite au moins une mémoire non-volatile reprogrammable.
19. Le système stockage de données selon la revendication 18 dans lequel ledit au moins un dispositif est intégré à un contrôleur apte à gérer les opérations de lecture et écriture de la pluralité des pages.
20. Programme d'ordinateur comportant des instructions de code pour l'exécution des étapes du procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables selon l'une quelconque des revendications 1 à 14, lorsque ledit programme est exécuté par un processeur.
21 . Support d'enregistrement lisible par un processeur sur lequel est enregistré un programme d'ordinateur selon la revendication 20.
EP18782028.7A 2017-10-18 2018-10-01 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables Withdrawn EP3698364A1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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