WO2016127422A1 - System, device and method for processing data - Google Patents

System, device and method for processing data Download PDF

Info

Publication number
WO2016127422A1
WO2016127422A1 PCT/CN2015/073082 CN2015073082W WO2016127422A1 WO 2016127422 A1 WO2016127422 A1 WO 2016127422A1 CN 2015073082 W CN2015073082 W CN 2015073082W WO 2016127422 A1 WO2016127422 A1 WO 2016127422A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
fpga
node
configuration file
algorithm module
Prior art date
Application number
PCT/CN2015/073082
Other languages
French (fr)
Chinese (zh)
Inventor
庄良
梁文亮
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2015/073082 priority Critical patent/WO2016127422A1/en
Priority to CN201580072310.7A priority patent/CN107111662B/en
Publication of WO2016127422A1 publication Critical patent/WO2016127422A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Definitions

  • Embodiments of the present invention relate to the field of data processing and, more particularly, to systems, apparatus, and methods for processing data.
  • FPGA Field Programmable Gate Array
  • the typical FPGA program development process generally includes the following steps: establishing engineering, synthesis, mapping, place and route, and timing analysis. If the design result is correct and the timing analysis results meet the timing constraints, the configuration file can be generated; otherwise, if the design result is not If the correct or timing analysis results do not meet the timing constraints, the next iteration is required until the design requirements are fully met.
  • each FPGA node is independent of each other, and one FPGA node is responsible for the data plane and control plane of each algorithm module at the same time.
  • the capacity of FPGAs grows larger and the design becomes more complex, it takes ten minutes for a single compilation time and several hours for a long time.
  • you need to adjust the number of a certain algorithm module during the debugging process you need to re-complete the above steps to generate a new configuration file.
  • the FPGA program debugging will cost a lot. time. How to shorten the development cycle of FPGA is a technical problem to be solved in this field.
  • Embodiments of the present invention provide a system, apparatus, and method for processing data, which can shorten the program development cycle of the FPGA and reduce the complexity of FPGA program development.
  • an embodiment of the present invention provides a system for processing data, including: a general-purpose processor node and a plurality of field-editable gate array FPGA nodes, wherein the system is provided with a configuration file library, and the configuration file library Include corresponding to each of the plurality of FPGA nodes to One less configuration file, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module; the general processor node is configured to include, according to information of at least one target algorithm module, from the configuration file library Determining at least one target configuration file in a plurality of configuration files, wherein the target configuration file is configured to configure a target FPGA module in the plurality of FPGA nodes to implement the target algorithm module; the general purpose processor node is further configured to The target FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node; the target FPGA node is configured to receive the configuration message sent by the general-purpose processor node
  • the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
  • the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and the at least one target The target processing time of the algorithm module.
  • the general-purpose processor node is specifically configured to: determine at least one corresponding to the at least one target algorithm module from multiple configuration files included in the configuration file library a configuration file; a letter according to the at least one target algorithm module And determining the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module.
  • the general-purpose processor node is specifically configured to: determine at least one FPGA node that is available from the multiple FPGA nodes; and information according to the at least one target algorithm module And determining, by the plurality of configuration files included in the configuration file library, at least one target FPGA node from the at least one available FPGA node; determining, from the plurality of configuration files included in the configuration file library, the at least one target FPGA node and the The at least one target profile corresponding to the at least one target algorithm module.
  • the general-purpose processor node before determining at least one target configuration file from the multiple configuration files included in the configuration file library, is further configured to: input according to user Determining information of a plurality of required algorithm modules including the at least one target algorithm module; determining, by the plurality of required algorithm modules, the implementation by the plurality of FPGA nodes according to the information of the plurality of required algorithm modules The at least one target algorithm module, wherein an algorithm module other than the at least one target module of the plurality of required algorithm modules is implemented by the general purpose processor node.
  • the general-purpose processor node is further configured to: determine a calling sequence of the at least one target FPGA node; send a call message to the target FPGA node according to the calling sequence The call message is used to indicate that the target FPGA node processes the data to be processed by using the specified target algorithm module; the target FPGA node is further configured to: receive the call message sent by the general processor node, and wait for the call message according to the call message The data is processed for processing and the processing results are sent to the general purpose processor node.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node.
  • the call message carries the address information of the target FPGA node, the number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the general-purpose processor node is further configured to: send mode switching indication information to the first target FPGA node in the at least one target FPGA node, where the mode conversion The indication information is used to indicate that the first target FPGA node enters a power saving mode; or an FPGA node other than the at least one target FPGA node of the plurality of FPGA nodes is added to the at least one target FPGA node.
  • the configuration file library is stored in the general-purpose processor node; or the system further includes: a shared server, where the configuration file library is stored in the shared server
  • the general purpose processor node is further configured to obtain information of the plurality of configuration files included in the configuration file library from the shared server.
  • an apparatus for processing data for use in a system for processing data, the system being provided with a configuration file library including each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each of the FPGA nodes is configured to configure the FPGA node to implement an algorithm module, and the device includes: a determining unit, configured to use information according to the at least one target algorithm module, Determining at least one target configuration file from a plurality of configuration files included in the configuration file library, wherein the target configuration file is configured to configure a target FPGA module of the plurality of FPGA nodes to implement the target algorithm module; and a sending unit, configured to The at least one target FPGA node determined by the determining unit sends a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  • the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
  • the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
  • the information of the target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
  • the determining unit is specifically configured to: determine at least one configuration file corresponding to the at least one target algorithm module from multiple configuration files included in the configuration file library And determining, according to the information of the at least one target algorithm module, the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module.
  • the determining unit is specifically configured to: determine, from the multiple FPGA nodes, at least one FPGA node that is available; according to the information of the at least one target algorithm module and the Configuring a plurality of configuration files included in the file library, determining at least one target FPGA node from the at least one available FPGA node; determining, from the plurality of configuration files included in the configuration file library, the at least one target FPGA node and the at least one The at least one target configuration file corresponding to the target algorithm module.
  • the determining unit is further configured to: before determining at least one target configuration file from the plurality of configuration files included in the configuration file library, determine, according to user input, Information of a plurality of required algorithm modules including the at least one target algorithm module; determining, according to the information of the plurality of required algorithm modules, the at least one implemented by the plurality of FPGA nodes from the plurality of required algorithm modules a target algorithm module, wherein an algorithm module other than the at least one target module of the plurality of required algorithm modules is implemented by the general purpose processor node.
  • the determining unit is further configured to determine a calling order of the at least one target FPGA node; the sending unit is further configured to use the calling sequence determined by the determining unit, Sending a call message to the target FPGA node, the call message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module; the device further includes: a receiving unit, configured to receive the target FPGA node according to the sending unit The data processing result sent by the call message sent.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node.
  • the call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the sending unit is further configured to send mode switching indication information to the first target FPGA node in the at least one target FPGA node, where the mode switching indication information is used. Instructing the first target FPGA node to enter a power saving mode; or the determining unit is further configured to add an FPGA node other than the at least one target FPGA node to the at least one target FPGA node.
  • the method further includes: a storage unit, configured to store the configuration file library.
  • a configuration file library comprising each of a plurality of field editable gate array FPGA nodes
  • each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module
  • the device includes: a receiving unit, configured to receive a call sent by the general processor node a message, the call message is used to indicate that the FPGA node processes the data to be processed by using a target algorithm module, where the FPGA node is configured with a target configuration file for causing the FPGA node to implement the target algorithm module, and a processing unit is configured to The calling message received by the receiving unit processes the data to be processed to obtain a processing result, and the sending unit is configured to send the processing result obtained by the processing unit to the general-purpose processor node.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node; the call message
  • the address information of the target FPGA node, the number information of the adopted target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data are included.
  • the receiving unit before receiving the call message sent by the general-purpose processor node, the receiving unit is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is
  • the device is configured to: the target configuration file that is allocated by the general-purpose processor node to the FPGA node; the device further includes: an acquiring unit, configured to acquire the target configuration file according to the configuration message received by the receiving unit; The configuration operation is performed according to the target configuration file acquired by the obtaining unit.
  • the configuration message carries the target configuration file; the acquiring unit is specifically configured to obtain the target configuration file from the configuration message.
  • the configuration file library And the configuration message carries the indication information for indicating the target configuration file; the obtaining unit is specifically configured to be configured from the general-purpose processor node according to the indication information carried in the configuration message.
  • the target configuration file is obtained in the profile repository.
  • the target configuration file includes: algorithm module logic, configured to implement the target algorithm module; basic information logic, configured to describe the FPGA node and the target algorithm module Interface logic for implementing the interface function of the FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module The number of instances and the data processing performance of the FPGA node when implementing the target algorithm module.
  • the receiving unit is further configured to receive mode switching indication information sent by the general-purpose processor node, where the mode switching indication information is used to indicate that the FPGA node enters power saving.
  • the configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  • the idle configuration file includes: basic information logic for describing the FPGA node, and interface logic for implementing the FPGA node and the general processor node. Interface function of communication.
  • a method for processing data for use in a system for processing data, the system being provided with a configuration file library including each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module, and the method includes: according to information of at least one target algorithm module, from the configuration file library Determining at least one target configuration file among the plurality of configuration files, wherein the target configuration file is configured to configure a target FPGA node of the plurality of FPGA nodes to implement the target algorithm module; and send a configuration message to at least one target FPGA node, The configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  • the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems. At least one first configuration file corresponding to each algorithm module in the algorithm module, And different algorithm modules correspond to different first profiles.
  • the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
  • the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and the at least one target The target processing time of the algorithm module.
  • the determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library including: Determining, in the plurality of configuration files included in the configuration file library, at least one configuration file corresponding to the at least one target algorithm module; according to the information of the at least one target algorithm module, from at least one configuration file corresponding to the at least one target algorithm module Determine the at least one target profile.
  • the determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library including: Determining at least one FPGA node available among the plurality of FPGA nodes; determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library; The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  • the method further includes: determining, according to the user input, information of the plurality of required algorithm modules including the at least one target algorithm module; Determining, by the information of the required algorithm module, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the plurality of required algorithm modules are other than the at least one target module
  • the algorithm module is implemented by the general purpose processor node.
  • the method further includes: determining a calling order of the at least one target FPGA node; sending, according to the calling sequence, a call message to the target FPGA node, the calling message And is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module; and receives a data processing result sent by the target FPGA node according to the call message.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node.
  • the call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the method further includes: sending, to the first target FPGA node of the at least one target FPGA node, mode switching indication information, where the mode switching indication information is used. Instructing the first target FPGA node to enter a power saving mode; or adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
  • a configuration file library comprising each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to each FPGA node, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module
  • the method includes: receiving an invocation message sent by a general processor node, the invocation message Instructing the FPGA node to process the data to be processed by using the target algorithm module, wherein the FPGA node is configured with a target configuration file for causing the FPGA node to implement the target algorithm module; and processing the data to be processed according to the call message, Obtaining a processing result; transmitting the processing result to the general purpose processor node.
  • the target profile corresponds to the target algorithm module
  • the number of instantiations is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, and the target algorithm module used in the plurality of instantiations The number information in the target algorithm module and the data to be processed.
  • the method before the receiving the initiating message sent by the general-purpose processor node, the method further includes: receiving a configuration message sent by the general-purpose processor node, where the configuration message is used by And indicating the target configuration file allocated by the general-purpose processor node to the FPGA node; acquiring the target configuration file according to the configuration message; and performing a configuration operation of the target configuration file.
  • the configuration message carries the target configuration file
  • the acquiring the target configuration file according to the configuration message includes: obtaining the target configuration file from the configuration message. .
  • the configuration file library is set on the general-purpose processor node, and the configuration message carries indication information for indicating the target configuration file;
  • the message, the obtaining the target configuration file includes: obtaining the target configuration file from the configuration file library set by the general processor node according to the indication information carried in the configuration message.
  • the target configuration file includes: algorithm module logic, configured to implement the target algorithm module; basic information logic, configured to describe the FPGA node and the target algorithm module Interface logic for implementing the interface function of the FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module The number of instances and the data processing performance of the FPGA node when implementing the target algorithm module.
  • the method further includes: receiving mode switching indication information sent by the general processor node, where the mode switching indication information is used to indicate that the FPGA node enters a power saving mode. According to the mode conversion indication information, a configuration operation of the idle configuration file is not performed, and the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  • the idle configuration file includes: basic information logic, configured to describe the FPGA node; and interface logic, configured to implement the An interface function that the FPGA node communicates with the general purpose processor node.
  • a system, apparatus, and method for processing data provided by an embodiment of the present invention by setting a standard configuration file library, and a general-purpose processor node includes, according to information of at least one target algorithm module, from the configuration file library.
  • each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module
  • the general processor node is at least
  • Each target FPGA node in a target FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file allocated by the general-purpose processor node to the target FPGA node, and the target FPGA node performs a configuration operation according to the configuration message, Virtualizes FPGA node resources and translates the FPGA program development process into a general-purpose processor node program development process, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development, improving system performance and user experience.
  • FIG. 1 is a schematic block diagram of a system for processing data according to an embodiment of the present invention.
  • FIG. 2 is a configuration example of an algorithm module in a system for processing data according to an embodiment of the present invention.
  • FIG. 3 is a schematic block diagram of an example of a system for processing data according to an embodiment of the present invention.
  • FIG. 4 is a schematic block diagram of another example of a system for processing data according to an embodiment of the present invention.
  • FIG. 5 is a schematic block diagram of an apparatus for processing data according to an embodiment of the present invention.
  • FIG. 6 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
  • FIG. 7 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
  • FIG. 8 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
  • FIG. 9 is a schematic block diagram of a computing device according to an embodiment of the present invention.
  • FIG. 10 is a schematic flowchart of a method for processing data according to an embodiment of the present invention.
  • FIG. 11 is a schematic flowchart of a method for processing data according to another embodiment of the present invention.
  • GSM Global System of Mobile communication
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • GPRS General Packet Radio Service
  • LTE Long Term Evolution
  • FDD Frequency Division Duplex
  • TDD Time Division Duplex
  • UMTS Universal Mobile Telecommunication System
  • WiMAX Worldwide Interoperability for Microwave Access
  • FIG. 1 is a schematic block diagram of a system 100 for processing data in accordance with an embodiment of the present invention, which may be any system or device capable of processing data using general purpose processor nodes and FPGA nodes.
  • the system 100 for processing data is applied to the field of communication as an example.
  • the system 100 for processing data can also be applied to other fields, which is not limited by the embodiment of the present invention.
  • the system 100 for processing data includes: a general purpose processor node 110 and a plurality of FPGA nodes 120, wherein
  • the system 100 is provided with a configuration file library including at least one configuration file corresponding to each of the plurality of FPGA nodes 120, and each configuration file corresponding to each of the FPGA nodes 120 is used to configure the configuration file.
  • the FPGA node 120 implements an algorithm module
  • the general purpose processor node 110 is configured to determine at least one target configuration file from the plurality of configuration files included in the configuration file library according to the information of the at least one target algorithm module, where the target configuration file is used to configure the multiple FPGA nodes.
  • Target FPGA node 120 in 120 achieves the target Algorithm module
  • the general purpose processor node 110 is further configured to send a configuration message to the at least one target FPGA node 120, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node 120;
  • the target FPGA node 120 is configured to receive the configuration message sent by the general-purpose processor node 110, and perform a configuration operation according to the target configuration file indicated in the configuration message.
  • a system for processing data by setting a standard profile library, and a general-purpose processor node determining from a plurality of profiles included in the profile library according to information of at least one target algorithm module At least one target profile, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general processor node to the at least one target
  • Each target FPGA node in the FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file allocated by the general-purpose processor node to the target FPGA node, and the target FPGA node performs a configuration operation according to the configuration message, which can enable the FPGA
  • the node resources are virtualized, and the program development flow of the FPGA is converted into the program development flow of the general processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of the FPGA program development, improving the system performance and the user experience.
  • the general purpose processor node 110 can be directly or indirectly connected to each of the plurality of FPGA nodes 120, for example, the general purpose processor node 110 can communicate with the switch Each of the FPGA nodes 120 is connected.
  • the general purpose processor node 110 can form a cluster of nodes with the plurality of FPGA nodes 120.
  • the control plane and the data plane of the node cluster may be separated, wherein the general-purpose processor node 110 may implement a control plane of the node cluster for managing and controlling the algorithm modules implemented by the multiple FPGA nodes 120.
  • the FPGA node 120 can implement the data plane of the node cluster for implementing one or more algorithm modules under the control of the general-purpose processor node 110, but the embodiment of the present invention is not limited thereto.
  • the general-purpose processor node may be an x86, an ARM (Acorn RISC machine), a MIPS or a PowerPC, and the like, which is not limited by the embodiment of the present invention.
  • the system 100 for processing data may be provided with a standard configuration file library, which may include a plurality of configuration files, wherein each of the plurality of configuration files may be used only for configuring one FPGA node.
  • An algorithm module is implemented, and at least one configuration file corresponding to each of the plurality of FPGA nodes may be included in the plurality of configuration files.
  • a configuration file corresponding to the FPGA node can be used to configure the FPGA node to implement a
  • the algorithm module is configured to configure the resource of the FPGA node as the algorithm module, so that the FPGA node can implement an algorithm corresponding to the algorithm module.
  • the multiple configuration files may be obtained through an existing program development process, for example, by establishing steps of engineering, synthesis, mapping, place and route, and timing analysis, but the embodiment of the present invention is not limited thereto.
  • the FPGA program development may be implemented by a process similar to the development of a general-purpose processing program.
  • the algorithm module implemented by the FPGA node may be standardized and reused, and may be used during use.
  • a call function in a general-purpose processor node it is no longer necessary to perform FPGA program development through the existing process, thereby greatly reducing the complexity of FPGA node program development and improving program development efficiency.
  • the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files, where The configuration file corresponding to an algorithm module is used to configure the FPGA node to implement the algorithm module.
  • each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
  • the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm module being different from the second An algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
  • the configuration file in the configuration file library can be used to configure one type of FPGA node, ie, the same type of FPGA node corresponds to the same configuration file for the same algorithm module parameter.
  • the configuration file library further includes a plurality of second configuration files corresponding to the second FPGA nodes of the plurality of FPGA nodes, wherein the first FPGA node and the second FPGA node have different types and are the same.
  • the at least one first configuration file corresponding to the algorithm module is different from the at least one second configuration file.
  • the plurality of FPGA nodes have different types, wherein the plurality of FPGA nodes Two FPGA nodes of the same type corresponding to the same configuration file when implementing the same algorithm module, and two FPGA nodes having different types of the plurality of FPGA nodes corresponding to different algorithm files when implementing the same algorithm module.
  • a plurality of algorithm modules usable by the system and different types of FPGA nodes included in the plurality of FPGA nodes may be arbitrarily combined, the profile library may include at least corresponding to each combination of all combinations A configuration file.
  • An example of a configuration file library is shown in Table 1, where the type of FPGA node can be determined by the manufacturer and model of the FPGA node.
  • the three parameters of the type of the FPGA node, the type of the algorithm module, and the number of the instance of the algorithm module may determine a unique configuration file, but the embodiment of the present invention is not limited thereto.
  • the various algorithms that can be used in the system may be specific to all algorithms of the communication system, all algorithms in the field of image processing, or all algorithms in the field of big data, which are not limited by the embodiments of the present invention.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing the interface function of the target FPGA node to communicate with the general purpose processor node 110.
  • the general purpose processor node 110 can communicate with the target FPGA node based on the interface logic, such as data delivery, receiving processing results, and the like.
  • the basic information logic may include information for describing the target FPGA node and the target algorithm module of the target profile configuration, wherein the information of the target FPGA node may include any information capable of indicating the type of the target FPGA node, for example, The manufacturer of the target FPGA node and the model of the target FPGA node, but the embodiment of the present invention is not limited thereto.
  • the information of the target algorithm module may include a name of the target algorithm module, an instance number of the target algorithm module, and the target FPGA node implements the foregoing number
  • the processing performance of the target algorithm module for example, processing delay, processing precision, and the like, the embodiment of the present invention is not limited thereto.
  • the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
  • the profile repository can be stored in the general purpose processor node 110.
  • the general purpose processor node 110 can directly query the stored profile library.
  • the profile repository can be stored on other nodes in the system.
  • the system 100 also includes a shared server and the profile repository is stored in the shared server.
  • the general-purpose processor node 110 may query the configuration file library stored in the shared server through a communication interface with the shared server, and determine the at least one target configuration file according to the query result.
  • the general-purpose processor node 110 may send a query message to the shared server, where the query message may carry information of the at least one target algorithm module, for example, identification information of the at least one target algorithm module, or further carry the multiple The mode information of the FPGA node or the information of the FPGA node in the power saving mode among the plurality of FPGA nodes, the embodiment of the present invention is not limited thereto.
  • the shared server may determine the at least one target configuration file according to the request message, and send a query response to the general-purpose processor node 110, where the query response carries the at least one target configuration file. Instructions or carry the at least one target profile.
  • the general-purpose processor node 110 may determine the at least one target configuration file according to the query response, and the embodiment of the present invention is not limited thereto.
  • the sharing server may determine, according to information of the at least one target algorithm module carried in the query message, information about a configuration file corresponding to the at least one target algorithm module. And transmitting, to the general-purpose processor node 110, at least one configuration file corresponding to the at least one target algorithm module, wherein a configuration file corresponding to the at least one target algorithm module may be used to configure the FPGA node to implement the target algorithm module.
  • the general-purpose processor node 110 may receive the indication information sent by the shared server for indicating at least one configuration file corresponding to the at least one target algorithm module, and determine the at least one target configuration file according to the indication information.
  • the general-purpose processor node 110 may be configured according to information of the at least one target algorithm module and a specific criterion, such as speed priority or resource priority, from at least one configuration file corresponding to the at least one target algorithm module indicated by the indication information. Determine the at least one target profile. For example, according to the at least one target algorithm module The target number and the target calculation time determine the at least one target profile, but the embodiment of the present invention is not limited thereto.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
  • the information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
  • the general purpose processor node 110 may determine, according to information of the at least one target algorithm module, at least one target FPGA node implementing the at least one target algorithm module and a corresponding target configuration file.
  • the determining, by the general-purpose processor node 110, the at least one target configuration file from the plurality of configuration files included in the configuration file library may include:
  • the general purpose processor node 110 determines at least one configuration file corresponding to the target algorithm module from the plurality of configuration files;
  • the general purpose processor node 110 determines the target configuration file from at least one configuration file corresponding to the target algorithm module according to the information of the target algorithm module.
  • the general purpose processor node 110 may first determine at least one configuration file corresponding to the at least one target algorithm module, and determine at least one at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
  • a target configuration file if the number of the FPGA nodes corresponding to the at least one target configuration file is multiple, the general-purpose processor node 110 may be from a plurality of FPGA nodes corresponding to the at least one target configuration file according to a certain standard. Determining at least one target FPGA node, the standard may be randomly selected, or selecting a corresponding one of a plurality of FPGA nodes in a power saving mode, and the like.
  • the general-purpose processor node 110 may determine the FPGA node corresponding to the at least one target configuration file as the target FPGA node, but the embodiment of the present invention is not limited thereto. .
  • the general purpose processor node 110 may further determine the at least one target configuration file and the at least one target FPGA node according to the current mode of the plurality of FPGA nodes and the information of the at least one target algorithm module. Accordingly, the general purpose processor node 110 is specifically configured to:
  • the at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  • the general purpose processor node 110 can determine a current mode of each of the plurality of FPGA nodes 120.
  • An FPGA node can currently have one of two modes: a power saving mode and a working mode, wherein, in the province
  • the electrical mode FPGA node is not configured with a configuration file or is configured with a configuration file that is not used to implement any valid algorithm module.
  • the FPGA node in the working mode is configured with a configuration file for implementing an effective algorithm module.
  • the general-purpose processor node 110 may determine the FPGA node currently in the power-saving mode among the plurality of FPGA nodes as an available FPGA node, but the embodiment of the present invention is not limited thereto.
  • the general purpose processor node 110 can determine at least one configuration file corresponding to the available at least one FPGA node and the at least one target algorithm module, and based on the basic information logic in the at least one configuration file and the at least one target algorithm module
  • the performance requirement information determines at least one target FPGA node and a corresponding target configuration file from the at least one available FPGA node, but the embodiment of the present invention is not limited thereto.
  • the at least one target algorithm module and its target calculation time are specifically: 28 antennas ⁇ 14 Fast Fourier Transformation (FFT) modules, the target calculation time is 100 ⁇ s; 6 antennas ⁇ 13 turbo modules, targets The calculation time is 50 ⁇ s.
  • the general-purpose processor node 110 may determine a plurality of configuration files corresponding to the FFT module included in the configuration file library, and according to the current mode of the multiple FPGA nodes, the multiple configuration files corresponding to the FFT module, and the FFT module.
  • the target number and target calculation time it is determined that the 28 ⁇ 14 FFT modules are implemented by three FPGA nodes, and a target configuration file for configuring the FPGA node to implement the FFT module is sent to each of the three FPGA nodes.
  • the general-purpose processor node 110 may determine a plurality of configuration files corresponding to the turbo module included in the configuration file library, and according to the current mode of the multiple FPGA nodes, multiple configuration files corresponding to the turbo module, and the turbo module.
  • the target number and the target calculation time are determined to implement the 6 ⁇ 13 turbo modules by using two FPGA nodes, and a target configuration file for configuring the FPGA node to implement the turbo module is sent to each of the two FPGA nodes.
  • the at least one target algorithm module may include at least two different types of algorithm modules, and at this time, the general-purpose processor node 110 may determine at least two target FPGA nodes from the plurality of FPGA nodes 120. Where the at least two target FPGA nodes are Each FPGA target node is used to implement one of the at least two different types of algorithm modules.
  • a target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
  • the general purpose processor node 110 can also be used to determine information for the at least one target algorithm module prior to determining the at least one target configuration file.
  • the general purpose processor node 110 can determine information of the at least one target algorithm module based on user input.
  • the user input can be specifically an instruction input by the user or an executable program input by the user to the general purpose processor node, the user input can indicate information of the algorithm module required by at least one user.
  • the algorithm modules required by the at least one user may all be implemented by the FPGA node.
  • the general-purpose processor node 110 may determine at least one required algorithm module as the at least one target algorithm module.
  • the number of the at least one required algorithm module is multiple. At this time, the general-purpose processor node 110 may determine a part of the plurality of required algorithm modules as the target algorithm module implemented by the FPGA node. And another portion of the algorithm module is implemented by the general purpose processor node 110.
  • the general-purpose processor node 110 determines at least one target configuration file from the plurality of configuration files included in the configuration file library, the general-purpose processor node 110 is further configured to:
  • the plurality of required algorithm modules may be composed of the at least one target algorithm module and at least one other algorithm module, wherein the at least one target algorithm module is implemented by the FPGA node 120, and the at least one other algorithm module is configured by a general purpose processor Node 110 is implemented and the other algorithm modules can be of a different kind than the at least one target algorithm module.
  • the general purpose processor node 110 can determine the at least one target algorithm module in a variety of ways. Specifically, the general purpose processor node 110 can determine the at least one target algorithm module using a power consumption minimum principle.
  • the general-purpose processor node 110 can Determining the FFT algorithm module as a target algorithm module such that the FFT module is at the FPGA node Implemented on.
  • the general purpose processor node 110 can also determine the at least one target algorithm module using a computation time optimal strategy.
  • the general-purpose processor node 110 can determine the FFT algorithm module as The at least one target algorithm module is such that the FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
  • the plurality of required algorithm modules include one algorithm 1 module, three algorithm 2 modules, one algorithm 3 module, one algorithm 4 module, two algorithm 5 modules, and three algorithms. 6 modules.
  • the general purpose processor node 110 determines that the algorithm 1 module, the algorithm 3 module, and the algorithm 4 module are implemented by the general purpose processor node 110 itself, and the algorithm 2 module, the algorithm 5 module, and the algorithm 6 module are implemented by the FPGA node.
  • the algorithm 1-6 may be a Transport Block Cyclic Redundancy Check (TB-CRC) and a Code Block Cyclic Redundancy Check (CB-CRC), respectively.
  • QAM Quantized Amplitude Modulation
  • DMRS Demodulation Reference Signal
  • PDSCH Physical Downlink Shared Channel
  • RSVP Resource Element Map
  • Re-Map Resource Element Map
  • BF Beamforming
  • RS Reference Signal
  • FFT Fast Fourier Transformation
  • the general purpose processor node 110 may send a configuration message to each of the at least one target PFGA node, the configuration message may carry indication information indicating a target configuration file allocated for the target FPGA node, or be carried as The target profile assigned by the target FPGA node.
  • each target FPGA node may acquire the target configuration file according to the configuration message, and perform a configuration operation for the target configuration file.
  • the number of the target algorithm modules instantiated in the target FPGA node is equal to the number of instantiations described in the basic information logic of the target configuration file, and the target FPGA node is in the target FPGA node.
  • the instantiated multiple target algorithm modules are numbered sequentially.
  • the target FPGA node is in the working mode, and the logic resources required by the target FPGA node are used.
  • the target FPGA node when the data to be processed sent by the general-purpose processor node 110 is not received, the target FPGA node only implements “basic information logic” and “interface logic”, and other logic resources will not be used to reduce the performance of the FPGA node. Consumption, wherein the other logical resources include but are not limited to: Bram, Slice, DSP, DCM, DLL, and the like.
  • the general processing The node node 110 is also used to:
  • the call message is used to indicate that the target FPGA node processes the data to be processed by using the specified target algorithm module.
  • the target FPGA node is further configured to: receive the call message sent by the general-purpose processor node 110, process the processed data according to the call message, and send the processing result to the general-purpose processor node.
  • the general purpose processor node 110 can determine the calling order of the at least one target FPGA node according to the user input and the target algorithm module respectively implemented by the at least one FPGA node, and invoke the at least one target FPGA node according to the order.
  • the general purpose processor node 110 invokes a target one of the at least one target FPGA node
  • the general purpose processor node 110 may send an invocation message to the target FPGA node, the invocation message may be used to indicate the target FPGA node.
  • the data to be processed is processed by using a specified target algorithm module in a plurality of instantiated target algorithm modules.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node.
  • the invocation message carries the address information of the target FPGA node, the number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the target FPGA node may process the to-be-processed data by using the target algorithm module corresponding to the number information carried in the call message, and return the processing result to the general-purpose processor node 110.
  • the call message may be implemented in the form of a call function, wherein the call function may have the following form: Func fft (dst IP, src IP, fft module num, data), where fft() Represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP represents the address of the source node (ie, the general processor node), fft module num represents the number of the calling fft module, and data represents the data to be processed.
  • the call function may have the following form: Func fft (dst IP, src IP, fft module num, data), where fft() Represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP represents the address of the source node (ie, the general processor node), fft module num represents the number of the calling f
  • each FPGA node 120 is instantiated with multiple FFT modules.
  • Seven FPGA nodes 120 are used to implement turbo modules, and each turbo node can be instantiated with multiple turbo modules.
  • the general purpose processor node 110 can send an invocation message through the switch, which instructs which FPGA node is called and which algorithm module on the FPGA node is invoked, but the embodiment of the present invention is not limited thereto.
  • the general purpose processor node 110 is further configured to:
  • the mode transition indication information is used to indicate that the first target FPGA node enters a power saving mode
  • the above described node resource configuration function of the general purpose processor node 110 can be implemented by a resource management module in the general purpose processor node 110.
  • the general purpose processor node 110 may determine that FPGA node resources need to be released during initialization or during data processing to save FPGA resources. Specifically, when the general purpose processor node determines that the FPGA node resource needs to be released (for example, releasing the first target FPGA node), the general purpose processor node may configure the mode of the first target FPGA node from the working mode to the power saving mode.
  • the control module in the general-purpose processor node may send a resource release message to the resource management module, where the resource release message may be implemented in the form of a resource release function delete_FPGA_card (IP_addr), where IP_addr represents the address of the released FPGA node.
  • IP_addr resource release function delete_FPGA_card
  • the general-purpose processor node may send, to the first target FPGA node, mode conversion indication information for indicating that the first target FPGA node enters a power saving mode,
  • the first target FPGA node may acquire an idle configuration file that is not used to configure the first target FPGA node to implement any valid algorithm module, and perform a configuration operation for the idle configuration file.
  • the first target FPGA node may be in the power saving mode, but the embodiment of the present invention is not limited thereto.
  • the general purpose processor node may also request new FPGA node resources during data processing.
  • the general purpose processor node may determine the second target FPGA node from the at least one FPGA node in the power saving mode, and add the second target FPGA node to the at least one target FPGA node.
  • the general-purpose processor node 110 may determine a configuration file corresponding to the second target FPGA node, and send the corresponding configuration file to the second target FPGA node.
  • the control module of the general-purpose processor node 110 may send a resource request message to the resource management module, and the resource request message may be implemented in the form of a resource request function create_FPGA_card (algorithm module name, number of algorithm modules, calculation time).
  • the resource management module may determine the second target FPGA node according to the resource request message, and send a resource request response carrying the information of the second target FPGA node to the control module, but the embodiment of the present invention is not limited thereto.
  • the system 100 can include a plurality of general purpose processor nodes and a plurality of FPGA nodes.
  • the system for processing data 100 may include a general-purpose processor nodes M 1, M 2 th FPGA nodes and switches, M 1 and M 2 are integers greater than 1, wherein the M 1 th each general purpose processor, a general purpose processor node node may communicate with node M 2 th FPGA FPGA some or all nodes, each node of the FPGA FPGA M 2 th node M 1 may be the general purpose processor nodes Some or all of the general purpose processor nodes in the communication.
  • the system 100 can communicate by using 10Gigabit Ethernet (10GE) or infiniband network, but the embodiment of the present invention is not limited thereto.
  • Each of the general-purpose processor node M 1 in the general-purpose processor nodes may be stored in the profile database, which profile database may include a plurality of profiles each FPGA M 2 th node of the node corresponding to the FPGA, wherein Multiple configuration files corresponding to the same FPGA node may be used to configure a plurality of different algorithm modules available to the FPGA node implementation system, and each configuration file is used to configure the FPGA node to implement an algorithm module, but the present invention The embodiment is not limited to this.
  • FIG. 2 to FIG. 4 are intended to assist those skilled in the art to better understand the embodiments of the present invention and are not intended to limit the scope of the embodiments of the present invention.
  • a person skilled in the art will be able to make various modifications and changes in accordance with the examples of FIG. 2 to FIG. 4, and such modifications or variations are also within the scope of the embodiments of the present invention.
  • a system for processing data by setting a standard profile library, and a general-purpose processor node determining from a plurality of profiles included in the profile library according to information of at least one target algorithm module At least one target profile, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node to each of the at least one target FPGA node
  • the target FPGA node sends a configuration message indicating the target configuration file corresponding to the target FPGA node, which can virtualize the FPGA node resources, and convert the FPGA program development process into a program development process of the general processor node, thereby shortening the FPGA
  • the program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • FIG. 5 is a schematic diagram of an apparatus 200 for processing data according to an embodiment of the present invention.
  • the apparatus 200 is applied to a system for processing data.
  • the system is provided with a configuration file library, and the configuration file library includes multiple sites. At least one configuration file corresponding to each FPGA node in the gate array FPGA node may be edited, and each configuration file corresponding to each FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the apparatus 200 includes:
  • the determining unit 210 is configured to determine, according to the information of the at least one target algorithm module, at least one target configuration file from the plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the plurality of FPGA nodes.
  • the target FPGA node implements the target algorithm module;
  • the sending unit 220 is configured to send, to the at least one target FPGA node determined by the determining unit 210, a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  • an apparatus for processing data determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file
  • Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module
  • the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to
  • the configuration message of the target profile can virtualize the FPGA node resources and convert the FPGA program development process into the program development flow of the general processor node, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development. Improve system performance and user experience.
  • the configuration file library may include multiple configuration files, wherein each of the multiple configuration files may be used only for configuring one FPGA node to implement an algorithm module, and the multiple At least one configuration file corresponding to each of the plurality of FPGA nodes may be included in the configuration file.
  • the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files.
  • the configuration file corresponding to an algorithm module is used to configure an FPGA node to implement the algorithm module.
  • each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
  • the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm module being different from the second An algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
  • the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
  • the algorithm in the configuration file library may be an algorithm of the communication system, an algorithm in the field of image processing, or an algorithm in the field of big data, which is not limited by the embodiment of the present invention.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
  • the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
  • the profile repository can be stored in the device 200.
  • the device 200 may further include a storage unit for storing the configuration file library.
  • the determining unit 210 may determine the at least one target configuration file by querying the configuration file library stored by the storage unit.
  • the profile repository can be stored in other nodes, such as a shared server, and the like. At this time, the determining unit 210 may determine the at least one target configuration file by querying the configuration file library stored in the shared server.
  • the determining unit 210 may include a sending subunit, a receiving subunit, and a determining subunit, where the sending subunit may be configured to send a query message to the shared server, where the query message may carry information of the at least one target algorithm module.
  • the identity of the at least one target algorithm module The information, or further carrying the mode information of the multiple FPGA nodes or the information of the FPGA nodes in the power saving mode among the plurality of FPGA nodes, the embodiment of the present invention is not limited thereto.
  • the shared server may determine the at least one target configuration file according to the request message, and send a query response to the device 200, where the query response carries indication information indicating the at least one target configuration file.
  • the receiving subunit may receive the query response sent by the shared server, and the determining subunit may determine the at least one target configuration file according to the query response received by the receiving subunit, and the embodiment of the present invention is not limited thereto.
  • the sharing server may determine, according to the information of the at least one target algorithm module carried in the query message, the at least one target algorithm module. Corresponding configuration file information, and sending at least one configuration file corresponding to the at least one target algorithm module to the device 200, where the configuration file corresponding to the at least one target algorithm module can be used to configure the FPGA node to implement the target algorithm Module.
  • the receiving subunit may receive indication information that is sent by the sharing server to indicate at least one configuration file corresponding to the at least one target algorithm module, and the determining subunit may be configured according to the indication information received by the receiving subunit. Determine the at least one target profile.
  • the determining subunit may determine, according to the information of the at least one target algorithm module and a specific criterion, such as speed priority or resource priority, from the at least one configuration file corresponding to the at least one target algorithm module indicated by the indication information.
  • a specific criterion such as speed priority or resource priority
  • the at least one target profile is determined according to the target number of the at least one target algorithm module and the target calculation time, but the embodiment of the present invention is not limited thereto.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
  • the information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
  • the determining unit 210 is specifically configured to:
  • the determining unit 210 may determine at least one target configuration file corresponding to the at least one target algorithm module according to the current mode of the multiple FPGA nodes. At this time, the determining unit 210 is specifically configured to:
  • the at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  • the at least one target algorithm module may include at least two different types of algorithm modules.
  • the determining unit 210 may determine at least two target FPGA nodes from the plurality of FPGA nodes, where Each of the at least two target FPGA nodes is configured to implement one of the at least two different types of algorithm modules.
  • a target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
  • the determining unit 210 is further configured to:
  • the determining unit 210 can determine the at least one target algorithm module in a plurality of manners. Specifically, the determining unit 210 may determine the at least one target algorithm module by using a power consumption minimum principle. For example, in a scenario where the power consumption limitation is high, if the FFT algorithm is implemented in the FPGA, the calculation time is long, but the power consumption of the FPGA node when implementing the FFT algorithm is lower than that of the general-purpose processor, the determining unit 210 may perform the FFT.
  • the algorithm module is determined to be a target algorithm module such that the FFT module is implemented on the FPGA node.
  • the determining unit 210 may also determine the at least one target algorithm module by using a calculation time optimal strategy.
  • the determining unit 210 may determine the FFT algorithm module as the at least one target.
  • Algorithm module to make The FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
  • the apparatus 200 can also determine the calling order of the at least one target FPGA node and invoke the at least one target FPGA node in accordance with the order.
  • the determining unit 210 is further configured to determine a calling order of the at least one target FPGA node;
  • the sending unit 220 is further configured to send, according to the calling sequence determined by the determining unit 210, a call message to the target FPGA node, where the call message is used to instruct the target FPGA node to process the data to be processed by using the specified target algorithm module.
  • the apparatus 200 further includes: a receiving unit, configured to receive a data processing result sent by the target FPGA node according to the call message sent by the sending unit 220.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the call message can be implemented by calling the function Func fft(dst IP, src IP, fft module num, data), where fft() represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP Indicates the address of the source node (ie, the general-purpose processor node), the fft module num indicates the number of the called fft module, and the data indicates the data to be processed, but the embodiment of the present invention is not limited thereto.
  • the sending unit 220 is further configured to send, to the first target FPGA node of the at least one target FPGA node, mode switching indication information, where the mode switching indication information is used to indicate that the first target FPGA node enters Power saving mode; or
  • the determining unit 210 is further configured to add an FPGA node other than the at least one target FPGA node to the at least one target FPGA node.
  • the apparatus 200 provided by the embodiments of the present invention may correspond to the general-purpose processor node 110 in a system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 200 may be used to implement a general-purpose processor.
  • the function of the node 110 is not described here for brevity.
  • an apparatus for processing data determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file
  • Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module
  • the general purpose processor node sends to each of the at least one target FPGA node to indicate the target FPGA section
  • the configuration message of the target configuration file corresponding to the point can virtualize the FPGA node resources and convert the program development flow of the FPGA into the program development process of the general processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of the FPGA program development. Degrees to improve system performance and user experience.
  • FIG. 6 shows an apparatus 300 for processing data provided by another embodiment of the present invention.
  • the apparatus 300 is applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each of the Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the apparatus 300 includes:
  • the receiving unit 310 is configured to receive a call message sent by the general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured to enable the FPGA node to achieve the target The target configuration file of the algorithm module;
  • the processing unit 320 is configured to process the to-be-processed data according to the call message received by the receiving unit 310 to obtain a processing result.
  • the sending unit 330 is configured to send the processing result obtained by the processing unit 320 to the general-purpose processor node.
  • an apparatus for processing data configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose
  • the call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • the FPGA node is configured with a target configuration file for causing the FPGA node to implement a target algorithm module.
  • a target algorithm module having the same type may be instantiated in the FPGA node, wherein the plurality of the target algorithm modules of the instantiation are sequentially numbered.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the receiving unit 310 before receiving the call message sent by the general-purpose processor node, is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the general-purpose processor.
  • An obtaining unit configured to acquire the target configuration file according to the configuration message received by the receiving unit 310;
  • a configuration unit configured to perform a configuration operation according to the target configuration file acquired by the acquiring unit.
  • the configuration message carries the target configuration file.
  • the obtaining unit is specifically configured to obtain the target configuration file from the configuration message.
  • the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile.
  • the obtaining unit is specifically configured to obtain the target configuration file from the configuration file library set by the general-purpose processor node according to the indication information carried in the configuration message.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the FPGA node. Data processing performance when implementing the target algorithm module.
  • the receiving unit 310 is further configured to receive the mode switching indication information sent by the general-purpose processor node, where the mode switching indication information is used to indicate that the FPGA node enters a power saving mode;
  • the configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  • the idle configuration file includes:
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • the apparatus 300 provided by the embodiments of the present invention may correspond to the target FPGA node 120 in the system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 300 may be used to implement the target FPGA node 120.
  • the function, for the sake of brevity, will not be repeated here.
  • an apparatus for processing data configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose
  • the call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • FIG. 7 is a schematic diagram of an apparatus 400 for processing data according to an embodiment of the present invention.
  • the apparatus 400 is applied to a system for processing data, and the system is provided with a configuration file library, and the configuration file library includes a plurality of sites. At least one configuration file corresponding to each FPGA node in the gate array FPGA node may be edited, and each configuration file corresponding to each FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the apparatus 400 includes:
  • the processor 410 is configured to determine, according to the information of the at least one target algorithm module, at least one target configuration file from the plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the plurality of FPGA nodes.
  • the target FPGA node implements the target algorithm module;
  • the transmitter 420 is configured to send, to the at least one target FPGA node determined by the processor 410, a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  • an apparatus for processing data determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file
  • Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module
  • the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to
  • the configuration message of the target profile can virtualize the FPGA node resources and convert the FPGA program development process into the program development flow of the general processor node, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development. Improve system performance and user experience.
  • the processor 410 may be a central processing unit (“CPU"), and the processor 410 may also be other general-purpose processors. Digital signal processor (DSP), application specific integrated circuit (ASIC) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the apparatus 400 for processing data may also include a memory, which may include read only memory and random access memory, and provides instructions and data to the processor 410.
  • a portion of the memory may also include a non-volatile random access memory.
  • the memory can also store information of the device type.
  • each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 410 or an instruction in a form of software.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory, and the processor 410 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
  • the configuration file library may include a plurality of configuration files, wherein each of the plurality of configuration files may be used only for configuring one FPGA node to implement an algorithm module, and the plurality of configuration files may include At least one configuration file corresponding to each of the plurality of FPGA nodes.
  • the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files, where The configuration file corresponding to an algorithm module is used to configure the FPGA node to implement the algorithm module.
  • each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
  • the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm mode The block is different from the second algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
  • the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
  • the algorithm in the configuration file library may be an algorithm of the communication system, an algorithm in the field of image processing, or an algorithm in the field of big data, which is not limited by the embodiment of the present invention.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
  • the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
  • the profile repository can be stored in the device 400.
  • the apparatus 400 may further include a memory for storing the configuration file library, and correspondingly, the processor 410 may determine the at least one target configuration file by querying the configuration file library stored in the memory.
  • the profile repository can be stored in other nodes, such as a shared server, and the like. At this time, the processor 410 may determine the at least one target configuration file by querying the configuration file library stored in the shared server.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
  • the information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
  • the processor 410 is specifically configured to:
  • the at least one target profile is determined in at least one of the configuration files.
  • the processor 410 may determine at least one target configuration file corresponding to the at least one target algorithm module according to the current mode of the plurality of FPGA nodes. At this time, the processor 410 is specifically configured to:
  • the at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  • the at least one target algorithm module may include at least two different types of algorithm modules.
  • the processor 410 may determine at least two target FPGA nodes from the plurality of FPGA nodes, where Each of the at least two target FPGA nodes is configured to implement one of the at least two different types of algorithm modules.
  • a target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
  • processor 410 is further configured to:
  • the processor 410 can determine the at least one target algorithm module in a variety of ways. Specifically, the processor 410 may determine the at least one target algorithm module by using a power consumption minimum principle. For example, in a scenario where the power consumption limitation is high, if the FFT algorithm is implemented in the FPGA, the calculation time is long, but the power consumption of the FPGA node when implementing the FFT algorithm is lower than that of the general-purpose processor, the processor 410 can perform the FFT.
  • the algorithm module is determined to be a target algorithm module such that the FFT module is implemented on the FPGA node.
  • the processor 410 can also determine the at least one target algorithm module using a computation time optimal strategy.
  • the location The processor 410 may determine the FFT algorithm module as the at least one target algorithm module, so that the FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
  • the processor 410 can also determine the calling order of the at least one target FPGA node and invoke the at least one target FPGA node in accordance with the order. At this time, the processor 410 is further configured to determine a calling order of the at least one target FPGA node;
  • the transmitter 420 is further configured to send, according to the calling sequence determined by the processor 410, a call message to the target FPGA node, where the call message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module.
  • the apparatus 400 further includes: a receiver, configured to receive a data processing result sent by the target FPGA node according to the call message sent by the transmitter 420.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the call message can be implemented by calling the function Func fft(dst IP, src IP, fft module num, data), where fft() represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP Indicates the address of the source node (ie, the general-purpose processor node), the fft module num indicates the number of the called fft module, and the data indicates the data to be processed, but the embodiment of the present invention is not limited thereto.
  • the transmitter 420 is further configured to send mode transition indication information to the first target FPGA node of the at least one target FPGA node, where the mode transition indication information is used to indicate that the first target FPGA node enters Power saving mode; or
  • the processor 410 is further configured to add an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
  • the apparatus 400 provided by the embodiments of the present invention may correspond to the general-purpose processor node 110 in a system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 400 may be used to implement a general-purpose processor.
  • the function of the node 110 is not described here for brevity.
  • an apparatus for processing data determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file Each target profile in the file is used to configure a target FPGA node to implement a target algorithm module, and the general processor node is at least Each target FPGA node in a target FPGA node sends a configuration message indicating a target profile corresponding to the target FPGA node, which can virtualize the FPGA node resources and convert the FPGA program development process into a general-purpose processor node. Program development process to shorten the FPGA development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • FIG. 8 illustrates an apparatus 500 for processing data provided by another embodiment of the present invention.
  • the apparatus 500 is applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each of the Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the apparatus 500 includes:
  • the receiver 510 is configured to receive a call message sent by the general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured to enable the FPGA node to achieve the target The target configuration file of the algorithm module;
  • the processor 520 is configured to process the to-be-processed data according to the call message received by the receiver 510 to obtain a processing result.
  • the transmitter 530 is configured to send the processing result obtained by the processor 520 to the general-purpose processor node.
  • an apparatus for processing data configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose
  • the call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • the processor 520 may be an FPGA.
  • the apparatus 500 for processing data can also include a memory, which can include read only memory and random access memory, and provides instructions and data to the processor 520.
  • a portion of the memory may also include a non-volatile random access memory.
  • the memory can also store information of the device type.
  • each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 520 or an instruction in a form of software.
  • the steps of the method disclosed in connection with the embodiments of the present invention can be directly implemented as a hardware processor or completed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory, and the processor 520 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
  • the FPGA node is configured with a target configuration file for causing the FPGA node to implement a target algorithm module.
  • a target algorithm module having the same type may be instantiated in the FPGA node, wherein the plurality of the target algorithm modules of the instantiation are sequentially numbered.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the receiver 510 before receiving the call message sent by the general-purpose processor node, the receiver 510 is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the general-purpose processor.
  • the processor 520 is configured to acquire the target configuration file according to the indication information received by the receiver 510, and perform a configuration operation according to the target configuration file.
  • the configuration message carries the target configuration file.
  • the processor 520 is specifically configured to obtain the target configuration file from the configuration message.
  • the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile.
  • the processor 520 is specifically configured to obtain the target configuration file from the configuration file library set by the general processor node according to the configuration message.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the FPGA node. Data processing performance when implementing the target algorithm module.
  • the receiver 510 is further configured to receive mode conversion indication information sent by the general-purpose processor node, where the mode conversion indication information is used to indicate that the FPGA node enters a power-saving mode;
  • the configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  • the idle configuration file includes:
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • Apparatus 500 provided by an embodiment of the present invention may correspond to target FPGA node 120 in a system for processing data according to an embodiment of the present invention, and the above and other operations of respective modules in apparatus 500 may be used to implement target FPGA node 120.
  • the function, for the sake of brevity, will not be repeated here.
  • an apparatus for processing data configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose
  • the call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • FIG. 9 shows a computing device 600 according to an embodiment of the present invention.
  • the computing device 600 includes:
  • Processor 602 memory 604, input/output interface 606, communication interface 608, and bus 610.
  • the processor 602, the memory 604, the input/output interface 606, and the communication interface 608 implement a communication connection with each other through the bus 610.
  • the processor 602 may be a general-purpose CPU, a microprocessor or an FPGA, an application specific integrated circuit (ASIC) or one or more integrated circuits for executing related programs to implement the embodiments of the present invention.
  • ASIC application specific integrated circuit
  • the memory 604 may be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM).
  • Memory 604 can store operating systems and other applications. Implemented by software or firmware In the technical solution provided by the embodiment of the present invention, the program code for implementing the technical solution provided by the embodiment of the present invention is saved in the memory 604 and executed by the processor 602.
  • the input/output interface 606 is for receiving input data and information, and outputting data such as operation results.
  • Communication interface 608 enables communication between computing device 600 and other devices or communication networks using transceivers such as, but not limited to, transceivers.
  • Bus 610 can include a path for communicating information between various components of computing device 600, such as processor 602, memory 604, input/output interface 606, and communication interface 608.
  • the memory 604 can be used to store executable instructions, as well as to store various information, such as a configuration file library.
  • the processor 602 can read the information stored by the memory 604 via the bus system 610 or store the results of the query to the memory 604.
  • the processor 602 can execute the executable instructions stored in the memory 604 to perform the various processes in the foregoing method embodiments, but the embodiments of the present invention are not limited thereto.
  • a system for processing data by a user and a general-purpose processor node according to an embodiment of the present invention are described in detail above with reference to FIGS. 1 through 9, and a method for processing data according to an embodiment of the present invention will be described below with reference to FIGS. 10 and 11. method.
  • FIG. 10 is a schematic diagram of a method 700 for processing data provided by an embodiment of the present invention.
  • the method 700 can be applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the method 700 includes:
  • S710 Determine, according to information of the at least one target algorithm module, at least one target configuration file from multiple configuration files included in the configuration file library, where the target configuration file is used to configure a target FPGA node in the multiple FPGA nodes.
  • the target algorithm module ;
  • S720 Send a configuration message to the at least one target FPGA node, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  • a method for processing data determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration
  • Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module
  • the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to Configuration message of the target profile, which enables virtualization of the FPGA node resources
  • the FPGA development process is converted to a general-purpose processor node program development process, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development, improving system performance and user experience.
  • the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system.
  • Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
  • the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
  • the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the target FPGA node implements the target algorithm. Data processing performance at the time of module.
  • the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
  • S710 determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including:
  • S710 determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including:
  • the at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  • the method 700 further includes:
  • the method 700 further includes:
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the method 700 further includes:
  • the mode transition indication information is used to indicate that the first target FPGA node enters a power saving mode
  • the method 700 for processing data in accordance with an embodiment of the present invention may be implemented by a general purpose processor node 110, a device 200 for processing data, or a device 400 for processing data, each of which may be performed by the various modules of the above described apparatus. And other operations and/or functions are implemented, and for brevity, no further details are provided herein.
  • a method for processing data determines at least one target from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module a configuration file, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node to each of the at least one target FPGA node
  • the node sends a configuration message indicating the target configuration file corresponding to the target FPGA node, which can virtualize the FPGA node resources, and convert the program development flow of the FPGA into a program development process of the general processor node, thereby shortening the program development of the FPGA. Cycles and reduces the complexity of FPGA program development, improving system performance and user experience.
  • FIG. 11 illustrates another method 800 for processing data provided by an embodiment of the present invention.
  • the method 800 can be applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module.
  • the method 800 includes:
  • S810 Receive a call message sent by a general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured with a target configuration for enabling the FPGA node to implement the target algorithm module. file;
  • a method for processing data configures a target configuration file included in a standard configuration file library, the target configuration file is used to configure an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose
  • the call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
  • the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
  • the invocation message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  • the method 800 further includes:
  • the configuration message carries the target configuration file.
  • the obtaining unit is specifically configured to obtain the target configuration file from the configuration message.
  • the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile.
  • S810 according to the configuration message, acquiring the target configuration file, including:
  • the target configuration file is obtained from the configuration file library set by the general processor node.
  • the target configuration file includes:
  • Algorithm module logic for implementing the target algorithm module
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • the basic information logic is used to describe the type of the FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the implementation of the FPGA node. Data processing performance when the target algorithm module.
  • the method 800 further includes:
  • a configuration operation of the idle configuration file is not performed, and the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  • the idle configuration file includes:
  • Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  • the method 800 for processing data may be implemented by a target FPGA node 120, a device 300 for processing data, or a device 500 for processing data, the respective flows of which may be by the above-described and Other operations and/or function implementations are not described herein for brevity.
  • a method for processing data is based on at least one item Determining, by the algorithm module, at least one target configuration file from a plurality of configuration files included in the configuration file library, wherein each target configuration file in the at least one target configuration file is used to configure a target FPGA node to achieve a target An algorithm module, and the general purpose processor node sends a configuration message indicating a target profile corresponding to the target FPGA node to each of the at least one target FPGA node, enabling the FPGA node resource to be virtualized, and the FPGA
  • the program development process is converted to a program development flow of a general-purpose processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of FPGA program development, improving system performance and user experience.
  • association relationship describing the associated object indicates that there may be three relationships.
  • a and/or B may indicate that A exists separately, and A and B exist simultaneously, and B cases exist alone.
  • the character / in this paper generally indicates that the contextual object is an OR relationship.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be indirect coupling through some interfaces, devices or units or Communication connections can also be electrical, mechanical or other forms of connection.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A system, device and method for processing data, which can shorten the FPGA program development cycle and reduce the FPGA program development complexity. The system comprises a general-purpose processor node (110) and a plurality of FPGA nodes (120), wherein the system is provided with a configuration document library, the configuration document library comprising at least one configuration document corresponding to each FPGA node of the plurality of FPGA nodes. Each configuration document corresponding to each FPGA node is used for configuring the FPGA node to realize an algorithm module; the general-purpose processor node is used for determining at least one target configuration document from a plurality of configuration documents included in the configuration document library according to information about at least one target algorithm module, and sending a configuration message to at least one target FPGA node, wherein the configuration message is used for indicating the target configuration document corresponding to the target FPGA node; and the target FPGA node is used for receiving the configuration message sent by the general-purpose processor node, and executing a configuration operation according to the target configuration document indicated in the configuration message.

Description

用于处理数据的系统、装置和方法System, apparatus and method for processing data 技术领域Technical field
本发明实施例涉及数据处理领域,并且更具体地,涉及用于处理数据的系统、装置和方法。Embodiments of the present invention relate to the field of data processing and, more particularly, to systems, apparatus, and methods for processing data.
背景技术Background technique
随着互联网技术的发展和高性能计算的市场需求的扩大,集群计算越来越普及。在集群计算中,异构集群是未来发展的趋势,与此同时,由于现场可编辑门阵列(Field Programmable Gate Array,FPGA)对某些算法具有无可替代的加速性能,FPGA作为加速器在集群计算中引起越来越多的关注。With the development of Internet technology and the expanding market demand for high-performance computing, cluster computing is becoming more and more popular. In cluster computing, heterogeneous clusters are the future development trend. At the same time, because Field Programmable Gate Array (FPGA) has irreplaceable acceleration performance for some algorithms, FPGA is used as an accelerator in cluster computing. This has caused more and more attention.
然而,FPGA的程序开发流程相比通用处理器的开发流程复杂许多。对于同样复杂度的算法,FPGA的程序开发周期远长于通用处理器的程序开发周期。典型的FPGA的程序开发流程大致包括以下步骤:建立工程、综合、映射、布局布线和时序分析,如果设计结果正确并且时序分析结果满足时序约束条件,则可以生成配置文件;反之,如果设计结果不正确或者时序分析结果不满足时序约束条件,则需要进行下一次迭代,直到完全符合设计要求。However, the FPGA development process is much more complicated than the general-purpose processor development process. For algorithms of the same complexity, the program development cycle of FPGAs is much longer than the program development cycle of general-purpose processors. The typical FPGA program development process generally includes the following steps: establishing engineering, synthesis, mapping, place and route, and timing analysis. If the design result is correct and the timing analysis results meet the timing constraints, the configuration file can be generated; otherwise, if the design result is not If the correct or timing analysis results do not meet the timing constraints, the next iteration is required until the design requirements are fully met.
在现有技术中,各个FPGA节点之间相互独立,并且一个FPGA节点同时负责各个算法模块的数据面和控制面。随着FPGA的容量越来越大,设计越来越复杂,单次编译时间短则需要十几分钟,长则需要数小时。此外,如果在调试过程中需要对某一种算法模块的个数做出调整,则需要重新完成上述各个步骤以生成一个新的配置文件,对于设计变动频繁的情况,FPGA的程序调试会耗费大量的时间。如何缩短FPGA的开发周期是本领域亟待解决的技术问题。In the prior art, each FPGA node is independent of each other, and one FPGA node is responsible for the data plane and control plane of each algorithm module at the same time. As the capacity of FPGAs grows larger and the design becomes more complex, it takes ten minutes for a single compilation time and several hours for a long time. In addition, if you need to adjust the number of a certain algorithm module during the debugging process, you need to re-complete the above steps to generate a new configuration file. For the case of frequent design changes, the FPGA program debugging will cost a lot. time. How to shorten the development cycle of FPGA is a technical problem to be solved in this field.
发明内容Summary of the invention
本发明实施例提供一种用于处理数据的系统、装置和方法,能够缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度。Embodiments of the present invention provide a system, apparatus, and method for processing data, which can shorten the program development cycle of the FPGA and reduce the complexity of FPGA program development.
第一方面,本发明实施例提供了一种用于处理数据的系统,包括:通用处理器节点和多个现场可编辑门阵列FPGA节点,其中,该系统设置有配置文件库,该配置文件库包括该多个FPGA节点中的每个FPGA节点对应的至 少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块;该通用处理器节点用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;该通用处理器节点还用于向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件;该目标FPGA节点用于接收该通用处理器节点发送的该配置消息,并且根据该配置消息中指示的目标配置文件,执行配置操作。In a first aspect, an embodiment of the present invention provides a system for processing data, including: a general-purpose processor node and a plurality of field-editable gate array FPGA nodes, wherein the system is provided with a configuration file library, and the configuration file library Include corresponding to each of the plurality of FPGA nodes to One less configuration file, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module; the general processor node is configured to include, according to information of at least one target algorithm module, from the configuration file library Determining at least one target configuration file in a plurality of configuration files, wherein the target configuration file is configured to configure a target FPGA module in the plurality of FPGA nodes to implement the target algorithm module; the general purpose processor node is further configured to The target FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node; the target FPGA node is configured to receive the configuration message sent by the general-purpose processor node, and according to the target indicated in the configuration message Configuration file to perform configuration operations.
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In a first possible implementation manner, the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。In combination with the foregoing possible implementation manners, in a second possible implementation manner, the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manners, in a third possible implementation manner, the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。In combination with the foregoing possible implementation manner, in a fourth possible implementation, the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。In combination with the foregoing possible implementation manner, in a fifth possible implementation, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and the at least one target The target processing time of the algorithm module.
结合上述可能的实现方式,在第六种可能的实现方式中,该通用处理器节点具体用于:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信 息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a sixth possible implementation, the general-purpose processor node is specifically configured to: determine at least one corresponding to the at least one target algorithm module from multiple configuration files included in the configuration file library a configuration file; a letter according to the at least one target algorithm module And determining the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module.
结合上述可能的实现方式,在第七种可能的实现方式中,该通用处理器节点具体用于:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a seventh possible implementation, the general-purpose processor node is specifically configured to: determine at least one FPGA node that is available from the multiple FPGA nodes; and information according to the at least one target algorithm module And determining, by the plurality of configuration files included in the configuration file library, at least one target FPGA node from the at least one available FPGA node; determining, from the plurality of configuration files included in the configuration file library, the at least one target FPGA node and the The at least one target profile corresponding to the at least one target algorithm module.
结合上述可能的实现方式,在第八种可能的实现方式中,在从该配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,该通用处理器节点还用于:根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。In combination with the foregoing possible implementation manner, in an eighth possible implementation, before determining at least one target configuration file from the multiple configuration files included in the configuration file library, the general-purpose processor node is further configured to: input according to user Determining information of a plurality of required algorithm modules including the at least one target algorithm module; determining, by the plurality of required algorithm modules, the implementation by the plurality of FPGA nodes according to the information of the plurality of required algorithm modules The at least one target algorithm module, wherein an algorithm module other than the at least one target module of the plurality of required algorithm modules is implemented by the general purpose processor node.
结合上述可能的实现方式,在第九种可能的实现方式中,该通用处理器节点还用于:确定该至少一个目标FPGA节点的调用次序;根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;该目标FPGA节点还用于:接收该通用处理器节点发送的该调用消息,根据该调用消息对该待处理数据进行处理,并向该通用处理器节点发送处理结果。In combination with the foregoing possible implementation manner, in a ninth possible implementation manner, the general-purpose processor node is further configured to: determine a calling sequence of the at least one target FPGA node; send a call message to the target FPGA node according to the calling sequence The call message is used to indicate that the target FPGA node processes the data to be processed by using the specified target algorithm module; the target FPGA node is further configured to: receive the call message sent by the general processor node, and wait for the call message according to the call message The data is processed for processing and the processing results are sent to the general purpose processor node.
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息携带该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。In combination with the foregoing possible implementation manners, in the tenth possible implementation manner, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node. The call message carries the address information of the target FPGA node, the number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
结合上述可能的实现方式,在第十一种可能的实现方式中,该通用处理器节点还用于:向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。 In combination with the foregoing possible implementation manner, in an eleventh possible implementation manner, the general-purpose processor node is further configured to: send mode switching indication information to the first target FPGA node in the at least one target FPGA node, where the mode conversion The indication information is used to indicate that the first target FPGA node enters a power saving mode; or an FPGA node other than the at least one target FPGA node of the plurality of FPGA nodes is added to the at least one target FPGA node.
结合上述可能的实现方式,在第十二种可能的实现方式中,该配置文件库存储在该通用处理器节点中;或者该系统还包括:共享服务器,该配置文件库存储在该共享服务器中,该通用处理器节点还用于从该共享服务器获取该配置文件库包括的多个配置文件的信息。In combination with the foregoing possible implementation manner, in a twelfth possible implementation, the configuration file library is stored in the general-purpose processor node; or the system further includes: a shared server, where the configuration file library is stored in the shared server The general purpose processor node is further configured to obtain information of the plurality of configuration files included in the configuration file library from the shared server.
第二方面,提供了一种用于处理数据的装置,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该装置包括:确定单元,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;发送单元,用于向该确定单元确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。In a second aspect, an apparatus for processing data is provided for use in a system for processing data, the system being provided with a configuration file library including each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each of the FPGA nodes is configured to configure the FPGA node to implement an algorithm module, and the device includes: a determining unit, configured to use information according to the at least one target algorithm module, Determining at least one target configuration file from a plurality of configuration files included in the configuration file library, wherein the target configuration file is configured to configure a target FPGA module of the plurality of FPGA nodes to implement the target algorithm module; and a sending unit, configured to The at least one target FPGA node determined by the determining unit sends a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In a first possible implementation manner, the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。In combination with the foregoing possible implementation manners, in a second possible implementation manner, the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manners, in a third possible implementation manner, the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。In combination with the foregoing possible implementation manner, in a fourth possible implementation, the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目 标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。In combination with the above possible implementation manner, in a fifth possible implementation manner, the at least one object The information of the target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
结合上述可能的实现方式,在第六种可能的实现方式中,该确定单元具体用于:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a sixth possible implementation, the determining unit is specifically configured to: determine at least one configuration file corresponding to the at least one target algorithm module from multiple configuration files included in the configuration file library And determining, according to the information of the at least one target algorithm module, the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module.
结合上述可能的实现方式,在第七种可能的实现方式中,该确定单元具体用于:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a seventh possible implementation, the determining unit is specifically configured to: determine, from the multiple FPGA nodes, at least one FPGA node that is available; according to the information of the at least one target algorithm module and the Configuring a plurality of configuration files included in the file library, determining at least one target FPGA node from the at least one available FPGA node; determining, from the plurality of configuration files included in the configuration file library, the at least one target FPGA node and the at least one The at least one target configuration file corresponding to the target algorithm module.
结合上述可能的实现方式,在第八种可能的实现方式中,该确定单元还用于:在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。In combination with the foregoing possible implementation manner, in an eighth possible implementation manner, the determining unit is further configured to: before determining at least one target configuration file from the plurality of configuration files included in the configuration file library, determine, according to user input, Information of a plurality of required algorithm modules including the at least one target algorithm module; determining, according to the information of the plurality of required algorithm modules, the at least one implemented by the plurality of FPGA nodes from the plurality of required algorithm modules a target algorithm module, wherein an algorithm module other than the at least one target module of the plurality of required algorithm modules is implemented by the general purpose processor node.
结合上述可能的实现方式,在第九种可能的实现方式中,该确定单元还用于确定该至少一个目标FPGA节点的调用次序;该发送单元还用于根据该确定单元确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;该装置还包括:接收单元,用于接收该目标FPGA节点根据该发送单元发送的该调用消息发送的数据处理结果。In combination with the foregoing possible implementation manner, in a ninth possible implementation manner, the determining unit is further configured to determine a calling order of the at least one target FPGA node; the sending unit is further configured to use the calling sequence determined by the determining unit, Sending a call message to the target FPGA node, the call message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module; the device further includes: a receiving unit, configured to receive the target FPGA node according to the sending unit The data processing result sent by the call message sent.
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。 In combination with the foregoing possible implementation manners, in the tenth possible implementation manner, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node. The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
结合上述可能的实现方式,在第十一种可能的实现方式中,该发送单元还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者该确定单元还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。In combination with the foregoing possible implementation manner, in an eleventh possible implementation, the sending unit is further configured to send mode switching indication information to the first target FPGA node in the at least one target FPGA node, where the mode switching indication information is used. Instructing the first target FPGA node to enter a power saving mode; or the determining unit is further configured to add an FPGA node other than the at least one target FPGA node to the at least one target FPGA node.
结合上述可能的实现方式,在第十二种可能的实现方式中,还包括:存储单元,用于存储该配置文件库。In conjunction with the foregoing possible implementation manner, in a twelfth possible implementation, the method further includes: a storage unit, configured to store the configuration file library.
第三方面,提供了另一种用于处理数据的装置,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该装置包括:接收单元,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;处理单元,用于根据该接收单元接收的该调用消息,对该待处理数据进行处理,以获得处理结果;发送单元,用于向该通用处理器节点发送该处理单元获得的该处理结果。In a third aspect, there is provided another apparatus for processing data, applied to a system for processing data, the system being provided with a configuration file library comprising each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to each FPGA node, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module, and the device includes: a receiving unit, configured to receive a call sent by the general processor node a message, the call message is used to indicate that the FPGA node processes the data to be processed by using a target algorithm module, where the FPGA node is configured with a target configuration file for causing the FPGA node to implement the target algorithm module, and a processing unit is configured to The calling message received by the receiving unit processes the data to be processed to obtain a processing result, and the sending unit is configured to send the processing result obtained by the processing unit to the general-purpose processor node.
在第一种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。In a first possible implementation manner, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node; the call message The address information of the target FPGA node, the number information of the adopted target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data are included.
结合上述可能的实现方式,在第二种可能的实现方式中,在该接收通用处理器节点发送的调用消息之前,该接收单元还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件;该装置还包括:获取单元,用于根据该接收单元接收的该配置消息,获取该目标配置文件;配置单元,用于根据该获取单元获取的该目标配置文件,执行配置操作。In conjunction with the foregoing possible implementation manner, in a second possible implementation manner, before receiving the call message sent by the general-purpose processor node, the receiving unit is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is The device is configured to: the target configuration file that is allocated by the general-purpose processor node to the FPGA node; the device further includes: an acquiring unit, configured to acquire the target configuration file according to the configuration message received by the receiving unit; The configuration operation is performed according to the target configuration file acquired by the obtaining unit.
结合上述可能的实现方式,在第二种可能的实现方式中,该配置消息携带该目标配置文件;该获取单元具体用于从该配置消息中获取该目标配置文件。In combination with the foregoing possible implementation manner, in a second possible implementation manner, the configuration message carries the target configuration file; the acquiring unit is specifically configured to obtain the target configuration file from the configuration message.
结合上述可能的实现方式,在第三种可能的实现方式中,该配置文件库 设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息;该获取单元具体用于根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。In combination with the above possible implementation manners, in a third possible implementation, the configuration file library And the configuration message carries the indication information for indicating the target configuration file; the obtaining unit is specifically configured to be configured from the general-purpose processor node according to the indication information carried in the configuration message. The target configuration file is obtained in the profile repository.
结合上述可能的实现方式,在第四种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该FPGA节点和该目标算法模块;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manner, in a fourth possible implementation manner, the target configuration file includes: algorithm module logic, configured to implement the target algorithm module; basic information logic, configured to describe the FPGA node and the target algorithm module Interface logic for implementing the interface function of the FPGA node to communicate with the general purpose processor node.
结合上述可能的实现方式,在第五种可能的实现方式中,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。In combination with the foregoing possible implementation manner, in a fifth possible implementation, the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module The number of instances and the data processing performance of the FPGA node when implementing the target algorithm module.
结合上述可能的实现方式,在第六种可能的实现方式中,该接收单元还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。In combination with the foregoing possible implementation manner, in a sixth possible implementation, the receiving unit is further configured to receive mode switching indication information sent by the general-purpose processor node, where the mode switching indication information is used to indicate that the FPGA node enters power saving. The configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
结合上述可能的实现方式,在第七种可能的实现方式中,该空闲配置文件包括:基本信息逻辑,用于描述该FPGA节点;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。In conjunction with the foregoing possible implementation manners, in a seventh possible implementation, the idle configuration file includes: basic information logic for describing the FPGA node, and interface logic for implementing the FPGA node and the general processor node. Interface function of communication.
第四方面,提供了一种用于处理数据的方法,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该方法包括:根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。In a fourth aspect, a method for processing data is provided for use in a system for processing data, the system being provided with a configuration file library including each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module, and the method includes: according to information of at least one target algorithm module, from the configuration file library Determining at least one target configuration file among the plurality of configuration files, wherein the target configuration file is configured to configure a target FPGA node of the plurality of FPGA nodes to implement the target algorithm module; and send a configuration message to at least one target FPGA node, The configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
在第一种可能的实现方式中,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件, 并且不同的算法模块对应于不同的第一配置文件。In a first possible implementation manner, the configuration file library includes multiple first configuration files corresponding to the first one of the plurality of FPGA nodes, where the plurality of first configuration files include multiple available systems. At least one first configuration file corresponding to each algorithm module in the algorithm module, And different algorithm modules correspond to different first profiles.
结合上述可能的实现方式,在第二种可能的实现方式中,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。In combination with the foregoing possible implementation manners, in a second possible implementation manner, the multiple FPGA nodes have different types, where two FPGA nodes of the same type of FPGAs implement the same algorithm module In the same configuration file, two FPGA nodes having different types in the multiple FPGA nodes implement the same algorithm module and correspond to different configuration files.
结合上述可能的实现方式,在第三种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manners, in a third possible implementation manner, the target configuration file includes: algorithm module logic for implementing the target algorithm module; basic information logic for describing the target FPGA node and the target algorithm Module; interface logic for implementing an interface function of the target FPGA node to communicate with the general purpose processor node.
结合上述可能的实现方式,在第四种可能的实现方式中,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。In combination with the foregoing possible implementation manner, in a fourth possible implementation, the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module. The number of instantiations and the data processing performance of the target FPGA node when implementing the target algorithm module.
结合上述可能的实现方式,在第五种可能的实现方式中,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。In combination with the foregoing possible implementation manner, in a fifth possible implementation, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and the at least one target The target processing time of the algorithm module.
结合上述可能的实现方式,在第六种可能的实现方式中,该根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a sixth possible implementation, the determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including: Determining, in the plurality of configuration files included in the configuration file library, at least one configuration file corresponding to the at least one target algorithm module; according to the information of the at least one target algorithm module, from at least one configuration file corresponding to the at least one target algorithm module Determine the at least one target profile.
结合上述可能的实现方式,在第七种可能的实现方式中,该根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:从该多个FPGA节点中确定可用的至少一个FPGA节点;根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。In combination with the foregoing possible implementation manner, in a seventh possible implementation, the determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including: Determining at least one FPGA node available among the plurality of FPGA nodes; determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library; The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
结合上述可能的实现方式,在第八种可能的实现方式中,在该从该配置 文件库包括的多个配置文件中确定至少一个目标配置文件之前,该方法还包括:根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。In combination with the above possible implementation manners, in the eighth possible implementation manner, in the slave configuration Before determining at least one target configuration file among the plurality of configuration files included in the file library, the method further includes: determining, according to the user input, information of the plurality of required algorithm modules including the at least one target algorithm module; Determining, by the information of the required algorithm module, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the plurality of required algorithm modules are other than the at least one target module The algorithm module is implemented by the general purpose processor node.
结合上述可能的实现方式,在第九种可能的实现方式中,该方法还包括:确定该至少一个目标FPGA节点的调用次序;根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;接收该目标FPGA节点根据该调用消息发送的数据处理结果。In conjunction with the foregoing possible implementation manners, in a ninth possible implementation manner, the method further includes: determining a calling order of the at least one target FPGA node; sending, according to the calling sequence, a call message to the target FPGA node, the calling message And is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module; and receives a data processing result sent by the target FPGA node according to the call message.
结合上述可能的实现方式,在第十种可能的实现方式中,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。In combination with the foregoing possible implementation manners, in the tenth possible implementation manner, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated the target algorithm modules are in the FPGA node. The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
结合上述可能的实现方式,在第十一种可能的实现方式中,该方法还包括:向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。In combination with the foregoing possible implementation manner, in an eleventh possible implementation manner, the method further includes: sending, to the first target FPGA node of the at least one target FPGA node, mode switching indication information, where the mode switching indication information is used. Instructing the first target FPGA node to enter a power saving mode; or adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
第五方面,提供了另一种用于处理数据的方法,应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块,该方法包括:接收通用处理器节点发送的调用消息,该调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;根据该调用消息,对该待处理数据进行处理,以获得处理结果;向该通用处理器节点发送该处理结果。In a fifth aspect, there is provided another method for processing data, applied to a system for processing data, the system being provided with a configuration file library comprising each of a plurality of field editable gate array FPGA nodes At least one configuration file corresponding to each FPGA node, each configuration file corresponding to each FPGA node is configured to configure the FPGA node to implement an algorithm module, and the method includes: receiving an invocation message sent by a general processor node, the invocation message Instructing the FPGA node to process the data to be processed by using the target algorithm module, wherein the FPGA node is configured with a target configuration file for causing the FPGA node to implement the target algorithm module; and processing the data to be processed according to the call message, Obtaining a processing result; transmitting the processing result to the general purpose processor node.
在第一种可能的实现方式中,该目标配置文件对应的该目标算法模块的 例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。In a first possible implementation manner, the target profile corresponds to the target algorithm module The number of instantiations is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node; the call message includes address information of the target FPGA node, and the target algorithm module used in the plurality of instantiations The number information in the target algorithm module and the data to be processed.
结合上述可能的实现方式,在第二种可能的实现方式中,在该接收通用处理器节点发送的调用消息之前,该方法还包括:接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件;根据该配置消息,获取该目标配置文件;执行该目标配置文件的配置操作。In conjunction with the foregoing possible implementation manner, in a second possible implementation manner, before the receiving the initiating message sent by the general-purpose processor node, the method further includes: receiving a configuration message sent by the general-purpose processor node, where the configuration message is used by And indicating the target configuration file allocated by the general-purpose processor node to the FPGA node; acquiring the target configuration file according to the configuration message; and performing a configuration operation of the target configuration file.
结合上述可能的实现方式,在第三种可能的实现方式中,该配置消息携带该目标配置文件;该根据该配置消息,获取该目标配置文件,包括:从该配置消息中获取该目标配置文件。In combination with the foregoing possible implementation manner, in a third possible implementation, the configuration message carries the target configuration file, and the acquiring the target configuration file according to the configuration message includes: obtaining the target configuration file from the configuration message. .
结合上述可能的实现方式,在第四种可能的实现方式中,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息;该根据该配置消息,获取该目标配置文件,包括:根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。In combination with the foregoing possible implementation manner, in a fourth possible implementation, the configuration file library is set on the general-purpose processor node, and the configuration message carries indication information for indicating the target configuration file; The message, the obtaining the target configuration file, includes: obtaining the target configuration file from the configuration file library set by the general processor node according to the indication information carried in the configuration message.
结合上述可能的实现方式,在第五种可能的实现方式中,该目标配置文件包括:算法模块逻辑,用于实现该目标算法模块;基本信息逻辑,用于描述该FPGA节点和该目标算法模块;接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manner, in a fifth possible implementation manner, the target configuration file includes: algorithm module logic, configured to implement the target algorithm module; basic information logic, configured to describe the FPGA node and the target algorithm module Interface logic for implementing the interface function of the FPGA node to communicate with the general purpose processor node.
结合上述可能的实现方式,在第六种可能的实现方式中,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。In combination with the foregoing possible implementation manner, in a sixth possible implementation, the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, and the target algorithm module The number of instances and the data processing performance of the FPGA node when implementing the target algorithm module.
结合上述可能的实现方式,在第七种可能的实现方式中,该方法还包括:接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;根据该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。In combination with the foregoing possible implementation manner, in a seventh possible implementation, the method further includes: receiving mode switching indication information sent by the general processor node, where the mode switching indication information is used to indicate that the FPGA node enters a power saving mode. According to the mode conversion indication information, a configuration operation of the idle configuration file is not performed, and the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
结合上述可能的实现方式,在第八种可能的实现方式中,该空闲配置文件包括:基本信息逻辑,用于描述该FPGA节点;接口逻辑,用于实现该 FPGA节点与该通用处理器节点进行通信的接口功能。In combination with the foregoing possible implementation manner, in an eighth possible implementation manner, the idle configuration file includes: basic information logic, configured to describe the FPGA node; and interface logic, configured to implement the An interface function that the FPGA node communicates with the general purpose processor node.
基于上述技术方案,本发明实施例提供的用于处理数据的系统、装置和方法,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送配置消息,该配置消息用于指示该通用处理器节点为该目标FPGA节点分配的目标配置文件,该目标FPGA节点根据该配置消息执行配置操作,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Based on the foregoing technical solution, a system, apparatus, and method for processing data provided by an embodiment of the present invention, by setting a standard configuration file library, and a general-purpose processor node includes, according to information of at least one target algorithm module, from the configuration file library. Determining at least one target profile in the plurality of profiles, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general processor node is at least Each target FPGA node in a target FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file allocated by the general-purpose processor node to the target FPGA node, and the target FPGA node performs a configuration operation according to the configuration message, Virtualizes FPGA node resources and translates the FPGA program development process into a general-purpose processor node program development process, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development, improving system performance and user experience.
附图说明DRAWINGS
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings to be used in the embodiments of the present invention or the description of the prior art will be briefly described below. Obviously, the drawings described below are only the present invention. For some embodiments, other drawings may be obtained from those of ordinary skill in the art without departing from the drawings.
图1为本发明实施例提供的用于处理数据的系统的示意性框图。FIG. 1 is a schematic block diagram of a system for processing data according to an embodiment of the present invention.
图2为本发明实施例提供的用于处理数据的系统中算法模块的配置示例。2 is a configuration example of an algorithm module in a system for processing data according to an embodiment of the present invention.
图3为本发明实施例提供的用于处理数据的系统示例的示意性框架图。FIG. 3 is a schematic block diagram of an example of a system for processing data according to an embodiment of the present invention.
图4为本发明实施例提供的用于处理数据的系统的另一示例的示意性框架图。FIG. 4 is a schematic block diagram of another example of a system for processing data according to an embodiment of the present invention.
图5为本发明实施例提供的用于处理数据的装置的示意性框图。FIG. 5 is a schematic block diagram of an apparatus for processing data according to an embodiment of the present invention.
图6为本发明另一实施例提供的用于处理数据的装置的示意性框图。FIG. 6 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
图7为本发明另一实施例提供的用于处理数据的装置的示意性框图。FIG. 7 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
图8为本发明另一实施例提供的用于处理数据的装置的示意性框图。FIG. 8 is a schematic block diagram of an apparatus for processing data according to another embodiment of the present invention.
图9为本发明实施例提供的计算设备的示意性框图。FIG. 9 is a schematic block diagram of a computing device according to an embodiment of the present invention.
图10为本发明实施例提供的用于处理数据的方法的示意性流程图。FIG. 10 is a schematic flowchart of a method for processing data according to an embodiment of the present invention.
图11为本发明另一实施例提供的用于处理数据的方法的示意性流程图。 FIG. 11 is a schematic flowchart of a method for processing data according to another embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are a part of the embodiments of the present invention, but not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts shall fall within the scope of the present invention.
应理解,本发明实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,GSM)系统、码分多址(Code Division Multiple Access,CDMA)系统、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)系统、通用分组无线业务(General Packet Radio Service,GPRS)、长期演进(Long Term Evolution,LTE)系统、LTE频分双工(Frequency Division Duplex,FDD)系统、LTE时分双工(Time Division Duplex,TDD)、通用移动通信系统(Universal Mobile Telecommunication System,UMTS)、全球互联微波接入(Worldwide Interoperability for Microwave Access,WiMAX)通信系统等。It should be understood that the technical solutions of the embodiments of the present invention can be applied to various communication systems, such as a Global System of Mobile communication (GSM) system, a Code Division Multiple Access (CDMA) system, and a wideband code. Wideband Code Division Multiple Access (WCDMA) system, General Packet Radio Service (GPRS), Long Term Evolution (LTE) system, LTE Frequency Division Duplex (FDD) System, LTE Time Division Duplex (TDD), Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication system, and the like.
还应理解,本发明实施例的技术方案还可以应用于各种图像处理系统,例如图像处理系统、基因序列图谱分析(DNA Sequence Mapping)领域、大数据领域等。It should also be understood that the technical solution of the embodiments of the present invention can also be applied to various image processing systems, such as an image processing system, a DNA sequence mapping field, a big data field, and the like.
图1是本发明实施例的用于处理数据的系统100的示意性框图,该用于处理数据的系统100可以为任意能够利用通用处理器节点和FPGA节点处理数据的系统或设备。下面以该用于处理数据的系统100应用于通信领域为例进行描述,但该用于处理数据的系统100也可以应用于其它领域,本发明实施例对此不做限定。1 is a schematic block diagram of a system 100 for processing data in accordance with an embodiment of the present invention, which may be any system or device capable of processing data using general purpose processor nodes and FPGA nodes. In the following, the system 100 for processing data is applied to the field of communication as an example. However, the system 100 for processing data can also be applied to other fields, which is not limited by the embodiment of the present invention.
如图1所示,该用于处理数据的系统100包括:通用处理器节点110和多个FPGA节点120,其中,As shown in FIG. 1, the system 100 for processing data includes: a general purpose processor node 110 and a plurality of FPGA nodes 120, wherein
该系统100设置有配置文件库,该配置文件库包括该多个FPGA节点120中的每个FPGA节点120对应的至少一个配置文件,每个该FPGA节点120对应的每个配置文件用于配置该FPGA节点120实现一种算法模块;The system 100 is provided with a configuration file library including at least one configuration file corresponding to each of the plurality of FPGA nodes 120, and each configuration file corresponding to each of the FPGA nodes 120 is used to configure the configuration file. The FPGA node 120 implements an algorithm module;
该通用处理器节点110用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点120中的目标FPGA节点120实现目标 算法模块;The general purpose processor node 110 is configured to determine at least one target configuration file from the plurality of configuration files included in the configuration file library according to the information of the at least one target algorithm module, where the target configuration file is used to configure the multiple FPGA nodes. Target FPGA node 120 in 120 achieves the target Algorithm module
该通用处理器节点110还用于向至少一个该目标FPGA节点120发送配置消息,该配置消息用于指示该目标FPGA节点120对应的目标配置文件;The general purpose processor node 110 is further configured to send a configuration message to the at least one target FPGA node 120, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node 120;
该目标FPGA节点120用于接收该通用处理器节点110发送的该配置消息,并且根据该配置消息中指示的该目标配置文件,执行配置操作。The target FPGA node 120 is configured to receive the configuration message sent by the general-purpose processor node 110, and perform a configuration operation according to the target configuration file indicated in the configuration message.
因此,根据本发明实施例的用于处理数据的系统,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送配置消息,该配置消息用于指示该通用处理器节点为该目标FPGA节点分配的目标配置文件,该目标FPGA节点根据该配置消息执行配置操作,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, a system for processing data according to an embodiment of the present invention, by setting a standard profile library, and a general-purpose processor node determining from a plurality of profiles included in the profile library according to information of at least one target algorithm module At least one target profile, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general processor node to the at least one target Each target FPGA node in the FPGA node sends a configuration message, where the configuration message is used to indicate a target configuration file allocated by the general-purpose processor node to the target FPGA node, and the target FPGA node performs a configuration operation according to the configuration message, which can enable the FPGA The node resources are virtualized, and the program development flow of the FPGA is converted into the program development flow of the general processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of the FPGA program development, improving the system performance and the user experience.
在该用于处理数据的系统100中,该通用处理器节点110可以与该多个FPGA节点120中的每个FPGA节点直接或间接连接,例如,该通用处理器节点110可以通过交换机与该多个FPGA节点120中的每个FPGA节点连接。该通用处理器节点110可以与该多个FPGA节点120组成节点簇。此时,该节点簇的控制面和数据面可以分离,其中,该通用处理器节点110可以实现该节点簇的控制面,用于对该多个FPGA节点120实现的算法模块进行管理和控制,而FPGA节点120可以实现该节点簇的数据面,用于在该通用处理器节点110的控制下,实现一种或多种算法模块,但本发明实施例不限于此。In the system 100 for processing data, the general purpose processor node 110 can be directly or indirectly connected to each of the plurality of FPGA nodes 120, for example, the general purpose processor node 110 can communicate with the switch Each of the FPGA nodes 120 is connected. The general purpose processor node 110 can form a cluster of nodes with the plurality of FPGA nodes 120. At this time, the control plane and the data plane of the node cluster may be separated, wherein the general-purpose processor node 110 may implement a control plane of the node cluster for managing and controlling the algorithm modules implemented by the multiple FPGA nodes 120. The FPGA node 120 can implement the data plane of the node cluster for implementing one or more algorithm modules under the control of the general-purpose processor node 110, but the embodiment of the present invention is not limited thereto.
可选地,该通用处理器节点可以为x86、ARM(Acorn RISC machine)、MIPS或PowerPC,等等,本发明实施例对此不做限定。Optionally, the general-purpose processor node may be an x86, an ARM (Acorn RISC machine), a MIPS or a PowerPC, and the like, which is not limited by the embodiment of the present invention.
该用于处理数据的系统100可以设置有标准的配置文件库,该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。具体地,与FPGA节点对应的一个配置文件可以用于配置该FPGA节点实现一种 算法模块,即该配置文件用于将该FPGA节点的资源配置为该算法模块,以使得该FPGA节点能够实现该算法模块对应的算法。可选地,该多个配置文件可以通过现有的程序开发流程获得,例如,通过建立工程、综合、映射、布局布线和时序分析等步骤获得配置文件,但本发明实施例不限于此。应理解,在本发明实施例中,在获得该配置文件库之后,可以通过与开发通用处理程序类似的流程实现FPGA程序开发,此时,FPGA节点实现的算法模块可以标准化复用,使用时可以对应于通用处理器节点中的一个调用函数,无需再次通过现有流程进行FPGA程序开发,从而极大降低FPGA节点程序开发复杂度,提高程序开发效率。The system 100 for processing data may be provided with a standard configuration file library, which may include a plurality of configuration files, wherein each of the plurality of configuration files may be used only for configuring one FPGA node. An algorithm module is implemented, and at least one configuration file corresponding to each of the plurality of FPGA nodes may be included in the plurality of configuration files. Specifically, a configuration file corresponding to the FPGA node can be used to configure the FPGA node to implement a The algorithm module is configured to configure the resource of the FPGA node as the algorithm module, so that the FPGA node can implement an algorithm corresponding to the algorithm module. Optionally, the multiple configuration files may be obtained through an existing program development process, for example, by establishing steps of engineering, synthesis, mapping, place and route, and timing analysis, but the embodiment of the present invention is not limited thereto. It should be understood that, in the embodiment of the present invention, after obtaining the configuration file library, the FPGA program development may be implemented by a process similar to the development of a general-purpose processing program. At this time, the algorithm module implemented by the FPGA node may be standardized and reused, and may be used during use. Corresponding to a call function in a general-purpose processor node, it is no longer necessary to perform FPGA program development through the existing process, thereby greatly reducing the complexity of FPGA node program development and improving program development efficiency.
作为一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。As an optional embodiment, for the same FPGA node, the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files, where The configuration file corresponding to an algorithm module is used to configure the FPGA node to implement the algorithm module. In addition, for the same FPGA node, each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In an optional embodiment, the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。At this time, the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm module being different from the second An algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
作为另一个可选实施例,该配置文件库中的配置文件可以用于配置一种类型的FPGA节点,即对于相同的算法模块参数,同一种类型的FPGA节点对应于相同的配置文件。此时,该配置文件库还包括该多个FPGA节点中的第二FPGA节点对应的多个第二配置文件,其中,该第一FPGA节点与该第二FPGA节点具有不同的类型,并且与同一种算法模块对应的至少一个第一配置文件和至少一个第二配置文件不同。As another alternative embodiment, the configuration file in the configuration file library can be used to configure one type of FPGA node, ie, the same type of FPGA node corresponds to the same configuration file for the same algorithm module parameter. At this time, the configuration file library further includes a plurality of second configuration files corresponding to the second FPGA nodes of the plurality of FPGA nodes, wherein the first FPGA node and the second FPGA node have different types and are the same The at least one first configuration file corresponding to the algorithm module is different from the at least one second configuration file.
相应地,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点 中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。Correspondingly, the plurality of FPGA nodes have different types, wherein the plurality of FPGA nodes Two FPGA nodes of the same type corresponding to the same configuration file when implementing the same algorithm module, and two FPGA nodes having different types of the plurality of FPGA nodes corresponding to different algorithm files when implementing the same algorithm module.
作为另一个可选实施例,系统可用的多种算法模块和该多个FPGA节点中包括的不同类型的FPGA节点可以任意组合,该配置文件库可以包括与所有组合中的每个组合对应的至少一个配置文件。一种配置文件库的示例如表1所示,其中,FPGA节点的类型可以由FPGA节点的厂商和型号共同确定。此时,FPGA节点的类型、算法模块的类型和算法模块的例化数量这三个参数可以确定唯一一个配置文件,但本发明实施例不限于此。As another alternative embodiment, a plurality of algorithm modules usable by the system and different types of FPGA nodes included in the plurality of FPGA nodes may be arbitrarily combined, the profile library may include at least corresponding to each combination of all combinations A configuration file. An example of a configuration file library is shown in Table 1, where the type of FPGA node can be determined by the manufacturer and model of the FPGA node. At this time, the three parameters of the type of the FPGA node, the type of the algorithm module, and the number of the instance of the algorithm module may determine a unique configuration file, but the embodiment of the present invention is not limited thereto.
表1 配置文件库示例Table 1 Example of a configuration file library
Figure PCTCN2015073082-appb-000001
Figure PCTCN2015073082-appb-000001
该系统可用的多种算法可以具体为通信系统的所有算法、图像处理领域的所有算法或大数据领域的所有算法,本发明实施例对此不做限定。The various algorithms that can be used in the system may be specific to all algorithms of the communication system, all algorithms in the field of image processing, or all algorithms in the field of big data, which are not limited by the embodiments of the present invention.
可选地,该目标配置文件包括:Optionally, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点110进行通信的接口功能。Interface logic for implementing the interface function of the target FPGA node to communicate with the general purpose processor node 110.
该通用处理器节点110可以根据该接口逻辑与该目标FPGA节点通信,例如,数据下发,接收处理结果,等等。该基本信息逻辑中可以包括用于描述该目标配置文件配置的目标FPGA节点和目标算法模块的信息,其中,该目标FPGA节点的信息可以包括能够表示该目标FPGA节点的类型的任意信息,例如,目标FPGA节点的厂商和该目标FPGA节点的型号,但本发明实施例不限于此。该目标算法模块的信息可以包括该目标算法模块的名称、该目标算法模块的例化(instance)个数以及该目标FPGA节点实现上述个数 的该目标算法模块时的处理性能,例如,处理时延、处理精度等等,本发明实施例不限于此。The general purpose processor node 110 can communicate with the target FPGA node based on the interface logic, such as data delivery, receiving processing results, and the like. The basic information logic may include information for describing the target FPGA node and the target algorithm module of the target profile configuration, wherein the information of the target FPGA node may include any information capable of indicating the type of the target FPGA node, for example, The manufacturer of the target FPGA node and the model of the target FPGA node, but the embodiment of the present invention is not limited thereto. The information of the target algorithm module may include a name of the target algorithm module, an instance number of the target algorithm module, and the target FPGA node implements the foregoing number The processing performance of the target algorithm module, for example, processing delay, processing precision, and the like, the embodiment of the present invention is not limited thereto.
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。As an optional embodiment, the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
该配置文件库可以存储在该通用处理器节点110中。此时,该通用处理器节点110可以直接查询存储的该配置文件库。或者,该配置文件库可以存储于该系统中的其它节点上。例如,该系统100还包括:共享服务器,并且该配置文件库存储在该共享服务器中。此时,该通用处理器节点110可以通过与该共享服务器之间的通信接口,查询该共享服务器中存储的该配置文件库,并根据查询结果确定该至少一个目标配置文件。The profile repository can be stored in the general purpose processor node 110. At this point, the general purpose processor node 110 can directly query the stored profile library. Alternatively, the profile repository can be stored on other nodes in the system. For example, the system 100 also includes a shared server and the profile repository is stored in the shared server. At this time, the general-purpose processor node 110 may query the configuration file library stored in the shared server through a communication interface with the shared server, and determine the at least one target configuration file according to the query result.
例如,该通用处理器节点110可以向该共享服务器发送查询消息,该查询消息中可以携带该至少一个目标算法模块的信息,例如,该至少一个目标算法模块的标识信息,或者进一步携带该多个FPGA节点的模式信息或该多个FPGA节点中处于省电模式的FPGA节点的信息,本发明实施例不限于此。该共享服务器在接收到该查询消息之后,可以根据该请求消息确定该至少一个目标配置文件,并向该通用处理器节点110发送查询响应,该查询响应中携带用于指示该至少一个目标配置文件的指示信息或携带该至少一个目标配置文件。此时,该通用处理器节点110可以根据该查询响应确定该至少一个目标配置文件,本发明实施例不限于此。For example, the general-purpose processor node 110 may send a query message to the shared server, where the query message may carry information of the at least one target algorithm module, for example, identification information of the at least one target algorithm module, or further carry the multiple The mode information of the FPGA node or the information of the FPGA node in the power saving mode among the plurality of FPGA nodes, the embodiment of the present invention is not limited thereto. After receiving the query message, the shared server may determine the at least one target configuration file according to the request message, and send a query response to the general-purpose processor node 110, where the query response carries the at least one target configuration file. Instructions or carry the at least one target profile. At this time, the general-purpose processor node 110 may determine the at least one target configuration file according to the query response, and the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该共享服务器在接收到该查询消息之后,也可以根据该查询消息中携带的至少一个目标算法模块的信息,确定与该至少一个目标算法模块对应的配置文件的信息,并向该通用处理器节点110发送与该至少一个目标算法模块对应的至少一个配置文件,其中,与该至少一个目标算法模块对应的配置文件可以用于配置FPGA节点实现该目标算法模块。相应地,该通用处理器节点110可以接收该共享服务器发送的用于指示与该至少一个目标算法模块对应的至少一个配置文件的指示信息,并且根据该指示信息,确定该至少一个目标配置文件。具体地,该通用处理器节点110可以根据该至少一个目标算法模块的信息和特定标准,例如速度优先或资源优先,从该指示信息指示的与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。例如,根据该至少一个目标算法模块的 目标数量和目标计算时间,确定该至少一个目标配置文件,但本发明实施例不限于此。As another optional embodiment, after receiving the query message, the sharing server may determine, according to information of the at least one target algorithm module carried in the query message, information about a configuration file corresponding to the at least one target algorithm module. And transmitting, to the general-purpose processor node 110, at least one configuration file corresponding to the at least one target algorithm module, wherein a configuration file corresponding to the at least one target algorithm module may be used to configure the FPGA node to implement the target algorithm module. Correspondingly, the general-purpose processor node 110 may receive the indication information sent by the shared server for indicating at least one configuration file corresponding to the at least one target algorithm module, and determine the at least one target configuration file according to the indication information. Specifically, the general-purpose processor node 110 may be configured according to information of the at least one target algorithm module and a specific criterion, such as speed priority or resource priority, from at least one configuration file corresponding to the at least one target algorithm module indicated by the indication information. Determine the at least one target profile. For example, according to the at least one target algorithm module The target number and the target calculation time determine the at least one target profile, but the embodiment of the present invention is not limited thereto.
作为一个可选实施例,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。In an optional embodiment, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。The information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
该通用处理器节点110可以根据该至少一个目标算法模块的信息,确定实现该至少一个目标算法模块的至少一个目标FPGA节点以及对应的目标配置文件。作为一个可选实施例,该通用处理器节点110从该配置文件库包括的多个配置文件中确定至少一个目标配置文件可以包括:The general purpose processor node 110 may determine, according to information of the at least one target algorithm module, at least one target FPGA node implementing the at least one target algorithm module and a corresponding target configuration file. As an optional embodiment, the determining, by the general-purpose processor node 110, the at least one target configuration file from the plurality of configuration files included in the configuration file library may include:
该通用处理器节点110从该多个配置文件中确定与该目标算法模块对应的至少一个配置文件;The general purpose processor node 110 determines at least one configuration file corresponding to the target algorithm module from the plurality of configuration files;
该通用处理器节点110根据该目标算法模块的信息,从与该目标算法模块对应的至少一个配置文件中确定该目标配置文件。The general purpose processor node 110 determines the target configuration file from at least one configuration file corresponding to the target algorithm module according to the information of the target algorithm module.
该通用处理器节点110可以首先确定与该至少一个目标算法模块对应的至少一个配置文件,并且根据该至少一个目标算法模块的信息,从该至少一个目标算法模块对应的至少一个配置文件中确定至少一个目标配置文件,如果该至少一个目标配置文件对应的FPGA节点的个数为多个,则该通用处理器节点110可以根据一定标准,从与该至少一个目标配置文件对应的多个FPGA节点中确定至少一个目标FPGA节点,该标准可以为随机选择,或者选择对应的多个FPGA节点中处于省电模式的FPGA节点,等等。如果该至少一个目标配置文件对应的FPGA节点的个数为一个,则该通用处理器节点110可以将该至少一个目标配置文件对应的FPGA节点确定为目标FPGA节点,但本发明实施例不限于此。The general purpose processor node 110 may first determine at least one configuration file corresponding to the at least one target algorithm module, and determine at least one at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module. a target configuration file, if the number of the FPGA nodes corresponding to the at least one target configuration file is multiple, the general-purpose processor node 110 may be from a plurality of FPGA nodes corresponding to the at least one target configuration file according to a certain standard. Determining at least one target FPGA node, the standard may be randomly selected, or selecting a corresponding one of a plurality of FPGA nodes in a power saving mode, and the like. If the number of the FPGA nodes corresponding to the at least one target configuration file is one, the general-purpose processor node 110 may determine the FPGA node corresponding to the at least one target configuration file as the target FPGA node, but the embodiment of the present invention is not limited thereto. .
作为另一个可选实施例,该通用处理器节点110还可以根据该多个FPGA节点的当前模式和该至少一个目标算法模块的信息,确定该至少一个目标配置文件和该至少一个目标FPGA节点。相应地,该通用处理器节点110具体用于:As another alternative embodiment, the general purpose processor node 110 may further determine the at least one target configuration file and the at least one target FPGA node according to the current mode of the plurality of FPGA nodes and the information of the at least one target algorithm module. Accordingly, the general purpose processor node 110 is specifically configured to:
从该多个FPGA节点120中确定可用的至少一个FPGA节点;Determining at least one FPGA node available from the plurality of FPGA nodes 120;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置 文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Information according to the at least one target algorithm module and multiple configurations included in the profile library a file, determining at least one target FPGA node from the at least one available FPGA node;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
该通用处理器节点110可以确定该多个FPGA节点120中的每个FPGA节点的当前模式,一个FPGA节点当前可以具有以下两种模式中的一种:省电模式和工作模式,其中,处于省电模式的FPGA节点未配置配置文件或者配置有不用于实现任何有效算法模块的配置文件,处于工作模式的FPGA节点配置有用于实现一种有效算法模块的配置文件。该通用处理器节点110可以将该多个FPGA节点中当前处于省电模式的FPGA节点确定为可用的FPGA节点,但本发明实施例不限于此。The general purpose processor node 110 can determine a current mode of each of the plurality of FPGA nodes 120. An FPGA node can currently have one of two modes: a power saving mode and a working mode, wherein, in the province The electrical mode FPGA node is not configured with a configuration file or is configured with a configuration file that is not used to implement any valid algorithm module. The FPGA node in the working mode is configured with a configuration file for implementing an effective algorithm module. The general-purpose processor node 110 may determine the FPGA node currently in the power-saving mode among the plurality of FPGA nodes as an available FPGA node, but the embodiment of the present invention is not limited thereto.
该通用处理器节点110可以确定与该可用的至少一个FPGA节点以及该至少一个目标算法模块对应的至少一个配置文件,并根据该至少一个配置文件中的基本信息逻辑和该至少一个目标算法模块的性能要求信息,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点和对应的目标配置文件,但本发明实施例不限于此。The general purpose processor node 110 can determine at least one configuration file corresponding to the available at least one FPGA node and the at least one target algorithm module, and based on the basic information logic in the at least one configuration file and the at least one target algorithm module The performance requirement information determines at least one target FPGA node and a corresponding target configuration file from the at least one available FPGA node, but the embodiment of the present invention is not limited thereto.
例如,该至少一个目标算法模块及其目标计算时间具体为:28天线×14个快速傅里叶变换(Fast Fourier Transformation,FFT)模块,目标计算时间为100μs;6天线×13个turbo模块,目标计算时间为50μs。此时,该通用处理器节点110可以确定配置文件库中包括的与FFT模块对应的多个配置文件,并且根据该多个FPGA节点的当前模式、FFT模块对应的多个配置文件以及FFT模块的目标数量和目标计算时间,确定采用三个FPGA节点实现该28×14个FFT模块,并且向该三个FPGA节点中的每个FPGA节点发送用于配置该FPGA节点实现FFT模块的目标配置文件。此外,该通用处理器节点110可以确定配置文件库中包括的与turbo模块对应的多个配置文件,并且根据该多个FPGA节点的当前模式、turbo模块对应的多个配置文件以及该turbo模块的目标数量和目标计算时间,确定采用两个FPGA节点实现该6×13个turbo模块,并且向该两个FPGA节点中的每个FPGA节点发送用于配置该FPGA节点实现turbo模块的目标配置文件。For example, the at least one target algorithm module and its target calculation time are specifically: 28 antennas × 14 Fast Fourier Transformation (FFT) modules, the target calculation time is 100 μs; 6 antennas × 13 turbo modules, targets The calculation time is 50 μs. At this time, the general-purpose processor node 110 may determine a plurality of configuration files corresponding to the FFT module included in the configuration file library, and according to the current mode of the multiple FPGA nodes, the multiple configuration files corresponding to the FFT module, and the FFT module. The target number and target calculation time, it is determined that the 28×14 FFT modules are implemented by three FPGA nodes, and a target configuration file for configuring the FPGA node to implement the FFT module is sent to each of the three FPGA nodes. In addition, the general-purpose processor node 110 may determine a plurality of configuration files corresponding to the turbo module included in the configuration file library, and according to the current mode of the multiple FPGA nodes, multiple configuration files corresponding to the turbo module, and the turbo module. The target number and the target calculation time are determined to implement the 6×13 turbo modules by using two FPGA nodes, and a target configuration file for configuring the FPGA node to implement the turbo module is sent to each of the two FPGA nodes.
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该通用处理器节点110可以从该多个FPGA节点120中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中 的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。As another optional embodiment, the at least one target algorithm module may include at least two different types of algorithm modules, and at this time, the general-purpose processor node 110 may determine at least two target FPGA nodes from the plurality of FPGA nodes 120. Where the at least two target FPGA nodes are Each FPGA target node is used to implement one of the at least two different types of algorithm modules. A target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
在确定该至少一个目标配置文件之前,该通用处理器节点110还可以用于确定该至少一个目标算法模块的信息。作为一个可选实施例,该通用处理器节点110可以根据用户输入,确定该至少一个目标算法模块的信息。该用户输入可以具体为用户输入的指令或用户向通用处理器节点输入的可执行程序,该用户输入可以指示至少一个用户所需的算法模块的信息。作为一个可选实施例,该至少一个用户所需的算法模块可以全部由FPGA节点实现,此时,该通用处理器节点110可以将至少一个所需算法模块确定为该至少一个目标算法模块。作为另一个实施例,该至少一个所需算法模块的数量为多个,此时,该通用处理器节点110可以将多个所需算法模块中的一部分确定为由FPGA节点实现的该目标算法模块,而另一部分算法模块由通用处理器节点110实现。The general purpose processor node 110 can also be used to determine information for the at least one target algorithm module prior to determining the at least one target configuration file. As an alternative embodiment, the general purpose processor node 110 can determine information of the at least one target algorithm module based on user input. The user input can be specifically an instruction input by the user or an executable program input by the user to the general purpose processor node, the user input can indicate information of the algorithm module required by at least one user. As an optional embodiment, the algorithm modules required by the at least one user may all be implemented by the FPGA node. In this case, the general-purpose processor node 110 may determine at least one required algorithm module as the at least one target algorithm module. As another embodiment, the number of the at least one required algorithm module is multiple. At this time, the general-purpose processor node 110 may determine a part of the plurality of required algorithm modules as the target algorithm module implemented by the FPGA node. And another portion of the algorithm module is implemented by the general purpose processor node 110.
相应地,在该通用处理器节点110从该配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,该通用处理器节点110还用于:Correspondingly, before the general-purpose processor node 110 determines at least one target configuration file from the plurality of configuration files included in the configuration file library, the general-purpose processor node 110 is further configured to:
根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input;
从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。Determining, by the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes, wherein an algorithm module other than the at least one target module of the plurality of required algorithm modules is processed by the general Node implementation.
此时,该多个所需算法模块可以由该至少一个目标算法模块和至少一个其它算法模块组成,其中,该至少一个目标算法模块由FPGA节点120实现,该至少一个其它算法模块由通用处理器节点110实现,并且该其它算法模块可以与该至少一个目标算法模块具有不同的种类。该通用处理器节点110可以通过多种方式确定该至少一个目标算法模块。具体地,该通用处理器节点110可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该通用处理器节点110可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点 上实现。该通用处理器节点110还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM处理节点)处理FFT算法模块的时间比FPGA长,则该通用处理器节点110可以将该FFT算法模块确定为该至少一个目标算法模块,以使得FFT模块在FPGA节点上实现,但本发明实施例不限于此。At this time, the plurality of required algorithm modules may be composed of the at least one target algorithm module and at least one other algorithm module, wherein the at least one target algorithm module is implemented by the FPGA node 120, and the at least one other algorithm module is configured by a general purpose processor Node 110 is implemented and the other algorithm modules can be of a different kind than the at least one target algorithm module. The general purpose processor node 110 can determine the at least one target algorithm module in a variety of ways. Specifically, the general purpose processor node 110 can determine the at least one target algorithm module using a power consumption minimum principle. For example, in a scenario where the power consumption limitation is high, if the FFT algorithm is implemented in the FPGA, the calculation time is long, but the power consumption of the FPGA node when implementing the FFT algorithm is lower than that of the general-purpose processor, the general-purpose processor node 110 can Determining the FFT algorithm module as a target algorithm module such that the FFT module is at the FPGA node Implemented on. The general purpose processor node 110 can also determine the at least one target algorithm module using a computation time optimal strategy. For example, in a scenario with real-time requirements for computation time, if a general-purpose processor node (eg, an ARM processing node) processes the FFT algorithm module longer than the FPGA, the general-purpose processor node 110 can determine the FFT algorithm module as The at least one target algorithm module is such that the FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
在图2所示的例子中,该多个所需算法模块包括1个算法1模块、3个算法2模块、1个算法3模块、1个算法4模块、2个算法5模块和3个算法6模块。该通用处理器节点110确定算法1模块、算法3模块和算法4模块由该通用处理器节点110自身实现,并且算法2模块、算法5模块和算法6模块由FPGA节点实现。可选地,该算法1-6可以分别为传输块循环冗余校验(Transport Block Cyclic Redundancy Check,TB-CRC)、编码块循环冗余校验(Code Block Cyclic Redundancy Check,CB-CRC)、加扰(scramble)或正交幅度调制(Quantized Amplitude Modulation,QAM)、解调参考信号(DMRS)或物理下行共享信道(Physical Downlink Shared Channel,PDSCH)或资源单元映射(Resource Element Map,Re-Map)、BF(Beamforming)/RS(Reference Signal)-Map和快速傅里叶变换(Fast Fourier Transformation,FFT),但本发明实施例不限于此。In the example shown in FIG. 2, the plurality of required algorithm modules include one algorithm 1 module, three algorithm 2 modules, one algorithm 3 module, one algorithm 4 module, two algorithm 5 modules, and three algorithms. 6 modules. The general purpose processor node 110 determines that the algorithm 1 module, the algorithm 3 module, and the algorithm 4 module are implemented by the general purpose processor node 110 itself, and the algorithm 2 module, the algorithm 5 module, and the algorithm 6 module are implemented by the FPGA node. Optionally, the algorithm 1-6 may be a Transport Block Cyclic Redundancy Check (TB-CRC) and a Code Block Cyclic Redundancy Check (CB-CRC), respectively. Scrambling or Quantized Amplitude Modulation (QAM), Demodulation Reference Signal (DMRS) or Physical Downlink Shared Channel (PDSCH) or Resource Element Map (Re-Map) BF (Beamforming) / RS (Reference Signal) - Map and Fast Fourier Transformation (FFT), but the embodiment of the present invention is not limited thereto.
该通用处理器节点110可以向该至少一个目标PFGA节点中的每个目标FPGA节点发送配置消息,该配置消息可以携带用于指示为该目标FPGA节点分配的目标配置文件的指示信息,或者携带为该目标FPGA节点分配的目标配置文件。每个目标FPGA节点在接收到通用处理器节点发送的配置消息之后,可以根据该配置消息获取该目标配置文件,并执行针对该目标配置文件的配置操作。其中,在配置了该目标配置文件之后,该目标FPGA节点中例化的一种目标算法模块的个数等于该目标配置文件的基本信息逻辑中描述的例化个数,并且该目标FPGA节点中例化的多个目标算法模块按序编号。此外,在该目标FPGA节点配置了对应的目标配置文件之后,该目标FPGA节点就处于工作模式,此时,该目标FPGA节点所需的逻辑资源将被使用。其中,在未接收到该通用处理器节点110发送的待处理数据时,该目标FPGA节点仅实现“基本信息逻辑”和“接口逻辑”,其它逻辑资源将不被使用,以降低FPGA节点的功耗,其中,该其它逻辑资源包括但不限于:Bram、Slice、DSP、DCM和DLL等。作为另一个可选实施例,该通用处理 器节点110还用于:The general purpose processor node 110 may send a configuration message to each of the at least one target PFGA node, the configuration message may carry indication information indicating a target configuration file allocated for the target FPGA node, or be carried as The target profile assigned by the target FPGA node. After receiving the configuration message sent by the general-purpose processor node, each target FPGA node may acquire the target configuration file according to the configuration message, and perform a configuration operation for the target configuration file. After the target configuration file is configured, the number of the target algorithm modules instantiated in the target FPGA node is equal to the number of instantiations described in the basic information logic of the target configuration file, and the target FPGA node is in the target FPGA node. The instantiated multiple target algorithm modules are numbered sequentially. In addition, after the target FPGA node is configured with the corresponding target configuration file, the target FPGA node is in the working mode, and the logic resources required by the target FPGA node are used. Wherein, when the data to be processed sent by the general-purpose processor node 110 is not received, the target FPGA node only implements “basic information logic” and “interface logic”, and other logic resources will not be used to reduce the performance of the FPGA node. Consumption, wherein the other logical resources include but are not limited to: Bram, Slice, DSP, DCM, DLL, and the like. As another alternative embodiment, the general processing The node node 110 is also used to:
确定该至少一个目标FPGA节点的调用次序;Determining a calling order of the at least one target FPGA node;
根据该调用次序,向至少一个该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。And according to the calling sequence, sending a call message to the at least one target FPGA node, the call message is used to indicate that the target FPGA node processes the data to be processed by using the specified target algorithm module.
相应地,该目标FPGA节点还用于:接收该通用处理器节点110发送的该调用消息,根据该调用消息对该处理数据进行处理,并向该通用处理器节点发送处理结果。Correspondingly, the target FPGA node is further configured to: receive the call message sent by the general-purpose processor node 110, process the processed data according to the call message, and send the processing result to the general-purpose processor node.
该通用处理器节点110可以根据用户输入和该至少一个FPGA节点分别实现的目标算法模块,确定该至少一个目标FPGA节点的调用次序,并按照该次序调用该至少一个目标FPGA节点。当该通用处理器节点110调用该至少一个目标FPGA节点中的某个目标FPGA节点时,该通用处理器节点110可以向该目标FPGA节点发送调用消息,该调用消息可以用于指示该目标FPGA节点采用多个例化的目标算法模块中的指定的目标算法模块,对待处理数据进行处理。The general purpose processor node 110 can determine the calling order of the at least one target FPGA node according to the user input and the target algorithm module respectively implemented by the at least one FPGA node, and invoke the at least one target FPGA node according to the order. When the general purpose processor node 110 invokes a target one of the at least one target FPGA node, the general purpose processor node 110 may send an invocation message to the target FPGA node, the invocation message may be used to indicate the target FPGA node. The data to be processed is processed by using a specified target algorithm module in a plurality of instantiated target algorithm modules.
可选地,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号。此时,该调用消息携带该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。该目标FPGA节点可以采用该调用消息中携带的编号信息对应的目标算法模块,对该待处理数据进行处理,并向该通用处理器节点110返回处理结果。Optionally, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node. At this time, the invocation message carries the address information of the target FPGA node, the number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data. The target FPGA node may process the to-be-processed data by using the target algorithm module corresponding to the number information carried in the call message, and return the processing result to the general-purpose processor node 110.
作为一个可选实施例,该调用消息可以采用调用函数的形式来实现,其中,该调用函数可以具有以下形式:Func fft(dst IP,src IP,fft module num,data),其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用fft模块的编号,data表示待处理数据。As an optional embodiment, the call message may be implemented in the form of a call function, wherein the call function may have the following form: Func fft (dst IP, src IP, fft module num, data), where fft() Represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP represents the address of the source node (ie, the general processor node), fft module num represents the number of the calling fft module, and data represents the data to be processed.
在图3所示的例子中,九个FPGA节点120(加速卡)用于实现FFT模块,每个FPGA节点上例化有多个FFT模块。七个FPGA节点120用于实现turbo模块,每个FPGA节点上可以例化有多个turbo模块。该通用处理器节点110可以通过交换机发送调用消息,该调用消息指示调用哪个FPGA节点以及调用该FPGA节点上的哪个算法模块,但本发明实施例不限于此。 In the example shown in FIG. 3, nine FPGA nodes 120 (acceleration cards) are used to implement the FFT module, and each FPGA node is instantiated with multiple FFT modules. Seven FPGA nodes 120 are used to implement turbo modules, and each turbo node can be instantiated with multiple turbo modules. The general purpose processor node 110 can send an invocation message through the switch, which instructs which FPGA node is called and which algorithm module on the FPGA node is invoked, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该通用处理器节点110还用于:As another alternative embodiment, the general purpose processor node 110 is further configured to:
向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者Transmitting mode transition indication information to the first target FPGA node of the at least one target FPGA node, the mode transition indication information is used to indicate that the first target FPGA node enters a power saving mode; or
将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。Adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
该通用处理器节点110的上述节点资源配置功能可以由该通用处理器节点110中的资源管理模块来实现。作为另一个可选实施例,该通用处理器节点110可以在初始化时或者在数据处理的过程中确定需要释放FPGA节点资源,以节省FPGA资源。具体地,当该通用处理器节点确定需要释放FPGA节点资源(例如释放第一目标FPGA节点)时,该通用处理器节点可以将该第一目标FPGA节点的模式由工作模式配置为省电模式,或者将该第一目标FPGA节点从该通用处理器节点中存储的待调用FPGA节点列表中删除,以使得该通用处理器节点在当前的数据处理过程中不调用该第一目标FPGA节点,并且该通用处理器节点可以为该第一目标FPGA节点分配新的配置文件。此时,该通用处理器节点中的控制模块可以向资源管理模块发送资源释放消息,该资源释放消息可以通过资源释放函数delete_FPGA_card(IP_addr)的形式实现,其中,IP_addr表示释放的FPGA节点的地址,但本发明实施例不限于此。The above described node resource configuration function of the general purpose processor node 110 can be implemented by a resource management module in the general purpose processor node 110. As another alternative embodiment, the general purpose processor node 110 may determine that FPGA node resources need to be released during initialization or during data processing to save FPGA resources. Specifically, when the general purpose processor node determines that the FPGA node resource needs to be released (for example, releasing the first target FPGA node), the general purpose processor node may configure the mode of the first target FPGA node from the working mode to the power saving mode. Or deleting the first target FPGA node from the list of to-be-called FPGA nodes stored in the general-purpose processor node, so that the general-purpose processor node does not invoke the first target FPGA node during current data processing, and A general purpose processor node can assign a new configuration file to the first target FPGA node. At this time, the control module in the general-purpose processor node may send a resource release message to the resource management module, where the resource release message may be implemented in the form of a resource release function delete_FPGA_card (IP_addr), where IP_addr represents the address of the released FPGA node. However, embodiments of the invention are not limited thereto.
作为一个可选实施例,为了进一步降低该FPGA节点的功耗,该通用处理器节点可以向该第一目标FPGA节点发送用于指示该第一目标FPGA节点进入省电模式的模式转换指示信息,该第一目标FPGA节点在接收到该模式转换指示信息时,可以获取一个不用于配置该第一目标FPGA节点实现任何有效算法模块的空闲配置文件,并执行针对该空闲配置文件的配置操作。这样,该第一目标FPGA节点可以处于省电模式,但本发明实施例不限于此。As an optional embodiment, in order to further reduce the power consumption of the FPGA node, the general-purpose processor node may send, to the first target FPGA node, mode conversion indication information for indicating that the first target FPGA node enters a power saving mode, When receiving the mode switching indication information, the first target FPGA node may acquire an idle configuration file that is not used to configure the first target FPGA node to implement any valid algorithm module, and perform a configuration operation for the idle configuration file. In this way, the first target FPGA node may be in the power saving mode, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该通用处理器节点还可以在数据处理过程中申请新的FPGA节点资源。此时,该通用处理器节点可以从处于省电模式的至少一个FPGA节点中确定第二目标FPGA节点,并将该第二目标FPGA节点添加至该至少一个目标FPGA节点中。具体地,该通用处理器节点110可以确定该第二目标FPGA节点对应的配置文件,并向该第二目标FPGA节点发送该对应的配置文件。 As another alternative embodiment, the general purpose processor node may also request new FPGA node resources during data processing. At this time, the general purpose processor node may determine the second target FPGA node from the at least one FPGA node in the power saving mode, and add the second target FPGA node to the at least one target FPGA node. Specifically, the general-purpose processor node 110 may determine a configuration file corresponding to the second target FPGA node, and send the corresponding configuration file to the second target FPGA node.
此时,该通用处理器节点110的控制模块可以向资源管理模块发送资源请求消息,该资源请求消息可以通过资源请求函数create_FPGA_card(算法模块名称,算法模块数量,计算时间)的形式实现。该资源管理模块可以根据该资源请求消息确定该第二目标FPGA节点,并向该控制模块发送携带该第二目标FPGA节点的信息的资源请求响应,但本发明实施例不限于此。At this time, the control module of the general-purpose processor node 110 may send a resource request message to the resource management module, and the resource request message may be implemented in the form of a resource request function create_FPGA_card (algorithm module name, number of algorithm modules, calculation time). The resource management module may determine the second target FPGA node according to the resource request message, and send a resource request response carrying the information of the second target FPGA node to the control module, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该系统100可以包括多个通用处理器节点和多个FPGA节点。如图4所示,该用于处理数据的系统100可以包括M1个通用处理器节点、M2个FPGA节点和交换机,M1和M2均为大于1的整数,其中,该M1个通用处理器节点中的每个通用处理器节点可以与M2个FPGA节点中的部分或所有FPGA节点进行通信,该M2个FPGA节点中的每个FPGA节点可以与M1个通用处理器节点中的部分或所有通用处理器节点进行通信。可选地,该系统100可以采用10G以太网(10gigabit Ethernet,10GE)或infiniband网络进行通信,但本发明实施例不限于此。该M1个通用处理器节点中的每个通用处理器节点中可以存储有配置文件库,该配置文件库可以包括该M2个FPGA节点中的每个FPGA节点对应的多个配置文件,其中,与同一个FPGA节点对应的多个配置文件可以分别用于配置该FPGA节点实现系统可用的多种不同的算法模块,每个配置文件用于配置该FPGA节点实现一种算法模块,但本发明实施例不限于此。As another alternative embodiment, the system 100 can include a plurality of general purpose processor nodes and a plurality of FPGA nodes. 4, the system for processing data 100 may include a general-purpose processor nodes M 1, M 2 th FPGA nodes and switches, M 1 and M 2 are integers greater than 1, wherein the M 1 th each general purpose processor, a general purpose processor node node may communicate with node M 2 th FPGA FPGA some or all nodes, each node of the FPGA FPGA M 2 th node M 1 may be the general purpose processor nodes Some or all of the general purpose processor nodes in the communication. Optionally, the system 100 can communicate by using 10Gigabit Ethernet (10GE) or infiniband network, but the embodiment of the present invention is not limited thereto. Each of the general-purpose processor node M 1 in the general-purpose processor nodes may be stored in the profile database, which profile database may include a plurality of profiles each FPGA M 2 th node of the node corresponding to the FPGA, wherein Multiple configuration files corresponding to the same FPGA node may be used to configure a plurality of different algorithm modules available to the FPGA node implementation system, and each configuration file is used to configure the FPGA node to implement an algorithm module, but the present invention The embodiment is not limited to this.
应注意,图2至图4的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图2至图4的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。It should be noted that the examples of FIG. 2 to FIG. 4 are intended to assist those skilled in the art to better understand the embodiments of the present invention and are not intended to limit the scope of the embodiments of the present invention. A person skilled in the art will be able to make various modifications and changes in accordance with the examples of FIG. 2 to FIG. 4, and such modifications or variations are also within the scope of the embodiments of the present invention.
因此,根据本发明实施例的用于处理数据的系统,通过设置标准的配置文件库,并且通用处理器节点根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。 Therefore, a system for processing data according to an embodiment of the present invention, by setting a standard profile library, and a general-purpose processor node determining from a plurality of profiles included in the profile library according to information of at least one target algorithm module At least one target profile, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node to each of the at least one target FPGA node The target FPGA node sends a configuration message indicating the target configuration file corresponding to the target FPGA node, which can virtualize the FPGA node resources, and convert the FPGA program development process into a program development process of the general processor node, thereby shortening the FPGA The program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
图5示意性地示出了本发明实施例提供的用于处理数据的装置200,该装置200应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图5所示,该装置200包括:FIG. 5 is a schematic diagram of an apparatus 200 for processing data according to an embodiment of the present invention. The apparatus 200 is applied to a system for processing data. The system is provided with a configuration file library, and the configuration file library includes multiple sites. At least one configuration file corresponding to each FPGA node in the gate array FPGA node may be edited, and each configuration file corresponding to each FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 5, the apparatus 200 includes:
确定单元210,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;The determining unit 210 is configured to determine, according to the information of the at least one target algorithm module, at least one target configuration file from the plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the plurality of FPGA nodes. The target FPGA node implements the target algorithm module;
发送单元220,用于向该确定单元210确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。The sending unit 220 is configured to send, to the at least one target FPGA node determined by the determining unit 210, a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to The configuration message of the target profile can virtualize the FPGA node resources and convert the FPGA program development process into the program development flow of the general processor node, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development. Improve system performance and user experience.
作为一个可选实施例,该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。As an optional embodiment, the configuration file library may include multiple configuration files, wherein each of the multiple configuration files may be used only for configuring one FPGA node to implement an algorithm module, and the multiple At least one configuration file corresponding to each of the plurality of FPGA nodes may be included in the configuration file.
作为另一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。 As another optional embodiment, for the same FPGA node, the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files. The configuration file corresponding to an algorithm module is used to configure an FPGA node to implement the algorithm module. In addition, for the same FPGA node, each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In an optional embodiment, the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。At this time, the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm module being different from the second An algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。As another optional embodiment, the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
该配置文件库中的算法可以为通信系统的算法、图像处理领域的算法或大数据领域的算法,本发明实施例对此不做限定。The algorithm in the configuration file library may be an algorithm of the communication system, an algorithm in the field of image processing, or an algorithm in the field of big data, which is not limited by the embodiment of the present invention.
可选地,该目标配置文件包括:Optionally, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。As an optional embodiment, the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
该配置文件库可以存储在该装置200中。此时,该装置200还可以包括用于存储该配置文件库的存储单元,相应地,该确定单元210可以通过查询该存储单元存储的该配置文件库,确定该至少一个目标配置文件。或者,该配置文件库可以存储于其它节点中,例如,共享服务器,等等。此时,该确定单元210可以通过查询该共享服务器中存储的该配置文件库,确定该至少一个目标配置文件。The profile repository can be stored in the device 200. At this time, the device 200 may further include a storage unit for storing the configuration file library. Accordingly, the determining unit 210 may determine the at least one target configuration file by querying the configuration file library stored by the storage unit. Alternatively, the profile repository can be stored in other nodes, such as a shared server, and the like. At this time, the determining unit 210 may determine the at least one target configuration file by querying the configuration file library stored in the shared server.
例如,该确定单元210可以包括发送子单元、接收子单元和确定子单元,该发送子单元可以用于向该共享服务器发送查询消息,该查询消息中可以携带该至少一个目标算法模块的信息,例如,该至少一个目标算法模块的标识 信息,或者进一步携带该多个FPGA节点的模式信息或该多个FPGA节点中处于省电模式的FPGA节点的信息,本发明实施例不限于此。该共享服务器在接收到该查询消息之后,可以根据该请求消息确定该至少一个目标配置文件,并向该装置200发送查询响应,该查询响应中携带用于指示该至少一个目标配置文件的指示信息或携带该至少一个目标配置文件。此时,该接收子单元可以接收该共享服务器发送的该查询响应,该确定子单元可以根据接收子单元接收的该查询响应,确定该至少一个目标配置文件,本发明实施例不限于此。For example, the determining unit 210 may include a sending subunit, a receiving subunit, and a determining subunit, where the sending subunit may be configured to send a query message to the shared server, where the query message may carry information of the at least one target algorithm module. For example, the identity of the at least one target algorithm module The information, or further carrying the mode information of the multiple FPGA nodes or the information of the FPGA nodes in the power saving mode among the plurality of FPGA nodes, the embodiment of the present invention is not limited thereto. After receiving the query message, the shared server may determine the at least one target configuration file according to the request message, and send a query response to the device 200, where the query response carries indication information indicating the at least one target configuration file. Or carry the at least one target profile. At this time, the receiving subunit may receive the query response sent by the shared server, and the determining subunit may determine the at least one target configuration file according to the query response received by the receiving subunit, and the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该共享服务器在接收到该发送子单元发送的该查询消息之后,也可以根据该查询消息中携带的至少一个目标算法模块的信息,确定与该至少一个目标算法模块对应的配置文件的信息,并向该装置200发送与该至少一个目标算法模块对应的至少一个配置文件,其中,与该至少一个目标算法模块对应的配置文件可以用于配置FPGA节点实现该目标算法模块。相应地,该接收子单元可以接收该共享服务器发送的用于指示与该至少一个目标算法模块对应的至少一个配置文件的指示信息,该确定子单元可以根据该接收子单元接收的该指示信息,确定该至少一个目标配置文件。具体地,该确定子单元可以根据该至少一个目标算法模块的信息和特定标准,例如速度优先或资源优先,从该指示信息指示的与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。例如,根据该至少一个目标算法模块的目标数量和目标计算时间,确定该至少一个目标配置文件,但本发明实施例不限于此。As another optional embodiment, after receiving the query message sent by the sending subunit, the sharing server may determine, according to the information of the at least one target algorithm module carried in the query message, the at least one target algorithm module. Corresponding configuration file information, and sending at least one configuration file corresponding to the at least one target algorithm module to the device 200, where the configuration file corresponding to the at least one target algorithm module can be used to configure the FPGA node to implement the target algorithm Module. Correspondingly, the receiving subunit may receive indication information that is sent by the sharing server to indicate at least one configuration file corresponding to the at least one target algorithm module, and the determining subunit may be configured according to the indication information received by the receiving subunit. Determine the at least one target profile. Specifically, the determining subunit may determine, according to the information of the at least one target algorithm module and a specific criterion, such as speed priority or resource priority, from the at least one configuration file corresponding to the at least one target algorithm module indicated by the indication information. At least one target profile. For example, the at least one target profile is determined according to the target number of the at least one target algorithm module and the target calculation time, but the embodiment of the present invention is not limited thereto.
可选地,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。Optionally, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。The information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
作为一个可选实施例,该确定单元210具体用于:As an optional embodiment, the determining unit 210 is specifically configured to:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。 Determining the at least one target configuration file from the at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
作为一个可选实施例,该确定单元210可以根据该多个FPGA节点的当前模式,确定与至少一个目标算法模块对应的至少一个目标配置文件。此时,该确定单元210具体用于:As an optional embodiment, the determining unit 210 may determine at least one target configuration file corresponding to the at least one target algorithm module according to the current mode of the multiple FPGA nodes. At this time, the determining unit 210 is specifically configured to:
从该多个FPGA节点中确定可用的至少一个FPGA节点;Determining at least one FPGA node available from the plurality of FPGA nodes;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该确定单元210可以从该多个FPGA节点中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。As another optional embodiment, the at least one target algorithm module may include at least two different types of algorithm modules. In this case, the determining unit 210 may determine at least two target FPGA nodes from the plurality of FPGA nodes, where Each of the at least two target FPGA nodes is configured to implement one of the at least two different types of algorithm modules. A target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
作为另一个可选实施例,该确定单元210还用于:As another optional embodiment, the determining unit 210 is further configured to:
在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input before determining at least one target profile from the plurality of profiles included in the profile library;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the at least one of the plurality of required algorithm modules Algorithm modules outside the target module are implemented by the general purpose processor node.
该确定单元210可以通过多种方式确定该至少一个目标算法模块。具体地,该确定单元210可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该确定单元210可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点上实现。该确定单元210还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM)处理FFT算法模块的时间比FPGA长,则该确定单元210可以将该FFT算法模块确定为该至少一个目标算法模块,以使 得FFT模块在FPGA节点上实现,但本发明实施例不限于此。The determining unit 210 can determine the at least one target algorithm module in a plurality of manners. Specifically, the determining unit 210 may determine the at least one target algorithm module by using a power consumption minimum principle. For example, in a scenario where the power consumption limitation is high, if the FFT algorithm is implemented in the FPGA, the calculation time is long, but the power consumption of the FPGA node when implementing the FFT algorithm is lower than that of the general-purpose processor, the determining unit 210 may perform the FFT. The algorithm module is determined to be a target algorithm module such that the FFT module is implemented on the FPGA node. The determining unit 210 may also determine the at least one target algorithm module by using a calculation time optimal strategy. For example, in a scenario where the computing time has real-time requirements, if the general processor node (eg, ARM) processes the FFT algorithm module longer than the FPGA, the determining unit 210 may determine the FFT algorithm module as the at least one target. Algorithm module to make The FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该装置200还可以确定该至少一个目标FPGA节点的调用次序并根据该次序调用该至少一个目标FPGA节点。此时,该确定单元210还用于确定该至少一个目标FPGA节点的调用次序;As another alternative embodiment, the apparatus 200 can also determine the calling order of the at least one target FPGA node and invoke the at least one target FPGA node in accordance with the order. At this time, the determining unit 210 is further configured to determine a calling order of the at least one target FPGA node;
该发送单元220还用于根据该确定单元210确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。The sending unit 220 is further configured to send, according to the calling sequence determined by the determining unit 210, a call message to the target FPGA node, where the call message is used to instruct the target FPGA node to process the data to be processed by using the specified target algorithm module.
相应地,该装置200还包括:接收单元,用于接收该目标FPGA节点根据该发送单元220发送的该调用消息发送的数据处理结果。Correspondingly, the apparatus 200 further includes: a receiving unit, configured to receive a data processing result sent by the target FPGA node according to the call message sent by the sending unit 220.
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As an optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
该调用消息可以采用调用函数Func fft(dst IP,src IP,fft module num,data)来实现,其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用的fft模块的编号,data表示待处理数据,但本发明实施例不限于此。The call message can be implemented by calling the function Func fft(dst IP, src IP, fft module num, data), where fft() represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP Indicates the address of the source node (ie, the general-purpose processor node), the fft module num indicates the number of the called fft module, and the data indicates the data to be processed, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该发送单元220还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者As another optional embodiment, the sending unit 220 is further configured to send, to the first target FPGA node of the at least one target FPGA node, mode switching indication information, where the mode switching indication information is used to indicate that the first target FPGA node enters Power saving mode; or
该确定单元210还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。The determining unit 210 is further configured to add an FPGA node other than the at least one target FPGA node to the at least one target FPGA node.
本发明实施例提供的装置200可对应于根据本发明实施例的用于处理数据的系统中的通用处理器节点110,并且装置200中的各个模块的上述和其它操作可以用于实现通用处理器节点110的功能,为了简洁,在此不再赘述。The apparatus 200 provided by the embodiments of the present invention may correspond to the general-purpose processor node 110 in a system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 200 may be used to implement a general-purpose processor. The function of the node 110 is not described here for brevity.
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节 点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node sends to each of the at least one target FPGA node to indicate the target FPGA section The configuration message of the target configuration file corresponding to the point can virtualize the FPGA node resources and convert the program development flow of the FPGA into the program development process of the general processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of the FPGA program development. Degrees to improve system performance and user experience.
图6示出了本发明另一实施例提供的用于处理数据的装置300。该装置300应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图6所示,该装置300包括:FIG. 6 shows an apparatus 300 for processing data provided by another embodiment of the present invention. The apparatus 300 is applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each of the Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 6, the apparatus 300 includes:
接收单元310,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;The receiving unit 310 is configured to receive a call message sent by the general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured to enable the FPGA node to achieve the target The target configuration file of the algorithm module;
处理单元320,用于根据该接收单元310接收的该调用消息,对该待处理数据进行处理,以获得处理结果;The processing unit 320 is configured to process the to-be-processed data according to the call message received by the receiving unit 310 to obtain a processing result.
发送单元330,用于向该通用处理器节点发送该处理单元320获得的该处理结果。The sending unit 330 is configured to send the processing result obtained by the processing unit 320 to the general-purpose processor node.
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose The call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
该FPGA节点配置有用于使得该FPGA节点实现目标算法模块的目标配置文件。具体地,该FPGA节点中可以例化有具有同一种类型的多个目标算法模块,其中,该例化的多个该目标算法模块按序编号。The FPGA node is configured with a target configuration file for causing the FPGA node to implement a target algorithm module. Specifically, a plurality of target algorithm modules having the same type may be instantiated in the FPGA node, wherein the plurality of the target algorithm modules of the instantiation are sequentially numbered.
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As an optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。 The call message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
可选地,作为另一实施例,在接收通用处理器节点发送的调用消息之前,该接收单元310还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件。相应地,该装置300还包括:Optionally, as another embodiment, before receiving the call message sent by the general-purpose processor node, the receiving unit 310 is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the general-purpose processor. The target profile assigned by the node to the FPGA node. Accordingly, the apparatus 300 further includes:
获取单元,用于根据该接收单元310接收的该配置消息,获取该目标配置文件;An obtaining unit, configured to acquire the target configuration file according to the configuration message received by the receiving unit 310;
配置单元,用于根据该获取单元获取的该目标配置文件,执行配置操作。And a configuration unit, configured to perform a configuration operation according to the target configuration file acquired by the acquiring unit.
作为一个可选实施例,该配置消息携带该目标配置文件。此时,该获取单元具体用于从该配置消息中获取该目标配置文件。As an optional embodiment, the configuration message carries the target configuration file. At this time, the obtaining unit is specifically configured to obtain the target configuration file from the configuration message.
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,该获取单元具体用于根据该配置消息中携带的该指示信息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。As another alternative embodiment, the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile. At this time, the obtaining unit is specifically configured to obtain the target configuration file from the configuration file library set by the general-purpose processor node according to the indication information carried in the configuration message.
可选地,作为另一实施例,该目标配置文件包括:Optionally, as another embodiment, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;Basic information logic for describing the FPGA node and the target algorithm module;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
可选地,作为另一实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。Optionally, as another embodiment, the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the FPGA node. Data processing performance when implementing the target algorithm module.
可选地,作为另一实施例,该接收单元310还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;Optionally, in another embodiment, the receiving unit 310 is further configured to receive the mode switching indication information sent by the general-purpose processor node, where the mode switching indication information is used to indicate that the FPGA node enters a power saving mode;
该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。The configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
作为一个可选实施例,该空闲配置文件包括:As an optional embodiment, the idle configuration file includes:
基本信息逻辑,用于描述该FPGA节点;Basic information logic for describing the FPGA node;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。 Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
本发明实施例提供的装置300可对应于根据本发明实施例的用于处理数据的系统中的目标FPGA节点120,并且装置300中的各个模块的上述和其它操作可以用于实现目标FPGA节点120的功能,为了简洁,在此不再赘述。The apparatus 300 provided by the embodiments of the present invention may correspond to the target FPGA node 120 in the system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 300 may be used to implement the target FPGA node 120. The function, for the sake of brevity, will not be repeated here.
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose The call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
图7示意性地示出了本发明实施例提供的用于处理数据的装置400,该装置400应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图7所示,该装置400包括:FIG. 7 is a schematic diagram of an apparatus 400 for processing data according to an embodiment of the present invention. The apparatus 400 is applied to a system for processing data, and the system is provided with a configuration file library, and the configuration file library includes a plurality of sites. At least one configuration file corresponding to each FPGA node in the gate array FPGA node may be edited, and each configuration file corresponding to each FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 7, the apparatus 400 includes:
处理器410,用于根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;The processor 410 is configured to determine, according to the information of the at least one target algorithm module, at least one target configuration file from the plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the plurality of FPGA nodes. The target FPGA node implements the target algorithm module;
发送器420,用于向该处理器410确定的至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。The transmitter 420 is configured to send, to the at least one target FPGA node determined by the processor 410, a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to The configuration message of the target profile can virtualize the FPGA node resources and convert the FPGA program development process into the program development flow of the general processor node, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development. Improve system performance and user experience.
应理解,在本发明实施例中,该处理器410可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器410还可以是其他通用处理器、 数字信号处理器(DSP)、专用集成电路(ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that, in the embodiment of the present invention, the processor 410 may be a central processing unit ("CPU"), and the processor 410 may also be other general-purpose processors. Digital signal processor (DSP), application specific integrated circuit (ASIC) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
该用于处理数据的装置400还可以包括存储器,该存储器可以包括只读存储器和随机存取存储器,并向处理器410提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。The apparatus 400 for processing data may also include a memory, which may include read only memory and random access memory, and provides instructions and data to the processor 410. A portion of the memory may also include a non-volatile random access memory. For example, the memory can also store information of the device type.
在实现过程中,上述方法的各步骤可以通过处理器410中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器410读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。In the implementation process, each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 410 or an instruction in a form of software. The steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor. The software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like. The storage medium is located in the memory, and the processor 410 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
该配置文件库可以包括多个配置文件,其中,该多个配置文件中的每个配置文件可以仅用于配置一种FPGA节点实现一种算法模块,并且该多个配置文件中可以包括与该多个FPGA节点中的每个FPGA节点对应的至少一个配置文件。The configuration file library may include a plurality of configuration files, wherein each of the plurality of configuration files may be used only for configuring one FPGA node to implement an algorithm module, and the plurality of configuration files may include At least one configuration file corresponding to each of the plurality of FPGA nodes.
作为一个可选实施例,对于同一个FPGA节点,该配置文件库可以包括系统可用的多种算法模块中的每种算法模块对应的配置文件,并且不同的算法模块对应于不同的配置文件,其中,与一种算法模块对应的配置文件用于配置FPGA节点实现该算法模块。此外,对于同一个FPGA节点,该多种算法模块中的每种算法模块可以对应于至少一个配置文件,该至少一个配置文件中的不用配置文件可以用于配置FPGA节点实现不同数量的该种算法模块,并且对应于不同的数据处理性能,但本发明实施例不限于此。As an optional embodiment, for the same FPGA node, the configuration file library may include a configuration file corresponding to each of the multiple algorithm modules available in the system, and different algorithm modules correspond to different configuration files, where The configuration file corresponding to an algorithm module is used to configure the FPGA node to implement the algorithm module. In addition, for the same FPGA node, each of the plurality of algorithm modules may correspond to at least one configuration file, and the non-configuration file in the at least one configuration file may be used to configure the FPGA node to implement different numbers of the algorithms. Modules, and corresponding to different data processing performance, but embodiments of the invention are not limited thereto.
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In an optional embodiment, the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
此时,该多个第一配置文件可以包括对应于第一算法模块的至少一个第一配置文件和对应于第二算法模块的至少一个第一配置文件,该第一算法模 块不同于该第二算法模块,并且该第一算法模块对应的至少一个第一配置文件不同于该第二算法模块对应的至少一个第一配置文件。At this time, the plurality of first configuration files may include at least one first configuration file corresponding to the first algorithm module and at least one first configuration file corresponding to the second algorithm module, the first algorithm mode The block is different from the second algorithm module, and the at least one first configuration file corresponding to the first algorithm module is different from the at least one first configuration file corresponding to the second algorithm module.
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。As another optional embodiment, the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
该配置文件库中的算法可以为通信系统的算法、图像处理领域的算法或大数据领域的算法,本发明实施例对此不做限定。The algorithm in the configuration file library may be an algorithm of the communication system, an algorithm in the field of image processing, or an algorithm in the field of big data, which is not limited by the embodiment of the present invention.
可选地,该目标配置文件包括:Optionally, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
作为一个可选实施例,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。As an optional embodiment, the basic information logic is used to describe the type of the target FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the target FPGA node implementation. Data processing performance when the target algorithm module.
该配置文件库可以存储在该装置400中。此时,该装置400还可以包括用于存储该配置文件库的存储器,相应地,该处理器410可以通过查询该存储器存储的该配置文件库,确定该至少一个目标配置文件。或者,该配置文件库可以存储于其它节点中,例如,共享服务器,等等。此时,该处理器410可以通过查询该共享服务器中存储的该配置文件库,确定该至少一个目标配置文件。The profile repository can be stored in the device 400. At this time, the apparatus 400 may further include a memory for storing the configuration file library, and correspondingly, the processor 410 may determine the at least one target configuration file by querying the configuration file library stored in the memory. Alternatively, the profile repository can be stored in other nodes, such as a shared server, and the like. At this time, the processor 410 may determine the at least one target configuration file by querying the configuration file library stored in the shared server.
可选地,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量和该至少一个目标算法模块的目标处理时间。Optionally, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
该至少一个目标算法模块的信息还可以包括其它性能要求,例如,目标处理精度,等等,本发明实施例对此不做限定。The information of the at least one target algorithm module may also include other performance requirements, for example, target processing precision, and the like, which is not limited by the embodiment of the present invention.
作为一个可选实施例,该处理器410具体用于:As an optional embodiment, the processor 410 is specifically configured to:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对 应的至少一个配置文件中确定该至少一个目标配置文件。And from the at least one target algorithm module according to the information of the at least one target algorithm module The at least one target profile is determined in at least one of the configuration files.
作为一个可选实施例,该处理器410可以根据该多个FPGA节点的当前模式,确定与至少一个目标算法模块对应的至少一个目标配置文件。此时,该处理器410具体用于:As an optional embodiment, the processor 410 may determine at least one target configuration file corresponding to the at least one target algorithm module according to the current mode of the plurality of FPGA nodes. At this time, the processor 410 is specifically configured to:
从该多个FPGA节点中确定可用的至少一个FPGA节点;Determining at least one FPGA node available from the plurality of FPGA nodes;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
作为另一个可选实施例,该至少一个目标算法模块可以包括至少两种不同类型的算法模块,此时,该处理器410可以从该多个FPGA节点中确定至少两个目标FPGA节点,其中,该至少两个目标FPGA节点中的每个FPGA目标节点用于实现该至少两种不同类型的算法模块中的一种算法模块。一个目标FPGA节点可以仅用于实现一种类型的多个目标算法模块,并且不同目标FPGA节点可以用于实现相同种类或不同种类的目标算法模块,本发明实施例不限于此。As another optional embodiment, the at least one target algorithm module may include at least two different types of algorithm modules. In this case, the processor 410 may determine at least two target FPGA nodes from the plurality of FPGA nodes, where Each of the at least two target FPGA nodes is configured to implement one of the at least two different types of algorithm modules. A target FPGA node may be used only to implement multiple target algorithm modules of one type, and different target FPGA nodes may be used to implement the same type or different kinds of target algorithm modules, and embodiments of the present invention are not limited thereto.
作为另一个可选实施例,该处理器410还用于:As another alternative embodiment, the processor 410 is further configured to:
在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input before determining at least one target profile from the plurality of profiles included in the profile library;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the at least one of the plurality of required algorithm modules Algorithm modules outside the target module are implemented by the general purpose processor node.
该处理器410可以通过多种方式确定该至少一个目标算法模块。具体地,该处理器410可以采用功耗最低原则确定该至少一个目标算法模块。例如,在对功耗限制较高的场景下,如果FFT算法在FPGA中实现可能计算时间较长,但是FPGA节点实现FFT算法时的功耗比通用处理器低,则该处理器410可以将FFT算法模块确定为目标算法模块,以使得FFT模块在FPGA节点上实现。该处理器410还可以采用计算时间最优策略确定该至少一个目标算法模块。例如,在对计算时间具有实时性要求的场景下,如果通用处理器节点(例如ARM处理节点)处理FFT算法模块的时间比FPGA长,则该处 理器410可以将该FFT算法模块确定为该至少一个目标算法模块,以使得FFT模块在FPGA节点上实现,但本发明实施例不限于此。The processor 410 can determine the at least one target algorithm module in a variety of ways. Specifically, the processor 410 may determine the at least one target algorithm module by using a power consumption minimum principle. For example, in a scenario where the power consumption limitation is high, if the FFT algorithm is implemented in the FPGA, the calculation time is long, but the power consumption of the FPGA node when implementing the FFT algorithm is lower than that of the general-purpose processor, the processor 410 can perform the FFT. The algorithm module is determined to be a target algorithm module such that the FFT module is implemented on the FPGA node. The processor 410 can also determine the at least one target algorithm module using a computation time optimal strategy. For example, in a scenario where the computation time has real-time requirements, if a general-purpose processor node (such as an ARM processing node) processes the FFT algorithm module longer than the FPGA, then the location The processor 410 may determine the FFT algorithm module as the at least one target algorithm module, so that the FFT module is implemented on the FPGA node, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该处理器410还可以确定该至少一个目标FPGA节点的调用次序并根据该次序调用该至少一个目标FPGA节点。此时,该处理器410还用于确定该至少一个目标FPGA节点的调用次序;As another alternative embodiment, the processor 410 can also determine the calling order of the at least one target FPGA node and invoke the at least one target FPGA node in accordance with the order. At this time, the processor 410 is further configured to determine a calling order of the at least one target FPGA node;
该发送器420还用于根据该处理器410确定的该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理。The transmitter 420 is further configured to send, according to the calling sequence determined by the processor 410, a call message to the target FPGA node, where the call message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module.
相应地,该装置400还包括:接收器,用于接收该目标FPGA节点根据该发送器420发送的该调用消息发送的数据处理结果。Correspondingly, the apparatus 400 further includes: a receiver, configured to receive a data processing result sent by the target FPGA node according to the call message sent by the transmitter 420.
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As an optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
该调用消息可以采用调用函数Func fft(dst IP,src IP,fft module num,data)来实现,其中,fft()表示用于调用fft模块的函数,dst IP表示目的节点的IP地址,src IP表示源节点(即通用处理器节点)的地址,fft module num表示调用的fft模块的编号,data表示待处理数据,但本发明实施例不限于此。The call message can be implemented by calling the function Func fft(dst IP, src IP, fft module num, data), where fft() represents a function for calling the fft module, dst IP represents the IP address of the destination node, src IP Indicates the address of the source node (ie, the general-purpose processor node), the fft module num indicates the number of the called fft module, and the data indicates the data to be processed, but the embodiment of the present invention is not limited thereto.
作为另一个可选实施例,该发送器420还用于向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者As another optional embodiment, the transmitter 420 is further configured to send mode transition indication information to the first target FPGA node of the at least one target FPGA node, where the mode transition indication information is used to indicate that the first target FPGA node enters Power saving mode; or
该处理器410还用于将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。The processor 410 is further configured to add an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
本发明实施例提供的装置400可对应于根据本发明实施例的用于处理数据的系统中的通用处理器节点110,并且装置400中的各个模块的上述和其它操作可以用于实现通用处理器节点110的功能,为了简洁,在此不再赘述。The apparatus 400 provided by the embodiments of the present invention may correspond to the general-purpose processor node 110 in a system for processing data according to an embodiment of the present invention, and the above and other operations of the respective modules in the apparatus 400 may be used to implement a general-purpose processor. The function of the node 110 is not described here for brevity.
因此,根据本发明实施例的用于处理数据的装置,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少 一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration file Each target profile in the file is used to configure a target FPGA node to implement a target algorithm module, and the general processor node is at least Each target FPGA node in a target FPGA node sends a configuration message indicating a target profile corresponding to the target FPGA node, which can virtualize the FPGA node resources and convert the FPGA program development process into a general-purpose processor node. Program development process to shorten the FPGA development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
图8示出了本发明另一实施例提供的用于处理数据的装置500。该装置500应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图8所示,该装置500包括:FIG. 8 illustrates an apparatus 500 for processing data provided by another embodiment of the present invention. The apparatus 500 is applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each of the Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 8, the apparatus 500 includes:
接收器510,用于接收通用处理器节点发送的调用消息,该调用消息用于指示该FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;The receiver 510 is configured to receive a call message sent by the general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured to enable the FPGA node to achieve the target The target configuration file of the algorithm module;
处理器520,用于根据该接收器510接收的该调用消息,对该待处理数据进行处理,以获得处理结果;The processor 520 is configured to process the to-be-processed data according to the call message received by the receiver 510 to obtain a processing result.
发送器530,用于向该通用处理器节点发送该处理器520获得的该处理结果。The transmitter 530 is configured to send the processing result obtained by the processor 520 to the general-purpose processor node.
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose The call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
应理解,在本发明实施例中,该处理器520可以是FPGA。该用于处理数据的装置500还可以包括存储器,该存储器可以包括只读存储器和随机存取存储器,并向处理器520提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。It should be understood that in the embodiment of the present invention, the processor 520 may be an FPGA. The apparatus 500 for processing data can also include a memory, which can include read only memory and random access memory, and provides instructions and data to the processor 520. A portion of the memory may also include a non-volatile random access memory. For example, the memory can also store information of the device type.
在实现过程中,上述方法的各步骤可以通过处理器520中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤 可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器520读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。In the implementation process, each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 520 or an instruction in a form of software. The steps of the method disclosed in connection with the embodiments of the present invention It can be directly implemented as a hardware processor or completed by a combination of hardware and software modules in the processor. The software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like. The storage medium is located in the memory, and the processor 520 reads the information in the memory and completes the steps of the above method in combination with the hardware thereof. To avoid repetition, it will not be described in detail here.
该FPGA节点配置有用于使得该FPGA节点实现目标算法模块的目标配置文件。具体地,该FPGA节点中可以例化有具有同一种类型的多个目标算法模块,其中,该例化的多个该目标算法模块按序编号。The FPGA node is configured with a target configuration file for causing the FPGA node to implement a target algorithm module. Specifically, a plurality of target algorithm modules having the same type may be instantiated in the FPGA node, wherein the plurality of the target algorithm modules of the instantiation are sequentially numbered.
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As an optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。The call message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
可选地,作为另一实施例,在接收通用处理器节点发送的调用消息之前,该接收器510还用于接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件。相应地,该处理器520用于根据该接收器510接收的该指示信息,获取该目标配置文件,以及根据该目标配置文件,执行配置操作。Optionally, as another embodiment, before receiving the call message sent by the general-purpose processor node, the receiver 510 is further configured to receive a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the general-purpose processor. The target profile assigned by the node to the FPGA node. Correspondingly, the processor 520 is configured to acquire the target configuration file according to the indication information received by the receiver 510, and perform a configuration operation according to the target configuration file.
作为一个可选实施例,该配置消息携带该目标配置文件。此时,该处理器520具体用于从该配置消息中获取该目标配置文件。As an optional embodiment, the configuration message carries the target configuration file. At this time, the processor 520 is specifically configured to obtain the target configuration file from the configuration message.
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,该处理器520具体用于根据该配置消息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。As another alternative embodiment, the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile. At this time, the processor 520 is specifically configured to obtain the target configuration file from the configuration file library set by the general processor node according to the configuration message.
可选地,作为另一实施例,该目标配置文件包括:Optionally, as another embodiment, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;Basic information logic for describing the FPGA node and the target algorithm module;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
可选地,作为另一实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。 Optionally, as another embodiment, the basic information logic is used to describe a type of the FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the FPGA node. Data processing performance when implementing the target algorithm module.
可选地,作为另一实施例,该接收器510还用于接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;Optionally, in another embodiment, the receiver 510 is further configured to receive mode conversion indication information sent by the general-purpose processor node, where the mode conversion indication information is used to indicate that the FPGA node enters a power-saving mode;
该配置单元还用于根据该接收单元接收的该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。The configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
作为一个可选实施例,该空闲配置文件包括:As an optional embodiment, the idle configuration file includes:
基本信息逻辑,用于描述该FPGA节点;Basic information logic for describing the FPGA node;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
本发明实施例提供的装置500可对应于根据本发明实施例的用于处理数据的系统中的目标FPGA节点120,并且装置500中的各个模块的上述和其它操作可以用于实现目标FPGA节点120的功能,为了简洁,在此不再赘述。Apparatus 500 provided by an embodiment of the present invention may correspond to target FPGA node 120 in a system for processing data according to an embodiment of the present invention, and the above and other operations of respective modules in apparatus 500 may be used to implement target FPGA node 120. The function, for the sake of brevity, will not be repeated here.
因此,根据本发明实施例的用于处理数据的装置,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, an apparatus for processing data according to an embodiment of the present invention configures a target configuration file included in a standard configuration file library for configuring an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose The call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
图9示出了本发明实施例提供的一种计算设备600,该计算设备600包括:FIG. 9 shows a computing device 600 according to an embodiment of the present invention. The computing device 600 includes:
处理器602、存储器604、输入/输出接口606、通信接口608和总线610。其中,处理器602、存储器604、输入/输出接口606和通信接口608通过总线610实现彼此之间的通信连接。 Processor 602, memory 604, input/output interface 606, communication interface 608, and bus 610. Among them, the processor 602, the memory 604, the input/output interface 606, and the communication interface 608 implement a communication connection with each other through the bus 610.
处理器602可以采用通用的CPU、微处理器或FPGA,应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。The processor 602 may be a general-purpose CPU, a microprocessor or an FPGA, an application specific integrated circuit (ASIC) or one or more integrated circuits for executing related programs to implement the embodiments of the present invention. Technical solutions.
存储器604可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器604可以存储操作系统和其他应用程序。在通过软件或者固件来实现 本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器604中,并由处理器602来执行。The memory 604 may be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). Memory 604 can store operating systems and other applications. Implemented by software or firmware In the technical solution provided by the embodiment of the present invention, the program code for implementing the technical solution provided by the embodiment of the present invention is saved in the memory 604 and executed by the processor 602.
输入/输出接口606用于接收输入的数据和信息,输出操作结果等数据。The input/output interface 606 is for receiving input data and information, and outputting data such as operation results.
通信接口608使用例如但不限于收发器一类的收发装置,来实现计算设备600与其他设备或通信网络之间的通信。 Communication interface 608 enables communication between computing device 600 and other devices or communication networks using transceivers such as, but not limited to, transceivers.
总线610可包括一通路,在计算设备600各个部件(例如处理器602、存储器604、输入/输出接口606和通信接口608)之间传送信息。 Bus 610 can include a path for communicating information between various components of computing device 600, such as processor 602, memory 604, input/output interface 606, and communication interface 608.
具体地,存储器604可以用于存储可执行指令,也可以用于存储各种信息,例如,配置文件库。处理器602可以通过总线系统610读取该存储器604存储的信息,或者将查询结果存储至存储器604。此外,当该计算设备600运行时,处理器602可以执行存储器604存储的可执行指令,以执行上述方法实施例中的各个流程,但本发明实施例不限于此。In particular, the memory 604 can be used to store executable instructions, as well as to store various information, such as a configuration file library. The processor 602 can read the information stored by the memory 604 via the bus system 610 or store the results of the query to the memory 604. In addition, when the computing device 600 is running, the processor 602 can execute the executable instructions stored in the memory 604 to perform the various processes in the foregoing method embodiments, but the embodiments of the present invention are not limited thereto.
上文中结合图1至图9,详细描述了根据本发明实施例的用户处理数据的系统和通用处理器节点,下面将结合图10和图11,描述根据本发明实施例的用于处理数据的方法。A system for processing data by a user and a general-purpose processor node according to an embodiment of the present invention are described in detail above with reference to FIGS. 1 through 9, and a method for processing data according to an embodiment of the present invention will be described below with reference to FIGS. 10 and 11. method.
图10示意性地示出了本发明实施例提供的用于处理数据的方法700。该方法700可以应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图10所示,该方法700包括:FIG. 10 is a schematic diagram of a method 700 for processing data provided by an embodiment of the present invention. The method 700 can be applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 10, the method 700 includes:
S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该目标配置文件用于配置该多个FPGA节点中的目标FPGA节点实现该目标算法模块;S710. Determine, according to information of the at least one target algorithm module, at least one target configuration file from multiple configuration files included in the configuration file library, where the target configuration file is used to configure a target FPGA node in the multiple FPGA nodes. The target algorithm module;
S720,向至少一个该目标FPGA节点发送配置消息,该配置消息用于指示该目标FPGA节点对应的目标配置文件。S720. Send a configuration message to the at least one target FPGA node, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且 将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, a method for processing data according to an embodiment of the present invention determines at least one target configuration file from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module, wherein the at least one target configuration Each target configuration file in the file is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node sends to each of the at least one target FPGA node to indicate that the target FPGA node corresponds to Configuration message of the target profile, which enables virtualization of the FPGA node resources, and The FPGA development process is converted to a general-purpose processor node program development process, thereby shortening the FPGA program development cycle and reducing the complexity of FPGA program development, improving system performance and user experience.
作为一个可选实施例,该配置文件库包括该多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,该多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。In an optional embodiment, the configuration file library includes a plurality of first configuration files corresponding to the first one of the plurality of FPGA nodes, wherein the plurality of first configuration files include multiple algorithm modules available to the system. Each of the algorithm modules corresponds to at least one first configuration file, and the different algorithm modules correspond to different first configuration files.
作为另一个可选实施例,该多个FPGA节点具有不同的类型,其中,该多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,该多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。As another optional embodiment, the multiple FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module, corresponding to the same configuration file, the multiple Two FPGA nodes with different types in the FPGA node correspond to different configuration files when implementing the same algorithm module.
作为另一个可选实施例,该目标配置文件包括:As another alternative embodiment, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该目标FPGA节点和该目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
接口逻辑,用于实现该目标FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function between the target FPGA node and the general purpose processor node.
可选地,该基本信息逻辑用于描述该目标FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该目标FPGA节点实现该目标算法模块时的数据处理性能。Optionally, the basic information logic is used to describe a type of the target FPGA node; the basic information logic is further used to describe a name of the target algorithm module, an instantiation quantity of the target algorithm module, and the target FPGA node implements the target algorithm. Data processing performance at the time of module.
作为一个可选实施例,该至少一个目标算法模块的信息包括:该至少一个目标算法模块的名称、该至少一个目标算法模块的目标数量、该至少一个目标算法模块的目标处理时间。In an optional embodiment, the information of the at least one target algorithm module includes: a name of the at least one target algorithm module, a target number of the at least one target algorithm module, and a target processing time of the at least one target algorithm module.
作为另一个可选实施例,S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:As another optional embodiment, S710, determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including:
从该配置文件库包括的多个配置文件中确定与该至少一个目标算法模块对应的至少一个配置文件;Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
根据该至少一个目标算法模块的信息,从与该至少一个目标算法模块对应的至少一个配置文件中确定该至少一个目标配置文件。Determining the at least one target configuration file from the at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
作为另一个可选实施例,S710,根据至少一个目标算法模块的信息,从该配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:As another optional embodiment, S710, determining, according to the information of the at least one target algorithm module, the at least one target configuration file from the multiple configuration files included in the configuration file library, including:
从该多个FPGA节点中确定可用的至少一个FPGA节点; Determining at least one FPGA node available from the plurality of FPGA nodes;
根据该至少一个目标算法模块的信息和该配置文件库包括的多个配置文件,从该可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
从该配置文件库包括的多个配置文件中确定与该至少一个目标FPGA节点和该至少一个目标算法模块对应的该至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
作为另一个可选实施例,在S710之前,该方法700还包括:As another alternative embodiment, before S710, the method 700 further includes:
根据用户输入,确定包括该至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input;
根据该多个所需算法模块的信息,从该多个所需算法模块中确定由该多个FPGA节点实现的该至少一个目标算法模块,其中,该多个所需算法模块中除该至少一个目标模块之外的算法模块由该通用处理器节点实现。Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the at least one of the plurality of required algorithm modules Algorithm modules outside the target module are implemented by the general purpose processor node.
作为另一个可选实施例,该方法700还包括:As another alternative embodiment, the method 700 further includes:
确定该至少一个目标FPGA节点的调用次序;Determining a calling order of the at least one target FPGA node;
根据该调用次序,向该目标FPGA节点发送调用消息,该调用消息用于指示该目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;And sending, according to the calling sequence, a call message to the target FPGA node, where the call message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module;
接收该目标FPGA节点根据该调用消息发送的数据处理结果。Receiving a data processing result sent by the target FPGA node according to the call message.
作为另一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As another optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
该调用消息包括该目标FPGA节点的地址信息、该指定的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
作为另一个可选实施例,该方法700还包括:As another alternative embodiment, the method 700 further includes:
向该至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,该模式转换指示信息用于指示该第一目标FPGA节点进入省电模式;或者Transmitting mode transition indication information to the first target FPGA node of the at least one target FPGA node, the mode transition indication information is used to indicate that the first target FPGA node enters a power saving mode; or
将该多个FPGA节点中除该至少一个目标FPGA节点之外的FPGA节点添加至该至少一个目标FPGA节点中。Adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
根据本发明实施例的用于处理数据的方法700可以由通用处理器节点110、用于处理数据的装置200或用于处理数据的装置400实现,其各个流程可以由上述装置的各个模块的上述和其它操作和/或功能实现,为了简洁,在此不再赘述。The method 700 for processing data in accordance with an embodiment of the present invention may be implemented by a general purpose processor node 110, a device 200 for processing data, or a device 400 for processing data, each of which may be performed by the various modules of the above described apparatus. And other operations and/or functions are implemented, and for brevity, no further details are provided herein.
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标 配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, a method for processing data according to an embodiment of the present invention determines at least one target from a plurality of configuration files included in a configuration file library according to information of at least one target algorithm module a configuration file, wherein each target profile in the at least one target profile is configured to configure a target FPGA node to implement a target algorithm module, and the general purpose processor node to each of the at least one target FPGA node The node sends a configuration message indicating the target configuration file corresponding to the target FPGA node, which can virtualize the FPGA node resources, and convert the program development flow of the FPGA into a program development process of the general processor node, thereby shortening the program development of the FPGA. Cycles and reduces the complexity of FPGA program development, improving system performance and user experience.
图11示出了本发明实施例提供的另一用于处理数据的方法800。该方法800可以应用于用于处理数据的系统,该系统设置有配置文件库,该配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个该FPGA节点对应的每个配置文件用于配置该FPGA节点实现一种算法模块。如图11所示,该方法800包括:FIG. 11 illustrates another method 800 for processing data provided by an embodiment of the present invention. The method 800 can be applied to a system for processing data, the system being provided with a configuration file library including at least one configuration file corresponding to each of the plurality of field editable gate array FPGA nodes, each Each configuration file corresponding to the FPGA node is used to configure the FPGA node to implement an algorithm module. As shown in FIG. 11, the method 800 includes:
S810,接收通用处理器节点发送的调用消息,该调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,该FPGA节点配置有用于使得该FPGA节点实现该目标算法模块的目标配置文件;S810. Receive a call message sent by a general-purpose processor node, where the call message is used to instruct the FPGA node to process the data to be processed by using the target algorithm module, where the FPGA node is configured with a target configuration for enabling the FPGA node to implement the target algorithm module. file;
S820,根据该调用消息,对该待处理数据进行处理,以获得处理结果;S820. Process the data to be processed according to the call message to obtain a processing result.
S830,向该通用处理器节点发送该处理结果。S830. Send the processing result to the general-purpose processor node.
因此,根据本发明实施例的用于处理数据的方法,通过配置标准的配置文件库中包括的目标配置文件,该目标配置文件用于配置FPGA节点实现目标算法模块的功能,并且FPGA节点根据通用处理器节点发送的调用消息,进行数据处理,并向通用处理器节点发送处理结果,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, a method for processing data according to an embodiment of the present invention configures a target configuration file included in a standard configuration file library, the target configuration file is used to configure an FPGA node to implement a function of a target algorithm module, and the FPGA node is based on a general purpose The call message sent by the processor node performs data processing and sends the processing result to the general-purpose processor node, which can virtualize the FPGA node resource and convert the program development flow of the FPGA into the program development process of the general-purpose processor node, thereby shortening FPGA program development cycle and reduce the complexity of FPGA program development, improve system performance and user experience.
作为一个可选实施例,该目标配置文件对应的该目标算法模块的例化个数为多个,多个例化的该目标算法模块在该FPGA节点中按序编号;As an optional embodiment, the number of instantiations of the target algorithm module corresponding to the target configuration file is multiple, and the plurality of instantiated target algorithm modules are sequentially numbered in the FPGA node;
相应地,该调用消息包括该目标FPGA节点的地址信息、采用的目标算法模块在该多个例化的目标算法模块中的编号信息和该待处理数据。Correspondingly, the invocation message includes address information of the target FPGA node, number information of the target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
作为另一个可选实施例,在S810之前,该方法800还包括:As another alternative embodiment, prior to S810, the method 800 further includes:
接收该通用处理器节点发送的配置消息,该配置消息用于指示该通用处理器节点为该FPGA节点分配的该目标配置文件; Receiving a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the target configuration file allocated by the general-purpose processor node to the FPGA node;
根据该配置消息,获取该目标配置文件;Obtaining the target configuration file according to the configuration message;
执行该目标配置文件的配置操作。Perform the configuration operation of the target profile.
作为另一个可选实施例,该配置消息携带该目标配置文件,此时,该获取单元具体用于从该配置消息中获取该目标配置文件。As another optional embodiment, the configuration message carries the target configuration file. In this case, the obtaining unit is specifically configured to obtain the target configuration file from the configuration message.
作为另一个可选实施例,该配置文件库设置在该通用处理器节点上,并且该配置消息携带用于指示该目标配置文件的指示信息。此时,S810,根据该配置消息,获取该目标配置文件,包括:As another alternative embodiment, the profile repository is located on the general purpose processor node and the configuration message carries indication information indicating the target profile. At this time, S810, according to the configuration message, acquiring the target configuration file, including:
根据该配置消息,从该通用处理器节点设置的该配置文件库中获取该目标配置文件。According to the configuration message, the target configuration file is obtained from the configuration file library set by the general processor node.
作为另一个可选实施例,该目标配置文件包括:As another alternative embodiment, the target configuration file includes:
算法模块逻辑,用于实现该目标算法模块;Algorithm module logic for implementing the target algorithm module;
基本信息逻辑,用于描述该FPGA节点和该目标算法模块;Basic information logic for describing the FPGA node and the target algorithm module;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
作为另一个可选实施例,该基本信息逻辑用于描述该FPGA节点的类型;该基本信息逻辑还用于描述该目标算法模块的名称、该目标算法模块的例化数量和该FPGA节点实现该目标算法模块时的数据处理性能。As another optional embodiment, the basic information logic is used to describe the type of the FPGA node; the basic information logic is further used to describe the name of the target algorithm module, the number of instantiations of the target algorithm module, and the implementation of the FPGA node. Data processing performance when the target algorithm module.
作为另一个可选实施例,该方法800还包括:As another alternative embodiment, the method 800 further includes:
接收该通用处理器节点发送的模式转换指示信息,该模式转换指示信息用于指示该FPGA节点进入省电模式;Receiving mode conversion indication information sent by the general-purpose processor node, where the mode conversion indication information is used to indicate that the FPGA node enters a power-saving mode;
根据该模式转换指示信息,执行空闲配置文件的配置操作,该空闲配置文件不用于配置该FPGA节点实现任何有效算法模块。According to the mode conversion indication information, a configuration operation of the idle configuration file is not performed, and the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
作为一个可选实施例,该空闲配置文件包括:As an optional embodiment, the idle configuration file includes:
基本信息逻辑,用于描述该FPGA节点;Basic information logic for describing the FPGA node;
接口逻辑,用于实现该FPGA节点与该通用处理器节点进行通信的接口功能。Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
根据本发明实施例的用于处理数据的方法800可以由目标FPGA节点120、用于处理数据的装置300或用于处理数据的装置500实现,其各个流程可以由上述装置的各个模块的上述和其它操作和/或功能实现,为了简洁,在此不再赘述。The method 800 for processing data according to an embodiment of the present invention may be implemented by a target FPGA node 120, a device 300 for processing data, or a device 500 for processing data, the respective flows of which may be by the above-described and Other operations and/or function implementations are not described herein for brevity.
因此,根据本发明实施例的用于处理数据的方法,通过根据至少一个目 标算法模块的信息,从配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,该至少一个目标配置文件中的每个目标配置文件用于配置一个目标FPGA节点实现一种目标算法模块,并且该通用处理器节点向至少一个目标FPGA节点中的每个目标FPGA节点发送用于指示该目标FPGA节点对应的目标配置文件的配置消息,能够使得FPGA节点资源虚拟化,并且将FPGA的程序开发流程转换为通用处理器节点的程序开发流程,从而缩短FPGA的程序开发周期并且降低FPGA程序开发的复杂度,提高系统性能和用户体验。Therefore, a method for processing data according to an embodiment of the present invention is based on at least one item Determining, by the algorithm module, at least one target configuration file from a plurality of configuration files included in the configuration file library, wherein each target configuration file in the at least one target configuration file is used to configure a target FPGA node to achieve a target An algorithm module, and the general purpose processor node sends a configuration message indicating a target profile corresponding to the target FPGA node to each of the at least one target FPGA node, enabling the FPGA node resource to be virtualized, and the FPGA The program development process is converted to a program development flow of a general-purpose processor node, thereby shortening the program development cycle of the FPGA and reducing the complexity of FPGA program development, improving system performance and user experience.
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。It should be understood that the size of the sequence numbers of the above processes does not imply a sequence of executions, and the order of execution of the processes should be determined by its function and internal logic, and should not be construed as limiting the implementation process of the embodiments of the present invention.
应理解,在本发明实施例中,术语和/或仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符/,一般表示前后关联对象是一种或的关系。It should be understood that in the embodiments of the present invention, the term and/or merely an association relationship describing the associated object indicates that there may be three relationships. For example, A and/or B may indicate that A exists separately, and A and B exist simultaneously, and B cases exist alone. In addition, the character / in this paper generally indicates that the contextual object is an OR relationship.
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述,但是这种实现不应认为超出本发明的范围。Those skilled in the art will appreciate that the various method steps and elements described in connection with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both, in order to clearly illustrate hardware and software. Interchangeability, the steps and composition of the various embodiments have been generally described in terms of function in the foregoing description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the description for each particular application, but such implementation should not be considered to be beyond the scope of the present invention.
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。A person skilled in the art can clearly understand that, for the convenience and brevity of the description, the specific working process of the system, the device and the unit described above can refer to the corresponding process in the foregoing method embodiment, and details are not described herein again.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或 通信连接,也可以是电的,机械的或其它的形式连接。In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the device embodiments described above are merely illustrative. For example, the division of the unit is only a logical function division. In actual implementation, there may be another division manner, for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed may be indirect coupling through some interfaces, devices or units or Communication connections can also be electrical, mechanical or other forms of connection.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The integrated unit, if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium. A number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。 The above is only the specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any equivalent person can be easily conceived within the technical scope of the present invention by any person skilled in the art. Modifications or substitutions are intended to be included within the scope of the invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

Claims (56)

  1. 一种用于处理数据的系统,其特征在于,包括:通用处理器节点和多个现场可编辑门阵列FPGA节点,其中,A system for processing data, comprising: a general purpose processor node and a plurality of field editable gate array FPGA nodes, wherein
    所述系统设置有配置文件库,所述配置文件库包括所述多个FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块;The system is provided with a configuration file library, the configuration file library includes at least one configuration file corresponding to each of the plurality of FPGA nodes, and each configuration file corresponding to each of the FPGA nodes is used for a configuration The FPGA node implements an algorithm module;
    所述通用处理器节点用于根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;The general-purpose processor node is configured to determine, according to information of the at least one target algorithm module, at least one target configuration file from a plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the multiple The target FPGA module in the FPGA node implements the target algorithm module;
    所述通用处理器节点还用于向至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件;The general-purpose processor node is further configured to send a configuration message to the at least one target FPGA node, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node;
    所述目标FPGA节点用于接收所述通用处理器节点发送的所述配置消息,并且根据所述配置消息中指示的目标配置文件,执行配置操作。The target FPGA node is configured to receive the configuration message sent by the general-purpose processor node, and perform a configuration operation according to the target configuration file indicated in the configuration message.
  2. 根据权利要求1所述的系统,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。The system according to claim 1, wherein the configuration file library comprises a plurality of first configuration files corresponding to a first one of the plurality of FPGA nodes, wherein the plurality of first configuration files The at least one first configuration file corresponding to each of the plurality of algorithm modules available in the system is included, and the different algorithm modules correspond to different first configuration files.
  3. 根据权利要求1或2所述的系统,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。The system according to claim 1 or 2, wherein the plurality of FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module In the same configuration file, two FPGA nodes having different types of the plurality of FPGA nodes implement the same algorithm module and correspond to different configuration files.
  4. 根据权利要求1至3中任一项所述的系统,其特征在于,所述目标配置文件包括:The system according to any one of claims 1 to 3, wherein the target profile comprises:
    算法模块逻辑,用于实现所述目标算法模块;Algorithm module logic for implementing the target algorithm module;
    基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
    接口逻辑,用于实现所述目标FPGA节点与所述通用处理器节点进行通信的接口功能。The interface logic is configured to implement an interface function of the target FPGA node to communicate with the general-purpose processor node.
  5. 根据权利要求4所述的系统,其特征在于,所述基本信息逻辑用于 描述所述目标FPGA节点的类型;The system of claim 4 wherein said basic information logic is used Describe the type of the target FPGA node;
    所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。The basic information logic is further configured to describe a name of the target algorithm module, an instantiation number of the target algorithm module, and data processing performance when the target FPGA node implements the target algorithm module.
  6. 根据权利要求1至5中任一项所述的系统,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述至少一个目标算法模块的目标数量和所述至少一个目标算法模块的目标处理时间。The system according to any one of claims 1 to 5, wherein the information of the at least one target algorithm module comprises: a name of the at least one target algorithm module, a target number of the at least one target algorithm module And a target processing time of the at least one target algorithm module.
  7. 根据权利要求1至6中任一项所述的系统,其特征在于,所述通用处理器节点具体用于:The system according to any one of claims 1 to 6, wherein the general purpose processor node is specifically configured to:
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
    根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。Determining the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
  8. 根据权利要求1至6中任一项所述的系统,其特征在于,所述通用处理器节点具体用于:The system according to any one of claims 1 to 6, wherein the general purpose processor node is specifically configured to:
    从所述多个FPGA节点中确定可用的至少一个FPGA节点;Determining at least one FPGA node available from the plurality of FPGA nodes;
    根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  9. 根据权利要求1至8中任一项所述的系统,其特征在于,在从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,所述通用处理器节点还用于:The system according to any one of claims 1 to 8, wherein the general purpose processor node is further used before determining at least one target profile from a plurality of profiles included in the profile library :
    根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input;
    根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标模块之外的算法模块由所述通用处理器 节点实现。Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the plurality of required algorithm modules An algorithm module other than the at least one target module is used by the general purpose processor Node implementation.
  10. 根据权利要求1至9中任一项所述的系统,其特征在于,所述通用处理器节点还用于:The system according to any one of claims 1 to 9, wherein the general purpose processor node is further configured to:
    确定所述至少一个目标FPGA节点的调用次序;Determining a calling order of the at least one target FPGA node;
    根据所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;And sending, according to the calling sequence, an invocation message to the target FPGA node, where the invoking message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module;
    所述目标FPGA节点还用于:The target FPGA node is also used to:
    接收所述通用处理器节点发送的所述调用消息,根据所述调用消息对所述待处理数据进行处理,并向所述通用处理器节点发送处理结果。Receiving the call message sent by the general-purpose processor node, processing the to-be-processed data according to the call message, and sending a processing result to the general-purpose processor node.
  11. 根据权利要求10所述的系统,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;The system according to claim 10, wherein the number of instantiations of the target algorithm module corresponding to the target profile is multiple, and the plurality of instantiated target algorithm modules are in the FPGA node. Numbered sequentially;
    所述调用消息携带所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。The invocation message carries address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  12. 根据权利要求1至11中任一项所述的系统,其特征在于,所述通用处理器节点还用于:The system according to any one of claims 1 to 11, wherein the general purpose processor node is further configured to:
    向所述至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者Transmitting mode transition indication information to the first target FPGA node of the at least one target FPGA node, the mode transition indication information being used to indicate that the first target FPGA node enters a power saving mode; or
    将所述多个FPGA节点中除所述至少一个目标FPGA节点之外的FPGA节点添加至所述至少一个目标FPGA节点中。Adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
  13. 根据权利要求1至12中任一项所述的系统,其特征在于,所述配置文件库存储在所述通用处理器节点中;或者The system according to any one of claims 1 to 12, wherein the profile repository is stored in the general purpose processor node; or
    所述系统还包括:共享服务器,所述配置文件库存储在所述共享服务器中,所述通用处理器节点还用于从所述共享服务器获取所述配置文件库包括的多个配置文件的信息。The system further includes: a shared server, the configuration file library is stored in the shared server, and the general-purpose processor node is further configured to acquire, from the shared server, information of multiple configuration files included in the configuration file library. .
  14. 一种用于处理数据的装置,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述 装置包括:An apparatus for processing data, characterized by being applied to a system for processing data, the system being provided with a configuration file library, each of the plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each of the FPGA nodes is configured to configure the FPGA node to implement an algorithm module, The device includes:
    确定单元,用于根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;a determining unit, configured to determine, according to information of the at least one target algorithm module, at least one target configuration file from a plurality of configuration files included in the configuration file library, where the target configuration file is used to configure the multiple FPGA nodes The target FPGA node in the implementation implements the target algorithm module;
    发送单元,用于向所述确定单元确定的至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件。And a sending unit, configured to send, to the at least one target FPGA node determined by the determining unit, a configuration message, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  15. 根据权利要求14所述的装置,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。The apparatus according to claim 14, wherein the configuration file library comprises a plurality of first configuration files corresponding to a first one of the plurality of FPGA nodes, wherein the plurality of first configuration files The at least one first configuration file corresponding to each of the plurality of algorithm modules available in the system is included, and the different algorithm modules correspond to different first configuration files.
  16. 根据权利要求14或15所述的装置,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。The apparatus according to claim 14 or 15, wherein the plurality of FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module In the same configuration file, two FPGA nodes having different types of the plurality of FPGA nodes implement the same algorithm module and correspond to different configuration files.
  17. 根据权利要求14至16中任一项所述的装置,其特征在于,所述目标配置文件包括:The apparatus according to any one of claims 14 to 16, wherein the target profile comprises:
    算法模块逻辑,用于实现所述目标算法模块;Algorithm module logic for implementing the target algorithm module;
    基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;Basic information logic for describing the target FPGA node and the target algorithm module;
    接口逻辑,用于实现所述目标FPGA节点与所述通用处理器节点进行通信的接口功能。The interface logic is configured to implement an interface function of the target FPGA node to communicate with the general-purpose processor node.
  18. 根据权利要求17所述的装置,其特征在于,所述基本信息逻辑用于描述所述目标FPGA节点的类型;The apparatus according to claim 17, wherein said basic information logic is used to describe a type of said target FPGA node;
    所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。The basic information logic is further configured to describe a name of the target algorithm module, an instantiation number of the target algorithm module, and data processing performance when the target FPGA node implements the target algorithm module.
  19. 根据权利要求14至18中任一项所述的装置,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述 至少一个目标算法模块的目标数量、所述至少一个目标算法模块的目标处理时间。The apparatus according to any one of claims 14 to 18, wherein the information of the at least one target algorithm module comprises: a name of the at least one target algorithm module, the The target number of at least one target algorithm module and the target processing time of the at least one target algorithm module.
  20. 根据权利要求14至19中任一项所述的装置,其特征在于,所述确定单元具体用于:The device according to any one of claims 14 to 19, wherein the determining unit is specifically configured to:
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
    根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。Determining the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
  21. 根据权利要求14至19中任一项所述的装置,其特征在于,所述确定单元具体用于:The device according to any one of claims 14 to 19, wherein the determining unit is specifically configured to:
    从所述多个FPGA节点中确定可用的至少一个FPGA节点;Determining at least one FPGA node available from the plurality of FPGA nodes;
    根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定至少一个目标FPGA节点;Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  22. 根据权利要求14至21中任一项所述的装置,其特征在于,所述确定单元还用于:The device according to any one of claims 14 to 21, wherein the determining unit is further configured to:
    在从配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input before determining at least one target configuration file from the plurality of configuration files included in the configuration file library;
    根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标模块之外的算法模块由所述通用处理器节点实现。Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the plurality of required algorithm modules An algorithm module other than the at least one target module is implemented by the general purpose processor node.
  23. 根据权利要求14至22中任一项所述的装置,其特征在于,所述确定单元还用于确定所述至少一个目标FPGA节点的调用次序;The apparatus according to any one of claims 14 to 22, wherein the determining unit is further configured to determine a calling order of the at least one target FPGA node;
    所述发送单元还用于根据所述确定单元确定的所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理; The sending unit is further configured to send, according to the calling sequence determined by the determining unit, a call message to the target FPGA node, where the call message is used to indicate that the target FPGA node uses a specified target algorithm module to process data. Process
    所述装置还包括:The device also includes:
    接收单元,用于接收所述目标FPGA节点根据所述发送单元发送的所述调用消息发送的数据处理结果。a receiving unit, configured to receive a data processing result that is sent by the target FPGA node according to the call message sent by the sending unit.
  24. 根据权利要求23所述的装置,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;The apparatus according to claim 23, wherein the number of instantiations of the target algorithm module corresponding to the target profile is multiple, and the plurality of instantiated target algorithm modules are in the FPGA node. Numbered sequentially;
    所述调用消息包括所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  25. 根据权利要求14至24中任一项所述的装置,其特征在于,所述发送单元还用于向所述至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者The apparatus according to any one of claims 14 to 24, wherein the transmitting unit is further configured to send mode switching indication information to a first target FPGA node of the at least one target FPGA node, the mode The conversion indication information is used to indicate that the first target FPGA node enters a power saving mode; or
    所述确定单元还用于将所述多个FPGA节点中除所述至少一个目标FPGA节点之外的FPGA节点添加至所述至少一个目标FPGA节点中。The determining unit is further configured to add an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
  26. 根据权利要求14至25中任一项所述的装置,其特征在于,还包括:The apparatus according to any one of claims 14 to 25, further comprising:
    存储单元,用于存储所述配置文件库。a storage unit for storing the configuration file library.
  27. 一种用于处理数据的装置,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述装置包括:An apparatus for processing data, characterized by being applied to a system for processing data, the system being provided with a configuration file library, each of the plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each of the FPGA nodes is used to configure the FPGA node to implement an algorithm module, and the device includes:
    接收单元,用于接收通用处理器节点发送的调用消息,所述调用消息用于指示所述FPGA节点采用目标算法模块对待处理数据进行处理,其中,所述FPGA节点配置有用于使得所述FPGA节点实现所述目标算法模块的目标配置文件;a receiving unit, configured to receive a call message sent by a general-purpose processor node, where the call message is used to instruct the FPGA node to process a data to be processed by using a target algorithm module, where the FPGA node is configured to enable the FPGA node Implementing a target configuration file of the target algorithm module;
    处理单元,用于根据所述接收单元接收的所述调用消息,对所述待处理数据进行处理,以获得处理结果;a processing unit, configured to process the to-be-processed data according to the call message received by the receiving unit, to obtain a processing result;
    发送单元,用于向所述通用处理器节点发送所述处理单元获得的所述处理结果。And a sending unit, configured to send, to the general-purpose processor node, the processing result obtained by the processing unit.
  28. 根据权利要求27所述的装置,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在 所述FPGA节点中按序编号;The apparatus according to claim 27, wherein the number of instantiations of the target algorithm module corresponding to the target profile is multiple, and the plurality of instantiated target algorithm modules are The FPGA nodes are numbered sequentially;
    所述调用消息包括所述目标FPGA节点的地址信息、采用的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。The call message includes address information of the target FPGA node, number information of the adopted target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  29. 根据权利要求27或28所述的装置,其特征在于,在所述接收通用处理器节点发送的调用消息之前,所述接收单元还用于接收所述通用处理器节点发送的配置消息,所述配置消息用于指示所述通用处理器节点为所述FPGA节点分配的所述目标配置文件;The device according to claim 27 or 28, wherein the receiving unit is further configured to receive a configuration message sent by the general-purpose processor node, before receiving the call message sent by the general-purpose processor node, a configuration message is used to indicate the target configuration file allocated by the general-purpose processor node to the FPGA node;
    所述装置还包括:The device also includes:
    获取单元,用于根据所述接收单元接收的所述配置消息,获取所述目标配置文件;An obtaining unit, configured to acquire the target configuration file according to the configuration message received by the receiving unit;
    配置单元,用于根据所述获取单元获取的所述目标配置文件,执行配置操作。And a configuration unit, configured to perform a configuration operation according to the target configuration file acquired by the acquiring unit.
  30. [根据细则91更正 12.03.2015]
    根据权利要求29所述的装置,其特征在于,所述配置消息携带所述目标配置文件;
    所述获取单元具体用于从所述配置消息中获取所述目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The device according to claim 29, wherein the configuration message carries the target configuration file;
    The obtaining unit is specifically configured to acquire the target configuration file from the configuration message.
  31. [根据细则91更正 12.03.2015]
    根据权利要求29所述的装置,其特征在于,所述配置文件库设置在所述通用处理器节点上,并且所述配置消息携带用于指示所述目标配置文件的指示信息;
    所述获取单元具体用于根据所述配置消息中携带的所述指示信息,从所述通用处理器节点设置的所述配置文件库中获取所述目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The apparatus according to claim 29, wherein said profile library is disposed on said general purpose processor node, and said configuration message carries indication information for indicating said target profile;
    The obtaining unit is configured to obtain the target configuration file from the configuration file library set by the general-purpose processor node according to the indication information carried in the configuration message.
  32. [根据细则91更正 12.03.2015]
    根据权利要求27至31中任一项所述的装置,其特征在于,所述目标配置文件包括:
    算法模块逻辑,用于实现所述目标算法模块;
    基本信息逻辑,用于描述所述FPGA节点和所述目标算法模块;
    接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
    [Correct according to Rule 91 12.03.2015]
    The apparatus according to any one of claims 27 to 31, wherein the target profile comprises:
    Algorithm module logic for implementing the target algorithm module;
    Basic information logic for describing the FPGA node and the target algorithm module;
    Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  33. [根据细则91更正 12.03.2015]
    根据权利要求32所述的装置,其特征在于,所述基本信息逻辑用于描述所述FPGA节点的类型;
    所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述FPGA节点实现所述目标算法模块时的数据处理性能。
    [Correct according to Rule 91 12.03.2015]
    The apparatus according to claim 32, wherein said basic information logic is used to describe a type of said FPGA node;
    The basic information logic is further configured to describe a name of the target algorithm module, an instantiation number of the target algorithm module, and data processing performance when the FPGA node implements the target algorithm module.
  34. [根据细则91更正 12.03.2015]
    根据权利要求29至33中任一项所述的装置,其特征在于,所述接收单元还用于接收所述通用处理器节点发送的模式转换指示信息,所述模式转换指示信息用于指示所述FPGA节点进入省电模式;
    所述配置单元还用于根据所述接收单元接收的所述模式转换指示信息,执行空闲配置文件的配置操作,所述空闲配置文件不用于配置所述FPGA节点实现任何有效算法模块。
    [Correct according to Rule 91 12.03.2015]
    The apparatus according to any one of claims 29 to 33, wherein the receiving unit is further configured to receive mode switching indication information sent by the general-purpose processor node, where the mode switching indication information is used to indicate Said FPGA node enters power saving mode;
    The configuration unit is further configured to perform a configuration operation of the idle configuration file according to the mode conversion indication information received by the receiving unit, where the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  35. [根据细则91更正 12.03.2015]
    根据权利要求34所述的装置,其特征在于,所述空闲配置文件包括:
    基本信息逻辑,用于描述所述FPGA节点;
    接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
    [Correct according to Rule 91 12.03.2015]
    The device according to claim 34, wherein the idle configuration file comprises:
    Basic information logic for describing the FPGA node;
    Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  36. 一种用于处理数据的方法,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述方法包括:A method for processing data, characterized by being applied to a system for processing data, the system being provided with a configuration file library, each of the plurality of field editable gate array FPGA nodes At least one configuration file corresponding to the FPGA node, each configuration file corresponding to each of the FPGA nodes is used to configure the FPGA node to implement an algorithm module, and the method includes:
    根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,其中,所述目标配置文件用于配置所述多个FPGA节点中的目标FPGA节点实现所述目标算法模块;Determining, according to information of the at least one target algorithm module, at least one target configuration file from a plurality of configuration files included in the configuration file library, wherein the target configuration file is configured to configure a target FPGA node of the plurality of FPGA nodes Implementing the target algorithm module;
    向至少一个所述目标FPGA节点发送配置消息,所述配置消息用于指示所述目标FPGA节点对应的目标配置文件。And sending a configuration message to the at least one target FPGA node, where the configuration message is used to indicate a target configuration file corresponding to the target FPGA node.
  37. [根据细则91更正 12.03.2015] 
    根据权利要求36所述的方法,其特征在于,所述配置文件库包括所述多个FPGA节点中的第一FPGA节点对应的多个第一配置文件,其中,所述多个第一配置文件包括系统可用的多种算法模块中的每种算法模块对应的至少一个第一配置文件,并且不同的算法模块对应于不同的第一配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 36, wherein the configuration file library comprises a plurality of first configuration files corresponding to a first one of the plurality of FPGA nodes, wherein the plurality of first configuration files The at least one first configuration file corresponding to each of the plurality of algorithm modules available in the system is included, and the different algorithm modules correspond to different first configuration files.
  38. [根据细则91更正 12.03.2015] 
    根据权利要求36或37所述的方法,其特征在于,所述多个FPGA节点具有不同的类型,其中,所述多个FPGA节点中具有相同类型的两个FPGA节点实现同一种算法模块时对应于相同的配置文件,所述多个FPGA节点中具有不同类型的两个FPGA节点实现同一种算法模块时对应于不同的配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 36 or 37, wherein the plurality of FPGA nodes have different types, wherein two FPGA nodes of the same type having the same type implement the same algorithm module In the same configuration file, two FPGA nodes having different types of the plurality of FPGA nodes implement the same algorithm module and correspond to different configuration files.
  39. [根据细则91更正 12.03.2015]
    根据权利要求36至38中任一项所述的方法,其特征在于,所述目标配置文件包括:
    算法模块逻辑,用于实现所述目标算法模块;
    基本信息逻辑,用于描述所述目标FPGA节点和所述目标算法模块;
    接口逻辑,用于实现所述目标FPGA节点与所述通用处理器节点进行通信的接口功能。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 38, wherein the target profile comprises:
    Algorithm module logic for implementing the target algorithm module;
    Basic information logic for describing the target FPGA node and the target algorithm module;
    The interface logic is configured to implement an interface function of the target FPGA node to communicate with the general-purpose processor node.
  40. [根据细则91更正 12.03.2015]
    根据权利要求39所述的方法,其特征在于,所述基本信息逻辑用于描述所述目标FPGA节点的类型;
    所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述目标FPGA节点实现所述目标算法模块时的数据处理性能。
    [Correct according to Rule 91 12.03.2015]
    The method of claim 39, wherein said basic information logic is used to describe a type of said target FPGA node;
    The basic information logic is further configured to describe a name of the target algorithm module, an instantiation number of the target algorithm module, and data processing performance when the target FPGA node implements the target algorithm module.
  41. [根据细则91更正 12.03.2015] 
    根据权利要求36至40中任一项所述的方法,其特征在于,所述至少一个目标算法模块的信息包括:所述至少一个目标算法模块的名称、所述至少一个目标算法模块的目标数量、所述至少一个目标算法模块的目标处理时间。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 40, wherein the information of the at least one target algorithm module comprises: a name of the at least one target algorithm module, a target number of the at least one target algorithm module The target processing time of the at least one target algorithm module.
  42. [根据细则91更正 12.03.2015]
    根据权利要求36至41中任一项所述的方法,其特征在于,所述根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标算法模块对应的至少一个配置文件;
    根据所述至少一个目标算法模块的信息,从与所述至少一个目标算法模块对应的至少一个配置文件中确定所述至少一个目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 41, wherein the determining at least one target configuration file from a plurality of configuration files included in the configuration file library according to information of at least one target algorithm module, include:
    Determining at least one configuration file corresponding to the at least one target algorithm module from a plurality of configuration files included in the configuration file library;
    Determining the at least one target configuration file from at least one configuration file corresponding to the at least one target algorithm module according to the information of the at least one target algorithm module.
  43. [根据细则91更正 12.03.2015]
    根据权利要求36至41中任一项所述的方法,其特征在于,所述根据至少一个目标算法模块的信息,从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件,包括:
    从所述多个FPGA节点中确定可用的至少一个FPGA节点;
    根据所述至少一个目标算法模块的信息和所述配置文件库包括的多个配置文件,从所述可用的至少一个FPGA节点中确定至少一个目标FPGA节点;
    从所述配置文件库包括的多个配置文件中确定与所述至少一个目标FPGA节点和所述至少一个目标算法模块对应的所述至少一个目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 41, wherein the determining at least one target configuration file from a plurality of configuration files included in the configuration file library according to information of at least one target algorithm module, include:
    Determining at least one FPGA node available from the plurality of FPGA nodes;
    Determining at least one target FPGA node from the available at least one FPGA node according to the information of the at least one target algorithm module and the plurality of configuration files included in the configuration file library;
    The at least one target configuration file corresponding to the at least one target FPGA node and the at least one target algorithm module is determined from a plurality of configuration files included in the configuration file library.
  44. [根据细则91更正 12.03.2015]
    根据权利要求36至43中任一项所述的方法,其特征在于,在所述从所述配置文件库包括的多个配置文件中确定至少一个目标配置文件之前,所述方法还包括:
    根据用户输入,确定包括所述至少一个目标算法模块在内的多个所需算法模块的信息;
    根据所述多个所需算法模块的信息,从所述多个所需算法模块中确定由所述多个FPGA节点实现的所述至少一个目标算法模块,其中,所述多个所需算法模块中除所述至少一个目标模块之外的算法模块由所述通用处理器节点实现。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 43 wherein before the determining at least one target profile from the plurality of profiles included in the profile library, the method further comprises:
    Determining information of a plurality of required algorithm modules including the at least one target algorithm module according to user input;
    Determining, by the information of the plurality of required algorithm modules, the at least one target algorithm module implemented by the plurality of FPGA nodes from the plurality of required algorithm modules, wherein the plurality of required algorithm modules An algorithm module other than the at least one target module is implemented by the general purpose processor node.
  45. [根据细则91更正 12.03.2015]
    根据权利要求36至44中任一项所述的方法,其特征在于,所述方法还包括:
    确定所述至少一个目标FPGA节点的调用次序;
    根据所述调用次序,向所述目标FPGA节点发送调用消息,所述调用消息用于指示所述目标FPGA节点采用指定的目标算法模块对待处理数据进行处理;
    接收所述目标FPGA节点根据所述调用消息发送的数据处理结果。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 44, wherein the method further comprises:
    Determining a calling order of the at least one target FPGA node;
    And sending, according to the calling sequence, an invocation message to the target FPGA node, where the invoking message is used to indicate that the target FPGA node processes the data to be processed by using a specified target algorithm module;
    Receiving a data processing result sent by the target FPGA node according to the call message.
  46. [根据细则91更正 12.03.2015]
    根据权利要求45所述的方法,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
    所述调用消息包括所述目标FPGA节点的地址信息、所述指定的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 45, wherein the number of instantiations of the target algorithm module corresponding to the target profile is multiple, and the plurality of instantiated target algorithm modules are in the FPGA node. Numbered sequentially;
    The call message includes address information of the target FPGA node, number information of the specified target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  47. [根据细则91更正 12.03.2015]
    根据权利要求36至46中任一项所述的方法,其特征在于,所述方法还包括:
    向所述至少一个目标FPGA节点中的第一目标FPGA节点发送模式转换指示信息,所述模式转换指示信息用于指示所述第一目标FPGA节点进入省电模式;或者
    将所述多个FPGA节点中除所述至少一个目标FPGA节点之外的FPGA节点添加至所述至少一个目标FPGA节点中。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 36 to 46, wherein the method further comprises:
    Transmitting mode transition indication information to the first target FPGA node of the at least one target FPGA node, the mode transition indication information being used to indicate that the first target FPGA node enters a power saving mode; or
    Adding an FPGA node other than the at least one target FPGA node among the plurality of FPGA nodes to the at least one target FPGA node.
  48. 一种用于处理数据的方法,其特征在于,应用于用于处理数据的系统,所述系统设置有配置文件库,所述配置文件库包括多个现场可编辑门阵 列FPGA节点中的每个FPGA节点对应的至少一个配置文件,每个所述FPGA节点对应的每个配置文件用于配置所述FPGA节点实现一种算法模块,所述方法包括:A method for processing data, characterized by being applied to a system for processing data, the system being provided with a configuration file library, the configuration file library comprising a plurality of field editable gate arrays At least one configuration file corresponding to each of the FPGA nodes in the column, each configuration file corresponding to each of the FPGA nodes is configured to configure the FPGA node to implement an algorithm module, and the method includes:
    接收通用处理器节点发送的调用消息,所述调用消息用于指示FPGA节点采用目标算法模块对待处理数据进行处理,其中,所述FPGA节点配置有用于使得所述FPGA节点实现所述目标算法模块的目标配置文件;Receiving a call message sent by a general-purpose processor node, the call message is used to instruct the FPGA node to process the data to be processed by using a target algorithm module, where the FPGA node is configured to enable the FPGA node to implement the target algorithm module Target profile
    根据所述调用消息,对所述待处理数据进行处理,以获得处理结果;Processing the to-be-processed data according to the invocation message to obtain a processing result;
    向所述通用处理器节点发送所述处理结果。The processing result is sent to the general purpose processor node.
  49. [根据细则91更正 12.03.2015]
    根据权利要求48所述的方法,其特征在于,所述目标配置文件对应的所述目标算法模块的例化个数为多个,多个例化的所述目标算法模块在所述FPGA节点中按序编号;
    所述调用消息包括所述目标FPGA节点的地址信息、采用的目标算法模块在所述多个例化的目标算法模块中的编号信息和所述待处理数据。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 48, wherein the number of instances of the target algorithm module corresponding to the target profile is multiple, and the plurality of instantiated target algorithm modules are in the FPGA node. Numbered sequentially;
    The call message includes address information of the target FPGA node, number information of the adopted target algorithm module in the plurality of instantiated target algorithm modules, and the to-be-processed data.
  50. [根据细则91更正 12.03.2015]
    根据权利要求48或49所述的方法,其特征在于,在所述接收通用处理器节点发送的调用消息之前,所述方法还包括:
    接收所述通用处理器节点发送的配置消息,所述配置消息用于指示所述通用处理器节点为所述FPGA节点分配的所述目标配置文件;
    根据所述配置消息,获取所述目标配置文件;
    执行所述目标配置文件的配置操作。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 48 or claim 49, wherein before the receiving the invocation message sent by the general processor node, the method further comprises:
    Receiving a configuration message sent by the general-purpose processor node, where the configuration message is used to indicate the target configuration file that is allocated by the general-purpose processor node to the FPGA node;
    Obtaining the target configuration file according to the configuration message;
    Perform the configuration operation of the target configuration file.
  51. [根据细则91更正 12.03.2015]
    根据权利要求50所述的方法,其特征在于,所述配置消息携带所述目标配置文件;
    所述根据所述配置消息,获取所述目标配置文件,包括:
    从所述配置消息中获取所述目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 50, wherein the configuration message carries the target configuration file;
    Obtaining the target configuration file according to the configuration message, including:
    Obtaining the target configuration file from the configuration message.
  52. [根据细则91更正 12.03.2015]
    根据权利要求50所述的方法,其特征在于,所述配置文件库设置在所述通用处理器节点上,并且所述配置消息携带用于指示所述目标配置文件的指示信息;
    所述根据所述配置消息,获取所述目标配置文件,包括:
    根据所述配置消息中携带的所述指示信息,从所述通用处理器节点设置的所述配置文件库中获取所述目标配置文件。
    [Correct according to Rule 91 12.03.2015]
    The method according to claim 50, wherein said profile library is disposed on said general purpose processor node, and said configuration message carries indication information for indicating said target profile;
    Obtaining the target configuration file according to the configuration message, including:
    Obtaining the target configuration file from the configuration file library set by the general-purpose processor node according to the indication information carried in the configuration message.
  53. [根据细则91更正 12.03.2015]
    根据权利要求48至52中任一项所述的FPGA节点,其特征在于,所述目标配置文件包括:
    算法模块逻辑,用于实现所述目标算法模块;
    基本信息逻辑,用于描述所述FPGA节点和所述目标算法模块;
    接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
    [Correct according to Rule 91 12.03.2015]
    The FPGA node according to any one of claims 48 to 52, wherein the target configuration file comprises:
    Algorithm module logic for implementing the target algorithm module;
    Basic information logic for describing the FPGA node and the target algorithm module;
    Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
  54. [根据细则91更正 12.03.2015]
    根据权利要求53所述的方法,其特征在于,所述基本信息逻辑用于描述所述FPGA节点的类型;
    所述基本信息逻辑还用于描述所述目标算法模块的名称、所述目标算法模块的例化数量和所述FPGA节点实现所述目标算法模块时的数据处理性能。
    [Correct according to Rule 91 12.03.2015]
    The method of claim 53, wherein said basic information logic is used to describe a type of said FPGA node;
    The basic information logic is further configured to describe a name of the target algorithm module, an instantiation number of the target algorithm module, and data processing performance when the FPGA node implements the target algorithm module.
  55. [根据细则91更正 12.03.2015]
    根据权利要求50至54中任一项所述的方法,其特征在于,所述方法还包括:
    接收所述通用处理器节点发送的模式转换指示信息,所述模式转换指示信息用于指示所述FPGA节点进入省电模式;
    根据所述模式转换指示信息,执行空闲配置文件的配置操作,所述空闲配置文件不用于配置所述FPGA节点实现任何有效算法模块。
    [Correct according to Rule 91 12.03.2015]
    The method according to any one of claims 50 to 54, wherein the method further comprises:
    Receiving mode conversion indication information sent by the general-purpose processor node, where the mode conversion indication information is used to indicate that the FPGA node enters a power-saving mode;
    According to the mode conversion indication information, a configuration operation of an idle configuration file is not performed, and the idle configuration file is not used to configure the FPGA node to implement any effective algorithm module.
  56. [根据细则91更正 12.03.2015]
    根据权利要求55所述的方法,其特征在于,所述空闲配置文件包括:
    基本信息逻辑,用于描述所述FPGA节点;
    接口逻辑,用于实现所述FPGA节点与所述通用处理器节点进行通信的接口功能。
    [Correct according to Rule 91 12.03.2015]
    The method of claim 55, wherein the idle profile comprises:
    Basic information logic for describing the FPGA node;
    Interface logic for implementing an interface function of the FPGA node to communicate with the general purpose processor node.
PCT/CN2015/073082 2015-02-15 2015-02-15 System, device and method for processing data WO2016127422A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2015/073082 WO2016127422A1 (en) 2015-02-15 2015-02-15 System, device and method for processing data
CN201580072310.7A CN107111662B (en) 2015-02-15 2015-02-15 System, apparatus and method for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/073082 WO2016127422A1 (en) 2015-02-15 2015-02-15 System, device and method for processing data

Publications (1)

Publication Number Publication Date
WO2016127422A1 true WO2016127422A1 (en) 2016-08-18

Family

ID=56614044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/073082 WO2016127422A1 (en) 2015-02-15 2015-02-15 System, device and method for processing data

Country Status (2)

Country Link
CN (1) CN107111662B (en)
WO (1) WO2016127422A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831713A (en) * 2019-04-18 2020-10-27 阿里巴巴集团控股有限公司 Data processing method, device and equipment
CN112130987A (en) * 2019-06-25 2020-12-25 杭州海康消防科技有限公司 Data processing method and device, master control chip, slave chip and system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512688A (en) * 2017-11-29 2018-09-07 中国平安人寿保险股份有限公司 Network node configuration method and terminal

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452502A (en) * 2008-12-30 2009-06-10 华为技术有限公司 Method for loading on-site programmable gate array FPGA, apparatus and system
CN101485576A (en) * 2008-12-30 2009-07-22 深圳市蓝韵实业有限公司 System for unified configuration and management of FPGA chip in equipment
US20120260046A1 (en) * 2011-04-05 2012-10-11 Lemonovich John E Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same
CN103914331A (en) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 Emulator supporting multi-chip configuration function

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983439B1 (en) * 2002-08-13 2006-01-03 Xilinx, Inc. Unified placer infrastructure
CN100449522C (en) * 2007-07-12 2009-01-07 浙江大学 Matrix multiplication parallel computing system based on multi-FPGA
CN102999571B (en) * 2012-11-09 2015-09-30 深圳市宜搜科技发展有限公司 The implementation method of unit multinode in a kind of cluster

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452502A (en) * 2008-12-30 2009-06-10 华为技术有限公司 Method for loading on-site programmable gate array FPGA, apparatus and system
CN101485576A (en) * 2008-12-30 2009-07-22 深圳市蓝韵实业有限公司 System for unified configuration and management of FPGA chip in equipment
US20120260046A1 (en) * 2011-04-05 2012-10-11 Lemonovich John E Programmable logic apparatus employing shared memory, vital processor and non-vital communications processor, and system including the same
CN103914331A (en) * 2012-12-28 2014-07-09 北京中电华大电子设计有限责任公司 Emulator supporting multi-chip configuration function

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831713A (en) * 2019-04-18 2020-10-27 阿里巴巴集团控股有限公司 Data processing method, device and equipment
CN112130987A (en) * 2019-06-25 2020-12-25 杭州海康消防科技有限公司 Data processing method and device, master control chip, slave chip and system

