价差20%! 有缓存与无缓存SSD有啥区别? 固态硬盘选购技巧

  发布时间:2024-07-26 11:53:57   作者:佚名   我要评论
市场上有缓存SSD和无缓存SSD之间的选择,常常让人感到困惑,该怎么选择呢?今天我们就来看看这两种SSD到底有啥不同,以及如何根据自己的需求,挑选出最适合自己的那一款

二、DRAM缓存的作用是什么?

上一节只是简要介绍了SSD的有缓/无缓方案,下面我们就从技术的角度分析,来看看DRAM缓存的作用到底是什么。

该部分内容有点枯燥,看不进去的朋友可以直接跳转至结尾看选购总结哈。

1.DRAM缓存可以存储FTL闪存映射表

闪存颗粒的物理特性决定了它不能覆盖写入,一般来说,其擦除以Block(块)为单位,而写入以Page(页)为单位。

Page中含有非常多的存储单元,是闪存颗粒写入数据的最小单位:

同时Block是Page的上级单位,一个Block中有很多个Page:

一般来讲,足量的消费级有缓SSD中,DRAM缓存的主要作用是存储FTL闪存映射表,其与闪存颗粒的容量比例为1:1000,FTL映射表在SSD中就像一本书的目录一样,储存着数据从逻辑地址到物理地址的映射关系。

当主机发来读命令时,SSD能根据需要读取的逻辑数据块查找FTL映射表,获取这些逻辑数据在闪存空间所在的位置,后端便能从闪存上把对应数据读到SSD内部缓存空间,然后前端负责把这些数据返回给主机。

由于DRAM缓存的读写性能和低延迟表现要远远优于闪存颗粒,所以有缓SSD会充分利用这个特性,在SSD通电时将保存在SSD预留空间中的FTL映射表写入DRAM颗粒中。

咱们想要读写闪存颗粒中的数据时,可以通过DRAM缓存中保存的FTL快速找到相应位置,从而提高一块固态硬盘的随机读写速度、降低查找数据保存位置时的延迟。清注意,这个机制对于随机读写的加成较大,对顺序读写的性能影响很小很小。

2.DRAM缓存还可以在脏盘状态下提高读写性能

在使用闪存颗粒作为存储介质的SSD中,如果我们要对一个已有数据的Page进行写入,那么必须先要把这个Page所在的Block中的数据读出,暂时保存到一个空白的Block中,待第一个Block清空后再把所有数据写进去。

从示意图可以看出来,在我们眼里一个简单的对SSD的写入数据操作,一旦遇到脏盘情况下,就会分解成先读再擦后写(READ-ERASE-WRITE)三个步骤,并在过程中会造成写入放大问题。

显而易见的,这会增加闪存颗粒的写入量,消耗写入寿命,同时在写入过程中还会提高写入延迟、影响写入速度。

如果在这个写入过程中,SSD上还有我们在操作系统中已经删除、但是只做了标记但未实际进行擦除的数据的话,还需要经过一个更加复杂的垃圾回收+擦写操作,进一步影响SSD的写入量和性能。

以下图为例,在Block x和Block y上有很多垃圾数据,其中Block x上的A、B、C为有效数据,Block y上的D、E、F、G为有效数据。垃圾回收就是把一个或者几个Block上的有效数据搬出来集中写到某个空闲Block上(比如Blockz)。当这些Block上的有效数据都搬走后,FTL便能擦除这些Block,然后又能把这些Block拿出来供SSD写入新的数据了。

而有缓SSD中的DRAM缓存由于速度、延迟等方面的性能明显要好于闪存颗粒,所以在向一个Block写入数据的过程中,如果Block中的Page中已有数据,那么可以使用DRAM作为中转站,先将Page中的数据转移到DRAM中,然后将Block整个擦成空白块后填入需要写入的新数据,最后将DRAM中转站里保存的原Page数据挪到其他Block里。

发现了吗?在这个过程中由于DRAM的参与,还减少了一部分对闪存颗粒的写入量,同时还加快了整个R-E-W的过程,减少了写入延迟。

接下来让我们把问题进一步复杂化,当SLC Cache容量耗尽时,有一个需要将原本SLC Cache空间内的数据重写回TLC模式的过程,我们称之为SLC Cache释放,在这其中要面临大量擦写操作。而在固件的加持下,部分SSD的DRAM缓存也能在这个过程中起到缓解写入放大的作用。

这也即是说,独立DRAM缓存在SSD中其实起着万金油的作用,这也是各大存储厂商的消费级旗舰SSD以及更加昂贵的企业级SSD一般都会采用有缓方案的原因。

三、有缓SSD、无缓SSD,用起来有啥区别?

现在技术原理我们已经了解了,那么有缓SSD和无缓SSD在我们实际使用过程中,到底有啥不一样的体验呢?

相关文章

最新评论