A multi-channel hardware management method and system for solid state drives

By real-time sampling and dynamic allocation of LUN quantity, combined with temperature monitoring and rotation module optimization, the problems of uneven load and resource waste in multi-channel solid-state drives are solved, improving performance and resource utilization, and ensuring hardware stability and adaptability.

CN120045143BActive Publication Date: 2025-11-07SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510526833.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-25
Publication Date
2025-11-07
Estimated Expiration
2045-04-25

AI Technical Summary

Technical Problem

In existing technologies, LUN management for multi-channel solid-state drives suffers from uneven load distribution and resource waste, affecting performance and resource utilization, and making it difficult to adapt to complex storage application scenarios and ever-changing load demands.

Method used

The sampling module collects the average number of LUNs in multiple working channels in real time. Combined with solid-state configuration information and channel working status, the maximum number of concurrent LUNs is dynamically calculated and allocated. The LUNs are then cyclically shifted through a rotation module. The temperature monitoring module monitors the channel temperature in real time to update the limit ratio and adjust the LUN allocation.

Benefits of technology

It improves the overall resource utilization of solid-state drives, ensures that each channel operates at optimal performance, avoids overheating damage, distributes workload evenly, and extends hardware lifespan.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120045143B_ABST
    Figure CN120045143B_ABST
Patent Text Reader

Abstract

The application discloses a kind of multi-channel hardware management method and system of solid state disk, it is related to solid state disk technical field, method includes: sampling module is sampled to the multiple working channels of solid state disk, determines the average number of logical unit number of multiple working channels;Allocation module determines the maximum concurrent number of logical unit number of multiple working channels, and assigns concurrent logical unit number for each working channel;Rotation module is cyclically shifted to concurrent logical unit number in each working channel according to preset rotation period;Temperature monitoring module, the working temperature of each working channel is obtained by bypass mode, if there is the working temperature of working channel greater than preset temperature threshold, update limit proportion.The method disclosed in the application allocation module dynamically calculates and assigns the concurrent logical unit number of each channel, avoids the situation that load is not even and resource is wasted due to static allocation mechanism in the related art, improves the resource utilization of solid state disk.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of solid state disks, and particularly relates to a multi-channel hardware management method and system of a solid state disk. BACKGROUND

[0002] With the development of storage technology, a multi-channel architecture has been widely applied in a solid state disk (SSD). However, the independent characteristics of the hardware interfaces of the channels make the coordination work between the channels more complex, especially in the management and allocation of logical unit numbers (LUNs).

[0003] The LUN management method in the related art often adopts a static allocation mechanism, which may cause uneven load and resource waste, thereby affecting the performance and resource utilization of the SSD. Therefore, how to reduce the uneven load and resource waste in the multi-channel LUN management and improve the performance and resource utilization of the SSD has become a problem to be solved. SUMMARY

[0004] Therefore, the present application provides a multi-channel hardware management method and system of a solid state disk to at least solve the problem that the uneven load and resource waste in the multi-channel LUN management in the related art affect the performance and resource utilization of the SSD.

[0005] The present application provides a multi-channel hardware management method of a solid state disk, applied to a multi-channel hardware management system of a solid state disk, the system comprising a sampling module, an allocation module, a rotation module, a temperature monitoring module and a register module, and the method comprising: the sampling module samples a plurality of working channels of the solid state disk to determine the average number of logical unit numbers of the plurality of working channels, and saves the average number of logical unit numbers to the register module; wherein the sampling mode is determined based on solid state configuration information, and the solid state configuration information is preset by the firmware of the solid state disk; the allocation module reads the average number of logical unit numbers from the register module, combines the solid state configuration information, a channel working state bitmap and a limit ratio to determine the maximum concurrent number of logical unit numbers of the plurality of working channels; according to the maximum concurrent number of logical unit numbers, at least one preset allocation method is used to allocate concurrent logical unit numbers to each working channel in at least one working channel; the rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to a preset rotation period; the temperature monitoring module obtains the working temperature of each working channel through a bypass mode, and updates the limit ratio if the working temperature of the working channel is greater than a preset temperature threshold; wherein the sampling module is paused during the update of the limit ratio.

[0006] The application further provides a multi-channel hardware management system of a solid state disk, comprising a sampling module, an allocation module, a rotation module, a temperature monitoring module and a register module, wherein: the sampling module is configured to sample a plurality of working channels of the solid state disk, determine a logical unit number average quantity of the plurality of working channels, and save the logical unit number average quantity to the register module; wherein the sampling mode is determined based on solid state configuration information, which is preset by firmware of the solid state disk; the allocation module is configured to read the logical unit number average quantity from the register module, determine a logical unit number maximum concurrent quantity of the plurality of working channels in combination with the solid state configuration information, a channel working state bitmap and a limit ratio, and allocate a concurrent logical unit number to each working channel in at least one working channel by using at least one preset allocation method according to the logical unit number maximum concurrent quantity; the rotation module is configured to cyclically shift the concurrent logical unit number in each working channel according to a preset rotation period; and the temperature monitoring module is configured to obtain a working temperature of each working channel through a bypass mode, and update the limit ratio if the working temperature of the working channel is greater than a preset temperature threshold.

[0007] The application further provides an electronic device, comprising a memory configured to store a computer program, and a processor configured to execute the computer program to implement the steps of any of the above-mentioned multi-channel hardware management methods of a solid state disk.

[0008] The application further provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the steps of any of the above-mentioned multi-channel hardware management methods of a solid state disk.

[0009] The application further provides a computer program product, comprising a computer program, and the computer program is executed by a processor to implement the steps of any of the above-mentioned multi-channel hardware management methods of a solid state disk.

[0010] The sampling module in the application can collect the LUN average quantity of the plurality of working channels in real time, which can accurately reflect the working state of each channel, and the allocation module can dynamically calculate and allocate the maximum concurrent LUN quantity of each channel based on the sampling result, thereby avoiding the load imbalance and resource waste caused by the static allocation mechanism in the related art, improving the overall resource utilization of the SSD, and ensuring that each channel can operate at the best performance.

[0011] In addition, the temperature monitoring module monitors the working temperature of each channel in real time through the bypass mode, and when the temperature of certain channels exceeds the preset threshold, the limiting ratio is updated in time, the LUN allocation is adjusted, and the power consumption and temperature are reduced, so that the risk of hardware damage under high working temperature can be effectively avoided, and the running robustness of the SSD is further improved. The rotation module cyclically shifts the LUN according to a preset period, so that each working channel can uniformly bear the working load at different time periods, avoiding excessive wear or performance degradation of certain channels due to long-time high load, and further improving the overall resource utilization rate of the SSD. BRIEF DESCRIPTION OF DRAWINGS

[0012] In order to more clearly illustrate the embodiments of the present application, the drawings needed in the embodiments will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0013] Figure 1a An exemplary schematic diagram of the architecture of the multi-channel hardware management system of the solid state disk to which the multi-channel hardware management method of the solid state disk provided by the embodiments of the present application is applied;

[0014] Figure 1b A flowchart of the multi-channel hardware management method of the solid state disk provided by the embodiments of the present application;

[0015] Figure 2 A rotation flowchart of the multi-channel hardware management method of the solid state disk provided by the embodiments of the present application;

[0016] Figure 3 A sampling flowchart of the multi-channel hardware management method of the solid state disk provided by the embodiments of the present application;

[0017] Figure 4 A limiting ratio updating flowchart of the multi-channel hardware management method of the solid state disk provided by the embodiments of the present application;

[0018] Figure 5 A structural schematic diagram of the multi-channel hardware management system of the solid state disk provided by the embodiments of the present application;

[0019] Figure 6 A structural schematic diagram of another multi-channel hardware management system of the solid state disk provided by the embodiments of the present application. DETAILED DESCRIPTION

[0020] In the technical field of SSDs, with the increasing demand for storage capacity and the increasing demand for high performance, multi-channel architecture has been widely used in SSDs. However, the hardware interfaces of each channel in the SSD usually work independently, which makes it difficult to coordinate and manage between multiple working channels. The LUN management method in the related art usually relies on a simple fixed allocation strategy or a static allocation mechanism based on limited parameters, which often cannot flexibly respond to complex and changing workloads and system running states.

[0021] In the SSD system of the related art, LUN resources are usually allocated once at system initialization, and rarely or almost never dynamically adjusted thereafter. This fixed LUN allocation method has many problems in practical applications. For example, some channels may have too many allocated LUNs, causing command processing delays or even timeouts under high load, thereby seriously affecting the overall system performance. On the other hand, some channels may not be able to fully utilize their hardware processing capabilities due to idle LUN resources, resulting in resource waste and reducing the overall performance and resource utilization of the system.

