存储芯片之NANDFlash和NORFlash存储器的区别
2024-03-13 16:30:14 6,237
NAND Flash和NOR Flash存储器介绍
存储芯片中的FLASH是一种非易失性存储器(NVM,Non-Volatile Memory),用于存储数据、程序或固件。它得名于其能够在快速时间内擦除(Erase)存储单元并重新写入(Write)数据的能力,类似于摄影中的闪光灯(Flash)。FLASH存储器通常以集成电路芯片的形式存在,可分为两种主要类型:NAND Flash和NOR Flash。
NAND Flash:以 NAND 门为基础,数据以块的形式进行存储,适合高密度存储应用,如闪存卡、固态硬盘(SSD)等。
NOR Flash:以 NOR 门为基础,数据以字节的形式进行存储,适合于需要较快随机访问速度的应用,如嵌入式系统的程序存储、固件存储等。
FLASH存储器的特点包括非易失性(断电后数据不丢失)、可擦写性(允许多次擦除和写入)、高速读取、大容量、低功耗等。它在各种电子设备和系统中广泛应用,为这些设备提供了可靠的、高速的、非易失性的存储解决方案。
NAND闪存和NOR闪存的原理
数据存储原理
-
NAND闪存将数据以块的形式存储,每个块通常包含多个页,每页包含多个扇区。数据写入时,首先需要擦除整个存储块,然后将新的数据写入到存储页中。
-
NOR闪存将数据以字节的形式存储,存储单元通常以字节可寻址。数据写入时,可以直接覆盖已有的数据,实现对存储单元内容的修改。
浮栅重新放电
-
NAND闪存:在NAND闪存中,数据的写入和擦除是通过改变存储单元中的浮栅电荷状态来实现的。写入数据时,通过施加高电压将电子注入到浮栅中,改变其电荷状态;擦除数据时,通过施加高电压将浮栅中的电荷释放掉,使其恢复到初始状态。
-
NOR闪存:类似于NAND闪存,NOR闪存中也使用浮栅电荷状态来表示数据的存储状态。写入数据时,通过改变浮栅电荷状态来实现。
0和1的表示
-
NAND闪存中,数据存储的基本单位是存储单元的电荷状态。当存储单元中的浮栅电荷量较少时,表示为逻辑1;当电荷量较多时,表示为逻辑0。
-
在NOR闪存中,逻辑1和逻辑0的表示方式与NAND闪存类似,即浮栅电荷状态的不同。
连接及寻址方法
-
NAND闪存通常通过多路复用方式连接到主控制器,采用页编址的方式进行寻址。主控制器通过选择线(Wordline)和位线(Bitline)来选择特定的存储页,并将其内容读取或写入。
-
NOR闪存通常通过并行方式连接到主控制器,采用字节编址的方式进行寻址。主控制器可以直接指定存储单元的地址,并将其内容读取或写入。
NAND闪存与NOR闪存的区别
(1)NAND闪存和NOR闪存的性能对比
闪存是一种非易失性存储器,它可以对称为块的存储单元块进行擦除和重新编程。任何闪存器件的写操作只能在空的或已擦除的单元中执行,因此在大多数情况下,必须在写操作之前执行擦除。NAND器件执行擦除操作非常简单,而NOR则要求在擦除之前将目标块中的所有位都写入0。由于NOR器件以64-128KB为块进行擦除,因此执行一次写/擦除操作的时间为5s。相反,擦除NAND器件是以8-32KB为单位进行的,同样的操作最多只需要4ms。执行擦除时块大小的差异进一步拉大了 NOR 和 NAND 之间的性能差距。统计数据表明,对于给定的一组写操作(尤其是更新小文件时),必须在基于 NOR 的单元中执行更多的擦除操作。这样,设计者在选择存储方案时必须权衡以下因素。
- NOR的读取速度比NAND稍快。
- NAND的写入速度比NOR快很多。
- NAND的4ms擦除速度比NOR的5s快很多。
- 大多数写操作需要先擦除。
- NAND的擦除单元较小,相应的擦除电路也较少。
(2)NAND闪存和NOR闪存的接口区别
NOR flash具有SRAM接口,并且有足够的地址引脚可以寻址,因此可以轻松访问内部的每个字节。
NAND设备使用复杂的I/O端口来串行访问数据,每个产品或制造商的方法可能有所不同。8 个引脚用于传输控制、地址和数据信息。NAND 读写操作使用 512 字节块。这有点像硬盘来管理此类操作。当然,基于 NAND 的内存可以取代硬盘或其他块设备。
(3)NAND闪存和NOR闪存的容量和成本
NAND闪存的单元尺寸几乎是NOR器件的一半。由于生产工艺更简单,NAND结构可以在给定的模具尺寸内提供更高的容量,从而相应降低价格。
NOR闪存占据了容量为1至16MB的闪存市场的大部分,而NAND闪存仅用于容量为8至128MB的产品。这也说明NOR主要应用于代码存储介质,NAND适合数据存储,NAND应用于紧凑型闪存、安全数字、PC卡,其中MMC存储卡市场占有最大份额。
(4)NAND闪存和NOR闪存的可靠性和耐用性
使用闪存介质时的一项重要考虑因素是可靠性。对于需要扩展MTBF的系统来说,闪存是非常合适的存储解决方案。NOR 和 NAND 的可靠性可以从寿命(耐用性)、位交换和坏块处理方面进行比较。
(5)NAND闪存和NOR闪存的寿命(耐用性)
NAND闪存每块的最大擦写次数为100万次,而NOR闪存的擦写次数为10万次。除了具有 10 比 1 的块擦除周期的优点外,典型的 NAND 块大小比 NOR 器件小 8 倍,并且每个 NAND 存储块在给定时间内的删除次数也更少。
(6) 位交换
全闪存设备会受到位交换的影响。在某些情况下(很少见,NAND 比 NOR 出现得更频繁),某个位会被反转或报告被反转。一点点的改变可能并不明显,但如果发生在一个关键文件上,这个小故障可能会导致系统关闭。如果你只是报告一个问题,多看几遍也许就能解决。当然,如果改变该位,则必须使用检错/纠错(EDC/ECC)算法。位反转问题在NAND闪存中更为常见。当使用NAND闪存时,建议同时使用NAND闪存。
(7)EDC/ECC算法
使用NAND存储多媒体信息时这个问题并不是致命的。当然,如果使用本地存储设备来存储操作系统、配置文件或其他敏感信息,则必须使用EDC/ECC系统来保证可靠性。
(8)坏块处理
NAND 器件中的坏块是随机分布的。之前也曾做过消除坏块的努力,但发现良率太低,价格太高,不划算。
NAND 设备需要对介质执行初始扫描以查找坏块并将坏块标记为不可用。在制造出来的设备中,如果不能通过可靠的方法进行这种处理,就会导致很高的故障率。
(9) 易于使用
NOR闪存可以非常直接地使用,并且可以像其他存储器一样连接。代码可以直接在上面运行。
由于需要I/O接口,NAND要复杂得多。各种 NAND 设备的访问方法因制造商而异。使用NAND设备时,必须先编写驱动程序,然后才能继续执行其他操作。将信息写入NAND器件需要相当的技巧,因为设计者绝对不能写入坏块,这意味着必须从头到尾在NAND器件上进行虚拟映射。
(10)软件支持
在讨论软件支持时,应区分基本读/写/擦除操作和用于磁盘模拟和闪存管理算法(包括性能优化)的高级软件。
在 NOR 设备上运行代码不需要任何软件支持。在NAND设备上执行相同的操作时, 通常需要一个驱动程序,这就是内存技术驱动程序(MTD)。NAND 和 NOR 设备都需要 MTD 来进行写入和擦除操作。
当使用NOR器件时,所需的MTD相对较少。许多制造商为NOR设备提供了更先进的软件,包括M-System的TrueFFS驱动程序,Wind River System、Microsoft、QNX Software System、Symbian、Intel等制造商都使用该驱动程序。
该驱动程序还用于模拟 DiskOnChip 产品并管理 NAND 闪存,包括纠错、坏块处理和磨损均衡。