Systems and methods for power relaxation upon startup
By allowing storage devices to briefly exceed normal maximum power at startup, the problem of long startup time for storage devices under power limits is solved, and faster server startup speeds and higher customer service levels are achieved.
Patent Information
- Application Number
- CN202310012088.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-10
- Filing Date
- 2023-01-05
- Publication Date
- 2025-06-10
- Estimated Expiration
- 2043-01-05
AI Technical Summary
Existing storage devices start up for a long time under power limit, resulting in delays in server startup and affecting customer service levels.
Allows the storage device to briefly exceed normal maximum power at startup to speed up the startup process. By selecting the coordination of the circuit and the timer, the start-up power level and duration that each storage device can use is determined.
By temporarily increasing power, the startup time of the storage device is greatly shortened, and the overall server startup speed is accelerated, which can provide services to customers faster.
Smart Images

Figure CN116449940B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 299,906, filed on January 14, 2022, which is incorporated herein by reference for all purposes. Technical Field
[0003] The present disclosure generally relates to storage devices and, more particularly, to relaxing power limitations for turning on storage devices. Background Art
[0004] This background section is only intended to provide context, and the disclosure of any concept in this section does not constitute an admission that the concept is prior art.
[0005] Enterprise environments are mindful of the cost of operating servers. The power consumed by storage devices can translate into electricity bills: the more power consumed, the higher the electricity bill. However, operating storage devices at a lower power level to reduce costs has potential drawbacks. Storage devices can be designed to operate most efficiently at a particular power level. While storage devices may be able to operate at a lower power level, such operation may be less efficient, meaning that read / write operations on the storage device may take longer due to power constraints. Slower storage device performance can result in latency in response to customer requests, and such slower storage device performance is undesirable.
[0006] There is still a need to manage power consumption in storage devices to balance these issues. Brief Description of the Drawings
[0007] The drawings described below are examples of how embodiments of the present disclosure may be implemented and are not intended to limit the embodiments of the present disclosure. Separate embodiments of the present disclosure may include elements not shown in a particular figure and / or may omit elements shown in a particular figure. The drawings are intended to provide illustration and may not be drawn to scale.
[0008] Figure 1 A machine is shown that enables a storage device to exceed its normal maximum power during startup, according to an embodiment of the present disclosure.
[0009] Figure 2 Details of a machine are shown that are according to an embodiment of the present disclosure Figure 1 of the machine.
[0010] Figure 3 An exemplary power curve of a storage device is shown that is according to an embodiment of the present disclosure Figure 1 of the storage device.
[0011] Figure 4 Details of a storage device are shown that are according to an embodiment of the present disclosure Figure 1 of the storage device.
[0012] Figure 5 An exemplary table of different power levels available for a storage device in accordance with an embodiment of the present disclosure. Figure 1
[0013] Figure 6 An exemplary exchange between a machine for managing a startup power level in accordance with an embodiment of the present disclosure and Figure 1 a storage device. Figure 1
[0014] Figure 7 A flowchart of an exemplary procedure for a machine in accordance with an embodiment of the present disclosure to notify a Figure 1 storage device of how it can be started. Figure 1
[0015] Figure 8 A flowchart of an exemplary procedure for a Figure 1 storage device to start based on information received from a Figure 1 machine in accordance with an embodiment of the present disclosure.
[0016] Fig. 9 A flowchart of an exemplary procedure for a Figure 1 machine to notify a Figure 1 storage device of its allowed startup power level in accordance with an embodiment of the present disclosure.
[0017] Fig.10 A flowchart of an exemplary procedure for a Figure 1 machine to receive information about the startup power levels available for a Figure 1 storage device in accordance with an embodiment of the present disclosure.
[0018] Fig.11 A flowchart of an exemplary procedure for a Figure 1 storage device to notify a Figure 1 machine of the startup power levels available for the Figure 1 storage device in accordance with an embodiment of the present disclosure.
[0019] Fig. 12A A flowchart of an exemplary procedure for a Figure 1 machine to instruct a Figure 1 storage device to start in accordance with an embodiment of the present disclosure.
[0020] Fig. 12B Continuing, a flowchart of an exemplary procedure for a Figure 1 machine to instruct a Figure 1 storage device to start. Fig. 12A
[0021] Fig.13 shows an exemplary procedure for a machine according to an embodiment of the present disclosure to determine Figure 1 the startup power level available for a Figure 1 storage device. The flowchart is shown.
[0022] Fig.14A shows an exemplary procedure for a storage device to start up according to an embodiment of the present disclosure. Figure 1 The flowchart is shown.
[0023] Fig. 14B Continue with the flowchart of an exemplary procedure for a storage device to start up according to an embodiment of the present disclosure. Figure 1 for a Fig.14A storage device to start up. The flowchart is shown. SUMMARY OF THE INVENTION
[0024] Embodiments of the present disclosure may include a storage device. The storage device may include an interface with a host and may store data. The storage device may receive startup power data from the host, and the storage device may then use the startup power data to start up using a power level higher than the normal power level of the storage device. DETAILED DESCRIPTION
[0025] Reference will now be made in detail to embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it should be understood that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
[0026] It should be understood that although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the present disclosure, a first module may be referred to as a second module, and similarly, a second module may be referred to as a first module.
[0027] The terms used in the description of the present disclosure herein are for the purpose of describing particular embodiments only and are not intended to limit the present disclosure. As used in the description of the present disclosure and the appended claims, the singular forms "a", "an" and "the" also include the plural forms unless the context clearly dictates otherwise. It should also be understood that, as used herein, the term "and / or" refers to and encompasses any and all possible combinations of one or more of the associated listed items. It should also be understood that when used in this specification, the terms "comprises" and / or "comprising" specify the presence of the stated features, integers, steps, operations, elements and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or combinations thereof. The components and features in the drawings are not necessarily drawn to scale.
[0028] In an enterprise environment that may include a large number of servers, each server including a large number of storage devices, power consumption and thermal management are concerns. There may be hundreds or thousands of storage devices in an enterprise environment, and the cost of powering so many storage devices can be a significant expense. One way to reduce this cost is to limit the amount of power that the storage devices may use in such an environment: lower power consumption can result in lower electricity bills.
[0029] Heat is also a concern in an enterprise environment. Heat can damage electronic equipment, resulting in potentially expensive repairs, not to mention the downtime when repairing such equipment. Heat can be a result of power consumption: the more power a device consumes, the hotter it may become, thereby increasing the risk of damage to it or other components due to heat. Similarly, setting a limit on the amount of power that the storage devices may use can reduce the heat generated by the devices, thereby reducing the risk of damaging the equipment.
[0030] However, limiting the power consumed by the storage devices can also have some negative impacts. The amount of time required to start a storage device can be a function of the amount of power used: the lower the power used, the longer the time required for the storage device to start. When the amount of power that the storage device is allowed to use is limited, a single server may take 20 minutes or more to start. Multiply this by the number of servers in an enterprise environment, and it may take a significant amount of time for the enterprise environment to be fully online: the time when customers may not have access to the services provided by the enterprise. In addition, reduced performance may be too conservative during system startup when the computer components are not yet at their steady-state operating temperature, and the startup sequence of the computer components can be optimized before full system operation.
[0031] Embodiments of the present disclosure address these problems by allowing a storage device to exceed a power limit for a short duration during startup. Since startup typically occurs from a cold server, the increased heat generated by the storage device may pose a lesser risk to the equipment. Additionally, since the host can specify a startup order, the cabinet may have excess power available that can be utilized in turn by individual storage devices. In this way, each storage device can use the excess power for a short duration to accelerate the startup process of the device: multiplying across all storage devices in the cabinet, the accelerated startup process can enable the server to come online more quickly, thereby enabling the enterprise to provide services to customers more quickly.
[0032] Figure 1 A machine is shown in accordance with an embodiment of the present disclosure that enables a storage device to exceed its normal maximum power during startup. In Figure 1 FIG., a machine 105 is shown that may also be referred to as a host, system, or server. Although Figure 1 machine 105 is described as a tower computer, embodiments of the present disclosure may extend to any form factor or type of machine. For example, machine 105 may be a rack server, blade server, desktop computer, tower computer, mini-tower computer, desktop server, laptop computer, notebook computer, tablet computer, and the like.
[0033] Machine 105 may include a processor 110, a memory 115, and a storage device 120. Processor 110 may be any kind of processor. (For ease of illustration, processor 110 is shown external to the machine along with other components discussed below: embodiments of the present disclosure may include these components within the machine.) Although Figure 1 a single processor 110 is shown, machine 105 may include any number of processors, each of which may be a single-core or multi-core processor, each of which may implement a reduced instruction set computer (RISC) architecture or a complex instruction set computer (CISC) architecture (among other possibilities) and may be mixed in any desired combination.
[0034] Processor 110 may be coupled to memory 115. Memory 115 can be any kind of memory, such as flash memory, dynamic random access memory (DRAM), static random access memory (SRAM), persistent random access memory, ferroelectric random access memory (FRAM), or non-volatile random access memory (NVRAM), such as magnetoresistive random access memory (MRAM), phase change memory (PCM), or resistive random access memory (ReRAM). As needed, memory 115 can be volatile or non-volatile memory. Memory 115 can use any desired form factor: for example, single in-line memory module (SIMM), dual in-line memory module (DIMM), non-volatile DIMM (NVDIMM), etc. Memory 115 can also be any desired combination of different memory types and can be managed by memory controller 125. Memory 115 can be used to store data that can be referred to as "short-term": that is, data that is not expected to be stored for an extended period of time. Examples of short-term data can include temporary files, data used locally by an application (which may have been copied from other storage locations), etc.
[0035] Processor 110 and memory 115 can also support an operating system under which various applications can run. These applications can issue requests (which can also be referred to as commands) to read data from or write data to memory 115 or storage device 120. When storage device 120 is used to support an application to read or write data via a certain file system, device driver 130 can be used to access storage device 120. Although Figure 1 One storage device 120 is shown, but there can be any number (one or more) of storage devices in machine 105. Storage device 120 can support any desired protocol, including for example the Non-Volatile Memory Express (NVMe) protocol, Serial Attached SCSI (SAS) protocol, or Serial ATA (SATA) protocol. Storage device 120 can also include any desired interface, including for example a Peripheral Component Interconnect Express (PCIe) interface or a Compute Express Link (CXL) interface. Storage device 120 can also adopt any desired form factor, including for example the U.2 form factor, U.3 form factor, M.2 form factor, Enterprise and Data Center Standard Form Factor (EDSFF) (including all its types, such as E1 short, E1 long, and E3 types), or an Add-in Card (AIC).
[0036] The storage device 120 may have a normal power level for normal operations, such as processing read or write requests. This normal power level may be part of the specification of the storage device 120, or the normal power level may be selected by the consumer (and the storage device 120 may be designed to operate at this normal power level). It should be noted that this normal power level is not necessarily the lowest power level at which the storage device 120 can operate: for example, the storage device 120 may have an idle state in which the storage device 120 draws the least amount of power but does not have enough power to process read or write requests.
[0037] Although Figure 1 using the general term "storage device", embodiments of the present disclosure may include any storage device format that may benefit from the use of computational storage cells, examples of which may include hard disk drives, solid state drives (SSDs), or persistent storage devices such as PCM, ReRAM, or MRAM. Any reference herein to "storage device" or "SSD" should be understood to include such other embodiments of the present disclosure and other kinds of storage devices.
[0038] The term "storage unit" is intended to encompass both the storage device 120 and the memory 115. That is, in the cases where the term "storage unit" is used hereinafter, the term should be understood to include both the storage device 120 and the memory 115. Although the following discussion may focus on the storage device 120 (and may more specifically focus on the SSD), it is understood that embodiments of the present disclosure may similarly encompass the memory 115, whether explicitly stated or not, and may thus be more generally understood as being about one storage unit.
[0039] The machine 105 may also include a power supply 135. The power supply 135 may supply power to the machine 105 and its components. The power supply 135 may have a maximum amount of power that can be used (before exceeding the specification of the power supply 135): this information may be known to the machine 105 and may be used, for example, by the selection circuit 140 to determine the startup sequence and / or how much power each storage unit can use to start up. Generally, the power supply 135 may be selected such that its maximum amount of power is sufficient (with some budget for excess power) to cover the normal power expectations of all components in the machine 105.
[0040] Operating the machine 105 may involve various costs. The machine 105 may include many components. For example, the machine 105 may include 24 storage devices 120, each consuming 12W. In this case, the machine 105 draws exactly 288W just for the storage devices (at their normal power levels). Since each additional watt of power may increase the total cost of operating the machine 105, the operator of the machine 105 may wish to keep the total power as low as possible.
[0041] In addition, each additional watt of power can be converted into increased heat inside (or outside) the machine 105. Since overheating can damage electronic devices, there are two possible ways to keep the heat at a minimum. One solution is to use a cooling system to compensate for the heat. However, the cooling system itself draws some power, which results in additional costs. Another solution is to avoid generating heat in the first place: reducing the power consumed by the components in the machine 105 can reduce the total heat generated by the machine 105.
[0042] However, although components such as the memory 115 or the storage device 120 may be able to operate at a lower power level, such components can operate more efficiently at a higher power level. For example, at 12W, the storage device 120 may have enough power to handle read or write requests. However, 12W may only provide enough power for one read / write circuit in the storage device 120, while 14W can provide enough power for two read / write circuits in the storage device 120. With the additional power, the storage device 120 may be able to handle more requests within a given amount of time, thereby reducing its latency: for example, by handling more read or write requests within a given time unit, or by increasing the parallelism provided by the storage device 120.
[0043] This reduction in operating efficiency by reducing the power used by the storage device 120 can similarly extend to its startup process. That is, at its normal power level, the storage device 120 can start up, but it may take, for example, 20 seconds to complete the startup process. By increasing the power amount to, for example, 14W, the storage device 120 may start up in, for example, five seconds. The increased power can be used, for example, to increase the clock rate of the storage device controller, any DRAM in the storage device 120, the number of read or write activities performed on the storage medium, and / or the channels used to communicate with the storage devices in the storage device 120.
[0044] Saving 15 seconds may not seem like much time, especially when compared to the fact that machine 105 may be expected to run continuously for days, weeks, months, or longer without powering down. But for all the components in machine 105, it may take 20 minutes or longer for machine 105 to complete its startup process. Since "time is money", those 20 minutes may be the time when machine 105 may not be able to service requests from customers, which means the operator of machine 105 will not earn income from the operation of machine 105. Similarly, compared to machine 105 that may run continuously for months, 20 minutes seems like a small amount of time. But for a customer waiting for an answer to a query, even a delay of a few seconds may be considered annoying: a 20-minute delay may be considered completely unacceptable. In addition, the operator of machine 105 may have promised a service level agreement to its customers: if the customer has to wait 20 minutes for machine 105 to start up, these service level agreements may be violated. Therefore, accelerating the availability of machine 105 by even a few minutes or seconds may be important.
[0045] One way machine 105 can accelerate the startup process is by allowing the storage unit to start up using a power level greater than the normal power level of the storage unit. Recall that power supply 135 may be a little larger than absolutely necessary for the components in a given machine 105, or power supply 135 can tolerate a limited power overdraft. Therefore, machine 105 can (simultaneously or sequentially) supply some (or all) of that excess power to individual storage devices to speed up their individual startup times.
[0046] In addition, starting up the storage device 120 typically occurs when machine 105 is cold. Since machine 105 may be colder, overheating due to the storage unit drawing more power than its normal power level is no longer a problem: the storage unit can use the additional power to start up faster, with less potential impact on the overall temperature inside (or outside) machine 105.
[0047] To this end, machine 105 may include a selection circuit 140 that can determine the startup order of devices in machine 105, such as memory 115 and storage device 120. The selection circuit 140 can use information about the power consumption of various components in machine 105, such as processor 110, memory 115, and storage device 120, as well as the power that such components may preferably use for startup. The selection circuit 140 can also be used to determine how much power each storage unit can use to start up, and for how long each storage unit can use such a power level before the desired storage unit returns to its normal specifications.
[0048] For example, assume that machine 105 includes two storage devices 120, one of which preferably uses 14 watts (W) to start up, and the other of which preferably uses 13 W to start up. Selection circuit 140 can determine that it is more preferable to start the 14 W storage device first (allowing the storage device to start up using 14 W) for the following goals: keeping the instantaneous power consumption as low as possible (since once a component is started up, it can continue to draw power), while attempting to speed up the overall startup process, after which the other storage device can start up using 13 W. Once each storage device has completed its startup process, each storage device can resume using its normal power level.
[0049] Machine 105 may also include a transmitter 145 and a receiver 150. Transmitter 145 and receiver 150 can be used to communicate with memory 115 and / or storage device 120 regarding their startup operations (although transmitter 145 and / or receiver 150 can also be used for other purposes). Transmitter 145 may include a write circuit 155, which can be used to write data to a storage means (such as a register) in memory 115 and / or storage device 120. In a similar manner, receiver 150 may include a read circuit 160, which can be used to read data from a storage means (such as a register) in memory 115 and / or storage device 120.
[0050] Finally, machine 105 may include a timer 165. Timer 165 can be used to time how long storage device 120 must take to start up. For example, again consider the case where machine 105 includes two storage devices 120. Selection circuit 140 can determine that the first storage device, which preferably uses 14 W to start up, may have 14 W, but only for, say, three seconds, after which the storage device can return to its normal power level. Timer 165 can keep track of the time the storage device has been used to start up, after which its power consumption should return to its normal power level. Once the first storage device has reached its allotted amount of time (three seconds), selection circuit 140 can select the second storage device (which preferably uses 13 W to start up) to start up using 13 W, but only for, say, two seconds. Once the two seconds measured by timer 165 have passed, selection circuit 140 can select another component to start up. In this way, machine 105 can start up components sequentially, providing additional power to each component to speed up its startup process, but the total power consumption does not exceed the maximum power amount provided by power supply 135.
[0051] Figure 2 Details of machine 105 according to an embodiment of the present disclosure are shown. In Figure 1 machine 105 are shown. Figure 2In general, machine 105 includes one or more processors 110, which may include a memory controller 120 and a clock 205, which can be used to coordinate the operation of the components of the machine. The processor 110 may also be coupled to a memory 115, which may include, for example, random access memory (RAM), read-only memory (ROM), or other state-saving media. The processor 110 may also be coupled to a storage device 125 and a network connector 210, which may be, for example, an Ethernet connector or a wireless connector. The processor 110 may also be connected to a bus 215, which may be attached to a user interface 220 and input / output (I / O) interface ports that can be managed using an I / O engine 225, as well as other components.
[0052] Figure 3 An exemplary power curve of a storage device 120 in accordance with an embodiment of the present disclosure is shown. As discussed above with reference to Figure 1 During a startup operation, the storage device 120 of Figure 1 may be allowed to use some additional power; after a certain interval, Figure 1 the storage device 120 of Figure 1 is expected to return to using only a steady-state power level (any level allowed in machine 105).
[0053] In Figure 3 the power curve 305 shows the exemplary power drawn by the storage device 120 of Figure 1 over time (when the storage device starts (starting from time 0) and then processes requests from Figure 1 the processor 110 of Figure 1 The power curve 305 may be bounded by a shape 310, which may represent the power that the machine 105 of Figure 1 allows the storage device 120 of
[0054] The shape 310 is not a flat and horizontal line but is shown as a stepped pattern. Thus, from time 0 until time 315, Figure 1 the storage device 120 of Figure 1 may use power up to a startup power level 320; after time 315, Figure 1 the storage device 120 of
[0055] Although Figure 3 the shape 310 is shown as a stepped pattern, in some embodiments of the present disclosure, the shape may be concentrated in the interval of duration 335. In other words, the shape 310 may only describe Figure 1 The storage device 120 is not expected to stay within the interval at power level 330 (its steady-state power level of machine 105), which can be Figure 1 the default operation of the storage device 120.
[0056] Although Figure 3 Shape 310 is shown as a stepped pattern (or rectangle, considering the region bounded by power levels 320 and 330, time 0, and time 315), embodiments of the present disclosure may include other shapes. Examples of other shapes that can be used include a double rectangle (a brief high power level followed by a longer medium power level), a triangle (a linear progression from startup power level 320 to power level 330 over duration 335), or a curve (progressing from startup power level 320 to power level 330 over duration 335 but not using a linear progression: for example, a quadratic or higher equation, or some kind of arc).
[0057] Figure 4 Details of the storage device 120 according to an embodiment of the present disclosure are shown. In Figure 1 it, a specific implementation of the storage device 120 is shown for a solid-state drive. In Figure 4 it, the storage device 120 may include an interface 405, a host interface layer (HIL) 410, a controller 415, and various flash chips 420-1 to 420-8 (also referred to as "flash storage devices"), which may be organized into various channels 425-1 to 425-4. The interface 405 can be a physical interface for connecting the storage device 120 to Figure 4 other components of the machine 105, and may include, for example, a Peripheral Component Interconnect Express (PCIe) interface, a Compute Express Link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface, among other possibilities. Figure 1 The host interface layer 410 can manage communication between the storage device 120 and other components (such as
[0058] the processor 110) across the interface 405. The host interface layer 410 can also manage communication with devices remote from the storage device 120: possibly through one or more network connections. These communications can include read requests to read data from the storage device 120, write requests to write data to the storage device 120, and delete requests to delete data from the storage device 120. Figure 1 the processor 110) across the interface 405. The host interface layer 410 can also manage communication with devices remote from the storage device 120: possibly through one or more network connections. These communications can include read requests to read data from the storage device 120, write requests to write data to the storage device 120, and delete requests to delete data from the storage device 120.
[0059] The host interface layer 410 can manage an interface 405 that has only one port, or it can manage an interface 405 that spans multiple ports. Additionally, the host interface layer 410 can manage multiple interfaces 405 if the storage device 120 includes multiple such interfaces. Alternatively, the storage device 120 can include multiple ports, and each port can have a separate host interface layer 410 to manage the communication across that port. Embodiments of the present disclosure can also mix various possibilities (e.g., an SSD with three ports might have one host interface layer for managing one port and a second host interface layer for managing the other two ports).
[0060] The controller 415 can manage read and write operations on flash chips 420-1 to 420-8, as well as garbage collection and other operations. The SSD controller 415 can include a translation layer 430, a receiver 435, a transmitter 440, and a startup process 445. The translation layer 430 can manage the mapping of the logical addresses used by the host 105, such as Figure 1 to the physical addresses where the data is actually stored on the storage device 120. By using the translation layer 430, when data moves from one physical address to another within the storage device 120, Figure 1 the host 105 does not need to be notified.
[0061] Among other possible purposes, the receiver 435 can be used to manage information received from the Figure 1 machine 105 regarding startup power. This information can include, for example, a request for the preferred startup power data of the storage device 120, or startup power data sent from the Figure 1 machine 105 (and that will be used by the storage device 120 for startup). The transmitter 440 can be a mirror image of the receiver 435, thus sending information to the Figure 1 machine 105 identifying what startup power data the storage device 120 prefers.
[0062] The receiver 435 and the transmitter 440 can use registers 450 and 455 to receive data from the Figure 1 machine 105 and send data to that machine. That is, Figure 1 the transmitter 145 can write data into register 450, and Figure 1 the receiver 150 can read data from register 455. Although Figure 4 registers 450 and 455 are shown as separate registers, embodiments of the present disclosure can combine registers 450 and 455 into a single register for sending and receiving information. Alternatively, the receiver 435 and the transmitter 440 can use sideband signaling to communicate with the Figure 1 transmitter 145 and Figure 1communicates with the receiver 150. The receiver 435 and the transmitter 440 can use any desired bus or communication device for sideband signaling, such as a System Management Bus (SMBus), a PCIe bus, a PCIe Vendor Device Message (VDM), Vital Product Data (VPD), an NVMe management interface, or via a protocol for setting various features.
[0063] Finally, the startup process 445 can manage the startup process of the storage device 120. Once the receiver 435 has received startup power data from Figure 1 the transmitter 145, the startup process 445 can start the storage device 120 based on the startup power data. As described above with reference to Figure 3 the startup power data can include Figure 3 the shape 310, which can allow the storage device 120 to use Figure 3 the startup power level 320 for Figure 3 the duration 335, after which the storage device 120 is expected to return to Figure 3 the power level 330. To this end, the startup process 445 can include a timer 460, which can track how long the storage device 120 has used Figure 3 the startup power level 320 to ensure that the storage device 120 returns to Figure 1 the power level 330 when Figure 3 the machine 105 expects it.
[0064] In some embodiments of the present disclosure, the startup process 445 can be implemented within the storage device 120; in other embodiments of the present disclosure, the startup process 445 can operate on a separate processor that communicates with the storage device 120. For example, the startup process 445 can operate on Figure 1 the processor 110 or Figure 1 and 4 some other processor not shown in. Additionally, the startup process 445 can communicate with the storage device 120 using any desired communication channel: for example, sideband signaling, as described above.
[0065] In some embodiments of the present disclosure, Figure 1 the machine 105 and the storage device 120 can negotiate what startup power level and what duration the storage device 120 can use each time the storage device 120 starts up in a cold server. In other embodiments of the present disclosure, the storage device 120 can store the startup power level and duration and can use this information each time the storage device 120 starts up until Figure 1 the machine 105 of sets a new power level and / or duration. In such embodiments of the present disclosure, the startup process 445 can include a register (not shown in Figure 4is shown, but it can be the same register as register 450 and / or 455) to store such information for future boot operations.
[0066] Although Figure 4 storage device 120 is shown as including eight flash memory chips 420-1 to 420-8 organized into four channels 425-1 to 425-4, embodiments of the inventive concept can support any number of flash memory chips organized into any number of channels. Similarly, although Figure 4 the structure of the SSD is shown, other storage devices (e.g., hard disk drives) can be implemented using a structure different from Figure 4 the structure shown in to manage reading and writing data, but having similar potential benefits.
[0067] For enterprise customers, the customer can specify the power level that the power storage device 120 is expected to use for boot: the storage device 120 can then be designed to use that power level for the described length of time to boot. But in a more general case—e.g., for customers who are not enterprise customers, customers who are less concerned about the power that the storage device 120 can use for boot, or customers who have multiple deployment environments—the storage device 120 can be verified to boot using different power levels over different amounts of time. Figure 1 selection circuit 140 can request such information from storage device 120, which can store such information in a table.
[0068] Figure 5 shows an example table of different power levels that Figure 1 storage device 120 according to an embodiment of the present disclosure can use. In Figure 5 it, table 505 is shown. Table 505 includes information such as power level 510 and duration 515. That is, given power level 510, Figure 1 storage device 120 may have been verified to boot in duration 515. Thus, for example, boot power data 520-1 reflects that Figure 1 storage device 120 can boot in 1 second given 14W of power, boot power data 520-2 reflects that Figure 1 storage device 120 can boot in 4 seconds given 13W of power, boot power data 520-3 reflects that Figure 1 storage device 120 can boot in 10 seconds given 12.5W of power, and boot power data 520-4 reflects that Figure 1 storage device 120 can boot in an infinite amount of time (shown as ∞) given 12W of power. Boot power data 520-1 to 520-4 can be collectively referred to as boot power data 520.
[0069] The startup power data 520-4 can reflect Figure 1 the default steady-state power level of the storage device 120. That is, by default, Figure 1 the storage device 120 can operate using the startup power data 520-4. However, any startup power data 520 can be recognized as default startup power data: the use of startup power data 520-4 as the default startup power data above is only an example. Later, Figure 1 the machine 105 can set different startup power data as the default value for use during future startup processes. In some embodiments of the present disclosure, Figure 1 the machine 105 can identify startup power data during the low-power identification phase of the startup process: for example, through sideband signaling.
[0070] It should be noted that although Figure 1 the storage device 120 can verify against the startup power data 520, this fact does not mean that the storage device 120 must be limited to starting according to the startup power data in Table 505. For example, in some embodiments of the present disclosure, Figure 1 the storage device 120 may be able to determine how to use different power levels: for example, by interpolating based on the power levels in Table 505. However, in some embodiments of the present disclosure, Figure 1 the storage device 120 may be limited to starting only using the power level 510. In such embodiments of the present disclosure, if Figure 1 the machine 105 instructs Figure 1 the storage device 120 to start using a power level that is not in the startup power data in Table 505, then the storage device 120 may use the highest power level in the startup power data in Table 505, even if the power level is lower than Figure 3 the startup power level 320. In other words, Figure 3 the startup power level 320 represents Figure 1 the upper bound of the power used by the storage device 120, but Figure 1 the storage device 120 is not forced to use that amount of power.
[0071] Table 505 may also include an identifier 525. The identifier 525 can be used to identify specific startup power data in Table 505. Figure 1 The transmitter 145 can then use the identifier 525 to identify Figure 1 the specific startup power level that the storage device 120 can use, rather than specifically specifying the power level 510 and duration 515. Thus, for example, since the startup power data 520-4 can represent Figure 1 the default steady-state power level of the storage device 120, therefore Figure 1The storage device 120 may store an identifier D somewhere to identify the startup power data 520-4 as the startup power data to be used when Figure 1 the storage device 120 next starts up.
[0072] In some embodiments of the present disclosure, Figure 1 in the machine 105 Figure 1 each storage device 120 may have the same startup power data. That is, if Figure 1 the machine 105 includes Figure 1 two or more storage devices 120, then the two storage devices may use the same startup power data. However, in other embodiments of the present disclosure, different storage devices may use different startup power data. For example, when the machine 105 in Figure 1 is powered on, the storage device that starts up earlier may use, for example, startup power data 520-1, while the storage device that starts up later after the machine is powered on may use, for example, startup power data 520-4. In this way, the storage device that starts up when the available surplus power is higher can benefit from the available power, while the storage device that starts up when the available surplus power is less (or none) can start up without using the surplus power.
[0073] In some embodiments of the present disclosure, Figure 1 the machine 105 may know the information in Table 505, while Figure 1 the storage device 120 does not have to provide this information to Figure 1 the machine 105 (using, for example, Figure 4 the transmitter 440). In such embodiments of the present disclosure, Figure 1 the transmitter 145 may use the identifier 525 to identify Figure 1 the startup power data 520 that the storage device 120 should use during startup.
[0074] Figure 6 shows an exemplary exchange between the machine 105 and Figure 1 the storage device 120 for managing the startup power level according to an embodiment of the present disclosure. In Figure 1 , the machine 105 may send a request 605 to the storage device 120, thereby requesting the characteristic identifier of the storage device 120. This characteristic identifier may be, for example, Figure 6 the identifier 525 of the startup power data 520 Figure 5 or the information in Table 505 Figure 5 , as well as other possibilities. If the machine 105 already knows Figure 5 the information in Table 505 Figure 5 , or if the machine 105 can Figure 5In the case of Table 505 of, if the startup power data for storage device 120 is selected, request 605 can be omitted, which is why request 605 is shown as a dashed line.
[0075] Assume that machine 105 issues request 605. Storage device 120 can respond with a feature identifier in response 610 (e.g., Figure 5 startup power data 520). Since request 605 can be omitted, response 610 can also be omitted, which is why response 610 is shown as a dashed line.
[0076] At some point, machine 105 can determine startup power data 615 and can send the feature identifier 615 to storage device 120, which can identify the startup power data to be used. As Figure 6 shown, startup power data 615 can include a startup power level 320 and a duration 335, which specify how much power storage device 120 can use to start up and for how long before it is expected to return to its normal power level. Although Figure 6 startup power data 615 is shown as including startup power level 320 and duration 335, as discussed above with reference to Figure 5 startup power data 615 may instead include Figure 5 identifier 525 of, which storage device 120 can use to determine startup power level 320 and duration 335 from Figure 5 Table 505 of.
[0077] At some point, machine 105 can send a startup request 620 to storage device 120, thereby instructing storage device 120 to begin its startup process. Storage device 120 can then start up using the startup power level 320 and duration 335 specified or represented in startup power data 615. It should be noted that startup power data 615 and startup request 620 can be combined into a single communication: they do not need to be separate communications.
[0078] Finally, at some point, machine 105 can send an idle request 625 to storage device 120, thereby instructing storage device 120 to enter an idle state. In the idle state, storage device 120 is started up but draws less power compared to Figure 3 its normal power level 330 (and may therefore not draw enough power to process read or write requests from Figure 1 processor 110). By placing storage device 120 in the idle state, machine 105 can have additional power that can later be used by other storage devices or components to start up.
[0079] Figure 7 illustrates for embodiments in accordance with the present disclosure Figure 1 Machine 105 sends a Figure 1 flowchart of an exemplary procedure for notifying the storage device 120 of how it can be started. In Figure 7 , at block 705, Figure 1 selection circuit 140 can select a Figure 1 starting power level 320 and a Figure 3 duration 335 for the Figure 3 storage device 120. Figure 1 The storage device 120 can have a Figure 3 normal power level 330, so the Figure 3 starting power level 320 may be an increased amount of power that exceeds the Figure 3 normal power level 330. At block 710, Figure 1 transmitter 145 can transmit Figure 6 starting power data 615 to the Figure 1 storage device 120. Figure 6 The starting power data 615 can specify the Figure 3 starting power level 320 and the Figure 3 duration 335, or Figure 6 the starting power data 615 can represent the Figure 3 starting power level 320 and the Figure 3 duration 335: for example, by using the Figure 5 identifier 525.
[0080] Figure 8 FIG. shows a flowchart of an exemplary procedure for a Figure 1 storage device 120 to start based on information received from a Figure 1 machine 105 according to an embodiment of the present disclosure. In Figure 8 , at block 805, Figure 4 receiver 435 can receive Figure 1 starting power data 615 from the Figure 6 machine 105. The starting power data 615 can specify the Figure 3 starting power level 320 and the Figure 3 duration 335, or Figure 6 the starting power data 615 can represent the Figure 3 starting power level 320 and the Figure 3 duration 335: for example, by using the Figure 5 identifier 525. At block 810, the start-up process 445 can then use the Figure 6 starting power data 615 to start the Figure 1 storage device 120.
[0081] Fig. 9 shows an exemplary procedure for a Figure 1 machine 105 to Figure 1 notify a storage device 120 of its allowed startup power level. In Fig. 9 , at block 905, Figure 1 a write circuit 155 of Figure 6 may write startup power data 615 of Figure 4 to a register 450 of Figure 4 and, at block 910, Figure 4 a receiver 435 of Figure 6 may read startup power data 615 of Figure 1 from the register 450 of Figure 6 Alternatively, at block 915, Figure 4 a transmitter 145 of Figure 4 may send startup power data 615 of Figure 6 to a receiver 435 of Figure 1 : for example, via sideband signaling, and at block 920, Figure 6 the receiver 435 of Figure 6 may receive startup power data 615 of Figure 1 Note that in either path,
[0082] Fig.10 shows an exemplary procedure for a Figure 1 machine 105 to receive information about Figure 1 the startup power level available for a Fig.10 storage device 120. In Figure 1 a transmitter 145 of Figure 6 may send a request 605 of Figure 1 to the storage device 120 of Figure 5 to obtain startup power data 520. At block 1010, Figure 4 a receiver 435 of Figure 1 may receive a request 605 of Figure 6 from the machine 105. At block 1015, Figure 4 a transmitter 440 of Figure 5 may send startup power data 520 of Figure 1 to the machine 105. Finally, at block 1020, Figure 1 a receiver 150 of Figure 1 may receive from the storage device 120 of Figure 5 Startup power data 520.
[0083] In some embodiments of the present disclosure, Figure 1 the storage device 120 may send Figure 5 the startup power data 520 to Figure 1 the machine 105, even if Figure 5 the startup power data 520 has not been Figure 1 requested by the machine 105. For example, if the storage device 120 does not know Figure 1 what power levels and / or durations the machine 105 allows Figure 1 the storage device 120 to use, but Figure 1 the storage device 120 may also provide Figure 5 the startup power data 520 without a request in other scenarios. In such embodiments of the present disclosure, blocks 1005 and 1010 may be omitted, as shown by the dashed line 1025.
[0084] Fig.11 Shows a flowchart of an exemplary procedure for Figure 1 the storage device 120 according to an embodiment of the present disclosure to Figure 1 notify Figure 1 the machine 105 of the startup power levels that the storage device 120 can use. In Fig.11 , at block 1105, Figure 4 the transmitter 440 may write Figure 5 the startup power data 520 to Figure 4 the register 455, and at block 1110, Figure 1 the read circuit 160 may read Figure 4 the startup power data 520 from Figure 5 the register 455. Alternatively, at block 1115, Figure 4 the transmitter 440 may send Figure 5 the startup power data 520 to Figure 1 the receiver 150: for example, via sideband signaling, and at block 1120, Figure 1 the receiver 150 may receive Figure 5 the startup power data 520.
[0085] Figure 12A-12B Shows a flowchart of an exemplary procedure for Figure 1 the machine 105 according to an embodiment of the present disclosure to indicate Figure 1 the storage device 120 to start. In Fig. 12A , at block 1205, Figure 1 the selection circuit 140 may be for Figure 1 the storage device 120 (and / or Figure 1 other components in the machine 105) to determine Figure 3 the startup power level 320 and / or Figure 3 the duration 335. At block 1210, Figure 1 the selection circuit 140 of the Figure 1 storage device 120 (and / or Figure 1 other components in the machine 105) selects a startup sequence.
[0086] At block 1215, Figure 1 the machine 105 of the Figure 1 storage device 120 to be started. At block 1220, Figure 1 the transmitter 145 can Figure 6 send the startup request 620 to Figure 1 the storage device 120. At block 1225 (in Fig. 12B ), Figure 1 the machine 105 of the Figure 6 timer 165 to measure Figure 3 the duration 335. At block 1230, as Figure 1 measured by the timer 165 of the Figure 1 machine 105 can determine Figure 3 whether the duration 335 has passed. If not, then Figure 1 the machine 105 can continue to wait until Figure 3 the duration 335 has passed, as Figure 1 measured by the timer 165 of the Figure 3 Once the duration 335 has passed (as Figure 1 measured by the timer 165 of the Figure 6 idle request 625 to the storage device 120. Block 1235 can be omitted, as shown by the dashed line 1240. Then the control can return to Fig. 12A block 1215 to determine whether any other storage devices (or Figure 1 other components of the machine 105) need to be started.
[0087] Fig.13 shows an exemplary procedure for the Figure 1 machine 105 according to an embodiment of the present disclosure to determine Figure 1 the startup power level available for the storage device 120. In Fig.13 , at block 1305, Figure 1 the machine 105 can determine the power available from Figure 1 the power supply 135. At block 1310, Figure 1 the machine 105 can determine Figure 1 storage device 120, Figure 1 processor 110, and Figure 1 the normal power levels of other components in machine 105. At block 1315, Figure 1 machine 105 can determine what excess power is available: for example, by Figure 1 adding the normal power levels of storage device 120, Figure 1 processor 110, and Figure 1 other components in machine 105, and subtracting that sum from the power available from Figure 1 power supply 135. Using that available excess power, selection circuit 140 can then determine Figure 1 a startup power level 320 and / or Figure 3 a duration 335 for storage device 120, Figure 3 and determine startup power levels and durations for Figure 1 the other components in machine 105.
[0088] Figure 14A-14B FIG. shows a flowchart of an exemplary procedure for Figure 1 starting storage device 120 in accordance with an embodiment of the present disclosure. At Fig.14A , at block 1405, Figure 4 receiver 435 can receive Figure 1 a startup request 620 from Figure 6 machine 105. At block 1410, Figure 4 timer 460 can start. At block 1415, startup process 445 can begin starting Figure 1 storage device 120 using an increased power level. It should be noted that this increased power level may be Figure 3 startup power level 320 (designated by Figure 1 machine 105), Figure 3 a power level 510 that storage device 120 has a verified startup process for and that can be less than Figure 1 startup power level 320, Figure 5 or some other power level (e.g., a power level interpolated using some or all of Figure 5 startup power data 520 and / or Figure 3 startup power level 320).
[0089] At block 1420, Figure 1 storage device 120 can determine whether Figure 3 duration 335 has passed, as Figure 4 measured by timer 460. If not, then Figure 1 storage device 120 can continue to wait until Figure 3 The duration 335 has elapsed, as Figure 4 measured by the timer 460 of Figure 3 Once the duration 335 of Figure 4 has elapsed, as measured by the timer 460 of Fig. 14B , at block 1425 (in Figure 4 ), the startup process 445 of Figure 1 can determine whether the storage device 120 of Figure 4 has completed its startup process. If not, then at block 1430, Figure 3 the startup process 445 of
[0090] Once the startup process 445 has completed the startup process (whether at Figure 3 the startup power level 320 of Figure 3 or at the normal power level 330 of Figure 1 ), at block 1435, the storage device 120 of Figure 1 can receive the idle request 625 from the machine 105 of Figure 6 , and at block 1440, the storage device 120 of Figure 1 can enter the idle state. It should be noted that Figure 1 the machine 105 of Figure 6 may not send the idle request 625 of Figure 1 , and thus block 1435 can be omitted, as shown by the dashed line 1445, and Figure 6 the storage device 120 of
[0091] In Figure 7-14B , some embodiments of the present disclosure are shown. However, those skilled in the art will recognize that other embodiments of the present disclosure are also possible by changing the order of the blocks, by omitting blocks, or by including links not shown in the figures. All such variations of the flowchart are considered to be embodiments of the present disclosure, whether or not explicitly described.
[0092] Embodiments of the present disclosure include a storage unit that can be configured to use a power level higher than normal for the startup process. Before it is desired for the storage unit to use the normal power level, the host can specify the amount of power that the storage unit can use and the duration for which that power amount can be used. By using a power level higher than normal, the storage unit can start up faster, thus providing a technical advantage over storage units that start up using only the specified normal power level.
[0093] Embodiments of the present disclosure may also include the storage unit notifying the host of one or more power levels for which the storage unit has a verified startup process, and how long the startup process may take at that power level. By providing this information to the host, the host may be able to determine the power level at which the storage unit can be used for faster startup, thus providing a technical advantage over storage units that are only started using a specified normal power level.
[0094] In some examples, a hard disk drive (HDD) may consume more power during the transition from idle to active than its average allowable range. The HDD may need to do this because the HDD needs to move its actuator from the parked position during idle to the disk.
[0095] The increased power consumption of the HDD may be acceptable to the host because the excess over the normal allowable power is short and can be quantified and absorbed by the cabinet-level capacitor. If the entire cabinet resumes from an idle state, the host may distribute traffic to the HDDs to distribute the power peak in the cabinet.
[0096] A solid state drive (SSD) does not have an actuator that needs to be moved each time it transitions from an idle state. But the SSD still uses startup time. In a power-constrained environment (e.g., 12W) deployment, the SSD may self-regulate to stay within 12W. Throttling methods may include: reducing the clock on the controller / DRAM / channel and allocating fewer reads / writes to the NAND to reduce activity and parallelism. These options may slow down the startup time of the SSD.
[0097] Typically starts from cold server components and / or a cold server environment. Due to the lower temperature, additional heat (beyond the nominal rating) may be acceptable. The host may control the startup sequence of all cabinet components. Slow startup may be undesirable for customers who need to use their servers. In an orderly startup scenario, an over-designed power supply may tolerate power deviations of the SSD.
[0098] Embodiments of the present disclosure may enable the SSD to consume more power during startup. The additional power amount and the time length of the additional power can be quantified. This additional power can be used to accelerate the startup of the SSD by increasing the clock rate (e.g., for the controller, DRAM, channel, etc.) or increasing the number of inputs / outputs (IOs) contributing to the underlying flash storage device.
[0099] Embodiments of the present disclosure may also allow the host to query the SSD for the requested peak power consumption and duration. The host may accept this information or may communicate a lower limit of the offset time and / or peak power to the SSD. An SSD that cannot complete startup during these new limits set by the host may continue to start up in a normal power - limited manner. The host may use this information to allocate startup of all SSDs in a cabinet or limit power offsets to accommodate the function of the cabinet.
[0100] While the above discussion has focused on a 12W power limit, embodiments of the present disclosure are applicable even to power limits that are not 12W. For example, some high - capacity high - performance drives may be limited to 25W or higher.
[0101] The SSD may present several operation limit options. This can reduce the verification effort. Exemplary options may include: 14W for 1 second; 13W for 4 seconds; 12.5W for 10 seconds.
[0102] While the above discussion has focused on SSDs, embodiments of the present disclosure may be extended to other media (phase - change memory (PCM), magnetoresistive random - access memory (MRAM), resistive random - access memory (ReRAM), etc.) and other interfaces (non - volatile dual - in - line memory modules (NVDIMMs), cache - coherent interconnect protocols such as Compute Express Link (CXL), etc.).
[0103] The following discussion is intended to provide a brief, general description of one or more suitable machines in which certain aspects of the present disclosure may be implemented. One or more machines may be controlled at least in part by input from conventional input devices (such as keyboards, mice, etc.) and by guidance received from another machine, interaction with a virtual reality (VR) environment, biofeedback, or other input signals. As used herein, the term "machine" is intended to broadly cover a single machine, a virtual machine, or a system of machines, virtual machines, or devices that are communicatively coupled and operate together. Exemplary machines include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, telephones, tablets, etc., and transportation devices such as private or public transportation, e.g., cars, trains, taxis, etc.
[0104] One or more machines may include an embedded controller, such as a programmable or non-programmable logic device or array, an application specific integrated circuit (ASIC), an embedded computer, a smart card, etc. One or more machines may utilize one or more connections with one or more remote machines, such as via a network interface, a modem, or other communication couplings. Machines may be interconnected via physical and / or logical networks, such as intranets, the Internet, local area networks, wide area networks, etc. Those skilled in the art will understand that network communications may utilize a variety of wired and / or wireless short-range or long-range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 802.11, optical, infrared, cable, laser, etc.
[0105] Embodiments of the present disclosure may be described by reference to or in conjunction with associated data, including functions, procedures, data structures, applications, etc., which, when accessed by a machine, cause the machine to perform tasks or define abstract data types or underlying hardware contexts. The associated data may be stored, for example, in volatile and / or non-volatile memory (e.g., RAM, ROM, etc.), or in other storage devices and their associated storage media (including hard disk drives, floppy disks, optical disk storage devices, magnetic tapes, flash memories, memory sticks, digital video disks, biological storage devices, etc.). The associated data may be delivered in the form of packets, serial data, parallel data, propagated signals, etc., via a transmission environment (including physical and / or logical networks), and may be used in compressed or encrypted formats. The associated data may be used in a distributed environment and stored locally and / or remotely for access by machines.
[0106] Embodiments of the present disclosure may include a non-transitory machine-readable medium including instructions executable by one or more processors, the instructions including instructions for performing the elements of the present disclosure as described herein.
[0107] The various operations of the above methods may be performed by any suitable means capable of performing the operations, such as various hardware and / or software components, circuits, and / or modules. Software may include an ordered list of executable instructions for implementing logical functions and may be contained in any “processor-readable medium” for use by or in conjunction with an instruction execution system, apparatus, or device, such as a single-core or multi-core processor or a system including a processor.
[0108] The methods or algorithms and functional blocks and steps described in connection with the embodiments disclosed herein may be implemented directly in hardware, in software modules executed by a processor, or in a combination of both. If implemented in software, the functions may be stored on or transmitted over a tangible, non-transitory computer-readable medium as one or more instructions or code. The software modules may reside in random access memory (RAM), flash memory, read-only memory (ROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disk, removable disk, CD ROM, or any other form of storage medium known in the art.
[0109] The principles of the present disclosure have been described and illustrated with reference to the embodiments shown. It will be recognized that the embodiments shown may be modified in arrangement and detail without departing from such principles and may be combined in any desired manner. And although the foregoing discussion has focused on specific embodiments, other configurations are also contemplated. In particular, even though phrases such as "in accordance with an embodiment of the present disclosure" are used herein, these phrases are intended to generally reference the possibility of embodiments and are not intended to limit the present disclosure to a particular embodiment configuration. As used herein, these terms may refer to the same or different embodiments that may be combined into other embodiments.
[0110] The foregoing illustrative embodiments should not be construed as limiting the scope of their disclosure. Although several embodiments have been described, those skilled in the art will readily appreciate that many modifications may be made to those embodiments without departing from the novel teachings and advantages of the present disclosure in essence. Accordingly, all such modifications are intended to be included within the scope of the present disclosure as defined by the claims.
[0111] Embodiments of the present disclosure may be extended without limitation to the following statements:
[0112] Statement 1. Embodiments of the present disclosure include a storage unit, comprising:
[0113] An interface to a host;
[0114] A storage device for data;
[0115] A receiver for receiving startup power data from the host, the startup power data including a first power level and a duration; and
[0116] A circuit for starting the storage unit at least in part based on the startup power data,
[0117] wherein the storage unit includes a second power level, and the first power level is greater than the second power level.
[0118] Claim 2. An embodiment of the present disclosure includes the storage unit according to Claim 1, further including a controller, and the controller reads or writes data from or to the storage device at least partially based on a request from the host.
[0119] Claim 3. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the second power level includes the normal maximum power level of the storage unit.
[0120] Claim 4. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0121] Claim 5. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the interface includes at least one of a peripheral component interconnect express (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a compute express link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0122] Claim 6. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the storage unit supports a protocol for communicating with the host.
[0123] Claim 7. An embodiment of the present disclosure includes the storage unit according to Claim 6, wherein the protocol includes at least one of a non-volatile memory express (NVMe) protocol, a serial attached small computer system interface (SCSI) (SAS) protocol, or a serial ATA attachment (SATA) protocol.
[0124] Claim 8. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0125] Claim 9. An embodiment of the present disclosure includes the storage unit according to Claim 8, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a double rectangle.
[0126] Claim 10. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the receiver includes a register for storing the startup power data.
[0127] Claim 11. An embodiment of the present disclosure includes the storage unit according to Claim 1, wherein the receiver uses sideband signaling to receive the startup power data from the host.
[0128] Claim 12. Embodiments of the present disclosure include the storage unit according to Claim 11, wherein the storage unit uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0129] Claim 13. Embodiments of the present disclosure include the storage unit according to Claim 1, further including a transmitter that transmits second startup power data to the host, the second startup power data including a third power level and a second duration.
[0130] Claim 14. Embodiments of the present disclosure include the storage unit according to Claim 13, wherein the receiver is configured to receive a request for the second startup power data from the host.
[0131] Claim 15. Embodiments of the present disclosure include the storage unit according to Claim 13, wherein the transmitter is configured to transmit the second startup power data and third startup power data to the host, the third startup power data including a fourth power level and a third duration.
[0132] Claim 16. Embodiments of the present disclosure include the storage unit according to Claim 15, wherein the transmitter includes a register for storing at least one of the second startup power data or the third startup power data.
[0133] Claim 17. Embodiments of the present disclosure include the storage unit according to Claim 15, wherein:
[0134] the second startup power data includes a first identifier;
[0135] the third startup power data includes a second identifier; and
[0136] the startup power data includes the first identifier.
[0137] Claim 18. Embodiments of the present disclosure include the storage unit according to Claim 13, wherein the transmitter uses sideband signaling to transmit the second startup power data to the host.
[0138] Claim 19. Embodiments of the present disclosure include the storage unit according to Claim 18, wherein the storage unit uses at least one of SMBus, PCIe bus, or PCIe VDM for the sideband signaling.
[0139] Claim 20. Embodiments of the present disclosure include the storage unit according to Claim 1, wherein the circuit is configured to use the startup power data to start the storage unit twice.
[0140] Claim 21. Embodiments of the present disclosure include the storage unit according to Claim 1, wherein the circuit is configured to activate the storage unit at least in part based on one of the first power level, the duration, or the second power level.
[0141] Claim 22. Embodiments of the present disclosure include the storage unit according to Claim 21, wherein the circuit includes a timer for the circuit to activate the storage unit at least in part based on the first power level or the duration.
[0142] Claim 23. Embodiments of the present disclosure include the storage unit according to Claim 22, wherein the circuit is further configured to activate the storage unit using the second power level or the timer indicating the expiration of the duration.
[0143] Claim 24. Embodiments of the present disclosure include the storage unit according to Claim 21, wherein the circuit is configured to activate the storage unit at least in part based on a third power level, the third power level being less than the first power level and greater than the second power level.
[0144] Claim 25. Embodiments of the present disclosure include the storage unit according to Claim 24, wherein the circuit includes a timer for the circuit to activate the storage unit at least in part based on the first power level or the duration.
[0145] Claim 26. Embodiments of the present disclosure include the storage unit according to Claim 25, wherein the circuit is further configured to activate the storage unit using the second power level or the timer indicating the expiration of the duration.
[0146] Claim 27. Embodiments of the present disclosure include the storage unit according to Claim 1, wherein the receiver is configured to receive a request from the host to activate the storage unit.
[0147] Claim 28. Embodiments of the present disclosure include the storage unit according to Claim 1, wherein the storage unit includes an idle state that uses a third power level, the third power level being less than the second power level.
[0148] Claim 29. Embodiments of the present disclosure include the storage unit according to Claim 28, wherein the circuit is configured to place the storage unit in the idle state at least in part based on activation of the storage unit.
[0149] Claim 30. Embodiments of the present disclosure include the storage unit according to Claim 28, wherein the receiver receives a request from the host to enter the idle state at least in part based on activation of the storage unit.
[0150] Claim 31. Embodiments of the present disclosure include a host, comprising:
[0151] a processor;
[0152] a storage unit, the storage unit including a second power level;
[0153] an interface between the processor and the storage unit; and
[0154] a transmitter for transmitting startup power data to the storage unit for starting the storage unit, the startup power data including a first power level and a duration,
[0155] wherein the first power level is greater than the second power level.
[0156] Claim 32. Embodiments of the present disclosure include the host according to Claim 31, wherein the second power level includes the normal maximum power level of the storage unit.
[0157] Claim 33. Embodiments of the present disclosure include the host according to Claim 31, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0158] Claim 34. Embodiments of the present disclosure include the host according to Claim 31, wherein the interface includes at least one of a peripheral component interconnect express (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a compute express link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0159] Claim 35. Embodiments of the present disclosure include the host according to Claim 31, wherein the storage unit supports a protocol for communicating with the host.
[0160] Claim 36. Embodiments of the present disclosure include the host according to Claim 35, wherein the protocol includes at least one of a non-volatile memory express (NVMe) protocol, a serial attached SCSI (SAS) protocol, or a serial ATA (SATA) protocol.
[0161] Claim 37. Embodiments of the present disclosure include the host according to Claim 31, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0162] Claim 38. An embodiment of the present disclosure includes the host according to Claim 37, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a double rectangle.
[0163] Claim 39. An embodiment of the present disclosure includes the host according to Claim 31, wherein the storage unit includes a register for storing the startup power data.
[0164] Claim 40. An embodiment of the present disclosure includes the host according to Claim 39, wherein the transmitter includes a circuit for writing the startup power data into the register of the storage unit.
[0165] Claim 41. An embodiment of the present disclosure includes the host according to Claim 31, wherein the transmitter uses sideband signaling to transmit the startup power data to the storage unit.
[0166] Claim 42. An embodiment of the present disclosure includes the host according to Claim 41, wherein the host uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0167] Claim 43. An embodiment of the present disclosure includes the host according to Claim 31, further including a receiver that receives second startup power data from the storage unit, including a third power level and a second duration.
[0168] Claim 44. An embodiment of the present disclosure includes the host according to Claim 43, wherein the transmitter is configured to transmit a request for the second startup power data to the storage unit.
[0169] Claim 45. An embodiment of the present disclosure includes the host according to Claim 43, wherein the receiver is configured to receive the second startup power data and third startup power data from the storage unit, the third startup power data including a fourth power level and a third duration.
[0170] Claim 46. An embodiment of the present disclosure includes the host according to Claim 45, wherein:
[0171] the storage unit includes a register for storing at least one of the second startup power data or the third startup power data; and
[0172] the receiver includes a circuit for reading the second startup power data and the third startup power data from the register of the storage unit.
[0173] Claim 47. An embodiment of the present disclosure includes the host according to Claim 45, wherein:
[0174] The second startup power data includes a first identifier;
[0175] The third startup power data includes a second identifier; and
[0176] The startup power data includes the first identifier.
[0177] Claim 48. An embodiment of the present disclosure includes the host according to Claim 43, wherein the receiver uses sideband signaling to receive the second startup power data from the storage unit.
[0178] Claim 49. An embodiment of the present disclosure includes the host according to Claim 48, wherein the host uses at least one of SMBus, PCIe bus, or PCIe VDM for the sideband signaling.
[0179] Claim 50. An embodiment of the present disclosure includes the host according to Claim 31, wherein the storage unit is configured to use the startup power data to start up twice.
[0180] Claim 51. An embodiment of the present disclosure includes the host according to Claim 31, wherein the transmitter is configured to transmit a request to start up the storage unit.
[0181] Claim 52. An embodiment of the present disclosure includes the host according to Claim 31, further including a power supply, and the power supply includes a power output.
[0182] Claim 53. An embodiment of the present disclosure includes the host according to Claim 52, wherein:
[0183] The processor includes a third power level; and
[0184] The power output is greater than the sum of the second power level and the third power level.
[0185] Claim 54. An embodiment of the present disclosure includes the host according to Claim 53, wherein the power output is greater than a second sum of the first power level and the third power level.
[0186] Claim 55. An embodiment of the present disclosure includes the host according to Claim 53, wherein:
[0187] The host further includes a second storage unit, and the second storage unit includes a fourth power level; and
[0188] The power output is greater than a second sum of the first power level, the third power level, and the fourth power level.
[0189] Claim 56. An embodiment of the present disclosure includes the host according to Claim 31, wherein:
[0190] The host further includes a timer based at least in part on the duration; and
[0191] The transmitter is configured to transmit a first request to initiate the first storage unit and a second request to initiate the second storage unit based at least in part on the timer.
[0192] Claim 57. Embodiments of the present disclosure include the host according to Claim 56, further including circuitry for selecting a startup sequence for the storage unit and the second storage unit.
[0193] Claim 58. Embodiments of the present disclosure include the host according to Claim 31, wherein the storage unit includes an idle state that uses a third power level, and the third power level is less than the second power level.
[0194] Claim 59. Embodiments of the present disclosure include the host according to Claim 58, further including the transmitter transmitting a request to enter the idle state to the storage unit based at least in part on the startup of the storage unit.
[0195] Claim 60. Embodiments of the present disclosure include a method, including: receiving startup power data from a host at a storage unit, the startup power data including a first power level and a duration; and
[0196] using the startup power data to start the storage unit,
[0197] wherein the storage unit includes a second power level, and the first power level is greater than the second power level.
[0198] Claim 61. Embodiments of the present disclosure include the method according to Claim 60, wherein the second power level includes the normal maximum power level of the storage unit.
[0199] Claim 62. Embodiments of the present disclosure include the method according to Claim 60, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0200] Claim 63. Embodiments of the present disclosure include the method according to Claim 60, wherein the storage unit includes an interface, and the interface includes at least one of a peripheral component interconnect express (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a compute express link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0201] Claim 64. An embodiment of the present disclosure includes the method according to Claim 60, wherein the storage unit supports a protocol for communicating with the host, and the protocol includes at least one of a Non-Volatile Memory Express (NVMe) protocol, a Serial Attached SCSI (SAS) protocol, or a Serial ATA (SATA) protocol.
[0202] Claim 65. An embodiment of the present disclosure includes the method according to Claim 60, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0203] Claim 66. An embodiment of the present disclosure includes the method according to Claim 65, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a double rectangle.
[0204] Claim 67. An embodiment of the present disclosure includes the method according to Claim 60, wherein receiving the startup power data from the host at the storage unit includes reading the startup power data from a register of the storage unit.
[0205] Claim 68. An embodiment of the present disclosure includes the method according to Claim 60, wherein receiving the startup power data from the host at the storage unit includes receiving the startup power data from the host at the storage unit using sideband signaling.
[0206] Claim 69. An embodiment of the present disclosure includes the method according to Claim 68, wherein the storage unit uses at least one of a System Management Bus (SMBus), a PCIe bus, or a PCIe Vendor Device Message (VDM) for the sideband signaling.
[0207] Claim 70. An embodiment of the present disclosure includes the method according to Claim 60, further including transmitting second startup power data from the storage unit to the host, the second startup power data including a third power level and a second duration.
[0208] Claim 71. An embodiment of the present disclosure includes the method according to Claim 70, wherein transmitting the second startup power data from the storage unit to the host includes receiving, at the storage unit, a request for the second startup power data from the host.
[0209] Claim 72. An embodiment of the present disclosure includes the method according to Claim 70, wherein transmitting the second startup power data from the storage unit to the host includes transmitting the second startup power data and third startup power data from the storage unit to the host, the third startup power data including a fourth power level and a third duration.
[0210] Claim 73. Embodiments of the present disclosure include the method according to Claim 72, wherein:
[0211] The second startup power data includes a first identifier;
[0212] The third startup power data includes a second identifier; and
[0213] The startup power data includes the first identifier.
[0214] Claim 74. Embodiments of the present disclosure include the method according to Claim 72, wherein transmitting the second startup power data from the storage unit to the host includes writing at least one of the second startup power data or the third startup power data into a register of the storage unit.
[0215] Claim 75. Embodiments of the present disclosure include the method according to Claim 70, wherein transmitting the second startup power data from the storage unit to the host includes transmitting the second startup power data from the storage unit to the host using sideband signaling.
[0216] Claim 76. Embodiments of the present disclosure include the method according to Claim 75, wherein the storage unit uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0217] Claim 77. Embodiments of the present disclosure include the method according to Claim 60, further including using the startup power data to start the storage unit twice.
[0218] Claim 78. Embodiments of the present disclosure include the method according to Claim 60, wherein using the startup power data to start the storage unit includes starting the storage unit at least partially based on one of the first power level, the duration, and the second power level.
[0219] Claim 79. Embodiments of the present disclosure include the method according to Claim 78, wherein starting the storage unit at least partially based on one of the first power level, the duration, and the second power level includes timing the startup of the storage unit at least partially based on the first power level or the duration using a timer.
[0220] Claim 80. Embodiments of the present disclosure include the method according to Claim 78, wherein starting the storage unit at least partially based on one of the first power level, the duration, and the second power level includes starting the storage unit at least partially based on the second power level or the timer indicating the expiration of the duration.
[0221] Claim 81. Embodiments of the present disclosure include the method according to Claim 78, wherein starting the storage unit based at least in part on one of the first power level, the duration, and the second power level includes starting the storage unit based at least in part on a third power level, the third power level being less than the first power level and greater than the second power level.
[0222] Claim 82. Embodiments of the present disclosure include the method according to Claim 81, wherein starting the storage unit at the third power level includes timing the start of the storage unit based at least in part on the third power level or the duration using a timer.
[0223] Claim 83. Embodiments of the present disclosure include the method according to Claim 82, wherein starting the storage unit based at least in part on one of the first power level, the duration, and the second power level further includes starting the storage unit based at least in part on the second power level or the timer indicating the expiration of the duration.
[0224] Claim 84. Embodiments of the present disclosure include the method according to Claim 60, wherein starting the storage unit using the start power data includes receiving, at the storage unit, a request to start the storage unit from the host.
[0225] Claim 85. Embodiments of the present disclosure include the method according to Claim 60, further including placing the storage unit in an idle state.
[0226] Claim 86. Embodiments of the present disclosure include the method according to Claim 85, wherein starting the storage unit using the start power data includes placing the storage unit in the idle state.
[0227] Claim 87. Embodiments of the present disclosure include the method according to Claim 85, wherein placing the storage unit in the idle state includes receiving, at the storage unit, a request for the storage unit to enter the idle state from the host.
[0228] Claim 88. Embodiments of the present disclosure include a method, comprising: selecting, at a host, a first power level and a duration for a storage unit, the storage unit including a second power level; and
[0229] transmitting, from the host to the storage unit, start power data including the first power level and the duration,
[0230] wherein the first power level is greater than the second power level.
[0231] Claim 89. An embodiment of the present disclosure includes the method according to Claim 88, wherein the second power level includes the normal maximum power level of the storage unit.
[0232] Claim 90. An embodiment of the present disclosure includes the method according to Claim 88, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0233] Claim 91. An embodiment of the present disclosure includes the method according to Claim 88, wherein the interface between the processor and the storage unit includes at least one of a peripheral component interconnect express (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a compute express link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0234] Claim 92. An embodiment of the present disclosure includes the method according to Claim 88, wherein the storage unit supports a protocol for communicating with the host.
[0235] Claim 93. An embodiment of the present disclosure includes the method according to Claim 92, wherein the protocol includes at least one of a non-volatile memory express (NVMe) protocol, a serial attached small computer system interface (SCSI) (SAS) protocol, or a serial advanced technology attachment (SATA) protocol.
[0236] Claim 94. An embodiment of the present disclosure includes the method according to Claim 88, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0237] Claim 95. An embodiment of the present disclosure includes the method according to Claim 94, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a double rectangle.
[0238] Claim 96. An embodiment of the present disclosure includes the method according to Claim 88, wherein transmitting the startup power data including the first power level and the duration from the host to the storage unit includes writing the startup power data into a register of the storage unit.
[0239] Claim 97. An embodiment of the present disclosure includes the method according to Claim 88, wherein transmitting the startup power data including the first power level and the duration from the host to the storage unit includes transmitting the startup power data including the first power level and the duration from the host to the storage unit using sideband signaling.
[0240] Claim 98. Embodiments of the present disclosure include the method according to Claim 97, wherein the host uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0241] Claim 99. Embodiments of the present disclosure include the method according to Claim 88, further comprising receiving, at the host, second startup power data from the storage unit, the second startup power data including a third power level and a second duration.
[0242] Claim 100. Embodiments of the present disclosure include the method according to Claim 99, wherein receiving, at the host, the second startup power data from the storage unit includes transmitting, from the host to the storage unit, a request for the second startup power data.
[0243] Claim 101. Embodiments of the present disclosure include the method according to Claim 99, wherein receiving, at the host, second startup power data from the storage unit includes receiving, at the host, third startup power data from the storage unit, the third startup power data including a fourth power level and a third duration.
[0244] Claim 102. Embodiments of the present disclosure include the method according to Claim 101, wherein receiving, at the host, the third startup power data from the storage unit includes reading the third startup power data from a register of the storage unit.
[0245] Claim 103. Embodiments of the present disclosure include the method according to Claim 101, wherein:
[0246] the second startup power data includes a first identifier;
[0247] the third startup power data includes a second identifier; and
[0248] the startup power data includes the first identifier.
[0249] Claim 104. Embodiments of the present disclosure include the method according to Claim 99, wherein receiving, at the host, the second startup power data from the storage unit includes receiving, at the host, the second startup power data from the storage unit using sideband signaling.
[0250] Claim 105. Embodiments of the present disclosure include the method according to Claim 104, wherein the host uses at least one of an SMBus, a PCIe bus, or a PCIe VDM for the sideband signaling.
[0251] Claim 106. An embodiment of the present disclosure includes the method according to Claim 88, further comprising transmitting, from the host, a request to start using the startup power data to the storage unit.
[0252] Claim 107. An embodiment of the present disclosure includes the method according to Claim 106, further comprising transmitting, from the host, a second request to start using second startup power data to a second storage unit.
[0253] Claim 108. An embodiment of the present disclosure includes the method according to Claim 107, further comprising timing the startup of the storage unit at least partially based on the startup power data using a timer.
[0254] Claim 109. An embodiment of the present disclosure includes the method according to Claim 108, wherein transmitting, from the host, the second request to start using the second startup power data to the second storage unit includes transmitting, from the host, the second startup request to start using the second startup power data at least partially based on the timer indicating that the duration has passed to the second storage unit.
[0255] Claim 110. An embodiment of the present disclosure includes the method according to Claim 107, further comprising selecting a startup order for the storage unit and the second storage unit.
[0256] Claim 111. An embodiment of the present disclosure includes the method according to Claim 88, further comprising:
[0257] determining the power output of a power supply;
[0258] determining a third power level of a processor; and
[0259] determining the first power level at least partially based on the second power level, the third power level, or the power output.
[0260] Claim 112. An embodiment of the present disclosure includes the method according to Claim 111, wherein the power output is greater than the sum of the first power level and the third power level.
[0261] Claim 113. An embodiment of the present disclosure includes the method according to Claim 112, wherein:
[0262] the method further comprises determining a fourth power level of a second storage unit; and
[0263] determining the first power level at least partially based on the second power level, the third power level, or the power output includes determining the first power level at least partially based on the second power level, the third power level, the fourth power level, or the power output.
[0264] Claim 114. Embodiments of the present disclosure include the method according to Claim 113, wherein the power output is greater than the sum of the first power level, the third power level, and the fourth power level.
[0265] Claim 115. Embodiments of the present disclosure include the method according to Claim 88, further comprising transmitting a request to enter an idle state from the host to the storage unit, the idle state using a third power level, the third power level being less than the second power level.
[0266] Claim 116. Embodiments of the present disclosure include an article of manufacture, the article of manufacture including a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause: receiving startup power data from a host at a storage unit, the startup power data including a first power level and a duration; and
[0267] starting the storage unit using the startup power data,
[0268] wherein the storage unit includes a second power level, the first power level being greater than the second power level.
[0269] Claim 117. Embodiments of the present disclosure include the article of manufacture according to Claim 116, wherein the second power level includes the normal maximum power level of the storage unit.
[0270] Claim 118. Embodiments of the present disclosure include the article of manufacture according to Claim 116, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0271] Claim 119. Embodiments of the present disclosure include the article of manufacture according to Claim 116, wherein the storage unit includes an interface, the interface including at least one of a peripheral component interconnect express (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a compute express link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0272] Claim 120. Embodiments of the present disclosure include the article of manufacture according to Claim 116, wherein the storage unit supports a protocol for communicating with the host, the protocol including at least one of a non-volatile memory express (NVMe) protocol, a serial attached small computer system interface (SCSI) (SAS) protocol, or a serial ATA (SATA) protocol.
[0273] Claim 121. An embodiment of the present disclosure includes the article according to Claim 116, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0274] Claim 122. An embodiment of the present disclosure includes the article according to Claim 121, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a bi-rectangle.
[0275] Claim 123. An embodiment of the present disclosure includes the article according to Claim 116, wherein receiving the startup power data from the host at the storage unit includes reading the startup power data from a register of the storage unit.
[0276] Claim 124. An embodiment of the present disclosure includes the article according to Claim 116, wherein receiving the startup power data from the host at the storage unit includes receiving the startup power data from the host at the storage unit using sideband signaling.
[0277] Claim 125. An embodiment of the present disclosure includes the article according to Claim 124, wherein the storage unit uses at least one of a System Management Bus (SMBus), a PCIe bus, or a PCIe Vendor Device Message (VDM) for the sideband signaling.
[0278] Claim 126. An embodiment of the present disclosure includes the article according to Claim 116, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause transmission of second startup power data from the storage unit to the host, the second startup power data including a third power level and a second duration.
[0279] Claim 127. An embodiment of the present disclosure includes the article according to Claim 126, wherein transmitting the second startup power data from the storage unit to the host includes receiving, at the storage unit, a request for the second startup power data from the host.
[0280] Claim 128. An embodiment of the present disclosure includes the article according to Claim 126, wherein transmitting the second startup power data from the storage unit to the host includes transmitting the second startup power data and third startup power data from the storage unit to the host, the third startup power data including a fourth power level and a third duration.
[0281] Claim 129. An embodiment of the present disclosure includes the article according to Claim 128, wherein:
[0282] the second startup power data includes a first identifier;
[0283] The third startup power data includes a second identifier; and
[0284] The startup power data includes the first identifier.
[0285] Claim 130. An embodiment of the present disclosure includes the article according to Claim 128, wherein transmitting the second startup power data from the storage unit to the host includes writing at least one of the second startup power data or the third startup power data into a register of the storage unit.
[0286] Claim 131. An embodiment of the present disclosure includes the article according to Claim 126, wherein transmitting the second startup power data from the storage unit to the host includes transmitting the second startup power data from the storage unit to the host using sideband signaling.
[0287] Claim 132. An embodiment of the present disclosure includes the article according to Claim 131, wherein the storage unit uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0288] Claim 133. An embodiment of the present disclosure includes the article according to Claim 116, wherein additional instructions are stored on the non-transitory storage medium, and the additional instructions, when executed by the machine, cause the storage unit to be started twice using the startup power data.
[0289] Claim 134. An embodiment of the present disclosure includes the article according to Claim 116, wherein starting the storage unit using the startup power data includes starting the storage unit at least partially based on one of the first power level, the duration, and the second power level.
[0290] Claim 135. An embodiment of the present disclosure includes the article according to Claim 134, wherein starting the storage unit at least partially based on one of the first power level, the duration, and the second power level includes using a timer to time the startup of the storage unit at least partially based on the first power level or the duration.
[0291] Claim 136. An embodiment of the present disclosure includes the article according to Claim 134, wherein starting the storage unit at least partially based on one of the first power level, the duration, and the second power level includes starting the storage unit at least partially based on the second power level or the timer indicating that the duration has elapsed.
[0292] Claim 137. An embodiment of the present disclosure includes the article according to Claim 134, wherein starting the storage unit at least in part based on one of the first power level, the duration, and the second power level includes starting the storage unit at least in part based on a third power level, the third power level being less than the first power level and greater than the second power level.
[0293] Claim 138. An embodiment of the present disclosure includes the article according to Claim 137, wherein starting the storage unit at the third power level includes timing the start of the storage unit at least in part based on the third power level or the duration using a timer.
[0294] Claim 139. An embodiment of the present disclosure includes the article according to Claim 138, wherein starting the storage unit at least in part based on one of the first power level, the duration, and the second power level further includes starting the storage unit at least in part based on the second power level or the timer indicating the expiration of the duration.
[0295] Claim 140. An embodiment of the present disclosure includes the article according to Claim 116, wherein using the start power data to start the storage unit includes receiving, at the storage unit, a request to start the storage unit from the host.
[0296] Claim 141. An embodiment of the present disclosure includes the article according to Claim 116, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause the storage unit to be placed in an idle state.
[0297] Claim 142. An embodiment of the present disclosure includes the article according to Claim 141, wherein using the start power data to start the storage unit includes placing the storage unit in the idle state.
[0298] Claim 143. An embodiment of the present disclosure includes the article according to Claim 141, wherein placing the storage unit in the idle state includes receiving, at the storage unit, a request from the host for the storage unit to enter the idle state.
[0299] Claim 144. An embodiment of the present disclosure includes an article that includes a non-transitory storage medium having stored thereon instructions that, when executed by a machine, cause: at a host, selecting a first power level and a duration for a storage unit, the storage unit including a second power level; and
[0300] transmitting, from the host to the storage unit, start power data including the first power level and the duration
[0301] Wherein the first power level is greater than the second power level.
[0302] Claim 145. An embodiment of the present disclosure includes the article according to Claim 144, wherein the second power level includes the normal maximum power level of the storage unit.
[0303] Claim 146. An embodiment of the present disclosure includes the article according to Claim 144, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
[0304] Claim 147. An embodiment of the present disclosure includes the article according to Claim 144, wherein the interface between the processor and the storage unit includes at least one of a peripheral component interconnect high speed (PCIe) interface, a non-volatile dual in-line memory module (NVDMM) interface, a Compute Express Link (CXL) interface, a U.2 interface, a U.3 interface, or an M.2 interface.
[0305] Claim 148. An embodiment of the present disclosure includes the article according to Claim 144, wherein the storage unit supports a protocol for communicating with the host.
[0306] Claim 149. An embodiment of the present disclosure includes the article according to Claim 148, wherein the protocol includes at least one of a non-volatile memory express (NVMe) protocol, a serial attached small computer system interface (SCSI) (SAS) protocol, or a serial advanced technology attachment (SATA) protocol.
[0307] Claim 150. An embodiment of the present disclosure includes the article according to Claim 144, wherein the startup power data includes a shape representing an upper bound of the power consumed by the storage unit.
[0308] Claim 151. An embodiment of the present disclosure includes the article according to Claim 150, wherein the shape includes at least one of a rectangle, a triangle, a curve, or a double rectangle.
[0309] Claim 152. An embodiment of the present disclosure includes the article according to Claim 144, wherein transmitting the startup power data including the first power level and the duration from the host to the storage unit includes writing the startup power data into a register of the storage unit.
[0310] Claim 153. An embodiment of the present disclosure includes the article according to Claim 144, wherein transmitting the startup power data including the first power level and the duration from the host to the storage unit includes transmitting the startup power data including the first power level and the duration from the host to the storage unit using sideband signaling.
[0311] Claim 154. An embodiment of the present disclosure includes the article according to Claim 153, wherein the host uses at least one of a system management bus (SMBus), a PCIe bus, or a PCIe vendor device message (VDM) for the sideband signaling.
[0312] Claim 155. An embodiment of the present disclosure includes the article according to Claim 144, the non-transitory storage medium storing additional instructions thereon, the additional instructions, when executed by the machine, causing the second startup power data to be received at the host from the storage unit, the second startup power data including a third power level and a second duration.
[0313] Claim 156. An embodiment of the present disclosure includes the article according to Claim 155, wherein receiving the second startup power data at the host from the storage unit includes transmitting a request for the second startup power data from the host to the storage unit.
[0314] Claim 157. An embodiment of the present disclosure includes the article according to Claim 155, wherein receiving the second startup power data at the host from the storage unit includes receiving third startup power data at the host from the storage unit, the third startup power data including a fourth power level and a third duration.
[0315] Claim 158. An embodiment of the present disclosure includes the article according to Claim 157, wherein receiving the third startup power data at the host from the storage unit includes reading the third startup power data from a register of the storage unit.
[0316] Claim 159. An embodiment of the present disclosure includes the article according to Claim 157, wherein:
[0317] the second startup power data includes a first identifier;
[0318] the third startup power data includes a second identifier; and
[0319] the startup power data includes the first identifier.
[0320] Claim 160. An embodiment of the present disclosure includes the article according to Claim 155, wherein receiving the second startup power data at the host from the storage unit includes receiving the second startup power data at the host from the storage unit using sideband signaling.
[0321] Claim 161. An embodiment of the present disclosure includes the article according to Claim 160, wherein the host uses at least one of SMBus, PCIe bus, or PCIe VDM for the sideband signaling.
[0322] Claim 162. An embodiment of the present disclosure includes the article according to Claim 144, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause a request to start using the startup power data to be transmitted from the host to the storage unit.
[0323] Claim 163. An embodiment of the present disclosure includes the article according to Claim 162, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause a second request to start using second startup power data to be transmitted from the host to a second storage unit.
[0324] Claim 164. An embodiment of the present disclosure includes the article according to Claim 163, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause a timer to time the startup of the storage unit based at least in part on the startup power data.
[0325] Claim 165. An embodiment of the present disclosure includes the article according to Claim 164, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause the second startup request that starts using the second startup power data based at least in part on the timer indicating that the duration has passed to be transmitted from the host to the second storage unit.
[0326] Claim 166. An embodiment of the present disclosure includes the article according to Claim 163, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause a startup order to be selected for the storage unit and the second storage unit.
[0327] Claim 167. An embodiment of the present disclosure includes the article according to Claim 144, the non-transitory storage medium having stored thereon additional instructions that, when executed by the machine, cause:
[0328] determining the power output of a power supply;
[0329] Determine a third power level of the processor; and
[0330] Determine the first power level at least in part based on the second power level, the third power level, or the power output.
[0331] Claim 168. Embodiments of the present disclosure include an article of manufacture according to Claim 167, wherein the power output is greater than the sum of the first power level and the third power level.
[0332] Claim 169. Embodiments of the present disclosure include an article of manufacture according to Claim 168, wherein:
[0333] The non-transitory storage medium stores additional instructions thereon, and the additional instructions, when executed by the machine, cause determination of a fourth power level of a second storage unit; and
[0334] Determining the first power level at least in part based on the second power level, the third power level, or the power output includes determining the first power level at least in part based on the second power level, the third power level, the fourth power level, or the power output.
[0335] Claim 170. Embodiments of the present disclosure include an article of manufacture according to Claim 169, wherein the power output is greater than the sum of the first power level, the third power level, and the fourth power level.
[0336] Claim 171. Embodiments of the present disclosure include an article of manufacture according to Claim 144, the non-transitory storage medium stores additional instructions thereon, and the additional instructions, when executed by the machine, cause a request to be transmitted from the host to the storage unit to enter an idle state, and the idle state uses a third power level that is less than the second power level.
[0337] Accordingly, in view of the various arrangements of the embodiments described herein, this detailed description and the accompanying materials are only intended to illustrate and should not be considered as limiting the scope of the present disclosure. Therefore, what is claimed as the present disclosure are all such modifications that may fall within the scope and spirit of the appended claims and their equivalents.
Claims
1. A storage unit, comprising: an interface to a host; a storage device for data; a receiver for receiving startup power data from the host, the startup power data including a first power level and a duration; and a circuit for: initiating a first part of a startup process of the storage unit using the first power level based on the duration; and initiating a second part of the startup process of the storage unit using a second power level based on the duration, wherein: the startup power data further includes a third power level and a second duration, wherein the first part of the startup process includes: starting the storage unit using the first power level at least partially based on the duration and using the third power level at least partially based on the second duration, and the first power level and the third power level are greater than the second power level, and the third power level is less than the first power level.
2. The storage unit according to claim 1, wherein the storage unit includes at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
3. The storage unit according to claim 1, wherein the startup power data includes an upper bound of the power consumed by the storage unit.
4. The storage unit according to claim 1, further comprising a transmitter that transmits second startup power data to the host, the second startup power data including a third power level and a second duration.
5. The storage unit according to claim 1, wherein the circuit includes a timer for the circuit to start the storage unit using the first power level at least partially based on the duration.
6. The storage unit according to claim 5, wherein the circuit is further configured to start the storage unit using the second power level at least partially based on the timer indicating that the duration has elapsed.
7. The storage unit according to claim 1, wherein the second part of the startup process is initiated based on an expiration of the duration.
8. A method, comprising: receiving, at a storage unit, startup power data from a host, the startup power data including a first power level and a duration; initiating a first part of a startup process of the storage unit using the first power level based on the duration; and initiating a second part of the startup process of the storage unit using a second power level based on the duration, wherein: the startup power data further includes a third power level and a second duration, wherein the first part of the startup process includes: starting the storage unit using the first power level at least partially based on the duration and using the third power level at least partially based on the second duration, and the first power level and the third power level are greater than the second power level, and the third power level is less than the first power level.
9. The method according to claim 8, wherein the storage unit comprises at least one of a solid state drive (SSD), a hard disk drive, a phase change memory (PCM), a magnetoresistive random access memory (MRAM), or a resistive random access memory (ReRAM).
10. The method according to claim 8, wherein the startup power data comprises an upper bound of the power consumed by the storage unit.
11. The method according to claim 8, further comprising transmitting second startup power data from the storage unit to the host, the second startup power data comprising a third power level and a second duration.
12. The method according to claim 8, wherein starting the storage unit based at least in part on one of the first power level, the duration, and the second power level comprises timing the startup of the storage unit based at least in part on the first power level or the duration using a timer.
13. The method according to claim 12, wherein starting the storage unit based at least in part on one of the first power level, the duration, and the second power level comprises starting the storage unit using the second power level based at least in part on the timer indicating that the duration has elapsed.
14. A method, comprising: selecting a first power level and a duration for a first part of a startup process of a storage unit, the storage unit comprising a second power level for a second part of the startup process of the storage unit; and transmitting startup power data comprising the first power level and the duration from a host to the storage unit, wherein: the startup power data further comprises a third power level and a second duration, wherein the first part of the startup process comprises: starting the storage unit using the first power level based at least in part on the duration and using the third power level based at least in part on the second duration, and the first power level and the third power level are greater than the second power level, and the third power level is less than the first power level.
15. The method according to claim 14, wherein the startup power data comprises an upper bound of the power consumed by the storage unit.
16. The method according to claim 14, further comprising receiving, at the host, second startup power data from the storage unit, the second startup power data comprising a third power level and a second duration.
17. The method according to claim 14, further comprising transmitting a request to start using the startup power data from the host to the storage unit.
18. The method according to claim 17, further comprising transmitting a second request to start using second startup power data from the host to a second storage unit.
19. The method according to claim 18, further comprising timing the startup of the storage unit based at least in part on the startup power data using a timer.
Citation Information
Patent Citations
Server and hard disk power-on control system and method thereof
CN113835507A
Operating speed of a component
US20130205130A1