现代固态硬盘(SSD)内部通常配备了一定容量的DRAM作为缓存,它的主要作用是存放FTL(Flash Translation Layer)映射表和其他临时数据,以加速SSD的数据处理效率。
FTL映射表记录了逻辑地址到物理地址之间的转换关系,因为NAND闪存的特性决定了其不能像传统硬盘那样进行直接的线性读写,必须通过FTL层来管理块擦除、页编程等操作。由于NAND闪存的每个块或页都有一个唯一的物理地址,当操作系统请求对某个逻辑地址进行读写时,SSD需要查询FTL表以找到对应的物理位置。如果FTL表能存储在快速访问的DRAM中,那么SSD就可以更快地完成地址转换,从而提高整体I/O性能。
在传统的SSD中,DRAM起着至关重要的作用,包括存储元数据、缓冲写入数据、合并短写入为长写入以及在SSD内部为了垃圾回收而移动数据等。由于NAND闪存与传统硬盘的工作机制有显著差异,DRAM有助于弥补两者间的交互问题,并优化整体性能。
因此,在实际产品设计中,厂商会根据SSD的目标市场、性能要求和成本控制等因素综合决定DRAM缓存的大小,以达到最佳的性能与成本平衡。随着技术发展,有些高级的SSD也开始采用无DRAM设计,通过更智能的主控算法和利用NAND的一部分容量模拟DRAM功能,实现FTL表的高效管理,以适应更大容量、更低功耗及更经济的成本结构。
DRAM-less SSD是一种不内置独立DRAM芯片的固态硬盘,它依赖于主机服务器的部分DRAM内存来执行原本由SSD内部DRAM承担的任务。这种设计的主要优点在于降低成本和降低功耗,尤其是在大规模数据中心用户中受到欢迎。
DRAM-less SSD通过利用主机内存中的Host Memory Buffer (HMB)替代内部DRAM,这使得主机能够更紧密地控制SSD的操作时机和行为。对于超大规模数据中心用户来说,它们能够定制和控制自己的软件系统,从而通过调整应用程序和系统软件以充分利用SSD的内部架构,从而获得更好的性能表现。
然而,DRAM-less SSD的设计也有其局限性。虽然它降低了硬件制造成本并减少了SSD自身的功耗,但由于仍需占用相同数量的DRAM字节,因此可能会导致服务器总体DRAM使用量增加,进而影响服务器功耗。此外,要充分发挥DRAM-less SSD的优势,软件必须针对该架构进行精细调优,而这并不适用于所有应用场景。
总的来说,DRAM-less SSD主要服务于两个极端场景:
-
预算有限且对性能要求不高的系统,可通过牺牲部分性能换取硬件成本节省。
-
超大规模数据中心和拥有高度定制化软件环境的系统,可以通过深度整合软硬件资源,实现关键性能提升、降低物料清单成本和能源消耗。
所以,简单来说,HMB技术的核心在于,通过高效的数据管理和传输协议,使得SSD可以与主机内存无缝协作,以实现接近于DRAM缓存SSD的性能。