闪存误码根源分析及测试(含方法工具)
Bit错误从Nand Flash物理机构上来说是不可避免的问题,Nand Flash受外界工作环境(如:温度、辐照等)和生产工艺、工作原理、存储材料本身的弊端等影响,总会在各种条件下产生错误。误码率是表明在一定条件下产生错误的比率,反映Nand Flash当前的可靠性状态。
产生误码的物理根源
Cell的本身是个浮栅(Floating Gate,以下缩写为FG)结构的MOS型晶体管,工作原理是通过对FG注入或者释放电荷改变存储单元的阈值电压来达到存储或释放数据的目的。Program“0”通过Control Gate施加电压将电荷注入FG、Erase的过程则是施压反向电压,通过隧道效应(以下简称FNT)将电荷拉出FG,隧道效应会因基板表面附近的单一氧化层能陷捕获或者泄露电子产生随机电信号噪音,这种噪音最终导致阈值电压发生偏移。
随着制程的进步,FG之间的半间距(HalfPitch)越来越小,从1995年的360纳米快速缩减到今天的16纳米,这种因制程进步而对CMOS进行不断压缩的工艺,会对Nand Flash的可靠性造成诸多方面的影响,例如,FG中存储的电荷数量减少,34纳米的FG中,大约存100个电子,电荷流失容限约为10个电子,而在19纳米,FG中大约只有10个电子,因此,每流失一个电子都会对阈值电压产生重要的影响。较近的距离也会让各个存储单元之间更容易产生影响,另外,FG在电压和电场的作用下会导致经时击穿(TDDB,与时间相关的电介质击穿)或者电介质老化,从而导致Bit发生错误。
Erase和Program的操作也会导致氧化层收集电荷,这样会影响到cell的阈值电压,当电荷脱井时,阈值漂移,Bit发生反转。
塑封工艺也是导致错误发生的隐患,Nand Flash采用的主要的塑封电路,塑封工艺会存在吸湿、分层、热传导、空洞等问题,因此,操作严格的工厂,在SMT之前都会预先对Nand Flash进行烘烤,目的就是避免芯片吸湿后受热导致芯片破裂或表面鼓泡,当然,芯片破裂是最严重的问题,即使表明没有破裂也会存在内部物理结构损坏的安全隐患。
误码产生的表现
Bit错误会在下面几种情况下产生:
1、擦写操作(P/ECycle)
2、读取干扰(ReadDisturb);
3、编程干扰(ProgramDisturb);
4、数据保持发生错误(DataRetention)。
读取/编程干扰主要是因为对目标Cell进行读写操作时对相邻Cell产生了影响(改变了临近Cell的阈值电压或电场),从而导致相邻Cell数据出现错误。
而数据保存错误则是由于氧化层带了越来越多的残留电荷或者由于漏电流引起cell阈值电压偏移所导致,详细解释请见下面Data Retention部分的介绍。
误码率的测试方法
误码率通常用原始误码率RBER(Raw Bit Error Rate)和不可纠错误码率UBER(Uncorrectable Bit Error Rate)来表达,RBER表示在未经ECC纠正之前的误码率,可以确切反应Nand Flash的初始可靠性状况;UBER则反应在一定长度(codeword)ECC之下的误码率,可以用于评估一定条件下需要使用的ECC强度,UBER的计算公式如下:
1、 写擦操作产生的误码可以通过RBER和UBER来测试,可以对NandFlash按“擦除>写入>对比”的顺序进行测试,通过原始误码率的变化可以判定Nand Flash真实的耐久度。
原始误码率(RBER)和不可纠错误码率(UBER)的具体测试如下:
NFA100-E可以通过简单的设定(如设定4组不同codeword长度的ECC做参考)来获取RBER和UBER的数据。
下图测试结果意思为:该Nand Flash(MLC)的原始误码率为:10^(-5.821),不可纠错的误码率为0(原因是做的P/E cycle太少),SSD一般会要求UBER要达到10^(-15),是否可以达到或者超过10^(-15)主要取决于ECC的能力和算法。
2、编程干扰(ProgramDisturb)
编程干扰一般是由于:Vpass过高、Vpass过低、电容性耦合失效以及过量写入导致。
假设 ,将“11”编程为“10”,对Lower page进行编程需要16V电压,最终,相邻的Cell受到的可能是19V的影响,为什么会出现这种情况呢?
Program实际上是采用增量脉冲编程(Incremental step pulse programming,以下简称ISPP)方式,因为每个Cell的状态不同,对于状态非常良好的cell来说,也许只要一次加压就可以完成Program过程,但对于状态不好的cell来说,可能需要增加电压来完成Program,增加的电压值将被分解为多个子步骤,每次增加一点点电压,然后用Vread判定是否达到目标电压,例如,Vread为20V,那么对“10”的upper page施压的电压最高不能超过19V(Vread>Vth),从正常需要的16V到19V假设每个step增加200mV,那么需要15次才能完成Program。如果以最坏的情况来看,这样的结果事实上是导致临近的cell受到19V影响,数据更容易出现错误,一些“坏”的cell会将邻居也带“坏”。
测试Program Disturb的方法就很简单了,只需要对指定Block进行基本的常规的Erase、Program和Read操作,NFA100-E就可以迅速得出结论。
3、数据保持错误(DataRetention)
Data Retention是有两种原因造成:
1.Data Retention的错误根源是FG的经时击穿TDDB(timedependent dielectric breakdown)导致了低场漏电流变的越来越大,漏电流的变大又导致Cell保存阈值电压转移能力的变弱,从而产生Data Retention的出错。
2.Data Retention的另一种原因就是前文所述的,Erase和Program的操作也会导致氧化层收集电荷,这样会影响到cell的阈值电压,当电荷脱井时,阈值漂移,Bit发生反转。
原理上讲,如果Cell的电压完全失去(低于0V),那么DataRetention错误最终结果是这个cell数据会变成“11”,既:“10”,“01”,“00”最终变成“11”。
Data Retention的测试方法可以参考JEDEC标准,使用NFA100-E可以提供两种测试方法,1、直接使用DataRetention界面按步骤进行测试(如下图示);2、用Error Rate的测试方法,在室温下用NFA100-E对Nand Flash进行1000次P/E,然后写入一个伪随机数,将Nand Flash放入120°C温箱,34分13秒后取出,用NFA100-E Read Only模式验证Error Rate,依次做此类循环,没有Error Rate发生就表示数据可以保存一年。
4、读取干扰(ReadDisturb)
读取操作同样会导致相邻cell的错误,原因是读取操作是通过对选定的page施压0V电压,而对非选定page施压5V电压,通过cell的源极到漏极之间是否有电流导通来判断cell中是“0”还是“1”,如果有电流导通说明cell阈值电压低于所施加电压,数据为“1”,如果没有电流导通,说明cell阈值电压高于所施加电压,数据为“0”。
因此,读取的操作会造成未被选取的cell形成某种意义上的编程操作,导致其阈值电压向增高,从而导致bit翻转。
温度对误码率的影响
高温和低温对误码率的影响很大,根据本人测试,低温对误码率的影响要高于高温,下图为常温下(20°C)RBER为10^(-5.902)的MLC在-45°C条件的误码率为10^(-5.259):
浅谈Flash芯片及其测试(一)
5G网络、各种双摄,三摄,多摄、VR、AR、大数据等等概念的兴起,无不预示着一个数据爆炸的时代的到来。随之而来的问题,就是如何去存储这些数据。或者说,这么多数据存到哪里。通常来说,最简单直接的就是存到自己的手机里。大家买手机时经常考虑的容量多大(非RAM),其实也就是手机自带的Flash芯片的存储容量有多大。
存储芯片应用越来越广
首先,我们来了解一下什么是flash芯片。
Flash芯片是一种非易失存储器的一种。非易失存储器的意思就是设备或者芯片断电以后,其中存储的数据不会丢失,有待再次通电之后就可以再次读出。
其他的非易失存储器如ROM,EEROM等对于大家来说接触得比较少。其实,Flash的内部电路结构和其他非易失存储器都很相似。但是因为Flash具有良好的读写速度,所以被广泛应用于民用电子产品中。
除了手机里的Flash芯片,大家接触到的最多的产品就是U盘和SSD固态硬盘。U盘本身的存储器件就是Flash存储颗粒,而把许多Flash存储颗粒按照一定的方式和协议并联、串联起来,再加上控制单元,就是大家所常用的SSD固态硬盘了。因此,Flash的应用范围和市场是非常广泛和庞大的。
那么,Flash芯片是如何把数据存储下来而不会丢失呢?
和通常意义上的场效应管不同。在控制栅和导电沟道之间增加了一个浮置栅。也就是下图中红色部分。这一浮栅可以存储电子,同时浮栅又与周边各电极都处于绝缘状态。当芯片没有通电的状态下,电子就相当于被锁在了这个浮置栅之中。
所以,Flash存储数据的实质就是将电子存入浮栅晶体管。浮栅之内是否有电子存在也就对应着二进制的0和1。
大家可能有疑问,既然这个浮栅的四周都是绝缘的。那是如何把电子导入或者取出的呢?其实,这个就是利用了量子力学中的量子隧道消音。有兴趣的同学可以自行去百度。哈哈。
图中红色部分就是浮栅
浮栅晶体管的符号
了解了Flash的存储物理机理后,我们再来看一下存储结构。
根据浮栅晶体管的连接方式的不同,可以分为NAND Flash和NOR Flash。这两种类型的存储原理都是一样的。但是因为电路设计的不同,具有了不同的特性以及应用方向。
NAND Flash,结构简单,单位面积上存储的数据密度大,适合存储数据使用,但是不能在这种Flash上直接运行程序,需要先把数据读到RAM中再进行执行。
NOR Flash,结构略微复杂,单位面积上存储的数据密度要小于NAND Flash。但是操作灵活,可以在这种FLash上直接进行运行程序,不需要先读金RAM里再进行执行。
NAND Flash和NOR Flash
再接下来,我们就能明白一个Flash存储颗粒是如何划分数据的存储区域了。
举个栗子,下面是一个2Gb的Flash的容量结构图。
可以看到,最基本的存储单元是1个Byte(也就是8个bits),2048个Byte组成了1个page,64个page组成了一个Block,2048个Block也就是一颗Flash芯片的存储大小。
一颗Flash的存储单元的划分
在了解了这些基础知识之后,再下一篇文章里将更加深入的了解Flash的内部存储机理,浮栅里的电荷是如何转换成数字的“0”和“1”的。什么是SLC,MLC,TLC。这些将为更好的测试Flash打下基础。
相关问答
flash检测 是什么?FlashPlayer拥有3个不同版本,即Activex、PPAPI、NPAPI,它们分别支持不同内核的浏览器。用户安装相匹配的版本后才能正常使用Flash,安装版本不匹配是Flash用户...
flash 类型怎么选择?在选择Flash类型之前,需要考虑以下几个因素:1.存储容量:Flash存储器通常有不同的容量规格,从几MB到几TB不等。因此,你需要根据自己的需要来确定所需的存储...
flash 应用需求分析?需求分析是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统...
NAND Flash 和Nor Flash 到底有什么区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
nandflash norflashmcpflash的区别?norflash的存储区是连续的支持连续烧录,nand不支持连续烧录,其存储区不是连续的。nor出厂可以保证是好的,不存在坏块;nand可能存在坏块。其他的区别网上可查...
Nand Flash 和Nor Flash 有什么区别?求解?1、写入/擦除操作的时间不同【nandflash】:擦除NAND器件以8~32KB的块进行,执行同一写入/擦除的操作时间为4ms【norflash】:擦除NOR器件是以64~128KB的块.....
Serial flash 和nor flash nand flash 有什么区别?NandFlash擦除很简单,而NorFlash需要将所有位全部写0(这里要说明一下,Flash器件写入只能把1写为0...性能差别:对于Flash的写入速度,其实是写入和擦除的综合速...
谁能告诉我存储器dataflash norflash nandflash EEPROM这些的区别啊?norflash,nandflash,EEPROM都是些非易失性存储器,它们都是基于悬浮栅晶体管结构,但具体实现工艺上有差异。EEPROM:(ElectricallyErasableProgra...
512M NANDFLASH 是啥意思?扩充(展)内存的意思吧.应该是指你的机扩充(展)了512M的内存.或者最大可以扩充(展)512M内存扩充(展)内存的意思吧.应该是指你的机扩充(展)了512M的内存.或...
emmc芯片丝印怎么看?EMMC芯片的丝印通常用于标识芯片的相关信息,包括品牌、型号、序列号等。要看EMMC芯片的丝印,首先需要找到芯片正面或背面上的小区域,这通常是一个矩形或正方形...