搜索
查看: 22982|回复: 7

[版主评测] 【科普】NAND闪存读写原理(上)

[复制链接]
发表于 2021-8-22 00:37:16 | 显示全部楼层 |阅读模式
普通帖子
帖子关键词: -

SSD系列科普目录:

1. NAND闪存芯片内部结构介绍
2. NAND闪存读写原理(上)
3. NAND闪存读写原理(下)
4. NAND闪存接口标准介绍
5. SSD主控硬件架构介绍



这个帖子是SSD系列科普第二期。
本期讲解NAND闪存读写原理,比较深奥,可能需要一定电路基础知识才能看懂。
分三个部分,前两部分以普通SLC闪存介绍基础原理,第三部分介绍MLC TLC的工作原理。第一、三部分较好理解,第二部分较为复杂。
一、        闪存单元层面

1.结构
第一期末尾提到,每个闪存单元(Cell)是一个浮栅金属氧化物半导体(Floating Gate MOSFET,简称浮栅),其结构类似于NMOS,浮栅层上下层有绝缘层包围,里面的电子不会因为掉电而消失,如下图
Slide1.JPG
        
对一个闪存单元可以有三种操作,写入(Program)、擦除(Erase)、读取(Read)。在写入后如果需要修改数据,需要先擦除,再写入。
2. 写入(Program)
在控制栅极(G)施加电压Vpgm(大约为20V),同时源极(S)漏极(D)接地,衬底中的电子可以得到足够的能量,穿越隧道氧化层,进入浮栅层,这种现象叫做F-N隧道效应(Fowler–Nordheim tunneling effect)。一般用0来表示浮栅层存有电子(Program state),1表示没有电子(Erase State)。

Slide2.JPG

3. 擦除(Erase)
擦除过程将控制栅极接地,衬底施加大约20V高压,电子会从浮栅层回到衬底
Slide3.JPG
4. 读取(Read)
在写入(Program)时,浮栅层获得了电子,
浮栅层的电子数量,决定了浮栅的阈值电压,电子越多,阈值电压越高。
Slide10.JPG
(NMOS原理:G极和S极之间电压大于阈值时,D极到S极为导通状态)
在G极S极之间施加0V电压,检测电流,即可区分浮栅所处的状态。

二、        Block层面
1.写入操作
写入操作是以Page为单位进行的,在SLC中一个Page对应一个WL。
需要写入的WL会施加电压Vpgm(大约20V),其余WL施加电压Vpass(大约10V)。对控制栅极(G)施加Vpass电压使得浮栅的源极(S)到漏极(D)相当于一个通路,并且不会改变浮栅中原有电子。
而对控制栅极(G)施加Vpgm电压且源极(S)和漏极(D)均为0V时,浮栅的状态将会变为Program State 0(见上图)。
假设写入的数据为101,写入到第二个WL,则如下图所示
Slide4.JPG
2.擦除操作
擦除操作以Block为单位进行,因为一个Block中所有存储单元共用一个衬底,衬底电压20V,所有的WL电压0V,即可完成擦除。

3.读取操作
需要读取的WL施加Vr=0V,其他无关WL施加Vpass=5V,无关的WL中 的浮栅会相当于一个通路。

每一个BL会连接一个电容,首先,所有电容先冲入1V左右的电压(低于上文Program state 0的阈值电压),然后使电容上端悬浮(Float)
Slide5.JPG

浮栅中没有电荷的存储单元(上文Erase state 1),是导通的,电容中电压下降。
浮栅中有电荷的存储单元(上文Program state 0)是不导通的,电容电压不变。
通过检测电压,可以得知存储单元的状态。
如下图
Slide9.JPG
三、MLC的原理

