Switch, system and method for data transmission based on dynamic routing descriptors and shared pool

By using dynamic routing descriptors and shared pool data transmission methods, the performance bottleneck of switches in multi-port, high-bandwidth, low-latency scenarios is resolved, achieving more efficient data transmission and resource utilization.

CN121309511BActive Publication Date: 2026-05-19SHANGHAI XINLIJI SEMICON CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHANGHAI XINLIJI SEMICON CO LTD
Filing Date
2025-12-15
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing switches suffer from bandwidth waste, resource contention and imbalance, and routing table management complexity when handling data traffic with multiple ports, high bandwidth, and low latency requirements, leading to performance bottlenecks and resource waste.

Method used

A data transmission method based on dynamic routing descriptors and a shared pool is adopted. By separating the packet header and payload data, the payload data is stored in the shared pool, and a dynamic routing descriptor is generated to indicate the target port and storage location. Each port self-matches to confirm whether it is the target port and independently schedules data transmission.

Benefits of technology

It improves the utilization rate of switch storage space and data access efficiency, simplifies routing management, reduces data transmission latency and resource waste, and enhances the system's bandwidth utilization efficiency and throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121309511B_ABST
    Figure CN121309511B_ABST
Patent Text Reader

Abstract

The application discloses a switch, system and method for data transmission based on dynamic routing descriptor and shared pool, the switch comprises a plurality of ports and a shared pool of storage units shared by each port; the port receives a data packet, separates the packet header and the load data of the data packet; the shared pool stores the load data and returns the storage location information of the load data in the shared pool to the port; the port parses the packet header to determine the target port information and generates a dynamic routing descriptor in combination with the storage location information, the dynamic routing descriptor comprises the target port information and the storage location information, and the port also broadcasts the dynamic routing descriptor to other ports outside the port; the other ports determine whether the target port information in the dynamic routing descriptor matches the port information of the other ports, and the target port consistent with the match receives the load data through the shared pool based on the storage location information. The application can adaptively improve the utilization rate of the switch cache, reduce the congestion and delay of data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the fields of computer and communication technology, and in particular to a switch, system, and method for data transmission based on dynamic routing descriptors and shared pools. Background Technology

[0002] With the rapid development of artificial intelligence (AI) and high-performance computing (HPC), AI all-in-one servers and server clusters have become core equipment in data centers. In these systems, the PCIe (Peripheral Component Interconnect Express) and CXL (Compute Express Link) protocols, as high-speed interconnect protocols, are widely used for high-speed data transmission between servers, accelerator cards, storage devices, and more. Due to the increasing demands for large-scale data flows and low latency, modern switching systems must be able to handle more complex multi-port data traffic while meeting stringent requirements for high bandwidth and low latency.

[0003] As a core component of these devices, PCIe / CXL switches are responsible for efficiently transmitting data to multiple destination ports. However, with the increasing number of ports, switches face significant performance bottlenecks and resource waste when handling traffic with high bandwidth and low latency requirements.

[0004] Most existing switches rely on a crossbar-based architecture for data routing and forwarding. The data transmission methods within existing switches typically include the following:

[0005] Global broadcast mechanism: In traditional switch architecture, data received from the input port is broadcast to all output ports. Regardless of whether the output port needs the data, it will receive the data packet. This method is mainly used in multicast and broadcast scenarios, but it consumes a lot of system resources.

[0006] Crossbar switching: Data packets are forwarded directly to the target output port via a crossbar. The crossbar supports connections between any input and output ports. However, this structure leads to increased wiring complexity and high latency when there are many ports, making it difficult to handle high-speed, high-traffic scenarios.

[0007] Routing table management: The routing table stores routing information for destination addresses and sends data packets to the correct destination port based on this information. Because data routing needs to be divided into three fixed categories, traditional routing table management needs to handle a large amount of address information. As the number of ports increases, the size and management complexity of the routing table increase exponentially, and the central sorting and scheduling becomes more complex, especially in broadcasts where congestion on a single port can cause massive data congestion.

[0008] Based on the existing switch architecture and data transmission methods, the following technical pain points exist.

[0009] (1) Bandwidth waste: The traditional global broadcast mechanism will broadcast data to all ports. Even if some ports do not need to receive the data, they will still occupy network bandwidth and cache resources. This leads to a lot of bandwidth waste in application scenarios with high bandwidth and low latency requirements.

[0010] (2) Resource contention and imbalance: All output ports share bandwidth and buffer resources. When multiple ports receive unnecessary data at the same time, resource contention is likely to occur. Especially in multi-port switches, resource imbalance and bandwidth conflict have become bottlenecks restricting performance.

[0011] (3) Complexity of routing table management: As the number of ports increases, the size of the routing table also increases, which leads to a significant increase in the complexity and overhead of route lookup and update when the switch is processing large-scale data flow, affecting the overall performance.

[0012] The above background information is provided only to assist in understanding the inventive concept and technical solution of this invention. It does not necessarily belong to the prior art of this application, nor does it necessarily provide technical teaching. In the absence of clear evidence that the above information was disclosed before the filing date of this application, the above background information should not be used to evaluate the novelty and inventiveness of this application. Summary of the Invention

[0013] The purpose of this invention is to provide a switch, system, and method for data transmission based on dynamic routing descriptors and shared pools, which can adaptively improve the utilization of switch cache, increase data transmission speed, and reduce congestion and latency.

[0014] To achieve the above objectives, the technical solution adopted by the present invention is as follows:

[0015] A switch for data transmission based on dynamic routing descriptors and a shared pool includes multiple ports and a shared pool, wherein the shared pool is configured as a storage unit shared by all ports of the switch.

[0016] The port is configured to separate the header and payload data of a data packet received from outside the switch in response to the data packet received from outside the switch.

[0017] The shared pool is configured to store the load data and return the storage location information of the load data in the shared pool to the port;

[0018] The port is also configured to parse the packet header to determine the target port information and combine it with the storage location information to generate a dynamic route descriptor, the dynamic route descriptor including the target port information and the storage location information, and the port is also configured to broadcast the dynamic route descriptor to other ports besides the port itself;

[0019] Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. The port that matches is the target port, and the target port receives the load data through the shared pool based on the storage location information.

[0020] Furthermore, following any one or a combination of the aforementioned technical solutions, the shared pool includes multiple storage partitions, and the load data separated from each of the ports is configured to be stored in any one of the storage partitions.

[0021] Furthermore, following any one or a combination of the aforementioned technical solutions, the shared pool is configured to store the load data in the storage partition with the largest remaining storage space.

[0022] and / or;

[0023] The shared pool is configured to store the load data in a storage partition where the remaining storage space is greater than a preset storage space threshold.

[0024] Furthermore, based on any or a combination of the aforementioned technical solutions, the port includes a data separation module, a routing module, and a dynamic routing descriptor module;

[0025] The data separation module is configured to separate the packet header and payload data of the data packet, and transmit the payload data to the shared pool;

[0026] The routing module is configured to parse the target port information according to the routing method corresponding to the packet header;

[0027] The dynamic route descriptor module is configured to generate the dynamic route descriptor based on the target port information and the storage location information.

[0028] Furthermore, based on any or a combination of the aforementioned technical solutions, the data separation module is further configured to determine the data length of the load data and transmit it to the dynamic routing descriptor module;

[0029] The storage location information includes the starting address information of the load data in the shared pool;

[0030] The dynamic route descriptor module generates the dynamic route descriptor based on the target port information, data length, and starting address information.

[0031] Furthermore, based on any or a combination of the aforementioned technical solutions, the shared pool includes multiple storage partitions, each of which is configured with a unique partition number;

[0032] The starting address information includes the partition number and the offset address, and the dynamic route descriptor includes the destination port information, data length, partition number, and offset address.

[0033] Furthermore, following any one or a combination of the aforementioned technical solutions, in the dynamic routing descriptor, the storage location information is set after the target port information.

[0034] Furthermore, following any one or a combination of the aforementioned technical solutions, the target port is configured to receive the data packet in the following manner:

[0035] The target port sends a data transmission request to the shared pool, and the data transmission request includes the target port information and storage location information;

[0036] In response to receiving the data transmission request, the shared pool transmits the data packet corresponding to the storage location information to the target port.

[0037] Furthermore, following any one or a combination of the aforementioned technical solutions, in response to receiving multiple dynamic routing descriptors, the target port sorts the dynamic routing descriptors corresponding to the target port information that matches its own port information according to priority and / or reception time to obtain a dynamic routing descriptor sequence; the target port then sends corresponding data transmission requests to the shared pool sequentially according to the dynamic routing descriptor sequence.

[0038] And / or, before sending a data transmission request to the shared pool, the target port may pre-determine whether its remaining storage space meets the preset storage requirements. If it does, it sends a data transmission request to the shared pool; otherwise, it does not send a data transmission request to the shared pool.

[0039] Furthermore, following any one or a combination of the aforementioned technical solutions, each of the target ports requests the transmission of corresponding data packets to the shared pool based on its own dynamic routing descriptor sequence, and the dynamic routing descriptor sequence of the target port does not affect the process of other target ports requesting the shared pool to transmit data packets.

[0040] Furthermore, in accordance with any or a combination of the aforementioned technical solutions, the port is also configured to parse the packet header to determine the target number of ports and transmit the target number of ports to the shared pool;

[0041] The shared pool is also configured to count the number of times the data packet is transmitted to the target port based on the number of target ports, and when the count reaches the number of target ports, the shared pool deletes the data packet.

[0042] Furthermore, based on any or a combination of the aforementioned technical solutions, the storage location information includes the starting storage location and the ending storage location of the load data in the shared pool;

[0043] And / or,

[0044] Each of the ports includes a receiving port and a transmitting port. The receiving port is configured to receive data transmitted to the switch from the outside and to transmit data to a transmitting port of a port other than the port corresponding to the receiving port. The transmitting port is configured to receive data transmitted by the receiving port of a port other than the port corresponding to the transmitting port and to transmit the data to the outside of the switch.

[0045] And / or,

[0046] Each of the ports is electrically connected to the shared pool via a crossbar.

[0047] According to another aspect of the present invention, a communication system for data transmission based on dynamic routing descriptors and a shared pool is provided, comprising a plurality of devices to communicate and a switch for data transmission based on dynamic routing descriptors and a shared pool as described in any one or a combination of the above technical solutions, wherein each device is electrically connected to the switch and communicates through the switch.

[0048] According to another aspect of the present invention, a data transmission method based on dynamic routing descriptors and a shared pool is provided, comprising the following steps:

[0049] When a switch port receives a data packet transmitted to it from outside the switch, it separates the packet header and payload data, and transmits the payload data to a shared pool, which is configured as a storage unit shared by all ports of the switch.

[0050] The shared pool stores the load data and returns the storage location information of the load data in the shared pool to the port;

[0051] The port parses the packet header to determine the target port information and combines it with the storage location information to generate a dynamic route descriptor. The dynamic route descriptor includes the target port information and the storage location information. The receiving port is also configured to broadcast the dynamic route descriptor to other ports besides the receiving port.

[0052] Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. The port that matches is the target port, and the target port receives the load data through the shared pool based on the storage location information.

[0053] The beneficial effects of the technical solution provided by this invention are as follows:

[0054] a. This invention uses dynamic routing descriptors to indicate the location of the target port and data in the shared pool. The shared pool dynamically allocates storage locations to the payload of each data packet. Other ports besides the receiving port self-match to confirm whether they are the target port. If they are confirmed to be the target port, they extract the data from the corresponding location in the shared pool based on the dynamic routing descriptor. This greatly improves the utilization rate of the switch's storage space, data access efficiency, and scheduling flexibility.

[0055] b. Traditional switches typically use static routing tables for data scheduling, which lacks flexibility and cannot be adjusted according to real-time needs. In contrast, this invention, through dynamic routing descriptors and a sorting scheduling mechanism, can adjust the data transmission order in real time based on the feedback and request information from the target port. This allows the system to flexibly respond to different traffic demands, improving system throughput and response speed. Moreover, compared to the existing technology where the routing table and resource management of switches become complex and inefficient as the number of ports and data traffic increases, this invention simplifies routing management by using a shared pool and dynamic routing descriptors, eliminating the need to rely on traditional routing tables. It also provides better scalability, easily handling larger-scale systems and more complex routing requirements.

[0056] c. In existing multicast or multicast processes, multiple output ports typically share the same bandwidth and cache resources, which can easily lead to resource contention and degrade system performance. This invention enables each output port to independently schedule and process data based on its remaining storage space, avoiding delays in other ports due to congestion in one port during multicast or multicast. This ensures that data can be transmitted in a timely manner according to the actual needs of the target port, reducing unnecessary waiting time and significantly reducing data transmission latency. It also ensures balanced and efficient distribution of data traffic, improving the system's bandwidth utilization efficiency and throughput.

