Working frequency adjusting method, data processing system and electronic equipment

By monitoring the status of the task queue and the duration of timer recordings, and adjusting the operating frequency of the storage controller according to preset thresholds, the problem of high-frequency low-load memory is solved, energy consumption is reduced, and task distribution efficiency is improved.

CN122044331APending Publication Date: 2026-05-15HYGON INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HYGON INFORMATION TECH CO LTD
Filing Date
2026-01-30
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing methods for adjusting the operating frequency of memory are prone to high-frequency, low-load situations, which leads to increased power consumption and heat dissipation burden when the memory is running at high frequencies.

Method used

By monitoring the status of the task queue, a timer is used to record the first duration from the time the task queue is full to the time the task is sent, or the second duration from the time the task queue is empty to the time the task is written. Based on the comparison of the duration with a preset threshold, a frequency adjustment request is issued to adjust the operating frequency of the storage controller, including increasing, decreasing or setting it to standby mode.

Benefits of technology

It enables precise adjustment of the memory operating frequency, reduces high-frequency low-load situations, lowers the energy consumption of the memory controller, and improves the efficiency of task distribution and system stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122044331A_ABST
    Figure CN122044331A_ABST
Patent Text Reader

Abstract

The invention provides a working frequency adjusting method, a data processing system and electronic equipment, and relates to the technical field of electronics. The working frequency adjustment method comprises the following steps: monitoring the state of a task queue; the task queue is tasks needing to be distributed to a storage controller for execution; under the condition that the state of the task queue is monitored to be a full-writing state, monitoring that the task queue is in a first duration from the full-writing state until the task is sent to the storage controller; and if the first duration is greater than a first preset threshold value, sending a first frequency modulation request representing improvement of the working frequency of the storage controller.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of electronic technology, and more specifically, to a method for adjusting operating frequency, a data processing system, and an electronic device. Background Technology

[0002] As computing systems (such as servers, mobile terminals, and embedded devices) increasingly demand data processing capabilities, the bandwidth and response speed of memory (such as DRAM (Dynamic Random Access Memory), HBM (High Bandwidth Memory), and SRAM (Static Random Access Memory)) have become key factors affecting overall system performance. High-frequency memory operation leads to a significant increase in power consumption. In resource-constrained scenarios such as mobile devices and edge computing nodes, high-frequency memory operation results in a heavier heat dissipation burden. Therefore, a method is needed to adjust the memory frequency, allowing it to switch directly between different operating frequencies, thus preventing the memory from constantly operating at a high frequency.

[0003] Currently, the usual practice is to increase the memory's operating frequency after the used queue in the transaction queue exceeds a set threshold. However, exceeding the set threshold does not necessarily indicate a blockage, making this approach prone to high-frequency, low-load situations. Summary of the Invention

[0004] This application provides a method for adjusting the operating frequency, a data processing system, and an electronic device to solve the problem that existing methods for adjusting the operating frequency of memory are prone to high frequency and low load.

[0005] In a first aspect, this application provides a method for adjusting the operating frequency, comprising: monitoring the state of a task queue; the task queue being tasks that need to be distributed to a storage controller for execution; when the state of the task queue is monitored to be full, monitoring a first duration from when the task queue is in the full state until the task is sent to the storage controller; if the first duration is greater than a first preset threshold, issuing a first frequency adjustment request representing an increase in the operating frequency of the storage controller.

[0006] In this embodiment, the first duration is the time from when the task queue is full until the task queue sends a task to the storage controller. Therefore, the first duration reflects the efficiency of the task queue sending tasks to the storage controller, thus indirectly reflecting the efficiency of the storage controller in processing tasks (the storage controller can only process a limited number of tasks simultaneously; it can only receive new tasks after all tasks have been processed). If the first duration exceeds a first preset threshold, and the task queue is full (indicating that no new tasks can be written to the task queue at least within the first duration), it indicates that the task queue may be blocked. Compared to existing methods that use the queue exceeding a set threshold for determination, this solution provides a more accurate determination of blocking.

[0007] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, after issuing a first frequency tuning request representing an increase in the operating frequency of the storage controller, the method further includes: in response to a blocking request sent by the storage controller, stopping the sending of tasks to the storage controller; and in response to an unblocking request sent by the storage controller, lifting the restriction on stopping the sending of tasks to the storage controller, and allowing the sending of tasks to the storage controller to continue.

[0008] In this embodiment, a blocking request is used to prevent tasks from being sent to the storage controller while the storage controller is adjusting its operating frequency, which could lead to errors in task execution. Conversely, after the storage controller completes its frequency adjustment, an unblocking request is used to indicate that tasks can continue to be sent to the storage controller, ensuring normal task distribution in the task queue.

[0009] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, the first duration of monitoring the task queue from the time it is in the full state until the task is sent to the storage controller includes: starting a timer when the task queue is detected to be full, until the task queue sends the task to the storage controller; and resetting the timer to zero and stopping the timer when the task queue has sent the task to the storage controller.

[0010] In this embodiment, the monitoring of the task queue's full state is used as the starting point for timing, and sending tasks from the task queue to the storage controller is used as the ending point for timing, thus accurately obtaining the first duration. Simultaneously, the timer is reset to zero each time it stops, ensuring that each time timing begins, it starts from zero.

[0011] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, the method further includes: when the state of the task queue is detected to be empty, monitoring the state of the task queue to be empty for a second duration until a new task is written into the task queue; if the second duration is greater than a second preset threshold, issuing a second frequency adjustment request representing a reduction in the operating frequency of the storage controller.

