一种CPLD状态信息的获取方法、系统及相关组件与流程

文档序号:17475272发布日期:2019-04-20 06:05阅读:296来源:国知局
一种CPLD状态信息的获取方法、系统及相关组件与流程

本申请涉及服务器技术领域,特别涉及一种cpld状态信息的获取方法、系统、一种计算机可读存储介质及一种电子设备。



背景技术:

cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。cpld的基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

现有技术中,服务器的cpld外部没有类似串口的debug接口,如果cpld出现问题只能通过代码烧录观察运行结果来确定cpld的状态信息,过程繁琐且效率不高。

因此,如何快速获取cpld的状态信息,降低服务器的运维投入是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种cpld状态信息的获取方法、系统、一种计算机可读存储介质及一种电子设备,能够快速获取cpld的状态信息,降低服务器的运维投入。

为解决上述技术问题,本申请提供一种cpld状态信息的获取方法,应用于与cpld连接的bmc,该获取方法包括:

接收cpld状态获取指令,并根据所述cpld状态获取指令读取所述cpld中所有寄存器的值;

将每一所述寄存器的值与对应的标准值进行比对得到比对结果;

根据所述比对结果确定所述cpld的状态信息。

可选的,所述cpld状态获取指令为用户通过登录所述bmc的操作系统生成的指令。

可选的,还包括:

按照预设周期读取所述cpld中目标寄存器的值;其中,所述目标寄存器为cpld日志对应的寄存器;

当所述目标寄存器的值被置位时,则执行日志记录操作。

可选的,在根据所述比对结果确定所述cpld的状态信息之后,还包括:

当所述状态信息为cpld故障对应信息时,生成故障报警信息。

可选的,所述cpld与所述bmc通过i2c总线连接。

本申请还提供了一种cpld状态信息的获取系统,应用于与cpld连接的bmc,该获取系统包括:

寄存器读取模块,用于接收cpld状态获取指令,并根据所述cpld状态获取指令读取所述cpld中所有寄存器的值;

对比模块,用于将每一所述寄存器的值与对应的标准值进行比对得到比对结果;

状态确定模块,用于根据所述比对结果确定所述cpld的状态信息。

可选的,所述cpld状态获取指令为用户通过登录所述bmc的操作系统生成的指令。

可选的,还包括:

周期读取模块,用于按照预设周期读取所述cpld中目标寄存器的值;其中,所述目标寄存器为cpld日志对应的寄存器;

日志记录模块,用于当所述目标寄存器的值被置位时,则执行日志记录操作。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述cpld状态信息的获取方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述cpld状态信息的获取方法执行的步骤。

本申请提供了一种cpld状态信息的获取方法,应用于与cpld连接的bmc,所述获取方法包括:接收cpld状态获取指令,并根据所述cpld状态获取指令读取所述cpld中所有寄存器的值;将每一所述寄存器的值与对应的标准值进行比对得到比对结果;根据所述比对结果确定所述cpld的状态信息。

本申请通过与cpld连接的bmc读取cpld中所有寄存器的值,由于cpld的各个寄存器的值都代表cpld相应的状态,因此在获得所有寄存器的值之后本申请将其与标准值进行比对。标准值为cpld处于正常工作状态下的各个寄存器的值,因此得到的比对结果可以说明cpld的当前状态与正常工作状态的偏离情况,即可以根据比对结果确定cpld的状态信息。本申请能够快速获取cpld的状态信息,降低服务器的运维投入。本申请同时还提供了一种cpld状态信息的获取系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种cpld状态信息的获取方法的流程图;

图2为本申请实施例所提供的一种cpld状态信息的获取系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种cpld状态信息的获取方法的流程图。

具体步骤可以包括:

s101:接收cpld状态获取指令,并根据所述cpld状态获取指令读取所述cpld中所有寄存器的值;

其中,本实施例可以应用于服务器的cpld状态检测流程,现有技术中的cpld不存在debug接口,因此当cpld出现问题时只能通过代码烧录来确定cpld出现哪种问题。本实施例的执行主体可以为与cpld连接的bmc(baseboardmanagementcontroller,基板管理控制器),bmc与cpld之间存在用于传输信息的连接通道,此处不限定bmc与cpld之间通过何种方式连接,只要能够保证bmc与cpld之间存在信息交互即可。作为一种优选的实施方式,本实施例中的cpld与bmc可以通过i2c总线连接。i2c总线为一种双向二线制同步串行总线,i2c总线只需要两根线即可在连接于总线上的器件之间传送信息。

