SSD(固态硬盘)有很多专用名词,下面YMTC(长江存储)团队将从技术算法的视角出发,为大家科普和介绍固态硬盘的那些专有名词。
1、闪存转换层(Flash Translation Layer, FTL)
在固态硬盘的各种技术算法中,FTL即闪存转换层,无疑是最核心的。在机械硬盘时代,磁盘作为存储介质,可以直接将数据覆盖写入,而到了固态硬盘时代,闪存颗粒却无法如同磁盘一样直接进行数据的覆盖和写入,需要先擦除后写入。
与此同时,过多的擦除会极大的缩短闪存颗粒寿命,于是为了能够更方便的调用和修改分布在不同block上的数据信息,更好的排查和监控闪存块的寿命情况,业界便引入了逻辑地址LAB和实际物理地址PBA之间相互转换的概念和机制。

FTL闪存映射表工作机制
而完成逻辑地址空间到物理地址空间的映射,便是FTL最原始且基本的功能。它的原理,实际上就是SSD每把一笔用户逻辑数据写入闪存地址空间,便会记录下该逻辑地址到物理地址的映射关系,每当主机读取该数据时,SSD便会根据该映射从闪存读取数据然后返给用户。
2、垃圾回收(Garbage Collection, GC)
聊完FTL后,再来看看经常被提及的GC垃圾回收,如FTL的科普中聊到的,和机械硬盘不同,固态硬盘的写入无法如同磁盘一样直接进行数据的覆盖和写入,需要先擦除后写入,所以每当固态硬盘需要写入新数据的时候,原有的存储区块就需要擦除,方能写入新数据。
然而,固态最小的写入单元是页(Page),而擦除数据的最小单位块(Block),单个Block约等于128个Pages,也就是说擦除数据的单位远大于写入数据的单位。
那么问题来了,如果只是想要擦除存储在单页上的数据,而非全部块数据时,如何精准的移除不需要的数据,而保留其他存储在块上的用户数据,这个行为就叫做垃圾回收。
换句话说,垃圾回收就是把某个闪存块上的有效数据读出来,重写,然后再把该闪存块擦除,从而得到新的可用闪存块的过程。

Page示意图
3、写入放大(Write amplification, WA)
由于GC的存在,便会引发另一个问题——写入放大。我们知道,固态硬盘在数据写入过程中,需要完成GC之后生成干净Block才能实现数据写入。
基于固态此种工作方式,导致固态硬盘的实际写入量和用户预期的写入量会存在明显差距,形成一个比值,业内将这个比值称之为写入放大。
即,闪存写入的数据量/用户写入的数据量 = 写入放大,对于空盘而言,写入放大一般为1,即用户写入多少,SSD实际写入闪存也就是多少,但随着新数据不断写入,固态硬盘的写入放大会越来越高。
写入放大过大,会引发两大后果,一是磨损闪存,进而减少SSD寿命,二便是写入更多额外数据会占用更多闪存带宽,从而影响SSD的整体性能。因此,对写入放大我们需要额外关注。
4、预留空间(Over-provisioning, OP)
和GC紧密相连的还有一个概念,预留空间OP(Over-provisioning, OP)。
我们知道,垃圾回收的前提是需要将数据搬到干净Block之后擦除并重新写入,那假如当固态所有空间被写满,是不是就无法成数据删除了呢?
其实为了避免以上极端情况的出现,现代的固态硬盘设计中,会保留一个叫做预留空间。
简单点说就是,固态硬盘始终会留出空白的Block,方便用户进行数据的修改。所以这也是为什么很多用户实际使用的固态容量会小于NAND芯片总设计容量的原因。

5、磨损均衡(Wear leveling, WL)
既然聊到了GC,就不得不提到磨损均衡。众所周知,NAND闪存因隧穿磨损会存在寿命问题。作为固态硬盘设计者,我们当然希望每颗NAND的寿命磨损是均匀的,这样才能保障固态有最优的理论寿命,让SSD中的每个闪存块的磨损都能保持均衡的机制就叫做磨损均衡。
具体如何实现磨损均衡呢?业界的主流做法是在主控制器固件中添入新的控制命令,让主控制器在固态硬盘读写过程中,尽可能均衡使用各个block,防止部分闪存区块因过度频繁的擦除和写入命令,而导致整块闪存颗粒提前报废。
然而,在实际应用中,用户的数据存储会分为冷数据、热数据,对应的闪存块也会有擦除次数多的较为年老的闪存块,和擦除次数少的较为年轻的闪存块,根据以上用户数据分层和闪存块的擦写区分,SSD内部会存在动态磨损均衡和静态磨损均衡两种算法,综合的进行闪存块的磨损管理,实现整体的寿命均衡。

磨损均衡示意图
实际上,除了以上的几大紧密相连的技术算法,固态硬盘产品还有诸如HMB、Trim、掉电恢复、SLC Cache等众多核心技术。正是基于众多不断创新的技术算法,使得固态硬盘能够在功能和体验上满足各种不同场景的硬件需求。
*免责声明:本文内容来源于长江存储系统解决方案,转载目的在于传递更多信息,不代表小猫芯城赞同或支持其观点,如有侵权或者不同意发布,敬请与我们联系2881671956@qq.com。
© 2015-2023 CMCALLS.NET All Rights Reserved. Guangdong ICP No. 16107059 -1
微信咨询