US20180315483A1 - Storage system and method for handling overheating of the storage system - Google Patents
Storage system and method for handling overheating of the storage system Download PDFInfo
- Publication number
- US20180315483A1 US20180315483A1 US15/583,738 US201715583738A US2018315483A1 US 20180315483 A1 US20180315483 A1 US 20180315483A1 US 201715583738 A US201715583738 A US 201715583738A US 2018315483 A1 US2018315483 A1 US 2018315483A1
- Authority
- US
- United States
- Prior art keywords
- memory
- temperature
- storage system
- controller
- voltage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000013021 overheating Methods 0.000 title claims abstract description 10
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 179
- 239000000758 substrate Substances 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 239000004065 semiconductor Substances 0.000 description 9
- 238000003491 array Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 101150053419 dps2 gene Proteins 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- XGCDBGRZEKYHNV-UHFFFAOYSA-N 1,1-bis(diphenylphosphino)methane Chemical compound C=1C=CC=CC=1P(C=1C=CC=CC=1)CP(C=1C=CC=CC=1)C1=CC=CC=C1 XGCDBGRZEKYHNV-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001627 detrimental effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- 230000008646 thermal stress Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000011370 conductive nanoparticle Substances 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000003685 thermal hair damage Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
Definitions
- Memory in a storage system can experience thermal instability in a variety of situations.
- high ambient temperature, data traffic, and workload, as well as the enclosure build of the storage system can have a detrimental impact on the storage system's hardware.
- Components in the storage system such as the memory array, the controller, or application-specific integrated circuits (ASICs), can malfunction under sustained thermal stress, which can lead to data integrity and system reliability failures, as well as a high-defective-parts-per-million (DPPM) number.
- Some storage systems use thermal throttling in an attempt to handle the overheating problem. With thermal throttling, when the temperature of the storage system is above a certain threshold, the storage system can reduce the number of memory operations performed over a given time by, for example, slowing down the system clock or limiting the power or memory allocated to upcoming operations.
- FIG. 1A is a block diagram of a non-volatile storage system of an embodiment.
- FIG. 1B is a block diagram illustrating a storage module of an embodiment.
- FIG. 1C is a block diagram illustrating a hierarchical storage system of an embodiment.
- FIG. 2A is a block diagram illustrating components of the controller of the non-volatile storage system illustrated in FIG. 1A according to an embodiment.
- FIG. 2B is a block diagram illustrating components of the non-volatile memory storage system illustrated in FIG. 1A according to an embodiment.
- FIG. 3 is a graph showing leakage current of a transistor used in a storage system of an embodiment.
- FIG. 4 is a block diagram of a memory system of an embodiment.
- FIG. 5 is a block diagram of a power supply of an embodiment.
- FIG. 6 are graphs of an embodiment showing temperature, power, and voltage over time.
- FIG. 7 is a flow chart of a method of an embodiment for handling overheating of a storage system.
- FIG. 8 is block diagram of a storage system of another embodiment.
- a method is provided that is perfoiiiied in a storage system comprising a memory, a temperature sensor, and a power supply. The method comprises determining whether a temperature sensed by the temperature sensor is above a first threshold temperature; and in response to determining that the temperature sensed by the temperature sensor is above the first threshold temperature, lowering a voltage supplied by the power supply to one or more components in the storage system comprising transistors, wherein lowering the voltage supplied to the one or more components reduces temperature by reducing leakage current of the transistors.
- the method further comprises lowering the voltage supplied by the power supply to additional components in the storage system comprising transistors until the temperature sensed by the temperature sensor is lower than the first threshold temperature.
- the method further comprises prior to lowering the voltage supplied by the power supply: determining whether the temperature sensed by the temperature sensor is above a second threshold temperature, wherein the second threshold temperature is lower than the first threshold temperature; and in response to determining that the temperature sensed by the temperature sensor is above the second threshold temperature, performing a thermal throttling operation on the memory.
- the one or more components comprising one or more of the following: the memory, a controller, a random access memory, and analog circuitry.
- the memory comprises a three-dimensional memory.
- the storage system is embedded in a host.
- the storage system is removably connected to a host.
- a storage system comprising a memory; means for determining whether a temperature in the storage system is greater than a first temperature; and means for in response to determining that the temperature in the storage system is greater than a first temperature, lowering a voltage supplied to at least one transistor-based component in the storage system, wherein lowering the voltage supplied to the at least one transistor-based component in the storage system reduces the temperature in the storage system by reducing transistor leakage current.
- the storage system further comprises means for lowering the voltage supplied to the memory to a voltage needed to execute a particular memory operation.
- the storage system further comprises means for prior to lowering the voltage supplied to the at least one transistor-based component in the storage system: determining whether the temperature in the storage system is greater than a second temperature, wherein the second temperature is lower than the first temperature; and in response to determining that the temperature in the storage system is greater than the second temperature, performing a thermal throttling operation on the memory.
- the at least one transistor-based component in the storage system comprising one or more of the following: the memory, a controller, a random access memory, and analog circuitry.
- the memory comprises a three-dimensional memory.
- the storage system is embedded in a host.
- the storage system further comprises the storage system is removably connected to a host.
- a storage system comprising a memory; a power supply; and a controller in communication with the memory and the power supply.
- the controller is configured to: determine how much voltage is required to execute a memory operation; compare the voltage required to execute the memory operation to a voltage currently being supplied from the power supply to the memory; in response to the voltage required to execute the memory operation being lower than the voltage currently being supplied from the power supply to the memory, lower the voltage being supplied from the power supply to the memory to match the voltage required to execute the memory operation; and in response to the voltage required to execute the memory operation being greater than the voltage currently being supplied from the power supply to the memory, delay execution of the memory operation until the voltage being supplied from the power supply to the memory increases to the voltage required to execute the memory operation.
- the controller comprises: a current projector configured to determine an amount of current that will be consumed in executing the memory operation; and a voltage-goal-per-current-lookup structure configured to determine how much voltage is required to execute the memory operation based on the amount of current determined by the current projector.
- the controller comprises: a current projector configured to determine an amount of current that will be consumed in executing the memory operation; and a voltage-goal-per-current-per-temperature-lookup structure configured to determine how much voltage is required to execute the memory operation based on the amount of current determined by the current projector and based on a temperature of the storage system.
- the storage system further comprises a voltage adjuster in communication with the power supply and the controller, wherein the voltage adjuster is configured to adjust the voltage supplied to the memory by the power supply in accordance with an instruction from the controller.
- the memory comprises a three-dimensional memory.
- the storage system is embedded in a host.
- the storage system is removably connected to a host.
- FIG. 1A is a block diagram illustrating a non-volatile storage system 100 according to an embodiment of the subject matter described herein.
- non-volatile storage system 100 includes a controller 102 and non-volatile memory that may be made up of one or more non-volatile memory die 104 .
- the term die refers to the collection of non-volatile memory cells, and associated circuitry for managing the physical operation of those non-volatile memory cells, that are formed on a single semiconductor substrate.
- Controller 102 interfaces with a host system and transmits command sequences for read, program, and erase operations to non-volatile memory die 104 .
- the controller 102 (which may be a flash memory controller) can take the form of processing circuitry, a microprocessor or processor, and a computer-readable medium that stores computer-readable program code (e.g., firmware) executable by the (micro)processor, logic gates, switches, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, for example.
- the controller 102 can be configured with hardware and/or firmware to perform the various functions described below and shown in the flow diagrams. Also, some of the components shown as being internal to the controller can also be stored external to the controller, and other components can be used. Additionally, the phrase “operatively in communication with” could mean directly in communication with or indirectly (wired or wireless) in communication with through one or more components, which may or may not be shown or described herein.
- a flash memory controller is a device that manages data stored on flash memory and communicates with a host, such as a computer or electronic device.
- a flash memory controller can have various functionality in addition to the specific functionality described herein.
- the flash memory controller can format the flash memory to ensure the memory is operating properly, map out bad flash memory cells, and allocate spare cells to be substituted for future failed cells. Some part of the spare cells can be used to hold firmware to operate the flash memory controller and implement other features.
- the flash memory controller can convert the logical address received from the host to a physical address in the flash memory.
- the flash memory controller can also perform various memory management functions, such as, but not limited to, wear leveling (distributing writes to avoid wearing out specific blocks of memory that would otherwise be repeatedly written to) and garbage collection (after a block is full, moving only the valid pages of data to a new block, so the full block can be erased and reused).
- wear leveling distributing writes to avoid wearing out specific blocks of memory that would otherwise be repeatedly written to
- garbage collection after a block is full, moving only the valid pages of data to a new block, so the full block can be erased and reused).
- Non-volatile memory die 104 may include any suitable non-volatile storage medium, including NAND flash memory cells and/or NOR flash memory cells.
- the memory cells can take the form of solid-state (e.g., flash) memory cells and can be one-time programmable, few-time programmable, or many-time programmable.
- the memory cells can also be single-level cells (SLC), multiple-level cells (MLC), triple-level cells (TLC), or use other memory cell level technologies, now known or later developed.
- the memory cells can be fabricated in a two-dimensional or three-dimensional fashion.
- the interface between controller 102 and non-volatile memory die 104 may be any suitable flash interface, such as Toggle Mode 200 , 400 , or 800 .
- storage system 100 may be a card based system, such as a secure digital (SD) or a micro secure digital (micro-SD) card. In an alternate embodiment, storage system 100 may be part of an embedded storage system.
- SD secure digital
- micro-SD micro secure digital
- non-volatile storage system 100 (sometimes referred to herein as a storage module) includes a single channel between controller 102 and non-volatile memory die 104
- the subject matter described herein is not limited to having a single memory channel.
- 2, 4, 8 or more NAND channels may exist between the controller and the NAND memory device, depending on controller capabilities.
- more than a single channel may exist between the controller and the memory die, even if a single channel is shown in the drawings.
- FIG. 1B illustrates a storage module 200 that includes plural non-volatile storage systems 100 .
- storage module 200 may include a storage controller 202 that interfaces with a host and with storage system 204 , which includes a plurality of non-volatile storage systems 100 .
- the interface between storage controller 202 and non-volatile storage systems 100 may be a bus interface, such as a serial advanced technology attachment (SATA) or peripheral component interface express (PCIe) interface.
- Storage module 200 in one embodiment, may be a solid state drive (SSD), such as found in portable computing devices, such as laptop computers, and tablet computers.
- SSD solid state drive
- FIG. 1C is a block diagram illustrating a hierarchical storage system.
- a hierarchical storage system 250 includes a plurality of storage controllers 202 , each of which controls a respective storage system 204 .
- Host systems 252 may access memories within the storage system via a bus interface.
- the bus interface may be an NVMe or fiber channel over Ethernet (FCoE) interface.
- FCoE fiber channel over Ethernet
- the system illustrated in FIG. 1C may be a rack mountable mass storage system that is accessible by multiple host computers, such as would be found in a data center or other location where mass storage is needed.
- FIG. 2A is a block diagram illustrating components of controller 102 in more detail.
- Controller 102 includes a front end module 108 that interfaces with a host, a back end module 110 that interfaces with the one or more non-volatile memory die 104 , and various other modules that perform functions which will now be described in detail.
- a module may take the form of a packaged functional hardware unit designed for use with other components, a portion of a program code (e.g., software or firmware) executable by a (micro)processor or processing circuitry that usually performs a particular function of related functions, or a self-contained hardware or software component that interfaces with a larger system, for example.
- Modules of the controller 102 may include an overheating handling module 111 , which is discussed in more detail below, and can be implemented in hardware or software/firmware.
- a buffer manager/bus controller 114 manages buffers in random access memory (RAM) 116 and controls the internal bus arbitration of controller 102 .
- a read only memory (ROM) 118 stores system boot code. Although illustrated in FIG. 2A as located separately from the controller 102 , in other embodiments one or both of the RAM 116 and ROM 118 may be located within the controller. In yet other embodiments, portions of RAM and ROM may be located both within the controller 102 and outside the controller.
- Front end module 108 includes a host interface 120 and a physical layer interface (PHY) 122 that provide the electrical interface with the host or next level storage controller.
- PHY physical layer interface
- the choice of the type of host interface 120 can depend on the type of memory being used. Examples of host interfaces 120 include, but are not limited to, SATA, SATA Express, SAS, Fibre Channel, USB, PCIe, and NVMe.
- the host interface 120 typically facilitates transfer for data, control signals, and timing signals.
- Back end module 110 includes an error correction controller (ECC) engine 124 that encodes the data bytes received from the host, and decodes and error corrects the data bytes read from the non-volatile memory.
- ECC error correction controller
- a command sequencer 126 generates command sequences, such as program and erase command sequences, to be transmitted to non-volatile memory die 104 .
- a RAID (Redundant Array of Independent Drives) module 128 manages generation of RAID parity and recovery of failed data. The RAID parity may be used as an additional level of integrity protection for the data being written into the memory device 104 . In some cases, the RAID module 128 may be a part of the ECC engine 124 .
- a memory interface 130 provides the command sequences to non-volatile memory die 104 and receives status information from non-volatile memory die 104 .
- memory interface 130 may be a double data rate (DDR) interface, such as a Toggle Mode 200 , 400 , or 800 interface.
- DDR double data rate
- a flash control layer 132 controls the overall operation of back end module 110 .
- the storage system 100 also includes other discrete components 140 , such as external electrical interfaces, external RAM, resistors, capacitors, or other components that may interface with controller 102 .
- other discrete components 140 such as external electrical interfaces, external RAM, resistors, capacitors, or other components that may interface with controller 102 .
- one or more of the physical layer interface 122 , RAID module 128 , media management layer 138 and buffer management/bus controller 114 are optional components that are not necessary in the controller 102 .
- FIG. 2B is a block diagram illustrating components of non-volatile memory die 104 in more detail.
- Non-volatile memory die 104 includes peripheral circuitry 141 and non-volatile memory array 142 .
- Non-volatile memory array 142 includes the non-volatile memory cells used to store data.
- the non-volatile memory cells may be any suitable non-volatile memory cells, including NAND flash memory cells and/or NOR flash memory cells in a two dimensional and/or three dimensional configuration.
- Non-volatile memory die 104 further includes a data cache 156 that caches data.
- Peripheral circuitry 141 includes a state machine 152 that provides status information to the controller 102 and a temperature sensor 153 that can detect the temperature of the memory.
- any suitable technology can be used to implement the temperature sensor 153 , including technology currently employed in conventional memory temperature sensors. Also, it should be noted that while the temperature sensor 153 is located in the memory die 104 in this embodiment, the temperature sensor 153 can be located in another component in the storage system 100 , such as the controller 102 , or can be a separate component in the storage system 100 .
- memory in a storage system can experience thermal instability in a variety of situations.
- high ambient temperature, data traffic, and workload, as well as the enclosure build of the storage system can have a detrimental impact on the storage system's hardware.
- Components in the storage system such as the memory array, the controller, or application-specific integrated circuits (ASICs), can malfunction under sustained thermal stress, which can lead to data integrity and system reliability failures, as well as a high-defective-parts-per-million (DPPM) number.
- DPPM high-defective-parts-per-million
- thermal throttling when the temperature of the storage system is above a certain threshold, the storage system can reduce the number of memory operations performed over a given time by, for example, slowing down the system clock or limiting the power or memory allocated to upcoming operations. So, depending on the target temperature to be achieved, these approaches to thermal throttling run the risk of degraded performance and severe temperature cross-effects on data written to the storage system.
- thermal throttling limits the number of memory operations that are performed in a given time (and, thus, the heat generated from performing those operations), thermal throttling does not address another, potentially greater, source of heat in the storage system: leakage current from transistors.
- Many components in the storage system 100 e.g., memory cells in the memory array 104 , the controller 102 , random access memory 116 , the ECC engine 124 , a central processing unit (CPU)/processor, application-specific integrated circuits (ASICs), analog circuitry, etc.
- the storage system 100 reduces the voltage supply (Vcc) to one or more components in the storage system 100 that contain transistors.
- the transistor's leakage current can also or instead be reduced by reducing temperature of the storage system 100 (e.g., with an external cooling device).)
- Vcc voltage supply
- the transistor's leakage current can also or instead be reduced by reducing temperature of the storage system 100 (e.g., with an external cooling device).
- reducing the voltage even a little has a big effect on the current (and, therefore, heat generated by the storage system 100 ). That is, by reducing the power consumption caused by excessive leakage currents at high temperature, this embodiment can be used to handle thermal instability on different storage system components in order to prevent further thermal damage and, thus, stabilize the storage system's behavior.
- FIGS. 4-7 The embodiment will be discussed through an illustrative example shown in FIGS. 4-7 .
- FIG. 4 shows another view of the storage system 100 of one embodiment.
- the storage system 100 comprises a memory 104 (here, a plurality of NAND packages), a controller 102 (here, including an application-specific integrated circuit (ASIC), an analog “top” layer, and RAM), a power supply 400 (here, a power integrated circuit (IC)), and one or more temperature sensors 153 (which can be located anywhere in the storage system 100 (e.g., in the memory 104 or elsewhere)).
- the power supply 400 receives power from a host, regulates the power, and supplies it to the NAND dies 104 and to the controller ASIC 102
- FIG. 5 is a block diagram showing the power supply 400 of one embodiment in more detail. It should be understood that FIG. 5 shows one implementation and that other implementations can be used. As shown in FIG. 5 , in this embodiment, the power supply 400 comprises low-drop out (LDO) regulators 520 , 550 . The power supply 400 also comprises several buck converters 530 , 540 , 560 , 570 , which are DC-to-DC power converters that step down voltage.
- LDO low-drop out
- the output of LDO 520 is provided as input to a 1.8 V always-on domain of the controller ASIC 102
- the output of LDO 550 is provided as input to 0.9V LDO logic circuitry of the controller ASIC 102
- the output of buck 530 is provided as input to NAND IO on the controller ASIC 102 and on the memory die 104
- the output of buck 540 is provided to the NAND die 104
- the output of buck 560 is provided as input to the core of the controller ASIC 102
- the output of buck 570 is provided as input to the 0.9V always-on domain of the controller ASIC 102 .
- the DPS2 state refers to an operating state in which the NAND 104 is on, but parts of the controller ASIC 102 may be off. This is a form of standby where the NAND 104 is still on.
- DPS3 refers to an operating state where all of the components are in standby mode.
- the temperature sensor 153 is in communication with the LDOs and bucks and provides a temperature control (Temp_ctrl) signal to those components. Those components can change the ratio R according to the Temp_cntl state (e.g., 1 or 0 for 2 states using one bit, 4 control states for 4 temperature zones using 2 bits, etc.). This is an implementation of the overheating handling module 111 mentioned above.
- the temperature sensor 153 merely provide an indication of temperature, and the controller 102 or some other component makes the initial assessment as to whether the temperature is above a threshold.
- This embodiment uses this ratio to handle overheating of the storage system 100 .
- the temperature sensor 153 can change the value of the Temp_cntl state from 0 to 1 (or vice versa), assuming a two-state implementation.
- All of the LDOs and bucks can be responsive to the Temp_cntl state change, or logic can be put in place so that some (but not all) of the LDOs and/or bucks respond to the Temp_cntl state change at a given time. In this way, the power supply 400 can lower the voltage supplied to additional components, if needed.
- the graphs in FIG. 6 illustrate these operations.
- the temperature of the storage system 100 increases.
- the storage system 100 enacts a thermal throttling procedure (e.g., reducing the number of operations performed over time) in an attempt to reduce the temperature.
- thermal throttling is not effective, and the temperature continues to rise.
- the storage system 100 reduces the power supplied to various components, which causes the leakage current to dramatically decrease (e.g., by 2-3 orders of magnitude because leakage current is a function of Vcc in an exponential fashion), which causes the temperature to drop.
- thermal throttling can continue to take place or may be foregone in favor of the reduced power supply approach.
- the power supply can be brought back to its previous level.
- FIG. 7 is a flow chart 700 that describes the acts in this example in more detail.
- there is periodic temperature monitoring e.g., every one second
- the temperature sensor 153 it is then determined whether the temperature is above a threshold (act 720 ). If it isn't, no thermal throttling is needed (act 730 ). If it is, the storage system 100 enables thermal throttling by the resource server (e.g., component(s) in the controller 102 that provided power tokens to maintain a power budget) (act 740 ) and continues to monitor the temperature (act 750 ).
- the resource server e.g., component(s) in the controller 102 that provided power tokens to maintain a power budget
- the thermal throttling procedure was successful, and there is no need to reduce the power supplied to transistor-based components (act 770 ). However, if the temperature hasn't been reduced, the power supplied by the power supply 400 to the transistor-based components is reduced (e.g., from 3 V to 2.8 V) (act 780 ). As noted in act 790 , this can be done on a component-by-component basis until the temperature is reduced.
- the storage system 100 provides dynamic workload-based voltage scaling.
- Storage system power rails e.g., the Vdd lines from the power IC 400 to the NAND packages 104 in FIG. 4
- PMIC power management IC
- Voltage at the output of these regulators is set in such a way to sustain worst-case current consumption by the rail consumers.
- Rail consumers often have a minimum operating voltage.
- the regulator can be set with a margin, so that any instantaneous current draw would not pull the rail voltage below the minimum operating voltage.
- the voltage drop is proportional to the amount of instantaneous current consumption.
- the voltage margin amount is typically configured to sustain the largest voltage drop caused by the highest instantaneous current consumption.
- power consumption is proportional to the power rail voltage.
- the rail voltage level would be set as low as possible.
- a voltage margin is typically set larger than what is required. For example, for a 32 NAND die SSD, the worst-case assumption would be 32 NAND dies working simultaneously, although, in a typical case, only 8 of these NAND dies are working simultaneously.
- the regulation circuits can be “beefed up,” meaning using a more-expensive regulator architecture and selecting large regulator capacitors, strong inductors, and large transistors, which will solidify the output voltage to enable a smaller margin.
- the nominal voltage can be bumped up (e.g., using 3.1 V to help ensure a minimum voltage of 2.9 V), but this may sacrifice system level power consumption and performance.
- these problems are addressed by dynamically adjusting the storage system rail voltage level based on projected instantaneous current consumption.
- one implementation addresses the NAND core voltage rail as the NAND is a dominant consumer in an SSD application. It should be noted that while the below description discusses a specific application for NAND core voltage, other implementations can be used. In general, this embodiment, allows a memory operation only after it has been determined that the NAND voltage level is properly set to allow a correct NAND operation. This embodiment provides the advantage of reducing voltage levels to a minimum possible at potentially all times; hence, typically saving power. This embodiment will be discussed in more detail in conjunction with the block diagram for FIG. 8 .
- this embodiment in addition to the memory dies 104 , power supply (power management integrated circuit (PMIC)) 400 , and controller 102 , this embodiment has a voltage adjustor 800 . Also in this embodiment, the controller 102 has an incoming operations queue 820 and a resource server 830 , which comprises an operation manager 840 , a consumption projector 850 , and a voltage goal per current lookup structure 860 .
- PMIC power management integrated circuit
- the PMIC 400 is responsible for regulating voltage and has a communication interface with the voltage adjustor 800 .
- the PMIC 400 may receive requested voltage instructions from the voltage adjustor 800 and may provide feedback indicating the requested voltage has been reached.
- the voltage adjustor 800 is an element that has an interface to the PMIC 400 and can adjust NAND rail voltage based on requested voltage from the operation manager 840 .
- the voltage adjustor 800 has an output indicating the requested voltage was achieved, and this output provides feedback to the operation manager 840
- the operation manager 840 is an element that can allow or inhibit next NAND operation based on projected consumption vs. voltage setting and other conditions.
- the operation manager 840 is part of the resource server 830 , which, as noted above, also comprises the consumption projector 850 and voltage goal per currently lookup structure 860 .
- the consumption projector 850 is an element that has the information about requested NAND rail consumption and can project the worst case instantaneous consumption based on this information at any time. When a new NAND operation is requested, the consumption projector 850 can add the request consumption to the total. When NAND operation completes, the consumption projector 850 can subtract the operation consumption from the total.
- the voltage goal per current lookup structure 860 is an element that maintains goal minimum voltage levels per different consumption levels.
- the operation manager 840 In operation, when a new NAND operation request arrives or an existing operation completes, the operation manager 840 gets notified. The operation manager 840 uses the consumption projector to determine the upcoming instantaneous current consumption. The operation manager 840 then locates the current consumption level in the voltage goal per current lookup structure 860 and fetches the voltage level goal. The operation manager 840 compares the goal voltage level with requested voltage level. If the goal voltage level is lower than the requested voltage level, the requested voltage is updated to be the goal voltage level, and the voltage adjustor 800 is updated. If requested voltage level is lower than actual voltage level reported by the voltage adjustor 800 , the operation manager 840 inhibits the new NAND operation until after the actual voltage level reaches the required level.
- the resource server 830 When a NAND operation completes, the resource server 830 reevaluates all conditions and may allow pending NAND operation if all conditions have been met accordingly. When command execution done, and there are no outstanding commands, the resource server 830 may set the voltage to its minimum value.
- the communication interface between the PMIC 400 and voltage adjuster 800 can be implemented in any suitable way.
- the communication interface is implemented with binary signals indicating the request.
- a single signal can indicate a request to switch between two voltage levels.
- the communication interface can include several signals (e.g., 4 signals to convey requests to shift between 16 possible voltage levels).
- the communication interface can be an analog signal for requesting virtually unlimited voltage levels.
- the communication interface can be a communication bus (e.g., I2C to save signals and to request for virtually unlimited voltage settings).
- the voltage adjustor indication that voltage has reached requested level may be based on a predetermined timeout. For example, it may take the PMIC 400 a known amount of 70 us to reach a new voltage level. Alternatively, the PMIC 400 may monitor its output voltage to determine when the requested level has been reached. The PMIC 400 may have a feedback signal to the voltage adjustor 800 indicating the event upon occurrence. Alternatively, the voltage adjustor 800 can use a communication interface to request an update and inquire current voltage level.
- the voltage goal per current lookup structure 860 can be set statically per device characterization.
- the SSD may go through training sequence in which multiple NAND operations are issued at different voltage levels and operations are inspected for pass or fail condition.
- the training process may be iterative starting with high voltage and reducing voltage gradually. When a first “fail” condition is reached, a good voltage level can be determined, and the lookup updated. This training process can be implemented at SSD production phase or even regularly throughout operation.
- the structure 860 can be expanded to include temperature as part of the controlling factor.
- the structure 860 is implemented as a three-dimensional table, where a voltage-per-current-per-temperature look-up is used to provide a different minimum voltage margin as a function of temperature of the storage system 100 . In this way, when the temperature is higher than a threshold for thermal throttling, the voltage goal can be lowered to provide leakage reduction while still making the memory operational.
- the structure 860 can have two mechanisms: (1) voltage adjustment as a function of current consumption (minimizing voltage margin at all times regardless of temperature) and (2) voltage adjustment as a function of temperature (minimizing voltage margin at high temperature). These two mechanisms can work independently.
- mechanism (1) can allow for a lower voltage margin than mechanism (2) at light loads (e.g., at lower current consumption), and mechanism (1) can be used at high temperature, when minimizing voltage margin is most needed.
- Mechanism (1) can have some associated overhead that is worth incurring only under certain conditions.
- any suitable type of memory can be used.
- Semiconductor memory devices include volatile memory devices, such as dynamic random access memory (“DRAM”) or static random access memory (“SRAM”) devices, non-volatile memory devices, such as resistive random access memory (“ReRAM”), electrically erasable programmable read only memory (“EEPROM”), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory (“FRAM”), and magnetoresistive random access memory (“MRAM”), and other semiconductor elements capable of storing information.
- volatile memory devices such as dynamic random access memory (“DRAM”) or static random access memory (“SRAM”) devices
- non-volatile memory devices such as resistive random access memory (“ReRAM”), electrically erasable programmable read only memory (“EEPROM”), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory (“FRAM”), and magnetoresistive random access memory (“MRAM”), and other semiconductor elements capable of storing information.
- ReRAM resistive random access memory
- the memory devices can be formed from passive and/or active elements, in any combinations.
- passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity switching storage element, such as an anti-fuse, phase change material, etc., and optionally a steering element, such as a diode, etc.
- active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements containing a charge storage region, such as a floating gate, conductive nanoparticles, or a charge storage dielectric material.
- Multiple memory elements may be configured so that they are connected in series or so that each element is individually accessible.
- flash memory devices in a NAND configuration typically contain memory elements connected in series.
- a NAND memory array may be configured so that the array is composed of multiple strings of memory in which a string is composed of multiple memory elements sharing a single bit line and accessed as a group.
- memory elements may be configured so that each element is individually accessible, e.g., a NOR memory array.
- NAND and NOR memory configurations are examples, and memory elements may be otherwise configured.
- the semiconductor memory elements located within and/or over a substrate may be arranged in two or three dimensions, such as a two dimensional memory structure or a three dimensional memory structure.
- the semiconductor memory elements are arranged in a single plane or a single memory device level.
- memory elements are arranged in a plane (e.g., in an x-z direction plane) which extends substantially parallel to a major surface of a substrate that supports the memory elements.
- the substrate may be a wafer over or in which the layer of the memory elements are formed or it may be a carrier substrate which is attached to the memory elements after they are formed.
- the substrate may include a semiconductor such as silicon.
- the memory elements may be arranged in the single memory device level in an ordered array, such as in a plurality of rows and/or columns. However, the memory elements may be arrayed in non-regular or non-orthogonal configurations.
- the memory elements may each have two or more electrodes or contact lines, such as bit lines and word lines.
- a three dimensional memory array is arranged so that memory elements occupy multiple planes or multiple memory device levels, thereby forming a structure in three dimensions (i.e., in the x, y and z directions, where the y direction is substantially perpendicular and the x and z directions are substantially parallel to the major surface of the substrate).
- a three dimensional memory structure may be vertically arranged as a stack of multiple two dimensional memory device levels.
- a three dimensional memory array may be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in the y direction) with each column having multiple memory elements in each column.
- the columns may be arranged in a two dimensional configuration, e.g., in an x-z plane, resulting in a three dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes.
- Other configurations of memory elements in three dimensions can also constitute a three dimensional memory array.
- the memory elements may be coupled together to form a NAND string within a single horizontal (e.g., x-z) memory device levels.
- the memory elements may be coupled together to form a vertical NAND string that traverses across multiple horizontal memory device levels.
- Other three dimensional configurations can be envisioned wherein some NAND strings contain memory elements in a single memory level while other strings contain memory elements which span through multiple memory levels.
- Three dimensional memory arrays may also be designed in a NOR configuration and in a ReRAM configuration.
- a monolithic three dimensional memory array typically, one or more memory device levels are formed above a single substrate.
- the monolithic three dimensional memory array may also have one or more memory layers at least partially within the single substrate.
- the substrate may include a semiconductor such as silicon.
- the layers constituting each memory device level of the array are typically formed on the layers of the underlying memory device levels of the array.
- layers of adjacent memory device levels of a monolithic three dimensional memory array may be shared or have intervening layers between memory device levels.
- non-monolithic stacked memories can be constructed by forming memory levels on separate substrates and then stacking the memory levels atop each other. The substrates may be thinned or removed from the memory device levels before stacking, but as the memory device levels are initially formed over separate substrates, the resulting memory arrays are not monolithic three dimensional memory arrays. Further, multiple two dimensional memory arrays or three dimensional memory arrays (monolithic or non-monolithic) may be formed on separate chips and then packaged together to form a stacked-chip memory device.
- Associated circuitry is typically required for operation of the memory elements and for communication with the memory elements.
- memory devices may have circuitry used for controlling and driving memory elements to accomplish functions such as programming and reading.
- This associated circuitry may be on the same substrate as the memory elements and/or on a separate substrate.
- a controller for memory read-write operations may be located on a separate controller chip and/or on the same substrate as the memory elements.
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- Memory in a storage system (e.g., a solid state drive (SSD)) can experience thermal instability in a variety of situations. For example, high ambient temperature, data traffic, and workload, as well as the enclosure build of the storage system, can have a detrimental impact on the storage system's hardware. Components in the storage system, such as the memory array, the controller, or application-specific integrated circuits (ASICs), can malfunction under sustained thermal stress, which can lead to data integrity and system reliability failures, as well as a high-defective-parts-per-million (DPPM) number. Some storage systems use thermal throttling in an attempt to handle the overheating problem. With thermal throttling, when the temperature of the storage system is above a certain threshold, the storage system can reduce the number of memory operations performed over a given time by, for example, slowing down the system clock or limiting the power or memory allocated to upcoming operations.
-
FIG. 1A is a block diagram of a non-volatile storage system of an embodiment. -
FIG. 1B is a block diagram illustrating a storage module of an embodiment. -
FIG. 1C is a block diagram illustrating a hierarchical storage system of an embodiment. -
FIG. 2A is a block diagram illustrating components of the controller of the non-volatile storage system illustrated inFIG. 1A according to an embodiment. -
FIG. 2B is a block diagram illustrating components of the non-volatile memory storage system illustrated inFIG. 1A according to an embodiment. -
FIG. 3 is a graph showing leakage current of a transistor used in a storage system of an embodiment. -
FIG. 4 is a block diagram of a memory system of an embodiment. -
FIG. 5 is a block diagram of a power supply of an embodiment. -
FIG. 6 are graphs of an embodiment showing temperature, power, and voltage over time. -
FIG. 7 is a flow chart of a method of an embodiment for handling overheating of a storage system. -
FIG. 8 is block diagram of a storage system of another embodiment. - Overview
- By way of introduction, the below embodiments relate to a storage system and method for handling overheating of the storage system. In one embodiment, a method is provided that is perfoiiiied in a storage system comprising a memory, a temperature sensor, and a power supply. The method comprises determining whether a temperature sensed by the temperature sensor is above a first threshold temperature; and in response to determining that the temperature sensed by the temperature sensor is above the first threshold temperature, lowering a voltage supplied by the power supply to one or more components in the storage system comprising transistors, wherein lowering the voltage supplied to the one or more components reduces temperature by reducing leakage current of the transistors.
- In some embodiments, the method further comprises lowering the voltage supplied by the power supply to additional components in the storage system comprising transistors until the temperature sensed by the temperature sensor is lower than the first threshold temperature.
- In some embodiments, the method further comprises prior to lowering the voltage supplied by the power supply: determining whether the temperature sensed by the temperature sensor is above a second threshold temperature, wherein the second threshold temperature is lower than the first threshold temperature; and in response to determining that the temperature sensed by the temperature sensor is above the second threshold temperature, performing a thermal throttling operation on the memory.
- In some embodiments, the one or more components comprising one or more of the following: the memory, a controller, a random access memory, and analog circuitry.
- In some embodiments, the memory comprises a three-dimensional memory.
- In some embodiments, the storage system is embedded in a host.
- In some embodiments, the storage system is removably connected to a host.
- In another embodiment, a storage system is provided comprising a memory; means for determining whether a temperature in the storage system is greater than a first temperature; and means for in response to determining that the temperature in the storage system is greater than a first temperature, lowering a voltage supplied to at least one transistor-based component in the storage system, wherein lowering the voltage supplied to the at least one transistor-based component in the storage system reduces the temperature in the storage system by reducing transistor leakage current.
- In some embodiments, the storage system further comprises means for lowering the voltage supplied to the memory to a voltage needed to execute a particular memory operation.
- In some embodiments, the storage system further comprises means for prior to lowering the voltage supplied to the at least one transistor-based component in the storage system: determining whether the temperature in the storage system is greater than a second temperature, wherein the second temperature is lower than the first temperature; and in response to determining that the temperature in the storage system is greater than the second temperature, performing a thermal throttling operation on the memory.
- In some embodiments, the at least one transistor-based component in the storage system comprising one or more of the following: the memory, a controller, a random access memory, and analog circuitry.
- In some embodiments, the memory comprises a three-dimensional memory.
- In some embodiments, the storage system is embedded in a host.
- In some embodiments, the storage system further comprises the storage system is removably connected to a host.
- In another embodiment, a storage system is provided comprising a memory; a power supply; and a controller in communication with the memory and the power supply. The controller is configured to: determine how much voltage is required to execute a memory operation; compare the voltage required to execute the memory operation to a voltage currently being supplied from the power supply to the memory; in response to the voltage required to execute the memory operation being lower than the voltage currently being supplied from the power supply to the memory, lower the voltage being supplied from the power supply to the memory to match the voltage required to execute the memory operation; and in response to the voltage required to execute the memory operation being greater than the voltage currently being supplied from the power supply to the memory, delay execution of the memory operation until the voltage being supplied from the power supply to the memory increases to the voltage required to execute the memory operation.
- In some embodiments, the controller comprises: a current projector configured to determine an amount of current that will be consumed in executing the memory operation; and a voltage-goal-per-current-lookup structure configured to determine how much voltage is required to execute the memory operation based on the amount of current determined by the current projector.
- In some embodiments, the controller comprises: a current projector configured to determine an amount of current that will be consumed in executing the memory operation; and a voltage-goal-per-current-per-temperature-lookup structure configured to determine how much voltage is required to execute the memory operation based on the amount of current determined by the current projector and based on a temperature of the storage system.
- In some embodiments, the storage system further comprises a voltage adjuster in communication with the power supply and the controller, wherein the voltage adjuster is configured to adjust the voltage supplied to the memory by the power supply in accordance with an instruction from the controller.
- In some embodiments, the memory comprises a three-dimensional memory.
- In some embodiments, the storage system is embedded in a host.
- In some embodiments, the storage system is removably connected to a host.
- Other embodiments are possible, and each of the embodiments can be used alone or together in combination. Accordingly, various embodiments will now be described with reference to the attached drawings.
- Storage systems suitable for use in implementing aspects of these embodiments are shown in
FIGS. 1A-1C .FIG. 1A is a block diagram illustrating anon-volatile storage system 100 according to an embodiment of the subject matter described herein. Referring toFIG. 1A ,non-volatile storage system 100 includes acontroller 102 and non-volatile memory that may be made up of one or more non-volatile memory die 104. As used herein, the term die refers to the collection of non-volatile memory cells, and associated circuitry for managing the physical operation of those non-volatile memory cells, that are formed on a single semiconductor substrate.Controller 102 interfaces with a host system and transmits command sequences for read, program, and erase operations to non-volatile memory die 104. - The controller 102 (which may be a flash memory controller) can take the form of processing circuitry, a microprocessor or processor, and a computer-readable medium that stores computer-readable program code (e.g., firmware) executable by the (micro)processor, logic gates, switches, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, for example. The
controller 102 can be configured with hardware and/or firmware to perform the various functions described below and shown in the flow diagrams. Also, some of the components shown as being internal to the controller can also be stored external to the controller, and other components can be used. Additionally, the phrase “operatively in communication with” could mean directly in communication with or indirectly (wired or wireless) in communication with through one or more components, which may or may not be shown or described herein. - As used herein, a flash memory controller is a device that manages data stored on flash memory and communicates with a host, such as a computer or electronic device. A flash memory controller can have various functionality in addition to the specific functionality described herein. For example, the flash memory controller can format the flash memory to ensure the memory is operating properly, map out bad flash memory cells, and allocate spare cells to be substituted for future failed cells. Some part of the spare cells can be used to hold firmware to operate the flash memory controller and implement other features. In operation, when a host needs to read data from or write data to the flash memory, it will communicate with the flash memory controller. If the host provides a logical address to which data is to be read/written, the flash memory controller can convert the logical address received from the host to a physical address in the flash memory. (Alternatively, the host can provide the physical address.) The flash memory controller can also perform various memory management functions, such as, but not limited to, wear leveling (distributing writes to avoid wearing out specific blocks of memory that would otherwise be repeatedly written to) and garbage collection (after a block is full, moving only the valid pages of data to a new block, so the full block can be erased and reused).
- Non-volatile memory die 104 may include any suitable non-volatile storage medium, including NAND flash memory cells and/or NOR flash memory cells. The memory cells can take the form of solid-state (e.g., flash) memory cells and can be one-time programmable, few-time programmable, or many-time programmable. The memory cells can also be single-level cells (SLC), multiple-level cells (MLC), triple-level cells (TLC), or use other memory cell level technologies, now known or later developed. Also, the memory cells can be fabricated in a two-dimensional or three-dimensional fashion.
- The interface between
controller 102 and non-volatile memory die 104 may be any suitable flash interface, such asToggle Mode storage system 100 may be a card based system, such as a secure digital (SD) or a micro secure digital (micro-SD) card. In an alternate embodiment,storage system 100 may be part of an embedded storage system. - Although, in the example illustrated in
FIG. 1A , non-volatile storage system 100 (sometimes referred to herein as a storage module) includes a single channel betweencontroller 102 and non-volatile memory die 104, the subject matter described herein is not limited to having a single memory channel. For example, in some NAND storage system architectures (such as the ones shown inFIGS. 1B and 1C ), 2, 4, 8 or more NAND channels may exist between the controller and the NAND memory device, depending on controller capabilities. In any of the embodiments described herein, more than a single channel may exist between the controller and the memory die, even if a single channel is shown in the drawings. -
FIG. 1B illustrates astorage module 200 that includes pluralnon-volatile storage systems 100. As such,storage module 200 may include astorage controller 202 that interfaces with a host and withstorage system 204, which includes a plurality ofnon-volatile storage systems 100. The interface betweenstorage controller 202 andnon-volatile storage systems 100 may be a bus interface, such as a serial advanced technology attachment (SATA) or peripheral component interface express (PCIe) interface.Storage module 200, in one embodiment, may be a solid state drive (SSD), such as found in portable computing devices, such as laptop computers, and tablet computers. -
FIG. 1C is a block diagram illustrating a hierarchical storage system. Ahierarchical storage system 250 includes a plurality ofstorage controllers 202, each of which controls arespective storage system 204.Host systems 252 may access memories within the storage system via a bus interface. In one embodiment, the bus interface may be an NVMe or fiber channel over Ethernet (FCoE) interface. In one embodiment, the system illustrated inFIG. 1C may be a rack mountable mass storage system that is accessible by multiple host computers, such as would be found in a data center or other location where mass storage is needed. -
FIG. 2A is a block diagram illustrating components ofcontroller 102 in more detail.Controller 102 includes afront end module 108 that interfaces with a host, aback end module 110 that interfaces with the one or more non-volatile memory die 104, and various other modules that perform functions which will now be described in detail. A module may take the form of a packaged functional hardware unit designed for use with other components, a portion of a program code (e.g., software or firmware) executable by a (micro)processor or processing circuitry that usually performs a particular function of related functions, or a self-contained hardware or software component that interfaces with a larger system, for example. Modules of thecontroller 102 may include anoverheating handling module 111, which is discussed in more detail below, and can be implemented in hardware or software/firmware. - Referring again to modules of the
controller 102, a buffer manager/bus controller 114 manages buffers in random access memory (RAM) 116 and controls the internal bus arbitration ofcontroller 102. A read only memory (ROM) 118 stores system boot code. Although illustrated inFIG. 2A as located separately from thecontroller 102, in other embodiments one or both of theRAM 116 andROM 118 may be located within the controller. In yet other embodiments, portions of RAM and ROM may be located both within thecontroller 102 and outside the controller. -
Front end module 108 includes ahost interface 120 and a physical layer interface (PHY) 122 that provide the electrical interface with the host or next level storage controller. The choice of the type ofhost interface 120 can depend on the type of memory being used. Examples ofhost interfaces 120 include, but are not limited to, SATA, SATA Express, SAS, Fibre Channel, USB, PCIe, and NVMe. Thehost interface 120 typically facilitates transfer for data, control signals, and timing signals. -
Back end module 110 includes an error correction controller (ECC)engine 124 that encodes the data bytes received from the host, and decodes and error corrects the data bytes read from the non-volatile memory. Acommand sequencer 126 generates command sequences, such as program and erase command sequences, to be transmitted to non-volatile memory die 104. A RAID (Redundant Array of Independent Drives)module 128 manages generation of RAID parity and recovery of failed data. The RAID parity may be used as an additional level of integrity protection for the data being written into thememory device 104. In some cases, theRAID module 128 may be a part of theECC engine 124. Amemory interface 130 provides the command sequences to non-volatile memory die 104 and receives status information from non-volatile memory die 104. In one embodiment,memory interface 130 may be a double data rate (DDR) interface, such as aToggle Mode flash control layer 132 controls the overall operation ofback end module 110. - The
storage system 100 also includes otherdiscrete components 140, such as external electrical interfaces, external RAM, resistors, capacitors, or other components that may interface withcontroller 102. In alternative embodiments, one or more of thephysical layer interface 122,RAID module 128,media management layer 138 and buffer management/bus controller 114 are optional components that are not necessary in thecontroller 102. -
FIG. 2B is a block diagram illustrating components of non-volatile memory die 104 in more detail. Non-volatile memory die 104 includesperipheral circuitry 141 andnon-volatile memory array 142.Non-volatile memory array 142 includes the non-volatile memory cells used to store data. The non-volatile memory cells may be any suitable non-volatile memory cells, including NAND flash memory cells and/or NOR flash memory cells in a two dimensional and/or three dimensional configuration. Non-volatile memory die 104 further includes adata cache 156 that caches data.Peripheral circuitry 141 includes astate machine 152 that provides status information to thecontroller 102 and atemperature sensor 153 that can detect the temperature of the memory. Any suitable technology can be used to implement thetemperature sensor 153, including technology currently employed in conventional memory temperature sensors. Also, it should be noted that while thetemperature sensor 153 is located in the memory die 104 in this embodiment, thetemperature sensor 153 can be located in another component in thestorage system 100, such as thecontroller 102, or can be a separate component in thestorage system 100. - As noted above, memory in a storage system can experience thermal instability in a variety of situations. For example, high ambient temperature, data traffic, and workload, as well as the enclosure build of the storage system, can have a detrimental impact on the storage system's hardware. Components in the storage system, such as the memory array, the controller, or application-specific integrated circuits (ASICs), can malfunction under sustained thermal stress, which can lead to data integrity and system reliability failures, as well as a high-defective-parts-per-million (DPPM) number.
- Some storage systems use thermal throttling in an attempt to handle the overheating problem. With thermal throttling, when the temperature of the storage system is above a certain threshold, the storage system can reduce the number of memory operations performed over a given time by, for example, slowing down the system clock or limiting the power or memory allocated to upcoming operations. So, depending on the target temperature to be achieved, these approaches to thermal throttling run the risk of degraded performance and severe temperature cross-effects on data written to the storage system.
- Further, while thermal throttling limits the number of memory operations that are performed in a given time (and, thus, the heat generated from performing those operations), thermal throttling does not address another, potentially greater, source of heat in the storage system: leakage current from transistors. Many components in the storage system 100 (e.g., memory cells in the
memory array 104, thecontroller 102,random access memory 116, theECC engine 124, a central processing unit (CPU)/processor, application-specific integrated circuits (ASICs), analog circuitry, etc.) - contain transistors. As shown by the
circle 300 inFIG. 3 , even when the transistor is off/shut down (Vg=ground), current still flows through the transistor, and the amount of the transistor's leakage current is a function of a power supply, Vcc (which equals Vd in this example). The top curve represents a higher Vcc (Vd) supplied to the transistor, and the lower curve represents a lower Vcc. These curves are expressed by the following equation: I (drain leakage)=A×Exp(K*Vds)*Exp(S*Temperature), where A, K, S are coefficients from the material characterization, and Vds is the voltage drop from Vcc (which equals Vd in this situation) to Vs (which is ground in this situation). The transistor's leakage power is defined as: P (leakage)=I(leakage)*Vcc, or P=B*Vcc*Exp(K*Vcc)*Exp(S*Temperature). - In one embodiment, to reduce the transistor's leakage current, the
storage system 100 reduces the voltage supply (Vcc) to one or more components in thestorage system 100 that contain transistors. (The transistor's leakage current can also or instead be reduced by reducing temperature of the storage system 100 (e.g., with an external cooling device).) As can be seen from the graph inFIG. 3 , because of the exponential relationship between Vcc and transistor leakage current, reducing the voltage even a little has a big effect on the current (and, therefore, heat generated by the storage system 100). That is, by reducing the power consumption caused by excessive leakage currents at high temperature, this embodiment can be used to handle thermal instability on different storage system components in order to prevent further thermal damage and, thus, stabilize the storage system's behavior. The embodiment will be discussed through an illustrative example shown inFIGS. 4-7 . - Turning first to
FIG. 4 ,FIG. 4 shows another view of thestorage system 100 of one embodiment. As shown inFIG. 4 , thestorage system 100 comprises a memory 104 (here, a plurality of NAND packages), a controller 102 (here, including an application-specific integrated circuit (ASIC), an analog “top” layer, and RAM), a power supply 400 (here, a power integrated circuit (IC)), and one or more temperature sensors 153 (which can be located anywhere in the storage system 100 (e.g., in thememory 104 or elsewhere)). Thepower supply 400 receives power from a host, regulates the power, and supplies it to the NAND dies 104 and to thecontroller ASIC 102 -
FIG. 5 is a block diagram showing thepower supply 400 of one embodiment in more detail. It should be understood thatFIG. 5 shows one implementation and that other implementations can be used. As shown inFIG. 5 , in this embodiment, thepower supply 400 comprises low-drop out (LDO)regulators power supply 400 also comprisesseveral buck converters LDO 520 is provided as input to a 1.8 V always-on domain of thecontroller ASIC 102, the output ofLDO 550 is provided as input to 0.9V LDO logic circuitry of thecontroller ASIC 102, the output ofbuck 530 is provided as input to NAND IO on thecontroller ASIC 102 and on the memory die 104, the output ofbuck 540 is provided to the NAND die 104, the output ofbuck 560 is provided as input to the core of thecontroller ASIC 102, and the output ofbuck 570 is provided as input to the 0.9V always-on domain of thecontroller ASIC 102. As shown inFIG. 5 , there are three power domains of thepower supply 400 in this embodiment: always on, active during the DPS2 state, and off in the DPS2 and DPS3 states. The DPS2 state refers to an operating state in which theNAND 104 is on, but parts of thecontroller ASIC 102 may be off. This is a form of standby where theNAND 104 is still on. DPS3 refers to an operating state where all of the components are in standby mode. - The output voltage of the LDOs and bucks is a multiple of an internal reference voltage (e.g., 0.6 V) with a given ratio (R) (e.g., 1.8 V with R=3). In this embodiment, the
temperature sensor 153 is in communication with the LDOs and bucks and provides a temperature control (Temp_ctrl) signal to those components. Those components can change the ratio R according to the Temp_cntl state (e.g., 1 or 0 for 2 states using one bit, 4 control states for 4 temperature zones using 2 bits, etc.). This is an implementation of theoverheating handling module 111 mentioned above. In other embodiments, thetemperature sensor 153 merely provide an indication of temperature, and thecontroller 102 or some other component makes the initial assessment as to whether the temperature is above a threshold. - This embodiment uses this ratio to handle overheating of the
storage system 100. For example, when the temperature sensed by thetemperature sensor 153 is above a first threshold temperature, thetemperature sensor 153 can change the value of the Temp_cntl state from 0 to 1 (or vice versa), assuming a two-state implementation. When thecontroller 102 receives the Temp_cntl state, it determines that the temperature sensed by the temperature sensor is above the first threshold temperature, and changes the ratio (R) used by the LDOs and bucks to lower the voltage supplied by thepower supply 400 to one or more components in thestorage system 100 comprising transistors (e.g., output=R*(ref voltage). Lowering the voltage supplied to one or more components reduces temperature by reducing leakage current of the transistors. All of the LDOs and bucks can be responsive to the Temp_cntl state change, or logic can be put in place so that some (but not all) of the LDOs and/or bucks respond to the Temp_cntl state change at a given time. In this way, thepower supply 400 can lower the voltage supplied to additional components, if needed. - The graphs in
FIG. 6 illustrate these operations. With a certain, constant power supply, as leakage power increases, the temperature of thestorage system 100 increases. When the temperature exceeds a certain threshold (indicated by the left-most vertical line), thestorage system 100 enacts a thermal throttling procedure (e.g., reducing the number of operations performed over time) in an attempt to reduce the temperature. However, in this example, thermal throttling is not effective, and the temperature continues to rise. When the temperature exceeds another threshold (indicated by the middle vertical line), thestorage system 100 reduces the power supplied to various components, which causes the leakage current to dramatically decrease (e.g., by 2-3 orders of magnitude because leakage current is a function of Vcc in an exponential fashion), which causes the temperature to drop. During this time, thermal throttling can continue to take place or may be foregone in favor of the reduced power supply approach. In any event, when the temperature falls below another threshold (indicated by the right-most vertical line), the power supply can be brought back to its previous level. -
FIG. 7 is aflow chart 700 that describes the acts in this example in more detail. As shown inFIG. 7 , in this embodiment, there is periodic temperature monitoring (e.g., every one second) of the temperature sensor 153 (act 710). It is then determined whether the temperature is above a threshold (act 720). If it isn't, no thermal throttling is needed (act 730). If it is, thestorage system 100 enables thermal throttling by the resource server (e.g., component(s) in thecontroller 102 that provided power tokens to maintain a power budget) (act 740) and continues to monitor the temperature (act 750). If the temperature has been reduced, the thermal throttling procedure was successful, and there is no need to reduce the power supplied to transistor-based components (act 770). However, if the temperature hasn't been reduced, the power supplied by thepower supply 400 to the transistor-based components is reduced (e.g., from 3 V to 2.8 V) (act 780). As noted inact 790, this can be done on a component-by-component basis until the temperature is reduced. - In another embodiment, the
storage system 100 provides dynamic workload-based voltage scaling. Storage system power rails (e.g., the Vdd lines from thepower IC 400 to the NAND packages 104 inFIG. 4 ) are typically driven by on-board regulators, either discrete or integrated into a single IC (sometimes called power management IC or PMIC, for short). Voltage at the output of these regulators is set in such a way to sustain worst-case current consumption by the rail consumers. Rail consumers often have a minimum operating voltage. In order to maintain the minimum operating voltage, the regulator can be set with a margin, so that any instantaneous current draw would not pull the rail voltage below the minimum operating voltage. The voltage drop is proportional to the amount of instantaneous current consumption. The voltage margin amount is typically configured to sustain the largest voltage drop caused by the highest instantaneous current consumption. - Typically, power consumption is proportional to the power rail voltage. As such, in theory, the rail voltage level would be set as low as possible. However, in practice, since a storage system is often designed for a worst case scenario, a voltage margin is typically set larger than what is required. For example, for a 32 NAND die SSD, the worst-case assumption would be 32 NAND dies working simultaneously, although, in a typical case, only 8 of these NAND dies are working simultaneously. Alternatively, the regulation circuits can be “beefed up,” meaning using a more-expensive regulator architecture and selecting large regulator capacitors, strong inductors, and large transistors, which will solidify the output voltage to enable a smaller margin. However, this solution comes with component cost and area. As another alternative, the nominal voltage can be bumped up (e.g., using 3.1 V to help ensure a minimum voltage of 2.9 V), but this may sacrifice system level power consumption and performance.
- In one embodiment, these problems are addressed by dynamically adjusting the storage system rail voltage level based on projected instantaneous current consumption. Specifically, one implementation addresses the NAND core voltage rail as the NAND is a dominant consumer in an SSD application. It should be noted that while the below description discusses a specific application for NAND core voltage, other implementations can be used. In general, this embodiment, allows a memory operation only after it has been determined that the NAND voltage level is properly set to allow a correct NAND operation. This embodiment provides the advantage of reducing voltage levels to a minimum possible at potentially all times; hence, typically saving power. This embodiment will be discussed in more detail in conjunction with the block diagram for
FIG. 8 . - As shown in
FIG. 8 , in this embodiment, in addition to the memory dies 104, power supply (power management integrated circuit (PMIC)) 400, andcontroller 102, this embodiment has avoltage adjustor 800. Also in this embodiment, thecontroller 102 has anincoming operations queue 820 and aresource server 830, which comprises anoperation manager 840, aconsumption projector 850, and a voltage goal percurrent lookup structure 860. - In general, the
PMIC 400 is responsible for regulating voltage and has a communication interface with thevoltage adjustor 800. ThePMIC 400 may receive requested voltage instructions from thevoltage adjustor 800 and may provide feedback indicating the requested voltage has been reached. Thevoltage adjustor 800 is an element that has an interface to thePMIC 400 and can adjust NAND rail voltage based on requested voltage from theoperation manager 840. Thevoltage adjustor 800 has an output indicating the requested voltage was achieved, and this output provides feedback to theoperation manager 840 - In one embodiment, the
operation manager 840 is an element that can allow or inhibit next NAND operation based on projected consumption vs. voltage setting and other conditions. Theoperation manager 840 is part of theresource server 830, which, as noted above, also comprises theconsumption projector 850 and voltage goal per currentlylookup structure 860. In this embodiment, theconsumption projector 850 is an element that has the information about requested NAND rail consumption and can project the worst case instantaneous consumption based on this information at any time. When a new NAND operation is requested, theconsumption projector 850 can add the request consumption to the total. When NAND operation completes, theconsumption projector 850 can subtract the operation consumption from the total. The voltage goal percurrent lookup structure 860 is an element that maintains goal minimum voltage levels per different consumption levels. - In operation, when a new NAND operation request arrives or an existing operation completes, the
operation manager 840 gets notified. Theoperation manager 840 uses the consumption projector to determine the upcoming instantaneous current consumption. Theoperation manager 840 then locates the current consumption level in the voltage goal percurrent lookup structure 860 and fetches the voltage level goal. Theoperation manager 840 compares the goal voltage level with requested voltage level. If the goal voltage level is lower than the requested voltage level, the requested voltage is updated to be the goal voltage level, and thevoltage adjustor 800 is updated. If requested voltage level is lower than actual voltage level reported by thevoltage adjustor 800, theoperation manager 840 inhibits the new NAND operation until after the actual voltage level reaches the required level. - When a NAND operation completes, the
resource server 830 reevaluates all conditions and may allow pending NAND operation if all conditions have been met accordingly. When command execution done, and there are no outstanding commands, theresource server 830 may set the voltage to its minimum value. - The communication interface between the
PMIC 400 andvoltage adjuster 800 can be implemented in any suitable way. In one embodiment, the communication interface is implemented with binary signals indicating the request. For example, a single signal can indicate a request to switch between two voltage levels. Alternatively, the communication interface can include several signals (e.g., 4 signals to convey requests to shift between 16 possible voltage levels). Alternatively, the communication interface can be an analog signal for requesting virtually unlimited voltage levels. As another alternative, the communication interface can be a communication bus (e.g., I2C to save signals and to request for virtually unlimited voltage settings). - In one embodiment, the voltage adjustor indication that voltage has reached requested level may be based on a predetermined timeout. For example, it may take the PMIC 400 a known amount of 70 us to reach a new voltage level. Alternatively, the
PMIC 400 may monitor its output voltage to determine when the requested level has been reached. ThePMIC 400 may have a feedback signal to thevoltage adjustor 800 indicating the event upon occurrence. Alternatively, thevoltage adjustor 800 can use a communication interface to request an update and inquire current voltage level. - The voltage goal per
current lookup structure 860 can be set statically per device characterization. Alternatively, the SSD may go through training sequence in which multiple NAND operations are issued at different voltage levels and operations are inspected for pass or fail condition. The training process may be iterative starting with high voltage and reducing voltage gradually. When a first “fail” condition is reached, a good voltage level can be determined, and the lookup updated. This training process can be implemented at SSD production phase or even regularly throughout operation. - In an alternative embodiment, the
structure 860 can be expanded to include temperature as part of the controlling factor. In one embodiment, thestructure 860 is implemented as a three-dimensional table, where a voltage-per-current-per-temperature look-up is used to provide a different minimum voltage margin as a function of temperature of thestorage system 100. In this way, when the temperature is higher than a threshold for thermal throttling, the voltage goal can be lowered to provide leakage reduction while still making the memory operational. In one embodiment, thestructure 860 can have two mechanisms: (1) voltage adjustment as a function of current consumption (minimizing voltage margin at all times regardless of temperature) and (2) voltage adjustment as a function of temperature (minimizing voltage margin at high temperature). These two mechanisms can work independently. In general, mechanism (1) can allow for a lower voltage margin than mechanism (2) at light loads (e.g., at lower current consumption), and mechanism (1) can be used at high temperature, when minimizing voltage margin is most needed. Mechanism (1) can have some associated overhead that is worth incurring only under certain conditions. - Finally, as mentioned above, any suitable type of memory can be used. Semiconductor memory devices include volatile memory devices, such as dynamic random access memory (“DRAM”) or static random access memory (“SRAM”) devices, non-volatile memory devices, such as resistive random access memory (“ReRAM”), electrically erasable programmable read only memory (“EEPROM”), flash memory (which can also be considered a subset of EEPROM), ferroelectric random access memory (“FRAM”), and magnetoresistive random access memory (“MRAM”), and other semiconductor elements capable of storing information. Each type of memory device may have different configurations. For example, flash memory devices may be configured in a NAND or a NOR configuration.
- The memory devices can be formed from passive and/or active elements, in any combinations. By way of non-limiting example, passive semiconductor memory elements include ReRAM device elements, which in some embodiments include a resistivity switching storage element, such as an anti-fuse, phase change material, etc., and optionally a steering element, such as a diode, etc. Further by way of non-limiting example, active semiconductor memory elements include EEPROM and flash memory device elements, which in some embodiments include elements containing a charge storage region, such as a floating gate, conductive nanoparticles, or a charge storage dielectric material.
- Multiple memory elements may be configured so that they are connected in series or so that each element is individually accessible. By way of non-limiting example, flash memory devices in a NAND configuration (NAND memory) typically contain memory elements connected in series. A NAND memory array may be configured so that the array is composed of multiple strings of memory in which a string is composed of multiple memory elements sharing a single bit line and accessed as a group. Alternatively, memory elements may be configured so that each element is individually accessible, e.g., a NOR memory array. NAND and NOR memory configurations are examples, and memory elements may be otherwise configured.
- The semiconductor memory elements located within and/or over a substrate may be arranged in two or three dimensions, such as a two dimensional memory structure or a three dimensional memory structure.
- In a two dimensional memory structure, the semiconductor memory elements are arranged in a single plane or a single memory device level. Typically, in a two dimensional memory structure, memory elements are arranged in a plane (e.g., in an x-z direction plane) which extends substantially parallel to a major surface of a substrate that supports the memory elements. The substrate may be a wafer over or in which the layer of the memory elements are formed or it may be a carrier substrate which is attached to the memory elements after they are formed. As a non-limiting example, the substrate may include a semiconductor such as silicon.
- The memory elements may be arranged in the single memory device level in an ordered array, such as in a plurality of rows and/or columns. However, the memory elements may be arrayed in non-regular or non-orthogonal configurations. The memory elements may each have two or more electrodes or contact lines, such as bit lines and word lines.
- A three dimensional memory array is arranged so that memory elements occupy multiple planes or multiple memory device levels, thereby forming a structure in three dimensions (i.e., in the x, y and z directions, where the y direction is substantially perpendicular and the x and z directions are substantially parallel to the major surface of the substrate).
- As a non-limiting example, a three dimensional memory structure may be vertically arranged as a stack of multiple two dimensional memory device levels. As another non-limiting example, a three dimensional memory array may be arranged as multiple vertical columns (e.g., columns extending substantially perpendicular to the major surface of the substrate, i.e., in the y direction) with each column having multiple memory elements in each column. The columns may be arranged in a two dimensional configuration, e.g., in an x-z plane, resulting in a three dimensional arrangement of memory elements with elements on multiple vertically stacked memory planes. Other configurations of memory elements in three dimensions can also constitute a three dimensional memory array.
- By way of non-limiting example, in a three dimensional NAND memory array, the memory elements may be coupled together to form a NAND string within a single horizontal (e.g., x-z) memory device levels. Alternatively, the memory elements may be coupled together to form a vertical NAND string that traverses across multiple horizontal memory device levels. Other three dimensional configurations can be envisioned wherein some NAND strings contain memory elements in a single memory level while other strings contain memory elements which span through multiple memory levels. Three dimensional memory arrays may also be designed in a NOR configuration and in a ReRAM configuration.
- Typically, in a monolithic three dimensional memory array, one or more memory device levels are formed above a single substrate. Optionally, the monolithic three dimensional memory array may also have one or more memory layers at least partially within the single substrate. As a non-limiting example, the substrate may include a semiconductor such as silicon. In a monolithic three dimensional array, the layers constituting each memory device level of the array are typically formed on the layers of the underlying memory device levels of the array. However, layers of adjacent memory device levels of a monolithic three dimensional memory array may be shared or have intervening layers between memory device levels.
- Then again, two dimensional arrays may be formed separately and then packaged together to form a non-monolithic memory device having multiple layers of memory. For example, non-monolithic stacked memories can be constructed by forming memory levels on separate substrates and then stacking the memory levels atop each other. The substrates may be thinned or removed from the memory device levels before stacking, but as the memory device levels are initially formed over separate substrates, the resulting memory arrays are not monolithic three dimensional memory arrays. Further, multiple two dimensional memory arrays or three dimensional memory arrays (monolithic or non-monolithic) may be formed on separate chips and then packaged together to form a stacked-chip memory device.
- Associated circuitry is typically required for operation of the memory elements and for communication with the memory elements. As non-limiting examples, memory devices may have circuitry used for controlling and driving memory elements to accomplish functions such as programming and reading. This associated circuitry may be on the same substrate as the memory elements and/or on a separate substrate. For example, a controller for memory read-write operations may be located on a separate controller chip and/or on the same substrate as the memory elements.
- One of skill in the art will recognize that this invention is not limited to the two dimensional and three dimensional structures described but cover all relevant memory structures within the spirit and scope of the invention as described herein and as understood by one of skill in the art.
- It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a definition of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of the claimed invention. Finally, it should be noted that any aspect of any of the embodiments described herein can be used alone or in combination with one another.
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/583,738 US10115471B1 (en) | 2017-05-01 | 2017-05-01 | Storage system and method for handling overheating of the storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/583,738 US10115471B1 (en) | 2017-05-01 | 2017-05-01 | Storage system and method for handling overheating of the storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
US10115471B1 US10115471B1 (en) | 2018-10-30 |
US20180315483A1 true US20180315483A1 (en) | 2018-11-01 |
Family
ID=63894993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/583,738 Active US10115471B1 (en) | 2017-05-01 | 2017-05-01 | Storage system and method for handling overheating of the storage system |
Country Status (1)
Country | Link |
---|---|
US (1) | US10115471B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210407554A1 (en) * | 2020-06-30 | 2021-12-30 | Changxin Memory Technologies, Inc. | Semiconductor device |
JP7500263B2 (en) | 2020-04-27 | 2024-06-17 | キオクシア株式会社 | MEMORY DEVICE AND METHOD FOR CALIBRATING TEMPERATURE SENSOR - Patent application |
US12111214B2 (en) | 2020-06-30 | 2024-10-08 | Changxin Memory Technologies, Inc. | Semiconductor device |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10446237B1 (en) | 2018-06-29 | 2019-10-15 | Micron Technology, Inc. | Temperature sensitive NAND programming |
US10679714B2 (en) * | 2018-09-12 | 2020-06-09 | Nxp B.V. | ROM cell with transistor body bias control circuit |
JP2020161098A (en) * | 2019-03-20 | 2020-10-01 | キオクシア株式会社 | Semiconductor storage device |
US11074946B2 (en) | 2019-12-05 | 2021-07-27 | Nxp B.V. | Temperature dependent voltage differential sense-amplifier |
TWI800777B (en) * | 2020-12-15 | 2023-05-01 | 宏碁股份有限公司 | Temperature control method and data storage system |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260894A1 (en) * | 2006-05-03 | 2007-11-08 | Aguilar Maximino Jr | Optimizing thermal performance using feed-back directed optimization |
US7620826B2 (en) * | 2006-03-20 | 2009-11-17 | Via Technologies, Inc. | Thermal throttling duty estimation methods and systems for a CPU |
US7681053B2 (en) * | 2005-11-29 | 2010-03-16 | International Business Machines Corporation | Thermal throttle control with minimal impact to interrupt latency |
US7721128B2 (en) * | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
US8255721B2 (en) * | 2008-06-19 | 2012-08-28 | Intel Corporation | Seamless frequency sequestering |
US8301873B2 (en) * | 2009-12-01 | 2012-10-30 | Getac Technology Corporation | Method and computer system for thermal throttling protection |
US9436628B2 (en) * | 2014-05-30 | 2016-09-06 | Apple Inc. | Thermal mitigation using selective I/O throttling |
US9459680B2 (en) * | 2012-07-26 | 2016-10-04 | Samsung Electronics Co., Ltd. | System on chip and temperature control method thereof |
US9575537B2 (en) * | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US20170177218A1 (en) * | 2015-12-22 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
US9746383B2 (en) * | 2004-05-24 | 2017-08-29 | Intel Corporation | Throttling memory in response to an internal temperature of a memory device |
US20180120871A1 (en) * | 2006-10-30 | 2018-05-03 | Intel Corporation | Memory module thermal management |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789037B2 (en) * | 1999-03-30 | 2004-09-07 | Intel Corporation | Methods and apparatus for thermal management of an integrated circuit die |
US7266031B2 (en) * | 2003-11-19 | 2007-09-04 | Infineon Technologies Ag | Internal voltage generator with temperature control |
US7268569B2 (en) * | 2004-12-28 | 2007-09-11 | Intel Corporation | Leakage current management |
US7400945B2 (en) * | 2005-03-23 | 2008-07-15 | Intel Corporation | On-die temperature monitoring in semiconductor devices to limit activity overload |
US8330476B2 (en) * | 2005-08-31 | 2012-12-11 | Ati Technologies Ulc | Dynamic voltage and power management by temperature monitoring |
US7590473B2 (en) * | 2006-02-16 | 2009-09-15 | Intel Corporation | Thermal management using an on-die thermal sensor |
US8118483B2 (en) * | 2006-06-21 | 2012-02-21 | Intel Corporation | Thermal sensor having toggle control |
WO2009008081A1 (en) * | 2007-07-12 | 2009-01-15 | Fujitsu Microelectronics Limited | Semiconductor device |
US20110093132A1 (en) * | 2009-10-19 | 2011-04-21 | Apple Inc. | Platform-independent thermal management of components in electronic devices |
US20120020157A1 (en) * | 2010-07-21 | 2012-01-26 | Aplus Flash Technology, Inc. | Novel high-temperature non-volatile memory design |
US8395440B2 (en) * | 2010-11-23 | 2013-03-12 | Arm Limited | Apparatus and method for controlling power gating in an integrated circuit |
US8710916B2 (en) * | 2011-02-03 | 2014-04-29 | Freescale Semiconductor, Inc. | Electronic circuit having shared leakage current reduction circuits |
US9658678B2 (en) * | 2011-03-31 | 2017-05-23 | Intel Corporation | Induced thermal gradients |
US20120323382A1 (en) * | 2011-06-15 | 2012-12-20 | Expanergy, Llc | Systems and methods to assess and optimize energy usage for a facility |
US8575993B2 (en) * | 2011-08-17 | 2013-11-05 | Broadcom Corporation | Integrated circuit with pre-heating for reduced subthreshold leakage |
EP2807347A2 (en) * | 2011-12-30 | 2014-12-03 | Scrutiny, INC. | Apparatus comprising frame (forced recuperation, aggregation and movement of exergy) |
US20150185088A1 (en) * | 2013-12-31 | 2015-07-02 | i4c Innovations Inc. | Microwave Radiometry Using Two Antennas |
US9489146B2 (en) * | 2014-12-09 | 2016-11-08 | Sandisk Technologies Llc | Memory system and method for selecting memory dies to perform memory access operations in based on memory die temperatures |
JP2016162476A (en) * | 2015-03-05 | 2016-09-05 | 株式会社東芝 | Semiconductor storage device |
US9245642B1 (en) * | 2015-03-30 | 2016-01-26 | Sandisk Technologies Inc. | Temperature dependent voltage to unselected drain side select transistor during program of 3D NAND |
US9620996B2 (en) * | 2015-04-10 | 2017-04-11 | Ossia Inc. | Wireless charging with multiple power receiving facilities on a wireless device |
US10501003B2 (en) * | 2015-07-17 | 2019-12-10 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device, lighting device, and vehicle |
US9959915B2 (en) * | 2015-12-11 | 2018-05-01 | Sandisk Technologies Llc | Voltage generator to compensate for process corner and temperature variations |
US9929643B2 (en) * | 2016-03-31 | 2018-03-27 | Nxp B.V. | Charge pump circuit and method for operating a charge pump circuit |
-
2017
- 2017-05-01 US US15/583,738 patent/US10115471B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9746383B2 (en) * | 2004-05-24 | 2017-08-29 | Intel Corporation | Throttling memory in response to an internal temperature of a memory device |
US7681053B2 (en) * | 2005-11-29 | 2010-03-16 | International Business Machines Corporation | Thermal throttle control with minimal impact to interrupt latency |
US7721128B2 (en) * | 2005-11-29 | 2010-05-18 | International Business Machines Corporation | Implementation of thermal throttling logic |
US7620826B2 (en) * | 2006-03-20 | 2009-11-17 | Via Technologies, Inc. | Thermal throttling duty estimation methods and systems for a CPU |
US20070260894A1 (en) * | 2006-05-03 | 2007-11-08 | Aguilar Maximino Jr | Optimizing thermal performance using feed-back directed optimization |
US20180120871A1 (en) * | 2006-10-30 | 2018-05-03 | Intel Corporation | Memory module thermal management |
US8255721B2 (en) * | 2008-06-19 | 2012-08-28 | Intel Corporation | Seamless frequency sequestering |
US8301873B2 (en) * | 2009-12-01 | 2012-10-30 | Getac Technology Corporation | Method and computer system for thermal throttling protection |
US9459680B2 (en) * | 2012-07-26 | 2016-10-04 | Samsung Electronics Co., Ltd. | System on chip and temperature control method thereof |
US9436628B2 (en) * | 2014-05-30 | 2016-09-06 | Apple Inc. | Thermal mitigation using selective I/O throttling |
US9575537B2 (en) * | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US20170177218A1 (en) * | 2015-12-22 | 2017-06-22 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7500263B2 (en) | 2020-04-27 | 2024-06-17 | キオクシア株式会社 | MEMORY DEVICE AND METHOD FOR CALIBRATING TEMPERATURE SENSOR - Patent application |
US20210407554A1 (en) * | 2020-06-30 | 2021-12-30 | Changxin Memory Technologies, Inc. | Semiconductor device |
US12111214B2 (en) | 2020-06-30 | 2024-10-08 | Changxin Memory Technologies, Inc. | Semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
US10115471B1 (en) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10115471B1 (en) | Storage system and method for handling overheating of the storage system | |
CN107767915B (en) | Adaptive temperature and memory parameter suppression | |
US9489146B2 (en) | Memory system and method for selecting memory dies to perform memory access operations in based on memory die temperatures | |
US9927986B2 (en) | Data storage device with temperature sensor and temperature calibration circuitry and method of operating same | |
US8473760B2 (en) | Memory system and server system | |
US10042416B2 (en) | Memory system and method for adaptive auto-sleep and background operations | |
US20190179685A1 (en) | Solid state memory system with low power error correction mechanism and method of operation thereof | |
US9916087B2 (en) | Method and system for throttling bandwidth based on temperature | |
US9846541B2 (en) | Memory system for controlling perforamce by adjusting amount of parallel operations | |
US20170371559A1 (en) | Systems and Methods for Optimizing Media Read Times | |
US20170242606A1 (en) | Methods and systems for transitioning to and from different storage device power states using host memory buffer (hmb) | |
US9880605B2 (en) | Method and system for throttling power consumption | |
KR102351660B1 (en) | Solid state memory system with power management mechanism and method of operation thereof | |
US10115437B1 (en) | Storage system and method for die-based data retention recycling | |
US20190235610A1 (en) | Memory system | |
US9665451B2 (en) | Method and device for distributing holdup energy to memory arrays | |
EP3705979B1 (en) | Ssd restart based on off-time tracker | |
US9658790B2 (en) | Memory system and method for power-based operation scheduling | |
US20200042238A1 (en) | Data storage device, method of operating the same, and storage system having the same | |
US10037172B2 (en) | Memory system and controlling method | |
US10218166B2 (en) | System and method for dynamic monitoring of controller current consumption | |
KR20200076846A (en) | Apparatuses that detect error of data stored in memory device and operating method thereof | |
US11747842B1 (en) | Multi-referenced power supply | |
US11797190B2 (en) | Data storage device and method for providing a temperature-driven variable storage capacity point | |
US20230400991A1 (en) | Data Storage Device and Method for Prediction-Based Improved Power-Loss Handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YANG, NIAN NILES;EREZ, ERAN;GUO, ZELEI;AND OTHERS;SIGNING DATES FROM 20170501 TO 20170502;REEL/FRAME:042231/0227 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:052915/0566 Effective date: 20200113 |
|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:059127/0001 Effective date: 20220203 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:064715/0001 Effective date: 20230818 Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067045/0156 Effective date: 20230818 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067567/0682 Effective date: 20240503 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:067982/0032 Effective date: 20240621 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS THE AGENT, ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:068762/0494 Effective date: 20240820 |