Bandwidth Adaptive Equalization Method, Apparatus, Device, Storage Medium and Program Product

By real-time monitoring and classification cache of service requests in the SoC system, and generating traffic tokens based on the response data offload rate, the bandwidth competition problem is solved, and the bandwidth adaptive equalization and system stability are achieved.

CN119341916BActive Publication Date: 2025-06-27WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411452705.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-17
Publication Date
2025-06-27
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 service status of secondary nodes under each bandwidth competition node in real time, caching service requests are classified, generating a request cache queue, and generating traffic tokens based on the response data offload rate to achieve adaptive equalization of bandwidth.

Benefits of technology

The bandwidth of each secondary node is balanced, the orderliness and balance of service requests is ensured, and the stability of the dynamic operating system is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341916B_ABST
    Figure CN119341916B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of integrated circuit technology, and discloses a bandwidth adaptive equalization method, device, equipment, storage medium and program product. The method includes: monitoring the service status of each secondary node, classifying and caching according to the response data offloading rate, and generating a request cache queue; generating a target number of traffic tokens corresponding to each secondary node according to the response data offloading rate every first unit time; polling the request cache queue and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time, generating a node continuous marking request cache queue corresponding to each bandwidth competition node, and then continuously scheduling the service requests of the node continuous marking request cache queue corresponding to each bandwidth competition node to the target side for the target side to respond and execute. The above solution can always evenly allocate the bandwidth of each secondary node during the dynamic operation of the system, ensuring the stability of the bandwidth performance of the system.
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 particularly to a bandwidth adaptive equalization method, device, equipment, storage medium and program product. Background Art

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

[0003] Therefore, there is an urgent need for a bandwidth adaptive equalization method to evenly allocate the 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, the purpose of the present invention is to provide a bandwidth adaptive equalization method, device, equipment, storage medium and program product to solve the problem of uneven allocation of bandwidth resources for each bandwidth competition node.

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

[0006] Real-time monitor the service status of each secondary node under each bandwidth competition node, and classify and cache the service requests sent by each secondary node according to the response data unloading rate to generate a request cache queue corresponding to each secondary node;

[0007] 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;

[0008] 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, read out each service request in the request cache queue corresponding to the target secondary node, and mark each read service request as continuous to generate a node continuous mark request cache queue corresponding to each bandwidth competition node;

[0009] Poll the node consecutive label request cache queues corresponding to each bandwidth competition node, read out the service requests labeled as consecutive in each node consecutive label request cache queue, and continuously schedule them to the target side for the target side to respond to and execute each service request continuously scheduled to the target side.

[0010] In an alternative embodiment, polling the request cache queues and traffic token quantities corresponding to each secondary node under each bandwidth competition 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] Poll the request cache queues and traffic token quantities 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.

[0014] In an alternative embodiment, when the traffic token quantity of the target secondary node is sufficient, read out each service request in the request cache queue corresponding to the target secondary node, label each read service request as consecutive, and generate a node consecutive label request cache queue corresponding to each bandwidth competition node, including:

[0015] Obtain the traffic token quantity of the request cache queue corresponding to the target secondary node;

[0016] According to the traffic token quantity corresponding to the target secondary node, release the service requests in the request cache queue corresponding to the target secondary node;

[0017] Continuously label the service requests released in the request cache queues corresponding to each secondary node under the bandwidth competition node where the target secondary node is located in the release order, and generate a node consecutive label request cache queue corresponding to the bandwidth competition node where the target secondary node is located.

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

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

[0020] Continuously schedule the service requests labeled as consecutive in the node consecutive label request cache queue corresponding to the bandwidth competition node that obtains the current arbitration right to the target side.

[0021] In an alternative embodiment, when the service of the target secondary node is suspended or a failure occurs, the request cache queue corresponding to the target secondary node is empty.

[0022] In an alternative embodiment, polling the request cache queues and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit time includes:

[0023] When polling the request cache queue corresponding to the target secondary node 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.

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

[0025] A service monitoring module, configured to monitor the service status of each secondary node under each bandwidth competition node in real time, 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 traffic token generation module, configured to generate a target number of traffic tokens corresponding to each secondary node every first unit time according to the response data unloading rate of each secondary node;

[0027] A request continuous marking module, configured to poll the request cache queues 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, 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 competition node; A scheduling module, configured to poll the node continuous marking request cache queues 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 for the target side to 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, including: a memory and a processor, which are communicatively connected to each other. The memory stores computer instructions, and the processor executes the computer instructions to execute the bandwidth adaptive equalization method according to the first aspect or any corresponding embodiment thereof.

[0029] In a fourth aspect, the present invention provides a computer-readable storage medium, on which computer instructions are stored, and the computer instructions are used to cause a computer to execute the bandwidth adaptive equalization method according to the first aspect or any corresponding embodiment thereof.

[0030] Fifth aspect, the present invention provides a computer program product, including computer instructions for causing a computer to execute the bandwidth adaptive equalization method according to the first aspect or any corresponding embodiment thereof as described above.

[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 offloading 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 offloading rate of each secondary node. When the number of traffic tokens of the target secondary node is sufficient, reads out each service request in the request cache queue corresponding to the target secondary node and performs continuous marking to generate a node continuous marking request cache queue corresponding to each bandwidth competition node, so that the sending of service requests by the secondary node matches the response data offloading rate. Finally, polls the node continuous marking request cache queue corresponding to each bandwidth competition node, and continuously schedules the service requests marked as continuous in the node continuous marking request cache queue to the target side for the target side to respond and execute, realizing the balanced allocation of bandwidth for each secondary node, ensuring the orderliness and balance of executing the service requests of each secondary node, and further ensuring the always stability of the dynamic operation system. Description of the Drawings

[0033] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the following will briefly introduce the drawings required for use in the description of the specific embodiments or the prior art. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.

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

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

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

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

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

[0039] Figure 6 It 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. Specific Embodiments

[0041] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0042] An SoC is a complex integrated circuit integrating multiple functions, which integrates many systems such as a processor, a memory, and input / output ports in a limited space. With the development of technology, the demand for high bandwidth, low latency, and balanced bandwidth is more urgent, and the SoC system is facing the challenge of bandwidth competition. The bandwidth competition problem is mainly manifested in the competition for limited bus bandwidth and memory resources among multiple processing units, storage units, and peripherals within the SoC.

[0043] Specifically, bus bandwidth competition is a phenomenon in a computer network or a multi-processor system where multiple nodes simultaneously initiate access to limited target bandwidth resources, resulting in uneven resource allocation and performance degradation. The multi-node traffic bandwidth control based on on-chip interconnection routing in the related art is as Figure 1 shown. When executing a read target request, the node directly accesses the bus and initiates control, and the target side responds and returns the response data. 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 high bandwidth and relatively fast rate, the response data unloading rate of the node may not be sufficient to unload it 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 service allocation ratio of the SoC system, and cannot dynamically adjust the bandwidth allocation ratio of the nodes according to the actual service conditions of each node and the change of the target bandwidth situation. Among them, the response data unloading rate refers to the speed of reading data from a storage device (such as a hard disk, a solid-state drive, etc.) or writing data to a storage device in a computer system. Therefore, this method will cause the following problems:

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

[0045] (2) When writing data to the target, a secondary node with relatively low data transmission capacity within the node transmits data at a slower rate, resulting in the node bus and the target bus being occupied for too long.

[0046] (3) When a secondary node within the node suspends its service or fails, the bandwidth of this secondary node will be occupied by other secondary nodes within the node, showing that the secondary nodes within the node with service suspension or failure have a larger bandwidth than the secondary nodes with the same response data offloading rate in other nodes, and the bandwidth allocation is unbalanced.

[0047] (4) When the target has temporary backpressure, there are many requests that have been sent by the nodes and aggregated in the flow control bandwidth allocation unit. All nodes compete for the opportunity to send requests, and the bandwidth ratio of the secondary nodes cannot be guaranteed, resulting in unbalanced bandwidth allocation.

[0048] (5) Long-term bandwidth competition may lead to unstable resource allocation in the SoC system, affecting system stability.

[0049] Therefore, the embodiment of the present invention provides a bandwidth adaptive equalization method, which executes corresponding proportions of service requests according to the response data offloading rates 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 the 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 the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in a different order than here.

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

[0052] Step S201, 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.

[0053] In a bus bandwidth competition scenario, nodes (i.e., bandwidth competition nodes) refer to different devices or components connected to the same bus, such as CPUs, memories, graphics cards, storage devices, expansion cards, etc. Secondary nodes refer to devices or components connected between primary nodes (i.e., bandwidth competition nodes), usually acting as intermediaries between primary 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 offloading rates. The number of secondary nodes corresponding to each bandwidth competition node and the response data offloading 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 offloading rate ratio of these four secondary nodes is 1:2:3:4.

