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

基于March算法的DRAM故障检测方法和装置与流程

2020-12-29 13:19:00 来源:中国专利 TAG:集成电路 半导体 算法 检测方法 装置
基于March算法的DRAM故障检测方法和装置与流程

本申请涉及半导体集成电路测试技术领域,特别涉及为一种基于march算法的dram故障检测方法和装置。



背景技术:

随着半导体技术的不断发展和集成电路制造水平的不断提高,集成电路芯片的密度越来越大,存储器的容量和速度也在快速增长,存储器发生故障的概率也越来越大,故障种类越来越多,存储器的故障检测也越来越难。存储器故障可分为物理故障和逻辑故障,存储器物理故障指的是存储器在生产制造过程中物理结构发生了改变,逻辑故障是简化的存储器故障模型,所有的物理缺陷都可以映射为存储器故障模型。

目前直接检测存储器的物理故障比较困难,现有技术一般检测存储器的逻辑故障以反映物理故障。逻辑故障包括固定故障saf、转换故障tf、耦合故障cf、寻址故障af、数据保留故障drf等。dram内存的检测一般是由软件实现的,针对上述存储器故障模型,人们设计出了许多存储器检测算法,不同的算法具有不同的实现方式、复杂度和故障覆盖率。检测算法的复杂度越低、故障覆盖率越高,则算法的检测效率越好,如果一个算法能够用最少的测试向量检测最多的故障,那么这个算法的检测效率越好。

march算法是最常用的存储器检测算法,也是目前存储器检测算法研究的重点。march算法的基本思路是对所有单元按照地址升序(降序)一次进行一组读/写操作(可以是一次或者多次读/写操作,即一个march过程),自从march算法诞生以来,经过长期的研究和发展,针对各种存储器故障类型,march算法已经衍生出许多不同的形式,它们的march过程不同,能够检测到的故障种类也不同。原有marchc-算法已经能覆盖到如固定故障、转换故障、耦合故障、寻址故障等大多数存储器故障,且该测试算法相对简单,但无法检测到一个单元内的相互耦合产生的故障和数据保留故障drf。

其中,数据保留故障(dataretentionfault),是数据在规定时间内不能保留其逻辑值而使存储器发生故障。由于内存单元发生故障导致电容漏电增加,而使内存单元逻辑值经过一些周期由于漏电而改变,即存储单元在规定的时间内不能保存逻辑值,如果不能检测出存储器这种故障,那么使用这种存储器时将会导致数据丢失。



技术实现要素:

本申请提供一种基于march算法的dram故障检测方法和装置,在原有march算法的基础上,提出的一个新型改进型方法,该方法能大大提高故障覆盖率从而提高存储器测试效率,根据存储器测试程序对待测试的dram进行写读操作,写读操作覆盖到所有可操作的存储器地址,针对存储器常见的单元内的耦合故障cf和数据保留故障drf,用该方法可有效检测出这些故障。

本申请为解决技术问题采用如下技术手段:

本申请提出一种基于march算法的dram故障检测方法,包括:

s1,根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作;

s2,对各个存储单元进行延迟操作;

s3,所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障,完成dram数据保留故障的检测。

进一步地,所述根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作的步骤,包括:

根据dram内单元的地址递增或地址递减,向各个存储单元依序写入“0”值或者“1”值。

进一步地,所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致的步骤,包括:

从各个存储单元读取“0”值或者“1”值;

判断读取的数值是否与写入的数值一致;

若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障。

进一步地,所述完成dram数据保留故障的检测的步骤之后,还包括:

s4,根据dram内单元的地址递增或地址递减,向dram内各个存储单元依序写入16位数值,第一次向dram内各个存储单元依序写入所述16位数值包括“0000000000000001”或者“1111111111111110”;

s5,根据dram内单元的地址递增或地址递减,读取dram内各个存储单元中输入的16位数值,并判断读取数值与写入数值是否一致,若一致,则向dram内各个存储单元依序写入将“1”或“0”向左移1位后的16位数值,第二次的16位数值包括“0000000000000010”或者“1111111111111101”;

s6,重复执行上述步骤s5,直至进行16次的读写过程后,若每次的读写过程中判断数值均无误,则dram无故障,若读写过程中出现数值有误,则认定dram出现故障。

进一步地,在执行步骤s1至s3的过程中,还包括:

所述写值操作时,依地址顺序写入第一次的16位数值;

进行延迟操作;

