CN116635835A - Method, system and apparatus for flash endurance management - Google Patents

Method, system and apparatus for flash endurance management Download PDF

Info

Publication number
CN116635835A
CN116635835A CN202180083952.2A CN202180083952A CN116635835A CN 116635835 A CN116635835 A CN 116635835A CN 202180083952 A CN202180083952 A CN 202180083952A CN 116635835 A CN116635835 A CN 116635835A
Authority
CN
China
Prior art keywords
flash memory
health data
flash
data
write
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.)
Pending
Application number
CN202180083952.2A
Other languages
Chinese (zh)
Inventor
彼得·谢尔盖耶维奇·克里诺夫
维塔利·哈林
阿列克桑德·塔拉索夫
谢尔盖·伊利萨夫斯基
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116635835A publication Critical patent/CN116635835A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A flash durability management method is provided. The method comprises the following steps: acquiring health data of a flash memory; determining a time write estimate reflecting an amount of data written to the flash memory over a period of time; and determining the wear rate of the flash memory based on the health data. The method further comprises the steps of: updating a life model of the flash memory with the wear rate; determining a remaining lifetime of the flash memory based on the updated lifetime model; an additional write resource is determined based on the time write estimate and the remaining lifetime, the additional write resource being an additional amount of data that can be written to the flash memory without affecting its warranty period. The method improves the accuracy of the residual life estimation of the flash memory and can predict the future state of the flash memory.

Description

Method, system and apparatus for flash endurance management
Technical Field
The present invention relates generally to the field of data storage, and more particularly, to a method, system, and apparatus for flash endurance management.
Background
Currently, nonvolatile flash memory, such as NAND flash memory, is increasingly used for everyday tasks on servers, computers, and mobile devices. However, such flash memories do not allow changing the data recorded in the storage locations thereof, and require preliminary erasure of the entire block to change the data. In addition, there is a limit to the number of write operations (program/erase (PE) cycles per memory block) beyond which data cannot be protected, and flash memory typically reaches the end of its lifetime. Typically, the manufacturer or vendor of a given flash memory shares a number of PE cycles that is the normal range of tolerance for a given flash memory of a particular model. In addition, many integrated features are used to describe the PE, and are generally considered reliability indicators. Such integrated features include: the number of bytes written (terabytes written, TBW), i.e. the total amount of data that can be written to a given flash memory during its warranty period; device daily write quantity (device writes per day, DWPD), i.e., the number of times the total capacity of a drive can be written to each day during the drive's warranty period (maximum PE period); and an average write power (write amplification factor, WAF), i.e., the average ratio of writes committed to flash to writes from the host system. However, conventional methods use average TBW, DWPD, and WAF of a specific device (e.g., flash memory) in the calculation, and this calculation method is not sufficient and the accuracy is not high. For example, where the same amount of data is written, frequent writing of small blocks typically results in faster wear than infrequent writing of single blocks. Thus, it has been found in practice that all PE integration features (e.g., TBWs) can only protect normal users, but that flash life estimates for many other users are not accurate. For example, there are many users that can safely write data far in excess of the amount guaranteed by the vendor, and there are some heavy users (i.e., users that write large amounts of data) that are at risk due to abnormal writing of profiles, etc.
Currently, there are some conventional techniques to estimate flash life. However, these conventional techniques have some limitations. Some conventional techniques involve determining a write bandwidth target for a given flash memory, monitoring the write bandwidth of the flash memory, and then periodically adjusting the write bandwidth target based on the total amount of data written to the flash memory so that the total amount of data written does not exceed a threshold value over the life of the flash memory. However, this technique requires continuous and continuous monitoring of write bandwidth, which affects flash performance, and requires modification of hardware to implement. Thus, this technique is a resource intensive technique and is costly. Some other conventional techniques use machine learning to find the predicted lifetime of a given flash memory using various types of data. However, this conventional technique requires a large amount of data (experimental results) and thus can be applied to a certain extent only to well-known (studied or tested) flash memories, and is not applicable nor accurate to most flash memories. In addition, some conventional techniques measure the lifetime of flash memory by taking into account write power (write amplification factor, WAF) measurements of write flow values that have been used to indicate an abnormally amplified write flow value for flash memory. However, this technique assumes that the measured value of the delay is read, which adversely affects performance. Moreover, the WAF calculation algorithm, depending on the hardware implementation, only indicates the current state of the flash memory, considering the abnormally amplified write traffic, and does not predict future WAFs. There are also conventional techniques that can determine the erase time for each page of a given flash memory. This technique is very time consuming and can adversely affect the performance of a given flash memory.
Thus, in light of the above discussion, there is a need to overcome the above-described drawbacks associated with conventional methods and systems for estimating flash life cycles.
Disclosure of Invention
The present invention seeks to provide a method, apparatus and system for flash endurance management. The present invention seeks to provide a solution to the existing problem of how to estimate the remaining flash life of all types of flash users without affecting the performance of the flash and without requiring any hardware modifications to be performed for such estimation. It is an object of the present invention to provide a solution that at least partly overcomes the problems encountered in the prior art and to provide an improved method, device and system that enables efficient and full use of the storage space of a flash memory by estimating the remaining life of the flash memory with a higher accuracy, wherein the estimation can be performed with higher accuracy for different types of flash memory users without affecting the performance of the flash memory and without requiring any hardware modifications in the flash memory.
One or more of the objects of the invention are achieved by the solution provided in the attached independent claims. Advantageous implementations of the invention are further defined in the dependent claims.
In one aspect, the present invention provides a flash durability management method, comprising: acquiring health data of a flash memory, wherein the health data comprises average erasing period quantity of each memory block and total data written into the flash memory; determining a time write estimate reflecting an amount of data written to the flash memory over a period of time based on the health data and a runtime of the flash memory; updating a life model of the flash memory based on the health data; determining a remaining lifetime of the flash memory based on the updated lifetime model; an additional write resource is determined based on the time write estimate and the remaining lifetime, the additional write resource being an additional amount of data that can be written to the flash memory without affecting its warranty period.
The present method improves the accuracy of estimating the remaining lifetime of the flash memory, i.e. the amount of data that can be written to the flash memory during the lifetime, because the method takes into account user behavior and health data and predicts the future state of the flash memory device. Such estimation of remaining life may be made at any time during the use of the flash memory within the life of the flash memory and is not limited to being estimated only at the beginning of the life.
In one implementation, the method further includes measuring the runtime of the flash memory.
By measuring the runtime of the flash memory, a time write estimate is determined, which in turn enables determination of additional write resources of the flash memory.
In another implementation, the method further comprises: the health data of the flash memory is collected from one or more external devices including one or more flash memory drives of the same type, and the life model of the flash memory is updated based on the collected health data.
By collecting health data from multiple devices and updating a life model of the flash memory based on the collected health data, an estimate of the amount of additional data that can be written to the flash memory can be improved without affecting the warranty period of the flash memory.
In another implementation, the updating the lifetime model is performed by bayesian reasoning.
Because the health data of the flash memory is periodically collected, the method utilizes the data to adjust the life model through Bayesian reasoning, which further improves the estimation accuracy of the residual life of the flash memory.
In another aspect, the present invention provides an apparatus for flash endurance management, comprising: the health monitor is used for acquiring health data of the flash memory, wherein the health data comprises average erasing period quantity of each memory block and total data written into the flash memory; a write estimator for determining a time write estimate reflecting an amount of data written to the flash memory over a period of time based on the health data and a runtime of the flash memory; a simulator for updating a life model of the flash memory based on the health data; a endurance estimator for determining a remaining life of the flash memory based on the updated life model; an additional write resource is determined based on the time write estimate and the remaining lifetime, the additional write resource being an additional amount of data that can be written to the flash memory without affecting its warranty period.
The present apparatus provides an accurate estimate of the lifetime of the remaining flash memory, i.e. the amount of data that can be written to the flash memory during the lifetime. The device achieves all the advantages and technical effects of the method of the application.
In yet another aspect, the present application provides a system for flash endurance management, comprising: a device including a flash memory; a server for collecting the health data of the flash memory from the apparatus and/or one or more external devices comprising one or more flash memory drives of the same type, and updating the life model of the flash memory based on the collected health data.
The system achieves all the advantages and effects of the method of the application.
It should be appreciated that all of the above implementations may be combined. It should be noted that all devices, elements, circuits, units and modules described in the present application may be implemented in software or hardware elements or any type of combination thereof. All steps performed by the various entities described in this application, as well as the functions described to be performed by the various entities, are intended to indicate that the respective entity is adapted to, or is adapted to, perform the respective steps and functions. Although in the following description of specific embodiments, a particular function or step performed by an external entity is not reflected in the description of a specific detailed element of the entity performing the particular step or function, it should be clear to a skilled person that the methods and functions may be implemented in corresponding hardware or software elements or any combination thereof. It will be appreciated that features of the application are susceptible to being combined in various combinations without departing from the scope of the application as defined by the accompanying claims.
Additional aspects, advantages, features and objects of the invention will become apparent from the accompanying drawings and detailed description of illustrative implementations which are explained in connection with the following appended claims.
Drawings
The foregoing summary, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention. However, the invention is not limited to the specific methods and instrumentalities disclosed herein. Moreover, those skilled in the art will appreciate that the drawings are not drawn to scale. Wherever possible, like elements are designated by like numerals.
Embodiments of the invention will now be described, by way of example only, with reference to the following figures, in which:
FIG. 1 is a flow chart of a flash endurance management method provided by an embodiment of the present invention;
FIGS. 2A and 2B are block diagrams of an apparatus for flash endurance management provided by an embodiment of the present invention;
FIG. 3 is a block diagram of a system for flash endurance management provided by an embodiment of the present invention;
FIG. 4 is an exemplary flow chart of a flash endurance management process in a device supporting a method or apparatus for flash endurance management provided by an embodiment of the present invention;
FIG. 5 is a graphical representation provided by an embodiment of the present invention depicting a user's dynamic V CE Distribution with average V CE And a normal distribution to show a Cycle of Erase (CE) growth rate of each block of the flash memory;
FIG. 6 is a flowchart describing user V as part of Bayesian reasoning provided by an embodiment of the present invention CE A graphical representation of a desired a priori distribution of (c);
fig. 7 is a graphical representation of the expected rate of erase Cycle (CE) growth and the actual rate of erase Cycle (CE) growth of a flash memory provided by an embodiment of the present invention.
In the drawings, the underlined numbers are used to denote items where the underlined numbers are located or items adjacent to the underlined numbers. The non-underlined numbers are associated with items identified by lines associating the non-underlined numbers with the items. When a number is not underlined and has an associated arrow, the number without the underline is used to identify the general item to which the arrow points.
Detailed Description
The following detailed description illustrates embodiments of the invention and the manner in which the embodiments may be implemented. While some modes for carrying out the invention have been disclosed, those skilled in the art will recognize that other embodiments for carrying out or practicing the invention may also exist.
Currently, existing methods use metrics such as average number of written bytes (terabytes written, TBW), device daily write capacity (device writes per day, DWPD), and average write amplification (write amplification factor, WAF) to estimate the lifetime of flash memory, which is not yet sufficient, resulting in low accuracy. It can be observed that a problem with the average TBW, DWPD, WAF etc. indicators provided by the suppliers or manufacturers is that these indicators depend on a number of parameters. It is also observed that in practice these parameters affecting flash lifetime include write profiles, available free space, temperature, firmware algorithms, such as garbage collection, wear leveling, compression, headroom, etc., which are not fully considered in the estimation. For example, the wear caused by frequent writing of small blocks in a flash memory will typically wear out faster than the same amount of data written rarely by a single block in the same flash memory. This means that all program/erase (PE) integration features of TBW etc. are provided to ensure an average "user". In this context, the term "user" refers to any agent that uses a NAND flash memory device, such as a human user of a portable device (e.g., a smart phone, tablet, notebook, smart bracelet, or smart watch), a personal computer, a server, any such device. For example, there are many users that can safely write data far in excess of the amount guaranteed by the manufacturer (vendor), and there are some heavy users (i.e., users that write large amounts of data) that are at risk due to abnormal write profiles, etc.
The present invention provides an improved method, system, and apparatus for flash endurance management that improves the accuracy of estimating the remaining flash life, which indicates the amount of data that can be written to flash during the flash life. This accurate estimation of the remaining life may be done at any time during the life of the flash memory. The disclosed methods, apparatus and systems do not use manufacturer or vendor provided averages TBW, DWPD, WAF, but rather use user behavior (e.g., maximum PE) and detailed health information of a particular device without any impact on the input/output (I/O) stream performance (e.g., latency and bandwidth) of the flash memory. Furthermore, the disclosed method is applicable to conventional storage devices (off-the-shelf flash) without requiring hardware modifications.
Fig. 1 is a flowchart of a flash durability management method according to an embodiment of the present invention. A method 100 is shown. The method 100 is performed in an apparatus such as that depicted in fig. 2A and 2B. The method 100 includes steps 102 to 112.
The flash endurance management method 100 is capable of accurately estimating the remaining flash life, i.e., the amount of data that can be written to a device (i.e., flash) during the life of the device (i.e., flash). Such accurate estimation of remaining life may be accomplished at any time during the life of the flash memory. Thus, the method 100 enables many users to write more data than the vendor of flash memory guarantees and protects the exact writing of severe users (i.e., users writing large amounts of data) that are at risk due to abnormal writing profiles, etc., thereby increasing the life of the flash memory.
In step 102, the method 100 includes obtaining health data of the flash memory, the health data including an average erase cycle amount per memory block and a total amount of data written to the flash memory. The method 100 includes obtaining health data for determining the health status of the flash memory, identifying how many device resources (i.e., flash memory resources) have been used in making such a determination over the life of the flash memory, and the life status of the flash memory. In one example, the erase Cycle (CE) amount of each memory block refers to the period in which the contents of the non-empty blocks of the flash memory are changed. The maximum guaranteed CE value is provided by the manufacturer or vendor. The average erase cycle amount per memory block with the maximum CE value may provide accurate life prediction of the flash memory. The average erase cycle amount per memory block may also be referred to as the average erase Cycle (CE) growth rate per block. The CE may also be referred to as a program/erase (PE) cycle for each block. In one example, the total amount of data written to flash (HOSTW) refers to the size of all data that has been written to flash. Health data of the flash memory is acquired by the health monitor. In contrast to conventional methods, the method 100 does not use average write terabytes (terabytes written, TBW), device daily write quantity (device writes per day, DWPD), and average write amplification (write amplification factor, WAF) provided by the vendor, but rather uses health data already provided by the flash interface function. It is beneficial to obtain health data of the flash memory without involving any modification of the presentation hardware or external hardware to the flash memory. In one example, the health data is provided by a flash interface function. Health data may also be used for purposes such as daily write estimation, lifetime model adjustment, etc.
In one example, the average rate of CE increase over three years is represented by equation (1) given below.
Wherein, the liquid crystal display device comprises a liquid crystal display device,
V CE refers to the average rate of CE increase over three years,
CE 3 years refers to the erase cycle of each block within three years,
HOSTW 3 years refers to the total amount of data written to flash memory over three years.
In the above example, since V cannot be calculated before the end of the third year CE The mathematical model can thus be applied to estimate V at any time based on the dynamic speed of CE growth and the static speed of CE growth CE . It should be understood that the term "3 years" is used in this example to refer to life expectancy, but life expectancy may exceed 3 years, such as 5 years or other life expectancy in some other implementations. The dynamic rate of CE growth is calledIt is to use the V on the specific flash memory in the using process of the specific flash memory CE Is a function of the measured value. The static rate of CE growth is called +.>Is calculated based on offline statistics.
In practice, in a device, a flash memoryIs affected by a number of random factors, so it is not equal to true V CE . In other words, every measurement +.>Acquisition of V CE And some noise. Thus, differences are considered in the present invention. The difference is represented by equation (2) given below.
Wherein, the liquid crystal display device comprises a liquid crystal display device,
refers to->And true V CE The difference between the two,
V CE refers to the true rate of CE growth,
refers to the use of V on a specific flash memory during the use of the specific flash memory CE Is a measurement of (a).
Is calculated based on an analysis that includes the user V before any particular data is obtained from a given flash memory CE Is a prior distribution of the expectation of (a). Every time get +.>User V at the new measurement of (2) CE And the expectations of (2) will also vary. Thus, if->Higher than V CE Is expected to be even higher V CE If->Less than V CE Is expected to be further smaller V CE
In step 102, there are several methods to obtain health data of the flash memory. According to one example, health data for a flash memory may be obtained from a device that includes the flash memory. According to another example, health data of a flash memory may be obtained from a device including the flash memory and one or more other devices including flash drives of the same type. According to another example, health data of a flash memory may be obtained from one or more other devices including flash drives of the same type. Health data from one or more other devices is used as all or part of the health data of the flash memory to update the life model of the flash memory. Such health data can adjust the lifetime model of the subsequent flash memory. In one example, the server may receive health data from one or more other devices and calculate such health data to enable adjustment of a life model of the flash memory. Collecting health data enables simulated analysis data using the same model algorithm. This analysis may detect flash memory users that are at risk, for example, due to their write profile, and detect flash memory models that are at risk, for example, due to their design. Thus, collecting health data from multiple devices and updating a life model of the flash memory based on the collected health data can provide a more accurate amount of additional data that can be written to the flash memory without affecting warranty period. Further, life risks associated with the current usage pattern of the flash memory may also be predicted based on health data collected from the plurality of devices.
In step 104, the method 100 further includes determining a temporal write estimate reflecting an amount of data written to the flash memory over a period of time based on the health data and the runtime of the flash memory. The time write estimate can identify the amount of data written to the flash memory over a period of time, such as 24 hours (i.e., daily). In one example, method 100 includes calculating an average input-output (IO) amount that an Operating System (OS) and a mobile device user write to flash memory together each day. Since the time write estimate is received from healthy data, no modification of the current hardware is required. The runtime of the flash memory herein refers to the total time that the storage device with the flash memory switches to active mode, i.e., the time that the operating system of the storage device is on and not suspended, including the time that the storage device microcontroller is idle without read and write requests, but is in an active state, and ready to process requests from the operating system or internal logic (e.g., garbage collection requests from timer interrupts). The time-to-write estimate is determined based on the health data and the runtime of the flash memory to be able to estimate the remaining life of the flash memory at any point in the life of the flash memory.
In step 106, the method 100 further includes updating a life model of the flash memory based on the health data.
Alternatively, if the health data is from a device that includes flash memory, updating may include determining a wear rate of the flash memory based on the health data, and then updating the life model based on the wear rate. The continuous collection of wear rates provides an estimate of wear rates until the end of the warranty period of the flash memory. In one example, flash wear occurs because all bits in a flash block need to be erased first before new data can be written into the block. Furthermore, flash blocks can only be erased and written a defined number of times. The wear rate of flash memory may refer to the rate at which flash memory (and in particular flash blocks) are erased and written to. In other words, since a flash block can only be erased and written a defined number of times, the wear rate may be the number of times the flash has been erased and written relative to the defined number of times (currently). In one example, the wear caused by writing small blocks frequently will typically wear out faster than writing the same amount of data rarely to a single block. The wear rate is continuously adjusted based on the obtained health data. The method 100 uses existing flash health parameters (i.e., health data) to identify wear rates, and therefore, no additional hardware modifications are required. Thus, the present method 100 may be implemented on any existing flash memory.
Such a life model based on wear rate update may also be referred to as an adaptive life model. The lifetime model is updated to smoothly employ device behavior changes (i.e., user behavior changes that operate the flash memory) throughout the lifetime of the flash memory. The lifetime model of the flash memory is used to estimate lifetime, i.e. the duration until the flash memory can be used. In one example, the estimation of lifetime may be used to plan future use of the flash memory by a user, acquire another flash memory in time before the lifetime of the current flash memory approaches its end, and so on.
Alternatively, if all or part of the health data is from one or more other devices, the lifetime model update may be based on wear rate and/or other parameters obtained from the health data.
Alternatively, the updating may be performed one or more times, e.g., based on health data from a device comprising flash memory, and updated again based on health data from one or more other devices, and vice versa.
In step 108, the method 100 further includes determining a remaining lifetime of the flash memory based on the updated lifetime model. The remaining life of the flash memory is determined to be able to determine the amount of additional data that can be written to the flash memory without the risk of reaching the end of life of the flash memory. Thus, the remaining lifetime enables many users to write more data than the vendor of flash memory guarantees, and protects some heavy users (i.e., users who write large amounts of data) that are at risk due to abnormal writing profiles, etc., from accurately writing, thereby increasing the lifetime of flash memory. Since the remaining life of the flash memory is based on the updated life model, the remaining life may be estimated frequently as needed.
In step 110, the method 100 further includes determining additional write resources based on the time write estimate and the remaining lifetime, the additional write resources being an additional amount of data that can be written to the flash memory without affecting its warranty period. The purpose of the additional write resources is to ensure a defined number of years (e.g., at least 3 years) of flash life and to support efficient use of storage resources by the operating system. The present method 100 is able to determine additional write resources by taking into account the user write profile (through the time write estimate and the remaining lifetime), and thus the method 100 determines additional write resources that are very user specific to increase the amount of data that each user can write to the flash memory without affecting the corresponding warranty period. Method 100 has no impact (i.e., no delay) on the input-output (IO) flow performance of the flash memory. Thus, the user can store data in the flash memory at the same time and determine additional write resources without any delay.
According to one embodiment, the method 100 further comprises measuring the runtime of the flash memory. The runtime of the flash memory is measured to determine the time interval between the user providing data for storage in the flash memory and the flash memory storing data in its storage space. In one example, a timer may be used to measure run time. By measuring the runtime of the flash memory, a time write estimate is determined, which in turn enables determination of additional write resources of the flash memory.
In method 100, according to one embodiment, the lifetime model is updated by Bayesian reasoning. Since the health data of the flash memory is periodically collected, the present method 100 uses this data to adjust the life model by Bayesian reasoning, which further suggests
The accuracy of the estimation of the remaining life of the flash memory is improved. Bayesian reasoning is used to support updating the lifetime model based on periodically collected health data. Taking bayesian reasoning as an example herein, any other mathematical model may be used. The updated life model dynamically reflects changes in wear patterns of the flash memory due to various reasons such as the operating characteristics of the flash memory and its subsystems, available free space, ambient temperature, the task spectrum that the user is to solve on the flash memory, and the like, by bayesian reasoning.
In one example, method 100 of the present invention may also be used with SWAP memory, which is a storage medium that temporarily stores currently inactive data. In this case, lifetime will be controlled and guaranteed based on the warranty period of the SWAP memory. In this case, method 100 includes determining a total number of bytes remaining written (total bytes write, TBW) calculation based on the health data and bayesian reasoning of the SWAP memory, determining a predicted regular Input-Output (IO) based on the health data, and determining totalshapio= (tbw_left-predicted_user_io), which is the amount of additional data that can be written to the SWAP memory without risk of disabling the SWAP memory before the warranty period expires.
The remaining total number of bytes written (total bytes write, TWB) calculation is determined based on Bayesian reasoning, which uses information collected by the test version user as an initial value and transitions smoothly from the initial value to a measurement value taken on SWAP memory. The remaining total number of bytes written (total bytes write, TWB) is given by equation (3) expressed below.
Wherein, the liquid crystal display device comprises a liquid crystal display device,
tbw_left refers to the total number of bytes remaining written (total bytes write, TBW),
CE MAX refers to the maximum erase period of each block,
CE CURRENT refers to the current erase cycle of each block,
sum sigma 0 At each measurement +.>And then updated on the SWAP memory,
cemax_reserve refers to the reliability and parameters that avoid SWAP memory crashes a few days before 3 years.
Modeling speed of CE growthExpressed by equation (4), dispersion +.>Expressed by equation (5) given below.
Wherein, the liquid crystal display device comprises a liquid crystal display device,
refers to the rate of CE change measured on the SWAP memory,
refers to the mathematical expectation and dispersion of a priori distributions,
d refers to the measurement value of each userIs used for the dispersion degree of the (a),
c means determining V ce A parameter of the degree to which the estimation is overestimated.
Configuration parameters d and c may be based on offline analysis of big data and updated from the cloud (i.e., server) of the particular storage device used on the handset, which supports flexible control of TBW calculation.
For the non-curve case, totalshapio= (tbw_left-predicted_user_io) is represented by equation (6) given below.
DailySwapIO = (TBW_left – predicted_user_io) / days_left_till_3years (6)
Wherein, the liquid crystal display device comprises a liquid crystal display device,
the predicted_user_io is calculated using an exponential moving average, the later values have a greater weight, and the days_left_till3 yes is calculated based on time_on.
In the non-curvilinear case, the predicted_user_io includes an initial period: 8 days-35 GB per day based on big data; the next 7 days: the same value as the initial period to accumulate enough data to calculate an average daily IO; the average value is calculated using an exponential moving average-the later value has a greater weight.
For the curve case, totalsoapio= (tbw_left-predicted_user_io) is represented by equation (7) given below.
In the case of a curve, the predicted_user_io includes an initial period: 7 days based on big data; the next 7 days: the same value as the initial period to accumulate enough data to calculate an average daily IO; the average value is calculated using an exponential moving average-the later value has a greater weight.
In this case, F is a curve function so that the model is exchanged more for the user at the beginning. The curve function is represented by equation (8) given below.
In another aspect, a computer program product is provided that includes a non-transitory computer readable storage medium storing computer program code executable by a processor to perform the method 100. Examples of implementations of the non-transitory computer-readable storage medium include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (random access memory, RAM), read-only memory (ROM), hard Disk Drive (HDD), flash memory, secure Digital (SD) card, solid-state drive (SSD), computer-readable storage medium, and/or CPU cache memory. The computer readable storage medium for providing non-transitory memory may include, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
The present method 100 provides an accurate estimate of the lifetime of the remaining flash memory, i.e., the amount of data that can be written to the flash memory during the lifetime. Such accurate estimation of remaining life may be accomplished at any time during the life of the flash memory. The present method 100 uses health data provided by standard flash interface features already present in flash memory. Thus, estimating the remaining flash life by the present method 100 enables all types of users, such as light users writing small amounts of data and heavy users writing large amounts of data, to efficiently utilize the remaining flash. Compared to conventional methods, the conventional methods estimate the remaining flash lifetime based on the average number of written bytes (terabytes written, TBW), device daily write amount (device writes per day, DWPD), and write amplification (write amplification factor, WAF) provided by the flash memory vendor, thereby protecting only the average user. Optionally, the method 100 includes updating a life model of the flash memory with the wear rate, so that user writing behavior is considered each time the remaining flash memory life is estimated. In addition, the present method 100 is applicable to conventional flash memory without requiring hardware modification. Advantageously, the present method 100 has no impact on input-output (IO) flow performance and therefore no delay.
Fig. 2A is a block diagram of an apparatus for flash endurance management provided by an embodiment of the present invention. An apparatus 200 is shown in connection with fig. 2A and 2B. The apparatus 200 includes a health monitor 202, a write estimator 204, a simulator 206, and a durability estimator 208. In one implementation, the apparatus 200 further includes a timer 210. Also shown is a flash memory 212 communicatively coupled to the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, and the timer 210. In one implementation, flash memory 212 may be part of device 200 that estimates the remaining flash life. In another exemplary implementation, the flash memory 212 may be provided in another device, wherein the apparatus 200 is communicatively coupled to the device including the flash memory 212.
The apparatus 200 is used to accurately estimate the remaining flash life, i.e., the amount of data that can be written to a device (i.e., flash memory 212) during the life of the device. Such accurate estimation of remaining life may be accomplished at any time during the life of flash memory 212. Thus, the apparatus 200 enables many users to write more data than the vendor of the flash memory 212 guarantees and protects the exact writing of serious users (i.e., users writing large amounts of data) that are at risk due to abnormal writing profiles, etc., thereby increasing the life of the flash memory 212.
The health monitor 202 is configured to obtain health data of the flash memory 212, as described above in step 102. The health data includes the average erase cycle amount per memory block and the total amount of data written to the flash memory 212. The health monitor 202 is used to obtain health data for monitoring the status of the flash memory 212, identify how much device resources (i.e., flash memory resources) have been used, and how close the flash memory 212 is to the end of its lifetime. The average erase cycle amount per memory block with the maximum CE value may provide accurate life prediction of the flash memory 212. It is beneficial to obtain health data of the flash memory 212 without involving any modification of the hardware or external hardware presented to the flash memory 212. In one example, the health data is provided by a flash interface function.
The write estimator 204 is configured to determine a temporal write estimate reflecting an amount of data written to the flash memory 212 over a period of time based on the health data and the runtime of the flash memory 212. The time write estimate can identify the amount of data written to the flash memory 212 over a period of time, such as 24 hours (i.e., daily). Since the time write estimate is received from healthy data, no modification of the current hardware is required. The write estimator 204 determines a temporal write estimate based on the health data and the runtime of the flash memory 212 to be able to estimate the remaining life of the flash memory 212 at any point in the flash memory life.
Simulator 206 is configured to update the life model of flash memory 212, as described above in step 106. Optionally, the simulator 206 continuously collects the wear rate to provide an estimate of the wear rate until the end of the warranty period of the flash memory 212. The wear rate is continuously adjusted based on the obtained health data. Simulator 206 uses existing flash health parameters (i.e., health data) to identify wear rates, thus requiring no additional hardware modifications. Thus, the present apparatus 200 may be implemented on any existing flash memory. The lifetime model is updated to smoothly employ device behavior changes (i.e., flash behavior changes) throughout the lifetime of the flash memory 212. The lifetime model of the flash memory 212 is used to estimate lifetime, i.e., the duration until the flash memory 212 can be used.
The endurance estimator 208 is configured to determine a remaining life of the flash memory 212 based on the updated life model, and to determine additional write resources based on the time write estimate and the remaining life, the additional write resources being an additional amount of data that can be written to the flash memory 212 without affecting its warranty period. The remaining life of the flash memory 212 is determined to be able to determine the amount of additional data that can be written to the flash memory 212 without the risk of reaching the end of life of the flash memory 212. Thus, the remaining lifetime enables many users to write more data than the vendor of flash memory 212 guarantees, and protects the exact writing of serious users (i.e., users writing large amounts of data) that are at risk due to abnormal writing profiles, etc., thereby increasing the lifetime of flash memory 212. Since the remaining life of flash memory 212 is based on the updated life model, the remaining life may be estimated frequently as needed. The purpose of the additional write resources is to ensure a flash lifetime of at least 3 years and to support efficient use of storage resources by the operating system. The apparatus 200 is able to determine additional write resources by taking into account the user write profile (through the time write estimate and the remaining lifetime), and thus the apparatus 200 determines additional write resources that are very user specific to increase the amount of data that each user can write to the flash memory 212 without affecting the corresponding warranty period. The device 200 has no impact (i.e., no delay) on the input-output (IO) flow performance of the flash memory 212.
The flash memory 212 may comprise suitable logic, circuitry, and interfaces that may be operable to store data received from one or more user devices. In one example, flash memory 212 may store received data even in the absence of electricity, i.e., flash memory 212 is a non-volatile flash memory, such as a NAND flash memory.
According to one embodiment, the apparatus 200 further comprises a timer 210, the timer 210 being used to measure the run time of the flash memory 212. The timer 210 is used to measure the time interval between the user providing data for storage in the flash memory 212 and the flash memory 212 storing data in its memory space. The running time of the flash memory 212 is measured by the timer 210 to determine a time write estimate, which is necessary to determine additional write resources of the flash memory 212.
According to one embodiment, simulator 206 is configured to update the life model via Bayesian reasoning. As the health data of flash memory 212 is periodically collected, simulator 206 uses the data to adjust the life model through Bayesian reasoning. Bayesian reasoning is used to support updating the lifetime model based on periodically collected health data. Taking bayesian reasoning as an example herein, any other mathematical model may be used.
In an exemplary implementation, the health monitor 202, the write estimator 204, the simulator 206, the durability estimator 208, and the timer 210 are implemented as software modules. In another exemplary implementation, the health monitor 202, the write estimator 204, the simulator 206, the durability estimator 208, and the timer 210 may be implemented as dedicated circuits in the apparatus 200.
The present apparatus 200 provides an accurate estimate of the lifetime of the remaining flash memory, i.e., the amount of data that can be written to the flash memory during the lifetime. Such accurate estimation of remaining life may be accomplished at any time during the life of the flash memory. The present device 200 uses health data provided by standard flash interface features already present in the flash memory 212. Thus, estimating the remaining flash life by the present apparatus 200 enables all types of users, such as a light user writing small amounts of data and a heavy user writing large amounts of data, to efficiently utilize the remaining flash. Compared to conventional devices, conventional devices estimate the remaining flash life based on the average number of written bytes (terabytes written, TBW), device daily write amount (device writes per day, DWPD), and write amplification (write amplification factor, WAF) provided by the flash memory 212 vendor, thereby protecting only the average user. The present apparatus 200 is used to update the life model of the flash memory 212 with the wear rate, thus taking into account the user writing behavior each time the remaining flash memory life is estimated. In addition, the present device 200 is suitable for conventional flash memory without requiring hardware modification. Advantageously, the present apparatus 200 has no impact on input-output (IO) flow performance and therefore no delay.
Fig. 2B is a block diagram of various components of an apparatus for flash endurance management provided by another embodiment of the present invention. An apparatus 200 is shown in connection with fig. 2B. In this case, the apparatus 200 includes a computing device 214A having a flash drive 216A in addition to the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, and the timer 210. Also shown is a processor 218 and a network interface 220, as well as a flash memory 212. The processor 218 is communicatively coupled to the health monitor 202, the write estimator 204, the simulator 206, the durability estimator 208, and the timer 210.
According to one embodiment, the apparatus 200 further includes a computing device 214A having a flash drive 216A. The computing device 214A may comprise suitable logic, circuitry, and interfaces that may be used to install and operate the flash drive 216A. Flash drive 216A is used to enable one or more users to store, backup, or transfer data to flash memory 212. In one example, computing device 214A may also include other software drivers to enable communication between apparatus 200 and flash memory 212 to obtain health data of flash memory 212.
The processor 218 is configured to provide the health data of the flash memory 212 to the health monitor 202 and to provide the health data to the server to update the life model based on the health data received from the other flash memories. In one implementation, the processor 218 is configured to execute instructions stored in the flash memory 212. In one example, the processor 218 may be a general purpose processor. Other examples of processor 218 may include, but are not limited to, a microprocessor, a microcontroller, a complex instruction set computing (complex instruction set computing, CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (reduced instruction set, RISC) processor, a very long instruction word (very long instruction word, VLIW) processor, a central processing unit (central processing unit, CPU), a state machine, a data processing unit, and other processors or control circuits. Further, processor 218 may refer to one or more separate processors, processing devices, processing units that are part of a machine (e.g., apparatus 200). In one implementation, the processor 218 may execute various modules, such as the health monitor 202, the write estimator 204, the simulator 206, the durability estimator 208, and the timer 210, to enable these modules to perform their corresponding functions.
The network interface 220 may comprise suitable logic, circuitry, and/or interfaces that may be operable to communicate with one or more external devices (e.g., servers). Examples of the network interface 220 may include, but are not limited to, an antenna, a telematics unit, a Radio Frequency (RF) transceiver, one or more amplifiers, one or more oscillators, a digital signal processor, a CODEC (coder-decoder) chipset, and/or a subscriber identity module (subscriber identity module, SIM) card.
Thus, the present apparatus 200 provides an accurate estimate of the remaining flash life, which may be done at any time during the flash life. The present device 200 uses health data provided by standard flash interface features already present in the flash memory 212. Thus, estimating the remaining flash life by the present apparatus 200 enables all types of users, such as a light user writing small amounts of data and a heavy user writing large amounts of data, to efficiently utilize the remaining flash.
Fig. 3 is a block diagram of a system for flash endurance management provided by an embodiment of the present invention. A system 300 is shown in connection with fig. 3. The system 300 includes the apparatus 200 and a server 302 connected via a network 304. Also shown are a plurality of devices 214B-214N including flash drives 216B-216N. Flash memory 212 is also shown. The apparatus 200 includes a health monitor 202, a write estimator 204, a simulator 206, a durability estimator 208, and a timer 210.
The server 302 may comprise suitable logic, circuitry, interfaces or code that may be operable to store, access, or manage health data received from the apparatus 200 and one or more of the plurality of devices 214B-214N. In one example, server 302 may include components such as memory, processors, network adapters, etc. for storing, accessing, or managing health data. Server 302 is connected to apparatus 200 and one or more external devices 214B-214N through network 304.
Network 304 includes a medium (e.g., a communication channel) through which servers communicate with apparatus 200 and one or more external devices 214B-214N. The network 304 may be a wired or wireless communication network. Examples of network 304 may include, but are not limited to, a wireless fidelity (wireless fidelity, wi-Fi) network, a local area network (local area network, LAN), a wireless personal area network (wireless personal area network, WPAN), a wireless local area network (wireless local area network, WLAN), a wireless wide area network (wireless wide area network, WWAN), a cloud network, a long term evolution (long term evolution, LTE) network, traditional telephone service (plain old telephone service, POTS), metropolitan area network (metropolitan area network, MAN), and/or the internet.
In operation, the server 302 is configured to collect health data of the flash memory 212 from the apparatus 200 and/or one or more other devices 214B-214N including the same type of flash drives 216B-216N (as described above in step 102), and update a life model of the flash memory 212 based on the collected health data (as described above in step 106). Health data is received for the plurality of devices 214B-214N to enable adjustment of a life model of the flash memory 212 and other subsequent flash memories. Collecting health data enables simulated analysis data using the same model algorithm. The server 302 is used to analyze the health data so that flash memory 212 users that are at risk, for example, due to their writing of a configuration file, can be detected, and flash memory 212 models that are at risk, for example, due to their design can be detected. The plurality of devices 214B-214N including flash drives 216B-216N may be associated with respective apparatuses (e.g., apparatus 200 of the present invention) and respective flash memories (e.g., flash memory 212). By collecting health data from the plurality of devices 214B-214N and updating the age model of the flash memory 212 based on the collected health data, a more accurate amount of additional data can be provided that can be written to the flash memory 212 without affecting the warranty period of the flash memory 212.
The apparatus 200 is configured to determine a time write estimate (as described above in step 104), determine a remaining lifetime of the flash memory based on the updated lifetime model (as described above in step 108), and determine additional write resources based on the time write estimate and the remaining lifetime (as described above in step 110). The health monitor 202 and simulator 206 in the device 200 are optional as the server may collect health data and update the life model.
Optionally, the server 302 is configured to collect health data of the flash memory 212 from the apparatus 200 and/or one or more other devices 214B-214N (i.e., devices or apparatuses external to the apparatus 200) that include the same type of flash memory drivers 216B-216N (as described above in step 102), and to send the collected health data to the apparatus 200. The apparatus 200 then performs the steps 104 to 110 described above. In this case, the health monitor 202 in the device 200 may be optional.
The system 300 provides an accurate estimate of the remaining flash life, i.e., the amount of data that can be written to flash during life. Such accurate estimation of remaining life may be accomplished at any time during the life of the flash memory. The present system 300 uses health data provided by standard flash interface features already present in the flash memory 212. Thus, estimating the remaining flash life through the present system 300 enables all types of users, such as light users writing small amounts of data and heavy users writing large amounts of data, to efficiently utilize the remaining flash 212. Optionally, the present system 300 is configured to update the life model of the flash memory 212 based on the wear rate, thus taking into account the user writing behavior each time the remaining flash memory life is estimated. In addition, the present system 300 is suitable for conventional flash memory without requiring hardware modifications. Advantageously, the present system 300 has no impact on input-output (IO) flow performance and therefore no delay. By collecting health data from multiple devices and updating the life model of flash memory 212 based on the collected health data, a more accurate amount of additional data can be provided that can be written to flash memory 212 without affecting the warranty period of flash memory 212.
Fig. 4 is an exemplary flowchart of a flash endurance management process in a device supporting a method or apparatus for flash endurance management provided by an embodiment of the present invention. A process 400 is shown. Process 400 may be implemented in an apparatus such as described in connection with fig. 2A or fig. 2B. Process 400 includes steps 402 through 416.
In step 402, process 400 includes initializing flash endurance management in a device (e.g., a mobile device having flash memory). In step 404, the process 400 includes collecting health data (i.e., current health data) of a flash memory (e.g., the flash memory 212), e.g., in the same manner as step 102 of the flash durability management method 100 described in connection with fig. 1. In step 406, the process 400 includes checking whether health data of the flash memory 212 has been previously recorded. If health data for flash memory 212 has been previously recorded, steps 408, 410, and 412 are performed. If health data for flash memory 212 has not been previously recorded, steps 414 and 416 are performed. In step 408, the process 400 includes comparing the current health data with previously recorded health data to determine if the value of the health data has changed significantly. Steps 410 and 412 are performed if the value of the health data has changed significantly, and step 416 is performed if the value of the health data has not changed significantly. In step 410, the process 400 includes adjusting parameters of a lifetime model of the flash memory 212, which may involve the same actions as steps 104 through 108 of the method 100 described in connection with FIG. 1. In step 412, the process 400 includes estimating the lifetime of the flash memory 212, which may also include recording or saving the lifetime estimate for future reference until a new estimate is obtained. Estimating the lifetime of the flash memory in step 412 may involve the same actions as steps 110 to 112 of the method 100 described in connection with fig. 1. In step 414, process 400 includes recording or saving health data of flash memory 212. The health data of flash memory 212 may be saved for the first time at step 414 or may be saved after the life estimation of process 400. In step 416, the process 400 includes waiting for further collection of health data of the flash memory 212.
FIG. 5 is a graphical representation provided by an embodiment of the present invention depicting a user's dynamic V CE Distribution with average V CE And a normal distribution to show the erase Cycle (CE) growth rate of each block of the flash memory. A graphical representation 500 of the rate of increase of the erase Cycle (CE) of each block of a flash memory (e.g., flash memory 212 of fig. 2A and 2B) is shown in connection with fig. 5.
In graphical representation 500, the CE growth rate on X-axis 502 and the number of records on Y-axis 504 are shown. Dynamic V showing a user CE Distribution 506, average V CE 508 and normal distribution 510.
The average rate of CE increase over three years is represented by equation (1) (as depicted in fig. 1). A mathematical model may be applied to estimate V at any time during flash life based on the dynamic speed of CE growth and the static speed of CE growth CE . The dynamic rate of CE growth is calledIt is to use the V on the specific flash memory in the using process of the specific flash memory CE Is a function of the measured value. The static rate of CE growth is called +.>Which is calculated based on offline measurements (not shown here).
In practice, in real devices, flash memoryIs affected by a number of random factors, so it is not equal to true V CE . In other words, every measurement +.>Acquisition of V CE And some noise. Thus, consider V in the mathematical model CE And->Difference between them to estimate V at any time during the lifetime of the flash memory CE . In one example, i.e., during operation of the actual flash memory, if true V CE I.e. average V CE 508 is 0.142 and->Measured values of (i.e. dynamic V) CE 506a is 0.167, in which case the noise 512 is equal to 0.025, which is +.>Measured value of (2) and true V CE I.e. average V CE 508. The difference is considered as a normal random variable.
FIG. 6 is a flowchart describing user V as part of Bayesian reasoning provided by an embodiment of the present invention CE Is a graphical representation of the desired a priori distribution. In connection with FIG. 6, any particular data (i.e., health number) in the received flash memory 212 is shownAccording to) a graphical representation 600 of the expected erase Cycle (CE) growth rate of a flash memory, such as the flash memory 212 of fig. 2A and 2B.
The graphical representation 600 represents the distribution of CE growth rate on the X-axis 602 and the number of records on the Y-axis 604. Shows the most probable V CE The value 606, i.e. the most likely CE growth rate. The data (i.e., records) is collected based on health data provided by a plurality of devices (e.g., the plurality of devices 214B-214N).
Bayesian inference is well known as a statistical inference in which bayesian theorem is used to update the probability of a hypothesis as more evidence or information is available. In the present invention, bayesian reasoning is optionally used to support updating the lifetime model based on health data that may be collected periodically. Bayesian reasoning is used as a life model to dynamically reflect changes in wear patterns of flash memory due to a variety of reasons (device and its subsystem operating characteristics, free space available, ambient temperature, task spectrum that a user is to solve on a device, etc.).
In this case, in the graphical representation 600, the a priori distribution represents the user V before any particular data (evidence observed) CE Is not limited to the above-described embodiments. Thus, this a priori distribution answers the following questions: from which probability the randomly selected user has this or that value (i.e., which value). Consider, for example, a potential new member (potential new member, pnm)
Distribution. The peak of the a priori distribution corresponds to the most popular +.>Value (i.e. most probable V CE Value 606). This means that the number of users with this value is greater than the number of users with any other value. Thus, if the user is randomly selected, it is likely that an accurate peak will be expected. However, every time +. >When new measurement value of (a) is made, user V CE And the expectations of (c) will vary.
Fig. 7 is a graphical representation depicting the expected rate of erase Cycle (CE) growth and the actual rate of CE growth of a flash memory provided by an embodiment of the present invention. A graphical representation 700 of an expected rate of CE growth and an actual rate of CE growth for a flash memory (e.g., flash memory 212 of fig. 2A and 2B) is shown in connection with fig. 7.
The graphical representation 700 represents the CE growth rate on the X-axis 702 and the number of records on the Y-axis 704. A first curve 706 is shown representing the expected rate of CE growth, i.e., V from a test version user CE . Also shown is a second curve 708 representing the expected rate of CE growth, i.e., V when some online measurements are received CE . Also shown is a third curve 710 representing the final distribution of dynamic speed of CE growth, i.e. the actual speed of CE growthThe posterior probability (represented by the second curve 708) is derived as a result of the prior probability (represented by the first curve 706) and likelihood function (represented by the third curve 710) derived from the statistical model of the observed data. Every time receive +.>When new measurement value of (a) is made, user V CE And the expectations of (c) will vary. In one example, if +.>Higher than V CE Higher V is expected CE . If->Less than V CE Is expected to be smaller V CE . The average 712 of the third curve 710 represents true V CE
Modifications may be made to the embodiments of the invention described above without departing from the scope of the invention, as defined in the appended claims. Expressions such as "comprising," "combining," "having," "being/being" and the like, which are used to describe and claim the present invention, are intended to be interpreted in a non-exclusive manner, i.e. to allow for items, components or elements that are not explicitly described to exist as well. Reference to the singular is also to be construed to relate to the plural. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration. Any embodiment described as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments and/or does not preclude the incorporation of features of other embodiments. The word "optionally" as used herein means "provided in some embodiments and not provided in other embodiments. It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as in any other described embodiment of the invention.

