SSD 闪存盘是一种无需物理驱动器的卫星高容量存储产品,采用存储介质为闪存 (Flash Memory)。

关键技术指标

  • 寻道时间:<0.1ms
  • 内部存取速度: ~500MB/s
  • IOPS: ~100w, (受限于接口能力,SCSI/SAS=3k~10k,PCIe= ~60w)
  • 并发读写支持: ~100

闪存分类 

  • SLC : 每单元1比特,每单元支持10w次擦写,读取时间25us
  • MLC: 每单元2比特,每单元支持5000次擦写, 读取时间50us
  • TLC: 每单元3比特,每单元支持1000次擦写,读取时间75us

寿命限制
固态硬盘饱受诟病的就是使用寿命问题。
闪存具有擦写次数限制的问题。闪存完全擦写一次叫做1次P/E,因此闪存的寿命就以P/E作单位。34nm的闪存芯片寿命约是5000次P/E,而25nm的寿命约是3000次P/E。

  • 寿命(年)=( 实际容量(GB) × P/E寿命)/(每天写入容量(GB/天) × 365(天))

实际容量是指全盘的可用容量,一款128G的固态硬盘,实际容量就是120G。 要写入120G的文件才算做一次P/E。普通用户正常使用,即使每天写入50G,平均2天完成一次P/E,3000个P/E理论上能用20年。在实际使用中,用户更多的操作是随机写,而不是连续写,所以在使用寿命内,出现坏道的机率会更高。
另外,虽然固态硬盘的每个扇区可以重复擦写100000次(SLC=1bit/cell),但某些应用,如操作系统的LOG记录等,可能会对某一扇区进行多次反复读写,而这种情况下,固态硬盘的实际寿命还未经考验。不过通过均衡算法对存储单元的管理,其预期寿命会延长。SLC有10万次的写入寿命,成本较低的MLC(2bit/cell),写入寿命仅有1万次,而廉价的TLC(3bit/cell)闪存则更是只有可怜的500-1000次。

硬盘内置保护技术
Over-provisioning预留空间

SSD上的OP指的是用户不可操作的容量,大小为实际容量减去用户可用容量,OP区域一般被用于优化操作如:坏块映射和垃圾回收等。OP一般分三层(见下图):

  • 第一层容量固定为SSD标称容量的7.37% (1000:1024),这部分空间被默认用于作OP。
  • 第二层OP是否存在及容量大小取决于厂商设置。
  • 第三层OP是用户在日常使用中可以分配的,除了HPA 外,一般用户也可以自己在初次分区的时候,不把所有的SSD容量都分满来达到相同目的,此处有一点要注意,若非首次分区就留出空间,必须要先进行全盘擦除,否则没有效果。

Wear leveling磨损平衡

Flash Chip存在“写磨损”的问题,当某个单元长时间被反复擦写时(比如Oracle Redo),不仅会造成写入的性能问题,而且会大大缩短Flash memory的使用寿命。

Wear leveling依赖于SSD中的一部分保留空间,基本原理是在Flash Chip中设置了两个block pool,一个是free block pool (空闲池) ,一个是数据池(data block pool )。

当需要改写某个page时(如果写入原有位置,必须先擦除整个block,然后才能写入数据) ,并不写入原有位置(不需要擦除的动作) ,而是从空闲池中取出新的block,将现有的数据和需要改写的数据合并为新的block,一起写入新的空白block,原有的block被标识为invalid状态(等待被擦除回收) ,新的block则进入数据池。

后台任务会定时从数据池中取出无效数据的block,擦除后回收到空闲池中。这样做的好处在于,一是不会反复擦写同一个block,二是写入的速度会比较快(省略了擦除的动作)。

BBM(Bad Block Management)坏块管理和替换

不管WL算法如何高明,在使用中都会碰到一个头痛的问题,那就是坏块,所以一个SSD必须要有坏块管理机制。何谓坏块?一个闪存块里包含有不稳定的地址,不能保证读/写/擦时数据的准确性。

一般来说闪存出厂都包含坏块,不过厂商有个最小有效块值(NvB-minimum number of valid blocks),以Intel的34nm MLC L63B来说,1个die上4,096个块里至少要有3,936个块是好的。从这上面可以知道,虽然出厂的闪存可能有坏块,但是厂商保证在正常的生命周期里,好块数量不会低于3936个块。而且每个die的第一个块地址(00h)在出厂时是必须保证完好的。闪存出厂前都会被执行擦除操作,厂商会在出货前会把坏块标记出来,这样坏块管理软件就能靠监测标记来制作坏块表。由于在使用中会产生坏块,所以SSD的主控在每次写入/擦除/复制等操作后都要检查块的状态以建立新的坏块表。 当坏块表创建后,主控会把坏块表保存在某个好的块里,每次重启后,主控会从那个块里把表调用进缓存(RAM)里。坏块表中定义的地址是不能被访问的,所以当系统想去访问这个块的地址时,FTL会重新把它映射到好的块地址上去。

