Method and apparatus for self-regulating power usage and power consumption in SSD storage system

By building a power metering unit in a solid-state storage device and reporting actual power consumption, the problem of difficulty in accurately calculating user power consumption in cloud storage systems is solved, real-time power management of storage devices and accurate billing of energy costs is realized.

CN110221771BActive Publication Date: 2025-01-03SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201910145834.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-05-09
Filing Date
2019-02-27
Publication Date
2025-01-03
Estimated Expiration
2039-02-27

AI Technical Summary

Technical Problem

Existing cloud-based storage systems are difficult to accurately calculate and report the real-time power consumption of individual users, resulting in unfair situations when users pay for actual energy costs.

Method used

A solid-state storage device is designed with a built-in power metering unit that measures the power consumption of each component through flash memory and controller, and reports actual power consumption through a local service processor, supporting power management and budget allocation.

Benefits of technology

Real-time power consumption measurement and reporting of storage devices is realized, allowing local service processors to perform fine-grained power management, ensuring storage devices optimize between performance and power consumption, providing more accurate energy cost billing and better power budget management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110221771B_ABST
    Figure CN110221771B_ABST
Patent Text Reader

Abstract

An embodiment of the present invention includes a solid-state storage device for reporting actual power consumption, the solid-state storage device including an internal power metering unit, a memory including a flash memory, one or more components including at least a controller and a memory, and one or more voltage rails, wherein the memory stores instructions configured to be executed by the controller, and the one or more voltage rails connect the power metering unit to the one or more components so that the power metering unit can measure the power consumed by the one or more components of the storage device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. Provisional Patent Application Serial No. 62 / 638,035, filed on March 2, 2018, and U.S. Patent Application Serial No. 15 / 975,463, filed on May 9, 2018, the entire contents of both applications are incorporated herein by reference. Technical Field

[0003] The present disclosure relates to a storage system, and more particularly, to a method and apparatus for self-regulating power usage and power consumption in an SSD storage system. Background Art

[0004] Many companies provide cloud-based storage to end users, enabling them to remotely access their stored data. Such companies often utilize Ethernet-attached Solid State Drives (eSSDs) to meet their storage needs. In particular, Ethernet-attached high-speed non-volatile memory NVMe (Non-Volatile Memory express) SSDs (e.g., NVMe over Fabrics (NVMe-oF) storage devices) are considered to be emerging disruptive technologies in this field.

[0005] Cloud-based storage providers typically charge users monthly or annually for storing their data based on the total storage space allocated to them, the average energy cost consumed by all users, or the maximum power consumption that the user can consume based on the system. For example, for two users who have purchased the same amount of cloud storage space, the user who stores only a small amount of data relative to the total storage space purchased and only stores data infrequently will be charged the same fee as the user who regularly removes and adds new data and uses most of the storage space he / she purchased. Ideally, users should be charged for storage based on the actual energy consumed. However, there is no accurate method for calculating the power consumption of a single user, or for calculating real-time power consumption.

[0006] A storage device and storage method are needed that enable the storage device to report the actual power consumption of the storage device to a host.

[0007] The above information disclosed in this Background section is only for enhancement of understanding of the background of the present disclosure and therefore it may contain information that does not constitute the prior art. Summary of the invention

[0008] Embodiments of the present invention include a solid-state storage device for reporting actual power consumption, comprising an internal power metering unit, a memory including a flash memory, one or more components including at least a controller and the memory, wherein the memory stores instructions configured to be executed by the controller, and one or more voltage rails that connect the power metering unit to the one or more components so that the power metering unit can measure the power consumed by the one or more components of the storage device.

[0009] Embodiments also include a method for reporting power consumption of a solid-state storage device, the storage device including an internal power metering unit, a memory including a flash memory, one or more components including at least a controller and the memory, wherein the memory stores instructions configured to be executed by the controller, and one or more voltage rails, the one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit can measure the power consumed by the one or more components of the storage device, the method including measuring the power consumed by the one or more components of the storage device at the power metering unit.

[0010] An embodiment also includes a storage system comprising a local service processor and one or more solid-state storage devices connected to the local service processor, each of the one or more solid-state storage devices comprising an internal power metering unit, a memory including a flash memory, one or more components including at least a controller and a memory, wherein the memory stores instructions configured to be executed by the controller; and one or more voltage rails connecting the power metering unit to the one or more components so that the power metering unit can measure the power consumed by the one or more components. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Further features and aspects will become apparent and will be better understood by reference to the following detailed description when reviewed in conjunction with the accompanying drawings. In the drawings:

[0012] Figure 1 is an internal block diagram of a storage device according to an embodiment of the present invention.

[0013] Figure 2 Is used from Figure 1 Flow chart of a method for a power measurement unit in a storage device to collect power consumption measurements.

[0014] Figure 3 is a schematic diagram of a storage system incorporating multiple storage devices capable of providing power measurements.

[0015] Figure 4 yes Figure 3A block diagram of an embodiment of a storage system in which a PCIe switch is used.

[0016] Figure 5 is a diagram depicting an embodiment in which power measurements are transferred to a local service processor based on a query from the local service processor.

[0017] Figure 6 is a diagram depicting an embodiment in which power measurements are set by a local service processor.

[0018] Figure 7 An example of a power policy that the local service processor 50 can use to control power consumption of the storage device 10 is shown.

[0019] Figure 8 is a diagram depicting an embodiment in which power measurements are stored in a controller memory buffer until fetched by a local service processor.

[0020] Fig. 9 is a diagram depicting an embodiment in which power measurements made by a power measurement unit are directly accessible to a local service processor.

[0021] Fig.10 is an example of a power log according to an embodiment of the present invention.

[0022] Fig.11 How to use the storage system 200 Fig.10 A power log of a storage device 10 is provided to manage power reporting for multiple storage devices 10 in a chassis thereof. DETAILED DESCRIPTION

[0023] Hereinafter, example embodiments will be described in more detail with reference to the accompanying drawings, in which the same reference numerals always refer to the same elements. However, the present invention may be embodied in a variety of different forms and should not be construed as being limited to the embodiments shown herein. On the contrary, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the present invention to those skilled in the art. Therefore, for those of ordinary skill in the art, processes, elements and techniques that are not necessary for a complete understanding of the aspects and features of the present invention may not be described. Unless otherwise stated, throughout the drawings and written descriptions, the same reference numerals represent the same elements, and therefore, descriptions thereof will not be repeated. In the drawings, the relative sizes of elements, layers and regions may be exaggerated for clarity.

[0024] It will be understood that when an element or layer is referred to as being "on," "connected to," or "coupled to" another element or layer, it can be directly on, connected to, or coupled to the other element or layer, or one or more intervening elements or layers may be present. Additionally, it will be understood that when an element or layer is referred to as being "between" two elements or layers, it can be the only element or layer between the two elements or layers, or one or more intervening elements or layers may also be present.

[0025] The term used herein is only used to describe the purpose of specific embodiments, and is not intended to limit the present invention. As used herein, the singular form "one" and "a" are also intended to include plural forms, unless the context clearly indicates other forms. It will also be understood that when used in this specification, the terms "include" and "comprising" specify the existence of the features, integral bodies, steps, operations, elements and / or components, but do not exclude the existence or addition of one or more other features, integral bodies, steps, operations, elements, components and / or their groups. As used herein, the term "and / or" includes any and all combinations of one or more items in the associated listing items. When before the element list, expressions such as "at least one of ... " can modify the entire element list, rather than modifying the single element in the list.

[0026] As used herein, the terms "substantially," "approximately," and similar terms are used as terms of approximation, rather than terms of degree, and are intended to take into account the inherent deviations of measured or calculated values ​​that one of ordinary skill in the art will recognize. In addition, when describing embodiments of the present invention, the use of "may" refers to "one or more embodiments of the present invention." As used herein, the term "use" may be considered synonymous with the term "utilizing." And, the term "exemplary" is intended to refer to an example or illustration.

