SSD基础科普:原理、寿命以及什么是连续与随机
- +1 你赞过了
【天极网DIY硬件频道】了解存储产品或者时常看固态硬盘评测的读者,应该会了解到两类主要的性能指标:连续读写与随机4K读写。它们既是标注于详情页与包装上的主要宣传点,也是不同消费级固态硬盘间对比的主要项目,在多数评测中我们也主要参考这两项参数的实测结果。
但你也可能产生这样的疑问:什么是连续和随机读写?为什么随机读写测试一定带上一个“4K”?测试软件中的“队列Q”和“线程T”有什么影响?......以及最重要的,对消费级用户而言,SSD真正有意义的性能参数是什么?
可以说,笔者也是从关注纸面上的性能“斗兽棋”,逐渐转而开始考虑这些问题,在体验了各品牌高性能SSD后,有必要关注其中更多能够体现差异的细节。我们先从第一个问题开始,但要回答这个问题,我们需要回到机械硬盘时代,并了解SSD的一些基础知识。
SSD:非对称的写入与擦除
连续与随机读写概念来自机械硬盘时代的文件系统,我们借助磁头在磁盘这一物理空间上写入与读取数据,其中既有对呈现连续物理分布的数据进行的读写操作,也有对不连续分布的数据进行读写操作,这种情况下还需要加入寻道步骤。
而SSD使用的闪存是一种固态的非易失性存储器,它也有自己逐级的结构划分,从我们比较熟悉的一颗flash,到3D堆叠的每个die,再到平面plane、块block、页page,以及作为基本单元的cell。
cell是一种双层浮栅晶体管,向控制栅极或基板施加高电压,能够实现浮动栅极的充放电,分别实现擦除(写1)、写入(写0)操作,此外通过在控制栅极施加基准电压,验证浮动栅极是否带电(源级与漏极是否导通)。在整个过程中,电子通过隧穿效应在浮动栅极与基板间移动,可参考下图示意。
上述的闪存结构与基础单元工作原理概述中,指出了闪存的工作特点是以页Page写入,但由于多个页形成的块共用一个基板,必须以块Block擦除,同时基础单元cell的工作模式只有读、写、擦,而没有覆写。
此外我们还从资料中了解到,电子在浮动栅极与基板间的移动会导致包裹浮动栅极的绝缘层老化,考虑到写入与擦除会带来电子隧穿,读取仅仅是验证源级与漏极的导通性,因此可以认为闪存的寿命与写入和擦除具有更直接的关系。
回到SSD与机械硬盘的区别上来,正是由于SSD无法覆写,同时写入与擦除操作的基本单元并不对称,它需要一套更高效且独特的文件管理系统。
闪存的工作过程中没有机械运动参与的寻址(寻道),也不存在什么扇区,但为了适应机械硬盘时代延续至今的文件系统,它应用了一套软件中间层,在逻辑区块地址(LBA)与物理区块地址(PBA)之间形成一套映射关系,这就是闪存转换层FTL。
SSD:逻辑上连续 物理上随机
那么,FTL为什么要将文件的逻辑地址映射到存储介质中随机的物理地址?这可以说是深入理解SSD工作模式的一个根本性问题。我们前面提到,闪存的工作特点有这样几个:
以页写入、以块擦除
不能覆写,只能读改写(读出-擦除-重写入)
闪存的使用寿命主要以每个块的擦除次数来计
这里也插一个冷知识:我们一般删除的文件并不是真的删除了,而是由硬盘文件系统标记“废弃”,并由主控决定在某个时刻进行垃圾整理,到这一步实质上你的文件依旧存在,直到新文件的写入需要对这些整理、回收后的位置进行读改写。这也是为什么误删文件时不要进行进一步的写入操作,就有机会通过软件恢复。
接着闪存的工作特点来说,当块达到一定擦除次数后,会发生前文提到的绝缘层老化现象,其存储能力可能变得不可靠,由此造成文件完整性错误,或者直接被主控标记为坏块。因此SSD固件需要实现磨损平衡,让数据平均分布在整个存储介质中。
另一方面,SSD中的die是执行闪存命令的基本单元,针对一个die中的块只能同时进行一个读或者写命令,让更多的die同时进行工作,实质上提升了命令的并行度,对SSD而言也就带来带宽的提升。
SSD闪存颗粒中的die,实际上组成了类似RAID阵列的系统。
由此我们不难发现,如果SSD文件系统按照物理顺序逐个或者先使用一部分die,大量读改写或者说其中的擦除操作会快速损耗其中块的寿命,直至其不可用。用户会惊讶地发现,自己只是在正常使用,SSD的性能甚至总容量却在不断降低!这你受得了吗?
为了方便理解这一部分,我们可以作一个近似类比。
假设你是一名汽车厂长,工厂拥有四条总装线,总装车间的供电能力支持四条总装线同时以设计效率的50%运作,此外,单条总装线在以100%效率连续运作半年后(50%效率为一年,依此类推)需要停产整修。
出于某种原因,你决定暂停三条线,将电力集中到一条产线上,它依旧只能保持100%的运作效率,而在半年后,你可用的总装线暂时只剩下三条,并需要付出许多整修资金。
股东们很不满意,认为你的决策莫名其妙且多此一举,这半年里不仅只实现了理论产量的50%,还在比计划整修周期更短的时间内就失去了四分之一的纸面产能,让财报非常难看。
在这里,厂长就是主控、固件与文件系统,四条总装线是SSD的颗粒,电力是主控能够调用的通道速率,产线设计效率是单颗粒的通道速率,计划整修周期是SSD的总寿命,纸面产能是SSD的总容量,是不是想象一下就让人血压升高了?
更令人焦虑的一点在于,并不是所有的闪存颗粒都在通道性能上拥有相对于主控性能的冗余,总有一些SSD方案由于颗粒数量、元件选择等因素,通道数*单颗粒速率刚好等于甚至小于主控速率。如果磨损集中发生在一个颗粒中的die上,你可能会发现在使用一段时间后,固态硬盘总容量从1TB变成750G,最高速率从7000MB/s变成5000多MB/s,你的脸色大概不会好看。
某款SSD的峰值性能随容量有较大变化,可以认为存在颗粒数量导致的通道速率瓶颈
现在,有没有觉得SSD既别扭又独特的FTL映射关系是存储历史上最棒的发明?事实上,平衡磨损并尽可能将整条SSD的完整容量与性能保留到生命周期的最后时刻,带来的好处远不止让人看着舒服。更大容量的SSD在脏盘阶段往往能够为主控的读改写、垃圾回收等操作提供更多空间,有许多SSD由于文件系统算法、策略存在的一些性能问题,在更大容量的版本中居然得到了缓解;在企业级SSD中,自身本就超大的容量,以及规格超群的OP空间,也成为行业级应用所需的高稳定性与稳态性能的基础。
至此我们也初步回答了第一个问题:什么是连续和随机读写?
其实对SSD而言不存在连续与随机。无论大小文件,它们在LBA上的信息总是连续的,因为要适应来自机械硬盘时代的文件系统;在PBA上分布总是随机或者说平均的,SSD的存储原理和性质决定了它不应该逮着其中一个die或者说一些块硬薅,而是要平衡整体的磨损,在整个生命周期中尽可能带来完整的容量、性能以及可靠性表现。
那么接下来就要引出第二第三个问题,为什么随机读写测试总是带上“4K”?为什么要使用多队列多线程模式来测试?笔者将这部分内容留待下回分解,借由这两个问题引入,最终也能够帮助我们解答普通消费者应该关心的问题:SSD真正有意义的性能参数是什么。
最新资讯
热门视频
新品评测