一种适用于静态随机存储器的冗余容错内建自修复方法.pdf

上传人:le****a 文档编号:5325358 上传时间:2019-01-05 格式:PDF 页数:12 大小:4.59MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210566395.2

申请日:

2012.12.24

公开号:

CN103077749A

公开日:

2013.05.01

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G11C 29/44申请公布日:20130501|||实质审查的生效IPC(主分类):G11C 29/44申请日:20121224|||公开

IPC分类号:

G11C29/44

主分类号:

G11C29/44

申请人:

西安华芯半导体有限公司

发明人:

熊保玉; 拜福君

地址:

710055 陕西省西安市高新6路38号腾飞创新中心A座4层

优先权:

专利代理机构:

西安西交通盛知识产权代理有限责任公司 61217

代理人:

田洲

PDF下载: PDF下载
内容摘要

本发明提供一种适用于静态随机存储器的冗余容错内建自修复方法,该方法对传统的内建自修复算法提出了改进,加入了冗余测试模块和失效冗余地址屏蔽模块,解决了传统内建自修复算法在冗余地址失效时,无法正确修复的缺陷。冗余测试模块先对冗余地址测试,如果被测试的冗余地址失效,则将其失效标志位置为1,默认为0。待冗余测试结束时,每一个冗余地址都得到它的失效标志位。此时失效冗余地址屏蔽模块工作,对冗余地址进行分析,如果该冗余地址失效标志位为0,则将该冗余地址存入有效冗余地址寄存器内,否则,将其屏蔽掉,不存入。经过对失效的冗余地址屏蔽后,就可以保证自修复地址替换时,每一个被替换的冗余地址都是有效的。

权利要求书

权利要求书一种适用于静态随机存储器的冗余容错内建自修复方法,其特征在于,包括以下步骤:
1)、首先,进行复位操作,对SRAM内建自修复算法中所有的寄存器初始化;
2)、进入冗余测试,对SRAM冗余地址执行March C‑算法;获取冗余地址失效标志位;
3)、分析冗余地址的失效标志位,屏蔽失效的冗余地址,存储有效的冗余地址。
如权利要求1所述的一种适用于静态随机存储器的冗余容错内建自修复方法,其特征在于,所述方法还包括以下步骤:
4)、进行主测试,对SRAM主地址执行March C‑算法;在主测试中,存储检测到的失效主地址,并计数;没有失效,则结束测试;有失效,并且溢出,则结束测试;有失效,但没有溢出,则进入修复和测试;
5)、在修复和测试中,用有效冗余地址替换失效主地址,再次对主地址执行一次March C‑算法;如果有错误,则提示有错误,测试结束;如果没有错误,则提示没有错误,测试结束。
如权利要求1所述的一种适用于静态随机存储器的冗余容错内建自修复方法,其特征在于,步骤2)具体包括以下步骤:对SRAM冗余地址执行MarchC‑算法,对每个冗余地址进行测试,根据测试结果判断其是否失效,如果失效,则将该地址的失效标志位置为1,否则置为0;然后,判断March C‑算法是否结束,如果结束,则冗余测试结束,否则,跳转到下一个地址,对下一个地址进行测试,直到March C‑算法结束。
如权利要求1所述的一种适用于静态随机存储器的冗余容错内建自修复方法,其特征在于,步骤3)具体包括以下步骤:判断当前冗余地址是否小于冗余地址深度,如果不小于,则将失效冗余地址屏蔽完成标志位置1,失效冗余地址屏蔽结束;否则,将失效冗余地址屏蔽完成标志位置0,并检测该冗余地址失效标志位是否为0,如果是0,则将该冗余地址存入有效冗余地址寄存器中,有效冗余地址索引号i加1,冗余地址加1;如果该冗余地址失效标志位为1,则冗余地址直接加1;无论当前冗余地址是否失效,都进入对下一个冗余地址的分析,直到对所有的冗余地址分析完成后,结束。
如权利要求1所述的一种适用于静态随机存储器的冗余容错内建自修复方法,其特征在于,步骤3)中对冗余地址进行分析,如果该冗余地址失效标志位为0,则将该冗余地址存入有效冗余地址寄存器内,否则,将其屏蔽掉,不存入。

说明书