[0022] A typical SSD LUN management scheme in the related art usually allocates LUN resources according to pre-set fixed rules during system initialization. For example, assuming that the system has 8 channels and the total number of LUNs is 64, these LUNs may be evenly distributed to each channel, with 8 LUNs allocated to each channel. In this scheme, regardless of the actual load of each channel, the allocation of LUN resources is not dynamically adjusted. This scheme fails to consider the performance differences between channels, changes in workloads, and the overall running state of the system, lacks flexibility, and is difficult to cope with modern complex storage application scenarios.

[0023] The above related technology often has the following problems in the solving process:

[0024] 1. Due to the large differences in access requirements of various application programs or users to storage channels, the workloads between channels show highly dynamic changes in actual operation. However, the related technology fails to perceive or respond to these dynamic changes, resulting in command delays or even timeouts due to insufficient LUN resources when the high-load channel has too much workload, seriously affecting the response speed and overall performance of the system.

[0025] 2. A large number of LUN resources in low-load channels are in an idle state, and these underutilized resources not only result in hardware resource waste, but also increase the energy consumption of the system, reducing the energy efficiency of the SSD system.

[0026] 3. Related technologies also have limitations in terms of system scalability and compatibility, making it difficult to adapt to the ever-increasing storage demands and constantly changing application scenarios. This deficiency severely restricts further improvements in SSD system performance and the expansion of its functionality.

[0027] To address the aforementioned issues, various embodiments of this application provide a multi-channel hardware management method for solid-state drives (SSDs), applied to a multi-channel hardware management system for SSDs. The system includes a sampling module, an allocation module, a rotation module, a temperature monitoring module, and a register module. The method includes: the sampling module sampling multiple working channels of the SSD, determining the average number of logical unit numbers for the multiple working channels, and saving the average number of logical unit numbers to the register module; wherein, the sampling method is determined based on SSD configuration information, which is preset by the SSD firmware; the allocation module reading the average number of logical unit numbers from the register module, combining the SSD configuration information, channel working status bitmap, and limit ratio, determining the maximum concurrent number of logical unit numbers for the multiple working channels; according to the maximum concurrent number of logical unit numbers, using at least one preset allocation method, allocating concurrent logical unit numbers to each working channel in at least one working channel; the rotation module cyclically shifting the concurrent logical unit numbers in each working channel according to a preset rotation cycle; the temperature monitoring module acquiring the working temperature of each working channel in bypass mode, and updating the limit ratio if the working temperature of any working channel exceeds a preset temperature threshold; wherein, during the update of the limit ratio, the sampling module pauses sampling.

[0028] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0029] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0030] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0031] Please refer to Figure 1a ,Figure 1a An exemplary schematic diagram of an architecture of a multi-channel hardware management system of a solid state disk to which a multi-channel hardware management method of a solid state disk provided by an embodiment of the present application is applied. As shown, the system comprises a sampling module, an allocation module, a rotation module, a temperature monitoring module, and a register module. Figure 1a

[0032] The system can be deployed inside the SSD to optimize the process of data interaction between the host chip of the SSD and the NAND type non-volatile memory (NAND Flash) inside the SSD. The host chip of the SSD runs the firmware of the SSD, and the firmware can include the basic operation logic and various control algorithms of the SSD.

[0033] Further, the sampling module can sample a plurality of working channels inside the SSD through a local interface and save the sampling results to the register module.

[0034] The register module can communicate with the firmware through an Advanced Peripheral Bus (APB) or an Advanced eXtensible Interface (AXI) and synchronize the sampling results of the sampling module to the firmware.

[0035] Further reference is made to Figure 1b , Figure 1b A flowchart of a multi-channel hardware management method of a solid state disk provided by an embodiment of the present application. The flow of the method can include the following steps:

[0036] Step S101, the sampling module samples a plurality of working channels of the solid state disk, determines the average number of logical unit numbers of the plurality of working channels, and saves the average number of logical unit numbers to the register module.

[0037] In this embodiment, the sampling method is determined based on solid state configuration information, which is preset by the firmware of the solid state disk.

[0038] The sampling module reads the solid state configuration information from the register module, obtains the sampling method and the channel working state bitmap from the solid state configuration information, filters the plurality of working channels from all channels of the SSD according to the channel working state bitmap, and calculates the average number of logical unit numbers of each working channel through the sampling method.

[0039] The channel working state bitmap (bitmap) can be a binary bitmap structure arranged by bits to identify the current working state of each channel, where each bit in the channel working state bitmap represents the working state of a channel, and a value of 1 indicates that the corresponding channel is a working channel, and a value of 0 indicates that the corresponding channel is a non-working channel.​

[0040] The working channel can refer to an SSD channel that is currently in an active state, has normal data transmission capability, and can complete data read / write operations with a NAND flash chip. The non-working channel can include at least one of the following: an unenabled channel, an idle channel, or an abnormal channel.

[0041] For example, if the channel working state bitmap is represented as "16'b0001_0000_1001_0110" (where "16'b" can represent 16-bit binary, which is "0001 0000 1001 0110" respectively), four working channels are selected from the 16 channels of the SSD, which are channel (channel, ch) 1, ch2, ch4, ch7, and ch12. The sampling module determines the sampling period and the sampling step according to the sampling mode, samples the four working channels, and calculates the average number of logical unit numbers of the four working channels. The average number of logical unit numbers is saved to the register module. For example, the sampling period of the sampling module is 3 time periods, and the LUN numbers of the working channel ch1 collected in 3 time periods are 6, 8, and 10 respectively, and the average number of LUNs corresponding to ch1 is 12.

[0042] In step S102, the allocation module reads the average number of logical unit numbers from the register module, combines the solid state configuration information, the channel working state bitmap, and the limit ratio to determine the maximum concurrent number of logical unit numbers of the plurality of working channels; and according to the maximum concurrent number of logical unit numbers, at least one preset allocation method is used to allocate concurrent logical unit numbers to each working channel in at least one working channel.

[0043] In this embodiment, the limit ratio can be an adjustment factor for adjusting the maximum concurrent number of LUNs of each working channel. The essence of the limit ratio is a ratio coefficient less than or equal to 1, which can be adjusted in real time with temperature changes.

[0044] The allocation module determines the preset allocation method according to the solid state configuration information, and allocates the maximum concurrent number of LUNs to each working channel according to the preset allocation method to determine the concurrent LUNs of each working channel.

[0045] In step S103, the rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to a preset rotation period.

[0046] In this embodiment, the rotation module reads the preset rotation period from the register module, where the preset rotation period is used to represent how long a unit of time is executed once.

[0047] The rotation module cyclically shifts the concurrent LUNs of each working channel according to the preset rotation period, and saves the result of the cyclic shift to the register module.

[0048] The cyclic shift can refer to adjusting the positions of the assigned concurrent LUNs in each working channel according to a preset shift mode, so as to realize the fair rotation access of each working channel.

[0049] For example, assuming that the initial concurrent LUNs of {ch1, ch2, ch4, ch7, ch12} are {2, 2, 3, 3, 2}, the latest concurrent LUNs can be {2, 2, 2, 3, 3} after the rotation module performs cyclic shift on the initial concurrent LUNs.

[0050] In step S104, the temperature monitoring module obtains the working temperature of each working channel through the bypass mode, and updates the limit ratio if the working temperature of the existing working channel is greater than the preset temperature threshold.

[0051] In the embodiment, the sampling module is paused during the update of the limit ratio.

[0052] The limit ratio can be updated by the temperature monitoring module when the bypass mode is adopted.

[0053] Specifically, the temperature monitoring module detects the working temperature of each working channel in real time, and updates the limit ratio when it is detected that the working temperature of the existing working channel is greater than the preset temperature threshold.

[0054] For example, when the limit ratio is 0.8, the temperature monitoring module detects that the working temperature of the existing working channel is greater than the preset temperature threshold, and updates the initial limit ratio to 0.5.

[0055] Here, when the bypass mode is adopted, the update of the limit ratio is active update.

[0056] In one possible implementation, the method further includes:

[0057] When the non-bypass mode is adopted, the limit ratio is updated by the firmware, the firmware updates the limit ratio at a fixed time, and sends the updated limit ratio to the register module.

[0058] Here, when the non-bypass mode is adopted, the update of the limit ratio is passive update.

[0059] In the multi-channel hardware management method and system of the solid state drive in the above-mentioned embodiments of the present application, the LUN average number of the plurality of working channels is collected in real time by the sampling module in the present application, which can accurately reflect the working state of each channel, and the maximum concurrent LUN number of each channel is dynamically calculated and allocated by the allocation module based on the sampling result, avoiding the load imbalance and resource waste caused by the static allocation mechanism in the related art, improving the overall resource utilization of the SSD, and ensuring that each channel can operate at the best performance. In addition, the temperature monitoring module monitors the working temperature of each channel in real time through the bypass mode, and when the temperature of some channels exceeds the preset threshold, the limit ratio is updated in time, the LUN allocation is adjusted to reduce the power consumption and temperature, which can effectively avoid the risk of hardware damage under high working temperature, and further improve the operation robustness of the SSD. The rotation module cyclically shifts the LUN according to the preset period, so that each working channel can evenly bear the working load at different time periods, avoiding excessive wear or performance degradation of some channels due to long-term high load, and further improving the overall resource utilization of the SSD.

[0060] In one possible implementation of the above-mentioned embodiment, in step S101, the sampling module samples the plurality of working channels of the solid state drive to determine the logical unit number average number of the plurality of working channels, and before saving the logical unit number average number to the register module, the method further comprises:

[0061] The register module receives the preset solid state configuration information from the firmware, and the solid state configuration information includes at least one of the following: the maximum working number of logical unit numbers, the minimum working number of logical unit numbers, the channel working state bitmap, the sampling mode or the rotation mode; wherein the register module communicates with the firmware through a preset communication interface.

[0062] In the present embodiment, the firmware initializes the SSD, and sets the firmware configuration information during the initialization process to set and optimize various working parameters and hardware characteristics of the SSD.

[0063] The register module communicates with the firmware through an APB bus or an AXI interface, and receives the firmware configuration information set by the firmware, which includes but is not limited to: the maximum working number of logical unit numbers, the minimum working number of logical unit numbers, the channel working state bitmap, the sampling mode or the rotation mode.

[0064] Wherein, the logical unit number maximum working quantity (hereinafter referred to as Lnum_max0) represents the maximum LUN quantity that each channel can access concurrently in a normal working state, and the logical unit number minimum working quantity (hereinafter referred to as Lnum_min) represents the minimum LUN quantity that each channel needs to access concurrently at least. The sampling mode determines the sampling manner, sampling period and sampling step. The rotation mode also determines the preset rotation period, rotation step and rotation manner.

[0065] Wherein, the setting of Lnum_max0 can be used to limit the LUN quantity that each channel can access concurrently in a high load state, avoiding performance bottleneck or resource overload caused by excessive concurrency; and the setting of Lnum_min can ensure that each channel can still maintain basic access capability in a minimum working state, avoiding complete idling.

[0066] For example, the Lnum_max0 of channel ch1 is 16, which can represent that ch1 can handle a maximum of 16 LUNs in a high load state, and if the working quantity exceeds 16, the channel may be unable to continue to work effectively due to overload, resulting in performance degradation; the Lnum_min of channel ch1 is 2, which can represent that ch1 needs to handle at least 2 LUNs to work effectively.

[0067] In the multi-channel hardware management method and system of the solid state disk of the above-mentioned embodiments of the present application, by setting the maximum and minimum concurrent LUN quantity (Lnum_max0 and Lnum_min) of each channel, it is ensured that the SSD does not overload in a high load state, thereby avoiding problems such as channel performance degradation, command timeout, etc., and improving the transmission performance of the SSD. Through the configuration of the channel working state bitmap and the sampling mode, the sampling period, the sampling step and the working state can be flexibly adjusted, so as to dynamically collect the load conditions of each channel, and adjust the resource allocation strategy according to the sampling result, thereby improving the adaptability of the system in the face of different working loads and variable application scenarios.

[0068] In one possible implementation manner of the above-mentioned step S101, the sampling module samples the plurality of working channels of the solid state disk, and determines the logical unit number average quantity of the plurality of working channels, including:

[0069] The sampling module sets the corresponding sampling period and sampling step according to the sampling mode in the solid state configuration information; wherein, the sampling mode includes a low-frequency sampling mode and a high-frequency sampling mode;

[0070] The sampling module collects the logical unit number quantity from the plurality of working channels at regular intervals according to the sampling period and the sampling step, and calculates the logical unit number average quantity of the plurality of working channels.

[0071] In the embodiment, the low-frequency sampling mode can represent a long sampling period, a large sampling step and a low sampling frequency, and can be applicable to a low-load condition. Conversely, the high-frequency sampling mode can represent a short sampling period, a small sampling step and a high sampling frequency, and can be applicable to a high-load condition.

[0072] The sampling period refers to a time interval between two consecutive samplings, and the sampling step refers to a number of channels selected by the system in each sampling.

[0073] The sampling module determines the corresponding sampling period and sampling step according to the sampling mode, and periodically samples the multiple working channels through the local interface according to the sampling period and sampling step pair, and saves the sampling result to the register module.

[0074] The local interface can be a data path or a command interaction interface established between the sampling module and the channel controller (Channel Controller) inside the SSD. For example, the local interface can include but is not limited to a register interface, a bus interface, and an internal command interface.

[0075] In the multi-channel hardware management method and system of the solid state disk in the above embodiments of the present application, the sampling module dynamically collects the LUN of each working channel and calculates the average number of LUNs, providing real-time and accurate basis for subsequent concurrent LUN allocation, thereby improving the dynamicity of SSD resource allocation. By supporting two sampling modes of high frequency and low frequency, automatic switching can be realized according to the current load, which helps to balance system performance and sampling resource overhead. The sampling module directly interacts with the channel controller through the local interface without relying on the host side, realizes internal closed-loop sampling of the controller, and reduces external communication overhead and delay.

[0076] In one possible implementation of the above step S102, the allocation module reads the average number of logical unit numbers from the register module, combines the solid state configuration information, the channel working state bitmap and the limit ratio, and determines the maximum number of concurrent logical unit numbers of at least one working channel in the multiple working channels, including the following steps:

[0077] Step a1, the allocation module reads the average number of logical unit numbers, the maximum number of working logical unit numbers, the minimum number of working logical unit numbers, the channel working state bitmap and the limit ratio from the register module, and determines whether the limit ratio is updated.

[0078] The allocation module reads the average number of LUNs, Lnum_max0, Lnum_min, the channel working state bitmap and the limit ratio from the register module.

[0079] The limit ratio obtained by the distribution module can be directly read from the firmware configuration through the register module, or directly obtained from the temperature control unit through the bypass mode, so that the working state of the LUN can be adjusted faster, and then the temperature is adjusted.

[0080] In step a2, if the limit ratio is not updated, the distribution module sets the maximum number of logical unit numbers as the maximum number of logical unit numbers.

[0081] If the limit ratio is not updated, the distribution module sets Lnum_max0 as the maximum number of logical unit numbers (hereinafter referred to as Lnum_max1), that is, the distribution module sets Lnum_max1 = Lnum_max0.

[0082] Here, if the limit ratio is not updated, that is, the temperature of the current working channel is still less than the preset temperature threshold, the default allows the SSD to exert its maximum performance.

[0083] In step a3, if the limit ratio is updated, the distribution module determines the product of the updated limit ratio and the average number of logical unit numbers, and sets the upward rounding result of the product as the updated maximum number of logical unit numbers.

[0084] If the limit ratio is updated, the distribution module determines the updated Lnum_max1 using the following formula:

[0085]

[0086] Wherein, Lnum_avg is the average number of LUNs, limit_ratio is the limit ratio, Ceiling() indicates the upward rounding.

[0087] In the multi-channel hardware management method and system of the solid state disk of the above-mentioned embodiments of the present application, the distribution module reads the LUN average number of a plurality of working channels from the register module, and dynamically calculates the LUN maximum concurrent number of each channel in combination with the solid state configuration information, so that the resource allocation of each channel is more accurate, and the performance of the SSD is reduced due to excessive allocation or resource idling. By detecting whether the limit ratio is updated, the distribution module can flexibly adjust the resource allocation of each channel according to the current working state and temperature condition, and avoid overheating or resource waste caused by excessive concurrency. Through the bypass mode, the limit ratio can be directly obtained from the temperature control unit and quickly updated. This way provides higher flexibility, so that the system can quickly respond and adjust the working state according to the real-time temperature change, without relying on firmware update.

[0088] In one possible implementation of the step S102, according to the maximum concurrent number of logical unit numbers, at least one preset allocation method is used to allocate the concurrent logical unit numbers to each working channel in the at least one working channel, including the following steps.

