WO2018133879A1 - Server and data processing method thereof - Google Patents

Server and data processing method thereof Download PDF

Info

Publication number
WO2018133879A1
WO2018133879A1 PCT/CN2018/074553 CN2018074553W WO2018133879A1 WO 2018133879 A1 WO2018133879 A1 WO 2018133879A1 CN 2018074553 W CN2018074553 W CN 2018074553W WO 2018133879 A1 WO2018133879 A1 WO 2018133879A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
heterogeneous
data
bus
hard disk
Prior art date
Application number
PCT/CN2018/074553
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 济南浪潮高新科技投资发展有限公司
Publication of WO2018133879A1 publication Critical patent/WO2018133879A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS

Definitions

  • the present invention relates to the field of computer technologies, and in particular, to a server and a method for processing data.
  • the invention provides a server and a method for processing the same, which can improve data processing capability.
  • the present invention provides a server, the server comprising: a processor, a first bus, at least one second bus, and at least one heterogeneous unit;
  • Each of the heterogeneous units is connected to the processor via one of the second buses; each of the heterogeneous units is connected to the first bus;
  • the processor configured to: when it is determined that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit, and send the non-transactional data to the Said at least one target heterogeneous unit;
  • Each of the heterogeneous units is configured to process the non-transactional data when receiving the non-transactional data sent by the processor.
  • the heterogeneous unit comprises: at least three FPGA chips and a third bus;
  • the at least three FPGA chips are all connected to the third bus;
  • Any one of the at least three FPGA chips is connected to the corresponding second bus.
  • the heterogeneous unit comprises: at least two FPGA chips;
  • Each of the FPGA chips is respectively connected to a corresponding second bus.
  • the heterogeneous unit comprises: at least three FPGA chips;
  • the at least three FPGA chips are sequentially connected;
  • the FPGA chip in the first place and the FPGA chip in the last position are respectively connected to the corresponding second bus.
  • any of the FPGA chips connected to the corresponding second bus is connected to at least one external storage hard disk.
  • the method further comprises: a solid state hard disk and a mechanical hard disk;
  • the processor is further configured to receive a processing result fed back by each of the heterogeneous units; and send the processing result to the solid state hard disk;
  • the solid state drive is respectively connected to the processor and the mechanical hard disk, and configured to receive the processing result sent by the processor, store the processing result, and transmit the stored processing result to the machine a hard disk; starting timing when receiving the processing result sent by the processor, and deleting the stored processing result when the accumulated duration reaches a preset length of time.
  • the mechanical hard disk is configured to receive the processing result of the solid state hard disk transmission and store the same.
  • Each of the heterogeneous units is further configured to send intermediate data generated in a process of processing the non-transactional data to the processor; send a call instruction to the processor, and receive the transmitted by the processor Intermediate data;
  • the processor is further configured to send the intermediate data to the memory; retrieve the intermediate data from the memory according to the calling instruction sent by the heterogeneous unit, and send the intermediate data Giving the heterogeneous unit;
  • the memory is configured to store the intermediate data sent by the processor.
  • the bus includes a peripheral component interconnect standard PCIE bus or a high speed serial port SRIO bus.
  • the solid state drive is a non-volatile memory standard NVMe solid state storage hard disk
  • the mechanical hard disk is a serial connection SAS expansion disk array.
  • the present invention provides a method for processing data by the server, the method comprising:
  • the receiving, by the each of the target heterogeneous units, the non-transactional data sent by the processor, after processing the non-transactional data further comprising:
  • the intermediate data stored in the memory is retrieved by the processor, and the intermediate data is sent to the target heterogeneous unit.
  • the present invention provides a server and method thereof for processing data, the server comprising: a processor, a first bus, at least one second bus, and at least one heterogeneous unit.
  • a processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively
  • the heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving the non-transactional data sent by the processor.
  • the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, this solution can improve data processing capabilities.
  • FIG. 1 is a schematic structural diagram of a server according to an embodiment of the present invention.
  • FIG. 2 is a schematic structural view of a heterogeneous unit according to an embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in parallel according to an embodiment of the present invention
  • FIG. 4 is a schematic flow chart of a heterogeneous unit in which FPGA chips are connected in parallel according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in series according to an embodiment of the present invention
  • FIG. 6 is a schematic flow chart of a heterogeneous unit in which FPGA chips are connected in series according to an embodiment of the present invention
  • FIG. 7 is a schematic structural diagram of a server including a solid state hard disk and a mechanical hard disk according to an embodiment of the present invention
  • FIG. 8 is a schematic structural diagram of a server including a memory according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of a server according to another embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a heterogeneous unit according to another embodiment of the present invention.
  • FIG. 11 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in parallel according to another embodiment of the present invention.
  • FIG. 12 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in series according to another embodiment of the present invention.
  • FIG. 13 is a flowchart of a method for processing data by a server according to an embodiment of the present invention.
  • an embodiment of the present invention provides a server, the server includes: a processor 101, a first bus 102, at least one second bus 103, and at least one heterogeneous unit 104;
  • Each of the heterogeneous units 104 is connected to the processor 101 via a second bus 103; each of the heterogeneous units 104 is connected to the first bus 102;
  • the processor 101 is configured to: when it is determined that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit 104, and send the non-transactional data To the at least one target heterogeneous unit;
  • Each of the heterogeneous units 104 is configured to process the non-transactional data when receiving the non-transactional data sent by the processor 101.
  • the server comprises: a processor, a first bus, at least one second bus, and at least one heterogeneous unit.
  • each of the heterogeneous units is connected to the first bus, and when the processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively
  • the heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving the non-transactional data sent by the processor.
  • the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, embodiments of the present invention can improve data processing capabilities.
  • the bus includes: a peripheral component interconnect standard PCIE bus or a high speed serial port SRIO bus;
  • both the PCIE bus and the SRIO bus are high bandwidth low latency buses with fast transmission speed and low power consumption.
  • the choice of PCIE bus or SRIO bus is only a preferred way, and other forms of bus can be selected according to business requirements.
  • the first bus can select the SRIO bus, and the second bus can use the PCIE bus.
  • the processor when the number of the target heterogeneous units determined by the processor in the at least one heterogeneous unit is one, the processor sends the non-transactional data to the target heterogeneous unit, and the heterogeneous unit is receiving Non-transactional data is processed when it comes to non-transactional data.
  • the processor when the number of the target heterogeneous units determined by the processor in the at least one heterogeneous unit is at least two, the processor sends the non-transactional data to the at least two target heterogeneous units, at least two The heterogeneous unit processes the non-transactional data when it receives non-transactional data.
  • the processing of non-transactional data by at least two target heterogeneous units may exist in at least two cases: one is that each of the at least two target heterogeneous units sequentially processes non-transactional data, such as Two target heterogeneous units, the processor sends non-transactional data to the target heterogeneous unit 1, and the target heterogeneous unit 1 processes the non-transactional data first, and after the processing is completed, transmits the intermediate processing result to the target different The unit 2 and the target heterogeneous unit 2 perform the next processing on the intermediate processing result. After the target heterogeneous unit 2 is processed, the processing result is fed back to the processor.
  • each of the at least two target heterogeneous units simultaneously processes the non-transactional data, and there is an interaction process of the data during the processing. For example, if there is a target heterogeneous unit 1 and a target heterogeneous unit 2, the target heterogeneous unit 1 and the target heterogeneous unit 2 simultaneously process non-transactional data, and there is a data interaction process in the process, after the processing is completed, The processing result is fed back to the processor by any of the target heterogeneous unit 1 and the target heterogeneous unit 2.
  • one or more FPGA chips may be included in the heterogeneous unit, and the specific number may be determined according to service requirements.
  • the number of the FPGA chips included in each heterogeneous unit may be the same or different, and the connection manner between the respective FPGA chips included in each heterogeneous unit may be the same or different. Therefore, the connection manner between the respective FPGA chips included in the heterogeneous unit can be at least one of the following three methods:
  • Mode 2 parallel connection between individual FPGA chips in the heterogeneous unit
  • Mode 3 Connecting each FPGA chip in a heterogeneous unit in series.
  • the heterogeneous unit 104 includes: at least three FPGA chips 201 and a third bus 202;
  • the at least three FPGA chips 201 are all connected to the third bus 202;
  • Any one of the at least three FPGA chips 201 is connected to the corresponding second bus 103.
  • the types of the FPGA chip, the second bus, and the third bus can all be determined according to service requirements. For example, a Flash-based FPGA chip is selected, a PCIE bus is selected as the second bus, and the SRIO bus is selected as the third bus.
  • At least three FPGA chips are determined according to service requirements, and each FPGA chip is connected to the third bus.
  • the master FPGA chip is determined according to the service requirement in at least three FPGA chips, and the determined master FPGA chip is connected to the second bus. For example, determining that there are four FPGA chips of the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4 in the heterogeneous unit, respectively, the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4 are connected to the third bus.
  • the FPGA chip 1 is a main control FPGA chip
  • the FPGA chip 1 is connected to the second bus.
  • At least three FPGA chips included in the heterogeneous unit may be determined according to the number and computational difficulty of the non-transactional data. At least one FPGA chip is selected as the target FPGA chip.
  • the processor selects the FPGA chip 1 and the FPGA chip 2 as the target FPGA chip in the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4, and the processor sends the received non-transactional data to the FPGA chip 1 And the FPGA chip 2, since the FPGA chip 1 and the FPGA chip 2 are both connected to the third bus, the non-transactional data is processed by the cooperation between the FPGA chip 1 and the FPGA chip 2. After the processing is completed, the processing result is fed back. Give the processor.
  • the cooperation processing data between the FPGA chip 1 and the FPGA chip 2 may exist in at least two cases: one is that the FPGA chip 1 first performs the non-transactional data. After the processing is completed, the intermediate processing result is transmitted to the FPGA chip 2, and the FPGA chip 2 performs the next processing on the intermediate processing result. After the processing of the FPGA chip 2 is completed, the processing result is fed back to the processor.
  • the other is that FPGA chip 1 and FPGA chip 2 simultaneously process non-transactional data, and there is data interaction process in the process. After the processing is completed, any FPGA chip in FPGA chip 1 and FPGA chip 2 will be processed. The processing result is fed back to the processor.
  • At least three FPGA chips and a third bus may be included in the heterogeneous unit, wherein at least three FPGA chips are connected to the third bus, and any one of the at least three FPGA chips is corresponding to the FPGA chip.
  • the second bus is connected.
  • the heterogeneous unit 104 may include: at least two FPGA chips 301;
  • Each of the FPGA chips 301 is connected to a corresponding second bus 103.
  • the types of the FPGA chip and the second bus can be determined according to service requirements. For example, a Flash-based FPGA chip is selected, and an SRIO bus is selected as the second bus.
  • each FPGA chip is connected to the second bus, thereby implementing a parallel state between the FPGA chips.
  • any FPGA chip can be selected as the main control FPGA chip, and the determined main control FPGA chip can control other FPGA chips through the second bus.
  • five FPGA chips of the FPGA chip 401, the FPGA chip 402, the FPGA chip 403, the FPGA chip 404, and the FPGA chip 405 are present in the heterogeneous unit, and five FPGA chips are respectively connected to the second bus 407.
  • the non-transactional data sent by the processor is received by the second bus, and the processing result is fed back to the processor through the second bus.
  • the main control FPGA chip 401 performs specific configuration on the FPGA chip 402, the FPGA chip 403, the FPGA chip 404, and the FPGA chip 405 through the lines 408, 409, and 410.
  • the types of specific transmission signals of lines 408, 409 and 410 can be determined according to business requirements. For example, when 408 is a clock line, the clocks in the respective FPGA chips can be unified through line 408.
  • the target heterogeneous unit may be determined according to the quantity and computational difficulty of the non-transactional data. Any one of the at least two FPGA chips included is selected as the target FPGA chip. For example, if the processor selects the FPGA chip 2 as the target FPGA chip in the FPGA chip 1, the FPGA chip 2, and the FPGA chip 3, the processor sends the received non-transactional data to the FPGA chip 2, and the FPGA chip 2 is non-transaction type. The data is processed, and after the processing is completed, the processing result is fed back to the processor. In addition, if the control of the FPGA chip is required when the FPGA chip 2 performs data processing, the master FPGA chip 1 controls the data processing of the FPGA chip 2 through the second bus.
  • At least two FPGA chips may be included in the heterogeneous unit, wherein each FPGA chip is respectively connected to a corresponding second bus. It can be seen from the above that there is a parallel relationship between the FPGA chips. When an FPGA chip processes non-transactional data, other FPGA chips other than the main control FPGA chip cannot interfere with it. Therefore, the independence of processing data is better. high.
  • the heterogeneous unit 104 may include: at least three FPGA chips 501;
  • the at least three FPGA chips 501 are sequentially connected;
  • the FPGA chip 501 in the first place and the FPGA chip 501 in the last position are respectively connected to the corresponding second bus 103.
  • the types of the FPGA chip and the second bus can be determined according to service requirements. For example, a Flash-based FPGA chip is selected, and an SRIO bus is selected as the second bus.
  • At least three FPGA chips are determined according to service requirements, and each FPGA chip is sequentially connected.
  • the FPGA chip in the first position and the FPGA chip in the last position are respectively corresponding to each other.
  • the second bus is connected.
  • the FPGA chip in the first position can be determined as the main control FPGA chip, and the main control FPGA chip can control each FPGA chip through the lines between the FPGA chips.
  • the main control FPGA chip can control the FPGA chip in the last position by using the line between the FPGA chips, and can also be controlled by the second bus.
  • the processor determines that the data input by the external input is non-transactional data
  • the non-transactional data is sent to the FPGA chip in the first place.
  • the intermediate result of the processing is sent to the next FPGA chip adjacent to it, and then the next FPGA chip performs corresponding processing, and the processing result is sent to the next FPGA chip adjacent thereto. In this way, after the processing of the FPGA chip in the last position is completed, the terminated processing result is sent to the processor.
  • the final processing result is sent to the processor: one is that the FPGA chip in the last bit directly sends the final processing result directly to the processor through the second bus; the other is at the end.
  • the bit FPGA chip sends the final processing result to the first-ranked master FPGA chip, and then the final FPGA chip sends the final processing result to the processor.
  • the processor 601 determines that it is received.
  • the non-transactional data is sent to the first-ranked FPGA chip 602 through the line 607, and the first FPGA chip 602 is processed to send the intermediate result of the processing to the next adjacent one.
  • the FPGA chip 603, and then the next FPGA chip 603 performs corresponding processing, and sends the processing result to the next FPGA chip 604 adjacent thereto, so that after the data processing of the FPGA chip 606 in the last position is completed, The final processing result is sent to the processor 601.
  • the FPGA chip 606 is a main control FPGA chip, and the FPGA chip 606 can specifically configure the FPGA chip 602, the FPGA chip 603, the FPGA chip 604, and the FPGA chip 605 through the lines 608, 609, and 610, wherein the line is configured.
  • the types of specific transmission signals of 608, 609 and 610 can be determined according to business requirements. For example, when 609 is a clock line, the clocks in the respective FPGA chips can be unified through the line 609.
  • the heterogeneous unit includes at least three FPGA chips connected in sequence, and the FPGA chip in the first position and the FPGA chip in the last position are respectively connected to the corresponding second bus.
  • the data is processed through each FPGA chip in turn, so that the data processing amount in each FPGA chip can be dispersed, thereby improving the data processing speed.
  • any of the FPGA chips connected to the corresponding second bus 103 are connected to at least one external storage hard disk.
  • the FPGA chip connected to the corresponding second bus can be used as the main control FPGA chip, because the main control FPGA chip can control other FPGA chips, and can obtain data processing results in each chip, so
  • the two bus-connected FPGA chips can be connected to at least one external storage hard disk to store the final data processing result or the data processing result of the intermediate process.
  • the number and type of storage hard disks can be determined according to business requirements. For example, two storage hard disks are selected, and all are solid state hard disks.
  • any FPGA chip connected to the corresponding second bus is connected to at least one external storage hard disk, so that the data processing result in the FPGA chip is timely stored in the storage hard disk, thereby reducing data processing result loss. The probability.
  • the server may further include a solid state hard disk 701 and a mechanical hard disk 702;
  • the processor 101 is further configured to receive a processing result fed back by each of the heterogeneous units 104; send the processing result to the solid state hard disk 701;
  • the SSDs 701 are respectively connected to the processor 101 and the mechanical hard disk 702, and are configured to receive the processing result sent by the processor 101, store the processing result, and transmit the stored processing result.
  • the mechanical hard disk 702 when the processor 101 receives the processing result, the timing is started, and when the accumulated duration reaches a preset duration, the stored processing result is deleted;
  • the mechanical hard disk 702 is configured to receive the processing result transmitted by the solid state hard disk 701 and store the result.
  • the number and model of the solid state hard disk and the mechanical hard disk can be determined according to service requirements. For example, one NVMe solid state storage hard disk is selected, and the selected mechanical hard disk is a SAS extended disk array.
  • Solid state drives have the advantage of fast write speed, but have the disadvantage of small storage space.
  • the mechanical hard disk has the advantage of large storage space, but has the disadvantage of slow writing speed. Therefore, the server of the present invention can include both a solid state hard disk and a mechanical hard disk, and a combination of a solid state hard disk and a mechanical hard disk is used to combine the storage frames to realize the advantages of the two types of hard disks.
  • the solid state hard disk is used as a cache disk based on the advantage that the solid state hard disk write speed is fast.
  • the processor receives the processing result of the heterogeneous unit feedback, the processing result is sent to the solid state hard disk, so that the processing result is quickly stored in the solid state hard disk. Due to the limited storage space of the fixed hard disk, the processing result of the storage is sent to the mechanical hard disk with a large storage space.
  • the storage capacity of the solid state hard disk is limited, and the processing result of the storage is written into the mechanical hard disk, the processing result of the storage itself is deleted, so as to prepare for the next storage of the new processing result.
  • the process of deleting the processing result stored by the SSD may be: when the SSD receives the processor to send the processing result, the timing starts, and when the accumulated duration reaches the preset duration, the stored processing result is deleted.
  • the set duration can be determined according to business requirements, such as 1 hour.
  • the server further includes a solid state hard disk and a mechanical hard disk, and constitutes a hybrid storage architecture with fast storage speed and large storage space.
  • the solid state drive 701 is a non-volatile memory standard NVMe solid state storage hard disk
  • the mechanical hard disk 702 is a serial connection SAS expansion disk array.
  • the solid state hard disk is a non-volatile memory standard NVMe solid state storage hard disk is only a preferred method, and other forms of solid state hard disks can be selected according to service requirements.
  • the mechanical hard disk is a serial connection SAS expansion disk array is only a preferred method, and other forms of mechanical hard disk can be selected according to business requirements.
  • the server may further include: a memory 801;
  • Each of the heterogeneous units 104 is further configured to send intermediate data generated in a process of processing the non-transactional data to the processor 101; send a call instruction to the processor 101, and receive the processor The intermediate data transmitted by 101;
  • the processor 101 is further configured to send the intermediate data to the memory 801; retrieve the intermediate data from the memory according to the calling instruction sent by the heterogeneous unit 104, and Intermediate data is sent to the heterogeneous unit 104;
  • the memory 801 is configured to store the intermediate data sent by the processor 101.
  • the number and form of the memory can be determined according to service requirements, for example, a memory in the form of synchronous dynamic random access memory is selected.
  • the intermediate data generated by each heterogeneous unit in the process of processing non-transactional data may be stored in each heterogeneous unit itself, and thus each heterogeneous unit may not have enough space for storage, so memory is required.
  • the intermediate data generated in the process of processing non-transactional data is stored.
  • the heterogeneous unit 1 is taken as an example.
  • the heterogeneous unit 1 When the heterogeneous unit 1 generates a large amount of intermediate data in the process of processing non-transactional data, the heterogeneous unit 1 sends the generated intermediate data to the processing.
  • the processor then sends the intermediate data to the memory.
  • the intermediate data is stored after the memory receives the intermediate data.
  • the calling instruction is sent to the processing data, wherein the calling instruction may include the identifier of the heterogeneous unit 1.
  • the processor calls the intermediate data of the heterogeneous unit 1 in the memory according to the identification information of the heterogeneous unit 1 in the calling instruction, and sends the called intermediate data to the heterogeneous unit 1 to enable the heterogeneous unit 1 to utilize the Intermediate data for data processing.
  • the server may further include a memory, and use the memory to store intermediate data generated by each heterogeneous unit in processing the non-transactional data to release the storage space in the heterogeneous unit, thereby improving the heterogeneous unit.
  • the speed at which data is processed may be performed.
  • the server includes:
  • the heterogeneous unit 902, the heterogeneous unit 903, and the heterogeneous unit 904 of the six heterogeneous units are respectively connected to the processor through the first PCIE bus; the heterogeneous unit 905 among the six heterogeneous units, The heterogeneous unit 906 and the heterogeneous unit 907 are respectively connected to the processor through the second PCIE bus; each heterogeneous unit is connected to the first SRIO bus; the first SRIO bus is connected to the second PCIE bus through the PCIE-SRIO converter. To achieve communication between the first SRIO bus and the second PCIE bus.
  • the SAS hard disk is connected to the processor through the SAS controller and the first PCIE bus; the NVMe solid state storage hard disk is connected to the processor through the first PCIE bus; the memory is connected to the processor.
  • each heterogeneous unit includes a set number of FPGA chips, wherein each FPGA chip may have: DDR (Double Data Rate) interface, SPI (serial peripheral interface) Serial peripheral interface), norflash interface, SMBus (System Management Bus) interface, PCIE interface, SRIO interface, JTAG (Joint Test) Action Group; Joint Test Workgroup Protocol) interface, mode mode interface.
  • DDR Double Data Rate
  • SPI Serial peripheral interface
  • norflash interface Serial peripheral interface
  • SMBus System Management Bus
  • PCIE interface PCIE interface
  • SRIO interface Joint Test Action Group
  • JTAG (Joint Test) Action Group Joint Test Workgroup Protocol) interface
  • the heterogeneous unit 902 and the heterogeneous unit 903 of the six heterogeneous units include an FPGA chip 9021, an FPGA chip 9022, an FPGA chip 9023, and a second SRIO bus 9024.
  • Each FPGA chip is connected to the second SRIO bus.
  • the FPGA chip 9021 of the three FPGA chips is connected as a master FPGA chip to the corresponding first PCIE bus.
  • the heterogeneous unit 904 of the six heterogeneous units includes an FPGA chip 9041, an FPGA chip 9042, and an FPGA chip 9043.
  • Each FPGA chip is in a parallel state, and each FPGA chip is respectively connected to a corresponding first PCIE bus.
  • the FPGA chip 9041 is connected as a main control FPGA chip to the corresponding first PCIE bus.
  • the heterogeneous unit 905, the heterogeneous unit 906, and the heterogeneous unit 907 of the six heterogeneous units include an FPGA chip 9051, an FPGA chip 9052, and an FPGA chip 9053.
  • Each FPGA chip is in a serial state, and the FPGA chip 9051, the FPGA chip 9052, and the FPGA chip 9053 are sequentially connected; the FPGA chip 9051 in the first position and the FPGA 9052 chip in the last position are respectively connected to the corresponding second PCIE bus.
  • the processor determines, when the data received by the external input is non-transactional data, determines at least one target heterogeneous unit among the six heterogeneous units, and transmits the non-transactional data to the at least one target heterogeneous unit.
  • the processor may be in the FPGA chip 9021 and the FPGA chip 9022 according to the number and computational difficulty of the non-transactional data. At least one FPGA chip is selected as the target FPGA chip in the FPGA chip 9023. For example, if the FPGA chip 9021 and the FPGA chip 9022 are selected as the target FPGA chip, the processor sends the received non-transactional data to the FPGA chip 9021 and the FPGA chip 9022. The non-transactional data is processed by the cooperation between the FPGA chip 9021 and the FPGA chip 9022, and after the processing is completed, the processing result is fed back to the processor.
  • the processor may select any one of the FPGA chip 9041, the FPGA chip 9042, and the FPGA chip 9043 as the target FPGA chip. For example, if the FPGA chip 9043 is selected as the target FPGA chip, the processor sends the received non-transactional data to the FPGA chip 9043, and the non-transactional data is processed by the FPGA chip 9043. After the processing is completed, the processing result is fed back. Give the processor.
  • the processor sends the non-transactional data to the FPGA chip 9051 in the first place, and the first FPGA After the processing of the chip 9051 is completed, the intermediate result of the processing is sent to the next FPGA chip 9052 adjacent thereto, and then the next FPGA chip 9052 performs corresponding processing, and the processing result is sent to the next FPGA chip adjacent thereto. 9053, in this way, until the data processing of the FPGA chip 9053 in the last position is completed, the terminated processing result is sent to the processor.
  • the processor When the processor receives the processing result fed back by the heterogeneous unit, such as the heterogeneous unit 902, the processing result is sent to the NVMe solid-state storage hard disk, and when the NVMe solid-state storage hard disk receives the processing result sent by the processor, the storage starts simultaneously, and The stored processing result is transmitted to the SAS hard disk; the SAS hard disk stores the processing result of the NVMe solid-state storage hard disk transmission; when the accumulated time of the NVMe solid-state storage hard disk reaches a preset time length, for example, 2 hours, the stored processing result is deleted.
  • a preset time length for example, 2 hours
  • the heterogeneous unit 901 is taken as an example.
  • the heterogeneous unit 901 When the heterogeneous unit 901 generates a large amount of intermediate data in the process of processing non-transactional data, the heterogeneous unit 901 sends the generated intermediate data to the processing.
  • the processor sends the intermediate data to the memory 916.
  • the intermediate data is stored after the memory receives the intermediate data.
  • the calling instruction is sent to the processing data, wherein the calling instruction includes the identifier of the heterogeneous unit 901.
  • Processing the data calling the intermediate data of the heterogeneous unit 901 in the memory according to the identification information in the calling instruction, and sending the called intermediate data to the heterogeneous unit 901, so that the heterogeneous unit 901 uses the intermediate data to perform data. deal with.
  • the server further includes: a network card 917, a BMC (Baseboard Management Controller) 918, a graphics card 919, a CPLD (Complex Programmable Logic Device) 920, and a USB controller. 921.
  • the USB controller may include at least one expansion port, so that the server can receive the data to be processed through the USB interface; the network card can be connected to the 40G optical port to enable the server to access the Internet, so that the data to be processed sent from the network channel can be received;
  • the BMC can perform configuration management, hardware management, and troubleshooting on the server.
  • an embodiment of the present invention provides a method for processing data by a server, where the method includes:
  • Step 1301 When the processor determines that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit, and send the non-transactional data to the Said at least one of said target heterogeneous units;
  • Step 1302 Receive, by using each of the target heterogeneous units, the non-transactional data sent by the processor, and process the non-transactional data.
  • the method includes: when the processor determines that the data received by the external input is non-transactional data, determines at least one target heterogeneous unit in at least one heterogeneous unit, and performs non-transaction Type data is sent to at least one target heterogeneous unit.
  • the non-transactional data is processed with each target heterogeneity.
  • the solution determines that at least one target heterogeneous unit is determined by the heterogeneous unit connected thereto when the processor determines that the non-transactional data is received, so that the determined at least one target heterogeneous unit is received.
  • Non-transactional data is processed.
  • embodiments of the present invention can increase data processing capabilities.
  • the receiving, by the target heterogeneous unit, the non-transactional data sent by the processor, after processing the non-transactional data further comprising:
  • the target heterogeneous unit sends intermediate data generated in the process of processing the non-transactional data to the processor
  • the intermediate data stored in the memory is retrieved by the processor, and the intermediate data is sent to the target heterogeneous unit.
  • the server comprises: a processor, a first bus, at least one second bus, and at least one heterogeneous unit. Wherein each of the heterogeneous units is connected to the first bus, and when the processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively.
  • the heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving non-transactional data sent by the processor.
  • the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, embodiments of the present invention can improve data processing capabilities.
  • At least three FPGA chips and a third bus may be included in the heterogeneous unit, wherein at least three FPGA chips are connected to the third bus, and any one of the at least three FPGA chips is used.
  • the FPGA chip is connected to a corresponding second bus.
  • At least two FPGA chips may be included in the heterogeneous unit, wherein each FPGA chip is respectively connected to a corresponding second bus. It can be seen from the above that there is a parallel relationship between the FPGA chips. When an FPGA chip processes non-transactional data, other FPGA chips other than the main control FPGA chip cannot interfere with it. Therefore, the independence of processing data is better. high.
  • the heterogeneous unit includes at least three FPGA chips connected in sequence, and the FPGA chip in the first position and the FPGA chip in the last position are respectively connected to the corresponding second bus.
  • the data is processed through each FPGA chip in turn, so that the data processing amount in each FPGA chip can be dispersed, thereby improving the data processing speed.
  • any FPGA chip connected to the corresponding second bus is connected to at least one external storage hard disk, so that the data processing result in the FPGA chip is timely stored in the storage hard disk, thereby reducing The probability of data processing results being lost.
  • the server further includes a solid state hard disk and a mechanical hard disk, and constitutes a hybrid storage architecture with fast storage speed and large storage space.
  • the server may further include a memory, and use the memory to store intermediate data generated by each heterogeneous unit in processing non-transactional data to release the storage space in the heterogeneous unit, thereby Improve the speed at which heterogeneous units process data.
  • the foregoing program may be stored in a computer readable storage medium, and the program is executed when executed.
  • the steps of the foregoing method embodiments are included; and the foregoing storage medium includes: various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

The present invention provides a server and a data processing method thereof. The server comprises: a processor, a first bus, at least one second bus, and at least one heterogeneous unit. Each of the heterogeneous units is connected to the first bus. When the processor determines that data received from an outside input is non-transaction data, the processor selects at least one target heterogeneous unit from each of the heterogeneous units that are respectively connected thereto via the second bus and sends the non-transaction data to the at least one target heterogeneous unit. When each of the heterogeneous units receives the non-transaction data sent by the processor, each of the heterogeneous units processes the non-transaction data. As disclosed above, the present invention allows, when the processor determines that non-transaction data is received, the processor to select at least one target heterogeneous unit from the heterogeneous units connected thereto, so that the selected at least one target heterogeneous unit can process the non-transaction data received. As such, the present invention can improve data processing capacity.

Description

一种服务器及其处理数据的方法Server and method for processing same 技术领域Technical field
本发明涉及计算机技术领域,特别涉及一种服务器及其处理数据的方法。The present invention relates to the field of computer technologies, and in particular, to a server and a method for processing data.
背景技术Background technique
随着互联网和大数据技术的不断发展,服务器得到了越来越广泛的应用。With the continuous development of the Internet and big data technologies, servers have become more and more widely used.
目前,服务器中通常只存在有普通处理器,该普通处理器只能满足处理事务型数据。对于数据量大和算法复杂的非事务型数据,该普通处理器的数据处理能力已经无法满足要求。因此急需一种可以处理数据量大和算法复杂的非事务型数据的服务器,来提高数据处理能力。Currently, there are usually only ordinary processors in the server, which can only handle transactional data. For non-transactional data with large data volume and complex algorithm, the data processing capability of the ordinary processor cannot meet the requirements. Therefore, there is an urgent need for a server that can handle non-transactional data with a large amount of data and complicated algorithms to improve data processing capabilities.
技术问题technical problem
本发明提供了一种服务器及其处理数据的方法,可以提高数据处理能力。The invention provides a server and a method for processing the same, which can improve data processing capability.
技术解决方案Technical solution
第一方面,本发明提供了一种服务器,该服务器包括:处理器、第一总线、至少一条第二总线以及至少一个异构单元;In a first aspect, the present invention provides a server, the server comprising: a processor, a first bus, at least one second bus, and at least one heterogeneous unit;
每一个所述异构单元分别通过一条所述第二总线与所述处理器相连;每一个所述异构单元均与所述第一总线相连;Each of the heterogeneous units is connected to the processor via one of the second buses; each of the heterogeneous units is connected to the first bus;
所述处理器,用于当确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个目标异构单元; The processor, configured to: when it is determined that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit, and send the non-transactional data to the Said at least one target heterogeneous unit;
每一个所述异构单元,用于在接收到所述处理器发送的所述非事务型数据时,对所述非事务型数据进行处理。Each of the heterogeneous units is configured to process the non-transactional data when receiving the non-transactional data sent by the processor.
优选地,所述异构单元,包括: 至少三个FPGA芯片和第三总线;Preferably, the heterogeneous unit comprises: at least three FPGA chips and a third bus;
所述至少三个FPGA芯片均与所述第三总线相连;The at least three FPGA chips are all connected to the third bus;
所述至少三个FPGA芯片中的任一个FPGA芯片与对应的所述第二总线相连。Any one of the at least three FPGA chips is connected to the corresponding second bus.
优选地,所述异构单元,包括:至少两个FPGA芯片;Preferably, the heterogeneous unit comprises: at least two FPGA chips;
每一个所述FPGA芯片分别与对应的所述第二总线相连。Each of the FPGA chips is respectively connected to a corresponding second bus.
优选地,所述异构单元,包括:至少三个FPGA芯片;Preferably, the heterogeneous unit comprises: at least three FPGA chips;
所述至少三个FPGA芯片依次连接;The at least three FPGA chips are sequentially connected;
处于首位的FPGA芯片和处于末位的FPGA芯片分别与对应的所述第二总线相连。The FPGA chip in the first place and the FPGA chip in the last position are respectively connected to the corresponding second bus.
优选地,与对应的所述第二总线相连的任一所述FPGA芯片与外部的至少一个存储硬盘相连。Preferably, any of the FPGA chips connected to the corresponding second bus is connected to at least one external storage hard disk.
优选地,进一步包括:固态硬盘和机械硬盘;Preferably, the method further comprises: a solid state hard disk and a mechanical hard disk;
所述处理器,进一步用于接收每一个所述异构单元反馈的处理结果;将所述处理结果发送至所述固态硬盘;The processor is further configured to receive a processing result fed back by each of the heterogeneous units; and send the processing result to the solid state hard disk;
所述固态硬盘,分别与所述处理器和所述机械硬盘相连,用于接收所述处理器发送的所述处理结果,存储所述处理结果;将存储的所述处理结果传输至所述机械硬盘;当接收到所述处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果。The solid state drive is respectively connected to the processor and the mechanical hard disk, and configured to receive the processing result sent by the processor, store the processing result, and transmit the stored processing result to the machine a hard disk; starting timing when receiving the processing result sent by the processor, and deleting the stored processing result when the accumulated duration reaches a preset length of time.
所述机械硬盘,用于接收所述固态硬盘传输的所述处理结果,并存储。The mechanical hard disk is configured to receive the processing result of the solid state hard disk transmission and store the same.
优选地,进一步包括:内存;Preferably, further comprising: a memory;
每一个所述异构单元,进一步用于将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器;发送调用指令至所述处理器,接收所述处理器传输的所述中间数据;Each of the heterogeneous units is further configured to send intermediate data generated in a process of processing the non-transactional data to the processor; send a call instruction to the processor, and receive the transmitted by the processor Intermediate data;
所述处理器,进一步用于将所述中间数据发送至所述内存;根据所述异构单元发送的所述调用指令从所述内存中调取所述中间数据,并将所述中间数据发送给所述异构单元;The processor is further configured to send the intermediate data to the memory; retrieve the intermediate data from the memory according to the calling instruction sent by the heterogeneous unit, and send the intermediate data Giving the heterogeneous unit;
所述内存,用于存储所述处理器发送的所述中间数据。The memory is configured to store the intermediate data sent by the processor.
优选地,Preferably,
所述总线包括:外设部件互连标准PCIE总线或高速串行口SRIO总线。The bus includes a peripheral component interconnect standard PCIE bus or a high speed serial port SRIO bus.
优选地,Preferably,
所述固态硬盘为非易失性存储器标准NVMe固态存储硬盘;The solid state drive is a non-volatile memory standard NVMe solid state storage hard disk;
所述机械硬盘为串行连接SAS扩展盘阵。The mechanical hard disk is a serial connection SAS expansion disk array.
第二方面,本发明提供了一种上述服务器处理数据的方法,该方法包括:In a second aspect, the present invention provides a method for processing data by the server, the method comprising:
当所述处理器确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个所述目标异构单元;Determining at least one target heterogeneous unit in the at least one heterogeneous unit and transmitting the non-transactional type data to the at least one unit when the processor determines that the data received by the external input is non-transactional type data The target heterogeneous unit;
利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理。And receiving, by each of the target heterogeneous units, the non-transactional data sent by the processor, and processing the non-transactional data.
优选地,所述利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理之后,进一步包括:Preferably, the receiving, by the each of the target heterogeneous units, the non-transactional data sent by the processor, after processing the non-transactional data, further comprising:
利用所述处理器接收每一个所述目标异构单元反馈的处理结果,将所述处理结果发送至所述固态硬盘;Receiving, by the processor, a processing result fed back by each of the target heterogeneous units, and transmitting the processing result to the solid state hard disk;
利用所述固态硬盘接收所述处理器发送的处理结果,存储所述处理结果,并将存储的所述处理结果传输至所述机械硬盘;当接收到所述处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果。Receiving, by the solid state hard disk, a processing result sent by the processor, storing the processing result, and transmitting the stored processing result to the mechanical hard disk; and starting timing when receiving the processing result sent by the processor, When the accumulated duration reaches a predetermined length of time, the stored processing result is deleted.
利用所述机械硬盘接收所述固态硬盘传输的所述处理结果,并存储。Receiving, by the mechanical hard disk, the processing result of the solid state hard disk transmission and storing.
优选地,Preferably,
进一步包括:Further includes:
所述目标异构单元将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器;Transmitting, by the target heterogeneous unit, intermediate data generated in a process of processing the non-transactional data to the processor;
利用所述处理器接收所述目标异构单元发送的所述中间数据,并将所述中间数据发送至所述内存;Receiving, by the processor, the intermediate data sent by the target heterogeneous unit, and sending the intermediate data to the memory;
利用所述内存存储所述处理器发送的所述中间数据;Using the memory to store the intermediate data sent by the processor;
当接收到所述目标异构单元发送的调取指令时,利用所述处理器调取所述内存中存储的所述中间数据,并将所述中间数据发送给所述目标异构单元。And when the receiving instruction sent by the target heterogeneous unit is received, the intermediate data stored in the memory is retrieved by the processor, and the intermediate data is sent to the target heterogeneous unit.
有益效果Beneficial effect
本发明提供了一种服务器及其处理数据的方法,该服务器包括:处理器、第一总线、至少一条第二总线以及至少一个异构单元。其中,每一个异构单元均与第一总线相连,处理器当确定接收到外部输入的数据为非事务型数据时,在与其分别通过第二总线相连的每一个异构单元中确定至少一个目标异构单元,并将非事务型数据发送给至少一个目标异构单元,每一个异构单元在接收到处理器发送的非事务型数据时,对非事务型数据进行处理。通过上述可知,本方案在处理器确定接收到非事务型数据时,在与其相连的异构单元确定出至少一个目标异构单元,以使确定出的至少一个目标异构单元针对接收到的非事务型数据进行处理。因此本方案可以提高数据处理能力。The present invention provides a server and method thereof for processing data, the server comprising: a processor, a first bus, at least one second bus, and at least one heterogeneous unit. Wherein each of the heterogeneous units is connected to the first bus, and when the processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively The heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving the non-transactional data sent by the processor. As can be seen from the foregoing, when the processor determines that the non-transactional data is received, the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, this solution can improve data processing capabilities.
附图说明DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the embodiments or the description of the prior art will be briefly described below. Obviously, the drawings in the following description are Some embodiments of the present invention may also be used to obtain other drawings based on these drawings without departing from the art.
图1是本发明一个实施例提供的一种服务器的结构示意图;1 is a schematic structural diagram of a server according to an embodiment of the present invention;
图2是本发明一个实施例提供的一种异构单元的结构示意图;2 is a schematic structural view of a heterogeneous unit according to an embodiment of the present invention;
图3是本发明一个实施例提供的一种FPGA芯片并联的异构单元的结构示意图;3 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in parallel according to an embodiment of the present invention;
图4是本发明一个实施例提供的一种FPGA芯片并联的异构单元的流程示意图;4 is a schematic flow chart of a heterogeneous unit in which FPGA chips are connected in parallel according to an embodiment of the present invention;
图5是本发明一个实施例提供的一种FPGA芯片串联的异构单元的结构示意图;FIG. 5 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in series according to an embodiment of the present invention; FIG.
图6是本发明一个实施例提供的一种FPGA芯片串联的异构单元的流程示意图;6 is a schematic flow chart of a heterogeneous unit in which FPGA chips are connected in series according to an embodiment of the present invention;
图7是本发明一个实施例提供的一种包括固态硬盘和机械硬盘的服务器的结构示意图;FIG. 7 is a schematic structural diagram of a server including a solid state hard disk and a mechanical hard disk according to an embodiment of the present invention; FIG.
图8是本发明一个实施例提供的一种包括内存的服务器的结构示意图;FIG. 8 is a schematic structural diagram of a server including a memory according to an embodiment of the present invention; FIG.
图9是本发明另一个实施例提供的一种服务器的结构示意图;FIG. 9 is a schematic structural diagram of a server according to another embodiment of the present invention; FIG.
图10是本发明另一个实施例提供的一种异构单元的结构示意图;FIG. 10 is a schematic structural diagram of a heterogeneous unit according to another embodiment of the present invention; FIG.
图11是本发明另一个实施例提供的一种FPGA芯片并联的异构单元的结构示意图;11 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in parallel according to another embodiment of the present invention;
图12是本发明另一个实施例提供的一种FPGA芯片串联的异构单元的结构示意图;12 is a schematic structural diagram of a heterogeneous unit in which FPGA chips are connected in series according to another embodiment of the present invention;
图13是本发明一个实施例提供的一种服务器处理数据的方法流程图。FIG. 13 is a flowchart of a method for processing data by a server according to an embodiment of the present invention.
本发明的实施方式Embodiments of the invention
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。The technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the drawings in the embodiments of the present invention. It is a part of the embodiments of the present invention, and not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative efforts are protected by the present invention. range.
如图1所示,本发明实施例提供了一种服务器,该服务器包括:处理器101、第一总线102、至少一条第二总线103以及至少一个异构单元104;As shown in Figure 1, an embodiment of the present invention provides a server, the server includes: a processor 101, a first bus 102, at least one second bus 103, and at least one heterogeneous unit 104;
每一个所述异构单元104分别通过一条所述第二总线103与所述处理器101相连;每一个所述异构单元104均与所述第一总线102相连;Each of the heterogeneous units 104 is connected to the processor 101 via a second bus 103; each of the heterogeneous units 104 is connected to the first bus 102;
所述处理器101,用于当确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元104中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个目标异构单元; The processor 101 is configured to: when it is determined that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit 104, and send the non-transactional data To the at least one target heterogeneous unit;
每一个所述异构单元104,用于在接收到所述处理器101发送的所述非事务型数据时,对所述非事务型数据进行处理。Each of the heterogeneous units 104 is configured to process the non-transactional data when receiving the non-transactional data sent by the processor 101.
根据如图1所示的实施例,该服务器包括:处理器、第一总线、至少一条第二总线以及至少一个异构单元。其中,每一个异构单元均与第一总线相连,处理器当确定接收到外部输入的数据为非事务型数据时,在与其分别通过第二总线相连的每一个异构单元中确定至少一个目标异构单元,并将非事务型数据发送给至少一个目标异构单元,每一个异构单元在接收到处理器发送的非事务型数据时,对非事务型数据进行处理。通过上述可知,本方案在处理器确定接收到非事务型数据时,在与其相连的异构单元确定出至少一个目标异构单元,以使确定出的至少一个目标异构单元针对接收到的非事务型数据进行处理。因此本发明实施例可以提高数据处理能力。According to an embodiment as shown in Figure 1, the server comprises: a processor, a first bus, at least one second bus, and at least one heterogeneous unit. Wherein each of the heterogeneous units is connected to the first bus, and when the processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively The heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving the non-transactional data sent by the processor. As can be seen from the foregoing, when the processor determines that the non-transactional data is received, the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, embodiments of the present invention can improve data processing capabilities.
在本发明一个实施例中,所述总线包括:外设部件互连标准PCIE总线或高速串行口SRIO总线;In an embodiment of the invention, the bus includes: a peripheral component interconnect standard PCIE bus or a high speed serial port SRIO bus;
在本实施例中,PCIE总线和SRIO总线均是具有传输速度快、功耗低等特点的高带宽低延迟总线。选用PCIE总线或SRIO总线只是一种优选的方式,可以根据业务要求选用其他形式的总线。In this embodiment, both the PCIE bus and the SRIO bus are high bandwidth low latency buses with fast transmission speed and low power consumption. The choice of PCIE bus or SRIO bus is only a preferred way, and other forms of bus can be selected according to business requirements.
在本实施例中,第一总线可以选用SRIO总线,第二总线可以选用PCIE总线。In this embodiment, the first bus can select the SRIO bus, and the second bus can use the PCIE bus.
在本发明一个实施例中,当处理器在至少一个异构单元中确定的目标异构单元的数量为一个时,处理器将非事务型数据发送该目标异构单元,该异构单元在接收到非事务型数据时,对非事务型数据进行处理。In an embodiment of the present invention, when the number of the target heterogeneous units determined by the processor in the at least one heterogeneous unit is one, the processor sends the non-transactional data to the target heterogeneous unit, and the heterogeneous unit is receiving Non-transactional data is processed when it comes to non-transactional data.
在本发明一个实施例中,当处理器在至少一个异构单元中确定的目标异构单元的数量为至少两个时,处理器将非事务型数据发送至少两个目标异构单元,至少两个异构单元在接收到非事务型数据时,对非事务型数据进行处理。至少两个目标异构单元的处理非事务型数据可以存在以下至少两种情况:一种是,至少两个目标异构单元中的每一个异构单元依次对非事务型数据进行处理,比如存在2个目标异构单元,处理器将非事务型数据发送给目标异构单元1,目标异构单元1先对该非事务型数据进行处理,待处理完成后,将中间处理结果传输给目标异构单元2,目标异构单元2对中间处理结果再进行下一步处理,当目标异构单元2处理完成后,将处理结果反馈给处理器。另一种是,至少两个目标异构单元中的每一个异构单元同时对非事务型数据进行处理,处理过程中存在数据的交互过程。比如,存在目标异构单元1和目标异构单元2,则目标异构单元1和目标异构单元2同时对非事务型数据进行处理,处理过程中存在数据的交互过程,待处理完成后,由目标异构单元1和目标异构单元2中的任一FPGA芯片将处理结果反馈给处理器。In an embodiment of the present invention, when the number of the target heterogeneous units determined by the processor in the at least one heterogeneous unit is at least two, the processor sends the non-transactional data to the at least two target heterogeneous units, at least two The heterogeneous unit processes the non-transactional data when it receives non-transactional data. The processing of non-transactional data by at least two target heterogeneous units may exist in at least two cases: one is that each of the at least two target heterogeneous units sequentially processes non-transactional data, such as Two target heterogeneous units, the processor sends non-transactional data to the target heterogeneous unit 1, and the target heterogeneous unit 1 processes the non-transactional data first, and after the processing is completed, transmits the intermediate processing result to the target different The unit 2 and the target heterogeneous unit 2 perform the next processing on the intermediate processing result. After the target heterogeneous unit 2 is processed, the processing result is fed back to the processor. The other is that each of the at least two target heterogeneous units simultaneously processes the non-transactional data, and there is an interaction process of the data during the processing. For example, if there is a target heterogeneous unit 1 and a target heterogeneous unit 2, the target heterogeneous unit 1 and the target heterogeneous unit 2 simultaneously process non-transactional data, and there is a data interaction process in the process, after the processing is completed, The processing result is fed back to the processor by any of the target heterogeneous unit 1 and the target heterogeneous unit 2.
在本发明一个实施例中,异构单元中可以包括一个或多个FPGA芯片,具体的数量可以根据业务要求确定。各个异构单元中包括FPGA芯片的数量可以相同也可以不同,且各个异构单元中包括的各个FPGA芯片间的连接方式可以相同也可以不同。所以,异构单元中包括的各个FPGA芯片间的连接方式,至少可以为下述三种方式中的任意一种:In one embodiment of the present invention, one or more FPGA chips may be included in the heterogeneous unit, and the specific number may be determined according to service requirements. The number of the FPGA chips included in each heterogeneous unit may be the same or different, and the connection manner between the respective FPGA chips included in each heterogeneous unit may be the same or different. Therefore, the connection manner between the respective FPGA chips included in the heterogeneous unit can be at least one of the following three methods:
方式1:异构单元中的各个FPGA芯片间均相连;Method 1: Each FPGA chip in the heterogeneous unit is connected;
方式2:异构单元中的各个FPGA芯片间并联;Mode 2: parallel connection between individual FPGA chips in the heterogeneous unit;
方式3:异构单元中的各个FPGA芯片间串联。Mode 3: Connecting each FPGA chip in a heterogeneous unit in series.
针对于上述的方式1:For the above method 1:
在本发明一个实施例中,如图2所示,所述异构单元104,包括: 至少三个FPGA芯片201和第三总线202;In an embodiment of the present invention, as shown in FIG. 2, the heterogeneous unit 104 includes: at least three FPGA chips 201 and a third bus 202;
所述至少三个FPGA芯片201均与所述第三总线202相连;The at least three FPGA chips 201 are all connected to the third bus 202;
所述至少三个FPGA芯片201中的任一个FPGA芯片201与对应的所述第二总线103相连。Any one of the at least three FPGA chips 201 is connected to the corresponding second bus 103.
在本实施例中,FPGA芯片、第二总线以及第三总线的类型均可以根据业务要求确定,比如,选用基于Flash的FPGA芯片、选用PCIE总线作为第二总线、选用SRIO总线作为第三总线。In this embodiment, the types of the FPGA chip, the second bus, and the third bus can all be determined according to service requirements. For example, a Flash-based FPGA chip is selected, a PCIE bus is selected as the second bus, and the SRIO bus is selected as the third bus.
在本实施例中,根据业务要求确定出至少三个FPGA芯片,并将每一个FPGA芯片与第三总线相连。且在至少三个FPGA芯片中根据业务要求确定主控FPGA芯片,并把确定的主控FPGA芯片与第二总线相连。比如确定异构单元中存在FPGA芯片1、FPGA芯片2、FPGA芯片3和FPGA芯片4四个FPGA芯片,分别将FPGA芯片1、FPGA芯片2、FPGA芯片3和FPGA芯片4与第三总线相连,当确定FPGA芯片1为主控FPGA芯片时,将FPGA芯片1与第二总线相连。In this embodiment, at least three FPGA chips are determined according to service requirements, and each FPGA chip is connected to the third bus. And the master FPGA chip is determined according to the service requirement in at least three FPGA chips, and the determined master FPGA chip is connected to the second bus. For example, determining that there are four FPGA chips of the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4 in the heterogeneous unit, respectively, the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4 are connected to the third bus. When it is determined that the FPGA chip 1 is a main control FPGA chip, the FPGA chip 1 is connected to the second bus.
处理器当确定接收到外部输入的数据为非事务型数据时,确定出目标异构单元后,可以根据该非事务型数据的数量大小和计算难度,在异构单元包括的至少三个FPGA芯片中选用至少一个FPGA芯片作为目标FPGA芯片。比如,处理器在FPGA芯片1、FPGA芯片2、FPGA芯片3和FPGA芯片4中选用FPGA芯片1和FPGA芯片2作为目标FPGA芯片,则处理器将接收到的非事务型数据发送给FPGA芯片1和FPGA芯片2,由于FPGA芯片1和FPGA芯片2均连接在第三总线上,所以通过FPGA芯片1和FPGA芯片2间的配合对该非事务型数据进行处理,处理完成后,将处理结果反馈给处理器。When the processor determines that the data received by the external input is non-transactional data, after determining the target heterogeneous unit, at least three FPGA chips included in the heterogeneous unit may be determined according to the number and computational difficulty of the non-transactional data. At least one FPGA chip is selected as the target FPGA chip. For example, the processor selects the FPGA chip 1 and the FPGA chip 2 as the target FPGA chip in the FPGA chip 1, the FPGA chip 2, the FPGA chip 3, and the FPGA chip 4, and the processor sends the received non-transactional data to the FPGA chip 1 And the FPGA chip 2, since the FPGA chip 1 and the FPGA chip 2 are both connected to the third bus, the non-transactional data is processed by the cooperation between the FPGA chip 1 and the FPGA chip 2. After the processing is completed, the processing result is fed back. Give the processor.
在本实施例中,当存在至少两个目标FPGA芯片时,对非事务型数据进行处理存在不同的处理过程。比如当FPGA芯片1和FPGA芯片2均为目标FPGA芯片时,FPGA芯片1和FPGA芯片2间的配合处理数据可以存在以下至少两种情况:一种是FPGA芯片1先对该非事务型数据进行处理,待处理完成后,将中间处理结果传输给FPGA芯片2,FPGA芯片2对中间处理结果再进行下一步处理,当FPGA芯片2处理完成后,将处理结果反馈给处理器。另一种是,FPGA芯片1和FPGA芯片2同时对非事务型数据进行处理,处理过程中存在数据的交互过程,待处理完成后,由FPGA芯片1和FPGA芯片2中的任一FPGA芯片将处理结果反馈给处理器。In this embodiment, when there are at least two target FPGA chips, there are different processes for processing non-transactional data. For example, when both the FPGA chip 1 and the FPGA chip 2 are target FPGA chips, the cooperation processing data between the FPGA chip 1 and the FPGA chip 2 may exist in at least two cases: one is that the FPGA chip 1 first performs the non-transactional data. After the processing is completed, the intermediate processing result is transmitted to the FPGA chip 2, and the FPGA chip 2 performs the next processing on the intermediate processing result. After the processing of the FPGA chip 2 is completed, the processing result is fed back to the processor. The other is that FPGA chip 1 and FPGA chip 2 simultaneously process non-transactional data, and there is data interaction process in the process. After the processing is completed, any FPGA chip in FPGA chip 1 and FPGA chip 2 will be processed. The processing result is fed back to the processor.
根据上述实施例,异构单元中可以包括至少三个FPGA芯片和第三总线,其中将至少三个FPGA芯片均与第三总线相连,且将至少三个FPGA芯片中的任一个FPGA芯片与对应的第二总线相连。通过上述可知,通过确定的目标FPGA芯片之间的相互配合来处理非事务型数据,因此可以提高数据处理效率。According to the above embodiment, at least three FPGA chips and a third bus may be included in the heterogeneous unit, wherein at least three FPGA chips are connected to the third bus, and any one of the at least three FPGA chips is corresponding to the FPGA chip. The second bus is connected. From the above, it can be known that the non-transactional data is processed by the mutual cooperation between the determined target FPGA chips, so that the data processing efficiency can be improved.
针对于上述的方式2:For the above method 2:
在本发明一个实施例中,如图3所示,所述异构单元104中可以包括:至少两个FPGA芯片301;In an embodiment of the present invention, as shown in FIG. 3, the heterogeneous unit 104 may include: at least two FPGA chips 301;
每一个所述FPGA芯片301分别与对应的所述第二总线103相连。Each of the FPGA chips 301 is connected to a corresponding second bus 103.
在本实施例中,FPGA芯片、第二总线的类型均可以根据业务要求确定,比如,选用基于Flash的FPGA芯片、选用SRIO总线作为第二总线。In this embodiment, the types of the FPGA chip and the second bus can be determined according to service requirements. For example, a Flash-based FPGA chip is selected, and an SRIO bus is selected as the second bus.
在本实施例中,根据业务要求确定出至少两个FPGA芯片,并将每一个FPGA芯片与第二总线相连,从而实现各个FPGA芯片间的并联状态。另外,由于各个FPGA芯片均与第二总线相连,所以可以选用任意一个FPGA芯片作为主控FPGA芯片,确定出的主控FPGA芯片可以通过第二总线对其他FPGA芯片进行控制。比如,如图4所示,异构单元中存在FPGA芯片401、FPGA芯片402、FPGA芯片403、FPGA芯片404和FPGA芯片405五个FPGA芯片,分别将5个FPGA芯片与第二总线407相连。通过第二总线接收处理器发送的非事务型数据,并通过第二总线将处理结果反馈给处理器。另外主控FPGA芯片401通过线路408、409及410对FPGA芯片402、FPGA芯片403、FPGA芯片404和FPGA芯片405进行具体的配置。其中,线路408、409及410种具体输送信号的种类可以根据业务要求确定。比如当408为时钟线时,则可通过线路408使各个FPGA芯片中的时钟统一。In this embodiment, at least two FPGA chips are determined according to service requirements, and each FPGA chip is connected to the second bus, thereby implementing a parallel state between the FPGA chips. In addition, since each FPGA chip is connected to the second bus, any FPGA chip can be selected as the main control FPGA chip, and the determined main control FPGA chip can control other FPGA chips through the second bus. For example, as shown in FIG. 4, five FPGA chips of the FPGA chip 401, the FPGA chip 402, the FPGA chip 403, the FPGA chip 404, and the FPGA chip 405 are present in the heterogeneous unit, and five FPGA chips are respectively connected to the second bus 407. The non-transactional data sent by the processor is received by the second bus, and the processing result is fed back to the processor through the second bus. In addition, the main control FPGA chip 401 performs specific configuration on the FPGA chip 402, the FPGA chip 403, the FPGA chip 404, and the FPGA chip 405 through the lines 408, 409, and 410. Among them, the types of specific transmission signals of lines 408, 409 and 410 can be determined according to business requirements. For example, when 408 is a clock line, the clocks in the respective FPGA chips can be unified through line 408.
处理器当确定接收到外部输入的数据为非事务型数据时,在各个异构单元中确定出目标异构单元之后,可以根据该非事务型数据的数量大小和计算难度,在目标异构单元包括的至少两个FPGA芯片中选用任意一个FPGA芯片作为目标FPGA芯片。比如,处理器在FPGA芯片1、FPGA芯片2和FPGA芯片3中选用FPGA芯片2作为目标FPGA芯片,则处理器将接收到的非事务型数据发送给FPGA芯片2,FPGA芯片2对非事务型数据进行处理,处理完成后,将处理结果反馈给处理器。另外,如果在FPGA芯片2进行数据处理时,需要主控FPGA芯片的控制时,那么主控FPGA芯片1通过第二总线对FPGA芯片2的数据处理进行控制。When the processor determines that the data received by the external input is non-transactional data, after determining the target heterogeneous unit in each heterogeneous unit, the target heterogeneous unit may be determined according to the quantity and computational difficulty of the non-transactional data. Any one of the at least two FPGA chips included is selected as the target FPGA chip. For example, if the processor selects the FPGA chip 2 as the target FPGA chip in the FPGA chip 1, the FPGA chip 2, and the FPGA chip 3, the processor sends the received non-transactional data to the FPGA chip 2, and the FPGA chip 2 is non-transaction type. The data is processed, and after the processing is completed, the processing result is fed back to the processor. In addition, if the control of the FPGA chip is required when the FPGA chip 2 performs data processing, the master FPGA chip 1 controls the data processing of the FPGA chip 2 through the second bus.
根据上述实施例,异构单元中可以包括至少两个FPGA芯片,其中,每一个FPGA芯片分别与对应的第二总线相连。通过上述可知,各个FPGA芯片之间存在并联关系,在一个FPGA芯片对非事务型数据进行处理时,除主控FPGA芯片外的其他FPGA芯片无法对其进行干扰,因此,处理数据的独立性较高。According to the above embodiment, at least two FPGA chips may be included in the heterogeneous unit, wherein each FPGA chip is respectively connected to a corresponding second bus. It can be seen from the above that there is a parallel relationship between the FPGA chips. When an FPGA chip processes non-transactional data, other FPGA chips other than the main control FPGA chip cannot interfere with it. Therefore, the independence of processing data is better. high.
针对于上述的方式3:For the above method 3:
在本发明一个实施例中,如图5所示,所述异构单元104中可以包括:至少三个FPGA芯片501;In an embodiment of the present invention, as shown in FIG. 5, the heterogeneous unit 104 may include: at least three FPGA chips 501;
所述至少三个FPGA芯片501依次连接;The at least three FPGA chips 501 are sequentially connected;
处于首位的FPGA芯片501和处于末位的FPGA芯片501分别与对应的所述第二总线103相连。The FPGA chip 501 in the first place and the FPGA chip 501 in the last position are respectively connected to the corresponding second bus 103.
在本实施例中,FPGA芯片、第二总线的类型均可以根据业务要求确定,比如,选用基于Flash的FPGA芯片、选用SRIO总线作为第二总线。In this embodiment, the types of the FPGA chip and the second bus can be determined according to service requirements. For example, a Flash-based FPGA chip is selected, and an SRIO bus is selected as the second bus.
在本实施例中,根据业务要求确定出至少三个FPGA芯片,并将每一个FPGA芯片依次连接,在依次连接的FPGA芯片中,将处于首位的FPGA芯片和处于末位的FPGA芯片分别与对应的第二总线相连。可以将处于首位的FPGA芯片确定为主控FPGA芯片,该主控FPGA芯片可以通过各个FPGA芯片间的线路对各个FPGA芯片进行控制。该主控FPGA芯片对于处于末位的FPGA芯片除利用FPGA芯片间的线路进行控制外,还可以通过第二总线进行控制。In this embodiment, at least three FPGA chips are determined according to service requirements, and each FPGA chip is sequentially connected. In the FPGA chip sequentially connected, the FPGA chip in the first position and the FPGA chip in the last position are respectively corresponding to each other. The second bus is connected. The FPGA chip in the first position can be determined as the main control FPGA chip, and the main control FPGA chip can control each FPGA chip through the lines between the FPGA chips. The main control FPGA chip can control the FPGA chip in the last position by using the line between the FPGA chips, and can also be controlled by the second bus.
在本实施例中,处理器当确定接收到外部输入的数据为非事务型数据时,在各个异构单元中确定出目标异构单元之后,将非事务型数据发送给处于首位的FPGA芯片,首位的FPGA芯片处理完成后将处理的中间结果发送给与其相邻的下一位FPGA芯片,然后下一位FPGA芯片进行相应的处理,在将处理结果发送给与其相邻的下一位FPGA芯片,如此操作,直至处于末位的FPGA芯片数据处理完毕后,将终止的处理结果发送给处理器。在将最终的处理结果发送给处理器时可以存在以下至少两种情况:一种是处于末位的FPGA芯片直接将最终的处理结果通过第二总线直接发送给处理器;另一种是处于末位的FPGA芯片将最终的处理结果发送给处于首位的主控FPGA芯片,然后由主控FPGA芯片将最终的处理结果发送给处理器。In this embodiment, when the processor determines that the data input by the external input is non-transactional data, after determining the target heterogeneous unit in each heterogeneous unit, the non-transactional data is sent to the FPGA chip in the first place. After the first FPGA chip is processed, the intermediate result of the processing is sent to the next FPGA chip adjacent to it, and then the next FPGA chip performs corresponding processing, and the processing result is sent to the next FPGA chip adjacent thereto. In this way, after the processing of the FPGA chip in the last position is completed, the terminated processing result is sent to the processor. There are at least two cases in which the final processing result is sent to the processor: one is that the FPGA chip in the last bit directly sends the final processing result directly to the processor through the second bus; the other is at the end. The bit FPGA chip sends the final processing result to the first-ranked master FPGA chip, and then the final FPGA chip sends the final processing result to the processor.
如图6所示,确定异构单元中存在FPGA芯片602、FPGA芯片603、FPGA芯片604、FPGA芯片605和FPGA芯片606五个FPGA芯片,5个FPGA芯片依次相连,处理器601当确定接收到外部输入的数据为非事务型数据时,将非事务型数据通过线路607发送给处于首位的FPGA芯片602,首位的FPGA芯片602处理完成后将处理的中间结果发送给与其相邻的下一位FPGA芯片603,然后下一位FPGA芯片603进行相应的处理,在将处理结果发送给与其相邻的下一位FPGA芯片604,如此操作,直至处于末位的FPGA芯片606数据处理完毕后,将最终的处理结果发送给处理器601。从图6中可以看出FPGA芯片606为主控FPGA芯片,FPGA芯片606可以通过线路608、609及610对FPGA芯片602、FPGA芯片603、FPGA芯片604和FPGA芯片605进行具体的配置,其中线路608、609及610的具体输送信号的种类可以根据业务要求确定。比如609为时钟线时,则可通过线路609使各个FPGA芯片中的时钟统一。As shown in FIG. 6, it is determined that there are five FPGA chips of the FPGA chip 602, the FPGA chip 603, the FPGA chip 604, the FPGA chip 605, and the FPGA chip 606 in the heterogeneous unit, and five FPGA chips are sequentially connected, and the processor 601 determines that it is received. When the externally input data is non-transactional data, the non-transactional data is sent to the first-ranked FPGA chip 602 through the line 607, and the first FPGA chip 602 is processed to send the intermediate result of the processing to the next adjacent one. The FPGA chip 603, and then the next FPGA chip 603 performs corresponding processing, and sends the processing result to the next FPGA chip 604 adjacent thereto, so that after the data processing of the FPGA chip 606 in the last position is completed, The final processing result is sent to the processor 601. It can be seen from FIG. 6 that the FPGA chip 606 is a main control FPGA chip, and the FPGA chip 606 can specifically configure the FPGA chip 602, the FPGA chip 603, the FPGA chip 604, and the FPGA chip 605 through the lines 608, 609, and 610, wherein the line is configured. The types of specific transmission signals of 608, 609 and 610 can be determined according to business requirements. For example, when 609 is a clock line, the clocks in the respective FPGA chips can be unified through the line 609.
根据上述实施例,异构单元中包括至少三个依次连接的FPGA芯片,且处于首位的FPGA芯片和处于末位的FPGA芯片分别与对应的第二总线相连。数据依次经过各个FPGA芯片进行处理,因此可以分散各个FPGA芯片中的数据处理量,从而提高数据处理速度。According to the above embodiment, the heterogeneous unit includes at least three FPGA chips connected in sequence, and the FPGA chip in the first position and the FPGA chip in the last position are respectively connected to the corresponding second bus. The data is processed through each FPGA chip in turn, so that the data processing amount in each FPGA chip can be dispersed, thereby improving the data processing speed.
在本发明一个实施例中,与对应的所述第二总线103相连的任一所述FPGA芯片与外部的至少一个存储硬盘相连。In one embodiment of the invention, any of the FPGA chips connected to the corresponding second bus 103 are connected to at least one external storage hard disk.
在本实施例中,与对应的第二总线相连的FPGA芯片均可以作为主控FPGA芯片,由于主控FPGA芯片可以控制其他各个FPGA芯片,且可以获取各个芯片中的数据处理结果,因此与第二总线相连的FPGA芯片可以与外部的至少一个存储硬盘相连,以存储最终的数据处理结果或中间过程的数据处理结果。In this embodiment, the FPGA chip connected to the corresponding second bus can be used as the main control FPGA chip, because the main control FPGA chip can control other FPGA chips, and can obtain data processing results in each chip, so The two bus-connected FPGA chips can be connected to at least one external storage hard disk to store the final data processing result or the data processing result of the intermediate process.
另外,存储硬盘的数量以及类型均可以根据业务要求确定,比如选用2个存储硬盘,且均为固态硬盘。In addition, the number and type of storage hard disks can be determined according to business requirements. For example, two storage hard disks are selected, and all are solid state hard disks.
根据上述实施例,与对应的第二总线相连的任一FPGA芯片与外部的至少一个存储硬盘相连,以使FPGA芯片中数据处理的结果及时的存储到存储硬盘中,从而减小数据处理结果丢失的概率。According to the above embodiment, any FPGA chip connected to the corresponding second bus is connected to at least one external storage hard disk, so that the data processing result in the FPGA chip is timely stored in the storage hard disk, thereby reducing data processing result loss. The probability.
在本发明一个实施例中,如图7所示,所述服务器中可以进一步包括固态硬盘701和机械硬盘702;In an embodiment of the present invention, as shown in FIG. 7, the server may further include a solid state hard disk 701 and a mechanical hard disk 702;
所述处理器101,进一步用于接收每一个所述异构单元104反馈的处理结果;将所述处理结果发送至所述固态硬盘701;The processor 101 is further configured to receive a processing result fed back by each of the heterogeneous units 104; send the processing result to the solid state hard disk 701;
所述固态硬盘701,分别与所述处理器101和所述机械硬盘702相连,用于接收所述处理器101发送的所述处理结果,存储所述处理结果;将存储的所述处理结果传输至所述机械硬盘702;当接收到所述处理器101发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果;The SSDs 701 are respectively connected to the processor 101 and the mechanical hard disk 702, and are configured to receive the processing result sent by the processor 101, store the processing result, and transmit the stored processing result. To the mechanical hard disk 702; when the processor 101 receives the processing result, the timing is started, and when the accumulated duration reaches a preset duration, the stored processing result is deleted;
所述机械硬盘702,用于接收所述固态硬盘701传输的所述处理结果,并存储。The mechanical hard disk 702 is configured to receive the processing result transmitted by the solid state hard disk 701 and store the result.
在本实施例中,固态硬盘和机械硬盘的数量以及型号均可以根据业务要求确定,比如选用1个NVMe固态存储硬盘,选用的机械硬盘为SAS扩展盘阵。In this embodiment, the number and model of the solid state hard disk and the mechanical hard disk can be determined according to service requirements. For example, one NVMe solid state storage hard disk is selected, and the selected mechanical hard disk is a SAS extended disk array.
固态硬盘具有写入速度快的优点,但是又具有存储空间小的缺点。而机械硬盘具有存储空间大的优点,但是又具有写入速度慢的缺点。因此在本发明的服务器同时可以包括固态硬盘和机械硬盘,利用固态硬盘和机械硬盘组合混合存储框架,以发挥出两种硬盘的优点。Solid state drives have the advantage of fast write speed, but have the disadvantage of small storage space. The mechanical hard disk has the advantage of large storage space, but has the disadvantage of slow writing speed. Therefore, the server of the present invention can include both a solid state hard disk and a mechanical hard disk, and a combination of a solid state hard disk and a mechanical hard disk is used to combine the storage frames to realize the advantages of the two types of hard disks.
在本实施例中,基于固态硬盘写入速度快的优点,将固态硬盘做为一个缓存盘使用。当处理器接收到异构单元反馈的处理结果时,将处理结果发送至固态硬盘,使处理结果快速的存储到固态硬盘中。由于固定硬盘的存储空间有限,将其存储的处理结果发送给存储空间较大的机械硬盘。另外由于固态硬盘的存储空间有限,其存储的处理结果被写入到机械硬盘中后,其自身存储的处理结果将删除,以为下一次存储新的处理结果做准备。固态硬盘删除自身存储的处理结果的过程可以为:当固态硬盘接收到处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的处理结果。其中,设定的时长可以根据业务要求确定,比如1小时。In this embodiment, the solid state hard disk is used as a cache disk based on the advantage that the solid state hard disk write speed is fast. When the processor receives the processing result of the heterogeneous unit feedback, the processing result is sent to the solid state hard disk, so that the processing result is quickly stored in the solid state hard disk. Due to the limited storage space of the fixed hard disk, the processing result of the storage is sent to the mechanical hard disk with a large storage space. In addition, since the storage capacity of the solid state hard disk is limited, and the processing result of the storage is written into the mechanical hard disk, the processing result of the storage itself is deleted, so as to prepare for the next storage of the new processing result. The process of deleting the processing result stored by the SSD may be: when the SSD receives the processor to send the processing result, the timing starts, and when the accumulated duration reaches the preset duration, the stored processing result is deleted. Among them, the set duration can be determined according to business requirements, such as 1 hour.
根据上述实施例,所述服务器中进一步包括固态硬盘和机械硬盘,组成了存储速度快,且存储空间大的混合存储架构。According to the above embodiment, the server further includes a solid state hard disk and a mechanical hard disk, and constitutes a hybrid storage architecture with fast storage speed and large storage space.
在本发明一个实施例中,所述固态硬盘701为非易失性存储器标准NVMe固态存储硬盘;In an embodiment of the present invention, the solid state drive 701 is a non-volatile memory standard NVMe solid state storage hard disk;
所述机械硬盘702为串行连接SAS扩展盘阵。The mechanical hard disk 702 is a serial connection SAS expansion disk array.
在本实施例中,固态硬盘为非易失性存储器标准NVMe固态存储硬盘只是一种优选方式,可以根据业务要求选用其他形式的固态硬盘。机械硬盘为串行连接SAS扩展盘阵只是一种优选方式,可以根据业务要求选用其他形式的机械硬盘。In this embodiment, the solid state hard disk is a non-volatile memory standard NVMe solid state storage hard disk is only a preferred method, and other forms of solid state hard disks can be selected according to service requirements. The mechanical hard disk is a serial connection SAS expansion disk array is only a preferred method, and other forms of mechanical hard disk can be selected according to business requirements.
在本发明一个实施例中,如图8所示,所述服务器中可以进一步包括:内存801;In an embodiment of the present invention, as shown in Figure 8, the server may further include: a memory 801;
每一个所述异构单元104,进一步用于将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器101;发送调用指令至所述处理器101,接收所述处理器101传输的所述中间数据;Each of the heterogeneous units 104 is further configured to send intermediate data generated in a process of processing the non-transactional data to the processor 101; send a call instruction to the processor 101, and receive the processor The intermediate data transmitted by 101;
所述处理器101,进一步用于将所述中间数据发送至所述内存801;根据所述异构单元104发送的所述调用指令从所述内存中调取所述中间数据,并将所述中间数据发送给所述异构单元104;The processor 101 is further configured to send the intermediate data to the memory 801; retrieve the intermediate data from the memory according to the calling instruction sent by the heterogeneous unit 104, and Intermediate data is sent to the heterogeneous unit 104;
所述内存801,用于存储所述处理器101发送的所述中间数据。The memory 801 is configured to store the intermediate data sent by the processor 101.
在本实施例中,内存的数量及形式均可以根据业务要求确定,比如选用1个同步动态随机存储器形式的内存。In this embodiment, the number and form of the memory can be determined according to service requirements, for example, a memory in the form of synchronous dynamic random access memory is selected.
在本实施例中,各个异构单元在处理非事务型数据的过程中产生的中间数据,如果存储在各个异构单元自身,可能各个异构单元自身没有足够的空间进行存储,因此需要内存来对处理非事务型数据的过程中产生的中间数据进行存储。In this embodiment, the intermediate data generated by each heterogeneous unit in the process of processing non-transactional data may be stored in each heterogeneous unit itself, and thus each heterogeneous unit may not have enough space for storage, so memory is required. The intermediate data generated in the process of processing non-transactional data is stored.
在本实施例中,比如以异构单元1为例进行说明,当异构单元1在处理非事务型数据的过程中产生大量的中间数据,则异构单元1将产生的中间数据发送给处理器,处理器再将中间数据中发给内存。内存接收到中间数据后存储中间数据。当异构单元1在处理数据过程中需要使用之前存储在内存中的中间数据时,给处理数据发送调用指令,其中,该调用指令可以包括异构单元1的标识。处理器则根据该调用指令中的异构单元1的标识信息在内存中调用该异构单元1的中间数据,并将调用的中间数据发送给异构单元1,以使异构单元1利用该中间数据,进行数据处理。In this embodiment, for example, the heterogeneous unit 1 is taken as an example. When the heterogeneous unit 1 generates a large amount of intermediate data in the process of processing non-transactional data, the heterogeneous unit 1 sends the generated intermediate data to the processing. The processor then sends the intermediate data to the memory. The intermediate data is stored after the memory receives the intermediate data. When the heterogeneous unit 1 needs to use the intermediate data previously stored in the memory during the processing of the data, the calling instruction is sent to the processing data, wherein the calling instruction may include the identifier of the heterogeneous unit 1. The processor calls the intermediate data of the heterogeneous unit 1 in the memory according to the identification information of the heterogeneous unit 1 in the calling instruction, and sends the called intermediate data to the heterogeneous unit 1 to enable the heterogeneous unit 1 to utilize the Intermediate data for data processing.
根据上述实施例,服务器中可以进一步包括内存,利用内存存储每一个异构单元对非事务型数据进行处理的过程中产生的中间数据,以释放异构单元中的存储空间,从而提高异构单元处理数据的速度。According to the above embodiment, the server may further include a memory, and use the memory to store intermediate data generated by each heterogeneous unit in processing the non-transactional data to release the storage space in the heterogeneous unit, thereby improving the heterogeneous unit. The speed at which data is processed.
下面以服务中包括6个异构单元、SAS硬盘、NVMe固态存储硬盘和内存为例,展开说明服务器,如图9所示,该服务器包括:The following describes the server by including six heterogeneous units, a SAS hard disk, an NVMe solid-state storage hard disk, and a memory. As shown in FIG. 9, the server includes:
处理器901、异构单元902、异构单元903、异构单元905、异构单元906、异构单元907、异构单元908、SAS硬盘909、NVMe固态存储硬盘910、第一PCIE总线911、第二PCIE总线912、第一SRIO总线913、PCIE-SRIO转换器914、SAS控制器915和内存916。The processor 901, the heterogeneous unit 902, the heterogeneous unit 903, the heterogeneous unit 905, the heterogeneous unit 906, the heterogeneous unit 907, the heterogeneous unit 908, the SAS hard disk 909, the NVMe solid state storage hard disk 910, the first PCIE bus 911, A second PCIE bus 912, a first SRIO bus 913, a PCIE-SRIO converter 914, a SAS controller 915, and a memory 916.
在本实施例中,6个异构单元中的异构单元902、异构单元903和异构单元904分别通过第一PCIE总线与处理器相连;6个异构单元中的异构单元905、异构单元906和异构单元907分别通过第二PCIE总线与处理器相连;每一个异构单元均与第一SRIO总线相连;第一SRIO总线通过PCIE-SRIO转换器与第二PCIE总线相连,以实现第一SRIO总线与第二PCIE总线之间的通信。In this embodiment, the heterogeneous unit 902, the heterogeneous unit 903, and the heterogeneous unit 904 of the six heterogeneous units are respectively connected to the processor through the first PCIE bus; the heterogeneous unit 905 among the six heterogeneous units, The heterogeneous unit 906 and the heterogeneous unit 907 are respectively connected to the processor through the second PCIE bus; each heterogeneous unit is connected to the first SRIO bus; the first SRIO bus is connected to the second PCIE bus through the PCIE-SRIO converter. To achieve communication between the first SRIO bus and the second PCIE bus.
在本实施例中,SAS硬盘通过SAS控制器和第一PCIE总线与处理器相连;NVMe固态存储硬盘通过第一PCIE总线与处理器相连;内存与处理器相连。In this embodiment, the SAS hard disk is connected to the processor through the SAS controller and the first PCIE bus; the NVMe solid state storage hard disk is connected to the processor through the first PCIE bus; the memory is connected to the processor.
在本实施例中,每一个异构单元均包括设定数量的FPGA芯片,其中,各个FPGA芯片中可以存在:DDR(Double Data Rate,双倍速率同步动态随机存储器)接口、SPI (serial peripheral interface串行外围设备接口)、norflash接口、SMBus (System Management Bus,系统管理总线)接口、PCIE接口、SRIO接口、JTAG(Joint Test Action Group;联合测试工作组协议)接口,mode模式接口。上述的这些接口可以根据具体的业务要求连接相应的元件。In this embodiment, each heterogeneous unit includes a set number of FPGA chips, wherein each FPGA chip may have: DDR (Double Data Rate) interface, SPI (serial peripheral interface) Serial peripheral interface), norflash interface, SMBus (System Management Bus) interface, PCIE interface, SRIO interface, JTAG (Joint Test) Action Group; Joint Test Workgroup Protocol) interface, mode mode interface. The above interfaces can connect corresponding components according to specific business requirements.
在本实施中,如图10所示,6个异构单元中的异构单元902和异构单元903中均包括FPGA芯片9021、FPGA芯片9022、FPGA芯片9023和第二SRIO总线9024。其中,每一个FPGA芯片均与第二SRIO总线相连。三个FPGA芯片中的FPGA芯片9021作为主控FPGA芯片与对应的第一PCIE总线相连。In this implementation, as shown in FIG. 10, the heterogeneous unit 902 and the heterogeneous unit 903 of the six heterogeneous units include an FPGA chip 9021, an FPGA chip 9022, an FPGA chip 9023, and a second SRIO bus 9024. Each FPGA chip is connected to the second SRIO bus. The FPGA chip 9021 of the three FPGA chips is connected as a master FPGA chip to the corresponding first PCIE bus.
在本实施例中,如图11所示,6个异构单元中的异构单元904中包括FPGA芯片9041、FPGA芯片9042、FPGA芯片9043。各个FPGA芯片处于并联状态,每一个FPGA芯片分别与对应的第一PCIE总线相连。且将FPGA芯片9041作为主控FPGA芯片与对应的第一PCIE总线相连。In this embodiment, as shown in FIG. 11, the heterogeneous unit 904 of the six heterogeneous units includes an FPGA chip 9041, an FPGA chip 9042, and an FPGA chip 9043. Each FPGA chip is in a parallel state, and each FPGA chip is respectively connected to a corresponding first PCIE bus. And the FPGA chip 9041 is connected as a main control FPGA chip to the corresponding first PCIE bus.
在本实施例中,如图12所示,6个异构单元中的异构单元905、异构单元906和异构单元907中均包括FPGA芯片9051、FPGA芯片9052、FPGA芯片9053。各个FPGA芯片处于串联状态,FPGA芯片9051、FPGA芯片9052、FPGA芯片9053依次连接;处于首位的FPGA芯片9051和处于末位的FPGA9052芯片分别与对应的第二PCIE总线相连。In this embodiment, as shown in FIG. 12, the heterogeneous unit 905, the heterogeneous unit 906, and the heterogeneous unit 907 of the six heterogeneous units include an FPGA chip 9051, an FPGA chip 9052, and an FPGA chip 9053. Each FPGA chip is in a serial state, and the FPGA chip 9051, the FPGA chip 9052, and the FPGA chip 9053 are sequentially connected; the FPGA chip 9051 in the first position and the FPGA 9052 chip in the last position are respectively connected to the corresponding second PCIE bus.
处理器当确定接收到外部输入的数据为非事务型数据时,在6个异构单元中确定至少一个目标异构单元,并将非事务型数据发送至至少一个目标异构单元。The processor determines, when the data received by the external input is non-transactional data, determines at least one target heterogeneous unit among the six heterogeneous units, and transmits the non-transactional data to the at least one target heterogeneous unit.
当确定的至少一个目标异构单元中包括异构单元902和异构单元903中的任一个时,处理器可以根据该非事务型数据的数量大小和计算难度在FPGA芯片9021、FPGA芯片9022、FPGA芯片9023中选用至少一个FPGA芯片作为目标FPGA芯片。比如,选用FPGA芯片9021和FPGA芯片9022作为目标FPGA芯片,则处理器将接收到的非事务型数据发送给FPGA芯片9021和FPGA芯片9022。通过FPGA芯片9021和FPGA芯片9022间的配合对该非事务型数据进行处理,待处理完成后,将处理结果反馈给处理器。When the determined at least one target heterogeneous unit includes any one of the heterogeneous unit 902 and the heterogeneous unit 903, the processor may be in the FPGA chip 9021 and the FPGA chip 9022 according to the number and computational difficulty of the non-transactional data. At least one FPGA chip is selected as the target FPGA chip in the FPGA chip 9023. For example, if the FPGA chip 9021 and the FPGA chip 9022 are selected as the target FPGA chip, the processor sends the received non-transactional data to the FPGA chip 9021 and the FPGA chip 9022. The non-transactional data is processed by the cooperation between the FPGA chip 9021 and the FPGA chip 9022, and after the processing is completed, the processing result is fed back to the processor.
当确定的至少一个目标异构单元中包括异构单元904时,处理器可以FPGA芯片9041、FPGA芯片9042、FPGA芯片9043中选用任意一个FPGA芯片作为目标FPGA芯片。比如,选用FPGA芯片9043作为目标FPGA芯片,则处理器将接收到的非事务型数据发送给FPGA芯片9043,通过FPGA芯片9043对该非事务型数据进行处理,待处理完成后,将处理结果反馈给处理器。When the heterogeneous unit 904 is included in the determined at least one target heterogeneous unit, the processor may select any one of the FPGA chip 9041, the FPGA chip 9042, and the FPGA chip 9043 as the target FPGA chip. For example, if the FPGA chip 9043 is selected as the target FPGA chip, the processor sends the received non-transactional data to the FPGA chip 9043, and the non-transactional data is processed by the FPGA chip 9043. After the processing is completed, the processing result is fed back. Give the processor.
当确定的至少一个目标异构单元中包括异构单元905、异构单元906和异构单元907中的任意一个时,处理器将非事务型数据发送给处于首位的FPGA芯片9051,首位的FPGA芯片9051处理完成后将处理的中间结果发送给与其相邻的下一位FPGA芯片9052,然后下一位FPGA芯片9052进行相应的处理,在将处理结果发送给与其相邻的下一位FPGA芯片9053,如此操作,直至处于末位的FPGA芯片9053数据处理完毕后,将终止的处理结果发送给处理器。When the determined at least one target heterogeneous unit includes any one of the heterogeneous unit 905, the heterogeneous unit 906, and the heterogeneous unit 907, the processor sends the non-transactional data to the FPGA chip 9051 in the first place, and the first FPGA After the processing of the chip 9051 is completed, the intermediate result of the processing is sent to the next FPGA chip 9052 adjacent thereto, and then the next FPGA chip 9052 performs corresponding processing, and the processing result is sent to the next FPGA chip adjacent thereto. 9053, in this way, until the data processing of the FPGA chip 9053 in the last position is completed, the terminated processing result is sent to the processor.
当处理器接收异构单元比如异构单元902反馈的处理结果时,将处理结果发送至NVMe固态存储硬盘,NVMe固态存储硬盘当接收到处理器发送的处理结果时,存储的同时开始计时,并将存储的处理结果传输至SAS硬盘;SAS硬盘存储NVMe固态存储硬盘传输的处理结果;当NVMe固态存储硬盘的累积计时达到预先设定的时长比如2小时时,删除存储的所述处理结果。When the processor receives the processing result fed back by the heterogeneous unit, such as the heterogeneous unit 902, the processing result is sent to the NVMe solid-state storage hard disk, and when the NVMe solid-state storage hard disk receives the processing result sent by the processor, the storage starts simultaneously, and The stored processing result is transmitted to the SAS hard disk; the SAS hard disk stores the processing result of the NVMe solid-state storage hard disk transmission; when the accumulated time of the NVMe solid-state storage hard disk reaches a preset time length, for example, 2 hours, the stored processing result is deleted.
在本实施例中,比如以异构单元901为例进行说明,当异构单元901在处理非事务型数据的过程中产生大量的中间数据,则异构单元901将产生的中间数据发送给处理器,处理器在将中间数据中发给内存916。内存接收到中间数据后存储中间数据。当异构单元901在处理数据过程中需要使用之前存储在内存中的中间数据时,给处理数据发送调用指令,其中,该调用指令包括异构单元901的标识。处理数据则根据该调用指令中的标识信息在内存中调用该异构单元901的中间数据,并将调用的中间数据发送给异构单元901,以使异构单元901利用该中间数据,进行数据处理。In this embodiment, for example, the heterogeneous unit 901 is taken as an example. When the heterogeneous unit 901 generates a large amount of intermediate data in the process of processing non-transactional data, the heterogeneous unit 901 sends the generated intermediate data to the processing. The processor sends the intermediate data to the memory 916. The intermediate data is stored after the memory receives the intermediate data. When the heterogeneous unit 901 needs to use the intermediate data previously stored in the memory during the processing of the data, the calling instruction is sent to the processing data, wherein the calling instruction includes the identifier of the heterogeneous unit 901. Processing the data, calling the intermediate data of the heterogeneous unit 901 in the memory according to the identification information in the calling instruction, and sending the called intermediate data to the heterogeneous unit 901, so that the heterogeneous unit 901 uses the intermediate data to perform data. deal with.
另外,在本实施例中,该服务器还包括:网卡917、BMC( Baseboard Management Controlle,基板管理控制器)918、显卡919、CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)920 、USB控制器921。其中,USB控制器中可以包括至少一个扩展口,以使服务器可以通过USB接口接收待处理数据;网卡可以接40G光口以使服务器可以上网,从而可以接收从网络渠道发送的待处理数据;利用BMC可以对服务器进行配置管理、硬件管理和故障排除。In addition, in this embodiment, the server further includes: a network card 917, a BMC (Baseboard Management Controller) 918, a graphics card 919, a CPLD (Complex Programmable Logic Device) 920, and a USB controller. 921. The USB controller may include at least one expansion port, so that the server can receive the data to be processed through the USB interface; the network card can be connected to the 40G optical port to enable the server to access the Internet, so that the data to be processed sent from the network channel can be received; The BMC can perform configuration management, hardware management, and troubleshooting on the server.
如图13所示,本发明实施例提供了一种服务器处理数据的方法,该方法包括:As shown in FIG. 13, an embodiment of the present invention provides a method for processing data by a server, where the method includes:
步骤1301:当所述处理器确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个所述目标异构单元;Step 1301: When the processor determines that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit, and send the non-transactional data to the Said at least one of said target heterogeneous units;
步骤1302:利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理。Step 1302: Receive, by using each of the target heterogeneous units, the non-transactional data sent by the processor, and process the non-transactional data.
根据如图13所示的实施例,该方法包括:当处理器确定接收到外部输入的数据为非事务型数据时,在至少一个异构单元中确定至少一个目标异构单元,并将非事务型数据发送至至少一个目标异构单元。利用每一个目标异构对所述非事务型数据进行处理。通过上述过程可知,本方案在处理器确定接收到非事务型数据时,在与其相连的异构单元确定出至少一个目标异构单元,以使确定出的至少一个目标异构单元针对接收到的非事务型数据进行处理。因此本发明的实施例可以提高数据处理能力。According to the embodiment as shown in FIG. 13, the method includes: when the processor determines that the data received by the external input is non-transactional data, determines at least one target heterogeneous unit in at least one heterogeneous unit, and performs non-transaction Type data is sent to at least one target heterogeneous unit. The non-transactional data is processed with each target heterogeneity. Through the foregoing process, the solution determines that at least one target heterogeneous unit is determined by the heterogeneous unit connected thereto when the processor determines that the non-transactional data is received, so that the determined at least one target heterogeneous unit is received. Non-transactional data is processed. Thus embodiments of the present invention can increase data processing capabilities.
在本发明一个实施例中,所述利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理之后,进一步包括:In an embodiment of the present invention, the receiving, by the target heterogeneous unit, the non-transactional data sent by the processor, after processing the non-transactional data, further comprising:
利用所述处理器接收每一个所述目标异构单元反馈的处理结果,将所述处理结果发送至所述固态硬盘;Receiving, by the processor, a processing result fed back by each of the target heterogeneous units, and transmitting the processing result to the solid state hard disk;
利用所述固态硬盘接收所述处理器发送的处理结果,存储所述处理结果,并将存储的所述处理结果传输至所述机械硬盘;当接收到所述处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果;Receiving, by the solid state hard disk, a processing result sent by the processor, storing the processing result, and transmitting the stored processing result to the mechanical hard disk; and starting timing when receiving the processing result sent by the processor, When the accumulated duration reaches a preset duration, the stored processing result is deleted;
利用所述机械硬盘接收所述固态硬盘传输的所述处理结果,并存储。Receiving, by the mechanical hard disk, the processing result of the solid state hard disk transmission and storing.
在本发明一个实施例中,所述目标异构单元将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器;In an embodiment of the present invention, the target heterogeneous unit sends intermediate data generated in the process of processing the non-transactional data to the processor;
利用所述处理器接收所述目标异构单元发送的所述中间数据,并将所述中间数据发送至所述内存;Receiving, by the processor, the intermediate data sent by the target heterogeneous unit, and sending the intermediate data to the memory;
利用所述内存存储所述处理器发送的所述中间数据;Using the memory to store the intermediate data sent by the processor;
当接收到所述目标异构单元发送的调取指令时,利用所述处理器调取所述内存中存储的所述中间数据,并将所述中间数据发送给所述目标异构单元。And when the receiving instruction sent by the target heterogeneous unit is received, the intermediate data stored in the memory is retrieved by the processor, and the intermediate data is sent to the target heterogeneous unit.
综上所述,本发明各个实施例至少可以实现如下有益效果:In summary, the various embodiments of the present invention can achieve at least the following beneficial effects:
1、在本发明实施例中,该服务器包括:处理器、第一总线、至少一条第二总线以及至少一个异构单元。其中,每一个异构单元均与第一总线相连,处理器当确定接收到外部输入的数据为非事务型数据时,在与其分别通过第二总线相连的每一个异构单元中确定至少一个目标异构单元,并将非事务型数据发送给至少一个目标异构单元中,每一个异构单元在接收到处理器发送的非事务型数据时,对非事务型数据进行处理。通过上述可知,本方案在处理器确定接收到非事务型数据时,在与其相连的异构单元确定出至少一个目标异构单元,以使确定出的至少一个目标异构单元针对接收到的非事务型数据进行处理。因此本发明实施例可以提高数据处理能力。1. In an embodiment of the invention, the server comprises: a processor, a first bus, at least one second bus, and at least one heterogeneous unit. Wherein each of the heterogeneous units is connected to the first bus, and when the processor determines that the data received by the external input is non-transactional data, determining at least one target in each of the heterogeneous units connected to the second bus respectively The heterogeneous unit sends non-transactional data to at least one target heterogeneous unit, and each heterogeneous unit processes the non-transactional data when receiving non-transactional data sent by the processor. As can be seen from the foregoing, when the processor determines that the non-transactional data is received, the heterogeneous unit connected thereto determines at least one target heterogeneous unit, so that the determined at least one target heterogeneous unit is for the received non-received unit. Transactional data is processed. Therefore, embodiments of the present invention can improve data processing capabilities.
2、在本发明实施例中,异构单元中可以包括至少三个FPGA芯片和第三总线,其中将至少三个FPGA芯片均与第三总线相连,且将至少三个FPGA芯片中的任一个FPGA芯片与对应的第二总线相连。通过上述可知,通过确定的目标FPGA芯片之间的相互配合来处理非事务型数据,因此可以提高数据处理效率。2. In the embodiment of the present invention, at least three FPGA chips and a third bus may be included in the heterogeneous unit, wherein at least three FPGA chips are connected to the third bus, and any one of the at least three FPGA chips is used. The FPGA chip is connected to a corresponding second bus. From the above, it can be known that the non-transactional data is processed by the mutual cooperation between the determined target FPGA chips, so that the data processing efficiency can be improved.
3、在本发明实施例中,异构单元中可以包括至少两个FPGA芯片,其中,每一个FPGA芯片分别与对应的第二总线相连。通过上述可知,各个FPGA芯片之间存在并联关系,在一个FPGA芯片对非事务型数据进行处理时,除主控FPGA芯片外的其他FPGA芯片无法对其进行干扰,因此,处理数据的独立性较高。3. In the embodiment of the present invention, at least two FPGA chips may be included in the heterogeneous unit, wherein each FPGA chip is respectively connected to a corresponding second bus. It can be seen from the above that there is a parallel relationship between the FPGA chips. When an FPGA chip processes non-transactional data, other FPGA chips other than the main control FPGA chip cannot interfere with it. Therefore, the independence of processing data is better. high.
4、在本发明实施例中,异构单元中包括至少三个依次连接的FPGA芯片,且处于首位的FPGA芯片和处于末位的FPGA芯片分别与对应的第二总线相连。数据依次经过各个FPGA芯片进行处理,因此可以分散各个FPGA芯片中的数据处理量,从而提高数据处理速度。4. In the embodiment of the present invention, the heterogeneous unit includes at least three FPGA chips connected in sequence, and the FPGA chip in the first position and the FPGA chip in the last position are respectively connected to the corresponding second bus. The data is processed through each FPGA chip in turn, so that the data processing amount in each FPGA chip can be dispersed, thereby improving the data processing speed.
5、在本发明实施例中,与对应的第二总线相连的任一FPGA芯片与外部的至少一个存储硬盘相连,以使FPGA芯片中数据处理的结果及时的存储到存储硬盘中,从而减小数据处理结果丢失的概率。5. In the embodiment of the present invention, any FPGA chip connected to the corresponding second bus is connected to at least one external storage hard disk, so that the data processing result in the FPGA chip is timely stored in the storage hard disk, thereby reducing The probability of data processing results being lost.
6、在本发明实施例中,所述服务器中进一步包括固态硬盘和机械硬盘,组成了存储速度快,且存储空间大的混合存储架构。In the embodiment of the present invention, the server further includes a solid state hard disk and a mechanical hard disk, and constitutes a hybrid storage architecture with fast storage speed and large storage space.
7、在本发明实施例中,服务器中可以进一步包括内存,利用内存存储每一个异构单元对非事务型数据进行处理的过程中产生的中间数据,以释放异构单元中的存储空间,从而提高异构单元处理数据的速度。In the embodiment of the present invention, the server may further include a memory, and use the memory to store intermediate data generated by each heterogeneous unit in processing non-transactional data to release the storage space in the heterogeneous unit, thereby Improve the speed at which heterogeneous units process data.
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。It should be noted that, in this context, relational terms such as first and second are used merely to distinguish one entity or operation from another entity or operation, without necessarily requiring or implying between these entities or operations. There are any such actual relationships or sequences. Furthermore, the term "comprises" or "comprises" or "comprises" or any other variations thereof is intended to encompass a non-exclusive inclusion, such that a process, method, article, or device that comprises a plurality of elements includes not only those elements but also Other elements, or elements that are inherent to such a process, method, item, or device. An element defined by the phrase "comprising a singularity", without further limitation, does not exclude the presence of additional equivalents in the process, method, article, or device that comprises the element.
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。A person skilled in the art can understand that all or part of the steps of implementing the above method embodiments may be completed by using hardware related to the program instructions. The foregoing program may be stored in a computer readable storage medium, and the program is executed when executed. The steps of the foregoing method embodiments are included; and the foregoing storage medium includes: various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。It should be noted that the above description is only a preferred embodiment of the present invention, and is only for explaining the technical solutions of the present invention, and is not intended to limit the scope of the present invention. Any modifications, equivalents, improvements, etc. made within the spirit and scope of the invention are intended to be included within the scope of the invention.

Claims (10)

  1. 一种服务器,其特征在于,包括:处理器、第一总线、至少一条第二总线以及至少一个异构单元;A server, comprising: a processor, a first bus, at least one second bus, and at least one heterogeneous unit;
    每一个所述异构单元分别通过一条所述第二总线与所述处理器相连;每一个所述异构单元均与所述第一总线相连;Each of the heterogeneous units is connected to the processor via one of the second buses; each of the heterogeneous units is connected to the first bus;
    所述处理器,用于当确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个目标异构单元; The processor, configured to: when it is determined that the data received by the external input is non-transactional data, determine at least one target heterogeneous unit in the at least one heterogeneous unit, and send the non-transactional data to the Said at least one target heterogeneous unit;
    每一个所述异构单元,用于在接收到所述处理器发送的所述非事务型数据时,对所述非事务型数据进行处理。Each of the heterogeneous units is configured to process the non-transactional data when receiving the non-transactional data sent by the processor.
  2. 根据权利要求1所述的服务器,其特征在于,所述异构单元,包括: 至少三个FPGA芯片和第三总线;The server according to claim 1, wherein the heterogeneous unit comprises: at least three FPGA chips and a third bus;
    所述至少三个FPGA芯片均与所述第三总线相连;The at least three FPGA chips are all connected to the third bus;
    所述至少三个FPGA芯片中的任一个FPGA芯片与对应的所述第二总线相连。Any one of the at least three FPGA chips is connected to the corresponding second bus.
  3. 根据权利要求1所述的服务器,其特征在于,所述异构单元中可以包括:至少两个FPGA芯片;The server according to claim 1, wherein the heterogeneous unit may include: at least two FPGA chips;
    每一个所述FPGA芯片分别与对应的所述第二总线相连。Each of the FPGA chips is respectively connected to a corresponding second bus.
  4. 根据权利要求1所述的服务器,其特征在于,所述异构单元,包括:至少三个FPGA芯片;The server according to claim 1, wherein the heterogeneous unit comprises: at least three FPGA chips;
    所述至少三个FPGA芯片依次连接;The at least three FPGA chips are sequentially connected;
    处于首位的FPGA芯片和处于末位的FPGA芯片分别与对应的所述第二总线相连。The FPGA chip in the first place and the FPGA chip in the last position are respectively connected to the corresponding second bus.
  5. 根据权利要求2至4任一所述的服务器,其特征在于,A server according to any one of claims 2 to 4, characterized in that
    与对应的所述第二总线相连的任一所述FPGA芯片与外部的至少一个存储硬盘相连。Any one of the FPGA chips connected to the corresponding second bus is connected to at least one external storage hard disk.
  6. 根据权利要求1所述的服务器,其特征在于,进一步包括:固态硬盘和机械硬盘;The server according to claim 1, further comprising: a solid state hard disk and a mechanical hard disk;
    所述处理器,进一步用于接收每一个所述异构单元反馈的处理结果;将所述处理结果发送至所述固态硬盘;The processor is further configured to receive a processing result fed back by each of the heterogeneous units; and send the processing result to the solid state hard disk;
    所述固态硬盘,分别与所述处理器和所述机械硬盘相连,用于接收所述处理器发送的所述处理结果,存储所述处理结果;将存储的所述处理结果传输至所述机械硬盘;当接收到所述处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果;The solid state drive is respectively connected to the processor and the mechanical hard disk, and configured to receive the processing result sent by the processor, store the processing result, and transmit the stored processing result to the machine a hard disk; starting timing when receiving the processing result sent by the processor, and deleting the stored processing result when the accumulated duration reaches a preset duration;
    所述机械硬盘,用于接收所述固态硬盘传输的所述处理结果,并存储。The mechanical hard disk is configured to receive the processing result of the solid state hard disk transmission and store the same.
  7. 根据权利要求1所述的服务器,其特征在于,进一步包括:内存;The server according to claim 1, further comprising: a memory;
    每一个所述异构单元,进一步用于将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器;发送调用指令至所述处理器,接收所述处理器传输的所述中间数据;Each of the heterogeneous units is further configured to send intermediate data generated in a process of processing the non-transactional data to the processor; send a call instruction to the processor, and receive the transmitted by the processor Intermediate data;
    所述处理器,进一步用于将所述中间数据发送至所述内存;根据所述异构单元发送的所述调用指令从所述内存中调取所述中间数据,并将所述中间数据发送给所述异构单元;The processor is further configured to send the intermediate data to the memory; retrieve the intermediate data from the memory according to the calling instruction sent by the heterogeneous unit, and send the intermediate data Giving the heterogeneous unit;
    所述内存,用于存储所述处理器发送的所述中间数据。The memory is configured to store the intermediate data sent by the processor.
  8. 根据权利要求1至4任一所述的服务器,其特征在于,A server according to any one of claims 1 to 4, characterized in that
    所述总线包括:外设部件互连标准PCIE总线或高速串行口SRIO总线;The bus includes: a peripheral component interconnecting a standard PCIE bus or a high speed serial port SRIO bus;
    和/或,and / or,
    所述固态硬盘为非易失性存储器标准NVMe固态存储硬盘;The solid state drive is a non-volatile memory standard NVMe solid state storage hard disk;
    所述机械硬盘为串行连接SAS扩展盘阵。The mechanical hard disk is a serial connection SAS expansion disk array.
  9. 一种利用权利要求1至8任一所述服务器处理数据的方法,其特征在于,包括: A method for processing data by using the server of any one of claims 1 to 8, characterized in that it comprises:
    当所述处理器确定接收到外部输入的数据为非事务型数据时,在所述至少一个异构单元中确定至少一个目标异构单元,并将所述非事务型数据发送至所述至少一个所述目标异构单元;Determining at least one target heterogeneous unit in the at least one heterogeneous unit and transmitting the non-transactional type data to the at least one unit when the processor determines that the data received by the external input is non-transactional type data The target heterogeneous unit;
    利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理。And receiving, by each of the target heterogeneous units, the non-transactional data sent by the processor, and processing the non-transactional data.
  10. 根据权利要求9所述的方法,其特征在于,所述利用每一个所述目标异构单元接收所述处理器发送的所述非事务型数据,对所述非事务型数据进行处理之后,进一步包括:The method according to claim 9, wherein the using the non-transactional data sent by the processor by each of the target heterogeneous units, after processing the non-transactional data, further include:
    利用所述处理器接收每一个所述目标异构单元反馈的处理结果,将所述处理结果发送至所述固态硬盘;Receiving, by the processor, a processing result fed back by each of the target heterogeneous units, and transmitting the processing result to the solid state hard disk;
    利用所述固态硬盘接收所述处理器发送的处理结果,存储所述处理结果,并将存储的所述处理结果传输至所述机械硬盘;当接收到所述处理器发送处理结果时开始计时,当累积时长达到预先设定的时长时,删除存储的所述处理结果;Receiving, by the solid state hard disk, a processing result sent by the processor, storing the processing result, and transmitting the stored processing result to the mechanical hard disk; and starting timing when receiving the processing result sent by the processor, When the accumulated duration reaches a preset duration, the stored processing result is deleted;
    利用所述机械硬盘接收所述固态硬盘传输的所述处理结果,并存储;Receiving, by the mechanical hard disk, the processing result of the solid state hard disk transmission, and storing;
    和/或,and / or,
    进一步包括:Further includes:
    所述目标异构单元将处理所述非事务型数据的过程中产生的中间数据发送至所述处理器;Transmitting, by the target heterogeneous unit, intermediate data generated in a process of processing the non-transactional data to the processor;
    利用所述处理器接收所述目标异构单元发送的所述中间数据,并将所述中间数据发送至所述内存;Receiving, by the processor, the intermediate data sent by the target heterogeneous unit, and sending the intermediate data to the memory;
    利用所述内存存储所述处理器发送的所述中间数据;Using the memory to store the intermediate data sent by the processor;
    当接收到所述目标异构单元发送的调取指令时,利用所述处理器调取所述内存中存储的所述中间数据,并将所述中间数据发送给所述目标异构单元。And when the receiving instruction sent by the target heterogeneous unit is received, the intermediate data stored in the memory is retrieved by the processor, and the intermediate data is sent to the target heterogeneous unit.
PCT/CN2018/074553 2017-01-22 2018-01-30 Server and data processing method thereof WO2018133879A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710047334.8A CN106708779A (en) 2017-01-22 2017-01-22 Server and method for processing data thereof
CN201710047334.8 2017-01-22

Publications (1)

Publication Number Publication Date
WO2018133879A1 true WO2018133879A1 (en) 2018-07-26

Family

ID=58910161

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/074553 WO2018133879A1 (en) 2017-01-22 2018-01-30 Server and data processing method thereof

Country Status (2)

Country Link
CN (1) CN106708779A (en)
WO (1) WO2018133879A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708779A (en) * 2017-01-22 2017-05-24 济南浪潮高新科技投资发展有限公司 Server and method for processing data thereof
CN107450987A (en) * 2017-07-28 2017-12-08 山东超越数控电子有限公司 A kind of heterogeneous server of High Availabitity

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086729A (en) * 2007-07-09 2007-12-12 西安飞鹰科技有限责任公司 A dynamic reconfigurable high-performance computing method and device based on FPGA
US7640528B1 (en) * 2006-08-04 2009-12-29 Altera Corporation Hardware acceleration of functional factoring
CN106250349A (en) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 A kind of high energy efficiency heterogeneous computing system
CN106708779A (en) * 2017-01-22 2017-05-24 济南浪潮高新科技投资发展有限公司 Server and method for processing data thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446158B (en) * 2010-10-12 2013-09-18 无锡江南计算技术研究所 Multi-core processor and multi-core processor set
US9698791B2 (en) * 2013-11-15 2017-07-04 Scientific Concepts International Corporation Programmable forwarding plane
CN104901830A (en) * 2015-05-12 2015-09-09 武汉烽火网络有限责任公司 FPGA online upgrade method in exchanger device, device thereof and system thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640528B1 (en) * 2006-08-04 2009-12-29 Altera Corporation Hardware acceleration of functional factoring
CN101086729A (en) * 2007-07-09 2007-12-12 西安飞鹰科技有限责任公司 A dynamic reconfigurable high-performance computing method and device based on FPGA
CN106250349A (en) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 A kind of high energy efficiency heterogeneous computing system
CN106708779A (en) * 2017-01-22 2017-05-24 济南浪潮高新科技投资发展有限公司 Server and method for processing data thereof

