全景剖析SSD SLC Cache缓存设计原理

作者: 发布时间:2024-04-12 09:13:50点击:56

一、SSD为什么需要SLC Cache缓存?

为什么消费级SSD要SLC Cache缓存?有什么作用?在我们买SSD固态硬盘的时候,应该经常会看到商家会宣传SLC缓存相关的卖点。比如是某2款SSD商品页面的介绍截图。

1.png

2.png

如今市场上几乎每一款SSD都采用了类似SLC缓存的设计,将其作为一个快速访问区域。现代SSD更常见的是采用MLC、TLC或QLC作为主存储介质,搭配一小部分SLC或类似SLC性能的缓存区域。这样的缓存设计使SSD能够在处理频繁访问的数据时,利用高速缓存快速响应,提升用户体验。

3.png

市面上SSD大约会以存储空间的30%作为动态的SLC Cache空间当你的SSD容量越大,有较高速传输效能的SLC Cache空间也就越大,例如1TB的SSD大约会有300GB左右的SLC Cache。

4.png

SLC 缓存技术是近年来在消费级固态硬盘(SSD)中兴起的一项技术,旨在弥补基础闪存(如 TLC 或 QLC)较慢的性能然而,这一技术往往令用户感到困惑,原因有二:

  1. 非真正的SLC:SLC 缓存并非采用真正的SLC闪存,而是通过将基础闪存(TLC/QLC)切换至单比特模式(pseudo-SLC)来实现。这种模式下,每个存储单元仅需处理两种电压状态,而非原本的多种状态,从而提高了写入和读取速度,降低了延迟,并对存储单元造成的损害较小。然而,这并不意味着 pseudo-SLC(pSLC)模式必然能提高闪存的耐久度。

SLC 缓存中的数据最终需要被重写回 TLC 格式,以便将相关块恢复为全容量状态。这个过程被称为动态 SLC,可能会进一步磨损闪存,因为数据可能需要被写入两次。此外,一些 SSD 设计中包含一小部分专用(静态)pSLC,其工作方式略有不同,但同样服务于提升性能的目的。动态 pSLC 则是临时性的,可与所有基础闪存配合使用。

  1. 误导的IO性能宣传:硬盘厂商在营销时往往会引用基于 SLC 缓存的写入性能,而非 SSD 的原生性能。这种做法可能导致消费者对 SSD 实际性能产生误解,因为实际使用中,尤其是当缓存空间耗尽后,SSD 的性能将回落至基础闪存(TLC 或 QLC)的水平。

SLC 缓存容量决定了其能够吸收突发工作负载的程度以及在短时间内提供更快写入速度的能力。对于面向消费者和专业消费者的 SSD,通常会配备充足的 pSLC 缓存,以适应其工作负载特点相比之下,企业级 SSD 更重视持续性能和耐久性,因此往往不采用 SLC 缓存技术。

SLC缓存常见在DRAM-less SSD,也就是没有配置DRAM缓存的SSD,一般都会设计SLC CacheDRAM缓存是一种高速易失性存储器模块,用于存储 SSD 中所有已存储数据的映射表,即逻辑地址到物理位置的对应关系。通过提供快速的数据定位服务,DRAM 缓存显著加快了数据检索速度,使得 SSD 能够迅速找到所需数据的位置,从而提高整体读取性能。

由于 DRAM 缓存的高速特性,它极大地缩短了 SSD 在查找数据时的寻址时间,尤其对于频繁且随机的读操作,效果尤为显著。通过减少对 NAND 存储单元的直接访问次数,DRAM 缓存有助于降低 SSD 的磨损,间接延长其使用寿命。

DRAM 缓存适用于对读取速度要求极高的场景,如大型数据库查询、服务器虚拟化、实时数据分析等。SLC 缓存技术通常比 DRAM 缓存更具成本效益,因为 NAND 闪存制造成本相对较低。然而,DRAM 缓存提供的速度和耐用性可能更高。

