Data transmission method and device, core particle and graphics processor

By calculating and compressing the maximum addressing range of the GPU's access addresses, a data transmission method that generates compressed addresses and base addresses solves the problem of low data transmission efficiency in GSM and improves the data transmission efficiency of cross-core communication.

CN121597440APending Publication Date: 2026-03-03HYGON INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511797023.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-02
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

In the existing technology, the data transfer efficiency of Global Shared Memory (GSM) in graphics processing units (GPUs) is low, especially when multiple computing units are distributed across various GPUs. Communication between computing units needs to be achieved through GSM, resulting in limited resources and low efficiency.

Method used

By calculating the maximum addressing range of multiple access addresses, if it is less than a preset value, the access address is compressed to generate a compressed address and a base address, and a second data access request is generated to reduce the amount of data transmitted and improve transmission efficiency.

Benefits of technology

While ensuring the correctness of data transmission, it reduces the amount of data transmission, improves the data transmission efficiency of cross-core communication, and saves communication resources between cores.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121597440A_ABST
    Figure CN121597440A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method and device, a core particle and a graphics processor. The method comprises the following steps: receiving a first data access request sent by a local computing unit; wherein the first data access request comprises a plurality of access addresses; if it is judged that the plurality of access addresses do not belong to the local GSM space, calculating and obtaining a maximum addressing range based on the plurality of access addresses; if it is judged that the maximum addressing range is smaller than a preset value, address compression is conducted on the multiple access addresses, and multiple access compression addresses and base addresses are obtained; and generating a second data access request based on the plurality of access compression addresses and the base address, and forwarding the second data access request. The device is used for executing the method. According to the data transmission method and device, the core particle and the graphics processor provided by the embodiment of the invention, the plurality of access addresses are compressed, so that the transmitted data volume is reduced, and the data transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and more specifically to a data transmission method, apparatus, chip, and graphics processor. Background Technology

[0002] In a graphics processing unit (GPU), most data interaction is not carried out in the L1 and L2 caches, but is usually achieved through shared memory.

[0003] Global Shared Memory (GSM) is used within the GPU to receive requests from all computing units. In existing technologies, multiple GPUs are often interconnected to improve computing power. In this scenario, multiple computing units are distributed across various GPUs, and communication between these units requires the use of GSM. However, GSM has limited communication resources; therefore, improving GSM data transmission efficiency has become a crucial issue that urgently needs to be addressed in this field. Summary of the Invention

[0004] To address the problems in the prior art, embodiments of the present invention provide a data transmission method, apparatus, chip, and graphics processor, which can at least partially solve the problems existing in the prior art.

[0005] In a first aspect, the present invention proposes a data transmission method, comprising:

[0006] Receive a first data access request sent by the local computing unit; wherein the first data access request includes multiple access addresses;

[0007] If it is determined that the multiple access addresses do not belong to the local GSM space, then the maximum addressing range is calculated based on the multiple access addresses;

[0008] If it is determined that the maximum addressing range is less than a preset value, then the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address;

[0009] A second data access request is generated based on the multiple access compression addresses and base addresses, and then the second data access request is forwarded.

[0010] Furthermore, the calculation of the maximum addressing range based on the multiple access addresses includes:

[0011] Obtain the maximum and minimum access address values ​​from the plurality of access addresses;

[0012] Calculate the difference between the maximum and minimum access addresses, and use this difference as the maximum addressing range.

[0013] Furthermore, the step of compressing the plurality of access addresses to obtain a plurality of compressed access addresses includes:

[0014] Calculate the offset between each access address and the base address to obtain the address offset corresponding to each access address;

[0015] The address offset corresponding to each access address is used as the access compressed address for each access address.

[0016] Furthermore, generating a second data access request based on the plurality of access compression addresses and base addresses includes:

[0017] Add the base address, compression flag, and access compression address for each access address to the packet header to obtain the second data access request.

[0018] Furthermore, the data transmission method provided in this embodiment of the invention further includes:

[0019] If it is determined that the multiple access addresses belong to the local GSM space, then the first data access request is responded to based on the local GSM space.

[0020] Furthermore, the data transmission method provided in this embodiment of the invention further includes:

[0021] Receive a third data access request; wherein the third data access request includes multiple access compression addresses and base addresses;

[0022] Based on the multiple access compression addresses and base addresses included in the third data access request, the original access address corresponding to the third data access request is obtained;

[0023] Based on the local GSM space and the original access address corresponding to the third data access request, respond to the third data access request.

[0024] In a second aspect, the present invention provides a data transmission device, comprising:

[0025] A receiving module is configured to receive a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses;

[0026] The judgment module is used to calculate the maximum addressing range based on the multiple access addresses after determining that the multiple access addresses do not belong to the local GSM space.

[0027] The compression module is used to compress the multiple access addresses after determining that the maximum addressing range is less than a preset value, so as to obtain multiple compressed access addresses.

[0028] The generation module is used to generate a second data access request based on the multiple access compression addresses and forward the second data access request.

[0029] Thirdly, the present invention provides a chip comprising multiple computing units, a global shared memory, a transmitting unit, and a receiving unit, wherein:

[0030] The global shared memory is connected to each computing unit, and is also connected to the sending unit and the receiving unit respectively. The global shared memory is used to execute the data transmission method described in any of the above embodiments.

[0031] Fourthly, the present invention provides a graphics processor comprising a plurality of chips as described in the preceding claims, the plurality of chips being communicatively connected via a chip bus.

[0032] Fifthly, the present invention provides a computer device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the program to implement the data transmission method described in any of the above embodiments.

[0033] In a sixth aspect, the present invention provides a computer-readable storage medium storing a computer program / instructions that, when executed by a processor, implement the data transmission method described in any of the above embodiments.

[0034] In a seventh aspect, the present invention provides a computer program product, including a computer program / instructions that, when executed by a processor, implement the data transmission method described in any of the above embodiments.

[0035] The data transmission method, apparatus, chip, and graphics processor provided in this invention are capable of receiving a first data access request sent by a local computing unit. The first data access request includes multiple access addresses. If it is determined that the multiple access addresses do not belong to the local GSM space, a maximum addressing range is calculated based on the multiple access addresses. If it is determined that the maximum addressing range is less than a preset value, the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address. A second data access request is generated based on the multiple compressed access addresses and the base address, and the second data access request is forwarded. Because the multiple access addresses are compressed, the amount of data transmitted is reduced, and the efficiency of data transmission is improved. Attached Figure Description

[0036] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. In the drawings:

[0037] Figure 1 This is a schematic diagram of the structure of a multi-core system provided in an embodiment of the present invention.

[0038] Figure 2 This is a schematic flowchart of a data transmission method provided in an embodiment of the present invention.

[0039] Figure 3 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention.

[0040] Figure 4 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention.

[0041] Figure 5 This is a schematic diagram of the data packet structure provided in an embodiment of the present invention.

[0042] Figure 6 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention.

[0043] Figure 7 This is a schematic diagram of the structure of a global shared memory provided in an embodiment of the present invention.

[0044] Figure 8 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present invention.

[0045] Figure 9 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention.

[0046] Figure 10 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention.

[0047] Figure 11 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention.

[0048] Figure 12 This is a schematic diagram of the core structure provided in an embodiment of the present invention.

[0049] Figure 13 This is a schematic diagram of the physical structure of a computer device provided in an embodiment of the present invention. Detailed Implementation

[0050] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to the accompanying drawings. Here, the illustrative embodiments and their descriptions are used to explain the present invention, but are not intended to limit the present invention. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this application can be combined with each other. The acquisition, storage, use, and processing of data in the technical solutions of this application all comply with relevant laws and regulations. The user information in the embodiments of this application is obtained through legal and compliant means, and the acquisition, storage, use, and processing of user information have been authorized and agreed upon by the customer.

[0051] To facilitate understanding of the technical solution provided in this application, the relevant content of the technical solution in this application will be explained below.

[0052] Global shared memory: A shared memory area on the GPU that facilitates data sharing and can be programmed independently.

[0053] Memory bank: GPU shared memory is based on a bank-switched architecture. Generally, current GPUs contain 32 memory banks, meaning that shared memory is divided into 32 banks.

[0054] Chipbus: Due to the limited chip area, chip-to-chip transmission has become a means to improve the overall chip design. Chipbus is the actual physical channel that helps chips realize data transmission between chips.

[0055] Burst transfer: The master device only needs to send control information and starting address once. The slave device will calculate the size of the current request based on the starting address and length, and send the corresponding data and response to the master. Multiple requests can be transmitted with only one handshake, avoiding other devices from occupying the current bus, thereby significantly improving bandwidth utilization and reducing latency.

[0056] When GPUs use GSM, they typically employ a contiguous address space. Using Burst transmission can improve transmission efficiency. However, Burst transmission does not utilize the contiguous address characteristic of GSM, resulting in significant redundant transmissions. Therefore, this application proposes a data transmission method that leverages the contiguous address characteristic of GSM. By checking the dispersion of the used GSM addresses, compression is applied if compression conditions are met. In GSM inter-chip communication scenarios, this compresses the information within the packet, reducing its size and improving packet utilization efficiency, thereby enhancing data transmission efficiency between chips. Furthermore, this method can be combined with Burst transmission to further improve overall transmission efficiency.

[0057] Figure 1 This is a schematic diagram of the structure of a multi-core system provided in an embodiment of the present invention, as shown below. Figure 1 As shown, the multi-core system includes multiple cores 100, and each core 100 communicates via a core bus 200, wherein:

[0058] Each core 100 includes multiple computing units 101, a global shared memory 102, a transmitting unit 103, and a receiving unit 104; the global shared memory 102 is communicatively connected to each computing unit 101, and the global shared memory 102 is communicatively connected to the transmitting unit 103 and the receiving unit 104 respectively.

[0059] Communication between computing units 101 of different cores 100 is achieved through their respective global shared memory 102, which employs unified addressing management. When a computing unit 101 initiates a GSM access request, the global shared memory 102 of the core 100 containing the computing unit 101 receives the GSM access request. It then determines whether the GSM access request is for itself or for the GSM of another core 100. If it is for the GSM of another core 100, it forwards the GSM access request to the core bus 200 through the sending unit 103. The core bus 200 then forwards the GSM access request to the receiving unit 104 of the corresponding core 100. The receiving unit 104 forwards the GSM access request to the global shared memory 102 of its core 100, performs relevant operations based on the GSM access request, and then returns the corresponding information.

[0060] Each GSM102 in each core 100 has a space of 64K, managed using unified addressing. Due to this unified addressing, the space addresses of the GSM102s in each core 100 are different. When a GSM102 receives a GSM access request from its own core 100, it can determine whether it is accessing the local GSM or accessing the GSM102 of another core 100 (i.e., cross-core access) based on the access address included in the request. During cross-core access, the GSM102 maps the address requested by the computing unit 101 to the corresponding address to access the corresponding GSM space. Since GSM is a software cache and not a real physical address, it uses virtual addresses. Therefore, during forwarding, it needs to define its own dedicated data packets according to the GSM-specific format. For example, if a GPU uses 32 threads as a thread bundle, the packet includes command information and the GSM address information and operation information for all 32 threads. The packet header records command information shared by the thread bundle, the GSM address information of each thread, etc.

[0061] Each core 100's global shared memory 102 can be used to execute the data transmission method provided in the embodiments of the present invention.

[0062] Figure 2 This is a flowchart illustrating a data transmission method provided in an embodiment of the present invention, as shown below. Figure 2 As shown, the data transmission method provided in this embodiment of the invention includes:

[0063] S201. Receive a first data access request sent by the local computing unit; wherein, the first data access request includes multiple access addresses;

[0064] Specifically, when the local computing unit needs to access the GSM network, it sends a first data access request to the local GSM network. This first data access request includes multiple access addresses. These multiple access addresses can be thread-specific addresses used to access different banks.

[0065] In this embodiment of the invention, the computing unit that shares a core with the execution subject GSM is called the local computing unit; to distinguish the execution subject GSM from other GSMs, the execution subject GSM is called the local GSM, and the other GSMs are called external GSMs.

[0066] S202. If it is determined that the multiple access addresses do not belong to the local GSM space, then the maximum addressing range is calculated based on the multiple access addresses.

[0067] Specifically, after receiving the first data access request, the local GSM parses the request to obtain the multiple access addresses. It then determines whether these addresses are within the local GSM's address space. If not, they are not part of the local GSM's address space and need to be sent to other GSMs (i.e., external GSMs) via the core bus for processing. The local GSM calculates the maximum addressing range based on these addresses to determine if they can be compressed. If the addresses are within the local GSM's address space, the local GSM directly responds to the first data access request.

[0068] For example, the maximum addressing range can be determined by the difference between the maximum and minimum access addresses among the plurality of access addresses.

[0069] S203. If it is determined that the maximum addressing range is less than a preset value, then the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address.

[0070] Specifically, the local GSM compares the maximum addressing range with a preset value. If the maximum addressing range is smaller than the preset value, it indicates that the multiple access addresses can be compressed. In this case, address compression is performed on the multiple access addresses to obtain multiple compressed access addresses and a base address, thereby reducing the amount of data transmitted and improving data transmission efficiency. The base address is used for address restoration. If the maximum addressing range is larger than the preset value, it indicates that the multiple access addresses are too discrete, which would lead to excessively long data compression times. Directly transmitting the multiple access addresses would be less efficient, and address compression would be unnecessary.

