固态存储是未来|浅析SSD架构的演进与创新技术-1

news2024/11/25 16:39:58

常见的SSD架构中,包括了SSD控制器、NAND颗粒、DRAM颗粒三大组件,SSD控制器的固件需要兼顾坏块管理、ECC纠错、垃圾回收GC、磨损均衡WL、NAND die介质管理、缓存交互等等。

图片

随着时代的发展,SSD架构,也不断有新的挑战和需求。基于小编目前的看到的信息,总结大概有几个方面:

图片

首先就是性能与功耗问题。

随着数据中心对存储设备速度要求的不断提升,SSD需要提供更高的IOPS(每秒输入输出操作次数)和带宽(GBPS),同时在保证高性能的同时必须有效控制功率消耗,实现单位性能所需的能耗降低(如IOPS/Watt或GBPS/Watt)。协议接口和NAND接口速率是最大助力点。

为了追求高性能,NVME/PCIE SSD是数据中心的高性能标配,NVME/PCIE SSD在数据中心的占比还在继续攀升。

图片

pcie协议5.0还没完全普及,pcie 6.0 spec已经发布,pcie 7.0 spec也在路上了,这个世界都在狂奔。

扩展阅读:

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

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

图片

NAND ONFI接口速率也提升至了3600MT/s.

图片

尽管NAND闪存接口速度不断提升,但由于命令和地址传输机制的局限性,实际应用中总线资源的利用率并未随速度提升而同步增长,反而出现了效率降低的问题,这对未来系统优化设计提出了新的难题。

当前,面对这一挑战,固态技术协会JEDEC正在深入讨论下一代协议的进化方向,除了继续提高接口速度外,还将优化命令和地址的传输模式,这无疑将给主控芯片的设计带来新的考验。

图片

在Separate Command Address (SCA) 接口中,设计思路发生了根本性的变化。SCA接口将命令和地址信号与数据传输分离开来,增加了专门的CA(Command and Address)通道,而不是像传统接口那样混用I/O线传输命令、地址和数据。

扩展阅读:如何解决NAND系统性能问题?

它的主要原理在于将传统的命令和地址(CMD/ADD R)信号与数据传输(DATA/DQ)信号分离到不同的通道上,即创建了专门的SCA CA通道用于命令和地址的串行传输,而DQ通道专注于数据的并行传输。

图片

通过这种方式,SCA接口不仅简化了布线和电路设计,还优化了控制器与NAND闪存之间的交互,允许更高级别的命令交错执行,从而显著提升固态硬盘(SSD)的并行操作能力和整体性能。

其次,是容量的需求。

随着数据量的急剧增长,企业对存储空间的需求持续增加。这要求SSD不仅要有更大的存储容量,还要能在不牺牲性能的前提下,通过技术改进如3D NAND等提高闪存密度。不同NAND原厂 3D NAND Bit Density对比:

图片

在2月份刚刚举行的2024年IEEE国际固态电路会议(ISSCC)上,三星也公布新一代QLC闪存芯片,采用280层堆叠设计,实现了每平方毫米28.5Gb的高密度存储。信息显示该闪存拥有1Tb的单Die容量,面积密度高达28.5 Gb/mm²(如下图,市面上的存储密度排行来看,三星这个存储密度排名第一),传输速率达到了3.2 GB/s,相较于当前市场常见的传输速度为2.4 GB/s的3D NAND闪存有了较大的提升。

图片

此外为了QLC的普及,ZNS也是拼尽全力。在ZNS的场景下,不同应用按照Zone配置信息,相应存放业务数据。由于是Host管理数据的摆放和存取位置,会最大程度减少GC垃圾回收。降低SSD内部的写放大,提升SSD的寿命。

图片

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

图片

扩展阅读:

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

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

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

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

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

相关文章

抓取Instagram数据:Fizzler库带您进入C#爬虫程序的世界

引言 在当今数字化的世界中,数据是无价之宝。社交媒体平台如Instagram成为了用户分享照片、视频和故事的热门场所。作为开发人员,我们可以利用爬虫技术来抓取这些平台上的数据,进行分析、挖掘和应用。本文将介绍如何使用C#编写一个简单的Ins…

一条 sql 语句可能导致的表锁和行锁以及死锁检测

锁 MDL 当对一个表做增删改查操作的时候,加 MDL 读锁;当要对表做结构变更操作的时候,加 MDL 写锁 ALTER TABLE tbl_name NOWAIT add column ... ALTER TABLE tbl_name WAIT N add column ... …

小程序bindtap 和 catchtap 的区别以及如何使用

Hello大家好!我是咕噜铁蛋!我今天要和大家聊一聊小程序开发中的一个常见问题:bindtap 和 catchtap 的区别以及如何使用。这两个在小程序开发中经常被提及的事件绑定方式,它们之间到底有什么不同呢?让我们一起来深入探讨…

Prometheus监控Mysql数据库在Grafana展示

未安装prometheus和Grafana可以参考这个博客操作 Docker安装Prometheus监控-CSDN博客 Windows版本数据库 一、在数据库服务器安装mysqld-exporter 下载mysqld-exporter文件 Releases prometheus/mysqld_exporter GitHub 二、配置mysqld-exporter文件 1、解压进入mysqld…