[0054] When monitoring the service 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. The monitoring of each monitoring module does not necessarily need to be synchronized, and the working status of each monitoring module can be set according to requirements to monitor the service status of each secondary node under each bandwidth competition node respectively. When caching the service requests of each secondary node, the service requests of each secondary node are cached independently. Among them, each secondary node corresponds to a different response data offloading rate. When generating a request cache queue, it can be arranged in the order of the arrival time of the service requests. The generated request cache queue contains the response data offloading rate information of the corresponding secondary node, and a request cache queue corresponding to each secondary node under each bandwidth competition node can also be generated in units of a 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 request cache queues for each bandwidth competition node does not necessarily need to be synchronized, and it can be specifically set according to requirements.

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

[0056] Generating traffic tokens for each secondary node is carried out separately. That is to say, for a target secondary node, a target number of traffic tokens corresponding to the response data offloading rate of the target secondary node are generated every first unit of time. It is also possible to generate a target number of traffic tokens corresponding to each secondary node in units of a bandwidth competition node every first unit of time according to the response data offloading rate ratio of each secondary node under the target bandwidth competition node. Among them, the first unit of time can be set according to actual needs.

[0057] The generation rate of traffic tokens is related to the preset settings. For example, it is set to generate 3 traffic tokens per second. Moreover, the target number of traffic tokens generated by each secondary node every first unit of time is also related to the response data offloading rate. For example, if the response data offloading rate ratios of four secondary nodes are 1:2:3:4, then the target number of traffic tokens generated by the four secondary nodes every first unit of time also has a ratio of 1:2:3:4.

[0058] Step S203: Poll the request cache queues and the number of traffic tokens corresponding to each secondary node under each bandwidth competition node every second unit of time. 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 the read service requests as consecutive, generating a node consecutive mark request cache queue corresponding to each bandwidth competition node.

[0059] Polling and consecutive marking are carried out in units of one bandwidth competition node. The polling of each bandwidth competition node can be carried out simultaneously. Every second unit of time, poll the request cache queues and the number of traffic tokens corresponding to each secondary node under the target bandwidth competition node in a preset order to release the service requests that match the number of traffic tokens until all secondary nodes under the target bandwidth competition node have been polled, and then end this polling. When reading, read out each service request in the request cache queue corresponding to each secondary node under the target bandwidth competition node in a preset order. After reading all the released service requests of one secondary node, then read all the released service requests of the secondary node in the next order until all the released service requests of all secondary nodes under the target bandwidth competition node have been read, and then end this reading. When carrying out consecutive marking, also mark all the read service requests as consecutive in the reading order, and generate a node consecutive mark request cache queue corresponding to the target bandwidth competition node in the reading order, and so on, generating a node consecutive mark request cache queue corresponding to each bandwidth competition node. Among them, the second unit of time can be set according to actual needs. The target bandwidth competition node is any one of each bandwidth competition node, and the target secondary node under the target bandwidth competition node is any one of each secondary node under the target bandwidth competition node.

[0060] Step S204: Poll the node consecutive mark request cache queues corresponding to each bandwidth competition node, read out the service requests marked as consecutive in each node consecutive mark request cache queue, and continuously schedule them to the target side for the target side to respond to and execute 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 requirements, and the service scheduling is performed on the node consecutive marking request cache queues corresponding to each bandwidth competition node in the order of priority. The service requests marked as consecutive in the node consecutive marking request cache queue are continuously scheduled to the target side in sequence. When performing service request scheduling, after scheduling the node consecutive marking request cache queue corresponding to one bandwidth competition node, the node consecutive 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 services corresponding to the service requests.

[0062] The bandwidth adaptive equalization 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 offloading 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 offloading 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 to generate a node consecutive marking request cache queue corresponding to each bandwidth competition node, so that the service request sending of the secondary node matches the response data offloading rate. Finally, the node consecutive marking request cache queues corresponding to each bandwidth competition node are polled, and the service requests marked as consecutive in the node consecutive marking request cache queue are continuously scheduled to the target side for the target side to respond and execute, realizing the balanced allocation of the bandwidth of 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 at all times.

[0063] In this embodiment, a bandwidth adaptive equalization method is provided, which can be used in desktop computers, laptop computers, servers, etc. Figure 3 It is a flowchart of the bandwidth adaptive equalization method according to an embodiment of the present invention, as Figure 3 shown, and this process includes the following steps:

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

[0065] For details, please refer to Figure 2 Step S201 of the embodiment shown, which will not be elaborated here.

[0066] Step S302, generate a target number of traffic tokens corresponding to each secondary node every first unit of time according to the response data offloading rate of each secondary node.

[0067] For details, please refer toFigure 2 Step S202 of the illustrated embodiment will not be elaborated herein.

[0068] Step S303: Poll the request cache queues and the traffic token quantities corresponding to each secondary node under each bandwidth competition node every second unit time.

[0069] Specifically, the above step S303 includes:

[0070] Step S3031: Determine the order of each secondary node under each bandwidth competition node.

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

[0072] Step S3032: 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.

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

[0074] Step S3033: Poll the request cache queues and the traffic token quantities 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.

[0075] Poll all the secondary nodes under the target bandwidth competition node once every second unit time according to the polling order of each secondary node determined in step S3032. After polling the request cache queue and the traffic token quantity corresponding to one secondary competition node, the request cache queue and the traffic token quantity corresponding to the next sequential secondary node are polled.

[0076] Step S304: When the traffic token quantity 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 the read out each service request as continuous to generate a node continuous marking request cache queue corresponding to each bandwidth competition node.

[0077] Specifically, the above step S304 includes:

[0078] Step S3041: Obtain the number of traffic tokens in 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 traffic tokens in the traffic token bucket corresponding to the target secondary node.

[0080] Step S3042: Release the service 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.

[0081] The number of traffic tokens determines the number of service requests to be released. The corresponding relationship between the number of traffic tokens and the number of service requests to be released can be set according to actual needs. For example, one traffic token releases one service request. When the traffic tokens are consumed, no more service requests can be released, that is, not all existing service requests in the request cache queue may be released in each round of release.

[0082] Step S3043: Continuously mark the service requests released in the request cache queues corresponding to each secondary node under the bandwidth competition node where the target secondary node is located in the order of release, and generate a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located.

[0083] The service requests can be continuously marked in the order of release after each round of release to make each service request continuous, or each service request can be marked once it is released, so as to generate a node continuous marking request cache queue corresponding to the bandwidth competition node where the target secondary node is located. That is, 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: Poll the node continuous marking request cache queues 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 for the target side to respond to and execute each service request continuously scheduled to the target side.

[0085] For details, please refer to Figure 2 Step S204 of the embodiment shown, which will not be elaborated here.

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

[0087] In an actual application scenario, there may be a situation where a secondary node has its service suspended or fails. When the service of the target secondary node is suspended or fails, the service status of the target secondary node is still monitored in real time and a request cache queue corresponding to this secondary node is generated. However, the request cache queue corresponding to the target secondary node is empty. Then, when polling the request cache queues and traffic token quantities corresponding to each secondary node under each bandwidth competition node every second unit time, when polling the request cache queue corresponding to the target secondary node and the request cache queue corresponding to the target secondary node is empty, it jumps to the request cache queue corresponding to the secondary node in the next sequence of the target secondary node. That is to say, the secondary node with its service suspended or failed also participates in the polling every second unit time, but it will be skipped when polling the empty request cache queue corresponding to the secondary node with its service suspended or failed. It should be noted that this embodiment runs in a dynamic system. During the operation of the dynamic system, the topology change of the target secondary node (such as secondary node failure or periodic suspension of the secondary node service) cannot affect the bandwidth of other secondary nodes.

[0088] Based on the above solution, the present invention generates corresponding request cache queues and corresponding target numbers of traffic tokens according to the response data unloading rates of each secondary node, and releases the service requests in the request cache queues through the traffic tokens, so as to achieve balanced matching of the service request sending and response data unloading rates of each secondary node. When a large number of service requests suddenly occur at a certain secondary node, the service requests of this secondary node are released at a rate corresponding to the bandwidth allocation ratio, so that the total traffic required to release the service requests of this secondary node matches the bandwidth allocated to this secondary node, avoiding excessive data returned after processing the service requests of this secondary node on the target side while 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 of 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 request scheduling, realizing the sharing of service status among each secondary node under different bandwidth competition nodes, ensuring that under dynamic node actual service status and complex link status, such as when some secondary nodes suspend services or fail, after the temporary backpressure of the target bus is revoked, or when some secondary nodes suddenly have a large number of requests, each secondary node can send service requests to the destination side according to the response data unloading rate, ensuring the balanced and adaptive sharing of the bandwidth of each secondary node.

