模拟错误产生设备

申请号 CN201110289774.7 申请日 2011-09-20 公开(公告)号 CN102436407A 公开(公告)日 2012-05-02
申请人 富士通株式会社; 发明人 福田高利;
摘要 本 发明 公开了模拟错误产生设备。位于由随机数确定的 存储器 的 位置 处的信息比特和冗余比特在没有接收错误检测或错误校正的条件下被读取,由随机数确定的比特位置处的比特被反转,并且比特反转后的数据被写到相同存储器的相同地址。基于将以模拟方式产生的错误的类型来适当地设置将要反转的比特的数目(1比特,或2个以上比特,等等)。
权利要求

1.一种模拟错误产生设备,包括:
信息存储单元,该信息存储单元存储包括信息比特和冗余比特的数据;
读取单元,该读取单元在不执行错误检测或错误校正的情况下从所述信息存储单元中的任意设置的地址读取包括信息比特和冗余比特的数据;以及
回写单元,该回写单元对包括信息比特和冗余比特的所读取的数据中的任意设置的比特位置处的至少一个比特进行反转,并且将比特反转后的数据写回所述信息存储单元中的原始地址。
2.根据权利要求1所述的模拟错误产生设备,还包括:
错误产生间隔设置单元,该错误产生间隔设置单元设置包括所述读取单元的读取操作和所述回写单元的回写操作的一系列操作被重复执行的时间间隔。
3.根据权利要求2所述的模拟错误产生设备,其中:
所述错误产生间隔设置单元包括保存不同时间间隔的多个设置单元,并且能够在从所述设置单元中的一个设置单元切换到另一个设置单元的同时使用所述设置单元。
4.根据权利要求1所述的模拟错误产生设备,其中:
所述信息存储单元包括多个存储器装置;并且
所述设备还包括存储器选择单元,该存储器选择单元能够设置所述存储器装置中的将被执行所述读取单元的读取操作和所述回写单元的回写操作的存储器装置。
5.根据权利要求1所述的模拟错误产生设备,其中,所述读取单元的读取操作和所述回写单元的回写操作在CPU终止对所述信息存储单元的访问之后被执行。
6.根据权利要求1所述的模拟错误产生设备,其中,在所述读取单元的读取操作和所述回写单元的回写操作被执行时,CPU对所述信息存储单元的访问是不被允许的。
7.根据权利要求1所述的模拟错误产生设备,其中,所述任意设置的地址是由在用最大值和最小值限定的范围内生成的随机数指定的。
8.根据权利要求1所述的模拟错误产生设备,其中,所述任意设置的比特位置是由在用最大值和最小值限定的范围内生成的随机数指定的。
9.根据权利要求1所述的模拟错误产生设备,其中:
所述信息存储单元是缓冲存储器;并且
所述读取单元的读取操作和所述回写单元的回写操作针对包括信息比特和冗余比特的数据被执行,其中所述信息比特包含有存储在所述缓冲存储器中的标签部分。
10.根据权利要求1所述的模拟错误产生设备,还包括:
n进制计数器,该n进制计数器能够将n设置为由所述n进制计数器增大的值,其中n是最大值,其中:
当一比特的模拟错误被产生n次时,两个以上比特的模拟错误被产生一次。
11.根据权利要求1所述的模拟错误产生设备,其中,所述读取单元和所述回写单元分别被设置在多个集合中。
12.根据权利要求1所述的模拟错误产生设备,设置有:
具有缓冲存储器装置的多个CPU;以及
向所述多个CPU中的多个缓冲存储器装置分配地址并且随机生成所述地址的机制。
13.一种半导体装置,包括:
根据权利要求1所述的模拟错误产生设备。
14.一种在信息设备中产生模拟错误的方法,其中该信息设备具有存储包括信息比特和冗余比特的数据的信息存储单元,该方法包括:
在不执行错误检测或错误校正的情况下,从所述信息存储单元中的任意设置的地址读取包括信息比特和冗余比特的数据;
对包括信息比特和冗余比特的所读取的数据中的任意设置的比特位置处的至少一个比特进行反转,并且将比特反转后的数据写回所述信息存储单元中的原始地址。

说明书全文

模拟错误产生设备

技术领域

[0001] 本文中讨论的实施例涉及以模拟方式产生在半导体装置的存储器中出现的软错误的模拟错误(simulated error)产生设备。

背景技术

[0002] 近几年,随着半导体装置的配置变得越来越精细,半导体存储器电路的配置也已经变得非常精细。这导致以下情况的出现:半导体存储器电路的操作易于受到甚至非常小数量的外部能量的影响,从而导致由半导体存储器中的阿尔法射线或宇宙射线(中子射线)产生的软错误的问题。为了校正数据中的由诸如以上所述的软错误产生的错误,大容量存储器装置通常使用ECC电路来执行单比特错误校正。另外,随着半导体处理变得越来越精细,诸如微处理器中的缓冲存储器中的软错误以及由中子射线产生的多比特错误的出现之类的问题已经显现出来。
[0003] 因此,必须采取应对软错误的对策,并且必须检验这些对策是否能够有效地应对软错误。为了执行这种检验,有必要以模拟方式产生软错误并检验这些操作。
[0004] 在传统技术中,存在一种将模拟错误植入存储器中的方法。但是,这种方法要求存储器单元经由插座或者连接器被连接。另外,该方法不能被应用于与CPU相同的封装中所包括的缓冲存储器。
[0005] 专利文献1:日本提前公开专利公开No.2004-21922。发明内容
[0006] 在下面的实施例中,提供了一种以模拟方式在半导体存储器中产生错误的模拟错误产生设备。
[0007] 根据本实施例的一个方面的模拟错误产生设备包括:信息存储单元,该信息存储单元存储包括信息比特和冗余比特的数据;读取单元,该读取单元在不执行错误检测或错误校正的情况下,从信息存储单元中的任意设置的位置读取包括信息比特和冗余比特的数据;以及回写单元,该回写单元对包括信息比特和冗余比特的所读取的数据中的任意设置的比特位置处的至少一个比特进行反转,并且将比特反转后的数据写回信息存储单元中的原始地址。
[0008] 根据下面的实施例,提供了一种在半导体存储器中产生相当于软错误的模拟错误的模拟错误产生设备。附图说明
[0009] 图1示出了使用根据本实施例的模拟错误产生设备的系统配置;
[0010] 图2示出了模拟错误产生单元的配置;
[0011] 图3说明了如何将错误信息写到缓冲存储器(第一部分);
[0012] 图4说明了如何将错误信息写到缓冲存储器(第二部分);
[0013] 图5示出了图2中所示的n进制计数器的配置;
[0014] 图6A示出了图2中所示的具有最大和最小数的随机数生成器的配置;
[0015] 图6B也示出了图2中所示的具有最大和最小数的随机数生成器的配置;
[0016] 图7详细示出了图2中所示的多比特错误生成比例控制单元;
[0017] 图8示出了产生作为模拟的多比特错误的三比特错误的模拟错误产生单元的配置;
[0018] 图9详细示出了图8中所示的多比特错误生成比例控制单元;
[0019] 图10示出了应用本实施例的多核信息处理设备的第一示例的配置;
[0020] 图11示出了应用本实施例的多核信息处理设备的第二示例的配置;以及[0021] 图12详细示出了图11中所示的模拟错误产生单元93。

具体实施方式

[0022] 软错误由阿尔法射线、宇宙射线(中子射线)、电源噪声等引起,并且具有如下特性:其作为对抗读信息的错误而进行工作,但是在该信息被写入后允许对该信息进行正常读取。在下面的实施例中,描述了以模拟方式在信息存储(存储器)单元中产生软错误的配置。通过以模拟方式产生软错误,可以确定设备中受软错误影响的范围,并且可以提供用于确认对抗错误的对策有效的手段。
[0023] 换言之,在下面的实施例中,为了确认操作是否正被正常执行,并且预测在需要对抗由阿尔法射线、宇宙射线(中子射线)等产生的软错误的对策的信息处理设备中的实际操作条件下出现错误的可能性,错误被以模拟方式在存储器中产生。
[0024] 图1示出了使用根据本实施例的模拟错误产生设备的系统配置。
[0025] 图1中由虚线包围的部分一般由半导体芯片10配置而成,并且主存储器11被连接到半导体芯片10。模拟错误产生单元12在CPU 13没有访问缓冲存储器14或者主存储器11的时间段期间周期性地产生模拟错误。换言之,模拟错误产生单元12从主存储器11和缓冲存储器14读取包括冗余比特的信息,而不执行错误校正或错误检测。然后,模拟错误产生单元12对所读取的数据中的随机选择的一个比特或两个以上比特进行反转,并且将数据写回原始地址。当该操作被执行时,对包括冗余比特的所读取的数据中的比特进行反转的结果被写入,而不写入从ECC生成电路15或者奇偶校验生成电路16输出的数据。
[0026] 当CPU从模拟错误产生单元12已将信息写入的地址执行正常读取时,这会产生一个或两个以上比特的错误。
[0027] CPU 13对存储器的正常访问是通过使用主存储器11上的访问MMS(主存储器选择)信号、缓冲存储器14上的访问CMS(缓冲存储器选择)信号、以及控制信号的R/W(读/写)信号执行的。
[0028] 在CPU 3将信息写入主存储器11的过程中,模拟错误写信号(PEW)“0”被从模拟错误产生单元输入,从而使得多路复用器MPX17将CPU 13侧上的信号传输到主存储器11。CPU在显示(assert)MMS(主存储器选择)信号的同时发布地址信号MADD,并且将R/W信号设置为WRITE(写),从而使得被写在Data-Out(数据输出)中的内容被设置为有效。当该操作被执行时,在ECC生成电路15中,从传输自CPU 13的Data-Out信号生成校验比特,并且将其写入主存储器11。来自多路复用器MPX17的写数据Wdata被传输到三状态缓冲器
22,并且成为将被输入到主存储器11的数据。三状态缓冲器22具有三个状态,即,写数据为“1”的状态、写数据为“0”的状态、以及从主存储器11读出的数据被传递的状态。
[0029] 将信息从主存储器11读到CPU的处理是通过以下处理执行的:在MMS信号被显示的同时发布地址信号MADD,并且将R/W信号设置为READ(读)从而使得数据通过三状态缓冲器22被从期望地址读出。当该操作被执行时,读数据RdataM包括ECC比特,并且ECC校验单元18对该数据进行校验。当不存在错误时,数据比特被传输到CPU 13,并且读处理被完成。如果可校正的错误(当该方法是SEC/DED(单错误校正/双错误检测)方法时的单比特错误)被检测到,则ECC校验单元18对数据比特中包含错误的部分进行校正,并且结果数据通过多路复用器MPX20被传输到CPU 13。另外,与此同时,出现了可校正的错误的事实被使用错误信号报告给CPU 13。当不可校正的错误(SEC/DED方法中的双比特错误)被检测到时,出现了不可校正的错误的事实被使用错误信号报告给CPU 13。
[0030] CPU 13在错误被报告时发布中断信号,执行错误处理例程,记录错误日志,重启整个设备,并且自动切断供电。
[0031] 在将信息从CPU 13写到缓冲存储器14的过程中,模拟错误产生单元首先将模拟错误写信号(PEW)设置为“0”,从而使得多路复用器MPX17将CPU 13上的信号传输到缓冲存储器14。CPU 13显示CMS信号,同时发布地址信号MADD,从而将R/W信号设置为WRITE,使得被写在Data-Out中的内容有效。当该操作被执行时,在奇偶校验生成电路16中,奇偶校验比特在数据输出信号中被生成,并且该比特被与写数据Wdata一起写到缓冲存储器14。
[0032] 在将信息从缓冲存储器14读到CPU 13的过程中,在CMS信号被显示的同时地址信号MADD被发布,并且R/W信号被设置为READ,从而数据被从期望地址读出。当缓冲存储器14中存在由相应的地址信号MADD指定的数据时,该事实被当作缓存命中(cache hit),并且该事实被报告给CPU 13。从缓冲存储器14读出的数据RdataC通过多路复用器MPX20被传输到CPU 13。当该操作被执行时,奇偶校验比特也被同时读取,并且P校验单元19执行奇偶校验。当错误被检测到时,奇偶校验比特通过错误信号线23被传输到CPU 13。
[0033] CPU 13在错误被报告时发布中断信号,执行错误处理例程,记录错误日志,重启整个设备,并且自动切断供电。
[0034] 当从缓冲存储器14读取信息的处理被执行并且不存在将从缓冲存储器14读取的信息时,该情况被当作缓存未命中(cache miss hit),并且更新缓冲数据的处理等被执行。在系统的正常操作中,CPU首先访问缓冲器,并且只有在其被当作缓存未命中时,CPU才访问主存储器。
[0035] 对MMS信号和CMS信号(未示出)执行逻辑或(OR)运算,并且所生成的结果被作为CPU-Acc传输到模拟错误产生单元12。另外,这些结果被传输到缓冲存储器14或主存储器11,并且被用来禁止在CPU 13在访问任意存储器时从模拟错误产生单元12访问该任意存储器。从主存储器11读出的数据RdataM和从缓冲存储器14读出的数据RdataPC被输入到多路复用器MPX21,并且它们中的一个被选择输入到模拟错误产生单元12。数据RdataM是从主存储器读出的数据,并且将被传输到模拟错误产生单元12,数据RdataPC是从缓冲存储器读出的数据,并且将被传输到模拟错误产生单元12。这些信号中的哪个或哪些信号将被选择由输出自模拟错误产生单元12的PMMS(模拟主存储器选择)信号或者PCMS(模拟缓冲存储器选择)信号指定。PMMS(模拟主存储器选择)信号或者PCMS(模拟缓冲存储器选择)信号指定模拟错误是将被写到主存储器11还是将被写到缓冲存储器14。另外,当模拟错误产生单元12正在访问这些类型的存储器之一时,PEW信号被设置为“1”,并且将被从模拟错误产生单元12发送到CPU 13,以使来自CPU 13的访问等待。
[0036] 模拟错误产生单元12执行以恒定间隔将信息写入这些存储器设备之一的操作(读取修改写入)。读取修改写入是读取数据、修改数据、并且将修改后的数据写回原始地址的处理。用于该处理的控制信号,即,PMMS(模拟主存储器选择)信号、PCMS(模拟缓冲存储器选择)信号、PR/W(模拟读/写)信号、PADD(模拟地址)信号、以及PDATA-Out(模拟数据输出)信号被发布。多路复用器MPX17的控制信号PEW被设置为“1”,从而使得这些信号通过多路复用器MPX17被传输到存储器设备之一。另外,该PEW信号被传输到CPU 13,并且限制从CPU 13对存储器的访问,直到模拟错误产生单元12的写处理结束为止。
[0037] 模拟错误产生单元12的操作开始于从PMMS(模拟主存储器选择)信号或者PCMS(模拟缓冲存储器选择)信号指定的存储器设备读取信息。模拟错误产生单元12读取在由地址信号(PADD)指定的地址处所写的信息,并且将该信息传输到模拟错误产生单元12。在该示例的情况中,将通过访问主存储器获取的包括ECC的校验比特(冗余比特)的信息被读到模拟错误产生单元12,而无需通过ECC校验单元18。在SEC/DED方法中,所读取的数据中的一个或两个比特的数据被反转,并且结果数据被作为整个数据写回相同位置。
[0038] 通过CPU 13从该地址读取信息,出现了双比特错误或者单比特错误。
[0039] 在该示例中,当模拟错误产生单元12访问缓冲存储器时,包括标签部分中的数据以及奇偶校验比特的RdataPC被读到错误生成单元,所读取的数据中的一个比特被反转,并且结果数据被写回到缓冲存储器中的原始地址。
[0040] 当CPU 13从该地址读取信息时,奇偶校验错误出现。
[0041] 图2示出了模拟错误产生单元的配置。
[0042] 控制寄存器30包括存储器选择单元31、错误产生间隔单元32、以及多比特错误控制单元33。
[0043] 存储器选择单元31使用比特值来指定主存储器还是缓冲存储器将被选择。在图2的示例中,两种类型的存储器,即主存储器和缓冲存储器被用作目标。但是,本示例的本质可以被应用于缓冲存储器包括L1缓存和L2缓存的情况,或者存在两个以上主存储器设备(即使比特数目增加)的情况。该信号被解码器49解码,并且被发送到存储单元选择R/W控制单元34。存储单元选择R/W控制单元34确认CPU-Acc信号处于非激活状态(这意味着CPU不是正在访问主存储器或缓冲存储器),使用解码器49对存储器选择单元31中的比特进行解码,并且发布主存储器选择信号PMMS或者缓冲存储器选择信号PCMS、以及读/写信号PR/W。另外,存储单元选择R/W控制单元34向CPU 13显示指示模拟错误产生单元12正在访问缓冲存储器或者主存储器的PEW信号。该PEW信号还充当多路复用器MPX17的控制信号。
[0044] 错误产生间隔单元32所保存的值确定数据将被反转的时间间隔。注意,即使在数据已经被反转时,CPU也没有辨认出错误的出现,除非CPU从相应地址读取信息。
[0045] 换言之,信息是否被从具有反转后的数据的地址读出很大程度上受到应用于实际使用的环境的系统配置或应用的影响。随后将描述将要设置的值。
[0046] n进制计数器35根据来自时钟36的输入来增大计数值,并且当错误产生间隔单元32中存储的值与计数值匹配时,n进制计数器35发布触发信号从而反转存储器数据,并且清除计数器的值。触发信号激活随机数生成器37,并且更新由随机数生成器37生成的随机数值。另外,触发信号还被传输到存储单元选择R/W控制单元34,并且使得存储单元选择R/W控制单元34输出PMMS信号、PCMS信号、PR/W信号、以及PEW信号。
[0047] 根据目标存储器系统的错误校正检测功能,来设置多比特错误控制单元33。当只产生了一个或两个比特的错误时,多比特错误控制单元33被设置为两个比特,并且指示如何产生多比特错误。例如,如果值为“00”,则没有产生多比特错误;当值为“01”时,按照由多比特错误控制单元33确定的单比特错误和多比特错误(图2中的双比特错误)之间的比例产生多比特错误;并且当值为“10”时,一直产生多比特错误。产生多比特错误的特定比例被预先设置为规定值。
[0048] 多比特错误产生比例控制单元38确定单比特错误和多比特错误之间的比例。具体地,当所需的比例为n∶1(当产生n次单比特错误时,产生一次多比特错误)时,多比特错误产生比例控制单元38将计数器设置为随后将描述的n进制计数器。多比特错误产生比例控制单元38仅在计数器值中发生进位时将反转后的多比特数据写到相同的地址从而使得多比特错误被以模拟方式产生,并且在计数器值增大而没有发生进位时写入反转后的单比特数据从而使得单比特错误被以模拟方式产生。在图2中所示的示例中,多比特错误为双比特错误。
[0049] 随机数生成器37的地址单元39与目标存储器的容量以及目标数据所在的地址位置相对应,并且它们的最大和最小值可以被设置(这在后面将描述)。来自地址单元39的输出被地址生成单元43处理,然后被作为地址PADD(该地址处的数据将被反转)经由MPX17(参见图1)传输到存储器选择单元31所选择的存储器,从而使得存储器中的期望地址被访问。
[0050] 比特选择单元40包括比特位置选择单元,以选择一个或多个比特位置从而指定一条字线中的哪些比特将被反转。具体地,第一比特的位置指定将产生单比特模拟错误的位置。当多个比特选择单元被设置时,可以模拟与这些比特选择单元所具有的比特数目一样多的比特的错误。比特选择单元的各个比特位置生成单元相互独立地操作,独立地生成随机数,并且指定将产生模拟错误的位置。另外,比特选择单元40能够根据目标存储器的比特宽度来设置最大和最小值。
[0051] 根据地址信号、选择缓冲存储器和主存储器之一的选择信号、以及R/W信号从存储器(图2中的主存储器或者缓冲存储器)读取数据,所读取的数据经由多路复用器MPX20或者MPX21(参见图1)被作为PDATA-IN累积在读取数据寄存器41中,并且充当对于异或单元42的输入。当该读取处理被执行时,存储器的冗余部分(ECC单元和奇偶校验比特)也被直接读到读取数据寄存器41。另外,当存储器为缓冲存储器时,缓冲存储器的标签存储器部分也被读到读取数据寄存器41。
[0052] 异或电路42的其他输入为包括比特串的数据,其中该比特串是使用解码器44对随机数生成器37的比特选择单元40的输出进行解码获取的并且一个字中只包括一个为“1”的比特。当多比特错误能够被产生时,一个字中的两个以上比特(在图2中,两个比特)可以是“1”。通过执行从存储器读取的数据和该数据之间的异或运算,从存储器读取的数据中的一个比特或两个以上比特(在图2中,两个比特)被反转。该数据被写回主存储器或缓冲存储器。在图2的双比特错误的情况中,比特选择单元40的第二比特中的比特选择信号被解码器45解码,并且以下比特串被生成:在该比特串中只有将被反转的位置处的比特为“1”。当多比特错误将被生成时,对于解码器45的输出的逻辑与运算的结果通过逻辑与序列46从多比特错误产生比例控制器38的被获取。但是,逻辑与序列46的其他输入(即,来自多比特错误产生比例控制单元38的输出)为“1”,并且逻辑与序列46的输出中的比特为“1”。当多比特错误没有被生成时,多比特错误产生比例控制单元38的输出为“0”,并且逻辑与序列46的输出为全“0”。逻辑与序列46执行多比特错误产生比例控制单元38的输出和解码器45的输出之间的逻辑与运算,并且当多比特错误将被产生时,其中第二比特的位置为“1”的比特串被输出。当多比特错误没有产生时,其中所有比特都为“0”的比特串被输出。逻辑或电路47执行来自解码器44的代表第一比特的位置的比特串和来自解码器45的代表第二比特的位置的比特串之间的逻辑或运算,并且将结果输入到数据反转寄存器
48。
[0053] 异或电路42执行读取数据寄存器41的数据(其是从存储器读取的数据)和数据反转寄存器48的数据(其是只有将要反转的比特被设置为“1”的比特串)之间的异或操作,从而使得其中从存储器读取的数据的比特被反转的数据被作为PDATA-Out输出。
[0054] 图3和图4说明如何将错误信息写到缓冲存储器。
[0055] 图3示出了4通道(WAY)集合关联配置的示例。首先,将说明从CPU正常读取信息(缓存命中)。假设作为缓存配置的示例,容量为32K字节,1条线具有32字节,CPU地址为0到31,上部地址(MADD13-31)分别被输入到比较器56-1到56-4侧。缓存线路选择地址(MADD12到5)经由MPX17访问存储器的标签部分和数据部分,并且标签部分的读取数据被输入到比较器56-1到56-4的另一侧。当输入数据与比较结果匹配时,其被当作缓存命中处理,并且命中的通道的数据被传输到由通道选择单元59所选择的CPU。
[0056] 接下来,将给出对于由根据本发明的模拟错误产生单元12执行的对缓冲存储器的数据进行反转的操作的说明。对于缓冲存储器14的写入错误数据的请求在模拟错误产生单元12中被发布。换言之,当触发器被接通时,确认CPU没有正在访问存储器(即,CPU-Acess为低),并且对于存储器的访问请求信号PEW被显示。
[0057] 模拟错误产生单元12的地址信号PADD(较低的八个比特)经由多路复用器MPX17被传输到缓冲存储器14的各个通道,并且被读取。同时,标签部分也被读取。PADD的较高比特(此示例中的两个比特)被用于模拟错误通道选择单元55的选择信号,以用于选择从各个通道读取的数据中的一个通道的数据,从而使得所选择的数据被传输到模拟错误产生单元12。模拟错误产生单元12对该数据的一个或两个比特进行反转,并且该数据被写回到相同的地址和相同的通道。
[0058] 另外,在图3中,标签部分中的信息与数据部分信息一起被读取,并且所选择的通道的信息被经由模拟错误通道选择单元55传输到模拟错误产生单元12。一般,标签部分和数据部分是使用根据相同技术的存储器单元配置的,从而使得可以同时从它们读取信息。通过使能同时读取,电路可以更简单,并且用于测试的时间段可以减短。
[0059] 当CPU所读取的地址的数据是仅用于奇偶校验的存储器的地址时,意味着将出现奇偶校验错误、ECC可校正错误(单比特错误)、或者不可校正错误(双比特错误)。已经给出了单比特错误或双比特错误的说明。但是,该方法可以被自然扩展到重写“n+1”比特,以响应于用于多(n)比特错误的错误校正功能。
[0060] 图4是说明根据本实施例的操作的信号图。
[0061] 首先,对于随机数生成器的触发在定时A被发布。该操作在等待定时B之后开始,在定时B CPU对缓冲存储器的访问被终止。产生模拟错误的地址的值在定时D被输出。但是,由于CPU正在访问缓冲存储器,所以该值的输出一直等到访问被终止的定时B为止。当CPU对缓冲存储器的访问在定时B被终止时,禁止CPU对缓冲存储器的访问的PEW信号在定时C被发布。在定时C之后,模拟错误生成单元立即在定时E访问缓冲存储器,并且信号PCMS被设置为低。首先,模拟错误生成单元从缓冲存储器读取数据,从而使得信号PR/W处于READ状态。此时,已经被模拟错误产生单元读取的数据PDATA-In被输入,并且比特被反转,从而使得信号PDATA-Out被输出。然后,由于模拟错误产生单元开始了向缓冲存储器写信息的操作,所以信号PR/W在定时F被调整为WRITE状态,从而使得信号PDATA-Out被写到缓冲存储器。
[0062] 图5示出了图2中所示的n进制计数器35的配置。
[0063] 计数器60是二进制计数器,并且通过接收时钟信号的输入而从“0”开始顺序增大。当n进制计数器将被配置时,为计数器60准备可以被计数到比n大的值的比特数目k(必须满足“2**k>n”)。在寄存器61中,“n-1”被设置。图2中所示的控制寄存器30的错误产生间隔单元32的值被设置为这个值。具体地,该值是通过用时钟周期来除用于将反转后的数据写到期望存储器的时间间隔而获取的值。比较器62比较由计数器60增大的值和寄存器61的值,并且在所比较的值相匹配时,清除信号被输入到计数器60。
[0064] 图6A和6B示出了图2中所示的随机数生成器37的比特选择单元40、以及具有最大和最小值的地址单元39的配置。
[0065] 图2中所示的随机数生成器37的比特选择单元40和地址单元39分别由随机数生成电路配置而成。地址单元39随机指定将产生模拟错误的地址,并且比特选择单元40随机指定将被反转的比特所在的比特位置。将产生错误的比特位置和地址的最大值和最小值由目标存储器的容量、比特宽度等指定。下面将示出示例。
[0066] 图6A示出了随机数生成电路65的示例。该配置生成在1到65535的范围中变化的任意随机数。图6B示出了用于设置作为由随机数生成电路65生成的随机数的最大和最小值的配置。在最小值寄存器(MIN)66中,设置可以是随机数的最小值。在最大值寄存器67中,设置可以是随机数的最大值。当随机数生成电路65生成随机数时,比较器68比较最小值寄存器(MIN)66中的最小值和随机数。当随机数较小时,最小值寄存器(MIN)66输出“1”。比较器69比较最大值寄存器(MAX)67中的最大值和随机数,并且当随机数较大时,最大值寄存器(MAX)67输出“1”。逻辑或电路70执行比较器68和69的输出之间的逻辑或运算。当逻辑或电路70的输出为“1”时,重试请求被发布到随机数生成电路65,以使随机数生成电路65生成新的随机数。换言之,当所生成的随机数小于最小值或者大于最大值时,随机数被再次生成。当随机数将被生成时,随机值被按照随机次序生成,从而使得即使在随机数在最大值和最小值之间的范围之外时,接下来所生成的随机数也可以在该范围中。在处于最大和最小数之间的范围中的随机数被生成之前,该处理被重试。另外,在该示例性电路中,不能生成“0000000000000000”。但是,如果添加一个加“-1”的电路,则有可能生成“0000000000000000”。
[0067] 图7详细示出了多比特错误生成比例控制电路38。使用触发信号作为时钟的计数器80、寄存器81、以及比较器82组成了n进制计数器。n的值指定了单比特数据反转发生的次数和双比特数据反转发生的次数之间的比例。当比较器的输出为“1”并且控制寄存器30的多比特错误控制单元33的值为“01”时,多比特错误产生比例控制单元38输出“1”,以将其中两个比特仅被反转n次中的一次的数据写到存储器的相同地址。当多比特错误控制单元33输出“00”时,多比特错误产生比例控制单元38一直输出“0”,并且两比特反转后的数据没有被写入。当多比特错误控制单元33输出“10”时,多比特错误产生比例控制单元38一直输出“1”,并且其中两个比特被反转的数据被写入。
[0068] 图8示出了产生作为模拟的多比特错误的三比特错误的模拟错误产生单元的配置。
[0069] 在图8中,与图2中相同的组成元件由相同的符号表示,并且它们的说明被省去。
[0070] 在图8中,比特选择单元40a生成3个比特选择位置,并且新添加了解码器45a和逻辑与电路46a。在控制寄存器30中的多比特错误控制单元33中,作为示例的以下设置是可能的:
[0071] (1)只有单比特错误出现,多比特错误没有出现。
[0072] (2)单比特错误出现,并且双比特错误按照规定的比例出现。
[0073] (3)单比特错误和三比特错误按照规定的比例出现,并且双比特错误没有出现。
[0074] (4)单比特错误和双比特错误或三比特错误按照规定的比例独立出现。这些“规定的比例”是由多比特错误产生比例控制单元38确定的。参考图9给出详细说明。在该示例中,n进制计数器是通过使用计数器80A和比较器82A将寄存器81A中的值设置为“n-1”来配置的。另外,m进制计数器是通过使用计数器80B和比较器82B将寄存器81B中的值设置为“m-1”来配置的;但是,计数器80B的时钟由比较器82A的输出支持,所以整个计数器充当“n+m”进制计数器。当控制寄存器30的多比特错误控制单元33的两个比特为“00”时,两个计数器的输出在逻辑与电路中被合并,只有单比特数据反转发生,而没有发生双比特或三比特的数据反转。当多比特错误控制单元33的比特为“01”时,双比特反转数据被写入n次中的一次,n是寄存器81A中设置的值,三比特数据反转没有发生,并且单比特数据反转发生了n次中的“n-1”次。当多比特错误控制单元33的比特为“10”时,三比特反转数据被写入“n×m”次中的一次,并且单比特反转数据被写入“n×m”次中的“n×m-1”次。当多比特错误控制单元33的比特为“11”时,三比特反转数据被写“n×m”中的一次,双比特反转数据被写“n×m”次中的“m-1”次,并且单比特反转数据被写“n”次中的“n-1”次。
所以,单比特反转数据、双比特反转数据、以及三比特反转数据被适当写入,从而按照特定比例产生了错误。
[0075] 图10示出了应用本实施例的多核信息处理设备(该设备具有多个CPU)的第一示例的配置。
[0076] 每个CPU核都设置有缓冲存储器。另外,分别包括CPU核的节点76-1到76-n通过相互连接的网络75而相互连接,以访问外部主存储器11。根据本实施例的模拟错误产生单元被提供给节点76-1到76-n中的每一个节点。每个模拟错误产生单元不仅在节点76-1到76-n中的每个节点的缓冲存储器中产生模拟错误,而且在主存储器11中产生模拟错误。
[0077] 图11示出了应用本实施例的多核信息处理设备(该设备具有多个CPU)的第二示例的配置。每个CPU核都设置有缓冲存储器。CPU核91-1和92-2到92-n通过一般连接网络92连接。根据本发明的模拟错误产生单元93也被连接到该一般连接网络92。在本发明的示例中,模拟错误产生单元93自身可以单独访问各CPU中的缓冲存储器装置。将参考图12给出具体说明。图12以放大的方式示出了图2的一部分,并且图12中没有示出的元件应该被认为与图2中的相同。在该示例中,图2中所示的地址单元39被放大,并且地址单元39的一部分被输入到解码器49,输入数据被如图12中的表格中所示地解码,从而使得该数据充当每个缓存的选择信号。每个缓冲存储器选择信号PCMS0到PCSMn-1充当选择每个CPU核中的缓冲存储器的信号。其他信号PR/W和PEW被一起输入到所有缓冲存储器装置,并且信号PMMS充当用于主存储器的选择信号。从而,可以随机反转每个CPU核中的缓冲存储器中的数据。
[0078] 另外,以上的实施例可以由软件实现。例如,计数器可以以中断信号的形式实现,其中这些中断信号被周期性地发布,以确定存储器装置中的什么地址/比特部分将产生模拟错误。
[0079] 另外,软错误比例有时可以根据存储器装置是处于用于正常读/写的Act模式还是处于仅用于保持已经被写入的数据的Dret模式而显著变化。在本实施例中,还可以为模拟错误产生单元准备多个模拟错误产生间隔寄存器,以降低由于操作模式的不同而导致的软错误比例的变化程度,从而使得可以响应于操作模式而调整模拟错误产生间隔。
[0080] 在以上实施例的说明中,使用了这样的示例:在存在主存储器和缓冲存储器时,控制寄存器的目标存储器选择单元被设置为缓冲存储器和主存储器中的任一者,以单独执行测试。但是,在实际环境中,错误会随机出现在两种类型的存储器中。所以,也可以准备根据本实施例的多个模拟错误产生单元,将其中一个设置为用于主存储器并将另一个设置为用于缓冲存储器,以执行测试从而使得测试可以在更接近实际环境的环境中被执行。
[0081] 下面,将给出如何预测实际设备中的错误出现比例的说明。
[0082] 一般,DRAM(动态随机存取存储器)被用作主存储器,并且该存储器被置入加速环境下,即,DRAM元件本身被强制照射以阿尔法射线或中子射线。假设,A/B表示实际环境下的错误出现比例,其中A表示照射时的错误出现比例(单位时间中出现的错误的数目),B表示加速因子(正常环境下的阿尔法/中子射线量和加速环境下的射线量之间的比例)。但是,对于该值的计算而言并没有考虑设备的实际操作条件,因为错误出现比例A是使用用于测试的程序测量出来的,并且该用于测试的程序将“1”写到存储器中的所有地址,并且在规定的时段之后从所有地址读取“1”,然后其将“0”写到所有地址,并且在规定时段之后从所有地址读取“0”,重复此操作。相反,很少能有效地使用所有地址,并且所写的数据通常未能被读取。因此,将A/B当作预测出的错误比例是不合适的。
[0083] 对于缓冲存储器,通过使用与生产缓冲存储器相同的处理生产的存储器芯片通常被用来以与以上描述的用于主存储器的方法相同的方法来预测错误比例。但是,通过该方法获取的值并不适宜被用作实际的设备环境下的值。例如,数据缓冲存储器的操作根据操作模式是回写模式还是直写模式而有很大不同。因为在回写操作中,对于CPU所写的数据在缓存中出现未命中会导致在非规定的时段之后将数据写回到主存储器的操作,当该操作被执行时,信息被从缓冲存储器读出,并且如果在该地址处所写的信息的一部分已经被反转,则错误出现。但是,在直写模式中,相同的信息被同时写到缓冲存储器和主存储器,从而使得响应于缓冲存储器中的未命中而从缓冲存储器读取信息的处理不被执行。所以,即使在缓冲存储器中的地址的信息已经被反转时,也不会出现错误。换言之,用于直写模式的错误比例较低。
[0084] 考虑以上因素,存储器自己的错误比例(A/B)被定义为存储器信息已经被反转的可能性,并且通过将D(1000到100000)与A/B相乘获取的值,即(D×A/B)被设置为控制寄存器的错误出现时间间隔。作为控制寄存器的错误出现间隔,大概从1分钟到1小时的范围内的时段被设置。从该设置和该值A/B开始,可以粗略确定D的值。然后,根据本实施例的模拟错误生成单元被用来在使实际的设备环境、处理器操作条件、以及程序相当于用于实际操作的相应条件后来观察错误出现,从而估计是否对错误的出现适当地执行了处理例程。另外,可以通过用值D除错误比例来移除该错误比例,从而预测实际设备的错误比例(E)。当值(E)等于或者小于该设备的期望错误比例时,没有问题;但是当值(E)等于或大于期望错误比例时,需要对策。
[0085] 在以上实施例中,设置有ECC的主存储器被用作对策的示例。但是,还存在这样一种方法,其中ECC被添加到未设置ECC的主存储器。
[0086] 另外,作为向缓冲存储器写信息的方法,存在两种方法:回写方法和直写方法。尽管回写方法具有更好的性能,但是直写方法对于软错误来说更强壮。在回写方法中,所写的信息通常在经过了很长时段之后被写回到主存储器,而在该时段中信息的反转发生,从而导致回写处理中出现软错误;而在直写方法中,所写的信息被立即写回主存储器,这省却了在长时间间隔之后读取信息的操作。这使得的直写方法的软错误比例较低。因此,采用直写方法作为缓存方法来以微小的缓存性能为代价增加可靠性是有效的。
[0087] 在以上实施例中,通过产生由阿尔法射线或宇宙射线(中子射线)导致的软错误相当的现象从而导致加速状态中的软错误现象(很少出现),可以确认用于处理软错误的例程是否作为设备正在适当地操作。另外,由于设备的错误出现比例可以被预测出来,所以可以确认对策是否必要。
QQ群二维码
意见反馈