浅谈固态硬盘(SSD)

SSD的组成:主控、闪存、缓存单元(RAM、SRAM、DRAM可选)

主控的作用:1、前端实现标准接口,与主机通信(SATA、SAS、PCIe接口); 2、后端实现与闪存的通信;3、运行SSD内部FTL算法


        SATA接口执行AHCI协议;PCIe执行NVMe协议;


闪存:非易失性存储器,存储单元包括SLC、MLC、TLC(分别存储1bit、2bit、3bit数据)


         一个闪存有若干个Die(或者LUN)连接通道,每个Die有若干个Plane(常见的1、2、4个),每个Plane有若干个Block,每个Block有若干个Page,每个Page对应一个Wordline,每个Wordline有成千上万个存储单元组成

        闪存的功能:读、写、擦(不能覆盖写,要先擦除;擦除以Block为单位,读写以Page为单位)

        闪存的问题:1、闪存坏块 ;2、读干扰;3、写干扰;4、存储单元间的耦合;5、电荷泄露


SSD前端通信:通过SATA、SAS和PCIe等接口与主机相连,实现对应的ATA、SCSI和NNMe等协议

SSD后端通信:遵循ONFI或者Toggle协议,与闪存通信

FTL算法:1、坏块管理;2、地址转换;3、垃圾回收;4、磨损均衡;5、读干扰处理;6、数据保持


        坏块管理:闪存天生有坏块、随着SSD的使用,坏块越来越多。坏块的症状是擦写失败或者读失败(ECC不能纠正数据错误),采用略过策略或替换机制。略过策略导致并行度不高,替换机制有木桶效应,受限于较差的Die

        地址转换:映射表,完成主机的逻辑地址到闪存的物理地址的转换,映射表大小一般是SSD容量的1/1024。映射表存放在主机内存、SSD半载DRAM(常用)、或内存中。映射的方式有三种:块映射、页映射、混合映射。块映射的特点是有较好的大尺寸读写性、较差的小尺寸数据的写性能。页映射的特点是有较好的读写性能,缺点是需要更多的空间存储映射表。混合映射所需空间和性能介于块映射和页映射之间。

        垃圾回收:垃圾是由于数据异地更新,原始数据无效产生的。垃圾回收是把一个或多个Block上的有效数据搬出来,集中写到某个空闲的的Block上,有效数据搬走后,擦除这些Block。垃圾回收会引起写放大(WA)WA=\frac{实际写入闪存的数据量}{用户写入的数据量} 写放大会磨损闪存、占用带宽,还会磨损闪存,影响寿命,写放大越小越好。预留空间(OP)越大,写放大越小,OP越大,每个闪存块的有效数据越小,垃圾越多,重新写入的数据越少,写放大就越小。

        磨损均衡:闪存有寿命,每个闪存块擦写次数有限制,FTL要保证每个闪存块均衡写入。分为动态磨损平衡和静态磨损平衡,动态磨损平衡指将热数据写到年轻的块上;静态磨损平衡指将冷数据写到年老的块上(冷数据,不经常更新的数据;热数据,经常更新胡数据;年老块,擦写次数较多的闪存块;年轻块,擦写次数较少的闪存块)


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 SSD(Solid State Drives),俗称固态硬盘,相对原来主轴旋转,并无机械部分,主要由SS...
    mysia阅读 10,575评论 0 10
  • FTL是个啥?   FTL指Flash Translation Layer(闪存转换层),这玩意儿的本职工作是完成...
    spfanlost阅读 13,310评论 0 4
  • 前言 为了提升我们的软件性能,我们有多种方法,如合理的数据结构、优秀的算法,还有非常重要的一点就是:依据软件所依附...
    两棵橘树阅读 10,266评论 1 15
  • 固态和机械 Hard Disk Drive:主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,...
    siriusing阅读 6,961评论 2 0
  • 组合中点盘代表的,是两人在这段关系中,都有相同的感受的地方。 区别于合盘,合盘是将两个盘作出比较,看看大家如何合作...
    mia7023阅读 5,028评论 0 1

友情链接更多精彩内容