Data transmission path regulation method based on adaptation of static and dynamic routing mechanisms of CXL.io protocol, switch and communication system
By introducing link status monitoring and tagging mechanisms into the CXL.io protocol, path status awareness and dynamic adjustment of the CXL Fabric network are realized, solving the real-time and unified management problems of path selection in existing technologies, and improving data transmission performance and resource utilization.
Patent Information
- Application Number
- CN202511202911.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-27
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2045-08-27
AI Technical Summary
The existing CXL.io protocol's path selection mechanism lacks awareness of real-time network status, making it difficult to cope with link fluctuations and congestion changes, and unable to guarantee high-priority tasks. Furthermore, the static and dynamic routing mechanisms lack unified path labels and management strategies, resulting in low resource utilization efficiency and slow system response.
By introducing a link status monitoring module into the switch, link status data is collected and uploaded in real time. A tagging mechanism is used to add tags to each link or set of links, forming a link information table in static and dynamic routing modes. DPID and DPID are configured in each level of the switch to realize dynamic adjustment and optimization of the path.
It enhances the state awareness capability of transmission paths, realizes unified management of static and dynamic routing modes, improves the path selection efficiency of data packet senders, reduces control interaction latency, enhances system robustness and QoS guarantee, and is suitable for deployment in large data centers.
Smart Images

Figure CN120768825B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and in particular to a data transmission path control method, switch, and communication system based on the CXL.io protocol that adapts to static and dynamic routing mechanisms. Background Technology
[0002] With the continuous expansion of high-performance computing, artificial intelligence, and data center scale, heterogeneous computing architecture has become the mainstream trend. To meet the high-speed interconnection requirements between CPUs (Graphics Processing Units), GPUs (Field-Programmable Gate Arrays), storage, and network devices, the CXL (Compute Express Link) protocol was developed. CXL 3.0 and later versions introduce a multi-level switching structure (Fabric Switching), enabling resource pooling and cross-topology access between multiple hosts and devices, significantly improving resource utilization efficiency and system flexibility.
[0003] In the CXL architecture, CXL.io is a PCIe (Peripheral Component Interconnect Express) compatible transport protocol used for standard I / O (input / output) access of devices. Data forwarding within the CXL Fabric typically employs a PBR (Port-Based Routing) switching structure. Each data packet is assigned a DPID (Destination Port ID) by the FM (FabricManager). During data transmission, each switching node looks up the forwarding port in the DRT (Destination Routing Table) or RGT (Routing Group Table) based on the DPID in the packet header, completing multi-hop forwarding. Setting PTH.Hie (PBR TLP Header hierarchical) = 1 enables static routing mode, where the data packet path remains fixed during transmission. Setting PTH.Hie = 0 supports dynamic path selection, allowing switching nodes to select different egress ports based on RGT and Mix (a mechanism in dynamic routing mode that selects primary and secondary ports according to probability), achieving load balancing and fault tolerance.
[0004] However, in existing technologies, whether static or dynamic routing, path selection is mainly based on preset DPID or RGT, which lacks awareness of real-time network status and is difficult to cope with dynamic behaviors such as link fluctuations and congestion changes in Fabric. Data packets lack fine-grained Quality of Service (QoS) labels, and FM cannot perform personalized path allocation based on the real-time, bandwidth, and fault tolerance characteristics of services, resulting in high-priority tasks not being guaranteed. During operation, switching nodes cannot provide real-time feedback of path latency, congestion level, error rate, and other information to FM, making it difficult for Fabric Manager to dynamically adjust path configuration based on runtime status. Current path control mechanisms are fragmented between static and dynamic approaches, lack unified path labels, reconstruction, and replacement strategies, resulting in complex management and slow response.
[0005] In conclusion, there is an urgent need for a new path management method that can adapt to both static and dynamic routing mechanisms.
[0006] 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
[0007] The purpose of this invention is to provide a data transmission path control method, switch, and communication system based on the CXL.io protocol that adapts to static and dynamic routing mechanisms. It is applicable to CXL Fabric networks based on PBR (Port-Based Routing) switching architecture. Under the premise of supporting static and dynamic routing mechanisms, it can realize the dynamic adjustment and optimization of data transmission paths, thereby significantly improving the transmission performance, resource utilization, and service stability of the CXL.io protocol.
[0008] To achieve the above objectives, the technical solution adopted by the present invention is as follows:
[0009] A data transmission path control method based on the CXL.io protocol that adapts to both static and dynamic routing mechanisms includes the following steps:
[0010] Collect link status data for each link and upload the link status data to FM. The link status data includes cumulative delay, congestion level, and bit error rate.
[0011] All link status data are integrated according to preset link status level rules, and tags are added to each link according to tag determination rules. Each tag includes one or more sub-tags.
[0012] In static routing mode, a DPID is assigned to each link and a first link information table is formed. At the same time, in dynamic routing mode, a DPID is assigned to each link set or link and a second link information table is formed. The link set is formed by links with the same sub-label among multiple labels. The same sub-label contained in the labels of multiple links in each link set is the main label of the corresponding link set.
[0013] Configure static routing information in the DRT table of each level switch according to the DPID, and configure dynamic routing information in the DRT table and RGT table of each level switch according to the DPID.
[0014] Upload the first link information table and the second link information table to the data packet sending end respectively;
[0015] The data packet sender parses the data packet before sending it.
[0016] The switch re-uploads the collected link status data to the FM every first cycle. When one or more link status data changes, causing a change in the corresponding link status level, the switch modifies the label of the corresponding link and updates the first and second link information tables in the data packet sender. After receiving the updated first and second link information tables, the data packet sender can choose to re-initiate the transaction request or switch the primary label or label for subsequent scheduling.
[0017] This invention introduces a link status data monitoring and tagging mechanism to collect status data from all available links and periodically upload it to the FM (Factor Management Unit). It distinguishes between static and dynamic routing modes, determining transmission paths and configuring their respective routing information. Each link or set of links has a corresponding tag and DPID (Direct Path Identifier) mapping, facilitating path selection based on tags or primary tags during packet transmission and ensuring optimal path selection. The data transmission path control method of this invention uses the same tagging and DPID encoding mechanism for both static and dynamic routing modes. During actual data transmission, the FM selects the path, thus unifying the path scheduling logic. Furthermore, a status feedback mechanism is established: the switch re-uploads the collected link status data to the FM every first cycle. When the status data of one or more links changes, causing a change in the corresponding link status level, the tag of the corresponding link is modified, and the first and second link information tables in the packet sender are updated to ensure that the path remains optimal.
[0018] Furthermore, based on any one or a combination of the aforementioned technical solutions, the link state level rule is as follows:
[0019] The level corresponding to the cumulative delay being in the first delay range is L0 level, the level corresponding to the cumulative delay being in the second delay range is L1 level, and the level corresponding to the cumulative delay being in the third delay range is L2 level. The value of the cumulative delay gradually increases from the first delay range to the third delay range.
[0020] When the congestion level is within the first congestion level range, the corresponding level is C0; when the congestion level is within the second congestion level range, the corresponding level is C1; and when the congestion level is within the third congestion level range, the corresponding level is C2. The value of the congestion level gradually increases from the first congestion level range to the third congestion level range.
[0021] The level corresponding to the bit error rate is E0 when it is in the first bit error rate range, E1 when it is in the second bit error rate range, and E2 when it is in the third bit error rate range. The value of the bit error rate gradually increases from the first bit error rate range to the third bit error rate range.
[0022] Specifically, in the link status level rules adopted in this invention, the level corresponding to each link status data is usually set to a fixed range based on empirical rules for adding labels to each link during the system initialization phase. However, considering the significant differences in performance requirements for different business scenarios (such as high real-time communication, data-intensive transmission, and redundant fault-tolerant transmission), the link status level rules of this invention support dynamic adjustment or configuration replacement by FM. Specifically, based on real-time collected link operation status statistics (such as historical latency distribution, bandwidth utilization fluctuations, etc.), FM can enable an adaptive scoring mechanism according to a strategy to dynamically reclassify the level range, thereby achieving accurate classification and scheduling optimization of link labels and improving the robustness and flexibility of the system in different scenarios.
[0023] Furthermore, following any one or a combination of the aforementioned technical solutions, the sub-tags include a first tag, a second tag, a third tag, a fourth tag, and a fifth tag, and the tag determination rule is as follows:
[0024] When the status levels corresponding to the link status data of the link are L0, C0 and E0 respectively, the link label is a first label + a second label + a third label; the label of this link includes multiple sub-labels.
[0025] When the status levels corresponding to the link status data of the link are L0, C0 and E1 respectively, the link label is a first label + a second label; the label of this link includes multiple sub-labels.
[0026] When the status levels corresponding to the link status data of the link are L0, C1 and E0 respectively, the link label is a first label + a third label; the label of this link includes multiple sub-labels.
[0027] When the status levels corresponding to the link status data of the link are L1, C0 and E0 respectively, the link label is a second label + a third label; the label of this link also includes multiple sub-labels.
[0028] When the status levels corresponding to the link status data of the link are L0, C1 and E1 respectively, the link label is the first label; the label of this link includes only one sub-label.
[0029] When the status levels corresponding to the link status data of the link are L1, C0 and E1 respectively, the link is labeled as the second label; the label of this link includes only one sub-label.
[0030] When the status levels corresponding to the link status data of the link are L1, C1 and E0 respectively, the link is labeled as a third label; the label of this link includes only one sub-label.
[0031] When the status levels corresponding to the link status data of the link are L1, C1 and E1 respectively, the link is labeled as the fourth label; the label of this link includes only one sub-label.
[0032] When the link status data corresponds to at least one of the following status levels: L2, C2, and E2, the link is labeled as the fifth label. This link's label includes only one sub-label.
[0033] Furthermore, following any one or a combination of the aforementioned technical solutions, the method for integrating all link state data according to preset link state level rules is as follows:
[0034] The link sequence of each link is marked and the link status data of each link is converted into the corresponding link status level.
[0035] Furthermore, following any one or a combination of the aforementioned technical solutions, the main label of each link set includes only one sub-label.
[0036] Furthermore, following any one or a combination of the aforementioned technical solutions, the first link information table includes the label and DPID corresponding to each link in the static routing mode, and the second link information table includes the main label and DPID corresponding to each link set in the dynamic routing mode. All DPIDs in the first link information table are different from the DPIDs in the second link information table.
[0037] Furthermore, based on any or a combination of the aforementioned technical solutions, each link in the static routing mode has a unique DPID, and each set of links in the dynamic routing mode has a unique DPID.
[0038] Furthermore, following any one or a combination of the aforementioned technical solutions, in the dynamic routing mode, when the label of one link contains only one sub-label and is different from the sub-labels contained in the labels of other links, a DPID is assigned to this link.
[0039] Furthermore, following any one or a combination of the aforementioned technical solutions, in the static routing mode, when the label of the link is the fifth label, the corresponding link is an invalid link and is not assigned a DPID; in the dynamic routing mode, if there is only one link with the fifth label, the corresponding link is an invalid link and is not assigned a DPID; if there are multiple links with the fifth label, the corresponding multiple links do not form a link set.
[0040] Furthermore, following any one or a combination of the aforementioned technical solutions, the method by which the data packet sending end parses the data packet and then sends it is as follows:
[0041] First, determine the routing mode. Then, based on the transaction type of the data packet, search for a matching link in the first link information table, or search for a matching link set or link in the second link information table. Write the DPID of the corresponding link or link set into the packet header and forward the data packet directly. When PTH.Hie=1, it is a static routing mode; when PTH.Hie=0, it is a dynamic routing mode.
[0042] Furthermore, following any one or a combination of the aforementioned technical solutions, when the routing mode is static routing mode, firstly, based on the transaction type of the data packet, search the first link information table for all links whose labels contain sub-labels that match the transaction type of the data packet, and then select the link with the highest priority among these links as the transmission path of the data packet.
[0043] Furthermore, following any one or a combination of the aforementioned technical solutions, when the routing mode is dynamic routing mode, the set of links whose main label matches the transaction type of the data packet or the link whose label matches the transaction type of the data packet is searched in the second link information table according to the transaction type of the data packet.
[0044] Furthermore, based on any one or a combination of the aforementioned technical solutions, the transaction type includes a first type, a second type, a third type, and a fourth type, wherein the first type matches a first tag, the second type matches a second tag, the third type matches a third tag, and the fourth type matches a fourth tag.
[0045] Furthermore, based on any or a combination of the aforementioned technical solutions, for static routing mode, the more sub-labels contained in the label of the link, the higher the priority of the corresponding link.
[0046] Furthermore, following any one or more of the aforementioned technical solutions or combinations thereof, when one or more link status data changes and causes a change in the corresponding link status level:
[0047] In the static routing mode, only the label of the corresponding link is modified, while the DPID of the corresponding link remains unchanged.
[0048] In the dynamic routing mode, the label of the corresponding link is modified first, and then all links are integrated to determine whether the link set needs to be updated. If, after all links are integrated, there is no link set with a new primary label and / or a single link with a new label compared to before the link status data changed, then there is no need to allocate a new DPID; otherwise, a new DPID is allocated to the link set with a new primary label and / or the single link with a new label.
[0049] In other words, when the link state data changes and causes the corresponding link state level to change, in static routing mode, the link remains unchanged, only the label of the corresponding link changes; while in dynamic routing mode, the available links under a certain transaction type may change.
[0050] During operation, link status data is continuously monitored and collected. When link status data changes but remains within the original level range, no action is required, and the links in each routing mode remain unchanged. When changes in link status data cause changes in the corresponding link status level, the labels of the links whose data has changed need to be modified accordingly. Furthermore, the link information in both static and dynamic routing modes is modified, and the link information tables for each routing mode are updated at the packet sending end. Specifically, in static routing mode, the links remain unchanged; only the labels of individual links change. In the first link information table, each DPID is bound to a link in the corresponding sequence. Even if the label of a link changes, the DPID of that link remains unchanged. In dynamic routing mode, the link sequence in the link set corresponding to the same primary label may change. A link set might add or remove one or more links. In this case, the primary label and corresponding DPID for that link set remain unchanged; only the link sequence in the link set is modified. Alternatively, a link whose link state level changes may not exist in any link set and may exist as a single link. In dynamic routing mode, regardless of whether it's a new link set or a new link, if the corresponding primary label or tag already existed before the link state data changed, the original DPID corresponding to the primary label or tag (including only one sub-label) can be used directly. Otherwise, a new DPID needs to be assigned.
[0051] According to another aspect of the present invention, a switch is provided, the switch being configured to perform the steps of the data transmission path control method as described above, the switch including a link status monitoring module, the link status monitoring module being configured to collect link status data of each link and upload the link status data to FM.
[0052] According to another aspect of the present invention, a communication system based on the CXL.io protocol is provided, including the switch described above.
[0053] The beneficial effects of the technical solution provided by this invention are as follows:
[0054] a. This invention introduces a path status monitoring module into each switch to collect link status data in real time and upload it to the FM (Factor Management Center). The FM then integrates the data. Compared with traditional solutions that only select routes based on topology or preset weights, this invention significantly improves the status awareness capability of transmission path selection and can accurately reflect changes in the runtime environment. At the same time, by adding tags to each link and then determining the transmission path and its corresponding link information table according to different routing modes, unified path management for static and dynamic routing modes can be achieved. The data packet sender does not need to be aware of the underlying path details and can quickly match QoS requirements based on the main tag.
[0055] b. This invention uploads the link information tables under different routing modes to the data packet sending end, so that the data packet sending end only needs to select the corresponding tag or main tag according to the transaction type before sending the packet to determine the transmission path of the data packet. There is no need to request path query for each packet, which can avoid excessive control interaction and path calculation delay, improve the packet sending rate and reduce FM pressure;
[0056] c. This invention extends path mapping by using standard DPID and DRT / RGT table structures, and uses QoS tags and VDM (Vendor Defined Message) uplink and downlink interfaces to realize interaction between the packet sender and FM. It does not require modification of the main process of the CXL.io protocol, has good implementability and compatibility, and is suitable for the deployment needs of large data centers and pooled memory systems.
[0057] d. This invention introduces a state feedback mechanism, enabling FM to automatically trigger the re-addition of link labels when link state data changes. This updates the transmission path information according to different routing modes, updates the corresponding link information table, and notifies the data packet sender to implement replacement. This mechanism supports adaptive evolution of link labels during runtime, effectively avoiding performance degradation paths and improving overall system reliability and QoS guarantees. Furthermore, while supporting the coexistence of multiple transmission paths, this invention uses a label mechanism to classify and utilize transmission paths. It can prioritize low-latency channels for real-time tasks or divert traffic to high-bandwidth paths for batch transactions. Combined with the state feedback mechanism, it automatically shields congested and error-prone transmission paths, effectively improving the system's robustness and recovery capabilities under high load or sudden failures. 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 schematic diagram of the structure of a communication system based on the CXL.io protocol provided as an exemplary embodiment of the present invention;
[0060] Figure 2 This is a flowchart illustrating a data transmission path control method based on the CXL.io protocol that adapts to static and dynamic routing mechanisms, provided as an exemplary embodiment of the present invention. Detailed Implementation
[0061] 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.
[0062] 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.
[0063] See Figure 2 One embodiment of the present invention provides a data transmission path control method based on the CXL.io protocol that adapts to static and dynamic routing mechanisms, comprising the following steps:
[0064] Step 1: The link status monitoring module in the switch collects the link status data of each link and uploads the link status data to the FM. The link status data includes cumulative delay, congestion and bit error rate.
[0065] Specifically, cumulative delay can be obtained by sending internal probe packets or port forwarding delay statistics; congestion can be obtained by monitoring the buffer occupancy rate and average queue length of outgoing ports; bit error rate can be obtained by counting the number of CRC errors and packet retransmissions within a certain time window.
[0066] Step 2: Integrate all link status data according to the preset link status level rules, and add tags to each link according to the tag determination rules.
[0067] Step 2.1: FM summarizes all received link status data, sequentially marks the link sequence of each link, and converts each link status data of each link into the corresponding level according to the link status level rules.
[0068] The link state level rules are as follows: when the cumulative delay is within the first delay range, the corresponding level is L0; when the cumulative delay is within the second delay range, the corresponding level is L1; and when the cumulative delay is within the third delay range, the corresponding level is L2. The cumulative delay value gradually increases from the first delay range to the third delay range. When the congestion level is within the first congestion level range, the corresponding level is C0; when the congestion level is within the second congestion level range, the corresponding level is C1; and when the congestion level is within the third congestion level range, the corresponding level is C2. The congestion level value gradually increases from the first congestion level range to the third congestion level range. When the bit error rate (BER) is within the first BER range, the corresponding level is E0; when the BER is within the second BER range, the corresponding level is E1; and when the BER is within the third BER range, the corresponding level is E2. The BER value gradually increases from the first BER range to the third BER range.
[0069] Step 2.2: Add a label to each link in Step 2.1 according to the label determination rules. Each label includes one or more sub-labels, including the first label, the second label, the third label, the fourth label, and the fifth label.
[0070] The label determination rule is as follows: when the status levels corresponding to the link status data are L0, C0 and E0 respectively, the label of the link is the first label + the second label + the third label; indicating that the cumulative delay, congestion and bit error rate of the link are all in the optimal state.
[0071] When the link status data corresponds to the status levels of L0, C0, and E1 respectively, the link label is the first label + the second label; indicating that the link has the characteristics of low latency and high bandwidth.
[0072] When the link status data corresponds to the status levels of L0, C1, and E0 respectively, the link label is the first label + the third label; this indicates that the link has the characteristics of low latency and low bit error rate.
[0073] When the link status data corresponds to the status levels of L1, C0, and E0 respectively, the link label is the second label + the third label; indicating that the link has the characteristics of low congestion and low bit error rate.
[0074] When the link status data corresponds to the status levels of L0, C1, and E1 respectively, the link is labeled as the first label, indicating that the link has low latency characteristics.
[0075] When the link status data corresponds to the status levels of L1, C0, and E1 respectively, the link is labeled as the second label, indicating that the link has the characteristic of low congestion.
[0076] When the link status data corresponds to the status levels of L1, C1, and E0 respectively, the link is labeled as the third label, indicating that the link has a low bit error rate.
[0077] When the link status data corresponds to the L1, C1 and E1 levels respectively, the link is labeled as the fourth label; this indicates that the cumulative delay, congestion and bit error rate of the link are all in the intermediate state.
[0078] When the link status data corresponds to at least one of the L2, C2 and E2 status levels, the link is labeled as the fifth label, indicating that the link may have the worst cumulative latency, the worst congestion, or the worst bit error rate.
[0079] Step 3: Integrate all links according to the routing pattern and the label of each link to determine the transmission path.
[0080] Specifically, a DPID is assigned to each link in static routing mode, forming a first link information table. Each link in static routing mode has a unique DPID. If the link label is the fifth label, the corresponding link is invalid and no DPID is assigned. In addition, the first link information table includes the link sequence of each link (valid link) in static routing mode, the label corresponding to each link, and the DPID.
[0081] Simultaneously, a DPID is assigned to each link set or link in dynamic routing mode, forming a second link information table. A link set is formed by links with the same sub-label among multiple labels. The common sub-label contained in the labels of multiple links in each link set is the main label of the corresponding link set, and the main label of each link set includes only one sub-label. Furthermore, each link set in dynamic routing mode has a unique DPID. Additionally, when a link's label contains only one sub-label that is different from the sub-labels contained in the labels of other links, a DPID is assigned to this link. However, if there is only one link with the fifth label, the corresponding link is an invalid link and no DPID is assigned. If there are multiple links with the fifth label, these multiple links do not form a link set. As mentioned above, the second link information table includes the main label and DPID corresponding to each link set (including the sequence of each link) in dynamic routing mode, the sequence of a single link, and the label and DPID corresponding to a single link.
[0082] All DPIDs in the first link information table are different from those in the second link information table.
[0083] Step 4: Configure static routing information in the DRT table of each level switch according to the DPID, and configure dynamic routing information in the DRT table and RGT table of each level switch according to the DPID.
[0084] Step 5: Upload the first link information table in static routing mode and the second link information table in dynamic routing mode to the data packet sending end respectively.
[0085] Step 6: The data packet sending end parses the data packet and then sends it.
[0086] Specifically, the routing mode is first determined: when PTH.Hie=1, it is static routing mode; when PTH.Hie=0, it is dynamic routing mode. In static routing mode, the system first searches the first link information table for all links whose labels contain sub-labels matching the transaction type of the data packet. Then, it selects the link with the highest priority from these links as the transmission path for the data packet, writes the corresponding link's DPID into the packet header, and forwards the data packet directly. For static routing mode, the more sub-labels a link's label contains, the higher its priority.
[0087] When the routing mode is dynamic routing mode, the system searches the second link information table for a set of links whose primary label matches the transaction type of the data packet, or links whose label matches the transaction type of the data packet. The corresponding DPID is then written into the packet header, and the data packet is forwarded directly. If the matching transaction type is a set of links, the selection of which links within that set for data transmission follows the traditional method, which will not be elaborated upon here.
[0088] In addition, transaction types include Type 1, Type 2, Type 3, and Type 4. Type 1 matches Type 1, Type 2 matches Type 2, Type 3 matches Type 3, and Type 4 matches Type 4.
[0089] Steps 1 to 6 above occur during the initialization phase. After initialization is completed, the link status may fluctuate with load changes during subsequent operation, which may trigger the status feedback mechanism, as described in step 7.
[0090] Step 7: The link status monitoring module in the switch collects link status data in real time and re-uploads the collected link status data to the FM every first cycle. In a specific embodiment, the link status monitoring module can upload data once every 10ms.
[0091] When one or more link status data changes, but still within the range of the original link status level, no action is required, and the link information tables in each routing mode do not need to be updated.
[0092] When one or more link status data changes, causing a change in the link status level and thus a change in the label of the current link, in static routing mode, the label of the corresponding link is modified, but the DPID of the link remains unchanged, and the first link information table in static routing mode in the packet sending end is updated.
[0093] For dynamic routing mode, first modify the label of the corresponding link, then integrate all links to determine whether the link set needs to be updated. If, after integrating all links, there is no link set with a new primary label and / or a single link with a new label compared to before the link state data changed, then there is no need to assign a new DPID; otherwise, assign a new DPID to the link set with a new primary label and / or a single link with a new label.
[0094] like Figure 1As shown, in another embodiment of the present invention, a communication system based on the CXL.io protocol is provided, which includes an FM, a switch, and a data packet sending end. The switch is configured to perform the steps of the data transmission path control method as described in the above embodiment. The switch also includes a link status monitoring module, which is configured to collect link status data of each link and upload the link status data to the FM. Figure 1 The dashed line between the FM and the packet sender indicates that the FM uploads the first and second link information tables to the packet sender via software. The dashed line between the FM and the link state monitoring module indicates that the FM collects link state data via software. The dashed line between the FM and the DRT table indicates that the FM writes static routing state information into the DRT table via software. The dashed line between the FM and the RGT table indicates that the FM writes dynamic routing state information into the RGT table via software. The packet sender is configured to parse the packets before sending them.
[0095] The following specific embodiment will be used to describe in detail the data transmission path control method of the present invention based on the CXL.io protocol that adapts to static and dynamic routing mechanisms.
[0096] Example 1: This example describes a data transmission path control method based on the CXL.io protocol that adapts to both static and dynamic routing mechanisms, comprising the following steps:
[0097] Step 1: The link status monitoring module in the switch collects the link status data of each link and uploads the link status data to the FM. The link status data includes cumulative delay, congestion and bit error rate.
[0098] Step 2: Integrate all link status data according to the preset link status level rules, and add tags to each link according to the tag determination rules.
[0099] The link status level rules in this embodiment are shown in Table 1, and the label determination rules are shown in Table 2.
[0100] Table 1 Link State Level Rules Table
[0101]
[0102] Table 2 Label Judgment Rules
[0103]
[0104] Step 2.1: FM summarizes all received link status data, as shown in Table 3. It then marks the link sequence of each link and converts each link status data into the corresponding level according to the link status level rules, as shown in Table 4.
[0105] Table 3 Summary of Link Status Data
[0106]
[0107] In this embodiment, the first delay range is a delay < 100ns, the second delay range is 100ns ≤ delay ≤ 200ns, and the third delay range is a delay > 200ns; the first congestion range is bandwidth utilization < 50%, the second congestion range is 50% ≤ bandwidth utilization ≤ 80%, and the third congestion range is bandwidth utilization > 80%; the first bit error rate range is a bit error rate < 1e -9 The second bit error rate range is 1e -9 ≤Bit error rate≤1e -6 The third bit error rate range is for bit error rates > 1e. -6 .
[0108] Step 2.2: Add labels to each link in Step 2.1 according to the label determination rules, as shown in Table 4. Each label includes one or more sub-labels, which include a first label, a second label, a third label, a fourth label, and a fifth label. In this embodiment, for the sub-labels, RealTime is the first label, HighBW is the second label, LowErr is the third label, Normal is the fourth label, and Avoid is the fifth label. In this embodiment, the label of the 9th link is Avoid, which indicates that it is an invalid link.
[0109] Table 4 Summary of Link Status Levels and Labels
[0110]
[0111] Step 3: Assign a unique DPID to each valid link in static routing mode and form the first link information table, as shown in Table 5. In this embodiment, there are eight valid links that can be used as data transmission paths.
[0112] Table 5 First Link Information Table
[0113]
[0114] A DPID is assigned to each link set or link in the dynamic routing mode, forming a second link information table, as shown in Table 6. In this embodiment, there are 3 link sets and one single link for selecting the data transmission path according to the transaction type of the data packet in the dynamic routing mode. The first link set in Table 6 is composed of link 1, link 2, link 5 and link 6. These links all have the same sub-label: RealTime, so the main label of this link set is RealTime. The second link set in Table 6 is composed of link 1, link 3, link 5 and link 7. These links all have the same sub-label: HighBW, so the main label of this link set is HighBW. The third link set in Table 6 is composed of links 1, 4, 6, and 7. These links all contain the same sub-label: LowErr, so the main label of this link set is LowErr. In addition, since the sub-labels contained in the labels of the other links are different, link 8 is treated as a separate link with the label Normal and is assigned a corresponding DPID. This ensures that in dynamic routing mode, if a data packet whose transaction type matches that of a link with the label Normal needs to be transmitted, link 8 will be directly selected for transmission, thus avoiding the data packet from interfering with other paths with labels RealTime, HighBW, or LowErr.
[0115] Table 6 Second Link Information Table
[0116]
[0117] Step 4: Configure static routing information in the DRT table of each level switch according to the DPID, and configure dynamic routing information in the DRT table and RGT table of each level switch according to the DPID.
[0118] Step 5: Upload the first link information table in static routing mode and the second link information table in dynamic routing mode to the data packet sending end respectively.
[0119] Step 6: The data packet sending end parses the data packet and then sends it. In this embodiment, the transaction types of the data packets include RealTime (first type), HighBW (second type), LowErr (third type), and Normal (fourth type).
[0120] In this embodiment, PTH.Hie=1, which indicates a static routing mode. The transaction type of the data packet is RealTime (first type). Therefore, according to Table 5, the data transmission paths that meet the RealTime transaction type include Link 1, Link 2, Link 5 and Link 6. However, the link with the highest priority among these links is Link 1. The DPID of Link 1 is 0x11. Write 0x11 into the packet header and forward the data packet directly.
[0121] Step 7: The link status monitoring module in the switch collects link status data in real time. In this embodiment, the link status monitoring module re-uploads the collected link status data to the FM every 10ms. The FM finds that the bandwidth utilization of link 1 has increased to 70%, causing the congestion status level of link 1 to change from the original C0 level to C1 level. Accordingly, the label of link 1 is changed from RealTime+HighBW+LowErr to RealTime+LowErr, and then the label of link 1 in the first link information table is changed to RealTime+LowErr, and the first link information table in the packet sending end is updated.
[0122] Simultaneously, the second link information table is modified. In this embodiment, after the label of link 1 changes, it only affects the number of links in the second link set in Table 6. The other link sets and links remain unchanged. Therefore, link 1 in the second link set of the second link information table in Table 6 can be deleted, and the other information remains unchanged. The updated second link information table is shown in Table 7, and the second link information table in the data packet sending end is updated.
[0123] Table 7 Information on the second link after the label of link 1 changes
[0124]
[0125] The data transmission path control method based on the CXL.io protocol, which adapts to both static and dynamic routing mechanisms, achieves intelligent classification and allocation of multi-path resources by sensing, classifying, and labeling key performance indicators such as link latency, congestion, and bit error rate. It can adapt to both static and dynamic routing modes, greatly alleviating the problems of insufficient real-time status response and coarse QoS matching in traditional path scheduling mechanisms. It provides a feasible paradigm for fine-grained resource scheduling and QoS-aware architecture evolution in future CXL networks.
[0126] Due to the advanced nature of this technical solution, the technology of this invention can be widely applied in fields such as AI acceleration, large-scale memory sharing, and heterogeneous computing power interconnection. The technical solution of this invention can be used as a key path scheduling enhancement module, embedded in the CXLFabric network management system, and has good versatility, scalability, and engineering implementation capabilities. It provides underlying protection for larger-scale, lower-latency, and more robust distributed systems, and can significantly improve the data transmission efficiency, reliability, and quality of service assurance capabilities of CXL Fabric networks in typical application scenarios such as high-performance computing, data center interconnection, and pooled memory systems. It has broad prospects for industrial application and promotion value.
[0127] 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.
[0128] 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 data transmission path control method based on the CXL.io protocol that adapts to both static and dynamic routing mechanisms, characterized in that, Includes the following steps: Collect link status data for each link and upload the link status data to FM Fabric Manager. The link status data includes cumulative latency, congestion level, and bit error rate. All link status data are integrated according to preset link status level rules, and tags are added to each link according to tag determination rules. Each tag includes one or more sub-tags. In static routing mode, a DPID Destination Port ID is assigned to each link and a first link information table is formed. At the same time, in dynamic routing mode, a DPID is assigned to each link set or link and a second link information table is formed. The link set is formed by links with the same sub-label among multiple labels. The same sub-label contained in the labels of multiple links in each link set is the main label of the corresponding link set. Configure static routing information according to DPID in the DRT Destination Routing Table of each level switch, and configure dynamic routing information according to DPID in the DRT table and RGT Routing Group Table of each level switch. Upload the first link information table and the second link information table to the data packet sending end respectively; The data packet sender parses the data packet before sending it. The switch re-uploads the collected link status data to the FM every first cycle. When one or more link status data changes and the corresponding link status level changes, the label of the corresponding link is modified, and the first link information table and the second link information table in the data packet sending end are updated.
2. The data transmission path control method according to claim 1, characterized in that, The link state level rule is as follows: The level corresponding to the cumulative delay being in the first delay range is L0 level, the level corresponding to the cumulative delay being in the second delay range is L1 level, and the level corresponding to the cumulative delay being in the third delay range is L2 level. The value of the cumulative delay gradually increases from the first delay range to the third delay range. When the congestion level is within the first congestion level range, the corresponding level is C0; when the congestion level is within the second congestion level range, the corresponding level is C1; and when the congestion level is within the third congestion level range, the corresponding level is C2. The value of the congestion level gradually increases from the first congestion level range to the third congestion level range. The level corresponding to the bit error rate is E0 when it is in the first bit error rate range, E1 when it is in the second bit error rate range, and E2 when it is in the third bit error rate range. The value of the bit error rate gradually increases from the first bit error rate range to the third bit error rate range.
3. The data transmission path control method according to claim 2, characterized in that, The sub-tags include a first tag, a second tag, a third tag, a fourth tag, and a fifth tag, and the tag determination rule is as follows: When the status levels corresponding to the link status data of the link are L0, C0 and E0 respectively, the link label is the first label + the second label + the third label. When the status levels corresponding to the link status data of the link are L0, C0 and E1 respectively, the link label is the first label + the second label. When the status levels corresponding to the link status data of the link are L0, C1 and E0 respectively, the link label is the first label + the third label. When the status levels corresponding to the link status data of the link are L1, C0 and E0 respectively, the link label is the second label + the third label. When the status levels corresponding to the link status data of the link are L0, C1 and E1 respectively, the link label is the first label. When the status levels corresponding to the link status data of the link are L1, C0 and E1 respectively, the link is labeled as the second label. When the status levels corresponding to the link status data of the link are L1, C1 and E0 respectively, the link label is the third label. When the status levels corresponding to the link status data of the link are L1, C1 and E1 respectively, the link is labeled as the fourth label. When the status level corresponding to the link status data of the link is at least one of L2, C2 and E2, the link is labeled as the fifth label.
4. The data transmission path control method according to claim 2, characterized in that, The method for integrating all link status data according to preset link status level rules is as follows: The link sequence of each link is marked and the link status data of each link is converted into the corresponding link status level.
5. The data transmission path control method according to claim 3, characterized in that, Each of the aforementioned link sets has a main label consisting of only one sub-label.
6. The data transmission path control method according to claim 5, characterized in that, The first link information table includes the label and DPID corresponding to each link in the static routing mode, and the second link information table includes the main label and DPID corresponding to each link set in the dynamic routing mode. All DPIDs in the first link information table are different from the DPIDs in the second link information table.
7. The data transmission path control method according to claim 6, characterized in that, Each link in the static routing mode has a unique DPID, and each set of links in the dynamic routing mode has a unique DPID.
8. The data transmission path control method according to claim 7, characterized in that, In the dynamic routing mode, when a link's label contains only one sub-label and is different from the sub-labels contained in the labels of other links, a DPID is assigned to this link.
9. The data transmission path control method according to claim 8, characterized in that, In the static routing mode, when the label of the link is the fifth label, the corresponding link is an invalid link and no DPID is assigned; In the dynamic routing mode, if there is only one link with the fifth label, the corresponding link is an invalid link and is not assigned a DPID. If there are multiple links with the fifth label, the corresponding multiple links do not form a link set.
10. The data transmission path control method according to claim 6, characterized in that, The method by which the data packet sender parses the data packet and then sends it is as follows: First, determine the routing mode, then search for a matching link in the first link information table based on the transaction type of the data packet, or search for a matching link set or link in the second link information table, and write the DPID of the corresponding link or link set into the packet header of the data packet, and forward the data packet directly.
11. The data transmission path control method according to claim 10, characterized in that, When the routing mode is static routing mode, the system first searches the first link information table for all links whose labels contain sub-labels that match the transaction type of the data packet, based on the transaction type of the data packet. Then, it selects the link with the highest priority among these links as the transmission path for the data packet.
12. The data transmission path control method according to claim 10, characterized in that, When the routing mode is dynamic routing mode, the system searches the second link information table for a set of links whose primary label matches the transaction type of the data packet, or links whose label matches the transaction type of the data packet, based on the transaction type of the data packet.
13. The data transmission path control method according to claim 11 or 12, characterized in that, The transaction types include a first type, a second type, a third type, and a fourth type. The first type matches a first tag, the second type matches a second tag, the third type matches a third tag, and the fourth type matches a fourth tag.
14. The data transmission path control method according to claim 11, characterized in that, In static routing mode, the more sub-labels a link's label contains, the higher the link's priority.
15. The data transmission path control method according to claim 9, characterized in that, When one or more link status data changes, causing a change in the corresponding link status level: In the static routing mode, only the label of the corresponding link is modified, while the DPID of the corresponding link remains unchanged. In the dynamic routing mode, the label of the corresponding link is modified first, and then all links are integrated to determine whether the link set needs to be updated. If, after all links are integrated, there is no link set with a new primary label and / or a single link with a new label compared to before the link status data changed, then there is no need to allocate a new DPID; otherwise, a new DPID is allocated to the link set with a new primary label and / or the single link with a new label.
16. A switch, characterized in that, The switch is configured to perform the steps of the data transmission path control method as described in any one of claims 1-15, the switch including a link status monitoring module, the link status monitoring module being configured to collect link status data of each link and upload the link status data to FM.
17. A communication system based on the CXL.io protocol, characterized in that, Including the switch as described in claim 16.
Citation Information
Patent Citations
Data transmission system, method and device, electronic equipment and computer readable medium
CN113364678A
Message processing and transmitting device on CXL switching chip
CN119232678A