首页 > 其他分享 >SSD性能与NAND速率的关系

SSD性能与NAND速率的关系

时间:2024-07-22 22:29:08浏览次数:13  
标签:闪存 读取 16KB NAND us 速率 SSD

SSD性能评估中,SSD的性能指标包括IOPS、吞吐带宽,QoS(Quality of Service, 服务质量),其中QoS是重中之重,代表SSD性能的稳定性的指标。影响SSD性能主要因素总结如下。

图片

之前文章(全景解析SSD IO QoS性能优化)中,已经做了全面剖析,本文主要针对NAND后端速率进行深入的解读与学习

由于计算过程涉及NAND读写延迟数据,本文就以Solidigm P5336 QLC SSD以及相关NAND参数信息作为参考(声明:均为Solidigm官网以及其他公开信息整理):

(1)SSD基本产品信息:

图片

(2)对应NAND关键信息:

图片

在SSD(固态硬盘)的NAND闪存读取操作中,(tCMD) + tR + tDMA + tECCDEC + (tRND)代表了一次读取操作的总延迟时间,其中每个组成部分代表不同的阶段和它们各自所需的时间。具体解释如下:

  • tCMD: 这代表命令传输时间,即从SSD控制器发送读取命令到NAND闪存开始执行该命令之间的时间。它包含了命令信号在接口上的传输延迟,确保命令正确地被NAND闪存芯片接收和解析。

  • tR: 这是读取延迟时间,指的是从NAND闪存接收到读取命令到数据被实际感应(读取)到闪存芯片内部的页面缓冲区所需的时间。在物理层面上,这涉及到电压施加到存储单元,使得存储在细胞中的电荷状态能够被检测并转化为电信号。

  • tDMA: DMA(Direct Memory Access)传输时间,是指数据从NAND闪存的页面缓冲区转移到SSD控制器的DRAM缓存或直接到主机内存的时间。这个阶段涉及数据在不同存储层次间的物理移动,通常受到I/O总线速度和数据宽度的限制。

  • tECCDEC: ECC(Error Correction Code)解码时间,是在数据从闪存读出后,SSD控制器对数据进行错误校验和纠正所需的时间。ECC用于确保数据的完整性,特别是在NAND闪存中常见的位翻转错误。当硬解码无法正确处理错误时,通常会转向软解码,即使这意味着读取操作的整体延迟会增加。根据研究人员实验数据显示,LDPC软解码每一步执行的大致延迟数据如下:

图片

扩展阅读:

  • tRND: 随机化处理是在写入数据之前完成,也是在LDPC encode之前。这部分随机化处理时间,也是会影响数据写入时间tPROG和读取出来tR。

扩展阅读:SSD数据在写入NAND之前为何要随机化?

图片

  • tCMD地址传输时间:可以忽略

  • 16KB, tR读取时间是110us

  • 16KB, tDMA=(16KB/(1.6GB/s*1024))*10^6=9.7us (接口速率1600MT/s,转化IO带宽就是1600MT/s*8bit=12.8Gbps, 也就是1600MT/s*1Byte=1.6GB/s)

  • tECCDEC: 根据上面研究数据,可以设定15us

  • tRND:时间很短,这里暂时忽略

所以,一次读取16KB的总时间Ttotalread=110us+9.7us+15us=134.7us,对应的读带宽=16KB/134.7us=121.6MB/s

图片

同样的方式,对于一次写16KB的时间Ttotalwrite=(tRND) + tECCENC + (tCMD) + tDMA + tPROG=15us+9.7us+1400us=1424.7us,对应的写带宽=16KB/1424.7us=11.5MB/s

