一种应用于安培服务器的硬盘上下电控制系统的制作方法

文档序号:29698515发布日期:2022-04-16 13:43阅读:142来源:国知局
一种应用于安培服务器的硬盘上下电控制系统的制作方法

1.本技术涉及服务器硬盘管理技术领域,尤其涉及一种应用于安培服务器的硬盘上下电控制系统。


背景技术:

2.当前安培服务器仅支持对非易失性内存主机控制器接口规范(non-volatile memory express,nvme)硬盘进行暴力热插拔,单纯切断nvme硬盘的12v供电会导致安培服务器周边设备高速连接标准(peripheral component interconnect express,pcie)的识别错误并导致宕机。并且,当硬盘处于空闲状态时,若服务器仍然对硬盘进行持续供电,则会导致服务器较大的电力资源浪费,不利于节约能源。同时也会在服务器机箱内产生的大量热能,导致服务器长期运行在高温的环境中造成工作寿命的衰减。
3.当需要拔掉安培服务器平台背板中处于空闲状态的nvme硬盘时,服务器维护人员必须对nvme硬盘进行拔盘操作,既增加了维护人员的工作繁琐程度也加大了维护人员拔错硬盘的概率。
4.目前亟需一种应用于安培服务器的硬盘上下电方案,用以解决在安培服务器平台对nvme硬盘进行上下电时,可能导致安培服务器平台宕机、硬盘识别错误以及需要人工对nvme硬盘进行插拔的问题。


技术实现要素:

5.本技术实施例提供一种应用于安培服务器的硬盘上下电控制系统,用以解决安培服务平台对空闲硬盘进行上下电可能导致的平台宕机以及硬盘识别错误等问题。
6.第一方面,本技术实施例提供一种应用于安培服务器的硬盘上下电控制系统,包括基板管理控制器bmc、复杂可编程逻辑器件cpld、硬盘连接器和中央处理器cpu;其中,所述硬盘连接器用于插接硬盘;所述bmc,用于向所述cpld发送下电命令,所述下电命令用于对硬盘进行下电;所述cpld,用于接收来自所述bmc的所述下电命令,根据所述下电命令向cpu发送第一通知信息,所述第一通知信息用于指示所述硬盘处于不在位状态;所述cpu,用于接收来自所述cpld的所述第一通知信息,根据所述第一通知信息,切断所述硬盘对应的高速串行计算机扩展总线标准pcie连接。
7.在一种可能的设计中,所述cpld根据所述下电命令,向所述cpu发送第一通知信息,包括:接收到所述下电命令后,将第一寄存器的值取反后存储到第二寄存器和所述cpld模拟的第一芯片,所述第一寄存器的值用于指示存在硬盘插入,所述cpld模拟的第一芯片的值用于指示所述硬盘处于在位状态或不在位状态;若检测到所述第二寄存器的值发生变化,则将与所述cpu之间的热插拔警报信号设置为低电平。
8.在一种可能的设计中,所述cpu接收来自所述cpld的所述第一通知信息,根据所述第一通知信息,切断所述硬盘对应的pcie连接,包括:所述cpu检测到与所述cpld之间的热插拔警报信号为低电平后,读取所述cpld模拟的第一芯片的值;根据所述cpld模拟的第一
芯片的值确定所述硬盘处于不在位状态后,切断所述硬盘对应的pcie连接。
9.在一种可能的设计中,所述cpld还用于,在接收到所述下电命令且发送所述第一通知信息之后,去使能所述硬盘连接器的供电控制信号。
10.在一种可能的设计中,所述bmc用于,向所述cpld发送上电命令,所述上电命令用于对所述硬盘进行上电;所述cpld,还用于接收来自所述bmc的所述上电命令,根据所述上电命令向所述cpu发送第二通知信息,所述第二通知信息用于指示所述硬盘处于在位状态;所述cpu,还用于接收来自所述cpld的第二通知信息,根据所述第二通知信息,建立所述硬盘对应的pcie连接。
11.在一种可能的设计中,所述cpld根据所述上电命令向所述cpu发送第二通知信息,包括:接收到所述上电命令后,将第一寄存器的值后存储到第二寄存器和所述cpld模拟的第一芯片,所述第一寄存器的值用于指示存在硬盘插入,所述cpld模拟的第一芯片的值用于指示所述硬盘处于在位状态或不在位状态;若检测到所述第二寄存器的值发生变化,则将与所述cpu之间的热插拔警报信号设置为低电平。
12.在一种可能的设计中,所述cpu接收来自所述cpld的所述第二通知信息,根据所述第二通知信息,建立所述硬盘对应的pcie连接,包括:所述cpu检测到与所述cpld之间的热插拔警报信号为低电平后,读取所述cpld模拟的第一芯片的值;根据所述cpld模拟的第一芯片的值确定所述硬盘处于在位状态后,建立所述硬盘对应的pcie连接。
13.在一种可能的设计中,所述cpld还用于,在接收到所述上电命令且发送所述第二通知信息后,使能所述硬盘连接器的供电控制信号。
14.在一种可能的设计中,所述cpld还用于,在每个时钟上升沿,检测与所述硬盘连接器之间传输的prsnt信号值和ifdet信号值,将所述prsnt信号值取反后与所述ifdet信号值做或运算的运算结果存储到第一寄存器。
15.第二方面,本技术实施例提供一种安培服务器,所述安培服务器包括如第一方面中任一项所述的基板管理控制器bmc、复杂可编程逻辑器件cpld、硬盘连接器和中央处理器cpu。
16.本技术实施例中,cpld接收到来自bmc的下电命令后,根据下电命令向cpu发送第一通知信息,该第一通知信息用于指示硬盘处于不在位状态,如此,cpu接收到第一通知信息后,可认为此时nvme硬盘已经不在位,进而切断该nvme硬盘对应的pcie连接。该方法可以实现通过bmc对nvme硬盘进行远程下电控制,并避免因暴力破坏pcie连接状态而导致安培服务器宕机的问题。此外,由于cpld已经通知cpu该nvme硬盘不在位,os下盘符也会消失。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1为本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统的示意图;
19.图2为本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统的cpld
的信号处理流程的示意图;
20.图3为本技术实施例提供的一种安培服务器的示意图;
21.图4为本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统的硬件的示意图。
具体实施方式
22.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
23.在本技术的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
24.图1示例性的示出了本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统,如图1所示,该硬盘上下电控制系统包括基板管理控制器(baseboard manager controller,bmc)、复杂可编程逻辑器件(complex programming logic device,cpld)、硬盘连接器和中央处理器(central processing unit,cpu)。
25.cpld通过供电控制电路对硬盘的12v供电进行上电或下电处理,其中供电控制电路可以包括型号为mp5000adq_lf_z的供电芯片。u.2规格的硬盘连接器的pin4引脚和pin10引脚通过通用型输入输出(general-purpose input/output,gpio),接入到cpld中,其中,pin4引脚传输ifdet信号,pin10引脚传输prsnt信号。硬盘连接器可以用于插接sata硬盘、sas硬盘或nvme硬盘等多种规格的硬盘。
26.bmc和cpld通过集成电路总线(inter-integrated circuit,iic)进行数据交互。bmc向cpld发送上电命令或下电命令,该上电命令用于对硬盘进行上电,该下电命令用于对硬盘进行下电。cpld在检测到有硬盘插入后,可以向bmc发送对应槽位的硬盘状态信息,使bmc获知哪个槽位的硬盘连接器上有硬盘插入。
27.需要说明的是,对硬盘的上电或下电命令通常为某固定数值,由cpld确定并提交给bmc。例如,该命令可以为一个字节,即由0或1组成的8位数字,该命令的后两位可以表示对硬盘上电或是下电,如01表示对nvme硬盘进行下电操作,10表示对nvme硬盘进行上电操作,该命令的其余6位可以表示具体是对哪个槽位硬盘连接器上插入的nvme硬盘进行上电或下电操作,如00000101表示对000001槽位的硬盘连接器上插入的nvme硬盘进行下电操作,00001010表示对000010槽位的硬盘连接器上插入的nvme硬盘进行上电操作。上述上电命令或下电命令的表示方式,仅是一种示例,本技术对此不作限定。
28.cpld通过一组虚拟引脚接口(virtual pin port,vpp)与cpu进行数据交互,该组vpp由iic模块及cpld模拟的第一芯片组成。其中,第一芯片可以是型号为pca9535的芯片或者型号为pca9555的芯片,并且cpu可以读取由cpld模拟的第一芯片的值,下文以型号为pca9555的芯片为例详细介绍本技术的技术方案。cpld与cpu还有一个单端的gpio信号作为cpld通知cpu的热插拔警报信号(hot_plug_alert)。cpld接收到来自bmc的上电或下电命令后,根据上电或下电命令向cpu发送第一通知信息,其中,第一通知信息用于指示硬盘的在位状态。cpu接收来自cpld的第一通知信息,根据第一通知信息,切断或建立硬盘对应的
pcie连接。
29.当维护人员需要停止某一闲置nvme硬盘工作并做下电处理时,首先通过bmc对cpld发送下电命令。cpld接收到bmc发送的下电命令后,比对该命令的数据格式(用于确定具体盘号)后,根据下电命令向cpu发送第一通知信息,该第一通知信息用于指示nvme硬盘处于不在位状态。cpu接收到来自cpld的第一通知信息后,根据第一通知信息,切断nvme硬盘对应的高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)连接。此后,cpld去使能(disable)硬盘连接器的供电控制信号,切断安培服务器对nvme硬盘的12v供电。其中,供电控制信号为硬盘连接器的供电控制电路的使能信号。这样即可避免因暴力破坏pcie连接状态而导致安培服务器宕机的问题,并且,由于在cpld去使能硬盘连接器的供电控制信号之前已经通知cpu该nvme硬盘不在位,因此操作系统(operating system,os)下盘符也会消失。
30.具体地,在每个时钟上升沿,cpld检测与硬盘连接器之间传输的prsnt信号值和ifdet信号值,将prsnt信号值取反后与所述ifdet信号值做或运算的运算结果存储到第一寄存器。cpld接收到下电命令后,将第一寄存器的值取反后存储到第二寄存器和cpld模拟的pca9555。其中,第一寄存器的值用于指示存在nvme硬盘插入,cpld模拟的pca9555的值用于指示nvme硬盘处于在位状态或不在位状态。若cpld检测到第二寄存器的值发生变化,则将与cpu之间的热插拔警报信号(hot_plug_alert)设置为低电平,这里的热插拔警报信号相当于一个中断信号,cpu检测到热插拔警报信号变为低电平后,暂停执行当前正在执行程序,转去读取cpld模拟的pca9555的值。可选的,在一种可能的实施方式中,cpld接收到下电命令后,将第一寄存器的值取反后存储到第三寄存器,再将第三寄存器的值存储到第二寄存器和cpld模拟的pca9555。该第三寄存器用于暂存第一寄存器取反后的值。
31.cpu检测到与cpld之间的热插拔警报信号为低电平后,可读取cpld模拟的pca9555的值,根据cpld模拟的pca9555的值确定nvme硬盘处于不在位状态,然后释放热插拔警报信号,并切断nvme硬盘对应的pcie连接。其中,释放热插拔警报信号是指将热插拔警报信号由低电平转换为高电平,使cpu继续执行之前执行的程序,并且cpu也可以继续接收来自cpld的热插拔警报信号。
32.当维护人员需要对某一闲置nvme硬盘做上电处理时,首先通过bmc对cpld发送上电命令。cpld接收到bmc发送的上电命令后,比对该命令的数据格式(用于确定具体盘号)后,根据上电命令向cpu发送第二通知信息,该第二通知信息用于指示nvme硬盘处于在位状态。cpu接收到来自cpld的第二通知信息后,根据第二通知信息,建立nvme硬盘对应的pcie连接。此后,cpld使能(enable)硬盘连接器的供电控制信号,使得安培服务器向nvme硬盘提供12v供电。其中,供电控制信号为硬盘连接器的供电控制电路的使能信号。由于安培服务器cpu识别pcie设备前需要确认设备在位后才会有pcie链路训练的动作,否则不会对pciee设备进行初始化。其中,pcie链路训练是指通过初始化pcie链路最终让pcie链路两端的设备进行数据通信的过程。因此,cpld在使能硬盘连接器的供电控制信号前,需要向cpu发送第二通知信息,使cpu认为此时nvme硬盘已经在位,然后cpu会自主对nvme硬盘进行初始化,从而避免安培服务器带外上电时不识别nvme硬盘的问题。
33.具体地,在每个时钟上升沿,cpld检测与硬盘连接器之间传输的prsnt信号值和ifdet信号值,将prsnt信号值取反后与所述ifdet信号值做或运算的运算结果存储到第一
寄存器。cpld接收到上电命令后,将第一寄存器的值存储到第二寄存器和cpld模拟的pca9555。其中,第一寄存器的值用于指示存在nvme硬盘插入,cpld模拟的pca9555的值用于指示nvme硬盘处于在位状态或不在位状态。若cpld检测到第二寄存器的值发生变化,则将与cpu之间的热插拔警报信号(hot_plug_alert)设置为低电平。可选的,在一种可能的实施方式中,cpld接收到下电命令后,将第一寄存器的值存储到第四寄存器,再将第四寄存器的值存储到第二寄存器和cpld模拟的pca9555。该第四寄存器用于暂存第一寄存器的值。
34.cpu检测到与cpld之间的热插拔警报信号为低电平后,可读取cpld模拟的pca9555的值,根据cpld模拟的pca9555的值确定nvme硬盘处于在位状态后,释放热插拔警报信号,并建立nvme硬盘对应的pcie连接。
35.为了更清楚地理解本技术实施例,下面结合图2和表1对本技术技术方案中cpld的信号处理流程进行详细描述。
36.表1为sas/sata硬盘和nvme硬盘插入或拔出时,pin10和pin4的状态变化表。
37.表1
[0038][0039]
步骤201、cpld检测pin4的ifdet值是否变低,若变低表示有硬盘已插入,则执行步骤202;若为高电平表示没有硬盘插入,则重复执行步骤201。
[0040]
由表1可知,当sata/sas硬盘或者nvme硬盘插入安培服务器背板的硬盘连接器时,pin4的ifdet信号都为低电平。cpld检测到ifdet值变低之后对该硬盘的12v供电ic的使能端做使能处理,硬盘上电。需要说明的是,这里无论是sata/sas硬盘或者nvme硬盘,只要cpld检测到有硬盘插入都对其做上电处理。
[0041]
步骤202、cpld检测prsnt及ifdet值并将prsnt值取反后与ifdet做或运算处理,并将计算结果放入寄存器a(相当于第一寄存器)中。
[0042]
该计算结果在有nvme硬盘插入时为0,无nvme硬盘插入为1,sata/sas硬盘不论盘是否插入均为1。以nvme硬盘为例,当nvme硬盘插入,prsnt为高电平(即为1),ifdet为低电平(即为0)。prsnt取反后变为0,与ifdet做或运算后,计算结果为0;当nvme硬盘拔出,prsnt为低高电平,即为0,ifdet为高电平,即为1。prsnt取反后变为1,与ifdet做或运算后,计算结果为1。
[0043]
步骤203、判断寄存器a的值是否为0,若为0,则执行步骤204;若不为0,则重复执行步骤202。
[0044]
根据步骤202的计算结果可知,只有nvme硬盘插入时计算结果为0,因此通过判断寄存器a的值是否为0可以确定是否有nvme硬盘插入。
[0045]
步骤204、cpld检测bmc是否发送上电命令或下电命令,若下发下电命令,则执行步骤205;若下发上电命令,则执行步骤206。
[0046]
步骤205、将寄存器a的值取反后存入至寄存器d(相当于第二寄存器)和cpld模拟的pca9555。可选的,先将寄存器a的值取反后存入寄存器b(相当于第三寄存器),再将寄存器b的值存入寄存器d和cpld模拟的pca9555。
[0047]
具体的,寄存器a的值为0,将a的值取反后存入至寄存器d和cpld模拟的pca9555中,此时,寄存器d的值为1,cpld模拟的pca9555的值为1。
[0048]
步骤206、将寄存器a的值存入寄存器d和cpld模拟的pca9555。可选的,先将寄存器a的值存入寄存器c(相当于第四寄存器),再将寄存器c的值存入寄存器d和cpld模拟的pca9555。
[0049]
具体的,寄存器a的值为0,将a的值取反后存入至寄存器d和cpld模拟的pca9555中,此时,寄存器d的值为0,cpld模拟的pca9555的值为0。
[0050]
步骤207、cpld检测寄存器d的值是否变化,若发生变化,则执行步骤208;若没有变化,则执行重复执行步骤202。
[0051]
cpld检测寄存器d的值是否变化,若发生变化,则表示有上电或下电命令下发。
[0052]
cpld在每一时钟上升沿均对prsnt和ifdet的值进行计算,将计算结果存放到寄存器a中,再将寄存器a的值进行处理后存入寄存器d,寄存器d存储的是当前计算值,称其为现态。由于d寄存器之前存储的值经过了多次时钟的处理,其值是多个时钟之前的计算结果,称其为次态。若有上电命令或下电命令下发,则寄存器d的值会发生变化,因此次态和现态不相等。
[0053]
步骤208、将cpld与cpu直连的hot_plug_alert信号设置为低电平。
[0054]
当cpld检测到有上电命令或下电命令下发,则将cpld与cpu直连的hot_plug_alert信号设置为低电平。
[0055]
步骤209、cpu读取cpld模拟的pca9555的值。
[0056]
cpu读取cpld模拟的pca9555的值,其中,cpld模拟的pca9555的值为1表示nvme硬盘不在位,cpld模拟的pca9555的值为0表示nvme硬盘在位。
[0057]
cpu读取完成后,释放hot_plug_alert信号。之后cpld根据下电命令去使能硬盘连接器的供电控制信号,使nvme硬盘下电;或者根据上电命令使能硬盘连接器的供电控制信号,使nvme硬盘上电。
[0058]
本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统,当需要对安培服务器背板上插入的nvme硬盘进行下电处理时,可在去使能硬盘连接器的供电控制信号前向cpu发送热插拔警报信号,触发cpu读取cpld模拟的pca9555的值。cpu根据cpld模拟的pca9555的值可确定此时nvme硬盘已经不在位,进而可断掉pcie连接。如此可知,该方案可实现通过bmc对nvme硬盘进行远程下电控制,又可避免因暴力破坏pcie连接状态而导致安培服务器宕机的问题。此外,由于在cpld去使能硬盘连接器的供电控制信号之前已经通知cpu该nvme硬盘不在位,因此os下盘符也会消失。
[0059]
当需要对安培服务器背板上插入的nvme硬盘进行上电处理时,在使能硬盘连接器的供电控制信号前向cpu发送热插拔警报信号,触发cpu读取cpld模拟的pca9555的值。cpu根据cpld模拟的pca9555的值确定此时nvme硬盘在位,进而建立pcie连接。如此可知,该方案可实现通过bmc对nvme硬盘进行远程上电控制。由于在cpld使能硬盘连接器的供电控制信号之前已经通知cpu该nvme硬盘在位,因此避免安培服务器带外上电时不识别nvme硬盘
的问题。
[0060]
图3示例性地示出了本技术实施例提供的一种安培服务器,该安培服务器300包括上文的实施例中描述的基板管理控制器bmc310、复杂可编程逻辑器件cpld320、硬盘连接器330和中央处理器cpu340。
[0061]
图4示例性地示出了本技术实施例提供的一种应用于安培服务器的硬盘上下电控制系统的硬件的示意图。
[0062]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0063]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0064]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0065]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0066]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1