NOR闪存基础知识
电子产品因数据存储、内部指令执行、系统数据交换等功能需要,往往在设计上有一定存储空间的需求。单片机自身的存储有时不能满足实际应用的需要。因此,电子工程师在产品设计时会采用各种闪存(Flash Memory)芯片。
NOR闪存和NAND闪存
嵌入式工程师或者电子工程师在选择闪存时必须考虑很多因素:采用哪种类型的架构(NOR或NAND)?是选择串行接口(serial)还是并行接口(parallel)?是否需要纠错码(ECC)?等等。如果处理器或控制器只支持一种类型的接口,选择起来就相对容易。然而现实情况往往并非如此。这里我们先来认识一下闪存的两种架构:NOR和NAND。
NOR架构的布线和结构如下图所示。每个记忆单元互相独立,都有一段直连到地,组成一个类似NOR闸(或称“或非门”)的电路。当两个字线中有一个字线(Word Line)被拉低(0)时,相应的位线(Bit Line)就会被拉高(1)。而想要位线被拉低,则需要两个字线都拉低。
NOR Flash 闪存在硅上的布线和结构 (图片来源:维基百科)
NAND架构的布线和结构如下图所示。多个(通常是8个)记忆单元以类似NAND闸(或称“与非门”)的方式彼此串联。当所有的字线都拉高(1)时,位线就被拉低(0)。
NAND Flash 闪存在硅上的布线和结构 (图片来源:维基百科)
NOR闪存架构提供了足够的地址线来映射整个内存范围。这使其具有随机访问和读取时间短的优势,成为“代码执行”的理想选择。NOR架构另一个优点是在闪存的使用寿命内每个储存单元的好坏情况都是可知的。缺点包括单元尺寸较大,导致每比特成本较高,且写入和擦除速度较慢。
相比之下,NAND架构与NOR架构相比,单元尺寸更小,写入和擦除速度更高。缺点包括读取速度较慢,且采用I/O映射型或间接接口,比较复杂,不允许随机访问。另一个主要缺点是存在坏块。NAND Flash在出厂时通常有98%的单元正常工作,在产品的整个使用寿命中可能会发生额外的故障(坏块),因此需要在器件内部设置纠错码(ECC)功能。
总结NOR架构与NAND架构的区别如下:
一般来说,对于需要较低容量、快速随机读取访问和较高数据可靠性的应用,如代码执行所需,NOR闪存是一个很好的选择。比如,在物联网和人工智能技术蓬勃发展的今天,NOR闪存就可以应用在很多设备上来存储、运行程序以让产品更加智能。而NAND闪存则是数据存储等应用的理想选择,因为这些应用需要更高的内存容量和更快的写入和擦除操作,因此SSD等都是使用NAND闪存。
目前NOR闪存市场占有率排名靠前的有华邦(台湾)、旺宏(台湾)、兆易创新(中国大陆)、赛普拉斯(美国)、美光(美国)。行业内主流NOR Flash产品的工艺节点仍为65nm。合肥恒烁半导体在2020年4月推出50nm高速低功耗产品,中国大陆半导体厂家已经开始在NOR闪存的赛道奋起直追。而NAND 市场占有率主要集中在三星(韩国)、东芝(日本)、西部数据(美国)、美光(美国)、英特尔(美国)、SK海力士(韩国)等传统大厂手上,国产厂商与之还存在一定技术差距。但也有好消息传来:长江存储在2020年初宣布将跳过96层,直接量产128层闪存,惟具体时间表还没有公布。
NOR闪存的电气接口
NOR闪存刚问世时,采用的是带有并行地址和数据总线的并行接口。随着密度的增长,并行接口的信号数逐渐提高,使得电路设计变得更加困难。在这种情况下NOR闪存的接口开始向串行发展,但相较并行接口其性能受到一定的影响。下面讨论几种采用不同接口方式的NOR闪存。
并行NOR闪存的电气接口
顾名思义,并行NOR闪存使用类似SRAM的并行地址和数据总线与存储器控制器进行接口。市场上的并行NOR Flash器件一般支持8位(8-bit)或16位(16-bit)数据总线。地址总线的宽度取决于Flash的容量。地址总线的宽度可以用以下公式计算:
总线宽度 = log2 (以bit计的总容量 / 以bit计的数据总线宽度)
根据此公式我们可以算出具有16位数据总线的2-Gbit(256MB)NOR闪存将有27条地址线。一个256MB的内存如果使用并行接口的话,算上片选、重置等脚位后将会有30多个电气接口,给电路设计带来很大的难度。
我们再来看看除了地址线以外并行接口还需要哪些信号:
并行NOR闪存的接口方式(图片来源:赛普拉斯)
不难看出并行NOR闪存使用的接口数会非常多,给电路设计带来很大困难。因此目前大多数的NOR闪存都采用了串行接口。
串行NOR闪存的电气接口
串行接口的接口数量大大减少,可以实现更小的器件封装和更简单的PCB布线。缺点是牺牲了NOR闪存的主要优势之一,即直接随机存储访问。
串行NOR闪存通常使用串行外设接口(标准SPI)协议与存储器控制器连接。为了实现更高的速度,可以使用双SPI(Dual SPI)和四SPI(QUAD SPI)接口。
标准SPI 通常就称SPI,它是一种串行外设接口规范,有4根引脚信号:CLK, CS, MOSI, MISO。而Dual SPI 只是针对闪存的SPI接口而言,不是针对所有SPI外设。对于闪存的SPI链接,全双工模式并不常用,因此Dual SPI扩展了MOSI和MISO的用法,让它们工作在半双工,以加倍数据传输。也就是对于闪存的Dual SPI,可以发送一个命令字节进入Dual模式,这样MOSI变成SIO0,MISO变成SIO1,一个时钟周期内就能传输2个bit数据。而Qual SPI 与Dual SPI类似,再增加了两根I/O线(SIO2, SIO3),可以在一个时钟周期内传输4个bit。我们以合肥恒烁半导体出品的32M-bit(4MB) NOR闪存ZB25VQ32B为例:
Datasheet of ZB25VQ32B(ZBIT Semi)
从ZB25VQ32B的规格书我们可以看到,在数据传输方式上,该NOR闪存同时支持Standard SPI、Dual SPI和Quad SPI三种方式。得益于串行接口,ZB25VQ32B的封装采用SOP-8(5.3mm x 7.9mm)和DFN-8(3mm x 4mm)这种8个管脚的小型封装,大大简化了电路设计。
ZB25VQ32B的管脚与封装
ZB25VQ32B的管脚说明如下:
ZB25VQ32B 管脚及说明
串行NOR闪存的接口方式(图片来源:赛普拉斯)
跟并行传输每个时钟周期可以传输8或者16个bit数据比,串行接口的传输速率低了很多(每个时钟至多4bit),但是这是硬件设计上的必要妥协。市面上大多数的串行NOR闪存在不同厂商之间都是兼容封装的,因此即使在设计阶段完成后,也可以很容易地更换器件。这使得开发人员不仅可以在不同厂商之间进行更换,还可以迁移到其他更大或更小容量的NOR闪存器件上,而不必完全重新设计系统。以合肥恒烁半导体3V ZB25系列NOR闪存为例,以下不同容量的闪存之间都采用了相同的封装,电子工程师可以根据产品设计需要选择合适的产品:
8MBit, ZB25VQ8016MBit, ZB25VQ1632MBit, ZB25VQ32128MBit, ZB25VQ128等等NOR闪存应用的电路原理图
以ZB25VQ32这类SOP-8封装的NOR闪存为例:
C1 = 100nF, R1 = 50Ω, R2 = 10KΩ, R3 = 100KΩ
声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。
闪存芯片NOR Flash、NAND Flash傻傻分不清楚 ICMAX帮你搞定
通过前天的文章介绍,我们知道eMMC 是 Flash Memory 的一类,eMMC的内部组成是NAND flash+主控IC,那什么是Flash Memory、NOR Flash、NAND Flash,宏旺半导体就和大家好好捋一捋它们几者之间的关系。
Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。另外,绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质。
1. Flash Memory 的主要特性
与传统的硬盘存储器相比,Flash Memory 具有质量轻、能耗低、体积小、抗震能力强等的优点,但也有不少局限性,主要如下:
需要先擦除再写入
Flash Memory 写入数据时有一定的限制,它只能将当前为 1 的比特改写为 0,而无法将已经为 0 的比特改写为 1,只有在擦除的操作中,才能把整块的比特改写为 1。
块擦除次数有限
Flash Memory 的每个数据块都有擦除次数的限制(十万到百万次不等),擦写超过一定次数后,该数据块将无法可靠存储数据,成为坏块。
为了最大化的延长 Flash Memory 的寿命,在软件上需要做擦写均衡(Wear Leveling),通过分散写入、动态映射等手段均衡使用各个数据块。同时,软件还需要进行坏块管理(Bad Block Management,BBM),标识坏块,不让坏块参与数据存储。(注:除了擦写导致的坏块外,Flash Memory 在生产过程也会产生坏块,即固有坏块。)
读写干扰
由于硬件实现上的物理特性,Flash Memory 在进行读写操作时,有可能会导致邻近的其他比特发生位翻转,导致数据异常,这种异常可以通过重新擦除来恢复,Flash Memory 应用中通常会使用 ECC 等算法进行错误检测和数据修正。
电荷泄漏
存储在 Flash Memory 存储单元的电荷,如果长期没有使用,会发生电荷泄漏,导致数据错误,不过这个时间比较长,一般十年左右,此种异常是非永久性的,重新擦除可以恢复。
2. NOR Flash 和 NAND Flash
根据硬件上存储原理的不同,Flash Memory 主要可以分为 NOR Flash 和 NAND Flash 两类。 主要的差异如下所示:
· NAND Flash 读取速度与 NOR Flash 相近,根据接口的不同有所差异;
· NAND Flash 的写入速度比 NOR Flash 快很多;
· NAND Flash 的擦除速度比 NOR Flash 快很多;
· NAND Flash 最大擦次数比 NOR Flash 多;
· NOR Flash 支持片上执行,可以在上面直接运行代码;
· NOR Flash 软件驱动比 NAND Flash 简单;
· NOR Flash 可以随机按字节读取数据,NAND Flash 需要按块进行读取。
· 大容量下 NAND Flash 比 NOR Flash 成本要低很多,体积也更小;
(注:NOR Flash 和 NAND Flash 的擦除都是按块块进行的,执行一个擦除或者写入操作时,NOR Flash 大约需要 5s,而 NAND Flash 通常不超过 4ms。)
2.1 NOR Flash
NOR Flash 根据与 CPU 端接口的不同,可以分为 Parallel NOR Flash 和 Serial NOR Flash 两类。
Parallel NOR Flash 可以接入到 Host 的 SRAM/DRAM Controller 上,所存储的内容可以直接映射到 CPU 地址空间,不需要拷贝到 RAM 中即可被 CPU 访问,因而支持片上执行。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通过 SPI 接口与 Host 连接。
图片: Parallel NOR Flash 与 Serial NOR Flash
鉴于 NOR Flash 擦写速度慢,成本高等特性,NOR Flash 主要应用于小容量、内容更新少的场景,例如 PC 主板 BIOS、路由器系统存储等。
2.2 NAND Flash
NAND Flash 需要通过专门的 NFI(NAND Flash Interface)与 Host 端进行通信,如下图所示:
图片:NAND Flash Interface
NAND Flash 根据每个存储单元内存储比特个数的不同,可以分为 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三类。其中,在一个存储单元中,SLC 可以存储 1 个比特,MLC 可以存储 2 个比特,TLC 则可以存储 3 个比特。
NAND Flash 的一个存储单元内部,是通过不同的电压等级,来表示其所存储的信息的。在 SLC 中,存储单元的电压被分为两个等级,分别表示 0 和 1 两个状态,即 1 个比特。在 MLC 中,存储单元的电压则被分为 4 个等级,分别表示 00 01 10 11 四个状态,即 2 个比特位。同理,在 TLC 中,存储单元的电压被分为 8 个等级,存储 3 个比特信息。
图片: SLC、MLC 与 TLC
NAND Flash 的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。下图 中,给出了特定工艺和技术水平下的成本和寿命数据。
相比于 NOR Flash,NAND Flash 写入性能好,大容量下成本低。目前,绝大部分手机和平板等移动设备中所使用的 eMMC 内部的 Flash Memory 都属于 NAND Flash,PC 中的固态硬盘中也是使用 NAND Flash。
3. Raw Flash 和 Managed Flash
由于 Flash Memory 存在按块擦写、擦写次数的限制、读写干扰、电荷泄露等的局限,为了最大程度的发挥 Flash Memory 的价值,通常需要有一个特殊的软件层次,实现坏块管理、擦写均衡、ECC、垃圾回收等的功能,这一个软件层次称为 FTL(Flash Translation Layer)。
在具体实现中,根据 FTL 所在的位置的不同,可以把 Flash Memory 分为 Raw Flash 和 Managed Flash 两类。
图片: Raw Flash 和 Managed Flash
Raw Flash
在此类应用中,在 Host 端通常有专门的 FTL 或者 Flash 文件系统来实现坏块管理、擦写均衡等的功能。Host 端的软件复杂度较高,但是整体方案的成本较低,常用于价格敏感的嵌入式产品中。通常我们所说的 NOR Flash 和 NAND Flash 都属于这类型。
Managed Flash
Managed Flash 在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、ECC校验等功能。相比于直接将 Flash 接入到 Host 端,Managed Flash 屏蔽了 Flash 的物理特性,对 Host 提供标准化的接口,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 Flash 进行特殊的处理。eMMC、SD Card、UFS、U 盘等产品是属于 Managed Flash 这一类。
看完这篇文章,相信对Flash memory都会有一个全面的了解,无论是其原理,还是NOR Flash 和 NAND Flash、Raw Flash 和 Managed Flash 之间的异同,欢迎关注宏旺半导体,会持续带来存储领域更专业的文章。
相关问答
存储芯片 分类 ?常见的存储芯片包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、固态硬盘(SSD)等。它们可以按照不同的特性或技术来分类,如下:1.静态随机访问存储器...它...
求一篇两三分钟的英语的演讲关于childhood memory 、可以写记...[最佳回答]1.MyfavouritechildhoodmemoryIgrewupinthebeautifulseasidecity.Icouldstillrememberthe...
(Note-taking)有别于会议记录,也不是速记,它是辅助记】作业帮[回答]Interpretersmustimmediatelyretellthesentencesspokenonlyonce,sointheinterpretationshort-t...
闪存是什么意思?1G闪存有多大?闪存(FlashMemory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意...
求一篇两三分钟的英语的演讲 关于childhood memory 、可以写...1.MyfavouritechildhoodmemoryIgrewupinthebeautifulseasidecity.Icouldstillrememberthe...
video memory is not enough怎么解决[回答]谢谢回答。不好意思,可能我描述的不够清楚。好比是坐在办公室里面,能过电脑连接某一车间的摄像头查看车间的情况,在电脑连接过程中提示:videomemor...
电脑主机上面MS/SD是什么意思-ZOL问答SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡MiniSD卡比目前主流的普通SD卡(如DC或DV上使用的SD卡),在外形上更加小巧,重量仅有3克左右,体积只有2...
isinprivatenessandretiring,forornament,isindisc_作业帮[回答]我说说细节词的语法点.【部分】ONEBYONE意思为一个接着一个SPEND表示花费用法为主语为人加spend加时间或金钱加onsth或indoingsthin可以...
USB闪存中的"闪存"是什麽意思? - 小红薯68209E7B 的回答 - 懂得这一改进使得对闪存的擦除/写入速度比EEPROM要快很多,人们形容其擦除/写入的速度像“闪光”(Flash)一样快,所以就叫它FlashMemory(闪速存储器)。...
闪存有什么功能?但是,NAND型的存储和传输是以页和块为单位的(一页包含若干字节,若干页组成块),相对适合大数据的连续传输,这样也可以部分弥补串行传输的不利。因此,NAND型...