微控制器以及使用该微控制器的电子控制装置的制造方法_3

文档序号:9374488阅读:来源:国知局
蔽功能301和地址系统故障屏蔽功能302。更具体地,存储器200包括在每个处理器访问时间具有对应于指定地址的单存储区的非冗余化存储垫,选择在存储垫中的存储区的地址选择单元、从由地址选择单元选择的存储区读取数据的数据输出单元、和故障恢复单元。地址选择单元基于从处理器101-1至101-n输出的地址ADDR-1至ADDR-n选择在存储垫中的存储区。
[0118]数据输出单元从选择的存储区读取数据,故障恢复部对读取数据执行错误校正和错误检测。错误校正码被添加到存储在存储垫中的数据上。故障恢复单元通过错误校正码在错误校正能力范围内校正错误并在错误校正能力范围内检测错误。例如,在将SECDED用于错误校正码的情况下,校正I位错误,检测2位错误,不能检测更多位的错误。通过故障恢复单元的错误校正/错误检测操作,实现了在存储器200中的数据系统故障屏蔽功能301。
[0119]故障恢复单元在存储器200中进一步实现了地址系统故障屏蔽功能302。对于地址选择单元,提供了从处理器101-1至101-n输出的地址ADDR-1至ADDR-n。当所有处理器101-1至101-n正常操作时,地址ADDR-1至ADDR-n是相同的。然而,当任何处理器中出现故障时,出于地址ADDR-1至ADDR-n的一个地址的值将变得与其它地址的值不同。此时,地址选择单元通过多数电路等将忽略由其它地址故障引起的变得不同的地址,并通过校正地址选择在存储垫中的存储区。然而,当地址选择单元本身出现故障时,就会选择不正确的存储区。在这种情况下,该故障不能通过数据系统故障屏蔽功能301来校正或检测。配置故障恢复单元以能恢复在地址选择单元中出现的故障。例如,地址选择单元由多个冗余化地址解码器组成,用于多个解码器的多数电路会导致屏蔽在地址解码器中出现的故障。在另一个示例中,通过在多位单元中具有错误校正能力的块码,执行存储在存储垫中的数据的错误校正,存储垫由对应于校正单位的多位分开,并为存储垫的每个分开部分提供地址解码器。即使在地址解码器出现数目为由在多个地址解码器中的错误校正码的校正能力范围内故障时,由于故障读取的数据中出现的错误通过上述数据系统故障屏蔽功能301来校正。结果,在地址解码器中出现的故障被屏蔽。作为在多位单元中具有执行错误校正和错误检测能力的块码,已知为Reed-Solomon码。由于本发明向地址解码器提供了从处理器101-1至101-n起动的地址ADDR-1至ADDR-n的路径,并使数据单元中的错误校正电路产生冗余,在那以后,可以应用在专利文献I中描述的块错误校正码(例如,S8ECD8ED)。
[0120]以此方式,因此,在不使存储垫产生冗余的情况下,同时抑制了芯片面积的增加,即使在故障时也能提供能继续操作的微控制器。由于微控制器具有并行地执行相同的处理的三个以上的处理器,所以即使当在处理器中出现故障时,如果故障部分的数目等于或小于预定数目,则通过用多数表决等来屏蔽故障,使操作能够继续。即使当在包括非冗余化存储垫的整个存储装置的任何部分中出现故障时,如果故障部分的数目等于或小于预定数目,则通过故障恢复单元来校正或屏蔽故障部分,以使微控制器能够继续它的操作。
[0121 ] 存储器200可以是RAM (随机存取存储器)或ROM (只读存储器)。在RAM的情况下,在用于写入数据的路径上提供了产生用于错误校正的冗余部分(编码部分)并加入冗余部分的编码电路,故障恢复单元执行对应于该电路的错误校正/错误检测处理。在ROM的情况下,不提供编码电路,事先写入加入用于错误校正的冗余部分(编码部分)的数据。“数据”涉及存储在存储器中的值,对处理器来说,可以是狭义上的数据,指令码或任何其它值。虽然没有限制,但可以经由总线将存储器200耦合到处理器101-1到101-n,并可以将其它总线主控和其它存储器耦合到总线。除存储器200以外,可以进一步提供像存储器200一样的具有数据系统故障屏蔽功能301和地址系统故障屏蔽功能302的存储器。
[0122]为了检测处理器本身的故障,屏蔽它,并继续操作,必须是三个以上的冗余化处理器101-1至101-n。图2示例了提供四个冗余化处理器的实施例。图4和7示例了提供三个冗余化处理器的实施例。
[0123]在图2的实施例中示例的微控制器100具有在四个冗余化处理器101-1至101_4和存储器200之间的比较器102-1和102-2和选择器202。处理器101-1和101-3的地址输出作为ADDR-a和ADDR-b被输入到选择器202,处理器101-1和101-3的数据输出作为DATA-a和DATA-b被输入到选择器202。虽然在图2中描绘的信号线和本申请的其它图中没有示例总线,但地址和数据都经由由多位构成的总线来提供。比较器102-1比较冗余化处理器101-1和101-2的输出,比较器102-2比较处理器101-3和101-4的输出,并经由未示例的信号线等将比较结果输出到选择器202。多个处理器的输出比较不仅包括地址和数据的比较,还包括控制线状态(例如,用于存储器的读/写信号、启动信号等)的比较和处理器中寄存器等的值的比较。选择器202输出用图3示例的选择方法选择的地址ADDR-a或ADDR-b。数据DATA-a和DATA_b、其它控制信号等也可与上述的类似。当处理器101-1和101-2的输出匹配时,不管处理器101-3和101-4输出的比较结果,选择并向存储器200提供作为a侧,S卩,处理器101-1和101-2上的输出的ADDR-a和DATA-a (实例I)。在处理器101-1和101-2的输出不匹配且处理器101-3和101-4的输出匹配的情况下,确定在处理器101-1和101-2中存在故障部分,选择并向存储器200提供作为“b”侧,即,处理器101-3和101-4上的输出的ADDR-b和DATA-b (实例2)。在处理器101-1和101-2的输出不匹配且处理器101-3和101-4的输出也不匹配的情况下,确定在处理器101-1至101-4中存在至少两个或以上的故障部分,微控制器100停止操作,并在那之后转移到恢复处理诸如重置(实例3) ο
[0124]如上所述,在图2的实施例中示例的微控制器100中,当出于四个冗余化处理器101-1至101-4的至少两个输出匹配时,屏蔽由输出不匹配引起的处理器中的故障并将匹配的输出设置为正确的输出,以使操作能够继续进行。
[0125]在图4的实施例中示例的微控制器100具有在冗余化的三个处理器101-1至101-3和存储器200之间的比较器102-1、102-2和102-3和选择器202。处理器101-1和101-3的地址输出作为ADDR-a和ADDR-b被输入到选择器202,处理器101-1和101-3的数据输出作为DATA-a和DATA-b被输入到选择器202。比较器102-1比较处理器101-1和101-2的输出,比较器102-2比较处理器101-1和101-3的输出,比较器102-3比较101-1和101-3的输出并经由未示例的信号线等将比较结果输出到选择器202。选择器202将用图5或6示例的选择方法选择的地址ADDR-a或ADDR-b输出到存储器200。数据DATA-a和DATA-b、其它控制信号等也可是类似的。
[0126]将描述在图5中示例的选择方法。当处理器101-1和101-2的输出匹配时,不管处理器101-2和101-3的输出的比较结果,选择并向存储器200提供“a”侧,即,ADDR-a和DATA-a,作为处理器101-1和101-2的输出(实例I)。当处理器101-1和101-2的输出不匹配且处理器101-2和101-3的输出匹配时,确定在处理器101-1中存在故障部分,选择并向存储器200提供“b”侧,即,ADDR-b和DATA-b,作为处理器101-2和101-3的输出(实例2)。在处理器101-1和101-2的输出不匹配且处理器101-2和101-3的输出也不匹配的情况下,确定在处理器ιο?-1至101-3中存在至少两个故障部分,微控制器100停止操作,并在那之后,转移到恢复处理诸如重置(实例3)。
[0127]将描述图6中示例的选择方法。由于通过使用三个处理器101-1、101-2和101_3的所有组合中输出的比较结果来选择向存储器200提供的地址、数据等,所以构造了比图5示例的选择方法更完美的多数逻辑。
[0128]在三个处理器101-1、101-2和101-3的所有组合中输出的比较结果都匹配的情况下,选择并向存储器200提供“a”侧,即,ADDR-a和DATA_a,作为处理器101-1的输出(实例I) O
[0129]当处理器101-1和101-2的输出不匹配、处理器101_2和101_3的输出匹配且处理器101-1和101-3的输出匹配时,选择并向存储器200提供“b”侧,S卩,ADDR-b和DATA_b,作为处理器101-3的输出(实例2)。
[0130]当处理器101-1和101-2的输出匹配、处理器101_2和101_3的输出不匹配且处理器101-1和101-3的输出匹配时,选择并向存储器200提供“a”侧,S卩,ADDR-a和DATA_a,作为处理器101-1的输出(实例3)。
[0131]在处理器101-1和101-2的输出不匹配、处理器101_2和101_3的输出不匹配且处理器101-1和101-3的输出匹配的情况下,选择并向存储器200提供“a”侧,即,ADDR-a和DATA-a,作为处理器101-1的输出(实例4)。在这种情况下,确定故障出现在处理器101-2中。
[0132]在处理器101-1和101-2的输出匹配、处理器101_2和101_3的输出匹配且处理器101-1和101-3的输出不匹配的情况下,选择并向存储器200提供“a”侧,即,ADDR-a和DATA-a,作为处理器101-1的输出(实例5)。
[0133]在处理器101-1和101-2的输出不匹配、处理器101_2和101_3的输出匹配且处理器101-1和101-3的输出不匹配的情况下,选择并向存储器200提供“b”侧,即,ADDR-b和DATA-b,作为处理器101-3的输出(实例6)。在这种情况下,确定故障出现在处理器101-1中。
[0134]在处理器101-1和101-2的输出匹配、处理器101_2和101_3的输出不匹配且处理器101-1和101-3的输出不匹配的情况下,选择并向存储器200提供“a”侧,即,ADDR-a和DATA-a,作为处理器101-1的输出(实例7)。在这种情况下,确定故障出现在处理器101-3中。
[0135]在三个处理器101-1、101-2和101-3的所有组合中输出的比较结果都不匹配的情况下,确定在处理器101-1至101-3中存在至少两个故障,微控制器100停止操作,并在那之后,转移到恢复处理诸如重置(实例8)。
[0136]在三个处理器101-1、101-2和101_3的所有组合中只有一种组合指示不匹配且其它两种组合指示匹配的情况下,即,在实例2、3和5中,认为故障没有发生在三个处理器101-1至101-3的任何一个中,而发生在比较器102-1至102-3的任何一个中。
[0137]如上所述,在图4的实施例示例的微控制器100中,当出于三个冗余化处理器101-1至101-3的至少两个输出匹
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1