Baseband software storage resource allocation method and device, equipment and storage medium
By dynamically adjusting the bandwidth and priority of baseband chip storage resources, the task processing timeout problem caused by static allocation in the prior art is solved, and more efficient storage resource management and optimized processing performance are achieved.
Patent Information
- Application Number
- CN202411541401.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-31
- Publication Date
- 2025-02-14
AI Technical Summary
The existing baseband chip storage resource management method is static, which may cause task processing timeouts when multiple tasks compete for the same storage resource, affecting communication quality.
Provide a baseband software storage resource allocation method, by configuring the bandwidth and priority of DDR access by object, initializing the bandwidth adjustment step, and monitoring access data after service starts, dynamically adjusting the bandwidth of the next time slot to achieve dynamic bandwidth Adjustment.
By dynamically adjusting bandwidth, optimizing storage read and write efficiency, improving overall processing performance, effectively managing and utilizing limited storage resources, reducing resource competition, and avoiding business problems caused by resource competition.
Smart Images

Figure CN119440836A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method, device, equipment, and storage medium for allocating baseband software storage resources. Background Art
[0002] With the popularization of 5G technology, baseband chips are facing requirements for higher bandwidth and speed.
[0003] The existing baseband chip storage resource management method is usually fixed, that is, the storage resource allocation strategy has been determined in the design stage.
[0004] This static allocation method may cause some important tasks to not be processed in a timely manner during actual operation, especially when multiple tasks compete for the same storage resources at the same time, which can easily cause task processing timeout and affect communication quality. Summary of the invention
[0005] In order to solve one of the above-mentioned technical defects, the present application provides a baseband software storage resource allocation method, device, equipment, and storage medium.
[0006] In a first aspect of the present application, a method for allocating baseband software storage resources is provided, the method comprising:
[0007] Configure a first bandwidth for a first object to access DDR, a first priority for the first object, a second bandwidth for a second object to access DDR, and a second priority for the second object;
[0008] Initialize bandwidth adjustment step size;
[0009] After the service is started, monitoring first access data of the first object to the DDR and second access data of the second object to the DDR;
[0010] Adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0011] Optionally, the object is a core;
[0012] The method further includes:
[0013] Configure a first maximum read / write duration of the first object to the DDR and a second maximum read / write duration of the second object to the DDR;
[0014] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0015] According to the first access data and the first maximum read / write duration of the current time slot, a first estimated bandwidth and a first estimated maximum read / write duration of the next time slot are estimated; according to the second access data and the second maximum read / write duration of the current time slot, a second estimated bandwidth and a second estimated maximum read / write duration of the next time slot are estimated;
[0016] If the first estimated maximum read / write duration is less than the first maximum read / write duration and the second estimated maximum read / write duration is less than the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot;
[0017] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}; wherein min{} is a smaller function;
[0018] If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration < the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)};
[0019] If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
[0020] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step includes:
[0021] If the first priority is greater than or equal to the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step;
[0022] If the first priority is less than the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot minus the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot plus the bandwidth adjustment step.
[0023] Optionally, the first object is a downlink channel task within the core, and the second object is an uplink channel task within the core;
[0024] The method further includes:
[0025] Initialize the adjustment factor, block error rate lower limit value and block error rate upper limit value.
[0026] Optionally, the first access data is a block error rate of a first object, and the second access data is a block error rate of a second object;
[0027] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0028] If the first access data of the current time slot is greater than the block error rate lower limit, and the second access data of the current time slot is less than the block error rate lower limit, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step;
[0029] If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0030] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step size includes:
[0031] If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the current time slot for checking DDR access + the bandwidth adjustment step;
[0032] If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0033] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step size includes:
[0034] If the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step length * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step length * adjustment factor;
[0035] Otherwise, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0036] According to a second aspect of the present application, a baseband software storage resource allocation device is provided, the device comprising:
[0037] A configuration module, configured to configure a first bandwidth for a first object to access the DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object;
[0038] Initialization module, used to initialize the bandwidth adjustment step;
[0039] A monitoring module, used for monitoring first access data of the first object to the DDR and second access data of the second object to the DDR after the service is started;
[0040] The adjustment module is used to adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0041] In a third aspect of the present application, an electronic device is provided, including:
[0042] Memory;
[0043] Processor; and
[0044] Computer programs;
[0045] The computer program is stored in the memory and is configured to be executed by the processor to implement the method as described in the first aspect above.
[0046] In a fourth aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored; the computer program is executed by a processor to implement the method described in the first aspect above.
[0047] The present application provides a method, device, equipment, and storage medium for allocating storage resources of baseband software. The method includes: configuring a first bandwidth for a first object to access DDR, a first priority for the first object, a second bandwidth for a second object to access DDR, and a second priority for the second object; initializing a bandwidth adjustment step; after the service is started, monitoring the first access data of the first object to DDR and the second access data of the second object to DDR; adjusting the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step. The method provided by the present application adjusts the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing storage read and write efficiency, and thereby improving overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding business problems caused by resource competition. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0049] Figure 1 A flowchart of a method for allocating baseband software storage resources provided in an embodiment of the present application;
[0050] Figure 2 A schematic diagram of the structure of a baseband software storage resource allocation device provided in an embodiment of the present application;
[0051] Figure 3 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0052] In order to make the technical solutions and advantages in the embodiments of the present application more clearly understood, the exemplary embodiments of the present application are further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than an exhaustive list of all the embodiments. It should be noted that the embodiments in the present application and the features in the embodiments can be combined with each other without conflict.
[0053] In the process of implementing this application, the inventors found that the existing baseband chip storage resource management method is usually fixed, that is, the storage resource allocation strategy has been determined in the design stage. This static allocation method may cause some important tasks to not be processed in time during actual operation, especially when multiple tasks compete for the same storage resource at the same time, which is easy to cause task processing timeout, thereby affecting communication quality.
[0054] In view of the above problems, the present application provides a baseband software storage resource allocation method, device, equipment, and storage medium, the method comprising: configuring a first bandwidth for a first object to access DDR, a first priority for the first object, a second bandwidth for a second object to access DDR, and a second priority for the second object; initializing a bandwidth adjustment step; after the service is started, monitoring the first access data of the first object to DDR and the second access data of the second object to DDR; adjusting the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step. The method provided by the present application adjusts the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing storage read and write efficiency, thereby improving overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding business problems caused by resource competition.
[0055] See also Figure 1 The implementation process of the baseband software storage resource allocation method provided in this embodiment is as follows:
[0056] 101. Configure a first bandwidth for a first object to access a DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object.
[0057] In addition, a monitoring period, a first maximum read / write duration of the first object to the DDR, and a second maximum read / write duration of the second object to the DDR are also configured.
[0058] For example, when the method provided in this embodiment is executed for the first time, or when the monitoring period changes, step 101 will be executed, and the monitoring period will be configured through step 101. The monitoring period is the period for executing the baseband software storage resource allocation method provided in this embodiment. After the monitoring period is configured, the configured monitoring period can be periodically executed to allocate baseband software storage resources. The monitoring period can be the same as the time slot duration, or it can be different. For example, the monitoring period is 5ms (milliseconds).
[0059] When the method provided in this embodiment is executed for the first time, or when the first maximum read / write duration changes, step 101 is executed to configure the first maximum read / write duration.
[0060] When the method provided in this embodiment is executed for the first time, or when the second maximum read / write time is changed, step 101 is executed to configure the second maximum read / write time.
[0061] When the method provided in this embodiment is executed for the first time, or when the first priority is changed, step 101 is executed to configure the first priority.
[0062] When the method provided in this embodiment is executed for the first time, or when the second priority level changes, step 101 is executed to configure the second priority level.
[0063] When the method provided in this embodiment is executed for the first time, or each time a new monitoring time slot is entered, step 101 is executed to configure the first bandwidth and the second bandwidth in the current monitoring time slot.
[0064] In addition, the object in this embodiment and subsequent embodiments may be a core or an uplink and downlink channel task in the core.
[0065] 102, initialize the bandwidth adjustment step.
[0066] If the object is an uplink or downlink channel task in the core, step 102 will initialize not only the bandwidth adjustment step, but also the adjustment factor, the block error rate lower limit value and the block error rate upper limit value.
[0067] 103 . After the service is started, monitor first access data of the first object to the DDR and second access data of the second object to the DDR.
[0068] If the object is a core, the access data can be the amount of data scheduled for the service, which can be calculated based on the number of scheduled UEs, the number of PRBs (Physical Resource Blocks), and the modulation method. If the object is an uplink or downlink channel task in the core, the access data can be the BLER (Block Error Ratio) of the object.
[0069] 104. Adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0070] If the object is a core, it will configure the first bandwidth for the first object to access DDR, the first priority of the first object, the second bandwidth for the second object to access DDR, the second priority of the second object, the first maximum read and write time of the first object to DDR, and the second maximum read and write time of the second object to DDR in step 101. At this time, the implementation process of step 104 is:
[0071] 1. Estimate the first estimated bandwidth and the first estimated maximum read / write duration of the next time slot based on the first access data and the first maximum read / write duration of the current time slot. Estimate the second estimated bandwidth and the second estimated maximum read / write duration of the next time slot based on the second access data and the second maximum read / write duration of the current time slot.
[0072] 2. If the first estimated maximum read / write duration is less than the first maximum read / write duration and the second estimated maximum read / write duration is less than the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0073] That is, the first bandwidth and the second bandwidth do not change in the next time slot, that is, there is no need to adjust the first bandwidth and the second bandwidth.
[0074] 3. If the first estimated maximum read / write time < the first maximum read / write time and the second estimated maximum read / write time > the second maximum read / write time, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min {(second estimated bandwidth - second bandwidth of the current time slot), (first bandwidth of the current time slot - first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min {(second estimated bandwidth - second bandwidth of the current time slot), (first bandwidth of the current time slot - first estimated bandwidth)}.
[0075] Among them, min{} is the minimum function.
[0076] 4. If the first estimated maximum read / write time > the first maximum read / write time and the second estimated maximum read / write time < the second maximum read / write time, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}.
[0077] 5. If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
[0078] The process of adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step is as follows: if the first priority ≥ the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step. If the first priority < the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot + the bandwidth adjustment step.
[0079] If the objects are tasks in the same core, such as the first object is a downlink channel task in the core, and the second object is an uplink channel task in the core. In step 102, the bandwidth adjustment step, adjustment factor, block error rate lower limit value and block error rate upper limit value are initialized. The first access data is the block error rate of the first object, and the second access data is the block error rate of the second object. At this time, the implementation process of step 104 is:
[0080] 1. If the first access data of the current time slot is greater than the block error rate lower limit, and the second access data of the current time slot is less than the block error rate lower limit, adjust the first bandwidth and second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step.
[0081] 2. If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0082] The process of adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step is as follows:
[0083] If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the core DDR access of the current time slot (i.e., the core where the task is located) + the bandwidth adjustment step. If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0084] According to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step, the process of adjusting the first bandwidth and the second bandwidth of the next time slot is as follows: if the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, there is a BLER situation, and it is necessary to set the adjustment step by controlling the adjustment factor. Therefore, in this case, the first bandwidth of the next time slot can be adjusted to the first bandwidth of the current time slot + bandwidth adjustment step * adjustment factor, and the second bandwidth of the next time slot can be adjusted to the third bandwidth - bandwidth adjustment step * adjustment factor. Otherwise (i.e., when the first priority is ≤ the second priority, or when the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is not less than the upper limit of the block error rate), the uplink UL BLER is large, and the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot. That is, the first bandwidth and the second bandwidth in the next time slot are unchanged, that is, there is no need to adjust the first bandwidth and the second bandwidth.
[0085] After executing steps 101 to 104, the access time of the first object and the second object to DDR reading and writing in the next time slot will continue to be monitored, as well as the quality of service (QoS) requirements, delay sensitivity, data volume, etc. of each core. If there is a bandwidth adjustment in the above steps, whether the adjusted indicators are improved will be used as the basis for subsequent adjustments.
[0086] The baseband software storage resource allocation method provided in this embodiment can optimize the storage read and write efficiency by dynamically adjusting the bandwidth and priority of storage resource access in 4 / 5G baseband chips, thereby improving the overall processing performance. The baseband software storage resource allocation method provided in this embodiment can more effectively manage and utilize limited storage resources, reduce competition for storage resources between cores and tasks, and avoid business problems caused by resource competition.
[0087] The baseband software storage resource allocation method provided in this embodiment is a technical solution that can dynamically optimize the utilization of baseband chip storage resources without affecting normal communication.
[0088] In general DSP (Digital Signal Processor) or some special communication SOC (System on a Chip) level chips, the communication baseband system software generally divides the communication baseband software into different tasks or modules, which are deployed on different cores of the chip. Multiple tasks or modules may be deployed on the same core. The baseband software storage resource allocation method provided in this embodiment adopts a method for dynamically adjusting the storage access bandwidth. By real-time monitoring the storage access traffic of each core and its business thread in the baseband chip, the storage access strategy is dynamically adjusted in combination with the importance and priority of the business thread. This method can ensure that important tasks can obtain the required storage resources first, thereby optimizing the task processing flow and reducing the occurrence of timeouts.
[0089] The baseband software storage resource allocation method provided in this embodiment will first initialize and set the monitoring cycle through step 101, set the bandwidth and priority of each core to DDR access, and set the bandwidth and priority of the service thread on each core to DDR access; then initialize the bandwidth adjustment step size through step 102; after the service is started, monitor the DDR access in two dimensions through step 103, the first dimension is the read and write access of each core to DDR, so as to adjust the read and write access bandwidth of each core to DDR, and the second dimension is the read and write access of each service thread on a single core to DDR, so as to adjust the read and write access bandwidth of multiple tasks in the core to DDR, etc.; according to the monitoring The measurement results are analyzed, including quality of service (QoS) requirements, delay sensitivity, data volume, etc.; finally, in step 104, the storage access traffic in each core time slot in the baseband chip is analyzed according to the monitoring results, and the bandwidth and priority of each core access to DDR are adjusted according to the analysis results; the analysis results of the storage access traffic in the time slot of each task on a single core are monitored, and the bandwidth of each task access to DDR is adjusted; through the intelligent scheduling algorithm, it is ensured that high-priority tasks can quickly obtain the required storage resources, thereby reducing resource competition between tasks; the whole process forms a closed-loop control system, and continuously adjusts the storage access strategy according to the latest traffic data.
[0090] The following takes the core and the uplink and downlink channel tasks in the core as examples to illustrate the implementation details of the baseband software storage resource allocation method provided by this embodiment in the above two scenarios.
[0091] Example 1, the object is a core, such as a scenario with a 30kHz subcarrier spacing of NR TDD. The implementation process of the baseband software storage resource allocation method provided in this embodiment in this scenario is as follows:
[0092] The first object in this scene is core 0, and the second object is core 1.
[0093] 201, configure and set the monitoring period (such as 5ms), configure the first bandwidth core0_bw of core 0 accessing DDR, the first priority core0_pri of core 0, the first maximum read and write time core0_time of core 0 accessing DDR, the second bandwidth core1_bw of core 1 accessing DDR, the second priority core1_pri of core 1, and the second maximum read and write time core1_time of core 1 accessing DDR.
[0094] 202, initialize the bandwidth adjustment step size core_bw_step of core 0 and core 1.
[0095] 203 , after the service is started, monitor the first access data of core 0 to DDR (such as the data volume of the service scheduling of core 0 ) and the second access data of core 1 to DDR (such as the data volume of the service scheduling of core 1 ).
[0096] 204, adjust the first bandwidth core0_bw and the second bandwidth core1_bw of the next time slot (such as slot N+1) according to the first access data of the current time slot (such as slot N), the first bandwidth core0_bw of the current time slot, the first priority core0_pri, the second access data of the current time slot, the second bandwidth core1_bw of the current time slot, the second priority core1_pri, and the bandwidth adjustment step core_bw_step.
[0097] The implementation process of step 204 is as follows:
[0098] 204-1, based on the first access data of slot N and the first maximum read / write duration core0_time, estimate the first estimated bandwidth core0_bw_need (this value is the bandwidth required by core 0 of time slot slot N+1) and the first estimated maximum read / write duration core0_time_need (this value is the processing time required by core 0 of time slot slot N+1) of slot N+1. Based on the second access data and the second maximum read / write duration of the current time slot, estimate the second estimated bandwidth core1_bw_need (this value is the bandwidth required by core 1 of time slot slot N+1) and the second estimated maximum read / write duration core1_time_need (this value is the processing time required by core 1 of time slot slot N+1) of the next time slot.
[0099] 204-2, if the first estimated maximum read / write time core0_time_need of core 0 is less than the first maximum read / write time core0_time and the second estimated maximum read / write time core1_time_need of core 1 is less than the second maximum read / write time core1_time, then the first bandwidth core0_bw and the second bandwidth core1_bw are not adjusted, that is, the bandwidths of core 0 and core 1 are not adjusted.
[0100] 204-3, if the first estimated maximum read / write time core0_time_need of core 0 is less than the first maximum read / write time core0_time and the second estimated maximum read / write time core1_time_need of core 1 is greater than the second maximum read / write time core1_time, and at the same time, the first estimated bandwidth core0_bw_need of core 0 is less than the first bandwidth core0_bw of the current time slot, and the second estimated bandwidth core1_bw_need of core 1 is greater than the second bandwidth core1_bw of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min {(second estimated bandwidth - second bandwidth of the current time slot), (first bandwidth of the current time slot - first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min {(second estimated bandwidth - second bandwidth of the current time slot), (first bandwidth of the current time slot - first estimated bandwidth)}. That is, core0_bw=core0_bw-min{(core1_bw_need-core1_bw), (core0_bw-core0_bw_need)} of core0 is configured in slot N+1. Core1_bw=core1_bw+min{(core1_bw_need-core1_bw), (core0_bw-core0_bw_need)} of core1.
[0101] 204-4, if the first estimated maximum read / write time core0_time_need of core 0 is greater than the first maximum read / write time core0_time and the second estimated maximum read / write time core1_time_need of core 1 is less than the second maximum read / write time core1_time, and at the same time, the first estimated bandwidth core0_bw_need of core 0 is greater than the first bandwidth core0_bw of the current time slot, and the second estimated bandwidth core1_bw_need of core 1 is less than the second bandwidth core1_bw of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min {(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min {(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}. That is, core0_bw=core0_bw+min{(core1_bw-core1_bw_need), (core0_bw_need-core0_bw)} of core0 is configured in slot N+1. Core1_bw=core1_bw-min{(core1_bw-core1_bw_need), (core0_bw_need-core0_bw)} of core1.
[0102] 204-4, if the first estimated maximum read / write duration core0_time_need of core 0 is greater than the first maximum read / write duration core0_time and the second estimated maximum read / write duration core1_time_need of core 1 is greater than the second maximum read / write duration core1_time, and at the same time, the first estimated bandwidth core0_bw_need of core 0 is greater than the first bandwidth core0_bw of the current time slot, and the second estimated bandwidth core1_bw_need of core 1 is greater than the second bandwidth core1_bw of the current time slot, then execute the following steps:
[0103] 1. If the first priority of core 0, core0_pri, is greater than or equal to the second priority of core 1, core1_pri, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step. That is, core0_bw = core0_bw + core_bw_step is configured for core 0 in slot N+1. Core1_bw = core1_bw - core_bw_step is configured for core 1.
[0104] 2. If the first priority of core 0, core0_pri, is less than the second priority of core 1, core1_pri, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot + the bandwidth adjustment step. That is, core0_bw = core0_bw - core_bw_step of core 0 is configured in slot N+1. Core1_bw = core1_bw + core_bw_step of core 1.
[0105] After executing steps 201 to 204, the actual core 0 / 1 DDR read and write access time core_time_real0 / 1 on core 0 and core 1 in time slot N+1 will continue to be monitored, as well as the quality of service (QoS) requirements, delay sensitivity, data volume, etc. of each core. If there is a bandwidth adjustment in the above steps, whether the adjusted indicators are improved will be used as the basis for subsequent adjustments.
[0106] Example 2: The object is the uplink and downlink channel tasks in the core, that is, the intra-core multi-tasking scenario.
[0107] In the intra-core multi-tasking scenario, when storage resources, such as DDR, have limited bus bandwidth, the service quality (QoS) decreases due to storage resource preemption, and an adjustment scheme for the access of intra-core multi-tasking to storage resources is performed. The baseband software storage resource allocation method provided in this embodiment can dynamically adjust the adjustment scheme for task access to storage resources based on the service quality (QoS) of the baseband system software in the real-time service process.
[0108] In 4 / 5G communication systems, it is mainly divided into uplink channel scheduling (5G: PDCCH (Physical Downlink Control Channel), PDSCH (Physical Downlink Shared Channel), SSB (Synchronization Signal / PBCH Block), CSIRS (Channel State Information Reference Signal)) and downlink channel scheduling (5G: PUCCH (Physical Uplink Control Channel), PUSCH (Physical Uplink Shared Channel), PRACH (Physical Random Access Channel), SRS (Sounding Reference Signal)). signal, detection reference signal), then in the actual scheduling process, sometimes the downlink business data is relatively large, while the uplink business data is very small, or vice versa, based on the real-time monitoring of each channel, due to the limited DDR bus bandwidth, the uplink and downlink channel service quality (QoS) decreases due to storage resource preemption, and adjust the bandwidth and priority of the task (channel) to DDR access.
[0109] The following takes the baseband physical layer software, the physical layer downlink channel PDSCH task and the uplink channel PUSCH task deployed on the same core, and takes the scenario where the downlink BLER is large and the uplink BLER is non-existent due to limited DDR storage access as an example to illustrate the implementation process of the baseband software storage resource allocation method provided in this embodiment:
[0110] In this scenario, the first object is the task dl_task of the downlink channel PDSCH in core 0, and the second object is the task ul_task of the uplink channel PDSCH in core 0. The first access data is the block error rate dl_BLER of dl_task, and the second access data is the block error rate ul_BLER of ul_task.
[0111] 301, configure and set the monitoring period (such as 5ms), configure the first bandwidth dl_bw of dl_task accessing DDR, the first priority dl_pri of dl_task, the first maximum read and write time dl_time of dl_task accessing DDR, the second bandwidth ul_bw of ul_task accessing DDR, the second priority ul_pri of ul_task, and the second maximum read and write time ul_time of ul_task accessing DDR.
[0112] 302, initialize the bandwidth adjustment step size task_bw_step, adjustment factor coeff, block error rate lower limit value (such as 3%) and block error rate upper limit value (such as 5%) of dl_task and ul_task.
[0113] 303. After the service is started, the downlink and uplink BLER statistics of PDSCH and PUSCH are monitored and updated at the baseband physical layer to obtain dl_BLER and ul_BLER.
[0114] 304. Adjust the first bandwidth dl_bw and the second bandwidth ul_bw of the next time slot (such as slot N+1) according to the first access data dl_BLER of the current time slot (such as slot N), the first bandwidth dl_bw of the current time slot, the first priority dl_pri, the second access data ul_BLER of the current time slot, the second bandwidth ul_bw of the current time slot, the second priority ul_pri, and the bandwidth adjustment step core_bw_step.
[0115] 1. If the first access data dl_BLER of the current time slot (such as slot N) is greater than the block error rate lower limit of 3%, and the second access data ul_BLER of the current time slot is less than the block error rate lower limit of 3%, then determine the downlink task timeout number DL_TIMEOUT_CNT, and adjust the first bandwidth dl_bw and the second bandwidth ul_bw of the next time slot (such as slot N+1) according to the downlink task timeout number DL_TIMEOUT_CNT, the first bandwidth dl_bw of the current time slot, the second bandwidth ul_bw of the current time slot, and the bandwidth adjustment step core_bw_step.
[0116] For example, if the number of downlink task timeouts DL_TIMEOUT_CNT is greater than the timeout threshold DL_TIMEOUT_THRESHOLD, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the core access to DDR in the current time slot (such as the bandwidth core_bw of the core where ul_task and dl_task are located) + the bandwidth adjustment step. That is, the bandwidth of dl_task is configured in slot N+1 as dl_bw = dl_bw + task_bw_step. The bandwidth of ul_task is ul_bw = core_bw - task_bw_step.
[0117] 2. If the downlink task timeout quantity DL_TIMEOUT_CNT is not greater than the timeout quantity threshold DL_TIMEOUT_THRESHOLD, then when the first access data dl_task of the current time slot (such as slot N) is greater than the block error rate lower limit value (such as 3%), and the second access data ul_task of the current time slot is greater than the block error rate lower limit value (such as 3%), but the second access data ul_task of the current time slot is less than the block error rate upper limit value (such as 5%), perform the following steps:
[0118] (1) When the first priority dl_pri> the second priority ul_pri, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step * adjustment factor. That is, the bandwidth of dl_task is configured as dl_bw = dl_bw + task_bw_step * coeff in slot N+1. The bandwidth of ul_task is ul_bw = core_bw - task_bw_step * coeff.
[0119] (2) When the first priority dl_pri ≤ the second priority ul_pri, or when the first access data dl_task in the current time slot (such as slot N) is greater than the lower limit of the block error rate (such as 3%), and the second access data ul_task in the current time slot is greater than the lower limit of the block error rate (such as 3%), but the second access data ul_task in the current time slot is not less than the upper limit of the block error rate (such as 5%), the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot. That is, the first bandwidth and the second bandwidth in the next time slot are unchanged, that is, there is no need to adjust the first bandwidth and the second bandwidth. Then the first bandwidth dl_bw and the second bandwidth ul_bw are not adjusted, that is, the bandwidths of dl_task and ul_task are not adjusted.
[0120] The present embodiment provides a method for allocating storage resources of baseband software, configuring the first bandwidth of the first object accessing DDR, the first priority of the first object, the second bandwidth of the second object accessing DDR, and the second priority of the second object; initializing the bandwidth adjustment step; after the service is started, monitoring the first access data of the first object to DDR and the second access data of the second object to DDR; adjusting the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step. The method provided in the present embodiment adjusts the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing storage read and write efficiency, and thus improving overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding service problems caused by resource competition.
[0121] Based on the same inventive concept of the baseband software storage resource allocation method, this embodiment provides a baseband software storage resource allocation device, see Figure 2 As shown, the device comprises:
[0122] The configuration module 401 is used to configure a first bandwidth for a first object to access the DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object.
[0123] The initialization module 402 is used to initialize the bandwidth adjustment step.
[0124] The monitoring module 403 is used to monitor the first access data of the first object to the DDR and the second access data of the second object to the DDR after the service is started.
[0125] The adjustment module 404 is used to adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0126] Optionally, the object is a core.
[0127] The configuration module 401 is further used to configure a first maximum read / write duration of the first object to the DDR and a second maximum read / write duration of the second object to the DDR.
[0128] The adjustment module 404 is configured to estimate a first estimated bandwidth and a first estimated maximum read / write duration of a next time slot based on the first access data and the first maximum read / write duration of the current time slot, and to estimate a second estimated bandwidth and a second estimated maximum read / write duration of the next time slot based on the second access data and the second maximum read / write duration of the current time slot.
[0129] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration < the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0130] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}. Wherein, min{} is a smaller function.
[0131] If the first estimated maximum read / write time > the first maximum read / write time and the second estimated maximum read / write time < the second maximum read / write time, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}.
[0132] If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
[0133] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step includes:
[0134] If the first priority ≥ the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step.
[0135] If the first priority is less than the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot minus the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot plus the bandwidth adjustment step.
[0136] Optionally, the first object is a downlink channel task within the core, and the second object is an uplink channel task within the core.
[0137] The initialization module 402 is further used to initialize the adjustment factor, the lower limit value of the block error rate and the upper limit value of the block error rate.
[0138] Optionally, the first access data is a block error rate of a first object, and the second access data is a block error rate of a second object.
[0139] The adjustment module 404 is used to adjust the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step if the first access data of the current time slot is greater than the block error rate lower limit and the second access data of the current time slot is less than the block error rate lower limit.
[0140] If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0141] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step size includes:
[0142] If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the current time slot for checking DDR access + the bandwidth adjustment step.
[0143] If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0144] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step size includes:
[0145] If the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step * adjustment factor.
[0146] Otherwise, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0147] The device provided in this embodiment adjusts the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing the storage read and write efficiency, and thus improving the overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding business problems caused by resource competition.
[0148] Based on the same inventive concept of the baseband software storage resource allocation method, this embodiment provides an electronic device, the electronic device such as Figure 3 As shown, it includes: a memory 501, a processor 502, and a computer program.
[0149] The computer program is stored in the memory 501 and is configured to be executed by the processor 502 to implement the above-mentioned baseband software storage resource allocation method.
[0150] Specifically,
[0151] A first bandwidth for a first object to access the DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object are configured.
[0152] Initialize bandwidth adjustment step size.
[0153] After the service is started, first access data of the first object to the DDR and second access data of the second object to the DDR are monitored.
[0154] Adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0155] Optionally, the object is a core.
[0156] The method further includes:
[0157] Configure a first maximum read / write duration of the first object to the DDR and a second maximum read / write duration of the second object to the DDR.
[0158] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0159] According to the first access data and the first maximum read / write duration of the current time slot, the first estimated bandwidth and the first estimated maximum read / write duration of the next time slot are estimated. According to the second access data and the second maximum read / write duration of the current time slot, the second estimated bandwidth and the second estimated maximum read / write duration of the next time slot are estimated.
[0160] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration < the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0161] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}. Wherein, min{} is a smaller function.
[0162] If the first estimated maximum read / write time > the first maximum read / write time and the second estimated maximum read / write time < the second maximum read / write time, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}.
[0163] If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
[0164] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step includes:
[0165] If the first priority ≥ the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step.
[0166] If the first priority is less than the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot minus the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot plus the bandwidth adjustment step.
[0167] Optionally, the first object is a downlink channel task within the core, and the second object is an uplink channel task within the core.
[0168] The method further includes:
[0169] Initialize the adjustment factor, block error rate lower limit value and block error rate upper limit value.
[0170] Optionally, the first access data is a block error rate of a first object, and the second access data is a block error rate of a second object.
[0171] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0172] If the first access data of the current time slot is greater than the block error rate lower limit, and the second access data of the current time slot is less than the block error rate lower limit, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step.
[0173] If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0174] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step size includes:
[0175] If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the current time slot for checking DDR access + the bandwidth adjustment step.
[0176] If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0177] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step size includes:
[0178] If the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step * adjustment factor.
[0179] Otherwise, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0180] The electronic device provided by this embodiment has a computer program executed by a processor to adjust the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing the storage read and write efficiency, and thus improving the overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding business problems caused by resource competition.
[0181] Based on the same inventive concept of the baseband software storage resource allocation method, this embodiment provides a computer-readable storage medium, and a computer program is stored thereon. The computer program is executed by a processor to implement the above-mentioned baseband software storage resource allocation method.
[0182] Specifically,
[0183] A first bandwidth for a first object to access the DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object are configured.
[0184] Initialize bandwidth adjustment step size.
[0185] After the service is started, first access data of the first object to the DDR and second access data of the second object to the DDR are monitored.
[0186] Adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
[0187] Optionally, the object is a core.
[0188] The method further includes:
[0189] Configure a first maximum read / write duration of the first object to the DDR and a second maximum read / write duration of the second object to the DDR.
[0190] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0191] According to the first access data and the first maximum read / write duration of the current time slot, the first estimated bandwidth and the first estimated maximum read / write duration of the next time slot are estimated. According to the second access data and the second maximum read / write duration of the current time slot, the second estimated bandwidth and the second estimated maximum read / write duration of the next time slot are estimated.
[0192] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration < the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0193] If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}. Wherein, min{} is a smaller function.
[0194] If the first estimated maximum read / write time > the first maximum read / write time and the second estimated maximum read / write time < the second maximum read / write time, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}.
[0195] If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
[0196] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step includes:
[0197] If the first priority ≥ the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step.
[0198] If the first priority is less than the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot minus the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot plus the bandwidth adjustment step.
[0199] Optionally, the first object is a downlink channel task within the core, and the second object is an uplink channel task within the core.
[0200] The method further includes:
[0201] Initialize the adjustment factor, block error rate lower limit value and block error rate upper limit value.
[0202] Optionally, the first access data is a block error rate of a first object, and the second access data is a block error rate of a second object.
[0203] According to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step, adjusting the first bandwidth and the second bandwidth of the next time slot, including:
[0204] If the first access data of the current time slot is greater than the block error rate lower limit, and the second access data of the current time slot is less than the block error rate lower limit, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step.
[0205] If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0206] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step size includes:
[0207] If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the current time slot for checking DDR access + the bandwidth adjustment step.
[0208] If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
[0209] Optionally, adjusting the first bandwidth and the second bandwidth of the next time slot according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step size includes:
[0210] If the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step * adjustment factor.
[0211] Otherwise, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
[0212] The computer-readable storage medium provided in this embodiment has a computer program thereon which is executed by a processor to adjust the bandwidth of the next time slot according to the access data of the current time slot, the bandwidth of the current time slot, the priority, and the bandwidth adjustment step, thereby realizing dynamic adjustment of the bandwidth, optimizing the storage read and write efficiency, and thus improving the overall processing performance, effectively managing and utilizing limited storage resources, reducing competition for storage resources, and avoiding business problems caused by resource competition.
[0213] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can adopt the form of complete hardware embodiments, complete software embodiments, or embodiments in combination with software and hardware. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that contain computer-usable program code. The scheme in the embodiments of the present application can be implemented in various computer languages, for example, object-oriented programming language Java and literal scripting language JavaScript, etc.
[0214] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0215] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0216] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0217] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. In the description of this application, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.
[0218] Although the preferred embodiments of the present application have been described, those skilled in the art may make other changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
[0219] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A method for allocating baseband software storage resources, characterized in that: The method comprises: Configure a first bandwidth for a first object to access DDR, a first priority for the first object, a second bandwidth for a second object to access DDR, and a second priority for the second object; Initialize bandwidth adjustment step size; After the service is started, monitoring first access data of the first object to the DDR and second access data of the second object to the DDR; Adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
2. The method according to claim 1, characterized in that The object is the nucleus; The method further comprises: Configure a first maximum read / write duration of the first object to the DDR and a second maximum read / write duration of the second object to the DDR; The method of adjusting the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step size includes: According to the first access data and the first maximum read / write duration of the current time slot, a first estimated bandwidth and a first estimated maximum read / write duration of the next time slot are estimated; according to the second access data and the second maximum read / write duration of the current time slot, a second estimated bandwidth and a second estimated maximum read / write duration of the next time slot are estimated; If the first estimated maximum read / write duration is less than the first maximum read / write duration and the second estimated maximum read / write duration is less than the second maximum read / write duration, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot; If the first estimated maximum read / write duration < the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth < the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot - min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}, and the second bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second estimated bandwidth - the second bandwidth of the current time slot), (the first bandwidth of the current time slot - the first estimated bandwidth)}; wherein min{} is a smaller function; If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration < the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth < the second bandwidth of the current time slot, then the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - min{(the second bandwidth of the current time slot - the second estimated bandwidth), (the first estimated bandwidth - the first bandwidth of the current time slot)}; If the first estimated maximum read / write duration > the first maximum read / write duration and the second estimated maximum read / write duration > the second maximum read / write duration, and at the same time, the first estimated bandwidth > the first bandwidth of the current time slot, and the second estimated bandwidth > the second bandwidth of the current time slot, then adjust the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step.
3. The method according to claim 2, characterized in that The step of adjusting the first bandwidth and the second bandwidth of the next time slot according to the first priority, the second priority and the bandwidth adjustment step size includes: If the first priority is greater than or equal to the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot - the bandwidth adjustment step; If the first priority is less than the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot minus the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the second bandwidth of the current time slot plus the bandwidth adjustment step.
4. The method according to claim 1, characterized in that The first object is a downlink channel task within the core, and the second object is an uplink channel task within the core; The method further comprises: Initialize the adjustment factor, block error rate lower limit value and block error rate upper limit value.
5. The method according to claim 4, characterized in that The first access data is a block error rate of a first object, and the second access data is a block error rate of a second object; The method of adjusting the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step size includes: If the first access data of the current time slot is greater than the block error rate lower limit, and the second access data of the current time slot is less than the block error rate lower limit, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step; If the first access data of the current time slot is not greater than the lower limit of the block error rate, or the second access data of the current time slot is not less than the lower limit of the block error rate, the first bandwidth and the second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
6. The method according to claim 5, characterized in that The method of adjusting the first bandwidth and the second bandwidth of the next time slot according to the number of downlink task timeouts, the first bandwidth of the current time slot, the second bandwidth of the current time slot, and the bandwidth adjustment step size includes: If the number of downlink task timeouts is greater than the timeout threshold, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + the bandwidth adjustment step, and the second bandwidth of the next time slot is adjusted to the third bandwidth of the current time slot for checking DDR access + the bandwidth adjustment step; If the number of downlink task timeouts is not greater than the timeout threshold, the first bandwidth and second bandwidth of the next time slot are adjusted according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step.
7. The method according to claim 5 or 6, characterized in that: The method of adjusting the first bandwidth and the second bandwidth of the next time slot according to the relationship between the second access data of the current time slot and the upper limit of the block error rate, the first bandwidth of the current time slot, the second bandwidth of the current time slot, the first priority, the second priority, and the bandwidth adjustment step size includes: If the first access data of the current time slot is greater than the lower limit of the block error rate, and the second access data of the current time slot is greater than the lower limit of the block error rate, but the second access data of the current time slot is less than the upper limit of the block error rate, then when the first priority > the second priority, the first bandwidth of the next time slot is adjusted to the first bandwidth of the current time slot + bandwidth adjustment step length * adjustment factor, and the second bandwidth of the next time slot is adjusted to the third bandwidth - bandwidth adjustment step length * adjustment factor; Otherwise, the first bandwidth of the current time slot is used as the first bandwidth of the next time slot, and the second bandwidth of the current time slot is used as the second bandwidth of the next time slot.
8. A baseband software storage resource allocation device, characterized in that: The device comprises: A configuration module, configured to configure a first bandwidth for a first object to access the DDR, a first priority for the first object, a second bandwidth for a second object to access the DDR, and a second priority for the second object; Initialization module, used to initialize the bandwidth adjustment step; A monitoring module, used for monitoring first access data of the first object to the DDR and second access data of the second object to the DDR after the service is started; The adjustment module is used to adjust the first bandwidth and the second bandwidth of the next time slot according to the first access data of the current time slot, the first bandwidth of the current time slot, the first priority, the second access data of the current time slot, the second bandwidth of the current time slot, the second priority, and the bandwidth adjustment step.
9. An electronic device, characterized in that: include: Memory; processor; as well as Computer programs; The computer program is stored in the memory and is configured to be executed by the processor to implement the method according to any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: A computer program is stored thereon; the computer program is executed by a processor to implement the method according to any one of claims 1 to 7.