您当前的位置:首页 > 养生 > 内容

FLASH存储器测试程序原理和几种通用的测试方法

FLASH存储器测试程序原理和几种通用的测试方法

介绍

随着移动存储技术的快速发展和移动存储市场的迅速扩大,闪存的数量也在迅速增加。FLASH芯片非常适合移动产品,因为它的便携性、可靠性和低成本。市场需求催生了一大批闪存芯片R&D、生产和应用企业。为了保证芯片的长期可靠工作,这些企业需要在产品出厂前对闪存进行高速仔细的测试。因此,有必要研究高效的闪存测试算法。

无论考什么样的记忆,都不是一个很简单的问题。我们不能只对存储器中的每一个存储单元依次测试一次就得出结论,因为每一个存储单元的变化都可能影响其他存储单元的变化(这种情况经常发生)。这种相关性导致了巨大的测试工作量。另外,闪存也有自己的特点。它只能将存储单元中的数据从“1”写入“0”,而不能从“0”写入“1”。如果要实现“0”到“1”的操作,只能擦除整个扇区或者整个内存的数据,擦除操作需要花费大量的时间。闪存还有其他特点,比如读写速度慢,先写状态字再写数据,很多闪存只适合顺序读写,不适合跳转操作。这些特性限制了闪存的测试。

为了解决FLASH测试中的这些问题,人们提出了一些测试方法,如内置自测或嵌入式软件来测试相关性能,取得了很好的效果,但这些方法大多不适合用tester进行批量产品测试。但是,大多数对一般内存测试有效的算法,由于FLASH设备的限制(比如不能直接写“0”到“1”),很难直接应用到FLASH测试中。

在简要介绍了FLASH芯片的结构和特点后,阐述了FLASH存储器测试程序的原理。在此基础上,对几种通用的内存测试方法进行了分析和改进,使其能够有效地应用于FLASH测试。这些方法简单、高效、故障覆盖率高,并且可以提前快速生成。与其他测试算法相比,它们更适合在测试器中进行工程测试。本文分析了这些方法的主要特点,并在此基础上介绍了实际闪存测试的应用过程。

2.2的结构特征。闪存芯片

FLASH有很多种,其中NOR和NAND FLASH是最常用的。一般NOR类型适合存储程序代码,随机读写速度快,但容量一般较小(例如小于32 MB),价格较高。而NAND型容量超过lGB,价格相对便宜,适合存储数据。但它只能读写一整块的数据,随机存取能力差。它们不是使用线性地址映射,而是通过寄存器的操作来串行访问数据。

一般来说,无论什么类型的FLASH,都有一个ID寄存器来读取内存信息,具体类型可以根据供应商提供的芯片信息来判断。另外,闪存的擦除过程相对耗时,擦除过程相对复杂。图1显示了闪存芯片擦除的一般过程。

可见擦除数据的操作限制了FLASH芯片的工作速度。此外,还有一些其他的特性,比如读写速度慢,写数据前先写状态字,很多FLASH里有冗余单元等。这些特点都制约了测试速度的提高。所以需要设计合理的方法,或者并行测试几个FLASH块,应用测试算法,减少测试时间。

3.系统连接

本文选用的芯片是AMD的NOR FLASH——Am29LV400B和三星的NAND FLASH K9F5608UOB,可以通过44针专用适配器直接连接到数字电路测试仪的数字通道。我们采用的硬件实验平台是北京自动测试技术公司开发的BC3192数模混合测试系统。该系统能够提供快速的工作速度和灵活的算法图生成,非常适合测试需求。

4.测试实现方法

假设存储器中可寻址存储单元的数量为N,由于存储芯片一次只能访问一个存储单元,并且每个单元只有“0”或“1”两种状态,因此有2N种可能的状态。因为选择的地址是随机的,所以当测试步数为m时,地址序列的组合可能多达2N NM。即使使用全“0”或全“1”模式进行测试,总的测试模式也将是2NM,这是一个巨大的数字。

为了有效地测试存储芯片,需要对半导体存储器的结构进行分析,确定并选择几种能有效测试存储功能的模式,这样既能达到测试目的,又能将测试数量限制在允许的范围内。但在实际应用中,由于每种测试模式都有其局限性,而且各个厂商、各种类型的存储器的特点也不完全一致,因此目前还没有一种最好的统一测试方法。

根据FLASH芯片的特点,我们主要改进和使用以下方法:

4.1奇偶校验图测试方法

奇偶校验模式检查法是一种更适合内存测试的方法。在奇偶校验模式检查方法中,写入存储单元矩阵的数据模式取决于存储单元地址码的奇偶性。如果存储单元的行地址码和列地址码中有偶数个1,奇偶性为0,则在存储单元中写入“0”(或“1”);如果有奇偶性为1的奇数个1,则在存储单元中写入“1”(或“0”);存储在存储单元矩阵中的信号数据将是行地址码和列地址码的异或关系,其算法如下:

