首页> 中国专利> 片上系统产品的致命错误提供方法与致命错误识别方法

片上系统产品的致命错误提供方法与致命错误识别方法

摘要

本发明提供片上系统产品的致命错误提供方法与致命错误识别方法。其中,片上系统产品包括处理器,片上系统产品的致命错误提供方法包括:在发生致命错误时,将所述致命错误所对应的所述处理器的预设接口的接口值设为与所述致命错误相对应的预设值;将所述预设值转换为外部服务器可访问的寄存器数据,以供所述外部服务器在获取所述寄存器数据时能根据所述预设值识别所述片上系统产品所发生的致命错误。通过本发明,即便片上系统产品不支持基板管理控制器,主板用户仍然可以通过带外的方式得到此产品发生错误的原因。

著录项

  • 公开/公告号CN111949431B

    专利类型发明专利

  • 公开/公告日2022-07-05

    原文格式PDF

  • 申请/专利号CN202010880860.4

  • 发明设计人 谭先乐;曲忠英;吕金星;王彦庚;

    申请日2020-08-27

  • 分类号G06F11/07(2006.01);G06F11/34(2006.01);G06F15/78(2006.01);

  • 代理机构上海光华专利事务所(普通合伙) 31219;

  • 代理人陈珊珊

  • 地址 201114 上海市闵行区浦星路789号

  • 入库时间 2022-08-23 13:58:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-05

    授权

    发明专利权授予

说明书

技术领域

本发明涉及片上系统产品技术领域,特别是涉及片上系统产品的致命错误提供方法与致命错误识别方法。

背景技术

目前,片上系统产品(即SOC产品)本身不支持基板管理控制器(BaseboardManagement Controller,简称BMC),导致片上系统产品在发生致命错误(Fatal Error)时带外无法感知,用户无法对片上系统产品发生错误时的问题进行监督和处理。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供片上系统产品的致命错误提供方法与致命错误识别方法,用于解决现有技术中的以上不足。

为实现上述目的及其他相关目的,本发明提供一种片上系统产品的致命错误提供方法,所述片上系统产品包括处理器,所述方法包括:在发生致命错误时,将所述致命错误所对应的所述处理器的预设接口的接口值设为与所述致命错误相对应的预设值;将所述预设值转换为外部服务器可访问的寄存器数据,以供所述外部服务器在获取所述寄存器数据时能根据所述预设值识别所述片上系统产品所发生的致命错误。

于本发明一实施例中,所述片上系统产品包括基本输入输出系统,所述预设接口包括通用输入输出接口和串行通用输入输出接口;所述致命错误包括内部错误和不可纠正错误;其中,若发生的所述致命错误为所述内部错误,则所述通用输入输出接口被置起;若发生的所述致命错误为所述不可纠正错误,所述基本输入输出系统根据所述不可纠正错误解析错误的类型,并根据所述类型设置所述串行通用输入输出接口的接口值。

于本发明一实施例中,所述片上系统产品包括复杂可编程逻辑器件,所述复杂可编程逻辑器件包括错误状态寄存器,所述方法还包括:所述复杂可编程逻辑器件轮询所述通用输入输出接口,在所述通用输入输出接口被置起时设置所述通用输入输出接口的接口值;所述复杂可编程逻辑器件将所述通用输入输出接口的接口值和所述串行通用输入输出接口的接口值存储于所述错误状态寄存器。

于本发明一实施例中,所述错误状态寄存器包括:当前错误状态寄存器和先前错误状态寄存器,所述通用输入输出接口的接口值和所述串行通用输入输出接口的接口值存储于所述当前错误状态寄存器,所述方法还包括:若所述片上系统产品在发生所述致命错误后发生重启,则所述复杂可编程逻辑器件将所述当前错误状态寄存器的数据复制到所述先前错误状态寄存器中并清除所述当前错误状态寄存器的数据。

于本发明一实施例中,所述方法还包括:所述复杂可编程逻辑器件将所述错误状态寄存器的数据转换为I2C信号。

于本发明一实施例中,所述方法还包括:所述复杂可编程逻辑器件接收由所述外部服务器发送的清除命令;所述复杂可编程逻辑器件清除所述错误状态寄存器的数据。

为实现上述目的及其他相关目的,本发明提供一种片上系统产品的致命错误识别方法,应用于服务器,包括:获取所述片上系统产品的处理器的预设接口的接口值;将与所述接口值所对应的致命错误作为所述片上系统产品所发生的致命错误,并予以记录。

于本发明一实施例中,所述预设接口包括:通用输入输出接口和串行通用输入输出接口;所述服务器包括基板管理控制器,所述片上系统产品包括复杂可编程逻辑器件;所述方法还包括:所述基板管理控制器轮询所述复杂可编程逻辑器件的I2C信号,以根据所述I2C信号从所述复杂可编程逻辑器件的错误状态寄存器中获得所述通用输入输出接口的接口值及所述串行通用输入输出接口的接口值,并予以记录。

