闪存的物理结构

闪存的物理结构

固态硬盘的工作原理很多都是基于闪存特性的。比如,

  • 闪存在写之前必须先擦除不能覆盖写,于是固态硬盘才需要垃圾回收(Garbage Collection,或者叫Recycle);
  • 闪存每个块(Block)擦写次数达到一定值后,这个块要么变成坏块,要么存储在上面的数据不可靠,所以固态硬盘固件必须做磨损平衡,让数据平均写在所有块上,而不是盯着几个块拼命写(不然很快固态硬盘就报废了)。

如下图所示,一个闪存芯片有若干个DIE(或者叫LUN),每个DIE有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page,每个Page对应着一个Wordline, Wordline由成千上万个存储单元构成。

闪存进行读写的基本单位为Page,擦除的基本单位为Block。
在这里插入图片描述
DIE/LUN是接收和执行闪存命令的基本单元。 如图所示,LUN0和LUN1可以同时接收和执行不同的命令(但还是有一定限制的,不同厂家的闪存限制不同)。但在一个LUN当中,一次只能独立执行一个命令,你不能对其中某个Page写的同时,又对其他Page进行读访问。

闪存的擦除是以Block为单位的。 为什么呢?那是因为在组织结构上,一个Block当中的所有存储单元是共用一个衬底的(Substrate)。当你对某衬底施加强电压,那么上面所有浮栅极的电子都会被吸出来。

闪存结构图

虚构一个SSD空间来理解闪存的物理结构:假设该SSD有8个通道(channel),每个通道有8个LUN,每个LUN有1个Plane,每个Plane有8个Block。

如图所示为一个通道内的SSD空间,每个正方形小方块为一个Block。
在这里插入图片描述
我们顺序写入8个逻辑页,分别写到不同的Die上,这样写的目的是增加底层的并行性,提升写入性能。

垃圾回收,就是把某个闪存块上的有效数据读出来,重写,然后把该闪存块擦除,就得到新的可用闪存块了。我们做垃圾回收时,不是回收某个闪存块,而是所有通道上都要挑一个。一般选择每个Die上块号一样的所有闪存块做垃圾回收,也就是上图横向的8个闪存块,谁的垃圾数量最多,就挑为垃圾回收的Line

参考资料
[1] 《深入浅出SSD:固态存储核心技术、原理与实战》 SSDFans 著

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值