[0057] d. In this invention, the shared pool, based on a counting mechanism, can promptly clear the data when the counting is complete, i.e., after all target ports have received the data corresponding to the storage location information, thereby releasing storage space for the next data transmission. This efficient resource reclamation mechanism can avoid unnecessary resource occupation and waste, and improve the overall resource utilization rate of the system. Attached Figure Description

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

[0059] Figure 1 A module block diagram of a switch provided for an exemplary embodiment of the present invention;

[0060] Figure 2 A schematic diagram illustrating the working principle of each module of the receiving port provided in an exemplary embodiment of the present invention;

[0061] Figure 3 A schematic diagram of a data transmission process based on dynamic route descriptors and a shared pool, provided as an exemplary embodiment of the present invention;

[0062] Figure 4 This is a schematic diagram illustrating the working principle of each module of the output port, provided as an exemplary embodiment of the present invention. Detailed Implementation

[0063] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.

[0064] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, apparatus, product, or device that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or devices.

[0065] Based on the existing switch architecture and data transmission methods, in addition to the technical pain points mentioned in the background technology, there are also the following shortcomings: (1) Lack of flexibility: Most of the existing routing methods are preset and lack the ability to dynamically adjust according to real-time needs and target port status. The switch cannot make the optimal decision in real time according to the actual data traffic and port needs, which leads to inefficient traffic allocation and waste of resources; (2) Incoordination of port congestion: Once the remaining storage space of a certain port is insufficient in multicast or groupcast, it will cause data stagnation and space occupation of other ports. For example, if the central Crossbar replication is used, it is necessary to wait for all ports to have remaining storage space before using Crossbar replication to transmit to each port, or to copy to multiple buffers to transmit to the target port separately, which will cause a great waste of space.

[0066] To address the shortcomings of existing technologies, this invention proposes a switch, system, and method for data transmission based on dynamic routing descriptors and a shared pool. The technical solution proposed in this application is applicable to PCIe switches, CXL switches, and network devices or communication systems communicating through PCIe switches or CXL switches. The descriptor structure and shared pool proposed in this application enable more efficient dynamic management of data transmission, optimizing data transmission paths, improving data transmission efficiency within the switch, and reducing resource waste. Especially in scenarios involving multi-port multicast and all-port broadcast, the precise dynamic routing descriptor control mechanism and feedback mechanism enable efficient data scheduling and retrieval control, making it particularly suitable for switches, network devices, and communication systems with high bandwidth and low latency requirements.

[0067] In one embodiment of the present invention, a switch for data transmission based on dynamic routing descriptors and a shared pool is provided, see [link to relevant documentation]. Figure 1 The switch includes multiple ports and a shared pool, which is configured as a storage unit shared by all ports of the switch.

[0068] The port is configured to separate the header and payload data of a data packet received from outside the switch in response to the data packet received from outside the switch.

[0069] The shared pool is configured to store the load data and return the storage location information of the load data in the shared pool to the port;

[0070] The port is also configured to parse the packet header to determine the target port information and combine it with the storage location information to generate a dynamic route descriptor (URD). The dynamic route descriptor includes the target port information and the storage location information. The port is also configured to broadcast the dynamic route descriptor to other ports besides the port itself.

[0071] Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. The port that matches is the target port, and the target port receives the load data through the shared pool based on the storage location information.

[0072] In one embodiment of the invention, each port in the switch is in full-duplex mode, meaning the port includes a receive port and a transmit port. The receive port is configured to receive data transmitted to the switch from outside and to transmit data to transmit ports other than the port corresponding to the receive port. The transmit port is configured to receive data transmitted from receive ports other than the port corresponding to the transmit port and to transmit the data to the outside of the switch. In other embodiments, the ports of the switch can also be simplex ports. If the switch is a simplex port, some ports are input ports and others are output ports.

[0073] In this embodiment, the novel routing method based on dynamic route descriptors proposed in this invention is as follows: Figure 1 and Figure 2 As shown, the data flow routing between the output ports, input port shared pool, and central processing unit in the switch, as well as the collaboration process of each module, are as follows.

[0074] like Figure 2 As shown, the port includes a data separation module, a routing module, and a dynamic route descriptor module (URD module for short); the data separation module is configured to separate the packet header and payload data of the data packet, and transmit the payload data to the shared pool; the routing module is configured to parse the target port information according to the routing method corresponding to the packet header; the dynamic route descriptor module is configured to generate the dynamic route descriptor according to the target port information and the storage location information.

