CN111142915B - 更新方法、装置和设备 - Google Patents
更新方法、装置和设备 Download PDFInfo
- Publication number
- CN111142915B CN111142915B CN201811315143.6A CN201811315143A CN111142915B CN 111142915 B CN111142915 B CN 111142915B CN 201811315143 A CN201811315143 A CN 201811315143A CN 111142915 B CN111142915 B CN 111142915B
- Authority
- CN
- China
- Prior art keywords
- control logic
- version number
- fpga
- storage space
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000001960 triggered effect Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
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的控制逻辑的按需灵活更新。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种更新方法、装置和设备。
背景技术
为提高海量数据的高并发处理能力,现场可编程门阵列(Field-ProgrammableGate Array,简称FPGA),被部署于诸如云服务器等设备中。
随着FPGA厂商板卡和开发工具的升级,云服务器中FPGA的控制逻辑(通常可以称为shell,是FPGA的逻辑层(静态区),与FPGA的用户逻辑(动态区)相对,提供了总线控制、内存控制、时钟控制等通用服务逻辑)的版本也要随之更新。因此,需要提供一种灵活地按需更新FPGA的控制逻辑的解决方案。
发明内容
本发明实施例提供一种更新方法、装置和设备,用以实现FPGA的控制逻辑的灵活更新。
第一方面,本发明实施例提供一种更新方法,应用于管理后台,该方法包括:
接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识;
若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;
其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
第二方面,本发明实施例提供一种更新装置,应用于管理后台,该装置包括:
接收模块,用于接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识;
处理模块,用于若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;
其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
第三方面,本发明实施例提供一种电子设备,该电子设备包括第一处理器和第一存储器,所述第一存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器执行时实现上述第一方面中的更新方法。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的更新方法。
第四方面,本发明实施例提供一种更新方法,应用于FPGA对应的主机,该方法包括:
接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识;
下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
启动所述第一控制逻辑。
第五方面,本发明实施例提供一种更新装置,应用于FPGA对应的主机,包括:
接收模块,用于接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识;
下载模块,用于下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
启动模块,用于启动所述第一控制逻辑。
第六方面,本发明实施例提供一种电子设备,该电子设备包括第二处理器和第二存储器,所述第二存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器执行时实现上述第四方面中的更新方法。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第四方面中的更新方法。
本发明实施例中,首先将用户对应的FPGA上的闪存(Flash Memory,简称为Flash)划分出两个存储空间,分别称为第一存储空间和第二存储空间,其中,第二存储空间用于存储正在被使用的某版本的控制逻辑(即shell),第一存储空间用于存储备用的某版本的控制逻辑。
基于此,用户可以灵活地根据自身需求下载并启动所需版本的控制逻辑。具体地,管理后台提供有用户接口,从而,用户可以根据自身需求向管理后台触发下载请求,下载请求中包括待下载的第一控制逻辑版本号和用户标识。管理后台根据该用户标识确定对应的FPGA以及该FPGA对应的主机,并在确定用户要下载的第一控制逻辑版本号符合下载条件时,比如向该主机下发包含该第一控制逻辑版本号和FPGA标识的下载命令,以触发该主机下载第一控制逻辑版本号对应的第一控制逻辑,并将下载到的第一控制逻辑存入该FPGA的闪存的第一存储空间中。在下载第一控制逻辑之前以及下载过程中,该FPGA的闪存的第二存储空间中保持原本正被使用的第二控制逻辑的运行,以免影响正常的业务处理。第一控制逻辑存入第一存储空间后,主机可以启动该第一控制逻辑,从而停止原来使用的第二控制逻辑而切换至使用该第一控制逻辑。
通过该方案,在不破坏当前正常运行的某版本的控制逻辑的情况下,给用户提供了自由更新所需的控制逻辑的功能,从而实现FPGA的控制逻辑的按需灵活更新。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种更新系统的组成示意图;
图2为本发明实施例提供的一种更新方法的流程图;
图3为步骤202的一种可选实现方式的流程图;
图4为本发明实施例提供的另一种更新方法的流程图;
图5为本发明实施例提供的一种更新装置的结构示意图;
图6为与图5所示实施例提供的更新装置对应的电子设备的结构示意图;
图7为本发明实施例提供的另一种更新装置的结构示意图;
图8为与图7所示实施例提供的更新装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种更新系统的组成示意图,如图1所示,该系统可以包括:管理后台和承载FPGA的主机。
其中,承载FPGA的主机可以是云服务器,也可以是任何安装有FPGA的电子设备。
如图1中所示,该主机中安装有一个或多个FPGA,比如图中示意的FPGA1和FPGA2。每个主机中可以支持一个或多个虚拟机(Virtual Machine,简称VM),比如图中示意的虚拟机1和虚拟机2。各个VM可以被不同用户租用,比如图中示意的用户1对应于虚拟机1,用户2对应于虚拟机2。通常,VM与FPGA一一对应,亦即可以认为一个FPGA被分配给一个用户来使用,从而,某用户可以通过自己对应的VM使用分配给自己的FPGA来构建自己的业务系统。
其中,管理后台是用于对各承载有FPGA的主机进行管理的平台,管理后台提供有供用户进行访问的用户接口,从而,用户可以基于该用户接口通过管理后台来实现与主机的交互。其中,该用户接口可以是访问界面,比如为下文中可以令用户触发下载请求的界面。
假设当前某用户对应的FPGA中正在被运行的控制逻辑为X版本,若该用户想要更新控制逻辑的版本为Y版本,则可以通过管理后台和该FPGA对应的主机的处理过程实现控制逻辑的版本更新。其中,Y版本可以是高于X的版本,也可以是低于X的版本。
如前文所述,本发明实施例中提及的FPGA的控制逻辑,是指FPGA的shell:是FPGA的逻辑层(静态区),与FPGA的用户逻辑(动态区)相对,提供了总线控制、内存控制、时钟控制等通用服务逻辑。
下面结合以下实施例,分别以管理后台和承载FPGA的主机的角度对本发明实施例提供的更新FPGA的控制逻辑的方案进行详细介绍。
图2为本发明实施例提供的一种更新方法的流程图,该更新方法可以由图1所示的管理后台来执行。如图2所示,该方法包括如下步骤:
201、接收用户触发的下载请求,下载请求中包括待下载的第一控制逻辑版本号和用户标识。
202、判断第一控制逻辑版本号是否符合下载条件,若符合,则执行步骤203。
203、触发用户标识对应的FPGA的主机下载第一控制逻辑版本号对应的第一控制逻辑到FPGA的第一存储空间中并启动第一控制逻辑,其中,在启动第一控制逻辑前,FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
首先说明下本发明实施例提供的用于更新FPGA的控制逻辑的更新方法所基于的一个前提:为了保证在更新FPGA的控制逻辑的过程中不影响用户业务的运行,首先将用户对应的FPGA中的Flash划分出两个存储空间,分别称为第一存储空间和第二存储空间。其中,第二存储空间用于存储正在被使用的某版本的控制逻辑,第一存储空间用于存储备用的某版本的控制逻辑,因此,也可以将第二存储空间称为active bank(激活分区、有效分区),将第一存储空间称为Inactive bank(备用分区、闲置分区)。
本发明实施例中,第一存储空间中仅能够存储一个控制逻辑,同样地,第二存储空间中也只能够存储一个控制逻辑。
基于上述前提,假设某用户对应的FPGA的第二存储空间中存储的正在运行的控制逻辑是第二控制逻辑,其对应的版本号假设为X。为了保证在更新控制逻辑期间不影响第二控制逻辑的正常使用,通过FPGA的第一存储空间来进行控制逻辑更新。
当该用户想要将自己的FPGA的控制逻辑版本从X版本更新为Y版本时,该用户可以访问管理后台以触发下载请求,下载请求中包括待下载的第一控制逻辑版本号和用户标识,其中,该第一控制逻辑版本号即为Y,用户标识例如可以是用户对应的虚拟机的标识等用于唯一表示用户的。
管理后台接收到该下载请求后,首先需要判断用户想要下载的第一控制逻辑版本号Y是否满足下载条件,如果满足,则触发用户对应的FPGA所在的主机执行第一控制逻辑的下载处理。
其中,可选地,管理后台可以根据图3所示实施例执行第一控制逻辑版本号是否满足下载条件的判断。
图3为步骤202的一种可选实现方式的流程图,可以包括如下步骤:
301、判断第一控制逻辑版本号是否合法,若合法,执行步骤302,否则,报错退出。
管理后台侧维护有由各个合法的控制逻辑版本构成的数据库,如果用户想要下载的第一控制逻辑版本号Y存在于该数据库中,则认为该第一控制逻辑版本号Y是合法的,反之,不合法。在判定第一控制逻辑版本号Y不合法时,可以输出错误提示信息,该错误提示信息用于提示用户该第一控制逻辑版本号Y不存在。
302、根据用户标识获取对应的FPGA的第二存储空间中存储的与第二控制逻辑对应的第二控制逻辑版本号以及第一存储空间中存储的第三控制逻辑版本号。
如前文所述,一个主机中可以安装有一个或多个FPGA,一个FPGA被分配给一个用户使用,各用户通过各自对应的虚拟机访问主机以使用各自对应的FPGA,因此,在向用户分配FPGA的过程中,管理后台可以建立用户、FPGA、虚拟机和主机之间的对应关系。另外,由于管理后台可以对各主机中的各FPGA的运行进行管理,因此,管理后台中也可以维护后各FPGA的第一存储空间和第二存储空间的存储状态,即第一存储空间中实时存储的是哪个版本的控制逻辑,第二存储空间中实时存储的是哪个版本的控制逻辑。
基于此,管理后台在确定第一控制逻辑版本号合法后,可以根据下载请求中携带的用户标识确定与之对应的FPGA以及该FPGA所在的主机。进而查询FPGA的第一存储空间和第二存储空间的存储状态,假设此时FPGA的第二存储空间中存储的是与第二控制逻辑对应的第二控制逻辑版本号,第一存储空间中存储的第三控制逻辑版本号。
值得说明的是,如果用户触发下载请求时,该FPGA中仅有一个版本的控制逻辑,则上述第一存储空间为空,即上述第三控制逻辑版本号为空值。
303、确定第一控制逻辑版本号与第二控制逻辑版本号是否相同,若相同,则报错退出,否则,执行步骤304。
如前文所述,第二存储空间是用于存储FPGA的正在运行的控制逻辑的,如果用户想要下载的第一控制逻辑版本号Y与第二存储空间中存储的第二控制逻辑的版本号X一致,则说明用户想要下载的控制逻辑即时正在被使用的控制逻辑,无需下载,此时输出错误提示信息,错误提示信息用于提示用户无需更新控制逻辑的版本。
304、确定第一控制逻辑版本号与第三控制逻辑版本号是否相同,若相同,则执行步骤305,否则,执行步骤306。
305、向FPGA对应的主机发送切换命令,以使主机停止第二控制逻辑,启动第三控制逻辑。
306、确定第一控制逻辑版本号符合下载条件,向FPGA对应的主机下发下载命令,下载命令中包括待下载的第一控制逻辑版本号和FPGA的标识。
假设第一存储空间此时不为空,其中存储有对应于第三控制逻辑版本号(假设为Z)的第三控制逻辑。如果第一控制逻辑版本号Y与第三控制逻辑版本号X相同,说明用户想要下载的控制逻辑在FPGA本地已经存在,此时,直接控制FPGA对应的主机执行切换过程即可,反之,如果第一控制逻辑版本号Y与第三控制逻辑版本号X不相同,则需要触发该主机下载第一控制逻辑。
具体地,如果第一控制逻辑版本号Y与第三控制逻辑版本号X相同,说明第一存储空间中存储的第三控制逻辑即为用户想要下载的第一控制逻辑,管理后台向该主机下发切换命令,以告知主机需要启动第一控制逻辑亦即第三控制逻辑。主机接收到该切换命令后,停止第二控制逻辑,启动第三控制逻辑。
其中,停止第二控制逻辑以及启动第三控制逻辑的过程具体可以是:主机将启动地址设置为第一存储空间,之后重启FPGA,在FPGA重启过程中,主机将原本存储于第一存储空间的第三控制逻辑移至第二存储空间,将原本存储于第二存储空间的第二控制逻辑移至第一存储空间。
图3所示实施例中,步骤303和304的执行时序仅为一种举例,实际上,这两个判断步骤颠倒执行也可以。总而言之,这两个步骤的判断目的即为:在第一控制逻辑版本号Y合法的情况下,若第一控制逻辑版本号Y与第二控制逻辑版本号X和第三控制逻辑版本号Z不同,则确定第一控制逻辑版本号Y符合下载条件,反正,不符合下载条件。
另外,值得说明的是,如前文所述,一个存储空间中仅能够存储一个控制逻辑,因此,在FPGA的第一存储空间中存储有第三控制逻辑版本号Z对应的第三控制逻辑的情况下,主机下载到第一控制逻辑后,第一控制逻辑被存入第一存储空间,此时,第三控制逻辑被从第一存储空间中删除。
主机下载第一控制逻辑以及启动第一控制逻辑而停止使用第二控制逻辑的过程,将在后续其他实施例中进行介绍。本实施例中仅强调,在主机完成在FPGA中将第二控制逻辑更新为第一控制逻辑的处理后,可以向管理后台上报更新结果信息,以使管理后台更新该FPGA的第一存储空间和第二存储空间的存储状态,以备后续更新过程使用。从而,步骤203后,还可以包括如下步骤:管理后台接收主机发送的更新结果信息,更新结果信息中描述了第一存储空间中存储有第二控制逻辑以及第二存储空间中存储有第一控制逻辑。
通过该方案,在不破坏当前正常运行的某版本的控制逻辑的情况下,给用户提供了自由更新所需的控制逻辑的功能,从而实现FPGA的控制逻辑的按需灵活更新。
图4为本发明实施例提供的另一种更新方法的流程图,该更新方法可以由图1所示的承载FPGA的主机来执行。如图4所示,可以包括如下步骤:
401、接收管理后台响应于用户的触发而发送的下载命令,下载命令中包括待下载的第一控制逻辑版本号和用户对应的FPGA的标识。
如前述实施例中所述,用户的触发是指用户向管理平台触发前述下载请求,下载请求中包括该第一控制逻辑版本号以及用户标识。其中,可选地,在管理后台可以将分配给用户的FPGA的标识提供给用户的情况下,该用户标识可以是FPGA的标识。当然,在用户标识不是FPGA的标识的情况下,该FPGA的标识可以是管理后台根据用户标识查询本地存储的用户、FPGA、虚拟机和主机之间的对应关系而确定出的。当然,可以理解的是,管理后台也是根据用户标识查询本地存储的用户、FPGA、虚拟机和主机之间的对应关系而确定出对应的主机,从而向该主机下发上述下载命令的。
402、下载第一控制逻辑版本号对应的第一控制逻辑到FPGA的第一存储空间中,FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
出于安全性考虑,可以将所有能够提供给用户使用的合法的控制逻辑放置在某数据库中,从而,接收到下载命令的主机需要从该数据库中下载用户所需的第一控制逻辑。
具体下载过程如下:
根据第一控制逻辑版本号从预设的数据库中下载第一控制逻辑;
将用户对应的FPGA与虚拟机解除绑定关系;
将第一控制逻辑加载到第一存储空间中。
其中,在从数据库中下载第一控制逻辑的过程中,如果该数据库中不存在第一控制逻辑版本号,则输出错误提示信息并退出。
若成功下载到第一控制逻辑,则将该第一控制逻辑存入到用户对应的FPGA的第一存储空间中。在将该第一控制逻辑存入到FPGA的第一存储空间的过程中,首先解除(detach)FPGA与虚拟机的绑定关系,之后再将第一控制逻辑加载到第一存储空间中。值得说明的是,在初始分配给用户该FPGA时,建立了FPGA与用户对应的虚拟机的绑定关系。
另外,为了避免在解除FPGA与虚拟机的绑定关系后,该FPGA被分配给其他用户使用,可以将该FPGA设置为被占用状态,从而,在后续启动第一控制逻辑的过程中,再恢复FPGA与虚拟机的绑定关系。
403、启动第一控制逻辑。
其中,第一控制逻辑的启动过程如下:
设置启动地址为第一存储空间;
重启FPGA;
重新建立用户的FPGA与虚拟机的绑定关系。
第一控制逻辑被存入第一存储空间后,将启动地址设置为第一存储空间,重启FPGA后,会从第一存储空间中读取第一控制逻辑。在重启FPGA的过程中,具体地,将原本存储在第一存储空间中的第一控制逻辑移至第二存储空间,将原本存储在第二存储空间中的第二控制逻辑移至第一存储空间。如前文所述,由于第一存储空间被用作存储备份的控制逻辑,第二存储空间被用作存储正被使用的控制逻辑,在重启FPGA后,原来被使用的第二控制逻辑变为备用,新下载的第一控制逻辑被使用,所以,需将第一控制逻辑移动至第二存储空间,第二控制逻辑移动至第一存储空间。
重启FPGA后,重新建立(attach)FPGA与虚拟机的绑定关系。至此,在主机侧,完成了用户的FPGA中第二控制逻辑到第一控制逻辑的更新。
可选地,在完成更新后,主机还可以向管理后台发送更新结果信息,更新结果信息中描述了第一存储空间中存储有第二控制逻辑以及第二存储空间中存储有第一控制逻辑,以使得管理后台获得该FPGA的最新的控制逻辑存储状况。
可选地,如果在重启FPGA后发现控制逻辑更新失败,则可以回退到原来使用的第二控制逻辑。
通过以上本发明实施例提供的FPGA的控制逻辑的更新方案,用户可以根据自身需求在提供方提供的所有FPGA控制逻辑中随意选择并更新自己的FPGA所使用的控制逻辑。
以下将详细描述本发明的一个或多个实施例的更新装置。本领域技术人员可以理解,这些更新装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图5为本发明实施例提供的一种更新装置的结构示意图,如图5所示,该装置包括:接收模块11、处理模块12。
接收模块11,用于接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识。
处理模块12,用于若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
可选地,所述处理模块12可以用于:若所述第一控制逻辑版本号合法,则根据所述用户标识获取所述第二存储空间中存储的与所述第二控制逻辑对应的第二控制逻辑版本号以及所述第一存储空间中存储的第三控制逻辑版本号;若所述第一控制逻辑版本号与所述第二控制逻辑版本号和所述第三控制逻辑版本号不同,则确定所述第一控制逻辑版本号符合下载条件。
可选地,所述处理模块12还可以用于:若所述第一存储空间中存储有所述第三控制逻辑版本号对应的第三控制逻辑,则所述第一控制逻辑被存入所述第一存储空间,所述第三控制逻辑被从所述第一存储空间中删除。
可选地,所述处理模块12还可以用于:若所述第一控制逻辑版本号与所述第二控制逻辑版本号相同,则输出错误提示信息,所述错误提示信息用于提示所述用户无需更新控制逻辑的版本。
可选地,所述处理模块12还可以用于:若所述第一控制逻辑版本号与所述第三控制逻辑版本号相同,则向所述主机发送切换命令,以使所述主机停止所述第二控制逻辑,启动所述第三控制逻辑。
可选地,所述接收模块11还可以用于:接收所述主机发送的更新结果信息,所述更新结果信息中描述了所述第一存储空间中存储有所述第二控制逻辑以及所述第二存储空间中存储有所述第一控制逻辑。
图5所示装置可以执行图2所示实施例的方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图5所示更新装置的结构可实现为一电子设备,该电子设备是服务器等用于管理承载有FPGA的主机的设备。如图6所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,所述第一存储器22用于存储支持电子设备执行上述图2所示实施例中提供的更新方法的程序,所述第一处理器21被配置为用于执行所述第一存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器21执行时能够实现如下步骤:
接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识;
若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;
其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
可选地,所述第一处理器21还用于执行前述图2所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图2所示方法实施例中更新方法所涉及的程序。
图7为本发明实施例提供的另一种更新装置的结构示意图,如图7所示,该装置包括:连接模块31、下载模块32、启动模块33。
接收模块31,用于接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识。
下载模块32,用于下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑。
启动模块33,用于启动所述第一控制逻辑。
可选地,所述下载模块32可以用于:根据所述第一控制逻辑版本号从预设的数据库中下载所述第一控制逻辑;将所述FPGA与所述用户对应的虚拟机解除绑定关系;将所述第一控制逻辑加载到所述第一存储空间中。
可选地,所述下载模块32还可以用于:将所述FPGA设置为被占用状态。
可选地,所述启动模块33可以用于:设置启动地址为所述第一存储空间;重启所述FPGA;重新建立所述FPGA与所述虚拟机的绑定关系。
可选地,所述启动模块33还可以用于:将所述第一控制逻辑移至所述第二存储空间,将所述第二控制逻辑移至所述第一存储空间。
可选地,该装置还可以包括:发送模块,用于向所述管理后台发送更新结果信息,所述更新结果信息中描述了所述第一存储空间中存储有所述第二控制逻辑以及所述第二存储空间中存储有所述第一控制逻辑。
图7所示装置可以执行图3所示实施例的方法,本实施例未详细描述的部分,可参考对图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图3所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图7所示更新装置的结构可实现为一电子设备,该电子设备可以是云服务器等承载有FPGA的主机等。如图8所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,所述第二存储器42用于存储支持电子设备执行上述图3所示实施例中提供的更新方法的程序,所述第二处理器41被配置为用于执行所述第二存储器42中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器41执行时能够实现如下步骤:
接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识;
下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
启动所述第一控制逻辑。
可选地,所述第二处理器41还用于执行前述图3所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图3所示方法实施例中更新方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程更新设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种更新方法,其特征在于,包括:
接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识;
若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
若所述第一控制逻辑版本号合法,则根据所述用户标识获取所述第二存储空间中存储的与所述第二控制逻辑对应的第二控制逻辑版本号以及所述第一存储空间中存储的第三控制逻辑版本号;
若所述第一控制逻辑版本号与所述第二控制逻辑版本号和所述第三控制逻辑版本号不同,则确定所述第一控制逻辑版本号符合下载条件。
2.根据权利要求1所述的方法,其特征在于,若所述第一存储空间中存储有所述第三控制逻辑版本号对应的第三控制逻辑,则所述第一控制逻辑被存入所述第一存储空间,所述第三控制逻辑被从所述第一存储空间中删除。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一控制逻辑版本号与所述第二控制逻辑版本号相同,则输出错误提示信息,所述错误提示信息用于提示所述用户无需更新控制逻辑的版本。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一控制逻辑版本号与所述第三控制逻辑版本号相同,则向所述主机发送切换命令,以使所述主机停止所述第二控制逻辑,启动所述第三控制逻辑。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述主机发送的更新结果信息,所述更新结果信息中描述了所述第一存储空间中存储有所述第二控制逻辑以及所述第二存储空间中存储有所述第一控制逻辑。
6.一种更新方法,其特征在于,包括:
接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识;
下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
启动所述第一控制逻辑;
其中,所述下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中,包括:
根据所述第一控制逻辑版本号从预设的数据库中下载所述第一控制逻辑;
将所述FPGA与所述用户对应的虚拟机解除绑定关系;
将所述第一控制逻辑加载到所述第一存储空间中。
7.根据权利要求6所述的方法,其特征在于,所述启动所述第一控制逻辑,包括:
设置启动地址为所述第一存储空间;
重启所述FPGA;
重新建立所述FPGA与所述虚拟机的绑定关系。
8.根据权利要求6所述的方法,其特征在于,所述将所述FPGA与所述用户对应的虚拟机解除绑定关系之后,还包括:
将所述FPGA设置为被占用状态。
9.根据权利要求7所述的方法,其特征在于,所述重启所述FPGA,包括:
将所述第一控制逻辑移至所述第二存储空间,将所述第二控制逻辑移至所述第一存储空间。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
向所述管理后台发送更新结果信息,所述更新结果信息中描述了所述第一存储空间中存储有所述第二控制逻辑以及所述第二存储空间中存储有所述第一控制逻辑。
11.一种更新装置,其特征在于,包括:
接收模块,用于接收用户触发的下载请求,所述下载请求中包括待下载的第一控制逻辑版本号和用户标识;
处理模块,用于若所述第一控制逻辑版本号符合下载条件,则触发所述用户标识对应的FPGA的主机下载所述第一控制逻辑版本号对应的第一控制逻辑到所述FPGA的第一存储空间中并启动所述第一控制逻辑;其中,在启动所述第一控制逻辑前,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
所述处理模块还用于:若所述第一控制逻辑版本号合法,则根据所述用户标识获取所述第二存储空间中存储的与所述第二控制逻辑对应的第二控制逻辑版本号以及所述第一存储空间中存储的第三控制逻辑版本号;若所述第一控制逻辑版本号与所述第二控制逻辑版本号和所述第三控制逻辑版本号不同,则确定所述第一控制逻辑版本号符合下载条件。
12.一种电子设备,其特征在于,包括:存储器、处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至5中任一项所述的更新方法。
13.一种更新装置,其特征在于,包括:
接收模块,用于接收管理后台响应于用户的触发而发送的下载命令,所述下载命令中包括待下载的第一控制逻辑版本号和所述用户对应的FPGA的标识;
下载模块,用于根据所述第一控制逻辑版本号从预设的数据库中下载所述第一控制逻辑,将所述FPGA与所述用户对应的虚拟机解除绑定关系,将所述第一控制逻辑加载到第一存储空间中,所述FPGA的第二存储空间中运行有正被使用的第二控制逻辑;
启动模块,用于启动所述第一控制逻辑。
14.一种电子设备,其特征在于,包括:存储器、处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求6至10中任一项所述的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315143.6A CN111142915B (zh) | 2018-11-06 | 2018-11-06 | 更新方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811315143.6A CN111142915B (zh) | 2018-11-06 | 2018-11-06 | 更新方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142915A CN111142915A (zh) | 2020-05-12 |
CN111142915B true CN111142915B (zh) | 2023-04-25 |
Family
ID=70515326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811315143.6A Active CN111142915B (zh) | 2018-11-06 | 2018-11-06 | 更新方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142915B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
CN101697129A (zh) * | 2009-10-27 | 2010-04-21 | 中兴通讯股份有限公司 | 嵌入式系统现场可编程门阵列逻辑自加载方法及系统 |
CN104881312A (zh) * | 2015-06-02 | 2015-09-02 | 嘉应学院 | 一种fpga逻辑代码可迭代升级的方法及电路 |
CN106293786A (zh) * | 2015-05-25 | 2017-01-04 | 特变电工新疆新能源股份有限公司 | 一种fpga配置文件更新方法及设备 |
CN106886438A (zh) * | 2017-02-06 | 2017-06-23 | 仓智(上海)智能科技有限公司 | 基于fpga的系统远程更新方法 |
CN107479913A (zh) * | 2017-07-27 | 2017-12-15 | 中国船舶重工集团公司第七二四研究所 | 一种fpga配置多启动低资源占用更新方法及实施系统 |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
CN108536458A (zh) * | 2018-04-13 | 2018-09-14 | 北京和普威视科技股份有限公司 | 一种fpga在线升级方法、装置、设备及存储介质 |
CN108566280A (zh) * | 2018-04-23 | 2018-09-21 | 济南浪潮高新科技投资发展有限公司 | 一种fpga硬件加速程序的远程升级方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040068330A1 (en) * | 2002-10-04 | 2004-04-08 | Ncr Corporation | Methods and apparatus for remote programming of field programmable gate arrays |
-
2018
- 2018-11-06 CN CN201811315143.6A patent/CN111142915B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784313A (en) * | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
CN101697129A (zh) * | 2009-10-27 | 2010-04-21 | 中兴通讯股份有限公司 | 嵌入式系统现场可编程门阵列逻辑自加载方法及系统 |
CN106293786A (zh) * | 2015-05-25 | 2017-01-04 | 特变电工新疆新能源股份有限公司 | 一种fpga配置文件更新方法及设备 |
CN104881312A (zh) * | 2015-06-02 | 2015-09-02 | 嘉应学院 | 一种fpga逻辑代码可迭代升级的方法及电路 |
CN106886438A (zh) * | 2017-02-06 | 2017-06-23 | 仓智(上海)智能科技有限公司 | 基于fpga的系统远程更新方法 |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
CN107479913A (zh) * | 2017-07-27 | 2017-12-15 | 中国船舶重工集团公司第七二四研究所 | 一种fpga配置多启动低资源占用更新方法及实施系统 |
CN108536458A (zh) * | 2018-04-13 | 2018-09-14 | 北京和普威视科技股份有限公司 | 一种fpga在线升级方法、装置、设备及存储介质 |
CN108566280A (zh) * | 2018-04-23 | 2018-09-21 | 济南浪潮高新科技投资发展有限公司 | 一种fpga硬件加速程序的远程升级方法和系统 |
Non-Patent Citations (1)
Title |
---|
张永乐 ; 王永勇 ; 郑炜 ; .一种基于FPGA的在线程序升级方案.电子技术应用.2017,(第03期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111142915A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763099B (zh) | 系统的启动方法、装置、电子设备和存储介质 | |
US11385903B2 (en) | Firmware update patch | |
US8607225B2 (en) | Managed upgrades of components in an integrated software and hardware system | |
CN106817411B (zh) | 业务访问请求的处理方法和相关设备 | |
CN114077462A (zh) | 软件操作系统调用Android HIDL接口的方法、装置、设备及介质 | |
US8635425B1 (en) | Upgrading computing devices | |
CN112131099A (zh) | 一种版本升级测试方法及装置 | |
CN113032085A (zh) | 云操作系统的管理方法、装置、服务器、管理系统及介质 | |
CN107329792B (zh) | 一种Docker容器启动方法及装置 | |
CN111930473A (zh) | 在容器云上部署图像识别服务的方法与设备 | |
CN104137062A (zh) | 将代码动态注入到运行中的进程 | |
CN110659104B (zh) | 一种业务监控方法及相关设备 | |
EP2842039A1 (en) | Dynamic memory allocation | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN111142915B (zh) | 更新方法、装置和设备 | |
CN110471744B (zh) | 密码修改方法、装置、设备和计算机可读存储介质 | |
CN112564956A (zh) | 一种客户端的远程升级方法及设备、装置、存储介质 | |
CN116382713A (zh) | 构建应用镜像的方法、系统、设备和存储介质 | |
CN111124459B (zh) | 一种fpga云服务器服务逻辑的更新方法及装置 | |
CN103473081A (zh) | 终端进行系统升级后生效的方法及该终端 | |
WO2020029995A1 (en) | Application upgrading through sharing dependencies | |
CN108304200B (zh) | 一种驱动程序升级的方法、装置以及电子设备 | |
CN111984299A (zh) | 一种数据加载的方法和设备 | |
CN110618791B (zh) | 一种cfs存储域配置方法、装置、设备及可读存储介质 | |
CN109542588B (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 |