ISCA’23论文Decoupled SSD揭秘与评论:一种颠覆传统的SSD内部架构设计

引言

在数据量爆炸式增长的今天,存储器作为底层数字基础设施,其出货量正在飞速增加,以满足数据存储需求。如下图所示,当前主要的存储器包括:基于闪存介质的固态盘(solid-state driver, SSD)、其余闪存器件(如手机中的UFS/eMMC)、传统机械硬盘(hard disk drive, HDD)、以及用于归档存储的磁带。

图片

图:不同类型存储器年出货量2019-2030(来源:Wikibon, 2021

(从上至下依次为:闪存固态盘、其余闪存器件、磁带、机械硬盘)

从图中可以看到,闪存介质已经超越HDD成为最重要的存储器;就服务器和个人电脑中使用的硬盘而言,SSD正在替代HDD得到越来越广泛的应用,预计从2023年到2030年,前者出货量将从444EB、20.3%占比增长到3100EB、28.6%占比(1EB等于1百万TB),而后者占比将从36.7%下降至8.3%。

相比于HDD,SSD具有更高的性能、可靠性、以及能耗效率。例如,HDD读写带宽在百MB/s级别,而SSD读写带宽高达多个GB/s。而且,HDD核心技术掌握在希捷、西数、东芝等少数国外厂商手中,而现如今国内能够自主制造SSD,长江存储于2022年量产232层3D闪存芯片,第一次追赶上全球最先进的内存/存储芯片制造工艺,挤入了世界第一梯队。

结合市场增长空间和存储技术发展趋势,可以预见,SSD将在未来的数字基建中扮演越来越重要的角色。应用和系统对SSD的性能需求永无止境,在当前PCIe Gen5接口的加持下,SSD的理论带宽可达14GB/s。这给SSD内部架构与算法的设计与效率提出了越来越极致的要求。

最新的ISCA 2023论文Decoupled SSD呼吁重新思考SSD内部的硬件架构,它聚焦于盘内垃圾回收操作争用前端系统总线导致外部I/O性能下降的问题,提出前后端分离式架构,并在后端闪存通道控制器之间引入片上网络,将后台操作完全卸载到后端执行,从而减轻对I/O请求处理的干扰,提高SSD I/O性能。

本文将从如下方面解读Decoupled SSD。

  • 背景介绍。介绍闪存固态盘的内部架构、垃圾回收与超级块工作原理。

  • 论文解读。1) 研究动机:分析内部垃圾操作争用前端系统总线导致外部I/O性能下降的问题;2) 设计思路:描述Decoupled SSD前后端离式架构、以及基于该架构的垃圾回收(数据迁移)方法;3) 实验结果:展示性能表现。

  • 论文评述。我们对论文进行原创性评述。该论文提出的前后端分离架构具有较强的创新性和启发性,实验支撑丰富,但动机分析偏弱,且存在一根“鸡肋”。另外,介绍并推荐两篇相关论文,它们从内部软件硬件架构的角度,同样致力于构建具有极致性能的SSD。

1. 背景介绍

1.1. SSD内部架构

SSD由主机接口、控制器、DRAM内存、闪存存储等硬件模块组成,它们之间通过系统总线相连,如下图所示(图来源于所解读论文的slides)。

图片

其中,主机接口主要负责与主机进行通信和数据传输,常见的有PCIe接口和NVMe协议、SATA物理接口和AHCI协议。

控制器是SSD“大脑”,包含嵌入式多核处理器,执行闪存转换层(flash translation layer, FTL)固件算法,包括I/O请求调度、数据缓存、地址映射/转换、垃圾回收、损耗均衡等,并负责闪存芯片控制与数据纠错(error correction code, ECC)。DRAM内存用于缓存数据和FTL元数据。

闪存存储采用多级并行架构,一般而言,包含多个通道(如8或16个),每个通道通过闪存总线连接多个闪存芯片(如8或16个),每个芯片内部包含几个晶圆die(如8或16个),每个晶圆由几个分组plane组成(如4或6个),每个分组包含大量闪存块(如1024个),每个块包含大量闪存页(如2048个),闪存页大小为16KB或32KB。

其中,晶圆是独立执行闪存命令的基本并行单元,一个晶圆内的多个分组也支持同时执行某一种闪存命令。闪存的操作特征在于,以页为单位进行读和写,以块为单位进行擦除,读、写、擦除延迟分别为几十上百微秒、几百上千微秒、几毫秒;而且,闪存块在写入之前必须先擦除,块内的页必须顺序写入。

1.2. 垃圾回收与超级块组织