[0071] There is a one-to-one correspondence between the compressed access address and the access address. Each access address will result in a unique compressed access address after compression.

[0072] S204. Generate a second data access request based on the plurality of access compression addresses and base addresses, and forward the second data access request.

[0073] Specifically, after obtaining multiple access compression addresses and base addresses, the local GSM generates a second data access request based on the multiple access compression addresses and base addresses, and sends the second data access request to other GSMs via the core bus.

[0074] After receiving the second data access request, the external GSM reconstructs the compressed access addresses in the request, calculates the sum of the base address and the compressed access addresses to obtain the access address. Based on the command information included in the second data access request, the external GSM executes relevant operations and returns the corresponding information to the local computing unit via the core bus.

[0075] The data transmission method provided in this embodiment of the invention can receive a first data access request sent by a local computing unit; wherein, the first data access request includes multiple access addresses; if it is determined that the multiple access addresses do not belong to the local GSM space, a maximum addressing range is calculated based on the multiple access addresses; if it is determined that the maximum addressing range is less than a preset value, the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address; a second data access request is generated based on the multiple compressed access addresses and the base address, and the second data access request is forwarded. Since the multiple access addresses are compressed, the amount of data transmitted is reduced, and the efficiency of data transmission is improved.

[0076] Figure 3 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention, as shown below. Figure 3 As shown, based on the above embodiments, the step of calculating the maximum addressing range based on the multiple access addresses further includes:

[0077] S301. Obtain the maximum and minimum access address values ​​from the plurality of access addresses;

[0078] Specifically, the local GSM can compare the multiple access addresses to obtain the maximum and minimum access address values. The minimum access address can be used as the base address.

[0079] S302. Calculate the difference between the maximum access address and the minimum access address, and use it as the maximum addressing range.

[0080] Specifically, the difference between the maximum access address and the minimum access address is calculated as the maximum addressing range, indicating the maximum access address range of the multiple access addresses.

[0081] Figure 4 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention, as shown below. Figure 4 As shown, based on the above embodiments, further, the step of compressing the plurality of access addresses to obtain a plurality of compressed access addresses includes:

[0082] S401. Calculate the offset between each access address and the base address to obtain the address offset corresponding to each access address;

[0083] Specifically, the offset between each access address and the base address is calculated and used as the address offset for each access address, so that the access address can be restored later. The minimum access address can be used as the base address.

[0084] S402. Use the address offset corresponding to each access address as the access compression address for each access address.

[0085] Specifically, the address offset corresponding to each access address is used as the access compressed address for each access address. Since the access compressed address only records the address offset, the amount of data transmitted can be significantly reduced compared to directly transmitting the multiple access addresses.

[0086] Based on the above embodiments, the step of generating a second data access request based on the plurality of access compression addresses and base addresses further includes:

[0087] Add the base address, compression flag, and access compression address for each access address to the packet header to obtain the second data access request.

[0088] Specifically, the base address can be the minimum value among the multiple access addresses, used for access address restoration. The compression flag indicates whether the second data access request includes an access compression address. If it does, the GSM receiving the second data access request will restore the address based on the base address and the access compression address. The header of the resulting second data access request will include the base address, the compression flag, and the access compression addresses for each access address. Compared to the first data access request, the second data access request adds the base address and compression flag, and changes the access addresses. Other information required by the second data access request can be directly obtained from the first data access request.

[0089] For example, such as Figure 5 As shown, the header of the second data access request packet includes command information, a base address, a compression flag, and various access compression addresses. The GPU uses 32 threads per thread bundle, and the above packet contains a total of 32 access compression addresses, each corresponding to one thread. The command information is shared across the thread bundle, and the base address is used to restore the access compression addresses. The compression flag can be represented by 0 or 1; 0 indicates that the access address is not compressed and no address restoration is needed; 1 indicates that the access address is compressed and address restoration is required. Figure 5 In the packet header, there are 32 access compressed addresses, and the compression flag is set to 1.

[0090] Based on the above embodiments, the data transmission method provided by the embodiments of the present invention further includes:

[0091] If it is determined that the multiple access addresses belong to the local GSM space, then the first data access request is responded to based on the local GSM space.

[0092] Specifically, the local GSM determines whether the multiple access addresses are addresses within the local GSM space. If the multiple access addresses are addresses within the local GSM space, it means that the local computing unit is accessing the local GSM's bank. In this case, the local GSM will directly respond to the first data access request, that is, perform relevant operations according to the first data access request and return the corresponding information, without needing to forward the first data access request.

[0093] Figure 6 This is a flowchart illustrating a data transmission method provided in another embodiment of the present invention, as shown below. Figure 6 As shown, based on the above embodiments, the data transmission method provided by the embodiments of the present invention further includes:

[0094] S601, Receive a third data access request; wherein, the third data access request includes multiple access compression addresses and base addresses;

[0095] Specifically, the local GSM can receive a third data access request from the receiving unit, and the local GSM can parse the third data access request to obtain multiple access compression addresses and base addresses included in the third data access request.

[0096] The third data access request can be obtained by the external GSM after receiving a data access request from the computing unit of the chip it resides in and then performing address compression processing on the received data access request. The specific process of the external GSM performing address compression processing on the received data access request is similar to steps S202 to S204, and will not be described in detail here.

[0097] S602. Based on the multiple access compression addresses and base addresses included in the third data access request, obtain the original access address corresponding to the third data access request;

[0098] Specifically, the local GSM restores the access address based on the multiple access compression addresses and base addresses included in the third data access request, thereby obtaining the original access address corresponding to the third data access request.

[0099] For example, the sum of the base address and each access compressed address is calculated to obtain the corresponding original access address.

[0100] S603. Based on the local GSM space and the original access address corresponding to the third data access request, respond to the third data access request.

[0101] Specifically, the local GSM determines whether the original access address corresponding to the third data access request is an address within the local GSM space. If the original access address corresponding to the third data access request is an address within the local GSM space, then the local GSM will respond to the third data access request, that is, perform relevant operations based on the original access address corresponding to the third data access request and return the corresponding information.

[0102] Based on the above embodiments, the data transmission method provided by the embodiments of the present invention further includes: receiving a fourth data access request and responding to the fourth data access request.

[0103] Specifically, the local GSM can receive a fourth data access request from the receiving unit. The fourth data access request includes multiple access addresses, and the access addresses included in the fourth data access request are uncompressed.

[0104] The fourth data access request can be forwarded by an external GSM after receiving the first data access request sent by the computing unit of the chip it resides in.

[0105] Based on the above embodiments, it is further determined whether to perform address restoration according to the compression flag bit included in the received data access request.

[0106] Specifically, the data access request received by the local GSM may include a compression flag, and the compression flag determines whether it is necessary to restore the address included in the received data access request.

[0107] For example, when the local GSM receives a third data access request, the compression flag bit of the third data access request is 1. A 1 indicates that address restoration is required. The local GSM will restore the original access address corresponding to the third data access request based on the multiple access compression addresses and base addresses included in the third data access request.

[0108] For example, when the local GSM receives a fourth data access request, the compression flag bit of the fourth data access request is 0, which means that address restoration is not required, and the local GSM will directly respond to the fourth data access request.

[0109] like Figure 1The multi-core system shown includes four cores 100, each with a global shared memory 102 space of 64K, for a total global shared memory 102 space of 256K. When using GSM, the relevant programs for cores 100 are written according to the granularity of thread bundles and threads. During cross-core access, taking the aforementioned global shared memory space as an example, without compressing cross-core access data requests, a 256KB space transmission format (i.e., 18 bits) is required. Since there is a large amount of identical information in contiguous spaces, it is only necessary to extract the address of the common area and store it as the base address in the packet header for use by all threads. Each thread's corresponding access address uses an access compression address, which ensures the correctness of the access address while reducing the amount of data transmitted.

[0110] In practice, GSM usage is not always standardized. To improve usability, the address space threshold is configured by registers, as shown in the following formula:

[0111]

[0112] Where R is the maximum value of the address mapped to the thread within the current thread bundle, warp. max and minimum value warp min The difference after subtraction, x, is the range size configured by the register, with a maximum of 1K and a minimum of 0B. Let's assume x is set to 8, 2 8 That is, 256B. When R is less than 256B, the first data access request can be compressed in terms of access address. Taking 6 threads as an example, as shown in Table 1, the access addresses corresponding to the six threads Thread0, Thread1, Thread2, Thread3, Thread4, and Thread5 in the first access request are 158, 211, 125, 173, 311, and 355, respectively. Among them, the maximum access address is 355, and the minimum access address is 125. The difference between the maximum and minimum access addresses is 230, which is less than 256. Therefore, the access addresses corresponding to the six threads in Table 1 can be compressed. Using the minimum access address of 125 as the base address, the offset of the access address corresponding to each thread minus 125 is calculated as the compressed access address corresponding to each thread, thus obtaining the compressed access addresses corresponding to the six threads in the second data access request.

