A power management device and method for a multi-channel flash memory driver system

By real-time monitoring and dynamic adjustment of the LUN concurrency of a multi-channel flash drive system, the power management problem is solved, achieving a balance between system performance and energy efficiency, and is suitable for multi-channel flash drive systems.

CN119473140BActive Publication Date: 2025-11-14SHANDONG SINOCHIP SEMICON CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411524438.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-30
Publication Date
2025-11-14
Estimated Expiration
2044-10-30

AI Technical Summary

Technical Problem

As multi-channel flash drive systems expand in scale, power consumption becomes a significant issue, becoming a key factor restricting system performance improvement and energy efficiency optimization. Existing technologies struggle to effectively reduce power consumption while maintaining system performance.

Method used

By monitoring the load of each channel in real time and dynamically adjusting the LUN concurrency of each channel, the load sampling module and the integrated processor coordinate the information exchange between the modules, and the channel scheduling module performs round-robin scheduling to control the LUN concurrency of each channel in order to achieve precise management of system power consumption.

Benefits of technology

It achieves precise power consumption control while ensuring system performance, avoiding excessively high or low power consumption, and is suitable for multi-channel flash drive systems of various sizes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119473140B_ABST
    Figure CN119473140B_ABST
Patent Text Reader

Abstract

This invention relates to the field of storage, specifically to a power management device and method for multi-channel flash drive systems. The invention monitors the load of each channel in real time and dynamically adjusts the LUN concurrency of each channel according to a system power consumption limit threshold, enabling real-time control of system power consumption at a predetermined level and avoiding excessively high or low power consumption. While reducing power consumption, this invention fully considers system performance requirements. Through a round-robin scheduling approach, it ensures that each channel has approximately the same load processing capacity over a macroscopic time period, thereby avoiding performance degradation caused by power management. This invention is applicable to multi-channel flash drive systems of various sizes, including solid-state storage devices used in small data centers and large cloud computing platforms. The power management method of this invention can be used to manage and control power consumption.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of storage, specifically to the power management problem of multi-channel flash drive systems, and proposes a power management device and method based on dynamically adjusting the LUN load concurrency of each channel of the flash drive. Background Technology

[0002] With the rapid development of information technology, solid-state storage technology has become one of the mainstream technologies in the field of data storage. Multi-channel flash drive systems are widely used in data centers, cloud computing, and other fields due to their high efficiency and stability. However, as the scale of systems increases, power consumption becomes increasingly prominent, becoming a key factor restricting system performance improvement and energy efficiency optimization. Therefore, how to effectively reduce power consumption while ensuring system performance has become an important problem that urgently needs to be solved in the field of solid-state storage technology. Summary of the Invention

[0003] The technical problem to be solved by the present invention is to provide a power management device and method for a multi-channel flash drive system. By monitoring the load of each channel in real time and dynamically adjusting the LUN concurrency of each channel according to the system power consumption limit threshold, the power consumption can be effectively controlled while ensuring system performance.

[0004] To solve the aforementioned technical problem, the present invention adopts the following technical solution: a multi-channel flash drive system management device, comprising:

[0005] Flash memory chip units are used to store data. Each flash memory chip unit contains multiple LUNs. The LUNs receive and execute read, write, and erase commands. After the commands are completed, the status information of the LUNs is fed back to the flash memory driver module.

[0006] A multi-channel flash drive includes multiple independent channels, each channel being connected to multiple LUNs; each channel has a command cache pool and a set of control registers. The command cache pool is used to store the command configuration information belonging to this channel, and the control registers are used to query the current capacity of the command cache pool and the running status of each LUN, and when the execution conditions are met, the commands in the command cache pool are sent to the corresponding LUN of the flash memory chip unit.

[0007] The load sampling module is used to collect the LUN concurrency and power consumption of each channel of the flash memory driver module. In this invention, power consumption is collected by current and power consumption sensors connected to the flash memory chip cells. These sensors and their associated circuits are part of the load sampling module.