1. 结构
SLC、MLC、TLC的区别在于每一个存储单元状态数量不同,代表的bit数量不同。
在SLC中一个单元只有两种状态,而MLC中有4种,TLC中有8种。不同的状态用不同的阈值电压表示,MLC,TLC比SLC需要更加精准的阈值电压控制。
Slide6.JPG
由于每个存储单元的阈值电压不同,所以多个存储单元的阈值电压(Vth)会呈现为类似正态分布。
MLC采用格雷码(Grey Code)编码,为11,01,00,10的顺序,因为相邻两个状态只相差1bit,如果电压发生偏差,偏移到了相邻状态,也最多只会有1bit的错误。
对于MLC来说,一个WordLine在逻辑上分为两个Page (Lower Page和Upper Page)
2.  写入
在写入时先对Lower Page写入,再对Upper Page 写入,如下图。
Slide7.JPG
为了能够更精细的控制浮栅的阈值电压,通常会使用ISPP(Incremental Step Pulse Programming)技术。像循环迭代一样,在控制栅极(Control Gate)施加逐渐增加的脉冲电压(Vpluse),使得存储单元上的阈值电压达到目标值。由于Upper Page所需要的电压精度更高,所以Upper Page需要的迭代次数就越多,时间就越长。
ISPP流程图如下。

Slide8.JPG

TLC原理类似,只不过TLC的存储单元写入需要分成三步(Lower Page,Extra Page,Upper Page),越往后的步骤需要的电压精度越高,所需要的时间越长。
根据有关数据,三步写入所需要的时间分别为700,3400,7600 μs,因此TLC闪存写入速度会比较慢。

3. 读取
读取过程也分Lower Page,Upper Page两大步骤
      首先施加电压Va读取Lower Page状态,然后再施加电压Vb,Vc读取Upper Page状态,由于Upper Page的1状态有两种阈值,所以需要分两次读取,如下图
floatingGate.jpg
4.擦除
由于MLC、TLC不同存储单元电子数量相差很多,擦除也需要多次施加电压擦除使得所有存储单元电压达到目标。



为了解决TLC速度慢的问题,多数厂家都使用了SLC Cache技术,以前写过一篇文章介绍。
【科普】MLC原理及SLC Cache简单介绍
https://bbs.luobotou.org/forum.p ... tid=46641&fromuid=1


参考资料:
1.        Hyperstone Non-Volatile Memory Basics White Paper
2.        NAND Flash Basics & Error Characteristics. Why Do We Need Smart Controllers?, Parnell, Thomas; Pletka, Roman (2017), Flash Memory Summit
3.        快閃記憶體flash進階知識 - IT閱讀. https://www.itread01.com/content/1545131282.html. Accessed 21 Aug. 2021.











回复

使用道具 举报

 楼主| 发表于 2021-8-22 00:41:41 来自手机 | 显示全部楼层
看不懂没关系,以后会有简单易懂的科普。
回复

使用道具 举报

发表于 2021-8-22 06:39:29 | 显示全部楼层
等更加简单易懂,形象易理解的科普文章。
回复

使用道具 举报

发表于 2021-8-22 07:37:12 来自手机 | 显示全部楼层
仔细看了下,感觉头大
回复

使用道具 举报

 楼主| 发表于 2021-8-22 11:33:20 | 显示全部楼层
龍在天涯 发表于 2021-8-22 07:37
仔细看了下,感觉头大

第一、三部分较好理解,第二部分比较复杂。
回复

使用道具 举报

发表于 2021-8-22 13:41:49 | 显示全部楼层
nkc3g4 发表于 2021-8-22 11:33
第一、三部分较好理解,第二部分比较复杂。

第二部分的工作原理应该比较深入。特别是涉及到Block
回复

使用道具 举报

发表于 2024-2-20 14:16:21 | 显示全部楼层
一、闪存单元层面的4. 读取(Read)的图片是不是笔误了?不应该是Erase state1和Program state0吗?
回复

使用道具 举报

发表于 2024-2-20 14:16:51 | 显示全部楼层
闪存单元层面 的 读取(Read)部分 的图片是不是笔误了?不应该是Erase state1和Program state0吗?
回复

使用道具 举报

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2024-11-21 20:05 , Processed in 0.106542 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表