CN111124459B - 一种fpga云服务器服务逻辑的更新方法及装置 - Google Patents
一种fpga云服务器服务逻辑的更新方法及装置 Download PDFInfo
- Publication number
- CN111124459B CN111124459B CN201811288984.2A CN201811288984A CN111124459B CN 111124459 B CN111124459 B CN 111124459B CN 201811288984 A CN201811288984 A CN 201811288984A CN 111124459 B CN111124459 B CN 111124459B
- Authority
- CN
- China
- Prior art keywords
- service logic
- fpga
- cloud server
- updating
- version
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种FPGA云服务器服务逻辑的更新方法及装置,FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;FPGA云服务器中存储有映射关系,映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;该方法包括:接收FPGA云服务器服务逻辑更新请求,更新请求中携带有FPGA云服务器更新到的服务逻辑版本的版本信息;查询映射关系,获取存储版本信息的目标存储分区;将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中。因此,本发明实施例提供的方案可以降低更新FPGA云服务器服务逻辑的资源和运维成本。
Description
技术领域
本发明实施例涉及计算机技术领域,特别是涉及一种FPGA云服务器服务逻辑的更新方法及装置。
背景技术
现场可编程门阵列(FPGA,Field Programmable Gate Array)云服务器(FPGACloud Computing)提供基于FPGA的计算服务。由于FPGA云服务器具备更高的灵活度和算法适应性,因此应用的越来越广泛。
目前,FPGA云服务器的服务逻辑版本通常是在FPGA云服务器出厂时,由厂商进行设置的。在FPGA云服务器的使用过程中,通常需要对FPGA云服务器的服务逻辑版本进行更新,比如,更新为其他类型的服务逻辑版本或对将当前的服务逻辑版本升级为新的版本。在对FPGA云服务器进行更新时,由于FPGA云服务器厂商编译工具不向下兼容,因此为了保证用户业务不受影响,必须保留当前服务逻辑版本的FPGA云服务器,同时需要至少一台部署了新的服务逻辑版本的FPGA云服务器。这样需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,造成资源冗余,而且运维成本也会成倍增加。
发明内容
有鉴于此,本发明实施例提出了一种服务逻辑更新方法、FPGA云服务器、管控端,主要目的在于降低更新FPGA云服务器服务逻辑的资源和运维成本。
为解决上述问题,第一方面,本发明实施例提供了一种FPGA云服务器服务逻辑的更新方法,所述现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;该FPGA云服务器服务逻辑的更新方法包括:
接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息;
查询所述映射关系,获取存储所述版本信息的目标存储分区;
将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中。
第二方面,本发明实施例提供了一种FPGA云服务器服务逻辑的更新装置,所述现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;所述FPGA云服务器服务逻辑的更新装置包括:
第一接收模块,用于接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息;
获取模块,用于查询所述映射关系,获取存储所述版本信息的目标存储分区;
第一更新模块,用于将所述获取模块获取的所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中。
第三方面,本发明实施例提供了一种FPGA云服务器,该FPGA云服务器包括:FPGA、FPGA存储器、存储模块以及上述中任一所述的FPGA云服务器服务逻辑的更新装置;
FPGA存储器中划分有多个存储分区,不同的分区用于存储不同的服务逻辑版本;
第一存储模块,用于存储映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;向所述FPGA云服务器服务逻辑的更新装置提供所述存储映射关系;
所述FPGA,用于运行所述FPGA云服务器服务逻辑的更新装置更新到的服务逻辑版本。
第四方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的FPGA云服务器服务逻辑的更新方法。
第五方面,本发明实施例提供了一种电子设备,所述电子设备中包括处理器、存储器和总线;所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述中任意一项所述的FPGA云服务器服务逻辑的更新方法。
本发明实施例提供了一种FPGA云服务器服务逻辑的更新方法及装置,FPGA云服务器中的FPGA存储器划分有两个或两个以上的存储分区,该存储分区用于存储不同的服务逻辑版本,使得同一台FPGA云服务器中同时存储有多种版本的服务逻辑,当需要进行服务逻辑版本的切换时,在多个不同的服务逻辑版本间进行服务逻辑版本的更新。可见在FPGA云服务器服务逻辑更新时,并不需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,因此,本发明实施例提供的方案可以降低更新FPGA云服务器服务逻辑时产生的资源和运维成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例提供的一种FPGA云服务器服务逻辑的更新方法的流程图;
图2示出了本发明另一个实施例提供的一种FPGA云服务器服务逻辑的更新方法的流程图;
图3示出了本发明一个实施例提供的一种FPGA云服务器服务逻辑的更新方法中存储下发服务逻辑版本的流程图;
图4示出了本发明一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图5示出了本发明另一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图6示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图7示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图8示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图9示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图10示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图11示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图12示出了本发明又一个实施例提供的一种FPGA云服务器服务逻辑的更新装置的结构示意图;
图13示出了本发明一个实施例提供的一种FPGA云服务器的结构示意图;
图14示出了本发明另一个实施例提供的一种FPGA云服务器的结构示意图;
图15示出了本发明一个实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种FPGA云服务器服务逻辑的更新方法,所述现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;如图1所示,该FPGA云服务器服务逻辑的更新方法包括:
101、接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息。
102、查询所述映射关系,获取存储所述版本信息的目标存储分区。
103、将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中。
根据图1所示的实施例,FPGA云服务器中的FPGA存储器划分有两个或两个以上的存储分区,该存储分区用于存储不同的服务逻辑版本,使得同一台FPGA云服务器中同时存储有多种版本的服务逻辑,当需要进行服务逻辑版本的切换时,在多个不同的服务逻辑版本间进行服务逻辑版本的更新。可见在FPGA云服务器服务逻辑更新时,并不需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,因此,本发明实施例提供的方案可以降低更新FPGA云服务器服务逻辑的资源和运维成本。
在本发明一个实施例中,服务逻辑版本(shell versions)的具体类型可以根据业务要求确定。可选地,服务逻辑版本(Shell版本)是FPGA的逻辑层,是提供PCIe(peripheralcomponent interconnect express)、DDR(Double Data Rate,双倍速率同步动态随机存储器)控制、时钟控制等功能的服务逻辑。
在本发明一个实施例中,FPGA存储器中各个存储分区的大小可以相同也可以不同。但需要注意的是,每一个存储分区能够完整的存储其对应存储的服务逻辑版本。
在本实施例中,在FPGA云服务器出厂时,FPGA存储器中各个存储分区的存储情况至少可以存在如下两种:
第一种,每一个存储分别存储有一个服务逻辑版本;
第二种,各个存储分区中的一部分存储分区分别存储有服务逻辑版本,另一部分存储分区处于空白状态,不存储任何服务逻辑版本。FPGA云服务器在日后的使用过程中,当用户或厂商需要增加新的服务逻辑版本时,处于空白状态的存储分区用于存储用户或厂商下发的,且当前时间没有任何存储分区存储的服务逻辑版本。由于FPGA存储器中存在有空白状态的存储分区,因此FPGA云服务器在日后的使用过程中更有利于FPGA云服务器的业务扩展。
在本发明一个实施例中,各个存储分区中存储的服务逻辑版本可以是不同类型的服务逻辑版本,也可以是同一个类型不同版本的服务逻辑版本。
在本发明一个实施例中,映射关系在FPGA云服务器中的存储型式可以根据业务要求确定。可选地,映射关系可以以映射表的型式存在,且在映射表中各个服务逻辑版本的版本信息与其各自存储分区的分区地址一一对应。
在本实施例中,版本信息的具体型式可以根据业务要求确定,可选的,版本信息中可以包括但不限于服务逻辑名称以及服务逻辑的版本号。每一个服务逻辑版本信息对应的版本信息具有唯一性。
在本实施例中,分区地址的具体型式以及长度可以根据业务要求确定。比如,存储分区1的分区地址为1A、存储分区2的分区地址为2A。每一个存储分区对应的分区地址具有唯一性。
在本发明一个实施例中,上述图1所示流程图中的101接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息,可以包括:
在本实施例中,FPGA云服务器服务逻辑更新请求的确定过程至少包括如下两种:
第一种过程:
接收用户或厂商发送的FPGA云服务器服务逻辑更新请求,确定用户或厂商是否合法,如果是,接收FPGA云服务器服务逻辑更新请求。其中,可以采用对称加密方法或非对称加密方法确定用户或厂商是否合法。
在第一种过程中,在用户或厂商有服务逻辑更新需求时,可以随时发送FPGA云服务器服务逻辑更新请求,以使FPGA云服务器服务逻辑尽快更新为自己需要的服务逻辑。因此本种过程的业务应用较为灵活。第二种过程:
FPGA云服务器中还存储有至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间;
针对每一个所述样本更新请求分别执行:判断当前时间是否达到所述样本更新请求对应的更新时间;如果是,将所述样本更新请求确定为所述更新请求,并接收所述更新请求。
在第二种过程中,不同的样本更新请求需要对应的不同的更新时间,以便在同一时间不会要求同时更新两种服务逻辑版本。由于本过程中不需要用户或厂商发送更新请求,根据每一个样本服务逻辑版本对应的更新时间便可自动确定更新请求,不需要用户或厂商的干预,因此自动化程度较高。需要注意的是,样本更新请求为对应各个存储分区中已存储的服务逻辑版本。
根据上述实施例,由于可以根据不同的样本更新请求对应的不同的更新时间便可以自动确定更新请求,不需要用户或厂商的干预便可以对FPGA中的服务逻辑版本更新,因此自动化程度较高。
在本发明一个实施例中,在上述图1所示流程图中的101“接收FPGA云服务器服务逻辑更新请求”之后,所述FPGA云服务器服务逻辑的更新方法还可以包括如下步骤:
A1、判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新;如果支持,执行102“查询所述映射关系,获取存储所述版本信息的目标存储分区”。
在本实施例中,A1“判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新”的具体过程至少可以包括如下三种:
第一种,判断更新请求中携带的版本信息是否存储在至少两个存储分区内,如果是,则判断出更新请求对应的服务逻辑版本支持更新。
第二种,为至少两个存储分区中存储的各个服务逻辑版本分别设置各自对应的支持更新时间区间。确定接收更新请求的接收时间,判断接收时间是否位于更新请求对应的服务逻辑版本的支持更新时间区间内,如果是,则判断出更新请求对应的服务逻辑版本支持更新。
第三种,结合上述两种过程来判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新。
在本实施例中,在判断出FPGA云服务器服务逻辑更新请求对应的服务逻辑版本不支持更新时,则报错,以使提交FPGA云服务器服务逻辑更新请求的用户或厂商及时了解到其提交更新请求不能完成,以便用户或厂商可以根据报错进行相应的处理。报错的具体的型式可以根据业务要求确定,可选地,报错为文本形式的报错,报错时可携带有不支持更新的原因。
根据上述实施例,在FPGA云服务器服务逻辑更新请求对应的服务逻辑版本支持更新时,才执行相应的服务逻辑版本更新操作。因此,可以降低服务逻辑版本更新的错误率。
在本发明一个实施例中,在执行上一个实施例A1判断出所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本支持更新之后,所述FPGA云服务器服务逻辑的更新方法还包括如下步骤:
判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否与所述FPGA中的当前服务逻辑版本一致;如果否,执行102“查询所述映射关系,获取存储所述版本信息的目标存储分区”。
在本实施例中,执行“判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否与所述FPGA中的当前服务逻辑版本一致”的具体过程可以包括但不限于:获取当前服务逻辑版本的版本信息;将当前服务逻辑版本的版本信息与更新请求中携带的版本信息进行比对;当比对结果为一致时,判断出更新请求对应的服务逻辑版本与FPGA中的当前服务逻辑版本一致,说明更新请求对应的服务逻辑版本已在FPGA中,此时不需要更新服务逻辑版本。当比对结果为一致时,判断出更新请求对应的服务逻辑版本与FPGA中的当前服务逻辑版本不一致,可以根据更新请求更新FPGA中的服务逻辑版本。
根据上述实施例,在FPGA云服务器服务逻辑更新请求对应的服务逻辑版本与述FPGA中的当前服务逻辑版本不一致时,才执行相应的服务逻辑版本更新操作。因此,可以降低执行无用的服务逻辑版本更新操作的概率。
在本发明一个实施例中,上述图1所示流程图中的102查询所述映射关系,获取存储所述版本信息的目标存储分区;可以包括:
在本实施例中,查询映射关系中是否包括版本信息对应的服务逻辑版本,如果查询出服务逻辑版本,则获取服务逻辑版本对应的目标存储分区,该服务逻辑版本的版本信息存储在目标存储分区内。
在本发明一个实施例中,上述图1所示流程图中的103将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中,可以包括如下步骤:
将所述目标存储分区的分区地址写入到预设的FPGA的启动装载程序中;
重启所述FPGA,所述启动装载程序根据所述分区地址将所述目标存储分区中存储的服务逻辑版本装载到所述FPGA中。
在本实施例中,可以将目标存储分区的分区地址以设定的写入格式写入到FPGA的启动装载程序(boot loader)中,以使启动装载程序可以识别到分区地址。可选地,写入格式的具体型式可以根据业务要求确定。启动装载程序可以部署在满足业务要求的位置,可选地,启动装载程序部署在FPGA中。
在本实施例中,在重启FPGA时擦除FPGA中的当前服务逻辑版本,然后启动装载程序根据分区地址将目标存储分区存储的服务逻辑版本装载到FPGA中,从而完成FPGA云服务器服务逻辑版本的更新。其中,擦除FPGA中的当前服务逻辑版本的方法包括两种:第一种,将FPGA中的当前服务逻辑版本整体擦除。第二种,随着启动装载程序的装载进程,一部分一部分的擦除FPGA中的当前服务逻辑版本。
根据上述实施例,由于利用启动装载程序根据分区地址将存储分区中存储的服务逻辑版本装载到FPGA中的,因此可以保证更新请求要求的服务逻辑版本准确的装载到FPGA中。
在本发明一个实施例中,在上述图1所示流程图中的103“将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中”之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断更新到所述FPGA中的服务逻辑版本是否更新正常;
如果否,将更新之前所述FPGA中的第一服务逻辑版本更新到所述FPGA中。
在本实施例中,判断更新到所述FPGA中的服务逻辑版本是否更新正常的过程至少包括如下三种:
第一种,重启FPGA,判断FPGA是否重启成功;若成功,则判断出更新到FPGA中的服务逻辑版本更新正常;否则,判断出更新到FPGA中的服务逻辑版本更新异常,报错,以使用户或厂商及时根据报错排除异常。
第二种,FPGA根据预设的状态检测信息运行,判断FPGA的运行状态是否正常(比如,是否得到预设的结果信息);若正常,则判断出更新到FPGA中的服务逻辑版本更新正常;否则,判断出更新到FPGA中的服务逻辑版本更新异常,报错,以使用户或厂商及时根据报错排除异常。
第三种,结合上述的两种方法:重启FPGA,判断FPGA是否重启成功;
若成功,FPGA根据预设的状态检测信息运行,判断FPGA的运行状态是否正常(比如,是否得到预设的结果信息);
若正常,则判断出更新到FPGA中的服务逻辑版本更新正常;
若不正常,判断出更新到FPGA中的服务逻辑版本更新异常,报错,以使用户或厂商及时根据报错排除异常。
若不成功,判断出更新到FPGA中的服务逻辑版本更新异常,报错,以使用户或厂商及时根据报错排除异常。
在本实施例中,判断出更新到FPGA中的服务逻辑版本更新异常时,为了不影响FPGA正常运转,将更新之前FPGA中的第一服务逻辑版本更新到FPGA中。
在本实施例中,将更新之前所述FPGA中的第一服务逻辑版本更新到所述FPGA中的具体过程可以包括:获取存储第一服务逻辑版本的第一存储分区;将第一存储分区的分区地址写入到预设的FPGA的启动装载程序中;重启FPGA,启动装载程序根据分区地址将第一存储分区中存储的第一服务逻辑版本装载到FPGA中。
在本实施例中,获取存储第一服务逻辑版本的第一存储分区的具体过程为:根据第一服务逻辑版本的版本信息,查询映射关系,获取存储版本信息的第一存储分区。将第一存储分区的分区地址写入到预设的FPGA的启动装载程序中的具体过程为:可以将第一存储分区的分区地址以设定的写入格式写入到FPGA的启动装载程序(boot loader)中,以使启动装载程序可以识别到分区地址。可选地,写入格式的具体型式可以根据业务要求确定。重启FPGA,启动装载程序根据分区地址将第一存储分区中存储的第一服务逻辑版本装载到FPGA中的具体过程可以为:在重启FPGA时擦除FPGA中的服务逻辑版本,然后启动装载程序根据分区地址将第一存储分区存储的服务逻辑版本装载到FPGA中,从而完成FPGA云服务器服务逻辑版本的更新。
根据上述实施例,在将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之后,需要判断更新到FPGA中的服务逻辑版本是否更新正常。且在更新异常时,可以将更新之前FPGA中的服务逻辑版本重新更新到FPGA中,从而完成服务逻辑版本的回滚操作,保证FPGA中的可以存在正常的逻辑版本来执行任务。
在本发明一个实施例中,在上述图1所示流程图中的103“将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中”之前,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA中的当前服务逻辑版本是否存在正在执行的任务;
如果是,立即停止所述任务;或,在预设的时长之后停止所述任务;或,等候所述任务执行完成。
在本实施例中,通过如下设定可以及时的判断出FPGA中的当前服务逻辑版本是否存在正在执行的任务:设定任务执行标识文件。当前服务逻辑版本存在正在执行的任务时,任务执行标识文件出现在设定的目录。当前服务逻辑版本不存在正在执行的任务时,在设定的目录中不存在任务执行标识文件。
在本实施例中,在判断出当前服务逻辑版本存在正在执行的任务时,立即停止任务,以便及时将目标存储分区中存储的服务逻辑版本更新到FPGA中,从而迅速的完成服务逻辑版本更新。
在本实施例中,在判断出当前服务逻辑版本存在正在执行的任务时,在预设的时长之后停止任务。给出预设时长的目的是为了使能够在预设时长内完成的任务可以运行完成。而超出时长的任务会被停止,以便可以及时将目标存储分区中存储的服务逻辑版本更新到FPGA中,从而迅速的完成服务逻辑版本更新。
在本实施例中,在判断出当前服务逻辑版本存在正在执行的任务时,等候任务执行完成,以便任务的运行过程中不被打断。在任务完成时,将目标存储分区中存储的服务逻辑版本更新到FPGA中。
根据上述实施例,将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之前,需要判断FPGA中的当前服务逻辑版本是否存在正在执行的任务,并根据具体的业务需求停止任务,以保证更新服务逻辑版本时FPGA中不存在正在执行的任务,从而使服务逻辑版本可以准确更新。
在本发明一个实施例中,所述FPGA云服务器服务逻辑的更新方法,还包括:
接收下发的服务逻辑版本;
查询所述映射关系中是否存在所述下发的服务逻辑版本;
若不存在所述下发的服务逻辑版本,则检测所述多个存储分区中是否存在第二存储分区,其中,所述第二存储分区为未存储服务逻辑版本的存储分区;
若存在所述第二存储分区,将所述下发的服务逻辑版本存储在选取的一个第二存储分区中;
若不存在所述第二存储分区,则根据预定的选择机制选取一个存储分区,将所述下发的服务逻辑版本替换所述选取的存储分区中存储的服务逻辑版本。
在本实施例中,在用户或厂商需要FPGA存储器存储满足其业务需要的服务逻辑版本时,均可以下发服务逻辑版本。需要注意的是,下发的服务逻辑版本的大小不宜超出存储分区的大小,以便存储分区可以完整的存储服务逻辑版本。
在本实施例中,在查询映射关系中不存在下发的服务逻辑版本时,说明服务逻辑版本为新的服务逻辑版本,需要存储在存储分区内。查询映射关系中存在下发的服务逻辑版本时,说明利用已存在的服务逻辑版本就可以完成下发的服务逻辑版本的业务,所以不需再将下发的服务逻辑版本存储在存储分区内,如果此时还将下发的服务逻辑版本存储在存储分区内,那么存储分区中将同时存储两个相同的服务逻辑版本,在更新FPGA的服务逻辑版本时,将造成更新服务逻辑版本的混乱。
在本实施例中,若经过查询,映射关系中不存在下发的服务逻辑版本,则检测多个存储分区中是否存在第二存储分区,其中,第二存储分区为未存储服务逻辑版本的存储分区。若存在第二存储分区,将下发的服务逻辑版本存储在选取的一个第二存储分区中,该选取的第二存储分区的存储空间应等于或大于下发的服务逻辑版本的大小,以便下发的服务逻辑版本可以完整的存在选取的第二存储分区中。若不存在第二存储分区,则根据预定的选择机制选取一个存储分区,将下发的服务逻辑版本替换选取的存储分区中存储的服务逻辑版本。其中,替换的过程为将选取的存储分区中的服务逻辑整体擦除,然后将下发的服务逻辑版本写入到选取的存储分区中。
在本实施例中,选择机制至少包括如下三种:
第一种,选择一个存储的服务逻辑版本在设定时长内更新到FPGA中的次数小于设定的次数阈值,且存储空间大于或等于下发的服务逻辑版本大小的存储分区。
第二种,选择一个存储的服务逻辑版本的重要程度小于预设的重要程度,且存储空间大于或等于下发的服务逻辑版本大小的存储分区。
第三种,结合上述两种方法的选择机制。
根据上述实施例,接收下发的服务逻辑版本,并将下发的服务逻辑版本存储在选取的存储分区中,从而可以对FPGA云服务器进行业务适应性扩展。
在本发明一个实施例中,在上述图1所示流程图中的103“将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中”之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA中的服务逻辑版本是否更新正确;
如果否,报错。
在本实施例中,判断FPGA中的服务逻辑版本是否更新正确的过程可以包括但不限于:重启FPGA,判断重启后的服务逻辑版本的版本信息是否与更新请求中的版本信息一致,如果是,则判断出更新正确,此时可以将FPGA中的当前服务逻辑版本的版本信息设置为当前版本信息,以便用户或厂商可以根据当前版本信息及时了解到FPGA中当前的服务逻辑版本,以便利用服务逻辑版本执行相应的任务。
在本实施例中,在判断出FPGA中的服务逻辑版本更新不正确时,报错,以便可以报错及时了解到服务逻辑版本更新异常,并及时进行异常处理。
在本实施例中,在判断出FPGA中的服务逻辑版本更新不正确时,将更新之前FPGA中的第一服务逻辑版本更新到FPGA中。
根据上述实施例,将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之后,需要判断FPGA中的服务逻辑版本是否更新正确,在判断出更新不正确时报错,以使用户或厂商根据报错及时进行异常处理。
在本发明一个实施例中,在上述图1所示流程图中的103“将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中”之前,所述FPGA云服务器服务逻辑的更新方法还包括:
提供查看指令,其中,所述查看指令用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息;
接收所述查看指令,展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。
在本实施例中,查看指令的具体型式可以根据业务要求进行编写,只要编写出的查看指令查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息既可。
在本实施例中,在接收到查看指令时,可以以窗口界面的形式展示当前更新的服务逻辑版本的更新执行状态(比如可以包括但不限于执行进度,以进度条的形式进行展示)以及当前更新的服务逻辑版本的版本信息(服务逻辑名称以及版本号),以便用户或厂商可以根据展示的更新执行状态以及版本信息及时了解到当前的更新进度。
根据上述实施例,向用户或厂商提供用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息的查看指令。且在接收到查看指令时,展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。从而使厂商或用户及时了解到服务逻辑版本的更新情况。
在本发明一个实施例中,下面以图2所示的流程图为例对FPGA云服务器服务逻辑的更新方法进行说明。本实施例中,现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本(比如,FPGA存储器划分有4个,其中,存储分区存储分区1A中存储有服务逻辑版本shell A1.0、存储分区1B中存储有服务逻辑版本shell A2.0、存储分区1C中存储有服务逻辑版本shell C1.0、存储分区1D处于空白状态)。FPGA云服务器中存储有映射关系,映射关系为不同的服务逻辑版本与其各自存储分区的对应关系。FPGA云服务器中还存储有至少一个FPGA云服务器服务逻辑样本更新请求以及每一个样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间。
201、判断是否存在用户或厂商发送的FPGA云服务器服务逻辑更新请求,若存在,执行204;否则,执行202。
202、针对每一个样本更新请求分别执行:判断当前时间是否达到当前样本更新请求对应的更新时间;若达到,执行203。若各个样本更新请求分别对应的更新时间均未达到,执行201。
203、将当前样本更新请求确定为FPGA云服务器服务逻辑更新请求。
204、接收FPGA云服务器服务逻辑更新请求,更新请求中携带有FPGA云服务器更新到的服务逻辑版本的版本信息。
205、判断FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新;若支持,执行206;否则,执行221。
206、判断FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否与FPGA中当前运行的服务逻辑版本一致;若不一致,执行207;否则,执行222。
207、查询映射关系,获取存储版本信息的目标存储分区。
208、判断FPGA中的当前服务逻辑版本是否存在正在执行的任务;若是,执行209;否则,执行210。
209、在预设的时长之后停止所述任务。
210、提供查看指令,其中,所述查看指令用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息。
211、将目标存储分区的分区地址写入到预设的FPGA的启动装载程序中。
212、重启FPGA,启动装载程序根据分区地址将目标存储分区中存储的服务逻辑版本装载到FPGA中。
213、判断是否接收到查看指令,若是,执行214,否则,执行215。
214、展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。
215、在装载完成时,判断更新到FPGA中的服务逻辑版本是否更新正常;若是,执行219;否则,执行216。
216、获取存储更新之前FPGA中的第一服务逻辑版本的第一存储分区。
217、将第一存储分区的分区地址写入到预设的FPGA的启动装载程序中。
218、重启FPGA,启动装载程序根据分区地址将第一存储分区中存储的第一服务逻辑版本装载到FPGA中。
219、判断FPGA中的服务逻辑版本是否更新正确,若是,执行201;否则,执行220。
220、针对更新不正确报错。
221、针对不支持更新进行报错。
222、针对不一致进行报错。
在本实施例中,在执行上述图2所示的流程时,FPGA云服务器服务逻辑的更新方法还可以同时执行如图3所示的流程,以在用户或厂商下发服务逻辑版本时,可以及时存储下发的服务逻辑。图3所示的流程包括如下步骤:
223、判断是否存在下发的服务逻辑版本,若是,执行224;否则,继续执行本步骤。
224、接收下发的服务逻辑版本。
225、查询映射关系中是否存在下发的服务逻辑版本,若存在,执行223;否则,执行226。
226、检测多个存储分区中是否存在第二存储分区,其中,第二存储分区为未存储服务逻辑版本的存储分区;若存在,执行227;否则,执行228。
227、将下发的服务逻辑版本存储在选取的一个第二存储分区中,并执行223。
228、根据预定的选择机制选取一个存储分区,将下发的服务逻辑版本替换选取的存储分区中存储的服务逻辑版本,并执行223。
如图4所示,本发明实施例提供了一种FPGA云服务器服务逻辑的更新装置,所述现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;所述FPGA云服务器服务逻辑的更新装置包括:
第一接收模块301,用于接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息;
获取模块302,用于查询所述映射关系,获取存储所述版本信息的目标存储分区;
第一更新模块303,用于将所述获取模块302获取的所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中。
根据图4所示的实施例,FPGA云服务器中的FPGA存储器划分有两个或两个以上的存储分区,该存储分区用于存储不同的服务逻辑版本,使得同一台FPGA云服务器中同时存储有多种版本的服务逻辑,当需要进行服务逻辑版本的切换时,在多个不同的服务逻辑版本间进行服务逻辑版本的更新。可见在FPGA云服务器服务逻辑更新时,并不需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,因此,本发明实施例提供的方案可以降低更新FPGA云服务器服务逻辑的资源和运维成本。
在本发明一个实施例中,如图5所示,所述第一更新模块303中可以包括:
写入子模块3031,用于将所述获取模块302获取的所述目标存储分区的分区地址写入到预设的FPGA的启动装载程序中;
装载子模块3032,用于重启所述FPGA,所述启动装载程序根据所述分区地址将所述目标存储分区中存储的服务逻辑版本装载到所述FPGA中。
在本发明一个实施例中,如图6所示,所述FPGA云服务器服务逻辑的更新装置还包括:
第一判断模块304,用于判断所述第一更新模块303更新到所述FPGA中的服务逻辑版本是否更新正常;若更新不正常,触发第二更新模块305;
所述第二更新模块305,用于在所述第一判断模块304的触发下将更新之前所述FPGA中的第一服务逻辑版本更新到所述FPGA中。
在本发明一个实施例中,所述第二更新模块305,用于获取存储所述第一服务逻辑版本的第一存储分区;将所述第一存储分区的分区地址写入到预设的FPGA的启动装载程序中;重启所述FPGA,所述启动装载程序根据所述分区地址将所述第一存储分区中存储的第一服务逻辑版本装载到所述FPGA中。
在本发明一个实施例中,如图7所示,所述FPGA云服务器服务逻辑的更新装置还包括:
第二判断模块306,用于判断所述FPGA中的当前的服务逻辑版本是否存在正在执行的任务;若存在,触发任务处理模块307;
所述任务处理模块307,用于在所述第二判断模块306的触发,执行立即停止所述任务;或,在预设的时长之后停止所述任务;或,等候所述任务执行完成。
在本发明一个实施例中,如图8所示,所述FPGA云服务器服务逻辑的更新装置,还包括:
第二接收模块308,用于接收下发的服务逻辑版本;
查询模块309,用于查询所述映射关系中是否存在所述下发的服务逻辑版本;若不存在,触发所述检测模块310;
所述检测模块310,用于在所述查询模块309的触发下,检测所述多个存储分区中是否存在第二存储分区,其中,所述第二存储分区为未存储服务逻辑版本的存储分区;若存在,触发第一执行模块;若不存在,触发第二执行模块;
所述第一执行模块311,用于在所述检测模块310的触发下,将所述下发的服务逻辑版本存储在选取的一个第二存储分区中;
所述第二执行模块312,用于在所述检测模块310的触发下,根据预定的选择机制选取一个存储分区,将所述下发的服务逻辑版本替换所述选取的存储分区中存储的服务逻辑版本。
在本发明一个实施例中,如图9所示,所述FPGA云服务器服务逻辑的更新装置还包括:
第三判断模块313,用于判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新;若支持,触发所述获取模块302。
在本发明一个实施例中,如图9所示,所述FPGA云服务器服务逻辑的更新装置还包括:
第四判断模块314,用于在所述第三判断模块313判断出支持更新时,判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否与所述FPGA中当前运行的服务逻辑版本一致;若不一致,触发所述获取模块302。
在本发明一个实施例中,如图10所示,所述FPGA云服务器中还存储有至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间;
所述FPGA云服务器服务逻辑的更新装置,还包括:
第五判断模块315,用于针对每一个所述样本更新请求分别执行:判断当前时间是否达到所述样本更新请求对应的更新时间;若达到,将所述样本更新请求确定为所述更新请求。
在本发明一个实施例中,如图11所示,所述FPGA云服务器服务逻辑的更新装置,还包括:
第六判断模块316,用于在所述第一更新模块303将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中之后,判断所述FPGA中的服务逻辑版本是否更新正确;若更新不正确,触发报错模块317;
所述报错模块317,用于在所述第六判断模块316的触发下,报错。
在本发明一个实施例中,如图12所示,所述FPGA云服务器服务逻辑的更新装置,还包括:
提供模块318,用于提供查看指令,其中,所述查看指令用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息;
展示模块319,用于接收所述查看指令,展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。
如图13所示,本发明实施例提供了一种FPGA云服务器,该FPGA云服务器包括:
FPGA401、FPGA存储器402、第一存储模块403以及上述中任一所述的FPGA云服务器服务逻辑的更新装置404;
FPGA存储器402中划分有多个存储分区,不同的分区用于存储不同的服务逻辑版本;
第一存储模块403,用于存储映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;向所述FPGA云服务器服务逻辑的更新装置404提供所述存储映射关系;
所述FPGA401,用于运行所述FPGA云服务器服务逻辑的更新装置404更新到的服务逻辑版本。
根据图13所示的实施例,FPGA云服务器中的FPGA存储器划分有两个或两个以上的存储分区,不同的存储分区用于存储不同的服务逻辑版本。FPGA云服务器中存储有映射关系,该映射关系为不同的服务逻辑版本与其各自存储分区的对应关系。FPGA云服务器服务逻辑的更新装置根据第一存储模块存储的映射关系将一个存储分区中存储的服务逻辑版本更新到FPGA中。通过上述可知,FPGA存储器的各个存储分区中存储有多个不同的服务逻辑版本,可以实现同一台FPGA云服务器在多个不同的服务逻辑版本间进行服务逻辑版本的更新。可见在FPGA云服务器服务逻辑更新时,并不需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,因此,本发明实施例提供的方案降低更新FPGA云服务器服务逻辑的资源和运维成本。
在本发明一个实施例中,如图14所示,所述FPGA云服务器还包括:
第二存储模块405,用于存储至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间;向所述FPGA云服务器服务逻辑的更新装置404提供所述至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。基于上述的实施例中的叙述,上述装置的实施例可以根据业务需要自由组合,组合成新的实施例。
在本发明一个实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述中任意一项所述的FPGA云服务器服务逻辑的更新方法。
在本发明一个实施例提供了一种电子设备,如图15所示,所述电子设备中包括处理器501、存储器502和总线503;所述处理器501、所述存储器502通过所述总线503完成相互间的通信;所述处理器501用于调用所述存储器502中的程序指令,以执行上述中任意一项所述的FPGA云服务器服务逻辑的更新方法。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,FPGA云服务器中的FPGA存储器划分有两个或两个以上的存储分区,该存储分区用于存储不同的服务逻辑版本,使得同一台FPGA云服务器中同时存储有多种版本的服务逻辑,当需要进行服务逻辑版本的切换时,在多个不同的服务逻辑版本间进行服务逻辑版本的更新。可见在FPGA云服务器服务逻辑更新时,并不需要同时维护至少两套不同服务逻辑版本的FPGA云服务器,因此,本发明实施例提供的方案可以降低更新FPGA云服务器服务逻辑的资源和运维成本。
2、在本发明实施例中,在用户或厂商有服务逻辑更新需求时,可以随时发送FPGA云服务器服务逻辑更新请求,以使FPGA云服务器服务逻辑尽快更新为自己需要的服务逻辑。因此业务应用较为灵活。
3、在本发明实施例中,由于可以根据不同的样本更新请求对应的不同的更新时间便可以自动确定更新请求,不需要用户或厂商的干预便可以对FPGA中的服务逻辑版本更新,因此自动化程度较高。
4、在本发明实施例中,在FPGA云服务器服务逻辑更新请求对应的服务逻辑版本支持更新时,才执行相应的服务逻辑版本更新操作。因此,可以降低服务逻辑版本更新的错误率。
5、在本发明实施例中,在FPGA云服务器服务逻辑更新请求对应的服务逻辑版本与述FPGA中的当前服务逻辑版本不一致时,才执行相应的服务逻辑版本更新操作。因此,可以降低执行无用的服务逻辑版本更新操作的概率。
6、在本发明实施例中,由于利用启动装载程序根据分区地址将存储分区中存储的服务逻辑版本装载到FPGA中的,因此可以保证更新请求要求的服务逻辑版本准确的装载到FPGA中。
7、在本发明实施例中,在将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之后,需要判断更新到FPGA中的服务逻辑版本是否更新正常。且在更新异常时,可以将更新之前FPGA中的服务逻辑版本重新更新到FPGA中,从而完成服务逻辑版本的回滚操作,保证FPGA中的可以存在正常的逻辑版本来执行任务。
8、在本发明实施例中,将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之前,需要判断FPGA中的当前服务逻辑版本是否存在正在执行的任务,并根据具体的业务需求停止任务,以保证更新服务逻辑版本时FPGA中不存在正在执行的任务,从而使服务逻辑版本可以准确更新。
9、在本发明实施例中,接收下发的服务逻辑版本,并将下发的服务逻辑版本存储在选取的存储分区中,从而可以对FPGA云服务器进行业务适应性扩展。
10、在本发明实施例中,将目标存储分区中存储的服务逻辑版本更新到FPGA云服务器的FPGA中之后,需要判断FPGA中的服务逻辑版本是否更新正确,在判断出更新不正确时报错,以使用户或厂商根据报错及时进行异常处理。
11、在本发明实施例中,向用户或厂商提供用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息的查看指令。且在接收到查看指令时,展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。从而使厂商或用户及时了解到服务逻辑版本的更新情况。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种FPGA云服务器服务逻辑的更新方法,其特征在于,现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;所述方法包括:
接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息;
查询所述映射关系,获取存储所述版本信息的目标存储分区;
将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中;
所述方法还包括:
接收下发的服务逻辑版本;
查询所述映射关系中是否存在所述下发的服务逻辑版本;
若不存在所述下发的服务逻辑版本,则检测多个存储分区中是否存在第二存储分区,其中,所述第二存储分区为未存储服务逻辑版本的存储分区;
若存在所述第二存储分区,则将所述下发的服务逻辑版本存储在选取的一个第二存储分区中;
若不存在所述第二存储分区,则根据预定的选择机制选取一个存储分区,将所述下发的服务逻辑版本替换所述选取的存储分区中存储的服务逻辑版本。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中,包括:
将所述目标存储分区的分区地址写入到预设的FPGA的启动装载程序中;
重启所述FPGA,所述启动装载程序根据所述分区地址将所述目标存储分区中存储的服务逻辑版本装载到所述FPGA中。
3.根据权利要求1所述的方法,其特征在于,
在所述将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断更新到所述FPGA中的服务逻辑版本是否更新正常;
若更新不正常,将更新之前所述FPGA中的第一服务逻辑版本更新到所述FPGA中。
4.根据权利要求3所述的方法,其特征在于,
所述将更新之前所述FPGA中的第一服务逻辑版本更新到所述FPGA中,包括:
获取存储所述第一服务逻辑版本的第一存储分区;
将所述第一存储分区的分区地址写入到预设的FPGA的启动装载程序中;
重启所述FPGA,所述启动装载程序根据所述分区地址将所述第一存储分区中存储的第一服务逻辑版本装载到所述FPGA中。
5.根据权利要求1-4中任一所述的方法,其特征在于,在所述将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中之前,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA中的当前服务逻辑版本是否存在正在执行的任务;
若存在,立即停止所述任务;或,在预设的时长之后停止所述任务;或,等候所述任务执行完成。
6.根据权利要求1-4中任一所述的方法,其特征在于,在所述接收FPGA云服务器服务逻辑更新请求之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否支持更新;
若支持,执行所述查询所述映射关系,获取存储所述版本信息的目标存储分区。
7.根据权利要求6所述的方法,其特征在于,
在判断出所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本支持更新之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA云服务器服务逻辑更新请求对应的服务逻辑版本是否与所述FPGA中的当前服务逻辑版本一致;
若不一致,执行所述查询所述映射关系,获取存储所述版本信息的目标存储分区。
8.根据权利要求1-4中任一所述的方法,其特征在于,
所述FPGA云服务器中还存储有至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间;
所述FPGA云服务器服务逻辑的更新方法,还包括:
针对每一个所述样本更新请求分别执行:
判断当前时间是否达到所述样本更新请求对应的更新时间;
若达到,将所述样本更新请求确定为所述更新请求。
9.根据权利要求1-4中任一所述的方法,其特征在于,
在所述将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中之后,所述FPGA云服务器服务逻辑的更新方法还包括:
判断所述FPGA中的服务逻辑版本是否更新正确;
若更新不正确,报错。
10.根据权利要求1-4中任一所述的方法,其特征在于,
在所述将所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中之前,所述FPGA云服务器服务逻辑的更新方法还包括:
提供查看指令,其中,所述查看指令用于查看服务逻辑版本的更新执行状态以及服务逻辑版本的版本信息;
接收所述查看指令,展示当前更新的服务逻辑版本的更新执行状态以及当前更新的服务逻辑版本的版本信息。
11.一种FPGA云服务器服务逻辑的更新装置,其特征在于,现场可编程门阵列FPGA云服务器中的FPGA存储器划分有至少两个存储分区,不同的存储分区用于存储不同的服务逻辑版本;所述FPGA云服务器中存储有映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;所述FPGA云服务器服务逻辑的更新装置包括:
第一接收模块,用于接收FPGA云服务器服务逻辑更新请求,所述更新请求中携带有所述FPGA云服务器更新到的服务逻辑版本的版本信息;
获取模块,用于查询所述映射关系,获取存储所述版本信息的目标存储分区;
第一更新模块,用于将所述获取模块获取的所述目标存储分区中存储的服务逻辑版本更新到所述FPGA云服务器的FPGA中;
所述装置还包括:版本更新模块,用于接收下发的服务逻辑版本;查询所述映射关系中是否存在所述下发的服务逻辑版本;若不存在所述下发的服务逻辑版本,则检测多个存储分区中是否存在第二存储分区,其中,所述第二存储分区为未存储服务逻辑版本的存储分区;若存在所述第二存储分区,则将所述下发的服务逻辑版本存储在选取的一个第二存储分区中;若不存在所述第二存储分区,则根据预定的选择机制选取一个存储分区,将所述下发的服务逻辑版本替换所述选取的存储分区中存储的服务逻辑版本。
12.一种FPGA云服务器,其特征在于,包括:
FPGA、FPGA存储器、第一存储模块以及权利要求11所述的FPGA云服务器服务逻辑的更新装置;
FPGA存储器中划分有多个存储分区,不同的分区用于存储不同的服务逻辑版本;
第一存储模块,用于存储映射关系,所述映射关系为不同的服务逻辑版本与其各自存储分区的对应关系;向所述FPGA云服务器服务逻辑的更新装置提供所述存储映射关系;
所述FPGA,用于运行所述FPGA云服务器服务逻辑的更新装置更新到的服务逻辑版本。
13.根据权利要求12所述的FPGA云服务器,其特征在于,
所述FPGA云服务器还包括:
第二存储模块,用于存储至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间;其中,不同的样本更新请求对应不同的更新时间;向所述FPGA云服务器服务逻辑的更新装置提供所述至少一个FPGA云服务器服务逻辑样本更新请求以及每一个所述样本更新请求分别对应的更新时间。
14.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求10中任意一项所述的FPGA云服务器服务逻辑的更新方法。
15.一种电子设备,其特征在于,所述电子设备中包括处理器、存储器和总线;所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行权利要求1至权利要求10中任意一项所述的FPGA云服务器服务逻辑的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288984.2A CN111124459B (zh) | 2018-10-31 | 2018-10-31 | 一种fpga云服务器服务逻辑的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811288984.2A CN111124459B (zh) | 2018-10-31 | 2018-10-31 | 一种fpga云服务器服务逻辑的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124459A CN111124459A (zh) | 2020-05-08 |
CN111124459B true CN111124459B (zh) | 2023-04-07 |
Family
ID=70485687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811288984.2A Active CN111124459B (zh) | 2018-10-31 | 2018-10-31 | 一种fpga云服务器服务逻辑的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124459B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113009873A (zh) * | 2021-02-03 | 2021-06-22 | 深圳市显控科技股份有限公司 | Plc梯形图在线编译和下载的方法、plc及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和系统 |
CN103475743A (zh) * | 2013-09-30 | 2013-12-25 | 广州博冠信息科技有限公司 | 一种用于云服务的方法、装置及系统 |
CN104375939A (zh) * | 2014-11-25 | 2015-02-25 | 中国农业银行股份有限公司 | 一种版本控制的方法及系统 |
CN105516300A (zh) * | 2015-12-04 | 2016-04-20 | 上海斐讯数据通信技术有限公司 | 一种设备版本升级方法及系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
CN107704285A (zh) * | 2017-09-27 | 2018-02-16 | 中国科学院微电子研究所 | 现场可编程门阵列多版本配置芯片、系统和方法 |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
CN108319465A (zh) * | 2018-04-09 | 2018-07-24 | 中国科学院微电子研究所 | 对fpga配置数据进行升级的电路及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233604A1 (en) * | 2011-03-08 | 2012-09-13 | Jibbe Mahmoud K | Method for concurrently supporting new and legacy third party boot-sets in an array |
-
2018
- 2018-10-31 CN CN201811288984.2A patent/CN111124459B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和系统 |
CN103475743A (zh) * | 2013-09-30 | 2013-12-25 | 广州博冠信息科技有限公司 | 一种用于云服务的方法、装置及系统 |
CN104375939A (zh) * | 2014-11-25 | 2015-02-25 | 中国农业银行股份有限公司 | 一种版本控制的方法及系统 |
CN105516300A (zh) * | 2015-12-04 | 2016-04-20 | 上海斐讯数据通信技术有限公司 | 一种设备版本升级方法及系统 |
CN105955783A (zh) * | 2016-05-09 | 2016-09-21 | 浙江大学 | 一种基于fpga控制的远程fpga逻辑代码的下载方法 |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
CN107704285A (zh) * | 2017-09-27 | 2018-02-16 | 中国科学院微电子研究所 | 现场可编程门阵列多版本配置芯片、系统和方法 |
CN108319465A (zh) * | 2018-04-09 | 2018-07-24 | 中国科学院微电子研究所 | 对fpga配置数据进行升级的电路及方法 |
Non-Patent Citations (1)
Title |
---|
郝天琪 ; 孟立凡 ; 孙玉环 ; .一种批量FPGA远程并行智能升级的方案.电子器件.2016,第39卷(第04期),第820-824页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111124459A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763099B (zh) | 系统的启动方法、装置、电子设备和存储介质 | |
US20180293061A1 (en) | System and method for automatically managing updated uefi variables | |
US20170286099A1 (en) | Identification of a component for upgrade | |
CN107608681B (zh) | 操作系统安装方法、装置和服务器 | |
CN111782339A (zh) | 一种容器创建方法、装置、电子设备及存储介质 | |
CN111552491A (zh) | 移动载体的中转设备的固件升级的方法、装置与存储介质 | |
US20210141632A1 (en) | Automated software patching for versioned code | |
CN112799778A (zh) | 一种容器应用启动方法、设备及介质 | |
WO2023087622A1 (zh) | 虚拟机引导的配置方法、装置、计算机设备和存储介质 | |
CN111124459B (zh) | 一种fpga云服务器服务逻辑的更新方法及装置 | |
CN114780019A (zh) | 电子设备的管理方法、装置、电子设备及存储介质 | |
CN114356504A (zh) | 集群中数据迁移方法、装置、电子设备和存储介质 | |
CN113703823A (zh) | 一种bmc固件升级方法、装置、电子设备及存储介质 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN112463177A (zh) | 一种软件的更新包的生成方法 | |
CN112035292A (zh) | 一种数据写入异常的处理方法、装置、设备及存储介质 | |
CN116880877A (zh) | 虚拟机增强工具升级方法、装置、计算机设备和存储介质 | |
CN113411362B (zh) | 应用实例的控制方法、装置及设备 | |
CN114281818A (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN112667463A (zh) | 一种应用系统基线状态监控方法及装置 | |
CN113672267A (zh) | 一种参数更新方法及装置 | |
CN113505026A (zh) | 验证备份数据的方法、装置、设备及存储介质 | |
CN111367540B (zh) | 一种eMMC固件升级方法和装置 | |
CN111142915B (zh) | 更新方法、装置和设备 | |
CN112559444A (zh) | Sql文件迁移方法、装置、存储介质及设备 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40029878 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |