NAND Flash 与 NOR Flash间的区别

2024-05-12 03:36
文章标签 区别 flash nand

本文主要是介绍NAND Flash 与 NOR Flash间的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

非易失性存储器是一种即使未通电也能保持其内容的存储器。非易失性存储器可以有不同的形式:

  • ROM – 只读存储器,数据写入一次,允许多次读取访问。

  • PROM – 可编程只读存储器,数据写入一次(不是在制造过程中,而是以后的任何时候),允许多次读取访问。

  • EPROM – 可擦除的可编程只读存储器,可以通过紫外线照射擦除内容后重新编程。

  • EEPROM – 电可擦除可编程只读存储器,可通过电压脉冲擦除。它可以被重写有限的次数。它仅在有限的时间内存储数据。

  • Flash EEPROM – 比EEPROM更先进,速度更快。允许以块的形式擦除和存储数据,但不允许以字节为单位。

Flash目前非常流行,主要有两种最流行的类型:NOR Flash和NAND Flash。

用途

  • NOR 内存用于存储代码和执行。允许快速随机访问内存阵列中的任何位置。
  • NAND存储器用于数据存储。需要相对较长的随机访问。编程和擦除比NAND存储器更容易。
  • NAND内存的成本比NOR内存便宜。

内存架构

  • NOR 和 NAND 闪存将信息存储在由浮栅晶体管制成的存储单元中。

  • 在 NOR 闪存中,每个存储单元的一端连接到源线,另一端直接连接到类似于 NOR 门的位线。

  • 在NAND闪存中,多个存储单元串联连接,类似于NAND门。
    NAND AND NOR

  • NOR闪存提供足够的地址线来映射所有存储器范围。它提供快速随机访问和较短的读取时间。缺点包括较大的单元尺寸,导致更高的bit成本以及较慢的写入和擦除速度,一旦NOR存储单元足够大,就会使其变得昂贵。

  • NAND存储单元体积更小,成本更低,具有更高的编程与擦除速度。但是,它的读取速度较低,不允许随机访问。代码执行是不同的,NAND内存比NOR内存更复杂,NAND闪存的代码执行是通过将内容隐藏到RAM来实现的,这与直接从NOR闪存执行代码不同。

  • NOR整个生命周期表现好 ,不会发生比特翻转。

  • NAND另一个主要缺点是存在坏块,NAND闪存在器件的整个生命周期内会发生比特翻转,因此需要在提供纠错码(ECC)功能。

内存容量

  • NAND存储器的密度远高于NOR闪存的密度,这主要是因为其每比特成本较低。
  • 由于其较高的密度,NAND闪存主要用于数据存储应用。

擦除、读取和写入

  • 在 NOR 和 NAND闪存中,存储器被组织成擦除块。此体系结构有助于在保持性能的同时保持较低的成本。例如,较小的块大小可实现更快的擦除周期。无论块有多小,需要的块数量越大,闪存的芯片尺寸就越大。

  • 由于其每比特成本较低,与 NOR 闪存相比,NAND 闪存可以更经济高效地支持更小的擦除块。

  • NAND 闪存中的擦除操作很简单,而在 NOR 闪存中,每个字节都需要用“0”写入才能擦除。这使得 NOR 闪存的擦除操作比 NAND 闪存慢得多。

  • 在NAND闪存中,使用多路复用地址和数据总线访问内存。典型的 NAND 闪存使用 8 位或 16 位多路复用地址/数据总线,并带有附加信号,例如芯片使能、写入使能、读取使能、地址锁存使能、命令锁存使能和就绪/忙。NAND闪存需要提供命令(读取、写入或擦除),然后是地址和数据。这些额外的操作使NAND闪存的随机读取速度大大变慢。例如,某NAND 闪存需要 30μS,而某NOR 闪存需要 120ns,NAND 的速度慢了 250 倍。

  • 为了克服或减少读取速度较慢的限制,内存通常以 NAND 闪存中的page形式读取,每页都是擦除block的较小细分。仅在每个读取周期开始时,才使用地址和命令周期按顺序读取一页的内容。

  • NAND 闪存的顺序访问持续时间通常低于 NOR 闪存设备中的随机访问持续时间。在NOR闪存的随机存取架构下,每个读取周期都需要切换地址线,从而累积顺序读取的随机存取。随着要读取的数据块大小的增加,NOR 闪存中的累积延迟变得大于 NAND 闪存。因此,NAND闪存的顺序读取速度更快。但是,由于 NAND 闪存的初始读取访问持续时间要长得多,因此只有在传输大型数据块时,性能差异才会显现出来。

  • NAND 和 NOR 闪存,在重新编程之前,都应擦除闪存设备。在这两种闪存技术中,只有当块为空时,才能将数据写入块。NOR Flash 的擦除操作已经很慢,这使得写入操作更加缓慢。在NAND闪存中,与读取类似,数据通常以page为单位写入或编程。

功耗

  • 在初始上电期间,NOR 闪存通常比 NAND 闪存需要更多的电流。但是,NOR 闪存的待机电流远低于 NAND闪存。两种闪存的瞬时有功功率相当。因此,有功功率由内存处于活动状态的持续时间决定。NOR 闪存在随机读取方面具有优势,而 NAND闪存在擦除、写入和顺序读取操作方面的功耗相对较低。

可靠性

  • 闪存存在一种称为比特翻转bit-flipping的现象,其中某些位可能会被反转。
  • 这种现象在NAND闪存中比在NOR闪存中更常见。出于良率考虑,NAND闪存在出厂时随机散布着随机的坏块。随着擦除和编程周期在NAND闪存的整个生命周期中继续进行,更多的存储单元会损坏。
  • 因此,坏块处理是NAND闪存的强制性功能。另一方面,NOR 闪存附带零坏块,在内存的生命周期内坏块累积非常低。
  • 因此,在存储数据的可靠性方面,NOR 闪存比 NAND 闪存更具优势。

数据保留

  • 可靠性的另一个方面是数据保留,NOR Flash具有优势。
  • 但是编程和擦除周期的数量也是同时需要考虑的重要特征。

这篇关于NAND Flash 与 NOR Flash间的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981491

相关文章

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使