说明书一种适用于静态随机存储器的冗余容错内建自修复方法
【技术领域】
本发明涉及存储器的内建自修复算法领域,特别涉及一种适用于静态随机存储器的冗余容错内建自修复方法。
【背景技术】
嵌入式静态随机存储器(SRAM)由于其高速性能而被广泛用于SOC中。根据国际半导体技术蓝图(ITRS)预测,SOC系统中嵌入式SRAM所占面积比例将不断变大,到2014年将提升到94%。
由于工艺缺陷等原因,导致SRAM的良率降低。SRAM内建自修复(BISR)是一种有效的修复方法。BISR的自修复功能,是通过将SRAM的一部分主地址作为冗余地址使用,当主地址失效时,BISR使用冗余地址替换失效地址来实现的。传统的BI SR直接对主地址进行测试,如果主地址发生失效,即通过冗余地址替换来达到修复的目的。然而,当冗余本身出现失效时,通过将常规的发生错误的地址用冗余地址替换,并不能修复失效,因为被替换的冗余地址,仍然是失效的。因此,传统的内建自修复算法存在缺陷,对SRAM的良率提升是有限的。
因此,设计一种对冗余具有容错功能的内建自修复算法,对提高嵌入式SRAM的良率,是十分有意义的。
【发明内容】
本发明的目的在于提出一种适用于静态随机存储器的冗余容错内建自修复方法,以解决上述技术问题。本发明方法对传统的内建自修复算法提出了改进,加入了冗余测试模块和失效冗余地址屏蔽模块,解决了传统内建自修复算法在冗余地址失效时,无法正确修复的缺陷。
为了实现上述目的,本发明采用如下技术方案:
一种适用于静态随机存储器的冗余容错内建自修复方法,包括以下步骤:
1)、首先,进行复位操作,对SRAM内建自修复算法中所有的寄存器初始化;
2)、进入冗余测试,对SRAM冗余地址执行March C‑算法;获取冗余地址失效标志位。
3)、分析冗余地址的失效标志位,屏蔽失效的冗余地址,存储有效的冗余地址。
本发明进一步的改进在于:
4)、进行主测试,对SRAM主地址执行March C‑算法;在主测试中,存储检测到的失效主地址,并计数;没有失效,则结束测试;有失效,并且溢出,则结束测试;有失效,但没有溢出,则进入修复和测试;
5)、在修复和测试中,用有效冗余地址替换失效主地址,再次对主地址执行一次March C‑算法;如果有错误,则提示有错误,测试结束;如果没有错误,则提示没有错误,测试结束。
本发明进一步的改进在于:步骤2)具体包括以下步骤:对SRAM冗余地址执行March C‑算法,对每个冗余地址进行测试,根据测试结果判断其是否失效,如果失效,则将该地址的失效标志位置为1,否则置为0;然后,判断March C‑算法是否结束,如果结束,则冗余测试结束,否则,跳转到下一个地址,对下一个地址进行测试,直到March C‑算法结束。
本发明进一步的改进在于:步骤3)具体包括以下步骤:判断当前冗余地址是否小于冗余地址深度,如果不小于,则将失效冗余地址屏蔽完成标志位置1,失效冗余地址屏蔽结束;否则,将失效冗余地址屏蔽完成标志位置0,并检测该冗余地址失效标志位是否为0,如果是0,则将该冗余地址存入有效冗余地址寄存器中,有效冗余地址索引号i加1,冗余地址加1;如果该冗余地址失效标志位为1,则冗余地址直接加1;无论当前冗余地址是否失效,都进入对下一个冗余地址的分析,直到对所有的冗余地址分析完成后,结束。
本发明进一步的改进在于:步骤3)中对冗余地址进行分析,如果该冗余地址失效标志位为0,则将该冗余地址存入有效冗余地址寄存器内,否则,将其屏蔽掉,不存入。
相对于现有技术,本发明具有以下优点:本发明提供一种适用于静态随机存储器的冗余容错内建自修复方法,该方法对传统的内建自修复算法提出了改进,加入了冗余测试模块和失效冗余地址屏蔽模块,解决了传统内建自修复算法在冗余地址失效时,无法正确修复的缺陷。冗余测试模块先对冗余地址测试,如果被测试的冗余地址失效,则将其失效标志位置为1,默认为0。待冗余测试结束时,每一个冗余地址都得到它的失效标志位。此时失效冗余地址屏蔽模块工作,对冗余地址进行分析,如果该冗余地址失效标志位为0,则将该冗余地址存入有效冗余地址寄存器内,否则,将其屏蔽掉,不存入。经过对失效的冗余地址屏蔽后,就可以保证自修复地址替换时,每一个被替换的冗余地址都是有效的。
【附图说明】
图1为根据本发明实施的一个冗余容错内建自修复方法的实例流程图。
图2为冗余测试的流程图。
图3为失效冗余地址屏蔽的流程图。
图4为所示实例的硬件实现的框图。
图5为所示实例的硬件实现的有限自由状态机。
【具体实施方式】
下面结合附图对本发明的实施方式做进一步描述。
请参阅图1所示,图1为根据本发明实施的一个冗余容错内建自修复方法实例。本发明方法包括以下步骤:
1)、首先,进行复位操作,对SRAM内建自修复算法中所有的寄存器初始化;
2)、然后,进入冗余测试,冗余测试模块对SRAM冗余地址执行March C‑算法。在冗余测试中,获取冗余地址失效标志位。
3)、然后,进入失效冗余地址屏蔽,失效冗余地址屏蔽模块通过分析冗余地址的失效标志位,屏蔽失效的冗余地址,存储有效的冗余地址。
4)、然后,进入主测试,主测试模块对SRAM主地址执行March C‑算法。在主测试中,存储检测到的失效主地址,并计数。没有失效,则结束测试。有失效,并且溢出,则结束测试。有失效,但没有溢出,则进入修复和测试。
5)、在修复和测试中,修复与测试模块用有效冗余地址替换失效主地址,再次对主地址执行一次March C‑算法。如果有错误,则提示有错误,测试结束。如果没有错误,则提示没有错误,测试结束。
请参阅图2所示,图2为冗余测试的流程图。具体步骤如下:首先,进行复位操作,对所有的寄存器初始化,算法开始。然后,对SRAM冗余地址执行MarchC‑算法,对每个冗余地址进行测试,根据测试结果判断其是否失效,如果失效,则将该地址的失效标志位置为1,否则置为0。然后,判断March C‑算法是否结束,如果结束,则冗余测试结束,否则,跳转到下一个地址,对下一个地址进行测试,直到March C‑算法结束。当冗余测试结束时,每一位冗余地址都得到一位的标志位,为下一步失效冗余地址屏蔽做好准备。
请参阅图3所示,图3为失效冗余地址屏蔽的流程图。具体步骤如下,首先,进行复位操作,对所有的寄存器初始化,算法开始。然后,判断当前冗余地址是否小于冗余地址深度,如果不小于,则将失效冗余地址屏蔽完成标志位置1,失效冗余地址屏蔽结束;否则,将失效冗余地址屏蔽完成标志位置0,并检测该冗余地址失效标志位是否为0,如果是0,则将该冗余地址存入有效冗余地址寄存器中,有效冗余地址索引号i(复位时为0)加1,冗余地址(复位时为0)加1;如果该冗余地址失效标志位为1,则冗余地址直接加1。无论当前冗余地址是否失效,都进入对下一个冗余地址的分析,直到对所有的冗余地址分析完成后,结束。
请参阅图4所示,图4为所示实例的硬件实现的框图。图中BISR表示冗余容错内建自修复方法的硬件,SRAM表示待测静态随机存储器。箭头方向表示数据流向。BISR由冗余测试、失效冗余地址屏蔽、主测试、有限自由状态机,内建地址分析和3选1选择器组成。BISR的输入信号包括测试信号test_h、复位信号rst_l、修复信号bisr_h、时钟信号clk、SRAM原始片选信号cen_0、原始写使能信号wen_0、原始地址信号a_0、原始写数据d_0、读数据q;输出信号包括测试完成信号test_done、溢出信号over_h、失效信号fail_h、SRAM片选信号cen、写使能信号wen,地址信号a和写数据d。冗余测试输入包括SRAM读数据q、test_phase、test_h、rst_l,clk;它为失效冗余地址屏蔽提供冗余地址失效标志位redun_a_flag,为有限自由状态机提供冗余测试结束标志位test_redun_done,为3选1选择器提供冗余片选信号cen_redun、冗余写使能信号wen_redun、冗余地址信号a_redun、冗余数据信号d_redun。失效冗余地址屏蔽输入包括SRAM读数据q、test_phase、test_h、rst_l,clk;它为有限自由状态机提供有效冗余地址数量ava_redun_a_num、失效冗余地址屏蔽完成标志位def_redun_a_mask_done,为内建地址分析提供有效冗余地址。主测试输入包括test_phase、test_h、rst_l,clk;它为有限自由状态机提供主测试完成标志位test_main_done、主测试失效标志位fail_h_main、修复测试完成标志位test_repair_done、修复测试失效标志位fail_h_repair和失效主地址数量def_main_a_num;为内建地址分析提供失效主地址def_main_a;为3选1选择器提供主片选择信号cen_main、主写使能信号wen_main,主冗余地址a_main和主写数据d_main。有限自由状态机输入包括test_h、rst_l、clk、bisr_h、test_redun_done、ava_redun_a_num、def_redun_a_mask_done、test_main_done、fail_h_main、test_repair_done、fail_h repair、def_main_a_num;为其他五个模块提供test_phase,为整个BISR输出over_h,fail_h和test_done。3选1选择器的输入包括bisr_h、test_phase、cen_0、wen_0、a_0、d_0、cen_redun、wen_redun、a_redun、d_redun、cen_main、wen_main、a_main、d_main;它为内建地址分析提供内建自修复地址bisr_a;为SRAM提供cen、wen、d。内建地址分析输入包括test_h、rst_l、clk、bisr_h、test_phase、ava_redun_a、def_main_a、bisr_a;为SRAM提供地址a。BISR工作原理将结合图5详细说明。
请参阅图5所示,图5为所示实例的硬件实现的有限自由状态机。结合图4详细描述冗余容错的内建自修复方法硬件实现的工作原理如下。当复位信号rst_l=0时,所有状态跳都将转到“测试开始test_start”状态,“测试开始”状态为该状态机的复位状态。在“测试开始”状态时,如果测试信号test_h=1,则test_phase的下一个状态为“冗余测试”test_redun状态。
在“冗余测试”状态中,对SRAM冗余地址进行March C‑算法。其原理如下,冗余测试产生cen_redun、wen_redun、a_redun、d_redun;3选1选择器检测到当前test_phase=test_redun,将cen_redun、wen_redun、d_redun选通给SRAM输入cen、wen、d,将a_redun输出给内建地址分析输入bisr_a,内建地址分析直接将bisr_a送给SRAM输入a。SRAM将读数据q反馈给冗余测试,如果q与预期值相同,则该冗余地址有效,否则失效,将该冗余地址对应的失效标志位redun_a_flag标记为1(复位时为0)。执行完对冗余地址的March C‑算法后,将冗余测试完成标志位test_redun_done置为1(复位时为0)。在“冗余测试”状态中,如果test_h=1且test_redun_done=1,则test_phase的下一状态为“失效冗余地址屏蔽”def_redun_a_mask状态。
在“失效冗余地址屏蔽”状态中,对每一个冗余地址进行分析,如果其失效标志位为0,则将其存入有效冗余地址寄存器ava_redun_a中,且将有效冗余地址数量ava_redun_a_num加1;如果其失效标志位为1,则将该冗余地址丢弃掉,不存入ava_redun_a中。在完成对所有冗余地址的分析之后,将失效冗余地址屏蔽完成标志位def_redun_a_mask_done置为1(复位时为0)。在“失效冗余地址屏蔽”状态中,如果test_h=1且def_redun_a_mak_done=1,则test_phase的下一状态为“主测试”test_main状态。
在“主测试”状态中,对SRAM主地址执行March C‑算法。其原理如下,主测试产生cen_main、wen_main、a_main、d_main;3选1选择器检测到当前test_phase=test_main,将cen_main、wen_main、d_main选通给SRAM输入cen、wen、d,将a_main输出给内建地址分析输入bisr_a,内建地址分析直接将bisr_a送给SRAM输入a。SRAM将读数据q反馈给主测试,如果q与预期值不相同,则主测试发生失效,将主测试错误标志位fail_h_main置为1(复位时为0),并把失效主地址存入失效主地址寄存器def_main_a中,并且将失效主地址数量def_main_a_num加1。执行完对主地址的March C‑算法后,将主测试完成标志位test_main_done置为1(复位时为0)。如果发生错误的主地址数量def_main_a_num大于有效冗余地址数量ava_redun_a_num,则将溢出标志位over_h置为1(复位时为0)。
在“主测试”状态中,如果test_h=1且test_main_done=1,并且fail_h_main=0,则fail_h=0,test_done=0,表示主测试完成,没有错误,则test_phase的下一状态为“测试完成”状态。在“主测试”状态中,如果test_h=1且test_main_done=1,且fail_h_main=1,且over_h=1,表示主测试完成,失效的主地址数量大于有效冗余地址的数量,溢出,不可修复,则test_phase的下一状态为“测试完成”状态。在“主测试”状态中,如果test_h=1且tst_main_done=1,且fail_h_main=1且over_h=0,且bisr_h=1,表示主测试完成,有错误,但失效的主地址数量小于有效冗余地址的数量,可修复,并且进行修复,则test_phase的下一状态为“修复和测试”test_repair状态。
在“修复和测试”状态中,对SRAM主地址进行修复(如果有需要)并执行March C‑算法。其原理如下,主测试产生cen_main、wen_main、a_main、d_main;3选1选择器检测到当前test_phase=test_repair,将cen_main、wen_main、d_main选通给SRAM输入cen、wen、d,将a_main输出给内建地址分析输入bisr_a。内建地址分析测到当前test_phase=test_repair,将bisr_a与def_main_a寄存器中的每一个地址进行比较,如果命中,则用ava_redun_a中有效冗余地址替换bisr_a后送给SRAM输入a;如果不命中,直接将bisr_a送给SRAM输入a。SRAM将读数据q反馈给主测试,如果q与预期值不相同,则修复和测试发生失效,将修复和测试错误标志位fail_h_repair置为1(复位时为0)。执行完对主地址的修复和测试后,将修复和测试完成状态标志位test_repair_done置为1(复位时为0)。
在“修复和测试”状态中,如果test_h=1且test_repair_done=1且fail_h_repair=0,则fail_h=0,test_done=0,表示修复成功,提示修复成功,修复完成,则test_phase的下一状态为“测试完成”状态;如果test_h=1且test_repair_done=1且fail_h_repair=1,则fail_h=1,test_done=0表示修复失败,提示修复失败,修复完成,则test_phase的下一状态为“测试完成”状态。
在“测试完成”状态,如果rst_l=0,则test_phase的下一状态为“测试开始test_start”状态。

一种适用于静态随机存储器的冗余容错内建自修复方法.pdf_第1页
第1页 / 共12页
一种适用于静态随机存储器的冗余容错内建自修复方法.pdf_第2页
第2页 / 共12页
一种适用于静态随机存储器的冗余容错内建自修复方法.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种适用于静态随机存储器的冗余容错内建自修复方法.pdf》由会员分享,可在线阅读,更多相关《一种适用于静态随机存储器的冗余容错内建自修复方法.pdf(12页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103077749 A (43)申请公布日 2013.05.01 CN 103077749 A *CN103077749A* (21)申请号 201210566395.2 (22)申请日 2012.12.24 G11C 29/44(2006.01) (71)申请人 西安华芯半导体有限公司 地址 710055 陕西省西安市高新6路38号腾 飞创新中心 A 座 4 层 (72)发明人 熊保玉 拜福君 (74)专利代理机构 西安西交通盛知识产权代理 有限责任公司 61217 代理人 田洲 (54) 发明名称 一种适用于静态随机存储器的冗余容错内建 自修复方法 (57) 摘要。

2、 本发明提供一种适用于静态随机存储器的冗 余容错内建自修复方法, 该方法对传统的内建自 修复算法提出了改进, 加入了冗余测试模块和失 效冗余地址屏蔽模块, 解决了传统内建自修复算 法在冗余地址失效时, 无法正确修复的缺陷。 冗余 测试模块先对冗余地址测试, 如果被测试的冗余 地址失效, 则将其失效标志位置为1, 默认为0。 待 冗余测试结束时, 每一个冗余地址都得到它的失 效标志位。 此时失效冗余地址屏蔽模块工作, 对冗 余地址进行分析, 如果该冗余地址失效标志位为 0, 则将该冗余地址存入有效冗余地址寄存器内, 否则, 将其屏蔽掉, 不存入。经过对失效的冗余地 址屏蔽后, 就可以保证自修复地。

3、址替换时, 每一个 被替换的冗余地址都是有效的。 (51)Int.Cl. 权利要求书 1 页 说明书 5 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书5页 附图5页 (10)申请公布号 CN 103077749 A CN 103077749 A *CN103077749A* 1/1 页 2 1. 一种适用于静态随机存储器的冗余容错内建自修复方法, 其特征在于, 包括以下步 骤 : 1) 、 首先, 进行复位操作, 对 SRAM 内建自修复算法中所有的寄存器初始化 ; 2) 、 进入冗余测试, 对 SRAM 冗余地址执行 March C- 。

