存储器内建自测试方法、控制器芯片和电路
文献发布时间:2024-04-18 20:02:18
技术领域
本发明涉及芯片技术领域,具体地涉及一种存储器内建自测试方法、控制器芯片和电路。
背景技术
随着SOC(System-on-Chip,片上系统)芯片的不断发展,存储器作为芯片中存放数据和缓存的设备,已经成为SOC系统中最重要及使用最频繁的组件之一,而存储器技术也已经成为当前发展最快的技术之一,其可靠性和稳定性往往决定了芯片的可靠性和稳定性。随着芯片设计和芯片制造工艺的发展,存储器的复杂度和密度不断提高,而芯片尺寸不断减小,使得存储器可能出现的缺陷类型也越来越多,进而给芯片测试带来了更大挑战。
存储器内建自测试(Memory Built-in Self Test,MBIST)技术是对芯片中的嵌入式存储器进行测试的一种可测性设计技术,其通过建立专用电路产生对应的测试向量来对存储器进行测试,并在芯片上自动捕获测试响应,以将测试响应与期望值进行比较来达到测试目的。MBIST技术的核心是测试算法,合适的测试算法对降低测试时间和提高故障覆盖率至关重要。
常见的MBIST算法有March、checkerBoard等,每种测试算法针对的故障类型不尽相同,产生的测试向量的规模和测试效率也不同。其中,March算法是一系列的算法,其在应用中有高覆盖率和测试时间短的优点,被广泛应用。March算法通过有限状态机(FiniteState Machine,FSM)按照地址升序或者降序的方式对存储单元逐个进行读写操作以检测单元中是否存在故障,读写操作可以是向存储单元写0(记为w0)、写1(记为w1)、读0(记为r0)、读1(记为r1)。在当前地址的所有存储单元完成读写操作后,再根据地址升降顺序执行下一地址单元的操作。
现在最常用的MBIST算法是MarchC+,其算法形式可描述为:
其中,
MarchC+的算法过程具体为以下步骤:
第一步,以任意升降地址顺序,对所有存储单元写0(即初始化);
第二步,以升序地址顺序,读0,写1,读1;
第三步,以升序地址顺序,读1,写0,读0;
第四步,以降序地址顺序,读0,写1,读1;
第五步,以降序地址顺序,读1,写0,读0;
第六步,以任意升降地址顺序,读0。
MarchC+算法对固定故障(SAF)、状态故障(SF)、转换故障(TF)、读破坏故障(RDF)、伪读破坏故障(DRDF)、错误读故障(IRF)、状态耦合故障(CFst)、转换耦合故障(CFtr)、读破坏耦合故障(CFrd)、错误读耦合故障(CFir)具有100%的覆盖率,但是对其他单一单元故障和双单元耦合故障的覆盖率不高,如下面的表1、表2所示。但是随着存储单元数量变多和排列的紧密,耦合故障的出现会更为普遍,MarchC+不能对这些耦合故障达到比较高的覆盖,会导致在测试过程中检测不到真实存在的故障,对芯片的质量带来很大的挑战。
表1
表2
发明内容
本发明实施例的目的是提供一种存储器内建自测试方法、控制器芯片和电路,用于至少部分地解决上述技术问题。
为了实现上述目的,本发明实施例提供一种存储器内建自测试方法,包括通过针对待测存储器依次执行以下的步骤S1-S6:
步骤S1,以任意升降地址顺序,进行写0操作;
步骤S2,以升序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3,以升序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4,以降序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5,以降序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S6,以任意升降地址顺序,进行读0操作。
可选的,减少步骤S2-S5中的读写操作以降低测试复杂度。
可选的,减少步骤S2-S5中的读操作以调整为执行替代的步骤S2a-S5a:
步骤S2a,以升序地址顺序,进行读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3a,以升序地址顺序,进行读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4a,以降序地址顺序,进行读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5a,以降序地址顺序,进行读1、写0、读0、读0、写0、写0、读0、读0操作。
可选的,减少步骤S2-S5中的读操作以调整为执行替代的步骤S2b-S5b:
步骤S2b,以升序地址顺序,进行读0、读0、写1、读1、写1、写1、读1、读1操作;
步骤S3b,以升序地址顺序,进行读1、读1、写0、读0、写0、写0、读0、读0操作;
步骤S4b,以降序地址顺序,进行读0、读0、写1、读1、写1、写1、读1、读1操作;
步骤S5b,以降序地址顺序,进行读1、读1、写0、读0、写0、写0、读0、读0操作。
可选的,减少步骤S2-S5中的读操作以调整为执行替代的步骤S2c-S5c:
步骤S2c,以升序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1操作;
步骤S3c,以升序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0操作;
步骤S4c,以降序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1操作;
步骤S5c,以降序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0操作。
可选的,将步骤S2-S5调整为执行如下的步骤S2d-S5d:
步骤S2d,以升序地址顺序,进行读0、写0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3d,以升序地址顺序,进行读1、写1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4d,以降序地址顺序,进行读0、写0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5d,以降序地址顺序,进行读1、写1、读1、写0、读0、读0、写0、写0、读0、读0操作。
可选的,该存储器内建自测试方法还包括:针对步骤S1-S6,在任意地址的读出数据与期望数据不一样时,判定该地址发生故障。
本发明实施例还提供一种控制器芯片,所述控制器芯片包括:有限状态机,被配置为执行上述任意的存储器内建自测试方法以输出控制信号;数据生成电路,被配置为响应于所述有限状态机输出的控制信号生成测试向量和期望输出向量;地址生成电路,被配置为响应于所述有限状态机输出的控制信号生成用于测试的存储器地址序列;以及控制生成电路,被配置为响应于所述有限状态机输出的控制信号生成针对待测存储器的读写信号和针对比较器的使能信号。
本发明实施例还提供一种存储器内建自测试电路,包括:待测存储器;上述任意的控制器芯片,被配置为向所述待测存储器提供测试向量、存储器地址序列和读写信号,以及向比较器提供期望输出向量;以及所述比较器,被配置为将所述待测存储器的实际输出向量与所述期望输出向量进行比较,以获得测试结果。
可选地,所述存储器内建自测试电路还包括:选择电路,被配置为针对所述待测存储器选择正常工作模式或者测试模式;以及逻辑电路,被配置为在所述正常工作模式下控制所述待测存储器的数据输入输出;并且,所述控制器芯片和所述比较器在所述测试模式下工作。
通过上述技术方案,本发明实施例在MarchC+算法的基础上,考虑了全部单一单元故障和双单元耦合故障,增加读写操作,形成相对于MarchC+更为优化的测试算法,其能够达到针对全部单一单元故障和双单元耦合故障的100%故障覆盖率,且复杂度较低。
本发明实施例的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明实施例的存储器内建自测试方法的流程示意图;
图2是本发明实施例的存储器内建自测试电路的结构示意图;
图3是本发明第一可选实施例的存储器内建自测试方法的流程示意图;
图4是本发明第二可选实施例的存储器内建自测试方法的流程示意图;
图5是本发明第三可选实施例的存储器内建自测试方法的流程示意图;以及
图6是本发明第四可选实施例的存储器内建自测试方法的流程示意图。
附图标记说明
100、控制器芯片;200、待测存储器;300、比较器;400、选择电路;500、逻辑电路。
110、有限状态机;120、数据生成电路;130、地址生成电路;140、控制生成电路。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
为便于更好地理解本发明实施例中,在此要首先介绍故障原语。故障原语的形式一般为,S表示敏化操作序列,F表示故障行为,R表示读操作的结果。对于故障,由两个基本的组成部分,即对存储单元的操作和相应单元的故障。如果一组操作序列能够让故障单元表现出故障的状态,则将之称之为“敏化操作序列”S(Sensitizing operationsequence)。被检测的存储单元表现出的故障称之为“故障行为”F(Fault behavior)。为了定义一种故障,必须要有敏化操作序列S,以及与之对应的故障行为F,当敏化序列为读操作的时候,还应该有敏化序列的读取结果R(Result)。这三个元素构成了故障原语,其中S包括(0,1,0w0,1w1,0w1,1w0,r0,r1),分别表示敏化操作序列为状态0、状态1、0状态下写0、1状态下写1、0状态下写1、1状态下写0、读取状态0、读取状态1;F包括(0,1,↑,↓),其中“↑”表示状态0至状态1的上升转变,“↓”表示状态1至状态0的下降转变。R包括(0,1,-),如果S不是读操作,那么S为“-”。
另外,从不同角度进行研发可得到不同系列的March算法,例如当前已经为本领域技术人员所公知的March C+算法,以及本发明实施例所命名的March DcF。需说明的是,当前March算法的研究热点之一就是如何通过创造性劳动来丰富其系列算法,因此不能简单地认为根据有限次实验就能从一种类型的March算法得到另一种March DcF算法,需要经过大量的创造性劳动发现问题、解决问题并进行效果验算。
下面具体介绍本发明实施例的发明思路。
参考背景技术中的表1、表2,对比March C+算法对于单一单元和双单元故障的覆盖率,可知其对于单一单元静态故障的写破坏故障、单一单元动态故障,双单元静态耦合故障中的干扰耦合故障、写破坏耦合故障、伪读破坏耦合故障,双单元动态耦合故障的覆盖率较低。据此,以最复杂的双单元动态耦合故障为突破点,获取并分析其故障原语,可知其具有以下特点:
1、施主单元为某一特定状态时,对受主单元进行一次读写操作之后,在进行一次读或者写操作,导致受主状态发生了翻转,或者是受主状态未发生翻转,但是却读出一个错误的值;
2、受主单元状态确定,对施主单元进行连续两次读写操作导致受主单元状态发生翻转。
进一步地,先分析双单元动态耦合故障中的动态伪读破坏耦合故障,从其故障原语中计算得到故障算法xwxrxrx,x’wxrxrx,其中x表示单元状态0或者1,x’表示单元状态0或者1的相反状态1或者0,w表示写,r表示读。
总结得出,需要的具体故障算法涵盖以下几点:
一、在施主单元为0和1状态时,受主单元地址升序和降序进行0状态写0读0读0;
二、在施主单元为0和1状态时,受主单元升序和降序进行1状态写0读0读0;
三、在施主单元为0和1状态时,受主单元升序和降序进行0状态写1读1读1;
四、在施主单元为0和1状态时,受主单元升序和降序进行1状态写1读1读1。
此时的算法状态计为算法A:
同理,进一步分析双单元动态耦合故障中的动态写破坏耦合故障,故障算法需要有受主单元0状态写0写0和1状态写1写1这样的连续操作,再考虑施主单元的状态和升序降序操作,此时的算法状态计为算法B:
用算法B对双单元动态耦合故障中的动态干扰耦合故障、动态读破坏耦合故障、动态错误读耦合故障原语进行遍历分析,算法B对动态读破坏耦合故障、动态错误读耦合故障有100%的覆盖率,对动态干扰耦合故障覆盖率为95.8%。对未能覆盖到的故障进行进一步分析,算法B缺少对敏化状态进行读确认后,再进行读0写1和读1写0的操作,即在写1之前要有两次读0的操作,和写0之前要有两次读1的操作,再考虑施主单元的状态和升序降序操作,此时的算法状态计为算法C:
用算法C对单一单元故障和双单元耦合故障的故障原语进行遍历分析,发现其针对单一单元静态故障、单一单元动态故障、双单元静态耦合故障、双单元动态耦合故障都有100%的覆盖率。在此,将算法C记做算法March DcF,其针对单一单元故障和双单元耦合故障具有100%的故障覆盖率,而复杂度仅38n,是本发明实施例旨在实现的March优化算法。
如此,本发明实施例在MarchC+算法的基础上,考虑了全部单一单元故障和双单元耦合故障,增加读写操作,形成相对于MarchC+更为优化的测试算法March DcF,该算法形式描述为:
基于该算法形式,本发明实施例提供了一种存储器内建自测试方法,如图1所示,包括通过针对待测存储器依次执行以下的步骤S1-S6:
步骤S1,以任意升降地址顺序,进行写0操作。
步骤S2,以升序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3,以升序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4,以降序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5,以降序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S6,以任意升降地址顺序,进行读0操作。
在示例中,如图2所示的存储器内建自测试电路将利用上述步骤S1-S6来执行故障测试。具体地,在电路进入MBIST模式(测试模式)后,控制信号开始对有限状态机(FSM)发出指令,有限状态机开始工作进行状态转换,得到需要的信号。
对应于步骤S1,有限状态机处于初始状态,在接到开始工作信号(例如:mbist_en=1,测试使能信号)后,按照地址升序或者降序对所有存储单元逐一进行写0的初始化操作,地址顺序可以是从地址0到n(升序),也可以是从地址n到地址0(降序)。
针对步骤S2,执行升序读0读0写1读1读1写1写1读1读1操作,其中地址升序为从地址0到地址n的操作。即,先对地址0的所有存储单元进行读0读0写1读1读1写1写1读1读1操作,再对地址1的所有存储单元进行读0读0写1读1读1写1写1读1读1操作,依此类推直至到最大地址n,也对所有存储单元进行读0读0写1读1读1写1写1读1读1操作。
针对步骤S3,执行升序读1读1写0读0读0写0写0读0读0操作。与前一步类似,地址升序逐一对每一地址的所有的存储单元进行读写操作。
针对步骤S4,降序读0读0写1读1读1写1写1读1读1操作,其中地址降序为从地址n到地址0的操作。先对地址n的所有存储单元进行读0读0写1读1读1写1写1读1读1操作,再对地址n-1的所有存储单元进行读0读0写1读1读1写1写1读1读1操作,依此类推直至到最小地址0,也对所有存储单元进行读0读0写1读1读1写1写1读1读1操作。
针对步骤S5,降序读1读1写0读0读0写0写0读0读0操作。与前一步类似,地址升序逐一对每一地址所有的存储单元进行读写操作。
针对步骤S6,按照地址升序或者降序对所有存储单元逐一进行写0的初始化操作,地址顺序可以是从地址0到n(升序),也可以是从地址n到地址0(降序)。
最后,针对步骤S1-S6,在任意地址的读出数据与期望数据不一样时,判定该地址发生故障。需说明的是,待测试完成后,可以输出错误标志和发生故障的存储单元地址。
如此,在该示例中,针对表1和表2涉及的故障,无论是单一单元的静态和动态故障,还双单元静态和动态耦合故障,采用本发明实施例的方法能使得故障覆盖率达到100%,而复杂度是38n。
在实际中,并非每次都要求针对全部单一单元故障和双单元耦合故障具有100%的故障覆盖率,因此可以适当减少步骤S2-S5中的读写操作以降低测试复杂度,具体包括以下的三种可选实施例。
在第一可选实施例中,回到前面介绍的本发明实施例的发明思路,发现算法B到算法C的形成过程中,对算法B进行单一单元静态故障、单一单元动态故障、双单元静态耦合故障的故障原语遍历分析,对单一单元静态故障、单一单元动态故障、双单元静态耦合故障也达到了100%,该算法针对全部单一单元故障和双单元耦合故障的总体故障覆盖率计算得出为98.29%。因此,可将算法B记为算法March DcFa,其算法形式描述为:
如此,对应于该算法March DcFa,第一可选实施例减少图1的步骤S2-S5的开端处的一处读操作,使得执行在图3中示出的步骤S2a-S5a来替代步骤S2-S5:
步骤S2a,以升序地址顺序,进行读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3a,以升序地址顺序,进行读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4a,以降序地址顺序,进行读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5a,以降序地址顺序,进行读1、写0、读0、读0、写0、写0、读0、读0操作。
如此,利用图2对应的示例进行测试,执行图3对应的算法March DcFa对单一单元的静态和动态故障,双单元静态和动态耦合故障覆盖率达到98.29%,复杂度是34n,明显降低了复杂度,且适用于大多数类型的故障。
在第二可选实施例和第三可选实施例中,针对图1的步骤S2-S5对应的算法形式,易知在第二步到第五步都有两次连续的读1或读0,尝试分析故障原语可以得出:存储单元在0状态进行写0读0读0连续读写操作,1状态进行写1读1读1连续读写操作,检测出的故障占总单一单元故障和双单元耦合故障的4.27%;存储单元在0状态进行写1读1读1连续读写操作,1状态进行写0读0读0连续读写操作,检测出的故障占总单一单元故障和双单元耦合故障的4.27%。即,如果删除连续读操作中的一个读操作,故障覆盖率的影响仅4.27%,仍符合大部分检测要求。
因此,在第二可选实施例中,删除第一处连续读操作中的一个读操作,得到一种算法记做算法March DcFb,算法形式描述为:
如此,对应于该算法March DcFb,第二可选实施例减少图1的步骤S2-S5的读操作,使得执行在图4中示出的步骤S2b-S5b来替代步骤S2-S5:
步骤S2b,以升序地址顺序,进行读0、读0、写1、读1、写1、写1、读1、读1操作;
步骤S3b,以升序地址顺序,进行读1、读1、写0、读0、写0、写0、读0、读0操作;
步骤S4b,以降序地址顺序,进行读0、读0、写1、读1、写1、写1、读1、读1操作;
步骤S5b,以降序地址顺序,进行读1、读1、写0、读0、写0、写0、读0、读0操作。
如此,利用图2对应的示例进行测试,执行图4对应的算法March DcFb,对单一单元的静态和动态故障,双单元静态和动态耦合故障覆盖率达到95.73%,复杂度是34n。
进一步地,在第三可选实施例中,删除第二处连续读操作中的一个读操作,得到一种算法记做算法March DcFc,算法形式描述为:
如此,对应于该算法March DcFc,第三可选实施例减少图1的步骤S2-S5的读操作,使得执行在图5中示出的步骤S2c-S5c来替代步骤S2-S5
步骤S2c,以升序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1操作;
步骤S3c,以升序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0操作;
步骤S4c,以降序地址顺序,进行读0、读0、写1、读1、读1、写1、写1、读1操作;
步骤S5c,以降序地址顺序,进行读1、读1、写0、读0、读0、写0、写0、读0操作。
如此,利用图2对应的示例进行测试,执行图5对应的算法March DcFb,对单一单元的静态和动态故障,双单元静态和动态耦合故障覆盖率同样达到95.73%,复杂度也是34n。
类似地,除上述三种可选实施例之外,也可以通过分析单一单元故障和双单元耦合故障中的各故障相对于总体故障率的占比,来针对上述的步骤S2-S5适应性地减少其他读操作或写操作。
更进一步地,冗余算法虽然会影响检测复杂度,但有助于提升算法容错能力。因此,在其他可选的实施例中,还可针对步骤S2-S5添加冗余读写操作,以提升检测的稳定性。如图6所示的第四可选实施例,通过在第一处连续读操作中增加写操作,来将图1的步骤S2-S5调整为执行替代的步骤S2d-S5d:
步骤S2d,以升序地址顺序,进行读0、写0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S3d,以升序地址顺序,进行读1、写1、读1、写0、读0、读0、写0、写0、读0、读0操作;
步骤S4d,以降序地址顺序,进行读0、写0、读0、写1、读1、读1、写1、写1、读1、读1操作;
步骤S5d,以降序地址顺序,进行读1、写1、读1、写0、读0、读0、写0、写0、读0、读0操作。
将图6对应的算法记为March CD,算法形式描述为:
如此,利用图2对应的示例进行测试,执行图6对应的算法March CD,对单一单元的静态和动态故障以及双单元静态和动态耦合故障覆盖率也能达到100%,复杂度会大于38n,但在部分情况下,用户能够接受其复杂度。
回到图2,本发明实施例还提供了一种存储器内建自测试控制器芯片100,即MBIST控制器芯片,该控制器芯片100包括:有限状态机((Finite State Machine,FSM))110,被配置为执行上述实施例的存储器内建自测试方法以输出控制信号;数据生成电路120,被配置为响应于所述有限状态机110输出的控制信号生成测试向量和期望输出向量;地址生成电路130,被配置为响应于所述有限状态机110输出的控制信号生成用于测试的存储器地址序列;以及控制生成电路140,被配置为响应于所述有限状态机110输出的控制信号生成针对待测存储器200的读写信号和针对比较器300的使能信号。
即,将有限状态机110作为上述实施例的存储器内建自测试方法所对应的算法的硬件实现,有限状态机110根据测试算法得到各类控制信号,这些信号经过数据生成电路120、地址生成电路130处理得到相应的读写地址和读写数据等,再通过控制生成电路140对待测存储器200进行读写操作以及使能比较器300。
在示例中,MBIST控制器芯片相当于存储器自测试的处理器,其内置于芯片的MBIST电路中,且在进行测试时,预设的测试文件会在测试机上向芯片上的MBIST电路发送关于测试流程的程序信息,而MBIST控制器芯片来响应这些程序信息以完成测试。其中,测试文件包括关于测试流程的程序信息,使得测试程序配合MBIST控制器芯片执行对应上述实施例的存储器内建自测试方法。
进一步地,同样参考图2,本发明实施例还提供了一种存储器内建自测试电路(简称MBIST电路),包括:待测存储器200;上述的控制器芯片100,被配置为向所述待测存储器200提供测试向量、存储器地址序列和读写信号,以及向比较器300提供期望输出向量;以及所述比较器300,被配置为将所述待测存储器200的实际输出向量与所述期望输出向量进行比较,以获得测试结果。
举例而言,可通过比较器300的输出端口fail来观察比较器比较结果,如果fail=1,该存储器测试检测出故障,当fail=0证明该存储器在该测试算法控制测试下没有检测出故障。
更进一步地,还可以包括:选择电路400,被配置为针对所述待测存储器200选择正常工作模式或者测试模式;以及逻辑电路500,被配置为在所述正常工作模式下控制所述待测存储器的数据输入输出。并且,所述控制器芯片100和所述比较器300在所述测试模式下工作。
即,MBSIT电路的MBSIT功能只在测试模式下工作,而待测存储器自身的数据输入输出,由逻辑电路在正常工作模式下进行。
如此,在待测存储器周围插入用于测试的本发明实施例的MBIST电路,根据电路产生的测试向量来对于存储器进行测试,然后再捕获测试响应,与理想期望值比较,获得测试结果。
本申请涉及的存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有上述实施例的存储器内建自测试方法的步骤的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
- 存储器芯片内建自测试方法和电路装置
- 存储器芯片内建自测试电路装置