其中Pr是行地址的奇偶性,Pc是列地址的奇偶性。

对FLASH芯片的奇偶图形进行功能检测的过程如下:首先根据算法写入背景图形,然后逐位读出并检查结果的正确性,然后擦除芯片数据,用反码图形重复上述测试过程。测试步骤的总数为M=4N。

由于奇偶校验模式是非对称的,任何一位的地址译码器的故障都会导致本应该用相反的代码写入数据的两个存储单元中的一个被重复寻址,第二次寻址会改变第一次寻址中写入的内容,而另一个存储单元不会被访问。因此,地址奇偶图可以很好地检查地址解码器的故障。

奇偶图形是每次写入整个存储单元后才读出的,没有重复的擦除过程(整个过程只需要擦除两次),非常适合FLASH芯片测试。

4.2同步方法

步骤[6]是依次检查存储器的每个单元的方法。首先,从第一个存储单元开始,逐个取反检查每个单元,完成一次扫描,直到检查完最后一个单元。然后,当背景是负码时,从第一个存储单元开始,逐个否定和检查每个单元,直到完成最后一个单元检测。整个过程就像所有的单元一起往前走,所以叫“分步法”。我们根据FLASH芯片的特点,改变逆向代码背景下的行走过程,进行如下变换,形成合适的同步算法。

测试FLASH同步方法的测试流程如图2所示:

在测试之前,每个存储单元具有信息“1”。首先在内存矩阵中写入背景图案(初始状态全为“1”),然后寻址A0读取“1”,写入“0”读取“0”,检查读取结果。然后,依次对下一个地址单元重复操作(读“1”,写“0”A=N-1读“0”),直到所有的存储单元(A=N-1)都重复。在再读取操作模式中,所有存储单元被正向扫描和读出,并且检查正向和反向的多重写入问题。然后,存储器输入被擦除,使得所有单元都是“1”。然后开始反向扫描:从最高地址AN-1开始读“1”,写“0”,读“0”,逐位进行上述操作,直到最后的地址为AN-1。最后,在所有存储单元上执行读取“0”扫描,以检查读取结果的正确性。

使用这种测试算法来测试存储芯片,可以访问每个存储单元。既能保证每个存储单元能存储“1”和“0”数据,又能保证每个存储单元被周围其他单元读“1”、读“0”和写“1”、“0”所干扰。逐步方法的测试步骤总数为:

在公式(3)中,W表示写操作,R表示读操作,Q表示“1”和“0”。Bij表示存储器的第I行和第j列中的存储单元。例如,WBij(Q)表示将“1”写入行I和列J中的存储单元所花费的时间.

从公式(3)可以看出,测试步数为9N,整个过程只需要两次擦除操作,是一种快速有效的方法。

4.3移动反演法

移位反转测试法是将每个地址存储单元的数据依次反转的方法。它需要读出反转前后每个存储单元的数据。此外,它还必须通过正向和反向地址寻址序列来产生地址跳转。地址以20、21,2n-1次方(n是地址位数)。按照上述规则跳地址后,对每个地址进行读、写、读三个操作,完成一个循环。

上述操作的目的是在地址之间产生有效的相互干扰。但显然,如果上述操作以整个芯片为单位,数据需要多次擦除。所以FLASH测试芯片要做如下改进:以扇区为单位完成运算。假设FLASH芯片有N个扇区,移位反转法的功能测试首先要写所有的存储单元,以“1”为背景图案。首先,在第一个扇区中,读取A0存储单元并验证为“1”,然后将该存储单元重写为“0”,最后读取该存储单元的信息,以证明新写入的“0”仍然存在于该存储单元中。第一扇区的测试地址增加20个有效位的数量级,对每个存储单元重复上述读“1”、写“0”和读“0”的操作过程,测试步长为3n(n是该扇区中存储单元的数量)以使所有存储单元变为“0”。此测试的地址序列递增1,即从最低地址A0到最高地址A (n-1),通过读取“1”、写入“0”和读取“0”来验证A (n-1)存储单元。

对于第二个扇区,使用下一个地址顺序21作为地址增量的变化,并且每次使用不同的地址位作为最低位(分别是第0位和第1位),使得地址在该增量中通过所有可能的地址变化。因此,所有地址的存储单元在测试过程中被测试一次。

然后,22,24…2N依次作为地址增量,重复上述过程,每完成一个周期就产生一个循环进位。

