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

相关文章

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版本以后的建议使

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

javascript中break与continue的区别

在javascript中,break是结束整个循环,break下面的语句不再执行了 for(let i=1;i<=5;i++){if(i===3){break}document.write(i) } 上面的代码中,当i=1时,执行打印输出语句,当i=2时,执行打印输出语句,当i=3时,遇到break了,整个循环就结束了。 执行结果是12 continue语句是停止当前循环,返回从头开始。

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

ActiveMQ—Queue与Topic区别

Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:         1、点对点(point-to-point,简称PTP)Queue消息传递模型:         通过该消息传递模型,一个应用程序(即消息生产者)可以

深入探讨:ECMAScript与JavaScript的区别

在前端开发的世界中,JavaScript无疑是最受欢迎的编程语言之一。然而,很多开发者在使用JavaScript时,可能并不清楚ECMAScript与JavaScript之间的关系和区别。本文将深入探讨这两者的不同之处,并通过案例帮助大家更好地理解。 一、什么是ECMAScript? ECMAScript(简称ES)是一种脚本语言的标准,由ECMA国际组织制定。它定义了语言的语法、类型、语句、

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu