| 243 | [=#reliability] |
| 244 | [=#longevity] |
| 245 | == Reliability / Longevity and Program / Erase cycles |
| 246 | MMC devices are managed NAND FLASH devices meaning there is a controller inside the part that deals with wear-leveling to move blocks around to avoid over-use of blocks. Parts contain extra blocks such that over time blocks that have to be excluded either because their program/erase cycle max has been reached or blocks fail the devices still retain their original size. |
| 247 | |
| 248 | The reliability or longevity of a manged device depends on your use case (rate of program/erase cycles as well as how much of the device is available for use) and the number of extra blocks and therefore varies greatly per device and use case. |
| 249 | |
| 250 | Therefore, endurance is expressed in TBW (Terabytes written), which represents the total amount of data that can be written to a storage device during its lifetime of use. A bigger TBW number means longer life. |
| 251 | |
| 252 | The value of TBW is inversely proportional to another variable WAF (Write Amplification Factor). |
| 253 | WAF is an undesirable phenomenon associated with flash memory, where the actual amount of information physically written to the storage media is a multiple of the logical amount intended to be written. |
| 254 | |
| 255 | The WAF of flash memory can be affected by many factors like Garbage collection, Erase, TRIM, wear leveling, sequential writes, random writes.... Therefore, WAF is a variable base on system workload. |
| 256 | |
| 257 | For example, workloads of Random Writes will generate a bigger WAF number than workloads of Sequential Writes. |
| 258 | |
| 259 | As a simple example here is a calculation for a specific workload on a specific eMMC device: |
| 260 | * Workload description |
| 261 | 1. 84% Sequential write, 16%Random write |
| 262 | 2. Chunk Size IOs Distribution: 30%: 4KB, 27%: 16KB, 42%: Mix of 8KB, 32KB-256KB, 1%: 512KB |
| 263 | 3. eMMC Cache on |
| 264 | * specific eMMC device specs (from datasheet): |
| 265 | - MLC device |
| 266 | - physical capacity = 0.0037(TB) for 4GB device |
| 267 | - endurance cycle = 3000 for MLC |
| 268 | * Write Amplication Factor (WAF): |
| 269 | - WAF = 4.5 (estimated from the workload description above with simulation) |
| 270 | * TBW = physical capacity * endurance cycle / WAF |
| 271 | - TBW = 0.0037(TB) * 3000(cycles) / 4.5(WAF) ~= 2.5 TBW |
| 272 | - 2.5 Terabytes is the total amount of data written to the device during its lifetime of use, depending on the workload. |
| 273 | |
| 274 | For additional detail including Write Amplification Factor for your specific workload you would need to consult the particular storage device manufacturer. |
| 275 | |
| 276 | As far as partition block pool isolation goes the boot0/boot1 eMMC partitions share the same block pool for wear-leveling. Therefore if Boot0 is no longer writable because the PE cycles of all boot blocks are over-spec, Boot1 will no longer be writable as well. The User area has its own block pool for wear leveling therefore it would be unaffected by overuse of Boot0/Boot1. While the the User area can be partitioned into an additional 4 Generic Purpose Partitions (GPPs) they still all would use the same block pool assigned to User. |
| 277 | |
| 278 | Reference: |
| 279 | * https://www.slideshare.net/VijayGESYS/emmc-embedded-multimedia-card-overview |
| 280 | |