一种具有软关机功能的服务器和软关机方法转让专利

申请号 : CN202011296289.8

文献号 : CN112416677B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓其生

申请人 : 北京东土科技股份有限公司

摘要 :

本发明涉及一种具有软关机功能的服务器和软关机方法,该服务器包括:中央处理器、可编程逻辑器件和电源模块;所述可编程逻辑器件与所述服务器的开关机按键通信连接,以接收所述开关机按键产生的脉冲信号;当脉冲信号为关机信号时,可编程逻辑器件存储关机信号对应的关机信息;中央处理器与可编程逻辑器件通信连接,中央处理器从可编程逻辑器件中获取关机信息,并根据关机信息关闭后台进程;所述可编程逻辑器件与所述电源模块通信连接,所述可编程逻辑器件根据所述中央处理器关闭后台进程后产生的逻辑状态控制所述电源模块下电。通过这样的设置避免了服务器关机时直接下电导致的系统崩溃,提高了整个服务器的容错性。

权利要求 :

1.一种具有软关机功能的服务器,其特征在于,包括:中央处理器、可编程逻辑器件和电源模块;

所述可编程逻辑器件与所述服务器的开关机按键通信连接,以接收所述开关机按键产生的脉冲信号;当所述脉冲信号为关机信号时,所述可编程逻辑器件存储所述关机信号对应的关机信息;

所述中央处理器与所述可编程逻辑器件通信连接,所述中央处理器从所述可编程逻辑器件中获取所述关机信息,并根据所述关机信息关闭后台进程;

所述可编程逻辑器件与所述电源模块通信连接,所述可编程逻辑器件根据所述中央处理器关闭后台进程后产生的逻辑状态控制所述电源模块下电。

2.根据权利要求1所述的具有软关机功能的服务器,其特征在于,当所述脉冲信号为开机信号时,所述可编程逻辑器件存储所述开机信号对应的开机信息;所述可编程逻辑器件根据所述开机信号控制所述电源模块上电开机;上电开机后,所述可编程逻辑器件丢弃所述开机信号。

3.根据权利要求1所述的具有软关机功能的服务器,其特征在于,所述可编程逻辑器件还包括寄存器,所述寄存器用于存储所述脉冲信号对应的关机信息。

4.根据权利要求3所述的具有软关机功能的服务器,其特征在于,所述中央处理器与所述寄存器通过串行总线连接,所述中央处理器通过所述串行总线从所述寄存器中获取关机信息。

5.一种基于权利要求1‑4任一所述的服务器的软关机方法,其特征在于,包括:可编程逻辑器件接收开关机按键产生的脉冲信号;

判断所述脉冲信号是否为关机信号,若是,则将所述关机信号对应的关机信息存储到所述可编程逻辑器件;

所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭;所述后台进程关闭后,所述中央处理器向所述可编程逻辑器件发送相应的逻辑状态;

所述可编程逻辑器件根据接收到的所述逻辑状态控制电源模块下电。

6.根据权利要求5所述的软关机方法,其特征在于,所述判断所述脉冲信号是否为关机信号,包括:

当待机电为所述可编程逻辑器件供电时,判断所述脉冲信号为关机信号;

当电源模块为所述可编程逻辑器件供电时,判断所述脉冲信号为开机信号。

7.根据权利要求6所述的软关机方法,其特征在于,所述判断所述脉冲信号为开机信号之后,还包括:

所述可编程逻辑器根据所述开机信号控制所述电源模块上电开机;

所述可编程逻辑器件存储所述开机信号对应的开机信息。

8.根据权利要求7所述的软关机方法,其特征在于,还包括:所述中央处理器从所述可编程逻辑器件中获得所述开机信息,丢弃所述开机信息。

9.根据权利要求5所述的软关机方法,其特征在于,所述将所述关机信号对应的关机信息存储到所述可编程逻辑器件,包括:将所述关机信息存储在所述可编程逻辑器件的寄存器中。

10.根据权利要求5所述的软关机方法,其特征在于,所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭之前,还包括:设定所述中央处理器访问所述可编程逻辑器件的间隔时间;

每隔所述间隔时间,所述中央处理器通过串行总线访问一次所述可编程逻辑器件。

说明书 :

一种具有软关机功能的服务器和软关机方法

技术领域

[0001] 本发明涉及服务器系统领域,尤其涉及一种具有软关机功能的服务器和软关机方法。

背景技术

[0002] 随着国产芯片研发能力的提升,国产处理器的种类与性能日益增加,已经开始在服务器产品中应用。多数国产化的处理器有专门的关机管脚,对于采用有关机管脚处理器
的服务器,在关机时,只需要短按本地开关机按键,系统就会关掉处理器的相关进程,然后
服务器再掉电进入关机状态,即实现软关机。
[0003] 而部分国产处理器(CPU,central processing unit),如飞腾CPU,没有关机管脚。针对这些采用没有关机管脚处理器的服务器,它们的开关机按键直接和FPGA(Field 
Programmable Gate Array,现场可编程门阵列)连接,FPGA直接控制电源上下电。当使用开
关机按键关闭服务器时,CPU会直接掉电,导致无法对后台进程进行关闭和保存,从而导致
数据丢失。服务器关机时,CPU直接下电很容易导致系统崩溃,进而影响服务器下次使用,导
致整个服务器的容错性差。

发明内容

[0004] 本发明的目的在于解决采用没有关机管脚CPU的服务器如何先关闭后台进程,再进行下电操作的问题。
[0005] 为解决上述问题,第一方面,本发明提供了一种具有软关机功能的服务器,包括:
[0006] 中央处理器、可编程逻辑器件和电源模块;
[0007] 所述可编程逻辑器件与所述服务器的开关机按键通信连接,以接收所述开关机按键产生的脉冲信号;
[0008] 当所述脉冲信号为关机信号时,所述可编程逻辑器件存储所述关机信号对应的关机信息;
[0009] 所述中央处理器与所述可编程逻辑器件通信连接,所述中央处理器从所述可编程逻辑器件中获取所述关机信息,并根据所述关机信息关闭后台进程;
[0010] 所述可编程逻辑器件与所述电源模块通信连接,所述可编程逻辑器件根据所述中央处理器关闭后台进程后产生的逻辑状态控制所述电源模块下电。
[0011] 在此基础上,当所述脉冲信号为开机信号时,所述可编程逻辑器件存储所述开机信号对应的开机信息;所述可编程逻辑器件根据所述开机信号控制所述电源模块上电开
机;上电开机后,所述可编程逻辑器件丢弃所述开机信号。
[0012] 在此基础上,所述可编程逻辑器件还包括寄存器,所述寄存器用于存储所述脉冲信号对应的关机信息。
[0013] 在此基础上,所述中央处理器与所述寄存器通过串行总线连接,所述中央处理器通过所述串行总线从所述寄存器中获取关机信息。
[0014] 第二方面,本发明提供了一种基于第一方面任一所述的服务器的软关机方法,该方法包括:
[0015] 可编程逻辑器件接收开关机按键产生的脉冲信号;
[0016] 判断所述脉冲信号是否为关机信号,若是,则将所述关机信号对应的关机信息存储到所述可编程逻辑器件;
[0017] 所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭;所述后台进程关闭后,所述中央处理器向所述可编程逻辑器件发送相应的逻辑状态;
[0018] 所述可编程逻辑器件根据接收到的所述逻辑状态控制电源模块下电。
[0019] 在此基础上,所述判断所述脉冲信号是否为关机信号,包括:
[0020] 当待机电为所述可编程逻辑器件供电时,判断所述脉冲信号为关机信号;
[0021] 当电源模块为所述可编程逻辑器件供电时,判断所述脉冲信号为开机信号。
[0022] 在此基础上,所述判断所述脉冲为开机信号之后,还包括:
[0023] 所述可编程逻辑器根据所述开机信号控制所述电源模块上电开机;
[0024] 所述可编程逻辑器件存储所述开机信号对应的开机信息。
[0025] 在此基础上,还包括:
[0026] 所述中央处理器从所述可编程逻辑器件中获得所述开机信息,丢弃所述开机信息。
[0027] 在此基础上,所述判断所述脉冲信号是否为关机信号之后,还包括:
[0028] 所述可编程逻辑器根据所述开机信号控制所述电源模块上电开机;
[0029] 所述可编程逻辑器件存储所述开机信号对应的开机信息。
[0030] 在此基础上,所述将所述关机信号对应的关机信息存储到所述可编程逻辑器件,包括:
[0031] 将所述关机信息存储在所述可编程逻辑器件的寄存器中。
[0032] 在此基础上,所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭之前,还包括:
[0033] 设定所述中央处理器访问所述可编程逻辑器件的间隔时间;
[0034] 每隔所述间隔时间,所述中央处理器通过串行总线访问一次所述可编程逻辑器件。
[0035] 本发明中,来自开关机按键的关机信息存储在可编程逻辑器件中,中央处理器通过从可编程逻辑器件处读取关机信息,控制后台进程结束,再通过中央处理器向可编程逻
辑器件发送特定的逻辑状态,以控制电源模块下电。当关机时,后台进程首先被关掉,使得
当前系统的运行数据被保存,然后电源模块下电,实现服务器的安全关闭。本发明提供的技
术方案避免了服务器关机时直接下电导致的系统崩溃,提高了整个服务器的容错性。

