NAND FLASH测试设计及使用探讨

2018-09-14 11:31北京振兴计量测试研究所张金凤马成英
电子世界 2018年17期
关键词:管脚出厂存储器

北京振兴计量测试研究所 杨 超 张金凤 马成英

1.引言

近年来,随着各种应用系统对存储容量的要求不断增加,NAND FLASH作为一种新兴的半导体存储器,以其高密度、大容量、高数据存储速率以及更多的擦除次数等特点得到了迅猛发展,并广泛应用于各个领域[2]。但是由于生产工艺和材料等问题,NAND FLASH存储器不可避免的会出现坏块。坏块的出现给测试和使用都带来了极大的挑战,本文将以MT29F64G08AJABAWP-IT为例,详细介绍NAND FLASH的测试并且对其使用进行探讨。

2.NAND FLASH简介

NAND FLASH是非易失性存储器,其基本存储单元是块(block),每块又由若干页(page)构成。其中,最小读写单元是页,最小擦除单元是块。在对一页进行编程之前,需要先将该页所在的块进行擦除操作。NAND FLASH在出厂时存在少量的坏块,厂家会对坏块进行标注,方便用户在使用过程中对其进行识别;在测试和使用过程中同样会产生新的坏块,元器件可靠性机构应当对坏块进行识别和回写,用户应进行坏块管理以跳过坏块,从而避免存储数据丢失。

NAND FLASH主要供货商是SAMSUNG和MICRON两家公司,其内部结构大同小异,分为16位和8位两种数据形式,地址线、数据线、命令线分时复用,串行工作方式,需要特定的控制命令以执行相应的操作。本文所选用的MT-29F64G08AJABAWP-IT具有16384个blocks,每个块由128个pages组成,每一页包含(4096+224)个bytes,其中224个冗余字节,用于存储配置信息;共64GB存储空间,数据存储格式为8位;TSOP封装的器件共48个管脚,除了8个复用的IO口,还有部分控制管脚和电源管脚,其余管脚悬空即可。

3.NAND FLASH测试设计

3.1 NAND FLASH与普通存储器测试的异同

NAND FLASH是存储器器件,与以往测试的SRAM、EEPROM和NOR FLASH一样,测试时要对所有存储阵列进行写入、读出、数据对比,读出数据与写入数据相同证明存储器功能完好;写入数据的格式决定于选定的测试算法,不同的测试算法具有不同的测试故障覆盖率;NAND FLASH是非易失性存储器,写入之前要对存储器进行擦除,测试过程中要像NOR FLASH一样对NAND FLASH进行擦除。

普通存储器只要有一处读出的数据与写入的数据对比不一致,则可判定为器件功能失效,测试终止即可;NAND FLASH内部存储阵列允许存在少量的坏块,当读出数据与写入数据对比不一致时,不能判定为器件不合格,而是应该跳转到下一个存储块继续进行测试,在测试过程中需要多次进行判定和跳转。所以不能使用随机图形向量法对NAND FLASH进行测试,而要使用软件语言与测试图形相配合,实现多次判定和跳转。

3.2 NAND FLASH总体测试设计

总体测试设计思路见图1,测试时首先读出芯片的ID,与技术手册进行比较,如果一致继续测试,不一致则芯片不合格,停止测试。NAND FLASH出厂时存在少量坏块,厂家出厂时会对坏块进行标注,即在本块第一页或者第二页第一个冗余字节写入00。在测试时需要首先对每一块的该字节进行判定,如果是00,证明该块出厂时被标注为坏块,坏块数量寄存器加1,跳转到下一块进行测试,此时切忌对被厂家标注的坏块进行擦除,因为擦除操作会将厂家的坏块标识清除;如果是FF,证明该块出厂时是好块,需要进行测试。

测试过程中逐块对NAND FLASH存储阵列进行验证,测试过程包括整块的读写和擦除,如果发现出厂时未被标注的坏块,测试系统对坏块地址进行存储。待完成整片测试之后,对坏块数量进行统计,如果坏块数量满足技术手册要求,证明芯片合格;此时若存在出厂未标注的坏块,对坏块信息进行回写,回写方式同出厂标注方式,即在该块第一页或者第二页第一个冗余字节写入00,便于用户进行统一识别。

图1 NAND FLASH总体测试设计流程图

3.3 测试图形算法的选择

需要注意的是,上图中为了避免过于繁琐,只将一种测试图形算法的读写和擦除操作体现在图中,实际测试过程中,需要对故障覆盖率和时间复杂度进行综合考量以决定选用何种测试算法,必要时还需要几种测试算法联合进行测试。常用的测试图形算法包括两大类:测试时间复杂度为N的全0,全1,随机数,棋盘格,反棋盘格,对角线等测试算法;测试时间复杂度的为N2的步进,走步,跳步等测试算法。不同的测试算法能够检测出特定的故障,时间复杂度高的测试算法故障覆盖率相对较高。本课题选用的芯片是串行工作模式,8位数据端口分时寻址64GB的存储空间,采用时间复杂度为N的测试算法对芯片进行全片写入,预计时间在400s左右,所以即使采用N2测试算法具有较高的故障覆盖率,对于量产的元器件可靠性机构来说并不适用。最终决定使用全0,随机数,棋盘格,反棋盘格,等四种N型测试算法联合对芯片进行测试,可以覆盖固0,固1,地址译码故障,短路、开路等常见的存储器故障,实际对第N块的测试流程如下图所示,在测试时间允许的范围最大程度的增加了故障覆盖率,可以达到良好的测试效果,有效剔除不良芯片。

图2 第N块测试算法流程图

3.4 测试中需要注意的问题

根据以上的测试设计,可以完成对NAND FLASH的测试,但是在实际开展NAND FLASH测试过程中,需要注意特别以下几点:

NAND FLASH串行工作方式;其8位IO管脚是地址、数据、命令分时复用的管脚,对芯片进行写入、读出、擦除等操作时需要预先写入命令控制字,随后写入地址和数据,具有复杂而严格的时序。如何利用8个分时复用的IO口和若干控制管脚有序的寻址64GB的地址空间,是测试中的一个难点。

因为有坏块的存在,测试中需要实现多次的判断与跳转,不能够使用随机图形向量法进行测试,所选用的测试系统必须具有数字向量图形发生器或者BBM模块,并且软件编程语言与测试向量紧密结合实现跳转和判断。

选用多种测试算法对NAND FLASH联合进行测试,测试时间大幅度增加,如果测试系统允许,应尽可能实现并测以节省时间成本。

4.NAND FLASH使用探讨

测试过程中遇到坏块需要跳转到下一块继续进行测试,在使用过程中,为了保证数据的完整性和连续性,同样需要对坏块进行管理,其中主要包括以下几点:(1)坏块映射向量表的建立;(2)坏块映射向量表的更新;(3)坏块的跳转。本文选用的MT29F64G08AJABAWP-IT具有16384块,每个块由128页组成,每一页包含(4096+224)BYTE。由于MICRON公司保证地址为00的块是好块,所以选用第0块的0-3页作为坏块映射向量表,每一个BYTE的数据对应一个BLOCK;为了防止数据丢失,4-7页作为备用坏块映射向量表。

4.1 基于跳块的坏块处理

基于跳块的坏块处理,顾名思义,就是遇到坏块即跳过,跳到下一个可以保证读写正确的好块进行操作。使用之前,建立初始化坏块映射向量表:首先对第0块执行擦除操作,主控制器逐块对NAND FLASH的坏块标志位进行读取和判断;如果为00,证明该块为坏块,坏块映射向量表和备用表同时在对应位置写入00;如果读出的数据是FF,对应坏块映射向量表的位置不做操作,数据保持FF,证明对应块是好块。

使用中对坏块映射向量表进行更新,具体处理流程见图3:实际使用时,首先读出坏块映射向量表和备用表的内容进行对比,如果不一致,证明此片失效,不能继续使用;如果一致,开始写入,对每一块进行写入之前,判断对应坏块映射向量表的数据,如果是FF,证明对应块是好块,开始写入;如果是00,证明该块是坏块,跳过该块对下一块进行操作;在写入和擦除过程中如果出现新的坏块,找到对应坏块映射向量表和备用表中的位置,写入00;如此往复判断和写入,直到主控制器判断已经完成最后一块的写入为止。随着不断的判断和标注,在完成数据写入的同时实时更新了坏块映射向量表,既有效的跳过了固有坏块,又对新产生的坏块进行了标注,保证了数据的准确性和连续性。

图3 基于跳块的坏块处理流程

4.2 基于跳页的坏块处理

基于跳块的坏块管理,遇到固有坏块会直接跳过;使用过程中出现新的坏块会抛弃在本页之前写入的若干页,在下一个好块中重新写入,如果写到最后一页才发现此块为坏块,那么相当于用写两块的时间完成了一块的写入,浪费了时间成本[1]。根据NAND FLASH的特性,坏页的出现并不影响好页的使用,所以本文提出一种基于跳页的坏块处理。

基于跳页的坏块处理,首先建立初始化坏块映射向量表和备用表,方法同4.1节在此不再坠余。使用过程中首先判断初始化坏块映射向量表对应块的内容,如果是00,跳过该块,直接进入下一块进行操作,如果是FF,逐页写入数据并进行验证,如果在某一页发现写入失败,将该页的页地址写入对应该块的映射向量表中,本页之前在该块写入的内容保留,将本页重新写入下一块的第一页中。完成所有块写入的同时完成了坏块映射向量表和备用表的更新,此时映射向量表中的内容是00、FF、或者00-7F中的一个页地址。读取数据时,首先读对应坏块映射向量表中的内容,如果是00,跳到下一块进行读取;如果是FF,读取整块;如果是00-7F中的一个页地址,那么读取该页地址之前的所有页然后跳到下一块进行读取,直至读完整个存储阵列。

4.3 两种坏块处理方式的分析与对比

两种坏块处理方式均能保证数据不因坏块的存在而丢失,但是对比两种方法发现:第一种处理方式占用主控制器资源更少,可靠性更高,但是会增加写入时间;第二种方式软件控制复杂度更高,会增加主控制器的负荷,但是传输数据速率更快;所以在高可靠性要求的系统中建议使用第一种处理方式,在高速数据传输的系统中建议使用第二种处理方式。

5.结束语

本文首先对NAND FLASH进行了简要的介绍,对比了NAND FLASH与普通存储器的异同,指出了NAND FLASH内部存储阵列允许坏块存在的重要特点。在测试设计中,采用多次判断与跳转的方式实现了坏块识别与信息回写,并根据存储器容量和测试故障覆盖率选取了合适的测试算法,能够有效的检测出坏块的位置并进行坏块标注。在使用探讨部分,提出了两种坏块处理方法,能够有效的保证数据存储的连续性和有效性,对两种方法进行了分析和对比,给出了使用建议,希望对测试人员和使用人员有所帮助。

猜你喜欢
管脚出厂存储器
静态随机存储器在轨自检算法
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
CMOS数字IC管脚电容的估算与测量
存储器——安格尔(墨西哥)▲
2014年9月17日氯化铵出厂参考价格
2014年9月17日硫酸铵出厂参考价格
2014年9月17日钾肥出厂参考价格
2014年9月17日液氨出厂参考价格
基于Nand Flash的高速存储器结构设计
HC08芯片JVT测试方法的探究