Reconfigurable dynamic bandwidth allocation method and system
By designing bandwidth detection, analysis, policy update and allocation engines, the problem of unreasonable bandwidth allocation in the existing technology is solved, efficient and flexible dynamic bandwidth allocation is achieved, adapting to different usage scenarios, and improving system performance.
Patent Information
- Application Number
- CN202510724347.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-30
- Publication Date
- 2025-08-15
AI Technical Summary
The existing dynamic bandwidth allocation system cannot be dynamically updated, resulting in unreasonable bandwidth allocation and inability to adapt to changes in different usage scenarios. Especially in high-throughput data processing scenarios, the data rates of each processor do not match the data processing rate, and the resource allocation effect is poor.
A bandwidth detection, analysis, policy update and allocation engine is designed. By statistically and normalizing the instantaneous and average bandwidth of each channel, priority orchestration is used to use the Round-Robin scheduling logic algorithm, and dynamic bandwidth allocation is performed according to the parameters {type[i], level[i], rank[i], scale[i]} to achieve system flexibility and efficiency.
It improves the efficiency of the system in different usage scenarios, realizes the optimization of bandwidth allocation, improves the flexibility and versatility of the system, can adapt to changes in different scenarios, prevents system blockage, and improves the overall bandwidth utilization rate.
Smart Images

