一种服务器双分区开机控制方法转让专利

申请号 : CN201610074783.7

文献号 : CN105607915B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孔祥涛赵现普

申请人 : 浪潮(北京)电子信息产业有限公司

摘要 :

本发明公开了一种服务器双分区开机控制方法,该方法包括:在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;IO模块依据第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;第一分区依据第一标识信号判断第一分区的开机顺序,第二分区依据第二标识信号判断第二分区的开机顺序;开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。该方法实现将两个分区QPI总线进行训练的时间区间错开,从而保证两个分区正常开机。

权利要求 :

1.一种服务器双分区开机控制方法,其特征在于,包括:

在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;

IO模块依据所述第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;

所述第一分区依据所述第一标识信号判断第一分区的开机顺序,所述第二分区依据所述第二标识信号判断第二分区的开机顺序;

开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。

2.如权利要求1所述的方法,其特征在于,所述第一标识信号用于标记所述第一分区的开机键按下的顺序,所述第二标识信号用于标记所述第二分区的开机键按下的顺序。

3.如权利要求2所述的方法,其特征在于,所述第一标识信号为CPU0_CPLD_GPIO2,CPU0_CPLD_GPIO2为1时,表示第一分区的开机键先被按下;

所述第二标识信号为CPU1_CPLD_GPIO2,CPU1_CPLD_GPIO2为1时,表示第二分区的开机键先被按下。

4.如权利要求1所述的方法,其特征在于,所述预设时间为40s。

5.如权利要求1所述的方法,其特征在于,还包括:

所述IO模块向第一分区发送第一开机使能信号,向第二分区发送第二开机使能信号。

6.如权利要求5所述的方法,其特征在于,所述第一开机使能信号用于标记所述第一分区的开机键是否按下,所述第二标识信号用于标记所述第二分区的开机键是否按下。

7.如权利要求5所述的方法,其特征在于,所述第一开机使能信号为PWRON_0,PWRON_0为1时,表示已按下第一分区的开机键;

所述第二开机使能信号为PWRON_1,PWRON_1为1时,表示已按下第二分区的开机键。

8.如权利要求1所述的方法,其特征在于,还包括:

所述IO模块向第一分区发送第二分区的开机键的状态信号,向第二分区发送第一分区的开机键的状态信号。

9.如权利要求8所述的方法,其特征在于,所述第二分区的开机键的状态信号为CPU0_CPLD_GPIO0,CPU0_CPLD_GPIO0为1时,表示已按下第二分区的开机键;CPU0_CPLD_GPIO0为0时,表示未按下第二分区的开机键;

所述第一分区的开机键的状态信号为CPU1_CPLD_GPIO0,CPU1_CPLD_GPIO0为1时,表示已按下第一分区的开机键;CPU1_CPLD_GPIO0为0时,表示未按下第一分区的开机键。

说明书 :

一种服务器双分区开机控制方法

技术领域

[0001] 本发明涉及服务器技术领域,特别是涉及一种服务器双分区开机控制方法。

背景技术

[0002] 目前,在高端服务器领域,处理器的个数可支持到8颗,即所谓的8路服务器。8路服务器能发挥更强大的处理运算能力,以及具有高度的可扩展性。强大的处理能力和内存容量是数据库、前置应用、高性能计算的最佳硬件平台。
[0003] 8颗处理器同时能实现冗余的作用,使系统能够隔离硬件故障,保证客户业务永不停顿。8路服务器通常使用两块计算板,每块计算板上有4颗处理器,两块计算板通过背板进行物理链路连接达到8颗处理器互联的目的。也就是每块计算板是一个独立的4路服务器。经过配置,可实现两个独立的4路分区系统。理论上需要两个分区所有工作都是独立的,不受另外分区影响的。两个分区在逻辑上划分开来,但是物理上仍然保持电气连接。若两个分区在间隔较短的时间内开机,一个分区的QPI总线training时即进行训练时会被另一个分区影响。严重时会导致其中一个分区在开机过程中发生宕机或者无法枚举所有处理器。如何将两个分区QPI总线进行训练的时间区间错开,从而保证两个分区正常开机,避免两个分区开机时相互影响是亟待解决的问题。

发明内容

