文章目录
- 一、几种不同类型闪存的参数:
- 二、组织结构
- 三、块(Block)的结构
- 擦除动作原理:
- 写操作
- 读操作
一、几种不同类型闪存的参数:
参数项 | SLC | MLC | TLC | QLC |
---|---|---|---|---|
读取时间/us | 20~25 | 55~110 | 75~170 | 120~200 |
写入时间/us | 50~100 | 400~1500 | 800~2000 | 2000~3000 |
擦除时间/ms | 2~5 | 5~10 | 10~15 | 15~20 |
擦写次数 | 100000 | 15000 | 3000~5000 | 800~1500 |
存储位/b | 1 | 2 | 3 | 4 |
二、组织结构
基本存储单元叫做 Cell
若干个Cell组成最小的读写操作单元 Page
若干个Page组成最小擦除单元 Block
若干个Block组成 Plane
若干个Plane组成Die或者叫LUN
若干个Die组成一个闪存芯片
参考书中的结构图:
三、块(Block)的结构
参考下图:cell是串行排列的,一个Block由若干个Page组成,若干个page被一条字线串联,【WL(Word Line)】
而位线【BL(Bit Line)】则是一个Page有多少位就有多少条,假如一个Page 16kb,则有 16x1024x8个BL
所有cell共用一个衬底
这里我的理解:
一条WL上可能有多个page,对SLC就1个page,MLC就两个Page,以此类推.page是一个逻辑单位,我们把它当作一个整体,实际上是由一个个独立的cell组成,这些Cell被一个WL串成一串,然后每一个Cell由它所能保存的位数决定它需要引出几条BL出来
问题:假如一个WL含一个Page,Page大小为16KB,则有16 x 1024 x 8条BL,那假如我一个WL上有两个Page呢?是否就是16 x 1024 x 8 x2 条BL?
书中标注:假如有奇偶位线,则一个字线上的闪存页要翻倍(暂未理解)
擦除动作原理:
擦除是对整个Block进行操作,如下图:
在所有WL的控制级加 0V电压,衬底加高电压,将浮栅层的电子吸出,完成擦除动作
固件会有检查,假设电子无法完全吸出的cell超过设定值,则判定此Block ,擦除失败(Erase Fail),应该被标记为坏块(bad block),不再使用
写操作
写最小单位是Page,所以对Page进行操作,如下图:
写入是在WL控制级加高电压(Vprog),在衬底加0V电压,其余WL加一个刚好可以导通的低电压Vpass,在不需要操作的存储单元的BL施加一个高电压Vinh,需要操作的Cell对应得BL施加一个0V电压,以此0V电压对应的BL与Vprog对应的WL形成的交叉点的Cell将被操作注入电子,其余Cell则不做动作,维持无电子状态
也就是说写操作需要 WL与BL共同操作来确定需要操作的Cell,高电压WL与0V BL交汇点的Cell则灌入电子,其余Cell不做操作
读操作
读最小单位是Page,所以对Page进行操作,如下图:
对不需要读取的Page的WL施加一个导通电压 V pass,然后给所有BL充电
然后之前提到读操作的时候有个阈值,所以需要在需要读取数据的Page对应的WL上施加一个V read阈值电压,然后根据这个阈值电压打下去是导通还是断开,来读出数据