固件升级方法、装置及高速外围设备互联集群系统与流程

文档序号:12270960阅读:340来源:国知局
固件升级方法、装置及高速外围设备互联集群系统与流程

本发明涉及计算机技术领域,特别涉及一种固件升级方法、装置及高速外围设备互联集群系统。



背景技术:

随着信息化的快速发展,单台计算机越来越无法满足业务处理需求,目前,在企业市场等领域广泛采用集群系统以提高业务处理能力。PCIE(Peripheral Component Interconnect Express,高速外围设备互联)集群系统由于具有比较高的数据处理速度等优势,受到广泛应用。PCIE集群系统中的每个节点上均配置有一定的固件。固件为写入节点EROM(Eraseable Read Only Memory,可擦写只读存储器)或EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)中的程序。通俗来讲,固件也就是具有软件功能的硬件。固件在计算机节点中承担着最基础、最底层的工作。通过对节点中的固件进行升级,可完善节点的功能、增强节点的稳定性或修补节点的漏洞。在PCIE集群系统中,经常会出现由于固件故障、固件配置错误、固件版本更新等原因而需要对一个或多个节点进行固件升级的情况。

现有技术中,在对PCIE集群系统中的各个节点进行固件升级时,通常有如下两种方式:

第一种方式:PCIE集群系统中的各个节点中均配置有I2C(InterIntegrated Circuit,总线)接口,如图1所示。当任一节点需要进行固件升级时,通过与I2C接口连接的外接工具实现,如通过USB DONGLE(挡狗)对该节点的固件进行升级。

第二种方式:PCIE集群系统中的各个节点通过自身的OS(Operating System,操作系统)对固件进行升级。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

针对上述第一种方式,由于需要通过外置工具实现固件升级,固件升级成本比较高。

针对上述第二种方式,当由于某些故障导致需要升级节点的OS无法启动时,则不能实现固件升级,使得固件升级方式具有一定的限制。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种固件升级方法、装置及PCIE集群系统。所述技术方案如下:

第一方面,提供一种固件升级方法,应用于包括至少两个节点的PCIE集群系统中的任一非故障节点,所述方法包括:

根据所配置的NTB(Non Transparent Bridge,非透明桥)获取目标节点的地址空间,所述目标节点为所述PCIE集群系统中任一需进行固件升级的节点;

获取本地地址空间;

将所述目标节点的地址空间映射至所述本地地址空间,得到对所述目标节点上的寄存器进行访问的权限;

当所述目标节点上的任一固件需要升级时,在本地配置所述目标节点上的待升级固件的寄存器,以完成对所述待升级固件的升级。

结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所配置的NTB获取目标节点的地址空间,包括:

当OS加载所配置的NTB的驱动时,获取所述PCIE集群系统中每个节点的设备标识及地址空间的对应关系,其中,所述PCIE集群系统中的每个节点均配置有至少一个NTB,所述PCIE集群系统中任一节点的NTB使所述节点的地址空间与其它节点的地址空间不冲突,且所述节点的NTB提供由所述节点的地址空间映射至另一个节点的地址空间时的通信方式;

获取所述目标节点的设备标识;

根据所述目标节点的设备标识,获取所述目标节点的地址空间。

结合第一方面,在第一方面的第二种可能的实现方式中,所述根据所配置的NTB获取目标节点的地址空间之后,还包括:

根据所述目标节点的地址空间,判断所述目标节点的OS是否出现故障;

所述将所述目标节点的地址空间映射至所述本地地址空间,包括:

当所述目标节点的OS未出现故障时,执行将所述目标节点的地址空间映射至所述本地地址空间的步骤。

结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现 方式中,所述判断所述目标节点的OS是否出现故障之后,还包括:

当所述目标节点的OS出现故障时,为所述PCIE集群系统中的每个节点各分配一个地址空间;

获取为所述目标节点分配的地址空间;

所述将所述目标节点的地址空间映射至所述本地地址空间,包括:

将为所述目标节点分配的地址空间映射至所述本地地址空间。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述为所述PCIE集群系统中的每个节点各分配一个地址空间,包括:

获取所述非故障节点连接的PCIE交换器的总线区间和地址区间;

获取连接至所述PCIE交换器的多个节点;

从所述PCIE交换器总线区间中的第一条总线开始,在所述第一条总线对应的地址区间中为所述多个节点各分配一个地址空间;

判断为所述多个节点分配的地址空间是否存在冲突,以及判断为所述多个节点分配的地址空间总和是否处于所述第一条总线对应的地址区间的范围内;

当为所述多个节点分配的地址空间不冲突,且为所述多个节点分配的地址空间总和处于所述第一条总线对应的地址区间的范围内时,判断所述PCIE交换器是否为所述PCIE集群系统的根复合体PCIE交换器;

如果所述PCIE交换器为所述PCIE集群系统的根复合体PCIE交换器,则将在所述第一条总线对应的地址区间中为每个节点分配的地址空间作为为每个节点分配的地址空间。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述判断所述PCIE交换器是否为所述PCIE集群系统的根复合体PCIE交换器之后,还包括:

如果所述PCIE交换器不为所述PCIE集群系统的根复合体PCIE交换器,则获取所述PCIE交换器的上一级PCIE交换器,并执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过程,直至所述PCIE集群系统中的根复合体PCIE交换器。

结合第一方面的第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述判断为所述多个节点分配的地址空间是否存在冲突,以及判断为所述多个节点分配的地址空间总和是否处于所述第一条总线对应的地址区间的范围内之后,还包括:

如果为所述多个节点分配的地址空间存在冲突,和/或为所述多个节点分配的地址空间总和不处于所述第一总线对应的地址区间的范围内,则在下一条总线对应的地址区间中为所述多个节点各分配一个地址空间,并返回判断为所述多个节点分配的地址空间是否存在冲突的步骤,直至所述PCIE总线区间所包括的最后一条总线为止。

结合第一方面,在第一方面的第七种可能的实现方式中,所述获取本地地址空间之前,还包括:

当检测到上电后,通过BIOS(Basic Input Output System,基本输入输出系统)和OS为所述非故障节点自身分配一个地址空间,将所述地址空间作为本地地址空间。

第二方面,提供一种固件升级装置,所述装置应用于包括至少两个节点的PCIE集群系统中的任一非故障节点,所述装置包括:

第一获取模块,用于根据所配置的NTB获取目标节点的地址空间,所述目标节点为所述PCIE集群系统中任一需进行固件升级的节点;

第二获取模块,用于获取本地地址空间;

映射模块,用于将所述目标节点的地址空间映射至所述本地地址空间,得到对所述目标节点上的寄存器进行访问的权限;

升级模块,用于当所述目标节点上的任一固件需要升级时,在本地配置所述目标节点上的待升级固件的寄存器,以完成对所述待升级固件的升级。

结合第二方面,在第二方面的第一种可能的实现方式中,所述第一获取模块包括:

第一获取单元,用于当OS加载所配置的NTB的驱动时,获取所述PCIE集群系统中每个节点的设备标识及地址空间的对应关系,其中,所述PCIE集群系统中的每个节点均配置有至少一个NTB,所述PCIE集群系统中任一节点的NTB使所述节点的地址空间与其它节点的地址空间不冲突,且所述节点的NTB提供由所述节点的地址空间映射至另一个节点的地址空间时的通信方式;

第二获取单元,用于获取所述目标节点的设备标识;

第三获取单元,用于根据所述目标节点的设备标识,获取所述目标节点的地址空间。

结合第二方面,在第二方面的第二种可能的实现方式中,所述装置还包括:

判断模块,用于根据所述目标节点的地址空间,判断所述目标节点的OS是 否出现故障;

所述映射模块,用于当所述目标节点的OS未出现故障时,执行将所述目标节点的地址空间映射至所述本地地址空间的步骤。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:

第一分配模块,用于当所述目标节点的OS出现故障时,为所述PCIE集群系统中的每个节点各分配一个地址空间;

第三获取模块,用于获取为所述目标节点分配的地址空间;

所述映射模块,用于将为所述目标节点分配的地址空间映射至所述本地地址空间。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一分配模块包括:

第四获取单元,用于获取所述非故障节点连接的PCIE交换器的总线区间和地址区间;

第五获取单元,用于获取连接至所述PCIE交换器的多个节点;

第一分配单元,用于从所述PCIE交换器总线区间中的第一条总线开始,在所述第一条总线对应的地址区间中为所述多个节点各分配一个地址空间;

第一判断单元,判断为所述多个节点分配的地址空间是否存在冲突,以及判断为所述多个节点分配的地址空间总和是否处于所述第一条总线对应的地址区间的范围内;

第二判断单元,用于当为所述多个节点分配的地址空间不冲突,且为所述多个节点分配的地址空间总和处于所述第一条总线对应的地址区间的范围内时,判断所述PCIE交换器是否为所述PCIE集群系统的根复合体PCIE交换器;

确定单元,用于当所述PCIE交换器为所述PCIE集群系统的根复合体PCIE交换器时,将在所述第一条总线对应的地址区间中为每个节点分配的地址空间作为为每个节点分配的地址空间。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一分配模块还包括:

第六获取单元,用于当所述PCIE交换器不为所述PCIE集群系统的根复合体PCIE交换器时,获取所述PCIE交换器的上一级PCIE交换器,并执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过 程,直至所述PCIE集群系统中的根复合体PCIE交换器。

结合第二方面的第四种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第一分配模块还包括:

第二分配单元,用于当为所述多个节点分配的地址空间存在冲突,和/或为所述多个节点分配的地址空间总和不处于所述第一总线对应的地址区间的范围内时,在下一条总线对应的地址空间中为所述多个节点各分配一个地址空间,并返回判断为所述多个节点分配的地址空间是否存在冲突的步骤,直至所述PCIE总线区间所包括的最后一条总线为止。

结合第二方面,在第二方面的第七种可能的实现方式中,所述装置还包括:

第二分配模块,用于当检测到上电后,通过BIOS和OS为所述非故障节点自身分配一个地址空间,将所述地址空间作为本地地址空间。

第三方面,提供一种PCIE集群系统,所述PCIE集群系统包括至少两个节点和至少一个PCIE交换器;

其中,所述PCIE集群系统中的每个节点均配置有至少一个NTB,所述PCIE集群系统中任一节点的NTB使所述节点的地址空间与其它节点的地址空间不冲突,且所述节点的NTB提供由所述节点的地址空间映射至另一个节点的地址空间时的通信方式;

每个节点通过所配置的NTB连接至一个PCIE交换器中的一个NTB或连接至一个其它节点的一个NTB;每个PCIE交换器配置有多个NTB,其中的每个NTB分别与一个节点或一个PCIE交换器连接;

当需要对所述PCIE集群系统的任一节点进行固件升级时,由所述PCIE集群系统中的任一非故障节点根据所配置的NTB获取目标节点的地址空间,所述目标节点为所述PCIE集群系统中任一需进行固件升级的节点;所述非故障节点获取本地地址空间,并将所述目标节点的地址空间映射至所述本地地址空间,得到对所述目标节点上的寄存器进行访问的权限;所述非故障节点在本地配置所述目标节点上的待升级固件的寄存器,以完成对所述待升级固件的升级。

结合第三方面,在第三方面的第一种可能的实现方式中,所述PCIE集群系统还包括一个管理服务器,所述管理服务器配置有至少一个NTB,且所述管理服务器通过所配置的NTB连接至所述PCIE集群系统中的一个PCIE交换器;

