Data decompression method, acceleration card, storage medium and program product

By introducing a decompression acceleration card into the computing system and adopting direct memory access data transmission operations, end-to-end transmission is realized, which solves the delay problem caused by the many transmission paths in the prior art, and improves the efficiency and speed of the compressed database.

CN119917474BActive Publication Date: 2025-07-18INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510389096.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-28
Publication Date
2025-07-18
Estimated Expiration
2045-03-28

AI Technical Summary

Technical Problem

In the prior art, the database to be decompressed requires two data transmissions initiated by the controller to reach the decompression card, which increases the transmission path and delay, resulting in a decrease in decompression efficiency.

Method used

By introducing a decompression acceleration card into the computing system, direct memory access data transmission operation is adopted to realize end-to-end data transmission method, reduce transmission paths, and directly send the decompression database to the decompression acceleration card from the disk to avoid redundant transmission.

Benefits of technology

The transmission delay is reduced, the data transmission efficiency and the acquisition speed of decompression database are improved. Especially in the case of compressed databases, the database capacity transmitted per unit time is larger, further improving the compression efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119917474B_ABST
    Figure CN119917474B_ABST
Patent Text Reader

Abstract

The present application discloses a data decompression method, an acceleration card, a storage medium, and a program product, relating to the technical field of data processing. It includes: First, the disk sends the database to be decompressed to the decompression acceleration card by using a direct memory access data transfer operation. Then, the decompression acceleration card realizes receiving the database to be decompressed in an end-to-end transfer manner and stores the database to be decompressed. The database to be decompressed in the present application is compressed by a compression acceleration card. It can be seen that the database to be decompressed in the present application is sent through a direct memory access data transfer operation, and the end-to-end transfer manner can be directly completed. Only one data transfer is experienced, and one transfer path is generated, and the database to be decompressed is transferred to the decompression acceleration card, reducing the transfer delay and improving the efficiency of obtaining the database to be decompressed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of data processing, and in particular to a data decompression method, an acceleration card, a storage medium, and a program product. Background Art

[0002] Currently, with the development of industries such as artificial intelligence, high-performance data analysis, communication transmission, and financial analysis, the computing requirements in computationally intensive fields have increased, which has made heterogeneous computing widely concerned in all walks of life.

[0003] In related technologies, a user initiates a decompression instruction based on a host, and a controller in a disk initiates data transmission to transmit a database to be decompressed to the host memory. Further, a controller in the host also initiates data transmission to transmit the database to be decompressed to a decompression card in a computing system, and the decompression card decompresses the database to be decompressed based on the decompression instruction to obtain a decompression result. In the above heterogeneous computing, the database to be decompressed needs to go through two data transmissions initiated by the controller to reach the decompression card. The two transmissions increase the transmission path, thereby increasing the transmission delay and reducing the efficiency of obtaining the database to be decompressed. Summary of the Invention

[0004] The present application provides a data decompression method, an acceleration card, a storage medium, and a program product to at least solve the problem in related technologies that data transmission increases the transmission path, thereby increasing the transmission delay and reducing the efficiency of obtaining the database to be decompressed.

[0005] The present application provides a data decompression method, which is applied to a decompression acceleration card in a computing system. The computing system further includes a central processing unit, a disk, and a compression acceleration card. The method includes:

[0006] Receiving and storing a database to be decompressed sent by the disk to implement an end-to-end transmission mode; the database to be decompressed is sent by the controller in the disk initiating a direct memory access data transmission operation after the disk receives a first decompression instruction sent by the central processing unit; the database to be decompressed is obtained by the compression acceleration card compressing a database to be compressed;

[0007] Decompressing the database to be decompressed to obtain a decompressed database.

[0008] The present application further provides a data decompression method, which is applied to a compression acceleration card in a computing system. The computing system further includes a central processing unit, a disk, and a decompression acceleration card. The method includes:

[0009] Receiving and storing a database to be compressed sent by the disk to implement an end-to-end transmission mode; the database to be compressed is sent by the controller in the disk initiating a direct memory access data transmission operation after the disk receives a first compression instruction sent by the central processing unit;

[0010] Compress the database to be compressed to obtain a compressed database;

[0011] Send the compressed database to the disk through a direct memory access data transfer operation, so that the disk stores at least one compressed database and provides a database to be decompressed for the decompression acceleration card, so that the decompression acceleration card performs decompression based on the database to be decompressed; the database to be decompressed is derived from at least one compressed database; the database to be decompressed is sent to the decompression acceleration card by the controller in the disk initiating a direct memory access data transfer operation after the disk receives the first decompression instruction sent by the central processing unit.

[0012] This application also provides an acceleration card, including: a memory for storing a computer program; a processor for implementing the steps of any of the above data decompression methods when executing the computer program.

[0013] This application also provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the above data decompression methods are implemented.

[0014] This application also provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of any of the above data decompression methods are implemented.

[0015] Through a data decompression method, an acceleration card, a storage medium, and a program product provided by this application, the data decompression method in this application is applied to a decompression acceleration card in a computing system. In the computing system, there is also a central processing unit and a disk. First, the disk receives the first decompression instruction sent by the central processing unit, so that the disk sends the database to be decompressed to the decompression acceleration card through a direct memory access data transfer operation. Furthermore, the decompression acceleration card receives the database to be decompressed sent by the disk in an end-to-end transmission manner, and then stores the database to be decompressed. It can be seen that compared with the related technology in which the host needs to obtain the database to be decompressed from the disk, then store it in its own memory, and then send the database to be decompressed to the decompression card, the database to be decompressed in this application does not need to experience two data transmissions (that is, generate two transmission paths), but directly completes the end-to-end transmission method through direct memory access, and only needs to experience one data transmission (that is, generate one transmission path) to transmit the database to be decompressed to the decompression acceleration card. Therefore, the transmission delay is reduced and the efficiency of obtaining the database to be decompressed is improved. In addition, in this embodiment, the database to be decompressed is a compressed database. When the compressed database to be decompressed is transmitted, at the same communication speed and communication distance, the capacity of the database to be decompressed obtained per unit time is larger. Therefore, the transmission efficiency is further improved, and further decompressing the database to be decompressed can improve the efficiency of obtaining the database to be decompressed. Description of the Drawings

[0016] To more clearly illustrate the embodiments of the present application, the accompanying drawings required for the embodiments will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.

[0017] Figure 1 It is a scenario application diagram of a data decompression method provided by the present application;

[0018] Figure 2 It is a schematic flow diagram of a data decompression method provided by an embodiment of the present application;

[0019] Figure 3 It is a schematic flow diagram of a data decompression method provided by an embodiment of the present application;

[0020] Figure 4 It is a schematic diagram of the overall computing system provided by an embodiment of the present application;

[0021] Figure 5 It is a schematic diagram of the structure of a compression acceleration card provided by an embodiment of the present application;

[0022] Figure 6 It is a schematic diagram of the structure of a decompression acceleration card provided by an embodiment of the present application;

[0023] Figure 7 It is a schematic diagram of the structure of a data decompression device provided by an embodiment of the present application;

[0024] Figure 8 It is a schematic diagram of the structure of another data decompression device provided by an embodiment of the present application;

[0025] Figure 9 It is a schematic diagram of the structure of an acceleration card provided by the present application. Detailed implementation manners

[0026] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only some embodiments of the present application, rather than all 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.

[0027] It should be noted that in the description of this application, the terms "include", "comprise" or any other variant thereof are intended to cover 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 also includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0028] In the related art, the user initiates an extraction instruction based on the host, sends the extraction instruction to the disk, and then the controller in the disk initiates data transmission to transfer the database to be extracted to the host memory via the central processing unit. Further, the controller in the host initiates data transmission again to transfer the database to be extracted to the extraction card in the computing system. The extraction card extracts the database to be extracted based on the extraction instruction and performs a query after extraction to obtain the data that meets the query requirements to obtain the query result. In the above heterogeneous computing, the database to be extracted needs to go through two data transmissions initiated by the controller to reach the extraction card, that is, the database to be extracted needs to be moved twice. The two transmissions increase the transmission path, thereby increasing the transmission delay and reducing the efficiency of obtaining the database to be extracted. Therefore, in the related art, after the user initiates the extraction instruction, the extraction card needs a certain delay to obtain the database to be extracted.

[0029] To solve the problem in the related art that the database to be extracted needs to go through two transmission paths, thereby increasing the transmission delay and reducing the efficiency of the extraction card in obtaining the database to be extracted, the execution entity extraction acceleration card in this solution receives and stores the compressed database to be extracted sent by the disk, implementing an end-to-end transmission method. Furthermore, the database to be extracted only needs to go through one transmission path to be directly sent to the extraction acceleration card without a redundant transmission path. Therefore, the database to be extracted is sent to the extraction acceleration card faster, thereby improving the data transmission efficiency and enabling the extraction acceleration card to obtain the database to be extracted faster. In this solution, the disk initiates a direct memory access data transmission operation to send the database to be extracted to the extraction acceleration card, so an end-to-end transmission method is implemented, and thus one transmission path is achieved, reducing the transmission delay. In addition, the extraction acceleration card can obtain the database to be extracted faster, improving the efficiency of obtaining the database to be extracted. Therefore, compared with the extraction card in the related art, this solution achieves acceleration, so it is an extraction acceleration card.

[0030] To enable those skilled in the art of this technology to better understand the solution of this application, the following further elaborates on this application in conjunction with the accompanying drawings and specific implementation manners.

[0031] In combination with the specific application environment architecture or specific hardware architecture on which the execution of the data decompression method depends, the specific application environment architecture or specific hardware architecture is described herein.

[0032] Figure 1 This is a scenario application diagram of a data decompression method provided by this application. As Figure 1 shown, it includes: host 101, disk 102, and decompression acceleration card 103.