Also Published As

Publication number Publication date
CN106708779A (en) 2017-05-24

Similar Documents

Publication Publication Date Title
TWI770358B (en) Host system and method thereof and acceleration module
WO2018076793A1 (en) Nvme device, and methods for reading and writing nvme data
US7363396B2 (en) Supercharge message exchanger
JP5566899B2 (en) System and method for accessing memory
WO2017084400A1 (en) Nvme networked storage implementation method, terminal, server, and system
JP6475625B2 (en) Inter-core communication apparatus and method
US11775454B2 (en) Mechanism to autonomously manage SSDs in an array
JP2024099640A (en) Unified address space for multiple hardware accelerators using dedicated low latency link
CN104657316A (en) Server
US8296487B1 (en) SATA pass through port
JPH0775016B2 (en) Data processing system and data communication bus system
WO2017148292A1 (en) Cascade plate, and system and method for ssd remote sharing access
JP2532191B2 (en) A method of managing data transmission for use in a computing system having a dual bus architecture.
WO2020000485A1 (en) Nvme-based data writing method, device, and system
TW200819978A (en) Memory management method and system
WO2018232736A1 (en) Memory access technology and computer system
JPH03265964A (en) Transfer parameter setting method for interface device
US7689744B1 (en) Methods and structure for a SAS/SATA converter
TW201305821A (en) Flexible flash commands
US7865644B2 (en) Method and apparatus for attaching multiple slave devices to a single bus controller interface while supporting command pipelining
CN106775477B (en) SSD (solid State disk) master control data transmission management device and method
CN108256643A (en) A kind of neural network computing device and method based on HMC
WO2018133879A1 (en) Server and data processing method thereof
WO2022141250A1 (en) Data transmission method and related apparatus
WO2023103297A1 (en) System and method for optimizing ahb bus data transmission performance, and server

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: 18741257

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: 18741257

Country of ref document: EP

Kind code of ref document: A1