三星终于从爆炸门中走了出来,受到来自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 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的原理是我们下一篇的主要内容。 其他闪存相关文章: 硬盘相关文章: 欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿! 用微信扫描二维码加入UEFIBlog公众号一、Nand Flash 和Nor Flash存储器简介 我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的。这二种存储设备我们都统称为“FLASH”,FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通过程序可以修改数据,即平时所说的“闪存”。Flash又分为NAND flash和NOR flash二种。U盘和MP3里用的就是这种存储器。 Nand flash存储器经常可以与NOR Flash存储器互换使用。大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。 (1)Nor Flash存储器简介 NOR Flash 的读取和我们常见的 SDRAM 的读取是类似,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约成本。 (2)Nand Flash存储器简介 Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等 二、NAND flash和NOR flash原理 (2-1)、存储数据的原理 (2-3)、0 和 1 (2-4)、连接和编址方式 两种 FLASH 具有相同的存储单元,工作原理也一样,为了缩短存取时间并不是对每个单元 进行单独的存取操作,而是对一定数量的存取单元进行集体操作, NAND 型 FLASH 各存 储单元之间是串联的,而 NOR 型 FLASH 各单元之间是并联的;为了对全部的存储单元有 效管理,必须对存储单元进行统一编址。 三、NAND flash和NOR flash的区别 (3-1)、NAND flash和NOR flash的性能比较 (3-2)、NAND
flash和NOR flash的接口差别 (3-3)、NAND flash和NOR flash的容量和成本 (3-4)、NAND flash和NOR flash的可靠性和耐用性 (3-5)、NAND flash和NOR flash的寿命(耐用性) (3-6)、位交换 (3-7)、EDC/ECC算法 (3-8)、坏块处理 (3-9)、易于使用 (3-10)软件支持 四、应用 (4-1)序列接口闪存SPI总线:单一master对单一slave 序列接口闪存是一种使用序列式接口(通常使用序列周边接口总线(SPI))来循序访问数据内容,小型且低功率的闪存。当其使用于嵌入式系统上时,序列式闪存比平行式闪存在印刷电路板上所需的连接线数要少得多;因为序列式接口可以一次同时发送与接受数据的一个比特,这使得序列式闪存具有减少在印刷电路板上所占面积、耗电量及整体系统成本的优势。 有好几个理由说明了为何使用较少外部接脚的序列式组件,而不是使用平行式组件,可以大大的降低整体的成本:
SPI闪存的型式主要有两种:一种是小页特性且内含一个或多个内部SRAM的页缓冲器,能够让整个页的数据都读入缓冲器、修改部分数据、而后再写回闪存中(例如Atmel的DataFlash:AT45,Micron Technology页抹除NOR型闪存)。另一种则有较大的区段。一般来说,SPI闪存的最小区段大小是4kB,最大可达64kB。因为此类SPI闪存缺乏内部SRAM缓冲器,修改数据时必须将完整的数据页读出,再修改数据后,写回闪存中,使得管理速度变慢。SPI闪存比平行式接口闪存便宜,因此应用于具有程序代码對映(Code-Shadowing)功能的系统上,是一个不错的选择。 而这两种型式的闪存不容易做到简单的直接置换,因为没有相同的外部接脚且命令集也互不兼容。 (4-2)固件存储使用平行式接口闪存的个人电脑BIOS 随着现下CPU的速度越来越快,平行式接口闪存组件的速度通常远小于与其连接的电脑系统存储器总线速度。相较之下,当前的SRAM访问的时间通常小于10ns,而DDR2 SDRAM访问时间一般则小于20ns。因为这个因素,一般合理的使用方式是将要存放于對映存储器里的代码预先存放于闪存中,并在CPU运行代码前将闪存中的代码复制到對映存储器中,如此一来,CPU就可以用最高速度来取用代码。设备上的固件也可以预先存放于序列式接口闪存中,在设备引导后,将其复制到SDRAM或SRAM里。[24]使用外部序列式闪存而不用芯片中内嵌闪存是因为芯片制程上的考虑而妥协的结果(适用于高速逻辑制程通常不适用于闪存,反之亦然)。如果有需要将一个宏块的固件代码读入时,通常会事先将代码压缩后再存入闪存中,就可以缩小闪存芯片上被使用的区域。典型的序列式接口闪存应用于固件存储上有:硬盘、以太网控制器、DSL调制解调器、无线网络接口卡等等。对于UEFI而言,因为在UEFI启动过程的DXE阶段前UEFI对内存的访问有限,所以UEFI固件通常保存在NOR Flash中。 (4-3)闪存作为硬盘的替代品华硕Eee PC的SSD 主条目:固态硬盘 近期另一个闪存的应用就是作为硬盘的替代品。因为闪存没有硬盘驱动器械因素的限制并且可以多单元并行访问,所以固态硬盘(SSD)在速度、噪音、耗电量与可靠度等因素的考量上是非常吸引人的。闪存组件正获取便携式行动设备上第二存储组件的地位。同时使用在高性能台式机及一些具有RAID和SAN架构的服务器上作为硬盘的替代品。 但是以闪存为基础的固态硬盘,也存在其他方面因素,使得它并不具有吸引力。例如闪存每千兆比特的成本依旧比硬盘高出许多。[25]另一个不具吸引的因素就是闪存有着有限的P/E循环次数,但是这个因素可以透过程序优化,当前似乎已在人为控制能力范围内,加上容量的增大使得每单位读写次数减少,让它的使用寿命可以达到传统硬盘甚至更高的水准,因此以闪存为基础的固态硬盘也施行了与现有硬盘相同的保固政策。 对于关系性数据库或其他使用ACID的数据库事务系统上,即使是使用当前最慢的闪存存储媒体也可以比使用硬盘所组成的数组,在速度的表现上有着显著的提升。[ 于2006年6月,三星发布第一批配备闪存固态硬盘的个人电脑:Q1-SSD及Q30-SSD,均使用32GB的固态硬盘,并且初期只在韩国地区发售。 在2008年,固态硬盘成为第一版MacBook Air的选用配备,并且从2010年起,固态硬盘成为所有Macbook Air笔记本电脑的标准配备。2011年后开始,由于固态硬盘成为Intel所倡议超极本的一部分,超薄笔记本电脑以固态硬盘为标准配备的数量逐渐增加。因为固态硬盘的性能远高于机械硬盘,所以2011年以后固态硬盘在PC上逐步得到普及。 也有混合型技术,诸如混合型硬盘和ReadyBoost,尝试将两种技术的优点合并,使用闪存作为硬盘上常用且鲜少修改的文件,如应用程序及操作系统的可执行文件,的高速非易失性缓存;或者使用固态硬盘加快机械硬盘的读写速度。 (4-4)闪存作为随机存取存储器[编辑]截至2012年,有许多的尝试想把闪存作为电脑的主存,动态随机存取存储器(DRAM)。在这个应用角色上,闪存的速度是比现有的DRAM慢,但是耗电量却远小于DRAM。 (4-5)闪存作为长时间文件存储媒体当前还不清楚闪存作为长时间文件存储媒体的有效文件存储时间究竟有多长?在文件数据不常被访问的条件下,最适合的保存温度与湿度是多少?需不需要作预防性的改写保护?等等相关的保存技术均有待进一步的研究发展。 |