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闪存则非常适用于需要更高内存容量和更快写入和擦除操作的数据存储等应用。
STM3嵌入式-FSMC地址映射
本章学习目标:
1,了解FSMC模式
1.2 FSMC 简介
引脚数在 100 脚以上的 STM32F103 芯片都带有 FSMC 的接口,而什么是 FSMC 呢?FSMC 即灵活的静态存储控制器,FSMC 的接口支持包括 SRAM、NAND FLASH、NOR FLASH、 PSRAM 等存储器。说白了呢,就是可以当操作 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器的时候,我们不必自己操作 IO 口模拟这些存储器的操作时序了,使用 FSMC 模块可以直接帮我们读写这些存储器。而 NOR FLASH 主要使用的信号线主要有:
FSMC信号名称
从 FSMC 的角度看,可以把外部存储器划分为固定大小为 256M 字节的四个存储块,每个存储块分4个段,如下图:
FSMC外部存储器
每段的存储空间为64MB,刚好对应地址线[A0,A25] 。四个段我们是通过FSMC_NE[X]来选择,在硬件设计时连接到外部设备的片选引脚。举个例子:假设我们用的是FSMC_NE4连接到外部存储器的片选引脚,那么该存储段在STM32中的地址范围是0x6C000000 到 0x6FFFFFFF 的区域,也就是说当我们对地址0x6C000000 到 0x6FFFFFFF 的区域进行操作的时候, FSMC模块就可以自动帮我们操作外部存储器,相当于把外部存储器挂在了单片机的地址总线上面了。
1.3:0x6C000000 到 0x6FFFFFFF之间的区域又是如何映射的呢
在了解这个问题之前我们先了解一下,TFT-LCD 8080 模式。
8080接口 模式
如图所示,我们把FSMC_NE4连接到8080接口中的CS,把地址线FSMC_A10连接到RS上。我们知道当RS为高电平的时候对显示屏传送数据,反之则传送命令。也就是说当我们要向显示屏传输数据的时候只要地址线 A10 输出为 1,就可以了;而当我们要写入命令的时候,正好相反,地址线 A10 输出为 0。我们例程上面使用结构定义的方式,我们定义一个结构体:
/* TFT 地址结构体 */ typedef struct
{
u16 TFT_CMD;
u16 TFT_DATA;
} TFT_TypeDef;
然后定义一个 TFT 的结构体,映射到(0x6C000000 | 0x000007FE)地址上面:
#define TFT_BASE ((uint32_t)(0x6C000000 | 0x000007FE))
#define TFT ((TFT_TypeDef *) TFT_BASE)
那么 TFT 这个结构体的 TFT_CMD 就映射在(0x6C000000 | 0x000007FE)这个地址上面, 这个时候, 地址线 A10 是为 0 的, 同时, TFT 这个结构体的 TFT_DATA 自动映射到了地址 0x6C000800 上面, 0x6C000800 也就是 (0x6C000000 | 0x000007FE) + 2,为什么加 2 呢?也因为我们定义的 TFT_CMD 是 16 位,在 FSMC 上面的地址对应的存储长度是 8 位,16 位也就 2 地址。
此时可能有同学会问:(0x6C000000 | 0x000007FE)把它转换成二进制后很容易发现刚好对应A10的是1,怎么会是零呢?注意我们定义的是16位模式。我们知道外部设备的内部AHB地址线每个地址对应一个字节单元。也就是如果模式是16位的那么最大可访问的32MB的地址空间对应地址线为A25-A1,也就是自动向右移了一位。
相关问答
arm CPU集群 如何启动?启动方式(1)norflash:2MB,从norflash的0地址处开始运行第一条代码,所以代码一定要放在norflash的最前端(2)nandflash:128MB,但是nandflash没有参...
ARM中的引导块为什么要做重 映射 ?是如何重 映射 的? - 150****7...因为系统启动后,是从地址0开始的,如果引导系统的程序被放在地址0处,那么就不需要重映射了,如果你要启芯片的FLASH,而flash的地址又放在0X8000000处(...
qspi协议?QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPIFlash存储介质。该接口可以在以下三种模式下工作:①间接模式:使用QSPI寄存器执行全部操作...
isp编程指令?ISP是InSystemProgramming,在线编程IAP是InApplicationProgramming在应用编程ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存...
如何理解计算机中的 地址 ?这有什么用啊?我觉得计算机的地址这个概念可以分为两个层面的事情,一个是对内,计算机系统内部的地址;另一个对外,这个计算机系统在网络上的地址。计算机内部的地址,针对...你...
响应式网站是什么?简单说,响应式网站设计是一种允许设计和代码响应设备屏幕大小的方法。这意味着无论你使用的是4英寸安卓手机,iPadmini,还是40英寸的影院级显示器,你都将获得...
flash player提示下载安装失败,请核实网络连接-ZOL问答zhanghanqing2011看不成视频,你机子本身的FLASH有一定关系,但更多的视频播放不看了的原因是网站,有的网站需要对方的播放插件,打开网页的时候,留意IE上方的弹...
系统掉盘怎么修复?3、异常断电(非正常关机、蓝屏后断电等等)可能导致FTL映射表的损坏,而一旦FTL损坏将可能导致SSD掉盘变砖,轻度的则是SSD上个别位置无法读写。这里可以使用HD...
优酷视频外链时候如何让它点击暂停时不弹出优酷网视频页面?好多人都有您提出的这个苦恼.通过指定链接代码提供的对外推广播放器版本一般都有广告。有的在flashvars属性中设置,可通过改变参数禁用广告,如youku;有的做...
internet网址中的ftp是指什么传输协议- 汇财吧专业问答[回答]在网上下载一个叫做FlashXP或CuteFtp的软件,中文版的,然后安装后按提示操作即可。另外也可以手动进入:你的网址是什么,那么你就将网址前的http改成f...