报价
HOME
报价
正文内容
linux nand flash 读写 NAND Flash与NOR Flash究竟有何不同|半导体行业观察
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

NAND Flash与NOR Flash究竟有何不同|半导体行业观察

来源:内容由 微信公众号 半导体行业观察 (ID:icbank) 翻译自「embedded」,作者 Avinash Aravindan,谢谢。

嵌入式系统设计人员在选择闪存时必须考虑许多因素:使用哪种类型的Flash架构,是选择串行接口还是并行接口,是否需要校验码(ECC)等。如果处理器或控制器仅支持一种类型的接口,则会限制选项,因此可以轻松选择内存。但是,情况往往并非如此。例如,一些FPGA支持串行NOR闪存、并行NOR闪存和NAND闪存来存储配置数据,同样,它们也可以用来存储用户数据,这使得选择正确的存储器件更加困难。本文将讨论闪存的不同方面,重点放在NOR闪存和NAND闪存的差异方面。

存储架构

闪存将信息存储在由浮栅晶体管制成的存储单元中。这些技术的名称解释了存储器单元的组织方式。在NOR闪存中,每个存储器单元的一端连接到源极线,另一端直接连接到类似于NOR门的位线。在NAND闪存中,几个存储器单元(通常是8个单元)串联连接,类似于NAND门(参见图1)。

NOR Flash(左)具有类似NOR门的架构。NAND Flash(右)类似于NAN

NOR Flash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%已知的零件寿命。缺点包括较大的单元尺寸导致每比特的较高成本和较慢的写入和擦除速度。

相比之下,与NOR闪存相比,NAND闪存具有更小的单元尺寸和更高的写入和擦除速度。缺点包括较慢的读取速度和I / O映射类型或间接接口,这更复杂并且不允许随机访问。值得注意的是,NAND Flash中的代码执行是通过将内容映射到RAM来实现的,这与直接从NOR Flash执行代码不同。另一个主要缺点是存在坏块。NAND闪存通常在部件的整个生命周期内出现额外的位故障时具有98%的良好位,因此,器件内需要ECC功能。

存储容量

与NOR闪存相比,NAND闪存的密度要高得多,主要是因为其每比特成本较低。NAND闪存通常具有1Gb至16Gb的容量。NOR闪存的密度范围从64Mb到2Gb。由于NAND Flash具有更高的密度,因此主要用于数据存储应用。

擦除/读写

在NOR和NAND闪存中,存储器被组织成擦除块。该架构有助于在保持性能的同时保持较低的成本,例如,较小的块尺寸可以实现更快的擦除周期。然而,较小块的缺点是芯片面积和存储器成本增加。由于每比特成本较低,与NOR闪存相比,NAND闪存可以更经济高效地支持更小的擦除块。目前,NAND闪存的典型块大小为8KB至32KB,NOR Flash为64KB至256KB。

NAND闪存中的擦除操作非常简单,而在NOR闪存中,每个字节在擦除之前都需要写入“0”。这使得NOR闪存的擦除操作比NAND闪存慢得多。例如,NAND闪存S34ML04G2需要3.5ms才能擦除128KB块,而NOR闪存S70GL02GT则需要约520ms来擦除类似的128KB扇区。这相差近150倍。

如前所述,NOR闪存具有足够的地址和数据线来映射整个存储区域,类似于SRAM的工作方式。例如,具有16位数据总线的2Gbit(256MB)NOR闪存将具有27条地址线,可以对任何存储器位置进行随机读取访问。在NAND闪存中,使用多路复用地址和数据总线访问存储器。典型的NAND闪存使用8位或16位多路复用地址/数据总线以及其他信号,如芯片使能,写使能,读使能,地址锁存使能,命令锁存使能和就绪/忙碌。NAND Flash需要提供命令(读,写或擦除),然后是地址和数据。这些额外的操作使NAND闪存的随机读取速度慢得多。例如,NAND闪存S34ML04G2需要30μS,而NOR闪存S70GL02GT需要120nS。因此,NOR比NAND快250倍。

为了克服或减少较慢读取速度的限制,通常以NAND闪存中的页方式读取数据,每个页是擦除块的较小子部分。仅在每个读取周期开始时使用地址和命令周期顺序读取一页的内容。NAND闪存的顺序访问持续时间通常低于NOR闪存设备中的随机访问持续时间。利用NOR Flash的随机访问架构,需要在每个读取周期切换地址线,从而累积随机访问以进行顺序读取。随着要读取的数据块的大小增加,NOR闪存中的累积延迟变得大于NAND闪存。因此,NAND Flash顺序读取可以更快。但是,由于NAND Flash的初始读取访问持续时间要长得多,两者的性能差异只有在传输大数据块时才是明显的,通常大小要超过1 KB。

在两种Flash技术中,只有在块为空时才能将数据写入块。NOR Flash的慢速擦除操作使写操作更慢。在NAND Flash中,类似于读取,数据通常以页形式编写或编程(通常为2KB)。例如,单独使用NAND闪存S34ML04G2 写入页面需要300μS。

为了加快写入操作,现代NOR Flashes还采用类似于页面写入的缓冲区编程。例如,前文所述的NOR闪存S70GL02GT,支持缓冲器编程,这使其能够实现与单词相似写入超时多字节编程。例如,512字节数据的缓冲区编程可以实现1.14MBps的吞吐量。

能耗

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

可靠性

保存数据的可靠性是任何存储设备的重要性能指标。闪存会遭遇称为位翻转的现象,其中一些位可以被反转。这种现象在NAND闪存中比在NOR闪存中更常见。出于产量考虑,NAND闪存随附着散布的坏块,随着擦除和编程周期在NAND闪存的整个生命周期中持续,更多的存储器单元变坏。因此,坏块处理是NAND闪存的强制性功能。另一方面,NOR闪存带有零坏块,在存储器的使用寿命期间具有非常低的坏块累积。因此,当涉及存储数据的可靠性时,NOR Flash具有优于NAND Flash的优势。

可靠性的另一个方面是数据保留,这方面,NOR Flash再次占据优势,例如,NOR Flash闪存S70GL02GT提供20年的数据保留,最高可达1K编程/擦除周期,NAND闪存S34ML04G2提供10年的典型数据保留。

编程和擦除周期的数量曾是一个需要考虑的重要特性。这是因为与NOR闪存相比,NAND闪存用于提供10倍更好的编程和擦除周期。随着技术进步,这已不再适用,因为这两种存储器在这方面的性能已经很接近。例如,S70GL02GT NOR和S34ML04G2 NAND都支持100,000个编程 - 擦除周期。但是,由于NAND闪存中使用的块尺寸较小,因此每次操作都会擦除较小的区域。与NOR Flash相比,其整体寿命更长。

表1提供了本文中讨论的主要内容摘要。

NOR闪存和NAND闪存的主要特性与一般和具体比较数据的比较。

通常,NOR闪存是需要较低容量、快速随机读取访问和更高数据可靠性的应用的理想选择,例如代码执行所需。NAND闪存则非常适用于需要更高内存容量和更快写入和擦除操作的数据存储等应用。

UBIFS 根文件系统制作

1. UBIFS 文件系统简介

传统的flash文件系统如jffs2, yaffs2等是工作在MTD 设备上,而UBIFS则建立在UBI卷层之上,UBI卷层工作在MTD设备层之上,也可以说,UBIFS涉及三个子系统:

MTD 子系统,提供对flash芯片Raw的访问接口。MTD子系统提供了MTD device的概念,比如/dev/mtdX(字符设备)和/dev/mtdblockX(块设备);l UBI Subsystem, 它工作在MTD设备之上,提供了UBI逻辑卷,对上层屏蔽了一些直接使用MTD设备需要处理的问题,如wear-leveling(磨损平衡)和volume management(坏块管理)功能等;l UBIFS 文件系统,工作于UBI之上。它提供文件的open, read, write等操作;

系统之间的层级关系

2.根文件系统镜像文件制作

l mkfs.ubifs 参数说明

-x lzo 指定使用lzo压缩方法,默认是lzo, 还支持zlib, zlib的压缩率高,但是lzo压缩解压速度快。

-m 2048 Nand Flash的最小读写单元,一般为page size.

-r ./rootfs 指定根文件系统目录树的路径

-o rootfs.ubifs 指定制作出的根文件系统镜像文件名

-e 126976 指定LEB(Logical Erase Block, 逻辑擦除块)大小。Nandflash 读写单位为页,擦除单位为块,以ESMT F59L1G81MB 为例:一个PEB(Physical EraseBlockSize, 物理擦除块)大小就是2048*64=131072,-e 的算法是物理擦除块大小-2*页大小,这里就是131072-2*2048=126976(注:这里的擦除块大小都不包含oob, 有包含子页和不包含子页之分。 )

