兵哥为了实现能者多劳的,打破原有的大锅饭机制,必须判断闪存的真实耐磨度(如:page1为3000P/E cycle,page3为5000P/E cycle)。
测试page真实耐磨度的方法有很多,可以通过某个关键指标或者多个指标综合判断,也可以通过高温或者低温条件下的加速测试事先做好某一型号Nand Flash的耐磨度关键指标测试,具体做法有如下思路:
通过对某一个型号的Nand Flash做破坏性测试,对Nand Flash做最彻底的P/E测试,记录随着P/E cycle的增加,误码率(原始误码率和不可纠正误码率)和操作时间的精准数据,建立三者之间的数学模型,定义不同误码率(原始误码率及低强度ECC下的误码率)及操作时间对应page真实的耐磨度,通过高温条件下的加速测试修正此数学模型。
这个模型需要针对每款NAND Flash分别建立(跟使用哪款主控无关)。实际的操作过程比较复杂且非常耗时,同时需要对数学模型不断的修正使其更加精准。获得模型后放进固件的FTL部分,固件就可以根据实时收集到的误码率和操作时间得到每个page的真实寿命,效果那是杠杠的。
需要指出的是,当固件把寿命接近极限的MLC专程TLC以后,该模型不再适用:
- 转换本身是一种回光返照的用法,属于压榨剩余价值,继续使用模型意义不大;
- 研究这种状态下的模型,投入产出比太低,兵哥是商人,不是慈善家;
-
一旦PE次数接近极限,绝缘层已经变形,内部的电子空穴对很多,漏电流也很多,这已经不光是寿命的问题,data retention的问题也会出现。关于这点,兵哥给我看了两幅图:
新Flash的绝缘层
擦写过10万次以后的绝缘层 (这图我看的不是很懂),中间83A,两边130A,绝缘层已经严重变形了。
第一季(完)