Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, SYSTEM, AND APPARATUS FOR FLASH MEMORY ENDURANCE MANAGEMENT
Document Type and Number:
WIPO Patent Application WO/2022/139622
Kind Code:
A1
Abstract:
A method of flash memory endurance management. The method comprises obtaining a health data of a flash memory, determining a temporal write estimation reflecting an amount of data that is written to the flash memory during a period of time, and determining a wear out speed of the flash memory based on the health data. The method further comprises updating a lifetime model of the flash memory with the wear out speed, determining a remaining lifetime of flash memory based on updated lifetime model, and determining an extra write resource based on temporal write estimation and remaining lifetime, extra write resource being an extra amount of data that can be written to flash memory without affecting a warranty period thereof. The method improves accuracy of estimation of remaining lifetime of flash memory and predicts future state of flash memory.

Inventors:
KRINOV PETR SERGEEVICH (CN)
KHARIN VITALIY (CN)
TARASOV ALEKSANDR (CN)
ILISAVSKII SERGEY (CN)
Application Number:
PCT/RU2021/000151
Publication Date:
June 30, 2022
Filing Date:
April 09, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
KRINOV PETR SERGEEVICH (CN)
International Classes:
G06F12/02
Domestic Patent References:
WO2019083390A12019-05-02
Foreign References:
US20170133107A12017-05-11
US20120066439A12012-03-15
Attorney, Agent or Firm:
LAW FIRM "GORODISSKY & PARTNERS" LTD. (RU)
Download PDF:
Claims:
CLAIMS

1. A method (100, 400) of flash memory endurance management, comprising: obtaining health data of a flash memory (212), the health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory (212), determining a temporal write estimation reflecting an amount of data that is written to the flash memory (212) during a period of time, based on the health data and an operating time 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, and determining an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory (212) without affecting a warranty period thereof.

2. The method (100, 400) of claim 1, further comprising measuring the operating time of the flash memory (212).

3. The method (100, 400) of claim 1 or 2, wherein: the obtaining the health data of the flash memory (212) comprises: obtaining the health data of the flash memory (212) from a device including the flash memory (212); and/or the updating the lifetime model of the flash memory (212) based on the health data comprises: determining wear out speed based on the health data and updating the lifetime model of the flash memory (212) based on the wear out speed.

4. The method (100, 400) of claim 1 or 2, the obtaining the health data of the flash memory (212) comprises: collecting the health data of the flash memory (212) from a device including the flash memory (212) and one or more other devices (214B-214N) comprising one or more flash memory drives (216B-216N) of the same type, or from the one or more other devices (214B- 214N) comprising the one or more flash memory drives (216B-216N) of the same type.

5. The method (100, 400) of any of claims 1 to 4, wherein the updating of the lifetime model is conducted by means of Bayesian inference.

26

6. An apparatus (200) for flash memory endurance management, comprising: a health monitor (202) configured for obtaining a health data of a flash memory (212), the health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory (212), a write estimator (204) configured for determining a temporal write estimation reflecting an amount of data that is written to the flash memory (212) during a period of time, based on the health data and an operating time of the flash memory (212), a simulator (206) configured for updating a lifetime model of the flash memory (212) based on the health data, and an endurance estimator (208) configured for determining a remaining lifetime of the flash memory (212) based on the updated lifetime model, and an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory (212) without affecting a warranty period thereof.

7. The apparatus (200) of claim 6, further comprising a timer (210) configured for measuring the operating time of the flash memory (212).

8. The apparatus (200) of claim 6, wherein the simulator (206) is configured for updating the lifetime model by means of Bayesian inference.

9. The apparatus (200) of any of claims 6 to 8, wherein: the obtaining the health data of the flash memory (212) comprises: obtaining the health data of the flash memory (212) from the flash memory (212); and the updating the lifetime model of the flash memory (212) based on the health data comprises: determining wear out speed based on the health data and updating the lifetime model of the flash memory (212) based on the wear out speed.

10. The apparatus (200) of claim 6 to 8, wherein the obtaining the health data of the flash memory (212) comprises: collecting the health data of the flash memory (212) 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 the flash memory drives (216B-216N) of the same type.

11. The apparatus (200) of any of claims 6 to 10, comprising a computing device (214 A) with a flash memory drive (216A).

12. A system (300) for flash memory endurance management, comprising: an apparatus (200) including a flash memory (212), and a server (302) configured for collecting the health data of the flash memory (212) from the apparatus (200) and one or more external devices (214B-214N) comprising one or more flash memory drives (216B-216N) of the same type, or from the one or more external devices (214B- 214N) comprising the flash memory drives (216B-216N) of the same type. 13. the system (300) of claim 12, the server (302) is further configured for: updating the lifetime model of the flash memory (212) based on the collected health data.

Description:
METHOD, SYSTEM, AND APPARATUS FOR FLASH MEMORY ENDURANCE MANAGEMENT

TECHNICAL FIELD

The present disclosure relates generally to the field of data storage; and more specifically, to a method, a system, and an apparatus for flash memory endurance management.

BACKGROUND

Currently, non-volatile flash memories, such as NAND flash memories, are increasingly used for everyday tasks on servers, computers and mobile devices. However, such flash memories do not allow to change a recorded data in place of their storage and requires a preliminary erasure of a whole block for changing the data. Further, there is a limitation on a number of write operation (Program/Erase (PE) cycles of each memory block), after which the data cannot be secured, and the flash memory usually reaches end of its life. Typically, a manufacturer or vendor of a given flash memory share a number of PE cycles which can be tolerated by a particular model of the given flash memory. Further, many integral characteristics are used to describe the PE, generally considered as reliability metrics. Such integral characteristics include Terabytes Written (TBW) i.e. total amount of data that can be written to a given flash memory within its warranty, Device Writes Per Day (DWPD) i.e., number of times a total capacity of a drive may be written to per day within its warranty, Maximum PE cycles with average Write Amplification Factor (WAF) i.e., average ratio of writes committed to a flash memory to the writes coming from the host system. However, conventional methods employ average TBW, DWPD and WAF of a particular device (such as a flash memory) in their calculation, which is inadequate and result in low accuracy. In an example, frequent writing of small blocks usually results in faster wear out than the same amount of data rarely written by a single block. As a result, all PE integral characteristics like TBW are provided to secure average user and are found to be not accurate in lifespan estimation of flash memory for many other users in practice. For example, there are many users who could safely write much more than vendor guarantees and there are some heavy users (i.e., users who write large amount of data) who are under risk due to circumstances like abnormal write profile.

Presently, there are some conventional techniques which provide estimation of lifespan of flash memory. However, there are several limitations associated with them. Some conventional techniques involve determining a write bandwidth target for a given flash memory, monitoring write bandwidth of the flash and then periodically adjusting the write bandwidth target based on a total amount of data written to the flash memory, so that the total amount of data written does not exceed a threshold within the lifetime of the flash memory. However, this technique requires constant and continuous monitoring of write bandwidth, which influences flash memory performance and also requires hardware modifications for implementation. Thus, this technique is resource intensive and costly. Some other conventional techniques use machine learning in order to find a predicted lifetime of a given flash memory using various types of data. However, such conventional techniques require huge amount of data (results of experiments), and thus can be applied only to well known (studied or tested) flash memories to some extent and are not applicable or accurate for majority of flash memories. Further, in some conventional techniques, the lifespan of the flash memory is measured by measuring a used write traffic value in consideration of a write amplification factor (WAF) indicating an abnormally amplified write traffic value of the flash memory. However, this technique assumes measurements of read latency, which adversely influence performance. Further, WAF calculation algorithm depends on hardware implementation, and consideration of abnormally amplified write traffic indicates only current state of the flash memory, but do not predict future WAF. There are some conventional techniques that comprise an erasing time determination functionality for individual pages of a given flash memory. This technique is very time consuming and is found to adversely influence performance of the given flash memory.

Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with conventional methods and systems of estimation of life cycle of the flash memories.

SUMMARY

The present disclosure seeks to provide a method, an apparatus, and a system for flash memory endurance management. The present disclosure seeks to provide a solution to the existing problem of how to estimate remaining flash memory lifetime for all types of users of flash memory without affecting the performance of the flash memory and without the need to perform any hardware modifications for such estimations. An object f the present disclosure is to provide a solution that overcomes at least partially the problems encountered in prior art, and provide an improved method, apparatus, and system that enables efficient and adequate utilization of a storage space of a flash memory by providing an estimation of a remaining lifetime of the flash memory with increased accuracy, where the estimation can be carried out with increased accuracy for different types of users of flash memory without affecting the performance of the flash memory and without any hardware modifications in the flash memory.

One or more objects of the present disclosure is achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.

In one aspect, the present disclosure provides a method of flash memory endurance management, comprising: obtaining a health data of a flash memory, the health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory, determining a temporal write estimation reflecting an amount of data that is written to the flash memory during a period of time, based on the health data and an operating time of the flash memory, updating a lifetime model of the flash memory based on the health data, determining a remaining lifetime of the flash memory based on the updated lifetime model, and determining an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory without affecting a warranty period thereof.

The present method improves the accuracy of estimation of a remaining lifetime of the flash memory, i.e., an amount of data that can be written to the flash memory during lifespan as the method takes into account user behaviour and heath data and predicts future state of flash memory device. Such estimation of the remaining lifetime can be done at any moment during use of the flash memory in its lifespan and is not limited to estimation only at the start of the lifespan.

In an implementation form, the method further comprises measuring the operating time of the flash memory. By virtue of measuring the operating time of the flash memory, the temporal write estimation is determined, which in turn enables determining an extra write resource of the flash memory.

In a further implementation form, the method further comprises collecting the health data of the flash memory from one or more external devices comprising one or more flash memory drives of the same type, and updating the lifetime model of the flash memory based on the collected health data.

By virtue of collecting of the health data from the plurality of devices and updating the lifetime model of the flash memory based on the collected health data, enables improved estimation of extra amount of data that can be written to the flash memory without affecting the warranty period of the flash memory.

In a further implementation form, the updating of the lifetime model is conducted by means of Bayesian inference.

As the health data of the flash memory is collected periodically, the method uses this data for adjustment of the lifetime model by means of the Bayesian inference, which further improves the estimation accuracy of the remaining lifetime of the flash memory.

In another aspect, the present disclosure provides an apparatus for flash memory endurance management, comprising: a health monitor configured for obtaining a health data of a flash memory, the health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory, a write estimator configured for determining a temporal write estimation reflecting an amount of data that is written to the flash memory during a period of time, based on the health data and an operating time of the flash memory, a simulator configured for updating a lifetime model of the flash memory based on the health data, and an endurance estimator configured for determining a remaining lifetime of the flash memory based on the updated lifetime model, and an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory without affecting a warranty period thereof.

The present apparatus provides a precise estimation of remaining flash memory lifetime i.e. an amount of data that can be written to the flash memory during lifespan. The apparatus achieves all the advantages and technical effects of the method of the present disclosure. In yet another aspect, the present disclosure provides a system for flash memory endurance management, comprising: an apparatus comprising a flash memory, and a server configured 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 lifetime model of the flash memory based on the collected health data.

The system achieves all the advantages and effects of the method of the present disclosure.

It is to be appreciated that all the aforementioned implementation forms can be combined. It has to be noted that all devices, elements, circuitry, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.

Additional aspects, advantages, features and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

The summary above, 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 present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers. Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:

FIG. 1 is a flowchart of a method of flash memory endurance management, in accordance with an embodiment of the present disclosure;

FIG. 2 is a block diagram that illustrates apparatus for flash memory endurance management, in accordance with an embodiment of the present disclosure;

FIG. 3 is a block diagram that illustrates a system for flash memory endurance management, in accordance with an embodiment of the present disclosure;

FIG. 4 is an exemplary flowchart of a flash memory endurance management process in a device supporting a method of or an apparatus for flash memory endurance management, in accordance with an embodiment of the present disclosure;

FIG. 5 is a graphical representation that depicts a distribution of dynamic V CE for one user, with an average V CE , and a normal distribution to illustrate a speed of cycles of erase (CE) per block growth of a flash memory, in accordance with an embodiment of the present disclosure;