Claims (13)

1. A flash endurance management method (100, 400), comprising:
acquiring health data of a flash memory (212), wherein the health data comprises an average erasing period quantity of each memory block and a total data quantity written into the flash memory (212);
determining a time write estimate reflecting an amount of data written to the flash memory (212) over a period of time based on the health data and a runtime of the flash memory (212);
updating a lifetime model of the flash memory (212) based on the health data;
determining a remaining lifetime of the flash memory (212) based on the updated lifetime model;
an additional write resource is determined based on the time write estimate and the remaining lifetime, the additional write resource being an additional amount of data that can be written to the flash memory (212) without affecting its warranty period.
2. The method (100, 400) of claim 1, further comprising measuring the runtime of the flash memory (212).
3. The method (100, 400) according to claim 1 or 2, characterized in that:
the acquiring the health data of the flash memory (212) includes: -obtaining the health data of the flash memory (212) from a device comprising the flash memory (212); and/or
The updating the lifetime model of the flash memory (212) based on the health data includes: a wear rate is determined based on the health data and the life model of the flash memory (212) is updated based on the wear rate.
4. The method (100, 400) of claim 1 or 2, wherein the acquiring the health data of the flash memory (212) comprises:
the health data of the flash memory (212) is collected from a device comprising the flash memory (212) and one or more other devices (214B-214N) comprising one or more flash drives (216B-216N) of the same type, or from the one or more other devices (214B-214N) comprising one or more flash drives (216B-216N) of the same type.
5. The method (100, 400) of any of claims 1-4, wherein the updating the lifetime model is performed by bayesian reasoning.
6. An apparatus (200) for flash endurance management, comprising:
a health monitor (202) for obtaining health data of a flash memory (212), the health data comprising an average erase cycle amount per memory block and a total amount of data written to the flash memory (212);
A write estimator (204) for determining a temporal write estimate reflecting an amount of data written to the flash memory (212) over a period of time based on the health data and a runtime of the flash memory (212);
-a simulator (206) for updating a lifetime model of the flash memory (212) based on the health data;
a durability estimator (208) for
Determining a remaining lifetime of the flash memory (212) based on the updated lifetime model;
an additional write resource is determined based on the time write estimate and the remaining lifetime, the additional write resource being an additional amount of data that can be written to the flash memory (212) without affecting its warranty period.
7. The apparatus (200) of claim 6, further comprising a timer (210), the timer (210) for measuring the run time of the flash memory (212).
8. The apparatus (200) of claim 6, wherein the simulator (206) is configured to update the lifetime model by bayesian reasoning.
9. The device (200) according to any one of claims 6 to 8, characterized in that:
the acquiring the health data of the flash memory (212) includes: -obtaining the health data of the flash memory (212) from the flash memory (212);
The updating the lifetime model of the flash memory (212) based on the health data includes: a wear rate is determined based on the health data and the life model of the flash memory (212) is updated based on the wear rate.
10. The apparatus (200) of claims 6 to 8, wherein said obtaining said health data of said flash memory (212) comprises:
the health data of the flash memory (212) is collected from the flash memory (212) and one or more external devices (214B-214N) comprising flash memory drives (216B-216N) of the same type, or from the one or more external devices (214B-214N) comprising flash memory drives (216B-216N) of the same type.
11. The apparatus (200) of any of claims 6 to 10, comprising a computing device (214A) having a flash memory drive (216A).
12. A system (300) for flash endurance management, comprising:
a device (200) including a flash memory (212);
a server (302) for
The health data of the flash memory (212) is collected from the apparatus (200) and one or more external devices (214B-214N) comprising one or more flash drives (216B-216N) of the same type, or from the one or more external devices (214B-214N) comprising flash drives (216B-216N) of the same type.
13. The system (300) of claim 12, wherein the server (302) is further configured to:
updating the lifetime model of the flash memory (212) based on the collected health data.
CN202180083952.2A 2020-12-22 2021-04-09 Method, system and apparatus for flash endurance management Pending CN116635835A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
RUPCT/RU2020/000742 2020-12-22
RU2020000742 2020-12-22
PCT/RU2021/000151 WO2022139622A1 (en) 2020-12-22 2021-04-09 Method, system, and apparatus for flash memory endurance management

