Systems, methods, and media for reducing the impact of drive parameter writing on solid-state drive performance
By storing SSD drive parameters in volatile memory and copying them to non-volatile memory during power events, the solution enhances SSD performance by reducing write impacts and maintaining high QoS, particularly in random read workloads.
Patent Information
- Application Number
- JP2025513727
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-06
- Filing Date
- 2023-09-05
- Publication Date
- 2025-09-11
AI Technical Summary
Writing drive parameters to non-volatile memory in SSDs reduces SSD performance, particularly affecting random read workloads and QoS metrics.
Storing drive parameters in volatile memory and copying them to non-volatile memory during power loss or restoration events using an SSD controller, specifically utilizing RAM/DRAM for volatile memory and NAND memory for non-volatile memory.
Improves random read QoS performance by minimizing writes to non-volatile memory during power loss events, reducing firmware overhead and overall writes, and maintaining high QoS confidentiality levels.
Smart Images

Figure 2025530145000001_ABST
Abstract
Description
[Background technology]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of U.S. Patent Application No. 17 / 903,854, filed September 6, 2022, which is hereby incorporated by reference in its entirety.
[0002] Increasing the speed, quality of service (QoS), and reliability of solid-state drives (SSDs), such as NAND SSDs, continues to be of great importance to users as performance demands for the devices in which these components are used continue to rise.
[0003] Drive parameters of an SSD include, for example, 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 throttle information, firmware download information, etc. Typically, drive parameters are written to non-volatile memory of the SSD, for example, per policy.
[0004] Writing drive parameters to non-volatile memory within an SSD reduces SSD performance. For example, writing drive parameters can reduce the SSD QoS metric for random read workloads. This metric measures response time per I / O completion percentage and is a key performance metric for SSDs.
[0005] Therefore, it is desirable to reduce the impact of drive parameter writing on SSD performance. Summary of the Invention
[0006] According to some embodiments, a system, method, and medium are provided for reducing the impact of drive parameter writing on solid-state drive performance.
[0007] In some embodiments, a method for reducing the impact of drive parameter writing on solid-state drive (SSD) performance is provided, comprising: using an SSD controller to save one or more SSD drive parameters of an SSD to a 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 a non-volatile memory of the SSD. In some of these embodiments, the SSD is a NAND-type SSD. In some of these embodiments, the one or more SSD drive parameters include one or more of 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 throttle information, and firmware download information. In some of these embodiments, the volatile memory is one or both of a random access memory and a dynamic random access memory. In some of these embodiments, the power loss condition is a supply voltage of the SSD falling below a first threshold. In some of these embodiments, the non-volatile memory is a NAND memory. In some of these embodiments, the method further comprises detecting a power restoration 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 restoration condition is the supply voltage of the SSD rising above a second threshold.
[0008] In some embodiments, solid-state drives (SSDs) are provided, each comprising a non-volatile memory; a volatile memory; and an SSD controller coupled to the non-volatile memory and the volatile memory, the SSD controller configured to: store one or more solid-state drive (SSD) drive parameters of the SSD in 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-type SSD. In some of these embodiments, the one or more SSD drive parameters include one or more of 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 throttle information, and firmware download information. In some of these embodiments, the volatile memory is one or both of random access memory and dynamic random access memory. In some of these embodiments, the power loss condition is the supply voltage of the SSD falling 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 restoration 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 restoration condition is the supply voltage of the SSD rising above a second threshold.
[0009] In some embodiments, a non-transitory computer-readable medium is provided comprising 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 writing on solid-state drive (SSD) performance, the method including saving one or more SSD drive parameters of an SSD to a 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 a non-volatile memory of the SSD. In some of these embodiments, the SSD is a NAND-type SSD. In some of these embodiments, the one or more SSD drive parameters include one or more of drive health parameters, drive internal statistics, drive thermal information, drive debug information, number of host and non-volatile memory reads and writes, media error handling data, temperature and throttle information, and firmware download information. In some of these embodiments, the volatile memory is one or both of random access memory and dynamic random access memory. In some of these embodiments, the power loss condition is the supply voltage of the SSD falling below a first threshold. In some of these embodiments, the non-volatile memory is NAND memory. In some of these embodiments, the method further comprises detecting a power restoration 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 restoration condition is the supply voltage of the SSD rising above a second threshold. [Brief explanation of the drawings]
[0010] [Figure 1]1 is an example of a process for saving drive parameter data, according to some embodiments.
[0011] [Figure 2] 1 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.
[0012] [Figure 3] 1 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.
[0013] [Figure 4] FIG. 4 is an exemplary block diagram including some components of an SSD relevant to the processing of FIGS. 1-3, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0014] According to some embodiments, mechanisms, which may include systems, methods, and media, are provided for reducing the impact of drive parameter writing on solid-state drive (SSD) performance. In some embodiments, these mechanisms may be used to reduce the impact of drive parameter writing on NAND SSD performance.
[0015] In some embodiments, drive parameters, which 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 throttle information, firmware download information, etc., may be written to volatile memory that is part of the SSD. For example, in some embodiments, drive parameters may be written to volatile memory implemented using random access memory (RAM), such as dynamic RAM (DRAM), that is part of the SSD. In some embodiments, volatile memory, e.g., RAM / DRAM memory, may be protected from loss due to a power failure. For example, in some embodiments, this volatile memory, e.g., RAM / DRAM memory, may be connected to a power storage device that continues to provide power to the memory at least until the contents of the memory can be copied to another memory location that is non-volatile within the SSD (e.g., a power loss imminent (PLI) band of NAND memory).
[0016] In some embodiments, writing drive parameters to volatile memory that is part of the SSD may provide any one or more of the following benefits:
[0017] This may improve the random read QoS performance of the SSD during non-PLI periods due to not performing drive parameter writes to non-volatile memory during this time;
[0018] Thereby, if the drive parameters are written to a volatile memory that is connected to a power source that continues to provide power to the volatile memory, it can be ensured that the drive parameters are not lost during a PLI event, at least until the contents of the memory can be copied to another location that is non-volatile;
[0019] This may reduce firmware overhead to service those writes and other latencies (such as Program Suspend Resume (PSR) and channel processing overhead);
[0020] This may improve random read QoS performance without negatively impacting read / write performance or latency in other workloads;
[0021] This may provide a low-complexity solution with significantly improved random read QoS, e.g., higher QoS confidentiality levels (e.g., 99.999%, 99.9999%, etc.); and
[0022] This may reduce overall writes to the system, thereby improving performance and QoS.
[0023] Reference will be made below to volatile and non-volatile memory. It should be understood that in some embodiments, volatile memory may include any suitable volatile memory, such as RAM, DRAM, etc. It should be understood that in some embodiments, non-volatile memory may include any suitable non-volatile memory, such as NAND memory, NOR memory, phase change memory, etc.
[0024] Reference will be made below to one or more SSDs, with it being understood that each of the one or more SSDs may include any suitable SSD, such as, for example, a NAND SSD, a phase change memory SSD, etc.
[0025] Referring to FIG. 1, an example process 100 for storing drive parameter data is shown, according to some embodiments.
[0026] As shown, after process 100 begins at 102, the process receives one or more drive parameters to be stored at 104. Any suitable drive parameters may be received at 104, 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, number of host and non-volatile memory reads and writes, media error handling data, temperature and throttle information, firmware download information, etc. As another example, in some embodiments, the drive parameters may be generated or collected internally.
[0027] Next, at 106, process 100 may determine whether the received drive parameters are to be stored in volatile memory. This determination may be made in any suitable manner in some embodiments. For example, in some embodiments, process 100 may compare one or more identifiers of drive parameters that are or are not to be stored in volatile memory to a list of drive parameters.
[0028] If it is determined at 106 that the received drive parameters are to be stored in volatile memory, then at 108, the process 100 may store the drive parameters in volatile memory. In some embodiments, the process 100 may store the drive parameters in any suitable volatile memory, such as RAM or DRAM memory, or in any suitable location, such as an SSD. In some embodiments, the process 100 may store the drive parameters in volatile memory in any suitable manner. For example, in some embodiments, the process 100 may store the drive parameters in volatile memory in a table of parameter keys and parameter values.
[0029] Otherwise, if it is determined at 106 that the received drive parameters will not be saved to volatile memory, then at 110, process 100 may save the drive parameters to non-volatile memory. 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 NAND memory within an SSD. As another example, in some embodiments, process 100 may save the drive parameters to non-volatile memory currently known in the art.
[0030] Once the drive parameters are saved at 108 or 110, the process may loop back to 104 to await receipt of more drive parameters to be saved.
[0031] Referring to FIG. 2, an example process 200 is shown for saving drive parameters stored in volatile memory to non-volatile memory, such as NAND memory, in response to a power loss event (e.g., a power loss imminent (PLI) event).
[0032] As shown, after process 200 begins at 202, the process may determine at 204 whether a power loss event has occurred. In some embodiments, this determination may be made in any suitable manner, such as by determining that the supply voltage is below a threshold level. In some embodiments, any suitable threshold level may be used, such as a percentage of the supply voltage when there is no power loss event (e.g., 95%, 90%, 85%, 80%, etc.). In some embodiments, the determination that the supply voltage is below the threshold level may be made by using a comparator to compare the supply voltage to a reference voltage set at the threshold level.
[0033] If it is determined at 204 that a power loss event has not occurred, process 200 may wait for a period of time (or in some embodiments, not do so) and loop back to 204. Otherwise, if it is determined at 204 that a power loss event has occurred, process 200 may assemble drive parameters to be stored in non-volatile memory at 206. In some embodiments, assembling drive parameters to be stored in non-volatile memory may be performed in any suitable manner. For example, in some embodiments, assembling drive parameters to be stored in non-volatile memory may include copying from various portions of volatile memory to one portion of a volatile memory component that needs to be made safe upon power loss.
[0034] After assembling drive parameters to be stored in non-volatile memory at 206, process 200 may store the assembled drive parameters in non-volatile memory at 208. The assembled drive parameters may be stored in any suitable non-volatile memory (e.g., NAND memory, NOR memory, phase change memory, etc.) at 208, and in some embodiments, this storage may be performed in any suitable manner. In some embodiments, for example, the non-volatile memory may be a power loss imminent (PLI) band of a NAND memory bank.
[0035] Once the assembled drive parameters are saved to non-volatile memory at 208, in some embodiments, process 200 may loop back to 204.
[0036] At 204, process 200 is shown with repeated checks for a power loss event, but 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 that may result in an interruption.
[0037] Referring to FIG. 3, an example process 300 for restoring drive parameters from non-volatile memory to volatile memory in response to a power-on signal is shown.
[0038] As shown, after process 300 begins at 302, the process may receive a power-on signal indicating that power has been restored to the SSD. This power-on signal may be from any suitable source and may be received in any suitable manner. For example, in some embodiments, this signal may be generated by a comparator that determines that the supply voltage meets and / or exceeds a threshold level that, in some embodiments, is equal to a percentage (e.g., 95%, 90%, 85%, 80%, etc.) of the supply voltage in the absence of a power loss event (e.g., a PLI event).
[0039] After receiving a power-on signal indicating that power has been restored to the SSD, the process 300 may, in some embodiments, restore drive parameters from non-volatile memory (such as a PLI band of NAND memory) to volatile memory (such as RAM / DRAM memory). In some embodiments, restoring the drive parameters may be performed in any suitable manner.
[0040] Once the drive parameters are restored to volatile memory at 306, in some embodiments, the process 300 may end at 308.
[0041] Referring to FIG. 4, an exemplary block diagram 400 is shown including several components of an SSD 401 relevant to the processing of FIGS. 1-3 in accordance with some embodiments. As shown, the SSD 401 is connected to a supply voltage 402 and a bus 414. In some embodiments, the supply voltage 402 may be any suitable voltage 402 for providing power to the SSD 401. The bus 414 may be any suitable bus for connecting the SSD 401 to a host device, such as a general-purpose or special-purpose computer (e.g., a server, a laptop computer, a desktop computer, a tablet computer, a mobile phone, a gateway, a router, and / or any other device capable of connecting to an SSD). For example, in some embodiments, the bus 414 may be a PCIE bus. As another example, in some embodiments, the bus 414 may be a SATA bus.
[0042] As shown in FIG. 4, SSD 401 may 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.
[0043] The PLI detector and switch 404 may be any suitable component or combination of components for detecting an impending power loss and switching the SSD components from being powered by the supply voltage 402 or the power storage device 406. For example, in some embodiments, the PLI detector and switch 404 may include one or more comparators that compare the supply voltage to one or more thresholds (e.g., one threshold for detecting an unprocessed power loss (e.g., 90% or less of the normal supply voltage or any other suitable percentage of the normal supply voltage) and one threshold for detecting power restoration (e.g., 95% or more of the normal supply voltage or any other suitable percentage of the normal supply voltage)). As another example, in some embodiments, the PLI detector and switch 404 may include one or more switches (e.g., MOSFETs) that may be used to switch the power provided to the SSD components from either the supply voltage 402 or the power storage device 406 in response to the output from the one or more comparators.
[0044] Power storage device 406 may be any suitable component or components for storing power provided to components of SSD 401 in a power loss event. For example, in some embodiments, power storage device 406 may be one or more capacitors, which may be implemented in any suitable manner in some embodiments. As another example, in some embodiments, power storage device 406 may be one or more batteries, which may be implemented in any suitable manner in some embodiments.
[0045] SSD controller 408 may be any suitable device or devices for collectively controlling the operation of SSD 401. For example, in some embodiments, SSD controller 408 may include a microprocessor, a microcontroller, a digital signal processor, dedicated logic, and / or any other suitable circuitry for controlling the operation of SSD 401. As another example, in some embodiments, SSD controller 408 may include any suitable buffers, registers, memory, etc. for storing code and / or data used to control the operation of SSD 401.
[0046] In some embodiments, non-volatile memory 410 may be any suitable non-volatile memory, such as, for example, NAND memory, NOR memory, phase change memory, etc.
[0047] In some embodiments, volatile memory 412 may be any suitable volatile memory. For example, in some embodiments, volatile memory 412 may be random access memory (RAM). More specifically, for example, in some embodiments, volatile memory 412 may be dynamic random access memory (DRAM).
[0048] In some embodiments, at least some of the above-described blocks of the processes of Figures 1-3 may be executed or performed in any order or sequence, including but not limited to the order and sequence shown in and described with respect to the figures. Also, some of the above-described blocks of Figures 1-3 may be executed or performed substantially simultaneously, where appropriate, or in parallel to reduce latency and processing time in some embodiments. Additionally or alternatively, some of the above-described blocks of the processes of Figures 1-3 may be omitted in some embodiments. Additionally or alternatively, some of the above-described blocks of the processes of Figures 1-3 may be combined into a single process in some embodiments.
[0049] In some embodiments, any suitable computer-readable medium for storing instructions for performing the functions and / or processes described herein may be used. For example, in some embodiments, the computer-readable medium may be transitory or non-transitory. For example, a non-transitory computer-readable medium may include a non-transitory form of magnetic medium (such as a hard disk, a floppy disk, and / or any other suitable magnetic medium), a non-transitory form of optical medium (such as a compact disc, a digital video disc, a Blu-ray disc, and / or any other suitable optical medium), a non-transitory form of semiconductor medium (such as flash memory, an electrically programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), and / or any other suitable semiconductor medium), any suitable medium that is not transitory or does not have any aspect of permanence during transmission, and / or any suitable tangible medium, etc. As another example, a transitory computer-readable medium may include a signal on a network, a wire, a conductor, an optical fiber, a circuit, any suitable medium that is transitory and does not have any aspect of permanence during transmission, and / or any suitable intangible medium.
[0050] While the invention has been described and illustrated in the foregoing exemplary embodiments, it will be understood that the disclosure is made by way of example only, and that numerous changes in the details of the implementation of the invention, limited only by the following claims, may be made without departing from the spirit and scope of the invention. Features of the disclosed embodiments can be combined and permuted in various ways.
Claims
1. 1. A method for reducing the impact of drive parameter writing on solid state drive (SSD) performance, comprising: storing, using an SSD controller, one or more SSD drive parameters of the SSD in a 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 a non-volatile memory of the SSD; A method comprising:
2. The method of claim 1 , wherein the SSD is a NAND SSD.
3. 2. The method of claim 1, wherein the one or more SSD drive parameters include one or more of drive health parameters, drive internal statistics, drive thermal information, drive debug information, number of host and non-volatile memory reads and writes, media error handling data, temperature and throttle information, and firmware download information.
4. The method of claim 1 , wherein the volatile memory is one or both of a random access memory and a dynamic random access memory.
5. 2. The method of claim 1, wherein the power loss condition is a supply voltage of the SSD falling below a first threshold.
6. The method of claim 1 , wherein the non-volatile memory is a NAND memory.
7. Detecting a power restoration 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; The method of claim 1 , further comprising:
8. The method of claim 7 , wherein the power restoration condition is that the supply voltage of the SSD rises above a second threshold.
9. non-volatile memory; volatile memory; and an SSD controller coupled to the non-volatile memory and the volatile memory; 1. A solid state drive (SSD) comprising: The SSD controller storing one or more solid state drive (SSD) drive parameters of the SSD in the 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 the non-volatile memory of the SSD; configured to: SSD.
10. The SSD of claim 9 , wherein the SSD is a NAND type SSD.
11. 10. The SSD of claim 9, wherein the one or more SSD drive parameters include one or more of drive health parameters, drive internal statistics, drive thermal information, drive debug information, number of host and non-volatile memory reads and writes, media error handling data, temperature and throttle information, and firmware download information.
12. 10. The SSD of claim 9, wherein the volatile memory is one or both of a random access memory and a dynamic random access memory.
13. 10. The SSD of claim 9, wherein the power loss condition is a supply voltage of the SSD falling below a first threshold.
14. 10. The SSD of claim 9, wherein the non-volatile memory is a NAND memory.
15. The SSD controller further comprises: Detecting a power restoration 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; configured to:
15. The SSD of any one of claims 9 to 14.
16. 16. The SSD of claim 15, wherein the power restoration condition is that the supply voltage of the SSD rises above a second threshold.
17. 1. A computer program comprising computer-executable instructions that, when executed by an SSD controller, provide a method for reducing an impact of drive parameter writing on solid-state drive (SSD) performance, the method comprising: saving one or more SSD drive parameters of the SSD to a 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 a non-volatile memory of the SSD; causing the SSD controller to perform a method comprising: Computer program.
18. The computer program product of claim 17 , wherein the SSD is a NAND SSD.
19. 20. The computer program product of claim 17, wherein the one or more SSD drive parameters include one or more of drive health parameters, drive internal statistics, drive thermal information, drive debug information, number of host and non-volatile memory reads and writes, media error handling data, temperature and throttle information, and firmware download information.
20. 18. The computer program product of claim 17, wherein the volatile memory is one or both of a random access memory and a dynamic random access memory.
21. 20. The computer program product of claim 17, wherein the power loss condition is a supply voltage of the SSD falling below a first threshold.
22. 18. The computer program product of claim 17, wherein the non-volatile memory is a NAND memory.
23. The method comprises: Detecting a power restoration 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; further comprising:
23. A computer program according to any one of claims 17 to 22.
24. 24. The computer program product of claim 23, wherein the power restoration condition is that the supply voltage of the SSD rises above a second threshold.