Cloud-based FPGA management control system, method and electronic device
By using FPGA tools to generate and manage FPGA image files in FPGA devices, the security and resource occupation problems of FPGA image file management in the FaaS platform are solved, and the user's own management and permission layering are achieved.
Patent Information
- Application Number
- CN202210248599.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-14
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2042-03-14
AI Technical Summary
In the FaaS platform, some of the reprogramming files of FPGA are managed by FaaS, which makes users unable to access FPGA image files, causing concerns about the security of logical files and occupying management resources.
By using FPGA tools on the computing node to generate FPGA image files and authenticate and perform operations in the FPGA device, users can compile and generate FPGA image files by themselves, reducing FaaS's management needs for FPGA image pool.
The function of users generating FPGA image files by themselves is realized, reducing the management burden of FaaS, releasing the management resources of the FPGA image pool, and at the same time, hierarchical management of user rights by FPGA devices is realized.
Smart Images

Figure CN114691157B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of communication technology, and more specifically, to a cloud-based FPGA management control system, method, and electronic device. Background Art
[0002] The FaaS (FPGA as a Server) platform formed by combining Field-Programmable Gate Array (FPGA) with cloud computing can provide a unified hardware platform and middleware in the cloud, which can reduce users' development and deployment costs.
[0003] In FaaS, for security reasons, the partial reconfiguration (PR) file of the FPGA is generated by FaaS after compiling the netlist file submitted by the user and stored in the image pool. The user cannot access the FPGA image file, which will cause FPGA users to worry about the security of their own logic files, and at the same time occupy a large amount of management resources of the FPGA image pool. Summary of the invention
[0004] The disclosed embodiment provides a cloud-based FPGA management and control method, which achieves the purpose of compiling and generating FPGA image files by users. FaaS is no longer needed to manage the FPGA image pool, thus releasing the management resources of the FPGA image pool.
[0005] According to a first aspect of an embodiment of the present disclosure, a cloud-based FPGA management and control system is provided, comprising:
[0006] Compute nodes, FPGA devices, and FaaS management and control devices that are connected by communication;
[0007] The computing node includes an FPGA tool and a first interface module; the FPGA tool is used to generate an FPGA image file according to a user's FPGA image file compilation request; the first interface module is used to send an operation request to the FPGA device;
[0008] The FPGA device includes a second interface module, an authentication module and an execution module; the second interface module is used to send an operation request to the authentication module; the authentication module is used to authenticate the operation request, and if the authentication passes, send an execution instruction to the execution module; the execution module is used to execute an operation corresponding to the operation request according to the execution instruction;
[0009] The FaaS management and control device is used to burn the flash into the FPGA device.
[0010] Optionally, the authentication module includes a download operation authentication unit, a read / write operation authentication unit and a burn / write operation authentication unit;
[0011] In the case where the operation request is a download operation request, the download operation request includes the FPGA image file, and the download operation authentication unit is used to authenticate the FPGA image file;
[0012] In the case where the operation request is a read-write operation request, the read-write operation request at least includes a request address and a request content; the read-write operation authentication unit is used to determine whether the user has the operation authority corresponding to the request content according to the request address;
[0013] In the case that the operation request is a programming operation request, the programming operation authentication unit authenticates the programming operation request.
[0014] Optionally, the download operation authentication unit is specifically used to: perform FPGA logic authentication on the FPGA image file, or perform management and control authentication and FPGA logic authentication on the FPGA image file.
[0015] Optionally, the burning operation authentication unit is specifically used to: the authentication result of the burning operation request sent by the computing node is failure; the authentication result of the burning operation request sent by the FaaS management and control device is pass.
[0016] According to a second aspect of an embodiment of the present disclosure, a cloud-based FPGA management and control method is provided, including:
[0017] Receive a download operation request sent by a user; the download operation request at least includes an FPGA image file generated by the user through an FPGA tool;
[0018] Authenticating the FPGA image file;
[0019] If the authentication result is that the authentication is passed, the download operation is performed.
[0020] Optionally, authenticating the FPGA image file includes:
[0021] Perform FPGA logic authentication on the FPGA image file.
[0022] Optionally, authenticating the FPGA image file includes:
[0023] Perform management and control authentication and FPGA logic authentication on the FPGA image file.
[0024] Optionally, the method further comprises:
[0025] Receiving a read / write request from a user; the read / write request at least includes a request address and a request content;
[0026] According to the request address, determining whether the user has the operation authority corresponding to the request content;
[0027] Execute corresponding processing according to the judgment result.
[0028] Optionally, performing corresponding processing according to the judgment result includes:
[0029] If the judgment result is that the user has the operation authority corresponding to the request content, perform the operation corresponding to the request content and return the first request response to the user;
[0030] If the judgment result is that the user does not have the operation authority corresponding to the request content, a second request response is returned to the user.
[0031] According to a third aspect of the embodiments of the present disclosure, there is also provided an electronic device, comprising:
[0032] A processor and a memory, wherein the memory is used to store instructions, and the instructions are used to control the processor to execute any one of the methods according to the first aspect of the present disclosure.
[0033] According to a fourth aspect of an embodiment of the present disclosure, a readable storage medium is further provided, wherein the storage medium stores executable instructions, and when the executable instructions are executed by a processor, the method as described in any one of the first aspects of the present disclosure is executed.
[0034] In one embodiment, the FPGA image file is generated by the FPGA tool on the computing node, the FPGA device authenticates the operation request, and executes the corresponding operation if the authentication is passed, and the FaaS management and control device writes the flash to the FPGA device, so that the purpose of compiling and generating the FPGA image file by the user is achieved, and FaaS is no longer required to manage the FPGA image pool, thus releasing the management resources of the FPGA image pool. At the same time, the FPGA device implements hierarchical management of user permissions, and users can use the FPGA device to a limited extent.
[0035] Further features and advantages of the present invention will become apparent from the following detailed description of exemplary embodiments of the present invention with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
[0037] Figure 1 is a schematic diagram of a cloud-based FPGA management and control system according to an embodiment of the present disclosure;
[0038] Figure 2 is a schematic diagram of FPGA operations in a FaaS instance;
[0039] Figure 3 is a schematic diagram of IO operations in the bare metal scenario and the VM scenario in this embodiment;
[0040] Figure 4 is a schematic diagram of an example of IO operation in this embodiment;
[0041] Figure 5 is a flow chart of a cloud-based FPGA management and control method that can be used in an embodiment of the present disclosure;
[0042] Figure 6 is a principle block diagram of an electronic device that can be used to implement an embodiment of the present disclosure;
[0043] Figure 7 A schematic diagram of the composition structure of an electronic device that can be used to implement a cloud-based FPGA management and control method of an embodiment is shown. DETAILED DESCRIPTION
[0044] Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangement of components and steps, numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless otherwise specifically stated.
[0045] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application, or uses.
[0046] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered as part of the specification.
[0047] In all examples shown and discussed herein, any specific values should be interpreted as merely exemplary and not limiting. Therefore, other examples of the exemplary embodiments may have different values.
[0048] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.
[0049] <System Embodiment>
[0050] Figure 1is a schematic diagram of a cloud-based FPGA management control system according to an embodiment of the present disclosure. Figure 1 As shown, the cloud-based FPGA management and control system 1000 of this embodiment may include: a computing node 10, an FPGA device 20 and a FaaS management and control device 30 that are communicatively connected.
[0051] The computing node 10 includes an FPGA tool 101 and a first interface module 102 ; the FPGA tool 101 is used to generate an FPGA image file according to a user's FPGA image file compilation request; and the first interface module 102 is used to send an operation request to the FPGA device 20 .
[0052] In actual applications, the operation request may include three types of operation requests: download operation request, read / write operation request and burn / write operation request. Figure 2 As shown, these three types of operation requests have three levels in terms of operation and security, namely read and write (IO) operations, download operations, and flash programming operations.
[0053] The FPGA device 20 includes a second interface module 201, an authentication module 202 and an execution module 203; the second interface module 201 is used to send an operation request to the authentication module 202; the authentication module 202 is used to authenticate the operation request, and if the authentication passes, send an execution instruction to the execution module 203; the execution module 203 is used to execute the operation corresponding to the operation request according to the execution instruction. The FaaS control device 30 is used to burn the flash to the FPGA device 20.
[0054] In one implementation, the authentication module 202 includes a download operation authentication unit, a read / write operation authentication unit, and a burn / write operation authentication unit.
[0055] Optionally, when the operation request is a download operation request, the download operation request includes the FPGA image file, and the download operation authentication unit is used to authenticate the FPGA image file.
[0056] In practical applications, FPGA image file authentication includes authentication in bare metal (proprietary cloud) scenarios and virtual machine scenarios. The download operation authentication unit is specifically used to: perform FPGA logic authentication on the FPGA image file, or perform management and control authentication and FPGA logic authentication on the FPGA image file.
[0057] In this example, when the FPGA image file is authenticated in a bare metal (proprietary cloud) scenario, the download operation authentication unit is used to perform FPGA logic authentication on the FPGA image file and intercept possible exceptions. Optionally, the possible exceptions may be, for example, code errors, malicious access to illegal addresses, etc.
[0058] When authenticating the FPGA image file in a virtual machine scenario, considering that there are multiple users' virtual machines in this scenario, in order to avoid the download operation of one user affecting other users, in this scenario, the download operation authentication unit is used to perform hybrid authentication on the FPGA image file, that is, to perform management and control authentication and FPGA logic authentication at the same time.
[0059] Specifically, after obtaining the FPGA image file, the FPGA manufacturer's PR tool is used to authenticate whether the FPGA image file complies with the FPGA image file rules and whether it will cause FPGA problems. Similarly, FPGA logic authentication authenticates the FPGA image file and intercepts possible exceptions. Optionally, the possible exceptions may be, for example, code errors, malicious access to illegal addresses, etc.
[0060] Optionally, when the operation request is a read-write operation request, the read-write operation request includes at least a request address and a request content; the read-write operation authentication unit is used to determine whether the user has the operation authority corresponding to the request content based on the request address.
[0061] like Figure 3 As shown, in a bare metal or VM scenario, the user can see all FPGA devices 20 (including dual PF scenarios) and can perform IO operations on the FPGA device 20.
[0062] When performing IO operations, the FPGA device 20 receives the user's read and write operation requests; the read and write operation requests include at least a request address and a request content; and based on the request address, it is determined whether the user has the operation authority corresponding to the request content; and corresponding processing is performed based on the determination result.
[0063] like Figure 4 As shown, exemplarily, the smart network card (smartNIC) has all the permissions to access the management PF (mgmtPF). The user's access permissions to mgmtPF can be set according to needs. Each function under mgmtPF will be divided into an address segment. For all read and write operation requests initiated to mgmtPF, the read and write operation authentication unit will first determine whether it has the operation permission corresponding to the request content based on the request address of the read and write request.
[0064] For read and write requests initiated by smartNIC, all are judged as passed. For read and write requests initiated by users through CN, it is determined whether they have the operation authority corresponding to the request content according to the request address. If they have, the operation corresponding to the request content is performed and the first request response is returned to the user. If they do not have, the second request response is returned to the user.
[0065] Optionally, when the operation request is a writing operation request, the writing operation authentication unit authenticates the writing operation request.
[0066] The writing operation authentication unit is specifically used to: determine that the authentication result of the writing operation request sent by the computing node 10 is not passed; and determine that the authentication result of the writing operation request sent by the FaaS management and control device 30 is passed.
[0067] In this embodiment, the flash of the FPGA device 20 is set to be completely shielded from the PCIe interface, so that the user cannot initiate any flash burning operation on the FPGA device 20. The flash can only be burned through the message defined by the FaaS VDM (vendor define message). Therefore, the user cannot operate the flash of the FPGA device 20 in the case of bare metal (proprietary cloud) or virtual machine (VM). The FaaS management and control device 30 can burn the flash through VDM. Usually, the flash burning occurs in the system online stage and the later FPGA shell upgrade stage. In this way, while satisfying the user's ability to use the FPGA to the maximum extent, the security of the FPGA's underlying logic is guaranteed, that is, the flash cannot be damaged.
[0068] The technical solution of this embodiment generates an FPGA image file through an FPGA tool on the computing node, authenticates the operation request on the FPGA device, and executes the corresponding operation if the authentication is passed, and burns the flash to the FPGA device on the FaaS control device, so as to achieve the purpose of compiling and generating FPGA image files by users, and no longer requires FaaS to manage the FPGA image pool, thus releasing the management resources of the FPGA image pool. At the same time, the FPGA device implements hierarchical management of user permissions, and users can use FPGA devices to a limited extent.
[0069] <Method Example>
[0070] Figure 5 is a flow chart of a cloud-based FPGA management and control method according to an embodiment of the present disclosure. The cloud-based FPGA management and control method of this embodiment is applied to Figure 1 In the system shown, Figure 5As shown, the cloud-based FPGA management and control method of this embodiment may include the following steps 5100 to 5300:
[0071] Step 5100, receiving a download operation request sent by a user; the download operation request at least includes an FPGA image file generated by the user through an FPGA tool.
[0072] That is to say, in this embodiment, the FPGA image file is generated by the user himself through the FPGA tool. After generating the FPGA image file, the user initiates a download operation to the FPGA through the FPGA device interface. In this way, the purpose of compiling and generating the FPGA image file by the user can be achieved.
[0073] Step 5200: authenticating the FPGA image file.
[0074] In this embodiment, the authentication of the FPGA image file is divided into two types according to different scenarios.
[0075] In one example, it is FPGA image file authentication in a bare metal (proprietary cloud) scenario. In this example, FPGA logic authentication is performed on the FPGA image file.
[0076] Specifically, the FPGA logic authentication can be performed by an FPGA logic authentication module, and the FPGA logic authentication module 202 can be located in the FPGA shell. The FPGA logic authentication module 202 authenticates the FPGA image file and intercepts possible exceptions. Optionally, the possible exceptions may be, for example, code errors, malicious access to illegal addresses, etc.
[0077] In another example, it is FPGA image file authentication in a virtual machine scenario. In this example, the FPGA image file is subject to control authentication and FPGA logic authentication.
[0078] Considering that there are multiple users' virtual machines on one FPGA device in this scenario, in order to prevent the download operation of one user from affecting other users, a hybrid authentication mode is used in this scenario, that is, both management and control authentication and FPGA logic authentication are performed at the same time.
[0079] Specifically, the management and control authentication is located on the Computer Node (CN). After obtaining the FPGA image file, the FPGA manufacturer's PR tool is used to authenticate whether the FPGA image file complies with the FPGA image file rules and whether it will cause FPGA problems.
[0080] Similarly, FPGA logic authentication can be performed by an FPGA logic authentication module, and the FPGA logic authentication module 202 is located in the FPGA shell. The FPGA logic authentication module 202 authenticates the FPGA image file and intercepts possible exceptions. Optionally, the possible exceptions may be, for example, code errors, malicious access to illegal addresses, etc.
[0081] Step 5300: When the authentication result is authentication passed, the download operation is performed.
[0082] Furthermore, the user can perform IO operations on the FPGA device. When performing IO operations, the FPGA receives the user's read and write operation request; the read and write operation request at least includes a request address and a request content; and according to the request address, it is determined whether the user has the operation authority corresponding to the request content; and corresponding processing is performed according to the determination result.
[0083] Exemplarily, the smart NIC has full access rights to the management PF (mgmtPF). The user can set the access rights to mgmtPF according to needs. Each function under mgmtPF will be assigned an address segment. For all read and write requests initiated to mgmtPF, it will first be determined whether the operation permission corresponding to the request content is available based on the request address of the read and write operation request.
[0084] For read and write operation requests initiated by smartNIC, all are judged as passed. For read and write operation requests initiated by users through CN, it is determined whether the user has the operation authority corresponding to the request content according to the request address. If yes, the operation corresponding to the request content is performed and the first request response is returned to the user. If no, the second request response is returned to the user.
[0085] Furthermore, in this embodiment, it is configured to shield all flash of the FPGA device from the PCIe interface, so that the user cannot initiate any flash update or erase operation on the FPGA device, and the flash can only be burned through the message defined by the FaaS VDM. Therefore, the user cannot operate the flash of the FPGA device in the case of bare metal (proprietary cloud) or virtual machine (VM). The FaaS management and control device can update the flash through VDM, and the flash update usually occurs during the system launch phase and the later FPGA shell upgrade phase. In this way, while satisfying the user's ability to use the FPGA to the maximum extent, the security of the FPGA's underlying logic is guaranteed, that is, the flash cannot be damaged.
[0086] The cloud-based FPGA management and control method of the embodiment of the present disclosure has been described above in conjunction with the accompanying drawings. In this embodiment, a download operation request sent by a user is received; the download operation request at least includes an FPGA image file generated by the user through an FPGA tool; the FPGA image file is authenticated; and when the authentication result is that the authentication is passed, the download operation is executed. In the embodiment of the present disclosure, the user generates an FPGA image file by himself through an FPGA tool, and sends the FPGA image file to the FPGA when initiating a download operation, thereby achieving the purpose of compiling and generating an FPGA image file by the user, and FaaS is no longer required to manage the FPGA image pool, thereby releasing the management resources of the FPGA image pool.
[0087] <Equipment Embodiment>
[0088] In this embodiment, an electronic device is also provided. Figure 6 The electronic device 6000 shown includes:
[0089] Memory 6100 is used to store executable commands.
[0090] The processor 6200 is used to execute the method described in any method embodiment of the present disclosure under the control of the executable instructions stored in the memory 6100.
[0091] The implementation subject of the method embodiment executed in the electronic device may be a server or an electronic device.
[0092] In a feasible implementation, the composition structure of an electronic device based on the cloud-based FPGA management and control method can be as follows: Figure 7 shown.
[0093] Specifically, the electronic device 7000 may include a processor 7100, a memory 7200, an interface device 7300, a communication device 7400, a display device 7500, an input device 7600, a speaker 7700, a microphone 7800, and the like.
[0094] Among them, the processor 7100 is used to execute program instructions, and the program instructions can adopt instruction sets of architectures such as x86, Arm, RISC, MIPS, SSE, etc. The memory 7200 includes, for example, ROM (read-only memory), RAM (random access memory), non-volatile memory such as a hard disk, etc. The interface device 7300 includes, for example, a USB interface, a headphone interface, etc. The communication device 7400 is capable of wired or wireless communication. The display device 7500 is, for example, a liquid crystal display, a touch display, etc. The input device 7600 may include, for example, a touch screen, a keyboard, etc. The speaker 7700 is used to output voice information. The microphone 7800 is used to collect voice information.
[0095] The electronic device 7000 may be any device such as a smart phone, a portable computer, a desktop computer, or a tablet computer.
[0096] In this embodiment, the memory 7200 of the electronic device 7000 is used to store instructions, and the instructions are used to control the processor 7100 to operate to support the implementation of the cloud-based FPGA management control method according to any embodiment of the present disclosure. The technician can design instructions according to the scheme disclosed in the present disclosure. How the instructions control the processor to operate is well known in the art, so it will not be described in detail here.
[0097] It should be understood by those skilled in the art that although Figure 7 Multiple devices of the electronic device 7000 are shown in the figure, but the electronic device 7000 of the embodiment of the present disclosure may only involve some of the devices, for example, only the processor 7100, the memory 7200, the input device 7600, etc.
[0098] Figure 7 The electronic device 7000 shown is for illustrative purposes only and is in no way intended to limit the present disclosure, its application, or uses.
[0099] <Readable Storage Medium Embodiment>
[0100] This embodiment provides a readable storage medium, in which executable commands are stored. When the executable commands are executed by a processor, the method described in any method embodiment of the present disclosure is executed.
[0101] The present invention may be a system, a method and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present invention.
[0102] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0103] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0104] The computer program instructions for performing the operation of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present invention.
[0105] Various aspects of the present invention are described herein with reference to the flow charts and / or block diagrams of the methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each box of the flow chart and / or block diagram and the combination of each box in the flow chart and / or block diagram can be implemented by computer-readable program instructions.
[0106] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0107] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0108] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present invention. In this regard, each box in the flow chart or block diagram can represent a part of a module, a program segment or an instruction, and a part of the module, a program segment or an instruction contains one or more executable instructions for realizing the specified logical function. In some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that it is equivalent to implement it by hardware, implement it by software, and implement it by combining software and hardware.
[0109] Embodiments of the present invention have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements in the marketplace, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the present invention is defined by the appended claims.
Claims
1. A cloud-based FPGA management and control system, characterized in that: include: Compute nodes, FPGA devices, and FaaS management and control devices that are connected by communication; The computing node includes an FPGA tool and a first interface module; the FPGA tool is used to generate an FPGA image file according to a user's FPGA image file compilation request; the first interface module is used to send an operation request to the FPGA device; The FPGA device includes a second interface module, an authentication module and an execution module; the second interface module is used to send an operation request to the authentication module; the authentication module is used to authenticate the operation request, and if the authentication passes, send an execution instruction to the execution module; the execution module is used to execute an operation corresponding to the operation request according to the execution instruction; The FaaS management and control device is used to burn flash to the FPGA device; The authentication module includes a download operation authentication unit. When the operation request is a download operation request, the download operation request includes the FPGA image file, and the download operation authentication unit is used to authenticate the FPGA image file.
2. The cloud-based FPGA management and control system according to claim 1, characterized in that: The authentication module also includes a read-write operation authentication unit and a burn-write operation authentication unit; In the case where the operation request is a read-write operation request, the read-write operation request at least includes a request address and a request content; the read-write operation authentication unit is used to determine whether the user has the operation authority corresponding to the request content according to the request address; In the case that the operation request is a programming operation request, the programming operation authentication unit authenticates the programming operation request.
3. The cloud-based FPGA management and control system according to claim 2, characterized in that: The download operation authentication unit is specifically used to: perform FPGA logic authentication on the FPGA image file, or perform management and control authentication and FPGA logic authentication on the FPGA image file.
4. The cloud-based FPGA management and control system according to claim 2, characterized in that: The burning operation authentication unit is specifically used to: determine that the authentication result of the burning operation request sent by the computing node is failure; and determine that the authentication result of the burning operation request sent by the FaaS management and control device is pass.
5. A cloud-based FPGA management and control method, applied to the cloud-based FPGA management and control system as claimed in any one of claims 1 to 4, characterized in that: include: Receive a download operation request sent by a user; The download operation request at least includes an FPGA image file generated by a user through an FPGA tool in a computing node; Authenticating the FPGA image file; If the authentication result is that the authentication is passed, the download operation is performed.
6. The method according to claim 5, characterized in that The authenticating the FPGA image file includes: Perform FPGA logic authentication on the FPGA image file.
7. The method according to claim 5, characterized in that The authenticating the FPGA image file includes: Perform management and control authentication and FPGA logic authentication on the FPGA image file.
8. The method according to claim 5, characterized in that The method further comprises: Receiving a read / write request from a user; the read / write request at least includes a request address and a request content; According to the request address, determining whether the user has the operation authority corresponding to the request content; Execute corresponding processing according to the judgment result.
9. The method according to claim 8, characterized in that The performing corresponding processing according to the judgment result includes: If the judgment result is that the user has the operation authority corresponding to the request content, perform the operation corresponding to the request content and return the first request response to the user; If the judgment result is that the user does not have the operation authority corresponding to the request content, a second request response is returned to the user.
10. An electronic device, wherein: include: A processor and a memory, wherein the memory is used to store instructions, and the instructions are used to control the processor to execute the method according to any one of claims 5 to 9.
11. A readable storage medium storing executable instructions, wherein when the executable instructions are executed by a processor, the method according to any one of claims 5 to 9 is executed.
12. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the method according to any one of claims 5 to 9 is implemented.
Citation Information
Patent Citations
An FPGA cloud host development method and system
CN109783118A
Access control for hardware resources
US10141026B1