二、SLC Cache为什么需要Write back?

为什么SLC cache的数据,不能直接program成TLC或QLC,为什么需要write back?

当使用TLC或QLC NAND模拟SLC工作模式时,确实只需要编程(Program)每个存储单元的更低有效位(Least Significant Bit, LSB),即利用一个原本可以存储多个位信息的单元仅存储一位数据。这样,每个单元就如同SLC一样,只需两个不同的电压状态来分别表示“0”或“1”,从而简化了编程过程,提高了写入速度。

5.webp.jpg

当SLC Cache空间满载,后续写入的数据必须写入到TLC或QLC原始模式的区域时,确实需要调整存储单元的阈值电压以容纳多比特信息。对于TLC而言,一个单元需要编程三个电压状态来表示八种组合;对于QLC,则需要编程四个电压状态来表示十六种可能的组合。这意味着需要对之前模拟SLC时已经编程过的单元进行重写(Re-Program),将其电压调整到对应的多比特状态。

为何需要Writeback操作(回写策略):尽管从技术上讲,模拟SLC的单元可以直接重写为TLC或QLC模式,但在实际应用中这样做并不高效,总结可能有以下几种原因:

  1. 数据完整性与一致性:SLC Cache通常作为临时缓冲区使用,用于吸收突发的写入请求。当Cache满载时,其中的数据可能是不完整的写入序列或者包含已修改但尚未同步到主存储区域(TLC/QLC部分)的逻辑块。如果不进行Writeback操作,直接在原地重写为TLC/QLC模式,可能会导致数据的不完整或丢失,破坏数据的一致性。
  2. 磨损均衡与垃圾回收:在SSD内部,为了延长NAND闪存的使用寿命,控制器会实施磨损均衡(Wear Leveling)策略,均匀分散写入负载到所有可用的物理块上。此外,SSD还依赖垃圾回收(Garbage Collection)机制来释放已更新或无效数据占用的空间。Writeback操作允许控制器将SLC Cache中的数据有序地迁移到合适的TLC/QLC物理位置,遵循这些管理策略,避免过度集中写入导致某些单元过早老化,同时清理无效数据,保持闪存的有效利用率
  3. 性能优化:Writeback是一个后台过程,可以在不影响用户正常读写操作的同时进行。通过异步迁移SLC Cache中的数据,可以确保前台的写入操作能够继续利用高速的SLC Cache,而不会因为直接在TLC/QLC区域重写数据而导致明显的写入性能下降。Writeback还能合并相邻的小写入请求,形成更大的写入块,减少整体的写入次数,进一步提升效率。
  4. 错误纠正与数据保护:对于多层单元(如TLC、QLC),由于电压状态更为密集,数据可靠性较低,需要更复杂的错误纠正码(ECC)来保证数据的正确性。直接在原地从SLC模式转换到TLC/QLC模式,可能会增加错误率,尤其是在转换过程中如果发生电源故障或其他异常情况,可能导致数据无法恢复。Writeback过程中,SSD控制器可以应用适当的ECC算法,确保数据在迁移至TLC/QLC区域时得到充分保护。

虽然理论上TLC/QLC NAND闪存可以直接在模拟SLC的单元上编程新的多比特电压状态,但在实际的SSD设计中,出于数据完整性、性能优化、磨损均衡、错误纠正等方面的考虑,Writeback操作是必要的它作为一种有效的管理策略,确保了SLC Cache技术在提升写入性能的同时,能够与SSD的整体架构和数据管理机制良好兼容,维持数据的可靠性和SSD的长期稳定运行。

三、SLC缓存对SSD的寿命是否有优化?