[0075] Specifically, after receiving external data, the input port first parses the data. The data received by the input port can be data packets in TLP or a third data format (such as CacheMem format), and this data is transmitted to the input port through the switch's port.

[0076] During the data parsing process, the input port first parses and removes the header of the received data. Key information (such as data length, source port information, etc.) is extracted through header parsing, and the data is classified to obtain control information that needs to be routed, but does not include target port information. The parsed header is then sent to the routing module for further parsing.

[0077] The input port separates the packet header and the payload data to obtain the payload data, and directly stores the payload data in the shared pool to await subsequent routing scheduling.

[0078] The data separation module generates an initial dynamic route descriptor (initial URD) based on the packet header information obtained from the preliminary parsing. The initial URD only contains basic information such as data length and routing control information, and does not contain target port information.

[0079] like Figure 2 As shown, the routing module is responsible for parsing the packet header to extract the target port information. The routing module further parses the packet header obtained by the data separation module and determines the target port information and the number of target ports based on the routing method indicated by the packet header. Existing routing methods typically include address routing, ID routing, and implicit routing. The target port address is located by parsing the routing method accordingly. For example, based on address routing and ID routing, the routing module can query and match the target port information and the number of target ports according to the routing table. In this application, the target port information includes at least the target port address information or target port number information used to indicate the target port. The number of target ports is the number of output ports, i.e., target ports, that the routing module calculates need to transmit to.

[0080] The data separation module outputs the initial URD to the URD module, and the routing module also inputs the target port information and the number of target ports to the URD module.

[0081] The URD module generates a complete URD, i.e., the dynamic route descriptor, based on the initial URD, target port information, number of target ports, and storage location information returned by the shared pool. The storage location information includes the starting address information of the load data in the shared pool; the dynamic route descriptor module generates the dynamic route descriptor based on the target port information, data length, and starting address information.

[0082] Preferably, the header of the dynamic route descriptor is set to the target port information, and the storage location information is set to the tail of the dynamic route descriptor. More preferably, the dynamic route descriptor is set to: [target port information, target port data volume, data length, starting address information (offset address), partition number]. When an output port determines whether it is a target port, it starts parsing and matching from the header of the dynamic route descriptor. The target port information in the header facilitates each output port to quickly identify whether the data corresponding to the dynamic route descriptor is the data that this port needs to receive. When determining the location of the data required by the target port in the shared pool, it starts parsing and searching from the tail of the dynamic route descriptor. The storage location information in the tail facilitates quick location of the data in the shared pool to extract the data based on the location, ensuring that subsequent routing processing and data distribution can be carried out efficiently. Another preferred setting of the dynamic route descriptor is: [target port information, partition number, starting address information (offset address), data length, target port data volume]. Based on this setting, both determining whether an output port is a target port and data searching start from the header of the dynamic route descriptor.

[0083] See Figure 1 The shared pool includes multiple storage partitions, and the load data separated from each port is configured to be stored in any of these storage partitions. The crossbar, located above the shared pool, is primarily used for partitioned data storage, ensuring efficient and scalable data storage. It is responsible for allocating data to multiple different storage domains (such as domain 0, domain 1, domain 2, domain 3, etc.) to ensure efficient storage and access within the shared pool. Each storage domain includes multiple storage partitions, and each partition has a unique partition number. The partition number can be set as domain number + zone number, which allows for more efficient and faster location of the data within the shared pool.

[0084] In the dynamic routing descriptor proposed in this embodiment, the starting address information includes a partition number and an offset address, and the dynamic routing descriptor includes destination port information, data length, partition number, and offset address. The advantage of expressing the storage location information through the partition number, starting address information (offset address), and data length is that the shared pool can feed back the storage location information to the URD module as soon as it determines the offset address of the data in a specific storage partition. While the shared pool continues to store data, the URD module generates a URD and broadcasts it to other ports. Since the time required for the shared pool to store data does not affect the processes of URD generation, broadcasting, and other ports determining whether they are destination ports, the data transmission efficiency of the switch can be greatly improved, especially during multicast and broadcast processes.

[0085] See Figure 3 After data is received from the input port and an initial URD is generated, the data will be stored in the central shared pool. The shared pool, as the central storage management unit, is responsible for uniformly storing all data to be transmitted. The storage location of the data in the shared pool is identified by the offset address and partition number information in the URD, which facilitates subsequent data retrieval and transmission.

[0086] Preferably, the shared pool is configured to store the load data in the storage partition with the largest remaining storage space; and / or, the shared pool is configured to store the load data in the storage partition with a remaining storage space greater than a preset storage space threshold.

[0087] Unlike existing technologies that allocate corresponding storage space to each port of a switch, or that set up a shared storage space within the switch and pre-define corresponding shared storage partitions for each port, the shared pool proposed in this application is dynamically shared by all ports, which can adaptively improve the system's resource utilization and reduce data transmission congestion and latency.

[0088] When generating the dynamic route descriptor, the input port broadcasts the dynamic route descriptor to all other output ports except for the output port corresponding to the input port itself. Specifically, this is done because multiple input ports may need to broadcast the dynamic route descriptor simultaneously. See also... Figure 3 This invention employs an arbitration module (ARB) to broadcast the URD of each output port according to clock cycles. For example, a URD is generated and broadcast every three clock cycles. Through the H-TREE structure, the URD is quickly broadcast to all output ports.

[0089] See Figure 4 Each output port will receive a URD (Usage Router Request), which contains routing information such as the destination port information and data offset address. Each output port includes a discrimination module, an arbitration module, and a temporary storage area connected in sequence. The discrimination module uses the information in the URD to determine whether the data is needed by the port. Specifically, if the destination port information in the URD header includes the port's own information, it is the data the output port needs. The output port will cache the URD and retrieve and store the data according to the storage location in the shared pool indicated by the URD. If the destination port information in the URD header does not include the port's own information, it is not the data the output port needs, and the output port will ignore the URD and take no action.

[0090] Upon receiving a URD, each output port checks whether it belongs to its data based on the target port information within the URD. Each port independently determines whether the data is needed by it, ensuring that only data required by the target port is stored and processed. If an output port confirms that a URD is needed, it places it in its own URD cache queue, awaiting subsequent parsing and processing. The URD cache stores all necessary URDs for rapid retrieval and processing when data is ready.

[0091] Once the output port confirms that the data corresponding to the URD is the data it needs to receive, it begins parsing the URD to extract information such as the data offset address, target port, and data length. This parsed information will be used for subsequent data scheduling and storage.

[0092] The arbitration module is configured to manage the URD cache queue. It manages the parsed URD information according to either the source port information or the order in which the URDs were received, ensuring that data is processed in the correct order based on the priority and storage order of each URD. Data in the queue is managed uniformly according to a scheduling mechanism to avoid data request conflicts.

[0093] If the output port confirms that the data corresponding to the URD is the data that this port needs to receive, then the output port becomes the target port. The target port is configured to receive the data packet in the following way: the target port sends a data transmission request to the shared pool, the data transmission request including the target port information and storage location information; in response to receiving the data transmission request, the shared pool transmits the data packet stored corresponding to the storage location information to the target port.

[0094] If a target port receives multiple dynamic routing descriptors, it sorts the dynamic routing descriptors corresponding to the target port information that matches its own port information according to priority and / or reception time to obtain a dynamic routing descriptor sequence. The target port then sends corresponding data transmission requests to the shared pool sequentially according to the dynamic routing descriptor sequence. Each target port requests the transmission of corresponding data packets to the shared pool based on its own dynamic routing descriptor sequence, and the dynamic routing descriptor sequence of a target port does not affect the process of other target ports requesting the shared pool to transmit data packets. Each output port is connected to the shared pool through a switching architecture ( Figure 1 (Connections are not shown in the diagram). The switching architecture is responsible for mapping the storage location information (such as partition number + offset address) of the data received in the URD to the corresponding data in the shared pool. This process ensures that data can be quickly retrieved from the shared pool and transmitted to the correct output port, i.e., the destination port.

[0095] The shared pool is also configured to count the number of times the data packet is transmitted to other ports based on the number of target ports, and when the count reaches the number of target ports, the shared pool deletes the data packet.

[0096] Specifically, after parsing the URD and confirming that data needs to be transmitted, each target port will determine whether its current storage space is sufficient. If the current storage space is sufficient, the target port will send a data transmission request to the central control unit (the shared pool is the storage unit of the central control unit), notifying the central control unit to prepare for data transmission. If the remaining storage space of the target port is insufficient, it will wait for its remaining storage space to recover to meet the storage requirements before making the request.

[0097] Each output port independently manages its own remaining storage space. Therefore, data requests from each output port are not affected by the data transmission request status of other output ports. Each port only focuses on its own resource status and independently controls data transmission, preventing its data transmission from being blocked by changes in the remaining storage space of other ports. This improves the overall efficiency and resource utilization of the system.

[0098] Each output port independently receives and processes data, avoiding resource contention and data congestion. Each output port restores the URD and data before sending it out.

[0099] Compared to existing technologies, this invention generates dynamic routing descriptors based on the data packets received by the switch to indicate the destination port and the data's location in the shared pool. The shared pool dynamically allocates storage locations for each data packet. Other ports after the receiving port self-check whether they are the destination port. If they are, they retrieve the data from the corresponding location in the shared pool based on the dynamic routing descriptor. This significantly improves data access efficiency and can flexibly handle high-speed network applications with higher bandwidth requirements, such as PCIe 6.0 and CXL protocols, demonstrating significant technical advantages and broad market application prospects. Furthermore, by independently scheduling and processing data based on the remaining storage space of each output port, it avoids delays on other ports due to congestion on one port in multicast or multicast scenarios, greatly improving bandwidth utilization efficiency and system throughput.

[0100] In another embodiment of the present invention, the difference from the above embodiments is that the storage location information in this embodiment does not include the data length, but includes the starting storage location and the ending storage location of the load data in the shared pool. Compared with the above embodiments, the storage location information provided in this embodiment is expressed by partition number, starting storage location, and ending storage location. The ending storage location can only be determined and the storage location information returned to the URD module after the shared pool has completed data storage. Therefore, the data transmission efficiency of the switch provided in this embodiment is lower than that of the switch provided in the above embodiments.

[0101] In one embodiment of the present invention, a communication system for data transmission based on dynamic routing descriptors and a shared pool is provided, including multiple devices to communicate and a switch for data transmission based on dynamic routing descriptors and a shared pool as described in any of the above embodiments. Each device is electrically connected to the switch and communicates through the switch.

[0102] In one embodiment of the present invention, a data transmission method based on dynamic routing descriptors and a shared pool is provided, comprising the following steps:

[0103] When a switch port receives a data packet transmitted to it from outside the switch, it separates the packet header and payload data, and transmits the payload data to a shared pool, which is configured as a storage unit shared by all ports of the switch.

[0104] The shared pool stores the load data and returns the storage location information of the load data in the shared pool to the port;

[0105] The port parses the packet header to determine the target port information and combines it with the storage location information to generate a dynamic route descriptor. The dynamic route descriptor includes the target port information and the storage location information. The receiving port is also configured to broadcast the dynamic route descriptor to other ports besides the receiving port.

[0106] Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. The port that matches is the target port, and the target port receives the load data through the shared pool based on the storage location information.

[0107] It should be noted that the communication system and data transmission method based on dynamic routing descriptors and shared pools provided by the present invention have the same inventive concept as the switch embodiment based on dynamic routing descriptors and shared pools described above. By means of introduction, all the contents of the switch embodiment based on dynamic routing descriptors and shared pools for data transmission are incorporated into the communication system and data transmission method embodiment based on dynamic routing descriptors and shared pools for data transmission.

[0108] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0109] The above description is only a specific embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.

Claims

1. A switch for data transmission based on dynamic routing descriptors and a shared pool, characterized in that, It includes multiple ports and a shared pool, the shared pool being configured as a storage unit shared by all ports of the switch; The port includes a data separation module, a routing module, and a dynamic routing descriptor module. The port is configured such that, in response to receiving a data packet transmitted to it from outside the switch, the data separation module separates the packet header and payload data, and transmits the payload data to the shared pool. The shared pool is configured to store the load data and return the storage location information of the load data in the shared pool to the port; The routing module is configured to parse the packet header according to the routing method corresponding to the packet header to determine the target port information; The dynamic route descriptor module is configured to generate a dynamic route descriptor based on the target port information and the storage location information. The dynamic route descriptor includes the target port information and the storage location information. The port is also configured to broadcast the dynamic route descriptor to other ports besides the port itself. Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. If the port matches, it is the target port. The target port receives the load data through the shared pool based on the storage location information. The port is also configured to parse the packet header to determine the number of target ports and transmit the number of target ports to the shared pool; the shared pool is also configured to count the number of times the data packet is transmitted to the target ports based on the number of target ports, and when the count reaches the number of target ports, the shared pool deletes the data packet.

2. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 1, characterized in that, The shared pool includes multiple storage partitions, and the load data separated from each of the ports is configured to be stored in any one of the storage partitions.

3. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 2, characterized in that, The shared pool is configured to store the load data in the storage partition with the largest remaining storage space. and / or; The shared pool is configured to store the load data in a storage partition where the remaining storage space is greater than a preset storage space threshold.

4. The switch for data transmission based on dynamic routing descriptors and shared pools according to claim 1, characterized in that, The data separation module is also configured to determine the data length of the load data and transmit it to the dynamic route descriptor module; The storage location information includes the starting address information of the load data in the shared pool; The dynamic route descriptor module generates the dynamic route descriptor based on the target port information, data length, and starting address information.

5. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 4, characterized in that, The shared pool includes multiple storage partitions, each of which is configured with a unique partition number; The starting address information includes the partition number and the offset address, and the dynamic route descriptor includes the destination port information, data length, partition number, and offset address.

6. The switch for data transmission based on dynamic routing descriptors and shared pools according to claim 1, characterized in that, In the dynamic routing descriptor, the storage location information is set after the target port information.

7. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 1, characterized in that, The target port is configured to receive the data packets in the following manner: The target port sends a data transmission request to the shared pool, and the data transmission request includes the target port information and storage location information; In response to receiving the data transmission request, the shared pool transmits the data packet corresponding to the storage location information to the target port.

8. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 7, characterized in that, In response to receiving multiple dynamic route descriptors, the target port sorts the dynamic route descriptors corresponding to the target port information that matches its own port information according to priority and / or reception time to obtain a dynamic route descriptor sequence. The target port sends corresponding data transmission requests to the shared pool in sequence according to the dynamic routing descriptor sequence; And / or, before sending a data transmission request to the shared pool, the target port may pre-determine whether its remaining storage space meets the preset storage requirements. If it does, it sends a data transmission request to the shared pool; otherwise, it does not send a data transmission request to the shared pool.

9. The switch for data transmission based on dynamic routing descriptors and a shared pool according to claim 8, characterized in that, Each target port requests the transmission of a corresponding data packet to the shared pool based on its own dynamic routing descriptor sequence. The dynamic routing descriptor sequence of the target port does not affect the process of other target ports requesting the transmission of data packets from the shared pool.

10. The switch for data transmission based on dynamic routing descriptors and shared pools according to claim 1, characterized in that, The storage location information includes the starting and ending storage locations of the load data in the shared pool; And / or, Each of the ports includes a receiving port and a transmitting port. The receiving port is configured to receive data transmitted to the switch from the outside and to transmit data to a transmitting port of a port other than the port corresponding to the receiving port. The transmitting port is configured to receive data transmitted by the receiving port of a port other than the port corresponding to the transmitting port and to transmit the data to the outside of the switch. And / or, Each of the ports is electrically connected to the shared pool via a crossbar.

11. A communication system for data transmission based on dynamic routing descriptors and a shared pool, characterized in that, It includes multiple devices to communicate and a switch for data transmission based on dynamic routing descriptors and a shared pool as described in claim 1, wherein each device is electrically connected to the switch and communicates through the switch.

12. A data transmission method based on dynamic routing descriptors and a shared pool, characterized in that, The switch based on dynamic routing descriptors and shared pools for data transmission as described in claim 1 includes the following steps: When a switch port receives a data packet transmitted to it from outside the switch, it separates the packet header and payload data, and transmits the payload data to a shared pool, which is configured as a storage unit shared by all ports of the switch. The shared pool stores the load data and returns the storage location information of the load data in the shared pool to the port; The port parses the packet header to determine the target port information and combines it with the storage location information to generate a dynamic route descriptor. The dynamic route descriptor includes the target port information and the storage location information. The port is also configured to broadcast the dynamic route descriptor to other ports besides the port itself. Each other port is configured to determine whether its own port information matches the target port information in the dynamic route descriptor in response to receiving the dynamic route descriptor. The port that matches is the target port, and the target port receives the load data through the shared pool based on the storage location information.