两者的擦写机制也存在差异:NOR Flash支持字节级写入,但擦除需按块进行;NAND Flash则必须按页写入、按块擦除,且写入前需先擦除对应块。这种特性使得NAND Flash在大容量数据读写时效率更高,而NOR Flash在需要频繁修改小量数据的场景中更具优势。
工作流程:擦除、编程与读取的协同操作
Flash存储器的工作过程需严格遵循“擦除-编程-读取”的顺序,每个环节都依赖精密的电压控制和时序管理。
擦除操作是将浮栅中的电子释放,使存储单元恢复为“1”状态。此时控制栅施加反向高电压,衬底接地,浮栅中的电子通过隧道效应回到衬底,整个过程针对“块”进行(NAND Flash的块大小通常为128KB-2MB)。擦除时间较长(毫秒级),这是因为需要确保块内所有单元的电荷完全释放,否则会导致数据干扰。
编程(写入)操作是向浮栅注入电子的过程,针对“页”进行(NAND Flash的页大小通常为2KB-16KB)。编程前需确保对应块已完成擦除,然后通过地址信号定位目标页,施加编程电压将数据写入。为提高效率,现代NAND Flash支持“多页编程”,可连续写入多个页数据,将单次编程的时间压缩至微秒级。
读取操作则通过检测晶体管的导通状态实现,支持随机读取单页数据。控制器发送页地址后,存储阵列通过行 decoder 选中目标页,列 decoder 输出具体数据,整个过程耗时约几十至几百纳秒。NAND Flash还会在读取时进行“错误校验”(如ECC校验),通过算法修正少量位错误,确保数据准确性。
这种按块擦除、按页编程的机制,是Flash平衡存储密度与操作效率的结果,但也带来了“写入放大”等特殊问题——更新小量数据时,需先读取整个块、修改数据、擦除块再重新写入,导致实际写入量远大于理论数据量。