在上一篇里我们讲了Flash芯片的基础知识。在这一篇里我们将更加深入地了解Flash的存储原理。这样才能更好地测试它。

首先,需要了解一下Flash都有哪些基本操作:

  1. 读取数据
    1. 从存储单元里读取数据。
  2. 写入数据
    1. 将存储单元的逻辑状态从“1”转变为“0”。
  3. 擦除数据
    1. 将存储单元的逻辑状态从“0”转变为“1”。

这些基本操作也就是我们日常常用的一些功能。在我们从U盘拷贝,写入,格式化的时候都会用到。但是你知道这些操作在晶体管层面上是什么样的状态吗?

首先,我们来了解一下写入数据(program)。

如下图所示,所谓的program,就是将电子导入进浮栅之中。此时晶体管的源极会接地平面,漏极会接入一个较小的电压。而控制栅极会接入一个较大的电压。此时,从地平面上提供而来的电子就会由于栅极和漏极的电压而产生电子移动。因为栅极的电压更高,所以更倾向栅极方向。此时,电子就可以凭借量子隧道效应或者热电子注入的技术进入浮栅之中。

flash芯片的分类(浅谈Flash芯片及其测试)(1)

数据写入(program)

其次,我们再来了解一下擦除数据(erase)。

如下图所示,所谓的erase,就是把电子从浮栅之中取出来。使得浮栅之中没有多余的电子。可以看到图中此时的源极连接了一个较大的电压,而栅极却接入了地平面。

flash芯片的分类(浅谈Flash芯片及其测试)(2)

数据擦除(erase)

最后来看一下读取数据(read)。

此时就可以把浮栅晶体管当做正常的晶体管来对待了。给源极,栅极,漏极加上合适的电压。根据源极和漏极之间的电流大小就可知道浮栅之中是否存有电荷了。

  1. 如果浮栅之中有电子,则栅极的电势会被浮栅之中的电荷所抵消或削弱。此时,源漏极之间的导电沟道就会变小,源漏极之间的电阻变大,电流变小。数据读出电路就会判定此时该存储单元内的数据为“0”。
  2. 如果浮栅之中没有电子,则栅极的电势就没有被抵消或者削弱。该电势会直接作用到源漏极之间的导电沟道上。此时,导电沟道会变大,源漏极之间的电阻变小,电流变大。数据读出电路会判定此时该存储单元内的数据为“1”。

flash芯片的分类(浅谈Flash芯片及其测试)(3)

导电沟道

flash芯片的分类(浅谈Flash芯片及其测试)(4)

读出电路

综上所述,Flash的写入操作,其实质是电荷的在浮栅之中的转移。而且Flash的写入操作并不是一次完成的。需要先进行擦除操作使得存储单元为“1”(一般情况下都是以page为单位进行操作,即一次性erase当前page的所有存储单元),然后再进行写入操作,将“0”写入进去。

而在数据的读取过程,其实质是对电流大小的判断。当电流大于某个设定值的时候,读取电路判定该存储单元为“1”,当电流小于设定值的时候,读取电路判定该存储单元为“0”。

但是这种一个单元只存储一个bit 的做法很不经济。单位面积里存储的数据太少了。所以,工程师们就为读出电路设计多个比较器。使得电流的测量更加精细化。比如说,设计3个比较器,这样就能对电流进行更多的量化,从而得出更多的数据。也就变相的增加了数据存储密度。这也是市面上为什么TLC的面积并不比MLC的大,却能存储更多的数据的原因,而且价格也不高。但是很显然,使用寿命上来说,肯定是SLC>MLC>TLC。

flash芯片的分类(浅谈Flash芯片及其测试)(5)

增加比较器和设定不同的参考电流,就可得到更多的数据

至此,Flash基本的原理和概念就讲得差不多了。下一讲中,将会讲到跟Flash测试相关的概念和内容。

,