Energy-saving scheduling method, device and equipment and storage medium

By dynamically adjusting the busy/idle status of the hardware acceleration unit and switching it to a shutdown state, the problem of high static power consumption of the hardware acceleration unit in the RAID system is solved, achieving the effect of optimizing energy consumption while ensuring performance.

CN122152225APending Publication Date: 2026-06-05JINAN MAIWEI INTELLIGENT TECHNOLOGY CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
JINAN MAIWEI INTELLIGENT TECHNOLOGY CO LTD
Filing Date
2026-01-30
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In existing RAID systems, the static power consumption of hardware acceleration units is high when they are idle. Fixed start-stop strategies cannot be dynamically adjusted, making it difficult to adapt to load fluctuations, resulting in a tradeoff between energy consumption and performance.

Method used

By acquiring the working status, load data, and pending workload of the hardware acceleration unit, its busy/idle level is dynamically adjusted to determine whether the shutdown conditions are met, and when the conditions are met, it is switched to the shutdown state to achieve energy-saving scheduling.

Benefits of technology

While ensuring RAID performance, the system dynamically optimizes power consumption, solving the problem of high static power consumption of the hardware acceleration unit and improving system energy efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122152225A_ABST
    Figure CN122152225A_ABST
Patent Text Reader

Abstract

The application discloses an energy-saving scheduling method, device and equipment and a storage medium, relates to the technical field of storage, and the energy-saving scheduling method comprises the following steps: obtaining the working state, load data and to-be-responded workload of a hardware acceleration unit; in the case that the working state of the hardware acceleration unit is not the shutdown state, determining the busy degree of the hardware acceleration unit according to the load data and to-be-responded workload of the hardware acceleration unit; then, judging whether the hardware acceleration unit meets the condition of entering the shutdown state according to the busy degree and to-be-responded workload of the hardware acceleration unit; and finally, switching the hardware acceleration unit to the shutdown state in the case that the hardware acceleration unit meets the condition of entering the shutdown state, so as to realize the energy-saving scheduling of the hardware acceleration unit. The application can realize energy consumption optimization on the premise of guaranteeing the stable performance of a RAID system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of storage technology, and in particular to energy-saving scheduling methods, apparatus, devices and storage media. Background Technology

[0002] With the rapid development of information technology, the amount of data is growing explosively, and the requirements for the performance, reliability, and availability of storage systems are becoming increasingly stringent. To improve the processing efficiency of RAID (Redundant Array of Independent Disks) systems, multiple hardware acceleration units are deployed in the RAID controller to enhance system performance. However, the high static power consumption of these hardware acceleration units when idle has led to significant energy consumption issues.

[0003] To reduce energy consumption, related technologies employ fixed start-stop strategies to manage hardware acceleration units. While this reduces some energy consumption, it lacks dynamic adjustment capabilities and struggles to adapt to sudden load fluctuations. Therefore, optimizing energy consumption while maintaining RAID performance has become a pressing issue. Summary of the Invention

[0004] This application provides an energy-saving scheduling method, apparatus, device, and storage medium to at least solve the problem of the inability to balance RAID performance and energy consumption in related technologies.

[0005] This application provides an energy-saving dispatching method, including:

[0006] Acquire the working status, load data, and pending workload of the hardware acceleration unit; among which, the working status is divided into at least four types: active state, pending shutdown state, shutdown state, and startup state; When the hardware acceleration unit is not in a turned-off state, the busy / idle status of the hardware acceleration unit is determined based on the load data of the hardware acceleration unit. Based on the busy / idle status and pending workload of the hardware acceleration unit, determine whether the hardware acceleration unit meets the conditions for entering the shutdown state. When the conditions for the hardware acceleration unit to enter the shutdown state are met, the hardware acceleration unit is switched to the shutdown state to achieve energy-saving scheduling of the hardware acceleration unit.

[0007] This application also provides an energy-saving dispatching device, comprising: The data acquisition module is used to acquire the working status, load data, and pending workload of the hardware acceleration unit; among which, the working status is divided into at least four types: active status, pending shutdown status, shutdown status, and startup status; The busy / idle level determination module is used to determine the busy / idle level of the hardware acceleration unit based on the load data of the hardware acceleration unit when the hardware acceleration unit is not in the off state. The judgment module is used to determine whether the hardware acceleration unit meets the conditions for entering the shutdown state based on the busy / idle status and the amount of pending response of the hardware acceleration unit. The energy-saving scheduling module is used to switch the hardware acceleration unit to the off state when the conditions for entering the off state are met, so as to realize energy-saving scheduling of the hardware acceleration unit.

[0008] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing any of the above-described energy-saving scheduling methods when executing the computer program.

[0009] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described energy-saving scheduling methods.

[0010] In some embodiments of this application, the technical solutions predict the access frequency of a target object in a future target time period based on its historical access records, and determine the target storage medium for that target object in the future target time period based on the access frequency. This allows for dynamic adjustment of the target object's storage medium according to its access frequency in different time periods. For example, when the target object's access frequency is high, it can be migrated to a low-latency storage medium, thereby improving data access performance and user experience. Conversely, when the target object's access frequency decreases, it can be migrated to a low-cost storage medium, thereby reducing data storage costs. Thus, a balance can be achieved between data storage costs and data access performance, solving the problem of the inability to balance these two aspects in some other technologies.

[0011] In some embodiments of this application, the working status, load data, and pending workload of the hardware acceleration unit are acquired. The busy / idle level is determined based on the load data, and then the busy / idle level is combined with the pending workload to determine whether the shutdown conditions are met. Finally, the hardware acceleration unit that meets the conditions is switched to the shutdown state, achieving energy-saving scheduling. In this way, the working mode of the hardware acceleration unit can be dynamically adjusted according to its real-time operating status and load. For example, when the hardware acceleration unit is under high load or has a large amount of pending workload, its active state is maintained to ensure request processing efficiency, thereby ensuring the overall performance of the RAID system. When the hardware acceleration unit meets the shutdown conditions, it is switched to the shutdown state to reduce static power consumption in idle or low-load states, thereby optimizing system energy consumption. Thus, energy consumption can be optimized while ensuring RAID performance, solving the problem of difficulty in balancing RAID performance and energy consumption optimization in some technologies. Attached Figure Description

[0012] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0013] Figure 1 A flowchart illustrating an energy-saving scheduling method provided for some embodiments of this application; Figure 2 Hardware acceleration unit management linked list provided for some embodiments of this application; Figure 3 Hardware acceleration unit node data structures provided in some embodiments of this application; Figure 4 This application provides a schematic diagram of the state transition of the hardware acceleration unit. Figure 5 The flowchart of the energy-saving scheduling module provided in this application; Figure 6 A schematic diagram illustrating the shutdown process of the hardware acceleration unit provided in this application; Figure 7 A schematic diagram of the wake-up process of the hardware acceleration unit provided in this application; Figure 8 Schematic diagrams of the energy-saving scheduling device provided for some embodiments of this application; Figure 9 A schematic diagram of the modules of an electronic device provided for some embodiments of this application. Detailed Implementation

[0014] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0015] It should be noted that, in the description of this application, 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. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0016] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0017] RAID is a storage virtualization technology that combines multiple individual physical disk drives in different ways to form a single logical disk drive, thereby improving storage capacity, read / write performance, and data security.

[0018] A RAID controller, or disk array controller, is a hardware device or software program specifically designed to manage and operate a RAID system. Its core function is to combine multiple independent physical hard drives into one or more logical drives, presenting them to the computer operating system for use, while simultaneously providing the data redundancy, performance enhancement, or both functions offered by a specific RAID level.

[0019] In some technical solutions, multiple hardware acceleration units are deployed in the RAID controller to improve the processing efficiency of the RAID system. While this effectively improves system performance, the high static power consumption of these hardware acceleration units when idle leads to significant energy consumption issues. To reduce energy consumption, related technologies employ fixed start-stop strategies to manage the hardware acceleration units. Although this reduces some energy consumption, it cannot dynamically adjust according to real-time load and is difficult to adapt to sudden load fluctuations. Therefore, how to optimize energy consumption while ensuring RAID performance has become an urgent problem to be solved.

[0020] In view of this, this application provides an energy-saving scheduling method that can solve the above problems. The energy-saving scheduling method can be applied to an energy-saving scheduling module. (See also...) Figure 1 This is a flowchart illustrating an energy-saving scheduling method provided in some embodiments of this application. Figure 1 In this context, the energy-saving dispatching method includes the following steps: Step S101: Obtain the working status, load data, and pending workload of the hardware acceleration unit; wherein, the working status is divided into at least four types: active state, pending shutdown state, shutdown state, and startup state.

[0021] Specifically, a hardware acceleration unit (RAID Acceleration Cluster, or RAC) refers to a processing unit in a RAID controller that consists of multiple functional engines. These functional engines include at least one of the following: data transfer engine, memory management engine, stripe lock engine, RAID data calculation engine, and disk read / write engine. Each RACK is configured with only one instance of the same type of engine. A single hardware acceleration unit can process multiple IO (Input / Output) requests in parallel, making it a core hardware component for improving the processing efficiency of a RAID system.

[0022] Specifically, the working state of a hardware acceleration unit refers to its current operating mode, which can be divided into at least four types: active state, pending shutdown state, shutdown state, and startup state. The active state indicates that the hardware acceleration unit can normally receive and process host I / O. The pending shutdown state is an intermediate transitional state in which the hardware acceleration unit does not accept new I / O and there are no I / Os waiting to be processed in its queue, but it can still process I / Os that have been dispatched to it. The shutdown state indicates that the hardware acceleration unit is in a low-power mode and neither receives nor processes I / O. The startup state is an intermediate transitional state from shutdown to active, in which it can receive I / O but cannot process it yet.

[0023] Specifically, load data refers to multi-dimensional data that reflects the operating load of the hardware acceleration unit.

[0024] Specifically, the pending workload refers to the total number of I / O requests that have not yet been executed in the waiting queue of the hardware acceleration unit.

[0025] Understandably, the energy-saving scheduling module collects and records the working status, load data, and pending workload of all hardware acceleration units, laying the foundation for subsequent calculations of busy / idle levels and judgment of state switching conditions based on working status, load data, and pending workload.

[0026] Step S102: When the hardware acceleration unit is not in a turned-off state, determine the busy / idle status of the hardware acceleration unit based on the load data of the hardware acceleration unit.

[0027] Specifically, the busy / idle level characterizes the current load saturation of the hardware acceleration unit, which is quantified by the total number of I / Os issued by the host, the proportion of I / Os already dispatched to the hardware acceleration unit, and the proportion of I / Os waiting to be executed in the waiting queue of the hardware acceleration unit.

[0028] Understandably, the workload level depends on two types of data: one is the total number of I / O operations to be executed recorded in the IOSQ (IO Submission Queue) queue of the host interface management module; the other is the status indicators of the hardware acceleration unit, which are periodically queried, indicating the load of I / O operations currently in progress.

[0029] Step S103: Based on the busy / idle status of the hardware acceleration unit and the workload to be responded to, determine whether the hardware acceleration unit meets the conditions for entering the shutdown state.

[0030] Understandably, the hardware acceleration unit must meet the following two conditions to enter low-power mode: 1) The busy / idle status metric of the hardware acceleration unit is lower than the shutdown threshold for a period of time, as shown in expression (1). Within a time window, the busy / idle status metric of the hardware acceleration unit with the least load is lower than the set shutdown threshold. For example, 30%.

[0031] Make (1) in, This is the start time of the time window. For the first The workload level of each hardware acceleration unit. This is the threshold for closing.

[0032] 2) After shutting down the hardware acceleration unit, the remaining active hardware acceleration units can handle all current host I / O, avoiding overloading of the remaining hardware acceleration units and affecting the overall RAID performance.

[0033] Specifically, queue depth refers to the proportion of pending workload in the waiting queue of a hardware acceleration unit to the capacity of the waiting queue. As shown in expression (2), after the IO in the host management module is dispatched to other active hardware acceleration units, the queue depth of each hardware acceleration unit does not exceed the set queue depth threshold. For example, 50%.

[0034] (2) in, The workload awaiting response in the hardware acceleration unit's waiting queue. The capacity of the waiting queue for the hardware acceleration unit. This is the queue depth threshold. This is the number of the active hardware acceleration unit.

[0035] Step S104: If the hardware acceleration unit meets the conditions for entering the shutdown state, switch the hardware acceleration unit to the shutdown state to achieve energy-saving scheduling of the hardware acceleration unit.

[0036] Understandably, after the hardware acceleration unit confirms that the shutdown conditions are met, the energy-saving scheduling module gradually switches it to the shutdown state according to the preset process. After switching to the shutdown state, the hardware acceleration unit enters a low-power sleep mode that neither receives nor processes any IO requests, but only retains the wake-up signal path, thereby reducing static power consumption.

[0037] In summary, in some embodiments of this application, the working status, load data, and pending workload of the hardware acceleration unit are obtained. The busy / idle level is determined based on the load data, and then the busy / idle level is combined with the pending workload to determine whether the shutdown conditions are met. Finally, the hardware acceleration unit that meets the conditions is switched to the shutdown state, achieving energy-saving scheduling. In this way, the working mode of the hardware acceleration unit can be dynamically adjusted according to its real-time operating status and load. For example, when the hardware acceleration unit is under high load or has a large amount of pending workload, its active state is maintained to ensure request processing efficiency, thereby ensuring the overall performance of the RAID system. When the hardware acceleration unit meets the shutdown conditions, it is switched to the shutdown state to reduce static power consumption in idle or low-load states, thereby optimizing system energy consumption. Thus, energy consumption can be optimized while ensuring RAID performance, solving the problem of difficulty in balancing RAID performance and energy consumption optimization in some technologies.

[0038] In some embodiments, step S102, when the hardware acceleration unit is not in a powered-off state, determines the busy / idle status of the hardware acceleration unit based on its load data and the amount of workload to be responded to, including: Step S1021: Determine the current response workload and memory usage of the hardware acceleration unit based on the load data of the hardware acceleration unit.

[0039] Step S1022: Determine the busy / idle status of the hardware acceleration unit based on the current response workload, memory usage, and pending response workload.

[0040] Specifically, the current response workload refers to the number of I / Os that have been dispatched to the hardware acceleration unit.

[0041] Specifically, memory utilization rate refers to the ratio of the memory space occupied by the I / O requests being processed in the hardware acceleration unit to the total memory capacity of the unit.

[0042] Understandably, the workload level of the hardware acceleration unit is calculated based on the proportion of I / O dispatched to the hardware acceleration unit relative to the total number of I / Os, the proportion of I / Os waiting to be executed in the hardware acceleration unit's wait queue relative to the total number of I / Os, and memory utilization. The calculation formula is shown in expression (3).

[0043] (3) in, This represents the percentage of current response workload relative to the total number of I / O operations. The proportion of pending response workload to the total number of I / O operations. This refers to the memory usage of the hardware acceleration unit. , These are the weighting coefficients.

[0044] In the above embodiments, the busy / idle status of the hardware acceleration unit is determined by the current response workload, memory usage, and pending response workload. This can effectively avoid the problem of load misjudgment caused by a single indicator, and ensure that the busy / idle status can accurately reflect the real-time operating load status of the hardware acceleration unit, providing data support for the subsequent state switching of the hardware acceleration unit.

[0045] In some embodiments, step S104, where the hardware acceleration unit is switched to the off state when the conditions for entering the off state are met, to achieve energy-saving scheduling of the hardware acceleration unit, includes: Step S1041: If the hardware acceleration unit meets the conditions for entering the shutdown state, switch the hardware acceleration unit to the pending shutdown state and stop sending requests to the hardware acceleration unit.

[0046] Step S1042: Monitor the request execution status of the hardware acceleration unit. When it is detected that all requests of the hardware acceleration unit have been executed, switch the hardware acceleration unit to the off state to achieve energy-saving scheduling of the hardware acceleration unit.

[0047] Specifically, the conditions for the shutdown state refer to the fulfillment of two shutdown conditions for the hardware acceleration unit to enter the low-power mode. Once both conditions are met, the shutdown operation of the hardware acceleration unit is triggered.

[0048] Understandably, once the hardware acceleration unit is confirmed to meet the shutdown conditions, a state switching command is immediately sent to switch it from the active state to the shutdown state, suspending the dispatch of any new IO requests to the unit and only allowing it to continue processing the IO requests it has already received; the IO execution progress of the unit in the shutdown state is monitored in real time to determine whether all requests have been completed; when it is detected that there is no IO being executed in the unit, it is determined that all requests have been completed, and then a sleep command is sent, and the control unit switches to the shutdown state.

[0049] In the above embodiments, by using the buffering process of the pending shutdown state to complete the processing of IO in progress and IO in the waiting queue, IO interruption and data loss caused by directly shutting down the unit can be prevented, thus ensuring the stability of the RAID system operation.

[0050] In some embodiments, the method of this application further includes: Step a1: When at least one hardware acceleration unit is in a disabled state, obtain the busy / idle status of all active hardware acceleration units.

[0051] Step a2: Calculate the sum of the busy / idle status of all active hardware acceleration units.

[0052] Step a3: Within a preset time period, determine whether the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold.

[0053] Step a4: If the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold, select the hardware acceleration unit to be woken up from at least one hardware acceleration unit whose working state is off, and trigger the wake-up operation of the hardware acceleration unit to be woken up.

[0054] Specifically, the wake-up threshold refers to the threshold for determining whether a closed unit needs to be woken up. Exceeding this threshold indicates that the current active unit cluster is overloaded and additional hardware acceleration units are needed to share the load.

[0055] Specifically, the hardware acceleration unit to be woken up refers to the target object selected from the units in the shutdown state. The selection rule usually prioritizes the hardware acceleration unit with the longest shutdown time.

[0056] Specifically, the wake-up operation refers to the operation in which the energy-saving scheduling module sends a wake-up command to control the hardware acceleration unit to be woken up to increase its clock frequency and restore its active operating mode. Specifically, the working state of the hardware acceleration unit to be woken up is switched from the off state to the startup state and then to the active state.

[0057] Optionally, the wake-up condition for exiting low-power mode can be defined as the sum of the busy / idle levels of all active hardware acceleration units exceeding a set wake-up threshold. As shown in expression (4).

[0058] Make (4) in, The wake-up threshold, The busy / idle state of the i-th active hardware acceleration unit.

[0059] In the above embodiments, by calculating that the sum of the busy and idle levels of all active hardware acceleration units exceeds a set wake-up threshold, it is determined whether to wake up the hardware acceleration units that are in the off state. This can effectively avoid the problem of IO processing delay and RAID system performance degradation caused by overload of the active unit cluster, and improve the dynamic adaptation capability of the RAID controller's energy-saving scheduling mechanism.

[0060] In some embodiments, if the sum of the busy / idle levels of all active hardware acceleration units continuously exceeds a wake-up threshold in step a4, the hardware acceleration units to be woken up are selected from at least one hardware acceleration unit whose working state is off, and a wake-up operation of the hardware acceleration unit to be woken up is triggered, including: Step b1: If the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold, the hardware acceleration unit to be woken up is switched to the startup state so that the hardware acceleration unit to be woken up can receive requests and temporarily store the received requests in the waiting queue.

[0061] Step b2: Monitor the initialization status of the hardware acceleration unit to be woken up. When the initialization of the hardware acceleration unit to be woken up is detected to be completed, switch the hardware acceleration unit to be woken up to the active state to complete the wake-up operation of the hardware acceleration unit to be woken up.

[0062] Understandably, after confirming that the wake-up conditions of the hardware acceleration unit are met, a state switching instruction is sent to the hardware acceleration unit to be woken up, switching it from the off state to the startup state; some I / O requests are allowed to be dispatched to the hardware acceleration unit, and the dispatched requests are temporarily stored in the waiting queue without triggering I / O processing operations; the energy-saving scheduling module monitors the initialization progress of the unit to be woken up by periodic sampling, and synchronously verifies the clock frequency and engine running status; when all indicators meet the standards, it is determined that the hardware acceleration unit initialization is complete; then an instruction is sent to switch it to the active state, and the requests in the waiting queue begin to be executed sequentially to complete the wake-up operation of the hardware acceleration unit to be woken up.

[0063] In the above embodiments, the buffering process during startup can effectively avoid IO processing abnormalities caused by insufficient startup of hardware acceleration units, thereby improving the dynamic adaptability of the energy-saving scheduling mechanism and the stability of the RAID system.

[0064] See also Figure 2 and Figure 3 , Figure 2 The hardware acceleration unit management linked list provided in some embodiments of this application, Figure 3 The hardware acceleration unit node data structure provided for some embodiments of this application. In some embodiments, the method of this application further includes: Step c1: Construct a management list to manage hardware acceleration units; the management list includes an active list and an idle list. The active list is used to manage hardware acceleration units that are in an active state, and the idle list is used to manage hardware acceleration units that are in a closed state.

[0065] Step c2: The active list is sorted according to the busy / idle status of the hardware acceleration units, with the least busy / idle hardware acceleration unit located at the head of the active list.

[0066] Step c3: The free list is sorted according to the shutdown time of the hardware acceleration unit, and the hardware acceleration unit with the longest shutdown time is located at the head of the free list.

[0067] Specifically, the management list centrally manages the working status of all hardware acceleration units, and can synchronize the status changes of hardware acceleration units in real time, providing a basis for the status switching of hardware acceleration units.

[0068] Specifically, the information of a single hardware acceleration unit node in the management list includes the hardware acceleration unit number, status, number of I / Os being executed, number of queued I / Os, memory usage, predecessor pointer, and successor pointer.

[0069] Specifically, the active linked list stores the hardware acceleration unit nodes that are in an active state. Each node is associated with the busy / idle status of the hardware acceleration unit, making it easy to quickly query the load distribution of the currently active units.

[0070] Specifically, the free list stores the hardware acceleration unit nodes that are in a closed state. Each node is associated with the closed timestamp of the hardware acceleration unit, which is adapted to the filtering requirements during the wake-up operation.

[0071] Understandably, after the linked list is built, the node order is updated in real time according to the changes in the hardware acceleration unit status to ensure the accuracy of the node information in the active and idle linked lists. For example, when the busy / idle status of an active hardware acceleration unit is updated with changes in IO load, the power-saving scheduling module will adjust its position in the active linked list in real time, always keeping the head of the list with the least idle hardware acceleration unit; whenever a new hardware acceleration unit switches to the off state, it will be inserted into the corresponding position in the idle linked list according to the off timestamp, always maintaining the order of the hardware acceleration unit that has been off for the longest time at the head of the idle linked list.

[0072] In the above embodiments, by constructing two management lists and formulating differentiated sorting rules, the efficiency of hardware acceleration unit status query and object filtering can be effectively improved, providing a foundation for the operation of the energy-saving scheduling mechanism.

[0073] In some embodiments, the management linked list adopts a doubly linked list structure, with each hardware acceleration unit corresponding to a node in the doubly linked list. The method of this application further includes: Step d1: When the hardware acceleration unit switches from the active state to the off state, the hardware acceleration unit is removed from the active linked list and inserted into the tail of the free linked list through the predecessor pointer and successor pointer, and the pointer relationship of the management linked list is updated.

[0074] Step d2: When the hardware acceleration unit switches from the off state to the active state, the hardware acceleration unit is taken out from the head of the free linked list through the predecessor pointer and the successor pointer, inserted into the corresponding load position of the active linked list, and the pointer relationship of the management linked list is updated.

[0075] Specifically, the doubly linked list structure is the underlying data structure for managing the linked list. In addition to the information associated with the hardware acceleration unit, each node is the basic building block of the doubly linked list, and each hardware acceleration unit uniquely corresponds to one node.

[0076] Specifically, the predecessor pointer is a pointer that indicates the reverse association between nodes. It locates the predecessor node of the current node and can be used to quickly associate adjacent nodes when a node is removed or inserted.

[0077] Specifically, the successor pointer is a forward association pointer between nodes, which locates the next node after the current node and works with the predecessor pointer to complete node operations when removing or inserting a node.

[0078] Understandably, when the hardware acceleration unit switches from an active state to a closed state, the scheduling module locates the node's position in the active list using the predecessor and successor pointers, disconnects its pointer association with adjacent nodes, and removes the node from the active list. Subsequently, the node is inserted into the tail of the free list, and the successor pointer of the node at the tail of the free list and the predecessor pointer of the newly inserted node are updated to complete the pointer relationship update.

[0079] Understandably, when a hardware acceleration unit switches from a closed state to an active state, the scheduling module retrieves the target node from the head of the free list, disconnects its pointer association with adjacent nodes in the free list, and then finds the corresponding load position in the active list according to the unit's busy / idle status, inserts the node, and updates the predecessor and successor pointers of adjacent nodes in the active list, thus completing the pointer relationship update.

[0080] In the above embodiments, node migration is achieved through pointer operations of a doubly linked list, which can effectively improve the efficiency of adding and deleting nodes in the management list and provide underlying structural support for the efficient operation of the energy-saving scheduling mechanism.

[0081] See also Figure 4 , Figure 4 This is a schematic diagram of the state transition of the hardware acceleration unit provided in this application. Figure 4The document presents the dynamic switching logic of the hardware acceleration unit between four working states: active, pending shutdown, shutdown, and startup. In the active state, the hardware acceleration unit can normally receive and process I / O requests from the host and participate in system load balancing; the pending shutdown state is a transition buffer state between the active and shutdown states; in the shutdown state, the hardware acceleration unit enters a low-power sleep mode, neither receiving nor processing any I / O requests, only retaining the wake-up signal path; the startup state is a transition buffer state between the shutdown and active states.

[0082] See also Figure 5 , Figure 5 The flowchart of the energy-saving scheduling module provided in this application is as follows. After the system is powered on, the energy-saving scheduling module runs automatically without termination conditions, continuously monitors the workload of the hardware acceleration unit, calculates the busy / idle status, determines whether the threshold conditions for shutdown and wake-up are met, and dynamically adjusts the power mode.

[0083] See also Figure 6 , Figure 6 This is a schematic diagram of the shutdown process for the hardware acceleration unit provided in this application. First, a timer is initialized to record the duration for which the busy / idle level of the hardware acceleration unit is less than the shutdown threshold. If the busy / idle level of the hardware acceleration unit is greater than the shutdown threshold within a preset time window, the timer is reset. If the busy / idle level of the hardware acceleration unit remains less than the shutdown threshold within the preset time window, the hardware acceleration unit is determined to meet the shutdown conditions. The hardware acceleration unit switches to a pending shutdown state. The scheduling module stops dispatching new I / O to the hardware acceleration unit and waits for all currently executing I / O and I / O in the waiting queue to be processed. Then, a sleep command is sent to reduce the clock frequency, and the hardware acceleration unit enters a shutdown state. The scheduling module then re-dispatches host I / O and updates the management list of the hardware acceleration unit.

[0084] See also Figure 7 , Figure 7 This is a schematic diagram of the wake-up process for the hardware acceleration unit provided in this application. First, a timer is initialized to record the duration for which the sum of the busy / idle levels of all active hardware acceleration units exceeds the wake-up threshold. If the sum of the busy / idle levels of active hardware acceleration units is less than or equal to the wake-up threshold within a preset time window, the timer is reset. If the sum of the busy / idle levels of active hardware acceleration units continuously exceeds the wake-up threshold within the preset time window, the hardware acceleration unit is determined to meet the wake-up condition. From the hardware acceleration units in the off state, the hardware acceleration unit with the longest off time is selected as the wake-up target. The scheduling module switches this hardware acceleration unit to the startup state, allowing it to receive new I / O requests and temporarily store them in a waiting queue. After the hardware acceleration unit completes initialization, it is switched to the active state. Finally, the active hardware acceleration unit management list is updated, completing the entire wake-up process.

[0085] Corresponding to the energy-saving dispatching method, this application also provides an energy-saving dispatching device. (See also...) Figure 8 The diagram below shows a module schematic of an energy-saving scheduling device provided in some embodiments of this application. Figure 8 In this context, the energy-saving dispatching device includes: The data acquisition module 801 is used to acquire the working status, load data and pending workload of the hardware acceleration unit; among which, the working status is divided into at least four types: active status, pending shutdown status, shutdown status and startup status. The busy / idle level determination module 802 is used to determine the busy / idle level of the hardware acceleration unit based on the load data of the hardware acceleration unit when the working state of the hardware acceleration unit is not the off state. The judgment module 803 is used to determine whether the hardware acceleration unit meets the conditions for entering the shutdown state based on the busy / idle status and the amount of work to be responded to of the hardware acceleration unit. The energy-saving scheduling module 804 is used to switch the hardware acceleration unit to the off state when the conditions for the hardware acceleration unit to enter the off state are met, so as to realize energy-saving scheduling of the hardware acceleration unit.

[0086] In some embodiments, the busy / idleness level determination module 802 includes: The load information determination unit is used to determine the current response workload and memory usage of the hardware acceleration unit based on the load data of the hardware acceleration unit. The workload determination unit is used to determine the workload level of the hardware acceleration unit based on the current response workload, memory usage, and pending response workload.

[0087] In some embodiments, the energy-saving scheduling module 804 includes: The standby shutdown state switching unit is used to switch the hardware acceleration unit to the standby shutdown state and stop sending requests to the hardware acceleration unit when the conditions for the hardware acceleration unit to enter the shutdown state are met. The energy-saving scheduling unit is used to monitor the request execution status of the hardware acceleration unit. When it is detected that all requests of the hardware acceleration unit have been executed, the hardware acceleration unit is switched to the off state to realize energy-saving scheduling of the hardware acceleration unit.

[0088] In some embodiments, the apparatus of this application further includes: The active unit busy / idle level acquisition unit is used to acquire the busy / idle level of all active hardware acceleration units when at least one hardware acceleration unit is in the off state. Busy / idle status calculation unit, used to calculate the sum of the busy / idle status of all active hardware acceleration units; The wake-up condition judgment unit is used to determine whether the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold within a preset time period. The wake-up operation unit is used to select a hardware acceleration unit to be woken up from at least one hardware acceleration unit whose working state is off, and to trigger the wake-up operation of the hardware acceleration unit to be woken up when the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold.

[0089] In some embodiments, the wake-up operation unit includes: The startup state switching subunit is used to switch the hardware acceleration unit to be woken up to the startup state when the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold, so that the hardware acceleration unit to be woken up can receive requests and temporarily store the received requests in the waiting queue. The wake-up operation subunit is used to monitor the initialization status of the hardware acceleration unit to be woken up. When it is detected that the hardware acceleration unit to be woken up has completed initialization, the hardware acceleration unit to be woken up is switched to the active state to complete the wake-up operation of the hardware acceleration unit to be woken up.

[0090] In some embodiments, the apparatus of this application further includes: The management list construction unit is used to build the management list and manage the hardware acceleration units. The management list includes an active list and an idle list. The active list is used to manage the hardware acceleration units that are in an active state, and the idle list is used to manage the hardware acceleration units that are in a closed state. The active list construction unit is used to sort the active list according to the busyness of the hardware acceleration units, with the least busy hardware acceleration unit located at the head of the active list. The free list construction unit is used to sort the free list according to the shutdown time of the hardware acceleration unit, with the hardware acceleration unit with the longest shutdown time located at the head of the free list.

[0091] In some embodiments, the apparatus of this application further includes: The state switching subunit is used to remove the hardware acceleration unit from the active list and insert it into the tail of the free list by using the predecessor pointer and successor pointer when the hardware acceleration unit switches from the active state to the off state, and update the pointer relationship of the management list. The state switching subunit is used to retrieve the hardware acceleration unit from the head of the free list and insert it into the corresponding load position of the active list when the hardware acceleration unit switches from the off state to the active state, and update the pointer relationship of the management list.

[0092] For a description of the features in the embodiment corresponding to the energy-saving dispatching device, please refer to the relevant description of the embodiment corresponding to the sample data processing method, which will not be repeated here.

[0093] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0094] See also Figure 9 Embodiments of this application also provide an electronic device, including a memory 10 and a processor 20, wherein the memory 10 stores a computer program and the processor 20 is configured to run the computer program to perform the steps in any of the above-described energy-saving scheduling method embodiments.

[0095] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described energy-saving scheduling method embodiments when running.

[0096] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0097] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described energy-saving scheduling method embodiments.

[0098] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described energy-saving scheduling method embodiments.

[0099] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0100] The above provides a detailed description of an energy-saving scheduling method, apparatus, device, and storage medium provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. An energy-saving scheduling method, characterized in that, The method includes: The working status, load data, and pending workload of the hardware acceleration unit are obtained; wherein the working status is divided into at least four types: active state, pending shutdown state, shutdown state, and startup state. If the working state of the hardware acceleration unit is not the off state, the busy / idle status of the hardware acceleration unit is determined based on the load data and the amount of work to be responded to of the hardware acceleration unit. Based on the busy / idle status and pending workload of the hardware acceleration unit, determine whether the hardware acceleration unit meets the conditions for entering the shutdown state. When the hardware acceleration unit meets the conditions for entering the shutdown state, the hardware acceleration unit is switched to the shutdown state to achieve energy-saving scheduling of the hardware acceleration unit.

