Data transmission method, transmission channel allocation method, computing device and management device
By allocating transmission channels through the physical links and management units of CXL storage devices, the problems of network transmission complexity and high cost in high-performance computing clusters are solved, efficient and low-latency data transmission is achieved, and hardware and network costs are reduced.
Patent Information
- Application Number
- CN202311695392.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-11
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2043-12-11
AI Technical Summary
In high-performance computing clusters, the data transmission speed between servers is limited by the network transmission protocol, resulting in increased latency and cost. Existing technologies are complex and costly.
Data is transmitted through the physical link provided by the CXL storage device, avoiding network transmission. The management unit pre-allocates the transmission channel to ensure direct storage space connection between computing devices, achieving high-bandwidth and low-latency data transmission.
It improves data transmission efficiency, reduces network and hardware configuration costs, avoids the impact of network latency, and improves the overall data transmission performance of the cluster.
Smart Images

Figure CN117938848B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a data transmission method, a transmission channel allocation method, a computing device, and a management device. Background Art
[0002] With the rapid development of technology, the scale of clusters for everything from big data to artificial intelligence training and high-performance computing has gradually expanded. As the number of servers in a cluster increases, the speed of data transmission between servers affects the overall performance of the cluster.
[0003] In related technologies, data transmission between servers in a cluster typically uses the network cards installed on the servers. This data transmission requires network transmission protocols and protocol conversion, making the entire process complex and prone to latency. Furthermore, in some high-performance data transmission scenarios, dedicated network cards, switches, and networks are required, increasing the cost of data transmission between servers. Summary of the Invention
[0004] The embodiments of the present application provide a data transmission method, a transmission channel allocation method, a computing device, and a management device, which can improve data transmission efficiency and reduce data transmission costs.
[0005] To achieve the above technical objectives, the embodiments of the present application adopt the following technical solutions:
[0006] In a first aspect, an embodiment of the present application provides a data transmission method, comprising: when a first computing device needs to send target data to a second computing device, the first computing device determines an address of a target storage space, where the target storage space is a target transmission channel allocated to the first computing device and the second computing device; wherein a CXL storage device including the target storage space is communicatively connected to both the first computing device and the second computing device; and based on the address of the target storage space, the target data is written to the target storage space so that the second computing device can obtain the target data from the target storage space.
[0007] In the above method, the CXL storage device is connected to the first and second computing devices via a physical link. Data transmission between the first and second computing devices via the storage space provided by the CXL storage device does not require network transmission, and is not limited by network transmission speed and bandwidth. This method offers the advantages of fast transmission speed, high bandwidth, and low latency. Furthermore, this method does not require high-configuration network cards and switches, nor does it require high network transmission speeds. Therefore, the method proposed in this embodiment of the application can reduce network usage costs and hardware configuration costs.
[0008] In one possible implementation, the first computing device and the second computing device are both connected to a management unit, which is used to manage storage space of one or more CXL storage devices. Before the first computing device determines the address of the target storage space, the method further includes: receiving a data transmission channel table sent by the management unit; the data transmission channel table includes information about a target transmission channel between the first computing device and the second computing device; and obtaining the target transmission channel information; the target transmission channel information includes the address of the target storage space.
[0009] It is understood that before the first computing device needs to send target data to the second computing device, if the target storage space for the fixed transmission channel of the computing device pair has been allocated, the first computing device needs to obtain information about the allocated transmission channel to further determine the address of the target storage space. This process uses the optional data transmission channel table to determine the address of the target storage space, which can improve the determination efficiency and thus speed up the data transmission process.
[0010] In another possible embodiment, the information of the target transmission channel in the data transmission channel table includes: an identifier of the target transmission channel, an identifier of the first computing device, an identifier of the second computing device, an address of the target storage space, and a storage capacity of the target storage space; obtaining the information of the target transmission channel includes: determining the information of the target transmission channel from the data transmission channel table based on the identifier of the first computing device and the identifier of the second computing device; the first computing device determines the address of the target storage space allocated to the first computing device and the second computing device, including: determining the address of the target storage space from the information of the target transmission channel.
[0011] It can be understood that the data transmission channel table records information of the target transmission channels allocated to the first computing device and the second computing device. Based on the identifications of the two computing devices, the information of the target transmission channel can be quickly determined, and then the address of the target storage space can be determined.
[0012] In another possible implementation, both the first computing device and the second computing device are connected to a management unit, which is configured to manage storage space of one or more CXL storage devices. The first computing device determines the address of the target storage space by: sending a request to the management unit to obtain a data transmission channel table; the data transmission channel table includes information about the target transmission channel; the information about the target transmission channel includes the address of the target storage space; receiving the data transmission channel table, determining the information about the target transmission channel based on the data transmission channel table; and determining the address of the target storage space from the information about the target transmission channel.
[0013] It is understandable that the first computing device may also proactively send a request to the management unit to obtain a data transmission channel table before sending target data to the second computing device, so as to obtain information of the target transmission channel and then perform data transmission.
[0014] In a second aspect, an embodiment of the present application provides a data transmission method, comprising: when a first computing device sends target data to a second computing device, the second computing device determines an address of a target storage space, where the target storage space is a target transmission channel allocated to the first computing device and the second computing device; wherein a CXL storage device including the target storage space is communicatively connected to both the first computing device and the second computing device; and based on the address of the target storage space, obtaining the target data from the target storage space.
[0015] It is understandable that the second computing device obtains the target data sent by the first computing device from the target storage space. This method does not need to rely on the network, can avoid the impact of network delay, and improve the business processing performance of the cluster where the second computing device is located.
[0016] In one possible implementation, when the first computing device sends target data to the second computing device, before the second computing device determines the address of the target storage space, the method further includes: upon receiving an indication message, determining that the first computing device has sent the target data to the second computing device; the indication message is used to indicate that the first computing device has sent the target data to the second computing device, and the indication message is sent by the first computing device or by a CXL controller in the CXL storage device.
[0017] It is understandable that, through the indication message, the second computing device can promptly confirm that the first computing device has sent the target data, and then promptly obtain the target data in the target storage space. This method can improve data transmission efficiency and reduce data transmission delay.
[0018] In a third aspect, an embodiment of the present application provides a transmission channel allocation method, which is applied to a management unit, the management unit being communicatively connected to multiple computing devices in a cluster, and the management unit being used to manage a CXL storage space composed of one or more CXL storage devices. The method includes: obtaining data transmission requirement information of the cluster, the data transmission requirement information including: identifiers of multiple computing device pairs, and data transmission requirements of each computing device pair in the multiple computing device pairs; allocating a target storage space in the CXL storage space to the target computing device pair based on the data transmission requirements of the target computing device pair; wherein the target computing device pair includes a first computing device and a second computing device, the CXL storage device including the target storage space is connected to both the first computing device and the second computing device, and the target storage space is a target transmission channel allocated to the first computing device and the second computing device; sending a target communication relationship entry to the target computing device pair; the target communication relationship entry includes the identifier of the target computing device pair and information about the target transmission channel.
[0019] It is understood that in the transmission channel allocation method proposed in the embodiments of the present application, the management unit pre-allocates fixed storage space from the available storage space in the CXL storage space based on the data transmission needs of multiple computing device pairs. This storage space serves as a transmission channel between the computing device pairs. Once allocated, each channel becomes a fixed transmission channel, dedicated to data transmission between two computing devices. Each computing device pair can transmit data on the fixed transmission channel without occupying the transmission channels of other computing devices. In related technologies, if a computing device transmits data with multiple other computing devices, it can only use the single transmission channel provided by the network interface card. Therefore, the transmission channel allocation method proposed in the embodiments of the present application can avoid the queuing problem caused by transmitting data on a single transmission channel, thereby improving the overall data transmission performance of the cluster.
[0020] In a possible implementation, after allocating a target storage space in the CXL storage space to the target computing device pair, the method further includes: generating information of a target transmission channel; the information of the target transmission channel includes: an identifier of the target transmission channel, an address of the target storage space, and a storage capacity of the target storage space.
[0021] It can be understood that in this process, the management unit sets an identifier for the storage space used as the transmission channel to facilitate the management of the transmission channel. If there are multiple transmission channels in the future, the multiple transmission channels can be managed based on the identifier of the transmission channel to avoid confusion.
[0022] In another possible embodiment, after generating the information of the target transmission channel, the method further includes: recording the identification of the target computing device pair and the information of the target transmission channel in a target communication relationship entry; storing the target communication relationship entry in a data transmission channel table; and sending the target communication relationship entry to the target computing device pair, including: sending the data transmission channel table to the target computing device pair.
[0023] The management unit records multiple communication relationship entries containing transmission channel information in a data transmission channel table, making it easier for the management unit to manage multiple communication relationship entries and avoid confusion. Furthermore, the management unit sends the data transmission channel table to multiple computing devices, enabling them to quickly obtain information about their assigned transmission channels, thereby improving data transmission efficiency.
[0024] In a fourth aspect, an embodiment of the present application provides a computing device, wherein the computing device is applied to various modules of the data transmission method of the first aspect or any possible implementation of the first aspect, or the computing device is applied to various modules of the data transmission method of the second aspect or any possible implementation of the second aspect.
[0025] In a fifth aspect, an embodiment of the present application provides a management device, wherein the management device is applied to each module of the transmission channel allocation method of the third aspect or any possible implementation manner of the third aspect.
[0026] In a sixth aspect, an embodiment of the present application provides a computing device comprising a memory and at least one processor connected to the memory, the memory being used to store computer program code, the computer program code comprising computer instructions, which, when executed by at least one processor, causes the computing device to execute a data transmission method as in the first aspect and any possible implementation thereof; or, when the processor executes the computer instructions, causes the computing device to execute a data transmission method as in the second aspect and any possible implementation thereof.
[0027] In the seventh aspect, an embodiment of the present application provides a management device, including a processor, the processor is coupled to a memory, and the memory is used to store programs or instructions. When the program or instructions are executed by the processor, the management device executes the data transmission method such as the third aspect and any possible implementation method thereof.
[0028] In an eighth aspect, embodiments of the present application provide a computer-readable storage medium comprising computer instructions. When the computer instructions are executed on a computing device, the computing device executes the data transmission method of the first or second aspect, and any possible implementation thereof; or, when the computer instructions are executed on a management device, the management device executes the transmission channel allocation method of the third aspect, and any possible implementation thereof.
[0029] In a ninth aspect, embodiments of the present application provide a computer program product comprising computer instructions. When the computer instructions are executed on a computing device, the computing device executes the data transmission method of the first or second aspect, and any possible implementation thereof; or, when the computer instructions are executed on a management device, the management device executes the transmission channel allocation method of the third aspect, and any possible implementation thereof.
[0030] For the specific description of the fourth to ninth aspects and their various implementations in the embodiments of the present application, reference can be made to the detailed description in the first, second or third aspect and their various implementations; and for the beneficial effects of the fourth to ninth aspects and their various implementations, reference can be made to the analysis of the beneficial effects in the first, second or third aspect and their various implementations, which will not be repeated here.
[0031] These and other aspects of the embodiments of the present application will be more clearly understood in the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 A schematic diagram of a system architecture provided in an embodiment of the present application;
[0033] Figure 2 Another system architecture diagram provided for an embodiment of the present application;
[0034] Figure 3 A flowchart of a data transmission method provided in an embodiment of the present application;
[0035] Figure 4 A flowchart of another data transmission method provided in an embodiment of the present application;
[0036] Figure 5 A flow chart of the transmission channel allocation method provided in an embodiment of the present application;
[0037] Figure 6 A schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0038] Figure 7 A schematic diagram of the structure of another computing device provided in an embodiment of the present application;
[0039] Figure 8 A schematic diagram of the structure of a management device provided in an embodiment of the present application;
[0040] Figure 9 A schematic diagram of the structure of a device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0041] For ease of understanding, the following briefly introduces the relevant terms involved in the embodiments of this application:
[0042] (1) Compute Express Link (CXL) technology is a new type of high-speed interconnect technology designed to provide higher data throughput and lower latency to meet the needs of modern computing and storage systems.
[0043] (2) CXL storage devices: Storage devices built based on CXL technology have the characteristics of unlimited expansion and can meet the needs of data center resource sharing, memory pooling and efficient computing scheduling.
[0044] In the following, the terms "first," "second," and "third," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the quantity of the technical features indicated. Thus, a feature designated as "first," "second," or "third," etc., may explicitly or implicitly include one or more of the features.
[0045] In the description of the embodiments of this application, unless otherwise specified, " / " means "or." For example, A / B can mean A or B. "And / or" in this document is simply a description of an association relationship between associated objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, and B exists alone. In addition, "at least one" means one or more, and "a plurality" means two or more.
[0046] In related technologies, data transmission between servers in a cluster is primarily done through network cards installed on the servers, and then over the network. Because data transmission in this method is over the network, data must pass through a network transmission protocol and undergo protocol conversion during transmission. This entire process is complex and can easily cause data transmission delays. Furthermore, if the cluster is large, there will be a large demand for data transmission between servers, which will place certain demands on the hardware scale of the network cards, requiring high-configuration switches and higher network transmission speeds, which will increase the cost of data transmission between servers in the cluster.
[0047] Based on this, an embodiment of the present application proposes a data transmission method and a transmission channel allocation method. In the data transmission method, if the first computing device needs to send target data to the second computing device, the address of the target storage space is determined, wherein the data transmission channel table includes the addresses of the target storage spaces corresponding to the first computing device and the second computing device. By storing the target data in the target storage space, the second computing device obtains the target data from the target storage space, thereby realizing sending the target data to the second computing device.
[0048] It is understood that in this method, the CXL storage device to which the target storage space belongs is connected to the first and second computing devices via a physical link. When the first and second computing devices transmit data through the storage space provided by the CXL storage device, data does not need to be transmitted over the network, and is not limited by network transmission speed and bandwidth. This method has the advantages of fast transmission speed, high bandwidth, and low latency. Furthermore, this method does not require high-configuration network cards and switches, nor does it require high network transmission speeds. Therefore, the method proposed in the embodiments of the present application can reduce network usage costs and hardware configuration costs.
[0049] The implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0050] Please refer to Figure 1 , which shows a schematic diagram of a system architecture involved in the data transmission method and transmission channel allocation method provided in the embodiment of the present application. Figure 1 As shown, the system architecture may include: a plurality of computing devices 110 , a CXL storage device 120 and a CXL connection device 130 .
[0051] The plurality of computing devices 110 are computing devices in a cluster. The plurality of computing devices 110 are communicatively connected to the CXL storage device 120 via the CXL connection device 130 .
[0052] In one embodiment, each computing device 110 is connected to a PCIE interface of a CXL storage device 120 via a CXL connection device 130. Each computing device 110 communicates with the CXL storage device 120 using CXL protocols, such as the input / output protocol (CXL.io), the cache access protocol (CXL.cache), and the memory access protocol (CXL.mem).
[0053] Computing device 110 is a computing device with data processing, logical operation, and storage capabilities. For example, computing device 110 may include a server, tablet computer, desktop computer, laptop computer, notebook computer, computing node, or netbook computer. The server may be a rack server, blade server, tower server, or other different types of server. The server may include one or more computing nodes, each of which includes at least one CPU. When a server includes multiple computing nodes, the multiple CPUs in the multiple computing nodes share a common operating system.
[0054] The CXL storage device 120 is configured to provide storage space and serve as a transmission channel between any two computing devices 110. The system architecture shown in the embodiments of this application may include one CXL storage device 120, or multiple CXL storage devices 120. The storage space provided by one or more storage devices 120 constitutes a CXL storage space, also referred to as a CXL storage pool, which is uniformly managed by a management unit.
[0055] The CXL storage device 120 may include a CXL controller 121 and a memory 122 .
[0056] The CXL controller 121 is configured to receive a request from any computing device 110 to write data into the storage space provided by the memory 122 , or to read data from the storage space provided by the memory 122 , thereby enabling the storage space of the CXL storage device 120 to function as a transmission channel.
[0057] Illustratively, the CXL controller 121 may be a control chip integrated in the CXL storage device 120 , which may also be called a CXL memory expander chip, a CXL memory controller, or a CXL memory expander pooling chip.
[0058] The memory 122 is an actual physical carrier that provides storage space in the CXL storage device 120 , and can provide storage space as a transmission channel between any two computing devices 110 .
[0059] Exemplarily, the memory 122 may include a dual inline memory module (DIMM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a solid state disk (SSD), or a persistent memory (PMEM).
[0060] In an embodiment of the present application, the number of the above-mentioned memories 122 can be one or more. When there is one memory, the memory can be a DIMM or an SSD. When there are multiple memories 122, the multiple memories 122 can all be DIMMs, or the multiple memories 122 can all be SSDs, or some of the multiple memories 122 can be DIMMs and some can be SSDs.
[0061] Of course, in other embodiments, when there is only one memory 122, memory 122 may also be another type of memory, such as SDRAM or PMEM. When there are multiple memories 122, all of the memories 122 may be SDRAM or PMEM, or the memories 122 may include at least two of SDRAM, PMEM, DIMM, or SSD. The flexible implementation and deployment methods described above enable the CXL storage device 120 to be compatible with a wider range of memory media types. The embodiments of this application do not limit the memory media type, number, or deployment method.
[0062] The CXL connection device 130 can provide an expansion interface to connect multiple computing devices 110 to the CXL storage device 120. The CXL connection device 130 can be independently provided or integrated into any computing device 110 or the CXL storage device 120.
[0063] For example, when the CXL connection device 130 is independently configured, the CXL connection device 130 may be a CXL switch including a CXL switching chip; or the CXL connection device 130 may be a multi-head CXL memory expansion card (MH-SLD). When the CXL connection device 130 is a multi-head CXL memory expansion card, the CXL connection device 130 may be integrated with the CXL storage device 120. The multi-head CXL memory expansion card may serve as the CXL controller of the CXL storage device 120 and may be connected to multiple computing devices. When there is only one CXL storage device, the multi-head CXL memory expansion card of one CXL storage device is connected to multiple computing devices. When there are multiple CXL storage devices, the multi-head CXL memory expansion card of each CXL storage device is connected to at least two of the multiple computing devices, and the computing devices connected to each CXL storage device may be the same.
[0064] When CXL connection device 130 is integrated into a computing device, it can be a CXL switch, a CXL switch chip, or a multi-head CXL memory expansion card. In addition to expansion capabilities, a CXL switch also includes a processor with processing capabilities, such as the ability to run a fabric manager (FM).
[0065] In some other embodiments, the number of the CXL connection devices 130 may be one or more, and multiple CXL connection devices 130 may be connected to multiple CXL storage devices 120 .
[0066] In some other embodiments, such as Figure 2 As shown, Figure 2 It shows that a plurality of CXL connection devices 130 are respectively connected to a plurality of CXL storage devices 120. Figure 2 It also includes a management device 140, which runs FM. Figure 2 It can be seen that multiple computing devices 110 are connected to some CXL storage devices 120 via CXL connection devices 130. This embodiment of the application does not limit the number or connection method of CXL storage devices 120, CXL connection devices 130, and computing devices 110 in the system.
[0067] FM is a process that manages the CXL storage space provided by one or more CXL storage devices 120. It can divide the CXL storage space into multiple sub-storage spaces based on the data transmission requirements of multiple computing devices 110. Each sub-storage space is allocated as a transmission channel to two computing devices with data transmission requirements.
[0068] In some embodiments, using the first and second computing devices in the plurality of computing devices 110 in the cluster as an example, the FM allocates target storage space to the first and second computing devices based on their data transmission requirements. The target storage space is used for a target transmission channel between the first and second computing devices. The FM sends information about the allocated target transmission channel, an identifier of the first computing device, and an identifier of the second computing device to the first and second computing devices, respectively. The target transmission channel information includes the identifier of the target transmission channel, the address of the target storage space, and the capacity of the target storage space.
[0069] In other embodiments, FM records the information of the allocated multiple transmission channels in a data transmission channel table, and sends the data transmission channel table to multiple computing devices 110, so that the computing devices 110 determine the information of their respective transmission channels based on the data transmission channel table for data transmission.
[0070] In the embodiment of the present application, the FM may run in the CPU or baseboard management controller (BMC) of any computing device 110, or in the processor of the CXL connection device 130. Alternatively, the FM may run in the CPU, BMC, or controller of an independent device. The embodiment of the present application does not limit the specific running location of the FM.
[0071] It should be noted that different computing devices have different names for BMC. For example, some computing devices call it BMC, some computing devices call it iLO (integrated lights-out), and some computing devices call it integrated Dell remote access controller (iDRAC). Regardless of whether it is called BMC, iLO, or iDRAC, it can be understood as the BMC in the embodiments of the present invention.
[0072] In some implementations, if the FM is running on any one of the multiple computing devices 110, the other computing devices 110 can communicate with the computing device running the FM via a network and / or a 485 link (a link using the RS-485 serial bus standard). The CXL connection device 130 connects the multiple computing devices 110 and the CXL storage device 120 via a bus (e.g., a UART, a universal asynchronous receiver / transmitter (UART) inter-integrated circuit (IIC) bus, or a system management bus (SMBus)).
[0073] In some other implementations, if the FM runs in the CXL connection device 130 , the CXL connection device 130 is connected to the plurality of computing devices 110 and the CXL storage device 120 via a bus (eg, a UART, an IIC, or an SMBUS bus).
[0074] In one application scenario, multiple computing devices 110 include a first computing device and a second computing device. The first computing device and the second computing device have data transmission requirements. Based on the data transmission requirements of the first and second computing devices, the FM allocates a portion of storage space (target storage space) from the CXL storage space to serve as a data transmission channel between the first and second computing devices. After obtaining information about the transmission channel, the first computing device writes the target data to be sent into the allocated target storage space. The second computing device retrieves the target data from the target storage space and sends a response message to the first computing device, completing the data transmission between the first and second computing devices.
[0075] The following describes the data transmission method and transmission channel allocation method provided in the embodiments of the present application:
[0076] Please refer to Figure 3, is a flow chart of a data transmission method provided in an embodiment of the present application, which can be applied to a first computing device and a second computing device in a cluster, wherein the first computing device and the second computing device are any two computing devices among a plurality of computing devices in the cluster, and the management unit is in communication connection with the plurality of computing devices. The above-mentioned management unit can be Figure 1 In FM, the first computing device and the second computing device are Figure 1 Any two computing devices in the computing devices 110. Figure 3 As shown, the following is the first part of the data transmission method, and the process of the first computing device sending target data may include S101-S102.
[0077] S101: When a first computing device needs to send target data to a second computing device, the first computing device determines an address of a target storage space, where the target storage space is a target transmission channel allocated to the first computing device and the second computing device.
[0078] The target data may be business data processed by the first computing device, such as text, image, audio, or video data.
[0079] In some application scenarios, the first computing device needs to send target data to the second computing device while processing tasks issued by the application in the upper-level client, that is, the first computing device needs to send target data to the second computing device.
[0080] The storage space provided by one or more CXL storage devices managed by the management unit is called the CXL storage space. The target storage space is a portion of the storage space within the CXL storage space. The target storage space is connected to both the first computing device and the second computing device. The target storage space serves as a data transmission space between the first computing device and the second computing device and is also called a target transmission channel.
[0081] In one embodiment, when a first computing device needs to send target data to a second computing device, before the first computing device determines the address of the target storage space allocated to the first computing device and the second computing device, the first computing device obtains information about the target transmission channel, where the information about the target transmission channel includes: an identifier of the target transmission channel, an address of the target storage space, and a storage capacity of the target storage space.
[0082] Specifically, the first computing device receives a data transmission channel table sent by the management unit, the data transmission channel table including information of a target data transmission channel between the first computing device and the second computing device, and the first computing device obtains the information of the target transmission channel from the data transmission channel table.
[0083] In one embodiment, the data transmission channel table records information about the transmission channel through a communication relationship entry. The communication relationship entry records information about the storage space in the CXL storage space that has been allocated as the transmission channel. The communication relationship entry includes: an identifier of the computing device pair and information about the transmission channel. The information about the transmission channel includes the identifier of the transmission channel, the address of the storage space, and the storage capacity of the storage space.
[0084] The identification of the above-mentioned computing device pair includes: the identification of the computing devices at both ends that need to transmit data. For example, data needs to be transmitted between the first computing device and the second computing device. The first computing device can be the sending end or the receiving end of the communication, and the second computing device can also be the sending end or the receiving end of the communication. The identification of the computing device pair is the identification of the first computing device and the identification of the second computing device.
[0085] In the embodiment of the present application, the communication relationship entry that records the target transmission channel is called a target communication relationship entry. The target communication relationship entry includes: the identification of the target computing device and the information of the target transmission channel. The identification of the target computing device includes the identification of the first computing device and the identification of the second computing device. The information of the target transmission channel includes the identification of the target transmission channel, the address of the target storage space and the storage capacity of the target storage space.
[0086] The address of the storage space may be a physical address of the storage space or a logical address of the storage space. If it is a logical address of the storage space, the management unit further maintains a mapping relationship between the logical address and the physical address of the storage space.
[0087] The first computing device may receive the data transmission channel table sent by the management unit before S101, or, when the first computing device needs to send target data to the second computing device, send a request for obtaining the data transmission channel table to the management unit to obtain the data transmission channel table.
[0088] For example, as shown in Table 1, Table 1 shows a data transmission channel table, which includes: the identification of the transmission channel, the identification of the computing device pair, the address of the storage space and the storage capacity of the storage space, wherein the identification of the computing device pair includes the identification of the computing devices at both ends where data transmission is required.
[0089] Table 1
[0090]
[0091] The identifier of the computing device may be a number, host name, Internet Protocol (IP) address, or device address (MAC) address, etc., which can represent the identity of the computing device.
[0092] In one embodiment, based on the above-mentioned data transmission channel table, the first computing device determines the address of the target storage space allocated to the first computing device and the second computing device. Specifically, it may include two steps. In the first step, the first computing device determines the information of the target transmission channel from the data transmission channel table based on the identification of the first computing device and the identification of the second computing device; in the second step, the first computing device determines the address of the target storage space from the information of the target transmission channel.
[0093] For example, in the data transmission channel table shown in Table 1, the first computing device is identified as "computing device 1", and the second computing device is identified as "computing device 2". The first computing device determines, based on "computing device 1" and "computing device 2", that the information of the target transmission channel includes the identification of the target transmission channel as "1", the address of the target storage space as "Addr1", and the storage capacity of the target storage space as 1G, and then determines from the information of the target transmission channel that the address of the target storage space is "Addr1".
[0094] The above S101 proposes an optional method for determining the address of the target storage space based on the data transmission channel table. The data transmission channel table is managed by the management unit. The process of the management unit establishing the data transmission channel table is detailed in S201-S206.
[0095] Before a first computing device needs to send target data to a second computing device, if the target storage space for the fixed transmission channel between the computing devices has already been allocated, the first computing device needs to obtain information about the allocated transmission channel to further determine the address of the target storage space. This process uses an optional data transmission channel table to determine the address of the target storage space, which can improve determination efficiency and thus speed up the data transmission process.
[0096] S102: The first computing device writes target data into the target storage space based on the address of the target storage space, so that the second computing device can read the target data from the target storage space.
[0097] In one embodiment, the first computing device sends a target data write request to a CXL controller of the CXL storage device, wherein the target data write request is used to request the CXL controller to write target data into a target storage space. After receiving the request, the CXL controller writes the target data into the target storage space.
[0098] Optionally, the first computing device further sends an indication message to the second computing device through the network, where the indication message is used to indicate that the first computing device has sent the target data to the second computing device.
[0099] It is understandable that the target storage space is equivalent to a cache space, which can cache target data. The CXL controller caches the target data in the target storage space, waiting for the second computing device to obtain the target data from the target storage space.
[0100] Combine Figure 3 ,like Figure 4 As shown, Figure 4 Including the second part of the data transmission method, the process of the second computing device obtaining the target data may include S103-S104.
[0101] S103: When the first computing device sends target data to the second computing device, the second computing device determines an address of the target storage space.
[0102] The second computing device determines that the first computing device has sent the target data to the second computing device. A specific determination method may include: the second computing device receives an indication message, where the indication message is used to indicate that the first computing device has sent the target data to the second computing device. The indication message may be sent by the first computing device or a CXL controller in the CXL storage device.
[0103] In one embodiment, under the instruction of the indication message, the second computing device first obtains information of the target transmission channel before determining the address of the target storage space allocated to the first computing device and the second computing device, and the information of the target transmission channel includes the address of the target storage space.
[0104] Specifically, the second computing device receives a data transmission channel table sent by the management unit, where the data transmission channel table includes information about a target data transmission channel between the first computing device and the second computing device. The second computing device obtains information about the target transmission channel from the data transmission channel table, and determines an address of the target storage space from the information about the target transmission channel.
[0105] For a detailed description of the data transmission channel table obtained by the second computing device, please refer to the data transmission channel table obtained by the first computing device in S101.
[0106] In some other optional implementations, after receiving the data transmission channel table sent by the management unit, the second computing device periodically queries whether data is written into the target storage space. If written data is found, a read operation is performed on the target storage space to obtain the target data.
[0107] It can be understood that in the above embodiment, the second computing device can promptly confirm that the first computing device has sent the target data through the received indication message, and then promptly obtain the target data of the target storage space. This method can improve data transmission efficiency and reduce data transmission delay.
[0108] S104: The second computing device obtains target data from the target storage space based on the address of the target storage space.
[0109] In one embodiment, the second computing device sends a target data retrieval request to a CXL controller of the CXL storage device, wherein the target data retrieval request carries the address of the target storage space. After receiving the request, the CXL controller sends the target data in the target storage space to the second computing device.
[0110] The above method is described using an example where a first computing device sends target data to a second computing device. The second computing device can also send target data to the first computing device via the target transmission channel. Multiple computing devices in a cluster can use the above data transmission method to transmit data.
[0111] The embodiment of the present application proposes a data transmission method, in which the first computing device transmits data with the second computing device through a pre-allocated transmission channel, namely the target storage space. The method has the following advantages. First, since the CXL storage device including the target storage space is connected to the first computing device and the second computing device through a physical link, there is no need to transmit data through the network, so the data transmission rate is relatively high. Secondly, the capacity of the target transmission channel is predetermined based on the data transmission requirements of the computing device. Therefore, the transmission channel provided by the target storage space has the characteristics of high bandwidth and low latency. In addition, since the first computing device and the second computing device no longer need to transmit data through the network, the data transmission between the first computing device and the second computing device no longer depends on the network transmission speed, and there is no need to have high requirements on the hardware specifications of the network card. Therefore, the method proposed in the embodiment of the present application can reduce the cost of using the network card and the network.
[0112] The above S103 and S104 are one possible implementation. In another implementation, after S102 , the CXL controller automatically sends the target data written into the target storage space by the first computing device to the second computing device.
[0113] like Figure 5 As shown, a flow chart of a transmission channel allocation method is proposed below, which is applied to a management unit, such as Figure 1 In the FM, the method includes S201-S206.
[0114] S201: The management unit obtains the data transmission requirement information of the cluster.
[0115] The data transmission requirement information of the cluster includes: identifiers of multiple computing device pairs, and data transmission requirements of each computing device pair in the multiple computing device pairs.
[0116] A computing device pair is two computing devices that have data transmission requirements. For example, if there is a data transmission requirement between a first computing device and a second computing device in a cluster, the first computing device and the second computing device constitute a computing device pair.
[0117] The data transmission requirements of the computing device pair include: the amount of data that the computing device pair needs to transmit, or the capacity of the transmission channel required by the computing device pair. For example, the amount of data that the computing device pair needs to transmit is 1G, or the capacity of the transmission channel required by the computing device pair is 1G.
[0118] In one embodiment, the management unit receives data transmission requirement information of the cluster input by a user, where the data transmission requirement information includes: identifiers of multiple computing device pairs, and the capacity of a transmission channel required by each computing device pair.
[0119] Users can input the cluster's data transmission requirements through files, command lines, or the human-computer interaction interface connected to the management unit.
[0120] Exemplarily, the user sends a table containing the data transmission requirement information of the cluster to the management device where the management unit is located through any computing device.
[0121] Exemplarily, the management device where the management unit is located has an input device, and the user inputs a command line in the operating system of the management device through the input device to configure the data transmission requirements of the cluster.
[0122] Exemplarily, the management device where the management unit is located has a human-computer interaction interface, and the user configures the data transmission requirements of the cluster through the human-computer interaction interface.
[0123] In another embodiment, the management unit is provided with default cluster data transmission requirement information, wherein the default computing device pair identifier is the identifier of the computing device connected to one or more CXL storage devices managed by the management unit, and the capacity of the transmission channel is a preset default value.
[0124] For example, as shown in Table 2, which shows the cluster data transmission requirements obtained by the management unit, Table 2 includes "the identifier of the computing device at one end," "the identifier of the computing device at the other end," and "the capacity of the transmission channel." The computing device at one end and the computing device at the other end are the identifiers of a computing device pair, and the capacity of each row of the transmission channel represents the data transmission requirements of the computing device pair in that row.
[0125] Table 2
[0126] Identification of the computing device at one end The identifier of the computing device at the other end Transmission channel capacity Computing device 1 Computing device 2 1G Computing device 1 Computing device 3 2G Computing device 1 Computing Device 4 1G Computing device 2 Computing device 3 2G Computing device 2 Computing Device 4 3G
[0127] S202: The management unit allocates a target storage space in the CXL storage space to the target computing device pair according to the data transmission requirements of the target computing device pair.
[0128] The target computing device pair is any one of the multiple computing device pairs in the data transmission requirement information of the cluster, such as the first computing device and the second computing device.
[0129] The CXL storage space is the storage space of one or more CXL storage devices. The CXL storage devices constituting the CXL storage space include a target CXL storage device, which is a CXL storage device connected to both the first computing device and the second computing device. There can be one or more target CXL storage devices.
[0130] The target storage space is at least a portion of the available storage space of the target CXL storage device in the CXL storage space, and the target storage space is allocated to the first computing device and the second computing device as a target transmission channel.
[0131] Exemplarily, the target computing device pair includes a first computing device and a second computing device, where the first computing device is identified as "computing device 1" and the second computing device is identified as "computing device 2". As shown in Table 2, the management unit allocates "1G" of available storage space from the CXL storage space of the CXL storage device connected to "computing device 1" and "computing device 2" as the target storage space, based on the capacity "1G" of the transmission channel required by "computing device 1" and "computing device 2", to be used as the target transmission channel.
[0132] After obtaining the data transmission requirements of the target computing device pair, such as the first computing device and the second computing device, the management unit allocates target storage space in the CXL storage space to the target computing device pair. The specific process includes: S202a-S202c.
[0133] S202a: The management unit determines a target storage device in the CXL storage space.
[0134] Specifically, the target CXL storage device is one or more CXL storage devices connected to both the first computing device and the target computing device.
[0135] In one embodiment, a CXL storage space managed by a management unit is composed of multiple CXL storage devices, each of which is connected to multiple computing devices in the cluster. The management unit needs to determine, from the multiple CXL storage devices, a CXL storage device connected to the first computing device and the second computing device as a target storage device.
[0136] For example, as shown in Table 3, which shows multiple CXL storage devices managed by the management unit and the computing device connected to each CXL storage device, Table 3 includes "ID of the CXL storage device" and "ID of the computing device connected to the CXL storage device."
[0137] Table 3
[0138] CXL storage device identification The identifier of the computing device to which the CXL storage device is connected. CXL storage device 1 Computing device 1, computing device 2, computing device 3, computing device 4 CXL Storage Device 2 Computing device 2, computing device 3, computing device 4 CXL Storage Device 3 Computing device 3, computing device 4
[0139] If the first computing device is identified as "computing device 1" and the second computing device is identified as "computing device 2," it can be seen from Table 3 that the CXL storage device connected to computing device 1 and computing device 2, respectively, is "CXL storage device 1." Therefore, the management unit determines that the CXL storage space is provided by CXL storage device 1.
[0140] S202b: The management unit determines available storage space in the target CXL storage device.
[0141] The available storage space is the unallocated storage space in the target CXL storage device.
[0142] In one embodiment, the management unit manages an allocation status of the CXL storage space, where the allocation status includes allocated storage space and unallocated storage space. The management unit determines available storage space of the CXL storage space based on the allocation status of the CXL storage space.
[0143] Illustratively, the allocation status of the target storage device managed by the management unit is shown in Table 4, which includes: "allocation status", "address" and "storage capacity".
[0144] Table 4
[0145]
[0146] From the allocation status of the storage space of the target storage device shown in Table 4, it can be seen that the address of the unallocated storage space is Addr3 and the storage capacity is 20G. The management unit determines that the available storage space is the storage space with the address "Addr3" and the storage capacity of "20G".
[0147] S202c: The management unit determines a target storage space to be allocated to the first computing device and the second computing device from the available storage space of the target CXL storage device.
[0148] For example, if the transmission channel capacity required by the first and second computing devices is 1GB, the management unit will determine the target storage space at address "Addr3-1" with a storage capacity of "1GB" from the available storage space at address "Addr3" with a storage capacity of "20GB" shown in Table 4, and use it as the target transmission channel between the first and second computing devices. In this case, the unallocated storage space is Addressr3-2 with a storage capacity of 19GB. The CXL storage space allocation status in Table 4 can be updated accordingly to the CXL storage space allocation status shown in Table 5.
[0149] Table 5
[0150]
[0151] The management unit allocates storage space that meets the data transmission requirements of the target computing device pair based on the data transmission requirements of the target computing device pair. This method can meet the requirements of the target computing device pair and avoid waste of storage space resources.
[0152] S203: The management unit generates information of the target transmission channel.
[0153] The information of the target transmission channel includes: an identifier of the target transmission channel, an address of the target storage space, and a storage capacity of the target storage space.
[0154] The identifier of the transmission channel is an identifier set by the management unit for the storage space used as the transmission channel. For example, the identifier can be a number, a string or other symbols.
[0155] Exemplarily, the management unit sets the identifier of the transmission channel for the target storage space of "1G" to "1".
[0156] Exemplarily, the management unit allocates a target storage space with a storage capacity of 1G to "computing device 1" and "computing device 2", and the management unit sets the identifier of the target transmission channel for the 1G target storage space as "1".
[0157] In this process, the management unit sets an identifier for the storage space used as the transmission channel to facilitate the management of the transmission channel. If there are multiple transmission channels in the future, the multiple transmission channels can be managed based on the identifier of the transmission channel to avoid confusion.
[0158] S204: The management unit records the identifier of the target computing device pair and the information of the target transmission channel in a corresponding manner in the target communication relationship entry, and the management unit stores the target communication relationship entry in the data transmission channel table.
[0159] Exemplarily, the management unit allocates a storage space with a storage capacity of 1G to "computing device 1" and "computing device 2", the address of the storage space is Addr1, and the management unit sets the identifier "1" for the 1G storage space. The management unit records the identifier "1" of the transmission channel, the identifiers of the computing device pair "computing device 1" and "computing device 2", the address "Addr1" of the storage space and the storage capacity "1G" in a communication relationship entry, and the management unit records the communication relationship entry in a data transmission channel table, such as the data transmission channel table shown in Table 1.
[0160] S205: The management unit determines whether storage space is allocated to the plurality of computing device pairs.
[0161] If yes, execute S206;
[0162] If not, based on the data transmission requirement information, the next computing device pair among the multiple computing device pairs is used as the target computing device pair, and S202 is executed.
[0163] The next computing device pair is any one of the computing device pairs among the multiple computing device pairs for which storage space has not been allocated.
[0164] For example, as shown in Table 2, for the data transmission requirements of the cluster, if the management unit has allocated storage space for "computing device 1" and "computing device 2", but has not yet allocated storage space for "computing device 1" and "computing device 3", "computing device 1" and "computing device 4", "computing device 2" and "computing device 3", and "computing device 2" and "computing device 4", then the next computing device pair can be any one of the multiple computing device pairs for which storage space has not yet been allocated.
[0165] In one embodiment, the management unit allocates storage space to each computing device pair in turn based on the data transmission demand information. After all computing device pairs have been allocated storage space, it determines to allocate storage space to multiple computing device pairs.
[0166] S206: The management unit sends the target communication relationship entry to the target computing device pair.
[0167] Optionally, the management unit sends a data transmission channel table to multiple computing device pairs so that each computing device pair obtains information of a corresponding transmission channel, wherein the multiple computing device pairs include a target computing device pair, and the data transmission channel table includes a target communication relationship entry.
[0168] The management unit records multiple communication relationship entries containing transmission channel information in a data transmission channel table, making it easier for the management unit to manage multiple communication relationship entries and avoid confusion. Furthermore, the management unit sends the data transmission channel table to multiple computing devices, enabling them to quickly obtain information about their assigned transmission channels, thereby improving data transmission efficiency.
[0169] In the above S202-S206, the management unit allocates storage space to each computing device pair in turn based on the data transmission requirements of the cluster. In another embodiment, the management unit first divides the CXL storage space into multiple sub-storage spaces based on the data transmission requirements of the cluster, and the multiple sub-storage spaces are used as transmission channels for multiple computing device pairs; then establishes a one-to-one correspondence between the information of the multiple transmission channels and the identifiers of the multiple computing device pairs, and records them as multiple communication relationship entries; finally, the multiple communication relationship entries are recorded in a data transmission channel table, and the management unit sends the data transmission channel table to the multiple computing device pairs, so that the multiple computing device pairs obtain the information of their corresponding transmission channels.
[0170] In the transmission channel allocation method proposed in the embodiments of this application, a management unit pre-allocates fixed storage space from the available storage space in the CXL storage space based on the data transmission needs of multiple computing device pairs. This storage space serves as a transmission channel between the computing device pairs. Once allocated, each channel becomes a fixed transmission channel, dedicated to data transmission between two computing devices. Each computing device pair can transmit data on this fixed transmission channel without occupying the transmission channels of other computing devices. In related technologies, if a computing device transmits data with multiple other computing devices, it can only use a single transmission channel provided by the network interface card. Therefore, the transmission channel allocation method proposed in the embodiments of this application can avoid the queuing problem caused by transmitting data on a single transmission channel, thereby improving the overall data transmission performance of the cluster.
[0171] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of the method. In order to realize the above functions, it includes hardware structures and / or software modules corresponding to the execution of each function. It should be easy to realize that the technical goals in this field are combined with the units and algorithm steps of each example described in the embodiments disclosed herein, and the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional technical goals can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0172] The present application embodiment further provides a computing device 200, for example Figure 1 The computing device 110 in FIG. Figure 6, which is a structural diagram of a computing device 200 provided in an embodiment of the present application.
[0173] The computing device 200 includes: a determination unit 201, which is used for the first computing device to determine the address of the target storage space when the first computing device needs to send target data to the second computing device, and the target storage space is a target transmission channel allocated to the first computing device and the second computing device; wherein the CXL storage device including the target storage space is communicatively connected with both the first computing device and the second computing device; and a writing unit 202, which is used to write the target data into the target storage space based on the address of the target storage space, so that the second computing device can obtain the target data from the target storage space.
[0174] In some embodiments, both the first computing device and the second computing device are connected to a management unit, which is used to manage the storage space of one or more CXL storage devices. The computing device 200 further includes a receiving unit 203, which is used to receive a data transmission channel table sent by the management unit before the first computing device determines the address of the target storage space; the data transmission channel table includes information about the target transmission channel between the first computing device and the second computing device; the computing device 200 further includes an acquiring unit 204, which is used to acquire information about the target transmission channel; the information about the target transmission channel includes the address of the target storage space.
[0175] In some embodiments, the information of the target transmission channel in the data transmission channel table includes: an identifier of the target transmission channel, an identifier of the first computing device, an identifier of the second computing device, an address of the target storage space, and a storage capacity of the target storage space; the acquisition unit 204 is specifically used to determine the information of the target transmission channel from the data transmission channel table based on the identifier of the first computing device and the identifier of the second computing device; the determination unit 201 is specifically used to determine the address of the target storage space from the information of the target transmission channel.
[0176] In some embodiments, both the first computing device and the second computing device are connected to a management unit, which is used to manage storage space of one or more CXL storage devices. The determination unit 201 is specifically used to send a request to the management unit to obtain a data transmission channel table; the data transmission channel table includes information about a target transmission channel; receive the data transmission channel table, determine the information about the target transmission channel based on the data transmission channel table; and determine the address of the target storage space from the information about the target transmission channel.
[0177] The present application embodiment further provides a computing device 300, for example Figure 1 The computing device 110 in FIG. Figure 7 , which is a structural diagram of a computing device 300 provided in an embodiment of the present application.
[0178] The computing device 300 includes: a determination unit 301, which is used for the second computing device to determine the address of a target storage space when the first computing device sends target data to the second computing device, where the target storage space is a target transmission channel allocated to the first computing device and the second computing device; wherein the CXL storage device including the target storage space is communicatively connected to both the first computing device and the second computing device; and an acquisition unit 302, which is used to acquire the target data from the target storage space based on the address of the target storage space.
[0179] In some embodiments, when a first computing device sends target data to a second computing device, before the second computing device determines the address of the target storage space, the determining unit 301 is further configured to, upon receiving an indication message, determine that the first computing device has sent the target data to the second computing device; the indication message is used to indicate that the first computing device has sent the target data to the second computing device, and the indication message is sent by the first computing device or by a CXL controller in the CXL storage device.
[0180] The present application embodiment also provides a management device 400, for example Figure 1 The management device of the running management unit is shown. Figure 8 , which is a structural diagram of a management device 400 provided in an embodiment of the present application.
[0181] Among them, the management device 400 includes: an acquisition unit 401, used to obtain the data transmission demand information of the cluster, the data transmission demand information includes: the identification of multiple computing device pairs, and the data transmission demand of each computing device pair in the multiple computing device pairs; an allocation unit 402, used to allocate a target storage space in the CXL storage space to the target computing device pair according to the data transmission demand of the target computing device pair; wherein the target computing device pair includes a first computing device and a second computing device, the target storage space is connected to both the first computing device and the second computing device, and the target storage space is a target transmission channel allocated to the first computing device and the second computing device; a sending unit 403, used to send a target communication relationship entry to the target computing device pair; the target communication relationship entry includes the identification of the target computing device pair and information on the target transmission channel.
[0182] In some implementations, the management device further includes a generation unit 404 configured to generate target transmission channel information after allocating target storage space in the CXL storage device to the target computing device pair; the target transmission channel information includes: an identifier of the target transmission channel, an address of the target storage space, and a storage capacity of the target storage space.
[0183] In some embodiments, the management device 400 also includes a recording unit 405, which, after generating the information of the target transmission channel, records the identification of the target computing device pair and the information of the target transmission channel in the target communication relationship entry; stores the target communication relationship entry in the data transmission channel table; and the sending unit 403 is specifically used to send the data transmission channel table to the target computing device pair.
[0184] Of course, the computing device 200, computing device 300 or management device 400 provided in the embodiments of the present application include but are not limited to the above modules.
[0185] Figure 9 is a schematic diagram of the structure of the device 500 provided in the embodiment of the present application, and the device 500 may be Figure 1 The computing device 110 in the embodiment, or the management device running the management unit. Figure 9 As shown, the device 500 includes a processor 501 , a memory 502 and a network interface 503 .
[0186] The processor 501 includes one or more CPUs, which may be single-core CPUs (single-CPU) or multi-core CPUs (multi-CPU).
[0187] The memory 502 includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or optical storage.
[0188] In some implementations, the processor 501 implements the data transmission method provided in the embodiments of the present application by reading instructions stored in the memory 502, or the processor 501 implements the transmission channel allocation method provided in the embodiments of the present application by internally stored instructions. In the case where the processor 501 implements the method in the above embodiment by reading instructions stored in the memory 502, the memory 502 stores instructions that implement the data transmission method or transmission channel allocation method provided in the embodiments of the present application.
[0189] Network interface 503, a device including a transmitter and a receiver, is used to communicate with other devices or communication networks. It can be a wired interface (port), such as a fiber distributed data interface (FDDI) or a gigabit Ethernet (GE) interface. Alternatively, network interface 503 can be a wireless interface. It should be understood that network interface 503 includes multiple physical ports and is used for communication, etc.
[0190] In some implementations, the device 500 further includes a bus 504 , and the processor 501 , memory 502 , and network interface 503 are typically interconnected via the bus 504 , or are interconnected in other ways.
[0191] In actual implementation, the determining unit 201, writing unit 202, receiving unit 203, and obtaining unit 204, or the determining unit 301 and obtaining unit 302, or the obtaining unit 401, allocating unit 402, sending unit 403, generating unit 404, and recording unit 405 can be implemented by a processor calling computer program code in a memory. The specific execution process can be found in the description of the method section above and will not be repeated here.
[0192] An embodiment of the present application provides a computing device, including a memory and at least one processor connected to the memory, wherein the memory is used to store computer program code, and the computer program code includes computer instructions. When the computer instructions are executed by the at least one processor, the computing device executes the various steps of the data transmission method shown in the above method embodiment.
[0193] Another embodiment of the present application also provides a management device, including a processor, the processor is coupled to a memory, and the memory is used to store programs or instructions. When the program or instructions are executed by the processor, the management device executes each step of the transmission channel allocation method shown in the above method embodiment.
[0194] Another embodiment of the present application also provides a computer-readable storage medium, which stores computer instructions. When the computer instructions are executed on a computing device, the computing device executes the various steps executed by the computing device in the data transmission method process shown in the above method embodiment; or, when the computer instructions are executed on a management device, the management device executes the various steps executed by the management device in the transmission channel allocation method process shown in the above method embodiment.
[0195] Another embodiment of the present application provides another chip system, which is applied to a computing device. The chip system includes one or more interface circuits and one or more processors. The interface circuits and processors are interconnected via wiring. The interface circuits are configured to receive signals from the computing device's memory and send signals to the processor, the signals including computer instructions stored in the memory. When the computing device's processor executes the computer instructions, the computing device executes each step performed by the computing device in the data transmission method flow shown in the above method embodiment.
[0196] Another embodiment of the present application provides a chip system for use in a management device. The chip system includes one or more interface circuits and one or more processors. The interface circuits and processors are interconnected via circuits. The interface circuits are configured to receive signals from the management device's memory and send signals to the processors, the signals including computer instructions stored in the memory. When the processor of the management device executes the computer instructions, the management device performs the steps performed by the management device in the transmission channel allocation method described in the above method embodiment.
[0197] In another embodiment of the present application, another computer program product is also provided. The computer program product includes computer instructions. When the computer instructions are executed on a computing device, the computing device executes each step executed by the computing device in the data transmission method process shown in the above method embodiment.
[0198] In another embodiment of the present application, a computer program product is also provided. The computer program product includes computer instructions. When the computer instructions are executed on a management device, the management device executes each step executed by the management device in the transmission channel allocation method process shown in the above method embodiment.
[0199] The above embodiments can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using a software program, the above embodiments can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer-executable instructions are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a server, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more media integrated therein. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)).
[0200] The above is only a specific embodiment of the present application. Those skilled in the art may conceive of changes or substitutions based on the specific embodiment provided in this application, and all such changes or substitutions shall fall within the scope of protection of this application.
Claims
1. A data transmission method, characterized in that: Applied to a first computing device in a cluster, the cluster comprising a plurality of computing devices, the method comprising: When the first computing device needs to send target data to a second computing device in the cluster, the first computing device determines an address of a target storage space, where the target storage space is a target transmission channel allocated to the first computing device and the second computing device; wherein a Compute Extension Link (CXL) storage device including the target storage space is communicatively connected to both the first computing device and the second computing device; writing the target data into the target storage space based on the address of the target storage space, so that the second computing device can obtain the target data from the target storage space; The first computing device and the second computing device are both connected to a management unit, the management unit being configured to manage storage space of one or more CXL storage devices. Before the first computing device determines the address of the target storage space, the method further includes: receiving a data transmission channel table sent by the management unit; the data transmission channel table including addresses of the target storage spaces allocated by the management unit to the first computing device and the second computing device based on data transmission requirements between the first computing device and the second computing device; the data transmission requirements including an amount of data to be transmitted between the first computing device and the second computing device and / or a required capacity of the transmission channel; The storage space used for the transmission channel between two computing devices in the CXL storage device is provided with a channel identifier, and the channel identifier is used by the management unit to manage the storage space used as the transmission channel.
2. The method according to claim 1, characterized in that The data transmission channel table includes information of a target transmission channel between the first computing device and the second computing device; Before the first computing device determines the address of the target storage space, the method further includes: Acquiring information of the target transmission channel; The information of the target transmission channel includes the address of the target storage space.
3. The method according to claim 2, characterized in that The information of the target transmission channel in the data transmission channel table includes: an identifier of the target transmission channel, an identifier of the first computing device, an identifier of the second computing device, an address of the target storage space, and a storage capacity of the target storage space; obtaining the information of the target transmission channel includes: determining information of the target transmission channel from the data transmission channel table according to the identifier of the first computing device and the identifier of the second computing device; The first computing device determines an address of a target storage space allocated to the first computing device and the second computing device, including: The address of the target storage space is determined from the information of the target transmission channel.
4. A data transmission method, characterized in that: Applied to a second computing device in a cluster, the cluster comprising a plurality of computing devices, the method comprising: When a first computing device in the cluster sends target data to a second computing device, the second computing device determines an address of a target storage space, the target storage space being a target transmission channel allocated to the first computing device and the second computing device; wherein a Compute Extension Link (CXL) storage device including the target storage space is communicatively connected to both the first computing device and the second computing device; Retrieving the target data from the target storage space based on the address of the target storage space; The first computing device and the second computing device are both connected to a management unit, the management unit being configured to manage storage space of one or more CXL storage devices. Before the second computing device determines the address of the target storage space, the method further includes: receiving a data transmission channel table sent by the management unit; the data transmission channel table including addresses of the target storage spaces allocated by the management unit to the first computing device and the second computing device based on data transmission requirements between the first computing device and the second computing device; the data transmission requirements including the amount of data to be transmitted between the first computing device and the second computing device and / or the required capacity of the transmission channel; The storage space used for the transmission channel between two computing devices in the CXL storage device is provided with a channel identifier, and the channel identifier is used by the management unit to manage the storage space used as the transmission channel.
5. The method according to claim 4, characterized in that In a case where the first computing device sends target data to the second computing device, before the second computing device determines the address of the target storage space, the method further includes: Upon receiving an indication message, it is determined that the first computing device has sent the target data to the second computing device; the indication message is used to indicate that the first computing device has sent the target data to the second computing device, and the indication message is sent by the first computing device or by a CXL controller in the CXL storage device.
6. A transmission channel allocation method, characterized in that: The method is applied to a management unit, the management unit being communicatively connected to a plurality of computing devices in a cluster, and the management unit being used to manage a CXL storage space formed by one or more computing extension-connected CXL storage devices, and comprising: Acquire data transmission requirement information of the cluster, the data transmission requirement information including: identifiers of a plurality of computing device pairs, and data transmission requirement of each of the plurality of computing device pairs; Allocating a target storage space in the CXL storage space to the target computing device pair based on data transmission requirements of the target computing device pair; wherein the target computing device pair includes a first computing device and a second computing device, the CXL storage device including the target storage space is connected to both the first computing device and the second computing device, and the target storage space is a target transmission channel allocated to the first computing device and the second computing device; Sending a target communication relationship entry to the target computing device pair; the target communication relationship entry includes an identifier of the target computing device pair and information about the target transmission channel; The target transmission channel information includes the address of the target storage space allocated by the management unit to the first computing device and the second computing device based on the data transmission requirement between the first computing device and the second computing device; the data transmission requirement includes the amount of data to be transmitted between the first computing device and the second computing device and / or the required capacity of the transmission channel; The storage space used for the transmission channel between two computing devices in the CXL storage device is provided with a channel identifier, and the channel identifier is used by the management unit to manage the storage space used as the transmission channel.
7. The method according to claim 6, characterized in that After allocating the target storage space in the CXL storage space to the target computing device pair, the method further includes: Generate information of the target transmission channel; the information of the target transmission channel also includes: a channel identifier of the target transmission channel and a storage capacity of the target storage space.
8. The method according to claim 7, characterized in that After generating the information of the target transmission channel, the method further includes: Recording the identifier of the target computing device pair and the information of the target transmission channel in the target communication relationship entry in correspondence; Storing the target communication relationship entry in a data transmission channel table; The sending of the target communication relationship entry to the target computing device pair includes: The data transmission channel table is sent to the target computing device pair.
9. A computing device, characterized in that The method comprises a memory and at least one processor connected to the memory, wherein the memory is used to store computer program code, and the computer program code comprises computer instructions. When the computer instructions are executed by the at least one processor, the computing device executes the method according to any one of claims 1 to 5.
10. A management device, characterized in that: The device comprises a processor coupled to a memory, wherein the memory is used to store programs or instructions. When the programs or instructions are executed by the processor, the management device executes the method according to any one of claims 6 to 8.
Citation Information
Patent Citations
Computing device and request processing method
CN115858434A