-c xxx 指定该分区最大逻辑擦除块数量,该值随着根文件系统分区的大小和该分区的坏块数调整。

l ubinize 参数说明

-o rootfs-ubifs.bin 指定ubinize处理后输出的image文件名,该文件可以由u-boot的nand write命令直接烧录;

-m 2048 指定minimum input/output unit 大小,为Nandflash的页大小;

-p 131072 指定物理擦除块大小:64 Pages * 2048 Byte/Page = 131072(不包含oob的大小)

-s 512/2048 指定sub-page-szie大小,如果有sub-page, 则配置为512;如果没有sub-page,则配置为2048

n 关于配置文件说明:

image=rootfs-ubifs.img 指定mkfs.ubifs 制作成的根文件系统镜像文件路径;

vol_id=0 指定根文件系统树的卷标为0,u-boot的bootargs参数需要根据它来设置;

vol_size=xxx 指定该UBI逻辑卷的大小,该值计算公式一般为 逻辑擦除块大小*逻辑擦除块个数。该值一般不用写,默认值是image大小。写了这个作用是帮助检查image是否超过了分区限制,制作时候就会提示,否则mount会出错。逻辑擦除块个数的值是经过计算的最大值(前面mkfs.ubifs -c 指定的值),不过volume flag autoresize 参数会自适应大小,不会浪费空间,后面Linux 系统内核启动过程中可以看到这个现象。

vol_type=dynamic

vol_name=xxx 指定UBI Volume的名称,u-boot的bootargs参数需要根据它来设置;

vol_flags=autoresize UBI Subsystem 在系统启动时自动调整逻辑擦除块的个数;

经过ubinize 命令处理过后的根文件系统镜像rootfs-ubifs.bin就可以直接在u-boot使用

nand write 命令烧录到相应的根文件系统分区上去了。

关于Minim Flash input/output, sub-pages, UBI Header的说明:

http://www.linux-mtd.infradead.org/doc/ubi.html#L_min_io_unit

相关问答

nandflash 最快 读写 速度?

NAND闪存的最快读写速度取决于具体的技术和规格。目前,高性能NAND闪存的读取速度可以达到几百兆字节每秒(MB/s),而写入速度通常在几十到一百多兆字节每秒之间...

emmc与 nand flash 哪个好?

1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...

2019年的NVME固态硬盘性能到了什么水平?

在CES2019展会上,金士顿正式发布了他们的A2000和KC2000系列NVMe固态硬盘,与上一代产品相比,每款固态硬盘都具有更高的性能。新的SSD现在都使用64层3DTLCNA...

linux 提供的ext是否适用于嵌入式文件系统?

..可以,但是一般不会用,还是看你的需求而定。嵌入式的特点就是短小精干,ext2是为PC硬盘而设计的文件系统,动则几百G上T的空间,这种文件系统自身实现的空间...

stm32内部 读写flash ,为什么读写会不一样?

这明显是上传后就丢的数据。存片内flash,也是先存到sram中,后再写入flash。直接开个数组,存sram里就行。前提是你MCU速度跟的上,得一次采集存sram,再到...

mtp和 flash 有什么区别?

MTP实现方式不一样,因此可以多次烧写,设计架构复杂,成本较大。MTP的原理也无法一概而论,因为实现方法多种多样。FLASH的读取是最简单的,定义一个指针类型...

spi flash读写 问题?

如图所示,虽然Flash的读写时序差别不大,但是每种型号的Flash读写等操作命令(0x**)不一定是完全相同的,所以不选择芯片型号的情况下,可能找不到芯片的ID如图所示,...

主板上的 flash bios有什么用?

他是一个存储芯片用来存储bios信息很重要平常说的刷bios就是对他的读写flash:有道词典结果n.闪光,闪现;一瞬间adj.闪光的,火速的vt.使闪光;反射...

ESSD是什么电子器件?

ESSD是一种电子存储器件,全称为"ElectricallyErasableandProgrammableSemiconductorDevice",即电可擦除可编程半定制...

fpga怎么从 flash 启动?

在FPGA中,从Flash启动通常需要以下步骤:将FPGA的配置文件生成并存储在Flash芯片中。在FPGA启动时,读取Flash中的配置文件,并将其加载到FPGA的配置寄存器中...

 出货  60迫击炮 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部