Credit-based rate control method, apparatus and device
By creating PSL queues for tasks of different priorities on the receiver side and dynamically adjusting the credit value distribution strategy, the problem that congestion control in the UET protocol cannot meet the bandwidth requirements of tasks of different priorities is solved, and efficient bandwidth allocation and dynamic scheduling of task priorities are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- NEW H3C TECH CO LTD
- Filing Date
- 2024-06-25
- Publication Date
- 2026-05-05
AI Technical Summary
The existing congestion control method based on CBRC in the Ultra Ethernet Transmission (UET) protocol cannot meet the dynamic bandwidth requirements of different priority tasks, especially when multiple tasks coexist and bandwidth is limited, it cannot effectively distinguish and meet the bandwidth requirements of high priority tasks.
On the receiving side, PSL queues are created for tasks of different priorities. By polling all PSL queues in descending order of priority, the credit value distribution strategy is dynamically adjusted to provide more credit value to high-priority tasks and ensure that their bandwidth requirements are met.
It enables dynamic bandwidth allocation for tasks of different priorities in the UET protocol scenario, meeting the immediacy requirements of high-priority tasks while avoiding congestion caused by bandwidth equalization strategies, thus improving network flexibility and efficiency.
Smart Images

Figure CN118631757B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of communication technology, and in particular to a rate control method, apparatus, and device based on credit value. Background Technology
[0002] Artificial intelligence and high-performance computing present new challenges to networks, such as the need for larger scale, higher bandwidth density, multipathing, rapid response to congestion, and interdependence on the performance of individual data streams (with tail latency being a key consideration). Existing protocols may address some aspects of these issues, but because they are designed for general-purpose networks, they lack support for features crucial to artificial intelligence and high-performance computing, such as multipathing and ease of configuration.
[0003] The Ultra Ethernet Consortium (UEC), established in July 2023, is a new organization initiated and hosted by the Linux Foundation and its co-development foundations. The UEC aims to go beyond existing Ethernet capabilities, such as Remote Direct Memory Access (RDMA) and RDMA over Converged Ethernet (RoCE) technologies, providing a high-performance, distributed, and lossless transport layer optimized for high-performance computing and artificial intelligence. Compared to some of the problems mentioned above with existing Ethernet capabilities, the UEC specification is designed to bridge these gaps and provide the necessary large-scale networking for these tasks. The UEC aims to provide a complete communication stack, addressing technical challenges across multiple protocol layers, and offering easy-to-configure and manage features to achieve higher network utilization and lower tail latency, both crucial for reducing the completion time of Artificial Intelligence (AI) and High Performance Computing (HPC) jobs. Specifically, the UEC's future goals include:
[0004] 1) Open protocol specifications based on existing IP and Ethernet protocols.
[0005] 2) Multi-path, packet spraying transmission fully utilizes AI networks, avoiding congestion or head-of-line blocking, and eliminating the need for centralized load balancing algorithms and routing controllers.
[0006] 3) Incast management mechanism, which controls fan-in on the final link to the target host with minimal packet loss.
[0007] 4) The efficient rate control algorithm allows transmission to be rapidly increased to line speed without causing performance loss in contention flows.
[0008] 5) An API for delivering out-of-order packets, supporting message completion in both out-of-order and ordered modes to maximize network and application concurrency and minimize message latency.
[0009] 6) Scalable future network, supporting millions of endpoints.
[0010] 7) Performance and optimal network utilization without the need for specific congestion algorithm parameter tuning for network and workload.
[0011] 8) Designed to achieve line-speed performance for 800G, 1.6T and future faster Ethernet on commercial hardware.
[0012] Traditional high-performance computing / AI scenarios use transmission protocols such as TCP, Data Center TCP, and RDMA. However, the congestion control algorithms involved in these protocols can only guide the control loop of the receiving end based on the interaction information generated by the process of adjusting the data streams of different protocols in the switch queue. This may lead to problems such as flow conflicts (unreasonable load balancing), unreasonable bandwidth allocation, incast congestion (referring to the cluster congestion caused by multiple worker nodes sending packet groups to the same aggregation node at the same time), and high latency.
[0013] To achieve efficient incast management, the Ultra Ethernet Transport (UET) protocol supports Credit Based Rate Control (CBRC). This algorithm primarily draws inspiration from Edge-Queued Datagram Service (EQDS), which offloads queue-related operations and adjustments from the data center network to the host side. The core idea of CBRC is to distribute credits at the UET host receiver, setting reasonable allocation strategies to ensure fair bandwidth sharing among different traffic streams without local traffic overload. This end-to-end congestion control method, which eliminates the need for switches, effectively optimizes bandwidth allocation, reduces latency, and achieves efficient traffic load balancing.
[0014] For general tasks (senders) using the UET protocol without special requirements, CBRC's default FIFO credit value distribution strategy can evenly distribute link bandwidth among different senders and prevent last-hop congestion. However, this receiver allocation strategy does not consider the possibility that different tasks may have different priorities. For example, on the same server cluster using the UET protocol for underlying communication, two tasks, Task 1 and Task 2, may be running simultaneously. Task 1 needs to present certain content to the user's display interface in a timely manner, and this type of task is more concerned with the immediacy of task completion. Task 2, on the other hand, is more concerned with the quality of the result when it is completed after a period of time. Although higher bandwidth can also speed up the completion of Task 2, in the case of multiple tasks coexisting and limited bandwidth, the existing CBRC-based congestion control method cannot dynamically and flexibly schedule to meet the bandwidth requirements of tasks with different priorities. Summary of the Invention
[0015] In view of this, the present invention provides a rate control method, apparatus and device based on credit value to solve the technical problem that CBRC-based congestion control in the Ultra Ethernet Transmission (UET) protocol scenario cannot meet the bandwidth requirements of tasks with different priorities.
[0016] Based on one aspect of the embodiments of the present invention, the present invention provides a rate control method based on credit values. This method is applied to a receiver device that supports the Ultra Ethernet Transmission (UET) protocol and is capable of receiving and processing multiple requests to execute tasks of different priorities sent by an end-side sender. The method includes:
[0017] The receiving PDS receives the first PDS request message and updates the sender queue corresponding to the priority of the first priority task by updating the first priority task information carried in the first PDS request message; the sender queue includes PSL and ISL;
[0018] Whenever the receiver's credit value sending timer expires, the receiver polls all PSL queues in descending order of priority and publishes the credit value to the senders in the PSL queues based on the dynamic credit value rate control strategy.
[0019] Furthermore, the specific method for traversing all PSL queues and publishing credit values is as follows:
[0020] The receiver polls all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it polls again to determine the credit value to be published for the sender in that priority PSL queue based on the dynamic credit value rate control strategy, and publishes the determined credit value to be published to the sender.
[0021] Furthermore, the credit value to be published (senfder.pull) is determined based on a dynamic credit value rate control strategy. cur The method is as follows:
[0022] The minimum value between the sender's currently requested credit value (sender.pull_target) and the dynamically adjusted release value is selected as the sender's to-be-released credit value; the dynamically adjusted release value is the base release credit value plus a priority-based dynamically adjusted value.
[0023] The base release credit value is the credit value previously released to this sender (sender.pull). bef The sum of MTU and MTU;
[0024] The priority-based dynamic adjustment value is determined based on the following adjustment strategy:
[0025] Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
[0026] Based on another aspect of the embodiments of the present invention, the present invention also provides a rate control method based on credit value, which is applied to any one of a plurality of sender devices with different priority tasks supporting the Ultra Ethernet Transmission (UET) protocol, and the method includes:
[0027] The sender initiates a first-priority task, marks the first-priority task with a first-priority label, splits it into task packets through the semantic sublayer SES, and delivers the task packets to the packet transmission sublayer PDS on the network interface card device side;
[0028] After receiving the first priority task packet, the sender PDS assembles and sends a first PDS request message carrying the first priority task information and the first priority tag to the receiver before sending the task packet to the receiver, in order to request the receiver to publish the credit value to the local end based on the first priority tag.
[0029] After receiving an acknowledgment (ACK) response to the first PDS request message sent by the receiver, the sender PDS will begin sending the first priority task packet based on the credit value published by the receiver.
[0030] According to another aspect of the embodiments of the present invention, the present invention also includes a rate control device based on a credit value. This device is applied to a receiver device that supports the Ultra Ethernet Transmission (UET) protocol and is capable of receiving and processing task packets sent by an end-side sender requesting to execute tasks of different priorities. The device includes:
[0031] The third module is used to receive the first PDS request message and update the first priority task information carried in the first PDS request message to the sender queue corresponding to the priority of the first priority task; the sender queue includes PSL and ISL.
[0032] The fourth module is used to poll all PSL queues in descending order of priority and publish credit values to the senders in the PSL queues based on the dynamic credit value rate control strategy whenever the receiver's credit value transmission timer expires.
[0033] Furthermore, the fourth module iterates through all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it determines the credit value to be published for the sender in that priority PSL queue based on a dynamic credit value rate control strategy, and publishes the determined credit value to be published (sender.pull) to the sender. cur );
[0034] The fourth module selects the minimum value between the credit value currently requested by the sender (sender.pull_target) and the dynamically adjusted release value as the credit value to be released by the sender; the dynamically adjusted release value is the base release credit value plus the dynamic adjustment value based on priority;
[0035] The base release credit value is the credit value previously released to this sender (sender.pull). bef The sum of MTU and MTU;
[0036] The priority-based dynamic adjustment value is determined based on the following adjustment strategy:
[0037] Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
[0038] Based on another aspect of the embodiments of the present invention, the present invention also provides a rate control device based on a credit value, which is applied to any one of a plurality of sender devices with different priority tasks supporting the Ultra Ethernet Transmission (UET) protocol, and the device includes:
[0039] The first module is used to start the first priority task, label the first priority task with the first priority tag, split it into task packets through the semantic sublayer SES, and deliver the task packets to the packet transmission sublayer PDS on the network card device side.
[0040] The second module is used to, after the PDS receives the first priority task packet, assemble and send a first PDS request message to the receiver carrying the first priority task information and the first priority tag before sending the task packet to the receiver, so as to request the receiver to publish a credit value to the local end based on the first priority tag; and after receiving the acknowledgment (ACK) response of the first PDS request message sent by the receiver, instruct the PDS to start sending the first priority task packet based on the credit value published by the receiver.
[0041] This invention supports priority tagging for tasks by the sender in a UET-enabled context, and creates PSL queues for tasks of different priorities at the receiver. It optimizes the update strategy for the sending queues and the dynamic credit value distribution strategy based on priority-based sending queues. The receiver iterates through all PSL queues in descending priority order. Based on the priority sending queues, an adjustment value is added to the credit value published under the original distribution strategy, taking into account the bandwidth requirements of different priority tasks. This enables congestion control based on CBRC in a UET protocol scenario to meet the bandwidth requirements of tasks with different priorities. Attached Figure Description
[0042] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments of the present invention or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those skilled in the art, other drawings can be obtained from these drawings of the embodiments of the present invention.
[0043] Figure 1 This is an example diagram illustrating the structure and packet transmission processing flow of the UET component;
[0044] Figure 2 This describes the process for receivers using the UET protocol to receive messages and publish credit values based on the CBRC algorithm.
[0045] Figure 3 This is a schematic diagram of the steps of a rate control method based on credit value provided in an embodiment of the present invention at the sender.
[0046] Figure 4 This is a schematic diagram of a sender queue for executing CBRC, created at the receiver for tasks of different priorities, according to an embodiment of the present invention.
[0047] Figure 5 This is a flowchart illustrating the steps of a receiver-based rate control method based on credit value according to an embodiment of the present invention.
[0048] Figure 6 This is a schematic diagram of an electronic device structure for implementing the rate control method based on credit value provided by the present invention, according to an embodiment of the present invention. Detailed Implementation
[0049] The terminology used in this embodiment of the invention is for the purpose of describing particular embodiments only and is not intended to limit the embodiments of the invention. The singular forms “a,” “the,” and “the” used in this embodiment are also intended to include the plural forms unless the context clearly indicates otherwise. Although embodiments of the invention may be described in terms such as first, second, and third, this descriptive method is only used to distinguish similar information, entities, or steps, and not to describe a specific order or sequence. For example, without departing from the scope of the embodiments of the invention, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Furthermore, in some scenarios, first information may refer to one piece of information or multiple pieces of information of the same kind. In addition, the word “if” used can be interpreted as “when…”, “when…”, or “in response to a determination.” The term “and / or” in this invention is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. Furthermore, in the description of this invention, unless otherwise stated, “multiple” means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can be expressed as: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0050] Figure 1This is an example diagram illustrating the UET component structure and packet transmission processing flow. In UET, CBRC belongs to the Congestion Management module within this architecture, which resides in the Packet Delivery Sublayer (PDS). The task of communication between different terminals first reaches the Semantics Sublayer (SES) through libfabrics (a general-purpose low-level network API). The SES breaks down a received complete message into individual packets and delivers them to the PDS. When a packet reaches the PDS and needs to be sent, the PDS packet sending module queries the Congestion Management module to determine whether the packet can be sent. The Congestion Management module, based on the CBRC algorithm, makes this determination based on the sender's current credit value (number of bytes). If the credit value is sufficient to send a message of the current size, the congestion management module will reply with a signal indicating that transmission is permitted, notifying the PDS that packet transmission is allowed. If the credit value is insufficient, the PDS is not allowed to send packets, and simultaneously, the PDS is instructed to send a smaller RTS (Request to Send) control message to request the receiver to publish a larger credit value to itself (the sender). From this perspective, the key to the design of CBRC lies in the receiver's credit value publication process. An ideal credit value publication strategy should both reduce the probability of incast congestion and rationally allocate bandwidth among multiple senders.
[0051] The current UET draft outlines the following process for CBRC recipients to distribute credit values:
[0052] The receiver maintains two queues: the Active Sender List (ASL) and the Idle Sender List (ISL). The ASL stores all senders whose requested credits have not yet been fulfilled, while the ISL stores all senders whose requested credits have been fulfilled. When a sender in the ASL has their requested credits fulfilled, they are transferred to the ISL; conversely, when a sender in the ISL sends a new credit to the receiver, it is transferred back to the ASL.
[0053] Figure 2 This describes the process for message reception and credit value publication by the receiver using the UET protocol based on the CBRC algorithm. The processing flow of the CBRC-based PDS receiver message processing and credit value timer module is as follows:
[0054] The steps executed by the PDS receiver message receiving and processing module include:
[0055] SA01: When the receiver receives a message from the sender, it determines whether the credit value timer module has timed out. If it has timed out, it calls the credit value timer module to publish a new credit value.
[0056] SA02. If the credit value timer module has not timed out, determine whether the received message carries a control message with the new credit value (i.e., pull target value) calculated by the sender. If not, proceed to the normal PDS message processing flow. Whenever the sender finds that it has used up the previous credit value, it will calculate a pull target value and send it to the receiver, indicating that it needs more credit value.
[0057] SA03. If the message carries a pull target value, the receiver updates its local pull target value. Then, the receiver checks if this pull target value is greater than the credit value previously issued to the sender, and simultaneously checks if the sender is in the ASL queue. If either condition is negative, or both are negative, no processing is performed. If both conditions are positive, the receiver inserts the sender at the end of the ASL queue, and when it is polled, a new credit value is issued to that sender.
[0058] SA04. If the sender was originally in the ISL queue (before being placed at the end of the ASL queue), then remove it from the ISL queue.
[0059] The steps executed by the PDS receiver credit value timer module include:
[0060] SB01. When the credit value timer module times out, first check if the ASL queue is empty;
[0061] SB02. If the ASL queue is not empty, retrieve the relevant information of the sender from the header of the ASL queue (e.g., sender task ID, sender IP port, and the credit value last published to the sender by the receiver), and calculate the credit value that should be published to the sender according to the following formula (represented by sender.pull):
[0062] sender.pull=min(sender.pull_target,sender.pull+MTU)
[0063] In this equation, `sender.pull` on the right side represents the credit value previously sent by the receiver to the sender, `sender.pull_target` represents the credit value currently requested by the sender, and `MTU` (Maximum Transmission Unit) is the maximum transmission unit (typically 1500 bytes). The receiver then encapsulates the credit value (i.e., `sender.pull`) into a PDS control message and replies to the sender. If the credit value meets the sender's requirements, the sender is moved to the end of the ISL queue; otherwise, it remains in the ASL (either inserted at the end of the ASL queue or kept in its original position).
[0064] SB03. If the ASL queue is empty and the ISL queue is not empty, retrieve the sender information stored at the head of the ISL queue and publish a credit value of sender.pull + k * MTU to the sender. According to the protocol, the value of k needs to be determined based on the receiver's actual receiving capability, so this value may not be the same in different scenarios. After the receiver calculates the new credit value, it sends it to the sender using a similar sending process as described in step SB02. If the credit value is less than the credit value requested by the sender (i.e., the pull target value) plus the sum of the maximum sending window (the maximum sending window, max cwnd, is the product of 1.5 times the bandwidth and latency, which depends on the bandwidth and latency values in the specific scenario), it means that the receiver can continue to publish credit values to the sender, so it is put back into the tail of the ISL queue; otherwise, it means that the credit value published to the sender is large enough, and it is not necessary to continue publishing to it. In this case, no processing is performed, which is equivalent to the sender being in a "free state".
[0065] The credit value timer module sets a credit value sending timer based on the receiver's receiving capacity (represented by 'k' in the diagram; since the congestion management module is fixed on the network interface card (NIC) side, this value setting depends on the specific NIC's receiving capacity). This timer is triggered periodically, sending a credit value of MTU size (in bytes) to the sender in the ASL header. When the PDS receiver's message receiving and processing module receives a message from a sender, it first checks if the credit value sending timer has timed out. If it has, it enters the credit value publishing process executed by the credit value timer module. If it hasn't timed out, it checks if the received message carries a credit value pull target. If not, the PDS receiver processes the message according to the non-credit value pull target message processing procedure. If it does, it executes the credit value pull target message processing procedure, adjusting the credit value information stored by the receiver and the ASL / ISL as needed, and waits for the next credit value sending timer trigger. Figure 2As can be seen from the credit value timer module's processing flow, to ensure fair credit value allocation among multiple active senders, the current default credit value allocation method is First-In-First-Out (FIFO). That is, a credit value of MTU is published to the head sender in the ASL each time, and then that sender is inserted at the tail of the ASL, and so on. If the timer expires and the ASL queue is found to be empty while the ISL queue is not empty, a credit value of k*MTU size will be published to the head sender in the ISL queue.
[0066] For general tasks (senders) using the UET protocol without special requirements, CBRC's default queue-based FIFO credit distribution strategy allows different senders to share link bandwidth evenly, preventing last-hop congestion. However, this receiver allocation strategy doesn't consider situations where different tasks may have different priorities. For example, on the same server cluster using the UET protocol for underlying communication, two tasks might run simultaneously: Task 1 and Task 2. Task 1 needs to present certain content to the user interface quickly and promptly, prioritizing immediate completion. Task 2, on the other hand, prioritizes the quality of its results after a certain time. While higher bandwidth can accelerate Task 2's completion, in situations with multiple tasks and limited bandwidth, Task 1's priority should be ensured first. In other words, for high-priority tasks, the PDS receiver (server) using CBRC should be able to provide more credits as needed to meet its peer's high bandwidth requirements, rather than sharing bandwidth with other tasks, thus achieving dynamic bandwidth allocation.
[0067] Based on the above analysis, this invention addresses the technical problem that CBRC-based congestion control in the UET protocol scenario of Ultra Ethernet transmission cannot meet the bandwidth requirements of tasks with different priorities. It provides a new rate control scheme based on credit values. This scheme optimizes the UET protocols on the end-side (libfabrics, SES) and the network interface card (NIC) side (PDS), allowing end-side devices to set different task priorities and NIC-side devices to set different priority queues. This enables dynamic bandwidth sharing among tasks with different priorities, more flexibly meeting the needs of different application scenarios.
[0068] The specific implementation process of the present invention will be described in detail below with reference to the accompanying drawings and specific embodiments. It should be noted that the steps shown in the flowcharts of the drawings and embodiments can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowcharts, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0069] Figure 3 This is a schematic diagram of the steps of the rate control method based on credit value provided in an embodiment of the present invention at the sender. Figure 3 The procedure is applied to any one of several sender devices with different priority tasks that support the UET protocol. The method includes:
[0070] S301. The sender initiates the first priority task, marks the first priority task with the first priority tag, splits it into task packets through SES, and delivers the task packets to the packet transmission sublayer (PDS) on the network card device side;
[0071] Multiple end-side devices supporting the UET protocol, i.e., task senders, first establish a connection with the task receiver to ensure that message transmission can be carried out through UET.
[0072] Different end devices (senders) initiate tasks with different priorities (such as large model training tasks, inference tasks, etc.) and call the underlying network API interface (libfabrics interface) that supports input priorities to distribute the tasks to the semantic sublayer (SES layer). The Libfabrics interface assigns priority tags to tasks with different priorities, and sends the priority-tagged tasks to SES in the form of messages.
[0073] SES further breaks down messages into packets, which are then delivered to the packet transmission sublayer (PDS) on the network interface card (NIC) device side. The PDS is responsible for delivering the packets to the receiver.
[0074] S302. After receiving the first priority task packet, the sender PDS assembles and sends a first PDS request message carrying the first priority task information and the first priority tag to the receiver before sending the task packet to the receiver, in order to request the receiver to publish the credit value to the local end based on the first priority tag.
[0075] After receiving the task packet of the first priority task for the first time, PDS needs to assemble a PDS request message carrying the first priority task information and the first priority tag (for example, the priority tag is 0 when the priority is 0) and put it into the header of the sending queue before putting the packet into the sending queue for transmission, so as to ensure that the PDS request message is sent first.
[0076] S303. After receiving the acknowledgment (ACK) response of the first PDS request message sent by the receiver, the sender PDS will then begin sending the first priority task packet based on the credit value published by the receiver.
[0077] After the sending PDS sends the priority-carrying PDS request message at the head of the sending queue to the receiving PDS, it needs to wait for the acknowledgment (ACK) response from the receiving party. Receiving the ACK response from the receiving party indicates that the receiving party is ready to receive the first priority task message from the sending party. Therefore, the sending PDS will only start sending subsequent data messages based on the credit value published by the receiving party after receiving the ACK response.
[0078] Figure 4 This diagram illustrates, according to an embodiment of the present invention, the sender queues created at the receiver for executing CBRC tasks corresponding to different priorities. Unlike the original CBRC implementation, this invention creates priority-based sender queues (PSLs) and ISLs at the receiver for tasks of different priorities. Figure 4 For example, the congestion management module of the receiver's PDS manages N PSL queues (i.e., there are N types of tasks with different priorities). Different priority PSL / ISL queues correspond to senders containing tasks with different priorities. PSL / ISL queues of the same priority store senders that have started tasks with the same priority. Each square in the PSL / ISL queue in the diagram represents a different sender stored by the receiver. The information of each sender stored in the sender queue includes: the sender task identifier ID, the IP port number, and the credit value (pull value) that the receiver last published to that sender. Suppose that at a certain moment, when the receiver's PDS receives a task with a priority of 0 from a certain sender, the CBRC will record the information of that sender and insert it into the tail of PSL(0).
[0079] Figure 5 This is a flowchart illustrating the steps of a rate control method for the receiver based on credit value, provided in an embodiment of the present invention. Figure 5 The example procedure applies to a receiving device that supports the UET protocol and is capable of receiving and processing multiple requests to execute tasks of different priorities from an end-side sender. The method includes:
[0080] S501. The receiving PDS receives the first PDS request message and updates the first priority task information carried in the first PDS request message to the sender queue corresponding to the priority of the first priority task; the sender queue includes PSL and ISL;
[0081] After the receiving PDS identifies the first PDS request message, it determines the priority of the first priority task to be processed according to the first priority tag carried by the message, and notifies the congestion management module to update the sender queue stored on the local end based on the CBRC algorithm. The sender information in the PDS request message is saved to the PDS queue corresponding to the task priority. For example, the task information with priority 0 is saved to PSL0.
[0082] S502. Whenever the receiver's credit value transmission timer expires, the receiver polls all PSL queues in descending order of priority and publishes the credit value to the senders in the PSL queues based on the dynamic credit value rate control strategy.
[0083] In one embodiment of the present invention, the method for traversing PSL and publishing credit values is specifically as follows:
[0084] The receiver polls all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it polls again to determine the credit value to be published for the sender in that priority PSL queue based on the dynamic credit value rate control strategy, and publishes the determined credit value to be published to the sender.
[0085] After a credit value is published to a selected sender in the PSL queue (e.g., the sender at the head of the queue) through the credit value publishing process, if the credit value requested by the selected sender is satisfied, the sender is moved to the ISL queue of that priority, awaiting the sender's next credit value request. If the credit value requested by the selected sender is not satisfied, the selected sender remains in the PSL queue.
[0086] Comparison Figure 2 For example, this invention provides a novel dynamic credit value rate control strategy, different from the existing credit value-based rate control strategy. This strategy can dynamically adjust the credit values issued to senders of different priorities based on the bandwidth requirements of tasks with different priorities. In the original credit value issuance strategy based on the CBRC algorithm, each time the credit value timer expires, a credit value of the size of MTU is issued to senders in the ASL queue if the ASL queue is not empty. This invention, based on the priority sending queue, adds an adjustment value to the credit value issued by the original issuance strategy based on the bandwidth requirements of tasks with different priorities, thereby prioritizing the credit value requests of senders with higher priorities.
[0087] In one embodiment of the present invention, the credit value release process based on the dynamic credit value rate control strategy specifically includes:
[0088] For the sender in the first priority PSL queue that is not empty, determine the current credit value to be published (sender.pull). cur The method is as follows:
[0089] Choose the minimum value between the sender's currently requested credit value (sender.pull_target) and the dynamically adjusted release value (base release credit value + priority-based dynamic adjustment value) as the sender's release credit value.
[0090] The base release credit value is the credit value previously released to this sender (sender.pull). bef The sum of ) and MTU.
[0091] The priority-based dynamic adjustment value is determined based on the following adjustment strategy:
[0092] Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
[0093] The following specific embodiment illustrates the method used in this invention for determining the credit value to be published for senders in PSL queues of different priorities based on a dynamic credit value rate control strategy.
[0094] When the number of N non-empty PSL queues is even, the method for determining the credit value to be published for the sender of the PSL queue with priority p is as follows:
[0095]
[0096] When the number of N non-empty PSL queues is odd, the method for determining the credit value to be published for the sender of the PSL queue with priority p is as follows:
[0097]
[0098] Among them, sender.pull cur `sender.pull_target` is the credit value currently to be published, and `sender.pull` is the credit value currently requested by the sender. bef The credit value last sent to this sender is the minimum value, and `min` is the function that takes the minimum value. `sender.pull` represents the credit value previously sent to this sender. bef+MTU represents the basic published credit value, where MTU is the maximum transmission unit. The value of p ranges from [0, N-1], with smaller p values indicating higher priority. When N is even... The baseline priority is [value]; when N is odd, the baseline priority is [value]. Round down
[0099] The above formula shows that in this embodiment, the benchmark priority is used. or Divide the N priority PSL queues into two parts. For senders in PSL queues with priorities higher than the baseline, increase the credit value to be issued within the MTU proportionally according to the priority level:
[0100] When N is even, for PSL queues with a priority higher than the baseline, the increase is the priority-based dynamic adjustment value. When N is odd, for PSL queues with a priority higher than the baseline, the increase is the priority-based dynamic adjustment value.
[0101] For senders of PSL queues with a priority level less than or equal to the baseline, the credit value to be issued is reduced proportionally within the MTU range according to the priority level:
[0102] When N is even, for PSL queues with priorities lower than the baseline, the reduction is the dynamic adjustment value based on priority. When N is odd, for PSL queues with priorities lower than the baseline, the reduction is the dynamic adjustment value based on priority. When N is odd, no adjustment is made to PSL queues with priority equal to the base priority; that is, the dynamic adjustment value based on priority is 0.
[0103] Figure 6 This is a schematic diagram of an electronic device 600 for implementing the credit-value-based rate control method provided by the present invention, according to an embodiment of the present invention. The device includes a processor 610, such as a central processing unit (CPU), a communication bus 620, a communication interface 640, and a memory 630. The processor 610 and the memory 630 can communicate with each other via the communication bus 620. The memory 630 stores a computer program, which, when executed by the processor 610, implements one or more steps of the credit-value-based rate control method provided by the present invention.
[0104] Memory refers to a device based on a storage medium used to store computer programs and / or data. It can be volatile memory (VM, often called main memory) or non-volatile memory (NVM). Main memory refers to internal storage that directly exchanges data with the processor. It can read and write data at any time and at high speed, serving as a storage medium for temporary data of the operating system and other running programs. Main memory can be Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), etc. Non-volatile memory refers to memory that uses persistent storage media, characterized by large capacity and persistent data retention. It can be Storage Class Memory (SCM), Solid State Drive (SSD), NAND flash memory, hard disks, etc. SCM is an industry term for a new type of storage medium that falls between main memory and flash memory. It is a composite storage technology that combines the characteristics of persistent storage and main memory, with access speeds slower than DRAM but faster than SSDs.
[0105] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0106] It should be recognized that embodiments of the present invention can be implemented or carried out by computer hardware, a combination of hardware and software, or by computer instructions stored in non-transitory (or non-persistent) memory. The method can be implemented using standard programming techniques, including a non-transitory storage medium configured with a computer program within the computer program, wherein such a storage medium causes the computer to operate in a specific and predefined manner. Each program can be implemented in a high-level procedural or object-oriented programming language to communicate with the computer system. However, if desired, the program can be implemented in assembly or machine language. In any case, the language can be a compiled or interpreted language. Furthermore, for this purpose, the program can run on a programmed application-specific integrated circuit. Moreover, the operations of the processes described in this invention can be performed in any suitable order unless otherwise indicated by the invention or otherwise clearly contradicted by the context. The processes (or variations and / or combinations thereof) described in this invention can be executed under the control of one or more computer systems configured with executable instructions and can be implemented by hardware or a combination thereof as code (e.g., executable instructions, one or more computer programs, or one or more applications) that commonly executes on one or more processors. The computer program includes a plurality of instructions executable by one or more processors.
[0107] Furthermore, the method can be implemented in any suitable type of computing platform, including but not limited to personal computers, minicomputers, mainframes, workstations, networked or distributed computing environments, standalone or integrated computer platforms, or in communication with charged particle tools or other imaging devices. Aspects of the invention can be implemented as machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, optical read and / or write storage medium, RAM, ROM, etc., such that it is readable by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the processes described herein. Furthermore, the machine-readable code, or portions thereof, can be transmitted via wired or wireless networks. The invention includes these and other different types of non-transitory computer-readable storage media when such media comprises instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor. When programmed according to the methods and techniques described in the invention, the invention also includes the computer itself.
[0108] The above description is merely an embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the present invention should be included within the scope of protection of the present invention.
Claims
1. A rate control method based on credit value, characterized in that, This method is applied to a receiver device that supports the Ultra Ethernet Transmission (UET) protocol and is capable of receiving and processing multiple requests to execute tasks of different priorities sent by an end-side sender. The method includes: The receiving packet transmission sublayer (PDS) receives the first PDS request message and updates the first priority task information carried in the first PDS request message into the sender queue corresponding to the priority of the first priority task; the sender queue includes a priority-based sender queue (PSL) and an idle sender queue (ISL). Whenever the receiver's credit value sending timer expires, the receiver polls all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it polls again to determine the credit value to be published by the sender in that priority PSL queue based on the dynamic credit value rate control strategy, and publishes the determined credit value to be published to the sender. The credit value to be published is determined based on a dynamic credit value rate control strategy. The method is as follows: The minimum value between the sender's currently requested credit value (sender.pull_target) and the dynamically adjusted release value is selected as the sender's to-be-released credit value; the dynamically adjusted release value is the base release credit value plus a priority-based dynamically adjusted value. The basic published credit value is the credit value of the last publication to this sender. The sum of ( ) and the Maximum Transmission Unit (MTU); The priority-based dynamic adjustment value is determined based on the following adjustment strategy: Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
2. The method according to claim 1, characterized in that, The credit value to be published is determined based on a dynamic credit value rate control strategy. The specific method is as follows: When N is even, the method for determining the credit value to be published for the sender of the PSL queue with priority p is as follows: When N is odd, the method for determining the credit value to be published for the sender of the PSL queue with priority p is as follows: in, This is the current credit score to be released. The credit value currently requested by the sender. This represents the credit value previously sent to this sender, and `min` is a function that takes the minimum value. This represents the basic credit score, MTU is the maximum transmission unit, and p takes values in the range [0, N-1]. Smaller p values indicate higher priority. When N is even, ... The baseline priority is [value]; when N is odd, the baseline priority is [value]. Round down .
3. A rate control method based on credit value, characterized in that, This method is applied to any one of several sender devices with different priority tasks that support the Ultra Ethernet Transmission (UET) protocol. The method includes: The sender initiates a first-priority task, tags it with a first-priority label, splits it into task packets through the semantic sublayer SES, and delivers the task packets to the packet transmission sublayer PDS on the network interface card device side. After receiving the first priority task packet, the sender PDS assembles and sends a first PDS request message carrying the first priority task information and the first priority tag to the receiver before sending the task packet to the receiver, in order to request the receiver to publish the credit value to the local end based on the first priority tag. After receiving the acknowledgment (ACK) response to the first PDS request message sent by the receiver, the sender PDS will begin sending the first priority task packet based on the credit value published by the receiver. The receiving PDS receives a first PDS request message and updates the first priority task information carried in the first PDS request message to the sender queue corresponding to the priority of the first priority task; the sender queue includes a priority-based sender queue PSL and an idle sender queue ISL. Whenever the receiver's credit value sending timer expires, the receiver polls all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it polls again to determine the credit value to be published by the sender in that priority PSL queue based on the dynamic credit value rate control strategy, and publishes the determined credit value to be published to the sender. The credit value to be published is determined based on a dynamic credit value rate control strategy. The method is as follows: The minimum value between the sender's currently requested credit value (sender.pull_target) and the dynamically adjusted release value is selected as the sender's to-be-released credit value; the dynamically adjusted release value is the base release credit value plus a priority-based dynamically adjusted value. The basic published credit value is the credit value of the last publication to this sender. The sum of ( ) and the Maximum Transmission Unit (MTU); The priority-based dynamic adjustment value is determined based on the following adjustment strategy: Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
4. A rate control device based on credit value, characterized in that, This device is used in a receiver device that supports the Ultra Ethernet Transmission (UET) protocol and is capable of receiving and processing task packets sent by an end-side sender that requests multiple tasks with different priorities. The device includes: The third module is used to receive the first PDS request message and update the first priority task information carried in the first PDS request message to the sender queue corresponding to the priority of the first priority task; the sender queue includes PSL and ISL. The fourth module is used to poll and traverse all PSL queues in descending order of priority whenever the receiver's credit value transmission timer expires, and to publish the credit value to the sender in the PSL queue based on the dynamic credit value rate control strategy. The fourth module iterates through all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it determines the credit value to be published for the sender in that priority PSL queue based on the dynamic credit value rate control strategy through a polling method, and publishes the determined credit value to be published to the sender. ); The fourth module selects the minimum value between the credit value currently requested by the sender (sender.pull_target) and the dynamically adjusted release value as the credit value to be released by the sender; the dynamically adjusted release value is the base release credit value plus the dynamic adjustment value based on priority; The basic published credit value is the credit value of the last publication to this sender. The sum of MTU and MTU; The priority-based dynamic adjustment value is determined based on the following adjustment strategy: Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
5. A rate control device based on credit value, characterized in that, This device is used in any one of several sender devices with different priority tasks that support the Ultra Ethernet Transmission (UET) protocol. The device includes: The first module is used to start the first priority task, label the first priority task with the first priority tag, split it into task packets through the semantic sublayer SES, and deliver the task packets to the packet transmission sublayer PDS on the network card device side; The second module is used to, after the PDS receives the first priority task packet, assemble and send a first PDS request message carrying the first priority task information and the first priority tag to the receiver before sending the task packet to the receiver, so as to request the receiver to publish a credit value to the local end based on the first priority tag; and after receiving the acknowledgment (ACK) response of the first PDS request message sent by the receiver, instruct the PDS to start sending the first priority task packet based on the credit value published by the receiver. The receiving PDS receives a first PDS request message and updates the first priority task information carried in the first PDS request message to the sender queue corresponding to the priority of the first priority task; the sender queue includes a priority-based sender queue PSL and an idle sender queue ISL. Whenever the receiver's credit value sending timer expires, the receiver polls all PSL queues in descending order of priority. When it reaches a PSL of a certain priority, it polls again to determine the credit value to be published by the sender in that priority PSL queue based on the dynamic credit value rate control strategy, and publishes the determined credit value to be published to the sender. The credit value to be published is determined based on a dynamic credit value rate control strategy. The method is as follows: The minimum value between the sender's currently requested credit value (sender.pull_target) and the dynamically adjusted release value is selected as the sender's to-be-released credit value; the dynamically adjusted release value is the base release credit value plus a priority-based dynamically adjusted value. The basic published credit value is the credit value of the last publication to this sender. The sum of ( ) and the Maximum Transmission Unit (MTU); The priority-based dynamic adjustment value is determined based on the following adjustment strategy: Divide the N non-empty PSL queues of different priorities into two parts according to the baseline priority. For the sender of the PSL queue with a priority higher than the baseline priority, increase the credit value proportionally within the MTU according to the priority. For the sender of the PSL queue with a priority less than or equal to the baseline priority, decrease the credit value proportionally within the MTU according to the priority. The increase and decrease of the credit value shall be equal.
6. An electronic device, characterized in that, It includes a processor, a communication interface, a storage medium, and a communication bus, wherein the processor, the communication interface, and the storage medium communicate with each other through the communication bus; Storage medium used to store computer programs; A processor, when executing a computer program stored on a storage medium, implements the method according to any one of claims 1-3.
7. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it performs the method as described in any one of claims 1 to 3.
Citation Information
Patent Citations
Method and system for providing credit-based flow control
CN104320350A