Publications (1)

Publication Number Publication Date
CN116635835A true CN116635835A (en) 2023-08-22

Family

ID=75977795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180083952.2A Pending CN116635835A (en) 2020-12-22 2021-04-09 Method, system and apparatus for flash endurance management

Country Status (2)

Country Link
CN (1) CN116635835A (en)
WO (1) WO2022139622A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984216B2 (en) * 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
WO2019083390A1 (en) * 2017-10-26 2019-05-02 EMC IP Holding Company LLC Using recurring write quotas to optimize utilization of solid state storage

Also Published As

Publication number Publication date
WO2022139622A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US10521244B2 (en) Information handling system configuration parameter history management
US8918583B2 (en) Adapting behavior of solid-state drive using real usage model
US9946981B2 (en) Computing device service life management
US9477295B2 (en) Non-volatile memory express (NVMe) device power management
US9128825B1 (en) Optimizing allocation of flash memory to file groups
US20140181595A1 (en) Estimating lifespan of solid-state drive using real usage model
US9118520B1 (en) Systems and methods for monitoring application resource usage on mobile computing systems
US20140181585A1 (en) Real usage model for solid-state drive
US20230297243A1 (en) Method and apparatus for predicting service life of solid-state disk, and computer-readable storage medium
US7917677B2 (en) Smart profiler
JP2014089734A (en) Reducing write, and estimating and displaying residual life of nonvolatile memory
US10680904B2 (en) Determining periodicity of operation status information to predict future operation statuses of resources of the information processing devices
US11507502B2 (en) Data storage device performance prediction based on valid fragment count
CN115454322A (en) Workload management using trained models
WO2019085754A1 (en) Application cleaning method and apparatus, and storage medium and electronic device
WO2019062341A1 (en) Background application cleaning method and apparatus, and storage medium and electronic device
CN113254256B (en) Data reconstruction method, storage device and storage medium
US10719243B2 (en) Techniques for preserving an expected lifespan of a non-volatile memory
CN116635835A (en) Method, system and apparatus for flash endurance management
US20140122403A1 (en) Loading prediction method and electronic device using the same
US10587527B1 (en) Systems and methods for apportioning bandwidth in storage systems
US10929245B1 (en) Flexible scheduler for backups
CN111142790B (en) Control method and device for disk write request, electronic equipment and storage medium
US10564895B2 (en) I/O performance enhancement of solid-state data storage devices
JP2013097575A (en) Semiconductor disk lifetime monitoring device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination