本技术涉及芯片技术,尤其涉及芯片系统的错误识别方法、装置、芯片及交通设备。
背景技术:
1、汽车、轨道交通、航空交通等领域对系统的安全性要求非常高,要求芯片系统内的计算处理单元具有高度的可靠性和安全性,以增加芯片系统的容错性和冗余性;并且能够在芯片系统出现错误时触发容错方案,以确保芯片系统稳定运行。基于此,衍生了双核锁步技术。
2、双核锁步技术是采用两个处理器核,两个处理器核获取到完全相同的数据和指令,并基于获取的数据和指令分别执行相应的运算,每个处理器核得到对应的运算结果;通过比较两个处理器核的运算结果是否一致,判断芯片系统是否发生错误。但是,双核锁步技术需要双倍的硬件资源和计算资源。
技术实现思路
1、本技术实施例提供一种芯片系统的错误识别方法、装置、芯片及交通设备,能够利用较少的硬件资源和计算资源确保芯片系统稳定运行。
2、本技术实施例的技术方案是这样实现的:
3、第一方面,本技术实施例提供一种芯片系统的错误识别方法,包括:
4、芯片系统中的第一处理器获取第一指令序列;
5、响应于针对所述第一指令序列的锁步标识位有效,生成第二指令序列;所述第二指令序列中的指令与所述第一指令序列中的指令完全相同;
6、添加用于标识所述第一指令序列的第一标识符,以及用于标识所述第二指令序列的第二标识符;所述第一标识符与所述第二标识符不同;
7、执行所述第一指令序列中的指令,得到第一执行结果,存储所述第一执行结果和所述第一标识符;
8、执行所述第二指令序列中的指令,得到第二执行结果,存储所述第二执行结果和所述第二标识符;
9、基于所述第一执行结果和所述第二执行结果,识别所述芯片系统是否发生错误。
10、在一些可选实施例中,所述响应于针对所述第一指令序列的锁步标识位有效,生成第二指令序列,包括:
11、若所述锁步标识位有效,则复制所述第一指令序列,得到所述第二指令序列。
12、在一些可选实施例中,所述存储所述第一执行结果和所述第一标识符,包括:
13、将所述第一执行结果和所述第一标识符存储至所述芯片系统中的第一组寄存器。
14、在一些可选实施例中,所述存储所述第二执行结果和所述第二标识符,包括:
15、将所述第二执行结果和所述第二标识符存储至所述芯片系统中的第二组寄存器。
16、在一些可选实施例中,所述基于所述第一执行结果和所述第二执行结果,识别所述芯片系统是否发生错误,包括:
17、比较所述第一执行结果和所述第二执行结果;
18、若所述第一执行结果与所述第二执行结果完全相同,则识别所述芯片系统未发生错误;
19、若所述第一执行结果与所述第二执行结果不同,则识别所述芯片系统发生错误。
20、在一些可选实施例中,所述添加用于标识所述第一指令序列的第一标识符,以及用于标识所述第二指令序列的第二标识符之后,所述方法还包括:
21、将所述芯片系统中的寄存器划分为第一组寄存器和第二组寄存器。
22、在一些可选实施例中,若识别所述芯片系统未发生错误,所述方法还包括:
23、合并所述第一组寄存器和所述第二组寄存器,得到通用寄存器组;
24、获取第三指令序列;
25、执行所述第三指令序列,得到第三执行结果;
26、存储所述第三执行结果至所述通用寄存器组。
27、第二方面,本技术实施例提供一种芯片系统的错误识别装置,所述装置包括:
28、获取模块,用于获取第一指令序列;
29、生成模块,用于响应于针对所述第一指令序列的锁步标识位有效,生成第二指令序列;所述第二指令序列中的指令与所述第一指令序列中的指令完全相同;
30、添加模块,用于添加用于标识所述第一指令序列的第一标识符,以及用于标识所述第二指令序列的第二标识符;所述第一标识符与所述第二标识符不同;
31、执行模块,用于执行所述第一指令序列中的指令,得到第一执行结果,存储所述第一执行结果和所述第一标识符;执行所述第二指令序列中的指令,得到第二执行结果,存储所述第二执行结果和所述第二标识符;
32、识别模块,用于基于所述第一执行结果和所述第二执行结果,识别所述芯片系统是否发生错误。
33、在一些可选实施例中,生成模块,用于若所述锁步标识位有效,则复制所述第一指令序列,得到所述第二指令序列。
34、在一些可选实施例中,执行模块,用于将所述第一执行结果和所述第一标识符存储至所述芯片系统中的第一组寄存器;将所述第二执行结果和所述第二标识符存储至所述芯片系统中的第二组寄存器。
35、在一些可选实施例中,识别模块,用于比较所述第一执行结果和所述第二执行结果;
36、若所述第一执行结果与所述第二执行结果完全相同,则识别所述芯片系统未发生错误;
37、若所述第一执行结果与所述第二执行结果不同,则识别所述芯片系统发生错误。
38、在一些可选实施例中,添加模块,还用于将所述芯片系统中的寄存器划分为第一组寄存器和第二组寄存器。
39、在一些可选实施例中,若识别所述芯片系统未发生错误,添加模块,还用于合并所述第一组寄存器和所述第二组寄存器,得到通用寄存器组。
40、相应的,获取模块,用于获取第一指令序列。
41、执行模块,用于执行所述第三指令序列中的指令,得到第三执行结果,存储所述第三执行结果至所述通用寄存器组。
42、第三方面,本技术实施例提供一种芯片,所述芯片包括
43、至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
44、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。
45、第四方面,本技术实施例提供一种交通设备上的部件,所述部件包括芯片,所述芯片能够执行上述的方法。
46、第五方面,本技术实施例提供一种交通设备,所述交通设备包括芯片,所述芯片能够执行上述的方法。
47、第六方面,本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现上述的方法。
48、本技术实施例提供的芯片系统的错误识别方法包括:芯片系统中的第一处理器获取第一指令序列;响应于针对所述第一指令序列的锁步标识位有效,生成第二指令序列;所述第二指令序列中的指令与所述第一指令序列中的指令完全相同;添加用于标识所述第一指令序列的第一标识符,以及用于标识所述第二指令序列的第二标识符;所述第一标识符与所述第二标识符不同;执行所述第一指令序列中的指令,得到第一执行结果,存储所述第一执行结果和所述第一标识符;执行所述第二指令序列中的指令,得到第二执行结果,存储所述第二执行结果和所述第二标识符;基于所述第一执行结果和所述第二执行结果,识别所述芯片系统是否发生错误。本技术实施例在芯片系统中生成与第一指令序列完全相同的第二指令序列,由一个译码单元分别执行第一指令序列和第二指令序列,得到对应的第一执行结果和第二执行结果;通过一个计算单元比较第一执行结果和第二执行结果,识别芯片系统是否发生错误。因此,本技术实施例只需要包括译码单元和计算单元的一个处理器,便能够识别芯片系统是否发生错误,确保芯片系统稳定运行,节省了硬件资源和计算资源。