A method for managing power consumption of an SSD controller and an SSD
By periodically judging the cache and status of the SSD controller and autonomously adjusting the operating frequency, the problem of SSD controller power consumption optimization relying on the host side in existing technologies is solved, and autonomous power consumption management and energy efficiency improvement are achieved.
Patent Information
- Application Number
- CN202310008273.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-04
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2043-01-04
AI Technical Summary
In existing technologies, the power consumption optimization of SSD controllers relies on the characteristics of the host-side drivers and cannot be optimized independently.
The SSD controller periodically checks whether there are any unexecuted host commands in the cache and its own status, and adjusts the operating frequency according to the status, including reducing the frequency when there are no unexecuted commands in the cache and the state is not idle, and restoring the normal frequency when necessary.
It achieves autonomous power consumption optimization of the SSD controller, reducing power consumption, avoiding repetitive frequency adjustment operations, and improving energy efficiency.
Smart Images

Figure CN116069149B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of power consumption control technology, and in particular to a power consumption management method for a solid state disk (SSD) controller and an SSD. Background Technology
[0002] As SSDs have been widely used in various applications, the power consumption requirements for SSDs have become increasingly stringent, and the power consumption of SSDs depends on the power consumption of the SSD controller.
[0003] In related technologies, the host often sends commands to reduce power consumption, causing the SSD controller to enter a low-power state.
[0004] However, this approach relies on the host-side driver characteristics, and the SSD controller cannot independently optimize power consumption. Summary of the Invention
[0005] This disclosure provides an SSD controller power management method and an SSD, in which the SSD controller can automatically reduce its operating frequency, thus achieving autonomous power optimization.
[0006] On one hand, embodiments of this disclosure provide an SSD controller power management method, including:
[0007] The SSD controller periodically determines whether there are any unfinished host commands in the SSD cache and determines the state of the SSD controller; the state of the SSD controller includes: idle state and non-idle state;
[0008] When the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in the non-idle state, the SSD controller reduces its own operating frequency.
[0009] On the other hand, this disclosure provides an SSD, including: an SSD controller, an SSD flash, and an SSD cache, wherein the SSD flash is used to store an executable program;
[0010] The SSD controller is used to read and execute the executable program from the SSD flash and place it in the SSD cache for execution, thereby realizing the aforementioned SSD controller power management method.
[0011] Compared with related technologies, the SSD controller power management method provided in this disclosure enables the SSD controller to reduce its operating frequency when there are no unexecuted host commands in the SSD cache and the SSD controller is in the non-idle state, thus achieving autonomous power optimization.
[0012] Other features and advantages of this disclosure will be set forth in the following description, and will be apparent in part from the description, or may be learned by practicing the disclosure. Other advantages of this disclosure may be realized and obtained by means of the methods described in the description and the accompanying drawings. Attached Figure Description
[0013] The accompanying drawings are used to provide an understanding of the technical solutions of this disclosure and form part of the specification. They are used together with the embodiments of this disclosure to explain the technical solutions of this disclosure and do not constitute a limitation on the technical solutions of this disclosure.
[0014] Figure 1 This is a flowchart illustrating an SSD controller power management method according to an embodiment of the present disclosure;
[0015] Figure 2 This is a flowchart illustrating another SSD controller power management method according to an embodiment of the present disclosure;
[0016] Figure 3 This is a flowchart illustrating another SSD controller power management method according to an embodiment of the present disclosure;
[0017] Figure 4 This disclosure presents a schematic diagram of the structure of an SSD according to an embodiment. Detailed Implementation
[0018] This disclosure describes several embodiments, but these descriptions are exemplary and not limiting, and it will be apparent to those skilled in the art that many more embodiments and implementations are possible within the scope of the embodiments described herein. Although many possible combinations of features are shown in the drawings and discussed in the detailed description, many other combinations of the disclosed features are also possible. Unless specifically limited, any feature or element of any embodiment may be used in combination with, or may replace, any feature or element of any other embodiment.
[0019] This disclosure includes and contemplates combinations of features and elements known to those skilled in the art. The embodiments, features, and elements disclosed in this disclosure may also be combined with any conventional features or elements to form a unique solution as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other solutions to form another unique solution as defined by the claims. Therefore, it should be understood that any feature shown and / or discussed in this disclosure may be implemented individually or in any suitable combination. Therefore, the embodiments are not limited except by the limitations imposed by the appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.
[0020] Furthermore, in describing representative embodiments, the specification may have presented methods and / or processes as a specific sequence of steps. However, the method or process should not be limited to the specific order of steps described herein, to the extent that the method or process does not depend on the specific order of steps described herein. As will be understood by those skilled in the art, other sequences of steps are also possible. Therefore, the specific order of steps set forth in the specification should not be construed as a limitation of the claims. Moreover, the claims relating to the method and / or process should not be limited to the steps performed in the order written, and those skilled in the art will readily understand that these orders can be varied and still remain within the spirit and scope of the embodiments disclosed herein.
[0021] This disclosure provides an SSD controller power management method, such as... Figure 1 As shown, it includes:
[0022] Step 101: The SSD controller periodically determines whether there are any unexecuted host commands in the SSD cache and determines the state of the SSD controller; the state of the SSD controller includes: idle state and non-idle state;
[0023] Step 102: When the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in the non-idle state, the SSD controller reduces its own operating frequency.
[0024] For example, the idle state is represented as the idle state.
[0025] For example, a host command refers to receiving a cmd command from the host. An incomplete host command has two meanings: one is a host command that has not yet started execution, and the other is a host command that has started execution but has not yet completed. However, since all commands must be executed, they can both be categorized as incomplete host commands.
[0026] For example, the SSD controller reducing its own operating frequency includes: the SSD controller reducing its own operating frequency to a minimum.
[0027] For example, the SSD controller power management method provided in this disclosure can be formed into firmware through code, stored in the SSD cache, and read and executed by the SSD controller.
[0028] The SSD controller power management method provided in this disclosure enables the SSD controller to reduce its operating frequency when there are no unexecuted host commands in the SSD cache and the SSD controller is in a non-idle state, thus achieving autonomous power optimization.
[0029] Taking a certain SSD from a certain company as an example, the SSD controller reduces its own operating frequency to the minimum, and the power consumption difference with the normal frequency is about 0.75W, which is a very obvious power optimization effect.
[0030] In one exemplary instance, the SSD controller power management method provided in this disclosure further includes:
[0031] When the SSD controller determines that there is an unexecuted host command in the SSD cache and the SSD controller is in the idle state, the SSD controller increases its operating frequency.
[0032] In one exemplary instance, the SSD controller power management method provided in this disclosure further includes:
[0033] When the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in the idle state, or when the SSD controller determines that there is an unexecuted host command in the SSD cache and the SSD controller is in the non-idle state, the SSD controller determines the current operating frequency as its own operating frequency.
[0034] The SSD controller power management method provided in this embodiment determines that the SSD controller is already in an idle state (low operating frequency) when the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in an idle state. Therefore, there is no need to reduce the frequency, thereby avoiding repeated frequency adjustment operations.
[0035] The SSD controller power management method provided in this embodiment determines that the SSD controller is already in a non-idle state (normal working frequency) when the SSD controller determines that there is an unexecuted host command in the SSD cache and the SSD controller is in a non-idle state. Therefore, there is no need to increase the frequency, thereby avoiding repeated frequency adjustment operations.
[0036] In one exemplary instance, after the SSD controller reduces its operating frequency, it further includes:
[0037] First, the SSD controller monitors whether a new host command has been received in the SSD cache;
[0038] Secondly, when the SSD cache detects that a new host command has been received, the SSD controller increases its operating frequency.
[0039] For example, when the SSD controller reduces its operating frequency, the SSD can monitor whether a new host command has been received in the SSD cache. If a new host command is received, the SSD will increase its operating frequency to process the new host command.
[0040] In one exemplary instance, the SSD controller periodically determines whether there are any unexecuted host commands in the SSD cache, including:
[0041] First, the SSD controller periodically determines whether it has any unexecuted host commands by obtaining the number of pending commands in the SSD controller. Specifically, when the SSD controller is powered on, the number of pending commands is 0. Whenever the SSD controller detects that a host command from the host has been received in the SSD cache, the SSD controller increments the number of pending commands by 1. Whenever the SSD controller detects that a host command in the SSD cache has been completed, the SSD controller decrements the number of pending commands by 1.
[0042] When the number of commands to be executed is 0, the SSD controller determines that there are no unexecuted host commands in the SSD cache;
[0043] When the number of commands to be executed is not 0, the SSD controller determines that there are unexecuted host commands in the SSD cache.
[0044] In one exemplary instance, obtaining the number of commands to be executed in the SSD controller includes:
[0045] Obtain the value of the Doorbell register in the SSD controller, which will be used as the number of commands to be executed.
[0046] In one exemplary instance, determining the state of the SSD controller includes:
[0047] First, the SSD controller determines its status by acquiring status identification information from the SSD controller; wherein, the status identification information includes: first information indicating a non-idle state and second information indicating an idle state, and the status identification information is the first information when the SSD controller is powered on;
[0048] When the status identifier information is the second information, the SSD controller determines that it is in the idle state;
[0049] When the status identifier information is the first information, the SSD controller determines that it is in the non-idle state.
[0050] In one exemplary instance, after the SSD controller reduces its operating frequency, it further includes:
[0051] The SSD controller modifies the status identification information to the second information.
[0052] In one exemplary instance, after the SSD controller increases its operating frequency, it further includes:
[0053] The SSD controller modifies the status identification information to the first information.
[0054] In one exemplary instance, obtaining the status identification information in the SSD controller includes:
[0055] The value of IDLE_CNT in the SSD controller is taken as the status identification information; wherein, the value of IDLE_CNT includes: 0 and 1, where 0 represents the first information and 1 represents the second information.
[0056] This disclosure also provides an SSD controller power management method, illustrating how the SSD controller switches from a normal frequency to the lowest frequency, such as... Figure 2 As shown, it includes:
[0057] Step 201: The SSD controller determines whether there are any unexecuted host commands in the SSD cache. If they exist, the process ends; otherwise, proceed to step 202.
[0058] This step is achieved by obtaining the value of the Doorbell register in the SSD controller. If Doorbell = 0, it means that there are no host commands that have not been completed. If Doorbell ≠ 0, it means that there are host commands that have not been completed.
[0059] Step 202: The SSD controller determines whether it is in an idle state. If it is not in an idle state, proceed to step 203. If it is in an idle state, end the process.
[0060] This step is specifically implemented by judging the value of IDLE_CNT. If IDLE_CNT = 0, it means that the SSD is in a non-idle state; if IDLE_CNT = 1, it means that the SSD is in an idle state.
[0061] Step 203: The SSD controller reduces its operating frequency to the lowest possible level.
[0062] In this step, the value of IDLE_CNT will also be modified so that IDLE_CNT = 1.
[0063] This disclosure also provides an SSD controller power management method, illustrating how the SSD controller switches from its lowest frequency to a normal frequency, such as... Figure 3 As shown, it includes:
[0064] Step 301: The SSD controller monitors whether a new cmd host command has been received in the SSD cache. If it is detected, proceed to step 302; otherwise, end the process.
[0065] Step 302: The SSD controller determines whether it is in a non-idle state. If it is in a non-idle state, the process ends. If it is in an idle state, the process proceeds to step 303.
[0066] This step is specifically implemented by judging the value of IDLE_CNT. If IDLE_CNT = 0, it means that the SSD is in a non-idle state; if IDLE_CNT = 1, it means that the SSD is in an idle state.
[0067] Step 303: The SSD controller increases its operating frequency to the normal frequency.
[0068] In this step, the value of IDLE_CNT will also be modified so that IDLE_CNT = 0.
[0069] This disclosure also provides an SSD, such as Figure 4 As shown, the SSD includes: an SSD controller 41, an SSD flash 42, and an SSD cache 43, wherein the SSD flash 42 is used to store executable programs;
[0070] The SSD controller 41 is used to read and execute the executable program from the SSD flash 42 and place it in the SSD cache 43 for execution, so as to implement the SSD controller power management method described in the above embodiments.
[0071] It should be understood that a processing unit can be a Central Processing Unit (CPU), or it can be other general-purpose processing units, digital signal processing units (DSPs), application-specific integrated circuits (ASICs), off-the-shelf programmable gate arrays (FPGAs), or other programmable logic units, discrete gate or transistor logic units, discrete hardware components, etc. A general-purpose processing unit can be a microprocessor unit or any conventional processing unit.
[0072] The storage unit may include read-only memory units and random access memory units, and provides instructions and data to the processing unit. A portion of the storage unit may also include non-volatile random access memory units. For example, the storage unit may also store information about the device type.
[0073] This application describes several embodiments, but these descriptions are exemplary and not restrictive, and it will be apparent to those skilled in the art that many more embodiments and implementations are possible within the scope of the embodiments described herein. Although many possible combinations of features are shown in the drawings and discussed in the detailed description, many other combinations of the disclosed features are also possible. Unless specifically limited, any feature or element of any embodiment may be used in combination with, or may replace, any feature or element of any other embodiment.
[0074] This application includes and contemplates combinations of features and elements known to those skilled in the art. The embodiments, features, and elements disclosed in this application may also be combined with any conventional features or elements to form a unique inventive scheme as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other inventive schemes to form another unique inventive scheme as defined by the claims. Therefore, it should be understood that any feature shown and / or discussed in this application may be implemented individually or in any suitable combination. Therefore, the embodiments are not limited except by the limitations imposed by the appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.
[0075] Furthermore, in describing representative embodiments, the specification may have presented methods and / or processes as a specific sequence of steps. However, the method or process should not be limited to the specific order of steps described herein, to the extent that it does not depend on such a specific order. As will be understood by those skilled in the art, other sequences of steps are also possible. Therefore, the specific order of steps set forth in the specification should not be construed as a limitation of the claims. Moreover, the claims concerning the method and / or process should not be limited to the steps performed in the written order, and those skilled in the art will readily understand that these orders can be varied and still remain within the spirit and scope of the embodiments of this application.
Claims
1. A power consumption management method for a solid-state drive (SSD) controller, characterized in that, include: The SSD controller periodically determines whether there are any unexecuted host commands in the SSD cache and also determines the status of the SSD controller. The SSD controller's states include: idle state and non-idle state; When the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in the non-idle state, the SSD controller reduces its own operating frequency. Also includes: When the SSD controller determines that there is an unexecuted host command in the SSD cache and the SSD controller is in the idle state, the SSD controller increases its own operating frequency. When the SSD controller determines that there is no unexecuted host command in the SSD cache and the SSD controller is in the idle state, or when the SSD controller determines that there is an unexecuted host command in the SSD cache and the SSD controller is in the non-idle state, the SSD controller determines the current operating frequency as its own operating frequency.
2. The method according to claim 1, characterized in that, After the SSD controller reduces its operating frequency, it also includes: The SSD controller monitors whether a new host command has been received in the SSD cache; When the SSD controller detects that a new host command has been received in the SSD cache, it increases its operating frequency.
3. The method according to claim 1, characterized in that, The SSD controller periodically determines whether there are any unexecuted host commands in the SSD cache, including: The SSD controller periodically determines whether it has any unexecuted host commands by obtaining the number of pending commands in the SSD controller. Specifically, when the SSD controller is powered on, the number of pending commands is 0. Whenever the SSD controller detects that a host command from the host has been received in the SSD cache, the SSD controller increments the number of pending commands by 1. Whenever the SSD controller detects that a host command in the SSD cache has been completed, the SSD controller decrements the number of pending commands by 1. When the number of commands to be executed is 0, the SSD controller determines that there are no unexecuted host commands in the SSD cache; When the number of commands to be executed is not 0, the SSD controller determines that there are unexecuted host commands in the SSD cache.
4. The method according to claim 3, characterized in that, The step of obtaining the number of commands to be executed in the SSD controller includes: Obtain the value of the Doorbell register in the SSD controller, which will be used as the number of commands to be executed.
5. The method according to claim 1 or 2, characterized in that, The step of determining the state of the SSD controller includes: The SSD controller determines its status by acquiring status identification information from the SSD controller; wherein, the status identification information includes: first information indicating a non-idle state and second information indicating an idle state, and the status identification information is the first information when the SSD controller is powered on; When the status identifier information is the second information, the SSD controller determines that it is in the idle state; When the status identifier information is the first information, the SSD controller determines that it is in the non-idle state.
6. The method according to claim 5, characterized in that, After the SSD controller reduces its operating frequency, it also includes: The SSD controller modifies the status identification information to the second information; After increasing its operating frequency, the SSD controller also includes: The SSD controller modifies the status identification information to the first information.
7. The method according to claim 5, characterized in that, The step of obtaining the status identifier information in the SSD controller includes: Obtain the value of IDLE_CNT in the SSD controller as the status identification information; wherein, the value of IDLE_CNT includes: 0 and 1, where 0 represents the first information and 1 represents the second information.
8. A solid-state drive (SSD), characterized in that, include: SSD controller, SSD flash and SSD cache, wherein the SSD flash is used to store executable programs; The SSD controller is used to read and execute the executable program from the SSD flash and place it in the SSD cache for execution, so as to implement the SSD controller power management method as described in any one of claims 1-7.
Citation Information
Patent Citations
NVMe protocol processor and processing method thereof
CN109117092A
Solid state disk overheating protection method and device, computer equipment and storage medium
CN111581004A
Method and device for reducing chip power consumption, computer equipment and storage medium
CN112162710A
Storage device and data processing method and system
CN115221080A