一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存储器三单元耦合故障检测方法、终端设备及介质

2022-12-13 22:57:57 来源:中国专利 TAG:


1.本发明涉及存储器故障检测领域,尤其涉及一种存储器三单元耦合故障检测方法、终端设备及介质。


背景技术:

2.随着集成电路的发展,芯片制程不断减小,存储器的容量和密度也在不断提升,同时存储器内部每个存储单元之间的距离也随之减小,存储器出现故障的概率也大大增加。因此,如何对随机存取存储器进行有效的测试成为关键。目前业界常用的可测性设计技术主要有三种,分别是扫描测试、边界扫描和内建自测试(bist)。扫描测试通过引入扫描寄存器以及插入扫描链,可以实现对时序电路的直接测试,但缺点是需要引入大量的输入输出引脚,会大大降低芯片的性能。边界扫描的主要测试对象是电路的输入输出引脚,虽然对芯片性能影响不大,但测试时间较长。内建自测试是通过集成在芯片内部的专用测试电路来检查电路的制造缺陷,其占用面积很小,对芯片性能的影响也微乎其微,并且测试时间也较短。根据测试对象的不同,内建自测试又分为逻辑内建自测试(lbist)和存储内建自测试(mbist)。mbist的故障检测算法已经有很多种类,其中兼顾复杂度与覆盖率的主流算法是基于地址的march系列算法。
3.根据存储器的故障行为,可以将故障分为单单元故障和多单元耦合故障(cf)。其中单单元故障主要有固定故障(saf)、跳变故障(tf)和数据保持故障(drf)。多单元耦合故障主要有双单元耦合故障、三单元耦合故障以及相邻向量敏化故障(npsf)。
4.目前现有的存储器故障检测算法对单单元故障以及双单元耦合故障可以做到完全的检测,但对于三单元耦合故障的检测还存在检测效率和覆盖率上的不足,而当工艺制程进入到40nm及以下时,存储单元彼此距离越来越近,三单元耦合故障效应会越来越显著。而目前的三单元耦合故障检测算法,大多存在复杂度高、故障覆盖率不足的问题。


技术实现要素:

5.为了解决上述问题,本发明提出了一种存储器三单元耦合故障检测方法、终端设备及介质。
6.具体方案如下:
7.一种存储器三单元耦合故障检测方法,包括以下步骤:
8.步骤一:通过地址任意顺序的写操作将待测存储器的存储单元设置为第一种背景数据i0;
9.步骤二:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
10.步骤三:按照地址升序的方式,再次对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
11.步骤四:按照地址降序的方式,对所有存储单元依次进行读、读、有跳变写和无跳
变写的操作;
12.步骤五:按照地址降序的方式,再次对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
13.步骤六:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
14.步骤七:通过地址任意顺序的写操作将待测存储器的存储单元设置成第二种数据背景i1;
15.步骤八:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
16.步骤九:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
17.步骤十:通过地址任意顺序的写操作将待测存储器的存储单元设置成第三种数据背景i2;
18.步骤十一:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
19.步骤十二:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
20.步骤十三:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i3;
21.步骤十四:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
22.步骤十五:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
23.步骤十六:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i4;
24.步骤十七:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
25.步骤十八:按照地址任意顺序的方式,对所有存储单元依次进行读操作。
26.一种存储器三单元耦合故障检测终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
27.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
28.本发明采用如上技术方案,能够检测出所有物理排列及逻辑值分布情况下各种故障行为的三单元耦合故障,故障覆盖率达到100%,并且时间复杂度只有58n,相比于现有算法来说具有更低的时间复杂度以及更高的故障覆盖率,可以提升存储器的检测效率,降低检测成本。
附图说明
29.图1所示为本发明实施例一中三单元耦合的6种物理排列图。
30.图2所示为本发明实施例一中march ml3c算法测试流程图。
31.图3所示为本发明实施例一中五种数据背景图。
32.图4所示为本发明实施例一中三单元耦合的36种物理排列图。
33.图5所示为本发明实施例一中应用march ml3c算法对排列1的推演图。
34.图6所示为本发明实施例一中应用march ml3c算法对排列36的推演图。
具体实施方式
35.为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
36.现结合附图和具体实施方式对本发明进一步说明。
37.实施例一:
38.三单元耦合故障主要是指存储器存储阵列中物理地址相邻的三个存储单元发生的耦合故障,其物理排列有6种,如图1所示。一般认为,发生耦合故障的三个单元中,存在两个攻击单元和一个受害单元。在单端口随机存取存储器中,一次只能对一个单元进行读写操作,因此在三个耦合单元中,存在一个主导攻击单元和一个辅助攻击单元,其中主导攻击单元主要影响着受害单元。一般认为耦合单元之间互不相交,不产生遮蔽效应。
39.三单元耦合故障根据具体的故障行为又可以分为状态耦合故障(cf
st
)、跳变耦合故障(cf
tr
)、写破坏耦合故障(cf
wd
)、读破坏耦合故障(cf
rd
)、伪读破坏耦合故障(cf
drd
)、不正确读耦合故障(cf
ir
)以及扰动耦合故障(cf
ds
),这些故障可以由故障原语(fp)符号具体描述,如表1所示。其中故障原语符号为《s
da
;s
aa
;sv/f/r》,其中s
da
表示在主导攻击单元进行的敏化操作,s
aa
表示在辅助攻击单元进行的敏化操作,sv表示在受害单元进行的敏化操作,f表示受害单元在敏化操作下被激发的故障状态,r表示当故障激发的操作时读操作时所读出的结果,r0表示从存储单元读取0,r1表示从存储单元读取1,0w0表示在原本逻辑值为0的存储单元写入0,0w1表示在原本逻辑值为0的存储单元写入1,1w0表示在原本逻辑值为1的存储单元写入0,1w1表示在原本逻辑值为1的存储单元写入1,