[0012] In this embodiment, the second duration is the time from when the task queue is empty until a new task is written into the task queue. Therefore, the second duration reflects the frequency of task reception in the task queue. If the second duration is greater than a second preset threshold, it indicates that the current frequency of writing tasks into the task queue is low. Therefore, the operating frequency of the storage controller can be reduced to decrease the power consumption of the storage controller.

[0013] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, after issuing a second frequency modulation request representing a reduction in the operating frequency of the storage controller, the method further includes: in response to a blocking request sent by the storage controller, stopping the transmission of tasks to the storage controller; and in response to an unblocking request sent by the storage controller, lifting the restriction on stopping the transmission of tasks to the storage controller, allowing the transmission of tasks to the storage controller to continue.

[0014] In this embodiment, a blocking request is used to prevent tasks from being sent to the storage controller while the storage controller is adjusting its operating frequency, which could lead to errors in task execution. Conversely, after the storage controller completes its frequency adjustment, an unblocking request is used to indicate that tasks can continue to be sent to the storage controller, ensuring normal task distribution in the task queue.

[0015] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, when the task queue is found to be empty, a second duration is defined as the time from when the task queue is found to be empty until a new task is written into the task queue, including: starting a timer when the task queue is found to be empty until a new task is written into the task queue; and resetting the timer and stopping the timer when a new task is written into the task queue.

[0016] In this embodiment, the start of timing is defined as when the task queue is empty, and the end of timing is defined as when a new task is written into the task queue, thus accurately obtaining the second duration. Simultaneously, the timer is reset to zero each time it stops, ensuring that each time timing begins, it starts from zero.

[0017] In conjunction with the technical solution provided in the first aspect above, in some possible implementations, the method further includes: if the second duration is greater than a third preset threshold, setting the operating frequency of the storage controller to the operating frequency of the standby state; wherein the third preset threshold is greater than the second preset threshold.

[0018] In this embodiment of the application, when the second duration is greater than the third preset threshold, it indicates that the frequency of writing new tasks to the task queue is very low. Therefore, the operating frequency of the storage controller can be set to the operating frequency of the standby state to further reduce the power consumption of the storage controller.

[0019] Secondly, this application provides a data processing system, including: a data bus and a storage controller; the data bus includes an analysis and decision module and a data bus body; the data bus body is used to distribute tasks to the storage controller based on a task queue; the analysis and decision module is used to monitor the status of the task queue; the task queue consists of tasks that need to be distributed to the storage controller for execution; when the status of the task queue is monitored to be full, a first duration is monitored from the time the task queue is in the full state until the task is sent to the storage controller; if the first duration is greater than a first preset threshold, a first frequency modulation request is issued representing an increase in the operating frequency of the storage controller; the storage controller is used to respond to the first frequency modulation request and increase its own operating frequency.

[0020] In this embodiment, the data bus and storage controller work together to monitor the first duration, compare it with a first preset threshold, and adjust the operating frequency of the storage controller. This reduces the risk of high-frequency, low-load situations. Furthermore, since both the data bus and storage controller are hardware modules, this solution offers faster response times compared to software-based methods, enabling more timely adjustments to the storage controller's operating frequency and improving the efficiency of frequency adjustment.

[0021] In conjunction with the technical solution provided in the second aspect above, in some possible implementations, the analysis and decision module is further configured to monitor a second duration from the time the task queue is empty until a new task is written into the task queue when the task queue is found to be empty; if the second duration is greater than a second preset threshold, issue a second frequency adjustment request indicating a reduction in the operating frequency of the storage controller; the storage controller is further configured to reduce its own operating frequency in response to the second frequency adjustment request.

[0022] In conjunction with the technical solution provided in the second aspect above, in some possible implementations, the analysis and decision module includes: a queue detection unit, a first timer, a second timer, a first threshold comparison unit, and a second threshold comparison unit; the queue detection unit is used to monitor the status of the task queue; and when the task queue is full, it starts the first timer and records a first duration; the first timer is used to transmit the recorded first duration to the first threshold comparison unit, and when the data bus body sends a task to the storage controller, it resets the timer and stops timing; the first threshold comparison unit is used to compare the first duration with a first preset threshold, and when the first duration is greater than the first preset threshold, it sends a first frequency adjustment request to the storage controller; the queue detection unit is also used to start the second timer and record a second duration when the task queue is empty; the second timer is used to transmit the recorded second duration to the second threshold comparison unit, and when a new task is written into the task queue, it resets the timer and stops timing; the second threshold comparison unit is used to compare the second duration with a second preset threshold, and when the second duration is greater than the second preset threshold, it sends a second frequency adjustment request to the storage controller.

[0023] In this embodiment, a queue detection unit monitors the task queue status to determine whether the first or second timer needs to be started. The first and second threshold comparison units facilitate quick and easy comparison of the duration of each timer with its corresponding preset threshold. This solution implements the analysis module's functionality with a simple circuit, reducing circuit complexity.

[0024] In conjunction with the technical solution provided in the second aspect above, in some possible implementations, the storage controller includes: a frequency adjustment module and a storage controller body; the storage controller body is used to receive and execute tasks distributed by the data bus body; the frequency adjustment module is used to receive the first frequency adjustment request and increase the operating frequency of the storage controller body based on the first frequency adjustment request; or, to receive the second frequency adjustment request and decrease the operating frequency of the storage controller body based on the second frequency adjustment request.

[0025] In conjunction with the technical solution provided in the second aspect above, in some possible implementations, the storage controller further includes: a request blocking module, configured to send a blocking request to the data bus body after the frequency adjustment module receives the target frequency modulation request; the target frequency modulation request is either the first frequency modulation request or the second frequency modulation request; the data bus body is further configured to stop sending tasks to the storage controller body in response to the blocking request sent by the storage controller; the frequency adjustment module is further configured to send a feedback signal indicating that the operating frequency adjustment is complete to the request blocking module after adjusting the operating frequency of the storage controller body based on the target frequency modulation request; the request blocking module is further configured to send an unblocking request to the data bus body in response to the feedback signal; the data bus body is further configured to release the restriction of stopping sending tasks to the storage controller in response to the unblocking request.

[0026] In conjunction with the technical solution provided in the second aspect above, in some possible implementations, the analysis and decision module is further configured to send a third instruction to the frequency adjustment module, representing setting the operating frequency to the operating frequency of the standby state, if the second duration is greater than the third preset threshold; wherein, the third preset threshold is greater than the second preset threshold; the frequency adjustment module is further configured to set the operating frequency of the main body of the storage controller to the operating frequency of the standby state after receiving the third instruction.

[0027] Thirdly, this application provides an electronic device, including: the data processing system as described in the second aspect above, and / or, in conjunction with any possible implementation of the second aspect above. Attached Figure Description

[0028] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0029] Figure 1 This is a flowchart illustrating the first operating frequency adjustment method according to an embodiment of this application; Figure 2 This is a flowchart illustrating the second operating frequency adjustment method according to an embodiment of this application; Figure 3 This is a structural block diagram of a data processing system shown in an embodiment of this application; Figure 4 This is a working logic structure diagram of an analysis and decision-making module shown in an embodiment of this application; Figure 5 This is a structural block diagram illustrating an analysis and decision-making module according to an embodiment of this application; Figure 6 This is a structural block diagram of a second data processing system shown in an embodiment of this application; Figure 7 This is a working logic structure diagram of a storage controller shown in an embodiment of this application; Figure 8 This is a working logic structure diagram of a storage controller body shown in an embodiment of this application; Figure 9 This is a structural block diagram of a storage controller shown in an embodiment of this application; Figure 10 This is a structural block diagram of a data bus body shown in an embodiment of this application.

[0030] Figure Numbers: 100-Data Processing System; 110-Data Bus; 111-Analysis and Decision Module; 112-Data Bus Main Body; 1111-Queue Detection Unit; 1112-First Timer; 1113-Second Timer; 1114-First Threshold Comparison Unit; 1115-Second Threshold Comparison Unit; 120-Storage Controller; 121-Frequency Adjustment Module; 122-Storage Controller Main Body; 1121-Request Input / Output Queue; 1122-Response Input / Output Queue; 1123-Blocking State Detection Module; 1221-Request Response Module; 1222-Frequency Switching Module; 1223-Frequency Adjustment Parameter Register; 1224-PHY. Detailed Implementation

[0031] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.

[0032] In the description of this application, unless otherwise expressly specified and limited, the terms “setup,” “installation,” and “connection” should be interpreted broadly, for example, as electrical connection or communication connection.

[0033] It should be noted that similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. Furthermore, relational terms such as "first," "second," etc., in the description of this application are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus.

[0034] The technical solution of this application will now be described in detail with reference to the accompanying drawings.

[0035] Please see Figure 1 , Figure 1 This application illustrates a method for adjusting the operating frequency, which will be described below in conjunction with... Figure 1 The steps involved are explained.

[0036] S100: Monitor the status of the task queue.

[0037] The task queue contains tasks that need to be dispatched to the storage controller for execution.

[0038] Optionally, monitoring the status of the task queue can involve monitoring the number of used queues. If the number of used queues is 0, it indicates that the task queue is empty (i.e., in the Empty state). If the number of used queues equals the maximum number of queues in the task queue, it indicates that the task queue is full (i.e., in the Full state).

[0039] Alternatively, if the task queue has built-in status monitoring, the current status of the task queue can be obtained directly from the task queue.

[0040] The specific methods for monitoring the status of the task queue are not limited to the examples given here.

[0041] S200: When the task queue is detected to be full, monitor the task queue for the first duration from when it is full until the task is sent to the storage controller.

[0042] In one implementation, the method for monitoring the first duration from when the task queue is full until the task is sent to the storage controller can be as follows: when the task queue is detected to be full, start timing until the task queue sends the task to the storage controller; when the task queue sends the task to the storage controller, reset the timing to zero and stop timing.

[0043] Optionally, a timer can be used for timing. That is, when the task queue is detected to be full, the first timer is started and the timing continues until the task queue sends a task to the storage controller, at which point the first timer is reset to zero and stops timing.

[0044] S300: If the first duration is greater than the first preset threshold, issue a first frequency modulation request that indicates an increase in the operating frequency of the storage controller.

[0045] Optionally, the specific value of the first preset threshold can be set according to actual needs, and its specific value is not restricted here.

[0046] Optionally, the first preset threshold may be determined based on the average time it takes for the storage controller to process a single task at its highest operating frequency.

[0047] For example, the first preset threshold could be slightly greater than the average time it takes for the storage controller to process a single task at its highest operating frequency. This example is for illustrative purposes only, and the specific value of the first preset threshold is not limited to the example given here.

[0048] In one implementation, determining whether the first duration is greater than a first preset threshold can be done as follows: when the task queue is detected to be full, timing begins and continues until the task queue sends a task to the storage controller, thus obtaining the first duration. Then, the first duration is compared with the first preset threshold to determine whether the first duration is greater than the first preset threshold.

[0049] Optionally, the timing duration can be periodically compared with a first preset threshold. That is, when the task queue is detected to be full, after timing begins, the timing duration is compared with the first preset threshold at preset intervals. If the comparison result indicates that the first duration is greater than the first preset threshold, the operating frequency of the storage controller is increased.

[0050] In this case, if the comparison result indicates that the first duration is greater than the first preset threshold, timing can continue. And if the first duration of the timing exceeds the fourth preset threshold, the operating frequency of the storage controller is increased again.

[0051] Optionally, the frequency modulation request may include all the frequency modulation parameters required for the storage controller to frequency modulate.

[0052] For example, a frequency modulation request may include frequency modulation parameters such as clock frequency, timing parameters, memory depth, and bandwidth. This example is for illustrative purposes only; the types of parameters included in a frequency modulation request are not limited to those illustrated here.

[0053] In this scenario, multiple frequency modulation parameters corresponding to different operating frequencies can be pre-stored. When it is necessary to increase the operating frequency of the storage controller, the frequency modulation parameters corresponding to a target operating frequency higher than the current operating frequency of the storage controller are determined. These target operating frequency modulation parameters are then sent to the storage controller as part of a frequency modulation request.

[0054] For example, four operating frequencies, P0, P1, P2, and P3, from low to high, are pre-set, and the corresponding frequency modulation parameters for each of these four frequencies are stored. If the current operating frequency of the storage controller is P0, then when it is necessary to increase the operating frequency of the storage controller, the frequency modulation parameter corresponding to P1 is sent to the storage controller via a frequency modulation request, so that the storage controller can increase its own operating frequency to P1 based on the frequency modulation parameter corresponding to P1. This example is only for illustrative purposes and should not be construed as a limitation of this application.

[0055] Optionally, the frequency modulation request may only include a unique identifier representing the operating frequency. The actual frequency modulation parameters (such as clock frequency) required for frequency modulation are stored in the storage controller. That is, the storage controller contains frequency modulation parameters corresponding to multiple operating frequency numbers. When frequency modulation is required, the operating frequency number is sent to the storage controller via a frequency modulation request, so that the storage controller can determine the frequency modulation parameter corresponding to the received operating frequency number from all stored frequency modulation parameters, thereby achieving its own frequency modulation.

[0056] For example, the storage controller can store the frequency modulation parameters corresponding to frequency point 1, frequency point 2, frequency point 3, and frequency point 4. Frequency points 1, 2, 3, and 4 are the operating frequency numbers.

[0057] In this scenario, when it's necessary to increase the operating frequency of the storage controller, a target operating frequency higher than the current operating frequency of the storage controller is determined. Then, the number corresponding to the target operating frequency is sent to the storage controller via a frequency tuning request. This allows the storage controller to determine the corresponding tuning parameters for the target operating frequency based on the determined tuning parameters, and to increase its own operating frequency to the target operating frequency based on these parameters.

[0058] For example, four preset operating frequencies, numbered P0, P1, P2, and P3 from low to high, are stored in the storage controller, along with their corresponding frequency modulation parameters. If the storage controller's current operating frequency is P0, and an increase in its operating frequency is required, a frequency modulation request for P1 is sent to the storage controller. This allows the storage controller to determine the corresponding frequency modulation parameter from its stored parameters and increase its operating frequency to P1. This example is for illustrative purposes only and should not be construed as limiting the scope of this application.

[0059] In one implementation, after issuing a first frequency tuning request indicating an increase in the operating frequency of the storage controller, the following further steps can be taken: In response to a blocking request sent by the storage controller, sending tasks to the storage controller can be stopped. In response to an unblocking request sent by the storage controller, the restriction on stopping sending tasks to the storage controller can be lifted, allowing tasks to continue being sent to the storage controller.

[0060] By blocking requests, tasks are prevented from being sent to the storage controller during frequency adjustment, which could lead to errors in task execution. Conversely, once the storage controller has completed frequency adjustment, unblocking requests indicate that tasks can continue to be sent to the storage controller, ensuring normal task distribution in the task queue.

[0061] In one implementation, if the task queue is found to be empty, a second duration can be monitored from the start of the empty task queue until a new task is written into the task queue. If the second duration exceeds a second preset threshold, a second frequency adjustment request is issued, indicating a reduction in the operating frequency of the storage controller.

[0062] The second duration is the time from when the task queue is empty until a new task is written into the task queue. Therefore, the second duration reflects the frequency of task reception in the task queue. If the second duration is greater than a second preset threshold, it indicates that the current frequency of writing tasks to the task queue is low. Therefore, the operating frequency of the storage controller can be reduced to decrease the power consumption of the storage controller.

[0063] Optionally, the specific value of the second preset threshold can be set according to actual needs, and its specific value is not restricted here.

[0064] Optionally, the first preset threshold can be determined based on the average time it takes for the storage controller to process a single task at its lowest operating frequency.

[0065] For example, the second preset threshold could be slightly less than the average time it takes for the storage controller to process a single task at its lowest operating frequency. This example is for illustrative purposes only, and the specific value of the second preset threshold is not limited to the example given here.

[0066] In one implementation, when the task queue is found to be empty, the second duration from the start of monitoring the empty task queue until a new task is written into the task queue can be: when the task queue is found to be empty, start timing until a new task is written into the task queue; when a new task is written into the task queue, reset the timing to zero and stop timing.

[0067] Optionally, a timer can be used for timing. That is, when the task queue is detected to be empty, a second timer is started. The first timer is reset and stops when a new task is written to the task queue.