在bmc接收到cpld状态获取指令时,可以根据该cpld状态获取指令获取与自身连接的cpld中所有寄存器的值。cpld内部存在多个寄存器,每一寄存器的值代表cpld的某一状态。在本步骤之前默认bmc与cpld之间已定义好沟通内容,例如依次传输20个bytes,第一的byte表示cpld的工作状态,第二个byte表示与cpld连接的cpu上电状态等。

需要说明的是,在本步骤之前还可以存在下发cpld状态获取指令的操作,具体的可以通过以下两种方法生成cpld状态获取指令:方法一、通过bmc的串口连接bmc下发cpld状态获取指令;方法二、通过远程登录的方式登录bmc的操作系统生成cpld状态获取指令。当然,还可以存在其他的下成cpld状态获取指令的操作,本领域的技术人员可以根据实际应用情景选择合适的方式,此处不进行具体的限定。

s102:将每一所述寄存器的值与对应的标准值进行比对得到比对结果;

其中,在获取cpld中所有寄存器的值的基础上,本步骤引入标准值与寄存器的值进行比对的操作。此处体得到的标准值为cpld处于正常状态下各个寄存器的值,进一步的,某一寄存器对应的标准值并不唯一,此处的标准值包括cpld处于正常工作状态下寄存器所有可能的值。

可以理解的是,每一寄存器都有其对应的标准值,所有寄存器的标准值可以不完全相同。通过将s101获取的寄存器的值与标准值进行比对得到比对结果,比对结果中可以包括实际值与标准值不同的异常寄存器的编号。

s103:根据所述比对结果确定所述cpld的状态信息。

其中,根据比对结果即可确定存在异常的寄存器的值,需要说明的是每一寄存器中均有其对应的cpld状态,因此可以根据比对结果确定cpld的状态信息。

本实施例通过与cpld连接的bmc读取cpld中所有寄存器的值,由于cpld的各个寄存器的值都代表cpld相应的状态,因此在获得所有寄存器的值之后本申请将其与标准值进行比对。标准值为cpld处于正常工作状态下的各个寄存器的值,因此得到的比对结果可以说明cpld的当前状态与正常工作状态的偏离情况,即可以根据比对结果确定cpld的状态信息。本实施例能够快速获取cpld的状态信息,降低服务器的运维投入。

进一步的,在图1对应实施例的基础上本实施例还可以包括以下步骤:

步骤1:按照预设周期读取所述cpld中目标寄存器的值;其中,所述目标寄存器为cpld日志对应的寄存器;

步骤2:当所述目标寄存器的值被置位时,则执行日志记录操作。

上述步骤中提到的目标寄存器为当该目标寄存器对应的状态异常时存在需要执行日志记录操作的寄存器,即可以理解为cpld日志对应的寄存器,当目标寄存器的值被指为时可以执行cpld日志记录操作。当然目标寄存器还可以为报警信息对应的寄存器,当目标寄存器的值被置位时,则生成故障报警信息。

进一步的,在执行图1对应实施例所提到的在根据所述比对结果确定所述cpld的状态信息之后,还包括以下操作:当所述状态信息为cpld故障对应信息时,生成故障报警信息。

此处不限定故障报警信息的形式,可以生成邮件、电话等形式的故障报警信息。

请参见图2,图2为本申请实施例所提供的一种cpld状态信息的获取系统的结构示意图;

该系统可以包括:

寄存器读取模块100,用于接收cpld状态获取指令,并根据所述cpld状态获取指令读取所述cpld中所有寄存器的值;

对比模块200,用于将每一所述寄存器的值与对应的标准值进行比对得到比对结果;

状态确定模块300,用于根据所述比对结果确定所述cpld的状态信息。

本实施例通过与cpld连接的bmc读取cpld中所有寄存器的值,由于cpld的各个寄存器的值都代表cpld相应的状态,因此在获得所有寄存器的值之后本申请将其与标准值进行比对。标准值为cpld处于正常工作状态下的各个寄存器的值,因此得到的比对结果可以说明cpld的当前状态与正常工作状态的偏离情况,即可以根据比对结果确定cpld的状态信息。本实施例能够快速获取cpld的状态信息,降低服务器的运维投入。

进一步的,所述cpld状态获取指令为用户通过登录所述bmc的操作系统生成的指令。

进一步的,还包括:

周期读取模块,用于按照预设周期读取所述cpld中目标寄存器的值;其中,所述目标寄存器为cpld日志对应的寄存器;

日志记录模块,用于当所述目标寄存器的值被置位时,则执行日志记录操作。

进一步的,还包括:

报警模块,用于当所述状态信息为cpld故障对应信息时,生成故障报警信息。

进一步的,所述cpld与所述bmc通过i2c总线连接。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1