表示该存储单元的逻辑值发生上升跳变,

表示该存储单元的逻辑值发生下降跳变。
40.表1:
41.42.[0043][0044]
本实施例中提出了一种故障检测march ml3c算法,采用时间复杂度为58n的检测序列(n为存储器存储单元数),检测随机存取存储器中的三单元耦合故障,如图2所示。
[0045]
图2中,“{}”表示一个完整的march测试,“()”表示一个检测步骤,称为march单元,由一个或多个特定顺序的读写操作构成,单元右上角的上标“(1)-(18)”表示march单元的序号,表示逻辑地址升序,表示逻辑地址降序,表示逻辑地址任意顺序,“r”表示对存储单元执行读操作,“w
t”表示对存储单元执行有跳变的写操作,“w”表示对存储单元执行无跳变的写操作,“i
0”、“i
1”、“i
2”、“i
3”和“i
4”表示5种数据背景,如图3所示。
[0046]
基于上述检测序列,本实施例设定对应的检测步骤如下:
[0047]
步骤一:通过地址任意顺序的写操作将待测存储器的存储单元全部置0,即设置为数据背景i0;
[0048]
步骤二:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
[0049]
步骤三:按照地址升序的方式,再次对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
[0050]
步骤四:按照地址降序的方式,对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
[0051]
步骤五:按照地址降序的方式,再次对所有存储单元依次进行读、读、有跳变写和无跳变写的操作;
[0052]
步骤六:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
[0053]
步骤七:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i1;
[0054]
步骤八:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
[0055]
步骤九:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
[0056]
步骤十:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i2;
[0057]
步骤十一:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
[0058]
步骤十二:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
[0059]
步骤十三:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i3;
[0060]
步骤十四:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
[0061]
步骤十五:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
[0062]
步骤十六:通过地址任意顺序的写操作将待测存储器的存储单元设置成数据背景i4;
[0063]
步骤十七:按照地址升序的方式,对所有存储单元依次进行读、读、有跳变写、无跳变写、读、读、有跳变写、无跳变写的操作;
[0064]
步骤十八:按照地址任意顺序的方式,对所有存储单元依次进行读操作;
[0065]
march ml3c算法通过引入5种数据背景,并通过特定顺序的读写操作进行故障的激发和观测,从而实现了对三单元耦合故障的检测。所述三单元耦合故障,是指在单端口随机存取存储器中物理地址相邻的三个单元,可以使用不超过一次的读写操作敏化,并且耦合单元之间不相交,不会产生遮蔽效应。如图1所示,物理地址相邻的三单元有6种排列方式。再考虑三个单元中存在的一个受害单元(sv)和两个攻击单元,攻击单元中有一个是主导攻击单元(s
da
),另一个是辅助攻击单元(s
aa
),根据受害单元和攻击单元的不同分布,每一种三单元的物理排列又会出现6种不同的受害单元和攻击单元的分布,所以如图4所示,一共有36种排列形式。而每一种排列都可能会产生如表1所示的72种故障情况,所以三单元耦合故障总数为2592种。下面举例说明:
[0066]
对排列1进行march ml3c算法的过程如图5所示,其中m
0-m
18
指代march ml3c算法的18个步骤。每个步骤可检测和激发的故障如表2所示。
[0067]
表2:
[0068][0069]
其中,fp表示故障原语。
[0070]
对排列36进行march ml3c算法的过程如图6所示,其中m
0-m
18
指代march ml3c算法的18个步骤。每个步骤可检测的故障如表3所示。
[0071]
表3:
[0072][0073]
[0074]
由上述两个示例可以看出,march ml3c算法的18个步骤可以将排列1和排列36中各个可能发生的72种故障全部检测到,其他排列同理。在本实施例提供的march ml3c算法中,在每次数据背景转换前,都引入了对存储单元的任意顺序读操作,这保证了在数据背景转换前所激发的故障都能被检测到,相比于现有的部分算法,这一点保证了算法能完全覆盖所有故障。
[0075]
表4是本实施例提供的march ml3c算法与现有多种算法的对比,可以看到,无论是故障覆盖率还是时间复杂度,本发明提供的march ml3c算法都是最优的。
[0076]
表4:
[0077][0078]
本实施例算法主要有以下几点改进:
[0079]
改进1:基于march sr3c算法提出的框架和数据背景,使用(r,r,w
t
,w)组成的基本检测步骤,在保证激活和检测故障的前提下,降低了算法的复杂度。其中,连续两次读操作(r,r)如果作用在受害单元,可以检测上一步骤激活的故障以及当前状态下的状态耦合故障(fp 1-8)、读破坏耦合故障(fp 25-32)、伪读破坏耦合故障(fp 33-40)以及不正确读耦合故障(fp 41-48);如果作用在主导攻击单元上,可以激活读操作的扰动耦合故障(fp 49-56)。w
t
,w这两个写操作的顺序可以保证wt的操作结果不会被覆盖,因为w是执行无跳变的写操作,不会改变w
t
操作后的结果。w
t
,w如果作用于受害单元上,可以激活跳变耦合故障(fp 9-16)和写破坏耦合故障(fp 17-24);如果作用于主导攻击单元,可以激活写操作的扰动耦合故障(fp 57-72)。
[0080]
改进2:在每一种数据背景切换之前,加入任意顺序的读操作,这一点保证了在每一种数据背景下最后的读写操作所激活的故障可以被任意顺序的读操作所检测到,传统的算法只在最后一种数据背景下的检测步骤完成后才加入这个读操作,甚至部分算法不加入这种读操作,这就影响到了实际的算法覆盖率。本实施例提出的march ml3c算法在每一种数据背景下的检测步骤完成后,都加入了任意顺序的读操作,保证了不会出现已经激活而未被观测到的故障。因为故障如果只是被激活,而未被读操作所观测到,就无法称作已检测到该故障。
[0081]
实施例二:
[0082]
本发明还提供一种存储器三单元耦合故障检测终端设备,包括存储器、处理器以
及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
[0083]
进一步地,作为一个可执行方案,所述存储器三单元耦合故障检测终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述存储器三单元耦合故障检测终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述存储器三单元耦合故障检测终端设备的组成结构仅仅是存储器三单元耦合故障检测终端设备的示例,并不构成对存储器三单元耦合故障检测终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述存储器三单元耦合故障检测终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
[0084]
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述存储器三单元耦合故障检测终端设备的控制中心,利用各种接口和线路连接整个存储器三单元耦合故障检测终端设备的各个部分。
[0085]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述存储器三单元耦合故障检测终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0086]
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
[0087]
所述存储器三单元耦合故障检测终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)以及软件分发介质等。
[0088]
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献