FLASH存储器的测试方法研究
1.引言
本文引用地址:http://www.amcfsurvey.com/article/195793.htm随着当前移动存储技术的快速发展和移动存储市场的高速扩大,FLASH型存储器的用量迅速增长。FLASH芯片由于其便携、可靠、成本低等优点,在移动产品中非常适用。市场的需求催生了一大批FLASH芯片研发、生产、应用企业。为保证芯片长期可靠的工作,这些企业需要在产品出厂前对FLASH存储器进行高速和细致地测试,因此,高效FLASH存储器测试算法的研究就显得十分必要。
不论哪种类型存储器的测试,都不是一个十分简单的问题,不能只将存储器内部每个存储单元依次测试一遍就得出结论,这是因为每一个存储单元的改变都有可能影响存储器内部其他单元的变化(这种情况又是常常发生的)。这种相关性产生了巨大的测试工作量[1]。另外,FLASH存储器有其自身的特点,它只能将存储单元内的数据从“1”写为“0”,而不能从“0”写为“1”,若想实现“0”->“1”操作,只能把整个扇区或整个存储器的数据擦除,而擦除操作要花费大量的时间。FLASH存储器还有其他特性,比如读写速度慢、写数据之前要先写入状态字、很多FLASH只适于顺序读写而不适于跳转操作等,这些特点都制约了FLASH存储器的测试。
为解决FLASH测试中的这些问题,人们提出了应用内建自测试[2]或利用嵌入式软件[3]等测试方法测试相关性能,都取得了比较好的效果,但这些方法大多不适用于利用测试仪进行批量的产品测试。而多数对通用存储器测试很有效的算法,由于受到FLASH器件自身的限制(如不能不能直接从“0”写为“1”),很难直接适用于FLASH测试。
文本在简单介绍FLASH芯片的结构与特点之后,说明了FLASH存储器测试程序原理。在此基础上,分析和改进了几种通用的存储器测试方法,使之能有效地应用于FLASH测试中。这些方法简单高效,故障覆盖率高,并且可以快速预先产生,与其他一些测试算法[4][5]相比,更适于应用在测试仪中进行工程测试。本文分析了这些方法的主要特点,在此基础之上,介绍了实际FLASH存储器测试中应用的流程。
2.FLASH芯片的结构特征
FLASH存储器种类多样,其中最为常用的为NOR型和NAND型FLASH。通常,NOR型比较适合存储程序代码,其随机读写速度快,但容量一般较小(比如小于32 MB),且价格较高;而NAND型容量可达lGB以上,价格也相对便宜,适合存储数据,但一般只能整块读写数据,随机存取能力差。它们对数据的存取不是使用线性地址映射,而是通过寄存器的操作串行存取数据。
一般来说,不论哪种类型的FLASH,都有一个ID寄存器,用来读取存储器信息,可根据供应商提供的芯片资料进行具体的类型判断。另外,FLASH存储器的擦除过程相对费时,且擦除流程相对复杂。图1为FLASH芯片擦除的一般流程。
可见,擦除数据的操作限制了FLASH芯片的工作速度。此外,其他一些特性,比如读写速度慢、写数据之前要先写入状态字、很多FLASH都设有冗余单元等等,这些特点都制约了测试速度的提高。因此,设计合理的方法,或将几块FLASH并测,并且应用测试算法减少测试时间就显得十分必要。
3.系统连接
本文选用的芯片为AMD公司的NOR型FLASH――Am29LV400B及三星公司的NAND型FLASH K9F5608UOB,它们都可通过44 PIN专用适配器和数字电路测试仪的数字通道直接相连。我们所采用的硬件实验平台是北京自动测试技术所开发的BC3192数模混合测试系统,该系统可提供工作速度快,算法图形产生方式灵活,非常适合测试需要。
4.测试实现方法
假设存储器可选址的存储单元数为N,由于存储器芯片每次只能访问一个存储单元,每个单元只有“0”或“1”两种状态,所以所有可能出现的状态共2N种。由于选取的地址又是随机的,所以,当测试步数为M时,选址序列组合可能有2N NM种之多。即使采用全“0”或全“1”两种图案测试,总的测试图形也将有2NM种,这是个巨大的数字。
评论