[0033] Among them, the host 101 can be a device such as a computer or a mobile phone, and there is no restriction here.

[0034] Among them, the host 101 includes a central processing unit and a host memory. The central processing unit is a management device in the computing system, coordinating the data processing of the computing system.

[0035] Among them, the decompression acceleration card 103 can be a Field Programmable Gate Array (FPGA) board, and this acceleration card can realize the decompression and query of the database to be decompressed.

[0036] In this scenario, the user initiates a decompression command through the host 101, and the host 101 generates a first decompression instruction and a second decompression instruction.

[0037] Further, the host 101 sends the first decompression instruction to the disk 102, so that the disk 102 sends the database to be decompressed to the decompression acceleration card 103 through a direct memory access data transfer operation. At the same time, the host 101 sends the second decompression instruction to the decompression acceleration card 103, and then the decompression acceleration card 103 receives the second decompression instruction. Among them, the database to be decompressed is a compressed database.

[0038] Further, the decompression acceleration card 103 receives the database to be decompressed and stores it.

[0039] Further, the decompression acceleration card 103 decompresses the database to be decompressed based on the second decompression instruction to obtain a decompressed database, and then queries the decompressed database to obtain a query result.

[0040] Further, the decompression acceleration card 103 sends the query result to the host 101.

[0041] In this application, after the host 101 generates a decompression instruction, the decompression acceleration card can receive the database to be decompressed sent by the disk in an end-to-end transmission mode, so as to directly obtain the database to be decompressed from the disk, thereby reducing the transmission path, and thus reducing the transmission delay; in this solution, the controller in the disk initiates a direct memory access data transfer operation, so that the decompression acceleration card obtains the database to be decompressed through a transmission path, realizing acceleration and improving the efficiency of obtaining the decompressed database.

[0042] In this application, the hardware modules in the compression acceleration card (such as the second interface, the second converter, the compression module, and the second memory) can be used to compress the database to be compressed. The hardware modules in the decompression acceleration card (such as the first interface, the first converter, the decompression module, the interface conversion module, the query module, and the first memory) can be used to decompress and query the database to be decompressed. This application provides a hardware implementation method for data decompression and query.

[0043] The following are the embodiments of this application. The execution subject of the following embodiments is the decompression acceleration card in the computing system. The computing system further includes a central processing unit, a disk, and a compression acceleration card. The computing system of this application can be a heterogeneous computing system.

[0044] Figure 2 It is a schematic flow chart of a data decompression method provided by an embodiment of this application. As Figure 2 shown, it specifically includes:

[0045] S201: Receive and store the database to be decompressed sent by the disk to implement the end-to-end transmission mode; the database to be decompressed is sent after the controller in the disk initiates a direct memory access data transmission operation after receiving the first decompression instruction sent by the central processing unit; the database to be decompressed is obtained by the compression acceleration card compressing the database to be compressed.

[0046] Among them, the end-to-end transmission mode (Peer to Peer, abbreviated as P2P) is a technology for two communication ends to directly transmit data.

[0047] Among them, the database to be decompressed refers to the database from which decompression will be performed.

[0048] Among them, direct memory access (Direct Memory Access, abbreviated as DMA) is a computer technology that supports direct data transmission between boards, devices, and systems, which can reduce the transmission path and reduce latency.

[0049] Among them, the compression acceleration card is located in the computing system and is used to compress data. Specifically, the compression acceleration card compresses at least one sub-database to be compressed to obtain a compressed database.

[0050] Among them, after the sub-database to be compressed is compressed, the compressed database can be obtained, and the obtained compressed database is sent to the disk through a direct memory access data transmission operation to implement the end-to-end transmission mode. Therefore, the disk can include at least one compressed database. In this application, the database to be decompressed is one or more of the compressed databases.

[0051] Among them, the database to be decompressed can be text, video, or image, and there is no limitation here.

[0052] Among them, a controller is deployed on the disk. The controller can initiate a direct memory access data transfer operation, so that the database to be decompressed on the disk is directly sent to the decompression acceleration card, and thus the decompression acceleration card receives the database to be decompressed in an end-to-end transmission mode.

[0053] Among them, the decompression acceleration card and the compression acceleration card in this application can be FPGA boards.

[0054] In one way, after the compression acceleration card compresses the database to be compressed, a compressed database is obtained. If the compressed database is the database to be decompressed and at this time the decompression acceleration card is receiving a query for the database to be decompressed, the compression acceleration card can use its own controller to initiate a direct memory access data transfer operation, so as to directly send the database to be decompressed to the decompression acceleration card in an end-to-end transmission mode, and thus the decompression acceleration card receives the database to be decompressed.

[0055] Among them, the first decompression instruction includes the identifier of the database to be decompressed and the disk storage location information of the database to be decompressed. Among them, the disk storage location information of the database to be decompressed is the location information where the database to be decompressed is stored on the disk. Among them, the disk storage location information represents the disk storage address where the database to be decompressed is located.

[0056] Specifically, the disk receives the first decompression instruction sent by the central processing unit, locates the disk storage address where the database to be decompressed is located, and sends the database to be decompressed to the decompression acceleration card from the disk storage address through a direct memory access data transfer operation.

[0057] S202, decompress the database to be decompressed to obtain a decompressed database.

[0058] Among them, the decompressed database refers to the database after decompression.

[0059] In one way, the decompression acceleration card can include a decompression module, and the above-mentioned one decompression module is used to decompress the database to be decompressed, so as to obtain a decompressed database.

[0060] In another way, the decompression acceleration card can include multiple decompression modules, and the above-mentioned multiple decompression modules are used to decompress the database to be decompressed, so as to obtain a decompressed database.

[0061] It should be noted that after obtaining the decompressed database, if the second decompression instruction includes a query instruction (that is, includes a query target), the decompressed database is queried to obtain a query result.

[0062] In one way, the decompression acceleration card queries the decompression database based on a second decompression instruction to obtain a query result.

[0063] Among them, the second decompression instruction can be used to stimulate the decompression acceleration card to execute the decompression task. Among them, the second decompression instruction includes the target to be queried, the query database identifier, the decompression information, storage information, and parameters required for decompression database conversion information (such as the capacity of the database to be decompressed, etc.) of the database to be decompressed, as well as other relevant information, which is not limited here.

[0064] In addition, for the case where the second decompression instruction includes a query instruction, when the user's ultimate goal is to query, in this embodiment, since the database to be decompressed is a compressed database, when the compressed database to be decompressed is transmitted, at the same communication speed and communication distance, the capacity of the database to be decompressed obtained per unit time is larger, so the transmission efficiency is further improved. Furthermore, decompressing the database to be decompressed can improve the efficiency of obtaining the database to be decompressed, and at the same time can also improve the efficiency of obtaining the query result. This embodiment provides a data decompression method. The data decompression method in this embodiment is applied to the decompression acceleration card in the computing system. In the computing system, there is also a central processing unit and a disk. First, the disk receives the first decompression instruction sent by the central processing unit. As a result, the disk sends the database to be decompressed to the decompression acceleration card through a direct memory access data transfer operation. Furthermore, the decompression acceleration card receives the database to be decompressed sent by the disk in an end-to-end transfer mode, and then stores the database to be decompressed. It can be seen that compared with the related technology in which the host needs to obtain the database to be decompressed from the disk, then store it in its own memory, and then send the database to be decompressed to the decompression card, in this application, the database to be decompressed does not need to experience two data transfers (that is, generate two transfer paths), but directly completes the end-to-end transfer mode through direct memory access, and only needs to experience one data transfer (that is, generate one transfer path) to transfer the database to be decompressed to the decompression acceleration card. Therefore, the transmission delay is reduced, and the efficiency of obtaining the database to be decompressed is improved.

[0065] In the above further refinement, in this embodiment, the database to be decompressed includes at least one sub-database to be decompressed; the decompression acceleration card also includes a first memory.

[0066] This embodiment is an optional way to receive and store the database to be decompressed sent by the disk to implement the end-to-end transfer mode, specifically including:

[0067] Step 1: Receive the database to be decompressed to implement the end-to-end transfer mode, and receive the second decompression instruction sent by the central processing unit; the second decompression instruction includes storage information; the storage information includes the storage address information of at least one sub-database to be decompressed in the first memory.

[0068] Among them, the stored information refers to the storage address information of the database to be decompressed stored in the first memory. Among them, the database to be decompressed includes at least one sub-database to be decompressed. Therefore, the stored information includes the storage address information of at least one sub-database to be decompressed stored in the first memory.

[0069] Step 2: Use the first memory to store at least one sub-database to be decompressed at the corresponding storage address in the first memory according to the storage address information.

[0070] Furthermore, the decompression acceleration card stores at least one sub-database to be decompressed at the corresponding storage address in the first memory according to the corresponding storage address information.

[0071] This embodiment provides a data decompression method. In this embodiment, for each sub-database to be decompressed, according to its corresponding storage address information, it is stored at the corresponding storage address in the first memory, so as to make the storage orderly and organized.

[0072] In the above further refinement, the decompression acceleration card in this embodiment further includes a decompression converter and at least one decompression module.

[0073] This embodiment is an optional method before decompressing the database to be decompressed to obtain the decompressed database, which specifically includes:

[0074] Step 1: Use the decompression converter to receive the decompression information in the second decompression instruction sent by the central processing unit; the decompression information includes the path information of each sub-database to be decompressed and the corresponding target decompression module identifier; the target decompression module identifier is the decompression module identifier for decompressing the corresponding sub-database to be decompressed.

[0075] Among them, the decompression converter is a one-to-many conversion interface used in the decompression acceleration card.

