非易失性存储元件有很多种,如 EPROM、EEPROM、NOR FLASH 和 NAND FLASH,前两者已经基本被淘汰了,因此我仅关注后两者,本文对 FLASH 的基本存储单元结构、写操作、擦除操作和读操作的技术进行了简单介绍,对了 NOR 和 NAND 由存储结构决定的特性和应用场合的差异,对后续的硬件设计和驱动编程起到铺垫作用。
1. FLASH 基本存储单元——浮栅场效应管
NOR FLASH 和 NAND FLASH 都是使用浮栅场效应管(Floating Gate FET)作为基本存储单元来存储数据的,浮栅场效应管共有 4 个端电极,分别是为源极(Source)、漏极(Drain)、控制栅极(Control Gate)和浮置栅极(Floating Gate),前 3 个端电极的作用于普通 MOSFET 是一样的,区别仅在于浮栅,FLASH 就是利用浮栅是否存储电荷来表征数字 0’和‘1’的,当向浮栅注入电荷后,D 和 S 之间存在导电沟道,从 D 极读到‘0’;当浮栅中没有电荷时,D 和 S 间没有导电沟道,从 D 极读到‘1’,原理示意图见图 1.1[1],图 1.2 是一个实际浮栅场效应管的剖面图。
注:SLC 可以简单认为是利用浮栅是否存储电荷来表征数字 0’和‘1’的,MLC 则是要利用浮栅中电荷的多少来表征‘00’,‘01’,‘10’和‘11’的,TLC 与 MLC 相同。
2. FLASH 基本存储单元的操作——写/擦除/读
FLASH 中,常用的向浮栅注入电荷的技术有两种—热电子注入(hot electron injection)和 F-N 隧道效应(Fowler Nordheim tunneling);从浮栅中挪走电荷的技术通常使用 F-N 隧道效应(Fowler Nordheim tunneling),基本原理见图 2[2]。
写操作就是向浮栅注入电荷的过程,NOR FLASH 通过热电子注入方式向浮栅注入电荷(这种方法的电荷注入效率较低,因此 NOR FLASH 的写速率较低),NAND FLASH 则通过 F-N 隧道效应向浮栅注入电荷。FLASH 在写操作之前,必须先将原来的数据擦除(即将浮栅中的电荷挪走),也即 FLASH 擦除后读出的都是‘1’。
擦除操作就是从浮栅中挪走电荷的过程,NOR FLASH 和 NAND FLASH 都是通过 F-N 隧道效应将浮栅中的电荷挪走的。
读出操作时,控制栅极上施加的电压很小,不会改变浮栅中的电荷量,即读出操作不会改变 FLASH 中原有的数据,也即浮栅有电荷时,D 和 S 间存在导电沟道,从 D 极读到‘0’;当浮栅中没有电荷时,D 和 S 间没有导电沟道,从 D 极读到‘1’。
3 NOR FLASH 和 NAND FLASH 的结构和特性
3.1 NOR FLASH 的结构和特性
NOR FLASH 的结构原理图见图 3.1,可见每个 Bit Line 下的基本存储单元是并联的,当某个 Word Line 被选中后,就可以实现对该 Word 的读取,也就是可以实现位读取(即 Random Access),且具有较高的读取速率,图 3.1 是一个 3*8bit 的 NOR FLASH 的原理结构图,图 3.2 是沿 Bit Line 切面的剖面图,展示了 NOR FLASH 的硅切面示意图,这种并联结构决定了 NOR FLASH 的很多特性。
- 基本存储单元的并联结构决定了金属导线占用很大的面积,因此 NOR FLASH 的存储密度较低,无法适用于需要大容量存储的应用场合,即适用于 code-storage,不适用于 data-storage,见图 3.3[3]。
- 基本存储单元的并联结构决定了 NOR FLASH 具有存储单元可独立寻址且读取效率高的特性,因此适用于 code-storage,且程序可以直接在 NOR 中运行(即具有 RAM 的特性)。
- NOR FLASH 写入采用了热电子注入方式,效率较低,因此 NOR 写入速率较低,不适用于频繁擦除/写入场合。
最后来个小贴士:NOR FLASH 的中的 N 是 NOT,含义是 Floating Gate 中有电荷时,读出‘0’,无电荷时读出‘1’,是一种‘非’的逻辑;OR 的含义是同一个 Bit Line 下的各个基本存储单元是并联的,是一种‘或’的逻辑,这就是 NOR 的由来。
3.2 NAND FLASH 的结构和特性
NAND FLASH 的结构原理图见图 3.4,可见每个 Bit Line 下的基本存储单元是串联的,NAND 读取数据的单位是 Page,当需要读取某个 Page 时,FLASH 控制器就不在这个 Page 的 Word Line 施加电压,而对其他所有 Page 的 Word Line 施加电压(电压值不能改变 Floating Gate 中电荷数量),让这些 Page 的所有基本存储单元的 D 和 S 导通,而我们要读取的 Page 的基本存储单元的 D 和 S 的导通/关断状态则取决于 Floating Gate 是否有电荷,有电荷时,Bit Line 读出‘0’,无电荷 Bit Line 读出‘1’,实现了 Page 数据的读出,可见 NAND 无法实现位读取(即 Random Access),程序代码也就无法在 NAND 上运行。
图 3.4 是一个 8*8bit 的 NAND FLASH 的原理结构图,图 3.5 是沿 Bit Line 切面的剖面图,展示了 NAND FLASH 的硅切面示意图,NAND FLASH 的串联结构决定了其很多特点。
- 基本存储单元的串联结构减少了金属导线占用的面积,Die 的利用率很高,因此 NAND FLASH 存储密度高,适用于需要大容量存储的应用场合,即适用于 data-storage,见图 3.3[3]。
- 基本存储单元的串联结构决定了 NAND FLASH 无法进行位读取,也就无法实现存储单元的独立寻址,因此程序不可以直接在 NAND 中运行,因此 NAND 是以 Page 为读取单位和写入单位,以 Block 为擦除单位,见图 3.6。
- NAND FLASH 写入采用 F-N 隧道效应方式,效率较高,因此 NAND 擦除/写入速率很高,适用于频繁擦除/写入场合。同时 NAND 是以 Page 为单位进行读取的,因此读取速率也不算低(稍低于 NOR)。
最后来个小贴士:NAND FLASH 的中的 N 是 NOT,含义是 Floating Gate 中有电荷时,读出‘0’,无电荷时读出‘1’,是一种‘非’的逻辑;AND 的含义是同一个 Bit Line 下的各个基本存储单元是串联的,是一种‘与’的逻辑,这就是 NAND 的由来。
3.3 NOR 和 NAND 的比对
通过 3.1 和 3.2 节对 NOR 和 NAND 结构和特点的解析,我们可以得出图 3.7[5]和图 3.8[5]中的结论,更详细的比对请见参考文献[3]。
4. FLASH 基本存储单元的可靠性问题
FLASH 的可靠性问题已经超出了本文需要讲解内容的范畴,如有兴趣,请见参考文献[7]。
参考文献
- [1] Introduction to Flash Memory ROBERTO BEZ, EMILIO CAMERLENGHI, ALBERTO MODELLI, AND ANGELO VISCONTI
- [2] FLASH MEMORY TECHNOLOGY
- [3] Two Flash Technologies Compared: NOR vs NAND Written by: Arie Tal
- [4] http://www.360doc.com/content/06/1120/10/12646_266138.shtml
- [5] NAND vs. NOR Flash Memory Technology Overview TOSHIBA
- [6] Flash Memory Cells—An Overview
- [7] Reliability issues of flash memory cells