首页 / 专利库 / 资料储存系统 / 高速缓冲存储器 / 半导体器件、控制系统和半导体器件的控制方法

半导体器件、控制系统和半导体器件的控制方法

阅读:849发布:2020-05-11

专利汇可以提供半导体器件、控制系统和半导体器件的控制方法专利检索,专利查询,专利分析的服务。并且本 申请 涉及 半导体 器件、控制系统和半导体器件的控制方法。半导体器件包括第一CPU和第二CPU、用于控制侦听操作的第一SPU和第二SPU、支持功能安全标准的ASIL D的 控制器 以及 存储器 。当 软件 锁 定步骤未被执行时,控制器向第一SPU和第二SPU设置允许侦听操作。当软件锁定步骤被执行时,控制器向第一SPU和第二SPU设置禁止侦听操作。第一CPU执行用于软件锁定步骤的第一软件,并将执行结果写入存储器的第一区域。第二CPU执行用于软件锁定步骤的第二软件,并将执行结果写入存储器的第二区域。将写入第一区域的执行结果与写入第二区域的执行结果进行比较。,下面是半导体器件、控制系统和半导体器件的控制方法专利的具体信息内容。

1.一种半导体器件,包括:
第一处理器,包括第一高速缓冲存储器,并且执行软件定步骤;
第二处理器,包括第二高速缓冲存储器,并且执行所述软件锁定步骤;
存储器,包括第一区域、第二区域和第三区域;
第一侦听控制电路,耦合到所述第一处理器和所述存储器,并且控制所述第一处理器对所述第二高速缓冲存储器的第一侦听操作;
第二侦听控制电路,耦合到所述第二处理器和所述存储器,并且控制所述第二处理器对所述第一高速缓冲存储器的第二侦听操作;以及
控制器,控制所述第一侦听控制电路和所述第二侦听控制电路,
其中所述控制器:
当所述软件锁定步骤不被执行时,允许所述第一侦听控制电路和所述第二侦听控制电路分别执行所述第一侦听操作和所述第二侦听操作;以及
当所述软件锁定步骤被执行时,禁止所述第一侦听控制电路和所述第二侦听控制电路分别执行所述第一侦听操作和所述第二侦听操作,
其中,所述第一处理器:
执行用于所述软件锁定步骤的第一软件;以及
在所述第一区域中写入所述第一软件的第一执行结果,
其中,所述第二处理器:
执行用于所述软件锁定步骤的第二软件;以及
在所述第二区域中写入所述第二软件的第二执行结果,
其中,将写入所述第一区域的所述第一执行结果与写入所述第二区域的所述第二执行结果进行比较。
2.根据权利要求1所述的半导体器件,
其中,所述控制器将所述第一软件和所述第二软件写入所述第三区域,
其中,所述第一处理器从所述第一区域读取所述第一软件,执行所读取的所述第一软件,以及
其中,所述第二处理器从所述第二区域读取所述第二软件,执行所读取的所述第二软件。
3.根据权利要求2所述的半导体器件,
其中,当所述软件锁定步骤被执行时,防止所述第二处理器对所述第一区域的写入访问,防止所述第一处理器对所述第二区域的写入访问,以及防止所述第一处理器和所述第二处理器对所述第三区域的写入访问。
4.根据权利要求3所述的半导体器件,其中由所述控制器支持的功能安全等级高于由所述第一处理器和所述第二处理器支持的功能安全等级。
5.根据权利要求1所述的半导体器件,
其中,所述第一侦听控制电路禁止执行不满足预定条件的所述第一侦听操作,以及其中,所述第二侦听控制电路禁止执行不满足预定条件的所述第二侦听操作。
6.根据权利要求3所述的半导体器件,还包括耦合到所述存储器的仲裁器,其中,当所述软件锁定步骤被执行时,所述仲裁器:
禁止所述第二处理器在所述第一区域中写入数据;
禁止所述第一处理器在所述第二区域中写入数据;以及
禁止所述第一处理器和所述第二处理器在所述第三区域中写入数据。
7.根据权利要求1所述的半导体器件,还包括:
第一处理单元,执行用于所述软件锁定步骤的第三软件;以及
第二处理单元,执行用于所述软件锁定步骤的第四软件,
其中,所述第一处理器基于所述第一处理单元对所述第三软件的执行结果来执行所述第一软件,以及
其中,所述第二处理器基于所述第二处理单元对所述第四软件的执行结果来执行所述第二软件。
8.根据权利要求1所述的半导体器件,其中,由所述控制器执行所述第一执行结果与所述第二执行结果之间的比较。
9.根据权利要求1所述的半导体器件,
其中,所述第一处理器基于所述第一执行结果产生第一循环冗余码(CRC),其中,所述控制器基于所述第二执行结果生成第二CRC,以及
其中,通过比较所述第一CRC和所述第二CRC来执行所述第一执行结果和所述第二执行结果之间的比较。
10.根据权利要求1所述的半导体器件,还包括比较器,以及
其中,由所述比较器执行所述第一执行结果和所述第二执行结果之间的比较。
11.根据权利要求10所述的半导体器件,还包括耦合到所述存储器的仲裁器,其中,所述比较器被包括在所述仲裁器中。
12.根据权利要求1所述的半导体器件,
其中,所述第一侦听控制电路包括第一保护开启和关闭寄存器,用于设置所述第一侦听操作的允许或禁止,以及
其中,所述第二侦听控制电路包括第二保护开启和关闭寄存器,用于设置所述第二侦听操作的允许或禁止。
13.根据权利要求12所述的半导体器件,其中,所述控制器在所述第一保护开启和关闭寄存器中设置对所述第一侦听操作的允许或禁止,并在所述第二保护开启和关闭寄存器中设置对所述第二侦听操作的允许或禁止。
14.根据权利要求12所述的半导体器件,
其中,在所述第一保护开启和关闭寄存器中设置对所述第一侦听操作的禁止,所述第一侦听控制电路使从所述第一处理器输出的第一请求中包括的指示侦听操作的信号无效,以及
其中,在所述第二保护开启和关闭寄存器中设置对所述第二侦听操作的禁止,所述第二侦听控制电路使从所述第二处理器输出的第二请求中包括的指示侦听操作的信号无效。
15.根据权利要求12所述的半导体器件,其中,由所述第一侦听控制电路和所述第二侦听控制电路支持的功能安全等级高于由所述第一处理器和所述第二处理器支持的功能安全等级。
16.一种控制系统,包括:
根据权利要求1所述的半导体器件;
输入接口,耦合到所述半导体器件,并且接收输入信号;以及
输出接口,耦合到所述半导体器件,
其中,所述半导体器件基于所述输入信号执行操作,以及
其中,所述输出接口输出所述半导体器件的操作结果。
17.一种半导体器件的控制方法,所述半导体器件包括第一处理器、第二处理器、存储器、控制器、第一侦听控制电路和第二侦听控制电路,并且可通过在第一操作和第二操作之间切换来操作,其中在所述第一操作中不执行软件锁定步骤,在所述第二操作中执行软件锁定步骤,所述控制方法包括:
执行所述第一操作;以及
执行所述第二操作,
其中,执行所述第一操作包括:
所述控制器向所述第一侦听控制电路设置允许第一侦听操作;
所述第一处理器对所述第二处理器的高速缓冲存储器执行所述第一侦听操作;
所述控制器向所述第二侦听控制电路设置允许第二侦听操作;以及
所述第二处理器对所述第一处理器的高速缓冲存储器执行所述第二侦听操作,其中,执行所述第二操作包括:
所述控制器向所述第一侦听控制电路设置禁止所述第一侦听操作;
所述第一处理器执行用于所述软件锁定步骤的第一软件;
所述第一处理器在所述存储器的第一区域中写入所述第一软件的第一执行结果;
所述控制器向所述第二侦听控制电路设置禁止所述第二侦听操作;
所述第二处理器执行用于所述软件锁定步骤的第二软件;
所述第二处理器在所述存储器的第二区域中写入所述第二软件的第二执行结果;以及所述控制器将写入所述第一区域的所述第一执行结果与写入所述第二区域的所述第二执行结果进行比较。
18.根据权利要求17所述的半导体器件的控制方法,
其中,所述半导体器件包括第一处理单元和第二处理单元,
其中,执行所述第一软件包括:
所述第一处理单元执行用于所述软件锁定步骤的第三软件;以及
所述第一处理器基于所述第三软件的执行结果来执行所述第一软件,以及其中,执行所述第二软件包括:
所述第二处理单元执行用于所述软件锁定步骤的第四软件;以及
所述第二处理器基于所述第四软件的执行结果来执行所述第二软件。
19.根据权利要求17所述的半导体器件的控制方法,其中,执行所述第二操作还包括:
所述控制器将所述第一软件和所述第二软件写入所述存储器的第三区域中;
所述第一处理器从所述第三区域读取所述第一软件;以及
所述第二处理器从所述第三区域读取所述第二软件。
20.根据权利要求19所述的半导体器件的控制方法,
其中,所述半导体器件包括耦合到所述存储器的仲裁器,以及
其中,执行所述第二操作还包括:
所述仲裁器禁止所述第二处理器在所述第一区域中写入数据;
所述仲裁器禁止所述第一处理器在所述第二区域中写入数据;以及
所述仲裁器禁止所述第一处理器和所述第二处理器在所述第三区域中写入数据。

说明书全文

半导体器件、控制系统和半导体器件的控制方法

[0001] 相关申请的交叉引用
[0002] 2018年6月28日提交的日本专利申请No.2018-123381的公开内容,包括说明书附图摘要,通过引用整体结合于此。

技术领域

[0003] 本公开涉及半导体器件,更具体地涉及半导体器件中的定步骤。

背景技术

[0004] 近来,需要更高等级的功能安全性。汽车安全完整性等级(ASIL)被定义为ISO26262的功能安全性。按照低安全等级的顺序,功能安全等级被定义为质量管理(QM)、ASIL A、ASIL B、ASIL C、ASIL D。在ASIL B等级,必须检测到运行期间出现的故障的90%以上,在ASIL D等级,必须检测到99%以上的故障。例如,符合ISO26262的车载电子系统需要ASIL D。特别是,功能安全性的ASIL D等级需要更高等级的故障检测性能,被称为锁定步骤,用于比较和匹配从两个或更多个基于硬件的操作获得的结果。
[0005] 关于锁定步骤,例如,日本未审专利申请公开No.2014-56396公开了“电子控制装置,其确定多个处理器内核是否正常执行相同的程序,并且确保执行存储器校验的机会”。发明内容
[0006] 根据日本未审查专利申请公开No.2014-56396中公开的技术,可以在双内核锁定步骤的模式和另一模式之间切换,在双内核锁定步骤的模式中功能安全等级高但仅可以进行一次操作,而在所述另一模式中功能安全等级正常但可以分别操作两个内核。然而,当切换到双内核锁定步骤的模式时,需要重置以使两个内核同步,这可能导致大约几毫秒的处理停止时段,这会使性能恶化。因此,需要一种在保持功能安全等级的同时不会使性能劣化的技术。
[0007] 已经做出本公开以解决上述问题,并且在一个方面,公开了一种在保持功能安全等级的同时不会使性能劣化的半导体器件。在另一方面,公开了一种在保持功能安全等级的同时不会使性能劣化的控制系统。在又一方面,公开了一种在保持功能安全等级的同时不会使性能劣化的控制半导体器件的方法。
[0008] 根据一个实施例的半导体器件,包括:第一处理器,包括第一高速缓冲存储器并执行软件锁定步骤;第二处理器,包括第二高速缓冲存储器并执行所述软件锁定步骤;存储器,包括第一区域、第二区域和第三区域;第一侦听控制电路,耦合到所述第一处理器和所述存储器并且控制所述第一处理器对所述第二高速缓冲存储器的第一侦听操作;第二侦听控制电路,耦合到所述第二处理器和所述存储器并且控制所述第二处理器对所述第一高速缓冲存储器的第二侦听操作;以及控制器,控制所述第一侦听控制电路和所述第二侦听控制电路。当所述软件锁定步骤不被执行时,所述控制器允许所述第一侦听控制电路和所述第二侦听控制电路分别执行所述第一侦听操作和所述第二侦听操作。当所述软件锁定步骤被执行时,所述控制器禁止所述第一侦听控制电路和所述第二侦听控制电路分别执行所述第一侦听操作和所述第二侦听操作。所述第一处理器执行用于所述软件锁定步骤的第一软件并且在所述第一区域中写入所述第一软件的第一执行结果。所述第二处理器执行用于所述软件锁定步骤的第二软件并且在所述第二区域中写入所述第二软件的第二执行结果。将写入所述第一区域的第一执行结果与写入所述第二区域的第二执行结果进行比较。
[0009] 在一些方面,可以在保持半导体器件的功能安全等级的同时防止性能劣化。
[0010] 根据本说明书和附图的描述,其他目的和新特征将是显而易见的。

附图说明

[0011] 图1是示出半导体器件1的硬件配置的框图
[0012] 图2是示出可以执行软件锁定步骤的半导体器件2的配置的概要的框图。
[0013] 图3是详细说明SPU 210和220的配置的图。
[0014] 图4是示出半导体器件2的操作的流程图
[0015] 图5是示出半导体器件2的操作的流程图。
[0016] 图6是示出半导体器件2的操作的流程图。
[0017] 图7是说明半导体器件2的操作的图。
[0018] 图8是说明半导体器件2的操作的图。
[0019] 图9是说明半导体器件2的操作的图。
[0020] 图10是说明半导体器件2的操作的图。
[0021] 图11是说明在不执行软件锁定步骤的情况下的设置的图。
[0022] 图12是说明在对其他CPU错误地执行侦听操作的情况下的保护的图。
[0023] 图13是说明在存储器260的地址区域上执行访问的情况下的保护的图。
[0024] 图14是说明允许侦听操作的情况下的操作的图。
[0025] 图15是说明在允许侦听操作的情况下的操作的图。
[0026] 图16是说明在不执行软件锁定步骤的情况下的半导体器件2的操作的图。
[0027] 图17是示出根据一个特定方面的半导体器件3中的数据流的图。
[0028] 图18是示出根据一个方面的半导体器件4的配置的概要的框图。
[0029] 图19是示出半导体器件4中的数据流的图。
[0030] 图20是示出由半导体器件4执行的处理的一部分的流程图。
[0031] 图21是示出半导体器件5中的数据流的图。
[0032] 图22是说明半导体器件5中CPU的程序执行结果的输出的图。
[0033] 图23是说明在半导体器件5中的软件锁定步骤中的程序执行结果的比较的图。
[0034] 图24是示出半导体器件6的配置的框图。
[0035] 图25是说明半导体6中的数据流的图。
[0036] 图26是说明半导体器件6的控制步骤的流程图。
[0037] 图27是示出半导体器件6中的部分处理的流程图。
[0038] 图28是说明读取存储在目标区域中的数据的图。
[0039] 图29是说明比较器252的比较操作的图。

具体实施方式

[0040] 下面将参考附图描述根据本公开的技术构思的实施例。在以下描述中,相同的部件由相同的附图标记表示。它们的名字和功能也是相同的。因此,将不再重复其详细描述。
[0041] 第一实施例
[0042] 参考图1,将描述根据半导体器件1的一个方面执行软件锁定步骤(SWLS)的半导体器件1的配置。图1是示出半导体器件1的硬件配置的框图。在本实施例中,软件锁定步骤是指以下方法:执行其中多个内核具有相同结果的程序,并且通过这些内核以外的比较器件确认结果相同来检测这些内核的故障。更具体地,具有正常功能安全等级的两个内核在应用单元或功能单元上执行程序而不在时钟周期单元上同步,并且比较执行结果。此时,与其中要求对内核的输入在时钟周期单元中相同的双内核锁定步骤不同,在根据本实施例的软件锁定步骤中,对内核的输入时序可以是任意的,并且没有必要同步内核。
[0043] 半导体器件1包括中央处理单元(CPU)10和20、总线30、处理单元40、仲裁器50和存储器60。CPU 10包括内核11、存储器管理单元(MMU)12和高速缓冲存储器13。CPU 20包括内核21、MMU 22和高速缓冲存储器23。CPU 10和20连接到总线30。总线30、处理单元40和存储器60连接到仲裁器50。
[0044] CPU 10和20是普通的QM级处理器,其不需要被应用功能安全性。CPU 10和20可以将数据存储在高速缓冲存储器13和23中。在一个方面,CPU 20可以将数据存储在高速缓冲存储器23中,而不是将数据写入存储器60。在这种情况下,当CPU 20以外的处理器(例如CPU 10)想要操控该数据时,CPU 10需要执行所谓的侦听操作,即访问CPU 20的高速缓冲存储器
23并读取该数据的处理。由于通过执行侦听操作可以在内核11和21之间高速地交换数据,因此与不执行侦听操作的情况相比,可以大大提高诸如计算速度之类的性能。
[0045] 内核11和21包括算术处理电路。MMU 12控制存储器地址的转译、保护存储器60免于访问以及访问高速缓冲存储器13。MMU 22控制存储器地址的转译、保护存储器60免于访问以及访问高速缓冲存储器23。
[0046] 总线30是高速缓冲存储器一致性互连(CCI),并且通过例如CPU 10操控对高速缓冲存储器的访问。总线30对应于ASIL D类(下文中,“ASIL D类”可以适当地称为“支持ASID D”或“ASID D等级”,这同样适用于其他ASIL类)。
[0047] 处理单元40可以是不具有高速缓冲存储器的算术单元。处理单元40可以支持ASIL B类或ASIL D类。
[0048] 仲裁器50具有保护地址的功能,并且由CPU 10和20、总线30和处理单元40仲裁对存储器60的访问。
[0049] 存储器60例如是双倍数据速率(DDR)存储器。在根据一个方面的半导体器件1中,为了防止CPU 10和20之间的侦听操作,例如使用MMU 12和22,防止侦听操作是可设想的。然而,MMU 12和22不能用于防止侦听操作,因为MMU 12和22本身是锁定步骤的对象。备选地,也可以设想配置CPU 10和20使得不能执行侦听操作。在这种情况下,由于甚至当即使执行侦听操作也没有问题时也不能执行侦听操作,因此半导体器件1的性能例如处理延迟可能会恶化。
[0050] 在本实施例中,由软件或硬件的错误引起的故障被称为系统故障,并且由于宇宙射线或老化劣化导致的硬件故障被称为随机硬件故障。支持ASIL D的CPU是指在系统故障和随机硬件故障二者中都单独支持ASIL D类(没有使用软件锁定步骤)的CPU。还假设用于软件锁定步骤的硬件在系统故障方面支持ASIL D类,并且假设用于软件锁定步骤的硬件在随机硬件故障方面不单独支持ASIL D类。例如,如果软件锁定步骤不被执行,则硬件(例如,CPU)可以是QM类。
[0051] 当在图1所示的半导体器件1中执行软件锁定步骤时,可能会出现以下问题。更具体地,可能由于CPU 10的MMU 12的故障而启动不必要的侦听操作,并且可能发生对CPU 20的高速缓冲存储器23的访问。在这种情况下,由于侦听操作,存在以下可能性:CPU 10的故障散布到CPU 20,CPU 10和20的错误计算结果彼此一致,并且检测不到CPU 10的故障,结果,无法实现ASIL D类。
[0052] 在传统电路中,假定通过MMU 12和22防止侦听操作,但MMU 12和22本身是软件锁定步骤的目标,并且不能防止侦听操作。另外,还可以设想对支持QM类并且分别包括MMU 12和22的整个CPU 10和20进行复制的方法,但是该方法可能引起区域的开销变大的问题。此外,近年来,构成诸如CPU、图像处理电路、存储器等的大规模集成电路(LSI)的功能(所谓的知识产权(IP))通常不是在内部制造的,而是在公司外部制造的,并且在某些情况下CPU本身可能不会被修改。另外,由于协议的复杂性,MMU等的区域已经增加,并且MMU等的增加分别损害了传统技术的优点并且增加了时延。
[0053] 另外,在ISO26262中,不能发生诸如在ASIL上不同的类之间的故障传播的干扰,并且需要无干扰(下文中也称为接口自由(FFI:Freedom From Interface))。由于需要在软件锁定步骤实现的ASIL D类与不执行软件锁定步骤的CPU 10和20支持的QM类之间考虑FFI,因此需要处理器控制支持QM类的CPU 10和20,例如支持ASIL D类的单个CPU。
[0054] 因此,将参考图2描述根据一个方面的半导体器件2。图2是示出能够执行软件锁定步骤的半导体器件2的配置的概要的框图。除了半导体器件1的配置之外,半导体器件2还包括侦听保护单元(SPU)210和220以及CPU 230作为用于控制侦听操作的电路。此外,相对于半导体器件1的配置,半导体器件2包括仲裁器250而不是仲裁器50,并且包括存储器260而不是存储器60。
[0055] SPU 210通过CPU 10控制侦听操作。SPU 220通过CPU 20控制侦听操作。SPU 210和220分别支持ASIL D类。
[0056] CPU 230是支持ASIL D类的处理器。在半导体器件2中,从FFI的观点来看,用于实现ASIL D类的控制需要由支持ASIL D类的处理器执行。因此,优选地,CPU 230支持ASIL D类。
[0057] 仲裁器250仲裁对存储器260的访问。例如,当检测到地址异常时,仲裁器250禁止该地址的访问。备选地,仲裁器250可以控制在存储器260内的地址区域上的访问。例如,仲裁器250禁止支持ASIL B的处理器将数据写入被分配给支持ASIL D的处理器的存储区域。
[0058] 存储器260可以是DDR存储器。存储器260包括区域261、262、263和264。区域261是用于支持ASIL B类的硬件的区域。区域262是用于通过CPU 10的软件锁定步骤的区域。区域263是用于通过CPU 20的软件锁定步骤的区域。区域264是用于支持ASIL D类的硬件的区域。
[0059] 用于软件锁定步骤的多个区域262和263被配置为使得每个CPU 10和20可以专访问这些区域。支持ASIL B类的硬件(例如,处理单元40)被配置为不可访问区域262、263和264以满足FFI的要求。此外,由于类似的原因,用于软件锁定步骤的目标CPU 10和20被配置为不可访问由支持ASIL D类的硬件所使用的区域264。在ASIL D类的功能安全性方面,需要通常与半导体器件2中的其他电路一起使用的部件(例如,总线)支持ASIL D。这些部件被假定通过双内核锁定步骤、错误检测码(EDC)功能、错误校正码(ECC)等来支持ASIL D。
[0060] [侦听保护单元]
[0061] 参照图3,将描述根据一个方面的SPU 210和220的配置。图3是用于详细说明SPU 210和220的配置的图。在一个方面,SPU 210和220通过诸如双内核锁定步骤的机制来支持ASIL D类。
[0062] SPU 210和220包括侦听比特强制无效模块310以及保护开启和关闭寄存器320。CPU 10的输出可以被输入到SPU 210的侦听比特强制无效模块310,并且CPU 20的输出可以分别被输入到SPU 220的侦听比特强制无效模块310。侦听比特强制无效模块310的输出可以被输入到总线30。
[0063] 在一个方面,如果保护开启和关闭寄存器320被设置为关闭,则SPU 210和220直接从主设备(例如,支持ASIL D类的CPU 230)传递信号。在另一方面,如果保护开启和关闭寄存器320被设置为开启,则SPU 210和220监视指示包括在来自CPU 10和20的请求中的侦听操作的信号、使信号无效并将请求发送到总线30。
[0064] 在根据本实施例的半导体器件2中,SPU 210和220执行侦听操作的控制(侦听操作的访问保护)。SPU 210和220可以通过不提供除侦听操作的访问保护功能之外的功能来减少时延的增加。此外,当软件锁定步骤不被执行时,可以通过SPU 210和220允许侦听操作来增强半导体器件2的性能。
[0065] [控制步骤]
[0066] 将参考图4至图6描述半导体器件2的控制步骤。图4至图6是示出半导体器件2的操作的流程图。
[0067] 如图4所示,在步骤S410中,支持ASIL D类的CPU 230向SPU 210和220设置禁止侦听操作以进行软件锁定步骤。例如,CPU 230将保护开启和关闭寄存器320设置为关闭。另外,CPU 230向仲裁器250设置禁止地址。例如,CPU 230设置地址使得CPU 10可以访问区域262并禁止CPU 20的访问。CPU 230设置地址使得CPU 20可以访问区域263并禁止CPU 10的访问。区域264可由CPU 230访问,并且对CPU 10和20禁止。
[0068] 在步骤S415中,CPU 230将用于软件锁定步骤的程序和数据写入存储器260的区域264中。
[0069] 在步骤S420中,CPU 230基于对存储器260的写入的完成来启动执行软件锁定步骤的CPU 10和20。例如,CPU 230经由仲裁器250和总线30向CPU 10和20发送用于启动软件锁定步骤的指令。在步骤S425中,当检测到接收到指令时,CPU 10和20启动。
[0070] 在步骤S430中,CPU 10访问存储器260,读取用于软件锁定步骤的程序和数据,并且执行该程序。类似地,在步骤S431中,CPU 20访问存储器260,读取程序和数据,并且执行该程序。注意,步骤S430中的读取和/或执行的时序以及步骤S431中的读取和/或执行的时序不需要相同,并且可以不同。
[0071] 在步骤S435中,CPU 10将执行程序的结果写入在存储器260中保留的区域262中。在步骤S436中,CPU 20将执行程序的结果写入在存储器260中保留的区域263中。注意,步骤S435中的写入时序和步骤S436中的写入时序不需要相同,并且可以不同。
[0072] 在步骤S440中,CPU 230等待直到检测到CPU 10和20的处理已经完成。当完成执行结果的写入时,CPU 10和20经由总线30和仲裁器250向CPU 230通知执行结果的写入的完成。
[0073] 在步骤S445中,当CPU 230接收到CPU 10和20的执行结果的写入完成的通知时,CPU 230访问区域262和263以读取执行结果,并将通过CPU 10的执行结果与通过CPU 20的执行结果进行比较。在一个方面,比较的单元例如是应用单元或功能单元。
[0074] 在步骤S450中,CPU 230确定这些执行结果是否彼此一致。如果CPU 230确定这些执行结果彼此一致(步骤S450中的“是”),则在步骤S455中,CPU 230确定执行结果对应于ASIL D等级,将执行结果输出到预定目的地,并且结束软件锁定步骤。基于执行结果彼此一致的事实执行预定处理。否则(步骤S450中的“否”),CPU 230确定执行结果不对应于ASIL D等级,并输出错误。
[0075] 图5是示出仲裁器250的保护操作的图。在步骤S510中,仲裁器250等待事务。
[0076] 在步骤S520,仲裁器250将关于事务和指定地址的信息与主信息(由CPU 230注册的信息)和基于事务接收的地址进行比较。
[0077] 在步骤S530中,仲裁器250基于CPU 230的设置确定是否需要保护存储器260中的地址。例如,仲裁器250可以确定CPU 10是否正在请求访问未对CPU 10授权的地址。如果仲裁器250判断需要地址保护(步骤S530中的“是”),则仲裁器250将控制切换到步骤S540。否则(步骤S530中的“否”),仲裁器250将控制返回到步骤S510。
[0078] 在步骤S540中,仲裁器250向CPU 10返回错误响应,并且不通过该事务。仲裁器250还可以向CPU 230提供预定的错误信号。
[0079] 图6是示出由SPU 210执行的部分处理的流程图。注意,SPU 220可以执行相同的处理。
[0080] 在步骤S610,SPU 210等待事务。在步骤S620,SPU 210确定该事务是否是通过CPU 10的侦听操作。例如,基于事务中包括的信号(下面描述的ARSNOOP信号)的值来进行该确定。
[0081] 如果SPU 210确定该事务是侦听操作(步骤S630中的“是”),则在步骤S640中,SPU 210将事务转换为不是侦听操作的事务,通过该事务,并且将该事务发送到总线30。如果CPU 
10发出请求错误的侦听操作的事务,因为事务被转换成不请求侦听操作的事务,所以这可以防止对CPU 20的高速缓冲存储器的错误的侦听操作。
[0082] 另一方面,如果确定事务不是侦听操作(步骤S630中的“否”),则SPU 210将控制返回到步骤S610。然后重复该处理。
[0083] 图7至图10是用于说明半导体器件2的操作的图。参考图7,在一个方面,CPU 230禁止通过SPU 210和220的侦听操作以执行软件锁定步骤。例如,CPU 230在侦听比特强制无效模块310中设置指示SPU 210和220的侦听操作被禁止的标志。
[0084] CPU 230向仲裁器250设置保护地址。更具体地,CPU 230将保留存储器260中的区域262、263和264并提供对每个区域的访问。例如,区域262被设置为可由CPU 10和230访问,并且禁止CPU 20对区域262的访问。区域263被设置为可由CPU 20和230访问,并且禁止CPU 10对区域263的访问。在区域264中,启用通过CPU 230的数据写入,并且禁止通过CPU 10和
20的数据写入。另外,CPU 230分别在存储器260的预定区域262和263中存储软件锁定步骤所需的程序和数据。在一个方面,这样的配置可以防止:由一个处理器生成的错误数据被另一个处理器使用,并且不会检测到通过使比较结果相同而导致的错误。
[0085] 参考图8,CPU 230启动CPU 10和20以执行软件锁定步骤(步骤S420)。在一个方面,CPU 230分别经由仲裁器250、总线30和SPU 210和220将启动指令发送到CPU 10和20。在另一方面,可以为CPU 230提供单独的总线以将激活命令发送到CPU 10和20。
[0086] 参考图9,CPU 10和20执行产生相同结果的程序,并将执行结果分别写入预定区域262和263(步骤S430和S431)。
[0087] 参考图10,CPU 230从区域262和263读取执行结果,并比较执行结果(步骤S445)。如果CPU 230确定执行结果彼此一致,则CPU 230可以在区域264的预定地址处存储指示执行结果彼此一致的数据。如果执行结果彼此不一致,则CPU 230可以在区域264的预定地址处存储指示CPU 10或20的故障或者其他错误的数据。
[0088] 图11是用于说明软件锁定步骤不被执行时的设置的图。在另一方面,如果CPU 10和20不执行软件锁定步骤,则CPU 230通过将SPU 210和220的设置改变为非软件锁定步骤来允许SPU 210和220的侦听操作。
[0089] [错误执行侦听操作时的保护]
[0090] 图12是用于说明当在另一CPU上错误地执行侦听操作时的保护的图。根据一个方面的半导体器件2可以使用AXI一致性扩展(ACE)协议,其中根据高级可扩展接口(AXI)标准来扩展总线。根据AXI标准,ARDOMAIN信号和ARSNOOP信号被添加到构成接口的五个信道之中的读取数据信道。ARSNOOP信号针对在读取和写入信道中共享的事务指示侦听事务的类型。ARDOMAIN信号指示在侦听事务中将侦听哪些主设备以及哪些主设备将被视为命令阻止事务。
[0091] 当执行侦听操作时,事务中的ARDOMAIN信号为二进制的01或10,或者ARSNOOP信号不是0。当这样的信号到来时,ARSNOOP信号被强制为0。通过这样做,事务变为不使用高速缓冲存储器的事务,并且可以防止侦听操作的发生。
[0092] 这同样适用于写入事务。对侦听操作的访问是正常访问,并且如果地址异常,则通过仲裁器250阻止该访问。如果数据错误,则CPU230可以在比较软件锁定步骤的处理的执行结果的处理中基于比较结果来检测故障。
[0093] [地址异常时的保护]
[0094] 图13是用于说明当执行对存储器260中的地址区域的访问时的保护的图。在一个方面,当仲裁器250检测到对存储器260中的地址区域的访问时,仲裁器250禁止该访问并向提供导致该访问的事务的处理器返回错误响应。更具体地,仲裁器250监视事务的地址,并在仲裁器250检测到事务的发布者不能访问该地址时阻止对该地址的访问。发布者可以通过附加到事务的标识信息来被标识。标识信息可以是例如AxID或其他值。是否允许对该地址的访问例如被预先在CPU 230中设置。
[0095] [用于允许侦听操作的设置]
[0096] 图14是用于说明在允许侦听操作的情况下的操作的图。在一个方面,CPU 230经由仲裁器250和总线30将用于允许通过SPU 210和220的侦听操作的信号发送到SPU 210和220。在接收到信号时,SPU 210和220将保护开启和关闭寄存器320的设置设置为关闭(图
3)。当设置被设置为关闭时,如果检测到在来自CPU 10或20的请求中包括的表示侦听操作的信号(例如,ARSNOOP信号),则侦听比特强制无效模块310将该信号原样发送到仲裁器
250,以便执行侦听操作。
[0097] 图15是示出在允许侦听操作的情况下的操作的图。在一个方面,如果允许侦听操作,则CPU 10可以对高速缓冲存储器23进行侦听操作,并且CPU 20可以对高速缓冲存储器13进行侦听操作。另外,允许CPU 10和20仅访问未被用于软件锁定步骤的存储器260的区域
261,并且禁止CPU 10和20对其他区域262、263和264的访问。
[0098] 图16是用于说明在软件锁定步骤未被执行的情况下半导体器件2的操作的图。在一个方面,仲裁器250在软件锁定步骤未被执行时对区域262、263和264提供地址保护。因此,CPU 10不能访问区域262、263和264。
[0099] 如上所述,根据本实施例的半导体器件2包括用于防止执行错误侦听操作的SPU 210和220、能够保护地址的仲裁器250以及用于控制软件锁定步骤的支持ASIL D类的CPU 
230。利用这样的配置,可以在半导体器件2中实现使用软件锁定步骤达到的ASIL D。如图3所示,根据本实施例的SPU 210和220由简单配置构成,并且不需要明显增加半导体器件2的区域且不增加时延。由于软件锁定步骤由CPU 230控制,因此即使不能改变CPU 10和20,也可以引入软件锁定步骤。
[0100] 第二实施例
[0101] 在下文中,将描述第二实施例。根据本实施例的半导体器件与具有一种IP内核的第一实施例的不同之处在于,在提供两种类型的CPU作为是所谓IP内核的示例的CPU时,可以执行软件锁定步骤。
[0102] 图17是示出根据一个方面的半导体器件3中的数据流的图。在半导体器件3中,CPU 230从存储器260的区域61读取数据和向存储器260的区域61写入数据。CPU 10和20从区域
61读取数据。当执行软件锁定步骤时,CPU 10向存储器260的区域62写入数据和从存储器
260的区域62读取数据,并将数据写入存储器260的区域64。当执行软件锁定步骤时,CPU 20从存储器260的区域63读取数据和向存储器260的区域63写入数据,并将数据写入存储器
260的区域65。CPU 230如比较器231那样将区域64和65中写入的数据进行比较,并且当这些数据彼此一致时,将该数据用作ASIL D类的数据。
[0103] 图17示出了将软件锁定步骤应用于一种类型的IP内核的情况。如果软件锁定步骤被连续应用于两种类型的IP内核,则需要两个比较处理,更具体地,需要用于执行软件锁定步骤两次的数据通信的带宽和比较时间。因此,在本实施例中,将描述当对两种类型的IP内核执行软件锁定步骤时抑制带宽增加和比较时间增加的配置。
[0104] 图18是示出根据一个方面的半导体器件4的配置的概要的框图。与上述相同的组件用相同的参考标号表示。该组件的功能是相同的。因此,将不再重复对该组件的描述。
[0105] 除了图2所示的组件之外,半导体器件4还包括图像处理单元70和71。图像处理单元70和71连接到仲裁器250。图像处理单元70和71是不支持ASIL D的IP的示例(例如,支持ASIL B类的图像处理单元),但是不支持ASIL D的IP不限于图像处理单元。
[0106] 在软件锁定步骤中,根据本实施例的半导体器件4将第一组IP(即,图像处理单元70和71)的计算结果传递给第二组IP(即,CPU 10和20),而无需比较计算结果。因此,省略了一个比较处理。
[0107] 图19是示出半导体器件4中的数据流的图。当CPU 230将数据写入存储器260的区域61时,图像处理单元70和71从区域61读取该数据。图像处理单元70将数据写入区域62并从区域62读取数据。图像处理单元71向区域63写入数据和从区域63读取数据。
[0108] 此外,图像处理单元70将用于软件锁定步骤的程序的执行结果写入区域64中。当写入完成时,图像处理单元70向CPU 10通知写入完成,并启动CPU 10以执行用于软件锁定步骤的程序。类似地,图像处理单元71将用于软件锁定步骤的程序的执行结果写入区域65中。当写入完成时,图像处理单元71向CPU 20通知写入完成,并启动CPU 20以执行用于软件锁定步骤的程序。
[0109] CPU 10从区域64读取数据。CPU 10向区域62写入数据和从区域62读取数据。此外,CPU 10使用图像处理单元70的执行结果执行用于软件锁定步骤的程序,并将执行结果写入区域64。CPU 20从区域65读取数据。CPU 20向区域63写入数据和从区域63读取数据。此外,CPU 20使用图像处理单元71的执行结果执行用于软件锁定步骤的程序,并将执行结果写入区域65。
[0110] CPU 230如比较器231那样将写入在区域64和65中的执行结果进行比较,并且当执行结果彼此一致时,将上述数据用作ASIL D类的数据。
[0111] 区域62和64可以由图像处理单元70和CPU 10专门使用。区域63和65可以由图像处理单元71和CPU 20专门使用。
[0112] 这里,将参考图20描述使用半导体器件4的方面的示例。图20是示出由半导体器件4执行的部分处理的流程图。半导体器件4被连接到用于拍摄车辆周边的相机。
[0113] 在步骤S2010中,半导体器件4从相机接收图像信号。在步骤S2020中,图像处理单元70(或图像处理单元71)执行失真校正或其他图像处理。图像处理的结果存储在区域64(或区域65)中。
[0114] 在步骤S2030中,CPU 10(或CPU 20)确定是否已检测到人。通过使用诸如面部识别、特征量计算等已知技术来实现对人的检测。将检测结果写入区域64(或区域65)。如果CPU 10(或CPU 20)确定已经检测到人(步骤S2030中的“是”),则在步骤S2040中,支持ASIL D等级的CPU 230将用于激活车辆制动的信号发送到制动控制设备。此后,车辆停止。
[0115] 另一方面,当CPU 10(或CPU 20)确定未检测到人时(步骤S2030中的“否”),则在步骤S2050中,CPU 10、20和230中的任何一个执行另一预定处理。
[0116] 如上所述,根据本实施例,当存在两种类型的CPU、图像处理单元和作为软件锁定步骤的目标的其他IP时,由第一组IP执行的程序执行结果被用于执行通过第二组IP的软件锁定步骤的程序,而不比较执行结果。结果,由于比较处理可以被限制为一次,因此不需要用于数据读取、数据写入和用于执行结果的第一次比较的比较处理的时间,并且可以防止增加半导体器件4的处理时间。
[0117] 第三实施例
[0118] 在下文中,将描述第三实施例。在上述每个实施例中,比较用于软件锁定步骤的程序的执行结果。另一方面,本实施例与上述实施例的不同之处在于,比较执行结果以外的数据。下面将描述比较基于执行结果的循环冗余码(CRC)的情况,但是要比较的对象不限于CRC,并且可以是例如哈希等,其中在实现ASIL D类的故障检测率的同时减少字节数。
[0119] 图21是示出半导体器件5中的数据流的图。在一个方面,CPU 230将数据写入区域61中。CPU 10从区域61读取数据,并向区域62写入数据和从区域62读取数据。CPU 20从区域
61读取数据,并向区域63写入数据和从区域63读取数据。
[0120] CPU 10使用从区域62读出的数据执行用于软件锁定步骤的程序,根据用于软件锁定步骤的程序的执行结果生成CRC,并且将生成的CRC写入区域64中。CPU 20使用从区域63读取的数据执行用于软件锁定步骤的程序,并且将用于软件锁定步骤的程序的执行结果写入区域65中。
[0121] CPU 230从作为比较器231的区域65读取执行结果,并根据读取的执行结果生成CRC。此外,比较器231从区域64读取CRC,并将读取的CRC与生成的CRC进行比较。如果这些CRC彼此一致,则CPU 230使用上述数据作为ASIL D的数据。
[0122] 例如,对于256字节的数据,CRC的数据大小是2字节,但是数据大小不限于此。
[0123] 将参考图22和图23描述半导体器件5的操作。图22是用于说明半导体器件5中CPU的程序执行结果的输出的图。在一个方面,CPU中的任何一个(例如,CPU 10)执行用于软件锁定步骤的程序,从用于软件锁定步骤的程序的执行结果生成CRC,并且将CRC写入区域262(对应于区域64)。另一个CPU(例如,CPU 20)执行用于软件锁定步骤的程序,并且将程序的执行结果写入区域263(对应于区域65)。
[0124] 图23是用于说明半导体器件5中的用于软件锁定步骤的程序的执行结果的比较的图。CPU 230从区域262读取CRC,从区域263读取数据,并从读取的数据计算CRC。CPU 230如比较器231那样将读取的CRC与计算的CRC进行比较。
[0125] 如上所述,根据本实施例,CRC是从两个CPU输出的执行结果之一计算的,并且被写入存储器260的预定区域中。因此,作为对存储器260的访问,执行CRC和执行结果的写入、CRC和执行结果的读取以及在读取的CRC和基于执行结果计算的CRC之间的比较之后从区域65对数据的读取。根据这样的配置,与不使用CRC时相比,带宽可以增加1.5倍,同时保持ASIL D类的故障检测率。
[0126] 第四实施例
[0127] 在下文中,将描述第四实施例。根据第四实施例的半导体器件6与上述实施例的不同之处在于,由仲裁器进行软件锁定步骤中的执行结果的比较。
[0128] 图24是示出半导体器件6的配置的框图。与半导体器件2中所示的配置相比,半导体器件6包括仲裁器251来代替仲裁器250以及处理单元41来代替处理单元40。仲裁器251包括比较器252。比较器252具有用于比较目标地址、范围和数据库地址的寄存器以进行比较。处理单元41连接到仲裁器251。处理单元41支持例如ASIL D类并且可以包括高速缓冲存储器。在一个方面,处理单元41可以是CPU。
[0129] 图25是用于说明半导体器件6中的数据流的图。在一个方面,当CPU 230在区域61中写入数据时,CPU 10和20分别访问区域61并读取数据。CPU 10将数据写入区域62中,并且CPU 20将数据写入区域63中。
[0130] CPU 10从区域62读取数据,执行用于软件锁定步骤的程序,并将用于软件锁定步骤的程序的执行结果写入区域64。CPU 20从区域63读取数据,执行用于软件锁定步骤的程序,并将执行结果写入区域65。
[0131] 当比较器252从处理单元41接收到读取请求时,比较器252根据接收的读取请求产生两个读取请求。比较器252根据产生的读取请求访问区域64和65,并读出执行结果。此外,比较器252比较读取的执行结果,并且当确认比较结果彼此一致时,将读取的执行结果发送到处理单元41。
[0132] 图26是用于说明半导体器件6的控制步骤的流程图。在步骤S2610中,CPU 10和20执行用于软件锁定步骤的程序,并将执行结果分别写入存储器260的预定区域62和63。
[0133] 在步骤S2620中,CPU 230访问仲裁器251以进行比较器252的设置。例如,CPU 230在寄存器中设置比较目标地址、范围和数据库地址以用于比较。
[0134] 在步骤S2630中,支持ASIL D类的处理单元41从预定区域读取数据。
[0135] 在步骤S2640中,比较器252基于来自处理单元41的请求分别从区域64和65读取数据。例如,比较器252从区域64读取CRC,并从区域65读取执行结果。通过CPU 10执行用于软件锁定步骤的程序来生成CRC。
[0136] 在步骤S2650中,比较器252根据读取数据(执行结果)计算CRC,并将计算出的CRC与读取的CRC进行比较。
[0137] 在步骤S2660中,比较器252确定这些CRC是否彼此一致。如果比较器252确定CRC彼此一致(步骤S2660中的“是”),则在步骤S2670中,比较器252将执行结果发送到发出请求的处理单元41。否则(步骤S2660中的“否”),在步骤S2680中,比较器252执行预定的错误输出处理以通知错误。
[0138] 将参考图27进一步描述半导体器件6的操作。图27是示出半导体器件6中的部分处理的流程图。
[0139] 在步骤S2710中,半导体器件6执行图26所示的比较器的处理。例如,比较器252基于从CPU 230发送的设置数据来设置用于管理对存储器260的访问的地址。
[0140] 在步骤S2715中,比较器252等待来自CPU 230的请求事务。
[0141] 在步骤S2720中,比较器252将接收到的请求事务中包括的地址与为CRC比较设置的地址进行比较。在步骤S2725中,比较器252确定这些地址是否彼此一致。当比较器252确定这些地址彼此一致时,比较器252执行步骤S2640和后续步骤的处理。如果这些地址彼此不一致,则比较器252确定针对该事务的请求是正常数据读取请求,并且在步骤S2735中,比较器252执行正常数据读取处理。
[0142] 图28是用于说明存储在目标区域中的数据的读取的图。在一个方面,半导体器件6的处理单元41将读取请求发送到比较器252。比较器252根据接收到的读取请求产生两个读取请求,用于访问存储器260的预定区域。此外,比较器252基于产生的两个读取请求访问区域262(对应于区域64)和区域263(对应于区域65)。
[0143] 图29是用于说明比较器252的比较操作的图。在一个方面,比较器252基于从区域262读取的数据和从区域263读取的数据执行比较处理。在一个方面,比较器252可以将通过CPU 10的软件锁定步骤的程序的执行结果与通过CPU 20的软件锁定步骤的程序的执行结果进行比较。在另一方面,如果其中一个CPU已从执行结果生成CRC,则比较器252可从存储器260读取CRC,从另一CPU的执行结果生成CRC,并将读取的CRC与生成的CRC进行比较。在确定CRC彼此一致之后,比较器252将执行结果发送到处理单元41。
[0144] 如上所述,根据本实施例,仲裁器250包括比较器252。比较器252访问存储器260,写入和读取数据,从而与用于正常操作的带宽量相比,可以在不执行软件锁定步骤(两次写入+两次读取)的情况下减少用于访问存储器260的带宽量(两次写入+两次读取),以避免由于比较处理而导致的CPU资源的减少。
[0145] 上述实施例可以与第三实施例组合。以这种方式,存储器的带宽可以基本上减少1倍,并且处理单元41不需要解码CRC,从而提高了处理速度。
[0146] [实施例的效果]
[0147] 根据上述每个实施例中的软件锁定步骤,功能安全等级为正常等级的CPU 10和20在应用单元或功能单元中执行处理而无需彼此同步,并且支持ASIL D类的CPU 230比较处理结果。这消除了对从正常操作模式切换到用于执行双内核锁定步骤的模式所需的同步内核的复位处理等的需要,并且消除了几毫秒的处理停止时间的发生。
[0148] 在上述实施例中,主要使用ASIL D等级或ASIL B等级的示例,但是根据本公开的技术构思可以应用于其他功能安全等级,例如ASIL A等级或ASIL C等级。
[0149] 尽管已经基于实施例具体描述了由本发明人做出的发明,但是本发明不限于上述实施例,并且不用说,在不脱离其范围的情况下可以进行各种改变。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