Data transmission system and method, storage medium, and program product
By using the first board and point-to-point technology in the data transmission system, compressed data is directly read and processed from the auxiliary memory, the problem of low data transmission efficiency in the prior art is solved, and more efficient data query and transmission is achieved.
Patent Information
- Application Number
- CN202510547045.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-28
- Publication Date
- 2025-05-30
AI Technical Summary
Existing data transmission systems are less efficient in data transmission, especially when quickly querying data in large amounts of compressed data, they require multiple transfers, consume a lot of computing resources and are inefficient.
By introducing the first board into the data transmission system, point-to-point technology is used to read compressed data directly from the auxiliary memory, and decompress and query processing are performed in the memory of the first board to avoid multiple transit transmissions.
It improves the efficiency of querying and transmitting target data from auxiliary memory, solves the problem of low data transmission efficiency, and improves the overall performance of the system.
Smart Images

Figure CN120066999A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of data processing, and particularly to a data transmission system, method, storage medium and program product. Background Art
[0002] With the development of network communication technology, the amount of data has increased sharply, and the data storage requirements in devices have also increased day by day. For this reason, data compression technology and decompression technology are usually applied to compress and then store data to save storage space. However, in the process of data transmission, how to quickly query data among a large amount of compressed data is an important issue.
[0003] Related data transmission methods usually need to be realized through multiple transmissions, compressions, and decompressions among multiple modules, which consume a large amount of computing resources and have low efficiency, resulting in a poor user experience. Summary of the Invention
[0004] This application provides a data transmission system, method, storage medium and program product to at least solve the problem of low data transmission efficiency in related technologies.
[0005] This application provides a data transmission system, including: a first board and an auxiliary memory connected to the first board through a bus, and the first board includes a first board memory;
[0006] The first board is configured to, in response to receiving a data query statement sent by a host, read compressed data from the auxiliary memory based on the peer-to-peer technology and store it in the first board memory;
[0007] The first board is further configured to perform decompression processing on the compressed data to obtain decompressed data;
[0008] The first board is further configured to perform query processing on the decompressed data to obtain target data and send it to the host memory.
[0009] This application also provides a data transmission method, including:
[0010] In response to receiving a data query statement sent by a host, read compressed data from the auxiliary memory based on the peer-to-peer technology and store it in the first board memory;
[0011] Perform decompression processing on the compressed data to obtain decompressed data;
[0012] Perform query processing on the decompressed data to obtain target data and send it to the host memory.
[0013] The present application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above data transmission methods.
[0014] The present application also provides a computer program product including a computer program, which, when executed by a processor, implements the steps of any of the above data transmission methods.
[0015] Through the present application, since the first board in the data transmission system can directly read the compressed data from the auxiliary memory through the point-to-point technology, decompress and query it when receiving the data query statement sent by the host, and there is no need for multiple intermediate transmissions during the transmission process. Therefore, the problem of low data transmission efficiency can be solved, and the efficiency of querying and transmitting target data from the auxiliary memory can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] To more clearly illustrate the embodiments of the present application, the following will briefly introduce the drawings required in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0017] Figure 1 It is a schematic diagram of the application of the related data transmission method;
[0018] Figure 2 It is a schematic diagram of the structure of a data transmission system provided by an embodiment of the present application;
[0019] Figure 3 It is a schematic diagram of the software architecture of a data transmission system provided by an embodiment of the present application;
[0020] Figure 4 It is one of the schematic diagrams of the application of a data transmission system provided by an embodiment of the present application;
[0021] Figure 5 It is another schematic diagram of the application of a data transmission system provided by an embodiment of the present application;
[0022] Figure 6 It is one of the schematic diagrams of the linked list mechanism in a board driver program provided by an embodiment of the present application;
[0023] Figure 7 It is another schematic diagram of the linked list mechanism in a board driver program provided by an embodiment of the present application;
[0024] Figure 8 It is a schematic diagram of the flow of a data transmission method provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0025] The following will clearly and completely describe the technical solutions in the embodiments of the present application in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the protection scope of the present application.
[0026] It should be noted that in the description of the present application, the terms "include", "comprise" or any other variation thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements, but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present application are used to distinguish similar objects, rather than to describe a specific order or sequence.
[0027] Heterogeneous computing refers to a computing method that combines the computing resources of multiple different architectures, processors or accelerators. By allocating tasks to the devices most suitable for executing them, the overall performance of the system can be improved. It involves integrating different types of processors such as a central processing unit (CPU), a graphics processing unit (GPU), and a field programmable gate array (FPGA) to achieve the acceleration and optimization of various application programs.
[0028] A database is a warehouse that organizes, stores, and manages data according to a certain structure. It can efficiently execute operations such as inserting, querying, updating, and deleting data, and can ensure the security, integrity, and consistency of the data.
[0029] The driver in heterogeneous computing refers to a software component used to enable the coordinated work between different architecture hardware and software. It is responsible for the management and scheduling of underlying hardware resources, and provides a unified interface to upper-layer applications to achieve the access and efficient utilization of heterogeneous hardware. Its core functions include resource management and allocation, task scheduling and execution, data communication and transmission, etc. It can hide the differences between heterogeneous system platforms and improve the overall performance and scalability of the system.
[0030] A peer-to-peer (P2P) network, also known as peer-to-peer technology, is an Internet system without a central server that relies on users (peers) to exchange information. It can reduce the nodes in network transmission to reduce the risk of data loss.
[0031] Direct Memory Access (DMA) is a computer technology that allows peripherals to directly exchange data with memory without CPU intervention.
[0032] With the development of network communication technology, the amount of data has increased sharply, and the demand for data storage in devices has also increased day by day. For this reason, data compression technology and decompression technology are usually applied to compress and then store data to save storage space and improve storage efficiency. However, in the process of data transmission, how to quickly query data among a large amount of compressed data is an important issue.
[0033] Generally, the technology of implementing data compression and decompression by software methods needs to be executed by the Central Processing Unit (CPU), thus consuming a large amount of CPU computing resources and occupying a large amount of memory space, resulting in a slow processing speed and further reducing the performance of the device.
[0034] The related hardware-based data compression and decompression methods have a fast processing speed and high security, but the data query efficiency is relatively low. The technology of implementing data query based on hardware can also achieve a relatively fast processing efficiency, but it still needs to occupy a large amount of processing space, resulting in a low data storage efficiency and a poor user experience.
[0035] Figure 1 An application schematic diagram of a related data transmission method is provided.
[0036] Taking the technology of implementing data compression and decompression by software methods as an example, refer to Figure 1 , the data transmission device 100 includes a host 101, an accelerator board 102, an accelerator board 103, and an auxiliary memory 104. The host 101 is connected to the accelerator board 102, the accelerator board 103, and the auxiliary memory 104 through a bus. The accelerator board 102 includes an accelerator board engine 1, an accelerator board memory controller 1, and an accelerator board memory 1. The accelerator board 103 includes an accelerator board engine 2, an accelerator board memory controller 2, and an accelerator board memory 2. The auxiliary memory 104 includes an auxiliary memory engine.
[0037] Among them, the accelerator board engine (including accelerator board engine 1 and accelerator board engine 2, which can also be called the DEV_DMA engine) refers to the DMA engine on the accelerator board and is used to implement DMA data read and write between the accelerator board (such as accelerator board 102 and accelerator board 103) and the host 101. The auxiliary storage engine refers to the DMA engine on the auxiliary storage 104. The auxiliary storage DMA engine can implement DMA data read and write between the auxiliary storage 104 and the host memory, and can also implement DMA data read and write between the auxiliary storage 104 and the accelerator board (such as accelerator board 102 and accelerator board 103).
[0038] During the data transmission process, when the host 101 initiates a data query requirement, the host 101 can read the compressed data from the auxiliary storage 104 and store it in the host Host memory address space. The host 101 transmits the query statement corresponding to the data query requirement and the read compressed data to the accelerator board 102. The accelerator board 102 decompresses the compressed data, then queries through the query statement, and feeds back the query result to the host 101.
[0039] In addition, when the host 101 initiates a data write request, the host 101 can send the data write request and the write data to the accelerator board 103. After the accelerator board 103 compresses the write data based on the write instruction, it sends the compressed data to the host 101 and stores it in the host Host memory address space, and the host 101 writes the compressed data into the auxiliary storage 104.
[0040] In a heterogeneous computing scenario, the technology of implementing data compression and decompression based on the above software method can improve the efficiency of data storage, but it takes a long time for the heterogeneous computing of data itself. When the data volume is small, the impact on the time-consuming of data heterogeneous computing is small. When the data volume is large, due to the long data transmission path and the need for multiple data transmissions during the transfer process, it may cause a large data delay and affect the performance of the entire system. As Figure 1 shown in 105, the data transmission process of the above method is relatively complex, that is, the data stream transmission between the auxiliary storage 104 and the accelerator board must be based on the host 101 for transfer transmission to achieve data interaction, which makes the efficiency of data writing and data query relatively low.
[0041] To solve the above problems, the present application proposes a data transmission system, method, storage medium and program product. When the first board in the data transmission system receives a data query statement sent by the host, it can directly read the compressed data from the auxiliary memory through the point-to-point technology and perform decompression and query processing. There is no need for multiple intermediate transmissions during the transmission process, which can solve the problem of low data transmission efficiency and achieve the improvement of the efficiency of querying and transmitting target data from the auxiliary memory.
[0042] To enable those skilled in the art of the present technology to better understand the solution of the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0043] Figure 2 It is a schematic structural diagram of a data transmission system provided by an embodiment of the present application.
[0044] See Figure 2 , the data transmission system 200 includes a first board 201, a second board 202, and an auxiliary memory 203 connected to the first board 201 and the second board 202 through a bus. The first board 201 includes a first board circuit 2011, a first memory controller 2012, and a first board memory 2013. The second board 202 includes a second board circuit 2021, a second memory controller 2022, and a second board memory 2023. The first board 201 and the second board 202 are connected to the host 204 through a bus, and the auxiliary memory 203 includes an auxiliary memory engine.
[0045] Optionally, the first board circuit 2011, the first board memory 2013, and the first memory controller 2012 are integrated on the first board 201, and the second board circuit 2021, the second board memory 2023, and the second memory controller 2022 are integrated on the second board. The first board circuit 2011 is used to indicate the integrated circuit on the first board 201, which is used to implement functions such as data decompression and data query. The second board circuit 2021 is used to indicate the integrated circuit on the second board 202, which is used to implement functions such as data compression. The first board memory 2013 is used to store compressed data, decompressed data, etc. read from the auxiliary memory 203, and the first memory controller 2012 is used to manage and allocate memory space for the first board memory 2013. The second board memory 2023 is used to store target write data, target compressed data, etc. obtained from the host 204, and the second memory controller 2022 is used to manage and allocate memory space for the second board memory 2023.
[0046] Optionally, the data transmission system 200 supports multiple data transmission protocols. Taking the Peripheral Component Interconnect Express (PCIe) protocol for high-speed serial point-to-point interconnection communication as an example, it has multiple data transmission modes, including data transmission modes such as point-to-point - DMA and direct memory access (DMA). When the data transmission system 200 has the ability to act as a bus master, it can initiate data transmission independently and directly send data to another device that supports the PCIe protocol without relying on the central processor and other system resources. The way of directly transmitting data between the above devices is called point-to-point data transmission.
[0047] Point-to-point (point-to-point - DMA, abbreviated as P2P) technology allows direct data transmission between different devices connected to a bus (such as the PCIe bus) without transferring data from the secondary storage to the host memory and then from the host memory to the accelerator board memory. That is to say, using the P2P data transmission method, data can be directly transmitted from the secondary storage to the accelerator board memory, saving the host memory address space and improving the data transmission efficiency at the same time. When performing compute-intensive tasks (such as data acceleration queries, data compression, or data decompression tasks), the overall system performance can be improved.
[0048] Continue to refer to Figure 2 , as Figure 2 shown by the solid curve in
[0049] As Figure 2As shown by the middle virtual curve, on the host 204 side, a data query request is created through an application, and the data query statement corresponding to the data query request is transmitted to the second board memory 2023 of the second board 202 through the second board circuit 2021 (such as controlling the second data transceiver circuit based on the data transceiver DEV_DMA function). The second board 202 reads the compressed data from the auxiliary memory 203 based on the point-to-point transmission technology and stores it in the second board memory 2023. At this time, the second memory controller 2022 is used to allocate memory space for the second board memory 2023, and the auxiliary memory 203 uses the auxiliary memory engine to complete the auxiliary memory DMA read operation. The second board 202 decompresses the read compressed data. When the decompression process is completed, the compressed data is queried and filtered based on the data query statement. When the query filtering process is completed, the target data is transmitted from the second board memory 2023 to the host memory through the second board circuit 2021 (such as controlling the second data transceiver circuit based on the data transceiver DEV_DMA function). As Figure 2 As shown in 205, the data transmission process is a point-to-point transmission between the auxiliary memory 203 and the board (such as the first board 201 and the second board 202).
[0050] Optionally, the first board is used to respond to the received data query statement from the host, read the compressed data from the auxiliary memory based on the point-to-point technology, and store it in the first board memory;
[0051] The first board is also used to decompress the compressed data to obtain the decompressed data;
[0052] The first board is also used to query the decompressed data to obtain the target data and send it to the host memory.
[0053] Optionally, the host can also be called a server, and the first board can also be called the first accelerator board (FPGA-1), which is used to indicate the accelerator board that performs data decompression processing and data query processing. The first board memory can also be called the FPGA-1 memory. There is a hardware device supporting the point-to-point technology (P2P) in the first board, so as to establish a P2P connection relationship with the auxiliary memory based on the bus. The auxiliary memory can also be called a disk or disk memory. The auxiliary memory is used to store the compressed data after processing.
[0054] Optionally, the bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc., and the present application does not make specific limitations herein.
[0055] Optionally, the data query statement is used to indicate the SQL statement corresponding to the data query instruction sent by the host, and may also be referred to as SQL code stream data.
[0056] Optionally, the data query statement is stored in the host memory, and the host memory may also be referred to as the host memory address space.
[0057] Optionally, when reading compressed data from the auxiliary storage based on the peer-to-peer technology, a corresponding storage space can be allocated in the first board memory for the above-mentioned compressed data, so as to store (or cache) the compressed data in the above-mentioned storage space of the first board.
[0058] As an example but not a limitation, when the decompression process of the compressed data is completed, the first board can release the compressed data in the above-mentioned storage space to improve the data storage efficiency.
[0059] Optionally, the maximum remaining memory space in the first board memory can be allocated as the storage space for storing the above-mentioned compressed data to avoid situations such as data overflow.
[0060] Exemplarily, the transparent file system calls the memory allocation function (such as the P2P memory allocation function) in the board driver through the interface function. When the board driver is called by the transparent file system for the memory allocation function, it controls the first memory controller in the first board to allocate the maximum remaining memory space for the first board memory to store the above-mentioned compressed data.
[0061] Optionally, after the first board completes the query processing of the decompressed data and obtains the target data queried, it sends the target data to the host memory. When no relevant data is queried, it feeds back a query notification indicating the query failure to the host.
[0062] Exemplarily, when no relevant data is queried, a query result with an empty content is fed back to the transparent file system through the board driver. The transparent file system generates a query notification indicating the query failure based on the query result with an empty content and feeds it back to the host.
[0063] Optionally, the host includes at least one processor and a memory. The above-mentioned processor can be a Central Processing Unit (CPU), a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), etc. The memory may include a Random Access Memory (RAM), and may also include a Non-volatile Memory (NVM), such as at least one disk memory.
[0064] This application realizes the point-to-point data transmission process between the auxiliary memory and multiple accelerator boards based on the peer-to-peer technology, and can simultaneously implement the functions of heterogeneous data decompression, data acceleration query, and data compression storage of the database on the hardware of the accelerator board. It can improve the query efficiency of data while completing data compression storage during the data transmission process.
[0065] Optionally, the data transmission system further includes a transparent file system and a board driver. The transparent file system and the board driver are located in the kernel layer of the host. The transparent file system includes interface functions;
[0066] The transparent file system is used to respond to the data query instruction sent by the virtual file system of the host, parse the data query instruction to determine the board type, and in the case where the board type is determined to be the first board, control the board driver to send the data query statement corresponding to the data query instruction through the interface function;
[0067] The board driver is used to send the data query statement to the first board under the control of the transparent file system.
[0068] Optionally, the host includes a virtual file system, which is a virtual system used to indicate various types of data transmission (such as data query statements, target data, target write data, target compressed data, etc.) with the transparent file system, and is located in the kernel layer of the host. The transparent file system refers to a virtual system that can call the board driver through the interface function, and is located in the kernel layer of the host. The transparent file system includes interface functions, and the interface function refers to the Application Programming Interface (API) interface in the transparent file system used to call the board driver. The board driver (also called the FPGA driver) is a software program used to indicate that the first board, the second board, and the auxiliary memory can achieve data transmission through internal functions based on the peer-to-peer technology, and is located in the kernel layer of the host.
[0069] Optionally, the board type includes a first board or a second board. Among them, when the board type indicates the first board, the transparent file system can control the first board by calling the board driver through the interface function. When the board type indicates the second board, the transparent file system can control the second board by calling the board driver through the interface function.
[0070] Optionally, the internal functions in the board driver include at least one of, but are not limited to, data transceiver functions (such as DEV_DMA data transceiver functions), memory allocation functions, decompression functions, multi-type interrupt functions (which can also be called multi-type interrupt handling functions), data query functions, and data compression functions.
[0071] Optionally, when the transparent file system controls the board driver to send a data query statement through the interface function, it is specifically used to: call the data transceiver function through the interface function to control the board driver to obtain the data query statement corresponding to the data query instruction from the host memory and send the data query statement.
[0072] Optionally, the first board circuit in the first board includes a first data transceiver circuit, and the second board circuit in the second board includes a second data transceiver circuit. The data transceiver circuit can also be called a data transceiver DMA-IP (Intellectual Property Core) kernel. When the data transceiver function in the board driver is called, it is used to implement functions such as data reception and data transmission, enabling the data transmission system to implement transparent data compression operations, transparent decompression, transparent data query operations, and adaptation to multiple accelerator boards based on the same driver, improving the data transmission efficiency.
[0073] Exemplarily, when the transparent file system calls the data transceiver function through the interface function, it controls the board driver to obtain the data query statement corresponding to the data query instruction from the host memory and send the data query statement to the first board. At this time, the first board uses the first data transceiver circuit to receive the above data query statement.
[0074] Figure 3 It is a schematic diagram of the software architecture of a data transmission system provided by an embodiment of the present application.
[0075] See Figure 3 , the software architecture of the data transmission system includes a host (including an application layer and a kernel layer) and a device layer. Among them, the application layer includes at least one application program (such as a social application, an image processing application, etc.), and the kernel layer includes a virtual file system, a transparent file system, a bottom file system, a disk driver, and a board driver. The device layer includes an auxiliary storage (such as Figure 3The disk shown), the first board and the second board. A P2P connection is achieved between the disk and the first board and the second board.
[0076] Among them, the kernel layer is used to manage and allocate the data transfer system memory and the host memory through the memory management mechanism to initiate P2P data transfer between the auxiliary storage and the board and DEV_DMA data transfer between the host and the board. The application layer is used to send data query requests, data write requests, etc. to the kernel layer based on the host's data query requirements and data write requirements. The virtual file system is used to transfer to the transparent file system when receiving data query requests and data write requests sent by the host through the application program. The underlying file system is used to call the auxiliary storage (such as Figure 3 the disk shown) driver under the control of the transparent file system. The transparent file system is used to implement the call of the internal function in the board driver. The data transceiver function in the board driver is used to implement the DMA data transfer between the host side and the board memory. The auxiliary storage driver (such as the auxiliary storage DMA driver) is used to implement the P2P data transfer between the auxiliary storage and the board.
[0077] The board driver is used to uniformly manage, configure and call the hardware logic resources of each accelerator board (such as the first board and the second board) (including the logic circuits for implementing data compression, data decompression, and data query filtering algorithms). The API interface function of the transparent file system is used to schedule each function in the board driver (such as data query function, data compression function, data decompression function, memory allocation function, data transceiver function, multi-type interrupt function, etc.).
[0078] Among them, the data compression function is used to schedule the data compression circuit (which can also be called the data compression IP core) of the second board. The data decompression function is used to schedule the data decompression circuit (which can also be called the data decompression IP core) of the first board. The data query function is used to schedule the data query circuit (which can also be called the data query IP core) of the first board. Three processing functions, namely the memory allocation function, the data sending and receiving function, and the multi-type interrupt function, can be applied to each board. Among them, the memory allocation function is used to allocate the memory space of the board memory on each board. The data sending and receiving function is used to implement data reception and data transmission between the host memory and the board memory. The multi-type interrupt function is used to process different types of computing functions (such as data compression, data decompression, data query, etc.). When each type of computing function (such as data compression, data decompression, data query, etc.) is completed, it is necessary to execute corresponding processing through the multi-type interrupt function (such as reading the interrupt status register, clearing the interrupt status register, etc. operations to exit the wait and determine the completion of the processing). It can be understood that the above-mentioned processing functions are all implemented in the same board driver, so as to achieve the function of simultaneously matching multiple acceleration cards through one driver program.
[0079] Figure 4 It is one of the application schematic diagrams of a data transmission system provided by an embodiment of the present application.
[0080] Taking the data query process as an example, see Figure 4, the application layer (such as a social application) initiates a data query instruction and sends the data query instruction to the virtual file system. The virtual file system sends a data query request to the transparent file system. The transparent file system parses the data query instruction and determines the device type. When the device type is device type 1 (used to indicate that the board type is the first board), device type 1 is passed in. The transparent file system calls the memory allocation function to allocate a first memory space for the first board's memory. The transparent file system calls the data reading function to read the compressed data from the disk and write it into the first board (specifically, into the first memory space of the first board's memory). Device type 1 is passed in. The transparent file system calls the decompression function to control the first board to start the decompression process. The transparent file system calls the multi-type interrupt function to wait for the decompression process interrupt. When the data decompression process interrupt signal is obtained, device type 1 is passed in. The transparent file system calls the data transceiver function to read the data query statement from the host memory and write it into the first board. Device type 1 is passed in. The transparent file system calls the data query function to control the first board to start the query process. Device type 1 is passed in. The transparent file system calls the multi-type interrupt function to wait for the data query interrupt. When the data query interrupt signal is received, device type 1 is passed in. The transparent file system calls the data transceiver function to read the target data from the first board and send the target data to the host memory through the virtual file system. At the same time, the target data is returned to the application layer to complete the data decompression query process.
[0081] Figure 5 This is the second application schematic diagram of a data transmission system provided by an embodiment of the present application.
[0082] Taking the data writing process as an example, refer to Figure 5, the application layer (such as a social application in the application layer) initiates a data write instruction and sends the data write instruction to the virtual file system. The virtual file system (such as by calling the virtual file system write function Virtual File System, vfs_write) sends a data query instruction to the transparent file system. The transparent file system parses the data query instruction and determines the device type. When the device type is 0 (used to indicate that the board type is the second board), the device type 0 is passed in. The transparent file system calls the data transceiver function to read the target write data from the host memory and write it into the second board. When the device type 0 is passed in, the transparent file system calls the compression function to control the second board to start the compression process. When the device type 0 is passed in, the transparent file system calls the multi-type interrupt function and waits for the compression process interrupt. When the data compression process interrupt signal is obtained, with the device type 0 passed in, the transparent file system calls the data transceiver function to read the occupied space size of the target compressed data from the second board. When the device type 0 is passed in, the transparent file system calls the memory allocation function to allocate a second memory space for the second board memory based on the occupied space size (such as the first four sub-sections of the compressed data). Then, the transparent file system calls the data write function (such as the common system function of the linux system: Kernel_write function) to write the target compressed data into the underlying file system. The underlying file system calls the disk driver to control the disk to store the target compressed data. The disk driver controls the disk to store the target compressed data, and the disk stores the target compressed data, completing the data compression and storage process.
[0083] In this way, the embodiments of the present application can simultaneously implement data compression, data decompression, and database query processing in a heterogeneous computing environment. Specifically, by designing the call interface function of the transparent file system in the kernel layer, flexible calls to each function in the board driver program are realized. Based on the linked list mechanism of each function in the board driver program, calls to the computing functions of different accelerator boards are realized. At the same time, based on the multi-type interrupt function, interrupt processing of the computing functions of multiple different function types in multiple accelerator boards is realized, achieving efficient cooperative calls of software and hardware and improving the data transmission efficiency in a heterogeneous environment.
[0084] Figure 6 It is one of the schematic diagrams of the linked list mechanism in the board driver program provided by the embodiments of the present application.
[0085] See Figure 6 , the functions in the board driver program include a compression function (which can also be called a data compression function), a decompression function (which can also be called a data decompression function), and a data query function. Each function includes a global device linked list. By traversing the global device linked list (there are two devices in the linked list, namely device 1 and device 2), the device type (which can also be called the board type, including type 0 and type 1) can be identified.
[0086] Among them, device 1 and type 0 represent the second board card, and device 2 and type 1 represent the first board card. Each functional function can determine the device type through the incoming device type parameter (including device type 0 or device type 1).
[0087] Exemplarily, when the device type parameter passed into the compression function = 0, it means the device type = 0 (the board card type is the second board card), the compression function is called, data compression processing can be performed, and registers related to data compression processing are configured for the second board card.
[0088] The compression function includes a compressed data address register, a compressed data length register, a compressed data address register, a compressed data size register, an interrupt enable register, and a start calculation register. The decompression function includes a compressed data address register, a decompressed data address register, an interrupt enable register, and a start calculation register. The data query function includes a query data address register, an SQL code stream data register, a query result address register, an interrupt enable register, and a start calculation register.
[0089] Figure 7 This is the second schematic diagram of the linked list mechanism in the board card driver program provided by the embodiments of the present application.
[0090] See Figure 7 , the functional functions in the board card driver program further include a memory allocation function (which can also be called a P2P memory allocation function), a data transceiver function, and a multi-type interrupt handling function. Among them, the memory allocation function includes a device memory allocation function. The data transceiver function includes a DEV_DMA data transceiver function. When the data transceiver function reads the incoming device type parameter, it executes the function of the data transceiver function (such as the DEV_DMA data transceiver function) based on any device type (including device type parameter = 0 or device type parameter = 1).
[0091] The multi-type interrupt handling function mainly processes different computing tasks according to different device types. When the input device type parameter = 0 (i.e., device type = 0), it is determined to process the compression task, enter the interrupt waiting state, read the 16-bit interrupt status register. The 16 bits of the interrupt status register correspond to 16 compression computing units. If any one of the 16 bits of the interrupt status register is = 1, it means that the compression computing unit corresponding to that bit has completed the computing task. The multi-type interrupt handling function is used to clear the interrupt status register (exit the waiting state) and execute the compression interrupt return and send an interrupt signal when the waiting flag of any one of the 16 bits is = 1; and when the input device type parameter of the multi-type interrupt handling function = 1 (i.e., device type = 1), it enters the interrupt waiting state and reads the 16-bit interrupt status register. When the waiting flag of any one of the first 14 bits in the 16 bits is = 1, clear the interrupt status register, exit the waiting state, and execute the compression interrupt return and send an interrupt signal; or when the waiting flag of any one of the last 2 bits in the 16 bits is = 1, clear the interrupt status register (exit the waiting state) and execute the compression interrupt return and send an interrupt signal.
[0092] It can be understood that clearing the interrupt status register refers to clearing the interrupt status registers of the data compression circuit, data decompression circuit, and data query circuit. The above interrupt status registers will not be automatically cleared after being read. Clearing the interrupt status register does not refer to the 16-bit interrupt status register, and the 16-bit interrupt status register can be automatically cleared after being read.
[0093] Optionally, the compressed data address register is used to store the address of the compressed data; the compressed data length register is used to store the length of the compressed data; the compressed data address register is used to store the address of the compressed data; the compressed data size register is used to store the length of the compressed data; the interrupt enable register is used to enable the compression interrupt status register, and the start computing register is used to start the compression computing. For example, writing the parameter 1 to the start computing register means starting the computing.
[0094] Optionally, the P2P memory allocation function is mainly used to allocate board memory for the auxiliary memory DMA engine, and the DEV_DMA data transceiver function is mainly used to implement data transfer between the host memory and the board memory by the board DEV_DMA engine.
[0095] Optionally, the first board further includes a first memory controller;
[0096] Before the transparent file system controls the data query statement corresponding to the data query instruction sent by the board driver through the interface function, it is also used for:
[0097] When it is determined that the board type is the first board, the memory allocation function is called through the interface function;
[0098] The board driver is also used to control the first memory controller to allocate the first memory space for the first board memory when the memory allocation function is called by the transparent file system;
[0099] The first board is specifically used to allocate the first memory space for the first board memory by using the first memory controller.
[0100] Optionally, the first memory controller is used to allocate the memory space for the first board memory.
[0101] Optionally, when the transparent file system determines that the board type carried in the data query instruction is the first board, it determines to execute the data query processing process and calls the memory allocation function in the board driver through the interface function. In this way, the board driver can, based on the above call relationship, control the first memory of the first board to allocate the first and memory spaces for the first board. Under the control of the board driver, the first board uses the first memory controller to allocate the first memory space for the first board memory to store the compressed data obtained by the first board from the auxiliary storage based on the point-to-point technology.
[0102] Optionally, the data transmission system further includes a data reading function; the transparent file system is also used to call the data reading function through the interface function when it is determined that the first board has completed the allocation of the first memory space;
[0103] The board driver is also used to control the first board to read the compressed data from the auxiliary storage when the transparent file system calls the data reading function;
[0104] The first board is specifically used to read the compressed data from the auxiliary storage under the control of the board driver.
[0105] Optionally, the data transmission system further includes a data reading function. The transparent file system is used to call the data reading function (such as the Kernel_read function in the linux system) through the interface function when it is determined that the first board has completed the allocation of the first memory space. In this way, the board driver can control the first board to read the compressed data from the auxiliary storage when the above data reading function is called. Under the control of the board driver, the first board reads the compressed data from the auxiliary storage, realizing the data reading process at the kernel layer of the data transmission system.
[0106] Optionally, the first board includes a decompression circuit;
[0107] The transparent file system is also used to call the data decompression function through the interface function when it is determined that the first board has completed the allocation of the first memory space;
[0108] The board driver is also used to control the decompression circuit to decompress the compressed data when the transparent file system calls the data decompression function;
[0109] The decompression circuit is used to decompress the compressed data under the control of the board driver to obtain the decompressed data.
[0110] Optionally, the first board circuit in the first board includes a decompression circuit, which can also be called a decompression IP core, and is used to implement the data decompression function for the compressed data. Based on this, the transparent file system can be used to call the data decompression function through the interface function when the first board completes the allocation of the first memory space, so that the board driver controls the decompression circuit to decompress the compressed data read from the auxiliary memory. The decompression circuit decompresses the compressed data under the control of the board driver. When the decompression process is completed, the first board obtains the decompressed data.
[0111] Optionally, the first board includes a data query circuit;
[0112] The transparent file system is also used to call the data query function through the interface function when it is determined that the first board receives a data query statement;
[0113] The board driver is also used to control the data query circuit to query the decompressed data when the transparent file system calls the data query function;
[0114] The data query circuit is used to query the decompressed data under the control of the board driver to obtain the target data;
[0115] The transparent file system is also used to call the data transceiver function through the interface function when it is determined that the first board obtains the target data;
[0116] The board driver is also used to control the first board to send the target data to the host memory when the transparent file system calls the data transceiver function.
[0117] Optionally, the first board circuit in the first board further includes a query circuit, which can also be called a query IP core, and is used to implement the query function for the decompressed data. In this way, the transparent file system can call the data query function through the interface function when the first board receives a data query statement, so that the board driver controls the data query circuit to query the decompressed data. The query circuit queries the decompressed data under the control of the board driver. When the query process is completed, the first board obtains the target data. The first board is specifically used to feedback the target data to the host under the control of the board driver.
[0118] Optionally, when the first board obtains the target data, the transparent file system can also call the data transceiver function through the interface function, so that the board driver controls the first board to send the target data to the host memory. In this way, the host obtains the data query result corresponding to the data query request (including the target data).
[0119] Optionally, the second board includes a second board memory, and the second board is connected to the auxiliary storage through a bus;
[0120] The second board is configured to store the target write data in the second board memory based on the peer-to-peer technology in response to receiving the target write data sent by the host;
[0121] The second board is further configured to perform compression processing on the target write data to obtain target compressed data, and write the target compressed data to the auxiliary storage.
[0122] Optionally, the second board in the data transmission system can also be referred to as the second accelerator board (FPGA-2), which is used to indicate the accelerator board that performs data decompression processing and data query processing. The second board memory can also be referred to as the FPGA-2 memory, and a hardware device supporting the peer-to-peer technology (P2P) is provided in the second board, so as to implement a P2P connection relationship with the auxiliary storage based on the bus.
[0123] Optionally, when the second board receives the target write data, it can allocate a corresponding storage space for the target write data in the second board memory to store (or cache) the target write data in the above storage space of the first board.
[0124] As an example rather than a limitation, when writing the target compressed data to the auxiliary storage is completed, the second board can release the target write data in the above storage space to improve the data storage efficiency.
[0125] Optionally, the maximum remaining memory space in the second board memory can be allocated as the storage space for storing the target write data to avoid situations such as data overflow.
[0126] The embodiments of the present application can implement computationally intensive tasks such as data compression, data decompression, and data query, improve the system working efficiency and reduce the data transmission delay, and achieve the high efficiency and convenience in the data transmission process.
[0127] Optionally, the first board can also perform compression processing on the target write data under the control of the board driver to obtain target compressed data, and write the target compressed data to the auxiliary storage to implement the compressed storage function of the data.
[0128] Optionally, the transparent file system is further configured to, in response to receiving a data writing instruction sent by the virtual file system of the host, parse the data writing instruction to determine the board type, and in the case where the board type is determined to be the second board, control the board driver to send the target writing data corresponding to the data writing instruction through the interface function;
[0129] The board driver is configured to send the target writing data to the second board under the control of the transparent file system.
[0130] Optionally, the transparent file system is configured to, in response to receiving a data writing instruction sent by the virtual file system of the host, parse the data writing instruction to obtain the board type carried by the data writing instruction. In the case where the board type is the second board, determine to execute the data writing function, and call the internal function in the board driver through the interface function to control the board driver to send the target writing data corresponding to the data writing instruction to the second board, so that the second board can obtain the target writing data sent by the host.
[0131] Optionally, when the transparent file system controls the board driver to send the target writing data corresponding to the data writing instruction through the interface function, it is specifically configured to:
[0132] Call the data transceiver function through the interface function to control the board driver to obtain the target writing data corresponding to the data writing instruction from the host memory and send the target writing data.
[0133] Optionally, the second board circuit includes a data transceiver circuit, and the transparent file system is specifically configured to call the data transceiver function through the interface function to control the board driver to obtain the target writing data corresponding to the data writing instruction from the host memory and send the target writing data to the second board. In this way, the second board can receive the target writing data sent by the board driver based on the data transceiver circuit.
[0134] Optionally, the second board further includes a compression circuit;
[0135] The transparent file system is further configured to, in the case where the board type is determined to be the second board, call the data compression function through the interface function;
[0136] The board driver is further configured to, in the case where the transparent file system calls the data compression function, control the compression circuit to perform compression processing on the target writing data;
[0137] The compression circuit is configured to perform compression processing on the target writing data under the control of the board driver to obtain the target compressed data.
[0138] Optionally, the second circuit board in the second board card further includes a compression circuit, which can also be referred to as a compression IP core, and is used to implement the data compression function. When the transparent file system determines that the board card type is the second board card, it determines to perform the data compression function based on the second board card. At this time, the data compression function in the board card driver can be called through the interface function, so that the board card driver controls the compression circuit on the second board card to compress the target write data. The compression circuit compresses the target write data under the control of the board card driver. When the compression process is completed, the second board card obtains the target compressed data. At this time, the second board card memory of the second board card is used to store (or cache) the above target compressed data.
[0139] Optionally, the transparent file system is further used to call the data transceiver function through the interface function when the compression process is completed;
[0140] The board card driver is further used to obtain the occupied space size of the target compressed data when the transparent file system calls the data transceiver function;
[0141] The transparent file system is further used to call the memory allocation function through the interface function when the occupied space size of the target compressed data is obtained;
[0142] The board card driver is further used to control the second memory controller to allocate a second memory space for the second board card memory based on the occupied space size when the transparent file system calls the memory allocation function;
[0143] The second board card is specifically used to allocate a second memory space for the second board card memory by using the second memory controller based on the occupied space size.
[0144] Optionally, the transparent file system is used to call the data transceiver function of the board card driver through the interface function when the second board card completes the compression process of the target write data, so that the board card driver obtains the occupied space size of the target compressed data when the above data transceiver function is called. In this way, the transparent file system can call the memory allocation function of the board card driver through the interface function when the occupied space size of the target compressed data is obtained, so that the board card driver controls the second memory controller on the second board card to allocate a second memory space for the second board card memory based on the occupied space size when the above memory allocation function is called, and the second board card uses the second memory controller to allocate a second memory space for the second board card internally based on the occupied space size to store the target compressed data.
[0145] Exemplarily, the first four bytes of the target compressed data can be obtained as the occupied space size. Another exemplarily, the occupied space size of the target compressed data can be obtained by reading the compression data size register.
[0146] Optionally, the data transmission system further includes a data writing function; the transparent file system is further configured to, when determining that the second board has completed the second memory space allocation, call the data writing function through the interface function;
[0147] The board driver is further configured to, when the transparent file system calls the data writing function, control the second board to write the target compressed data to the auxiliary memory;
[0148] The second board is specifically configured to write the target compressed data to the auxiliary memory under the control of the board driver.
[0149] Optionally, the data transmission system further includes a data writing function. The transparent file system is configured to, when determining that the second board has completed the second memory space allocation, call the data writing function of the data transmission system through the interface function, so that the board driver controls the second board to write the target compressed data to the auxiliary memory when the above data writing function is called. In this way, the second board can write the target compressed data to the auxiliary memory based on the point-to-point technology under the control of the board driver.
[0150] Exemplarily, when the transparent file system calls the data writing function of the data transmission system through the interface function, it controls the board driver to control the second board to write the target compressed data to the auxiliary memory. At this time, the second board can use the second data transceiver circuit to write the target compressed data to the auxiliary memory.
[0151] As an example but not a limitation, when the operation of the second board writing the target compressed data to the auxiliary memory is completed, the target compressed data in the memory of the second board can be released to improve the data storage efficiency.
[0152] Optionally, the transparent file system is further configured to call a multi-type interrupt function through the interface function when calling any one of the processing functions; any one of the processing functions is a data decompression function, a data query function or a data compression function;
[0153] The board driver is further configured to, when the transparent file system calls the multi-type interrupt function, wait for and obtain the interrupt signal corresponding to any one of the processing functions, and determine that any one of the processing functions has ended based on the interrupt signal.
[0154] Optionally, a transparent file system is used to call a multi-type interrupt function in the board driver through an interface function when any one of the processing functions (such as a data decompression function, a data query function, or a data compression function) is called. In this way, the board driver can enter a wait state when the multi-type interrupt function is called and obtain the interrupt signal corresponding to any one of the processing functions based on the multi-type interrupt function. When the interrupt signal corresponding to any one of the processing functions is obtained, it is determined that any one of the execution functions has ended, and the wait state is exited. Based on this, the first board or the second board can determine the decompressed data, the target data queried, the target data after compression processing, etc. based on the above interrupt signal.
[0155] The embodiment of the present application realizes the interrupt processing of multiple computing IPs of different functional types in multiple accelerator boards based on a multi-type interrupt function, and realizes a heterogeneous computing system for data compression, data decompression, and data acceleration query based on the database file of the board hardware, improving the overall performance of the data transmission system, saving the storage space of the system while improving the data calculation and transmission efficiency, with wide application and high adaptability.
[0156] Taking data query processing as an example, a transparent file system is used to call a multi-type interrupt function in the board driver through an interface function when the data query function is called. The board driver enters a wait state when the transparent file system calls the multi-type interrupt function and obtains the interrupt signal corresponding to the data query function based on the multi-type interrupt function. When the board driver obtains the interrupt signal corresponding to the data query function, it is determined that the data query processing is completed, and the wait state is exited. In this way, the first board can determine the target data queried based on the interrupt signal.
[0157] Figure 8 It is a schematic flowchart of the data transmission method provided by the embodiment of the present application. As Figure 8 shown, the embodiment of the present application also provides a data transmission method, including:
[0158] S801. In response to receiving a data query statement sent by the host, read the compressed data from the auxiliary memory based on the peer-to-peer technology and store it in the first board memory;
[0159] S802. Perform decompression processing on the compressed data to obtain the decompressed data;
[0160] S803. Perform query processing on the decompressed data to obtain the target data and send it to the host memory.
[0161] Optionally, the data transmission method can be applied to the data transmission system in the above embodiment, and the data transmission process is realized based on the peer-to-peer data transmission technology between the first board, the second board and the auxiliary memory, which will not be elaborated here.
[0162] Exemplarily, the above steps S801, S802, and S803 can be applied to the first board 201 in the data transmission system 200.
[0163] Optionally, the data transmission method further includes:
[0164] S804. In response to receiving the target write data sent by the host, store the target write data in the memory of the second board based on the peer-to-peer technology;
[0165] S805. Compress the target write data to obtain target compressed data, and write the target compressed data to the auxiliary storage.
[0166] Exemplarily, the above steps S804 and S805 can be applied to the second board 202 in the data transmission system 200.
[0167] For the description of the features in the embodiments corresponding to the data transmission method, reference can be made to the relevant description of the embodiments corresponding to the data transmission system, which will not be elaborated here one by one.
[0168] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases, the former is a better implementation method.
[0169] An embodiment of the present application also provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps in any one of the above data transmission method embodiments when running.
[0170] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: USB flash drive, read-only memory (ROM for short), random access memory (RAM for short), mobile hard disk, magnetic disk, or optical disc, etc., various media that can store computer programs.
[0171] An embodiment of the present application also provides a computer program product. The above computer program product includes a computer program, and the computer program implements the steps in any one of the above data transmission method embodiments when executed by a processor.
[0172] An embodiment of the present application also provides another computer program product, including a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium stores a computer program, and the computer program implements the steps in any one of the above data transmission method embodiments when executed by a processor.
[0173] Those skilled in the art may further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described according to functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered as exceeding the scope of this application.
[0174] The above has introduced in detail a data transmission system, method, storage medium, and program product provided by this application. Specific examples are used herein to elaborate on the principle and implementation manner of this application. The description of the above embodiments is only used to help understand the method and its core idea of this application. It should be noted that for those of ordinary skill in the art in this technical field, without departing from the principle of this application, several improvements and modifications can be made to this application, and these improvements and modifications also fall within the protection scope of the claims of this application.
Claims
1. A data transmission system, characterized in that: It includes a first board and an auxiliary memory connected to the first board via a bus, wherein the first board includes a first board memory; The first board is used for reading the compressed data from the auxiliary memory and storing it in the first board memory based on the point-to-point technology in response to receiving the data query statement sent by the host; The first board is further used to decompress the compressed data to obtain decompressed data; The first board is also used to perform query processing on the decompressed data, obtain target data and send it to the host memory.
2. The data transmission system according to claim 1, characterized in that: It also includes a transparent file system and a board driver, wherein the transparent file system and the board driver are located in the kernel layer of the host, and the transparent file system includes an interface function; The transparent file system is used to respond to receiving a data query instruction sent by the virtual file system of the host, parse the data query instruction to determine the type of the board card, and when it is determined that the type of the board card is the first board card, control the board card driver to send a data query statement corresponding to the data query instruction through the interface function; The board driver is used to send the data query statement to the first board under the control of the transparent file system.
3. The data transmission system according to claim 2, characterized in that: The board driver also includes a memory allocation function; the first board also includes a first memory controller; Before the transparent file system controls the board driver to send the data query statement corresponding to the data query instruction through the interface function, the transparent file system is further used to: In the case where it is determined that the board type is the first board, calling the memory allocation function through the interface function; The board driver is further used to control the first memory controller to allocate a first memory space to the first board memory when the transparent file system calls the memory allocation function; The first board is specifically configured to allocate a first memory space to the memory of the first board using the first memory controller.
4. The data transmission system according to claim 3, characterized in that: The board driver also includes a data decompression function; the first board includes a decompression circuit; The transparent file system is further used to call the data decompression function through the interface function when determining that the first board completes the first memory space allocation; The board driver is further used to control the decompression circuit to decompress the compressed data when the transparent file system calls the data decompression function; The decompression circuit is used to decompress the compressed data under the control of the board driver to obtain decompressed data.
5. The data transmission system according to claim 4, characterized in that: The board driver also includes a data query function and a data transceiver function; the first board includes a data query circuit; The transparent file system is further used to determine that when the first board receives the data query statement, the data query function is called through the interface function; The board driver is further used to control the data query circuit to query the decompressed data when the transparent file system calls the data query function; The data query circuit is used to query the decompressed data under the control of the board driver to obtain target data; The transparent file system is further used to determine that when the first board obtains the target data, the data receiving and sending function is called through the interface function; The board driver is further used to control the first board to send the target data to the host memory when the transparent file system calls the data receiving and sending function.
6. The data transmission system according to claim 2, characterized in that: Also comprising a second board card, the second board card comprising a second board card memory, the second board card being connected to the auxiliary memory via a bus; The second board is used for storing the target write data in the memory of the second board based on the point-to-point technology in response to receiving the target write data sent by the host; The second board is further used for compressing the target write data to obtain target compressed data, and writing the target compressed data into the auxiliary memory.
7. The data transmission system according to claim 6, characterized in that: The transparent file system is further used for, in response to receiving a data write instruction sent by the virtual file system of the host, parsing the data write instruction to determine the type of the board card, and when determining that the type of the board card is the second board card, controlling the board card driver to send the target write data corresponding to the data write instruction through the interface function; The board driver is used to send the target write data to the second board under the control of the transparent file system.
8. The data transmission system according to claim 7, characterized in that: The board driver further includes a data receiving and sending function, and when the transparent file system controls the board driver to send the target write data corresponding to the data write instruction through the interface function, it is specifically used to: The data receiving and sending function is called through the interface function to control the board driver to obtain the target write data corresponding to the data write instruction from the host memory and send the target write data.
9. The data transmission system according to claim 7, characterized in that: The board driver also includes a data compression function; the second board also includes a compression circuit; The transparent file system is further configured to call the data compression function through the interface function when determining that the board type is the second board; The board driver is further used to control the compression circuit to compress the target write data when the transparent file system calls the data compression function; The compression circuit is used to compress the target write data under the control of the board driver to obtain the target compressed data.
10. The data transmission system according to claim 9, characterized in that: The second board also includes a second memory controller; The transparent file system is further used to call the data receiving and sending function through the interface function when the compression process is completed; The board driver is further used to obtain the occupied space size of the target compressed data when the transparent file system calls the data receiving and sending function; The transparent file system is further used to call the memory allocation function through the interface function when the occupied space size of the target compressed data is obtained; The board driver is further used for controlling the second memory controller to allocate a second memory space to the second board memory based on the occupied space size when the transparent file system calls the memory allocation function; The second board is specifically configured to allocate a second memory space to the memory of the second board based on the size of the occupied space by using a second memory controller.
11. The data transmission system according to claim 10, characterized in that: It also includes a data writing function; the transparent file system is also used to determine that the second board completes the second memory space allocation, and call the data writing function through the interface function; The board driver is further used for controlling the second board to write the target compressed data into the auxiliary memory when the transparent file system calls the data writing function; The second board is specifically configured to write the target compressed data into the auxiliary memory under the control of the board driver.
12. The data transmission system according to claim 5 or 9, characterized in that: The board driver also includes multiple types of interrupt functions; The transparent file system is further used to call the multi-type interrupt function through the interface function when calling any one of the processing functions; the any one of the processing functions is a data decompression function, a data query function or a data compression function; The board driver is also used to wait for and obtain an interrupt signal corresponding to any processing function when the transparent file system calls the multi-type interrupt function, and determine the end of any processing function based on the interrupt signal.
13. A data transmission method, characterized in that: include: In response to receiving a data query statement sent by the host, the compressed data is read from the auxiliary memory based on the point-to-point technology and stored in the first board memory; Decompressing the compressed data to obtain decompressed data; The decompressed data is queried and processed to obtain target data and send it to the host memory.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the data transmission method according to claim 13 when executed by a processor.
15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the data transmission method according to claim 13 are implemented.
Citation Information
Patent Citations
Data processing method, device, system and equipment of heterogeneous computing platform and medium
CN113704301A
Data transmission method and device, accelerator equipment, host and storage medium
CN117312201A
Heterogeneous acceleration system, method and device, computing equipment and storage medium
CN119537304A
Data query method, system and device, medium and program product
CN119885247A