Also Published As

Publication number Publication date
CN107111662B (en) 2020-06-26
CN107111662A (en) 2017-08-29

Similar Documents

Publication Publication Date Title
US20240126714A1 (en) Flexible remote direct memory access
US11487696B2 (en) System and method for providing in-storage acceleration (ISA) in data storage devices
US10621127B2 (en) Communication channel for reconfigurable devices
WO2018023499A1 (en) Network interface card, computer device and data packet processing method
WO2017114361A1 (en) Method and apparatus for configuring accelerator
US9239607B2 (en) Storing data using a direct data path architecture to reduce energy consumption and improve performance
WO2019042186A1 (en) Network management method and related device
EP3499842A1 (en) Calculation capability description method, interaction method and device for fog computing
EP4109251A1 (en) Vnf instantiation method and device
WO2016127422A1 (en) System, device and method for processing data
Mishra et al. REoN: A protocol for reliable software-defined FPGA partial reconfiguration over network
US20210064561A1 (en) Flexible datapath offload chaining
US20190205156A1 (en) Container access method and apparatus
CN102427420B (en) Virtual network mapping method and device based on graph pattern matching
US20220147502A1 (en) Method to perform hash table lookup for keys wider than data path size
CN106803804B (en) Method and device for transmitting message
WO2022001317A1 (en) Chip simulation method, apparatus and system, and device and storage medium
TWI555367B (en) At least one mechanism to permit, at least in part, allocation and/or configuration, at least in part, of at least one network-associated object
US10866765B2 (en) System and method for managing content using generic content management interface
CN114510325A (en) Task scheduling method, device and system
US20180004448A1 (en) System and method for increased efficiency thin provisioning
WO2022151386A1 (en) Node batch and upgrade method, and related apparatus and device
WO2017024542A1 (en) Data transmission method, device and system
US10853040B2 (en) Address space splitting for legacy application compatibility
CN113472523A (en) User mode protocol stack message processing optimization method, system, device and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15881584

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15881584

Country of ref document: EP

Kind code of ref document: A1