A rate control device and method

CN120614312BActive Publication Date: 2026-08-14WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-04
Publication Date
2026-08-14

AI Technical Summary

Technical Problem

[0005]本申请的目的在于提供一种速率控制装置及方法,旨在解决相关技术中队列对的处理过程中令牌生成速率由于固定而导致无法响应网络拥塞变化,以及全局定时刷新令牌数导致资源占用过大的问题

Benefits of technology

[0011]本方案利用按需刷新替代了相关技术中定时刷新令牌数的方案,比如本方案在需要调度目标队列对以处理目标队列对中的工作队列元素时,由令牌计算引擎单元实时计算目标队列对可以使用的最新令牌数,从而实现按需刷新令牌数,减少了90%的无效写操作,显著降低硬件开销,从而克服了相关技术中全局定时刷新令牌数导致的资源浪费的问题。另外,该方案在检测到网络拥塞指示信号后,根据该信号更新调速系数,从而令牌计算引擎单元计算的当前令牌数能够适应当前网络上的拥塞情况,实现了拥塞敏感的自适应速率控制效果。再者,该方案将拥塞系数的调整与网络拥塞指示信号相关联,从而可以避免与RoCEv2流控冲突,能够兼容现有网络。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120614312B_ABST
    Figure CN120614312B_ABST
Patent Text Reader

Abstract

This application provides a rate control apparatus and method. The apparatus includes: a rate control algorithm unit, a queue pair scheduling unit, a queue element processing unit, and a token calculation engine unit. The rate control algorithm unit is used to update the rate control coefficient stored in the rate control coefficient storage cache according to the network congestion indication signal after detecting the network congestion indication signal. The queue pair scheduling unit is used to read the context information of the target queue pair from the context storage cache and the rate control coefficient from the rate control coefficient storage cache, and provide the context information and the rate control coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair. The token calculation engine unit is used to update the current token count of the target queue pair under the trigger of the queue pair scheduling unit. The queue element processing unit is used to process the scheduled work queue elements in the target queue pair based on the updated current token count.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of storage technology, and specifically relates to a rate control device and method. Background Technology

[0002] In RDMA (Remote Direct Memory Access) networks, rate control of queue pairs (QPs) is a key technology for ensuring high throughput and low latency. Related technologies are based on the token bucket algorithm in the standard protocol RFC 2697, achieving traffic shaping through fixed-rate token filling. For example, some technologies employ a shared send queue (SSQ) pooling architecture, allocating a static bandwidth quota to each QP. However, these technologies suffer from the following problems:

[0003] 1. Static configuration is rigid: the token generation rate is fixed and cannot dynamically respond to changes in network congestion.

[0004] 2. Excessive refresh overhead: Globally refreshing the token counters of all QPs at regular intervals leads to frequent write operations (consuming more than 35% of hardware resources). Summary of the Invention

[0005] The purpose of this application is to provide a rate control device and method, which aims to solve the problems in the related art where the fixed token generation rate during queue pair processing makes it unable to respond to changes in network congestion, and the excessive resource consumption caused by globally timed refresh of the token count.

[0006] According to a first aspect of this application, a rate control device is provided, comprising: a rate regulation algorithm unit, a queue pair scheduling unit, a queue element processing unit, and a token calculation engine unit;

[0007] The speed regulation algorithm unit is used to update the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal after detecting the network congestion indication signal.

[0008] The queue pair scheduling unit is used to read the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache when the target queue pair is scheduled, and to provide the context information and the speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair.

[0009] The token calculation engine unit is used to update the current token count of the target queue pair based on the received context information and the speed adjustment coefficient, triggered by the queue pair scheduling unit.

[0010] The queue element processing unit is used to process the scheduled work queue elements in the target queue pair based on the updated current token count.

[0011] This solution replaces the timed token count refresh method used in related technologies with on-demand refresh. For example, when a target queue pair needs to be scheduled to process work queue elements within it, the token calculation engine unit calculates the latest available token count for the target queue pair in real time, thus achieving on-demand token count refresh. This reduces invalid write operations by 90%, significantly lowering hardware overhead and overcoming the resource waste caused by globally timed token count refresh in related technologies. Furthermore, upon detecting a network congestion indication signal, this solution updates the rate adjustment coefficient based on the signal, ensuring that the current token count calculated by the token calculation engine unit adapts to the current network congestion situation, achieving congestion-sensitive adaptive rate control. Moreover, this solution correlates the adjustment of the congestion coefficient with the network congestion indication signal, thereby avoiding conflicts with RoCEv2 flow control and ensuring compatibility with existing networks.

[0012] In an optional implementation, the context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens.

[0013] In an optional implementation, the queue element processing unit further updates the remaining token count based on the amount of data of the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

[0014] In this scheme, the number of tokens that are not used up in the current target queue can be retained and used when the target queue is scheduled again.

[0015] In an optional implementation, the token calculation engine unit queries the static rate based on the static rate index, calculates the token update time interval based on the last token update time and the current system time, and updates the current token count based on the static rate, the update time interval, the speed adjustment coefficient, and the remaining token count.

[0016] Since the speed regulation coefficient is dynamically updated by the speed regulation algorithm unit based on feedback from network congestion notification signals, the current token count calculated in this way can adapt to dynamic changes in network congestion. Furthermore, this scheme uses a time difference instead of an independent timer, eliminating redundant storage of counters for queue pairs.

[0017] In an optional implementation, the token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair.

[0018] The speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

[0019] This approach can respond quickly to different situations such as token exhaustion and sudden network congestion, and can more finely control the token generation rate, thereby improving the processing efficiency of work queue elements and alleviating network congestion.

[0020] According to a second aspect of this application, a rate control method is provided, comprising:

[0021] After detecting a network congestion indication signal, the speed regulation algorithm unit updates the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal.

[0022] When a target queue pair is scheduled, the queue pair scheduling unit reads the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache, and provides the context information and the speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair.

[0023] The token calculation engine unit, triggered by the queue pair scheduling unit, updates the current token count of the target queue pair based on the received context information and the speed adjustment coefficient.

[0024] The queue element processing unit processes the scheduled work queue elements in the target queue pair based on the updated current token count.

[0025] In an optional implementation, the context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens.

[0026] In an optional implementation, the method further includes:

[0027] The queue element processing unit also updates the remaining token count based on the amount of data of the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

[0028] In an optional implementation, updating the current token count of the target queue pair based on the received context information and the speed regulation coefficient includes:

[0029] The token calculation engine unit obtains the static rate based on the static rate index query;

[0030] The token calculation engine unit calculates the token update time interval based on the last token update time and the current system time.

[0031] The token calculation engine unit updates the current token count based on the static rate, update time interval, speed adjustment coefficient, and remaining token count.

[0032] In an optional implementation, the method further includes:

[0033] The token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair.

[0034] The speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

[0035] Other features and advantages of this application will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures and processes shown in the description and the accompanying drawings. Attached Figure Description

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

[0037] Figure 1 This is a structural block diagram of a rate control device according to an exemplary embodiment of this application.

[0038] Figure 2 This is a schematic diagram of the token count refresh process according to an exemplary embodiment of this application.

[0039] Figure 3 A schematic diagram illustrating the improvement effect of the rate control device according to an exemplary embodiment of this application compared to related technologies.

[0040] Figure 4 This is a flowchart illustrating a rate control method according to an exemplary embodiment of this application. Detailed Implementation

[0041] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0042] The relevant technical solutions have the following characteristics: shared send queue (SSQ) resource pooling, QP (queue pair) binding to hardware token bucket counters, and fixed-rate token filling. However, this technology suffers from congestion response deficiencies and low resource efficiency. Specifically, because the token generation rate is statically preset, traffic is still injected at the original rate during sudden congestion, exacerbating network oscillations and leading to a lack of congestion response. Furthermore, this technology periodically refreshes the token counter of all QPs using a timer, resulting in 90% invalid write operations. Moreover, the independent timer consumes a large amount of on-chip storage (measured >6000 registers / tens of thousands of QPs), thus causing low resource efficiency.

[0043] Based on the above analysis, such as Figure 1 As shown, this application exemplarily proposes a rate control device, including: a speed regulation algorithm unit, a queue pair scheduling unit, a queue element processing unit, and a token calculation engine unit;

[0044] The speed regulation algorithm unit is used to update the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal after detecting the network congestion indication signal.

[0045] The queue pair scheduling unit is used to read the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache when the target queue pair is scheduled, and provide the context information and speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair.

[0046] The token calculation engine unit is used to update the current token count of the target queue pair based on the received context information and the speed adjustment coefficient when triggered by the queue pair scheduling unit.

[0047] The queue element processing unit is used to process the scheduled work queue elements in the target queue pair based on the updated current token count.

[0048] For example, see Figure 2As shown, the rate control device can be implemented on a network interface card (NIC) such as an ASIC chip. When a PCIe device needs to transmit new data, it places the data into the corresponding queue pair, which can be referred to as the target queue pair (QP) for ease of description. The queue pair is the basic logical unit of communication in an RDMA network, consisting of a transmit queue (SQ) and a receive queue (RQ), used to isolate data streams from different applications. Then, the PCIe device sends a doorbell signal to the queue pair (QP) scheduling unit. For the target queue pair that needs to be scheduled, the queue pair scheduling unit retrieves the context information of the target queue pair from the context storage cache (QPC Cache) and reads the speed adjustment coefficient of the target queue pair from the speed adjustment coefficient storage cache. It then provides this context information and speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to calculate the current number of tokens that the target queue pair can use. It should be noted that different target queue pairs store different context information in the context storage cache and different speed adjustment coefficients in the speed adjustment coefficient storage cache. The speed adjustment coefficient is calculated and updated by the speed adjustment algorithm unit. Understandably, different target queues are pre-assigned different queue numbers (QPN), and context information and speed regulation coefficients can be stored using the queue number as an index.

[0049] For example, the speed regulation algorithm unit in this application can dynamically calculate the speed regulation coefficient of the target queue pair after detecting a Network Congestion Indication Signal (ECN), and write the updated speed regulation coefficient into the speed regulation coefficient storage cache. The Network Congestion Indication Signal can be marked in the data packets sent by the upstream device. The speed regulation algorithm unit can adjust the speed regulation coefficient in real time according to the ECN, thereby adjusting the token generation rate. In some embodiments, when congested, such as when ECN > 50%, the speed regulation coefficient can be reduced to 0.8, thereby reducing the token generation rate by 20%, which can reduce the number of currently available tokens generated for the target queue pair; when idle, the speed regulation coefficient can be increased to 1.25, thereby increasing the token generation rate by 25%, which can increase the number of currently available tokens generated for the target queue pair, thereby allowing burst traffic. In some embodiments, the speed regulation coefficient can be a 7-bit dynamically adjustable parameter with a value range between 0.75 and 1.25. Of course, in order to save storage space, the precision of the speed regulation coefficient can be appropriately reduced, such as using a 5-bit dynamically adjustable parameter. The speed regulation factor is calculated based on the ECN and can be generated using the standard rate-based congestion control algorithm DCQCN. Both the context storage cache and the speed regulation factor storage cache can be cached.

[0050] For example, when a target queue pair is scheduled, the queue pair scheduling unit reads the latest speed regulation coefficient calculated by the speed regulation algorithm unit based on the current congestion situation from the speed regulation coefficient storage cache. The token calculation engine unit then calculates the current number of tokens that can be used to process the target queue pair based on the latest speed regulation coefficient and context information. As long as the data volume of the target queue element (WQE) currently being scheduled in the target queue pair does not exceed the current number of tokens, the queue element processing unit can complete the processing of the target queue element. Of course, if the current number of tokens is less than the data volume of the work queue element, other measures can be taken, such as putting the unprocessed data back to the target queue pair to wait for the next scheduling. The processing of the target queue element by the queue element processing unit may include assembling the data of the target queue element into packets and sending them out. It should also be noted that, for the case of batch scheduling of multiple target queue pairs, the current number of tokens for multiple target queue pairs can also be calculated in parallel.

[0051] See Figure 3 As shown, this scheme replaces the timed refresh of token counts in related technologies with on-demand refresh. For example, when a target queue pair needs to be scheduled to process work queue elements within it, the token calculation engine unit calculates the latest available token count for the target queue pair in real time, thus achieving on-demand token count refresh. This reduces invalid write operations by 90%, significantly lowering hardware overhead and overcoming the resource waste caused by global timed token count refreshes in related technologies. Furthermore, upon detecting a network congestion indication signal, this scheme updates the rate adjustment coefficient based on that signal. This ensures that the current token count calculated by the token calculation engine unit adapts to the current network congestion situation, achieving congestion-sensitive adaptive rate control. Moreover, this scheme correlates the adjustment of the congestion coefficient with the network congestion indication signal, thereby avoiding conflicts with RoCEv2 flow control and ensuring compatibility with existing networks.

[0052] In some optional implementations, the context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens.

[0053] For example, a static rate index can be pre-set for each target queue pair according to actual needs, and different static rate indices can correspond to different static rates. The correspondence between static rate indices and static rates can be pre-configured in a table, and the corresponding static rate can be determined by looking up the table based on the static rate index set for the target queue pair. The static rate is a pre-configured fixed bandwidth quota (e.g., min_rate = 4Gbps) and is not dynamically adjusted with the network. In some embodiments, the static rate index can be a 4-bit index, for example, the table can be configured as: 0: 1Gbps, 1: 10Gbps...15: 100Gbps, where the step size of the static rate is 10Gbps. In other embodiments, the static rate index can also be greater than 4 bits, for example, it can be a 6-bit index, which can expand the configuration to 64 rates, and the step size of the static rate can be 200Mbps.

[0054] For example, the last token update time is the system time when the token calculation engine unit last calculated the current token count for the target queue pair. The remaining token count is the number of unused tokens after the target queue pair was last scheduled and the data of the scheduled work queue elements was processed. When it is necessary to refresh the current token count of the target queue pair, the static rate index, the last token update time, and the remaining token count in this context information must all be provided to the token calculation engine unit.

[0055] In some optional implementations, the queue element processing unit also updates the remaining token count based on the amount of data in the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

[0056] For example, after processing the target queue elements in the currently scheduled target queue pair, the queue element processing unit calculates the remaining unused token count based on the actual amount of data processed, and writes this remaining token count back to the context information in the context storage cache. This remaining token count is then added to the recalculated token count when the target queue pair is scheduled again and its current token count is dynamically updated. Furthermore, the queue element processing unit also writes the current system time into the context information of the target queue pair, which can be used as the last token update time when the token count is updated next time.

[0057] In this scheme, the number of tokens that are not used up in the current target queue can be retained and used when the target queue is scheduled again.

[0058] In some optional embodiments, the token calculation engine unit obtains the static rate based on the static rate index, calculates the token update interval based on the last token update time and the current system time, and updates the current token count based on the static rate, update interval, speed adjustment coefficient and remaining token count.

[0059] For example, the token calculation engine unit can calculate the regenerated actual token count according to the following formula: Actual token count = Static rate × ΔT × Speed ​​adjustment coefficient; where ΔT is the update time interval, which is the difference between the current system time and the last token update time, with a precision of up to 32 nanoseconds. The current token count is then the sum of the actual token count and the remaining token count.

[0060] Since the speed regulation coefficient is dynamically updated by the speed regulation algorithm unit based on feedback from network congestion notification signals, the current token count calculated in this way can adapt to dynamic changes in network congestion. Furthermore, this scheme uses a time difference instead of an independent timer, eliminating redundant storage of counters for queue pairs.

[0061] In some optional implementations, the token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair; the speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

[0062] For example, in addition to refreshing the current token count when scheduling the target queue pair, this application can also update the current token count of the target queue pair upon triggering a token exhaustion event and a congestion escalation event. A token exhaustion event can occur when the queue element processing unit is processing data of the currently scheduled work queue element, and the amount of data in the work queue element exceeds the available current token count, making it impossible to process all of it. In this case, to continue processing the unprocessed data, the token calculation engine unit can be triggered to update the current token count. Furthermore, network congestion notification signals can carry the current network congestion level. Therefore, the congestion levels that the network congestion notification signals may carry can be pre-classified into different levels. If a sudden surge in traffic causes congestion escalation, to quickly respond to this congestion escalation, the speed regulation algorithm unit can generate a congestion escalation event after updating the speed regulation coefficient, thereby triggering the token calculation engine unit to recalculate the current token count using the updated speed regulation coefficient. This avoids using the current token count calculated before the congestion escalation to process work queue elements, which would prevent the network congestion situation from being improved. This approach enables a rapid response to network congestion, thereby improving the network congestion situation.

[0063] For example, there can be multiple queue pairs, and the work queue elements in different queue pairs may have different processing priorities. To ensure that work queue elements in high-priority queue pairs are scheduled and processed as quickly and frequently as possible, the speed regulation algorithm unit calculates a new speed regulation coefficient based on the network congestion notification signal, and can further adjust the speed regulation coefficient according to the priority of the queue pairs. For example, high-priority queue pairs can have their speed regulation coefficient increased by multiplying by a weight greater than 1, while low-priority queue pairs can have their speed regulation coefficient decreased by multiplying by a weight less than 1. In this way, the token generation rate can be controlled more precisely.

[0064] This approach can respond quickly to different situations such as token exhaustion and sudden network congestion, and can more finely control the token generation rate, thereby improving the processing efficiency of work queue elements and alleviating network congestion.

[0065] Accordingly, see Figure 4 As shown, this application also provides an exemplary rate control method, comprising:

[0066] After detecting a network congestion indication signal, the speed regulation algorithm unit updates the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal.

[0067] When a target queue pair is scheduled, the queue pair scheduling unit reads the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache, and provides the context information and speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair.

[0068] The token calculation engine unit updates the current token count of the target queue pair based on the received context information and the speed adjustment coefficient, triggered by the queue pair scheduling unit.

[0069] The queue element processing unit processes the scheduled work queue elements in the target queue pair based on the updated current token count.

[0070] In an optional implementation, the context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens.

[0071] In an optional implementation, the method further includes:

[0072] The queue element processing unit also updates the remaining token count based on the amount of data in the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

[0073] In an optional implementation, updating the current token count of the target queue pair based on the received context information and the speed regulation coefficient includes:

[0074] The token calculation engine unit obtains the static rate based on the static rate index query;

[0075] The token calculation engine unit calculates the token update interval based on the last token update time and the current system time.

[0076] The token calculation engine unit updates the current token count based on the static rate, update interval, speed adjustment coefficient, and remaining token count.

[0077] In an optional implementation, the method further includes:

[0078] The token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair.

[0079] The speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

[0080] The above method can be implemented by the rate control device provided in the above embodiments. For specific implementation details, please refer to the description of the rate control device in the above embodiments, which will not be repeated here.

[0081] It is understood that the circuit structures, names, and parameters described in the above embodiments are merely examples. Those skilled in the art can also make readily conceived combinations and adjustments to the structural features of the above embodiments according to their needs, and the concept of this application should not be limited to the specific details of the above examples.

[0082] Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.

Claims

1. A rate control device, characterized in that, include: Speed ​​regulation algorithm unit, queue pair scheduling unit, queue element processing unit, and token calculation engine unit; The speed regulation algorithm unit is used to update the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal after detecting the network congestion indication signal. The queue pair scheduling unit is used to read the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache when the target queue pair is scheduled, and to provide the context information and the speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair. The context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens; The token calculation engine unit is used to, under the trigger of the queue pair scheduling unit, query the static rate based on the static rate index to obtain the static rate, calculate the token update interval based on the last token update time and the current system time, and update the current token count based on the static rate, the update interval, the speed adjustment coefficient, and the remaining token count; wherein, the token calculation engine unit calculates the latest number of tokens that the target queue pair can use in real time, thereby realizing the on-demand refresh of the token count; The queue element processing unit is used to process the scheduled work queue elements in the target queue pair based on the updated current token count.

2. The rate control device according to claim 1, characterized in that, The queue element processing unit also updates the remaining token count based on the amount of data of the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

3. The rate control device according to any one of claims 1-2, characterized in that, The token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair. The speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

4. A rate control method, characterized in that, include: After detecting a network congestion indication signal, the speed regulation algorithm unit updates the speed regulation coefficient stored in the speed regulation coefficient storage cache according to the network congestion indication signal. When a target queue pair is scheduled, the queue pair scheduling unit reads the context information of the target queue pair from the context storage cache and the speed adjustment coefficient from the speed adjustment coefficient storage cache, and provides the context information and the speed adjustment coefficient to the token calculation engine unit to trigger the token calculation engine unit to update the current token count of the target queue pair. The context information includes the static rate index of the target queue pair, the last token update time, and the number of remaining tokens; The token calculation engine unit, triggered by the queue pair scheduling unit, updates the current token count of the target queue pair based on the received context information and the speed adjustment coefficient. The queue element processing unit processes the scheduled work queue elements in the target queue pair based on the updated current token count; Updating the current token count of the target queue pair based on the received context information and the speed adjustment coefficient includes: The token calculation engine unit obtains the static rate based on the static rate index query; The token calculation engine unit calculates the token update time interval based on the last token update time and the current system time. The token calculation engine unit updates the current token count based on the static rate, update time interval, speed adjustment coefficient, and remaining token count; The token calculation engine unit calculates the latest number of tokens available for the target queue in real time, thereby enabling the token count to be refreshed on demand.

5. The rate control method according to claim 4, characterized in that, The method further includes: The queue element processing unit also updates the remaining token count based on the amount of data of the processed work queue element and the current token count, and writes the remaining token count back to the context information of the target queue pair.

6. The rate control method according to any one of claims 4-5, characterized in that, The method further includes: The token calculation engine unit also updates the current token count of the target queue pair when triggered by the token exhaustion event and the congestion escalation event corresponding to the target queue pair. The speed regulation algorithm unit also updates the speed regulation coefficient of the target queue pair based on the preset weight of the target queue pair.

Citation Information

Patent Citations

  • Data transmission method and related equipment

    CN112737970A

  • Message sending method, data processor, computer equipment and storage medium

    CN117857472A

  • Virtual channel scheduling system for RDMA transmission

    CN120017602A