所述管理服务器,用于当所述PCIE集群系统中的所有节点均因故障而无法自己进行固件升级以及对其它节点进行固件升级时,由所述管理服务器通过所 配置的NTB及每个节点配置的NTB对每个节点的固件进行升级。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述PCIE集群系统还包括至少一个备用管理服务器,每个备用管理服务器配置有至少一个NTB,且所述每个备用管理服务器通过所配置的NTB连接至所述PCIE集群系统中的一个PCIE交换器;

任一备用管理服务器,用于当所述管理服务器因故障无法对所述PCIE集群系统中的节点进行固件升级时,由所述备用管理服务器通过所配置的NTB及每个节点配置的NTB对每个节点的固件进行升级。

本发明实施例提供的技术方案带来的有益效果是:

非故障节点通过获取目标节点的地址空间及本地地址空间,并通过将目标节点的地址空间映射到非故障节点本地地址空间,从而实现一种通过PCIE集群系统中的非故障节点对目标节点的固件进行升级的方式。由于无需借助PCIE集群系统外的外接工具实现固件升级,因此,固件升级成本比较低。另外,由于目标节点无需依赖于自身的OS即可实现固件升级,因此,固件升级方式更具灵活性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种现有技术的固件升级方法的示意图;

图2是本发明另一实施例提供的一种PCIE集群系统的示意图;

图3是本发明另一实施例提供的一种PCIE集群系统的拓扑结构示意图;

图4是本发明另一实施例提供的一种固件升级方法的流程图;

图5是本发明另一实施例提供的一种固件升级方法的流程图;

图6是本发明另一实施例提供的一种由非故障节点对目标节点进行固件升级的场景示意图;

图7是本发明另一实施例提供的一种固件升级装置的结构示意图;

图8是本发明另一实施例提供的一种非故障节点的结构示意图;

图9是本发明另一实施例提供的一种PCIE集群系统的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

如图2所示,其示出了一种PICE集群系统的示意图,本发明实施例提供的固件升级方法应用于图2所示的PCIE集群系统。如图2所示,PCIE集群系统包括至少一个PCIE交换器201和至少两个节点202。其中,每个PCIE交换器201配置有多个NTB,每个节点202上配置有至少一个NTB。任一PCIE交换器201的一个NTB与一个节点202的一个NTB连接,或者任一PCIE交换器201的一个NTB与PCIE集群系统中的一个其它PCIE交换器201的一个NTB连接。每个节点202通过其一个NTB连接至一个PCIE交换器201的一个NTB,或者每个节点202通过其一个NTB连接至一个其它节点202的一个NTB。

其中,PCIE集群系统中任一节点202的NTB使该节点202的地址空间与PCIE集群系统中其它节点202的地址空间不冲突,且该节点202的NTB提供由其地址空间映射至另一个节点的地址空间时的通信方式。通过该通信方式,可以将另一个节点的地址空间映射至该节点的地址空间,从而使得该节点202获得访问其它节点202的寄存器的权限,进而实现在本地节点访问其它节点。

需要说明的是,图2仅以PCIE集群系统中包括一个PCIE交换器201为例进行了说明。事实上,PCIE集群系统可以为一个复杂的拓扑系统。如图3所示,其示出了一种PCIE集群系统的拓扑结构示意图。由图3可知,每个PCIE交换器201可以连接节点202,也可以连接其它PCIE交换器201。每个节点202可以连接其它节点202,也可以连接至一个PCIE交换器201。

结合上述内容,本发明实施例提供了一种固件升级方法,该固件升级方法应用于上述图2或图3所述的PCIE集群系统。本发明实施例提供的固件升级方法,可以实现由PCIE集群中的任一非故障节点对其它任意节点进行固件升级。具体的固件升级方法详见下述各个实施例:

结合上述内容,图4是本发明另一实施例提供的一种固件升级方法的流程图。本发明实施例提供的固件升级方法应用于PCIE集群系统中的任一非故障节点。如图4所示,本发明实施例提供的方法流程包括:

401、根据所配置的NTB获取目标节点的地址空间,其中,目标节点为PCIE 集群系统中任一需进行固件升级的节点。

402、获取本地地址空间。

403、将目标节点的地址空间映射至本地地址空间,得到对目标节点上的寄存器进行访问的权限。

404、当目标节点上的任一固件需要升级时,在本地配置目标节点上的待升级固件的寄存器,以完成对待升级固件的升级。

本发明实施例提供的方法,非故障节点通过获取目标节点的地址空间及本地地址空间,并通过将目标节点的地址空间映射到非故障节点本地地址空间,从而实现一种通过PCIE集群系统中的非故障节点对目标节点的固件进行升级的方式。由于无需借助PCIE集群系统外的外接工具实现固件升级,因此,固件升级成本比较低。另外,由于目标节点无需依赖于自身的OS即可实现固件升级,因此,固件升级方式更具灵活性。

在另一个实施例中,根据所配置的NTB获取目标节点的地址空间,包括:

当OS加载所配置的NTB的驱动时,获取PCIE集群系统中每个节点的设备标识及地址空间的对应关系,其中,PCIE集群系统中的每个节点均配置有至少一个NTB,PCIE集群系统中任一节点的NTB使节点的地址空间与其它节点的地址空间不冲突,且节点的NTB提供由节点的地址空间映射至另一个节点的地址空间时的通信方式;

获取目标节点的设备标识;

根据目标节点的设备标识,获取目标节点的地址空间。

在另一个实施例中,根据所配置的NTB获取目标节点的地址空间之后,还包括:

根据目标节点的地址空间,判断目标节点的OS是否出现故障;

将目标节点的地址空间映射至本地地址空间,包括:

当目标节点的OS未出现故障时,执行将目标节点的地址空间映射至本地地址空间的步骤。

在另一个实施例中,判断目标节点的OS是否出现故障之后,还包括:

当目标节点的OS出现故障时,为PCIE集群系统中的每个节点各分配一个地址空间;

获取为目标节点分配的地址空间;

将目标节点的地址空间映射至本地地址空间,包括:

将为目标节点分配的地址空间映射至本地地址空间。

在另一个实施例中,为PCIE集群系统中的每个节点各分配一个地址空间,包括:

获取非故障节点连接的PCIE交换器的总线区间和地址区间;

获取连接至PCIE交换器的多个节点;

从PCIE交换器总线区间中的第一条总线开始,在第一条总线对应的地址区间中为多个节点各分配一个地址空间;

判断为多个节点分配的地址空间是否存在冲突,以及判断为多个节点分配的地址空间总和是否处于第一条总线对应的地址区间的范围内;

当为多个节点分配的地址空间不冲突,且为多个节点分配的地址空间总和处于第一条总线对应的地址区间的范围内时,判断PCIE交换器是否为PCIE集群系统的根PCIE交换器;

如果PCIE交换器为PCIE集群系统的根复合体PCIE交换器,则将在第一条总线对应的地址区间中为每个节点分配的地址空间作为为每个节点分配的地址空间。

在另一个实施例中,判断PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器之后,还包括:

如果PCIE交换器不为PCIE集群系统的根复合体PCIE交换器,则获取PCIE交换器的上一级PCIE交换器,并执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过程,直至PCIE集群系统中的根复合体PCIE交换器。

在另一个实施例中,判断为多个节点分配的地址空间是否存在冲突,以及判断为多个节点分配的地址空间总和是否处于第一条总线对应的地址区间的范围内之后,还包括:

如果为多个节点分配的地址空间存在冲突,和/或为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内,则在下一条总线对应的地址区间中为多个节点各分配一个地址空间,并返回判断为多个节点分配的地址空间是否存在冲突的步骤,直至PCIE总线区间所包括的最后一条总线为止。

在另一个实施例中,获取本地地址空间之前,还包括:

当检测到上电后,通过BIOS和OS为非故障节点自身分配一个地址空间,将地址空间作为本地地址空间。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

结合上述实施例的内容,图5是本发明另一实施例提供的一种固件升级方法的流程图。本发明实施例提供的固件升级方法应用于PCIE集群系统中的任一非故障节点。如图5所示,本发明实施例提供的方法流程包括:

501、根据所配置的NTB获取目标节点的地址空间,其中,目标节点为PCIE集群系统中任一需进行固件升级的节点。

非故障节点是指PCIE集群系统中能够正常运行的节点。本发明实施例提供的固件升级方法,支持由PCIE集群系统中的任一非故障节点在非故障节点本地对其它任一节点进行固件升级。为了便于说明,本发明实施例将PCIE集群系统中任一需进行固件升级的节点定义为目标节点。另外,目标节点的地址空间为目标节点的内存地址空间。

其中,本发明实施例提供的PCIE集群系统中,使用NTB作为各个节点的连接方式。每个节点均配置有至少一个NTB,每个节点配置的NTB既可以位于CPU(Central Processing Unit,中央处理器)内部,也可以位于CPU外部,本发明实施例对此不进行限定。任一节点配置的NTB使得该节点的地址空间与其它节点的地址空间不冲突,且该节点的NTB提供由该节点的地址空间映射至另一个节点的地址空间时的通信方式。由此可得,根据每个节点配置的NTB,不仅可以获得其它节点的地址空间,而且可以获得由该节点的地址空间映射至其它任一节点的地址空间时的通信方式。

另外,本发明实施例提供的固件升级方法由非故障节点对目标节点进行固件升级时,需要将目标节点的地址空间映射至非故障节点的地址空间。因此,在对目标节点进行固件升级时,非故障节点需要先获取目标节点的地址空间。结合上述关于NTB的说明,非故障节点可以根据所配置的NTB获取目标节点的地址空间。

具体地,非故障节点在根据所配置的NTB获取目标节点的地址空间时,可以通过如下步骤5011至步骤5013来实现:

5011、当非故障节点的OS加载所配置的NTB的驱动时,获取PCIE集群系统中每个节点的设备标识及地址空间之间的对应关系。

其中,NTB的驱动中包括非故障节点的硬件信息以及PCIE集群系统中其它 节点的硬件信息。PCIE集群系统中每个节点的硬件信息至少包括每个节点的设备标识及地址空间之间的对应关系。另外,每个节点的硬件信息还可以包括每个节点的厂商标识等。因此,当非故障节点的OS加载所配置的NTB的驱动时,可以获取PCIE集群系统中每个节点的设备标识及地址空间。

5012、获取目标节点的设备标识。

为了能够将固件升级对象定位至目标节点,非故障节点需要获取目标节点的设备标识。

关于获取目标节点的设备标识的方式,可以有很多种。例如,当非故障节点确定需要对任一节点进行升级时,该节点即为目标节点,非故障节点可以从目标节点的配置信息中获取其设备标识。

5013、根据目标节点的设备标识,获取目标节点的地址空间。

具体地,在获取到目标设备的设备标识后,非故障节点可以根据该目标及节点的设备标识,从步骤5011中获取的每个节点的设备标识及地址空间之间的对应关系中,查询该目标节点的设备标识对应的地址空间,将该目标节点的设备标识对应的地址空间作为目标节点的地址空间。

502、获取本地地址空间。

其中,非故障节点的本地地址空间为非故障节点的内存地址空间。非故障节点可以从本地的配置信息中获取本地地址空间。

具体地,非故障获取本地地址空间之前,当检测到上电后,会通过BIOS和OS为自身配置一些信息,这些信息中包括地址空间。也就是说,当非故障节点检测到上电后,会为自身分配一个地址空间,该分配的地址空间接即为非故障节点的本地地址空间。

关于非故障节点检测上电的方式,包括但不限于检测电源信号是否发生变化来实现。例如,当非故障节点检测到电源信号由低电平变为高电平时,确定检测到上电。

需要说明的是,上述步骤501和步骤502仅以非故障节点先获取目标节点的地址空间,再获取本地节点的地址空间为例进行了说明。然而,在具体实施时,非故障节点也可以先获取本地节点的地址空间,再获取目标节点的地址空间;非故障节点还可以同时获取本地地址空间和目标节点的地址空间。本发明实施例不对非故障节点获取本地地址空间及获取目标节点的地址空间的顺序进行限定。

503、根据目标节点的地址空间,判断目标节点的OS是否出现故障,当目标节点的OS未出现故障时,执行步骤504;当目标节点的OS出现故障时,执行步骤505。

在本发明实施例中,当目标节点的OS出现故障时,将会对其地址空间的有效性产生影响。具体地,每个节点在上电后,OS为会分配一个地址空间。对于任一节点,当其OS未出现故障时,其在上电时能分配有效的地址空间;而当该节点的OS出现故障时,其在上电时OS不能为其分配有效的地址空间,因此,其会获得一个无效的地址空间。由于目标节点的OS是否出现故障将会决定其地址空间是否有效,而本发明实施例在对目标节点的固件进行升级时,需要使用目标节点的有效的地址空间,因此,非故障节点需要根据目标节点的地址空间,判断目标节点的OS是否出现故障。

具体地,任一节点的地址空间可以标识该节点的OS是否出现故障。对于OS出现故障的节点,其地址空间为变为一个指定数值,例如“FFFF”;而对于OS未出现故障的节点,其地址空间不为“FFFF”。因此,在根据目标节点的地址空间,判断目标节点的OS是否出现故障时,可以判断目标节点的地址空间是否为指定数值。当目标节点的地址空间为指定数值时,确定目标节点的OS出现故障;当目标节点的地址空间不为指定数值时,确定目标节点的OS未出现故障。

504、将目标节点的地址空间映射至本地地址空间,得到对目标节点上的寄存器进行访问的权限。

通过将目标节点的地址空间映射至本地地址空间,可以获得对目标节点上的寄存器进行访问的权限。此时,非故障节点可以操作目标节点上的寄存器。例如,非故障节点可以修改、更新、删除目标节点上寄存器的配置信息等。

该步骤为确定目标节点的OS未出现故障时执行的步骤。由于当目标节点的OS未出现故障时,获取到的目标节点的地址空间为有效的,此时,可以直接将目标节点的地址空间映射至本地地址空间。

具体地,在将目标节点的地址空间映射至本地地址空间时,可以通过一定的地址空间映射算法实现。关于地址空间映射算法的具体内容,本发明实施例不作具体限定。具体地,非故障节点所配置的NTB中预先存储了由一个节点的地址空间映射至另一个节点的地址空间时的通信方式。在此基础上,在将目标节点的地址空间映射至本地地址空间时,非故障节点可以根据所配置的NTB中存储的从本地地址空间映射至目标节点的地址空间时的通信方式实现。其中, 通信方式包括但不限于为预先指定的地址空间映射算法。

505、为PCIE集群系统中的每个节点各分配一个地址空间,并获取为目标节点分配的地址空间,将为目标节点分配的地址空间映射至本地地址空间。

该步骤为确定目标节点的OS出现故障时执行的步骤,目标节点的OS出现故障是指目标节点的OS不能正常启动。具体地,当确定目标节点的OS出现故障时,在步骤502中获取的目标节点的地址空间可能为无效的。此时,为了获得对目标节点上的寄存器进行访问的权限,非故障节点可以为目标节点分配一个临时的地址空间。

其中,在为目标节点分配地址空间时,非故障节点可以先为PCIE集群系统中的每个节点各分配一个地址空间,并获取为目标节点分配的地址空间。在此基础上,非故障节点在将目标节点的地址空间映射至非故障节点本地地址空间时,将为目标节点分配的地址空间映射至非故障节点的本地地址空间。

具体地,非故障节点在为PCIE集群系统中的每个节点各分配一个地址空间,时,包括但不限于通过如下步骤5051至步骤5057来实现:

5051、非故障节点获取所连接的PCIE交换器的总线区间和地址区间。

其中,PCIE集群系统中的每个PCIE交换器均对应一个总线区间和一个地址区间。对于任一PCIE交换器,其总线区间中包括该PCIE交换器包括的总线数量。例如,如果该PCIE交换器包括10条总线,则其总线区间为[0-9]。对于任一PCIE交换器,其地址区间为能够为连接至其上的各个节点分配的地址空间的范围。也就是说,对于连接至任一PCIE交换器的节点,其地址空间处于该PCIE交换器的地址区间的范围内。

另外,对于任一PCIE交换器,其每条总线均对应该PCIE交换器的地址区间的范围内的一定地址区间范围。该PCIE交换器的所有总线对应的地址区间的范围构成该PCIE的地址区间的范围。例如,对于PCIE交换器1,其地址区间为0-1M,其第一条总线对应的地址区间为0-127K,第二条总线对应的地址区间为128K至255K等。

5052、非故障节点获取连接至该PCIE交换器的多个节点。

具体地,非故障节点的OS在加载所配置的NTB时,还可以获得PCIE集群系统的拓扑结构,根据该拓扑结构,非故障节点可以获取到连接至该PCIE交换器的多个节点。

5053、非故障节点从PCIE交换器总线区间中的第一条总线开始,在第一条 总线对应的地址区间中为多个节点各分配一个地址空间。

由于该PCIE交换器的每条总线对应的地址区间的范围大小可能不同,例如,第一条总线的地址区间的范围大小为256K,第二条总线对应的地址区间的范围大小为128K等。基于该PCIE交换器的各条地址区间的范围大小,在某一条总线的地址区间的范围内可能不能为连接至该PCIE交换器的各个节点均分配一个地址空间,因此,非故障节点在为连接至该PCIE交换器的多个节点分配地址空间时,从PCIE交换器总线区间中的第一条总线开始,先尝试在第一条总线对应的地址区间中为多个节点各分配一个地址空间。

其中,非故障节点在第一条总线对应的地址区间中为多个节点各分配一个地址空间时,可以按照第一条总线对应的地址区间的范围及每个节点的地址空间的大小,从第一条总线对应的地址区间范围的起始地址开始,依次为多个节点各分配一个地址空间。例如,如果第一条总线对应的地址区间的范围为0K-255K,每个节点的地址空间大小为4K,则在为多个节点各分配一个地址空间时,将0K-3K分配给第一个节点,将4K-7K分配给第二个节点,以此类推。

5054、判断为多个节点分配的地址空间是否存在冲突,以及判断为多个节点分配的地址空间总和是否处于第一条总线对应的地址区间的范围内;当为多个节点分配的地址空间不冲突,且为多个节点分配的地址空间总和处于第一条总线对应的地址区间的范围内时,执行步骤5055;当为多个节点分配的地址空间存在冲突,和/或为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内时,执行步骤5056。

具体地,当为每个节点分配的地址空间不存在重叠时,可以确定为多个节点分配的地址空间不存在冲突;当为任两个节点分配的地址空间存在重叠时,确定为多个节点分配的地址空间存在冲突。

当为多个节点分配的地址空间总和小于第一条总线对应的地址区间的范围时,确定为多个节点分配的地址空间总和处于第一总线对应的地址区间的范围内;当为多个节点分配的地址空间总和不小于第一条总线对应的地址区间的范围时,确定为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内。

5055、判断PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器;如果PCIE交换器为PCIE集群系统的根复合体PCIE交换器,则将在第一条总线对应的地址区间中为每个节点分配的地址空间作为为每个节点分配的地址空 间;如果PCIE交换器不为PCIE集群系统的根复合体PCIE交换器,则执行步骤5057。

根复合体PCIE交互器为PCIE集群系统的最上层的PCIE交换器。结合图3所示的拓扑结构,图3所示的PCIE集群系统的根复合体PCIE交换器为PCIE交换器A。当PCIE为PCIE集群系统的根复合体PCIE交换器时,能够确保为PCIE集群系统中的每个节点均分配了一个地址空间。因此,在为PCIE集群系统中的每个节点各分配一个地址空间时,应该确保PCIE交换器已经是PCIE集群系统的根复合体PCIE交换器。

其中,非故障节点在判断PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器时,可以根据PCIE集群系统的拓扑结构实现。具体地,其可以在加载所配置的NTB的驱动时,获取PCIE集群系统的拓扑结构;根据拓扑结构确定PCIE集群系统的根复合体PCIE交换器的标识;存储根复合体PCIE交换器的标识。

在此基础上,在判断该PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器时,可以获取该PCIE交换器的标识,并将该PCIE交换器的标识与存储的根复合体PCIE交换器的标识进行比对。当该PCIE交换器的标识与存储的根复合体PCIE交换器的标识相同时,非故障节点确定该PCIE交换器为PCIE集群系统的根复合体PCIE交换器;当该PCIE交换器的标识与存储的根复合体PCIE交换器的标识不相同时,非故障节点确定该PCIE交换器不是PCIE集群系统的根复合体PCIE交换器。当然,非故障节点还可以通过其它方式判断PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器,本发明实施例对此不作限定。

5056、非故障节点在第二条总线对应的地址区间中为多个节点各分配一个地址空间,并返回判断为多个节点分配的地址空间是否存在冲突的步骤,直至PCIE总线区间所包括的最后一条总线为止。

该步骤为当为多个节点分配的地址空间存在冲突,或为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内,或为多个节点分配的地址空间存在冲突且为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内时需执行的步骤,这三种情况均说明非故障节点尝试在第一条总线对应的地址空间中为多个节点各分配一个地址空间的操作失败,此时,非故障节点继续尝试在第二条总线对应的地址区间的范围内为各个节点各分配一个 地址空间。

同样地,如果在第二条总线对应的地址区间的范围内为各个节点各分配一个地址空间的操作失败后,再尝试在第三条总线对应的地址区间的范围内为各个节点各分配一个地址空间,直至PCIE总线区间所包括的最后一条总线为止。

其中,非故障节点在第二条总线对应的地址区间中为多个节点各分配一个地址空间的方式,与上述步骤5053中在第一条总线对应的地址区间中为多个节点各分配一个地址空间的原理相同,具体可参见上述步骤5053中的内容,此处不再赘述。

5057、非故障节点获取PCIE交换器的上一级PCIE交换器,并执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过程,直至PCIE集群系统中的根复合体PCIE交换器,其中,PCIE交换器连接至上一级PCIE交换器。

该步骤为确定非故障节点连接的PCIE交换器不为PCIE集群系统中的根复合体PCIE交换器时所需执行的步骤。结合图3,如果非故障节点所连接的PCIE交换器为PCIE交换器C,则其上一级PCIE交换器为PCIE交换器A。

其中,非故障节点在获取PCIE交换器的上一级PCIE交换器时,也可以根据PCIE集群系统的拓扑结构实现。

另外,非故障节点在执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过程时,也需要从上一级PCIE交换器的总线区间中的第一条总线开始,在第一条总线对应的地址区间中为多个节点各分配一个地址空间,并判断为多个节点分配的地址空间是否存在冲突,以及判断为多个节点分配的地址空间总和是否处于第一条总线对应的地址区间的范围内。如果为多个节点分配的地址空间存在冲突,和/或为多个节点分配的地址空间总和不处于第一条总线对应的地址区间的范围内,则继续尝试在上一级PCIE交换器的第二条总线对应的地址区间中为多个节点各分配一个地址空间。如此反复,直至上一级PCIE交换器的总线区间的最后一条总线。

