分享一下 Device Lab 计算 NAND 闪存实际容量的方式以及一些相关说明。
苹果在对硬盘进行诊断分析的时候,能读取出厂坏块数、运行过程中新增的坏块数、虚拟块总数量、每个虚拟块包含的页数以及每页字节数等底层信息。
先说一下闪存可管理的总容量,比如配图 iPhone 14 Pro Max 的 1TB NAND,虚拟块总数量为 271、每个虚拟块包含 270336 Page、每页大小为 16384 Bytes,算下来总容量是 1200.31GB,也就是说这颗标称 1TB 的 NAND,苹果 FTL 可管理的闪存容量为 1200.31GB。
然后再计算单个物理块的容量,日志中的每个虚拟块包含的物理块是 64,因此每个物理块包含 4224 Page(270336 ÷ 64),结合每页大小 16384 Bytes 计算,每个物理块容量就大概是 69.21MB
有了这些信息,就可以去计算这颗 NAND 的出厂时的坏块的容量了,这颗硬盘出厂时的坏块数量是 142,按照单个物理块 69.21MB 计算,大约对应 9.83GB 容量,也就是说这颗 NAND 出厂时有 9.83GB 容量的被标记为了坏块。
这里顺便说明一下,几乎所有 NAND 厂商生产的 Die,实际容量都会比标称容量更大,因为 NAND 在制造过程中都会存在一定数量的出厂坏块,主控会将这些坏块标记隔离,不纳入 FTL 的容量管理,因此不会影响正常使用,至于硬盘在后续使用过程中新增的坏块,控制器则会使用预留的冗余空间进行替换和补偿,也不用担心因为产生了新坏块导致硬盘报废。
发布于 广东