微服务架构中的拆分粒度决策

大家好!今天我来和大家分享一下微服务架构中的拆分粒度决策问题,希望能帮助大家更好地理解和应用微服务架构! 问题背景 在设计和实施微服务架构时,拆分粒度的决策非常重要。拆分得太细,会增加系统间通信和部署的复杂性…

基于Springboot的驾校预约学习系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的驾校预约学习系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

12、设计模式之代理模式(Proxy)

一、什么是代理模式 代理模式属于结构型设计模式。为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 二、分类 代理模式分为三类&#…

css3实现3D立方体旋转特效源码

源码介绍 CSS3自动旋转正方体3D特效是一款基于css3 keyframes属性制作的图片相册自动旋转立方体特效 效果展示 下载地址 css3实现3D立方体旋转特效代码

Go——下划线

"_"是特殊标识符,用来忽略结果。 1. 下划线在import中 在golang中,import的作用是导入其他package。 import下划线的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候…

Spring Boot如何自定义自己的Starter组件?

一、为什么要自定义starter 在我们的日常开发工作中,经常会有一些独立于业务之外的配置模块,我们经常将其放到一个特定的 包下,然后如果另一个工程需要复用这块功能的时候,需要将代码硬拷贝到另一个工程,重新集成一 遍…

SQLiteC/C++接口详细介绍之sqlite3类(三)

上一篇:SQLiteC/C接口详细介绍之sqlite3类(二) 下一篇:SQLiteC/C接口详细介绍之sqlite3类(四) 6.sqlite3_create_module与sqlite3_create_module_v2函数 用于创建自定义SQLite模块。创建自定义模块可以让S…

ChatGPT无法登录,提示我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系

1. 问题描述 之前本来已经连续稳定使用ChatGPT好几个月了,但是今天尝试登录ChatGPT的时候,却提示:我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系。 此外,我还在网上看到了一些相关的消息,…

Kafka的基本介绍以及扩展

文章目录 基本操作新增Topic查询Topic修改Topic删除Topic 生产者和消费者创建生产者创建消费者 Broker扩展Producer扩展Topic、Partition、Message扩展存储策略容错机制 基本操作 新增Topic 指定两个分区,两个副本,replication不能大于集群中的broker数…

HarmonyOS预览功能报错:[webpack-cli] SyntaxError: Unexpected end of JSON input

harmonyos预览功能报错 在使用DevEco Studio写页面&#xff0c;进行预览的时候报错&#xff1a; [Compile Result] [webpack-cli] SyntaxError: Unexpected end of JSON input [Compile Result] at JSON.parse (<anonymous>) [Compile Result] at updateCached…

Fair Data Exchange:区块链实现的原子式公平数据交换

1. 引言 2024年斯坦福大学和a16z crypto research团队 论文 Atomic and Fair Data Exchange via Blockchain 中&#xff0c;概述了一种构建&#xff08;包含过期EIP-4844 blobs的&#xff09;fair data-markets的协议。该论文源自a16z crypto的暑期实习计划&#xff0c;与四名…

第四弹:Flutter图形渲染性能

目标&#xff1a; 1&#xff09;Flutter图形渲染性能能够媲美原生&#xff1f; 2&#xff09;Flutter性能优于React Native? 一、Flutter图形渲染原理 1.1 Flutter图形渲染原理 Flutter直接调用Skia 1&#xff09;Flutter将一帧录制成SkPicture&#xff08;skp&#xff…

2023 收入最高的十大编程语言

本期共享的是 —— 地球上目前已知超过 200 种可用的编程语言&#xff0c;了解哪些语言在 2023 为开发者提供更高的薪水至关重要。 过去一年里&#xff0c;我分析了来自地球各地超过 1000 万个开发职位空缺&#xff0c;辅助我们了解市场&#xff0c;以及人气最高和收入最高的语…

判断对象是否可以被回收:引用计数法,可达性分析,finalize()判定

引用计数法 对象每次被赋值给变量时&#xff0c;该对象的计数1&#xff0c; 若将该变量置为null,则该对象的计数-1 若该对象的计数器为0 &#xff0c;则该对象就会判定为垃圾对象 可达性分析 遍历内存中的所有变量&#xff0c;静态变量&#xff0c;然后将该变量当作GCroot根…

安装配置HBase

HBase集群需要整个集群所有节点安装的HBase版本保持一致&#xff0c;并且拥有相同的配置&#xff0c;具体配置步骤如下&#xff1a; 1. 解压缩HBase的压缩包 2. 配置HBase的环境变量 3. 修改HBase的配置文件&#xff0c;HBase的配置文件存放在HBase安装目录下的conf中 4. 首…

在没有推出硬盘的情况下,重启mac电脑,外接移动硬盘无法加载显示?

一、mac磁盘工具显示未装载 1.打开终端&#xff0c;输入 diskutil list查看当前硬盘列表&#xff0c;大多数时候&#xff0c;可以解决。 二、使用命令行装载硬盘 执行上面命令后&#xff0c;仍不起作用&#xff0c;则手动挂载&#xff0c;在命令行输入如下内容&#xff1a; …