[0027] Any suitable hardware, firmware (e.g., application specific integrated circuit), software, or a combination of software, firmware, and hardware may be utilized to implement the electronic or electrical device and / or any other related device or component according to the embodiments of the present invention described herein. For example, the various components of these devices may be formed on an integrated circuit (IC) chip or on a separate IC chip. In addition, the various components of these devices may be implemented on a flexible printed circuit film, a tape carrier package (TCP), a printed circuit board (PCB), or formed on a substrate. In addition, the various components of these devices may be processes or threads that run on one or more processors in one or more computing devices, run computer program instructions, and interact with other system components for performing the various functions described herein. Computer program instructions are stored in a memory that may be implemented in a computing device using a standard memory device (such as, for example, a random access memory (RAM)). Computer program instructions may also be stored in other non-temporary computer-readable media, such as, for example, a CD-ROM (Compact Disc Read-Only Memory), a flash drive, and the like. Furthermore, those skilled in the art will recognize that the functionality of various computing devices may be combined or integrated into a single computing device, or that the functionality of a particular computing device may be distributed across one or more other computing devices without departing from the spirit and scope of the exemplary embodiments of the present invention.

[0028] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant technology and / or this specification, and should not be interpreted in an idealized or overly formal sense unless explicitly defined herein.

[0029] Embodiments of the present invention include a storage device (such as an SSD) that can report its actual power consumption to a local service processor (e.g., a baseboard management controller (BMC)). This enables the local service processor to provide a power profile and power consumption of the storage device. In some embodiments, the storage device can report to the local service processor or BMC via a system management bus (System Management Bus, SMBus) or a high-speed peripheral component interconnect (PCIe), and can report through one of a variety of protocols, such as through the Management Component Transport Protocol (MCTP) or through the NVMe management interface protocol of the NVMe SSD storage device. In some embodiments, the storage system can be an NVMe-oF-based system. Further embodiments include a storage system comprising a plurality of storage devices, each of which can report its actual power consumption to the local service processor. In such a system, the local service processor can provide a power profile and power analysis of the storage system and a single storage device in the system.

[0030] Figure 1 An internal block diagram of a storage device 10 according to an embodiment of the present invention is depicted. Although the figure depicts features associated with the illustrated embodiment of the present invention, the storage device 10 may include additional components. In some embodiments, the storage device 10 may be an SSD, an eSSD, an NVMe SSD, an NVMe-oF SSD, a SAS, or a SATA.

[0031] The storage device 10 includes internal components, including a controller 11, a memory 12, a flash die 13, a power metering unit (Power Metering Unit, PMU) 14, and a connector 15. The controller 11 (such as a well-known processor) implements firmware to retrieve and store data in the memory 12 and the flash die 13, and communicate with the host. In some embodiments, the controller 11 can be an SSD controller, an ASIC SSD controller, or an NVMe-oF / EdgeSSD controller. The memory 12 can be a random access memory such as DRAM or MRAM, and the flash die 13 can be a NAND flash memory device, although the present invention is not limited to this. The controller 11 can be connected to the memory 12 via a memory channel 22, and can be connected to the flash die 13 via a flash channel 23. The controller 11 can communicate with the host via a host interface 20, and the host interface 20 connects the controller 11 to the host through a connector 15. In some embodiments, the host interface 20 can be a PCIe connection, an Ethernet connection, or other suitable connection. The connector 15 can be a U.2 / M.2 connector or other suitable (multiple) connectors. The PMU 14 allows the storage device 10 to support power management capabilities by measuring the power consumption of the storage device 10 .

[0032] Power is supplied to the storage device 10 through the connector 15 via the voltage rail 30. The voltage rail 30 supplies power to various components of the storage device 10. For example, the voltage rail 30 may supply power to various components of the storage device 10 via the PMU 14 and various intervening voltage rails. Figure 1 1, where voltage rail 30 provides power to PMU 14, which then distributes power to other components of storage device 10. For example, PMU 14 drives power to flash die 13 via flash voltage rail 33. PMU 14 can similarly drive power to memory 12 via memory voltage rail 32. PMU 14 can supply voltage to controller 11 via multiple voltage rails, such as, for example, core voltage rail 34, I / O voltage rail 35, and one or more other voltage rails 36. Additional voltage rails, such as additional voltage rail 37, can be included to connect various other components that may be included in storage device 10. For example, when storage device 10 is an NVMe SSD, the various voltage rails 30, 33, 34, 35, 36, 37 used in storage device 10 can range from 12V down to 0.6V, including 12V and / or 0.6V rails.

[0033] In addition to providing power to storage device 10, voltage rail 30 is provided by PMU 14 within storage device 10 to generate power consumption measurements (“power measurements”) of various voltage rails used by components of storage device 10 (e.g., voltage rails used by components such as controller 11, flash die 13, memory 12, and other various components that may be included in storage device 10). In some embodiments, PMU 14 can be programmed to support obtaining / setting power states through power information.

[0034] The PMU 14 is capable of measuring the amount of current on the various voltage rails it drives, such as voltage rails 32, 33, 34, 35, 36, and 37. The PMU 14 is capable of outputting power measurements that include the average, minimum, and maximum voltage usage of the voltage rails 32, 33, 34, 35, 36, and 37 of the storage device 10. In some embodiments, the PMU 14 is capable of metering each voltage rail 32, 33, 34, 35, 36, and 37 separately, where the sum of all voltage rails 32, 33, 34, 35, 36, and 37 used by the storage device 10 is the total power consumed by the storage device 10. The power measurements metered at the PMU 14 can be read by the controller 11 using the PMU / controller interface 41. In some embodiments, the PMU / controller interface 41 can be an I2C / SMBus. The controller 11 can then provide these power measurements to the local service processor 50 (see FIG. 1 ) via the host interface 20 or a separate controller / host interface 42. Figure 3 ), such as a BMC. If a separate controller / host interface 42 is used, the interface may be I2C / SMBus. If the controller / host interface 42 is a PCIe connection, the controller 11 can provide power measurements to the local service processor 50 via NVMe-MI or MCTP protocols, such as Figure 4 PMU 14 can periodically report / output power measurements specified by local service processor 50, or passively keep track via internal counters accessible to local service processor 50.

[0035] Figure 2 1 is a flow chart of a method for collecting power consumption measurements from a PMU 14 of a storage device 10. Figure 2 As shown, the power measurements can be read at predetermined intervals. For example, the power measurements can be read from the PMU 14 of the storage device 10 at a user-configurable frequency (such as 1 second, 5 seconds, more than 5 seconds, or every few minutes). In other embodiments, the storage device 10 can read the power measurements only when needed (e.g., see Figure 8 and Fig. 9 ), for example, when a specific job is completed. The frequency with which the power measurements are read is referred to below as a time unit.

[0036] For each time unit, the controller 11 (S1) prepares to receive power measurements of the various voltage rails 30, 33, 34, 35, 36, 37 from the PMU 14. The controller 11 (S2) queries the PMU 14 to determine whether power measurements from all rails have been completed. If not, then (S3) a read request is sent to the DC-DC regulator at the PMU 14 corresponding to the voltage rail for which a power measurement has not yet been received (the PMU 14 may include multiple DC-DC regulators, each corresponding to a unique voltage rail). The read request may be sent via the I2C protocol via the PMU / controller interface 41. When a power measurement is received from the PMU 14, the power measurement is then annotated with a timestamp (S4) and the host I (S5). The received power measurement is then saved to a power log (S6). The power log may include internal registers (multiple) or may be included as part of the embedded non-volatile memory of the PMU.

[0037] Once the received power measurements are saved, the PMU 14 is polled again (S7) until all power measurements are received from the various voltage rails 30, 33, 34, 35, 36, 37. Once all power measurements are completed and the annotated power measurements are saved in the power log, these power measurements are retained in the power log through resets and power cycles (S8).

[0038] In addition to the above annotations, the power log page can also include any or all of the following parameters: Namespace ID, NMV Set, Read I / O, Write I / O, SQ ID, Stream ID, and other suitable parameters. The controller 11 also implements an Actual Power (AP) register that can be accessed by the local service processor 50. This allows various parameters associated with storage devices and power measurements to be mapped at a fine granularity.

[0039] In some embodiments, the power log can be a specific proprietary or vendor defined log page. The local service processor 50 can read the power log using existing protocols through the host interface 20 or a separate controller / host interface 42, whichever is used. For example, the BMC can read the power log using the NVMe-MI protocol via the controller / host interface 42, which can be SMBus or PCIe.

