CN112462918A - 一种开关机控制方法、装置、设备及计算机可读存储介质 - Google Patents
一种开关机控制方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112462918A CN112462918A CN202011224792.2A CN202011224792A CN112462918A CN 112462918 A CN112462918 A CN 112462918A CN 202011224792 A CN202011224792 A CN 202011224792A CN 112462918 A CN112462918 A CN 112462918A
- Authority
- CN
- China
- Prior art keywords
- cpu partition
- shutdown
- cpu
- request
- starting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005192 partition Methods 0.000 claims abstract description 415
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000001960 triggered effect Effects 0.000 claims description 30
- 230000003111 delayed effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
Abstract
本申请公开了一种开关机控制方法及相关装置,包括在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机或关机请求,则存储其他CPU Partition***的开机或关机请求;在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPU Partition***的开机或关机请求,并根据其他CPU Partition***的开机或关机请求的触发顺序,依次响应其他CPU Partition***的开机或关机请求,以使其他CPU Partition***依次进行开机或关机操作。该方法能够避免Power波动,保障***运行的稳定性。
Description
技术领域
本申请涉及服务器技术领域,特别涉及一种开关机控制方法;还涉及一种开关机控制装置、设备以及计算机可读存储介质。
背景技术
服务器为互联网用户提供计算、存储、数据交换等服务,是互联网时代的重要组成节点。根据一个***内CPU的数量可以分为单路服务器、双路服务器、四路服务器及多路服务器。单路服务器采用单一的CPU为用户进行计算服务,结构简单、价格低廉。而双路及以上的服务器由多个CPU共享***资源及总线架构,协同为***提供计算服务,计算能力高于单独服务器,但尺寸较大,价格高于单路服务器。单路服务器更适合为小型用户提供较为简单的计算服务,而双路及以上的服务器则更适合为大型客户提供企业级的运算服务。为了满足不同客户的需求,提高计算器服务的灵活性,日前涌现出一种支持Partition功能的多路服务器。正常工作模式下,多路服务器的多路CPU协同工作为用户提供服务,但在Partition工作模式下,多路服务器的各CPU Partition***相互独立,可以为多个用户提供单独的服务,甚至可以实现独立的开关机操作。
参考图1所示,支持Partition功能的服务器要对各CPU Partition***进行隔离设计,使其在Partition工作模式下能够彼此独立工作。另外,所有的CPU Partition***要共用一个管理单元,使服务器在普通模式(多CPU协同操作模式)下能够正常实现管理功能。而为节省成本和板上空间,管理单元的部分Power采用与CPU Partition***的同源Power,在Partition工作模式下通过切换线路对Power来源进行切换,以保证不同CPU Partition***切换时管理单元可以正常供电。然而,CPU Partition***Power切换线路控制较为复杂,不同CPU Partition***同时进行上下电操作,容易引起Power波动,且在进行部分Power切换时,若切换的源端Power尚未爬升到有效电平便进行切换,容易出现Power不稳定的状况,严重时引发***掉电。
因此,如何避免Power波动,保障***运行的稳定性已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种开关机控制方法,能够避免Power波动,保障***运行的稳定性。本申请的另一个目的是提供一种开关机控制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种开关机控制方法,包括:
在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPUPartition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPUPartition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPUPartition***依次进行开机操作或关机操作。
可选的,所述开机请求由BMC或电源按键触发;所述关机请求由所述BMC或所述电源按键或操作***触发。
可选的,还包括:
在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPUPartition***中是否存在处于开机状态的CPU Partition***;
若存在,则设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发所述关机请求。
可选的,所述设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发关机请求包括:
将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值,并向其他CPU Partition***中处于开机状态的CPUPartition***发送延时关机请求。
可选的,将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值包括:
通过Hot-Plug SMBUS总线将其他CPU Partition***中处于开机状态的CPUPartition***的所述目标寄存器的目标比特位的值修改为延时时间对应的值。
可选的,还包括:
撤销所述延时关机请求。
为解决上述技术问题,本申请还提供了一种开关机控制装置,包括:
存储模块,用于在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
响应模块,用于在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPU Partition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPU Partition***依次进行开机操作或关机操作。
可选的,还包括:
判断模块,用于在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPU Partition***中是否存在处于开机状态的CPU Partition***;
设置模块,用于若存在,则设置其他CPU Partition***中处于开机状态的CPUPartition***的操作***延时触发所述关机请求。
为解决上述技术问题,本申请还提供了一种开关机控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的开关机控制方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的开关机控制方法的步骤。
本申请所提供的开关机控制方法,包括:在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPU Partition***的开机请求或关机请求,并根据其他CPUPartition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPU Partition***依次进行开机操作或关机操作。
可见,本申请所提供的开关机控制方法,采取错位开关机的控制策略,在某个CPUPartition***进行开机操作或关机操作的过程中,不会响应其他CPU Partition***的开机请求与关机请求,直到当前CPU Partition***完成开机操作或关机操作后,才根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,从而能够避免两个或多个CPU Partition***同时进行开关机操作而引发的Power波动,以及避免CPU Partition***进行Power切换时源端Power尚未达到有效电平而引发的Power波动,能够保证***运行的稳定性。
本申请所提供的开关机控制装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本申请实施例所提供的一种支持Partition功能的服务器的架构示意图;
图2为本申请实施例所提供的一种开关机控制方法的流程示意图;
图3为本申请实施例所提供的一种实现开关机错位的架构示意图;
图4为本申请实施例所提供的一种CPU Hot-Plug架构示意图。
具体实施方式
本申请的核心是提供一种开关机控制方法,能够避免Power波动,保障***运行的稳定性。本申请的另一个核心是提供一种开关机控制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图2,图2为本申请实施例所提供的一种开关机控制方法的流程示意图,参考图2所示,该方法包括:
S101:在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
具体的,本申请旨在实现不同CPU Partition***的开关机时间错位,避免两个或多个CPU Partition***同时进行开关机操作,从而确保Power通过Switch切换时源端Power已达到有效电平,使Power保持稳定。为此,当服务器配置为Partition工作模式时,在某一个CPU Partition***进行开机操作或关机操作的过程中,若CPLD接收到其他CPUPartition***的开机请求或关机请求,则此时CPLD不会立即响应其他CPU Partition***的开机请求或关机请求,而是将其他CPU Partition***的开机请求或关机请求存储到内部寄存器,将其他CPU Partition***的开机请求或关机请求挂起,暂时不响应。
可以明白的是,当前CPU Partition***指的是当前被CPLD响应了开机请求或关机请求而正在开机或关机的CPU Partition***,其他CPU Partition***则指的是当前未被CPLD响应开机请求或关机请求的CPU Partition***。当前CPU Partition***与其他CPU Partition***相互转换,CPLD响应了其他某个CPU Partition***的开机请求或关机请求后,该被响应了开机请求或关机请求的CPU Partition***便转换为当前CPUPartition***,而进行开机或关机操作。
其中,开机请求可由BMC或电源按键触发;关机请求可由BMC或电源按键或操作***触发。
具体的,CPLD作为时序控制核心,其与BMC以及电源按键相连,用于检测开机信号与关机信号。另外,CPLD与CPU Partition***相连,用于与CPU Partition***进行开关机信息交互。参考图3所示,BMC可通过PWRBTNn_BMC_N信号通知CPLD相应的CPU Partition***进行开机或关机,电源按键通过PWRBTNn_BTN_N信号通知CPLD相应的CPU Partition***进行开机或关机。例如,在CPU Partition***1为关机状态时,若相应的BMC将PWRBTNn_BMC_N信号拉低,则触发开机请求,此时BMC通知CPLD CPU Partition***1要进行开机操作。在CPU Partition***1为关机状态时,若相应的电源按键按下,将PWRBTN1_BTN_N信号拉低,则触发开机请求,此时BMC通知CPLD CPU Partition***1要进行开机操作。CPLD通过PWRBTN1_PLD_N信号通知CPU Partition***开关机,CPU Partition***通过BOOT_DONE1通知CPLD开机完成。例如,当CPU Partition***1对应的BMC触发开机请求后,CPLD将PWRBTN1_PLD_N信号拉低,以此通知CPU Partition***1进行开机,当CPU Partition***1开机完成后,CPU Partition***1将BOOT_DONE1拉低,从而通知CPLD开机完成。另外,CPUPartition***通过SLPn_S3_N信号通知CPLD进行关机掉电。例如,CPU Partition***1通过SLP1_S3_N信号通知CPLD进行关机掉电。
也就是说,本实施例中,开机请求的触发源即控制***开机的信号来源有两个,一个是BMC控制的开关机信号,在CPU Partition***为关机状态时,下拉此信号可以实现CPUPartition***的远程开机;另一个是电源按键触发的开关机信号,在CPU Partition***为关机状态时,通过按压电源按键可以触发***开机。CPLD通过识别来自BMC的信号与电源按键的信号来确定相应的CPU Partition***的开机请求。本实施例中,关机请求的触发源即控制***关机的信号来源有三个,其一是BMC控制的开关机信号,在CPU Partition***为开机状态时,下拉该信号可以实现CPU Partition***的远程关机。其二是电源按键触发的开机信号,在CPU Partition***为开机状态时,按压电源按键可以触发***关机。其三是OS即操作***主动进行关机操作,在CPU Partition***为开机状态的情况下,OS主动触发关机请求,CPU Partition***经过相关响应机制后,拉低SLPn_S3_N信号,CPLD推动剩余掉电时序,最终实现关机。
S102:在当前CPU Partition***完成开机或关机操作后,读取存储的其他CPUPartition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPUPartition***依次进行开机操作或关机操作。
具体的,当前CPU Partition***完成开机或关机操作后,CPLD从内部寄存器中读取存储的其他CPU Partition***的开、关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,推进其他CPU Partition***依次进行开机操作或关机操作。
其中,当某个CPU Partition***进行开机操作或关机操作时,CPLD可以将其他CPU Partition***对应的BMC以及电源按键发出的信号暂存到内部寄存器中,以延缓开关机请求,但却无法控制OS发出关机请求。虽然CPLD同样可以将SLPn_S3_N信号暂存到寄存器,以延缓关机操作,但此时如果未及时响应OS触发的关机请求,容易引发OS故障。因此,作为一种优选的实施方式,还包括:在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPU Partition***中是否存在处于开机状态的CPU Partition***;若存在,则设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发所述关机请求。其中,设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发关机请求的方式可以为:将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值,并向其他CPUPartition***中处于开机状态的CPU Partition***发送延时关机请求。另外,将其他CPUPartition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值的方式可以为:通过Hot-Plug SMBUS总线将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的目标比特位的值修改为延时时间对应的值。
具体而言,本实施例提供了一种通过CPU的Hot-Plug SMBUS Controller进行延时请求的机制,用于向OS发出延时关机请求。Hot-Plug SMBUS Controller是一组CPU为支持PCIE设备Hot-Plug特意设定的SMBUS,CPU为每个Hot-Plug Device设置8个bit的寄存器,对应Device的Hot-Plug控制信号。其中BIT3-BIT6为Device发送给CPU的输入信号。当Device状态发生变动时,会触发Alert信号。CPU监测到Alert信号后,会去检查SMBUS总线上挂的所有Device的Hot-Plug状态信号变化,从而快速相应Hot-plug的相关操作。本实施例借助一组不需要支持Hot-Plug的PCIe Port寄存器来延时关机请求。当需要发出延时关机请求时,CPLD可向BIT3-BIT6对应的寄存器写入相应的值并触发Alert信号,CPU监测到Alert信号后会主动检索SMBUS上挂载的所有Device的状态变化,通过查看CPLD对应的BIT3-BIT6的数据可知悉CPLD发出的关机延时请求。每当OS需要进行关机操作时去查看是否存在关机延时请求,若存在,则延时相应时间后再触发关机请求。若不存在则可立即触发关机请求。该机制借助Hot-Plug寄存器进行延时请求,需OS做出限定支持,指定特定的Device SMBUS地址用于识别关机延时请求,如指定0x4A作为Device地址。BIT3-BIT6对应的延时时间可以参考表1所示:
表1
BIT6 | BIT5 | BIT4 | BIT3 | Delay Time |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 20s |
0 | 0 | 1 | 0 | 40s |
0 | 0 | 1 | 1 | 60s |
0 | 1 | 0 | 0 | 80s |
0 | 1 | 0 | 1 | 100s |
0 | 1 | 1 | 0 | 120s |
0 | 1 | 1 | 1 | 140s |
1 | 0 | 0 | 0 | 160s |
1 | 0 | 0 | 1 | 180s |
1 | 0 | 1 | 0 | 200s |
1 | 0 | 1 | 1 | 220s |
1 | 1 | 0 | 0 | 240s |
1 | 1 | 0 | 1 | 260s |
1 | 1 | 1 | 0 | 280s |
1 | 1 | 1 | 1 | 300s |
进一步,当前CPU Partition***完成开机或关机后,CPLD可将其余处于开机状态的CPU Partition***BIT3至BITE6的值修改为0000,并向其余处于开机状态的CPUPartition***发出HP_SMBUS_ALERTn_N信号,告知其OS关机延时请求解除。
以两路服务器为例,在CPLD会向OS发出延时关机请求的情况下:
参照图1所示,CPU Partition***1与CPU Partition***2隔离设计,在服务器为Partition工作模式的情况下,CPU Partition***1与CPU Partition***2可进行独立工作。另外,CPU Partition***1与CPU Partition***2共用一个管理单元,从而实现对整机***的管理功能,管理单元的部分Power采用与CPU Partition***同源的Power,Partition工作模式下通过Switch对Power进行切换。
参照图3所示,CPLD作为***的时序控制核心,与BMC和电源按键相连,用于检测开关机信号。CPLD与CPU Partition***1和Partition***2相连,进行开关机信息交互。CPLD通过PWRBTN信号控制CPU Partition***开关机,CPU Partition***通过BOOT_DONE通知CPLD开机完成,CPLD通过HP_SMBUS和HP_SMBUS_ALERT向OS发出延时关机触发请求,CPUPartition***通过SLP_S3_N通知CPLD进行关机掉电。
在OS与CPLD中进行软件设定,采用0x4A作为HPSMBC总线上用于OS延时关机触发请求的Device地址,采用低8位寄存器存取OS的延时关机触发信息;因Partition***关机时间平均在120s以内,故可将OS的关机触发延时时间固定为120s。当需要发出延时触发请求时,CPLD在BIT6-BIT3寄存器写入0110;当取消延时触发请求时,CPLD在BIT6-BIT3寄存器写入0000。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***1在关机状态下时对应的BMC触发PWRBTN1_BMC_N信号或电源按键触发PWRBTN1_BTN_N信号时,CPUPartition***1赢得开关机竞争。CPLD立即响应CPU Partition***1的开机请求,将PWRBTN1_PLD_N信号拉低。同时,CPLD检查CPU Partition***2的开关机状态。若CPUPartition***2处于关机状态,则CPLD继续推动CPU Partition***1的开机时序,直至接收到CPU Partition***1返回的BOOT_DONE1信号,表明CPU Partition***1完成开机。在CPU Partition***1开机期间,若触发CPU Partition***2的开机请求,CPLD将CPUPartition***2的开机请求暂时挂起,直至CPU Partition***1完成开机后才响应CPUPartition***2的开机请求。若CPU Partition***2处于开机状态,CPLD向CPU Partition***2中BIT6-BIT3对应的寄存器写入0110,并触发HP_SMBUS_ALERT2_N信号发出OS延时关机请求,避免OS在CPU Partition***1完成开机操作前触发关机请求。并且在CPUPartition***1进行开机操作期间,若用户通过PWRBTN2_BMC_N信号或PWRBTN2_BTN_N信号触发对CPU Partition***2的关机请求,CPLD将该关机请求暂时挂起,直至CPU Partition***1开机完毕后才响应CPU Partition***2的关机请求。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***1在开机状态下时对应的BMC触发PWRBTN1_BMC_N信号或电源按键触发PWRBTN1_BTN_N信号或CPUPartition***1触发SLP1_S3_N信号时,CPU Partition***1赢得开关机竞争。CPLD立即响应CPU Partition***1的关机请求,向CPU Partition***1发出PWRBTN1_PLD_N信号(其中,若由SLP1_S3_N触发关机,则无需向CPU Partition***1发送PWRBTN_PLD_N信号)。同时CPLD检查CPU Partition***2的开关机状态,若CPU Partition***2处于关机状态,则CPLD继续推动CPU Partition***1的关机时序,直至所有Power下电完成,表明CPUPartition***1完成关机。在CPU Partition***1进行关机期间,若用户触发对CPUPartition***2的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***1完成关机后,才响应对CPU Partition***2的开机请求。若CPU Partition***2处于开机状态,则CPLD向CPU Partition***2中BIT6-BIT3对应的寄存器写入0110,并触发HP_SMBUS_ALERT2_N信号发出OS延时关机请求,避免OS在CPU Partition***1完成关机操作前触发关机请求。CPLD推动CPU Partition***1剩余关机时序,直至所有Power下电完成,完成关机。在CPU Partition***1进行关机操作期间,若用户通过PWRBTN2_BMC_N信号或PWRBTN2_BTN_N信号触发CPU Partition***2关机请求,CPLD将该关机请求暂时挂起,直至CPUPartition***1关机完毕后才响应对CPU Partition***2的关机请求。
相反,在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***2在关机状态下时相应的BMC触发PWRBTN2_BMC_N信号或电源按键触发PWRBTN2_BTN_N信号时,CPU Partition***2赢得开关机竞争。CPLD立即响应CPU Partition***2的开机请求,发出PWRBTN2_PLD_N信号。同时,CPLD检查CPU Partition***1的开关机状态。若CPUPartition***1处于关机状态,则CPLD继续推动CPU Partition***2的开机时序,直至接收到CPU Partition***2返回的BOOT_DONE2信号,表明CPU Partition***2完成开机。在CPU Partition***2进行开机期间,若用户触发对CPU Partition***1的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***2完成开机后才响应对CPUPartition***1的开机请求。若CPU Partition***1处于开机状态,CPLD向CPU Partition***1中BIT6-BIT3对应的寄存器写入0110,并触发HP_SMBUS_ALERT1_N信号,发出OS延时关机请求,避免OS在CPU Partition***2进行开机期间触发对CPU Partition***1的关机请求。同时CPLD推动CPU Partition***2剩余开机时序,直至接收到CPU Partition***2返回的BOOT_DONE2信号,表明CPU Partition***2完成开机。在CPU Partition***2进行开机期间,若用户通过PWRBTN1_BMC_N或PWRBTN1_BTN_N信号触发对CPU Partition***1的关机请求,则CPLD将该关机请求暂时挂起,直至CPU Partition***2开机完毕后才响应对CPUPartition***1的关机请求。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***2在开机状态下时对应的BMC触发PWRBTN2_BMC_N信号或PWRBTN2_BTN_N信号或CPU Partition***2触发SLP2_S3_N信号时,CPU Partition***2赢得开关机竞争。CPLD立即响应对CPUPartition***2的关机请求,发出PWRBTN2_PLD_N信号(若由SLP2_S3_N触发关机,则无需向***发送PWRBTN_PLD_N信号)。同时检查CPU Partition***1的开关机状态。若CPUPartition***1处于关机状态,则CPLD继续推动CPU Partition***2的关机时序,直至所有Power下电完成,表明CPU Partition***2完成关机。在CPU Partition***2进行关机期间,若用户触发对CPU Partition***1的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***2完成关机后才响应对CPU Partition***1的开机请求。若CPUPartition***1处于开机状态,则CPLD向CPU Partition***1中BIT6-BIT3对应的寄存器写入0110,并触发HP_SMBUS_ALERT1_N信号,发出OS延时关机请求,避免OS在CPU Partition***2进行关机期间触发关机请求。同时CPLD推动CPU Partition***2剩余关机时序,直至所有Power下电完成,表明CPU Partition***2完成关机。在CPU Partition***2进行关机期间,若用户通过PWRBTN1_BMC_N信号或PWRBTN1_BTN_N信号触发对CPU Partition***1的关机请求,则CPLD将该关机请求暂时挂起,直至CPU Partition***2关机完毕后才响应对CPU Partition***1的关机请求。
在CPLD不会向OS发出延时关机请求的情况下:
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***1在关机状态下相应的BMC触发PWRBTN1_BMC_N信号或触发PWRBTN1_BTN_N信号时,CPU Partition***1赢得开关机竞争。CPLD立即响应CPU Partition***1的开机请求,发出PWRBTN1_PLD_N信号。同时CPLD检查CPU Partition***2的开关机状态。若CPU Partition***2处于关机状态,则CPLD继续推动CPU Partition***1的开机时序,直至接收到BOOT_DONE1信号,表明CPU Partition***1完成了开机。在CPU Partition***1进行开机期间,若用户触发对CPUPartition***2的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***1完成开机后,才响应CPU Partition***2的开机请求。若CPU Partition***2处于开机状态,则CPLD继续推动CPU Partition***1剩余开机时序,直至接收到CPU Partition***1返回的BOOT_DONE1信号,表明CPU Partition***1完成了开机。在CPU Partition***1进行开机期间,若用户通过PWRBTN2_BMC_N信号或PWRBTN2_BTN_N信号或OS通过SLP2_S3_N信号触发对CPU Partition***2的关机请求,则CPLD将该关机请求暂时挂起,直至CPU Partition***1开机完毕后才响应对CPU Partition***2的关机请求。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***1在开机状态下对应的BMC触发的PWRBTN1_BMC_N信号或电源按键触发的PWRBTN1_BTN_N信号或OS触发的SLP1_S3_N信号时,CPU Partition***1赢得开关机竞争。CPLD立即响应CPUPartition***1的关机请求,向CPU Partition***1发出PWRBTN1_PLD_N关机信号(若由SLP1_S3_N触发关机,则无需向CPU Partition***1发送PWRBTN_PLD_N信号)。同时检查CPUPartition***2的开关机状态,若CPU Partition***2处于关机状态,则CPLD继续推动CPUPartition***1的关机时序,直至所有Power下电完成,表明CPU Partition***1完成关机。在CPU Partition***1进行关机期间,若用户触发对CPU Partition***2的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***1完成关机后才响应对CPUPartition***2的开机请求。若CPU Partition***2处于开机状态,则CPLD推动CPUPartition***1剩余关机时序,直至所有Power下电完成,表明完成关机。在CPU Partition***1进行关机期间,若用户通过PWRBTN2_BMC_N信号或PWRBTN2_BTN_N信号或OS通过SLP2_S3_N信号触发对CPU Partition***2的关机请求,则CPLD将该关机请求暂时挂起,直至CPUPartition***1关机完毕后才响应对CPU Partition***2的关机请求。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***2在关机状态下时对应的BMC触发的PWRBTN2_BMC_N信号或电源按键触发的PWRBTN2_BTN_N信号时,CPU Partition***2赢得开关机竞争。CPLD立即响应CPU Partition***2的开机请求,发出PWRBTN2_PLD_N开机信号。同时CPLD检查CPU Partition***1的开关机状态。若CPUPartition***1处于关机状态,则CPLD继续推动CPU Partition***2的开机时序,直至接收到CPU Partition***2返回的BOOT_DONE2信号,表明CPU Partition***2完成了开机。在CPU Partition***2进行开机期间,若用户触发对CPU Partition***1的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***2完成开机后才响应对CPUPartition***1的开机请求。若CPU Partition***1处于开机状态,则CPLD继续推动CPUPartition***2的剩余开机时序,直至接收到CPU Partition***2返回的BOOT_DONE2信号,表明CPU Partition***2完成了开机。在CPU Partition***2进行开机期间,若用户通过PWRBTN1_BMC_N信号或PWRBTN1_BTN_N信号或OS通过SLP1_S3_N触发对CPU Partition***1的关机请求,则CPLD将该关机请求暂时挂起,直至CPU Partition***2开机完毕后才响应对CPU Partition***1的关机请求。
在服务器为Partition工作模式时,当CPLD首先识别到CPU Partition***2在开机状态下对应的BMC触发的PWRBTN2_BMC_N信号或电源按键触发的PWRBTN2_BTN_N信号或OS触发的SLP2_S3_N信号时,CPU Partition***2赢得开关机竞争。CPLD立即响应CPUPartition***2的关机请求,向CPU Partition***2发出PWRBTN2_PLD_N关机信号(若由SLP2_S3_N触发关机,则无需向***发送PWRBTN_PLD_N信号)。同时CPLD检查CPU Partition***1的开关机状态。若CPU Partition***1处于关机状态,则CPLD继续推动CPUPartition***2的关机时序,直至所有Power下电完成,表明CPU Partition***2完成关机。在CPU Partition***2进行关机期间,若用户触发对CPU Partition***1的开机请求,则CPLD将该开机请求暂时挂起,直至CPU Partition***2完成关机后才响应对CPUPartition***2的开机请求。若CPU Partition***1处于开机状态,则CPLD推动CPUPartition***2的剩余关机时序,直至所有Power下电完成,表明CPU Partition***2完成了关机。在CPU Partition***2进行关机期间,若用户通过PWRBTN1_BMC_N信号或PWRBTN1_BTN_N信号或OS通过SLP1_S3_N信号触发对CPU Partition***1的关机请求,则CPLD将该关机请求暂时挂起,直至CPU Partition***2关机完毕后,才响应对CPU Partition***1的关机请求。
综上所述,本申请所提供的开关机控制方法,采取错位开关机的控制策略,在某个CPU Partition***进行开机操作或关机操作的过程中,不会响应其他CPU Partition***的开机请求与关机请求,直到当前CPU Partition***完成开机操作或关机操作后,才根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,从而能够避免两个或多个CPU Partition***同时进行开关机操作而引发的Power波动,以及避免CPU Partition***进行Power切换时源端Power尚未达到有效电平而引发的Power波动,能够保证***运行的稳定性。
本申请还提供了一种开关机控制装置,下文描述的该装置可以与上文描述的方法相互对应参照。该装置包括:
存储模块,用于在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
响应模块,用于在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPU Partition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPU Partition***依次进行开机操作或关机操作。
在上述实施例的基础上,可选的,所述开机请求由BMC或电源按键触发;所述关机请求由所述BMC或所述电源按键或操作***触发。
在上述实施例的基础上,可选的,还包括:
判断模块,用于在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPU Partition***中是否存在处于开机状态的CPU Partition***;
设置模块,用于若存在,则设置其他CPU Partition***中处于开机状态的CPUPartition***的操作***延时触发所述关机请求。
在上述实施例的基础上,可选的,所述设置模块具体用于将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值,并向其他CPU Partition***中处于开机状态的CPU Partition***发送延时关机请求。
在上述实施例的基础上,设置模块具体通过Hot-Plug SMBUS总线将其他CPUPartition***中处于开机状态的CPU Partition***的所述目标寄存器的目标比特位的值修改为延时时间对应的值。
在上述实施例的基础上,可选的,还包括:
撤销模块,用于撤销所述延时关机请求。
本申请还提供了一种开关机控制设备,该设备包括存储器和处理器。其中,存储器,用于存储计算机程序;处理器,用于执行计算机程序实现如下的步骤:
在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPUPartition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPUPartition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPUPartition***依次进行开机操作或关机操作。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPUPartition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPUPartition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPUPartition***依次进行开机操作或关机操作。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的开关机控制方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (10)
1.一种开关机控制方法,其特征在于,包括:
在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPUPartition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPUPartition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPUPartition***依次进行开机操作或关机操作。
2.根据权利要求1所述的开关机控制方法,其特征在于,所述开机请求由BMC或电源按键触发;所述关机请求由所述BMC或所述电源按键或操作***触发。
3.根据权利要求2所述的开关机控制方法,其特征在于,还包括:
在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPU Partition***中是否存在处于开机状态的CPU Partition***;
若存在,则设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发所述关机请求。
4.根据权利要求3所述的开关机控制方法,其特征在于,所述设置其他CPU Partition***中处于开机状态的CPU Partition***的操作***延时触发关机请求包括:
将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值,并向其他CPU Partition***中处于开机状态的CPU Partition***发送延时关机请求。
5.根据权利要求4所述的开关机控制方法,其特征在于,将其他CPU Partition***中处于开机状态的CPU Partition***的目标寄存器的值修改为延时时间对应的值包括:
通过Hot-Plug SMBUS总线将其他CPU Partition***中处于开机状态的CPUPartition***的所述目标寄存器的目标比特位的值修改为延时时间对应的值。
6.根据权利要求5所述的开关机控制方法,其特征在于,还包括:
撤销所述延时关机请求。
7.一种开关机控制装置,其特征在于,包括:
存储模块,用于在当前CPU Partition***进行开机操作或关机操作的过程中,若接收到其他CPU Partition***的开机请求或关机请求,则存储其他CPU Partition***的开机请求或关机请求;
响应模块,用于在当前CPU Partition***完成开机操作或关机操作后,读取存储的其他CPU Partition***的开机请求或关机请求,并根据其他CPU Partition***的开机请求或关机请求的触发顺序,依次响应其他CPU Partition***的开机请求或关机请求,以使其他CPU Partition***依次进行开机操作或关机操作。
8.根据权利要求7所述的开关机控制装置,其特征在于,还包括:
判断模块,用于在响应当前CPU Partition***的开机请求或关机请求时,判断其他CPU Partition***中是否存在处于开机状态的CPU Partition***;
设置模块,用于若存在,则设置其他CPU Partition***中处于开机状态的CPUPartition***的操作***延时触发所述关机请求。
9.一种开关机控制设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的开关机控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的开关机控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224792.2A CN112462918B (zh) | 2020-11-05 | 2020-11-05 | 一种开关机控制方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011224792.2A CN112462918B (zh) | 2020-11-05 | 2020-11-05 | 一种开关机控制方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112462918A true CN112462918A (zh) | 2021-03-09 |
CN112462918B CN112462918B (zh) | 2022-06-17 |
Family
ID=74825829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011224792.2A Active CN112462918B (zh) | 2020-11-05 | 2020-11-05 | 一种开关机控制方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112462918B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446001A (zh) * | 2018-10-17 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种服务器开关机的控制方法及*** |
CN110515802A (zh) * | 2019-08-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种服务器开机故障的监测方法、***及相关组件 |
-
2020
- 2020-11-05 CN CN202011224792.2A patent/CN112462918B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446001A (zh) * | 2018-10-17 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种服务器开关机的控制方法及*** |
CN110515802A (zh) * | 2019-08-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种服务器开机故障的监测方法、***及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN112462918B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8001308B2 (en) | Method and system for handling a management interrupt event in a multi-processor computing device | |
US8484493B2 (en) | Method for pre-chassis power multi-slot blade identification and inventory | |
US11609767B2 (en) | Technologies for operating system transitions in multiple-operating-system environments | |
US8321622B2 (en) | Storage system with multiple controllers and multiple processing paths | |
CN103608792A (zh) | 支持多核架构下资源隔离的方法及*** | |
CN101021769B (zh) | 早期检测存储设备降级的装置和方法 | |
JP2014139819A (ja) | プロセッサ動作電圧の自動動的制御 | |
US20210216427A1 (en) | Method of managing storage system, electronic device and computer program product | |
JP4394298B2 (ja) | マルチプロセッサシステムとその共有メモリ制御方法、及び共有メモリ制御プログラム | |
WO2013101077A1 (en) | Reset of multi-core processing system | |
US20090172232A1 (en) | Method and system for handling a management interrupt event | |
CN114868111A (zh) | 通过减少双倍数据速率存储器训练实现片上***的存储器上下文恢复及引导时间减少 | |
US10234929B2 (en) | Storage system and control apparatus | |
CN111949320A (zh) | 提供***数据的方法、***及服务器 | |
US20130254446A1 (en) | Memory Management Method and Device for Distributed Computer System | |
CN112462918B (zh) | 一种开关机控制方法、装置、设备及计算机可读存储介质 | |
KR20070080493A (ko) | 하드웨어 폴링 처리기를 포함한 데이터 처리 시스템 | |
JP2010204885A (ja) | ディスクアレイ装置及びその制御方法 | |
US20190369907A1 (en) | Data writing device and method | |
US20180329476A1 (en) | Method for performing destination power management with aid of source data statistics in storage system, and associated apparatus | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
US10860078B2 (en) | Managing power request during cluster operations | |
CN103765394A (zh) | 信息处理装置和调度方法 | |
US8171271B2 (en) | Server device and method of sharing basic input/output system | |
KR102684193B1 (ko) | 자료처리장치 및 이의 자동 부팅 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |