Bandwidth adaptive equalization method and device, equipment, storage medium and program product

Through real -time monitoring and classification of business requests in the cache SOC system, and generating traffic tokens based on the response data unloading rate, the problem of bandwidth competition has been solved, and the guarantee of the balanced distribution of the bandwidth of each second -level node and the stability of the system.

CN119341916AActive Publication Date: 2025-01-21WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD

Patent Information

Application Number
CN202411452705.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-17
Publication Date
2025-01-21
Estimated Expiration
2044-10-17

AI Technical Summary

Technical Problem

There are bandwidth competition problems in SoC systems, resulting in uneven resource allocation and performance degradation, affecting system stability.

Method used

By monitoring the business status of secondary nodes under each bandwidth competition node in real time, classifying and caching business requests, generating request cache queues, and generating traffic tokens based on the response data offload rate, achieving balanced allocation of bandwidth resources.

Benefits of technology

It achieves a balanced allocation of the bandwidth of each secondary node, ensuring the orderliness and balance of business requests, thereby ensuring the stability of the dynamic operating system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341916A_ABST
    Figure CN119341916A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of integrated circuits, and discloses a bandwidth adaptive equalization method and device, equipment, a storage medium and a program product. The method comprises the following steps: monitoring the service condition of each secondary node, and performing classified caching according to a response data unloading rate to generate a request cache queue; generating a target number of traffic tokens corresponding to each secondary node according to the response data unloading rate every first unit time; polling the request cache queues and the traffic token number corresponding to each secondary node under each bandwidth competition node every second unit time, and generating node continuous marking request cache queues corresponding to each bandwidth competition node, and continuously scheduling the service requests of the node continuous mark request buffer queues corresponding to the bandwidth competition nodes to a target side for the target side to respond and execute. According to the scheme, the bandwidth of each secondary node can be distributed in a balanced manner all the time in the dynamic operation process of the system, and the stability of the bandwidth performance of the system is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of integrated circuits, and in particular to a bandwidth adaptive equalization method, device, equipment, storage medium and program product. Background Art

[0002] SoC (System on Chip) is a complex integrated circuit that integrates many systems such as processors, memory, input and output ports in a limited space. With the development of technology, the demand for high bandwidth, low latency, and balanced bandwidth has become more urgent, and SoC systems are facing the problem of bandwidth competition. Specifically, bus bandwidth contention is a phenomenon in which multiple nodes simultaneously initiate access to limited target bandwidth resources in a computer network or multi-processor system, resulting in uneven resource allocation and performance degradation. This may cause a decrease in the throughput of the entire SoC system, an increase in transmission delays, a large number of requests suddenly occupying most of the bandwidth at certain nodes, resulting in insufficient bandwidth resources at other nodes, and an imbalance in bandwidth allocation between nodes and between the secondary nodes under each node, affecting the stability of the system.

[0003] Therefore, there is an urgent need for a bandwidth adaptive balancing method to evenly distribute bandwidth resources of each node in the SoC system and ensure the stability of the system. Summary of the invention

[0004] In view of this, an object of the present invention is to provide a bandwidth adaptive equalization method, apparatus, device, storage medium and program product to solve the problem of unbalanced bandwidth resource allocation of various bandwidth competing nodes.

[0005] In a first aspect, the present invention provides a bandwidth adaptive equalization method, the method comprising:

[0006] Monitor the service status of each secondary node under each bandwidth competition node in real time, and cache the service requests sent by each secondary node according to the response data offloading rate, and generate a request cache queue corresponding to each secondary node;

[0007] Generate a target number of flow tokens corresponding to each secondary node according to a response data unloading rate of each secondary node every first unit time;

[0008] Poll the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time, and when the number of traffic tokens of the target secondary node is sufficient, read out each service request in the request cache queue corresponding to the target secondary node, and mark each read service request as continuous, and generate a node continuous marked request cache queue corresponding to each bandwidth contention node;

[0009] Poll the node continuous marking request cache queue corresponding to each bandwidth competing node, read out the service requests marked as continuous in the node continuous marking request cache queue, and continuously schedule them to the target side so that the target side can respond and execute each service request continuously scheduled to the target side.

[0010] In an optional implementation, polling the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time includes:

[0011] Determine the order of each secondary node under each bandwidth competition node;

[0012] According to the order of each secondary node under each bandwidth competition node, determine the polling order of each secondary node under each bandwidth competition node;

[0013] According to the polling order of each secondary node under each bandwidth contention node, the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node are polled every second unit time.

[0014] In an optional implementation, when the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out, and each read service request is marked as continuous, and a node continuous marked request cache queue corresponding to each bandwidth competition node is generated, including:

[0015] Get the number of traffic tokens in the request cache queue corresponding to the target secondary node;

[0016] According to the number of traffic tokens corresponding to the target secondary node, the service request in the request cache queue corresponding to the target secondary node is released;

[0017] The service requests released in the request cache queues corresponding to the secondary nodes under the bandwidth competition node where the target secondary node is located are continuously marked in the release order to generate a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located.

[0018] In an optional embodiment, the method further includes:

[0019] Determine the bandwidth competing node that obtains the current arbitration right;

[0020] The service requests marked as continuous in the node continuous marking request cache queue corresponding to the bandwidth competition node that obtains the current arbitration right are continuously scheduled to the target side.

[0021] In an optional implementation, when the service of the target secondary node is suspended or fails, the request cache queue corresponding to the target secondary node is empty.

[0022] In an optional implementation, polling the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time includes:

[0023] When the request cache queue corresponding to the target secondary node is polled and the request cache queue corresponding to the target secondary node is empty, jump to the request cache queue corresponding to the secondary node next in order to the target secondary node.

[0024] In a second aspect, the present invention provides a bandwidth adaptive equalization device, the device comprising:

[0025] The service monitoring module is used to monitor the service status of each secondary node under each bandwidth competition node in real time, and classify and cache the service requests sent by each secondary node according to the response data unloading rate, and generate a request cache queue corresponding to each secondary node;

[0026] A flow token generation module, configured to generate a target number of flow tokens corresponding to each secondary node according to a response data unloading rate of each secondary node every first unit time;

[0027] The request continuity marking module is used to poll the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time. When the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out, and each read service request is marked as continuous, so as to generate a node continuous marking request cache queue corresponding to each bandwidth competition node; the scheduling module is used to poll the node continuous marking request cache queue corresponding to each bandwidth competition node, read out the service requests marked as continuous in each node continuous marking request cache queue, and continuously schedule them to the target side, so that the target side can respond to and execute each service request continuously scheduled to the target side.

[0028] In a third aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the bandwidth adaptive equalization method of the first aspect or any corresponding embodiment thereof by executing the computer instructions.

[0029] In a fourth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the bandwidth adaptive equalization method of the first aspect or any corresponding embodiment thereof.

[0030] In a fifth aspect, the present invention provides a computer program product, including computer instructions, where the computer instructions are used to enable a computer to execute the bandwidth adaptive equalization method of the first aspect or any corresponding embodiment thereof.

[0031] The technical solution provided by the present invention may include the following beneficial effects:

[0032] The present invention classifies and caches the service requests of each secondary node obtained by real-time monitoring according to the response data unloading rate, generates a request cache queue corresponding to each secondary node, and generates a target number of flow tokens corresponding to each secondary node according to the response data unloading rate of each secondary node. When the number of flow tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out and continuously marked, and a node continuous marking request cache queue corresponding to each bandwidth competition node is generated, so that the service request sending of the secondary node matches the response data unloading rate. Finally, the node continuous marking request cache queue corresponding to each bandwidth competition node is polled, and the service requests marked as continuous in the node continuous marking request cache queue are continuously scheduled to the target side for the target side to respond and execute, thereby realizing balanced allocation of bandwidth to each secondary node, ensuring the orderliness and balance of executing the service requests of each secondary node, and further ensuring the stability of the dynamic operation system. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0034] Figure 1 It is a flow chart of a bandwidth adaptive equalization control strategy in the related art;

[0035] Figure 2 is a schematic diagram of a flow chart of a bandwidth adaptive equalization method according to an embodiment of the present invention;

[0036] Figure 3 is a flow chart of another bandwidth adaptive equalization method according to an embodiment of the present invention;

[0037] Figure 4 is a schematic diagram of the structure of a bandwidth adaptive equalization system according to an embodiment of the present invention;

[0038] Figure 5 is a schematic diagram of the structure of a bandwidth adaptive equalization system when a fault occurs according to an embodiment of the present invention;

[0039] Figure 6 is a structural block diagram of a bandwidth adaptive equalization device according to an embodiment of the present invention;

[0040] Figure 7 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0041] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0042] SoC is a complex integrated circuit that integrates multiple functions. It integrates processors, memory, input and output ports and many other systems in a limited space. With the development of technology, the demand for high bandwidth, low latency and balanced bandwidth is more urgent. SoC systems are facing the challenge of bandwidth competition. The bandwidth competition problem is mainly manifested in the competition between multiple processing units, storage units and peripherals in the SoC for limited bus bandwidth and memory resources.

[0043] Specifically, bus bandwidth contention is a phenomenon in which multiple nodes in a computer network or multi-processor system simultaneously initiate access to limited target bandwidth resources, resulting in uneven resource allocation and performance degradation. Figure 1 As shown, when executing a read target request, the node directly accesses the bus and initiates control, the target side responds and returns response data, and the process of executing a write target is similar. However, this method cannot identify the different response data unloading rates of each node. When the target side returns response data at a faster rate with a large bandwidth, the node's response data unloading rate may be insufficient and cannot be unloaded in time, resulting in the bandwidth of the target side being slowed down; and this method can only provide quasi-static bandwidth resources for each node according to the business allocation ratio of the SoC system, and cannot dynamically adjust the node's bandwidth allocation ratio according to changes in the actual business situation of each node and changes in the target bandwidth situation. Among them, the response data unloading rate refers to the speed at which data is read from a storage device (such as a hard disk, solid-state drive, etc.) or written to a storage device in a computer system. Therefore, this method will lead to the following problems:

[0044] (1) When reading data from the target side, a secondary node in the node may occupy the target bus and node bus due to the low response data unloading rate and long data transmission time, resulting in reduced bandwidth utilization of the SoC system.

[0045] (2) When writing data to the target, a secondary node with lower data transmission capacity within the node transmits data at a slower rate, causing the node bus and the target bus to be occupied for too long.

[0046] (3) When the service of a certain secondary node in a node is suspended or fails, the bandwidth of the secondary node will be occupied by other secondary nodes in the node, showing that the bandwidth of the secondary node in the node with suspended or failed service is larger than that of the secondary nodes in other nodes with the same response data unloading rate, and the bandwidth allocation is unbalanced.

[0047] (4) When the target experiences temporary back pressure, the number of requests that have been sent by the node and gathered in the flow control bandwidth allocation unit is large. All nodes compete for the opportunity to send requests, and the bandwidth ratio of the secondary node cannot be guaranteed, resulting in uneven bandwidth allocation.

[0048] (5) Long-term bandwidth competition may lead to unstable SoC system resource allocation and affect system stability.

[0049] Therefore, an embodiment of the present invention provides a bandwidth adaptive balancing method, which executes a corresponding proportion of service requests according to the response data unloading rate of each secondary node, so as to achieve the effect of evenly allocating the bandwidth of each secondary node and ensuring system stability.

[0050] According to an embodiment of the present invention, an embodiment of a bandwidth adaptive equalization method is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0051] In this embodiment, a bandwidth adaptive equalization method is provided, which can be used for desktop computers, notebook computers, servers, etc. Figure 2 is a flow chart of a bandwidth adaptive equalization method according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps:

[0052] Step S201 , monitor the service status of each secondary node under each bandwidth contention node in real time, and classify and cache the service requests sent by each secondary node according to the response data offloading rate, and generate a request cache queue corresponding to each secondary node.

[0053] In the bus bandwidth competition scenario, nodes (i.e., bandwidth competition nodes) refer to different devices or components connected to the same bus, such as CPU, memory, graphics card, storage device, expansion card, etc., and secondary nodes refer to devices or components connected to the main nodes (i.e., bandwidth competition nodes), which usually act as intermediaries between the main nodes and external devices that actually perform data processing and transmission, such as south bridges, north bridges, bus controllers, etc. Among them, each bandwidth competition node corresponds to multiple secondary nodes with different response data unloading rates. The number of secondary nodes corresponding to each bandwidth competition node and the response data unloading rate of each secondary node are set according to actual needs. For example, a certain bandwidth competition node corresponds to four secondary nodes, and the response data unloading rate ratio of these four secondary nodes is 1:2:3:4.

[0054] When monitoring the business status of each secondary node, a unified monitoring module can be set to monitor each secondary node, or a monitoring module can be set for each bandwidth competition node in units of one bandwidth competition node. The monitoring of each monitoring module is not necessarily synchronized, and the working status of each monitoring module can be set separately according to the needs to monitor the business status of each secondary node under each bandwidth competition node. When caching the business requests of each secondary node, the business requests of each secondary node are cached independently, wherein each secondary node corresponds to a different response data unloading rate. When generating a request cache queue, it can be arranged in the order of the time when the business request arrives. The generated request cache queue contains the response data unloading rate information of the corresponding secondary node, and the request cache queue corresponding to each secondary node under each bandwidth competition node can also be generated in units of one bandwidth competition node, that is, the request cache queue also contains the information of the bandwidth competition node where the corresponding secondary node is located. The process of generating the request cache queue of each bandwidth competition node is not necessarily synchronized, and can be set specifically according to the needs.

[0055] Step S202 , generating a target number of traffic tokens corresponding to each secondary node according to the response data unloading rate of each secondary node every first unit time.

[0056] The generation of flow tokens for each secondary node is performed separately, that is, for a target secondary node, a target number of flow tokens corresponding to the response data unloading rate of the target secondary node is generated every first unit time. It is also possible to use a bandwidth competition node as a unit, and generate a target number of flow tokens corresponding to each secondary node every first unit time according to the response data unloading rate ratio of each secondary node under the target bandwidth competition node. The first unit time can be set according to actual needs.

[0057] The flow token generation rate is related to the pre-settings, for example, it is set to generate 3 flow tokens per second. The target number of flow tokens generated by each secondary node every first unit time is also related to the response data unloading rate. For example, if the response data unloading rate ratio of four secondary nodes is 1:2:3:4, then the target number of flow tokens generated by the four secondary nodes every first unit time is also 1:2:3:4.

[0058] Step S203, polling the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time, and when the number of traffic tokens of the target secondary node is sufficient, reading out each service request in the request cache queue corresponding to the target secondary node, and marking each read service request as continuous, generating a node continuous marked request cache queue corresponding to each bandwidth contention node.

[0059] Polling and continuous marking are performed in units of one bandwidth competition node. Polling of each bandwidth competition node can be performed simultaneously. Every second unit time, the request cache queues and the number of traffic tokens corresponding to each secondary node under the target bandwidth competition node are polled in sequence according to the preset order to release the service requests matching the number of traffic tokens until all the secondary nodes under the target bandwidth competition node are polled and then the current polling is terminated. When reading, the service requests in the request cache queues corresponding to each secondary node under the target bandwidth competition node are read out in sequence according to the preset order. After reading all the released service requests of one secondary node, all the released service requests of the next secondary node are read, until the reading of all the released service requests of all secondary nodes under the target bandwidth competition node is completed and the current reading is terminated. When continuous marking is performed, all the read service requests are marked as continuous in the reading order, and the node continuous marking request cache queue corresponding to the target bandwidth competition node is generated in the reading order. By analogy, the node continuous marking request cache queue corresponding to each bandwidth competition node is generated. The second unit time may be set according to actual needs, the target bandwidth competition node is any one of the bandwidth competition nodes, and the target secondary node under the target bandwidth competition node is any one of the secondary nodes under the target bandwidth competition node.

[0060] Step S204, polling the node continuous marking request cache queue corresponding to each bandwidth contention node, reading out the service requests marked as continuous in the node continuous marking request cache queue, and continuously scheduling them to the target side, so that the target side responds to and executes each service request continuously scheduled to the target side.

[0061] The priority of polling each bandwidth competition node can be set in advance according to the demand, and the node continuous marking request cache queue corresponding to each bandwidth competition node is scheduled for service in the order of priority, and the service requests marked as continuous in the node continuous marking request cache queue are continuously scheduled to the target side in order. When scheduling service requests, after scheduling the node continuous marking request cache queue corresponding to one bandwidth competition node, the node continuous marking request cache queue corresponding to the next bandwidth competition node is scheduled. The target side is used to respond to service requests according to the scheduling order and execute the service corresponding to the service request.

[0062] The bandwidth adaptive balancing method provided in this embodiment classifies and caches the service requests of each secondary node obtained by real-time monitoring according to the response data unloading rate, generates a request cache queue corresponding to each secondary node, and generates a target number of traffic tokens corresponding to each secondary node according to the response data unloading rate of each secondary node. When the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out and continuously marked, and a node continuous marking request cache queue corresponding to each bandwidth competition node is generated, so that the service request sending of the secondary node matches the response data unloading rate. Finally, the node continuous marking request cache queue corresponding to each bandwidth competition node is polled, and the service requests marked as continuous in the node continuous marking request cache queue are continuously scheduled to the target side for the target side to respond and execute, thereby realizing balanced allocation of bandwidth to each secondary node, ensuring the orderliness and balance of executing the service requests of each secondary node, and further ensuring the stability of the dynamic operation system.

[0063] In this embodiment, a bandwidth adaptive equalization method is provided, which can be used for desktop computers, notebook computers, servers, etc. Figure 3 is a flow chart of a bandwidth adaptive equalization method according to an embodiment of the present invention. Figure 3 As shown, the process includes the following steps:

[0064] Step S301 , monitor the service status of each secondary node under each bandwidth contention node in real time, and classify and cache the service requests sent by each secondary node according to the response data offloading rate, and generate a request cache queue corresponding to each secondary node.

[0065] For details, please see Figure 2 Step S201 of the illustrated embodiment will not be described in detail here.

[0066] Step S302 : generating a target number of flow tokens corresponding to each secondary node according to the response data unloading rate of each secondary node every first unit time.

[0067] For details, please see Figure 2 Step S202 of the illustrated embodiment will not be described in detail here.

[0068] Step S303: polling the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time.

[0069] Specifically, the above step S303 includes:

[0070] Step S3031, determining the order of each secondary node under each bandwidth contention node.

[0071] Exemplarily, when determining the order of each secondary node under the target bandwidth competition node, each secondary node can be numbered according to the response data unloading rate of each secondary node, for example, numbered in ascending order according to the response data unloading rate, and the order of each secondary node can be determined according to the numbering order of each secondary node.

[0072] Step S3032: Determine the polling order of each secondary node under each bandwidth contention node according to the order of each secondary node under each bandwidth contention node.

[0073] Exemplarily, the polling of each bandwidth competition node can be performed simultaneously. When polling each secondary node under the target bandwidth competition node, the polling is performed in the order of the secondary nodes under the target bandwidth competition node. After polling one secondary node, the next secondary node in the order is polled. And so on, the polling order of each secondary node is determined.

[0074] Step S3033: poll the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time according to the polling order of each secondary node under each bandwidth contention node.

[0075] According to the polling order of each secondary node determined in step S3032, all secondary nodes under the target bandwidth competition node are polled every second unit time. After polling the request cache queue and the number of traffic tokens corresponding to a secondary competition node, the request cache queue and the number of traffic tokens corresponding to the next order secondary node are polled.

[0076] Step S304, when the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out, and each read service request is marked as continuous, and a node continuous marking request cache queue corresponding to each bandwidth competing node is generated.

[0077] Specifically, the above step S304 includes:

[0078] Step S3041, obtaining the number of flow tokens of the request cache queue corresponding to the target secondary node.

[0079] Read each service request in the request cache queue corresponding to the target secondary node, and read the number of flow tokens in the flow token bucket corresponding to the target secondary node.

[0080] Step S3042: releasing the service request in the request cache queue corresponding to the target secondary node according to the number of traffic tokens corresponding to the target secondary node.

[0081] The number of traffic tokens determines the number of business requests released. The correspondence between the number of traffic tokens and the number of business requests released can be set according to actual needs. For example, one traffic token releases one business request. Once the traffic tokens are consumed, no more business requests can be released. In other words, each round of release may not necessarily release all existing business requests in the request cache queue.

[0082] Step S3043, the service requests released in the request cache queues corresponding to the secondary nodes under the bandwidth competition node where the target secondary node is located are continuously marked in the release order, and a node continuously marked request cache queue corresponding to the bandwidth competition node where the target secondary node is located is generated.

[0083] After each round of release is completed, each service request can be continuously marked in the order of release, and each service request can be marked as continuous. Alternatively, each service request can be marked once, and then a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located is generated. In other words, the service requests released by each secondary node under a bandwidth competition node are continuously marked and stored in the same node continuous marking request cache queue.

[0084] Step S305, polling the node continuous marking request cache queue corresponding to each bandwidth competing node, reading out the service requests marked as continuous in the node continuous marking request cache queue, and continuously scheduling them to the target side, so that the target side responds to and executes each service request continuously scheduled to the target side.

[0085] For details, please see Figure 2 Step S204 of the illustrated embodiment will not be described in detail here.

[0086] Optionally, the arbitration right is set during scheduling, and fair RR (Round Robin) arbitration is performed on the non-empty node continuous marking request cache queue during polling to determine the bandwidth competing node that obtains the current arbitration right. Only the bandwidth competing node that obtains the arbitration right can schedule the service request. Then, read out each service request marked as continuous in the node continuous marking request queue corresponding to the bandwidth competing node that obtains the current arbitration right, and continuously schedule each service request marked as continuous to the target side.

[0087] In actual application scenarios, there may be a situation where the service of the secondary node is suspended or fails. When the service of the target secondary node is suspended or fails, the service status of the target secondary node will still be monitored in real time and the request cache queue corresponding to the secondary node will be generated, but the request cache queue corresponding to the target secondary node is empty. Then, when the request cache queues and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node are polled every second unit time, when the request cache queue corresponding to the target secondary node is polled, and the request cache queue corresponding to the target secondary node is empty, jump to the request cache queue corresponding to the secondary node in the next order of the target secondary node. In other words, the secondary node with suspended or failed service also participates in the polling every second unit time, but it will be skipped when the empty request cache queue corresponding to the secondary node with suspended or failed service is polled. It should be noted that this embodiment runs in a dynamic system. During the operation of the dynamic system, the topological changes of the target secondary node (such as secondary node failure or phased suspension of secondary node service) cannot affect the bandwidth of other secondary nodes.

[0088] Based on the above scheme, the present invention generates a corresponding request cache queue and a corresponding target number of traffic tokens according to the response data unloading rate of each secondary node, and releases the service request in the request cache queue through the traffic token, so as to realize the balanced matching of the service request sending and the response data unloading rate of each secondary node. When a certain secondary node bursts with a large number of service requests, the service request of the secondary node is released at a rate corresponding to the bandwidth allocation ratio, so that the total traffic required for releasing the service request of the secondary node matches the bandwidth allocated by the secondary node, so as to avoid that too much data is returned after the service request of the secondary node is processed on the target side and the response data unloading rate of the secondary node is insufficient, resulting in the returned data occupying the target bus for a long time and wasting the bandwidth on the target side. The present invention also continuously marks the service requests released by each secondary node under each bandwidth competition node and uniformly participates in the request scheduling, so as to realize the service status sharing between each secondary node under different bandwidth competition nodes, and ensure that under the dynamic node actual service status and complex link status, such as when some secondary node services are suspended or fail, after the temporary back pressure of the target bus is revoked, and when some secondary nodes burst with a large number of requests, each secondary node can send the service request to the destination side according to the response data unloading rate, so as to ensure the adaptive and balanced sharing of the bandwidth of each secondary node.

[0089] The bandwidth adaptive balancing method provided in this embodiment classifies and caches the service requests of each secondary node obtained by real-time monitoring according to the response data unloading rate, generates a request cache queue corresponding to each secondary node, and generates a target number of traffic tokens corresponding to each secondary node according to the response data unloading rate of each secondary node. When the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out and continuously marked, and a node continuous marking request cache queue corresponding to each bandwidth competition node is generated, so that the service request sending of the secondary node matches the response data unloading rate. Finally, the node continuous marking request cache queue corresponding to each bandwidth competition node is polled, and the service requests marked as continuous in the node continuous marking request cache queue are continuously scheduled to the target side for the target side to respond and execute, thereby realizing balanced allocation of bandwidth to each secondary node, ensuring the orderliness and balance of executing the service requests of each secondary node, and further ensuring the stability of the dynamic operation system.

[0090] As one or more specific application embodiments of the embodiments of the present invention, the optimal implementation scheme or the scheme that the inventor most wants to embody is described below in combination with specific application scenarios.

[0091] Figure 4 is a schematic diagram of the structure of a bandwidth adaptive equalization system according to an embodiment of the present invention. Figure 4As shown, in the bandwidth adaptive balancing system, there are three nodes (corresponding to the aforementioned bandwidth competition nodes), node 0, node 1 and node 2, each node has four secondary nodes, and the four secondary nodes under each node are numbered x1, x2, x3, and x4. The larger the number, the faster the response data unloading rate. The response data unloading rate ratio of the four secondary nodes is 1:2:3:4. Each node corresponds to a node real-time service monitoring unit, a request rate control unit and a request continuity marking unit. The node real-time service monitoring unit is used to monitor the service status of each secondary node under the corresponding bandwidth competition node in real time, and classify and cache the service requests sent by each secondary node according to the response data unloading rate, and generate a request cache queue corresponding to each secondary node. The request rate control unit is used to generate a target number of traffic tokens corresponding to each secondary node according to the response data unloading rate of each secondary node every first unit time, so that the service request issuance rate of the secondary node matches its response data unloading rate, wherein the ratio of the number of traffic tokens generated by the secondary node every first unit time is the same as the ratio of the response data unloading rate, for example, the traffic token bucket of the secondary node x1 generates A traffic tokens in the first unit time, the traffic token bucket of the secondary node x2 generates 2A traffic tokens in the first unit time, the traffic token bucket of the secondary node x3 generates 3A traffic tokens in the first unit time, and the traffic token bucket of the secondary node x4 generates 4A traffic tokens in the first unit time. The request continuous marking unit is used to poll the request cache queues and the number of traffic tokens corresponding to each secondary node under the corresponding bandwidth contention node in the order of number every second unit time, and when the number of traffic tokens of the secondary node is sufficient, read out each service request in the request cache queue corresponding to the secondary node, and after reading all the released service requests of a secondary node, read all the released service requests of the next secondary node in the order, until the reading of the released service requests of all secondary nodes under the target bandwidth contention node is completed, and end this reading. When performing continuous marking, all the read service requests are also marked in the reading order, and a continuous marking request cache queue corresponding to the corresponding bandwidth contention node is generated in the reading order. Exemplarily, the continuous marking starts with the first released business request of the first secondary node being 1 and continues to be 1 until the last released business request of the last secondary node is 0. Specifically, starting from the request cache queue of the first secondary node, the first released business request is marked as 1. When the request cache queue of the last secondary node is polled, the last business request allowed by the traffic token is marked as 0. After the request is read out from the secondary node, it is marked as continuous and cached in the node continuous request cache queue corresponding to the bandwidth competition node where the secondary node is located.

[0092] In the bandwidth adaptive balancing system, a multi-node request continuous marking arbitration unit is also provided, which is used to determine the bandwidth competition node that obtains the current arbitration right, and continuously schedule the requests marked as continuous in the node continuous request cache queue corresponding to the bandwidth competition node to the target side. Exemplarily, the scheduling of each service request in the continuous marking request cache queue is performed for the continuous marking corresponding to the bandwidth competition node that obtains the current arbitration right, and the continuous marking starts from 1 and ends at 0. When the continuous marking is 0, the scheduling of the bandwidth competition node that obtains the current arbitration right is terminated.

[0093] Figure 5 is a schematic diagram of the structure of the bandwidth adaptive equalization system according to an embodiment of the present invention when a fault occurs. Figure 5 As shown, the services of the secondary node x3 of node 0 and the secondary node x4 of node 2 are suspended or fail. At this time, the service status of the secondary node x3 of node 0 and the secondary node x4 of node 2 are still monitored in real time and the request cache queues corresponding to the secondary node x3 of node 0 and the secondary node x4 of node 2 are generated, but the request cache queues corresponding to the secondary node x3 of node 0 and the secondary node x4 of node 2 are empty. Then, when the request cache queues and the number of traffic tokens corresponding to each secondary node are polled every second unit time, when the request cache queues corresponding to the secondary node x3 of node 0 and the secondary node x4 of node 2 are polled, jump to the request cache queue corresponding to the next secondary node in sequence. In other words, the secondary node x3 of node 0 and the secondary node x4 of node 2 also participate in the polling, but the secondary node x3 of node 0 and the secondary node x4 of node 2 will be skipped when they are polled.

[0094] In this embodiment, a bandwidth adaptive equalization device is also provided, which is used to implement the above embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in hardware and software, hardware or software implementation is also possible and conceivable.

[0095] This embodiment provides a bandwidth adaptive equalization device, such as Figure 6 As shown, including:

[0096] The service monitoring module 601 is used to monitor the service status of each secondary node under each bandwidth competition node in real time, and classify and cache the service requests sent by each secondary node according to the response data offloading rate, and generate a request cache queue corresponding to each secondary node;

[0097] A traffic token generation module 602, configured to generate a target number of traffic tokens corresponding to each secondary node according to a response data unloading rate of each secondary node every first unit time;

[0098] The request continuity marking module 603 is used to poll the request cache queue and the number of flow tokens corresponding to each secondary node under each bandwidth contention node every second unit time, and when the number of flow tokens of the target secondary node is sufficient, read out each service request in the request cache queue corresponding to the target secondary node, and mark each read service request as continuous, and generate a node continuous marking request cache queue corresponding to each bandwidth contention node;

[0099] The scheduling module 604 is used to poll the node continuous marking request cache queue corresponding to each bandwidth competing node, read out the service requests marked as continuous in the node continuous marking request cache queue, and continuously schedule them to the target side so that the target side responds and executes each service request continuously scheduled to the target side.

[0100] In an optional implementation, the request continuity marking module is also used to: determine the order of each secondary node under each bandwidth competition node; determine the polling order of each secondary node under each bandwidth competition node according to the order of each secondary node under each bandwidth competition node; and poll the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time according to the polling order of each secondary node under each bandwidth competition node.

[0101] In an optional embodiment, the request continuous marking module is also used to: obtain the number of traffic tokens of the request cache queue corresponding to the target secondary node; release the business requests in the request cache queue corresponding to the target secondary node according to the number of traffic tokens corresponding to the target secondary node; continuously mark the business requests released in the request cache queue corresponding to each secondary node under the bandwidth competition node where the target secondary node is located in a release order, and generate a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located.

[0102] In an optional implementation, the scheduling module is further used to: determine a bandwidth competing node that obtains current arbitration rights; and continuously schedule service requests marked as continuous in a node continuous marking request cache queue corresponding to the bandwidth competing node that obtains current arbitration rights to the target side.

[0103] In an optional implementation, when the service of the target secondary node is suspended or fails, the request cache queue corresponding to the target secondary node is empty.

[0104] In an optional embodiment, the request continuity marking module is also used to: when the request cache queue corresponding to the target secondary node is polled and the request cache queue corresponding to the target secondary node is empty, jump to the request cache queue corresponding to the next secondary node in sequence of the target secondary node.

[0105] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.

[0106] The bandwidth adaptive equalization device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.

[0107] The embodiment of the present invention also provides a computer device having the above Figure 6 The bandwidth adaptive equalization device shown.

[0108] See also Figure 7 , Figure 7 is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Figure 7 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.

[0109] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.

[0110] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.

[0111] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0112] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.

[0113] The computer device also includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Figure 7 The example of connecting through bus is taken in the following.

[0114] The input device 30 can receive input digital or character information, and generate key signal input related to the user settings and function control of the computer device, such as a touch screen, a keypad, a mouse, a track pad, a touch pad, an indicator bar, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 may include a display device, an auxiliary lighting device (e.g., an LED) and a tactile feedback device (e.g., a vibration motor), etc. The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display and a plasma display. In some optional embodiments, the display device can be a touch screen.

[0115] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.

[0116] A part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the existence of the computer program instruction in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc., and accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium accessible to the computer.

[0117] Although the embodiments of the present invention are described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations are all within the scope defined by the invention.

Claims

1. A bandwidth adaptive equalization method, characterized in that: The method comprises: Monitor the service status of each secondary node under each bandwidth competition node in real time, and cache the service requests sent by each secondary node according to the response data offloading rate, and generate a request cache queue corresponding to each secondary node; Generate a target number of flow tokens corresponding to each secondary node according to a response data unloading rate of each secondary node every first unit time; Poll the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node every second unit time, and when the number of traffic tokens of the target secondary node is sufficient, read out each service request in the request cache queue corresponding to the target secondary node, and mark each read service request as continuous, and generate a node continuous marked request cache queue corresponding to each bandwidth contention node; Poll the node continuous marking request cache queue corresponding to each bandwidth competing node, read out the service requests marked as continuous in the node continuous marking request cache queue, and continuously schedule them to the target side so that the target side can respond and execute each service request continuously scheduled to the target side.

2. The method according to claim 1, characterized in that The polling of the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time includes: Determine the order of each secondary node under each bandwidth competition node; According to the order of each secondary node under each bandwidth competition node, determine the polling order of each secondary node under each bandwidth competition node; According to the polling order of each secondary node under each bandwidth contention node, the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth contention node are polled every second unit time.

3. The method according to claim 2, characterized in that When the number of traffic tokens of the target secondary node is sufficient, each service request in the request cache queue corresponding to the target secondary node is read out, and each read service request is marked as continuous, and a node continuous marked request cache queue corresponding to each bandwidth competition node is generated, including: Get the number of traffic tokens in the request cache queue corresponding to the target secondary node; According to the number of traffic tokens corresponding to the target secondary node, the service request in the request cache queue corresponding to the target secondary node is released; The service requests released in the request cache queues corresponding to the secondary nodes under the bandwidth competition node where the target secondary node is located are continuously marked in the release order to generate a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located.

4. The method according to claim 1, characterized in that The method further comprises: Determine the bandwidth competing node that obtains the current arbitration right; The service requests marked as continuous in the node continuous marking request cache queue corresponding to the bandwidth competition node that obtains the current arbitration right are continuously scheduled to the target side.

5. The method according to any one of claims 2 to 4, characterized in that: When the service of the target secondary node is suspended or fails, the request cache queue corresponding to the target secondary node is empty.

6. The method according to claim 5, characterized in that The polling of the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time includes: When the request cache queue corresponding to the target secondary node is polled and the request cache queue corresponding to the target secondary node is empty, jump to the request cache queue corresponding to the secondary node next in order to the target secondary node.

7. A bandwidth adaptive equalization device, characterized in that: The device comprises: The service monitoring module is used to monitor the service status of each secondary node under each bandwidth competition node in real time, and classify and cache the service requests sent by each secondary node according to the response data unloading rate, and generate a request cache queue corresponding to each secondary node; A flow token generation module, configured to generate a target number of flow tokens corresponding to each secondary node according to a response data unloading rate of each secondary node every first unit time; A request continuity marking module is used to poll the request cache queue and the number of flow tokens corresponding to each secondary node under each bandwidth contention node every second unit time, and when the number of flow tokens of the target secondary node is sufficient, read out each service request in the request cache queue corresponding to the target secondary node, and mark each read service request as continuous, and generate a node continuous marking request cache queue corresponding to each bandwidth contention node; The scheduling module is used to poll the node continuous marking request cache queue corresponding to each bandwidth competing node, read out the service requests marked as continuous in the continuous marking request cache queue of each node, and continuously schedule them to the target side so that the target side responds and executes each service request continuously scheduled to the target side.

8. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the bandwidth adaptive equalization method according to any one of claims 1 to 6 by executing the computer instructions.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the bandwidth adaptive equalization method according to any one of claims 1 to 6.

10. A computer program product, characterized in that The method comprises computer instructions, wherein the computer instructions are used to enable a computer to execute the bandwidth adaptive equalization method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Data distribution method and device based on articulated naturality web

    CN115334364A

  • Data source calling load balancing method and device, electronic equipment and medium

    CN118012608A

  • Adaptive Token Cache Management

    US20180139192A1

Cited By

  • Resource adjustment method, electronic device, storage medium and program product

    CN120711017A

  • Adaptive bandwidth equalization method and apparatus, device, storage medium and program product

    WO2026082072A1