




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Write amplification 写入放大与SSD相关技术解析,写入放大Write amplification 影响写入放大的因素 垃圾回收机制Garbage collection 预留空间 Over-provisioning TRIM 均衡磨损Wear Leveling 影响写入放大的其它因素,写入放大Write amplification,因为闪存的特性决定了. 在写入数据之前必需先对闪存存储单元进行擦除才能改写.在执行这些操作的时候,移动(或重写)用户数据和元数据不止一次。这些多次的操作,减少了SSD的写入寿命.也增加了无谓的写入量.写入放大因子是SSD控制器实际写入区块的容量总和
2、与实际文件大小的比值。写入放大为1时是最合适的,也就是说,你想写入16KB的文件,SSD实际写入了16KB的文件,更高的写入放大意味着SSD更短的寿命和更低的性能。因此.写入放大是衡量主控性能的重要指标.所有的算法优化技术都是为了降代写入放大.,简单的写入放大公式,NAND闪存基本知识,NAND闪存上写有数据的页面是无法直接进行重新写入的。如果需要进行重新写入的话,则必须分2步进行,首先进行数据擦除(ERASE),随后在写入新的数据(PROGRAM)。ERASE的操作就是将所有的bit都回复成1,而PROGRAM的操作,则是把其中需要的bit写为0。 通过向左边名为 POLY1 FLOATIN
3、G GATE 的区域注入和提取电子来保存数据。FLOATING GATE中没有电子的部分为1,已经被注入电子的部分则是0。已经注入的电子,通过被称为Tunnel Oxide的绝缘膜来保持电子的通电状态。一个闪存单元可以保存一比特(bit)的数据,当成千上万个单元同时集成进一片芯片中时,就可以保存成千上万个比特的数据了,再大的规模就是上GB存储量的NAND闪存颗粒了。 但是,在不断反复的对FLOATING GATE进行电子操作的过程中,Tunnel Oxide部分会产生老化。随后就无法保证已注入电子的通电状态。这就是NAND闪存存在着重写次数限制的原因.,NAND闪存基本知识,闪存运作特性,写入
4、最小单位是页,而擦除最小单位是块,.闪存有编程和擦除的次数限制,这样每次的编程/擦除就叫做1P/E(program/erase cycles)周期,而MLC一般是500010000次,而SLC是10万次左右.也就是说写入放大越低,P/E周期就越少,闪存寿命就越久。,影响写入放大的因素,1. 垃圾回收(GC) Garbage collection 2.预留空间 Over-provisioning 3.TRIM 4.均衡磨损Wear Leveling,垃圾回收(GC) Garbage collection,当SSD的所有块都已经写入了一次,SSD主控制器将会初始化那些包含无效数据的块。(陈旧数据,
5、这些块里的数据已经被更新的数据替换,已经无效了,没了LBA地址),现在他们正在等待被删除,以便新的数据可以写入其中,如何优化并整理这些个等待被删除的无效数据,这个算法称为垃圾回收(Garbage collection),当有写入请求时,从“空闲区块池”中给这个请求分配一个新的区块,将新区块的地址信息加到“数据区块池”。包含无效数据的区块被清理,然后将地址信息添加到“空闲区块池”。 有效数据会和写入请求一起写入到新的区块中.,Write Request - 写入请求 Data Placement - 数据暂存 Data Block Pool - 数据区块池 Free Block Pool - 空
6、闲区块池,后台GC与主动GC,后台GC 后台垃圾收集算法(也称为闲置垃圾收集),该控制器会使用空闲的时间来做垃圾收集,让主控在使用时一直保持高性能。例如barefoot主控. 在空闲的时候进行GC.以提高SSD性能. 主动GC 主动GC需要有相当性能的主控制器,以保证在操作数据的同时进行GC操作,这类GC适合在服务器里用到,因为个人用户可以把电脑闲置了做GC,但是服务器可不行,所以要保证性能的话必须在运行的同时做GC,这对主控制器的性能提出了很高的要求,SandForce与Marvell BJP2的主控就是这类。,当只有较少几个区块可用于写入的情况.在这个例子中,清理机制(算法)只能在少数几个
7、空白区块中进行操作,具有较多无效页面的区块被选中进行清理,当这些区块被清理,其地址信息加入到“空闲区块池”中后,原有的有效数据才会被拷贝到空闲区块中,接下来才轮到新进入的数据进行写入等操作。在最右边,你会看到接受到写入请求和将数据实际写入对应的区块中间的操作周期。当考虑到SSD进行的清理机制时,你会看到写入数据发生的延迟,这时便会产生写入放大,Garbage collection用于整理,移动,合并,删除闪存块来提升效率.虽然增加了写入放大,但是速度有提升。,Write Request - 写入请求 Write to a Free Block - 写入空闲区块 Select Block to
8、Cleaning - 选择一个区块准备清理 Replenish Free Block - 补充空闲区块 Write Valid Date - 写入有效数据 Total Data Written - 所有数据写入,均衡磨损Wear Leveling,简单来说,就是用映射的方法,把将要写入的地址映射到写入次数最少的区块上面去,这样就达到了近量让FLASH芯片上各处的单元擦写次数保持尽量相似。大大延长了FLASH的使用寿命。,图 简单的存储单元寿命公式,一个特定的块被持续的编程写入而不编程写入到别的块,那么这个块将很快被消耗掉编程寿命,造成整个SSD的报废。 处于这个原因,SSD主控制器要平均分配每
9、个块的编程次数,这个技术就是磨损平衡。 在最乐观的情况下,这个技术会让全盘的颗粒磨损程度接近并同时报废。 但要磨损均衡需要牺牲写入放大,假设对于冷数据,必须经常的移动到别的块,再把热数据移过来,保证2边的块都是一样的磨损度,于是无谓的增加了写入次数。,预留空间 Over-provisioning,预留空间是指用户不可操作的容量,为实际物理闪存容量减去用户可用容量。这块取用一般被用来做优化,包括磨损均衡,GC,Trim和坏块映射。,Over-provisioning的分层,Over-provisioning一共分为三层 第一层为固定的7.37%,这个数字是如何得出的哪?我们知道机械硬盘和SSD的
10、厂商容量是这样算的,1GB是1,000,000,000字节(10的9次方),但是闪存的实际容量是每GB=1,073,741,824,(2的30次方) ,2者相差7.37%。所以说假设1块128GB的SSD,用户得到的容量是128,000,000,000字节,多出来的那个7.37%就被主控固件用做OP了。 第二层来自制造商的设置,通常为0%,7%和28%等,打个比方,对于128G颗粒的SandForce主控SSD,市场上会有120G和100G两种型号卖,这个取决于厂商的固件设置,这个容量不包括之前的第一层7.37%。 第三层是用户在日常使用中可以分配的预留空间,而用户也可以自己在分区的时候,不分
11、到完全的SSD容量来达到同样的目的。(要有Trim支持),预留空间虽然让SSD的可用容量小了,但是带来了减少写入放大,提高耐久,提高性能的效果。,TRIM,Trim是WIN7下的一个SSD优化指令,他能让操作系统在删除某个文件或者格式化后告诉SSD主控这个数据块不再需要了。 一般情况下,当LBA被操作系统更新后,只有随着之后的每次数据写入(其实等于覆盖),SSD主控制器才知道这个地址原来早已经失效了。(之前认为每个数据都是有效的)在Win7里,由于Trim的引入解决了这个问题,当某些文件被删除或者格式化了整个分区,操作系统把Trim指令和在操作中更新的LBA一起发给SSD主控制器(其中包含了无
12、效数据地址),这样在之后的GC操作中,无效数据就能被清空了,减少了写入放大同时也提升了性能。,影响写入放在的其它因素,Sequential writes 持续写入 当SSD持续的写入数据时,写入放大一般为1,原因是随着数据写入,整个块都是持续的填充着同一个文件,如果系统确认这个文件需要改写或者删除,整个块都可以被标记为无效(需要Trim支持),自然就不需要之后的GC操作了。(读取整个块并写入新的块)这个块只需要擦除,比读,改,写更快速有效 .,Random writes随机写入 一个SSD主控的随机写入最高速度一般发生在安全擦除后,完全GC,全盘Trim,或新安装的状态下。 而随机写入的能力取决于主控制器的1.通道数。2.固件效率。3.闪存颗粒写入页面的性能。 然后就是写入放大的多少,越接近于1越好,小于1更那好。 当全盘颗粒都被写过后,GC功能就将被启用,速度就会受到影响,之后的写入放大就会达到SSD主控制器的最大倍数。大量的随机小文件的写入是“闪存杀手”,可用空间 SSD控制器会使用所有的可用空间做垃圾回收和磨损均衡。保证一定的可用空间可以提升SSD效率,减少写入放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年火锅底料合作协议书
- 2025年电子用高纯气体项目发展计划
- 2025年纳迪克酸酐项目发展计划
- 2025年湖南省国家综合性消防救援队伍消防员招录考试试题【答案】
- 自我生长构建逻辑连贯的学习过程
- 绘本阅读对重度智力障碍儿童沟通行为影响的深度探究
- 2025年全国精准扶贫知识竞赛考试试题(100题)【答案】
- 2025年渔业捕捞养殖机械项目发展计划
- 歌颂祖国演讲稿范文4篇
- 矿区无计划停电应急预案
- 英汉互译单词练习纸背单词
- 姑息治疗舒适护理
- 2022智慧健康养老服务与管理专业人才培养调研报告
- 机动车驾驶员安全教育培训课件
- 三坐标检测报告样本
- 焊条烘烤操作规程
- 急性胰腺炎护理常规课件
- 2022海南省财金集团有限公司招聘试题及答案解析
- 读后续写美好品德类代表劳动价值的车篮子讲义-高三英语二轮复习
- 《三国的世界》解说词 第一集 01
- 生物化学(护理专业高职)PPT完整全套教学课件
评论
0/150
提交评论