1.引言
最近看到一篇关于SSD的NAND并发瓶颈相关的论文,思路非常好,这里分享给大家。本篇论文的解读,也是小编上周末在高铁上完成的。存储随笔的论文解读,不是直接翻译,是小编先研读一遍后,再结合自己的理解再解读分享,可能讲述顺序与原始论文架构可能会有差异,如果不当之处,还望见谅。想直接阅读原文的朋友也可以后台私信关键词【Venice】获取论文。也欢迎各位朋友给小编推荐更多有趣的论文!
2.论文解读
固态硬盘(SSD)的性能和容量正在持续提升,以满足现代数据密集型应用的不断增长的需求。然而,SSD控制器和内存芯片(如2D/3D NAND闪存芯片)之间的通信是许多应用的关键性能瓶颈。
现有的SSD使用的是多通道共享总线架构,其中多个内存芯片连接到相同的通道上,只能通过一条路径与SSD控制器通信,这经常导致路径冲突,严重限制了SSD的并行性。因此,处理好路径冲突,以提高SSD并行性和性能至关重要。
我们常见的SSD架构示意图如下:这个示意图包括了SSD架构组成,SSD控制、DRAM、NAND芯片,以及控制器Flash Controller与NAND架构交互的解释。同时,也简单解释了NAND die/Plane/Block/Page/Cell的逐级概念与解释。这张图,基本代表了SSD经典架构。
现代SSD(固态硬盘)中存在的路径冲突问题。这种问题通常在处理多个I/O请求时发生,会显著限制SSD的并行性。
- 在同一个NAND Channel通道中,如果有多个IO读,就会需要等前面一笔读完成后,才能继续下一笔。
- 在不同的NAND Channel通道中,这部分不会有path路径冲突的问题,不会相互影响。
现代SSD通常采用多通道共享总线架构进行SSD控制器和NAND闪存芯片之间的通信。SSD控制器通过多个共享通道(通常是4到16个)与多个闪存芯片(通常是4到32个)连接。然而,当有多个I/O请求同时发送到同一通道上的不同闪存芯片时,就会发生路径冲突。
通常解决方法以减轻路径冲突问题有两种:
- 第一种方法是增加Flash通道带宽,这种方法主要通过Packetized SSD(pSSD)技术实现,其将Flash通道的带宽提高到基准SSD的两倍。然而,这种方法存在一些限制,例如需要额外的硬件支持,增加了成本和复杂性。
- 第二种方法是增加路径数量。在多通道共享总线SSD架构中,通过增加从SSD控制器到内存芯片的路径数量,可以显著提高SSD的并行性。然而,这种方法也面临一些挑战,例如需要更多的芯片封装空间和更复杂的控制逻辑。
文章提到,之前也有一些论文对NAND路径冲突的问题进行了解决与优化,如上图提到的pSSD、pnSSD和NoSSD。论文作者通过使用先进的SSD模拟器MQSim对19个实际的数据密集型工作负载进行测试,文章比较了这些方法和基准SSD的性能。
上图中,针对没有Path冲突的SSD是基线SSD的4-11.7倍,这也是理想情况,现实并不存在。其次,pSSD、pnSSD和NoSSD分别对性能提升约27%、30%、35%。论文认为这些先前的方法并没有有效地缓解路径冲突问题,而且带来了显著的面积和成本开销。因此,论文得出结论,需要从根本上解决SSD中的路径冲突问题,即在提供路径多样性的同时,还要考虑降低成本。
本文提出了一种名为“Venice”的新机制,通过增加SSD控制器和内存芯片之间的路径多样性,从根本上解决路径冲突问题。Venice基于使用互连网络的思想,增加了路径多样性。它采用了三个关键技术:
1)在每个内存芯片旁边添加一个简单的路由芯片,无需修改内存芯片设计;
2)在启动传输之前,预留从SSD控制器到目标内存芯片的路径;
3)利用路径多样性,采用完全自适应路由算法有效地解决路径冲突。
预留路径(Path Reservation)是一种机制,旨在确保输入/输出(I/O)请求在数据传输时不会遇到路径冲突的问题。在预留路径的过程中,Venice会为每个I/O请求预先保留一条无冲突的路径,从而确保在数据传输期间不会发生路径冲突。这种技术避免了在互联网络中的每个路由处需要使用缓冲区来存储每个遇到路径冲突的I/O请求的数据。
在实现路径保留的过程中,Venice通过发送一个特殊的探测包(scout packet)来识别和预留路径。如果探测包在路由处无法找到空闲的链路,该路由器将启用取消模式(cancel mode),这将通过删除路由预留表中对应的条目来取消预留。然后,探测包将沿着其路径回溯到一个之前访问过的路由(即上游路由)。根据路由算法的自适应性,探测包可以尝试在上游路由器中选择不同的空闲输出链路,或者进一步回溯。这里面的回溯,也可以有效的规避死锁的问题。
此外,Venice机制尽可能寻找无冲突的最小路径(minimal path)。最小路径是连接两个节点的链路数量最少的路径。如果使用最小路径而不是非最小路径,可以减少链路的占用,从而有可能增加互联网络中其他正在进行的请求的传输效率。
在努力了这么多,有什么效果吗?实验结果表明,Venice平均提高了2.65×/1.67×的性能,优于性能优化/成本优化SSD设计的基线,减少了能量消耗。与最先进的互连设计相比,Venice在成本和性能方面都有显著的优势。这些结果表明,通过增加路径多样性和利用自适应路由算法来解决路径冲突,可以在不增加硬件复杂性的情况下提高SSD的性能和能效。因此,Venice为现代数据密集型应用提供了更高效、更节能的SSD设计。
同时,在长尾延迟(99% QoS)对比中,Venice机制表现也非常优秀。
在Path路径冲突解决有效性对比中,Venice机制的无冲突IO比例超过99.98%。 对比Baseline SSD/pSSD/pnSSD/NoSSD无冲突IO比例分别76.40%/78.47%/77.88%/80.65%。这个数据也佐证了Venice对路径冲突的超高有效性。
小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!
精彩推荐:
-
大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?
-
NAND Vpass对读干扰和IO性能有什么影响?
-
HDD与QLC SSD深度对比:功耗与存储密度的终极较量
-
小米14魔改存储芯片多出8GB空间背后的秘诀
-
SSD IO性能优化是一项复杂但很有趣的工程
-
双11即将来临,挑选SSD硬盘最全避坑指南
-
性能领域:你知道的越多,不知道的也就越多
-
NVMe SSD:ZNS与FDP对决,你选谁?
-
如何通过优化Read-Retry机制降低SSD读延迟?
-
关于硬盘质量大数据分析的思考
-
存储系统性能优化中IOMMU的作用是什么?
-
全景解析SSD IO QoS性能优化
-
NVMe IO数据传输如何选择PRP or SGL?
-
浅析nvme原子写的应用场景
-
多维度深入剖析QLC SSD硬件延迟的来源
-
浅析PCIe链路LTSSM状态机
-
浅析Relaxed Ordering对PCIe系统稳定性的影响
-
实战篇|浅析MPS对PCIe系统稳定性的影响
-
浅析PCI配置空间
-
浅析PCIe系统性能
-
存储随笔《NVMe专题》大合集及PDF版正式发布!