本公开涉及硬件检测,尤其涉及一种硬件错误检测方法、装置及系统、错误收集器组件、芯片组、odm工具。
背景技术:
1、众所周知,在服务器领域对软硬件组成系统的可靠性(reliability)、可用性(availability)和可服务性(serviceability)要求极高,这也是业界经常提到的ras技术的三大目标。其中,可服务性要求包含需要系统能够提供便利的硬件检测诊断功能,如系统日志、动态检测等方法与手段来方便管理和维护人员对硬件相关的错误进行检测和诊断,从而及早地发现错误,再根据相关的错误状态进行进一步的维护操作。
2、针对上述硬件检测诊断功能,现有的硬件检测手段并不适用于非服务器的片上系统(system on chip,soc)产品领域。
技术实现思路
1、有鉴于此,本公开提出了一种硬件错误检测方法、装置及系统、错误收集器组件、芯片组、odm工具,从而能够进行适用于soc的硬件错误诊断。
2、根据本公开的第一方面,提供了一种硬件错误检测方法,应用于片上系统soc的芯片组中的错误收集器组件,所述硬件错误检测方法包括:响应于所述soc的硬件发生错误,接收表示所述soc的硬件发生错误的硬件错误信息;将所述硬件错误信息存储到目标存储部件中,其中,odm工具根据所述目标存储部件所存储的硬件错误信息进行错误诊断。
3、在一种可能的实现方式中,将所述硬件错误信息存储到目标存储部件中包括:将所接收到的硬件错误信息记录到所述soc的寄存器中;在符合读取条件的情况下,读取所述寄存器所记录的硬件错误信息;将所读取的硬件错误信息存储到所述目标存储部件中。
4、在一种可能的实现方式中,所述符合读取条件包括:所述寄存器记录了预定数量个硬件错误信息;或者自前一次将所读取的硬件错误信息存储到所述目标存储部件起经过了预定时间。
5、在一种可能的实现方式中,将所述硬件错误信息存储到目标存储部件中包括:响应于接收到硬件错误信息,将所接收到的硬件错误信息存储到所述目标存储部件中。
6、在一种可能的实现方式中,所述硬件错误检测方法还包括:向嵌入式控制器通知所述soc的硬件发生了错误,以触发所述错误收集器组件与所述嵌入式控制器之间的交互,相应地,经由所述错误收集器组件与所述嵌入式控制器之间的交互,将所述硬件错误信息存储到所述嵌入式控制器的存储部件中。
7、在一种可能的实现方式中,向嵌入式控制器通知所述soc的硬件发生了错误,以触发所述错误收集器组件与所述嵌入式控制器之间的交互包括:改变所述soc的通用输入输出引脚gpio引脚的状态,以向所述嵌入式控制器通知所述soc的硬件发生了错误,从而触发所述错误收集器组件与所述嵌入式控制器彼此经由i2c总线进行交互。
8、在一种可能的实现方式中,将所述硬件错误信息存储到目标存储部件中包括:将所述硬件错误信息存储到所述soc端的存储部件中。
9、在一种可能的实现方式中,所述soc的硬件发生错误包括以下至少一项:所述soc的cpu中的核发生错误;所述cpu中的非核硬件发生错误;所述芯片组中的高速串行计算机扩展总线pcie发生错误;所述芯片组中的动态随机存取存储器控制器dramc发生错误。
10、在一种可能的实现方式中,所述硬件错误检测方法还包括:接收所述odm工具所发送的用于读取所述嵌入式控制器的存储部件中所存储的硬件错误信息的读取命令;将所述读取命令发送至所述嵌入式控制器;接收所述嵌入式控制器所发送的与所述读取命令相匹配的硬件错误信息,其中,所述odm工具能够读取该硬件错误信息并根据该硬件错误信息进行针对所述soc的硬件错误诊断。
11、在一种可能的实现方式中,所述硬件错误检测方法还包括:接收所述odm工具所发送的用于读取所述soc端的存储部件中所存储的硬件错误信息的读取命令;响应于所述读取命令,从所述soc端的存储部件读取与所述读取命令相匹配的硬件错误信息,其中,所述odm工具能够读取该硬件错误信息并根据该硬件错误信息进行针对所述soc的硬件错误诊断。
12、根据本公开的第二方面,提供了一种硬件错误检测方法,应用于原始设计制造商odm工具,所述硬件错误检测方法包括:向片上系统soc发送用于读取目标存储部件中所存储的硬件错误信息的读取命令,所述硬件错误信息用于表示所述soc的硬件发生错误;读取所述soc响应于所述读取命令而获取到的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
13、在一种可能的实现方式中,读取所述soc响应于所述读取命令而获取到的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断包括:读取所述soc接收到的由嵌入式控制器所发送的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
14、在一种可能的实现方式中,所述odm工具包括操作系统os诊断工具和/或远程诊断工具,所述os诊断工具运行在所述soc上,所述远程诊断工具运行在远端,相应地,所述os诊断工具和/或所述远程诊断工具向所述soc发送所述读取命令,并读取所述soc接收到的由所述嵌入式控制器所发送的与所述读取命令相匹配的硬件错误信息,其中通过分析所述os诊断工具和/或所述远程诊断工具所读取到的硬件错误信息能够进行针对所述soc的硬件错误诊断。
15、在一种可能的实现方式中,读取所述soc响应于所述读取命令而获取到的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断包括:读取所述soc响应于所述读取命令而从所述soc端的存储部件读取的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
16、在一种可能的实现方式中,所述odm工具包括操作系统os诊断工具和/或远程诊断工具,所述os诊断工具运行在所述soc上,所述远程诊断工具运行在远端,相应地,所述os诊断工具和/或所述远程诊断工具向所述soc发送所述读取命令,并读取所述soc从所述soc端的存储部件读取的与所述读取命令相匹配的硬件错误信息,其中通过分析所述os诊断工具和/或所述远程诊断工具所读取到的硬件错误信息能够进行针对所述soc的硬件错误诊断。
17、在一种可能的实现方式中,所述odm工具包括闪存工具,所述闪存工具运行在所述soc上,相应地,所述硬件错误检测方法包括:所述闪存工具读取嵌入式控制器的存储部件中所存储的硬件错误信息;或者所述闪存工具读取所述soc端的存储部件中所存储的硬件错误信息;其中,通过分析所述闪存工具所读取的硬件错误信息能够诊断致命错误是否是硬件错误所导致的,所述致命错误表示能够引起远程诊断工具和操作系统os诊断工具无法正常运行的错误。
18、根据本公开的第三方面,提供了一种硬件错误检测装置,应用于片上系统soc的芯片组中的错误收集器组件,所述硬件错误检测装置包括:接收模块,用于响应于所述soc的硬件发生错误,接收表示所述soc的硬件发生错误的硬件错误信息;处理模块,用于将所述硬件错误信息存储到目标存储部件中,其中,原始设计制造商odm工具根据所述目标存储部件所存储的硬件错误信息进行针对所述soc的硬件错误诊断。
19、在一种可能的实现方式中,所述处理模块被配置为:将所接收到的硬件错误信息记录到所述soc的寄存器中;在符合读取条件的情况下,读取所述寄存器所记录的硬件错误信息;将所读取的硬件错误信息存储到所述目标存储部件中。
20、在一种可能的实现方式中,所述处理模块被配置为:响应于接收到硬件错误信息,将所接收到的硬件错误信息存储到所述目标存储部件中。
21、在一种可能的实现方式中,所述硬件错误检测装置还包括:通知模块,用于向嵌入式控制器通知所述soc的硬件发生了错误,以触发所述错误收集器组件与所述嵌入式控制器之间的交互,相应地,经由所述错误收集器组件与所述嵌入式控制器之间的交互,将所述硬件错误信息存储到所述嵌入式控制器的存储部件中。
22、在一种可能的实现方式中,所述通知模块被配置为:改变所述soc的通用输入输出引脚gpio引脚的状态,以向所述嵌入式控制器通知所述soc的硬件发生了错误,从而触发所述错误收集器组件与所述嵌入式控制器彼此经由i2c总线进行交互。
23、在一种可能的实现方式中,所述处理模块被配置为:将所述硬件错误信息存储到所述soc端的存储部件中。
24、根据本公开的第四方面,提供了一种片上系统soc的芯片组中的错误收集器组件,包括第三方面所述的硬件错误检测装置。
25、根据本公开的第五方面,提供了一种片上系统soc的芯片组中的错误收集器组件,所述错误收集器组件用于执行第一方面所述的硬件错误检测方法的各步骤。
26、根据本公开的第六方面,提供了一种片上系统soc的芯片组,包括第四方面或第五方面所述的错误收集器组件。
27、根据本公开的第七方面,提供了一种硬件错误检测装置,应用于原始设计制造商odm工具,所述硬件错误检测装置包括:发送模块,用于向片上系统soc发送用于读取目标存储部件中所存储的硬件错误信息的读取命令,所述硬件错误信息用于表示所述soc的硬件发生错误;读取模块,用于读取所述soc响应于所述读取命令而获取到的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
28、在一种可能的实现方式中,所述读取模块被配置为:读取所述soc接收到的由嵌入式控制器所发送的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
29、在一种可能的实现方式中,所述读取模块被配置为:读取所述soc响应于所述读取命令而从所述soc端的存储部件读取的与所述读取命令相匹配的硬件错误信息,以用于针对所述soc的硬件错误诊断。
30、根据本公开的第八方面,提供了一种原始设计制造商odm工具,包括第七方面所述的硬件错误检测装置。
31、根据本公开的第九方面,提供了一种原始设计制造商odm工具,所述odm工具用于执行第二方面所述的硬件错误检测方法的各步骤。
32、根据本公开的第十方面,提供了一种硬件错误检测系统,包括:片上系统soc,其包括cpu和第六方面所述的芯片组;根据第八方面或第九方面所述的odm工具。
33、在一种可能的实现方式中,所述硬件错误检测系统还包括:嵌入式控制器,用于:根据所述soc的通用输入输出引脚gpio引脚的状态是否发生改变来确定所述soc的硬件是否发生错误;响应于确定出所述soc的硬件发生错误,与所述错误收集器组件进行交互,以获取硬件错误信息,并将所述硬件错误信息存储到所述嵌入式控制器的存储部件中;接收所述soc所发送的用于读取所述存储部件所存储的硬件错误信息的读取命令;解析所述读取命令,从所述存储部件读取与所解析出的读取命令相匹配的硬件错误信息,并将所述硬件错误信息发送到所述soc,其中,所述odm工具能够读取所述soc所接收到的硬件错误信息,并根据该硬件错误信息进行针对所述soc的硬件错误诊断。
34、根据本公开,相较于soc的芯片组的现有结构,在该芯片组中新增错误收集器组件,错误收集器组件响应于soc的硬件发生错误而接收表示该硬件发生错误的硬件错误信息,并将该硬件错误信息存储到目标存储部件中,由于odm工具能够获取目标存储部件所存储的硬件错误信息,从而能够根据所获取到的硬件错误信息进行针对soc的硬件错误诊断,因此能够进行适用于soc的硬件错误诊断。
35、这样,不仅能够满足各种嵌入式或pc机等领域odm对mcu/soc端硬件错误检测诊断处理的基本需求,从而能够便于快速定位mcu/soc端的硬件问题,而且还不需要新增额外的外部其它芯片部件,在实现mcu/soc端硬件错误检测诊断功能的前提下,能够节省硬件成本。
36、另外,由于mcu/soc端的主要改变是新增了错误收集器组件(error collectorcomponent),因此硬件设计所需的改动较少,并且嵌入式控制器厂家/odm厂家针对各种flash信息的读取和诊断工具也都有现成可用的工具,因此软件所需的改动也较少,由此可知,本公开的硬件错误检测方案是适合推广并使用的。
37、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。