[0089] In step b1, if the minimum workable number of logical unit numbers is greater than the maximum concurrent number of logical unit numbers, the allocation module allocates the concurrent logical unit numbers to each working channel according to the minimum workable number of logical unit numbers.

[0090] If Lnum_min > Lnum_max1, the allocation module allocates according to Lnum_min to ensure that at least a certain number of LUNs can work normally.

[0091] Here, since Lnum_min > Lnum_max1, it represents that each working channel must maintain at least a certain number of concurrent LUNs under the minimum load, and the allocation module allocates based on Lnum_min to ensure that even the working channel with the lowest load has enough concurrent LUNs to maintain its basic working ability, thereby avoiding the working channel from being completely idle.

[0092] In step b2, if the minimum workable number of logical unit numbers is less than the maximum concurrent number of logical unit numbers, the allocation module allocates the concurrent logical unit numbers to each working channel according to the maximum concurrent number of logical unit numbers.

[0093] If Lnum_min < Lnum_max1, the allocation module allocates according to Lnum_max1 to allocate as many concurrent LUNs as possible to each working channel.

[0094] In the multi-channel hardware management method and system of the solid state disk in the above embodiments of the present application, under low load conditions, the minimum working requirement of each channel can still be ensured to be met, thereby avoiding the channel from entering a "starvation" state and being unable to process any task. Under high load conditions, by allocating more LUNs to each working channel, system resources are fully utilized, and the overall concurrent performance and throughput of the SSD are improved.

[0095] In one possible implementation of the step b2, if the minimum workable number of logical unit numbers is less than the maximum concurrent number of logical unit numbers, the allocation module allocates the concurrent logical unit numbers to each working channel according to the maximum concurrent number of logical unit numbers, including one of the following:

[0096] In step b21, if the maximum concurrent number of logical unit numbers is divisible by the number of working channels, the allocation module evenly allocates the maximum concurrent number of logical unit numbers to each working channel; or,

[0097] In step b22, if the maximum number of concurrent LUNs cannot be evenly divided by the number of working channels, the allocation module uses a first preset allocation mode to sequentially allocate the remainder to the working channels in order; or,

[0098] In step b23, if the maximum number of concurrent LUNs cannot be evenly divided by the number of working channels, the allocation module uses a second preset allocation mode to randomly allocate the remainder to at least one working channel.

[0099] In this embodiment, if Lnum_max1 can be evenly divided by the number of working channels, Lnum_max1 is evenly allocated to each working channel; or,

[0100] If Lnum_max1 cannot be evenly divided by the number of working channels, a remainder sequential allocation mode is used to sequentially allocate the remainder to the working channels in order; or,

[0101] If Lnum_max1 cannot be evenly divided by the number of working channels, a remainder random allocation mode is used to randomly allocate the remainder to at least one working channel.

[0102] For example, assuming that Lnum_max1 is 12 and the number of working channels is 6, Lnum_max1 can be evenly divided by the number of working channels, and 2 concurrent LUNs are allocated to each working channel.

[0103] Assuming that Lnum_max1 is 12 and the working channels are ch1, ch2, ch4, ch7, ch12, the number of working channels is 5, Lnum_max1 cannot be evenly divided by the number of working channels, and the remainder is 2. If the remainder sequential allocation mode is used, 2 concurrent LUNs are allocated to each working channel first, and then 1 is allocated to ch1 and ch2 in order, and the number of concurrent LUNs of the allocated working channels is {ch1: 3, ch2: 3, ch4: 2, ch7: 2, ch12: 2}. If the remainder random allocation mode is used, 2 concurrent LUNs are allocated to each working channel first, and then 1 is randomly allocated to two working channels, and the number of concurrent LUNs of the allocated working channels is {ch1: 2, ch2: 3, ch4: 3, ch7: 2, ch12: 2}.

[0104] Here, the remainder sequential allocation mode can ensure the relative fairness of LUN allocation of each channel, and the remainder random allocation mode can help reduce the risk of excessive number of low channels caused by the allocation mode, thereby reducing the risk of life decline.

[0105] Further, the allocation module stores the allocation scheme in the register module.

[0106] In the multi-channel hardware management method and system of the solid state disk of the above embodiments of the present application, through the sequential allocation and random allocation strategies, when the LUN cannot be evenly divided, the load allocation of each working channel can be optimized. Whether it is sequential allocation or random allocation, the maximum utilization of system resources is ensured, and the risk of idling or overloading is reduced. Through both random allocation and sequential allocation, the system can flexibly adjust the load strategy according to the actual situation. This enables the system to adapt to different working environments and load changes, improving the adaptability of the system.

[0107] In one possible implementation of the above step S103, the rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to the preset rotation period, including:

[0108] The rotation module reads the rotation mode from the register module, and if the rotation mode is the time slice rotation scheduling mode, determines the preset rotation period corresponding to the time slice rotation scheduling mode.

[0109] The rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to the preset rotation period through the channel working state bitmap.

[0110] In this embodiment, the time slice rotation scheduling mode can refer to rotating the concurrent LUNs of each working channel within a fixed time slice interval. The preset rotation period can refer to the time interval defined under the time slice rotation scheduling mode, used to control the time frequency of LUN rotation.

[0111] The rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to the preset rotation period through the channel working state bitmap, which can include:

[0112] The rotation module determines the working channels in the channel according to the channel working bitmap, and cyclically shifts the working channels with a value of 1 in the channel working bitmap, and skips the cyclic shift for the non-working channels with a value of 0 in the channel working bitmap. The cyclic shift method can include but is not limited to cyclic right shift or cyclic left shift.

[0113] For example, please refer to Figure 2 , Figure 2 A rotation flowchart of a multi-channel hardware management method of a solid state disk provided by an embodiment of the present application is shown in Figure 2 , which includes:

[0114] Suppose the initial allocation of concurrent LUNs of working channels is {ch1: 3, ch2: 3, ch4: 2, ch7: 2, ch12: 2}, and according to the preset rotation period, the first cycle shift is performed on {ch1: 3, ch2: 3, ch4: 2, ch7: 2, ch12: 2} to determine the first rotation condition: the 3 concurrent LUNs in ch1 are left shifted to ch2, the 3 concurrent LUNs in ch2 are left shifted to ch4, the 2 concurrent LUNs in ch4 are left shifted to ch7, the 2 concurrent LUNs in ch7 are left shifted to ch12, and the 2 concurrent LUNs in ch12 are left shifted to ch1. Further, the second cycle shift is performed on the first rotation condition to determine the second rotation condition. The subsequent is similar.

[0115] In the multi-channel hardware management method and system of the solid state disk in the above embodiments of the present application, the rotation module performs dynamic cycle shift on the concurrent logical unit numbers in each working channel through the time slice rotation scheduling mode in combination with the channel working state bitmap, so as to avoid that some channels maintain high load for a long time and accelerate wear and tear, thereby improving the load balancing of the working channels. In this way, the load balancing of each channel can be effectively ensured, efficient work of multiple channels is realized, the situation that the NAND flash memory life rapidly decreases due to too many concurrent numbers of a channel is avoided, and the problem that a channel is in a "starvation" state and cannot fully exert its performance due to too few concurrent numbers of the channel is also avoided.

[0116] In one possible implementation of the above step S103, the method further includes: the rotation module obtaining the program / erase operation number of each working channel, and determining the working life of each working channel according to the program / erase operation number;

[0117] If the working life of the target working channel is less than the preset threshold, the rotation module shortens the preset rotation period to reduce the rotation residence time of the concurrent logical unit number in the target working channel;

[0118] If the working life of the target working channel is greater than the preset threshold, the rotation module increases the preset rotation period to prolong the rotation residence time of the concurrent logical unit number in the target working channel.

[0119] In the present embodiment, the rotation module obtains the program / erase operation number (P / E Cycles) of each working channel from the register module, where the P / E Cycles can refer to a complete cycle composed of one complete erase operation and one or more programming (or writing) operations of a channel, and the number of cycle accumulations determines the wear degree (i.e. the life) of the channel.

[0120] If the working life of the target working channel is less than the preset threshold, the rotation module shortens the preset rotation period to reduce the rotation residence time of the concurrent LUN in the target working channel;

[0121] If the working life of the target working channel is greater than the preset threshold, the rotation module increases the preset rotation period to extend the rotation residence time of the concurrent LUN in the target working channel.

