快讯
HOME
快讯
正文内容
nand_readpage 多维度深入剖析QLC SSD硬件延迟的来源
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

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

之前谈到QLC的背景和SSD延迟相关的话题:

PLC SSD虽来但远,QLC SSD火力全开

如何快速debug定位SSD延迟问题?

本文主要针对QLC SSD本身硬件底层延迟来源进行剖析,看看是否有新奇的发现。

如之前文章的介绍,目前NAND已经从SLC发展到PLC,但是PLC离大规模上市还有一段距离,我们暂时先略过。市面上主要流通的就是4种NAND类型:SLC、MLC、TLC、QLC。随着每个寿命从高到低依次是SLC>MLC>TLC>QLC.

随着单个cell含有的bit数越多,NAND的可靠性也会有所降低。同时写延迟也在不断地增加。SLC写延迟在0.5ms级别,到QLC写延迟达到10-20ms,40倍的差距。这也导致QLC SSD性能出现很大的下降。

在评价SSD性能指标的时候,我们通常会提到顺序读写带宽,随机读写IOPS,这些指标与NAND之间的关系是怎么样的呢?延迟的来源有哪些?

(1)NAND Read Page时间影响SSD读性能

Host从SSD读数据,最终数据的来源也是要从NAND die上读取,对NAND die发送Read Page操作,数据返回。这个过程的耗时直接决定了SSD读性能的好坏。下图是某个比较老的NAND SPEC相关读操作的示意图,仅供参考。

(2)NAND Program Page时间影响SSD写性能

Host向SSD写入数据,数据最终的归宿是NAND die。数据写入NAND的时间依赖NAND Channel和Plane的设计,更重要的是需要依赖NAND die本身program page的时间,这个过程的耗时直接决定了SSD写性能的好坏。下图是某个比较老的NAND SPEC相关写操作的示意图,仅供参考。

比如下图是在去年ISSCC展示的不同场景QLC SSD性能的对比。其中,我们可以关注到Program Latency(tPROG)的时间,跟Program Throughput写带宽有直接的关系。同样的Plane配置下,Program Latency(tPROG)的时间越小,Program Throughput写带宽就会越大

(3)NAND Block Erase的时间也会影响SSD读写性能

下图是SSD写入page的简单示意图。当数据以4KB大小随机写入时,最左边的die的第一个block已经写满了,包括了有用数据或者invalid无效数据。

在SSD FW内部GC启动的策略下,最左边die的第一block的有效数据被搬迁到空闲的数据块block。同时该block开始执行Erase操作。此时,如果我们要读取在这个die的数据A的时候,因为同一颗die正在进行erase操作,就会导致A数据读操作无法执行(同时,如果同一个die或者plane有读操作进行,此时读取同一个die和plane,也会产生冲突,影响读性能),需要等待erase操作完成。最终导致读的延迟里面有多了一个erase block的操作,读性能就会看到一个抖动。

在GC的另外一种状态,SSD内部没有空闲的block,需要等待GC搬迁数据和擦除数据,腾出空闲的数据块,这个过程,erase的操作也影响到写性能。假如我要写入一个4KB的数据Z覆盖A,并恰好目标块没有空余的页区,需要进行GC回收。这个时候就需要把B、C、D、E、F五分数据都搬走,然后擦除整个数据块,擦除完成后再整体写入6个数据页。这个整个过程,Host虽然只写了4KB的数据,但实际过程中,由于GC的问题,NAND最终写入了24KB。那么写放大WAF=24KB/4KB=6. 这整个过程写延迟和写放大都受到了很大的影响。

扩展阅读:SSD写放大的优化策略要统一标准了吗?

(4)NAND其他特性对SSD读写性能的影响

比如要增加写性能,做法是在NAND array Bit Line方向增加plane的并发度,多个page一起写。另外,也可以通过减少Bit line的长度来降低RC延迟,这样可以提升读的性能。

同时,NAND ONFI接口的速率也会影响性能,目前常见的接口速率2400MT/s, 3200MT/s, 3600MT/s。

(5) ECC纠错对SSD读性能的影响

在host读取数据过程中,最理想的情况是一个Page Read Time的时间就可以直接返回数据。但现实情况是,我们可能会因为一些不想看到的问题,导致性能受损。