2. The energy-saving scheduling method according to claim 1, characterized in that, When the hardware acceleration unit is not in the off state, determining the busy / idle status of the hardware acceleration unit based on its load data and pending workload includes: Based on the load data of the hardware acceleration unit, determine the current response workload and memory usage of the hardware acceleration unit. The busy / idle status of the hardware acceleration unit is determined based on the current response workload, memory usage, and pending response workload.

3. The energy-saving scheduling method according to claim 1, characterized in that, The step of switching the hardware acceleration unit to the shutdown state when the conditions for entering the shutdown state are met, in order to achieve energy-saving scheduling of the hardware acceleration unit, includes: If the hardware acceleration unit meets the conditions for entering the shutdown state, the hardware acceleration unit is switched to the pending shutdown state, and requests are stopped being sent to the hardware acceleration unit. The system monitors the request execution status of the hardware acceleration unit. When it is detected that all requests of the hardware acceleration unit have been executed, the hardware acceleration unit is switched to the off state to achieve energy-saving scheduling of the hardware acceleration unit.

4. The energy-saving scheduling method according to claim 1, characterized in that, The method further includes: If at least one of the hardware acceleration units is in a disabled state, obtain the busy / idle status of all active hardware acceleration units. Calculate the sum of the busy / idle status of all active hardware acceleration units; Within a preset time period, determine whether the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold. If the sum of the busy / idle status of all active hardware acceleration units continuously exceeds the wake-up threshold, a hardware acceleration unit to be woken up is selected from at least one hardware acceleration unit whose working state is off, and the wake-up operation of the hardware acceleration unit to be woken up is triggered.

5. The energy-saving scheduling method according to claim 4, characterized in that, When the sum of the busy / idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold, the method of selecting a hardware acceleration unit to be woken up from at least one hardware acceleration unit whose working state is off, and triggering the wake-up operation of the hardware acceleration unit to be woken up, includes: If the sum of the busy and idle levels of all active hardware acceleration units continuously exceeds the wake-up threshold, the hardware acceleration unit to be woken up is switched to the startup state so that the hardware acceleration unit to be woken up can receive requests and temporarily store the received requests in the waiting queue. The initialization status of the hardware acceleration unit to be woken up is monitored. When the initialization of the hardware acceleration unit to be woken up is detected to be completed, the hardware acceleration unit to be woken up is switched to an active state to complete the wake-up operation of the hardware acceleration unit to be woken up.

6. The energy-saving scheduling method according to claim 1, characterized in that, The method further includes: A management list is constructed to manage hardware acceleration units; wherein, the management list includes an active list and an idle list, the active list is used to manage hardware acceleration units in an active state, and the idle list is used to manage hardware acceleration units in a closed state. The active list is sorted according to the busy / idle status of the hardware acceleration units, with the least busy / idle hardware acceleration unit located at the head of the active list. The free list is sorted according to the shutdown time of the hardware acceleration unit, with the hardware acceleration unit with the longest shutdown time located at the head of the free list.

7. The energy-saving scheduling method according to claim 6, characterized in that, The management linked list adopts a doubly linked list structure, and each hardware acceleration unit corresponds to a node in the doubly linked list. The method further includes: When the hardware acceleration unit switches from an active state to a closed state, the hardware acceleration unit is removed from the active linked list by the predecessor pointer and the successor pointer, and inserted into the tail of the free linked list, thus updating the pointer relationship of the management linked list; When the hardware acceleration unit switches from the off state to the active state, the hardware acceleration unit is taken out from the head of the free linked list by the predecessor pointer and the successor pointer, and inserted into the corresponding load position of the active linked list, thus updating the pointer relationship of the management linked list.

8. An energy-saving dispatching device, characterized in that, The device includes: The data acquisition module is used to acquire the working status, load data, and pending workload of the hardware acceleration unit; wherein the working status is divided into at least four types: active state, pending shutdown state, shutdown state, and startup state. The busy / idle level determination module is used to determine the busy / idle level of the hardware acceleration unit based on the load data of the hardware acceleration unit when the working state of the hardware acceleration unit is not the off state. The judgment module is used to determine whether the hardware acceleration unit meets the conditions for entering the shutdown state based on the busy / idle status and the amount of work to be responded to of the hardware acceleration unit. The energy-saving scheduling module is used to switch the hardware acceleration unit to the shutdown state when the hardware acceleration unit meets the conditions for entering the shutdown state, so as to realize energy-saving scheduling of the hardware acceleration unit.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the steps of the energy-saving scheduling method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, it implements the steps of the energy-saving scheduling method as described in any one of claims 1 to 7.