CN111241602B - Fpga的ip核加载方法、装置及电子设备 - Google Patents
Fpga的ip核加载方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111241602B CN111241602B CN201811449677.8A CN201811449677A CN111241602B CN 111241602 B CN111241602 B CN 111241602B CN 201811449677 A CN201811449677 A CN 201811449677A CN 111241602 B CN111241602 B CN 111241602B
- Authority
- CN
- China
- Prior art keywords
- fpga
- bar space
- space information
- physical machine
- management
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种FPGA的IP核加载方法、装置及电子设备,其中,方法包括:从插接在物理机上的FPGA的管理PF中获取所述FPGA的BAR空间信息;基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;如果验证通过,则向所述FPGA的BAR空间传输IP核数据,所述FPGA的管理PF执行所述IP核数据的加载流程。本发明实施例的方案,能够在FPGA提供服务的物理机中,通过保证FPGA的BAR空间的安全性,提高向FPGA加载IP核的安全性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种FPGA的IP核加载方法、装置及电子设备。
背景技术
现有技术中,在现场可编程门阵列(Field-Programmable Gate Array,FPGA)作为服务的公有云平台中,向FPGA中安全加载(该过程也称为“烧写”)IP核(IntellectualProperty core)是很重要的一个环节。安全烧写的目的,是防止IP核被盗用,保护用户知识产权。
当前,由于大多数公有云提供给用户服务的是虚拟机,在虚拟环境下FPGA中的管理PF对用户不可见,所以在通过管理PF对FPGA中的用户PF烧写IP核的过程是安全的。但随着弹性物理机(以物理机作为服务提供给用户)的逐步使用,由于用户CPU在RC下(RootComplex)的FPGA设备(包含管理PF)是用户可见的,因此现有的IP核加载方案已经不能满足FPGA服务平台加载的安全需要。
发明内容
本发明提供了一种FPGA的IP核加载方法、装置及电子设备,能够在FPGA提供服务的物理机中,通过保证FPGA的BAR空间的安全性,提高向FPGA加载IP核的安全性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种FPGA的IP核加载方法,包括:
从插接在物理机上的FPGA的管理PF中获取所述FPGA的BAR空间信息;
基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理PF执行所述IP核数据的加载流程。
第二方面,提供了另一种FPGA的IP核加载方法,包括:
向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程;
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
第三方面,提供了一种FPGA的IP核加载装置,包括:
信息获取模块,用于从插接在物理机上的FPGA的管理PF中获取所述FPGA的BAR空间信息;
信息验证模块,用于基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
数据发送模块,用于如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理PF执行所述IP核数据的加载流程。
第四方面,提供了另一种FPGA的IP核加载装置,包括:
信息发送模块,用于向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
数据处理模块,用于接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程。
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
第五方面,提供了一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
从插接在物理机上的FPGA的管理PF中获取所述FPGA的BAR空间信息;
基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理PF执行所述IP核数据的加载流程。
第六方面,提供了另一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程。
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
本发明提供了一种FPGA的IP核加载方法、装置及电子设备,通过在向插接在物理机上的FPGA的管理PF中的BAR空间传输IP核数据之前,获取管理PF中存储的BAR空间信息,并基于物理机的操作***配置给FPGA的原始BAR空间信息对获取的BAR空间信息进行正确性验证,待验证通过后,向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的FPGA的IP核加载方案示意图;
图2为本发明实施例的FPGA的IP核加载方法流程图一;
图3为本发明实施例的FPGA的IP核加载方法流程图二;
图4为本发明实施例的FPGA的IP核加载方法流程图三;
图5为本发明实施例的FPGA的IP核加载方法流程图四;
图6为本发明实施例的FPGA的IP核加载装置结构图一;
图7为本发明实施例的FPGA的IP核加载装置结构图二;
图8为本发明实施例的FPGA的IP核加载装置结构图三;
图9为本发明实施例的FPGA的IP核加载装置结构图四;
图10为本发明实施例的电子设备的结构示意一;
图11为本发明实施例的电子设备的结构示意二。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例改善了现有技术在FPGA作为服务的公有云平台中,且以插接有FPGA的物理机作为服务提供给用户时,由于用户CPU在RC下的FPGA设备(包含管理PF)是用户可见的,导致在向FPGA加载IP核的过程中存在安全隐患的缺陷,其核心思想在于,在向FPGA加载IP核之前,获取FPGA的BAR空间信息,并对该BAR空间信息进行正确性验证,在BAR空间信息正确的情况下,向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
基于上述FPGA的IP核加载的方案思想,图1为本发明实施例提供的FPGA的IP核加载方案示意图。该加载方案在物理机上实现,该物理机可通过远程链接向用户提供服务。该物理机包括:用户(User)CPU,通过插接方式设置在物理机上的管理设备和FPGA,管理设备和FPGA之间可通过User CPU中的RC通路实现相互访问以及数据传输。在FPGA中主要包括两个物理设备区:管理PF和用户PF;其中,管理PF中存储有物理机的操作***配置给FPGA的BAR空间信息(BAR空间的基地址的信息),同时管理PF对用户PF进行管控,比如针对用户PF加载IP核数据以对其处理逻辑进行更新重构;用户PF用于向用户提供FPGA服务。在以物理机向用户提供服务时,管理PF和用户PF对用户都是可见的。
具体加载过程包括:当用户向云端的后台管理服务器发起对物理机上的FPGA加载IP核数据(用户对用户PF进行逻辑更新)后,管理设备需要向FPGA中的管理PF传输IP核数据,以使得管理PF实现后续IP核加载过程;为了防止IP核数据传输以及加载过程中,用户对FPGA进行任何干预操作,可以由管理设备通过带外通路向User CPU发送pause指令,并挂起User CPU;管理设备通过RC通路从FPGA的管理PF中获取由物理机的操作***预先配置给FPGA的BAR空间信息,为了保证BAR空间信息在传输过程中的安全性,可通过FPGA中的加密模块(Encryptor)对其进行加密;管理设备接收到加密后的BAR空间信息后可通过解密模块(Deccryptor)对其进行解密,并对解密后的BAR空间信息与原始的BAR空间信息进行比对校验,如果两个BAR空间信息一致,则表明FPGA的BAR空间地址没有被篡改,是安全的;管理设备向FPGA对应的BAR空间传输IP核数据,以使管理PF对IP核数据进行加载,实现对用户PF的更新重构。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述FPGA的IP核加载的方案思想,如图2所示,其为本发明实施例示出的FPGA的IP核加载方法流程图一,该方法的执行主体可以是图1中所示的管理设备。如图2所示,该FPGA的IP核加载方法包括如下步骤:
S210,从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息。
本方案中的物理机可以为公有云中用于向用户提供服务的物理机,且该物理机上插接有FPGA,用于加速服务。在以物理机(区别于虚拟机)形式向用户提供服务时,插接在物理机上的FPGA的管理PF对用户是可见的。
具体地,在通过插接在同一物理机上的管理设备控制向FPGA加载IP核之前,管理设备需要从插接在同一物理机上的FPGA的管理PF中获取FPGA的BAR空间信息,以确认FPGA中管理PF中存储的BAR空间信息是否仍为物理机操作***配置给FPGA的原始BAR空间信息,以确认BAR空间的安全性。
例如,管理设备可通过物理机中用户CPU的RC通道,从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息。其中,用户CPU的RC通道为CPU自带功能模块,主要用于供插接在物理机上的外接板卡,如本实施例中的管理设备和FPGA之间不经过CPU的控制逻辑而实现相互访问和数据传输。
S220,基于物理机的操作***配置给FPGA的原始BAR空间信息对所获取的BAR空间信息进行正确性验证。
管理设备从插接在物理机上的FPGA的管理PF中获取到该FPGA的BAR空间信息后,可将该BAR空间信息与物理机的操作***配置给FPGA的原始BAR空间信息进行比对验证,以识别管理PF中存储的BAR空间信息是否被篡改。而一旦管理PF中存储的BAR空间信息被篡改,管理设备在传输IP核数据时就会将其传输到更改后的BAR空间地址,该地址可能是用户可以访问的空间地址,从而导致用户能够有机会窃取到IP核数据,造成IP核数据泄漏。因此,在传输IP核数据至FPGA对应的BAR空间之前,需要对BAR空间信息进行安全验证。
S230,如果验证通过,则向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程。
如果管理PF中存储的BAR空间信息与***配置给FPGA的原始BAR空间信息一致,表明管理PF中存储的BAR空间信息指向的BAR空间是安全的,即验证通过。管理设备可向该FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以实现对用户PF的更新重构。
如果获取的BAR空间信息与***配置给FPGA的原始BAR空间信息不一致,则不进行后续IP核数据的传输及加载操作。
关于管理PF执行IP核数据的加载流程,本方案对此过程不做具体限定,可以采用现有技术中记载的任一加载方式。
本发明提供的FPGA的IP核加载方法,通过在向插接在物理机上的FPGA的管理PF中的BAR空间传输IP核数据之前,获取管理PF中存储的BAR空间信息,并基于物理机的操作***配置给FPGA的原始BAR空间信息对获取的BAR空间信息进行正确性验证,待验证通过后,向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
实施例二
如图3所示,为本发明实施例的FPGA的IP核加载方法流程图二,与图2所示方法的区别在于,采用了从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息的一种优选实施方案。如图3所示,在FPGA的IP核加载方法初始可执行如下步骤:
S310,从管理PF中获取经管理PF加密后的FPGA的BAR空间信息。
为了保证BAR空间信息在传输过程中的安全性,管理PF在从本地提取出FPGA对应的BAR空间信息后可通过加密模块对其进行加密,并将加密后的BAR空间信息通过如RC通路发送至管理设备。
本实施例中对于加密的具体方式方法不做限定。
S320,对加密后的FPGA的BAR空间信息进行解密,得到FPGA的BAR空间信息。
管理设备接收到加密后的BAR空间信息后,利用预先预定的秘钥对其进行解密,得到解密后的BAR空间信息。
在步骤S320之后,可继续执行步骤S220~S230。
如果解密失败,或者解密后得到的BAR空间信息与***配置给FPGA的原始BAR空间信息不一致,则不进行后续IP核数据的传输及加载操作。
另外,如图4所示,为了保证管理设备在获取FPGA的BAR空间信息的过程中,以及后续IP核数据传输过程中,用户不会拦截传输的信息或者数据,在步骤S210或者S310之前可执行如下步骤:
S410,通过与物理机的用户CPU连通的带外通路,向用户CPU发起暂停指令,挂起用户CPU。
管理设备在从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息之前,可先通过带外通路(非操作***提供的数据传输通路)向用户CPU发起暂停指令(pause指令),挂起用户CPU,从而禁止用户对物理机进行任何操作,保证整个加载过程不被用户干预,提高IP核加载的安全性。
本实施例与图2所示方法相比较,进一步地,通过从管理PF中获取经管理PF加密后的FPGA的BAR空间信息,并对加密后的FPGA的BAR空间信息进行解密,得到FPGA的BAR空间信息,以保证FPGA的BAR空间信息在传输过程中安全性。
进一步地,在从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息之前,通过与物理机的用户CPU连通的带外通路,向用户CPU发起暂停指令,挂起用户CPU,禁止用户对物理机进行任何操作,保证整个加载过程不被用户干预,提高IP核加载的安全性。
实施例三
基于上述FPGA的IP核加载的方案思想,如图5所示,其为本发明实施例示出的FPGA的IP核加载方法流程图四,该方法的执行主体可以是图1中所示的FPGA,具体可以是FPGA中的管理PF。如图5所示,该FPGA的IP核加载方法包括如下步骤:
S510,向插接在物理机上的管理设备发送FPGA的BAR空间信息,FPGA插接在物理机上。
本方案中的物理机可以为公有云中用于向用户提供服务的物理机,且该物理机上插接有FPGA,用于加速服务。在以物理机(区别于虚拟机)形式向用户提供服务时,插接在物理机上的FPGA的管理PF对用户是可见的。
具体地,在通过插接在同一物理机上的管理设备控制向FPGA加载IP核之前,管理设备需要从插接在同一物理机上的FPGA的管理PF中获取FPGA的BAR空间信息,以确认FPGA中管理PF中存储的BAR空间信息是否仍为物理机操作***配置给FPGA的原始BAR空间信息,以确认BAR空间的安全性。
例如,管理设备可通过物理机中用户CPU的RC通道,向FPGA的管理PF发送用于获取管理PF中存储的BAR空间信息的请求。管理PF接收到该请求后,从本地获取FPGA的BAR空间信息,并通过物理机中用户CPU的RC通道发送至管理设备。其中,用户CPU的RC通道为CPU自带功能模块,主要用于供插接在物理机上的外接板卡,如本实施例中的管理设备和FPGA之间不经过CPU的控制逻辑而实现相互访问和数据传输。
S520,接收管理设备向FPGA的BAR空间传输的IP核数据,并执行IP核数据的加载流程。
其中,IP核数据为管理设备基于物理机的操作***配置给FPGA的原始BAR空间信息对所接收的BAR空间信息进行正确性验证通过后发出。
具体地,管理设备从插接在物理机上的FPGA的管理PF中获取到该FPGA的BAR空间信息后,可将该BAR空间信息与物理机的操作***配置给FPGA的原始BAR空间信息进行比对验证,以识别管理PF中存储的BAR空间信息是否被篡改。而一旦管理PF中存储的BAR空间信息被篡改,管理设备在传输IP核数据时就会将其传输到更改后的BAR空间地址,该地址可能是用户可以访问的空间地址,从而导致用户能够有机会窃取到IP核数据,造成IP核数据泄漏。因此,在传输IP核数据至FPGA对应的BAR空间之前,需要对BAR空间信息进行安全验证。
如果管理PF中存储的BAR空间信息与***配置给FPGA的原始BAR空间信息一致,表明管理PF中存储的BAR空间信息指向的BAR空间是安全的,即验证通过。管理设备可向该FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以实现对用户PF的更新重构。
如果管理设备获取的BAR空间信息与***配置给FPGA的原始BAR空间信息不一致,则验证失败,则不进行后续IP核数据的传输及IP核数据的加载操作。
因此,如果管理PF接收到管理设备向FPGA的BAR空间传输的IP核数据,则表明之前发送至管理设备的FPGA的BAR空间信息是正确的。管理PF基于管理设备发送至BAR空间的IP核数据,执行IP核数据的加载流程。
关于管理PF执行IP核数据的加载流程,本方案对此过程不做具体限定,可以采用现有技术中记载的任一加载方式。
进一步地,为了保证BAR空间信息在传输过程中的安全性,管理PF在从本地提取出FPGA对应的BAR空间信息后可通过加密模块对其进行加密,并将加密后的BAR空间信息通过如RC通路发送至管理设备。
本实施例中对于加密的具体方式方法不做限定。
管理设备对所接收的加密后的BAR空间信息进行解密,并基于物理机的操作***配置给FPGA的原始BAR空间信息对解密后的BAR空间信息进行正确性验证。如果验证通过,则向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程。
本发明提供的FPGA的IP核加载方法,通过向插接在物理机上的管理设备发送FPGA的BAR空间信息,FPGA插接在物理机上;接收管理设备向FPGA的BAR空间传输的IP核数据,并执行IP核数据的加载流程;其中,IP核数据为管理设备基于物理机的操作***配置给FPGA的原始BAR空间信息对所接收的BAR空间信息进行正确性验证通过后发出。本方案可以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
进一步地,通过向管理设备发送经管理PF加密后的FPGA的BAR空间信息,以使得管理设备对加密后的FPGA的BAR空间信息进行解密后得到FPGA的BAR空间信息,以保证FPGA的BAR空间信息在传输过程中安全性。
实施例四
如图6所示,为本发明实施例的FPGA的IP核加载装置结构图一,该FPGA的IP核加载装置可设置在图1所示的管理设备中,用于执行如图2所示的方法步骤,其包括:
信息获取模块610,用于从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息;
信息验证模块620,用于基于物理机的操作***配置给FPGA的原始BAR空间信息对所获取的BAR空间信息进行正确性验证;
数据发送模块630,用于如果验证通过,则向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程。
进一步地,上述信息获取模块610可具体用于,通过物理机中用户CPU的RC通道,从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息。
进一步地,如图7所示,上述信息获取模块610可包括:
信息获取单元710,用于从管理PF中获取经管理PF加密后的FPGA的BAR空间信息;
信息解密单元720,用于对加密后的FPGA的BAR空间信息进行解密,得到FPGA的BAR空间信息。
图7所示的FPGA的IP核加载装置可用于执行如图3所示的方法步骤。
进一步地,如图8所示,上述FPGA的IP核加载装置中还可包括:
CPU挂起模块810,用于通过与物理机的用户CPU连通的带外通路,向用户CPU发起暂停指令,挂起用户CPU。
图8所示的FPGA的IP核加载装置可用于执行如图4所示的方法步骤。
本发明提供的FPGA的IP核加载装置,通过在向插接在物理机上的FPGA的管理PF中的BAR空间传输IP核数据之前,获取管理PF中存储的BAR空间信息,并基于物理机的操作***配置给FPGA的原始BAR空间信息对获取的BAR空间信息进行正确性验证,待验证通过后,向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程,以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
进一步地,通过从管理PF中获取经管理PF加密后的FPGA的BAR空间信息,并对加密后的FPGA的BAR空间信息进行解密,得到FPGA的BAR空间信息,以保证FPGA的BAR空间信息在传输过程中安全性。
进一步地,在从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息之前,通过与物理机的用户CPU连通的带外通路,向用户CPU发起暂停指令,挂起用户CPU,禁止用户对物理机进行任何操作,保证整个加载过程不被用户干预,提高IP核加载的安全性。
实施例五
如图9所示,为本发明实施例的FPGA的IP核加载装置结构图四,该FPGA的IP核加载装置可设置在图1所示的FPGA中,用于执行如图5所示的方法步骤,其包括:
信息发送模块910,用于向插接在物理机上的管理设备发送FPGA的BAR空间信息,FPGA插接在物理机上;
数据处理模块920,用于接收管理设备向FPGA的BAR空间传输的IP核数据,并执行IP核数据的加载流程。
其中,IP核数据为管理设备基于所述物理机的操作***配置给FPGA的原始BAR空间信息对所接收的BAR空间信息进行正确性验证通过后发出。
进一步地,上述信息发送模块910可具体用于,通过物理机中用户CPU的RC通道,向插接在物理机上的管理设备发送FPGA的BAR空间信息。
进一步地,上述信息发送模块910可具体用于,向插接在物理机上的管理设备发送加密后的FPGA的BAR空间信息;
相应的,上述IP核数据为管理设备对所接收的加密后的BAR空间信息进行解密,并基于物理机的操作***配置给所述FPGA的原始BAR空间信息对解密后的BAR空间信息进行正确性验证通过后发出。
本发明提供的FPGA的IP核加载装置,通过向插接在物理机上的管理设备发送FPGA的BAR空间信息,FPGA插接在物理机上;接收管理设备向FPGA的BAR空间传输的IP核数据,并执行IP核数据的加载流程;其中,IP核数据为管理设备基于物理机的操作***配置给FPGA的原始BAR空间信息对所接收的BAR空间信息进行正确性验证通过后发出。本方案可以提高整个加载过程的安全性,保证IP核的知识产权不会因为BAR空间信息的更改而被恶意窃取。
进一步地,通过向管理设备发送经管理PF加密后的FPGA的BAR空间信息,以使得管理设备对加密后的FPGA的BAR空间信息进行解密后得到FPGA的BAR空间信息,以保证FPGA的BAR空间信息在传输过程中安全性。
实施例六
前面实施例四描述了FPGA的IP核加载装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图10所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器101和处理器102。
存储器101,用于存储程序。
除上述程序之外,存储器101还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器102,耦合至存储器101,用于执行存储器101中的程序,以用于:
从插接在物理机上的FPGA的管理PF中获取FPGA的BAR空间信息;
基于物理机的操作***配置给FPGA的原始BAR空间信息对所获取的BAR空间信息进行正确性验证;
如果验证通过,则向FPGA的BAR空间传输IP核数据,以使FPGA的管理PF执行IP核数据的加载流程。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图10所示,电子设备还可以包括:通信组件103、电源组件104、音频组件105、显示器106等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备只包括图10所示组件。
通信组件103被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件103经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件103还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件104,为电子设备的各种组件提供电力。电源组件104可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器101或经由通信组件103发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。
显示器106包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
实施例七
前面实施例五描述了FPGA的IP核加载装置的整体架构,该装置的功能可借助一种电子设备实现完成,如图11所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器111和处理器112。
存储器111,用于存储程序。
除上述程序之外,存储器111还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器111可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器112,耦合至存储器111,用于执行存储器111中的程序,以用于:
向插接在物理机上的管理设备发送FPGA的BAR空间信息,FPGA插接在物理机上;
接收管理设备向FPGA的BAR空间传输的IP核数据,并执行IP核数据的加载流程。
其中,IP核数据为管理设备基于物理机的操作***配置给FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
上述的具体处理操作已经在前面实施例中进行了详细说明,在此不再赘述。
进一步,如图11所示,电子设备还可以包括:通信组件113、电源组件114、音频组件115、显示器116等其它组件。图11中仅示意性给出部分组件,并不意味着电子设备只包括图11所示组件。
通信组件113被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件113经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件113还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件114,为电子设备的各种组件提供电力。电源组件114可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件115被配置为输出和/或输入音频信号。例如,音频组件115包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器111或经由通信组件113发送。在一些实施例中,音频组件115还包括一个扬声器,用于输出音频信号。
显示器116包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种FPGA的IP核加载方法,包括:
从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息;
基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理物理功能执行所述IP核数据的加载流程。
2.根据权利要求1所述的方法,其中,所述从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息包括:
通过所述物理机中用户CPU的RC通道,从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息。
3.根据权利要求1或2所述的方法,其中,所述从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息包括:
从所述管理物理功能中获取经所述管理物理功能加密后的所述FPGA的BAR空间信息;
对所述加密后的所述FPGA的BAR空间信息进行解密,得到所述FPGA的BAR空间信息。
4.根据权利要求1或2所述的方法,其中,所述从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息之前,还包括:
通过与所述物理机的用户CPU连通的带外通路,向所述用户CPU发起暂停指令,挂起用户CPU。
5.一种FPGA的IP核加载方法,包括:
向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程;
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
6.根据权利要求5所述的方法,其中,所述向插接在物理机上的管理设备发送FPGA的BAR空间信息包括:
通过所述物理机中用户CPU的RC通道,向插接在物理机上的管理设备发送FPGA的BAR空间信息。
7.根据权利要求5或6所述的方法,其中,所述向插接在物理机上的管理设备发送FPGA的BAR空间信息包括:
向插接在物理机上的所述管理设备发送加密后的所述FPGA的BAR空间信息;
所述IP核数据为所述管理设备对所接收的加密后的所述BAR空间信息进行解密,并基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对解密后的所述BAR空间信息进行正确性验证通过后发出。
8.一种FPGA的IP核加载装置,包括:
信息获取模块,用于从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息;
信息验证模块,用于基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
数据发送模块,用于如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理物理功能执行所述IP核数据的加载流程。
9.根据权利要求8所述的装置,其中,所述信息获取模块具体用于,通过所述物理机中用户CPU的RC通道,从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息。
10.根据权利要求8或9所述的装置,其中,所述信息获取模块包括:
信息获取单元,用于从所述管理物理功能中获取经所述管理物理功能加密后的所述FPGA的BAR空间信息;
信息解密单元,用于对所述加密后的所述FPGA的BAR空间信息进行解密,得到所述FPGA的BAR空间信息。
11.根据权利要求8或9所述的装置,其中,所述装置还包括:
CPU挂起模块,用于通过与所述物理机的用户CPU连通的带外通路,向所述用户CPU发起暂停指令,挂起用户CPU。
12.一种FPGA的IP核加载装置,包括:
信息发送模块,用于向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
数据处理模块,用于接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程;
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
13.根据权利要求12所述的装置,其中,所述信息发送模块具体用于,通过所述物理机中用户CPU的RC通道,向插接在物理机上的管理设备发送FPGA的BAR空间信息。
14.根据权利要求12或13所述的装置,其中,所述信息发送模块具体用于,向插接在物理机上的所述管理设备发送加密后的所述FPGA的BAR空间信息;
所述IP核数据为所述管理设备对所接收的加密后的所述BAR空间信息进行解密,并基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对解密后的所述BAR空间信息进行正确性验证通过后发出。
15.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
从插接在物理机上的FPGA的管理物理功能中获取所述FPGA的BAR空间信息;
基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所获取的所述BAR空间信息进行正确性验证;
如果验证通过,则向所述FPGA的BAR空间传输IP核数据,以使所述FPGA的管理物理功能执行所述IP核数据的加载流程。
16.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
向插接在物理机上的管理设备发送FPGA的BAR空间信息,所述FPGA插接在所述物理机上;
接收所述管理设备向所述FPGA的BAR空间传输的IP核数据,并执行所述IP核数据的加载流程;
其中,所述IP核数据为所述管理设备基于所述物理机的操作***配置给所述FPGA的原始BAR空间信息对所接收的所述BAR空间信息进行正确性验证通过后发出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811449677.8A CN111241602B (zh) | 2018-11-29 | 2018-11-29 | Fpga的ip核加载方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811449677.8A CN111241602B (zh) | 2018-11-29 | 2018-11-29 | Fpga的ip核加载方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241602A CN111241602A (zh) | 2020-06-05 |
CN111241602B true CN111241602B (zh) | 2023-05-02 |
Family
ID=70863818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811449677.8A Active CN111241602B (zh) | 2018-11-29 | 2018-11-29 | Fpga的ip核加载方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241602B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788502B1 (en) * | 2005-03-10 | 2010-08-31 | Xilinx, Inc. | Method and system for secure exchange of IP cores |
US7971072B1 (en) * | 2005-03-10 | 2011-06-28 | Xilinx, Inc. | Secure exchange of IP cores |
CN103473508A (zh) * | 2013-09-17 | 2013-12-25 | 肖楠 | 操作***内核运行时安全验证方法 |
CN103530169A (zh) * | 2013-10-22 | 2014-01-22 | 中国联合网络通信集团有限公司 | 虚拟机文件保护方法和用户终端 |
CN103714034A (zh) * | 2013-12-26 | 2014-04-09 | 中国船舶重工集团公司第七0九研究所 | 片上***(soc)应用于个人计算机(pc)*** |
CN104169897A (zh) * | 2012-03-02 | 2014-11-26 | 国际商业机器公司 | 对用于快速pci高速多功能设备地址解码的数据解码 |
CN105208380A (zh) * | 2015-10-20 | 2015-12-30 | 硅谷数模半导体(北京)有限公司 | 验证平台及*** |
CN106815031A (zh) * | 2017-02-22 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 内核模块加载方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248468B2 (en) * | 2016-01-11 | 2019-04-02 | International Business Machines Corporation | Using hypervisor for PCI device memory mapping |
-
2018
- 2018-11-29 CN CN201811449677.8A patent/CN111241602B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7788502B1 (en) * | 2005-03-10 | 2010-08-31 | Xilinx, Inc. | Method and system for secure exchange of IP cores |
US7971072B1 (en) * | 2005-03-10 | 2011-06-28 | Xilinx, Inc. | Secure exchange of IP cores |
CN104169897A (zh) * | 2012-03-02 | 2014-11-26 | 国际商业机器公司 | 对用于快速pci高速多功能设备地址解码的数据解码 |
CN103473508A (zh) * | 2013-09-17 | 2013-12-25 | 肖楠 | 操作***内核运行时安全验证方法 |
CN103530169A (zh) * | 2013-10-22 | 2014-01-22 | 中国联合网络通信集团有限公司 | 虚拟机文件保护方法和用户终端 |
CN103714034A (zh) * | 2013-12-26 | 2014-04-09 | 中国船舶重工集团公司第七0九研究所 | 片上***(soc)应用于个人计算机(pc)*** |
CN105208380A (zh) * | 2015-10-20 | 2015-12-30 | 硅谷数模半导体(北京)有限公司 | 验证平台及*** |
CN106815031A (zh) * | 2017-02-22 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 内核模块加载方法和装置 |
Non-Patent Citations (1)
Title |
---|
姚洁 ; 孔祥营 ; 王桂强 ; .一种基于Avalon总线PCI从设备IP核设计.电子测量技术.2016,(第02期),第148-152页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111241602A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595970B (zh) | 处理组件的配置方法、装置、终端及存储介质 | |
CN108762791B (zh) | 固件升级方法及装置 | |
US10715654B1 (en) | Methods and devices for secure authentication to a compute device | |
US10275581B2 (en) | Method and apparatus for sharing content between electronic devices | |
CN105391840B (zh) | 自动创建目标应用程序 | |
KR101941049B1 (ko) | 암호화된 통신을 위한 방법 및 시스템 | |
US20170317827A1 (en) | Electronic stamp system for security intensification, control method thereof, and non-transitory computer readable storage medium having computer program recorded thereon | |
US10880736B2 (en) | Method and apparatus for transmitting and receiving encrypted message between terminals | |
CN102780689B (zh) | 用于远程访问应用程序的渲染服务 | |
CN104954126B (zh) | 敏感操作验证方法、装置及*** | |
TW201214145A (en) | Booting and configuring a subsystem securely from non-local storage | |
CN104115152A (zh) | 用于使用装置认证来保护数字内容的方法和设备 | |
US20170060595A1 (en) | Computing device to securely activate or revoke a key | |
CN107124279B (zh) | 擦除终端数据的方法及装置 | |
KR20170124953A (ko) | 암호화된 otp를 모바일폰에서 지문 등을 이용하여 복호화하여 사용자 인증을 자동화하는 방법과 그 시스템 | |
KR20150067876A (ko) | 디스플레이장치, 사용자 단말장치 및 그의 통신 방법 | |
CN105516136A (zh) | 权限管理方法、装置和*** | |
CN114760112A (zh) | 一种面向无线局域网络的智能家居设备入网方法、***、设备及存储介质 | |
CN113055169B (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN111130805B (zh) | 安全传输方法、电子设备及计算机可读存储介质 | |
CN109474929B (zh) | 功耗模式调节方法、装置、电子设备及计算机可读存储介质 | |
CN111241602B (zh) | Fpga的ip核加载方法、装置及电子设备 | |
CN113472737B (zh) | 边缘设备的数据处理方法、装置及电子设备 | |
CN112054890B (zh) | 屏体配置文件导出、导入方法及其装置和播控设备 | |
KR102403759B1 (ko) | 환자 인증 및 카드 정보를 이용한 전자 결제 시스템, 그 방법 및 컴퓨터 프로그램이 기록된 비휘발성 기록매체 |
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 |