PS:该博客仅仅是个人对于知识的总结,不一定完全正确,仅供大伙讨论。截图部分来源于B站up @爱上半导体
一.硬件原理
Flash是由无数个闪存块组成,每个闪存块又是由无数个浮栅晶体管组合而成。
1.先聊聊普通晶体管。
P型半导体中只有极少数自由电子。
给两端加上电压后依然不能导通。
这是由于P区的自由电子浓度太低了,不能形成导电沟道。
为了能让晶体管导通,给栅极加上电压,P区的自由电子被吸引
而控制栅的底部有绝缘层,自由电子无法通过绝缘层
只能聚集到绝缘层底部
从而形成导电沟道,晶体管就会导通
如果撤掉栅极电压,自由电子就会“溃散”,导电沟道便会消失,晶体管截止。
总得来说:
源漏两级通电情况下
1.给g高电平,导通
2.给g低电平,截止
2.接着聊聊浮珊晶体管
浮珊晶体管只是普通晶体管中间多了一层浮珊
这就是为何浮珊晶体管可以存储信息的核心原因
2.1如何写数据呢?
我们给栅极20V电压,衬底0v电压
p区的自由电子就会被吸引到浮珊层
这时候撤掉栅极电压,由于上下两层SIO2绝缘层的作用,自由电子不能“溃逃”,电子就保留到了浮珊层,记作逻辑0,数据也就存储下来了。
重点:不是刚说了,自由电子不能穿过绝缘层吗?那凭啥你能到浮珊层
原因:隧道效应,由于二氧化硅绝缘层很薄,当我们施加一个高电压(20V),自由电子便会穿过绝缘层
注意:此时不要给源极,漏极通电,不然形成沟道,不利于隧道效应
如果,我们给栅极10V电压,自由电子就不能通过SIO2绝缘层了
2.2如何擦除数据呢?
很简单,我们给衬底20v高压,栅极0v
自由电子就会从浮珊层穿越绝缘层被吸引下来,数据就会擦除
记作逻辑1
2.3如何读数据呢?
不好意思,这块我不太了解 后续会补上
2.4闪存块
存储1位信息,需要1个浮栅晶体管,存储1GB的信息,就需要85亿个浮珊晶体管
这是一个示意闪存块
最上下两层是晶体管,用于控制
中间4层是浮珊晶体管,用于存储
横着的是字线,链接晶体管的栅极;竖着的是位线
最小写入单位是页,一页就是一行。
写入数据前,需要将整块擦除,所有浮栅晶体管储存的都是逻辑1
如何给我们想要的存储单元写数据0呢?
先给对应的页20V高压
再给对应的位线0V
自由电子就会被吸引到浮珊层,该存储单元就保存了数据0
如何写逻辑1呢?
由于擦除后,本身就是逻辑1,所以我们只需要保持就可以
我们给对应的位线高电平
这时候沟道形成,晶体管通路,就会干扰轨道原理,自由电子无法被捕获到浮珊层
所以该存储单元位逻辑1
擦除需要整块一起
给所有字线0v,衬底20v高压
自由电子就会从浮珊层释放出来
所有的存储单元均为逻辑1,擦除结束
为何闪存是按页写入,按块擦除呢?
因为写入共用一条字线,擦除共用一块衬底。
真正的闪存,65536条位线,512条字线(512页)
一块闪存数据有 65536*512=3300w bit =4194304 byte=4096kb=4Mb
也就是说,写一位数据,需要擦除3300w位数据,啧啧。
如果需要1G的flash ,需要 256块闪存块
2.5 3D Nand Flash
我们的Flash封装是标准的
所以就容易出现一个问题
我们需要的内存越大,那么需要的闪存块就越多,存储单元就得越小
这样晶体管工艺就越严格
SIO2绝缘层越薄,自由电子进进出出,很容易破坏绝缘层
这样,数据就很难保存好
于是人们发明可3D Nand Flash
可以看出 ,容量还是蛮大的。。
后续补充相关内容