[0076] It should be noted that if the database to be decompressed includes two sub-databases to be decompressed, namely the first sub-database to be decompressed and the second sub-database to be decompressed, the decompression information includes the path information of the first sub-database to be decompressed (assumed to be the first path information) and the corresponding target decompression module identifier (assumed to be the first target decompression module identifier), as well as the path information of the second sub-database to be decompressed (assumed to be the second path information) and the corresponding target decompression module identifier (assumed to be the second target decompression module identifier).

[0077] Among them, the first target decompression module identifier corresponds to the first target decompression module, and the first target decompression module is the decompression module for decompressing the first sub-database to be decompressed.

[0078] Step 2: For any path information, use the decompression converter to send the path information to the target decompression module identified by the corresponding target decompression module identifier, and use the target decompression module to obtain the corresponding sub-database to be decompressed from the first memory based on the corresponding path information; the path information includes the identifier of the sub-database to be decompressed and the storage address information corresponding to the sub-database to be decompressed.

[0079] According to the above example, taking the first path information as an example, the first path information includes the identifier of the first sub-database to be decompressed and the first storage address information corresponding to the first sub-database to be decompressed.

[0080] Among them, the corresponding sub-database to be decompressed is stored at the storage address corresponding to the storage address information, that is, the first sub-database to be decompressed is stored at the first storage address corresponding to the first storage address information, and the storage address information and the storage address are in the first memory.

[0081] According to the above example, taking the first path information as an example, the decompression converter sends the first path information to the first target decompression module corresponding to the first target decompression module identifier, and continues to use the first target decompression module to obtain the first sub-database to be decompressed from the first storage address in the first memory based on the first path information. Among them, the first storage address is the storage address corresponding to the first storage address information. Similarly, for the second path information, the decompression converter uses the same method to obtain the corresponding sub-database to be decompressed.

[0082] This embodiment provides a data decompression method. In this embodiment, the decompression converter can send the path information to at least one target decompression module according to the decompression information, so that at least one target decompression module can obtain the corresponding sub-database to be decompressed from the first memory based on the corresponding path information. Therefore, the decompression converter realizes one-to-many; in addition, each target decompression module can respectively obtain its corresponding sub-database to be decompressed, which is convenient for decompression. In this embodiment, the decompression acceleration includes at least one decompression module, and at least one of the decompression modules includes a target decompression module, and the number of target decompression modules is less than or equal to the number of decompression modules, so that each target decompression module can execute its own decompression task respectively, and all decompression tasks can be completed faster.

[0083] In the above further refinement, this embodiment is an optional way for the target decompression module to obtain the corresponding sub-database to be decompressed from the first memory based on the corresponding path information, which specifically includes:

[0084] Step 1: Use the target decompression module to locate the corresponding storage address from the first memory based on the corresponding storage address information.

[0085] Step 2: Obtain the sub-database to be decompressed corresponding to the sub-database identifier to be decompressed from the storage address; the decompression performance of the target decompression module meets the decompression requirements of the sub-database to be decompressed.

[0086] Among them, in this application, the decompression module includes at least one decompression module, and the decompression performance of each decompression module can meet the decompression requirements of the corresponding sub-database to be decompressed.

[0087] In the above further refinement, this embodiment is an optional method for decompressing the database to be decompressed to obtain the decompressed database, which specifically includes:

[0088] Use each target decompression module to decompress its respective sub-database to be decompressed in parallel to obtain each decompressed sub-database respectively; the target decompression module is the decompression module for decompressing the corresponding sub-database to be decompressed.

[0089] According to the above example, a total of two target decompression modules are required in this decompression task, namely the first target decompression module and the second target decompression module. The above two target decompression modules can decompress their respective sub-databases to be decompressed in parallel to obtain the corresponding decompressed sub-databases respectively, which are assumed to be the first decompressed sub-database and the second decompressed sub-database in sequence.

[0090] This embodiment provides a data decompression method. In this embodiment, each target decompression module can decompress its respective sub-database to be decompressed in parallel. Due to parallel decompression, all decompression tasks can be completed faster, thus improving the decompression efficiency.

[0091] In the above further refinement, the decompression acceleration card in this embodiment further includes an interface conversion module and at least one query module.

[0092] Among them, the query module is a module for querying the decompressed sub-database to query the data that meets the query target.

[0093] This embodiment is an optional method after using each target decompression module to decompress its respective sub-database to be decompressed in parallel to obtain each decompressed sub-database respectively, which specifically includes:

[0094] Step 1: Use each target decompression module to directly send the corresponding decompressed sub-database to the interface conversion module bypassing the first memory.

[0095] Among them, the interface conversion module is an interface for performing one-to-many or many-to-one conversion when querying the decompressed sub-database.

[0096] Step 2: Use the interface conversion module to send the corresponding decompressed sub-database to the corresponding query module according to the conversion information; the conversion information includes the linking method of each decompressed sub-database and the query module identifier corresponding to each decompressed sub-database; the conversion information is determined by the interface conversion module.

[0097] Among them, the interface conversion module includes the linking method of the decompressed sub-database, and this linking method can be determined based on the throughput of the decompression module and the throughput of the query module. When the throughput of the decompression module is greater than the throughput of a target query module, the interface conversion module determines that the decompressed sub-database output by this decompression module needs to be segmented to generate at least one segmented sub-database, and determines the corresponding first query module for each segmented sub-database, and generates the corresponding conversion information based on each segmented sub-database and the corresponding first query module identifier. In this conversion information, the linking method of the decompressed sub-database output by this decompression module is one-to-many, and the first query module identifier corresponding to each segmented sub-database obtained after segmentation of this decompressed sub-database. Among them, the first query module includes the above-mentioned target query module.

[0098] Among them, the linking method of the decompressed sub-database includes one-to-many or many-to-one.

[0099] Step 3: Use the query module to query the corresponding decompressed sub-database to obtain a query result.

[0100] Among them, the query result refers to the result obtained by querying from the decompressed sub-database that meets the query instruction in the second decompression instruction.

[0101] Exemplarily, assuming that the first query module corresponds to the first decompressed sub-database, then the first query module queries the first decompressed sub-database to obtain the first query result.

[0102] Step 4: Send the query result to the central processing unit. This embodiment provides a data decompression method. In this embodiment, each target decompression module directly sends the corresponding decompressed sub-database to the interface conversion module bypassing the first memory. In the related art, the decompressed sub-database is saved in the first memory, and then the query module obtains the decompressed sub-database from the first memory for querying. Therefore, in this embodiment, bypassing the first memory and directly sending the decompressed sub-database to the corresponding query module without the need for transfer reduces the data transmission delay.

[0103] In the above further refinement, the optional manner in which this embodiment uses the interface conversion module to send the corresponding decompressed sub-database to the corresponding query module according to the conversion information includes:

[0104] Method 1: If the link mode of the first decompression sub-database is one-to-many, the interface conversion module segments the first decompression sub-database according to the conversion information and sends each segmented sub-database to multiple first query modules correspondingly; the first query module is the query module corresponding to the query module identifier of the first decompression sub-database in the conversion information; the first decompression sub-database is any one of the decompression sub-databases.

[0105] It should be noted that the number of segments for segmenting the first decompression sub-database can be included in the conversion information. For example, the first decompression sub-database can be segmented into two or three segments, and there is no limitation here.

[0106] Among them, the one-to-many situation is specifically as follows: The interface conversion module determines that the throughput of the decompression module corresponding to the first decompression sub-database is greater than the throughput of a target query module, or the capacity of the decompression sub-database (i.e., the first decompression sub-database) corresponding to this decompression module is greater than the capacity that the above target query module can handle. Thus, the link mode of this decompression sub-database is one-to-many. The interface conversion module generates conversion information, segments this decompression sub-database according to the conversion information, and then uses the interface conversion module to send each segmented sub-database to the corresponding first query module; among them, the first query module includes the above target query module.

[0107] Among them, the first decompression sub-database is any one of the decompression sub-databases, and the first decompression sub-database is obtained by decompressing with the first decompression module.

[0108] Among them, there are multiple first query modules, and each first query module corresponds to a segmented sub-database.

[0109] Method 2: If the link mode of the first decompression sub-database is many-to-one, the interface conversion module sends the first decompression sub-database and the decompression sub-databases bound in the conversion information to the corresponding second query module together; the second query module is the query module corresponding to the query module identifier of the first decompression sub-database and its bound decompression sub-databases in the conversion information.

[0110] Among them, the many-to-one situation is specifically as follows: The interface conversion module determines that the throughput of the decompression module is less than the throughput of a target query module, or the capacity of the decompression sub-database (i.e., the first decompression sub-database) corresponding to this decompression module is less than the capacity that the above target query module can handle. Based on the above description, conversion information is generated for the first decompression sub-database, and the decompression sub-databases bound to the first decompression sub-database (assumed to be decompression sub-database A and decompression sub-database B) are included in the conversion information. Then, the interface conversion module sends the first decompression sub-database, decompression sub-database A, and decompression sub-database B to the second query module together, where the second query module is the above target query module.

[0111] Among them, there is one second query module.

[0112] Among them, the second query module can satisfy the query processing of the first decompression sub-database and the decompression sub-database bound in the conversion information. Therefore, the second query module queries the first decompression sub-database and the decompression sub-database bound in the conversion information within the scope of its query processing ability, thus reflecting resource balance and avoiding the situation in the related art where the query module executes queries beyond its query processing ability.

[0113] In this application, each query module satisfies the corresponding query processing when processing its respective sub-database.

[0114] This embodiment further includes:

[0115] Each first query module and / or each second query module queries the corresponding decompression sub-database in parallel, and the query module performing the query is the working status query module.

[0116] Among them, the working status query module refers to the query module performing the query work.

[0117] It should be noted that the interface conversion module includes a conversion controller. Among them, the conversion controller can be connected through the AXI4_Lite line, and the parameters of the conversion controller are configured and issued by the host. Among them, the parameters include conversion information, the number of query modules, etc., which are not limited here.