FIG. 6 is a graphical representation that depicts a prior distribution that is expectation of user’s V CE used as a part of Bayesian inference, in accordance with an embodiment of the present disclosure; and

FIG.7 is a graphical representation that depicts expected speed of (erase cycle) CE growth and actual speed of (erase cycle) CE growth of a flash memory, in accordance with an embodiment of the present disclosure.

In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the nonunderlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.

DETAILED DESCRIPTION OF EMBODIMENTS

The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible.

Currently, existing methods employ metrics like average Terabytes Written (TBW), Device Writes Per Day (DWPD), and average Write Amplification Factor (WAF) for estimation of lifespan of a flash memory, which is inadequate and result in low accuracy. It is observed that the problem with such metrics like average TBW, DWPD, and WAF provided by a vendor or manufacturer is that such metrics depend on many parameters. It is further observed that such parameters which influence lifespan of flash memory in practice include write profile, available free space, temperature, firmware algorithms like garbage collection, wear leveling, compression, over-provisioning and the like, which are not considered adequately in estimation. For instance, frequent writing of small blocks in a flash memory usually results in faster wear out than the same amount of data rarely written by a single block in the same flash memory. This means that all Program/Erase (PE) integral characteristics like TBW are provided to secure average "user". In this context, the term "user" refers to any agent which uses NAND flash device, for example, a portable device (e.g., a smartphone, a tablet, laptop, a smart bracelet, or a smart watch), a personal computer, a server, a human user of any such devices. Thus, there are many users who could safely write much more than manufacturer (or vendor) guarantees and there are some heavy users (i.e., users who write large amount of data) who are under risk due to circumstances like abnormal write profile.

The present disclosure provides an improved method, system and apparatus for flash memory endurance management, which increases the accuracy of estimation of remaining flash memory lifetime that indicates the amount of data that can be written to the flash memory during its lifespan. Such precise estimation of remaining lifetime can be done at any moment in the lifespan of the flash memory. The disclosed method, apparatus, and system does not use average TBW, DWPD, WAF provided by a manufacturer or a vendor but uses user-behavior (e.g., maximum PE) and detailed health information for particular device without any influence on input/output (I/O) flow performance (e.g., latency and bandwidth) of the flash memory. Additionally, the disclosed method is applicable to regular storage devices (off-the-shelf flash memory) and do not require hardware modifications.

FIG. 1 is a flowchart of a method of flash memory endurance management, in accordance with an embodiment of the present disclosure. There is shown a method 100. The method 100 is executed at an apparatus described, for example, in FIG. 2. The method 100 includes steps 102 to 112.

The method 100 of flash memory endurance management enables in providing precise estimation of remaining flash memory lifetime i.e., an amount of data that can be written to a device (i.e., flash memory) during its lifespan. This precise estimation of remaining lifetime can be done at any moment of the flash memory lifespan. As a result, the method 100 enables many users to write much more than what a vendor of the flash memory guarantees and protects some heavy users (i.e. users who write large amount of data) who are under risk due to circumstances like abnormal write profile to write precisely to have improved lifespan of the flash memory.

At step 102, the method 100 comprises obtaining a health data of a flash memory, the health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory. The method 100 comprises obtaining the heath data for determining health status of the flash memory, identifying how much device resources (i.e., flash memory resources) have been used and is the flash memory at the time this determination is made during its lifespan. In an example, the amount of cycle of erase (CE) per memory block refers to a cycle in which a content of non-empty block of the flash memory is changed. A maximum guaranteed CE value is provided by a manufacturer or a vendor. The average amount of cycle of erase per memory block with the maximum CE value can provide accurate lifetime prediction of the flash memory. The average amount of cycles of erase per memory block may also be referred to as speed of average erase cycles per block (CE) growth. The CE may also be referred to as program/erase (PE) cycle of each block. In an example, the total amount of data written to the flash memory (HOSTW) refers to a size of all the data that has already been written to the flash memory. The health data of the flash memory is obtained by a health monitor. This method 100 in comparison to conventional methods does not use average Terabytes Written (TBW), Device Writes Per Day (DWPD), Write Amplification Factor (WAF) that are provided by a vendor but uses heath data already provided by flash memory interface features. Beneficially, the health data of the flash memory is obtained without involving any modification to present hardware or external hardware to the flash memory. In an example, the health data is provided by flash memory interface features. The health data may be further used for purposes such as daily write estimation, adjustment of lifetime model and the like. In an example, the average speed of CE growth over three years is represented by equation (1) that is given below.

17 — Cg 3 years z, .

CE H0STW 3 years ' wherein,

V CE refers to average speed of CE growth over three years,

CE 3 y ears refers to the erase cycle per block over three years, and

H0STW 3 y ea rs refers to the total amount of data written to the flash memory over three years.

In the above example, as the V CE cannot be calculated before the end of third year, thus a mathematical model may be applied to estimate V CE at any moment based on a dynamic speed of CE growth and a static speed of CE growth. It is to be understood that term "3 years" is used to denote expected lifespan in this example, but the expected lifespan may be more than 3 years, like 5 years or other in some other implementations. The dynamic speed of CE growth is referred to as which is online measurements of V CE on particular flash memory during use. The static speed of CE growth is referred to as V EE at which is calculated based on offline statistics.

In practice, in a device, flash memories, V^ n is influenced by many random factors so it will not be equal to real V CE . In other words, every time V EE n is measured V CE and some noises are obtained. Thus, a difference is considered in the present disclosure. The difference is represented by the equation (2) given below.

A ?" = V cl - v n (2) wherein, refers to difference between V EE n and real V CE ,

V CE refers to a real speed of CE growth, and refers to measurements of V CE on particular flash memory during use.