比如读写之间的温度差、Data Retention、读干扰、写干扰等。导致出现数据翻转,需要启动Read Retry重读机制、LDPC纠错、RAID纠错等修复机制。这个过程就会导致性能出现跌落或者延迟抖动。

在QLC SSD中,因为Vt level之间的电压差更狭小,访问同一个区域的扫描电压影响会更大,更容易引发读干扰的问题。

同样的,Data Retention也比较明显,读写温度差异对QLC NAND的更加敏感。

扩展阅读:SSD可靠性分析前传之NAND闪存可靠性概览

(6) 3D-NAND工艺对SSD性能的影响

目前业内3D-NAND工艺架构主要分为两个阵营,一个阵营,以Solidigm(Intel NAND卖给海力士后新成立的公司)为首,采用Floating Gate(FG)浮栅,另外一个阵营三星/WD等,采用Change Trap Flash。FG浮栅将电荷存储在导体中,而CTF将电荷存储于绝缘体中,这消除了单元之间的干扰,提高了读写性能,同时与浮栅技术相比减少了单元面积。不过,FG浮栅对read disturb和program disturb的抗干扰比CTF要好。

FG浮栅架构在Program过程,采用4-16 program算法,这个过程可以减少program disturb写干扰。

CTF架构,或者叫做RG架构,采用16-16 progam算法,两次program都要求所有page直接写入NAND,第一次program电压是放置在最终电压附近。CTF的Data Retention相对比较严重。

在写性能方面的对比,不同的架构有不同的表现。

在TLC NAND中,CTF架构tPROG比FG浮栅低18%,所以在TLC SSD中,CTF架构TLC NAND SSD的性能比FG架构TLC NAND SSD性能要好。在QLC NAND中,由于program算法差异的影响,FG浮栅表现更好,FG架构QLC NAND SSD性能比CTF架构QLC NAND SSD性能要好。

再搬出这个QLC SSD性能对比图,同样4plane的QLC SSD,采用FG架构的Intel QLC SSD写延迟tPROG=1.63ms比采用CTF架构的SK Hynix写延迟tPROG=2.15ms要低。

不同的NAND工艺架构,在不同的维度各有千秋,对维度对比,供大家参考。

扩展阅读:3D-NAND向500层进发,天花板在哪里?

结语

不同的FW架构设计、FTL算法设计、NAND die plane/速率等的差异,都会直接影响SSD的性能与延迟,设计一块性能优越且稳定的SSD,是一项繁琐但具有很强艺术性的工程

精彩推荐:

漫谈固态硬盘SSD全生命周期的质量管理如何快速debug定位SSD延迟问题?汽车存储SSD面临的挑战与机遇超大规模云数据中心对存储的诉求有哪些?SSD写放大的优化策略要统一标准了吗?阿里云Optane+QLC存储实践案例分享“后Optane时代”的替代存储方案有哪些?浅析数据中心存储发展趋势浅析PCIe链路LTSSM状态机浅析Relaxed Ordering对PCIe系统稳定性的影响实战篇|浅析MPS对PCIe系统稳定性的影响浅析PCI配置空间浅析PCIe系统性能PLC SSD虽来但远,QLC SSD火力全开Backblaze2022中期SSD故障质量报告解读最全电脑固态硬盘SSD入门级白皮书存储随笔《NVMe专题》大合集及PDF版正式发布!加权循环仲裁WRR特性对NVME SSD性能有什么影响?Linux NVMe Driver学习笔记之9: nvme_reset_work压轴大戏

海信MST6I78,MSD6I48,MST6I98打印判断

打印信息内容:

UART_115200

BIST0-FAIL

BIST1-OK

[012345678][]-44

[012345678][01234567]-43

_nPD

可能原因:DDR 0

打印信息内容:

。。。

。。。

s8SN0(6) s8SN1(7)

!!!!!!!should go to standby!!!!!

Wait for PM51 standby...........

PM51 run ok...........

MailBox: MDrv_PM_SetDbgLevel...!

Get PM command: 0x30.

MDrv_PM_Init OK

MailBox: MDrv_PM_Init...(0x01)

power down

可能原因:待机状态

打印信息内容:

UART_115200

BIST0-FAIL

BIST1-FAIL

[][]-44

[][]-44

可能原因:主芯片

打印信息内容:

鳸ART_115200

BIST0-OK

BIST1-OK

[][]-44

[12345678][012345678]-44

可能原因:主芯片

打印信息内容:

U-Boot (Aug 27 2010 - 18:22:39)

Board: MSTAR TITANIA (CPU Speed 504 MHz)

DRAM: 134217728

Skipping flash_init

Flash: 0 kB

NAND:

unknown FLASH

可能原因:NANA flash故障、检查flash与主芯片通信,确认正常后代换NANA flash,如果不能排除,更换主芯片

打印信息内容:

Board: MSTAR TITANIA (CPU Speed 504 MHz)

DRAM: 134217728

Skipping flash_init

Flash: 0 kB

NAND: nand_bbt: searching bbt....Bad block table found at page 65472, version 0x01

nand_bbt: searching bbt.....Bad block table found at page 65408, version 0x01

nand_read_bbt: Bad block at 0x06880000

128 MiB

In: serial

Out: serial

Err: serial

Net: No ethernet found.

MSVC00B000100100208811DA0000000

Set MIU0 group priority:c9.....

Set MIU1 group priority:c9..... (打印到此处后,无任何信息)

可能原因:重新升级软件

打印信息内容:

UBIFS error (pid 1): ubifs_read_node: cannot read node 9 from LEB 40:103072, error -22

UBIFS error (pid 1): ubifs_iget: failed to read inode 1, error -22

List of all partitions:

fe00 4096 msram0 (driver?)

00 128 mtdblock0 (driver?)

01 1024 mtdblock1 (driver?)

02 1024 mtdblock2 (driver?)

03 114816 mtdblock3 (driver?)

04 14080 mtdblock4 (driver?)

No filesystem could mount root, tried: ubifs

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

(打印到此处后,无任何信息)

可能原因:重新升级软件

打印信息内容:第一部分

fuse init (API version 7.10)

msgmni has been set to 36

CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 80626210,

ra == 8062644c

Oops[#1]:

Cpu 0

$ 0 : 00000000 0000002d 00000000 0

相关问答

存储芯片分类?

存储芯片是一种用于存储和读取数据的集成电路。常见的存储芯片包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、固态硬盘(SSD)等。它们可以按照不同的特...

我把BIOS升级是突然停电了怎么办啊?

谢邀严格来说,现代主板上的BIOS芯片是很少会烧掉的。现代主板上的BIOS芯片通常是EEPROM(Electrically-ErasableProgrammableRead-OnlyMemor...

win10中文件不包括什么属性?

Windows环境中,文件不包括运行属性。但包括下列几种属性:系统、隐藏、只读与存档。只读(readonly)又称唯读,表示文档或属性只能读取,不能修改也不能储存。...

闪存卡构造是什么?- 一起装修网

一起装修网问答平台为您提供闪存卡构造是什么?的相关答案,并为您推荐了关于闪存卡构造是什么?的相关问题,一起装修网问答平台:装修问题,因我而止。

DRAM和RAM的区别是什么?DRAM这东西到底有什么用呢? - 136****...

ROM和RAM指的都是半导体存储器,ROM是ReadOnlyMemory的缩写,RAM是RandomAccessMemory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都...

DRAM和RAM的区别是什么?DRAM这东西到底有什么用呢? - 175****...

ROM和RAM指的都是半导体存储器,ROM是ReadOnlyMemory的缩写,RAM是RandomAccessMemory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通...

请问U盘,闪盘,移动硬盘 这些都有什么不同?为什么价格不一样?-...

U盘有个更专业的名字,叫做“闪存盘”,不难理解,他就是以NAND闪存芯片作为存储介...具体的你可以看下面的连接:什么叫移动硬盘:http://dnfans.uu1001.com/read.p.....

现在手机安装软件后会占用内存,是不是手机内存跟传统的电脑...

肯定不一样呀。盘等外部存储是因为硬盘的读取速度太慢,所以是起转接的作用。如果内存太小的话,电脑会比较卡顿,运行的程序越多越明显。手机内存包括...

 地震 成都  韩剧你笑了 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部