[0118] This embodiment provides a data decompression method. In this embodiment, according to the linking method of the decompression sub-database, the interface conversion module sends the first decompression sub-database to the first query module or the second query module according to the conversion information, thus realizing a one-to-many or many-to-one conversion method, and then facilitating the query module to query the corresponding decompression sub-database within its own query ability. In this embodiment, dynamic conversion can be realized according to different linking methods. Compared with the traditional one-to-one conversion method in the related art, in this embodiment, different conversion methods are used according to different linking methods; and for each conversion task, the conversion method is not fixed, but the conversion method is flexibly distinguished according to the capacity of each database to be decompressed, thus reflecting dynamic conversion.

[0119] In the above further refinement, the decompression acceleration card in this embodiment further includes: an interrupt counting module.

[0120] This embodiment is an optional way of using the query module to query the corresponding decompression sub-database to obtain the query result, specifically including:

[0121] Step 1: Each working status query module queries in its respective sub-database in parallel based on the received query target to obtain corresponding query sub-results, where the query sub-results are data that meet the query target; the second decompression instruction includes the query target; the working status query module is the query module for querying; the sub-database includes the first decompression sub-database and its bound decompression sub-database, or any sub-segmented sub-database after segmentation of the corresponding first decompression sub-database.

[0122] Among them, the query target refers to the query requirement. For example, the query target is to query all cat images in the database to be decompressed.

[0123] Among them, their respective sub-databases are the sub-databases used for querying, which may include the first decompression sub-database and its bound decompression sub-database, as well as any sub-segmented sub-database after segmentation of the first decompression sub-database.

[0124] According to the above example, assume that the first target decompression module decompresses the first sub-database to be decompressed to obtain decompression sub-database A; the second target decompression module decompresses the second sub-database to be decompressed to obtain decompression sub-database B.

[0125] Method 1: Assume that the conversion information of decompression sub-database A is that the linking method of decompression sub-database A is many-to-one, and its bound decompression sub-database is decompression sub-database B. The interface conversion module is used to send decompression sub-database A and decompression sub-database B to the second query module. Then, the second query module queries in its respective sub-databases. Among them, their respective sub-databases include decompression sub-database A and decompression sub-database B. Among them, decompression sub-database A is the first decompression sub-database, and decompression sub-database B is the decompression sub-database bound to the first decompression sub-database.

[0126] Method 2: Assume that the conversion information of decompression sub-database A is that the linking method of decompression sub-database A is one-to-many. Decompression sub-database A is segmented. Assume the segmentation is into segmented sub-database A and segmented sub-database B. The interface conversion module is used to send segmented sub-database A and segmented sub-database B to multiple first query modules. Specifically, segmented sub-database A is sent to first query module A, and segmented sub-database B is sent to first query module B. Among them, first query module A queries in its respective sub-database, where its respective sub-database is segmented sub-database A; first query module B queries in its respective sub-database, where its respective sub-database is segmented sub-database B.

[0127] In this method, the linking method of the decompression sub-database B can be one-to-one. According to the query module identifier corresponding to the decompression sub-database B in the conversion information, the interface conversion module can be used to send the decompression sub-database B to the query module corresponding to the query module identifier, which is assumed to be the first query module C. The first query module C queries its respective sub-database, where the respective sub-database is the decompression sub-database B.

[0128] According to the description in the above method 2, the first query module A, the first query module B, and the first query module C perform queries, which are the working status query modules. At this time, each working status query module queries its corresponding query database in parallel based on the query target, and respectively obtains corresponding query sub-results, which are assumed to be the first query sub-result, the second query sub-result, and the third query sub-result.

[0129] Step 2: Each working status query module is used to send the corresponding query sub-result to the first memory. If the interrupt counting module is used to generate the total interrupt signal, the first memory obtains the query result; the query result includes at least one query sub-result.

[0130] Specifically, the second decompression instruction also includes the storage identifier after query, which is the identifier of the storage address after query corresponding to the query sub-result.

[0131] Among them, the decompression converter is used to send the corresponding storage identifier after query in the second decompression instruction to the corresponding first query module and / or the second query module, and then each query module sends the query sub-result to the storage address corresponding to the storage identifier of the first memory.

[0132] It should be noted that when the first query module A receives the corresponding storage identifier after query, it sends the first query sub-result to the storage address corresponding to the storage identifier after query in the first memory, and uses the interrupt counting module to generate the total interrupt signal, then all query sub-results are obtained, that is, the query result is obtained.

[0133] It should be noted that the decompression sub-database is transmitted to the interface conversion module through the AXI_Stream line, and then the interrupt sub-signal is transmitted to the interrupt counting module through the signal line. In this application, using the AXI_Stream line can achieve faster data transmission. Among them, the signal line can be a common line, or other available lines, which are not limited here.

[0134] This embodiment provides a data decompression method. In this embodiment, each working status query module queries in its respective sub-database in parallel. Since it is parallel processing, the speed of data query is further improved, which is better than the method of querying the decompression sub-database one by one, so the query efficiency is improved.

[0135] In the above further refinement, this embodiment is an alternative way to generate the total interrupt signal using the interrupt counting module, specifically including:

[0136] Step 1: After obtaining the corresponding query sub-results for each working state query module, use the working state query module to generate an interrupt sub-signal and send it to the interrupt counting module.

[0137] Among them, the interrupt counting module is a module used to count the interrupt sub-signals, and a counter is included in the interrupt counting module.

[0138] Among them, the interrupt sub-signal is an interrupt signal generated after the working state query module obtains the corresponding query sub-results, that is, it represents that the corresponding working state query module has interrupted the query.

[0139] Step 2: Use the interrupt counting module to generate the total interrupt signal based on the interrupt sub-signal.

[0140] It should be noted that when all working state query modules generate interrupt sub-signals and send them to the interrupt counting module, the counter in the interrupt counting module counts, and then the interrupt counting module generates the total interrupt signal.

[0141] In the above further refinement, this embodiment is an alternative way before using the interrupt counting module to generate the total interrupt signal, specifically including:

[0142] Use the interrupt counting module to calculate the number of queries; the number of queries is calculated based on the capacity of the database to be decompressed, the number of query modules, and the throughput corresponding to the query modules. Among them, the capacity of the database to be decompressed and the throughput corresponding to the query modules can be included in the second decompression instruction and sent to the interrupt counting module through the decompression converter.

[0143] Among them, the capacity of the database to be decompressed can be represented by DATA total The number of query modules can be represented by IP num The throughput corresponding to the query module can be represented by IP Throughput .

[0144] Among them, first the interrupt counting module calculates the number of query modules, that is, IP num =T rate / IP Throughput , where T rate represents the data transfer speed, that is, the throughput corresponding to the query module.

[0145] Among them, the number of queries is represented by Count num As shown in (1), calculate the number of queries:

[0146] (1)

[0147] Among them, % represents finding the remainder.

[0148] This embodiment is an alternative way of using an interrupt counting module to generate a total interrupt signal based on interrupt sub-signals, specifically including:

[0149] Use the interrupt counting module to calculate the number of received interrupt sub-signals, and generate a total interrupt signal when the number of interrupt sub-signals is equal to the number of queries.

[0150] Exemplarily, according to the description of the embodiment, assuming the number of queries is three, after the first query module A obtains the first query sub-result, it generates the first interrupt sub-signal. Similarly, after the remaining first query modules successively obtain the corresponding query sub-results, they generate the corresponding interrupt sub-signals. Further, the interrupt counting module receives each interrupt sub-signal, and when the number of interrupt sub-signals is equal to the number of queries (three times), it generates a total interrupt signal.

[0151] In the above further refinement, this embodiment includes:

[0152] Use the interrupt counting module to send the total interrupt signal to the central processing unit through the Peripheral Component Interconnect Express (PCIe). The total interrupt signal is used to prompt the central processing unit that the database to be decompressed has completed the query, and the total interrupt signal is also used to prompt the central processing unit that the decompression acceleration card is ready for the next decompression task and ready to query the decompression database for the next decompression task.

[0153] Among them, the Peripheral Component Interconnect Express is abbreviated as PCIe, and its full name is Peripheral Component Interconnect Express. Among them, PCIe can improve the data transmission speed.

[0154] Specifically, inside the decompression acceleration card, the interrupt counting module transmits the total interrupt signal through the signal line, and the decompression acceleration card uses the PCIe line for external transmission.

[0155] It should be noted that in this embodiment, when the interrupt counting module receives an interrupt sub-signal, it will not immediately feedback to the central processing unit to prompt the central processing unit that the query module corresponding to the interrupt sub-signal has switched from the working state to the idle state. Instead, when each working state module has obtained the corresponding query sub-result and sent the corresponding interrupt sub-signal to the interrupt counting module, the interrupt counting module generates a total interrupt signal when the number of interrupt sub-signals is equal to the number of queries, and then sends it to the central processing unit through the high-speed serial computer extended bus. Therefore, it can prompt the central processing unit that the query of the database to be decompressed has been completed, and is also used to prompt the central processing unit that the decompression acceleration card is ready for the next decompression task. Therefore, the cumbersome process of feeding back to the central processing unit every time an interrupt sub-signal is generated is omitted, and only one total interrupt signal needs to be fed back to the central processing unit, improving the experience. In addition, the number of queries in this embodiment is not fixed, but is calculated by the interrupt counting module based on the capacity of the database to be decompressed, the number of query modules, and the throughput corresponding to the query modules. Therefore, the number of queries is flexible and dynamically changing, so it is more suitable for the database to be decompressed, can improve the query efficiency, and enhance the user experience; and using the interrupt counting module to calculate the number of queries can relieve the computing pressure of the host.