The V EE at is calculated based on an analysis, which includes prior distribution of expectation of user’s V CE before any specific data is obtained from a given flash memory. Each time a new measurement of V EE n is obtained, expectation of user’s V CE is also changed. Thus, if V E ^ n is higher than expected value of V CE then further higher V CE is expected and if V EE n is smaller than expected value of V CE then further smaller V CE is expected. At step 102, there are several ways to obtain the health data of the flash memory. According to an example, the health data of the flash memory may be obtained from a device including the flash memory. According to another example, the health data of the flash memory may be obtained from the device including the flash memory and one or more other devices comprising flash memory drives of the same type. According to another example, the health data of the flash memory may be obtained from the one or more other devices comprising flash memory drives of the same type. The health data from the one or more other devices are taken as all or part of the health data of the flash memory to update the lifetime model of the flash memory. Such health data enable tuning of lifetime model of subsequent flash memories. In an example, a server may receive the health data from the one or more other devices and compute such health data to enable tuning of the lifetime model of the flash memory. The collecting of the health data enables in analyzing the data using simulation of same model algorithm. This analysis allows to detect users of flash memory who are at risk, for example, due to their write profile, and detect models of flash memory which are at risk, for example, due to their design. Thus, collecting of the health data from the plurality of devices and updating the lifetime model of the flash memory based on the collected health data enables in providing even more precise extra amount of data that can be written to the flash memory without affecting the warranty period. Further, lifetime risks associated with current usage pattern of the flash memory may also be predicted based on the health data collected from the plurality of devices.

At step 104, the method 100 further comprises determining a temporal write estimation reflecting an amount of data that is written to the flash memory during a period of time, based on the health data and an operating time of the flash memory. The temporal write estimation enables in identification of the amount data that is written to the flash memory for a period of time, such as for 24 hours (i.e., daily basis). In an example, the method 100 comprises calculating an average IO (Input-Output) amount written to the flash memory by an operating system (OS) and a mobile device user together per day. As the temporal write estimation is received from the health data thus there is no need for modification of present hardware. The operating time of the flash memory herein refers to an overall time when a storage device with the flash memory is switched to an active mode, i.e. when an operating system of the storage device is switched on, and is not suspended, including a time when the storage device microcontroller is idle in the absence of read- write requests, but is active and ready to process requests from the operating system or internal logics, such as a garbage collection request from a timer interrupt. The temporal write estimation is determined based on the heath data and the operating time of the flash memory to enable estimation of remaining lifetime of the flash memory at any point of the flash memory lifespan.

At step 106, the method 100 further comprises updating lifetime model of flash memory based on health data.

Optionally, if the health data is from the device including the flash memory, the updating may include determining a wear out speed of the flash memory based on the health data and then updating the lifetime model based on the wear out speed. A continuous collection of wear out speed provides an estimation of wear out speed till an end of warranty of the flash memory. In an example, the wear out of the flash memory takes place as all bits in a block of the flash memory need to be first erased before new data can be written to the block. Further, the blocks of the flash memory can be erased and written only for a defined number of time. The wear out speed of the flash memory may refer to a speed at which the flash memory specifically blocks of the flash memory are erased and written. In other words, as the blocks of the flash memory can be erased and written only for a defined number of times thus, wear out speed may be a number of times the flash memory has been erased and written (at present) with respect to the defined number of times. In an example, frequent writing small blocks usually results in faster wear out than the same amount of data rarely written by a single block. The wear out speed is continuously adjusted based on the health data that is obtained. The method 100 uses existing flash memory health parameters (i.e. health data) to identify wear out speed and thus no additional hardware modifications are needed. Thus, the present method 100 can be implemented on any existing flash memory.

Such lifetime model which is updated based on the wear out speed may also be referred to as an adaptive lifetime model. The lifetime model is updated so as to fluently adopt to a device behavior change (i.e., user behavior change operating the flash memory) during whole lifespan of the flash memory. The lifetime model of the flash memory is configured to estimate lifetime i.e., a duration up till which the flash memory can be used. In an example, the estimation of the lifetime is useful so as to plan a future usage of the flash memory by a user, timely obtain another flash memory before lifetime of a present flash memory is near its end and the like.

Optionally, if all or part of the health data are from the one or more other devices, the lifetime model updating may be performed base on wear out speed and/or other parameter obtained according to the health data. Optionally, the updating may be performed one or more times, e.g. updating based on the health data from the device including the flash memory and updating again based on the health data from the one or more other devices, and vice versa.

At step 108, the method 100 further comprises determining a remaining lifetime of the flash memory based on the updated lifetime model. A remaining lifetime of the flash memory is determined to enable determining of an extra data amount that can be written to a flash memory, without a risk of reaching end-of-life of the flash memory. As a result, the remaining lifetime enables many users to write much more than what a vendor of the flash memory guarantees and protects some heavy users (i.e. users who write large amount of data) who are under risk due to circumstances like abnormal write profile to write precisely to have improved lifespan of the flash memory. As the remaining lifetime of the flash memory is based on the updated lifetime model thus, the remaining lifetime can be estimated as frequently as needed.

At step 110, the method 100 further comprises determining an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory without affecting a warranty period thereof. The purposes of extra write resource enable to guarantee a defined number of years (e.g., at least 3 years) of flash memory life and to allow effective utilization of storage resource by the operation system. The present method 100 enables in determining the extra write resource by taking into account a user writing profile (via the temporal write estimation and the remaining lifetime) and thus, the method 100 determine extra write resource which is very user specific to enhance the amount of data that can be written to the flash memory by each user without affecting respective warranty period. The method 100 has no influence on IO (Input- Output) flow performance (i.e. no latency) of the flash memory. Thus, users can simultaneously store data in the flash memory and determine the extra write resource without having any latency.

According to an embodiment, the method 100 further comprises measuring the operating time of the flash memory. The operating time of the flash memory is measured to determine a time interval between a user providing data for storage in the flash memory and the flash memory storing the data in its storage space. In an example, a timer may be used to measure the operating time. By virtue of measuring the operating time of the flash memory, the temporal write estimation is determined which in turn enables determining an extra write resource of the flash memory. According to an embodiment, in the method 100 the updating of the lifetime model is conducted by means of Bayesian inference. As the health data of the flash memory is collected periodically, present method 100 uses this data for adjustment of the lifetime model by means of the Bayesian inference which further improves the estimation accuracy of the remaining lifetime of the flash memory. The Bayesian inference is configured to enable updating of the lifetime model based on the health data which is collected periodically. The Bayesian inference is used herein as an example and any other mathematical model may be used. By means of Bayesian inference the updated lifetime model dynamically reflects wear out pattern change of the flash memory caused by number of reasons such as flash memory and its subsystems operation features, free space available, ambient temperature, spectrum of tasks to be solved on the flash memory by user and the like.

