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

在ZNS SSD设计中,也有很多的挑战

  1. Open Zones 对写入缓冲区的需求保持大量的 open zones(例如 1K+)会增加对带宽的需求,并要求控制器提供足够的缓冲空间来管理并发写入请求。这需要较大的高带宽写入缓冲区以降低延迟并优化性能。

  2. Charge-trapping QLC NAND 的编程需求由于 charge-trapping QLC NAND 需要两次编程操作和两次数据传输,以及 要解决CTF相邻位之间的耦合效应可能导致编程电压分布不均匀引入的N WL gaps,因此在处理写入请求时可能需要更大的缓冲空间。这会进一步增加对写入缓冲区的需求。

    图片

    这也是为什么FG架构QLC NAND SSD性能比CTF架构QLC NAND SSD性能要好(具体介绍请参考:浅析不同NAND架构的差异与影响)

    图片

    尽管存在这些问题,但 charge-trapping QLC NAND 的高密度和低成本优势使其成为大容量存储应用的理想选择

  3. 写入冲突管理:为了处理 write-write collision 和 write-erase collision,SSD 控制器需要额外的缓冲空间来存储等待写入的数据。这导致了对写入缓冲区容量的需求增大。

  4. SSD 控制器内部 SRAM 的限制:通常情况下,SSD 控制器内部的 SRAM 容量有限(通常为 8-16MB),可能不足以满足所有 open zones 的数据操作和编程缓冲需求。

  5. 使用 DRAM 的限制:虽然可以考虑使用 DRAM 作为编程缓冲区,但 DRAM 带宽有限,并且受到超级电容的影响。此外,DRAM 的成本也相对较高。

  6. RAID 纠错码 (parity) 缓冲区大小和容量开销:在使用 RAID 纠错机制的环境中,需要预留额外的空间用于存放 parity 数据。这增加了对 SSD 控制器资源的需求,并可能导致容量上的开销。

为了解决以上问题,业内有这么一种做法,使用 2-stage 缓存(SRAM+DRAM)处理数据操作和编程的方案

1.SRAM 和 DRAM 的作用:

  • SRAM:用于 RAID 编码、FW 元数据插入以及 RAID 纠错码 (parity) 缓冲区。

  • DRAM:用作 SLC 或直接编程 QLC 的数据缓冲区。

2.支持 1K+ Open/Active Zone:

  • SLC Copyback:这种方法将待编程的数据先写入到 SLC 区域,然后再从 SLC 区域复制回 QLC 区域。由于 SLC 的编程速度较快,可以减少整体的编程时间。然而,这种策略需要额外的硬件资源来监控 SLC 块的 RBER,并确保数据的可靠性。

    图片

  • SLC Backup:这种方法将待编程的数据直接存储在 DRAM 中,然后一次性写入到 QLC 区域。虽然这种方法可能会消耗更多的 DRAM 带宽,但它避免了在不同区域之间进行数据移动,简化了数据管理过程。

图片

在不同的Zone的大小,对Open Zone数量和RAID配置有不同的需求。ZNS 和 Die-block 结合使用可以带来一些优势,包括更好的数据组织、更高的 I/O 性能以及更有效的资源管理。ZNS 可以将存储设备划分为一系列连续的逻辑分区(zones),每个 zone 具有预设的最大容量。这种设计有利于顺序写入,从而降低写入放大效应和延迟。但也存在一些潜在挑战,如如何有效地分配和管理 zones,如何平衡不同 dies 或 LUNs 之间的负载等

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

精彩推荐:

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

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

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

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

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

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

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

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

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

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

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

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DENet:用于可见水印去除的Disentangled Embedding网络笔记

1 Title DENet: Disentangled Embedding Network for Visible Watermark Removal(Ruizhou Sun、Yukun Su、Qingyao Wu)[AAAI2023 Oral] 2 Conclusion This paper propose a novel contrastive learning mechanism to disentangle the high-level embedd…

ELK简单介绍一

任务背景 运维人员需要对系统和业务日志进行精准把控,便于分析系统和业务状态。日志分布在不同的服务器上,传统的使用传统的方法依次登录每台服务器查看日志,既繁琐又效率低下。所以我们需要集中化的日志管理工具将位于不同服务器上的日志收…

前端反向代理的神奇世界:加速、安全与缓存的秘密(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

3D Font

在游戏中使用3D文本 只需添加预制件并立即生成您的文本。 特点: *真实3D字母,可用作游戏对象*移动友好低聚 *VR兼容 *WebGL兼容 *30种以上不同字体 *材料和颜色可定制 WebGL演示 https://indiechest.itch.io/3d-font-engine 下载: ​​Unity资源商店链…

【lesson13】MySQL表的基本操作之create(创建),update(更新)和replace(替换)

文章目录 表的增删查改create测试建表基础测试 update测试建表基础测试 replace(替换)测试建表基础测试 表的增删查改 CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) create 测试 建表…

opencl.dll如何修复?快速解决opencl.dll缺失总共有5种方案

在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是“opencl.dll缺失”。OpenCL(Open Computing Language)是一种开放的并行计算框架,用于编写高性能的并行程序。当opencl.dll文件丢失或损坏时,可…

Simple Water Caustic Pattern In Unity ShaderGpaph

shadertoy上有各种神奇的效果,以我的见识根本想象不到这些是怎么弄出来的。 不过不会做至少可以先会用。 这篇文章抓取一个shadertoy的示例以制作一个测试效果。 参考这篇shadertoy,使用自定义节点装填hlsl的noise代码 Shader - Shadertoy BETA 首先使…

生物芯片市场分析:预计2029年将达到180亿美元

生物芯片(biochip或bioarray)是根据生物分子间特异相互作用的原理,将生化分析过程集成于芯片表面,从而实现对DNA、RNA、多肽、蛋白质以及其他生物成分的高通量快速检测。狭义的生物芯片概念是指通过不同方法将生物分子(寡核苷酸、cDNA、genomic DNA、多肽…

Vue之Computed(计算属性)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Linux的五种IO模型

众所周知,出于对 OS 安全性的考虑,用户进程是不能直接操作 I/O 设备的。必须通过系统调用请求操作系统内核来协助完成 I/O 动作。 下图展示了 Linux I/O 的过程。 操作系统内核收到用户进程发起的请求后,从 I/O 设备读取数据到 kernel buff…

复旦微用AXIDMA接收原始图像

参考SD卡移植博客&#xff0c;&#xff0c;移植SD卡相应代码 AXIDMA部分Demo下的bsp包整个pl搬到相应位置&#xff0c;添加相应文件 #include <stdio.h> #include <stdlib.h> #include "platform.h" #include "fmsh_common.h" #include "…

算法中的最优化方法课程复习

算法中的最优化方法课程复习 单模函数、拟凸函数、凸函数证明证明一个线性函数与一个凸函数的和也是凸的 梯度线性规划标准形式以及如何标准化标准形式常见标准化方法线性化技巧 单纯形法二次规划无约束优化Nelder-Mead线搜索FR共轭梯度法例题 优化算法的选择、停止准则算法选择…

echarts 没画出来图形,dom报错宽高未识别

当echarts 刷新时&#xff0c;画不出图形 控制台 报错 应当是你画布&#xff0c;父级使用了flex布局&#xff0c;找成了画布的宽高失效 解决方法&#xff1a;画布class上加上一句 flex-shrink: 0;

算法笔记—链表、队列和栈

链表、队列和栈 1. 链表1.1 单链表反转1.2 双链表反转1.3 合并两个有序链表1.4 链表相加1.5 划分链表 2. 队列和栈2.1 循环队列2.2 栈实现队列2.3 队列实现栈2.4 最小栈2.2 双端队列 1. 链表 1.1 单链表反转 力扣 反转链表 // 反转单链表public ListNode reverseList(ListNod…

三、Shell 环境

一、Linux 系统分类 在 Linux 中&#xff0c;常见的 Shell 有以下几种&#xff1a; Bourne Shell&#xff08;sh&#xff09;&#xff1a;最早的 Shell&#xff0c;由 Stephen Bourne 开发。它是大多数其他 Shell 的基础。Bourne Again Shell&#xff08;bash&#xff09;&am…

螺旋矩阵算法(leetcode第59题)

题目描述&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1&#xff1a;输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]] 示例 2&#xff1a;输入&#…

SQL Server 远程连接服务器数据库

本文解决sql server的远程连接问题。需要开启防火墙&#xff0c;开启端口&#xff0c;并处理权限不足的报错: 【use 某数据库】The server principal "[server]" is not able to access the database "[database]" under the current security context. 【…

[C/C++]——内存管理

学习C/C的内存管理 前言&#xff1a;一、C/C的内存分布二、C语言中动态内存管理方式三、C中动态内存管理方式3.1、new/delete操作符3.1.2、new/delete操作内置类型3.1.3、new/delete操作自定义类型 3.2、认识operator new和operator delete函数3.3、了解new和delete的实现原理3…

json.loads和eval 速度对比

json.loads和eval 速度对比 代码1结果图代码2参考地址 代码1 import json import time import pandas as pddata_sets pd.read_pickle("val_token_id.pandas_pickle") data_sets[str(i) for i in data_sets] starttime.time() [json.loads(i) for i in data_sets] …

FlieZilla服务器配置与数据访问、传输

概述 手机apk当初服务器&#xff0c;PC端访问手机端的数据&#xff0c;再没有数据线的情况下&#xff0c;非常方便。希望各位同仁搞起来&#xff0c;在此做个笔录。 安装包下载链接&#xff1a;https://download.csdn.net/download/qq_36075612/88577274 一、下载安装包&…