掌桥专利:专业的专利平台
掌桥专利
首页

一种测试存储器的方法和装置

文献发布时间:2024-04-18 19:58:53


一种测试存储器的方法和装置

本申请实施例涉及芯片技术领域,尤其涉及一种测试存储器的方法和装置。

随着半导体技术的不断发展和集成电路制造水平的不断提高,对存储器的应用越来越广泛,存储器的容量也越来越大。目前,为了对存储器进行故障检测,一般采用存储器内建自测(memory build-in selftest,MBIST)方法对存储器进行测试。在一些应用场景中,例如车载芯片的应用场景,需要在车载芯片正常工作时对内部的静态随机存取存储器(Static Random Access Memory,SRAM)进行MBIST测试,并且要求MBIST测试前后SRAM存储的数据保持不变。

在上述应用场景下,对芯片进行MBIST测试时,芯片中的系统(system)需要先确定存储器中待测试的存储单元的地址范围,并与存储器进行交互,将存储器中待测试的存储单元的数据全部迁移出来,具体的,系统是通过接收指令来确定待测试的存储单元的地址范围的。系统再向内建自测(build-in selftest,BIST)电路发送控制信号和存储器中待测试的存储单元的地址范围,控制芯片的内建自测电路对待测试的存储单元进行MBIST测试。测试完成后系统再将存储器中迁移出的数据对应写回到测试前数据所在的存储单元中。

可知,现有的存储器测试中,系统需要确定待测试的存储单元的地址范围,一次性将地址范围对应的待测试的存储单元的数据从存储器中迁移出来,并将待测试的存储单元的地址范围发送给BIST电路,控制BIST电路对该待测试的存储单元进行检测,从而保证存储器中迁移出数据的地址范围与进行BIST测试的地址范围一致。因此,需要在存储器外部新增加一个至少和待测试的存储器容量大小相同的寄存器或存储器才能实现数据保护,增加了额外的硬件开销,且系统需要与BIST电路以及待测试的存储器进行交互,导致电路设计复杂,测试时间较长。

发明内容

本申请实施例提供一种测试存储器的方法和装置,可以在进行存储器故障检测时,不增加额外的硬件开销,有效减少测试时间,简化与系统侧的交互。

为达到上述目的,本申请实施例采用如下技术方案:

第一方面,本申请实施例提供了一种存储器测试电路,用于对目标存储器进行测试,存储器测试电路包括控制系统和测试设备。控制系统用于产生启动测试信号,测试设备用于在接收到启动测试信号后,逐测试回合对目标存储器进行测试(即进行多次测试,每次对较少的存储单元进行测试)。其中,测试设备包括地址管理电路、读写电路、算法测试电路和暂时存储器。在每个测试回合中:地址管理电路用于基于当前测试回合产生第一地址,并基于第一地址获得第一地址范围。第一地址范围用于指示目标存储器中的在本测试回合中待测试的多个第一存储单元。读写电路用于将多个第一存储单元中的数据写入暂时存储器。算法测试电路用于测试多个第一存储单元。 读写电路还用于在算法测试电路完成对多个第一存储单元的测试后,将暂时存储器中的数据写入多个第一存储单元。

由此,控制系统不需要确定待测试的存储单元,不需要与目标存储器进行交互,减少了控制系统侧的交互,简化了电路设计,减少了测试时间。且测试设备接收到启动测试信号后会逐测试回合对目标存储器进行测试,由于每个测试回合进行测试的存储单元较少,因此可以将待测试的存储单元的数据保存在自身原有的暂时存储器中,不需要新增加寄存器或存储器,减少了电路开销。

在一种可能的设计中,地址管理电路包括地址寄存器、地址跳变器和转换电路。地址寄存器用于记录存储单元的首地址,地址跳变器用于根据测试回合,基于首地址获得每个测试回合的第一地址,转换电路用于在第一地址上加上偏移量,获得多个第一存储单元的地址。由此,测试设备自身能够确定出每个测试回合中待测试的存储单元,因此不需要由控制系统确定出待测试的存储单元再发送给测试设备,减少了控制系统与测试设备的交互,简化了电路设计,减少了测试时间。

在一种可能的设计中,算法测试电路用于对多个第一存储单元测试结束后,得到存在缺陷的存储单元的错误信息,暂时存储器还用于缓存存在缺陷的存储单元的错误信息。由此,测试设备的读写电路将待测试的存储单元的数据写入的是用于缓存错误信息的暂时存储器中,即缓存在测试设备原有的暂时存储器中,因此不需要额外新增加寄存器或存储器,减少了电路开销。