In an example, the method 100 of the present disclosure may also be used for SWAP memory which is a storage media to temporary store currently non-active data. In such scenario, lifetime is to be controlled and guaranteed according to a warranty of the SWAP memory. In such scenario, the method 100 includes determining Total Bytes Write (TBW) left computation based on health data of SWAP memory and Bayesian inference, determining predicted regular IO (Input-Output) which is based on health data, and determining TotalSwapIO = (TBW left - predicted user io) which is an amount of extra data, that can be written to SWAP memory, without a risk of disable the SWAP memory before the warranty expires.

The Total Bytes Write (TWB) left computation is determined based on Bayesian inference which uses beta users collected information as initial value and has smooth transition from the initial value to the measurements obtained on the SWAP memory. The Total Bytes Write (TWB) left is given by an equation (3) represented below. wherein,

TBW Jeft refers to the Total Bytes Write (TBW) left,

CE MAX refers to maximum erase cycle per block,

CECURRENT refers to current erase cycle per block, ymodeied. an j U pj a t e j on SWAP memory after every measurement of V^ n , ceMax_reserve refers to a parameter for reliability and avoiding crashing SWAP memory several days before 3 years. The modeled speed of CE growth y ° deled i s represented by equation (4) and dispersion <TQ is represented by equation (5) given below. wherein,

V^ n refers to speed of CE change, measured on the SWAP memory, refers to mathematical expectation and dispersion of a prior distribution, d refers to dispersion of measurements V^ n for each user, prefers to a parameter that determines how much estimation of V ce is overstated.

Configuration parameters d and c may be based on offline analysis of big data and are updated from cloud (i.e. server) for specific storage device used on phones and it allows flexible control of TBW computation.

The TotalSwapIO = (TBW Ieft - predicted user io) is represented by the equation (6) given below for non-curved case.

DailySwapIO = (TBW Ieft - predicted user io) / day s_left_till_3 years (6) wherein, predicted user io is calculated using exponential moving average - late values have bigger weights, days_left_till_3years is computed based on time_on.

In the non-curved case, the predicted user io includes an initial period: 8 days based on big data - 35 GB per day; next 7 days: same value as for initial period to accumulate enough data to calculate average daily IO; average is calculated using exponential moving average - late values have bigger weights.

The TotalSwapIO = (TBW Ieft - predicted user io) is represented by the equation (7) given below for curved case.

In the curved case, the predicted user io includes initial period: 7 days based on big data; next 7 days: same value as for initial period to accumulate enough data to calculate average daily IO; average is calculated using exponential moving average - late values has bigger weights. In this case, F is curving function such that model give to user more swap at the beginning. The curving function is represented by the equation (8) given below.

In another aspect, a computer program product is provided comprising a non-transitory computer-readable storage medium having computer program code stored thereon, the computer program code being executable by a processor to execute the method 100. Examples of implementation of the non-transitory computer-readable storage medium include, but is not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer readable storage medium, and/or CPU cache memory. A computer readable storage medium for providing a non-transient 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 a precise estimation of remaining flash memory lifetime i.e., an amount of data that can be written to the flash memory during lifespan. This precise estimation of remaining lifetime can be done at any moment of flash memory lifespan. The present method 100 uses health data which is provided by standard flash memory interface features already present in the flash memory. Thus, estimation of remaining flash memory lifetime by the present method 100 enables efficient utilization of remaining flash memory for all types of users such as light users writing small amount of data and heavy users writing large amount of data. In comparison to conventional methods where estimation of remaining flash memory lifetime is done based on average Terabytes Written (TBW), Device Writes Per Day (DWPD), and Write Amplification Factor (WAF) provided by a vendor of the flash memory and thus secure average users only. Optionally, the present method 100 comprises updating the lifetime model of the flash memory with the wear out speed, as a result, a user write behavior is considered each time while estimating remaining flash memory lifetime. Further, the present method 100 is applicable to regular flash memories and do not require hardware modifications. Beneficially, the present method 100 has no influence on Input-Output (IO) flow performance thus there is no latency.

FIG. 2A is a block diagram that illustrates apparatus for flash memory endurance management, in accordance with an embodiment of the present disclosure. With reference to FIG, 2, there is shown the apparatus 200. The apparatus 200 includes a health monitor 202, a write estimator 204, a simulator 206 and an endurance estimator 208. In an implementation, the apparatus 200 further includes a timer 210. There is further shown 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 an implementation, the flash memory 212 may be a part of the apparatus 200, which estimates the remaining flash memory lifetime. In another exemplary implementation, the flash memory 212 may be provided in another device, where the apparatus 200 is communicatively coupled to the device including the flash memory 212.

The apparatus 200 is configured to provide precise estimation of remaining flash memory lifetime i.e., an amount of data that can be written to a device (i.e., flash memory 212) during its lifespan. This precise estimation of remaining lifetime can be done at any moment of the flash memory 212 lifespan. As a result, the apparatus 200 enables many users to write much more than what a vendor of the flash memory 212 guarantees and protects some heavy users (i.e., users who write large amount of data) who are under risk due to circumstances like abnormal write profile to write precisely to have improved lifespan of the flash memory 212.

The health monitor 202 is configured to obtain a health data of a flash memory 212 as described in the aforementioned step 102. The health data comprising an average amount of cycles of erase per memory block and a total amount of data written to the flash memory 212. The health monitor 202 is configured to obtain the heath data for monitoring status of the flash memory 212, identifying how much device resources (i.e. flash memory resources) have been used and is the flash memory 212 close to end of its life. The average amount of cycle of erase per memory block with the maximum CE value can provide accurate lifetime prediction of the flash memory 212. Beneficially, the health data of the flash memory 212 is obtained without involving any modification to present hardware or external hardware to the flash memory 212. In an example, the health data is provided by flash memory interface features.

