闪存芯片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 之间的异同,欢迎关注宏旺半导体,会持续带来存储领域更专业的文章。
我们的数据存在固态硬盘上安全吗?
随着SSD应用的越来越广,我们的台式机、笔记本甚至服务器都被SSD占领。你有没有想过一个很细思极恐的问题:红旗到底能打多久——SSD硬盘能用多久?我们的数据安全吗?
生命周期
根据我们前文杂谈闪存二:NOR和NAND Flash
我们知道NAND Flash单元的寿命是由擦写(P/E)次数决定的,而目前大部分的SSD都是由MLC颗粒组成,一般的MLC只有3000次擦写寿命。如下图:
幸亏我们有FTL,提供了写平衡,整体SSD的寿命才没有仅仅3000次写操作。那么究竟我们写入多少数据才会把SSD写坏呢?
这个实际上和很多因素有关:容量的大小,OP的大小,主控的算法等等。很多SSD产品在出厂说明中都有标有品保的最大写入量,如Intel的 240GB 335系列,标称的最大写入量是22TB。据统计,平均硬盘写入量年均1500GB~2000GB, 我们做个简单的计算就可以知道可以用多久:22/2= 11年,似乎还不错。
Wait a Minute! 如果你把SSD硬盘用来做BT下载,假设我们以10MB/s的速度下载,一天就会下载10 × 60 × 60 × 24 / 1024 = 843GB,22 × 1024 / 843 = 26 天,还不到一个月!如果你是个勤奋的程序员,在进行安卓手机开发,为了build快点,你把程序放到SSD上并每过一个小时做一次clean build同时产生10G临时文件,那么你的SSD可以用 22 × 1024 / 240 = 94天!太糟糕了!当然,这些都是理论最差情况,实际情况是这样吗?
TechReport上有一期文章(The SSD Endurance Experiment: They're all dead) 作者找了5块市面上常见的SSD,它们是Corsair Neutron GTX 240GB, Intel 335 Series 240GB, KingstonHyperX 3K 240GB, Samsung 840 Series 250GB, and Samsung 840 Pro 256GB。
作者通过诙谐的文笔,详细描述了通过持续不断的写入数据,实际测试SSD硬盘的可靠性,推荐读者详细阅读。
我们这里就描述一下结论。首先要提的是所有的SSD都可以写入数百TB。在写入100TB数据以后,它们都安然无恙,这是一件了不起的事情,要知道,这远远超过它们所标称的写入量。
测试结果如下图:
写入200TB后,最先出问题的是三星的840系列,它已经出现可以记录的坏块。这和它是唯一的TLC(1000次P/E)是分不开的。在300TB后出现不可修正错误,严重影响了数据可靠性,应该被立刻换下。如果继续,在900TB就彻底挂掉了。
Intel的335表现比较平稳,在600TB出现问题后,在700TB后,SMART信息就发出了失败警告,但是使用起来仍然一切正常,闪存单元也几乎都是完整的。继续写入,仅仅只过了50TB,也就是到达750TB,最终就崩溃了。金士顿的HyperX 3K,在写入近800TB死掉,而海盗船则表现异常优秀,在1.1PB前都表现平稳。只有在1.2PB才由SMART报告大量错误,在重启后,就不认盘了。
我们以Intel 335为例再来算一下,BT用户可以用600TB × 1024 / 843 = 728天,程序员可用 600TB × 1024 / 240 = 2560天=7.11年,普通用户可以用600TB/2 = 300年!情况十分乐观!
数据持久性
NAND的数据存储是把电子禁锢在Gate里,这个可怜的囚徒会不会在无人监管时逃出来呢?就是说,我们把SSD断电放在柜子里,数据会不会丢失呢?
这个并不是多虑,实际上,温度越高,电子越活跃,越有可能跑掉一部分,当很多电子跑掉后,数据就有可能丢失。实际上JEDEC组织早已对SSD定下了标准,如下图:
即消费品在掉电情况下,在30度室温中需要保证1年数据不丢失。它的来源是一份Intel的研究报告:
在30度情况下,数据经过52周即有可能出现数据丢失。如果我们把温度提高到55度,2周数据就有可能丢失!多么可怕的数字。
当然这是最低标准,而且要求很破旧的SSD都要遵守的原则。实际情况会好的多,但是也为我们敲响了警钟:SSD放着不动,数据可能会丢失的!
结论
看了这么多的数字,我们能得出什么结论呢?
1. SSD作为一般用途不需要担心使用寿命的问题,但是千万不要把它当作BT等下载盘!
2. SSD不适合作为冷数据备份用途,还是磁带/硬盘等比较合适,毕竟SSD这么贵,经济上也划不来。还有不要把SSD放在暴晒的汽车内置之不理,数据可是无价的。
3. 如果妥善使用SSD,SSD还是十分可靠的。
4. SSD挂掉之前会有很多坏块产生,我们需要在发生坏块的时候就开始进行数据迁移。不要等不认盘的时候,就后悔晚矣。
相关问答
ftl文件 ,是什么文件?ftl是Freemarker模板的文件后缀名FreeMarker其实是一种比较简单的网页展示技术,说白了就是网页模板和数据模型的结合体。这种结合模式的好处就是,分离了网页...
ntldr.exe是个什么 文件 ?感觉好象是一个病毒,每个盘里都有,...[回答]…老病毒新变种的分析之一一.logogo最新变种soundmno.exe,ntldr.exe的分析技术细节:1.病毒运行后,衍生如下副本:C:\WINDOWS\system\soundmno.exe...
SSD是否需要使用特别的 文件 系统?用认真的态度与专业的情怀倾注于存储,欢迎关注我,与我交流哦!我们常用的电脑系统主要是Windows和Linux,其中,Windows系统中常用的文件系统主要是FAT和NFTS...用...
SpringMVC与Freemarker集成,配置项目全局的绝对路径 - OSCH...publicclassMyFreeMarkerViewextendsFreeMarkerView{privatestaticfinalStringCONTEXT_PATH=&q...
为什么很多牌子固态硬盘都没有缓存,有缓存好还是没有好 - ...DRAM缓存对于固态硬盘来说并不是必须的,而且固态硬盘的缓存跟机械硬盘的缓存不同,里边存储的是FTL闪存映射表,而非用户读写的数据缓冲,不直接影响到...
能通过司法冻结序号查询详细冻结 文件 吗-找法网法律咨询能通过司法冻结序号查询详细冻结文件吗损害赔偿遭遇法律难题?点击为您...立即咨询x4bq****lw7vz911分钟前提交了咨询ftl3****b4k4l52分钟前提交了咨询...
怎么消除前保安公司的个人档案-找法网工作表现以及工作变动等情况的文件材料。职工档案是社会保险行政机关认定缴费年...n7****at9ftl7分钟前提交了咨询y56l****e2yh7r10分钟前提交了咨询w8cm****u...
固态硬盘掉盘就废了吗?不一定就报废了。1、SSD掉盘后如果是热启动(不断电重启)的话,有可能在BIOS以及快捷启动菜单里认不到固态硬盘,彻底将电脑断电后重新开机则能再次识别,如果...
固态开卡成功但不认盘?1、固态硬盘掉盘原因,一般有几个原因,比如异常断电导致、SATA接口松动、链接电源管理、固件bug,发生掉盘较多的是异常断电导致FTL损毁而掉盘,或者是固件bug,...
硬盘突然断电?一次意外掉电。再次开机时直接不认盘。整盘用BitLocker加密。可恶的是加密信息也都丢了。不过最后废了一番曲折,把数据全都恢复了。甚至把恢复出来的文件载...