4、算法 ; 获取冗余地址失效标志位 ; 3) 、 分析冗余地址的失效标志位, 屏蔽失效的冗余地址, 存储有效的冗余地址。 2. 如权利要求 1 所述的一种适用于静态随机存储器的冗余容错内建自修复方法, 其特 征在于, 所述方法还包括以下步骤 : 4) 、 进行主测试, 对 SRAM 主地址执行 March C- 算法 ; 在主测试中, 存储检测到的失效 主地址, 并计数 ; 没有失效, 则结束测试 ; 有失效, 并且溢出, 则结束测试 ; 有失效, 但没有溢 出, 则进入修复和测试 ; 5) 、 在修复和测试中, 用有效冗余地址替换失效主地址, 再次对主地址执行一次 March C- 算法 ; 。

5、如果有错误, 则提示有错误, 测试结束 ; 如果没有错误, 则提示没有错误, 测试结 束。 3. 如权利要求 1 所述的一种适用于静态随机存储器的冗余容错内建自修复方法, 其特 征在于, 步骤 2) 具体包括以下步骤 : 对 SRAM 冗余地址执行 MarchC- 算法, 对每个冗余地址 进行测试, 根据测试结果判断其是否失效, 如果失效, 则将该地址的失效标志位置为 1, 否则 置为 0 ; 然后, 判断 March C- 算法是否结束, 如果结束, 则冗余测试结束, 否则, 跳转到下一 个地址, 对下一个地址进行测试, 直到 March C- 算法结束。 4. 如权利要求 1 所述的一种适。