所述读值操作时,依地址顺序读取第一次的16位数值,并判断是否与写入时一致,若一致,则循环至写值操作以写入第二次的16位数值,再延迟操作,而后读取第二次的16位数值并判断,依此循环16次。

本申请提出一种基于march算法的dram故障检测装置,采用检测装置执行上述的检测方法,所述检测装置包括:

第一写值单元,用于根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作;

延迟单元,用于对各个存储单元进行延迟操作;

第一读取单元,用于所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障,完成dram数据保留故障的检测。

进一步地,所述第一写值单元包括:

写值模块,用于根据dram内单元的地址递增或地址递减,向各个存储单元依序写入“0”值或者“1”值。

进一步地,所述第一读取单元包括:

读值模块,用于从各个存储单元读取“0”值或者“1”值;

判断模块,用于判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障。

进一步地,基于march算法的dram故障检测装置包括:

第二写值单元,用于根据dram内单元的地址递增或地址递减,向dram内各个存储单元依序写入16位数值,第一次向dram内各个存储单元依序写入所述16位数值包括“0000000000000001”或者“1111111111111110”;

第二读取单元,用于根据dram内单元的地址递增或地址递减,读取dram内各个存储单元中输入的16位数值,并判断读取数值与写入数值是否一致,若一致,则向dram内各个存储单元依序写入将“1”或“0”向左移1位后的16位数值,第二次的16位数值包括“0000000000000010”或者“1111111111111101”;

重复单元,用于重复执行上述第二读取单元所执行的操作,直至进行16次的读写过程后,若每次的读写过程中判断数值均无误,则dram无故障,若读写过程中出现数值有误,则认定dram出现故障。

本申请提供了基于march算法的dram故障检测方法和装置,具有以下有益效果:

通过不同数据背景对一个存储单元的反复读写,能够检测到原有march算法难以发现的单元内不同位之间的耦合故障,同时能够检测内存单元的读写稳定性,通过在写操作和读操作之间增加一个延迟操作,若芯片内部出现漏电故障bf,则高电压的cell会向低电压的cell漏电,经过一段时间的漏电之后高电压的cell则不能维持原有的数据,故会发生故障,而增加的延迟延时操作可以有效检测到存储单元的数据保留故障drf。在顺序读写的过程中,可以覆盖到地址解码故障adf,而在读写的数据"0"和"1"之间的相互转换中,可以检测到存储单元之间存在的固定故障saf与转换故障tf。综上,该方法是内存测试领域一个行之有效的测试方法,可覆盖到绝大多数的存储器故障,经过实际测试,该方法可有效适用于正常的量产程序。

附图说明

图1为本申请基于march算法的dram故障检测方法一个实施例的流程示意图;

图2为本申请基于march算法的dram故障检测方法另一个实施例的流程示意图;

图3为本申请基于march算法的dram故障检测方法一个实施例中进行数据保留故障测试的原理示意图;

图4为本申请基于march算法的dram故障检测方法一个实施例中进行耦合数据测试等的原理示意图。

本申请为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

下面将结合本申请的实施例中的附图,对本申请的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”、“包含”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本申请的权利要求书、说明书以及说明书附图中的术语,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其他实施例相结合。

参考附图1,为本申请一实施例中的基于march算法的dram故障检测方法的流程示意图;

本申请提出的基于march算法的dram故障检测方法,包括:

s1,根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作;

s2,对各个存储单元进行延迟操作;

s3,所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障,完成dram数据保留故障的检测。

具体的,

所述根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作的步骤,包括:

根据dram内单元的地址递增或地址递减,向各个存储单元依序写入“0”值或者“1”值。

所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致的步骤,包括:

从各个存储单元读取“0”值或者“1”值;

判断读取的数值是否与写入的数值一致;

若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障。

按照dram内各单元的地址升序(或降序),从最低地址到最高地址(或从最高地址到最低地址)对每一个地址所对应的内存单元依次进行写"0"操作,直到所有的存储单元的每一位都被写入数据"0"。然后进行“delay(延迟)”操作,增加“delay”延迟操作是为了探测和诊断drf故障。之后再次按照地址升序(或降序),从最低地址到最高地址(或从最高地址到最低地址)对每一个地址所对应的内存单元依次进行读"0"操作,直到所有的存储单元都进行了读"0"操作。如果发现有某个单元读出的值与写入的值不同,则认为发生故障。

参考附图2,为本申请另一实施例中的基于march算法的dram故障检测方法的流程示意图,所述完成dram数据保留故障的检测的步骤之后,还包括:

s4,根据dram内单元的地址递增或地址递减,向dram内各个存储单元依序写入16位数值,第一次向dram内各个存储单元依序写入所述16位数值包括“0000000000000001”或者“1111111111111110”;

s5,根据dram内单元的地址递增或地址递减,读取dram内各个存储单元中输入的16位数值,并判断读取数值与写入数值是否一致,若一致,则向dram内各个存储单元依序写入将“1”或“0”向左移1位后的16位数值,第二次的16位数值包括“0000000000000010”或者“1111111111111101”;

s6,重复执行上述步骤s5,直至进行16次的读写过程后,若每次的读写过程中判断数值均无误,则dram无故障,若读写过程中出现数值有误,则认定dram出现故障。

具体的,

dram内各个单元按照地址升序(或降序),从最低地址到最高地址(或从最高地址到最低地址)对每一个地址所对应的内存单元依次进行操作,该操作为,以16bit为一个读写单元,第一次写入数据0000000000000001,接着再读取该数据,第二次将数据中的"1"左移一位,即写入数据0000000000000010,接着再读取该数据,依此类推,第十六次写入数据1000000000000000,接着再读取该数据,该算法每次将"1"左移一位,覆盖到所有的数据背景需要写读16次,该测试对检测到一个存储单元内不同位之间的相互影响非常有效。依此来检测存储器所有单元内每一位的写"1"的能力,克服了原有march算法不能检测到一个存储单元内不同位之间相互影响的困难。如果发现某次读操作读出的值与写入的值不同,则认为发生故障。

或者,对一个存储单元写数据1111111111111110,接着再读取该数据,第二次将数据中的"0"左移一位,即写入数据1111111111111101,接着再读取该数据,依此类推,第十六次写入数据0111111111111111,接着再读取该数据。如果发现有某个单元读出的值与写入的值不同,则认为发生故障。

在一个实施例中,在执行上述步骤s1至s3的过程中,还包括:

所述写值操作时,依地址顺序写入第一次的16位数值;

进行延迟操作;

所述读值操作时,依地址顺序读取第一次的16位数值,并判断是否与写入时一致,若一致,则循环至写值操作以写入第二次的16位数值,再延迟操作,而后读取第二次的16位数值并判断,依此循环16次。

通过上述手段使数据保留故障和耦合故障等其它故障进行同时测试,从而将上述的步骤s1~s6压缩成三个步骤即可。

本申请还提出一种基于march算法的dram故障检测装置,采用检测装置执行上述的检测方法,所述检测装置包括:

第一写值单元,用于根据dram内单元的地址递增或地址递减,对dram内各个存储单元进行依序写值操作;

延迟单元,用于对各个存储单元进行延迟操作;

第一读取单元,用于所述延迟操作之后对各个存储单元进行读值操作,并判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障,完成dram数据保留故障的检测。

在一个实施例中,所述第一写值单元包括:

写值模块,用于根据dram内单元的地址递增或地址递减,向各个存储单元依序写入“0”值或者“1”值。

在一个实施例中,所述第一读取单元包括:

读值模块,用于从各个存储单元读取“0”值或者“1”值;

判断模块,用于判断读取的数值是否与写入的数值一致,若一致,则dram不存在数据保留故障,反之,则dram存在数据保留故障。

在一个实施例中,基于march算法的dram故障检测装置,包括:

第二写值单元,用于根据dram内单元的地址递增或地址递减,向dram内各个存储单元依序写入16位数值,第一次向dram内各个存储单元依序写入所述16位数值包括“0000000000000001”或者“1111111111111110”;

第二读取单元,用于根据dram内单元的地址递增或地址递减,读取dram内各个存储单元中输入的16位数值,并判断读取数值与写入数值是否一致,若一致,则向dram内各个存储单元依序写入将“1”或“0”向左移1位后的16位数值,第二次的16位数值包括“0000000000000010”或者“1111111111111101”;

重复单元,用于重复执行上述第二读取单元所执行的操作,直至进行16次的读写过程后,若每次的读写过程中判断数值均无误,则dram无故障,若读写过程中出现数值有误,则认定dram出现故障。

尽管已经示出和描述了本申请的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本申请的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由所附权利要求及其等同物限定。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献

  • 日榜
  • 周榜
  • 月榜