使用背景内建自测试的零测试时间存储器的制作方法

文档序号:15739340发布日期:2018-10-23 22:01阅读:166来源:国知局

本公开涉及提供使用内建自测试的零测试时间存储器,更具体而言,涉及一种多端口存储器以允许在执行功能操作时的多端口存储器的零测试时间。



背景技术:

在工业应用(例如,汽车)中,公司可能希望将先进的减少指令集计算机机器(即,ARM)核心从任务模式(即,功能操作)中取出并加入测试模式,同时在任务模式中保持剩余的ARM内核和2级(L2)缓存。此外,在许多工业应用(例如,汽车)中,电子电路需要被连续测试,以便确保可靠性并防止可能导致系统停机的软件和/或硬件故障。因此,在这些工业应用中,需要在执行功能操作的同时进行测试的存储器。

在汽车工业的示例中,需要200毫秒(毫秒)周期来执行片上测试。在这种情况下,发出功能操作,然后进行逻辑块的测试操作。在这种情况下,由于难以提供大量的连续测试时间,所以会导致慢的性能,因为在测试完成后才能发出进一步的功能操作



技术实现要素:

在本公开的一个方面,一种结构,包括存储器,其被配置为在读取端口处执行至少一个功能读取操作的同时,能够在读取/写入端口处进行零测试时间内建自测试(BIST)。

在本公开的另一方面,一种方法,包括:在第一读取端口处执行至少一个功能读取操作;以及在所述第一读取端口处执行所述至少一个功能读取操作的同时在第二读取端口处执行零测试时间内建自测试(BIST)。

在本公开的另一方面,一种方法,包括:执行功能写入操作;当所述功能写入操作与被测试字(WUT)冲突时更新测试存储缓存(TSC)的数据;以及当所述功能写入操作和所述WUT之间没有冲突时,执行测试空闲周期。

附图说明

在以下通过本公开的示例性实施例的非限制性示例,参考多个附图,以详细的说明来描述本公开。

图1示出了根据本公开的方面的多个周期内的零测试方法。

图2示出了根据本公开的方面的零测试方法的方法。

图3示出了根据本公开的方面的高级测试包装器。

图4示出了根据本公开的方面的另一高级测试包装器。

图5示出了根据本公开的方面执行高级测试包装器的方法。

具体实施方式

本公开涉及提供使用内建自测试的零测试时间存储器,更具体地,涉及多端口存储器,以在执行功能操作时允许多端口存储器的零测试时间。在更具体的实施例中,多端口存储器(即,N>1的N端口存储器)具有专用于具有内建自测试的存储器的测试的一个端口,而至少一个其它端口可以是致力于执行功能操作(即,客户操作)。有利地,通过实施多端口存储器,为用于连续功能(即,客户)透明测试的内建自测试提供零测试时间。此外,对于仅需要一个端口执行功能操作的客户,可以执行连续和并发测试,而不影响功能操作。相反,在已知的存储器系统中,必须在不执行功能操作(即,无功能操作周期)的周期中执行测试,这减慢了性能。

在实施例中,一种结构包括被配置为在至少一个功能操作期间使零测试时间内建自测试(BIST)连续测试硬件、以及被配置为与存储器接口的包装器(wrapper)以连续测试硬件,该包装器包括多个硬件逻辑。该结构还可以包括作为硬件存储缓存的测试存储缓存(TSC)。在又一实施例中,TSC是在地址被测试时保存存储器数据的硬件实施。存储器还被配置为确定被测试字(WUT)并读取WUT的数据。包装器的多个硬件逻辑包括转换后备缓冲(TLB),其被配置为将WUT指向用于至少一个功能操作的TSC。TLB是一个硬件存储器缓冲,用于存储虚拟存储器到物理地址的最近转换,以便更快的存储器检索。