[0113] Through the above compression, the address space for each thread is reduced from 256KB to 256B, saving 10 x 32 = 320 bits of data bandwidth and improving data transmission efficiency. Since the address space threshold is configurable, with a maximum of 1KB and a minimum of 32B, the bandwidth saved is determined by the size of the address space threshold configured in the registers.

[0114] Table 1. Access addresses of threads before and after compression.

[0115]

[0116] As shown in Table 2, the access addresses corresponding to the six threads Thread0, Thread1, Thread2, Thread3, Thread4, and Thread5 in the first access request are 158, 211, 125, 173, 311, and 655, respectively. The maximum access address is 655, and the minimum is 125. The difference between the maximum and minimum access addresses is 530, which is greater than 256. Therefore, the distribution of access addresses for each thread is quite discrete and cannot be compressed. The first data access request should be forwarded directly without address compression.

[0117] Table 2. Access addresses corresponding to threads

[0118]

[0119] Figure 7 This is a schematic diagram of the structure of a globally shared memory provided in an embodiment of the present invention, as shown below. Figure 7 As shown, the global shared memory provided in this embodiment of the invention includes a parsing module 701, a comparison module 702, a scheduling module 703, a data processing module 704, a sorting module 705, and a storage unit 706, wherein:

[0120] The parsing module 701 is used to parse the received data access request; the received data access request can be a first data access request or a third data access request; the first data access request is received from the local computing unit, and the third data access request is received from the receiving unit.

[0121] The comparison module 702 determines whether the access addresses included in the first data access request belong to the local GSM space. If they do not belong to the local GSM space, it further determines whether the multiple access addresses of the first data access request can be compressed. If they can be compressed, the first data access request is compressed to obtain the second data access request, which is then sent to the corresponding external GSM via the data transmission unit. If the data belongs to the local GSM space, the first data access request is processed by the scheduling module 703. The third data access request is directly provided to the scheduling module 703 for processing.

[0122] The scheduling module 703 is used to arbitrate and classify various scheduling requests and handle bank access conflicts in threads. Each scheduling request is obtained based on the access address of the first data access request or the access address of the third data access request.

[0123] The data processing module 704 is used to access the corresponding bank according to the access address included in the scheduling request, and read the data from the corresponding bank and feed it back to the sorting module 705.

[0124] The processing module 705 processes the data read from bank 706 and responds to corresponding data access requests. If it's a response to a first data request, it sends a notification message to the computing unit, informing them that the first data request has been processed. If it's a response to a third data request, it sends a response message to the data sending unit, which then returns the response message to the external GSM via the core bus, informing them that the third data request has been processed. The storage module 706 stores the data.

[0125] The data transmission method provided in this embodiment of the invention utilizes the characteristics of GSM. In a multi-core system, when GSM interconnects, data packets transmitted across cores are compressed. This ensures the correctness of the transmitted data while using Burst transmission, enabling more data to be sent at once, improving data transmission efficiency, saving resources for inter-core communication, and ensuring system reliability.

[0126] Figure 8 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of the present invention, as shown below. Figure 8 As shown, the data transmission device provided in this embodiment of the invention includes a receiving module 801, a judging module 802, a compression module 803, and a generating module 804, wherein:

[0127] The receiving module 801 is used to receive a first data access request sent by the local computing unit; wherein the first data access request includes multiple access addresses; the judging module 802 is used to calculate and obtain a maximum addressing range based on the multiple access addresses after judging that the multiple access addresses do not belong to the local GSM space; the compression module 803 is used to compress the multiple access addresses to obtain multiple compressed access addresses after judging that the maximum addressing range is less than a preset value; the generating module 804 is used to generate a second data access request based on the multiple compressed access addresses and forward the second data access request.

[0128] Specifically, when the local computing unit needs to access GSM, it sends a first data access request to the receiving module 801. This first data access request includes multiple access addresses. These multiple access addresses can be thread-specific addresses used to access different banks.

[0129] Upon receiving the first data access request, the judgment module 802 parses the request to obtain the multiple access addresses. It then determines whether these addresses are within the local GSM space. If not, they are not part of the local GSM space and need to be sent to other GSM nodes (i.e., external GSM nodes) via the core bus for processing. The local GSM node calculates the maximum addressing range based on these addresses to determine if they can be compressed. If the addresses are within the local GSM space, the local GSM node directly responds to the first data access request.