在一种可能的设计中,控制系统还用于产生第一暂停测试信号或第二暂停测试信号,第二暂停测试信号的优先级高于第一暂停测试信号的优先级。测试设备还包括测试控制电路,测试控制电路用于在接收到第一暂停测试信号时,若确定算法测试电路对当前测试回合的多个第一存储单元未测试完成,则控制算法测试电路对多个第一存储单元测试完成后,控制地址管理电路产生下一测试回合的第一地址,并在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。测试控制电路还用于在接收到第二暂停测试信号时,若确定算法测试电路对当前测试回合的多个第一存储单元未测试完成,则在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。由此,控制系统可以通过生成第一暂停测试信号或第二暂停测试信号来对暂停测试,实现了对存储器测试的灵活性控制,能够根据系统侧事件的紧急程度控制退出测试的时间,有效保证控制系统侧的其余业务与存储器测试之间不发生冲突,提高了对存储器测试的效率。

在一种可能的设计中,控制系统还用于产生第一重开始测试信号或第二重开始测试信号,第一重开始测试信号产生在第一暂停测试信号之后,第二重开始测试信号产生在第二暂停测试信号之后。测试控制电路还用于在接收到第一重开始测试信号后,从地址管理电路产生的下一测试回合的第一地址开始,继续对目标存储器进行测试。测试控制电路还用于在接收到第二重开始测试信号后,从当前测试回合的第一地址开始,继续对目标存储器进行测试。由此,控制系统在生成暂停测试信号之后,还可以生成重开始测试信号指示测试设备继续对存储器的存储单元进行测试,实现对存储器测试的灵活性控制。相比于现有技术中暂停需要重头开始对全部存储单元进行测试,本申请在很大程度上避免了重复测试,提高了测试的效率。

第二方面,本申请实施例提供了一种测试存储器的方法,该方法应用于存储器测试电路,用于对目标存储器进行测试,存储器测试电路包括控制系统和测试设备,该方法包括:控制系统产生启动测试信号,测试设备在接收到启动测试信号后,逐测试回合对目标存储器进行测试。其中,测试设备包括地址管理电路、读写电路、算法测试电路和暂时存储器。在每个测试回合中:地址管理电路基于当前测试回合产生第一地址,并基于第一地址获得第一地址范围,第一地址范围用于指示目标存储器中的在本测试回合中待测试的多个第一存储单元。读写电路将多个第一存储单元中的数据写入暂时存储器,算法测试电路测试多个第一存储单元,读写电路在算法测试电路完成对多个第一存储单元的测试后,将暂时存储器中的数据写入多个第一存储单元。第二方面所达到的有益效果可以参见第一方面中有益效果。

在一种可能的设计中,地址管理电路包括地址寄存器、地址跳变器和转换电路。该方法包括:地址寄存器记录存储单元的首地址,地址跳变器根据测试回合,基于首地址获得每个测试回合的第一地址,转换电路在第一地址上加上偏移量,获得多个第一存储单元的地址。

在一种可能的设计中,算法测试电路对多个第一存储单元测试结束后,得到存在缺陷的存储单元的错误信息,暂时存储器缓存存在缺陷的存储单元的错误信息。

在一种可能的设计中,控制系统产生第一暂停测试信号或第二暂停测试信号,第二暂停测试信号的优先级高于第一暂停测试信号的优先级。测试设备还包括测试控制电路,测试控制电路在接收到第一暂停测试信号时,若确定算法测试电路对当前测试回合的多个第一存储单元未测试完成,则控制算法测试电路对多个第一存储单元测试完成后,控制地址管理电路产生下一测试回合的第一地址,并在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。测试控制电路在接收到第二暂停测试信号时,若确定算法测试电路对当前测试回合的多个第一存储单元未测试完成,则在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。

在一种可能的设计中,控制系统产生第一重开始测试信号或第二重开始测试信号,第一重开始测试信号产生在第一暂停测试信号之后,第二重开始测试信号产生在第二暂停测试信号之后。测试控制电路在接收到第一重开始测试信号后,从地址管理电路产生的下一测试回合的第一地址开始,继续对目标存储器进行测试,测试控制电路在接收到第二重开始测试信号后,从当前测试回合的第一地址开始,继续对目标存储器进行测试。

第三方面,一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第二方面以及第二方面中的任一种可能的设计所述的方法。

第四方面,一种计算机程序产品,当计算机程序产品在计算机上运行时,使得电子设备执行上述第二方面以及第二方面中的任一种可能的设计所述的方法。

上述其他方面对应的有益效果,可以参见关于方法方面的有益效果的描述,此处不予赘述。

图1为存储单元的基本结构示意图;

图2为存储单元阵列的基本结构示意图;

图3为一种测试存储器的方法示意图;

图4为本申请实施例提供的测试存储器的方法的应用场景示意图;

图5为本申请实施例提供的一种电子装置的硬件结构示意图;

图6为本申请实施例提供一种测试存储器的方法流程示意图;