上面计算的都是单次读写的性能,但是在固态硬盘(SSD)中,为了实现高性能,通过同时执行多个操作或利用存储设备内部的多个组件来提高整体性能和吞吐量。

  1. 多通道架构:现代SSD通常包含多个闪存通道(Channel),每个通道连接到一个或多个NAND闪存芯片。每个通道可以独立执行读写操作,从而实现并行读写,显著增加总带宽。例如,如果一个SSD有4个通道,每个通道同时进行读写操作,那么理论上可以达到单通道操作四倍的吞吐量。

  2. Multi-Plane操作:在一个NAND闪存芯片中,存在多个层面(Planes)。这些层面可以同时进行读或写的操作,只要操作针对的是相同页面偏移。例如,在多层面操作中,两个层面可以同时读取或编程不同页面的数据,从而加倍了单个操作的吞吐量。虽然每操作的延迟可能略微增加,但总体数据传输速率会显著提升。

  3. 读取与写入缓存:SSD内部通常配备有读取缓存和写入缓存(DRAM),可以并行处理数据传输和数据校验。当系统发送读取请求时,如果数据已经位于读取缓存中,则可以直接返回给主机,而无需等待从闪存中读取,显著减少了读取延迟。对于写入操作,数据可以先写入高速缓存,然后异步地转移到闪存中,允许立即确认写入完成,从而提高了响应速度。

  4. ECC处理并行化:错误校正编码(ECC)过程也可以并行处理,尤其是在数据读取时。使用并行ECC引擎可以加速数据解码过程,减少从闪存读取数据到其准备就绪供系统使用之间的时间。

  5. 命令调度与队列深度管理:SSD控制器通过优化命令调度逻辑,可以有效管理多个并发请求,确保多个命令在不同组件间高效分配,充分利用各部分的并行处理能力。增加队列深度(Queue Depth)意味着更多的命令可以同时处于待处理状态,进一步提升并行度。

  6. 垃圾回收(Garbage Collection)与磨损均衡(Wear Leveling):SSD的固件(Firmware)在后台执行这些维护任务时,也会尽量与用户操作并行执行,以减少对前端性能的影响。例如,通过预测和利用空闲时间进行垃圾回收,可以避免与用户请求直接冲突,从而减少对整体性能的负面影响。

Multi-Plane操作:

在一个NAND闪存芯片中,存在多个层面(Planes)。这些层面可以同时进行读或写的操作,只要操作针对的是相同页面偏移。

图片

  • 单Page写时间=tECCENC + tDMA + tPROG=1424.7us,对应的写带宽=16KB/1424.7us=11.5MB/s

  • Multi-plane写时间: N-Plane×(tECCENC + tDMA) + tPROG= 4*( 15us + 9.7us) + 1400us = 1498.8us,对应的带宽:4*16KB/1498.8us=43.7MB/s