[0130] The compression module 803 compares the maximum addressing range with a preset value. If the maximum addressing range is less than the preset value, it means that the multiple access addresses can be compressed. In this case, address compression is performed on the multiple access addresses to obtain multiple compressed access addresses and a base address, thereby reducing the amount of data transmitted and improving data transmission efficiency. The base address is used for address restoration. If the maximum addressing range is greater than the preset value, it means that the multiple access addresses are too discrete, which would cause data compression to take too long. Directly transmitting the multiple access addresses would be less efficient, and address compression would be unnecessary.

[0131] After obtaining multiple access compression addresses and base addresses, the generation module 804 generates a second data access request based on the multiple access compression addresses and base addresses, and sends the second data access request to the GSM of other cores through the core bus.

[0132] The data transmission apparatus provided in this embodiment of the invention is capable of receiving a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses; if it is determined that the multiple access addresses do not belong to the local GSM space, a maximum addressing range is calculated based on the multiple access addresses; if it is determined that the maximum addressing range is less than a preset value, the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address; a second data access request is generated based on the multiple compressed access addresses and the base address, and the second data access request is forwarded. Since the multiple access addresses are compressed, the amount of data transmitted is reduced, and the efficiency of data transmission is improved.

[0133] Figure 9 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention, as shown below. Figure 9 As shown, based on the above embodiments, the determination module 802 further includes an acquisition submodule 8021 and a first calculation submodule 8022, wherein:

[0134] The obtaining submodule 8021 is used to obtain the maximum and minimum access address values ​​from the plurality of access addresses; the first calculation submodule 8022 is used to calculate the difference between the maximum access address value and the minimum access address value as the maximum addressing range.

[0135] Figure 10 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention, as shown below. Figure 10 As shown, based on the above embodiments, the compression module 803 further includes a second calculation submodule 8031 ​​and a submodule 8032, wherein:

[0136] The second calculation submodule 8031 ​​is used to calculate the offset between each access address and the base address to obtain the address offset corresponding to each access address; the second submodule 8032 is used to use the address offset corresponding to each access address as the access compression address of each access address.

[0137] Based on the above embodiments, the generation module 804 is further specifically used for:

[0138] Add the base address, compression flag, and access compression address for each access address to the packet header to obtain the second data access request.

[0139] Based on the above embodiments, the determination module 802 is further configured to:

[0140] If it is determined that the multiple access addresses belong to the local GSM space, then the first data access request is responded to based on the local GSM space.

[0141] Figure 11 This is a schematic diagram of the structure of a data transmission device provided in another embodiment of the present invention, as shown below. Figure 11 As shown, based on the above embodiments, the data transmission apparatus provided in this embodiment further includes a request receiving module 805, a restoration module 806, and a response module 807, wherein:

[0142] The request receiving module 805 is used to receive a third data access request; wherein the third data access request includes multiple access compression addresses and a base address. The restoration module 806 is used to obtain the original access address corresponding to the third data access request based on the multiple access compression addresses and the base address included in the third data access request; the response module 807 is used to respond to the third data access request based on the local GSM space and the original access address corresponding to the third data access request.

[0143] The embodiments of the device provided in this invention can be used to execute the processing flow of the above-described method embodiments. Its functions will not be repeated here, but can be referred to the detailed description of the above-described method embodiments.

[0144] Figure 12 This is a schematic diagram of the core structure provided in an embodiment of the present invention, as shown below. Figure 12 As shown, the chip provided in this embodiment of the invention includes multiple computing units 1201, a global shared memory 1202, a transmitting unit 1203, and a receiving unit 1204, wherein:

[0145] The global shared memory 1202 is connected to each computing unit 1201, and the global shared memory 1202 is connected to the sending unit 1203 and the receiving unit 1204 respectively. The global shared memory 1202 is used to execute the data transmission method described in any of the above embodiments.

[0146] This invention provides a graphics processor including the chips described in the above embodiments, wherein multiple chips are connected for communication via a chip bus.

[0147] Figure 13 This is a schematic diagram of the physical structure of a computer device provided in an embodiment of the present invention, as shown below. Figure 13 As shown, the computer device may include a processor 1301, a communications interface 1302, a memory 1303, and a communication bus 1304, wherein the processor 1301, the communications interface 1302, and the memory 1303 communicate with each other through the communication bus 1304. The processor 1301 can call logical instructions in the memory 1303 to execute the methods provided in the above-described method embodiments, such as: receiving a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses; if it is determined that the multiple access addresses do not belong to the local GSM space, then calculating a maximum addressing range based on the multiple access addresses; if it is determined that the maximum addressing range is less than a preset value, then compressing the multiple access addresses to obtain multiple compressed access addresses and a base address; generating a second data access request based on the multiple compressed access addresses and the base address, and forwarding the second data access request.