[0156] The following is an embodiment of the present application, and the execution entity is a compression acceleration card. The computing system further includes a compression acceleration card, a central processing unit, a disk, and a decompression acceleration card.

[0157] Figure 3 It is a schematic flowchart of a data decompression method provided by an embodiment of the present application. As Figure 3 shown, it specifically includes:

[0158] S301, receiving and storing the database to be compressed sent by the disk to implement an end-to-end transmission mode; the database to be compressed is sent after the disk receives the first compression instruction sent by the central processing unit and the controller in the disk initiates a direct memory access data transmission operation.

[0159] S302, compressing the database to be compressed to obtain a compressed database.

[0160] S303, sending the compressed database to the disk through a direct memory access data transmission operation, so that the disk stores at least one compressed database and provides the database to be decompressed for the decompression acceleration card, so that the decompression acceleration card decompresses based on the database to be decompressed; the database to be decompressed is derived from at least one compressed database; the database to be decompressed is sent to the decompression acceleration card after the disk receives the first decompression instruction sent by the central processing unit and the controller in the disk initiates a direct memory access data transmission operation.

[0161] Among them, in this embodiment, the compression acceleration card further includes a second memory.

[0162] In this embodiment, it includes receiving and storing the database to be compressed sent by the disk to implement an end-to-end transmission method, specifically as follows:

[0163] Receive the database to be compressed to implement the end-to-end transmission method, and receive the second decompression instruction sent by the central processing unit; the second compression instruction includes the compression storage address information of at least one sub-database to be compressed in the second memory among the databases to be compressed.

[0164] Use the second memory to store at least one sub-database to be compressed to the corresponding compression storage address in the second memory respectively according to the compression storage address information.

[0165] Among them, in this embodiment: the compression acceleration card further includes at least one compression module.

[0166] Before compressing the database to be compressed in this embodiment to obtain the compressed database, it includes:

[0167] Use the compression converter to receive the configuration information in the second compression instruction sent by the central processing unit; the configuration information includes the compression information of each sub-database to be compressed and the corresponding target compression module identifier; the target compression module identifier is the compression module identifier for compressing the corresponding sub-database to be compressed.

[0168] For any compression information, use the compression converter to send the compression information to the target compression module with the corresponding target compression module identifier, and use the target compression module to obtain the corresponding sub-database to be compressed from the second memory based on the corresponding compression information; the compression information includes the identifier of the sub-database to be compressed and the compression storage address information corresponding to the sub-database to be compressed.

[0169] Among them, the compression converter is a one-to-many conversion interface used in the compression acceleration card.

[0170] This embodiment includes an optional method for using the target compression module to obtain the corresponding sub-database to be compressed from the second memory based on the corresponding compression information, specifically as follows:

[0171] Use the target compression module to locate the corresponding compression storage address in the second memory based on the corresponding compression storage address information.

[0172] Obtain the sub-database to be compressed corresponding to the identifier of the sub-database to be compressed from the compression storage address; the compression performance of the target compression module meets the compression requirements of the sub-database to be compressed.

[0173] This embodiment includes an optional method for compressing the database to be compressed to obtain the compressed database, specifically as follows:

[0174] Each target compression module compresses its respective sub-database to be compressed in parallel to obtain respective compressed sub-databases separately.

[0175] In this embodiment, the compression acceleration card further includes an interrupt counting module.

[0176] In this embodiment, an optional method before sending the compressed database to the disk includes:

[0177] After each target compression module obtains its respective compressed sub-database, the target compression module generates an interrupt sub-signal and sends it to the interrupt counting module.

[0178] The interrupt counting module generates a total interrupt signal based on the interrupt sub-signal.

[0179] This embodiment further includes: Before the interrupt counting module generates a total interrupt signal based on the interrupt sub-signal, it includes:

[0180] The interrupt counting module calculates the number of compressions; the number of compressions is calculated based on the capacity of the sub-database to be compressed, the number of compression modules, and the throughput corresponding to the compression module.

[0181] This embodiment further includes an optional method for the interrupt counting module to generate a total interrupt signal based on the interrupt sub-signal, specifically:

[0182] The terminal counting module calculates the number of received interrupt sub-signals, and generates a total interrupt signal when the number of interrupt sub-signals is equal to the number of compressions.

[0183] This embodiment further includes:

[0184] The interrupt counting module sends the total interrupt signal to the central processing unit through the high-speed serial computer extension bus. The total interrupt signal is used to prompt the central processing unit that the sub-database to be compressed has been compressed, and the total interrupt signal is also used to prompt the central processing unit that the compression acceleration card is ready for the next compression task.

[0185] Figure 4 This is an overall schematic diagram of a computing system provided by an embodiment of the present application. As Figure 4 shown, the computing system includes a compression acceleration card 401, a decompression acceleration card 402, a host memory 403, and a central processing unit 404. Among them, the host includes the host memory 403 and the central processing unit 404.

[0186] Among them, the compression acceleration card 401 includes a second interface 4011, a second converter 4012, at least one compression module 4013, a second memory 4014, and an interrupt counting module 4015. Among them, the second converter 4012 is a compression converter and is used in the compression acceleration card 401. Among them, the second interface 4011 is externally connected to the high-speed serial computer expansion bus. Among them, the second converter 4012 is a compression converter.

[0187] Among them, the decompression acceleration card 402 includes a first interface 4021, a first converter 4022, at least one decompression module 4023, an interface conversion module 4024, a first memory 4025, an interrupt counting module 4026, and at least one query module 4027. Among them, the first interface 4021 is externally connected to the high-speed serial computer expansion bus. Among them, the first converter 4022 is a decompression converter.

[0188] Figure 4 The computing system further includes a bus switch 405, where the bus switch 405 is a high-speed serial computer expansion bus switch.

[0189] Figure 4 The computing system further includes a disk 406, and the compressed database is stored in the disk 406.

[0190] Figure 4 The computing system further includes an AXI4_MM line, an AXI_Stream line, and a control line. Among them, the control line can be an AXI4_Lite line, and the control line is transmitted in the form of a control signal.

[0191] It should be noted that the second interface 4011 further includes an interrupt control processing module. The interrupt counting module 4015 in the compression acceleration card 401 is connected to the interrupt control processing module therein through the second interface 4011, and the total interrupt signal is transmitted to the central processing unit through the bus switch 405 by the interrupt control processing module. Similarly, the first interface 4021 further includes an interrupt control processing module, and the corresponding total interrupt signal is sent to the bus switch 405 in the same connection manner as in the compression acceleration card 401.

[0192] Figure 4 It further includes a high-speed serial computer expansion bus. Among them, the high-speed serial computer expansion bus includes a received data line and a transmitted data line. Among them, the received data line is used to externally receive a high-speed serial received signal (PCIe_RX), and the transmitted data line is used to externally transmit a high-speed serial transmitted signal (PCIe_TX).

[0193] In Figure 4Specifically, the user can initiate a compression command through the host, and then the central processing unit 404 issues a first compression instruction to the disk 406. The disk 406 obtains the database to be compressed from the corresponding disk storage address based on the database identifier to be compressed and its disk storage address information in the disk 406 included in the first compression instruction, and sends the database to be compressed to the second memory 4014 through the general line switch 405 in sequence via the second interface 4011 and the AXI4_MM line by using the direct memory access (DMA) data transfer operation. The database to be compressed includes at least one sub-database to be compressed. At the same time, the central processing unit 404 is sent to the second converter 4012 through the general line switch 405 in sequence via the second interface 4011 and the AXI4_Lite line. The second converter 4012 sends the compression information therein to the corresponding target compression module through a control signal. At the same time, the second memory 4014 stores at least one sub-database to be compressed in the corresponding compression storage address in the second memory 4014 based on the compression storage address information in the second compression instruction. Further, the target compression module obtains the corresponding sub-database to be compressed from each compression storage address in the second memory 4014 based on the compression information. The target compression module belongs to at least one compression module 4013. The number of target compression modules is less than or equal to the number of compression modules 4013 included in the compression acceleration card 401.

[0194] In Figure 4 S1 is that the compression acceleration card 401 receives the database to be compressed, and the database to be compressed is sent by the disk 406 through the direct memory access (DMA) data transfer operation.

[0195] Further, the target compression module compresses the corresponding sub-database to be compressed, obtains a compressed sub-database, and stores the corresponding compressed sub-database in the corresponding compression storage address.

[0196] At the same time, when the target compression module finishes compression, a corresponding interrupt sub-signal is generated and sent to the interrupt counting module 4015. The interrupt counting module 4015 obtains each interrupt sub-signal. When the number of interrupt sub-signals is equal to the number of compression times, a total interrupt signal is generated and sent to the central processing unit 404 through the second interface 4011 to prompt the central processing unit 404 that the compression acceleration card 401 has completed this compression task.

[0197] At the same time, the controller in the compression acceleration card 401 initiates a direct memory access (DMA) data transfer operation, transfers the compressed sub-database stored in the second memory 4014 to the second interface 4011 through the AXI4_MM line, and stores it in the disk 406 through the general line switch 405.

[0198] InFigure 4 Among them, S2 is that the compression acceleration card 401 sends the compressed database to the disk 406 through a direct memory access data transfer operation.

[0199] Furthermore, the user initiates an extraction command through the host, generating a first extraction instruction and a second extraction instruction. The central processing unit 404 sends the first extraction instruction to the disk 406. The disk 406 obtains the database to be extracted from the corresponding disk storage address based on the database identifier to be extracted and its disk storage address information in the disk 406 included in the first extraction instruction, and sends the database to be extracted to the first memory 4025 through the general line switch 405 in sequence via the first interface 4021 and the AXI4_MM line by using a direct memory access (DMA) data transfer operation. Among them, the database to be extracted includes at least one sub-database to be extracted. At the same time, the central processing unit 404 sends the second extraction instruction to the first converter 4022 through the general line switch 405 in sequence via the first interface 4021 and the AXI4_Lite line. The first converter 4022 sends the path information in the second extraction instruction to the corresponding target extraction module through the AXI4_Lite line based on the extraction information in the second extraction instruction. At the same time, the first memory 4025 stores at least one sub-database to be extracted in the corresponding storage address of the first memory 4025 based on the storage address information in the second extraction instruction. Furthermore, the target extraction module obtains the corresponding sub-database to be extracted from each storage address in the first memory 4025 based on the path information. Among them, the target extraction module belongs to at least one extraction module 4023. The number of target extraction modules is less than or equal to the number of extraction modules 4023.

[0200] Furthermore, the target extraction module extracts the corresponding sub-database to be compressed and obtains the extracted sub-database, and sends the corresponding extracted sub-database to the interface conversion module 4024 through the AXI_Stream line. The interface conversion module 4024 determines the conversion information of the first extracted sub-database and processes it according to the connection method included in the conversion information of the first extracted sub-database. If the connection method of the first extracted sub-database is one-to-many, the interface conversion module 4024 segments the first extracted sub-database to obtain each segmented sub-database, and sends each segmented sub-database to the corresponding first query module; if the connection method of the first extracted sub-database is many-to-one, the interface conversion module sends the first extracted sub-database and the extracted sub-database bound in the conversion information to the corresponding second query module. Among them, the first extracted sub-database is any one of the extracted sub-databases. Among them, the interface conversion module 4024 is connected to at least one query module 4027 through the AXI_Stream line. Among them, the first query module and the second query module belong to the query module 4027.

[0201] InFigure 4 Among them, S3 is that the decompression acceleration card 402 receives the database to be decompressed, and the database to be decompressed is sent by the disk 406 through a direct memory access (DMA) data transfer operation.

[0202] Furthermore, the first query module and / or the second query module query their respective sub-databases to obtain query sub-results.

[0203] Meanwhile, when the first query module and / or the second query module finish the query, a corresponding interrupt sub-signal is generated and sent to the interrupt counting module 4026. The interrupt counting module 4026 calculates the number of queries and obtains each interrupt sub-signal. When the number of interrupt sub-signals is equal to the number of queries, a total interrupt signal is generated and sent to the central processing unit 404 through the first interface 4021 to prompt the central processing unit 404 that the decompression acceleration card 402 has completed this decompression task and has completed the query of the decompressed database.

[0204] Meanwhile, the controller in the decompression acceleration card 402 initiates a direct memory access (DMA) data transfer operation, transfers the query sub-results stored in the first memory 4025 to the first interface 4021 through the AXI4_MM line, and transmits it to the central processing unit 404 via the total line switch 405.

[0205] In Figure 4 Among them, S4 is that the decompression acceleration card 402 sends the query results to the central processing unit 404.

[0206] In addition, if the database to be decompressed in the first decompression instruction is the compressed database just compressed by the compression acceleration card 401, the compression acceleration card 401 can transfer the compressed database to the decompression acceleration card 402 through a direct memory access (DMA) data transfer operation via the total line switch to implement an end-to-end transfer mode.

[0207] In Figure 4 Among them, S5 is that the compression acceleration card 401 sends the compressed database (at this time as the database to be decompressed) to the decompression acceleration card 402 through a direct memory access (DMA) data transfer operation.

[0208] It should be noted that the compression acceleration card 401 and the decompression acceleration card 402 each include their own controllers, and the direct memory access (DMA) data transfer operation can be initiated by the controllers to implement the end-to-end transfer mode.

[0209] 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.

[0210] In this application, the above-mentioned hardware modules can be used to compress the database to be compressed and query the database to be decompressed, providing a hardware implementation method.

[0211] Figure 5 It is a schematic structural diagram of a compression acceleration card provided by an embodiment of this application. As Figure 5 shown, the compression acceleration card includes: a PCIe interface 501, a first cross-connector 502, at least one compression IP core 503, an interrupt counting module 504, and a second memory 505. Among them, the at least one compression IP core 503 is respectively a compression IP core-1 503 and a compression IP core-n 503.

[0212] Among them, the PCIe interface 501 includes a PCIe IP layer 5011, a read / write request initiation module 5012, a DMA write module 5013, a DMA read module 5014, a read / write request response module 5015, an AXI4_MM write interface 5016, an AXI4_MM read interface 5017, a bridging module 5018, an AXI4_MM bridging interface 5019, a control line bridging interface 5020, and an interrupt control processing module 5021. Among them, the PCIe interface 501 is externally connected to the Peripheral Component Interconnect Express (PCIe) bus.

[0213] Among them, one end of the PCIe IP layer 5011 is respectively connected to the first end of the read / write request initiation module 5012 and one end of the read / write request response module 5015. The second end of the read / write request initiation module 5012 is connected to one end of the DMA write module 5013. The third end of the read / write request initiation module 5012 is connected to one end of the DMA read module 5014. Among them, the other end of the DMA write module 5013 is connected to one end of the AXI4_MM write interface 5016. The other end of the DMA read module 5014 is connected to one end of the AXI4_MM read interface 5017. The other end of the read / write request response module 5015 is connected to one end of the bridging module 5018. The other end of the bridging module 5018 is respectively connected to one end of the AXI4_MM bridging interface 5019 and one end of the control line bridging interface 5020. In the PCIe interface 501, each module is connected through signal lines.

[0214] Among them, the other end of the control line bridging interface 5020 is connected to the first end of the first cross-connector 502 through an AXI4_Lite line.

[0215] Among them, the other end of the read - write control module 506 and the other end of the AXI4_MM bridge interface 5019 are respectively connected to the first end and the second end of the second memory 505 through AXI4_MM lines. Among them, the other end of the read - write control module 506 includes the other end of the DMA write module 5013 and the DMA read module 5014.

[0216] Among them, the second end of the first cross - connector 502 is connected to one end of at least one compression IP core 503 through an AXI4_Lite line, the second end of each compression IP core 503 is connected to the first end of the interrupt counting module 504 through a signal line, and the third end of the first cross - connector 502 is connected to the second end of the interrupt counting module 504 through an AXI4_Lite line.

[0217] Among them, the third end of each compression IP core 503 is connected to the third end of the second memory 505 through AXI4_MM.

[0218] Among them, the third end of the interrupt counting module 504 is connected to the interrupt control processing module 5021 through a signal line.

[0219] Among them, the PCIe IP layer 5011 can be a processing layer, mainly used for parsing the PCIe protocol, constructing, sending, and parsing Transaction Layer Packets (TLP for short), where TLP is a basic data unit. The PCIe IP layer 5011 communicates with external devices through high - speed serial receive signals (PCIe_RX) and high - speed serial transmit signals (PCIe_TX).

[0220] Among them, the read - write request initiation module 5012 can initiate a request packet for reading and writing data and send the above - mentioned request packet to the PCIe IP layer 5011, thereby starting data transmission with external devices. Exemplarily, when the compression acceleration card reads data from the host memory, the read - write request initiation module 5012 generates a read request packet and sends it to the host; when data needs to be written from the host memory to the second memory 505 in the compression acceleration card, the read - write request initiation module 5012 initiates a write request packet and sends it to the second memory 505.

[0221] Among them, the DMA write module 5013 and the DMA read module 5014 are the read - write control module 506. The read - write control module 506 is used to control the initiation, timing, and data flow control of the read - write transaction process of DMA data transmission operations, complete the DMA data transmission operation (or data transfer). The read - write control module 506 is connected to the second memory 505, and this connection type can be the interface type of AXI4_MM, and thus can be directly connected to the devices based on the AXI4 bus at the back - end.

[0222] Among them, the read / write request response module 5015 is mainly used for: the read / write request response module 5015 passively receives and responds to the read / write requests of the host. In this application, the read / write request response module 5015 can respond according to the register read / write control or memory read / write requests initiated by the host. Exemplarily, when the host accesses the compression IP core 503 or the first cross-connector 502 through the PCIe protocol, after obtaining the request message, the read / write request response module 5015 parses the request message through the PCIe protocol, and then transmits the parsed request message through the bridge module 5018 (converted into a format suitable for the AXI4_Lite protocol) to the control line bridge interface 5020, and outputs an interface of the register read / write control type. For example, when the host needs to control the start of the compression IP core 503 or read the register value of the compression IP core 503 (such as the status of the compression IP core 503, etc.), the control signal is transmitted to the compression IP core 503 through the control line bridge interface 5020; when the end-to-end transmission mode needs to be implemented, it passes through the read / write request response module 5015 and the AXI4_MM bridge interface 5019 to complete the corresponding request response; the read / write request response module 5015 realizes the address conversion between the PCIe protocol and the AXI4 bus protocol, so that devices on other PCIe bus switches can access the address space connected to this interface through the read / write request response module 5015. In this application, the control line bridge interface 5020 can be used as one of the Master devices of the second memory 505, and can read and write the second memory. In this path, the compression acceleration card acts as a responder and does not need to initiate DMA data transfer operations, but only needs to implement relevant protocol conversions, and expose the storage address of the compression acceleration card on the PCIe bus switch through the Base Address Register (BAR), then the end-to-end transmission mode can be realized, reducing the latency caused by multiple DMA data transfer operations (or data migration) in the related technologies. Compared with the related technologies, in this application, the storage address of the compression acceleration card can be exposed on the PCIe bus switch, thus realizing the end-to-end transmission mode.

[0223] Among them, the control line bridge interface 5020 can be an AXI_Lite_MM interface.

[0224] Among them, the interrupt control processing module 5021 can be used to process the triggered total interrupt signal. When the compression IP core 503 finishes computing, an interrupt sub-signal will be generated. The interrupt control processing module 5021 can collect the total interrupt signal, then perform data format processing, and feedback it to the host. Among them, the triggered interrupt sub-signal is triggered by the interrupt counting module 504.

[0225] Among them, the interrupt counting module 504 outputs an interrupt sub-signal externally when any compression IP core 503 completes a compression task. In the related art, when multiple compression IP cores complete their corresponding compression tasks, they all feedback to the host that they have interrupted, so that the host will continuously process the interrupt program, resulting in a reduction in the computing performance of the central processing unit. To solve the above problems, this application adds an interrupt counting module 504, which can calculate the number of compressions according to the volume of the compression task (i.e., the capacity of the database to be compressed, that is, DATA in this application) total ), the number of compression IP cores 503 for parallel compression (which can be represented by IP in this application) num ), and the single-core processing performance of the computing unit (which can be represented by IP in this application) Throughput ), so as to intelligently control the timing of interrupt generation. Under the current compression task, when all compression IP cores 503 in the working state have completed the compression task (that is, when the number of collected interrupt sub-signals is equal to the number of compressions), the interrupt counting module 504 generates an interrupt externally (that is, generates a total interrupt signal) and feedbacks it to the host, so that the host reads the compression result. It can be seen that adopting this method can greatly reduce the number of times the main processor processes the interrupt program, thereby reducing the pressure on the central processing unit and improving the overall performance. The number of decompressions in this application (which can be represented by Count in this application) num ) is dynamically variable and does not require manual configuration by the user, so it can improve the compression efficiency and the flexibility of the compression acceleration card.

[0226] Among them, Figure 5 also shows: a high-speed serial computer expansion bus, which can transmit high-speed serial receive signals (PCIe_RX) and high-speed serial transmit signals (PCIe_TX). The decompression acceleration card also includes an AXI4_MM line and a control line; among them, the control line can be an AXI4_Lite line. In Figure 5 the irq n refers to the nth interrupt sub-signal, or the nth interrupt request.

[0227] Among them, the compression IP core 503 is a manifestation form of the compression module in this application. It should be noted that the compression IP core 503 can implement the compression function by using a preset tool. Among them, the preset tool can be a High-Level Synthesis (HLS for short).

[0228] Among them, the first cross-connector 502 is the compression converter in this application.

[0229] Among them, the second memory 505 can be a high - bandwidth memory (HBM). The second memory 505 is composed of integrated circuits, including a switching function, so that multiple Masters can access simultaneously.

[0230] Figure 6 This is a schematic structural diagram of a decompression acceleration card provided by an embodiment of the present application. As Figure 6 shown, the decompression acceleration card includes: a PCIe interface 601, a second cross - connector 602, at least one decompression IP core 603, an interface conversion module 604, at least one query IP core 605, a first memory 606, and an interrupt counting module 607. Figure 6 Among them, the decompression IP core 603 includes a decompression IP core - 1 603 and a decompression IP core - n 603, and the query IP core 605 includes a query IP core - 1 and a query IP core - n.

[0231] Among them, the PCIe interface 601 includes an AXI4_MM interface 6011, an AXI4_MM bridge interface 6012, a control line bridge interface 6013, and an interrupt control processing module 6014. Among them, the AXI4_MM interface 6011 is a read - write control module, the same as the Figure 5 read - write control module in

[0232] Among them, the PCIe interface 601 also includes a PCIe IP layer, a read - write request initiation module, a DMA write module, a DMA read module, a read - write request response module, and a bridge module ( Figure 6 not shown in Figure 5 . The connection manner and functions of the above - mentioned modules are the same as those of the PCIe interface 501 of the compression acceleration card in Figure 6 , and will not be elaborated here. In

[0233] Among them, the decompression function of the decompression IP core 603 can be developed using HLS tools, which will not be elaborated here. In the present application, compared with the related technology, there are the following differences: In the related technology, the related decompression IP core is a single AXI_MM interface, which is directly connected to the corresponding memory. When decompression is required, the related decompression IP core obtains the database to be decompressed from the corresponding memory, and returns the decompressed database to the corresponding memory after the decompression task is completed. However, in the present application, after the decompression IP core 603 decompresses to obtain the decompressed database, it can directly send the decompressed database to the query IP core 605 bypassing the first memory 606 through the AXI_Stream line. During the transmission process, the faster AXI_Stream line is used to achieve this.

[0234] After the decompression IP core 603 outputs the decompressed database, it passes through Figure 6 the output FIFO in it and is transmitted to the interface conversion module 604. Among them, the output FIFO or the input FIFO can be used to cache the decompressed database to ensure the orderly transmission of data. Among them, FIFO (First In First Out, abbreviated as FIFO) means first in first out. Among them, the decompression IP core 603 is the decompression module in this application.

[0235] Figure 6 It also includes a decompression IP matrix 608, and the decompression IP matrix 608 includes at least one decompression IP core 603 and an output FIFO.

[0236] Figure 6 It also includes a query IP matrix 609, and the query IP matrix 609 includes at least one query IP core 605 and an input FIFO.

[0237] Among them, the interface conversion module 604 can implement a "one-to-many" or "many-to-one" dynamic link method through its internal conversion function according to the throughput of the decompression IP core 603 and the query IP core 605. The specific implementation method can refer to the method description in this application and will not be elaborated here. The interface conversion module 604 in this application can ensure the performance balance among the query IP cores 605 on the pipeline, thereby improving the overall acceleration. The interface conversion module 604 includes a conversion controller for controlling the switch, and its parameters are configured by the host through the AXI4_Lite interface.

[0238] Among them, Figure 6 it also includes the input FIFO corresponding to each query IP core 605. Among them, the input FIFO is connected to the interface conversion module 604 in the front and the corresponding query IP core 605 in the back. Specifically, the sub-database transmitted from the interface conversion module 604 can be input into the corresponding input FIFO, and then input into the corresponding query IP core 605 by the input FIFO, and then the query IP core 605 queries or filters the sub-database. The sub-database is as described above and will not be elaborated here.

[0239] Among them, the query IP core 605 has a similar structure to the decompression IP core 603 and can also be developed using HLS tools. The query IP core 605 can output an interrupt sub-signal and send it to the interrupt counting module 607. Among them, the query IP core 605 is the query module in this application.

[0240] Among them, the function of the interrupt counting module 607 is the same as that of the interrupt counting module in the compression acceleration card and will not be elaborated here. Among them, Figure 6It also includes a high-speed serial computer expansion bus that can transmit serial receive signals (PCIe_RX) and high-speed serial transmit signals (PCIe_TX), an AXI4_MM line, a control line that can be an AXI4_Lite line, an AXI_Stream line, and a signal line.

[0241] One end of the AXI4_MM interface 6011 is connected to the first end of the first memory 606 through the AXI4_MM line; one end of the AXI4_MM bridge interface 6012 is connected to the second end of the first memory 606 through the AXI4_MM line.

[0242] One end of the control line bridge interface 6013 is connected to one end of the second cross-connector 602. The other end of the second cross-connector 602 is connected to the first end of at least one decompression IP core 603 through the AXI4_Lite line. The second end of the decompression IP core 603 is connected to one end of the output FIFO through the AXI_Stream line. The other end of the output FIFO is connected to the first end of the interface conversion module 604 through the AXI_Stream line. The second end of the interface conversion module 604 is connected to one end of the input FIFO through the AXI_Stream line. The other end of each input FIFO is respectively connected to the first end of the corresponding query IP core 605 through the AXI_Stream line. The second end of the query IP core 605 is connected to the first end of the interrupt counting module 607 through the signal line.

[0243] The third end of the query IP core 605 is connected to the third end of the first memory 606 through the AXI4_MM line.

[0244] The other end of the second cross-connector 602 is connected to the third end of the interface conversion module 604 through the AXI4_Lite line, the other end of the second cross-connector 602 is connected to the fourth end of each query IP core 605 through the AXI4_Lite line, and the other end of the second cross-connector 602 is connected to the second end of the interrupt counting module 607 through the AXI4_Lite line.

[0245] The second end of the interrupt counting module 607 is connected to one end of the interrupt control processing module 6014 through the signal line.

[0246] Figure 7 It is a schematic structural diagram of a data decompression device provided by an embodiment of the present application. As Figure 7 shown, a data decompression device 700 provided by the present application is located on a decompression acceleration card in a computing system. The computing system further includes a central processing unit, a disk, and a compression acceleration card. The data decompression device 700 includes the following modules:

[0247] A receiving and storing module 701, configured to receive and store a database to be decompressed sent by a disk, so as to implement an end-to-end transmission mode; the database to be decompressed is sent after a controller in the disk initiates a direct memory access data transmission operation after the disk receives a first decompression instruction sent by a central processing unit; the database to be decompressed is obtained by a compression acceleration card compressing a database to be compressed.

[0248] A decompression module 702, configured to decompress the database to be decompressed to obtain a decompressed database.

[0249] Figure 8 This is a schematic structural diagram of another data decompression device provided by an embodiment of the present application. As Figure 8 shown, the data decompression device 800 is applied to a compression acceleration card in a computing system. The computing system further includes a central processing unit, a disk, and a decompression acceleration card. The data decompression device 800 includes the following modules:

[0250] A receiving and storing module 801, configured to receive and store a database to be compressed sent by a disk, so as to implement an end-to-end transmission mode; the database to be compressed is sent after a controller in the disk initiates a direct memory access data transmission operation after the disk receives a first compression instruction sent by a central processing unit.

[0251] A compression module 802, configured to compress the database to be compressed to obtain a compressed database.

[0252] A sending module 803, configured to send the compressed database to the disk through a direct memory access data transmission operation, so that the disk stores at least one compressed database and provides a database to be decompressed for the decompression acceleration card, so that the decompression acceleration card decompresses based on the database to be decompressed; the database to be decompressed is derived from at least one compressed database; the database to be decompressed is sent to the decompression acceleration card by a controller in the disk initiating a direct memory access data transmission operation after the disk receives a first decompression instruction sent by the central processing unit.

[0253] For the description of the features in the embodiments corresponding to the data decompression device, reference can be made to the relevant descriptions in the embodiments corresponding to the data decompression method, which will not be elaborated here one by one.

[0254] Figure 9 This is a schematic structural diagram of an acceleration card provided by the present application. As Figure 9 shown, the acceleration card 900 provided in this embodiment includes: at least one processor 901 and a memory 902. Optionally, the acceleration card 900 further includes a communication component 903. Among them, the processor 901, the memory 902, and the communication component 903 are connected through a bus 904.

[0255] In a specific implementation process, at least one processor 901 executes computer-executable instructions stored in a memory 902, so that at least one processor 901 executes the data decompression method embodiment described above.

[0256] For the specific implementation process of the processor 901, reference may be made to the above method embodiment. The implementation principle and technical effects are similar, and will not be elaborated here in this embodiment.

[0257] In the above embodiment, it should be understood that the processor may be a central processing unit (Central Processing Unit, abbreviated as: CPU), or other general-purpose processors, digital signal processors (Digital Signal Processor, abbreviated as: DSP), application specific integrated circuits (Application Specific Integrated Circuit, abbreviated as: ASIC), etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in combination with the application can be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.

[0258] The memory may include a high-speed memory (Random Access Memory, RAM), and may also include a non-volatile memory (Non-volatile Memory, NVM), such as at least one disk memory.

[0259] The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, the bus in the drawings of this application is not limited to only one bus or one type of bus.

[0260] An embodiment of the present application also provides a computer-readable storage medium, in which a computer program is stored, and the computer program is configured to execute the steps in any of the above data decompression method embodiments when running.

[0261] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM for short), random access memory (RAM for short), mobile hard disks, magnetic disks, or optical discs.