[0068] For example, if the task queue is monitored to become empty at 5ms and a new task is written to the task queue at 10ms, then the second duration should be 5ms. This example is for illustrative purposes only and should not be construed as a limitation of this application.

[0069] In one implementation, determining whether the second duration is greater than the second preset threshold can be done as follows: when the task queue is detected to be empty, a second timer is started and continues counting until a new task is written into the task queue, at which point the timer stops, thus obtaining the second duration. The second duration is then compared with the second preset threshold to determine whether the second duration is greater than the second preset threshold.

[0070] Optionally, the second duration of the timing can be periodically compared with a second preset threshold. That is, when the task queue is detected to be full, after timing begins, the second duration of the timing is compared with the second preset threshold at preset intervals. If the comparison result indicates that the second duration is greater than the second preset threshold, the operating frequency of the storage controller is reduced.

[0071] Optionally, if the comparison result indicates that the second duration is greater than the second preset threshold, timing can continue. And if the second duration of the timing exceeds the third preset threshold, the operating frequency of the storage controller is set to the standby operating frequency. The third preset threshold is greater than the second preset threshold.

[0072] Setting the operating frequency of the storage controller to the standby operating frequency is the same as the method described above for reducing the operating frequency of the storage controller, and will not be repeated here for the sake of brevity.

[0073] In one implementation, after issuing a second frequency modulation request indicating a reduction in the operating frequency of the storage controller, the following further steps can be taken: In response to a blocking request sent by the storage controller, sending tasks to the storage controller can be stopped. In response to an unblocking request sent by the storage controller, the restriction on stopping sending tasks to the storage controller can be lifted, allowing tasks to continue being sent to the storage controller.

[0074] The specific settings for frequency modulation requests have been clearly described above, and will not be repeated here for the sake of brevity.

[0075] Optionally, if the frequency adjustment request includes all the frequency adjustment parameters required for the storage controller, multiple frequency adjustment parameters corresponding to different operating frequencies may be pre-stored. When it is necessary to reduce the operating frequency of the storage controller, the frequency adjustment parameters corresponding to a target operating frequency lower than the current operating frequency of the storage controller are determined. Then, the frequency adjustment parameters corresponding to the target operating frequency are sent to the storage controller through the frequency adjustment request.

[0076] For example, four operating frequencies, P0, P1, P2, and P3, from low to high, are pre-set, and the corresponding frequency modulation parameters for each of these four frequencies are stored. If the current operating frequency of the storage controller is P2, then when it is necessary to reduce the operating frequency of the storage controller, the frequency modulation parameter corresponding to P1 is sent to the storage controller via a frequency modulation request, so that the storage controller can reduce its own operating frequency to P1 based on the frequency modulation parameter corresponding to P1. This example is only for illustrative purposes and should not be construed as a limitation of this application.

[0077] Optionally, if the frequency adjustment request only includes an operating frequency number, when it is necessary to reduce the operating frequency of the storage controller, a target operating frequency lower than the current operating frequency of the storage controller is determined. Then, the number corresponding to the target operating frequency is sent to the storage controller via the frequency adjustment request. This allows the storage controller to determine the frequency adjustment parameters corresponding to the target operating frequency based on the number, and to reduce its own operating frequency to the target operating frequency based on the determined frequency adjustment parameters.

[0078] For example, four preset operating frequencies, numbered P0, P1, P2, and P3 from low to high, are stored in the storage controller, along with their corresponding frequency modulation parameters. If the storage controller's current operating frequency is P2, then when it's necessary to lower the storage controller's operating frequency, a frequency modulation request for P1 is sent to the storage controller. This allows the storage controller to determine the corresponding frequency modulation parameter from its stored parameters and lower its operating frequency to P1. This example is for illustrative purposes only and should not be construed as limiting the scope of this application.

[0079] To facilitate understanding of the above-mentioned operating frequency adjustment method, the following will combine... Figure 2The steps involved are explained.

[0080] like Figure 2 As shown, the status of the task queue is monitored first. If the task queue is found to be full, the monitoring continues for the first duration from when the task queue is full until the task is sent to the storage controller.

[0081] If the first duration is less than or equal to the first preset threshold, no adjustment of the working frequency will be made.

[0082] If the first duration exceeds a first preset threshold, a first frequency adjustment request is sent to the storage controller. In response to a blocking request from the storage controller, task transmission to the storage controller stops. After the storage controller's operating frequency increases, in response to an unblocking request from the storage controller, the restriction on stopping task transmission to the storage controller is lifted, and task transmission to the storage controller can resume.

[0083] If the task queue is found to be empty, monitor the task queue for a period of time from the start of the empty task queue until a new task is written into the task queue.

[0084] If the second duration is less than or equal to the second preset threshold, no adjustment of the working frequency will be made.

[0085] If the second duration exceeds a second preset threshold, a second frequency modulation request indicating a reduction in the operating frequency of the storage controller is issued. In response to a blocking request from the storage controller, task transmission to the storage controller ceases. Subsequently, in response to an unblocking request from the storage controller, the restriction on stopping task transmission to the storage controller is lifted, allowing task transmission to resume.

[0086] Figure 2 The specific implementation methods of each step shown have been clearly described above, and will not be repeated here for the sake of brevity.

[0087] Optionally, the above-described operating frequency adjustment method can be applied to a data bus used to distribute tasks to the storage controller.

[0088] Based on the same technical concept, this application also provides a data processing system, such as... Figure 3 As shown, the data processing system 100 includes a data bus 110 and a storage controller 120.

[0089] The data bus 110 includes an analysis and decision module 111 and a data bus body 112; the data bus body 112 is used to distribute tasks to the storage controller 120 based on the task queue.

[0090] The analysis and decision module 111 is used to monitor the status of the task queue; the task queue consists of tasks that need to be distributed to the storage controller 120 for execution; when the status of the task queue is monitored to be full, the first duration from when the task queue is full until the task is sent to the storage controller 120 is monitored; if the first duration is greater than a first preset threshold, a first frequency adjustment request is issued to indicate that the operating frequency of the storage controller 120 is increased.

[0091] The storage controller 120 is used to increase its own operating frequency in response to the first frequency modulation request.

[0092] The analysis and decision module 111 is also used to monitor the second duration from the start of the empty task queue until a new task is written into the task queue when the task queue is found to be empty; if the second duration is greater than a second preset threshold, a second frequency adjustment request is issued to indicate a reduction in the operating frequency of the storage controller 120.

[0093] The storage controller 120 is also used to reduce its own operating frequency in response to a second frequency modulation request.

[0094] To facilitate understanding of the specific working logic of the analysis and decision-making module 111 described above, the following will combine... Figure 4 The specific working logic of the analysis and decision-making module 111 is explained.

[0095] like Figure 4 As shown, the analysis and decision module 111 initializes the first preset threshold and the second preset threshold. Then it monitors the status of the task queue.

[0096] If the task queue is detected to be full, the first timer 1112 is started. It is then determined whether the first duration of the first timer 1112 exceeds a first preset threshold. If the first duration exceeds the first preset threshold, a first frequency adjustment request indicating an increase in operating frequency is sent to the storage controller. If the first duration is less than or equal to the first preset threshold, it is further determined whether the first duration of the first timer 1112 exceeds the first preset threshold.

[0097] If the task queue becomes empty, start the second timer 1113. Then, determine if the second duration of the second timer 1113 exceeds a second preset threshold. If the second duration exceeds the second preset threshold, send a second frequency adjustment request indicating a reduction in operating frequency to the storage controller. If the second duration is less than or equal to the second preset threshold, continue to determine if the second duration of the second timer 1113 exceeds the second preset threshold.

[0098] In one implementation, the analysis and decision module 111 can be a hardware unit with data processing capabilities, such as a programmable logic array or a microprocessor, to realize the functions of the aforementioned analysis and decision module 111.

[0099] In one implementation, such as Figure 5 As shown, the analysis and decision module 111 may also include: a queue detection unit 1111, a first timer 1112, a second timer 1113, a first threshold comparison unit 1114, and a second threshold comparison unit 1115.

[0100] The queue detection unit 1111 is used to monitor the status of the task queue; and when the task queue is full, the first timer 1112 is started to record the first duration.

[0101] The first timer 1112 is used to transmit the recorded first duration to the first threshold comparison unit 1114, and to reset the timer and stop the timer when the data bus body 112 sends a task to the storage controller 120.

[0102] Optionally, the first timer 1112 can be any existing timer of any type, and there is no restriction on the specific type of the first timer 1112 here.

[0103] The first threshold comparison unit 1114 is used to compare the first duration with the first preset threshold, and send a first frequency modulation request to the storage controller 120 when the first duration is greater than the first preset threshold.

[0104] Optionally, the first threshold comparison unit 1114 can be a hardware unit capable of comparing two data points, such as a comparator. One end of the first threshold comparison unit 1114 is used to receive a first preset threshold, and the other end of the first threshold comparison unit 1114 is used to connect to the first timer 1112 to compare the first duration of the first timer 1112 with the first preset threshold.

[0105] The queue detection unit 1111 is also used to start the second timer 1113 and record the second duration when the task queue is empty.

[0106] The second timer 1113 is used to transmit the recorded second duration to the second threshold comparison unit 1115, and to reset the timer and stop the timer when a new task is written into the task queue.

[0107] Optionally, the second timer 1113 can be any existing timer of any type, and there is no restriction on the specific type of the second timer 1113 here.

[0108] The second threshold comparison unit 1115 is used to compare the second duration with the second preset threshold, and send a second frequency modulation request to the storage controller 120 if the second duration is greater than the second preset threshold.

[0109] Optionally, the second threshold comparison unit 1115 can be a hardware unit capable of comparing two data points, such as a comparator. One end of the second threshold comparison unit 1115 is used to receive a second preset threshold, and the other end of the second threshold comparison unit 1115 is used to connect to the second timer 1113 to compare the second duration of the second timer 1113 with the second preset threshold.

[0110] In one implementation, such as Figure 6 As shown, the storage controller 120 includes a frequency adjustment module 121 and a storage controller body 122.

[0111] The storage controller body 122 is used to receive and execute tasks distributed by the data bus body 112; The storage controller body 122 can be any existing storage controller circuit capable of receiving and executing tasks sent by the data bus.

[0112] The frequency adjustment module 121 is used to receive a first frequency adjustment request and increase the operating frequency of the storage controller body 122 based on the first frequency adjustment request; or, to receive a second frequency adjustment request and decrease the operating frequency of the storage controller body 122 based on the second frequency adjustment request.

[0113] The frequency adjustment module 121 can be a digital logic circuit that can perform the above functions, or it can be a microprocessor, programmable logic controller, etc.

[0114] In one embodiment, the storage controller 120 further includes a request blocking module 123, which is used to send a blocking request to the data bus body 112 after the frequency adjustment module 121 receives the target frequency modulation request; the target frequency modulation request is a first frequency modulation request or a second frequency modulation request.

[0115] The data bus body 112 is also used to stop sending tasks to the storage controller body 122 in response to a blocking request sent by the storage controller 120.

[0116] The frequency adjustment module 121 is also used to send a feedback signal indicating that the adjustment of the operating frequency is complete to the request blocking module 123 after adjusting the operating frequency of the storage controller body 122 based on the target frequency adjustment request.

[0117] The request blocking module 123 is also used to send a release blocking request to the data bus body 112 in response to a feedback signal.

[0118] The request blocking module 123 can be a digital logic circuit that can perform the above functions, or it can be a microprocessor, programmable logic controller, etc.

[0119] In one implementation, the execution logic of the storage controller 120 is as follows: Figure 7 As shown.

[0120] The storage controller 120 determines whether it has received a first frequency modulation request that indicates an increase in the operating frequency.

[0121] If the first frequency modulation request is not received, then determine whether the second frequency modulation request, which represents a reduction in the operating frequency, has been received.

[0122] If the first frequency modulation request or the second frequency modulation request is received, a blocking request is sent to the data bus 110. The blocking request instructs the data bus 110 to stop sending tasks to the storage controller 120. The block then adjusts its operating frequency based on the frequency modulation request (either the first or second request). After the operating frequency adjustment, an unblocking request is sent to the data bus 110. The unblocking request instructs the data bus 110 to continue sending tasks to the storage controller 120.

[0123] If no second frequency modulation request is received, no operating frequency adjustment will be performed.

[0124] The data bus body 112 is also used to release the restriction on stopping the transmission of tasks to the storage controller 120 in response to an unblocking request.

[0125] The analysis and decision module 111 is also used to send a third instruction to the frequency adjustment module 121, representing the working frequency of setting the working frequency to the standby state, if the second duration is greater than the third preset threshold; wherein the third preset threshold is greater than the second preset threshold.

[0126] The frequency adjustment module 121 is also used to set the operating frequency of the storage controller body 122 to the operating frequency of the standby state after receiving the third instruction.

[0127] Optionally, the frequency adjustment module 121 can be implemented using existing circuits or electronic devices that can implement the execution logic of the frequency adjustment module 121.

[0128] Optionally, the request blocking module 123 can be implemented by existing circuits or electronic devices that can implement the execution logic of the request blocking module 123.

[0129] To facilitate understanding of the specific processing logic of the storage controller body 122 during the process of adjusting the operating frequency of the storage controller using this solution, Figure 8 Let's take an example to illustrate.

[0130] like Figure 8 As shown, the storage controller body 122 first checks whether a frequency modulation request has been received. If no frequency modulation request is received, it continues to process other received requests and responses.

[0131] Upon receiving a frequency modulation request, the system updates the parameters based on the corresponding frequency modulation parameters and clears any unprocessed requests within its own system. Then, based on the updated parameters, it performs a frequency switching operation. After completing the operating frequency switch, it notifies the request blocking module that the operating frequency adjustment is complete, so that the request blocking module sends an unblocking request to the data bus 110.

[0132] In one embodiment, the data processing system further includes storage particles, which, together with the storage controller, constitute a memory with complete storage functionality. In this embodiment, the storage controller body 122 may include a request response module 1221, a frequency switching module 1222, a frequency modulation parameter register 1223, and a PHY (Physical, port physical layer) 1224, such as... Figure 9 As shown.

[0133] The request response module 1221 receives tasks from the data bus 110 and returns the task processing results. The frequency switching module 1222 receives frequency adjustment requests sent by the analysis and decision module 111, retrieves the corresponding frequency adjustment parameters from the frequency adjustment parameter register 1223 according to the frequency adjustment request, and performs frequency switching operations on the storage controller 120. After the operating frequency adjustment is completed, a feedback signal indicating that the operating frequency adjustment is complete is returned to the analysis and decision module 111.

[0134] PHY1224 is used to convert the logic commands and / or digital data corresponding to the request response module 1221, the frequency switching module 1222, and the frequency modulation parameter register 1223 into actual electrical signals that can be transmitted on the physical circuit, and send them to the memory chip.

[0135] In one implementation, the structure of the data bus body 112 can be as follows: Figure 10 As shown, the main body of the data bus 112 includes a request input / output queue 1121, a response input / output queue 1122, and a blocking state detection module 1123.

[0136] The request input / output queue 1121 (also known as the task queue) is used to store tasks that need to be sent to the storage controller 120 (e.g., tasks issued by the processor) and to output the current status to the analysis and decision module 111.

[0137] The response input / output queue 1122 is used to store response information returned by the storage controller 120 to the data bus body 112, and to send this response information (e.g., to the processor).

[0138] The blocking state detection module 1123 is used to receive blocking requests / unblocking requests sent by the storage controller 120. Upon receiving a blocking request, it prevents the data bus 110 from sending tasks to the storage controller. Upon receiving an unblocking request, it releases the blocking state of the data bus 110 and continues sending tasks to the storage controller 120.

[0139] Based on the same technical concept, this application also provides an electronic device. This electronic device includes the aforementioned data processing system 100.

[0140] The specific implementation of the data processing system 100 has been clearly described above, and will not be repeated here for the sake of brevity.

[0141] The aforementioned electronic devices include, but are not limited to, personal computers, servers, mobile phones, and tablet computers.

[0142] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for adjusting operating frequency, characterized in that, include: Monitor the status of the task queue; The task queue contains tasks that need to be distributed to the storage controller for execution. If the task queue is detected to be in a full state, the monitoring period from when the task queue is in the full state until the first duration of sending the task to the storage controller is recorded. If the first duration is greater than a first preset threshold, a first frequency tuning request is issued, representing an increase in the operating frequency of the storage controller.

2. The method according to claim 1, characterized in that, After issuing a first frequency tuning request characterizing an increase in the operating frequency of the memory controller, the method further includes: In response to a blocking request sent by the storage controller, stop sending tasks to the storage controller; In response to the unblocking request sent by the storage controller, the restriction on stopping the sending of tasks to the storage controller is lifted, and tasks can continue to be sent to the storage controller.

3. The method according to claim 1, characterized in that, The period from when the task queue is in the full state until the first duration of sending a task to the storage controller includes: If the task queue is found to be full, a timer is started until the task queue sends a task to the storage controller; if the task queue sends a task to the storage controller, the timer is reset to zero and the timer stops.

4. The method according to claim 1, characterized in that, The method further includes: If the task queue is found to be empty, the monitoring period continues from the time the task queue is empty until a new task is written into the task queue for a second duration. If the second duration is greater than the second preset threshold, a second frequency modulation request is issued, representing a reduction in the operating frequency of the storage controller.

5. The method according to claim 4, characterized in that, After issuing a second frequency tuning request characterizing a reduction in the operating frequency of the memory controller, the method further includes: In response to a blocking request sent by the storage controller, stop sending tasks to the storage controller; In response to the unblocking request sent by the storage controller, the restriction on stopping the sending of tasks to the storage controller is lifted, and tasks can continue to be sent to the storage controller.

6. The method according to claim 4, characterized in that, If the task queue is found to be empty, a second duration is observed from the time the task queue is empty until a new task is written into the task queue, including: If the task queue is found to be empty, a timer is started until a new task is written into the task queue; if a new task is written into the task queue, the timer is reset to zero and the timer stops.

7. The method according to claim 4, characterized in that, The method further includes: If the second duration is greater than the third preset threshold, the operating frequency of the storage controller is set to the operating frequency of the standby state; wherein the third preset threshold is greater than the second preset threshold.

8. A data processing system, characterized in that, include: Data bus, storage controller; The data bus includes an analysis and decision-making module and a data bus body; The data bus body is used to distribute tasks to the storage controller based on the task queue; The analysis and decision-making module is used to monitor the status of the task queue; The task queue consists of tasks that need to be distributed to the storage controller for execution; when the status of the task queue is detected to be full, the monitoring continues for a first duration from the time the task queue is in the full state until the task is sent to the storage controller. If the first duration is greater than the first preset threshold, a first frequency modulation request is issued, representing an increase in the operating frequency of the storage controller; The storage controller is used to increase its own operating frequency in response to the first frequency modulation request.

9. The data processing system according to claim 8, characterized in that, The analysis and decision module is also used to monitor a second duration from the time the task queue is empty until a new task is written into the task queue when the task queue is found to be empty; if the second duration is greater than a second preset threshold, a second frequency adjustment request is issued to indicate a reduction in the operating frequency of the storage controller. The storage controller is also configured to reduce its own operating frequency in response to the second frequency modulation request.

10. The data processing system according to claim 9, characterized in that, The analysis and decision-making module includes: Queue detection unit, first timer, second timer, first threshold comparison unit, second threshold comparison unit; The queue detection unit is used to monitor the status of the task queue; and when the task queue is full, it starts the first timer and records the first duration. The first timer is used to transmit the recorded first duration to the first threshold comparison unit, and to reset the timer and stop timing when the data bus body sends a task to the storage controller. The first threshold comparison unit is used to compare the first duration with a first preset threshold, and send the first frequency modulation request to the storage controller if the first duration is greater than the first preset threshold. The queue detection unit is also used to start the second timer and record the second duration when the task queue is empty; The second timer is used to transmit the recorded second duration to the second threshold comparison unit, and to reset the timer and stop timing when a new task is written into the task queue. The second threshold comparison unit is used to compare the second duration with a second preset threshold, and send the second frequency modulation request to the storage controller if the second duration is greater than the second preset threshold.

11. The data processing system according to claim 10, characterized in that, The storage controller includes: Frequency adjustment module and main body of storage controller; The storage controller body is used to receive and execute tasks distributed by the data bus body; The frequency adjustment module is configured to receive the first frequency adjustment request and increase the operating frequency of the storage controller body based on the first frequency adjustment request; or, receive the second frequency adjustment request and decrease the operating frequency of the storage controller body based on the second frequency adjustment request.

12. The data processing system according to claim 11, characterized in that, The storage controller also includes: A blocking request module is configured to send a blocking request to the data bus body after the frequency adjustment module receives the target frequency modulation request; the target frequency modulation request is either the first frequency modulation request or the second frequency modulation request. The data bus body is also used to stop sending tasks to the storage controller body in response to a blocking request sent by the storage controller; The frequency adjustment module is further configured to send a feedback signal indicating that the adjustment of the operating frequency is complete to the request blocking module after adjusting the operating frequency of the main body of the storage controller based on the target frequency adjustment request. The request blocking module is also configured to send an unblocking request to the data bus body in response to the feedback signal; The data bus body is also used to release the restriction on stopping the sending of tasks to the storage controller in response to the unblocking request.

13. The data processing system according to claim 11, characterized in that, The analysis and decision module is further configured to send a third instruction to the frequency adjustment module, representing setting the operating frequency to the standby state, if the second duration is greater than the third preset threshold; wherein the third preset threshold is greater than the second preset threshold. The frequency adjustment module is also used to set the operating frequency of the main body of the storage controller to the operating frequency of the standby state after receiving the third instruction.

14. An electronic device, characterized in that, include: The data processing system as described in any one of claims 8-13.