详细解读QLC SSD无效编程问题-3

2024-01-05 09:36

本文主要是介绍详细解读QLC SSD无效编程问题-3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图片

数据块大小Block Size对无效编程(Invalid Programming)比率的影响。研究范围内Block Size大小从128 Pages到2048 Pages不等。实验结果显示,随着块大小的增加,无效比率也呈现上升趋势,但增长速率较小。

这种现象的原因在于,每个Open Block的最后一部分页面可以立即进行精调编程而无需等待,因为这些页面在第一步粗调编程操作中没有后续页面。当缓存大小和Open Block数量固定时,单个Block中的Pages数量增多将会降低“无需等待”进行精调编程的Page数量,从而导致无效比率增加。然而,能够立即精调编程的页面仅占块内总页面的一小部分,因此即使块大小增大,无效比率也不会有显著变化。

在NAND闪存阵列中,同时等待精调编程的最大页面数量取决于可以并行写入Block(即Open Block)的数量。一般来说,等待第二步精调编程的同时进行的页面数量越多,无效比率就越高。

图片

实验结果显示,在不同Open Block数量(从4个到64个)下,各种工作负载的无效比率表现各异。对于诸如Mds_0和Prxy_0这样的工作负载,随着Open Block数量的增加,无效比率显著上升。这是因为更多Open Block数量意味着在相同时间内写入单个开放块的数据量减少。然而,在其他一些工作负载上,当开放块数量从4个增加到16个时,无效比率也可能下降。

在NAND闪存系统中,LRU列表用于区分热数据和冷数据,从而决定数据应被放置到SLC还是QLC存储区域。相比于热数据,写入QLC的冷数据更新频率更低,对无效编程问题的敏感度也较低。

图片

通过延长LRU列表的长度,更多的数据将被分类为热数据并随后写入SLC,这会导致无效比率显著下降。实验结果显示,在不同LRU长度(从32到512)下,对于大多数工作负载,随着LRU长度的增加,无效比率会降低。

图片

值得注意的是,对于Proj_0工作负载,其无效比率略有上升。这是因为随着LRU长度的扩展,粗调编程页面所需的平均时间也会延长,这使得这些页面更有可能提前失效。

在3D QLC NAND闪存中,采用两步编程策略,一次会对四个页面同时进行编程。因此,在第二次编程步骤中,无效页面的数量可能从0到4不等

图片

实验结果显示,不同工作负载表现出不同的行为特征,但对于所有的工作负载来说,在第二次编程步骤中有相当大比例的WL存在无效页面。例如,在Web_1工作负载中,少于50%的WL在第二次编程时其四个页面都是有效的。而在遭受无效编程的WL中,大多数WL有一到两个页面在精细编程之前就被无效化了。然而,也有一些WL的情况是所有四个页面都被无效化。

这篇关于详细解读QLC SSD无效编程问题-3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572431

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束