CN113160873A - 存储器测试方法、装置、电子设备及存储介质 - Google Patents

存储器测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113160873A
CN113160873A CN202110269905.9A CN202110269905A CN113160873A CN 113160873 A CN113160873 A CN 113160873A CN 202110269905 A CN202110269905 A CN 202110269905A CN 113160873 A CN113160873 A CN 113160873A
Authority
CN
China
Prior art keywords
read
storage unit
memory
test data
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110269905.9A
Other languages
English (en)
Other versions
CN113160873B (zh
Inventor
付旭东
高国重
郝守青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN202110269905.9A priority Critical patent/CN113160873B/zh
Publication of CN113160873A publication Critical patent/CN113160873A/zh
Application granted granted Critical
Publication of CN113160873B publication Critical patent/CN113160873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1206Location of test circuitry on chip or wafer
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供了一种存储器测试方法、装置、电子设备及存储介质,涉及电子设备技术领域。该方法包括:通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,可以同时测试写端口与读端口之间是否存在干扰,以及多个读端口之间是否存在干扰,可以快速确定存储器是否为故障存储器。

Description

存储器测试方法、装置、电子设备及存储介质
技术领域
本发明涉及电子设备技术领域,特别是涉及一种存储器测试方法、装置、电子设备及存储介质。
背景技术
随着芯片工艺的不断升级迭代,芯片中存储器所占的规模和数量不断变大,使得存储器的测试过程越来越复杂。一般情况下,存储器中会设置至少一个写端口和多个读端口,此时需要测试写端口与读端口同时动作时,写端口与读端口之间是否存在干扰,以及多个读端口同时动作时,多个读端口之间是否存在干扰。
在先技术中,分别测试多个读端口之间的干扰以及写端口和读端口之间的干扰,多个读端口之间的干扰与写端口和读端口之间的干扰分别测试时,测试过程所需的时间比较长,测试效率较低。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种存储器测试方法,以解决分别测试多个读端口之间的干扰以及写端口和读端口之间的干扰时,测试效率较低的问题。
为了解决上述问题,本发明实施例公开了一种存储器测试方法,用于测试具有至少一个写端口和至少两个读端口的存储器,包括:
通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
可选地,所述第二测试数据为对所述第一测试数据进行取反运算得到的数据;
在所述得到对应的第一读取结果之后,所述方法还包括:
从所述起始存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
若从所述存储单元中读取的第二读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
可选地,在所述得到对应的第二读取结果之后,所述方法还包括:
从截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第二测试数据,同时通过所述读端口对未写入所述第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;所述截止存储单元为所述第一个存储单元和所述最后一个存储单元中与所述起始存储单元不同的存储单元;
若从所述存储单元中读取的第三读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
可选地,在所述得到对应的第三读取结果之后,所述方法还包括:
从所述截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
若从所述存储单元中读取的第四读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
可选地,所述写端口的数量为多个;
所述从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,包括:
针对所有所述写端口中的每个写端口,同步执行如下操作:
从所述写端口对应的测试区域中的起始存储单元开始,通过所述写端口依次向所述写端口对应的测试区域中的每个存储单元写入所述第二测试数据;
在写入所述第二测试数据的同时,通过所述写端口对应的读端口分别对所述写端口对应的测试区域中未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;
其中,所述写端口对应的测试区域为预先从所述存储器中划分出的区域,所述写端口对应的读端口为预先从所述至少两个读端口中为所述写端口分配的读端口。
可选地,所述至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
可选地,若所述起始存储单元为第一个存储单元,则所述写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若所述起始存储单元为最后一个存储单元,则所述写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
可选地,向所述存储单元写入的所述第一测试数据和所述第二测试数据为根据所述存储单元的地址生成的测试数据。
本发明实施例还公开了一种存储器测试装置,用于测试具有至少一个写端口和至少两个读端口的存储器,所述装置包括:
写入模块,用于通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
读写模块,用于从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
确定模块,用于若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
可选地,所述第二测试数据为对所述第一测试数据进行取反运算得到的数据;
所述读写模块还用于从所述起始存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
所述确定模块还用于若从所述存储单元中读取的第二读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
可选地,所述读写模块还用于从截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第二测试数据,同时通过所述读端口对未写入所述第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;所述截止存储单元为所述第一个存储单元和所述最后一个存储单元中与所述起始存储单元不同的存储单元;
所述确定模块还用于若从所述存储单元中读取的第三读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
可选地,所述读写模块还用于从所述截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
所述确定模块还用于若从所述存储单元中读取的第四读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
可选地,所述写端口的数量为多个;
所述读写模块,具体用于针对所有所述写端口中的每个写端口,同步执行如下操作:从所述写端口对应的测试区域中的起始存储单元开始,通过所述写端口依次向所述写端口对应的测试区域中的每个存储单元写入所述第二测试数据;在写入所述第二测试数据的同时,通过所述写端口对应的读端口分别对所述写端口对应的测试区域中未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;
其中,所述写端口对应的测试区域为预先从所述存储器中划分出的区域,所述写端口对应的读端口为预先从所述至少两个读端口中为所述写端口分配的读端口。
可选地,所述至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
可选地,若所述起始存储单元为第一个存储单元,则所述写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若所述起始存储单元为最后一个存储单元,则所述写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
可选地,向所述存储单元写入的所述第一测试数据和所述第二测试数据为根据所述存储单元的地址生成的测试数据。
本发明实施例还公开了一种电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
本发明实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明实施例中一个或多个所述的存储器测试方法。
本发明实施例包括以下优点:
在本发明实施例中,存储器具有至少一个写端口和至少两个读端口,通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,写端口与读端口同时动作时,可以测试写端口与读端口之间是否存在干扰,多个读端口同时动作时,可以测试多个读端口之间是否存在干扰,使端口交互算法和端口隔离算法可以同步执行,避免分步执行端口交互算法和端口隔离算法,缩短了测试时间,从而可以快速确定存储器是否为故障存储器。
附图说明
图1示出了本发明的一种存储器测试方法实施例的步骤流程图;
图2示出了本发明的一种芯片的内部结构示意图;
图3示出了本发明的另一种存储器测试方法实施例的步骤流程图;
图4示出了本发明的一种存储器测试装置实施例的结构框图;
图5是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在对本发明实施例进行详细说明之前,首先对目前的存储器测试方法进行介绍。
在先技术中,一般采用存储器内建自测试技术(memory built-in self-test,MBIST)对芯片中的存储器进行测试,以确定存储器是否为故障存储器。MBIST的核心是MBIST测试算法,针对存储器中可能存在的写端口与读端口之间的干扰,可以设置端口隔离(Port isolation)算法进行测试,在执行端口隔离算法时,控制写端口和读端口同时动作,通过写端口向测试区域中的每个存储单元写入测试数据,同时通过读端口对测试区域中未写入测试数据的存储单元进行读取,得到读取结果,比较读取结果与预先写入的测试数据,若读取结果与预先写入的测试数据不同,则说明写端口与读端口之间存在干扰,可以确定存储器为故障存储器。其中,测试区域中包括存储器中多个地址连续的存储单元,若测试区域中包括地址连续的N(N为正整数)个存储单元,对每个存储单元进行一次读操作或写操作的时间为一个时钟周期T,则每执行一次端口隔离算法需要先后两次向测试区域中的存储单元写入测试数据,每写一次测试数据所需时间为N×T,因此执行一次端口隔离算法所需的时间为2×N×T。其中,在执行端口隔离算法时,在第二次写入测试数据的同时读取测试数据。
同样的,针对存储器中可能存在的多个读端口之间的干扰,可以设置端口交互(Port interaction)算法进行测试,在执行端口交互算法时,控制多个读端口同时动作,分别通过每个读端口对测试区域中不同的存储单元进行读取,得到对应的读取结果,比较读取结果与预先写入的测试数据,若读取结果与测试数据不同,则说明多个读端口之间存在干扰,可以确定存储器为故障存储器。若测试区域中包括地址连续的N个存储单元,对每个存储单元进行一次读操作或写操作的时间为一个时钟周期T,则每执行一次端口交互算法需要先向测试区域中的存储单元写入测试数据,然后从存储单元中读取测试数据,每写一次测试数据所需时间为N×T,每读一次测试数据所需时间为N×T,因此执行一次端口交互(Port interaction)算法所需的时间为2×N×T。
在实际应用中,在对存储器进行测试时,若需要依次执行端口隔离算法和端口交互算法,此时需要较长的时间才能完成测试。结合上述举例,依次执行执行端口隔离算法和端口交互算法时所需的测试时间为4×N×T。
本发明实施例的核心构思之一在于,在测试过程中,使多个读端口与写端口同时动作,若读取结果与写入的测试数据不同,则说明存储器中多个读端口之间存在干扰或者读端口与写端口之间存在干扰,或者多个读端口之间存在干扰,并且读端口与写端口之间存在干扰,可以确定存储器为故障存储器。
参照图1,示出了本发明的一种存储器测试方法实施例的步骤流程图,用于测试具有至少一个写端口和至少两个读端口的存储器,该方法可以包括如下步骤:
步骤101、通过写端口向测试区域中的每个存储单元写入第一测试数据。
其中,测试区域包括存储器中地址连续的多个存储单元。
本实施例中,芯片内部集成有存储器、MBIST电路和处理器(central processingunit,CPU),如图2所示,图2示出了本发明的一种芯片的内部结构示意图,MBIST电路是在芯片内部加入少量的专用测试逻辑以实现对存储器的单独测试。MBIST电路包括测试向量产生电路、内建自测试(built-in self-test,BIST)控制器和响应分析器。CPU可以向BIST控制器输入测试启动指令,BIST控制器可以响应于测试启动指令,执行预先设置的测试算法,例如端口隔离算法和端口交互算法,控制测试向量产生电路生成多种测试向量,通过多种测试向量对存储器进行多种读写操作。响应分析器可以分析读写操作的结果,确定存储器是否存在故障。存储器为多端口存储器,例如(First Input First Output,FIFO)存储器,多端口存储器具有多个端口,多个端口中的至少一个端口被配置为写端口,其他端口被配置为读端口,读端口的数量不少于两个。CPU可以通过读端口对存储器中的存储单元进行读取,以及通过写端口向存储单元中写入数据,多个端口同时动作,可以提高存储器的通信效率。写端口和读端口的配置方法可根据需求设置,本实施例对此不做限制。
在一种实施例中,可以将存储器中地址连续的部分存储单元作为测试区域,通过读端口和写端口对测试区域中的存储单元进行读写操作,以完成对读端口和写端口的测试。例如,若存储器中包括64个存储单元,可以将第1至第31个存储单元作为测试区域,或者将第20至第40个存储单元作为测试区域。
在另一种实施例中,也可以将整个存储器作为测试区域,测试区域包括存储器中的所有存储单元。结合上述举例,测试区域可以包括存储器中的64个存储单元,当测试区域中包括所有存储单元时,在测试过程中可以对所有存储单元进行读写操作,此时若某个存储单元存在写入或读出故障,可以检测确定存储器为故障存储器。
需要说明的是,为了保证测试结果的准确性,测试区域中需要包括一定数量的存储单元,通过对一定数量的存储单元的读写操作,对存储器中的写端口和读端口进行测试,测试区域中存储单元的具体数量可以根据需求设置,本实施例对此不做限制。
示例性地,存储器具有6个端口,其中的两个端口被配置为写端口,四个端口被配置为读端口,同时存储器具有64个存储单元,每个存储单元为64位,可以存储64位的二进制数据。在测试过程中,可以将整个存储器作为测试区域。BIST控制器在接收到CPU输入的测试启动指令之后,可以响应于测试启动指令,通过两个写端口中的第一写端口或第二写端口向测试区域中的每个存储单元依次写入第一测试数据。第一测试数据为与存储单元位数相同的二进制数据,具体向存储单元写入第一测试数据的方法可以根据需求设置,本实施例对此不做限制。
步骤102、从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果。
其中,起始存储单元为测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元。
本实施例中,在向测试区域中的每个存储单元分别写入第一测试数据之后,BIST控制器可以控制至少一个写端口和多个读端口同时动作,以确定写端口与读端口之间是否存在干扰,以及确定多个读端口之间是否存在干扰。
可选地,至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
示例性地,起始存储单元为测试区域中的第一个存储单元,结合上述举例,第一写端口可以从测试区域中的第一个存储单元开始,按地址从小到大的顺序,依次向测试区域中的每个存储单元写入第二测试数据。在写入第二测试数据的同时,四个读端口中的第一读端口从第二个存储单元开始,按地址从小到大的顺序,依次读取每个存储单元,得到每个存储单元分别对应的第一读取结果;第二读端口从第三个存储单元开始,按地址从小到大的顺序,依次读取每个存储单元,得到每个存储单元分别对应的第一读取结果;第三读端口从第四个存储单元开始,按地址从小到大的顺序,依次读取每个存储单元,得到每个存储单元分别对应的第一读取结果;第四读端口从第五个存储单元开始,按地址从小到大的顺序,依次读取每个存储单元,得到每个存储单元分别对应的第一读取结果。
其中,在同一时刻,第一写端口、第一读端口、第二读端口、第三读端口和第四读端口同时动作,分别对应的一个存储单元进行操作。当起始存储单元为测试区域中的第一个存储单元时,可以按地址从小到大的顺序,依次向每个存储单元写入第二测试数据,保持第一写端口写入的存储单元的地址小于每个读端口读取的存储单元的地址,可以使每个读端口分别对未写入第二测试数据的存储单元进行读取。当第一写端口向最后一个存储单元写入第二测试数据之后,停止对存储单元的写入和读取。测试区域中的第一个存储单元并未被读端口读取,第二写端口未参与测试。
实际应用中,为了便于数据的读取和写入,第一测试数据与第二测试数据可以是不同的二进制数据,控制读端口读取预先写入的第一测试数据,同时控制写端口写入第二测试数据,使写端口和读端口可以同时动作,以测试写端口与读端口之间是否存在干扰。当排序相邻的两个读端口读取的存储单元的地址之间相差1时,可以方便确定并读取未写入第二测试数据的存储单元。
需要说明的是,多个读端口在同时读取的过程中,多个读端口读取的存储单元是测试区域中未写入第二测试数据的任意存储单元。起始存储单元也可以为测试区域中的最后一个存储单元,此时第一写端口可以按地址从大到小的顺序,依次向每个存储单元写入第二测试数据。相应的,多个读端口也可以按地址从大到小的顺序,依次对测试区域中的存储单元进行读取。若按地址从大到小的顺序向测试区域中的存储单元写入第二测试数据,可以使每个读端口读取的存储单元的地址小于第一写端口写入的存储单元的地址,以保证在写入第二测试数据的同时,对未写入第二测试数据的存储单元进行读取。
实际应用中,相邻的存储单元之间可能会存在耦合故障,在同时对相邻的存储单元进行读取时,可能会导致读出的数据错误,具有耦合故障的存储器为故障存储器。设置两个读端口读取的存储单元的地址之间相差1时,在测试过程中,若相邻的两个存储单元之间存在耦合故障,排序相邻的两个读端口读出的第一读取结果会与写入的第一测试数据不同,此时可以确定存储器为故障存储器,可以同时对存储单元之间的耦合故障进行测试。
可选地,若起始存储单元为第一个存储单元,则写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若起始存储单元为最后一个存储单元,则写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
在一种实施例中,在控制写端口与读端口同时动作时,可以控制写端口写入的存储单元的地址与其中一个读端口读取的存储单元的地址之间相差1。结合上述举例,起始存储单元为第一个存储单元时,第一写端口从第一个存储单元开始,依次向测试区域中的每个存储单元写入第二测试数据,第一读端口从第二个存储单元开始,依次对测试区域中的存储单元进行读取,第一写端口写入的存储单元与第一读端口读取的存储单元的地址之间相差1。相反的,起始存储单元为最后一个存储单元时,第一写端口从最后一个存储单元开始,依次向测试区域中的每个存储单元写入第二测试数据,第一读端口从第63个(倒数第二个)存储单元开始,依次对测试区域中的存储单元进行读取,第一写端口写入的存储单元与第一读端口读取的存储单元的地址之间相差1。
实际应用中,相邻的两个存储单元之间,一个存储单元的写入会干扰另一个存储单元的读取,或者一个存储单元的读取会干扰另一个存储单元的写入,可能会导致读出或写入的数据错误。设置写端口写入的存储单元的地址与其中一个读端口读取的存储单元的地址之间相差1时,在测试过程中,若相邻的两个存储单元之间存在干扰,读端口读出的第一读取结果会与写入的第一测试数据不同,此时可以确定存储器为故障存储器,可以同时对存储单元之间的干扰进行测试。
步骤103、若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
本实施例中,每个读端口在读取到第一读取结果之后,可以比较第一读取结果与写入的第一测试数据是否相同。例如,BIST控制器在控制第一读端口读取到第二个存储单元对应的第一读取结果,控制第二读端口读取到第三个存储单元对应的第一读取结果,控制第三读端口读取到第四个存储单元对应的第一读取结果,以及控制第四读端口读取到第五个存储单元对应的第一读取结果之后,可以控制响应分析器动作,比较第二个存储单元对应的第一读取结果与预先写入第二个存储单元的第一测试数据,比较第三个存储单元对应的第一读取结果与预先写入第三个存储单元的第一测试数据,比较第四个存储单元对应的第一读取结果与预先写入第四个存储单元的第一测试数据,以及比较第五个存储单元对应的第一读取结果与预先写入第五个存储单元的第一测试数据,若任意一个第一读取结果与写入的第一测试数据不同,则输出故障信号,确定存储器为故障存储器。以此类推,在每次读取到对应的第一读取结果之后,比较第一读取结果与对应写入的第一测试数据,若从存储单元读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
需要说明的是,在确定存储器为故障存储器时,存储器存在的故障可能是写端口与读端口之间存在干扰,或者是多个读端口之间存在干扰,或者写端口与读端口之间存在干扰,并且多个读端口之间也存在干扰。实际应用中,只需要确定存储器为故障存储器即可,并不需要确定具体的故障原因。
本实施例中,在测试过程中,控制写端口与读端口同时动作时,可以缩短测试时间。结合步骤101至步骤103,当测试区域包括存储器中的所有存储单元时,在测试过程中,执行步骤101所需时间为N×T,执行步骤102所需时间为N×T,整个测试过程所需时间为2×N×T。相比于现有技术所需的时间4×N×T,缩短了测试时间。
综上所述,本实施例中,存储器具有至少一个写端口和至少两个读端口,通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,写端口与读端口同时动作时,可以测试写端口与读端口之间是否存在干扰,多个读端口同时动作时,可以测试多个读端口之间是否存在干扰,使端口交互算法和端口隔离算法可以同步执行,避免分步执行端口交互算法和端口隔离算法,缩短了测试时间,从而可以快速确定存储器是否为故障存储器。
参照图3,示出了本发明的另一种存储器测试方法实施例的步骤流程图,该方法可以包括如下步骤:
步骤301、通过写端口向测试区域中的每个存储单元写入第一测试数据。
步骤302、从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果。
可选地,向存储单元写入的第一测试数据和第二测试数据为根据存储单元的地址生成的测试数据。
在一种实施例中,向存储单元写入的第一测试数据和第二测试数据与存储单元的地址对应。例如,存储单元的地址可以用字符addr表示,每个存储单元的地址可以通过6位的二进制数表示。写入存储单元的第一测试数据可以用字符background表示,每个存储单元为64位,则每个存储单元对应的第一测试数据可以由存储单元的11个地址数据依次排列组成,即background=11{addr},存储单元对应的第一测试数据由存储单元的11个地址组成,包括66位的二进制数。BIST控制器在通过写端口向存储单元写入第一测试数据时,可以截取background中低64位的二进制数写入存储单元,使写入每个存储单元的第一测试数据与存储单元的地址对应,为唯一的测试数据。相应的,第二测试数据可以是对第一测试数据进行取反运算得到的数据,因此,写入每个存储单元的第二测试数据也与存储单元的地址对应,为唯一的测试数据。
实际应用中,多个读端口同时对多个存储单元进行读取时,一个读端口的读取结果可能会影响另一个读端口的读取结果,导致测试错误。结合上述举例,当向第二个存储单元和第三个存储单元写入的第一测试数据相同时,若从第二个存储单元读取的第一读取结果与第一测试数据不同,而从第三个存储单元读取的第一读取结果与第一测试数据相同,此时如果第一读端口与第二读端口之间存在干扰,干扰可能会导致第二个存储单元对应的第一读取结果与第三个存储单元对应的读取结果相同,会使第二个存储单元对应的第一读取结果与第一测试数据相同。此时,存储器为故障存储器,但是由于第一读端口与第二读端口之间的干扰,使第二个存储单元对应的第一读取结果与第一测试数据相同,导致无法检测到故障。相反的,当向第二个存储单元和第三个存储单元写入的第一测试数据不同时,若第二个存储单元对应的第一读取结果与第一测试数据不同,而第三个存储单元对应的第一读取结果与第一测试数据相同,此时即使第一读端口与第二读端口之间的干扰会影响第二个存储单元对应的第一读取结果,但是由于写入第三个存储单元的第一测试数据与写入第二个存储单元的第一测试数据不同,并不会导致第二存储单元对应的第一读取结果与写入的第一测试数据相同。因此,当向存储单元写入的第一测试数据和第二测试数据分别与存储单元的地址对应时,可以更加准确的确定存储器是否为故障存储器。
步骤303、从起始存储单元开始,通过写端口依次向每个存储单元写入第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果。
在一种实施例中,第二测试数据为对第一测试数据进行取反运算得到的数据。结合上述举例,第一测试数据与存储单元的地址对应,第一测试数据可以由存储单元的地址组成,在得到二进制的第一测试数据之后,可以直接对第一测试数据进行取反运算,得到对应的第二测试数据。在对存储单元进行第一次读取,得到对应的第一读取结果之后,可以再次从测试区域中的起始存储单元开始,依次向测试区域中的每个存储单元写入对应的第一测试数据,同时可以控制四个读端口同时动作,对多个未写入第一测试数据的存储单元进行读取,即对测试区域中的存储单元进行第二次读取,得到对应的第二读取结果。其中,通过写端口依次向测试区域中的每个存储单元写入第一测试数据的过程与通过写端口向测试区域中的每个存储单元写入第二测试数据的过程相同,本实施例在此不做赘述。同样的,在写入第一测试数据的同时,控制多个读端口对未写入第一测试数据的存储单元进行读取的过程与控制多个读端口对未写入第二测试数据的存储单元进行读取的过程相同,本实施例对此不做赘述。
实际应用中,由于存储单元中存储的数据为二进制数据,因此不同的测试数据可能会影响存储单元的测试。第二测试数据为对第一测试数据进行取反运行得到的测试数据,在测试过程中,在向存储单元中写入和读取第一测试数据之后,向存储单元中写入和读取第二测试数据,可以测试存储单元在存储和读取不同测试数据时是否存在故障,可以更准确的确定存储器是否为故障存储器。
步骤304、从截止存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果。
其中,截止存储单元为第一个存储单元和最后一个存储单元中与起始存储单元不同的存储单元。例如,若起始存储单元为测试区域中的第一个存储单元,则截止存储单元为测试区域中的最后一个存储单元。反之,若起始存储单元为测试区域中的最后一个存储单元,则截止存储单元为测试区域中的第一个存储单元。
本实施例中,在对存储器进行测试的过程中,可以依次对存储器进行顺序测试和逆序测试。结合上述举例,第一次向测试区域中的存储单元写入第二测试数据时,起始存储单元为第一个存储单元,在向测试区域中的每个存储单元写入第二测试数据时,从第一个存储单元开始,按存储单元的地址,顺序向每个存储单元写入第二测试数据。第二次向测试区域中的存储单元写入第二测试数据时,截止存储单元为最后一个存储单元,在向测试区域中的每个存储单元写入第二测试数据时,从最后一个存储单元开始,按存储单元的地址,逆序依次向每个存储单元写入第二测试数据。
其中,当从截止存储单元开始,通过写端口依次向每个存储单元写入第二测试数据的同时,可以控制多个读端口同时动作,对未写入第二测试数据的其他存储单元进行读取,得到对应的第三读取结果。
实际应用中,存储器的顺序读取与逆序读取过程都可能存在故障。因此,当测试过程中包括对存储器进行顺序读取的过程与逆序读取的过程时,即可以测试存储器在顺序读取时是否存在故障,也可以测试存储器在逆序读取时是否存在故障。
步骤305、从截止存储单元开始,通过写端口依次向每个存储单元写入第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果。
本实施例中,在对存储器进行逆序测试的过程中,可以参考顺序测试过程,先读取顺序测试过程中写入的第一测试数据,然后写入第二测试数据,读取第二测试数据。结合上述举例,在得到第三读取结果之后,可以从存储器中的最后一个存储单元开始,通过第一写端口依次向存储器中的每个存储单元写入第一测试数据,并通过第一读端口、第二读端口、第三读端口和第四读端口同时对存储器中未写入第一测试数据的其他存储单元进行读取,得到对应的第四读取结果。从截止存储单元开始,依次向每个存储单元写入第一测试数据,并通过读端口对未写入第一测试数据的其他存储单元进行读取的过程与步骤304中从截止存储单元开始,依次向每个存储单元写入第二测试数据,并通过读端口对未写入第二测试数据的其他存储单元进行读取的过程相同,本实施例对此不做赘述。
实际应用中,在对存储器进行逆序测试的过程中,向存储单元中写入第二测试数据,并对第二测试数据进行读取,可以在逆序测试过程中,测试存储单元在写入和读取不同测试数据时,是否存在故障,从而可以更准确的确定存储器是否为故障存储器。
步骤306、若从存储单元中读取的读取结果与写入存储单元的测试数据不同,则确定存储器为故障存储器。
本实施例中,在对存储器进行测试的过程中,当从存储单元中读取的第一测试结果与写入存储单元的第一测试数据不同时,可以确定存储器为故障存储器。同样的,当从存储单元中读取的第二测试结果与写入存储单元的第二测试数据不同时,以及从存储单元中读取的第三测试结果与写入存储单元的第一测试数据不同,从存储单元中读取的第四测试结果与写入存储单元的第二测试数据不同时,都可以确定存储器为故障存储器。
需要说明的是,当写入存储单元的第一测试数据和第二测试数据为与存储单元的地址对应的测试数据时,在比较过程中,需要比较从存储单元读取的读取结果与对应写入存储单元的第一测试数据或第二测试数据。
综上所述,本实施例中,存储器具有至少一个写端口和至少两个读端口,通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,写端口与读端口同时动作时,可以测试写端口与读端口之间是否存在干扰,多个读端口同时动作时,可以测试多个读端口之间是否存在干扰,使端口交互算法和端口隔离算法可以同步执行,避免分步执行端口交互算法和端口隔离算法,缩短了测试时间,从而可以快速确定存储器是否为故障存储器。
可选地,当存储器具有多个写端口时,步骤302可以通过如下方式实现:
针对所有写端口中的每个写端口,同步执行如下操作:
从写端口对应的测试区域中的起始存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第二测试数据;
在写入第二测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第二测试数据的其他存储单元进行读取,得到对应的第一读取结果;
其中,写端口对应的测试区域为预先从存储器中划分出的区域,写端口对应的读端口为预先从至少两个读端口中为写端口分配的读端口。
在一种实施例中,当存储器具有多个写端口时,可以通过写端口将存储器划分为多个测试区域,每个测试区域对应一个写端口,并且可以为每个写端口分配至少一个读端口。示例性地,存储器具有64个存储单元,并且具有两个写端口和四个读端口,此时可以将存储器中的第1至第32个存储单元划分为第一测试区域,将第32至第64个存储单元划分为第二测试区域,第一测试区域对应两个写端口中的第一写端口,第二测试区域对应两个写端口中的第二写端口。并且,可以将四个读端口中的第一读端口和第二端口分配给第一写端口,将第三读端口和第四读端口分配给第二写端口。
相应的,在执行步骤302时,控制第一写端口动作,依次向第一测试区域中的每个存储单元写第二测试数据,同时控制第一读端口和第二读端口动作,分别对第一测试区域中未写入第二测试数据的存储单元进行读取,得到对应的第一读取结果。在对第一测试区域进行测试的同时,控制第二写端口动作,依次向第二测试区域中的每个存储单元写第二测试数据,同时控制第三读端口和第四读端口动作,分别对第二测试区域中未写入第二测试数据的存储单元进行读取,得到对应的第一读取结果。
可选地,在向写端口分配读端口时,可以为每个写端口分配至少两个读端口,以在测试过程中,可以保证一个写端口和两个读端口同时动作,对同一个测试区域中的存储单元进行读写。其中,当读端口的数量不足时,也可以为写端口分配一个读端口。或者,不为某个写端口分配读端口,此时未分配读端口的写端口不参与测试。
在一种实施例中,当写端口的数量为多个时,在为写端口划分测试区域时,可以将存储器中的所有存储单元划分到多个测试区域中,使所有存储单元参加测试。所有存储单元都参加测试时,可以在某个存储单元故障时,测试确定存储器为故障存储器。
实际应用中,根据写端口将存储器划分为多个测试区域,并为每个测试区域配置一个或多个读端口。在测试过程中,针对每个测试区域,控制对应的写端口和读端口同时动作,对测试区域进行读写操作。可以在控制写端口与端口同时动作的同时,控制多个写端口同时动作,确定多个写端口同时动作时,是否存在干扰。
同时,当存储器中的存储单元数量较多时,将存储器划分为多个测试区域同时进行测试,可以缩短测试时间。结合上述举例,当将存储器划分为第一测试区域和第二测试区域时,由于两个测试区域同时动作,所需测试时间为2×32×N,而当未划分测试区域时所需测试时间为2×64×N,相比未划分测试区域进行测试,缩短了测试时间。
可选地,步骤303可以通过如下方式实现:
从写端口对应的测试区域中的起始存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第一测试数据;
在写入第一测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果。
在一种实施例中,当向测试区域中的存储单元写入第一测试数据,并控制多个读端口对测试区域中的存储单元进行读取的过程中,也可以通过写端口向对应的测试区域中的存储单元写入第一测试数据,同时通过写端口对应的读端口对写端口对应的存储区域中的存储单元进行读取。
可选地,步骤304可以通过如下方式实现:
从写端口对应的测试区域中的截止存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第二测试数据;
在写入第二测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果。
可选地,步骤305可以通过如下方式实现:
从写端口对应的测试区域中的截止存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第一测试数据;
在写入第一测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果。
在一种实施例中,当对测试区域进行顺序测试和逆序测试时,可以在顺序测试的过程中,使用多个测试区域进行测试,以及在逆序测试过程中,使用多个测试区域进行测试,以进一步缩短测试时间,提高测试效率。
参照图4,示出了本发明的一种存储器测试装置实施例的结构框图,用于测试具有至少一个写端口和至少两个读端口的存储器,装置300具体可以包括如下模块:
写入模块401,用于通过写端口向测试区域中的每个存储单元写入第一测试数据;测试区域包括存储器中地址连续的多个存储单元;
读写模块402,用于从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,起始存储单元为测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
确定模块403,用于若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
可选地,第二测试数据为对第一测试数据进行取反运算得到的数据;
读写模块402还用于从起始存储单元开始,通过写端口依次向每个存储单元写入第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
确定模块403还用于若从存储单元中读取的第二读取结果与写入存储单元的第二测试数据不同,则确定存储器为故障存储器。
可选地,读写模块402还用于从截止存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;截止存储单元为第一个存储单元和最后一个存储单元中与起始存储单元不同的存储单元;
确定模块403还用于若从存储单元中读取的第三读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
可选地,读写模块402还用于从截止存储单元开始,通过写端口依次向每个存储单元写入所述第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
确定模块403还用于若从存储单元中读取的第四读取结果与写入存储单元的第二测试数据不同,则确定存储器为故障存储器。
可选地,写端口的数量为多个;
读写模块402,具体用于从写端口对应的测试区域中的起始存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第二测试数据;在写入第二测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第二测试数据的其他存储单元进行读取,得到对应的第一读取结果;
其中,写端口对应的测试区域为预先从存储器中划分出的区域,写端口对应的读端口为预先从至少两个读端口中为写端口分配的读端口。
可选地,至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
可选地,若起始存储单元为第一个存储单元,则写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若起始存储单元为最后一个存储单元,则写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
可选地,向存储单元写入的第一测试数据和第二测试数据为根据存储单元的地址生成的测试数据。
在本发明实施例中,存储器具有至少一个写端口和至少两个读端口,通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,写端口与读端口同时动作时,可以测试写端口与读端口之间是否存在干扰,多个读端口同时动作时,可以测试多个读端口之间是否存在干扰,使端口交互算法和端口隔离算法可以同步执行,避免分步执行端口交互算法和端口隔离算法,缩短了测试时间,从而可以快速确定存储器是否为故障存储器。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图5是根据一示例性实施例示出的一种电子设备的结构框图。例如,电子设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理部件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种存储器测试方法,该方法包括:
通过写端口向测试区域中的每个存储单元写入第一测试数据;测试区域包括存储器中地址连续的多个存储单元;
从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,起始存储单元为测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
可选地,第二测试数据为对第一测试数据进行取反运算得到的数据;该方法还包括:
从起始存储单元开始,通过写端口依次向每个存储单元写入第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
若从存储单元中读取的第二读取结果与写入存储单元的第二测试数据不同,则确定存储器为故障存储器。
可选地,该方法还包括:
从截止存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;截止存储单元为第一个存储单元和最后一个存储单元中与起始存储单元不同的存储单元;
若从存储单元中读取的第三读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。
可选地,该方法还包括:
从截止存储单元开始,通过写端口依次向每个存储单元写入所述第一测试数据,同时通过读端口对未写入第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
若从存储单元中读取的第四读取结果与写入存储单元的第二测试数据不同,则确定存储器为故障存储器。
可选地,写端口的数量为多个;
所述从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果的步骤,包括:
针对所有所述写端口中的每个写端口,同步执行如下操作:
从写端口对应的测试区域中的起始存储单元开始,通过写端口依次向写端口对应的测试区域中的每个存储单元写入第二测试数据;在写入第二测试数据的同时,通过写端口对应的读端口分别对写端口对应的测试区域中未写入第二测试数据的其他存储单元进行读取,得到对应的第一读取结果;
其中,写端口对应的测试区域为预先从存储器中划分出的区域,写端口对应的读端口为预先从至少两个读端口中为写端口分配的读端口。
可选地,至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
可选地,若起始存储单元为第一个存储单元,则写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若起始存储单元为最后一个存储单元,则写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
可选地,向存储单元写入的第一测试数据和第二测试数据为根据存储单元的地址生成的测试数据。
综上所述,本实施例中,存储器具有至少一个写端口和至少两个读端口,通过写端口向测试区域中的每个存储单元写入第一测试数据,从起始存储单元开始,通过写端口依次向每个存储单元写入第二测试数据,同时通过读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,若从存储单元中读取的第一读取结果与写入存储单元的第一测试数据不同,则确定存储器为故障存储器。在存储器的测试过程中,控制写端口与多个读端口同时动作,写端口与读端口同时动作时,可以测试写端口与读端口之间是否存在干扰,多个读端口同时动作时,可以测试多个读端口之间是否存在干扰,使端口交互算法和端口隔离算法可以同步执行,避免分步执行端口交互算法和端口隔离算法,缩短了测试时间,从而可以快速确定存储器是否为故障存储器。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种存储器测试方法和装置、一种电子设备以及一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种存储器测试方法,其特征在于,用于测试具有至少一个写端口和至少两个读端口的存储器,所述方法包括:
通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
2.根据权利要求1所述的存储器测试方法,其特征在于,所述第二测试数据为对所述第一测试数据进行取反运算得到的数据;
在所述得到对应的第一读取结果之后,所述方法还包括:
从所述起始存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
若从所述存储单元中读取的第二读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
3.根据权利要求2所述的存储器测试方法,其特征在于,在所述得到对应的第二读取结果之后,所述方法还包括:
从截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第二测试数据,同时通过所述读端口对未写入所述第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;所述截止存储单元为所述第一个存储单元和所述最后一个存储单元中与所述起始存储单元不同的存储单元;
若从所述存储单元中读取的第三读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
4.根据权利要求3所述的存储器测试方法,其特征在于,在所述得到对应的第三读取结果之后,所述方法还包括:
从所述截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
若从所述存储单元中读取的第四读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
5.根据权利要求1所述的存储器测试方法,其特征在于,所述写端口的数量为多个;
所述从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果,包括:
针对所有所述写端口中的每个写端口,同步执行如下操作:
从所述写端口对应的测试区域中的起始存储单元开始,通过所述写端口依次向所述写端口对应的测试区域中的每个存储单元写入所述第二测试数据;
在写入所述第二测试数据的同时,通过所述写端口对应的读端口分别对所述写端口对应的测试区域中未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;
其中,所述写端口对应的测试区域为预先从所述存储器中划分出的区域,所述写端口对应的读端口为预先从所述至少两个读端口中为所述写端口分配的读端口。
6.根据权利要求1-5中任一项所述的存储器测试方法,其特征在于,
所述至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
7.根据权利要求6所述的存储器测试方法,其特征在于,
若所述起始存储单元为第一个存储单元,则所述写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若所述起始存储单元为最后一个存储单元,则所述写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
8.根据权利要求1所述的存储器测试方法,其特征在于,
向所述存储单元写入的所述第一测试数据和所述第二测试数据为根据所述存储单元的地址生成的测试数据。
9.一种存储器测试装置,其特征在于,用于测试具有至少一个写端口和至少两个读端口的存储器,所述装置包括:
写入模块,用于通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
读写模块,用于从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
确定模块,用于若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
10.根据权利要求9所述的存储器测试装置,其特征在于,所述第二测试数据为对所述第一测试数据进行取反运算得到的数据;
所述读写模块还用于从所述起始存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第二读取结果;
所述确定模块还用于若从所述存储单元中读取的第二读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
11.根据权利要求10所述的存储器测试装置,其特征在于,
所述读写模块还用于从截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第二测试数据,同时通过所述读端口对未写入所述第二测试数据的其他存储单元分别进行读取,得到对应的第三读取结果;所述截止存储单元为所述第一个存储单元和所述最后一个存储单元中与所述起始存储单元不同的存储单元;
所述确定模块还用于若从所述存储单元中读取的第三读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
12.根据权利要求11所述的存储器测试装置,其特征在于,
所述读写模块还用于从所述截止存储单元开始,通过所述写端口依次向每个所述存储单元写入所述第一测试数据,同时通过所述读端口对未写入所述第一测试数据的其他存储单元分别进行读取,得到对应的第四读取结果;
所述确定模块还用于若从所述存储单元中读取的第四读取结果与写入所述存储单元的第二测试数据不同,则确定所述存储器为故障存储器。
13.根据权利要求9所述的存储器测试装置,其特征在于,所述写端口的数量为多个;
所述读写模块,具体用于针对所有所述写端口中的每个写端口,同步执行如下操作:从所述写端口对应的测试区域中的起始存储单元开始,通过所述写端口依次向所述写端口对应的测试区域中的每个存储单元写入所述第二测试数据;在写入所述第二测试数据的同时,通过所述写端口对应的读端口分别对所述写端口对应的测试区域中未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;
其中,所述写端口对应的测试区域为预先从所述存储器中划分出的区域,所述写端口对应的读端口为预先从所述至少两个读端口中为所述写端口分配的读端口。
14.根据权利要求9-13中任一项所述的存储器测试装置,其特征在于,
所述至少两个读端口读取的存储单元的地址顺序排列,排序相邻的两个读端口读取的存储单元的地址之间相差1。
15.根据权利要求14所述的存储器测试装置,其特征在于,
若所述起始存储单元为第一个存储单元,则所述写端口写入的存储单元的地址比排序最小的读端口读取的存储单元的地址小1;
若所述起始存储单元为最后一个存储单元,则所述写端口写入的存储单元的地址比排序最大的读端口读取的存储单元的地址大1。
16.根据权利要求9所述的存储器测试装置,其特征在于,
向所述存储单元写入的所述第一测试数据和所述第二测试数据为根据所述存储单元的地址生成的测试数据。
17.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
通过所述写端口向测试区域中的每个存储单元写入第一测试数据;所述测试区域包括所述存储器中地址连续的多个存储单元;
从起始存储单元开始,通过所述写端口依次向每个所述存储单元写入第二测试数据,同时通过所述读端口对未写入第二测试数据的其他存储单元分别进行读取,得到对应的第一读取结果;其中,所述起始存储单元为所述测试区域中的第一个存储单元或最后一个存储单元;不同读端口在同一时间读取不同的存储单元;
若从所述存储单元中读取的第一读取结果与写入所述存储单元的第一测试数据不同,则确定所述存储器为故障存储器。
18.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-8中一个或多个所述的存储器测试方法。
CN202110269905.9A 2021-03-12 2021-03-12 存储器测试方法、装置、电子设备及存储介质 Active CN113160873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110269905.9A CN113160873B (zh) 2021-03-12 2021-03-12 存储器测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110269905.9A CN113160873B (zh) 2021-03-12 2021-03-12 存储器测试方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113160873A true CN113160873A (zh) 2021-07-23
CN113160873B CN113160873B (zh) 2023-07-28

Family

ID=76887038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110269905.9A Active CN113160873B (zh) 2021-03-12 2021-03-12 存储器测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113160873B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113889176A (zh) * 2021-09-29 2022-01-04 深圳市金泰克半导体有限公司 Ddr芯片的存储单元的测试方法、装置、设备及存储介质
CN115691632A (zh) * 2022-10-19 2023-02-03 中科声龙科技发展(北京)有限公司 测试控制系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04111143A (ja) * 1990-08-31 1992-04-13 Fujitsu Ltd 多ポートメモリの試験方式
JPH07262800A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd 多ポート型メモリの試験装置
US6216241B1 (en) * 1998-10-08 2001-04-10 Agere Systems Guardian Corp. Method and system for testing multiport memories
US6550032B1 (en) * 1999-07-28 2003-04-15 Lsi Logic Corporation Detecting interport faults in multiport static memories
US6757854B1 (en) * 1999-09-16 2004-06-29 Lsi Logic Corporation Detecting faults in dual port FIFO memories

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04111143A (ja) * 1990-08-31 1992-04-13 Fujitsu Ltd 多ポートメモリの試験方式
JPH07262800A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd 多ポート型メモリの試験装置
US6216241B1 (en) * 1998-10-08 2001-04-10 Agere Systems Guardian Corp. Method and system for testing multiport memories
US6550032B1 (en) * 1999-07-28 2003-04-15 Lsi Logic Corporation Detecting interport faults in multiport static memories
US6757854B1 (en) * 1999-09-16 2004-06-29 Lsi Logic Corporation Detecting faults in dual port FIFO memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113889176A (zh) * 2021-09-29 2022-01-04 深圳市金泰克半导体有限公司 Ddr芯片的存储单元的测试方法、装置、设备及存储介质
CN115691632A (zh) * 2022-10-19 2023-02-03 中科声龙科技发展(北京)有限公司 测试控制系统和方法

Also Published As

Publication number Publication date
CN113160873B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
CN109960616B (zh) 基于处理器的内存参数的调试方法及系统
CN107291626B (zh) 数据存储方法和装置
CN104484200A (zh) 对固件进行升级的方法及装置
CN113160873B (zh) 存储器测试方法、装置、电子设备及存储介质
CN104915290A (zh) 应用测试方法及装置
CN109947671B (zh) 一种地址转换方法、装置、电子设备及储存介质
US20230014058A1 (en) Emulation test system for flash translation layer and method thereof
CN114974391A (zh) 存储器测试方法、装置、电子设备及存储介质
CN117709253B (zh) 芯片测试方法、装置、电子设备及可读存储介质
CN104503786A (zh) 固件刷新方法及装置
CN105095026A (zh) Ext文件系统的超级块修复方法和装置、智能设备
CN104765686B (zh) 测试应用程序的方法及装置
CN109582511B (zh) 控制器的生成方法、装置及存储介质
CN104951337B (zh) 文件增量更新方法及装置
CN106533841A (zh) 用户识别模块卡的协议一致性测试方法、装置及系统
CN114661606A (zh) 程序调试方法、装置、电子设备及存储介质
CN114047885A (zh) 多类型数据的写入方法、装置、设备及介质
CN113836069B (zh) 芯片、引脚操作方法、可读存储介质和电子设备
CN115017073A (zh) 通信控制器的使能方法、装置、电子设备及存储介质
CN106713902A (zh) 一种摄像模组的故障检测方法、装置及终端
CN110633105A (zh) 指令序列处理方法、装置、电子设备和存储介质
CN104111777A (zh) 图片显示方法及装置
CN113835990B (zh) 检测方法、装置、计算机设备和存储介质
CN115981939A (zh) 内存时钟相位确定方法、装置、电子设备及存储介质
CN110942486B (zh) 相机标定参数的保存方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant