Multi-channel flash memory driver system power consumption management device and method
By real-time monitoring and dynamically adjusting the LUN concurrency number of each channel of the multi-channel flash drive system, the problem of system power consumption management is solved, and precise power consumption control and system performance guarantee is achieved.
Patent Information
- Application Number
- CN202411524438.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-30
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-10-30
AI Technical Summary
After the scale of multi-channel flash drive systems has expanded, power consumption problems have become increasingly prominent, becoming a key factor in system performance improvement and energy efficiency optimization.
By monitoring the load conditions of each channel in real time, dynamically adjusting the number of LUN concurrency of each channel according to the system power consumption limit threshold, and using an integrated processor and channel scheduling module to coordinate the information interaction of each module to achieve power consumption management.
It realizes precise control of system power consumption, avoids excessive or low power consumption, and ensures system performance, and is suitable for multi-channel flash drive systems of various sizes.
Smart Images

Figure CN119473140A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of storage, and in particular to the power consumption management problem of a multi-channel flash drive system. A power consumption management device and method based on dynamically adjusting the concurrency of LUN loads of each channel of the flash drive are proposed. Background Art
[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 the system expands, the power consumption problem becomes increasingly prominent and becomes 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 issue that needs to be solved in the current 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 multi-channel flash drive system power consumption management device and method, which monitors the load of each channel in real time and dynamically adjusts the number of LUN concurrency of each channel according to the system power consumption limit threshold, thereby achieving effective control of power consumption while ensuring system performance.
[0004] In order to solve the technical problem, the technical solution adopted by the present invention is: a multi-channel flash drive system management device, comprising: Flash memory unit is used to store data. Each flash memory unit contains multiple LUNs. LUNs receive and execute read, write, and erase commands. After the command is completed, the LUN status information is fed back to the flash drive module. A multi-channel flash drive includes multiple independent channels, each channel is connected to multiple LUNs; each channel is provided with a command buffer pool and a set of control registers, the command buffer pool is used to store command configuration information belonging to the channel, the control register is used to query the current capacity of the command buffer pool and the operating status of each LUN, and when the execution conditions are met, the command in the command buffer pool is sent to the corresponding LUN of the flash memory particle unit; A load sampling module is used to collect the number of concurrent LUNs and power consumption of each channel of the flash drive module; in the present invention, power consumption is collected by current and power consumption sensors connected to the flash memory particle units, and these sensors and their associated circuits are part of the load sampling module; The platform where the integrated processor and flash controller firmware run is used to coordinate the information interaction of each module, and receive the LUN concurrency number of each channel within a period of time and the overall power consumption level of the system from the load sampling module. When the power consumption level exceeds the preset limit value, the current global LUN concurrency upper limit of the system is determined according to the corresponding relationship between the LUN concurrency number and the power consumption level, and the global LUN concurrency upper limit is transmitted to the channel scheduling module; The channel scheduling module is used to implement power consumption management. It calculates the number of concurrent LUNs for each channel based on the global upper limit of concurrent LUNs and the load of each channel. In addition, the channel scheduling module performs round-robin scheduling according to the period value configured by the flash controller firmware.
[0005] Furthermore, the channel scheduling module calculates the number of concurrent LUNs for each channel according to the global upper limit of concurrent LUNs and the load of each channel as follows: Determine whether the global LUN concurrency limit can be evenly distributed to each channel, that is, whether ALL_LUNS_MAXS can be divided by CH_NUM. If so, the LUN concurrency of each channel is (ALL_LUNS_MAXS / CH_NUM). If not, assume that the channels are numbered from [0] to [CH_NUM – 1]. When the channel number n is less than (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency is floor(ALL_LUNS_MAX / CH_NUM) + 1. When the channel number n is greater than or equal to (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 means the global LUN concurrency limit, and CH_NUM means the number of channels with actual load.
[0006] Furthermore, the channel scheduling module performs round-robin scheduling according to the period value configured by the flash controller firmware as follows: The allocation status of each channel is rotated periodically in the order of increasing channel number according to the period value configured by the flash controller firmware.
[0007] Furthermore, the control register of each channel sets the maximum number of LUNs that can work in parallel on the channel, which is recorded as A. The concurrent number of LUNs of each channel calculated by the channel scheduling module is recorded as B, where B≤A. After the channel scheduling module calculates the concurrent number of LUNs of each channel, it modifies the control registers of each channel of the multi-channel flash drive to make B≤A.
[0008] Furthermore, the control register is used to query the current capacity of the command buffer pool and the operating status of each LUN, and when the execution condition is met, the command in the command buffer pool is sent to the LUN corresponding to the flash memory particle unit. The process is: After querying that the command buffer pool is not full, sending a new read / write command to the not full command buffer pool and starting the execution of the new read / write command through the control register, the multi-channel flash drive first parses the physical address of the new read / write command, determines its source LUN, and then queries the status of the source LUN. If no other command is currently being executed on the source LUN, and the number of LUNs being executed on the channel where the source LUN is located does not reach the preset maximum number of LUNs that can work in parallel on the channel A, then the new command is sent to the flash granule unit, otherwise the new command is suspended and queued to wait for the execution condition to be met.
[0009] Furthermore, after the system is powered on, the load sampling module performs a self-check and interacts with the multi-channel flash drive to traverse and measure the overall system power consumption corresponding to each scenario where the number of LUN loads in the entire channel ranges from 1 to the maximum value, thereby obtaining the corresponding relationship between the number of concurrent LUNs and the system power consumption, and feeding the information back to the integrated processor.
[0010] The present invention also discloses a multi-channel flash drive system power consumption management method, comprising the following steps: S01, the flash controller firmware starts the channel scheduling module and configures the upper limit of the global LUN concurrency number; S02, the channel scheduling module queries the load level of each channel of the multi-channel flash drive after power-on, disables the channels without load, and counts the number of channels with actual load; S03, judging whether the global LUN concurrent number upper limit can be evenly distributed to each channel, that is, whether ALL_LUNS_MAXS can be divided by CH_NUM. If yes, the LUN concurrent number of each channel is (ALL_LUNS_MAXS / CH_NUM) and remains fixed. If no, proceed to step S04; S04. Set the initial allocation state. Assume that the numbers of each channel are [0] ~ [CH_NUM – 1]. When the channel number n<(ALL_LUNS_MAX % CH_NUM), the initial maximum concurrent LUN number is floor(ALL_LUNS_MAX / CH_NUM) + 1. When the channel number n≥(ALL_LUNS_MAX % CH_NUM), the initial maximum concurrent LUN number is floor(ALL_LUNS_MAX / CH_NUM), where floor means rounding down, ALL_LUNS_MAXS means the upper limit of the global concurrent LUN number, and CH_NUM means the number of channels with actual load. After the channel scheduling module generates the initial allocation status of the LUN concurrency numbers for each channel, it regularly rotates the allocation status of each channel in the ascending order of channel numbers according to the cycle value configured by the flash controller firmware. S06. The channel scheduling module modifies the control registers of the flash drive module to make the generated LUN concurrency numbers for each channel take effect. S07. Determine whether the global LUN concurrency upper 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 detects whether the condition for exiting the power consumption limit is met. If so, proceed to step S09. If not, return to step S03. S09. The channel scheduling module stops the scheduling and allocation calculations and restores the LUN concurrency numbers of each channel of the multi-channel flash drive to the maximum value.
[0011] Further, when ALL_LUNS_MAX < CH_NUM, for channels with numbers n ≥ ALL_LUNS_MAX, the initial maximum LUN concurrency number is 0.
[0012] Further, the process of disabling unloaded channels is as follows: If it is queried that the LUN loads of one or more channels are always 0, the channel scheduling module sets the maximum LUN concurrency numbers of these channels to 0 by rewriting the control registers of the multi-channel flash drive, cuts off the clock signal and power supply, thereby disabling the unloaded channels.
[0013] Further, 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 continuously maintains this state for more than multiple sampling cycles.
[0014] Advantages of the present invention: By dynamically adjusting the LUN load concurrency degrees of each channel of the multi-channel flash drive, the present invention realizes precise control of the system power consumption. Compared with traditional static power management methods, the present invention has the following advantages: More precise power consumption control: By real-time monitoring the load conditions of each channel and dynamically adjusting the LUN concurrency numbers of each channel according to the system power consumption limit threshold, the present invention enables the system power consumption to be controlled in real time at a predetermined level, avoiding the situations of too high or too low power consumption.
[0015] System performance is guaranteed: While reducing power consumption, the present invention fully considers the requirements of system performance. Through the round-robin scheduling method, it ensures that each channel has approximately the same level of load processing ability in the macroscopic time, thereby avoiding performance degradation caused by power management.
[0016] Wide scope of application: The present invention is applicable to multi-channel flash drive systems of various sizes. Whether it is a solid-state storage device used in a small data center or a large cloud computing platform, the power consumption management method of the present invention can be referred to to achieve power consumption management and control. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 This is a functional block diagram of the device described in Example 1; Figure 2 This is a flow chart of the method described in Example 2. DETAILED DESCRIPTION
[0018] The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments.
[0019] Example 1 This embodiment discloses a multi-channel flash drive system power consumption management device, which is applicable to a multi-channel flash controller SoC chip, such as Figure 1 As shown, the hardware functional modules involved include: a multi-channel flash drive, a flash particle unit, 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 when the flash particle reads and writes commands are executed, and the minimum concurrent unit of the flash command is a LUN in the flash particle, the real-time power consumption of the flash drive system is proportional to the number of LUNs that are executing commands to a certain extent. Therefore, this method mainly adjusts the power consumption of the overall system 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 interaction relationships.
[0020] A multi-channel flash drive has multiple channels, each of which is independent of each other. Each channel is connected to multiple LUNs through the Nand physical layer bus interface (PHY). The multiple LUNs connected can be in the same flash particle unit or in different flash particle units. Each channel is equipped with a command buffer pool and a set of control registers. The command buffer pool is used to store 64 or 128 command configuration information belonging to the channel sent by the flash controller firmware. The control register is used to query whether the command buffer pool can currently accommodate new command information and the operating status of each LUN, set the maximum number of LUNs that can work in parallel in the current channel, and send the commands in the buffer pool to the corresponding LUN of the flash particle unit through the physical layer interface when the execution conditions are met. Specifically, when the firmware queries that the command buffer pool is not full, sends a new read / write command to it and starts the execution of the new command through the control register, the flash drive module first parses the physical address of the new read / write command, determines which LUN it comes from (source LUN), and then queries the status of the LUN. If no other commands are being executed on the current LUN, and the number of LUNs being executed on the channel where the source LUN is located has not reached the preset upper limit, the new command is sent to the flash granular unit, otherwise the new command is suspended and queued until the execution conditions are met.
[0021] Flash memory unit is the main storage functional component of the system. Each unit has multiple LUNs, which are connected to the channels of the flash drive module respectively. It receives and executes read, write and erase commands. After the command is completed, it feeds back the status information of the LUN to the flash drive module.
[0022] The integrated processor is the platform on which the flash controller firmware runs. It coordinates the information interaction of the hardware modules in the flash drive system. The information interaction includes receiving read and write commands from the front end (host computer), converting the logical address into a flash physical address, sending it to the corresponding channel of the flash drive module for execution, and detecting the command status information returned by the flash drive module and feeding it back to the front end. In addition, the integrated processor regularly detects the number of concurrent LUNs of each channel within a period of time and the overall power consumption level of the system transmitted by the load sampling module. When the power consumption level exceeds the preset limit value, the maximum number of concurrent LUNs allowed by the current full channel of the system is determined based on the LUN concurrency number-power consumption level comparison relationship generated by the load sampling module, and is configured to the channel scheduling module for restriction.
[0023] 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 and cycle set by the integrated processor. When the system is powered on, the module will perform a self-check, that is, by interacting with the multi-channel flash drive module, quickly traverse and measure the overall system power consumption corresponding to each scenario between the number of LUN loads in all channels from 1 to the maximum value, obtain the corresponding relationship between the number of LUN concurrency and the system power consumption, and feed this information back to the integrated processor.
[0024] Channel scheduling module: the main functional module for implementing power consumption management. The integrated processor calculates the number of concurrent LUNs for each channel based on the upper limit of the number of concurrent LUNs in all channels corresponding to the power consumption limit threshold and the load of each channel, and modifies the control registers of each channel of the flash drive module so that the number of concurrent LUNs in each channel does not exceed the corresponding upper limit. In addition, the module will perform round-robin scheduling according to the cycle value configured by the flash controller firmware, so that each channel has roughly the same level of load processing capability in macro time.
[0025] In this embodiment, the process of the channel scheduling module performing global LUN concurrent number management is as follows: First, the flash controller firmware configures the upper limit of the total channel LUN concurrency to be set (recorded 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 the system is powered on from the load sampling module. 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 flash drive module control register, cuts off its clock signal and power supply, and completely stops these channels from working. For the remaining loaded channels (the number is recorded as CH_NUM, at least 1 is reserved), the scheduling module also divides the maximum LUN concurrency of all channels to these channels by rewriting the flash drive module control register. When it is impossible to achieve complete equal distribution of each channel (that is, ALL_LUNS_MAX cannot be divided by CH_NUM), the time-sharing fast rotation method is used to ensure the uniformity of the processing capacity of each channel at a macro level, specifically: (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), 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. For example, if ALL_LUNS_MAX = 27 and CH_NUM = 8, the initial LUN concurrencies of channels 0~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 LUN concurrency is 0, that is, it stops running completely.
[0026] (2)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 periodically rotates (circularly shifts) the allocation status of each channel in the ascending order of the channel number. For example, in the above example, the initial allocation status of channels 0~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.
[0027] (3)When the flash controller firmware sets a new upper limit value for the LUN concurrency of all channels (when the ALL_LUNS_MAX value changes), the channel scheduling module repeats the above two steps to adjust the distribution of the LUN concurrency of each channel, so that the average LUN load level of the entire system matches ALL_LUNS_MAX.
[0028] 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 a certain number of sampling cycles, the limit on the LUN concurrency is cancelled. At this time, the channel scheduling module stops polling scheduling and allocation calculation, and restores the upper limit of the LUN concurrency of each channel to the maximum value through the control register of the flash drive module (including channels that were completely disabled before).
[0029] Embodiment 2 This embodiment discloses a power consumption management method for a multi-channel flash drive system, as Figure 2 shown, including the following steps: S01. The flash controller firmware starts the channel scheduling module and configures the global upper limit of the LUN concurrency; S02. The channel scheduling module queries the load levels of each channel of the multi-channel flash drive after power-on, disables the channels without load, and counts the number of channels with actual load. S03. Determine whether the upper limit of the global LUN concurrency can be evenly distributed to each channel, that is, whether ALL_LUNS_MAXS can be divided by CH_NUM. If it can, 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 status. Assume the channel numbers are [0] to [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 means rounding down, ALL_LUNS_MAXS represents the upper limit of the global LUN concurrency, 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 for each channel, according to the cycle value configured by the flash controller firmware, regularly rotate the allocation status of each channel in the order of increasing channel numbers. 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. S07. Determine whether the upper limit of the global LUN concurrency has changed. If it has changed, return to step S02. If not, proceed to step S08. S08. The flash controller firmware detects whether the condition to exit the power consumption limit is met. If so, proceed to step S09. If not, return to step S03. S09. The channel scheduling module stops the scheduling and allocation calculation, and restores the LUN concurrency of each channel of the multi-channel flash drive to the maximum value (including the channels that were previously disabled).
[0030] In this embodiment, when ALL_LUNS_MAX < CH_NUM, for channels with the number n ≥ ALL_LUNS_MAX, the initial maximum LUN concurrency is 0.
[0031] In this embodiment, the process of disabling unloaded channels is as follows: if it is found 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, and thus disables the unloaded channels.
[0032] In this embodiment, the condition for exiting the power consumption limitation 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 maintains this state continuously for more than a plurality of sampling cycles.
[0033] What is described above are only the basic principles and preferred embodiments of the present invention. Improvements and substitutions made by those skilled in the art based on the present invention belong to the protection scope of the present invention.
Claims
1. A multi-channel flash drive system power consumption management device, characterized in that: include: Flash memory unit is used to store data. Each flash memory unit contains multiple LUNs. LUNs receive and execute read, write, and erase commands. After the command is completed, the LUN status information is fed back to the flash drive module. A multi-channel flash drive includes multiple independent channels, each channel is connected to multiple LUNs; each channel is provided with a command buffer pool and a set of control registers, the command buffer pool is used to store command configuration information belonging to the channel, the control register is used to query the current capacity of the command buffer pool and the operating status of each LUN, and when the execution conditions are met, the command in the command buffer pool is sent to the corresponding LUN of the flash memory particle unit; A load sampling module is used to collect the concurrent number of LUNs and power consumption of each channel of the flash drive module; The platform where the integrated processor and flash controller firmware run is used to coordinate the information interaction of each module, and receive the LUN concurrency number of each channel within a period of time and the overall power consumption level of the system from the load sampling module. When the power consumption level exceeds the preset limit value, the current global LUN concurrency upper limit of the system is determined according to the corresponding relationship between the LUN concurrency number and the power consumption level, and the global LUN concurrency upper limit is transmitted to the channel scheduling module; The channel scheduling module is used to implement power consumption management. It calculates the number of concurrent LUNs for each channel based on the global upper limit of concurrent LUNs and the load of each channel. In addition, the channel scheduling module performs round-robin scheduling according to the period value configured by the flash controller firmware.
2. The multi-channel flash drive system power consumption management device according to claim 1, characterized in that: The channel scheduling module calculates the number of concurrent LUNs for each channel based on the global upper limit of concurrent LUNs and the load of each channel as follows: Determine whether the global LUN concurrency limit can be evenly distributed to each channel, that is, whether ALL_LUNS_MAXS can be divided by CH_NUM. If so, the LUN concurrency limit of each channel is (ALL_LUNS_MAXS / CH_NUM). If not, assume that the channels are numbered from [0] to [CH_NUM – 1]. When the channel number n < (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency limit is floor(ALL_LUNS_MAX / CH_NUM) + 1. When the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum LUN concurrency limit is floor(ALL_LUNS_MAX / CH_NUM), where floor means rounding down, ALL_LUNS_MAXS means the global LUN concurrency limit, and CH_NUM means the number of channels with actual load.
3. The multi-channel flash drive system power consumption management device according to claim 2, characterized in that: The channel scheduling module performs round-robin scheduling according to the period value configured by the flash controller firmware: The allocation status of each channel is rotated periodically in the order of increasing channel number according to the period value configured by the flash controller firmware.
4. The multi-channel flash drive system power consumption management device according to claim 1, characterized in that: The control register of each channel sets the maximum number of LUNs that can work in parallel on the channel, which is recorded as A. The concurrent number of LUNs of each channel calculated by the channel scheduling module is recorded as B, B≤A. After the channel scheduling module calculates the concurrent number of LUNs of each channel, it modifies the control registers of each channel of the multi-channel flash drive to make B≤A.
5. The multi-channel flash drive system power consumption management device according to claim 4, characterized in that: The control register is used to query the current capacity of the command buffer pool and the operating status of each LUN, and when the execution conditions are met, the command in the command buffer pool is sent to the corresponding LUN of the flash particle unit. The process is as follows: After querying that the command buffer pool is not full, sending a new read / write command to the not full command buffer pool and starting the execution of the new read / write command through the control register, the multi-channel flash drive first parses the physical address of the new read / write command, determines its source LUN, and then queries the status of the source LUN. If no other command is currently being executed on the source LUN, and the number of LUNs being executed on the channel where the source LUN is located does not reach the preset maximum number of LUNs that can work in parallel on the channel A, then the new command is sent to the flash granule unit, otherwise the new command is suspended and queued to wait for the execution condition to be met.
6. The multi-channel flash drive system power consumption management device according to claim 1, characterized in that: After the system is powered on, the load sampling module performs a self-check and interacts with the multi-channel flash drive to traverse and measure the overall system power consumption in each scenario where the number of LUN loads in all channels ranges from 1 to the maximum value, obtains the corresponding relationship between the number of concurrent LUNs and the system power consumption, and feeds this information back to the integrated processor.
7. A multi-channel flash drive system power consumption management method, characterized in that: The following steps are involved: S01, the flash controller firmware starts the channel scheduling module and configures the upper limit of the global LUN concurrency number; S02, the channel scheduling module queries the load level of each channel of the multi-channel flash drive after power-on, disables the channels without load, and counts the number of channels with actual load; S03, judging whether the global LUN concurrent number upper limit can be evenly distributed to each channel, that is, whether ALL_LUNS_MAXS can be divided by CH_NUM. If yes, the LUN concurrent number of each channel is (ALL_LUNS_MAXS / CH_NUM) and remains fixed. If no, proceed to step S04; S04. Set the initial allocation state. Assume that the numbers of each channel are [0] ~ [CH_NUM – 1]. When the channel number n < (ALL_LUNS_MAX % CH_NUM), the initial maximum concurrent LUN number is floor(ALL_LUNS_MAX / CH_NUM) + 1. When the channel number n ≥ (ALL_LUNS_MAX % CH_NUM), the initial maximum concurrent LUN number is floor(ALL_LUNS_MAX / CH_NUM), where floor means rounding down, ALL_LUNS_MAXS means the upper limit of the global concurrent LUN number, and CH_NUM means the number of channels with actual load. S05, after the channel scheduling module generates the initial allocation state of the concurrent number of LUNs of each channel, the allocation state of each channel is rotated regularly in the order of increasing channel numbers according to the period value configured by the flash controller firmware; S06, the channel scheduling module modifies the control register of the flash drive module to make the generated concurrent number of each channel LUN effective; S07, determining whether the upper limit of the number of concurrent LUNs has changed, if so, returning to step S02, if not, proceeding to step S08; S08, the flash memory controller firmware detects whether the condition for exiting power consumption limitation is met, if yes, proceeds to step S09, if no, returns to step S03; S09: The channel scheduling module stops scheduling and allocation calculation, and restores the concurrent number of LUNs of each channel of the multi-channel flash drive to a maximum value.
8. The method for managing power consumption of a multi-channel flash drive system according to claim 7, wherein: When ALL_LUNS_MAX < CH_NUM, for channels with number n ≥ ALL_LUNS_MAX, the initial maximum concurrent LUN number is 0.
9. The method for managing power consumption of a multi-channel flash drive system according to claim 7, wherein: The process of disabling unloaded channels is as follows: if it is found 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, and thus disables the unloaded channels.
10. The method for managing power consumption of a multi-channel flash drive system according to claim 7, wherein: The condition for exiting power consumption limitation 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 maintains this state continuously for more than multiple 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
Cited By
Multi-channel hardware management method and system for solid state disk
CN120045143A
A multi-channel hardware management method and system for solid state drives
CN120045143B