CN115712395A - Dormancy depth management method and SSD - Google Patents

Dormancy depth management method and SSD Download PDF

Info

Publication number
CN115712395A
CN115712395A CN202211497044.0A CN202211497044A CN115712395A CN 115712395 A CN115712395 A CN 115712395A CN 202211497044 A CN202211497044 A CN 202211497044A CN 115712395 A CN115712395 A CN 115712395A
Authority
CN
China
Prior art keywords
depth
sleep depth
ssd
enter
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211497044.0A
Other languages
Chinese (zh)
Inventor
方亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Datang Storage Technology Co ltd
Original Assignee
Hefei Datang Storage Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hefei Datang Storage Technology Co ltd filed Critical Hefei Datang Storage Technology Co ltd
Priority to CN202211497044.0A priority Critical patent/CN115712395A/en
Publication of CN115712395A publication Critical patent/CN115712395A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)

Abstract

A management method of dormancy depth and Solid State Disk (SSD), SSD periodically according to the dormancy depth that the application function can enter in oneself, confirm as the dormancy depth that oneself presumes; the set sleep depth is the deepest level of sleep depth that each application function in the SSD can enter. The embodiment of the disclosure enables the SSD to adaptively adjust the sleep depth, thereby realizing autonomous optimization of power consumption.

Description

Dormancy depth management method and SSD
Technical Field
The embodiment of the disclosure relates to the technical field of power consumption control, and in particular, to a sleep depth management method and a Solid State Disk (SSD).
Background
In the prior art, a Non-Volatile Memory interface (NVME) protocol provides a complete set of complete power management negotiation mechanism, and a HOST (HOST) configures a power state of an SSD through a set feature.
However, this approach relies on HOST drive characteristics and SSDs cannot autonomously optimize power consumption.
Disclosure of Invention
The embodiment of the disclosure provides a sleep depth management method and an SSD, which can enable the SSD to adaptively adjust the sleep depth, thereby realizing autonomous optimization of power consumption.
In one aspect, an embodiment of the present disclosure provides a sleep depth management method, including: the SSD periodically determines the set sleep depth according to the sleep depth which the application function in the SSD can enter; the set sleep depth is the deepest level of sleep depth that each application function in the SSD can enter.
On the other hand, the embodiment of the present disclosure further provides an SSD, which includes a storage unit and a processing unit, where the storage unit is used to store an executable program;
the processing unit is used for reading and executing the executable program so as to realize the following steps:
periodically determining the sleep depth set for the SSD according to the sleep depth which can be entered by the application function in the SSD; the set sleep depth is the deepest sleep depth of each application function in the SSD, wherein the set sleep depth is the deepest level of the sleep depth which each application function in the SSD can enter.
Compared with the related art, according to the sleep depth management method provided by the embodiment of the disclosure, the SSD periodically determines the sleep depth set for the SSD according to the sleep depth that the application function can enter, so that the SSD can adaptively adjust the sleep depth, thereby realizing the autonomous optimization of the power consumption.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the disclosure. Other advantages of the disclosure may be realized and attained by the instrumentalities and combinations particularly pointed out in the specification and the drawings.
Drawings
The accompanying drawings are included to provide an understanding of the disclosed embodiments and are incorporated in and constitute a part of this specification, illustrate embodiments of the disclosure and together with the examples serve to explain the principles of the disclosure and not to limit the disclosure.
Fig. 1 is a flowchart illustrating a sleep depth management method according to an embodiment of the disclosure;
FIG. 2 is a flowchart illustrating another exemplary sleep depth management method according to the present disclosure;
fig. 3 is a schematic structural diagram illustrating a correspondence relationship between voting, sleep depth, and delivery count according to an embodiment of the present disclosure.
Detailed Description
The present disclosure describes embodiments, but the description is illustrative rather than limiting and it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are within the scope of the embodiments described in this disclosure. 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 possible. Any feature or element of any embodiment may be used in combination with or instead of any other feature or element in any other embodiment, unless expressly limited otherwise.
The present disclosure includes and contemplates combinations of features and elements known to those of ordinary skill in the art. The embodiments, features and elements of the present disclosure that have been disclosed may also be combined with any conventional features or elements to form unique aspects as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other aspects to form yet another unique aspect as defined by the claims. Thus, it should be understood that any features shown and/or discussed in this disclosure may be implemented individually or in any suitable combination. Accordingly, the embodiments are not limited except as by the appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.
Further, in describing representative embodiments, the specification may have presented the method and/or process as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. Other orders of steps are possible as will be understood by those of ordinary skill in the art. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. Further, the claims directed to the method and/or process should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the embodiments of the present disclosure.
An embodiment of the present disclosure provides a method for deep sleep management, as shown in fig. 1, including:
step 101, periodically determining a sleep depth set by an SSD according to the sleep depth which an application function in the SSD can enter; the set sleep depth is the deepest level of sleep depth that each application function in the SSD can enter.
Illustratively, the SSD can independently perform a plurality of application functions, such as a garbage collection function, a read/write function, a bad block management function, and a log management function, and each application function knows which sleep depth cannot be entered in its current operation stage (if entering, the operation condition of itself is affected).
In the related art, a sleep depth management method is set by a host (an SSD is inserted into the host via an interface), and then the sleep depth of the SSD is managed according to the set method.
According to the sleep depth management method provided by the embodiment of the disclosure, the SSD periodically determines the sleep depth set by the SSD according to the sleep depth which the application function in the SSD can enter, so that the SSD can adaptively adjust the sleep depth, and the power consumption is autonomously optimized.
In an exemplary embodiment, each sleep depth corresponds to a configuration support range, and each application function determines whether it can enter into each sleep depth according to the configuration support required by itself in the current execution stage.
Illustratively, the various sleep depths are pre-divided according to the power consumption condition and the operation condition of the SSD, and assuming that the sleep depth is represented by LPM, the various sleep depths are respectively: the configuration support range corresponding to LPM0 is the largest, for example, all resources and clocks can be set to be in a working state, and the power consumption is the largest at this time; the configuration support range corresponding to LPM1 is smaller than that of LPM0, and may be set to turn off a part of the peripheral devices that are not commonly used, where the power consumption is slightly smaller, and the configuration support range corresponding to LPM2 is minimum, and may be set to turn off a part of the peripheral devices that are not commonly used again based on LPM1, where only the most basic peripheral devices are maintained, and where the function is minimum. When the configuration support range corresponding to each sleep depth is set, each application function knows the configuration support required by the current execution stage in the running process of the application function, that is, the required configuration support, and then knows which sleep depths cannot enter.
It should be noted that configuration support required in different execution stages during execution of each application may be different, and therefore, the determination of the sleep depth set by the solid state disk as the sleep depth that can be entered by the application function refers to: the SSD is a sleep depth that an application function can enter in a running phase when a periodic action is triggered.
In an exemplary embodiment, the SSD periodically determines the sleep depth set for itself according to the sleep depth which the application function in itself can enter, including:
the SSD periodically takes the shallowest one-level sleep depth as the current sleep depth, and executes the following judgment operations:
the SSD polls whether each application function in the SSD can enter the current sleep depth or not;
if each application function can enter the current sleep depth, the SSD takes the sleep depth which is one level deeper than the current sleep depth as a new current sleep depth, and continues to execute the judgment operation until the application function which can not enter the current sleep depth appears, and takes the sleep depth which is one level shallower than the current sleep depth as the set sleep depth; or taking the deepest dormancy depth as the set dormancy depth until all the application functions are judged to enter the deepest dormancy depth.
For example, in the process of performing the determination operation on each level of the sleep depth, as long as it is determined that one application function cannot enter a certain level of the sleep depth, the determination is stopped, and the determination operation is not performed on the deeper level of the sleep depth.
In an illustrative example, the SSD polling whether each application function in itself can enter the current sleep depth includes:
the SSD judges whether each application function can enter the current dormancy depth or not by polling votes in a voting box preset by the SSD; wherein, all application functions correspond to the votes in the voting box one by one; each vote is recorded with information whether the application function corresponding to the vote can enter various sleep depths in the current execution stage.
Illustratively, the SSD can quickly obtain whether each application function can enter various sleep depths by delivering votes + polling votes.
In one illustrative example, each vote contains a root for uniquely identifying the vote, each vote uniquely corresponding to an application function, each application function including at least one sub-function; each sub-function included in each application function is delivered by using the vote corresponding to the application function; each dormancy depth of each vote corresponds to a delivery count, and each delivery count is used for reflecting whether the application function corresponding to the vote can enter the corresponding dormancy depth; in the initial state, the value of each delivery count is 0;
the SSD judges whether each application function can enter the current sleep depth by polling votes in a voting box preset by itself, including:
the SSD sequentially obtains a delivery count value corresponding to the current dormancy depth of each vote in the voting box according to the vote root;
when the value of the delivery count corresponding to the current dormancy depth of the obtained vote is not 0, judging that an application function which cannot enter the current dormancy depth exists;
when the delivery count value corresponding to the current dormancy depth of each vote is 0, judging that all application functions can enter the current dormancy depth; and the SSD carries out accumulation calculation according to the delivery count value of each vote and the rule that 1 is added to the vote count value corresponding to the current sleep depth of the vote if the subfunction can not enter the current sleep depth and 1 is subtracted from the vote count value corresponding to the current sleep depth of the vote if the subfunction can enter the current sleep depth.
It should be noted that, because the ticket root can uniquely identify one vote, each vote is in one-to-one correspondence with the application function according to the ticket root, thereby avoiding different application functions from "taking" the same vote from the voting box, and ensuring the unique attribute of the vote.
Illustratively, each application function is actually composed of a series of sub-functions, such as a garbage collection function including a temperature detection function \8230; \8230, which actually delivers votes, but if each sub-function is assigned a vote, the number of votes assigned is large, the resource consumption is high during polling, so that each application function is assigned a vote, and the sub-functions under each application function can be delivered by using the vote of the corresponding application function. When each subfunction delivers votes, because the requirement of the subfunction on the dormancy depth is changed, the time for delivering votes of each subfunction may be different, but the SSD monitors in real time, and once it is monitored that the subfunction delivers votes, the SSD operates the value of the delivery count corresponding to the application function to which the subfunction belongs according to the information on the votes, the SSD does not need to store the specific content on the votes of the subfunction, and only needs to modify the value of the corresponding delivery count according to the content on the votes, and the SSD only polls the value of the delivery count corresponding to each dormancy depth on each vote during polling, and can know that each application function can enter the corresponding dormancy depth according to the value of the delivery count. Specifically, whether the target application function can enter the target sleep depth is determined by determining the value of the target delivery count, that is, whether the value of the target delivery count is 0 or not is determined, where a value of 0 means that either a vote that the target application function includes a sub-function that is not delivered and cannot enter the target sleep depth or a vote that the sub-function cannot enter the target sleep depth is present, but a vote that the target delivery depth can be entered is delivered later, so that the value of the target delivery count of the target sleep depth is 0 (the initial state is 0), and in both cases, the value of the target delivery count is 0 during statistics, that is, the target application function can enter the target sleep depth.
In an exemplary embodiment, the ballot box is represented by a two-dimensional array, a first dimension of the two-dimensional array is used for representing a ballot root, a second dimension of the two-dimensional array is used for representing a sleep depth, elements in the two-dimensional array are in one-to-one correspondence with the ballot, and a value of each element in the two-dimensional array is used for representing whether a sub-function delivering the ballot corresponding to the element can enter the current sleep depth.
Illustratively, the ballot box is represented by a two-dimensional array, each element of the two-dimensional array representing a vote, and the polling of the vote is actually performed by polling the two-dimensional array, thereby increasing the polling speed.
In one illustrative example, the determining is performed on a multi-core.
For example, the determination operations with different sleep depths may be executed on different cores, thereby speeding up the execution process of the determination operations.
An embodiment of the present disclosure further provides a method for deep sleep management, as shown in fig. 2, including:
step 201, ticket case creation
Step 202, ticket root acquisition
Step 203, voting delivery
Step 204, voting decision making
Specifically, in the SSD firmware SSD initialization phase, a ticket box is initialized, which is a set of two-dimensional arrays a [ x ] [ y ]. x represents the ticket root. y represents the dormancy depth, e.g., LPM0, LPM1, LPM2, LPM3. Each member of the array should at least contain a count (corresponding to "delivery count" in the above embodiment) attribute and may also include an Owner attribute. The Owner is used to record the current function of obtaining the ticket root, the count is used to record the number of times of voting delivery, when disable is a certain dormancy depth (corresponding to "can not enter a certain dormancy depth" in the above embodiment), the count value is increased by one, when enable is a corresponding dormancy depth (corresponding to "can enter a certain dormancy depth" in the above embodiment), the count value is decreased by one. And when the ticket box is initialized, all the ticket root count counts are cleared, and no function is acquired. At this time, the voting decision link considers all the ticket roots to be invalid, and defaults to enter the deepest dormancy depth.
And acquiring a ticket root at the initialization stage of each subfunction of the SSD, wherein the ticket root can be x of a [ x ] [ y ], and can also be a space address corresponding to the a [ x ]. The sub-function of the firmware needs to record the ticket root, and the information recorded in the ballot box is updated according to the ticket root in the subsequent voting delivery and voting destruction so as to facilitate voting decision.
And in the SSD subfunction operation stage, voting is delivered or destroyed according to the characteristics of each function and the length of a time window, and a corresponding dormancy depth is selected for disable or enable. For example, if the sleep depth is divided into four depths: the LPM0, LPM1, LPM2 and LPM3 are operated by firmware, and the A function and the B function are operated, the dormancy depth of the A function must be greater than or equal to the LPM2 in the operation process, otherwise, the normal execution of the A function is influenced. The a function may enter LPM3 when idle. For example, according to the calculation, when Tw is greater than 300s and the LPM3 is allowed to enter, the power consumption of the device can reach the optimal value, and when Tw is greater than 100s and the LPM2 is allowed to enter, the power consumption of the device can reach the optimal value.
The voting decision phase may poll all the ticket roots in the scanning ticket box at a certain task or a certain cpu (multi-core). The scanning rule is from shallow to deep, and the scanning is started from the most shallow sleep depth. When the voting results of the LPM0 votes of all the ticket roots are allowed to enter, recording that the current deepest dormancy state is the LPM0, then continuing to scan the LPM1, and if the voting results of the LPM1 votes of all the ticket roots are allowed to enter, updating the current deepest dormancy depth to be the LPM1, and entering the scanning of the deeper dormancy depth. If the voting result of the votes with the votes root does not allow to enter the sleep depth of the current scanning, the scanning is exited, and the sleep depth which the current record allows to enter is returned. And the sleep process is processed according to the sleep depth returned by the voting result so as to optimize the power consumption maximally without influencing the use of the equipment.
A schematic structural diagram of a corresponding relationship between each vote in the voting box, various pieces of dormancy depth information on each vote, and delivery counts (in this embodiment, counts) of various pieces of dormancy depth information on each vote may be as shown in fig. 3, the voting box includes vote 0, vote 1, and vote 2, the dormancy depth includes LPM0, LPM1, and LPM2, LPM0 on vote 0 corresponds to one count, LPM1 corresponds to one count, and LPM2 corresponds to one count; in voting 1, LPM0 corresponds to a count, LPM1 corresponds to a count, and LPM2 corresponds to a count; on vote 2, LPM0 corresponds to a count, LPM1 corresponds to a count, and LPM2 corresponds to a count.
An embodiment of the present disclosure further provides an SSD, including: the device comprises a storage unit and a processing unit, wherein the storage unit is used for storing an executable program;
the processing unit is used for reading and executing the executable program so as to realize the following steps:
periodically determining the sleep depth set for the SSD according to the sleep depth which the application function in the SSD can enter; the set sleep depth is the deepest sleep depth of each application function in the SSD, wherein the set sleep depth is the deepest level of the sleep depth which each application function in the SSD can enter.
The SSD provided in the embodiment of the present disclosure periodically determines the sleep depth set for the SSD according to the sleep depth that the application function in the SSD can enter, so that the sleep depth can be adaptively adjusted, thereby realizing autonomous optimization of power consumption.
In an exemplary embodiment, each sleep depth corresponds to a configuration support range, and each application function determines whether it can enter into each sleep depth according to the configuration support required by itself in the current execution stage.
In an exemplary embodiment, the processing unit is configured to read and execute the executable program to implement the following steps:
periodically taking the shallowest level of the sleep depth as the current sleep depth, executing the following judgment operations:
polling whether each application function in the SSD can enter the current sleep depth;
if each application function can enter the current sleep depth, taking the sleep depth which is one level deeper than the current sleep depth as a new current sleep depth, and continuing to execute the judgment operation until the application function which can not enter the current sleep depth appears, and taking the sleep depth which is one level shallower than the current sleep depth as a set sleep depth; or taking the deepest dormancy depth as the set dormancy depth until all the application functions are judged to enter the deepest dormancy depth.
In an exemplary embodiment, the processing unit is configured to read and execute the executable program to implement the following steps:
judging whether each application function can enter the current sleep depth or not by polling votes in a voting box preset by the SSD; wherein, all application functions correspond to votes in the voting boxes one by one; each vote is recorded with information whether the application function corresponding to the vote can enter various sleep depths in the current execution stage.
In one illustrative example, each vote contains a root for uniquely identifying the vote, each vote uniquely corresponding to an application function, each application function including at least one sub-function; each sub-function included in each application function is delivered by using the vote corresponding to the application function; each dormancy depth of each vote corresponds to a delivery count, and each delivery count is used for reflecting whether the application function corresponding to the vote can enter the corresponding dormancy depth; in the initial state, the value of each delivery count is 0.
In an exemplary embodiment, the processing unit is configured to read and execute the executable program to implement the following steps:
sequentially acquiring a delivery count value corresponding to the current dormancy depth of each vote in the voting box according to the vote root;
when the value of the delivery count corresponding to the current dormancy depth of the obtained vote is not 0, judging that an application function which cannot enter the current dormancy depth exists;
when the delivery count value corresponding to the current dormancy depth of each vote is 0, judging that all application functions can enter the current dormancy depth; and the SSD carries out accumulation calculation according to the delivery count value of each vote and the rule that the voting count value corresponding to the current sleep depth of the vote is added by 1 if the subfunction cannot enter the current sleep depth and the voting count value corresponding to the current sleep depth of the vote is subtracted by 1 if the subfunction can enter the current sleep depth.
In an exemplary embodiment, the ballot box is represented by a two-dimensional array, a first dimension of the two-dimensional array is used for representing a ballot root, a second dimension of the two-dimensional array is used for representing a sleep depth, elements in the two-dimensional array are in one-to-one correspondence with the votes, and a value of each element in the two-dimensional array is used for representing whether a sub-function delivering the vote corresponding to the element can enter the current sleep depth.
In one illustrative example, the determining is performed on a multi-core.
It should be understood that the Processing Unit may be a Central Processing Unit (CPU), other general purpose Processing Unit, a digital signal Processing Unit (DSP), an Application Specific Integrated Circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic Unit, discrete gate or transistor logic Unit, discrete hardware component, etc. The general purpose processing unit may be a micro processing unit or the processing unit may be any conventional processing unit or the like.
The memory units may include read-only memory units and random access memory units, and provide instructions and data to the processing unit. A portion of the memory cells may also include non-volatile random access memory cells. For example, the storage unit may also store information of the device type.
The description herein describes embodiments, but is intended to be exemplary, rather than limiting and it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are 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 possible. Any feature or element of any embodiment may be used in combination with or instead of any other feature or element in any other embodiment, unless expressly limited otherwise.
The present application includes and contemplates combinations of features and elements known to those of ordinary skill in the art. The embodiments, features and elements disclosed herein may also be combined with any conventional features or elements to form unique inventive aspects as defined by the claims. Any feature or element of any embodiment may also be combined with features or elements from other inventive aspects to form yet another unique inventive aspect, as defined by the claims. Thus, it should be understood that any of the features shown and/or discussed in this application may be implemented alone or in any suitable combination. Accordingly, the embodiments are not limited except as by the appended claims and their equivalents. Furthermore, various modifications and changes may be made within the scope of the appended claims.
Further, in describing representative embodiments, the specification may have presented the method and/or process as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. Other sequences of steps are possible as will be appreciated by those of ordinary skill in the art. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. Further, the claims directed to the method and/or process should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the embodiments of the present application.

