CN109639446B - Fpga设备、基于fpga设备的云系统 - Google Patents
Fpga设备、基于fpga设备的云系统 Download PDFInfo
- Publication number
- CN109639446B CN109639446B CN201710929351.4A CN201710929351A CN109639446B CN 109639446 B CN109639446 B CN 109639446B CN 201710929351 A CN201710929351 A CN 201710929351A CN 109639446 B CN109639446 B CN 109639446B
- Authority
- CN
- China
- Prior art keywords
- user logic
- user
- unit
- physical function
- fpga
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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/76—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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/343—Logical level
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/28—Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
-
- 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
Abstract
本发明公开了一种FPGA设备、基于FPGA设备的云系统。其中,该方法包括:管理逻辑单元和用户逻辑单元,其中,管理逻辑单元包括高速计算机串行总线标准PCIe模块,PCIe模块包括第一物理功能单元和第二物理功能单元;第一物理功能单元,用于接收第二物理功能单元发起的用户逻辑加载请求,用户逻辑加载请求携带用户逻辑标识;根据用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将用户逻辑文件烧写至用户逻辑单元。本发明解决了现有的FPGA在进行远程配置或者调试时需要连接JTAG电缆,导致无法部署在云端的技术问题。
Description
技术领域
本发明涉及云计算领域,具体而言,涉及一种FPGA设备、基于FPGA设备的云系统。
背景技术
随着互联网规模和数据量迅速增长,云计算已经变得不可或缺。从功耗和计算能力角度考虑,传统的基于CPU的云计算硬件难以满足目前日益增长的计算需求,GPU 和FPGA成为计算能力加速的理想选择,相比GPU在计算能力方面的优势,FPGA则更加灵活,且具有更低的功耗和更高的计算性能,例如,开发定制算法的加速器(SIMD、MIMD等类型的加速器),FPGA已经成为极具潜力的云端计算加速硬件。
但是,由于现有的FPGA在进行远程配置或者调试时需要连接JTAG(Joint TestAction Group,联合测试行为组织)电缆,不适用于云端部署。
针对上述现有的FPGA无法实现物理功能的安全隔离,导致计算性能较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种FPGA设备、基于FPGA设备的云系统,以至少解决现有的FPGA在进行远程配置或者调试时需要连接JTAG电缆,导致无法部署在云端的技术问题。
根据本发明实施例的一个方面,提供了一种FPGA设备,包括:管理逻辑单元和用户逻辑单元,其中,上述管理逻辑单元包括高速计算机串行总线标准PCIe模块,上述PCIe模块包括第一物理设备物理功能单元和第二物理功能单元;上述第一物理功能单元,用于接收第二物理功能单元发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
根据本发明实施例的另一方面,还提供了一种基于FPGA设备的云系统,包括:主机;以及具有上述任意特征的FPGA设备。
在本发明实施例中,采用将FPGA设备的管理逻辑单元中设置PCIe模块,并将PCIe模块分割为不同权限的物理功能单元的方式,通过设置管理逻辑单元和用户逻辑单元, 其中,上述管理逻辑单元包括PCIe模块,上述PCIe模块包括第一物理功能单元和第二物理功能单元;上述第一物理功能单元,用于接收第二物理功能单元发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元,达到了无需连接JTAG电缆即可与主机进行通信以实现远程配置的目的,从而实现了提高FPGA的性能的技术效果,进而解决了现有的FPGA在进行远程配置或者调试时需要连接JTAG电缆,导致无法部署在云端的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例的一种FPGA设备的结构示意图;
图2是根据本申请实施例的一种FPGA设备的动态重配置的流程示意图;
图3是根据本申请实施例的一种可选的FPGA设备的结构示意图;
图4是根据本申请实施例的一种可选的FPGA设备中的共享寄存器与PF连接的结构示意图;
图5是根据本申请实施例的一种可选的用户逻辑加载流程示意图;以及
图6是根据本申请实施例的一种基于FPGA设备的云系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
现场可编程门阵列(Field-Programmable Gate Array):即FPGA。
专用集成电路(Application Specific Integrated Circuit):即ASIC。
高速串行计算机扩展总线标准(Peripheral Component InterconnectExpress):即PCIe。
国际标准测试协议(Joint Test Action Group):即JTAG,主要应用于电路的边界扫描测试和可编程芯片的在线系统编程。
直接内存存取接口(Direct Memory Access):即DMA。
实施例1
根据本发明实施例,还提供了一种FPGA设备实施例,需要说明的是,在描述本申请的各实施方式的进一步细节之前,将参考图1来描述可用于实现本申请原理的一个合适的FPGA设备。
图1是根据本申请实施例的一种FPGA设备的结构示意图,出于描述的目的,所绘结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应将该FPGA设备,解释为对图1所示的任一组件或其组合具有任何依赖或需求。
FPGA作为ASIC领域中的一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路书有限的缺点。
并且,FPGA的用途十分广泛,可以用于航天、航空、电子、通信、雷达等国防领域,也可以用于超声波检测仪、CT扫描仪器等医疗设备,消费电子、汽车电子、机器人、数据挖掘等领域,并且随着机器人、无人机、大数据、物联网、无人驾驶、5G通信的兴起,FPGA的市场前景会越来越广阔,且市场前景会保持稳定增长状态。
为满足市场的需求,促进FPGA的高速发展,亟待解决现有的FPGA无法部署在云端的问题。
需要说明的是,本申请实施例所提供的FPGA设备,除可以实现基本的数据传输功能,还可以实现远程调试、远程升级、异常处理、硬件监控等辅助功能,符合云端FPGA 的使用环境,进而可以提供可靠、稳定、易用、安全的FPGA加速云服务。
具体的,图1示出了一种FPGA设备的结构示意图,如图1所示,该FPGA设备1 包括:管理逻辑单元10和用户逻辑单元12,其中,
上述管理逻辑单元10包括高速计算机串行总线标准PCIe模块101,包括第一PF(Physical Function,物理功能单元)1010和第二PF 1012;上述第一PF 1010,用于接收第二PF 1012发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
本申请所提供的FPGA设备,通过设置PCIe模块,适用于搭建云端部署的FPGA 云服务器架构,进而可以实现远程调试、远程升级、异常处理、硬件监控等功能。
可选的,上述FPGA设备上的硬件逻辑可以分为两部分:管理逻辑单元和用户逻辑单元。
需要说明的是,上述管理逻辑单元可以由FPGA服务器侧提供(例如,云服务器),而用户逻辑单元则可以由最终用户、第三方IP厂商提供。
在一种可选的实施例中,管理逻辑单元可以用于负责外围通信,用户逻辑单元则可以用于实现用户应用程序的热点模块,例如,对于压缩/解压缩应用,用户逻辑可以实现实际的压缩/解压缩算法(例如,gizp算法),待压缩数据通过PCIe从主机CPU 送入FPGA设备,压缩后的数据从PCIe接口返回主机CPU。
在上述可选实施例中,外围通信可以为但不限于以下任意一种通信方式:通过PCIe与主机CPU通信、通过以太网或光纤接口与其他网络设备通信、通过DDR(Double DataRate,双速倍率)控制器接口/Flash接口与外部存储设备通信等。
此外,仍需说明的是,与ASIC芯片的固定硬件逻辑不同,上述用户逻辑单元可以按照需求进行更换,也即,由管理逻辑单元进行动态重配置,可选的,可以通过FPGA 中的部分重配功能(Partial Reconfiguration,PR)实现上述动态重配置。
在一种可选的实施例中,上述FPGA设备上的管理逻辑单元,可以通过PCIe模块与主机CPU进行通信,其中,PCIe模块可以包括:两个或多个不同权限的PF。
在一种可以实现的方式中,PCIe模块可以包括但不限于第一PF和第二PF(即双 PF的权限分割方式)。
需要说明的是,如图3所示,由于主机CPU由相互隔离的管理环境、用户环境构成,且管理环境和用户环境通过虚拟化技术相互隔离,上述隔离的方式既可以是两个虚拟机也可以是虚拟机与宿主机,其中,在用户逻辑控制过程中,第一PF可以调用主机的管理环境中的Manegement.ko,第二PF可以调用主机的用户环境中的dma.ko。
在一种可选的实施方式中,第一PF与主机CPU中的管理环境通信,第二PF与主机CPU中的用户环境通信,为实现与主机CPU进行高速安全的通信,上述第一PF和第二PF也可以是物理隔离的,两者之间有不同配置空间,以及其他的权限分割方式。
仍需要说明的是,将FPGA设备的PCIe模块分割为不同权限的PF,将主机分为与之相关联的管理环境与用户环境,从而能可以实现安全隔离;普通用户只能使用用户环境访问用户逻辑,对用户逻辑进行远程调试;超级管理员用户可以使用管理环境,可以对板卡实现较高权限的管理、监控、重配置等操作。
此外,还需要说明的是,在本申请所提供的实施例中,通过对第一PF和第二PF 进行安全隔离,可以避免发生用户无法访问,甚至NC宕机的问题,进一步提高了FPGA 设备的计算性能。
以上述双PF的权限分割方式为例,如图2所示,第一PF可以但不限于通过以下方式实现动态重配置:
步骤S101,第一PF接收第二PF发起的用户逻辑加载请求。
可选的,上述用户逻辑加载请求携带用户逻辑标识。
在一种可选的实施例中,上述第二PF可以根据自己的身份,向服务器发送用户逻辑加载请求。
步骤S103,第一PF根据上述用户逻辑标识,获取用户逻辑文件。
可选的,在上述步骤S103中,在服务器加载请求鉴权并应答后,第一PF可以根据上述用户逻辑标识,从远程存储端获取用户逻辑文件。
步骤S105,第一PF通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
作为一种可选的实施例,在获取用户逻辑文件之后,上述第一PF可以通过PCIe配置通道中的部分重配控制模块117,将上述用户逻辑文件烧写至上述用户逻辑单元,并根据用户逻辑加载请求加载对应的镜像。
基于上述步骤S101至步骤S105,本申请所提供的FPGA设备即可以完成动态重配置。
另外,在本申请所提供的实施例中,上述第一PF还可以用于实现动态重配置、远程升级Flash、异常处理、硬件监控等功能;上述第二PF还可以用于与用户逻辑单元以DMA方式进行高速数据交互并实现用户逻辑单元的远程调试功能。
基于上述实施例所限定的方案可以获知,本申请所提供的FPGA设备,包括管理逻辑单元和用户逻辑单元,其中,上述管理逻辑单元包括高速计算机串行总线标准PCIe模块,上述PCIe模块包括第一物理设备PF和第二PF;上述第一PF,用于接收第二 PF发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
容易注意到的是,由于主机CPU由相互隔离的管理环境、用户环境构成,本申请将FPGA设备上的硬件逻辑可以分为管理逻辑单元和用户逻辑单元,其中,管理逻辑单元通过高速计算机串行总线标准PCIe模块与主机CPU进行通信,本申请实施例中的 FPGA设备在实现动态重配置的过程中,进而可以通过PCIe模块中的两个或者多个PF 的权限分割方式进行安全隔离,实现动态重配置。
并且,本申请上述实施方式,第一PF还可以用于实现动态重配置、远程升级Flash、异常处理、硬件监控等功能;上述第二PF还可以用于与用户逻辑单元以DMA方式进行高速数据交互并实现用户逻辑单元的远程调试功能。
通过本申请上述实施例所提供的方案,将FPGA设备的管理逻辑单元中设置PCIe模块,并将PCIe模块分割为不同权限的PF,达到了无需连接JTAG电缆即可与主机进行通信以实现远程配置的目的,从而实现了提高FPGA的性能的技术效果,进而解决了现有的FPGA在进行远程配置或者调试时需要连接JTAG电缆,导致无法部署在云端的技术问题。
在一种可选的实施方式中,图3是根据本申请实施例的一种可选的FPGA设备的结构示意图,如图3所示,上述管理逻辑单元还包括存储介质控制模块103;其中,上述第一PF,还用于接收服务端发送的升级请求;根据上述升级请求,通过PCIe接口从主机获取升级文件;上述存储介质控制模块103,与上述第一PF连接,用于根据上述升级文件升级存储介质。
需要说明的是,远程升级存储接介质的实现方式,与本申请上述动态重配置的实现方式类似,不同的是云端的管控系统(服务端)所提交升级请求发给外部存储端,并发送发命令给第一PF。
如图3所示,存储介质控制模块103与Flash(存储介质)连接,第一PF 1010 与存储介质控制模块103连接,在一种可选的实施例中,第一PF根据上述升级请求,通过PCIe接口从主机获取升级文件,通过PCIe读写寄存器的方式;上述管理逻辑单元中的存储介质控制模块103,用于升级板卡上的Flash固件。
需要说明的是,上述Flash升级过程由超级管理员负责,普通用户没有升级和更新的权限。
在一种可选的实施方式中,如图3所示,上述管理逻辑单元还包括:外存控制器105,即DDR ctrl,与外部存储器DDR连接,用于读写外部存储器DDR。
在一种可选的实施方式中,上述FPGA设备还包括共享寄存器;其中,上述第二 PF,还用于通过上述共享寄存器上报异常信息;上述第一PF,还用于从上述共享寄存器中获取上述异常信息,并执行上述异常信息对应的操作。
作为一种可选的实施例,FPGA设备的异常处理机制可以通过内部共享寄存器来实现。
图4是根据本申请实施例的一种可选的FPGA设备中的共享寄存器与PF连接的结构示意图,如图4所示,上述共享寄存器分别与第一PF、第二PF连接,第二PF可以对共享寄存器执行读写操作,通过共享寄存器上报内部异常信息,第一PF可以对共享寄存器执行读操作,通过轮询共享寄存器的方式,获取上述共享寄存器上报异常信息。
在一种可选的实施方式中,如图3所示,上述用户逻辑单元包括直接存取接口107;其中,上述第二PF,还用于通过上述直接存取接口与上述用户逻辑单元进行数据交互。
可选的,直接存取接口即DMA接口,在FPGA设备内部,用于提供给用户逻辑的 DMA接口属于标准的协议接口,以保障第二PF独占PCIe的DMA接口访问。
作为一种可选的实施例,用户逻辑单元采用上述直接存取接口中的读接口,可以从主机搬移数据到DMA,用户逻辑单元采用上述直接存取接口中的写接口可以把FPGA 数据搬移到主机,进而可以实现主机和FPGA设备之间的数据交互。
需要说明的是,提供给第二PF的FPGA逻辑DMA接口可以将硬件接口抽象出来,从而实现安全隔离和简化编程的目的。
在一种可选的实施方式中,如图3所示,上述管理逻辑单元还包括虚拟JTAG模块109;其中,上述第二PF,用于获取用户逻辑单元的调试数据;上述虚拟JTAG模块,与上述第二PF连接,用于通过PCIe接口将上述调试数据进行调试。
可选的,上述虚拟JTAG模块即Virtual JTAG模块,可以用于实现用户逻辑单元的远程调试功能。
需要说明的是,上述虚拟JTAG模块在对用户逻辑单元进行远程调试时,模拟了JTAG时序,可以抓取硬件波形图,并通过PCIe总线接口把相应的数据发送到远端,或本地运行的调试软件,而无需物理JTAG的硬连线,具有高度的灵活性。
在一种可选的实施方式中,如图3所示,上述管理逻辑单元还包括:监控模块111,与上述第一PF连接,用于检测硬件的温度及功耗,并将检测到的上述温度及上述功耗传输至上述第一PF。
可选的,上述监控模块,即Monitor模块。
作为一种可选的实施例,管理逻辑单元可以通过寄存器访问机制,来获取FPGA 内部监控的硬件信息状态,例如,可以通过监控模块检测硬件信息状态,并检测到的上述温度及上述功耗传输至上述第一PF。
需要说明的是,上述监控模块不仅可以用于硬件监控,还具备温度、功耗传感器检测功能。
在一种可选的实施方式中,仍如图3所示,上述管理逻辑单元还包括:错误恢复机制模块113,与带外通信接口115连接,用于在上述用户逻辑单元出现异常的情况下,对上述用户逻辑单元进行复位。
可选的,上述错误恢复机制模块,即Error Recovery模块,上述带外通信接口,即SMBus,设置于主板上。
在一种可选的实施方式中,上述管理逻辑单元还包括:部分重配控制模块117,用于对用户逻辑单元进行部分重配置,当用户需要更换用户逻辑时,可以通过发送相应请求到第一PF中的相应配置空间寄存器,来实现更换用户逻辑。
为了避免用户随意配置和访问用户逻辑文件,造成IP泄露等安全事故,在一种可选的实施方式中,上述第一PF,还用于对上述用户逻辑文件进行比特流校验;在校验成功的情况下,触发上述通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
在一种可选的实施方式中,上述用户逻辑加载请求还携带有动态验证标识;上述第一PF,还用于根据上述动态验证标识与从服务端接收到的预设验证标识进行权限验证,在验证通过的情况下,触发上述根据上述用户逻辑标识,获取用户逻辑文件。
需要说明的是,用户只有在同时满足动态验证标识(每分钟都会更新)、FPGA云服务器权限、用户逻辑id三个条件,才能成功通过审核并获取用户逻辑文件,实现动态重配置。在进行动态重配置时,管理逻辑单元会对比特流(bitstream)进行最后校验,也即,验证是否与预期的用户逻辑文件匹配。
为理解本申请上述实施例,本申请提供了如5图所示的一种可选的用户逻辑加载流程示意图,并通过该示意图进一步解释本申请中的用户逻辑加载流程:
步骤S201,主机提供动态校验码服务。
为了保护用户逻辑文件的安全性,作为一种可选的实施例,主机CPU在管理环境中对用户逻辑文件烧写时,可以提供动态校验码服务对用户逻辑加载请求进行校验。
步骤S202,用户请求加载用户逻辑。
具体的,用户逻辑加载请求中,携带有user_logic_id以及instance_id等标识信息。
在一种可选的实施例中,用户通过第二PF向用户环境发起用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识。
步骤S203,超级管理员审核请求的来源。
在一种可选的实施例中,管理环境中的超级管理员用户,可以对上述用户逻辑加载请求进行审核,其中,可以但不限于对动态校验码、FPGA云服务器权限和用户逻辑 id进行校验,并在校验成功的情况下,执行步骤S204。
步骤S204,获取用户逻辑文件。
可选的,在超级管理员审核动态校验码、FPGA云服务器权限和用户逻辑id通过的情况下,根据上述用户逻辑标识,获取用户逻辑文件。
步骤S205,调用主机中的management.ko。
可选的,第一PF对主机的管理环境中的management.ko进行调用。
步骤S206,发起部分重置。
在一种可选的实施例中,第一PF通过调用管理环境中的management.ko,发起动态重配置。
步骤S207,暂停所有DMA传输。
在一种可选的实施例中,在动态重配置期间,暂停DMA数据交互以及用户逻辑单元的远程调试功能。
步骤S208,进行比特流校验。
在一种可选的实施方式中,第一PF用于对上述用户逻辑文件进行比特流校验;在校验成功的情况下,触发通过PCIe配置通道对用户逻辑文件进行烧写。
步骤S209,完成烧写。
在一种可选的实施例中,可以通过PCIe配置通道将上述用户逻辑文件烧写至用户逻辑单元中。
步骤S210,调用dma.ko。
在一种可选的实施例中,第二PF通过调用用户环境中的dma.ko,将上述用户逻辑文件烧写至用户逻辑单元中。
实施例2
根据本发明实施例,还提供了一种基于FPGA设备的云系统,如图6所示,包括:上述FPGA设备1以及主机2。
其中,上述FPGA设备,包括:管理逻辑单元和用户逻辑单元,其中,上述管理逻辑单元包括高速计算机串行总线标准PCIe模块,上述PCIe模块包括第一物理设备PF 和第二PF;上述第一PF,用于接收第二PF发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
需要说明的是,如图6所示,上述FPGA设备上的管理逻辑单元和主机CPU通过PCIe进行通信,主机CPU负责用户应用程序的软件部分,FPGA设备负责热点模块的硬件加速,其中,主机CPU中包括应用程序、加速库和PCIe Driver(PCIe驱动)。
为了保护用户逻辑文件的安全性,主机CPU在管理环境中对用户逻辑文件烧写时,可以通过上述实施例中的身份校验流程进行校验。
基于上述实施例所限定的方案可以获知,本申请所提供的基于FPGA设备的云系统,包括主机;以及上述任一可选的FPGA设备,其中,上述FPGA设备包括:管理逻辑单元和用户逻辑单元,其中,上述管理逻辑单元包括高速计算机串行总线标准PCIe模块,上述PCIe模块包括第一物理设备PF和第二PF;上述第一PF,用于接收第二PF发起的用户逻辑加载请求,上述用户逻辑加载请求携带用户逻辑标识;根据上述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将上述用户逻辑文件烧写至上述用户逻辑单元。
容易注意到的是,由于主机CPU由相互隔离的管理环境、用户环境构成,本申请将FPGA设备上的硬件逻辑可以分为管理逻辑单元和用户逻辑单元,其中,管理逻辑单元通过高速计算机串行总线标准PCIe模块与主机CPU进行通信,本申请实施例中的 FPGA设备在实现动态重配置的过程中,进而可以通过PCIe模块中的两个或者多个PF 的权限分割方式进行安全隔离,实现动态重配置。
并且,本申请上述实施方式,第一PF还可以用于实现动态重配置、远程升级Flash、异常处理、硬件监控等功能;上述第二PF还可以用于与用户逻辑单元以DMA方式进行高速数据交互并实现用户逻辑单元的远程调试功能。
通过本申请上述实施例所提供的方案,将FPGA设备的管理逻辑单元中设置PCIe模块,并将PCIe模块分割为不同权限的PF,达到了无需连接JTAG电缆即可与主机进行通信以实现远程配置的目的,从而实现了提高FPGA的性能的技术效果,进而解决了现有的FPGA在进行远程配置或者调试时需要连接JTAG电缆,导致无法部署在云端的技术问题。
为了实现主机CPU与FPGA设备进行数据交互的目的据,需要PCIe驱动模块提供支持。在一种可选的实施方式中,如图6所示,上述主机包括:PCIe驱动,用于与上述FPGA设备中的PCIe模块进行数据交互。
需要说明的是,本申请对上述PCIe的版本并不作限定,可以为但不限于:1.0,2.0,3.0,4.0版本。图6中的主机2和FPDA设备1仅示意性绘出1:1的对应关系,在实际应用过程中,本申请实施例可以支持1:N的对应关系(其中,N为FPGA设备的数目)。
另外,为了方便用户应用程序的编写,在PCIe驱动上还相应提供了供用户进行调用的加速库。其中,用户在使用加速库时,可以实现透明加速,即不需要了解硬件的细节。
在另外一种可选的实施方式中,上述主机包括管理环境和用户环境;上述管理环境,用于响应于用户的操作通过上述FPGA设备中的第一PF访问上述FPGA设备中的管理逻辑单元;上述用户环境,用于响应于用户的操作通过上述FPGA设备中的第二PF 访问上述FPGA设备中的用户逻辑单元。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的系统可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种FPGA设备,其特征在于,包括管理逻辑单元和用户逻辑单元,其中,所述管理逻辑单元包括PCIe模块,所述PCIe模块包括第一物理功能单元和第二物理功能单元;
所述第一物理功能单元,用于接收第二物理功能单元发起的用户逻辑加载请求,所述用户逻辑加载请求携带用户逻辑标识;根据所述用户逻辑标识,获取用户逻辑文件;通过PCIe配置通道将所述用户逻辑文件烧写至所述用户逻辑单元。
2.根据权利要求1所述的FPGA设备,其特征在于,所述管理逻辑单元还包括存储介质控制模块;其中,
所述第一物理功能单元,还用于接收服务端发送的升级请求;根据所述升级请求,通过PCIe接口从主机获取升级文件;
所述存储介质控制模块,与所述第一物理功能单元连接,用于根据所述升级文件升级存储介质。
3.根据权利要求1所述的FPGA设备,其特征在于,还包括共享寄存器;其中,
所述第二物理功能单元,还用于通过所述共享寄存器上报异常信息;
所述第一物理功能单元,还用于从所述共享寄存器中获取所述异常信息,并执行所述异常信息对应的操作。
4.根据权利要求1所述的FPGA设备,其特征在于,所述用户逻辑单元包括直接存取接口;其中,
所述第二物理功能单元,还用于通过所述直接存取接口与所述用户逻辑单元进行数据交互。
5.根据权利要求1所述的FPGA设备,其特征在于,所述管理逻辑单元还包括虚拟JTAG模块;其中,
所述第二物理功能单元,用于获取用户逻辑单元的调试数据;
所述虚拟JTAG模块,与所述第二物理功能单元连接,用于通过PCIe接口将所述调试数据进行调试。
6.根据权利要求1所述的FPGA设备,其特征在于,所述管理逻辑单元还包括:
监控模块,与所述第一物理功能单元连接,用于检测硬件的温度及功耗,并将检测到的所述温度及所述功耗传输至所述第一物理功能单元。
7.根据权利要求1所述的FPGA设备,其特征在于,所述管理逻辑单元还包括:
错误恢复机制模块,与带外通信接口连接,用于在所述用户逻辑单元出现异常的情况下,对所述用户逻辑单元进行复位。
8.根据权利要求1所述的FPGA设备,其特征在于,所述第一物理功能单元,还用于对所述用户逻辑文件进行比特流校验;在校验成功的情况下,触发所述通过PCIe配置通道将所述用户逻辑文件烧写至所述用户逻辑单元。
9.根据权利要求1所述的FPGA设备,其特征在于,所述用户逻辑加载请求还携带有动态验证标识;
所述第一物理功能单元,还用于根据所述动态验证标识与从服务端接收到的预设验证标识进行权限验证,在验证通过的情况下,触发所述根据所述用户逻辑标识,获取用户逻辑文件。
10.一种基于FPGA设备的云系统,其特征在于,包括:
主机;以及
至少一个如权利要求1至9中任一项所述的FPGA设备。
11.根据权利要求10所述的系统,其特征在于,所述主机包括:
PCIe驱动,用于与所述FPGA设备中的PCIe模块进行数据交互。
12.根据权利要求10所述的系统,其特征在于,所述主机包括管理环境和用户环境;
所述管理环境,用于响应于用户的操作通过所述FPGA设备中的第一物理功能单元访问所述FPGA设备中的管理逻辑单元;
所述用户环境,用于响应于用户的操作通过所述FPGA设备中的第二物理功能单元访问所述FPGA设备中的用户逻辑单元。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929351.4A CN109639446B (zh) | 2017-10-09 | 2017-10-09 | Fpga设备、基于fpga设备的云系统 |
JP2020540663A JP7308845B2 (ja) | 2017-10-09 | 2018-09-29 | Fpgaデバイスおよびfpgaデバイスに基づくクラウドシステム |
EP18866716.6A EP3697023A4 (en) | 2017-10-09 | 2018-09-29 | FPGA DEVICE AND CLOUD SYSTEM BASED ON AN FPGA DEVICE |
PCT/CN2018/108514 WO2019072111A1 (zh) | 2017-10-09 | 2018-09-29 | Fpga设备、基于fpga设备的云系统 |
US16/843,676 US11048826B2 (en) | 2017-10-09 | 2020-04-08 | FPGA device and cloud system based on FPGA device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710929351.4A CN109639446B (zh) | 2017-10-09 | 2017-10-09 | Fpga设备、基于fpga设备的云系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109639446A CN109639446A (zh) | 2019-04-16 |
CN109639446B true CN109639446B (zh) | 2022-01-11 |
Family
ID=66051029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710929351.4A Active CN109639446B (zh) | 2017-10-09 | 2017-10-09 | Fpga设备、基于fpga设备的云系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11048826B2 (zh) |
EP (1) | EP3697023A4 (zh) |
JP (1) | JP7308845B2 (zh) |
CN (1) | CN109639446B (zh) |
WO (1) | WO2019072111A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569042B (zh) * | 2019-08-19 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种支持虚拟机内更新fpga功能的系统,方法,设备及存储介质 |
CN112486895B (zh) * | 2019-09-12 | 2024-01-09 | 阿里巴巴集团控股有限公司 | 一种fpga芯片及其互联控制方法 |
CN110750312A (zh) * | 2019-10-17 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 硬件资源配置方法、装置、云侧设备和存储介质 |
CN111431749B (zh) * | 2020-03-27 | 2022-10-14 | 重庆海云捷迅科技有限公司 | 一种fpga云服务器管理平台及其使用方法 |
CN113312098B (zh) * | 2020-04-01 | 2022-08-12 | 阿里巴巴集团控股有限公司 | 程序加载方法、设备、系统及存储介质 |
US11537761B2 (en) * | 2020-09-25 | 2022-12-27 | Intel Corporation | Transparent network access control for spatial accelerator device multi-tenancy |
CN112255598B (zh) * | 2020-10-14 | 2023-09-26 | 四川九洲空管科技有限责任公司 | 基于光纤通信的fpga远程在线调试方法、装置及系统 |
US20220321403A1 (en) * | 2021-04-02 | 2022-10-06 | Nokia Solutions And Networks Oy | Programmable network segmentation for multi-tenant fpgas in cloud infrastructures |
WO2022219727A1 (ja) * | 2021-04-13 | 2022-10-20 | Chiptip Technology株式会社 | 情報処理システム、情報処理装置、サーバ装置、プログラム、リコンフィグラブルデバイス、又は方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7626418B1 (en) * | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
CN102053850A (zh) * | 2010-12-17 | 2011-05-11 | 天津曙光计算机产业有限公司 | 一种在线升级fpga逻辑的方法 |
CN102184158A (zh) * | 2011-03-31 | 2011-09-14 | 杭州海康威视数字技术股份有限公司 | 带两级fpga芯片的子板及两级fpga芯片的配置方法 |
CN103617054A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种远程加载fpga配置文件的装置及加载方法 |
CN103885919A (zh) * | 2014-03-20 | 2014-06-25 | 北京航空航天大学 | 一种多dsp和fpga并行处理系统及实现方法 |
CN105224345A (zh) * | 2014-05-28 | 2016-01-06 | 株洲变流技术国家工程研究中心有限公司 | 一种可编程逻辑器件远程更新系统及其方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9455955B2 (en) | 2006-05-17 | 2016-09-27 | Richard Fetik | Customizable storage controller with integrated F+ storage firewall protection |
US8824492B2 (en) | 2010-05-28 | 2014-09-02 | Drc Computer Corporation | Accelerator system for remote data storage |
US9465632B2 (en) | 2012-02-04 | 2016-10-11 | Global Supercomputing Corporation | Parallel hardware hypervisor for virtualizing application-specific supercomputers |
CN102946366B (zh) * | 2012-11-12 | 2015-12-16 | 杭州华为数字技术有限公司 | 带内管理方法及系统 |
US9213867B2 (en) | 2012-12-07 | 2015-12-15 | Microsoft Technology Licensing, Llc | Secure cloud database platform with encrypted database queries |
US20140237292A1 (en) | 2013-02-21 | 2014-08-21 | Advantest Corporation | Gui implementations on central controller computer system for supporting protocol independent device testing |
US9727510B2 (en) | 2013-03-15 | 2017-08-08 | Micron Technology, Inc. | System and method for independent, direct and parallel communication among multiple field programmable gate arrays |
CN105579959B (zh) | 2013-09-24 | 2019-06-07 | 渥太华大学 | 硬件加速器虚拟化 |
US9665533B2 (en) | 2013-12-20 | 2017-05-30 | Rambus Inc. | Blob pools, selectors, and command set implemented within a memory appliance for accessing memory |
CN106688217B (zh) | 2014-03-08 | 2021-11-12 | 狄亚曼提公司 | 用于融合联网和存储的方法和系统 |
US20150347324A1 (en) * | 2014-05-30 | 2015-12-03 | S2C Inc. | System and Method for Shared Memory for FPGA Based Applications |
US20160321081A1 (en) | 2015-05-02 | 2016-11-03 | Hyeung-Yun Kim | Embedded systems of internet-of-things incorporating a cloud computing service of FPGA reconfiguration |
US9590635B1 (en) * | 2015-12-03 | 2017-03-07 | Altera Corporation | Partial reconfiguration of programmable devices |
JP6620595B2 (ja) * | 2016-02-25 | 2019-12-18 | 富士通株式会社 | 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 |
CN107038040A (zh) * | 2016-11-01 | 2017-08-11 | 中国人民解放军国防科学技术大学 | 基于pcie的fpga更新系统及更新方法 |
CN106549970A (zh) * | 2016-11-25 | 2017-03-29 | 济南浪潮高新科技投资发展有限公司 | 一种基于fpga的pcie接口数据加解密方法 |
CN106951388B (zh) * | 2017-03-16 | 2020-06-30 | 湖南博匠信息科技有限公司 | 一种基于PCIe的DMA数据传输方法及系统 |
US10963001B1 (en) | 2017-04-18 | 2021-03-30 | Amazon Technologies, Inc. | Client configurable hardware logic and corresponding hardware clock metadata |
US10528768B2 (en) * | 2017-09-15 | 2020-01-07 | Intel Corporation | Methods and apparatus to provide user-level access authorization for cloud-based field-programmable gate arrays |
-
2017
- 2017-10-09 CN CN201710929351.4A patent/CN109639446B/zh active Active
-
2018
- 2018-09-29 JP JP2020540663A patent/JP7308845B2/ja active Active
- 2018-09-29 WO PCT/CN2018/108514 patent/WO2019072111A1/zh unknown
- 2018-09-29 EP EP18866716.6A patent/EP3697023A4/en active Pending
-
2020
- 2020-04-08 US US16/843,676 patent/US11048826B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7626418B1 (en) * | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
CN102053850A (zh) * | 2010-12-17 | 2011-05-11 | 天津曙光计算机产业有限公司 | 一种在线升级fpga逻辑的方法 |
CN102184158A (zh) * | 2011-03-31 | 2011-09-14 | 杭州海康威视数字技术股份有限公司 | 带两级fpga芯片的子板及两级fpga芯片的配置方法 |
CN103617054A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种远程加载fpga配置文件的装置及加载方法 |
CN103885919A (zh) * | 2014-03-20 | 2014-06-25 | 北京航空航天大学 | 一种多dsp和fpga并行处理系统及实现方法 |
CN105224345A (zh) * | 2014-05-28 | 2016-01-06 | 株洲变流技术国家工程研究中心有限公司 | 一种可编程逻辑器件远程更新系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109639446A (zh) | 2019-04-16 |
US11048826B2 (en) | 2021-06-29 |
EP3697023A4 (en) | 2021-06-23 |
EP3697023A1 (en) | 2020-08-19 |
WO2019072111A1 (zh) | 2019-04-18 |
US20200233982A1 (en) | 2020-07-23 |
JP7308845B2 (ja) | 2023-07-14 |
JP2020537799A (ja) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109639446B (zh) | Fpga设备、基于fpga设备的云系统 | |
US10338135B2 (en) | Extracting debug information from FPGAs in multi-tenant environments | |
JP6790325B2 (ja) | ターゲットデバイス、方法、プログラム、および非一時的なコンピュータ可読記憶媒体 | |
EP3582129A1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
EP2158495B1 (en) | Integrated circuit with self-test feature for validating functionality of external interfaces | |
US20130268708A1 (en) | Motherboard test device and connection module thereof | |
US20180367317A1 (en) | Hardware integrity check | |
US20170286254A1 (en) | Method and apparatus for using target or unit under test (uut) as debugger | |
US9995789B2 (en) | Secure remote debugging of SoCs | |
US11828787B2 (en) | Eye diagram capture test during production | |
CN110334522A (zh) | 启动度量的方法及装置 | |
US11782089B2 (en) | Detecting and remediating unauthorized debug sessions | |
CN115496018A (zh) | 一种SoC芯片多版本验证方法、装置及设备 | |
CN101303716A (zh) | 基于tpm的嵌入式系统恢复机制 | |
US9946552B2 (en) | System and method for detecting redundant array of independent disks (RAID) controller state from baseboard management controller (BMC) | |
CN104156229A (zh) | 计算机系统 | |
US20170147817A1 (en) | Analysis device, analysis method, and storage medium in which analysis program is recorded | |
CN107908418B (zh) | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 | |
US20200342109A1 (en) | Baseboard management controller to convey data | |
CN105474228A (zh) | Io设备与硬件安全元件的自动配对 | |
CN106648007B (zh) | 一种通用槽位实现方法、装置及通信设备 | |
CN117436405B (zh) | 一种仿真验证方法、装置及电子设备 | |
US20230281302A1 (en) | Module and method for monitoring systems of a host device for security exploitations | |
KR101265233B1 (ko) | 초기 저장장치 생산 및 테스트용 호스트 버스 아답터 | |
CN218122644U (zh) | 一种防止外接jtag接口泄露信息的电路及服务器 |
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 |