当使用QLC或TLC NAND闪存并将其切换到SLC模式进行写入时,会对闪存的寿命产生以下影响:

  1. 短期寿命提升:

    • SLC模式下,每个存储单元仅存储一个比特数据,相对于QLC或TLC来说,每个单元的状态变化更少,因此每次写入操作对单元的物理损伤较小。

    • 由于SLC模式的单元只需要区分两种电荷状态,其电压窗口更大,信号质量更好,这降低了误码率,增强了数据的稳定性,从而减少了需要进行纠错操作的次数,进一步减轻了单元的负担。

    • 结果是,在SLC模式下进行写入时,NAND闪存的擦写次数(P/E cycles)理论上会显著增加,表现为短期的寿命提升
  1. 长期总体寿命折损:

    • 尽管SLC模式下单个单元的寿命更长,但需要注意的是,SLC模式实际上是利用了一部分QLC或TLC闪存的空间来模拟SLC的行为。这意味着原本设计为存储多位数据的单元现在只能存储一位数据,相当于牺牲了存储密度

    • 因此,为了维持相同的总存储容量,SSD控制器必须使用更多的物理单元来对应同样的逻辑容量,这意味着在SLC模式下写入相同的数据量,实际上会消耗更多物理单元的擦写次数。

    • 例如,如果一个QLC单元在SLC模式下只用作一个SLC单元,那么为了达到同样的存储容量,需要使用四倍数量的QLC单元。虽然单个单元的擦写次数增加了,但由于使用的单元总数也相应增加,长期来看,整体的闪存寿命可能并未得到显著改善,甚至可能因为单元数量的增加而导致更早达到总的P/E周期限制。
  1. 动态调整与缓存策略:

    • 实际上,现代SSD在设计时通常采用SLC缓存策略,即利用一部分QLC或TLC NAND以SLC模式工作作为高速写入缓冲区。这种设计允许在短时间内以SLC模式快速接收和暂存新数据,然后再在后台以QLC或TLC模式将这些数据异步迁移到主存储区域。

    • 这种动态调整机制避免了持续以牺牲存储密度的方式运行整个闪存,而是仅在需要加速写入时短暂启用SLC模式。这样既利用了SLC模式下的高速写入优势,又避免了长期对闪存寿命造成过大影响。

所以说,将QLC或TLC NAND切换到SLC模式进行写入可以短期内提高单元的耐用性,但若持续以此模式运行整个闪存,由于牺牲存储密度导致的单元数量增加,可能会导致整体闪存寿命并未得到显著提升,甚至可能因为单元数量的增加而提前达到总的P/E周期限制。然而,通过合理运用SLC缓存策略,可以在不显著影响整体寿命的前提下,有效提升写入性能。

因此,实际SSD产品中,SLC模式通常作为一种智能缓存技术被用来临时提升写入速度,而非改变整个闪存的工作模式。

四、业内对SLC缓存的优化方案

1.Solidigm提出了“Fast Lane” SLC缓存方案

在传统SSD中,大多数数据在短时间内会从SLC缓存迁移到QLC主存储区。一旦数据被转移到QLC,现有的缓存机制并不具备智能将这些数据重新带回SLC的能力。换言之,一旦数据离开SLC,其后续的访问速度将取决于QLC的性能,而不会因为其访问频率或重要性变化而被重新考虑放入SLC缓存。

6.webp.jpg

“Fast Lane”提出的缓存解决方案同样使用SLC作为写缓冲区,但在此基础上引入了智能缓存机制。这种智能缓存的目标是尽可能多地、尽可能长久地将“热”数据(即访问频率高、近期活跃或对性能敏感的数据)保留在SLC中。这意味着该方案不仅仅是被动地利用数据在SLC中的偶然存在,而是主动监控数据访问模式,识别出“热”数据,并确保这些数据即使在被写入一段时间后,仍能被优先保留在SLC缓存中,以提供持续的高性能访问。

7.webp.jpg

存储驱动程序在识别出数据的“热”、“冷”状态后,会将这些信息以“提示”(hints)的形式传递给SSD固件。SSD固件是嵌入在SSD硬件中的专用软件,负责控制SSD的内部操作,包括数据的读写、缓存管理、错误纠正等。通过接收驱动程序提供的数据热度提示,固件获得了关于数据重要性与访问需求的额外知识。