[0148] Furthermore, the logical instructions in the aforementioned memory 1303 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0149] This embodiment discloses a computer program product, which includes a computer program / instructions stored on a computer-readable storage medium. When the computer program / instructions are executed by a computer, the computer can perform the methods provided in the above-described method embodiments, including, for example, receiving a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses; if it is determined that the multiple access addresses do not belong to the local GSM space, then calculating a maximum addressing range based on the multiple access addresses; if it is determined that the maximum addressing range is less than a preset value, then performing address compression on the multiple access addresses to obtain multiple compressed access addresses and a base address; generating a second data access request based on the multiple compressed access addresses and the base address, and forwarding the second data access request.

[0150] This embodiment provides a computer-readable storage medium storing a computer program / instruction. When the computer program / instruction is executed by a processor, it causes the computer to perform the methods provided in the above-described method embodiments, including, for example, receiving a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses; if it is determined that the multiple access addresses do not belong to the local GSM space, then calculating a maximum addressing range based on the multiple access addresses; if it is determined that the maximum addressing range is less than a preset value, then performing address compression on the multiple access addresses to obtain multiple compressed access addresses and a base address; generating a second data access request based on the multiple compressed access addresses and the base address, and forwarding the second data access request.

[0151] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0152] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0153] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0154] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0155] In the description of this specification, the references to terms such as "an embodiment," "a specific embodiment," "some embodiments," "for example," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples.

[0156] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above descriptions are merely specific embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A data transmission method, characterized in that, include: Receive a first data access request sent by the local computing unit; wherein the first data access request includes multiple access addresses; If it is determined that the multiple access addresses do not belong to the local GSM space, then the maximum addressing range is calculated based on the multiple access addresses; If it is determined that the maximum addressing range is less than a preset value, then the multiple access addresses are compressed to obtain multiple compressed access addresses and a base address; A second data access request is generated based on the multiple access compression addresses and base addresses, and then the second data access request is forwarded.

2. The method according to claim 1, characterized in that, The calculation of the maximum addressing range based on the multiple access addresses includes: Obtain the maximum and minimum access address values ​​from the plurality of access addresses; Calculate the difference between the maximum and minimum access addresses, and use this difference as the maximum addressing range.

3. The method according to claim 2, characterized in that, The step of compressing the multiple access addresses to obtain multiple compressed access addresses includes: Calculate the offset between each access address and the base address to obtain the address offset corresponding to each access address; The address offset corresponding to each access address is used as the access compressed address for each access address.

4. The method according to claim 3, characterized in that, The step of generating a second data access request based on the plurality of access compression addresses and base addresses includes: Add the base address, compression flag, and access compression address for each access address to the packet header to obtain the second data access request.

5. The method according to claim 1, characterized in that, Also includes: If it is determined that the multiple access addresses belong to the local GSM space, then the first data access request is responded to based on the local GSM space.

6. The method according to any one of claims 1 to 5, characterized in that, Also includes: Receive a third data access request; wherein the third data access request includes multiple access compression addresses and base addresses; Based on the multiple access compression addresses and base addresses included in the third data access request, the original access address corresponding to the third data access request is obtained; Based on the local GSM space and the original access address corresponding to the third data access request, respond to the third data access request.

7. A data transmission device, characterized in that, include: A receiving module is configured to receive a first data access request sent by a local computing unit; wherein the first data access request includes multiple access addresses; The judgment module is used to calculate the maximum addressing range based on the multiple access addresses after determining that the multiple access addresses do not belong to the local GSM space. The compression module is used to compress the multiple access addresses after determining that the maximum addressing range is less than a preset value, so as to obtain multiple compressed access addresses. The generation module is used to generate a second data access request based on the multiple access compression addresses and forward the second data access request.

8. A core element, characterized in that, It includes multiple computing units, global shared memory, a sending unit, and a receiving unit, among which: The global shared memory is connected to each computing unit, and is also connected to the sending unit and the receiving unit respectively. The global shared memory is used to execute the data transmission method according to any one of claims 1 to 6.

9. A graphics processor, characterized in that, It includes multiple cores as described in claim 8, and the multiple cores are connected in communication via a core bus.

10. A computer device, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the method according to any one of claims 1 to 6.

11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program / instructions that, when executed by a processor, implement the method according to any one of claims 1 to 6.

12. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the method described in any one of claims 1 to 6.