图7为本申请实施例提供的一种电子装置的硬件结构示意图。

为了便于理解,示例性地给出了部分与本申请实施例相关概念的说明以供参考。如下所示:

内建自测(build-in self test,BIST):是在设计时在电路中植入相关功能的电路,用于提供自我测试功能的技术,以此降低器件测试对自动测试设备(ATE)的依赖程度。在设计存储器芯片时在电路中植入相关测试功能的电路的技术称为存储器内建自测(memory build-in self test,MBIST)。

存储器(memory):包括一个或多个存储单元(bitcell),每个存储单元对应一个地址,用于存储程序和各种数据。此处以静态随机存取存储器(Static Random Access Memory,SRAM)为例,对存储器的结构大致进行介绍。如图1所示为SRAM中的一个存储单元的基本结构,通过两个首尾相接的反相器来锁存数据。其中,反相器Ⅰ和Ⅱ形成正反馈,使电路总能恢复到稳定状态。N1和N2叫做存取管,用来存储数据。字线(word line,WL)控制存取管的开启,从而通过位线(bit line(BL)和BLB)读取和写入数据。反相器Ⅰ、Ⅱ和存取电路组成了一个SRAM的一个存储单元,该单元可以存储一位的数据,也可以称为bitcell。bitcell的排列方式如图2所示,以4乘4的存储单元阵列(bit cell array)为例,行方向共用字线,列方向共用位线。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

目前,对芯片中的存储器进行故障检测时,如图3所示,需要芯片中的系统(system)、BIST电路和存储器三者之间进行交互实现。其中,系统可以包括中央处理器(Central Processing Unit,CPU)、控制器、直接存储器访问(Direct Memory Access,DMA)等用于对存储器进行读写访问以及和BIST电路进行交互;BIST电路可以包括控制器和算法调度器等,用于对存储器执行算法测试;存储器例如可以为SRAM,用于存储指令和数据。具体实现步骤如下:

步骤1、系统一次性将存储器中待测试的存储单元的数据全部读出,保存到存储 器外部新增加的寄存器或存储器中。可以理解为数据迁移,即数据读出之后待测试的存储单元中未存储数据。待测试的存储单元例如可以为SRAM中的bit cell。

步骤2、系统控制BIST电路对待测试的存储单元进行MBIST测试。例如通常采用march算法对存储单元进行MBIST测试,假设march算法有多个操作步骤,测试时需要对待测试的存储单元的所有地址执行算法的第一步操作,执行完之后,才能再对待测试的存储单元的所有地址执行算法的第二步操作,以此类推,直到执行完该算法的所有操作。

其中,march算法为对存储器进行故障测试的一种算法,具有较低的测试复杂度与较高的故障覆盖率,因此目前对存储器进行故障测试时可以采用此算法。

示例性的,假设march算法有以下四步骤:

第一步骤:y↑W(0)

第二步骤:y↑R(0)W(1)

第三步骤:y↑R(1)W(0)

第四步骤:y↑R(0)

其中,W(0)表示对地址进行写0操作,R(0)表示对地址进行读0操作,W(1)表示对地址进行写1操作,R(1)表示对地址进行读1操作,y↑表示按列升序的方式递增地址。例如可以理解为按列升序进行地址递增的方式对bit cell array中的所有存储单元先执行march算法第一步骤的写0操作,即y↑W(0),所有存储单元都执行完写0操作后,才能对所有存储单元执行march算法第二步骤的读0写1操作,即y↑R(0)W(1),以此类推,直到对所有存储单元都执行完上述算法的四步骤才算测试完成。

步骤3、测试完成后,系统将数据从存储器外部新增加的寄存器或存储器中读出并对应写回到测试前所在的存储单元中。可以理解为测试完成后系统将存储器中迁移出去的数据再迁移回到该存储器中。

可见,系统需要一次性将待测试的存储单元的数据全部读出,且为了保护存储器进行MBIST测试前后数据的一致性,需要将读出的数据保存到与该存储器容量大小相同的另一个寄存器或存储器中,才能够实现数据保护,因此需要在芯片中新增加一个寄存器或存储器,导致电路开销大。此外,由于系统侧需要将待测试的存储单元的数据读出或写入,因此系统侧需要确定当前访问的地址范围,还需要发送算法调度信息和地址信息给BIST电路,控制BIST电路对待测试的存储单元进行MBIST测试,导致系统侧的信令交互复杂,电路设计复杂,测试时间较长。

因此,本申请提出一种存储器测试的方法,该方法应用于一种电子装置,本申请中的电子装置可以理解为芯片,例如车载芯片等。考虑到现有技术中对存储器进行故障检测时电路开销大、电路设计复杂、测试时间较长的问题,本申请可以应用于对目标存储器进行故障检测的场景中,该场景还包括控制系统和测试设备。测试设备包括地址管理电路、读写电路、算法测试电路和暂时存储器。通过控制系统产生启动测试信号,在测试设备接收到启动测试信号后,逐测试回合对目标存储器进行测试(即进行多次测试,每次对较少的存储单元进行测试)。由地址管理电路基于当前的测试回合产生第一地址(即该测试回合进行测试的第一个地址),并基于第一地址获得第一 地址范围,第一地址范围用于指示目标存储器中的在本测试回合中待测试的多个第一存储单元。再由读写电路将多个第一存储单元中的数据写入暂时存储器(即将待测试的多个第一存储单元的数据迁移到暂时存储器),通过算法测试电路对多个第一存储单元进行测试。完成测试后,由读写电路将暂时存储器中的数据写入第一存储单元(即将暂时存储器中的数据再迁移回对应的多个第一存储单元)。可见,本申请中,在对目标存储器的存储单元进行测试之前,可将待测试的存储单元中的数据写入测试设备中已有的暂时存储器中,可以减少硬件开销。而且,控制系统只需向测试设备发送启动测试信号,不需要控制系统与测试设备间交互待测试的存储单元的地址范围,直接由测试设备自己确定待测试的存储单元的地址范围,从而达到在不增加额外硬件开销的情况下实现对存储器的故障检测,同时简化与系统侧的交互,有效减少测试的时间。

如图4所示,本申请实施例可以应用于包括控制系统、测试设备和目标存储器的场景。本申请中的目标存储器可以为静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、闪存(Flash EEPROM Memory,FLASH)、磁性随机存取存储器(Magnetic Random Access Memory,MRAM)等。本申请实施例中以目标存储器为SRAM为例进行介绍。

如图5所示,其示出了一种电子装置的硬件结构示意图,该电子装置可以包括本申请实施例中的芯片,图5中以芯片500示例的芯片。芯片500可包括控制系统501、测试设备502以及目标存储器503等。

可以理解的是,本申请实施例示意的结构并不构成对芯片500的具体限定。在本申请另一些实施例中,芯片500可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件加硬件的组合实现。

其中,控制系统501可以包括CPU、控制器、DMA等电路,用于产生启动测试信号、暂停测试信号和重开始测试信号等。。

测试设备502可以包括地址管理电路5021,读写电路5022,算法测试电路5023、暂时存储器5024和测试控制电路5025等。用于对目标存储器503进行故障检测。

其中,地址管理电路5021包括地址寄存器5021a、地址跳变器5021b和转换电路5021c,用于预先记录每个测试回合待测试的第一个地址,并获得每个测试回合待测试的多个存储单元。

具体的,地址寄存器5021a用于记录目标寄存器的存储单元的首地址,地址跳变器5021b用于根据测试回合和首地址获得每个测试回合的待测试的第一个地址,转换电路5021c用于在第一个地址上加上偏移量,获得多个存储单元的地址。

读写电路5022用于对目标存储器503进行数据读写的操作。

算法测试电路5023用于对目标存储器503执行相应的算法测试操作。

暂时存储器5024用于存储进行算法测试时出现的错误信息以及存储目标存储器503的数据。

测试控制电路5025用于控制地址管理电路5021、读写电路5022、算法测试电路5023和暂时存储器5024执行相应的操作。

目标存储器503可以为SRAM、DRAM、FLASH、MRAM等,用于存储指令和数据。

应用上述本申请提供的芯片,下面结合附图对本申请针对芯片所提出的测试存储器的方法中,在对电子装置例如芯片存储器进行故障检测时,通过控制系统发送信号控制测试电路对存储器进行故障检测的过程进行介绍。

在介绍本申请实施例之前,先对MBIST测试一般考虑的几种类型的缺陷进行介绍。MBIST测试时一般会考虑单个存储单元的缺陷(Single cell fault)和存储单元之间的缺陷(Inter-cell fault)这两种缺陷。

其中,Single cell fault只存在于一个存储单元中,对一个存储单元进行连续读写访问操作会激发该存储单元的Single cell fault。在执行MBIST测试时,只需要对一个存储单元进行MBIST测试即可检测出该存储单元是否存在Single cell fault。

Inter-cell fault存在于两个相邻的存储单元之间,假设为存储单元A和存储单元B,对存储单元A进行读写访问操作,可能会对存储单元B造成影响形成Inter-cell fault。因此,在执行MBIST测试时,需要先对存储单元A进行MBIST测试,再对存储单元B进行MBIST测试,才能检测出存储单元A对存储单元B造成的影响,即存储单元A和存储单元B之间的Inter-cell fault。

因此,执行MBIST测试时要完成对待测试的存储单元的Single cell fault和Inter-cell fault的覆盖,需要测试与待测试的存储单元相邻的存储单元和待测试的存储单元本身,即最少需要对两个存储单元进行测试。而存储单元中一般不会出现大范围的存储单元都存在缺陷的情况,因此通过每次测试两个存储单元已经能够保证对存储单元测试缺陷的覆盖。

如图6所示,本申请实施例提供一种测试存储器的方法,该方法应用于存储器测试电路。以图5示出的芯片架构为例,该方法包括:

步骤601、控制系统产生启动测试信号。

在本申请中,控制系统可以产生启动测试信号、暂停测试信号和重开始测试信号。启动测试信号用于控制测试电路对目标存储器开始进行测试,暂停测试信号用于控制测试电路对目标存储器暂停测试,重开始测试信号用于在暂停测试后,控制测试电路对目标存储器重新开始进行测试。

示例性的,控制系统501在对目标存储器503开始执行MBIST测试时,控制系统501可以产生启动测试信号,例如可以向测试设备502发送启动测试信号,控制测试设备502开始进行测试。

测试设备在接收到启动测试信号后,逐测试回合对目标存储器进行测试。逐测试回合对目标存储器进行测试可以理解为,对目标存储器的存储单元分多次(即多个测试回合)测试,每次(即每个测试回合)对部分存储单元进行测试。而不是像现有技术中一次性对存储器的全部存储单元进行测试,可以减少每次测试时需要迁移出的数据量。

其中,在测试设备包括地址管理电路、读写电路、算法测试电路、暂时存储器和测试控制电路的情况下,上述测试设备接收启动测试信号具体可以为步骤602、测试控制电路接收到启动测试信号。

即,由测试设备的测试控制电路接收控制系统产生的启动测试信号。

在每个测试回合中,该方法可以包括:

步骤603、地址管理电路基于当前测试回合产生第一地址,并基于第一地址获得第一地址范围。

其中,第一地址可以理解为每个测试回合中待测试的第一个地址。具体的,地址管理电路会记录目标存储器的存储单元的首地址,还会预先记录每个测试回合的第一地址,具体可以是在测试时根据测试回合以及首地址获得本测试回合的第一地址,并基于第一地址获得第一地址范围。第一地址范围用于指示目标存储器中的在本测试回合中待测试的多个第一存储单元,第一地址范围指示的多个第一存储单元中包括第一地址对应的存储单元。

例如,地址管理电路在基于第一地址获得第一地址范围时,可以在第一地址上加上偏移量,相当于根据第一地址进行地址跳变,获得第一地址范围。示例性的,可以理解为,地址管理电路从第一地址开始进行多次加1的地址跳变,每次地址跳变会使得第一地址范围指示的多个存储单元的数量加1(数量起始为1,即第一地址对应的存储单元)。地址管理电路结束地址跳变后得到的第一地址范围指示的存储单元的数量可以为多个。例如,当地址管理电路只根据第一地址进行一次地址跳变时,即在第一地址上加上一个偏移量,地址管理电路结束地址跳变后得到的第一地址范围指示的存储单元的数量为两个。跳变可以包括对存储单元的地址按行跳变(即按字线延伸方向进行多次加1的地址跳变)、按列跳变(即按位线延伸方向进行多次加1的地址跳变)和乒乓操作跳变等,不予限制。

示例性的,地址管理电路5021基于当前测试回合产生第一地址,并基于第一地址获得第一地址范围。具体可以为,地址管理电路5021中的地址寄存器5021a来记录存储单元的首地址,地址管理电路5021中的地址跳变器5021b根据测试回合,基于首地址获得每个测试回合的第一地址,再由地址管理电路5021中的转换电路5201c在第一地址上加上偏移量,获得多个第一存储单元的地址,即获得第一地址范围。

而后,地址管理电路可以将第一地址范围发送给读写电路,以便执行步骤604。

步骤604、读写电路可以根据第一地址范围将多个第一存储单元中的数据写入暂时存储器。

其中,暂时存储器是测试设备中原有的存储器。

示例性的,读写电路5022可以根据第一地址范围将本测试回合中的待测试的多个第一存储单元中的数据写入测试设备502中的暂时存储器5024,具体可以理解为将多个第一存储单元中的数据迁移到暂时存储器5024,即数据迁移到暂时存储器5024之后,目标存储器503中的多个第一存储单元中未存储数据。

而后,读写电路可以向测试控制电路发送数据写入完成的响应,测试控制电路可以再向算法测试电路发送测试信号,以便执行步骤605。

步骤605、算法测试电路测试多个第一存储单元。

其中,算法测试电路对多个第一存储单元进行测试可以采用march算法进行测试,先对多个第一存储单元执行march算法的第一步骤,再对多个第一存储单元执行march算法的第二步骤,以此类推,直到对多个第一存储单元执行完march算法的所有步骤,即完成对该多个第一存储单元的测试。

示例性的,算法测试电路5023测试多个第一存储单元,以多个第一存储单元为图2中的存储单元A和存储单元B为例,测试时,先对存储单元A和存储单元B执行march算法的第一步骤,再对存储单元A和存储单元B执行march算法的第二步骤,以此类推,直到对存储单元A和存储单元B执行完march算法即对存储单元A和存储单元B完成测试。

步骤606、读写电路在算法测试电路完成对多个第一存储单元的测试后,将暂时存储器中的数据写入多个第一存储单元。

示例性的,在算法测试电路5023完成对多个第一存储单元的测试后,算法测试电路5023可以向测试控制电路5025发送测试响应,以指示对多个第一存储单元的测试完成,测试控制电路5025可以向读写电路5022发送指示信息,以指示读写电路5022将暂时存储器5024中的数据写入多个第一存储单元,相当于将暂存在暂时存储器5024中的多个第一存储单元中的数据再迁移回目标存储器503中对应的多个第一存储单元中,以保证测试前后存储单元中的数据不变。

至此,测试设备对第一地址范围指示的存储单元的测试完成,即完成了一个测试回合的测试。接下来可以继续参照上述步骤603-步骤606描述的方法,开始进行下一个测试回合的测试,此处不过多赘述。

在一些实施例中,在对目标存储器进行测试时,若测试出某些存储单元存在缺陷,则本申请实施例提供的测试存储器的方法还可以包括:

步骤a、算法测试电路对多个第一存储单元测试结束后,得到存在缺陷的存储单元的错误信息,暂时存储器缓存存在缺陷的存储单元的错误信息。

示例性的,算法测试电路5023对多个第一存储单元测试结束后,会得到存在缺陷的存储单元的错误信息,该错误信息例如可以包括存在缺陷的存储单元的地址信息以及缺陷类型等。算法测试电路5023可以将这些存在缺陷的存储单元的错误信息发送给暂时存储器5024,以便将这些存在缺陷的存储单元的错误信息缓存在暂时存储器5024中,即由暂时存储器5024缓存存在缺陷的存储单元的错误信息。

可以理解为,暂时存储器5024可以用来缓存存在缺陷的存储单元的错误信息,还可以用来缓存待测试的多个第一存储单元的数据,相当于对测试设备中已有的暂时存储器5024进行了复用。从而,在对目标存储器进行测试时,不需要额外新增加寄存器或存储器来保存目标存储器中待测试的存储单元的数据,减少了硬件开销。在一些实施例中,在对目标存储器进行测试时,还可能出现控制系统侧有紧急事件需要暂停对目标存储器进行测试的情况,则本申请实施例提供的测试存储器的方法还可以包括:

步骤b、控制系统产生第一暂停测试信号或第二暂停测试信号。而后可执行步骤c或步骤d。

其中,暂停测试信号可以根据控制系统侧事件的紧急程度分为第一暂停测试信号和第二暂停测试信号,第二暂停测试信号的优先级高于第一暂停测试信号的优先级,优先级越高表示事件紧急程度越高,越需要立即暂停测试。

示例性的,当控制系统501有紧急事件需要暂停对目标存储器503进行测试时,控制系统501产生第一暂停测试信号或第二暂停测试信号。

步骤c、测试控制电路在接收到第一暂停测试信号时,若确定算法测试电路对当 前测试回合的多个第一存储单元未测试完成,则控制算法测试电路对多个第一存储单元测试完成后,控制地址管理电路产生下一测试回合的第一地址,并在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。

其中,步骤c有可能发生在执行上述步骤605的过程中。

其中,由于第一暂停测试信号的紧急程度相对于第二暂停测试信号来说较低,因此测试设备在接收到第一暂停测试信号时,若对当前测试回合的多个第一存储单元还未测试完成,可以对当前测试回合的多个第一存储单元测试完成后再执行暂停。

示例性的,测试设备502的测试控制电路5025在接收到第一暂停测试信号时,若确定算法测试电路5023对当前测试回合的多个第一存储单元未测试完成,则控制算法测试电路5023对多个第一存储单元测试完成后,再控制地址管理电路5021产生下一测试回合的第一地址,并在控制读写电路5022将暂时存储器5024中的数据写入第一存储单元后,暂停对目标存储器503进行测试。

步骤d、测试控制电路在接收到第二暂停测试信号时,若确定算法测试电路对当前测试回合的多个第一存储单元未测试完成,则在控制读写电路将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。

其中,由于第二暂停测试信号的紧急程度相对于第一暂停测试信号来说较高,因此测试电路在接收到第二暂停测试信号时,会直接暂停测试。

示例性的,测试电路502的测试控制电路5025在接收到第二暂停测试信号时,若确定算法测试电路5023对当前测试回合的多个第一存储单元未测试完成,则在控制读写电路5022将暂时存储器中的数据写入第一存储单元后,暂停对目标存储器进行测试。在这种情况下,即使当前测试回合还未测试完,也依旧暂停测试。暂停时,由于当前测试回合未测试完成,因此地址管理电路5021不产生下一测试回合的第一地址。

在一些实施例中,控制系统向测试电路发送暂停测试信号之后,还可以向测试电路发送重开始测试信号,重开始测试信号用于指示测试电路继续对存储器的存储单元进行测试。因此,在上述步骤c或步骤d之后,本申请实施例提供的测试存储器的方法还可以包括:

步骤e、控制系统产生第一重开始测试信号或第二重开始测试信号。而后执行步骤f或步骤g。

其中,第一重开始测试信号产生在第一暂停测试信号之后,第二重开始测试信号产生在第二暂停测试信号之后。

示例性的,当控制系统501需要暂停测试,产生第一暂停信号之后,若要继续对目标存储器503进行测试,则会产生第一重开始信号。相应的,当控制系统501需要暂停测试,产生第二暂停信号之后,若要继续对目标存储器503进行测试,则会产生第二重开始信号。

步骤f、测试控制电路在接收到第一重开始测试信号后,从地址管理电路产生的下一测试回合的第一地址开始,继续对目标存储器进行测试。

示例性的,由于测试控制电路5025在接收到第一暂停信号暂停测试之前,已对当前测试回合测试完成,因此在接收到第一重开始测试信号后,会从地址管理电路5021产生的下一测试回合的第一地址开始,继续对目标存储器503进行测试。具体的,是 从地址管理电路5021中的地址跳变器5021b产生的下一测试回合的第一地址开始,继续对目标存储器503进行测试。

步骤g、测试控制电路在接收到第二重开始测试信号后,从当前测试回合的第一地址开始,继续对目标存储器进行测试。

示例性的,由于测试控制电路5025在接收到第二暂停信号暂停测试之前,并未对当前测试回合测试完成,因此在接收到第二重开始测试信号后,会从当前测试回合的第一地址开始,重新对目标存储器503进行测试。

由此,本申请实施例提供的一种测试存储器的方法中,通过控制系统产生启动测试信号,测试设备接收到该启动测试信号后,逐测试回合对目标存储器进行测试。并且由测试设备自身确定本测试回合待测试的存储单元,由测试设备自身与目标存储器进行交互,将目标存储器中待测试的存储单元的数据迁移到自身原有的暂时存储器中,再对待测试的存储单元进行测试。从而不需要如现有技术中系统侧与存储器进行交互(即现有技术中需要系统侧将存储器存储单元的数据的读出与写回),也不需要系统侧发送待测试的地址范围给BIST电路,指示BIST电路对存储器执行算法测试,因此简化了与控制系统侧的交互,有效减少测试的时间。相比于现有技术中一次性将所有存储单元的数据迁移出来这种方式,本申请通过逐测试回合对目标存储器进行测试能够减少每回合测试时需要迁移的数据量,进而不需要新增加容量较大的寄存器或存储器来保存数据,减少了硬件开销。达到在不增加额外硬件开销的情况下实现对存储器的故障检测,同时简化与系统侧的交互,有效减少测试的时间。

与上述图6提供的测试存储器的方法对应,在图5所示的电子装置的结构基础上,芯片500的工作流程可以包括:

控制系统501产生启动测试信号。

测试控制电路5025接收到启动测试信号。

地址跳变器5021b根据测试回合,基于地址寄存器5021a记录的存储单元的首地址获得每个测试回合的第一地址。具体实现可以参见上述方法步骤中步骤603的具体说明。

转换电路5201c在第一地址上加上偏移量,获得多个第一存储单元的地址。具体实现可以参见上述方法步骤中步骤603的具体说明。

读写电路5022将多个第一存储单元中的数据写入暂时存储器5024。具体实现可以参见上述方法步骤中步骤604的具体说明。

算法测试电路5023测试多个第一存储单元。具体实现可以参见上述方法步骤中步骤605的具体说明。

读写电路5022在算法测试电路5023完成对多个第一存储单元的测试后,将暂时存储器5024中的数据写入多个第一存储单元。具体实现可以参见上述方法步骤中步骤606的具体说明。

至此,完成了一个测试回合的测试。接下来,还可以继续进行下一测试回合的测试,此处不过多赘述。

芯片700进行测试时,若测试出某些存储单元存在缺陷,则芯片700的工作流程还可以包括:

算法测试电路5023对多个第一存储单元测试结束后,得到存在缺陷的存储单元的错误信息,暂时存储器5024缓存存在缺陷的存储单元的错误信息。具体实现可以参见上述方法步骤中步骤a的具体说明。