6、用于静态随机存储器的冗余容错内建自修复方法, 其特 征在于, 步骤 3) 具体包括以下步骤 : 判断当前冗余地址是否小于冗余地址深度, 如果不小 于, 则将失效冗余地址屏蔽完成标志位置 1, 失效冗余地址屏蔽结束 ; 否则, 将失效冗余地 址屏蔽完成标志位置 0, 并检测该冗余地址失效标志位是否为 0, 如果是 0, 则将该冗余地址 存入有效冗余地址寄存器中, 有效冗余地址索引号i加1, 冗余地址加1 ; 如果该冗余地址失 效标志位为 1, 则冗余地址直接加 1 ; 无论当前冗余地址是否失效, 都进入对下一个冗余地 址的分析, 直到对所有的冗余地址分析完成后, 结束。 5. 如权利要求 1 所。

7、述的一种适用于静态随机存储器的冗余容错内建自修复方法, 其特 征在于, 步骤 3) 中对冗余地址进行分析, 如果该冗余地址失效标志位为 0, 则将该冗余地址 存入有效冗余地址寄存器内, 否则, 将其屏蔽掉, 不存入。 权 利 要 求 书 CN 103077749 A 2 1/5 页 3 一种适用于静态随机存储器的冗余容错内建自修复方法 【技术领域】 0001 本发明涉及存储器的内建自修复算法领域, 特别涉及一种适用于静态随机存储器 的冗余容错内建自修复方法。 【背景技术】 0002 嵌入式静态随机存储器 (SRAM) 由于其高速性能而被广泛用于 SOC 中。根据国际 半导体技术蓝图 (ITRS。

8、) 预测, SOC 系统中嵌入式 SRAM 所占面积比例将不断变大, 到 2014 年 将提升到 94%。 0003 由于工艺缺陷等原因, 导致的良率降低。内建自修复 (BISR) 是 一种有效的修复方法。 BISR的自修复功能, 是通过将SRAM的一部分主地址作为冗余地址使 用, 当主地址失效时, BISR 使用冗余地址替换失效地址来实现的。传统的 BI SR 直接对主 地址进行测试, 如果主地址发生失效, 即通过冗余地址替换来达到修复的目的。然而, 当冗 余本身出现失效时, 通过将常规的发生错误的地址用冗余地址替换, 并不能修复失效, 因为 被替换的冗余地址, 仍然是失效的。因此, 传统的。

9、内建自修复算法存在缺陷, 对的 良率提升是有限的。 0004 因此, 设计一种对冗余具有容错功能的内建自修复算法, 对提高嵌入式 的良率, 是十分有意义的。 【发明内容】 0005 本发明的目的在于提出一种适用于静态随机存储器的冗余容错内建自修复方法, 以解决上述技术问题。本发明方法对传统的内建自修复算法提出了改进, 加入了冗余测试 模块和失效冗余地址屏蔽模块, 解决了传统内建自修复算法在冗余地址失效时, 无法正确 修复的缺陷。 0006 为了实现上述目的, 本发明采用如下技术方案 : 0007 一种适用于静态随机存储器的冗余容错内建自修复方法, 包括以下步骤 : 0008 1) 、 首先, 。

10、进行复位操作, 对 SRAM 内建自修复算法中所有的寄存器初始化 ; 0009 2) 、 进入冗余测试, 对 SRAM 冗余地址执行 March C- 算法 ; 获取冗余地址失效标志 位。 0010 3) 、 分析冗余地址的失效标志位, 屏蔽失效的冗余地址, 存储有效的冗余地址。 0011 本发明进一步的改进在于 : 0012 4) 、 进行主测试, 对SRAM主地址执行March C-算法 ; 在主测试中, 存储检测到的失 效主地址, 并计数 ; 没有失效, 则结束测试 ; 有失效, 并且溢出, 则结束测试 ; 有失效, 但没有 溢出, 则进入修复和测试 ; 0013 5) 、 在修复和测试。

11、中, 用有效冗余地址替换失效主地址, 再次对主地址执行一次 March C- 算法 ; 如果有错误, 则提示有错误, 测试结束 ; 如果没有错误, 则提示没有错误, 测 试结束。 说 明 书 CN 103077749 A 3 2/5 页 4 0014 本发明进一步的改进在于 : 步骤 2)具体包括以下步骤 : 对 SRAM 冗余地址执行 March C- 算法, 对每个冗余地址进行测试, 根据测试结果判断其是否失效, 如果失效, 则将 该地址的失效标志位置为 1, 否则置为 0 ; 然后, 判断 March C- 算法是否结束, 如果结束, 则 冗余测试结束, 否则, 跳转到下一个地址, 对下。

12、一个地址进行测试, 直到March C-算法结束。 0015 本发明进一步的改进在于 : 步骤 3) 具体包括以下步骤 : 判断当前冗余地址是否小 于冗余地址深度, 如果不小于, 则将失效冗余地址屏蔽完成标志位置 1, 失效冗余地址屏蔽 结束 ; 否则, 将失效冗余地址屏蔽完成标志位置 0, 并检测该冗余地址失效标志位是否为 0, 如果是0, 则将该冗余地址存入有效冗余地址寄存器中, 有效冗余地址索引号i加1, 冗余地 址加 1 ; 如果该冗余地址失效标志位为 1, 则冗余地址直接加 1 ; 无论当前冗余地址是否失 效, 都进入对下一个冗余地址的分析, 直到对所有的冗余地址分析完成后, 结束。。

13、 0016 本发明进一步的改进在于 : 步骤 3) 中对冗余地址进行分析, 如果该冗余地址失效 标志位为 0, 则将该冗余地址存入有效冗余地址寄存器内, 否则, 将其屏蔽掉, 不存入。 0017 相对于现有技术, 本发明具有以下优点 : 本发明提供一种适用于静态随机存储器 的冗余容错内建自修复方法, 该方法对传统的内建自修复算法提出了改进, 加入了冗余测 试模块和失效冗余地址屏蔽模块, 解决了传统内建自修复算法在冗余地址失效时, 无法正 确修复的缺陷。 冗余测试模块先对冗余地址测试, 如果被测试的冗余地址失效, 则将其失效 标志位置为 1, 默认为 0。待冗余测试结束时, 每一个冗余地址都得到。

14、它的失效标志位。此 时失效冗余地址屏蔽模块工作, 对冗余地址进行分析, 如果该冗余地址失效标志位为 0, 则 将该冗余地址存入有效冗余地址寄存器内, 否则, 将其屏蔽掉, 不存入。经过对失效的冗余 地址屏蔽后, 就可以保证自修复地址替换时, 每一个被替换的冗余地址都是有效的。 【附图说明】 0018 图 1 为根据本发明实施的一个冗余容错内建自修复方法的实例流程图。 0019 图 2 为冗余测试的流程图。 0020 图 3 为失效冗余地址屏蔽的流程图。 0021 图 4 为所示实例的硬件实现的框图。 0022 图 5 为所示实例的硬件实现的有限自由状态机。 【具体实施方式】 0023 下面结合。

15、附图对本发明的实施方式做进一步描述。 0024 请参阅图1所示, 图1为根据本发明实施的一个冗余容错内建自修复方法实例。 本 发明方法包括以下步骤 : 0025 1) 、 首先, 进行复位操作, 对 SRAM 内建自修复算法中所有的寄存器初始化 ; 0026 2) 、 然后, 进入冗余测试, 冗余测试模块对 SRAM 冗余地址执行 March C- 算法。在 冗余测试中, 获取冗余地址失效标志位。 0027 3) 、 然后, 进入失效冗余地址屏蔽, 失效冗余地址屏蔽模块通过分析冗余地址的失 效标志位, 屏蔽失效的冗余地址, 存储有效的冗余地址。 0028 4) 、 然后, 进入主测试, 主测试。

16、模块对 SRAM 主地址执行 March C- 算法。在主测试 中, 存储检测到的失效主地址, 并计数。没有失效, 则结束测试。有失效, 并且溢出, 则结束 说 明 书 CN 103077749 A 4 3/5 页 5 测试。有失效, 但没有溢出, 则进入修复和测试。 0029 5) 、 在修复和测试中, 修复与测试模块用有效冗余地址替换失效主地址, 再次对主 地址执行一次 March C- 算法。如果有错误, 则提示有错误, 测试结束。如果没有错误, 则提 示没有错误, 测试结束。 0030 请参阅图 2 所示, 图 2 为冗余测试的流程图。具体步骤如下 : 首先, 进行复位操作, 对所有的。

17、寄存器初始化, 算法开始。然后, 对 SRAM 冗余地址执行 MarchC- 算法, 对每个冗余 地址进行测试, 根据测试结果判断其是否失效, 如果失效, 则将该地址的失效标志位置为 1, 否则置为 0。然后, 判断 March C- 算法是否结束, 如果结束, 则冗余测试结束, 否则, 跳转到 下一个地址, 对下一个地址进行测试, 直到 March C- 算法结束。当冗余测试结束时, 每一位 冗余地址都得到一位的标志位, 为下一步失效冗余地址屏蔽做好准备。 0031 请参阅图 3 所示, 图 3 为失效冗余地址屏蔽的流程图。具体步骤如下, 首先, 进行 复位操作, 对所有的寄存器初始化, 算。