[0040] The above method provides a dynamic, real-time output of actual power consumption measurements without affecting the I / O of the storage device 10. Using the power measurement information, the local service processor can implement a power budget and allocate power to the storage device 10 based on the actual power usage of the storage device 10. For example, the local service processor can implement a power budget similar to existing industry standards for the allocated power budget register. In addition, the storage device 10 can report real-time power consumption to system management software (such as Samsung's DCP or Redfish).

[0041] Figure 3 1 is a block diagram of a storage system 100 incorporating multiple storage devices 10. The storage system 100 includes a local service processor 50 attached to the multiple storage devices 10. Each storage device 10 has a PMU 14 to measure power consumption, as described above with respect to FIG. Figure 1 and Figure 2 As described. In the illustrated embodiment, the storage device 10 provides power measurements to the local service processor 50 via the controller / host interface 42. In some embodiments, the controller / host interface 42 can be an I2C / SMBus or PCIe bus. The power measurements can be transferred to the local service processor 50 using NVMe protocols such as NVMe-MI, MCTP based on PCI-e, or I2C bus protocols. If the storage device 10 is connected via an SMBus / I2C connection, the local service processor 50 can even access the power log during a power failure using these existing protocols.

[0042] Figure 4 yes Figure 3 1 is a block diagram of an embodiment of a storage system 100 in which a PCIe switch 60 is used. In this embodiment, the storage device 10 is connected to the local service processor 50 via the PCIe switch 60. The power measurement can be transferred to the local service processor 50 via the PCIe switch 60 using a suitable protocol (such as, for example, NVMe-MI and / or MCTP). The storage device 10 can be connected to the host separately through the host interface 20 via, for example, an Ethernet switch.

[0043] exist Figure 3 and Figure 4 In the embodiment of the present invention, the local service processor 50 and multiple storage devices 10 can be placed in the same chassis, which allows the local service processor 50 to process the power measurement of multiple storage devices 10 according to the chassis power management requirements; however, the present invention is not limited to this. For example, power measurement can also be processed at the level of a single storage device.

[0044] In an embodiment where the NVMe protocol is used to transfer power measurements to the local service processor 50, the NVMe specification can define a power measurement and processing mechanism. Based on this mechanism, the storage device 10 (e.g., NVMe SSD) can support querying by the local service processor 50 ( Figure 5 ) or set by the local service processor 50 ( Figure 6 ) power management.

[0045] Figure 5 is a diagram depicting an embodiment in which power measurements are transferred to a local service processor 50 based on a query from the local service processor 50. In this embodiment, the local service processor 50 queries for power measurement information by sending a GetFeature command (S10), such as FeatureID=0x2, to the firmware of the controller 11 of the storage device 10 from which the local service processor 50 is seeking power measurement information. The controller's firmware then retrieves the power measurement information from the PMU 14 (S11). The controller's firmware receives the information and sends the information to the local service processor 50 via direct memory access (DMA) (S12). The controller's firmware then sends a completion notification (S13) to the local service processor 50 to signal that the query is complete. This embodiment allows power measurements to be retrieved from the storage device 10 in real time.

[0046] Figure 6 is a diagram depicting an embodiment in which power measurement is set by a local service processor 50. In this embodiment, the local service processor 50 sets power measurement information (hereinafter referred to as a power measurement budget) by sending a SetFeature command (S20), such as FeatureID=0x2, to the firmware of the controller 11 of the storage device 10, and the local service processor 50 intends to set the power measurement budget for the storage device 10. The firmware of the controller then requests the power measurement budget from the local service processor 50 using DMA (S21). The firmware of the controller 11 receives the information and sets the power measurement budget of the PMU 14 (S22). In response, the firmware of the controller processes a new power state transaction. In order to process the new power transaction, the firmware of the controller queries the current power state job in the PMU 14 to ensure that all tasks that depend on the current power state are fully and successfully completed. The firmware then changes the current power state from the current power state to the next power state required by the power measurement budget. The firmware of the controller begins to process the new task that depends on the power state using the allocated power measurement budget. The controller's firmware then sends a completion notification to the local service processor 50 (S23) to signal that the new power state has been set.

[0047] By enabling the SetFeature function, the local service processor 50 is able to control and throttle the power consumption of a specific storage device 10 to meet the allocated power budget of the local service processor 50. The controller 11 is able to execute the power budget allocation programmed by the local service processor 50. If the actual power consumption exceeds the set threshold, the controller 11 is able to throttle the I / O performance of the parameter to minimize power consumption and keep it within the allocated power budget. For example, when the allocated power budget is exceeded, the controller 11 is able to self-regulate by automatically lowering the internal power state. The controller 11 is then able to report back to the local service processor 50 so that the local service processor 50 can reallocate the available power to some other devices that may require additional power. The controller 11 can also collect statistics about this performance throttling at a fine granularity.

[0048] Figure 7 An example of a power policy that the local service processor 50 can use to control the power consumption of the storage device 10 is shown. The local service processor 50 can manage the power policy by monitoring each storage device 10 in the storage system and directing each storage device 10 to maintain its respective allocated power budget. For example, if the storage device 10 changes from normal operation 61 to operating at more than 90% of its allocated power budget, as shown at 62, the controller 11 can throttle the I / O performance by, for example, introducing a small percentage of additional delay (e.g., 10% or 20% idle or overhead). However, if the current state is greater than 100% of its allocated power budget, as shown at 63, the controller 11 can introduce a larger delay (e.g., 50% or more), or can introduce delays to NAND cycles, etc., in order to throttle the storage device 10 to meet its allocated budget. If the storage device 10 continues to exceed its allocated budget even with the introduction of delays, the local service processor 50 can execute a shutdown instruction 64 to shut down the storage device 10, or the controller 11 can shut itself down.

[0049] In further embodiments, the local service processor 50 is also capable of monitoring and detecting increases in thermal load (temperature rise), or operating resources during peak utilization periods (such as hot weather hours) or during brown-out periods to ensure that each storage device 10 performs as expected.

[0050] The above features enable the storage device 10 to autonomously optimize the relationship between power and performance and the dispatched power budget / state.

[0051] Figure 8is a diagram depicting a further embodiment in which power measurements are stored in a controller memory buffer until retrieved by a local service processor. In this embodiment, the controller 11 is able to store the power measurements locally in its own memory 12 until requested by the local service processor 50. For example, in an embodiment where the storage device 10 is an NVMe SSD, the controller 11 may store the power measurement information in a controller memory buffer of the memory 12. The NVMe specification defines a controller memory buffer (CMB), which is part of the memory of the storage device, but is dispatched by the host / local service processor and logically owned by the host / local service processor.

[0052] The firmware of the controller 11 can fetch the power measurement information from the PMU 14 and store it in the controller memory buffer of the memory 12. The controller memory buffer can be updated in any specified time unit. The local service processor 50 can then query the power measurement information by reading the power measurement directly from the controller memory buffer of the memory 12. The power measurement can be read from the controller memory buffer via the controller / host interface 42. If the controller / host interface 42 is PCIe, the power measurement information can be directly processed memRd / memWr through PCIe based on the BAR configuration to read from the controller memory buffer. In other embodiments, the power measurement information can directly access the controller memory buffer via a sideband such as SMBus or I2C.

[0053] Alternative Figure 8 , the storage device 10 can be configured such that the PMU 14 is directly accessible by the local service processor 50 so that the local service processor can access the power measurement information in real time when desired / needed.

[0054] Fig. 9 1 is a diagram depicting an embodiment in which power measurements made by PMU 14 are directly accessible to a local service processor. In this embodiment, storage device 10 can be configured with an auxiliary bus such as, for example, I2C or AXI to allow local service processor 50 to directly access PMU 14. This allows local service processor 50 to process power measurement information by directly accessing PMU 14 and allows real-time retrieval of power measurements.

[0055] Fig.10is an example of a power log 70 according to an embodiment of the present invention. As shown in this embodiment, the storage device 10 may have, for example, up to 32 power states (Power State, PowerState) 71, which are recorded in the power log 70. Each PowerState 71 has predefined performance information, the maximum power (Maximum Power, MP) 72 that can be used in the power state 71, and the actual power (AP) 73 actually used in the PowerState. AP 73 is a measurement period based on a time unit (e.g., 1 minute) and workload / QoS. In the current embodiment, each row in the power log 70 represents a power state that has been defined in the NVMe specification 1.3. For example, a total of 32 power states are defined in the NVMe specification. In some embodiments, a vendor-specific definition can be used for each PowerState 71.

[0056] The power log 70 can include in its table entries the various PowerStates 71 and the respective MPs 72, APs 73 for each power state, as well as additional information identifying the power measurement, and the relationship between the maximum power / power state, actual power, and QoS. The QoS information can include, for example, current entry latency (ENTLAT), current exit latency (EXTLAT), RRT (Relative Read Throughput), RWT (Relative Write Throughput), and other suitable variables.

[0057] Fig.10 A power state_3 is shown with a defined maximum power = 20 W. However, the storage device 10 in this power state currently consumes actual power = 19 W. The current QoS is shown in other columns, such as RRT = 2, RWT = 2, ENTTL = 20 us, and EXTTL = 30 us. If the applications 80 running on the storage system 200 expect the best QoS (such as, best RRT & RWT), then these applications 80 can instruct the local service processor 50 to give more power to the storage device 10 by transferring from power state_3 to power state_0.

[0058] The local service processor 50 retrieves the current PowerState 71 through GetFeature (FeatureID = 0x2), such as Figure 5 The expected power state (ie, the power measurement budget) can be set by the local service processor 50 via SetFeature(FeatureID=0x2), as described in relation to Figure 6 Other power related information can be managed by the local service processor 50 through VUCmd (vendor unique command), or directly accessed by the local service processor 50. For example, if a user wants to obtain power measurement information not defined in the NVMe specification, VUCmd can be used to allow the host to retrieve such non-standard power information similar to LogPage.

[0059] Fig.11 is an illustrative method of how a storage system 200 manages power reporting for multiple storage devices 10 in its chassis. According to the method, each PMU 14 of each storage device 10 measures the current AP 73 and stores the information in a power log 70, which is queried and / or retrieved by the local service processor 50 (S50). The local service processor 50 then updates / uploads the power log 70 from the local service processor 50 to the storage system 200 (S51). Various applications 80 in the storage system 200 are able to analyze the power logs 70 of the storage devices 10 in the chassis at the local service processor 50 (S52). The results of these analyses can determine how to allocate power to achieve better performance, for example, whether more power needs to be allocated to a particular PowerState 71, or whether power should be reallocated from one PowerState 71 to another PowerState 71 to meet QoS requirements. For example, the local service processor 50 is able to request the storage device 10, such as regarding Fig.10 As shown in the central storage device 10 shown, in this example, the maximum power state is transferred from PowerState 3 to PowerState 0. The local service processor 50 can then dispatch a new MP 72 to the storage device 10, or can request the power distribution unit (PDU) 90 to dispatch a new MP 72 budget to the storage device 10, that is, redistribute the power allocation (S54). If the PDU 90 is used, then the PDU will dispatch a new MP 72 to the storage device 10 (S55). The PDU 90 can be a separate component located in the chassis and can be responsible for distributing the MP to each storage device 10. The local service processor 50 then updates the power log 70 with these changes (S56).

[0060] As discussed above, once the local service processor 50 has access to and is able to read the power measurements, the local service processor 50 can use this information to create graphs or histograms for trending and to run diagnostics.

[0061] Embodiments of the present invention also enable the local service processor to provide software developers, cloud service providers, users, and others with a single actual power profile for each storage device in the system by allowing them to know the actual power consumption consumed by their workloads on each storage device. This provides software developers / users with the ability to optimize performance based on actual energy costs, and also allows cloud service providers to provide more accurate billing for storage system users based on actual power consumption. Embodiments of the present invention can also provide better supervision and tracking of storage devices that violate the allocated power budget.

[0062] Embodiments of the present invention can be used in a variety of fields. For example, embodiments of the present invention provide building blocks of key information that can be used for analysis purposes of artificial intelligence software (such as Samsung's DCP). These embodiments also provide information useful for efficient thermal control systems based on ADRC (Active Disturbance Rejection).

[0063] Although exemplary embodiments of the present invention have been described, it should be understood that the present invention should not be limited to these exemplary embodiments, but rather, a person skilled in the art may make various changes and modifications within the spirit and scope of the present invention as hereinafter claimed and protected by the appended claims and their equivalents.

Claims

1. A solid-state storage device for reporting actual power consumption to a host processor, comprising: Internal power metering unit; memory, including flash memory; two or more components, comprising at least a controller and the memory, wherein the memory has stored thereon instructions configured to be executed by the controller, wherein the controller is capable of receiving information from the internal power metering unit via an interface and sending the information to the host processor; and one or more voltage rails connecting the internal power metering unit to the controller and the memory so that the internal power metering unit can measure the power consumed by the controller and the power consumed by the memory, respectively; wherein the information includes power measurement information, and the power measurement information includes measurements made by the internal power metering unit measuring power consumed by the controller and power consumed by the memory; and The memory has stored thereon instructions, which, when executed by the controller, cause the controller to provide the host processor with a power profile of the storage device for sending to a cloud service provider based on the power measurement information measuring the power consumed by the controller and the power consumed by the memory.

2. The storage device according to claim 1, wherein: The memory has stored thereon instructions which, when executed by the controller, cause the controller to retrieve power measurement information from the internal power metering unit.

3. The storage device according to claim 2, wherein: The memory has stored thereon instructions that, when executed by the controller, cause the controller to send the power measurement information to a local service processor external to the storage device.

4. The storage device according to claim 2, wherein: The memory has stored thereon instructions that, when executed by the controller, cause the controller to save the power measurement information in a power log.

5. The storage device according to claim 4, wherein: The power log includes dedicated log pages.

6. The storage device according to claim 2, wherein: The power measurement information is time stamped and annotated with the host ID.

7. The storage device according to claim 1, wherein: The memory has stored thereon instructions that, when executed by the controller, cause the controller to send a request to a local service processor requesting a power measurement budget that limits power consumption by the storage device.

8. The storage device according to claim 7, wherein: The memory has stored thereon instructions that, when executed by the controller, cause the controller to set the power measurement budget of the internal power metering unit.

9. The storage device according to claim 1, wherein: The internal power metering unit is configured to provide power to the memory and the controller via the one or more voltage rails.

10. The storage device according to claim 8, wherein: The memory has stored thereon instructions that, when executed by the controller, cause the controller to throttle power consumed by the two or more components of the storage device in order to remain within the power measurement budget.

11. A method for reporting power consumption of a solid-state storage device, the storage device comprising: An internal power metering unit, a memory including a flash memory, two or more components including at least a controller and the memory, and one or more voltage rails, wherein the memory has stored thereon instructions configured to be executed by the controller, and the one or more voltage rails connect the internal power metering unit to the controller and the memory of the two or more components, the method comprising: receiving, at the controller, information from the internal power metering unit via an interface; sending the information from the controller to a host processor; measuring, at the internal power metering unit, power consumed by the controller and power consumed by the memory, respectively; wherein the information includes power measurement information, and the power measurement information includes a measurement of power consumed by the controller and a measurement of power consumed by the memory; providing a power profile of the storage device to the host processor based on the power measurement information measuring power consumed by the controller and power consumed by the memory; and The power profile is sent from the host processor to a cloud service provider.

12. The method of claim 11, further comprising retrieving, by the controller, the power measurement information from the internal power metering unit.

13. The method of claim 11, further comprising sending power measurement information to a local service processor external to the storage device.

14. The method of claim 11, further comprising saving the power measurement information in a power log.

15. The method according to claim 12, wherein: The power measurement information is time stamped and annotated with the host ID.

16. The method of claim 11, further comprising requesting a power measurement budget from a local service processor, the power measurement budget limiting a maximum power consumption of the storage device.

17. The method of claim 16, further comprising setting a power measurement budget of the internal power metering unit.

18. The method of claim 17, further comprising throttling power consumed by the two or more components of the storage device to remain within the power measurement budget.

19. A storage system comprising: local service processor, and One or more solid-state storage devices connected to the local service processor, each of the one or more solid-state storage devices comprising: Internal power metering unit; memory, including flash memory; two or more components, comprising at least a controller and the memory, wherein the memory has stored thereon instructions configured to be executed by the controller, wherein the controller is capable of receiving information from the internal power metering unit via an interface and sending the information to the local service processor; and one or more voltage rails connecting the internal power metering unit to the controller and the memory so that the internal power metering unit can measure the power consumed by the controller and the power consumed by the memory, respectively; wherein the information includes power measurement information, and the power measurement information includes measurements made by the internal power metering unit measuring power consumed by the controller and power consumed by the memory; and wherein the memory has stored thereon instructions that, when executed by the controller, cause the controller to provide a power profile of the one or more storage devices to the local service processor based on the power measurement information measuring power consumed by the controller and power consumed by the memory, The local service processor includes a memory and a controller, and the memory of the local service processor has stored thereon instructions configured to be executed by the controller of the local service processor, wherein the controller of the local service processor is capable of sending the power profile to the cloud service provider.