eMMC健康评估
https://www.kingston.com/en/blog/embedded-and-industrial/emmc-lifecycle
eMMC和NAND设备有着很大的差别,很多涉及NAND管理的工作都移到eMMC内部进行。
比如NAND block management, garbage collection, error control, and wear leveling.
Host向NAND flash的写入如果低效率的话,可能引起介质更早失效。NAND的最小组织单位是page,可以以page为单位读和program,但是不能erase。
能够被earse的最小单位是block,由多个page组成。因此page不能被重新写入,直到一个block被擦除。随着时间推移,当达到耐受等级时,block可能失效,导致早期的失败因素也可能出现。
NAND Flash has limited program-erase cycles available. Reaching that limit means the device is in EoL state, meaning that it is no longer reliable. Endurance varies depending on the NAND cells’ configuration.
eMMC read和write是以512byte为一个sector为单位,这是逻辑单位,而非物理。Sector address又叫Logical block address, or LBAs.
当数据改变时,擦除整个NAND block是不实际的,对于那些没有数据改变的page,会引起不必要的磨损。一种LBA-PBA(Physical block address)映射机制提供了较少的写入来平衡block磨损,被叫做磨损均衡。
其本质就是一个LBA-PBA的映射表,能够平衡磨损和提高写入速度。
地址映射的步骤如下:
- eMMC sector是512bytes,而NAND pages通常是16KB。映射表使用连续32个sector地址为一组,当成一个page-sized单位。
- 如果一个page组中的一个sector数据改变,eMMC控制器会读这个page的所有sector,并且更新需要修改的sector,之后将更新后的page写入到一个新page位置。
- 当更新后的page被program完成后,映射表也会更新,用更新后的页地址来覆盖之前条目中block和page地址。
- 即使只有一个sector需要修改,NAND flash也必须program一个整个page。这种低效被叫做写入放大。NAND flash的写入和eMMC level的写入之比,被称为写入放大因素WAF (Write Amplification Factor)。
小数据,随机地址,和不是page对齐的写入通常是写入放大最主要来源。为了最小化WAF,写操作应该与一个page边境对齐。最优的单位大小在Optimal Write Size filed in EXT CSD。

浙公网安备 33010602011771号