Figure CN120499008A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer technology, and in particular to a reconfigurable dynamic bandwidth allocation method and system. Background Art
[0002] In high-throughput data processing scenarios such as scientific computing, big data, and artificial intelligence computing, to fully utilize the data processing capabilities of each module in the system, it is required that the data rate obtained by each processor matches the data processing rate, while the total system bandwidth is constant, thereby ensuring maximum resource allocation. To achieve this goal, it is necessary to introduce a corresponding bandwidth allocation mechanism into the system and design corresponding modules to implement it. Since usage scenarios are generally not fixed and are constantly changing during operation, this poses a challenge to the system's bandwidth allocation.
[0003] Existing dynamic bandwidth allocation systems utilize relatively simple technologies and lack the ability to dynamically update, resulting in flexibility issues. These systems are typically used in communications systems, such as optical networks and the internet. Few mature technical solutions exist for bandwidth allocation within processors. Existing systems also suffer from irrational bandwidth allocation, with relatively fixed bandwidths across various components and an inability to dynamically adjust them.
[0004] Based on the above reasons, it is particularly important to study and design a dynamic bandwidth allocation system, and the introduction of reconfigurable design makes the system more intelligent and more efficient. Summary of the Invention
[0005] To address the above-mentioned issues and the ever-increasing demand for data bandwidth, the present invention aims to provide a reconfigurable dynamic bandwidth allocation system and method. By designing a dedicated transmission load detection engine, analysis engine, policy update engine, and bandwidth allocation engine in the system, each component cooperates with each other to achieve optimal bandwidth allocation.
[0006] To achieve the above object, the present invention provides a reconfigurable dynamic bandwidth allocation method, which specifically includes:
[0007] Step S1: A statistical mechanism is set up in the bandwidth detection engine to collect statistics on the instantaneous bandwidth and average bandwidth of each channel, and the statistical results of the instantaneous bandwidth and average bandwidth are normalized and transmitted to the bandwidth analysis engine in real time;
[0008] Step S2: After receiving the statistics of instantaneous bandwidth and average bandwidth, the bandwidth analysis engine compares and analyzes the instantaneous bandwidth and average bandwidth of each channel in real time, and arranges the priority of each channel according to the Round-Robin scheduling logic algorithm strategy;
[0009] Step S3: The bandwidth analysis engine sends the analysis results to the policy update engine. The policy update engine collects and stores the data of each channel and sets a set of parameters {type[i], level[i], rank[i], scale[i]} for each channel within the policy update engine, where type[i] represents the bandwidth requirement type of the corresponding channel, level[i] represents the level of the bandwidth requirement of the corresponding channel, rank[i] represents the priority of the corresponding channel, and scale[i] represents the bandwidth scaling factor of the corresponding channel. The policy update engine then learns and updates the policy based on the collected analysis results.
[0010] Step S4: The bandwidth allocation engine receives the allocation policy from the policy update engine and directly performs dynamic bandwidth allocation on each path according to the settings of the parameters {type[i], level[i], rank[i], scale[i]}.
[0011] In one embodiment of the present invention, the specific process of collecting statistics on the instantaneous bandwidth and average bandwidth of each channel in step S1 is as follows:
[0012] The effective bandwidth BWS[i] of the i-th channel in the TS time period is calculated as BWS[i]=DataS[i] / TS[i];
[0013] The effective bandwidth BWL[i] of the i-th channel in the TL time period is calculated as BWL[i]=DataL[i] / TL[i];
[0014] Where TS[i] and TL[i] represent the two time periods for detecting the i-th channel, respectively, and TL[i]>TS[i]. DataS[i] represents the data volume of the i-th channel in the TS[i] time period, and DataL[i] represents the data volume of the i-th channel in the TL[i] time period. BWS[i] is taken as the instantaneous bandwidth counted, and BWL[i] is taken as the average bandwidth counted.
[0015] In one embodiment of the present invention, the comparison and analysis of the instantaneous bandwidth and the average bandwidth of each channel by the bandwidth analysis engine in step S2 specifically includes:
[0016] Step S201: The bandwidth analysis engine compares the effective bandwidth BWS[i] and the effective bandwidth BWL[i] of the i-th channel in real time statistics;
[0017] Step S202: If the effective bandwidth BWL[i] in any time period is significantly greater than the effective bandwidth BWS[i], indicating that the corresponding i-th channel belongs to pulse-type data transmission, the difference between the effective bandwidth BWL[i] and the effective bandwidth BWS[i] is normalized and quantized. The quantization method is as follows:
[0018] QS[i]=|BWL[i]-BWS[i]| / BWM
[0019] Where BWM is the maximum bandwidth of the system, QS[i] is the normalized quantization result;
[0020] Then proceed to step S204, otherwise, execute step S203;
[0021] Step S203: If the effective bandwidth BWS[i] and the effective bandwidth BWL[i] counted in all time periods are close, the bandwidth data is normalized and quantized using the following formula:
[0022] QA[i]=BWL[i] / BWM
[0023] Where BWM is the maximum bandwidth of the system, QA[i] is the normalized quantization result, and then proceeds to step S204;
[0024] Step S204: passing the quantization result to the strategy update engine.
[0025] In one embodiment of the present invention, the Round-Robin scheduling logic algorithm strategy in step S2 specifically includes:
[0026] Assuming that the total number of channels is N, set an N-bit wide 01 sequence PR[N-1:0]. When the data feedback from the i-th channel is received, the corresponding sequence bit PR[i] is set to 1. When the i-th channel is analyzed and the data is passed to the subsequent module, the sequence bit PR[i] is set to 0.
[0027] First, the detection starts from index idx=0. When any sequence bit PR[idx]=1 is detected, the bandwidth data of the idx-th channel is analyzed and the analysis result is passed to the next level module. At the same time, the sequence bit PR[idx] is updated to 0.
[0028] Then, the detection is performed from idx onward until the next position with the sequence bit set to 1 is found. The data of the channel corresponding to the position is analyzed and the analysis result is passed to the next level module. The corresponding sequence bit is set to 0 and the detection is repeated in this way.
[0029] When the detection position reaches N-1, it returns to idx=0 and continues detection.
[0030] In one embodiment of the present invention, the learning and policy updating based on the collected analysis results in step S3 is performed after comparing the channel bandwidth analysis results received from the bandwidth analysis engine with the data received last time. Specifically, the policy updating includes the following four methods:
[0031] A) If the last analysis result received by channel i and the current analysis result received are both QS[i], then let the last analysis result be QS_old[i] and the current analysis result be QS_new[i], and update the scale[i] parameter according to the ratio of QS_new[i] to QS_old[i], while other parameters remain unchanged;
[0032] B) If the last analysis result received by the i-th channel and the current analysis result received are both QA[i], then let the last analysis result be QA_old[i] and the current analysis result be QA_new[i]. Update the scale[i] parameter based on the ratio of QA_new[i] to QA_old[i], and update the level[i] parameter based on the absolute value of QA_new[i].
[0033] C) If the last analysis result received for channel i is QS[i], and the analysis result received this time is QA[i], update the type[i] parameter based on the analysis result received this time, and adjust the rank[i] parameter at the same time. The basic strategy for adjusting the rank[i] parameter is that channels with pulsed bandwidth demand have higher priority than channels with stable bandwidth demand, and the higher the priority, the larger the rank[i] parameter value. The values of the level[i] and scale[i] parameters are also set based on the analysis result received this time.
[0034] D) If the last analysis result received for the i-th channel is QA[i], and the current analysis result is QS[i], the type[i] parameter is updated based on the current analysis result, and the rank[i] parameter is adjusted. The basic strategy for adjusting the rank[i] parameter is that channels with pulsed bandwidth demand have higher priority than channels with stable bandwidth demand, and the higher the priority, the larger the rank[i] parameter value. The values of the level[i] and scale[i] parameters are also set based on the current analysis result.
[0035] In one embodiment of the present invention, the level[i] parameter is specifically:
[0036] level[i]=0 means that the basic bandwidth required by the i-th channel is level 0, level[i]=1 means that the basic bandwidth required by the i-th channel is level 1, and level[i]=2 means that the basic bandwidth required by the i-th channel is level 2. The bandwidth values corresponding to level 0, level 1 and level 2 are 1 / 3BWM, 2 / 3BWM and BWM respectively, where BWM represents the maximum bandwidth in the system.
[0037] In one embodiment of the present invention, it also includes configuring reconfigurable information reconfig: {UN, CN, GN} in the bandwidth detection engine, bandwidth analysis engine, policy update engine and bandwidth allocation engine to set parameter values according to requirements, where UN represents the number of subsystems supporting simultaneous statistics, CN represents the number of supported processing channels, and GN represents the number of supported grouping hardware resources.
[0038] The present invention also provides a reconfigurable dynamic bandwidth allocation system for executing the aforementioned dynamic bandwidth allocation method, specifically comprising:
[0039] Bandwidth detection engine, connecting multiple channels;
[0040] a bandwidth analysis engine connected to the bandwidth detection engine;
[0041] a policy update engine, connected to a bandwidth analysis engine;
[0042] The bandwidth allocation engine is connected to the bandwidth analysis engine and the policy update engine respectively.
[0043] Compared with the existing technology, the reconfigurable dynamic bandwidth allocation method and system provided by the present invention can make the system more intelligent by designing a strategy learning and updating engine, which can improve efficiency in different usage scenarios. The overall function is reasonably divided into several modules with specific responsibilities, which can effectively improve system performance. The introduction of reconfigurable design can greatly enhance the flexibility and versatility of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0045] Figure 1 A schematic diagram of the architecture of a dynamic bandwidth allocation system according to an embodiment of the present invention;
[0046] Figure 2 A schematic diagram of a dynamic bandwidth allocation process according to an embodiment of the present invention;
[0047] Figure 3 FIG. 1 is a schematic diagram of a reconfigurable design according to an embodiment of the present invention. DETAILED DESCRIPTION
[0048] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. All other embodiments obtained by ordinary technicians in this field based on the embodiments of the present invention without creative work are within the scope of protection of the present invention.
[0049] Figure 1 FIG1 is a schematic diagram of the architecture of a dynamic bandwidth allocation system according to an embodiment of the present invention. Figure 2 FIG. 1 is a flow chart of dynamic bandwidth allocation according to an embodiment of the present invention. Figure 1 and Figure 2 As shown, this embodiment provides a reconfigurable dynamic bandwidth allocation method, which specifically includes:
[0050] Step S1: A statistical mechanism is set up in the bandwidth detection engine to collect statistics on the instantaneous bandwidth and average bandwidth of each channel (the channels in the figure are shown as ch[0], ch[1], and ch[i]). The statistical results of the instantaneous bandwidth and the average bandwidth are normalized and then transmitted to the bandwidth analysis engine in real time. The normalization in this embodiment can adopt conventional methods of general data processing and will not be described in detail again.
[0051] In this embodiment, the specific process of collecting statistics on the instantaneous bandwidth and average bandwidth of each channel in step S1 is as follows:
[0052] The effective bandwidth BWS[i] of the i-th channel in the TS time period is calculated as BWS[i] = DataS[i] / TS[i]. The effective bandwidth BWL[i] of the i-th channel in the TL time period is calculated as BWL[i] = DataL[i] / TL[i]. TS[i] and TL[i] represent the two time periods for detecting the i-th channel, respectively, and TL[i] > TS[i]. DataS[i] represents the amount of data on the i-th channel in the TS[i] time period, and DataL[i] represents the amount of data on the i-th channel in the TL[i] time period. BWS[i] is used as the instantaneous bandwidth to be calculated, and BWL[i] is used as the average bandwidth to be calculated. TS[i] is a relatively short time period and is mainly used to calculate the instantaneous bandwidth, while TL[i] is a relatively long time period and is mainly used to calculate the average bandwidth data.
[0053] Step S2: After receiving the statistics of instantaneous bandwidth and average bandwidth, the bandwidth analysis engine compares and analyzes the instantaneous bandwidth and average bandwidth of each channel in real time, and arranges the priority of each channel according to the Round-Robin scheduling logic algorithm strategy;
[0054] After receiving the instantaneous bandwidth BWS[i] and average bandwidth BWL[i] data of the i-th channel, the bandwidth analysis engine, wherein the instantaneous bandwidth reflects the bandwidth that can be effectively utilized by each channel in a short period of time, and the average bandwidth reflects the overall bandwidth demand of each channel, in this embodiment, the bandwidth analysis engine compares and analyzes the instantaneous bandwidth and average bandwidth of each channel in real time in step S2, specifically including:
[0055] Step S201: The bandwidth analysis engine compares the effective bandwidth BWS[i] and the effective bandwidth BWL[i] of the i-th channel in real time statistics;
[0056] Step S202: If the effective bandwidth BWL[i] in any time period is significantly greater than the effective bandwidth BWS[i], it indicates that the corresponding i-th channel requires a higher bandwidth in a short time segment, while the bandwidth requirement in other time segments is very low, which belongs to pulse-type data transmission. Then, the difference between the effective bandwidth BWL[i] and the effective bandwidth BWS[i] is normalized and quantized. The quantization method is as follows:
[0057] QS[i]=|BWL[i]-BWS[i]| / BWM
[0058] Where BWM is the maximum bandwidth of the system, QS[i] is the normalized quantization result;
[0059] Then proceed to step S204, otherwise, execute step S203;
[0060] Step S203: If the effective bandwidth BWS[i] counted in all time periods is basically close to the effective bandwidth BWL[i], it means that the corresponding i-th channel requires a relatively stable data transmission bandwidth. Therefore, the bandwidth data is normalized and quantized using the following formula:
[0061] QA[i]=BWL[i] / BWM
[0062] Where BWM is the maximum bandwidth of the system, QA[i] is the normalized quantization result, and then proceeds to step S204;
[0063] Step S204: passing the quantization result to the strategy update engine.
[0064] After receiving the statistical data from different channels, the bandwidth analysis engine prioritizes the data according to the Round-Robin scheduling logic algorithm strategy. In this embodiment, the Round-Robin scheduling logic algorithm strategy in step S2 specifically includes:
[0065] Assuming that the total number of channels is N, an N-bit wide 01 sequence PR[N-1:0] is set. When the data feedback from the i-th channel is received, the corresponding sequence bit PR[i] is set to 1. When the i-th channel is analyzed and the data is passed to the subsequent module, the sequence bit PR[i] is set to 0.
[0066] First, the detection starts from index idx=0. When any sequence bit PR[idx]=1 is detected, the bandwidth data of the idx-th channel is analyzed and the analysis result is passed to the next level module. At the same time, the sequence bit PR[idx] is updated to 0.
[0067] Then, the detection is performed from idx onward until the next position with the sequence bit set to 1 is found. The data of the channel corresponding to the position is analyzed and the analysis result is passed to the next level module. The corresponding sequence bit is set to 0 and the detection is repeated in this way.
[0068] When the detection position reaches N-1, it returns to idx=0 and continues to detect. Bandwidth analysis based on this polling priority strategy can effectively ensure that each channel can enjoy the highest priority once, which is conducive to balanced bandwidth utilization.
[0069] Step S3: The bandwidth analysis engine sends the analysis results to the policy update engine. The policy update engine collects and stores the data of each channel and sets a set of parameters {type[i], level[i], rank[i], scale[i]} for each channel within the policy update engine, where type[i] represents the bandwidth requirement type of the corresponding channel, level[i] represents the level of the bandwidth requirement of the corresponding channel, rank[i] represents the priority of the corresponding channel, and scale[i] represents the bandwidth scaling factor of the corresponding channel. The policy update engine then learns and updates the policy based on the collected analysis results.
[0070] In this embodiment, the meaning of each parameter can be specifically explained as follows, but is not limited thereto:
[0071] type[i]=0 indicates that the i-th channel is an instantaneous bandwidth demand channel, and 1 indicates that the i-th channel is a stable bandwidth demand channel;
[0072] level[i]=0 means that the basic bandwidth required by the i-th channel is level 0, 1 means that the basic bandwidth required by the i-th channel is level 1, and 2 means level 2. The bandwidth values corresponding to level 0, level 1 and level 2 are 1 / 3BWM, 2 / 3BWM and BWM respectively, where BWM represents the maximum bandwidth in the system;
[0073] rank[i] indicates the priority of the corresponding channel i, which can be divided into four priorities. Channels with higher priorities can be processed faster, and channels with the same priority are processed according to the first-come-first-served policy;
[0074] scale[i] represents the bandwidth scaling factor of the i-th channel, which means scaling and updating the bandwidth of the i-th channel to dynamically adjust the bandwidth of each channel. It is generally used in conjunction with level[i] to achieve bandwidth adjustment of each channel.
[0075] In this embodiment, the learning and policy updating based on the collected analysis results in step S3 is performed after comparing the channel bandwidth analysis results (QS[i] or QA[i]) received from the bandwidth analysis engine with the data received last time. Specifically, the policy updating includes the following four types:
[0076] A) If the last and current analysis results for the i-th channel are both QS[i], then let the last analysis result be QS_old[i] and the current analysis result be QS_new[i]. This indicates that the i-th channel is pulse bandwidth demanding. Therefore, strategically, the scale[i] parameter can be updated based on the ratio of QS_new[i] to QS_old[i]. Other parameters can remain unchanged for the time being.
[0077] B) If the analysis results received last and this time for the i-th channel are both QA[i], then let the previous analysis result be QA_old[i] and the current analysis result be QA_new[i]. This indicates that the i-th channel has a stable bandwidth demand. Therefore, strategically, the scale[i] parameter is updated based on the ratio of QA_new[i] to QA_old[i]. At the same time, the level[i] parameter is updated based on the absolute value of QA_new[i]. The updated value is set based on the bandwidth demand level of QA_new[i]. For example, the value of level[i] is set based on whether it is in the BWM, 1 / 3BWM, or 2 / 3BWM interval, but the setting is not limited to this.
[0078] C) If the analysis result received last for the i-th channel is QS[i], and the analysis result received this time is QA[i], this indicates that the type of the i-th channel has changed from pulsed bandwidth demand to stable bandwidth demand. At this time, the type[i] parameter needs to be updated based on the analysis result received this time, and the rank[i] parameter needs to be adjusted at the same time. The basic strategy for adjusting the rank[i] parameter is that the pulsed bandwidth demand channel has a higher priority than the stable bandwidth demand channel, and the higher the priority, the larger the rank[i] parameter value. This design strategy is mainly because the system generally gives priority to pulsed bandwidth demand, which can prevent the system from being blocked by the stable bandwidth channel for a long time, affecting the overall bandwidth efficiency of the system. The values of the level[i] and scale[i] parameters are also set according to the value of QA[i] received this time;
[0079] D) If the analysis result received last for the i-th channel is QA[i], and the analysis result received this time is QS[i], this indicates that the type of the i-th channel has changed from a stable bandwidth demand type to a pulsed bandwidth demand type. At this time, the type[i] parameter needs to be updated based on the analysis result received this time, and the rank[i] parameter needs to be adjusted at the same time. The basic strategy for adjusting the rank[i] parameter is that the pulsed bandwidth demand channel has a higher priority than the stable bandwidth demand channel, and the higher the priority, the larger the rank[i] parameter value. This design strategy is mainly because pulsed bandwidth demand is generally processed first in the system, which can prevent the system from being blocked by stable bandwidth channels for a long time, affecting the overall bandwidth efficiency of the system. The values of the level[i] and scale[i] parameters are also set according to the value of QS[i] received this time.
[0080] The policy update engine receives data from the bandwidth analysis engine and simultaneously monitors overall bandwidth utilization in real time after bandwidth adjustments, using this as a reflection of the effectiveness of the policy. Through a pre-set learning mechanism, it gradually strengthens or weakens the previously adopted bandwidth allocation policy based on increases or decreases in overall bandwidth utilization. This forms an autonomous policy update mechanism that combines positive and negative feedback, and then sends the latest policy to the next-level bandwidth allocation engine.
[0081] Step S4: The bandwidth allocation engine receives the allocation policy from the policy update engine and dynamically allocates bandwidth to each path according to the settings of the parameters {type[i], level[i], rank[i], scale[i]} to achieve stability and improvement of the overall bandwidth utilization of the system.
[0082] See also Figure 1 and Figure 2Another embodiment of the present invention further provides a reconfigurable dynamic bandwidth allocation system for executing the aforementioned dynamic bandwidth allocation method, specifically comprising:
[0083] Bandwidth detection engine, connecting multiple channels;
[0084] a bandwidth analysis engine connected to the bandwidth detection engine;
[0085] a policy update engine, connected to a bandwidth analysis engine;
[0086] The bandwidth allocation engine is connected to the bandwidth analysis engine and the policy update engine respectively.
[0087] Figure 3 FIG. 1 is a schematic diagram of a reconfigurable design according to an embodiment of the present invention. Figure 3 As shown, to enhance the flexibility and versatility of the system, a reconfigurable design can also be introduced. In this embodiment, the reconfigurable information reconfig:{UN,CN,GN} is configured in the bandwidth detection engine, bandwidth analysis engine, policy update engine, and bandwidth allocation engine to set parameter values according to requirements, where UN represents the number of subsystems that support simultaneous statistics, CN represents the number of supported processing channels, and GN represents the number of supported packet hardware resources.
[0088] For example, for scenario 0, bandwidth allocation for N0 channels needs to be processed simultaneously, with each channel's bandwidth occupying M0 sets of hardware resources. For scenario 1, bandwidth allocation for N1 channels needs to be processed simultaneously, with each channel's bandwidth occupying M1 sets of hardware resources. When switching from scenario 0 to scenario 1 using the method and system of the present invention, simply inputting the corresponding reconfigurable information reconfig:{UN,CN,GN} corresponding parameter values automatically reconstructs the structure required for scenario 1. This allows the present invention to achieve superior results in various application scenarios, and the system also offers high flexibility.
[0089] The reconfigurable dynamic bandwidth allocation method and system provided by the present invention can make the system more intelligent by designing a strategy learning and updating engine, can improve efficiency in different usage scenarios, and can reasonably split the overall function into several modules with specific responsibilities, which can effectively improve system performance. The introduction of reconfigurable design can greatly enhance the flexibility and versatility of the system.
[0090] Those skilled in the art will appreciate that the accompanying drawings are merely schematic diagrams of an embodiment, and the modules or processes in the accompanying drawings are not necessarily required to implement the present invention.
[0091] Those skilled in the art will appreciate that the modules in the apparatuses of the embodiments may be distributed in the apparatuses of the embodiments as described in the embodiments, or may be located in one or more apparatuses different from the embodiments with corresponding changes. The modules in the above embodiments may be combined into one module or further divided into multiple sub-modules.
[0092] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A reconfigurable dynamic bandwidth allocation method, characterized in that: Specifically include: Step S1: A statistical mechanism is set up in the bandwidth detection engine to collect statistics on the instantaneous bandwidth and average bandwidth of each channel, and the statistical results of the instantaneous bandwidth and average bandwidth are normalized and transmitted to the bandwidth analysis engine in real time; Step S2: After receiving the statistics of instantaneous bandwidth and average bandwidth, the bandwidth analysis engine compares and analyzes the instantaneous bandwidth and average bandwidth of each channel in real time, and arranges the priority of each channel according to the Round-Robin scheduling logic algorithm strategy; Step S3: The bandwidth analysis engine sends the analysis results to the policy update engine. The policy update engine collects and stores the data of each channel and sets a set of parameters {type[i], level[i], rank[i], scale[i]} for each channel within the policy update engine, where type[i] represents the bandwidth requirement type of the corresponding channel, level[i] represents the level of the bandwidth requirement of the corresponding channel, rank[i] represents the priority of the corresponding channel, and scale[i] represents the bandwidth scaling factor of the corresponding channel. The policy update engine then learns and updates the policy based on the collected analysis results. Step S4: The bandwidth allocation engine receives the allocation policy from the policy update engine and directly performs dynamic bandwidth allocation on each path according to the settings of the parameters {type[i], level[i], rank[i], scale[i]}.
2. The reconfigurable dynamic bandwidth allocation method according to claim 1, wherein: The specific process of collecting statistics on the instantaneous bandwidth and average bandwidth of each channel in step S1 is as follows: The effective bandwidth BWS[i] of the i-th channel in the TS time period is calculated as BWS[i]=DataS[i] / TS[i]; The effective bandwidth BWL[i] of the i-th channel in the TL time period is calculated as BWL[i]=DataL[i] / TL[i]; Where TS[i] and TL[i] represent the two time periods for detecting the i-th channel, respectively, and TL[i]>TS[i]. DataS[i] represents the data volume of the i-th channel in the TS[i] time period, and DataL[i] represents the data volume of the i-th channel in the TL[i] time period. BWS[i] is taken as the instantaneous bandwidth counted, and BWL[i] is taken as the average bandwidth counted.
3. The reconfigurable dynamic bandwidth allocation method according to claim 2, wherein: In step S2, the bandwidth analysis engine compares and analyzes the instantaneous bandwidth and the average bandwidth of each channel in real time, specifically including: Step S201: The bandwidth analysis engine compares the effective bandwidth BWS[i] and the effective bandwidth BWL[i] of the i-th channel in real time statistics; Step S202: If the effective bandwidth BWL[i] in any time period is significantly greater than the effective bandwidth BWS[i], indicating that the corresponding i-th channel belongs to pulse-type data transmission, the difference between the effective bandwidth BWL[i] and the effective bandwidth BWS[i] is normalized and quantized. The quantization method is as follows: QS[i]=|BWL[i]-BWS[i]| / BWM Where BWM is the maximum bandwidth of the system, QS[i] is the normalized quantization result; Then proceed to step S204, otherwise, execute step S203; Step S203: If the effective bandwidth BWS[i] and the effective bandwidth BWL[i] counted in all time periods are close, the bandwidth data is normalized and quantized using the following formula: QA[i]=BWL[i] / BWM Where BWM is the maximum bandwidth of the system, QA[i] is the normalized quantization result, and then proceeds to step S204; Step S204: passing the quantization result to the strategy update engine.
4. The reconfigurable dynamic bandwidth allocation method according to claim 3, wherein: The Round-Robin scheduling logic algorithm strategy in step S2 specifically includes: Assuming that the total number of channels is N, set an N-bit wide 01 sequence PR[N-1:0]. When the data feedback from the i-th channel is received, the corresponding sequence bit PR[i] is set to 1. When the i-th channel is analyzed and the data is passed to the subsequent module, the sequence bit PR[i] is set to 0. First, the detection starts from index idx=0. When any sequence bit PR[idx]=1 is detected, the bandwidth data of the idx-th channel is analyzed and the analysis result is passed to the next level module. At the same time, the sequence bit PR[idx] is updated to 0. Then, the detection is performed from idx onward until the next position with the sequence bit set to 1 is found. The data of the channel corresponding to the position is analyzed and the analysis result is passed to the next level module. The corresponding sequence bit is set to 0 and the detection is repeated in this way. When the detection position reaches N-1, it returns to idx=0 and continues detection.
5. The reconfigurable dynamic bandwidth allocation method according to claim 4, characterized in that: In step S3, learning and updating the strategy based on the collected analysis results is performed after comparing the channel bandwidth analysis results received from the bandwidth analysis engine this time with the data received last time. The strategy updates specifically include the following four types: A) If the last analysis result received by channel i and the current analysis result received are both QS[i], then let the last analysis result be QS_old[i] and the current analysis result be QS_new[i], and update the scale[i] parameter according to the ratio of QS_new[i] to QS_old[i], while other parameters remain unchanged; B) If the last analysis result received by the i-th channel and the current analysis result received are both QA[i], then let the last analysis result be QA_old[i] and the current analysis result be QA_new[i]. Update the scale[i] parameter according to the ratio of QA_new[i] to QA_old[i], and update the level[i] parameter according to the absolute value of QA_new[i]. C) If the last analysis result received for channel i is QS[i], and the analysis result received this time is QA[i], update the type[i] parameter based on the analysis result received this time, and adjust the rank[i] parameter at the same time. The basic strategy for adjusting the rank[i] parameter is that channels with pulsed bandwidth demand have higher priority than channels with stable bandwidth demand, and the higher the priority, the larger the rank[i] parameter value. The values of the level[i] and scale[i] parameters are also set based on the analysis result received this time. D) If the last analysis result received for the i-th channel is QA[i], and the current analysis result is QS[i], the type[i] parameter is updated based on the current analysis result, and the rank[i] parameter is adjusted. The basic strategy for adjusting the rank[i] parameter is that channels with pulsed bandwidth demand have higher priority than channels with stable bandwidth demand, and the higher the priority, the larger the rank[i] parameter value. The values of the level[i] and scale[i] parameters are also set based on the current analysis result.
6. The reconfigurable dynamic bandwidth allocation method according to claim 1, wherein: The level[i] parameters are as follows: level[i]=0 means that the basic bandwidth required by the i-th channel is level 0, level[i]=1 means that the basic bandwidth required by the i-th channel is level 1, level[i]=2 means that the basic bandwidth required by the i-th channel is level 2, and the bandwidth values corresponding to level 0, level 1 and level 2 are 1 / 3BWM, 2 / 3BWM and BWM respectively, where BWM represents the maximum bandwidth of the system.
7. The reconfigurable dynamic bandwidth allocation method according to claim 1, wherein: It also includes configuring reconfigurable information reconfig: {UN, CN, GN} in the bandwidth detection engine, bandwidth analysis engine, policy update engine and bandwidth allocation engine to set parameter values according to requirements, where UN represents the number of subsystems that support simultaneous statistics, CN represents the number of supported processing channels, and GN represents the number of supported grouping hardware resources.
8. A reconfigurable dynamic bandwidth allocation system, configured to execute the dynamic bandwidth allocation method according to any one of claims 1 to 7, characterized in that: Specifically include: Bandwidth detection engine, connecting multiple channels; a bandwidth analysis engine connected to the bandwidth detection engine; a policy update engine, connected to a bandwidth analysis engine; The bandwidth allocation engine is connected to the bandwidth analysis engine and the policy update engine respectively.