接收到数据热度提示的SSD固件,会据此调整数据在不同存储介质中的存放策略。具体来说,固件会确保“热”数据存储在“快”介质中,而“冷”数据则存放在“慢”介质中。这里的“快”介质通常指SSD中的高速缓存区域,如SLC(Single-Level Cell)存储层,其特点是读写速度快、延迟低,但成本较高;相反,“慢”介质通常指SSD的主存储区域,如QLC(Quad-Level Cell)存储层,其存储密度高、成本较低,但读写速度和延迟相对较高。

相比传统缓存策略,随着SSD填充率增加、缓存空间相应减小,Fast Lane策略下重要数据快速可用的概率反而更高。原因在于传统策略通常仅基于数据的写入时间(即最近写入的数据优先保留在缓存中)进行缓存决策,这种简单粗放的方法往往无法精准识别出真正重要的“热”数据。在SSD使用过程中,随着可用缓存空间不断缩小,传统策略的不足愈发明显,而Fast Lane通过智能识别和优先保留重要数据,即使在缓存空间有限的情况下也能确保更高的缓存命中率。

8.webp.jpg

实际测试结果显示,当SSD填充率达到50%时,采用Fast Lane缓存策略的系统在QD1(队列深度为1)随机读取速度上,相比于未采用此策略的同类系统,性能提升可达120%。QD1随机读取速度是衡量系统响应速度的一个关键指标,其显著提升说明Fast Lane有效地解决了高填充率下缓存空间不足导致的性能瓶颈问题,极大地增强了系统的即时响应能力和用户体验。

不过,需要注意,Solidigm这个方案需要软件驱动一起配合,整体方案可能对于普通用户不是特别友好。

2.三星基于强化学习(RL) SLC缓存管理技术

这是来自一篇来自三星的之前发布的论文内容,论文详细介绍了基于强化学习(RL)的SLC缓存管理技术,旨在改善使用QLC NAND闪存的固态硬盘(SSD)的写入性能

9.webp.jpg

设计混合SSD时需要考虑两个重要因素:

  • SLC缓存大小:需要权衡容量损失与SLC-to-QLC迁移开销。SLC块容量小于QLC块,SLC区域越大,总容量损失越多。但若SLC区域过小,将导致迁移成本增加、写请求延迟增大及写放大率提高。因此,SLC缓存大小应根据工作负载特征和SSD内部行为(如迁移成本)动态调整。
  • 热/冷分离阈值:考虑到SLC-to-QLC迁移成本,应尽量只在SLC区域写入频繁更新的“热”数据,其他“冷”数据直接写入QLC区域。区分热/冷数据需考虑请求数据大小、目标地址、更新频率等因素。简单启发式方法是基于数据大小,认为小数据更可能为热数据。阈值设定会影响写入SSD缓存的数据量,进而影响性能。

由于现有技术采用固定、经验性设定的参数且不支持运行时调整,论文提出了一种基于强化学习的SLC缓存管理技术。通过观察工作负载模式和混合SSD内部状态,动态确定更优SLC缓存参数,以更大化SSD效率。实验表明,该技术平均可将写吞吐量和写放大因子分别提高77.6%和20.3%。

10.webp.jpg

根据论文内容介绍,RL技术更动态地调整SLC缓存大小和热/冷分离阈值。在PC工作负载(频繁更新数据多)中,RL技术分配的SLC块数少于UST,但保持较高的阈值(如512 KB),以尽可能长时间存储热数据。RL技术降低了QLC-to-QLC或SLC-to-SLC垃圾回收开销,与UST相比,其迁移和垃圾回收成本降低65.2%,与DWA相比,QLC写入开销减少。

11.webp.jpg

在线客服
联系方式

热线电话

0755-86164527

公司电话

0755-86185403

二维码
线