另外,在一个通道上的Multi-LUN(单CE#多Die)操作是可以有交错Interleave的。当一个NAND闪存处在被占用状态Busy时,可以让第一个NAND闪存自己忙着,主控可以访问同一个通道上的第二个NAND闪存。

举个例子,主控需要连续对一个通道上所有的NAND闪存进行写入(Write)操作,在Interleave功能的帮助下,同一个通道上的NAND闪存形成了一个最大通道利用率的流水线(Pipeline)

图片

考虑Multi-LUN操作(比如2 LUN):

单Chanel-MultiLun-MultiPlane的写时间:2 * N-Plane× ( tECCENC + tDMA) +  tPROG = 2*4*(15us + 9.7us ) + 1400us = 1598us,对应带宽=2*4*16KB/1598us=82MB/s

多通道Channel操作:

现代SSD通常包含多个闪存通道(Channel),每个通道连接到一个或多个NAND闪存芯片。每个通道可以独立执行读写操作,从而实现并行读写,显著增加总带宽。

图片

所以,这里16个Channel并发的写带宽=16*82MB/s=1312 MB/s

以上计算仅仅考虑的最简单的情况,仅供学习参考,实际SSD性能带宽与QoS优化是一项非常复杂艰巨的工程。

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

精彩推荐:

标签:闪存,读取,16KB,NAND,us,速率,SSD
From: https://blog.csdn.net/zhuzongpeng/article/details/140620901

相关文章

  • C#使用PostgreSQL及其衍生产品GaussDB时(Npgsql.EntityFrameworkCore.PostgreSQL)过程中
      PostgreSQ作为开源免费的数据库,现在正在火热的占据市场,它衍生产品,比如GaussDB在国产化替代中使用比较多,然而它们或多或少存在一个兼容问题,或者说是版本之间的问题,所以这里记录几个在使用过程中碰到的问题,做个笔记,后续有新的问题就再记录。  问题一:0A000:DISCARDstatement......
  • 0.96寸 30pin OLED简介(芯片为SSD1306)
    基本简介OLED屏的特点:1. 模块有单色和双色可选,单色为纯蓝色,双色为黄蓝双色;2. 显示尺寸为0.96寸3. 分辨率为128*644. 多种接口方式,该模块提供了总共5种接口包括:6800、8080两种并行接口方式、3线或4线的SPI接口,IIC接口方式......
  • 解读GaussDB(for MySQL)灵活多维的二级分区表策略
    本文分享自华为云社区《GaussDB(forMySQL)创新特性:灵活多维的二级分区表策略》,作者:GaussDB数据库。背景介绍分区表及二级分区表的功能,可以让数据库更加有效地管理和查询大规模数据,传统商业数据库具备该能力。MySQL支持分区表,与传统商业数据库相比,MySQL对二级分区表功能的支持......
  • 关于三星SSD移动硬盘的维修与数据恢复
    通常涉及多个方面,包括故障诊断、硬件维修以及数据恢复等。一、故障诊断检查连接:确保SSD移动硬盘与计算机的连接是稳定的,检查数据线是否损坏或接触不良。尝试更换不同的USB端口或电脑进行测试,以排除USB接口问题。电源检查:确认移动硬盘的电源供应是否正常,特别是对于需要外接电......
  • 《昇思25天学习打卡营第15天|计算机视觉-SSD目标检测》
    FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类SSD目标检测模型简介SSD,全称SingleShotMultiBoxDetector,是WeiLiu在ECCV2016上提出的一种目标检测算法。使用NvidiaTitanX在VOC2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(meanAveragePrecisi......
  • 昇思学习打卡-11-SSD目标检测
    文章目录模型介绍模型的特点数据采样网络结构损失函数公式实现NMS训练过程模型介绍SSD是单阶段的目标检测算法,通过卷积神经网络进行特征提取,取不同的特征层进行检测输出,所以SSD是一种多尺度的检测方法。在需要检测的特征层,直接使用一个3×3卷积,进行通道的变换。SSD......
  • Franka机器人中的低通滤波器和速率限制器之间的区别和联系
    Franka机器人中的低通滤波器和速率限制器之间存在以下区别和联系:作用目的:低通滤波器的作用是抑制高频噪声,平滑控制指令,提高系统稳定性。速率限制器的作用是限制关节运动的速度变化率,避免机器人产生过大的加速度和扭矩,保护机械系统。作用对象:低通滤波器作用于控......
  • USB 速率识别过程(low speed、full speed 和high speed)
    设备速度识别1FS/LS设备识别USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。当USB主机探测到D+/D-线的电压已经接*高电*,而其它的线保持接地时,它就知道全速/低速设备已经连了。2HS设备识别为识别出高速设备,需要在上拉电阻和D+线之间连接一个由软件控制的开关......
  • NAND Flash基础介绍 一
    ChipCI颗粒厂商提供的是整个一块晶圆,晶圆上已经把芯片划分好了,如下图模组厂商或者颗粒厂商会把晶圆拿去分割,拆分出一个个芯片,每个拆分下来的芯片型号、工艺、空间大小等由颗粒厂家提前定制好了,具体说明可参考https://www.cnblogs.com/studywithallofyou/p/18291633。该文档介......
  • 三星 NAND FLASH命名规范 Samsung NAND Flash Code Information
    一共有三页,介绍了前面主要的编号和横杠后面的编号,当前文档只关注前面的编号。从前面的命名规范中可以得知当前芯片的容量、技术等概要信息,对芯片有一个整体了解。详细解释SmallClassification表示存储单元的类型和应用,比如SLC1ChipXDCard表示是SLC的,包含1个Chip的XD......