半导体装置及其诊断方法与流程

文档序号:14097526阅读:427来源:国知局

相关申请的交叉引用

2016年9月29日提交的日本专利申请no.2016-190630的公开内容(包括说明书、附图和摘要)通过引用整体并入本文。

本发明涉及半导体装置和诊断半导体装置的方法,具体涉及半导体装置和诊断包括非易失性存储器的自诊断功能的半导体装置的方法。



背景技术:

例如,日本未审查专利申请公开no.2008-159149公开了一种包括用于高速测试只读存储器(rom)的测试电路的系统lsi。测试电路将由地址产生电路产生的测试地址输入到rom中,并且在多输入签名寄存器(misr)中对对应于输入地址的从rom输出的数据进行压缩。由misr压缩的数据被输出到lsi外部,并与外部测试仪的期望值进行比较。



技术实现要素:

现今,根据代表非易失性存储器的闪速存储器容量的增加,闪速存储器被高度要求在内建自测(bist)中进行诊断以实现功能安全。例如,作为闪速存储器的诊断方法,存在使用与闪速存储器安装在同一半导体芯片上的中央处理单元(cpu)的方法。然而,该方法根据非易失性存储器的容量的增加而增加了诊断执行时间。因此,为了缩短诊断执行时间,公开了安装专用bist电路的技术。

作为使用专用bist电路的方法,例如,已知有一种地址产生电路顺序产生地址并在misr中压缩读取数据的方法,如日本未审查专利申请公开no.2008-159149。然而,在上述方法中,为了存储期望值并将诊断结果与期望值进行比较,在lsi外部需要诸如测试仪的外部装置。简而言之,例如,在包括非易失性存储器的系统中,当用户在系统的开始时间诊断想要诊断非易失性存储器时,必须在系统内提供一些外部装置,这可能导致系统从系统设计的角度看的大的开销。

然后,考虑将期望值存储在目标在于诊断的非易失性存储器中的方法。然而,在这种情况下,很难定义期望值本身。这是因为通过将期望值存储在诊断目标非易失性存储器中,产生了另一个新的期望值,进入因果链接的困境。因此,为了在lsi内提供期望值,例如,必须提供与诊断目标不同的其中存储期望值的另一个非易失性存储器。然而,提供另一个非易失性存储器增加了开销,并且上述非易失性存储器变得超出诊断目标。

下面描述的实施例考虑到上述情况,并且从说明书和附图的描述中,其它目的和新颖特性将变得明显。

根据一个实施例的半导体装置包括由一个半导体芯片形成的非易失性存储器和用于诊断上述存储器的bist电路。bist电路包括读取电路和压缩器,所述读取电路顺序地产生地址并向非易失性存储器发出包括地址的读取命令,所述压缩器根据预定压缩算法,将响应于读取命令顺序读取的数据压缩并输出签名值作为压缩结果。非易失性存储器包括由连续读取的地址形成的第一地址空间和在上述地址空间之后读取的由单个或多个地址形成的第一预留地址。先前计算的第一值固定数据被存储在第一预留地址中。当根据预定算法使用预定初始值对存储在第一地址空间中的所有数据和第一值固定数据进行压缩时,使用预定值固定数据,第一值固定数据是用于将压缩值收敛到预定的第一固定值的数据。

根据实施例,可以在没有任何外部装置和任何超出诊断目标的非易失性存储器的情况下实现非易失性存储器的开始时间诊断。

附图说明

图1是示出根据本发明的第一实施例的半导体装置的结构示例的示意图。

图2是示出图1中的压缩器的结构示例的电路图。

图3是示出图1的半导体装置中执行自诊断的过程的示例的流程图。

图4是示出图1中的非易失性存储器的数据结构的一个示例的视图。

图5是示出使用安装了图1的半导体装置的系统的方法的一个示例的流程图。

图6a是示出在图5中将数据写入的非易失性存储器的处理的一个示例的流程图,并且图6b是图6a的补充视图。

图7a和图7b是用于描述图6b中的诊断数据计算程序的一个示例的视图;图7a是示出目标在于计算的非易失性存储器和misr的结构示例的电路图,并且图7b是示出图7a的值固定数据的具体示例的视图。

图8是示出当图7a的结构目标在于计算时的诊断数据计算程序的处理的一个示例的流程图。

图9a和图9b是用于描述图6b中的诊断数据计算程序的另一示例的视图;图9a是示出目标在于计算的非易失性存储器和misr的结构示例的电路图,并且图9b是示出值固定数据的具体示例的视图。

图10是示出当图9a的结构目标在于计算时的诊断数据计算程序的处理的一个示例的流程图。

图11是示出根据本发明的第二实施例的半导体装置的结构示例的示意图。

图12是示出图11中的非易失性存储器的数据结构的一个示例的视图。

图13是用于描述计算图12的非易失性存储器中的值固定数据和期望值数据的方法的一个示例的视图。

图14是用于描述伴随图11的半导体装置中的bist电路的操作的签名值的改变状态的视图。

图15是示出在图11的半导体装置中执行自诊断的过程的一个示例的流程图。

图16是示出根据本发明的第三实施例的半导体装置中的非易失性存储器的数据结构的一个示例的视图。

图17是示出根据本发明的第三实施例的半导体装置中的非易失性存储器的另一数据结构的一个示例的视图。

图18是示出作为图17的比较例的非易失性存储器的数据结构的一个示例的视图。

图19是示出根据本发明的第四实施例的半导体装置的结构示例的示意图。

图20是示出作为本发明的比较例而检查的半导体装置的结构示例的示意图。

具体实施方式

在以下实施例中,为了方便起见,在必要时分为多个部分或实施例进行描述,但是这些部分或实施例并非彼此不相关而是彼此相关,使得一个部分或实施例覆盖另一个部分或实施例的修改示例、细节、补充解释等中的一些或全部,除非另有明确规定。此外,在以下的实施例中,当涉及元件的数量(包括单位数、数值、数量、范围等)时,不限于特定数量,而是可以超过或不超过该特定数量,除非另有明确规定以及除非另外原理上明确限于该特定数量。

此外,在以下的实施例中,不言而喻,构成元件(包括元件步骤)不一定是必不可少的,除非另有明确规定以及除非另外被认为在原理上明确是必不可少的。同样地,在以下的实施例中,当涉及构成元件的形状及其位置关系时,将包括基本上近似于或类似于所述形状的形状,除非另有明确规定以及除非另外明确认为原理上不是这样。这同样适用于上述数值和范围。

在下文中,将基于附图详细描述本发明的实施例。在为了描述实施例而描绘的所有附图中,相同的附图标记被分配给具有相同功能的部件,并省略其重复的描述。

第一实施例

半导体装置的示意性结构(第一实施例)

图1是示出根据本发明的第一实施例的半导体装置的结构示例的示意图。图1所示的半导体装置dev由一个半导体芯片形成,并且由微控制器芯片形成,但是没有特别限制。半导体装置dev包括由cpu代表的用户电路ulg、由闪速存储器代表的非易失性存储器nvm、诊断非易失性存储器nvm的bist电路bstc、选择器sel1和系统控制电路sysctl。

选择器sel1从用户电路ulg或bist电路bstc中选择地址adr,并将其输出到非易失性存储器nvm。响应于该地址adr的输入,从非易失性存储器nvm读取的数据dt被输出到用户电路ulg和bist电路bstc。系统控制电路sysctl是用于控制包括bist电路bstc的整个半导体装置dev中的引导时间处的各种序列的引导控制器。非易失性存储器nvm存储例如由cpu执行的程序,并且用户电路ulg读出程序并执行该程序。

bist电路bstc包括读取电路rdctl、压缩器trc、期望值产生电路expg和判断电路jdg。读取电路rdctl通过使用地址计数器acnt顺序地产生地址,并且向非易失性存储器nvm顺序发出包括所产生的地址的读取命令rcmd和各种命令信号。产生地址的序列一般由增量确定;然而,它不限于此,而是可以是具有一定规律性的任何序列。

作为代表性misr的压缩器trc根据预定压缩算法,将响应于读取命令rcmd从非易失性存储器nvm顺序读取的数据dt压缩,并输出签名值sg作为压缩结果。期望值产生电路expg产生期望值exp。判断电路jdg例如是比较器,该比较器判断期望值exp与签名值sg是否一致,从而输出判断结果rslt。

图2是示出图1中的压缩器trc的结构示例的电路图。图2所示的压缩器trc是misr,包括由多个位(这里为8位)形成的反馈移位寄存器reg0至reg7和插入相应的寄存器的exor电路xor0至xor7。从非易失性存储器nvm读取的数据dt的位(这里,8位)b[0]到b[7]分别通过exor电路xor0至xor7输入到移位寄存器reg0至reg7。

此外,在该示例中,寄存器reg0的输出通过exor电路xor3至xor5和xor7返回到寄存器reg3至reg5和reg7。这样构成的misr将时间序列读取的数据dt按时间方向压缩成8位。misr的结构不限于图2的结构,而是存在各种类型的misr。作为基本结构,misr由反馈移位寄存器和exor电路的组合形成,并且压缩算法(压缩的计算公式)根据上述组合、移位寄存器的位数和反馈方法而变化。misr的压缩值(misr值)由该压缩算法、移位寄存器的初始值和输入数据确定。

通常将misr的压缩值(misr值)称为签名值。然而,在本说明书中,尽管稍后将描述细节,但是例如为了将基于图2的misr的结构仿真计算出的misr值与由半导体装置dev内的实际压缩器trc获得的misr值清楚地区分开,仅将后者的misr值称为签名值sg。在下面的描述中,假设压缩器trc是misr。

自诊断的过程

图3是示出在图1的半导体装置中执行自诊断的过程的一个示例的流程图。首先,系统控制电路sysctl向bist电路bstc输出bist启动信号sup(步骤s41)。响应于此,bist电路bstc将选择信号ss1设置为“1”,使得选择器sel1可以从bist电路bstc选择地址(步骤s42)。读取电路rdctl顺序地产生地址,并向非易失性存储器nvm发出包括地址的读取命令rcmd(步骤s43)。

压缩器trc在时间方向上将响应于读取命令rcmd从非易失性存储器nvm顺序读取的数据dt压缩,并输出签名值sg作为压缩结果(步骤s44)。在根据最终地址的读取命令rcmd的数据dt的压缩完成之后,判断电路jdg判断最终签名值sg与期望值exp是否一致,并将判断结果rslt输出到系统控制电路sysctl(步骤s45)。此外,bist电路bstc输出涉及最终签名值sg的判断结果rslt连同结束信号ed。系统控制电路sysctl接收由结束信号ed触发的判断结果rslt,并判断关于非易失性存储器nvm的读取操作的错误的存在。

半导体装置的示意性结构和问题(比较例)

图20是示出作为本发明的比较例而检查的半导体装置的结构示例的示意图。除了图1的结构之外,图20所示的半导体装置dev'还包括用于存储期望值数据的非易失性存储器nvm'2。期望值寄存器rege保持存储在非易失性存储器nvm'2中的期望值数据。期望值数据是基于如图2所示的misr的结构、根据预先通过仿真计算的压缩器trc中使用的预定压缩算法、通过压缩存储在非易失性存储器nvm'1中的所有数据而获得的压缩值。

如果期望值数据被存储到非易失性存储器nvm'1中,则相同的期望值数据成为压缩目标,并且产生新的期望值数据。当新产生的期望值数据存储在非易失性存储器nvm'1中时,产生进一步新的期望值数据。发生因果链接的这种困境,这使得难以将期望值数据存储在非易失性存储器nvm'1中。

因此,期望值数据被存储在如图20所示的另一个非易失性存储器nvm'2中,或在半导体装置dev'外的外部装置中。然而,在这种提供其它非易失性存储器nvm'2和外部装置的情况下,担心增加开销。因为在非易失性存储器nvm'2中也发生因果链接的同样困境,所以非易失性存储器nvm'2应该是超出诊断目标的存储器。

非易失性存储器的数据结构(第一实施例)

图4是示出图1中的非易失性存储器的数据结构的一个示例的视图。图4所示的非易失性存储器nvm包括地址空间as1和预留地址radr。地址空间as1由通过以读取电路rdctl的地址的产生序列(通常为增量)作为参考而连续地读取的地址形成,其中存储用户数据ud。用户数据ud例如是用于难以改变的rom的数据,通常包括程序和各种类型的固定参数。

预留地址radr在地址空间as1中的一个之后被读取,并由单个或多个地址形成。在预留地址radr中,存储先前计算的值固定数据sd。当存储在地址空间as1中的所有数据和值固定数据sd根据在压缩器trc中使用的预定压缩算法和读取电路rdctl中使用的地址的产生序列而使用预定初始值被压缩时,值固定数据sd是用于将压缩值收敛到预定的固定值的数据。预定初始值是通常为0的实际在压缩器trc中使用的值。固定值可以任意确定,通常为0。

当对具有上述数据结构的非易失性存储器nvm的目标执行图3的流程时,只要非易失性存储器nvm中没有错误,则最终签名值sg通过值固定数据sd成为作为收敛值的固定值(例如,0)。期望值产生电路expg产生该预定的固定值,并且判断电路jdg判断作为期望值exp的固定值与签名值sg是否一致,从而能够诊断非易失性存储器nvm。结果,不同于图20的情况,可以在没有任何外部装置和超出诊断目标的非易失性存储器nvm'2的情况下,在启动时诊断非易失性存储器nvm。

取决于场合,判断电路jdg和期望值产生电路expg可以安装在用户电路ulg内。在这种情况下,用户电路ulg获得可以通过bist电路bstc的操作获得的签名值sg,并判断签名值sg与预定的固定值是否一致。具体地,例如,bist电路bstc在接通电源之后执行开始时间诊断并保持签名值sg作为诊断结果。在bist电路bstc的操作之后,例如,用户电路ulg内的cpu启动,并且cpu获得签名值sg,并且在启动之后的软件处理期间进行判断。然而,通常假设cpu被激活时非易失性存储器nvm(换句话说,程序等)是正常的,因此从这个观点出发,判断电路jdg等优选安装在bist电路bstc中。

自诊断操作流程

图5是示出安装了图1的半导体装置的系统的操作方法的一个示例的流程图。首先,用户偶尔想要重写非易失性存储器nvm,例如,在系统的操作期间更新程序。当需要重写非易失性存储器nvm时(步骤s1),在将数据写入非易失性存储器nvm(步骤s2)之后启动半导体装置dev(步骤s3)。另一方面,当不需要非易失性存储器nvm的写入时(步骤s1),就这样启动半导体装置dev(步骤s3)。

在半导体装置dev启动时,根据图3所示的流程执行自诊断(步骤s4)。当自诊断结果没有错误时(步骤s5),例如,用户电路ulg由系统控制电路sysctl连续激活,并且半导体装置dev进入正常操作(步骤s6)。另一方面,当自诊断结果存在一些错误时(步骤s5),执行由系统确定的预定错误处理(步骤s8)。正常操作中的半导体装置dev在关机之前连续保持正常操作(步骤s7)。

非易失性存储器的写入过程

图6a是示出在图5中(步骤s2)将数据写入非易失性存储器中的处理的一个示例的流程图,并且图6b是图6a的补充视图。如图1所示的半导体装置dev通常被安装在形成如图6b所示的预定系统的布线基板bd上。例如,当半导体装置dev是汽车微控制器时,布线基板bd对应于电子控制单元(ecu)基板。

例如,通过将信息处理单元im耦合到布线基板bd中提供的外部通信端子(通常为联合测试动作组(jtag)端子),来执行到半导体装置dev内的非易失性存储器nvm中的数据写入(或重写)。具有安装在其中作为工具的包括诊断数据计算程序pgm1的预定数据写入程序的信息处理单元im,可以通过cpu等执行数据写入程序而执行向非易失性存储器nvm的写入。

在图6a中,当系统用户想要修改例如程序时,用户产生写入数据a作为信息处理单元im上的修改数据(步骤s21)。在该示例中,写入数据a不是所有的用户数据(例如,程序),而是用户数据的一部分。接着,信息处理单元im基于该工具执行以下处理。

首先,信息处理单元im执行非易失性存储器nvm的自诊断,并检查存储在非易失性存储器nvm中的现有用户数据的损坏(步骤s22)。然后,信息处理单元im从非易失性存储器nvm下载存储在misr值的计算目标范围中的数据b(具体地说,现有用户数据)(步骤s23)。在图4的情况下,计算目标的范围是例如存储在地址空间as1中的所有用户数据ud。

信息处理单元im通过以数据a替代下载数据b的一部分确定最终用户数据ud,并通过执行诊断数据计算程序pgm1使用用户数据ud来计算各种类型的诊断数据(步骤s24)。在图4的情况下,信息处理单元im使用地址空间as1的用户数据ud来计算作为各种类型的诊断数据的值固定数据sd。然后,信息处理单元im将数据a和各种类型的诊断数据写入非易失性存储器nvm中(步骤s25)。具体地,信息处理单元im将数据a写入地址空间as1中,并将值固定数据sd写入预留地址radr中。

当在步骤s21中产生的数据全部为用户数据ud时,可以省略步骤s22和s23的处理。虽然在步骤s25中写入了数据a和值固定数据sd,但是例如当非易失性存储器nvm是闪速存储器时,由于擦除单元的限制,只有数据a和值固定数据sd有时不能被重写。在这种情况下,产生包括数据a和值固定数据sd的擦除单元的数据,并且由该擦除单元写入数据。

图7a和图7b是用于描述图6b中的诊断数据计算程序的一个示例的视图;图7a是示出目标在于计算的非易失性存储器和misr的结构示例的电路图,并且图7b是示出图7a的值固定数据的具体示例的视图。图8是示出当图7a的结构目标在于计算时的诊断数据计算程序的处理的一个示例的流程图。图8的处理表示图6a中的步骤s24的处理的细节。

这里,假设图1的非易失性存储器nvm和压缩器trc具有如图7a所示的结构。图7a示出了通过misr压缩从非易失性存储器nvm“8位×4”读取的数据dt的情况下的结构。misr由包括多个寄存器reg(这里为8位)的移位寄存器和exor电路xor的组合形成,如图2所提及的。在图7a的示例中,位b[0]、b[2]到b[4]的寄存器reg的相应值返回到位b[7]。该反馈寄存器被称为抽头tp,并且压缩算法(压缩的计算公式)取决于提供抽头tp的位置而变化。

图7b示出了当从地址adr的低侧顺序读取数据dt到misr时,存储在非易失性存储器nvm中的数据dt和misr值的改变状态。misr的初始值为“00000000”。当地址adr=0的数据“00101110”被输入到具有初始值的misr时,获得misr值“00101110”。当在逐个递增地址adr的同时重复该处理时,作为输入地址adr=2的数据的结果的misr值变为“00001100”。

地址adr=3的数据是值固定数据sd。可以从由直到地址adr=2的数据计算的misr值和预定的任意固定值(在本例中为0)获得值固定数据sd。在本例的情况下,直到地址adr=2的misr值为“00001100”,并且固定值为“00000000”。通过将直到地址adr=2的misr值向右移位1位并将exor树的输出值输入到最左位(这里,b[7])来计算值固定数据sd,这导致“00000110”。exor树是抽头tp值的exor计算结果。

在图8中,诊断数据计算程序pgm1首先将地址adr设置为0(步骤s241),并根据地址的数据dt(图7b中的“00101110”)和先前的misr值(图7b中的“00000000”)计算下一个misr值(图7b中的“00101110”)(步骤s242)。然后,诊断数据计算程序pgm1类似地在逐个递增地址adr的同时计算最终地址之前的最后一个misr值,并且在到达最终地址(图7b中的4)时(步骤s243和s244),处理移动到步骤s245。

在步骤s245中,诊断数据计算程序pgm1将先前的misr值(图7b中的“00001100”)向右移位1位,并且用先前的misr值的exor树的输出值替代最左位,因此计算值固定数据sd。在图8中,通过在cpu中运行诊断数据计算程序pgm1,信息处理单元im用作misr值计算单元cal1a和值固定数据计算单元cal2a。misr值计算单元cal1a执行步骤s241至s244的处理,并且值固定数据计算单元cal2a执行步骤s245的处理。

图9a和图9b是用于描述图6b的诊断数据计算程序的另一示例的视图;图9a是示出目标在于计算的非易失性存储器和misr的结构示例的电路图,并且图9b是示出图9a的值固定数据的具体示例的视图。图10是示出当图9a的结构目标在于计算时的诊断数据计算程序的处理的一个示例的流程图。图10的处理表示图6a中的步骤s24的处理的细节。

这里,假设图1中的非易失性存储器nvm和压缩器trc具有如图9a所示的结构。图9a示出了在通过misr压缩从非易失性存储器nvm“4位×12”读取的数据dt的情况下的结构。misr由8位寄存器reg的移位寄存器和exor电路xor的组合形成。抽头tp的位置与图7a的情况类似。与图7a的情况不同,从非易失性存储器nvm读取的4位数据dt通过exor电路xor输入到8位寄存器reg的左侧的4位。

图9b示出了当从地址adr的低侧顺序读取上述数据dt到mist时,存储在非易失性存储器中的数据dt和misr值的改变状态。misr的初始值定义为“00000000”。当地址adr=0的数据“1110”被输入8位寄存器reg的4位时,获得“11100000”作为misr值。通过逐个递增地址adr来重复该处理,作为输入地址adr=3的数据的结果的misr值变为“11000100”。

地址adr=4至b的数据是值固定数据sd。因此,在一些情况下,由多个地址adr形成值固定数据sd。由于misr的位数大于诊断目标非易失性存储器nvm的位数,所以使用多个地址adr,并且为了固定misr值,需要最大的misr的位数的地址adr。通过直到地址adr=3计算的misr值和预定的任意固定值(在本例中为0),可以要求值固定数据sd。

在该示例中,为了简单起见,值固定数据sd被设置为仅在最左位是有效值,而其余位中的全部是0。先前的misr值中exor树的输出值被输入最左位。例如,当地址adr=4时,exor树的输出值(位b[0]、b[2]至b[4]的exor计算结果)是根据对应于先前地址adr=3的数据的misr值“11000100”计算的,并将结果“1”设置在最左位。其余位都被设置为“0”;结果,值固定数据sd中的地址adr=4的值变为“1000”。通过对misr的位数重复该处理,可以计算由八个地址adr(4至b)形成的值固定数据sd。

在图10中,类似于图8的情况,诊断数据计算程序pgm1首先将地址adr设置为0(步骤s241),并根据上述地址的数据dt和先前的misr值计算下一个misr值(步骤s242)。接下来,诊断数据计算程序pgm1在逐个递增地址adr的同时类似地计算misr值。这里,与图8的情况不同,程序计算直到“最终地址-misr位数”之前的一个地址(图9b的情况下为3)的misr值。在到达“最终地址-misr位数”(图9b中的4)的时刻,处理被移动到步骤s245a(步骤s243和s244a)。

在步骤s245a中,诊断数据计算程序pgm1将先前的misr值(图9b中的“11000100”)的exor树的输出值替代到最左位(这里是位b[3]),并将其余位全部设置为“0”,其被确定为当前地址adr(=4)的数据。接着,诊断数据计算程序pgm1用确定的数据计算misr值(步骤s246a)。诊断数据计算程序pgm1在逐个递增地址adr(步骤s247a和s248a)的同时,重复执行步骤s245a和s246a的处理直到最终地址(在图9b的情况下为b)。据此,计算所有的值固定数据sd。

在图10中,通过使用cpu执行诊断数据计算程序pgm1,信息处理单元im用作misr值计算单元cal1b和值固定数据计算单元cal2b。misr值计算单元cal1b执行步骤s241至s244a的处理,并且值固定数据计算单元cal2b执行步骤s245a至s248a的处理。

第一实施例的主要效果

如上所述,根据第一实施例,通过使用值固定数据sd,期望值(具体地,值固定数据sd的固定值)可以实际存储在诊断目标非易失性存储器中,并且允许存储期望值的地址(预留地址radr)的诊断。此外,由于期望值变得固定,不需要读取初始操作中的期望值和存储期望值的寄存器。结果,与图20的情况不同,可以在没有任何外部装置和任何超出诊断目标的非易失性存储器的情况下实现非易失性存储器的开始时间诊断。据此,可以抑制伴随自诊断的开销。

第二实施例

上述第一实施例必须在最终地址部分内提供预留地址radr以便存储期望值。这里,有时难以应对使用例如用于用户数据ud的最终地址部分的情况。在这种情况下,第二实施例的方法是有用的。

半导体装置的示意性结构(第二实施例)

图11是示出根据本发明的第二实施例的半导体装置的结构示例的示意图。与图1的结构示例相比,图11所示的半导体装置dev包括具有与图1的不同数据结构的非易失性存储器nvm2和具有不同数据结构的bist电路bstc2。bist电路bstc2与图1的bist电路bstc的不同在于一些方面:读取电路rdctl2的结构、提供选择器sel2以及提供期望值寄存器rege而不是期望值产生电路expg。

除了与图1的情况相似的地址计数器acnt之外,读取电路rdctl2还包括产生期望值地址eadr的期望值地址产生电路eadrg。据此,读取电路rdctl2也作为期望值地址读取电路,其向非易失性存储器nvm2发出包括期望值地址eadr的读取命令rcmd。选择器sel2选择来自地址计数器acnt的地址adr和来自期望值地址产生电路eadrg的期望值地址eadr中的一个,并通过选择器sel1将选择结果输出到非易失性存储器nvm2。期望值寄存器rege根据读取电路(期望值地址读取电路)rdctl2的读取命令rcmd保持从期望值地址eadr读取的数据。