[0089] The bandwidth adaptive and balanced 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 request cache queues corresponding to each secondary node, and generates target numbers of traffic tokens corresponding to each secondary node according to the response data unloading rates of each secondary node. When the number of traffic tokens of the target secondary node is sufficient, reads out each service request in the request cache queue corresponding to the target secondary node and performs continuous marking to generate a node continuous marking request cache queue corresponding to each bandwidth competition node, so that the service request sending of the secondary node matches the response data unloading rate. Finally, polls the node continuous marking request cache queues corresponding to each bandwidth competition node, and continuously schedules the service requests marked as continuous in the node continuous marking request cache queue to the target side for the target side to respond and execute, realizing the balanced allocation of the bandwidth of each secondary node, ensuring the orderliness and balance of executing the service requests of each secondary node, and further ensuring the always stability of the dynamically running system.

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

[0091] Figure 4 is a schematic structural diagram of a bandwidth adaptive and balanced system according to an embodiment of the present invention, as Figure 4As shown, in this bandwidth adaptive equalization system, there are three nodes (corresponding to the aforementioned bandwidth competition nodes), namely Node 0, Node 1, and Node 2. Each node has four secondary nodes below it. The numbers corresponding to the four secondary nodes under each node are x1, x2, x3, and x4. The larger the number, the faster the response data offloading rate. The ratio of the response data offloading rates 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 continuous 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 offloading rate, generating 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 every first unit of time according to the response data offloading rate of each secondary node, so that the service request sending rate of the secondary node matches its response data offloading rate. Among them, the ratio of the number of traffic tokens generated by the secondary node every first unit of time is the same as the ratio of the response data offloading rate. For example, the number of traffic tokens generated by the traffic token bucket of secondary node x1 in the first unit of time is A, the number of traffic tokens generated by the traffic token bucket of secondary node x2 in the first unit of time is 2A, the number of traffic tokens generated by the traffic token bucket of secondary node x3 in the first unit of time is 3A, and the number of traffic tokens generated by the traffic token bucket of secondary node x4 in the first unit of time is 4A. The request continuous marking unit is used to poll the request cache queue and the number of traffic tokens corresponding to each secondary node under the corresponding bandwidth competition node in order every second unit of time. When the number of traffic tokens of the secondary node is sufficient, it reads out each service request in the request cache queue corresponding to the secondary node. After reading all the released service requests of one secondary node, it reads all the released service requests of the next sequential secondary node until all the released service requests of all secondary nodes under the target bandwidth competition node are read and this read ends. When performing continuous marking, it also marks all the read service requests in the reading order and generates a continuous marking request cache queue corresponding to the corresponding bandwidth competition node in the reading order. Exemplarily, the continuous marking starts from 1 for the first released service request of the first secondary node and continues to be 1 until the last released service request of the last secondary node ends at 0. Specifically, starting from the request cache queue of the first secondary node, the first released service request is marked as 1. When polling the request cache queue of the last secondary node, the last service request allowed to pass by the traffic token is marked as 0. After reading the request 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 this bandwidth adaptive equalization system, a multi-node request continuous marking arbitration unit is further 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, for the continuous marking corresponding to the bandwidth competition node that obtains the current arbitration right, each service request in the continuous marking request cache queue is scheduled. 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 ends.

[0093] Figure 5 It is a schematic structural diagram when the bandwidth adaptive equalization system according to an embodiment of the present invention fails. As Figure 5 shown, the secondary node x3 of node 0 and the secondary node x4 of node 2 suspend services or fail. At this time, the service status of the secondary node x3 of node 0 and the secondary node x4 of node 2 is still monitored in real time, and request cache queues corresponding to the secondary node x3 of node 0 and the secondary node x4 of node 2 are generated. However, 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 polling the request cache queues and the number of traffic tokens corresponding to each secondary node every second unit time, when polling the request cache queues corresponding to the secondary node x3 of node 0 and the secondary node x4 of node 2, it jumps to the request cache queue corresponding to the next sequential secondary node. That is to say, the secondary node x3 of node 0 and the secondary node x4 of node 2 also participate in the polling, but when polling, the secondary node x3 of node 0 and the secondary node x4 of node 2 will be skipped.

[0094] In this embodiment, a bandwidth adaptive equalization device is further provided. This device is used to implement the above embodiments and preferred implementation manners, and those that have been described will not be repeated. As used hereinafter, the term "module" can be a combination of software and / or hardware that can achieve 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 contemplated.

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

[0096] A service monitoring module 601, which is used to monitor the service status of each secondary node under each bandwidth competition node in real time, 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] The traffic token generation module 602 is used to generate a target number of traffic tokens corresponding to each secondary node every first unit of time according to the response data unloading rate of each secondary node;

[0098] The request continuous marking module 603 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 of time. 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, generating a node continuous marking request cache queue corresponding to each bandwidth competition node;

[0099] The scheduling module 604 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 for the target side to respond to and execute each service request continuously scheduled to the target side.

[0100] In an optional implementation manner, the request continuous marking module is further 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 of time according to the polling order of each secondary node under each bandwidth competition node.

[0101] In an optional implementation manner, the request continuous marking module is further used to: obtain the number of traffic tokens in the request cache queue corresponding to the target secondary node; release the service 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; and continuously mark the released service requests in the request cache queues corresponding to each secondary node under the bandwidth competition node where the target secondary node is located in the release order, generating 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 manner, the scheduling module is further used to: determine the bandwidth competition node that obtains the current arbitration right; and continuously schedule 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 to the target side.

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

[0104] In an alternative embodiment, the request continuous marking module is further configured to: when polling the request cache queue corresponding to the target secondary node 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 sequence of the target secondary node.

[0105] The further function descriptions of the above-mentioned various modules and units are the same as those in the corresponding embodiments above, and will not be elaborated here.

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

[0107] An embodiment of the present invention further provides a computer device having the above-mentioned Figure 6 shown bandwidth adaptive equalization device.

[0108] Please refer to Figure 7 , Figure 7 which is a schematic structural diagram of a computer device provided by an alternative embodiment of the present invention. As shown in Figure 7 , the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including a high-speed interface and a low-speed interface. Each component communicates with each other using different buses and can be installed on a common motherboard or installed in other ways as needed. The processor can process instructions executed within the computer device, including instructions stored in the memory or on the memory to display graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some alternative 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 (such as a server array, a set of blade servers, or a multi-processor system). Figure 7 Taking one processor 10 as an example in

[0109] The processor 10 can be a central processor, a network processor, or a combination thereof. Among them, the processor 10 can further include a hardware chip. The above-mentioned hardware chip can be an application specific integrated circuit, a programmable logic device, or a combination thereof. The above-mentioned programmable logic device can be a complex programmable logic device, a field programmable gate array, a general array logic, or any combination thereof.

[0110] Among them, 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 embodiments.

[0111] The memory 20 may include a program storage area and a data storage area. Among them, the program storage area may store an operating system and application programs 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-transitory memory, such as at least one magnetic disk storage device, a flash memory device, or other non-transitory solid-state storage devices. In some alternative embodiments, the memory 20 may optionally include a memory remotely disposed relative to the processor 10, and these remote memories may be connected to the computer device through a network. Examples of the above network include but are not limited to the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.

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

[0113] The computer device further 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 through a bus or other means. Figure 7 Taking connection through a bus as an example.

[0114] The input device 30 may receive input digital or character information, and generate key signal inputs related to the user settings and function controls of the computer device, such as a touch screen, a keypad, a mouse, a trackpad, a touchpad, a pointing stick, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 may include a display device, an auxiliary lighting device (for example, an LED), and a haptic feedback device (for example, a vibration motor), etc. The above display device includes but is not limited to a liquid crystal display, a light-emitting diode, a display, and a plasma display. In some alternative embodiments, the display device may be a touch screen.

[0115] Embodiments of the present invention also provide a computer-readable storage medium. The method according to the embodiments of the present invention can be implemented in hardware, firmware, or be implemented as computer code that can be recorded on a storage medium, or be implemented as computer code that is originally stored in a remote storage medium or a non-transitory machine-readable storage medium and downloaded through a network and will be stored in a local storage medium, so that the method described herein can be stored as 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 memory, a random access memory, a flash memory, a hard disk, or a solid-state drive, 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 the computer, the processor, or the hardware, the method shown in the above embodiments is implemented.

[0116] A part of the present invention can be applied as a computer program product, for example, computer program instructions. When executed by a computer, through the operation of the computer, the method and / or technical solution according to the present invention can be invoked or provided. Those skilled in the art should be able to understand that the forms of existence of computer program instructions in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are 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. Herein, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible by the computer.

[0117] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations all fall within the scope defined by the present 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 continuous 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