快讯
HOME
快讯
正文内容
nand flash 擦除 block SSD学习笔记-NOR, NAND, FTL, GC基本概念
发布时间 : 2024-10-06
作者 : 小编
访问数量 : 23
扫码分享至微信

SSD学习笔记-NOR, NAND, FTL, GC基本概念

NOR v.s. NAND

两者都是非易失存储介质。即掉电都不会丢失内容, 在写入前都需要擦除。

NOR有点像内存,支持随机访问,这使它也具有支持XIP(eXecute In Place)的特性,可以像普通ROM一样执行程序。现在几乎所有的BIOS和一些机顶盒上都是使用NOR Flash,它的大小一般在1MB到32MB之间,价格昂贵。

NAND Flash广泛应用在各种存储卡,U盘,SSD,eMMC等等大容量设备中。

NOR VS NAND - 场景

如果以镁光(Micron)自己的NAND和NOR对比的话,详细速度数据如下:

NOR VS NAND - 性能

NAND Flash

NAND Flash目前的用途更为广泛,它的颗粒根据每个存储单元内存储比特个数的不同,可以分为 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。

SLC,MLC,TLC

NAND Flash的组成

一个典型的Flash芯片由Package, Die, Plane, Block和Page组成,其中die内部可以通过3D 堆叠技术扩展容量,譬如三星的V-NAND每层容量都有128Gb(16GB),通过3D堆叠技术可以实现最多24层堆叠,这意味着24层堆叠的总容量将达到384GB!

NAND Flash组成

写放大

Block是擦除操作的最小单位,Page是写入动作的最小单位,一个Block包含若干个Pages。当我们有了块干净的Flash,我们第一个想干的事就是写些东西上去,无论我们是写一个byte还是很多东西,必须以page为单位,即写一个byte上去也要写一个page。要修改一个字节,必须要擦除,擦除的最小单元是Block。

Flash Translation Layer (FTL)

NAND flash的寿命是由其擦写次数决定的(P/E数 (Program/Erase Count)来衡量的),频繁的擦除慢慢的会产生坏块。那么我们如何才能平衡整块Flash的整体擦写次数呢?这就要我们的FTL登场了。

Flash Translation Layer原理

FTL简单来说就是系统维护了一个逻辑Block地址(LBA,logical block addresses )和物理Block地址(PBA, physical block addresses)的对应关系。 有了这层映射关系,我们需要修改时就不需要改动原来的物理块,只需要标记原块为废块,同时找一个没用的新物理块对应到原来的逻辑块上就好了。

垃圾回收(GC,Garbage Collection)机制定期回收这些废块, 和Java,GO等语言的GC机制类似,应用不需要像C/C++那样关注内存释放,GC定期扫描,回收释放内存。目标是让Flash最小化擦除次数,最大化使用寿命。

NAND Flash是如何生产出来的?

Hardy(晗狄) 架构师技术联盟

NAND Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁存电荷,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。关于NAND Flash技术基本原理之前有过讲解,大家可以参考文章闪存技术最全面解析。今天主要讨论下NAND Flash生产过程、架构关键指标

NAND Flash是从原始的硅材料加工出来的,硅材料被加工成晶圆(Wafer) ,一片晶圆上可以做出几百颗NAND FLASH芯片。芯片未封装前的晶粒成为Die,它是从Wafer上用激光切割而成的小片,每个Die就是一个独立的功能芯片,它由无数个晶体管电路组成,但最终可被作为一个单位封装起来成为闪存颗粒芯片。下面是NAND Flash芯片的详细加工过程。

NAND Flash的容量结构从大到小可以分为Device、Target、LUN、Plane、Block、Page、Cell 。一个Device有若干个Die(或者叫LUN),每个Die有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page,每个Page对应着一个Wordline。

Die/LUN是接收和执行FLASH命令的基本单元。不同的LUN可以同时接收和执行不同的命令。但在一个LUN当中,一次只能执行一个命令,不能对其中的某个Page写的同时又对其他Page进行读访问。下面详解介绍下这些结构单元和之间的联系。

Device就是指单片NAND Flash,对外提供Package封装的芯片,通常包含1个或多个Target;

Target拥有独立片选的单元,可以单独寻址,通常包含1或多个LUN;LUN也就是Die,能够独立封装的最新物理单元,通常包含多个plane。

Plane拥有独立的Page寄存器,通常LUN包含1K或2K个奇数Block或偶数Block;

Block是能够执行擦除操作的最小单元,通常由多个Page组成;Page是能够执行编程和读操作的最小单元,通常大小为4KB/8KB/16KB/32KB等。

Cell是Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit数据,主要可颗粒类型。

下图是一个FLASH Block的组织架构,每个Cell的漏极对应BL(Bitline) ,栅极对应WL(Wordline) ,源极都连在一起。每个Page对应着一个Wordline,通过Wordline加不同电压和不同时间长度进行各种操作。

一个WordLine对应着一个或若干个Page,对SLC来说一个WordLine对应一个Page;而对MLC来说则对应2个Page(Lower Page 和Upper Page);Page的大小与WordLine上存储单元(Cell)数量对应。

Data Retention(数据保存力) 是用于衡量写入NAND Flash的数据能够不失真保时间的可靠性指标,一般定义为在一定的温度条件下,数据在使用ECC纠错之后不失真保存在NAND Flash中的时间;影响Data Retention 最大的两个因素是擦写次数和存储温度。通常情况下企业级SSD盘的Data Retention都是遵循JEDEC的JESD218标准,即40℃室温下,100%的PE Cycle之后,在下电的情况Data Retention时间要求达到3个月。

NAND Flash写入前必须擦除, Block擦除1次后再写入1次称为1次PE CycleEndurance (耐久性) 用于衡量NAND Flash的擦写寿命的可靠性指标;Endurance指的是在一定的测试条件下NAND Flash能够反复擦写数据的能力,即对应NAND Flash的PE (Program/Erase ) Cycle。

Bit Error Rate(BER) 指由于NAND Flash颗粒概率发生Bit位翻转导致的错误,其中,RBER (Raw Bit Error Rate) 指没有经过ECC纠错时出现一个Bit位发生错误的几率,RBER也是衡量NAND品质的一项指标。RBER是NAND自身品质的一个特性,随着PE次数的增加会变差,出错趋势呈指数分布,其主要原因是擦写造成了浮栅氧化层的磨损。

UBER(Uncorrectable Bit Error Rate) 指发生不可纠正ECC错误的几率,即一个纠错单元Codeword内发生bit位翻转的位数超出ECC算法可纠能力范围的几率。

DWPD(Diskful Writes Per Day) 指每日写入量。SSD的成本($/GB)随DWPD增加会变高,未来SSD的趋势预测读密集型当前已占50%,未来的占比会逐渐变大。

NAND Flash的寿命不等于SSD的寿命;SSD盘可以通过多种技术手段从整体上提升SSD的寿命,通过不同的技术手段,SSD盘的寿命可以比NAND Flash宣称寿命提升20%~2000%不等。

SSD的寿命不等于NAND Flash的寿命。NAND Flash的寿命主要通过P/E cycle来表征。SSD由多个Flash颗粒组成,通过盘片算法,可有效发挥颗粒寿命。影响SSD盘使用寿命关键因素主要包括下面因素。

每年写入数据量 ,和客户的业务场景强相关;

单个Flash颗粒寿命 , 不同颗粒的P/E Cycle不同

数据纠错算法 ,更强纠错能力延长颗粒可用寿命

磨损均衡算法 ,避免擦写不均衡导致擦写次数超过颗粒寿命

Over Provisioning占比 ,随着OP(预留空间)的增加SSD磁盘的寿命会得到提高。

作为闪存开发、设计和从业人员而言,必须与时俱进,紧跟新技术步伐。关于SSD、闪存、NVMe和SCM技术想做进一步了解,请参看“闪存技术、产品和发展趋势全面解析 ”资料,目录详情如下。

点击原文链接 即可查看最“闪存技术、产品和发展趋势全面解析”全面的闪存技术大餐。

>>>推荐阅读

从高性能计算(HPC)技术演变解析方案、生态和行业发展趋势

存储性能瓶颈的背后,这篇文章带来的参考价值

分布式、多活数据中心如何实现DNS域名解析和负载均衡

传统企业存储厮杀过后,昨天的战场留下什么值得回忆

相关问答

sdkflash怎么 擦除 ?

flash的特性是,写数据只能将1写为0,0不能写为1.擦除数据是将所有数据都写为1.因此如果想在已经数据的flash上写入新的数据,则必须先擦除。sdcard则没有这个特...

硬盘Ghost开启出现Bad block (s)encountered on read-continu...

一些用户在用ghost备份系统的时候,出现“Badblock(s)encounteredonread.Continueanyway”badblock的意思是坏区,但这不一定是坏区...

我的世界怎样让命令方块怎么消除指令?

消除周围的方块的指令是:/setblock0[xyz]minecraft:air【/setblock放置方块命令】命令使用方法:/setblock[datValue][旧方块处理方式][data...

sns. block .00001是什么文件可以删除吗?

可以删除。通常是系统或者某些软件对已完成的某种处理的记录,以便将来做为参考,它并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然...可...

我的世界怎样清除公告栏?

在我的世界游戏中按“T”或直接输入“/”打开语言栏,在语言栏中输入指令/give@scommand_block,输入完后,按Enter执行即可获得命令方块。将命令方块放置在地...

怎样删除物品栏里的物品?

如果要删除物品栏中的物品的话有两种方法:1、/clear[玩家][物品][数据][最大数量][数据标签]2、/replaceitemblock如果要删除物品栏中的物品的话有两...

我的世界怎么弄掉命令方块?

要删除Minecraft中的命令方块,您可以使用游戏内的命令或手动删除。1.使用游戏内命令:-在创造模式下,打开命令方块所在的区域。-在聊天框中输入命令:...

固态硬盘的启动分区被我作死的删了.应该怎么办?

删除对固态寿命没有任何影响。固态和机械的删除都是标记这个区块为废弃,下次直接覆盖。(注:固态的覆盖是在写入前清除该block并写入,但如果没有写入,是不会...

bio设置中显卡错误报告为何要关闭? BIOS设置选项中Plug& play...

BIOS里面的这个功能对windowsXP以上的系统来说意义不大,因为windows系统也有plugandplay服务。对windows以外的其他系统,也许有关键性的作用。有用(0)回复....

3dmax删除键删除不了怎么回事?

因为材质编辑器没有关闭1、那是因为材质编辑器没有关闭,而是在最小化的模式下(而且某个材质还在选中状态),按了Delete系统不会对场景进行删除处理。2、而...

 领科特  阀门执行器 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部