详细解读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

相关文章

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py