在闪存的生命周期中,坏块会逐渐增多。闪存设备上有个状态寄存器,它的作用就是检测操作是否正确完成。当进行写入或擦除操作,状态寄存器检测到错误时,即可判定当前的块为坏块。鉴于闪存的写入是以页为单位操作的,操作时可能影响到整个块里其它页的数据,所以当状态寄存器发现写入出现错误时,坏块管理程序就能够用好的块替换这个坏块,重新在新的好块里写入这个数据,并把检测到的坏块里其余的有效页数据全部复制到新的块里去,标记老的块为坏块,更新坏块表里的地址,把原本坏块的地址重新映射到新的好块里。

注: 
HPA(Hidden Protection Area),通过设置最高可访问的扇区号隐藏一段分区(系统和BIOS均不可见),这部分空间主要用于存放系统一键恢复等重要数据。

SSD 闪存盘技术详解相关推荐

  1. SSD 闪存颗粒详解

    SSD用户的数据全部存储于NAND闪存里,它是SSD的存储媒介.SSD最主要的成本就集中在NAND闪存上.NAND闪存不仅决定了SSD的使用寿命,而且对SSD的性能影响也非常大.NAND闪存颗粒结构及 ...

  2. Oracle 闪回技术详解

    概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在.在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成 ...

  3. NT Server无盘站配置技术详解

    NT Server无盘站配置技术详解    无盘工作站(简称无盘站)即不使用本地磁盘的计算机工作站.由于无盘站具有低配置.低价格.安全性好.易于管理等特点,所以它在我国应用很广.目前,无盘工作站对于学 ...

  4. 《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.12 闪存盘简介...

    本节书摘来异步社区<信息存储与管理(第二版):数字信息的存储.管理和保护>一书中的第2章,第2.12节,作者:[新加坡]G.Somasundaram ,[美]Alok Shrivastav ...

  5. 金士顿u盘真假软件_简洁轻巧 金士顿DT80 Type-C高速闪存盘评测

    从都市的高端会议到普通的日常娱乐,USB高速闪存应用于我们生产生活的方方面面.它小巧便携,稳定可靠的特点吸引了无数人去使用,同时为我们提供了诸多便利. 闪存盘也就是日常生活中经常提到的U盘.大多数人对 ...

  6. 2010 27寸 imac 升级固态_2017 款 iMac,27 寸升级换 SSD 固态硬盘拆机详解

    想要 iMac玩游戏?怎么能带动?如何解决卡顿问题?别急,给您带来2017 款 iMac,27 寸升级换 SSD 固态硬盘拆机详解,拆机并不复杂,动手能力差的同学看了这篇文章会觉得原来我也可以,那让我 ...

  7. linux解除硬盘加密,封印解除—在linux下访问群联闪存盘加密分区

    原标题:封印解除-在linux下访问群联闪存盘加密分区 作者 Modder 给SSD Fans原创投稿技术或市场文章,拿>=100元稿费. 安不忘危,乐不忘忧,使用闪存盘加密区可以很好的保护数据 ...

  8. unity3d开发实战《啪啪三国》技术详解!

    unity3d开发实战<啪啪三国>技术详解!  去年11月,上海火溶网络CEO王伟峰以其第一款3d手游产品<啪啪三国>为例,着重讲解了unity3D手机网游开发的经验,其中涉及 ...

  9. 【RDMA】技术详解(一):RDMA概述

    目录 0.前言 一.技术背景 1 传统的 TCP/IP 网络通信的弊端 2 新的网络通信技术(TOE and RDMA) 2.1 TOE (TCP/IP协议处理工作从CPU转移到网卡) 2.2 RDM ...

最新文章

  1. 九项重要的职业规划提示
  2. Nhibernate中session的状态与session.connection.state状态的差别的解释
  3. google账号解除游戏绑定_附方法!关于物联卡手机号的绑定与解绑
  4. 11 java基础之继承:区分子类方法中变量的三种变量
  5. CFA在线计算机,注意!CFA考场上只能携带这种计算机!
  6. Caffe学习:Loss
  7. 数据库设计以及PD数据导入数据库
  8. 九大内置对象和四大作用域
  9. Puzzle UVA - 227 谜题
  10. Ubuntu终端打不开
  11. JavaScript数组方法slice()
  12. 三代Pacbio进行细菌16S全长测序
  13. linux 挂载nas网络存储_Linux挂载NAS
  14. 最受欢迎的中国 50 技术博客评选结果
  15. 我对计算机网络技术的理解,对计算机网络技术课程学习几点思考.doc
  16. 关于Debian10的网络配置
  17. 富途秋招笔试面试记录
  18. 浅谈Android和IOS系统的差异
  19. 微信朋友圈奢侈品代购背后:圈子营销光明正大卖“假货”
  20. scada如何用oracle数据库,怎样设计SCADA系统数据库存储功能及其应用

热门文章

  1. 机器学习之泰坦尼克号实战
  2. Photoshop技巧大全:从基本操作到高级调整(共计36个技巧供你学习参考)
  3. 智能分析网关AI安全帽识别技术在工地场景中的应用及意义
  4. 怎么在电脑上玩主宰之王手游 主宰之王电脑版玩法教程
  5. 2022中国数据科学平台领域最具商业合作价值企业盘点
  6. PPLive在线播放代码
  7. Tubulin聚合检测试剂盒
  8. openocd目录_跟我一起学OpenOCD(一)
  9. oracle 12 去掉 cdb,Oracle 12c 学习之启动关闭CDBPDB
  10. 3个月零基础入门数据分析师是一件完全可能的事!