Claims (10)

1. A method for deep sleep management, comprising:
the SSD periodically determines the set sleep depth according to the sleep depth which the application function in the SSD can enter; the set sleep depth is the deepest level of sleep depth that each application function in the SSD can enter.
2. The method of claim 1, wherein each sleep depth corresponds to a configuration support range, and each application function determines whether it can enter various sleep depths according to its configuration support required in the current execution stage.
3. The method according to claim 1 or 2, wherein the SSD periodically determines the sleep depth set for the SSD according to the sleep depth which the application function in the SSD can enter, and the method comprises the following steps:
the SSD periodically takes the shallowest one-level sleep depth as the current sleep depth, and executes the following judgment operations:
the SSD polls whether each application function in the SSD can enter the current sleep depth or not;
if each application function can enter the current sleep depth, the SSD takes the sleep depth which is one level deeper than the current sleep depth as a new current sleep depth, and continues to execute the judgment operation until the application function which can not enter the current sleep depth appears, and takes the sleep depth which is one level shallower than the current sleep depth as a set sleep depth; or taking the deepest dormancy depth as the set dormancy depth until all the application functions are judged to be capable of entering the deepest dormancy depth.
4. The method of claim 3, wherein the SSD polls whether each application function in itself can enter the current sleep depth comprises:
the SSD judges whether each application function can enter the current dormancy depth or not by polling votes in a voting box preset by the SSD; wherein, all application functions correspond to votes in the voting boxes one by one; each vote is recorded with information whether the application function corresponding to the vote can enter various sleep depths in the current execution stage.
5. The method of claim 4, wherein each vote includes a root for uniquely identifying the vote, each vote uniquely corresponding to an application function, each application function including at least one sub-function; each sub-function included in each application function is delivered by using the vote corresponding to the application function; each dormancy depth of each vote corresponds to a delivery count, and each delivery count is used for reflecting whether the application function corresponding to the vote can enter the corresponding dormancy depth; in the initial state, the value of each delivery count is 0;
the SSD, by polling votes in a voting box preset by the SSD, determines whether each application function can enter the current sleep depth, including:
the SSD sequentially obtains a delivery count value corresponding to the current dormancy depth of each vote in the voting box according to the vote root;
when the value of the delivery count corresponding to the current dormancy depth of the obtained vote is not 0, judging that an application function which cannot enter the current dormancy depth exists;
when the delivery count value corresponding to the current dormancy depth of each vote is 0, judging that all application functions can enter the current dormancy depth; and the SSD carries out accumulation calculation according to the delivery count value of each vote and the rule that 1 is added to the vote count value corresponding to the current sleep depth of the vote if the subfunction can not enter the current sleep depth and 1 is subtracted from the vote count value corresponding to the current sleep depth of the vote if the subfunction can enter the current sleep depth.
6. The method of claim 5, wherein the ballot box is represented by a two-dimensional array, a first dimension of the two-dimensional array representing a root of a ballot, a second dimension of the two-dimensional array representing a sleep depth, elements in the two-dimensional array corresponding one-to-one to the ballot, and a value of each element in the two-dimensional array representing whether a sub-function delivering the ballot corresponding to the element can enter the current sleep depth.
7. The method of claim 3, wherein the determining is performed on multiple cores.
8. An SSD, characterized by comprising a storage unit for holding executable programs and a processing unit;
the processing unit is used for reading and executing the executable program so as to realize the following steps:
periodically determining the sleep depth set for the SSD according to the sleep depth which can be entered by the application function in the SSD; the set sleep depth is the deepest sleep depth of each application function in the SSD, wherein the set sleep depth is the deepest level of the sleep depth which each application function in the SSD can enter.
9. The SSD according to claim 8, wherein each sleep depth corresponds to a configuration support range, and each application function determines whether it can enter various sleep depths according to its configuration support required in the current execution stage.
10. The SSD according to claim 8 or 9, wherein the processing unit is configured to read and execute the executable program to implement the following steps:
periodically taking the shallowest grade of the sleep depth as the current sleep depth, executing the following judgment operations:
polling whether each application function in the SSD can enter the current sleep depth;
if each application function can enter the current sleep depth, taking the sleep depth which is one level deeper than the current sleep depth as a new current sleep depth, and continuing to execute the judgment operation until the application function which can not enter the current sleep depth appears, and taking the sleep depth which is one level shallower than the current sleep depth as the set sleep depth; or taking the deepest dormancy depth as the set dormancy depth until all the application functions are judged to be capable of entering the deepest dormancy depth.
CN202211497044.0A 2022-11-25 2022-11-25 Dormancy depth management method and SSD Pending CN115712395A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211497044.0A CN115712395A (en) 2022-11-25 2022-11-25 Dormancy depth management method and SSD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211497044.0A CN115712395A (en) 2022-11-25 2022-11-25 Dormancy depth management method and SSD

