CN110069366B - 一种重加载方法、装置及服务器 - Google Patents

一种重加载方法、装置及服务器 Download PDF

Info

Publication number
CN110069366B
CN110069366B CN201810069461.2A CN201810069461A CN110069366B CN 110069366 B CN110069366 B CN 110069366B CN 201810069461 A CN201810069461 A CN 201810069461A CN 110069366 B CN110069366 B CN 110069366B
Authority
CN
China
Prior art keywords
fpga unit
identity information
fpga
pcie interface
bmc
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.)
Active
Application number
CN201810069461.2A
Other languages
English (en)
Other versions
CN110069366A (zh
Inventor
张胜
彭亮
余璘
刘欢
闫晓辉
徐浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810069461.2A priority Critical patent/CN110069366B/zh
Publication of CN110069366A publication Critical patent/CN110069366A/zh
Application granted granted Critical
Publication of CN110069366B publication Critical patent/CN110069366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

本申请提供一种重加载方法、装置及服务器,该方法包括:确定发生异常的FPGA单元的身份信息;根据所述身份信息获取所述FPGA单元的位置标识;将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。通过本申请的技术方案,通过将FPGA单元的位置标识发送给BMC,以使BMC根据位置标识对该FPGA单元进行重加载操作。这样,即使CPU无法对FPGA单元进行重加载操作,也可以通过BMC对FPGA单元进行重加载操作,借助BMC的I2C接口实现FPGA单元的重加载操作,使得FPGA单元可以恢复,保证FPGA单元能够正常使用。

Description

一种重加载方法、装置及服务器
技术领域
本申请涉及互联网技术领域,尤其涉及一种重加载方法、装置及服务器。
背景技术
随着通信技术的发展,在PAL(Programmable Array Logic,可编程阵列逻辑)、GAL(Generic Array Logic,通用阵列逻辑)、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)等器件的基础上,已经发展出FPGA(Field Programmable Gate Array,现场可编程门阵列),FPGA可以作为ASIC(Application Specific Integrated Circuit,专用集成电路)领域中的一种半定制电路,FPGA既可以解决定制电路的不足,又可以克服原有可编程器件门电路数有限的缺点。
在通常情况下,服务器内可以部署多个FPGA单元,服务器的CPU(CentralProcessing Unit,中央处理器)可以通过PCIE(Peripheral Component InterconnectExpress,外设部件快速互连标准)接口与FPGA单元连接。CPU可以通过PCIE接口与FPGA单元通信,如通过PCIE接口发送数据、通过PCIE接口接收数据。
但是,当PCIE接口故障时,CPU无法通过PCIE接口与FPGA单元通信,也就无法对FPGA单元进行重加载操作,导致FPGA单元的异常无法恢复。
发明内容
本申请提供一种重加载方法,应用于服务器,所述方法包括:
确定发生异常的FPGA单元的身份信息;
根据所述身份信息获取所述FPGA单元的位置标识;
将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。
本申请提供一种重加载装置,应用于服务器,所述装置包括:
确定模块,用于确定发生异常的FPGA单元的身份信息;
获取模块,用于根据所述身份信息获取所述FPGA单元的位置标识;
发送模块,用于将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。
本申请提供一种服务器,所述服务器包括:
处理器,用于确定发生异常的FPGA单元的身份信息;根据所述身份信息获取所述FPGA单元的位置标识;将所述FPGA单元的位置标识发送给BMC;
BMC,用于根据FPGA单元的位置标识对所述FPGA单元进行重加载操作。
基于上述技术方案,本申请实施例中,通过将发生异常的FPGA单元的位置标识发送给BMC(Baseboard Management Controller,底板管理控制器),以使BMC根据该位置标识对该FPGA单元进行重加载操作。这样,即使CPU无法对FPGA单元进行重加载操作,也可以通过BMC对FPGA单元进行重加载操作,借助BMC的I2C(Inter Integrated Circuit,集成电路总线)接口实现FPGA单元的重加载操作,使得FPGA单元可以恢复,保证FPGA单元能够正常使用。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的服务器的结构示意图;
图2是本申请一种实施方式中的重加载方法的流程图;
图3是本申请另一种实施方式中的重加载方法的流程图;
图4是本申请一种实施方式中的重加载装置的结构图。
具体实施方式
在本申请使实施例用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出了一种重加载方法,该方法可以应用于服务器(如管理服务器、业务服务器等),且该服务器内可以部署一个或者多个FPGA单元,对此服务器的类型不做限制,只要该服务器内部署一个或者多个FPGA单元即可。而且,所述重加载方法用于对该服务器内的FPGA单元进行重加载操作。
在一个例子中,FPGA单元也可以称为FPGA组件。在实际应用中,FPGA单元可以包括但不限于:FPGA板卡、FPGA加速卡、FPGA加速板卡等,对此不做限制,为了方便描述,在本实施例中,以FPGA单元为例进行说明。
参见图1所示,为服务器的结构示意图,该服务器可以包括但不限于:PCH(Platform Controller Hub,集成南桥)、CPU、BMC和FPGA单元,当然,图1只是服务器的一个示例,对此服务器的结构不做限制,如可以包括CPU、BMC和FPGA单元。参见图1所示,FPGA单元的数量可以为n个,对此数量不做限制。例如,本实施例以4个FPGA单元为例进行说明,这4个FPGA单元可以分别为FPGA单元1、FPGA单元2、FPGA单元3、FPGA单元4。
参见图1所示,PCH可以通过DMI(Direct Media Interface,直接媒体接口)总线与CPU连接,且PCH可以通过eSPI(Enhanced Serial Peripheral Interface,增强串行外设接口)/LPC(Low Pin Count,低引脚数目)总线与BMC连接。
参见图1所示,CPU可以包括多个PCIE接口(其可以称为带内业务接口),且这些PCIE接口可以通过PCIE总线(即CPU的PCIE接口与FPGA单元的PCIE接口之间的总线)与FPGA单元连接,CPU可以通过PCIE接口与FPGA单元进行通信,例如,CPU可以通过PCIE接口向FPGA单元发送数据、CPU可以通过PCIE接口接收FPGA单元发送的数据。其中,PCIE接口的数量可以与FPGA单元的数量相同,或者,PCIE接口的数量可以多于FPGA单元的数量。为了方便描述,以CPU包括PCIE接口1、PCIE接口2、PCIE接口3、PCIE接口4为例进行说明,PCIE接口1与FPGA单元1连接,PCIE接口2与FPGA单元2连接,PCIE接口3与FPGA单元3连接,PCIE接口4与FPGA单元4连接。
参见图1所示,BMC可以包括多个I2C接口(其可以称为带外管理接口),且这些I2C接口可以通过I2C总线(即BMC的I2C接口与FPGA单元的I2C接口(图1中未示出)之间的总线)与FPGA单元连接,BMC可以通过I2C接口与FPGA单元进行通信,例如,BMC可以通过I2C接口向FPGA单元发送数据、BMC也可以通过I2C接口接收FPGA单元发送的数据。其中,I2C接口的数量可以与FPGA单元的数量相同,或者,I2C接口的数量也可以多于FPGA单元的数量。为了方便描述,以BMC包括I2C接口1、I2C接口2、I2C接口3、I2C接口4为例进行说明,I2C接口1与FPGA单元1连接,I2C接口2与FPGA单元2连接,I2C接口3与FPGA单元3连接,I2C接口4与FPGA单元4连接。
参见图1所示,FPGA单元可以包括管理芯片和FPGA芯片,且管理芯片和FPGA芯片连接。CPU通过PCIE接口与FPGA单元的FPGA芯片连接,BMC通过I2C接口与FPGA单元的管理芯片连接。PCIE接口1与FPGA芯片1连接,PCIE接口2与FPGA芯片2连接,PCIE接口3与FPGA芯片3连接,PCIE接口4与FPGA芯片4连接;I2C接口1与管理芯片1连接,I2C接口2与管理芯片2连接,I2C接口3与管理芯片3连接,I2C接口4与管理芯片4连接。
在一个例子中,管理芯片可以包括但不限于CPLD或者逻辑解析器件,对管理芯片的类型不做限制,只要位于FPGA单元内部,与FPGA芯片连接即可。
参见图1所示,服务器包括多个位置(也可以将服务器的称为称为槽位,后续以槽位为例进行说明),每个槽位具有唯一的位置标识(也可以称为槽位标识或者槽位号),为了方便描述,以服务器包括4个槽位,这4个槽位的位置标识分别为槽位1、槽位2、槽位3和槽位4为例进行说明。FPGA单元可以插入到服务器的槽位,从而正常工作。图1中,FPGA单元1插入到槽位1,FPGA单元2插入到槽位2,FPGA单元3插入到槽位3,FPGA单元4插入到槽位4。
从图1可以看出,若CPU的PCIE接口、或者FPGA单元的PCIE接口、或者PCIE总线发生故障,CPU无法与FPGA单元通信,导致无法对FPGA单元进行重加载操作,FPGA单元的异常无法恢复。若FPGA芯片的内部逻辑出现异常,即使CPU能够将数据发送给FPGA芯片,FPGA芯片也无法对CPU的数据进行处理,导致无法对FPGA单元进行重加载操作,FPGA单元的异常无法恢复。
针对上述发现,本申请实施例中,若CPU的PCIE接口、或者FPGA单元的PCIE接口、或者PCIE总线发生故障,或者,FPGA芯片的内部逻辑出现异常,则:可以借助BMC的I2C接口,由BMC通过I2C接口向FPGA单元的管理芯片发送数据,且管理芯片可以根据该数据对FPGA单元进行重加载操作。
综上可以看出,当CPU的PCIE接口、或者FPGA单元的PCIE接口、或者PCIE总线发生故障时,通过借助BMC的I2C接口,可以将用于对FPGA单元进行重加载操作的数据发送给FPGA单元的管理芯片。此外,即使FPGA芯片的内部逻辑出现异常,也不会影响管理芯片的工作,也就是说,管理芯片可以正常工作,管理芯片能够根据BMC的数据,对FPGA单元进行重加载操作。
在一个例子中,BMC对FPGA单元进行重加载操作时,BMC需要能够获知发生异常的FPGA单元的位置标识,而为了使BMC获知FPGA单元的位置标识,则可以在关联表中记录FPGA单元的身份信息与FPGA单元的位置标识的对应关系,以下对这一过程进行说明。参见图2所示,为本申请实施例中提出的重加载方法的流程图,该方法可以应用于服务器,该方法可以包括以下步骤:
步骤201,为与PCIE接口连接的FPGA单元分配身份信息,且该身份信息具有唯一性,也就是说,为不同的FPGA单元分配的身份信息可以不同。
步骤202,确定PCIE接口的根端口标识、与该根端口标识对应的位置标识。
步骤203,在关联表中记录分配的身份信息与确定的位置标识的对应关系。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
针对步骤201,在一个例子中,针对“为与PCIE接口连接的FPGA单元分配身份信息”的过程,可以包括但不限于:在服务器的开机初始化过程,扫描服务器的PCIE接口;为与扫描到的PCIE接口连接的FPGA单元分配身份信息。
例如,在服务器的开机初始化过程中,服务器(如服务器的BIOS(Basic InputOutput System,基本输入输出系统)等)扫描该服务器的PCIE接口(如CPU的PCIE接口等),对此扫描过程不做限制。在扫描到PCIE接口1(即扫描到与该PCIE接口1连接的FPGA单元1)后,可以为与该PCIE接口1连接的FPGA单元1分配身份信息,如身份信息1,对此分配过程不做限制,只要为不同的FPGA单元分配不同的身份信息即可。同理,在扫描到PCIE接口2后,可以为与该PCIE接口2连接的FPGA单元2分配身份信息2;在扫描到PCIE接口3后,可以为与该PCIE接口3连接的FPGA单元3分配身份信息3。在扫描到PCIE接口4后,可以为与该PCIE接口4连接的FPGA单元4分配身份信息4。
在一个例子中,上述身份信息可以包括但不限于:BDF(Bus Device Function,总线设备功能)信息,所述BDF信息用于表示FPGA单元的唯一标识。
针对步骤202,在一个例子中,针对“确定PCIE接口的根端口标识”的过程,可以包括但不限于:由于每个PCIE接口具有唯一的根端口标识,因此,在扫描到PCIE接口后,可以确定该PCIE接口的根端口标识。例如,PCIE接口1的根端口标识是PCIE接口1,PCIE接口2的根端口标识是PCIE接口2,PCIE接口3的根端口标识是PCIE接口3,PCIE接口4的根端口标识是PCIE接口4。
针对步骤202,在一个例子中,针对“确定与该根端口标识对应的位置标识”的过程,可以包括但不限于如下方式:可以通过该根端口标识查询静态表,得到与该根端口标识对应的位置标识。其中,所述静态表可以用于记录PCIE接口的根端口标识、与该PCIE接口连接的FPGA单元的位置标识的对应关系。
例如,服务器可以预先配置静态表,该静态表用于记录PCIE接口1的根端口标识(如PCIE接口1)、与PCIE接口1连接的FPGA单元1的位置标识(如槽位1)的对应关系,PCIE接口2与槽位2的对应关系,PCIE接口3与槽位3的对应关系,PCIE接口4与槽位4的对应关系。在此基础上,服务器在确定根端口标识后,通过查询静态表,就可以得到与该根端口标识对应的位置标识。
在步骤201中,在扫描到PCIE接口1后,为与PCIE接口1连接的FPGA单元1分配身份信息1;在步骤202中,确定PCIE接口1的根端口标识是PCIE接口1,并确定与PCIE接口1连接的FPGA单元1的位置标识是槽位1;在步骤203中,在关联表中记录身份信息1与槽位1的对应关系,或者,在关联表中记录身份信息1、PCIE接口1、槽位1的对应关系。同理,在关联表中记录身份信息2与槽位2的对应关系,或者,在关联表中记录身份信息2、PCIE接口2、槽位2的对应关系;在关联表中记录身份信息3与槽位3的对应关系,或者,在关联表中记录身份信息3、PCIE接口3、槽位3的对应关系;在关联表中记录身份信息4与槽位4的对应关系,或者,在关联表中记录身份信息4、PCIE接口4、槽位4的对应关系。参见表1或者表2所示,为关联表的一个示例。
表1
身份信息 位置标识
身份信息1 槽位1
身份信息2 槽位2
身份信息3 槽位3
身份信息4 槽位3
表2
在一个例子中,在服务器的开机初始化过程中,服务器的BIOS扫描PCIE接口,为与该PCIE接口连接的FPGA单元分配身份信息,并确定该PCIE接口的根端口标识(如root port的标识),然后,将该身份信息与该根端口标识的对应关系,记录到关联表中。在服务器启动后,针对关联表中的每个根端口标识,服务器的CPU通过查询静态表,得到与该根端口标识对应的位置标识,并在关联表中记录身份信息与位置标识的对应关系,如表1所示,或者,可以在关联表中记录身份信息、根端口标识、与位置标识的对应关系,如表2所示。
在一个例子中,上述关联表可以存储在SMBIOS(System Management Basic InputOutput System,系统管理基本输入输出系统)的Type9(类型9)数据表结构中;当然,关联表还可以存储在其它位置,对此不做限制,以存储在SMBIOS的Type9数据表结构为例进行说明。其中,SMBIOS的实现可以包括如下数据表结构,如用于存储BIOS信息的Type0,用于存储系统信息的Type1,用于存储系统外围或底架信息的Type3,用于存储处理器信息的Type4,用于存储高速缓存信息的Type7,用于存储系统插槽信息的Type9,用于存储物理存储阵列信息的Type16等,而上述关联表就可以存储在用于存储系统插槽信息的Type9中。
进一步的,在上述应用场景下,参见图3所示,为本申请实施例中提出的重加载方法的流程图,该方法可以应用于服务器,该方法可以包括以下步骤:
步骤301,确定发生异常的FPGA单元的身份信息。
步骤302,根据该身份信息获取该FPGA单元的位置标识。
步骤303,将该FPGA单元的位置标识发送给BMC,以使所述BMC根据该FPGA单元的位置标识,对该FPGA单元进行重加载操作。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
针对步骤301,在一个例子中,针对“确定发生异常的FPGA单元的身份信息”的过程,可以包括:服务器可以记录每个FPGA单元的身份信息,如记录FPGA单元1的身份信息1等。基于此,在某个FPGA单元发生异常时,可以直接读取该FPGA单元的身份信息,即发生异常的FPGA单元的身份信息。
针对步骤302,在一个例子中,针对“根据该身份信息获取该FPGA单元的位置标识”的过程,可以包括但不限于如下方式:服务器可以通过该身份信息查询上述关联表,从而得到与该身份信息对应的位置标识。其中,所述关联表用于记录FPGA单元的身份信息与该FPGA单元的位置标识的对应关系。
在上述实施例中,已经在关联表中记录身份信息与位置标识的对应关系,如表1或表2所示。基于此,在确定发生异常的FPGA单元的身份信息后,可以通过该身份信息查询上述关联表,从而得到该身份信息对应的位置标识。
例如,假设FPGA单元1发生异常,则确定发生异常的FPGA单元1的身份信息1,通过身份信息1查询表1或表2,得到身份信息1对应的槽位1。
针对步骤303,在一个例子中,在确定FPGA单元的位置标识后,则服务器可以将该位置标识(如槽位1)发送给BMC,BMC在接收到该位置标识之后,就可以根据该位置标识,对该位置标识对应的FPGA单元进行重加载操作。
在上述实施例中,在某个FPGA单元发生异常时,服务器的FPGA单元驱动(后续简称为板卡驱动)可以获知该FPGA单元发生异常,并读取该FPGA单元的身份信息,如身份信息1。然后,板卡驱动通过身份信息1查询上述关联表(如SMBIOS的Type9数据表结构中,存储的关联表),得到身份信息1对应的位置标识(如槽位1)。然后,板卡驱动将位置标识(如槽位1)发送给BMC。
在一个例子中,针对“BMC根据该FPGA单元的位置标识,对该FPGA单元进行重加载操作”的过程,可以包括但不限于:BMC通过该FPGA单元的位置标识对应的I2C接口发送重加载操作指令,该重加载操作指令用于对FPGA单元进行重加载操作。FPGA单元的管理芯片在接收到该重加载操作指令之后,可以利用该重加载操作指令对该FPGA单元的FPGA芯片进行重加载操作。
例如,BMC在接收到FPGA单元的位置标识(如槽位1)后,先确定与该槽位1对应的I2C接口,即I2C接口1。然后,BMC可以通过I2C接口1发送重加载操作指令,该重加载操作指令是一个I2C指令,对此重加载操作指令的内容不做限制,只要该重加载操作指令用于对FPGA单元进行重加载操作即可。
FPGA单元1的管理芯片1在接收到重加载操作指令后,对重加载操作指令进行解析,获知该重加载操作指令用于对FPGA单元1进行重加载操作,因此,执行该重加载操作指令,以对FPGA单元1进行重加载操作,也就是说,利用该重加载操作指令对该FPGA单元1的FPGA芯片1进行重加载操作,即对FPGA芯片1进行重新启动操作,也就是复位FPGA芯片1,对此重加载操作不做限制。
在一个例子中,在对FPGA单元进行重加载操作之前,还可以备份与该FPGA单元连接的PCIE接口的管理信息。在对FPGA单元进行重加载操作之后,还可以利用备份的管理信息对与该FPGA单元连接的PCIE接口进行恢复。其中,该管理信息可以包括但不限于PCIE接口的数据大小,对此管理信息不做限制。
例如,服务器(如板卡驱动等)在将位置标识(如槽位1)发送给BMC之后,还可以备份与FPGA单元1连接的PCIE接口1的管理信息(例如,在服务器的本地缓存中备份该管理信息),如数据大小为512字节,其表示CPU在通过PCIE接口1与FPGA单元1传输数据时,数据大小为512字节。此外,由于与PCIE接口1连接的FPGA单元1已经发生异常,因此,服务器(如板卡驱动)还可以删除PCIE接口1的管理信息,即PCIE接口1不再具有该管理信息。
进一步的,在对FPGA单元1进行重加载操作之后,FPGA单元1恢复正常,基于此,服务器(如板卡驱动等)可以使用备份的管理信息(如数据大小为512字节)对与FPGA单元1连接的PCIE接口1进行恢复,也就是说,使PCIE接口1具有该管理信息(如数据大小为512字节)。这样,CPU在通过PCIE接口1与FPGA单元1传输数据时,该PCIE接口1传输的数据大小为512字节。
在一个例子中,在对FPGA单元进行重加载操作后,还可以收集FPGA单元的异常信息。具体的,在对FPGA单元进行重加载操作后,FPGA单元恢复正常,在此情况下,服务器(如CPU等)可以与FPGA单元进行通信,并收集FPGA单元的信息,这些信息也就是FPGA单元的异常信息。例如,FPGA单元的异常信息可以包括但不限于内存信息、接口信息、非法字符信息等,对此不做限制。
基于上述技术方案,本申请实施例中,通过将发生异常的FPGA单元的位置标识发送给BMC,以使BMC根据该位置标识对该FPGA单元进行重加载操作。这样,即使CPU无法对FPGA单元进行重加载操作,也可以通过BMC对FPGA单元进行重加载操作,从而可以借助BMC的I2C接口实现FPGA单元的重加载操作,使得FPGA单元可以恢复,并可以保证FPGA单元能够正常使用。
基于与上述方法同样的申请构思,本申请实施例中还提供一种重加载装置,可以应用在服务器。如图4所示,为所述装置的结构图,所述装置包括:
确定模块401,用于确定发生异常的FPGA单元的身份信息;
获取模块402,用于根据所述身份信息获取所述FPGA单元的位置标识;
发送模块403,用于将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。
所述获取模块402,具体用于在根据所述身份信息获取所述FPGA单元的位置标识的过程中,通过所述身份信息查询关联表,得到与所述身份信息对应的位置标识;所述关联表用于记录FPGA单元的身份信息与位置标识的对应关系。
在一个例子中,所述重加载装置还包括(在图4中未示出):
处理模块,用于为与PCIE接口连接的FPGA单元分配身份信息,所述身份信息具有唯一性;确定所述PCIE接口的根端口标识、与所述根端口标识对应的位置标识;在关联表中记录分配的身份信息与确定的位置标识的对应关系;
其中,所述处理模块,具体用于在为与PCIE接口连接的FPGA单元分配身份信息的过程中,在所述服务器的开机初始化过程,扫描所述服务器的PCIE接口,并为与扫描到的PCIE接口连接的FPGA单元分配身份信息;
在确定与所述根端口标识对应的位置标识的过程中,通过所述根端口标识查询静态表,得到与所述根端口标识对应的位置标识;所述静态表用于记录PCIE接口的根端口标识、与该PCIE接口连接的FPGA单元的位置标识的对应关系。
在一个例子中,所述重加载装置还包括(在图4中未示出):
备份模块,用于在对所述FPGA单元进行重加载操作之前,备份与所述FPGA单元连接的PCIE接口的管理信息;在对所述FPGA单元进行重加载操作之后,利用备份的管理信息对与所述FPGA单元连接的PCIE接口进行恢复。
基于与上述方法同样的申请构思,本申请实施例中还提供一种服务器,所述服务器可以包括但不限于:处理器(即CPU)、BMC、FPGA单元。其中,所述处理器,用于确定发生异常的FPGA单元的身份信息;根据所述身份信息获取所述FPGA单元的位置标识;将所述FPGA单元的位置标识发送给BMC;所述BMC,用于根据FPGA单元的位置标识对所述FPGA单元进行重加载操作。
所述BMC,具体用于在根据FPGA单元的位置标识对所述FPGA单元进行重加载操作的过程中,通过所述FPGA单元的位置标识对应的I2C接口发送重加载操作指令,所述重加载操作指令用于对所述FPGA单元进行重加载操作;
所述FPGA单元具体包括管理芯片和FPGA芯片;所述管理芯片包括CPLD或者逻辑解析器件;所述管理芯片,用于在接收到所述BMC发送的所述重加载操作指令之后,利用所述重加载操作指令对所述FPGA芯片进行重加载操作。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:确定发生异常的FPGA单元的身份信息;根据所述身份信息获取所述FPGA单元的位置标识;将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据FPGA单元的位置标识对所述FPGA单元进行重加载操作。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种重加载方法,其特征在于,应用于服务器,所述方法包括:
确定发生异常的FPGA单元的身份信息;其中,若CPU的PCIE接口发生故障、或者FPGA单元的PCIE接口发生故障、或者PCIE总线发生故障、或者FPGA芯片的内部逻辑出现异常,则确定FPGA单元发生异常;
根据所述身份信息获取所述FPGA单元的位置标识;
将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。
2.根据权利要求1所述的方法,其特征在于,
根据所述身份信息获取所述FPGA单元的位置标识的过程,具体包括:
通过所述身份信息查询关联表,得到与所述身份信息对应的位置标识;
其中,所述关联表用于记录FPGA单元的身份信息与位置标识的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述通过所述身份信息查询关联表,得到与所述身份信息对应的位置标识之前,所述方法还包括:
为与PCIE接口连接的FPGA单元分配身份信息,所述身份信息具有唯一性;
确定所述PCIE接口的根端口标识、与所述根端口标识对应的位置标识;
在关联表中记录分配的身份信息与确定的位置标识的对应关系。
4.根据权利要求3所述的方法,其特征在于,
所述为与PCIE接口连接的FPGA单元分配身份信息的过程,具体包括:
在所述服务器的开机初始化过程,扫描所述服务器的PCIE接口;
为与扫描到的PCIE接口连接的FPGA单元分配身份信息。
5.根据权利要求3所述的方法,其特征在于,
所述确定与所述根端口标识对应的位置标识的过程,具体包括:
通过所述根端口标识查询静态表,得到与所述根端口标识对应的位置标识;
其中,所述静态表用于记录PCIE接口的根端口标识、与该PCIE接口连接的FPGA单元的位置标识的对应关系。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述关联表存储在SMBIOS的Type9数据表结构中;所述身份信息包括BDF信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述FPGA单元进行重加载操作之前,备份与所述FPGA单元连接的PCIE接口的管理信息;在对所述FPGA单元进行重加载操作之后,利用备份的管理信息对与所述FPGA单元连接的PCIE接口进行恢复。
8.根据权利要求1所述的方法,其特征在于,所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作的过程,具体包括:
所述BMC通过所述FPGA单元的位置标识对应的I2C接口发送重加载操作指令,其中,所述重加载操作指令用于对所述FPGA单元进行重加载操作。
9.根据权利要求8所述的方法,其特征在于,所述BMC通过所述FPGA单元的位置标识对应的I2C接口发送重加载操作指令之后,所述方法还包括:
所述FPGA单元的管理芯片在接收到所述重加载操作指令之后,利用所述重加载操作指令对所述FPGA单元的FPGA芯片进行重加载操作;
其中,所述管理芯片包括CPLD或者逻辑解析器件。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述FPGA单元进行重加载操作后,收集所述FPGA单元的异常信息。
11.一种重加载装置,其特征在于,应用于服务器,所述装置包括:
确定模块,用于确定发生异常的FPGA单元的身份信息;其中,若CPU的PCIE接口发生故障、或者FPGA单元的PCIE接口发生故障、或者PCIE总线发生故障、或者FPGA芯片的内部逻辑出现异常,则确定FPGA单元发生异常;
获取模块,用于根据所述身份信息获取所述FPGA单元的位置标识;
发送模块,用于将所述FPGA单元的位置标识发送给BMC,以使所述BMC根据所述FPGA单元的位置标识,对所述FPGA单元进行重加载操作。
12.根据权利要求11所述的装置,其特征在于,
所述获取模块,具体用于在根据所述身份信息获取所述FPGA单元的位置标识的过程中,通过所述身份信息查询关联表,得到与所述身份信息对应的位置标识;所述关联表用于记录FPGA单元的身份信息与位置标识的对应关系。
13.根据权利要求12所述的装置,其特征在于,还包括:
处理模块,用于为与PCIE接口连接的FPGA单元分配身份信息,所述身份信息具有唯一性;确定所述PCIE接口的根端口标识、与所述根端口标识对应的位置标识;在关联表中记录分配的身份信息与确定的位置标识的对应关系;
其中,所述处理模块,具体用于在为与PCIE接口连接的FPGA单元分配身份信息的过程中,在所述服务器的开机初始化过程,扫描所述服务器的PCIE接口,并为与扫描到的PCIE接口连接的FPGA单元分配身份信息;
在确定与所述根端口标识对应的位置标识的过程中,通过所述根端口标识查询静态表,得到与所述根端口标识对应的位置标识;所述静态表用于记录PCIE接口的根端口标识、与该PCIE接口连接的FPGA单元的位置标识的对应关系。
14.根据权利要求11所述的装置,其特征在于,还包括:
备份模块,用于在对所述FPGA单元进行重加载操作之前,备份与所述FPGA单元连接的PCIE接口的管理信息;在对所述FPGA单元进行重加载操作之后,利用备份的管理信息对与所述FPGA单元连接的PCIE接口进行恢复。
15.一种服务器,其特征在于,所述服务器包括:
处理器,用于确定发生异常的FPGA单元的身份信息;根据所述身份信息获取所述FPGA单元的位置标识;将所述FPGA单元的位置标识发送给BMC;其中,若CPU的PCIE接口发生故障、或者FPGA单元的PCIE接口发生故障、或者PCIE总线发生故障、或者FPGA芯片的内部逻辑出现异常,则确定FPGA单元发生异常;
BMC,用于根据FPGA单元的位置标识对所述FPGA单元进行重加载操作。
16.根据权利要求15所述的服务器,其特征在于,
所述BMC,具体用于在根据FPGA单元的位置标识对所述FPGA单元进行重加载操作的过程中,通过所述FPGA单元的位置标识对应的I2C接口发送重加载操作指令,所述重加载操作指令用于对所述FPGA单元进行重加载操作;
所述服务器还包括FPGA单元,所述FPGA单元具体包括管理芯片和FPGA芯片;其中,所述管理芯片包括CPLD或者逻辑解析器件;
所述管理芯片,用于在接收到所述BMC发送的所述重加载操作指令之后,利用所述重加载操作指令对所述FPGA芯片进行重加载操作。
CN201810069461.2A 2018-01-24 2018-01-24 一种重加载方法、装置及服务器 Active CN110069366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810069461.2A CN110069366B (zh) 2018-01-24 2018-01-24 一种重加载方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810069461.2A CN110069366B (zh) 2018-01-24 2018-01-24 一种重加载方法、装置及服务器

Publications (2)

Publication Number Publication Date
CN110069366A CN110069366A (zh) 2019-07-30
CN110069366B true CN110069366B (zh) 2023-09-26

Family

ID=67365575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810069461.2A Active CN110069366B (zh) 2018-01-24 2018-01-24 一种重加载方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN110069366B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083484B (zh) * 2018-01-26 2024-03-08 阿里巴巴集团控股有限公司 Fpga重加载方法、设备、存储介质及系统
CN110399168B (zh) * 2019-07-12 2022-05-24 苏州浪潮智能科技有限公司 多数据盘存储服务器的系统启动方法、装置及设备
CN110647429A (zh) * 2019-09-30 2020-01-03 联想(北京)有限公司 一种电子设备、处理系统及处理方法
CN111414268B (zh) * 2020-02-26 2022-05-13 华为技术有限公司 故障处理方法、装置及服务器
CN111857303B (zh) * 2020-06-30 2022-05-17 浪潮电子信息产业股份有限公司 一种fpga复位方法、装置、系统和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604244A (zh) * 2008-06-13 2009-12-16 中兴通讯股份有限公司 一种实现fpga上电即用和远程升级的装置及方法
CN103971732A (zh) * 2014-04-30 2014-08-06 浙江大学 监控fpga的单粒子翻转效应并纠正重加载的方法及系统
CN105527564A (zh) * 2015-12-25 2016-04-27 中国南方电网有限责任公司电网技术研究中心 Fpga内部功能自诊断方法与系统
CN105930284A (zh) * 2016-04-14 2016-09-07 青岛海信电器股份有限公司 一种fpga加载的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604244A (zh) * 2008-06-13 2009-12-16 中兴通讯股份有限公司 一种实现fpga上电即用和远程升级的装置及方法
CN103971732A (zh) * 2014-04-30 2014-08-06 浙江大学 监控fpga的单粒子翻转效应并纠正重加载的方法及系统
CN105527564A (zh) * 2015-12-25 2016-04-27 中国南方电网有限责任公司电网技术研究中心 Fpga内部功能自诊断方法与系统
CN105930284A (zh) * 2016-04-14 2016-09-07 青岛海信电器股份有限公司 一种fpga加载的方法和设备

Also Published As

Publication number Publication date
CN110069366A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110069366B (zh) 一种重加载方法、装置及服务器
US11068277B2 (en) Memory allocation techniques at partially-offloaded virtualization managers
US11429414B2 (en) Virtual machine management using partially offloaded virtualization managers
CN110968478B (zh) 日志采集方法、服务器及计算机存储介质
US10282120B2 (en) Method, apparatus and system for inserting disk
CN106873970B (zh) 一种操作系统的安装方法和装置
CN109327499B (zh) 业务接口的管理方法及装置、存储介质、终端
CN114238236A (zh) 共享文件的访问方法、电子设备及计算机可读存储介质
CN113656049A (zh) 一种操作系统部署方法、装置及电子设备和存储介质
CN113992578A (zh) 云桌面终端切换服务器的方法、装置、设备及存储介质
US20080276121A1 (en) Method and infrastructure for recognition of the resources of a defective hardware unit
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法
CN116028455A (zh) 一种数据处理方法、装置、存储介质及电子设备
CN114697440B (zh) 网络管理方法及移动终端
CN109274451B (zh) 一种时间获取方法、装置和设备
CN110058866B (zh) 集群组件安装方法及设备
CN111736869A (zh) 服务端接口的版本更新方法和服务端接口的调用方法
CN114185602B (zh) 操作系统的启动方法、装置和终端
CN110851144B (zh) 云主机部署方法及装置、计算机可存储介质
CN111371818A (zh) 一种数据请求的验证方法、装置及设备
CN114860339B (zh) 智能板卡的控制方法、电子设备的启动方法及电子系统
CN116243994B (zh) 一种存储设备的驱动加载方法、操作系统启动方法及系统
CN110290429B (zh) 一种栏目下发方法及装置
CN108897561B (zh) 一种数据存储方法及存储系统
CN116319276A (zh) 一种服务器的管理方法及装置

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