杂谈闪存二: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的原理是我们下一篇的主要内容。
什么是NAND 型 Flash 存储器?
前言
NAND Flash 和 NOR Flash是现在市场上两种主要的闪存技术。Intel于1988年首先开发出 NOR Flash 技术,彻底改变了原先由 EPROM 和 EEPROM 一统天下的局面。紧接着,1989年,东芝公司发表了 NAND Flash 结构,后者的单元电路尺寸几乎只是 NOR 器件的一半,可以在给定的芯片尺寸内提供更高的容量,也就相应地降低了价格。
1.NAND Flash ROM
NAND Flash ROM 应该是目前最热门的存储芯片了。因为我们生活中经常使用的电子产品都会涉及到它。比如你买手机,肯定会考虑64GB,还是256GB?买笔记本是买256GB,还是512GB容量的硬盘呢?(目前电脑大部分采用了基于 NAND Flash 产品的固态硬盘)。
2.NOR Flash ROM
NOR Flash ROM 的特点是以字节为单位随机存取。这样,应用程序可以直接在 Flash ROM 中执行,不必再把程序代码预先读到 RAM 中。NOR Flash ROM 的接口简单,与通常的扩展存储器一样,可以直接连接到处理器的外围总线上。
与 NOR Flash ROM 相比, NAND Flash ROM 以页(行)为单位随机存取,在容量、使用寿命和成本方面有较大优势。但是它的读出速度稍慢,编程较为复杂,因此大多作为数据存储器使用。嵌入式产品中包括数码相机、MP3 随身听记忆卡、体积小巧的U盘等均采用 NAND Flash ROM 。
在存储结构上,NAND Flash 内部采用非线性宏单元模式,全部存储单元被划分为若干个块(类似于硬盘的,一般为8 KB),这也是擦除操作的基本单位。进而,每个块又分为若干个大小为512 B的页,每页的存储容量与硬盘每个扇区的容量相同。也就是说,每页都有512条位线,每条位线连接一个存储元。此时,要修改 NAND 芯片中一个字节,就必须重写整个数据块。当Flash 存储器的容量不同时,其块数量以及组成块的页的数量都将不同。相应地,地址信息包括了列地址、块地址以及相应的页面地址。这些地址通过8位总线分组传输,需要多个时钟周期。当容量增大时,地址信息增加,那么就需要占用更多的寻址周期,寻址时间也就越长。这导致NAND Flash的地址传输开销大,因此并不适合于频繁、小数据量访问的应用。
相比较而言,NAND 型 Flash 存储器具有更高的存储密度、更快的写人速度、更低的价格以及更好的擦写耐用性等优点,非常适用于大量数据的存储。但由于NAND Flash的接口和操作都相对复杂,位交换操作频繁,因此通常还要采用错误探测/错误纠正(EDC/ECC)算法来保护关键性数据。
例如深圳雷龙有限公司的 CSNP32GCR01-AOW 芯片。
一.免驱动使用。SD NAND内置了针对NAND Flash的坏块管理,平均读写,动态和静态的EDC/ECC等算法。
二.性能更稳定。由于NAND Flash内部是先擦后写机制,如果软件处理不当,在突然掉电的时候就会导致数据丢失。而SD NAND内部自带的垃圾回收等机制可以很好的规避这个问题。因此CS创世的二代产品才会通过10K次的随机掉电测试。
三.尺寸更小。目前SD NAND 是68mm 大小,8个pin脚,相比Raw NAND的1220mm大小,48个pin脚,采用SD NAND可以做出更小巧的产品,而且也能节省CPU宝贵的GPIO口(这点对于MCU单片机来说更是重要)
四.SD NAND可选容量更多。目前有128MB/512MB/4GB容量。而SLC 的Raw NAND 主流容量128MB,512MB已经少见,供货周期也很长;单颗4GB的Raw NAND基本都是MLC或者TLC NAND的晶圆,管理起来更复杂。
不用写驱动程序自带坏块管理的 NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8 封装,标准SDIO接口,兼容SPI,兼容拔插式TF卡/SD卡,可替代普通 TF卡/SD 卡,尺寸 6.2x8mm ,内置平均读写算法,通过1万次随机掉电测试耐高低温,机贴手贴都非常方便,速度级别Class10(读取速度 23.5MB/S 写入速度 12.3MB/S )标准的 SD2.0 协议普通的SD卡可直接驱动,支持TF卡启动的 SOC 都可以用 SD NAND。
SD NAND原理图如下:
相关问答
norflash和 nandflash 的区别?NorFlash和NandFlash是两种不同的闪存存储器技术,其主要区别如下:1.构造:NorFlash和NandFlash的电路结构不同,NorFlash采用并行结构,/擦除操作;而NandF...
平板电脑怎样可以把默认储存 nandflash 改为外置储存?首先,升级ipados13,然后再空间里把应用都重新装一遍,可以节约15%左右的app自身空间(ios/ipados13自带的功能),然后你就可以用外置u盘了,这个时候看看万...
8GBNAND是什么?8GBNAND是容量8GBNANDFLASH,可以用来做TF卡SD卡CFSSD等产品。8GBNAND是容量8GBNANDFLASH,可以用来做TF卡SD卡CF...
NAND 与ROM有什么不同-ZOL问答我的PPC有8G的NAND但是ROM只有128MB,我想问在WM系统中NADN和ROM的使用功能一样...由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了FlashMemory的发展....
西部数据布局 NAND Flash 市场,如何快速从传统的HDD向SSD扩展?首先是收购一堆闪存公司,sandisk、stec、fusion-io,等等,这些公司的产品几乎覆盖了从介质到各种形态硬盘的所有产品,而且都是非常权威的厂商。只是fusion-io...
镁光 NANDflash 块锁了怎么解锁不了,锁住了只能读 - 145****2...1.我的TF卡是4G卡,默认在windows和mac上都无法把TF格式化为FAT16(简称FAT),只能格式化为FAT32,我用FAT32试了两天都只能进入原厂recovery,无法刷机...
你好U盘因强制拔出后电脑无法识别变成了驱动器 NAND Flash USB device怎么办呀?按如下步骤,一步步排除故障。1、在确保没问题的USB接口上,插上U盘,听一下音箱有没有叮咚一声的响声。如果什么声音也没有,说明电脑完全没有识别到有USB设备...
emmc与 nand flash 哪个好?1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...
nandflash 温度过高会怎么样?回答如下:当nandflash温度过高时,可能会导致以下问题:1.寿命缩短:高温会加速芯片内部元件的老化,导致寿命缩短。2.数据丢失:高温会导致数据的稳定性变...