浅析SSD技术基础NAND-Flash原理

2024-12-23 08:56   江苏  

前言,很久没有聊SSD相关内容了,对应IT技术发展而言,除了计算、存储外,还有非常重要的一环就是存储,目前在GPU服务器上想要更好发挥整机的性能,NVMe SSD是必不可少的,以H100 NVlink八卡机为例,按英伟达推荐我们往往要搭配4\8张NVMe的SSD,智算集群中也需要搭配全闪的并行文件系统等,都与SSD有关,今天我们从SSD NAND结构\工作原理\写放大简单等几个方面聊聊,水平有限,不准确之处欢迎大家指正。

一、SSD固态盘的内部结构

SSD主要由控制单元和存储单元(当前主要是FLASH闪存颗粒)组成,控制单元包括SSD控制器、主机接口、DRAM等,存储单元主要是NAND FLASH颗粒。NAND 颗粒的内部结构如下所示:

为了便于大家理解,我将内存颗粒逐级分解,每个单元(或单位)的特点和组成逻辑如下图:

二、NAND flash存储数据的原理

Cell:一个浮栅晶体管

NAND 闪存的存储原理:是利用了量子力学的隧道效应。在控制门上加较高的编程电压,源极和漏极接地,使电子穿越隧道氧化层到达浮栅,并聚集在浮栅上,存储信息。擦除时仍利用隧道效应,不过把电压反过来,从而消除浮栅上的电子,达到清除信息的结果。寿命有限的原因是,电子反复来回穿越隧道氧化层而损坏隧道氧化层,导致存储单元物理破坏而不能再有效的保持浮栅门中的电荷。

不同颗粒类型(TLC、MLC和SLC等):区别于对电子数量的精细度,示意图如下:

三、为什么会有“写放大”

写入放大(Write amplification,简称WA)是闪存和固态硬盘之间相关联的一个属性,所谓放大指的是在执行写入操作的时候,SSD硬盘发生的写入量,要远大于实际写入的数据量,从而减少了SSD的使用寿命。

写放大的公式如下:

写入放大的原理:因为NAND flash数据写入的方式,以页面为单位写入,但是要想删除数据却需要以块为单位。当写入新数据时,如果SSD控制器找不到可以写入的page时,会执行GC过程,然后GC机制会将一些block中的有效数据合并写入其他的block中,然后将这些block的无效数据擦出,再将新数据写入到这些block中,而在整个过程中除了要写入用户的数据之外,实际上SSD还写入了一些其他block合并过来的数据。

写入放大的过程举例如下

四、磨损均衡的基本原理

1、为什么需要磨损均衡:

NAND 的寿命有限,也就是有限的编程/擦写(Program/Erase)次数。数据有冷热之分, 经常用来存储热数据的 NAND 会更快被磨损,当超过限制的 P/E 次数后,存储单元的可靠性就会大幅下降,最终不可用(变成坏块),需要从预留空间中挑选有效 block 进行补充。 

2、磨损均衡的原理:

针对冷热数据的不同访问特点,采用静态和动态两种磨损均衡算法来提高固态硬盘的整体寿命。对于经常被读写的热态数据(热数据),会根据 PE 次数和 block 中有效数据的个数综合来选择数据要存放的 block,保证全盘block的P/E 接近平均 P/E,同时做尽可能少的数据搬移,减小写放大。“大白话理解就是避免出现只薅一只羊的情况。

----老张会持续通过公众号分享前沿IT技术,创作不易,大家多多点赞和关注!

IT技术分享-老张
北漂it民工,目标做最接地气的科普类文章!分享IT行业服务器相关的前沿技术、产品和方案,聚焦AI、信创、液冷、智算中心等相关细分领域!入交流群或商合可+vx(zcyaihuai)!
 最新文章