The write estimator 204 is configured to determine a temporal write estimation reflecting an amount of data that is written to the flash memory 212 during a period of time, based on the health data and an operating time of the flash memory 212. The temporal write estimation enables in identification of the amount data that is written to the flash memory 212 for a period of time such as for 24 hours (i.e. daily basis). As the temporal write estimation is received from the health data thus there is no need for modification of present hardware. The temporal write estimation is determined by the write estimator 204 based on the heath data and the operating time of the flash memory 212 to enable estimation of remaining lifetime of the flash memory 212 at any point of the flash memory lifespan.

The simulator 206 is configured to update a lifetime model of the flash memory 212 as described in the aforementioned step 106. Optionally, a continuous collection of wear out speed by the simulator 206 provides an estimation of wear out speed till an end of warranty of the flash memory 212. The wear out speed is continuously adjusted based on the health data that is obtained. The simulator 206 uses existing flash memory health parameters (i.e. health data) to identify wear out speed and thus no additional hardware modifications are needed. Thus, the present apparatus 200 can be implemented on any existing flash memory. The lifetime model is updated so as to fluently adopt to a device behavior change (i.e. flash memory behavior change) during whole lifespan of the flash memory 212. The lifetime model of the flash memory 212 is configured to estimate lifetime i.e., a duration up till which the flash memory 212 can be used.

The endurance estimator 208 is configured to determine a remaining lifetime of the flash memory 212 based on the updated lifetime model, and an extra write resource based on the temporal write estimation and the remaining lifetime, the extra write resource being an extra amount of data that can be written to the flash memory 212 without affecting a warranty period thereof. A remaining lifetime of the flash memory 212 is determined to enable determining of an extra data amount that can be written to a flash memory 212, without a risk of reaching end of life of the flash memory 212. As a result, the remaining lifetime enables many users to write much more than what a vendor of the flash memory 212 guarantees and protects some heavy users (i.e., users who write large amount of data) who are under risk due to circumstances like abnormal write profile to write precisely to have improved lifespan of the flash memory 212. As the remaining lifetime of the flash memory 212 is based on the updated lifetime model thus, the remaining lifetime can be estimated as frequently as needed. The purposes of extra write resource enable to guarantee at least 3 years of flash memory life and to allow effective utilization of storage resource by the operation system. The apparatus 200 enables in determining the extra write resource by taking into account a user writing profile (via the temporal write estimation and the remaining lifetime) and thus, the apparatus 200 determines an extra write resource which is very user specific to enhance the amount of data that can be written to the flash memory 212 by each user without affecting respective warranty period. The apparatus 200 has no influence on IO (Input-Output) flow performance (i.e., no latency) of the flash memory 212. The flash memory 212 includes a suitable logic, circuitry, and interfaces that may be configured to store data received from one or more user devices. In an example, the flash memory 212 can store the received data even in absence of electricity i.e. flash memory 212 is a non-volatile flash memory, like NAND flash memory.

According to an embodiment, the apparatus 200 further comprises a timer 210 configured for measuring the operating time of the flash memory 212. The timer 210 is configured to measure a time interval between a user providing data for storage in the flash memory 212 and the flash memory 212 storing the data in its storage space. By virtue of measuring the operating time of the flash memory 212 by the timer 210, the temporal write estimation is determined which is essential for determining an extra write resource of the flash memory 212.

According to an embodiment, the simulator 206 is configured for updating the lifetime model by means of Bayesian inference. As the health data of the flash memory 212 is collected periodically, the simulator 206 uses this data for adjustment of the lifetime model by means of the Bayesian inference. The Bayesian inference is configured to enable updating of the lifetime model based on the health data which is collected periodically. The Bayesian inference is used herein as an example and any other mathematical model may be used.

In an exemplary implementation, the health monitor 202, the write estimator 204, the simulator 206, the endurance 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 endurance estimator 208, and the timer 210 may be implemented as specialpurpose circuitry in the apparatus 200.

The present apparatus 200 provides a precise estimation of remaining flash memory lifetime i.e. an amount of data that can be written to the flash memory during lifespan. This precise estimation of remaining lifetime can be done at any moment of flash memory lifespan. The present apparatus 200 uses health data which is provided by standard flash memory interface features already present in the flash memory 212. Thus, estimation of remaining flash memory lifetime by the present apparatus 200 enables efficient utilization of remaining flash memory for all types of users such as light users writing small amount of data and heavy users writing large amount of data. In comparison to conventional apparatus where estimation of remaining flash memory lifetime is done based on average Terabytes Written (TBW), Device Writes Per Day (DWPD), and Write Amplification Factor (WAF) provided by a vendor of the flash memory 212 and thus secure average users only. The present apparatus 200 is configured to update the lifetime model of the flash memory 212 with the wear out speed, as a result, a user write behavior is considered each time while estimating remaining flash memory lifetime. Further, the present apparatus 200 is applicable to regular flash memories and do not require hardware modifications. Beneficially, the present apparatus 200 has no influence on Input- Output (IO) flow performance thus there is no latency.

FIG. 2B is a block diagram that illustrates various components of an apparatus for flash memory endurance management, in accordance with another embodiment of the present disclosure. With reference to FIG. 2B, there is shown the apparatus 200. In this case, the apparatus 200 further includes a computing device 214A with a flash memory drive 216A in addition to the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, and the timer 210. There is further shown a processor 218 and a network interface 220, and the flash memory 212. The processor 218 is communicatively coupled to the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, and the timer 210.

According to an embodiment, the apparatus 200 further comprises the computing device 214A with the flash memory drive 216A. The computing device 214A may include a suitable logic, circuitry, and interfaces that may be configured to mount and operate the flash memory drive 216A. The flash memory drive 216A is configured to enable one or more users to store, backup or transfer data to the flash memory 212. In an example, the computing device 214A may further include other software drives to enable communication between the apparatus 200 and the flash memory 212 to obtain health data of the flash memory 212.

