闪存的基础知识3-阈值电压(Vt)分布

发布时间:2024年01月16日

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

系列文章目录

前言

一、存储的概念?

二、闪存的优势

总结



前言

Vt其实是一个人造的概念,它有一定的物理意义,但依旧是在一系列的限定条件中被定义出来的。那么就有一个简单的思考,我们定义Vt的目的究竟是什么?—— 在闪存的应用中,定义Vt的目的很简单,就是为了区分0和1。

?

一、存储的概念?

在以二进制为基础的信息技术中,任何具有“双稳态”,能够明确区分0/1的材料、器件、甚至物品,都可以用来代表二进制的逻辑0和逻辑1。上古时代的结绳记事也可以用来区分0和1,比如一根绳子,每隔一段如果打结的话,可以定义成1,不打结可以定义成0。上世纪60年代的计算机所使用的打孔纸带也是一样,每隔一段打孔定义成1,不打孔定义成0,这样就能够对二进制进行存储了。

二、闪存的优势

闪存有其巨大的优势,由于它的Vt可以被调节,因此能够通过不同Vt构造闪存单元的双稳态(SLC),甚至构造多稳态(MLC/TLC/QLC...)来存储二进制信息。以SLC而言,闪存的双稳态,就是相对稳定的编程态(高Vt)和相对稳定的擦除态(低Vt)。一般定义编程态为0,擦除态为1。

然而编程态和擦除态的Vt,也只能用“高”或者“低”来大致框定,而无法赋予其唯一固定的绝对数值。也就是说,我们可以定义“Vt>2.5V的所有闪存单元处于编程态”,而不能说“闪存单元在Vt=3V 时是编程态”。原因很简单,我们无法做到让任意两个闪存单元的晶体管都具有相同的Vg-Id曲线,也无法做到在编程、擦除时对所有闪存单元注入、抽取相同数量的电子,这些物理机制,在自然界里都有一定的随机性。因此,闪存单元的Vt会在某一个目标范围里浮动。比如对于目标是3V的编程态而言,最终一个闪存单元在完成编程后,它的Vt可能是3V,也可能是2.9V或者3.2V。而当大量的闪存单元都是以3V为目标作编程,其编程结果,就是这些闪存单元的Vt会在统计上形成一个以3V为中心的概率分布。

如果在编程后,测量数个闪存单元的Vg-Id曲线,可能会看到下面的情况?

每个闪存单元的Vg-Id曲线都有差异,有些差异从图形上看是曲线的平移,有些差异从图形上看则是曲线斜率不同。若将上面的Vt画成概率分布图,则可得到?

其中每一个黄色的圆点代表一个闪存单元。

在目前主流的闪存应用中,一般一个码字(Code Word)不计冗余的话大约在4KB,即4x1024x8 = 32768个bit,需要32768个Vt来表征。若其中一半是编程态,也就是有16384个Vt需要落在3V左右。其概率分布用直方图来表达,大致可以画成?

基于闪存的编程原理,这是一个看上去很像正态分布,但实际却非正态的概率分布。在之后的编程原理中,如果有篇幅,我们可以谈谈为什么这个分布非正态。

相对应的,若以1V为目标做擦除,那么擦除态就会是一个在1V左右的概率分布。把它和编程态的Vt分布画在一起,就会得到,

我们就有了两个相对独立的Vt分布,一个高,一个低。只要通过合适的手段,比如放置一个1.5V的比较电压(Vref),去判断任何一个闪存单元的Vt相对于比较电压的高低,就能够获得这个单元所存储的0/1数据。现在的闪存技术,已经从SLC发展到了QLC甚至PLC。以SLC/MLC/TLC为例,将它们的Vt分布画出来,大致上是

?可以比较容易地看出,随着每个闪存单元需要存储bit数的增加,每个“稳态”Vt的分布就越来越集中,相邻两个“稳态”之间的“间距”也会越来越小,留给比较电压作辨析的空间也就越来越小。


总结

事实上,整个闪存业界对Vt的控制,就是围绕着两个目标进行的:

1)怎么让各“稳态”足够稳定,分布足够集中

2)怎么让各“稳态”之间保持足够的间距,使得Vref能够精确的辨析出闪存单元处于哪个稳态

许多闪存单元的物理机制、闪存可靠性需求和性能需求都会强烈影响到Vt分布和Vref的辨析能力,

文章来源:https://blog.csdn.net/whm128/article/details/135632769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。