Data transmission method and complex programmable logic device (CPLD)

Directly monitor the GPU's in-bit signals and generate information transmission paths through CPLD, which solves the problem of signal instability in the GPU server and achieves stable and efficient information transmission.

CN120256351APending Publication Date: 2025-07-04NINGCHANG INFORMATION TECH (HANGZHOU) CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510286746.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-11
Publication Date
2025-07-04

AI Technical Summary

Technical Problem

In the prior art, the GPU server needs additional chips to monitor the in-place signal, resulting in unstable signal transmission and antenna effects, affecting the normal communication quality.

Method used

The complex programmable logic device CPLD is used to directly monitor the in-bit signal monitoring end of each GPU, avoiding the series connection of additional chips, and directly transmitting the identification information in the target information to the designated GPU to generate an information transmission path.

Benefits of technology

It improves information processing efficiency, avoids signal instability, ensures the stability of signal transmission, simplifies routing, and saves costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120256351A_ABST
    Figure CN120256351A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and a complex programmable logic device (CPLD), aiming at any GPU, a first port, corresponding to the GPU, in the CPLD can be connected with the input end of the GPU, a second port, corresponding to the GPU, in the CPLD can be connected with the output end of the GPU, and an in-place signal monitoring end, corresponding to the GPU, in the CPLD is connected with an in-place signal end of the GPU. The in-place signal monitoring end in the CPLD is used for monitoring the in-place signal of each GPU, and an extra chip is not required to be used for monitoring the in-place signal of each GPU, so that the phenomenon that the signal is unstable due to the fact that the extra chip is connected into a communication link in series is avoided. Meanwhile, the target information can be directly sent to the specified GPU for processing through the identification information contained in the target information, so that the processing time of the target information is shortened, and the information processing efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and particularly to a data transmission method and a Complex Programmable Logic Device (CPLD). Background Art

[0002] With the development of technology, GPU servers are applied in various scenarios due to their advantages in computing power. In the design of GPU servers, the number of Graphics Processing Units (GPUs) on a single board usually exceeds 8, and each GPU needs to be connected to a controller in a daisy chain to ensure the normal operation of the GPU server.

[0003] Currently, the controller cannot directly obtain whether each GPU is present, so it is impossible to skip the absent GPUs to form a daisy chain. Therefore, each GPU needs to be connected to a chip for monitoring the presence signal. However, since the chips are serially connected to the original communication link, signal integrity problems are likely to occur. Moreover, when a GPU is absent, the signal is transmitted through the chip, and the link connecting the absent GPU may produce an antenna effect, affecting the normal signal transmission quality. Summary of the Invention

[0004] To solve the problems in the above-mentioned prior art, embodiments of this application provide a data transmission method and a Complex Programmable Logic Device (CPLD), which can avoid the situation that the signal transmission quality is affected by the access of the chips for monitoring the presence signal after the daisy chain is formed.

[0005] In a first aspect, an embodiment of this application provides a data transmission method, which is applied to a Complex Programmable Logic Device (CPLD) in a Joint Test Action Group (JTAG) test system; the JTAG test system further includes a controller and multiple Graphics Processing Units (GPUs); for any one of the multiple GPUs, a first port corresponding to the GPU in the CPLD is connected to the input end of the GPU, a second port corresponding to the GPU in the CPLD is connected to the output end of the GPU, and a presence signal monitoring end corresponding to the GPU in the CPLD is connected to the presence signal end of the GPU; the method includes:

[0006] Obtaining the presence signal of each GPU through each presence signal monitoring end of the CPLD;

[0007] Based on the presence signal of each GPU, determining a target GPU among the multiple GPUs, and determining an information transmission path based on the target GPU; the information transmission path includes the target GPU, the first port corresponding to the target GPU, and the second port corresponding to the target GPU;

[0008] Receive the target information to be transmitted sent by the controller, and forward the target information to the specified GPU based on the information transmission path; the target information includes the identification information of the specified GPU;

[0009] After receiving the processing result corresponding to the target information, send the processing result to the controller.

[0010] Connect each GPU to the CPLD in the above manner, and use the in-position signal monitoring terminal in the CPLD to monitor the in-position signal of each GPU. There is no need to use an additional chip to monitor the in-position signal of each GPU, thus avoiding the phenomenon of signal instability caused by connecting an additional chip in series to the communication link. At the same time, the target information can be directly sent to the specified GPU for processing through the identification information included in the target information, without the target information passing through all the in-position GPUs and the chips corresponding to the out-of-position GPUs, reducing the processing time of the target information and improving the information processing efficiency.

[0011] In a possible implementation manner, after obtaining the in-position signal of the GPU through the in-position signal monitoring terminal of the CPLD, the method further includes:

[0012] Save the in-position signal of the GPU in the register corresponding to the GPU;

[0013] The determining the target GPU among the multiple GPUs based on the in-position signal of each GPU includes:

[0014] Determine the in-position signal saved in the register corresponding to each GPU at every set time period;

[0015] If the in-position signal saved in any one of the multiple registers corresponding to the multiple GPUs is the first level, determine the GPU corresponding to the arbitrary register as the target GPU.

[0016] Saving the in-position signal of the GPU in the register corresponding to the GPU allows the CPLD to obtain the in-position signal corresponding to each GPU through the register. That is to say, the controller can also directly obtain the in-position signal corresponding to each GPU, and screen out the GPU with the in-position signal being the first level as the target GPU. Using the CPLD to determine the in-position signal corresponding to each GPU can save the chips used to monitor the in-position signal of each GPU, thereby avoiding the signal being affected by the chips during the transmission process and ensuring the stability of signal transmission.

[0017] In a possible implementation manner, the determining the information transmission path based on the target GPU includes:

[0018] Obtain the identification information corresponding to each of the target GPUs, and determine the arrangement order of the target GPUs in the information transmission path based on the identification information corresponding to each of the target GPUs;

[0019] Use the first port corresponding to the first target GPU in the information transmission path as the starting end of the information transmission path, and use the second port corresponding to the last target GPU in the information transmission path as the ending end of the information transmission path;

[0020] Use the path formed by starting from the starting end, passing through each of the target GPUs, and ending at the ending end as the information transmission path.

[0021] The information transmission path, that is, the daisy chain, can be generated by the above method. Compared with the prior art, the daisy chain topology structure of the present application can save the chips used to monitor the presence signal of each GPU, simplify the wiring, save costs, and can also avoid the signal being affected by the chips during the transmission process, ensuring the stability of signal transmission.

[0022] In a possible implementation manner, the forwarding of the target information to the specified GPU based on the information transmission path includes:

[0023] Obtain the specified identification information from the target information, and determine the specified GPU based on the specified identification information;

[0024] If the specified GPU is included in the target GPUs in the information transmission path, forward the target information to the specified GPU.

[0025] The specified identification information can be obtained from the target information transmitted by the controller. By determining the specified GPU through the specified identification, the target information can be directly processed by the present specified GPU without transmitting the target information through other communication links, but directly transmitting the target information to the specified GPU, improving the efficiency in the information transmission process.

[0026] In a possible implementation manner, the method further includes:

[0027] If the specified GPU is not included in the target GPUs in the information transmission path, abort the transmission of the target information and prompt the user to replace the specified GPU.

[0028] If the specified GPU corresponding to the identification information included in the target information is not present, the transmission of the information can be aborted and the user can be asked to replace the specified GPU in the target information, reducing the possibility of failures.

[0029] In a possible implementation, after determining the information transmission path based on the target GPU, the method further includes:

[0030] If it is determined that the in-position signal stored in any one of the multiple registers has changed, determine that the change GPU corresponding to the any one register has failed, and prompt the user that the change GPU has failed;

[0031] In response to the user's repair completion instruction for the change GPU, return to execute the step of determining the target GPU among the multiple GPUs based on the in-position signal of each GPU, and determining the information transmission path based on the target GPU.

[0032] By continuously monitoring the in-position signal in the register after determining the information transmission path, a faulty GPU can be detected in a timely manner. After reporting the faulty GPU to the user, the information transmission path can be re-determined after the user repairs the GPU, avoiding the loss of target information and ensuring the efficiency of target information transmission.

[0033] In a possible implementation, after determining the information transmission path based on the target GPU, the method further includes:

[0034] If it is determined that the in-position signal stored in any one of the multiple registers has changed, determine that the change GPU corresponding to the any one register has failed;

[0035] Determine the changed information transmission path based on other target GPUs except the change GPU.

[0036] After discovering the faulty GPU, the changed information transmission path can be re-determined based on the normal GPUs, which can still ensure that the target information is sent to the in-position and normal GPUs after the GPU fails, avoiding possible failures during information transmission.

[0037] In a possible implementation, after receiving the target information to be transmitted sent by the controller and before forwarding the target information to the specified GPU, the method further includes:

[0038] If the specified GPU is processing any information other than the target information, save the target information to the queue to be processed, continue to receive other information sent by the controller, and forward the other information;

[0039] After the specified GPU completes the processing of the any information, obtain the target information from the queue to be processed through the first port corresponding to the specified GPU, and forward the target information to the specified GPU.

[0040] By using the above method, it is possible to avoid the subsequent information from being blocked due to the occupancy of the GPU during the process of processing messages by the specified GPU. By storing the target information forwarded to the same specified GPU in the queue to be processed, other unoccupied GPUs can process other target information when the GPU is occupied, ensuring the coherence of information transmission.

[0041] In a second aspect, an embodiment of the present application provides a complex programmable logic device (CPLD), including:

[0042] A memory for storing program instructions;

[0043] A processor for calling the program instructions stored in the memory and executing the steps included in the method described in the first aspect according to the obtained program instructions.

[0044] In a third aspect, an embodiment of the present application provides a JTAG test system, which includes the CPLD, a controller, and multiple GPUs described in claim 9; for any one of the multiple GPUs, a first port corresponding to the GPU in the CPLD is connected to the input end of the GPU, a second port corresponding to the GPU in the CPLD is connected to the output end of the GPU, and an in-position signal monitoring end corresponding to the GPU in the CPLD is connected to the in-position signal end of the GPU;

[0045] The CPLD is configured to obtain the in-position signal of each GPU through each in-position signal monitoring end of the CPLD;

[0046] Based on the in-position signal of each GPU, determine the target GPU among the multiple GPUs, and determine the information transmission path based on the target GPU; the information transmission path includes the target GPU, the first port corresponding to the target GPU, and the second port corresponding to the target GPU;

[0047] Receive the target information to be transmitted sent by the controller, and forward the target information to the specified GPU based on the information transmission path; the target information includes the identification information of the specified GPU;

[0048] After receiving the processing result corresponding to the target information, send the processing result to the controller.

[0049] The embodiments of the present application provide a data transmission method and a complex programmable logic device (CPLD). For any GPU, the first port corresponding to the GPU in the CPLD can be connected to the input end of the GPU, the second port corresponding to the GPU in the CPLD can be connected to the output end of the GPU, and the in-position signal monitoring end corresponding to the GPU in the CPLD is connected to the in-position signal end of the GPU. The in-position signal monitoring end in the CPLD is used to monitor the in-position signal of each GPU, eliminating the need for an additional chip to monitor the in-position signal of each GPU, and avoiding the phenomenon of signal instability caused by serially connecting an additional chip to the communication link. At the same time, the target information can be directly sent to the specified GPU for processing through the identification information included in the target information, without having the target information pass through all the in-position GPUs and the chips corresponding to the out-of-position GPUs, reducing the processing time of the target information and improving the information processing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0051] Figure 1 Schematic diagram of an application scenario of a data transmission method provided by an embodiment of the present application;

[0052] Figure 2 Schematic diagram of the topology structure of a daisy chain in the prior art;

[0053] Figure 3 Schematic diagram of the topology structure of a daisy chain provided by an embodiment of the present application;

[0054] Figure 4 Schematic flowchart of a data transmission method provided by an embodiment of the present application;

[0055] Figure 5 Schematic detailed flowchart of a data transmission method provided by an embodiment of the present application;

[0056] Figure 6 Block diagram of a data transmission device provided by an embodiment of the present application;

[0057] Figure 7 Block diagram of a CPLD provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0058] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of this application. Among them, the described embodiments are some but not all of the embodiments of this application. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of this application without creative efforts shall fall within the protection scope of this application.

[0059] In the description of the embodiments of this application, unless otherwise specified, " / " means "or". For example, A / B may represent A or B; "and / or" in the text is only a description of the association relationship between associated objects, indicating that there can be three relationships. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone.

[0060] Specifically, in the description of this application, it should be understood that the terms "center", "longitudinal", "lateral", "length", "width", "thickness", "upper", "lower", "front", "rear", "left", "right", "vertical", "horizontal", "top", "bottom", "inner", "outer", "clockwise", "counterclockwise", etc. indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. It is only for the convenience of describing this application and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation. Therefore, it should not be construed as a limitation to this application. Moreover, the "connection" and "coupling" mentioned in this application, unless otherwise specified, both include direct and indirect connection (coupling).

[0061] In addition, the terms "first" and "second" are only used for descriptive purposes and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of the described features. In the description of this application, "a plurality" means two or more, unless otherwise specifically defined.

[0062] The following further elaborates on this application in detail with reference to the accompanying drawings and specific embodiments.

[0063] In a possible embodiment, Figure 1 The following shows a schematic diagram of an application scenario of a data transmission method provided by an embodiment of this application. Refer to Figure 1As shown, the structure diagram of the Joint Test Action Group (JTAG) test system 200 can be included in the Graphics Processing Unit (GPU) server 100. In the JTAG test system 200, it includes a Complex Programmable Logic Device (CPLD) 210, a controller 220, and a GPU cluster 230 composed of multiple GPUs. Among them, the controller 220 can also be referred to as the JTAG controller. The JTAG controller is a hardware device or tool used to communicate, debug, and program with the target device through the JTAG interface, allowing developers to interact with the CPLD for debugging operations; the CPLD 210 is a programmable logic device that can be used to implement digital circuits. Compared with the Field-Programmable Gate Array (FPGA), it has fewer logic gates and resources. In theory, the CPLD 210 in this application can use the FPGA as a substitute; and each GPU in the GPU cluster 230 is used as a JTAG device to process the target information sent by the controller. The JTAG device can be not only a GPU but also a chip such as a Microcontroller Unit (MCU) that can perform specific control tasks. The JTAG test system can use the JTAG standard protocol in the GPU server to communicate with the GPU server through a dedicated test interface for function verification and monitoring.

[0064] Figure 1 The application scenario is only an example of one application scenario for implementing the embodiments of the present application. The embodiments of the present application are not limited to the above Figure 1 described application scenario. The data transmission method provided by the exemplary embodiments of the present application will be described below in combination with the above-described application scenario with reference to the accompanying drawings. It should be noted that the above application scenario is only shown for the convenience of understanding the spirit and principle of the present application, and the embodiments of the present application are not limited in this regard.

[0065] In the prior art, the GPU is directly connected to the controller, and the connection topology is as Figure 2 shown, in Figure 2There are three GPUs in total, wherein the TRST signal in the controller for resetting the JTAG test logic is connected to the receiving port for receiving the TRST signal in each GPU; the TMS signal in the controller for controlling the power on and off of the GPU is connected to the receiving port for receiving the TMS signal in each GPU; the TCK signal in the controller for synchronizing the JTAG operation is connected to the receiving port for receiving the TCK signal in each GPU, the port in the controller for sending the target information is connected to the input port of GPU3, the output port of GPU3 is connected to the input port of GPU2, the output port of GPU2 is connected to the input port of GPU1, and the output port of GPU1 is connected to the port in the controller for receiving the processing result for the target information. In addition, each GPU is equipped with a chip for monitoring the in-place signal Present_N, which can be connected to the in-place signal end of the GPU, and the chip can also be connected in parallel under the corresponding GPU to achieve link connectivity when the GPU is not in place.

[0066] In a possible embodiment, since the chip is connected in series to the original communication link, it is easy to have incomplete signals, and when the GPU is not in place, the signal is transmitted through the chip, and the link connected to the GPU that is not in place may produce an antenna effect, affecting the normal signal transmission quality. Therefore, the embodiment of the present application provides a data transmission method and a complex programmable logic device CPLD to solve the problems in the above-mentioned prior art.

[0067] In one possible embodiment, Figure 3 FIG. 1 shows a schematic diagram of the topological structure of the daisy chain provided in an embodiment of the present application, which can also be considered as a schematic diagram of the connection relationship within the JTAG test system. Figure 3 In the CPLD, the controller is only connected to the CPLD, and the CPLD has 7 common ports, which are connected to the port for sending TRST signal in the controller, the port for sending TMS signal in the controller, the port for sending TCK signal in the controller, the port for outputting target information, the port for inputting processing results, and the I2C SCL for providing clock signal in I2C communication and the I2C SDA for transmitting actual data in I2C communication. Figure 3There are a total of 8 JTAG devices, that is, GPUs. For any one of the multiple GPUs, the first port corresponding to the GPU in the CPLD is connected to the input end of the GPU, the second port corresponding to the GPU in the CPLD is connected to the output end of the GPU, and the in-position signal monitoring end corresponding to the GPU in the CPLD is connected to the in-position signal end of the GPU. At the same time, the TRST signal used to reset the JTAG test logic in the CPLD is respectively connected to the receiving ports for receiving the TRST signal in each GPU; the TMS signal used to control the power-on and power-off of the GPU in the CPLD is respectively connected to the receiving ports for receiving the TMS signal in each GPU; the TCK signal used to synchronize the JTAG operation in the CPLD is respectively connected to the receiving ports for receiving the TCK signal in each GPU.

[0068] For example, for one GPU3 among the multiple GPUs, the port TDI3 corresponding to GPU3 in the CPLD is connected to the input end of GPU3, the port TDO3 corresponding to GPU3 in the CPLD is connected to the output end of GPU3, and the in-position signal monitoring end PRNT3 corresponding to GPU3 in the CPLD is connected to the in-position signal end of the GPU.

[0069] It should be noted that the CPLD contains a communication link, which can form a path between the port connected to the controller and the corresponding output port or input port connected to the GPU. For example, the port for sending the TRST signal in the controller can output the same signal as the controller output through the communication link inside the CPLD at the TRST ports connected to each GPU.

[0070] Figure 4 The flowchart of a data transmission method provided by an embodiment of the present application is shown, as Figure 4 shown, the method may include the following steps:

[0071] Step S401, obtain the in-position signal of each GPU through each in-position signal monitoring end of the CPLD.

[0072] In a possible embodiment, the CPLD can store the in-position signal of the GPU in the register corresponding to the GPU. The in-position signal monitoring end in the CPLD corresponding to the GPU is connected to the in-position signal end of the GPU. Therefore, each in-position signal monitoring end in the CPLD can be connected to a register. Whenever the in-position signal monitoring end in the CPLD monitors the in-position signal of the GPU, the CPLD can store the monitored in-position signal of the GPU in the corresponding register. It should be noted that different time intervals can be determined according to different needs. The in-position signal of the GPU can be monitored every other time interval, or the in-position signal of each GPU can be monitored in real time, so that the monitoring of the GPU with the changed in-position signal can be completed at the moment when the in-position signal of the GPU changes.

[0073] Step S402: Based on the in-position signal of each GPU, determine the target GPU among multiple GPUs, and determine the information transmission path based on the target GPU.

[0074] In a possible embodiment, the in-position signal stored in the register corresponding to each GPU can be determined every set time period, and the in-position signal stored in each register can be determined. If the in-position signal stored in one of the registers is the first level, that is, the high level, it represents that the in-position state of the GPU corresponding to this register is in position, and this GPU can be used as the target GPU. Each GPU can be confirmed, so as to determine the target GPU among multiple GPUs, and use it to generate the corresponding information transmission path in the subsequent steps. For example, among 8 GPUs, the in-position signals of GPU1, GPU2, GPU3, GPU4, GPU7, and GPU8 are the first level. Then it can be determined that the in-position GPUs are GPU1, GPU2, GPU3, GPU4, GPU7, and GPU8, and the out-of-position GPUs are GPU5 and GPU6. Therefore, the target GPUs are GPU1, GPU2, GPU3, GPU4, GPU7, and GPU8.

[0075] In a possible embodiment, after determining the target GPU, the information transmission path can be determined based on the target GPU by the following method. First, the identification information corresponding to each target GPU can be obtained. The identification information can be the GPU number corresponding to each target GPU. For example, GPU3 can be used as the identification information of the third GPU. Second, the arrangement order of the target GPUs in the information transmission path can be determined based on the identification information corresponding to each target GPU. For example, if the target GPUs include GPUs with identification information of GPU1, GPU2, GPU3, GPU4, GPU6, GPU7, and GPU8, then in the information transmission path, it can be considered that the order of the GPUs is arranged according to the corresponding identification information GPU1, GPU2, GPU3, GPU4, GPU6, GPU7, and GPU8. The first target GPU and the last target GPU in the above information transmission path can be found. Among them, the first port corresponding to the first target GPU, that is, the input end, is the starting end of the information transmission path, and the second port corresponding to the last target GPU, that is, the output end, is the ending end of the information transmission path. The path formed by starting from the starting end, passing through each target GPU, and ending at the ending end can be used as the information transmission path. If there are eight target GPUs, it can be considered that the connected topology structure is the same as that of Figure 3 the topology structure shown.

[0076] It should be noted that the information transmission path includes multiple sub-information transmission paths. For example, if GPU3 is specified as the GPU for processing target information, then it can be considered that the link for communication connection with GPU3, the corresponding port on the CPLD, and GPU3 form a sub-information transmission path. Therefore, the information transmission path is composed of multiple self-information transmission paths.

[0077] In a possible embodiment, after step S402 is completed, based on the presence signals of each GPU, the target GPU among the multiple GPUs is determined, and after the information transmission path is determined based on the target GPU, the presence signals stored in each register can be continuously monitored. If it is determined that the presence signal stored in any one of the multiple registers changes, such as from the first level to the second level, that is, from the high level to the low level, or from the second level to the first level, that is, from the low level to the high level, it can be determined that the corresponding changed GPU has failed. During the failure of the changed GPU, the CPLD can stop the transmission of the target information. At the same time, a prompt can also be given to the user. The prompt can include the identification information of the changed GPU, the possible faults and error types that the changed GPU may have, and a button for the user to indicate that the repair is completed. If the user clicks the button, it can be considered that the user has completed the repair of the changed GPU. The CPLD can respond to the repair completion instruction of the user for the changed GPU and return to execute the step of determining the target GPU among the multiple GPUs based on the presence signals of each GPU and determining the information transmission path based on the target GPU, that is, step S402.

[0078] It should be noted that during the failure of the changed GPU, in addition to stopping the transmission of the target information, the CPLD can also determine the changed information transmission path based on other target GPUs except the changed GPU to avoid the impact of the faulty changed GPU on the target information transmission process. For example, originally the target GPUs are GPU1, GPU2, GPU3, GPU4, GPU6, GPU7, GPU8. After a period of time, the presence signal of GPU1 changes from the first level to the second level, it can be considered that GPU1 has failed. Therefore, in order to avoid the impact of the faulty GPU1 on the target information transmission process, a corresponding information transmission path can be regenerated based on GPU2, GPU3, GPU4, GPU6, GPU7, GPU8, so as to ensure the normal transmission of the target information in the new information transmission path.

[0079] Step S403: Receive the target information to be transmitted sent by the controller and forward the target information to the specified GPU based on the information transmission path.

[0080] In a possible embodiment, the CPLD can receive the target information to be transmitted sent by the controller through bus communication, or determine the target information to be transmitted through the output port of the controller. After obtaining the target information to be transmitted, the CPLD can obtain the specified identification information from the target information. Usually, the target information contains the specified identification information and the information body content. The specified identification information corresponds to a specified GPU. The information body content can be sent to the specified GPU for processing. Therefore, the CPLD can determine the specified GPU based on the specified identification information. If the target GPU in the information transmission path includes the specified GPU, that is, the specified GPU is the GPU with the in-position signal at the first level, the target information can be forwarded to the specified GPU. Conversely, if the target GPU in the information transmission path does not include the specified GPU, that is, the specified GPU is the GPU with the in-position signal at the second level, the user can be prompted to replace the specified GPU. The way for the user to replace the specified GPU can be to change the specified GPU at the second level to the first level, or to modify the specified identification information included in the target information. The specified identification information can be modified to the identification information corresponding to the GPU with the in-position signal at the first level.

[0081] It should be noted that the specified GPU is usually one GPU. Taking Figure 3 the topology structure as an example, if GPU3 is used as the specified GPU, then during the process of transmitting the target information, the starting end of the information transmission path is TDI3 on the CPLD, and the ending end is TDO3 on the CPLD. Only GPU3 is passed through during this period. However, it cannot be excluded that the specified GPU includes multiple GPUs. Taking Figure 3 the topology structure as an example, if GPU3 and GPU4 are used as the specified GPUs at the same time, then during the process of transmitting the target information, the starting end of the information transmission path is TDI3 on the CPLD, and the ending end is TDO4 on the CPLD.

[0082] In a possible embodiment, after receiving the target information waiting for transmission sent by the controller, if the CPLD detects that the specified GPU is processing any information other than the target information, that is, the specified GPU is occupied by any information other than the target information and cannot process the target information, the target information can be saved to the pending queue, and other information sent by the controller can continue to be received and forwarded for other information. It should be noted that there are two possible embodiments here. One is that the specified GPU corresponding to the other information continuously received from the controller is still the occupied GPU, then the other information sent by the controller can be saved to the pending queue again, and other information sent by the controller can continue to be received; the other is that the specified GPU corresponding to the other information continuously received from the controller is the unoccupied GPU, then the other information sent by the controller can be sent to the corresponding specified GPU, and the subsequent information transmission process can continue to be completed. After the occupied specified GPU finishes processing the information, that is, the occupied specified GPU is no longer occupied and can process other information, the target information that can be processed by the specified GPU can be obtained from the pending queue, and the target information is forwarded to the specified GPU through the first port corresponding to the specified GPU.

[0083] Step S404, after receiving the processing result corresponding to the target information, send the processing result to the controller.

[0084] In a possible embodiment, if Figure 3 the topology structure of is taken as an example, and GPU3 is used as the specified GPU, the complete processing process of the target information is that the controller sends the target information to the CPLD. After receiving the target information, the CPLD sends the target information to the TDI port of GPU3 through the TDI3 port. GPU3 will complete the processing of the target information through its own components. Then GPU3 returns the processing result for the target information to the TDO3 port located on the CPLD through the TDO located on GPU3. After receiving the processing result corresponding to the target information, the CPLD can send the processing result to the controller, thereby completing the transmission and processing of the target information.

[0085] According to a data transmission method and a complex programmable logic device (CPLD) provided by an embodiment of the present application, for any GPU, the first port corresponding to the GPU in the CPLD can be connected to the input end of the GPU, the second port corresponding to the GPU in the CPLD can be connected to the output end of the GPU, and the in-position signal monitoring end corresponding to the GPU in the CPLD is connected to the in-position signal end of the GPU. The in-position signal monitoring end in the CPLD is used to monitor the in-position signal of each GPU, eliminating the need to use an additional chip to monitor the in-position signal of each GPU, and thus avoiding the phenomenon of signal instability caused by serially connecting an additional chip to the communication link. At the same time, the target information can be directly sent to the specified GPU for processing through the identification information included in the target information, without having the target information pass through all the in-position GPUs and the chips corresponding to the out-of-position GPUs, reducing the processing time of the target information and improving the processing efficiency of the information.

[0086] In a specific embodiment, Figure 5 The specific flowchart of a data transmission method provided by an embodiment of the present application is shown, as Figure 5 shown, the method may include the following steps:

[0087] Step S501, obtain the in-position signal of each GPU through each in-position signal monitoring end of the CPLD.

[0088] Step S502, save the in-position signal of the GPU in the register corresponding to the GPU.

[0089] Step S503, determine the in-position signal saved in the register corresponding to each GPU every set time period.

[0090] Step S504, if the in-position signal saved in any one of the multiple registers corresponding to multiple GPUs is the first level, determine the GPU corresponding to any one register as the target GPU.

[0091] Step S505, obtain the identification information corresponding to each target GPU, and determine the arrangement order of the target GPUs in the information transmission path based on the identification information corresponding to each target GPU.

[0092] Step S506, use the first port corresponding to the first target GPU in the information transmission path as the starting end of the information transmission path, and use the second port corresponding to the last target GPU in the information transmission path as the ending end of the information transmission path.

[0093] Step S507, use the path formed by passing through each target GPU starting from the starting end and ending at the ending end as the information transmission path.

[0094] In a possible embodiment, after determining the information transmission path, if it is determined that the in-position signal stored in any one of the multiple registers changes, it is determined that the corresponding changed GPU of any one of the registers fails, and the user is prompted that the changed GPU has failed. In response to the user's repair completion instruction for the changed GPU, return to execute step S501.

[0095] Step S508, receive the target information to be transmitted sent by the controller.

[0096] Step S509, obtain the specified identification information from the target information, and determine the specified GPU based on the specified identification information.

[0097] Step S510, determine whether the target GPU in the information transmission path includes the specified GPU. If so, execute step S511; if not, execute step S512.

[0098] Step S511, forward the target information to the specified GPU.

[0099] In a possible embodiment, if the specified GPU is processing any information other than the target information, the target information is saved to the pending queue, continue to receive other information sent by the controller, and forward the other information. After the specified GPU completes the processing of any information, through the first port corresponding to the specified GPU, obtain the target information from the pending queue, and forward the target information to the specified GPU. After executing step S511, step S513 can be continued.

[0100] Step S512, abort the transmission of the target information, and prompt the user to replace the specified GPU. After executing step S512, step S510 can be returned to for execution.

[0101] Step S513, after receiving the processing result corresponding to the target information, send the processing result to the controller.

[0102] Based on the same inventive concept Figure 6 is a structural block diagram of a data transmission device provided by an embodiment of the present application, as Figure 6 shown, the data transmission device 600 may include:

[0103] The in-position signal acquisition unit 601 is used to acquire the in-position signal of each GPU through each in-position signal monitoring terminal of the CPLD;

[0104] An information transmission path determination unit 602, configured to determine a target GPU among the multiple GPUs based on the presence signal of each GPU, and determine an information transmission path based on the target GPU; the information transmission path includes the target GPU, a first port corresponding to the target GPU, and a second port corresponding to the target GPU;

[0105] A target information forwarding unit 603, configured to receive target information to be transmitted sent by the controller, and forward the target information to a specified GPU based on the information transmission path; the target information includes identification information of the specified GPU;

[0106] A processing result sending unit 604, configured to send the processing result to the controller after receiving the processing result corresponding to the target information.

[0107] In a possible implementation manner, the presence signal acquisition unit 601 is further configured to save the presence signal of the GPU in a register corresponding to the GPU;

[0108] In a possible implementation manner, the information transmission path determination unit 602 is specifically configured to determine the presence signal saved in the register corresponding to each GPU every set time period;

[0109] If the presence signal saved in any one of the multiple registers corresponding to the multiple GPUs is a first level, determine the GPU corresponding to the arbitrary register as the target GPU.

[0110] In a possible implementation manner, the information transmission path determination unit 602 is specifically configured to obtain identification information corresponding to each target GPU, and determine the arrangement order of the target GPUs in the information transmission path based on the identification information corresponding to each target GPU;

[0111] Use the first port corresponding to the first target GPU in the information transmission path as the starting end of the information transmission path, and use the second port corresponding to the last target GPU in the information transmission path as the ending end of the information transmission path;

[0112] Use the path formed by starting from the starting end, passing through each target GPU, and ending at the ending end as the information transmission path.

[0113] In a possible implementation manner, the target information forwarding unit 603 is specifically configured to obtain specified identification information from the target information, and determine the specified GPU based on the specified identification information;

[0114] If the specified GPU is included in the target GPUs in the information transmission path, forward the target information to the specified GPU.

[0115] In a possible implementation, the target information forwarding unit 603 is further configured to, if the target GPUs in the information transmission path do not include the specified GPU, abort the transmission of the target information and prompt the user to replace the specified GPU.

[0116] In a possible implementation, the information transmission path determination unit 602 is further configured to, if it is determined that the in-position signal stored in any one of the multiple registers changes, determine that the changing GPU corresponding to the any one of the registers fails, and prompt the user that the changing GPU has failed;

[0117] In response to the user's repair completion instruction for the changing GPU, return to execute the steps of determining the target GPUs among the multiple GPUs based on the in-position signals of each GPU, and determining the information transmission path based on the target GPUs.

[0118] In a possible implementation, the information transmission path determination unit 602 is further configured to, if it is determined that the in-position signal stored in any one of the multiple registers changes, determine that the changing GPU corresponding to the any one of the registers fails;

[0119] Determine the changed information transmission path based on other target GPUs except the changing GPU.

[0120] In a possible implementation, the target information forwarding unit 603 is further configured to, if the specified GPU is processing any information other than the target information, save the target information to the pending queue, continue to receive other information sent by the controller, and forward the other information;

[0121] After the specified GPU finishes processing the any information, obtain the target information from the pending queue through the first port corresponding to the specified GPU, and forward the target information to the specified GPU.

[0122] Based on the same inventive concept, an embodiment of the present application provides a CPLD. This computing device can implement the functions of the data transmission method discussed above. Please refer to Figure 7 , the CPLD 700 includes a memory 701, a processor 702, and a bus 703.

[0123] A memory 701 for storing computer programs executed by a processor 702. The memory 701 may mainly include a program storage area and a data storage area. Among them, the program storage area may store an operating system and programs required to run the instant messaging function, etc.; the data storage area may store various instant messaging information and operation instruction sets, etc.

[0124] The memory 701 may be a volatile memory, such as a random-access memory (RAM); the memory 701 may also be a non-volatile memory, such as a read-only memory, a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD), or the memory 701 is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 701 may be a combination of the above memories.

[0125] The processor 702 may include one or more central processing units (CPUs) or be a digital processing unit, etc. The processor 702 is used to implement the data transmission method in the above embodiments when calling the computer program stored in the memory 701.

[0126] In the embodiments of the present application, the specific connection medium between the above-mentioned memory 701 and the processor 702 is not limited. In the embodiments of the present application Figure 7 it is shown that the memory 701 and the processor 702 are connected through a bus 703. The bus 703 is represented by a thick line in Figure 7 The connection manners between other components are only for illustrative purposes and are not to be construed as limiting. The bus 703 may be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience of representation, Figure 7 only a thick line is used to represent it in

[0127] Based on the same inventive concept, the embodiments of the present application provide a computer-readable storage medium. The computer program product includes: computer program code. When the computer program code runs on a computer, it causes the computer to execute any of the data transmission methods described above. Since the principle of solving problems by the above computer-readable storage medium is similar to that of the data transmission method, the implementation of the above computer-readable storage medium can refer to the implementation of the method, and the repeated parts will not be described again.

[0128] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code.

[0129] The present application is described with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, as well as the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing devices generate means for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.

[0130] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufactured article including instruction means that implement the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.

[0131] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are performed on the computer or other programmable device to generate a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in Figure 1 one flow or multiple flows and / or blocks Figure 1 one block or multiple blocks.

[0132] Obviously, those skilled in the art can make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application is also intended to include these modifications and variations.

Claims

1. A data transmission method, characterized in that, Complex Programmable Logic Device (CPLD) applied to the Joint Test Action Group (JTAG) test system; the JTAG test system further includes a controller and multiple Graphics Processing Units (GPUs); for any one of the multiple GPUs, the first port corresponding to the GPU in the CPLD is connected to the input end of the GPU, the second port corresponding to the GPU in the CPLD is connected to the output end of the GPU, and the in - position signal monitoring end corresponding to the GPU in the CPLD is connected to the in - position signal end of the GPU; the method includes: Obtain the in - position signal of each GPU through each in - position signal monitoring end of the CPLD; Based on the in - position signal of each GPU, determine the target GPU among the multiple GPUs, and determine the information transmission path based on the target GPU; the information transmission path includes the target GPU, the first port corresponding to the target GPU, and the second port corresponding to the target GPU; Receive the target information to be transmitted sent by the controller, and forward the target information to the specified GPU based on the information transmission path; the target information includes the identification information of the specified GPU; After receiving the processing result corresponding to the target information, send the processing result to the controller.

2. The method according to claim 1, wherein After obtaining the in - position signal of the GPU through the in - position signal monitoring end of the CPLD, the method further includes: Save the in - position signal of the GPU in the register corresponding to the GPU; The determining the target GPU among the multiple GPUs based on the in - position signal of each GPU includes: Determine the in - position signal saved in the register corresponding to each GPU at every set time period; If the in - position signal saved in any one of the multiple registers corresponding to the multiple GPUs is the first level, determine the GPU corresponding to the arbitrary register as the target GPU.

3. The method according to claim 1, characterized in that, The determining the information transmission path based on the target GPU includes: Obtain the identification information corresponding to each target GPU, and determine the arrangement order of the target GPU in the information transmission path based on the identification information corresponding to each target GPU; Take the first port corresponding to the first target GPU in the information transmission path as the starting end of the information transmission path, and take the second port corresponding to the last target GPU in the information transmission path as the ending end of the information transmission path; Take the path formed by starting from the starting end, passing through each target GPU, and ending at the ending end as the information transmission path.

4. The method according to claim 1, wherein The forwarding the target information to the specified GPU based on the information transmission path includes: Obtain the specified identification information from the target information, and determine the specified GPU based on the specified identification information; If the target GPUs in the information transmission path include the specified GPU, forward the target information to the specified GPU.

5. The method according to claim 4, characterized in that The method further includes: If the target GPU in the information transmission path does not include the specified GPU, abort the transmission of the target information and prompt the user to replace the specified GPU.

6. The method according to claim 1, wherein After determining the information transmission path based on the target GPU, the method further includes: If it is determined that the in-position signal stored in any one of the multiple registers has changed, determine that the changing GPU corresponding to the any one register has failed, and prompt the user that the changing GPU has failed; In response to the user's repair completion instruction for the changing GPU, return to execute the step of determining the target GPU among the multiple GPUs based on the in-position signal of each GPU, and determining the information transmission path based on the target GPU.

7. The method according to claim 1, characterized in that, After determining the information transmission path based on the target GPU, the method further includes: If it is determined that the in-position signal stored in any one of the multiple registers has changed, determine that the changing GPU corresponding to the any one register has failed; Determine the changing information transmission path based on other target GPUs except the changing GPU.

8. The method according to claim 1, characterized in that After receiving the target information to be transmitted sent by the controller and before forwarding the target information to the specified GPU, the method further includes: If the specified GPU is processing any information other than the target information, save the target information to the pending queue, continue to receive other information sent by the controller, and forward the other information; After the specified GPU completes the processing of the any information, obtain the target information from the pending queue through the first port corresponding to the specified GPU, and forward the target information to the specified GPU.

9. A Complex Programmable Logic Device (CPLD), characterized in that, Includes: A memory for storing program instructions; A processor for calling the program instructions stored in the memory and executing the steps included in the method according to any one of claims 1-8 according to the obtained program instructions.

10. A JTAG test system, characterized in that, The JTAG test system includes the CPLD, the controller and multiple GPUs as claimed in claim 9; for any one GPU among the multiple GPUs, the first port corresponding to the GPU in the CPLD is connected to the input end of the GPU, the second port corresponding to the GPU in the CPLD is connected to the output end of the GPU, and the in-position signal monitoring end corresponding to the GPU in the CPLD is connected to the in-position signal end of the GPU; The CPLD is used to obtain the in-position signal of each GPU through each in-position signal monitoring end of the CPLD; Based on the in-position signal of each GPU, determine the target GPU among the multiple GPUs, and determine the information transmission path based on the target GPU; the information transmission path includes the target GPU, the first port corresponding to the target GPU, and the second port corresponding to the target GPU; Receive the target information to be transmitted sent by the controller, and forward the target information to the specified GPU based on the information transmission path; the target information includes the identification information of the specified GPU; After receiving the processing result corresponding to the target information, send the processing result to the controller.