第五章 NAND闪存—闪存的基本原理

5.1.1 闪存的存储单元

        基本存储单元——类NMOS浮栅晶体管,在源级和漏极之间电流单向传导的半导体上形成存储电子的浮栅。

        用浮栅里面有无电子,表示0/1。一般,0代表有电子,有数据;1代表无电子,无数据;

        写是在控制极施加一个大电压,让电子通过隧道氧化层,进入浮栅极;

        擦是在衬底加正电压,把电子从浮栅极吸出来。

为什么闪存可以存储数据?

        因为闪存的存储结构决定,因为浮栅极里面的电子被上下两个绝缘层(上面的氧化层和下面的隧道氧化层)所包围,即使掉电,电子也不会跑出来,所以闪存被作为非易失存储器存储数据。

闪存写的时候为什么要擦除?

        设存储单元在写之前是0,有电子,想把该位从0变成1是不能通过往里面注入更多的电子达到这个目的,只能通过擦除动作实现。

5.1.2 闪存类型

        是将存储单元中电子数量的状态划分的更细来存储更多的数据的。

  1. 比如SLC,使用0~10个电子表示1,51~100表示0;
  2. MLC,就可以用0~5个电子表示11,20~40个电子表示10,50~70个电子01,80~100个电子表示10。MLC存储两位数据,在存储组织上,低位数据和高位数据会存在不同的物理页上,低位数据所在的物理页称LP,高位数据所在的物理页称UP。

        随着存储状态的增多,数据对电子流失会越来越敏感:对于SLC即使表示0状态的51~100电子丢到20个电子,那么也不会进入0~51的1状态;但是MLC如果同样流失20个电子,就有可能从00,变成01状态,在读LP的时候就会读错。

5.1.3 闪存的组织结构

        组成递进关系:存储单元—>闪存页—>闪存块—>Plane—>DIE/LUN

  1. 一个闪存块由m条字线和n条位线组成
  2. 一个字线包含的闪存页取决于每个存储单元存储的数据位数,SLC一个字线包含1一个闪存页,TLC一个字线包含3个闪存页
  3. 假设SLC闪存块有1024个闪存页,字线m=1024。位线的个数取决于一个闪存页有多少位,对于一个16KB的闪存页面来说,位线n=16*1024*8

一个闪存块的所有存储单元共用一个衬底,所以擦除的基本单位是闪存块。读写的单位是闪存页。

5.1.4 擦除、读、写

怎么擦除?怎么确保擦除干净了?

        擦除是在衬底加高电压,控制极加0V电压。闪存内部存在验证过程,读这些存储单元,查看是否在擦除状态,已经在擦除状态的话就结束擦除动作,不是就增加衬底的电压,继续擦除。允许擦除不干净的存储单元的个数取决于厂商的闪存参数。

怎么写入闪存页?

        衬底加0V电压,闪存页对应的控制极加高电压VPRPG,在其他不编程的闪存页的控制极施加一个稍微大的电压VPASS,从而保证当前存储单元是什么状态,这些晶体管都是导通的

什么是抑制编程?怎么实现?

        有个事需要注意下,因为我们在闪存页的控制极统一加了一个较高的编程电压VPRPG,但是有一些需要写1的存储单元,因为在写之前的擦除动作后该存储单元已经是1,所以说其实是无需编程的,否则可能会导致额外的电子进入存储单元

        对于这个问题采用抑制编程的手段解决:在不需要编程的存储单元对应的位线上施加一个高电压VINH来削弱控制极和衬底之间的电场。

怎么读取闪存页?

  1. 在不读取的其他字线的控制极施加一个VPASS电压,确保晶体管无论处于何种状态都是导通的;
  2. 然后给每个字线充电
  3. 接着在字线上根据闪存类型的不同施加不同的读参考电压:如果某个位线放电了,说明该位线所读的存储单元是导通的;如果位线继续保持之前的充电状态,说明该位线上所读的存储单元是截止的。

读操作对闪存的寿命是否影响?

        读操作本身不会对闪存的寿命造成影响,只会影响数据的可靠性(VPASS可能会对其他字线上的存储单元造成轻微编程),但为了解决读干扰的问题,闪存固件算法会引入刷新操作会造成额外的写入,带来写放大,这样就会对闪存的寿命造成影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值