之前的文章中,我们也提到过,存储界有一个金字塔分布,如下图,DRAM和NAND之间的延迟gap可以达到1000倍级别。这样的情况,会造成一些系统的整体运行性能有所折损。
在我们的应用系统中,NAND/SSD/HDD等存储介质分布在最底层,也是数据最终的栖息场所。在CPU请求数据后,如果数据在DRAM中,CPU就会很快得到回应,但是如果在NAND/SSD/HDD等存储介质中,CPU就要耐心等待一段时间了。我们对这个等待时间通常没有特别的感受,但是对要求高性能的系统来说,是灾难性的。
为了解决这个DRAM和NAND之间gap,业内已经找到了SCM(存储级内存),比如在之前文章已经介绍的3D Xpoint(带着黑科技3D Xpoint,Intel消费级Optane SSD 900P强势来袭)。不过,本文是从另外一个角度解决这个gap。
本文重点要说的就是由富士通(Fujistu)实验室研发的一种由软件控制SSD的内存扩展技术。先来看看,技术设计的简图。
这个设计有三个核心的模块:
Data Allocation:
这部分的算法就是通过软件根据数据的特性决定在DRAM或者NAND进行传输。不过,Fujistu实验室并没有公开数据分类的算法或者依据。小编觉得应该跟NVMe中的Multi-Stream可能比较类似,或者根据冷热数据算法智能分配。
Flash Control:
这部分主要分为两块内容。一是通过硬件优化NAND flash的并行操作,以达到实现最佳的带宽体验;二是通过软件实现垃圾回收GC, WL等操作。由于公开的资料有限,小编不太确定,ECC纠错这块是不是也是通过软件实现?
Hardware Accelerator(HW-ACC):
这个是硬件加速模块,放置在靠近NAND flash端, 目的就是通过硬件加快CPU与NAND flash之间数据传输的速度。
上面是设计原理示意图,Fujistu实验室也公布设计的成品,长什么样子呢?
这个SSD基于PCIe 3.0 x8设计,由16个通道,128颗Flash构成,容量达到8TB。成品设计图如下:
产品设计好了,效果如何呢? Fujistu实验室在服务器应用方面去验证了他们的设计。
我们知道,DRAM要比NAND贵很多。采用Fujistu这个方案的目的就是在性能不会大幅下降的情况下,降低运营成本。根据实测的结果,Fujistu提出了DRAM: NAND=13:87的方案,最终在吞吐量只有轻微下降的情况下,成本下降到原来的1/6.
写在最后
Fujistu为了解决DRAM与NAND之间延迟gap,研发了一种有软件控制SSD的内存扩展技术,在缓存服务器应用方面,可以大幅度降低运行成本。技术在进步,人类创新不止!
更多精彩内容,敬请关注头条号【存储随笔】获取更多活动内容。
同时,也可以关注微信公众号: 存储随笔,Memory-logger.