于本发明一实施例中,所述错误状态寄存器包括:当前错误寄存器和先前错误寄存器;所述方法还包括:当所述片上系统产品因发生致命错误而重启,所述当前错误寄存器中的数据被复制至所述先前错误寄存器中,所述基板管理控制器则从所述先前错误寄存器中获得所述预设接口的接口值;反之,则从所述当前错误寄存器中获得所述预设接口的接口值。

于本发明一实施例中,所述方法还包括:将识别出的致命错误翻译成用户语言,并予以显示;发送清除命令至所述片上系统产品,以使所述片上系统产品清除对所述致命错误的记录数据。

如上所述,本发明的片上系统产品的致命错误提供方法与致命错误识别方法,具有以下有益效果:

1、在片上系统产品不支持基板管理控制器时,服务器主板的用户仍然可以通过基板管理控制器带外的方式得到该片上系统产品发生错误的原因;

2、当片上系统产品因为致命错误导致重启后,复杂可编程逻辑器件通过先前错误寄存器PES(Previous Error Status)仍然能记录到该片上系统产品上次重启的错误,从而服务器主板的基板管理控制器可以抓到上次重启的原因;

3、本发明的方法扩展性强,可记录多种类型的错误。

附图说明

图1显示为本发明一实施例中的应用场景示意图。

图2显示为本发明一实施例中的SOC产品的致命错误提供方法的流程图。

图3显示为本发明一实施例中的SOC产品的致命错误识别方法的流程图。

图4显示为本发明一实施例中的SOC产品的致命错误提供与识别方法的流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

鉴于现有技术中,片上系统产品本身不支持基板管理控制器,导致片上系统产品在发生致命错误时带外无法感知,用户无法对片上系统产品发生错误时的问题进行监督和处理,本发明提出片上系统产品的致命错误提供方法与致命错误识别方法,从而解决现有技术中的不足。

图1显示为本发明的片上系统产品的致命错误提供方法与致命错误识别方法于一实施例的应用场景示意图。所述片上系统产品至少包括处理器CPU,以及分别与之连接的复杂可编程逻辑器件CPLD、基本输入输出系统BIOS。需要说明的是,基本输入输出系统BIOS可通过集成南桥PCH与处理器CPU相连,本发明对此不做限制。

复杂可编程逻辑器件CPLD包括错误状态寄存器(Error Stats Register,简称ESR)。较佳的,所述错误状态寄存器又包括当前错误状态寄存器(Current Error Status,简称CES)和先前错误状态寄存器(Previous Error Status,简称PES)。

片上系统产品本身不支持基板管理控制器,服务器具有基板管理控制器。片上系统产品以插卡的形式插在服务器主板的PCIE插槽上。本发明如此设计的目的是让服务器主板用户能通过服务器的基板管理控制器获取片上系统产品的复杂可编程逻辑器件中的错误状态寄存器的数据,从而根据这些数据与各种错误之间的预设对应关系来识别出该片上系统产品所发生的错误。

如图2所示,本实施例提供一种片上系统产品的致命错误提供方法,由图1所示的片上系统产品负责执行,所述方法包括以下步骤:

S21:在发生致命错误时,将所述致命错误所对应的所述处理器的预设接口的接口值设为与所述致命错误相对应的预设值;

S22:将所述预设值转换为外部服务器可访问的寄存器数据,以供所述外部服务器在获取所述寄存器数据时能根据所述预设值识别所述片上系统产品所发生的致命错误。

详细而言,所述预设接口包括通用输入输出接口(General-purpose input/output Port,简称GPIO接口)和串行通用输入输出接口(Serial General Purpose Input/Output Port,简称SGPIO)。所述致命错误包括内部错误(Internal Error,简称IERR)和不可纠正错误(Uncorrected Errors,简称UCE)。

若片上系统产品发生的致命错误为所述不可纠正错误,所述片上系统产品的基本输入输出系统会根据所述不可纠正错误解析错误的类型,设置所述串行通用输入输出接口的接口值。若片上系统产品发生的致命错误为所述内部错误,则所述片上系统产品的处理器的通用输入输出接口被置起(如由原始高位1到持续变至低位0)。具体地,所述片上系统产品的复杂可编程逻辑器件轮询所述通用输入输出接口,在所述通用输入输出接口被置起时设置所述通用输入输出接口的接口值,并将所述通用输入输出接口的接口值和所述串行通用输入输出接口的接口值存储于所述片上系统产品的错误状态寄存器。

在一实施例中,进一步地,所述通用输入输出接口的接口值和所述串行通用输入输出接口的接口值存储于所述当前错误状态寄存器。若所述片上系统产品在发生所述致命错误后发生重启,所述复杂可编程逻辑器件则将所述当前错误状态寄存器的数据复制到所述先前错误状态寄存器中,并清除所述当前错误状态寄存器的数据。较佳的,所述复杂可编程逻辑器件在接收由外部服务器发送的清除命令时,清除所述错误状态寄存器的数据。

