SSD寻址单元IU对寿命的影响有多大?

图片

随着存储技术的不断进步,固态硬盘SSD的容量正以惊人的速度增长,尤其是采用高密度QLC NAND闪存技术的大容量SSD,如30TB及以上级别的产品。QLC NAND由于每个单元能够存储4比特数据,从而显著提高了存储密度,但同时也带来了一系列挑战,其中包括写入放大、耐久性以及如何有效管理映射表的问题。

扩展阅读:

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • QLC SSD在数据中心的发展前景如何?

在这个背景下,间接寻址单元(Indirection Unit, IU)的作用及其对SSD寿命的影响显得尤为重要。在SSD内部,逻辑地址到物理地址的转换是通过一个称为“逻辑到物理映射”(Logical to Physical mapping, L2P)的机制实现的。L2P映射表通常存储在设备RAM中,用于将主机发送来的逻辑块地址(LBA)对应到NAND闪存上的实际物理位置。为了优化资源使用和提高效率,SSD引入了间接寻址单元的概念,即将多个连续或非连续的逻辑块映射到单个物理块上。

图片

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

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

图片

因此,设备供应商开始采用新的技术手段来控制映射表所需的RAM,其中一种方法就是增大映射比率或间接寻址单元(IU)。不再采用1:1映射,而是采用n:1 L2P映射,其中n大于1。RAM占用量与n成反比,即多个逻辑块可以共享一个物理映射。

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

图片

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

扩展阅读:SSD写放大的优化策略要统一标准了吗?

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

图片

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

尽管存在上述挑战,随着SSD容量的增长和技术的进步,设备制造商已经开发出多种策略来缓解间接寻址单元增大带来的问题:

  1. 智能数据管理和垃圾回收算法:SSD控制器通过更加高效的垃圾回收机制来最大限度地减少不必要的写入操作,并尝试确保新的写入尽可能均匀分布在整个NAND阵列中,减轻局部磨损。

  2. 混合使用不同类型的NAND:某些高端SSD会结合使用QLC NAND与其他类型(如TLC或SLC)的NAND,利用高速和高耐久性的NAND区域作为缓存或临时存储,以缓冲小尺寸IO写入导致的额外写入负载。

  3. 优化应用程序I/O模式:系统设计者和软件开发者可以通过调整应用层的数据访问模式,尽量使写入操作对齐并按IU大小进行,从而降低因未对齐引发的RMW操作,进而减少写入放大。

随着SSD容量的提升和QLC NAND的广泛应用,间接寻址单元IU管理成为了一个关键的设计考量因素。通过技术创新和合理的工作负载管理,可以在维持成本效益的同时,有效延长大容量SSD的使用寿命。未来的SSD设计将继续探索这一领域的平衡点,兼顾容量、性能和耐久性的最佳组合。

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

精彩推荐:

  • 对于超低延迟SSD,IO调度器已经过时了吗?

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • 如何解决NAND系统性能问题?

  • 浅析NVMe key per IO加密技术

  • PCIe 6.0生态业内进展分析总结

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 年度总结|存储随笔2023年度最受欢迎文章榜单TOP15

  • NVMe SSD IO压力导致宕机案例解读

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • FIO测试参数与linux内核IO栈的关联分析

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纯html+css+js静态汽车商城

首页代码 <!DOCTYPE html> <html class"no-js" lang"zxx"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&qu…

学会用Python分割、合并字符串

在很多情况下&#xff0c;我们需要对字符串进行分割或合并&#xff0c;以满足特定的需求&#xff0c;例如将字符串拆分成多个部分、将多个字符串合并成一个等等。Python提供了多种方法来进行字符串的分割和合并&#xff0c;本文将介绍其中几种常用的方法。 一、使用split()函数…

Vue-43、Vue中组件自定义事件

1、给学生绑定atguigu事件 2、在组件内触发事件 第二种写法 传多个参数。 解绑 解绑一个事件 解绑多个自定义事件 this.$off([xxx1,xxx2]);解绑所有事件 this.$off();总结

IDEA Java常用快捷键

目录 main方法快捷键&#xff1a;psvm输出语句&#xff1a;sout复制行&#xff1a;ctrld删除行&#xff1a;ctrly单行注释或多行注释 &#xff1a; Ctrl / 或 Ctrl Shift /for循环 直接 &#xff1a;fori代码块包围&#xff1a;try-catch,if,while等 ctrlaltt缩进&#xff1…

四、防御保护---防火墙NAT篇

四、防御保护---防火墙NAT篇 一、源NAT二、目标NAT三、双向NAT四、多出口NAT 一、源NAT 源NAT — 基于源IP地址进行转换。我们之前接触过的静态NAT&#xff0c;动态NAT&#xff0c;NAPT都属于源NAT&#xff0c;都是针对源IP地址进行转换的。源NAT主要目的是为了保证内网用户可…

一体化设计:兼容多种OS系统Linux网关楼宇DDC

在工业物联网&#xff08;IIoT&#xff09;和智能建筑领域&#xff0c;钡铼网关具备高度灵活性与强大计算能力的边缘网关产品正逐渐成为推动行业智能化转型的关键要素。本文将详细介绍的基于Linux系统的4G工业智能网关&#xff0c;不仅拥有NXP i.MX8M Mini四核64位处理器的强大…

《golang设计模式》第三部分·行为型模式-10-模板方法(Template Method)

文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 模板方法&#xff08;Template Method&#xff09;用来定义算法的框架&#xff0c;将算法中的可变步骤定义为抽象方法&#xff0c;指定子类实现或重写。 1.1 角色 AbstractClass&#xff08;…

Kettle-Docker部署+Sqlserver数据同步Mysql+Start定时任务

一. 背景介绍 1. ETL是什么 ETL&#xff08;Extract-Transform-Load&#xff09;&#xff0c;即数据抽取、转换、装载的过程。它是一种思想&#xff0c;主要是说&#xff0c;从不同的数据源获取数据&#xff0c;并通过对数据进行处理&#xff08;格式&#xff0c;协议等转换&a…

第32关 k8s集群管理开源神器 - k9s

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维。 随着我们管理维护的K8S集群上线&#xff0c;怎么管理好集群上面成百上千的服务pod&#xff0c;就是我们该操心的事情了。这里博哥把在生产中一直在用的一个开源管理工具k8s&#xff0c;github…

Jenkins如何从GIT下拉项目并启动Tomcat

一、先添加服务器 二、添加视图 点击控制台输出&#xff0c;滑到最下面&#xff0c;出现这个就说明构建成功了&#xff0c;如果没有出现&#xff0c;说明构建有问题&#xff0c;需要解决好问题才能启动哦~

C++实现通讯录管理系统

目录 1、系统需求 2、创建项目 2.1 创建项目 3、菜单功能 4、退出功能 5、添加联系人 5.1 设计联系人结构体 5.2 设计通讯录结构体 5.3 main函数中创建通讯录 5.4 封装联系人函数 5.5 测试添加联系人功能 6、显示联系人 6.1 封装显示联系人函数 7、删除联系人 7.1…

GPT栏目:yarn 安装

GPT栏目&#xff1a;yarn 安装 一、前言 在跟GPT交互的时候&#xff0c;发现最近gpt4给出的答案率有了比较明显的提高&#xff0c;简单记录一下&#xff0c;我用gpt4拿到的答案吧。 本人已按照这个步骤成功 二、具体步骤 要安装 yarn&#xff0c;你可以按照以下步骤进行操作…

MyBatis常见面试题汇总

说一下MyBatis执行流程&#xff1f; MyBatis是一款优秀的基于Java的持久层框架&#xff0c;它内部封装了JDBC&#xff0c;使开发者只需要关注SQL语句本身&#xff0c;而不需要花费精力去处理加载驱动、创建连接等的过程&#xff0c;MyBatis的执行流程如下&#xff1a; 加载配…

Google Chrome 常用的几个参数

1 右键--Google Chrome--属性--目标 参数作用--disable-infobars此计算机将不会再收到 Google Chrome 更新&#xff0c;因为 Windows XP 和 Windows Vista 不再受支持。适用于 xp、2003 的 49.x.x.x 版本。示例1--ingore-certificate-errors忽略证书错误--disable-background-…

【计算机网络】【练习题及解答】【新加坡南洋理工大学】【Computer Control Network】

说明&#xff1a; 仅供学习使用。 一、题目描述 题目共4问&#xff0c;描述网络通信中的 帧传输时延&#xff08;Frame Delay&#xff09;、传播时延&#xff08;Propagation Delay&#xff09;&#xff0c;以及 链接利用率&#xff08;Link Utilization&#xff09; 的相关…

Vue2:通过代理服务器解决跨域问题

一、场景描述 现在的项目大多数是前后端分离的。Vue前端项目通过ajax去请求后端接口的时候&#xff0c;会有同源策略的限制。从而产生跨域问题。 二、基本概念 1、什么是同源策略&#xff1f; 就是前端服务和后端服务的协议名&#xff0c;IP或主机名&#xff0c;端口号不完…

0x02递推与递归

0x02递推与递归 递推者&#xff0c;自小而大&#xff0c;循序渐进&#xff1b;递归者&#xff0c;由上而下&#xff0c;分而治之 文章目录 0x02递推与递归例题T1&#xff1a;T2&#xff1a;T3&#xff1a;T4:T5T6 例题 T1&#xff1a; 92. 递归实现指数型枚举 - AcWing题库 …

Mysql 插入数据

1 为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。基本语法格式为&#xff1a; INSERT INTO table_name (column_list) VALUES (value_list); 使用INSERT插入数据时&#xff0c;允许列名称列表column_list为空&#xff0c;此时&…

Web服务器之Tomcat

文章目录 Web 服务器软件简介资源分类访问流程常见的Web服务器软件 Tomcat简介使用步骤使用Tomcat注意事项部署项目的方式方式一方式二方式三 问题中文乱码黑窗口一闪而过启动报错 Web 服务器软件 简介 服务器&#xff1a;安装了服务器软件的计算机服务器软件&#xff1a;接收…

漏洞原理远程命令执行

漏洞原理远程命令/代码执行 远程命令执行函数&#xff08;Remote Command Execution Function&#xff09;是指在一个网络环境中&#xff0c;通过远程执行命令来控制另一个计算机系统或设备的功能。 远程命令执行函数可以通过网络协议&#xff08;如SSH、Telnet、RPC等&#x…