由于闪存先擦后写的特性,FTL采用异地更新策略,将数据页更新写到新的空闲闪存页,将旧版本闪存页置为无效。因此,FTL需要维护一张主机逻辑页地址到闪存物理页地址的映射表来记录数据页位置,并定期执行无效页的垃圾回收(garbage collection, GC操作。

GC操作首先选择目标闪存块,迁移其中有效数据页写到空闲闪存块,最后擦除目标闪存块为空闲状态。GC操作不仅会显著影响SSD性能,而且会导致写放大,降低SSD使用寿命。

FTL通常将所有或多个闪存晶圆中同一偏移位置的闪存块(页)组织成超级块(页),以超级块为单位进行空间分配和写入、以及垃圾回收,如下图所示。这种组织方式的好处在于:一是,能够最大化利用闪存并行架构进行并发访问;二是,方便在闪存晶圆之间构建RAID保护,即每个超级页形成一个带校验的条带;三是,相比于以闪存块为单位,能够降低管理开销。

图片

图:闪存超级块组织

(Source: “Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives”, IEEE 2017)

2. 论文解读

2.1. 研究动机

SSD GC操作的有效数据迁移过程为:(1) 控制器从闪存超级块中读取有效数据页,进行ECC解码,完成检错纠错;(2) 将数据页缓存到DRAM;(3) 触发缓存下刷,将数据页传输到控制器,进行ECC编码;(4) 将编码后的数据页写到空闲超级块。下图展示了这个过程,但存在纰漏,忽略了第(3)步。

如下图所示,执行GC操作时,I/O请求对系统总线的占用率和SSD外部I/O带宽急剧下降。这是因为GC会在不同部件之间产生大量数据传输,占用前端系统总线,阻塞I/O请求的数据传输。

图片

2.2. 设计思路

作者认为单纯提高系统总线带宽能够提升SSD性能,但依然无法解决I/O与GC的系统总线争用问题。因此,提出一种前后端分离式架构Decoupled SSD,其核心是后端闪存通道控制器设计。

在传统控制器基础上,引入片上网络连接多个闪存通道控制器,在每个控制器中增加网络路由、数据缓存、以及ECC引擎。因此,Decoupled SSD支持在后端多个闪存通道之间进行点对点数据传输,并允许将部分功能卸载到后端控制器由硬件实现,如下图所示。

该架构的典型应用案例即实现Global Copyback命令,将数据在闪存芯片/晶圆之间的迁移操作卸载到后端完成,不占用前端系统总线,也能降低FTL复杂度(传统数据迁移包含多个步骤的控制)。

具体而言,利用Global Copyback来实现GC数据迁移,从目标超级块中读取有效数据页到本地通道控制器,进行ECC检错纠错;然后,通过片上网络将数据页发送到目的通道控制器,经过ECC编码后写到空闲闪存页。

另外,论文提出利用该架构在后端实现动态超级块管理功能,其具体介绍见本文第3章论文评述。

2.3. 实验结果

论文在Simple-SSD仿真器上实现了Decoupled SSD原型,并利用Booksim网络仿真器来模拟片上网络连接,实验配置与对比方案如下图所示。

图片

在实验配置方面,基本配置包含超低延迟闪存和TLC闪存,在具体实验中进一步考虑了不同的闪存并行度、系统总线带宽、以及片上网络拓扑结构和带宽等配置的影响。

在对比方案方面,设置了单纯提高系统总线带宽的传统方案和基础分离式架构方案、不采用片上网络的分离式架构方案、以及完整的分离式架构方案。

在评估维度方面,采用多种合成的和真实的I/O负载,展示了I/O和GC性能、系统总线利用率、各系统部件延迟开销分解。而且,分析了所提出分离式架构设计带来的芯片面积开销。

以下仅仅展示在不同的前端系统总线带宽配置下(默认配置的1.5倍到4倍)Decoupled SSD的性能表现,以及不同分组配置下的各系统部件延迟开销分解。

图片

从图中可以看到,在高强度I/O负载下(High bandwidth),对于Baseline方案,提高系统总线带宽能够有效缓解总线争用,从而提高I/O性能和GC性能;得益于前后端分离式架构,Decoupled SSD对系统总线带宽不敏感,在1.5倍系统总线带宽配置下,相比于Baseline有22.8%的I/O性能提升和40%的GC性能提升。

另外,从延迟开销分解可以看到,在Baseline方案中,系统总线阻塞(蓝色部分)给I/O请求处理和数据迁移(Copyback)带来显著的开销,而这部分开销能够被Decoupled SSD消除。

3. 论文评述

(1) SSD架构创新

ISCA是计算机体系结构领域拥有50年悠久历史、负有盛名的顶级会议。笔者认为,Decoupled SSD能够在其上发表的最重要原因在于,它提出的前后端分离架构与后端片上网络架构具有一定的创新性和启发性。

长久以来,SSD内部垃圾回收(garbage collection, GC)操作干扰I/O性能一直都是难以解决的痼疾。围绕这个问题,业界从GC目标和时机选择(如空闲时触发)、冷热数据分离(降低GC数据迁移开销)、GC请求调度(如限流和中断抢占GC操作)等多个方面都展开了大量研究。

上述研究均是从软件算法的角度进行优化,而Decoupled SSD从架构角度,具体解决了GC操作在前端系统总线上对I/O造成的干扰问题。另外需要注意的是,它并不能解决后端闪存总线、闪存芯片访问上存在的GC干扰问题。

(2) 实验支撑丰富

论文的实验配置、对比方案、评估维度全面细致,具体参见本文第2.3节介绍。另外值得一提的是,论文将Decoupled SSD架构也与现有的GC调度算法进行了对比(两者之间为正交互补关系),这是一个重要的实验补位,有效增加实验的完整性与信服力。

(3) 动机分析较弱

论文第3章动机分析存在较多不足,难以体现统总线争用问题的严重性和设计新架构的必要性。

首先,在实验中没有采用现有的更先进的GC调度策略,而是以不限流、不可抢占的方式执行GC操作,导致主机I/O请求在GC执行过程中(持续上百毫秒)几乎得不到处理。这不符合真实SSD的内部设计和行为表现。

第二,GC操作不仅会争用前端系统总线,而且会争用后端闪存总线和闪存芯片。系统总线带宽通常远大于闪存总线带宽,闪存芯片访问延迟远高于总线传输延迟,更严重的阻塞可能发生在闪存芯片争用上。论文没有将前端系统总线争用问题放置于这个背景下进行全面分析。

第三,系统总线带宽和闪存并行度等参数的配置对系统总线争用问题具有重要影响,但动机实验缺乏这方面的数据和分析。而且,没有深入分析为什么提高总线带宽不是一个好的解决方案(而需要设计新的架构)。

(4) 一根“鸡肋”

所谓“鸡肋”,食之无味,弃之可惜。论文中动态闪存超级块管理就属于一个“鸡肋”设计点其研究动机建立在不尊重现有工作的基础上,设计也创新性不足,尽管其设计提炼与实验评估不乏亮点。

    在第5.1小节中,作者介绍现有超级块管理方法的问题是,如果出现了一个坏闪存块,那么它所在的超级块会整个被标记为“坏”,尽管其中其余闪存块依然可用(一个超级块通常包含几十到几百个闪存块)。然后,提出一种动态超级块管理方法,以闪存块为粒度(而非超级块)进行坏块管理;当出现坏块时,通过重映射的方式选择别处健康的闪存块替换坏块,以维持完好的超级块。

该方法实质是做坏块管理,而这在传统SSD中早已有成熟的解决方案,包括略过策略和替换策略。前者标记坏闪存块,在使用过程中直接跳过;后者通过重映射的方式选择一个好块替换坏块供使用;两者都是基于闪存块粒度。

不难看出,论文所呈现的问题描述是以一种最为简单和糟糕的方法为基准,并未如实反映业界技术发展水平;而且,所提出方法正是对传统的替换策略的重新包装。另外,其在实验中对比的现有工作WAS (DAC’19) 是一种以损耗均衡为目的(而非坏块管理)的超级块管理方法,这种对比有失公平性。

尽管如此,论文对该设计点的提炼和评估体现出了优秀的写作和实验技巧。

首先,与论文提出的核心的前后端分离式架构相关联,将设计目的描述为卸载动态超级块管理到后端由硬件实现,并降低FTL复杂度,形成了对核心架构设计的支撑。第二,构思了两种动态超级块管理的实现方法(见第5.3小节),并在实验中对两者进行多维度详细的评估对比,大大丰富了设计与实验内容。第三,采用新概念“recycled block”来定义已出现坏块的超级块中依然健康可用的闪存块。

(5) 相关工作推荐阅读

第一,ISCA’23上还有一篇SSD内部硬件架构设计的论文《Venice: Improving Solid-State Drive Parallelism at Low Cost via Conflict-Free Accesses》。它聚焦于后端闪存总线争用问题,即一个通道上连接有多个闪存芯片,对它们的访问会争用通道总线。

为此,论文提出引入片上网络连接各个闪存芯片,使得每个芯片都能通过动态构建的多种路径被控制器访问,从而减少访问路径冲突,提高并行性。相比而言,Decoupled SSD着力于解决GC与I/O争用前端系统总线的问题。

第二,FAST’20发表了一篇SSD内部软件架构设计的论文《Scalable Parallel Flash Firmware for Many-core Architectures》。为追求极致的并发I/O性能(百万以上的IOPS),SSD内部不仅需要配置大量处理器核心和高并行闪存架构,而且需要可扩展的固件架构设计,以充分利用计算资源和释放存储性能。

为此,论文根据I/O请求处理流程将固件分解为NVMe队列处理、数据缓存、地址转换、并发访问锁、日志、垃圾回收、闪存命令调度七个功能模块,采用多对多线程模型将各功能线程动态映射到处理器核心,以流水线方式并发处理I/O请求。

结语

SSD在当今计算机存储系统中扮演不可替代的重要角色,就像数据量增长没有极限,对SSD性能的极致追求、对SSD内部架构的思考与优化永远也不会止步。论文工作Decoupled SSD探索了一种新型的前后端分离式架构设计,解决了GC与I/O争用前端系统总线带来的性能下降问题。这一研究为未来的SSD技术发展提供了有益的启示,也为我们理解SSD的复杂性和挑战性提供了更深入的视角。

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值