<option id="saim6"><xmp id="saim6"><acronym id="saim6"></acronym>
<tr id="saim6"><optgroup id="saim6"></optgroup></tr>
<rt id="saim6"><small id="saim6"></small></rt> <tr id="saim6"></tr>
<rt id="saim6"><small id="saim6"></small></rt>
<rt id="saim6"></rt>

闪存数据保存的分析

来源:goldendisk 浏览:1262 发表时间:2021-01-30

来介绍其对闪存数据保存的分析。

image.png

闪存基本单元浮栅晶体管的截面图。最上面是控制层,中间是浮栅层,浮栅上面是多晶硅氧化层,下面是隧道氧化层??刂频缪购芨叩氖焙?,会产生量子隧穿效应,电子从衬底 Substrate出发,穿过隧道氧化层,进入浮栅保存起来,就完成了写操作。反之,在控制层加很强的负电压,电子就从浮栅量子隧穿,回到衬底,这个操作叫作擦除。不过,控制层不加电压的时候,氧层依然会产生一个电场,叫作本征电场,它是由浮栅里面的电子产生的。在这个电场的作用下,电子会从浮栅慢慢泄露,泄漏的多了,数据就会发生错误。从写入操作到电子慢慢泄漏,直到数据出错,这个期限叫作数据保杆期,在SLC时代,这个时间很久,有好几年,但是到了TLC时代,不到一年,有的只有几个月。

那为什么闪存用得越久,数据保存时间越短呢?这要怪一个效应、这就要怪一个效应:Trap-assisted tunneling(TAT)。如图2所示,我们知道隧道氧化层是绝缘的,但是随着闪存的使用,历经很多次的擦写,氧化层和浮栅层的爱情终于要走到终点了,因为经过这么年风风

雨雨,氧化层老了,有不少通过它的电荷被滞留下来,绝缘体有了导电性。这样,电荷从

浮栅跑得就更快了。所以,闪存擦写次数越多,数据保存时间就越短。到最后快到额定擦

写次数的时候,比如3000次,刚写的数据就很容易出错。

不过,氧化层并不总是在截留电荷,有时候它拦截的电荷也会离开,叫作 Charge de-trapping。只不过离开的既有正电荷,也有负电荷,所以对阈值电压的影响是双向的。

那么,怎样解决 Data retention的问题呢?总不能让用户的数据放个几个月或者几年就丟了吧?一般固态硬盘会采用 Read Scrub技术,或者叫数据巡检、扫描重写技术等。

如果你对存储技术有所了解,那么当你看到Scmb这个词的时候,首先肯定想到的是Sun公司开发的大名鼎鼎的ZFS( Zettabyte File System)文件系统。ZFS的设计者发现,有很多用户的数据长期没有读过,更别说被重写了。即使是数据读取频繁的数据库应用,也存在长期不被访问的数据,它们寂寞地躲在角落里,长期无人问津。但是,不管什么类型的磁盘,总是会有概率发生比特翻转,导致数据出错,等你需要这份数据的时候,错误有可能比较严重,根本恢复不出原样。在ZFS文件系统中,每个数据块都有自己的校验码Checksum,只要被读了,就可以通过 Checksum发现数据是否出错,提前对出错的数据块进行纠错。所以,ZFS提供了一个功能叫 Scrub,对文件系统进行扫描,提前发现那些出错的数据,并纠错重写。

固态硬盘的 Read Scrub技术跟ZFS类似,在固态硬盘不忙的时候,按照一定的算法扫描全盘,如果发现某个闪存页翻转比特数量超过一定阈值,就重写数据到新的地方。这样做的好处是避免数据放太久从而导致比特翻转数量超过ECC算法的纠错能力,这样能减少ECC不可纠错误。


溧阳读搜影视文化发展有限公司 广州巨搜信息科技有限公司| 广州渔你所愿酸菜鱼有限公司| 试压泵有限公司| 剪切机有限公司| 上海有盛净化科技有限公司| http://www.goztel.com http://www.xkools.com