需要说明的是,本发明实施例提供的固件升级方法中,非故障节点可以对其所在的PCIE集群系统中的任一目标节点通过上述步骤501至步骤506进行固件升级。然而,当目标节点的OS未出现故障时,目标节点可以通过自身的OS进行固件升级,而无需由非故障节点对其进行固件升级。因此,本发明实施例中的目标节点可以为OS出现故障的节点。

506、当目标节点上的任一固件需要升级时,在本地配置目标节点上的待升级固件的寄存器,以完成对待升级固件的升级。

具体地,当目标节点上的任一固件由于故障、或者由于配置错误,或者由于版本更新时,确定该固件为待升级固件。此时,非故障节点在本地配置目标节点上的待升级固件的寄存器,从而实现对待升级固件的升级。

其中,非故障节点在本地配置目标节点上的待升级固件的寄存器时,可以根据升级需要,将待升级固件的寄存器配置为升级需要所指定的值,从而实现对该待升级固件的升级。

如图6所示,其示出了一种由非故障节点对目标节点进行固件升级的场景示意图。图6中,节点A表示非故障节点,其在上电后可以正常运行。具体地,其上电后时钟正常、系统复位释放、BIOS正常运行、OS正常启动、驱动程序也可以正常加载,此时,其可以对PCIE集群系统中的任一节点进行固件升级。而对于节点B,其上电后,时钟正常,并可以完成系统复位释放,且NTB链路可以正常建立,然而,其OS在启动中出现故障,此时,可以由节点A通过上述步骤505和步骤506对节点B的固件进行升级。

本发明实施例提供的方法,非故障节点通过获取目标节点的地址空间及本地地址空间,并通过将目标节点的地址空间映射到非故障节点本地地址空间,从而实现一种通过PCIE集群系统中的非故障节点对目标节点的固件进行升级的方式。由于无需借助PCIE集群系统外的外接工具实现固件升级,因此,固件升级成本比较低。另外,由于目标节点无需依赖于自身的OS即可实现固件升级,因此,固件升级方式更具灵活性。

图7是本发明另一实施例提供的一种固件升级装置的结构示意图,该固件升级装置可以用于执行上述图4或图5所对应实施例提供的固件升级方法。如图7所示,本发明实施例提供的固件升级装置包括:

第一获取模块701,用于根据所配置的NTB获取目标节点的地址空间,其中,目标节点为PCIE集群系统中任一需进行固件升级的节点;

第二获取模块702,用于获取本地地址空间;

映射模块703,用于将目标节点的地址空间映射至本地地址空间,得到对目标节点上的寄存器进行访问的权限;

升级模块704,用于当目标节点上的任一固件需要升级时,在本地配置目标 节点上的待升级固件的寄存器,以完成对待升级固件的升级。

本发明实施例提供的装置,非故障节点通过获取目标节点的地址空间及本地地址空间,并通过将目标节点的地址空间映射到非故障节点本地地址空间,从而实现一种通过PCIE集群系统中的非故障节点对目标节点的固件进行升级的方式。由于无需借助PCIE集群系统外的外接工具实现固件升级,因此,固件升级成本比较低。另外,由于目标节点无需依赖于自身的OS即可实现固件升级,因此,固件升级方式更具灵活性。

在另一个实施例中,第一获取模块701包括:

第一获取单元,用于当OS加载所配置的NTB的驱动时,获取PCIE集群系统中每个节点的设备标识及地址空间的对应关系,其中,PCIE集群系统中的每个节点均配置有至少一个NTB,PCIE集群系统中任一节点的NTB使节点的地址空间与其它节点的地址空间不冲突,且节点的NTB提供由节点的地址空间映射至另一个节点的地址空间时的通信方式;

第二获取单元,用于获取目标节点的设备标识;

第三获取单元,用于根据目标节点的设备标识,获取目标节点的地址空间。

在另一个实施例中,固件升级装置还包括:

判断模块,用于根据目标节点的地址空间,判断目标节点的OS是否出现故障;

映射模块703,用于当目标节点的OS未出现故障时,执行将目标节点的地址空间映射至本地地址空间的步骤。

在另一个实施例中,固件升级装置还包括:

第一分配模块,用于当目标节点的OS出现故障时,为PCIE集群系统中的每个节点各分配一个地址空间;

第三获取模块,用于获取为目标节点分配的地址空间;

映射模块703,用于将为目标节点分配的地址空间映射至本地地址空间。

在另一个实施例中,第一分配模块包括:

第四获取单元,用于获取非故障节点连接的PCIE交换器的总线区间和地址区间;

第五获取单元,用于获取连接至PCIE交换器的多个节点;

第一分配单元,用于从PCIE交换器总线区间中的第一条总线开始,在第一条总线对应的地址区间中为多个节点各分配一个地址空间;

第一判断单元,判断为多个节点分配的地址空间是否存在冲突,以及判断为多个节点分配的地址空间总和是否处于第一条总线对应的地址区间的范围内;

第二判断单元,用于当为多个节点分配的地址空间不冲突,且为多个节点分配的地址空间总和处于第一条总线对应的地址区间的范围内时,判断PCIE交换器是否为PCIE集群系统的根复合体PCIE交换器;

确定单元,用于当PCIE交换器为PCIE集群系统的根复合体PCIE交换器时,将在第一条总线对应的地址区间中为每个节点分配的地址空间作为为每个节点分配的地址空间。

在另一个实施例中,第一分配模块还包括:

第六获取单元,用于当PCIE交换器不为PCIE集群系统的根复合体PCIE交换器时,获取PCIE交换器的上一级PCIE交换器,并执行在上一级PCIE交换器的总线区间和地址区间中为每个节点各分配一个地址空间的过程,直至PCIE集群系统中的根复合体PCIE交换器。

在另一个实施例中,第一分配模块还包括:

第二分配单元,用于当为多个节点分配的地址空间存在冲突,和/或为多个节点分配的地址空间总和不处于第一总线对应的地址区间的范围内时,在下一条总线对应的地址区间中为多个节点各分配一个地址空间,并返回判断为多个节点分配的地址空间是否存在冲突的步骤,直至PCIE总线区间所包括的最后一条总线为止。

在另一个实施例中,固件升级装置还包括:

第二分配模块,用于当检测到上电后,通过BIOS和OS为非故障节点自身分配一个地址空间,将地址空间作为本地地址空间。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

如图8所示,其示出了一种非故障节点的结构示意图,所述非故障节点100可以用于执行上述图4或图5所对应实施例提供的固件升级方法。所述非故障节点100为常规的台式计算机、膝上型笔记本或者服务器。所述服务器可以为下述PCIE集群系统中的管理服务器或者备用管理服务器。所述非故障节点100 包括中央处理单元(CPU)101、包括随机存取存储器(RAM)102和只读存储器(ROM)103的系统存储器104,以及连接系统存储器104和中央处理单元101的系统总线105。所述非故障节点100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(BIBO)106,和用于存储操作系统、应用程序和其它程序模块的大容量存储设备107。

所述基本输入/输出系统106包括有用于显示信息的显示器108和用于用户输入信息的诸如鼠标、键盘之类的输入设备109。其中所述显示器108和输入设备109都通过连接到系统总线105的输入输出控制器110连接到中央处理单元101。所述基本输入/输出系统106还可以包括输入输出控制器110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器110还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备107通过连接到系统总线105的大容量存储控制器(未示出)连接到中央处理单元101。所述大容量存储设备107及其相关联的计算机可读介质为计算机100提供非易失性存储。也就是说,所述大容量存储设备107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。

根据本发明的各种实施例,所述非故障节点100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即非故障节点100可以通过连接在所述系统总线105上的网络接口单元111连接到网络112,或者说,也可以使用网络接口单元111来连接到其他类型的网络或远程计算机系统(未示出)。

关于所述非故障节点100执行固件升级方法的原理,可以参见上述图4或图5中的内容,此处不再赘述。

图9是本发明另一实施例提供的一种PCIE集群系统的示意图。如图9所示,该PCIE集群系统包括至少两个节点和至少一个PCIE交换器。

其中,该PCIE集群系统中的每个节点均配置有至少一个NTB,PCIE集群系统中任一节点的NTB使节点的地址空间与其它节点的地址空间不冲突,且节点的NTB提供由节点的地址空间映射至另一个节点的地址空间时的通信方式;

每个节点通过所配置的NTB连接至一个PCIE交换器中的一个NTB或连接至一个其它节点的一个NTB;每个PCIE交换器配置有多个NTB,每个PCIE交换器配置的多个NTB中的每个NTB分别与一个节点或一个PCIE交换器连接。

其中,该PCIE集群系统中的任一非故障节点可以用于通过上述图4或图5所对应实施例提供的固件升级方法,对该PCIE集群中的其它任一节点进行固件升级。

具体地,当需要对PCIE集群系统的任一节点进行固件升级时,由PCIE集群系统中的任一非故障节点根据所配置的NTB获取目标节点的地址空间,其中,目标节点为PCIE集群系统中任一需进行固件升级的节点;非故障节点获取本地地址空间,并将目标节点的地址空间映射至本地地址空间,得到对目标节点上的寄存器进行访问的权限;非故障节点在本地配置目标节点上的待升级固件的寄存器,以完成对待升级固件的升级。

需要说明的是,非故障节点对目标节点的固件进行升级的方法已在上述图4或图5所对应实施例中进行了详细阐述,此处不再赘述。

本发明实施例提供的PCIE集群系统,非故障节点通过获取目标节点的地址空间及本地地址空间,并通过将目标节点的地址空间映射到非故障节点本地地址空间,从而实现一种通过PCIE集群系统中的非故障节点对目标节点的固件进行升级的方式。由于无需借助PCIE集群系统外的外接工具实现固件升级,因此,固件升级成本比较低。另外,由于目标节点无需依赖于自身的OS即可实现固件升级,因此,固件升级方式更具灵活性。

在另一个实施例中,仍如图9所示,PCIE集群系统还包括一个管理服务器。管理服务器配置有至少一个NTB,且管理服务器通过所配置的NTB连接至PCIE集群系统中的一个PCIE交换器。管理服务器,用于当PCIE集群系统中的所有节点均因故障而无法自己进行固件升级以及对其它节点进行固件升级时,由管理服务器通过所配置的NTB及每个节点配置的NTB对每个节点的固件进行升级。

其中,管理服务器对其所在的PCIE集群系统中的任一节点进行固件升级的原理,同上述图4或图5所对应实施例中非故障节点对目标节点的固件进行升 级的原理一致,具体可参见上述图4或图5所对应实施例的内容,此处不再赘述。

在另一个实施例中,仍如图9所示,PCIE集群系统还包括至少一个备用管理服务器,每个备用管理服务器配置有至少一个NTB,且每个备用管理服务器通过所配置的NTB连接至PCIE集群系统中的一个PCIE交换器。任一备用管理服务器,用于当管理服务器因故障无法对PCIE集群系统中的节点进行固件升级时,由备用管理服务器通过所配置的NTB及每个节点配置的NTB对每个节点的固件进行升级。

其中,备用管理服务器对其所在的PCIE集群系统中的任一节点进行固件升级的原理,同上述图4或图5所对应实施例中非故障节点对目标节点的固件进行升级的原理一致,具体可参见上述图4或图5所对应实施例的内容,此处不再赘述。

需要说明的是:上述实施例提供的固件升级装置在进行固件升级时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的固件升级装置及PCIE集群系统与固件升级方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1