非易失性存储器的数据结构(第二实施例)

图12是示出图11中的非易失性存储器的数据结构的一个示例的视图。图12所示的非易失性存储器nvm2包括地址空间as1和as2以及预留地址radr。类似于图4的情况,地址空间as1由通过以读取电路rdctl2的地址的产生序列作为参考而顺序读取的地址形成,其中存储了用户数据[1]ud1。在地址空间as1之后,读取由一个或多个地址形成的预留地址radr。以地址空间as1确定为目标的值固定数据sd被存储在预留地址radr中。

另一方面,在预留地址radr之后读取地址空间as2,地址空间as2存储了用户数据[2]ud2。这里,与图4的情况不同,地址空间as1包含期望值地址eadr。期望值地址eadr将压缩值存储为期望值数据expd,期望值数据expd是通过根据用于压缩器trc的预定压缩算法、用值固定数据sd的固定值(例如,0)作为初始值而压缩存储在地址空间as2中的所有数据而获得的。此外,据此,计算值固定数据sd以反映期望值数据expd。

这里,期望值地址eadr可以从包含在地址空间as1中的地址任意地确定。如图12所示,通过将期望值地址eadr确定为从地址空间as1读取的最后地址,可以将连续地址空间分配给用户数据[1]ud1,这增强了实际使用的便利性。虽然没有特别限制,但是各种不同的程序分别存储在用户数据[1]ud1和用户数据[2]ud2中。

各种类型的诊断数据的计算方法

图13是用于描述图12的非易失性存储器中的期望值数据和值固定数据的计算方法的一个示例的视图。期望值数据expd和值固定数据sd通过执行诊断数据计算程序pgm1的图6b所示的信息处理单元im来计算。在压缩希望存储在地址空间as2中的用户数据[2]ud2的情况下,信息处理单元im根据压缩器trc中使用的预定压缩算法、用值固定数据sd的固定值(具体地,预定的固定值)作为初始值,计算压缩值(misr值)作为期望值数据expd。然后,信息处理单元im将上述期望值数据expd确定为预定期望值地址eadr的数据(步骤s301)。

接着,类似于第一实施例,信息处理单元im使用希望存储在地址空间as1中的数据(具体地,包括期望值数据expd的用户数据[1]ud1)来计算misr值(步骤s302)。此外,类似于第一实施例的情况,信息处理单元im使用上述misr值来计算值固定数据sd,并且将值固定数据sd确定为预留地址radr的数据(步骤s303)。然后,信息处理单元im将如此计算的期望值数据expd和值固定数据sd以及用户数据[1]ud1和[2]ud2写入非易失性存储器nvm2的对应地址。

根据自诊断的执行的签名值的改变状态

图14是用于描述根据图11的半导体装置中的bist电路的操作的签名值的改变状态的视图。当压缩器trc的移位寄存器的初始值全部被设置为“0”、逐个递增地址adr时,签名值sg根据用户数据[1]ud1而改变。此外,签名值sg根据期望值数据expd(这里假定为“5a”)而改变。然后,将签名值sg一次返回到值固定(这里为0)数据sd的固定值(0)。

接着,签名值sg根据用固定值作为初始值的用户数据[2]ud2而改变。结果,签名值sg成为用户数据[2]ud2的misr值,并与期望值数据expd(“5a”)一致。当用户数据[1]ud1被损坏时,值固定数据sd的收敛值与预定的固定值不同;结果,用户数据[2]ud2的misr值也与期望值数据expd不同。当用户数据[2]ud2也被损坏时,其misr值与期望值数据expd不同。

自诊断的执行过程(第二实施例)

图15是示出图11的半导体装置中的自诊断的执行过程的一个示例的流程图。图15的流程图与图3所示的流程图的不同在于在步骤s42和步骤s43之间插入步骤s401至s403。在步骤s401中,读取电路(期望值读取电路)rdctl2发出包含预定期望值地址eadr的读取指令rcmd。这里,选择器sel2选择默认的“0”,并且上述读取命令rcmd顺序通过选择器sel2和sel1被输入到非易失性存储器nvm2。

在步骤s402中,期望值寄存器rege保持从期望值地址eadr读取的数据(期望值数据expd)。在步骤s403中,bist电路bstc2(例如,读取电路rdctl2)将选择信号ss2设置为“1”,以通过选择器sel2输出来自地址计数器acnt的地址。以下,与图3的情况类似,执行步骤s43至s45的处理。在步骤s45中,判断电路jdg判断保持在期望值寄存器rege中的数据(具体而言,期望值数据expd)与签名值sg是否一致。

期望值地址产生电路eadrg产生的期望值地址eadr可以取决于用户的请求而被设置为可变的。尽管没有特别限制,但是期望值地址eadr本身的值例如存储在非易失性存储器nvm2内的预定地址中。用户可以改变存储在该预定地址中的期望值地址eadr的值,并且期望值地址读取电路可以在启动时读取预定地址以获得期望值地址eadr。此外,该预定地址可以目标在于自诊断。在这种情况下,以与用户数据相同的方式由图6b的诊断数据计算程序pgm1处理存储在预定地址中的期望值地址eadr的值,该值目标在于misr值的计算。

第二实施例的主要效果

如上所述,根据第二实施例,通过将期望值数据expd与值固定数据sd组合,期望值(实际上对应于期望值数据expd和值固定数据sd)可以存储在诊断目标非易失性存储器中,并且可以诊断存储有期望值的地址。结果,与第一实施例的情况类似,可以在没有任何外部装置和任何超出诊断目标的非易失性存储器的情况下实现非易失性存储器的开始时间诊断。据此,可以抑制根据自诊断的开销。此外,与第一实施例不同,存储期望值的地址不是限制性的。换句话说,预留地址radr并不总是必须在最终地址部分中被保护,并且可以任意地确定期望值地址eadr和预留地址radr。

第三实施例

非易失性存储器的数据结构(第三实施例)

图16是示出根据本发明的第三实施例的半导体装置中的非易失性存储器的数据结构的一个示例的视图。包括非易失性存储器的半导体装置通过将图16的非易失性存储器nvm3应用到图1的结构来形成。图16的非易失性存储器nvm3包括图4所示的地址空间as1和预留地址radr的多组组合(在此示例中为三组)。

相应的用户数据[1]ud1、[2]ud2和[3]ud3存储在相应的第一、第二和第三地址空间as1a、as1b和as1c中。相应的值固定数据[1]sd1、[2]sd2和[3]sd3存储在相应的第一、第二和第三预留地址radra、radrb和radrc中。在先前组(第一组)的预留地址(radra)之后读取后一组(例如,第二组)的地址空间(as1b)。通过将以先前组(第一组)为目标而确定的固定值(具体而言,值固定数据[1]sd1的固定值)设置为初始值,计算存储在后一组(例如,第二组)的预留地址(radrb)中的值固定数据(sd2)。

当该非易失性存储器nvm3被图1的bist电路bstc诊断时,正常操作中的压缩器trc的最终签名值sg变为通过以最后一组为目标确定的固定值(具体地,值固定数据[3]sd3的固定值)。因此,判断电路jdg判断最后一组的固定值与签名值sg是否一致。当用户数据[1]ud1被损坏时,值固定数据[1]sd1的固定值与预定的固定值不同,结果,值固定数据[2]sd2和[3]sd3的固定值与预定的固定值不同。

当使用该非易失性存储器nvm3时,可以在计算各种类型的诊断数据(这里为值固定数据)时,独立地处理上述组(图16中的区域e1至e3)。换句话说,当特定组的用户数据改变时,不需要另一组的用户数据。例如,当用户数据[2]ud2改变时,只通过使用改变的用户数据[2]ud2和以先前组为目标确定的固定值(具体地,预定的固定值)来计算值固定数据[2]sd2,而不考虑其它组的数据。

图17是示出根据本发明的第三实施例的半导体装置中的非易失性存储器的另一数据结构的一个示例的视图。包括非易失性存储器的半导体装置通过将图17的非易失性存储器nvm4应用于图11的结构来形成。图17的非易失性存储器nvm4通过将期望值地址eadr、预留地址radr2和地址空间as2添加到图16所示的非易失性存储器nvm3的数据结构而形成。

在图16中的最后一组(第三组)的预留地址(radr1c)之后读取期望值地址eadr,并且期望值数据expd存储在期望值地址eadr中。在期望值地址eadr之后读取预留地址radr2,并且值固定数据[4]sd4存储在预留地址radr2中。在预留地址radr2之后读取地址空间as2,并且用户数据[4]ud4存储在地址空间as2中。

在根据压缩器trc中使用的预定压缩算法、用值固定数据[4]sd4的固定值(定义为固定值a)作为初始值来压缩存储在地址空间as2中的所有数据的情况下,通过misr值确定期望值数据expd。在根据预定压缩算法、用以图16中的最后一组(第三组)为目标而确定的固定值(具体地,值固定数据[3]sd3的固定值)作为初始值来压缩期望值数据expd和值固定数据[4]sd4时,值固定数据[4]sd4是用于将压缩值收敛到固定值a的数据。

当该非易失性存储器nvm4被图11的bist电路bstc2诊断时,正常操作中的压缩器trc的最终签名值sg与期望值数据expd一致。因此,判断电路jdg判断存储在期望值地址eadr中的数据(具体地,由期望值寄存器rege存储的数据)与签名值sg是否一致。

另外,通过使用该非易失性存储器nvm4,与图16的情况类似,可以在相应的组中独立地计算各种类型的诊断数据(这里为值固定数据和期望值数据)。除了与图16相同的三组(图17中的区域e1至e3)之外,相应的组还包括由期望值地址eadr、预留地址radr2和地址空间as2形成的一组(图17中的区域e4)。

例如,当用户数据[4]ud4改变时,改变的用户数据[4]ud4和值固定数据[4]sd4的固定值(具体地,预定的固定值)可以用于计算期望值数据expd,并且可以通过该期望值数据expd和通过以先前组(图17中的e3)为目标而确定的固定值来计算值固定数据[4]sd4。换句话说,值固定数据[3]sd3的固定值的信息是必需的,但用户数据[3]ud3和值固定数据[3]sd3本身不是必需的。

图18示出了作为图17的比较例的非易失性存储器的数据结构的一个示例。图18所示的非易失性存储器nvm5通过简单地组合图4的数据结构和图12的数据结构而形成。具体地,在图18的示例中,类似于图12的情况,在期望值地址eadr中确定地址空间as1c的最终地址。原则上,期望值地址eadr可以是包括在地址空间as1a、as1b和as1c中的地址之一。

然而,根据图18所示的数据结构,与图17的情况不同,有时难以在各组中独立地处理数据。例如,当用户数据[4]ud4改变时,必须再次计算期望值数据expd,并且通过使用该计算结果和用户数据[3]ud3,必须再次计算值固定数据[3]sd3。

第三实施例的主要效果

如上所述,根据第三实施例,除了与第一或第二实施例的情况相同的效果之外,它还可以独立地管理大量用户数据。结果,例如,即使由于机密原因,用户数据的一部分处于非公开状态,也可以无问题地执行开始时间诊断的数据更新。换句话说,例如,当在图18中用户数据[3]ud3未公开时,存在不能执行用户数据[4]ud4的数据更新的可能性;然而,在图17中,这种情况不会发生。

第四实施例

半导体装置的示意性结构(第四实施例)

图19是示出根据本发明的第四实施例的半导体装置的结构示例的示意图。在图19所示的半导体装置dev中,非易失性存储器nvm6的数据结构和bist电路bstc3的结构与图11的不同。除了图11的bist电路bstc2的结构之外,bist电路bstc3还包括检测电路det、数据掩码电路dmskc。

非易失性存储器nvm6的地址之一是任意确定的期望值地址eadr,并且在期望值地址eadr中,存储先前计算的期望值数据expd。用户数据ud存储在除期望值地址eadr之外的空间中。在根据压缩器trc中使用的预定压缩算法、使用预定初始值(压缩器trc的初始值)压缩存储在除期望值地址eadr之外的相应地址中的所有数据的情况下,以misr值确定期望值数据expd。

期望值地址产生电路eadrg总是输出期望值地址eadr。检测电路det例如是比较器,其检测包括根据通过使用地址计数器acnt发出的期望值地址eadr的地址的读取命令rcmd。数据掩码电路dmskc根据由检测电路det检测到的读取命令rcmd控制读取的数据dt,以从压缩器trc的压缩目标中被排除。

尽管没有特别的限制,但是作为一个具体的示例,当检测到对应的读取命令rcmd时,检测电路det在读取周期期间断言掩码信号msk。数据掩码电路dmskc由例如具有启用功能的锁存器电路形成,并且在掩码信号msk的断言时段期间,禁用锁存器以在读取周期期间保持原样数据dt。

根据该结构,可以从压缩目标中排除期望值数据expd;因此,不会发生如图20所示的因果链接的困境,并且期望值数据expd可以存储在非易失性存储器nvm6中。与图11的情况类似,判断电路jdg判断从期望值地址eadr读取的存储在期望值寄存器rege中的数据与签名值sg是否一致。

第四实施例的主要效果

如上所述,第四实施例也可以将期望值存储在诊断目标非易失性存储器中。结果,与第一和第二实施例的情况类似,可以在没有任何外部装置和任何超出诊断目标的非易失性存储器的情况下实现非易失性存储器的开始时间诊断,从而抑制伴随自诊断的开销。此外,存储期望值的地址不受限制。

与第一和第二实施例不同,难以直接诊断存储有的期望值的地址。例如,当期望值地址eadr的数据被损坏时,期望值本身变得异常,并且通常变得与判断电路jdg的判断结果不一致;因此,间接诊断是可能的。与第一和第二实施例相比,在第四实施例中,担心由于检测电路det和数据掩码电路dmskc而增加开销并且取决于掩码信号msk使掩码数据dt的定时设计变复杂。从这个观点出发,优选第一和第二实施例。

如上所述,尽管已经基于实施例具体描述了本发明人等作出的本发明,但是本发明不限于实施例,而是可以在不脱离本发明的精神的情况下进行各种修改。例如,为了容易理解本发明,具体描述了上述实施例,但是上述实施例并不一定限于包括已经描述的所有组件的形式。此外,一个实施例的结构的一部分可以被在另一实施例中的一些组件替代,并且一个实施例中的一些组件可以被添加到另一个实施例的结构中。可以对一个实施例的结构的一部分执行另一实施例的添加、删除和替换。

附录

根据实施例的信息处理装置是用于对包括非易失性存储器和用于诊断非易失性存储器的bist电路的半导体装置上的非易失性存储器写入数据的装置。bist电路包括读取电路和压缩器。读取电路顺序地产生地址,并且向非易失性存储器顺序地发出包括产生的地址的读取命令。压缩器根据预定压缩算法,压缩响应于来自读取电路的读取命令从非易失性存储器顺序读取的数据,并输出签名值作为压缩结果。非易失性存储器包括由通过以读取电路的地址的产生序列作为参考而连续地读取的地址形成的第一地址空间,以及在第一地址空间之后读取的由单个或多个的地址形成的预留地址。信息处理装置执行第一处理和第二处理,第一处理使用希望存储在第一地址空间中的第一用户数据来计算值固定数据,第二处理将第一用户数据存储在第一地址空间中并将值固定数据存储在预留地址中。当根据预定压缩算法、使用预定初始值来压缩第一用户数据和值固定数据时,值固定数据是将压缩值收敛到预定的固定值的数据。

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