芯片500还可以在接收到暂停测试信号时执行相应的工作流程,芯片500的工作流程还可以包括:

控制系统501产生第一暂停测试信号或第二暂停测试信号,其中第二暂停测试信号的优先级高于第一暂停测试信号的优先级。

测试控制电路5025在接收到第一暂停测试信号时,若确定算法测试电路5023对当前测试回合的多个第一存储单元未测试完成,则控制算法测试电路5023对多个第一存储单元测试完成后,控制地址管理电路5021产生下一测试回合的第一地址,并在控制读写电路5022将暂时存储器5024中的数据写入第一存储单元后,暂停对目标存储器503进行测试。具体实现可以参见上述方法步骤中步骤c的具体说明。

测试控制电路5025在接收到第二暂停测试信号时,若确定算法测试电路5023对当前测试回合的多个第一存储单元未测试完成,则在控制读写电路5022将暂时存储器5024中的数据写入第一存储单元后,暂停对目标存储器503进行测试。具体实现可以参见上述方法步骤中步骤d的具体说明。

控制系统向测试电路发送暂停测试信号之后,还会向测试电路发送重开始测试信号,

芯片500还可以在接收到重开始测试信号时执行相应的工作流程,芯片500的工作流程还可以包括:

控制系统产生第一重开始测试信号或第二重开始测试信号。其中,第一重开始测试信号产生在第一暂停测试信号之后,第二重开始测试信号产生在第二暂停测试信号之后。

测试控制电路5025在接收到第一重开始测试信号后,从地址管理电路5021中的地址跳变器5021b产生的下一测试回合的第一地址开始,继续对目标存储器503进行测试。具体实现可以参见上述方法步骤中步骤f的具体说明。

测试控制电路5025在接收到第二重开始测试信号后,从当前测试回合的第一地址开始,继续对目标存储器503进行测试。具体实现可以参见上述方法步骤中步骤g的具体说明。

由此,本申请实施例提供的电子装置,例如芯片,可以通过逐测试回合对目标存储器进行测试,由于每个测试回合进行测试的存储单元很少,因此需要存储的数据也很少,可以直接复用测试电路中的暂时存储器来存储待测试的存储单元的数据,进而不需要新增加额外的寄存器或存储器,减少了硬件开销。此外,简化了控制系统与测试设备和目标存储器的交互,使控制系统只需要向测试设备发送信号,即可指示测试设备对目标存储器进行测试或停止测试,控制系统不需要与目标存储器进行交互,达到简化电路设计、减少与控制系统的信令交互的技术效果,同时减少了测试时间。

可以理解的是,上述存储装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件 的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

本申请实施例可以根据上述方法示例对上述存储装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用集成的单元的情况下,如图7所示,本申请实施例公开了一种电子装置700,该电子装置700可以为上述实施例中芯片。电子装置700可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子装置700的动作进行控制管理,例如,可以用于支持电子装置700执行上述控制系统501和测试设备502执行的步骤(或者执行上述控制系统501执行的步骤)。存储模块可以用于支持电子装置700存储程序代码和数据等,例如,还可以用于支持电子装置700执行上述目标存储器503执行的步骤(或者执行上述测试设备502和目标存储器503执行的步骤)。通信模块,可以用于支持电子装置700与其他设备的通信,例如与外部设备的通信。

当然,上述电子装置700中的单元模块包括但不限于上述处理模块、存储模块和通信模块。例如,电子装置700中还可以包括电源模块等。电源模块用于对电子装置700供电。

其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为芯片接口等与其他外部设备交互的设备。

例如,处理模块为处理器701,存储模块可以为存储器702,通信模块可以称为通信接口703。本申请实施例所提供的电子装置700可以为图5所示的芯片500。其中,上述处理器、存储器、通信接口等可以连接在一起,例如通过总线连接。

本申请实施例还提供一种电子装置,包括一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子装置执行上述相关方法步骤实现上述实施例中的测试存储器的方法。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序代码,当处理器执行该计算机程序代码时,电子装置执行上述实施例中测试存储器的方法。

本申请的实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子装置执行的测试存储器的方法。

其中,本实施例提供的电子装置、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的 对应的方法中的有益效果,此处不再赘述。

通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 存储器件的测试装置及相关的存储器件的测试和制造方法
  • 存储器测试方法及其存储器装置
  • 阻变存储器测试方法以及测试装置
  • 打线及测试方法及适应此方法的快闪存储器装置
  • 用于测试包括处理单元和程序和/或数据存储器的被测装置的自动化测试设备和包括测试控制器、与被测装置的一个或多个接口、共享存储器的自动化测试设备以及用于测试被测装置的方法
  • 一种存储器测试装置及一种存储器芯片测试方法
技术分类

06120116507209