18、法开始。然后, 判断当前冗余地址是否小于冗余地址 深度, 如果不小于, 则将失效冗余地址屏蔽完成标志位置 1, 失效冗余地址屏蔽结束 ; 否则, 将失效冗余地址屏蔽完成标志位置 0, 并检测该冗余地址失效标志位是否为 0, 如果是 0, 则 将该冗余地址存入有效冗余地址寄存器中, 有效冗余地址索引号 i(复位时为 0) 加 1, 冗余 地址 (复位时为 0) 加 1 ; 如果该冗余地址失效标志位为 1, 则冗余地址直接加 1。无论当前 冗余地址是否失效, 都进入对下一个冗余地址的分析, 直到对所有的冗余地址分析完成后, 结束。 0032 请参阅图 4 所示, 图 4 为所示实例的硬件实现的框图。

19、。图中 BISR 表示冗余容错内 建自修复方法的硬件, SRAM 表示待测静态随机存储器。箭头方向表示数据流向。BISR 由冗 余测试、 失效冗余地址屏蔽、 主测试、 有限自由状态机, 内建地址分析和 3 选 1 选择器组成。 BISR 的输入信号包括测试信号 test_h、 复位信号 rst_l、 修复信号 bisr_h、 时钟信号 clk、 SRAM 原始片选信号 cen_0、 原始写使能信号 wen_0、 原始地址信号 a_0、 原始写数据 d_0、 读 数据 q ; 输出信号包括测试完成信号 test_done、 溢出信号 over_h、 失效信号 fail_h、 SRAM 片选信号 。

20、cen、 写使能信号 wen, 地址信号 a 和写数据 d。冗余测试输入包括 SRAM 读数据 q、 test_phase、 test_h、 rst_l, clk ; 它为失效冗余地址屏蔽提供冗余地址失效标志位 redun_ a_flag, 为有限自由状态机提供冗余测试结束标志位 test_redun_done, 为 3 选 1 选择器提 供冗余片选信号 cen_redun、 冗余写使能信号 wen_redun、 冗余地址信号 a_redun、 冗余数据 信号d_redun。 失效冗余地址屏蔽输入包括SRAM读数据q、 test_phase、 test_h、 rst_l, clk ; 它为有限。

21、自由状态机提供有效冗余地址数量 ava_redun_a_num、 失效冗余地址屏蔽完成标 志位 def_redun_a_mask_done, 为内建地址分析提供有效冗余地址。主测试输入包括 test_ phase、 test_h、 rst_l, clk ; 它为有限自由状态机提供主测试完成标志位 test_main_done、 主测试失效标志位 fail_h_main、 修复测试完成标志位 test_repair_done、 修复测试失效 标志位 fail_h_repair 和失效主地址数量 def_main_a_num ; 为内建地址分析提供失效主地 址def_main_a ; 为3选1选择。

22、器提供主片选择信号cen_main、 主写使能信号wen_main, 主冗 余地址 a_main 和主写数据 d_main。有限自由状态机输入包括 test_h、 rst_l、 clk、 bisr_ h、 test_redun_done、 ava_redun_a_num、 def_redun_a_mask_done、 test_main_done、 fail_ h_main、 test_repair_done、 fail_h repair、 def_main_a_num ; 为其他五个模块提供 test_ phase, 为整个 BISR 输出 over_h, fail_h 和 test_don。

23、e。3 选 1 选择器的输入包括 bisr_h、 说 明 书 CN 103077749 A 5 4/5 页 6 test_phase、 cen_0、 wen_0、 a_0、 d_0、 cen_redun、 wen_redun、 a_redun、 d_redun、 cen_main、 wen_main、 a_main、 d_main ; 它为内建地址分析提供内建自修复地址 bisr_a ; 为 SRAM 提供 cen、 wen、 d。内建地址分析输入包括 test_h、 rst_l、 clk、 bisr_h、 test_phase、 ava_redun_ a、 def_main_a、 bisr_。

24、a ; 为 SRAM 提供地址 a。BISR 工作原理将结合图 5 详细说明。 0033 请参阅图 5 所示, 图 5 为所示实例的硬件实现的有限自由状态机。结合图 4 详细 描述冗余容错的内建自修复方法硬件实现的工作原理如下。当复位信号 rst_l=0 时, 所有 状态跳都将转到 “测试开始 test_start” 状态,“测试开始” 状态为该状态机的复位状态。 在 “测试开始” 状态时, 如果测试信号 test_h=1, 则 test_phase 的下一个状态为 “冗余测 试” test_redun 状态。 0034 在 “冗余测试”状态中, 对 SRAM 冗余地址进行 March C- 。

25、算法。其原理如下, 冗 余测试产生 cen_redun、 wen_redun、 a_redun、 d_redun ; 3 选 1 选择器检测到当前 test_ phase=test_redun, 将 cen_redun、 wen_redun、 d_redun 选通给 SRAM 输入 cen、 wen、 d, 将 a_redun 输出给内建地址分析输入 bisr_a, 内建地址分析直接将 bisr_a 送给 SRAM 输入 a。 SRAM将读数据q反馈给冗余测试, 如果q与预期值相同, 则该冗余地址有效, 否则失效, 将该 冗余地址对应的失效标志位 redun_a_flag 标记为 1(复位时为。

26、 0) 。执行完对冗余地址的 March C- 算法后, 将冗余测试完成标志位 test_redun_done 置为 1(复位时为 0) 。在 “冗 余测试” 状态中, 如果 test_h=1 且 test_redun_done=1, 则 test_phase 的下一状态为 “失效 冗余地址屏蔽” def_redun_a_mask 状态。 0035 在 “失效冗余地址屏蔽” 状态中, 对每一个冗余地址进行分析, 如果其失效标志位 为0, 则将其存入有效冗余地址寄存器ava_redun_a中, 且将有效冗余地址数量ava_redun_ a_num 加 1 ; 如果其失效标志位为 1, 则将该冗余。