附图说明

[0036] 图1为本发明实施例1提供的一种具有软关机功能的服务器的结构图;
[0037] 图2为本发明实施例2提供的一种应用于实施例1的服务器的软关机方法的流程图;
[0038] 图3为本发明实施例2提供的另一种应用于实施例1的服务器的软关机方法的流程图。

具体实施方式

[0039] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便
于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0040] 实施例1
[0041] 图1为本发明实施例1提供的一种具有软关机功能的服务器的结构图。参考图1,该服务器包括:中央处理器11、可编程逻辑器件12和电源模块15。
[0042] 其中,中央处理器11特别指没有关机管脚的处理器,如飞腾CPU。飞腾CPU没有关机管脚,目前都是通过FPGA直接控制下电。。可编程逻辑器件12,用于接收信息、转化信息和控
制系统。所述可编程逻辑器件12为现场可编程门阵列(Field Programmable Gate Array,
FPGA),FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效
的解决原有的器件门电路数较少的问题。FPGA的基本结构包括可编程输入输出单元,可配
置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。
[0043] 所述可编程逻辑器件12与所述服务器的开关机按键14通信连接,以接收所述开关机按键14产生的脉冲信号;当所述脉冲信号为关机信号时,所述可编程逻辑器件12存储所
述脉冲信号对应的关机信息。
[0044] 所述中央处理器11与所述可编程逻辑器件12通信连接,所述中央处理器11从所述可编程逻辑器件12中获取所述开关机信息,并根据所述关机信息关闭后台进程。
[0045] 所述可编程逻辑器件12与所述电源模块15通信连接,所述可编程逻辑器件12根据所述中央处理器11关闭后台进程后产生的逻辑状态控制所述电源模15块下电。
[0046] 可编程逻辑器件12具有待机(stand by)电,当电源模块没有为可编程逻辑器件12供电时,待机电为可编程逻辑器件12供电,此时,确定可编程逻辑器件12处于关机状态。当
电源模块为可编程逻辑器件12供电时,确定可编程逻辑器件12处于开机状态。
[0047] 具体的,开关机按键14被按下后,产生一个脉冲信号。脉冲信号被可编程逻辑器件12接收。
[0048] 当服务器处于开机状态时,此时的脉冲信号被可编程逻辑器件12处理为关机信号。可编程逻辑器件12将关机信号处理为关机信息,并对关机信息进行存储。中央处理器11
访问可编程逻辑器件12,当中央处理器11访问可编程逻辑器件12获得关机信息时,中央处
理器11根据关机信息关闭后台进程。中央处理器11关闭后台进程后,向可编程逻辑器件12
发送一个特定的逻辑状态。可编程逻辑器件12接收到特定的逻辑状态后,控制电源模块15
下电。
[0049] 当服务器处于关机状态时,此时的脉冲信号被可编程逻辑器件12处理为开机信号。所述可编程逻辑器件12存储所述开机信号对应的开机信息;所述可编程逻辑器件根据
所述开机信号控制所述电源模块15上电开机;上电开机后,所述可编程逻辑器件12丢弃所
述开机信号。
[0050] 可编程逻辑器件还包括寄存器,所述寄存器13用于存储所述脉冲信号对应的关机信息。
[0051] 寄存器13的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器13,需用n个触发
器来构成。
[0052] 所述中央处理器11与所述寄存器13通过串行总线16连接,所述中央处理器通过所述串行总线16从所述寄存器中获取开关机信息。
[0053] 串行总线16是连接外部设备的一个串口总线标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准(On‑The‑Go)使其能够用于在便携设备之间直接交换
数据。本实施例中,采用I2C总线(Inter-Integrated Circuit,两线式串行总线),I2C总线
是一种简单、双向二线制同步串行总线16。它只需要两根线即可在连接于总线上的器件之
间传送信息。
[0054] 电源模块15与现场可编程门阵列的第一管脚连接;开关机按键与现场可编程门阵列的第二管脚连接。一般的,第一管脚与第二管脚是两个不同的管脚。
[0055] 本发明实施例提供的中央处理器通过从可编程逻辑器件处读取信息,控制后台进程结束,再通过中央处理器向可编程逻辑器件发送特定的逻辑状态,以控制电源模块下电。
当关机时,后台进程首先被关掉,使得当前系统的运行数据被保存,然后电源模块下电,实
现服务器的安全关闭。本发明提供的技术方案避免了服务器关机时CPU直接下电导致的系
统崩溃,提高了整个服务器的容错性能。
[0056] 实施例2
[0057] 图2为本发明实施例2提供的一种基于实施例1的服务器的软关机方法的流程图。图3为本发明实施例2提供的另一种基于实施例1的服务器的软关机方法的流程图。本实施
例适用于采用没有关机管脚CPU的服务器实现先结束后台进程,再实现下电的场景。该方法
可以基于实施例1提供的具有软关机功能的服务器来实现。
[0058] 具体的,本方法尤其适用于飞腾服务器。飞腾服务器中配置的飞腾CPU没有关机管脚,目前都是通过FPGA直接控制下电。
[0059] 参考图2,该方法具体包括如下步骤:
[0060] S21、可编程逻辑器件接收开关机按键产生的脉冲信号。
[0061] 脉冲信号由开关机按键产生。一般的,开关机按键在开机过程和关机过程中都会产生脉冲。脉冲信号是开机信号还是关机信号,由FPGA根据收到脉冲信号的状态确定。当服
务器处于开机状态时,此时的脉冲信号被可编程逻辑器件12处理为关机信号。当服务器处
于关机状态时,此时的脉冲信号被可编程逻辑器件12处理为开机信号。开机过程,开关机按
键按一下,产生一个脉冲信号,脉冲信号发送给可编程逻辑器件,可编程逻辑器件收到脉冲
信号后,输出开机控制信号给电源模块,电源模块上电后开机。在没有特别说明的情况下,
后文中的脉冲信号均指在关机过程中产生的脉冲信号。
[0062] S22、判断所述脉冲信号是否为关机信号,若是,则将所述关机信号对应的关机信息存储到所述可编程逻辑器件。
[0063] 可编程逻辑器件自身具有待机电,当电源模块没有为可编程逻辑器件供电时,待机电为可编程逻辑器件供电。当待机电为所述可编程逻辑器件供电时,判断接收到的脉冲
信号为关机信号;当电源模块为可编程逻辑器件供电时,判断接收到的脉冲信号为开机信
号。
[0064] 脉冲信号是开关机按键按下后发出的信号,由可编程逻辑器件对脉冲信号是开机信号还是关机信号做出判断。当脉冲信号是关机信号时,则将关机信号对应的关机信息存
储到可编程逻辑器件的存储器中。结合本地寄存器的0x40字段,可编程逻辑器件将开机信
息存储为0001,当脉冲信号是开机信号时,可以有两种处理方式:第一、在控制服务器上电
开机后,可编程逻辑器件丢弃所述开机信号。第二、所述可编程逻辑器件存储所述开机信号
对应的开机信息。在第二种方式中,结合本地寄存器的0x40字段,可编程逻辑器件将开机信
息存储为0000。
[0065] 判断脉冲信号为开机信号之后,可编程逻辑器根据所述开机信号控制所述电源模块上电开机。
[0066] S23、所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭;所述后台进程关闭后,所述中央处理器向所述可编程逻辑器件发送相应的逻辑状态。
[0067] 寄存器中的状态信息包括开机信息和关机信息两种。服务器保持开机状态,并且没有收到关机信号时,寄存器中存储的状态信息为开机信息。服务器在开机状态,收到关机
信号时,寄存器中存储的开机信息被修改为关机信息。具体的,当服务器开机后,本地寄存
器0x40字段为0000,此时的0000就是开机信息。当收到关机脉冲后,0000变为0001,此时的
0001为关机信息。
[0068] 所述中央处理器定时从所述寄存器中获取状态信息。中央处理器判断状态信息为关机信息还是开机信息。当所述状态信息为关机信息时,所述中央处理器通过其搭载的系
统控制所述后台进程关闭。当所述状态信息为开机信息时,所述中央处理器舍弃所述开机
信息,继续下一次对寄存器的访问。
[0069] 一般的,当中央处理器从可编程逻辑器件中获得关机信息时,控制后台进程关闭。
[0070] 具体的,寄存器的状态信息默认为0000(当可编程逻辑器件不存储开机信息时,直接给0x40字段一个默认值),当接收到关机脉冲信息后变为0001。中央处理器通过串行总线
访问所述寄存器,从所述寄存器中获取状态信息,当读取到的寄存器数值为0001时,判断状
态信息为关机信息,中央处理器通过其搭载的系统控制所述后台进程关闭。当读取到的寄
存器数值为0000时,判断状态信息为开机信息,中央处理器舍弃所述开机信息。
[0071] 后台进程关闭后,所述中央处理器向所述可编程逻辑器件发送相应的逻辑状态。
[0072] 所述中央处理器从所述可编程逻辑器件中获得所述关机信息,控制后台进程关闭之前,还包括如图3所示的如下步骤:
[0073] S231、设定所述中央处理器访问所述可编程逻辑器件的间隔时间。
[0074] S232、每隔所述间隔时间,所述中央处理器通过串行总线访问一次所述可编程逻辑器件。
[0075] 设定所述中央处理器访问寄存器的间隔时间;每隔所述间隔时间,所述中央处理器通过串行总线访问所述寄存器。
[0076] 比如,可以设定为中央处理器每1秒访问一次寄存器
[0077] S24、所述可编程逻辑器件根据接收到的所述逻辑状态控制电源模块下电。
[0078] 可编程逻辑器件根据中央处理器发送的逻辑状态控制电源模块下电。
[0079] 本发明实施例提供的中央处理器通过从可编程逻辑器件处读取信息,控制后台进程结束,再通过中央处理器向可编程逻辑器件发送特定的逻辑状态,以控制电源模块下电。
特定的逻辑状态是指GPIO(General‑purpose input/output,通用型之输入输出)状态。具
体的,GPIO默认是低,FPGA读到是低不执行命令,当中央处理器去驱动GPIO时候,GPIO变为
高,可编程逻辑器件读到高电平时,可编程逻辑器件控制电源模块下电。
[0080] 当关机时,后台进程首先被关掉,使得当前系统的运行数据被保存,然后电源模块下电,实现服务器的安全关闭。本发明提供的技术方案避免了服务器关机时直接下电导致
的系统崩溃,提高了整个服务器的容错性能。
[0081] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、
重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行
了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还
可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。