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

常见的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.mzph.cn/news/740481.shtml

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

相关文章

106. Dockerfile通过多阶段构建减小Golang镜像的大小

我们如何通过引入具有多阶段构建过程的Dockerfiles来减小Golang镜像的大小? 让我们从一个通用的Dockerfile开始,它负责处理基本的事务,如依赖项、构建二进制文件、声明暴露的端口等,以便为Go中的一个非常基础的REST API提供服务。…

LoadBalancer负载均衡服务调用

LoadBalancer负载均衡服务调用 1、Ribbon目前也进入维护 ​ Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 ​ 简单的说,Ribbon是Netflix发布的开源项目,主要功能是**提供客户端的软件负载均衡算法和服务调用。**Ribbon…

计算机网络 TCP协议的流量控制

流量控制的功能就是让发送方的发送速率不要太快,以便让接收方来的及接受,因此可以说流量控制是一个速度匹配服务,匹配发送方的发送速率和接收方的读取速率。 TCP利用滑动窗口机制来实现流量控制,滑动窗口的基本原理是&#xff0c…

有来团队后台项目-解析5

一、 husky 安装 pnpm install -D husky生成husky 配置文件 如果文件中有.git文件,那么直接执行 npx husky-init如果没有,那么先执行git init 结果: PS F:\company_project\demo\youlahoutaijiexi\vite-project> git init Initializ…

【敬伟ps教程】视频动画

文章目录 视频文档视频时间轴帧动画视频文档 工作区需由[基本功能]切换为[动感] 可以看到我们需从时间的维度来编辑动态视觉图像 时间轴:从时间的维度来编辑动态视觉图像 PS提供的时间轴有两种:1、视频时间轴;2、动画时间轴 新建视频文档,点击新建或Ctrl+N,预设选择“胶…

go优雅重试

实现思路: 重试配置定义最大重试次数和固定重试间隔;使用接口优雅传递可选重试配置参数;重试的模板方法必须返回错误,且只有一个返回值;如果需要使用被重试方法的返回值,使用匿名方法包一层真实方法并在匿…

SPI机制详解

SPI机制详解 什么是SPI机制? SPI:Service Provider Interface,中文直译:服务提供者接口,它通过在ClassPath路径下的META-INF/service文件夹中查找文件,并自动加载文件里所定义的类 在面向对象的设计原则…

Device Tree (二) - dtb格式

dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码才是了解设备树最好的方式,所以,如果需要更透彻的了…

【数据结构】哈希表(Hash Table)

文章目录 一:哈希表(Hash Table)1.1 简介1.2 可以将算法思想分为两个部分1.3 相关术语1.4 性质 二:哈希冲突2.1 什么是哈希冲突2.2 为何要避免哈希冲突2.3 如何避免哈希冲突2.4 如何减少哈希冲突2.4.1 直接地址法2.4.1 除留余数法…

C语言入门学习 --- 7.结构体

文章目录 第七章结构体1.结构体的声明1.1结构的基础知识1.2结构的声明1.3结构成员的类型1.4结构体变量的定义和初始化 2.结构体成员的访问2.1结构体变量访问成员2.2结构体指针访问指向变量的成员 3.结构体传参配套练习: 第七章结构体 1.结构体类型的声明 2.结构体初…

工具篇--分布式定时任务springBoot 整合 elasticjob使用(3)

文章目录 前言一、Springboot 整合:1.1 引入jar:1.2 配置zookeeper 注册中心:1.3 定义job 业务类:1.4 job 注册到zookeeper:1.5 项目启动:1.5.1 zookeeper 注册中心实例:1.5.2 任务执行日志输出…

Ubuntu 14.04:PaddleOCR基于PaddleServing的在线服务化部署(失败)

一、 二、安装 注: 安装 PaddleOCR 2.3 。 因为 PaddleOCR 2.4 的 推荐环境 PaddlePaddle > 2.1.2。 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/environment.md 安装前的环境准备 在使用Paddle Serving之前,需要完…

flink重温笔记(十五): flinkSQL 顶层 API ——实时数据流转化为SQL表的操作

Flink学习笔记 前言:今天是学习 flink 的第 15 天啦!学习了 flinkSQL 基础入门,主要是解决大数据领域数据处理采用表的方式,而不是写复杂代码逻辑,学会了如何初始化环境,鹅湖将流数据转化为表数据&#xff…

数据结构和算法:复杂度分析

算法效率评估 时间效率:算法运行速度的快慢。 空间效率:算法占用内存空间的大小。 效率评估方法主要分为两种:实际测试、理论估算 实际测试问题: 1.难以排除测试环境的干扰因素。 硬件配置会影响算法的性能。需要在各种机器上进…

Web 常用的 扩展开发框架

当谈到提升浏览器功能和用户体验时,浏览器扩展成了一股强大的力量,备受用户青睐。在众多的Web扩展开发框架中,WXT和Plasmo凭借其丰富的工具和特性,以及简化的开发流程,成为开发者们的首选。在本文中,我们将…

【嵌入式DIY实例】-DIY锂电池电压检测表

DIY锂电池电压检测表 文章目录 DIY锂电池电压检测表1、直流电压检测传感器介绍2、硬件准备3、代码实现4、OLED显示在电子应用中,通常需要使用到电池,电源管理是必不可少的部分。本文将详细介绍如何使用一个0-25V的直流电压传感器来检测锂电池的电压。 1、直流电压检测传感器介…

数据分析-Pandas如何画自相关图

数据分析-Pandas如何画自相关图 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&#x…

C#,文字排版的折行问题(Word-wrap problem)的算法与源代码

1、英文的折行问题 给定一个单词序列,以及一行中可以输入的字符数限制(线宽)。 在给定的顺序中放置换行符,以便打印整齐。 假设每个单词的长度小于线宽。 像MS word这样的文字处理程序负责放置换行符。 这个想法是要有平衡的线条。…

Android kotlin开启协程的几种方式

在Android开发中,使用Kotlin协程(coroutines)可以极大地简化异步编程的复杂性,提高代码的可读性和可维护性。以下是几种在Android Kotlin项目中开启协程的常用方式: 1. 使用GlobalScope.launch 这是最简单直接的开启…

2024.3.12-408学习笔记-C-C++

1、引用& #include <stdio.h>void modify_pointer(int* &p1, int* q1) {p1 q1; }int main() {int* p NULL;int i 10;int* q &i;modify_pointer(p, q);printf("after modify_pointer *p %d\n", *p);//after modify_pointer *p 10return 0; }…