27、地址丢弃掉, 不存入 ava_redun_a 中。在完 成对所有冗余地址的分析之后, 将失效冗余地址屏蔽完成标志位 def_redun_a_mask_done 置为 1 (复位时为 0) 。在 “失效冗余地址屏蔽” 状态中, 如果 test_h=1 且 def_redun_a_mak_ done=1, 则 test_phase 的下一状态为 “主测试” test_main 状态。 0036 在 “主测试” 状态中, 对 SRAM 主地址执行 March C- 算法。其原理如下, 主测试产 生 cen_main、 wen_main、 a_main、 d_main ; 3 选 1 选择器检测到当前。

28、 test_phase=test_main, 将 cen_main、 wen_main、 d_main 选通给 SRAM 输入 cen、 wen、 d, 将 a_main 输出给内建地址 分析输入 bisr_a, 内建地址分析直接将 bisr_a 送给 SRAM 输入 a。SRAM 将读数据 q 反馈给 主测试, 如果 q 与预期值不相同, 则主测试发生失效, 将主测试错误标志位 fail_h_main 置 为 1(复位时为 0) , 并把失效主地址存入失效主地址寄存器 def_main_a 中 , 并且将失效主 地址数量def_main_a_num加1。 执行完对主地址的March C-算法。

29、后, 将主测试完成标志位 test_main_done 置为 1(复位时为 0) 。如果发生错误的主地址数量 def_main_a_num 大于 有效冗余地址数量 ava_redun_a_num, 则将溢出标志位 over_h 置为 1(复位时为 0) 。 0037 在 “主测试” 状态中, 如果 test_h=1 且 test_main_done=1, 并且 fail_h_main=0, 则 fail_h=0, test_done=0, 表示主测试完成, 没有错误, 则 test_phase 的下一状态为 “测试 完成” 状态。在 “主测试” 状态中, 如果 test_h=1 且 test_。

30、main_done=1, 且 fail_h_main=1, 且 over_h=1, 表示主测试完成, 失效的主地址数量大于有效冗余地址的数量, 溢出, 不可修 复, 则 test_phase 的下一状态为 “测试完成” 状态。在 “主测试” 状态中, 如果 test_h=1 且 tst_main_done=1, 且 fail_h_main=1 且 over_h=0, 且 bisr_h=1, 表示主测试完成, 有错误, 说 明 书 CN 103077749 A 6 5/5 页 7 但失效的主地址数量小于有效冗余地址的数量, 可修复, 并且进行修复, 则 test_phase 的 下一状态为 “修。

31、复和测试” test_repair 状态。 0038 在 “修复和测试”状态中, 对 SRAM 主地址进行修复 (如果有需要)并执行 March C- 算法。其原理如下, 主测试产生 cen_main、 wen_main、 a_main、 d_main ; 3 选 1 选择器 检测到当前 test_phase=test_repair, 将 cen_main、 wen_main、 d_main 选通给 SRAM 输入 cen、 wen、 d, 将 a_main 输出给内建地址分析输入 bisr_a。内建地址分析测到当前 test_ phase=test_repair, 将bisr_a与def_m。

32、ain_a寄存器中的每一个地址进行比较, 如果命中, 则用 ava_redun_a 中有效冗余地址替换 bisr_a 后送给 SRAM 输入 a ; 如果不命中, 直接将 bisr_a 送给 SRAM 输入 a。SRAM 将读数据 q 反馈给主测试, 如果 q 与预期值不相同, 则修复 和测试发生失效, 将修复和测试错误标志位 fail_h_repair 置为 1(复位时为 0) 。执行完 对主地址的修复和测试后, 将修复和测试完成状态标志位 test_repair_done 置为 1(复位 时为 0) 。 0039 在 “修复和测试”状态中, 如果 test_h=1 且 test_repai。

33、r_done=1 且 fail_h_ repair=0, 则 fail_h=0, test_done=0, 表示修复成功, 提示修复成功, 修复完成, 则 test_ phase 的下一状态为 “测试完成” 状态 ; 如果 test_h=1 且 test_repair_done=1 且 fail_h_ repair=1, 则 fail_h=1, test_done=0 表示修复失败, 提示修复失败, 修复完成, 则 test_ phase 的下一状态为 “测试完成” 状态。 0040 在 “测试完成” 状态, 如果 rst_l=0, 则 test_phase 的下一状态为 “测试开始 test_ start” 状态。 说 明 书 CN 103077749 A 7 1/5 页 8 图 1 说 明 书 附 图 CN 103077749 A 8 2/5 页 9 图 2 说 明 书 附 图 CN 103077749 A 9 3/5 页 10 图 3 说 明 书 附 图 CN 103077749 A 10 4/5 页 11 图 4 说 明 书 附 图 CN 103077749 A 11 5/5 页 12 图 5 说 明 书 附 图 CN 103077749 A 12 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 信息存储


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1