[0122] For example, it is assumed that the preset rotation period is 40 clock cycles. If the working life of the target working channel is less than the preset threshold, the rotation module shortens the preset rotation period to 35 clock cycles to reduce the rotation residence time of the concurrent LUN in the target working channel; if the working life of the target working channel is greater than the preset threshold, the rotation module increases the preset rotation period to 45 clock cycles to extend the rotation residence time of the concurrent LUN in the target working channel.

[0123] Here, by shortening or delaying the rotation residence time of the concurrent LUN in the target working channel, the life consistency between the working channels is ensured, and the overall service life of the SSD is extended.

[0124] In the multi-channel hardware management method and system of the solid state disk of the above-mentioned embodiments of the present application, by shortening or delaying the rotation residence time of the concurrent LUN in the target working channel, the dynamic balance of the load and life of the channel is realized, and the reliability and service life of the NAND flash memory are improved. By regularly rotating the concurrent LUN, the performance imbalance of individual channels due to long-term resource scarcity or exclusive use is prevented, effectively alleviating the performance jitter and resource competition problems, and improving the system running stability.

[0125] In one possible implementation of the above-mentioned embodiments, in the temperature monitoring module of step S104, the working temperature of each working channel is obtained through the bypass mode, and if the working temperature of the working channel is greater than the preset temperature threshold, the method further comprises:

[0126] The sampling module continues to sample the plurality of working channels to determine the latest average number of logical unit numbers of the plurality of working channels, and saves the latest average number of logical unit numbers to the register module;

[0127] The allocation module reads the latest average number of logical unit numbers from the register module, combines the solid state configuration information, the channel working state bitmap, and the latest limit ratio to determine the latest maximum concurrent number of logical unit numbers of at least one working channel in the plurality of working channels; and allocates the latest concurrent logical unit numbers to each working channel according to the latest maximum concurrent number of logical unit numbers.

[0128] The rotation module cyclically shifts the latest concurrent logical unit number in each working channel according to a preset rotation period.

[0129] In the embodiment, the modules in the system can be triggered based on a multi-module linkage adjustment mechanism driven by dynamic temperature control. Specifically, when detecting temperature abnormalities or a limitation ratio update caused by firmware update, the system will trigger the resampling of the sampling module, the reallocation of the allocation module, and the recirculation shift of the rotation module to ensure the stable operation of the SSD.

[0130] The timing of sampling by the sampling module can be after the firmware is initialized, or after each limitation ratio update.

[0131] In the multi-channel hardware management method and system of the solid state disk of the above-mentioned embodiments of the present application, the temperature monitoring module obtains the channel temperature in bypass mode, and dynamically adjusts the limitation ratio when detecting that the channel temperature exceeds the preset threshold, or directly obtains the updated limitation ratio from the firmware in non-bypass mode, effectively avoiding the risk of overheating caused by excessive concurrency of high-temperature channels, and improving the temperature control intelligence of the system. Once the limitation ratio is updated, the linkage refresh of the three core modules of sampling, allocation and rotation is automatically triggered, and a closed-loop control mechanism driven by dynamic temperature control is constructed to ensure the efficiency and safety of SSD operation.

[0132] In one possible implementation of the above step S104, the temperature monitoring module obtains the working temperature of each working channel in bypass mode, and if the working temperature of the working channel is greater than the preset temperature threshold, the limitation ratio is updated, including:

[0133] The temperature monitoring module sets a first preset temperature threshold, a second preset temperature threshold, and a third preset temperature threshold; wherein the third preset temperature threshold is greater than the second preset temperature threshold, and the second preset temperature threshold is greater than the first preset temperature threshold;

[0134] If the working temperature of the working channel is greater than the first preset temperature threshold, the temperature monitoring module reduces the limitation ratio to a first limitation ratio corresponding to the first preset temperature threshold;

[0135] If the working temperature of the working channel is greater than the second preset temperature threshold, the temperature monitoring module reduces the first limitation ratio to a second limitation ratio corresponding to the second preset temperature threshold;

[0136] If the working temperature of the working channel is greater than the third preset temperature threshold, the temperature monitoring module triggers an emergency protection mechanism to suspend the concurrent logical unit number operation of the working channel.

[0137] In the embodiment, the first preset temperature threshold corresponds to a low temperature state, which can be used to represent that the working channel is in a normal working range; the second preset temperature threshold corresponds to a medium temperature state, which can be used to represent that the temperature of the working channel is close to a safety threshold; and the third preset temperature threshold corresponds to a high temperature state, which can be used to represent that the temperature of the working channel is too high.

[0138] For example, the first preset temperature threshold can be 40 DEG C, and the corresponding first limiting ratio is 0.8; the second preset temperature threshold can be 60 DEG C, and the corresponding second limiting ratio is 0.5; and the third preset temperature threshold can be 75 DEG C. If the working temperature of the working channel is greater than 40 DEG C, the temperature monitoring module reduces the limiting ratio from 1 to 0.8; if the working temperature of the working channel is greater than 60 DEG C, the temperature monitoring module reduces the limiting ratio from 0.8 to 0.5; and if the working temperature of the working channel is greater than 75 DEG C, the temperature monitoring module suspends the concurrent LUN operation of the working channel.

[0139] Further, the emergency protection mechanism can include but is not limited to suspending the concurrent LUN operation, dynamically adjusting the working frequency, and reducing the memory access rate.

[0140] In the multi-channel hardware management method and system of the solid state disk in the above-mentioned embodiments of the present application, as the temperature rises, the temperature monitoring module gradually reduces the limiting ratio, which can avoid channel overload, thereby reducing hardware wear and tear and overheating risk. When the temperature reaches the critical threshold, the system can enter the protection mode, effectively preventing hardware damage caused by high temperature, and enhancing the adaptive ability of the system to environmental changes.

[0141] In one possible implementation of the above-mentioned embodiment, the system further includes a load prediction module, and the method further includes:

[0142] The load prediction module obtains historical working load data of the plurality of working channels from the register module, analyzes the historical working load data through a machine learning model, predicts the load trend of the plurality of working channels in a future preset time period, and sends the load trend prediction result to the allocation module.

[0143] The allocation module dynamically adjusts the maximum number of logical unit numbers concurrently in the future preset time period according to the load trend prediction result, and optimizes the allocation strategy.

[0144] In the embodiment, the load prediction module obtains historical working load data of the plurality of working channels from the register module, wherein the historical working load data can include at least one of the following: historical concurrent LUN, request read / write quantity, task delay, etc.

[0145] The load prediction module analyzes the historical working load data through a pre-trained machine learning model, and predicts the load trend of the plurality of working channels in a future preset time period.

[0146] Here, exemplarily, the machine learning model can include at least one of a regression analysis model, a time series analysis model, a long short-term memory network model, etc., and the pre-training process of the machine learning model is not described herein.

[0147] The allocation module dynamically adjusts the maximum number of concurrent LUNs in the future preset time period according to the load trend prediction result, including:

[0148] If the load trend prediction result is an increase in load, the allocation module allocates more concurrent LUNs to the working channels in advance; if the load trend prediction result is a decrease in load, the allocation module reduces the concurrent LUNs of the working channels in advance.

[0149] In the multi-channel hardware management method and system of the solid state disk of the above-mentioned embodiments of the present application, the linkage of the load prediction module and the allocation module enables the system to respond to changes in load in a timely manner, avoids performance degradation caused by load fluctuations, and ensures the continuous and stable operation of the system. By optimizing the allocation strategy based on the load trend prediction result, reasonable resource allocation can be ensured for all channels under different load conditions, and overloading channels and idle channels can be avoided.

[0150] In one possible implementation of the above-mentioned embodiments, the system further includes a frequency adjustment module, and the method further includes:

[0151] If the temperature monitoring module updates the limit ratio, the frequency adjustment module adjusts the working frequency of each working channel in the plurality of working channels according to a preset mapping relationship, including:

[0152] If the working frequencies of each working channel are consistent, the working frequencies of each working channel are uniformly adjusted according to the preset mapping relationship; wherein the preset mapping relationship is used to represent the relationship between the limit ratio and the working frequency;

[0153] If the working frequencies of each working channel are inconsistent, the working frequencies corresponding to each working channel are adjusted respectively, and the working frequencies of each working channel are circularly shifted.

[0154] In this embodiment, the NAND flash memory can support multiple working frequencies. For example, the NAND flash memory can support a frequency range of 30-1800 megahertz (MHz).

[0155] When the limit ratio is adjusted, the frequency adjustment module is triggered to adjust the working frequency of the working channel. Wherein, the frequency adjustment module judges the frequency state of the current working channel, if the frequencies of all working channels are consistent, uniform adjustment is performed; if the frequencies of the working channels are different, the working frequencies are adjusted independently and the rotation shift is performed.

[0156] Exemplarily,Figure 2 For example, if the frequencies of all working channels are consistent, assuming that the working frequencies of each working channel are {ch1: 1800Hz, ch2: 1800Hz, ch4: 1800Hz, ch7: 1800Hz, ch12: 1800Hz}, after updating the limiting ratio, the working frequencies are uniformly adjusted to {ch1: 1000Hz, ch2: 1000Hz, ch4: 1000Hz, ch7: 1000Hz, ch12: 1000Hz}. If the frequencies of the working channels are inconsistent, assuming that the working frequencies of each working channel are {ch1: 1800Hz, ch2: 1000Hz, ch4: 1800Hz, ch7: 600Hz, ch12: 1200Hz}, the working frequencies are respectively adjusted to {ch1: 1600Hz, ch2: 9000Hz, ch4: 1600Hz, ch7: 533Hz, ch12: 1100Hz}, and rotation shift is performed.

[0157] In the multi-channel hardware management method and system of the solid state disk in the above embodiments of the present application, the working frequency can be flexibly changed by dynamically updating the limiting ratio, thereby achieving the purposes of reducing power consumption and accurately controlling temperature, and effectively ensuring the stability of the system.

[0158] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be realized by means of software and the necessary general hardware platform, of course, it can also be realized by hardware, but in many cases the former is a better embodiment.

[0159] In a specific embodiment, Figure 3 A sampling flowchart of a multi-channel hardware management method of a solid state disk provided by the embodiments of the present application can include the following steps:

[0160] In step S301, the firmware initializes the firmware configuration information, and the sampling module sets the sampling period and the sampling step according to the sampling mode configuration.

[0161] Here, the firmware of the SSD initializes the firmware configuration information, and stores the initialized firmware configuration information to the register module. The sampling module reads the sampling mode in the firmware configuration information from the register module, selects the low-frequency sampling mode or the high-frequency sampling mode, and sets the sampling period and the sampling step corresponding to the low-frequency sampling mode or the high-frequency sampling mode.

[0162] In step S302, the sampling module samples each working channel to determine the average number of logical unit numbers.

[0163] Here, the sampling module determines the multiple working channels in the SSD according to the channel working state bitmap, the sampling period and the sampling step, and samples the multiple working channels to determine the average number of LUNs.

[0164] In step S303, the sampling module saves the average number of logical unit numbers to the register module.

[0165] In step S304, it is determined whether the sampling period is over. If yes, go to step S305; if no, return to step S304.

[0166] Here, the sampling module determines whether the sampling period is over. If yes, the allocation module is called; if no, continue to wait until the sampling period is over.

[0167] In step S305, the allocation module is called to calculate the maximum number of concurrent logical unit numbers, determine the allocation scheme, save the scheme to the register module, and return to step S301.

[0168] Here, the allocation module obtains the average number of LUNs calculated by the sampling module from the register module, calculates the maximum number of concurrent LUNs according to the average number of LUNs, the channel working state bitmap and the firmware configuration information, and allocates the concurrent LUNs in each working module. After the allocation is completed, the sampling mode for the next round is dynamically reconfigured.

[0169] In a specific embodiment, Figure 4 A limitation ratio updating process schematic diagram of a multi-channel hardware management method of a solid state disk provided by the embodiment of the present application can include the following steps.

[0170] In step S401, the firmware initializes the firmware configuration information.

[0171] Here, when the system starts, the firmware initializes and configures the register module, sets the firmware configuration information and stores it to the register module.

[0172] In step S402, the allocation module gives an allocation scheme according to the initialization configuration.

[0173] Here, the allocation module reads Lnum_max0, Lnum_min in the firmware configuration information and the channel working state bitmap, allocates the concurrent LUNs for each working channel, determines the allocation scheme and stores it to the register module.

[0174] In step S403, the rotation module sets the preset rotation period and rotation step according to the rotation mode and the channel working state bitmap, and performs cyclic shift.

[0175] Here, the rotation module periodically adjusts the logical unit number allocation of each working channel according to the rotation mode and the channel working state bitmap to achieve load balancing.

[0176] In step S404, the sampling module sets the sampling period and sampling step size according to the sampling mode, determines the average number of logic unit numbers, and saves it to the register module.

[0177] Here, the sampling module monitors the load of each working channel in real time and updates the sampling results (average number of LUNs) to the register module.

[0178] Step S405: Determine whether the limit ratio has been updated; if yes, proceed to step S406; if no, return to step S405.

[0179] Here, it is determined whether the limit ratio should be updated. If so, the dynamic adjustment process is triggered; otherwise, the current allocation scheme and rotation strategy are maintained, and the process continues.

[0180] Step S406: Stop sampling, preserve the sampling record, and the allocation module recalculates and allocates the scheme according to the limit ratio; return to step S401.

[0181] Here, the sampling module stops sampling and pauses data acquisition to avoid interference, retains the last valid sampled data, and the allocation module recalculates and allocates the scheme according to the limit ratio, generates a new allocation scheme, and updates the register module.

[0182] In one embodiment, a multi-channel hardware management system 500 for a solid-state drive (SSD) is provided, which corresponds one-to-one with the multi-channel hardware management method for the SSD described in the above embodiments. For example... Figure 5 As shown, the system includes a sampling module 501, an allocation module 502, a rotation module 503, a temperature monitoring module 504, and a register module 505. The detailed descriptions of each functional module are as follows:

[0183] The sampling module 501 is used to sample multiple working channels of the solid-state drive, determine the average number of logical unit numbers of the multiple working channels, and save the average number of logical unit numbers to the register module 505; wherein, the sampling method is determined based on the solid-state configuration information, which is preset by the firmware of the solid-state drive.

[0184] The allocation module 502 is used to read the average number of logical unit numbers from the register module 505, combine the solid-state configuration information, the channel working status bitmap and the limit ratio to determine the maximum concurrent number of logical unit numbers of multiple working channels; and according to the maximum concurrent number of logical unit numbers, use at least one preset allocation method to allocate concurrent logical unit numbers to each working channel in at least one working channel.

[0185] The rotation module 503 is used to cyclically shift the concurrent logic unit number in each working channel according to a preset rotation cycle;

[0186] The temperature monitoring module 504 is configured to obtain the working temperature of each working channel in the bypass mode, and update the limiting ratio if the working temperature of the working channel is greater than a preset temperature threshold.

[0187] In an embodiment, the register module 505 is further configured to receive preset solid state configuration information from the firmware, and the solid state configuration information includes at least one of the following: the maximum number of logical unit numbers, the minimum number of logical unit numbers, the channel working state bitmap, the sampling mode, or the rotation mode; wherein the register module communicates with the firmware through a preset communication interface.

[0188] In an embodiment, the sampling module 501 is configured to set the corresponding sampling period and sampling step according to the sampling mode in the solid state configuration information; wherein the sampling mode includes a low-frequency sampling mode and a high-frequency sampling mode.

[0189] The sampling module 501 is configured to collect the number of logical unit numbers from the plurality of working channels at regular intervals according to the sampling period and the sampling step, and calculate the average number of logical unit numbers of the plurality of working channels.

[0190] In an embodiment, the allocation module 502 is configured to read the average number of logical unit numbers, the maximum number of logical unit numbers, the minimum number of logical unit numbers, the channel working state bitmap, and the limiting ratio from the register module, and determine whether the limiting ratio is updated.

[0191] The allocation module 502 is configured to use the maximum number of logical unit numbers as the maximum concurrent number of logical unit numbers if the limiting ratio is not updated.

[0192] The allocation module 502 is configured to determine the product of the updated limiting ratio and the average number of logical unit numbers if the limiting ratio is updated, and use the upward rounding result of the product as the updated maximum concurrent number of logical unit numbers.

[0193] In an embodiment, the allocation module 502 is configured to allocate the concurrent logical unit numbers to each working channel according to the minimum number of logical unit numbers if the minimum number of logical unit numbers is greater than the maximum concurrent number of logical unit numbers.

[0194] The allocation module 502 is configured to allocate the concurrent logical unit numbers to each working channel according to the maximum concurrent number of logical unit numbers if the minimum number of logical unit numbers is less than the maximum concurrent number of logical unit numbers.

[0195] In an embodiment, if the maximum concurrent number of logical unit numbers is divisible by the number of working channels, the maximum concurrent number of logical unit numbers is evenly distributed to each working channel; or,

[0196] The distribution module 502 is configured to, if the maximum concurrent number of logical units cannot be evenly divided by the number of working channels, adopt a first preset distribution mode and sequentially distribute the remainder according to the order of the working channels; or

[0197] The distribution module 502 is configured to, if the maximum concurrent number of logical units cannot be evenly divided by the number of working channels, adopt a second preset distribution mode and randomly distribute the remainder to at least one working channel.

[0198] In an embodiment, the rotation module 503 is configured to read the rotation mode from the register module, and if the rotation mode is a time slice rotation scheduling mode, determine a preset rotation period corresponding to the time slice rotation scheduling mode.

[0199] The rotation module 503 is configured to cyclically shift the concurrent logical units in each working channel according to the preset rotation period and through the channel working state bitmap.

[0200] In an embodiment, the rotation module 503 is further configured to obtain the number of program / erase operations of each working channel and determine the working life of each working channel according to the number of program / erase operations.

[0201] The rotation module 503 is further configured to, if the working life of the target working channel is less than a preset threshold, shorten the preset rotation period to reduce the rotation residence time of the concurrent logical units in the target working channel.

[0202] The rotation module 503 is further configured to, if the working life of the target working channel is greater than a preset threshold, increase the preset rotation period to extend the rotation residence time of the concurrent logical units in the target working channel.

[0203] In an embodiment, the sampling module 501 is further configured to continue sampling the plurality of working channels, determine the latest average number of logical units of the plurality of working channels, and save the latest average number of logical units to the register module.

[0204] The distribution module 502 is further configured to read the latest average number of logical units from the register module, combine the solid configuration information, the channel working state bitmap and the latest limit ratio to determine the latest maximum concurrent number of logical units of the plurality of working channels, and distribute the latest concurrent logical units to each working channel according to the latest maximum concurrent number of logical units.

[0205] The rotation module 503 is further configured to cyclically shift the latest concurrent logical units in each working channel according to the preset rotation period.

[0206] In an embodiment, the temperature monitoring module 504 is configured to set a first preset temperature threshold, a second preset temperature threshold, and a third preset temperature threshold, wherein the third preset temperature threshold is greater than the second preset temperature threshold, and the second preset temperature threshold is greater than the first preset temperature threshold.

[0207] The temperature monitoring module 504 is configured to reduce the limit ratio to a first limit ratio corresponding to the first preset temperature threshold if the working temperature of the working channel is greater than the first preset temperature threshold.

[0208] The temperature monitoring module 504 is configured to reduce the first limit ratio to a second limit ratio corresponding to the second preset temperature threshold if the working temperature of the working channel is greater than the second preset temperature threshold.

[0209] The temperature monitoring module 504 is configured to trigger an emergency protection mechanism and suspend the concurrent logical unit number operation of the working channel if the working temperature of the working channel is greater than the third preset temperature threshold.

[0210] In an embodiment, the system further comprises a load prediction module 506, wherein:

[0211] The load prediction module 506 is configured to obtain historical working load data of the plurality of working channels from the register module, analyze the historical working load data by a machine learning model, predict a load trend of the plurality of working channels in a future preset time period, and send a load trend prediction result to the allocation module 502.

[0212] The allocation module 502 is configured to dynamically adjust the maximum number of concurrent logical unit numbers in the future preset time period and optimize the allocation strategy according to the load trend prediction result.

[0213] In an embodiment, the system further comprises a frequency adjustment module 507, wherein:

[0214] The frequency adjustment module 507 is configured to adjust the working frequency of each working channel in the plurality of working channels according to a preset mapping relationship if the temperature monitoring module updates the limit ratio, wherein:

[0215] The frequency adjustment module 507 is configured to uniformly adjust the working frequency of each working channel according to the preset mapping relationship if the working frequencies of each working channel are consistent, wherein the preset mapping relationship is used to represent the relationship between the limit ratio and the working frequency.

[0216] The frequency adjustment module 507 is configured to adjust the working frequency corresponding to each working channel respectively and perform a circular shift on the working frequency of each working channel if the working frequencies of each working channel are inconsistent.

[0217] It should be noted that the solid state disk multi-channel hardware management system provided in the above embodiments, when implementing the corresponding solid state disk multi-channel hardware management method, is only exemplified by the above division of each program module, and in actual application, the above processing allocation can be completed by different program modules according to needs, that is, the internal structure of the above system is divided into different program modules to complete all or part of the above-described processing. In addition, the system provided in the above embodiments and the corresponding Figure 1b Embodiments of the method shown belong to the same concept, and the specific implementation process is described in the method embodiments, which will not be repeated here.

[0218] The embodiments of the present disclosure also provide an electronic device having the above Figure 5 solid state disk multi-channel hardware management system.

[0219] Please refer to Figure 6 , Figure 6 is another structure diagram of a solid state disk multi-channel hardware management system provided by the embodiments of the present application, as Figure 6 shown, the electronic device includes one or more processors 10, a memory 20, and an interface for connecting various components, including a high-speed interface and a low-speed interface. Various components are communicatively connected to each other by different buses, and can be installed on a common motherboard or in other ways as needed. The processor can process instructions executed within the electronic device, including instructions stored in the memory or memory to display graphical information on the GUI of the external input / output device (such as a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, each device providing part of the necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 6 In the above embodiment, the processor 10 is taken as an example.

[0220] The processor 10 can be a central processor, a network processor, or a combination thereof. The processor 10 can further include a hardware chip. The hardware chip can be an application specific integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device can be a complex programmable logic device, a field programmable logic gate array, a general array logic, or any combination thereof.

[0221] The memory 20 stores instructions executable by the at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiments.

[0222] The memory 20 can include a program storage area and a data storage area. The program storage area can store an operating system, application programs required for at least one function, and the like. The data storage area can store data created according to usage of the electronic device, and the like. In addition, the memory 20 can include a volatile memory, and also include a non-volatile memory such as at least one of a magnetic disk storage device, a flash memory device, or other non-volatile solid state storage device. In some alternative embodiments, the memory 20 can optionally include a memory disposed remotely from the processor 10, which can be connected to the electronic device through a network. Examples of the network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.

[0223] The memory 20 can include a volatile memory such as a random access memory, and also include a non-volatile memory such as a flash memory, a hard disk, or a solid state disk. The memory 20 can also include a combination of the above-mentioned types of memories.

[0224] The electronic device also includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30, and the output device 40 can be connected through a bus or other means, Figure 6 The connection through the bus is taken as an example.

[0225] The input device 30 can receive input digital or character information, and generate key signal input with respect to user settings and function controls of the electronic device, such as a touch screen, a keypad, a mouse, a trackpad, a touchpad, a pointing stick, one or more mouse buttons, a trackball, a joystick, and the like. The output device 40 can include a display device, an auxiliary lighting device (e.g., an LED), a haptic feedback device (e.g., a vibration motor), and the like. The display device includes, but is not limited to, a liquid crystal display, a light emitting diode, a display, and a plasma display. In some alternative embodiments, the display device can be a touch screen.

[0226] The electronic device also includes a communication interface for communication of the electronic device with other devices or communication networks.

[0227] The embodiments of the present disclosure further provide a computer readable storage medium, and the method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or recorded in a storage medium, or be implemented as computer code originally stored in a remote storage medium or a non-transitory machine readable storage medium and downloaded through a network and stored in a local storage medium, so that the method described herein can be processed by such software on a storage medium using a general purpose computer, a special purpose processor, or programmable or special purpose hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only memory, a random access memory, a flash memory, a hard disk or a solid state disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that the computer, processor, microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code, when the software or computer code is accessed and executed by the computer, processor or hardware, the method shown in the above embodiments is implemented.

[0228] Part of the present disclosure can be applied as a computer program product, for example, computer program instructions, when executed by a computer, through the operation of the computer, the method and / or technical solutions according to the present disclosure can be called or provided. Those skilled in the art should understand that the form of computer program instructions in computer readable medium includes but is not limited to source file, executable file, installation package file, etc., accordingly, the way of computer program instructions executed by computer includes but is not limited to: the computer directly executes the instructions, or the computer compiles the instructions and then executes the corresponding compiled program, or the computer reads and executes the instructions, or the computer reads and installs the instructions and then executes the corresponding installed program. Here, the computer readable medium can be any available computer readable storage medium or communication medium accessible to the computer.

[0229] Although the embodiments of the present disclosure are described in conjunction with the accompanying drawings, various modifications and changes can be made by those skilled in the art without departing from the spirit and scope of the present disclosure, and such modifications and changes fall within the scope defined by the appended claims.

Claims

1. A multi-channel hardware management method of a solid state disk, characterized by, A multi-channel hardware management system applied to a solid state disk, the system comprising: a sampling module, an allocation module, a rotation module, a temperature monitoring module and a register module, the method comprising: The sampling module samples a plurality of working channels of the solid state disk, determines the average number of logical unit numbers of the plurality of working channels, and saves the average number of logical unit numbers to the register module; wherein the sampling mode is determined based on solid state configuration information, and the solid state configuration information is preset by the firmware of the solid state disk; The allocation module reads the average number of logical unit numbers from the register module, combines the solid state configuration information, the channel working state bitmap and the limit ratio, determines the maximum concurrent number of logical unit numbers of the plurality of working channels, and allocates concurrent logical unit numbers to each working channel in the at least one working channel according to the maximum concurrent number of logical unit numbers by using at least one preset allocation method; The rotation module cyclically shifts the concurrent logical unit numbers in each working channel according to a preset rotation period; The temperature monitoring module obtains the working temperature of each working channel through a bypass mode, and updates the limit ratio if the working temperature of a working channel is greater than a preset temperature threshold; wherein the sampling module is paused during the update of the limit ratio; when the temperature monitoring module adopts the bypass mode, the update of the limit ratio is active.

2. The method of claim 1, wherein, Before the sampling module samples a plurality of working channels of the solid state disk, determines the average number of logical unit numbers of the plurality of working channels, and saves the average number of logical unit numbers to the register module, the method further comprises: The register module receives the preset solid state configuration information from the firmware, and the solid state configuration information includes at least one of the following: the maximum number of working logical unit numbers, the minimum number of working logical unit numbers, the channel working state bitmap, the sampling mode or the rotation mode; wherein the register module communicates with the firmware through a preset communication interface.

3. The method of claim 2, wherein, The sampling module samples a plurality of working channels of the solid state disk, determines the average number of logical unit numbers of the plurality of working channels, comprising: The sampling module sets the corresponding sampling period and sampling step according to the sampling mode in the solid state configuration information; wherein the sampling mode includes a low-frequency sampling mode and a high-frequency sampling mode; The sampling module collects the number of logical unit numbers from the plurality of working channels at regular intervals according to the sampling period and the sampling step, and calculates the average number of logical unit numbers of the plurality of working channels.

4. The method of claim 2, wherein, The allocation module reads the average number of logical unit numbers from the register module, combines the solid state configuration information, the channel working state bitmap and the limit ratio, determines the maximum concurrent number of logical unit numbers of the plurality of working channels, comprising: The allocation module reads the average number of logical unit numbers, the maximum number of working logical unit numbers, the minimum number of working logical unit numbers, the channel working state bitmap and the limit ratio from the register module, and determines whether the limit ratio is updated; If the limit ratio is not updated, the allocation module takes the maximum number of working logical unit numbers as the maximum concurrent number of logical unit numbers; If the limit ratio has been updated, the distribution module determines the product of the updated limit ratio and the average number of logical unit numbers, and takes the upward rounding result of the product as the updated maximum concurrent number of logical unit numbers.

5. The method of claim 4, wherein, The method further comprises: If the minimum workable number of logical unit numbers is greater than the maximum concurrent number of logical unit numbers, the distribution module allocates concurrent logical unit numbers to each work channel according to the minimum workable number of logical unit numbers; If the minimum workable number of logical unit numbers is less than the maximum concurrent number of logical unit numbers, the distribution module allocates concurrent logical unit numbers to each work channel according to the maximum concurrent number of logical unit numbers.

6. The method of claim 5, wherein, If the minimum workable number of logical unit numbers is less than the maximum concurrent number of logical unit numbers, the distribution module allocates concurrent logical unit numbers to each work channel according to the maximum concurrent number of logical unit numbers, which comprises one of the following: If the maximum concurrent number of logical unit numbers is divisible by the number of work channels, the distribution module evenly allocates the maximum concurrent number of logical unit numbers to each work channel; or, If the maximum concurrent number of logical unit numbers cannot be divided by the number of work channels, the distribution module uses a first preset allocation method to sequentially allocate the remainder according to the order of the work channels; or, If the maximum concurrent number of logical unit numbers cannot be divided by the number of work channels, the distribution module uses a second preset allocation method to randomly allocate the remainder to at least one work channel.

7. The method of claim 2, wherein, The rotation module rotates the concurrent logical unit numbers in each work channel according to a preset rotation period, which comprises: The rotation module reads a rotation mode from the register module, and if the rotation mode is a time slice rotation scheduling mode, determines a preset rotation period corresponding to the time slice rotation scheduling mode. The rotation module rotates the concurrent logical unit numbers in each work channel according to the preset rotation period through a channel work state bitmap.

8. The method of claim 7, wherein, The method further comprises: The rotation module obtains the number of program / erase operations of each work channel, and determines the working life of each work channel according to the number of program / erase operations; If the working life of a target work channel is less than a preset threshold, the rotation module shortens the preset rotation period to reduce the rotation residence time of the concurrent logical unit numbers in the target work channel; If the working life of a target work channel is greater than a preset threshold, the rotation module increases the preset rotation period to extend the rotation residence time of the concurrent logical unit numbers in the target work channel.

9. The method of claim 1, wherein, In the temperature monitoring module, the working temperature of each work channel is obtained through a bypass mode, and if the working temperature of a work channel is greater than a preset temperature threshold, the method further comprises: The sampling module continues to sample the plurality of work channels to determine the latest average number of logical unit numbers of the plurality of work channels, and saves the latest average number of logical unit numbers to the register module; The distribution module reads the latest logical unit number average quantity from the register module, combines solid state configuration information, channel working state bitmap and the latest limit ratio to determine the latest logical unit number maximum concurrency quantity of multiple working channels; and according to the latest logical unit number maximum concurrency quantity, the latest concurrency logical unit number is allocated for each working channel. The rotation module cyclically shifts the latest concurrency logical unit number in each working channel according to a preset rotation period.

10. The method of claim 1, wherein, The temperature monitoring module obtains the working temperature of each working channel through a bypass mode, and if the working temperature of a working channel is greater than a preset temperature threshold, the limit ratio is updated, including: The temperature monitoring module sets a first preset temperature threshold, a second preset temperature threshold and a third preset temperature threshold; wherein the third preset temperature threshold is greater than the second preset temperature threshold, and the second preset temperature threshold is greater than the first preset temperature threshold; If the working temperature of a working channel is greater than the first preset temperature threshold, the temperature monitoring module reduces the limit ratio to a first limit ratio corresponding to the first preset temperature threshold; If the working temperature of a working channel is greater than the second preset temperature threshold, the temperature monitoring module reduces the first limit ratio to a second limit ratio corresponding to the second preset temperature threshold; If the working temperature of a working channel is greater than the third preset temperature threshold, the temperature monitoring module triggers an emergency protection mechanism to suspend the concurrency logical unit number operation of the working channel.

11. The method according to any one of claims 1-10, characterized in that, The system further comprises a load prediction module, and the method further comprises: The load prediction module obtains historical working load data of multiple working channels from the register module, analyzes the historical working load data through a machine learning model, predicts the load trend of the multiple working channels in a future preset time period, and sends the load trend prediction result to the distribution module; The distribution module dynamically adjusts the logical unit number maximum concurrency quantity in the future preset time period according to the load trend prediction result, and optimizes the distribution strategy.

12. The method of claim 11, wherein, The system further comprises a frequency adjustment module, and the method further comprises: If the temperature monitoring module updates the limit ratio, the frequency adjustment module adjusts the working frequency of each working channel in the multiple working channels according to a preset mapping relationship, including: If the working frequencies of each working channel are consistent, the working frequencies of each working channel are uniformly adjusted according to the preset mapping relationship; wherein the preset mapping relationship is used to represent the relationship between the limit ratio and the working frequency; If the working frequencies of each working channel are inconsistent, the working frequencies corresponding to each working channel are adjusted respectively, and the working frequencies of each working channel are cyclically shifted.

13. An electronic device, comprising: including: a memory for storing a computer program; a processor for executing the computer program to implement the steps of the multi-channel hardware management method of the solid state disk according to any one of claims 1 to 12.

14. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, and the computer program, when executed by a processor, implements the steps of the multi-channel hardware management method of the solid state disk according to any one of claims 1 to 12.

15. A computer program product comprising a computer program, characterized in that, The computer program, when executed by a processor, implements the steps of the multi-channel hardware management method of the solid state disk according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Temperature control method for solid-state storage device

    CN116935904A

  • Multi-channel flash memory driver system power consumption management device and method

    CN119473140A