技术领域
[0001] 本发明涉及存储领域,特别涉及一种存储芯片的测试方法及测试系统。
相关背景技术
[0002] 随着内嵌式存储器(Embedded Multi Media Card,eMMC)在电视机、机顶盒、平板电脑和手机等终端产品上的广泛应用,对eMMC的性能及可靠性要求越来越高,尤其是确保存储在eMMC中的数据稳定可靠。eMMC是由高级精简指令集机器(Advanced RISC Machine,ARM)作为控制器再加上非易失性存储介质(NAND Flash)构成,其中,ARM运行控制器软件,NAND Flash作为一种高密度低成本的存储介质,在各种设备中被广泛使用。
[0003] 在NAND Flash芯片的生产和使用过程中,均会产生坏块,从而破坏芯片整体的性能和可靠性。因此,必须对NAND Flash芯片进行测试并分类,以根据NAND Flash芯片的等级,将芯片适配于不同的应用场景。然而,目前NAND Flash芯片的测试方法中,存在测试指标单一、分类不准确、测试周期长、以及不利于大规模推广应用等问题。
具体实施方式
[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0029] NAND Flash芯片作为一种高密度低成本的存储体,被广泛应用在U盘等USB存储设备、SD卡、手机和固态硬盘等各种设备中。由于制作工艺和成本,在出厂的时候,NAND Flash芯片的内部本身就含有坏块,而且在使用过程中,NAND Flash芯片的内部不可避免地也会产生坏块。由于坏块的存在,当对这个块进行编程或擦除操作时,会造成操作错误,影响NAND Flash芯片整体的性能和可靠性。通过本发明提供的测试方法和测试系统,能够在不同的测试温度、测试电压和寿命周期等状态下,计算出芯片的坏快数和错误位数,并对芯片进行分级,从而能够快速、精确且全面地监控芯片整体的健康状态,提高芯片整体的性能和可靠性。本发明提供的测试系统,能够用于筛选出各种等级的芯片,在本发明中,例如以将芯片分类成消费级、工规级和车规级三个级别为例,对本发明的测试系统及测试方法进行说明。
[0030] 请参阅图1至图2所示,本发明还提供了一种存储芯片的测试系统,例如包括电源模块101、测试板102、主控模块104和坏块监控模块112等。其中,测试板102上通信连接有待测芯片,且被配置多种预设测试环境,主控模块104被配置读写压力测试程序,对待测芯片进行压力测试,坏块监控模块112统计待测芯片在多种预设测试环境下的坏块数和错误位数,并根据多种预设测试环境各自所占的权重,对待测芯片进行分级。
[0031] 请参阅图1所示,在本发明一实施例中,测试板102用于安装待测芯片,且测试板102被配置多种预设测试环境。其中,测试板102例如为至少一个。在本实施例中,测试板102例如为i*j个,i*j个测试板102上能够各自安装一个待测芯片,以提高芯片的测试效率。而且,在本实施例中,预设测试环境例如为四种,四种预设测试环境例如为高温高压、高温低压、低温高压和低温低压等。
[0032] 请参阅图2所示,在本发明一实施例中,主控模块104与待测芯片通信连接,且被配置读写压力测试程序,对待测芯片进行压力测试,以识别出待测芯片中的坏块和错误位数的具体位置。
[0033] 请参阅图2所示,在本发明一实施例中,坏块监控模块112统计待测芯片在多种预设测试环境下的坏快数和错误位数,并根据多种预设测试环境各自所占的权重,对待测芯片进行分级。
[0034] 请参阅图1至图2所示,在本发明一实施例中,电源模块101对测试板102、主控模块104和坏块监控模块112等模块供电,以使各模块能够顺利工作。
[0035] 请参阅图1所示,在本发明一实施例中,测试系统还包括通信接口103,通信接口103连通测试板102和上位机,负责测试板102和上位机之间的通信。在本实施例中,通信接口103例如为通用串行总线(Universal Serial Bus,USB)等。
[0036] 请参阅图2所示,在本发明一实施例中,测试系统还包括温度传感模块105,温度传感模块105与主控模块104连接。通过设置温度传感模块105,可以监控待测芯片周边的环境温度变化情况,并将温度信号传输给主控模块104。
[0037] 请参阅图2所示,在本发明一实施例中,测试系统还包括电压监控模块106,电压监控模块106与主控模块104连接。通过设置电压监控模块106,可以监控待测芯片的高低压变化情况,并将压力信号传输给主控模块104。
[0038] 请参阅图2所示,在本发明一实施例中,测试系统还包括收发接口107,收发接口107与主控模块104连接。其中,收发接口107例如为异步收发传输器。通过收发接口107,主控模块104可以与外围设备的串行通信,以进行数据交换。
[0039] 请参阅图2所示,在本发明一实施例中,测试系统还包括只读存储模块108,只读存储模块108与主控模块104连接。其中,只读存储模块108例如为长期存储数据的非易失性存储器(Read‑Only Memory,ROM)。在本实施例中,只读存储模块108中例如存储固件,固件例如是一组预先编写好的指令,指导主控模块104如何启动和运行。其中,指令例如包括设备初始化、外设配置和引导加载程序等,引导加载程序可以用于加载更新的程序或操作系统等。
[0040] 请参阅图2所示,在本发明一实施例中,测试系统还包括随机存储模块109,随机存储模块109与主控模块104连接。其中,随机存储模块109例如是暂时存储数据和程序代码的易失性存储器(Random Access Memory,RAM)。通过设置随机存储模块109用于临时存储数据,当主控模块104执行程序时,程序代码可以从只读存储模块108中加载到随机存储模块109中执行。
[0041] 请参阅图2所示,在本发明一实施例中,测试系统还包括传输接口模块113,传输接口模块113连接主控模块104和上位机,负责主控模块104和上位机之间的通信。通过传输接口模块113,能够将坏块监控模块112的统计结果传输给上位机,使测试数据能够一体化显示,还能够生成信号品质规范报表。
[0042] 请参阅图2所示,在本发明一实施例中,测试系统还包括存储块114,存储块114是存储芯片中用于存储数据的物理单元。在本实施例中,存储块114的内部例如划分成代码存储区1141、现场固件更新(FFU)存储区1142、表存储区1143和普通数据存储区1144等,以对应储存CODE、FFU数据、Table和DATA等。
[0043] 请参阅图2所示,在本发明一实施例中,测试系统还包括纠错模块110,纠错模块110与主控模块104、坏块监控模块112连接。通过设置纠错模块110,检测和纠正存储芯片在储存数据或传输数据的过程中出现的错误,提高数据的可靠性和完整性。在本实施例中,纠错模块110例如采用低密度奇偶校验法(LDPC)或BCH码等算法对数据进行校验。
[0044] 请参阅图2所示,在本发明一实施例中,测试系统还包括数据传输模块111,数据传输模块111连接纠错模块110、存储块114和坏块监控模块112。通过设置数据传输模块111,能够自动处理数据的读取、传输和写入,允许主控模块104在处理其他任务时并行处理数据传输,减轻主控模块104的负担。
[0045] 请参阅图2所示,在本发明一实施例中,测试系统还包括DMA通道,DMA通道设置在数据传输模块111和存储块114之间。其中,DMA通道例如为多种。在本实施例中,DMA通道例如为3种,3种DMA通道例如分别为CODE DMA、Table DMA和DATA DMA。其中,CODE DMA连接代码存储区1141和数据传输模块111,用于传输代码执行数据,Table DMA连接表存储区1143和数据传输模块111,用于查找表数据,DATA DMA连接普通数据存储区1144和数据传输模块111,用于普通数据传输。通过设置多种DMA通道,可以有效地并行化不同类型的数据操作,提高数据处理的并行能力,有利于加快响应时间、提升用户体验和处理复杂计算。而且,不同DMA通道的引入,在确保数据在存储芯片内快速准确传递的同时,还能够满足存储芯片在数据密集型的应用场景中的需求。
[0046] 请参阅图3所示,使用以上所述的测试系统,对待测芯片进行测试,测试方法至少包括步骤S11‑S16。
[0047] 步骤S11、在测试板上安装待测芯片,并配置预设测试温度和预设测试电压,形成初始测试环境。
[0048] 步骤S12、主控单元启动读写压力测试程序,对待测芯片进行压力测试。
[0049] 步骤S13、统计待测芯片在初始测试环境下的坏块数和错误位数。
[0050] 步骤S14、改变预设测试温度和预设测试电压,重复对待测芯片进行压力测试,直至待测芯片完成所有预设测试环境下的压力测试。
[0051] 步骤S15、统计待测芯片在所有预设测试环境下的坏块数和错误位数,并根据每种预设测试环境各自所占的权重,计算加权坏块数和加权错误位数。
[0052] 步骤S16、根据加权坏块数和加权错误位数,对待测芯片进行分级。
[0053] 请参阅图3至图4所示,在本发明一实施例中,当执行步骤S11时,具体的,步骤S11例如包括步骤S111‑S114。
[0054] 步骤S111、提供一全新的待测芯片。
[0055] 步骤S112、将固件程序烧录至待测芯片中。
[0056] 步骤S113、在测试板102上安装待测芯片,并确认安装位置正确,且无接触问题。
[0057] 步骤S114、给测试板102配置预设测试温度和预设测试电压,形成初始测试环境a,并对测试板102进行供电测试。
[0058] 请参阅图1、图3至图4所示,在本发明一实施例中,步骤S111中,待测芯片的擦除次数例如为0。步骤S113中,测试板102例如为多个,多个测试板102各自与电源模块101连接,以提高测试效率。通过步骤S111‑S114,能够确认待测芯片和测试板102之间的连接,以及电源模块101对测试板102的供电正常,以确保后续步骤的顺利执行。
[0059] 请参阅图3所示,在本发明一实施例中,正确连接待测芯片和测试板102后,执行步骤S12,步骤S12为主控单元启动读写压力测试程序,对待测芯片进行压力测试,以识别出待测芯片中的坏块和错误位数的具体位置。
[0060] 请参阅图3和图5所示,在本发明一实施例中,主控单元启动读写压力测试程序后,执行步骤S13,具体的,步骤S13例如包括步骤S131‑S134。
[0061] 步骤S131、在初始测试环境a下,统计待测芯片中每个闪存块的单块错误位数Xa,得到多个单块错误位数Xa,并将数值记录在待测芯片的预设位置中。
[0062] 步骤S132、判断每个闪存块的单块错误位数Xa是否超过纠错模块的处理能力。
[0063] 步骤S133、当闪存块的单块错误位数Xa超过纠错模块的处理能力时,判定该闪存块为坏块,将该闪存块加入坏块管理,并统计待测芯片的坏块数、以及待测芯片的全部闪存块的总错误位数。
[0064] 步骤S134、当闪存块的单块错误位数Xa未超过纠错模块的处理能力时,重复对待测芯片中的下一个闪存块进行压力测试,直至待测芯片中所有的闪存块都完成压力测试。
[0065] 请参阅图3和图5所示,在本发明一实施例中,步骤S131中,在初始测试环境a下,统计待测芯片中每个闪存块的单块错误位数Xa,得到多个单块错误位数Xa,并将数值记录在待测芯片的预设位置中。其中,预设位置例如为存储块114中的普通数据存储区1144等。
[0066] 请参阅图3和图5所示,在本发明一实施例中,统计每个闪存块的单块错误位数Xa后,在步骤S132中,判断闪存块的单块错误位数Xa是否超过纠错模块110的处理能力。具体的,判断某个闪存块的单块错误位数Xa是否超过纠错模块110的处理能力时,可以比较单块错误位数Xa和单块错误位数设定值,如果单块错误位数Xa大于单块错误位数设定值,则表明该闪存块的单块错误位数Xa已超过纠错模块110的处理能力,该闪存块不能成功被纠错模块110修复补正,否则纠错模块110可以成功修复该闪存块。在本实施例中,对于消费级标准、工规级标准和车规级标准的芯片,单块错误位数设定值例如不同,对于消费级标准,单块错误位数设定值例如为200‑400,对于工规级标准,单块错误位数设定值例如为100‑200,对于车规级标准,单块错误位数设定值例如为0‑100。
[0067] 请参阅图3和图5所示,在本发明一实施例中,当闪存块的单块错误位数Xa超过纠错模块的处理能力时,执行步骤S133,即判断判定该闪存块为坏块,将其加入坏块管理,并统计待测芯片的坏块数Za、以及待测芯片的全部闪存块中的总错误位数Ya。在本实施例中,当闪存块的单块错误位数未超过纠错模块110的处理能力时,执行步骤S134,即重复对待测芯片中的下一个闪存块进行压力测试,直至待测芯片中所有的闪存块都完成压力测试。其中,压力测试的程序和步骤S12中的读写压力测试程序相同,在此并不再作阐述。通过步骤S131‑S134,能够统计出在初始测试环境a下,待测芯片中,每个闪存块中的单块错误位数Xa、全部闪存块中的总错误位数Ya和坏块数Za,作为后续对待测芯片进行分级的依据。
[0068] 请参阅图3和图6所示,在本发明一实施例中,统计出每个闪存块中的单块错误位数Xa、全部闪存块中的总错误位数Ya和坏块数Za后,执行步骤S140,即判断待测芯片是否完成所有预设测试环境下的压力测试。其中,根据预设测试温度和预设测试电压,例如设置四种预设测试环境,四种预设测试环境例如为初始测试环境a、第一测试环境b、第二测试环境c和第三测试环境d,初始测试环境a、第一测试环境b、第二测试环境c和第三测试环境d例如分别对应高温高压(HTHV)、高温低压(HTLV)、低温高压(LTHV)和低温低压(LTLV)。其中,温度指的是待测芯片所处的环境温度,压力指的是待测芯片的主供电电压VCC和I/O端口供电电压VCCQ。在本实施例中,对于消费级标准,高温例如为55℃ 75℃,低温例如为‑30℃ ‑10~ ~℃,高压VCC例如为3.6V 3.9V,高压VCCQ例如为1.2V 1.4V,或者例如为1.9V 2.1V,低压VCC~ ~ ~
例如为2.7V 2.9V,低压VCCQ例如为0.9V 1.1V,或者例如为1.4 1.6V。对于工规级标准,高~ ~ ~
温例如为75℃ 95℃,低温例如为‑50℃ ‑30℃,高压VCC例如为3.6V 3.9V,高压VCCQ例如为~ ~ ~
1.2V 1.4V,或者例如为1.9V 2.1V,低压VCC例如为2.7V 2.9V,低压VCCQ例如为0.9V 1.1V,~ ~ ~ ~
或者例如为1.4V 1.6V。对于车规级标准,高温例如为140℃ 160℃,低温例如为30℃ 50℃,~ ~ ~
高压VCC例如为3.6V 3.9V,高压VCCQ例如为1.2V 1.4V,或者例如为1.9V 2.1V,低压VCC例~ ~ ~
如为2.7V 2.9V,低压VCCQ例如为0.9V 1.1V,或者例如为1.4V 1.6V。
~ ~ ~
[0069] 请参阅图3和图6所示,在本发明一实施例中,当待测芯片未完成四种预设测试环境下的压力测试时,执行步骤S14,即改变预设测试温度和预设测试电压,重复对待测芯片进行压力测试,直至待测芯片完成四种预设测试环境下的压力测试。其中,重复对待测芯片进行压力测试的程序和步骤S12中的读写压力测试程序相同,在此并不再作阐述。通过步骤S12、步骤S140和步骤S14,能够统计出在四种预设测试环境(a、b、c和d)下,待测芯片中,每个块中的单块错误位数Xa、Xb、Xc和Xd,全部块中的总错误位数Ya、Yb、Yc和Yd,以及坏块数Za、Zb、Zc和Zd,作为后续对待测芯片进行分级的依据。其中,Xa、Ya和Za对应于初始测试环境a,Xb、Yb和Zb对应于第一测试环境b,Xc、Yc和Zc对应于第二测试环境c,Xd、Yd和Zd对应于第三测试环境d。
[0070] 请参阅图3和图6所示,在本发明一实施例中,当待测芯片完成四种预设测试环境下的压力测试时,执行步骤S15,即统计待测芯片在四种预设测试环境下的坏块数和错误位数,并根据四种预设测试环境各自所占的权重,计算加权坏块数和加权错误位数。请参阅图9所示,在本发明一实施例中,统计了一待测芯片中的8个块在HTHV、HTLV、LTHV和LTLV四种环境下的单块错误位数Xa。由图9可知,同一块在不同环境下的单块错误位数Xa不同,因此,必须依据不同测试环境各自所占的权重,全面且综合地评价芯片在不同温度和压力下的状态,从而精准地对芯片进行分级。
[0071] 请参阅图3和图7所示,在本发明一实施例中,当执行步骤S15时,步骤S15例如包括步骤S151‑S153。
[0072] 步骤S151、根据每种预设测试环境各自所占的权重,对在每种预设测试环境中统计得到的多个单块错误位数进行加权,得到加权单块错误位数。
[0073] 步骤S152、根据每种预设测试环境各自所占的权重,对在每种预设测试环境中统计得到的多个总错误位数进行加权,得到加权总错误位数。
[0074] 步骤S153、根据每种预设测试环境各自所占的权重,对在每种预设测试环境中统计得到的多个坏块数进行加权,得到加权坏块数。
[0075] 请参阅图3和图7所示,在本发明一实施例中,在步骤S151‑S153中,初始测试环境a、第一测试环境b、第二测试环境c和第三测试环境d所占的权重例如分别为A%、B%、C%和D%,A%+B%+C%+D%=100%。在步骤S151中,根据四种预设测试环境各自所占的权重,对在四种预设测试环境中统计得到的单块错误位数Xa、Xb、Xc和Xd进行加权,得到加权单块错误位数X。具体的,X=Xa*A%+Xb*B%+Xc*C%+Xd*D%。由于消费级标准、工规级标准和车规级标准对于温度和压力的要求不同,不同等级标准的芯片在同一测试环境中所占的权重不同,以消费级标准和车规级标准为例,相对于消费级标准,车规级标准需要能够承受更高温度的环境,因此,相对于消费级标准,车规级标准在高温的测试环境下所占的权重更大,即车规级标准在初始测试环境a和第一测试环境b下所占的权重之和A%+B%,大于消费级标准在初始测试环境a和第一测试环境b下所占的权重之和A%+B%。在本实施例中,对于消费级标准,A%例如为0‑10%,B%例如为0‑10%,C%例如为40%‑50%,D%例如为40%‑50%,对于工规级标准,A%例如为0‑
20%,B%例如为0‑20%,C%例如为40%‑60%,D%例如为20%‑40%,对于车规级标准,A%例如为40%‑
60%,B%例如为20%‑40%,C%例如为0‑20%,D%例如为0‑20%。
[0076] 请参阅图3和图7所示,在本发明一实施例中,在步骤S152中,根据四种预设测试环境各自所占的权重,对在四种测试环境中统计得到的四个总错误位数Ya、Yb、Yc和Yd进行加权,得到加权总错误位数Y。具体的,Y=Ya*A%+Yb*B%+Yc*C%+Yd*D%。
[0077] 请参阅图3和图7所示,在本发明一实施例中,在步骤S153中,根据四种预设测试环境各自所占的权重,对在四种测试环境中统计得到的四个坏块数Za、Zb、Zc和Zd进行加权,得到加权坏块数Z。具体的,Z=Za*A%+Zb*B%+Zc*C%+Zd*D%。
[0078] 请参阅图3和图8所示,在本发明一实施例中,计算出加权单块错误位数X、加权总错误位数Y和加权坏块数Z后,还要执行步骤S1601,即判断待测芯片的寿命试验是否完成,以监测待测芯片的寿命状态。
[0079] 请参阅图3和图8所示,在本发明一实施例中,当寿命试验未完成时,执行步骤S1602,步骤S1602为磨损待测芯片,重复对待测芯片进行烧录和压力测试。其中,重复对待测芯片进行烧录的步骤和步骤S112相同,重复对待测芯片进行压力测试的程度和步骤S12中的读写压力测试程序相同,在此并不再作阐述。
[0080] 请参阅图3和图8所示,在本发明一实施例中,在步骤S1602中,磨损待测芯片,以缩短待测芯片的寿命。在本实施例中,待测芯片具备预设可擦除次数,将平均擦除次数和预设可擦除次数的比值定义为寿命百分比。在步骤S1602中,磨损待测芯片,即提高待测芯片的擦除次数,亦即提高待测芯片的平均擦除次数和寿命百分比,寿命百分比例如可以提高至70%‑95%,又例如为90%。通过设置步骤S1601‑S1602,能够监控待测芯片在不同寿命周期下的健康变化情况,对待测芯片的状态进行提前预警,提高待测芯片整体的性能和可靠性。
[0081] 请参阅图3和图8所示,在本发明一实施例中,当寿命试验完成时,执行步骤S16,步骤S16例如包括步骤S161,步骤S161为根据加权单块错误位数X、加权总错误位数Y和加权坏块数Z,对待测芯片进行分级。具体的,对于预设等级标准,需要同时满足待测芯片的加权单块错误位数X小于加权单块错误位数门限值x、待测芯片的加权总错误位数Y小于加权总错误位数门限值y、以及待测芯片的加权坏块数Z小于加权坏块数门限值z这三个条件,待测芯片才可被认为符合预设等级标准。但是,如果待测芯片的加权单块错误位数X小于加权单块错误位数门限值x、待测芯片的加权总错误位数Y小于加权总错误位数门限值y、以及待测芯片的加权坏块数Z小于加权坏块数门限值z这三个条件中,只要一个条件不满足,待测芯片就不符合预设等级标准。
[0082] 请参阅图3和图8所示,在本发明一实施例中,在步骤S161中,通过比较待测芯片的加权单块错误位数X和加权单块错误位数门限值x、加权总错误位数Y和加权总错误位数门限值y、以及加权坏块数Z和加权坏块数门限值z,能够判断待测芯片是否符合预设等级标准,从而对待测芯片进行精准分类。在本实施例中,对于消费级标准,加权单块错误位数门限值、加权总错误位数门限值和加权坏块数门限值例如分别为x1、y1和z1,对于工规级标准,加权单块错误位数门限值、加权总错误位数门限值和加权坏块数门限值例如分别为x2、y2和z2,对于车规级标准,加权单块错误位数门限值、加权总错误位数门限值和加权坏块数门限值例如分别为x3、y3和z3。而且,在三种等级标准中,由于车规级的要求最严格,工规级的要求次之,消费级的要求最宽泛,因此,x1>x2>x3,y1>y2>y3,z1>z2>z3。其中,x1例如为200‑400,x2例如为100‑200,x3例如为0‑100,y1例如为1000‑2500,y2例如为200‑1000,y3例如为0‑200,z1例如为4‑6,z2例如为2‑4,z3例如为0‑2。
[0083] 请参阅图1至图8所示,本发明提供一种存储芯片的测试方法及测试系统,依据多种测试环境各自所占的权重,对统计芯片在多种测试环境下的坏块数和错误位数进行加权,得到加权坏块数和加权错误位数并以此为依据,能够全面、快速且精准地对芯片进行分级,将芯片适配于不同的应用场景。而且,本发明提供的测试方法,能够监控芯片在不同环境、压力和寿命周期等状态下的健康变化情况,从而能够对芯片的健康状态进行提前预警,提高芯片的性能和可靠性。
[0084] 以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。