Systems, methods, and media for reducing impact of driver parameter writes on solid state drive performance
By saving drive parameters to volatile memory in solid-state drives and copying them to nonvolatile memory under power-down conditions, the problem of driver parameter writing affecting SSD performance is solved, and the random read QoS performance and overall performance of SSD is improved.
Patent Information
- Application Number
- CN202380077002.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-06
- Filing Date
- 2023-09-05
- Publication Date
- 2025-06-13
AI Technical Summary
In the prior art, writing driver parameters to solid-state drives (SSDs) will degrade their performance, especially randomly reading QoS metrics for workloads.
By saving the driver parameters of the SSD to the volatile memory and copying them to the nonvolatile memory under power-down conditions, writing in the nonvolatile memory is avoided, and the parameters are copied from the nonvolatile memory back to the volatile memory during power recovery.
Improves the random read QoS performance of SSD during power outage, reduces firmware overhead and latency of write services, maintains the performance stability of other workloads, and significantly improves the random read QoS metrics.
Smart Images

Figure CN120153345A_ABST
Abstract
Description
[0001] Cross - reference to related applications
[0002] This application claims the benefit of U.S. Patent Application No. 17 / 903,854, filed on September 6, 2022, and the entire disclosure of that application is hereby incorporated by reference herein. BACKGROUND OF THE INVENTION
[0003] Improving the speed, quality of service (QoS), and reliability of solid-state drives (SSDs), such as NAND SSDs, remains highly important for users as the devices using these components have growing performance requirements.
[0004] For example, drive parameters of an SSD include drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, firmware download information, etc. Typically, drive parameters are written to the non-volatile memory of the SSD according to a policy.
[0005] Writing drive parameters to the non-volatile memory in the SSD degrades the performance of the SSD. For example, drive parameter writes may reduce the SSD QoS metrics for random read workloads, which measure response time by the percentage of I / O completions and are key performance metrics of the SSD.
[0006] Accordingly, it is desirable to reduce the impact of drive parameter writes on SSD performance. SUMMARY OF THE INVENTION
[0007] According to some embodiments, systems, methods, and media are provided for reducing the impact of drive parameter writes on the performance of a solid-state drive.
[0008] In some embodiments, a method is provided for reducing the impact of drive parameter writes on the performance of a solid state drive (SSD). The method includes: using an SSD controller to save one or more SSD drive parameters of the SSD to volatile memory of the SSD; detecting a power loss condition in the SSD; and copying the one or more SSD drive parameters from the volatile memory of the SSD to non-volatile memory of the SSD. In some of these embodiments, the SSD is a NAND SSD. In some of these embodiments, the one or more SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information. In some of these embodiments, the volatile memory is one or more of random access memory and dynamic random access memory. In some of these embodiments, the power loss condition is that the power supply voltage of the SSD drops below a first threshold. In some of these embodiments, the non-volatile memory is NAND memory. In some of these embodiments, the method further includes: detecting a power recovery condition in the SSD; and copying the one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD. In some of these embodiments, the power recovery condition is that the power supply voltage of the SSD rises below a second threshold.
[0009] In some embodiments, a solid state drive (SSD) is provided, each SSD including: non-volatile memory; volatile memory; and an SSD controller, coupled to the non-volatile memory and the volatile memory, and configured to: save one or more solid state drive (SSD) drive parameters of the SSD to the volatile memory of the SSD; detect a power loss condition in the SSD; and copy the one or more SSD drive parameters from the volatile memory of the SSD to the non-volatile memory of the SSD. In some of these embodiments, the SSD is a NAND SSD. In some of these embodiments, the one or more SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information. In some of these embodiments, the volatile memory is one or more of random access memory and dynamic random access memory. In some of these embodiments, the power loss condition is that the power supply voltage of the SSD drops below a first threshold. In some of these embodiments, the non-volatile memory is NAND memory. In some of these embodiments, the SSD controller is further configured to: detect a power recovery condition in the SSD; and copy the one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD. In some of these embodiments, the power recovery condition is that the power supply voltage of the SSD rises above a second threshold.
[0010] In some embodiments, a non-transitory computer-readable medium containing computer-executable instructions is provided. When executed by an SSD controller, the instructions cause the SSD controller to execute a method for reducing the impact of drive parameter writes on the performance of a solid-state drive (SSD). The method includes: saving one or more SSD drive parameters of the SSD to the volatile memory of the SSD; detecting a power loss condition in the SSD; and copying one or more SSD drive parameters from the volatile memory of the SSD to the non-volatile memory of the SSD. In some of these embodiments, the SSD is a NAND SSD. In some of these embodiments, one or more SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information. In some of these embodiments, the volatile memory is one or more of random access memory and dynamic random access memory. In some of these embodiments, the power loss condition is that the power supply voltage of the SSD drops below a first threshold. In some of these embodiments, the non-volatile memory is NAND memory. In some of these embodiments, the method further includes: detecting a power recovery condition in the SSD; and copying one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD. In some of these embodiments, the power recovery condition is that the power supply voltage of the SSD rises above a second threshold. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 is an example of a process for saving drive parameter data according to some embodiments.
[0012] Figure 2 is an example of a process for saving drive parameters stored in volatile memory to non-volatile memory in response to a power loss event according to some embodiments.
[0013] Figure 3 is an example of a process for restoring drive parameters from non-volatile memory to volatile memory in response to a power-on signal according to some embodiments.
[0014] Figure 4 is an example block diagram of an SSD according to some embodiments including some components related to the Figures 1 - 3 process. DETAILED DESCRIPTION
[0015] According to some embodiments, mechanisms are provided for reducing the impact of drive parameter writes on the performance of a solid state drive (SSD), which may include systems, methods, and media. In some embodiments, these mechanisms can be used to reduce the impact of drive parameter writes on the performance of a NAND SSD.
[0016] In some embodiments, drive parameters can be written to volatile memory that is part of the SSD. The drive parameters can include drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, firmware download information, etc. For example, in some embodiments, drive parameters can be written to volatile memory that is part of the SSD and implemented using random access memory (RAM), such as dynamic RAM (DRAM). In some embodiments, the volatile memory, such as RAM / DRAM memory, can be protected from loss due to a power failure. For example, in some embodiments, the volatile memory, such as RAM / DRAM memory, can be connected to a power storage device that continuously supplies power to the memory, at least until the contents of the memory can be copied to another non-volatile memory location in the SSD (e.g., the power loss imminent (PLI) band of the NAND memory).
[0017] In some embodiments, writing drive parameters to volatile memory that is part of the SSD can provide any one or more of the following benefits:
[0018] Since drive parameter writes to non-volatile memory are not performed during non-PLI periods, the random read QoS performance of the SSD can be improved during that period;
[0019] When drive parameters are written to volatile memory connected to a power source, it can be ensured that the drive parameters are not lost during a PLI event, and the power source continuously supplies power to the volatile memory, at least until the contents of the memory can be copied to another non-volatile location;
[0020] The firmware overhead and other latencies (such as program suspend resume (PSR) and channel handling overhead) for servicing these writes can be reduced;
[0021] The random read QoS performance can be improved without negatively affecting the read / write performance or latency of other workloads;
[0022] A low-complexity solution can be presented that has a significant improvement in random read QoS (e.g., at a higher QoS confidence level (e.g., 99.999%, 99.9999%, etc.)); and
[0023] The total writes in the system can be reduced, thereby improving performance and QOS.
[0024] Reference is now made to volatile and non-volatile memories. It should be understood that in some embodiments, the volatile memory may include any suitable volatile memory, such as RAM, DRAM, etc. It should be understood that in some embodiments, the non-volatile memory may include any suitable non-volatile memory, such as NAND memory, NOR memory, phase change memory, etc.
[0025] Reference is now made to one or more SSDs. It should be understood that each of the one or more SSDs may include any suitable SSD, such as a NAND SSD, a phase change memory SSD, etc.
[0026] Turning Figure 1 , example 100 of a process for saving drive parameter data according to some embodiments is shown.
[0027] As shown, after process 100 starts at 102, the process receives one or more drive parameters to be saved at 104. At 104, any suitable drive parameters may be received, and in some embodiments, these drive parameters may be received in any suitable manner. For example, in some embodiments, the received drive parameters may include drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, firmware download information, etc. As another example, in some embodiments, the drive parameters may be generated or collected internally.
[0028] Next, at 106, process 100 may determine whether the received drive parameters are to be saved to volatile memory. In some embodiments, this determination may be made in any suitable manner. For example, in some embodiments, process 100 may compare one or more identifiers of the drive parameters with a list of drive parameters to be saved or not saved to volatile memory.
[0029] If it is determined at 106 that the received drive parameters are to be saved to volatile memory, then process 100 may save the drive parameters to volatile memory at 108. In some embodiments, process 100 may save the drive parameters to any suitable volatile memory, such as RAM or DRAM memory at any suitable location (such as on an SSD). In some embodiments, process 100 may save the drive parameters to volatile memory in any suitable manner. For example, in some embodiments, process 100 may save the drive parameters to volatile memory in a table of parameter keys and parameter values.
[0030] Otherwise, if it is determined at 106 that the received drive parameters are not to be saved to the volatile memory, process 100 may save the drive parameters to the non-volatile memory at 110. In some embodiments, process 100 may save the drive parameters to any suitable non-volatile memory in any suitable manner. For example, in some embodiments, process 100 may save the drive parameters to the NAND memory in the SSD. As another example, in some embodiments, process 100 may save the drive parameters to a non-volatile memory as currently known in the art.
[0031] Once the drive parameters are saved at 108 or 110, the process may loop back to 104 to wait for more drive parameters to be saved.
[0032] Turning Figure 2 to, an example 200 of a process for saving drive parameters stored in volatile memory to non-volatile memory (e.g., NAND memory) in response to a power-down event (e.g., a power-loss-imminent (PLI) event) is shown.
[0033] As shown, after process 200 starts at 202, the process may determine at 204 whether a power-down event has occurred. In some embodiments, this determination may be made in any suitable manner, such as by determining that the power supply voltage has dropped below a threshold level. In some embodiments, any suitable threshold level may be used, such as a percentage of the power supply voltage when not in a power-down event (e.g., 95%, 90%, 85%, 80%, etc.). In some embodiments, the determination that the power supply voltage has dropped below the threshold level may be performed by comparing the power supply voltage with a reference voltage set to the threshold level using a comparator.
[0034] If it is determined at 204 that no power-down event has occurred, process 200 may wait for a period of time (or not wait in some embodiments) and loop back to 204. Otherwise, if it is determined at 204 that a power-down event is occurring, process 200 may gather the drive parameters to be saved to the non-volatile memory at 206. In some embodiments, gathering the drive parameters to be saved to the non-volatile memory may be performed in any suitable manner. For example, in some embodiments, gathering the drive parameters to be saved to the non-volatile memory may include copying from various parts of the volatile memory to a single part of the volatile memory component that requires power-down protection.
[0035] After the drive parameters to be saved to the non-volatile memory are aggregated at 206, process 200 may save the aggregated drive parameters to the non-volatile memory at 208. At 208, in some embodiments, the aggregated drive parameters may be saved to any suitable non-volatile memory (e.g., NAND memory, NOR memory, phase change memory, etc.), and the saving may be performed in any suitable manner. For example, in some embodiments, the non-volatile memory may be the power loss imminent (PLI) band of a NAND bank.
[0036] In some embodiments, once the aggregated drive parameters have been saved to the non-volatile memory at 208, process 200 may loop back to 204.
[0037] Although process 200 is shown as repeatedly checking for a power loss event at 204, it should be understood that in some embodiments, process 200 may replace 204 with a block for receiving a signal indicating a power loss event, and the signal may be an interrupt.
[0038] Turning Figure 3 FIG. shows an example 300 of a process for restoring drive parameters from a non-volatile memory to a volatile memory in response to a power-on signal.
[0039] As shown, after process 300 starts at 302, the process may receive a power-on signal indicating that the SSD has been restored to power. The power-on signal may be from any suitable source and may be received in any suitable manner. For example, in some embodiments, the signal may be generated by a comparator that, in some embodiments, determines that the power supply voltage meets and / or exceeds a threshold level equal to a certain percentage (e.g., 95%, 90%, 85%, 80%, etc.) of the power supply voltage when not in a power loss event (e.g., PLI event).
[0040] In some embodiments, after receiving a power-on signal indicating that the SSD has been restored to power, process 300 may restore the drive parameters from the non-volatile memory (such as the PLI band of a NAND memory) to the volatile memory (such as a RAM / DRAM memory). In some embodiments, restoring the drive parameters may be performed in any suitable manner.
[0041] In some embodiments, once the drive parameters have been restored to the volatile memory at 306, process 300 may end at 308.
[0042] Turning Figure 4 FIG. shows, according to some embodiments, including Figures 1 - 3Example block diagram 400 of some components of SSD 401 related to the process. As shown, SSD 401 is connected to a power supply voltage 402 and a bus 414. In some embodiments, the power supply voltage 402 can be any suitable voltage 402 for powering SSD 401. The bus 414 can be any suitable bus for connecting SSD 401 to a host device, such as a general or special-purpose computer (e.g., a server, laptop computer, desktop computer, tablet computer, mobile phone, gateway, router, and / or any other device capable of connecting to the SSD). For example, in some embodiments, the bus 414 can be a PCIE bus. As another example, in some embodiments, the bus 414 can be a SATA bus.
[0043] As Figure 4 shown, SSD 401 can include a power loss imminent (PLI) detector and switch 404, a power storage device 406, an SSD controller 408, non-volatile memory 410, volatile memory 412, and / or any other suitable devices not shown.
[0044] The PLI detector and switch 404 can be any suitable component or combination of components for detecting imminent power loss and switching the SSD components from being powered by the power supply voltage 402 to being powered by the power storage device 406. For example, in some embodiments, the PLI detector and switch 404 can include one or more comparators that compare the power supply voltage with one or more thresholds (e.g., one threshold for detecting an upcoming power loss (e.g., <= 90% of the normal power supply voltage or any other suitable percentage of the normal power supply voltage), and one threshold for detecting power recovery (e.g., >= 95% of the normal power supply voltage or any other suitable percentage of the normal power supply voltage)). As another example, in some embodiments, the PLI detector and switch 404 can include one or more switches (e.g., MOSFETs) that can be used to switch the power supplied to the SSD components to be from the power supply voltage 402 or the power storage device 406 in response to the output of one or more comparators.
[0045] The power storage device 406 can be any suitable one or more components for storing the power to be supplied to the components of SSD 401 during a power loss event. For example, in some embodiments, the power storage device 406 can be one or more capacitors, which can be implemented in any suitable manner in some embodiments. As another example, in some embodiments, the power storage device 406 can be one or more batteries, which can be implemented in any suitable manner in some embodiments.
[0046] The SSD controller 408 can be any suitable one or more devices for jointly controlling the operations of the SSD 401. For example, in some embodiments, the SSD controller 408 can include a microprocessor, a microcontroller, a digital signal processor, dedicated logic, and / or any other suitable circuitry for controlling the operations of the SSD 401. As another example, in some embodiments, the SSD controller 408 can include any suitable buffers, registers, memories, etc., for storing code and / or data for controlling the operations of the SSD 401.
[0047] In some embodiments, the non-volatile memory 410 can be any suitable non-volatile memory, such as NAND memory, NOR memory, phase change memory, etc.
[0048] In some embodiments, the volatile memory 412 can be any suitable volatile memory. For example, in some embodiments, the volatile memory 412 can be a random access memory (RAM). More specifically, for example, in some embodiments, the volatile memory 412 can be a dynamic random access memory (DRAM).
[0049] In some embodiments, Figures 1 - 3 at least some of the above blocks of the process can be executed or implemented in any order or sequence, not limited to the order and sequence shown and described in connection with the figures. Additionally, in some embodiments, the Figures 1 - 3 above blocks can be executed or implemented substantially simultaneously or in parallel, where appropriate, to reduce latency and processing time. Additionally or alternatively, in some embodiments, Figures 1 - 3 some of the above blocks of the process can be omitted. Additionally or alternatively, in some embodiments, Figures 1 - 3 some of the above blocks of the process can be combined into one process.
[0050] In some embodiments, any suitable computer-readable medium may be used to store instructions for performing the functions and / or processes herein. For example, in some embodiments, the computer-readable medium may be transient or non-transient. For example, non-transitory computer-readable media may include media such as non-transitory forms of magnetic media (e.g., hard disks, floppy disks, and / or any other suitable magnetic media), non-transitory forms of optical media (e.g., optical discs, digital video discs, Blu-ray discs, and / or any other suitable optical media), non-transitory forms of semiconductor media (e.g., flash memory, electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and / or any other suitable semiconductor media), any suitable medium that does not transiently disappear or have no permanent appearance during transmission, and / or any suitable tangible medium. As another example, transient computer-readable media may include signals on a network, signals in a wire, signals in a conductor, signals in an optical fiber, signals in a circuit, any suitable medium that transiently disappears and has no permanent appearance during transmission, and / or any suitable intangible medium.
[0051] Although the invention has been described and illustrated in the foregoing illustrative embodiments, it should be understood that the present disclosure is by way of example only, and that various changes may be made to the implementation details of the invention without departing from the spirit and scope of the invention, which is defined only by the appended claims. The features of the disclosed embodiments may be combined and rearranged in various ways.
Claims
1. A method for reducing the impact of drive parameter writes on the performance of a solid state drive (SSD), comprising: using an SSD controller to save one or more SSD drive parameters of the SSD to the volatile memory of the SSD; detecting a power loss condition in the SSD; and copying one or more SSD drive parameters from the volatile memory of the SSD to the non-volatile memory of the SSD.
2. The method according to claim 1, wherein the SSD is a NAND SSD.
3. The method according to claim 1, wherein one or more SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information.
4. The method according to claim 1, wherein the volatile memory is one or more of a random access memory and a dynamic random access memory.
5. The method according to claim 1, wherein the power loss condition is that the power supply voltage of the SSD drops below a first threshold.
6. The method according to claim 1, wherein the non-volatile memory is a NAND memory.
7. The method according to claim 1, further comprising: detecting a power recovery condition in the SSD; and copying one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD.
8. The method according to claim 1, wherein the power recovery condition is that the power supply voltage of the SSD rises below a second threshold.
9. A solid state drive (SSD), comprising: a non-volatile memory; a volatile memory; and an SSD controller, coupled to the non-volatile memory and the volatile memory, and configured to: save one or more solid state drive (SSD) drive parameters of the SSD to the volatile memory of the SSD; detect a power loss condition in the SSD; and copy one or more SSD drive parameters from the volatile memory of the SSD to the non-volatile memory of the SSD.
10. The SSD according to claim 9, wherein the SSD is a NAND SSD.
11. The SSD according to claim 9, wherein one or more SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information.
12. The SSD according to claim 9, wherein the volatile memory is one or more of a random access memory and a dynamic random access memory.
13. The SSD according to claim 9, wherein the power loss condition is that the power supply voltage of the SSD drops below a first threshold.
14. The SSD according to claim 9, wherein the non-volatile memory is a NAND memory.
15. The SSD according to claim 9, wherein the SSD controller is further configured to: Detect power recovery conditions in the SSD; and Copy one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD.
16. The SSD according to claim 9, wherein the power recovery condition is that the power supply voltage of the SSD rises below a second threshold.
17. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by an SSD controller, cause the SSD controller to perform a method for reducing the impact of drive parameter writes on the performance of a solid-state drive (SSD), the method comprises:[[]] Save one or more SSD drive parameters of the SSD to the volatile memory of the SSD; Detect a power-off condition in the SSD; and Copy one or more SSD drive parameters from the volatile memory of the SSD to the non-volatile memory of the SSD.
18. The non-transitory computer-readable medium according to claim 1, wherein the SSD is a NAND SSD.
19. The non-transitory computer-readable medium according to claim 1, wherein one or more of the SSD drive parameters include one or more of the following: drive health parameters, drive internal statistics, drive thermal information, drive debug information, host and non-volatile memory read and write counts, media error handling data, temperature and throttling information, and firmware download information.
20. The non-transitory computer-readable medium according to claim 1, wherein the volatile memory is one or more of random access memory and dynamic random access memory.
21. The non-transitory computer-readable medium according to claim 1, wherein the power-off condition is that the power supply voltage of the SSD drops below a first threshold.
22. The non-transitory computer-readable medium according to claim 1, wherein the non-volatile memory is NAND memory.
23. The non-transitory computer-readable medium according to claim 1, wherein the method further comprises:[[]] Detect power recovery conditions in the SSD; and Copy one or more SSD drive parameters from the non-volatile memory of the SSD to the volatile memory of the SSD.
24. The non-transitory computer-readable medium according to claim 1, wherein the power recovery condition is that the power supply voltage of the SSD rises below a second threshold.