Changes between Version 12 and Version 13 of MMC

05/22/2020 07:14:26 PM (4 years ago)
Tim Harvey

added section on reliability and longevity


  • MMC

    v12 v13  
    241241 *
     245== Reliability / Longevity and Program / Erase cycles
     246MMC 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.
     248The 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.
     250Therefore, 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.
     252The value of TBW is inversely proportional to another variable WAF (Write Amplification Factor).
     253WAF 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.
     255The 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.
     257For example, workloads of Random Writes will generate a bigger WAF number than workloads of Sequential Writes.
     259As 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.
     274For additional detail including Write Amplification Factor for your specific workload you would need to consult the particular storage device manufacturer.
     276As 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.
     279 *