存储相关知识①—通用NAND Flash 基础
存储相关知识①—通用NAND Flash 基础存储核心底层原理通用Flash根基NAND Flash 原理一、 宏观结构NAND Flash的内部由大到小可以分为以下几个层级①Die裸片一颗NAND芯片内部可能包含一个或多个Die每个Die是一个独立的存储矩阵。②Plane平面一个Die包含多个Plane它们是并行操作的基本单元。③Block块这是擦除Erase的最小单位。一个Block通常包含几十到几百个Page。你可以把一个Block想象成一本书。④Page页这是写入Program和读取Read的最小单位。通常大小为4KB、8KB或16KB。一页就像书里的一张纸。⑤Cell存储单元Page由成千上万个Cell组成真正用来存放1或0数据的地方。NAND Flash 主要物理痛点只能按页读写写数据只能由 1 — 0按块擦除擦除由 0 — 1而且每次擦除会影响Nand寿命物理氧化所以为了延长使用寿命才引入多种算法提高效率存储算法介绍——目的提升 SSD 可靠性、寿命与性能FTL地址映射提高Nand寿命和提高访存效率FTLFlash Translation Layer闪存转换层 是SSD的主控固件它充当主机操作系统与物理闪存之间的“翻译官”。主机看到的地址是连续的但FTL会将其巧妙映射到物理闪存上。个人认为在映射算法这块和计算机组成原理中CPU Cache映射非常相似SSD的三种映射方式页映射Page Mapping以“页”通常是4KB或16KB为单位进行映射。特点灵活高效随机写入性能极佳但需要庞大的内存来存放映射表每1GB物理空间就需要约1MB内存存表。类比Cache映射全相联映射Full Associative主存主机地址的任意一块可以放入Cache物理闪存的任意一页。最灵活命中率最高但查找起来最费劲需要遍历或复杂的CAM电路块映射Block Mapping以“块”通常包含数十到上百个页为单位进行映射。特点映射表极小但写入时必须整块操作效率低极易造成写放大。类比Cache映射直接映射Direct Mapped主存的每一块只能放入Cache的唯一固定位置。硬件实现最简单但容易产生冲突就算其他地方空着也只能死磕那一个位置。混合映射Hybrid Mapping将数据块与元数据/映射表分开存储结合两者优点。特点兼顾了性能与内存占用是很多中高端SSD的折中方案。类比Cache映射组相联映射Set Associative主存的块可以先分组组内再使用页映射全相联。既避免了频繁冲突又控制了查找复杂度。GC 垃圾回收提高空间利用率GCGarbage Collection垃圾回收回收无效页、整理空闲块解决 “写放大 空间碎片化”。背景NAND 不能原地覆盖更新数据时新数据写入新页旧页变成 “无效页”。问题长期运行后块里混杂有效 / 无效页空闲块变少、写入变慢。做法①选一个 “脏块”无效页多②搬移有效页到新空闲块③擦除原脏块变成可再次写入的空闲块。关键指标写放大 WAF主控写入量 / 主机写入量越小越好GC 会带来额外读写影响性能。WL 磨损均衡延长整体寿命WLWear Leveling磨损均衡让所有块 P/E 次数尽量一致避免局部块提前写坏延长整体寿命。背景NAND 块擦写P/E有上限SLC ≈ 10 万MLC ≈ 3k–1 万TLC ≈ 500–1500QLC ≈ 100–500问题热点数据如文件系统元数据反复写同一块很快写坏冷块几乎不用整体寿命由最先坏的块决定。做法FTL 映射①动态 WL写数据时优先选 P/E 最少的空闲块同一逻辑地址反复写映射到不同物理块。②静态 WL定期把 冷数据从年轻块搬到年老块抹平块间磨损差异。BBM 坏块管理硬件故障隔离可靠性兜底BBMBad Block Management坏块管理识别 / 标记 / 隔离坏块把写入重定向到好块保证数据可靠、不写入坏块。坏块来源①出厂坏块NAND 出厂就有不可避免②运行坏块P/E 超限、擦写错误、硬件失效。核心机制①坏块表 BBT记录所有坏块地址出厂扫描 运行时动态更新②地址重定向写入时若命中坏块自动映射到备用好块③隔离 屏蔽坏块不再分配避免数据丢失 / 错误。可靠性算法1. ECC 错误校验纠错作用修正 NAND 电荷漂移导致的位错误等级SLC 轻量 ECCTLC/QLC 强制 LDPC 硬纠错场景读干扰、编程干扰、电荷漏电纠错2. RAID 磁盘冗余RAID0条带分片极速无冗余RAID1镜像备份高可靠双倍空间RAID5奇偶校验兼顾容量与容错RAID6双校验双盘容错企业级通用3. 掉电保护硬件钽电容 / 超级电容断电缓存落盘软件日志日志块、元数据预存防止断电分区损坏、数据错乱4. 数据恢复逻辑恢复FTL 映射表重建、无效页回溯硬件恢复NAND 原始数据读取、ECC 硬解码、坏块跳过重组性能指标1.顺序读写大文件连续吞吐视频 / 拷贝场景2.4K 随机读写小文件高频访问系统、数据库核心指标3.IO 延迟单请求响应耗时越低系统越流畅4.带宽单位时间最大数据传输量5.IOPS每秒最大读写请求数随机性能核心6.写入放大实际写入 / 主机写入比值越小越省寿命7.功耗模型①活跃功耗全速读写功耗②休眠功耗待机低功耗③动态调压闲时降频降压省电