Publications (1)

Publication Number Publication Date
CN115712395A true CN115712395A (en) 2023-02-24

Family

ID=85234943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211497044.0A Pending CN115712395A (en) 2022-11-25 2022-11-25 Dormancy depth management method and SSD

Country Status (1)

Country Link
CN (1) CN115712395A (en)

Similar Documents

Publication Publication Date Title
US8583854B2 (en) Nonvolatile storage device with NCQ supported and writing method for a nonvolatile storage device
WO2017012392A1 (en) Disk check method and apparatus
US20160283711A1 (en) eMMC Monitoring Method and Apparatus
US8639818B1 (en) System and method for reliable and timely task completion in a distributed computing environment
EP3472684B1 (en) Wake lock aware system wide job scheduling for energy efficiency on mobile devices
EP2454668B1 (en) Feedback reporting from non-volatile block storage device to processing device
US20130212415A1 (en) Partition Level Power Management Using Fully Asynchronous Cores with Software that has Limited Asynchronous Support
US20110191393A1 (en) Marking algorithm for low-bandwith memory
CN115712395A (en) Dormancy depth management method and SSD
CN110688360A (en) Distributed file system storage management method, device, equipment and storage medium
US20240127870A1 (en) Configuring a host interface of a memory device based on mode of operation
US10944768B2 (en) System for automated signature generation and refinement
JP2012103893A (en) Analysis system, analysis device, analysis method, and analysis program
CN110389877B (en) Method, system and device for reading logs during operation of solid state disk and storage medium
EP3671388A1 (en) Configurable distributed smart sensor system
CN108877858A (en) Storage device and refreshing method
US10896046B2 (en) Management processor using code from peripheral device
WO2020113562A1 (en) Computing power control method, apparatus and device, and storage medium
CN105069084A (en) Massive data oriented method for efficiently taking difference set
CN109684134B (en) Method and server for rapidly deploying firmware settings among multiple devices
CN111104065A (en) File storage method, device and equipment
US10282114B1 (en) System and computer-implemented method for balancing loads across data storage pools
CN102646024B (en) Multi-hard-disk read-write management method and system and electronic device
US10049053B1 (en) Classifying performance of an external storage resource pool associated with a performance tier in a federated tiered storage system for overload avoidance and auto-tiering
CN114489479B (en) Method and device for powering up and powering down data storage disk

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination