Preventive throttling adaptive thermal calibration
By generating multiple performance profiles and performing thermal calibration, the optimal configuration that minimizes thermal throttling is selected, thus solving the SSD overheating problem, achieving high-performance and stable operation, and avoiding performance degradation and potential damage caused by thermal throttling.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INNOGRIT TECH CO LTD
- Filing Date
- 2022-09-15
- Publication Date
- 2026-05-29
AI Technical Summary
Modern solid-state drives (SSDs) are prone to overheating when operating at high performance, leading to thermal throttling, which affects performance and may result in data loss or component damage. Existing technologies cannot effectively solve this problem.
By generating multiple performance profiles, performing thermal calibration, recording the highest temperature under different configurations, selecting the optimal profile that minimizes thermal throttling, and adaptively adjusting the operating mode of the storage system to avoid overheating.
Effectively reduces or prevents thermal throttling, maintains high-performance operation of SSDs, avoids data loss or component damage, and improves user experience.
Smart Images

Figure CN115525126B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the management of solid-state storage devices, and more particularly to the thermal management of solid-state storage devices. Background Technology
[0002] Thermal throttling is widely used in modern electronic systems to prevent overheating. To perform thermal throttling, processors typically reduce their clock frequency and command throughput to keep temperatures under control. Therefore, thermal throttling often results in performance degradation and a poor end-user experience.
[0003] Thermal throttling is also widely used in modern solid-state drives (SSDs) because heat generation in SSDs far exceeds heat dissipation. This is because SSDs have evolved to higher speeds and performance while their physical size and heat dissipation capabilities have remained largely unchanged. Therefore, thermal throttling has become an essential component of SSD system solutions to prevent overheating, which can lead to data loss or component damage. Summary of the Invention
[0004] This invention provides a storage system and method for thermal calibration and adaptation to the system's thermal environment. A set of performance profiles can be created, containing different performance milestones ranging from low to full performance. For each performance profile, thermal calibration can be performed, and the highest temperature of that performance profile can be recorded. For example, a first thermal calibration can be performed using a first performance profile to record a first highest temperature. A second thermal calibration can be performed using a second performance profile to record a second highest temperature. Based on the calibration results, during operation, a performance profile can be selected to minimize the likelihood of thermal throttling. Adaptive thermal calibration can be performed during storage system initialization, and thereafter when ambient temperature changes exceed a certain threshold, or when the number of thermal throttling events within a given time interval exceeds a threshold.
[0005] In one exemplary embodiment, a method is provided that may include: generating a set of performance profiles for a non-volatile memory system; performing thermal calibration by running a first test under a first performance profile and a second test under a second performance profile to obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile; selecting an optimal performance profile from the set of performance profiles based on comparing the first and second maximum temperatures with predetermined thresholds; and operating the non-volatile memory system under the optimal performance profile. Each of the set of performance profiles may include settings for the hardware components of the non-volatile memory system.
[0006] In another embodiment, a non-volatile memory system is provided, which may include a memory controller and a temperature sensor. The memory controller may be configured to: generate a set of performance profiles; perform thermal calibration by running a first test under a first performance profile and a second test under a second performance profile; obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile from readings of the temperature sensor; select an optimal performance profile from the set of performance profiles based on comparing the first and second maximum temperatures with predetermined temperature thresholds; and operate the non-volatile memory system under the optimal performance profile. Each of these performance profiles may include settings for the hardware components of the non-volatile memory system.
[0007] In another exemplary embodiment, the present disclosure may also include a non-transient machine-readable medium having executable instructions. When the executable instructions are executed by the storage controller of the non-volatile storage system, the storage controller may cause the storage controller to: generate a set of performance profiles; perform thermal calibration by running a first test under a first performance profile and a second test under a second performance profile; obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile from readings of temperature sensors of the non-volatile storage system; select an optimal performance profile from the set of performance profiles based on comparing the first maximum temperature and the second maximum temperature with predetermined temperature thresholds; and operate the non-volatile storage system under the optimal performance profile. Each of these performance profiles may include settings for the hardware components of the non-volatile storage system. Attached Figure Description
[0008] Figure 1 A non-volatile storage system according to an embodiment of the present invention is illustrated schematically.
[0009] Figure 2 This is a flowchart illustrating the selection of a performance profile for a non-volatile storage system according to an embodiment of the present invention. Detailed Implementation
[0010] Specific embodiments of the invention will now be described in detail with reference to the accompanying drawings. For consistency, similar elements in the various figures are indicated by similar reference numerals.
[0011] This invention provides a thermal calibration method to prevent or minimize thermal throttling of solid-state drives. As used herein, a non-volatile storage device can be a computer storage device that retains stored information after a power outage and can retrieve the stored information after a power outage (power off and on again).
[0012] Non-volatile storage devices may include NAND flash memory, NOR flash memory, magnetoresistive random access memory (MRAM), resistive random access memory (RRAM), phase-change random access memory (PCRAM), nanometer RAM, etc. In this specification, NAND flash memory may be used as an example to demonstrate the electrical mirroring technology implemented by the controller. However, these technologies can be implemented with other types of non-volatile storage devices according to various embodiments of the present invention.
[0013] Figure 1 A non-volatile storage system 100 according to an embodiment of the present invention is schematically illustrated. The non-volatile storage system 100 may include a storage controller 102 and a non-volatile storage device 104. When the non-volatile storage system 100 is coupled to a host via an interface (e.g., a Peripheral Component Interconnect Fast (PCIe) interface), the non-volatile storage system 100 can provide data storage and / or access to stored data to the host. The non-volatile storage device 104 may be a non-volatile memory (NVM), such as a NAND device. The storage controller 102 may be coupled to the non-volatile storage device 104 via a host interface (e.g., a NAND interface). It should be noted that the non-volatile storage system 100 may include multiple non-volatile storage devices, and the non-volatile storage device 104 may be shown as a representative of multiple non-volatile storage devices. In one embodiment, the non-volatile storage system 100 may be a solid-state drive (SSD).
[0014] The storage controller 102 may include a processor 106 and a non-transient computer-readable storage medium 108. The processor 106 may be a computer processor, such as, but not limited to, a microprocessor or microcontroller. The non-transient computer-readable storage medium 108 may be referred to as memory and may store software executable by the processor 106 to perform throttling prevention techniques according to the present invention. The storage controller 102 may be coupled to the non-transient computer-readable storage medium 108 via a memory interface (e.g., a DRAM interface).
[0015] The non-volatile memory system 100 may include a temperature sensor 110. The temperature sensor 110 can provide temperature readings. It should be noted that the non-volatile memory system 100 may include more than one temperature sensor, and temperature readings from any or all temperature sensors can be used for throttling prevention.
[0016] The storage controller 102 can control the settings of many hardware components of the non-volatile storage system 100, such as the processor clock frequency, host interface clock frequency, NAND interface clock frequency, memory interface clock frequency, and the driver strength and termination settings of individual interfaces. Under these settings, the non-volatile storage system 100 can have different thermal characteristics and different performance. A set of settings for the hardware components can be called a performance profile.
[0017] Different performance profiles may represent different performance milestones and thermal characteristics. For example, a performance profile with a higher clock frequency, stronger driver strength, and lower termination resistance setting may be referred to as a higher performance profile compared to another performance profile with a slower clock frequency, weaker driver strength, and higher termination resistance setting. A higher performance profile may provide faster read / write speeds than a lower performance profile. In at least one embodiment, the settings included in the performance profile may also include voltage settings. A lower voltage in a performance profile may save power and reduce heat dissipation compared to a higher voltage in another performance profile.
[0018] In some embodiments, a set of performance profiles can be built based on a general system performance benchmark. For non-volatile storage systems (such as SSDs), the general system performance benchmark may include sequential reads and sequential writes. For example, performance profiles can be created for sequential read performance of 1GB / s, 2GB / s... up to 8GB / s, at 1GB / s intervals. Therefore, a total of 8 performance profiles can be created using different settings for clock frequency, drive strength, and endpoint settings.
[0019] The non-volatile memory system 100 can operate in various environments, and these environments may affect the temperature of the non-volatile memory system 100. To prevent thermal throttling or minimize its probability, thermal calibration can be performed, and a set of performance profiles can be selected based on the thermal calibration results. The selected performance profile can be referred to as the optimal performance profile or the performance profile selected for operation. For example, the non-volatile memory system 100 can be tested with two or more different performance profiles during thermal calibration during non-volatile memory system 100 initialization. In one embodiment, a low-performance profile can be selected as the first performance profile for a first system test. A high-performance profile can be selected as the second performance profile for a second system test. The optimal performance profile can be selected based on the temperature achieved under each performance profile.
[0020] It should be noted that the selected optimal performance profile does not need to be one of the performance profiles tested during hot calibration. For example, the non-volatile storage system 100 can be configured with eight performance profiles for sequential read performance at 1GB / s, 2GB / s, ..., up to 8GB / s, in 1GB / s intervals. During hot calibration, performance profiles for sequential read performance at 2GB / s and 5GB / s can be tested, and based on the test results, one of the eight performance profiles can be selected for the non-volatile storage system 100.
[0021] In some embodiments, thermal calibration may be performed during the initialization of the non-volatile memory system 100. Alternatively, thermal calibration may be performed when one or more conditions are met. For example, in one embodiment, ambient temperature and the occurrence of thermal throttling may be continuously monitored, and thermal calibration may be performed when thermal throttling occurs or when a temperature reading reaches a predetermined temperature threshold. In one embodiment, thermal calibration may be triggered by a predetermined number of thermal throttling events occurring within a given time period or by thermal throttling occurring at any time. The predetermined number of thermal throttling events and the length of the time period can be determined experimentally and may vary for different NVMs (e.g., different brands, different types of NVMs (SLC, TLC, QLC, etc.)). Furthermore, thermal calibration may also be triggered when a reading from the temperature sensor 110 reaches a predetermined temperature threshold.
[0022] A predetermined temperature threshold can be set based on the location of the temperature sensor 110. For example, if the temperature sensor 110 is located in the non-volatile memory system 100 but not on the controller 120 (e.g., on the NVM 104), the predetermined temperature threshold can be set to 85°C. If the temperature sensor 110 is on the controller 102, the predetermined temperature threshold can be set to 105°C. If an embodiment of the non-volatile memory system 100 has multiple temperature sensors, the reading of each temperature sensor can be compared to its own predetermined temperature threshold. For example, if an embodiment of the non-volatile memory system 100 has two temperature sensors 110, one on the NVM 104 and one on the controller 102, then thermal calibration can be triggered if the reading of either temperature sensor reaches its respective predetermined temperature threshold.
[0023] In some embodiments, the optimal performance profile can be selected by comparing the highest temperature generated by system testing under different performance profiles with a predetermined temperature threshold. For example, if a low-performance profile and a high-performance profile are tested in thermal calibration, a first maximum temperature and a second maximum temperature under these two performance profiles can be obtained. The optimal performance profile can be selected in such a way that its expected maximum temperature is closest to, but not greater than, a temperature threshold in a set of performance profiles.
[0024] The expected maximum temperature can be obtained by interpolating or extrapolating the first and second maximum temperature readings. For example, if the first maximum temperature is less than a temperature threshold and the second maximum temperature is greater than a temperature threshold, the optimal performance profile may have the expected maximum temperature between the first and second maximum temperatures. If both the first and second maximum temperatures are above the temperature threshold, the optimal performance profile may be a lower performance profile than the first and second performance profiles (e.g., a slower sequential read). If both the first and second maximum temperatures are below the temperature threshold, the optimal performance profile may be a higher performance profile than the first and second performance profiles (e.g., a faster sequential read). In one embodiment, the maximum temperature can be obtained when the reading of temperature sensor 110 reaches its maximum value and stabilizes at a saturation value for each test performance profile. This may occur after a period of test operation and when the heat generation and dissipation of the non-volatile storage system 100 have reached equilibrium. It should be noted that more than two performance profiles can be tested in thermal calibration, and the optimal performance profile can be selected based on the highest temperature generated under all test performance profiles (including interpolation or extrapolation).
[0025] Figure 2 This is a flowchart of a process 200 for selecting a performance profile for a non-volatile memory system according to an embodiment of the present invention. At block 202, a set of performance profiles can be generated for the non-volatile memory system. For example, multiple performance profiles can be generated based on a general system performance benchmark, such as sequential read or sequential write. Each performance profile may include settings for the hardware components of the non-volatile memory system, such as clock frequency, driver strength, and termination settings. In some embodiments, the hardware component settings may also include voltage settings. Each performance profile may have different thermal characteristics and different performance (e.g., faster read / write speeds versus slower read / write speeds).
[0026] At block 204, thermal calibration can be performed by running a first test under a first performance profile and a second test under a second performance profile. In some embodiments, the non-volatile storage system 100 may perform tests under several performance profiles during thermal calibration. Thermal calibration may include testing at least two performance profiles with different thermal and performance characteristics. For example, the first performance profile may be used for a sequential read speed of 2 GB / s, and the second performance profile may be used for a sequential read speed of 5 GB / s.
[0027] In block 206, a first maximum temperature under a first performance profile and a second maximum temperature under a second performance profile can be obtained. In some embodiments, the maximum temperature can be obtained when the reading of temperature sensor 110 reaches its maximum value and stabilizes at a saturation value in each test performance profile.
[0028] In block 208, an optimal performance profile can be selected from a set of performance profiles based on comparing a first maximum temperature and a second maximum temperature with a predetermined temperature threshold. For example, the optimal performance profile can be selected in a set of profiles whose expected maximum temperature is closest to, but does not exceed, the temperature threshold. In some embodiments, the predetermined temperature threshold may depend on the location of the temperature sensor (e.g., 105°C if the sensor is located on controller 102, and 85°C elsewhere). In block 210, the non-volatile memory system can operate under the optimal performance profile. In some embodiments, if the ambient temperature changes beyond a threshold, the ambient temperature can be monitored and another thermal calibration can be triggered. Furthermore, the occurrence of thermal throttling can also be monitored. In one embodiment, a single thermal throttling event can trigger another thermal calibration. In another embodiment, a certain number of thermal throttling events occurring within a given time period can trigger another thermal calibration.
[0029] In one exemplary embodiment, a method is provided that may include: generating a set of performance profiles for a non-volatile memory system; performing thermal calibration by running a first test under a first performance profile and a second test under a second performance profile to obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile; selecting an optimal performance profile from the set of performance profiles based on comparing the first and second maximum temperatures with predetermined temperature thresholds; and operating the non-volatile memory system under the optimal performance profile. Each of the set of performance profiles may include settings for the hardware components of the non-volatile memory system.
[0030] In one embodiment, the optimal performance profile may have the expected maximum temperature that is closest to but not greater than the predetermined temperature threshold.
[0031] In one embodiment, the expected maximum temperature can be obtained by interpolation or extrapolation of the first and second maximum temperatures.
[0032] In one embodiment, a set of performance profiles may have different performance levels based on a common system performance benchmark.
[0033] In one embodiment, the general system performance benchmark can be sequential read or sequential write, and different performance levels can have different speeds.
[0034] In one embodiment, the first performance profile may have hardware component settings for a low performance level, and the second performance profile may have hardware component settings for a high performance level.
[0035] In one embodiment, the first and second highest temperatures can be obtained by a temperature sensor of a non-volatile memory system not located on the memory controller, and the predetermined temperature threshold can be 85°C.
[0036] In one embodiment, the first and second highest temperatures can be obtained by a temperature sensor of the non-volatile memory system located on the memory controller, and the predetermined temperature threshold can be 105°C.
[0037] In one embodiment, thermal calibration can be performed during the initialization of the non-volatile memory system.
[0038] In one embodiment, thermal calibration may be triggered by the temperature reading of the non-volatile storage system reaching a predetermined temperature threshold, a single thermal throttling, or a predetermined number of thermal throttlings within a given time period.
[0039] In another embodiment, a non-volatile memory system is provided, which may include a memory controller and a temperature sensor. The memory controller may be configured to: generate a set of performance profiles; perform thermal calibration by running a first test under a first performance profile and a second test under a second performance profile; obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile from readings of the temperature sensor; select an optimal performance profile from the set of performance profiles based on comparing the first and second maximum temperatures with predetermined temperature thresholds; and operate the non-volatile memory system under the optimal performance profile. Each of these performance profiles may include settings for the hardware components of the non-volatile memory system.
[0040] In one embodiment, the optimal performance profile may have the expected maximum temperature that is closest to but not greater than the predetermined temperature threshold.
[0041] In one embodiment, the expected maximum temperature can be obtained by interpolation or extrapolation of the first and second maximum temperatures.
[0042] In one embodiment, a set of performance profiles may have different performance levels based on a common system performance benchmark.
[0043] In one embodiment, the general system performance benchmark can be sequential read or sequential write, and different performance levels can have different speeds.
[0044] In one embodiment, the first performance profile may have hardware component settings for a low performance level, and the second performance profile may have hardware component settings for a high performance level.
[0045] In one embodiment, the temperature sensor of the non-volatile memory system may be located outside the memory controller, and the predetermined temperature threshold may be 85°C.
[0046] In one embodiment, the temperature sensor may be located on the storage controller, and the predetermined temperature threshold may be 105°C.
[0047] In one embodiment, thermal calibration can be triggered by the temperature reading of the non-volatile storage system reaching a predetermined temperature threshold, or by a thermal throttling event, or by a predetermined number of thermal throttling events within a given time period.
[0048] In another exemplary embodiment, the present disclosure may also include a non-transient machine-readable medium having executable instructions. When the executable instructions are executed by the storage controller of the non-volatile storage system, the storage controller may cause the storage controller to: generate a set of performance profiles; perform thermal calibration by running a first test under a first performance profile and a second test under a second performance profile; obtain a first maximum temperature under the first performance profile and a second maximum temperature under the second performance profile from readings of temperature sensors of the non-volatile storage system; select an optimal performance profile from the set of performance profiles based on comparing the first maximum temperature and the second maximum temperature with predetermined temperature thresholds; and operate the non-volatile storage system under the optimal performance profile. Each of these performance profiles may include settings for the hardware components of the non-volatile storage system.
[0049] Any disclosed methods and operations can be implemented as computer-executable instructions (e.g., software code of the operations described herein) stored on one or more computer-readable storage media (e.g., non-transitory computer-readable media, such as one or more optical discs, volatile memory components (e.g., DRAM or SRAM), or non-volatile memory components (e.g., hard disk drives)) and executed on a device controller (e.g., firmware executed by an ASIC). Any computer-executable instructions for implementing the disclosed technology, as well as any data created and used during implementation of the disclosed embodiments, can be stored on one or more computer-readable media (e.g., non-transitory computer-readable media).
[0050] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The aspects and embodiments disclosed herein are for illustrative purposes only and are not intended to be limiting; the true scope and spirit of protection are defined by the claims.
Claims
1. A thermal calibration method for a non-volatile memory system, comprising: A set of performance profiles is generated for the non-volatile storage system, each of which includes settings for the hardware components of the non-volatile storage system. Thermal calibration is performed by running the first test under the first performance profile and the second test under the second performance profile. Obtain the first maximum temperature under the first performance profile and the second maximum temperature under the second performance profile; Based on comparing the first maximum temperature and the second maximum temperature with a predetermined threshold, the best performance profile is selected from the set of performance profiles, wherein the best performance profile has a predicted maximum temperature that is closest to but not greater than the predetermined threshold. and Operate the non-volatile storage system under the optimal performance profile.
2. The method of claim 1, wherein the expected maximum temperature is obtained by interpolation or extrapolation of the first and second maximum temperatures.
3. The method according to claim 1, wherein the set of performance profiles has different performance levels based on a general system performance benchmark.
4. The method according to claim 3, wherein the general system performance benchmark is sequential read or sequential write, and the different performance levels are different speeds.
5. The method of claim 1, wherein the first performance profile has hardware component settings for a low performance level, and the second performance profile has hardware component settings for a high performance level.
6. The method of claim 1, wherein the first and second highest temperatures are obtained by temperature sensors of a non-volatile memory system not located on the memory controller, and the predetermined temperature threshold is 85°C.
7. The method of claim 1, wherein the first and second highest temperatures are obtained by temperature sensors of the non-volatile memory system located on the memory controller, and the predetermined temperature threshold is 105°C.
8. The method of claim 1, wherein the thermal calibration is performed during the initialization of the non-volatile memory system.
9. The method according to claim 1, wherein, The thermal calibration is triggered by the temperature reading of the non-volatile storage system reaching the predetermined threshold, or by a thermal throttling event, or by a predetermined number of thermal throttling events within a given time period.
10. A non-volatile memory system, comprising: Storage controller; and Temperature sensor, wherein the storage controller is configured to: Generate a set of performance profiles, each of which includes settings for the non-volatile storage system hardware components; Thermal calibration is performed by running the first test under the first performance profile and the second test under the second performance profile. The first maximum temperature under the first performance profile and the second maximum temperature under the second performance profile are obtained from the readings of the temperature sensor. Based on comparing the first maximum temperature and the second maximum temperature with a predetermined threshold, the best performance profile is selected from the set of performance profiles, wherein the best performance profile has a predicted maximum temperature that is closest to but not greater than the predetermined threshold. and The non-volatile storage system is run under the optimal performance configuration file.
11. The non-volatile storage system of claim 10, wherein the expected maximum temperature is obtained by interpolation or extrapolation of the first maximum temperature and the second maximum temperature.
12. The non-volatile storage system of claim 10, wherein the set of performance profiles has different performance levels based on a general system performance benchmark.
13. The non-volatile storage system of claim 12, wherein the general system performance benchmark is sequential read or sequential write, and the different performance levels are different speeds.
14. The non-volatile storage system of claim 10, wherein the first performance profile has hardware component settings for a low performance level, and the second performance profile has hardware component settings for a high performance level.
15. The non-volatile memory system of claim 10, wherein the temperature sensor of the non-volatile memory system is located outside the memory controller, and the predetermined temperature threshold is 85°C.
16. The non-volatile storage system of claim 10, wherein the temperature sensor is located on the storage controller, and the predetermined temperature threshold is 105°C.
17. The non-volatile storage system of claim 10, wherein the thermal calibration is triggered by the temperature reading of the non-volatile storage system reaching a predetermined threshold, a thermal throttling, or a predetermined number of thermal throttlings within a given time period.
18. A non-transient machine-readable medium having executable instructions, wherein when the executable instructions are executed by a memory controller of a non-volatile memory system, the memory controller: Generate a set of performance profiles, each of which includes settings for the non-volatile storage system hardware components; Thermal calibration is performed by running the first test under the first performance profile and the second test under the second performance profile. The first maximum temperature under the first performance profile and the second maximum temperature under the second performance profile are obtained from the readings of the temperature sensor of the non-volatile storage system. Based on comparing the first maximum temperature and the second maximum temperature with a predetermined threshold, the best performance profile is selected from the set of performance profiles, wherein the best performance profile has a predicted maximum temperature that is closest to but not greater than the predetermined threshold. and The non-volatile storage system is run under the optimal performance configuration file.