[0262] An embodiment of the present application also provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, it implements the steps in any of the above embodiments of the data decompression method.

[0263] 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 when the computer program is executed by a processor, it implements the steps in any of the above embodiments of the data decompression method.

[0264] Those skilled in the art can 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 the two. To clearly illustrate the interchangeability of hardware and software, the components 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. Skilled professionals can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.

[0265] The above has introduced in detail a data decompression method provided by the present application. Specific examples are used herein to elaborate on the principle and implementation manner of the present application. The description of the above embodiments is only used to help understand the method and its core idea of the present application. It should be noted that for those of ordinary skill in the art in the technical field, without departing from the principle of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.

Claims

1. A data decompression method, characterized in that, The method is applied to a decompression acceleration card in a computing system. The decompression acceleration card includes a first memory, at least one decompression module, at least one query module, and an interrupt counting module. The computing system further includes a central processing unit, a disk, and a compression acceleration card, and includes: Receiving and storing the database to be decompressed sent by the disk to implement an end-to-end transmission mode. The database to be decompressed is sent after the controller in the disk initiates a direct memory access data transmission operation after receiving a first decompression instruction sent by the central processing unit. The database to be decompressed is obtained by the compression acceleration card compressing the database to be compressed, and the database to be decompressed includes at least one sub-database to be decompressed. Using each target decompression module to parallelly decompress its corresponding sub-database to be decompressed to respectively obtain each decompressed sub-database, and using each of the target decompression modules to directly send the corresponding decompressed sub-database to the corresponding query module bypassing the first memory through an AXI_Stream line. The query module for querying is a working status query module, and using each working status query module to send the corresponding query sub-result to the first memory. If the interrupt counting module generates a total interrupt signal, the first memory obtains the query result. The generating the total interrupt signal by using the interrupt counting module includes: Using the interrupt counting module to calculate the number of received interrupt sub-signals, and generating a total interrupt signal when the number of interrupt sub-signals is equal to the number of queries. Among them, each of the interrupt sub-signals is generated and sent to the interrupt counting module after each working status query module obtains the corresponding query sub-result, and the number of queries is calculated by the interrupt counting module based on the capacity of the database to be decompressed, the number of query modules, and the throughput corresponding to the query module.

2. The method according to claim 1, wherein The receiving and storing the database to be decompressed sent by the disk to implement an end-to-end transmission mode includes: Receiving the database to be decompressed to implement an end-to-end transmission mode, and receiving a second decompression instruction sent by the central processing unit. The second decompression instruction includes storage information. The storage information includes at least one storage address information of the sub-database to be decompressed in the first memory. Using the first memory to store at least one of the sub-databases to be decompressed to the corresponding storage address in the first memory according to the storage address information.

3. The method according to claim 1, wherein The decompression acceleration card further includes a decompression converter. Before using each target decompression module to parallelly decompress its corresponding sub-database to be decompressed to respectively obtain each decompressed sub-database, it includes: Using the decompression converter to receive the decompression information in the second decompression instruction sent by the central processing unit. The decompression information includes the path information of each sub-database to be decompressed and the corresponding target decompression module identifier. The target decompression module identifier is the decompression module identifier for decompressing the corresponding sub-database to be decompressed. For any path information, a decompression converter is used to send the path information to a target decompression module identified by a corresponding target decompression module identifier, and the target decompression module is used to obtain a corresponding sub-database to be decompressed from a first memory based on the corresponding path information; the path information includes a sub-database to be decompressed identifier and storage address information corresponding to the sub-database to be decompressed.

4. The method according to claim 3, wherein The step of using the target decompression module to obtain a corresponding sub-database to be decompressed from the first memory based on the corresponding path information includes: Using the target decompression module to locate a corresponding storage address in the first memory based on the corresponding storage address information; Obtaining the sub-database to be decompressed corresponding to the sub-database to be decompressed identifier from the storage address; the decompression performance of the target decompression module meets the requirement for decompressing the sub-database to be decompressed.

5. The method according to claim 2, characterized in that, The target decompression module is a decompression module for decompressing a corresponding sub-database to be decompressed.

6. The method according to claim 5, characterized in that, The decompression acceleration card further includes an interface conversion module; The step of using each target decompression module to directly send a corresponding decompressed sub-database to a corresponding query module bypassing the first memory through an AXI_Stream line includes: Using each target decompression module to directly send a corresponding decompressed sub-database to the interface conversion module bypassing the first memory through an AXI_Stream line; Using the interface conversion module to send the corresponding decompressed sub-database to the corresponding query module through the AXI_Stream line according to conversion information; the conversion information includes the connection method of each decompressed sub-database and the query module identifier corresponding to each decompressed sub-database; the conversion information is determined by the interface conversion module; After obtaining the query result, it further includes: Sending the query result to the central processing unit.

7. The method according to claim 6, wherein The step of using the interface conversion module to send the corresponding decompressed sub-database to the corresponding query module according to the conversion information includes: If the connection method of the first decompressed sub-database is one-to-many, using the interface conversion module to segment the first decompressed sub-database according to the conversion information, and sending each segmented sub-database to a plurality of first query modules correspondingly; the first query module is the query module corresponding to the query module identifier of the first decompressed sub-database in the conversion information; the first decompressed sub-database is any one of the decompressed sub-databases; If the connection method of the first decompressed sub-database is many-to-one, using the interface conversion module to send the first decompressed sub-database and the decompressed sub-databases bound in the conversion information to the corresponding second query module together; the second query module is the query module corresponding to the query module identifier of the first decompressed sub-database and its bound decompressed sub-databases in the conversion information; The method further includes: Each of the first query modules and / or each of the second query modules queries the corresponding decompressed sub-database in parallel.

8. The method according to claim 7, wherein The query result includes at least one query sub-result; Before using each working state query module to send the corresponding query sub-result to the first memory, it further includes: Each working status query module performs a query in its respective sub-database in parallel based on the received query target to obtain a corresponding query sub-result, where the query sub-result is data that meets the query target; the query target is included in the second decompression instruction; the working status query module is a query module for performing the query; the sub-database includes the corresponding first decompression sub-database and its bound decompression sub-database, or any sub-segment database after the first decompression sub-database is segmented.

9. The method according to claim 1, wherein The method further includes: Using the interrupt counting module to send the total interrupt signal to the central processing unit through the high-speed serial computer extension bus, where the total interrupt signal is used to prompt the central processing unit that the database to be decompressed has completed the query, and the total interrupt signal is also used to prompt the central processing unit that the decompression acceleration card is ready for the next decompression task.

10. A data decompression method, characterized in that, The method is applied to a compression acceleration card in a computing system, and the computing system further includes a central processing unit, a disk, and a decompression acceleration card. The method includes: Receiving and storing the database to be compressed sent by the disk to implement an end-to-end transmission mode; the database to be compressed is sent after the disk receives the first compression instruction sent by the central processing unit and the controller in the disk initiates a direct memory access data transfer operation. Compressing the database to be compressed to obtain a compressed database. Sending the compressed database to the disk through a direct memory access data transfer operation, so that the disk stores at least one compressed database and provides a database to be decompressed for the decompression acceleration card, so that the decompression acceleration card performs decompression based on the database to be decompressed; the database to be decompressed is derived from at least one compressed database; the database to be decompressed is sent to the decompression acceleration card by the controller in the disk initiating a direct memory access data transfer operation after the disk receives the first decompression instruction sent by the central processing unit. Among them, the decompression acceleration card can execute the method according to any one of claims 1-9.

11. An acceleration card, characterized in that, It includes: A memory for storing computer programs; A processor for implementing the steps of the data decompression method according to any one of claims 1 to 10 when executing the computer program.

12. A computer-readable storage medium, characterized in that, A computer program is stored in the computer-readable storage medium, and when the computer program is executed by the processor, it implements the steps of the data decompression method according to any one of claims 1 to 10.

13. A computer program product comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the data decompression method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Data transmission method and device, computer equipment and storage medium

    CN119621642A