The processor 218 is configured to provide health data of the flash memory 212 to the health monitor 202 and provide the health data to server to update lifetime model based on health data received from other flash memories. In an implementation, the processor 218 is configured to execute instructions stored in the flash memory 212. In an example, the processor 218 may be a general-purpose processor. Other examples of the processor 218 may include, but is not limited to a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a central processing unit (CPU), a state machine, a data processing unit, and other processors or control circuitry. Moreover, the processor 218 may refer to one or more individual processors, processing devices, a processing unit that is part of a machine, such as the apparatus 200. In an implementation, the processor 218 may execute various modules, such as the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, and the timer 210 to enable such modules to execute their corresponding functions.

The network interface 220 includes suitable logic, circuitry, and/or interfaces that may be configured to communicate with one or more external devices, such as a server. Examples of the network interface 220 may include, but is 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 coder-decoder (CODEC) chipset, and/or a subscriber identity module (SIM) card.

Thus the present apparatus 200 provides a precise estimation of remaining flash memory lifetime which can be done at any moment of flash memory lifespan. The present apparatus 200 uses health data which is provided by standard flash memory interface features already present in the flash memory 212. Thus, estimation of remaining flash memory lifetime by the present apparatus 200 enables efficient utilization of remaining flash memory for all types of users such as light users writing small amount of data and heavy users writing large amount of data.

FIG. 3 is a block diagram that illustrates a system for flash memory endurance management, in accordance with an embodiment of the present disclosure. With reference to FIG, 3, there is shown a system 300. The system 300 includes the apparatus 200 and a server 302 connected via a network 304. There is further shown a plurality of devices 214B-214N comprising flash memory drives 216B-216N. There is further shown the flash memory 212. The apparatus 200 includes the health monitor 202, the write estimator 204, the simulator 206, the endurance estimator 208, the timer 210.

The server 302 includes suitable logic, circuitry, interfaces, or code that is configured to store, access, or manage the health data that is received from the apparatus 200 and one or more of the plurality of devices 214B-214N. In an example, the server 302 may include components such as memory, a processor, a network adapter and the like, to store, access or manage the health data. The server 302 is connected to the apparatus 200 and one or more external devices 214B-214N via the network 304.

The network 304 includes a medium (e.g., a communication channel) through which the server communicates with the apparatus 200 and the one or more external devices 214B-214N. The network 304 may be a wired or wireless communication network. Examples of the network 304 may include, but are not limited to, a Wireless Fidelity (Wi-Fi) network, a Local Area Network (LAN), a wireless personal area network (WPAN), a Wireless Local Area Network (WLAN), a wireless wide area network (WWAN), a cloud network, a Long Term Evolution (LTE) network, a plain old telephone service (POTS), a Metropolitan Area Network (MAN), and/or the Internet.

In operation, the server 302 is configured for collecting the health data of the flash memory 212 from the apparatus 200 and/or one or more other devices 214B-214N comprising flash memory drives 216B-216N of the same type as described in the aforementioned step 102, and updating the lifetime model of the flash memory 212 based on the collected health data as described in the aforementioned step 106. The health data of the plurality of devices 214B-214N is received to enable tuning of lifetime model of flash memory 212 and other subsequent flash memories. The collecting of the health data enables in analyzing the data using simulation of same model algorithm. The server 302 is configured to analyze the health data to allow detection of users of flash memory 212 who are at risk, for example, due to their write profile, and detect models of flash memory 212 which are at risk, for example, due to their design. The plurality of devices 214B-214N comprising the flash memory drives 216B-216N may be associated with respective apparatus (such as the apparatus 200 of the present disclosure) and respective flash memory (such as the flash memory 212). By virtue of collecting of the health data from the plurality of devices 214B-214N and updating the lifetime model of the flash memory 212 based on the collected health data enables in providing even more precise extra amount of data that can be written to the flash memory 212 without affecting the warranty period of the flash memory 212.

The apparatus 200 is configured for determining temporal write estimation as described in the aforementioned step 104, determining remaining lifetime of flash memory based on updated lifetime model as described in the aforementioned step 108, and determining extra write resource based on temporal write estimation and remaining lifetime as described in the aforementioned step 110. Since the server may collect the health data and update the lifetime model, the health monitor 202 and simulator 206 in the apparatus 200 are optional.

Optionally, the server 302 is configured for collecting the 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) comprising flash memory drives 216B-216N of the same type as described in the aforementioned step 102, and send the collected heath data to the apparatus 200. Then the apparatus 200 performs the aforementioned steps 104 to 110. In this case, the health monitor 202 in the apparatus 200 may be optional. The system 300 provides a precise estimation of remaining flash memory lifetime i.e. an amount of data that can be written to the flash memory during lifespan. This precise estimation of remaining lifetime can be done at any moment of flash memory lifespan. The present system 300 uses health data which is provided by standard flash memory interface features already present in the flash memory 212. Thus, estimation of remaining flash memory lifetime by the present system 300 enables efficient utilization of remaining flash memory 212 for all types of users such as light users writing small amount of data and heavy users writing large amount of data. Optionally, the present system 300 is configured to update the lifetime model of the flash memory 212 based on the wear out speed, as a result, a user write behavior is considered each time while estimating remaining flash memory lifetime. Further, the present system 300 is applicable to regular flash memories and do not require hardware modifications. Beneficially, the present system 300 has no influence on Input-Output (IO) flow performance thus there is no latency. By virtue of collecting of the health data from the plurality of devices and updating the lifetime model of the flash memory 212 based on the collected health data enables in providing even more precise extra amount of data that can be written to the flash memory 212 without affecting the warranty period of the flash memory 212.

FIG. 4 is an exemplary flowchart of a flash memory endurance management process in a device supporting a method of or an apparatus for flash memory endurance management, in accordance with an embodiment of the present disclosure. There is shown a process 400. The process 400 can be implemented in an apparatus as described, for example, with reference to FIGS. 2 A or 2B. The process 400 includes steps 402 to 416.

At step 402, the process 400 comprises initialization of flash memory endurance management in a device such as a mobile device with flash memory. At step 404, the process 400 comprises collecting the health data (i.e., present health data) of the flash memory such as flash memory 212, for example, in the same way as at the step 102 of the method 100 of flash memory endurance management, described with reference to FIG. 1. At step 406, the process 400 comprises checking if the health data of the flash memory 212 has been recorded previously. If the health data of the flash memory 212 has been recorded previously then steps 408, 410 and 412 are executed. If the health data of the flash memory 212 has not been recorded previously then steps 414 and 416 are executed. At step 408, the process 400 comprises comparing the present health data with the health data recorded previously to determine if values of health data have changed significantly. If the values of health data have changed significantly then steps 410 and 412 are executed and if the values of health data have not changed significantly then step 416 is executed. At step 410, the process 400 comprises adjusting parameters of lifetime model of the flash memory 212, which may involve the same actions as the steps 104 to 108 of the method 100 described with reference to FIG. 1. At step 412, the process 400 comprises estimating lifetime of the flash memory 212 which may further comprise recording or saving the lifetime estimation for future reference, until a new estimation is obtained. The estimating of lifetime of the flash memory at step 412 can involve the same actions as the steps 110 to 112 of the method 100 described with reference to FIG. 1. At step 414, the process 400 comprises recording or saving the health data of the flash memory 212. The health data of the flash memory 212 may be saved at the step 414 for the first time or may be saved after the lifetime estimation by the process 400. At step 416, the process 400 comprises waiting for further collection of health data of the flash memory 212.

FIG. 5 is a graphical representation that depicts a distribution of dynamic V CE for one user, with an average V CE , and a normal distribution to illustrate a speed of cycles of erase (CE) per block growth of a flash memory, in accordance with an embodiment of the present disclosure. With reference to FIG. 5, there is shown a graphical representation 500 of the speed of cycles of erase (CE) growth per block of a flash memory such as flash memory 212 of FIG. 2.

In the graphical representation 500, there is shown a speed of CE growth on X-axis 502 and a number of records on Y-axis 504. There is shown a dynamic V CE distribution 506, an average V CE 508 and a normal distribution 510 for one user.

The average speed of CE growth over three years is represented by the equation (1) (described in FIG. 1). A mathematical model may be applied to estimate V CE at any moment during the lifespan of the flash memory based on a dynamic speed of CE growth and a static speed of CE growth. The dynamic speed of CE growth is referred to as V EE n which is online measurements of V CE on particular flash memory during use. The static speed of CE growth is referred to as V EE at which is calculated based on offline measurements (not shown here).

In practice, in a real device, flash memories, V EE n is influenced by many random factors so it will not be equal to real V CE . In other words, every time V E n is measured V CE and some noises are obtained. Thus, a difference between V CE and the is considered in the mathematical model to estimate V CE at any moment during the lifespan of the flash memory In an example, i.e., in reality during operation of the flash memory, if a Real V CE i.e., average V CE 508 is 0.142 and a measured value of V^ n i.e., dynamic V CE 506a is 0.167, then a noise 512 in this case is equal to 0.025, which is the difference between the measured value of l^ yn and the Real V CE i.e., average V CE 508. The difference is considered as normal random variable.

FIG. 6 is a graphical representation that depicts a prior distribution that is expectation of user’s V CE used as a part of Bayesian inference, in accordance with an embodiment of the present disclosure. With reference to FIG. 6, there is shown a graphical representation 600 of an expected speed of erase cycle (CE) growth of a flash memory, such as flash memory 212 of FIG. 2 before any specific data (i.e., health data) of the flash memory 212 is received.

The graphical representation 600 represents a distribution of speed of CE growth on X-axis 602 and number of records on Y-axis 604. There is shown a most probable V CE value 606 i.e., most probable speed of CE growth. This data (i.e., records) are collected based on the health data provided by a plurality of devices, such as the plurality of devices 214B-214N.

It is well known that Bayesian inference is a statistical inference in which Bayes' theorem is used to update the probability for a hypothesis as more evidence or information becomes available. In the present disclosure, optionally, the Bayesian inference is configured to enable updating of the lifetime model based on the health data which may be collected periodically. Bayesian inference as lifetime model is used to dynamically reflect the flash memory's wear out pattern change caused by number of reasons (device and its subsystems operation features, free space available, ambient temperature, spectrum of tasks to be solved on the device by a user etc.).

In this case, in the graphical representation 600, the prior distribution represents expectation of user’s V CE before any specific data (evidence is observed). So, this prior distribution answers the question: from which probability randomly chosen user will have this or that value (i.e., which value). For example, consider distribution of V EE at for one potential new member (piun). The peak of prior distribution corresponds to the most popular value of V EE at (i.e., the most probable V CE value 606). This means that a greater number of users lie with that value more than with any other value. So, if a user is selected randomly, it is very likely that an exactly peak value may be expected. However, each time when a new measurement of V^ E n is received, the expectation of user’s V CE is changed.

FIG.7 is a graphical representation that depicts expected speed of erase cycle (CE) growth and actual speed of CE growth of flash memory, in accordance with an embodiment of the present disclosure. With reference to FIG. 7, there is shown a graphical representation 700 of expected speed of CE growth and actual speed of CE growth of the flash memory, such as flash memory 212 of FIG. 2.

The graphical representation 700 represents speed of CE growth on X-axis 702 and number of records on Y-axis 704. There is shown a first curve 706 representing expected speed of CE growth i.e., V CE from beta-users. There is further shown a second curve 708 representing expected speed of CE growth i.e., V CE when some online measurements are received. There is further shown a third curve 710 representing final distribution of dynamic speed of CE growth i.e., V EE n which is actual speed of CE growth. Bayesian inference derives the posterior probability (represented by the second curve 708) as a consequence of a prior probability (represented by the first curve 706) and a likelihood function (represented by the third curve 710) derived from a statistical model for the observed data. Each time new measurement of V EE n is received expectation of user’s V CE is changed. In an example, if V EE n is higher than expected of V CE than further higher V CE is expected. If V EE n is smaller than expected of V CE than further smaller V CE is expected. A mean value 712 of the third curve 710 represents a real V CE .

Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including", "comprising", "incorporating", "have", "is" used to describe and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. 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 to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". It is appreciated that certain features of the present disclosure, 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 present disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.