如何突破DRAM对SSD容量提升的限制?

近日小编看到Pure Storage公司的研发高级副总裁肖恩·罗斯马林(Shawn Rosemarin)的一个观点"由于DRAM的局限性,固态硬盘(SSD)的容量难以突破30TB"。

这个观点不是完全准确,实际上,Solidigm已经发布了最大容量61.44TB QLC SSD。

但是,这个观点背后的逻辑依然是业内在提升SSD容量中不可避免遇到的问题。

随着SSD容量的增长,存储映射表所需的DRAM成本也随之增加 。假设采用1:1的L2P映射以及4KB的逻辑块大小,对于一个256GB的SSD,至少需要256MB的RAM来存放映射表。随着SSD容量达到64TB级别,按照这种比例计算,所需的RAM容量将会高达64GB,这对设备的成本控制等构成挑战。所以,也需要采用新的技术手段来控制映射表所需的DRAM。

第一个思路是在SSD内部想办法降低DRAM需求。一种方法就是增大映射比率或间接寻址单元(IU),不再采用1:1映射,而是采用n:1 L2P映射,其中n大于1。RAM占用量与n成反比,即多个逻辑块可以共享一个物理映射。

例如,若IU设置为16KB,则意味着每16KB的逻辑空间仅需要一个映射条目指向一个物理块。这样可以显著减少DRAM消耗,尤其是在大容量SSD上,避免因存储映射信息所需的DRAM资源过多而增加成本

**增大间接寻址单元IU虽然有助于降低DRAM需求,但也可能带来性能和耐久性方面的挑战。**当主机发出的IO大小小于IU时,会发生读取-修改-写回(Read-Modify-Write, RMW)操作。这意味着即使只是更新一小部分数据,SSD也必须先读取整个物理块的内容,合并新的数据,然后将整个块重新写入闪存。这种情况下,原本只需要一次的小规模写入操作被放大成了整块物理区块的写入,这就是所谓的"写入放大效应"。

具体来说,假设SSD设置了一个16KB的IU,这意味着一个物理闪存块可以对应多个连续的4KB LBA。如果主机发出一个仅写入4KB的数据请求,且该请求起始位置不在IU的边界上,则SSD需要首先读取包含目标4KB区域的整个16KB物理块,将新的4KB数据合并到已读取的数据中,然后将整个更新后的16KB物理块重新写入NAND闪存。这个过程实际上执行了原本只需写入4KB数据量的四倍,即产生了4x的写入放大因子。

对于耐久性敏感的QLC NAND而言,这种写入放大的影响尤为严重,因为QLC NAND的每个单元可编程次数相对较少。每一次额外的写入都会加速NAND单元的老化,缩短整个SSD的使用寿命。

然而,随着IO尺寸增加至接近或大于16KB ,这种情况会有所改变。一旦IO大小等于或大于IU大小,那么这种IO就可以直接且完整地写入对应的物理块,无需进行额外的读取和合并操作。因此,在这种情况下,大尺寸IO对WAF的贡献就会明显降低,几乎不会产生额外的写入放大效应。

第二个思路:从Host软件层面接管SSD内部的FTL功能。比如Open-channel、ZNS SSD等。

在ZNS的场景下,不同应用按照Zone配置信息,相应存放业务数据。主要集中在顺序读写的workload场景。由于是Host管理数据的摆放和存取位置,会最大程度减少GC垃圾回收。

减少SSD的DRAM空间和去掉OP冗余空间,提升用户可用的容量。

二者具体的优劣对比:

扩展阅读:

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角"关注 "并点击"分享 "、"在看",非常感谢!

精彩推荐:

如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。

投稿邮箱:Memory_logger@163.com (投稿就有惊喜哦~)

《存储随笔》自媒体矩阵

更多存储随笔科普视频讲解,请移步B站账号

如您有任何的建议与指正,敬请在文章底部留言,感谢您不吝指教!如有相关合作意向,请后台私信,小编会尽快给您取得联系,谢谢!

相关推荐
彩虹糖_haha9 分钟前
Linux高并发服务器开发 第五天(压缩解压缩/vim编辑器/查找替换/分屏操作/vim的配置)
linux·运维·服务器
明明真系叻40 分钟前
第二十六周机器学习笔记:PINN求正反解求PDE文献阅读——正问题
人工智能·笔记·深度学习·机器学习·1024程序员节
qq_433618441 小时前
shell 编程(五)
linux·运维·服务器
VVVVWeiYee2 小时前
项目2路由交换
运维·服务器·网络·网络协议·信息与通信
88号技师2 小时前
2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
人工智能·算法·matlab·优化算法
IT猿手2 小时前
多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
开发语言·人工智能·算法·机器学习·matlab
88号技师2 小时前
几款性能优秀的差分进化算法DE(SaDE、JADE,SHADE,LSHADE、LSHADE_SPACMA、LSHADE_EpSin)-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
2301_764441332 小时前
基于python语音启动电脑应用程序
人工智能·语音识别
HyperAI超神经3 小时前
未来具身智能的触觉革命!TactEdge传感器让机器人具备精细触觉感知,实现织物缺陷检测、灵巧操作控制
人工智能·深度学习·机器人·触觉传感器·中国地质大学·机器人智能感知·具身触觉
galileo20163 小时前
转化为MarkDown
人工智能