TSC被配置为从存储器接收WUT的数据,验证WUT的数据,并且在WUT被指向TSC之后执行WUT的至少一个功能操作。该存储器被进一步配置为以至少一种模式执行BIST。作为示例,至少一个模式包括棋盘和反向棋盘中的一个。TSC还被配置为回写WUT的数据并验证回写的数据。TLB进一步被配置为去除该指向以允许到WUT的直接地址映射。

在说明性的非限制性示例中,多端口存储器可以利用双端口静态随机存取存储器(SRAM)和其他类似配置。SRAM的一个端口可被用于客户/功能操作,例如读取或写入操作,而SRAM的另一个端口可用于并发测试。例如,在实施中,可以确定被测字(WUT),然后将其转移到TSC。然后,对TLB执行映射操作,以将WUT指向TSC。所有WUT操作都可以路由到TSC。测试完成后,存在TSC到WUT的转移。然后去除TLB指针,这允许到被测试字(WUT)的直接地址映射。然后,增加被测试词(WUT),并且对剩余字重复该过程。

如现在应当理解的,在本公开的实施例中,通过实施实施例的多端口存储器,为用于连续功能(即,客户)透明测试的内部自测试提供零测试时间。此外,在实施例中,对于仅需要一个端口来执行功能操作的客户,可以对功能操作没有影响地执行连续和并发测试。例如,多端口存储器可以包括2读取端口/1写入端口配置,以便在功能操作和测试操作之间具有共享的写入操作。此外,多端口存储器可以包括其他配置,例如4读取端口/2写入端口配置,以在功能操作和测试操作之间共享写入操作。

图1示出了根据本公开的方面的多个周期的零测试方法。图1包括双端口设计,第一端口是用于功能操作的端口,第二端口是用于测试操作的端口。在图1中,零测试方法100被示为具有多个周期,包括第一周期110、第二周期120、第三周期130、第四周期140、第五周期150和第六周期160。此外,在图1中,矩形170对应于第一端口(例如,功能操作端口),矩形180对应于第二端口(例如,测试端口)。在零测试方法100中,第一周期110包括在第一端口(例如,功能操作端口)处执行的读取/写入功能(例如,read/write_func)。在第一周期110中,读取条目(例如,read_entry)可以发生在第二端口(例如,测试端口)上。此外,在第一周期100中,可以将字(即,数据)复制到被称为update_entry的测试缓冲(例如,测试存储缓存(TSC))。然后,映射转换后备缓冲(TLB)以将该字(即,数据)指向TSC。

在图1中,在第二周期120中,在下一个可用的写入空闲周期将测试字写入到第一周期110中的字(即,数据)的补(即,write_reverse_test)。在第二周期120中,测试字被写入第二个端口(例如,测试端口)。此外,在第二周期120中,可以在第一端口(例如,功能操作端口)执行读取功能(例如,read_func)。在第三周期130中,执行读取和测试(例如,read_reverse_test)以查看是否可以成功读取字(即,数据)的补。在第三周期130中,在第二端口(例如,测试端口)执行读取和测试。在第三周期130中,在第一端口(例如,功能操作端口)执行read/write功能(例如,read/write_func)。

仍然参考图1,在第四周期140中,在下一个可用的写入空闲周期(即,write_true_test)将测试字写入该字(即,数据)。测试字被写入第二个端口(例如,测试端口)。此外,可以在第一端口(例如,功能操作端口)执行读取功能(例如,read_func)。在第五周期150中,执行读取和测试(例如,read_true_test)以查看该字(即,数据)是否被成功读取。在第五周期150中,在第二端口(例如,测试端口)执行读取和测试。此外,在第五周期150中,在第一端口(例如,功能操作端口)执行读取/写入功能(例如,read/write_func)。

在图1中,在第六周期160中,转换后备缓冲(TLB)中的字(即,数据)被移动回第二部分(例如,测试端口)处的测试后的字,这被称为update_true_test。此外,在第六周期160中,在第一端口(例如,功能操作端口)执行读取功能(例如,read_func)。在第六周期160之后,重复该过程并测试另一个字。

参考图2,一种方法包括读取被测试字(WUT)的数据并将WUT的数据存储在TSC中,映射TLB以将WUT指向TSC,将多个WUT操作路由到TSC,并以至少一个模式测试WUT。该方法还包括将TSC中的WUT的数据回写WUT。该方法还包括去除TLB的指向以允许直接地址映射WUT。该方法还包括增加字地址计数器以测试另一个字。该方法还包括验证TSC中的WUT的数据。多个WUT操作包括至少一个功能操作。至少一个功能操作是写入操作。至少一个功能操作是读取操作。

更具体地说,在图2中,用于零测试方法的流程200在步骤205开始。在步骤210,将WUT设置到零(即,“0”)。在步骤215,WUT被读取,存储在TSC中,然后被验证。在步骤220,将TLB映射以将WUT指向用于客户(即,功能)操作的TSC。

在步骤225,所有客户(即,功能)WUT操作(例如,写入/读取)被路由到TSC。然后,在步骤230,用模式(例如,棋盘格,反向棋盘等)测试内建字测试被测字(BIST WUT)。在步骤235,将TSC的内容回写到WUT,然后验证回写信息。在步骤240,TLB指针被去除,这允许到WUT的直接地址映射。

在步骤245,增加WUT地址计数器以测试另一个字。然后,在步骤250,确定存储器中的所有字是否已被测试。如果已经测试了所有字,则该方法在步骤255结束。然而,如果存储器中的所有字尚未被测试,则该方法返回到步骤215,并且该方法从步骤215至步骤250重复,直到存储器中的所有字已经过测试。

图3示出了以硬件中实现的用于提供零测试时间存储器的高级测试包装器。在实施例中,与具有多个写入端口的配置相比,高级测试封装器300可以占用小的面积/尺寸并且具有较低的硬件复杂性(即,类似于单端口存储器配置),在客户写入时具有较慢性能的折衷。在一个示例中,高级测试包装器可以包括硬件包装器、多端口存储器、WUT和TSC。硬件包装器可以包括标准状态逻辑和寄存器,其可以进一步包括例如测试寄存器、TLB等。此外,WUT可以是可单次测试的全物理字或同时测试的多个相邻字,以确保相邻单元之间没有冲突。在实施例中,TSC具有等于解码乘以输入/输出宽度(即,IO_WIDTH)的量。此外,在实施例中,TSC包括包括客户(即,功能)地址的第一端口(例如,“A端口”)和包括测试地址的第二端口(例如,“B端口”)。因此,在TSC中,存在专用的读取端口,一个端口用于功能操作,一个用于内建自测试(BIST)的测试操作。因此,在实施例中,TSC允许并发功能和测试读取。然而,在TSC中,写入操作需要通过被功能(即,客户)操作和内建自测试(BIST)中的测试操作共享。

更具体地说,在图3中,高级测试包装器300包括静态随机存取存储器(SRAM)310、第一多路复用器(MUX)320、第二MUX 330、TLB 340,TSC 350、BIST有限状态机(FSM)360、和BIST设备370。SRAM 310包括测试读取/写入端口(即,测试RW端口)/功能写入端口(即,Func W端口)311、功能读取端口(即,Func R端口)312、以及数据输入/输出313。数据输入/输出313还包括两个读取端口/一个写入端口。此外,第一MUX 320包含测试数据输入/输出321和功能数据输入/输出(即,Func D I/O)322。

在操作中,当第二MUX 330接收到功能写入的断言(即,Funct Write=“1”)时,第二MUX 330将选择允许发生功能读取/写入寻址(即,功能读取/写入地址)的路径。因此,不会选择允许测试读取/写入寻址的路径,并且不会发生测试。例如,如果客户正在写入数据(即,执行功能写入),则不会发生测试(即,测试操作中的读取或写入),因为仅存在用于写入的一个端口(即,测试RW端口/Func W端口)。因此,当功能写入被断言(即,Funct Write=“1”)时,测试停止。

如图3所示,当功能写入不被断言(即,Funct Write=“0”)时,可以进行测试。具体地说,当第二MUX330接收到功能写入的未断言(即,Funct Write=“0”)时,第二MUX 330将选择允许发生测试读取/写入寻址(即,测试读取/写入地址)的路径。因此,该路径允许测试读取/写入寻址,并且使用BIST FSM 360和BIST设备370进行测试。例如,当功能写入不被断言(即,不执行功能写入)时,测试操作(即,测试操作的读取或写入)可能会发生,因为客户没有正在写入,并且该一个端口(即,测试RW端口/Func W端口)可用于测试。

图4示出了根据本公开的方面的另一高级测试包装器(即,高级测试包装器400)。在图4中,高级测试包装器400包括静态随机存取存储器(SRAM)410、第一多路复用器(MUX)420、第二MUX 430、第三MUX440、TLB 450和TSC 460。RAM 410包括测试读取/写入端口(即,测试RW端口)/功能写入端口(即,Func W端口)411、功能读取端口(即,Func R端口)412和数据输入端(即,DIN)413。在图4中,与具有多个写入端口的配置相比,高级测试包装器400可以占据更大的面积/尺寸并且具有更高的硬件复杂性,在客户写入时具有较快性能的折衷。

在操作中,当功能写入被断言(即Func Write=“1”)时,仅写入测试操作被停止。换句话说,当第二MUX430和第三MUX440接收到功能写入的断言(即,Func Write=“1”)时,第二MUX 430和第三MUX 440将选择允许发生功能读取/写入寻址(即,功能读取/写入地址)和允许测试读取操作发生(即,测试读取地址)的路径。因此,不会选择允许测试写入寻址的路径,并且不会发生写入测试操作。例如,如果客户正在写入数据(即,执行功能写入),则可能会发生读取测试,但不会发生写入测试(即,客户/功能写入优先于写入测试)。

另一方面,当功能写入不被断言(即,Func Write=“0”)时,则可能发生读取和写入测试操作。换句话说,当第二MUX 430和第三MUX 440接收到功能写入的未断言(即,Func Write=“0”)时,第二MUX 430和第三MUX 440将选择允许发生功能读取寻址(即,功能读取地址)和测试操作(即,测试操作中的读取或写入)(即,测试读取/写入地址)的路径。因此,该路径允许测试读取/写入寻址。例如,当功能写入不被断言(即,不执行功能写入)时,可能会发生测试操作(即,测试操作的读取或写入),因为客户不写入且该一个端口(即,测试RW端口/Func W端口)可用于测试。

在图3和4中描述的零测试存储器的实施例中,在处理客户写入操作的冲突期间,客户(即,功能)写入总是优先于测试操作。此外,当客户在WUT中写入时,在将数据从WUT传送到TSC期间或在将数据从TSC传送到WUT期间在WUT中发生写入,需要对两个地址的写入操作。此外,在WUT测试期间对WUT的写入只会更新TSC。

在图3和4中描述的零测试存储器的另外的实施例中,当客户在WUT中读取时,在将数据从WUT传输到TSC期间客户对WUT的读取操作,使用第二端口。此外,在测试期间发生对WUT的读取,并且执行TSC中的数据的读取。此外,处理客户写入操作的冲突(即,执行不同操作时的数据干扰)需要保证足够的自由写入周期(即,仅一个写入端口可用),以确保用于测试操作的足够的写入周期。在典型的存储器操作中,90%的操作是读取操作。

图5示出了执行高级测试包装器的方法。该方法包括读取WUT的数据并将WUT的数据存储在TSC中。该方法还映射TLB以将WUT指向TSC并将多个WUT操作路由到TSC。然后,执行功能写入操作。当功能写入操作与WUT相冲突时,基于功能写入操作更新TSC的数据。响应于与WUT不冲突的功能写入操作执行测试空闲周期。该方法还包括将TSC中的WUT的数据回写WUT。该方法还包括去除TLB的指向以允许到WUT的直接地址映射。

更具体地,图5示出了流程图500,其包括执行根据本公开的方面的在图3和4中描述的高级测试包装器的方法。在图5中,该方法在步骤505开始。在步骤510,被测试字(WUT)被设置到零(即,“0”)。在步骤515,读取被测试字(WUT),存储在测试存储缓存(TSC)中,然后验证。在步骤520,转换后备缓冲(TLB)被映射以将被测试字(WUT)指向用于客户(即,功能)操作的测试存储缓存(TSC)。在步骤525,所有被测试字(WUT)操作(即读取/写入操作)被路由到测试存储缓存(TSC)。

在步骤530,确定是否正在对存储器执行写入操作。如果不对存储器执行写入操作(即,在步骤530为“否”),则该方法进行到步骤550。否则,如果对存储器执行写入操作(即,在步骤530为“是”),则该方法移动到步骤535。在步骤535中,确定写入是否与WUT具有冲突。如果写入与WUT具有冲突(即,在步骤535为“是”),则在步骤540,写入操作更新TSC,并且该方法移动到步骤545。相反,如果写入没有与WUT冲突(即,在步骤535为“否”),则该方法直接移动到步骤545.在步骤545中,执行内建自测试(BIST)空闲周期,并且该方法移回到步骤535,在步骤535中,确定客户是否正在对存储器执行写入操作。

在步骤550,使用模式(即,棋盘、反向棋盘等)测试内建自测试被测试字(BIST WUT)。在步骤555,确定测试是否完成。如果测试不完成(即,在步骤555中为“否”),则该方法移回到步骤530。如果测试完成(即步骤555为“是”),则该方法移动到步骤560。

在步骤560,TSC处的数据的内容被回写到WUT,然后存在对回写信息的验证。在步骤565,去除TLB指针,这允许到WUT的直接地址映射。在步骤570,WUT地址计数器增加。在步骤575,确定所有字是否已被测试。如果存储器中的所有字已被测试(即,在步骤575为“是”),则该方法在步骤580结束。如果存储器中的所有字尚未被测试(即,在步骤575为“否”),则该方法返回到步骤520,并且从步骤520到步骤575重复该方法,直到存储器中的所有字已被测试为止。

使用本公开的背景内建自测试的用于零测试时间存储器的电路和方法可以使用许多不同的工具以多种方式制造。不过,通常,使用方法和工具形成尺寸在微米和纳米级的结构。已经从集成电路(IC)技术中采用了用于制造使用本公开的背景内建自测试的用于零测试时间存储器的电路和方法的方法,即技术。例如,这些结构建在晶片上,并且通过在晶片顶部上的光刻工艺图案化的材料的膜实现。特别地,使用背景内建自测试的零测试时间存储器的电路制造和方法使用三个基本构建块:(i)在衬底上沉积材料薄膜、(ii)在膜的顶部施加通过光刻成像的图案化掩模、以及(iii)将膜选择性地蚀刻到掩模。

如上所述的方法用于集成电路芯片的制造。所得到的集成电路芯片可以由制造商以原始晶片形式(即,作为具有多个未封装芯片的单个晶片)作为裸芯片或以封装形式分发。在后一种情况下,芯片安装在单个芯片封装(例如塑料载体,具有固定到母板或其它更高级别的载体上的引线)或多芯片封装(例如具有一面或双面表面互连或掩埋互连的陶瓷载体)中。在任何情况下,芯片然后与其他芯片、分立电路元件和/或其他信号处理设备集成,作为(a)中间产品(例如主板)或(b)最终产品的一部分。最终产品可以是包括集成电路芯片的产品,从玩具和其它低端应用到具有显示器、键盘或其它输入设备以及中央处理器的高级计算机产品。

出于说明的目的已经呈现了本公开的各种实施例的描述,但并不旨在穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。选择这里使用的术语是为了最好地解释实施例的原理、优于市场中发现的技术的实践应用或技术改进,或使本领域的普通技术人员能够理解本文公开的实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1