闪存技术全解析:从NAND Flash到MTD设备
1. NAND Flash概述
NAND Flash是一种非易失性存储技术,相比NOR Flash,它具有成本低、容量高的优势。早期的NAND芯片采用单层单元(SLC)架构,每个存储单元存储1位数据;后来发展到多层单元(MLC),每个单元存储2位数据;如今则有三层单元(TLC),每个单元可存储3位数据。不过,随着每个单元存储位数的增加,存储的可靠性会下降,需要更复杂的控制器硬件和软件来补偿。如果对可靠性要求较高,建议使用SLC NAND Flash芯片。
NAND Flash以擦除块的形式组织,擦除块大小从16 KiB到512 KiB不等。擦除一个块会将所有位设置为1,但在块变得不可靠之前的擦除周期数相对较低,例如TLC芯片通常只有1K次,而SLC可达100K次。NAND Flash只能按页(通常为2或4 KiB)进行读写,不能按字节访问,因此代码和数据在访问前需要先复制到RAM中。
数据传输过程中容易出现位翻转问题,可使用纠错码(ECC)来检测和纠正。SLC芯片一般使用简单的汉明码,可通过软件高效实现,能纠正页面读取中的单一位错误;MLC和TLC芯片则需要更复杂的编码,如Bose-Chaudhuri-Hocquenghem(BCH)码,可纠正每页多达8位的错误,且需要硬件支持。
为了存储ECC,每页有一个额外的区域,称为带外(OOB)区域或备用区域。SLC设计通常每32字节主存储有1字节的OOB,对于2 KiB页面设备,每页OOB为64字节;4 KiB页面则为128字节。MLC和TLC芯片的OOB区域相对更大,以适应更复杂的ECC。
在生产过程中,制造商会测试所有块,并通过在块中每页的O
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