由于每个扇区的大小不同,移动求逆方法函数测试模式的步长为3n(n为扇区存储单元的最大数量)。基于扇区的测试实际上是一种对芯片功能的随机测试,因为它不会重复干扰每个单元访问的数据来验证其地址线之间信号变化的影响。然而,这种方法对每个扇区中的相邻地址线进行随机测试。由于每个扇区的结构基本相同,所以这种随机测试很有代表性,测试时间减少了一个数量级。

移动反转测试模式是一种很好的折衷测试方案。因为它几乎具有各种测试模式的最佳特性,所以可以用较少的测试步骤测试尽可能多的存储单元之间的交互。在具体程序中,通过顺序选择地址并写入这些地址来产生“1”字段到“0”字段的变化,并且在两次读取之间有一次写入操作。移动反演测试包括功能测试和动态测试。功能测试确保被测试的存储单元不会受到读取和写入其他存储单元的影响。动态测试预测最坏和最好条件下的获取时间,并预测地址转换对这些时间的影响。

这种测试方法很容易实现。它基于skip算法,通过改变skip的长度来降低算法的复杂度。移动反转测试是一种具有良好的功能测试和动态测试特性的测试模式,测试时间短,在很多情况下都有很好的效果。特别是对于大容量存储器的测试,这种方法特别有效。

移动反演方法可以进一步扩展,即可以用移动反演来处理数据。以芯片为32位总线为例。首先将0xAAAAAAAA写入存储器的每个单元,检查并擦除,然后将0xCCCCCCCC写入存储器,检查并擦除,然后依次写入0x f 0f 0f 0f 0f 00 ff 00,0x00FF00FF,0x0000FFFF,0xFFFFFFFF,0x0,这些都在检查中。其原理与地址移位反转相同,此处不再赘述。

4.综合运用测试方法和流量测试。

以上,从算法的角度提高了FLASH芯片的可测性。虽然NOR和NAND FLASH的结构不同,但上述算法都可以通过计算顺序生成测试图形,因此可以用于上述两类器件的测试。

以上三种方法各有优点,在实际应用中可以结合使用。地址奇偶模式测试最方便高效,因为在写模式的过程中每次只改变一条地址线,写的是相反的数据。因此,如果任何一条地址线短路,都会立即检查出来,这种方法最适合检查地址译码器的故障。该同步方法适用于检查多个地址选择和解码器的故障,并且可以检测写入期间噪声对存储器芯片特性的影响。它可以确保正确的地址解码和每个存储单元存储“1”和“0”信息的能力。在大多数生产测试中,这两种方法的结合可以识别绝大多数闪存故障。当然,不同厂商生产的芯片在结构和工艺上是不一样的,所以出现各种错误的概率也是不一样的,可以根据实际情况调整方法。由于设计问题,一些芯片可能会有其他不常见的错误,这需要更详细的测试。这时候用移动倒置测试法比较合适。该方法可以很好地测试芯片的动态误差,并可以根据具体需要扩展测试或简化测试,对于产品性能分析非常有效。

在具体的程序设计中,为了简化算法执行,读取产品模型和调用读写命令的语句可以作为子程序存储在测试仪中,每次需要时可以无缝调用。

在测试的过程中,最耗时的操作就是程序擦除,往往一次需要几秒钟。解决方法是分别处理擦除过程。在实际应用中,可以使用两个测试器,其中几个芯片在擦除期间并行运行。这样,当一个器件用于读写和测试,另一个器件用于擦除数据时,可以有效地形成流水线操作,大大节省测试时间。另外,几种方法的综合使用也有助于提高故障覆盖率。

5.实验结果

根据以上思路,我们在国产BC3192测试系统平台上测试了AMD的NOR FLASH——Am29LV400B和三星的NAND FLASH——9F5608UOB。实验表明,与传统的基于棋盘的测试模式相比,奇偶校验法、分步法和移动求逆法生成的测试模式具有更高的故障覆盖率。由于这些算法最多只有两次芯片擦除操作,测试时间完全可以满足工程测试的需要。其中,移动反演法没有擦除操作,所以测试速度最快。实验中,我们采用上述三种方法中的任意一种,按照流水法进行测试。在相同的故障覆盖率下,测试效率可以提高40%以上。

6.结论

本文是在传统存储器测试理论的基础上对闪存进行测试的一种尝试。该方法保留了传统方法的优点,解决了测试闪存的困难。该方法方便快捷,工艺简单。所有的测试模式都可以由教师创建,这样就可以直接加载到测试仪中,有利于直接应用到测试仪中进行生产测试。

标签:测试地址芯片


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 联想z500驱动下载官网(联想Z500-ifi H电源管理,调节亮度驱动在哪下载)

下一篇: 咖啡机十大品牌(商用咖啡机十大品牌是哪些)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号