Nand Flash 是一种非易失性存储器,具有读写速度快 . 功耗低 . 存储密度高等优点,目前被广泛应用于电子产品中,如固态硬盘( SSD)、手机、数码相机等。进入 21 世纪以来,随着 CPU 主频以及 IO 频率的不断提高,传统硬盘由于读写速度慢等原因已经成为 PC、服务器存储等领域发展的瓶颈。由于基于 Nand Flash 的存储相比于传统硬盘存储具有体积小、读写速度快 . 抗震动强、温湿度适应范围宽等优点, Nand Flash 的市场份额正在迅速扩大,逐步取代传统硬盘。尤其在航天航空、国防军事等特殊的应用环境领域中,Nand Flash 已经成为存储设备的首选。

 

Nand Flash 存储器内部是由存储单元“浮置栅晶体管”阵列排布组成,每一个“浮置栅晶体管”包括 2 个栅极:一个控制栅极和一个浮置栅极,如图 1 所示。浮置栅极被绝缘层包围,能够长时间存储电荷。存储单元初始状态为擦除状态,此时浮置栅极没有电子积聚,当对控制栅极施加正电压时,电子会从源极与漏极之间的通道经过氧化层陷入浮置栅极,此时存储单元处于编程状态。擦除操作是在源极加正电压,利用浮置栅极与源极之间的隧道效应,把浮置栅极的电子吸引到源极。

 


图 1 浮置栅晶体管结构示意图


Nand Flash 存储空间由若干个 plane 组成,每个 plane 又包含若干个块,块又由页组成。页包括数据区域和冗余区域 2 部分,数据区域用来存储数据,冗余区域则用来存储 ECC 相关信息和映射表等信息 12。页为 Nand Flash 的读写单元,块为擦除操作单元。

 

Nand Flash 每个存储单元可以存储一个或多个比特位,当只存储一个比特位时,这种存储单元称为单阶存储单元( SLC);当能够存储 2 个比特位时,称为多阶存储单元(MLC);当存储 3 个比特位时,称为三阶存储单元(TLC)。在 MLC 和 TLC 中,通过不同的电荷量来存储多个比特位,因此数据读取时需要检测出电流量大小以确定电荷级别。而在 SLC 中只需检测电荷的有无即可。MLC 和 TLC 类型存储器利用单个存储单元存储多个比特位,大大提高了存储密度,降低了存储成本,但同时也增大了误码率,而且寿命也要远远小于 SLC 类型存储器。

 

对于长度为 512 B 的数据,目前的纠错位数要求大概为:
SLC:1 位~12 位纠错能力;
MLC:4 位~40 位纠错能力;
TLC:60 位以上的纠错能力。

 

Nand 闪存存储错误发生的机制主要包括:存储密度的提升以及阈值电压多级分布造成各存储单元之间干扰增大,从而导致存储过程中存储电压发生偏移而发生错误;随着编程擦除周期次数的增加,陷阱电荷改变了阈值电压的分布,使得电压的分布区变宽,导致 2 阈值电压之间发生重叠,从而造成误判;在航空航天等应用环境中,电子会由于能量辐射而发生热运动,也会导致存储数据的错误。采用纠错编码技术能够大大降低这些错误的发生。