[0004] 本发明的目的是提供一种服务器双分区开机控制方法,以实现将两个分区QPI总线进行训练的时间区间错开,从而保证两个分区正常开机。
[0005] 为解决上述技术问题,本发明提供一种服务器双分区开机控制方法,该方法包括:
[0006] 在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;
[0007] IO模块依据所述第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;
[0008] 所述第一分区依据所述第一标识信号判断第一分区的开机顺序,所述第二分区依据所述第二标识信号判断第二分区的开机顺序;
[0009] 开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。
[0010] 优选的,所述第一标识信号用于标记所述第一分区的开机键按下的顺序,所述第二标识信号用于标记所述第二分区的开机键按下的顺序。
[0011] 优选的,所述第一标识信号为CPU0_CPLD_GPIO2,CPU0_CPLD_GPIO2为1时,表示第一分区的开机键先被按下;
[0012] 所述第二标识信号为CPU1_CPLD_GPIO2,CPU1_CPLD_GPIO2为1时,表示第二分区的开机键先被按下。
[0013] 优选的,所述预设时间为40s。
[0014] 优选的,所述方法还包括:
[0015] 所述IO模块向第一分区发送第一开机使能信号,向第二分区发送第二开机使能信号。
[0016] 优选的,所述第一开机使能信号用于标记所述第一分区的开机键是否按下,所述第二标识信号用于标记所述第二分区的开机键是否按下。
[0017] 优选的,所述第一开机使能信号为PWRON_0,PWRON_0为1时,表示已按下第一分区的开机键;
[0018] 所述第二开机使能信号为PWRON_1,PWRON_1为1时,表示已按下第二分区的开机键。
[0019] 优选的,所述方法还包括:
[0020] 所述IO模块向第一分区发送第二分区的开机键的状态信号,向第二分区发送第一分区的开机键的状态信号。
[0021] 优选的,所述第二分区的开机键的状态信号为CPU0_CPLD_GPIO0,CPU0_CPLD_GPIO0为1时,表示已按下第二分区的开机键;CPU0_CPLD_GPIO0为0时,表示未按下第二分区的开机键;
[0022] 所述第一分区的开机键的状态信号为CPU1_CPLD_GPIO0,CPU1_CPLD_GPIO0为1时,表示已按下第一分区的开机键;CPU1_CPLD_GPIO0为0时,表示未按下第一分区的开机键。
[0023] 本发明所提供的一种服务器双分区开机控制方法,在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;IO模块依据所述第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;所述第一分区依据所述第一标识信号判断第一分区的开机顺序,所述第二分区依据所述第二标识信号判断第二分区的开机顺序;开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。可见,该方法判断第一分区和第二分区的开机顺序,并使开机顺序为先的分区先上电开机,开机顺序为后的分区在预设时间之后再上电开机,将两个分区之间保留足够的开机间隔时间,如此能够将两个分区QPI总线进行训练的时间区间错开,避免两个分区开机时相互影响。

附图说明

[0024] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0025] 图1为本发明所提供的一种服务器双分区开机控制方法的流程图;
[0026] 图2为本发明所提供的服务器双分区的示意图。

具体实施方式

[0027] 本发明的核心是提供一种服务器双分区开机控制方法,以实现将两个分区QPI总线进行训练的时间区间错开,从而保证两个分区正常开机。
[0028] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 请参考图1,图1为本发明所提供的一种服务器双分区开机控制方法的流程图,该方法包括:
[0030] S11:在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;
[0031] S12:IO模块依据第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;
[0032] S13:第一分区依据第一标识信号判断第一分区的开机顺序,第二分区依据第二标识信号判断第二分区的开机顺序;
[0033] S14:开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。
[0034] 可见,该方法判断第一分区和第二分区的开机顺序,并使开机顺序为先的分区先上电开机,开机顺序为后的分区在预设时间之后再上电开机,将两个分区之间保留足够的开机间隔时间,如此能够将两个分区QPI总线进行训练的时间区间错开,避免两个分区开机时相互影响。
[0035] 具体的,基于所述方法,第一标识信号用于标记第一分区的开机键按下的顺序,第二标识信号用于标记第二分区的开机键按下的顺序。
[0036] 第一标识信号为CPU0_CPLD_GPIO2,CPU0_CPLD_GPIO2为1时,表示第一分区的开机键先被按下;
[0037] 第二标识信号为CPU1_CPLD_GPIO2,CPU1_CPLD_GPIO2为1时,表示第二分区的开机键先被按下。
[0038] 其中,所述预设时间为40s。
[0039] 另外,IO模块向第一分区发送第一开机使能信号,向第二分区发送第二开机使能信号。
[0040] 第一开机使能信号用于标记第一分区的开机键是否按下,第二标识信号用于标记第二分区的开机键是否按下。
[0041] 其中,第一开机使能信号为PWRON_0,PWRON_0为1时,表示已按下第一分区的开机键;
[0042] 第二开机使能信号为PWRON_1,PWRON_1为1时,表示已按下第二分区的开机键。
[0043] 另外,IO模块向第一分区发送第二分区的开机键的状态信号,向第二分区发送第一分区的开机键的状态信号。
[0044] 其中,第二分区的开机键的状态信号为CPU0_CPLD_GPIO0,CPU0_CPLD_GPIO0为1时,表示已按下第二分区的开机键;CPU0_CPLD_GPIO0为0时,表示未按下第二分区的开机键;
[0045] 第一分区的开机键的状态信号为CPU1_CPLD_GPIO0,CPU1_CPLD_GPIO0为1时,表示已按下第一分区的开机键;CPU1_CPLD_GPIO0为0时,表示未按下第一分区的开机键。
[0046] 详细的,第一分区依据第一标识信号、第一开机使能信号和第二分区的开机键的状态信号判断第一分区和第二分区的开机顺序,第二分区依据第二标识信号、第二开机使能信号和第一分区的开机键的状态信号判断第一分区和第二分区的开机顺序,然后开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。
[0047] 例如在第一分区这个分区中,当PWRON_0为1,CPU0_CPLD_GPIO0为0,CPU0_CPLD_GPIO2为1,表明本分区即第一分区的开机键已被按下,另外一个分区即第二分区的开机键未被按下,此时第一分区可以上电开机。即上电开机的顺序为第一分区为先,第二分区为后,第一分区先上电开机,第二分区在第一分区上电开机之后才上电开机。
[0048] 当PWRON_0为1,CPU0_CPLD_GPIO0为0,CPU0_CPLD_GPIO2为1,表明第一分区的开机键已被按下,第二分区的开机键未被按下。此时第一分区可以上电开机。即第一分区先上电开机,第二分区在第一分区之后上电开机。即上电开机的顺序为第一分区为先,第二分区为后,第一分区先上电开机,第二分区在第一分区上电开机之后才上电开机。
[0049] 当CPU0_CPLD_GPIO2为1,PWRON_0为1,CPU0_CPLD_GPIO0为1,表明第一分区的开机键已被按下,第二分区的开机键也已被按下,并且第一分区的开机键是先于第二分区的开机键被按下,此时第一分区可以上电开机。即上电开机的顺序为第一分区为先,第二分区为后,第一分区先上电开机,第二分区在第一分区上电开机之后才上电开机。
[0050] 另外还可以时间标志位信号来判断上电开机顺序,CPU1_40S为第二分区计时满40秒产生的40秒等待完成标志位,即时间标志位信号,CPU1_40S为1,表明第一分区已经过40秒等待。
[0051] 当PWRON_0为1,CPU0_CPLD_GPIO0为1,CPU0_CPLD_GPIO2为0,CPU1_40S为1,表明第一分区的开机键已按下,另第二分区的开机键也已按下,并且第一分区不是第一个被按开机键,并且此时已经过40秒等待,此时第一分区可以上电开机。即上电开机的顺序为第二分区为先,第一分区为后,第二分区先上电开机,第一分区在第二分区上电开机40s之后才上电开机。
[0052] 具体的,本方法为了避免两个分区开机时相互影响,增加开机控制的机制,从而将两个分区QPI(Quick Path Interconnect)总线training即进行训练的时间区间错开。开机控制的机制是通过分区间CPLD控制信号协同实现。基于8路服务器双分区配置,本发明提出的服务器双分区开机控制方法有效避免两个分区同时开机时由于电气上的相连QPI总线training造成系统宕机的影响。
[0053] 请参考图2,图2为本发明所提供的服务器双分区的示意图。硬件环境包括:两个计算模块和IO模块,两个计算模块即为图2中分区0,分区1,分区0指代上述的第一分区,分区2指代上述的第二分区。IO模块即为图2中IOBoard。
[0054] 每个模块上都有CPLD(Complex Programmable Logic Device)。两个分区的开机按键部署在IO模块上。通过CPLD之间状态信息交互,实现两个分区安全开机间隔时间保持在40秒。
[0055] 对于CPLD之间的控制信号,在极短的时间内分别触发两个分区的开机键,开机键产生的负脉冲信号进入IO模块上的CPLD。CPLD的参考时钟大约为几十纳秒。通过CPLD硬件逻辑语言,几十纳秒级时钟足够可以判断出两个开机键按下的先后顺序。经过IO模块中CPLD时序逻辑判断产生两个标志位信号,CPU0_CPLD_GPIO2和CPU1_CPLD_GPIO2。
[0056] CPU0_CPLD_GPIO2为分区0先按开机键的标志位,为1时代表此分区的开机键先被按下。CPU1_CPLD_GPIO2为分区1先按开机键的标志位,为1时代表此分区的开机键先被按下。
[0057] PWRON_0和PWRON_1是IO模块CPLD发送给分区0和分区1的开机使能信号。PWRON_0为1时表示已按下分区0开机键。即向分区0发出开机使能信号。PWRON_1为1时表示已按下分区1开机键。即向分区1发出开机使能信号。
[0058] CPU0_CPLD_GPIO0发送给分区0的CPLD。此信号复制PWRON_1的状态。CPU0_CPLD_GPIO0为1时:表示已按下分区1开机键。CPU0_CPLD_GPIO0为0时:表示未按下分区1开机键。
[0059] CPU1_CPLD_GPIO0发送给分区1的CPLD。此信号复制PWRON_0的状态。CPU1_CPLD_GPIO0为1时:表示已按下分区0开机键。CPU1_CPLD_GPIO0为0时:表示未按下分区0开机键。
[0060] 分区0和分区1CPLD在上电开机后启动计时器。当计时满40秒后会产生40秒等待完成标志位CPU0_40S和CPU1_40S。通过GPIO告知另外一个分区的CPLD。
[0061] 对于CPU0_40S,分区0上电开机计时40秒完成后,则将CPU0_40S置1。对于CPU1_40S,分区1上电开机计时40秒完成后,则将CPU1_40S置1。
[0062] 具体的,以分区0为例来说明上电开机所具备的条件,以Verilog HDL表达式进行阐述。
[0063] Verilog HDL表达式为PWRON_0&!CPU0_CPLD_GPIO0&CPU0_CPLD_GPIO2=1时,即PWRON_0为1,CPU0_CPLD_GPIO0为0,CPU0_CPLD_GPIO2为1。说明本分区开机键已被按下,另外一个分区开机键未被按下。此时本分区可以上电开机。
[0064] Verilog HDL表达式为CPU0_CPLD_GPIO2&PWRON_0&CPU0_CPLD_GPIO0=1,即CPU0_CPLD_GPIO2为1,PWRON_0为1,CPU0_CPLD_GPIO0为1。说明本分区开机键已被按下,另外一个分区开机键也已被按下。并且本分区开机键是先于另一个分区开机键被按下。此时本分区可以上电开机。
[0065] Verilog HDL表达式为CPU1_40S&PWRON_0&CPU0_CPLD_GPIO0&!CPU0_CPLD_GPIO2=1,即CPU1_40S为1,PWRON_0为1,CPU0_CPLD_GPIO0为1,CPU0_CPLD_GPIO2为0。说明本分区开机键已按下,另外一个分区开机键也已按下,并且本分区不是第一个被按开机键,并且此时已经过40秒等待。此时本分区可以上电开机。
[0066] 可见,通过两个分区CPLD及IO板CPLD之间信号交互控制,可实现当两个分区在间隔较短的时间内按下开机键时,上电开机间隔时间保持在40秒。从而将两个分区QPI总线training的时间区间错开,从而保证两个分区正常开机。
[0067] 综上,本发明所提供的一种服务器双分区开机控制方法,在极短的时间内分别触发服务器的两个分区的开机键,第一分区的开机键产生第一负脉冲信号,第二分区的开机键产生第二负脉冲信号;IO模块依据第一负脉冲信号和第二负脉冲信号判断两个分区的开机键按下的先后顺序,产生第一标识信号和第二标识信号;第一分区依据第一标识信号判断第一分区的开机顺序,第二分区依据第二标识信号判断第二分区的开机顺序;开机顺序为先的分区上电开机,向开机顺序为后的分区发送时间标识位信号,使开机顺序为后的分区在预设时间之后上电开机。可见,该方法判断第一分区和第二分区的开机顺序,并使开机顺序为先的分区先上电开机,开机顺序为后的分区在预设时间之后再上电开机,将两个分区之间保留足够的开机间隔时间,如此能够将两个分区QPI总线进行训练的时间区间错开,避免两个分区开机时相互影响。
[0068] 以上对本发明所提供的一种服务器双分区开机控制方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。