闪存芯片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 之间的异同,欢迎关注宏旺半导体,会持续带来存储领域更专业的文章。
杂谈闪存二:NOR和NAND Flash
三星终于从爆炸门中走了出来,受到来自DRAM 与NAND 价格上涨带动,三星把Intel从盘踞了14年的半导体王座上赶了下来,风光可谓一时无两。虽然下半年市况预料将会修正,但今年整体DRAM 仍可较去年成长39%,NAND 则成长25%,而这两项恰恰曾经帮助过Intel走向巅峰,真是成也萧何,败也萧何啊。说起NAND Flash,他和他的哥哥NOR Flash可谓是20世纪最重要的发明之一,他的诞生和发展很是曲折,生于日本,长于美国,如今却在韩国大放异彩。今天的历史故事要从他的发明人桀冈富士雄(Fujio Masuoka)和他的狗血东家说起。
历史
Intel很早就发明了EPROM,这是一种可以用紫外线擦除的存储器。相较于ROM,它的内容可以更新而且可以保持10~20年,老式电脑的BIOS都存储于此。
(Intel 1702)
它的顶部必须被覆盖住,以防被阳光里的紫外线擦除。后来Intel在其基础上于1978年发明了电可擦除的升级版叫做EEPROM。不需要阳光的帮忙,方便多了,可是读取和擦除速度却非常缓慢。
这时我们的主人公富士雄出场了,他于1971年加入了东芝公司。受到了EEPROM的启发,他开始利用自己夜晚和周末的时间钻研一种能快速擦除的EERPOM。他在1980年取得突破,申请了一个叫做simultaneously erasable EEPROM的专利。然而,日本大公司的论资排辈却让这项划时代的发明石沉大海,直到4年之后。
“我终于被提拔了,可以不要批准就去工厂,让工人们帮忙做出样品了”,富士雄说。当他拿着他的样品参加当年的IEEE大会的时候,NOR Flash引起了轰动,以至于当他回到日本后,他的老板总是被Intel打来的要样品电话骚扰。他被奖励了几个人手帮忙,而这些人却是part-time的。而在大洋的另一边,Intel在收到样品后,立刻派出300多个工程师全力研发自己的版本。由于新发明的这种EEPROM擦除速度飞快,富士雄的同事建议他把这种技术取名Flash,暗合相机的闪光灯飞快闪烁之意。
东芝公司并没有把NOR flash技术当作宝贝,只是不想要别人插手而已。所以不停的起诉任何希望染指的公司,如TI公司。而富士雄却并没有停止他的追求,在1986年发明了NAND Flash,大大降低了制造成本。由于他的贡献,东芝奖励了他一笔几百美金的奖金和一个位置很高却悠闲的职位。做为一个工程师,他忍受不了这种待遇,不得不辞职进入大学继续科研。
东芝公司的短视很快招来了市场的惩罚。Flash市场迅速扩张,在90年代末期就达到数百亿美金的市场规模,Intel是这个市场的霸主,而东芝公司只享有很小的份额(NAND,NOR几乎没有)。在很长一段时间,东芝公司甚至不承认NOR flash是他发明的,说是Intel发明的。直到IEEE在1997年颁给富士雄特殊贡献奖后才改口。
富士雄觉得自己的贡献被东芝公司抹杀了,他愤然于2006年起诉了公司,并索要10亿日元的补偿。最后他和东芝公司达成和解,得到8700万日元(合758,000美元)。富士雄没有依旧停止自己的脚步,在获得进200个专利后,他还在向着下一个big thing进发。
无疑富士雄是个英雄,有人说应该颁给他诺贝儿奖,他也是我还可以记得名字的发明人之一,而其他的很多技术发明人却泯然众人矣。从这个故事中也可以折射出日本大公司的官僚主义和大公司病。
NOR VS NAND
那么什么是NOR Flash和NAND Flash?我们先来看看他们芯片的样子:
(左边是NAND,右边是NOR)
他们的电气原理我就不讲了,感兴趣的人也不多。我们这里主要聚焦在他们的共性和特性上。
1。共性
A. 都是非易失存储介质。即掉电都不会丢失内容。
B. 在写入前都需要擦除。实际上NOR Flash的一个bit可以从1变成0,而要从0变1就要擦除整块。NAND flash都需要擦除。
2。特性
特性是决定使用哪种Flash的根据,我这里总结出一张表:
如果以美光(Micron)自己的NAND和NOR对比的话,详细速度数据如下:
(数据来源Micron)
如果我们单独看随机读取速度:
(数据来源Micron)
如果用现在流行的关系图看是这样:
(数据来源Toshiba)
应用场景
在PC和手机上我们都可以找到NOR和NAND Flash的身影。
1。NOR Flash
NOR Flash和普通的内存比较像的一点是他们都可以支持随机访问,这使它也具有支持XIP(eXecute In Place)的特性,可以像普通ROM一样执行程序。这点让它成为BIOS等开机就要执行的代码的绝佳载体。
NOR Flash 根据与 Host 端接口的不同,可以分为 Parallel NOR Flash 和 Serial NOR Flash 两类。
Parallel NOR Flash 可以接入到 Host 的控制器 上,所存储的内容可以直接映射到 CPU 地址空间,不需要拷贝到 RAM 中即可被 CPU 访问。NOR Flash在BIOS中最早就是这种接口,叫做FWH(Firmware HUB),由于其接是并行接口,速度缓慢,现在基本已经被淘汰。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通过 SPI 接口与 Host 也就是PCH相连。
现在几乎所有的BIOS和一些机顶盒上都是使用NOR Flash,它的大小一般在1MB到32MB之间,价格昂贵。
2。NAND Flash
NAND Flash广泛应用在各种存储卡,U盘,SSD,eMMC等等大容量设备中。它的颗粒根据每个存储单元内存储比特个数的不同,可以分为 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三类。其中,在一个存储单元中,SLC 可以存储 1 个比特,MLC 可以存储 2 个比特,TLC 则可以存储 3 个比特。
NAND Flash 的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。
现在高端SSD会选取MLC甚至SLC,低端SSD则选取TLC。SD卡一般选取TLC。
3。其他
1. 最早的手机等设备之中既有NOR Flash也有NAND Flash。NOR Flash很小,因为支持XIP,所以负责初始化系统并提供NAND Flash的驱动,类似Bootloader。而NAND Flash则存储数据和OS镜像。三星最早提出Norless的概念,在它的CPU on die ROM中固话了NAND Flash的驱动,会把NAND flash的开始一小段拷贝到内存低端作为bootloader,这样昂贵的NOR Flash就被节省下来了,降低了手机主板成本和复杂度。渐渐NOR Flash在手机中慢慢消失了。
2. NOR Flash最大的问题是擦写慢和可擦写次数少,但是很少会因为这个原因造成BIOS速度降低和损坏,你知道是为什么吗?
尾声
NAND Flash相对NOR Flash更可能发生比特翻转,就必须采用错误探测/错误更正(EDC/ECC)算法,同时NAND Flash随着使用会渐渐产生坏块;我们在使用NAND Flash的SD卡上经常使用FAT文件系统,如果大家度过前面的文章(传送门:FAT文件系统与UEFI - 知乎专栏)就会知道,文件分配表会被频繁改写,而每块的擦写次数是NAND Flash寿命的决定性因素。如何才能平衡各块的擦写和为可能的坏块寻找替换呢?通常需要有一个特殊的软件层次,实现坏块管理、擦写均衡、ECC、垃圾回收等的功能,这一个软件层次称为 FTL(Flash Translation Layer)。根据 FTL 所在的位置的不同,可以把 Flash Memory 分为 Raw Flash 和 Managed Flash 两类:
最早大家都是使用raw Flash,FTL全由驱动程序实现。后来发展到SD和eMMC等,则由设备固件实现抽象。
FTL的原理是我们下一篇的主要内容。
相关问答
both... and ...neither... nor ...either...or...notonly...but...[最佳回答]both...and表示两者都如何如何neither...nor表示两者都不如何如何either...or.表示两者其中之一如和如何notonly...butalso表示不仅...而且连.....
eitheror和neithernorbothand区别_作业帮[回答]either...or...与neither...nor...一、either...or...either...or...意为"或者……或者……;不是……就是……"之意.表示两者...
neither和 nor 的区别?1、词性不同neither可以作为连词、副词、代词,但是nor只能作为连词和副词,不能作为代词。2、用法不同neither后可接be动词,且通常可以作为连词使用,而nor...
NorFlash与NandFlash的区别?NorFlash和NandFlash是两种不同的闪存存储器,它们的主要区别在于其存储方式和应用场景。1.存储方式:NorFlash采用的是随机访问存储(RAM)方式,也就是说可以...
norflash和nandflash的区别?NANDflash和NORflash的区别一、NANDflash和NORflash的性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的....
nandflashnorflashmcpflash的区别?norflash的存储区是连续的支持连续烧录,nand不支持连续烧录,其存储区不是连续的。nor出厂可以保证是好的,不存在坏块;nand可能存在坏块。其他的区别网上可查...
NANDFlash和NorFlash到底有什么区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100...
both and 和not only but also和neither nor 用法?both…and,neither…norboth…and“双方都”,连接句子的两个主语时,其后谓语动词通常用使用复数形式。neither…nor注意采取“就近原则”。notonl...
either...or;neither... nor ;both... and 列举句子.1.either......[最佳回答]1.Eitherdyeorpaintsareusedtocolourcloth.不论是染料还是颜料都是用来染布的.NeithershenorIgoshoppingto...
OR, AND ,XOR, NOR , NAND ,XNOR分别表示什么逻辑关系?OR或,AND与,XOR异或,NOR或非,NAND与非,XNOR异或非,or或,and与,xor异或,nor或非,nand与非,xnor异或非,