在一实施例中,进一步地,所述复杂可编程逻辑器件将所述错误状态寄存器的数据转换为I2C信号,从而便于服务器通过I2C轮询该片上系统产品的错误状态寄存器的数据来识别该片上系统产品所发生的错误。

如图3所示,本实施例提供一种片上系统产品的致命错误识别方法,由如图1所示的服务器负责执行,包括以下步骤:

S31:获取所述片上系统产品的处理器的预设接口的接口值;

S32:将与所述接口值所对应的致命错误作为所述片上系统产品所发生的致命错误,并予以记录。

详细而言,所述片上系统产品的处理器的预设接口包括:通用输入输出接口和串行通用输入输出接口。所述片上系统产品的复杂可编程逻辑器件将错误状态寄存器的数据转换为I2C信号,服务器的基板管理控制器轮询所述片上系统产品的复杂可编程逻辑器件的I2C信号,从而根据所述I2C信号从所述复杂可编程逻辑器件的错误状态寄存器中获得所述通用输入输出接口的接口值及所述串行通用输入输出接口的接口值,并予以记录。

于一实施例中,当所述片上系统产品因发生致命错误而重启,所述片上系统产品的当前错误寄存器中的数据被复制至所述片上系统产品的先前错误寄存器中,所述服务器的基板管理控制器则从所述片上系统产品的先前错误寄存器中获得所述预设接口的接口值;若所述片上系统产品未因发生致命错误而重启,所述片上系统产品的当前错误寄存器中的数据未被复制至所述片上系统产品的先前错误寄存器中,所述服务器的基板管理控制器则从所述当前错误寄存器中获得所述预设接口的接口值。

于一实施例中,服务器将识别出的致命错误翻译成用户语言,并予以显示。较佳的,在识别出片上系统产品所发生的致命错误后,服务器发送清除命令至所述片上系统产品,以使所述片上系统产品清除对所述致命错误的记录数据。

以下结合图1和图4对本发明的片上系统产品的致命错误提供方法与致命错误识别方法做详细介绍。

片上系统产品在发生致命错误时,若发生的错误是IERR,由于其BIOS无法处理,故只能由其CPLD处理;若发生的错误是UCE,则由其BIOS负责处理。

IERR发生时,片上系统产品的CPU的GPIO接口被置起,CPLD轮询到此GPIO接口由原高位持续变低后,通过I2C模块将此GPIO接口的值转换成服务器主板BMC可轮询的预设值,并存入ESR的CES。

UCE发生时,片上系统产品的BIOS向CPLD输出错误类型,并根据错误的具体类型设置CPU的SGPIO接口的值,CPLD通过SGPIO模块去轮询此SGPIO接口的值,然后通过I2C模块将此SGPIO接口的值转换成服务器主板BMC可轮询的预设值,并存入ESR的CES。ESR预先被定义,比如:0~3bit位为CES,4~7bit位为PES。在ESR的8个bit位中,第0或4位被置起,则表示发生了IERR,第1或5位被置起,则表示发生了UCE0,第2或6位被置起,则表示发生了UCE1,第3或7位被置起,则表示发生了UCE2。于此,UCE0~UCE2代表3种不同具体类型的UCE错误,具体类型包括但不限于:多位错误检查和纠正(Error Correcting Code,简称ECC)内存错误、普通数据奇偶校检错误(Parity Error,简称PERR)、系统错误(System Error,简称SERR)。

CPLD将GPIO接口和SGPIO接口的预设值转成I2C信号,让BMC可以轮询到。

若片上系统产品因发生致命错误而重启,所述片上系统产品的CES中的数据会被复制至到PES中,此时,服务器的BMC则从该PES中获得GPIO接口、SGPIO接口的接口值;反之,服务器的BMC则从CES中获得GPIO接口、SGPIO接口的接口值。

BMC通过I2C轮询片上系统产品的ESR中GPIO接口值和SGPIO接口值,若轮询到GPIO接口被置起,则根据GPIO接口的预设值识别出该片上系统产品发生的IERR,若轮询到SGPIO接口被置起,则根据SGPIO接口的预设值识别出该片上系统产品发生的错误类型,如UCE0、UCE1或UCE2。BMC将从ESR中获取的接口值数据记录至日志文件中,并通知用户该片上系统产品发生何种错误。

随后,BMC向片上系统产品发命令清除记录在其CPLD的致命错误的记录数据。

综上,本发明的片上系统产品的致命错误提供方法与致命错误识别方法,即便片上系统产品不支持基板管理控制器,主板用户仍然可以通过带外的方式得到此产品发生错误的原因,有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号