A data processing method and related apparatus
By generating memory-semantic-based requests through a processing module and performing single-point sending and parallel retransmission, the problems of high storage overhead and low affinity in the RDMA request retransmission mechanism are solved, thereby improving system efficiency and robustness.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-12-31
- Publication Date
- 2026-06-30
AI Technical Summary
In existing technologies, the request retransmission mechanism based on RDMA requires the I/O module to store a large amount of context information, resulting in high storage overhead. Furthermore, the different request semantics lead to low on-chip affinity.
The processing module generates both the original request and the retransmission request, both of which are based on memory semantics. The processing module directly determines the retransmission timing, while the I/O module only performs single-point sending and supports parallel retransmission.
It reduces the storage resource usage of the I/O module, improves on-chip affinity, and reduces communication and retransmission time overhead.
Smart Images

Figure CN122308711A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a data processing method, a computer-readable storage medium, and a computer program product. Background Technology
[0002] Interconnection scenarios involving multiple computing devices often result in cross-chip request timeouts or data errors due to cross-optical interconnection and frequent intermittent outages, affecting the normal operation of services. To ensure the normal operation of the system, retransmission is required, but the retransmission mechanism can have a significant impact on system performance and robustness.
[0003] Currently, the mainstream request retransmission technology is mainly based on the Remote Direct Memory Access (RDMA) network protocol. Specifically, the processing module of the computing device can generate the original data request, which can then be sent to other computing devices through the I / O module (e.g., an I / O module). Simultaneously, the I / O module needs to record the context information of the data request. When scenarios affecting system robustness occur, such as packet errors or missing packets, the RDMA-based retransmission mechanism requires the I / O module to generate a retransmission request based on the data request context information. This leads to the following problems:
[0004] The I / O module requires a large amount of on-chip resources to store context information, resulting in significant storage overhead. Furthermore, the semantics of the requests generated by the I / O module differ from those generated by the processing module, leading to low on-chip affinity. Summary of the Invention
[0005] In a first aspect, this application provides a data processing method, comprising: a processing module of a first computing device generating a first data request based on request-related data (e.g., request type, request destination address, etc.) stored in the storage space of the processing module; an I / O (input / output) module of the first computing device sending the first data request to a second computing device; when the second computing device fails to respond to the first data request, the processing module generating a second data request based on the request-related data; the second data request being a retransmission request of the first data request, both the second data request and the first data request being requests based on memory semantics; and the I / O module sending the second data request to the second computing device.
[0006] In this embodiment, both the original request (first data request) and the retransmission request (second data request) are generated by the computing module of the computing device based on the data obtained from the storage space of the processing module, and both requests are based on memory semantics. On the one hand, the I / O module does not need to generate retransmission requests, which can reduce the I / O module's occupation of storage resources. On the other hand, the fact that both the original request (first data request) and the retransmission request (second data request) are based on memory semantics can improve on-chip affinity.
[0007] In one possible implementation, failure to respond to the first data request includes: the response data for the first data request not being received after a timeout, a communication link failure between the first computing device and the second computing device, or the response data for the first data request being erroneous.
[0008] In one possible implementation, the processing module can retrieve the relevant data from the same storage space when generating the original request and the retransmission request, thus eliminating the need for additional storage space to store the data required to generate the request. For example, the processing module can retrieve the requested data from the storage space and generate a first data request based on the requested data; the processing module can also retrieve the requested data from the storage space and generate a second data request based on the requested data.
[0009] In one possible implementation, memory semantics specifically refers to load store semantics.
[0010] In one possible implementation, the second data request carries indication information of the second computing device (e.g., the identifier of the second computing device); the I / O module can send the second data request to the second computing device via unicast based on the indication information of the second computing device.
[0011] In existing technologies, since the retransmission request is generated by the I / O module, and this retransmission request is based on a network protocol expression, it does not support single-point transmission but is sent in the form of broadcast. This leads to some additional communication overhead. However, the request based on memory semantic expression can carry the indication information of the sending destination of the request (e.g., the indication information of the second computing device). Therefore, it can support single-point transmission, that is, send the second data request to the second computing device in a unicast manner, thereby reducing communication overhead.
[0012] In one possible implementation, the method further includes: a processing module generating a third data request; an I / O module sending the third data request to a third computing device; the processing module generating a fourth data request when the second computing device fails to respond to the third data request; the fourth data request being a retransmission request of the third data request, both the third and fourth data requests being requests based on memory semantics; and the I / O module sending the fourth data request to the third computing device in parallel while sending the second data request to the second computing device.
[0013] In this embodiment, only the requests that need to be retransmitted can be retransmitted, so multiple requests that need to be retransmitted can be sent in parallel, thereby reducing the overall time overhead of retransmission requests.
[0014] In existing technologies, when it is determined that a request needs to be retransmitted, all requests following that request are retransmitted. In this embodiment, only the requests that need to be retransmitted are retransmitted, thereby reducing communication overhead. In one possible implementation, the processing module generates a fifth data request; the fifth data request is a request following the first data request; if the second computing device successfully responds to the fifth data request, the processing module does not retransmit the fifth data request.
[0015] In one possible implementation, the processing module is memory, direct memory access (DMA), a memory manager, or a central processing unit. In another possible implementation, the first data request and the second data request are either read requests or write requests.
[0016] In one possible implementation, the method further includes: when the second computing device successfully responds to the first data request, the processing module writes the response data of the second computing device to the first data request into main memory.
[0017] Secondly, this application provides a data processing method, the method comprising: receiving a first data request sent by a first computing device; receiving a second data request sent by the first computing device; the second data request being a retransmission request of the first data request, both the second data request and the first data request being requests based on memory semantics; and sending reply data of the second data request to the first computing device.
[0018] Thirdly, this application provides a system comprising: a first computing device and a second computing device; the first computing device and the second computing device communicating;
[0019] The first computing device is used to perform any of the methods described in the first aspect above;
[0020] The second computing device is used to execute the method described in the second aspect above.
[0021] Fourthly, this application provides a data processing device, including a processing module and an I / O module;
[0022] The processing module is configured to generate a first data request based on request-related data, the request-related data being stored in the storage space of the processing module, and sending the first data request to a second computing device through the I / O module; and to generate a second data request based on the request-related data, the second data request being a retransmission request of the first data request, both the second data request and the first data request being requests based on memory semantics, and sending the second data request to the second computing device through the I / O module.
[0023] In one possible implementation, failure to respond to the first data request includes:
[0024] The response data for the first data request timed out and was not received, the communication link between the first computing device and the second computing device failed, or the response data for the first data request was incorrect.
[0025] In one possible implementation, the first data request is generated based on the requested data retrieved from storage space;
[0026] The processing module is specifically used to: retrieve the requested data from the storage space and generate a second data request based on the requested data.
[0027] In one possible implementation, memory semantics specifically refers to load store semantics.
[0028] In one possible implementation, the second data request carries indication information of the second computing device;
[0029] The I / O module is specifically used for:
[0030] Based on the instructions from the second computing device, a second data request is sent to the second computing device via unicast.
[0031] In one possible implementation, the processing module is also used for:
[0032] A third data request is generated and sent to a third computing device via an I / O module. If the second computing device fails to respond to the third data request, a fourth data request is generated. The fourth data request is a retransmission request of the third data request. Both the third and fourth data requests are requests based on memory semantics. The fourth data request is sent to the third computing device in parallel via the I / O module while the second data request is being sent to the second computing device.
[0033] In one possible implementation, the processing module is further configured to: generate a fifth data request; the fifth data request is a request following the first data request;
[0034] The I / O module is also used to prevent the retransmission of the fifth data request if the second computing device successfully responds to the fifth data request.
[0035] In one possible implementation, the processing module is memory, direct memory access (DMA), a memory manager, or a central processing unit. In another possible implementation, the first data request and the second data request are either read requests or write requests.
[0036] In one possible implementation, the processing module is further configured to write the response data of the second computing device to the first data request into main memory when the second computing device successfully responds to the first data request.
[0037] Fifthly, this application provides a data processing apparatus, which may include a memory, a processor, and a bus system, wherein the memory is used to store a program, and the processor is used to execute the program in the memory to perform the methods described in the first aspect above and any optional methods thereof, or the methods described in the second aspect above and any optional methods thereof.
[0038] In a sixth aspect, embodiments of this application provide a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to perform the methods described in the first aspect and any optional methods thereof, or the methods described in the second aspect and any optional methods thereof.
[0039] In a seventh aspect, embodiments of this application provide a computer program that, when run on a computer, causes the computer to perform the methods described in the first aspect above and any optional methods thereof, or the methods described in the second aspect above and any optional methods thereof.
[0040] Eighthly, this application provides a chip system including a processor for supporting the implementation of the functions involved in the foregoing aspects, such as transmitting or processing data or information involved in the foregoing methods. In one possible design, the chip system further includes a memory for storing program instructions and data necessary for execution or training devices. This chip system may be composed of chips or may include chips and other discrete devices. Attached Figure Description
[0041] To more clearly illustrate the technical methods of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly described below.
[0042] Figure 1A schematic diagram of an application architecture provided for an embodiment of this application;
[0043] Figures 2 to 5 This is a schematic diagram of a data processing method provided in an embodiment of this application;
[0044] Figure 6 A schematic diagram of the structure of an apparatus provided in an embodiment of this application;
[0045] Figure 7 A schematic diagram of an apparatus provided in an embodiment of this application;
[0046] Figure 8 This is a schematic diagram of the structure of a server provided in an embodiment of this application. Detailed Implementation
[0047] The embodiments of the present invention will now be described with reference to the accompanying drawings. The terminology used in the embodiments section is for illustrative purposes only and is not intended to limit the scope of the invention.
[0048] The embodiments of this application will now be described with reference to the accompanying drawings. Those skilled in the art will recognize that, with technological advancements and the emergence of new scenarios, the technical solutions provided in the embodiments of this application are equally applicable to similar technical problems.
[0049] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.
[0050] This application provides a data processing method, which can be applied to... Figure 1 The implementation environment shown. For example... Figure 1 As shown, the implementation environment includes at least two devices, such as a first computing device 101 and a second computing device 102. The first computing device 101 and the second computing device 102 are communicatively connected. For example, the first computing device 101 sends a data request to the second computing device 102, and the second computing device 102 sends a response to the data request back to the first computing device 101.
[0051] Optionally, in this embodiment, the first computing device 101 is a data transmission sender or receiver, used to send data requests or receive responses to data requests. The first computing device 101 and the second computing device 102 can be terminals or servers. Terminals can be mobile phones, tablets, computers with wireless transceiver capabilities, personal communication service (PCS) phones, desktop computers, personal digital assistants (PDAs), wearable devices, virtual reality (VR) terminal devices, augmented reality (AR) terminal devices, wireless terminals in industrial control, self-driving, remote medical surgery, smart grids, transportation safety, smart cities, smart homes, etc. Servers can be independent physical servers, server clusters composed of multiple physical servers, or distributed systems, etc.
[0052] The first computing device 101 and the second computing device 102 can be a single chip in a fully packaged server.
[0053] More specifically, the first computing device 101 and the second computing device 102 can be nodes in a large-scale computing cluster, for example, referring to... Figure 2 The first computing device 101 and the second computing device 102 can be server nodes. Multiple server nodes can form an AI matrix, an AI matrix can form an AI rack, and an AI rack can form an AI data center.
[0054] In multi-chip interconnected scenarios, data errors, random packet loss, packet corruption, and intermittent physical link (optical module) outages often occur, significantly impacting system robustness. Different types of errors have different characteristics and often require different response strategies.
[0055] Interconnection scenarios involving multiple computing devices often result in cross-chip request timeouts or data errors due to cross-optical interconnection and frequent intermittent outages, affecting the normal operation of services. To ensure the normal operation of the system, retransmission is required, but the retransmission mechanism can have a significant impact on system performance and robustness.
[0056] Currently, the mainstream request retransmission technology is mainly based on the Remote Direct Memory Access (RDMA) network protocol. Specifically, the processing module of the computing device can generate the original data request, which can then be sent to other computing devices through the I / O module (e.g., an I / O module). Simultaneously, the I / O module needs to record the context information of the data request. When scenarios affecting system robustness occur, such as packet errors or missing packets, the RDMA-based retransmission mechanism requires the I / O module to generate a retransmission request based on the data request context information. This leads to the following problems:
[0057] The I / O module requires a large amount of on-chip resources to store context information, resulting in significant storage overhead. Furthermore, the semantics of the requests generated by the I / O module differ from those generated by the processing module, leading to low on-chip affinity.
[0058] To address the aforementioned problems, embodiments of this application provide a data processing method. (Refer to...) Figure 3 , Figure 3 An embodiment of a data processing method provided in this application is illustrated, such as... Figure 3 As shown, the data processing method provided in this application embodiment may include:
[0059] 301. The processing module of the first computing device generates a first data request based on the request-related data; the request-related data is stored in the storage space of the processing module.
[0060] The embodiments of this application can be applied to a first computing device. The first computing unit includes a processing module and an I / O module. The processing module is a memory management unit or a central processing unit. For example, the processing module can be a cache, a cache management unit, a DMA module, or a central processing unit (CPU).
[0061] In this embodiment of the application, when the first computing device needs to read data from or write data to the second computing device, the processing module can receive a data request task and then generate a data request (e.g., a first data request) based on the relevant data of the request task (e.g., request type, device to which the request needs to be sent, etc.).
[0062] 302. The I / O (input / output) module of the first computing device sends a first data request to the second computing device;
[0063] After the processing module generates the first data request, the I / O module can send the first data request to the second computing device. It should be understood that the first data request sent by the I / O module may differ from the first data request generated by the processing module, for example, in terms of encapsulation information.
[0064] 303. When the second computing device fails to respond to the first data request, the processing module generates a second data request based on the data related to the request; the second data request is a retransmission request of the first data request, and both the second data request and the first data request are requests based on memory semantic expression.
[0065] In this embodiment of the application, when the processing module determines that the second computing device has failed to respond to the first data request, it can generate a retransmission request for the first data request (that is, a second data request). Both the second data request and the first data request can be requests based on memory semantics.
[0066] In one possible implementation, the processing module can determine that the first data request needs to be retransmitted based on the following: the response data to the first data request has timed out and not been received; the communication link between the first and second computing devices has failed; or the response data to the first data request is erroneous. This indicates that the second computing device has failed to respond to the first data request. By directly determining the timing of the retransmission request and proactively sending a retransmission request, the efficiency and reliability of the retransmission request are greatly improved. Furthermore, this saves significant area resources for the system's I / O module, preventing it from storing invalid context information.
[0067] Generally speaking, semantics refers to a combination of one or more operations used for interaction in an interconnect, usually defined at the transaction layer. Memory semantics can refer to operations performed by multiple threads on shared memory areas, or to memory access operations, etc.
[0068] For example, memory semantics can also be called semantics based on memory message transfer, and memory semantics can be based on Load / Store semantics. Generally speaking, Load / Store (L / S) instructions are processor core access operations on memory space, including the Load operation, which reads data from memory space into registers within the processor core; and the Store operation, which writes data from registers within the processor core into memory space. In the x86 architecture, the typical instruction for accessing memory space is the MOV instruction; in the ARM architecture, the typical instructions for accessing memory space are LDR / STR. Because a significant amount of space is mapped to memory space, i.e., memory space access instructions are used, Load / Store instructions can access not only actual memory but also other devices and device memory.
[0069] In this embodiment, both the original request (first data request) and the retransmission request (second data request) are generated by the computing module of the computing device, and both requests are based on memory semantics. On the one hand, the I / O module is not required to generate retransmission requests, which can reduce the occupation of storage resources. On the other hand, the fact that both the original request (first data request) and the retransmission request (second data request) are based on memory semantics can improve on-chip affinity.
[0070] In one possible implementation, the processing module can retrieve the relevant data from the same storage space when generating the original request and the retransmission request, thus eliminating the need for additional storage space to store the data required to generate the request. For example, the processing module can retrieve the requested data from the storage space and generate a first data request based on the requested data; the processing module can also retrieve the requested data from the storage space and generate a second data request based on the requested data.
[0071] In one possible implementation, the second data request carries indication information of the second computing device (e.g., the identifier of the second computing device); the I / O module can send the second data request to the second computing device via unicast based on the indication information of the second computing device.
[0072] In existing technologies, since the retransmission request is generated by the I / O module, and this retransmission request is based on a network protocol expression, it does not support single-point transmission but is sent in the form of broadcast. This leads to some additional communication overhead. However, the request based on memory semantic expression can carry the indication information of the sending destination of the request (e.g., the indication information of the second computing device). Therefore, it can support single-point transmission, that is, send the second data request to the second computing device in a unicast manner, thereby reducing communication overhead.
[0073] 304. The I / O module sends a second data request to the second computing device.
[0074] Reference Figure 4 , Figure 4 This is a schematic diagram of an application architecture according to an embodiment of this application, wherein the first computing device may correspond to Figure 4 In chip 0, the second computing device can correspond to Figure 4 Chip 1 in the middle, the processing module can be Figure 4In the Master (Process Element) architecture, during master-based request retransmission tasks, DMA transfer tasks are directly assigned to the Process Element. Upon receiving an upstream request, the Process Element splits the task and sends read requests to the I / O module. Under normal circumstances, when the Process Element receives correct data, it generates a write request to the HA to complete the data transfer task and releases the queue information to receive the next request. If, at this point, the Process Element (Master) determines that the data is incorrect or that packets are lost due to timeout, it generates a retransmission request with the same identifier to the I / O module based on the original request information.
[0075] In existing technologies, when it is determined that a request needs to be retransmitted, all requests following that request are retransmitted. In this embodiment, only the requests that need to be retransmitted are retransmitted, thereby reducing communication overhead. In one possible implementation, the processing module generates a fifth data request; the fifth data request is a request following the first data request; if the second computing device successfully responds to the fifth data request, the processing module does not retransmit the fifth data request.
[0076] In one possible implementation, the processing module generates a third data request; the I / O module sends the third data request to a third computing device; when the second computing device fails to respond to the third data request, the processing module generates a fourth data request; the fourth data request is a retransmission request of the third data request, and both the third and fourth data requests are requests based on memory semantics; the I / O module sends the second data request to the second computing device while simultaneously sending the fourth data request to the third computing device.
[0077] In this embodiment, only the requests that need to be retransmitted can be retransmitted, so multiple requests that need to be retransmitted can be sent in parallel, thereby reducing the overall time overhead of retransmission requests.
[0078] The following describes the overall process of requesting retransmission according to an embodiment of this application, referring to... Figure 5The Master (ProcessElement) unit initiates a data transfer request task, sending a read request to the bus and waiting for a response (data return). Once the request receives a correct data packet, it is considered a successful data transfer task. At this point, a write operation is initiated to the DMC to write the transferred data back to main memory, completing the request and ending the task. If a timeout or data error occurs, triggering a retransmission condition, the Master re-initiates a read request task with the same Transaction ID based on Load / Store instructions. Multiple transactions with the same Transaction ID may be running on the bus at this time. When the Master receives the first correct and valid data, it considers the data transfer task complete and initiates a write operation to the DMC to write the transferred data back to main memory. Only the first valid data returned is accepted / written; subsequent duplicate data is discarded. During this process, if the retransmission request continues to wait for a response timeout or a data error occurs, the Master continues to re-initiate read requests with the same Transaction ID based on Load / Store instructions until the maximum number of requests with the same Transaction ID is exceeded (user-configured). Subsequent duplicate data will extend the cooldown time of this Transaction ID / Entry. If all retransmission requests are used up and the cooldown times out, the Master module will report an abnormal interruption and clear the task queue to ensure the system does not hang. Resources will be released when the Master receives all retransmission data (count of packets). The system cooldown time is measured from: 1) the time when at least one data packet is received, which is the time when the last data packet was received; 2) the time when no data packet is received, which is the time when the last retry was sent.
[0079] Reference Figure 6 , Figure 6 An embodiment of a computing device provided in this application is illustrated, such as... Figure 6 As shown, the computing device 600 provided in this application embodiment may include:
[0080] Processing module 601 and I / O module 602;
[0081] The processing module 601 is configured to generate a first data request based on request-related data, wherein the request-related data is stored in the storage space of the processing module, and send the first data request to a second computing device through the I / O module 602; and generate a second data request based on the request-related data, wherein the second data request is a retransmission request of the first data request, both the second data request and the first data request are requests based on memory semantics, and send the second data request to the second computing device through the I / O module 602.
[0082] The specific description of the processing module 601 can be referred to the actions performed by the processing module in the first computing device in the above embodiment, and the similarities will not be repeated.
[0083] For a detailed description of the I / O module 602, please refer to the actions performed by the I / O module in the first computing device in the above embodiment. The similarities will not be repeated here.
[0084] In one possible implementation, failure to respond to the first data request includes:
[0085] The response data for the first data request timed out and was not received, the communication link between the first computing device and the second computing device failed, or the response data for the first data request was incorrect.
[0086] In one possible implementation, the first data request is generated based on the requested data retrieved from storage space;
[0087] The processing module 601 is specifically used to: retrieve the requested data from the storage space and generate a second data request based on the requested data.
[0088] In one possible implementation, memory semantics specifically refers to load store semantics.
[0089] In one possible implementation, the second data request carries indication information of the second computing device;
[0090] I / O module 602, specifically used for:
[0091] Based on the instructions from the second computing device, a second data request is sent to the second computing device via unicast.
[0092] In one possible implementation, processing module 601 is further configured to:
[0093] A third data request is generated and sent to a third computing device via I / O module 602. If the second computing device fails to respond to the third data request, a fourth data request is generated. The fourth data request is a retransmission request of the third data request. Both the third and fourth data requests are requests based on memory semantics. Simultaneously with the I / O module 602 sending the second data request to the second computing device, the fourth data request is also sent in parallel to the third computing device via the I / O module 602.
[0094] In one possible implementation, processing module 601 is further configured to:
[0095] Generate the fifth data request; the fifth data request is the request following the first data request;
[0096] I / O module 602 is also configured to not retransmit the fifth data request if the second computing device successfully responds to the fifth data request.
[0097] In one possible implementation, the processing module 601 is memory, direct memory access DMA, a memory manager, or a central processing unit.
[0098] In one possible implementation, the first data request and the second data request are either read requests or write requests.
[0099] In one possible implementation, the processing module is further configured to write the response data of the second computing device to the first data request into main memory when the second computing device successfully responds to the first data request.
[0100] It should be understood that the above Figure 6 The provided device, in implementing its functions, is only illustrated by the division of the above-described functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments share the same concept, and their specific implementation processes are detailed in the method embodiments, and will not be repeated here.
[0101] See Figure 7 , Figure 7 A schematic diagram of the structure of a computing device 700 provided in one embodiment of this application is shown. Figure 7 The computing device 700 shown is used to perform the above. Figure 2-4 The data processing method shown involves operations. The computing device 700 is, for example, a server, a chip, etc.
[0102] like Figure 7 As shown, the computing device 700 includes at least one processor 2001, a memory 2003, and at least one communication interface 2004.
[0103] The processor 2001 may be a processing module in the embodiments of this application, and the communication interface may be an I / O module in the embodiments of this application.
[0104] Processor 2001 may be, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the embodiments of this application. For example, processor 2001 includes application-specific integrated circuits (ASICs), programmable logic devices (PLDs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A PLD may be, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in connection with the embodiments of this invention. A processor may also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0105] Optionally, the computing device 700 also includes a bus. The bus is used to transfer information between the various components of the computing device 700. The bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 7 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0106] Memory 2003 may be, for example, read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions; random access memory (RAM) or other types of dynamic storage devices capable of storing information and instructions; electrically erasable programmable read-only memory (EEPROM); compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.); magnetic disk storage media or other magnetic storage devices; or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. Memory 2003 may exist independently and be connected to processor 2001 via a bus. Memory 2003 may also be integrated with processor 2001.
[0107] The communication interface 2004 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area networks (WLAN). The communication interface 2004 can include wired and wireless communication interfaces. Specifically, the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a WLAN interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In this embodiment, the communication interface 2004 can be used by the computing device 700 to communicate with other devices.
[0108] In a specific implementation, as one example, the processor 2001 may include one or more CPUs, such as Figure 7 The CPUs shown are CPU0 and CPU1. Each of these processors can be a single-core CPU or a multi-core CPU.
[0109] In a specific implementation, as one example, the computing device 700 may include multiple processors, such as... Figure 7 The processors 2001 and 2005 are shown.
[0110] In a specific implementation, as one embodiment, the computing device 700 may further include an output device and an input device. The output device communicates with the processor 2001 and can display information in various ways. For example, the output device may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device communicates with the processor 2001 and can receive user input in various ways. For example, the input device may be a mouse, a keyboard, a touchscreen device, or a sensing device, etc.
[0111] In some embodiments, the memory 2003 stores program code 2010 for executing the solution of this application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. That is, the computing device 700 can implement the data processing method provided in the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself may also store program code or instructions for executing the solution of this application.
[0112] In a specific embodiment, the computing device 700 of this application embodiment may correspond to the first computing device in the above-described method embodiments. The processor 2001 in the computing device 700 reads instructions from the memory 2003, causing... Figure 7 The computing device 700 shown is capable of performing all or part of the operations performed by the first computing device.
[0113] Other alternative implementation methods will not be described in detail here for the sake of brevity.
[0114] Optionally, Figure 2-4 Each step of the data processing method shown can also be completed by the integrated logic circuitry of the hardware in the processor of the computing device 700.
[0115] Figure 8This is a schematic diagram of a server structure provided in an embodiment of this application. The server 1100 can vary significantly due to different configurations or performance. It may include one or more processors 1101 and one or more memories 1102. The one or more memories 1102 store at least one computer program, which is loaded and executed by the one or more processors 1101 to enable the server to implement the data processing methods provided in the various method embodiments described above. Of course, the server 1100 may also have wired or wireless network interfaces, a keyboard, and input / output interfaces for input and output. The server 1100 may also include other components for implementing device functions, which will not be elaborated upon here.
[0116] This application also provides a data processing system, which includes a first computing device and a second computing device.
[0117] The data processing methods performed by the first computing device and the second computing device can be found above. Figure 2-4 The relevant descriptions of the embodiments shown will not be repeated here.
[0118] This application also provides a computer-readable storage medium storing at least one instruction, which is loaded and executed by a processor to enable the computer to implement any of the data processing methods described above.
[0119] The computer-readable medium can be any tangible medium that contains or stores programs for or relating to an instruction execution system, apparatus, or device. The machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination thereof. More detailed examples of machine-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0120] This application also provides a computer program (product) that, when executed by a computer, causes the processor or computer to perform the corresponding steps and / or processes in the above method embodiments.
[0121] The computer program product includes one or more computer program instructions. As an example, the method of this application embodiment can be described in the context of machine-executable instructions, such as program modules included in a device executing on a real or virtual processor of the target. Generally, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., which perform specific tasks or implement specific abstract data structures. In various embodiments, the functionality of program modules can be combined or divided among the described program modules. The machine-executable instructions for the program module can execute within a local or distributed device. In a distributed device, the program module can reside on both local and remote storage media.
[0122] Computer program code used to implement the methods of the embodiments of this application may be written in one or more programming languages. This computer program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the computer or other programmable data processing apparatus, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a computer, partially on a computer, as a standalone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.
[0123] In the context of the embodiments of this application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, etc.
[0124] Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.
[0125] This application also provides a chip for performing any of the data processing methods described above.
[0126] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and modules described above can be found in the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0127] In the embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections through some interfaces, devices, or modules, or they may be electrical, mechanical, or other forms of connection.
[0128] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.
[0129] Furthermore, the functional modules in the various embodiments of this application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The integrated modules described above can be implemented in hardware or as software functional modules.
[0130] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items with substantially the same function. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another.
[0131] It should also be understood that, in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0132] In this application, the term "at least one" means one or more, and the term "multiple" means two or more. The terms "system" and "network" are often used interchangeably.
[0133] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0134] It should also be understood that the term "comprising" (also referred to as "includes", "including", "comprises", and / or "comprising"), when used in this specification, specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or components.
[0135] It should also be understood that the terms “if” and “if” can be interpreted as meaning “when” or “upon”, or “in response to determination” or “in response to detection”. Similarly, depending on the context, the phrases “if determination…” or “if detection [the stated condition or event]” can be interpreted as meaning “when determination…”, or “in response to determination…”, or “when detection [the stated condition or event]” or “in response to detection [the stated condition or event]”.
[0136] It should be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information.
[0137] It should also be understood that the phrases "an embodiment," "an embodiment," and "a possible implementation" used throughout the specification mean that a specific feature, structure, or characteristic related to an embodiment or implementation is included in at least one embodiment of this application. Therefore, the phrases "in an embodiment," "an embodiment," or "a possible implementation" appearing throughout the specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.
[0138] The above description is only an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A data processing method, characterized in that, The method includes: The processing module of the first computing device generates a first data request based on the request-related data; the request-related data is stored in the storage space of the processing module. The I / O (input / output) module of the first computing device sends the first data request to the second computing device; When the second computing device fails to respond to the first data request, the processing module generates a second data request based on the data related to the request; the second data request is a retransmission request of the first data request, and both the second data request and the first data request are requests based on memory semantics. The I / O module sends the second data request to the second computing device.
2. The method according to claim 1, characterized in that, The failure to respond to the first data request includes: The response data for the first data request is not received after a timeout, the communication link between the first computing device and the second computing device fails, or the response data for the first data request is incorrect.
3. The method according to claim 1 or 2, characterized in that, The processing module generates a second data request based on the data related to the request, including: The processing module retrieves the request-related data from the storage space and generates a second data request based on the request-related data.
4. The method according to any one of claims 1 to 3, characterized in that, The memory semantics mentioned above specifically refer to load store semantics.
5. The method according to any one of claims 1 to 4, characterized in that, The second data request carries indication information from the second computing device; The I / O module sends the second data request to the second computing device, including: The I / O module sends the second data request to the second computing device via unicast according to the instruction information of the second computing device.
6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: The processing module generates a third data request; The I / O module sends the third data request to the third computing device; When the second computing device fails to respond to the third data request, the processing module generates a fourth data request; the fourth data request is a retransmission request of the third data request, and both the third data request and the fourth data request are requests based on memory semantics. While sending the second data request to the second computing device, the I / O module simultaneously sends the fourth data request to the third computing device.
7. The method according to any one of claims 1 to 6, characterized in that, The method further includes: The processing module generates a fifth data request; the fifth data request is a request following the first data request; If the second computing device successfully responds to the fifth data request, the processing module will not retransmit the fifth data request.
8. The method according to any one of claims 1 to 7, characterized in that, The processing module is memory, direct memory access (DMA), a memory manager, or a central processing unit.
9. The method according to any one of claims 1 to 8, characterized in that, The first data request and the second data request are either read requests or write requests.
10. The method according to any one of claims 1 to 9, characterized in that, The method further includes: When the second computing device successfully responds to the first data request, the processing module writes the response data from the second computing device to the first data request into the main memory.
11. A data processing method, characterized in that, The method includes: Received a first data request sent by the first computing device; A second data request is received from the first computing device; the second data request is a retransmission request of the first data request, and both the second data request and the first data request are requests based on memory semantics. Send the response data of the second data request to the first computing device.
12. A system, characterized in that, include: First computing device and second computing device; The first computing device and the second computing device communicate with each other; The first computing device is used to perform the method according to any one of claims 1 to 10; The second computing device is used to perform the method of claim 11.
13. A computing device, characterized in that, This includes processing modules and I / O modules; The processing module is configured to generate a first data request based on request-related data, the request-related data being stored in the storage space of the processing module, and sending the first data request to a second computing device through the I / O module; and to generate a second data request based on the request-related data, the second data request being a retransmission request of the first data request, both the second data request and the first data request being requests based on memory semantics, and sending the second data request to the second computing device through the I / O module.
14. The device according to claim 13, characterized in that, The failure to respond to the first data request includes: The response data for the first data request is not received after a timeout, the communication link between the first computing device and the second computing device fails, or the response data for the first data request is incorrect.
15. The device according to claim 13 or 14, characterized in that, The processing module is specifically used to: obtain the request-related data from the storage space, and generate a second data request based on the request-related data.
16. The device according to any one of claims 13 to 15, characterized in that, The memory semantics mentioned above specifically refer to load store semantics.
17. The device according to any one of claims 13 to 15, characterized in that, The second data request carries indication information from the second computing device; The I / O module is specifically used for: Based on the instructions from the second computing device, the second data request is sent to the second computing device via unicast.
18. The device according to any one of claims 13 to 17, characterized in that, The processing module is further configured to: A third data request is generated and sent to a third computing device via an I / O module. If the second computing device fails to respond to the third data request, a fourth data request is generated. The fourth data request is a retransmission request of the third data request. Both the third and fourth data requests are requests based on memory semantics. The fourth data request is sent to the third computing device in parallel via the I / O module while the second data request is being sent to the second computing device.
19. The device according to any one of claims 13 to 18, characterized in that, The processing module is further configured to: Generate a fifth data request; the fifth data request is a request following the first data request; The processing module is further configured to not retransmit the fifth data request if the second computing device successfully responds to the fifth data request.
20. The device according to any one of claims 13 to 19, characterized in that, The processing module is memory, direct memory access (DMA), a memory manager, or a central processing unit.
21. The device according to any one of claims 13 to 20, characterized in that, The first data request and the second data request are either read requests or write requests.
22. The device according to any one of claims 13 to 21, characterized in that, The processing module is further configured to write the response data of the second computing device to the first data request into the main memory when the second computing device successfully responds to the first data request.
23. A computer storage medium, characterized in that, The computer storage medium stores one or more instructions, which, when executed by one or more computers, cause the one or more computers to perform the operation of the method according to any one of claims 1 to 11.
24. A computer program product, characterized in that, Includes computer-readable instructions that, when executed on a computer device, cause the computer device to perform the method as described in any one of claims 1 to 11.
25. A system comprising at least one processor and at least one memory; the processor and the memory are connected via a communication bus and communicate with each other. The at least one memory is used to store code; The at least one processor is used to execute the code to perform the method as described in any one of claims 1 to 11.
26. A chip, characterized in that, It includes at least one processing unit and an interface circuit, the interface circuit being used to provide program instructions or data to the at least one processing unit, the at least one processing unit being used to execute the program instructions to implement the method of any one of claims 1 to 11.