(闪存)存储基础知识

闪存的特性:
1.闪存在写之前必须先擦除,不能覆盖写,于是固态硬盘才需要垃圾回收(Garbage Collection,或者叫Recycle);
2.坏块:
闪存每个块(Block)擦写次数达到一定值后,这个块要么变成坏块,要么存储在上面的数据不可靠;其次闪存出厂时存在坏块。因此需要ECC纠错保护。
固态硬盘固件必须做磨损平衡,让数据平均写在所有块上,而不是盯着几个块拼命写(不然很快固态硬盘就报废了)
3.Read Disturb 读干扰
读干扰影响的是同一个block中的其他page,而非读取的闪存页本身。
当你读取一个闪存页(Page)的时候,闪存块当中未被选取的闪存页的控制极都会加一个正电压,以保证未被选中的MOS管是导通的。这样问题就来了,频繁地在一个MOS管控制极加正电压,就可能导致电子被吸进浮栅极,形成轻微写,从而最终导致比特翻转
4.Program Disturb 写干扰
轻微写导致的,既影响当前的page也影响同一个block的其他page。
5.存储单元之间的耦合
导体之间的耦合电容
6.电荷泄露
长时间不用,电荷泄露

闪存基础结构

闪存的基本存储单元cell, 是一种类NMOS的双层浮栅(Floating Gate)MOS管。
(闪存)存储基础知识_第1张图片
在源极(Source)和漏极(Drain)之间电流单向传导的半导体上形成存储电子的浮栅,浮栅上下被绝缘层包围,存储在里面的电子不会因为掉电而消失,所以闪存是非易失性存储器。
写操作是在控制极加正电压,使电子通过绝缘层进入浮栅极。擦除操作正好相反,是在衬底加正电压,把电子从浮栅极中吸出来,
(闪存)存储基础知识_第2张图片

一个存储单元存储1bit数据的闪存,我们叫它为SLC(Single Level Cell),存储2bit数据的闪存为MLC(Multiple Level Cell),存储3bit数据的闪存为TLC(Triple Level Cell),如表3-1所示。现在已经有厂商在研发QLC,即一个存储单元存储4bit数据,本书不做介绍。
在这里插入图片描述
Charge Trap

芯片框架

(闪存)存储基础知识_第3张图片

一个闪存芯片有若干个DIE(或者叫LUN),每个DIE有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page,每个Page对应着一个Wordline,Wordline由成千上万个存储单元构成cell。
(闪存)存储基础知识_第4张图片

  1. DIE/LUN是接收和执行闪存命令的基本单元
    但在一个LUN当中,一次只能独立执行一个命令,你不能对其中某个Page写的同时,又对其他Page进行读访问。

  2. 每个Plane都有自己独立的Cache Register和Page Register,其大小等于一个Page的大小。

  3. Multi-Plane(或者Dual-Plane),主控先把数据写入第一个Plane的Cache Register当中,数据保持在那里,并不立即写入闪存介质,等主控把同一个LUN上的另外一个或者几个Plane上的数据传输到相应的Cache Register当中,再统一写入闪存介质。

  4. 闪存的擦除是以Block为单位的
    那是因为在组织结构上,一个Block当中的所有存储单元是共用一个衬底的(Substrate)

三维闪存

《Inside NAND Flash Memories》一书提供的某一类三维闪存的结构示意图,在这种三维闪存中,沟道是竖起来的,一层一层盖楼的是连接到栅极的Wordline。
(闪存)存储基础知识_第5张图片

寿命问题

解决:
1.Wear Leveling:通过磨损平衡算法,让所有的闪存块均衡擦写,避免少数闪存块先挂掉,导致固态硬盘容量下降。
2.Data Retention
《Data Retention in MLC NAND Flash Memory:Characterization,Optimization,and Recovery》
3.Trap-assisted tunneling(TAT)

ECC

有些闪存内部也集成了ECC纠错模块。常用闪存ECC纠错算法有BCH(Bose、Ray-Chaudhuri与Hocquenghem三位大神名字的首字母)和LDPC(Low Density Parity Check Code)等。目前市面上很多固态硬盘控制器上采用的是BCH,但采用LDPC正成为一种趋势。

RAID

(Redundant Arrays of Independent Disks)纠错技术。

你可能感兴趣的:(笔记)