[0008] The platform integrates a processor and a flash controller firmware to coordinate information interaction between modules. It also receives the LUN concurrency of each channel and the overall power consumption level of the system from the load sampling module over a period of time. When the power consumption level exceeds the preset limit, it determines the current global LUN concurrency limit based on the correspondence between LUN concurrency and power consumption level, and transmits the global LUN concurrency limit to the channel scheduling module.

[0009] The channel scheduling module is used to implement power consumption management. It calculates the LUN concurrency of each channel based on the global LUN concurrency limit and the load of each channel. In addition, the channel scheduling module performs round-robin scheduling according to the period value configured in the flash controller firmware.

[0010] Furthermore, the channel scheduling module calculates the LUN concurrency for each channel based on the global LUN concurrency limit and the load of each channel as follows:

[0011] Determine whether the global LUN concurrency limit can be evenly distributed across each channel, i.e., whether ALL_LUNS_MAXS is divisible by CH_NUM. If it can, then the LUN concurrency of each channel is (ALL_LUNS_MAXS / CH_NUM). If not, let the channel numbers be [0] ~ [CH_NUM – ​​1]. When the channel number n < (ALL_LUNS_MAX % CH_NUM), its initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM) + 1; when the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM), where floor represents rounding down, ALL_LUNS_MAXS represents the global LUN concurrency limit, and CH_NUM represents the number of channels with actual load.

[0012] Furthermore, the channel scheduling module performs round-robin scheduling according to the period value configured in the flash controller firmware as follows:

[0013] According to the periodic value configured in the flash controller firmware, the allocation status of each channel is periodically rotated in ascending order of channel number.

[0014] Furthermore, the control register of each channel sets the maximum number of LUNs that can work in parallel for that channel, denoted as A. The LUN concurrency of each channel calculated by the channel scheduling module is denoted as B, where B≤A. After calculating the LUN concurrency of each channel, the channel scheduling module makes B≤A by modifying the control registers of each channel of the multi-channel flash drive.

[0015] Furthermore, the control register is used to query the current capacity of the command cache pool and the running status of each LUN, and the process of issuing commands from the command cache pool to the corresponding LUN of the flash memory chip unit when the execution conditions are met is as follows:

[0016] If the command cache pool is found to be not full, a new read / write command is sent to the incomplete command cache pool and the execution of the new read / write command is initiated through the control register. The multi-channel flash drive first resolves the physical address of the new read / write command, determines its source LUN, and then checks the status of the source LUN. If there are no other commands currently being executed on the source LUN, and the number of LUNs currently being executed on the channel where the source LUN is located has not reached the preset maximum number of LUNs that can work in parallel on that channel, then the new command is sent to the flash memory chip cell. Otherwise, the new command is suspended and queued to wait for the execution conditions to be met.

[0017] Furthermore, after the system is powered on, the load sampling module performs a self-test. By interacting with the multi-channel flash drive, it iterates through and measures the overall system power consumption under various scenarios where the number of LUN loads on all channels ranges from 1 to the maximum value. It then obtains the correspondence between the number of LUN concurrency and the system power consumption and feeds this information back to the integrated processor.

[0018] This invention also discloses a power management method for a multi-channel flash memory driver system, comprising the following steps:

[0019] S01, Flash controller firmware boot channel scheduling module, and configure global LUN concurrency limit;

[0020] S02. The channel scheduling module queries the load level of each channel of the multi-channel flash drive after power-on, disables channels without load, and counts the number of channels with actual load.

[0021] S03. Determine whether the global LUN concurrency limit can be evenly distributed to each channel, i.e. whether ALL_LUNS_MAXS is divisible by CH_NUM. If yes, the LUN concurrency of each channel is (ALL_LUNS_MAXS / CH_NUM) and remains fixed. If not, proceed to step S04.

[0022] S04. Set the initial allocation status. Assume the channel numbers are [0] to [CH_NUM – 1] respectively. When the channel number n < (ALL_LUNS_MAX % CH_NUM), its initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM) + 1; when the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM), where floor means rounding down, ALL_LUNS_MAXS represents the upper limit of global LUN concurrency, and CH_NUM represents the number of channels with actual load.

[0023] S05. After the channel scheduling module generates the initial allocation status of the LUN concurrency for each channel, according to the cycle value configured by the flash controller firmware, it regularly rotates the allocation status of each channel in the order of increasing channel numbers.

[0024] S06. The channel scheduling module modifies the control register of the flash drive module to make the generated LUN concurrency of each channel take effect.

[0025] S07. Determine whether the upper limit of global LUN concurrency has changed. If it has changed, return to step S02; if not, proceed to step S08.

[0026] S08. The flash controller firmware detects whether the condition for exiting the power consumption limit is met. If so, proceed to step S09; if not, return to step S03.

[0027] S09. The channel scheduling module stops scheduling and allocation calculations, and restores the LUN concurrency of each channel of the multi-channel flash drive to the maximum value.

[0028] Furthermore, when ALL_LUNS_MAX < CH_NUM, for channels with number n ≥ ALL_LUNS_MAX, the initial maximum LUN concurrency is 0.

[0029] Furthermore, the process of disabling channels without load is as follows: If it is queried that the LUN load of one or more channels is always 0, the channel scheduling module sets the maximum LUN concurrency of these channels to 0 by rewriting the control register of the multi-channel flash drive, and cuts off the clock signal and power supply, thereby disabling the channels without load.

[0030] Furthermore, the condition for exiting the power consumption limit is that the overall power consumption level of the system collected by the load sampling module is lower than 75% of the set limit threshold and remains in this state continuously for more than multiple sampling periods.

[0031] Advantages of the present invention:

[0032] This invention achieves precise control over system power consumption by dynamically adjusting the LUN load concurrency of each channel in a multi-channel flash drive. Compared with traditional static power management methods, this invention has the following advantages:

[0033] More precise power consumption control: This invention monitors the load of each channel in real time and dynamically adjusts the LUN concurrency of each channel according to the system power consumption limit threshold, so that the system power consumption can be controlled at a predetermined level in real time, avoiding excessively high or low power consumption.

[0034] System performance is guaranteed: This invention fully considers system performance requirements while reducing power consumption. By using a round-robin scheduling method, it ensures that each channel has roughly the same level of load processing capacity over a macroscopic time, thereby avoiding performance degradation caused by power management.

[0035] Wide range of applications: This invention is applicable to multi-channel flash drive systems of all sizes. Whether it is a solid-state storage device used in a small data center or a large cloud computing platform, the power management method of this invention can be used to manage and control power consumption. Attached Figure Description

[0036] Figure 1 This is a schematic block diagram of the device described in Example 1;

[0037] Figure 2 This is a flowchart of the method described in Example 2. Detailed Implementation

[0038] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.

[0039] Example 1

[0040] This embodiment discloses a power management device for a multi-channel flash memory driver system. This device is applicable to multi-channel flash memory controller SoC chips, such as... Figure 1 As shown, the hardware functional modules involved include: a multi-channel flash drive, flash memory chip units, an integrated processor, a load sampling module, and a channel scheduling module. Since the power consumption of the flash drive system mainly comes from the dynamic power consumption during the execution of flash memory chip read / write commands, and the smallest concurrent unit of a flash command is a LUN within the flash memory chip, the real-time power consumption of the flash drive system is proportional to the number of LUNs executing commands to some extent. Therefore, this method mainly adjusts the overall system power consumption to a predetermined level by dynamically adjusting the LUN load concurrency of each channel of the flash drive. The following are the main functions of several modules and their interrelationships.

[0041] A multi-channel flash drive has multiple independent channels, each connected to multiple LUNs via a Nand physical layer bus interface (PHY). These LUNs can be located within the same flash memory cell or different flash memory cells. Each channel has a command buffer pool and a set of control registers. The command buffer pool stores 64 or 128 command configuration messages belonging to that channel, sent by the flash controller firmware. The control registers are used to check if the command buffer pool can currently hold new commands and the operating status of each LUN, set the maximum number of LUNs that can operate in parallel on the current channel, and, when execution conditions are met, send commands from the buffer pool to the corresponding LUNs in the flash memory cell via the physical layer interface. Specifically, when the firmware detects that the command buffer pool is not full, sends a new read / write command to it, and initiates the execution of the new command via the control register, the flash drive module first parses the physical address of the new read / write command to determine which LUN it originates from (the source LUN), and then checks the status of that LUN. If no other commands are being executed on the current LUN, and the number of LUNs being executed on the channel containing the source LUN has not reached the preset upper limit, then the new command is sent to the flash memory chip cell; otherwise, the new command is suspended and queued until the execution conditions are met.

[0042] Flash memory chip units are the main storage functional components of the system. Each chip contains multiple LUNs, which are connected to various channels of the flash memory driver module. They receive and execute read, write, and erase commands, and after the commands are completed, they feed back the status information of the LUNs to the flash memory driver module.

[0043] The integrated processor, serving as the platform for the flash controller firmware, coordinates the information interaction among various hardware modules in the flash drive system. This interaction includes receiving read / write commands from the front-end (host computer), translating logical addresses into flash physical addresses, sending them to the corresponding channels of the flash drive modules for execution, and monitoring the command status information returned by the flash drive modules, providing feedback to the front-end. Furthermore, the integrated processor periodically monitors the LUN concurrency of each channel and the overall system power consumption level over a period of time, as transmitted from the load sampling module. When the power consumption level exceeds a preset limit, the maximum number of LUNs allowed to run concurrently across all channels is determined based on the LUN concurrency versus power consumption level relationship generated by the load sampling module, and this limit is configured for the channel scheduling module.

[0044] The load sampling module collects the average load level (LUN concurrency) and power consumption of each channel of the flash drive module according to the sampling step size and period set by the integrated processor. When the system powers on, the module performs a self-test, that is, by interacting with the multi-channel flash drive module, it quickly traverses and measures the overall system power consumption under various scenarios with the number of LUNs on all channels from 1 to the maximum value, obtains the correspondence between LUN concurrency and system power consumption, and feeds this information back to the integrated processor.

[0045] Channel scheduling module: The main functional module for power management. The integrated processor calculates the LUN concurrency for each channel based on the power limit threshold corresponding to the maximum concurrent LUN count across all channels, combined with the load conditions of each channel. This is achieved by modifying the control registers of each channel in the flash driver module to ensure that the LUN concurrency for each channel does not exceed the corresponding upper limit. Furthermore, the module performs round-robin scheduling according to the periodic value configured in the flash controller firmware to ensure that each channel has approximately the same level of load processing capacity over a macroscopic time period.

[0046] In this embodiment, the process of the channel scheduling module performing global LUN concurrency management is as follows:

[0047] First, the flash controller firmware configures the maximum concurrent LUN count for all channels (denoted as ALL_LUNS_MAX, at least 1) to the channel scheduling module through the corresponding register interface. The channel scheduling module obtains the average load level (LUN concurrency) of each channel after system power-on from the load sampling module. If the LUN load of one or more channels is consistently 0, the channel scheduling module sets the maximum LUN concurrency of these channels to 0 by rewriting the flash driver module control register, cutting off their clock signal and power supply, thus completely stopping these channels from working. For the remaining loaded channels (denoted as CH_NUM, at least 1 is retained), the scheduling module also rewrites the flash driver module control register to evenly distribute the maximum concurrent LUN count across these channels. When it is not possible to achieve a completely even distribution across all channels (i.e., ALL_LUNS_MAX is not divisible by CH_NUM), a time-sharing method is used to ensure the uniformity of the processing capacity of each channel on a macroscopic level, specifically:

[0048] (1) Set the initial allocation status: Assume the numbers of each channel are [0] ~ [CH_NUM – 1]. When the channel number n < (ALL_LUNS_MAX % CH_NUM), the initial maximum number of concurrent LUNs for it is floor(ALL_LUNS_MAX / CH_NUM) + 1; when the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum number of concurrent LUNs is floor(ALL_LUNS_MAX / CH_NUM), where floor means rounding down. For example, if ALL_LUNS_MAX = 27 and CH_NUM = 8, the initial numbers of concurrent LUNs for channels 0 to 7 are [4, 4, 4, 3, 3, 3, 3, 3] respectively. In particular, when ALL_LUNS_MAX < CH_NUM, for channels with number n ≥ ALL_LUNS_MAX, the initial maximum number of concurrent LUNs is 0, that is, it stops operating completely.

[0049] (2) After the channel scheduling module generates the initial allocation status of the number of concurrent LUNs for each channel, according to the cycle value configured by the flash controller firmware, it periodically rotates (circular shift) the allocation status of each channel in the order of increasing channel numbers. For example, in the above example, the initial allocation status of channels 0 to 7 is [4, 4, 4, 3, 3, 3, 3, 3], then after one scheduling cycle, the allocation status becomes [3, 4, 4, 4, 3, 3, 3, 3], and so on, repeating in a cycle.

[0050] (3) When the flash controller firmware sets a new upper limit value for the number of concurrent LUNs for all channels (when the ALL_LUNS_MAX value changes), the channel scheduling module re - performs the actions in the above two steps to adjust the distribution of the number of concurrent LUNs for each channel, so that the overall LUN load average level of the entire system matches ALL_LUNS_MAX.

[0051] When the flash controller firmware detects that the overall dynamic power consumption level of the system collected by the load sampling module is lower than 75% of the set limit threshold and continuously maintains this state for more than several sampling cycles, the limit on the number of concurrent LUNs is cancelled. At this time, the channel scheduling module stops polling scheduling and allocation calculation, and restores the upper limit of the number of concurrent LUNs for each channel to the maximum value (including the channels that were completely disabled before) through the control register of the flash drive module.

[0052] Embodiment 2

[0053] This embodiment discloses a power consumption management method for a multi - channel flash drive system, as Figure 2 shown, including the following steps:

[0054] S01, Flash controller firmware boot channel scheduling module, and configure global LUN concurrency limit;

[0055] S02. The channel scheduling module queries the load level of each channel of the multi-channel flash drive after power-on, disables channels without load, and counts the number of channels with actual load.

[0056] S03. Determine whether the global LUN concurrency limit can be evenly distributed to each channel, i.e. whether ALL_LUNS_MAXS is divisible by CH_NUM. If yes, the LUN concurrency of each channel is (ALL_LUNS_MAXS / CH_NUM) and remains fixed. If not, proceed to step S04.

[0057] S04. Set the initial allocation state. Let the channel numbers be [0] ~ [CH_NUM – ​​1]. When the channel number n < (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM) + 1; when the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM), where floor represents rounding down, ALL_LUNS_MAX represents the global LUN concurrency limit, and CH_NUM represents the number of channels with actual load.

[0058] S05. After the channel scheduling module generates the initial allocation status of the LUN concurrency of each channel, it periodically rotates the allocation status of each channel in ascending order of the channel number according to the period value configured in the flash controller firmware.

[0059] S06. The channel scheduling module modifies the control register of the flash drive module to make the generated LUN concurrency of each channel effective;

[0060] S07. Determine whether the global LUN concurrency limit has changed. If it has changed, return to step S02. If it has not changed, proceed to step S08.

[0061] S08. The flash controller firmware checks whether the conditions for exiting the power consumption limit have been met. If yes, proceed to step S09; otherwise, return to step S03.

[0062] S09. The channel scheduling module stops scheduling and allocation calculations and restores the LUN concurrency of each channel of the multi-channel flash drive to the maximum value (including channels that were previously disabled).

[0063] In this embodiment, when ALL_LUNS_MAX < CH_NUM, for channels with numbers n ≥ ALL_LUNS_MAX, the initial maximum LUN concurrency is 0.

[0064] In this embodiment, the process of disabling channels with no load is as follows: If it is queried that the LUN load of one or more channels is always 0, the channel scheduling module sets the maximum LUN concurrency of these channels to 0 by rewriting the multi-channel flash drive control register, cuts off the clock signal and power supply, thereby disabling the channels with no load.

[0065] In this embodiment, the condition for exiting the power consumption limit is that the overall power consumption level of the system collected by the load sampling module is lower than 75% of the set limit threshold and remains in this state continuously for more than multiple sampling periods.

[0066] The above only describes the basic principles and preferred embodiments of the present invention. The improvements and substitutions made by those skilled in the art based on the present invention fall within the protection scope of the present invention.

Claims

1. A power management device for a multi-channel flash memory driver system, characterized in that: include: Flash memory chip units are used to store data. Each flash memory chip unit contains multiple LUNs. The LUNs receive and execute read, write, and erase commands. After the commands are completed, the status information of the LUNs is fed back to the flash memory driver module. A multi-channel flash drive includes multiple independent channels, each channel being connected to multiple LUNs; each channel has a command cache pool and a set of control registers. The command cache pool is used to store the command configuration information belonging to this channel, and the control registers are used to query the current capacity of the command cache pool and the running status of each LUN, and when the execution conditions are met, the commands in the command cache pool are sent to the corresponding LUN of the flash memory chip unit. The load sampling module is used to collect the LUN concurrency and power consumption of each channel of the flash drive module; The platform integrates a processor and a flash controller firmware to coordinate information interaction between modules. It also receives the LUN concurrency of each channel and the overall power consumption level of the system from the load sampling module over a period of time. When the power consumption level exceeds the preset limit, it determines the current global LUN concurrency limit based on the correspondence between LUN concurrency and power consumption level, and transmits the global LUN concurrency limit to the channel scheduling module. The channel scheduling module is used to implement power consumption management. It calculates the LUN concurrency of each channel based on the global LUN concurrency limit and the load of each channel. In addition, the channel scheduling module performs round-robin scheduling according to the period value configured in the flash controller firmware. The channel scheduling module calculates the LUN concurrency for each channel based on the global LUN concurrency limit and the load of each channel as follows: The system determines whether the global LUN concurrency limit can be evenly distributed across each channel, i.e., whether ALL_LUNS_MAXS is divisible by CH_NUM. If so, the LUN concurrency for each channel is ALL_LUNS_MAXS / CH_NUM. If not, assuming the channel numbers are 0 to CH_NUM–1, the initial maximum LUN concurrency is floor(ALL_LUNS_MAXS / CH_NUM)+1 when the channel number n < (ALL_LUNS_MAXS / CH_NUM); and floor(ALL_LUNS_MAXS / CH_NUM) when the channel number n ≥ (ALL_LUNS_MAXS / CH_NUM), where floor represents rounding down, ALL_LUNS_MAXS represents the global LUN concurrency limit, and CH_NUM represents the number of channels with actual load. The channel scheduling module performs round-robin scheduling according to the period value configured in the flash controller firmware. According to the periodic value configured in the flash controller firmware, the allocation status of each channel is periodically rotated in ascending order of channel number.

2. The power management device for a multi-channel flash drive system according to claim 1, characterized in that: The control register of each channel sets the maximum number of LUNs that can work in parallel for that channel, denoted as A. The LUN concurrency of each channel calculated by the channel scheduling module is denoted as B, where B≤A. After calculating the LUN concurrency of each channel, the channel scheduling module makes B≤A by modifying the control registers of each channel of the multi-channel flash drive.

3. The power management device for a multi-channel flash drive system according to claim 2, characterized in that: The control register is used to query the current capacity of the command cache pool and the running status of each LUN. When the execution conditions are met, the process of sending commands from the command cache pool to the corresponding LUN of the flash memory chip is as follows: If the command cache pool is found to be not full, a new read / write command is sent to the incomplete command cache pool and the execution of the new read / write command is initiated through the control register. The multi-channel flash drive first resolves the physical address of the new read / write command, determines its source LUN, and then checks the status of the source LUN. If there are no other commands currently being executed on the source LUN, and the number of LUNs currently being executed on the channel where the source LUN is located has not reached the preset maximum number of LUNs that can work in parallel on that channel, A, then the new command is sent to the flash memory chip cell; otherwise, the new command is suspended and queued to wait for the execution conditions to be met.

4. The power management device for a multi-channel flash drive system according to claim 1, characterized in that: After the system is powered on, the load sampling module performs a self-test. By interacting with the multi-channel flash drive, it iterates through and measures the overall system power consumption under various scenarios where the number of LUN loads on all channels ranges from 1 to the maximum value. It then obtains the correspondence between the number of LUN concurrency and the system power consumption and feeds this information back to the integrated processor.

5. A power management method for a multi-channel flash memory driver system, characterized in that: Includes the following steps: S01, Flash controller firmware boot channel scheduling module, and configure global LUN concurrency limit; S02. The channel scheduling module queries the load level of each channel of the multi-channel flash drive after power-on, disables channels without load, and counts the number of channels with actual load. S03. Determine whether the global LUN concurrency limit can be evenly distributed to each channel, i.e. whether ALL_LUNS_MAXS is divisible by CH_NUM. If yes, the LUN concurrency of each channel is ALL_LUNS_MAXS / CH_NUM and remains fixed. If not, proceed to step S04. S04. Set the initial allocation state. Let the channel numbers be 0 to CH_NUM–1. When the channel number n < (ALL_LUNS_MAXS / CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAXS / CH_NUM) + 1; when the channel number n ≥ (ALL_LUNS_MAXS / CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAXS / CH_NUM), where floor represents rounding down, ALL_LUNS_MAXS represents the global LUN concurrency limit, and CH_NUM represents the number of channels with actual load. S05. After the channel scheduling module generates the initial allocation status of the LUN concurrency of each channel, it periodically rotates the allocation status of each channel in ascending order of the channel number according to the period value configured in the flash controller firmware. S06. The channel scheduling module modifies the control register of the flash drive module to make the generated LUN concurrency of each channel effective; S07. Determine whether the global LUN concurrency limit has changed. If it has changed, return to step S02. If it has not changed, proceed to step S08. S08. The flash controller firmware checks whether the conditions for exiting the power consumption limit have been met. If yes, proceed to step S09; otherwise, return to step S03. S09. The channel scheduling module stops scheduling and allocation calculations and restores the LUN concurrency of each channel of the multi-channel flash drive to the maximum value.

6. The power management method for a multi-channel flash drive system according to claim 5, characterized in that: When ALL_LUNS_MAXS < CH_NUM, for channels with channel number n ≥ ALL_LUNS_MAXS, the initial maximum LUN concurrency is 0.

7. The power management method for a multi-channel flash drive system according to claim 5, characterized in that: The process of disabling unloaded channels is as follows: If the LUN load of one or more channels is always 0, the channel scheduling module sets the maximum LUN concurrency of these channels to 0 by rewriting the control register of the multi-channel flash driver, and cuts off the clock signal and power supply, thereby disabling the unloaded channels.

8. The power management method for a multi-channel flash drive system according to claim 5, characterized in that: The conditions for exiting the power consumption limit are: the overall system power consumption level collected by the load sampling module is lower than 75% of the set limit threshold and this is maintained for multiple consecutive sampling cycles.

Citation Information

Patent Citations

  • Connection method between flesh memory controller and flesh memory chip in flesh memory storing device

    CN101751982A

  • Data writing method and apparatus, and storage medium

    US20230297282A1